pax_global_header00006660000000000000000000000064152224754750014527gustar00rootroot0000000000000052 comment=03cde9750956b3f8bb0087bf6e2afbc7c599a82c CorsixTH-0.70.0/000077500000000000000000000000001522247547500133165ustar00rootroot00000000000000CorsixTH-0.70.0/.clang-format000066400000000000000000000006401522247547500156710ustar00rootroot00000000000000--- Language: Cpp BasedOnStyle: Google MacroBlockBegin: "^\ BEGIN_EVENT_TABLE.*" MacroBlockEnd: "^\ END_EVENT_TABLE()" DerivePointerAlignment: false PointerAlignment: Left IncludeCategories: - Regex: '^"config.h"' Priority: 1 - Regex: '^<.*\.h>' Priority: 2 - Regex: '^<.*' Priority: 3 - Regex: '.*' Priority: 4 CorsixTH-0.70.0/.clang-tidy000066400000000000000000000040561522247547500153570ustar00rootroot00000000000000--- # -bugprone-chained-comparison is needed for catch2 < v3.5.3 Checks: 'bugprone-*,-bugprone-chained-comparison,-bugprone-easily-swappable-parameters,-bugprone-implicit-widening-of-multiplication-result,-bugprone-multi-level-implicit-pointer-conversion,-bugprone-narrowing-conversions,-bugprone-suspicious-enum-usage,-bugprone-switch-missing-default-case,clang-diagnostic-*,clang-analyzer-*,misc-throw-by-value-catch-by-reference,modernize-use-nullptr,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-override,modernize-use-scoped-lock,performance-*,-performance-enum-size' WarningsAsErrors: '*' HeaderFilterRegex: '/CorsixTH/Src/|/AnimView/|/common/' FormatStyle: file CheckOptions: - key: cert-dcl16-c.NewSuffixes value: 'L;LL;LU;LLU' - key: cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField value: '0' - key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors value: '1' - key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic value: '1' - key: google-readability-braces-around-statements.ShortStatementLines value: '1' - key: google-readability-function-size.StatementThreshold value: '800' - key: google-readability-namespace-comments.ShortNamespaceLines value: '10' - key: google-readability-namespace-comments.SpacesBeforeComments value: '2' - key: modernize-loop-convert.MaxCopySize value: '16' - key: modernize-loop-convert.MinConfidence value: reasonable - key: modernize-loop-convert.NamingStyle value: lower_case - key: modernize-pass-by-value.IncludeStyle value: llvm - key: modernize-replace-auto-ptr.IncludeStyle value: llvm - key: modernize-use-nullptr.NullMacros value: 'NULL' ... CorsixTH-0.70.0/.gitattributes000066400000000000000000000101021522247547500162030ustar00rootroot00000000000000* text=auto !eol AnimView/AnimView.ico -text AnimView/Icon.icns -text CorsixTH/Bitmap/aux_ui.dat -text svneol=unset#unset CorsixTH/Bitmap/aux_ui.tab -text CorsixTH/Bitmap/bootstrap_font.bmp -text CorsixTH/Bitmap/bootstrap_font.dat -text svneol=unset#application/octet-stream CorsixTH/Bitmap/bootstrap_font.pal -text CorsixTH/Bitmap/bootstrap_font.tab -text CorsixTH/Bitmap/build_room_dialog_close.bmp -text CorsixTH/Bitmap/flag_buildable.bmp -text CorsixTH/Bitmap/flag_hospital.bmp -text CorsixTH/Bitmap/flag_passable.bmp -text CorsixTH/Bitmap/flag_travel_east.bmp -text CorsixTH/Bitmap/flag_travel_north.bmp -text CorsixTH/Bitmap/flag_travel_south.bmp -text CorsixTH/Bitmap/flag_travel_west.bmp -text CorsixTH/Bitmap/fullscreen_border_bottom.bmp -text CorsixTH/Bitmap/fullscreen_border_bottomleft.bmp -text CorsixTH/Bitmap/fullscreen_border_bottomright.bmp -text CorsixTH/Bitmap/fullscreen_border_left.bmp -text CorsixTH/Bitmap/fullscreen_border_right.bmp -text CorsixTH/Bitmap/fullscreen_border_top.bmp -text CorsixTH/Bitmap/fullscreen_border_topleft.bmp -text CorsixTH/Bitmap/fullscreen_border_topright.bmp -text CorsixTH/Bitmap/mainmenu1080.bmp -text CorsixTH/Bitmap/mainmenu1080.dat -text svneol=unset#application/octet-stream CorsixTH/Bitmap/mainmenu1080.pal -text CorsixTH/Bitmap/map_cell_outline.bmp -text CorsixTH/Bitmap/map_cell_outline_east.bmp -text CorsixTH/Bitmap/map_cell_outline_north.bmp -text CorsixTH/Bitmap/map_cell_outline_south.bmp -text CorsixTH/Bitmap/map_cell_outline_west.bmp -text CorsixTH/Bitmap/tree_collapsed.bmp -text CorsixTH/Bitmap/tree_ctrl.dat -text CorsixTH/Bitmap/tree_ctrl.pal -text CorsixTH/Bitmap/tree_ctrl.tab -text CorsixTH/Bitmap/tree_expanded.bmp -text CorsixTH/Bitmap/tree_leaf.bmp -text CorsixTH/Bitmap/tree_level.bmp -text CorsixTH/CorsixTH.ico -text CorsixTH/Icon.icns -text CorsixTH/Levels/Example.map -text CorsixTH/Levels/avatar.map -text CorsixTH/Levels/confined_v5.map -text CorsixTH/Levels/finisham.map -text CorsixTH/Levels/original08.level -text CorsixTH/Lua/dialogs/resizables/customise.lua -text CorsixTH/Lua/dialogs/resizables/folder_settings.lua -text CorsixTH/Lua/dialogs/resizables/update.lua -text CorsixTH/Lua/languages/hungarian.lua -text CorsixTH/Lua/languages/korean.lua -text CorsixTH/RequiredResources.txt -text CorsixTH/__MACOSX/SDLMain/._SDLMain.m -text LDocGen/output/corner_right.gif -text LDocGen/output/logo.png -text LPEG/lpeg-128.gif -text LevelEdit/.classpath -text LevelEdit/.project -text LevelEdit/.settings/org.eclipse.jdt.core.prefs -text LevelEdit/MiGLayout-License.txt -text LevelEdit/README.txt -text LevelEdit/miglayout-4.0-swing.jar -text LevelEdit/src/com/corsixth/leveledit/Disease.java -text LevelEdit/src/com/corsixth/leveledit/Emergency.java -text LevelEdit/src/com/corsixth/leveledit/FileChooser.java -text LevelEdit/src/com/corsixth/leveledit/Gui.java -text LevelEdit/src/com/corsixth/leveledit/Main.java -text LevelEdit/src/com/corsixth/leveledit/Menu.java -text LevelEdit/src/com/corsixth/leveledit/Population.java -text LevelEdit/src/com/corsixth/leveledit/Quake.java -text LevelEdit/src/com/corsixth/leveledit/ReaderWriter.java -text LevelEdit/src/com/corsixth/leveledit/StaffLevels.java -text LevelEdit/src/com/corsixth/leveledit/StartStaff.java -text LevelEdit/src/com/corsixth/leveledit/TabAwards.java -text LevelEdit/src/com/corsixth/leveledit/TabBar.java -text LevelEdit/src/com/corsixth/leveledit/TabDiseases.java -text LevelEdit/src/com/corsixth/leveledit/TabEarthquakes.java -text LevelEdit/src/com/corsixth/leveledit/TabEmergencies.java -text LevelEdit/src/com/corsixth/leveledit/TabGeneral.java -text LevelEdit/src/com/corsixth/leveledit/TabGoals.java -text LevelEdit/src/com/corsixth/leveledit/TabObjects.java -text LevelEdit/src/com/corsixth/leveledit/TabPopulation.java -text LevelEdit/src/com/corsixth/leveledit/TabStaff.java -text LevelEdit/src/com/corsixth/leveledit/VarManipulator.java -text LevelEdit/src/icon128.png -text LevelEdit/src/icon16.png -text LevelEdit/src/icon24.png -text LevelEdit/src/icon256.png -text LevelEdit/src/icon32.png -text LevelEdit/src/icon48.png -text LevelEdit/src/icon64.png -text WindowsInstaller/welcome.bmp -text CorsixTH-0.70.0/.github/000077500000000000000000000000001522247547500146565ustar00rootroot00000000000000CorsixTH-0.70.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001522247547500170415ustar00rootroot00000000000000CorsixTH-0.70.0/.github/ISSUE_TEMPLATE/bug_report.yml000066400000000000000000000073531522247547500217440ustar00rootroot00000000000000### CorsixTH Bug Report Template ### ### Headers name: Bug report description: Create a report to help us improve title: "[Bug] Give a summary of the problem" type: Bug ### Questions # What happened? body: - type: textarea id: what-happened attributes: label: Describe the issue placeholder: Provide as much detail as you can validations: required: true # Reproducing Steps - type: textarea id: reproduction attributes: label: Steps to Reproduce description: Break down as clearly as possible how to reproduce the error. If you cannot reproduce describe best how it happened value: | 1. *Load save game attached to this ticket* 2. 3. validations: required: true # Expected Behaviour - type: textarea id: expected attributes: label: Expected Behaviour description: What did you expect to happen in the game? validations: required: true # Experiments - type: checkboxes id: experiments attributes: label: Have you enabled any current CorsixTH Experimental Features? description: Select all that apply options: - label: Right mouse panning - label: Falling actions (applies to CorsixTH versions < 0.70.0) # Save Game Upload - type: textarea id: savegame attributes: label: Save Game # Insert two blank lines for a new line description: > It is often useful for us if you have a save game from shortly before the issue occurs that can be used to recreate the problem. Sometimes a save that shows the issue happening may be useful as well. You can upload your save by putting it in zip file, then copy/pasting it directly into this text area. You can also click the "Attach files by dragging & dropping, selecting or pasting them" text at the bottom to upload the zip file. Alternatively, you can use an external source such as Google Drive, Dropbox, or OneDrive and sharing the public link below to access your save game. The most important thing is to not remove these files after you upload them. value: "Save game attached to report: Yes/No" ## System Information Questions - type: markdown attributes: value: "Please provide some details about your system and game data" - type: input id: corsix-version attributes: label: CorsixTH Version placeholder: e.g. 0.65 (release version) or 7d886f35ca (if built from master) validations: required: true - type: input id: os-ver attributes: label: Operating System placeholder: e.g. Windows 10 / Mac OS Monteray / Ubuntu 20.04 LTS validations: required: true - type: dropdown id: th-ver attributes: label: Theme Hospital Version description: "CorsixTH requires a copy of Theme Hospital to run as we use its game assets." options: - CD - GOG.com - Origin - Demo validations: required: true ## # Gamelog - type: textarea id: gamelog attributes: label: Gamelog.txt # Insert two blank lines for a new line description: "### Where do I find the gamelog file? Information about the configuration file can be found [here](https://github.com/CorsixTH/CorsixTH/wiki/Configuration-File). You can find gamelog.txt at the same location as the config file." placeholder: Paste gamelog.txt output here render: yaml # Extra Info - type: textarea id: extra attributes: label: Additional Information description: Paste any screen shots or other additional information that might help illustrate the problem. ### CorsixTH-0.70.0/.github/ISSUE_TEMPLATE/feature_request.yml000066400000000000000000000034031522247547500227670ustar00rootroot00000000000000### CorsixTH Enhancement Template ### ### Headers name: Feature request description: Suggest an idea for this project title: "Give a feature/enhancement summary" type: Enhancement ### Questions # What is wanted? body: - type: textarea id: subjectof attributes: label: What feature or enhancement would you like to add? description: Include a description of what feature/enhancement you would like to see in CorsixTH validations: required: true # The benefits - type: textarea id: benefits attributes: label: How would this feature benefit the gameplay of CorsixTH? description: This will help developers decide if it is a worthwhile endeavour validations: required: true # Original feature? - type: dropdown id: original-presence attributes: label: Was the feature in the original game? options: - "Yes" - "No" - Unsure validations: required: true # CorsixTH version - type: input id: corsix-version attributes: label: What version of CorsixTH are you using? description: "You can check and download the latest stable release at https://github.com/CorsixTH/CorsixTH/releases" placeholder: e.g. 0.65 (release version) or 7d886f35ca (if built from master) validations: required: true # Related issues - type: input id: existing-issue attributes: label: Does this feature/enhancement relate to a current problem? description: Give a summary of the problem -- referencing an issue number if one exists value: "No" # Extra Info - type: textarea id: extra attributes: label: Additional Information description: Add any other information or screenshots about the feature request here ### EOF CorsixTH-0.70.0/.github/ISSUE_TEMPLATE/good_first_issue.yml000066400000000000000000000101051522247547500231300ustar00rootroot00000000000000# Note: This form can't be locked down to organisation memebers in GitHub currently. name: Good First Issue [Developer Use Only] title: "Good First Issue: Enter Summary Here" description: For developer use only. Create a guided ticket for a first-time contributor so that they fix the code or implement something new. projects: [] labels: - Good First Issue body: # Section only shown in form - type: markdown attributes: value: >- **CorsixTH Issue template for good first issues.** This ticket aims to provide the outline of the problem, the relevant code sources you need to know about, and what possible fixes there are, if any. Please ensure the original ticket is closed, if there was one, and link it in the question further below. Set the appropriate labels after submission. - type: textarea id: what-is-issue attributes: label: Describe the issue description: Give as much detail as possible validations: required: true - type: input id: version attributes: label: Which CorsixTH version was the issue first discovered in? description: Ideally a release version placeholder: "0.69.1" validations: required: true - type: textarea id: reproduction attributes: label: How can this be reproduced in CorsixTH? description: If there is a problem method to replicate, this helps the contributor to check that any fix works as intended value: |- 1. *Load save game attached to this ticket* 2. 3. validations: required: true - type: textarea id: cause attributes: label: What is the idenitifed cause of the problem (if a bug)? description: Provide examples of the codebase where the problem lies, including any reasoning why this happens - type: textarea id: fixes attributes: label: What is the recommended approach(es) to resolve this? description: Provide as much detail as needed, including any caveats/code traps that might occur validations: required: true - type: dropdown id: complexity attributes: label: Complexity Score description: | How difficult will this be for someone to undertake? **Note: If this requires more than basic knowledge of Lua or C++ (arguably any C++ is bad) it is not a Good First Issue!** options: - "1: Very Easy (no code knowledge required)" - "2: Easy (Needs a basic understanding of coding concepts)" - "3: Slight Complexity (Needs a basic understanding of Lua or C++)" validations: required: true - type: textarea id: resources attributes: label: Are there any resources in our Wiki that may be of use? description: Link them below. - type: input id: parent-issue attributes: label: If this has been created from an existing issue, please add it below description: Separate multiple issues with a comma placeholder: "#1234" - type: textarea id: savegame attributes: label: Is a save game to be provided? description: Drag or upload it in the box below value: "Save game provided: Yes/No/Already in existing ticket" validations: required: true # Auto-inserting help text, do not touch question below. - type: textarea id: help attributes: label: You may wish to check out the following resources if you are interested in picking up this issue description: DO NOT MODIFY value: |- [Programming in Lua 5.1 Manual](https://www.lua.org/pil/contents.html) (we mostly follow the 5.1 standard due to supporting LuaJIT) [CorsixTH Flavoured Lua and C++ Coding Practices](https://github.com/CorsixTH/CorsixTH/wiki/Coding-Conventions) [Contributing Guidelines](https://github.com/CorsixTH/CorsixTH/blob/master/CONTRIBUTING.md) **Seeking Technical Support** You can either reach out in this issue for support; or using our Technical channel in Discord/Matrix. This repo's homepage contains links to reach us there. CorsixTH-0.70.0/.github/pull_request_template.md000066400000000000000000000002701522247547500216160ustar00rootroot00000000000000 *Fixes #* **Describe what the proposed change does** - - - CorsixTH-0.70.0/.github/workflows/000077500000000000000000000000001522247547500167135ustar00rootroot00000000000000CorsixTH-0.70.0/.github/workflows/Linux.yml000066400000000000000000000167061522247547500205470ustar00rootroot00000000000000--- name: Linux and Tests on: push: branches-ignore: - 'gh-pages' pull_request: workflow_dispatch: inputs: animview: description: 'AnimView?' type: boolean pr: description: 'Build this PR (optional)' type: number jobs: Linux-apt-get: strategy: fail-fast: false matrix: include: - lua: LuaJIT packages: cmake libluajit2-5.1-dev # CMake 4, Openresty's luajit cmakejit: '-DWITH_LUAJIT=ON -DLUA_LIBRARY=/usr/lib/x86_64-linux-gnu/libluajit-5.1.so -DWITH_MOVIES=OFF -DWITH_MIDI_DEVICE=OFF' - lua: Lua 5.1 packages: 'libavcodec-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev librtmidi-dev' cmake: 1 static_analysis: 1 docs: 1 runs-on: ubuntu-24.04 # noble name: Linux apt-get ${{matrix.lua}} ${{inputs.animview == 'true' && 'with AnimView' || ''}} steps: - uses: actions/checkout@v6 # Keeps the git OAuth token after checkout - name: Checkout selected PR env: GH_TOKEN: ${{github.token}} if: inputs.PR run: gh pr checkout --repo CorsixTH/CorsixTH ${{inputs.pr}} - name: Install CorsixTH and lua test requirements run: | sudo apt-get update sudo apt-get install ${{matrix.packages}} liblua5.1-dev lua5.1 luarocks libsdl2-dev libfreetype-dev \ libsdl2-mixer-dev libcurl4-openssl-dev ${{inputs.animview == 'true' && 'libwxgtk3.0-gtk3-dev' || ''}} # Required for lua lint check sudo luarocks install luacheck # Required for lua unit tests sudo luarocks install busted - name: Install docs and static analysis requirements if: matrix.static_analysis run: | # Required for LDocGen sudo luarocks install lpeg sudo apt-get install doxygen yamllint sudo pip3 install -I codespell==2.2 cmakelint==1.4 sudo luarocks install luafilesystem - name: Install CMake 3.14 if: matrix.cmake run: | # Install CMake version 3.14, the oldest CorsixTH-supported version, which does not support Lua 5.4 curl -L https://github.com/Kitware/CMake/releases/download/v3.14.6/cmake-3.14.6-Linux-x86_64.sh -o cmake.sh sudo bash cmake.sh --prefix=/usr/local/ --exclude-subdir --skip-license cmake --version - name: Create CorsixTH makefiles with ${{matrix.lua}} run: | cmake . -G"Unix Makefiles" -Bbuild ${{matrix.cmakejit}} --debug-output -LA \ -DBuILD_ANIMVIEW=${{inputs.animview == 'true' && 'ON' || 'OFF'}} - name: Build CorsixTH with ${{matrix.lua}} run: | cmake --build build/ -- VERBOSE=1 sudo cmake --build build/ -- install - name: Run lua tests if: matrix.static_analysis run: | # Validate lua files find CorsixTH -name '*.lua' -print0 | xargs -0 -I{} luac5.1 -p {} # Run lua lint check luacheck --quiet --codes --ranges CorsixTH # Run lua unit tests busted --verbose --directory=CorsixTH/Luatest - name: Run simple code tests if: matrix.static_analysis run: | # Check if there is bad whitespace. python3 scripts/check_whitespace.py -e scanner.cpp -e parser.cpp # Check for incorrectly encoded files. python3 scripts/check_language_files_not_BOM.py # Check if there are lua classes with invalid/improper declarations. python3 scripts/check_lua_classes.py # Check for tabs (should be spaces) ! grep -IrnP '\t' CorsixTH/Lua # Build and package LevelEdit ant -buildfile LevelEdit/build.xml dist # Run codespell (temporarily not a failure, Nov 2023) codespell --enable-colors --quiet-level 2 --skip="languages,corsix-th.6,*.dat" \ -L sav,unexpect,persistance,defin,uint,inout,currenty,blong,falsy,manuel \ AnimView CorsixTH CorsixTH/Lua/languages/english.lua LevelEdit libs || true # Cmake file linter cmakelint --filter=-linelength AnimView/CMakeLists.txt CMakeLists.txt CorsixTH/CMakeLists.txt \ CorsixTH/CppTest/CMakeLists.txt CorsixTH/Src/CMakeLists.txt CorsixTH/SrcUnshared/CMakeLists.txt \ libs/CMakeLists.txt libs/rnc/CMakeLists.txt CMake/GenerateDoc.cmake # Validate these build files yamllint --config-data "rules: {line-length: disable}" .github/workflows/*.yml shellcheck --shell sh scripts/macos_luarocks # Check the windows config file is up to date eval "$(luarocks --lua-version 5.1 path)" lua5.1 scripts/generate_windows_config.lua git diff --exit-code - name: Generate documentation if: matrix.docs run: | cmake --build build/ --target doc - name: Upload documentation if: github.ref == 'refs/heads/master' && github.repository == 'CorsixTH/CorsixTH' && matrix.docs run: | git config user.email "documentationbot@corsixth.com" git config user.name "Docs Bot" git fetch origin gh-pages git checkout --force gh-pages rsync --recursive build/doc/ . git add animview/ corsixth_engine/ corsixth_lua/ index.html leveledit/ if ! git diff --cached --exit-code; then git commit --message "Documentation from $(git rev-parse --short master) [no CI]" git push origin gh-pages else echo "No change to documentation." fi Linux-vcpkg: runs-on: ubuntu-22.04 name: Linux vcpkg Lua 5.5 ${{inputs.animview == 'true' && 'with AnimView' || ''}} env: VCPKG_BINARY_SOURCES: clear;files,${{github.workspace}}/vcpkg_cache,readwrite steps: - uses: actions/checkout@v6 - name: Checkout selected PR env: GH_TOKEN: ${{github.token}} if: inputs.PR run: gh pr checkout --repo CorsixTH/CorsixTH ${{inputs.pr}} - name: Install build dependencies run: | wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh sudo ./llvm.sh 20 sudo apt-get install libltdl-dev libx11-dev libxft-dev libxext-dev libxtst-dev \ libxrandr-dev nasm clang-format-20 clang-tidy-20 autoconf-archive - name: Restore vcpkg cache uses: actions/cache@v5 with: path: ${{ github.workspace }}/vcpkg_cache key: vcpkg-linux-${{hashFiles('vcpkg.json','vcpkg-configuration.json')}} restore-keys: vcpkg-linux- - name: Get CMake and Ninja uses: lukka/get-cmake@v4.3.3 - name: Setup vcpkg uses: lukka/run-vcpkg@v11 - name: Build CorsixTH, run tests uses: lukka/run-cmake@v10 with: configurePreset: 'linux-dev-vcpkg' configurePresetAdditionalArgs: "['-DBUILD_ANIMVIEW=${{inputs.animview == 'true' && 'ON' || 'OFF'}}']" buildPreset: 'linux-dev-vcpkg' buildPresetAdditionalArgs: "['--verbose']" testPreset: 'linux-dev-vcpkg' - name: Run clang code tests run: | # Check cpp format clang-format-20 -i CorsixTH/Src/*.cpp CorsixTH/Src/*.h AnimView/*.cpp \ AnimView/*.h libs/rnc/*.cpp libs/rnc/*.h CorsixTH/SrcUnshared/main.cpp git diff # Clang-tidy linter run-clang-tidy-20 -p build/dev-vcpkg git diff --quiet # exit if clang-format made any changes CorsixTH-0.70.0/.github/workflows/Windows.yml000066400000000000000000000062631522247547500210770ustar00rootroot00000000000000--- name: Windows on: push: branches-ignore: - 'gh-pages' pull_request: workflow_dispatch: inputs: preset: description: 'Select CMake preset' default: 'win-x64-rel' type: choice options: - win-dev - win-x64-rel - win-x86-rel animview: description: 'Build AnimView?' default: 'false' type: boolean pr: description: 'Build this PR (optional)' type: number jobs: Windows: runs-on: windows-2022 env: PRESET: ${{inputs.preset || 'win-x64-rel'}} ANIMVIEW: ${{inputs.animview && 'ON' || 'OFF'}} NAME: CorsixTH${{inputs.animview && '_and_AnimView' || ''}}${{inputs.preset == 'win-x86-rel' && '_x86' || ''}} VCPKG_ROOT: ${{ github.workspace }}\vcpkg VCPKG_DEFAULT_BINARY_CACHE: ${{ github.workspace }}/vcpkg-bincache defaults: run: shell: bash steps: - name: Checkout uses: actions/checkout@v6 - name: Checkout selected PR env: GH_TOKEN: ${{github.token}} if: inputs.pr run: gh pr checkout --repo CorsixTH/CorsixTH ${{inputs.pr}} - name: Extract vcpkg baseline id: vcpkg-baseline shell: pwsh run: | $config = Get-Content vcpkg-configuration.json | ConvertFrom-Json $baseline = $config.'default-registry'.baseline Write-Host "vcpkg baseline: $baseline" echo "baseline=$baseline" >> $env:GITHUB_OUTPUT - name: Checkout vcpkg uses: actions/checkout@v6 with: repository: 'microsoft/vcpkg' ref: ${{ steps.vcpkg-baseline.outputs.baseline }} fetch-depth: 0 path: vcpkg - name: Bootstrap vcpkg shell: cmd run: | cd "%VCPKG_ROOT%" bootstrap-vcpkg.bat -disableMetrics - name: Setup binary cache uses: actions/cache@v5 with: path: ${{ env.VCPKG_DEFAULT_BINARY_CACHE }} key: vcpkg-bincache-${{env.PRESET}}-${{hashFiles('vcpkg.json','vcpkg-configuration.json')}} restore-keys: vcpkg-bincache-${{env.PRESET}}- - name: Ensure directories exist run: | mkdir -p "$VCPKG_DEFAULT_BINARY_CACHE" mkdir -p artifact - name: Run CMake configure shell: cmd run: | cmake --preset "%PRESET%" -DVCPKG_INSTALL_OPTIONS="--x-abi-tools-use-exact-versions" -DBUILD_ANIMVIEW=%ANIMVIEW% - name: Run CMake build shell: cmd run: | cmake --build --preset "%PRESET%" --verbose - name: Run CTest shell: cmd run: | ctest --preset "%PRESET%" - name: Run CMake install if: inputs.PRESET != 'win-dev' shell: cmd run: | cmake --install build/%PRESET% --prefix ./artifact --config RelWithDebInfo - name: List the artifact files if: inputs.PRESET != 'win-dev' run: | ls -R artifact - name: Upload build if: inputs.PRESET != 'win-dev' uses: actions/upload-artifact@v6 with: path: ${{ inputs.animview && 'artifact' || 'artifact/CorsixTH' }} name: ${{env.NAME}} CorsixTH-0.70.0/.github/workflows/WindowsInstaller.yml000066400000000000000000000023301522247547500227440ustar00rootroot00000000000000--- name: Windows installer on: workflow_dispatch: inputs: x86: description: 'x86 run ID (url part)' required: true type: number x64: description: 'x64 run ID (url part)' required: true type: number jobs: WindowsInstaller: runs-on: ubuntu-24.04 name: Make and test Windows installer steps: - uses: actions/checkout@v6 - name: Install NSIS run: sudo apt-get install nsis - name: Download x86 artifact uses: actions/download-artifact@v8 with: run-id: ${{inputs.x86}} path: WindowsInstaller/x86 github-token: ${{github.token}} - name: Download x64 artifact uses: actions/download-artifact@v8 with: run-id: ${{inputs.x64}} path: WindowsInstaller/x64 github-token: ${{github.token}} - name: Create installer run: | cd WindowsInstaller makensis -V4 -WX -- Win32Script.nsi sha256sum CorsixTHInstaller.exe >> $GITHUB_STEP_SUMMARY - name: Upload installer uses: actions/upload-artifact@v7 with: path: 'WindowsInstaller/CorsixTHInstaller.exe' archive: false CorsixTH-0.70.0/.github/workflows/update-website.yml000066400000000000000000000004751522247547500223660ustar00rootroot00000000000000name: Update website on: release: types: - published jobs: dispatch: runs-on: ubuntu-latest steps: - uses: peter-evans/repository-dispatch@v2 with: repository: CorsixTH/corsixth.github.io token: ${{ secrets.WEBSITE_REPO_TOKEN }} event-type: release CorsixTH-0.70.0/.gitignore000066400000000000000000000037101522247547500153070ustar00rootroot00000000000000CorsixTH/Src/config.h CorsixTH/config.txt /DataRaw /Debug /LuaJIT /Makefile /SDL /SDL_mixer-1.2.8 /PrecompiledDeps /doc # For CorsixTH directory and Windows *.dll *.exe Thumbs.db # This is for the CMake-generated XCode project and output /build/ *.xcodeproj/ Debug/ Release/ MinSizeRel/ RelWithDebInfo/ # For KDevelop .kdev4/ *.kdev4 # Ignore the folder where libraries are pre-compiled vcpkg/ # Build folders /build*/ # OSX metadata .DS_Store !LevelEdit/src/com/corsixth/leveledit/*.xcodeproj !LevelEdit/src/com/corsixth/leveledit/Debug !LevelEdit/src/com/corsixth/leveledit/Release !LevelEdit/src/com/corsixth/leveledit/MinSizeRel !LevelEdit/src/com/corsixth/leveledit/RelWithDebInfo !LevelEdit/src/com/corsixth/leveledit/.DS_Store !LevelEdit/src/com/corsixth/*.xcodeproj !LevelEdit/src/com/corsixth/Debug !LevelEdit/src/com/corsixth/Release !LevelEdit/src/com/corsixth/MinSizeRel !LevelEdit/src/com/corsixth/RelWithDebInfo !LevelEdit/src/com/corsixth/.DS_Store !LevelEdit/src/com/*.xcodeproj !LevelEdit/src/com/Debug !LevelEdit/src/com/Release !LevelEdit/src/com/MinSizeRel !LevelEdit/src/com/RelWithDebInfo !LevelEdit/src/com/.DS_Store # For files generated by compiling a Visual Studio Express 2013 project *.opensdf *.sdf *.suo *.aps # For the LevelEdit project *.class LevelEdit/bin/ # Debugging related files CorsixTH/Lua/debug_script.lua CorsixTH/Lua/debugger.lua mobdebug.lua # For AnimView output VSPR-0.xml *export.log # CMake related files CMakeDoxyfile.in CMakeDoxygenDefaults.cmake cmake_install.cmake CMakeCache.txt CMakeFiles Makefile CMakeScripts/ # Clang tools compile_commands.json .cache/ # This is for the CMake-generated Visual Studio project *.vcxproj *.vcxproj.user *.vcxproj.filters CorsixTH_Top_Level.sln CorsixTH/CorsixTH.sln # Eclipse related files .buildpath .project .settings/ # VS Code files .project/ .cproject/ .vscode/ .cproject .vs/ # CLion / IntelliJ .idea/ # Default build path CorsixTH/CorsixTH CorsixTH/corsix-th # Nix *.so /result* CorsixTH-0.70.0/.luacheckrc000066400000000000000000000164421522247547500154320ustar00rootroot00000000000000--[[ Copyright (c) 2016 Albert "AlbertH" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] self = false globals = { -- Globals "_A", "_S", "corsixth", "class", "Colours", "compare_tables", "DrawFlags", "DrawingLayers", "destrict", "flag_clear", "flag_isset", "flag_set", "flag_toggle", "lfs", "list_to_set", "loadfile_envcall", "loadstring_envcall", "pause_gc_and_use_weak_keys", "permanent", "rangeMapLookup", "rnc", "strict_declare_global", "unpermanent", "values", "serialize", "array_join", "table_merge", "table_contains", "shallow_clone", "staff_initials_cache", "hasBit", "bitOr", "inspect", "getRandomEntryFromArray", "isTableEmpty", "stripTrailingSlashes", "isDirectory", "canOpenDirectory", "tracy", -- Game classes "AIHospital", "AnimationManager", "AnimationEffect", "App", "Audio", "CallsDispatcher", "Cheats", "ChildClass", "Command", "Door", "DummyRootNode", "Earthquake", "EndConditions", "Entity", "EntityMap", "Epidemic", "FileSystem", "FileTreeNode", "FilteredFileTreeNode", "GameUI", "Graphics", "GrimReaper", "Hospital", "Humanoid", "HumanoidRawWalk", "Inspector", "LoadGame", "LoadGameFile", "Litter", "Machine", "Map", "MoviePlayer", "NoRealClass", "Object", "ParentClass", "Patient", "Plant", "PlayerHospital", "Queue", "ResearchDepartment", "Room", "SaveGame", "SaveGameFile", "Staff", "StaffProfile", "StaffRoom", "Strings", "SwingDoor", "TheApp", "TreeControl", "Vip", "Window", "World", "Date", "Doctor", "Handyman", "Nurse", "Receptionist", "Subtitles", "SubtitleQueue", -- UI "UI", "UIAdviser", "UIAdviserHistory", "UIAnnualReport", "UIAudio", "UIBankManager", "UIBottomPanel", "UIBuildRoom", "UICallsDispatcher", "UICasebook", "UICheats", "UIChooseFont", "UIChooseSoundfont", "UIConfirmDialog", "UICustomCampaign", "UICustomGame", "UICustomise", "UIDirectoryBrowser", "UIDropdown", "UIEditRoom", "UIFax", "UIFileBrowser", "UIFolder", "UIFullscreen", "UIFurnishCorridor", "UIGraphs", "UIHireStaff", "UIHotkeyAssign", "UIHotkeyAssignKeyPane", "UIInformation", "UIJukebox", "UILoadGame", "UILoadMap", "UILuaConsole", "UIMachine", "UIMakeDebugPatient", "UIMainMenu", "UIMapEditor", "UIMenuBar", "UIMenuList", "UIMessage", "UINewGame", "UIOptions", "UIPatient", "UIMachineMenu", "UIPlaceObjects", "UIPlaceStaff", "UIPolicy", "UIProgressReport", "UIQueue", "UIQueuePopup", "UIResizable", "UIResearch", "UIResolution", "UISaveGame", "UISaveMap", "UIScrollSpeed", "UIShiftScrollSpeed", "UISoundSettings", "UIStaff", "UIStaffManagement", "UIStaffRise", "UITipOfTheDay", "UITownMap", "UIUpdate", "UIWatch", "UIZoomSpeed", -- Actions "AnswerCallAction", "CallCheckPointAction", "CheckWatchAction", "DieAction", "FallingAction", "GetUpAction", "HumanoidAction", "IdleAction", "IdleSpawnAction", "KnockDoorAction", "MeanderAction", "MultiUseObjectAction", "OnGroundAction", "PeeAction", "PickupAction", "QueueAction", "SeekReceptionAction", "SeekRoomAction", "SeekStaffRoomAction", "SeekToiletsAction", "ShakeFistAction", "SpawnAction", "StaffReceptionAction", "SweepFloorAction", "TapFootAction", "UseObjectAction", "UseScreenAction", "UseStaffRoomAction", "VaccinateAction", "VipGoToNextRoomAction", "VomitAction", "WalkAction", "YawnAction", -- Math extensions "math.n_random", "math.round", "math.randomdump", "math.t_random", "math.p_random", -- Unit Tests "assertion_matches" } -- Set standard globals files["CorsixTH/Luatest"] = {std = "+busted"} codes = true -- Show warning codes max_line_length = false -- No maximum line length unused_args = false -- Permit unused arguments -- Exclude files and directories exclude_files = {"CorsixTH/Bitmap", "CorsixTH/Lua/api_version.lua", "LDocGen"} --! Helper function to add an ignore for a filename to 'files'. --!param filename (str) Name of the file to add an ignore. --!param value Ignore value to add. local function add_ignore(filename, value) ignores = files[filename] if not ignores then files[filename].ignore = {value} else ignores[#ignores + 1] = value files[filename].ignore = ignores end end -- For languages, ignore -- W111: setting non-standard global variable XYZ -- W112: mutating non-standard global variable XYZ -- W113: accessing undefined variable XYZ -- W314: value assigned to field XYZ is unused for _, lng in ipairs({"brazilian_portuguese", "czech", "danish", "developer", "dutch", "english", "finnish", "french", "german", "greek", "hungarian", "iberic_portuguese", "italian", "japanese", "korean", "norwegian", "original_strings", "polish", "russian", "simplified_chinese", "spanish", "swedish", "ukrainian", "traditional_chinese"}) do local filename = "CorsixTH/Lua/languages/" .. lng .. ".lua" add_ignore(filename, "111") add_ignore(filename, "112") add_ignore(filename, "113") add_ignore(filename, "314") end -- Ignore unused functions of save game compatibility add_ignore("CorsixTH/Lua/app.lua", "app_confirm_quit_stub") add_ignore("CorsixTH/Lua/dialogs/bottom_panel.lua", "stub") add_ignore("CorsixTH/Lua/dialogs/resizables/options.lua", "language_button") add_ignore("CorsixTH/Lua/dialogs/resizables/options.lua", "width_textbox_reset") add_ignore("CorsixTH/Lua/dialogs/resizables/options.lua", "height_textbox_reset") add_ignore("CorsixTH/Lua/entities/machine.lua", "callbackNewRoom") add_ignore("CorsixTH/Lua/entities/machine.lua", "repair_loop_callback") add_ignore("CorsixTH/Lua/entities/humanoids/patient.lua", "callbackNewRoom") add_ignore("CorsixTH/Lua/entities/humanoids/staff.lua", "callbackNewRoom") add_ignore("CorsixTH/Lua/humanoid_actions/vip_go_to_next_room.lua", "action_vip_go_to_next_room_end") add_ignore("CorsixTH/Lua/rooms/operating_theatre.lua", "after_use") add_ignore("CorsixTH/Lua/rooms/operating_theatre.lua", "wait_for_ready") CorsixTH-0.70.0/AnimView/000077500000000000000000000000001522247547500150355ustar00rootroot00000000000000CorsixTH-0.70.0/AnimView/AnimView.ico000066400000000000000000004274771522247547500172750ustar00rootroot00000000000000 9 v€€ (¯ @@ (Bר00 ¨%ÿê  ¨§ ˆ O! h×*‰PNG  IHDR\r¨f IDATxœì½y�$Ù]çùygž‘•÷U÷}õ)©µînI !$a¬†k‡…eÙkc¶k,6Ëc† á�þX�`� ÒHhhPKÝRKjõUÕ­î®î®;ï£2«òŽÓýí~=wî‘YU üʲ"üÝîñ~ßßñÞû¹�Rò�ô“û{‡L)æÃéõæDR~\^3é­LÛ­2;½nÉ”aX†!L`ÕâqÃÿçV©2ÕL#âà.Å€JÛaö¸¼�‚€.ývÃ]B�IEàß–+µÿ§‘:Æ®Žèéî&aO÷O[$!¿‘z�”o¶ìvên·Ìn^·š¤”Tªf[¥jþZ6“ÞÌç2«Wg[@¡PøðËÀI!D�R^£ 7š4aZ?_W@{sÛü!+5ÓænH‚fÚtË -ªÛï´�[¸b`@„! áËŸðó ßM0_&äéÇ›'DÌ,ѵëŽFzy›››X¦©­ÞÛÛǧ>ýÙ;K¦¥¥%ëgòcFµfR­Y”*ULÓŠ”3 ñw¦i½?®�t£ …4ðIàc@¶YFÞãïp~£í"ïn!ön€E„�ê©e›ºÃm=‰”)-¢ÓӑĆᆆ�ATóðïÈféÍõfBE›úÝ•²–e‚´0 }ý±ñ1["–—n™tŠLÚ–»òTk&›Å [¥Š2&ù>!ÄëÀRÊ­p; @¡Pøß€ßòwšñùqšeÜÝVÍvBqc«7‰š„øFš¯Ò,I)‘ŽÄÔÉMC0 R8@!lÍA† 48÷w¿^¾Fì»  «;G”²Õj²6U,yêOpèðQFFGw4ï._º!™tšž®4m9Ö6Š”«57ó80%„Ø/¥ÜÔª71 …Ÿ?Á‡ÐÕÕU9~üxéᇖ=ôPnÿþýÙpÝÛňÿ¥Ÿ7^{õ•Húïü»?° Ó§O¯ÿáþaçž={Zb·B=ì]oeyéFlÙŽŽÆ÷îc||/cãûØ»ocã{ßËÈè™L&±¯©©I>ôýïih\©TŠ¡‘1†GÇI§£ –eIÊååR‰r¹D¥T¢\.{iµÚlòféï!Ã7Õ¦ù CÑ êM½DÐPÆkY&[ÅbK};ù|žá‘QúB %HK"“êÊåK¬­®&¶ñî÷!hkk§­­]Û†iš8øQòÂŒq05Dÿ�3|˜l߃,­yCxæEX{×%¥üÄ@¡PøY!„·„022Rüüç?Ÿëëë‹eþÝbüzågçfwô𥔬®¬°º²Â¥‹ol»�\.Ï‘§I¥Ó1Œì3ŽR©í´wthókµ*åR9¨E(ß-Kqµýcøf)„p”¾sÒÅv½ši¶�ñ[ÿ|F†Gøä'?Yxä‘G*+++®™þÇÀ~Ð@¡P0„ÿÞ½N¥RÒa~íž�;Åø.ÍÎL7ÕnëÉç‘ã§ÉdÜçë/³¹Óß'qNQ·\ò„J§3¤;3ttvjó«ÕJÊå2å’åÒ®oFqéndøfÉuPZ€!vD»ÿ|†GFÈår|ò“Ÿä£ý¨›µOñO¥”Ÿ�€âw�6÷ú×~í×6â$«=òÛ1 n?DÇØÕ] ­­-¢óû<¯_Ãn bµ‡ðò‚L&K&“¥³³;ÒŽDR­T&FÙñATÊ%*•ò¶â¿†ß]ºýÏgxdÄû~ß}÷e�?¾ùÆo¸ªå¿¢ü‚ûåĉýèG#Ì70¾[gvf¦éºMöT·ÄžÞ¾È²R€!â¶µz…£¡‡ðs’ÁÊpBˆ‚l6G6›£‹èʈ”’J¥¬û¯Z©ÚúGJ¢;ÿ|Tø�ßø�ÌG>ò÷r\Ñ€žžž9—¹þè�þ(â©j%ó·Â,˜�mµÐüWèé�ì&KbÆóèö¥{uõ@¢n` ê�‚Ð’<&!¹\ž\.-X–ˆJ9Ñ%ÎHtç^¥îîùÞ{ïÍf2«Z­Úk§ðñ°ð‹.“uvvVûúú¼õ±»�ñ]Ú¹ °³Î0 2™LDuöƬþ²ÎÚ»0²žiõ&ƒ£=$�ChLíÁIÔIxÃ0ÈçÛÈçÛ"y`DX{¨”ýeN³VÓÖûûIwÇɵÿÃôðÃo=õÔS®éG „x³ûýĉE ã¤'v¶ŒßhÙ™éf µ?\6—Çæ¨ÆwÞîÍSïÕ$-jøõ5L¯Wb|€!€ÐŽ!<ö†A[{;mí1Kœµšï˜ D‰r©lo¥½kéîfø0 �hÓßýîwO=õ”{9Ö<{ÿᇖwBê7¥R‘›7—ëµØp{Û¡\6”Ô±]ú‰8èù3*}#¦<@Ô»]/nÙäçÕìd•Ré4íéNÚ;ô+µjUÑÊþ§ÒÒ�&Ø-úûÅða Ûÿ.���©<߀Ø?âC=”KêàN2¾[~nnV—ÓT;;¥l.eG-/%Iõ0+F¼{ø%µ6C´n¨Ÿh=¥¤ˆª±OqQï7Ng2¤3::õÛM*•J`σ«ITJ;[ÁpF·ƒºwÅ™ÃÃÃ*ÏçÂ&€·Ö¯ÛÛ¯”«;€ÛaØ+úú¹|ž\6ÇÚZòvÉ�R6›óuî†ìt'¥8’íA'Õµ¡í!Ø}ŒR7Ø$€ØEí ›Í’ÍféìÒ,q:+aǤkfT” âï`×èÍoyˆŸúÙŸcl|œ\.ÇÍ›7¹us™›Ë7¹uë&7——¹qc‘é©I&''X]YÙQq&@¡PPo\4|îÆw)Îþïî.ð7_}‚îî¥R‘¹ÙYfgf˜��avfZùœeéÆâö%‡€L.ç3¥Êˆ1kÿ^Jƒƒâê‡8TIv�®#±™%Ș%Ä]¢=¨+]Ýú%Îনr`'e½“|;¡îî¿ù;¿G.—óî±»»À�#ctimm�ɉëLMN01q�©ÉI¦&¯3=5ÕÐXãL€0i@÷°[Åü­tÆ­|äGŒngäóm*Õýç©ä5±J’ì�Q ǃC¡g'ÏÜÃÅ×^¥Z­/‘GGgH»Ïxˆ×ü�Å8uÔ° ™üV–‰+W,n±rëV$=›óW/·Ãô*mÕ€L6YþlÉÌSîE´f´¾ýaÖLD^�zGšô¡ –Ëì&`YƒK„%íï.ã›,i_;u¤%ÁaÚù² T€²„*È P‘PY³Óì¾lÐ0MÓŽQà´'jQP”XçžSiJÒé´Mk2†�ÃFPü*I}pˆŒ"V{hkïàà‘£\|íÕh›!Š[’kÔ R¹ìjñs{Û@+˜öviq‡€òùüŽߥb©˜˜ŸÍf Àþˆ³ÉuëðÞ·X‡_T ™µ2/¤E(®{*XÓùÏÅ—IÙÃd§+IRziv¶ ˜iÚ  e3¹°ˆP¤zPzûÛn’ìÿú+Úl{>v2K7ÏQ�…â[p]B8å¤Ý‡[G8õ%Háôã��™Rv!_€)Avñ+U¤!¡˜’Nü¾¸ç eJ(·¢0¸ˆ$ÚIˆ]Ñ€‘Ñq.½qA›çÒææ¦ÝÆ6í~—ªÕJCg_šÑ òÑc·J3hü À”Ï #XÒòx#}%õùÚ…dõ.“Í ŠÇÀP¼È1„þÜ(4þŸ›-îQR1+�‘#„ê…áü¹ íÞ3 a‚WljÕo(õ…]ßåû‹´åß°PúwÊÛ´ D—@¦°û•àu®þî2œ™ôœ¢Ï3X ”lÑû§¯¯&9}‡þåÛôËŠ*ýË_ù?ø�ŸùS&®_£™À²¸Ï١ɉ‰`ħjt XÜ)cß΀©ÉIÞñÖyämïàÑÇÞÇ=÷ÞÏþI¥RÚòIôâùâÇ€p4€mH '9šUùÃ6hµVµ¥oJáì°},”ö�ï¸Âוî£J×Lp ¸<�@i×û/I-\Fq˜ZHÛ€°M…v2eúË :M§Ž¤mÔ‘Ôü²»¥=¤Rõ•è©©Iþà÷?Áüþ'èêêfhh˜�¡!†††t>t®óùè‘ìFãÆíÔѶ—ï´#0IªT*<ñõÇyâë�ÐÞÞΉ“§8uú,§OŸåÄÉSì?p�l6v·3/ž?ç÷¯™˜™l¦áÉ3ïHšdÑåBIÕ¬Ù¦~Zøú[Ì ‚ðâ¨óÁÀëW8y |Ó@¶k¸ã–N]oÐ6(�­d°Ç+�¸z:{W¨ÏI“¯4¿­³ÄDpu?T8©Fß®çW^__g}}�Ë—/Å–îîîö�apˆÁ¡!^-ÙÔhkko* þ¶–ïG ÖC[[[œ{áyνð¼—fcã{í]‚qðàaöíßOgg'íílllpcq1V"¥Ré�M5ÐÜdNšdj²iÖ d„/�…Çã~É,œ†¤+ÙU ï0¾t4Üûˆh~Ea…@Ûv•¦´Í R"¥[Ù €‚öi׈&´]ý�h¦·C°q�VGkkk¬­­q%$t4<Ò¸¶± x·˜ÍÇ’eYLMN059Á7Ÿüzüä‰!{ °n6ƒV²hÊ53™Ý’5ÓtL'UÄH)|ÆõÁ@¯½óO8Œ ¥cú ß,Pºñtà ï,‚¶�rÚ5…óÊ,¥ êi�°Á-ÄwB{(—]›~g ß*Š[rŒ£†¶7’׊üFËmnn²ºº³ÓR;�i—ÉdB! SÛ)úÙl§ÄvŸ¬=Ôj5ûWó\1 ¢:æá2° Â@à³%¹ am@k¸~w¯�˜¼ÚuÏC$�ƒš|Ç´;£R.Çõ|Gh¸‰%@hbÀn›Í”›‹q&¶Ýâ)“ÍúÒ.8K4”¡Œ:ÚƒišˆtÌÊ…tu.7+éž;Ï‰ç™ a Pê Õ?§ èü8 àÎ0Ë}�—;„iMàH¾SÚƒý¼ü�9wíXÓí�úÍ„n p¤ì.£r&“õ&GÃ@cç|ãÚC­fÚŽ5Í|Äq ¨¶\í@(�„�@:M8<í™m@ή¦ËîîôóLáiuM£m–Ò%íD{ÁßÃk!ø{Þ}Ðø Ôñì6ó·ràv‡©Îdì€@¯Ú‰vrsÚC­f"<` !¿¼Ò¤ ¶ à€A8÷ØŒçiÒ ½IàÉ[)mµ?#¼mÂîÁ$=+ÌyVÁ„Û£=È@õð¡,÷²r·@K€�`ì„yw{‰pffú¶3|˜\€VP«“9’šÌMjfÕ´WÂŒîù`p<ú+’^j€@¸[ƒ]€bxÚ€³‰ÈrLWƒ€{ø(ë0¬)w¼žI¤H8ÞN�ZÇcFèwr.ï:h…�DwƒI°û/©Oét:h7j¥EŒd 'é jÁÁ¬šˆœP¤·ZÝgDwÒÕT0pÇèªú¸jH#p¸ß]môŠ G�'\?CV L°jö«õ|!jïı®:Z§=D� žcV7ÈFŽçÞ.Êårôöö5u¶ ¥!Án—?`¦ÀnR:�FÁ÷^y�å›ö‰D!élš®ö†èï nÑ8“šÕ¤«f‘Ê¥ýÌÀi(•| D¤ XÒ6<ÀjÆ4Ú@D1Ϲ~]=@Ôªµ†¶æÞ.jVý‡&–w[åoÆÐÌ& Ý L&ÃÒòM�ùÁ–,UQåÖÖ*7ßX!{-уì1½fâ7¤=ªNX*‘ ­xŒtÌyÌŒBÝ�ôø¢ÜùA“À©*\�€!–¿W Èã;¶ó¥ª¢Dî]MnÐ4rîKF G™6 ‚eõP®ß¨ô7 ã¶…»ÐÌ Ã†4€»aW [fc}�õ5ýñËÑÙÙÉÂü<ËËK»öÐ�t†KW®ÛûñÆ>úzäM‰Ü+!ÕÉÞ¸ÄìüÇŽ¢£=thD£ØÉŠä ”•~ð‰ðùá Ìa<‰í\8 ¢�ë0ô€@« Hßÿ(°¥¼ãTAÀÛ�àð‰�(ŽÁ¢7ö¹)ÏHD340àkzÄm tÚC¹¼ë=�òóÿó/±wß>L³ÆÚê««+¬®®²¶ºÊêê ·nÝbzjŠÉ‰ëLN\guuûQ¬›Ý ì¸ÓƒÂe⤿‘JñGüFÇìðKµZ�Å…æçg™ŸŸga~Žù¹9æçç˜�™æÊåKÛ^ÂYY]§T.ÃȽ¿�Ôž4µ‰ ÕïT‘/[6_Ý'aVæÖxîÜKìaÿÞ½¤RFˆ·u6)ÞlTS«Õª��š9ªú#„Çàž�WÁÀ­,C@ JM×,�ÒMPA1 ¼ˆC*Øö ˆ6�·üv“`hïÅKÑ«åa µ,‹õ� ÖÖÖikÏÓß×(¯{lÍi~ÙzÀûØ�sðÐ!À×?0@ÿÀ@°ûÐóX]]eâú5&'&8ÿÂó|çÛO%‚‚*@ÔcÀ�jÛ^¼SK„q{~ø­óƒm§�Ž�ÒÔ¶M³ÆÕ+Wxí«¼váU.¼ú ç^x>ao·M5ÓbéÖ¢C`¼-Mªß~„éÃYRû³Tï)S{¢¯�½ÀE˜œžeáÆG` ¿—8;3|ïêOX­Õ)�H»ê¹ÚŒ ˆ%.ƒ„Á@*g‡| °Mƒ ÚooèqÛRòœvAÀrʧ”íö#|`°„LlÀ‰’_¦\)s}rŠé™LÓ×üöíçÄÑ£~?±]4ª=øõtŽ4  P(pϽ÷qöž{ùà‡~˲øÂçÿœßûÝßvÆÏ7Í„s)Ö°[Ì¿S“ îà±ã'šj3•JsôØqŽ;Îýð‡¸uë&÷•¿á·þÍo°µ¥�)°ºQ´½ß§Ù{�à#ƒÈÞ—#}0Cå›%¬gMXyZÂ:T.Uyõõ‹ôöôpôðÚÔ#ŸG–¹«•ª}ÀÝ êû*(’: ¾V …�.£Û–~P°�AÑHoE@Úi)�ÅW ÞP¢M.CÏD÷D$år…‰©I¦gæ°, Q°7ÉM ûajb†ñÑQ::4Ñ~5f˜~Hzí!É�J¥ò®“–@“Ò Ã```0‘ñ] iD œeÜ)s&×h¤ýzõ!þ�«jm§M—öìéåÇ>ö´ë& P,W)Wj0 ™wæy—ísôÒ™´FOŠüu�ý™<â €ó@ä÷I8 ·6VyöüK\ŸšÆ´,$ø�-âþ€Õµuût]‡M]‡xÞ!lܽÆIs%¸rÈÝÌ£–“H'0ˆ2îz¿‡.øveïñºˆ…ëGÀÞTu5% êŸ”#D Ï£\.óÆ¥Ë|û»Ï05;‹5bÁ[Aþ€Džr:hrpéÊÂ=ºÑýó~¿J`$kƒCC�­ÏîsÙ‹É¡é\jv´pðvùfgõ°ÿÀ¡@¹í’Bë�R²¶Q‚¦Htöã:L!QÆnˆÌÑéñ •gKÔžªÂóÀ)�£.ÃõÉin,qìð!zœ`™qx½¹¹É�åehsL\MMµýݱ(äÚãžv 0²ªxõTG¡pÊ8&�ò ¸RÞÒh–Ó¡T°M i«ãw5Qó ¥’­êÏÌÏÙÚÅa '€>l†wû¼Lƒ<$¹qa™[·VééQÏÉGíüpoš§¨^M€fÂrÕÓêE§ûlJ¯çï¨ß¶K-y3Ðí4 ¦§ô>€¾¾¾m3~¸žÎ¹³¾YÆ´,8ÙGrŠ ®¨ª óÛ×Ñn�{W;éã5*�±^² {ÒŽ@éB™—^¹ÀÐ@?‡ì³w†èÖ꯾~Ñ>Ô)lÀ.Šm-Üá¨?¸kó+ª;è�À5 <ÂݽçÔ5ðú$�€ÀŽ6ì´#Kþ€íž›(•J\ŸœbvaÁfüCqJ F ÈI;J±+š Îóý�Ñ!¸tå o~Ày_D]Ó€~J ªÕj"c…¥¿W³ISì·`×£¡¡aÿMЮ.îÆ*@œ §gOݶí;¬ÚÕjÅ2¢RïÈ`ìI;&v˜ù»Ü�Êé\§ÆÒ´ýD•{JT/ÛÚÀQ�o•p®-±|k…Cû÷2<4`†KW®Ù¡·ÁŽ��]µýµ\µÿí�З\ ïd(;ümæµB à<»|Ÿ@Uú¡ÄK`™W'&BÐÞÖÆ@Ÿc‚¨öwŠ¥SÌ-,ÚŒ@"ÎŒqòø!ÏU|Àà20òˆdõ¥uo,18ПÄõNýzQÿ‹‹ {Ⓡ"XZZª[n$AýOÇŽbÞn“`mu•�˜H½]ÝÑ7Æ6Û'Àææ†ó£ûeW6>+ÈÜ“2¿Fê{†³7!íÙ)R�{ OæH–òSȨk0†Á¼`rñÊ5—8zøímmllmQTI¦¤ÿ«9tí2„2W3ˆ� ª6 €XXH xŽA§Kç]”%”í]s×'|íí¾3§éÝÓ£×$‹%&&§™_\Caü})D»ð¤½­uØãòÇt§€'ìç+ ‚KW¯Ñßß«×pƒK‘|¿ ].NýwÛYZ¼A­VÓÆ¢lV xýBýP`îÛ‡š�]‰ ¸[þ€¤€·n.k—Aš5 ^:>p½UªP©Ö`2ïÌcd�If86¸Ý‰ÓYPêãDÀ ÄæC`R´}°“ÚÙ*•¯±^¶` ä[$LÂÚ¥ ^xéÆGG"?¦Lᜠߨ[…ù•ÁðÐ@`nÔ;’­‚ƒ[¶V©Æ2¿K•J™—_z‘—_zÑKëëëçôÙ3œ>s–#G�Ñ?0@_?=uë• IDAT={0 #"Á¿ó­§Ú°6ªyÿ JqšAKcî¶V�¤|ñ?Ž/þçÏyשTšÑÑQÆÆÇßÇøÞ½Œ�íµ?ÇÇíµUá2‚ß÷sÏ|×û¾¾Y²$‡ì÷å6¿–ùQ?©¸Ì)Ò‚ìƒídŽæ(s‹Ú³5hù „+ÀõÐ�:¼æ7rV9j¿¿¯ß“œ�;±Ú@8ŽA<­@À »¹d�bµõîé¡·§ÇÌV±ÈÄÔ ‹7–lUß‘øéciDAx�EìcÎÊ‘â°Æã>w�º©F�ýxZ@õ™*SÓÚ¿_y¤�J»¬@Pià�€:Z^^â›O>É7Ÿ|2�žJ¥èí룯¿Ÿþþúûûéëïç¿ýíß4Ô®ºéhGgîVæ‡f"Û¡³¦¦¦˜ššžŽ”ÈårŒŽ�36>nk {÷22:Æ÷´®ÖL6‹eè†ô;³ÿ-±’_Å÷¿¸¨ÑN¾ÝŒ„‚AþC�ÔÎV¨|µ„uÑ6 èñ²@V}›ˆ�Áùê1†»¯ 1Mp Ø2ZUå ‚¾}mïØUTÀ�È-i�ó{ʤÓ;| lm™˜šfñÆ’ýîÀ}ã¬AêDÆc|?zP\ÂZ€LÐrØZÀßa;‡`jz†±áa;,¼:õdT¥l vµ-dâàvÈ4Mn,.rcqq[õÙu¨ã³]� ØJ`˜��œÜŽŽÊå2×®^áÚÕ+ÚüÕ Ûˆ÷2g²É’_¸i!•?vˆîÉ:Õ3osqú`ŽÔÏf©ž/QùZ J ÷KÛ£ ö$µô]¨Ç}Õ“}Â)ulîi¿ðj�âð#)ŽAW‹¯})²(aûÏ¡G�`š&¯]¼ä1>@Ü+HŸÈúŒïŒÑ]‘°Ü× ¥>§xD bkTGÀ\´¸69Åñ#‡•— ÇÌ!Uð¶A;ç2îÊçóìÙÓHÛÑY€0Ý Ìê9€æ¾²&ŒCö]yDÆÝâF}æWǦ/ñ¥ZÈÓ*œ”´ ÷–62Dz”ž,b~78Ù¤ÊÄŠ Z"Òc^wâª@71fö; 4®J]ß$RÔs$²bÙ'$•nrÙ, 7n°¸´ì3þ}éSi[»²Ü®dÔäiî­¬,�ñC v ÅSÀWœ1�ÂÜì{ÇFi÷^íøEÔ‡Imä•à·“š êîŒuç@CïLj¬ÕyIù3Ó3ì6ó{Ž¿ ¤J‘w0R(ãJb~å}|êŸýàÕM¯„p­Š¨4“`ô¤hÿáNò?ß�¸ßéaEP=§8…Ü>d°¾;4OcîÆae¬‚h¿* �?.¸’Yà­rûu¤ˆGÊ• 7nÝ„ƒ`ü�Aæ'òdß–Ãè1õŸî3wúV\ ÝO L•~à¶&uØÎ»rí:ºmÆþ{QþÜ_NÞUÒ`4Fýo„�·½àvk++·bè´’<ÇßIÈ<œ÷&šgF~!æwIa¨€ÔWM õ‹Òl`â ÈÌÂ%åÙ-ä‚Äüz�b~“ÜCmÝF°n˜\áíŽT¸ `W 8Ô\rW ¼1+éž&r:YkÕ¯—³ÊKB\ÿ~ƒÔYÛŸb+%ÊÚ½óhí°dA-À9x]Ÿ#çÍDnµ¼rO)ìÝ�×�²íl\º~“•Õu Ý]þãRŸ…FS’Ô?x»iDsâµy‡�êj&}·òàöĬ¹Ž¿ȼ;‹Ñm/yÒD•üÁ%ât)A©ï ÝÉeFû#s<‡ñp‘ÈE‰ùÙ*[ŸZ£6Y�FàOaOh¢ÑÂcp¥nðv”²JžÈu‹ÊwK”>µ‰|RÚ�†Aü°Aî§Ûɾ3oK|g,Ú׌û÷ðRœôwÁ6”îÒà8¶pDZpõúur^=°¤ùƒ»ÏmXkÓ¶£ëh7M‚FÞ°SZÝ,Úsç^Aæ¤óâÐÀDRg«Âüáá{*kŒÔ‡ ¤RëE¤¹Ïœ¹GÛÙúÞ\ƒŽl[ç·(ÞÜ û#yr÷·ë‡�EfžC _�£:8OÚ‡Û¹iR}¡Lí¹*⺰¥+Ò¶óOBúý9ÒÒ…}nŸþ€µZ€PƦ,7ªÊGä™êœ�¶pXy@²zy�ËËô÷†wêý$ò.sBòÁ£–ª—·Ûþ€�¾ °•*ÎQß}�}gÒŽ¤Òªþ~|<ûZ°ý_"ó'Ýrìó�¤úR¤N§±¦MÚÛÛbjfšÊŸ–±fLòïë´#ë&o¼RÂ}Y‡jÕË�Ëq€eQ¹P¡údñ:ˆŠ"<ºâ!AæÑ6Œ.‡#Çœ 6v’ºuÀ7)‚˜ËЖ:&%]ùyd8/ †`: ¼ <bJpmbо=þY’8pçâÝbÛÛ€…É&€®B3é;ÍSów3°Ö6Š�…Ô÷¥I�Ù'ò<�7Äüž4 «aæWU~µ\øÚÓ2T.uþ„ôó… ÿƒðfÁ�¥K%öïÛOw­ó/kl}zóF Oý¹æA펀ýÅ;½ |¶ã¨À·Ë°›‘€7·ÊÔL NCö-9eò‡&púE4€óÇMú€z’7šI«^¥ºS´ÿ�l×™yq†ñ±q†‡h_ocþ©¶fÖȾ?OöÍyDÚuTȨTU» ݵ}µ`@z äj�ò·K˜ÏÔ`º»º<<¦¦&)gËï2Ƚ½Í÷‰8bY]ž hê�Ôç¢j jšw?ÂÏw�Cuº· BfØ…NbŸÈ|3ˆ ÁÄÔ4Cý‰Çx¤eÙ/hM L&ÃÞ}û°L‹••[¬­­í @m<ŸtvuÑÙÕ•X&‰Út7øââœ>s–{î½�¹Ùæææ˜››e­‰Èª–%Yß*A/dß�Ct¦|³"Òßc�È0Õ÷å‰vÈkNÃ…>´xEÕO—Œþ4m?ÞI‘ f¾7ÃØÈ(]]ÝäómL]Ÿ¢úé2µW*ä?ØNj4¸$BÂÿð@@}²"©¼T¢úõ2â² -ÓÆÐ¾A²¹µZ�ɩ똩ïO“}s›³UØîÏö7(÷-C}|þª„ÍøÂþê©Cél B¸Z‚j_ˆ˜~ö—€�‡%•—«ÌÎÏ3®ÖQ梫ZWë0ÿ÷àƒüËõ¯I§}Ö’R²¶ºÊÊÊ ««+¬ÜºÅÌÌ4“×'˜t^Q¿¸°àôѯ…�7b¨eš~3P¸¡fÒw’7óFà_ý¿ÿ<ø¦@ý­­Mæfm0°�a–é©)¾÷Ò‹‘�k›E{Òßo�>®l �¨–àKhÍØqÕ¼ãÚ‚JFPâ»ó4òóiÚI�ehÿçÝ?¿Îì3³ é)8tðËËËÜüæM¶&7ȼ/Gî¡6DÖYÐxôüaxÒXsMR}­Díé ⢠[Í284H[[©TŠ›7—¹±´„<&Éþp™CÇ[îŠ^÷¦¢Œ,�6H:Ým¿a-EúM4„€3P™ô®6 HDÀ6NßÑ%˜š�gD ååVRªÕÛüîG 0?Øãë.è.°&(�Þé£\.3=5ÉË/½Ä7ž|‚ž{®!_ÃH�C@ê> ®ØŠô�äݺuSiphˆ|S¤n{{‡�áð‘#‘öoݺÉùs/pîùçxâëOð�o? !÷Ž<¤D¼ô÷¾)} ¿í@p�Ø›Tëûå#Œ/4Õ4ª{ª7EûOvSìß`ñ[‹¬Ï®1>2Noo/=…³ s”>SÂ|¥JæÝy2‡³ö®F·A�Ê Ô¦kT_,S;WŘ2ÈÈ }½}ttt`år™ÙùYjùâAîƒí¤úO¿ÊèNÞ`†À÷ˆ9d…òCc‹”‚3~�€Å^œyTR=Wev~�ñ‘á ôWªTkÉL©‹BÝår99Êá#Gù'þ^}…þS?Y·^=û¿m+,øí6 âVŽ=Öð*‚K{öôòžGßË{}/ÿíñ'Ètf��€1”ÒKïZ‘þ�&ƒ3+v4B)ë|ObüH;áçÚh7èøh7•Ó%Š_.rå�«Œô ÓÞÞÁÞÑq667™ÿî<• E*ŠdÉ‘>œÅè0œ ¦`­[˜‹5Ì…æ+U¬+bNÐÙÑAßP?Ùl÷=€ó s¬7à¤Ë’=•SvŠè’¡ªÄùÜgìIuGòꤸΠHÿðuä'ò©;Ëw€·‚èLÏÍ1<4HÊÑÂ�½ž0nI®½BNÛŸFhÆ hê4`=Ú-­ Îþ?rôضÆðÅ/~‘§Ÿ~ñ€ ÿ`‡Ï›aéïHˈôw‹ôø+¡ïÁsRD«€~ÎÆQædžôÞ,¥Ç7™ùÆ,�7:¥­­�C±¼¼ÄÊùUª¯–© –ìWvå@ärU"n ¸ewº§°‡Þ{ÔjU–n.³¹µ�5&I(Cöá<¢Ý1+¤Ë ø ªÓ@„н[žFÉ‹Hq�±}3 ÊønT#@"ª…Cã@/0…}\øÙs® þÞ`¼ ½£ÃQóiŠÙw6¬™wÔ= X¯p+ӛɛ™ÑÀ¡C‡›nìh-¿òý ©¡Æ»2í†ïiVż;±ÜQ |Õ¿U̯› õ Ùã—Nƒ¶î¢vªÌÆ—7¹üúú;ûèî.°gO/ýýlnn²±¶Au©B¥Z%•JÑÞÖF[[;ù}yÒ©–”¤R)ŠÅ-nÜ\¢Bk¿Eú¡,ù39Œ^'˜† …óöN &kA).}•]*`‘d„÷¨ÕÃà¢ü|Z3 [ ø66 Âôü¼§xÏÞP-bø¿N½HÀMiuu›FÇZhl÷�ÎnûâL€¸0Èõè÷~ï÷XXX€Ç s4ë;­À—, Kzl°ÃcôÊHÄ2¿Û�Ó„.nHr‚7¼°k€ô±¿˜¡ôõ-¾±ÈÒõeúèèè —Ë‘ËåÑgÜ?{€`scƒ¥•%ÌNÎ@æm9²Çrö+ÉÜNÜaIU �jÛ±ˆcBxL¨>KÏèX®ÔvÛO0¼g£‚AØï†0íÅ+~8µ§kÌÏ/262êZÍŒý1Ô3ͪüÛÕš59»}w´ °]jz@ ¨g a|!333üÖoÿæ~“ü#Î:±p& Ò†Fâ«ižJ–þÁ#2œ,‚ó2‚/.Ï…�€4YÜk÷{»AÛÚFÊ»ÅâùE2+ÆFG‘’Àºt*•¢\.³º¶ÂÆÖ&ÖˆEêÝ)rµ“>�µÃ�¡Ù)è R*ã jp… SÆ}—Sî-ÌØ6ö(ÀP÷•PåIÔÅöìF`za>à Àyf^tf m7˜‡ŽoÔokOo/yç8óv¤áãÀwÒ$˜žžÔ¦{«QæøÕ_ýU¬¬EúíŒþTH… Qv•¹äqpè�‹`±àLz懈�r¿xfµ+Õ„¯œ¨›‘NÙà°½öÒû³tü\�ôÏ稩09;‰{äÀ¬Õ¸>q�é¥iÖFÖ1>–¦ý—»hÿñn{ÕÀÕö±A ôx¼¾¼jL(¡^‡4"}ä'ÁïþÓ÷Çyüj›Þ‹¡}ؾ€«Àa0ÍsÎÚ¼û¯Þ R©ÄK/žO‰F}l—Þx£n™í¼{0L 9[Éäq”¸ æ$àìì 'Nžj¸Ýgžy†/|á ð&Èß×,ç}Q'§ Ìg÷Ó“þ:K-�àûtR>,äÀ—ôª/- .‡$¾}�þµ 1‚dJ�{ �Ì�,[ÿß3oÌ2>6ÀôÌ Ö>‹Ì÷çÈ=І航$öÜ�` Z€—ä:�E}‰8]RÌÍtf€ƒŽMÉý.bÒ$‘ß!@ÝØZÀw�ý ÷ÂÌÌ<þµÿ£ôs?ýSäóyNœ:ÅÙ³÷púì=œ9{–�ÁÁÄza•½‘HÀ­ð9ÜV`;€±¼¼LI�‹o×àßýÎoóÍ'Ÿ`l|¯Ûol|œ¾¾þH»RJ~ùÿeÄ� ýÎŒ}h&"µý¶Ýe*5Ii,X7Ì”ÂoÃMrËi™_(U#™„$^p¨A©g{¾!^ÐÞÞ™wf±.ÖÂ~C²Ä"ýî,ùw´+ŽÍ}{IJŒ€ «$rsÅ™—È}J¾ bIfAd90ؾvÿOÂýÞÀ>-xÌ‹¹…EƆí—|&­¨T*•xñÜ9^hÇø³¥QŒzè]õ%™{íQõjòƒ‰Þ|S˜{øu|SÙ—|q‚_GžŠî´á2ªÚ¤D»�ÈÚ­Y–Dä©þŽVNIò‚…©œ%ÕþB¨ :%!g¡$ÈÄ2èÅWMy—”ûPÓñ¨eê<Äöqág� ÷Kf&æì'euM€$Z\X`qa�'¾öx$OA¡P ·¯�ÞÞ>–—— :Òè.À$Ú–p;M‚¸=IT,¹rùW._òÒ–W7°¤ óöi¶ô¾,jŒ»Suòú_ÕïV+ýCª¿F’«Ìïñ­´Ç Å“:Ä2`½¸�y0]Þ•ÒžÙð¦šó(÷çÞ¢ö¾Ê­žv›ó¯ÏPmÇ[ÞèExð†ýð>JE6"©ûêÙ8\ÄÖ΀5e±¸´ÌðÀ@C&ÀvHJÉÊÊ +++\½¢R«£zï€úšÁ¶"µŠŒV�ìlË�)�/H*Ÿ)QþNѵ-CŒæ¼°ú©ê·:S¡pVœäWÛ ›Æj .¿¸º’a¦ D`ßtBn[–…LƒÈˆ Óèê ECñŒ{õægžŠ©áþCCág-B�UIó¾(óÒêÌévÌÀE`ä!Éì�€i»Aá·5ïnÙ¦ƒ‚Þn“ UqrÙ }…N CÀ4˜_¬Rúü¦~Þî]QiÕk¼Écg Eb�‰ªy ‚S.¢0„㟼ôºò»L@ŸP²4–´ßÜ HË‚4žIàÿ¯³UBãŽÊ‚8Ÿ®$V¯�~RxÜp´í­<èË ðÔe7jPÄ«F jÕ¸µ²šèÝ¿ÝdÚWá5ÝN\ÆvÐd7Ò§[ (›I3°§›\6[ ¿%)ÿÉ•—Š¡Ýeª*«ŽÏù¢sNyåôêV85^Ò'µ’D 5©*M¼—nXR"S²!8 ó°šéݳÆDˆ{ðÖ+½&T¿0@7Ôgc‚\‰¨-Ü@šJ=دhÛ”pä^Éô�ùœéo=õ÷6|^ ‰"°ÝÝ{»EÛñ$QÊ0è+tÒÓÕnO›+Pý³ Å/­c­:'ÝâœJš²žã/œ%¹Y§þ{z¬ãñßGøBÑš—ô�ÌbM»à SÚf€”H4"cuëi4žˆ 5�¶!‘cÍ*}=¼z­ÍMhZvõØö?€¸dÿö›Åb“�ì„Dè/HqÀf¶ó Š ¸ÛÒ¿YPX^jl9d»äj…Îv„%àU¨üI‰ÒßlÚï¶ M|Ïs­¤étySÇoþ©ú.À$Êÿþ˜ì ÒÑd] €LPýލÓ&W¯CJzŒDóuÌÀƒ¸ÑN"‘®í5&aJA´ dY‚e¿Ûp÷(™áÃ42:ҞܑÐÊe?ÝŽPàm9÷t“ͤaÌ/רúëvÌ}‡"·”ÄåÎwW&äc‹k.ÊÀø¿> ø%¼–ªÎÆVÅ ÷{é��#6¢Ž‡üAÕÜy:g^œ“Äk_£ÞëÊjÓêÌÏö–às@Ñ>92ÐOG[>¹^SÔÇ©{ Á°àwBú !Znÿ'Q*eÐßÓÅf±l‡ {NRZØ$ýX–Ü[Û|59<ÜÀ„Š…•¡²*($kvK®¿ ’¯¦5øóH¼³Ï’R 2"Z.:”Hš”¡Ìs!PÇ’ C ð>JŸ'4}FÓœÄð‚H£õUªóÀiJ ÝÝìac}�r¹œP¹µF(º´ÓcÀ.m[§i…ô¯×Æn†�£Ž¶¹l†•õM*“5ÌÏU)^ªÙa¯Fý÷zÉ“T1¶€+܆qo¹Þ*€Êüá&]jbbcö€ ¥Æ^°<`s›ˆ£�c"—ç= pÓû•j¡ÁÒtí9é±Ãˆ€GtÌÚ¨Âaª7°ÿªý*öŽö6ÆG†élo¨»øÉ?ý4kkkÌLO3;3Ãìô 3³3ÌḬ̂µÙúWÚ5² H¥¸ AÛŽ ØlçÛ¡zK€©tšÎŽÖÖÖvUÅ%×BͤR ôt³Q,±¶YÄú–EqfƒÌûsäÞÒi+eŸðµ õÆ£4ñ�äÓdPªJ„¡¼!6ŸÄ犪îrR=pP»Kr&™Gj‚ÿbúõ˜Kl×�px Äe�,Ir¹,cû†èqÞègN€¡áaî½ïþ@š:WWWlP˜±ƒÔÎÎÎ2çüMOM5íçJ§ÓÞá"c×Ûý{ÀÍÜ.µzï@œ ð“?ý3üO¿ð¿008H*•¬ÕX^^fyy‰¥7ìÏ¥%–——Yºqƒ…ù9^}åeVCáÂëE]éjoc w3‹K¯–©ýYóõ*ùì 5”Žg:ƒ{Œœ�Ñ&¢X-£ÓT%$|0B¦ô&€%-;.`"i H£þ»éqê}=æ�€L=Ý= Ç™vø³×A\ÈMI:�bdt€¾={"þÓ45 åÒ�HU™¬Pè¡Pèáä©Ó‘v*• ¯¾ò2/ž;Çß}å+ mT#ï�Zz ÕeãL€÷ÿÀöʧÒi‡†ŠmKJɵ«WyéÅó<óôwøòùR]ä5 ƒL:Ã�±–WV¹qsëI‹­©u2È“0ok:r˜Ñ�#̤ žÔÓTTUO5WÚuÔ€8ž†J^µªôÍËB´éáGËn âxÒVf\‡V^ã ·x>¹¬úT”‡¹òu‰xä*C0<8À`_o ø‡·�*ìØI°zòÔé¥l6Ë}÷?À}÷?À�|ôGùÀc�Ö57¶yXG-; Ðê²–eiß`§Ïœiº}!‡æÃýQ~ów>Á“ßþ.¼éMuÛq=æ½…nŽ�ЖÍÁe¨ýi™Í?[Ç\R6*ëŒI�©a~ðæê-†ËÅ XÀV{�Ê–”N`O¥^‚VËèq�Æ”IiÊE$-kè¨käªDž³à¯¥}ÚoM0ÐÛËé£GèÃ0ü÷8»èà5f-yà±ãÉÁi¥B¡@OOOÝr; ®Rì>€Ýtò5RöÆâ¢öŦ££s[ãS󆆇9Z'ª°}‚Í·}³é ûG‡ìÝk`}ÍdëÖ(ŸÛò·Ƕ•œ,Ÿ.•¿¸rÚåG·‰šoHi!:CÏ« ‹ö˜\>v=ÔýŒß•„9�ªÜ�Èóò¯%<röº9qøcäR†RÑû vlkñ4êWi„ê¹_[_¯ÛÆð6@×÷m� Ø((Äí¸çÞ{wÌü.ÕSµìpPàη…ÞB�íyæn,S¼X¡òÇ%Ì·WiûP¢c'¶YP̪W‰¦s#¶¿K5Û÷!„ðâl{˜í¿é6¶U6úœÂåå–D^6‘/I˜¶‹wwv020@[ÞYÏWÌmh8'©VO%�aÈfƒ}‹Åºo²ûÛù1`7¿%°Ó•ý! (jIûf�Ã^´\gF¨þ¬L&þÑan®®±tkë+›K«´}¤Óy_Âxâ{LKBz‚Í¡ÎR›so)áù'´&{ìˆ,g:4Rv;èR‘˜×Mä9 qM€ ímyFí%=vÁjžSÀq –?O:;;iï°ÃËít%ªÑ ¢aÀihTjh#P½ô�–ÕÑÌô´ÖK÷¾´íŒÙ¬s¸CJIµZ%“ÎÄÚ»½ÝÝt¶µ1µ°Híi“­[ëä>ÜNîLü®±Xæl”Tµ É¶]À£T|ÙØN¥$ ›0‘ M¶]sÒÄzÁB\P†l6Ãðp?çí¹RQYÔ¹Q.B9¦?O¶¶¶0M3Òk»4qýzCåFn—°Ú-P˜�Ù Û�µ]“`}}­î8ªÕª3q‚þO–’L:ÍØà€�ö”ÿjË6Ò4Åy¹‚N¿$Û·î6Ï ƒ‘nµbφGX3&µ¿­"ÿBÂH›)Ƈ‡8vð…ÎNÅi¢Œ!îŸû\/`’©hYÿñ3Ÿf±!Á¯_¿V·L.—£···n¹FiW|­…©˜=•r8@hó$„À¬ÕxîÙgê–•RR.—Ée³„×ðÝ‘×L“åÕUNOBþG:‚Qv1¹¶&¹ IDATp|o‘+AòÊ™wœ>œWÁr|R68®;HqZ„kÞÄ:g"/HX±ßo00ÐKO�=¯\�ïÙô ~üH®O ‘¿ÿ»¿Ëÿû‰OpòÔiî{à~Ž=Æ‘cÇ8tøpÃgö…¼ñZýHÀÃ#­9äRðv~RÙ¸=ù_¾ÄåË—?Çöîe||o`ƒD=­àü¹sl4àqÛYXr@@_iªY·ÖÖYY߀¼Äx»Aþ#�¤ÒžÔÌÝÕ=8H"“>nI0ì$lLp„›À­DgÞŽ –Ù6kƒ…5å¬ ó… ò `‚¾Þ=ô÷îQ^ç%5mhÔþ€iõ 4HJÉ…W_᫯xi†a°oÿŽ=ÂØø8#£cŒŽŽ22:ÊðÈ0ÙlÎ+;59© ¦Vî€ïl–âú²,‹¹ÙYmÞêÊ ßù–>dr:�fdtŒñ½0¸¡Â€ñlµo<ùõ¦ÆjYÅR‰T*…a¬o¹µ¶Ž%$„Ì»³äÞÖa{Õu^y‡É„PÂ�“Ì^*S{ «^+å"cHš¾ý+„°�€qeã›iŒ’hÊÃè“9S£öxÕß-!—Ír`lÔ?ª+CKŠ�9¦qú%�`í ˜eY\¿v•ë×®Fò„tvu‘ËfÉd³”ŠÅ†À¦Ù3õhG&Àn�ÅÂÂü¶0Öj5¦&'˜šœÐæ§ÒiFFFßÛTôU•Ö6¶XÛ*bI F!õPšÜ»ÚIõ¥pÏ»k絪†Šh²¶¼Œ‚€ .‘f“ÚRÉr_¾é4ÞªUË$g_CõCë5ÓŽÒã/W*Ì,,264HZw^_#Õ}ž¯Ô_)Ú.I)Y_[£TuX6£4²:Ðr@+L…Ý:lÖjLOMm/Ôx¹ÂÚæ5Ó‚~0î5È=ÖNz_††X/$®›Q¬ê}=Ï¢XÒÙ°$|¨F1öwxlMQ£`¡3…:$<Ìbà©I6¶¶¸<1ÉÈÀ…®N¥~Œ§ßKL§þ�štFedD´Ñ¥Àðf¿Û²¨Þî§0ÍÜÆ8õ¨\©²ºY¤Z«!º@œäÞÛFæxNáL_FKÍ�çæª>ÄàíëÙH ¼MtIŒVŸù�Q8Þm¯˜AÄ�Þ17!Ã…�/a»$P7µ%¥læl–êù ² ‘�H¸ ÌØ’zza�µÍMFúmSOÃàoA¨_y[�6ú*p°—w²î¦Xhd[ðnQ+#o—*µkEÊÕ*"œ„Ì£92gÛ0â"訢XñxFaê`Å(¹+*ÄR’Ýï¶¥0¨ÖPƯé—‘ž=Óa]rëÚ z¯«C¢Ó óHób ó¹ìÆA¼rÖ66Ø*ôÎò¥º:„€pÏKì4ÃðaÚU'à�ˆú«ëÿNq©fš¬m)–+ö&™£�z[–Ü›ó�†V‡õùó„@A¥@�ÛUû=ECS ^S^žg†8l†æ¥ ºÚ�Øû*…Ë(Dû cš�]:cIM#† ÌÇ«È5‰|X°Í‚ZÅdrnŽžî.†ûú‚Gg›Y�­€�0¼Jtww·¤-—Z¨e±ï€ `IÉúf‘�¢³Ï` RoI“{{FŸúŽl{ ïÚù‹cðÍïj_@½µ-å²Îôò9׸^ŠwU3܆_Ã)ÇÐ.˜DìwÇç Vˆ3Âɱ¦D¨‹NAúCYÌ7jXß1¡€m\¦`em�Í­"£ƒ´·µiÑ$/u»Ìß*†S+^¦]÷lnW0P°óÍb‰õÍ¢#¯Ä=¹Gó¤÷eýBª`|B\,íwì9é:3@å+õñ4ªˆÈ•ž«ì¶ü<5Æ€ô4¿°÷~M·Å$}8|W Žgw„î¨Q³A&eú}¤Ž§0F ̧jÈ‹c¶YP½UcbvŽÞB��Þ=Î2¬¦ ÍŠ€•°88„Û£9·r °K·ý4 $ƒ‚išÌÏÏß–qËUdzoBÄqAæ±™“9g�¼Â¡.ß Å§¥A’P§¸ú½ ë@©­O�Li‡Am¾´¿Hw+pR‡1¦‡w€( ’Hß?�ÔD¸4ƒ@n•NAú½Ì«5¬ïX�y?°â ÁÍÕU6¶¶ ŸË)ãuÇÕâ–oÇ©•q\º#�Dóós˜»öFû‡«Tk¬nnR©Öl xÒoÏ�}SÑfD9GUó�‰)…bD +vnŒ 2z˜é›� é˜ßÆ^¢ôL€0¿EÔ·€š/îå{…êðođݠê[F€q8…0°žwŽïuÌ‚kP™¨217K_¡‡¾žBˆ‘E°iá¿ 4Žá[é�o„Zí„»\­ µöð‡3-‹Õ�-Šî�¢a0L‘}[žT_:T\Ø´SÏ PÉÉKÒâÊ6f×'“Žùíû±<5FBÐPêF„¯ ez×û?aƒÅ}Áj¸-ðvñ…Z,&„ÀW:QÑ)0Þ–ÂÚo!Ÿ±`8Œ‚¼K·VXßÚbd ß>ã¡ô"Ü1Z³f&Jû?ÿ‹¿ ££ƒù¹9æççíOçonv–™éiJ¥�Ÿ]qé¶ùîäàLÌ`&“᯾òw^èå™™if§§™™™azjйÙ¶¶â_ÝT®T¹¹¾a;vº@œdÞ•'½?í35áO‚\©šjã�ª Z€óésù§ÉŸ¤Ô¯ãŽÇïG8_„<´äá„ÄÚÿa —§„ ÷8X"áö¢ƒSÒb$°Æ^¹¬—%¼,¡¸˜ƒÊ¥ ³³ô ôzó\"©ÖÑB³¹Ä0 ;*p`HÒû\ZZbzr’©ÉI¦¦¦˜žœdzzšéÉI6› þ÷Ò Ø,Å-¾õ‘·qøÈQ„<ð`0–Ÿûãݺy“™™if¦§™žvbš ^ãÙsç! …Ì;³dNd!㜄!&ry_€p¹6l¸«u¸/ (×@à}:¿Ä3\žŽù…åÆfz)dÀ èKÿªÏÄÉ÷ZUAÅþšvšÑ–ÀŒ�èØ×nZ‡Àx“@ŽZÈsžŽ€|+ð:,/®²±¹Åp¿ç°L³îK@:T72¯‚��¸ï�"ùÓSS|ásŸã?ýÙŸ%¶ãÒ?Àô”^xß| nÝ=½½ìéíåÌÙ{¾ô¥/ñÏ~áŸa½Ç"óPÑ™òZ ‚ŽêÀ)ED+={>¤%x¨ }_�¶Kë�!†ƒRƒµL¤—f©÷ -o@”?5Ò_íÀuCöDåO’ìN~�=¬‘�6¼rIc5@Œ (äE ^²Ó8 Cåõ“ósôvØÓÕE¹�°\GŽí<èØø8ÿÿ‚—_z‰W^~9±lOOmÎÆ¦VRk‚‹·�¦§&•+{*§Ri{ïûšjGUé>ô¡‘9ØÑ‘Ÿ=®ÍéN*wÆøŸÞ¤ î^ˆo]ç& -½ºí3¼ô«Elù8оÕGM2˜æý)>ŸÙÂÏ€ 7 °"�«ƒö¿´ÁÖÖ8Ðð€T3Í�G,ÔÐ3Œ¯M"Îx0<¬‚|H"Gayu•‰ùyÊ1Q§TÚà@Ý2�R>²G!J»±Û€Ýô ÌLÏ–a§Ïœ¡·¯oÛm¦Ói~îü9¬—-Ì™�m�ì¡ôØINtæE8Ô§ù@Žª0xZ³Pü !æ¡6T8L®Ø2ÒÕp‚<¼WO R¤«Nú«6¿êýWóU° ß¿TòÃŒí©>1À$m!|Sqe�~;èÞ ¼ØÄ¾xj™‹·n±º¹™èáïëïo4rò5îÐNé®ÒÌZ�……耡áá·ýñ_ú8Æ óù XŠrÌ€ ³k¬ïCJ©ÑÂÞ<÷BújxXuU�ÀE×Aç)%�BrË8/ñ¤~¨?·ý”‘"•2lÕXuF¿D�P÷FxŸºïá&#ãoÄÔˆÉÒiê ¼‡ÓfÛx/ö ÁÀ�g�ý°^ÜbaåVlDàþþþø6Iµ4ŽÝX„» æææ´Ç/ûúvÜöÈÈï{ÿû°^qµ_y’)<‰Ô|MØÜØs^ªØÑƒ€›«^«@ ®´¹Ì­ª÷�tÇq&”ÕáW ôTnáW Ý“+ý…~tóî=øl„ ÚºÊ}…ž“¶ž;æ€vA”êi{€‡�÷yl³Àî‡Z›ÉÂÊ-ŠŸÀN4Ò05¤ì‚î:ÐGjÚ~üý8ÌCíÙJ+d”k%˜¢„¥`¸EÙ8D€Àu*Ú�«Þ ©0}X*m|nN„ùCcWµ�°ô” ûJ|ðôTúùfU�ƒ:û_…†$»rãRóPµ@‘�÷‹ÀËÀÈ!Éòê*¥ôµ¤”,,,Ô-wWi»µû)..z_‹à]ïzCCCX¯Z˜S5eÞ‡¤Ÿ:]Õ‚Z€7¡ü·¨‚0HÁÙèVi2løU7É5’4œ¬ó5€X¸¢]cc¨<'ý㈂dÈÔgÂÖH’$xÒ4S‡­¤úÔÕI¢ðà1l?Áë –ì¬JHJÿ‡O}Šï½øâŽyáÒŋܺy³N)ÁH‹C�¹tW-Æ…V~êßàž{îåžûîk¸-)eÄI#„àûz _úË/S}¶BjošÈ>]¡Ì­@ì-Õ¸Ö¹ô43_å+eiP=QèN|/ÞŸ+Í ñL“!`«¶atÛ jž"y…ò°#ÍÞW{òšZ ‹l$ }�Üwhˆð‰kG†œ“õ6�c`˜Y…”aÐòÔåsŸý,ƒCCœ½çŽ?αãÇ9zìXS>«§¿ýmMjtÞŽŒìܦ£» â4€¯?þU¾þøW9zìïyô1N�9éÓg8pð`ÓžØj©D:�¢öª‰ù–*©}YeŽ–Â;§|:6Ý™|›ÃØ®(OFЂ(@@P9©ÞSPð), m3ÂÑWTê@1å4Ò]Õ¦<àP}n“–RÅqÎÍ•ÐwïÚÏ”ž„@¿É÷“@e`οìîèˆ�g‹ |í«_åk_ýª—ÖÕÕÅá#GóþFFG£·¯�L&ƒ‚ù¹9>ó'‚Fe P_?oËrké.€d[èÒÅ‹\ºxÑ»nïèàäÉSœ:s†06>ÎØØ8£ããÚ·¬þ×/™óç^ «­�[‹TŸ©’Ú›Áål©p_D P˜JhôOéÁ‡ÝŽŽ!ƒ à@†3±â€À]¦kæ¾·€v6yŠˆ‹ ¦vù×PÀÿ©2¥+ýþ¡—ÔÞ§¯þ»íz¾¢eì0(ÏÁÒçÕ¥y`ÂþšI§éÈÇ¿åIGëëë¼xþUƘ1` ÛÙp jT¡2X"}æÿoïÍ£lËîú¾Ï¾SÍó<½Wõæùu·ZR·Z­‰A˜8€´Ä‚– &"+Æ6�`L`9+V€+ ÄIì'^$ …ˆƒÁ„KÝ-u·z~¯ß<¿z5O·æºÓÙùã wŸsö™nݪW-ô«uêÞ»çsÎþýöwÿöoÿ6¹gI÷fª#®SšÂA —™móH*/#Ú7à|V…†¬Ê/ü÷•¡y÷;ȧϬ! Ü·.Ì3k‚Þõ0‡†÷Æ�€ø§£ÖƒšlpÍ ü°DfÜFUF�ÖXîQšc¼2Â9�ÔFLÒéï6ŸûfŽ„±Ñ€¨ ðw'µëâìøÊR™ÂŸl"^4–éëëg¹y 0O­¢­­�•ü +´ÂΛ›d¾7Gîé&«lá_ówîR¹©¨ÑßAþ›ðÁ¨" /ü÷ÆcoV¡ ®ß.e” Ícî°çÎØ£ÿÞ"äz¢ÒcºiE±XduuuŸZ`ŽÌmÍÍä6(¿Z4ýûÛ î�…œ2p`»ý©r9V4ïÏÞ-'EÄ®A ¨‚|Â@›Ý"ÁX©°ýoÖI_Jshì0ÇÏœ£¹¹…—þú+”ËeR©£££üGßÿ)ŒJ…ׯòþê¯Xùý ››4~¤Ùasm…Òó#lôWÚ¥m¸ ‚øT­S‘3�H¡–ù¸˜ò‘¶ææêiC>ÚŸ)±MÃ#{§ØsC ¸ë¤{;ú ÏeRsc#ét yMR¾_RF)Û°Ç †½fœÓ¿u|"-€j($ƒóøUä¢ ™c_¹#Ùþà 2ïf8sú,§/>IsS3w¯_!ŸÏS.•(‹ÌÎÎ:[VŸÿÈÇø;?þŒ¶ŽbüE…ÒTÉ~Jû¬gc7Ϲ�ã<7ÝèïÖ¸�§¼£»û9ye‰«^Áƒ7�ihh Äu³¼t*E»kç�¾ÿìí• ìBè{7Fõ8^¹Jñ^˜Úššaʯ«sRgð­vXçÞ†W)�IÓ?0°gå»0Î~jü½´;P{››XßÞ¢rÝ |¿DæHÖêÀŠGg´“îU ¤lT*Á¾ƒ6ì逳D¨hû] <ߨ+ýñA$A–%¥¯ènéapd”Û×Þåþýû;vœïû�OÑÖÖÎÆæ&ss³\{÷2>äwþ÷Á�~îÇHgsŒçÔÉ3¼þö«”Þ_${¤ê2KÚ£®‹Ù¼Ð_Y÷‡ðÑß.B(ÿ‚ÂtßC‘BÀ-`ÊüÙÖÒB“rjモç=÷ 8Úîêöz)Ð[f2P¿¶!hkj&¿¸AùÕ™ÃYdš… nU·R0@8«θdê \ B/I%.HXxòUfËdf¦\*óðáC>ðÁòŸþA†ØÜÚf}cÃÁâ>*££ºò^ÂØ'%`2j´·¨ÄFÆuIù^‰Ì±,êr`઀³l(Ã… ŠlA u&ENò` ‰3Ö Ä¶ ·¿ŸW¯ÒÓÓËÅ÷=M&›!›ÍÒÕÕàœ¢[®T8qæmºÃȪ@p§ó1^Ðè¯2½î>íxk?6’Š ÿƒXú¯›ñ§NœŒôºÓÝÓCWWÓSSloû  ¤„]YgTϽ8uµ¢7¨æïîîaìÐ!ÖÖV™™ž®«—U§6!èéèd~q™òKÖ�œ©E«/X)ì)¤ÂåÒ.k3°Òh¡pBðÝÈ� ©J �`uu•‹O>ECC“eú+èêì$“É ¥¤X,²½½Íá£Ç¹w÷.ï¼õ&|îyR"M.×@f;ƒ,HÈ*ïÓa(Qe4‹é\Ë€žtÕ¼Þ{ÑŒþNynþuZá]û�‚ÿAÏæ;ëhoçÈÄËsþáÏü ûû¿)%ËKKLMM™Nj=bzjŠ©IósnnÎ4öÙåØw`\¡àEö»õœ˜J@wYíííüùº»{\Ž?g,·Ë33Óæ§uMNN2Wã¡"}½=¬mmQ¸V |­Dö‰\un*l+¿ê¦–`!`w{»Wzž�Åá�Õi��¼ª§‡=jY½ÊÅ2©tšíím›š)•Ë”Ë^í›üÞÿõ»><Îßÿéÿ‚––š›šéì覽½�ù¹Y*å ¥r™\Cl‚±e�êPŽFs ½ÂpÒ6„FaF©a@ïè/ƒG¥ló»2ºËª QËÓ1 üσxG +æ{¼pábui7€Òé4ßý=Ÿt~w÷ôÐÝÓÃù ¬ºªyËå2333–P˜djjÊüþè�&'ÙØØ¬G¥ÝxŠ#| ˆ©÷Z0;ãgÜû‰ÿ”îîWZÛñ癳g|mZZZäò;—x÷ò%._ºÄëßüf,û‚\®�G�réÊÊ/Me`;T×ø%Ò°˜]Õrû„U!Pý§Ü4Ê@)­äÂÁÂU&ÕUGQÍôÑž&Ý kù<���†ÁN¡ÀN¡ÀK/¾À£G�ØØØ`vfšæÖvr´´¶�N§ÙÚÚ¢X*Q.—‘• år™ôNδô1U8ó~ú; ÓÑ|zGûùxÒyóV¥±«©†ë¸¿ \¹`Æ>|˜®Ž�’BÂ1c Êd2Œ��1:: ü +®P(ð÷>ÿùHG °·fÀ°G:�°ˆ ³g þÈG×ÕÓÓËÇ>ñ >ö‰O „ X,ògú§üÖoþÜ¿w/°œ\.GWWwïßgóÎ¥· ä>ÒdÎùÕ½º³ !h„€�Ì*[Y�øn *�ÖNBK%Iùf*�=߀#4eØ_R)Œæ «ùYZ˜gôð8›››<ó¡³´¸Èñã'8<>ÁÊJžt&ƒ4 J¥ÝÝÝ”J% Å«««ÈvIª5¥0šWéGóÛÏAºÚçBR:Ó?‹*LíCåŸ-,þ¥X׳QhÄ5ú744púä)'ªâüÐáñÀ¸$”Ëåøøw|G,°—� `·È@JÉÖÖëëë®ð¦æfΟ?«®°6är9¾ÿSŸâë/¾)‚ãG�òÖ¥KT^-S9U&ÝŸVྕXDÏšžÙÙ=8ÞÛ1-´ %È¢¤t£h®ÅßÙ*I÷¦Ie´ £Ö–îLSìÙf#¿ÉàЋ ó,ÌÍÒÞÞÎðÐÿè~‰ÞÞn„HaoYZ_˳¾¾Î©Óg)‹ä——Y^Y&u,…h¶ÎNP·+#· Ç�‰‚þJœŒ;ú«á�Ê?åB)O¥MàmLÝpîô2é´“Ìw€òpGÆF©E�)�Íåêæ 'ˆöÕ8ˆQ§§¦|agÏž#hŠ™¼¾(åa6—$ý}t´·³6¹Nù•éÿ¸s̳…€Åà!�€3šWûi˜ �;’Òõ¥¯L•«f™)RT6 RÛ]}<©�dXú¿9uê³33LÞ»C{gM��d³æh]ƒÍÍu¾þâ×hkkclü;…Sï!%™ØK€^ØOõ9( �Rš›zÊ 2aпªÍžxG÷3S™[*ÿ\ðß;6€Û€uôD_o_u„µÒ‹…ÀyVGGGõ>wIqv í¹]Näv`oxÜ%I;;3ã ÕKÛ¤(ÀßÙ ^²B�Íf�þrâØQ^{ó-x*狤'LF°ø]+l.ë1°W ¬ÑÞžÈmƒâ•å‹p交««“OãÁä$ó Èm¯;ÝÃ1?rÙyyƒ7ßxƒÓ§Ïðî»—M�ÿÆ9„8J¥7®]ãßÿñ±¸°ÀsÏ‘J3uÿ7oÞ r¡BîXs8ó+L&¥„ ÿr›Êƒ ™çÈË9†RÕQ^Vmþ}¨@ª·áý=Ž?TÁàA ®0•æA\2Y:�æÂùónõŒ””B<ô¶¶¶Æ%%CËcîþ«sVow|uA»�ØûôU©™Ùuáa ›ÍâZzìꦧ»›¥ùeJ/I�d¹”²@°6ƒ‡¡+Ïf…â»Êß(™Œ¿)éììàÄûŽÑÓÝ ÀüÂس£˜ï^42ß“cã÷6˜œ|ȳÏ>Ë[o½Å ÿá¯yçÍ7hjjbgg‡••r¹Ï=ÿ<£‡�0ùàß|唎—hüT "çYêC¹oó›QFÞ òF¦ ò¨Dåb™ì³9R½i…É•r|£?ÕrCF÷Uêèï3Ú„þöšÿÉ“475*RHP*C,ÌF )cšÊÆpž‰;ÿß�PØ÷Ý€:&Õ)»zºëZïÖÖV`\6—s˜Ó¦ãG�°´¼ W¡|½è(áüBL;»ÓÙƒ²* ëÊï(}£ˆ¸'�Û’ÎŽvŽ?y”ÞžT bSc#.PF àÈžh ô#0ûû³,¿´Ì‰“'éíéavnŽ�õuÒé4Ÿx’£'NR,–xýÕ¯sçö-J‡Kd°‘TO:ó›÷m¬VL»ú£ ïHÄW¡xo‡ô³2çr¦m… Õ•6;£¿*$BF©Gù§C6ÀMàžù³³³“ñC‡Ü÷†¤PŸ&&5Wc̹ÙhßC»Ø%ìøÀ½û9 Ð!€•¥ÁŒ‚ñ IDATåÐ2’„—J%®_»X.›sut´µ3Ð×ÇÜÂå—Jd&²ˆVkƒˆ°§Õõ>i(ÆBÎLßšLY«Pº\ üJ q_À´··qìÔQú,7Ó*@CCƒy€‡ª„ #{j)$Ùã9ÊG°ýåm®Ý¼JÓý&9|xœ†æ&–ùòŸþ KKKˆ.AùÙ ¹�6’îϸ߿õL½ ?¯Æ_®¦G�qà.dÓŒG’Êÿ[¡xc›ô‡²dÆ2ž)n†ÕéÍàè¯äu36.èŸJ¥¸xþ‚¹ÙÇó<ÃV^záŽ?Îé3g¬q}Þ~®3š>率¡ú®èx:ì՜ߛvvÚ¯¸téò++tvuíZ¼þÚ7ÙEYe4{=~äó‹‹pJoÉ=׈3Ì Y­ÇR?%�‹J—‹”_+!(B[[+ÇO¥ÏÖò*£·s€ã£ÀqáíO§ vÒô¡,M?‘£|·ÀêË«lLopÿö=(€l”Tº*ç$ÙähoÂ�Uxn­óVE:æ·¿%4‚hˆFAkC+ï{â Þ½~�™7fÍiÁ“e2OeIu¤ð2½¶«UF�þ^!bÓðÈ 3ìè‘#´µ¶hšˆ<ôê•+üüÏþ,Ý–-Šé ö,§Ïž¥««+4¿JqÀ^ú°©¦)@½ƒî@�—^x�ð|ìŸàoß÷qþÂEFÇÆjjã _ýjhÚ\ÖíöɨÍÍÍ 0=;KåÕ2ÆÉ ©¾t £xÿfN¯  <[¢üV‰Ê;eĤ€2´¶¶püÔúûúœÚ”Š-ri¦LÔ­¸ DªÎ ¥&ÉÍ‘9šC–Ì‘Zn¤šSdÚ ­(ú\åYhÆav;ØþbÕe;¼ä@t¥�MéT†l.Ç“.2<8Ä»×®RüJ‘ÒÝég2¤�eÌèƒþÕÑ_ª&tô÷¤�*ô¿oþlkm娑#¸|5(/ ¨´¼¼ÌK/¾ÄK/¾ä„ qê̆††èè§·¯Ÿþþ~ë{Ÿ¥k2Wâ²×� †%à~ Ý*˜Ðý+_þ2_ùò—S {òôiN�>ÍéÓg8qê###ôõ÷‡"�¿ö5W¸÷凹\>61Áìü<ò¡¤ôj�†ïm6!¹´<úJ˦߰ô†¤2]¦ôFãJ1%À0ÿèÄ}ýVÛÀ�ú¾¶»á7DÊH^˜'Ý?DDWºªæ½ê¨j—ašö _!n¿n¤ÀŽ„ ˆŒ©ÉdÒèï§§»›k7n0yóÆtã\…ôû3¤ÒnÈoWé0¿wZà�àÐ\ú !¸pþîv¦0/F 5�Í0З…tvuÑ×ßGWWWäq`MMM>ÏÖ{q ÏcÝ (¥deeÅo|@¼ñÚk¼ñšÛ p6›5ý®�0<2LÿÀ€i»½ÃÖÖ7®]×H|w~-s hlläðØ÷<€·¡|ÎÚ2ìhõ«J±ÒÃ2•׋× Óµ´4¡þÑñ ú¨ï‡ñî«¶SZ| í>Þ}÷  �&Qºq®¶iG}õ·†ùYÒ˜;!%dÒö|ߌÏdÒœ?{†á¡A._¹ÂÖ+Û”'Kˆ'+¤ÏeMê\_Qü© ï<åì4ê迉 ú�:DgGgÀ34Óø@í+[¾¤dey9Æ)@&õõ÷Ç.7NXP|Í ^{fcÌ…¢¨T*ñðÁ>xøGø0B˜»ã´ióãèáqææçÙšÛ¦üõ"™á4dRfÿ(””)³·¤c_ÞÙÑÁÑñqg9ϯ h«ô÷;‡w¦ #õP_�Æ·Ê­šõº"}Ì_õéïDši �0, VoåéîêæÃÏ~ˆ›wnsÿᘗ”ïI} Mz4 )©ÜžÑ¿Šçþ¶“³;ÐÔÔĉãÇÁa?é”Jeÿ3{L4Pg/@AB!–!P=6Zš„’0¼—²Ùœ~äTÚ*R‚S'Nðæ;ïÀU(Ý4}”ï•©|³dZí­˜…twuqäð8Ý]þƒIt&xœMB)€ÒŠp/y1Ñv`;®^;ô¶··YYYIÒÞºS&®Ï�°—=˜Ìí KB;™tÇÛsf/sz+ÓÂl•y=åº5~ÁŒ¯©ÏÙÖl…I䄉 [ J Mó\mö PAKs3O?ñ$sóó\»u“�¯ï '%\†0{ðLú§S).ž?OÊcëoÞ®À}zµ¾8 ¯¿Ÿ±Cc¬æWY^^f5ŸOtÊo\jmm¥9Â;q½„BM{’*ƒÒ?šœŒ]Æ^P*•"�N[S?±n31zÐ i¸øÔ¯*ú|Í@ÞÑÞ¯/ÜWuBI/%΀û|áBwîE Míïï§§·‡{÷ïsïÁ}ä<ÈS&pAÿ“ÇOÐÚÜR½p¿ U #Ô2ïÌÙ³üêoüºËG…”Ã0ȯ¬°¼´ÌÒòÓ�¦¸{ç÷îÞåî�;,..–Fµž”Ä(H»p·”T0L? †ÿ?ðéOó�~ñÙÜØ`eeű¢Z¶®üÊ ÓSæ¯ÕpƆÿfëµi¤®7*O@„D GXJÀ0÷‡ë�:'WÒz_…ûÎW‰0ÜyœleL�ȲD–¥9 5MÓ>¿pp§N‹Ç&Ž0<8Äõ[7YxkñP —Ítý}}ò:’‰!œÃà¿‚ÿæ—Yë &•J9ž��qÜÇlëkkܹs‡kW¯òW_ùKÞ½t)ÖÈ­*÷þCŒeÀzB~oø£�ÍfùéŸû9ºººèîîfìÐ!m:»¼ÍÍMGêÞ¹}›»wîpóúuÜ¿¯ÍçÔãÕkÊVî@›NjF0wêäÙ‰ñH†=ì×d¤Ò¥«FÑH Ã;p_V˲#|:HØ1S¦ÓÁS'£¢•jHsSO]¸h:5YͳֲNOw7½Ý=ŠòUÿþ|jT®œ8r„‰#ž,ñ˜²­½�‹O<ÁÅ'žà‡?ûYfgføü�ÿÝ@¿vÛÀõ ‰VvK¾%ÀðäSO9R0ΪDKK çΟçœÇ‰è¥wÞáÇ>ûÙ@g Ùl&põ�Ým ˜ç–auFímyËP—ˆóâ=÷ã]²óJ[Sy^ºpñbè Ìd³HõOÊê²’÷r‘e:ë»”2¢ -ÃJ¡LŠ «ÂðTbá{'Èpªqí«·Û!¤ù­ÆJéYƒ7ªÅR–¦HcšCU§N#ìr¼º÷è4Ô{Ÿöý8 ÁUZÔ“w?—0pôØ1O¶Ú­JÂù "uðÛ ÅÉ{`¯ltôÏA Qå9f·šø|>X&cÙªûæáÞû¯.O +…�4S§ #€x#¿™Öo§�G>>qª._ú®ßI+MAáç7 XBÅž¤AîX÷© ½òÏÛV×Cö¥­'zP) Œ«‰b¼Â0Po�ÀžnŽA:€#Çô=J¨èâó!ËŒÙL¶Ú‰ €dÊZ²û›¾3jUz>á`Çé×íÜŠkY•?IÞ½—ó4 ï[Lìƒ*B°?¥Ò ut®(e[ü¤.:yÞŸ+4à>ÃD"áàj‡ UŒóµ«N”t °›úcEo°¶ºÊúÚš/Ü>¡'iÔx0;D¥Rñ8¢R&«Ü¾TF~V¿ê™Mhá –¡ý­0·0àF‚È‹-™ã /Ó[á>… t݆›ñ±À·�Ž©�UMSÍLÁÊ?bµØÀ) ‚\� !\góíþkÑÐÀàÀžÁ5×Çé:˜ïú­HãÛÒ“YJÓ ¹a ò‚¬ÆXìi’QGô æVªR©¶]€ëkk\}÷ Wß½¢�Ïår455±¾¾žhÃP’€zLK­\‹ˆ+LÒ—³³³Ã�ë×¹qýº/®½£ƒÍ��ÀG šçº¤¤*×BÚVzÐä—RÂ6T®–�©Ž¢=Uõ Z°?Ì� ܨ¡âí©Â}5½”&*±§�ë’tg$BB»P²VÉÃðÒß;¤´G¾‹ÅbM>úcz¢$ð(ë) | =Ñ�¦µÕÕÐøt&8j®7³WŠ©à¹«!¥y–ýWÀÈU0:*ȉ舉©ž4éÁtÈŠƒ7Ð;z{£5ñ*ã;FA&ã;w1…À´KÉj»Ú˜àyúä²GLh4€Þ °Ó€éÀ^êêr÷ Ÿ”2éŒï>…ˆV²%Û#@(sG3„`|ìý=½lmo³±¹ÉâÊ2……ò¶„W ÊäwgHŸ´›øjñÿôMS4£½·íŒ/ lc:¸i>ƒáÁ!¿>2ÉÈï<ob©�•€A÷ìùíà'bz®—N ±%`=„ÀôÔ�ƒémJ§ÍSJé2V‰Zj‹ƒ€Â^L´p°g¦öOI*%hmm¡µµ…þ¾^ŽŽ�³º¶ÆÜâ‹KK”§+Tþª ��ó¼Î@àŸë«Lïb\G0˜y*ó9[�e‰\•¦Þ-kæÁ¨í­­§½µÕ)«^#¿¦×¹J ~ôÒ.ÂE•reOzÔJ©TŠ>çÈ8“ê1ÏKŸøt`oº8áÞ¸ÇêL(€"Ã&bn ùó»óøw°êæ®’ö¶6ÚÛÛ84:Ê¥+WØ™,Py¡LêÒÐì+$pôwW´.¡àñ/•‘/»ï#—Ë1Ð×Çà‰š›šðQ Ó$ðL·e³ ÊŽoJà)`¯æÿµRWww,Uõ u;8Ng@ã xÏHÓ­‘І’ÀýÄS3î,¨ Í3•Ð�ÍráÌ.]½Já^‘ÊÃ2é“™jÑÞª\¿5#½óis›2Ç(Jäš=š Féí­­Ú>uÞŸÖ{U}ñ˜;éÈoÓAƒÿ»9  –Ñvq8h-Æ@v\²€„C^¹l‚ŠÙ%Ü7˨î¶ë¤ñ:¹¾€\6ÇùS§yýÒ;—+¤ÇÓ� ˜jÜŠ³¦Gª†«úcÞ0=ð 9qô( \µ—ÝÜ£vøÈìt¥ºÔP-BŸv7â  €þ�è€}Ù è­¤ÞB`ê‘Þ °&ªA•Põ¨S¸_[µŽ`v} ´·µ±6¹Ž±d�иyP•|NÑAL¯4JVÊÛr]26<Â@oŸ“z;Æ¿‚âpé˜[£ÁWKrj QÏí  €¾þÚ\�ÅÙøD{v0HXÜ®@t‡º)@mº€$£R|áà­3zèêè`m~¹4çWÚÖó H+\nHä¤$“I3:2Œôp¿y4 ¼Z½’T+I‚ËñÑCpôø1Y\\`iq)òXïdänW__@ºú‘”nç+u9,iÜt’ó÷`±@EÉ ~Ç+›ÜiƒjÙzèlïàþä$bSšu¨åJ4+àV›\Ӏ꧔žø ‰X ôö‘qöù»•“‘ˆ¹ãž›˜¬ Ñ£‡R9\tvvò/ÿ�MKK‹™CJVóyY\Xdqa�¥ÅE™››ãέÛLOM…¼»ð¾e´:�ºœ ”$nqq‘ÂÎŽ6Ý'¿÷oñ]Ÿü$½½½ì ¬¯­™~Ö×Y__gmu•5ësêÑ#MNÖ´Œ“Q@øƒž{ PVÕi47ÓêÛUŸm{.W¤d×UîA Ò Ó Y�°­­.•‚[Q/1wع‰�eÄ¡eHGR.…�æÿÉ�þˆÃü`¾Çή.:»º|®ÂlÚÜÜäö­[ܾy‹[7ÍÏ;·o³ÐçUê³À^)ÿï Š«UL{çÿVòL&Ã?þ¥_ò­ƒzI-g{›Û·osëæMóºqƒëׯ³²¼˜?moR‘º1Qø8Pÿ,‚ÐCrQ/ô°mw°´¦o™*Ò×À~÷§4-ê¶A–% ¹œRL0ß|¤O¯K»—è¡R©D2Ï…'Ÿ�÷+%ÍÍÍ\¸x‘ /:á•J…úÔg,û—` ›ì•P¨éh°Z…À£G“Z$ô¡˜ÞÞÞÈü*toljòyžŸŸç;?úQŒ'æ6U«,³ ofùºÌ±…:±·èa{{‘:Mȯö{·ÀÃðêw/ÓÛ¿Ÿ€[ÛÛ´·¶íz$–ºyü>¢‡¨ù¿‚' 'ÕħR)VC|SÚõõõõïëè¯À:í-•‡ÅIAõaÇÝРK×ßßÏSO=�K�Ngþ�®r¬Kš—®K+e5�ë h£yÙÉ<àz¹V[†ûRi»°MÑÒPÒÒÔ v¨2´AÕs°¡xFFMcåkR°¹½UMç< ü—ïîôž€uù«Ï>^ú¤õI)#áÿÐð° þ«ïCGaá…B�ÍÍÍÐú::;Èæô~/öÒ f;€8qà‡¸A+ÇOœˆ•?Nªçªùó:Ž*bAïj„PGDûëB›Ð 4ŸãOWö‰rì·õ©¸WÃ¥™‘lmmûN ÷÷p4ß-z€hÐÔÔŸ„–—–"Óô÷ïÝèF»²ˆŠÓÅ!€‰#Gj*_m¯�.•ΤqUu¦"ž€P…øÑµkçZµ€Ú„^(®®¯±¹½�jU¨o·G'KÀ-(4L_ý- ;$›Ë[Ã-ý¹ƒ4ÂAI[o]@ÜúôËyÕL™lÎ[Ëè°´-zt_{mÛ ^B =;?ÄCôrMJ«gÖãí³~†�Ǭ� ª&ß zð¤÷¾Ð©ÙYSyT ÓÒψ^˜,Áß ?Ó»tÍ@”çËlnnÑÒÜÌlÄfðãAæ`´®)èw’ð™™™ÀzlJâ ^£?Dè’T<·­Æ†¡}BˆX>Ö¢ê°éîíÛ�q)ËÀ=/·/ÿä²ú§„&ÖxKUïźÂtjzϵ±¹ÉÚú:ôýŠО߻æÿÕïR‚4¬Ëú®Æ«z)A #æý<˜zän�Ó5H½ÿŸÿ!ù¯úëìg å’^IlÓí›·BW“’P˜g*›ú4fÀõ`ô¨2{ÞMüüü¼vîÕÞÞîXçÕùUÚX_54J¥R �*#´S¶ýM�!5{rüé÷ =`zÎr3=¢��°w7Úƒ¤'Ø3-`ȼò3«ä×ÖéhkÓ¬_� Õ±ƒ]ü–¢Ñƒçá!ÍÆIè Ü&Ã0øùŸý9Ξ;LjåttlŒ¡á!gÇ^\Tpû֭к jTF­áQT÷eÀ°ø ù¿”’/}ñ‹Œ:ÄØØÃÃäÒéš�Î=˜Ma @¯>ÌÅÚ1Dá +ÁW™;y•)¬°�­MVVW]ÎR]ºó½:#{¨Ê/Ó«Ôœ1'x8ýˆó'OiïDßu„ƒ¦Œš¦Â$5¯IR)GÛ\~ç—ß¹ä K¥R 02:ê\££#ŒŽ�1<:B“f;ôí›1@„ýKíF(Ôä<*.(Þ?ÿ7ã×ÖÖùåú'4�N322¨ímuìc‡Æ¢·¿�î®.Rk>!7CàVÚ>«N3B»U€€ÐŒ­{ŒüL¡–qê�¤) Í ×õÃ¥õÒÈQÉÆÃM–VVèîì"�¹u÷XG-è!à9ûƒ\¡åà02 ƒ™éf¦gxý›¯ù⻺»á0BOOK1VTPïQ>Œ"÷Ô²Ô?=5M˜âŦJ¥ÂÇyøð!ßМ¥�J¥èî¯—Þ¾~:::(‹¦ 渕R}Õ£ö�h…\PZ»8·€¨ =èíÚõ« ËËlnmÁ¸©üôçþ©¿tp?)µg@L NOÑÕÑá¼_ýýéŸE•’ ý{ò ë¿f)U®$Þ-­,¯°²¼Â»—.'ÊW«3ÐÝ ‹X:€zéêåÀ0 sCÆâ"\ †ü^2Ï«×tš€9»:ߎ•V“> =¤\ÒÁÙ¢ÑC¥RáÑì ¢Q /Jd“Ô¯ý»VG9.Ù¹S`~i‘þ/| @2?ìb3„C~¯ ð9µè£ÿ8¿ú¿N&�f}cƒõµu66ÖÙXßp>×7Öɯä¹w÷.wnߎí 8p?¹EöîB2™ ©”@ˆéTŠT*…H¥ìÍcN‰ÊVëÚPwea"@8¬m¬“_[Eôäyiºå:¨Ô œ1#˜]˜£«£Ãå@Tèž] 1�Ÿü�(¸;k%R ØÚÚʩӧ}a­­­ �ŒhóHinuøà¡éøÖmnß¼Å[o¼)†<£ÿ~S¨ Îh ”Ëe´ižÿèGhjjBAOC===‘�.‹Ü»{—Û·L—ËW.¿Ë7_}5’áÃÚä"JAÊîK�)sM>D@$AjL¥RáÑÜ,"mšûÒ]Ó­í/ ‚<%‘oÁ£™iŽw¢duž…3¢Z'ô _¬f~òé÷9.Ö]M��S©ããŒOŒó�ßý]üø�|Ž[;‡«óÿýýa—>ãÄÌLOŽØÏ~èCN9Ž*lÊårœýþ§}aµ0š”’íí賆,`Ò:êµÛ' 3gT|� À¡Ã‡NT–.m*•â™=ËŸþñŸDæ©7†:ñ „T:EJØS ¡ÙÖ7×ɯ­!z0-þ2ô÷R'æTà«‚Gs3´µ´Z+.Ur÷.ÿüI+ v…Ì•J8ó<ýþ÷»«©A)n‡ïìl‡Ö00>¨çš¿Ž™×4ÿæÙgCË‚x‚ ›Õ»T~Ü& „>ä �©¹¹÷ôWI‡1÷ Ü.1»8Ïpÿ€'�Jq©åÖE­€ˆšÿg2OŒWËÞó±ÀàÐÐc�þ6í‰K0p3nÐ Àù‹"W¤D¢}M‚ìå*U@,¯­R®”á4ïèï¥&༩\X^¢«½“ÆÆøu#aký¾´®x�€ðØ_(è!Êx`pP;ÿ÷RÜÙÙa{k+2Ýà�Þªk?˜"L�ƒ(x­V_F�ÐððH슪s§-m:m lîl›£þÞ[ÐßKý ϘïìÑì4º5yûgœõ{÷zu÷ —¤îÏ´`h 9oܽ»÷b­TEMöšÅ]R&+ÃôdJgõoxt$v]Þ2½éïÜ öü^ C¬¬­™–uOðÞƒþ^²,4OZÎç]LO †GÃðækîK¥ŠOì–ùî„x¦¶©³³“ÆFÿ$û5úÃ.]‚©� 7žöA³l6Koooâ²té¥!¹w÷n¬<‹ª÷™__7;è{ú{©s*° ˜Y˜£½¥Õñþ¬»«Z×Ug^¥têWc–]•¬Qž€^üê äWòœ8y‚ñ‰ ‡‡¦³+Üe½.îöÍh .†•¾[ª‹K°°4ÅBA{4R*•â¿ÿµß`tt„áцGF¥¥µ%± ¸ÿÅ¢w'ÚA$ýýì|+A/yLR¾Qafqž‘«Ó»twʲ3ø^7¿—n©Q WÒª¥”K¥HHžÏçyñk/ðâ×^p…765144Äаu 142ÌÐÐ]ÝÝæ4ÃRöV*†QáúÕ«¡u±M€÷’¹ƒhë?ošééimy…B�?øýß÷…wtv222ÂÈèÃ#£ Ð?ÐO__?}ý}ôôöúì³ãø]<-À )Y^[5!ó“¼÷¡¿—0QÀ”`y5OWGÍ�ÍN´¶Ë'Òø. ¬ Â.ˆ�ímîݽ[w”9sþ¿—‚!±G ¤ifúXÍçYÍç¹zåŠ6Þ>E¨»§›R©ÄÎökkk‰êBÐÐØHSs™L–R±H¡P X(ìÂYDm˜}uc­ ýÇk.æ`S/ȳ^5÷6›p;D µš„ÀÝ}xƒõö¥R©&;ý½&uà~C›/Úi ˜ªó6`)%+++¬¬¬$ΛJ¥bpx$p¹§\.S,(vÌÏ�‚õÛü¬ÂÈÝsj¡Tdc{ë[ú«”ÂTNÂÎt�é¹Ú›[õæÕ©”eb]«Y5®Ðr¥ÂæfôrÜ~’�T¢¬÷cJ8°¯ÝšÛ+�›šš›9zò9k=Z"µ{2™ ™L†fÍÙð`Ž&Ž@Ø© û3öj°²þ- ý½Ô†¹�yÎÜäÔÒЄmf­#u¿…Љ*‹+8Ay�†” &²{sk•‚ö¨  >ö¶Eú”Ýí*ÀAp’Éf9zℹíRyÞAŠ$ó§þ~²Ù,Ùl––ÖVm|±X ¥bÑy^ë[”Êåomèï¥Qà7 V7×éjëLjZP„ïÁ°…‚æ©ÏRJ¤!)–J��¹ânJÙ ¸_m�¥Ø�n`æ €#ÇŽ‘k°·¦£b±Èj>Ï+¯½ŠèÈ ò[ú{©8<‚�ÍMZ›ZÈjnDSÔŒý¤Zv¡¶wthm`Wb{ŠkäMó¸@cc#-m­>#×A�V”ßÂD�&…ät‘‚††nß½c.½mýwK½˜¨Èo$SÞò´ÕBÞ%@›öµ$6ŽÓ@›1¶¶¶Èçóµ·®ÔÑÕå³<óÉÛj,:�8"L8LN=b~aþà¸öÞoJ'�~Ø)î°SäჇL>xÈÔ£©@’ad›(;€zþ¨‚ |ôãçç~á;¿í2K¥s³sÌÎL3==ã†[7orçÖíÄË>¹œ ÿU¦�zà‘"!z¸}û7oßr ^¤”°Œ)à㥠¦mÀ5XßÚ¤­©5–CŽ(J ãŸûȇ™Ì¥Ýþ�~úú9wá¼+Î0 f¦§-�0Éÿó_bv&ú܃`¦Àaw§ž”2Ðà÷|ïßÒ–™ÍfetlÔ—g}}�Ko¿Í[o¾Å[o¼Éµ+W#�yÊåÜ@ÛbÍÎÇ JŠî޿ǵ×9æ¶XY’0 åÛÓ€.�¹#YZ[¡·£;ñT`·óö /Ö¼ò%„`xÄÜÍú̇žå/}=R´µµÑÔÜšf¿¨¦sÔø°—dtñÉ'—ÙÖÖÆsÏ?ÏsÏ?˜» _øê×ø¥Ÿÿ…Àú³¹œ hïH�èâkD†apãæ Dƒ@>'aäÛ.�XÈ-išÇþM§�ó¹î ä·Ö9qì8BRµ¢Ü)¸Ð_½uCš}ù6% q¦A6�ƒvu.@XšõõuÖ×ו3ÍàÐ=½á¾ÿÕTCCGŽ„–“„ ˆ¤èaiyÙD(Ç�c˜Oú°ò‘„M¾-$0i~ŠYØÈopõÆ5¾ããßé8z@ÉÚ¤e›WÛÂÁþ½8=42¬ ¯Ä�Û ˜J‘S€Ú€3èØ¦­­-–`ѵǛgg;Üír.—Õ2®ëÃܬԟǓW—ß°� ê¤ú”Û�e`Šo/nÓ ²ù´„>àìÜÜáúõk\8_u›ÍdÈf2´h6i†Áj>ÏÊÒ2«+ùĺ¢ážy¢âÊqÀB±5.I,!x °ÁÞ�Ó˜HW¾�o+Âëj6—s¯ßÛy­Ëo5 ³÷Ñò©[)P¯æ–VS`=–•„=ÀÇ€±D·þ­IELDtQšH©x8“3“hhÅ/ŒS©]ÝÝ9~ŒÓÎ9;>ãP*•òmìÚ�%ìVÄ k �È0.ÓJ)—«›rÜeÖ" ¶C HR©étÚÏüuë=R@ hijæð¡Ã¦ÂïL¨kë,Û1;ûßtjÞ�iiw‹&`Š;E*åŠGàV¯ œ9uî Í-ñ”l†a¸œ…ì†ù‹Å"s1VtfÀ�‹®¦‰Jä — –ÎIÁâBðQ`Ù\N®cú zkGæßé“§! þBÀ+À"UAð7�1™_åÕ)— � ¤¬…ª×'´"“Í0qüXìiæ»—.›õÔÈüvߘ|ïÐÚƒb A¢(L?„îß»ÇÿÑ¿ã£ÿúýàq”€P}q:ÊYð_¥¸6 AäU�Z¡iÍôçNŸ¡»³“›·o±yi qW Ç,ÈÛÃßÜý^*c Ê—r]rêü)�T·eû ,ýž�•¤ t÷ö°2HØô3?õÓL=žùýôõ÷ÑßßOß@?ÝÝáË’jŸypï~DM¶"üàLB-ã*ëté‚lfgføÕúßòë¿ü«\|ò Ξ?Çé3g8}æ´ïœ@»l›¼u¼óö;�mÒV»�ÕÑôš@+¯·®jÞ¡Áa†XX\àÞƒû,][BÜÈiÚôcÂa=hùÖ¦ °ÜqÕ´8e#'•4Ï>Ð3°õ90<KÜ»s—{wüN?Óé4½}½ôõ÷;B¡¯¿ÏrTÛG_?ÝÝ]ˆTŠû>àïO-­-´8“yä[ýH—ÔO`ÔF J¥Â›¯¿Á›¯¿á„uttpú쎟<ÁáÇ9<>ÎØáCtvvºêȯ¬ðhr2°üœm`S‚ÃFƒÜÎê‹î¼ý}}ô÷õYû0õpã��hÈ^i® c ƒ&M3¾U¨ì`2þm“™—´µ·qòìI†£OÌõõGMÒ†ÊÀÀ¦V*ÌÍÎ17;˜Æ}ìììõÒÒ ÔÙ-¸�.ŸÏÇ:ÍK«««¼ò�—yå/»ÂÛ;Ú9tè0CÃC´´¶ÒÔÔÈÊJ¸Ÿ�l6«]îÝ+^ƒ~m™ê¨îM&<ÕÓÚÒÆ¹3ç8qüSÓS,-/±ü`…Ê� "'�=Ö’X¦Ã�Ìùò{!”1~˜æ�<ˆe�,JÚ;Ú9ñÔ Ÿ}|\è­#;o:“6•‰{Bf•Š* T:HðbnR)ÎË™­ó6àµÕ5Þ½|™w/Ïù½”ÍeqÙÓW¤Í˜¢R�?ÜW„€ ¹lމÃLž@JÉúÆ:Ë++,­,±|}™ò¥2"+ d»4÷Ñ÷aÚd=×A@ Lf·¯m`X±" ²$)AOwƒÇè Ù2‹¸Ÿìn̲í¼ét¦Ž`÷9îYûE‰Ïˆ“6hþ¿Ÿ”Ífµ°< :&9|¢ZhH�vhzÚÛÚhokcüÐ!67·XΛ.ÐWæWØy°ƒaˆœ@4 Œ&ÃDM˜Ó†v벂Pª¬å»a5ÑP.õw ر!�›Òå Àˆ‚€u�I®!Gg{‡:èì褷Çs¸‹#§õsújPõ´Ÿ¸ ±_$œê/UÒ „Xîf éa õ¦t:C*•VÕÅ%VÆ{‚ ¹¹™ææfÆFFœ°B¡ÀÖö6ÛÛÛlïl³±½ÁÆÚ&;Û;”vLO¸"')QedÛ‹¶rI!Ýñ˜ŸR(÷'AT”­Ok„—‰¬˜¨IA:—&—ËÑ�ËÑ�k¤©±‰ÆÎFÚ�·ÓÑÖnêc|÷±B¦ô‹vù•r9áA/{£ÞSS€š€ûî ØÝ>s@éÂ�à»Q<ízÈåÈåèìè´Ú¤¦“ìvØÞÞ¦P(bR†4½èJÓ“®4¤óÝ�Ö¹vR:žv¥•¹l–†¦r 9Ëãq ¹¹lŽ\CŽlÆ¿ÚâoümäAäÊsE Xˆ:lÿçMZ½¨¤‚`ff¯]�…·#›ËV;”k³�Ôæ–1ôà£ASCM ŠqA—æþ„6ºÔ“ÁæzîEŸÃÑǯ(9ÐâYCíïi@É_šË@·¢á*>B@pôà —Þ"Âî?ŠÁîG›_ê…kX=®2w! ‚ò Å =jjj¢­}o¼ÕJ5ùˆ³»B»a™¬‚<åùš“A zðBa©CeÆ®ªkp&|ùCêñ•[Ê@ô`é �þ°‹U;=¸_ÀÒÒR“Xë/¡ÝV€îŽãîGšî‚ç�=��‚´ ­µÌ á`ǽ·Ñƒ;mqG‚ïxn!�ÄÌNm°÷�,›ÉXmŠ`ðÐ95¾ü»E¾CD5»ôJ_™ºiC­ˆä`£‡dJÔ(ÐØØÈ™sge{{Ç<š~u•µÕ5Vó«‘ÛÍ“ÒA³„›�âÎûí´~?Õ|?õÿ>-­­ÌÏÍ177ÏÜì,óssÌÏÍ×UZg²ömÅ_rsBC:Ônу«D+±p…*B#ñÚïC[¨, „ x—=x…P2%j)¢OýWÿõ/òÑO|,P–K%–—W˜zôˆÉ‡“<š|d^'™™ž‰ôIé¥�¤”†0�YåÁƒž¾¾F%ˆ33³è˜c|bœÏ~îGóåWòÌÍͱ07oz¾q“›7npïî½Dk¹étÚl£î�FŒþ. vƒªùEHõŠ@M™I6&yÄ~£ üÂSWÀè¯Éî•r9rkî¹ çCu éL†¾þ>úúûxâ)·Ër¹Ì¥·/ñ�¿Î‹_{�…ù…кà`y²É‹ŠRÊF!¯¼òJáé§Ÿö_%‚lž}îC¡ éìꤳ«““§N:aBJÅ"wîÜåÚ•«¼ðÕ¯ñÆk¯‡JÞl6ëVŽÅ-|ië„ü׃*t™å@˜€8ØèÁIˆ’1¸¿z·`-DÀÿ††ºº»㣔¶™L†§ž~Чž~Š‘Ñ~û7+4=Làu² æÍ¿üòË¡b<Èg@� Àø‘‰XÖ…Þ:2Ù,'O�äSŸù4¿ù?ÿOüñ—ÿ44O&›Aõãvæ�)ì0ïŸ'�ër·L{™ùÝÁÕº"Š•Òw¹œ‘¨ù¬$1µ7 ©JyŸ¾°.Áêü å"Þ³s;X©69°~_úËûN£àÿàÐ`à –´Ÿîvb¥;fÀÞ{ó"€[˜n*¸~ýz,WþmÀz011¡M—ì|Q[ÿùÏo� ÏÂiiqQë]jå‚éõbÍ%@?j÷º�Œ„üʈ¯c_7” ÷/'­ ˜ÿªí ˜"è›®/¯’$Þô"ì™ø« m“{r�˜—]SŒ6©u—Šáî¹766ÜÏvŒ„s”mÀ¯¾úªª@Ûv €¢9¼~Åþ}åÊ•–?üÃ?tŽF�zXA^€ZZZbŸù% üöÝn2—½½e®èïŒnáàŠˆÅàQ÷•w7ÂAÍW8HwæÄÂÇ��¨ ˜A“ ­pÕvyZ,… ó »f|›Ü`}ž«JEøgögêúžÎ+ðg17~ðOþÉ?i^ZZòô}G9Å?Ò1ÍÜÜ|hžt:£é\“)$ÎUíMÉÚ–T@¼wЃðGªBQýSÛ ôb©nè�hððÁ¾òçÁ£‡“»†apýÚuÂEôÁo¾ùf%ŸÏ«Óþë3*•JËÙlöþK!•JE|æ3ŸÙþÒ—¾ÔØÛÛëÑKUœ"p`yy™Õ|žŽÎÎj§­Q øÎ›o¦Éd2ÖŸWO`¸)¥\A�$›Í61½Ðf‡9wîÜæïüÎï4wuuùÞÔOÿ½À[o¼™¸q©TŠþ�~‡L¡042ÌÐÐCÃæÕÛ×G*•Â0 ¾çãßh£ÝÚÚJ_ŸÓ\‡½wwTfÃ8£Xíè!Œ’"'OîHç¥Õz¢KÓ ‡�"ƒÓÆkRL.X˯ո%=þ³M§Ótuw±´¸k ñGöïb£ŠzÓÛo¿]ùÌg>ãaŸ“R~#Pd³Ùð*ð„.„ ­­­têÔ©ígžyF>óÌ3 ãã㹟üñϧæB¼£ÖØw³™,=}}tvvpýÚ5O‘ÕB;ÚÛiïÔ=äpبŸ0hÆ+U골óÆ;Ü´"¸Luçd\áœÖMIÄn„ƒšqq‘Åù8çìîYÇ¥ææfþý_†°í½ýöÛ•Ï}îslmm©à)å¡À¦l6ûÛÀ¸¤HØh5Rí6>iºzå;ˆT«K xæ}ï'.#¼WÐÃìÌ,«ùUm �ƒŽ=¿úÝßÙ×:‹Å"_øÂ¶¿øÅ/z ú6�Q)ebž\*•þ�”²ø L°€^Kï� ¢(�ùn4êq¨V þã¢Ý¶7(_à*‰F}¯ÓÎëòºëÑkô«+Úe튂võÁÑûW©j‹¼,·Ÿ´ß›€Þ|óMã¹çž+k˜¿|Øf~Hp.@¹\^>™Éd2Bˆþ.p hrRÊ”@„z¶ u£Òxúxà³ DRJâ;a/ÊV*‰•_¤Û®"¢YA,“¡‡hmLðNF�Ö@ ØÞÞ¡œÈðÞRKk3�=Ú“²¥”,,,333åW_}µüçþç¹ååå þÁ}øN)åÛj`¬)À·é[“F‡F†W–¼\§ÄAiIãêþmà à#RJŸö<žyÞ·éoÅ™^ìv WËÔ±–©æßpº<+¥|ZÇüPÃÑ`ߦo=J¢GØ«ø¤qßfzTc» ü ð/¤”áf³Àÿ5½/öU¹î%IEND®B`‚(€ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþóÙ“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ U› Í Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù ÙÜßßßßßßßßßßßßßßßßßßßààààààààààààààààààà ÿ ÿ!ÿ ÿ ÿ ÿ ÿ ÿ ÿÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿüIIIòIIIòIIIòIIIòIIIòIIIòIIIòIIIòIIIòIIIòIIIò:::òùÿÿñRÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿ?;Aÿ?;Aÿ@DÿB>DÿA>DÿA>DÿA>DÿA>DÿA>DÿA>DÿB?DÿB?DÿB?DÿB?DÿB?Dÿ627ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3-4ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÑÑÑÿ@@@ôÿÿJÿÿÿÿÿÿÿÿÿÿÿÿKøÿ+++ôƒƒƒô¸¸¸ü†…ˆÿÿÿÿÿÿÿÿ*&-ÿA>DÿZX[ÿrptÿ‡…ˆÿÿÿÿ #ÿ84;ÿ84<ÿ84<ÿ95<ÿ95<ÿ95<ÿ85;ÿ85;ÿ85;ÿ85<ÿ85<ÿ85<ÿ96<ÿ96<ÿ96=ÿ96=ÿ96=ÿ:7=ÿ:7=ÿ:7>ÿ:7>ÿ:7>ÿ;8>ÿ;8>ÿ;8>ÿ;8?ÿ;8>ÿ<9>ÿ<9>ÿ<9>ÿ<8>ÿ<8>ÿ<8>ÿ<9>ÿ=9>ÿ=9>ÿ=9>ÿ=9>ÿA=CÿA=CÿA=CÿA=CÿA=CÿB>DÿB>DÿB>DÿA>DÿA>DÿA>DÿA>DÿA>DÿB?DÿB?DÿB?DÿB?DÿB?DÿC@EÿC@EÿC@EÿC@EÿC@EÿD@FÿD@FÿD@Fÿ;7>ÿÿÿÿÿÿÿÿÿÿÿÿÿ"#ÿÿÿÿÿ ÿÙÙÙÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿŠŠŠ÷ÿóÿÿÿÿÿÿ øþ‰‰‰óßßßÿßßßÿßßßÿ©¨ªÿÿÿÿ„ƒ†ÿ§¥§ÿÀÀÁÿÚÚÚÿáááÿáááÿáááÿáááÿáááÿB?Dÿÿÿ ÿ;8>ÿ;8?ÿ;8?ÿ;8?ÿ<9?ÿ<9?ÿ<9?ÿ<9@ÿ<9@ÿ=:@ÿ=:@ÿ=:@ÿ=:Aÿ=:Aÿ>;Aÿ>;Aÿ>;Aÿ>;Bÿ>;Aÿ>;Aÿ?DÿA>DÿA>DÿA>DÿA>DÿA>DÿA>DÿA>DÿB?DÿB?DÿB?DÿB?DÿB?DÿC@EÿC@EÿC@EÿC@EÿC@EÿD@FÿD@FÿD@FÿD@FÿD@FÿEAGÿEAGÿEAFÿDAGÿDAGÿA>Cÿÿÿÿÿÿÿ*$+ÿHDJÿgchÿ…‚†ÿ£¡£ÿÁÀÁÿÚÚÚÿ@:AÿÿÿÿÿÃÂÃÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿAAAôÿ ÿÿÿÿÿÿÃÿŒŒŒòßßßÿßßßÿàààÿàààÿÂÂÃÿÿÿÿÔÓÔÿáááÿáááÿáááÿáááÿáááÿáááÿâââÿâââÿmkoÿÿÿÿ;8>ÿ<9?ÿ<:?ÿ<:?ÿ<:@ÿ<:@ÿ<:@ÿ>;Aÿ>;Aÿ>;Aÿ>;Bÿ>;Aÿ?DÿA>DÿA>DÿA>DÿA>DÿA>DÿA>DÿA>DÿB?DÿB?DÿB?DÿB?DÿB?DÿB@EÿC@EÿC@EÿC@EÿC@EÿD@FÿD@FÿD@FÿD@FÿD@FÿD@FÿEAGÿEAGÿDAGÿDAGÿDAGÿEBFÿEBFÿEBFÿEBGÿEBGÿEBGÿFCGÿFCGÿ ÿÿÿÿplqÿÌÌÌÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ}y}ÿÿÿÿÿ«©«ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÑÑÑÿÿÙÿÿÿ ÿ///òßßßÿàààÿàààÿàààÿàààÿÛÚÛÿÿÿÿØØÙÿáááÿáááÿáááÿâââÿâââÿâââÿâââÿâââÿwtxÿÿÿÿ74;ÿ=;@ÿ=;Aÿ=;@ÿ=;@ÿ>;Aÿ>;Aÿ>;Aÿ?DÿA>DÿA>DÿA>DÿA>DÿA>DÿA>DÿA>DÿB?DÿB?DÿB?DÿB?DÿB?DÿB?DÿB@EÿB@EÿB@EÿB@EÿB@EÿC@FÿC@FÿC@FÿC@FÿC@FÿDAGÿDAGÿEAFÿDAGÿDAGÿDAGÿEBFÿEBFÿEBGÿEBGÿEBGÿFCGÿFCGÿFCHÿFCHÿFCHÿGCHÿGCHÿGCHÿGDHÿGDHÿ$&ÿÿÿÿ|€ÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ¤¢¤ÿÿÿÿÿ“�“ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿúóÿÿÿWÿŠŠŠòàààÿàààÿàààÿàààÿàààÿáááÿ.+1ÿÿÿ»º»ÿáááÿâââÿâââÿâââÿâââÿâââÿâââÿâââÿvtxÿÿÿÿ416ÿ>;Aÿ>;Aÿ?Cÿ@>CÿA>DÿA>DÿA>DÿA>DÿA>DÿA>DÿB?DÿB?DÿB?DÿB?DÿB?DÿB@EÿB@EÿB@EÿB@EÿB@EÿC@FÿC@FÿC@FÿC@FÿC@FÿC@FÿDAGÿDAGÿDAGÿDAGÿDAGÿEBFÿEBFÿEBFÿEBGÿEBGÿFCGÿFCGÿFBGÿFCHÿFCHÿGCHÿGCHÿGCHÿGDHÿGDHÿGDHÿGDIÿGDIÿGDHÿHCIÿHCIÿGDIÿGDIÿ*$,ÿÿÿÿxtyÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ®­¯ÿÿÿÿÿ|y}ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ;;;óþÿÿÿ¡ÿ¿¿¿üàààÿàààÿáááÿáááÿáááÿáááÿGDJÿÿÿ‰‡ŠÿâââÿâââÿâââÿÖÖÖÿ¿¾¿ÿ”“•ÿc`dÿ2.4ÿÿÿÿÿ/,2ÿ@=Bÿ@=Bÿ?=Bÿ?=Bÿ@>Cÿ@>Cÿ@>Cÿ@>Cÿ@>Cÿ@>Cÿ@>Cÿ@>CÿA?DÿA?DÿA?DÿA?DÿA?DÿA?DÿB@EÿB@EÿB@EÿB@EÿB@EÿC@FÿC@FÿC@FÿC@FÿC@FÿDAGÿDAGÿDAFÿDAGÿDAGÿDAGÿEBFÿEBFÿEBGÿEBGÿEBGÿFCGÿFCGÿFCHÿFCHÿFCHÿFCHÿFCHÿFCHÿFDHÿFDHÿFDIÿFDIÿFDIÿGCIÿHCIÿHCIÿGDIÿGDIÿHDIÿHDIÿHDIÿHEIÿHEIÿIEJÿIEJÿ/*1ÿÿÿÿpmqÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÙÙÙÿ¹¸ºÿ|€ÿÿÿÿÿdafÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ¿ÿÙÙÙÿàààÿáááÿáááÿáááÿáááÿáááÿa_cÿÿÿ306ÿQNSÿ:7=ÿ$ 'ÿÿÿÿÿÿÿÿÿÿ+(.ÿ@>Cÿ@>Cÿ@>Cÿ@>Cÿ@>CÿA?DÿA?DÿA?DÿA?DÿA?DÿB@EÿB@EÿB@EÿB@DÿB@DÿC@EÿC@EÿC@EÿC@EÿC@EÿC@EÿCAFÿDAGÿDAGÿDAGÿDAGÿEBFÿEBFÿEBFÿEBGÿEBGÿFCGÿFCGÿFBGÿFCHÿFCHÿFCHÿFCHÿFCHÿFDHÿFDHÿFDHÿFDIÿFDIÿGCIÿGCIÿGCIÿGDIÿGDIÿGDIÿHDIÿHDIÿHEIÿHEIÿHEIÿIEJÿIEJÿIEJÿIFJÿIFJÿJFKÿJFKÿJFKÿJGKÿ618ÿÿÿÿ?:Aÿ�›žÿ�›�ÿŽŒ�ÿ€}�ÿjfkÿE@Fÿ"$ÿÿÿÿÿÿÿNIOÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿÚÚÚÿáááÿáááÿáááÿáááÿâââÿâââÿzx|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ'#)ÿA?DÿA?DÿA?DÿB@EÿB@EÿB@DÿB@DÿB@DÿC@EÿC@EÿC@EÿC@EÿC@EÿCAFÿCAFÿCAEÿCAFÿCAFÿDBFÿDBFÿDBFÿDBGÿDBGÿDBGÿECGÿECGÿFCHÿFCHÿFCHÿFCHÿFCHÿFCHÿFDHÿFDHÿFDIÿFDIÿFDIÿGCIÿGCIÿGCIÿGDIÿGDIÿHDIÿHDIÿHDIÿHEIÿHEIÿIEJÿIEJÿIEJÿIFJÿIFJÿIFJÿIFKÿIFKÿIGKÿIGKÿIGKÿJGKÿJGKÿJGKÿKHLÿKHLÿLHKÿ=8=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ618ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿÚÚÚÿáááÿáááÿâââÿâââÿâââÿâââÿ”“–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"%ÿC@EÿC@EÿC@EÿC@EÿC@EÿC@EÿCAFÿCAFÿCAFÿCAFÿCAFÿDBFÿDBFÿDBFÿDBGÿDBGÿECGÿECGÿEBGÿECHÿECHÿFCGÿFCGÿFCGÿFDGÿFDGÿFDGÿFDHÿFDHÿGCHÿGCIÿGCIÿGDIÿGDIÿGDIÿHDIÿHDIÿHEIÿHEIÿHEIÿIEJÿIEJÿIFJÿIFJÿIFJÿIFKÿIFKÿIFKÿIGKÿIGKÿIGKÿJGKÿJGKÿJHLÿJHLÿJHLÿKHKÿKHKÿKILÿKILÿKILÿLHLÿLHLÿLHLÿC?Dÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!"ÿÛÛÛÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ À ÿÚÚÚÿâââÿâââÿâââÿâââÿâââÿãããÿ®­¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCAEÿCAFÿCAFÿDBFÿDBFÿDBFÿDBGÿDBGÿDBGÿECGÿECGÿECHÿECHÿECHÿFCGÿFCGÿFDGÿFDGÿFDGÿFDHÿFDHÿFDHÿGCHÿGCHÿGCHÿFDHÿFDHÿA?Cÿ96:ÿ/.0ÿ!&"ÿÿÿÿÿ  ÿ  ÿ  ÿ  ÿ ÿÿ  ÿÿÿ ÿ"&#ÿ,,,ÿ425ÿ?ÿ6ÿ-ÿ ÿÿ"'#ÿ<9<ÿKHKÿLIMÿLIMÿLIMÿLJMÿLJMÿMJNÿMJNÿMJNÿMKNÿMKNÿNKNÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³±³ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ À ÿÛÛÛÿâââÿãããÿãããÿãããÿãããÿãããÿßßßÿÿÿÿÿÿÿÿ=;@ÿZX]ÿqosÿ‡†‰ÿŸž ÿYW\ÿÿÿÿ<;?ÿEDGÿEDGÿEDGÿEDHÿEDHÿFDGÿGCHÿGCHÿFDHÿFDHÿFDHÿGDIÿGDIÿGDIÿGEIÿGEIÿHEJÿHEJÿEBGÿ+*,ÿ  ÿÿ-ÿMÿ`ÿfÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿiÿbÿKÿ/ÿÿ"##ÿGEHÿMKNÿNKNÿNKNÿNLNÿNLNÿNLNÿOLOÿOLOÿOLOÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿ'")ÿÿÿÿÿ›™œÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ À ÿÛÛÛÿãããÿãããÿãããÿãããÿãããÿäääÿäääÿ1.4ÿÿÿ<:@ÿxwzÿ©¨ªÿÙÙÙÿåååÿåååÿåååÿæææÿæææÿ˜—šÿÿÿÿ86;ÿFCHÿFDHÿFDHÿFDHÿGDIÿGDIÿGEIÿGEIÿGEIÿHEJÿHEJÿHFJÿHFJÿHFJÿIFJÿIFJÿDAEÿ!ÿÿ'ÿKÿfÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ`ÿ1ÿ  ÿFCFÿOMOÿOMOÿOMOÿPLPÿPLPÿPLPÿPMOÿECFÿÿÿÿÿÿ73:ÿURXÿlimÿ‚€„ÿ˜—™ÿ¯®°ÿÆÅÆÿÙÙÙÿ´³µÿÿÿÿÿ…‚†ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ À ÿÜÜÜÿãããÿãããÿãããÿäääÿäääÿäääÿäääÿJHMÿÿÿš™›ÿåååÿåååÿåååÿæææÿæææÿæææÿæææÿæææÿ¿¾¿ÿÿÿÿ205ÿGEIÿHEJÿHEJÿHEJÿHFJÿHFJÿHFJÿHFJÿHFJÿHGJÿHGJÿHGJÿIGJÿJGJÿJGJÿGEHÿ  ÿ0ÿcÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿhÿ]ÿjÿ;ÿ*.)ÿPMOÿPMPÿPMPÿPMPÿPMPÿPMPÿPMOÿ*%,ÿÿÿÿÿrosÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÞÞÞÿÒÒÓÿÿÿÿÿmjnÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ À ÿÜÜÜÿãããÿäääÿäääÿäääÿäääÿäääÿåååÿechÿÿÿ’‘“ÿåååÿæææÿæææÿæææÿæææÿæææÿæææÿçççÿÌÌÍÿÿÿÿ.*1ÿHFJÿHFJÿHGJÿHGJÿIGJÿIGJÿIGJÿIHKÿIHKÿIHKÿJHKÿJHKÿJILÿJILÿJILÿ!!!ÿ6ÿiÿKÿYÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿbÿÿWÿ#ÿ766ÿQNPÿQNPÿQNPÿQNPÿPNPÿB@Cÿ($+ÿÿÿÿÿÿ~{ÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÞÞÞÿ'"*ÿÿÿÿVSXÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ À ÿÜÜÜÿäääÿäääÿäääÿäääÿåååÿåååÿåååÿ~}�ÿÿÿxvzÿæææÿæææÿæææÿæææÿçççÿçççÿçççÿçççÿÌÌÍÿÿÿÿ'%+ÿIHKÿIHKÿJHKÿJHKÿJILÿJILÿJILÿKHLÿKHLÿKHLÿKHLÿKHLÿKHLÿKIMÿKIMÿ(&(ÿ+ÿNÿÿaÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿÿÿÿ?;?ÿ849ÿ1.3ÿ+&,ÿ$%ÿÿÿÿÿÿÿÿÿdafÿàààÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿ-)0ÿÿÿÿ?:AÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ À ÿÝÝÝÿäääÿäääÿäääÿåååÿåååÿåååÿåååÿ™™›ÿÿÿ539ÿæææÿæææÿæææÿÓÓÓÿº¹»ÿ�œŸÿonrÿ>:@ÿßßßÿàààÿàààÿàààÿßßßÿßßßÿßßßÿÖÖÖÿº¹»ÿ+&.ÿÿÿÿ(#+ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿÝÝÝÿäääÿåååÿåååÿåååÿåååÿåååÿæææÿ³³´ÿÿÿÿECIÿ64:ÿ#ÿÿÿÿÿÿÿÿÿÿÿLILÿLILÿLILÿKJLÿKJLÿKJLÿLJMÿLJMÿLKMÿLKMÿLKMÿMKNÿMKNÿMLNÿMLNÿMLNÿJHKÿ ÿ&ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿbÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkhmÿ�›žÿ�Ž’ÿ|€ÿlinÿPLRÿ2.5ÿÿÿÿÿÿÿÿÓÓÓÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿÞÞÞÿåååÿåååÿåååÿåååÿæææÿæææÿæææÿÎÎÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿHFIÿLKMÿLKMÿMKNÿMKNÿMKNÿMLNÿMLNÿNLOÿNLOÿNLOÿNMOÿNMOÿNMOÿOLPÿOLPÿOMOÿ@??ÿÿbÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ-ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼»½ÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿÞÞÞÿåååÿåååÿæææÿæææÿæææÿæææÿæææÿåååÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:9=ÿNLOÿNLOÿNLOÿNMOÿNMOÿOLPÿOLPÿOLPÿOMOÿOMNÿOMNÿPMOÿPMOÿOMOÿOMOÿOMOÿPNPÿ#$#ÿ1ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥£¦ÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿÞÞÞÿåååÿæææÿæææÿæææÿæææÿçççÿçççÿçççÿ428ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ#!(ÿMLNÿNMNÿNMNÿOMOÿOMOÿPMOÿOMOÿOMOÿPNPÿPNPÿPNPÿPNPÿPNPÿKILÿEBEÿ=;>ÿ638ÿ-*/ÿ ÿTÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿhÿÿ ÿÿÿÿÿÿÿÿÿ ÿ!ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŒ�ÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿßßßÿæææÿæææÿæææÿæææÿçççÿçççÿçççÿçççÿNLRÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(%+ÿIGIÿPNPÿPNPÿPNPÿLKLÿEDFÿ=<@ÿ659ÿ0.2ÿ)&,ÿ"%ÿÿÿÿÿÿÿÿÿgÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿFÿÿÿÿ"ÿ!#ÿ"&ÿ$ (ÿ&#*ÿ($,ÿ)%-ÿ)%,ÿ)%,ÿ*&-ÿ'$+ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿwtxÿÝÝÝÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿßßßÿæææÿæææÿçççÿçççÿçççÿçççÿçççÿèèèÿihlÿÿÿÿÿÿ(&,ÿDCHÿXW[ÿdbgÿnmqÿyx|ÿqptÿÿÿÿÿÿÿ$ÿ" &ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ9ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿeÿÿ ÿ)%,ÿ)%-ÿ)%,ÿ)%,ÿ*&-ÿ*&-ÿ*&-ÿ*&.ÿ*&.ÿ*'.ÿ*'.ÿ*'.ÿ*'/ÿ*&-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_]aÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿßßßÿæææÿçççÿçççÿçççÿçççÿèèèÿèèèÿèèèÿƒ‚…ÿÿÿcbgÿÀÀÁÿÝÝÝÿéééÿêêêÿêêêÿêêêÿêêêÿêêêÿâââÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿYÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ6ÿ ÿ)&.ÿ)&.ÿ)&.ÿ*'.ÿ*'.ÿ*'.ÿ*'/ÿ*'/ÿ+(/ÿ+(/ÿ+(/ÿ,)0ÿ,(0ÿ+(0ÿ,)0ÿ"%ÿÿÿÿ ÿ@=Cÿ`]bÿywzÿ‘�“ÿ«ª¬ÿÄÄÅÿÔÓÔÿÔÔÕÿÔÔÕÿ;8>ÿÿÿÿGDJÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿàààÿçççÿçççÿçççÿçççÿèèèÿèèèÿèèèÿèèèÿžž ÿÿÿmlpÿéééÿêêêÿêêêÿêêêÿêêêÿêêêÿêêêÿëëëÿëëëÿ75;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿhÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ]ÿ ÿ#!(ÿ)'/ÿ*(/ÿ*(/ÿ*(/ÿ+)0ÿ+(0ÿ*(0ÿ,)0ÿ,)0ÿ-*0ÿ-*0ÿ-*0ÿ-)1ÿ-)0ÿ-)0ÿ'#+ÿÿÿÿ95;ÿãããÿâââÿâââÿâââÿáááÿáááÿáááÿàààÿàààÿa_cÿÿÿÿ0-3ÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿàààÿçççÿçççÿèèèÿèèèÿèèèÿèèèÿèèèÿéééÿ¸¸ºÿÿÿLKPÿêêêÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿëëëÿ328ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ@ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ(ÿÿ+)0ÿ+)0ÿ+)0ÿ,*0ÿ,*0ÿ,)1ÿ,)0ÿ,)0ÿ-*1ÿ-*1ÿ-*1ÿ-*2ÿ.*2ÿ.*2ÿ/+2ÿ/+2ÿ*'.ÿÿÿÿ!$ÿãããÿãããÿâââÿâââÿâââÿáááÿáááÿáááÿàààÿ�ƒÿÿÿÿÿÛÛÛÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿàààÿçççÿèèèÿèèèÿèèèÿèèèÿéééÿéééÿéééÿÔÓÔÿÿÿ"ÿããäÿêêêÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿèèèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ"ÿ$ÿ!&ÿ#!(ÿ%#*ÿ&$,ÿ'%,ÿ'%,ÿ$")ÿÿ_ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿQÿÿ*'-ÿ,)0ÿ-*1ÿ-*1ÿ-*1ÿ-*2ÿ-*2ÿ.+2ÿ.+2ÿ.+2ÿ.+3ÿ.+3ÿ.+3ÿ.,3ÿ.,3ÿ.,3ÿ.,4ÿ/+2ÿÿÿÿÿÇÆÇÿãããÿâââÿâââÿâââÿâââÿáááÿáááÿáááÿŒŠ�ÿÿÿÿÿÇÇÇÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿàààÿèèèÿèèèÿèèèÿèèèÿéééÿéééÿéééÿéééÿéééÿ"ÿÿÿ®®°ÿßÞßÿÇÇÈÿ¯¯±ÿ˜—šÿ�€ƒÿjimÿRRVÿ88=ÿÿÿÿÿÿÿÿÿ ÿ"ÿ#ÿ &ÿ" 'ÿ%#*ÿ&$,ÿ'%,ÿ'%,ÿ'%-ÿ'%,ÿ'%,ÿ(&-ÿ(&-ÿ(&-ÿ(&.ÿ(&.ÿ(&.ÿÿ%ÿiÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿgÿÿÿ.+2ÿ.+2ÿ.+2ÿ.+3ÿ.+3ÿ.,3ÿ.,3ÿ.,3ÿ.,4ÿ.,4ÿ.,4ÿ/-4ÿ/-4ÿ/-4ÿ/-4ÿ/-4ÿ0.4ÿ0.4ÿÿÿÿÿ“‘”ÿãããÿãããÿâââÿâââÿâââÿÛÛÛÿÃÃÄÿ«ª¬ÿgeiÿÿÿÿÿ¯®°ÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿáááÿèèèÿèèèÿéééÿéééÿéééÿéééÿêêêÿêêêÿêêêÿ66;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ%ÿ&$,ÿ'%,ÿ'%,ÿ'%,ÿ'%,ÿ(&-ÿ(&-ÿ(&-ÿ(&.ÿ(&.ÿ(&.ÿ)'.ÿ)'.ÿ)'.ÿ)'/ÿ)'/ÿ)'/ÿ*(/ÿ*(/ÿ*)0ÿ  ÿGÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿCÿ ÿ.,3ÿ.,3ÿ.,4ÿ.,4ÿ.,4ÿ/-4ÿ/-4ÿ/-4ÿ/-4ÿ/-4ÿ0.4ÿ0.4ÿ0.4ÿ0.5ÿ0.5ÿ0.5ÿ1/5ÿ1/5ÿ1.6ÿ"ÿÿÿÿEBHÿЉŒÿuswÿ]Z_ÿDAGÿ,(/ÿÿÿÿÿÿÿÿÿ˜–™ÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿáááÿèèèÿéééÿéééÿéééÿéééÿêêêÿêêêÿêêêÿêêêÿRQVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ &ÿ'&,ÿ'&,ÿ'&-ÿ(&.ÿ)'.ÿ)'.ÿ)'.ÿ)'.ÿ)'/ÿ)'/ÿ*(/ÿ*(/ÿ*(/ÿ*)0ÿ*(0ÿ)(0ÿ*)0ÿ*)0ÿ*)0ÿ+*0ÿ+*0ÿ(&-ÿÿbÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿdÿÿ$#(ÿ/-4ÿ/-4ÿ0.4ÿ0.4ÿ0.4ÿ0.5ÿ0.5ÿ0.5ÿ1/5ÿ1/5ÿ1/5ÿ1.6ÿ1.6ÿ1.6ÿ2/6ÿ2/6ÿ2/7ÿ2/7ÿ2/7ÿ!%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€~�ÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿáááÿéééÿéééÿéééÿéééÿêêêÿêêêÿêêêÿêêêÿëëëÿmlpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ('-ÿ('.ÿ('.ÿ('.ÿ)(.ÿ)(.ÿ*)/ÿ*(/ÿ)(0ÿ*)0ÿ*)0ÿ*)0ÿ+*0ÿ+*0ÿ+*0ÿ+)0ÿ+)0ÿ+)0ÿ,*1ÿ,*1ÿ,*2ÿ,*2ÿ,*2ÿ!ÿ+ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ3ÿÿ0.5ÿ0.5ÿ1/5ÿ1/5ÿ1.6ÿ1.6ÿ1.6ÿ2/6ÿ2/6ÿ2/6ÿ2/7ÿ2/7ÿ2/7ÿ307ÿ307ÿ307ÿ208ÿ208ÿ317ÿ317ÿ$")ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿigkÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿâââÿéééÿéééÿéééÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿˆˆŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ÿ*(/ÿ)(/ÿ))/ÿ))/ÿ))/ÿ**0ÿ**0ÿ*)0ÿ*)/ÿ*)/ÿ+*0ÿ+*0ÿ,*1ÿ,*2ÿ,*2ÿ,*2ÿ-+2ÿ-+2ÿ-+2ÿ-+3ÿ-+3ÿ.,3ÿ.,3ÿ.,3ÿ  ÿMÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ[ÿ ÿ+)0ÿ1/6ÿ1/6ÿ1/7ÿ1/7ÿ2/7ÿ308ÿ307ÿ307ÿ208ÿ208ÿ208ÿ317ÿ317ÿ317ÿ318ÿ318ÿ428ÿ428ÿ428ÿ429ÿ)&-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPNSÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿâââÿéééÿêêêÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿ££¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ÿ*)/ÿ*)/ÿ*)/ÿ+*0ÿ+*0ÿ+*1ÿ+*1ÿ+*1ÿ,+1ÿ,+1ÿ,+1ÿ,+2ÿ,+2ÿ,+2ÿ-,2ÿ-,2ÿ.,4ÿ.,4ÿ.,4ÿ.-4ÿ.-4ÿ.-4ÿ.-4ÿ.-4ÿ%$*ÿÿeÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿiÿ&ÿÿ207ÿ207ÿ208ÿ208ÿ317ÿ317ÿ317ÿ218ÿ218ÿ318ÿ428ÿ428ÿ428ÿ429ÿ429ÿ429ÿ539ÿ539ÿ53:ÿ53:ÿ53:ÿ.*2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ96<ÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿâââÿêêêÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿìììÿ¿¿Àÿÿÿÿÿÿ-,1ÿJINÿffiÿsrvÿ~�ÿЉŒÿ••˜ÿ;;@ÿÿÿÿ+*1ÿ,+1ÿ,+1ÿ,+1ÿ,+2ÿ,+2ÿ-,2ÿ-,2ÿ-,2ÿ-,3ÿ-,3ÿ-,3ÿ.-3ÿ.-3ÿ.-3ÿ.-4ÿ.-4ÿ..4ÿ..4ÿ..4ÿ/.5ÿ/.5ÿ/.5ÿ0/5ÿ0/5ÿÿ2ÿmÿmÿmÿmÿlÿlÿkÿjÿjÿjÿjÿjÿjÿOÿ ÿ1/5ÿ218ÿ218ÿ328ÿ328ÿ328ÿ329ÿ329ÿ329ÿ439ÿ439ÿ439ÿ43:ÿ43:ÿ63:ÿ63:ÿ63:ÿ63:ÿ63;ÿ63;ÿ74:ÿ74:ÿ2/6ÿÿÿÿÿÿÿÿÿÿÿÿ)&,ÿDBGÿ64:ÿÿÿÿ"%ÿàààÿàààÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿãããÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿìììÿìììÿÚÚÚÿÿÿ!ÿÈÈÉÿååæÿîîîÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿrruÿÿÿÿ-,2ÿ-,3ÿ-,3ÿ-,3ÿ.-3ÿ.-3ÿ.-3ÿ.-4ÿ.-4ÿ.-4ÿ..4ÿ..4ÿ..4ÿ..4ÿ..4ÿ//4ÿ//4ÿ//4ÿ/.5ÿ/.5ÿ/.5ÿ0/5ÿ0/5ÿ0/5ÿ1/7ÿ*)0ÿÿ[ÿpÿpÿpÿoÿoÿnÿmÿmÿlÿkÿjÿgÿÿ""&ÿ329ÿ329ÿ439ÿ439ÿ43:ÿ43:ÿ43:ÿ53:ÿ53:ÿ53:ÿ53;ÿ53;ÿ53;ÿ64:ÿ64:ÿ64;ÿ64;ÿ64;ÿ75;ÿ75;ÿ75;ÿ75<ÿ74:ÿÿÿÿÿ$!(ÿOMRÿjhmÿ†…ˆÿ¡ £ÿ½¼¾ÿØØØÿâââÿâââÿ�Ž‘ÿÿÿÿÿÑÑÑÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿãããÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿìììÿìììÿìììÿíííÿ$ÿÿÿçççÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿïïïÿ˜—šÿÿÿÿ,+1ÿ.-4ÿ..4ÿ..4ÿ..4ÿ..4ÿ..4ÿ..4ÿ//4ÿ//4ÿ//4ÿ/.5ÿ/.5ÿ/.5ÿ0/5ÿ0/5ÿ0/6ÿ0/6ÿ0/6ÿ107ÿ106ÿ106ÿ107ÿ107ÿ107ÿ217ÿÿ8ÿtÿsÿsÿrÿrÿqÿqÿpÿoÿnÿmÿSÿ  ÿ53:ÿ53:ÿ53:ÿ53;ÿ53;ÿ53;ÿ64:ÿ64:ÿ64:ÿ64;ÿ64;ÿ64;ÿ75;ÿ75;ÿ75;ÿ75<ÿ75<ÿ76<ÿ76<ÿ76<ÿ76=ÿ76=ÿ76=ÿ96=ÿÿÿÿÿgeiÿåååÿäääÿäääÿäääÿãããÿãããÿãããÿâââÿ³³´ÿÿÿÿÿ¹¸ºÿàààÿàààÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿãããÿêêêÿëëëÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿ99>ÿÿÿÌÌÍÿîîîÿîîîÿïïïÿïïïÿïïïÿïïïÿïïïÿðððÿ��’ÿÿÿÿ))/ÿ//4ÿ//4ÿ/.5ÿ/.5ÿ/.5ÿ0/5ÿ0/5ÿ0/5ÿ0/6ÿ0/6ÿ107ÿ106ÿ106ÿ107ÿ107ÿ107ÿ217ÿ217ÿ217ÿ218ÿ218ÿ218ÿ327ÿ327ÿ327ÿ..3ÿ$ÿvÿuÿuÿuÿuÿtÿtÿsÿrÿqÿpÿ?ÿ!ÿ64:ÿ64;ÿ64;ÿ64;ÿ75;ÿ75;ÿ75;ÿ75<ÿ75<ÿ75<ÿ76<ÿ76<ÿ76<ÿ76=ÿ76=ÿ87=ÿ86=ÿ86=ÿ87>ÿ87>ÿ87>ÿ87>ÿ87>ÿ87>ÿ$ÿÿÿÿ|{~ÿåååÿåååÿäääÿäääÿäääÿãããÿãããÿãããÿÎÎÏÿÿÿÿÿ¢¡£ÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿIIIòÿÿÿÿÀÿãããÿëëëÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿUUYÿÿÿ””—ÿîîîÿïïïÿïïïÿïïïÿïïïÿðððÿðððÿðððÿqqtÿÿÿÿ'&,ÿ0/6ÿ0/6ÿ0/6ÿ107ÿ106ÿ106ÿ107ÿ107ÿ107ÿ217ÿ217ÿ217ÿ218ÿ218ÿ327ÿ327ÿ327ÿ228ÿ228ÿ228ÿ338ÿ338ÿ338ÿ339ÿ339ÿ439ÿ ÿpÿyÿxÿxÿwÿwÿvÿuÿuÿtÿsÿ-ÿ*(.ÿ75<ÿ75<ÿ76<ÿ76<ÿ76<ÿ76=ÿ76=ÿ76=ÿ86=ÿ86=ÿ87>ÿ87>ÿ87>ÿ87>ÿ87>ÿ87>ÿ98=ÿ98=ÿ98=ÿ:8>ÿ:7>ÿ:7>ÿ:8>ÿ:8>ÿ$"(ÿÿÿÿxwzÿåååÿåååÿäääÿäääÿäääÿãããÿãããÿãããÿàààÿÿÿÿÿЉŒÿàààÿàààÿàààÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿIIIòÿÿÿÿÀÿäääÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿîîîÿqptÿÿÿQQUÿÍÍÎÿÃÃÄÿªª¬ÿ’’•ÿzz}ÿbbfÿIINÿ117ÿÿÿÿÿ##*ÿ007ÿ117ÿ117ÿ217ÿ218ÿ218ÿ218ÿ327ÿ327ÿ228ÿ228ÿ228ÿ338ÿ338ÿ338ÿ339ÿ339ÿ339ÿ439ÿ439ÿ439ÿ43:ÿ43:ÿ43:ÿ54:ÿ54:ÿÿaÿ|ÿ{ÿ{ÿzÿzÿyÿxÿwÿvÿuÿ/ÿ-,2ÿ87=ÿ86=ÿ86=ÿ87>ÿ87>ÿ87>ÿ87>ÿ87>ÿ87>ÿ98=ÿ98=ÿ:8>ÿ:7>ÿ:7>ÿ:8>ÿ:8>ÿ:8>ÿ:8?ÿ:8?ÿ:8?ÿ;9?ÿ;9?ÿ;9?ÿ:9@ÿ('.ÿÿÿÿ97=ÿåååÿåååÿåååÿäääÿäääÿØØØÿ»º»ÿŸž ÿ‚�„ÿ#ÿÿÿÿrquÿàààÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿIIIòÿÿÿÿÀÿäääÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿîîîÿîîîÿ�Œ�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!!&ÿ227ÿ227ÿ228ÿ228ÿ228ÿ338ÿ338ÿ338ÿ339ÿ339ÿ439ÿ439ÿ439ÿ43:ÿ43:ÿ43:ÿ54:ÿ54:ÿ54:ÿ54;ÿ54;ÿ54;ÿ65;ÿ65;ÿ65;ÿ65;ÿ  ÿlÿ~ÿ}ÿ}ÿ|ÿ|ÿ|ÿ{ÿzÿyÿxÿHÿÿ77=ÿ88=ÿ88=ÿ98=ÿ:8>ÿ:7>ÿ:7>ÿ:8>ÿ:8>ÿ:8>ÿ:8?ÿ:8?ÿ;9?ÿ;9?ÿ;9?ÿ:9@ÿ:9@ÿ:9@ÿ;:@ÿ;:@ÿ;:@ÿ;:Aÿ;:Aÿ;:Aÿ-,2ÿÿÿÿÿŒ‹�ÿ~}�ÿa`dÿECIÿ(&-ÿÿÿÿÿÿÿÿÿZX]ÿáááÿàààÿàààÿàààÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿJJJòÿÿÿÿÀÿäääÿëëëÿìììÿìììÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿ¨§ªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ#ÿ339ÿ339ÿ339ÿ339ÿ339ÿ339ÿ33:ÿ33:ÿ44:ÿ44:ÿ44:ÿ54;ÿ54;ÿ54;ÿ65;ÿ65;ÿ65;ÿ65;ÿ65;ÿ65;ÿ76;ÿ76;ÿ76;ÿ76<ÿ76<ÿ65:ÿÿyÿ€ÿ�ÿ€ÿÿÿ~ÿ}ÿ|ÿ|ÿ{ÿgÿ ÿ438ÿ98>ÿ98>ÿ98>ÿ98>ÿ:9>ÿ:9>ÿ;9?ÿ:9@ÿ:9@ÿ;:@ÿ;:@ÿ;:@ÿ;:Aÿ;:Aÿ;:Aÿ<;Aÿ<;Aÿ<;Aÿ<;@ÿ<;@ÿ<;@ÿ=;Aÿ=;Aÿ328ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿB@FÿáááÿàààÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿJJJòÿÿÿÿÀÿäääÿìììÿìììÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿÄÄÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ33:ÿ44:ÿ44:ÿ44:ÿ44;ÿ44;ÿ44;ÿ55;ÿ55;ÿ55;ÿ55;ÿ55;ÿ66;ÿ66;ÿ66;ÿ76<ÿ76<ÿ76<ÿ86<ÿ86<ÿ77=ÿ77=ÿ77=ÿ77=ÿ66<ÿÿ;ÿ„ÿƒÿƒÿ‚ÿ�ÿ�ÿ€ÿ€ÿÿ~ÿ|ÿvÿÿÿÿ0/4ÿ;:?ÿ;:?ÿ;:?ÿ;:@ÿ;:@ÿ;:@ÿ<;@ÿ<;@ÿ<;@ÿ<;@ÿ<;@ÿ=;Aÿ=;Aÿ=;Aÿ==Dÿ>ÿ87>ÿ87>ÿ88>ÿ88>ÿ98>ÿ88>ÿ  ÿ(ÿ@ÿfÿ‚ÿ ˆÿ ˆÿ ‡ÿ ‡ÿ ‡ÿ ‡ÿ†ÿ…ÿ„ÿ„ÿƒÿ�ÿ€ÿÿ~ÿ|ÿÿÿ))-ÿ<;Aÿ<;Aÿ<;Aÿ==Bÿ>=Bÿ>=Bÿ>=Cÿ>=Cÿ>=Cÿ?>Dÿ?>Dÿ?>Cÿ?>Cÿ?>Cÿ@>Dÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆÆÇÿáááÿáááÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿKKKòÿÿÿÿÀÿæææÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿ==Bÿÿÿÿÿ%ÿ>>Dÿ``dÿ�€„ÿ¢¡¤ÿÃÃÅÿååæÿ¨¨ªÿÿÿÿ.-5ÿ76=ÿ76=ÿ87=ÿ87=ÿ87=ÿ88>ÿ87>ÿ87>ÿ88>ÿ88>ÿ88>ÿ88>ÿ88>ÿ88>ÿ99>ÿ99>ÿ99>ÿ99?ÿ99?ÿ::?ÿ  ÿwÿ Šÿ Šÿ Šÿ Šÿ Šÿ Šÿ ‰ÿ ‰ÿ ‰ÿ ˆÿ ‡ÿ ‡ÿ†ÿ…ÿ„ÿƒÿ�ÿ�ÿÿ$ÿ1ÿ%%(ÿ>=Bÿ>=Bÿ>=Bÿ>=Cÿ>=Cÿ>=Cÿ?>Cÿ?>Cÿ?>Cÿ?>Cÿ?>Cÿ?>Cÿ@>Dÿ@>Dÿ??Dÿ??Dÿ??Dÿ??Cÿ@?Dÿ@?Dÿ" &ÿÿÿÿÿÿÿ&%+ÿDCHÿcafÿtswÿlkoÿbafÿ" &ÿÿÿÿÿ¯®°ÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿKKKòÿÿÿÿÀÿæææÿíííÿíííÿíííÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿYY^ÿÿÿ__dÿÙÙÚÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿóóóÿÍÍÎÿÿÿÿ+*1ÿ87>ÿ88>ÿ88>ÿ98>ÿ88>ÿ88>ÿ98>ÿ98>ÿ98>ÿ98?ÿ98?ÿ98?ÿ:9?ÿ::?ÿ::?ÿ::@ÿ::@ÿ;;@ÿ;;@ÿ;;@ÿ  ÿzÿ Œÿ Œÿ Œÿ Œÿ Œÿ Œÿ Œÿ Œÿ ‹ÿ Šÿ ‰ÿ ‰ÿ ˆÿ ‡ÿ†ÿ…ÿ„ÿ‚ÿ�ÿ)ÿ=ÿ $#ÿ?>Cÿ?>Cÿ?>Cÿ?>Cÿ@>Dÿ@>Dÿ@>Dÿ??Dÿ??Dÿ??Dÿ??Cÿ??Cÿ??Cÿ@@Dÿ@?Dÿ@@Dÿ@@Dÿ@@DÿA?EÿA?Eÿ'%+ÿÿÿ'%+ÿ¤£¥ÿ½¼¾ÿ×רÿæææÿåååÿåååÿåååÿäääÿäääÿ—–˜ÿÿÿÿÿ˜˜šÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿKKKòÿÿÿÿÀÿæææÿíííÿíííÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿttxÿÿÿqquÿòòòÿòòòÿòòòÿòòòÿóóóÿóóóÿóóóÿóóóÿîîîÿÿÿÿ('.ÿ98>ÿ98?ÿ98?ÿ98?ÿ:9?ÿ:9?ÿ:9?ÿ:9@ÿ:9@ÿ:9@ÿ;:@ÿ;:@ÿ;:@ÿ;:@ÿ;:@ÿ;:@ÿ<:Aÿ<;Aÿ<ÿ!ÿÿÿÿ ÿ;;Aÿ<=Cÿ>=Cÿ>=Cÿ>=Cÿ>=Cÿ>=Cÿ?=Dÿ?=Dÿ ! ÿ …ÿ ” ÿ ” ÿ ” ÿ ” ÿ ” ÿ ” ÿ ” ÿ “ ÿ ’ ÿ ’ ÿ ‘ ÿ ‘ ÿ �ÿ �ÿ Žÿ �ÿ Œÿ Šÿ ‰ÿ=ÿTÿÿBAFÿBAFÿBBFÿCBFÿCBFÿCBFÿCBFÿCBFÿCBFÿCBFÿAAEÿ!%"ÿ ÿ"!#ÿDCGÿCCGÿDDHÿDDHÿDDHÿDDHÿ?>Bÿÿÿÿ{{~ÿçççÿçççÿæææÿæææÿåååÿåååÿÒÒÓÿ¤¤¦ÿxx{ÿ"ÿÿÿÿ;:?ÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿLLLòÿÿÿÿÀÿçççÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿåååÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<=Dÿ>=Dÿ>>Dÿ>>Dÿ?>Dÿ?>Cÿ?>Cÿ?>Cÿ@?Dÿ # ÿ ˆÿ – ÿ – ÿ – ÿ – ÿ – ÿ • ÿ • ÿ • ÿ ” ÿ ” ÿ “ ÿ “ ÿ ‘ ÿ ‘ ÿ �ÿ Žÿ Žÿ Œÿ ‹ÿCÿQÿÿCBFÿCBFÿCBFÿCCGÿCCGÿCCGÿDCGÿCCGÿDDHÿ//2ÿÿ9ÿHÿÿ,+.ÿECHÿECHÿEDIÿEDIÿEDIÿEDHÿÿÿÿ!ÿ€€ƒÿ˜—šÿ…„‡ÿqqtÿ[[_ÿ105ÿÿÿÿÿÿÿÿ$#(ÿâââÿáááÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿÞÞÞÿÞÞÞÿLLLòÿÿÿÿÀÿèèèÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿ%%+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ88>ÿ==Cÿ==Cÿ>=Dÿ>=Dÿ>=Dÿ>>Dÿ>>Dÿ>>Cÿ>>Cÿ>>Cÿ??Dÿ??Dÿ?>Dÿ??Dÿ??Dÿ??Dÿ@?Eÿ@?Eÿ??Eÿ $ ÿ Šÿ— ÿ˜ ÿ˜ ÿ— ÿ— ÿ— ÿ — ÿ – ÿ – ÿ • ÿ • ÿ ” ÿ “ ÿ “ ÿ ‘ ÿ �ÿ �ÿ Žÿ ŒÿKÿIÿÿCCGÿDDHÿDDHÿDDHÿDDHÿDDHÿDDHÿ;:>ÿÿ#ÿ^ÿmÿiÿ+ÿÿ?>AÿFDHÿFDHÿFEIÿFEIÿGEIÿ"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØØÙÿâââÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿLLLòÿÿÿÿÀÿèèèÿîîîÿîîîÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿ@@Eÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ339ÿ>>Cÿ>>Cÿ>>Cÿ??Dÿ?>Cÿÿ! ÿ::?ÿ@?Eÿ@?Eÿ@?Eÿ@@Eÿ@@Eÿ@@Eÿ@@Eÿ@@Eÿ@@EÿAAFÿAAFÿ ! ÿ ‹ÿš ÿ™ ÿš ÿ™ ÿ™ ÿ ™ ÿ ˜ ÿ˜ ÿ— ÿ — ÿ — ÿ • ÿ • ÿ ” ÿ “ ÿ ’ ÿ ‘ ÿ �ÿ ŽÿSÿBÿÿDCHÿDCHÿDDIÿDDIÿEDIÿBBFÿ !"ÿÿIÿsÿrÿoÿlÿcÿÿÿFFIÿFFIÿFFIÿFFJÿFFJÿ#"(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÀÁÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿLLLòÿÿÿÿÀÿèèèÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿXY]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ//4ÿ??Dÿ@?Eÿ@?Eÿ??Eÿ((+ÿ$ÿBÿÿÿ88<ÿAAFÿAAFÿBAFÿBAFÿBAFÿAAFÿAAFÿAAFÿAAFÿ  ÿ ‹ ÿ› ÿ› ÿ› ÿ› ÿš ÿš ÿš ÿ™ ÿ™ ÿ ˜ ÿ˜ ÿ — ÿ — ÿ • ÿ ” ÿ ” ÿ “ ÿ ‘ ÿ �ÿ[ÿ9ÿ ÿEEHÿEDHÿEDHÿEEIÿ336ÿÿ/ÿpÿxÿvÿtÿqÿnÿkÿLÿÿ-,/ÿGGJÿGGJÿHGKÿHGKÿ*).ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©©«ÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿLLLòÿÿÿÿÀÿèèèÿîîîÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿòòòÿqquÿÿÿÿÿÿÿÿÿÿ !'ÿ007ÿ((.ÿÿÿÿ**0ÿ@@Eÿ@@EÿAAFÿ>>Cÿ ÿiÿ “ ÿ ‰ÿKÿÿÿ226ÿAAFÿBAFÿBAFÿBAFÿBBGÿBBGÿBBGÿ  ÿ ‹ ÿœ ÿœ ÿœ ÿœ ÿœ ÿœ ÿ› ÿ› ÿš ÿš ÿš ÿ ˜ ÿ˜ ÿ — ÿ – ÿ • ÿ ” ÿ ’ ÿ ‘ ÿeÿ2ÿ  ÿFDIÿFEIÿBAEÿÿÿ\ÿÿ|ÿzÿwÿtÿrÿoÿlÿjÿ.ÿÿ@?DÿGGJÿGGJÿHGKÿ//4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’’”ÿâââÿâââÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿÞÞÞÿLLLòÿÿÿÿÀ ÿèèèÿïïïÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿóóóÿˆ‰Œÿÿÿÿ*+0ÿ`aeÿ––™ÿËËÌÿååæÿóóóÿöööÿöööÿª«­ÿÿÿÿ%%+ÿAAFÿAAFÿAAFÿ !#ÿ*ÿ ’ ÿ ” ÿ • ÿ – ÿ � ÿUÿÿ  ÿ004ÿCCHÿCCHÿCCHÿCCHÿCCHÿ  ÿ ‹ ÿž ÿž ÿž ÿž ÿ� ÿ� ÿ� ÿœ ÿœ ÿ› ÿ› ÿš ÿ™ ÿ ˜ ÿ— ÿ — ÿ • ÿ ” ÿ ’ ÿnÿ+ÿ ÿGEJÿ//1ÿÿAÿÿƒÿ€ÿ~ÿ|ÿyÿvÿtÿqÿnÿkÿdÿÿÿIHKÿHHKÿHHKÿ76;ÿÿÿÿÿÿÿÿÿÿ438ÿTTXÿutwÿ”“–ÿÿÿÿÿ{z}ÿâââÿâââÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿÞÞÞÿLLLòÿÿÿÿÀ ÿèèèÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿ  £ÿÿÿœ�Ÿÿôôôÿõõõÿõõõÿõõõÿöööÿöööÿöööÿ÷÷÷ÿèèèÿÿÿÿ$ÿBAFÿBBGÿ<<@ÿ ÿtÿ ” ÿ • ÿ – ÿ— ÿ ˜ ÿ™ ÿ • ÿaÿ!ÿ  ÿ226ÿDDIÿEDIÿDDIÿ  ÿ ‹ ÿž ÿž ÿž ÿŸ ÿŸ ÿž ÿ ‘ ÿ 9 ÿ"1!ÿ+:*ÿ)ÿOÿ” ÿ™ ÿ ˜ ÿ— ÿ – ÿ • ÿ ” ÿyÿ#ÿÿÿ)ÿtÿ ˆÿ †ÿ„ÿ‚ÿ€ÿ}ÿ{ÿxÿuÿrÿoÿlÿjÿMÿÿ..0ÿJILÿJILÿ==Aÿÿÿÿ$ÿ``dÿ��ƒÿ¢¢¤ÿÂÂÃÿàààÿæææÿåååÿåååÿäääÿ+*0ÿÿÿÿa`dÿâââÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿßßßÿLLLòÿÿÿÿÀ ÿéééÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿóóóÿóóóÿ¸¸¹ÿÿÿ¨¨ªÿõõõÿõõõÿõõõÿöööÿöööÿöööÿ÷÷÷ÿ÷÷÷ÿ÷÷÷ÿ228ÿÿÿÿBCGÿBCGÿÿ2ÿ ” ÿ • ÿ – ÿ˜ ÿ™ ÿš ÿ› ÿœ ÿœ ÿš ÿ gÿ$ÿ ÿ336ÿEDIÿ  ÿ Š ÿ  ÿ  ÿ  ÿ  ÿ  ÿ jÿ-6-ÿ&&&ÿ***ÿ)((ÿIHFÿ642ÿ0ÿ– ÿš ÿ™ ÿ˜ ÿ – ÿ • ÿ �ÿÿÿYÿ Œÿ Œÿ ‰ÿ ‡ÿ†ÿ„ÿ�ÿÿ|ÿyÿvÿtÿqÿnÿjÿjÿ/ÿÿCCEÿKJMÿEEHÿÿÿÿ::?ÿçççÿçççÿçççÿæææÿæææÿæææÿåååÿåååÿäääÿBAFÿÿÿÿGFKÿâââÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿßßßÿLLLòÿÿÿÿ À ÿéééÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿÐÐÑÿÿÿ¢¢¥ÿõõõÿõõõÿöööÿöööÿöööÿ÷÷÷ÿ÷÷÷ÿ÷÷÷ÿøøøÿ89>ÿÿÿÿBBFÿ78;ÿ ÿ ~ÿ • ÿ – ÿ˜ ÿ™ ÿš ÿ› ÿœ ÿ� ÿž ÿž ÿŸ ÿž ÿ mÿ'ÿ ÿÿ ‘ ÿ¡ ÿ¡ ÿ¡ ÿ¡ ÿ � ÿ&ÿ###ÿDC@ÿ��Šÿ—•“ÿ+*)ÿVSQÿ21.ÿ Lÿ› ÿš ÿ™ ÿ˜ ÿ – ÿ • ÿjÿ ˆÿ ‘ ÿ �ÿ �ÿ ‹ÿ ‰ÿ ‡ÿ„ÿ‚ÿ€ÿ}ÿ{ÿxÿtÿrÿoÿlÿjÿdÿÿÿKJMÿJJMÿÿÿÿ@@EÿèèèÿçççÿçççÿæææÿæææÿæææÿåååÿåååÿäääÿKKPÿÿÿÿ-,1ÿâââÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿßßßÿLLLòÿÿÿÿ À!!!ÿéééÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿéééÿÿÿlmpÿõõõÿõõõÿöööÿöööÿöööÿ÷÷÷ÿ÷÷÷ÿ÷÷÷ÿÒÓÔÿ016ÿÿÿÿ==Bÿÿ;ÿ • ÿ – ÿ˜ ÿ™ ÿš ÿ› ÿœ ÿ� ÿž ÿŸ ÿ  ÿ  ÿ¡ ÿ¡ ÿ  ÿ sÿBÿ¡ ÿ¢ ÿ¢ ÿ¢ ÿ¢ ÿ Gÿÿ/-+ÿ€}xÿtsrÿ¬«¨ÿyurÿ444ÿc`Zÿ&ÿ› ÿ› ÿš ÿ™ ÿ— ÿ — ÿ • ÿ “ ÿ ’ ÿ �ÿ Žÿ Œÿ Šÿ ˆÿ†ÿ„ÿ�ÿÿ|ÿyÿvÿtÿpÿmÿjÿjÿKÿÿ445ÿLKMÿ$ÿÿÿ66;ÿèèèÿçççÿçççÿçççÿæææÿæææÿåååÿåååÿåååÿMMQÿÿÿÿÿÝÝÝÿâââÿáááÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿLLLòÿÿÿÿ À!!!ÿéééÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿóóóÿóóóÿóóóÿôôôÿ &ÿÿ !'ÿíííÿöööÿçççÿÍÍÎÿ³´µÿ˜˜›ÿefjÿ*+1ÿÿÿÿÿÿ'(+ÿÿ †ÿ — ÿ— ÿ™ ÿš ÿ› ÿœ ÿž ÿž ÿŸ ÿ  ÿ¡ ÿ¡ ÿ¢ ÿ¢ ÿ¢ ÿ¢ ÿ£ ÿ£ ÿ£ ÿ£ ÿ£ ÿ£ ÿ 1 ÿÿTRMÿyxtÿ%%%ÿžœ™ÿrpkÿ.-,ÿqojÿ%ÿ “ ÿœ ÿ› ÿš ÿ ˜ ÿ— ÿ – ÿ ” ÿ ’ ÿ ‘ ÿ �ÿ Žÿ Œÿ ‰ÿ ‡ÿ„ÿ‚ÿ€ÿ}ÿzÿwÿuÿrÿnÿkÿjÿiÿ(ÿ ÿIHKÿ&%*ÿÿÿÿØ×ØÿçççÿçççÿçççÿæææÿÞÞÞÿÂÂÃÿ§§©ÿ……ˆÿÿÿÿÿÿÄÄÅÿâââÿâââÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿLLLòÿÿÿÿ À!!!ÿéééÿïïïÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿôôôÿôôôÿ68=ÿÿÿ&',ÿ$ÿÿÿÿÿÿÿÿÿÿÿÿ ÿDÿ – ÿ— ÿ ˜ ÿš ÿ› ÿœ ÿž ÿž ÿ  ÿ  ÿ¡ ÿ¢ ÿ¢ ÿ¢ ÿ£ ÿ£ ÿ¤ ÿ£ ÿ¤ ÿ¤ ÿ¤ ÿ¤ ÿ¤ ÿ 9 ÿ//.ÿ;:7ÿ¢¡œÿ°¯¬ÿ’�‹ÿCA@ÿ444ÿxtpÿ)ÿœ ÿ� ÿœ ÿ› ÿš ÿ ˜ ÿ — ÿ • ÿ ” ÿ ’ ÿ �ÿ Žÿ Œÿ Šÿ ˆÿ†ÿ„ÿ€ÿ~ÿ|ÿxÿuÿsÿoÿlÿjÿjÿ_ÿ ÿ&%&ÿ'&,ÿÿÿÿrrvÿ||€ÿa`dÿEDIÿ*)/ÿÿÿÿÿÿÿÿÿÿªª¬ÿâââÿâââÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿLLLòÿÿÿÿ À!!!ÿéééÿïïïÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿôôôÿôôôÿNPTÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‹ÿ — ÿ ˜ ÿš ÿ› ÿœ ÿž ÿž ÿ  ÿ  ÿ¡ ÿ¢ ÿ¢ ÿ£ ÿ¤ ÿ£ ÿ¤ ÿ¥ ÿ¤ ÿ¤ ÿ¤ ÿ¤ ÿ¤ ÿ¤ ÿ i ÿ()'ÿÿNMLÿzyvÿHGEÿ%$#ÿ„‚ÿa`]ÿ2ÿŸ ÿž ÿ� ÿœ ÿ› ÿ™ ÿ˜ ÿ – ÿ • ÿ “ ÿ ‘ ÿ �ÿ Žÿ Œÿ ‰ÿ ‡ÿ„ÿ‚ÿÿ|ÿzÿvÿtÿqÿmÿjÿjÿjÿ>ÿÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ��“ÿâââÿâââÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿLLLòÿÿÿÿ À!!!ÿéééÿïïïÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿóóóÿóóóÿóóóÿôôôÿôôôÿghlÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNÿ — ÿ˜ ÿ™ ÿ› ÿœ ÿ� ÿž ÿ  ÿ  ÿ¡ ÿ¢ ÿ¢ ÿ£ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ¥ ÿ¥ ÿ¥ ÿ¥ ÿ¥ ÿ¥ ÿ¥ ÿ˜ ÿ#ÿ@?;ÿ$$#ÿ ÿÿeecÿŽ�‰ÿ$)#ÿ ‚ ÿ  ÿŸ ÿž ÿœ ÿœ ÿš ÿ™ ÿ— ÿ – ÿ ” ÿ ’ ÿ � ÿ Žÿ Œÿ Šÿ ˆÿ…ÿƒÿ�ÿ}ÿ{ÿwÿuÿrÿnÿkÿjÿjÿgÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvuyÿâââÿâââÿáááÿáááÿàààÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿóóóÿóóóÿóóóÿôôôÿôôôÿ€ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ � ÿ˜ ÿ™ ÿš ÿœ ÿ� ÿž ÿŸ ÿ  ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¤ ÿ¤ ÿ¥ ÿ¥ ÿ¥ ÿ¦ ÿ¦ ÿ¦ ÿ¦ÿ¦ÿ¦ÿ¦ ÿ¦ ÿŽ ÿ ÿ++(ÿÿ(('ÿ@?=ÿ#ÿ \ ÿ¢ ÿ¡ ÿ  ÿŸ ÿž ÿœ ÿ› ÿš ÿ˜ ÿ – ÿ • ÿ “ ÿ ‘ ÿ �ÿ �ÿ ‹ÿ ‰ÿ †ÿ„ÿ�ÿ~ÿ|ÿxÿuÿsÿoÿlÿjÿjÿjÿTÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\[`ÿâââÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ!!!À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿóóóÿôôôÿôôôÿ—˜šÿÿÿÿÿÿÿÿÿÿÿÿ%ÿÿ ÿYÿ – ÿ˜ ÿš ÿ› ÿ� ÿž ÿž ÿ  ÿ¡ ÿ¢ ÿ£ ÿ£ ÿ¤ ÿ¥ ÿ¥ ÿ¥ ÿ¦ ÿ¦ÿ¦ ÿ¦ ÿ¦ ÿ§ ÿ§ ÿ§ ÿ¦ ÿ¦ ÿ¦ÿ˜ ÿLÿ  ÿ  ÿCÿ� ÿ£ ÿ¢ ÿ¢ ÿ¡ ÿ  ÿž ÿ� ÿœ ÿš ÿ™ ÿ— ÿ – ÿ ” ÿ ’ ÿ �ÿ Žÿ Œÿ ‰ÿ ‡ÿ„ÿ‚ÿÿ|ÿzÿvÿtÿpÿmÿjÿjÿjÿjÿ.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAAFÿâââÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ!!!À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿôôôÿôôôÿôôôÿ¯°±ÿÿÿÿÿ/06ÿijnÿ£¤¦ÿÄÄÆÿÖÖ×ÿéééÿøøøÿÏÏÐÿÿÿ “ ÿ— ÿ™ ÿš ÿœ ÿž ÿŸ ÿ  ÿ¡ ÿ¡ ÿ¢ ÿ¤ ÿ¤ ÿ¤ ÿ¥ ÿ¥ ÿ¦ ÿ¦ ÿ§ ÿ§ ÿ§ÿ§ÿ§ÿ§ÿ§ÿ§ÿ¦ÿ§ ÿ¦ ÿž ÿ  ÿ  ÿŸ ÿ¥ ÿ£ ÿ£ ÿ¢ ÿ¡ ÿ  ÿŸ ÿž ÿ� ÿ› ÿš ÿ˜ ÿ – ÿ • ÿ ’ ÿ ‘ ÿ �ÿ Œÿ Šÿ ˆÿ…ÿƒÿ€ÿ}ÿzÿwÿtÿqÿmÿjÿjÿjÿjÿZÿÿ ÿÿÿÿÿÿÿ..5ÿBBHÿVV[ÿjjnÿqquÿÿÿÿÿ('-ÿâââÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ!!!À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿôôôÿôôôÿôôôÿÇÇÉÿÿÿDFJÿÙÙÚÿ÷÷÷ÿ÷÷÷ÿ÷÷÷ÿøøøÿøøøÿùùùÿùùùÿùùùÿ ÿeÿ – ÿ˜ ÿš ÿ› ÿ� ÿž ÿŸ ÿ  ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¥ ÿ¥ ÿ¦ ÿ¦ÿ¦ ÿ§ ÿ§ÿ§ ÿ§ ÿ§ÿ§ÿ§ÿ§ÿ§ ÿ§ ÿ§ÿ§ÿŸ ÿ  ÿ  ÿž ÿ¥ ÿ¤ ÿ£ ÿ£ ÿ¢ ÿ¡ ÿ  ÿž ÿ� ÿœ ÿš ÿ ™ ÿ — ÿ • ÿ ” ÿ ‘ ÿ �ÿ �ÿ ‹ÿ ‰ÿ†ÿ„ÿ€ÿ~ÿ{ÿxÿtÿrÿnÿkÿjÿjÿjÿ_ÿÿÿÿÿKKPÿ{{ÿ««­ÿØØÙÿæææÿæææÿåååÿåååÿäääÿ??EÿÿÿÿÿÚÚÚÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ!!!À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿôôôÿôôôÿôôôÿàààÿÿÿFGLÿöööÿ÷÷÷ÿ÷÷÷ÿ÷÷÷ÿøøøÿøøøÿùùùÿùùùÿÙÚÙÿ*ÿ ” ÿ— ÿ™ ÿš ÿœ ÿž ÿŸ ÿ  ÿ¡ ÿ¢ ÿ£ ÿ£ ÿ¤ ÿ¥ ÿ¦ ÿ¦ÿ§ ÿ§ÿ§ ÿ§ ÿ§ÿ¨ÿ¨ÿ§ ÿ§ ÿ§ ÿ§ÿ§ÿ§ÿ§ ÿŸ ÿ  ÿÿž ÿ¥ ÿ¤ ÿ¤ ÿ£ ÿ¢ ÿ¡ ÿ  ÿŸ ÿž ÿœ ÿ› ÿ™ ÿ— ÿ – ÿ ” ÿ ’ ÿ �ÿ �ÿ Œÿ ‰ÿ ‡ÿ„ÿ�ÿÿ|ÿxÿuÿrÿoÿkÿjÿhÿDÿÿÿÿÿÿÖÖÖÿçççÿçççÿæææÿæææÿæææÿåååÿåååÿäääÿˆˆ‹ÿÿÿÿÿ¿¿ÁÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ!!!À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿôôôÿôôôÿôôôÿôôôÿ"ÿÿ./5ÿöööÿ÷÷÷ÿ÷÷÷ÿ÷÷÷ÿøøøÿøøøÿùùùÿùùùÿEUEÿpÿ – ÿ˜ ÿ™ ÿ› ÿ� ÿž ÿŸ ÿ¡ ÿ¢ ÿ¢ ÿ£ ÿ¤ ÿ¥ ÿ¥ ÿ¦ÿ§ ÿ§ÿ§ ÿ§ÿ§ÿ¨ ÿ§ÿ§ÿ¨ÿ¨ÿ§ÿ§ÿ§ÿ¨ÿ§ÿ  ÿ  ÿ  ÿœ ÿ¦ ÿ¥ ÿ¤ ÿ£ ÿ£ ÿ¢ ÿ¡ ÿŸ ÿž ÿ� ÿ› ÿš ÿ™ ÿ – ÿ • ÿ ’ ÿ ‘ ÿ Žÿ Œÿ ‰ÿ ‡ÿ„ÿ‚ÿÿ|ÿyÿvÿsÿoÿlÿ^ÿ$ÿÿÿ ÿÿÿÿÄÄÅÿçççÿçççÿæææÿæææÿæææÿåååÿåååÿäääÿ––™ÿÿÿÿÿ¦¦¨ÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ!!!À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿôôôÿôôôÿôôôÿõõõÿ57<ÿÿÿØØÙÿ÷÷÷ÿ÷÷÷ÿ÷÷÷ÿøøøÿøøøÿùùùÿäääÿ 2 ÿ ’ ÿ — ÿ ˜ ÿš ÿœ ÿ� ÿŸ ÿ  ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ¦ ÿ¦ ÿ§ÿ§ ÿ§ÿ§ ÿ§ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ ÿ¡ ÿ ÿ  ÿš ÿ¦ÿ¥ ÿ¥ ÿ¤ ÿ£ ÿ¢ ÿ¡ ÿ  ÿŸ ÿž ÿœ ÿš ÿ ˜ ÿ — ÿ • ÿ “ ÿ ‘ ÿ �ÿ Œÿ Šÿ ˆÿ…ÿ‚ÿ€ÿ|ÿzÿvÿtÿnÿAÿÿ$ÿ ÿÿÿÿÿÿ­­¯ÿçççÿçççÿæææÿæææÿæææÿåååÿåååÿäääÿ••˜ÿÿÿÿÿ‹‹ŽÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ!!!À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿôôôÿôôôÿôôôÿõõõÿQSXÿÿÿ‡‰ŒÿÒÓÔÿ¶·¹ÿ›œžÿ€�„ÿcdhÿGIMÿ)+1ÿ ÿ$ÿ sÿ™ ÿ› ÿœ ÿ� ÿŸ ÿ  ÿ¢ ÿ¢ ÿ£ ÿ¥ ÿ¥ ÿ¦ ÿ¦ ÿ§ ÿ§ ÿ§ÿ§ ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ÿ¨ ÿ¨ ÿ¨ÿ¨ÿ¨ÿ¨ ÿ¨ÿ£ ÿ ÿ  ÿ— ÿ¦ ÿ¦ ÿ¥ ÿ¤ ÿ¤ ÿ¢ ÿ¢ ÿ¡ ÿŸ ÿž ÿœ ÿ› ÿ™ ÿ— ÿ • ÿ ” ÿ ‘ ÿ �ÿ �ÿ ‹ÿ ˆÿ†ÿƒÿ€ÿ}ÿzÿwÿbÿ)ÿ)ÿÿ ÿ%ÿ 'ÿÿÿÿÿŠŠ�ÿçççÿçççÿæææÿæææÿÒÒÒÿ´´¶ÿ˜˜šÿttxÿ%ÿÿÿÿÿqquÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ!!!À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿóóóÿôôôÿôôôÿõõõÿnosÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ4ÿ ‰ ÿ� ÿž ÿ  ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ¦ÿ§ ÿ§ÿ§ÿ¨ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ ÿ£ ÿ  ÿ  ÿ“ ÿ§ ÿ¦ÿ¥ ÿ¤ ÿ¤ ÿ£ ÿ¢ ÿ¡ ÿŸ ÿž ÿ� ÿ› ÿ™ ÿ˜ ÿ – ÿ ” ÿ ’ ÿ �ÿ Žÿ ‹ÿ ‰ÿ†ÿ„ÿ€ÿ}ÿxÿDÿ+ÿ(ÿ ÿÿ!!(ÿ!!(ÿ!!(ÿ#ÿÿÿÿCCHÿmmqÿSSXÿ88>ÿ$ÿÿÿÿÿÿÿÿÿÿWW\ÿâââÿáááÿáááÿáááÿàààÿàààÿßßßÿßßßÿMMMòÿÿÿÿ À!!!ÿéééÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿóóóÿóóóÿóóóÿôôôÿôôôÿõõõÿŠŒŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿIÿ— ÿ  ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¥ ÿ¦ ÿ¦ ÿ¦ÿ§ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ ÿ¨ÿ¤ ÿ ÿ  ÿ� ÿ§ÿ¦ ÿ¦ ÿ¥ ÿ¤ ÿ£ ÿ¢ ÿ¡ ÿ  ÿž ÿ� ÿ› ÿš ÿ˜ ÿ — ÿ ” ÿ ’ ÿ �ÿ �ÿ Œÿ ‰ÿ †ÿ„ÿ€ÿjÿ5ÿ-ÿ ÿ ÿ 'ÿ!")ÿ!"(ÿ!"(ÿ!"(ÿ !'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<ÿ§ ÿ¦ ÿ¥ ÿ¥ ÿ£ ÿ£ ÿ¡ ÿ¡ ÿŸ ÿž ÿœ ÿ› ÿ™ ÿ˜ ÿ • ÿ ” ÿ ‘ ÿ �ÿ �ÿ Šÿ ˆÿ…ÿ‚ÿ€ÿ|ÿzÿvÿsÿpÿlÿjÿjÿjÿjÿ7ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœœžÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿLLLòÿÿÿÿÀÿèèèÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿóóóÿ6:>ÿÿÿÿÿÿÿÿÿÿÿÿ_ÿ› ÿž ÿŸ ÿ  ÿ¡ ÿ¢ ÿ¤ ÿ¤ ÿ¥ ÿ¦ ÿ¦ ÿ§ ÿ§ ÿ§ÿ¨ ÿ¨ÿ¨ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ÿ§ ÿ / ÿÿ:ÿ¦ ÿ¦ ÿ¥ ÿ¤ ÿ£ ÿ£ ÿ¡ ÿ  ÿž ÿž ÿœ ÿš ÿ ˜ ÿ — ÿ • ÿ “ ÿ ‘ ÿ Žÿ Œÿ ‰ÿ ‡ÿ„ÿ‚ÿÿ|ÿyÿuÿsÿoÿlÿjÿjÿjÿdÿÿÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€�„ÿàààÿàààÿßßßÿßßßÿßßßÿÞÞÞÿLLLòÿÿÿÿÀÿçççÿîîîÿîîîÿîîîÿïïïÿïïïÿðððÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿòòòÿóóóÿSUYÿÿÿÿÿÿÿÿÿ ÿ*ÿ ‡ÿš ÿ› ÿ� ÿž ÿŸ ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ¦ ÿ¦ ÿ§ÿ§ ÿ¨ÿ§ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ ÿ¨ÿ§ÿ¨ÿ 2 ÿ ÿ6ÿ¦ ÿ¥ ÿ¤ ÿ¤ ÿ£ ÿ¢ ÿ¡ ÿ  ÿž ÿ� ÿ› ÿš ÿ˜ ÿ — ÿ ” ÿ “ ÿ �ÿ Žÿ Œÿ ‰ÿ ‡ÿ„ÿ�ÿ~ÿ|ÿxÿuÿrÿnÿkÿjÿjÿjÿ5ÿ#ÿ ÿ%'-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfgkÿàààÿàààÿßßßÿßßßÿÞÞÞÿÞÞÞÿLLLòÿÿÿÿÀÿçççÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿòòòÿòòòÿnqtÿÿÿ$ÿJMQÿfilÿ‚„‡ÿŸ¡£ÿ»¼½ÿMUNÿ T ÿ— ÿ™ ÿ› ÿ� ÿž ÿŸ ÿ¡ ÿ¢ ÿ¢ ÿ£ ÿ¥ ÿ¥ ÿ¦ ÿ¦ ÿ§ ÿ§ÿ§ ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¨ ÿ¨ÿ§ ÿ'ÿ"""ÿ.ÿ¦ ÿ¥ ÿ¤ ÿ£ ÿ¢ ÿ¢ ÿ  ÿŸ ÿž ÿœ ÿ› ÿš ÿ— ÿ – ÿ ” ÿ ’ ÿ �ÿ Žÿ ‹ÿ ‰ÿ†ÿ„ÿ€ÿ~ÿ{ÿwÿuÿqÿnÿjÿjÿjÿbÿÿ)ÿ$(*ÿ+,2ÿÿÿÿÿÿÿÿ-/4ÿRTXÿdeiÿvwzÿ‡ˆŠÿ{|ÿÿÿÿÿKMQÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿLLLòÿÿÿÿÀÿçççÿíííÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿòòòÿŠ��ÿÿÿRUYÿôôôÿôôôÿôôôÿôôôÿôôôÿæææÿ&ÿ ‡ÿ™ ÿš ÿœ ÿž ÿŸ ÿ  ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ¦ ÿ¦ ÿ§ ÿ§ÿ§ ÿ§ÿ¨ÿ§ÿ§ÿ¨ÿ¨ÿ¨ÿ¨ÿ§ ÿ¨ÿ§ÿ§ ÿ lÿ ÿ!!!ÿÿ=ÿ‹ ÿ¤ ÿ£ ÿ¢ ÿ¡ ÿ  ÿŸ ÿ� ÿœ ÿš ÿ ˜ ÿ — ÿ • ÿ “ ÿ ‘ ÿ �ÿ �ÿ Šÿ ˆÿ…ÿƒÿ€ÿ}ÿzÿwÿtÿpÿmÿjÿjÿjÿ2ÿ&ÿ ÿ349ÿ006ÿÿÿÿÿtuxÿ¥¥§ÿÑÑÒÿäääÿãããÿãããÿãããÿâââÿàààÿ#%+ÿÿÿÿ238ÿàààÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿKKKòÿÿÿÿÀÿçççÿíííÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿïïïÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿòòòÿ§¨ªÿÿÿUX\ÿóóóÿóóóÿôôôÿôôôÿôôôÿôôôÿŠŒŠÿ ; ÿ ˜ ÿš ÿ› ÿ� ÿž ÿ  ÿ  ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¥ ÿ¥ ÿ¦ ÿ¦ ÿ§ ÿ§ÿ§ ÿ§ÿ§ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ§ÿ§ÿ’ ÿ.ÿÿ##$ÿ"""ÿ"""ÿÿÿ-ÿ vÿ  ÿ¡ ÿŸ ÿž ÿ� ÿ› ÿ™ ÿ˜ ÿ — ÿ ” ÿ “ ÿ � ÿ Žÿ Œÿ ‰ÿ ‡ÿ„ÿ‚ÿÿ|ÿyÿvÿsÿpÿlÿjÿjÿ`ÿÿ&ÿ#'(ÿ45;ÿ45;ÿÿÿÿÿÖÖ×ÿäääÿäääÿäääÿãããÿãããÿãããÿâââÿâââÿ^_cÿÿÿÿ ÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿKKKòÿÿÿÿÀÿæææÿíííÿíííÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿðððÿñññÿñññÿñññÿòòòÿÄÅÆÿÿÿGKOÿóóóÿóóóÿóóóÿôôôÿôôôÿôôôÿòòòÿ#,#ÿ nÿ™ ÿ› ÿœ ÿž ÿž ÿ  ÿ¡ ÿ¢ ÿ£ ÿ£ ÿ¤ ÿ¥ ÿ¥ ÿ¦ ÿ¦ ÿ§ ÿ§ÿ§ÿ§ ÿ§ ÿ§ ÿ§ ÿ§ ÿ§ ÿ¤ ÿXÿÿ""#ÿÿÿ  ÿ  ÿÿÿ"""ÿÿ # ÿcÿž ÿž ÿœ ÿš ÿ™ ÿ˜ ÿ • ÿ ” ÿ ’ ÿ �ÿ Žÿ ‹ÿ ‰ÿ ‡ÿ„ÿ�ÿ~ÿ|ÿxÿuÿrÿoÿkÿjÿjÿ0ÿ(ÿÿ46<ÿ57<ÿ57<ÿ ÿÿÿÿÌÍÍÿäääÿäääÿäääÿãããÿãããÿâââÿâââÿâââÿfgkÿÿÿÿÿÉÊÊÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿKKKòÿÿÿÿÀÿæææÿíííÿíííÿíííÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿðððÿñññÿñññÿñññÿàááÿÿÿ ÿìììÿóóóÿóóóÿóóóÿóóóÿôôôÿßààÿ�‚ƒÿ"ÿ ’ ÿš ÿœ ÿ� ÿž ÿ  ÿ¡ ÿ¢ ÿ¢ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ¥ ÿ¦ ÿ¦ÿ¦ ÿ§ ÿ§ ÿ§ÿ¦ÿ¦ÿ§ÿŽ ÿ*ÿÿ ÿ  ÿJÿ‘ ÿ£ ÿž ÿ tÿ6ÿÿÿ###ÿÿ2ÿ ‘ ÿ› ÿš ÿ˜ ÿ – ÿ • ÿ “ ÿ ‘ ÿ �ÿ Œÿ Šÿ ˆÿ…ÿƒÿ�ÿ}ÿ{ÿwÿuÿqÿnÿjÿjÿ_ÿÿ#ÿ$&)ÿ68=ÿ68=ÿ68<ÿ#ÿÿÿÿÂÃÄÿäääÿäääÿãããÿãããÿãããÿâââÿâââÿâââÿefiÿÿÿÿÿ°°²ÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿKKKòÿÿÿÿÀÿæææÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿðððÿñññÿñññÿñññÿ#ÿÿÿ‰ŒŽÿ™›�ÿ�„†ÿgjmÿNRVÿ-26ÿÿÿ ÿKÿ™ ÿ› ÿœ ÿž ÿŸ ÿ  ÿ¡ ÿ¡ ÿ£ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ¥ ÿ¦ ÿ¦ ÿ¦ÿ¦ ÿ¦ ÿ¦ ÿ¦ ÿ‰ ÿ  ÿ !!ÿÿ)ÿ� ÿ¥ ÿ¤ ÿ¤ ÿ£ ÿ£ ÿ¢ ÿ™ ÿ lÿ$ ÿÿÿ  ÿiÿ™ ÿ˜ ÿ • ÿ ” ÿ ’ ÿ �ÿ Žÿ Œÿ ‰ÿ ‡ÿ„ÿ‚ÿÿ|ÿzÿvÿtÿpÿmÿjÿjÿ-ÿ)ÿÿ68=ÿ78=ÿ78=ÿ68>ÿ #(ÿÿÿÿª«­ÿäääÿãããÿ×××ÿÇÈÈÿ¦§©ÿ|~€ÿTUYÿ*,2ÿÿÿÿÿÿ•–˜ÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿKKKòÿÿÿÿÀÿåååÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿðððÿñññÿñññÿ6:>ÿÿÿÿÿÿÿÿÿÿÿÿÿ „ÿš ÿ› ÿ� ÿž ÿŸ ÿ  ÿ¡ ÿ¢ ÿ¢ ÿ£ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ¥ ÿ¥ ÿ¦ ÿ¦ ÿ¦ ÿ † ÿ  ÿÿ  ÿPÿ¡ ÿ¥ ÿ¤ ÿ¤ ÿ¤ ÿ£ ÿ¢ ÿ¢ ÿ¡ ÿŸ ÿ› ÿYÿÿÿÿIÿ • ÿ • ÿ “ ÿ ‘ ÿ �ÿ �ÿ ‹ÿ ˆÿ†ÿ„ÿ€ÿ~ÿ|ÿxÿuÿrÿoÿlÿjÿ]ÿÿÿ$%)ÿ79>ÿ79?ÿ79?ÿ79?ÿ%(.ÿÿÿÿÿ #(ÿÿÿÿÿÿÿÿÿÿÿÿÿ{|ÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿKKKòÿÿÿÿÀÿåååÿìììÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿðððÿñññÿRVYÿÿÿÿÿÿÿÿÿÿÿÿ ÿ/ÿ™ ÿ› ÿœ ÿ� ÿž ÿŸ ÿ  ÿ¡ ÿ¢ ÿ£ ÿ£ ÿ¤ ÿ¤ ÿ¤ ÿ¤ ÿ¥ ÿ¥ ÿ¥ ÿ  ÿÿÿ ÿ € ÿ¥ ÿ¤ ÿ¤ ÿ£ ÿ¤ ÿ£ ÿ¢ ÿ¡ ÿ  ÿ  ÿŸ ÿ� ÿ� ÿ � ÿ<ÿ ÿÿ6ÿ ‹ÿ ’ ÿ �ÿ Žÿ ‹ÿ ‰ÿ ‡ÿ…ÿ‚ÿ€ÿ}ÿzÿwÿuÿqÿnÿjÿjÿ,ÿ*ÿ  ÿ8:@ÿ8:?ÿ9;@ÿ9;@ÿ9;@ÿ+.2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿacfÿßßßÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿJJJòÿÿÿÿÀÿäääÿìììÿìììÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿðððÿðððÿðððÿoruÿÿÿÿÿÿÿÿÿÿÿÿÿÿfÿš ÿ› ÿœ ÿž ÿž ÿ  ÿ  ÿ¡ ÿ¡ ÿ¢ ÿ£ ÿ£ ÿ£ ÿ¤ ÿ¤ ÿ¤ ÿ¤ ÿVÿÿBÿ› ÿ¤ ÿ¤ ÿ£ ÿ£ ÿ£ ÿ£ ÿ¢ ÿ¡ ÿ¡ ÿ  ÿž ÿž ÿ� ÿ› ÿš ÿ™ ÿ ‚ÿ(ÿÿÿWÿ ‹ÿ �ÿ ‹ÿ ‰ÿ †ÿ„ÿ�ÿÿ|ÿyÿvÿsÿpÿlÿjÿ]ÿÿÿ+,0ÿ:<@ÿ:<@ÿ:<@ÿ:<@ÿ:<@ÿ139ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFHMÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿJJJòÿÿÿÿÀÿäääÿëëëÿìììÿìììÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿïïïÿðððÿðððÿ‹��ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ‘ ÿš ÿ› ÿœ ÿž ÿž ÿŸ ÿ  ÿ¡ ÿ¡ ÿ¢ ÿ£ ÿ£ ÿ£ ÿ£ ÿ  ÿYÿ ÿ3ÿ£ ÿ£ ÿ£ ÿ£ ÿ£ ÿ¢ ÿ¢ ÿ¢ ÿ¡ ÿ  ÿŸ ÿŸ ÿž ÿœ ÿœ ÿš ÿš ÿ˜ ÿ – ÿ ŽÿÿÿÿÿUÿ…ÿ ‡ÿ…ÿƒÿ€ÿ}ÿ{ÿwÿtÿrÿoÿkÿjÿ*ÿ+ÿÿ;=Aÿ;=Aÿ;=Aÿ;=Aÿ<=Bÿ<=Bÿ79>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,.4ÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿJJJòÿÿÿÿÀÿäääÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿïïïÿðððÿ§©ªÿÿÿÿÿÿÿÿÿÿ"ÿ49=ÿPSWÿÿÿFÿ™ ÿš ÿ› ÿœ ÿž ÿž ÿŸ ÿ  ÿ¡ ÿ¡ ÿ¢ ÿ¢ ÿ¢ ÿ | ÿ7ÿÿÿ>ÿ£ ÿ£ ÿ¢ ÿ¢ ÿ¢ ÿ¡ ÿ¡ ÿ  ÿ  ÿ  ÿŸ ÿ� ÿ� ÿœ ÿš ÿ™ ÿ˜ ÿ — ÿ • ÿ ” ÿÿÿÿ+.1ÿÿÿRÿ€ÿ�ÿÿ|ÿyÿvÿtÿpÿmÿjÿ[ÿÿÿ136ÿ;=Aÿ<=Bÿ<=Bÿ<=Bÿ<=Bÿ<>Cÿ<>CÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛÛÛÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿJJJòÿÿÿÿÀÿäääÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿïïïÿÃÄÅÿÿÿÿHMQÿmpsÿ‰ŒŽÿ¦¨©ÿÂÃÄÿÞÞÞÿñññÿñññÿòòòÿ6:>ÿ ÿ ÿ €ÿš ÿš ÿ› ÿœ ÿ� ÿž ÿž ÿ  ÿ  ÿ¡ ÿ” ÿAÿ,ÿÿÿÿ?ÿ¢ ÿ¢ ÿ¢ ÿ¡ ÿ¡ ÿ  ÿ  ÿŸ ÿŸ ÿž ÿž ÿ� ÿœ ÿš ÿ™ ÿ™ ÿ — ÿ • ÿ ” ÿ ’ ÿ)ÿÿÿ!ÿ9<@ÿ/14ÿÿÿPÿyÿ{ÿxÿtÿrÿoÿlÿjÿ(ÿ*ÿÿ<>Bÿ<>Bÿ<>Bÿ=?Cÿ=?Cÿ=?Cÿ=?Cÿ=?Cÿ!ÿÿÿÿÿÿÿÿ"%+ÿCEJÿbdhÿ�ƒ†ÿ¡¢¤ÿ/27ÿÿÿÿÿÄÅÆÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿIIIòÿÿÿÿÀÿãããÿëëëÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿÞßßÿÿÿÿÑÒÓÿðððÿðððÿðððÿñññÿñññÿñññÿñññÿñññÿknqÿÿ ÿ+ÿ— ÿš ÿš ÿ› ÿœ ÿ� ÿ� ÿž ÿ› ÿZÿ+ÿ)ÿ ÿ!#ÿÿÿ=ÿ¡ ÿ¡ ÿ¡ ÿ  ÿ  ÿ  ÿŸ ÿž ÿž ÿ� ÿœ ÿ› ÿš ÿ™ ÿ™ ÿ — ÿ – ÿ ” ÿ “ ÿ ‘ ÿ1ÿ+ÿÿÿ9;>ÿ;=Aÿ;=Aÿ/14ÿÿÿIÿrÿtÿqÿmÿjÿZÿÿÿ79<ÿ=?Cÿ>@Dÿ>@Dÿ>@Dÿ>@Dÿ>@Dÿ>ADÿ>ADÿ!&ÿÿÿÿFHLÿ”•—ÿ´´¶ÿÓÔÔÿáááÿáááÿáááÿàààÿàààÿrtwÿÿÿÿÿª«¬ÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿIIIòÿÿÿÿÀÿãããÿêêêÿëëëÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿ %ÿÿÿרÙÿðððÿðððÿðððÿðððÿðððÿðððÿñññÿñññÿ€ƒ…ÿÿÿÿaÿ˜ ÿ™ ÿš ÿ› ÿœ ÿ� ÿ {ÿ,ÿ,ÿÿÿ148ÿ7:>ÿ-04ÿÿ8ÿ  ÿŸ ÿ  ÿŸ ÿŸ ÿž ÿž ÿ� ÿ� ÿœ ÿ› ÿš ÿ™ ÿ˜ ÿ — ÿ – ÿ ” ÿ “ ÿ ‘ ÿ �ÿ9ÿ<ÿÿ469ÿ<>Bÿ<>Bÿ<>Bÿ<>Bÿ=?Cÿ136ÿÿÿAÿjÿlÿjÿ&ÿ!ÿÿ>ADÿ>ADÿ>ADÿ>ADÿ>ADÿ?BDÿ?BDÿ?BDÿ?AEÿ$'+ÿÿÿÿrtwÿâââÿâââÿâââÿáááÿáááÿàààÿàààÿàààÿ¨©«ÿÿÿÿÿ�’”ÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿIIIòÿÿÿÿÀÿãããÿêêêÿêêêÿëëëÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿîîîÿ7;@ÿÿÿÈÉÊÿïïïÿðððÿðððÿðððÿðððÿðððÿðððÿðððÿˆ‹�ÿÿÿ ÿÿ Ž ÿ˜ ÿ ™ ÿš ÿ ‘ ÿ?ÿ%ÿ)ÿÿ(*-ÿ8;?ÿ8;?ÿ8;?ÿ9<@ÿÿ3ÿŸ ÿž ÿž ÿž ÿž ÿ� ÿ� ÿœ ÿ› ÿš ÿš ÿ ™ ÿ˜ ÿ — ÿ • ÿ ” ÿ “ ÿ ‘ ÿ �ÿ Žÿ=ÿNÿ"ÿ=?Cÿ=?Cÿ=?Cÿ>@Dÿ>@Dÿ>@Dÿ>@Dÿ>@Dÿ358ÿÿÿ;ÿRÿÿÿÿ9<@ÿ9<@ÿ:=Aÿ:=Aÿ:=@ÿ035ÿ/ÿ� ÿ� ÿœ ÿ� ÿœ ÿœ ÿ› ÿš ÿš ÿ™ ÿ ˜ ÿ— ÿ – ÿ • ÿ ” ÿ “ ÿ ‘ ÿ �ÿ Žÿ �ÿ=ÿRÿ!ÿ=@Dÿ>ADÿ>ADÿ>ADÿ>ADÿ>ADÿ?BDÿ?BDÿ?BDÿ?AEÿ56:ÿÿÿÿ#'&ÿ@BFÿABFÿABFÿABFÿACFÿACFÿACFÿACGÿACGÿACFÿ238ÿÿÿÿadgÿâââÿáááÿáááÿáááÿàààÿàààÿàààÿßßßÿ¯°±ÿÿÿÿÿ]_cÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿâââÿêêêÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿíííÿîîîÿîîîÿnruÿÿÿDIMÿ“•—ÿx|~ÿ^beÿDHLÿ(.2ÿÿÿÿÿÿÿÿÿ ÿLÿ$ÿ ÿÿÿ147ÿ9=@ÿ:=Aÿ:=Aÿ:=Aÿ:=Aÿ:=Aÿ:=Aÿ57;ÿ*ÿœ ÿœ ÿ› ÿ› ÿ› ÿš ÿš ÿ™ ÿ ˜ ÿ˜ ÿ — ÿ – ÿ • ÿ ” ÿ ’ ÿ ‘ ÿ �ÿ Žÿ �ÿ Œÿ<ÿUÿ ÿ?BDÿ?AEÿ?AEÿ?AEÿ@BEÿ@BEÿ@BFÿ@BFÿ@BFÿABFÿABFÿABFÿ=?Bÿ78;ÿACGÿACGÿACGÿBCGÿBCGÿBCGÿBDFÿBDFÿCDGÿCDGÿCDGÿ8;>ÿÿÿÿEHLÿØØÙÿÜÜÜÿËËÌÿº»¼ÿ¡£¤ÿy{}ÿPSWÿ'*/ÿÿÿÿÿÿCFJÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿâââÿéééÿêêêÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿíííÿíííÿŠ��ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ'),ÿ:=Aÿ:=Aÿ:=Aÿ:=Aÿ;>Bÿ;>Bÿ;>Bÿ;>Bÿ;>Bÿ;>Bÿ'ÿš ÿš ÿš ÿš ÿ™ ÿ™ ÿ ˜ ÿ— ÿ — ÿ — ÿ • ÿ ” ÿ ” ÿ “ ÿ ‘ ÿ �ÿ Žÿ �ÿ Œÿ ‰ÿ?ÿSÿÿ@BFÿABFÿABFÿABFÿ@CFÿ@CFÿ@CFÿ@CGÿ@CGÿACGÿACGÿACGÿBDFÿBDFÿBDFÿCDGÿCDGÿCDGÿCEGÿCEGÿDEHÿDEHÿDEHÿDFHÿDFHÿ@AEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ*-2ÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿâââÿéééÿéééÿêêêÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿëëëÿìììÿìììÿìììÿìììÿíííÿíííÿíííÿ¦¨©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8<@ÿ;>Bÿ;>Bÿ;>Bÿ;>Bÿ;>Bÿ;>BÿBDÿ>BDÿ>BDÿ>AEÿ>AEÿ>AEÿ?BEÿ?BEÿ*ÿ • ÿ • ÿ • ÿ • ÿ ” ÿ ” ÿ ” ÿ ’ ÿ ’ ÿ ‘ ÿ �ÿ �ÿ Žÿ �ÿ ‹ÿ Šÿ ‰ÿ ‡ÿ†ÿ„ÿJÿCÿ%ÿCFHÿCFHÿCFHÿDEIÿDEIÿDFIÿDFIÿDFIÿEFIÿEFIÿEFIÿEGJÿEGJÿFGJÿFGJÿFGJÿFHJÿFHJÿGHJÿGHJÿGHJÿGHJÿGHJÿGHJÿGIKÿGIKÿ!%)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©ª«ÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿáááÿèèèÿèèèÿéééÿéééÿéééÿéééÿêêêÿêêêÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿëëëÿìììÿìììÿìììÿ!%ÿÿÿÿÿÿÿÿÿ&-0ÿ@EHÿY]aÿ9>Bÿÿÿÿ).1ÿ>BDÿ>BDÿ>AEÿ>AEÿ?BEÿ?BEÿ?AEÿ?BFÿ?BFÿ@BFÿ@BFÿ@BFÿ@CFÿ@CFÿ*ÿ “ ÿ ” ÿ ” ÿ “ ÿ ’ ÿ ’ ÿ ’ ÿ ‘ ÿ �ÿ �ÿ Žÿ Žÿ Œÿ ‹ÿ Šÿ ‰ÿ ‡ÿ†ÿ„ÿ‚ÿNÿ=ÿ (ÿEFIÿEFIÿEFIÿEGJÿEGJÿEGJÿFGJÿFGJÿFHJÿFHJÿFHJÿGHJÿGHJÿGHJÿGHJÿGHJÿFIKÿFIKÿFIKÿGIKÿGIKÿGIKÿGJKÿGJKÿHJLÿHJLÿ'+/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�’”ÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿàààÿèèèÿèèèÿèèèÿèèèÿéééÿéééÿéééÿéééÿêêêÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿìììÿ6@ÿIJMÿIJMÿIKMÿIKMÿIKMÿJKMÿJKMÿJLMÿJLMÿJLMÿKLNÿKLNÿKLNÿKMMÿKMMÿLMNÿLMNÿLMNÿLMNÿLMNÿMNOÿMNOÿMNOÿMNOÿHKKÿ"'ÿÿÿÿÿ[_bÿßßßÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿ.37ÿÿÿÿ+/3ÿÜÜÜÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿÀÿßßßÿæææÿçççÿçççÿçççÿçççÿèèèÿèèèÿèèèÿèèèÿèèèÿéééÿéééÿéééÿéééÿéééÿêêêÿêêêÿêêêÿêêêÿ¥§¨ÿÿÿ8=Aÿëëëÿëëëÿëëëÿëëëÿëëëÿáââÿ°²³ÿz}€ÿEIMÿÿÿÿÿ>BDÿDFHÿDFHÿDGIÿDGIÿDGIÿEGIÿEGIÿEGIÿEHJÿEHJÿFHJÿFHJÿFHJÿFHJÿFHJÿFHJÿFIKÿFIKÿGIKÿGIKÿGIKÿGJKÿGJKÿGJKÿHJLÿHJLÿHJLÿHJLÿHJLÿIJMÿIJMÿIKMÿIKMÿIKMÿJKMÿJKMÿJKMÿJLMÿJLMÿJLNÿJLNÿJLNÿJMNÿJMMÿJMMÿKMNÿKMNÿKMNÿKMNÿLMNÿMNOÿMNOÿMNOÿMNOÿMNOÿMNOÿHJLÿ@CEÿ9<>ÿ147ÿ%)-ÿÿÿÿÿÿÿ@DHÿßßßÿßßßÿÞÞÞÿÞÞÞÿÞÞÞÿÝÝÝÿÝÝÝÿÝÝÝÿÜÜÜÿ37;ÿÿÿÿÿÚÚÚÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ¿ÿßßßÿæææÿæææÿçççÿçççÿçççÿçççÿçççÿèèèÿèèèÿèèèÿèèèÿéééÿéééÿéééÿéééÿéééÿéééÿêêêÿêêêÿÁÂÃÿÿÿÿ{~€ÿux{ÿY]aÿ?CGÿ#(-ÿÿÿÿÿÿÿÿÿ9=@ÿEHJÿEHJÿEHJÿFHJÿFHJÿFHJÿFHJÿFHJÿFIKÿFIKÿFIKÿFIKÿFIKÿFJKÿFJJÿFJJÿGJKÿHJLÿHJLÿHJLÿHJLÿIJMÿIJMÿIJMÿIKMÿIKMÿJKMÿJKMÿJKMÿJLMÿJLMÿJLMÿJLNÿJLNÿJLNÿJMMÿJMMÿKMNÿKMNÿKMNÿKMNÿKMNÿLNOÿLNOÿLNOÿLNOÿLNOÿLNOÿJKLÿBDEÿ:=?ÿ268ÿ*/1ÿ#'*ÿ $ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›œžÿØØÙÿÌÍÍÿº»»ÿ¦¨©ÿŠŒŽÿknpÿJNRÿ+04ÿÿÿÿÿÿÄÅÅÿÜÜÜÿÜÜÜÿIIIòÿÿÿÿ ÿÆÆÆûæææÿæææÿæææÿæææÿçççÿçççÿçççÿçççÿèèèÿèèèÿèèèÿèèèÿèèèÿéééÿéééÿéééÿéééÿéééÿéééÿÛÜÜÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ37:ÿFHKÿFHKÿFHKÿFIKÿFIKÿFIKÿFJJÿFJJÿFJJÿGJKÿGJKÿGJKÿGJKÿGJKÿHJLÿHJLÿHKLÿHKLÿHKLÿIKMÿIKMÿJKMÿJLMÿJLMÿJLNÿJLNÿJLNÿJMNÿJMMÿJMMÿKMNÿKMNÿKMNÿKMNÿKMNÿLNOÿLNOÿLNOÿLNOÿLNOÿJMMÿCEGÿ<>@ÿ47:ÿ,/3ÿ$(,ÿ %ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«¬®ÿÜÜÜÿÜÜÜÿ,,,ôûÿÿÿWÿ‘‘‘òåååÿæææÿæææÿæææÿæææÿçççÿçççÿçççÿçççÿçççÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿéééÿéééÿéééÿéééÿ!%ÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿ-04ÿFIJÿGIKÿGIKÿGIKÿGJKÿGJKÿHJLÿHJLÿHJLÿHKLÿHKLÿIKMÿIKMÿIKMÿILMÿILMÿILMÿJLNÿJLNÿJMNÿJMMÿJMMÿKMNÿKMNÿKMNÿKMNÿKMNÿLNOÿLNOÿLNOÿLNOÿLNOÿKMNÿDGIÿ<@Bÿ58;ÿ-13ÿ%*-ÿ"&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’“•ÿÜÜÜÿÜÜÜÿ üæÿÿÿÿ999òåååÿåååÿæææÿæææÿæææÿæææÿæææÿçççÿçççÿçççÿçççÿçççÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿéééÿéééÿ6<@ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿ#(+ÿHJLÿHKLÿHKLÿHKLÿIKMÿIKMÿIKMÿILMÿILMÿJLNÿJLNÿJLNÿJMNÿJMMÿJMMÿKMNÿKMNÿKMMÿKMMÿKMMÿLNNÿLNNÿLNNÿLNNÿLNNÿFHIÿ>ABÿ69<ÿ.34ÿ'+.ÿ$'ÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿxz}ÿÜÜÜÿÍÍÍþÿ¼ÿÿÿÿÿÿ²ÿ”””òåååÿåååÿåååÿæææÿæææÿæææÿæææÿæææÿçççÿçççÿçççÿçççÿçççÿèèèÿèèèÿèèèÿèèèÿèèèÿèèèÿRWZÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿGIKÿILMÿJLNÿJLNÿJMNÿJMMÿJMMÿKLNÿKLNÿKLNÿKLMÿKLMÿLMNÿLMNÿLMNÿLNNÿLNNÿGJJÿ>BCÿ7;<ÿ/35ÿ(,/ÿ%(ÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^aeÿÜÜÜÿFFFñÿ]ÿÿÿÿÿÿôþ���òåååÿåååÿåååÿæææÿæææÿæææÿæææÿæææÿæææÿçççÿçççÿçççÿçççÿçççÿçççÿèèèÿèèèÿèèèÿmqtÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿ$ÿ%+0ÿ28<ÿ7=Aÿ ÿ ÿ ÿ ÿ!%)ÿILMÿKLMÿKLMÿKLMÿLMNÿLMNÿLMNÿLMNÿHJKÿ@CEÿ8<>ÿ047ÿ(-0ÿ!%*ÿ"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ!ÿ#ÿ#ÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFIMÿ©©©÷ÿÎÿÿÿÿÿÿÿÿÿÿÿÿ7ñÿ222ô‰‰‰ñ¿¿¿úØØØþØØØþÙÙÙþÙÙÙþÙÙÙþÙÙÙþÙÙÙþÙÙÙþÚÚÚþÚÚÚþÚÚÚþÚÚÚþÚÚÚþÚÚÚþÚÚÚþ�…†þÿÿ5:>ÿvx{þ�’”þª¬­þÆÆÇþÙÙÙþÜÜÜþÜÜÜþÜÜÜþÔÔÕþÿÿÿÿÿÿ-14ÿ279ÿ036ÿ)-/ÿ!&)ÿ"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ"ÿ$ÿ %ÿ %ÿ %ÿ!&ÿ!&ÿ!&ÿ!&ÿ!'ÿ!'ÿ!'ÿÿÿÿÿÿÿ!%ÿ5:>ÿOSVÿiloÿƒ…ˆÿ”—˜ÿ“•—ÿ‘“”ÿ+04ÿÿÿÿ!$'þüúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ½þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ#ÿ$ÿ$ÿ %ÿ %ÿ %ÿ %ÿ!&ÿ!&ÿ!&ÿ!'ÿ!'ÿ!'ÿ!'ÿ"(ÿ"(ÿ"(ÿ"(ÿ"(ÿ!&ÿÿÿÿ%*/ÿÇÈÈÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿZ^aÿÿÿ ÿÿùTÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿH–¶¸¸¸¸¸¸¸¸¸¸¸¸¸¸¿ÙÙи¸¸¸¸¸¸¸¸ÐÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿIIIòIIIòIIIòIIIòIIIòIIIòIIIòIIIòIIIòùÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýù Þ {ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøðàÀÀÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ÀÀÀàðøÿÿÿÿÿÿÿÿÿ?(@€ ÿÿÿÿÿÿÿÿÿp ” ” ” ” ” ” ”•œœ���������žžžžžžžžÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿûøøøøøûðjÿÿÿÿÿÿÔý878ó ÿ ÿÿÿý"#ûÿÿ "ÿ "ÿ!"ÿ!"ÿ!"ÿ!#ÿ! #ÿ! #ÿ! #ÿ" #ÿ" #ÿ" #ÿ" $ÿ"!$ÿ"!$ÿ"!$ÿ" #ÿ"!$ÿ#!$ÿ@DÿA>DÿA>DÿB>DÿB?DÿB?DÿC?EÿC?EÿC@Eÿ*%,ÿÿÿÿÿÿÿÿÿƒ€ƒÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ×××ÿ‡‡‡õ ûgÿÿÿÕ\\\ïØØØÿÎÎÎÿÿ^\`ÿÍÌÍÿàààÿáááÿáááÿ96<ÿÿ;8>ÿ<9?ÿ<9?ÿ=:@ÿ=:Aÿ>;Aÿ>;Aÿ>;Aÿ>;Aÿ?DÿA>DÿA>CÿA>DÿB?DÿC?EÿC?EÿC?EÿC@EÿD@FÿDAFÿDAFÿDAFÿEAFÿEBGÿEBGÿ0+2ÿÿ0+2ÿ{x|ÿ˜–™ÿ¶µ·ÿÓÓÓÿ=7>ÿÿlhlÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ‡‡‡õïþÙÙÙÿàààÿàààÿ"%ÿZW\ÿáááÿâââÿâââÿâââÿGDJÿÿ97<ÿ>;Aÿ>DÿA>DÿA>DÿA>DÿB?DÿB?DÿB?EÿB?EÿC@EÿC@EÿC@FÿCAFÿDAFÿDAFÿDAFÿDBGÿEBGÿEBGÿFCGÿFBHÿFCHÿGCHÿGCHÿGDIÿ628ÿÿJFLÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿb^cÿÿTOUÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ×××ÿûeEEEðàààÿáááÿáááÿ97=ÿ74:ÿŠˆ‹ÿigkÿHEJÿ'#)ÿÿÿ639ÿ@>Cÿ@>CÿA>CÿA>CÿA?DÿA?DÿA?DÿB?DÿB@EÿB@EÿCAFÿCAFÿDAFÿDAFÿDBGÿDBGÿEBGÿECGÿFBHÿFBHÿFCHÿFCHÿGDIÿGDHÿGDIÿGDIÿHEIÿHEIÿIEJÿIEJÿIFJÿ=9?ÿÿ83:ÿº¹»ÿ°®°ÿ—•˜ÿsotÿ4/6ÿÿ<7>ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿø pUUUðáááÿâââÿâââÿSQVÿÿÿÿÿÿÿÿ305ÿB@EÿB@EÿB@EÿCAEÿCAFÿCAEÿDAFÿDBFÿDBFÿDBFÿECGÿEBGÿECGÿFCHÿFCHÿGDIÿGDIÿGDIÿGDIÿHEIÿHEJÿHEJÿHEJÿIFJÿIFKÿJGKÿJGKÿJGKÿJGKÿKHLÿKHLÿEAFÿÿÿÿÿÿÿÿÿ%'ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿø pWWWðâââÿâââÿãããÿmkoÿÿÿÿÿÿÿÿ.,1ÿDBFÿDBFÿECGÿEBGÿEBGÿECGÿFCHÿFDHÿFDHÿFDHÿGDHÿ;==ÿ$9%ÿ<ÿ ? ÿ>ÿ < ÿ ; ÿ ; ÿ : ÿ 8 ÿ8ÿ7ÿ7ÿ$1$ÿ?ÿ+ÿ4ÿTÿgÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿbÿ>ÿ + ÿ:>:ÿNKNÿOLOÿOLOÿHEHÿÿÿ!$ÿ>9@ÿTPVÿkhlÿtqvÿÿÿ·¶·ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿø pXXXðãããÿäääÿäääÿ¡ ¢ÿÿ¬«­ÿæææÿæææÿæææÿÖÖÖÿÿ$!(ÿHFJÿHFJÿHFJÿIGKÿIGJÿIGKÿIGKÿ>>?ÿ8ÿ^ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿMÿ3ÿPNPÿQNPÿKHJÿ+'-ÿÿÿ¨¦¨ÿßßßÿßßßÿÞÞÞÿÜÜÜÿ!ÿÿ Ÿ¡ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿøpYYYðäääÿäääÿåååÿ¼¼½ÿÿŒ‹ŽÿãããÿÆÅÇÿ¢¡£ÿzx|ÿÿ"ÿJHKÿJHKÿJHLÿKILÿKILÿKILÿLJMÿB@Cÿ#ÿ8ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿÿ&$'ÿ'#)ÿ "ÿÿÿÿÿ|€ÿàààÿßßßÿßßßÿÒÑÒÿ#&ÿÿ‰‡ŠÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿøp[[[ðåååÿåååÿæææÿ×××ÿÿ#!'ÿ#ÿÿÿÿÿÿKILÿLJMÿMKMÿMKNÿMKNÿMKNÿNLNÿNLOÿ979ÿ3ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿXÿ ÿÿÿÿÿÿÿÿ,(/ÿYU[ÿJFLÿ/*2ÿÿÿÿrosÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿøp\\\ðåååÿæææÿæææÿçççÿ#!'ÿÿÿÿÿÿÿÿ:8<ÿNMOÿNMOÿOMOÿOMOÿPNOÿPNPÿLJLÿECFÿ'ÿeÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZW\ÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿøp\\\ðæææÿçççÿçççÿçççÿ=;Aÿÿÿ%#*ÿ97=ÿFEJÿ0.4ÿÿ ÿ/-2ÿ759ÿ0/3ÿ)'-ÿ" &ÿ ÿÿÿÿ/ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿHÿÿ#'ÿ%!)ÿ'$+ÿ)&-ÿ*&-ÿ)%,ÿ!ÿÿÿÿÿÿÿÿÿB?DÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿøp^^^ðçççÿçççÿèèèÿèèèÿXW[ÿB@FÿÝÝÝÿêêêÿêêêÿêêêÿ‡†‰ÿÿÿÿÿÿÿÿÿÿÿÿÿPÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿhÿ! ÿ)'.ÿ*'/ÿ*(/ÿ+(/ÿ,(/ÿ,)0ÿ,)0ÿ($+ÿÿ$ 'ÿ›™œÿ­¬­ÿ¼»¼ÿÊÊËÿ�Ž�ÿÿ*'-ÿÞÞÞÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿøp___ðçççÿèèèÿèèèÿéééÿrqtÿ(',ÿéééÿêêêÿëëëÿëëëÿ„ƒ‡ÿÿÿÿÿÿÿÿÿ ÿ"ÿ$ÿ &ÿÿhÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ8ÿ%#(ÿ,*1ÿ,*1ÿ-*1ÿ-*2ÿ-+2ÿ-+2ÿ.+3ÿ.*2ÿÿ ÿÝÝÞÿâââÿâââÿáááÿ±°²ÿÿÿ×××ÿÞÞÞÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿøp```ðèèèÿèèèÿéééÿéééÿ���ÿÿnnqÿhhlÿQQUÿ:9>ÿ#ÿÿÿÿ$ÿ" 'ÿ$"*ÿ&%,ÿ'&-ÿ(&-ÿ(&.ÿ)'.ÿ)'.ÿ"!'ÿ3ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ_ÿÿ.+3ÿ.,3ÿ/,3ÿ/,3ÿ/-4ÿ/-4ÿ0.5ÿ0.5ÿ0.5ÿÿÿ�Ž‘ÿ£¢¤ÿŠˆ‹ÿqosÿOLQÿÿÿÀ¿ÁÿÞÞÞÿÞÞÞÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿøpaaaðéééÿéééÿêêêÿêêêÿ¨¨ªÿÿÿÿÿÿÿÿÿ%$*ÿ('-ÿ('.ÿ)'/ÿ*(/ÿ*(/ÿ*(/ÿ*)0ÿ+)0ÿ+*1ÿ+*1ÿÿVÿjÿjÿjÿjÿjÿjÿjÿjÿ,ÿ-+2ÿ0.5ÿ0.5ÿ1.5ÿ1/6ÿ1/6ÿ2/6ÿ2/7ÿ207ÿ207ÿ"ÿÿÿÿÿÿÿÿÿ¨§©ÿßßßÿÞÞÞÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿøpbbbðéééÿêêêÿêêêÿëëëÿÄÄÅÿÿÿÿÿÿÿÿÿ*)0ÿ*)0ÿ**0ÿ+*0ÿ+*0ÿ+*1ÿ,+1ÿ-+3ÿ-+3ÿ-,3ÿ.,3ÿ,*1ÿ ÿiÿjÿjÿjÿjÿjÿjÿRÿ ÿ1/7ÿ107ÿ207ÿ307ÿ318ÿ418ÿ429ÿ429ÿ429ÿ529ÿ"&ÿÿÿÿÿÿÿÿÿ‘�“ÿßßßÿÞÞÞÿÞÞÞÿÝÝÝÿÜÜÜÿÜÜÜÿøpcccðêêêÿêêêÿëëëÿëëëÿßßàÿÿDDHÿ†…ˆÿ¤£¦ÿ´´µÿÀ¿Áÿ:9>ÿÿ,+2ÿ-,2ÿ-,2ÿ-,2ÿ--3ÿ.-3ÿ.-3ÿ..4ÿ/.4ÿ/.4ÿ/.5ÿ0/6ÿ"!%ÿ<ÿoÿnÿmÿlÿjÿiÿ$ ÿ329ÿ429ÿ429ÿ429ÿ43:ÿ53:ÿ53:ÿ54:ÿ64;ÿ64;ÿ74;ÿ'$+ÿÿÿ75;ÿSQVÿomqÿŠˆ‹ÿ=;Aÿÿyw{ÿßßßÿßßßÿÞÞÞÿÝÝÝÿÝÝÝÿÜÜÜÿøpcccðêêêÿëëëÿìììÿìììÿíííÿ##)ÿuuxÿîîîÿîîîÿïïïÿïïïÿXW[ÿÿ,,2ÿ/.4ÿ/.5ÿ0/5ÿ0/5ÿ0/5ÿ006ÿ0/6ÿ106ÿ107ÿ217ÿ217ÿ217ÿ + ÿuÿtÿsÿrÿpÿYÿ"%%ÿ54:ÿ64;ÿ64;ÿ64;ÿ65;ÿ75<ÿ76<ÿ76<ÿ76<ÿ86=ÿ87=ÿ+)0ÿÿECHÿåååÿäääÿãããÿãããÿomqÿÿa_dÿàààÿßßßÿÞÞÞÿÞÞÞÿÝÝÝÿÜÜÜÿøpdddðëëëÿìììÿìììÿíííÿíííÿ@@DÿCCHÿÜÜÝÿÈÈÉÿ±±²ÿššœÿ--2ÿÿ**1ÿ106ÿ107ÿ217ÿ217ÿ217ÿ328ÿ328ÿ328ÿ328ÿ439ÿ439ÿ439ÿ!ÿrÿzÿxÿwÿuÿKÿ0/5ÿ76<ÿ76<ÿ86=ÿ87=ÿ97>ÿ97>ÿ98>ÿ98>ÿ98>ÿ:8?ÿ:9?ÿ0/5ÿÿ87=ÿåååÿäääÿáááÿÇÇÈÿedhÿÿIGLÿàààÿßßßÿßßßÿÞÞÞÿÝÝÝÿÝÝÝÿøpeeeðëëëÿìììÿíííÿíííÿîîîÿ[Z_ÿÿÿÿÿÿÿÿ))/ÿ228ÿ339ÿ339ÿ339ÿ44:ÿ44:ÿ54:ÿ54:ÿ65;ÿ65;ÿ65;ÿ66<ÿ-ÿ~ÿÿ~ÿ|ÿ{ÿgÿ" ÿ98>ÿ98>ÿ:9?ÿ:9?ÿ:9?ÿ;9@ÿ;9@ÿ;:@ÿ<:@ÿ<:@ÿ<:@ÿ65;ÿÿÿKJOÿ328ÿÿÿÿÿ1.4ÿáááÿàààÿßßßÿÞÞÞÿÞÞÞÿÝÝÝÿøpeeeðìììÿíííÿíííÿîîîÿîîîÿwvzÿÿÿÿÿÿÿÿ&&,ÿ44:ÿ55;ÿ55;ÿ55;ÿ66<ÿ66<ÿ66<ÿ66<ÿ87=ÿ87=ÿ438ÿ!ÿAÿ„ÿ„ÿƒÿ�ÿ€ÿ|ÿ0ÿ*ÿ105ÿ;:@ÿ<;@ÿ<;@ÿ<;Aÿ=;Aÿ=ÿ88>ÿ88>ÿ99>ÿ99>ÿ99?ÿ+ÿoÿ ‰ÿ ‰ÿ ˆÿ ‡ÿ†ÿ„ÿ‚ÿ€ÿEÿÿ==Bÿ>=Bÿ>=Cÿ>>Cÿ?>Cÿ?>Cÿ@>Dÿ@?Dÿ!ÿÿÿÿ$ÿ+)0ÿ'%,ÿÿÿÌÌÌÿàààÿàààÿßßßÿÞÞÞÿÞÞÞÿøpgggðíííÿîîîÿîîîÿïïïÿðððÿ¯¯±ÿÿ˜˜›ÿòòòÿòòòÿóóóÿååæÿÿ %ÿ98>ÿ98?ÿ98?ÿ98?ÿ:9?ÿ:9@ÿ:9@ÿ::@ÿ;;@ÿ;;@ÿ C ÿ Žÿ Žÿ �ÿ Œÿ Œÿ Šÿ ‰ÿ ‡ÿ„ÿKÿ & ÿ?>Cÿ?>Cÿ??Cÿ@?Dÿ@?Dÿ@?DÿA@DÿA@EÿA@EÿA@Eÿ %ÿÿÉÉÊÿáááÿåååÿäääÿÂÁÂÿÿÿµ´¶ÿáááÿàààÿßßßÿÞÞÞÿÞÞÞÿøphhhðíííÿîîîÿïïïÿïïïÿðððÿËËÌÿÿ{{ÿòòòÿóóóÿóóóÿíííÿ ÿ!ÿ::@ÿ::@ÿ;:Aÿ<;Aÿ<;Aÿ<;Aÿ<ÿsswÿWW\ÿ;;Aÿ%ÿÿÿ<Cÿ?>Cÿ?>Cÿ M ÿ • ÿ • ÿ • ÿ ” ÿ “ ÿ ’ ÿ �ÿ Žÿ Œÿdÿ8ÿBBFÿBBFÿCBGÿCBGÿ>=Bÿ1ÿ*ÿ??CÿDCHÿEDHÿ-,1ÿÿnnqÿ··¸ÿ££¥ÿ|{ÿNNRÿÿÿ‡‡‰ÿáááÿàààÿàààÿßßßÿÞÞÞÿø piiiðîîîÿïïïÿðððÿðððÿñññÿòòòÿ%&,ÿÿÿÿÿÿÿÿ::@ÿ>>Cÿ>>Dÿ*,.ÿ>=Cÿ??Dÿ??Dÿ@?Eÿ@@Eÿ@@Eÿ O ÿ ˜ ÿ ˜ ÿ˜ ÿ— ÿ – ÿ • ÿ ” ÿ ’ ÿ �ÿ{ÿ*ÿDCHÿDDHÿCCGÿ#/$ÿ<ÿkÿWÿ ÿFEIÿFEIÿ438ÿÿÿÿÿÿÿÿÿqptÿáááÿáááÿàààÿßßßÿÞÞÞÿø piiiðïïïÿïïïÿðððÿñññÿñññÿòòòÿ?@Eÿÿÿÿÿÿÿÿ66<ÿ@@Eÿ+0-ÿQÿ : ÿ+ÿ==BÿAAFÿAAFÿBAGÿ Q ÿ› ÿ› ÿ› ÿš ÿ™ ÿ™ ÿ – ÿ • ÿ “ ÿ Šÿ ÿEDIÿ9:<ÿ 0 ÿcÿxÿsÿmÿ8ÿ457ÿGGJÿ;:>ÿÿÿÿÿÿÿÿÿZY]ÿâââÿáááÿàààÿßßßÿßßßÿø piiiðïïïÿðððÿðððÿñññÿòòòÿòòòÿVV[ÿ238ÿŒŒ�ÿ®¯±ÿÑÑÒÿñññÿnorÿÿ127ÿBAGÿ 8 ÿ ” ÿ — ÿ ‚ ÿ = ÿ,ÿ?>CÿDCHÿ S ÿž ÿž ÿž ÿv ÿ Nÿb ÿ™ ÿ— ÿ • ÿ ‘ ÿÿ4ÿNÿƒÿ€ÿ{ÿuÿpÿiÿ $ ÿGFJÿBBEÿÿÿCCHÿedhÿ……ˆÿ¥¥§ÿmlpÿÿBAFÿâââÿáááÿàààÿßßßÿßßßÿø pjjjðïïïÿðððÿñññÿñññÿòòòÿóóóÿmmqÿ<=Bÿõõõÿöööÿöööÿ÷÷÷ÿ——šÿÿ,-2ÿ)4+ÿ pÿ – ÿ™ ÿ› ÿ� ÿ� ÿ E ÿ1ÿ R ÿ  ÿ¡ ÿeÿ474ÿPNMÿ552ÿMÿš ÿ˜ ÿ • ÿBÿ ÿ Œÿ ‡ÿƒÿ~ÿyÿsÿmÿYÿ*ÿJILÿÿ"ÿçççÿçççÿæææÿåååÿŽŽ‘ÿÿ)(-ÿâââÿáááÿàààÿàààÿßßßÿø pjjjðïïïÿðððÿñññÿòòòÿòòòÿóóóÿ„„‡ÿÿðððÿØØÙÿ°°²ÿˆˆ‹ÿEFKÿÿ'(-ÿ ? ÿ – ÿ™ ÿ› ÿž ÿŸ ÿ  ÿ¡ ÿ• ÿ † ÿ£ ÿ¢ ÿ&4$ÿUTQÿyxwÿECBÿ8D5ÿœ ÿš ÿ— ÿ • ÿ ‘ ÿ �ÿ ‰ÿ…ÿ€ÿ{ÿuÿoÿjÿ3ÿ@?Aÿ"ÿÿØØÙÿçççÿåååÿÏÏÐÿ``cÿÿÿÙÙÙÿáááÿáááÿàààÿßßßÿø pjjjððððÿðððÿñññÿòòòÿóóóÿóóóÿ›œžÿÿ ÿÿÿÿÿÿ%ÿ {ÿ ˜ ÿ› ÿž ÿ  ÿ¡ ÿ¢ ÿ£ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ$7"ÿGFEÿxvrÿUUSÿÿÿ25:ÿORUÿIOMÿ b ÿš ÿž ÿ  ÿ¢ ÿ¤ ÿ¥ ÿ§ ÿ§ ÿ§ ÿ¨ÿ¨ÿ¨ÿ¨ÿ§ÿ¨ÿ$ÿ Z ÿ¥ ÿ£ ÿ¡ ÿŸ ÿœ ÿ ˜ ÿ • ÿ ‘ ÿ Œÿ ‡ÿ‚ÿ|ÿvÿpÿjÿiÿ#ÿ,#ÿÿÿÿÿ "(ÿ@AFÿ-/4ÿÿ67<ÿàààÿßßßÿÞÞÞÿøphhhðíííÿîîîÿïïïÿïïïÿðððÿñññÿñññÿòòòÿRUYÿ#',ÿôôôÿôôôÿñññÿ%S$ÿ™ ÿœ ÿŸ ÿ¡ ÿ¤ ÿ¤ ÿ¦ ÿ§ ÿ§ ÿ¨ÿ¨ ÿ§ÿ§ ÿ¡ ÿDÿÿ"ÿ L ÿ– ÿ  ÿž ÿ› ÿ— ÿ ” ÿ �ÿ ‹ÿ †ÿ�ÿ{ÿtÿnÿjÿ>ÿ*ÿ249ÿÿÿ¬­®ÿÒÒÓÿãããÿãããÿŽ�’ÿÿ#ÿßßßÿßßßÿÞÞÞÿøpgggðíííÿîîîÿîîîÿïïïÿðððÿðððÿñññÿñññÿnqtÿÿèééÿóóóÿðððÿ‰‘Šÿ d ÿ› ÿž ÿ  ÿ¢ ÿ£ ÿ¥ ÿ¦ ÿ¦ ÿ§ÿ§ ÿ§ ÿ w ÿ)ÿ ÿ4ÿ>ÿ'ÿ ÿ H ÿ™ ÿ™ ÿ – ÿ “ ÿ Žÿ ‰ÿ„ÿÿyÿsÿlÿhÿÿ&0,ÿ57<ÿÿÿÖÖ×ÿäääÿãããÿâââÿ¤¥§ÿÿÿÎÎÏÿÞÞÞÿÞÞÞÿøpfffðíííÿíííÿîîîÿîîîÿïïïÿðððÿðððÿñññÿ‹��ÿÿNRUÿ5:>ÿÿÿ#ÿ ” ÿ� ÿž ÿ¡ ÿ¢ ÿ¤ ÿ¥ ÿ¥ ÿ¦ ÿ¦ÿ c ÿÿ9ÿŸ ÿ¤ ÿ£ ÿŸ ÿ g ÿ%ÿ!ÿ €ÿ ” ÿ ‘ ÿ Œÿ ˆÿƒÿ}ÿwÿqÿjÿ<ÿ % ÿ79>ÿ79>ÿ#ÿÿrtwÿ{|ÿgimÿ?AFÿ!ÿÿÿ´´µÿÞÞÞÿÞÞÞÿøpeeeðìììÿíííÿíííÿîîîÿîîîÿïïïÿðððÿðððÿ§©ªÿÿÿÿÿÿÿ@ÿ› ÿ� ÿ  ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¤ ÿ� ÿ ÿ h ÿ¥ ÿ¤ ÿ¢ ÿ¡ ÿ  ÿž ÿ™ ÿMÿÿZÿ �ÿ Šÿ†ÿ€ÿ{ÿuÿoÿgÿÿ.33ÿ9;@ÿ9;@ÿ #(ÿÿÿÿÿÿÿÿÿ™šœÿÞÞÞÿÝÝÝÿøpeeeðìììÿìììÿíííÿíííÿîîîÿîîîÿïïïÿïïïÿÂÃÄÿÿÿÿÿÿ+04ÿ ÿ }ÿ› ÿž ÿŸ ÿ  ÿ¢ ÿ¢ ÿ v ÿÿ fÿ£ ÿ¢ ÿ¢ ÿ¡ ÿ  ÿž ÿœ ÿ™ ÿ – ÿFÿÿ / ÿVÿ‚ÿ~ÿxÿsÿlÿ:ÿ!ÿ;=Bÿ;=Bÿ<=Bÿ&).ÿÿÿÿÿÿÿÿÿ€ƒÿÞÞÞÿÝÝÝÿøpeeeðëëëÿìììÿìììÿíííÿíííÿîîîÿîîîÿïïïÿÞßßÿÿJORÿ·¸¹ÿÔÕÕÿíîîÿñññÿ16:ÿ+ÿš ÿ› ÿ� ÿŸ ÿ Š ÿ=ÿ ÿÿ hÿ¡ ÿ  ÿ  ÿŸ ÿž ÿ› ÿ™ ÿ — ÿ ” ÿNÿ ÿ$&)ÿ,01ÿ /ÿOÿtÿpÿfÿÿ368ÿ=?Cÿ=?Cÿ=@Cÿ-/4ÿÿ &ÿWY]ÿwy|ÿ–—šÿ¶·¸ÿ138ÿÿdfjÿÝÝÝÿÝÝÝÿøpdddðêêêÿëëëÿìììÿìììÿíííÿíííÿîîîÿîîîÿïïïÿ$ÿTX[ÿðððÿðððÿðððÿðððÿKPSÿ ÿ[ÿ™ ÿ” ÿFÿÿ$ÿ7:>ÿ!ÿ `ÿž ÿž ÿž ÿœ ÿ› ÿ™ ÿ — ÿ ” ÿ ‘ ÿZÿ 7 ÿ:=@ÿ=?Cÿ=?Cÿ/33ÿ ,ÿEÿ7ÿÿ?ADÿ?ADÿ?BEÿ@BEÿ46:ÿÿ>AEÿâââÿáááÿáááÿàààÿacfÿÿKMQÿÝÝÝÿÜÜÜÿøpcccðêêêÿêêêÿëëëÿëëëÿìììÿìììÿíííÿíííÿîîîÿ5:?ÿ49=ÿ²³µÿŒŽ‘ÿgjnÿAFJÿ!ÿÿ $ ÿPÿÿ'ÿ359ÿ:=Aÿ:=Aÿ+.1ÿ Yÿœ ÿœ ÿ› ÿ™ ÿ˜ ÿ — ÿ ” ÿ ‘ ÿ Žÿ^ÿ 8 ÿ>ADÿ>ADÿ>ADÿ?BEÿ@BEÿ155ÿ%ÿ9;>ÿACFÿACGÿBCFÿBCFÿ;=Aÿÿ048ÿÝÝÝÿÑÑÑÿ·¸¹ÿ�‘“ÿ;>Bÿÿ149ÿÝÝÝÿÜÜÜÿøpbbbðéééÿêêêÿêêêÿëëëÿëëëÿìììÿìììÿíííÿíííÿRVZÿÿÿÿÿÿÿÿ!%(ÿ! ÿ288ÿ;>Bÿ;?Bÿ;?Bÿ;?Cÿ69=ÿ Qÿ™ ÿ ™ ÿ˜ ÿ – ÿ • ÿ “ ÿ ‘ ÿ Žÿ Œÿaÿ+ÿ@CFÿ@CFÿACGÿACFÿBDGÿBDGÿBDGÿCEHÿCEHÿDEHÿDEHÿDFIÿDEHÿÿÿÿÿÿÿÿÿ!ÿÜÜÜÿÜÜÜÿøpaaaðéééÿéééÿêêêÿêêêÿëëëÿëëëÿìììÿìììÿìììÿmqtÿÿÿÿÿÿÿÿ %*ÿ<@Cÿ=@Dÿ=@Dÿ=@Dÿ=ADÿ>ADÿ>BEÿ O ÿ — ÿ • ÿ • ÿ “ ÿ ’ ÿ �ÿ Žÿ ‹ÿ ‡ÿeÿ!ÿBEHÿCEHÿCEHÿDFIÿDFIÿDFIÿEFIÿEGIÿEGIÿEGJÿFHJÿGHJÿGHKÿ ÿÿÿÿÿÿÿÿÿÊËËÿÜÜÜÿøp```ðèèèÿéééÿéééÿéééÿêêêÿêêêÿëëëÿëëëÿìììÿ‰ŒŽÿÿÿ39<ÿY^`ÿ�„†ÿ�„†ÿÿ %ÿ?BEÿ?BEÿ?BEÿ@BFÿ@CFÿ@CGÿ@CGÿ P ÿ ’ ÿ ’ ÿ ‘ ÿ �ÿ Žÿ Œÿ ‰ÿ ‡ÿ„ÿhÿÿEGIÿEGJÿFHJÿFHJÿFHJÿGHKÿGIKÿGIKÿGIKÿHIKÿHJLÿHJLÿIJLÿ $ÿÿÿÿ,/3ÿDGJÿTVZÿÿÿ±²³ÿÜÜÜÿøp___ðçççÿèèèÿèèèÿéééÿéééÿêêêÿêêêÿêêêÿëëëÿ¥§¨ÿÿ¯±²ÿìììÿìììÿìììÿßßàÿÿÿ@CFÿADFÿBDGÿBEHÿBEHÿBEHÿCEHÿ L ÿ �ÿ Šÿ ‡ÿ „ÿ€ÿxÿoÿfÿ^ÿIÿ ÿGIKÿHILÿHIKÿHJLÿIJLÿIKLÿIKLÿIKMÿJKMÿJLMÿJLMÿKLNÿIKLÿÿÿ�‘“ÿÞÞÞÿÞÞÞÿÞÞÞÿÛÛÛÿÿÿ˜š›ÿÜÜÜÿøp^^^ðçççÿçççÿèèèÿèèèÿéééÿéééÿéééÿêêêÿêêêÿÀÁÂÿÿ‹��ÿëëëÿæææÿÅÆÇÿ�Ÿ¡ÿÿÿBEGÿCFIÿDFHÿDFHÿDGIÿDGIÿEHJÿ'<)ÿ< ÿ!:#ÿ"7%ÿ$4'ÿ(1*ÿ+2.ÿ052ÿ376ÿ79:ÿ;<=ÿABDÿIKMÿIKMÿJLMÿJLNÿKMNÿKMNÿKMNÿLMNÿLNOÿLMNÿFHIÿ;>@ÿ!%ÿÿÿ|~�ÿßßßÿÞÞÞÿÝÝÝÿÝÝÝÿ %)ÿÿ�„ÿÜÜÜÿødNNNðæææÿçççÿçççÿçççÿèèèÿèèèÿéééÿéééÿéééÿÛÜÜÿÿ).2ÿ27;ÿÿÿÿÿÿ>ADÿFHJÿFHJÿFIKÿFIKÿGIKÿGIKÿGJKÿHJLÿHKLÿIKLÿIKMÿIKMÿJLMÿJLMÿJLNÿKMNÿKMNÿKMNÿKMNÿLNOÿGIJÿ?BDÿ7:=ÿ/36ÿ',/ÿ $(ÿ!ÿÿÿÿÿÿÿ+/3ÿpsuÿ]`cÿBFIÿ"'+ÿÿÿfikÿÜÜÜÿøýÞÞÞÿæææÿæææÿçççÿçççÿçççÿèèèÿèèèÿéééÿéééÿ!%ÿ ÿ ÿ ÿÿÿÿÿ7:=ÿHJLÿHJLÿHKLÿIKMÿIKMÿILMÿJLMÿJMNÿJMMÿKMMÿKMNÿKNNÿGJKÿ@CEÿ9<>ÿ147ÿ)-0ÿ!&*ÿ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMPTÿØØØÿòÿÿÿÐdddïÞÞÞÿæææÿæææÿæææÿçççÿçççÿçççÿèèèÿèèèÿ5;?ÿ ÿ ÿ ÿÿ$(ÿ#ÿ ÿ"&ÿJLMÿKLMÿKMNÿKMNÿIKLÿADEÿ9:?þ #ÿ416ÿ417ÿ527ÿ528ÿ528ÿ538ÿ539ÿ649ÿ649ÿ649ÿ75:ÿ749ÿ85:ÿ95:ÿA>DÿA>DÿB>DÿB?DÿB?DÿC?EÿC@EÿD@FÿDAFÿDAFÿ!ÿÿ729ÿVQWÿtptÿ%&ÿ0)1ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ§§§÷¸,]]]íàààÿ®­¯ÿÿÞÞÞÿâââÿâââÿnlpÿ!$ÿ=;Aÿ>;Aÿ>DÿA>DÿA>DÿB?DÿB?EÿB?EÿC@EÿC@FÿCAFÿDAFÿEAFÿEBGÿEBGÿFCGÿFBHÿFCHÿGCHÿ$&ÿB=CÿÜÜÜÿÜÜÜÿÜÜÜÿMHNÿÿ×××ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ---ꤻ»»ûáááÿÉÈÉÿÿjhlÿTQVÿ2/5ÿÿÿ@>CÿA>CÿA?DÿA?DÿB?DÿB@EÿB@EÿCAEÿDAFÿDAFÿDBGÿEBGÿECGÿFBHÿFCHÿFCHÿGDIÿGDIÿGDIÿHEIÿHEJÿIEJÿIFJÿJFKÿ+&,ÿ-(/ÿ–”—ÿ‡…ˆÿdafÿ*%,ÿÿÁÀÁÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ@@@ò ¯ÅÅÅüâââÿàààÿ ÿÿÿÿÿÿ@>CÿCAFÿDAFÿDBFÿDBFÿECGÿEBGÿECGÿFCHÿFDHÿ@>Bÿ.6.ÿ!8"ÿ#7%ÿ&6(ÿ+6+ÿ.5/ÿ262ÿ==>ÿJGKÿKHLÿKHLÿKHLÿLIMÿ1-3ÿÿÿÿÿÿÿª©«ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ@@@ò ¯ÆÆÆüãããÿãããÿ317ÿ'%+ÿNLQÿrptÿ~|€ÿÿ=;@ÿFDHÿFDHÿGDHÿGEIÿHEIÿHEIÿ+9+ÿ.ÿ8ÿIÿdÿjÿjÿiÿgÿfÿdÿVÿ=ÿ7ÿLILÿNKNÿOLOÿ1-3ÿÿ#&ÿ;7>ÿQNSÿLGMÿÿ“‘”ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ@@@ò ¯ÈÈÈüäääÿäääÿNLQÿ…„‡ÿæææÿæææÿÜÜÝÿÿ97<ÿHFJÿIGKÿIGJÿIGKÿJHKÿ?ÿRÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ<ÿ?H?ÿIFIÿ<8=ÿ!ÿÿ£¡¤ÿßßßÿÞÞÞÿ±°²ÿÿ|y}ÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ@@@ò ¯ÉÉÉüåååÿåååÿgfjÿHFLÿ}|ÿYX\ÿ64:ÿÿ527ÿKILÿLJMÿLJMÿLJMÿMKMÿ;;;ÿ,ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿYÿ ÿÿÿÿÿÿifjÿ¦¥§ÿ�Ž‘ÿdafÿÿebgÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ@@@ò¯ÊÊÊüæææÿæææÿ‚�…ÿÿÿÿÿÿ'%+ÿNLOÿNMOÿOMOÿOMOÿOMOÿJHJÿ/ÿgÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ.ÿÿÿÿÿÿÿÿÿÿÿÿNKPÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿÜÜÜÿ@@@ò¯ËËËüçççÿçççÿž� ÿ#ÿEDIÿ^\aÿkjnÿ539ÿÿ'%+ÿ.-1ÿ'%+ÿ $ÿÿÿÿ8ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿ_ÿÿ%")ÿ($+ÿ)&-ÿ*&.ÿ%")ÿÿÿ"ÿ.*0ÿ;8>ÿ!$ÿ628ÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿ@@@ò¯ÌÌÌüçççÿèèèÿ¸¸ºÿ.-3ÿêêêÿêêêÿëëëÿmlpÿÿÿÿÿÿÿÿÿÿUÿjÿjÿjÿjÿjÿjÿjÿjÿ4ÿ+(/ÿ+)0ÿ,)0ÿ,*1ÿ-*1ÿ.*2ÿ ÿQNSÿâââÿáááÿáááÿPMSÿ"ÿÝÝÝÿÝÝÝÿÜÜÜÿÜÜÜÿÜÜÜÿ@@@ò¯ÍÍÍüèèèÿéééÿÔÔÕÿÿ‹Š�ÿ€‚ÿggjÿ.-2ÿÿÿ#ÿ &ÿ"!(ÿ%#*ÿ'%-ÿ(&.ÿ)'.ÿ ) ÿiÿjÿjÿjÿjÿjÿjÿSÿ &$ÿ.+3ÿ.,3ÿ/,3ÿ/-4ÿ/-4ÿ0.5ÿ $ÿ+)/ÿ¼¼½ÿ¥¤¦ÿŒŠ�ÿ;7=ÿÿÌÌÍÿÞÞÞÿÝÝÝÿÜÜÜÿÜÜÜÿ@@@ò¯ÍÍÍüéééÿêêêÿéééÿ"ÿÿÿÿÿÿ"!(ÿ('.ÿ)(.ÿ*(/ÿ*)0ÿ+)0ÿ+*1ÿ,*1ÿ'&-ÿ:ÿjÿjÿjÿjÿjÿiÿ 0 ÿ0.5ÿ1.5ÿ1/6ÿ2/6ÿ2/7ÿ207ÿ307ÿ$!(ÿÿÿÿÿÿÿµ´¶ÿÞÞÞÿÝÝÝÿÝÝÝÿÜÜÜÿ@@@ò¯ÎÎÎüêêêÿëëëÿëëëÿ76;ÿ! &ÿ>=BÿTSWÿXW[ÿÿ('-ÿ+*1ÿ,+1ÿ,+2ÿ-,2ÿ-,2ÿ--3ÿ/-4ÿ/.5ÿ#ÿ[ÿkÿjÿjÿjÿFÿ,+0ÿ218ÿ318ÿ329ÿ429ÿ529ÿ53:ÿ63:ÿ)&-ÿÿÿÿ,)0ÿ539ÿÿž�ŸÿßßßÿÞÞÞÿÝÝÝÿÜÜÜÿ@@@ò¯ÏÏÏüëëëÿìììÿìììÿRRVÿ˜˜›ÿîîîÿïïïÿçæçÿÿ'&-ÿ..4ÿ/.4ÿ/.5ÿ0/5ÿ0/5ÿ0/6ÿ106ÿ107ÿ106ÿ: ÿtÿrÿpÿnÿ9ÿ54:ÿ64;ÿ64;ÿ64;ÿ65;ÿ75<ÿ76<ÿ76<ÿ.,3ÿÿ}�ÿÜÜÜÿãããÿ··¸ÿÿ†…ˆÿßßßÿÞÞÞÿÞÞÞÿÝÝÝÿ@@@ò¯ÐÐÐüìììÿìììÿíííÿnnrÿUUYÿ¦¦¨ÿŒŒ�ÿjjmÿÿ%%+ÿ117ÿ217ÿ217ÿ228ÿ328ÿ328ÿ439ÿ439ÿ44:ÿ7ÿ{ÿzÿwÿuÿ=ÿ86=ÿ87=ÿ97>ÿ98>ÿ98>ÿ:8?ÿ:9?ÿ:9?ÿ429ÿÿzy}ÿÌÌÍÿ®­¯ÿƒ‚…ÿÿnmqÿàààÿßßßÿÞÞÞÿÝÝÝÿ@@@ò¯ÐÐÐüìììÿíííÿîîîÿЉ�ÿÿÿÿÿÿ##)ÿ44:ÿ44:ÿ44:ÿ44:ÿ55;ÿ65;ÿ66<ÿ76<ÿ216ÿ A ÿ�ÿ€ÿÿ|ÿ . ÿ+./ÿ:9?ÿ;:?ÿ<:@ÿ<:@ÿ<;Aÿ=;Aÿ=;Aÿ;9?ÿÿÿÿÿÿÿVUZÿàààÿßßßÿÞÞÞÿÝÝÝÿAAAò¯ÑÑÑüíííÿîîîÿïïïÿ¥¥¨ÿÿÿ328ÿSSXÿ65;ÿ &ÿ65<ÿ76=ÿ77=ÿ88=ÿ88>ÿ88>ÿ99>ÿ 3#ÿOÿ †ÿ ˆÿ ‡ÿ…ÿ‚ÿÿ1ÿ77:ÿ==Bÿ>=Cÿ>>Cÿ?>Dÿ@>Dÿÿÿÿ$ÿ*(.ÿÿ?=CÿáááÿàààÿßßßÿÞÞÞÿAAAò¯ÒÒÒüîîîÿîîîÿïïïÿÂÂÄÿÿâââÿòòòÿóóóÿ��„ÿ#ÿ98?ÿ99?ÿ:9?ÿ:9@ÿ::@ÿ;:@ÿ;;Aÿ;ÿ Žÿ Žÿ Žÿ Œÿ ‹ÿ ˆÿ…ÿEÿ(-+ÿ??Cÿ@?Dÿ@?DÿA@DÿA@EÿA@EÿAAEÿ$ÿutxÿßßßÿåååÿäääÿ;9?ÿ(&,ÿáááÿàààÿßßßÿÞÞÞÿBBBò¯ÓÓÓüîîîÿïïïÿðððÿàààÿÿ©©¬ÿºº¼ÿŸŸ¢ÿLLRÿÿ;;Aÿ;;Aÿ<=Cÿ>ÿ ” ÿ ” ÿ ’ ÿ ‘ ÿ �ÿ Žÿ ŠÿXÿ!5$ÿBAFÿBAFÿBBFÿ6:9ÿ.:1ÿCBGÿDCGÿ%$)ÿMLQÿæææÿáááÿºº»ÿ=>Cÿ136ÿ>>Cÿ?>Dÿ??Dÿ@?EÿAÿ˜ ÿ˜ ÿ˜ ÿ – ÿ ” ÿ ’ ÿ �ÿ\ÿ8!ÿDDHÿA@Eÿ6ÿRÿ>ÿ::=ÿFEIÿ+*/ÿÿ)(.ÿÿÿÿÿÄÄÄÿáááÿàààÿßßßÿCCCò¯ÕÕÕüïïïÿðððÿñññÿòòòÿ78=ÿÿÿ349ÿ@@Fÿÿ88=ÿ;;?ÿKÿ J ÿ5!ÿ??DÿBAGÿDÿœ ÿœ ÿ› ÿš ÿ ˜ ÿ — ÿ “ ÿcÿ4 ÿ,9-ÿ E ÿvÿuÿkÿ.ÿGGJÿ226ÿÿÿÿÿ! %ÿÿ¬¬­ÿáááÿàààÿßßßÿCCCò¯ÕÕÕüðððÿñññÿòòòÿóóóÿOOTÿššœÿñññÿöööÿÛÛÛÿÿ449ÿ;ÿ “ ÿ˜ ÿ� ÿ Q ÿ9!ÿEÿ  ÿ  ÿ#c ÿ-7,ÿ#9 ÿ ’ ÿ — ÿ vÿ - ÿpÿ…ÿÿxÿqÿ[ÿ&3'ÿ::=ÿÿ��„ÿ¼¼½ÿÚÚÛÿ££¤ÿÿ““•ÿáááÿàààÿßßßÿCCCò ¯ÕÕÕüðððÿñññÿòòòÿóóóÿggkÿ‹ŒŽÿããäÿ½½¿ÿ��“ÿÿ*,-ÿ aÿ™ ÿ› ÿž ÿ  ÿ™ ÿ b ÿ¢ ÿ› ÿ13/ÿŠˆ‡ÿNMJÿYÿš ÿ — ÿ ‘ ÿ Žÿ ‰ÿ‚ÿ|ÿtÿlÿ=ÿ<;>ÿÿ©©«ÿçççÿÝÝÝÿ€€ƒÿÿxx|ÿáááÿàààÿßßßÿCCCò ¯ÕÕÕüðððÿñññÿòòòÿóóóÿ~‚ÿÿÿÿÿÿ <ÿ– ÿ› ÿž ÿ¡ ÿ¢ ÿ¤ ÿ¥ ÿ¤ ÿ� ÿ,0*ÿONMÿ[[Xÿdÿ� ÿ™ ÿ • ÿ ‘ ÿ Œÿ…ÿÿwÿoÿgÿ&ÿÿ217ÿ*)/ÿÿÿÿ^^bÿâââÿáááÿßßßÿCCCò ¯ÕÕÕüðððÿñññÿòòòÿôôôÿ–—šÿÿÿÿ!#)ÿÿ kÿš ÿž ÿ¡ ÿ£ ÿ¥ ÿ¥ ÿ¦ÿ¦ ÿ¦ ÿfÿ!ÿ*Y(ÿ¢ ÿŸ ÿœ ÿ˜ ÿ “ ÿ Žÿ ˆÿ�ÿzÿqÿjÿCÿÿÿÿÿÿÿDCHÿâââÿáááÿàààÿCCCò ¯ÕÕÕüðððÿòòòÿóóóÿôôôÿ®¯±ÿ/06ÿ½½¿ÿâããÿùùùÿQÿ˜ ÿœ ÿŸ ÿ¢ ÿ¤ ÿ¦ ÿ§ ÿ§ ÿ§ÿ§ÿ§ÿ*ÿ¢ ÿ£ ÿ  ÿž ÿ™ ÿ • ÿ �ÿ Šÿƒÿ|ÿtÿjÿYÿÿ88>ÿ���ÿ­­¯ÿÉÉÊÿ**0ÿ((/ÿâââÿáááÿàààÿCCCò ¯ÕÕÕüðððÿòòòÿóóóÿôôôÿÉÊËÿ#ÿôôôÿêêêÿ½À¿ÿ `ÿš ÿž ÿ¡ ÿ£ ÿ¥ ÿ§ÿ§ÿ¨ÿ¨ÿ¨ ÿ§ ÿ ' ÿ¢ ÿ¤ ÿ¢ ÿž ÿ› ÿ – ÿ ‘ ÿ Œÿ„ÿ}ÿsÿAÿ ÿÿOOTÿçççÿæææÿÇÇÈÿ88>ÿÿÛÛÛÿáááÿàààÿCCCò ¯ÕÕÕüðððÿñññÿòòòÿôôôÿæææÿÿ$ÿÿÿ ÿCÿ’ ÿ¢ ÿ¤ ÿ¦ ÿ§ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ % ÿŸ ÿ¥ ÿ£ ÿ  ÿœ ÿ— ÿ “ ÿ Œÿ†ÿmÿ/ÿ&ÿ!"(ÿ ÿ!!'ÿFFKÿ%%,ÿÿÿÿÁÁÂÿáááÿàààÿCCCò ¯ÕÕÕüðððÿñññÿòòòÿóóóÿôôôÿ!'ÿÿÿÿÿÿ # ÿ [ÿ¤ ÿ¦ÿ¨ÿ¨ÿ¨ ÿ§ ÿ§ÿ¨ÿ %ÿœ ÿ¦ ÿ£ ÿ¡ ÿ� ÿ™ ÿ “ ÿ �ÿ\ÿ ÿ$ÿ#$+ÿ$%+ÿ$ÿÿÿÿÿÿÿ§§©ÿáááÿßßßÿCCCò ¯ÕÕÕüðððÿñññÿòòòÿóóóÿôôôÿ;=BÿpruÿÈÉÊÿææçÿÌÌÍÿÿÿ!ÿ,ÿ¤ ÿ¨ ÿ¨ÿ§ÿ¦ ÿ§ÿ¨ÿ'ÿ” ÿ¦ ÿ£ ÿ  ÿ� ÿ ˜ ÿ “ ÿ �ÿ~ÿGÿ&"ÿ&'.ÿ'(.ÿ!"(ÿÿVW[ÿ††‰ÿ¥¥§ÿyy|ÿÿŒŒ�ÿàààÿßßßÿCCCò¯ÕÕÕüðððÿñññÿòòòÿóóóÿôôôÿVY]ÿ†ˆ‹ÿóóóÿÒÓÔÿ™›�ÿÿÿ ' ÿ | ÿ§ ÿ¨ ÿ¨ÿ§ÿ¦ ÿ§ÿ¨ÿ,ÿ‰ ÿ¦ ÿ¤ ÿ¡ ÿ� ÿ™ ÿ “ ÿ �ÿ †ÿÿYÿ / ÿ$'+ÿ&&-ÿÿ°°±ÿåååÿäääÿ ¡£ÿÿqruÿàààÿßßßÿCCCò¯ÕÕÕüïïïÿðððÿñññÿòòòÿóóóÿtvyÿÿ ÿÿÿ ÿBÿ� ÿ¥ ÿ§ÿ¨ÿ¨ÿ¨ÿ§ÿ¨ÿ¨ÿ0ÿ  ÿ¥ ÿ£ ÿ  ÿœ ÿ— ÿ “ ÿ Œÿ…ÿ~ÿuÿlÿLÿ0ÿÿEFKÿMNRÿ-.3ÿÿÿWW[ÿàààÿßßßÿCCCò¯ÕÕÕüïïïÿðððÿñññÿñññÿòòòÿ�‘”ÿÿÿÿ* ÿhÿ  ÿ¢ ÿ¥ ÿ§ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ ÿ6ÿ w ÿ¤ ÿ¢ ÿŸ ÿ› ÿ – ÿ ‘ ÿ ‹ÿ„ÿ|ÿuÿkÿiÿ!ÿÿÿÿÿÿÿ;=BÿàààÿßßßÿCCCò¯ÓÓÓüîîîÿïïïÿðððÿñññÿòòòÿ«­®ÿ!ÿ¡£¤ÿ½¾¿ÿ"b ÿš ÿž ÿ¢ ÿ¤ ÿ¦ ÿ¦ÿ§ÿ§ÿ¨ÿ¨ÿ¢ ÿ,ÿ B ÿŸ ÿ¡ ÿž ÿš ÿ • ÿ �ÿ ‰ÿƒÿ{ÿsÿjÿDÿ3ÿ!ÿ &ÿ^`dÿ€ƒÿŸ ¢ÿ&(.ÿ!#(ÿßßßÿÞÞÞÿBBBò¯ÒÒÒüîîîÿïïïÿïïïÿðððÿñññÿÇÈÉÿÿëëëÿôôôÿŽ�Žÿ { ÿœ ÿ  ÿ£ ÿ¥ ÿ¦ ÿ§ ÿ§ ÿ§ ÿq ÿ'ÿ/ÿ1ÿ%ÿQÿš ÿ˜ ÿ “ ÿ Žÿ ‡ÿ€ÿyÿpÿiÿ$ÿ149ÿ &ÿ9;@ÿäääÿãããÿâââÿLNRÿÿÓÓÓÿÞÞÞÿBBBò¯ÑÑÑüíííÿîîîÿïïïÿïïïÿðððÿããäÿÿ;?Dÿ#(ÿÿ3ÿ› ÿž ÿ¡ ÿ£ ÿ¤ ÿ¥ ÿ¦ ÿZÿ'ÿ} ÿ¤ ÿ£ ÿ’ ÿ;ÿ % ÿ ‡ ÿ ‘ ÿ Œÿ…ÿ~ÿvÿmÿ@ÿ/ÿ79>ÿ#%+ÿ%ÿbdgÿQSWÿ,/4ÿÿÿ¹¹ºÿÞÞÞÿBBBò¯ÐÐÐüìììÿíííÿîîîÿïïïÿïïïÿðððÿ#'ÿÿÿÿÿYÿœ ÿŸ ÿ¡ ÿ£ ÿ£ ÿ | ÿ4ÿ� ÿ£ ÿ¢ ÿ  ÿž ÿ› ÿ zÿÿNÿ „ÿ‚ÿ{ÿsÿhÿÿ9;?ÿ:BÿLPTÿ—™›ÿ²´µÿ±²³ÿ# ÿ � ÿœ ÿž ÿ” ÿEÿÿ H ÿ¢ ÿ  ÿŸ ÿž ÿ› ÿ˜ ÿ ” ÿ ÿÿ5ÿKÿsÿoÿ<ÿ,ÿ=?Cÿ=?Cÿ137ÿÿ027ÿY[_ÿxz}ÿcehÿÿƒ„‡ÿÝÝÝÿ@@@ò¯ÏÏÏüëëëÿìììÿìììÿíííÿîîîÿîîîÿUY]ÿwz}ÿðððÿðððÿÐÑÒÿÿAÿ— ÿPÿ$ÿ%-)ÿ46:ÿ C ÿž ÿž ÿœ ÿš ÿ— ÿ ” ÿ ‘ ÿ;ÿ8:=ÿ=?Cÿ:=@ÿ3ÿAÿÿ>@Cÿ?BEÿ@BEÿ8:>ÿÿ›œžÿáááÿàààÿ´µ¶ÿÿiknÿÝÝÝÿ@@@ò¯ÎÎÎüêêêÿëëëÿëëëÿìììÿíííÿíííÿqtwÿ.37ÿEIMÿ$(ÿÿÿ"ÿ # ÿ.ÿ9Aÿ;>Bÿ H ÿ› ÿš ÿ ˜ ÿ — ÿ ” ÿ � ÿ Œÿ8ÿ;>@ÿ@BEÿ@BFÿ@CFÿ?AEÿ?@BÿBDGÿCDGÿCEHÿABFÿÿNPTÿoqtÿTWZÿ(,0ÿÿORVÿÜÜÜÿ@@@ò¯ÍÍÍüéééÿêêêÿëëëÿëëëÿìììÿìììÿŒ�‘ÿÿÿÿÿÿ!&ÿAÿFHJÿFHJÿGHKÿGIKÿGIKÿHIKÿHJLÿIJLÿIKLÿ!ÿÿGJMÿ_adÿuxzÿ(,0ÿ!%ÿÜÜÜÿ@@@ò¯ÌÌÌüçççÿèèèÿéééÿéééÿêêêÿêêêÿÃÄÅÿÿããäÿìììÿìììÿw{}ÿÿAEGÿBEGÿBEHÿCFIÿDFIÿDÿ Y ÿ U ÿ R ÿMÿIÿEÿAÿ+ÿBDFÿIKLÿIKMÿJKMÿJLMÿKLNÿKMNÿKMNÿLMNÿ;>@ÿÿ:>BÿßßßÿÞÞÞÿÝÝÝÿNQUÿÿÐÐÑÿ@@@ò¤ÂÂÂûçççÿçççÿèèèÿèèèÿéééÿéééÿÞÞßÿÿ^beÿLPSÿ%+/ÿÿÿ@CEÿEHJÿFHJÿFIKÿFIKÿGIKÿGJKÿHJLÿIKLÿIKMÿIKMÿJLMÿJLNÿKMNÿKMNÿKMNÿEGHÿ=@Bÿ59;ÿ.25ÿ'*.ÿ#'ÿ ÿÿÿÿŠŒŽÿ}€‚ÿ_beÿ"&+ÿÿ·¸¹ÿ:::ñ *fffíæææÿæææÿçççÿçççÿèèèÿèèèÿéééÿ"'ÿ ÿ ÿ ÿÿÿ8;>ÿHKLÿIKMÿIKMÿJLMÿJMNÿKMMÿKMNÿEHIÿ>ACÿ6:<ÿ/36ÿ'+/ÿ$(ÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›�žþ ñÿÿÿ¹bbbíºººùÄÄÄûÄÄÄûÅÅÅûÅÅÅûÆÆÆû169þ37:þ\`býortüimnýÿ!ÿ156ÿ257ÿ+/1ÿ%)+ÿ"%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ÿ"ÿ#ÿÿÿ!&+ÿ6:?ÿEILÿ>BFÿÿ789öŒÿÿÿÿÿÿ (¦¯¯¯¯¯È¼¯¯°ÒÒÒÒÒÒÒÒÒÒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ122õ@@@ò@@@ò111ôü¦ÿÿÿà€€€€à( @ &&&6MMMÉFCHö0)1ü3-4û506û;6<üC>EýC>EýD?EýD?FýE?FýEAFýEAFýFAGýGBGýGBGþGBGþGCHþHCHþHCIþHDIþB;Bý2*1ý2*1ý3+2ý3+2ýgegøuuu÷sss÷bbbårLLLÌÜÜÜÿxtxÿ”‘”ÿÛÛÛÿ�Š�ÿ,'.ÿ@;Bÿ@;BÿADÿC?DÿD?DÿD@EÿE@FÿEAFÿFAGÿGBGÿGBGÿHCHÿ@:@ÿ/&.ÿ´²´ÿÒÒÒÿ;2:ÿ�š�ÿÜÜÜÿÜÜÜÿÜÜÜÿ___ætttðÜÜÜÿ�Ž‘ÿ?:Aÿ<7=ÿ !ÿ*$+ÿC?DÿC?EÿD@EÿEAGÿEAFÿFBGÿFCGÿGCHÿFAGÿ>>>ÿ6:6ÿ464ÿC@CÿKFKÿKGKÿICHÿ&%ÿmglÿTNTÿ$#ÿ†‚†ÿÜÜÜÿÜÜÜÿÜÜÜÿuuuøwwwòÜÜÜÿ©§©ÿ!#ÿAÿÿÿÿÿ) ÿ'!(ÿÿB;BÿÜÜÜÿÜÜÜÿÜÜÜÿvvvøxxxòßßßÿàààÿ96<ÿ}{~ÿ��‘ÿ/.1ÿ #ÿ(#*ÿ!#ÿÿ 9 ÿ˜ ÿ˜ ÿ— ÿ – ÿ ” ÿ ‘ ÿ ŽÿFÿ# %ÿ-'/ÿ'#)ÿ2ÿ]ÿ-ÿa\aÿ*"+ÿÜÜÜÿÜÜÜÿÜÜÜÿvvvøyyyòàààÿâââÿLJOÿ§¦¨ÿ‰ˆŠÿLÿFÿ#ÿ"ÿ"&ÿAÿœ ÿœ ÿ› ÿš ÿ˜ ÿ – ÿ ’ ÿGÿ'#)ÿ.ÿSÿyÿrÿ\ÿDPDÿÿÒÒÒÿÜÜÜÿÜÜÜÿvvvøyyyòâââÿãããÿdchÿÿ . ÿ ” ÿ˜ ÿ‘ ÿ N ÿ.ÿEÿŸ ÿ  ÿ'T&ÿ/9.ÿ@ÿ— ÿ – ÿQÿ > ÿ€ÿ„ÿ}ÿvÿnÿ=ÿÿ¼»¼ÿÜÜÜÿÜÜÜÿvvvøzzzòãããÿåååÿ~�ÿxy{ÿkÿ ˜ ÿ› ÿž ÿ  ÿ› ÿ n ÿ£ ÿ„ ÿ<;:ÿŽŒ‹ÿBA?ÿ z ÿ™ ÿ – ÿ ’ ÿ �ÿ ‡ÿ€ÿzÿrÿiÿ ( ÿ¤£¥ÿÜÜÜÿÜÜÜÿvvvø{{{òåååÿæææÿššœÿHÿ— ÿ› ÿž ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¤ ÿ‰ ÿ/0.ÿ@>>ÿTUQÿ ~ ÿœ ÿ ™ ÿ • ÿ �ÿ Šÿ„ÿ|ÿuÿlÿPÿUXUÿÜÜÜÿÜÜÜÿvvvø{{{òæææÿèèèÿ—œ˜ÿkÿš ÿž ÿ  ÿ£ ÿ¤ ÿ¥ ÿ¦ ÿ¦ ÿ¦ ÿ`ÿ!ÿ kÿ¡ ÿž ÿ› ÿ — ÿ ’ ÿ Œÿ †ÿÿwÿoÿjÿ1ÿÌÌÌÿÜÜÜÿvvvø|||òçççÿéééÿ4m3ÿ˜ ÿœ ÿ  ÿ¢ ÿ¥ ÿ¦ ÿ§ÿ§ÿ§ÿ§ÿ§ÿ* ÿ¥ ÿ£ ÿ  ÿœ ÿ ™ ÿ ” ÿ Žÿ ˆÿ�ÿyÿqÿiÿ3ÿ€ƒ€ÿÜÜÜÿvvvø|||òèèèÿÞßÞÿ`ÿš ÿž ÿ¡ ÿ¤ ÿ¦ ÿ§ÿ¨ ÿ¨ ÿ¨ÿ¨ ÿ§ ÿ+ÿ¦ ÿ¤ ÿ¢ ÿž ÿš ÿ • ÿ �ÿ ‰ÿƒÿ{ÿaÿ*ÿ(5)ÿÜÜÜÿÜÜÜÿvvvø}}}òéééÿëëëÿÈÍÈÿBÿ‚ ÿ¢ ÿ¥ ÿ§ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ*ÿ§ ÿ¥ ÿ£ ÿŸ ÿ› ÿ – ÿ ‘ ÿ ‹ÿƒÿMÿ * ÿCCEÿ306ÿÜÜÜÿÜÜÜÿvvvø~~~òêêêÿìììÿîîîÿPQUÿ”¡“ÿ$i#ÿž ÿ§ÿ¨ÿ¨ÿ§ÿ§ÿ§ÿ¨ÿ(ÿ§ÿ¥ ÿ£ ÿ  ÿœ ÿ — ÿ ‘ ÿ Œÿ<ÿ:D:ÿÛÛÛÿ¢¡£ÿ!ÿÚÚÛÿÜÜÜÿvvvø~~~òêêêÿìììÿîîîÿ\]aÿÿÿ'ÿ¥ ÿ¨ÿ¨ÿ§ ÿ¦ ÿ§ÿ¨ÿ(ÿ§ ÿ¥ ÿ£ ÿ  ÿœ ÿ— ÿ ’ ÿ ŒÿyÿCÿÿÿÿÅÅÆÿÜÜÜÿvvvø~~~òêêêÿìììÿïïïÿstwÿWZ[ÿ L ÿ– ÿ§ ÿ¨ ÿ¨ÿ§ÿ¦ÿ§ ÿ¨ÿ)ÿ¤ÿ¥ ÿ£ ÿ  ÿœ ÿ — ÿ ‘ ÿ ‹ÿ„ÿ|ÿVÿ"F"ÿ!ÿ¬¬­ÿÜÜÜÿvvvø~~~òêêêÿìììÿïïïÿNbPÿbÿ£ ÿ¥ ÿ§ÿ¨ÿ¨ÿ¨ÿ§ÿ¨ÿ¨ÿ&ÿ  ÿ¥ ÿ£ ÿŸ ÿ› ÿ — ÿ ‘ ÿ Šÿƒÿ{ÿsÿjÿLÿMXMÿÜÜÜÿvvvø~~~òêêêÿëëëÿHoGÿ ÿŸ ÿ¢ ÿ¥ ÿ¦ ÿ§ÿ¨ ÿ¨ ÿ¨ÿ¨ÿ§ÿ&ÿœ ÿ¤ ÿ¢ ÿž ÿš ÿ • ÿ �ÿ ‰ÿ�ÿzÿqÿjÿFÿ$A&ÿÜÜÜÿvvvø}}}òêêêÿìììÿ6h6ÿš ÿž ÿ¡ ÿ£ ÿ¥ ÿ§ÿ§ÿ¨ÿ¨ÿ¨ ÿv ÿ ÿ>ÿ � ÿ  ÿ� ÿ ˜ ÿ ” ÿ �ÿ ‡ÿ€ÿxÿoÿiÿ(ÿWY\ÿÜÜÜÿvvvø}}}òéééÿëëëÿÄÇÄÿkÿœ ÿ  ÿ¢ ÿ¥ ÿ¦ ÿ¦ ÿ¦ÿ¥ÿCÿ'ÿHÿEÿ(ÿBÿ • ÿ – ÿ ‘ ÿ Œÿ…ÿ}ÿuÿmÿFÿ,ÿEEKÿÜÜÜÿvvvø|||òèèèÿêêêÿìììÿUtUÿ “ ÿž ÿ¡ ÿ¢ ÿ¤ ÿ¥ ÿ¥ ÿ 3 ÿAÿ¡ ÿ£ ÿ¢ ÿ� ÿOÿ$ ÿ {ÿ �ÿ ‰ÿ‚ÿ{ÿsÿiÿÿ"#(ÿ,,2ÿÜÜÜÿvvvø|||òçççÿéééÿëëëÿàààÿ I ÿ› ÿž ÿ  ÿ¢ ÿ� ÿ@ÿ Lÿ¤ ÿ£ ÿ¡ ÿŸ ÿ� ÿ™ ÿ ~ÿÿ D ÿvÿÿwÿoÿBÿViVÿ¹¹ºÿÿØØØÿvvvø{{{òæææÿèèèÿéééÿëëëÿ.>3ÿ zÿ› ÿž ÿ hÿ*ÿÿ [ ÿ¡ ÿ  ÿž ÿœ ÿ™ ÿ — ÿ � ÿÿ*+/ÿ1$ÿ A ÿfÿjÿÿ?@Eÿ "(ÿÿÀÁÂÿvvvø{{{òäääÿæææÿèèèÿéééÿlpsÿ=ÿ s ÿ,ÿ ÿ038ÿ.16ÿ T ÿž ÿœ ÿ› ÿ ˜ ÿ – ÿ ’ ÿ Žÿ6ÿ:<@ÿ;=Aÿ;=Aÿ#0'ÿ , ÿ ÿ>@Eÿ\^aÿ!ÿ§¨©ÿvvvøzzzòãããÿåååÿæææÿçççÿ‡ŠŒÿnssÿJUKÿX]^ÿ"&ÿ6:>ÿ7;?ÿ V ÿ™ ÿ ˜ ÿ — ÿ • ÿ ’ ÿ Žÿ Šÿ-ÿ>ADÿ>ADÿ@BEÿ@BEÿ<>Bÿ%)-ÿ×××ÿ¿¿Àÿ/27ÿŽ�‘ÿvvvøyyyòâââÿãããÿäääÿæææÿ¡£¥ÿ ÿ ÿ ÿ"ÿ;>Bÿ;?Bÿ ] ÿ • ÿ ” ÿ ’ ÿ �ÿ �ÿ ‰ÿ…ÿ%ÿBEHÿCEHÿDFIÿEFIÿEGIÿÿÿÿÿsuxÿvvvøxxxòàààÿáááÿãããÿäääÿº¼½ÿ4;?ÿ–™›ÿ±³´ÿÿ?BFÿ?CFÿYÿ �ÿ �ÿ �ÿ ‹ÿ ‡ÿ�ÿzÿÿGIKÿGIKÿHJLÿIKLÿJKMÿÿ\_bÿˆŠŒÿSWZÿY\_ÿvvvøvvvðÞÞÞÿàààÿáááÿâââÿÔÔÕÿ07;ÿƒ…ÿZ_cÿ ÿAEGÿDGJÿ'C*ÿJ ÿG ÿ E!ÿ!B#ÿ$?%ÿ(;*ÿ-8/ÿ7::ÿBEFÿ@ÿ37:ÿ+03ÿ#),ÿ!%ÿÿÿÿÿÿÿÿÿÿÿÿ%*/ÿWWWÞ&&&6MMMËuuuðyyyñyyyñzzzñ3:<ústtò{{{ñ8=Aù'+ü$,/ü'+ü&+ü&+ü&+ü &*þ &*þ!'+þ"(,þ#)-þ$*.þ&,0þ(-2þ*/3þ+/4þ%*.þ?CEübdeù^_`ù,13ñS€€(0 NNN}vuví:5;üQKQú929ýD?FþD@FþE@FþFAGþFAGþGBHþGBHþHBHþHCHþICIþIDIþJDJþ1*0þ<5;þ=6<þd`cüŠŠŠú„„„óYYY«‰‰‰êÌÌÌÿ^Z_ÿŽ‹�ÿ2,3ÿADÿC?EÿD@EÿEAFÿFBFÿGBGÿGCHÿHCIÿIDIÿJEIÿ0(/ÿ´²´ÿojoÿwqvÿÜÜÜÿÜÜÜÿ„„„󘘘ôÜÜÜÿ'")ÿ?:@ÿ507ÿB?DÿGCHÿHDIÿ2@2ÿVÿZÿ \ ÿ ] ÿ\ÿ5ÿNJNÿOKNÿ''ÿ)!)ÿ:29ÿ`Z_ÿÜÜÜÿÜÜÜÿ���ù˜˜˜ôÜÜÜÿ_\aÿ§¥¨ÿRNTÿA>BÿLHLÿMIMÿ&I%ÿ �ÿ �ÿ �ÿ ‹ÿ ‡ÿ@ÿ606ÿ.)/ÿÿ¢ ¢ÿ�š�ÿIBIÿÜÜÜÿÜÜÜÿ���ù™™™ôÞÞÞÿURWÿ74:ÿ628ÿ*&,ÿ?;@ÿ859ÿ@ÿ – ÿ • ÿ ” ÿ ‘ ÿ �ÿRÿ ÿ$%ÿ ÿDÿ$!%ÿ4-4ÿÜÜÜÿÜÜÜÿ���ùšššôáááÿsrvÿµ´¶ÿ3X4ÿGÿ ÿ"ÿ<ÿ› ÿ› ÿ™ ÿ— ÿ ” ÿVÿ%#)ÿ:ÿgÿpÿ#O#ÿ4.5ÿØ×ØÿÜÜÜÿ���ùœœœôãããÿ‡†‰ÿ!%ÿ f ÿ™ ÿ ‹ ÿ S ÿ?ÿ  ÿhÿ5<4ÿ%J!ÿ ˜ ÿ kÿVÿ ‡ÿÿuÿbÿ$ÿÃÂÃÿÜÜÜÿ���ù���ôåååÿ¢¡£ÿ9j:ÿ˜ ÿ� ÿ  ÿ¢ ÿŸ ÿ£ ÿ 5ÿ‰ˆ†ÿAH?ÿ� ÿ˜ ÿ ’ ÿ Œÿ„ÿzÿoÿHÿ›šœÿÜÜÜÿ���ùžžžôçççÿ¬¯­ÿ qÿœ ÿ  ÿ£ ÿ¥ ÿ¦ ÿ¦ ÿ€ÿ ÿ-p*ÿŸ ÿ› ÿ – ÿ �ÿ ‡ÿ}ÿsÿiÿ(D)ÿÜÜÜÿ���ùžžžôèèèÿI…Iÿ™ ÿž ÿ¢ ÿ¥ ÿ§ ÿ§ÿ¨ÿ§ÿ7ÿ¥ ÿ¢ ÿ� ÿ ˜ ÿ ’ ÿ ‰ÿ€ÿuÿaÿ2ÿÐÐÐÿ���ùŸŸŸôêêêÿe‘eÿ vÿ  ÿ¤ ÿ¦ ÿ¨ ÿ¨ÿ¨ÿ¨ÿ7ÿ¦ÿ£ ÿ  ÿš ÿ ” ÿ Œÿ‚ÿSÿ*ÿ`_cÿÜÜÜÿ���ù   ôëëëÿíííÿ]daÿ<};ÿ• ÿ§ ÿ¨ÿ¨ÿ§ ÿ¨ÿ5ÿ§ ÿ¤ ÿ  ÿ› ÿ ” ÿ ŒÿBÿdqeÿ²²´ÿOLQÿÜÜÜÿ���ù   ôëëëÿîîîÿKLQÿÿ1 ÿ¦ÿ¨ÿ§ÿ¦ ÿ§ÿ7ÿ§ÿ¤ ÿ¡ ÿ› ÿ • ÿ Œÿsÿ ? ÿÿ549ÿÜÜÜÿ���ù¡¡¡ôëëëÿîîîÿV_Zÿ)j(ÿ¡ÿ§ ÿ¨ÿ§ÿ§ÿ¨ÿ9ÿ¤ ÿ¤ ÿ  ÿ› ÿ ” ÿ ‹ÿ‚ÿwÿWÿ9ÿØØØÿ���ù   ôëëëÿƒ£ƒÿxÿ¡ ÿ¥ ÿ§ÿ¨ÿ¨ÿ¨ÿ¨ÿ7ÿŸ ÿ£ ÿž ÿ™ ÿ ’ ÿ Šÿ€ÿuÿjÿBÿš šÿ���ù   ôëëëÿfŠeÿ— ÿ  ÿ£ ÿ¦ ÿ§ ÿ¨ÿ§ ÿ|ÿ#ÿ7ÿ€ ÿ� ÿ— ÿ � ÿ ˆÿ~ÿsÿfÿ 5ÿ®®°ÿ���ùŸŸŸôéééÿèèèÿfÿ� ÿ¡ ÿ£ ÿ¥ ÿ¦ ÿTÿ9ÿˆ ÿ x ÿ6ÿ C ÿ “ ÿ Žÿ…ÿ{ÿpÿ>ÿÿ••—ÿ���ùžžžôèèèÿëëëÿƒ”„ÿ„ ÿž ÿ¡ ÿ£ ÿ c ÿ O ÿ¤ ÿ¢ ÿŸ ÿ› ÿ nÿ" ÿgÿ€ÿwÿgÿ%A&ÿxy|ÿ{{~ÿ���ùžžžôæææÿéééÿæææÿ @ ÿš ÿ �ÿ:ÿÿ g ÿ  ÿž ÿ› ÿ— ÿ ‘ ÿ & ÿ148ÿCÿ^ÿ6ÿ*40ÿ"ÿabfÿ���ùœœœôåååÿçççÿéééÿDJKÿ#O#ÿ%@'ÿ+/3ÿ48<ÿ ` ÿ› ÿ™ ÿ — ÿ ’ ÿ �ÿ : ÿ=?Cÿ=@Cÿ=?Bÿ&ÿ�‚…ÿ�ž ÿGINÿ���ù›››ôãããÿäääÿæææÿHMQÿ$(ÿ ÿ,05ÿ:>Bÿ f ÿ • ÿ ” ÿ �ÿ Œÿ ‡ÿ 2ÿBDGÿCEHÿDFIÿ*.2ÿ7:?ÿ),1ÿ,04ÿ���ù™™™ôàààÿâââÿäääÿ]beÿ¢¥¦ÿ�“•ÿ).2ÿ@CFÿ W ÿsÿmÿfÿ]ÿWÿ)ÿHJLÿIKLÿIKMÿ%),ÿX[^ÿ¢£¤ÿ)-2ÿ���ù‰‰‰êÞÞÞÿàààÿáááÿtxzÿ,37ÿÿ#)-ÿFIKÿCGHÿEGHÿDGIÿ@CEÿ:>@ÿ379ÿ+/2ÿ#)+ÿ!%ÿÿÿ.37ÿS¨��”ˆRRD§Íí¸U{š —mš€r,UE»ÍíªeF„‰uO‚ws-\HÎÍë–e-<1xŒ`7I fLÝÎå�W)&)_‚L',.jRçÑØvV+ 2g*)')Y_íÔËkOJ`=1Wið×´eB$2^X^+@R|óÛ­]G6ADVPM@BGˆî×y^+"+0:(YO®íöÊÕ½¨´ª¼O <ηès5%!%# TEÓÙ÷y`*9 1<7/NbÑÖêiU 5MjÑáäc/   ;K~ÏçÕ\4 @I�ÎíÄ_A  PD§Íï³^'  XD¼Íî§j,4 aFÏÍë–d/*  'fMÝÎå�W(,+21/kSçÑØvV!%'+$-Z`íÔËkP )4Xjð×µfD+@V}òÛ­^I7D %CJ‰í×z`.$&#.6B+\S¯ís8mkNZWYU^J²ÿùÿÿûÿÉMÿøÿþÿÿÿÿÿÿÿÿÿüÿXÿïûö÷÷öûÿÿÿÿÿÿüWÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿXÿöÿýþþþþÿÿÿÿÿÿþXÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿXÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿXÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿXÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿXÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿXÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿXÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿXÿöÿýþþþþÿÿÿÿÿÿÿWÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿXÿðü÷øø÷üÿÿÿÿÿÿýJÿùÿþÿÿÿÿÿÿÿÿÿýÿil32 ÿîÂÈÆÇË×ÚÕÍÌËÍÆÙK €4  4;ºöyœ±¥»cA0+% 4W"1Ážÿëíÿv ( ,DA€C?;95-'"$? ™É¯çÙÛêX¾ÿX<14!?@>?9A\ôɨƭöãèï:C'(<61 659;8>+"½È°ôÞíÚAoB1/8:..6<_�6-ÌȰ÷Ü÷ÆQíß%€T & /9pãs9ÚȲùßø¾    6^ÚȲüÛÿ—nË% &+¾É,máÉ´þÜÿ‚X­€  ^œ%‡àɵþßÿo€ ¨Úɶýâþ`ËÿM  gÿ¼ÖÉ·ýæ÷@6~7  &4A ÏÒɸúìç66LS2ÝÍɺööËbÿÍ Ÿÿ|:ìÇȹ÷óÉ1" `ëÉȺóû«^–<9` /£’uíÇȺñý•†ÿ§" " # *-œÖ3‰îÆÈ¹òù�(//;$ '/#5 ©æÊȸòög¢ÚL9344  $=5#@uú¯ºáÊȵóíR_»R5+/4 $5258"7s!ËÜÌȳõâ4 *,--,- 012/5!#1ÖØÍÊ­þÄ]þã0!*'*(-   +/,/,5œÿ‹7äÑÏɬý»>T#&%%&'  -),+,)QäÑÎʧÿ )J ##& "(&(&ebgæÏÏË£ÿƒÿ§  %#(,¼ì>uéÌÏʤÿp!93/, €   ˜áÐÎÉ£ûY|Œ)*C:D# €  P¼†«ÝÑÍÇ¡ôE‹ãV!@3;$ � 2E>�’ ¾ÙÓÏȪâ% 1€6:7/)€%)-9;=( )ÍÔÓǼ–ÜHÛ§&/646469;<�;+95@Žñq2ßÏÛÕ÷|m1tƒ%(,++,,++*-001335,k8FÛÀ×oÿîÂÈÆÇË×ÚÕÍÌËÍÅ×I   4;ºöyœ±¥»b@. *#1U 1Ážÿëíÿt%)B@B<952//+%  "< ˜É¯çÚÛêV½ÿV:-1IVPLH3;><>8@ZôȨƭöãèï8@% 69,y’†‚‚>,9796<(½È°ôÞíÙ?lB 3'$/s�ˆƒ}F12)-3:]�4*ÌȰ÷Ü÷ÆNîÜ1†„CЖЇ–2;Q/(8nâq5ÛȲùßù½e˜‘¦cY£�›f3dsmQ!1[ÛȲüÛÿ”oÃI�•—”¦_FkEMŒ‡ugc4)¼É)káÉ´þÜÿX©zŸŽšž–¬t-†›‹€{n`R\š"…áɵþßÿmp¦œ�šž�_©‹�‡{rgW¦Úɶýâÿ^ÊÿKI–ž—¤�V ’‘†}o?$ eÿ»ÖÉ·ýæø<3{- O–ž—£…^¦�‘…~) " 0>ÏÒɸúìç23 .ƒ¤›�™¤€]¢��…}g0 IP/ÝÍɺööÊ`ÿЄšŒš�•¦„`£��„zsdDœÿz7ìÇȹ÷óÉ#=“‘“˜› Z=‘އyj`R ^ëÉȺóû©[”:z�š•ˆˆ@G^•„ƒqfb#%¤�sîÇÈ»ñý“„ÿ¨ G…m;?šfN…x:lqj?#,™Ö0‡ïÆÈ¹òù"./)'FŽ�ŒŒl&,GM'0¨æÉȸñ÷e ÚI4'5*DŒ€f,5-$;rû­¹âÊ(ȵóíO\ºO1'+(5sv|T!10043}pËÜÌȳõâ1%€'*#+mq_$*,+*0,ÖØÍÊ­þÄZþâ-&"%$&'^jL!+'+&0šÿŠ3äÑÏʬý»;Q! $7aWZ&"&%&&%MåÐÎʧÿž%G!WZW^D$# b^ dæÎÏË¢ÿ}�ÿ¥ H^W[W], !'¼ì:rêÌÏʤÿm 7// /]VZYX[O –áÐÎÉ£ûVyŠ%'@8A-Q_YZXZWb2L»ƒ©ÞÑÍÇ¡ôA‰ãR<06->OUWXXVS=2B9›�¾ÙÓÏȪá! -2134.-02€3036;##ÌÔÓǼ—ÛDÚ¦!*1/0034€323561<Œòn,ßÎÛÕ÷}m.s‚!$('(('())+€- ..0'h4AÜÀ×nÿîÂÈÆÇË×ÛÖÍÌÊÍÆÙJ €4  5;ºöyœ±¥¼a=+ ("  .S1Ážÿëíÿq!'A=€@<860(":—ɯçÚÛëS¼ÿT7,0<=<<6?Xôȧƭöãèï5= "71,  21574;&½È°ôÞíÙ;k= +*   35**19[Ž1(ÌȰ÷Ü÷ÄLíÞ   ^ #+4mãp4ÛȲùßù¼    0YÛȲüÛÿ”jÊ    !%½È'jáÉ´þÛÿT¬‚ Zš …áɵþßÿk �\   ¦Úɶýâÿ\ÊÿH    dÿ»ÖÉ·ýæ÷;1{2     />ÏÒɸúìç11  €X  IP/ÝÍɺööÊ^ÿÌ  žÿz7ìÇȺ÷óÇ, !   ^ëÉÈ»óü©Z”8€ ;h  ,¢‘sîÇÈ»ñý“ƒÿ¥ "  ()›Ö0‡ïÆÈ¹òù#,+8 $, !3©æÊȸñ÷e ÚI4//0  !93 =sû®¹áÊȵóíO\ºO1&*/  "1/255~qËÜÌȳõâ1%(()(* ,-.+1 .ÖØÍÊ­þÄZþâ-&#&$)(+)+(1›ÿŠ4äÑÏʬý»#('#�ƒ‚…�€ƒ€�)BVmˆ¡¯©¶V ¡ÿÿüùTD»ëèêé�ê‚ë%êîæù² )@�A @<962,&"��‚‡���€*Û�fþú3 »æÙåâ€ãƒä ååäèßót‚9;ƒ<ƒ;==?�@ ?;850*% �ƒ‚Œ‚ AÚÎ ÿÅNëÚåÞßß‚à�á âáæÝñX€ <:;::;;…<„;<>?�@ >;74/)$�ƒ�„‚UÛÞTÿÊvéÜâß‚á‚â ãäãæßíD €"<9‡:;;<<…=<<€=>??@�A >:74/)$�‚ƒ � kÚÛ|ÿȦëÛãà€á‚âã‚ä æÜ09J0"€&;8�9…:988�9‚:ƒ;::€;=>?‚@ =:63.(#�$ QŸ’€mV?*„ÚÜ�ÿɦêÜäàáá�âã‚äæãëÊ ÏöÚͼ­~N*+;8ˆ9;‚>?�>ƒ?‚@?>…<=>?‚@)=963-("ÀêÞäáàÜýP ŸÚÜ‘ÿɧëÜäà‚â‚äåäçáð¹ BìàëìðóõðÜ9 0:7ƒ8€98;/ !""#%&(*+,./025�<‚=„<=>?€@ A>6+ÆÖ€ÓÒÖÔêb°ØÝ‘ÿɧëÜäá€âã�ä€åäèàô¨ JñÝåãåäåâî>28677ƒ896<"  7<ƒ;�<‚=ƒ<$=@< =àÒÕÓÓÒÕËÜU¼Ôß�ÿɧëÝåáââ�äƒåéàôŠ SÿîôéääååÛ2 46„78896< €†  5;ƒ:„;�<‚=";@, /ÄàããâáãÚäE -ÌÏá�ÿɧìÝåâã€ä‚åææåéàôpežÀÙñ÷ñþÏ„6 767785; „„  5:99ˆ:…;"=;>1$DQf|–©µ¶+ >ÞÊãŽÿɨìÝåã€ä�å�æåêáõX ,Fc¤z 7344�5€674: ‚€ 5ˆ9ˆ:<:=0‚  OäÉäŽÿɨìÝæãää�åƒæéâðD !6455€4�5639�€‚�6…8‡9‚:9<*‚eãÉäŽÿÉ©íßçã�傿�ç èÞ0 €%3122„4537ƒ€‚6�8„98;%‚}ãÉäŽÿÉ©îßçä€å�æ€çæéåîÌ )8575124�3437…€�66ƒ7�8989‡8; ‚™ãÉäŽÿÉ©îßèäåå�æ‚çêãó½ €$ &5413323426…€‚ 75‚676775687†879€ ¬áÊäŽÿɪîàèä�æ‚ç èçëâö¬ZH7'  -5213€23 €…€ 74‚5 6645993866ƒ7"886Œ¨‘…qW@) ¹ÝËãŽÿÊ«ïàè倿�ç€è&çëäøŠ [ÿðèÔÈ´‰^* 240122/ „ƒ€ 63€4 553486$857�6%7682 >íäçæåæÞÊŸ#-ÈÙÍâŽÿÊ«ïàèåææ�ç‚è#íäøn „÷âððôúôÿ²    %31.3+‡ƒ 62€4 2375# -64�5$6580OÞÐÚÖ×ÖÖßÔ- >ÙÔÐáŽÿÊ«ïáéåæ�ç€è&éêéíäúV ›÷ãëçèìãø»-3/ ƒƒ‚€ 0231274"  735€4#547,]ôÙÛÖרÕÙ½&PáÒÑá�ÿÊ«ðáéå€ç�èéêêéíçôA µÿòùñííä÷¬�  "„‚‚ "443!   (62�4$36& <¼ÌèæåèÞé» fáÒÒáŽÿʬðáéæçç€èéé€êìêìà/V�²ÆÔèüôÿ{ �  ‡�‚  22!  �  42�3#26"/Mt“ª­Èz  áÒÒáŽÿʬðáêæç€èé�êëìèòÎ %7N_†8‚‚†�‚"$"   $5132215€ ›âÓÒâ�ÿʬñâêæ€èé€êëëêíç÷¿  €… …‚   €   ƒ23€�®ßÔÑâ�ÿʬñâêçèèé€ê€ëêïæú­ €„� „)  403220�»ÛÖÑâ�ÿÊ­ñâêçèé€ê‚ëïæú�€„ƒ „   .€12-‚/ÌÖØÐâ�ÿÊ­ñâëçè€ê�ëìëïçúq   „ƒ‚  �€ 3/01* €  AßÑÛÐã�ÿÊ­òãëçéêê�ëììëðçüV CmM?+ €ƒ†   €€4 +0.1' V¹¬£�yZE( TäÐÛÐâ�ÿÊ­òãëèêê�ë�ìïéõB »ÿ÷óÝΰpƒ‡    €€  € )1,0#�øãëçèéàÒt  kãÑÛÐã�ÿÊ®òãëéêê€ë�ìîìðá0 #Òôêñøôÿ�ƒ‰   �€€2 )..  ¨ßÓÜØØÜÓî› …ãÑÛÏã‘ÿË®òãíéê€ë€ìííîëöÎ! 1ßïìïêñÕ‚‹  �€€ € &/- ¾öÛÝØØÛÓᎠ ¢ãÑÜÏã‘ÿÊ®òäíé€ë€ìííìðêû¿9úýþÿòÿd‚Ž  €�€3 (. w¿Îêèçëàóy²áÒÜÏã‘ÿÊ®óåíé€ë€ìííìòéý¬mް¿Ü° €‚�   €�€€  € ( - 0OtŠ ¬¸= "ÀÝÔÛÐã‘ÿË®ôåíêëë€ì€íîòéþŒ "‚� �€€€ €  $€  2ÒÙÖÚÑã‘ÿ˯ôåíêë€ì€íîîòêþp€�‘ €�€�€ � � DãÕÙÙÑã‘ÿ˯ôåîêë€ì€íïîòêÿW�  €‘ ��€�€  � �XæÔÙÙÑã‘ÿ˯ôæîê€ì€í€ïòìöC’  ‚‚€€€  � qåÔÚÙÑã’ÿ˯õæîê€ìííîïïðïòâ/   ‘ ‚‚€€€4  -+  ŒæÔÚÙÑã’ÿ˯õæîëìì€í€ïòíøÑ=RC5'  � ‚‚€€€4   * ®Ù¸±”w^G" §æÔÛÙÑä’ÿ˯õæîëììííî€ïòëþÀ2ðÿùëÝÓ½�D � ‚�€€€0 ('$%ÌêæëëéëâË: ¶ãÕÚÚÑä’ÿ˰õæîëì€í�ïóëÿ© Yÿêö÷ûÿûÿØ€!� ‚��€�, &'$%$ :ÛÚÞÜÜÛÜÕðM%ÅÞ×ÙÚÑä’ÿ˱õæîëì€íïïðïóëÿ‰ vþëóïïóïûÑ � ‚��8 #&"#$%"MúáãÛÜÛÛØ×:  6ÖÙÚØÛÑä’ÿ˱õæïë€í€ïðïóëÿm {ÿùÿþýüñýÎ"Ž ��€�5!$!!##!$ *¡ÄÞìêìçíÒ'IæÕÜØÛÑä’ÿ˱õçïë€íïïððïôëÿV 1vŒ¯ÄÒéòÿ¢ � ���€ $! !"€!$# 9Tp�£¹ƒ ]æÕÜ×ÛÑä’ÿ˱õçïë€íïï€ðóíöC   0A^5  � ���€ # "‚!" € væÕÜ×ÜÑä’ÿ˱õçïëíí€ïððñðóã/  ‘ ���€ !‚ !�“çÔÜ×ÜÒä“ÿ˱öçïëíí€ï ðïòîùЀ€’ €‚€�  !€ �& «æÕÜ×ÜÒä“ÿ˱öçïìííïïððïóìþ € “ €‚€€€ € �%ºâ×Û×ÜÒä“ÿ˱öçïìííïïððïôëÿ«�  €’ €‚€€€  ?-�3(ÉÞÙÛØÜÒä“ÿ˲öçïìííïïððïôëÿ‰ :¨|hP=* �“ €‚�€N JîÏÆ¶¡€bL" 9ÛØÛÚØÜÒä“ÿ˲öçïìííïïððïôëÿk ‹ÿùÿÿôáË" ‚’ ‚€�€€D iîÞêéìíçò§ MèÕÝÙØÜÒä“ÿ˲öçïìííïïððïôëÿT Ãþíôïøóÿq€‚‘ ‚€€€4  ~êÙâÝÜÞØåº bèÕÝÙØÜÒä“ÿ˲öçïìííïï€ðóîöB %ÑùïõöúôÿÐ €‚‘ ƒ€€€J ¡úàâÜÝÞØå² {èÕÝÙØÜÒä“ÿ˲öçïìííïïððñðóã2 (ÜÿýÿùóõìÿI�‚� €‚€�€€ € @ \µÉåíëîåø™  ™èÕÝÙØÜÒä“ÿ˲öçïìííïïðïòï÷×#:y©ÌàôÿúÿU�ƒ� ƒ€�€  � @ &?Zs‘¥²A ¯æÕÜÙØÜÒä“ÿ˱öçïìííïïðïòíûÈ +=Q^R �ƒŒ  ‚€�€ �   ‚€,¼â×ÜÙØÜÒä“ÿ˱öçïìííïïðïóëþ¾  €�ƒ‹ ( ��€€ � ‚+ÌÞÙÛÙØÜÒä“ÿ˱öçïìíí�ïóëÿª �…†  !.Y�€�€  € � =ߨÜÚÚØÜÒä“ÿ˱öçïëíí�ïóëÿ�€�…„ $)I1ee ��€€ €  �PèÕÝÙÚØÜÒä“ÿ˱õçïëííî€ïóêÿz �  �ˆ�†³ˆEi�€€2 &5P5& gçÕÜÙÚØÜÒä“ÿ˱õçïë€í€ïóêÿc •ή–yaE& €�‚‚ 3q2roP' ‚€€ € ( )0ªúØÍºª�oY# €èÕÜÙÙØÛÑä’ÿ˱õæïë€íïïîóêýUAôþÿÿþÿúܽ@+‚€ %c4~€H �€€ € EA$ÀçÝççëîå÷s  žèÕÜÙÙØÛÑä’ÿ˱õæïëìííîïïñïîEdþêòîííóóÿq//�‚ :…¢H#E�€5 2A $ÇãÝâßÜß×èy ±æÖÜÙÙØÛÑä’ÿ˱õæîëì€íïðîôÛ2}úéóôùùüðÿc/=€ 2 $.$=� €5 ?;)ÛïäßÜÜßÖéq¿áØÛÙÙØÛÑä’ÿ˰õæîëì€íîñìùË#{ÿùþôïìñëþP29/€ .:> €"‚@   ;;9|´Éæíëîåô^ /ÏÝÚÛÙÙØÚÑä’ÿ˯õæîëìì€í*òêüÁ kªÈáùÿüÿà 54:-;;4; € ‚n0# /=;6 $Abz“¥¿AAâ×ÜÚÚÙØÚÑä’ÿ˯õæîëììííìñéý¯-DYmZ7571 ,;9576; �€" /?1  >7=2 �RèÕÝ€Ù ØÚÑä’ÿ˯ôæîê€ì,íìðéý�  7549 ,:945774: ƒ‚ 289;#€  8:9<-€ fçÕÜ€Ù ØÚÑã’ÿ˯ôåîê€ì-íìðèýv"63536,974466574: ‰ 3:76<3€ *;89;(€|èÕÝ€Ù×ÚÑã’ÿ˯ôåíêë�ì*ðçý]&5243401952355455639 ˆ€0 498969<*   <797:# —èÕÝ€Ù×ÚÑã‘ÿË®ôåíêëë€ìïè÷H €  *52‚3124433€4528 †€� 4€7 876;9  �8*7: 7\NA3  ¬æÕÜØÙÙÖÚÑã‘ÿË®óåíêëë�ìîä1 a²�‚nV;%,31‚24…3417 ƒ‚ƒ 4�6 7756;1 /97€896ßïíçØÄ±‘Z¸ãÖÜ€Ù ÖÚÐã‘ÿÊ®òåíé€ëìíéóÑ ËÿøÿüþðÔÄ< /3‹23417 …„ 55‚67647:2486�7(5iïÔÝÛßãìäôS&ÆßØÛØÙ×ÖÚÐã‘ÿË®òäíéê€ëîçøÀ5åëìííëóðÿ]ƒ1ˆ2315 �†€ 54„5654€6766572…ìÞçäáÞßÕåS 5ÔÚÚ€Ù(×ÖÙÐã‘ÿÊ®òãìéêëëêïæú« NÿçîìííñéùH 2/�0…1€2315 ˆƒ 635ƒ45564�5658/²óØÝÙÚÚÝÔéP!EäÕÜ€Ù*×ÖÙÐã‘ÿÊ®òãëéêêëêîæúŒ Gîôÿûüúöðç71.//†0�1204 …„ 624‚3€43�4+5547*œÓÚîëëìæíÎ& VçÔÜØÙ××ÖÙÐã�ÿÊ­òãëç�êîåùr3Je…©ÅÐô×!0-..…/‚01/3 €†� 514‰3€4636&&8Mf…¤¬¬N jæÕÜØÙ××ÖÙÐã�ÿÊ­ñãëçèêêéîåùY€ "=B$/,†.ƒ/0.3 ‡‚ 513ƒ2„374436!   �æÕÜØÙ××ÕÙÐã�ÿÊ­ñâêçèéêéìçòD �  &/,…-†.0'ƒƒ !41‰2�325 ›çÔÛØ€×ÕÙÐâ�ÿÊ­ñâêçèèéëéìß0€€(-€,‹- ../20*… )2…1‰2 € ®åÔÛØ€× ÕÙÏâ�ÿʬðâêæ€èëçñÌ�)€+†,…-€,./ �€122/�0…1„2 0 €¹áÖÛ€×ÖÕÙÏâ�ÿʬðâêæçèçëäõ½ƒ )‚*ƒ+…,€-.+0€€ 1--.€/„0†12,DV@5& 'ÇÝ×Ú€×ÖÕØÏã�ÿʬðá鿀çëâ÷¨  ‰“ƒvhV: *(€)†*‚+�,-+0ƒ0,0‡/…0D103*"Íñã×Ç»¤{Z%6ÕØÙØ××ÖÖÕØÏâŽÿÊ«ðáéæççæëâö† _ÿòû÷÷ûåØ� *(ˆ)…*++,*.� 0,.€-ƒ.…/00/2' Gæ×ßßâäêâõP!FãÔÛ€×(ÖÖÕØÏâŽÿÊ«ðáéåççæêâök ‡ôáêççéçþÐ)'�(‹)€*+), ƒ 0+.ˆ-‚.€/.1# VèÖÜØÚÙÚÖÛ= VæÔÛÖ×€Ö%ÔØÏâŽÿÊ«ïàéåæçæêá÷S ¨øáêæçëäî¿ (�'†(†)(+" ƒ �,Ž-.-/  T÷äëåáÝØÚÌ0iåÓÚÖ×€Ö ÔØÏá�ÿÊ«ïàè倿éäí?©÷òùööùîÿ³"&%‚&ƒ'…()*(, „  .*†,‡-,."mЍ¸ÇÝãðÀ ~åÒÙ�Ö&ÕÔØÎá�ÿʪïàèäææçåéÙ-'@Up�©»¿Òp #&…%ƒ&�'€('+! ‚ ‚  )*…+†,�- &;Jlb —åÑÚ�ÖÕÔ×Îá�ÿɪîàèäååèãíÇ € "€$Š%&&‚')  ‡  ,'ƒ*†+�,*€€    «ãÒÙ€ÖÕÕÔ×Îá�ÿÉ©îßçäåäèáñ¹� "##…$ƒ%�&'%) ‰  &†)ƒ*�+,'�.µßÓÙÕÖÖÕÕÓ×Îá�ÿÉ©íßçãåäèßó£‚ �"€#‚$‡%$ Š  +'Œ)*)+%$ÁÜÕ×ÕÖ€ÕÓ×Îá�ÿɨìÞçãääèßò„�€"�!""„#‚$%$( Œ  ")'„(…)(*" 3Ð×€Ö€ÕÔÓ×Îá�ÿɨìÝæãäãçßòi ƒ ‚!‚"!"!€"‚#$"%Ž   (&ƒ'†()*NI>3(  DàÒØÕÖ€Õ"ÔÓ×Îá�ÿɨìÝåâäãçÞóO P¶š’ƒsU;!� !‰" � '%'ƒ&ƒ'(') JðãàÑȽ¦…R WäÑØ�Õ%ÔÔÓ×Îá�ÿɧëÝåáâãåáè; ¤ÿìõòñôáÕI €€ !#!$ Ž  $…%…&( }çÓÝÜÞãáñ¹ mãÑÙ€Õ€Ô#Ó×Îá�ÿɧëÜäáâãáçÔ+ Äçßãââåàüq‡�’  '#$$ˆ%&& ¤äÓÚ××ÛÑá§  †âÑØÔÕÕ€ÔÓ×Îá�ÿɧëÜäàáäßêÁ 9åå€âáæÜìe ��†€ ’  $#$##‚$‚%$ÃðãçàÛÛÔå“  ¡âÑØÔÕ�Ô"Ó×Îá�ÿȦêÜäààäÝî²?ÙßòðñðóëüN €ƒ€�  ’   #!€"�#$##$$%!€Y…Ÿ²¾Ïà×çi °àÑ׃Ô'Ó×Îá�ÿɦêÛãààäÜï� *;Of—®º¯,�„ –  $!ˆ"$  0?=?#"¾ÛÓÖƒÔÓ×Îá�ÿɦêÛãßàäÛî~  �  *7973-(#‚ –  !‚"�€ 2ÍÖÕÕƒÔ'Ó×Îá�ÿÉ¥éÛãßßãÛîe 1B?@@�A @=:62,("! –   ‚€€ CÝÑׄÔÓ×Îá�ÿȦéÚâßßãÛîO �"@<…= ?@@ABAD5 š  ‚‚� UáÐ×ÓƒÔÓ×Îá�ÿȤéÚâÞàáÞà< �-?<€=ƒ>�=:? ˜  €‡  káÐÖÓƒÔÓ×Îá�ÿÈ£çÚâÞàÞãÎ) € 2>;ƒ<�=>?><@:Syަ±¾ÊÜÓ/ BÛÐÖ…Ô#Ó×Îá�ÿÈ¢å×ßÚß×éK  #>_�¥³Í‘ (:7Š8 7:€=>>?=@! #/AG SáÏ×Ó„ÔÓ×Îá�ÿÈ¢åÖÝÛÝÛÚ8 € +96�7‡876:<4*  � ‚   (:@;€<€=<@"€   iàÏÖÓ„ÔÓ×Îá�ÿÈ¡åÖÝÛÚàÈ'€/85�6…7�8$769;<;4,&  )19??<:„<;=€ �àÏÖÓ„ÔÓ×Îá�ÿÇ¡äÕÝÜ×ã¹�€0645665…6�7887€68;<<;;954322110/136:==€>=:88;;:‚;<<:€ �àÏÖÓ„ÔÓ×Îá�ÿÇŸäÕÜÜÖçª �144…5665…6�7€6€7‚9€:;:99877�8:;;…:;<6 €  ­ÞÐÖÓ„Ô Ó×Îá�ÿÇ¢äÕÜÜÔç� + €3…4…5665€6€7ƒ8†788„988‚9€:9<3VfTK>+ !ºÚÒÕ…Ô"Ó×Îá�ÿÆŒâÔÜÜÕçrMÕ¸³Ÿ‡gH(52†3„4€5ˆ6�7“8�98;0 ?ãÝáàØÄ³¢e/ÉÕÓ†Ô"Ó×ÎáŽÿÊXåÕÛÚÔèZíÝèææéàÒ‚ "41ƒ2„3ƒ4…5‡676ƒ7Œ87:+ RÞÍÔÐÒØÚãÌ) AÚÐÖ†Ô"Ó×Îâ�ÿÂ2ÖÕÛÞÕäE˜âÑÙ××ÛÓîª%40‡2„3‡4„5ˆ6…7„87:& fáÌÓÑÒÓÏÖ·# RáÏ×Ó…Ô%ÓÖÏáqþù2sìÐ×ר5´ðÚÝ××ÛÔâ– *41232Š3ƒ4…565€644‚5‹6‚7:! RàÛáÝØÙÑÚ´ gßÎÕÒ…Ó"ÒÙÎâ?ûÿ´ �áÞÞ¾  €ÀÃÛâáåÝïu'-+€-..--�.‚/€014€54‚5…6„768<\†«¹ÈÍë�  ƒãÒÙÖ„×"ÖÙÊà ÿöÿbY®Í¾#3DWl‰ŸÀH!48€7‚8…9�:;:€232€32†3…43€ ,7J( —ÚÉÐÍ„ÎÏÎàÄ$bÿÿûó£ ‹ƒš-64�5ƒ6776ƒ788794� ¹ëÝãàƒáâàá &Ñÿþÿûÿ×cCC;EDDCDFIJ€KJ�FŸEFCI5($&ƒ$€%$$�%$$%€#% ‚ |“��„��s=³�ÿýøþ²ÿþÿùÿÆ „‚€¡bÕÿüÿÿþÿýøû±ÿþÿøÿà ƒ€ ‚  … �€‡�üüøý�ÿþøÿñÄÊÇÈ�ÉÈ…ÉÈ�ÃÄÆÉ‚ÌÆ�ÄÃ�ÅÄćà žΖ €�‚€„ � � � #+')((*(+ '¶ÿ÷€ÿüûõk4��…‚‚ƒ‚€† €€€! ¬îâèæååÜï’  aóþÿÿúûTLv¤¥‚¦�§¦©¤¯Š%m}Ž ³¶¸´½<!'&!‚ƒƒˆ� „�&?Slˆ ®©¶T ¡ÿÿüùTD»ëèêé�ê‚ë%êîæú± '9M]qƒ€! *;<<;841-'! �  ƒ€€Ž ‚ �  !�ÒøÿgCÚæÚ‚ÛƒÜ ÝÜà×ê‡ ‚ +@:€;<=?�@ ?;851+% �ƒ‚���€'Û�fþú3 »æÙåâ€ãƒä ååäèßóq ‚899€;€:99::;<>??€@ >:63/)#�ƒ‚Œ ‚ ?ÚÎ ÿÅNëÚåÞßß‚à�á âáæÝñV €   ;8:�9::ƒ;ƒ:;=>‚? =:63-'"�ƒ�„‚SÛÞTÿÊvéÜâß‚á‚â ãäãæßîB € ;7:‚9::99€:;;ƒ<;;�<=>?‚@ =952-'"‚ƒƒ iÚÛ|ÿȦëÛãà€á‚âã‚äæÜ. 6G-  $:7�8„9�8ƒ7ˆ899:<=>?�@ <952,&!�$ Nž‘~kS<'‚ÚÜ�ÿɦêÜäàáá�âã‚äæâëÉÏ÷ÙÍ»¬|L')96�7„89<€=€>€?‡@?>=;;‚:;<=>�@*?<851+%¿ëÞäááݼNžÛÜ‘ÿɧëÜäà‚â‚äåäçàð¹@íàëìðóöïÛ8 -85ƒ6€769.€‚  "%&()+049:†;�:;<=>�@ =5 (ÅÖ€ÓÒÖÔë` ¯ØÝ‘ÿɧëÜäá€âã�ä€åäèàô¨ HñÝåãåäåâî</64ƒ56673<=i[]XVSPLID>83.+'$!4:€9::9::‚;<€;€:%;*  ,ÃàããâáãÚäC *ÌÏá�ÿɧìÝåâã€ä‚åææåéàôoc�¿Øñ÷ñÿЈ3529_†|€~~}|{zyxwvtsqrmuX%,.;7�8Š9%::9::=/!BNdz”§´µ( <ÝÊãŽÿɨìÝåã€ä�å�æåêáõW +Da~£x 52†3417h�‚†€„ƒƒ‚�€~|zxxrzX(--96�7…8…9 :8<.�NäÉäŽÿɨìÝæãää�åƒæéâðB 41‚2�3417l�ƒ‡……„ƒ‚‚�€}|{yxr|X*-,95ƒ6‚7…8 9:8<(‚cãÉäŽÿÉ©íßçã�傿�çèÞ/ € €!0-1/ƒ12215q�…Š€‡†„„ƒ‚�€~}|{u~V+,,84ƒ5…6‚7 887:"‚ |ãÉäŽÿÉ©îßçä€å�æ€çæéåîË %7413/0100€103t�ˆ‹€‰ˆ‡…„ƒƒ�€}}w€U-*,62‚4€566€5†69„™ãÉäŽÿÉ©îßèäåå�æ‚çêãó¼   �"!11-/‚01z�ŠŒ‹€Š‰ˆ‡†„ƒ‚�y‚U0&-52ƒ34312544„5657‚  «áÊäŽÿɪîàèä�æ‚ç>èçëâ÷ªWE4$ % %2/-/..0,€�ŒŽŒŒ‹‹Š‰‰ˆ†…ƒ‚��z„T4#/5‚343128704€3‚4"553Ч�ƒoT=& ¸ÝËãŽÿÊ«ïàè倿�ç€è&çëäù‰ YÿðèÔdz‡\' „‰R+2-../(†‘€Ž��ŒŒ‹ŠŠ‰‡…„‚ƒ|…T5!.�2 330284 524ƒ3#4/<íåçæåæÞÉž!  )ÇÙÍâŽÿÊ«ïàèåææ�ç‚èLíäøl ‚÷âðñôûôÿ±Z�…”x:00*1#Œ‘‘���ŽŽ�Œ‹ŠŠ‰ˆ†„„~‡T6 /1121.1723 )52‚3 25-LßÏÚ�ÖàÔ* ;ÙÔÐáŽÿÊ«ïáéåæ�ç€è'éêéíäúS šöãëçèìãøº+Œ‰�‰‘‘a)'/.��’!‘‘�ŽŽ�Œ‹Š‰ˆ†…ˆR5*00-/62"K]d/ƒ2#325) ZôÙÛÖרÕÙ¼" MâÒÒá�ÿÊ«ðáéå€ç�èRéêêéíçô? µÿòùñííäøªs�ŠŽ���š‡K"&““”““’’‘��Ž�Œ‹Š‰‡‡€ŠM, 031 !MhfZZO$402€1$04$ 9»ËèæåèÞêºcáÒÒáŽÿʬðáéæçç€èéé€ê)ìêíà, Tœ±ÅÔçüôÿwA”ˆŽ��‘’Ž•›u= )˜“•””€“ ’‘��ŽŒ‹Š‰‰‚ŒD!2/ PomcaaY^5/‚0#/3 +Jr‘©¬Èx}áÒÒáŽÿʬðáêæç€èé‚ê)ìèòÎ"5L]„7‚ŒŒŽ�‘‘’•’�œ•d/)””˜”•€”.“’‘��Ž�‹‰‹…Š8! #Tuujghea\\R"2-0//.2 € ›âÓÒâ�ÿʬñâêæ€èé€êQëëêíçø¾ ^“‰��‘‘’“”•–’•Ÿ‰S œ–•˜•–••”“’’����Œ‰„’1 #Z{{qnolheb_Y^:+‚./€� ­àÔÑâ�ÿʬñâêçèèé€ê€ëXêïæú« .�Š��‘‘“””••–˜—”—¤^K•›“˜—–••””’‘’‘Œ‰’�d'\‚ƒwtusolifd`\ZU%1,/..,€ � »ÛÖÑâ�ÿÊ­ñâêçèé€ê‚ëZïæú‹  v�Œ��‘““”•––—–˜š˜”œ)/„£“–™—•””••‘Œ’–i- W‡ˆ}z|yuspmkgea^X^>(.--.)‚ +ÌÖØÐâ�ÿÊ­ñâëçè€ê�ëìëïçûo H”‰��’’””•––——€˜:›˜Ÿxh¡š“–˜˜•’�•›€9vŽ��|yvtqolifc^[YW)/+,-& €=ßÑÛÐã�ÿÊ­òãëçéêê�ëzììëðçüT@jK=)‡�Ž�‘’“”•–——˜˜™šš™›˜¢l=Œ£™”“–œ�‰R (z�„‡„�}{wurpmjgd`]X^B$-*-# S¸«¢ŽwWB$ QäÐÛÐâ�ÿÊ­òãëèêê�ë�ìïéõ? »ÿ÷óÝͯob“Š��’“”•––—˜˜™€šV›šœ˜£{$ \Žž ”zJ!<‡�ˆ‹‡„‚€~|yvspnkhdb][XY)-(, ›øãëçèéàÒrhãÑÛÐã�ÿÊ®òãëéêê€ë�ìîìðá- Ñôêñùóÿ‰(–‡��‘’“”•–—˜™€š�›Sš�˜¡–K 47( .l˜Ž‹Œ‰ˆ…ƒ�}zwtroliec^\W^@#++ §ßÓÜØØÛÓäÑÛÏã‘ÿË®òãíéê€ë€ìííïëöÍ .ßïìïêñÕt�Š��’“”•–—˜˜šš…›P�™œ¥u* >p–›��Ž‹Šˆ†„‚€}{xurpmjfd_\ZYX%*)  ½öÛÝØØÜÓ⌠ãÑÜÏã‘ÿÊ®òäíé€ë€ìííìðêü¾ 6úýþÿñÿ[@›…��‘’”•–—˜˜™š‚›�œP›œœ—£™XO��’�“�ŽŒ‹‰‡„‚€~|yvspmkgea\[V_= *u¿Îêèçëàów²áÒÜÏã‘ÿÊ®óåíé€ë€ìííìòéý«k�¯½Ý«%‰†�Ž�’“”•–—˜˜šš€›„œQ›œ�›˜­P ¦›”’••’‘��‹Šˆ…ƒ�|zwtqnlhdb]ZYYX'-LqˆŸ«¸9 ÀÝÔÛÐã‘ÿË®ôåíêëë€ì€íîòéþ‹  'ƒ‘‰�’’“•–——˜šš€›œ›…œ2›Ÿ˜ ` +”––™˜•”“‘�ŽŒŠ‰†ƒ‚€}zwtroliec^ZZV_: € /ÒÙÖÚÑã‘ÿ˯ôåíêë€ì€íîîòêþne•Ž�””•–—˜™š€›ˆœ+›ž˜¥\,”œš––•”“’‘ŽŒ‹‰‡„‚€~{xurpljfc_[YYXZ€�AãÔÙÙÑã‘ÿ˯ôåîêë€ì€íïîòêÿU�  AŒ—�•––˜˜™š�›‡œ2›ž˜¤Z4š™™——–•”’‘Ž�‹‰ˆ…ƒ�~|yvspmjgd`\Y[W\;  � UæÓÙÙÑã‘ÿ˯ôæîê€ì€í€ïòìö@ uœ’“˜—˜šš€›ˆœ2›ž˜¥V:�˜›˜—–•”“‘��ŒŠ‰…ƒ�}zvtpmkgd`]ZWX_R  �næÔÚÙÑã’ÿ˯õæîê€ìííîïïðïòá,  P–š’™šš€›„œ�›Pœ›ž˜¤Q@¡—›˜˜–•”“’‘ŽŒŠˆ‡„�}zwtqnkhfb[X^X5)'‹æÓÚÙÑã’ÿ˯õæîëìì€í€ïòíøÏ:OA3$'¡–—œ�›‚œ„›Qž˜¤ND¢—œ˜˜––•“’�ŽŒŠ‰‡ƒ‚}zwtqnlic`b[:$ ­Ø¶°“u\D ¦æÔÛÙÑä’ÿ˯õæîëììííî€ïóëþ¿ /ðÿøëÝÒ¼ŽAW›�—€›‚œ…›Mž˜¤KK¢—œ˜——–•”’�ŽŒ‹‰‡„‚€}zwtrpjfjdA$# !ËêçìëéëâÊ7 µãÕÚÚÑä’ÿ˰õæîëì€í�ïóëÿ¨ Wÿêö÷ûÿûÿ×-…¡€›‚œ€›Ršš››šž˜¤HU¢˜œ™˜—–•““‘Ž�‹‰‡„‚€}{xvplpmK""7ÛÚÞÜÜÚÜÕñJ !ÄÞ×ÙÚÑä’ÿ˱õæîëì€í ïïðïóëÿ‡ tþëóïïóïûÐoœšƒœT››šš™š›šž™£EZ£—œ™˜—–•”“‘��‹Š‡„‚€}{wrvuW$ " JûâãÛÜÛÛØ×73ÖÙÚØÛÑä’ÿ˱õæïë€í€ï ðïóëÿj xÿøÿþýýñýÎ" ˆžš��œ,››šš™š›šž™£C[£—œ™˜—–•”“‘��‹‰‡…‚}{x|b, !€$ & ÃÞìêìçíÑ# EæÕÜØÛÑä’ÿ˱õçïë€í!ïïððïôëÿS-s‰­ÃÒèòÿ r›šƒœ€›(šš››šž™£A]£—œ™˜—–•”“‘��‹‰‡…‚€}|q8  �$5Qm‹¢¸� ZçÕÜ×ÛÑä’ÿ˱õçïë€íïï€ðóíö@  ,>[1  H� �›‚œ„›"ž™£?`¢—œ™˜—–•““‘Ž�‹Š‡„‚�{�B‚€ sçÕÜ×ÜÑä’ÿ˱õçïëíí€ïððòðôâ+   :€¡›—€›ƒœƒ›$œž™¢<c¢—œ˜——–•”’‘Ž�‹‰‡„‚€|}d3 � �‘çÔÜ×ÜÒä“ÿ˱öçïëíí€ï ðïóîùÏ €  +sœš“—›š››…œ››€œ$ž™¢;e¢—œ˜˜––””’�ŽŒ‹‰‡„‚€}z{l@�� &«æÕÜ×ÜÒä“ÿ˱öçïìííïïððïóìþÁ €  b–𒔀™š�›ˆœ%ž™¡:h¢—›˜˜–•”“’�ŽŒŠ‰‡ƒ‚}zuvtR* € €%¸âÖÜ×ÜÒä“ÿ˱öçïìííïïððïôëÿª €  LŠ™�‘–—–˜™šš€›ˆœ0ž™¡9j¢—›˜—–•”“’�ŽŒŠˆ‡ƒ�}zxsptc9 <) �< $ÈÞØÛØÜÒä“ÿ˲öçïìííïïððïôëÿ‡7¦zeL9% 6z•ŽŒ“””•–—™™š€›ˆœr�™ 8m¢—š——–•”’‘��‹Šˆ…ƒ�}zvtqlmkK& GîÎÅ´ }_I6ÛØÛÚØÜÒä“ÿ˲öçïìííïïððïôëÿh ˆÿøÿÿôàÉ*^“‹‰�‘‘’”•–—˜˜šš€›œ›…œr�šŸ7o¡–š—––•“’‘Ž�Œ‰ˆ…ƒ�~|xvspnjejZ2fîÞêéìíçó¥ IèÕÝÙØÜÒä“ÿ˲öçïìííïïððïôëÿQÂþíôïøòÿrQ“‚�ŒŽ‘’“”––—˜™š‚›„œQ›�™�6q –™—–•”“’�ŽŒ‹‰‡„‚€~{xuspmjgbaaE" }êÙâÝÜÞØå¹_èÕÝÙØÜÒä“ÿ˲öçïìííïï€ðóîõ?!ÐùïõöûòÿË ‰ˆŠŒŽ�‘“”•–——˜™š‚›yœœ›œœ››œ˜Ÿ6u¡”™–•”““‘��ŒŠ‰†„‚€}{wurolifd_Y^W3  úàâÛÝÞØæ² yèÕÝÙØÜÒä“ÿ˲öçïìííïïððñðóã.$ÚÿýÿùôôëÿGK–„Ž�Ž�’“”•–—˜˜€š‡›sœš™2n�–˜••”“‘‘��‹‰ˆ…ƒ�}zwtqolifc^\WY^J Y´Èåíëîåø˜—èÕÝÙØÜÒä“ÿ˲öçïìííïïðïòî÷Ö6v§ËßôÿùÿNŒ†ŒŒŽ�‘’“”•–—˜™�š„›#šœ•¤7¢�˜••”’‘�ŽŒŠ‰‡…‚�~|yvtqnkhdb^€ZOTa$ !;Wp�¥±<  ­çÕÜÙØÜÒä“ÿ˱öçïìííïïðïòíûÇ':N[NY�†�Œ�‘‘“”•––—™˜™�š‚›0š›¡wF‹�••”“‘���‹Šˆ‡„‚€~{xuspmjgea]YZX]F �= »â×ÜÙØÜÒä“ÿ˱öçïìííïïðïóëþ½ †ˆŠŒ��‘’“”•–€—˜™™…š1˜@%Xš’”’‘�ŽŒ‹‰‡…ƒ�}zwtroljfc`\YYXY € 'ËÞÙÛÙØÜÒä“ÿ˱öçïìíí�ï"óëÿ©  W�†�ŒŽ�‘’“”••––—�˜€™2š–Ÿ@4 ]ƒgœ�“�Ž�‹Šˆ‡„‚€~|yvtqnlifc_[ZW^7�  :ߨÜÚÚØÜÒä“ÿ˱öçïëíí�ïóëÿŽ€ …ˆŠŒ�Ž�‘““”•‚–7™š˜˜š•Ÿw')K4 je&�‘‘��Œ‹‰ˆ…ƒ�}{xuspmkgea][X[P   �MèÕÝÙÚØÜÒä“ÿ˱õçïëííî€ïóêÿw �U�†ŒŒ�Ž‘‘’“”€•V–˜–“–—™“ \"ˆ¶�Im s˜‹�Œ‹Šˆ…„‚€~|zwtqoljfd`\ZW^!%  1M2"dèÕÜÙÚØÜÒä“ÿ˱õçïë€í€ïyóêÿ`“ά”v^B" €‰‰‹Œ�Ž�‘’““”—•‘—Ÿ˜•˜“�[ 9u2utU'c™‰ŽŠŠ‡††ƒ€}{xvspnlhec^\W\C), ¨ú×̸©‹lV~èÕÜÙÙØÛÑä’ÿ˱õæïë€íïïîóêýR=ôþÿÿþÿúÛ»<  * B�„‹ŠŒ�Ž�‘“”“�•ž�_„™–“�h)e5�†Ne˜‰�Šˆ‹‡€ƒ�~|zwtromjgda][XW@ ¿çÝçèëîåøpœèÕÝÙÙØÛÑä’ÿ˱õæïëìíí}îïïñïîBaþêòîííóóÿn ,+ uЇЋŒ��‘��“��R ]�‘•–ˆ"A‰¥I)DŠŒ‹‹ˆ‹v|‹}~~zwusqnlifc_]W^-1> ÆãÝâßÜßÖèw °æÖÜÙÙØÛÑä’ÿ˱õæîëì€í|ïðîôÛ.zúéóõùùýðÿ`*; 4ŒƒŠ‰ŒŽ‹‰�š‡O .W�Ž–�›c&1';f“ˆŒŠ†‰(^„€xzwtromjgeb_Z\H<9&ÛðäßÜÜßÖéo¾â×ÛÙÙØÛÑä’ÿ˰õæîëì€í}îñìùÊxÿùÿôïìðêýM.4+f‹†‹‡†�–‚K (7>XœŽ”“�—e(#'g“‰‹‰‡‰z& 0m‚ustqnkifda]YX :76y³Èæíëîåõ[ +ÏÝÚÛÙÙØÚÑä’ÿ˯õæîëìì€íòêüÀ h©Çàùÿüÿß108$‡€„�’zB &98.7Yš�“�‘�—‰neiˆ“ˆ‹ˆ‰…‰r- *Fwxnomjgeb_Y^./993 >_w‘¤¾=>â×ÜÚÚÙØÚÑä’ÿ˯õæîëììííì\ñéý­ )AVk}W 202/V‘‰s9 &96/109Z˜‹‘ŽŽ�ŠŽ”“•‹‡Šˆˆ‡�‰l."&@+ Zwmijfca[\G;5;/�OèÕÝ€Ù ØÚÑä’ÿ˯ôæîê€ì_íìðéýŽ 20/6f0 '85/034/8\–‰�Œ�ŒŽŒˆˆ†‰Šˆ‡„…€ˆg-%(65: 0gpddc^[W676:* €dèÕÜ€Ù ØÚÑã’ÿ˯ôåîê€ì_íìðèýt 1/0/1'73./2212/7\”ˆ�Š‹‹Š‹Œ‹Š‰‡†„ƒ„~ˆc.((923:0 Fje^Z^-*7668$€ zèÕÝ€Ù×ÚÑã’ÿ˯ôåíêë�ìðçþY "1.0.0+-61-.1�0 1.6]’†ŒŠŠ€‰8ˆ‡††…„ƒ‚‚|‡^/'(73415:$ "Vb^G84647  •èÕÝ€Ù×ÚÑã‘ÿË®ôåíêëë€ìïè÷D�  %0-€./.+.0ƒ/X1.4_�„Ї‰ˆˆ‡‡†…„ƒ‚�€€z…X0')512430755S 535537 3YK>0«çÕÝØÙÙÖÚÑã‘ÿË®óåíêëë�ìîã- ^±�€kR7 '.,‚-/.-‚./0-4_Žƒˆ††……„„ƒƒ‚�€€~xƒS3#*51€2 3019,,4�35 2ßïíçØÃ°�X·ãÖÜ€Ù ÖÚÐã‘ÿÊ®òåíé€ëìíéóÐÊÿøÿüþðÓÂ8 )Œ- ./,2_Œ�…„„€ƒ‚‚��€~|}w€N2,31�232/47-13�2)31fðÔÜÛßãìäõP !ÅßØÛØÙ×ÖÚÐã‘ÿË®òäíéê€ëîçø¿ 1åëìííëóðÿY+…,…-.+1`‰ƒ€‚€�€€~~}|zzt~J/-2‚1€2104‚213.ƒìÞèãâÞßÔæP1ÔÚÚ€Ù)×ÖÙÐã‘ÿÊ®òãìéêëëêïæûª KÿçïëìíñéúE-**‚+…,-.+1bˆ~�€€€~ }|{zwxr{F,.1�0€101201�214+ ±óØÜÙÚÚÝÔéMBäÕÜ€Ù(×ÖÙÐã‘ÿÊ®òãëéêêëêîæûŠ Cîôÿûüúöðæ4 +)‚*++*�+€,-+1]�y€�~}}|{zyxwuvq{B(.�/„0ƒ1)03& šÒÚîììíçîÍ" RçÔÜØÙ××ÖÙÐã�ÿÊ­òãëç�êîåùo/Gaƒ§ÄÐõÖ+(ƒ)**„+ ,*1\‹||{|€{ zzxwvvussmt:!�.†/‚06/2!!4Jc‚¢ªªJ gæÕÜØÙ××ÖÙÐã�ÿÊ­ñãëçèêêéîåùU € 9?*'ƒ)†* ,)/'Wg|zy€xwvvutsrqrny:/,.€-ƒ.ƒ/.1 �( ~çÕÜØÙ××ÕÙÐã�ÿÊ­ñâêçèéêéìçò@� !('((‰)€*+$ $owuvuutssrqpok`X" .,‰-�. -0� ™çÔÛØ€×ÕÙÐâ�ÿÊ­ñâêçèèéëéìÞ,  �  €#(€'‚(ˆ)*/,',yqtsrrqpopkr9 %-‚,Œ- €  ­æÔÛØ€× ÕÙÏâ�ÿʬðâêæ€èëçñË‚ $€&†'‚(€)(''*+ [uoqpoonmmjj/--*�+…,„- * €¸âÕÛ€×ÖÕÙÏâ�ÿʬðâêæçèçëäö¼  ƒ$‚%ƒ&…'(()*%-BwkpmmlklgnN .(()�*…+„,-' @R<0! "ÆÝ×Ú€×ÖÕØÏã�ÿʬðá鿀çëâ÷¦‡’�sfS7 &Š%‚&�'(%-5thlkjjhidm<-'+*€)…*„+C*-%Ìòã×Ǻ£xW  2ÕÙÙØ××ÖÖÕØÏâŽÿÊ«ðáéæççæëâ÷ƒ \ÿòû÷÷ûåØ� $#‚$‹%&&'$+;qfjhggefak7/'*‰)…*-" Cç×ßßâäêâõLBãÔÛ€×'ÖÖÕØÏâŽÿÊ«ðáéåççæêâöh …ôáëççéçþÐ$‚#$##‚$‡%$) Ilcf€ecd_g= ,%ƒ(Œ), RèÖÜØÙÙÚÖÛ9RæÓÛÖ×€Ö%ÔØÏâŽÿÊ«ïàéåæçæêá÷O §ùáêæçêäî½#„"…#ƒ$%$']eddcbb`_\`L &†'ƒ(ƒ)(+ QøåëåáÝØÚÌ, fæÓÚÖ×€Ö ÔØÏá�ÿÊ«ïàè倿éãí< §÷òùööùîÿ² "ƒ!…"„#$!( +g^b__^]]\\X\*#ƒ&†'�('*jˆ§·ÆÝãð¿|æÒÙ�Ö&ÕÔØÎá�ÿʪïàèäææçåéØ* #=RnŒ§º¾Ñm!€ ˆ!„"!% T^\]\\[[ZYZW]D$†%ƒ&„'"7Gi^ ”åÑÚ�ÖÕÔ×Îá�ÿɪîàèäååèãíÆ �‚ƒ ‡!" %7`W[…YZV] )"Œ%�&$€€+©ãÒÚÕÖÖÕÕÔ×Îá�ÿÉ©îßçäåäèáò¸ �‚…ƒ !"%[WZ†YZX\I $##ƒ$‡%&"�/ ´àÓÙÕÖÖÕÕÓ×Îá�ÿÉ©íßçãåäèßô¡  �  €ˆ… F]XZ‡YZV^% ' ƒ#$##ƒ$%$&  ÀÜÕ×ÕÖ€ÕÓ×Îá�ÿɨìÞçãääèß󂃀��‡# (^WZˆYZX[M #!„"ƒ#$##%  .Ï×€Ö€ÕÔÓ×Îá�ÿɨìÝæãäãçßòf ƒ‚‡�  TZ‹YZV_.$"‚!†"#$JE9.$@àÒØÕÖ€Õ ÔÓ×Îá�ÿɨìÝåâäãçÞóL Mµ™��pR8‚ƒ‚=^WZ�YX#! ˆ!""# FðãàÑǼ¥ƒNSäÑØ�Õ%ÔÔÓ×Îá�ÿɧëÝåáâãåáè8 ¢ÿìöòòöáÔF€€ #^WZŒYZW^?�‚ ƒ!" {çÓÝÜÞäáò¸ kãÐÙ€Õ€Ô#Ó×Îá�ÿɧëÜäáâãáçÒ' Ãçßãââåàýn‡�  SZ�YZW] "…� £åÓÚ××ÛÑ᥄âÑØÔÕÕ€ÔÓ×Îá�ÿɧëÜäàáäßëÀ 6åå€âáæÜìa��‡=^WZ�YX[N …‚ÂñãçàÛÛÓæ‘ âÑØÔÕ�Ô"Ó×Îá�ÿȦêÜäààäÝï± ;ÙÞóñòñôëýJ€ƒ€�$]WZ�YZV_2‚„€U‚�±½ÏàÖçe¯àÑ׃Ô'Ó×Îá�ÿɦêÛãààäÛï›%7Kb|•­¸­' �‚ SZ”YXY ��€ ,;9;½ÛÓÖƒÔÓ×Îá�ÿɦêÛãßàäÛî{‚ '5650*$€>^WZ’Y ZW]C�� € -ÍÖÕÕƒÔÓ×Îá�ÿÉ¥éÛãßßãÛîb�€/A>>?@@?@>;740*$#^WZ”YZW^#€‚€  €?ÞÑׄÔÓ×Îá�ÿȦéÚâßßãÚîJ � >9„; <=>?@A?C2RZ—YX[N �‚�€ QâÐ×ÓƒÔÓ×Îá�ÿȤéÚâÞàáÞà7€ *<9<�;<<ƒ;8?6_WZ–YZV_0‡  gáÏÖÓƒÔÓ×Îá�ÿÈ£çÚâÞàÞäÍ$€ /;8�9‚:;;<9C$ VœYV €€ ,^UG:( �áÏ×ÓƒÔ$Ó×Îá�ÿÈ£çØáÞáÜ罨Ưž~dA1:7€8†9; SZ™Y ZV_3 €€µîáçÚȶ¢ˆ1 �àÏÖÓƒÔ#Ó×Îá�ÿÈ£çØàÛàÚì¬ =îæííìîçǧ( 49‡8 96=)=A_WZ—Y&ZW^7 "  -Ð×ÖÕÕÚâÜïX­ÞÐÖÓƒÔ!Ó×Îá�ÿÈ£æØàÛà×í’ NæÔßÜÝÝßçë6 …7�8 95>&n72]W[Z–Y%ZW^)"F=<74+>ÜÒ×ÔÔÒÕÍßN ºÚÒÕ„ÔÓ×Îá�ÿÇ£æ×ßÛà×ës ZûáâÜ€ÝÜÎ, 84ƒ6‚7 680 0\^ZWVWY‚ZŒY‚Z"XV8`N?:=>??>?ìßåâàÜÛÐÝC ,ÊÕ†Ô$Ó×Îá�ÿÈ¢æ×ßÚß×ê[1¦ÄáìêîæïÈ636„5�659/4R^_]YWVVWW„Y�Z€Y)XWWVVX[_bL!@:=;;:>8OvŒ¤¯½ÊÜÓ) =ÛÐÖ…Ô#Ó×Îá�ÿÈ¢å×ßÚßÖéH :\~£²Ì� #53…4‚5479* 7JV]`_^\ZYY‚X0WWXXYZ[]^_`\P@$!<9::;;<:>*8€9€:9=�  eàÏÖÓ„ÔÓ×Îá�ÿÈ¡åÖÝÛÚàÇ"€*41‚23€2‚345216996-& €"+4<>96�8€98;� ~àÏÖÓ„ÔÓ×Îá�ÿÇ¡äÕÝÜ×ä·� €,3‹2'3223421126898872--,++*)((*-037:;;=;85579…86€ ›àÏÖÓ„ÔÓ×Îá�ÿÇŸäÕÜÜÖç©�.00ƒ1Š2 34310011245€67‚8 7765443345€76ƒ7893€  ¬ÞÐÖÓ„ÔÓ×Îá�ÿÇ¢äÕÜÜÔçŽ& €€/…0‚1‡2‚32€12€1�23445566ƒ5‚6769/QbPF9%¹ÚÑÕ…Ô"Ó×Îá�ÿÆŒâÔÜÜÔço IÔ·²ž„cD$ 0-†/…0‚1‡2332ˆ343ƒ4‚5648+ :äÞâáØÄ² a *ÉÕÓ†Ô"Ó×ÎáŽÿÊXåÕÛÚÔèV }îÝéææéàÒ€ /,€-‚.…/…0‚1Œ2322ƒ3„437& NßÌÔÐÒÙÚãÌ# <ÚÐÖ†Ô"Ó×Îâ�ÿÂ2ÖÕÛßÕåA –âÑÙ××ÛÓî© !/,‡-ƒ.…/…0‚1Ž2ƒ326! báÌÓÑÒÓÏÖ¶ NáÎ×Ó…Ô ÓÖÏáqþù2sìЀ×0 ³ðÚÝ××ÛÓâ”%/,--�.‚/‚0100�1�0‚1221122€1ƒ2314 NßÜâÝÙÙÐÚ³cßÎÕÒ…Ó"ÒÙÎâ?ûÿ´ �âÞÞ½}ÀÂÚãâæÝñs "(&€(''€(�)€*‚+,…0‚1…23�237Wƒ©¸ÈÌ슀ãÒÚÖ„×!ÖÙÊà ÿöÿbY®Î¼.@Si†�¾C.ƒ23322�3‚4€54‰564€-….…/ƒ01. '2E#•ÚÉÐÍ„ÎÏÎàÄ$bÿÿûó£ ‹ˆ—(1/ƒ0ƒ1„2€34/� ¸ëÜãàƒáâàá &Ñÿþÿûÿ×cBC:EDDCDFIJ€KI‡F™EFCI5$ " ‰!""€!€ !‚   |“��„��s=³�ÿýøþ²ÿþÿùÿÅ ƒƒ¡bÕÿüÿÿþÿýøû±ÿþÿøÿà ƒ€ € € € ‚  �€‡Žüýøý�ÿþøÿñÄÊÇÈ�ÉÈ…ÉÇ�ÃÄÆÉ‚ÌÅ‚Ã�ÅÄćà žΖ €   ‚€ … „ � #+')((*(+ &µÿ÷€ÿüûõk4��…‚��� ˆ �‚�!  «îâèååæÜñ�  aóþÿÿúûTLv¤¥‚¦�§¦©¤°‰"l|� ³·¸´¾: $$�€ � ‡ �  €„� "=Pi†Ÿ­¨µR ¡ÿÿüùTD»ëèêé�ê‚ë%êîæú° "6IZn€~  &9::962/+$ ‚ ƒ  �  € ‡ €‚ �  �ÒøÿgCÚæÚ‚ÛƒÜ ÝÜà×ê…  ƒ  (?899:;<=‚> :62.'! �  ‚ ‚ � ƒ �€  %Û�fþú3 »æÙåâ€ãƒäååäèßón  68‚9ƒ89:;<�= <841,% �  ƒ ‚ Š  ‚   <ÚÎ ÿÅNëÚåÞßß‚à�á âáæÝñR  € :7‚8…9ƒ89:;==€> ;740+% �  ƒ �  ƒƒ  PÛÝTÿÊvéÜâß‚á‚â ãäãæßî? €  9576ƒ7�899„:ƒ9:<=‚> ;730*$ ‚  ‚ƒ�  gÚÛ|ÿȦëÛãà€á‚âã‚ä æÜ* 2D* €  !8455…676€566�7„8‚788:;<=�> :63/)# � $  L��|iQ:%  �ÛÜ�ÿɦêÜäàáá�âã‚äæâëÈ Î÷Ù̺«zI# &73�4‚5667�:ƒ;ƒ<€=€<;99‚89:;<‚>):73/)# ¿ìÞäááÝÁ¼L�ÛÜ‘ÿɧëÜäà‚â‚äåäçàñ·=íàëìðóöïÛ4+52�3ƒ47- !#$&()+,-.0389ƒ:€98�9;<=>>??<3  &ÄÖ€ÓÒÖÔë^ ®ØÝ‘ÿɧëÜäá€âã�ä€åäèàõ¦DñÝåãääåâî8 -31…3437�� 49€8ƒ9ƒ:998€9$:=9 8ßÒÕÓÓÒÕËÝQ »Ôß�ÿɧëÝåáââ�äƒå éàõ†Mÿîõê€äåÚ,.21€2‚3426 „ ‚ 38€7‚8†9�:#;7<' )ÃàããâáãÚä@(ËÐá�ÿɧìÝåâã€ä‚åææåéàôl`›¾Øñ÷ñÿÎ …1€2306 † � � 2766…7ƒ8ƒ9!8<.  ?Mbx“§³´&9ÞÊãŽÿɨìÝåã€ä�å�æåêáõS &A]{¢u 1.ƒ0€12/4 € „ �   2ƒ5‚6…7€8 97;,   � KäÈäŽÿɨìÝæãää�åƒæ éâð> �  0.//.‚/01.3 ƒ ƒ �   2‚4…5‚6�786:& ‚  aãÉäŽÿÉ©íßçã�傿 ççèçèÝ* �   /+--/ƒ./-2 ƒ  ‚ �  2…3‚4„5�6:  ‚   zãÉäŽÿÉ©îßçä€å�æ€çæéåîÊ    "2/0/,-‚./-1 „ € ‚   21†344343€4�5648 „  —ãÉäŽÿÉ©îßèäåå�æ‚ç êãó»  €�  ".-+�-.,0  … € ‚   20€1�2332242ƒ3€435  ‚  ªáÊäŽÿɪîàèä�æ‚ç!èçëâ÷©TC1   '.++-,€-  …  ‚ 2/100�101540ˆ31 ‰¦��mR;# €·ÝËãŽÿÊ«ïàè倿�ç€è&çìäù†VÿðèÓÆ²…Y#   +-*+,,* ‚„ € € 0.0//00//32"513‚2$34/9íåçæåæÞÉ�  'ÇÙÍâŽÿÊ«ïàèåææ�ç‚è$íäùi€øâññõûôÿ¯   !-+(,% …ƒ €  2-€/-.20! €)10�1$214+ JßÏÚÖÖ×ÖàÔ(9ÚÔÐáŽÿÊ«ïáéåæ�ç€èéêéíäûP˜÷ãëççìãø¹�  (,) ˆ‚ €   --.--1/ 2/1�0"/2' XõÙÛÖרÕÙ¼ LâÒÒá�ÿÊ«ðáéå€ç�èéêêéíçô;´ÿòúòííäøª  �   ˆ‚ € 0/. %1-�/$.2! 8»Ëèæåèßê¹báÒÒáŽÿʬðáéæçç€èéé€êìêíß( Pš°ÄÔçüôÿw  … ‹�  ,-  /-�.#-1  *Hp�¨¬Çw|âÒÒáŽÿʬðáêæç€èé‚êíèòÍ  2IZƒ2 †  ‡€ $    0,/..-0  €  šâÒÒâ�ÿʬñâêæ€èé€êëëêíçø¾  €  ‡‚‡   €€ -,�-/ �  ¬àÔÑâ�ÿʬñâêçèèé€ê€ëêïæúª   …ƒ�„   � /+-,,*€ �  ºÛÖÑâ�ÿÊ­ñâêçèé€ê‚ëïæúŠ  †… �‚  �  €)€+,'‚  )ÌÖØÐâ�ÿÊ­ñâëçè€ê�ëìëïçûm  „† €     €  ,)*+$€  <ßÑÛÐã�ÿÊ­òãëçéêê�ëììëðçüQ =hH:&  „‡     € �('+)," R¸ª¢�vV@"  OäÐÛÐâ�ÿÊ­òãëèêê�ë�ìïéõ< ºÿ÷óÜÌ®l  ƒ‰       € €  €,,'+ šøãëçèéàÒqgãÑÛÐã�ÿÊ®òãëéêê€ë�ìîìðá*Ñôêñøôÿ� ƒ‹  �  € �&%') ¦ßÒÜØØÜÓäÑÜÏã‘ÿË®òãíéê€ë€ìíìïë÷Í,ßïìïêðÔ ƒŒ   � € €&)' ½÷ÛÝØØÜÓâ‹ äÑÜÏã‘ÿÊ®òäíé€ë€ìííìðêü½ 3ùþþÿòÿe ‚�    �€  €  �$$' t¾Îêèçëáôv ²áÒÜÏã‘ÿÊ®óåíé€ë€ìííìòéþ«h‹®¾Ú° ƒ�  ƒ�  €  €€'' +Jp‡Ÿª·7 ÀÝÔÛÐã‘ÿË®ôåíêëë€ì€íîòéþ‰   ‚’  €‚� € ‚€€ -ÒÙÖÚÑã‘ÿ˯ôåíêë€ì€íîîòêþl  �“ �ƒ€ € ƒ � @ãÔÙÙÑã‘ÿ˯ôåîêë€ì€íïîòêÿS�   ’ ƒ��  €  �€ �   UæÓÙÙÑã‘ÿ˯ôæîê€ì€í€ïòì÷>  ’ ‚ƒ€  € €%  mæÔÚÙÑã’ÿ˯õæîê€ìííîïïðïòá* ‘„‚� €  €* '&ŠæÓÚÙÑã’ÿ˯õæîëìì€í€ïòíøÏ8M>/!  � „‚� €  €- # ¬Ø¶¯’t[C  ¦æÔÛÙÑä’ÿ˯õæîëììííî€ïóëþ¾ ,ðÿùêÝÒ»�?  � „ƒ€ € 3  !  ËêçìëéëâÊ6µãÕÚÚÑä’ÿ˰õæîëì€í�ïóêÿ§Uÿêö÷ûÿûÿ× � …�� € 3  6ÛÚÞÜÜÚÜÕñI ÄÞ×ÙÚÑä’ÿ˱õæîëì€íïïðïóëÿ†rþëóîïòïûÏ  � „�� €  €  €$  IûáãÛÜÛÛ××62ÖÙÚØÛÑä’ÿ˱õæïë€í€ïðïóëÿiwÿøÿþýýðýÍ � „�� € € €$ % ÃÞìêìæíÑ" EæÕÜØÛÑä’ÿ˱õçïë€íïïððïôëÿQ+rˆ­ÂÑèòÿŸ  � „�� €  ‚$ 5Pm‹¡¸� ZçÔÜ×ÛÑä’ÿ˱õçïë€íïï€ðóíö>*_w‘¤¾>?â×ÜÚÚÙØÚÑä’ÿ˯õæîëììííìñéý­ (@Uj|W 313. )651327 �   € € .;>†=<<=;?š‡  jáÐÖÓƒÔÓ×Îá�ÿÈ£çÚâÞàÞäÍ& € 1=:�;‚<==>,¡! &"1Ñ×ÖÕÕÚáÜï[®ÞÐÖÓƒÔ!Ó×Îá�ÿÈ£æØàÛà×í“ PæÔßÜÝÝßçë8 ‰9:7=# !"G@?:7. AÜÒ×ÔÕÓÕÍßQ  ºÚÒÕ„ÔÓ×Îá�ÿÇ£æ×ßÛà×ët \úàâÜ€ÝÜÎ.:6ƒ8ƒ9:3žA=@ABC@! BìßäâßÜÛÐÝF /ÊÕ†Ô$Ó×Îá�ÿÈ¢æ×ßÚß×ê] 3¦ÄâìêîæïÉ 858ƒ7€8 998;1–#$C=?>>=@:Qx�¥°¾ÊÜÓ- @ÛÐÖ…Ô$Ó×Îá�ÿÈ¢å×ßÚß×éI  <]¤³Í�&757�6‚7€87:;/���…‚�%>€=>>?<@  !.?ERáÏ×Ó„ÔÓ×Îá�ÿÈ¢åÖÝÛÝÛÚ6  €)63�5…6 78669;4*• (9@;€<€=<@!�   hàÏÖÓ„ÔÓ×Îá�ÿÈ¡åÖÝÛÚàÈ$€-63�4…5�6$5579::3-'   )18>>;9ƒ;<;>€ €àÏÖÓ„ÔÓ×Îá�ÿÇ¡äÕÝÜ×ã¸��.4‚3…4�5665€469�: 844322110/136:‚=;9889:9‚:;;9€ œàÏÖÓ„ÔÓ×Îá�ÿÇŸäÕÜÜÖç©€0Š3„4‚544€5677€8�9:98ƒ789::…9:;5 €  ­ÞÐÖÓ„ÔÓ×Îá�ÿÇ¢äÕÜÜÔç�(€†2Š3�455‚6€5€65€67‰8ƒ98;2TdSI<) ¹ÚÒÕ…Ô"Ó×Îá�ÿÆŒâÔÜÜÔçq LÕ·³Ÿ†eF& 30ƒ1…2‹3‚4€5‡676�7�8�98;/ =ãÞâàØÄ³¡d.ÉÕÓ†Ô"Ó×ÎáŽÿÊXåÕÛÚÔèY ~íÝèææéàÒ�  1.ƒ0ƒ1�2�3443‚4‚5ƒ6‚7�87:)QÞÍÔÐÒØÚãÌ' ?ÚÐÖ†Ô"Ó×Îâ�ÿÂ2ÖÕÛßÕåD —ãÑÙ××ÛÓîª#0-…/00ƒ1…2�3‚4‚5…67769%eáÌÓÑÒÓÏÖ·!RáÏ×Ó…Ô ÓÖÏáqþù2sìЀ×3 ³ðÚÝ××ÛÓâ• '1.‚/00110…1‚2‚3„4…3„4…56648! QàÛáÝÙÙÑÚ´ fßÎÕÒ…Ó"ÒÙÎâ?ûÿ´ �áÞÞ½ ÀÂÛâáåÜðt %+)ƒ*+€*…+…,‚-€./‚3€43†4„547;Z…«¹ÉÍë�  ‚ãÒÙÖ„×#ÖÙÊà ÿöÿbY®Í½!1CVlˆž¿F154�56655†6…7887�8998†1�2€ +6I( —ÚÉÐÍ„ÎÏÎàÄ$bÿÿûó£ ‹œ‚,523…4�5…6572� ¹ëÝãàƒáâàá &Ñÿþÿûÿ×cCC;EDDCEGI�KJ�FŸEFCI5&"$ƒ#€$…#$""#$‚� |“��„��s=³�ÿýøþ²ÿþÿùÿÆ „‚€¡bÕÿüt8mk@Âÿøÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿ±2&>>???????????????@@@?????????@@@@@@@@@@@@@@@@@@@@@@@@>D9Õÿúÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþ·(F½ôÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüúÿóE�ÿýûñ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷øøø÷÷÷÷÷÷÷÷÷øøøøøøøøøøøøøøøøøøøøøøøøøøøþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøú÷8�ÿñ÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿôÿÖ Cÿóÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿôÿs¸ÿöÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøÿÆ%ôýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþð?ÿñÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüý?ÿöÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ@ÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ>ÿôÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ;ÿóÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿüÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûþ‘ÿóÿýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿðêþõÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿùÿÇCøþööó÷øøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿðÿi3Ëÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýùòÿ¶FŸ¿¾¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¾À½ñÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿüÿº ÃÿøÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþðÉeic08̉PNG  IHDR\r¨f$iCCPICC Profile8…UßoÛT>‰oR¤? XG‡ŠÅ¯US[¹­ÆI“¥íJ¥éØ*$ä:7‰©Û鶪O{�7ü@ÙH§kk?ì<Ê»øÎí¾kktüqó�Ý‹mÇ6°nÆ¶ÂøØ¯±-ümR;`zŠ–¡Êðv x#=\Ó% ëoàYÐÚRÚ±£¥êù�Ð#&Á?È>ÌÒ¹áЪþ¢þ©n¨_¨Ôß;j„;¦$}*}+ý(}'}/ýLŠtYº"ý$]•¾‘.9»ï½Ÿ%Ø{¯_aÝŠ]hÕkŸ5'SNÊ{äå”ü¼ü²<°¹_“§ä½ðì öÍ ý½t ³jMµ{-ñ4%�ׯTÅ„«tYÛŸ“¦R6ÈÆØô#§v\œå–Šx:žŠ'H‰ï‹OÄÇâ3·ž¼ø^ø&°¦õþ“0::àm,L%È3â�:qVEô t›ÐÍ]~ߢI«vÖ6ÊWÙ¯ª¯) |ʸ2]ÕG‡Í4Ïå(6w¸½Â‹£$¾ƒ"ŽèAÞû¾EvÝ mî[D‡ÿÂ;ëVh[¨}íõ¿Ú†ðN|æ3¢‹õº½âç£Hä‘S:°ßûéKâÝt·Ñx€÷UÏ'D;7ÿ®7;_"ÿÑeó?Yqxl+@IDATxì½”fÉuVÿîžžœsÏlœ Â&ì„Aˆ„h„ ‹e’°D[²y,ò�”�¤sLË”h““ ‘(…°"â›°ØfvrÎ3=�þþ¾[uëÝW½÷ÿ�v†"«ûýUuëÞ[õêÝ{_å×577çþÆýõ¬�ukVožu]§Ò»_ŒLTÑVÁÓ¼Ïáæ`9Ú–£Kai<åÁøììla)�éé阶L�¹¾ÞÞÙî®®ð¿ÜÕí¾ÔÝÕý®�O�O~]iÁçCü7¸µk ÊØ»Z¨|äèr0›— WáVÁ-m.œÒ¥qÒä`–× hlñ$Ühô�#ðÏ&&¦~£%1èÎÀþô×¥ºÚßhWW—Ó«=v�‘£ÉÁ Šr¨ —ð…¸”.Ç?ÅIóéî®W—”¾··7e±ìñÉÉæ ®_èï¿68ÐÿÁv.¨°råÊ÷€ñ/ãÚ‡›^ W.qiE(¼Î_�åúœddû7yTË-ÎñÏ"^`»·—-“âò†z¤iSçî¨F`@ø'†Äóîê&a—ëÆ¥.}&éƒË>]%nã3ÿ*'ù¦™U"W%²˜˜˜tsÝ…á•+Ýïü“5L:O:}úôì/|ôg»gfçÜ4òk6§åJ9À}¡ÙœûÁ®ñŽM”ž¸¿�‹V¥?}`ʰ ®é©?_|Kß­<–ð,Û¿’áôUÉs7“âæp²°j=Ê¢{àœ“?*™*šéN‹qˆzÄ0´]Œ�†á¬ä^{m,†å[ʤ_f^r§Ù9ÞØœ¿‡Ž�lÚ´ÑmÛ¶­mW#CÚ:súTwOO·ëÁk·ŸïÞFŸ›™™u“0cã“C?€zz€7B&ÆbBtd ü¿üŠk ªÒ«ài†Ÿ/þ|èÊ[óø/ÁOë Î TÞo!Û•(‹M〷�ØcC£ ‚ÀŠñëÂ4Äû.ɦpÁ0&)suùèŠ!3mþ&&&ÜþâóîÖÛîp»vï®7`‘k>ðâ Ï' ]0=nW£¯Ï�ONº‰É¦â܆ÀQÜÃnÜÛ¨é·í@ùÿ?àý¸ «:000µk×®‰{ï½wjÜ|óÍýı®ºÒ,Vž/¾R~ôg?Ò}èÐ!�Fÿ7뛽å–[Ýšuë"¬“@Z ÄûÞýƒÝSÍX¡mÙ`DÖõôöà¡ôº.Xê9Xçfs Všƒ¶Ö½Zf³k U¸ÞE1e+¿ûMBôÏ egX.¼Ò}7£@NŸi‘‚�‘ë(ªm• „ßÕÐÖC¶º‚Õ�vøN£E73=³¤ÊÏû˜B_þÔ©Ór¥÷Õi|^xÿã?ø_Ö½òÊ+—Ÿ{î¹Õ�îƒ�Á?€ø2ãYåÿ»@ŠS°BãŸþô§›7o®Tþœræ Ú)žÒ¶Ã?|ä°é *Uç>eãÚµ1¹Ž;Þ9a‚Ù‹½sd�ôÃTÞ,J�Ñ’W9ì  :þåÜôÌ4Z4 0ôÙŠ qÀH „ Dʬç¸.?ìµPøùÞE‹�HH™eü!¼°ô!âùñ²5'<º…E—þamݲUŠò‰O|bõ;ÞñŽ)´’µ›þ1$ìfb‹€òcqQ×ï %~Ф� ÊŸ�m§ Ê§S¼ùâ9|HI®«¿c×Þü}¡ ^ÁùHUÕ �Ï?èB¶”";½è;öõ:¶Zr®9Ý,ŒŒÇ-ØŠ˜–.ÆÒ6Ssù+ìFTx-[§¾(7”ܶ:¥m�——ƒöt�clÛ¾C�ÝïüÎ︟ù™ŸQâ]ÐÇŸ„ûT‹@Âï+¾~~é—~i´êÍ߉Rw‚£¥š®Ò;zXƒ×Í„24°"ÑÝ-=ë•Ù'�Õ5¼ÁRë¡Äo)üõÁñrû@�¦!�ñv-Ør�VDSZ\¾ºÐ7Ú ¿¼”<¬åÍL¸oßá #<ð@ÿÎ�;¯=ztEÈúŸÀo5þ\@p ýéŸþé–f'ŠÚ Žæ3\¥ÑUYÇÑlW^‹õW­\Õ¢8%…P-O2Šà’lx(Aš�ƒµä”<*¯’üÄ@ôõ»>\*…Æ…c ÚÅaÆìúöÒýY&5Pñ^Ãúጂu¿ñ¿Ñ÷‘�|DA; w«J-€U«V½ © UHŒö·¼G4M¹äüNpH×)žæ¡J¯qú'N.¼ßnù,&<¼ã+ª­�Q�2¶(OBKJe(ZÖ]‘eA €´2ôÞÚ•‰Ï£¿¿!—s-v_ £�hr�Òw/t€²uŠSsþëà§ëúÞóšý+V — qÿý÷÷cÆkvrrR&C�øK%ÀGU)�ØDÓ_;µ)«Ò–rÍD:ÅSÒœâkÚéS§4x]|Î÷÷öõBa�Ö¡$QÉË`)c 7#7YÚÏØsß>³Zã@lS&e›–)–Ápçsh «Ã+ç8CQj=`6ÃOoú)ÎEÍ`ä2¼®0­¹ëZˆÊÌ×oXŸM»í¶ÛÆž~úiµ ?V2PÌ{• óýœdÐNaÛ¥+ÏNñˆ_§ôÊ�þ™Óglô5÷bôßkTY J •”ª¤\ªŒ†–Þ†kZD«3íd� ¨x å†(�t'ŠõhIÈÚLqÂ_Ì †¿=[ ö†ÿj†·lÝ–-86#Y�oØ â\nm¿rl÷ ‰× ñæ£ø)Ï#‡“EÖqa¯±±– PYü…™‡*�UDò+^X­ÂUÖ£¨ŠåbDpA¼•hZ DÈ(² Ø%ò4‘e·\-r��(ß”å á:ã@„ôù¦ ô™æ¦0tCVN†Öƒ„e¡”7e~ö¦Ê)Ë»cß>÷w>ò÷Üî‘YzöìYwþÜYwîì9wáÂywáüyGØÉÇݩӧdaÚbʱ­Â`µ«½ñ®ÔÔæÙâ-FñIOw´Âp‘Ì_|ña,ï]'Ý ^ÇŽuÇq�8qÂ�>uÒ�Aå_¹r¹ö­åsªøEUööëp¬Ö””Á&x^uÆ�%òcO_ÏT Dì BïÅ•3’Ä‚[.¯”>àЫ3LÏäE°º:ÑN®˜®3Éà·°'o¿ƒKªCë!Ž?43›´´T‹÷9"ÿþ‹ÿ[_‰m�%æšFàÅ‹Ý�ý¯¸Ã‡^u‡ÂÚÿcî$f¼Îœ9ÛQY·™5¥L’HÖä*;Kxu¤üK¡øšïñãÇ4Xòßõ®w‹òÈæäíûî�«„"˜q/<ÿœ{ä›ßpO<ñ˜{þ¹ç°·àjÜ æ[Iu¬$ß l%I!ªb ³ oÍ´”�P)�·0e»Dôh)2bLœr«RØ" Gä@œ‚,rÈË‚"UëMÅ$¬r”B$/ŸENL¯ŸÁà¥_AQìÁà")Ìp,Ô½ñ�oŠ{?XŽª{±iÜtϽ÷ÉÅ|•æýÚ?t_ýêWÛ%]PEÐbr™ƒY†íÒ‰»”НyŸ@s)çî{àÍ9pÆ�€¯ÃåÒûxùÅÜ7¾ñu÷è£ßr_ûZ}e÷÷ryµ×‚B— Á³™F/mrŽˆ©†<-y5¸¨ÔÖz©q(2,‡¢�°”ȳTN�`²ö€ˆ\0ˆ ‹ò² ‚¡L^6]ÄÔ‹Ï©šTñ(Ÿ=PÒA¹,_ s­ÃåK—ܕ˗÷õÏÇÙy¤£œ•ËÛ9·N¶¤ 4ÜêÕk:bZ2ªJ™ÆnýNp:UþNxiÞÄűH�>á÷w`êòºõö}Ž×û?ð·Ý[¼/òN¼/¹7ÊY!KˆD/‘úTBœ’�ˆ†±çÙÄHù©3§²ØO>ÜÁF¯GöÄC”ý–W�ûm¯LfùT±yïRÂÆÅõ ÜÇ­²Ýê3�›a$ pâ1ŽmΡTNÉ¥|çÀO] ’©¦È"·“h‚™R@Ùl),²OÈóáX=¹{÷y]E·ñØÑ#+±®É/•™æŒŸEœ-“vŽ;Z;u%`‰X�:×.�´Ë¥øZ®3P„Ôõ÷÷»uëZAtRÞ”×µ6SŒ\se+*k­”©b–séÔ_‘"!}|û;yÂõa™·paË”#ášNâ„÷2M[±’ŽG¯0ĹË6e~,úºúä9³~õy{â Iq“TüuhÖ®kPô†LŽ¥*"œåK\uÅP O SBSÖeCðòÂãeŠéV®ZåF°íûÈáƒõÇ1õ––¨6κ¬2\CÑÎmظ±JL¯4#èD™T2äÔ "çð®]u££×"/ PÐÔåè4­¿�è‘5A ‚ô–Åˈt­œ½ •)=BA¯B:‹ýç½ý½nàþ×3V r«·¥_•ÚÇ™ý…GxyWa¤cÁ�é‡�0�dln ¸Ï2޽éÄ<Ø n�“òÐÃÖÌ«—<›xSÓ8ìa:Ž“‚�¬Š@oHüO©2šWÔðKÈÜ��Xä²À@Ó*3.³@ÀÀßìG;˜ŠÞ±sWQ@¢|æ�(Ui§hç¶lÞÒ%¦ÚAõ�vJµÜН¥;Œ‘Ñœc  ]st9صñú)D.Šâ…Ìr*€Ù7“¢F& P¿ Wˆ¬·ï›vÝÃÐ*<=?�£Ü |Ë׆™È8•_Ãôé ÄÅM…ðò ôâÁˆ± £<1 àÇ4�¹©>×uK€Ÿ…þßýÇp Ïõ‹ ’²Ó{ШyÅ=…"¤­óȦÀ("Çä"o‹hð’xB‹›0å)¿4ãõ'ópü€z‘[ ]¥èE©Ë¡ ç/”™ØfÒ©ëØt¢T픿,x'x‡sçàaɼ|§woðry^­9fŒ¤²ÿ? ªg¦òTâ`!ø%‰¢ÌËÎ3Ó_eŠx-€iŒ;vqÃ6YYvOdÕ¦1¬éô…"/a”Ž>/] ¢† àI�ˆ?GÃÓhÙuÑ:@XÞhs8xÓ‡ðÚn÷ZxgAƒñƒ¢ [gkˆ†B]ŠHZÐ eb°*ÑG€C‚¥� ,h6àä(ŽÔ¹ÑQ?«4_#@²-.‚:wî\]V’Ƴ;uú¸Kø%áEJ/!#Â[ åg>íòÒ¼å >{!Ê «œÆSb’…¼Ô7I1øÌÓß�á\€ý[/M^JJE¡à žñ #~q1î/!1¸­¹NÏâ‹§ÖÝ@]Á×<ÓFødyYÃt gXÒÉËó“¸âðHC¥ xŒkЈ�˜Æ°ø¸'l èÁ‚ÓiÉ“ ˜ úæBP(l½÷6µRªÀÀ&>‡,gÍ9ø­Y‡ç£ù~»ó$ÉñýµÿÙý«ßûî•—_rãmZ IIJúÀu^vR¬r<�u(§–c--€TÓx™²å¯síè•¶S<â·j ð VS½õ¡ûÜ^ÿ÷Ž¿õý˜G½ë-n—þ§æÕ©ÿÔSOV¢B]pð§ƒð#D¹iuZ` €[SÄ ‹ÂD¦]2X‡%õÐ*©iôñf¦§Žå¢ôd¯qú&�dŒ€¤ãã¥"«£‚8B®²gÄÝ~û>w÷ݯsw¿îõî¬Âjg½_xþ’‹Ë fn°âÓ·4‰Ü´D@™�µ– 2õA,ÕöRù2.ª“ÁSÐÈ›t!�Hp<%gÊ,Hó±Ý¯þ¾K`³G&s4€I † 3”’g<Ø«¨e´´`7€m�F.&ÿ¬q¾›ôE>dÈ“zñ)¿„èùu¢±œ!ÀVÀññãîxÅ:¢qõà‰ 0ìfðèð—^ä÷=êWCòTêN]ÉX¢:ÅlwÓu´šG'8Ä­Â;5�s&Ñwz饗äúó?ÿŒ�sÛ6l�sØGFFÜÞ½7»={÷:Šâ†1UuåÊUwùòå’kÙé³D �8é*8QtŠ$²ÂœÇ, *{2�D…‚`ÝH“‰Ll%%T„Q)™7~D©•  ÄÛPã || E©gšm �ÿ9³ |$‹P.àJk0ÒuÃHÞŒÃE½·@ŸTþ�ˆ¼G½Aƒ@¶>Mª”Qã9zåHz {|‹·VJôÐYvÉ–Á�ÁHŒÁHÔ½èrÙ®_�—y¸¬¨R:ò]¬ò×ñ¶ån‡wk¢ãø§3gÏÈõä“OàÑÇÇÜ[îZ+÷Ç,} Š\ `N--�Êž,IÕ·*ÄÕÖ“pìÕ0ˆD—¨x�à¢{Œ‡—†Y�–<€(¸¶5@:Ž%œ3N W¯Í€D!o ^vFç-b‰1ƒXYŸ¡Pi� 3“u}¼'T�†}å`¶/—Éq¡Ò|\‹°•2ºQ”Ÿƒ|×pÀb\VæÁ�§óie”²È%èâFÊž‘Ûˆï·JÙ`“ºØÆUˆdde‹ÏQ³V–x‚TŒ¢RV²R|2c˜0�û“r1®­�Hã‘å—?(ƒðžÜ«”‰¼HWª€ó)ò«h呼@,m("ò6ZóQP¥<ð^‚+Óû‹v#¹Íø¦Å|\ÉD¡Ép¨Sþ::²j—®ÙuŠ'3JÔ¡_ù€;¤OÑ|ÿßC�ŒxeI‘ )‹)e¹µ¼�¹�4T95‡]€‚Êw7AÊG|%‘Ö“©Ä|S#\2‹S,Ãðå¡ðRþ*#\!e¾*a4vÀ¸\’]üÑ‚ @ S=4‚mÝyœ2yD,3`Ì –•Û òVùA²îdežá¶ìÁªsª2ÖÇS•þš4ù;U|Å;tè`ey5¡õ�iÊÒø¶E¬Uå%sŒˆ!ÁÐúa€P+~9HÞþL.dA/í�k~Ö È›Hø�]˜Ô€NX/Ûü$ÖnPÒÒQÙÅy"® JføF"©#J�+n>�UbÀ•]AžÏ(’ˆe­!/ D (‡’dˆ¯ˆßœ�«5uo}f¢ Y•ábÓ•oÊ'·ür¹^Ë¢¾ÿüW"|1ZI¤,Ä/0�È%â,–ëvq 2ãß2JÃÖ ¨1¨3`,ì•¿ÍKÃÐ"ñ´5 EG •‹y ¨º,Ùo^òIöÓpTÐ4AãuŠ["ÖPBï伃²+ÈÃ}ÅdÅ ìÉv4œì”Pø‰BDGÝÇL<$Gˆ¢ aúl FC. S°*â1kâSÉé„>…3¤ Ø´äÂZ™Bb)„T (™•�…TÏÁâê ûaÍ2OÆL5‡znÅIñ´ÛÏuÏ=÷¸ÿáÿ¾Û{ÓM˜½iº‹.É À<ðóò¥‹rð'ÃÇŽò°Úc¶ˆS¬7mžßÞWɨ¨„LSëÒˆ³ØtòPÅg˜îNIÍ9Î1üÿØ�ìÙ#Éü$+õر#îøñãþ¸etxä2?'Æ4¯µwíÚ„ÇÉ<½;œ[ñ·†\Ϻ7uhÚM|»é&â H`ßMغ{Þ¹+çFaŒö»Í78.Òèá6ÚR¦*öehN£ R%è*”šJ,é Y”Œ�æÏ¬•�ƒi„i·ÊÌç(J'øH üÄ0±UO# ¼èËš‰‡=-³—dªx —eÅã QøiUà2ŽÖ*Iyüµkc®1Ð��Ê`™2 pEŠ”WÑsÅžns8Ç?ôSî¶Ûoœ5Ú²u×Ve)~Z.\pû±kðàÁWÝ“�?á¾ó�'j�‚Þ7™m5G�Ë3˺”{b4M†ú ·~]ñ›ž*¾æ]µàî»îrªüÄ幌[˜ò`Ù¦a‘_xîy÷ôw¿ãž{öY÷â /¸_z1{hƒÒÑŸ�B\¼ŒýÝ+°Óõž†ëÙÄU9ØôvK¯ëéuýÏ4Ýø#®y•‹Ö@×°cÎ�ÆŽ°ËXÁÈnÇ�B2ã �¶Õ  ÌhK£ÕÑÕ Z’“$²A@Y,DZŒ�Ô#_Eg v ,_1³Ô%J©ã9#À.œ”uðU3”$Sv$µ«§˜’—† ¿Àႜ“øL¨‰qu›Qß»ÍÈxZÅÓ‘�[��§j÷Ù¹kWÁ¾Ãûñ<Ôöžûîw?öãyüÃ�ÿ�ûØü¾p¨’ &ÎwiJ-¨tU È4Åa8çêÒëÒ”W]ÞG�Q´’Ë-·–âi$Í··§»¿G.Å=‹½Ÿù·ê~÷ŸÿséË+Üúã¾=Û¿àõa>.HM7¼ÞÔçúoêqc_�rãÏ¡op Æaz‹•Ë''Ý¡#ì¬rÛ¶lr ¨ õΨöh5Iý6'd�JgßÂ*½\òŸH*É€i>i«€©#ÚR‰#ÏØ �öã=¼Åx*Ѐ#ˈòòX±^,à}iM3-C$jYi±�¿túÌwþÂEßEâÇíØÛÂãzñ²=}ò¬ÛˆM_ƒß+$«T±HLˆÎCKeGZÝ exûv4ƒ“zËÜDœôlÍÐß„í¶ŒÊ3õw˜ü˜VÅÛҕĈí\ÓÚ¥×ñçÍòªslºçûY9×®L–f#6Rü½Ÿý(šŽI= Ma nbÒŒ3G‡DóõÅ*£‡b‹˜ ܽ¶Û ¿oÀ­ù±A×!œÚ�4Ø�Zì6\¿â^xu¿;É�<°¿ |Ê[�B’»€s�‡I°ÁÁV€Ï¿Á±Úô"ÃD¢“çÊB2ì…Ù‡=B|ìˆ2•÷3Ä œJLÂ%ÎgN8œÄá#®².-tµä4 {k@c^þb0”¸\=ÏÆ;rô¸{þÅ—Üé‹gÝôZÌŽÜÍç‚ê /Þ.>FtAŽË´q‘›ÏµÈËçžÿ-°´¬…Ï™*·fÍšY®Ó�*>„W�y¥4ÛMK'M«Š·´ª ¯»�º´v´Lo§øÊãäÉã ¶¸›n¾%ÂÚ•%"f¤åøAꨜãõ…ò îÃ)·7…ª Â/â‹pTúoÞÎ^7þí)7ñ8f^ùnÚ: ;v ‰W®Žº­¼Y9Œ>\F N!¸Ê£¥p ¨(•@M~†¸ÄƒÆ Ô:`!²tü ð½®,"=“¡Ï‹ÍzôF@ •ð´%Ð5C�!]õQ�ÉOÌÄ‚ 0Å'/üMŸÂÿì%�…{ëÅñw{Q,Ì€u‡34ú�gó¤ƒéC7ìâ¡ËØÞ=êV®Ô¯b3OŸW|^E1BÈ k˜ÆLÍ’ŽÈ·°Í(sR—IuBÆ4®µßøÆ™)ž�º*ފױ¨Sªº4fT—Þ©âk�Ož<¥Á’¿ luù”�“HJ—[Ý5�SnÙçëÝ ð`ò Â…IxÛò4œ¡ïkÀôºkÃèzczƒ–ÄØ‘qwààaœ³Æmƒ!ðKŒË¼‚Ó��?!†©oµ.N®SñÔ©Þ°köŠƒ#ú Gc@Ç@ †@h!òägxIœ4ä»5F´shÙˆ£pÃnòü…È ±Œ«õ7�kßø4˜g/cd5(>Z{6cMDȸ/Ì“ˆß�!vѦž5—Æ£¾O@nn�ÉÜ–É'ê¯/€AÕ2�õuÆ�÷›s”µœ²WÁÉcb-¿6Ž_¢.åxבvdR± šFóU~ÒT­X¿¯Õy¸ºrOã;öÖÍ`ýýµ± çð¼ëña 9‘¨(ôÄÇOˆû¦vïÝÕãVÿ7Cnâ;M7öõq7‰Ã]ú¶ÃÜ…�E´.œ¸„7ü5™-X¿n Ø(#¶Î­È•møÌå×H厅 ,ÄCÜ‹4àÄ)M!&sqD¹©GîUQ€!€´%@Ri 0ت‘§³ûÃ7٠̾°ÞûX»zµ„c!É78_—>2�u§¡øçx.ìn/fºúÐØëÝÅÇ_Ö°l’¿2@: õêµyøè†]Ý?ê.\¼$†¶d‰IÉ3Ȉ9¼ êלÇ?y¯óUÈR9¡Žtrè&œTåêÊÑÖÔ)ÊBÓXÐvÊŸã}#¼UŸeZ ØÎåx¦4W¹~@€”(ïÆ&¡üp|k7^ÏcÇ!xÀ�²¢éc‡ÏÈ+ÑQÛƒ÷a�ðÖ^ Nº±ïBˆ ×�]@Ak`öpÓ;qÒ]ÆiD~�°!Ó�<&:¼ýâÐmQD_ g8Q )"”_‹U .~bk `i}�Èk”+Ȥ~ÔàˆpY-˦; ™ºÞ==nŽÕŽ¥!ßà¨tøfãé3ç0¸oò¾›©ØPü!†e�»lmá¸â¹îÐ €±nìAWë;H¸‹CV§0æ²v f™¼B–`^ë=jxιV"”ÏåK—}‹ MóÔQs†¡ þÊK/§,Zâzx�‚h-�Á¬S˜…¦‘ýB”Ÿt‡07ZåÎâ+A¹0Ô•3Çë[ßüf <…�ö; ìà[†p¯—»R /EúÖ—;p‹¢=k»ÜÊ÷¸�»ûb· _sêÁ ¡Cßõê‰Q÷ÞX›°v ž®Ûö” ª™P)VŸHŒ+ŒA†ÕP�¢b#�,âú.�°#MÄ Œ¬ â�9ü¹1¤ÃÉF’±2~½yåJ?æá±ˆèC^ññél,�¡¡c¿ïf|]hˆ‡Á›ƒ¦—4’¾¦!؃VïQ´Ðkìƒ{iÌ�9wÞmÂ9{©WR^A•Z@!s�j,¥vY¾ï{ßâvïqûîðgQ¾ �ïÔ ×~9rØpηlC3g®ÒÔ)ÎBÓªøz_‡Ô`‹ÿÏþÉ?ÆÜé}Rá{Fnv;ví\ÐIÀ�<ò�È›Ê76IFÓsè.¼¹÷âL;¤v¤üT,âÆŸQEBø­Þ5ä&Ÿlºk_C·ö­¡å9ú³óóå-tÙü#ß`ÆRØà“a g0„ã•Û—~ Öf=¢±F€è4b@É¥¾ìûƒñìUú¸�QøèXǵLT¥c1â?(>WTBñûn¾‹UÌ|ðOžÄ—O©Ik ÖuhÈG dÝ1Àè"ôìÅ Í'@ƒV@/Ö±NÙÅêéfS*ã˜Gâ´œ>oæŽì8³!%I�M”Ê{àÀ~¹>÷ÙÏJÊJ´zn¹åwÇ�wÊiÕ|ssðŽßóã—“¨[Öèù‹_�±'Ã6´SŽ9„”¯âd ÀB¼Žn±ÊOÞG*Öðf¾ð…/È¥7ÆüÖ¯_/G-óC ü\òÎ�»ÝÈž\{°jj»T6ñmÙžÀiÂêÆ1ÇŒgèzG ŒoƧ³˜àŸ¿G ",H&¡F8AãO*P„)>çôîï—A±¯`�ðt x–þmÀ;áE‹ äÀ¯\Ž�yÒ1Êr‰ŸI#qy ‚ð“e§�4üè}U ÊýÆÙÒ6×Àá™ ¨@ÌÉ«[�CWWËh¼äˆ.šúgÏ£Ž7>êBßø}7÷¸ž54( ”ò��€Ü›ç-<ò•d½ p-À ìÍê‘c.“ÏMÊ`â¶Ì×sôqjY[|)ºø£r/Äñ8»'Ÿ|R.KO¤qX�éC¾~=.¬_xøá/[´Ê°ý8uÅ‘J"$´W¹…¦YËñ®ãK|Mç9�9¼�ð&ây켞}ö¹2~Ök—çB¶±ç©¿Î^çÉ;cøCßqðþ×½R…ª‰Õ£UV[ªüÌ5ÀZ ÕL†L™Ã[¿Ë ÿÈ€kÜÍÙ‚)7ydÚõApû0¢Ý<”Ò[”t¸ �â„B¢ „azÄ °�LÏ:²vª<À�ÞŸˆ½o~ [à‰r’‰â¢% +Q޹ (gM#¦�Õ™ÜAz¯øç°+¥Tñ¹š³%=«ÁŠO!öÅ[̇.c+€ YîL+  &œ-˜~dl%£õÏq…�P0nŸ�<‘Äê+5N9[ 5†])ÈARžBÍëÈáÃ¥´N"�t-T�,¿’È!(òBÓꔿŽ'óMÓObMÞ©däSsPNéqJ‘×Sßá|QÙ�aŠ®±/äסšl* ªL£Â šÅõà2½`AÚ„> Eí»¹Ï­éu“�ùÙN¡õÂL«í£�JS]3Ó GÆLgþâó—ŠÑg8¸€/hÀ4& ?,'€Ò˜@¢4L¢‹üñbõa§ôt±[†v+ óŒ;|ìL¡øPJN‘öaÍ„WüÐàf¶¾’·¿µ�¡D�™æ+¸¡ˆ�Ï#ÔS7f¸,{ âÓ�VÀÔy<{Ì,ìÚŽ�)3 ¯Ì6΀½�@häû íz¹ì�ß°ŽºÓI+ d,N±Ó´¥T~æy2~ À<[˜% Ç�?ÎÐ[‡ 5>? –Hó©R~[†–b °(ud`>HrNó >ˆnÁíh üç)7ö´7FLóοV¡T�ˆrÌ|ô­)HÔ RàG‰M‹å‰%Ä[\hô~“î@Ì�,Z³“³~ñ�á=Ðh`Åe,ƒÆ–I¾ñ©ø·c\e_/ZW “|ЬÄÞ€§²³ ÷C¾ ‰…Ô0•ž8rmßLçì‹´¾h +çÐíà` Ëå]¼ãOÁÌÄ»éè–ˆ]ÝN]ªËá½U&O‘Ê©E¬o©•Ÿ¹žÅ´�òE–:D«)�‹!ŒÒsþž®cåg�RVZ.D‰TÐçEî>h}ÊpϺn·ênÝO­p}· †²Ñ|~¢"�x¨NK955ðöùhÄæD«OZ„c”·/AÂRt+=‘ož1à%]dò]¼vó÷4ª}nøƒ˜Ué—®³Œê �³ŒuÄÖa!#ø>H$Kèài«L‚Ю�VÀ@`NœÂ"±"¬“ÜEJuEúR7ÿ5‡…ú\—suú©ø--€”(�+aœé Uþ:žçÏŸ­Ü £eZ _þúvú�?/„䬂GAá !V8E\A I#v)JÖ$õyôc4|ø†ÜÕócnú<†�t]h%``’elê–h„Ðÿ®Æ¡\–p’±!`P‹ªAÞ'›ÓòV:Äéx;Ÿá™K;ùË)7�éûèøÆÇ[—oüŒª¼ñIƒ‹Ï\Þî̃­òÃE[£­‰æ›´Lô´Š+e#˜8HŠp‰ [\¤ÝªK'/cñÕz7¼­¼àÊõh(üºM@í5 ¦[Œç“q‹°ÄU Y'ír(?ù>xˆÞ²º8ð‡�·Á1ð·:h8s¥Ði3˜á�Ä 8ƒª Od…(bG…UÅ�‚G>ÚÇ'£î¿Íe(Ïô703åý�nêÅ ·ò}Ã2�¨x,?ΩNù3^”„å`L!!®`-&’Dz ‰¢m� ÙËsnòÙ&Z'“nš/Vm¤àÍ;„]“�ס���Î8p( ý�(;ƒš™òfœïGÂxë#Ë9¦ !cŸõ— Ôuaz•†½‰±ŽíL£AÉ}7ïÙÍdq%c©@ã3«­À£ÀÅ�…7%®– €Ul®gQ¤.—ò³,‡,2Z¦Ð¸üáMѸËW xÔVJ!ãÁÅ` Ø⪂¤b$‘·ðW†ªüôÕ+Þ1à¦^†8�åíØP0yÇ�ý¿£nÅ;Ñœ¾ÃÝ–>å_’ )Ž–‰àÒ×-Ái2ƒL†/Ná‚…�ÅF'(>Æ)¦ÏÃ/š„¦yezû ëê?a 7øD†ˆK!`ùs­€�N�•²²¼¤ðéö8&¬uÓúF`P³×üÀàÕc£26±Ó“e™'ãVÇ[¨ÛÔJ±üÎbU9ÞSÝ``ÉT1±ðr%)Ë©üÌåÈá#EfË⬀lõÅh± üa Ž㥌ž‘4•M²Êj”ßó­¸ ê4ðžMÝ8k­€óM×ßÏÓnVcÅÜwíÏÆÝôñY7üÎlŒI }\ó,&1A÷§F@YhYàÇ�Am]`šuò™i7öÍq×<U|ÒcæäŽ^7ôvì›XE&A‘B’�Ô“©Òhdbž¨Á Ló�éÂV„€”}*=}^‰‹…^…‘¿Í·Îà¹Õ+Ñì ä§Î²PÙ—ƒYáðul;eÏu^@+ e´ÊŸæuüØÑ4Û%‹ó!�q«/”gÖú÷îÄK¥!Q~I²RB@Œ# Ê_…DÐ"^QXé¬ÀZÚð{ÑÏÆ©D/\”�ƒ°‚ìòôe¿zÕÍœ™Á9ƒ˜ò JiUy@¯úÎ, GD Þg{z!)ú`Ýıgc_™r3ØÙÈi>îD[±a…;þ¼ïw+0¸7ôT&¥‹JŒü[ò%_å� ·¶Àe}˜V€Ô‹àzdšþË)³D<3–ߣqì(�H"½w— œÅ„�“¥ÇÖ¡�ÇÛÎ9}“Þh-€]»wçŠau†AÅ/"WR…T¼×Bù™×r~ `r[}±æ¿£Ã÷û#·)°^(™;"gØcÀÀ=žŠO Dÿ#Ê“XQ‡<å§{¥ß·ŸY|+‚‚e (/(�t‡ôÈÇ'ø¦,’¨]ñ­ÎïÁ~õ�¯t—ÿõUwö ޼Z³G^ º­8~èV>^þ÷ØWðBÓ­x×½Bÿ»¥¼>-ŸE»¼çFË&°_�Í}.Mêr«6¯t½X€Be8{þŒ›[Õt+ߊï"`Y³tTG˜/ï—q†õžLã” yËŸ­:-7餰¾lŠq)«O’ÁAj/]ZÇ{8ˆFå,fU8=Èñ”ó0휺VP•m»æÿC½ÅýÓÿýwJç:𞸓•-¤‹è²]€ôèwäÐaZ{ ë[N¸K\¹·Á–ô±kxñÌ ÈìÈTñªzû/DÁ™G]Õžèô¿éÞòÖ·I•~tôŠ;Œ�v°’�á:q⸽ü ÏËÊ?{?ãád×¶èö£ßŸy@Á@A�¢S�ô1ó ÁcZ¤+ <LB¿Hª eòìÝÕíÖüô*wåÓcîâ‹gݪ™unÞÄ›ñe®7¿üôe7}jã |­.f¢n0UÎ�!…›Åfr¡øXЙœÄ¹†OŒ»ÙãX¢;Ýpk1XÖÀâ>{æsñ*º"ƒ~ç¦+±Y LDYXf2?a™°(82“±5 ’oÀµt®,ÔxHYÕH1QRú¢N%ŠDÁKº áF!¶&Ÿ…˜¹8�EJëÑ èÒÝVr#ž%0ÄUmÖôw|ÿ÷—”ŸpÊåZöÉ+uÚ­à6÷WìÇIÀ�»¯~õ+î…ç_ÀjÃd1EJŒ8Ï ìı š—ÅokT©,ï­òŸÁWXÑGOÜìí¦ò§e^åî¼ë.¹”Dqxðç#ßüº{ô[ßr_ûÚ×ÝSÏ<'‹SØoåö]U¡£ðˆ{.”µ’S�Ò)~ £éTù•¯¥.E²ëÙÐåÖ|ë>7á®<…³.NÈFn*aÓó¾Ipåsh®¿ØtCß‹•…0r]}`Nþ¼‚!`±õ¾™ÍôaŒì?…#αqÆ�‡âÏ5ÜêÃn`5�Ì#Ó.]¾ä&û&e¶dÅ50Ïï[z ˆ*«Üó"c8ÍËGðàZžRº%Ð2[|Öô`T„OÈW¼ŒáëAÿßDc³²Qè¥Iw‡‹rŸ€¯  ("ÃÓm”²“5ù䓺��ì¼K®}ø¿uO>ñ¸û…�þ|ŠÖgWc1.kTYÔO3¨RþÏÆ«x§.�y|O)ã8øQGK’4�¾÷}?*׃>è+®ï�Ðý­þ”ɆÒãÞ£ðÐ%਒è!Ù_U~òP>)bœxiZˆwa�üªŸt“wöbmÀ˜;}¼éÖ¬X#oi1=41ä.=�Ó†0ÐÕ �¼ãØtýõ<Ô”·:sŸ?5ƒì‹Écxó`sÞŠ�!7¼j¥±Î·³¤â�N�ŠÂ¬Fë‚›—ä;¢ÉÀ°UAÆÅÕpøqF(‚£x4¼¬/Û P¾òlAÅ£ã—Ö‹,TþØ:WzƒëFß¿±‹­øwb@ÝÀ ø`�gSgÖµÛ° ;NsŽr˜{Wár–§·53ØI^Ú h1©ÂtRÅ©¢­‚“®.MÂáƒ5‹’ÓM7—âi¤Ž÷Ç?þq÷ÜsÏa# þîÁ¨P�#‘/2Ò·�€TмT²Ê‘­ –Ñ<›¬È £WØõí^å®}Kn?뮬@s}­LnF3‘Íõ+/]qS‡1>A—�p�1î–›åv]\Ó˜§Â®Zå†7 ÇgæèÕÑQ7Åwx9¿©!«i|Äñ­+cðqã¢ØLЪa˜¨¬‡ð†Žizï '®Òiâ ê°#¬ßòš!‘yI>Ët6Ét=XšìÃÖ`@° ]™Éç›rĸoD 4=.ŽIêØ5Z+­Üf›�B¥¡Œvj”ÆúÛwp0£3—Ó‡ ¬rÈLS¥T<õ«ð«à¤«K³ù9Š'”qU Ž/Ù\Ã)«¿ý�Ûõ­ïCÿoCÜIYñϘ’CGÁ�G¡¥cØ$y  Â!0¢)¯�òk¾Ý˜s_ù·±¥c£ÿáš;ulÊ­l c”~…v«Ðg_sÛœgñ‘Î|tõt»!¼múpÐhÿ,-F‹kŠÄúŸÂy|TüfWÓumĨÿü)Fìzˆ£^iæôEÑì͆K*—¾�ðùèæ ¬x "¬ºŒhP< :Cã&|B\<5@‚ìºq0Qcgh°; w­œu˜ÚìáŽÔ…ÍÖtx¨G�“û.ÝX5¶oßT§kÊN|³W2íÇ*¥Í´Š® NÚº´4ŸªolCì¤,ç·~ë·ðm6lL¹ëÓ±Už‰>kúúöDšYà„–ÄßCY ‡ ¿ÂÏhL”Eš®xêW¥+½âÁç`æÚ]h |iÊ]x좻zvԭ¸ßPÜ:Ê‹õÏKß>ÒħÆàš„‘¸2†³M×½]�ÐÔ¿}Há”lLž¢ó¼Wi®‡B’·Wq¯£ÄWUBÆõžZÞþ,"߀«©ò3ýŽÄÎ9kqëx*-q¢;ññO|ÜÍmjb½?çh½‰LE‰¸*qxø³a2ö„ µ:+€6UyfÃ)Ž 2á6¬x)LóC:›çÃ?Ò�>úèšp—÷Ãà�õÊ›�� ¯ÊÏ:ç´ÐØøšùnzÍ´|ZG÷a"¿ õ@"Öd¢å ¯II+ d\‰§äŠoi5œâ…¸�:©zÄí¢ ÒÞÒY#ÂxÆq]@?^¤S `+kÎ_IZ(7™©Sjº.•;‰…¶sÃÃ+Ý{éêÊUÇGE¼„“S¦œb’(‡»8iªòàðØc�ÊÕÊ£ ·°¼{:Ö¬^ƒíÉáKÇ­ˆ%Hn @ ¡ƒHÉt€/(óUò*üºü”æPÅ€:Z®äò_^O<ù„ ŽŽMº&¾SÝuø¡áçª!d*ìÄÒ¦+ÄS¦èT05L_ˆ‘¤8„Ñh(®…kX}âÒi\SxjÄ£,ì<,æÃKaÁ—&'î“kÄÙòœÒý)½ò²ø ¬¤.E£Ái4$1â²~Y_„+ÆéçUX BËébœ˜�A‹|K ž�Â/ 7Ù ÀX ™<ׄB^�XÓv @ÙÌßǧç05ÍëäIdܡ۹…mãÄÈJåçù*]ÝÛ¹’h UüUùÉŠëù—Â5úaëšx°èZ]Âþù±¯cÇ>[ÕR7”[+ŒÓ©ðkð(Ø£L§°*?å˸²4¹Ä,[~Zv d:“ —«Ó ë Ôƒ(ZäÇ@P8Ëa!%�ò&Dâ<ÿ�Œ[`>/ánUó',E<óCܾ0(Ø<ŒêÁ`àä,D]ë¸�mØ-[�–:i´+€Šn ^ªˆ-P…[ïTù™ÅñŠ5&ûŽƒ½Xõ¶jÅJ4¬û$>p{Û'žÄF#5î” “³• [Á"ñµ&‡ð×ÔŠÝ’­)ÓÇÿP^¾ýIÁo º†A ±Fõž*½Å‰£Å%̆%Ž ,–Pà/2"q?˜gñY@CNŽâVJPÚÐ BõÌ})Èú]kB+K£'�qŒÄ¯ ˜Ëhh _Ã0Ï€èt¿@]±ÚTE™´J¡ËXK;ÕÁ‚ˆùäØ�å�ÃC ¬ŒÃN¸iŒø^Á!Wÿ혜h+@ÖŠ•% ¡ç›B£QùI¬¸i˜q:MBã>u‰~5“ ;ä+Ê�Â˨1ZÝñðƒORFø¢¨6 ‰’~Gâ'­?C*AâZ|;†¥„ m¡ÕVG‚Û‚'¥iù‰­Îc›0�YÅ‰ÌøLüõsZxïo�ï+vVš:½�—ÈeWż >Ÿ·?µê€\Yæëïê¸Õ¡5pÕ¹ñǧݰ9…­³Ñ©üÈsGDêÞ©ü"x¬A¶ˆ£ø‘A&PÂÆ¤:�¢i¾R6ü°Ç3;-F€xèAÀk ®÷2¹_æ¬ìmQ,r’xŒ‘Ê» ¨To¤³|51'©ÀÓ¢Ø�’h–âçèK刌øÙd9D”kf'1½÷Ú9­õË9o SÝe(l5¦ëœÕK†ë± 'KhÀó V®Š÷)œ¤'—Ì+£‘µ5°’çÂCï›1@øoÆåØ+ù¸¥JŸ�º‹Ê`›ÿг¬>  k—‘-8qÑìGyõÃ6\Ú*clÐYtR[<š¦ÆF>¬GDê °Ž—ÂOaD°–¤Àx„Å9Ô:~G€ëx\˜xŠ®SoåªeØ6Q ª~=ÁV¬¨Ò›zÊr*‡Äìª PŸoF¾:_’ás† ¯w¥»†M0“pôÎÔ›>>å†káñ oq‰ìÄ€ÍÑâ0L=µ0âVÁ™ÖâÙ$¨î§| JTd™.`2 ÀÛ«jhö�„J¬:/7ÂiÓ‚�Ï„444t:µªxZn‰û (/2"¡8¤cØ'3V8Âªà–ž•x{¿Šh©ãh<úŒŸkç—˜¸yjÕð ÜVšAJ9Ÿ8 ·p·m{y`¡œ² Uà4¾�Ìæûögž Y°�²‘†­�•Cƒ®å¯^“%¡.\s+�OXÅã¶ÓçFa¯’‹7'�•6È9þ–æSÉ ¦K¥ã:ˆ¸ ŠÎ*´âÄâÅ@Yá”Æ”S  a W<áxÑ3l%‰?YX*?ÅËâ"Ñâ×8~1ˆ§MÀ…õ"l®Â6ê ë×b 5Ž?צ“¡é<È-�Û‘L.”sÖt¬Ê(TÁs<«p~+ý^kÇÖ@/Zcl œnº«ØI7õ*–ËþК„”VÈ!že|R ùlsϗ¦pú6Žh½ ’Z#°‘¾-_Í/æ0Ä¡�rzod„@�ZœxïZ.‹O. ²¬c�H$:åüÈß§Vò“؇݄¡O[z{eø™Œ)*œ)<"$UŽœ�·’¯aÔDO]¢[Wf™ ÉýF%Ö{±tš¿f'¾ bŽ–É9¸’+OÁ0¤àëÉ3L�Dq?s0†³ý¿‰&¿Ç‘i8›oíæÕ˜)Æ"WPžºuök°Wà�7?X!«l.œÃ!µ‡ÝÑ#G×µðˆ{îq9súŒã•óç¢Üëæ"}Ž6sê[]y-n‹XŒÂχ¶ ×Â�Ã’æÜûßÿ~÷÷õ’uþr¶©<� =}×IT,*•G„ófZà3°Äöïw×xü·qªðT ô³ï·Ñ]¼rÕ��À!ŸwS¯4Ýð»ññ�­� ¾ý©V8É�–:Å᫨…À"·K·¸I˜yäò6hs˜ÊêÅ÷²¥€rt5ZDÀ`~äË{ NÞ¦z?ªˆi±µe¤xªÝ)^dŠ€âªqc@±[|)S‚–ƒ‘�¡<ñ¸‰¦>¿è0ßß@?͆UÒäOëpVVj¡4kfæÝM{oÒ`ô)ÇjÖ­Ûàx½;WSÅdëàÉ's�?ú˜{øËw´x-Î,´›‡b¦ ´yúyŽVIót>oÿ”/•:ç~ø½?âvìܧývÄy©Kyña¼ðüóîÑoË=ò�¯Ë¶àv–—egEo@…_íÇñÛX>ñöÏ�¾ŠÏ^¡5À�ˆØc£4sú”—BFŠ·ÆÂ-�„ƒ ¥ò¦xÊW}…«_×t Æì1 ÐÍ]‘�:;~xTu^n¤“�ÀÀ¿d8ÚåÉbUÕAJ›ÅU úžß ¾ÔÜ�ÁEÓ¿|�¬^»«DWbÃqá�olQä7…4�Qú½}ߥø|"<¥é�7?$×OþÔ‡Ý{ÞùC-F"åWõ9ð¯“x­H•¨ŽáRãÒRò#©c>÷Ü{o .Åse!ìŽ;Âú#?#ß ø»ç§ÜK/¶Ûwí¥på (|£ß]º2êÆŽ¡5ð ½<íV¼c8X¤ÐªP”œ¼ä`¥’wQêw@bQd%`0ZøŽëdÆ85 ©òÍ´„‚eP<õ «RÐàÆ` øê‹, <ò Œe@=u…M%"/2¾^Ü<0íf¡ÉîY‹/êPñ{aä+xø@%†Û·ïöêÄy¤ðgçÎ\ëÜìr]*W2VqªÞܧ]!ªxäèR¾HÉÀ°uë6·r¬â�ò±yÙ4¶ ØtkkŒQP6¬]í®ŽõKk`ü‰&‰à Å—VBÊXx‚”DSk}’æò3DsWçÜÔ|ãàUù2«VËNúdcŠ ’í†"óÜ„:·s÷H]r)�r›v(—Ú]Ç@D·¥Íá"UäVþ§d¸œ~®¹üV¬¸ãŽ}‹V~Í/g`4�>ŠÌ 2]8ˆñ�KWÑ8ŠOtcñ›•Ãïå§ÅËrê4ÜF𫨰�fË@7þø(ˆ]ýuV+Ÿ!H}7ÀVNµ:Ÿ[mƒÛrëp!×ô«Snüe�#ûpÃXð%_6Ò3÷Ãve¦•nE`ÝA ¤Ý]ñqN«ØÄk縸“�nï` @ÎÐäò_ЩRç @XŽþСƒ-è´Ò##{[àí9þ¤i÷`Ř·CHÞë16ÐÀü0ÇƾÕt3XD´òýhR†éÂvåjM�9tžDØVª§¼ˆ/oÒö Búš¬[˜äUÊÉÙ‚s—®¸I'=ƒþÛÊw¹Æëu}­-¡¯}ñ¤ûÞQÓø×¹ª3A-™Ÿ7Pæ¬CS�|NóR ÄX°eÓ<ÅÇ3àW¹|wl«7â3ixFtÒž yZÙ2Å(?ç` fkvrŸƒÉL\¬ãLU'ngE‹£Úg!"TâQ§`%DDæƒ{¢b @nQEß*8ËÅ´ÑÑúÁâù™ˆGšä�. - ĺÕ8O nú>²óc8lD¢óü¡Tgó²I|j |r"˸w:*DéD$�.ÿ«qÉŒaóøŒûÒ„»ö0”ÿ¦ôfúäû~[±cnÞÐñÙ™LyïÙ?.¶Žä×NÜõ{ÿRæö û_}õ@[º>¬T}ÍfÚ–¦a>oÿ*%=V±`j¦}‘ŽyÎ`íÀ3Ï>Ó§f°ðª6)ûÒ£ü$9^};Ñ×üa|o ]`c8eãšQG[—ùš&¾ý°+_ 5‰7`�÷—«À¦Oθ©§§ÜäaààÐY³¿_@—�Ä`GHµŽŒåQP鎃a$ŒÆAüšæ¿ àçãð¸>æFFFÜݯ»ÛÝzëmîö;îpûpuºgŸ2Ùv@y­Ã§ÇªtFË3¿ãvËb3�=q«Öü§/|Á½ï‡ßå¶c$TNÞµËíÞ³ÇíÙ³ñq�DU~ ÿú׿î&Æ;3&Tpv=dÔeSǾá(x\Á糸kŒÊ\õ£ƒ®g ^Ï”ŸÕ“x™j…+CõI§¸ Ëù)ÿN³­Y9 „]€NòJø,&Ê*4ºXÏ*S¶™Ksnâ;ãqdŸ­ï•˜Ò“ ;¹&M†GÙ: …² vãDEáçÇ­ìØe�'TïÙí¶ãpÚmø�'gŸØ‡ß�Oz5h�÷ê�î±G¿­ÑJÓæÍ•i Ih1ª a6_šª¼¨p\Å—sc)}ú»ß•+Mg˃_ Ú²uK0;×L«�àׄuÕ¿ð)ymœM=OΜKÁñƒ©É©–éAåcý­[¶Úè¢Ã-`>«x>k°îŸgèGgù`ÙûçMò¿£›�Ü+–qJ`´µá;… w„R2Q$UVK³Øþ¿òª:@Ó—Ãç`ÏÄTýɰ# ð ½|ä¤Èê0§lÈ‹BåKÒ“Ò¥Ï^qRxB–�.„F´œ™Ç2#(¬n(J‹O‚*…Öæ€ÉBèY'¥…–\`XŠ'È ¸ /)[+Þ‰.ÁKÓnê;øì¦ÿc·ëÿ9=Ë…ck0@Øè÷­��]ôJUš”máÊ_âóZl`Ã| `‰Ý‚ @§åÈŠv´§OŸj‡²dé|æ“Püqœüƒá=!ÂÇCWüWý®oO¨"ñ™Š¶#â% 3g”Ž8Ö)\}›6ï0 FFUΤ… = wÖxôZ¶š]ŠoãR4…°89>-°A@ëÆm=˜Šív�`¬æÆi8S>‹ðä´ðyùÕX¯Ïu©<œ“2‚E»t-fËý KZê5,ܲ€\ ¤Áâp‡Þ… 8§é5pSMÌ)ËÈ>øØÏÇ ËÐÛÐÏ¿“mÿP• •ƬԠPÜ× ìEZ°R"*®R1µ P&’7¯¤_³V?ð�7}¢%ª4- XÞ¹ô ¬­�¡·ãl†W±:­ät º J<õç2öhL`l`- A?�WºçÖUï(fJ³< ­[—v K©b¾<%^W~î»sË»€ @2�#žÆ°¤x}EÖò ÜÛpƒ÷ö»®!<\û|)Œ ‘ü„׿Uâ(>‚âҸ¯‡/eKÁqÚr!ئk\ï÷XRlF?zß–žubãä—º4�ñFšV*ˆg* ”£ï&œâ´¡ßM=…%ÂûGK€Ý‚LNž™t§Î¡K€Bž­ ¢<Þ„qˆMÒ¡iÑ ‡%Îg @§™ß0@[_}µÓ²Ï�S:ã2À–¯Ç ¾}}nð¡~×»1ÙñGî|ºúì5\Õ °¥Q\ « Ï·ŠGGpÜG´%?޹ÃñÞªv B`Le†ã­‹¢iš4N$†>£é ³t (®ÄÃL€å§øäeœ ”ðHËâå�3oîw=;°zó»8 ƒƒýØ£Ñ�.ôÔ!|üå ŽvãØ¦ õP�Pªð¸Á²â_D,XÞ}òSŸÂá4+åt)`#‡}âc6\ÆÎ3)Ïâï.^¼èŽ:äŽà³áÜ1ÈJ?‰ƒ@ÏŸÃñËhâU9Îçsݾ¬àãò”ÿ­Cèç«âSšø°Õœl”aºD&¨b(Ì|£Zâk\ýÆø²:½/Ÿ cr üÑ.@š?ËJ§ Š`|ñ*;Å!ÃgØ@À•VQ<.caKLˆŽñLÍ�26 Ù²éÝÙåzÖô¹Éš8Úq>wt fÎa·ðq´ÎNºÕ0«‡9Ça"èŠÖ9ŽÛn¿]Öp}¿u:xHŸ§ÿÄ:~ã‚ÓÛÇŽ…¼žÄ‰À§ý³%lNóiƒÞQrÖtD¹LHUßxý÷|Îó»Û?¨ï}[)w5Rgau|2` PÙÇQÙÇOwû÷p/¼ü ž>š„xVƒ ¸Æ¸õ~Q¯¼–#‚?!Ò¾hŒ #‘éa6€ò'8–žaÁI€>»Hº®OY‚_ÕV°Š2í[s]8€ÊJ§e±aCZÒ³‘Ò…{‹IB«7�W2ló£y§4iÜ–WY'àuQéßÐçz7£5ðÜ4Œd]éþ»Ð8Œ±� WÑœr«1e¨c|ósaQ�Û†yíf½(—ì·ózóCµ°ã ?þä'Ýg?ûÙ–´ êä¡n§°ÎT­ÑÿÁw¾«í=mÜ´Éñº÷þW Ã'>ñ ÷Ëÿà—]Ï=³Pþ~4©Ù@Á%ra‰JÌUkª£ RHš@Ö,½m�Dy)ŸÀ¦ÅcºuJga Æ6(…C—,4nÞþ1kMÓJѪˆp`’ÎÆeýŠq „±>œ…�#Ý+ŒÄChDnè3 ?¤(E¨¤�$`b�'Èú£Âš&§qŧoùÛ°Åé4,erâGT>¬ŠT´Œ¦ ¤‹Rኧy�§Â”¿Y,<·ôZO„+›Nx SúÐÄr)¸¥ ‹®�9׿¯× ½Ý�5h¼ î�‰~ì-à´!g Îáë>Í6Ífµ{d„Þ’¸>nÓÎÍçsàíxÙôôñ۴ʰU®J¤&œFß(u{öìu›q2ŠøÀ>€c¡qb ¶“–\˜¬ ©€ªp’P,! €‹‚)óAÖ„ Ÿ|I“£Ó<+H,8 ¶|,¿ Úä6ŠûÓ{g‘È–|åÂýXD`¼)b Ôz)“I ið…¾bУ ùQf ‰é¡„G˜"Á×ûZ7oÂõ:ÌM¼ˆnŽõë» 3}M|æ ‹‘�æeØmظõbò4ió ¶o ¿¥<È–oAÀ2XÊ0Oé¹x©u ÀFí´X÷kÿð×\×e =Ùtr0&…„ž!c|ÖÏZB”UMŠ…Q�ˆ¯0Vù™”Ò¥ñ‚܇˜®86_ kzŠ£éZ,MWþ¥x@R Pžkù]T0/ø9¾L§3ÍFÕfxzB‚S|F…·&„¸FÓ4µ< 6–—¥Ó°ÐØl ºýoDk÷~4ŸG«|Øh6šîüµËn*3 ȱ¦¥rÓ3í €~ p©òT>úø5~]ý£Ggó_ª5пüK¿,‡IL<޹Yòœ`±`›fñ” ÜûÞ€x¹Œ(AÏb~š@ºvNxIy( ãzYMW?å_×4­Ðò~¢âj" 0'Ҕܗ5ÄÀ ¥N”�æÃ8Ñá™!À°â2‘ñ˜Nœ�Ûô�—”!àˆgù�ŸJ”7¿´n€Ÿ;„–Ö‰8Ž ¤ƒKÕ`è<¶1·s;ñ[·  óœK] S˜Í9ö·–½ç=ïÁ‘aëÝÄA|îZ”È��– -D`:F *¬ÄU”È  ¥ <3(>…$™b·ú)žÆ-­ ·r( /ö½yHˆÒšº().Ó °>9J<øŒS±K�â.éüAfÊÀ¶´´, ¤œwŽ63 º±¤ÿ Xz€�cÇ®z„´Ÿþ{¿û»îÑGÁ-´ajøç‚Ï>ó N§Í%•`;v.�¸¡¦O�jd-|õ+_q÷Üs¯{àÁK•RáƒIi¿ûÎ;Ü_~õkn­€¾]\A´Šm” mÆŠ”Út)€Jb!*ñeIÅ ©U””‡² ?f| �lm×2�/Ë¡c ³œÁ±ìzå‚[@.ábm=)/øBÅC^ð/ÃÇ zN (ÁñP;r_yÂìý™ó ˆ¦å\¡Ç�å£aúÈKðxOªd¢Œädœ¥f�Pà™æ€ åËáÊ«]œõPGKú 71œ>ãxYðš�ÇIŸ/¿òŠ\UtÝa fõŽÃ‚rãu� ŽE(kl¿&×”.È—6töœ1»°žÄ޾_zA®�ÆaÆõØCÐ+3 shÿžÃ¾pºŽbæqÌ“‡0p­îû·ŠQJ›h/| 6J˜ŒJ4GŠRZ$ªRÅ·>“ˆÂ‹®@õqþjùtÂsÎÒ™t~:kú~4ßÀsj?Ù¼§­àš|O ¾„•™Ø24aÖKÄ÷¸ÊË`•î©”®Ù™a°�îŠ%¶_q,Ì„‹{ Ù[£ ´ÆŸC“úU0NL'o\ÒßN_3\ÌåQåg @òrÂihÎÏÓÔ•‡Æ¡îd!~(²yaZZ½ �®„•s†éD˜Ñ7%Hº1M°‚’90¡äÅW?hM…O�‰’iž�eô˜¾@GÅŸxGœ}'�ësÓø‚?bBÇSu¯ýkœ‚´z{#°úAì ÛÄBÑi¦á~¤`Ű÷”¾ý‰«øâãg–†>Ù꤄S\ÄéH'´Á aI’4Si&ÍÒ×ó¨ïÿgú®ðöç\ÅnAár]~¶nÛºlùÞ0€wxñâ¥e»Ñ”q¿i  п7i@(O]ªønã$ÍĽ€€”Øj@4�”Ø„r‹‚ •i9+2]�›9ƒO–}; ŸÃ@Öì�l]møg<Έ°¿ÊÏR�~e_ÔÇ¡}nû%¼ …f¹WID _LýE&•Šx$�ÈL” %ãb4H~ °2y3]�ð0q…güYLÿÉ>�`'†–©ß�ɺ´}ûŽÚôÅ$^�ëVðì¶±±k‹¹—yÐú£ ¤pqÚM<>îúvóðH<•òÂ.Z›¨¹„�B¥oŠî‰È $‰o^ (-¥ ¹ò#~ÈFPÉf¾ô3çfÝå?ºêæòC™Ýν7CÙ‡Üwÿ6º˜‘{eßòûßùn7‹øËèJ=þè£nìscnvl†€F€Iœ‚´Ü’ `ÝÛ_q,�òaš†ƒ¯Q!“t“À Ö¹EdXãLOóÒ4òË8®mbo€ ï á¡¡Š�dˆ—´cç_a�Sö\}å6åðËk·êXÀÀA´ð±Uäø±¤rm@ÀJ³�…´FC˜ƒz-�Bj �ðÁOÊ[ä|ð˜ŸsWÿlÜunÈèó|­¿§Ï}õٱج½€(4z\Ô²ߜ۹s·û�Ÿÿ¬;÷õs8Yc#œ&µŠÂⱜT2FbëHßÀ¦`’®ñÐü ®ÀÈ �fÜÓŠgàþù„ŠQ8QMXpB\~=9]¸G�é=•º�¾­•x)ýªU€�å¡JÖ¶ÅŠcG¦�o„ÅA*7DVö”0•n4y¤åKP(´Ö¤Šàšˆ “t –åMß®ôÇòõ$­¿È ÙÇE_¾�[¿i³;‚·>�¦Ú‚�J¾íí߇q€Uòñ ~?ñÐ�ý’ö©?ú¤ûÀ�ý¸ëéëw;w�¸]h ¼‚éÒ©—§qþ~!"±¼¼O)~ƒH¸$iéb$óö'ÓG}…‹o€&i7—ËI¤¼ã=ɨøcÓ¿ nÇïðã¡Ëå*9Û7ür†”gÕçÀó7®™O�”o>¶š2€u#˜`­Ø, $”/Õ}I4]*½¤3ã*# ‰Å‹„<È7*SȃNyÑWáÖX8’¦�Ϻ®3 ·~í:7ƒM,üÊ2Wª½û½?Š/&o…ò�¹+XÛ~ ».·¡uðò Ϻý¯¼ìþâ?|8ïÇ”éV²ív‡tã˜9ˆ@‹móK›þÈŸ·$÷¢ø¼_ùGZ¼ý˜N`p$$\ó`8€"A•ǰ:¶e�°òTÜàsÁÏÔ!á±-0š—/¿vƒÑIqZ¢Ë¹€™U€–’,�*{ŽUý·ÂÃÎ.L[3‡±.àÆpÎ|ì×jÖAK³4T W��2ªt’!Ã�6ÄÅüˆÐ"��I‹ ba!<{…Aë}ͺurvâ0N‘¹ã{^ïúú{]Ÿ[?°VÆ=ˆÎ®Àž[÷a-úUwǧ�Àñi+†Wº!œŒÓèk¸ñ œ3Ds˜Eµ Š/YjA!ÓÔ1œÒ)â(Ÿà[Ra¡ˆšŽ¸Ø]ò ©‰éʈ×!Äý´TÑ犿&Îpa)þŽmÛ]ƒ«þ0P娂Z…ú9‹3(ùAÒåv\M˜:ûrNÓæ_rÀqö[æëxž_áTëð=N$+aôÚ¨¬h.á)«š[,8¦þÖ­w½xÓñKHSS“ø<õ¸Û†AB.Ã~î™§Ý›î3¶àCÀé™l¸¹ Ðõiá‘+Ë©7 *žÀC©6xQ`Gý€.™NƒA?àˆ±±åQÆE,ÒE>ÌÿL… ‹OWÂPîÀ²ÝË—k´l~îçÞýć~Rê“uv‡Øò�Z1 8Íêäñ2¶rK„ç³Ø'_B×qÿ?Öq£OñeȌʳŽýÔBKEÁ\ÂL«Œ ¢<´PR] ŒI[p”ÀçÇX]U‹þ�-.î/ïÂ`ßPT~nemâ#(ßþÖ#îßæßÉxÀÏÿÂ/¸»«WGqÞZYpñÂytfŸ`núx eM(�?,§„CÙ&†&³¬Ó·À%ŒåGß\ ©eÆäé‘GÈMé%�8 xÔRXËá“å—sþ3¯ VüɨàTA ‰Èàû?ð£Ä/õðº÷¾ûfiù¢¢œò”ë£0Ç §zl8_ix;q‹9¤“AùP¥ÔUðNn¢ Çò<‹‘êÔýÄ?(ÊO¸¶,6¢Ây½éÞ{=5@§N�t�}ûQ÷ÔwžtÏ`«%·[rê«�cÿïÿoïM€5;®ó°ûÖÙ÷}3 @€@‚›R%Ú2i+RÙUV1”KI\¶R,³R%§bYޤ¸Ë4-'U)—³D‹)’Í(rR”,YVÜI€Á2û`ö}{û›|ßé>}O÷í¾÷ÿß¼7ó°ß»ÿí>}Îéåžsnß^w€ïQ<¬ñoLT#VaKiPQØ(oôR�èÇEyìl P =-|Î)L„U~W†>,7ÀHK¿ç”ÇqÊþ®ÃVØ£CÕí›7Ðä•zãø˜I@CË9ÜR}Õšu0£ÕÊÕhñ Õ611!ûØsëô»ø<˜�›¬æÆ‡eÓ §PÈLPþZ™%›>ë’©à7 å8ŠW<�³oÀ4ºö€Z�¼‹ßçC+‡0Qxx$¾Ùû/cþPþÿ®` sZš|¨Ó-Íú-8›O>¤í?”§ƒV2›‡Rù?ñ±�UGŽmg‚ØÝ‹´€&Ü0q/wUVËÃ*»…«ÿò妸‘X£‹÷”/{»ü'~B. ûo}á Õ?ÿõ&{´— ãû{ÄŸ‡u¾}öN5�ã¥Vý9 R�¼ú›ü”¹¬àè㙾†äÍ­Æ#Í€ É�K‡ic6ÞNS/A€ÁoÙS|Tˆd|ê<9S\�æÿ2ÌDG…ðúÕ+Õ gû=ýž÷U×Ñ4Ý‹&ÿ�ƒÉFCèa¾‹Ï6*=¹à›‹Ÿb41exˆ;(kµP}Óì†,)n¦ãO£WóŒ»zz —Ãà³ÏÂ�jfDŸÄpïBÑïì9¼øÑü§[ŽoþýûÆÄÏŸ6°} á–a†áýð÷d¸Àm1Ý=€TûÍ,é¹!BÚ$EÏüû|ÓJyæ ãÚòÀÊþØÏüŒì)ÀCJŽ‚¨©;ñ6x–yêy4ŸÅ^ÂÛ 4Ôb*‘zp"ˆQŒ�x仞µs8uX|ÊKÁ ˧xb´a°š[;[MÜœ¨Öc‰=Ú—1ä·KJwbú¿ýÉO¡UµßùƒÈ5»Ò`,®ÉÛŸ+)ùÙpF‚ch÷0NÜõ…UåGaXq¸[ª"*SRrwJ JÒ0N.æÌ;õø8 *3Ü�P�÷wRKœæÅ³›CcpâeðyC·w÷žj­á‹p[ÓÎÝ c˜n/ýdþ[Ì…@ÌÇ=2éÕ••§¦¤î šNCxƒÝ‹³é±yÛæ†i ›6n¨Î]À·ñ¥[ÕÄצªU?Ž3ä¸h¥_#@…¡îPUoÁ&6 ’$~œ»‹ÏÂɰLù+è‡à¼(¿ ޵@çÝÅèD‡Xv·Zö¾áêÖÿs«Ú»oŸô‰œ{ýTµzÝ:YÙæ  6²˜›™ƒ¢ß¬¾ó­oÊ›pçî}Òb:öt57:W­|ë™fYpã�êž ûÌH£�Ö  { B¼ÁX.ÎÃ/„5~}í…8‰r?­µùϬ̺ïøÛ°~CµU—Úú‚ÍÌ ÙUpëP‡tb´ 8½‚{ù>çZ�ô·Wþ½âe @©€V¡º(½­st<.)u¥MK|KyS8¿�ËnÓcÑéå…ˆãå‡_yµš~�gØ>L QOôxÁOýLZô‚ªúò† 4êÜ�»ÕäóxãcÜ}š� KqˆÝ�ì¨Îã›ýúä |‹3QMÞœóÑË¡¸“ßÇdžW¤¹üø±jæùçª Œ¤ˆ@�MÝÃ/¾XýÑ~©º‰Y�oâIª¡êÜéã8ºêL5°º}C!mÊo³„  âßùÃIì°;]-/N_:ñ2ÆO²oh´¾CÓÝçßßêâ ��¯h–]‰S~LꊚÃ@�£ãç‘|Ÿë£Œ²’ný%Èþ‡�¦ å8 Ót&3ˆÜ‚ÎïÔ1� é² ßTÉú¥S|¡¤n†dJ|çcØPrÃÃñ›uÆzií¯_Á°àWÇ«áÝè$…$kŸ“>õãÎg#óg? ­�»²›|oüoM8ÅÇ”Ôµè‡Øuh‡¤Ïür8I›«!MF´¸è튩ÆÿÍ$†¤ÎW�?þ86By¥úî·¿U½zø%édSWšù-xûOT;ðö?sú&½TÍí@À�cq�NóäNËÍ»õ#8w§.¿ˆ7(tî^B‡â+ØJë}NÜ¢VÀÒ€8¡—´”¯Ü‚K›íé=ŽÀ5c„‰¡…Gþa�Ôð2 ­+;æ¿ Ûl¯@¨–�–xf [Æ+?¦•¸•«V%�:ØFWcÕ¾Ii‘ú2ÕàÈ·Ÿ£½¸~Ó¶<ÄX†]þœRŸÅ”ÔmÄf éÒ>Ë›a"ŒæyìÚ±]Æ„y~;â–=1‚O 䌘iå‡~,5’%ʹNñ'¨øœþ€ïÒµkVW;ÞQ­—f&ðˆÇž|’ O*ÿú$ˆ° 'à�æÆ¿½.£!ܖм93�uÁoÐV{qÑ|ï¹oVçðæŸÝŠÎϟľ¢´.A'|ž$oÖOêfö:îhh ãSy�tæ¹Ë�º{jGt#?˵\x›k)TI À%pïñ·¼ýÁ’uåQ˜h.næòã—›°uÅþ��–Ohjº}bOi˺:¥Ø×¦˜¶îr;víìB)Æ÷ò‰AâÈXå,1°8ÅÔ}DéM�Òå]ñ»÷”Ò+ñÎá³cëø±ãi²!<‚]ƒ¬0P¦Ö¬\]mD'ÚÌ+˜ø:öÄ®Aƒ)ª��DÁy‡�A5¨ò> È­€ÙësòÆŸøÎ¤Ûto%N@ÙÅß(ŠϨçßÇKö4�„Ñ ®c½ýÙô?æPرv`l?ª”ÍÁô·m€8_yöÙê÷¾øÅêɧžÂš‰½JÖ×]õª—©ï»hÔA3(u©� @'•ßk'DNñR~NqsÖ�cø—ðýË-ÁS|åÓ«ø“ÿðÇ2´¥té];k85®ªvAQhxbÌ$VØ­øÀ(d=ç¡% RŤÅç|'|�ð{rçÁíÕFtƉSZªÉŸ<ý�D0li§º1 õîÃ8“} wª 8ûâëÐöu�Þ­æÖ`o€ƒødx7–FÀ°§džo\Ï�e T ‹� .ë‚ð»Sø�½›á•ÃÕòáeÕ! 7=y¢ºüòel´9Q £_`9Në•ÉE�‰åßÿ8–�¯ð÷Èš1™4ò% 5&B„æ¿wiÓ;æz¬ZµR£ë;øM¡%ÔæŽ¡³úïÿ½¿'(2}ãüoÃçÕ;ð õä;ßYõ3oÿd»ËíY¤�€mº­À"ZI!-ŽúKJªñ¼seZêž{î;Õ3ïŸÌ²ú‰ŸüIœêó^Œ]CR{t6�ÿþþ •Šs¬ÓêŠØW=±—ÐlžÄ°àè#òe–ðÁ‡Ôð“€’èõ@ù08}f†c¦šzyÊ)>äk5¾#wîÚ&­ ‡Kzï‚×0S�‡!ÑÁ£„þN%Àçv们êãuwJ�¦úÝÛX4´j¨‰¹Õ„gÂØ5 ! ðÊ—£$pœ9È6åàzðÄ{:¥˜Fà2'�D+dâ›Ø¡è4> Þ9Šý¸ðÊ¥’Wî¬g7ë�ÌëK’×<~Ç2„8ÛôgÝsº¯<¿ô�¿mPšŸ›˜gñ�ç¾+Wõ¯Sb6aý§^óÛ}ë¶­nÝ^mǧäNt*oGŸƒ|Γ:qµ‡«{0Š³Ø®a¬â0ñ4Ü–¡ùâ^¹œ?…;×|‡/ð¢ã¤�±±ýÕ¡GU�?öxõØ;ÞQí«và¡æÆU5?Ï~ùËI¶!tÆ¥ÀD¡°½º†ùá3±sÐ70,øô°QÉ(]|;ë!•�l!|3!O,š�"Jä åeýZ£pwa|=ˆRƒÁàÒ  @åX�oïã§NVN]Ä,<|Å3}j>9ˆ‡Täâ�#«›þ€ù8IÞ¡LÂ,³xHiÞþ¦éϘýP(•5ò„ki9ªÝ5T„Î~.cW¥œcKšÇ{oذ^:x)Ûmnú~8 h�Ô·,€¿a€gƒE©ÀqjêtËØ«eƱüÃèÅæõã[L7¹`eqÍÀX\ÎÏfšã2£íäÉS@-?<ÙøQ…J™òN$ÚÞg±aëã§ãYøŽ%;ä_>‘ €, wæá£XUÈóçéØÔß�w6zÅwÐø7Èn –�È=…š§Y2P.†‹�x˜BI† ±I4x-ºú£;b`šÊÏd9�IŒ#m PßÀF[îÇ–í0Ç1òsçÏîTSç'«è«}},+|þ˜&h°_”ÄIEÔ7â$ÉHþ�Mt¬N¿¿Ò�Ó¼¹’/_‡.�™Æ'€©/&{ŽòÁÙ™¼Ná¯ËqW/.g(û½ºy&œë(ÁK:…Å÷êhM¹À‚ןýÙ÷À®÷GL füFð9ò‚Ǿžwçò·Zpת𖻋É4ÓÇ`l ø³hÚêür.ÝÅw½ú”;Ï,)¬tF%°F�™”"QʱM€(;ÁI=mÍ@F©&v3q’°W~U8‰ö¼±`˜Ê�·»,h¬SÞk×®«Þþèêêäë§«s0¬ã7Po§0ßâ)ôCìFBGZ”˜Y±ÐKB È$Æ‹sop¢p“�ôÝЭÄ&{÷쩟�Ç·uÏmãg°ªQgÂáþÿðÓs!]ÎP�Ö¤Èý*u.ã¥VÀI4 ïÝ%‚ÞCžÐT*HÛÝÞ àø¬Ý6z[jɰàa+:³¦Žà�ÿ�‰jÃK²Ý6ðס™ËM%Öa<¿W2 ¤u=ÕÌ‹�Ï:O½ðvåòÒî ¨,šS&$WÑ+e¯$r÷ýÞBÃÌÓŠBr ú+“-3—�ÇçͧÁσ1¬Iàòäãè$¼}üvu‡µÌĤÇprΟI&/™ã� à†; ’�“lùßFØtÂÑ÷aºï &9iñS§,§¦»šÿJqî›·n¹/ e @¯)— C ž3¯cUZÿ.÷(ûçB ŽˆÁKYB¢ì‚“ƒ¸ËÎe.®Á°àÄ·0ã�C¹¾‰É7=›™üÖ§ž¸[¡?iz 7wPâò)7=x•$(=Ù@Q$Lz$ì Hó% ãG”*iò  ñ/xž•/}±�€Ë÷¶ò#�uBw·Zƒúzû£�V§q0ìëXÖ=ó¬}:‡×Ç0z?j�{h:šXƒ!ù/§ÀÒô? &UÑqÏï£Sr 8Hðv Äûäá&­Ö©1†9ÉËf8XO;ÇzîPìûsŸïi@]€Q] (}€’R÷ ·Uxî,W¿Xé°±‹ï—W) A0\šµxÄy`ö\µ¦"¡¢Ó¢yܼ�@¤åá%\·ìOct�pçÙ�ˆ`Œ ¢’ #B¤÷ˆp)Hþ5^à¸zZÏùlU b°B4+ƒ¤Ð#ñƲ) yØ€)ë—ö4Z‡Üåi[ΜEßF †¶‘¸|fò�ÚAºÜÚ{šË|}Óúa6D³+™œ56ÁiŒøÈtÛ±€³ƒ,fÊR4mD>}�l+à\íïŰ3qûöm²�"?ï`y5·Q_hlj»–‡gv�‰·û¦¶é””ÚâX ÿ†Õ¤ã7*‡‡Bn2•趉1Þ6D3LR\¼ÕÂïb¢u㩬Ù¬?Šž(ü£?ZýÒ¯þjuÓp/¡’YѼèç™vÜý÷,„áfù]Å!óq½¼ýUŽJü­|•pj‰VŒ âÐ#åˆ61‚Ì *¢t‚–Ä&AåžSv�Ó)3#µ à)l•·Þ•eLa  d0˜…�6ÐqÉÖ> Ÿ2†TÙÙ{\DÖ„Gò÷@Á7cîÀ)t_}åZu3Ø2�ާèpÖeäQ¨ÿæ À‹òüË¿ú?Gʯ±”ÝøqCÝzÊèKØ_á{Ï?_ýñýqu/¼GyÙûf|ö¨ë_qçs� K¸ßV@Ž3–ƒŸÀ¶É9Ç¡¹¿û‹¿(««xpåC£8ã4¯\˜qýòáò ÎÑ#G«cG�È,³ YÉ$  Íì= qL$Ü&_.âX��F{vm €"-Lf…—ËyÒ®›Ô9�$õ4 $–†‹Ù°xêç]ý¤C@ðF>ú ° ±\7ĵ�°»>•�g~”Ou>tà`5Éý 1,{gÙ¸Ö±£2,³¸Ä°j>F øÜ6½äv`Ø#o{$ŠiDÐf€Óyß÷þ÷Ëõ7~îçªÓ�÷¿ñ‰ÿ §2y‹•�hÞ(óm®×ôÛxh\d¡iTž¢ßÛ=å�Û Œ)ð(«Ýè¢Kiè4ŽK3¹7»îÏ®8_Ã"¢O|üã"( ³w™`¥N%L�l„¥R„¬ÀèÎüå�ƒç«9拵{�E™_@Q9w°Š² ÉÆyjƃTQrwDl˜=ä€�€XÈÓ‰éh•…fD�¶ ôùxy:®®ck 뢂Õ>÷òæWhÛÀØØ˜¢µÞ{y6Üâ{9öaP§ ¯a½³UѯË5ÿKð‹&~æ©ôöÐüæâùyPra®zò*¦`ÆŽ¯RqªŸÆ#.ááæo(´L¡€ÉÏCI"f[³¤EPþü�c\ÀEm¨q�HüذàÇ­Î^ùÙ)פ¶�€š¬²Ðú ax´Ì!�éóš{¾ŠÒu÷,²hm#�`éù‚º¶Œø„¶ã³£äB•ú„g @Ÿ<ŠèÌlî¡)œ‡päwYÉ9¥ËÅ–‹o32KÌ Ël“L$·~jµ/i¯i1Ôc7Œƒ$ŠŸ[2‘ü�)s‚×jF5 […W"Æi¼ÂˆZ„[ÅgXèðÃm ìfJG3ûl]$5�™Híø|Åi™4 àœœit×½m+ðƒ…þ'Ë3äËïÁ_Ú»Ä2ßÒ(aÇðÈäÈ¢÷Û °´©ÿ*zòsurbŽíMéºò¨ƒAËžKCyÊf €…7¿R#Œ±Üå…ÑAcL}s'P¤¬<ÒÂL†éååÑáëÍßÒ([…é]¹Iµ p½«ÑÐ0ïDòa úN@ɧ7\EÙp�yãYQ“ã„�€\£êsHJü6á–×¼ÔG{2O”†"î%¥ìåDáݘÄÔOZ¹,”è-œúËÈ"Zx¿F€|r•ϱҜãFœt¥t§yËñe<qø‰‘‘‰ç÷)é)�©¼�Xá™È-P§¨Â\S�� 5ŒÕë˜Äèš(îÚSãA.�–_âYf–N•Ù’3!h9\……;<î_îBÈV?[pÒ!HÉ%B8ª;o´ºø@ }�d‹*Ð@Pã¨ÌDõ‚è¹Ù¹Â·:wjÆ1é˜”Óæß6$wìèÑέÀVa#7¡ÉñÍÁzH¶¥a˜H›bµq+Ñæà'Ž˲º…™�ŠßfH¬xYFrüµäÂ÷?‚¼¤†ˆ¦pylP–G>Bg"Ro’‡9rÖ´ n©\NܾÂUéI¤0úÕH(,ÜáqÿÄr4Œ#Ì+¿úG†0�º¬r“\TnëÅ8�ÔsHx0¦®:Âo@v�¶@ÛOYëÕ•Þþô‡ÿ¾“ÅÆ>'•ÒÊ%”+CÃ�PK Ö¦˜%šΣ“sއRþÃ_þåêO>)ãÿì…¥E,¹”¯Å{ 'ß”\vPæ!‡Ç (¸úÕÍ�ŽòH"=åá‰"T¥×8NþÇÛ•ûíÉArHµö0¡'Â4ïIàð§Joã™'�+7þ„ ¦ç{þÅ ¿C˜a A"—f~r@Å•8÷>ÉŒêÎñíÅ@ø$ôu"¶0åÇk>þ_ü4¶™ÛQñ šÝØXdÏØÞjlÿ~Ù‚Ž²×«ãöÿ×oýV':?ûá›cØ ½–;k,Ó’‚µKoý–WÛF ŸûÜçç“sAçì«öc:æC0 s®†ø¯N[.<«ähº_¤G…‡x¨€"ãuÙ蕇Éô“3ìdÃÍ5H-Z dÅësÃQmtðªô Úxõ3¿Þ/7þè%4>RóG ·xÅ'–� <âúð±1�¼K"2u „Ö½P:¾©2c¤ìq'Î 61iàzœÉ‰ÉêÅ^”Ë�‰wÅÊ·ç�+<#`llŸÌää5ëÖºuÀä íÅ^¨þñ?üG˜t=eÓs7áœSÏÅÝ ¬Ó�¹U\›XÉ”ð-¯3…9–?ýLƒ£¼¾õíoGÑ£#£²>ŸÆal?Œ¶ øÐ!ìüˆÌ"<úÚ‘ß²-‹àÎ`Ïàñ؆(x#­™Re„œQÃP(ît3( ® B …Ä”Yæ^Rx¢*½æÁ‡åÆŸO¿�dÓ•8ô‡|ÍÞAf‘×a.V<ò‡SÑÛ<Óbùˆ\YÓ HÒqiYÆŽ‰eåü< ��ý»ñ;ãÕ±cÇåÊQ³3›;ûÞÁ)Lý(¯ýìÈñµ0êF¯®”‡ž @["ó5mGu·¥gãx”÷äõìWžµQØr޼�`6àZ#'Ÿ¶$nï2‹hF@‰xd „ +Ü öÚ›Âæs·qd׺Ájp-ÞY+#JÖrr3øÆ<úpÓ£ñãG“…WŠ%tr?@:~ `êÅÀZí¹hü#„1ˆ!I*­ ÖÉ:ª,Ð0t™Ô¬Ö†(@B±ØX Ç&¶6³ûáŸnÖ-qKŠnùØ|õlȸŰ µÑpßÅtwî´/3–yê^ŽÒ|„J¬å% 4š‹%J‘å¡‘þžQe+yÁÜú‰¯÷¹)œ¸ƒ;ÖÂa°dx/¶ËÚ8T eÒIR©•™š¦&D�Àù§pÞ‰«üa\)`øу;dìùœ½(ÔØ‰‡Sçá4_ ©f§½õ ™tÄͯ%ÈpÂwvž-€„Í‚Ùß�º �iD�á6úž Ó"£œ(µJ4< € 9¤‹:©4#|û¤¢qþ¾;¸{1µ0+U|¯³0 ; së± œnÌ#Îob”dâ*O×ÁËö0šÛë§«ÕÏà”œZ$.0�yz­màtz4îêA\Iñ'1N�&¿Nþ™9å’ત®Ëâà÷üˆš»¤­õGJ!û1^ÈÀ¥9ç>{v˜�@Ú’î§ù߯§/@F aNæ´et!ãÂ>~4hÑdHLšLŠió4ƒÒf z1d²�f’<¢Œ6¯vB¥8TzíÆu¬„»UM_œ®n}eªZƒè‘=É[70r�‚hÜ] ‚Ê Þé=P˜ó<ëp¶š»6SÍ¡©Ï•3löû¯-9 «Ùd“T ûB½…4\öæñKî5—È6DÜ$Qã�ÑœÐövŒX܇_®i  Ÿüõƒ«Å‰ €Uî6fOñÞkKà:O¤ €��¶r6Z;e ƒÖ‚X*[Ó8Ä4q\œÜFìȃÊÅ.·â;ó8†SÇÏOT_�ÂçÀ ô Dè.`ùýu„¾Hků›úÓ/NV“§ÁaZž‡°q熊;ñ6\¡ÞBŠ…ºkÔGƒ1�K&6æ�fc±¾ÿ3é ÄU­ÜiºËõóöo“o¦€4á’¢§x6Ü‹8µ ‡�ØTûóK  ’®Ê‹ D*])ÿ¬�Sxk!í]”Adk>†¡P³5~;èžÄžy¥O�”9ò¥îã]1�p­øRœüÃÍ7ÕñÈ4ž—@ƒêÂ׃#¯Ë¦4¼7 ¡îâòÈV›eÖê—\1lgXé>FlÚd7›Å#õÒ�‰~p-·†H•> +q Îø.#Ð6@ù/æ]F:*7tKFº*�ûÝW”EDÄrHlD‰œ›îÛµ»:|äµj }<·PÓ0\|Þ±3Œšoz!3ìÜ ôð1€kÇœOûN>îãŽ6—hG}æêØa"¥†v‡Ÿ:Œ”‚ •Ô`òÝíYrÀìTÊ}?oÿ oF¦‚]Röœ<ÚŒÀ™ž!—ÅqnòPÌ;¤´,vSp56Öäžy!W>z÷1[�ÄÝEŒ`¼y !¿x«š½4çNÛ5Xâ%+“ŽS,–*=q=²Òà>s �Ž8 iëæ-ÕÆu8mGãLZá3'“çÈ8HŽA Æ z›˜F¶ˆô™šlŠw©€-[êI@m²“–£„[‚[ú¬°]~&RRˆ’Xˆ9]ùj‹O­$®Ê{Ž.¤ºbU•Ê t –èXóPÚøÕ©•ý ž-›á7o`—Ú À ~].”›#Ò!¼ÀR‘•>ÜÑô¿‰Î?ì¾ËoÔ-›7! �tÔ %öÑ 8Ñãªhðކ}“"u¡5¢Ý80�lêÙå¸=÷2L8㾓7°Éç,:Ëm¹ç¦r€6ežo\Î\º|y±ê°'¾²°à¦p5Y¨^db)+ y|'Ñ©1©yªà:Hú j<Ⱦeâe5&>U˜Zqßèw£­ªÁ80Ó–…÷K„O°‰OøÖñüöŸÁÛ :û¸g¿¯>OÄ S@I2©¡¨y5AVn ¸?’ñ$&ü•9wõmŸÄ•yÿêó¿Q­E™é(ËW »<Ëâü¹óÕÜ/aH›Õr^ˉã'ªË—/ž¿°hýéšÄô{umòcyD€óUô6:k¸“ï4fðåÜ3ÏR±"Æ'&ªëØ<‘-/7öàÁ7p§ÿü¹sçôS)š¦Û¬Ò…²Â¥ˆe ôtU¶Uؼq.ÂÓê¶´ö—KOӘřzwï–°ÚÄ­N¨_îøñá€N#q–ßòµË5º¡¾R—ž¶å.Ö}Õ__#ýósòÀ­m+p²ÿ+õ¯åg˜ŸŽ›·l‘ëm�=FPÃQ69÷ÿð‹/aƒÚW«cØ –;÷röà|¶ËÉB#S�Ãmâæ•)ãTئ÷¶8UÔ“ÇN(ztgÇÜ/ýʯT;wîŒàiÀ¦}ãá/ ²_ÂõòË/W¯½újuËŒoá!”\Òm1!‰zY´HÁŸÈb€§ž¶ú´å!]6[^å’¬™d*N‹¦ã–\ &i!lXô0 -'•�~ÑÀƒ7ÔY6i]ô¯˜Ì¼rv÷,Ÿh/†\Jgyµ9¾ÌF—óX¥¦+¥ÙÄäãc…ôîŠ-eA†ö-¤p޻∓Җæ<òè£DN ’ÒïÉåaÅ  %Θ|‘OV’y³2ªXo>BÐÓºMx”™ �7eå³nÍœ‡¨àÑ:"€k†ip…Í<&§7ËÖóOPCÞBòê Ùp]€C˜`•ºÒ›¸¤Œ ¿pÃ3®´X)Í;M/�+Á‰×“ "™¨‚1l][ñl<{ïsn[f¤âiJé§xmßw®°©ÚG.FœÚ Dª¬1Í .~AOqŠ['>ƒŸ²ºì�šÞ šaĦ [˜õ3JÉÒÄ Q5ŒÑ°é+ÓØiy¢â ¶jlµi®{3Äö‰›ªWPô<”1ïW³n£­ß  XóÜ5¨2§¼JŠ˜â)¾…Ÿ>}ZÁÅûŒ.ôê,ï^iJxQ@ã¶xÆuų/c;ðÔQ±¹Z©’¿+ Å;UØo�ñÒ€ÔPè›Å)¾(0îÏÄø²Jy›L4á.()gÏ#pMùjïIã}˜Ûžßb¦‘n1€Tf{ùb…ï–ó`d?âqN yjÿa¤Á�àjp¦òÕ.^á<ýòfANä™ùÔšä½á ;eP p dÒ ( ã,[àtMè9}ê4Nýí~s'Éeƒ¯~9 ·À-™­ÀºôÁÒ—üm:IšF €moÚ{‰g}îí¼³Øt… íÞÒ¥"Q �åòÉym�ìi5š‚}KxÖeÁë „.š¿Õ…Ì›œ€bzʃlëD<®\wMŽl†Ž¢s>ûýOe¶.ðƒ'ø� þöež~hp�Î�K˜‹qûNµÏ-vŽARDÏ×Ô�$å‹Á�]Ô‚Ð|…XõdxÜ"cÉO—rñD¦ÿîoý|õ¶·½ ûþíÂùÜóoµwßÞŠÛ}Ñ©jnôžÂ�àTà.—nVÊ_Ê[ù–à_º7 €"–2Àx&–S>¥-ÅŸOPgÈÅjwõb¾Ÿ‹K� ƒ«1Ð0†¡@ØœKW/Ãä;[mž3þº’â)ñqm„VB v¡$X7xxdÅrwdƒßÿ½(Ì‘×^«xYÇ^7n�Éj<Á‡›‚îÝ»Gdvßþ1,Ó†NÜIÌìr]³ÛèKe)Á-¯¬PBÞKŠÞÇrñ'�·iÃïžîl°øéòéGEåNÀ<#m*wÏnÅkV¯©ÖoXkìÆk9<űÖR+ƒ‰ ò¼úœ¦‚”Á©å(ο U¿-˜Åΰõ¨N±o6áh90û.•kxósËéaLÞïc¢Àq~Œ¢3Õ׿¹Í?ˆVÿ²hÀö\†Zƒ7ž>ß8=åRCã’h| Íבã¡é(eý,‚šè¹zˆëüçá¹uóf¢ÞªŽöÐì·ìwîhŸkq­_åÁÂè/ÁS¼È(aZÑd–Â,£^ãKs,¯^üs診Žõ¼Nœ8Ù ‰à°ùš–Öy©‹Åȳ�„°¼„ÖÊŸàSìÈ׉Ÿçéoq,qÛâyÁ5™ã4ÖËX�V¡>òø¯˜)ekÞŠns�úitfÑ!8þú„lM¶~-›M—TE¶´fLñ £ µ�kÖ‘0‘geñ\j½¬4™Xtïòå+ªUkܧÃý|û³` @`\Ñ„8ؽ�sçòs\ ‹ÿ+ŸAá‰eè‰h3ÌrCÊC¡@ IëOáQ<5ÔäÂ(ø”ÿTaó�ýhÕ°g~žoó8ÝÞCœ0ŒVÀÌ¥ªº‚ZëV­ÁÞŠ0gRuþk[iKâÒiT[H¾‰Ë¨&´NGIóé9<›ÞÜ\÷2`åy?îë×ç ¨¦�ÓGÆõ W~öž5Áú5ÁT�‡ñ¥8âœïaB„òZŒ;E!( —‰ˆè¬8¶»#Ó.¦çKkÒ#$NÓáðSç ÞþÃ�™|ûËâO~?oÞŽO�“ÕelPºy=ö)·Œ2�@Ð@áP“K\|@÷…ªÙ5iš�[ëD³Æp× Òܯ;û èJoÿ~ò¡:Ú+M_@™¶)z)nç[]ÉÌPž÷ã~MgŠF*0Mqñ¹ñ)¾¨ft| 4VêLCz)7j*¼t ßxjìø\WGßoߦ­ÓÍ\¬ügÀZw3R°Î–Ô…¯ÞŽGI ]¨:!,Tâ&yÖ‹Úà“ìë¶yKyLI¡Kð¾rôj‰»h‹g\êÔ‰±p6�ýú%O>ošGÊaz¥|Óx  „Ž'Pp=À”o“«DÑ%<Ò|…gpKðaŒÇíB^ÞM‹ëÄœ€ôðs„­’¤!\çÂ×S `Aê×{Í@|¥tJuϾ÷ÇT±»^ÖñÁÕ×l£¾Žåï×µ¶´¢JãñL°­ÉoãO´ÌÎë7ÓóÅŸÆ °QìŸW7GÁÉWšÕ¥P�É«FÓ¯eÓa[z‰¯™0hœëñ7ã5\’‡ÉŽ¿KöC/üÈ!X٢{ùù1¼k]._½Z­ÇÁ#ÑzW uQLù$w™ºÈÕ[€�ˆ,l˜|¶uzŒ´Ê¿ˆ[zÙ”b’Á8RαL@,)t žãÑ+¶,¡ SWfÏ«mxNy-ö�ù��3(!É%ùD([z©‡»çʺ†,Â@cè¬~÷(g­“$ ROŒS<{§òKÇÞüƒ½O¯Åuƒ˜‚<¹p—¤àž·+‡ƒ×¿Í²õ]¡~j®úœ$M&D,î`� Þ^uLη3³H¾þ Rþ&—¼‰C¢™”Þè4m-²-Ñ2n¡†Éë^Ü4ƒÂjÁ!9(±Ì¸êÌ:ýmà;••èËpÇŸËaów#C0Lìœää ¹\}4ɤ.¥îˆŸ\Mô¸fXS5�«kÖ­»üsJj“‘ü”êr£8Ýhf¢ò¤]£ÓPáíÇö¢ܽgwDÂrå\¿ð�µ4²”ãÛZŒWÚØºWÕƒÞ œy 3íP¿““Õ,u ¡5;êÜZs´ –‘Ì¢w6�Y¨a›eqÉe�‹}¤é?ýzp/ ¸ìP4vJc¥÷ø™‰ê*æl\‡!Š|‘Á'‰ðœ-T娔h,_¡æ"ôZ�jνÌøôg>]½óé§/nJËÝ€/_¾R]ÃHÖôw\»z­º†ù„ÇwžuÁçÔ¯[…©Ôøç~HVP1ÝmØÊ«—UQ“ØþêðK/aëeT6væ îÜ¥ð¹ô £nòâ_œµãÔMN!fþh èww„Uqƒ|Y1íCȽq`âÊ�u+} é?ô æÙ,u7ˆáÉ´f§_Á§:·o®‡·¤6´pZ�l…ʬ+ø54eâ˜Yh///ÍBJýØã�áù6¾Œ‹GÓâ§Â¡GÉ¥¼ÿÓ¿úת®Í@¶lçkç”—†õÞ/\éz¹G€Ll!�yr`é�ý¡}ˆ(¡‚mÚ‘ùa“éIì"ü”·ÔTÞ~æƒr~@ýž@ÔM®£Saªa ´Æ†‚R$7Ñš…ô�êÊ Óô߇ˆ¯f°t|Ò!ˆ~ŠiL¾yå– ¯’+ä0ÔE€ˆ'€Ó2úˆœöÔz`O�{–1G››§ß]7ý^R@�ÏÝI#;5ç" lÇvL§„ë7�~ñM’‘·iê2™abm òm¥Ÿw8Y˜À·ýÞ±±ˆ¤+-‹¬¸´Øï|WÜl³x‹égج¤âƒ[•8‰m³Æ«ÛXæ|ÛgqÃNn§Í!ÈœF3‹¹è®>!ÌÎÂ8CAÙÆu‡ëü±Ôö�ÐôOë–³¹Z�‚4b,kT8QU_P¯¶�‡¿TQÊñ„Çì<0‰P´¹YúÊÊÏ|ü §±Î=' ©ý¥8…OMµïLNÛ¼¨¹Æ>åC.Ôh´±ffÚÞÐ¥O‚S'OeÙ>m:ZR-x[z–¦—sÕ-þýò³³"xÍÞg÷Q·Øç@'»ü¼�šþQ]¢Cè¬d‡àäéÉê*>ý6ñ ÑàRÌ çåp©»ÀM¶‚m? »¾ÿÙŒÍxu*ƒ¶÷Rœ…÷Ò؉mì-M¿iXüùøû2L€™mSJm Øï¨×q4RÎ=ùÔ“9pÓÊiK“ƒÉ›ˆÉ È‹ ¯0k náíÏ>“á1(Ñ>d<ì%Z›-ÎRälÅ™«F®ÉgÀ(uΩ¬-–«ÆZ(Ã73Jœ‰–@ãÜ�Í~eëZ#q¼ mذ1ûýoqèW™Lá6̽ØWÕåvíÎïPJ£ïJ§Ÿý(!+œ™èʈÒœÁ^€9Ç�~ºø(]Wš“ÝÍ-åµTïS³Óød¸SUhF�.ñ^ÿ®:”u¤»|– n«#Tk,}î"´¨—7 wqÝ…[{Aþ�γäb°6·ÕœÎ[’Ëœ|mÜËØÔ†Kéî~€“€˜§¢`æ» ÐO#ÀëNR¥csÌþíÝ?F°¤ÓÅK nŠüØqEyCÞ1K]ú dÂÏÃoŒ^ÿ¶Š–Aö`”‹oC.d¢òZýæ3tÏ1Žpf€0E‡²CrK¡¼+g’½„‰ÿ™Ëî˜Zcló=ò©l)F Îø4®—�€¹`}ˆ�¦Òä¥1i ¿—{ô ÀÒ¦vfÔL¥tçâ…‹¢øÆï-= Uá½ðR\Þÿ.¾±Ïœ9c£ÞpþÛ˜˜4�ã½ÞÈMÿ´Ò×¢Cð!ô`K<ö¬\¶Ml̦3­wÑlõ`éLqƒO°Òoû:Æù,["Ó¨ë: èë_ûzõ·þë¿Y=|èáêÀ�ƒÕÎ=»ª}Ø xÓ–MAÖ”—½«Zçt9.N]ŽqJð”¾ßpd4¡T™™x K*áLbÚíÍ̦ˆ2ûÅÿá¬vïÞå6þÜ·¯Û_­]·6¶+MÍÃ˯În7®ñKý>�‘�7KÓ?­ëaÌ ˜=‹¡Á“ÓÕUÈÁÆu~BƒW̆’A¢ðj Té‰ÂVBp†‰B‰«~âq#Ð.%º�VÊ·¿ým¹oxF°‚tó¦ÍØìs 6ªÝî6üÄôÝÝØxóæ-h»aŸ ßÚ¥‘álÃWqZu—K—w寋ß|â€LrQX›RæpN`+pk…5“2ûw¿ÿû w6‹¤¢1<²s×n´¶I¥oÛ¾£Ú�US6I{ü9ûê�êX7·ÐD–¦?:ÎÞ~ú©kÙ8„‚XÉ|`¶_6R¯e¶Jøz Ñk‰ Jߌ�ø¬�ð¸\ >_7�!ܳgÏȕۤv¾|·c¼§zÕ n¿8YÐÆ„™i3¤µ8m§ôäÒ¡>vŒ×ñ\4Ò®0spuµ-NãeOëm*PŽƒËv^öÁrÞ¨w¦Ðë¯Mvš¥Â=oÎK‡P:÷¡ðG®W[7-CçS¦  (kX¬6‘ð .ßÊ|¾KÍÙ­ÀKJ^‚/TYú6LX3Õf§4`¾�7&&ÉÈqX}2a~7nÚXmƾív˜Ò²cÀI;8›B35‰É;¸ÓÏKËeiæëgÓ_Œ×› ×¿­Äà¢Cp'm�_äb¡«ÕŠÑåò"á3á³pw¼Ã–!ÝT“‘BʈÄ8põ_/Ãqmù_è8m©ð({º’L•à ™Ÿ¢`â¼ø@J®+žt<l)8.ñ܃c�ø=GÇæ¤>›?ûÄkEãØ+‡%†ÀÏꛞ¤Q˜ª¦§pÇ[œ†¢×‡F9•ïþt”½ ›þ¶Né—S…B‡  ݹ5^-[?d‹³(S ŸR04àÕƒ�às˜BË®Ÿg’æa¡Â99#ï]»Ë“€*í.>E „]J®_2K¡wž#»÷Bù9ż6Â7% ›Ø¹ÒC#^+«æPdÃé¾üfœ¢Q@ëA „o=ØŽ¨ ´0&—^ÿ7iÓŸõaÝ0æ¼ÌbÁ™“èôħϪeéÙ‚56åÊM�¬h \ËÁ­ÚtPž)VŠr•Íšëýñ•d'M}W²€�¿_y� Í)r žf8G{¡p¸¥]lÿNôÖŽŽBùÅ `ÆÄëbãǯ qÔ£ì[À•9"N’-ˆ›Xö|øÕ—«á7yÓßÖ§Ô_²d‡ ߯á¢Ë‡—6ÜH)›aÊd®åÐÄ\|H¯ osÂqyåÜýR~¦Ý˜TJœðRœ"‡ss¤�â¯\µÒå�ºŸ»$ƒi„É5ÊÑ¥e•{ÂÖPF^HnJúú¹38‚[“¡Iüfëõ� œ bbÐÖ ÐÝyƒÎÞ¤ÂÛ?Wšþ~¹ãPÎuéXŽæ^` @fm™h‹ÓŒˆR@aØQÇ^ýéVã AUzÍWªêªÛŠçî^ác kÇ_¦TÊÀßC:+¶ÞÏž?W]ÅŽ2KekoSŠûâÕ%Ã6ŸÄ¦?/ug•�þ…p[ú˜´é•xD å&#ðS…ŸÀ>ÚqË%*_ä…Õ·»–K•Uîø!zC“•G3"JJyóÎþ€“'O¸­½ÆÛ¿�iÞä!™!ˆ}¸d˜Ë¥—š[ …OËØµ 8Å_¬pd˜ˆ�Çß–°*L çôÉÓ¥¨û—s |šW¹#õT§£ ©r›{‘>k ²Àê8 "7$åar¦_”è[+0„‚lMNOV0ŒÒÝ…OËÇ…ÖQ¾„‹:5634¥1s‹ŸëåùŽ'ž2˜Æ1¬2Ÿ‹£Lp»pÝ2ü«Ï~¥ÓpvN/W4mŠÀŒk¥´}°Ù”sï}ÿûsàðrж~ýúêÏÿØ�ÉEb6Ëþ¿÷ÿV¿òþ§,/ù Àëxô¦T546ŠPC»êÄæ››O¼P¡§ÙÛñ¦Ã'ÃLA–nâ‚À, Ђ>˜;?¯Qtã˜0ˆ>›];PYx,a%fUÚº¿W…w©Õ¿Ú¯!µO弆Ô>›'…ö²êpÓ> @óÊ{dX +ÄiتŸ”3|csgÜÔmܸ Kz·¥à(l+ÖæÇ"±Yöð!L¢oqœ²+êíu¼VeCd€µ)0ñ¾ aÐLd µù¾†$6û‡±Þcø€{Û�¼ r�…‹3°‹#œñV7¨ð™³¾:1³‡4U·oÜ®N�9]½óÉw…e߬e*§X»iÖnªõ §]£Žåó*ÿð̳*{wïó3“”~•Ÿä3XÒå¶laspi¸È0KVˆm¸¤ˆÄÑŠ²†àä‰SŒj8NìŰ(¡ÍOš‡ñŽeÀ#XÔ«¨ãÉŠäðÛGD4š9oLéïúùëìðÓÿAÌI}Bò\ø:z«÷ÌÁNcZ0?‘dAFGª—Ñ85^?q¬:ôPmàù,yaþ,«;r”?N¯f'òmL>³2!{÷6 €Êtޤ�?×{t¹­/À.ú…Œo€ó^”V+�†à'¼dœŒË®•˜*u†$€”†Òu- f À|“FÞ“K»¡èmÂh}J·|…Ô)(:wÅÑ)¿ú À£¨g(?Ý:9Obr‡·b#}r7MãàþÌó=O�;°¿Z¶œ=¯ÝŽÏÜ~ªÞ‹òsß�«8@´ËíØ±£ å¾ÅG€©¦J’ˉ*N.Na#Í9]�Ÿ‹ë…¯¥»xÚUpÒ˜‰Ó4r÷=‹Ó«q³±}cî¬CdsâëX* C0‹&¯‚4½·Zx:: åçÁ¢êf!6SÇÐwºˆ9ñl7¸Þ ó¹xÁg¿“ÛmÛf‚&�¹ #KtóU~•ÒßåvîFÇÐqÙO-PWµ°¹¦ô¹³g³äÏÿÍÏÿëê/b"ÐÆ�hgœòeTŽ·’|ïùçÕÛ¸sS÷Ö0Qhîµ9›nÏæ¥ÆÍódRÄ?8v Z‹-Ì^Ç\€;GîTÓü$ÀB°‘}ˆGñߪëÒú¥Qäæ¡3ßC æIì:%¡n‹RfªYULG4lQ—aH™'ú²_ ËýÝÿþd¿Éw=ý®j+öéã‘ul¦oÇ”[·nm•ÁZªêÈ«¯u%%ñœ°T\ÖhæX8+ô Oï9¼ó0Ø�qW®\®>óO>]ýú?ýLu½øo{ü±êñ·¿½zòÉ'ç’ÜVpš—_|)“‚ eŠÖe�‹ÂI_žÜ‰_JZã`çØ­Õ¦M[ª«×®Tç.œ¯®¿.½ßÃ0œ?ƒ0€.m õ&Œ âsXtú(®“( úöâÀ˜�Û멲Rì åu%ã@PÆ@lBo{/€ägÏœ­~ÿÌïÓ9é_@Á¼¬6cøn˶­ÕîŒÍi9šÅ}ý¶"�´VŽ9ÑæËði¸.ésÈáÝ/XFKâ¤US勱jEU¼K—0ÖÕâØÜ:|ø°\ÿæw~W0Wá4Ù¬zø¡jll ‚Jx³_;­y!ò%LÁ¼ˆéÃ%çvÿ1R“jhŽ0h­‘&Áó|R°Ä9` mðu´L~#ŽžâÅuç°,øÊÅ«ÕäÙ™ªBŸÀðZ÷íË‘~KË ›^#�7@”ãÿTü™¸ãi/êÕ˜³ûÐîj ¶Ú¦³Ï;-¤ÊY€›G­0ípÖð|î”S.ßæuôÈ‘, 5<¶Ë-¥9Ìk§ÐéÃhT¼"ø;ñ._¾ŒÍ49ã?GÅ`³>mÚsèp;¶ßëËT+ð}xõ*6—kqüˆdÂhhS¯‰€e�J[d´ @QMòÕJÌv;0v°Ú³{ZŒØÍ[7«[nWS¯c ™}W0#è˜æˆÁ ÎÕä·²\¾£,°ƒxDá1êÁÉO³x/Ì¡ŸlÍ|6õ93rÍš5Õ®‡w¡¥„¦\/²¦8B�ùQ9e?ÂNo^L§F¢—4–Òæ·g …ÓŠ× V¸½Ÿ.œlqúñóh©£G�ÈÕ+�ëôÊ×Qs;PqA?�ô8ã¤"pÂ�˜d010Ž5§*ïÜá;„`!hoܼ‰£ÁoT·Nߪ&�8ƒ0ÌN2~"°e@£€ÖÂÀ`¸ðÅo“uìïû/�CxwѨÁ†GNáñvŸ£­†²Ïp÷v¾�çõ«×W¶¯G?ЦŠ#&t,‚©±`$2ùi“?¢ªœò$¢Å6IÖZƒì_XJ®o ™g—©SùI@J{?îÒ°Òämä9Á ß•©By<íxŠÊá& 1€-r`*ÒÏCQxí¨0|Çá)ÙYéZ¦ªÉW¡Yh �W3£3¸‘-è'qˆQÌ:’ _=LR“íÇÏ'³È»^Ëš,†‘•9ÎgÀhìÞîwÙ†Íâd¸aÞc˜Cr+1/bÕ¦•Õjtˆ®_¿!^¦í«!Ô=ÈB~é÷ŽuïQƒ‚k\z×ç<—ÙP4ŽŸá®Y°÷3/L«hÔ‚¶eHq´²·4@ãûN«ÏﲜÓ<çâKË$Î!U…"ÜKeÖ80Þâ*2áêTªcD¼Wȵ =Ñê¸b’“]&1ožßœØ]wâŽ;Ã`wq4ƒlx*­ ¦aÀ¾¹.ž0ƒ¨s„!_ÃTt¾Ù÷Ïà<*¶º‘åØ)­v¼ò> «4º£î\%Gƒs_ÆÔ…zô�º uRSÍo…"ÔÆ�`>g.kÚ3ä÷ÍËÓ­–’+fR•¥¡I R<.㽿.–ˆ!&ŠFyjY&“Z–LÔüŒyaΦe=#õ†ž%Ð]‡+îuHgé!ô“Ün‚Û’Ï!Ì×5ïw±U¶;Ã~†qqÁ’ ø»„�çâ©íØPô©Àü¤%ÇìÊQ(9ý—º–œȯS†´’ \¢ºËTr]Sú:áº�¥æxÀRr‘(=(Âé:¢Çc÷â:+õÍ”(´>+‘‚¨�¤Ô*:‘�5ÙŠbdÀÔ¨eì14ýXi]d1í(³ C’ªe8q‡Wpá; @¢äkhÆ—¡%V6K°ÉKe¨ã �ºKCÝ%puçëÄîÁ�!{  ¥4€Ú”Æu=¬óØágá\‡deŠæ©#�a¯Bf@BDü†�Õì‚Oë'Œ§QgQ&¨Ç�K|²é nJ`¥7XÂ’îRð ­°TV–¾�}AíÈ¢ð,¤U'UfêN‘ý�­ ¥äFG—Uë7øÓ‘—HÆ@óÕ&Ì×jO|ÀówåÝ+O~h“÷Z1 —  5<€ ® ™ �âf´fiòc€ÆÛ¨KeìqBú¶‚“ žÍÂÚHø J8Ú´U˜ë –škf�Ê£Ã'V¹»2OÜS'9¡Ûºú }üg>Žéžk°Wà9\ª‹X/ÀYƒœfÉc¹ʱÐ9#=  :_6ÝXn² Ä2Û¤�hcÒ�D{rwShÍS!�0x\L�‰ˆ€\CÛ Ä@rb`]“g´Æ³ˆ{âÊ’¸:›yú ´’Л¤<ÓÓÅÏN·ËÔ'ÿÎ'«�üå�ú—…áé½E¸ˆmíxÀÍñcÇ݆µXÌÆ…n— ·ýÎ1XJûhi#žÃ[\F��92µsçÎÐ�Ü«!8ƒE9[ÍÅ?÷7ÿM·q¿|ñ²ì¡wô§OŸ®^}ù™ùG~jŒD€ŒÿSƒ´¤HJrVî#da)x&� ·Û$ì¼}6ùiNxfÉ}ž9È.¦Í8�Ńk=øœ‡„ŒÇyªÁ¡ŽÈÓÎá…Òµ‹ô»ÞýtQùɘÊpÜž×ûðBZôðóâ_ýFõ§ò«¯a³ÚëØ¯ËquáRs‘@榠èËÙ”ÿò—¿<ùÁ~0Íx—!(ÍxÏ{ߣ,²÷M[6U¼žÀª@uÌ×¼ôÒáêyìü§ÿñO«—^|±u7`™iB„ \½”dœ‰Z\EÖÌ�<•2Go¤àž>J+ÐׄdÓù¬ñœ¯ÁÔrà êq15&ๆ†º#Y &‹×z0 …" »˜PF§ÈÀ�KïyXWîf"<}×À–mÍ·¿>£ˆun_Öåø"[ K�Ï�;ljݪ÷s:K\óÿ9õ`ßýœÊs·×ïoV;ò®\ÁZÏŒÛ?A‰¯WÑèê™’³)Åú¯ƒ­à;As´âçÛ*\¥”g…çîL›"jÄ” È)]�^]?&Gòò×p` sÙÌ€û€`¯”!¥Ñwwõ\cy_”‰úYˆ•Á¾H¹˜RÌÐR`Ä�DzÁ“àNwtêž>§ '³ù¹^Z\õ¸êѨ›N ?d8 \ÜÏþìÏr§tÂõbxÎ_î´¾¹ckÉ©ð÷òºjtC€N6lz*~*5æ½ÝåUh´òIDAT׿9ç·Ç~q4m† 4€;µº7³r*ßõ�” WÁµ¹ð ÐP¡´³òÂ… ¬âàJ†à4ÆHsNNèÁSR�Îáä`Aˆå ;Œ×;Vr)°—™Æ=Jà �•ÑZš"ÌB !uÀ³°±|]”î–²„£pâ6Å­æð’JQ¸Í±úkjøhî5­QKS¦MÄÓVºñnH+ÉnDÞŒ ”HšhtÌ+9wöLõÅßý·Õ±×zÛÉ7Î@b‹÷æ ´àU²ÉhMõ`|Ï>ûì,&;é÷?3ñ»6 ¹Âzó+ØKíŸ"ðw8¦eø©Ÿú©ñ/|á Ë1–OY ζˆ[: ø&6µ¸‚=7bË' ]W§YHÄ{”îÛ~ ç4ža¶2\¿“KÃáÔYfÒuÈÅZÌéóHŒ_¨’Î-Ç)ý�8'‘Y®GˉÇÖ].ñÚSrƈìžû 9/p@Œ3èT00u‘7›£ÀÐó¡QH\€&1ÙG"3Í3LXI�»Lý³OFü+°YÉ~œ%ðè£�V�?ñ8FœžÂ& ½-Úy酗串\¶§ ?HǾ³O}êS¡}^þ·†`ŒÀ§`~ þ4Ø©·â£ýèÝO~ò“·?ö±�acª¦£1(Í öOÿg?�q×­8,c›Ÿ\±³âÒÈÝ»÷T»÷îÆºólV =ÿü÷0ð`I§µD…m"¼„¤5Pc‚KiAQ�˜&œÞ­4¦qÎ$áÙÄ¢GÝ"ܽ2jˆ$_*Ä*®ÂrÖ%Êy@¬ËÐf$O]L3Æ�t!)ˆ®!À:7Î7>~§zñ…äúÝßùnÚ´¹Ú»woµ xØ{Ï—×Ö­›«Í˜;À­Â?84P}á󿙲ˆôà/üÂ/ÜÁÛË÷ tåJ›Ö}¨'qm¡rãøµ_ûµU¿ýÛ¿}û³ŸýìJlà=k²-Î8¶xåvV¥ nÀ2In Ƀ´–˜…ã° Æa�l½Ì·;›[¯½Ê‘ʼâ.@æ ¡z(Âa”Æf<Ž"Ö¯–°!Ðd‘Û D&�š£ú"Î ôw›P…`[‹€™´É׸MžŠWÇ4ó¤UÚ«q`n¿&;)L›�°é²þ¦L£Q€Jּ׌8E�WɱŻ›™rý@/n*y@î«_ýêì—¾ô%«üÌÉ_çOÑ 0�VÀnà| ×SD¦!8~üøªøÃÆã§Q¨ñ§Ÿ~úî3Ï<³ ãü£gÏ�¬…н9Òh…¿üòË "*ÿÚuë±{ìj9¼�àƒ�Ú™ÙÜÐúÁZZr+‹YLE´ÄðgqœìBÖLÒ |:µ/eTÇtù¨ 7pt/Ž�à½~Rô¯*ÿÏÿüϧ$ß…Î=Kà@/ CðëÀýoqé*Ò÷ݓȎÛTÍ¡vÅ+M¯xŠÿý{\�<@oŠ` DÍ¥I›Ç«)èSýV¥�b›,%ºŽH¸téruçv¼2ñ½r0$ àekö7þÏÏ/§ÞYð›Íþq¼ùÓ }¬˜ÝÐ{Y¼ÐÈ%�ÖÀßœ;S~ W˜'à? ¤e�£kƒÑðè•ÃÓ8ÞÛœÅSþ[5NëÆÞëº`—.ƒ>ŽørÏÑÒÛ4b\GKŽTE§Ž™tA¤mãŠo˜b„!~‹z³õŠº˜šæÔ¸¤Ž°þeÕæQ¨\ÝÎ=š”Co´eîyúÉÉéjMô¥âV®ZQ;vlQ²CC‰é½sXA;ÃI>ç½~ý:u4ÕDÎ|ú0ðŸ³ééÀ|ßÿæ©�­›·ì¼yûV~ò†/&ì^[ŠýºRº]ãûý¦óÁÿÊùC¨S™ÙkËœZ ÷}ÿ[´¨|zÍ· æûyØ–î÷•¿ï§ñ(~uún\ å'·ž?úNúûo˜ Ò-„›Ï›^ÓmËÃ÷_k©xg‹<‹é\¿‡ëG�æ—æ"RÝÿ™=Gáßq!¼IEND®B`‚icnV C CorsixTH-0.70.0/AnimView/app.cpp000066400000000000000000000027271522247547500163310ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "app.h" #include "frmMain.h" #include "frmSprites.h" IMPLEMENT_APP(ThemeHospitalAnimViewApp) bool ThemeHospitalAnimViewApp::OnInit() { wxTopLevelWindow* pForm; if (::wxMessageBox(L"Launch animation viewer? (No -> sprite viewer)", L"AnimView", wxYES_NO) == wxYES) pForm = new frmMain; else pForm = new frmSprites; pForm->Show(true); SetTopWindow(pForm); return true; } CorsixTH-0.70.0/AnimView/app.h000066400000000000000000000031051522247547500157650ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef ANIMVIEW_APP_H_ #define ANIMVIEW_APP_H_ // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif // for all others, include the necessary headers (this file is usually all you // need because it includes almost all "standard" wxWidgets headers) #ifndef WX_PRECOMP #include "wx/wx.h" #endif // ---------------------------- class ThemeHospitalAnimViewApp : public wxApp { bool OnInit() override; }; DECLARE_APP(ThemeHospitalAnimViewApp) #endif CorsixTH-0.70.0/AnimView/backdrop.h000066400000000000000000000206361522247547500170020ustar00rootroot00000000000000/* XPM */ // clang-format off static const char *const backdrop_xpm[] = { "126 64 12 1", "f c #695D7D", "c c #6D6D6D", ". c #797979", "j c #3561CA", "i c #797196", "d c #8275A2", "b c #867DAA", "e c Gray51", "a c #8E8E8E", "g c #A29A9E", "h c #AAAAAA", " c None", " .. .. ", " abcccd abcccd ", " abccccccce abccccccce ", " abcfcfcfcfcfcb abcfcfcfcfcfcb ", " agacccccfcfcfcccag agacccccfcfcfcccag ", " eahhhabfcfcfcfcfbahhha eahhhabfcfcfcfcfbahhha ", " eahhhhhhhabfffffbahhhhhhha eahhhhhhhabfffffbahhhhhhha ", " iahhhhhhhhhhha.f.ahhhhhhhhhhha iahhhhhhhhhhha.f.ahhhhhhhhhhha ", " ...hhhhhhhhhhhhh...hhhhhhhhhhhhh.. ...hhhhhhhhhhhhh...hhhhhhhhhhhhh.. ", " abcccdahhhhhhhhhadcccdahhhhhhhhhabcccd abcccdahhhhhhhhhadcccdahhhhhhhhhabcccd ", " abccccccceahhhhhaeccccccceahhhhhabccccccce abccccccceahhhhhaeccccccceahhhhhabccccccce ", " abcfcfcfcfcfcbahgbcfcfcfcfcfcbahabcfcfcfcfcfcb abcfcfcfcfcfcbahgbcfcfcfcfcfcbahabcfcfcfcfcfcb ", " agacccccfcfcfcccagacccccfcfcfcccagacccccfcfcfcccag agacccccfcfcfcccagacccccfcfcfcccagacccccfcfcfcccag ", " eahhhabfcfcfcfcfbahhhabfcfcfcfcfeahhhabfcfcfcfcfbahhha eahhhabfcfcfcfcfbahhhabfcfcfcfcfeahhhabfcfcfcfcfbahhha ", " eahhhhhhhabfffffbahhhhhhhabfffffeahhhhhhhabfffffbahhhhhhha eahhhhhhhabfffffbahhhhhhhabfffffeahhhhhhhabfffffbahhhhhhha ", "iahhhhhhhhhhha.f.ahhhhhhhhhhha.fiahhhhhhhhhhha.f.ahhhhhhhhhhha iahhhhhhhhhhha.f.ahhhhhhhhhhha.fiahhhhhhhhhhha.f.ahhhhhhhhhhha", ".hhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhhhjj.hhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhhh", " ahhhhhhhhhadcccdahhhhhhhhhabcccdahhhhhhhhhadcccdahhhhhhhhhjjccjjahhhhhhhhhadcccdahhhhhhhhhabcccdahhhhhhhhhadcccdahhhhhhhhh ", " ahhhhhaeccccccceahhhhhabccccccceahhhhhaeccccccceahhhhhjjccccccjjahhhhhaeccccccceahhhhhabccccccceahhhhhaeccccccceahhhhh ", " ahgbcfcfcfcfcfcbahabcfcfcfcfcfcbahgbcfcfcfcfcfcbahjjcfcfcfcfcfjjahgbcfcfcfcfcfcbahabcfcfcfcfcfcbahgbcfcfcfcfcfcbah ", " acccccfcfcfcccagacccccfcfcfcccagacccccfcfcfcccjjacccccfcfcfcccjjacccccfcfcfcccagacccccfcfcfcccagacccccfcfcfccc ", " bfcfcfcfcfeahhhabfcfcfcfcfbahhhabfcfcfcfcfjjhhhabfcfcfcfcfbahhjjbfcfcfcfcfeahhhabfcfcfcfcfbahhhabfcfcfcfcf ", " bfffffeahhhhhhhabfffffbahhhhhhhabfffffjjhhhhhhhabfffffbahhhhhhjjbfffffeahhhhhhhabfffffbahhhhhhhabfffff ", " .fiahhhhhhhhhhha.f.ahhhhhhhhhhha.fjjhhhhhhhhhhha.f.ahhhhhhhhhhjj.fiahhhhhhhhhhha.f.ahhhhhhhhhhha.f ", " .hhhhhhhhhhhhh...hhhhhhhhhhhhhjj.hhhhhhhhhhhhh...hhhhhhhhhhhhhjj.hhhhhhhhhhhhh...hhhhhhhhhhhhh ", " ahhhhhhhhhadcccdahhhhhhhhhjjcccdahhhhhhhhhadcccdahhhhhhhhhabccjjahhhhhhhhhadcccdahhhhhhhhh ", " ahhhhhaeccccccceahhhhhjjccccccceahhhhhaeccccccceahhhhhabccccccjjahhhhhaeccccccceahhhhh ", " ahgbcfcfcfcfcfcbahjjcfcfcfcfcfcbahgbcfcfcfcfcfcbahabcfcfcfcfcfjjahgbcfcfcfcfcfcbah ", " acccccfcfcfcccjjacccccfcfcfcccagacccccfcfcfcccagacccccfcfcfcccjjacccccfcfcfccc ", " bfcfcfcfcfjjhhhabfcfcfcfcfbahhhabfcfcfcfcfeahhhabfcfcfcfcfbahhjjbfcfcfcfcf ", " bfffffjjhhhhhhhabfffffbahhhhhhhabfffffeahhhhhhhabfffffbahhhhhhjjbfffff ", " .fjjhhhhhhhhhhha.f.ahhhhhhhhhhha.fiahhhhhhhhhhha.f.ahhhhhhhhhhjj.f ", " ..jjhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhjj.. ", " abcccdjjhhhhhhhhadcccdahhhhhhhhhabcccdahhhhhhhhhadcccdahhhhhhhjjabcccd ", " abcccccccejjhhhhaeccccccceahhhhhabccccccceahhhhhaeccccccceahhhjjabccccccce ", " abcfcfcfcfcfcbjjgbcfcfcfcfcfcbahabcfcfcfcfcfcbahgbcfcfcfcfcfcbjjabcfcfcfcfcfcb ", " agacccccfcfcfcccagjjccccfcfcfcccagacccccfcfcfcccagacccccfcfcfcjjagacccccfcfcfcccag ", " eahhhabfcfcfcfcfbahhhajjcfcfcfcfeahhhabfcfcfcfcfbahhhabfcfcfcfjjeahhhabfcfcfcfcfbahhha ", " eahhhhhhhabfffffbahhhhhhhajjffffeahhhhhhhabfffffbahhhhhhhabfffjjeahhhhhhhabfffffbahhhhhhha ", " iahhhhhhhhhhha.f.ahhhhhhhhhhhajjiahhhhhhhhhhha.f.ahhhhhhhhhhhajjiahhhhhhhhhhha.f.ahhhhhhhhhhha ", " ...hhhhhhhhhhhhh...hhhhhhhhhhhhh..jjhhhhhhhhhhhh...hhhhhhhhhhhjj...hhhhhhhhhhhhh...hhhhhhhhhhhhh.. ", " abcccdahhhhhhhhhadcccdahhhhhhhhhabcccdjjhhhhhhhhadcccdahhhhhhhjjabcccdahhhhhhhhhadcccdahhhhhhhhhabcccd ", " abccccccceahhhhhaeccccccceahhhhhabcccccccejjhhhhaeccccccceahhhjjabccccccceahhhhhaeccccccceahhhhhabccccccce ", " abcfcfcfcfcfcbahgbcfcfcfcfcfcbahabcfcfcfcfcfcbjjgbcfcfcfcfcfcbjjabcfcfcfcfcfcbahgbcfcfcfcfcfcbahabcfcfcfcfcfcb ", " agacccccfcfcfcccagacccccfcfcfcccagacccccfcfcfcccagjjccccfcfcfcjjagacccccfcfcfcccagacccccfcfcfcccagacccccfcfcfcccag ", " eahhhabfcfcfcfcfbahhhabfcfcfcfcfeahhhabfcfcfcfcfbahhhajjcfcfcfjjeahhhabfcfcfcfcfbahhhabfcfcfcfcfeahhhabfcfcfcfcfbahhha ", " eahhhhhhhabfffffbahhhhhhhabfffffeahhhhhhhabfffffbahhhhhhhajjffjjeahhhhhhhabfffffbahhhhhhhabfffffeahhhhhhhabfffffbahhhhhhha ", "iahhhhhhhhhhha.f.ahhhhhhhhhhha.fiahhhhhhhhhhha.f.ahhhhhhhhhhhajjiahhhhhhhhhhha.f.ahhhhhhhhhhha.fiahhhhhhhhhhha.f.ahhhhhhhhhhha", ".hhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhhh .hhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhhh...hhhhhhhhhhhhh", " ahhhhhhhhhadcccdahhhhhhhhhabcccdahhhhhhhhhadcccdahhhhhhhhh ahhhhhhhhhadcccdahhhhhhhhhabcccdahhhhhhhhhadcccdahhhhhhhhh ", " ahhhhhaeccccccceahhhhhabccccccceahhhhhaeccccccceahhhhh ahhhhhaeccccccceahhhhhabccccccceahhhhhaeccccccceahhhhh ", " ahgbcfcfcfcfcfcbahabcfcfcfcfcfcbahgbcfcfcfcfcfcbah ahgbcfcfcfcfcfcbahabcfcfcfcfcfcbahgbcfcfcfcfcfcbah ", " acccccfcfcfcccagacccccfcfcfcccagacccccfcfcfccc acccccfcfcfcccagacccccfcfcfcccagacccccfcfcfccc ", " bfcfcfcfcfeahhhabfcfcfcfcfbahhhabfcfcfcfcf bfcfcfcfcfeahhhabfcfcfcfcfbahhhabfcfcfcfcf ", " bfffffeahhhhhhhabfffffbahhhhhhhabfffff bfffffeahhhhhhhabfffffbahhhhhhhabfffff ", " .fiahhhhhhhhhhha.f.ahhhhhhhhhhha.f .fiahhhhhhhhhhha.f.ahhhhhhhhhhha.f ", " .hhhhhhhhhhhhh...hhhhhhhhhhhhh .hhhhhhhhhhhhh...hhhhhhhhhhhhh ", " ahhhhhhhhhadcccdahhhhhhhhh ahhhhhhhhhadcccdahhhhhhhhh ", " ahhhhhaeccccccceahhhhh ahhhhhaeccccccceahhhhh ", " ahgbcfcfcfcfcfcbah ahgbcfcfcfcfcfcbah ", " acccccfcfcfccc acccccfcfcfccc ", " bfcfcfcfcf bfcfcfcfcf ", " bfffff bfffff ", " .f .f " }; // clang-format on CorsixTH-0.70.0/AnimView/config.h.in000066400000000000000000000027701522247547500170660ustar00rootroot00000000000000/* Copyright (c) 2019 Stephen "TheCycoONE" Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_AV_CONFIG_H_ #define CORSIX_AV_CONFIG_H_ /** Standard includes **/ #include // IWYU pragma: export #include // IWYU pragma: export // We bring in the most common stddef and stdint types to avoid typing using std::size_t; using std::uint8_t; using std::uint16_t; using std::uint32_t; using std::uint64_t; using std::int8_t; using std::int16_t; using std::int32_t; using std::int64_t; #endif // CORSIX_AV_CONFIG_H_ CorsixTH-0.70.0/AnimView/frmMain.cpp000066400000000000000000001126271522247547500171430ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "frmMain.h" #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "backdrop.h" BEGIN_EVENT_TABLE(frmMain, wxFrame) EVT_BUTTON(ID_LOAD, frmMain::_onLoad) EVT_BUTTON(ID_BROWSE, frmMain::_onBrowse) EVT_BUTTON(ID_FIRST_ANIM, frmMain::_onFirstAnim) EVT_BUTTON(ID_PREV_ANIM, frmMain::_onPrevAnim) EVT_BUTTON(ID_NEXT_ANIM, frmMain::_onNextAnim) EVT_BUTTON(ID_LAST_ANIM, frmMain::_onLastAnim) EVT_BUTTON(ID_PREV_FRAME, frmMain::_onPrevFrame) EVT_BUTTON(ID_NEXT_FRAME, frmMain::_onNextFrame) EVT_BUTTON(ID_PLAY_PAUSE, frmMain::_onPlayPause) EVT_BUTTON(ID_SEARCH_LAYER_ID, frmMain::_onSearchLayerId) EVT_BUTTON(ID_SEARCH_FRAME, frmMain::_onSearchFrame) EVT_BUTTON(ID_SEARCH_SOUND, frmMain::_onSearchSoundIndex) EVT_LISTBOX(ID_SEARCH_RESULTS, frmMain::_onAnimChar) EVT_RADIOBUTTON(ID_GHOST_0, frmMain::_onGhostFileChange) EVT_RADIOBUTTON(ID_GHOST_1, frmMain::_onGhostFileChange) EVT_RADIOBUTTON(ID_GHOST_2, frmMain::_onGhostFileChange) EVT_RADIOBUTTON(ID_GHOST_3, frmMain::_onGhostFileChange) EVT_SPINCTRL(wxID_ANY, frmMain::_onGhostIndexChange) EVT_TEXT(ID_ANIM_INDEX, frmMain::_onAnimChar) EVT_TIMER(ID_TIMER_ANIMATE, frmMain::_onTimer) EVT_CHECKBOX(ID_DRAW_MOOD, frmMain::_onToggleDrawMood) EVT_CHECKBOX(ID_DRAW_COORDINATES, frmMain::_onToggleDrawCoordinates) EVT_BUTTON(ID_MOOD_FRAME, frmMain::_onMoodFrameApply) EVT_BUTTON(ID_MOOD_LEFT, frmMain::_onMoodLeft) EVT_BUTTON(ID_MOOD_RIGHT, frmMain::_onMoodRight) EVT_BUTTON(ID_MOOD_UP, frmMain::_onMoodUp) EVT_BUTTON(ID_MOOD_DOWN, frmMain::_onMoodDown) END_EVENT_TABLE() namespace { constexpr int make_id(int layer, int id) { return frmMain::ID_LAYER_CHECKS + (layer * 25) + id; } } // namespace frmMain::frmMain() : wxFrame(nullptr, wxID_ANY, L"Theme Hospital Animation Viewer") { wxSizer* pMainSizer = new wxBoxSizer(wxHORIZONTAL); wxSizer* pSidebarSizer = new wxBoxSizer(wxVERTICAL); wxSizerFlags fillSizerFlags(0); fillSizerFlags.Expand().Border(wxALL, 0); wxSizerFlags fillBorderSizerFlags(0); fillBorderSizerFlags.Expand().Border(wxALL, 1); wxSizerFlags buttonSizerFlags(0); buttonSizerFlags.Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1); wxStaticBoxSizer* pThemeHospital = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Theme Hospital"); pThemeHospital->Add( new wxStaticText(this, wxID_ANY, L"Directory:"), wxSizerFlags(0).Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1)); pThemeHospital->Add( m_txtTHPath = new wxTextCtrl(this, wxID_ANY, L"", wxDefaultPosition, wxDefaultSize, wxTE_CENTRE), wxSizerFlags(1).Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1)); pThemeHospital->Add(new wxButton(this, ID_BROWSE, L"Browse..."), buttonSizerFlags); pThemeHospital->Add(new wxButton(this, ID_LOAD, L"Load"), buttonSizerFlags); pSidebarSizer->Add(pThemeHospital, fillSizerFlags); wxStaticBoxSizer* pPalette = new wxStaticBoxSizer(wxVERTICAL, this, L"Palette"); wxBoxSizer* pPaletteTop = new wxBoxSizer(wxHORIZONTAL); pPaletteTop->Add(new wxRadioButton(this, ID_GHOST_0, L"Standard"), 1); pPaletteTop->Add(new wxRadioButton(this, ID_GHOST_1, L"Ghost 1"), 1); pPaletteTop->Add(new wxRadioButton(this, ID_GHOST_2, L"Ghost 2"), 1); pPaletteTop->Add(new wxRadioButton(this, ID_GHOST_3, L"Ghost 66"), 1); pPalette->Add(pPaletteTop, fillBorderSizerFlags); pPalette->Add( new wxSpinCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS | wxSP_WRAP, 0, 255), wxSizerFlags(0).Center().Border(wxALL, 1)); pSidebarSizer->Add(pPalette, fillSizerFlags); wxStaticBoxSizer* pAnimation = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Animation"); pAnimation->Add(new wxButton(this, ID_FIRST_ANIM, L"<<", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), buttonSizerFlags); pAnimation->Add(new wxButton(this, ID_PREV_ANIM, L"<", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), buttonSizerFlags); m_txtAnimIndex = new wxTextCtrl(this, ID_ANIM_INDEX, L"0", wxDefaultPosition, wxDefaultSize, wxTE_CENTRE); pAnimation->Add( m_txtAnimIndex, wxSizerFlags(1).Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1)); pAnimation->Add( new wxStaticText(this, wxID_ANY, L"of"), wxSizerFlags(0).Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1)); m_txtAnimCount = new wxTextCtrl(this, wxID_ANY, L"?", wxDefaultPosition, wxDefaultSize, wxTE_CENTRE | wxTE_READONLY); pAnimation->Add( m_txtAnimCount, wxSizerFlags(1).Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1)); pAnimation->Add(new wxButton(this, ID_NEXT_ANIM, L">", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), buttonSizerFlags); pAnimation->Add(new wxButton(this, ID_LAST_ANIM, L">>", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), buttonSizerFlags); pSidebarSizer->Add(pAnimation, fillSizerFlags); wxStaticBoxSizer* pFrame = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Frame"); pFrame->Add(new wxButton(this, ID_PREV_FRAME, L"<", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), buttonSizerFlags); pFrame->Add( m_txtFrameIndex = new wxTextCtrl(this, wxID_ANY, L"0", wxDefaultPosition, wxDefaultSize, wxTE_CENTRE), wxSizerFlags(1).Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1)); pFrame->Add(new wxStaticText(this, wxID_ANY, L"of", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE), wxSizerFlags(0).Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1)); m_txtFrameCount = new wxTextCtrl(this, wxID_ANY, L"?", wxDefaultPosition, wxDefaultSize, wxTE_CENTRE | wxTE_READONLY); pFrame->Add(m_txtFrameCount, wxSizerFlags(1).Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1)); pFrame->Add(new wxButton(this, ID_NEXT_FRAME, L">", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), buttonSizerFlags); m_btnPlayPause = new wxButton(this, ID_PLAY_PAUSE, L"Pause"); pFrame->Add(m_btnPlayPause, wxSizerFlags(1).Align(wxALIGN_CENTER_VERTICAL).Border(wxALL, 1)); pSidebarSizer->Add(pFrame, fillSizerFlags); wxSizerFlags layerSizerFlags(0); layerSizerFlags.Align(wxALIGN_CENTER).Border(wxALL, 1); wxStaticBoxSizer* pLayer0 = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Layer 0 (Patient Head)"); pLayer0->Add(new wxCheckBox(this, make_id(0, 0), L"0"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 2), L"2"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 4), L"4"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 6), L"6"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 8), L"8"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 10), L"10"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 12), L"12"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 14), L"14"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 16), L"16"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 18), L"18"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 20), L"20"), layerSizerFlags); pLayer0->Add(new wxCheckBox(this, make_id(0, 22), L"22"), layerSizerFlags); pSidebarSizer->Add(pLayer0, fillSizerFlags); wxStaticBoxSizer* pLayer1 = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Layer 1 (Patient Clothes)"); pLayer1->Add(new wxCheckBox(this, make_id(1, 0), L"0"), layerSizerFlags); pLayer1->Add(new wxCheckBox(this, make_id(1, 2), L"2 (A)"), layerSizerFlags); pLayer1->Add(new wxCheckBox(this, make_id(1, 4), L"4 (B)"), layerSizerFlags); pLayer1->Add(new wxCheckBox(this, make_id(1, 6), L"6 (C)"), layerSizerFlags); pLayer1->Add(new wxCheckBox(this, make_id(1, 8), L"8"), layerSizerFlags); pLayer1->Add(new wxCheckBox(this, make_id(1, 10), L"10"), layerSizerFlags); pSidebarSizer->Add(pLayer1, fillSizerFlags); wxStaticBoxSizer* pLayer2 = new wxStaticBoxSizer( wxHORIZONTAL, this, L"Layer 2 (Bandages / Patient Accessory)"); pLayer2->Add(new wxCheckBox(this, make_id(2, 2), L"2 (Head / Alt Shoes)"), layerSizerFlags); pLayer2->Add(new wxCheckBox(this, make_id(2, 4), L"4 (Arm / Hat)"), layerSizerFlags); pLayer2->Add(new wxCheckBox(this, make_id(2, 6), L"6"), layerSizerFlags); pSidebarSizer->Add(pLayer2, fillSizerFlags); wxStaticBoxSizer* pLayer3 = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Layer 3 (Bandages / Colour)"); pLayer3->Add(new wxCheckBox(this, make_id(3, 0), L"0"), layerSizerFlags); pLayer3->Add(new wxCheckBox(this, make_id(3, 2), L"2 (? / Yellow)"), layerSizerFlags); pLayer3->Add(new wxCheckBox(this, make_id(3, 4), L"4 (L Foot / Blue)"), layerSizerFlags); pLayer3->Add(new wxCheckBox(this, make_id(3, 6), L"6 (? / White)"), layerSizerFlags); pLayer3->Add(new wxCheckBox(this, make_id(3, 8), L"8 (R Arm)"), layerSizerFlags); pLayer3->Add(new wxCheckBox(this, make_id(3, 10), L"10 (R Foot)"), layerSizerFlags); pSidebarSizer->Add(pLayer3, fillSizerFlags); wxStaticBoxSizer* pLayer4 = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Layer 4 (Bandages / Repair)"); pLayer4->Add(new wxCheckBox(this, make_id(4, 0), L"0"), layerSizerFlags); pLayer4->Add(new wxCheckBox(this, make_id(4, 2), L"2 (Head / Repair)"), layerSizerFlags); pLayer4->Add(new wxCheckBox(this, make_id(4, 4), L"4 (L Root)"), layerSizerFlags); pLayer4->Add(new wxCheckBox(this, make_id(4, 6), L"6"), layerSizerFlags); pLayer4->Add(new wxCheckBox(this, make_id(4, 8), L"8 (R Arm)"), layerSizerFlags); pLayer4->Add(new wxCheckBox(this, make_id(4, 10), L"10 (R Foot)"), layerSizerFlags); pSidebarSizer->Add(pLayer4, fillSizerFlags); wxStaticBoxSizer* pLayer5 = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Layer 5 (Staff Head)"); pLayer5->Add(new wxCheckBox(this, make_id(5, 0), L"0"), layerSizerFlags); pLayer5->Add(new wxCheckBox(this, make_id(5, 2), L"2 (W1)"), layerSizerFlags); pLayer5->Add(new wxCheckBox(this, make_id(5, 4), L"4 (B1)"), layerSizerFlags); pLayer5->Add(new wxCheckBox(this, make_id(5, 6), L"6 (W2)"), layerSizerFlags); pLayer5->Add(new wxCheckBox(this, make_id(5, 8), L"8 (B2)"), layerSizerFlags); pLayer5->Add(new wxCheckBox(this, make_id(5, 10), L"10"), layerSizerFlags); pSidebarSizer->Add(pLayer5, fillSizerFlags); wxStaticBoxSizer* pLayer10 = new wxStaticBoxSizer( wxHORIZONTAL, this, L"Layer 10 (Wall Colour / Smoke)"); pLayer10->Add(new wxCheckBox(this, make_id(10, 2), L"2 (Yellow / Smoke)"), layerSizerFlags); pLayer10->Add(new wxCheckBox(this, make_id(10, 4), L"4 (Blue)"), layerSizerFlags); pLayer10->Add(new wxCheckBox(this, make_id(10, 6), L"6 (White)"), layerSizerFlags); pSidebarSizer->Add(pLayer10, fillSizerFlags); wxStaticBoxSizer* pLayer11 = new wxStaticBoxSizer( wxHORIZONTAL, this, L"Layer 11 (Wall Colour / Smoke / Screen)"); pLayer11->Add( new wxCheckBox(this, make_id(11, 2), L"2 (Yellow / Smoke / On)"), layerSizerFlags); pLayer11->Add(new wxCheckBox(this, make_id(11, 4), L"4 (Blue)"), layerSizerFlags); pLayer11->Add(new wxCheckBox(this, make_id(11, 6), L"6 (Green)"), layerSizerFlags); pSidebarSizer->Add(pLayer11, fillSizerFlags); wxStaticBoxSizer* pLayer12 = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Layer 12 (Smoke)"); pLayer12->Add(new wxCheckBox(this, make_id(12, 2), L"2 (Smoke)"), layerSizerFlags); pSidebarSizer->Add(pLayer12, fillSizerFlags); wxStaticBoxSizer* pMoodOverlay = new wxStaticBoxSizer(wxVERTICAL, this, L"Overlays"); pMoodOverlay->Add(new wxCheckBox(this, ID_DRAW_MOOD, L"Draw mood overlay"), fillBorderSizerFlags); wxBoxSizer* pMoodRow = new wxBoxSizer(wxHORIZONTAL); pMoodRow->Add( new wxStaticText(this, wxID_ANY, L"Marker position (click to move it):"), wxSizerFlags(0).Expand().Border(wxRIGHT, 2)); pMoodRow->Add( m_txtMoodPosition[0] = new wxTextCtrl(this, wxID_ANY, L"{0, 0}"), wxSizerFlags(1).Expand().Border(wxRIGHT, 1)); pMoodRow->Add( m_txtMoodPosition[1] = new wxTextCtrl(this, wxID_ANY, L"{0, 0, \"px\"}"), wxSizerFlags(1).Expand()); pMoodOverlay->Add(pMoodRow, wxSizerFlags(1).Expand().Border(wxALL, 2)); wxSizerFlags moodAdjustFlags(0); moodAdjustFlags.Align(wxALIGN_CENTER).Border(wxALL, 1); layerSizerFlags.Align(wxALIGN_CENTER).Border(wxALL, 1); wxBoxSizer* pMoodAdjustRow = new wxBoxSizer(wxHORIZONTAL); m_txtMoodFramePos = new wxTextCtrl(this, ID_MOOD_POS, L"{0.0, 0.0}", wxDefaultPosition, wxDefaultSize, wxTE_CENTRE); pMoodAdjustRow->Add(m_txtMoodFramePos, wxSizerFlags(1).Expand()); pMoodAdjustRow->Add(new wxButton(this, ID_MOOD_FRAME, L"Set marker"), moodAdjustFlags); pMoodAdjustRow->Add(new wxButton(this, ID_MOOD_LEFT, L"<", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), moodAdjustFlags); pMoodAdjustRow->Add(new wxButton(this, ID_MOOD_RIGHT, L">", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), moodAdjustFlags); pMoodAdjustRow->Add(new wxButton(this, ID_MOOD_UP, L"^", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), moodAdjustFlags); pMoodAdjustRow->Add(new wxButton(this, ID_MOOD_DOWN, L"v", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), moodAdjustFlags); pMoodOverlay->Add(pMoodAdjustRow, wxSizerFlags(1).Expand().Border(wxALL, 2)); pMoodOverlay->Add( new wxCheckBox(this, ID_DRAW_COORDINATES, L"Draw tile coordinates"), fillSizerFlags); pSidebarSizer->Add(pMoodOverlay, fillSizerFlags); for (int iLayer = 0; iLayer < 13; ++iLayer) { wxCheckBox* pCheck = wxDynamicCast(FindWindow(make_id(iLayer, 0)), wxCheckBox); if (pCheck != nullptr) { pCheck->SetValue(true); m_mskLayers.set(iLayer, 0); } } Connect(make_id(0, 0), make_id(12, 24), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&frmMain::_onToggleMask); wxStaticBoxSizer* pSearch = new wxStaticBoxSizer(wxVERTICAL, this, L"Search"); wxBoxSizer* pSearchButtons = new wxBoxSizer(wxHORIZONTAL); pSearchButtons->Add(new wxButton(this, ID_SEARCH_LAYER_ID, L"Layer/ID"), buttonSizerFlags); pSearchButtons->Add(new wxButton(this, ID_SEARCH_FRAME, L"Frame"), buttonSizerFlags); pSearchButtons->Add(new wxButton(this, ID_SEARCH_SOUND, L"Sound"), buttonSizerFlags); pSearch->Add(pSearchButtons, 0); m_lstSearchResults = new wxListBox(this, ID_SEARCH_RESULTS); pSearch->Add(m_lstSearchResults, wxSizerFlags(1).Expand().Border(wxALL, 1)); wxStaticBoxSizer* pFrameFlags = new wxStaticBoxSizer(wxHORIZONTAL, this, L"Frame Flags"); wxSizerFlags frameSizerFlags(0); frameSizerFlags.Expand().Border(wxALL, 2); wxBoxSizer* pFlags1 = new wxBoxSizer(wxVERTICAL); m_txtFrameFlags[0] = new wxTextCtrl(this, wxID_ANY); pFlags1->Add(m_txtFrameFlags[0], frameSizerFlags); m_chkFrameFlags[0] = new wxCheckBox(this, wxID_ANY, L"2^0"); m_chkFrameFlags[1] = new wxCheckBox(this, wxID_ANY, L"2^1"); m_chkFrameFlags[2] = new wxCheckBox(this, wxID_ANY, L"2^2"); m_chkFrameFlags[3] = new wxCheckBox(this, wxID_ANY, L"2^3"); m_chkFrameFlags[4] = new wxCheckBox(this, wxID_ANY, L"2^4"); m_chkFrameFlags[5] = new wxCheckBox(this, wxID_ANY, L"2^5"); m_chkFrameFlags[6] = new wxCheckBox(this, wxID_ANY, L"2^6"); m_chkFrameFlags[7] = new wxCheckBox(this, wxID_ANY, L"2^7"); pFlags1->Add(m_chkFrameFlags[0], frameSizerFlags); pFlags1->Add(m_chkFrameFlags[1], frameSizerFlags); pFlags1->Add(m_chkFrameFlags[2], frameSizerFlags); pFlags1->Add(m_chkFrameFlags[3], frameSizerFlags); pFlags1->Add(m_chkFrameFlags[4], frameSizerFlags); pFlags1->Add(m_chkFrameFlags[5], frameSizerFlags); pFlags1->Add(m_chkFrameFlags[6], frameSizerFlags); pFlags1->Add(m_chkFrameFlags[7], frameSizerFlags); pFrameFlags->Add(pFlags1, wxSizerFlags(1).Expand()); wxBoxSizer* pFlags2 = new wxBoxSizer(wxVERTICAL); m_txtFrameFlags[1] = new wxTextCtrl(this, wxID_ANY); pFlags2->Add(m_txtFrameFlags[1], frameSizerFlags); m_chkFrameFlags[8] = new wxCheckBox(this, wxID_ANY, L"2^8 (Animation Start)"); m_chkFrameFlags[9] = new wxCheckBox(this, wxID_ANY, L"2^9"); m_chkFrameFlags[10] = new wxCheckBox(this, wxID_ANY, L"2^10"); m_chkFrameFlags[11] = new wxCheckBox(this, wxID_ANY, L"2^11"); m_chkFrameFlags[12] = new wxCheckBox(this, wxID_ANY, L"2^12"); m_chkFrameFlags[13] = new wxCheckBox(this, wxID_ANY, L"2^13"); m_chkFrameFlags[14] = new wxCheckBox(this, wxID_ANY, L"2^14"); m_chkFrameFlags[15] = new wxCheckBox(this, wxID_ANY, L"2^15"); pFlags2->Add(m_chkFrameFlags[8], frameSizerFlags); pFlags2->Add(m_chkFrameFlags[9], frameSizerFlags); pFlags2->Add(m_chkFrameFlags[10], frameSizerFlags); pFlags2->Add(m_chkFrameFlags[11], frameSizerFlags); pFlags2->Add(m_chkFrameFlags[12], frameSizerFlags); pFlags2->Add(m_chkFrameFlags[13], frameSizerFlags); pFlags2->Add(m_chkFrameFlags[14], frameSizerFlags); pFlags2->Add(m_chkFrameFlags[15], frameSizerFlags); pFrameFlags->Add(pFlags2, wxSizerFlags(1).Expand()); pMainSizer->Add(pSidebarSizer, wxSizerFlags(0).Expand().Border(wxALL, 2)); wxSizer* pRightHandSizer = new wxBoxSizer(wxVERTICAL); pRightHandSizer->AddSpacer(1); m_panFrame = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_SIMPLE); pRightHandSizer->Add(m_panFrame, wxSizerFlags(0).Expand().Border(wxALL, 2)); m_panFrame->Connect(wxEVT_PAINT, (wxObjectEventFunction)&frmMain::_onPanelPaint, nullptr, this); m_panFrame->Connect(wxEVT_LEFT_UP, (wxObjectEventFunction)&frmMain::_onPanelClick, nullptr, this); m_panFrame->SetMinSize(m_panFrame->ClientToWindowSize(wxSize(402, 402))); pRightHandSizer->AddSpacer(1); pRightHandSizer->Add(pSearch, wxSizerFlags(1).Expand().Border(wxALL, 0)); pRightHandSizer->Add(pFrameFlags, fillSizerFlags); pMainSizer->Add(pRightHandSizer, wxSizerFlags(1).Expand().Border(wxALL, 0)); SetSizer(pMainSizer); SetMinSize(ClientToWindowSize(pMainSizer->CalcMin())); SetSize(GetMinSize()); load(); m_tmrAnimate.SetOwner(this, ID_TIMER_ANIMATE); m_tmrAnimate.Start(100); } void frmMain::_onBrowse(wxCommandEvent& WXUNUSED(evt)) { m_txtTHPath->SetValue(::wxDirSelector(L"Choose Theme Hospital root folder", m_txtTHPath->GetValue(), 0, wxDefaultPosition, this)); } void frmMain::_onLoad(wxCommandEvent& WXUNUSED(evt)) { ::wxInitAllImageHandlers(); load(); } void frmMain::load() { wxBusyCursor oBusy; wxString sPath = m_txtTHPath->GetValue(); if (sPath.IsEmpty()) return; if (sPath.Mid(sPath.Len() - 1) != wxFileName::GetPathSeparator()) { sPath += wxFileName::GetPathSeparator(); } if (!wxFileName::DirExists(sPath)) { ::wxMessageBox(L"Theme Hospital path non-existent", L"Load Animations", wxOK | wxICON_ERROR, this); return; } sPath = _getCaseSensitivePath(L"DATA", sPath); sPath += wxFileName::GetPathSeparator(); wxString aPath = _getCaseSensitivePath(L"VSPR-0", sPath); aPath += wxFileName::GetPathSeparator(); m_oAnims.setSpritePath(aPath); if (!m_oAnims.loadAnimationFile( _getCaseSensitivePath(L"VSTART-1.ANI", sPath)) || !m_oAnims.loadFrameFile(_getCaseSensitivePath(L"VFRA-1.ANI", sPath)) || !m_oAnims.loadListFile(_getCaseSensitivePath(L"VLIST-1.ANI", sPath)) || !m_oAnims.loadElementFile(_getCaseSensitivePath(L"VELE-1.ANI", sPath)) || !m_oAnims.loadTableFile(_getCaseSensitivePath(L"VSPR-0.TAB", sPath)) || !m_oAnims.loadSpriteFile(_getCaseSensitivePath(L"VSPR-0.DAT", sPath)) || !m_oAnims.loadPaletteFile( _getCaseSensitivePath(L"MPALETTE.DAT", sPath)) || !m_oAnims.loadGhostFile( _getCaseSensitivePath(L"../QDATA/GHOST1.DAT", sPath), 1) || !m_oAnims.loadGhostFile( _getCaseSensitivePath(L"../QDATA/GHOST2.DAT", sPath), 2) || !m_oAnims.loadGhostFile( _getCaseSensitivePath(L"../QDATA/GHOST66.DAT", sPath), 3)) { ::wxMessageBox(L"Cannot load one or more data files", L"Load Animations", wxOK | wxICON_ERROR, this); } m_oAnims.markDuplicates(); m_txtAnimCount->SetValue( wxString::Format(L"%zu", m_oAnims.getAnimationCount())); m_imgBackground.Create(400, 400); { unsigned char* pData = m_imgBackground.GetData(); unsigned char cPrimary = 0xFF; unsigned char cSecondary = 0xE0; for (int y = 0; y < 400; ++y) { for (int x = 0; x < 400; x += 8) { memset(pData, cPrimary, 4 * 3); pData += 4 * 3; memset(pData, cSecondary, 4 * 3); pData += 4 * 3; } if (y % 4 == 3) { cPrimary ^= cSecondary; cSecondary ^= cPrimary; cPrimary ^= cSecondary; } } wxBitmap bmpBackdrop(backdrop_xpm); wxBitmap bmpBackground(m_imgBackground); { wxMemoryDC dcBlit; dcBlit.SelectObject(bmpBackground); dcBlit.DrawBitmap(bmpBackdrop, 78, 170, true); } m_imgBackground = bmpBackground.ConvertToImage(); } _onAnimChange(0); } void frmMain::_onToggleMask(wxCommandEvent& evt) { int iID = evt.GetId() - ID_LAYER_CHECKS; int iLayer = iID / 25; iID %= 25; if (evt.IsChecked()) m_mskLayers.set(iLayer, iID); else m_mskLayers.clear(iLayer, iID); m_panFrame->Refresh(false); } void frmMain::_onFirstAnim(wxCommandEvent& evt) { if (m_iCurrentAnim > 0) _onAnimChange(0); } void frmMain::_onPrevAnim(wxCommandEvent& evt) { size_t iAnim = m_iCurrentAnim; while (iAnim > 0) { --iAnim; if (!m_oAnims.isAnimationDuplicate(iAnim)) { _onAnimChange(iAnim); break; } } } void frmMain::_onNextAnim(wxCommandEvent& evt) { size_t iAnim = m_iCurrentAnim + 1; while (iAnim < m_oAnims.getAnimationCount()) { if (!m_oAnims.isAnimationDuplicate(iAnim)) { _onAnimChange(iAnim); break; } iAnim++; } } void frmMain::_onLastAnim(wxCommandEvent& evt) { if (m_iCurrentAnim < m_oAnims.getAnimationCount() - 1) _onAnimChange(m_oAnims.getAnimationCount() - 1); } void frmMain::_onAnimChar(wxCommandEvent& evt) { long conv; if (evt.GetString().ToLong(&conv)) { if (conv < 0 || conv >= m_oAnims.getAnimationCount()) { return; } size_t iAnim = static_cast(conv); _onAnimChange(iAnim); } } void frmMain::_onGhostFileChange(wxCommandEvent& evt) { m_iGhostFile = evt.GetId() - ID_GHOST_0; m_oAnims.setGhost(m_iGhostFile, m_iGhostIndex); m_panFrame->Refresh(false); } void frmMain::_onGhostIndexChange(wxSpinEvent& evt) { m_iGhostIndex = evt.GetPosition(); m_oAnims.setGhost(m_iGhostFile, m_iGhostIndex); m_panFrame->Refresh(false); } void frmMain::_onAnimChange(size_t iIndex) { m_iCurrentAnim = iIndex; m_txtAnimIndex->ChangeValue(wxString::Format(L"%zu", iIndex)); m_iCurrentFrame = 0; THLayerMask oMask; m_oAnims.getAnimationMask(iIndex, oMask); for (int iLayer = 0; iLayer < 13; ++iLayer) { for (int iId = 0; iId < 32; ++iId) { wxCheckBox* pCheck = wxDynamicCast( FindWindow(ID_LAYER_CHECKS + iLayer * 25 + iId), wxCheckBox); if (pCheck) { pCheck->Enable(oMask.isSet(iLayer, iId)); } } } m_panFrame->Refresh(false); m_txtFrameIndex->SetValue(wxString::Format(L"0")); m_txtFrameCount->SetValue( wxString::Format(L"%zu", m_oAnims.getFrameCount(iIndex))); } void frmMain::_onPlayPause(wxCommandEvent& evt) { m_bPlayingAnimation = !m_bPlayingAnimation; if (m_bPlayingAnimation) m_btnPlayPause->SetLabel(L"Pause"); else m_btnPlayPause->SetLabel(L"Play"); } void frmMain::_onPrevFrame(wxCommandEvent& evt) { if (m_oAnims.getAnimationCount() == 0) return; if (m_iCurrentFrame == 0) m_iCurrentFrame = m_oAnims.getFrameCount(m_iCurrentAnim) - 1; else m_iCurrentFrame = (m_iCurrentFrame - 1) % m_oAnims.getFrameCount(m_iCurrentAnim); m_txtFrameIndex->SetValue(wxString::Format(L"%zu", m_iCurrentFrame)); m_panFrame->Refresh(false); } void frmMain::_onNextFrame(wxCommandEvent& evt) { if (m_oAnims.getAnimationCount() == 0) return; m_iCurrentFrame = (m_iCurrentFrame + 1) % m_oAnims.getFrameCount(m_iCurrentAnim); m_txtFrameIndex->SetValue(wxString::Format(L"%zu", m_iCurrentFrame)); m_panFrame->Refresh(false); } void frmMain::_onTimer(wxTimerEvent& evt) { if (m_bPlayingAnimation) { if (m_oAnims.getAnimationCount() == 0) return; m_iCurrentFrame = (m_iCurrentFrame + 1) % m_oAnims.getFrameCount(m_iCurrentAnim); m_txtFrameIndex->SetValue(wxString::Format(L"%zu", m_iCurrentFrame)); m_panFrame->Refresh(false); } } void frmMain::_onToggleDrawMood(wxCommandEvent& evt) { m_bDrawMood = evt.IsChecked(); m_panFrame->Refresh(false); } void frmMain::_onToggleDrawCoordinates(wxCommandEvent& evt) { m_bDrawCoordinates = evt.IsChecked(); m_panFrame->Refresh(false); } void frmMain::_onPanelPaint(wxPaintEvent& evt) { wxPaintDC DC(m_panFrame); wxImage imgCanvas(400, 400, false); if (m_imgBackground.IsOk()) { memcpy(imgCanvas.GetData(), m_imgBackground.GetData(), 400 * 400 * 3); } else { memset(imgCanvas.GetData(), 0xFF, 400 * 400 * 3); } if (!imgCanvas.HasAlpha()) { imgCanvas.InitAlpha(); } for (int iX = 0; iX < 400; ++iX) { for (int iY = 0; iY < 400; ++iY) { // set completely opaque imgCanvas.SetAlpha(iX, iY, (unsigned char)255); } } wxSize oSize; m_oAnims.drawFrame(imgCanvas, m_iCurrentAnim, m_iCurrentFrame, &m_mskLayers, oSize); if (m_bDrawMood) { m_oAnims.drawFrame(imgCanvas, 4048, 0, &m_mskLayers, oSize, m_iMoodDrawX - 1, m_iMoodDrawY - 80); } th_frame_t* pFrame = m_oAnims.getFrameStruct(m_iCurrentAnim, m_iCurrentFrame); uint16_t iFlags = 0; if (pFrame) { iFlags = pFrame->flags; } int iFlags1 = (int)(iFlags & 0xFF); int iFlags2 = (int)(iFlags >> 8); m_txtFrameFlags[0]->SetValue( wxString::Format(L"0x%02x (%03i)", iFlags1, iFlags1)); m_txtFrameFlags[1]->SetValue( wxString::Format(L"0x%02x00 (256 * %03i)", iFlags2, iFlags2)); for (int i = 0; i < 16; ++i) m_chkFrameFlags[i]->SetValue((iFlags & (1 << i)) != 0); wxBitmap bmpCanvas(imgCanvas); DC.DrawBitmap(bmpCanvas, 1, 1, false); // Draw relative tile coordinates if (m_bDrawCoordinates) { for (int i = -1; i <= 1; ++i) { for (int j = -1; j <= 1; ++j) { _drawCoordinates(DC, i, j); } } } } void frmMain::_onPanelClick(wxMouseEvent& evt) { updateMoodPosition(evt.GetX() - 143, evt.GetY() - 203); } void frmMain::updateMoodPosition(int centerX, int centerY) { m_iMoodDrawX = centerX; m_iMoodDrawY = centerY; { double fX = (double)m_iMoodDrawX; double fY = (double)m_iMoodDrawY; fY = fY / 32.0; fX = fX / 64.0; fY -= fX; fX *= 2.0; fX += fY; m_txtMoodPosition[0]->SetValue(wxString::Format(L"{%.2f, %.2f}", fX, fY)); } m_txtMoodPosition[1]->SetValue( wxString::Format(L"{%i, %i, \"px\"}", m_iMoodDrawX, m_iMoodDrawY)); printf("%zd, {%i, %i, \"px\"}, -- Anim %zd\n", m_iCurrentFrame, m_iMoodDrawX, m_iMoodDrawY, m_iCurrentAnim); if (m_bDrawMood) m_panFrame->Refresh(false); } /** Match the 'text' against the pattern in 'p'. The pattern should have 2 numbers. @param p: Pattern to match. ' ' means optional white space, 'I' means a possibly negative integer, 'R' means a possibly negative real or integer, all other character match with themselves. @param text: Text to completely match. @param num1: The text of the first number if successful. @param num2: The text of the second number if successful. @return: Whether the match was successful. */ static bool matchText(const char* p, const std::string& text, std::string& num1, std::string& num2) { bool filled_num1 = false; bool filled_num2 = false; const char* const c_start = text.c_str(); // Pointer to the first input. const char* c = c_start; // Pointer to the current input character. while (*p) { // Dispatch on the current pattern character. switch (*p) { case ' ': // Optional spaces. while (*c == ' ') c++; break; case 'R': // Possibly negative real number without exponent. case 'I': { // Possibly negative integer number. bool seen_digit = false; int num_start = c - c_start; if (*c == '-') c++; while (*c >= '0' && *c <= '9') { c++; seen_digit = true; } if (*c == '.') { if (*p != 'R') return false; c++; } while (*c >= '0' && *c <= '9') { c++; seen_digit = true; } if (!seen_digit) return false; // Store the number text for value conversion by the caller. int num_length = (c - c_start) - num_start; if (!filled_num1) { num1 = text.substr(num_start, num_length); filled_num1 = true; } else if (!filled_num2) { num2 = text.substr(num_start, num_length); filled_num2 = true; } break; } default: // Input should match the pattern character exactly. if (*p != *c) return false; c++; break; } p++; } return *p == '\0' && *c == '\0' && filled_num2; } /** Match text of the form '{real, real}' with 'real' a possibly negative real number without exponent. @param text Input text to match. @param x Value of the first real in the text. @param y Value of the second real in the text. @return Whether the input text was successfully matched. */ static bool matchTilePos(const std::string& text, double& x, double& y) { std::string num1, num2; if (matchText(" { R , R } ", text, num1, num2)) { try { x = std::stod(num1.c_str()); y = std::stod(num2.c_str()); return true; } catch (...) { return false; } } return false; } /** Match text of the form '{int, int, "px"}' with 'int' a possibly negative integer number. @param text Input text to match. @param x Value of the first integer in the text. @param y Value of the second integer in the text. @return Whether the input text was successfully matched. */ static bool matchPixelPos(const std::string& text, int& x, int& y) { std::string num1, num2; if (matchText(" { I , I , \"px\" } ", text, num1, num2)) { try { x = std::stoi(num1.c_str()); y = std::stoi(num2.c_str()); return true; } catch (...) { return false; } } return false; } void frmMain::_onMoodFrameApply(wxCommandEvent& evt) { wxString wxText = m_txtMoodFramePos->GetLineText(0); std::string text = wxText.ToStdString(); // Try to recognize a tile position. double x_tile, y_tile; if (matchTilePos(text, x_tile, y_tile)) { // Convert the fractions to a pixel position. x_tile -= y_tile; x_tile /= 2.0; y_tile += x_tile; updateMoodPosition(round(x_tile * 64.0), round(y_tile * 32.0)); } // Try to recognize a pixel position. int x_pixel, y_pixel; if (matchPixelPos(text, x_pixel, y_pixel)) { updateMoodPosition(x_pixel, y_pixel); } } void frmMain::_onMoodLeft(wxCommandEvent& evt) { updateMoodPosition(m_iMoodDrawX - 1, m_iMoodDrawY); } void frmMain::_onMoodRight(wxCommandEvent& evt) { updateMoodPosition(m_iMoodDrawX + 1, m_iMoodDrawY); } void frmMain::_onMoodUp(wxCommandEvent& evt) { updateMoodPosition(m_iMoodDrawX, m_iMoodDrawY - 1); } void frmMain::_onMoodDown(wxCommandEvent& evt) { updateMoodPosition(m_iMoodDrawX, m_iMoodDrawY + 1); } void frmMain::_onSearchLayerId(wxCommandEvent& evt) { long input = ::wxGetNumberFromUser( L"Enter the layer number to search in (0 - 12)", L"Layer:", L"Search for Layer / ID Combo", 0, 0, 13, this); if (input < 0 || input > 12) return; int iLayer = static_cast(input); input = ::wxGetNumberFromUser(L"Enter the ID number to search for (0 - 24)", L"ID:", L"Search for Layer / ID Combo", 0, 0, 24, this); if (input < 0 || input > 24) return; int iID = static_cast(input); m_lstSearchResults->Clear(); wxBusyCursor oBusy; for (size_t i = 0; i < m_oAnims.getAnimationCount(); ++i) { if (m_oAnims.isAnimationDuplicate(i)) continue; THLayerMask mskAnim; m_oAnims.getAnimationMask(i, mskAnim); if (mskAnim.isSet(iLayer, iID)) { m_lstSearchResults->Append(wxString::Format(L"%zu", i)); } } } void frmMain::_onSearchFrame(wxCommandEvent& evt) { long input = ::wxGetNumberFromUser(L"Enter the frame number to search for.", L"Frame:", L"Search for frame", 0, 0, 20000, this); if (input == -1) return; size_t iFrame = static_cast(input); m_lstSearchResults->Clear(); wxBusyCursor oBusy; for (size_t i = 0; i < m_oAnims.getAnimationCount(); ++i) { if (m_oAnims.isAnimationDuplicate(i)) continue; if (m_oAnims.doesAnimationIncludeFrame(i, iFrame)) { m_lstSearchResults->Append(wxString::Format(L"%zu", i)); } } } void frmMain::_onSearchSoundIndex(wxCommandEvent& evt) { long input = ::wxGetNumberFromUser(L"Enter the sound index to search for.", L"Sound index:", L"Search for sound", 0, 0, 256, this); if (input == -1) return; size_t iFrame = static_cast(input); m_lstSearchResults->Clear(); wxBusyCursor oBusy; for (size_t i = 0; i < m_oAnims.getAnimationCount(); ++i) { if (m_oAnims.isAnimationDuplicate(i)) continue; size_t iCount = m_oAnims.getFrameCount(i); for (size_t j = 0; j < iCount; ++j) { if ((m_oAnims.getFrameStruct(i, j)->flags & 0xFF) == iFrame) { m_lstSearchResults->Append(wxString::Format(L"%zu", i)); break; } } } } void frmMain::_drawCoordinates(wxPaintDC& DC, int i, int j) { int x = 122; // tile (0, 0) text start x-coordinate int y = 226; // tile (0, 0) text start y-coordinate wxString s; s.Printf(_T("(%2d,%2d)"), i, j); DC.DrawText(s, 32 * (i - j) + x, 16 * (i + j - 2) + y); } wxString frmMain::_getCaseSensitivePath(const wxString& sInsensitivePathPart, const wxString& sPath) { if (!wxFileName::IsCaseSensitive()) { return sPath + sInsensitivePathPart; } wxString retStr(sPath); wxStringTokenizer pathTokenizer(sInsensitivePathPart, wxFileName::GetPathSeparator()); while (pathTokenizer.HasMoreTokens()) { wxDir dir(retStr); if (!dir.IsOpened()) { break; } wxString pathPart = pathTokenizer.GetNextToken(); wxString realName; bool cont = dir.GetFirst(&realName, wxEmptyString, wxDIR_DIRS | wxDIR_FILES | wxDIR_HIDDEN | wxDIR_DOTDOT); bool found = false; while (cont) { if (realName.Upper() == pathPart.Upper()) { if (retStr.Last() != wxFileName::GetPathSeparator()) { retStr += wxFileName::GetPathSeparator(); } retStr += realName; found = true; break; } cont = dir.GetNext(&realName); } if (!found) { retStr += wxFileName::GetPathSeparator(); retStr += pathPart; break; } } while (pathTokenizer.HasMoreTokens()) { wxString pathPart = pathTokenizer.GetNextToken(); if (retStr.Last() != wxFileName::GetPathSeparator()) { retStr += wxFileName::GetPathSeparator(); } retStr += pathPart; } return retStr; } CorsixTH-0.70.0/AnimView/frmMain.h000066400000000000000000000113071522247547500166010ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef ANIMVIEW_FRMMAIN_H_ #define ANIMVIEW_FRMMAIN_H_ #include "config.h" #include #include #include #include #include #include #include "th.h" class wxButton; class wxCheckBox; class wxListBox; class wxPaintDC; class wxPanel; class wxSpinEvent; class wxTextCtrl; class frmMain : public wxFrame { public: frmMain(); ~frmMain() override = default; enum { ID_FIRST_ANIM = wxID_HIGHEST + 1, ID_PREV_ANIM, ID_ANIM_INDEX, ID_NEXT_ANIM, ID_LAST_ANIM, ID_PREV_FRAME, ID_NEXT_FRAME, ID_PLAY_PAUSE, ID_TIMER_ANIMATE, ID_SEARCH_LAYER_ID, ID_SEARCH_FRAME, ID_SEARCH_SOUND, ID_SEARCH_RESULTS, ID_GHOST_0, ID_GHOST_1, ID_GHOST_2, ID_GHOST_3, ID_LOAD, ID_BROWSE, ID_EXPORT, ID_DRAW_MOOD, ID_DRAW_COORDINATES, ID_MOOD_POS, ID_MOOD_FRAME, ID_MOOD_LEFT, ID_MOOD_RIGHT, ID_MOOD_UP, ID_MOOD_DOWN, ID_LAYER_CHECKS, // Must be last ID }; void load(); void export_png(); void exportSpritesPage(bool bComplex, wxString sPath, wxString sFilename, wxString spPath = L"", wxString sPalette = L"MPALETTE.DAT"); // std::vector<_sprite_t> m_vSprites; protected: void _onLoad(wxCommandEvent& evt); void _onBrowse(wxCommandEvent& evt); void _onExport(wxCommandEvent& evt); void _onFirstAnim(wxCommandEvent& evt); void _onPrevAnim(wxCommandEvent& evt); void _onNextAnim(wxCommandEvent& evt); void _onLastAnim(wxCommandEvent& evt); void _onPrevFrame(wxCommandEvent& evt); void _onNextFrame(wxCommandEvent& evt); void _onPlayPause(wxCommandEvent& evt); void _onToggleMask(wxCommandEvent& evt); void _onToggleDrawMood(wxCommandEvent& evt); void _onToggleDrawCoordinates(wxCommandEvent& evt); void _onSearchLayerId(wxCommandEvent& evt); void _onSearchFrame(wxCommandEvent& evt); void _onSearchSoundIndex(wxCommandEvent& evt); void _onGotoSearchResult(wxCommandEvent& evt); void _onAnimChar(wxCommandEvent& evt); void _onGhostFileChange(wxCommandEvent& evt); void _onGhostIndexChange(wxSpinEvent& evt); void _onPanelPaint(wxPaintEvent& evt); void _onPanelClick(wxMouseEvent& evt); void _onTimer(wxTimerEvent& evt); void _onMoodFrameApply(wxCommandEvent& evt); void _onMoodLeft(wxCommandEvent& evt); void _onMoodRight(wxCommandEvent& evt); void _onMoodUp(wxCommandEvent& evt); void _onMoodDown(wxCommandEvent& evt); void _onAnimChange(size_t iIndex); void _drawCoordinates(wxPaintDC& DC, int i, int j); wxString _getCaseSensitivePath(const wxString& sInsensitivePathPart, const wxString& sPath); THAnimations m_oAnims; THLayerMask m_mskLayers; wxImage m_imgBackground; wxTimer m_tmrAnimate; size_t m_iCurrentAnim{}; size_t m_iCurrentFrame{}; int m_iGhostFile{}; int m_iGhostIndex{}; int m_iMoodDrawX{}; int m_iMoodDrawY{}; bool m_bPlayingAnimation{true}; bool m_bDrawMood{false}; bool m_bDrawCoordinates{false}; wxButton* m_btnPlayPause; wxTextCtrl* m_txtTHPath; wxTextCtrl* m_txtAnimIndex; wxTextCtrl* m_txtAnimCount; wxTextCtrl* m_txtFrameIndex; wxTextCtrl* m_txtFrameCount; wxTextCtrl* m_txtFrameFlags[2]{}; wxTextCtrl* m_txtMoodPosition[2]{}; wxTextCtrl* m_txtMoodFramePos; wxCheckBox* m_chkFrameFlags[16]{}; wxListBox* m_lstSearchResults; wxPanel* m_panFrame; DECLARE_EVENT_TABLE() private: /** Update the mood position of the current frame to the given coordinate. @param centerX X coordinate of the center. @param centerY Y coordinate of the center. */ void updateMoodPosition(int centerX, int centerY); }; #endif CorsixTH-0.70.0/AnimView/frmSprites.cpp000066400000000000000000000206221522247547500177010ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "frmSprites.h" #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include BEGIN_EVENT_TABLE(frmSprites, wxFrame) EVT_BUTTON(ID_LOAD, frmSprites::_onLoad) EVT_BUTTON(ID_BROWSE_TABLE, frmSprites::_onBrowseTable) EVT_BUTTON(ID_BROWSE_DATA, frmSprites::_onBrowseData) EVT_BUTTON(ID_BROWSE_PALETTE, frmSprites::_onBrowsePalette) EVT_BUTTON(ID_LOAD_COMPLEX, frmSprites::_onLoadComplex) EVT_BUTTON(ID_NEXT, frmSprites::_onNext) END_EVENT_TABLE() frmSprites::frmSprites() : wxFrame(nullptr, wxID_ANY, L"Theme Hospital Sprite Viewer") { wxBoxSizer* pMainSizer = new wxBoxSizer(wxVERTICAL); wxStaticBoxSizer* pFiles = new wxStaticBoxSizer(wxVERTICAL, this, L"Files"); wxFlexGridSizer* pFilesGrid = new wxFlexGridSizer(4, 3, 2, 1); pFilesGrid->AddGrowableCol(1, 1); pFilesGrid->Add(new wxStaticText(this, wxID_ANY, L"Table:"), wxSizerFlags(0).Center().Right()); m_txtTable = new wxTextCtrl( this, wxID_ANY, L"X:\\ThemeHospital\\hospital\\QData\\Font00V.tab"); pFilesGrid->Add(m_txtTable, wxSizerFlags(1).Align(wxALIGN_CENTER_VERTICAL).Expand()); pFilesGrid->Add(new wxButton(this, ID_BROWSE_TABLE, L"Browse..."), wxSizerFlags(0).Align(wxALIGN_CENTER_VERTICAL)); pFilesGrid->Add(new wxStaticText(this, wxID_ANY, L"Data:"), wxSizerFlags(0).Center().Right()); m_txtData = new wxTextCtrl(this, wxID_ANY, L""); pFilesGrid->Add(m_txtData, wxSizerFlags(1).Align(wxALIGN_CENTER_VERTICAL).Expand()); pFilesGrid->Add(new wxButton(this, ID_BROWSE_DATA, L"Browse..."), wxSizerFlags(0).Align(wxALIGN_CENTER_VERTICAL)); pFilesGrid->Add(new wxStaticText(this, wxID_ANY, L"Palette:"), wxSizerFlags(0).Center().Right()); m_txtPalette = new wxTextCtrl( this, wxID_ANY, L"X:\\ThemeHospital\\hospital\\Data\\MPalette.dat"); pFilesGrid->Add(m_txtPalette, wxSizerFlags(1).Align(wxALIGN_CENTER_VERTICAL).Expand()); pFilesGrid->Add(new wxButton(this, ID_BROWSE_PALETTE, L"Browse..."), 0, wxALIGN_CENTER_VERTICAL); pFiles->Add(pFilesGrid, wxSizerFlags(0).Expand().Border(wxALL, 1)); pFiles->Add(new wxButton(this, ID_LOAD, L"Load Simple"), wxSizerFlags(0).Center().Border(wxALL, 1)); pFiles->Add(new wxButton(this, ID_LOAD_COMPLEX, L"Load Complex"), wxSizerFlags(0).Center().Border(wxALL, 1)); pFiles->Add(new wxButton(this, ID_NEXT, L"Next"), wxSizerFlags(0).Center().Border(wxALL, 1)); pMainSizer->Add(pFiles, wxSizerFlags(0).Expand().Border(wxALL, 2)); wxStaticBoxSizer* pSprites = new wxStaticBoxSizer(wxVERTICAL, this, L"Sprites"); m_panFrame = new MyVScrolled(this); pSprites->Add(m_panFrame, wxSizerFlags(1).Expand()); pMainSizer->Add(pSprites, wxSizerFlags(1).Expand().Border(wxALL, 2)); m_panFrame->Connect(wxEVT_PAINT, (wxObjectEventFunction)&frmSprites::_onPanelPaint, nullptr, this); SetSizer(pMainSizer); load(true); } void frmSprites::_onLoad(wxCommandEvent& evt) { load(false); } void frmSprites::_onLoadComplex(wxCommandEvent& evt) { load(true); } void frmSprites::_onNext(wxCommandEvent& evt) { wxString s = m_txtTable->GetValue(); while (true) { const wxChar* sc = s.c_str(); for (size_t i = s.Length(); i > 0;) { --i; if ('0' <= sc[i] && sc[i] <= '9') { s.SetChar(i, sc[i] + 1); if (sc[i] > '9') { s.SetChar(i, '0'); if (sc[i - 1] == '9') { s.SetChar(i - 1, '0'); return; } s.SetChar(i - 1, sc[i - 1] + 1); } break; } } if (::wxFileExists(s)) { m_txtTable->SetValue(s); return; } } } void frmSprites::load(bool bComplex) { if (!m_oAnims.loadTableFile(m_txtTable->GetValue()) || !m_oAnims.loadSpriteFile(m_txtData->GetValue().IsEmpty() ? m_txtTable->GetValue().BeforeLast('.') + L".DAT" : m_txtData->GetValue()) || !m_oAnims.loadPaletteFile(m_txtPalette->GetValue())) { ::wxMessageBox(L"Cannot load files"); return; } m_vSprites.clear(); for (size_t i = 0; i < m_oAnims.getSpriteCount(); ++i) { _sprite_t oSprite; Bitmap* pSpriteBitmap = m_oAnims.getSpriteBitmap(i, bComplex); oSprite.caption = wxString::Format(L"#%i (%ix%i)", (int)i, pSpriteBitmap->getWidth(), pSpriteBitmap->getHeight()); if (pSpriteBitmap->getWidth() * pSpriteBitmap->getHeight() > 0) { wxImage imgSprite(pSpriteBitmap->getWidth(), pSpriteBitmap->getHeight(), false); pSpriteBitmap->blit(imgSprite, 0, 0, nullptr, m_oAnims.getPalette(), 0x8000); oSprite.bitmap = wxBitmap(imgSprite); } m_vSprites.push_back(oSprite); } m_panFrame->Refresh(); } void frmSprites::_onPanelPaint(wxPaintEvent& evt) { wxPaintDC dc(m_panFrame); int iAvailableWidth, iAvailableHeight; m_panFrame->GetClientSize(&iAvailableWidth, &iAvailableHeight); int iX = 0; int iTallest = 0; int iTotal = 0; int iY = -m_panFrame->GetVisibleRowsBegin(); for (std::vector<_sprite_t>::iterator itr = m_vSprites.begin(), itrEnd = m_vSprites.end(); itr != itrEnd; ++itr) { wxSize szLabel = dc.GetTextExtent(itr->caption); int iWidth = wxMax(szLabel.GetWidth(), itr->bitmap.IsOk() ? itr->bitmap.GetWidth() : 0); int iHeight = (itr->bitmap.IsOk() ? itr->bitmap.GetHeight() : 0) + szLabel.GetHeight() + 2; if (iWidth + iX > iAvailableWidth) { iY += iTallest; iTotal += iTallest; iX = iTallest = 0; } if (iY + iHeight >= 0 && iY < iAvailableHeight) { dc.DrawText(itr->caption, iX, iY); if (itr->bitmap.IsOk()) dc.DrawBitmap(itr->bitmap, iX, iY + szLabel.GetHeight() + 1); } iTallest = wxMax(iTallest, iHeight); iX += iWidth + 2; } iTotal += iTallest; // Add last row too. // Update the row count if it doesn't match. if (iTotal != m_panFrame->iMyCount) { m_panFrame->iMyCount = iTotal; m_panFrame->SetRowCount(iTotal); } } // File type selection is by wildcards limited to ? or *, separated by ; // https://docs.wxwidgets.org/trunk/classwx_file_dialog.html remarks section void frmSprites::_onBrowseTable(wxCommandEvent& WXUNUSED(evt)) { m_txtTable->SetValue(::wxFileSelector( L"Select location of Font00V.tab (DATA)", m_txtTable->GetValue(), L"Font00V.tab", L"tab", L"Tab files (*.tab)|*.TAB;*.tab", 0, this)); } void frmSprites::_onBrowseData(wxCommandEvent& WXUNUSED(evt)) { m_txtData->SetValue(::wxFileSelector( L"Choose Theme Hospital data file", m_txtData->GetValue(), L"", L"dat", L"DAT files (*.dat)|*.DAT;*.dat", 0, this)); } void frmSprites::_onBrowsePalette(wxCommandEvent& WXUNUSED(evt)) { m_txtPalette->SetValue(::wxFileSelector( L"Select location of MPalette.dat (QDATA)", m_txtPalette->GetValue(), L"MPalette.dat", L"dat", L"Dat or Pal files (*.dat, *.pal)|*.DAT;*.dat;*.PAL;*.pal", 0, this)); } CorsixTH-0.70.0/AnimView/frmSprites.h000066400000000000000000000051151522247547500173460ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef ANIMVIEW_FRMSPRITES_H_ #define ANIMVIEW_FRMSPRITES_H_ #include "config.h" #include #include #include #include #include #include #include #include #include "th.h" class wxTextCtrl; class wxWindow; static const int ROW_COUNT = 1000; // Derived class to add scrollbars to the window. class MyVScrolled : public wxVScrolledWindow { public: MyVScrolled(wxWindow* parent) : wxVScrolledWindow(parent, wxID_ANY) { iMyCount = ROW_COUNT; } wxCoord OnGetRowHeight(size_t row) const override { return 1; } wxCoord EstimateTotalHeight() const override { return iMyCount; } int iMyCount; }; class frmSprites : public wxFrame { public: frmSprites(); ~frmSprites() override = default; enum { ID_LOAD = wxID_HIGHEST + 1, ID_BROWSE_TABLE, ID_BROWSE_DATA, ID_BROWSE_PALETTE, ID_LOAD_COMPLEX, ID_NEXT, }; void load(bool bComplex); protected: struct _sprite_t { wxBitmap bitmap; wxString caption; }; void _onNext(wxCommandEvent& evt); void _onLoad(wxCommandEvent& evt); void _onLoadComplex(wxCommandEvent& evt); void _onPanelPaint(wxPaintEvent& evt); void _onBrowseData(wxCommandEvent& evt); void _onBrowsePalette(wxCommandEvent& evt); void _onBrowseTable(wxCommandEvent& evt); std::vector<_sprite_t> m_vSprites; THAnimations m_oAnims; wxTextCtrl* m_txtTable; wxTextCtrl* m_txtData; wxTextCtrl* m_txtPalette; MyVScrolled* m_panFrame; DECLARE_EVENT_TABLE() }; #endif CorsixTH-0.70.0/AnimView/th.cpp000066400000000000000000000346161522247547500161660ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th.h" #include "config.h" #include #include #include #include #include #include #include #include "rnc.h" namespace { constexpr unsigned char palette_upscale_map[0x40] = { 0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x18, 0x1C, 0x20, 0x24, 0x28, 0x2D, 0x31, 0x35, 0x39, 0x3D, 0x41, 0x45, 0x49, 0x4D, 0x51, 0x55, 0x59, 0x5D, 0x61, 0x65, 0x69, 0x6D, 0x71, 0x75, 0x79, 0x7D, 0x82, 0x86, 0x8A, 0x8E, 0x92, 0x96, 0x9A, 0x9E, 0xA2, 0xA6, 0xAA, 0xAE, 0xB2, 0xB6, 0xBA, 0xBE, 0xC2, 0xC6, 0xCA, 0xCE, 0xD2, 0xD7, 0xDB, 0xDF, 0xE3, 0xE7, 0xEB, 0xEF, 0xF3, 0xF7, 0xFB, 0xFF, }; class ChunkRenderer { public: ChunkRenderer(int width, int height) : m_x(0), m_y(0), m_width(width), m_height(height), m_skip_eol(false) { m_data = new unsigned char[width * height]; m_ptr = m_data; m_end = m_data + width * height; } ~ChunkRenderer() { delete[] m_data; } bool isDone() const { return m_ptr == m_end; } unsigned char* takeData() { unsigned char* buffer = m_data; m_data = nullptr; return buffer; } const unsigned char* getData() const { return m_data; } void chunkFillToEndOfLine(unsigned char value) { if (m_x != 0 || !m_skip_eol) { chunkFill(m_width - m_x, value); } m_skip_eol = false; } void chunkFinish(unsigned char value) { chunkFill(static_cast(m_end - m_ptr), value); } void chunkFill(int npixels, unsigned char value) { _fixNpixels(npixels); if (npixels > 0) { memset(m_ptr, value, npixels); _incrementPosition(npixels); } } void chunkCopy(int npixels, const unsigned char* data) { _fixNpixels(npixels); if (npixels > 0) { memcpy(m_ptr, data, npixels); _incrementPosition(npixels); } } protected: inline void _fixNpixels(int& npixels) const { if (m_ptr + npixels > m_end) { npixels = static_cast(m_end - m_ptr); } } inline void _incrementPosition(int npixels) { m_ptr += npixels; m_x += npixels; m_y += m_x / m_width; m_x = m_x % m_width; m_skip_eol = true; } unsigned char* m_data; unsigned char* m_ptr; unsigned char* m_end; int m_x, m_y, m_width, m_height; bool m_skip_eol; }; void decode_chunks(ChunkRenderer& renderer, const unsigned char* data, size_t datalen, unsigned char transparent) { while (!renderer.isDone() && datalen > 0) { unsigned char b = *data; --datalen; ++data; if (b == 0) { renderer.chunkFillToEndOfLine(transparent); } else if (b < 0x80) { int amt = b; if (datalen < amt) amt = datalen; renderer.chunkCopy(amt, data); data += amt; datalen -= amt; } else { renderer.chunkFill(0x100 - b, transparent); } } renderer.chunkFinish(transparent); } void decode_chunks_complex(ChunkRenderer& renderer, const unsigned char* data, size_t datalen, unsigned char transparent) { while (!renderer.isDone() && datalen > 0) { unsigned char b = *data; --datalen; ++data; if (b == 0) { renderer.chunkFillToEndOfLine(transparent); } else if (b < 0x40) { int amt = b; if (datalen < amt) amt = datalen; renderer.chunkCopy(amt, data); data += amt; datalen -= amt; } else if ((b & 0xC0) == 0x80) { renderer.chunkFill(b - 0x80, transparent); } else { int amt; unsigned char colour = 0; if (b == 0xFF) { if (datalen < 2) { break; } amt = (int)data[0]; colour = data[1]; data += 2; datalen -= 2; } else { amt = b - 60 - (b & 0x80) / 2; if (datalen > 0) { colour = *data; ++data; --datalen; } } renderer.chunkFill(amt, colour); } } renderer.chunkFinish(transparent); } void merge_colour(th_colour_t& dst, const th_colour_t& src) { dst.r = (uint8_t)(((unsigned int)dst.r + (unsigned int)src.r) / 2); dst.g = (uint8_t)(((unsigned int)dst.g + (unsigned int)src.g) / 2); dst.b = (uint8_t)(((unsigned int)dst.b + (unsigned int)src.b) / 2); } } // namespace void THLayerMask::clear() { for (int i = 0; i < 13; ++i) m_iMask[i] = 0; } THAnimations::THAnimations() { for (int iMap = 0; iMap < 256 * 4; ++iMap) { for (int iCol = 0; iCol < 256; ++iCol) { ghostMaps[iMap * 256 + iCol] = iCol; } } } bool THAnimations::isAnimationDuplicate(size_t iAnimation) { if (iAnimation < anims.size()) return anims.at(iAnimation).unknown == 1; else return true; } size_t THAnimations::markDuplicates() { size_t iNonDuplicateCount = 0; std::set seen; for (th_anim_t& anim : anims) { uint16_t iFrame = anim.frame; uint16_t iFirstFrame = iFrame; do { if (seen.find(iFrame) != seen.end()) { anim.unknown = 1; } else { seen.insert(iFrame); } iFrame = frames.at(iFrame).next; } while (iFrame != iFirstFrame); if (anim.unknown == 0) { ++iNonDuplicateCount; } } return iNonDuplicateCount; } bool THAnimations::loadFrameFile(const wxString& sFilename) { if (!loadVector(frames, sFilename)) return false; /* 256 is a common flag - could be x-flip. The lower byte can also take non-zero values - could be ghost palette indices. */ return true; } bool THAnimations::loadTableFile(const wxString& sFilename) { spriteBitmaps.clear(); if (!loadVector(sprites, sFilename)) return false; spriteBitmaps.resize(sprites.size()); return true; } bool THAnimations::loadPaletteFile(const wxString& sFilename) { if (!loadVector(colours, sFilename)) return false; for (th_colour_t& colour : colours) { colour.r = palette_upscale_map[colour.r & 0x3F]; colour.g = palette_upscale_map[colour.g & 0x3F]; colour.b = palette_upscale_map[colour.b & 0x3F]; } return true; } bool THAnimations::loadGhostFile(const wxString& sFilename, int iIndex) { if (iIndex < 0 || iIndex >= 4) return false; std::vector data; if (!loadVector(data, sFilename)) return false; if (data.size() != 256 * 256) { return false; } std::copy(data.begin(), data.end(), ghostMaps.begin() + iIndex * 256 * 256); return true; } void THAnimations::setGhost(int iFile, int iIndex) { m_iGhostMapOffset = iFile * 256 * 256 + iIndex * 256; } size_t THAnimations::getAnimationCount() { return anims.size(); } size_t THAnimations::getSpriteCount() { return sprites.size(); } void THAnimations::setSpritePath(const wxString& aPath) { m_sSpritePath = aPath; } void THAnimations::getAnimationMask(size_t iAnimation, THLayerMask& mskLayers) { mskLayers.clear(); if (iAnimation >= anims.size()) return; uint16_t iFrameIndex = anims.at(iAnimation).frame; if (iFrameIndex >= frames.size()) return; uint16_t iFirstFrameIndex = iFrameIndex; do { th_frame_t* pFrame = &(frames.at(iFrameIndex)); uint32_t iListIndex = pFrame->list_index; th_element_t* pElement; while ((pElement = _getElement(iListIndex++))) { mskLayers.set(pElement->flags >> 4, pElement->layerid); } iFrameIndex = frames.at(iFrameIndex).next; } while (iFrameIndex < frames.size() && iFrameIndex != iFirstFrameIndex); } size_t THAnimations::getFrameCount(size_t iAnimation) { if (iAnimation >= anims.size()) return 0; size_t iCount = 0; uint16_t iFirstFrame = anims.at(iAnimation).frame; if (iFirstFrame < frames.size()) { ++iCount; uint16_t iFrame = frames.at(iFirstFrame).next; while (iFrame != iFirstFrame && iFrame < frames.size() && iCount < 1024) { ++iCount; iFrame = frames.at(iFrame).next; } } return iCount; } bool THAnimations::doesAnimationIncludeFrame(size_t iAnimation, size_t iFrame) { if (iAnimation >= anims.size() || iFrame >= frames.size()) return 0; uint16_t iFirstFrame = anims.at(iAnimation).frame; uint16_t iFrameNow = iFirstFrame; do { if (iFrameNow >= frames.size()) break; if (iFrame == iFrameNow) return true; iFrameNow = frames.at(iFrameNow).next; } while (iFrameNow != iFirstFrame); return false; } Bitmap* THAnimations::getSpriteBitmap(size_t iSprite, bool bComplex) { if (iSprite >= sprites.size()) return nullptr; if (!spriteBitmaps.at(iSprite).IsOk()) { wxString spriteFile = m_sSpritePath + wxString::Format(L"a%04ue.png", (int)iSprite); th_sprite_t* pSprite = &(sprites.at(iSprite)); ChunkRenderer oRenderer(pSprite->width, pSprite->height); (bComplex ? decode_chunks_complex : decode_chunks)( oRenderer, (const unsigned char*)chunks.data() + pSprite->offset, chunks.size() - pSprite->offset, 0xFF); spriteBitmaps[iSprite].create(pSprite->width, pSprite->height, oRenderer.getData()); } return &(spriteBitmaps.at(iSprite)); } th_frame_t* THAnimations::getFrameStruct(size_t iAnimation, size_t iFrame) { if (iAnimation >= anims.size()) return nullptr; uint16_t iFrameIndex = anims.at(iAnimation).frame; while (iFrame--) { iFrameIndex = frames.at(iFrameIndex).next; } return &(frames.at(iFrameIndex)); } void THAnimations::drawFrame(wxImage& imgCanvas, size_t iAnimation, size_t iFrame, const THLayerMask* pMask, wxSize& size, int iXOffset, int iYOffset) { if (iAnimation >= anims.size()) return; uint16_t iFrameIndex = anims.at(iAnimation).frame; while (iFrame--) { iFrameIndex = frames.at(iFrameIndex).next; } th_frame_t* pFrame = &(frames.at(iFrameIndex)); th_element_t* pElement; uint32_t iListIndex = pFrame->list_index; int iFarX = 0; int iFarY = 0; while ((pElement = _getElement(iListIndex++))) { if (pMask != nullptr && !pMask->isSet(pElement->flags >> 4, pElement->layerid)) continue; uint16_t iSpriteIndex = pElement->table_position / sizeof(th_sprite_t); th_sprite_t* pSprite = &(sprites.at(iSpriteIndex)); int iRight = pElement->offx + pSprite->width; int iBottom = pElement->offy + pSprite->height; if (iRight > iFarX) iFarX = iRight; if (iBottom > iFarY) iFarY = iBottom; getSpriteBitmap(iSpriteIndex) ->blit(imgCanvas, pElement->offx + iXOffset, pElement->offy + iYOffset, ghostMaps.data() + m_iGhostMapOffset, colours.data(), pElement->flags & 0xF); } size.x = iFarX; size.y = iFarY; } th_element_t* THAnimations::_getElement(uint32_t iListIndex) { if (iListIndex >= elementList.size()) return nullptr; uint16_t iElementIndex = elementList.at(iListIndex); if (iElementIndex >= elements.size()) return nullptr; return &(elements.at(iElementIndex)); } unsigned char* THAnimations::Decompress(unsigned char* pData, size_t& iLength) { if (rnc_input_size(pData) != iLength) { throw std::length_error("rnc data does not match the expected length"); } unsigned long outlen = rnc_output_size(pData); unsigned char* outbuf = new unsigned char[outlen]; if (rnc_unpack(pData, outbuf) == rnc_status::ok) { delete[] pData; iLength = outlen; return outbuf; } else { delete[] pData; delete[] outbuf; iLength = 0; return nullptr; } } Bitmap::Bitmap() : m_iWidth(0), m_iHeight(0), m_pData(nullptr) {} Bitmap::~Bitmap() { delete[] m_pData; } void Bitmap::create(int iWidth, int iHeight) { delete[] m_pData; m_pData = new uint8_t[iWidth * iHeight]; m_iWidth = iWidth; m_iHeight = iHeight; memset(m_pData, 0xFF, iWidth * iHeight); } void Bitmap::create(int iWidth, int iHeight, const uint8_t* pData) { delete[] m_pData; m_pData = new uint8_t[iWidth * iHeight]; m_iWidth = iWidth; m_iHeight = iHeight; memcpy(m_pData, pData, iWidth * iHeight); } void Bitmap::blit(Bitmap& bmpCanvas, int iX, int iY, int iFlags) const { for (int y = 0; y < m_iHeight; ++y) { for (int x = 0; x < m_iWidth; ++x) { uint8_t src = pixel(x, y); if (src == 0xFF) continue; int iDstX = iX + x; int iDstY = iY + y; if (iFlags & 0x2) iDstY = iY + m_iHeight - 1 - y; if (iFlags & 0x1) iDstX = iX + m_iWidth - 1 - x; bmpCanvas.pixel(iDstX, iDstY) = src; } } } void Bitmap::blit(wxImage& imgCanvas, int iX, int iY, const unsigned char* pColourTranslate, const th_colour_t* pPalette, int iFlags) const { if (m_iHeight == 0 || m_iWidth == 0) return; th_colour_t* pCanvas = (th_colour_t*)imgCanvas.GetData(); int iCanvasWidth = imgCanvas.GetWidth(); if (m_iHeight > 256 || m_iWidth > 256) { return; } for (int y = 0; y < m_iHeight; ++y) { for (int x = 0; x < m_iWidth; ++x) { uint8_t src = pixel(x, y); if (src == 0xFF && (iFlags & 0x8000) == 0) continue; if (pColourTranslate != nullptr) { src = pColourTranslate[src]; if (src == 0xFF && (iFlags & 0x8000) == 0) continue; } int iDstX = iX + x; int iDstY = iY + y; if (iFlags & 0x2) iDstY = iY + m_iHeight - 1 - y; if (iFlags & 0x1) iDstX = iX + m_iWidth - 1 - x; th_colour_t srcc = pPalette[src]; if (iFlags & 0xC) { th_colour_t dstc = pCanvas[iDstY * iCanvasWidth + iDstX]; switch (iFlags & 0xC) { case 0x8: merge_colour(srcc, dstc); // fall-through case 0x4: merge_colour(srcc, dstc); break; } } pCanvas[iDstY * iCanvasWidth + iDstX] = srcc; if (imgCanvas.HasAlpha()) { // set completely opaque imgCanvas.SetAlpha(iDstX, iDstY, (unsigned char)255); } } } } CorsixTH-0.70.0/AnimView/th.h000066400000000000000000000155031522247547500156250ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* Note that this file contains similar functionality to th.h / th_gfx.h from the main CorsixTH project. It is reimplemented rather than reused for good reasons: 1) Animations need to be rendered onto a wxWidgets canvas rather than onto an SDL or DirectX canvas. 2) Modifications and experimentation can be performed on this version before being implemented on the game copy, resulting in better code when the game version is implemented. 3) Simplicity rather than speed is the aim of this copy, so it will render slower than the game copy, but will be easier to understand and make changes to. */ #ifndef ANIMVIEW_TH_H_ #define ANIMVIEW_TH_H_ #include "config.h" #include #include #include #include #include class wxImage; class wxSize; #pragma pack(push) #pragma pack(1) struct th_anim_t { uint16_t frame; uint16_t unknown; }; struct th_frame_t { uint32_t list_index; uint8_t width; uint8_t height; uint16_t flags; uint16_t next; }; struct th_element_t { uint16_t table_position; uint8_t offx; uint8_t offy; uint8_t flags; uint8_t layerid; }; struct th_sprite_t { uint32_t offset; uint8_t width; uint8_t height; }; struct th_colour_t { uint8_t r; uint8_t g; uint8_t b; }; #pragma pack(pop) class THLayerMask { public: THLayerMask() = default; inline void set(int iLayer, int iID) { if (0 <= iLayer && iLayer < 13 && 0 <= iID && iID < 32) m_iMask[iLayer] |= (1ul << iID); } void clear(); inline void clear(int iLayer, int iID) { if (0 <= iLayer && iLayer < 13 && 0 <= iID && iID < 32) m_iMask[iLayer] &= ~(1ul << iID); } inline bool isSet(int iLayer, int iID) const { if (0 <= iLayer && iLayer < 13 && 0 <= iID && iID < 32) return (m_iMask[iLayer] & (1ul << iID)) != 0; else return false; } inline bool isSet(int iLayer) const { if (0 <= iLayer && iLayer < 13) for (int iId = 0; iId < 32; ++iId) { if ((m_iMask[iLayer] & (1ul << iId)) != 0) return true; } return false; } protected: uint32_t m_iMask[13]{}; }; class Bitmap { public: Bitmap(); ~Bitmap(); void create(int iWidth, int iHeight); void create(int iWidth, int iHeight, const uint8_t* pData); inline uint8_t pixel(int iX, int iY) const { return m_pData[iY * m_iWidth + iX]; } inline uint8_t& pixel(int iX, int iY) { return m_pData[iY * m_iWidth + iX]; } int getWidth() const { return m_iWidth; } int getHeight() const { return m_iHeight; } void blit(Bitmap& bmpCanvas, int iX, int iY, int iFlags = 0) const; void blit(wxImage& imgCanvas, int iX, int iY, const unsigned char* pColourTranslate, const th_colour_t* pPalette, int iFlags = 0) const; bool IsOk() { return m_pData != nullptr; } protected: int m_iWidth; int m_iHeight; uint8_t* m_pData; }; class THAnimations { public: THAnimations(); ~THAnimations() = default; bool loadAnimationFile(const wxString& sFilename) { return loadVector(anims, sFilename); } bool loadFrameFile(const wxString& sFilename); bool loadListFile(const wxString& sFilename) { return loadVector(elementList, sFilename); } bool loadElementFile(const wxString& sFilename) { return loadVector(elements, sFilename); } bool loadTableFile(const wxString& sFilename); bool loadSpriteFile(const wxString& sFilename) { return loadVector(chunks, sFilename); } bool loadPaletteFile(const wxString& sFilename); bool loadGhostFile(const wxString& sFilename, int iIndex); size_t markDuplicates(); size_t getAnimationCount(); size_t getSpriteCount(); size_t getFrameCount(size_t iAnimation); uint16_t getUnknownField(size_t iAnimation) { return anims.at(iAnimation).unknown; } uint16_t getFrameField(size_t iAnimation) { return anims.at(iAnimation).frame; } th_frame_t* getFrameStruct(size_t iAnimation, size_t iFrame); bool isAnimationDuplicate(size_t iAnimation); bool doesAnimationIncludeFrame(size_t iAnimation, size_t iFrame); void getAnimationMask(size_t iAnimation, THLayerMask& mskLayers); void setSpritePath(const wxString& aPath); Bitmap* getSpriteBitmap(size_t iSprite, bool bComplex = false); th_colour_t* getPalette() { return colours.data(); } void setGhost(int iFile, int iIndex); void drawFrame(wxImage& imgCanvas, size_t iAnimation, size_t iFrame, const THLayerMask* pMask, wxSize& size, int iXOffset = 0, int iYOffset = 0); void copySpriteToCanvas(wxString spriteFile, int iSpriteIndex, wxImage& imgCanvas, int iX, int iY, int iFlags = 0); static unsigned char* Decompress(unsigned char* pData, size_t& iLength); protected: template bool loadVector(std::vector& vector, const wxString& sFilename) { vector.clear(); wxFile oFile(sFilename); if (!oFile.IsOpened()) return false; size_t iLen = static_cast(oFile.Length()); unsigned char* pBuffer = new unsigned char[iLen]; oFile.Read(pBuffer, iLen); if (memcmp(pBuffer, "RNC\001", 4) == 0) { pBuffer = Decompress(pBuffer, iLen); if (!pBuffer) { return false; } } for (int offset = 0; offset < iLen; offset += sizeof(T)) { vector.push_back(*(reinterpret_cast(pBuffer + offset))); } return true; } th_element_t* _getElement(uint32_t iListIndex); std::vector anims; std::vector frames; std::vector elementList; std::vector elements; std::vector sprites; std::vector spriteBitmaps; std::vector chunks; std::vector colours; std::array ghostMaps{}; size_t m_iGhostMapOffset{}; wxString m_sSpritePath; }; #endif CorsixTH-0.70.0/CMake/000077500000000000000000000000001522247547500142765ustar00rootroot00000000000000CorsixTH-0.70.0/CMake/CMakeFFmpegLibavMacros.cmake000066400000000000000000000055101522247547500214710ustar00rootroot00000000000000#------------------------------------------------------------------- # FindFFmpeg.cmake and FindLibAV.cmake are dependent on this file. # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file # #------------------------------------------------------------------- ### Macro: set_component_found # # Marks the given component as found if both *_LIBRARIES AND *_INCLUDE_DIRS is present. # macro(set_component_found _component ) if(${_component}_LIBRARIES AND ${_component}_INCLUDE_DIRS) # message(STATUS " - ${_component} found.") set(${_component}_FOUND TRUE) else() # message(STATUS " - ${_component} not found.") endif() endmacro() # ### Macro: find_component # # Finds each component's library file and include directory, and sets # *_LIBRARIES and *_INCLUDE_DIRS accordingly. Additionally detects each # component's version and sets *_VERSION_STRING. # macro(find_component _component _library _header _version) find_path(${_component}_INCLUDE_DIRS ${_header} PATH_SUFFIXES ffmpeg libav include ) find_library(${_component}_LIBRARIES NAMES ${_library} PATH_SUFFIXES lib ) if(${_component}_INCLUDE_DIRS AND EXISTS "${${_component}_INCLUDE_DIRS}/${_version}") file(STRINGS "${${_component}_INCLUDE_DIRS}/${_version}" ${_component}_VERSION_MAJOR_LINE REGEX "^#define[ \t]+LIB${_component}_VERSION_MAJOR[ \t]+[0-9]+$") file(STRINGS "${${_component}_INCLUDE_DIRS}/${_version}" ${_component}_VERSION_MINOR_LINE REGEX "^#define[ \t]+LIB${_component}_VERSION_MINOR[ \t]+[0-9]+$") file(STRINGS "${${_component}_INCLUDE_DIRS}/${_version}" ${_component}_VERSION_PATCH_LINE REGEX "^#define[ \t]+LIB${_component}_VERSION_MICRO[ \t]+[0-9]+$") string(REGEX REPLACE "^#define[ \t]+LIB${_component}_VERSION_MAJOR[ \t]+([0-9]+)$" "\\1" ${_component}_VERSION_MAJOR "${${_component}_VERSION_MAJOR_LINE}") string(REGEX REPLACE "^#define[ \t]+LIB${_component}_VERSION_MINOR[ \t]+([0-9]+)$" "\\1" ${_component}_VERSION_MINOR "${${_component}_VERSION_MINOR_LINE}") string(REGEX REPLACE "^#define[ \t]+LIB${_component}_VERSION_MICRO[ \t]+([0-9]+)$" "\\1" ${_component}_VERSION_PATCH "${${_component}_VERSION_PATCH_LINE}") set(${_component}_VERSION_STRING ${${_component}_VERSION_MAJOR}.${${_component}_VERSION_MINOR}.${${_component}_VERSION_PATCH}) unset(${_component}_VERSION_MAJOR_LINE) unset(${_component}_VERSION_MINOR_LINE) unset(${_component}_VERSION_PATCH_LINE) unset(${_component}_VERSION_MAJOR) unset(${_component}_VERSION_MINOR) unset(${_component}_VERSION_PATCH) endif() find_package_handle_standard_args(${_component} REQUIRED_VARS ${_component}_LIBRARIES ${_component}_INCLUDE_DIRS VERSION_VAR ${_component}_VERSION_STRING ) set_component_found(${_component}) endmacro() CorsixTH-0.70.0/CMake/COPYING-CMAKE-SCRIPTS000066400000000000000000000024561522247547500173030ustar00rootroot00000000000000Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. CorsixTH-0.70.0/CMake/FindFFmpeg.cmake000066400000000000000000000072161522247547500172530ustar00rootroot00000000000000# vim: ts=2 sw=2 # - Try to find the required ffmpeg components(default: AVFORMAT, AVUTIL, AVCODEC) # # Once done this will define # FFMPEG_FOUND - System has the all required components. # FFMPEG_INCLUDE_DIRS - Include directory necessary for using the required components headers. # FFMPEG_LIBRARIES - Link these to use the required ffmpeg components. # # For each of the components it will additionally set. # - AVCODEC # - AVDEVICE # - AVFORMAT # - AVUTIL # - POSTPROCESS # - SWSCALE # - SWRESAMPLE # the following variables will be defined # _FOUND - System has # _INCLUDE_DIRS - Include directory necessary for using the headers # _LIBRARIES - Link these to use # _VERSION_STRING - The component's version # # Copyright (c) 2006, Matthias Kretz, # Copyright (c) 2008, Alexander Neundorf, # Copyright (c) 2011, Michael Jansen, # Copyright (c) 2013, Stephen Baker # Copyright (c) 2015, Alexander Bessman # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. include(FindPackageHandleStandardArgs) include(${CMAKE_CURRENT_LIST_DIR}/CMakeFFmpegLibavMacros.cmake) # The default components were taken from a survey over other FindFFMPEG.cmake files if(NOT FFmpeg_FIND_COMPONENTS) set(FFmpeg_FIND_COMPONENTS AVCODEC AVFORMAT AVUTIL) endif() # Check for cached results. If there are skip the costly part. if(NOT FFMPEG_LIBRARIES) # Check for all possible component. find_component(AVCODEC avcodec libavcodec/avcodec.h libavcodec/version.h) find_component(AVFORMAT avformat libavformat/avformat.h libavformat/version.h) find_component(AVDEVICE avdevice libavdevice/avdevice.h libavdevice/version.h) find_component(AVUTIL avutil libavutil/avutil.h libavutil/version.h) find_component(SWSCALE swscale libswscale/swscale.h libswscale/version.h) find_component(POSTPROC postproc libpostproc/postprocess.h libpostproc/version.h) find_component(SWRESAMPLE swresample libswresample/swresample.h libswresample/version.h) # Check if the required components were found and add their stuff to the FFMPEG_* vars. foreach(_component ${FFmpeg_FIND_COMPONENTS}) if(${_component}_FOUND) # message(STATUS "Required component ${_component} present.") set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${${_component}_LIBRARIES}) list(APPEND FFMPEG_INCLUDE_DIRS ${${_component}_INCLUDE_DIRS}) else() # message(STATUS "Required component ${_component} missing.") endif() endforeach() # Build the include path with duplicates removed. if(FFMPEG_INCLUDE_DIRS) list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS) endif() # cache the vars. set(FFMPEG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS} CACHE STRING "The FFmpeg include directories." FORCE) set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} CACHE STRING "The FFmpeg libraries." FORCE) mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES) endif() # Now set the noncached _FOUND vars for the components. foreach(_component AVCODEC AVDEVICE AVFORMAT AVUTIL POSTPROCESS SWSCALE SWRESAMPLE) set_component_found(${_component}) endforeach() # Compile the list of required vars set(_FFmpeg_REQUIRED_VARS FFMPEG_LIBRARIES FFMPEG_INCLUDE_DIRS) foreach(_component ${FFmpeg_FIND_COMPONENTS}) list(APPEND _FFmpeg_REQUIRED_VARS ${_component}_LIBRARIES ${_component}_INCLUDE_DIRS) endforeach() # Give a nice error message if some of the required vars are missing. find_package_handle_standard_args(FFmpeg DEFAULT_MSG ${_FFmpeg_REQUIRED_VARS}) CorsixTH-0.70.0/CMake/FindSDL2.cmake000066400000000000000000000141341522247547500166100ustar00rootroot00000000000000# - Locate SDL2 library # This module defines # SDL_LIBRARY, the name of the library to link against # SDL_FOUND, if false, do not try to link to SDL # SDL_INCLUDE_DIR, where to find SDL.h # SDL_VERSION_STRING, human-readable string containing the version of SDL # # This module responds to the the flag: # SDL_BUILDING_LIBRARY # If this is defined, then no SDL_main will be linked in because # only applications need main(). # Otherwise, it is assumed you are building an application and this # module will attempt to locate and set the the proper link flags # as part of the returned SDL_LIBRARY variable. # # Don't forget to include SDL_main.h and SDLmain.m your project for the # OS X framework based version. (Other versions link to -lSDLmain which # this module will try to find on your behalf.) Also for OS X, this # module will automatically add the -framework Cocoa on your behalf. # # # Additional Note: If you see an empty SDL_LIBRARY_TEMP in your configuration # and no SDL_LIBRARY, it means CMake did not find your SDL library # (SDL2.dll, libSDL2.so, SDL2.framework, etc). # Set SDL_LIBRARY_TEMP to point to your SDL library, and configure again. # Similarly, if you see an empty SDLMAIN_LIBRARY, you should set this value # as appropriate. These values are used to generate the final SDL_LIBRARY # variable, but when these values are unset, SDL_LIBRARY does not get created. # # # $SDLDIR is an environment variable that would # correspond to the ./configure --prefix=$SDLDIR # used in building SDL. # l.e.galup 9-20-02 #============================================================================= # Copyright 2003-2009 Kitware, Inc. # Copyright 2012 Benjamin Eikel # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) find_path(SDL_INCLUDE_DIR SDL.h HINTS ENV SDLDIR PATH_SUFFIXES include/SDL2 include ) find_library(SDL_LIBRARY_TEMP NAMES SDL2 HINTS ENV SDLDIR PATH_SUFFIXES lib ) if(NOT SDL_BUILDING_LIBRARY) if(NOT ${SDL_INCLUDE_DIR} MATCHES ".framework") # Non-OS X framework versions expect you to also dynamically link to # SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms # seem to provide SDL2main for compatibility even though they don't # necessarily need it. find_library(SDLMAIN_LIBRARY NAMES SDL2main HINTS ENV SDLDIR PATH_SUFFIXES lib PATHS /sw /opt/local /opt/csw /opt ) endif() endif() # SDL may require threads on your system. # The Apple build may not need an explicit flag because one of the # frameworks may already provide it. # But for non-OSX systems, I will use the CMake Threads package. if(NOT APPLE) find_package(Threads) endif() # MinGW needs an additional library, mwindows # It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows # (Actually on second look, I think it only needs one of the m* libraries.) if(MINGW) set(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW") endif() if(SDL_LIBRARY_TEMP) # For SDL2main if(SDLMAIN_LIBRARY AND NOT SDL_BUILDING_LIBRARY) list(FIND SDL_LIBRARY_TEMP "${SDLMAIN_LIBRARY}" _SDL_MAIN_INDEX) if(_SDL_MAIN_INDEX EQUAL -1) set(SDL_LIBRARY_TEMP "${SDLMAIN_LIBRARY}" ${SDL_LIBRARY_TEMP}) endif() unset(_SDL_MAIN_INDEX) endif() # For OS X, SDL uses Cocoa as a backend so it must link to Cocoa. # CMake doesn't display the -framework Cocoa string in the UI even # though it actually is there if I modify a pre-used variable. # I think it has something to do with the CACHE STRING. # So I use a temporary variable until the end so I can set the # "real" variable in one-shot. if(APPLE) set(SDL_LIBRARY_TEMP ${SDL_LIBRARY_TEMP} "-framework Cocoa") endif() # For threads, as mentioned Apple doesn't need this. # In fact, there seems to be a problem if I used the Threads package # and try using this line, so I'm just skipping it entirely for OS X. if(NOT APPLE) set(SDL_LIBRARY_TEMP ${SDL_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT}) endif() # For MinGW library if(MINGW) set(SDL_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL_LIBRARY_TEMP}) endif() # Set the final string here so the GUI reflects the final state. set(SDL_LIBRARY ${SDL_LIBRARY_TEMP} CACHE STRING "Where the SDL Library can be found") # Set the temp variable to INTERNAL so it is not seen in the CMake GUI set(SDL_LIBRARY_TEMP "${SDL_LIBRARY_TEMP}" CACHE INTERNAL "") endif() if(SDL_INCLUDE_DIR AND EXISTS "${SDL_INCLUDE_DIR}/SDL_version.h") file(STRINGS "${SDL_INCLUDE_DIR}/SDL_version.h" SDL_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+[0-9]+$") file(STRINGS "${SDL_INCLUDE_DIR}/SDL_version.h" SDL_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MINOR_VERSION[ \t]+[0-9]+$") file(STRINGS "${SDL_INCLUDE_DIR}/SDL_version.h" SDL_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_PATCHLEVEL[ \t]+[0-9]+$") string(REGEX REPLACE "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL_VERSION_MAJOR "${SDL_VERSION_MAJOR_LINE}") string(REGEX REPLACE "^#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL_VERSION_MINOR "${SDL_VERSION_MINOR_LINE}") string(REGEX REPLACE "^#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL_VERSION_PATCH "${SDL_VERSION_PATCH_LINE}") set(SDL_VERSION_STRING ${SDL_VERSION_MAJOR}.${SDL_VERSION_MINOR}.${SDL_VERSION_PATCH}) unset(SDL_VERSION_MAJOR_LINE) unset(SDL_VERSION_MINOR_LINE) unset(SDL_VERSION_PATCH_LINE) unset(SDL_VERSION_MAJOR) unset(SDL_VERSION_MINOR) unset(SDL_VERSION_PATCH) endif() #include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(SDL REQUIRED_VARS SDL_LIBRARY SDL_INCLUDE_DIR VERSION_VAR SDL_VERSION_STRING ) CorsixTH-0.70.0/CMake/FindSDL2_mixer.cmake000066400000000000000000000074411522247547500200170ustar00rootroot00000000000000# - Locate SDL_mixer library # This module defines: # SDL_MIXER_LIBRARIES, the name of the library to link against # SDL_MIXER_INCLUDE_DIRS, where to find the headers # SDL_MIXER_FOUND, if false, do not try to link against # SDL_MIXER_VERSION_STRING - human-readable string containing the version of SDL_mixer # # For backward compatibility the following variables are also set: # SDLMIXER_LIBRARY (same value as SDL_MIXER_LIBRARIES) # SDLMIXER_INCLUDE_DIR (same value as SDL_MIXER_INCLUDE_DIRS) # SDLMIXER_FOUND (same value as SDL_MIXER_FOUND) # # $SDLDIR is an environment variable that would # correspond to the ./configure --prefix=$SDLDIR # used in building SDL. # # Created by Eric Wing. This was influenced by the FindSDL.cmake # module, but with modifications to recognize OS X frameworks and # additional Unix paths (FreeBSD, etc). #============================================================================= # Copyright 2005-2009 Kitware, Inc. # Copyright 2012 Benjamin Eikel # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) if(NOT SDL_MIXER_INCLUDE_DIR AND SDLMIXER_INCLUDE_DIR) set(SDL_MIXER_INCLUDE_DIR ${SDLMIXER_INCLUDE_DIR} CACHE PATH "directory cache entry initialized from old variable name") endif() find_path(SDL_MIXER_INCLUDE_DIR SDL_mixer.h HINTS ENV SDLMIXERDIR ENV SDLDIR PATH_SUFFIXES include/SDL2 include ) if(NOT SDL_MIXER_LIBRARY AND SDLMIXER_LIBRARY) set(SDL_MIXER_LIBRARY ${SDLMIXER_LIBRARY} CACHE FILEPATH "file cache entry initialized from old variable name") endif() find_library(SDL_MIXER_LIBRARY NAMES SDL2_mixer HINTS ENV SDLMIXERDIR ENV SDLDIR PATH_SUFFIXES lib ) if(SDL_MIXER_INCLUDE_DIR AND EXISTS "${SDL_MIXER_INCLUDE_DIR}/SDL_mixer.h") file(STRINGS "${SDL_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL_MIXER_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+[0-9]+$") file(STRINGS "${SDL_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL_MIXER_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+[0-9]+$") file(STRINGS "${SDL_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL_MIXER_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+[0-9]+$") string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL_MIXER_VERSION_MAJOR "${SDL_MIXER_VERSION_MAJOR_LINE}") string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL_MIXER_VERSION_MINOR "${SDL_MIXER_VERSION_MINOR_LINE}") string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL_MIXER_VERSION_PATCH "${SDL_MIXER_VERSION_PATCH_LINE}") set(SDL_MIXER_VERSION_STRING ${SDL_MIXER_VERSION_MAJOR}.${SDL_MIXER_VERSION_MINOR}.${SDL_MIXER_VERSION_PATCH}) unset(SDL_MIXER_VERSION_MAJOR_LINE) unset(SDL_MIXER_VERSION_MINOR_LINE) unset(SDL_MIXER_VERSION_PATCH_LINE) unset(SDL_MIXER_VERSION_MAJOR) unset(SDL_MIXER_VERSION_MINOR) unset(SDL_MIXER_VERSION_PATCH) endif() set(SDL_MIXER_LIBRARIES ${SDL_MIXER_LIBRARY}) set(SDL_MIXER_INCLUDE_DIRS ${SDL_MIXER_INCLUDE_DIR}) #include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(SDL_mixer REQUIRED_VARS SDL_MIXER_LIBRARIES SDL_MIXER_INCLUDE_DIRS VERSION_VAR SDL_MIXER_VERSION_STRING ) # for backward compatibility set(SDLMIXER_LIBRARY ${SDL_MIXER_LIBRARIES}) set(SDLMIXER_INCLUDE_DIR ${SDL_MIXER_INCLUDE_DIRS}) set(SDLMIXER_FOUND ${SDL_MIXER_FOUND}) CorsixTH-0.70.0/CMake/GenerateDoc.cmake000066400000000000000000000072571522247547500174730ustar00rootroot00000000000000# Find Lua if(WITH_LUAJIT) set(LUA_PROGRAM_NAMES luajit-2.0.3 luajit) else() set(LUA_PROGRAM_NAMES lua53 lua5.3 lua-5.3 lua52 lua5.2 lua-5.2 lua51 lua5.1 lua-5.1 lua) endif() find_program(LUA_PROGRAM_PATH ${LUA_PROGRAM_NAMES} PATHS ENV LUA_DIR /opt /opt/local ~ ~/Library/Frameworks /Library/Frameworks ) # Find Doxygen. find_package(Doxygen) if(DOXYGEN_FOUND OR LUA_PROGRAM_PATH) add_custom_target(doc) # Add sub-targets of the 'doc' target. file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/doc/index.html "\n\n") file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/doc/index.html "CorsixTH source code documentation\n") file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/doc/index.html "\n

CorsixTH main program source code documentation

\n
    \n") else() message("Cannot locate Doxygen or Lua, 'doc' target is not available") endif() if(LUA_PROGRAM_PATH) add_custom_target(doc_corsixth_lua ${LUA_PROGRAM_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/LDocGen/main.lua COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/LDocGen/output/corner_right.gif ${CMAKE_CURRENT_BINARY_DIR}/doc/corsixth_lua COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/LDocGen/output/logo.png ${CMAKE_CURRENT_BINARY_DIR}/doc/corsixth_lua COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/LDocGen/output/main.css ${CMAKE_CURRENT_BINARY_DIR}/doc/corsixth_lua WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc COMMENT "Generating API documentation for corsixth_lua" VERBATIM ) add_dependencies(doc doc_corsixth_lua) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/doc/index.html "
  • CorsixTH Lua documentation\n") endif() if(DOXYGEN_FOUND) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/DoxyGen/corsixth_engine.doxygen.in ${CMAKE_CURRENT_BINARY_DIR}/DoxyGen/corsixth_engine.doxygen @ONLY) add_custom_target(doc_corsixth_engine ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/DoxyGen/corsixth_engine.doxygen WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc COMMENT "Generating API documentation for corsixth_engine" VERBATIM ) add_dependencies(doc doc_corsixth_engine) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/doc/index.html "
  • CorsixTH engine documentation\n") file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/doc/index.html "
\n

CorsixTH helper programs source code documentation

\n
    \n") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/DoxyGen/leveledit.doxygen.in ${CMAKE_CURRENT_BINARY_DIR}/DoxyGen/leveledit.doxygen @ONLY) add_custom_target(doc_leveledit ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/DoxyGen/leveledit.doxygen WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc COMMENT "Generating API documentation for LevelEdit" VERBATIM ) add_dependencies(doc doc_leveledit) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/doc/index.html "
  • Level editor documentation\n") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/DoxyGen/animview.doxygen.in ${CMAKE_CURRENT_BINARY_DIR}/DoxyGen/animview.doxygen @ONLY) add_custom_target(doc_animview ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/DoxyGen/animview.doxygen WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc COMMENT "Generating API documentation for AnimView" VERBATIM ) add_dependencies(doc doc_animview) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/doc/index.html "
  • Animation viewer documentation\n") endif() if(DOXYGEN_FOUND OR LUA_PROGRAM_PATH) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/doc/index.html "
\n\n\n") endif() CorsixTH-0.70.0/CMakeLists.txt000066400000000000000000000122271522247547500160620ustar00rootroot00000000000000# Cmake File for CorsixTH # OPTIONS AVAILABLE: # Any of the following: (default) # CorsixTH Features and behaviour # - WITH_FONT : Path of a font that will be used if the user does not set one (empty, Arial on macOS) # - WITH_MOVIES : Activate movies (requires with_audio, FFmpeg) (yes) # - WITH_UPDATE_CHECK : Activates support to check for new version on launch (requires libcurl) (yes) # - USE_SOURCE_DATADIRS : Use the source directory for loading resources. Incompatible with the install target (no) # - SEARCH_LOCAL_DATADIRS : Search resources in the working directory and the # program directory where the executable stores. Makes the executable # portable (yes for Apple) # - WITH_MIDI_DEVICE : Enable MIDI device support (yes) # Dependency resolution # - WITH_LUAJIT : Use LuaJIT instead of Lua (must specify library path) (no) # - WITH_LUAROCKS : Install required luarocks in the macOS app (requires luarocks) # - FETCH_CATCH2 : Use FetchContent to obtain Catch2 if ENABLE_UNIT_TESTS=yes # - FETCH_SOUNDFONT : Use FetchContent to download a soundfont to use (no) # - FETCH_UNICODE_FONT: Use FetchContent to download the GoNoto Unicode font (no) # Tests and debug options # - ENABLE_UNIT_TESTS : Enable Unit Testing Target (requires Catch2) (no) # - ENABLE_SANITIZERS : Build with AddressSanitizer (ASan) and UndefinedBehaviorSanitizer (UBSan) enabled (no) # - WITH_TRACY : Build with Tracy profiling enabled (no) # Additional build targets # - BUILD_ANIMVIEW : Generate AnimView build files (no) # - BUILD_TOOLS : Generate cli tools cmake_minimum_required(VERSION 3.14) # Define our options option(BUILD_CORSIXTH "Builds the main game" ON) option(WITH_MOVIES "Activate in game movies" ON) option(WITH_LUAJIT "Use LuaJIT instead of Lua" OFF) option(WITH_UPDATE_CHECK "Check for new versions" ON) option(WITH_MIDI_DEVICE "Enable MIDI device support" ON) option(USE_SOURCE_DATADIRS "Use the source directory for loading resources. Incompatible with the install target" OFF) option(ENABLE_UNIT_TESTS "Enables Unit Testing Targets" OFF) option(BUILD_ANIMVIEW "Build the animation viewer as part of the build process" OFF) option(BUILD_TOOLS "Build additional CLI tools (rnc_decode)" OFF) option(ENABLE_SANITIZERS "Build with ASan and UBSan enabled" OFF) option(WITH_TRACY "Build with Tracy profiling enabled" OFF) option(FETCH_SOUNDFONT "Download soundfont asset" OFF) option(FETCH_UNICODE_FONT "Download GoNoto Unicode font" OFF) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake) if(WITH_MOVIES) list(APPEND VCPKG_MANIFEST_FEATURES "movies") endif() if(BUILD_ANIMVIEW) list(APPEND VCPKG_MANIFEST_FEATURES "animview") endif() if(WITH_UPDATE_CHECK) list(APPEND VCPKG_MANIFEST_FEATURES "updatecheck") endif() if(WITH_MIDI_DEVICE) list(APPEND VCPKG_MANIFEST_FEATURES "midi") endif() if(ENABLE_UNIT_TESTS) list(APPEND VCPKG_MANIFEST_FEATURES "catch2") endif() if(WITH_TRACY) list(APPEND VCPKG_MANIFEST_FEATURES "tracy") endif() project(CorsixTH_Top_Level) if(ENABLE_UNIT_TESTS) enable_testing() endif() if(MINGW) set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++") endif() if(ENABLE_SANITIZERS) if(MSVC) # https://learn.microsoft.com/en-us/cpp/build/reference/fsanitize?view=msvc-170 add_compile_options(/fsanitize=address) else() add_compile_options(-fsanitize=address,undefined) add_link_options(-fsanitize=address,undefined) endif() endif() include(CheckIncludeFiles) set(CORSIX_TH_DONE_TOP_LEVEL_CMAKE ON) if(APPLE) set(SEARCH_LOCAL_DATADIRS_DEFAULT ON) else() set(SEARCH_LOCAL_DATADIRS_DEFAULT OFF) endif() option(SEARCH_LOCAL_DATADIRS "Search resources in the working directory and the program directory where the executable stores." ${SEARCH_LOCAL_DATADIRS_DEFAULT}) if(APPLE) set(WITH_FONT_DEFAULT "/Library/Fonts/Arial Unicode.ttf") else() set(WITH_FONT_DEFAULT "") endif() set(WITH_FONT ${WITH_FONT_DEFAULT} CACHE FILEPATH "Use this font if one is not set in the game settings") # Dependency management if(APPLE) option(WITH_LUAROCKS "Install required luarocks in the app" OFF) endif() if(WITH_MOVIES) set(CORSIX_TH_USE_FFMPEG ON) message("Note: FFmpeg video is enabled (default)") else() set(CORSIX_TH_USE_FFMPEG OFF) message("Note: FFmpeg video is disabled") endif() if(WITH_UPDATE_CHECK) message("Note: Update check is enabled (default)") else() message("Note: Update check is disabled") endif() if(VCPKG_TARGET_TRIPLET AND NOT WITH_LUAROCKS) set(CORSIX_TH_LINK_LUA_MODULES ON) else() set(CORSIX_TH_LINK_LUA_MODULES OFF) endif() include(GNUInstallDirs) # Include individual projects message("") message("Building common libraries") add_subdirectory("libs") # We build CorsixTH if BUILD_CORSIXTH is set. This is set by default and should generally be set. if(BUILD_CORSIXTH) message("Building CorsixTH") add_subdirectory(CorsixTH) set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT CorsixTH) endif() if(BUILD_ANIMVIEW) message("Building AnimView") add_subdirectory(AnimView) endif() if(BUILD_TOOLS) message("Building Tools") add_subdirectory("tools") endif() message("") # Documentation generation, construct 'doc' target include(GenerateDoc) CorsixTH-0.70.0/CMakePresets.json000066400000000000000000000133531522247547500165440ustar00rootroot00000000000000{ "version": 3, "configurePresets": [ { "name": "linux-dev", "binaryDir": "${sourceDir}/build/dev", "generator": "Ninja", "cacheVariables": { "USE_SOURCE_DATADIRS": "ON", "ENABLE_UNIT_TESTS": "ON", "ENABLE_SANITIZERS": "ON", "BUILD_ANIMVIEW": "ON", "BUILD_TOOLS": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "CMAKE_BUILD_TYPE": "Debug" } }, { "name": "linux-dev-vcpkg", "binaryDir": "${sourceDir}/build/dev-vcpkg", "generator": "Ninja", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", "USE_SOURCE_DATADIRS": "ON", "ENABLE_UNIT_TESTS": "ON", "ENABLE_SANITIZERS": "ON", "BUILD_ANIMVIEW": "ON", "BUILD_TOOLS": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "CMAKE_BUILD_TYPE": "Debug" } }, { "name": "linux-tracy", "binaryDir": "${sourceDir}/build/tracy", "generator": "Ninja", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", "USE_SOURCE_DATADIRS": "ON", "ENABLE_UNIT_TESTS": "ON", "BUILD_TOOLS": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "WITH_TRACY": "ON", "CMAKE_BUILD_TYPE": "RelWithDebInfo" } }, { "name": "win-dev", "binaryDir": "${sourceDir}/build/dev", "generator": "Visual Studio 17 2022", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", "USE_SOURCE_DATADIRS": "ON", "ENABLE_UNIT_TESTS": "ON", "BUILD_ANIMVIEW": "ON", "BUILD_TOOLS": "ON" } }, { "name": "win-x64-rel", "binaryDir": "${sourceDir}/build/win-x64-rel", "generator": "Visual Studio 17 2022", "architecture": "x64", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", "VCPKG_TARGET_TRIPLET": "x64-windows-release", "ENABLE_UNIT_TESTS": "ON", "FETCH_SOUNDFONT": "ON", "FETCH_UNICODE_FONT": "ON" } }, { "name": "win-x86-rel", "binaryDir": "${sourceDir}/build/win-x86-rel", "generator": "Visual Studio 17 2022", "architecture": "Win32", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", "VCPKG_TARGET_TRIPLET": "x86-windows", "ENABLE_UNIT_TESTS": "ON", "FETCH_SOUNDFONT": "ON", "FETCH_UNICODE_FONT": "ON" } }, { "name": "macos-arm64-rel", "binaryDir": "${sourceDir}/build/macos-arm64-rel", "generator": "Unix Makefiles", "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64-osx-release", "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", "CMAKE_C_COMPILER": "clang", "CMAKE_CXX_COMPILER": "clang++", "CMAKE_MAKE_PROGRAM": "/usr/bin/make" } }, { "name": "macos-x64-rel", "binaryDir": "${sourceDir}/build/macos-arm64-rel", "generator": "Unix Makefiles", "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x64-osx-release", "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", "CMAKE_C_COMPILER": "clang", "CMAKE_CXX_COMPILER": "clang++", "CMAKE_MAKE_PROGRAM": "/usr/bin/make" } } ], "buildPresets": [ { "name": "linux-dev", "configurePreset": "linux-dev", "configuration": "Debug" }, { "name": "linux-dev-vcpkg", "configurePreset": "linux-dev-vcpkg", "configuration": "Debug" }, { "name": "win-dev", "configurePreset": "win-dev", "configuration": "Debug" }, { "name": "win-x64-rel", "configurePreset": "win-x64-rel", "configuration": "RelWithDebInfo" }, { "name": "win-x86-rel", "configurePreset": "win-x86-rel", "configuration": "RelWithDebInfo" }, { "name": "macos-arm64-rel", "configurePreset": "macos-arm64-rel", "configuration": "RelWithDebInfo" }, { "name": "macos-x64-rel", "configurePreset": "macos-x64-rel", "configuration": "RelWithDebInfo" } ], "testPresets": [ { "name": "linux-dev", "configurePreset": "linux-dev", "output": { "verbosity": "extra", "outputOnFailure": true }, "configuration": "Debug" }, { "name": "linux-dev-vcpkg", "configurePreset": "linux-dev-vcpkg", "output": { "verbosity": "extra", "outputOnFailure": true }, "configuration": "Debug" }, { "name": "win-dev", "configurePreset": "win-dev", "output": { "verbosity": "extra", "outputOnFailure": true }, "configuration": "Debug" }, { "name": "win-x64-rel", "configurePreset": "win-x64-rel", "output": { "verbosity": "extra", "outputOnFailure": true }, "configuration": "RelWithDebInfo" }, { "name": "win-x86-rel", "configurePreset": "win-x86-rel", "output": { "verbosity": "extra", "outputOnFailure": true }, "configuration": "RelWithDebInfo" }, { "name": "macos-arm64-rel", "configurePreset": "macos-arm64-rel", "output": { "verbosity": "extra", "outputOnFailure": true }, "configuration": "RelWithDebInfo" }, { "name": "macos-x64-rel", "configurePreset": "macos-x64-rel", "output": { "verbosity": "extra", "outputOnFailure": true }, "configuration": "RelWithDebInfo" } ] } CorsixTH-0.70.0/CONTRIBUTING.md000066400000000000000000000165161522247547500155600ustar00rootroot00000000000000# CorsixTH Contributing Guidelines # ## Tell other devs what you are working on! ## When you start working on a fix/enhancement for an open issue always post a comment in this issue's discussion to tell other devs that you have started working on it so that they won't waste any of their free time by working on their own fix/enhancement for it. If there isn't an open issue for a bug fix/enhancement you want to work on please check that one wasn't closed by a previous developer who didn't finish their work, which you could finish. And if there is no existing issue the bug fix or feature you plan to contribute open a new issue for it and tell other devs here that your going to/have started working on it. **If you have an idea for an enhancement that does not have a discussion, make a *Feature Request* first to discuss its desirability. This helps make sure your development time is a worthy endeavour.** ## Enhancement/Suggestions ## To suggest an enhancement, open a new [issue](https://github.com/CorsixTH/CorsixTH/issues/new/choose) and click the *Feature Request* button. It will provide all the information needed to evaluate the suggestion or enhancement. ![image](https://user-images.githubusercontent.com/20030128/123638352-fc609400-d816-11eb-88ad-11030e041fc4.png) ## Pull Requests (PRs) ## When providing a pull request ensure the description field describes the major changes from the request. If your pull request relates to any existing issues, link those issues to the description by referencing them with a `#` followed by the issue number.\ The pull request provides a default layout to help you fill out this information. ### Pull Request Statuses ### CorsixTH encourages using the following labels inside your Pull Request's title to denote its current progress. Unlabelled pull request will be considered *Ready* and may be merged without warning. | Label | Description | | ----- | ----------- | | **[WIP]** | Work in Progress | | **[RFC]** | (Optional stage) Request for Comments (aka Ready for Review) | | ***\*** | Ready | Please make sure you label and update your Pull Request accordingly. You can also submit a **Draft Pull Request** as an alternative to the **[WIP]** label. ### CorsixTH Developers: Configuring Pull Requests ### All pull requests in CorsixTH must have an appropriate PR label before merging to master. This ensures it goes into the current project. Those in Draft/[WIP] do not need a label until past that stage. Available labels are: | Label | Description | | ----- | ----------- | | **PR:Bugfix** | Code that fixes something broken. | | **PR:DevTools/Repo** | Code that mainly serves the CorsixTH repository, developer assets, or compilation and CI tools. | | **PR:Feature** | Implementation of something brand new to CorsixTH that did not exist before. Includes creating a missing feature of TH. | | **PR:Improvement** | Improvements to a feature or function that already exists. This includes changes to achieve closer matching behaviour with TH. | **PR:Refactor** | Altering the structure of existing code without necessarily changing desired functionality. | | **PR:Translation** | Contributions to CorsixTH's translations. | There is also the label `PR:need-rebase`, that developers should apply to any pull request that requires syncing/rebase with master before merge. It can be removed after a rebase. ## CONTRIBUTING CODE: ## **Important!**\ Ensure you have read our [Coding Conventions](https://github.com/CorsixTH/CorsixTH/wiki/Coding-Conventions) before starting your work. CorsixTH may use styles different to your previous experience with ``Lua`` and ``C++``. The [Wiki](https://github.com/CorsixTH/CorsixTH/wiki/) also contains other useful information that could be beneficial before contributing code. *NB: If you're using GitHub Desktop ignore the git specific commands and follow guidance from [GitHub Docs](https://docs.github.com/en/desktop/installing-and-configuring-github-desktop/overview/getting-started-with-github-desktop)*\ **First Time** 1. Ensure you have a GitHub account (https://github.com/signup/free) 2. Fork CorsixTH\CorsixTH (https://github.com/CorsixTH/CorsixTH/fork) 3. Ensure you have a git client. ([GitHub Desktop](http://desktop.github.com) [Interactive] | [Git](https://git-scm.com/downloads) [Shell]) 4. Fork the CorsixTH/CorsixtTH project to your account, the CorsixtTH/CorsixtTH project page has a button for this. 5. Clone your fork to your computer - ``git clone https://github.com/mygithubuser/CorsixTH.git`` 6. Add upstream remote - ``git remote add upstream https://github.com/CorsixTH/CorsixTH.git`` **Every Time** 1. Sync your master branch with the CorisxTH repository's master branch - ``git checkout master`` - ``git fetch upstream`` - ``git merge --ff-only upstream/master`` 2. Make sure no one is already working on the issue you want to work on. 3. Tell other developers that you've started/will start working on this issue by posting a comment in its existing issue discussion or if there's no existing discussion for it then please open a new issue discussion for it and tell other devs here that your working on it. 4. Create feature branch from your master - ``git branch myfeature master`` 5. Checkout your feature branch - ``git checkout myfeature`` 6. Make your changes 7. Unittest continuously, see README.txt in CorsixTH/Luatest for more info 8. Review, add, and commit your changes.\ Note: ``C++`` code must be formatted using ``clang-format`` before it will be accepted - ``git diff`` | See your changes. - ``git diff --check`` | Check there's no white space. - ``git add`` | do this for each file - ``git commit`` | Write an informative commit message and save. 9. Push your changes to your fork - ``git push origin myfeature`` 9. Create a Pull Request -- GitHub will pick up your latest branch committed to automatically when accessing CorsixTH/CorsixTH. The developers will review and report any changes needed to your Pull Request so it could be accepted. #### Notes #### ##### Multiple commits: ##### If your pull request can not be summarised in a single sentence, break it into smaller steps and do a separate commit for every independent operation (e.g. one sentence per commit is a good measure). This means doing step 10 several times as you go. You still only need to do one pull request at the end. ##### Syncing with Upstream: ##### If it takes a long time between when you start your feature and when you finish there might be other important changes other people are making to CorsixTH. To ensure your pull request operates correctly within the latest changes: - Commit your work to the feature branch - ``git checkout master`` - ``git fetch upstream`` - ``git merge --ff-only master`` - ``git checkout myfeature`` | switch back to your feature branch to continue working on it *NB: GitHub Desktop users need to conduct fetch upstream from your branch on github.com and rebase from GitHub Desktop after*\ This downloads all the changes from CorsixTH/CorsixTH since you started, and moves your commits on top of them. If there are conflicts, for example if someone else changed the same line in the same file that you did you will be asked to resolve those conflicts. If you follow these guidelines then you should be well on your way to producing good pull requests. If you need more help get in touch at our [Discord Server](https://discord.gg/Mxeztvh) or via [Matrix](https://matrix.to/#/#corsixth-general:matrix.org). CorsixTH-0.70.0/CorsixTH/000077500000000000000000000000001522247547500150215ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Bitmap/000077500000000000000000000000001522247547500162355ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Bitmap/aux_ui.dat000066400000000000000000000214631522247547500202270ustar00rootroot00000000000000Ÿ>þ7>�>=þ6>>7534ú5667>7645ü67>765Ê67@=6i67>765Æ67B=>7j67>765i6=A=7N67D=>7l67>765i67>D=7G67C=>7p67>765l677>C=7A67D=>7r67>765o67>D=77E=7t67>765q67>J=>7v67>765t67E=>7y67>765s67G=7y67>765q67K=7w67>765p67D=7>D=7u67>765n67D=>7667>D=7s67>765m67C=>7B67>E=6p67>765l67B=>7F67>D=7o67>765k6=A=>7J67>D=6m67>765j67@=>7N67>B=6m67>765j67@=6Q6=A=6m67>765j67==>7R67>==>7n67>765k6>77T67>>7o67>765ý67>7þ677>>ÿƒ7>>ÿ„>ÿž ¼ ÿÿ ¸ † ´ Š ° Ž ¬ ’ ¨ – ¤ š   ž œ ¢ ˜ ¦ ” ª � ® Œ ² ˆ ¶ „ º ÿÿ º „ ¶ ˆ ² Œ ® � ª ” ¦ ˜ ¢ œ ž   š ¤ – ¨ ’ ¬ Ž ° Š ´ † ¸ ÿÿ ¼ Ÿÿ¿¿¿¿¿¿¿¿¿¿¨PP¼PAPÿ·PEPÿ³PIPÿ¯PMPÿ«PQPÿ©PQPÿ«PMPÿ¯PIPÿ³PEPÿ·PAPÿ»PP¿¿¿¿¿¿¿¿¿¿©ÿ¿¿¿¿¿¿¿³PP¼PAPÿ·PAPÿ·PAPÿ·PAPÿ¹PPPP¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ªÿ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿·PPPP¼PAPÿ»PAPÿ»PAPÿ»PAPÿ»PP¿¿¿¿¿¿¿˜ÿ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿©PPPPºPAPÿ·PAPÿ·PAPÿ·PAPÿ»PP¿¿¿¿¿¿¿´ÿ¿¿¿¿¿¿¿—PP¼PAPÿ»PAPÿ»PAPÿ»PAPÿ»PPPP¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¸ÿ¿¿¿¿¿¿¿¿¿¿¿¿¿ªÿÿ¼ÿÿ¼¼ÿÿ¼ÿÿ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¬ÿ¿¿¿¿¿¿¿¿¿¿¨ÔÔ¼ÔÔÿÿÔÔ¸ÔÔ†ÔÔ´ÔÔŠÔÔ°ÔÔŽÔÔ¬ÔÔ’ÔÔªÔÔ’ÔÔ¬ÔÔŽÔÔ°ÔÔŠÔÔ´ÔÔ†ÔÔ¸ÔÔÿÿÔÔ¼ÔÔ¿¿¿¿¿¿¿¿¿¿©ÿ„gÿÿÿi ÿÿŸ  ŸŸdž ÿ餤¤£é¡¡  `Ÿÿé§©ª©¨¦¥¤££¢¢éé\¡¡¨A«©¦¦¥¤¤££]¢¤B«ª¨¦¥¥@¤£[£¥C«¨¥¤@£¢\¢¥B«ªŸc�¥ªA«Ÿ�§¥ª@«©�¨¥©@«¥¨ ¥©ª«««£¨ ¤¨ª«««¤¨ ¤¨ª«««¤¨ ¤¨ª«««¤¨ ¤¨ª«««¤¨ ¤¨ª«««¤¨ ¤§ª«««¤¨ ¤§©«««¤¨ £§©«««¤¨ £¦©«««¤¨ ¢¦©«««¤¨ ¢¦©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ccžcžŸcŸ¡c¡¢c¢£c£¢c¢�c�gÿ„hÿÿÿhž�ÿÿfŸžž��ÿe¡  žž�ÿd¢ ¡¡ Ÿž�d£ é¡ Ÿž�c¢ ¡¡ Ÿžž�c� ŸŸŸžž��¸§ �ŸŸŸžž�¸¨ �£ŸŸž�¸¨ ¤¢Ÿž�¨ ¹¨¥Ÿž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�?¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤?¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤?¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤?¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤?¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤-¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤?¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�?¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�?¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�?¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�?¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�-¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž� ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©«««¤¨ ¢¥©ª«ª¤¨ ¢¥©ªªª¤¨ ¢¥©ªª©¤¨¢¥@©¤¨¢¥@¨¤¨¢¥@§¤¨¢¥@¦¤¨ ¢¤¥¥¥¤¤¨¢£@¤¢¹¨¡@梢Ÿd¹ B¡ ŸŸ¡¢`¤ŸC ŸŸŸ `¡žBŸždžÿ�Až�e�ÿ��h¸ÿÿi¹ÿÿÿjÿ„Ég¹c¹¤c¤¡c¡žcž�c�¸c¸¹c¹ccÿ§ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�¨ ¹ª¦ ž�§ ¹ «¦ ž�c¹ �¨ª¡žž�d¤ ¥¡��ž�d¡Ÿž@�ež���¸¸¸ÿg�¸¸¹¹ÿh¸¹¹ÿÿi¹ÿÿÿhÉ„fÿ…ÿž ¿� ¿� ½ ÿÿ » „ ½ ÿÿ » „ ½ ÿÿ » „ ½ ÿÿ » „ ½ ÿÿ » „ ½ ÿÿ » „ ½ ÿÿ » ÿÿ ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿�ÿ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿‰ ÿÿ » ÿÿ · „ ¹ ÿÿ · „ ¹ ÿÿ · „ ¹ ÿÿ · „ ¹ ÿÿ · „ ¹ ÿÿ · „ ¹ ÿÿ ¼ ¼ ¼ Ÿÿ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿� ÿÿ » ÿÿ ½ „ » ÿÿ ½ „ » ÿÿ ½ „ » ÿÿ ½ „ » ÿÿ ½ „ » ÿÿ ½ „ » ÿÿ ½ ¿� ¿� Ÿÿž ¼ ¼ ¼ ÿÿ ¹ „ · ÿÿ ¹ „ · ÿÿ ¹ „ · ÿÿ ¹ „ · ÿÿ ¹ „ · ÿÿ ¹ „ · ÿÿ ¿ ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿Šaªaª¦a¦WaWyayv`tytV^WU~tWU[r sUW~tWr}|Vz yyvsVW~tWr|ZsqVW~tWrzKsVJsqVW~tWrzEs VVsssVVsssVVDsqVW~tWrzEs VVsVVsVVDsqVW~tWrzEs VVVVVVDsqVW~tWrzBsVVVVVV@Vs@sqVW~tWrzAsVAAV@sqVW~tWrzAsV  ©  V@sqVW~tWrzAsV ¨ªª V@s qVW~tWrzss@V ¨B© VVVssqVW~tWrzssV A¨%©©©ª VsqVW~tWrzsssV¤¥¦¨A©ªªVssqVW~tWrz@s?V¤¦¤ž¨¨¨©©ª©VsssqVW~tWrzsssVVV ¥¥ª¢¦¨©¨©©ª VVVs?sqVW~tWrzssV¥¥¥¨¦¨©©©ª©VsqVW~tWrzsV¤¤¤¥¥¥¦¦¨#¦¨¨¨©ªª©VqVW~tWrzssV¤¥¥¥@¦ ¨©ªVsqVW~tWrzsssVVV¤¤@¥¦¤ž©ª VVVssqVW~tWrz@s.V¢¤¤¥¥¥¦ª¢©ªVsssqVW~tWrzsssV¢¢¤A¥?¨¨¢VssqVW~tWrzssV ¤¤¤¥¥¦¥¦¨ VsqVW~tWrzsssV"VV ¤¤¤¥¥¦¦ VVVssqVW~tWrzAsV ¢¤¢ V@sqVW~tWrzAsV  ¢  V@sqVW~tWrzAsVAAV@sqVW~tWrzBsVVVVVV@Vs@sqVW~tWrzEs VVVVVVDsqVW~tWrzEs VVsVVsVVDsqVW~tWryEs VVsssVVsssVVDsqVW~tWrvKsVJsqVW~tWssZqUVW~tWU\VWW~tU^WU~za~{a{WaW a aaaªaª¦a¦WaWyayv`tytV^?k~t??]>?~t?>>[6 >?~t?>6Y2W3 46>?~t?>62Y6 =>?~t?>63K6>I6 =>?~t?>63E6 >>666>>666>>C6 =>?~t?>63E6 >>6>>6>>C6 =>?~t?>63E6 >>>>>>C6 =>?~t?>63B6>>>>>>@> 6666=>?~t?>63A6>AA>666=>?~t?>63A6!>  ©  >666=>?~t?>63A6#> ¨ªª >666=>?~t?>6366@> ¨B© >>>6=>?~t?>6366> A¨%©©©ª >=>?~t?>63666>¤¥¦¨A©ªª>6=>?~t?>63@6?>¤¦¤ž¨¨¨©©ª©>66=>?~t?>63666>>> ¥¥ª¢¦¨©¨©©ª >>>6?=>?~t?>6366>¥¥¥¨¦¨©©©ª©>=>?~t?>636>¤¤¤¥¥¥¦¦¨#¦¨¨¨©ªª©>>?~t?>6366>¤¥¥¥@¦ ¨©ª>=>?~t?>63666>>>¤¤@¥¦¤ž©ª >>>6=>?~t?>63@6.>¢¤¤¥¥¥¦ª¢©ª>66=>?~t?>63666>¢¢¤A¥?¨¨¢>6=>?~t?>6366> ¤¤¤¥¥¦¥¦¨ >=>?~t?>63666>">> ¤¤¤¥¥¦¦ >>>6=>?~t?>63A6!> ¢¤¢ >666=>?~t?>63A6!>  ¢  >666=>?~t?>63A6>AA>666=>?~t?>63B6>>>>>>@> 6666=>?~t?>63E6 >>>>>>C6 =>?~t?>63E6 >>6>>6>>C6 =>?~t?>64E6 >>666>>666>>C6 =>?~t?>=6K=>I=>>?~t?]>??~tU^?k~za~{a{WaW a aa Õ W  @ }   Q  ªª~   Q ªª ~   L  ©© w  @@ D   © ©© ªw @ ©@D ¨ª@©©ªªw ¨ªªD ¨B©¨A©x ¨B©B  A¨ ©©¨¨©¨©© @  g  C @A¨©©©ªA ¤¥¦¨©©¨¡¨A f  C ¤¥¦¨A©ªª ¤¦¤ž¨¨¡¨ž @  h C ¤¦¤ž¨¨¨©©ª©A ¥¥ª¢¦Ÿ¦žªB  ���d¨ D ¥¥ª¢¦¨©¨©©ª@ ¥¥¥¥ž¥žª© ž¥©§Ÿe¨ @ 8¥¥¥¨¦¨©©©ª© ¤¤¤¥¥¥¦�¦ž¨©ªª©  ¢¢¢že¨ @¤¤¤¥¥¥¦¦¨¦¨¨¨©ªª©@¤¥¥¦¥¨©ª žŸŸŸ�e¨ A ¤¥¥¥@¦ ¨©ª A ¥¦¤ž©ª A  d¨ C ¤¤@¥ ¦¤ž©ª@ ¢¤¥¤¦¥Ÿª¢©ªB  h C *¢¤¤¥¥¥¦ª¢©ª ¢¢¦¤ž¥¥¨¨¢C  i B ¢¢¤A¥¨¨¢ ¢©¥ž¥¦¥¦¨ F  ªN ªM  ªC @¤¤¤¥¥¦¥¦¨A ¢©©¤ž¥¥¦¦J © D ©D © D ©D ©H ¤¤¤¥¥¦¦A ¢¢¢¤¤¢J E©1E©1E©1E©G ¢¤¢@ ¦@¢ ¢  K  b  G @ ¢@@  B   @@ Õ   Ù   Ù   Þ I GYS¬ªYN‡�A¬ŒYI ЬªYY¬ªYJ¬‹@2A¬C2ª†AA†ª2A3ª2©2ª¬Y§ªª†¬Š«@¨B©@ ‹Š¬A¨©©©ª¬Yª¥¥¦¨A©?ªªªYŒY¤¦¤ž¨¨¨©©ª©‡Œ¬Y¥¥ª¢¦¨©¨©©ª ‡¬¬7¥¥¥¨¦¨©©©ª©¬¬¥¥¤¥¥¥¦¦¨¦¨¨¨©ªª©¬¬¤¥¥¥@¦¨©ª¬¬†¤¤@¥/¦¤ž©ª ˆ¬ŒY¢¤¤¥¥¥¦ª¢©ªˆ«‡ª£¢¤A¥'¨¨¢Œˆ¬¤¤¤¥¥¦¥¦¨¬Š�@?¤¤¤¥¥¦¦ ¬1¬Y£¤¢Y¬ª2 ¢ 2ªA2ªYAAYª2C¬«C«¬EЬª‡‡‡‡ª¬ŠB CYŒA¬ŒYDÿ†Dÿ†BDCA D @ D D 6A  © A 6@ §ªª@ 6@ ¨B©@ 6 A¨©©©ª 6 ¤¥¦¨A©?ªª 6 ¤¦¤ž¨¨¨©©ª© 6 ¥¥ª¢¦¨©¨©©ª 6¥¥¥-¨¦¨©©©ª©6¤¤¤¥¥¥¦¦¨¦¨¨¨©ªª©6¤¥¥¥@¦¨©ª6 ¤¤@¥+¦¤ž©ª 6 ¢¤¤¥¥¥¦ª¢©ª 6 ¢¢¤A¥?¨¨¢ 6 ¤¤¤¥¥¦¥¦¨ 6ÿ ¤¤¤¥¥¦¦ 6ÿÿÿ ¢¤¢ 6…  ¢  6‡@ @ 6‰E 6‹C 6�A 6� 6‘666“ŠCorsixTH-0.70.0/CorsixTH/Bitmap/aux_ui.spec000066400000000000000000000021261522247547500204040ustar00rootroot00000000000000local SPEC = { sprites = { -- one bmp per line "build_room_dialog_close.bmp", "map_cell_outline.bmp", "flag_passable.bmp", "flag_travel_north.bmp", "flag_travel_east.bmp", "flag_travel_south.bmp", "flag_travel_west.bmp", "flag_hospital.bmp", "flag_buildable.bmp", "fullscreen_border_topleft.bmp", "fullscreen_border_top.bmp", "fullscreen_border_topright.bmp", "fullscreen_border_left.bmp", "fullscreen_border_right.bmp", "fullscreen_border_bottomleft.bmp", "fullscreen_border_bottom.bmp", "fullscreen_border_bottomright.bmp", "map_cell_outline_north.bmp", "map_cell_outline_east.bmp", "map_cell_outline_south.bmp", "map_cell_outline_west.bmp", "toolbar_machinemenu_idle.bmp", "toolbar_machinemenu_pressed.bmp", "machine_dialog_bar.bmp", "machine_dialog_used.bmp", "machine_dialog_strength.bmp", }, -- Palette options palette = "from bitmap", -- Compression options complex = true, rnc = false, -- Output filenames output_tab = "aux_ui.tab", output_dat = "aux_ui.dat", } return SPEC CorsixTH-0.70.0/CorsixTH/Bitmap/aux_ui.tab000066400000000000000000000002421522247547500202150ustar00rootroot00000000000000†ã@ Þ@ C@ †@ É@ @ O@ ‹@ ú11(( L11d (Ò (@ 11E( i11w@ ù@ z@ ü@ y&0Ÿ&0Ñh+Q!CorsixTH-0.70.0/CorsixTH/Bitmap/bootstrap_font.bmp000066400000000000000000000612661522247547500220130ustar00rootroot00000000000000BM¶b6(�¨€^ÂÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/bootstrap_font.dat000066400000000000000000000115501522247547500217740ustar00rootroot00000000000000ÿ„ÿAÿ„ ÿÿÿÿÿ›ÿ‰ÿÿ„ÿÿÿÿDÿÿÿÿ„ÿÿÿÿDÿÿÿÿ„ÿÿš+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘ÿ†„ÿÿÿ…………ÿÿÿ„œÿ†)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜ÿÿÿÿ‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹ÿ†ÿÿÿÿÿÿÿÿÿÿÿÿCÿÿÿÿÿÿÿÿÿÿÿÿœÿ‹„ÿÿAÿÿ„›ÿއÿ“@ÿ¢ÿ†„ÿ„ÿÿÿÿÿÿÿÿÿÿŽÿ„ÿÿÿÿÿÿÿÿÿÿÿÿ‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÿ„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ÿ�ÿ„ÿÿÿÿÿÿÿ„ÿÿÿ‘ÿ‡ÿÿÿÿÿÿÿÿÿÿAÿÿÿ„•ÿ„ÿ„…… ÿÿÿÿ•ÿ†ÿÿ„„ÿÿÿÿÿÿÿÿÿ•ÿ„@ ÿÿÿÿÿÿÿ„ÿÿÿ„„–ÿ…!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•ÿ…ÿÿÿÿÿÿÿÿ@ÿÿÿÿ„„”ÿÿÿÿÿÿ„ÿ†‡‡ÿ† ÿÿÿÿÿÿ„„„�ÿŽ@ÿ‰@ÿ˜ÿÿÿÿ„„„ ÿÿÿÿÿÿ“ÿ„ÿÿÿÿÿÿÿÿÿÿÿ‡‘ÿ†ÿ„ÿÿ@ÿÿ@ÿÿ@ÿ…™ÿ… ÿÿÿÿÿÿÿCÿÿÿÿÿÿÿÿÿ”ÿÿÿÿÿÿÿÿÿ@ÿÿÿÿÿ@ÿ�ÿ… ÿÿÿÿ„„„ ÿÿÿÿ•ÿ„!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÿÿÿÿAÿÿÿÿÿÿAÿÿÿÿÿÿ@ÿ�ÿÿÿÿAÿÿÿÿÿÿAÿÿÿÿÿÿ“ÿ… ÿÿÿÿ„ÿÿÿÿÿÿÿÿÿ•ÿ„ÿÿÿÿÿÿÿÿÿCÿÿÿÿÿÿÿÿÿ”ÿ„@ÿÿ„„„„ÿÿAÿ“ÿ„@ÿÿÿ„„ÿÿÿÿÿÿÿÿ– ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ÿ�ÿ„#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”ÿ„#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”ÿ‡ ÿÿÿÿÿÿ„„„ ÿÿÿÿÿÿšÿÿÿÿÿÿÿÿÿ@ ÿÿÿÿÿÿÿ“ÿˆ„ÿÿÿÿ„ÿ„ÿÿÿÿÿÿÿÿ„ÿ‡•ÿÿÿÿÿÿÿÿÿ@ ÿÿÿÿÿÿÿ�ÿ… ÿÿÿÿÿ…… ÿÿÿÿÿ•ÿ„@ÿÿ„„„„„–ÿ„"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•ÿ„!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÿ„#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”ÿ†… ÿÿÿÿÿÿÿÿ…… ÿÿÿÿÿÿÿÿ…œÿ„ÿÿÿÿÿÿÿÿÿÿÿ„„„–ÿ„AÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBÿ“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ÿˆÿ† ÿÿÿÿÿÿÿÿ¨ÿ§@ÿŽÿÿÿÿÿ�ÿŽ…ÿÿÿÿÿÿÿÿ”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ÿ�ÿŒ ÿÿÿÿÿÿ„�ÿ†ÿÿÿÿ@ÿÿÿÿÿÿÿ�ÿŒÿÿÿBÿÿÿÿ�ÿ…ÿÿÿ@ÿÿÿÿÿÿÿÿÿÿ’ÿŒÿÿÿÿÿÿÿÿÿÿ@ÿˆÿ„„„ÿÿÿÿÿÿÿÿÿÿÿÿÿ”ÿÿAÿÿÿÿÿ„…ÿÿÿÿÿÿÿÿÿÿ‡ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�ÿÿÿÿÿÿÿÿÿˆÿ�ÿÿÿÿÿÿÿÿÿÿ”ÿŒÿÿÿÿÿÿÿÿÿ�ÿ�ÿÿÿÿÿÿÿÿÿÿÿ•ÿ‹ÿÿÿÿÿÿÿ@ÿÿÿÿ‹ÿŒÿÿÿÿÿÿÿÿÿÿÿÿÿˆÿ‹ÿ@ ÿÿÿÿÿÿÿÿ“ÿŒ„„‘ÿ„ÿÿÿÿÿ@ÿÿÿÿÿÿÿÿÿÿ‘ÿ‹ÿÿÿÿÿÿÿÿÿ‘ÿŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÿŽÿÿÿÿÿÿÿÿÿÿ•ÿŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”ÿ‹ÿÿÿÿÿÿÿÿÿÿÿÿ@ÿˆÿŽ@ÿÿÿÿÿÿÿÿÿÿÿÿAÿ“ÿÿÿÿÿÿÿÿÿÿÿ„ ÿÿÿÿÿÿ„Œÿ@ÿÿÿ„ ÿÿÿÿÿÿ„ÿÿÿÿÿÿÿÿÿŽÿ† ÿÿÿÿ·ÿ†ÿÿÿÿÿÿÿÿÿÿÿBÿ�ÿ… ÿÿÿÿ„„„ÿÿÿÿÿÿÿÿÿÿŒÿÿÿÿÿÿ„ÿÿÿÿÿÿÿÿÿ‘ÿÿÿÿ‡ÿÿÿBÿÿÿÿ� ÿÿÿÿÿÿ†…ÿÿÿÿÿÿÿÿ”ÿ…ÿ†…ÿÿÿÿÿÿÿÿ”ÿ…‡…ÿÿÿÿÿÿÿÿ”ÿÿÿÿ‡…ÿÿÿÿÿÿÿÿ”ÿŒ ÿÿÿÿÿÿ„ ÿÿÿÿ‰ÿÿÿÿÿ…ÿÿÿBÿÿÿÿ�ÿ„ÿ…ÿÿÿBÿÿÿÿ�ÿ„†ÿÿÿBÿÿÿÿ�ÿÿÿÿ„ ÿÿÿÿÿÿÿÿ�ÿÿÿ„ ÿÿÿÿÿÿÿÿ�ÿÿÿÿÿÿÿÿÿˆÿÿ‡ÿÿÿÿCÿÿÿÿÿÿÿÿÿ”ÿÿˆÿÿÿÿCÿÿÿÿÿÿÿÿÿ”ÿÿÿÿ†@ÿÿÿAÿÿÿ@ÿ�ÿ”ÿ„ÿÿÿCÿÿ„ÿœÿ†ÿÿÿÿÿÿÿÿÿCÿÿÿÿÿÿÿÿÿÿ˜ ÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿ•ÿ…ÿ‡ÿÿÿÿÿÿÿÿÿÿÿ•ÿ…ˆÿÿÿÿÿÿÿÿÿÿÿ•ÿÿÿÿ…ÿÿÿÿÿÿÿÿÿ‘ÿ„…ÿÿÿÿÿÿÿÿÿ‘ÿÿÿÿÿÿ„ÿÿÿÿÿÿÿÿÿÿÿÿ@ÿˆÿÿÿ‰ ÿÿÿÿÿÿ„„ ÿÿÿÿÿÿšÿÿÿ…ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•ÿ…ÿÿÿÿÿ@ÿÿÿÿÿÿ„ ÿÿÿÿÿ‰ÿ†ÿÿÿÿÿÿÿÿÿÿÿ„ÿÿAÿ”ÿ„ÿÿÿÿÿÿÿÿÿÿAÿÿÿÿAÿÿ–ÿ„#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”ÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿ„ ÿÿÿÿÿÿ’ÿÿÿÿÿˆ…ÿÿÿÿÿÿÿÿ”ÿÿÿÿÿÿÿÿ‰ÿÿÿÿÿÿˆÿÿÿÿÿÿÿÿÿÿÿ•ÿÿÿÿ†ÿÿÿÿÿÿÿÿÿ‘ÿÿÿ†ÿÿÿÿÿÿÿÿÿ� ÿÿÿ†ÿÿÿÿÿÿÿÿÿÿÿÿ”…ÿÿÿÿÿÿÿÿ£ÿÿÿÿÿÿÿÿÿÿÿÿ¤ÿ„‡ÿÿÿÿÿÿÿÿÿÿÿ‘ÿ“Aÿÿÿÿ�ÿ“@ÿÿÿÿ„™‡„ÿÿÿÿÿÿÿÿÿÿ†ÿÿÿÿÿÿÿÿ…††˜‡„&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAÿ…‡™ÿÿAÿÿÿÿÿ�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžÿ‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ’ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜ÿ„ÿÿÿÿÿÿÿÿÿÿÿÿÿ�ÿŽ@ÿÿÿÿ„ÿÿÿ–ÿŽ@ÿÿÿÿÿÿÿÿÿÿÿ•ÿ‰Aÿÿÿÿ… ÿÿÿÿÿÿÿÿÿBÿŽÿ•BÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸÿ‹ÿÿÿÿÿÿÿÿ@ÿÿÿÿ‹ÿ�@ÿ„„ÿÿÿÿ•ÿ„@ÿÿ„ ÿÿÿÿÿÿÿ„ÿÿAÿ“ÿ‡ ÿÿÿÿÿÿ„Cÿÿÿÿÿÿÿÿÿÿšÿ‡ ÿÿÿÿÿÿ„„„ ÿÿÿÿÿÿ˜ÿÿ…ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•ÿ•ÿÿÿÿÿÿÿÿÿÿÿÿ¤ÿ•ÿÿÿÿÿÿÿÿÿÿÿÿAÿÿÿÿ††‘ÿ„ÿÿÿ„ÿÿÿÿÿÿÿ‘ÿ‡ ÿÿÿÿÿÿ„„„„„˜ÿ‰@ÿ„@ÿ„@ÿ˜ÿ‹„ÿÿAÿÿ„ÿÿAÿ“ÿ„………ÿÿÿÿÿÿÿÿÿÿÿ’ÿˆ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�ÿ‹‡@ÿ†›ÿŒ ÿÿÿÿˆ ÿÿÿÿŸÿÿÿÿÿÿÿ¡ÿˆÿÿÿ…… ÿÿÿÿÿÿÿÿ„šÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ@ÿ›CorsixTH-0.70.0/CorsixTH/Bitmap/bootstrap_font.pal000066400000000000000000000014001522247547500217710ustar00rootroot00000000000000?????CorsixTH-0.70.0/CorsixTH/Bitmap/bootstrap_font.tab000066400000000000000000000025061522247547500217730ustar00rootroot00000000000000   G t š È Ñ î  ; O V ` f | › µ Õ ò  1 R q — ¹ Ã Í å ö  ) N q ‘ ± × õ  4 X v — ¹ Û  + P n œ ½ Ý ø  E m — · Û ø  / A K U p ‘ § Ä Ù õ  8 C ]  ‘ ® Æ â ÿ   4  G  e  }  ™  ¶  Ô  ô    2  >  ^  m  ‡  °  Ï  é   ,  K  m  Š  ¦  À  Ù  ð      :  Z  u  •  ¿  ã    $  B  ^  …  ª  Ð  ó   7 _ „ ¥ ¶ Ù ö  : R l † ” ¥ Ù   = ^ € ¡ º Ö ÷  5 L n “ º à ÿ ' D g  ™ º â ò   @ R CorsixTH-0.70.0/CorsixTH/Bitmap/build_room_dialog_close.bmp000066400000000000000000000112161522247547500235750ustar00rootroot00000000000000BMŽ6(†X  š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>>7666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666677>7656666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667>76566666666666666666666666666666666666666666666666>776666666666666666666666667>>76666666666666666666666666666666666666666666666666667>76566666666666666666666666666666666666666666666667==>766666666666666666666667>==>7666666666666666666666666666666666666666666666666667>76566666666666666666666666666666666666666666666667====6666666666666666666666======666666666666666666666666666666666666666666666666667>76566666666666666666666666666666666666666666666667====>76666666666666666667>======666666666666666666666666666666666666666666666666667>76566666666666666666666666666666666666666666666666======>7666666666666667>========666666666666666666666666666666666666666666666666667>7656666666666666666666666666666666666666666666666667======>766666666667>========76666666666666666666666666666666666666666666666666667>76566666666666666666666666666666666666666666666666667=======>76666667>=========666666666666666666666666666666666666666666666666666667>765666666666666666666666666666666666666666666666666667========>7667>========766666666666666666666666666666666666666666666666666666667>76566666666666666666666666666666666666666666666666666667========7>========76666666666666666666666666666666666666666666666666666666667>765666666666666666666666666666666666666666666666666666667===============7666666666666666666666666666666666666666666666666666666666667>76566666666666666666666666666666666666666666666666666666667===========766666666666666666666666666666666666666666666666666666666666667>765666666666666666666666666666666666666666666666666666666667=========>766666666666666666666666666666666666666666666666666666666666667>765666666666666666666666666666666666666666666666666666667>==============>766666666666666666666666666666666666666666666666666666666667>7656666666666666666666666666666666666666666666666666667>========77=========7666666666666666666666666666666666666666666666666666666667>76566666666666666666666666666666666666666666666666677>=======7666667========>76666666666666666666666666666666666666666666666666666667>7656666666666666666666666666666666666666666666667>========7666666666667=======>766666666666666666666666666666666666666666666666666667>765666666666666666666666666666666666666666666666======76666666666666666667========>76666666666666666666666666666666666666666666666667>765666666666666666666666666666666666666666666666666666666666666666666666666667======>766666666666666666666666666666666666666666666667>7656666666666666666666666666666666666666666666666666666666666666666666666666666667====66666666666666666666666666666666666666666666667>7645666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667>7534555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555667>>=6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666>>Ÿ>7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>�CorsixTH-0.70.0/CorsixTH/Bitmap/example.spec000066400000000000000000000007621522247547500205510ustar00rootroot00000000000000--[[ EXAMPLE SPEC FILE FOR MAKING SPRITESHEETS ]] -- Specify your sprites (BMP images) and output file locations -- It is recommended to leave palette and compression options at their default values local SPEC = { sprites = { -- one bmp per line "example1.bmp", "example2.bmp", }, -- Palette options palette = "from bitmap", -- Compression options complex = true, rnc = false, -- Output filenames output_tab = "example.tab", output_dat = "example.dat", } return SPEC CorsixTH-0.70.0/CorsixTH/Bitmap/flag_buildable.bmp000066400000000000000000000060661522247547500216610ustar00rootroot00000000000000BM6 6(@ š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/flag_hospital.bmp000066400000000000000000000060661522247547500215610ustar00rootroot00000000000000BM6 6(@ š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/flag_passable.bmp000066400000000000000000000060661522247547500215300ustar00rootroot00000000000000BM6 6(@ š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/flag_travel_east.bmp000066400000000000000000000060661522247547500222470ustar00rootroot00000000000000BM6 6(@ š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/flag_travel_north.bmp000066400000000000000000000060661522247547500224450ustar00rootroot00000000000000BM6 6(@ š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/flag_travel_south.bmp000066400000000000000000000060661522247547500224550ustar00rootroot00000000000000BM6 6(@ š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/flag_travel_west.bmp000066400000000000000000000060661522247547500222750ustar00rootroot00000000000000BM6 6(@ š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/fullscreen_border_bottom.bmp000066400000000000000000000026361522247547500240270ustar00rootroot00000000000000BMž6(( h  š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿ¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸����������������������������������������žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹CorsixTH-0.70.0/CorsixTH/Bitmap/fullscreen_border_bottomleft.bmp000066400000000000000000000070521522247547500246770ustar00rootroot00000000000000BM*6(11ô   š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÉÿÿÿÿÿ¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹ÿ��¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸ÿ�žžžžž������������������������������������������žŸŸŸŸŸŸžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžŸ       ŸŸŸ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡ ŸŸ¡¢¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¡ææææ¢¢Ÿ¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¢£¤¤¤¤¢¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¤¥¥¥¤¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥¦¦¦¦¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥§§§§¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥¨¨¨¨¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©©©©¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©ªª©¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©ªªª¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©ª«ª¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/fullscreen_border_bottomright.bmp000066400000000000000000000070521522247547500250620ustar00rootroot00000000000000BM*6(11ô   š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÿÉÿÿÿÿ¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹ÿÿÿ¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¹¹ÿÿ�������������������������������������������¸¸¹¹ÿžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž���¸¸¸ÿ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ÿž����¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¡��ž�¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹�¨ª¡žž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ «¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�CorsixTH-0.70.0/CorsixTH/Bitmap/fullscreen_border_left.bmp000066400000000000000000000030261522247547500234470ustar00rootroot00000000000000BM6( (à  š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿ¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤¢¥©«««¤CorsixTH-0.70.0/CorsixTH/Bitmap/fullscreen_border_right.bmp000066400000000000000000000030261522247547500236320ustar00rootroot00000000000000BM6( (à  š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿ¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�¹ª¦ ž�CorsixTH-0.70.0/CorsixTH/Bitmap/fullscreen_border_top.bmp000066400000000000000000000026361522247547500233250ustar00rootroot00000000000000BMž6(( h  š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿ����������������������������������������¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢££££££££££££££££££££££££££££££££££££££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžCorsixTH-0.70.0/CorsixTH/Bitmap/fullscreen_border_topleft.bmp000066400000000000000000000070521522247547500241750ustar00rootroot00000000000000BM*6(11ô   š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¦©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¦©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£¦©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£§©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤§©«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤§ª«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤¨ª«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤¨ª«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤¨ª«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤¨ª«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤¨ª«««¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥©ª«««£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥©««««¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥ª««««©�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥ª«««««Ÿ�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥««««««ªŸ���������������������������������������¥«««««««¨¥¤££££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¤««««««ª¨¦¥¥¤¤¤¤££££££££££££££££££££££££££££££££¡¨«««««©¦¦¥¤¤££¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ÿé§©ª©¨¦¥¤££¢¢éé¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÿ餤¤£é¡¡  ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸÿÿŸ  ŸŸžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/fullscreen_border_topright.bmp000066400000000000000000000070521522247547500243600ustar00rootroot00000000000000BM*6(11ô   š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª¦ ž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹¨¥Ÿž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤¢Ÿž�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�£ŸŸž�¸ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�ŸŸŸžž�¸���������������������������������������ŸŸŸžž��¸¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡ Ÿžž�££££££££££££££££££££££££££££££££££££££££é¡ Ÿž�¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡ Ÿž�¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡  žž�ÿŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸžž��ÿžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž�ÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/lib_bmp.lua000066400000000000000000000102141522247547500203420ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- This is a custom written BMP library for CorsixTH. It currently only supports -- BMP files 8bpp without compression local io_open, table_concat, setmetatable, ipairs, string_reverse, string_char = io.open, table.concat, setmetatable, ipairs, string.reverse, string.char local math_floor = math.floor local B = {} local mt = {__index = _M} -- Convert a little endian byte string into an integer local function LE(s) local value = 0 for n, i in ipairs{s:byte(1, #s)} do value = value + i * 256 ^ (n - 1) end return value end function B.open(filename) local file, err = io_open(filename, "rb") if not file then return nil, err end if file:read(2) ~= "BM" or not file:seek("cur", 8) then return nil, "Invalid header" end local bits_offset, header_size = LE(file:read(4)), LE(file:read(4)) if header_size ~= 40 then return nil, "Expected BITMAPINFOHEADER. Header size was " .. header_size end local width, height = LE(file:read(4)), LE(file:read(4)) local planes, bpp = LE(file:read(2)), LE(file:read(2)) if planes ~= 1 then return nil, "Expected single colour plane" end if bpp ~= 8 then return nil, "Expected 8 bit paletted image" end local compression = LE(file:read(4)) if compression ~= 0 then return nil, "Expected uncompressed image" end file:seek("cur", 12) local pal_size = LE(file:read(4)) if pal_size == 0 then pal_size = 2 ^ bpp end file:seek("cur", 4) local palette = {} for pal_idx = 1, pal_size do local bgr = file:read(3) file:seek("cur", 1) palette[pal_idx] = B.convertPal(bgr) end return setmetatable({ file = file, bits_offset = bits_offset, width = width, height = height, pal_size = pal_size, palette = table_concat(palette), }, mt) end function B.getPixel(bmp, x, y) local file, width = bmp.file, bmp.width if x < 0 or y < 0 or x >= width or y >= bmp.height then return nil, "Invalid pixel" end local stride = width + ((4 - (width % 4)) % 4) local offset = (bmp.height - 1 - y) * stride + x if not file:seek("set", bmp.bits_offset + offset) then return nil, "Invalid data offset" end return file:read(1) end function B.getPixels(bmp) local file, width = bmp.file, bmp.width if not file:seek("set", bmp.bits_offset) then return nil, "Invalid data offset" end local rows = {} local skip = (4 - (width % 4)) % 4 for y = bmp.height, 1, -1 do rows[y] = file:read(width) file:seek("cur", skip) end return table_concat(rows) end function B.getSubPixels(bmp, x, y, w, h) local file, width = bmp.file, bmp.width local stride = width + ((4 - (width % 4)) % 4) local offset = (bmp.height - y - h) * stride + x if not file:seek("set", bmp.bits_offset + offset) then return nil, "Invalid data offset" end local rows = {} local skip = stride - w for y = h, 1, -1 do rows[y] = file:read(w) file:seek("cur", skip) end return table_concat(rows) end function B.convertPal(data) return (data:gsub("...", string_reverse):gsub(".", function(c) return string_char(math_floor(c:byte() / 255 * 63 + 0.5)) end)) end return B CorsixTH-0.70.0/CorsixTH/Bitmap/lib_spritesheet.lua000066400000000000000000000103571522247547500221330ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- This is a custom written spritesheet library for CorsixTH. It currently only supports -- complex encoding local io_open, assert, setmetatable, string_char, table_concat = io.open, assert, setmetatable, string.char, table.concat local Spr = {} local mt = {__index = _M} function Spr.open(filename_tab, filename_dat, is_complex) return setmetatable({ tab = assert(io_open(filename_tab, "wb")), dat = assert(io_open(filename_dat, "wb")), encode = is_complex and Spr.encodeComplex or Spr.encodeSimple, }, mt) end function Spr.close(ss) ss.tab:close() ss.dat:close() return ss end function Spr.writeDummy(ss) ss.tab:write"\0\0\0\0\0\0" return ss end -- Convert an integer into a little endian byte string local function uint4(value) local b0, b1, b2, b3 b0 = value % 0x100 value = (value - b0) / 0x100 b1 = value % 0x100 value = (value - b1) / 0x100 b2 = value % 0x100 value = (value - b2) / 0x100 return string_char(b0, b1, b2, value) end function Spr.write(ss, width, height, pixels) ss.tab:write(uint4(ss.dat:seek())) ss.tab:write(string_char(width, height)) ss.dat:write(ss.encode(width, height, pixels)) return ss end function Spr.encodeSimple(width, height, data) error "TODO" end function Spr.encodeComplex(width, height, data) local result = {} local run_start = 1 local run_byte = false local prev = false local function flush_run(i) if run_byte == false then while i - run_start > 63 do result[#result + 1] = "\63" result[#result + 1] = data:sub(run_start, run_start + 62) run_start = run_start + 63 end if i ~= run_start then result[#result + 1] = string_char(i - run_start) result[#result + 1] = data:sub(run_start, i - 1) end else if run_byte == 0xFF then while i - run_start >= 63 do result[#result + 1] = "\191" run_start = run_start + 63 end if i ~= run_start then result[#result + 1] = string_char(i - run_start + 128) end else while i - run_start >= 255 do result[#result + 1] = "\255\255" result[#result + 1] = string_char(run_byte) run_start = run_start + 255 end if i ~= run_start then local d = i - run_start if 4 <= d and d <= 67 then result[#result + 1] = string_char(d + 60) result[#result + 1] = string_char(run_byte) elseif 68 <= d and d <= 130 then result[#result + 1] = string_char(d + 124) result[#result + 1] = string_char(run_byte) else result[#result + 1] = "\255" result[#result + 1] = string_char(d) result[#result + 1] = string_char(run_byte) end end end run_byte = false end run_start = i end for i = 2, #data, 1 do local byte = data:byte(i) if run_byte then if byte ~= run_byte then flush_run(i) end elseif byte == prev and i - run_start >= 4 and data:byte(i - 3) == byte and data:byte(i - 2) == byte then flush_run(i - 3) run_byte = byte end prev = byte end flush_run(#data + 1) return table_concat(result) end return Spr CorsixTH-0.70.0/CorsixTH/Bitmap/lose.pl8000066400000000000000000000020001522247547500176140ustar00rootroot00000000000000ÿÿÿÿÿÿÿÿÿÿÿÿÿ’’–ÿŠŠŽÿššžÿ‚‚†ÿÿ––šÿŽŽ’ÿ ÿ(((ÿŽ’’ÿyy}ÿ††Šÿžž¢ÿ¢¢¦ÿ–ššÿ004ÿAAEÿ†ŠŠÿqquÿ88<ÿIIMÿiimÿYY]ÿaaeÿž¢¢ÿQQUÿ}}‚ÿ¦¦ªÿªª®ÿ}‚‚ÿuuyÿ¦ªªÿuyyÿmmqÿ]]aÿmqqÿeeiÿ®®²ÿ]aaÿeiiÿEEIÿUUYÿ ÿUYYÿ448ÿÿ,,0ÿMMQÿ$$(ÿÿ<ÿ‚^AÿŒdBÿ˜kCÿ�pHÿ†lWÿ‘nQÿ‹r\ÿ–tXÿ nCÿ§vJÿ²}Lÿ¬|Pÿ±~Pÿ�n`ÿˆufÿ”{gÿ�|pÿ�~qÿ¤w`ÿ/ƒGÿŠkÿ¡~ÿF�ZÿJ¥[ÿP”aÿ}‚iÿ®€Eÿ·‚Mÿ¬�[ÿ¹„Rÿ¼‘WÿŠ„lÿš�kÿŠˆvÿ™…uÿŸ’wÿ¨†gÿµˆkÿ»”hÿ¦‹uÿ°Žrÿ«’zÿ·•wÿÀŽLÿÁ�NÿÄ‹VÿÌ‘ZÿÒ–]ÿÀŽ`ÿÆ™fÿÙ›aÿÅ›tÿПrÿàŸcÿÉ¡lÿÝ eÿȦyÿÔ¤}ÿã¤fÿë°nÿæ§rÿë²qÿ™ÿ<<ˆÿ²ÿ"U³ÿ8f¹ÿAA†ÿDD•ÿbbŒÿKK§ÿ^p±ÿ$$Ìÿ³Œÿr„€ÿ˜ÿÕ¦ÿ„„„ÿœŽƒÿž�…ÿ–––ÿ Ž�ÿ¥•‰ÿ¶˜ƒÿ«œ’ÿ°ž�ÿ¼¡‰ÿ®¡˜ÿ¸¥—ÿ©©©ÿ¶ª¢ÿ¼²«ÿ­µµÿ¸¸¸ÿŸ‚ÿÈ©ŠÿÔ¬‡ÿΰ‡ÿÓ³ŠÿÈ©’ÿÑ®‘ÿ̲™ÿÖ¶—ÿ஀ÿ᳇ÿá¶’ÿÀ® ÿɵ¨ÿÔ¼¥ÿǼ²ÿп°ÿá¿ ÿÙÀŸÿåÀ�ÿØÂ¬ÿ̺ÿ×ǶÿÞмÿæÄ©ÿéÍ·ÿðϱÿâѼÿðѲÿ½ÅÅÿÇÇÇÿ×ÌÃÿÛÒÊÿÛÚØÿàÏÀÿå×ÈÿóØÀÿâÜÕÿðßÐÿíàÎÿæáÜÿñæÛÿëèåÿñíéÿóðíÿýýýÿhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhÁÁÄÄÄÍÍÑÑÑÑðððððÑÑððÑÑðÑÑÑÑÑððÑðóððóðÑðïððóðóóðóðóóüóóüüüüóóððóððððððÑÑÍÑÍÍÍÄÄÄÄÄÄÁÁhhhhhhcccbXcXXXTTXTTTT0TchhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhÃÄÄÄÍÍÑðððÑðÑððÑððÑÑÑÑÑÑÑÑÑÑÑðÑðÑððððððòðóððóðüóóóóóüóóóüóóóóóððÑÑðÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁÁhhhhcccccbXXXXTTXTTTTThhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhh•¹ÁÄÄÄÑÍÑððððÑïçðÑÑïÑÑðÑÑÑÑÑðÑÑððððððððððóóðóðóðóóóóóóüüóóóðóðòóðïðÑÑÑÑÑÍÍÍÍÄÍÄÄÁÁÁÁÁÁÁhhchccccXXXXXTVTTT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhdehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÄÄÄÄÄÍÍðÑÑðóðÑðððððïððÑðÑÑÑÍÑÑÑÑÑðÑððóðððóðððúóóóóðóóúóóóóóóóóððÑÑÑÑÑÑÍÍÍÍÄÄÍÄÄÄÄÁÁhhhhchccbXccXXXTTTTTTTTTTT"TTT:"ThhhhchhhhhhhhhhchhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhÁÁÄÄÍÍÑÑÑÑððððÑÑððÑððÑÑÑðÑÑÑÑðÑðÑðððÑðððóððððóóóóóúðóóóüúóóóóððïðððÑÑÍÑÍÍÍÍÍÄÄÄÄÁÁÁÁÁhhhhchcccXXXXXTTTTT""TchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhchhchhhhchhhhhhhhhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhÁÁÄÍÍÑÑÑÑððÑÑÑÑððÑðÑððÑÑÑÑÑÑÑÑÑðððððÑðóððïðóðóüóúðóúóüüóüóóóððððóòððÑÑÍÍÍÍÄÄÄÁÄÄÄÁÁÄÁhhhchchcbXXXXTXXTTTTMTThhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhchhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhÁÁÄÄÄÍÍÍÑððððÑððÑÑÑÑðÑðÑÑÑðïóÑðÑðÑÑòððððóóðóóóððóóðüüóüóüóóóðóóðÑÑðÑÑÍÍÑÍÍÍÍÍÄÄÁÁÁÄÁÁhhhhcccbccXXVXXTTTTTT"TThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhchhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhdhhhhghhghhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹••hhhhhhhhhhhhhhhhhhhhhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhchhhhhhhchhhhhhchhhchhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhh¾ÂÄÄÄÄÍÑÑÑððððÑððÑðÑðÑðÑÑÑïÑðÑðððÑïóÑððððððóóðóóóóóüóüóóüóóóóóóððÑðÑÑÑÍÑÍÍÍÍÄÄÄÄÁÁÁÁÁÁhhhccccbbXXXTTTT"TTT"TM"hhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhdhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhchhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhhhhhhhhhhhhhhh�hhhhhhhhh¹�Á�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh••hhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhchhhhhhhhhhhhhhhhhhchhhhhhhhchhhhÁÄÄÍÍÑÑððððóððÑÑÑÑÑÑÑÑðÑðÎÑÑÑÑóÑÑðÑÑóðóðóðóóóðóððóóóóóóüóóðòðððððÑÑÑÑÑÑÑÍÍÍÄÍÄÄÄÁÁÁÁÁhhhhcccbbXXXXXTXTTT"T:hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhghhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhghhdhhhhdhhhhhhhhhhhhhghhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhÁhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhh�h•hhhh•hhhhhhhh•¹•ghhhhhhhh�¹•¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹hhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhchhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhÁÁÄÍÄÍÑÑÑÑðððÑÑðÑðÑÑðÑÑðÍÑÑðÑÑÑðÑððÑñððóðððóðóóðóóóóóóüüüóóóóðóððÑÑÑÑÑÍÑÍÍÄÄÍÍÄÄÄÁÁÁÁhhhghchcXbbXXTTUTTTTchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhdhhdhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhdghhhhhhhhhhchhhhhhhhdhhchhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhÁhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹�hhh¹hhhh•hh•¹�•hh•¹hhhh•¹h„h•¹�hhhhh•hhhhhhhhhhhhh•hhhhhh•h�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhchhhhhhhhhhhhÁÁÄÄÄÄÑÑÑÑÑðÑðÑÑÑÑðÑÑÍÑðÑÑðððÑÑðððððïïðóóðóðððóóóóðóóóóüüüüóðððððððððÑÑÍÍÄÍÍÄÄÄÄÁÄÁÁÁÁhchchcccbbXXXTTTT:TTTchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhchhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhÁhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhÁhhhhhhhhhhh¹•hhhhhhh¹•hhhhhh•¹•hhh¹•h•�¹•hhh•�¹•h•¹•hhhh¹•hhhhhhhh•hhh¹•�¹•hh¹hhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÄÍÍÑðÑððÑððóððððóðððÑðÑÍÍÑÑðÑÑÑðððóïïÑððóóóóðóüóóóüóóóóóóóóóðïðÑÑÍÍÍÍÍÍÍÄÄÍÄÄÁÄÁÁÁhhhhdgcccXXXTXXXTTTTT:TTTTThhhhhhhhhhhhhhhhhhhhhchhdhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhhhhhhhfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhchhchdhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhdhhhchhhhhhhhhhdhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhchhhhhhhhhhhhhhhehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhfghhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhh¾�hh•¹h•hh•h•hhhh•¹�•hhhhh•¹hh•hg•¹hhh•¹�•hhhhhhhhhhh•h•¹�hÁ�•¹••¹�•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhchhhhhhhhhhÁÁÄÄÄÍÍÑÑðððððððÑðÑððÑÑÑïÑÑïÑÑðÑÑððððððòïðóóðóóóóóóóóóüüúóóóóðóððððÑÑÍÑÑÍÍÍÄÄÄÄÁÄÄÁÁÁhhhhcccccbXXVXTTTTTT:TTchhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhehhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhh•¹•hh„h¹•hhh¹•hhhhhh¹•hhhhhhhh¹•h•hhh•hhh¹•h•hhhhh•h¹•¹•¹•¹�¹•�¹•hh¹•hhhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhghhhhhhhÁÄÍÍÍÍÍðððððÑÑÑÑðÑÑÑÑÑÑÑÑïáÑÑÑóðððóðÑóóïóðóðòóóóðúóóðóüóóóóðððïðÑÑðÑÑÑÍÍÍÍÄÄÄÄÍÄÁÁÁÁhhhchhccXbXbbXXTTTTTTTTThhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhchhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchghhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhhhÁhhhhhÁhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhh•¹„hh•¹h�h•¹Á�•hhhhhhhhh•hh•hhhhh•¹hh•¹•hhhh•¹hhh�•¹�••�hg„h„•¹„hhhhhhÁhhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhÁhhhhÁhhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÄÍÍÑÑÑðÑððÑïððÑÑÑñïïÍðÑÑðÑÑðÑðÑðððïòðððóððóóóóúóüüóüüóóóóóóðððÑÑÍÑÑÍÍÍÍÍÄÄÁÄÄÁÁÁÁhhhhcccccbXXTTTXTTTTTThhhhhhhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhh¾hh•�Á¹•gh�¹•¹•hhhhhhh¹•h¹••hh•hhhh•�¹•h„h�•h••¹hhh¹•¹•hh¾¹•h¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhÁÁÄÄÍÍÍÑÑÑïÑÑðÑðÑÑÑÑóÑðÑÍÑÑðÍðÑóÑÑðÑððððððòðóóóóðóóóüüüþüóóóóóðóððÑÑÑÍÑÑÍÍÄÄÄÄÁÄÁÁÁÁÁhhhhccccXXcXXXTTTTTTTThhchhhhhhhhhhhhhhhhhhhhghhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhchhhhhhhhhhhhchchhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghdhhhhhhhhhhgdhchhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhchhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhghhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhÁhhhÁhhhh•¹•¹�•h•¹„•�hhhh•hhhhhhh•¹h•¹•hh•¹hhhhh¹•¹•¹hhhhhhhhh•¹�„•¾�•hhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÍÑÑððóðððððððÑððÑÐðÑÑÑðÑðÑÑÑððÑððóïðóóðóðóðüóóóóóóóóóóóðððÑððððÑÍÍÍÍÍÍÍÍÍÄÍÄÄÁÁÁhhhhhcccccXXXXXTTTTTTTchhhhhhhhhhhhhhhhhhhhhhfhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhÁhhÁhhhÁhhhÁhhhhhhhhhhhÁhhÁhhhÁÁhhhhhhhhhhhÁhhhhhhhhhhÁhhÁhhÁhhhhhhÁhhÁhhÁhhhhÁhhÁhhhÁhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhh¹••�¹•¹•h•h¹•h•hh•hhhhh�¹••hhhhhhhhhhhhhhhh•hhhh•„¾¹•¹•¹•hhÁhhhÁhhhhhhÁhhÁhhÁhhhÁhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhÁhhhhhÁhhhhÁhhhhhhhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhfhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÍÍÍÑÑðððððÑÑóÑÑÑÑðÑáÑÑÑïÍÑÑðððïðððððòðóóðóóðóóóóóóóóüüóóóðððððÑÑÑÑÑÍÍÍÍÄÄÄÄÁÁÄÁÁhhÁhcchcccXbXXTTTTT0"TTTchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhchhhhhhhhfhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhghhchhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhÁhhhhÁhhhhhÁhhhhhhhhÁhhhhhhhhÁhhhhhhhhhÁÁhhhhhhhhhhhhhÁhhhhÁhÁhhhhÁhhhhÁhhÁhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhh•¹hhhhh•¹Á�••¹h•¹h•hh•¹••¹hhhhh•hhhhhh•hh•¹hh•¹•¹�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhÁhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhÁhhhhhhhhhhhhhÁhhhhhÁhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhÁhhhhhÁhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhhhhhhhhh¹„hhhhhhhhhhhhhhhhhhhhhÁÄÄÄÍÄÍÐÐÑððóðÑÑðÑðÑððððððÑÑÑÑÑóïÑðððððóóïðóðóóóðóóüóóóüüüóóðóððððÑÑÑÑÑÑÑÍÄÍÄÄÄÁÁÁÁÁhÁhhchcccXbbXXXXTTTTTTTTT:hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhghhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhchhhhhhdghhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhÁhhhÁhhhÁhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhÁÁhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhÁhÁÁhhhhhhÁhhhhhhhhhhhh•Áh•�¹•¹•hhh•Á¹•h•�¹•hhhh•h¹•Á•h•h¹•Á•hhh•�¾„¹•hhhhhhhhÁhÁhhÁhÁhhhhhhhhhÁhhhhÁhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhÁhhÁhhhhhÁhhhhÁhhÁhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhÁhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhÁhhhhhÁhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhÁhhÁhhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhh•hh�hhhhhhhhh•�¹•hhhhhhhhhhhhhhhhhhhhÁÁÍÍÍÑáðððÑÑÑðððÑðÑÑÑÑÑÍÑÑÍÑðÑïÑóððððòððóððóððóóððóóóóóóüóðóððïððÑððÍÑÑÍÍÍÍÄÄÄÄÄÄÁÁÁhhhhhccccXXXXTUXT"TTT"TTchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhdhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhchhhhchhhhhhhhhhhhhhhhdhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhÁhhhhhhhhhhhÁhÁhÁhhhhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhÁhÁhhhÁhhhhÁhhhhÁhÁhhhhhhhhhhhhhhhhhÁÁhhhÁhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhÁhhhÁh•¹h•¹h•¹�•hh•¹�hh•¹hhhh•h•¹Á�•¹h•¹¾„h•¹hh•¹�¹•hh•ÁhhhÁhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhÁhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhÁhhÁhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhhÁhhhÁhhhhhhhhhÁhhhhÁhhhhhhÁhhhhhhhhhhhÁhhÁhhhhhhÁhhhhhhÁhhhhhÁhhhhÁhhhhÁhhhÁhhhhhÁhhhhÁhhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhÁhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhÁhhÁhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhÁhhhÁhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhh•¹�¹•¹„hhhhhh•¹hhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÄÍÑÑðÑðððððÑðÑðÑïðÑÑÍïÑÑððÑÑðððïòððððóóïðóóðóóóóüóóóüúúóóóððððÑÑÑÑÑÑÍÍÍÍÍÄÄÄÁÁÁÁÁhhhhcccccbXXXXTTTTTTTThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhghhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhdhhhhhhhchhhhhchhdhhhhhhhhhhhhhÁhhhhhhhÁÁhhhhhÁhÁhhÁhhhhhhhhhhÁhhhhhÁhhhÁÁhhhhhhhhhhÁhhÁhhhhhhhhhhhÁhhhhÁhhhhÁhhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhhhhhhhÁhhhhhhÁÁhhhhhhhhhhhÁhhhhhhÁhhhhh¹•hh•¹•hhhhÁhh¹•Á�¹Áhhhhh�¹•hhhhh••�¹•h¹•hhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhÁhhhhhhhhÁhhÁhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhÁhÁhhhhhhhhhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhÁhÁhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhÁhhhhÁhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�••�¹•hhhhhhhhhhhhhhhhhhhhh�hhhhhhhÁÁÄÄÄÍÑÐÑÑïÑÑðÑððÑÑððÑÑðÑððïÎÐïáðÑððÑððóóðóóóðúóüóóóóóüóóóóððóóóðððÑÍÍÍÍÑÍÄÄÍÄÄÄÄÄÁhhÁhhccccccXbXXXXTTTTTTTTTTThhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhh•�¹•hhhh�¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhchhhhhhedhhhhhhhhhhÁhhÁhhhhhhÁhÁhhÁhhhÁhhhhhhÁhhÁÁhhhhhÁhhhhhhhÁhÁÁhhÁhhÁhhÁhhhÁhhÁhhhhhhhhhhÁhhhhÁÁhÁhhhhÁhhhhhhhhhÁhÁhÁhÁhÁhhhhhhhhhhhhhÁhÁhhÁhhhÁhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁh•¹�h•hhh•hhh•¹„h•hhh•hhh•hhÁ•¹•¹hhÁhhhhÁhÁhhÁhhÁhÁhhhhhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhÁÁhhÁhhhhhhhÁhhÁhhhhhhhhhhÁhhhhhÁhhÁhhÁhhÁhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁÁhhÁhhÁhÁhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhÁhÁhhhhhhhÁhhhhÁhhhhhhhhhhhhÁhhhhÁhhÁhÁhhhhÁhhhÁhhÁhhÁhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhÁhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhÁhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹•¹hhhhhhhhhhhhhhhhhhhhhhhh¹•hhhhhhhÁÁÄÄÄÍÍÑððÑððððÑðÑÑÑðÑðÑÐáÑðÍðÑðÑÑððÑððððððóðóóðóóóóóüüóüóüðóòðððÑðÑÑÑÍÍÍÍÍÄÄÄÄÄÄÁÁÁhhhhhhhcccXXXXXTTTT:TcÁhhhhhhhhhhhhhhhhh•¹hhhhhhhhhhhhh•¹�•hh„¹hhhhhhhhhhhhhhhhhh•�hhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh„hhhhhhhh•¹hhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhh�•hhhhhhhhhhhhhhhhhhhhhhhhchhhÁhÁÁhhhÁhhhhhhÁhÁhhhhhÁÁhhhhÁhhhÁhhhhhhÁhhÁhÁhhhhhhÁhÁhÁhhÁhhhÁhhhÁhhhÁhhhhhhhhÁhhhhhÁhhÁhhhÁhhÁhhÁhhhhhhÁhÁhhhÁhhhÁhhÁhhÁhhhhhhÁhhhhhÁÁhhhhhÁÁhÁhÁhhhhhÁhhhÁhhhhhÁhhhh•hh•¹Áh•h¹•hÁh�¾Á¹•Áh¹•Á•¹•hh¾„ÁhhhhhhÁhhhhhhÁhhhhhhhhÁhhÁhhhhhhhhÁhhÁhhÁhÁhhhÁÁhhÁhhhhhhhhhÁhhhhhÁhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhÁhÁhhÁhÁhhÁhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhÁhhhhhhhhhÁhhhhhÁhhÁhhhhhhÁhhÁhhÁhÁhhhhÁhhhhhhhhhhhhÁhÁhhÁhhÁhhhhhhÁhhÁhhhhÁhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhÁhÁhhhhÁhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhÁhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhÁhhhhÁhhhhhhhhÁhhhhÁhhhÁhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhhhhÁhhhhhÁhhhhhhhhhÁhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhÁhhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhh•hhhhhhhhhhhhh„¾„¹hhhhhhhÁÁÄÄÍÈÑðóÑðððððÑÑðÑóÑððÑÐÑÑÑÑððÑððÑððÑðóððððúóóóóúðóóüóüóüóóóïððÑðÑÑÑÍÍÍÄÍÄÄÄÄÄÄÁÄÁÁhhhhccccccXXXTXTTTT:TT:Thhhhhhhh•¹•hhhhhhhhhhhhhhhhhhhhhhhhhhh¹•hh¾„hhhhhhhhhhhhhhhh•¹hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhh•�¹•hhhhhhhhhhhhhh•�¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhh•h¹•ghhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhÁhÁhhhhhÁhhhhhhÁÁhhÁhhhÁÁhhhÁhhhhÁhhhÁhÁhhhhÁhhÁhhhhhhÁhhhÁÁhhhÁhhhhÁhhÁhÁhhhhhÁhhhÁhÁhhhÁhhÁhhhÁhhhÁhÁhÁhhhhÁhhhhhhÁhhÁhÁhhhhÁhÁhhhhhhhÁhhÁhÁhhÁhÁhhÁhÁhhh•¹Á•¹�Á•¹h•hÁ••¹•Á�•hhh•¹hhhÁhhhÁhhÁhhhhhhhhÁhhhhÁhhÁhhhÁhhhhhÁÁhÁhÁhhhhhhhhhÁhhhhÁhhÁhhhhhhhhhÁhhhhÁhhhhhÁhÁhhhhhhhhÁhhhhhhÁhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhÁhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhÁhÁhhhÁhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhÁhÁhhhÁhhÁhhhhhhÁhhhhhhÁhhhhhhhhÁhhhhÁhhÁhhhhhhhhhÁhhÁhhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhÁhhhhhÁhhhhÁhhÁÁhhhÁhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhÁhhhhhÁhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhh•¹hh•hhhhhh•hhÁ¹�¹�•hhhhhhÁÄÄÄÍÑÐÍÑððÑòÑÑððÑÍÑðÑÑÑÑÑðððÑÑðÑðððóðððóðóóððóóóóóóüóóóüüóðóóðððððÑÑÑÑÑÑÍÍÍÍÄÁÄÁÁÁhhÁhhhhcbccXXXXXXXTTTTTTTTThhhhhh•¹�•hh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hh•hhhhhhhhhhhh•hh¹hhhh•hhhhhhhhhh••¹hhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•h•hh�¹•hhhhhhhhhhhh�hhhhhhhhhhhhhhhh¾„hhhhh•¹�h•hhhhhhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hh•h•hhhhhhhhhhh¹•hh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhÁhhhÁhÁÁhÁhhÁhhhhhhÁhÁhÁhhÁhÁhhhÁÁhÁhÁhhÁhÁhhhhhhÁhhhÁÁhÁhÁhhÁhÁÁhÁhhhhhhÁhÁÁhhhhhhhhhhÁhÁhhhhhhhhÁhÁhhhÁhÁhhhÁhhÁÁhhhhhhÁhhhÁhhÁhhÁÁhÁhÁhhhhhhÁhhhhÁhhhhÁhÁh�¾„¹•Á�Á¹•h¹•Áh¹•¹•hÁhhhÁhÁhÁhhhhÁhhhhÁhhhhhhhhhhhÁhhhhhhhÁhÁhhhhhhhhhÁhhhhhÁhhhhhhhhÁhhÁhhhhhhhhhhÁhhhhÁhhÁhÁhÁhhhhhhÁÁhhÁhÁhÁhÁhhhhÁhhhhhhÁhhhhhÁhhhhhhÁhhÁhÁhhhÁhhhÁhÁhhhÁhhÁhÁhÁhhhhhhÁhhÁhhhÁhhhhÁÁhhhhÁhhhhhhhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhÁhÁhhhÁhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhÁhÁhhhhhhhÁhhhhÁhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhÁhÁhhÁhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhÁhhhhhhhhhhhÁhhhhÁhhhhhhhÁÁhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhhÁhhhÁhhÁhhhhÁÁhhhhhhhÁhhhÁÁhhÁhhÁhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhÁhhhÁhhhhhhhhhhÁÁhhhhhhhhhÁhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhÁhhÁhhhhhhhhÁhhÁhhhhhÁhhhhhhhhhÁhhhhhhhhhhhÁhhhhÁhhhhhhhhhhÁhhÁhhhhhÁhhhhhhÁhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhÁhhhhhhhhÁhhÁhhhhhhhhhhÁhhhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhh•�¹hhhhhhh¹•h�••hh¹•hh�hÁÁÄÄÄÍÑÑÑÑðððÑðÑðÑÑðÑÑððÑÑÑÑÑïÑððððððððððððóðóóóóðóüóüúóóúóóóóðððÑÑðÑÑÍÑÍÍÍÄÄÄÄÁÁÁÄÁÁÁhhhhcccccXXXXXTTTTTTThhhhhhhÁhh¹hh�¹•hhhhh•hhhhhhhhh•hh•hhhhhhhhhhhhhhhhhhhhhh•h¹•¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹•¹•hhhhhhhh•¹•hhhhhh¹•hh•¹•hhhh¹•hhhh•�¹•hhhhh•¹•h•hhhhhh•hhhhhhhhhhhhhh�¾hhhh¹•¹hhh�¹•hhhhhhhhhhhhhh�hhhhhhhhhhh•h�¹hhhhhhhhh¹••hhhhh•�¹•h•hhhÁhhhhhhhhhhhhhhhh¹•hhhhhhhhhh•hh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�Áhh¹•¹•h�hhhhhhhhhhh¹•hhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhÁhhhÁhÁhhhhÁhhhhÁhÁhÁhÁhhhhhÁhhhhÁÁÁhÁhhÁhhhÁhhÁhÁhhÁhÁhÁÁhhÁhhÁhÁhhhhÁhhhÁhÁÁhhhhhÁhÁÁhÁÁhÁhhÁÁhÁhÁhhhÁÁhhÁÁhhÁhhÁhhhhhhhÁhÁhÁhÁhhÁÁhhhhhhÁhÁhhhÁÁhÁhhhhhhÁÁhhhhhÁ•¹Áhh•¹•hÁhhhhÁhhhhÁhhhhhÁhhhÁhhhhÁhÁhÁhhhÁÁhhÁÁhÁhhhÁhÁhÁhhÁhÁhhhhhhÁhÁhhhhÁhhÁÁhhÁhhhÁhhÁhhÁhhÁhÁhhhhhhhÁhhhÁÁÁhhÁhhhhÁhhhhhhÁhÁhhÁhhhhÁhÁhhhÁhhhhhÁhÁhÁhhhÁhhhhÁhÁhÁhhhÁhÁhhÁhhÁhhhÁÁhhhhÁhÁhÁhhhhÁhhÁhÁhÁhhÁhhhhhÁhhÁhÁhÁhhhhÁhhhhhhhhhhhhÁhÁhhhhhhhÁhhhhhhÁhÁhhhÁhhhÁhhÁhÁhhhhÁÁhhÁhÁhhhhhÁhhÁhÁhÁhhhÁhhhÁhhÁhhhhhÁÁhhÁhhÁhhhÁhhÁhhhhhhhhhhhhÁhhÁhhÁÁhhhÁhhhhhhhhhhhÁhhhhhÁÁhhhhhhhÁhhhhÁhhÁhhhÁhhhhhhhhÁhhhhhhÁhhhÁÁhhhhÁhhÁhhhhÁhhÁÁhhÁhhÁhhhhÁÁhÁhhÁÁhÁhÁhhÁhÁhhhhhhÁÁhhhhhÁhhhhhhhÁhhÁhÁhhhÁhhhhhhhhÁhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhÁhÁhhhhhhhÁhÁhÁhhhhÁÁhhhhhhhÁhhÁhhhhhhÁhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhÁhÁhÁhhhhhhÁÁhhhhhhÁÁhhhhÁhhÁhhhhÁhhhhhÁhhhhÁhhhhhhhhÁhhhÁhhÁhhÁhhhhhhhÁhÁhhÁhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhÁhhhÁhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhhhhÁhhhhÁhhhhhhhhhÁhhhhhhÁhhhhhhhhhh•¹hhhhhhhhhhh•¹•¹hhh•h•¹Á�ÁÁÁÄÍÍÍÑÑÑðóððóðððððÑÑÑÑððÑÑáÑÑÑððððïóððððóóóððóóóóúóóóüóóüóóóðððÑÑÑÑÍÍÑÍÍÍÍÍÍÄÄÄÁÁÁÁÁhccccccXXbXTXUTTTTT:TTThhhhhhhhhhh•¹•hhhhh•¹•hhhhhh•¹•¹•¹�hhhhhhhhhhhhhhhÁhhhh•¹h•�hhhhhhhhhhhhhÁh•hh•hhhhhhhhhhhhhhhhhhhhhh•h•�hhhh•hh•¹�•hh•hhhhhh•¹�•hhhh�hhhh•¹hhhhhhh•¹�••¹hhhhh•¹hh•hhhhhh•hhhh¹„h•¹�•�hhh•¹•hhh•hhhhhhhhhhh¹•hhhhhhhhh¹•¹hhhhhhhhhhhh•¹hhhh•¹hhf¹•¹•hhhhhhhhhhhhhhhhh••hhhhhhhhhh•¹hhh•hhhhhhhhhhhhhhhhhhhhhhhhhhh•¹h•hh•hhh•hhhhhhh•hhhhhhhhhhhhhhhh•hhhhhhhhhh•¹hhhhhhh•¹•hhhhhhhhhhhhh•hh•¹hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhh•hhhhhÁhÁhhhÁhÁhhhÁhhhhhhÁhÁhhhhÁhÁhÁhhhÁhhhÁhhÁhhhhÁhhÁhÁhÁhhÁhhhhhhhÁÁhhhhÁhÁhhhhÁhhhÁhÁhÁhhÁhÁhÁhÁhÁhhhhÁhÁhÁhhÁhÁhÁhhÁhhÁÁhhhhhhhhÁhÁhhhÁhÁhhÁhÁhhhhhÁhÁhhhÁhÁhÁhhhhÁhhhÁ••Áhhh�¹••ÁhÁhÁhhÁhÁhhÁhhhÁhhhÁhÁhÁhhhÁhÁhhhhhÁhhÁhÁhÁhÁhÁhÁhhÁhÁhÁhhÁhÁhÁÁhÁhhÁhhhhhhÁÁhhÁhÁhhÁhhÁhhÁÁhhhhhhhÁhhhhhhÁhhhÁhhÁhhhhhÁhhhhÁhhÁhÁhÁÁhÁhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhhÁhÁhÁhÁhhÁhhhhhhhhhhhÁhhhÁhhÁhÁÁhhhhhhhhÁhhhhhhÁhÁhÁÁhhÁhhÁhhÁhhhÁÁhÁÁhhhhhÁhhhhhhÁhhhhhhhÁhhhhÁhÁhÁhhhÁhhÁhhhhhhhÁhhhÁhhhhÁhhhhhÁhhÁhÁhhhhÁhhhhhhhhhÁÁhhÁÁhhhhÁhhhhhhhhhhhÁhhhÁhÁhhÁhhÁhhhhhÁhhhhÁhÁhhhhhhÁhhhhhhhÁhhhhhhÁhhhhÁhhÁhhhÁhhhhhhhhhhhhhÁhÁhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhÁhhhhhÁÁhhhhÁÁhhÁhhhhÁhhhÁhhÁhhÁhhhhhÁhhhÁhhhhhhÁÁhhhhhhÁÁhhhhhhÁhhhhhhhhhhhhÁhhhhhhÁhhhhÁhhÁhhhhhhhhhhhhÁhhÁhÁhhÁhhhhhÁhhhhhhhÁhÁhhhhÁhhhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhÁhÁhhhhhhhhhÁhhhhÁhhhhhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhÁhhÁhhhhhhhÁhhhhhhhhhÁhhhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhÁÁhhhhhÁhÁhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhÁhÁhhÁhhhhhhhhÁhhhhhhÁhhhhhhhhÁhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhÁhhhhhÁhhhÁhhÁhhhhÁhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhÁhhhhhhhh•hhhh•hhhhhhhhhh¹•h�h¹ÃÄÍÍÄÍÑððÑÑÑÑÑðÑðÑðÑÑÑÑÑÑÑÑÑÑðððÑÑðððóððððóðóóððóðóóüóüóóóðóðððððÑðÑÍÑÑÑÄÍÄÍÄÄÄÁÁÁÁÁhÁhhhchccXXbXXTTTTTTTThhhhhhhhhhhh•�¹•hhhhh�¹•hh•hhhh�•h•¹•hhhhhhhhhhhhhhhhhhh•�¹•¹••hh•hhhhhhhhhh¹•h¹•hh•hhhhhhh•¹•hhhhhhhh•¹•¹••hhh¹hhhh¹•h¹•hhhhhhhh¹hhh•¹•hhhhhhhhhhh•hhh¹••�¹•hhh•hh¹••hhhh¹•hhh�Á¹•hh¹hhhh•�¹•h�¹hhhhhhhhhhh�¹•hhhhhhhh•f�•h•hhhhhhhhhhhhh•hhhhhhhhhhhhhhÁhhhhhhhhhhhhh¹•hhhhhhhhhh�hh�¹•hhhhhhhhhhh•hhhhhhhhhhhhhh•�¹hhh¹••h¹•hhhhhh�¹•ghhhhhhhhhhhhh¹hhhhh•¹hhh�••hhhhhhh�¹hhh•hhhhhhhh�¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�¾hhhhhhhh•hhh�¹•hh¹f•hÁhÁhÁhÁhÁhÁhÁhÁhhhhhhÁhhhhÁhÁhÁhhhÁhÁhhhhhhÁÁhÁhhÁhÁhÁhÁhÁhÁhÁhhhÁhhÁhÁhhÁhhhÁhÁhhhÁhÁhhÁhÁhÁhhhhÁhhÁhhÁhÁhhÁhhhhhÁhÁhhÁhhÁÁhÁhhÁhÁhÁhÁhhÁÁÁhhÁhhhhhhhhhÁhÁhhÁhÁhhÁhÁh•¹hhhh¹•—¹�ÁÁhhhÁhÁhÁhhhhhÁÁhÁhhÁhhÁhhÁhÁhhÁhÁhhÁhhÁhÁhÁhhhhhÁhhhÁhÁhÁhhhhhÁhÁhhÁhÁhÁhÁhhhÁhhhÁhhÁhÁhhÁhÁhhhhÁhhhhhÁhÁhÁhhhÁhÁhhÁhhÁhÁhhÁhhÁÁhhÁhÁhhÁhÁhhhÁÁÁhhhÁÁhÁhhÁhÁhhÁhÁhÁÁhhhÁhhhhhhÁhÁhhhhhÁhhhhhhhÁhhhhhhÁhÁhÁhhhhÁhhÁhhÁhÁhÁhÁhhhhhhÁhhhhhhÁhÁhhÁhhÁhhhhhhÁhhÁhhhhÁhhÁhÁhhhÁhhhhÁhÁhhÁhÁÁhhhhhÁhhhhhÁhÁÁhhÁhhhhhÁhhÁhhhÁhÁhhhhhhÁhÁhhhÁhhhÁhhhhhÁhhhÁhhhhÁÁhhÁhhhhhhhhhhhhÁhhÁhhÁhhÁhhhÁhÁhhhÁÁhhhÁhhÁhÁhhÁhhhhÁhhÁÁhhhhÁhhhhhÁhhÁhhhhÁhhhÁhhhhhÁhÁhhhhhÁhhhÁhhÁhÁhhhhÁhhhÁhhhhhÁhÁhÁhhhÁhhhhÁÁhhhhhhhhhÁhhÁhhhÁÁhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhÁhhhhhhÁhÁhhhhhhhÁÁhhÁhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhÁhhhhhÁhÁhhhhhhhhÁhhÁhhhhhhhhhhhhhhhÁhhÁhÁhhhÁhhhÁhhhhhhhhhhhhhhÁhhÁhhhhÁhÁhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhÁhhhhhÁÁhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhÁhhhhhÁhhhhhhhÁhhhhhÁhhÁhhhhhÁhhhhhhÁhÁÁhhhhhhhhhhhhÁÁhhhhhhhhhhhÁhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhÁhhhhhhÁhhhÁhhhhhhhhhÁhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhÁhhÁhhhÁhhÁhhhhhhÁhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhÁhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhh•¹•hh•hhh•hhh•¹•hhÁÁÁÄÄÍÍÑïÑðððÑÑÑÑÑÑðÑðÑÑðÑÑÑÐÑïððððÑóððóóððóðóðóóóóüóúóóüóóóðóóððððÑÑÑÍÍÍÍÍÄÍÄÄÄÄÁÁÁÁhhhhhhcccbXXXVTTTTTTTThhhhhhhhhh•¹hhhhhhh•¹•h•¹•hhh•¹•¹•hhhhhhhhÁhhhhhÁhhhhh•¹hhhh•¹h•¹hhhhhhhhhhhhhhh•¹•hh•hhh•¹�hhh•hhhh•¹��h•¹hhÁ�h•hhhhhhh•hh•¹•hhhhh•¹�hhhhhhhhhhh•¹hhhh•¹hhhh•¹•hhh•¹hhhh�¹••¹•¹�•hhhhhh•¹hh••¹•hhh•hhhhh••¹�•hhhhhhh•¹h¹•¹•¹Áh•¹•hhhhhh•¹•hh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hh¹•hhhhhhhhhhhh•¹„¾hhh•hhhhhhh•¹hhhhhh•¹�hh•hhh•¹h„hhhhhhhhhh•hhhh�hh•h•¹�•h•¹•¹hhhhhhhhhhh•¹hhhhhhg•¹•hhhhhh•hhhhhhhhhhhhhhhhhhhhhhhh¹„hhhh•hh•¹h•¹hhhhhh•¹hhÁhÁhhhÁÁhÁhÁhhÁhÁhÁhÁhhhÁÁÁhhhÁhÁhhhÁhhhhÁhhhÁhÁhÁhhhhhhÁhÁhÁhhÁhhÁhhhhÁhhhÁhÁhÁhhhhhÁhÁhhÁhhhÁhhÁhÁhÁhhÁhÁhhhhÁhÁhÁhÁhhhÁhÁhÁhÁhÁhhhhÁhÁhhhhhhhÁhÁhÁhhhhÁhÁhhÁhhÁhhÁhhhhhÁhhÁhÁ¹Á•¹•ÁhhÁhÁhhÁhÁhhÁhhhÁhÁhhhÁhhhhhÁhhhÁhhhÁhhhÁhhÁhÁhÁhÁhÁhhhhhÁhÁhÁhÁhhhhÁÁhÁhhÁhÁhhhhÁhÁhhhhhhhÁhÁhhhhÁhÁhhhÁhhÁhhÁhhhhhÁhhÁhÁhÁhhhÁhhÁhÁhÁhhÁhhÁhhhhÁhhhhÁhhÁhÁÁhhhÁhhhÁhhÁÁhhÁhÁhhhÁhÁhÁhhÁÁhhÁhÁhhhÁhÁÁhhhhÁhÁhhhÁhÁhhhhhhhÁhÁhÁhhhÁhÁhhhÁhhÁhÁhÁhÁhhÁhÁÁhÁhÁhhhhhhÁhÁhhhhhhhÁhÁhhhhhhhÁhhhÁhÁhhÁhhhhhÁhhhhhhhÁhhhhÁÁhhhhhÁhhhhhÁhhhhÁhÁhhhÁhhhhhhhÁhhhhhhÁhÁhÁÁhhhhÁhhhÁÁhhÁhhhÁhhhhhhhhhÁhhÁhhhhhÁhhhhhhhhhÁhhhhÁhhhÁhÁhhÁhhhhhÁhhhÁhhhÁhhhhhÁhhÁhÁhhhhhhhÁhhÁhhhhhÁhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhÁhhhhhhhhhÁhhhhÁhhÁhhhhhhÁhhÁÁhhhhhÁhhhÁhhhhhhhhhÁhhhÁhhhÁhÁhhÁÁhhÁhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhÁhhhhhhÁhÁhÁhhhhhÁhhhhhÁhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhÁhhhÁhhÁhhhÁhhhhhÁhhhÁhÁhhhhÁhhhÁhhÁhhÁhhhhhhhhhÁhÁhhhhhhhhhhhhhÁhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhhÁhhÁhhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhhhhÁhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhÁhhhhÁhhÁhhhhhhÁhhÁhhÁhhhhhhÁhhÁhhhhhÁhhhhhhhhhhhhÁhhÁhhhÁhhhhÁhhhhhhhhhhhhÁhhhÁhhhhhÁhhÁhhÁhh•�Á•¹•�¹•h¹•h•¹•hh•�¹•ÁÄÄÄÍÍÑÑÑÑóððÑðóðÑðÑððÑÑðÍÑðÑÑÑÑÑÑðÑðÑððððóóððóóúóðóüüóüóóóóóðóðÑÑÑÑÑÑÑÍÍÍÍÄÄÄÄÄÄÁÁÁhhhhhcccccXXXXXXXTTTTTThhhhhhhhhhhhhhh•�¹•h•�¹••�¹•hhh•h�¹•hhhhhhhhhhhhhhhhhhÁhhhh•hhhhhhhhh•hhhh•hh•hhh•�¹hh•¹hhh•¹•hh¹•hhhh•¹hhhh„¾¹•h¹•hhhhhh¹•h•�¹•hhhh•h¹•hhhhhhhhh¹•hhh•hhhhh•h•�¹•hhhhhhh••�¹•hhhh¹•hh•h•hhhh¹•�¹•hh¹•hhhh¹•h¹•¹•h•hhh•�hhhhhh�¹•h•¹•h•hhh�¹•h¹•hh•hhhhhhhhhhhÁhhhhhhh�¾hhhhhhhhh�•�•„¹•¹•hhhh•hh•hhhhhhhh¹••hhhhhhhhhhhhhhh„¹•¹•hhh•�¹•hhhh•hh•h¹•hhh•¹hh¹•hh¹hhhhhhhhhhhhhhhhhhhhhhhhh•�¹hhh•hh¹hhhhhhhhhhhhhhhhhÁhh•�••�¹•hhh¹•hhhhh�h•hhhh•�ÁhÁhÁhÁhÁÁhhÁhÁhÁhÁÁÁhhÁhÁhÁhÁhÁhhÁhhhÁhhÁhÁhÁhÁhÁhÁhhÁhÁhÁhhhhÁhhÁhhhÁÁhÁhÁhÁhÁhhhÁÁhhÁhhÁhhhÁhhÁhÁÁhhÁhÁhÁÁhhÁhÁhÁhhÁhÁhÁhÁhhÁÁhhÁÁhÁhÁÁhhÁhÁhÁhÁhÁhhÁhÁhÁhÁhhhÁhhhhÁhhhÁhhÁhhÁhÁhÁhhhhhÁhhhhÁhhÁhhhÁhÁhhhÁhhÁhhhÁÁhhÁhhÁhhhÁhhÁhÁhhhhÁÁhhÁhhÁhÁhÁhhhÁhhÁhhhhhÁhhhÁhhÁÁhhÁhÁhhÁÁhÁÁhhÁhhÁhhÁhÁhhhhhhÁhhhÁhhÁhhhhÁhÁhhhÁhÁhhhhÁhhÁhhhÁhÁhhhÁhÁhhhhhÁhhÁhhÁhhhÁhhÁhÁhhÁÁhÁhhÁhhhhÁhÁhhÁhhhÁhhhÁhÁhhÁhhÁÁÁhhÁhÁhhÁhÁhÁhhhhhÁhhÁhÁhÁhhhÁhhhhÁhhÁhhhÁÁÁhÁhhÁhÁhÁhhÁhhÁhhhÁhÁhhhÁhÁhhhÁhÁhhÁhhÁhÁhÁhÁÁhÁhhÁhÁhÁhÁhÁhhÁhÁhÁhÁhhÁhhhÁhÁhhhÁÁhÁÁhhÁhÁhhhÁhhÁhhÁhÁhhhhhhhÁhhhÁhhhhhhÁÁhhhhÁhhÁhhhhÁhhhhhhhhhhhÁhhÁhhhhÁhhhhÁhÁÁhhÁhhhhhhhÁhÁhhhÁhÁhhÁhhÁhhhÁhÁÁhhhÁhhhhÁhhhhÁhhhÁÁhhÁhÁhhÁhÁhhhhÁhhhÁhhhÁhhhhÁhhÁhÁhhÁhhhhÁhÁhhhhhÁÁhhhÁhhhhhÁhÁhhhhhhÁhhhhÁÁhÁhÁhhhhÁhhhhhÁhhhhÁhhÁhhÁhhÁhÁhhhÁhÁhhhhhhÁhhÁhhhhÁhhÁhhhhhÁhÁhhhhhÁhhhÁhhhhhhhÁhhhhÁhhhhhÁhÁhhhhhhhÁhhhhhhhÁhhhhhhhÁhhÁÁhhÁhhÁhÁhhhhhhhhÁhhhÁhhhhÁhhÁhhhhhhhhhhhhhhÁhhhhÁhÁhÁhhhÁhhhhÁhhhhÁhÁÁhhhhÁhhhhÁhhhÁhhÁÁhhhhhhhhhhÁÁhhhhhhhhhhhhhÁhhhhhÁhhhhhhhÁhhhhhhhÁhhÁhhÁhhhhÁhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhÁhhhÁhhhÁÁhÁhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhÁhhhhhhhÁhÁhhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhhhhÁhhhhÁhhhÁhhhÁhhhhÁhhhÁhhÁÁhhhhÁhhÁhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhÁhhÁhhhhÁhhhhhÁÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhÁhhhhhhhhh•¹•¹hh•¹•hhhh•¹�hh•¹hhhhÁÁÄÄÄÍÍÑðÑÑððÑððÑÑÑÑðÑÑÑðÑÑÑÑáïððÑðÑóððóðóðððóóóóóóóóóóüüüðóóðóðïððÑÑÑÍÍÍÍÍÍÄÄÄÄÁÄÁÁÁhhhhhccccXbXXXXTTTTT:ThhhhÁhhhhÁhhh•¹hhh•¹hh•¹hhhh••¹hhhhhhÁhhhÁhhhÁhhhhhÁhhhhh•¹h•hh•hhh•¹„hh•¹h•¹hh•¹hhh•¹�•h•¹�•hhh•¹••¹hhhh••¹�h•¹�•hhh•hhh•f¹hh•hhh•¹�•hhh•hhhhhh�•hh•¹hhhh•¹•¹hhhhhhhh•¹•¹hhhh•hhhhh•¹•¹hhhhh•¹•hh¾�hhh¹�••h•�hh•¹hh•¹hhhhhhhhhh•¹�••¹hh•¹•hhhh•¹•¹hhhhhhhhhhhhhhhhh•¹„hhhhhhhhh¹•¹•¹¾�••hh••¹h•¹•hhhhhhhh•¹•h•hh•hhhh•h•hh¾�hhhhh•¹hhhhhh•¹•¹•¹�•hh•¹�„¾�hhhhhhhhh•hhh•¹Á„hhhhh•hhhhh•¹hhhh•¹•Á�hhhhh•hhhhhhhhhhhhhhh¹•¹hh•hhÁ�hhhhh•¹•¹h•h•¹hhÁÁhÁÁÁÁÁhhhÁhÁhhhÁhÁhÁhÁÁÁhhÁÁÁhÁhhhÁÁhhÁhÁhÁÁhhÁhÁÁhÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhÁhÁhÁhhhhhhhÁhÁÁhhÁhhÁhÁhhÁhÁhÁhÁhÁÁhÁhhhhÁhhÁhÁÁhhÁhÁÁÁhÁÁhÁÁhhhÁhÁhhhÁhÁhhÁhÁÁhhÁhÁhÁhÁhÁÁhhÁhÁhÁÁhhhÁhÁhÁhÁÁhÁhhÁhÁhÁhhhhÁhÁÁhÁhÁÁhhhhhhhÁhÁÁhhÁhhÁhÁÁhÁhÁhhhÁhÁÁhhhhhhÁhhhÁÁhÁhÁhÁÁhÁhÁhÁÁhhhhÁhÁhhÁhhÁhÁhÁÁhhÁhÁhhÁhhÁhhhÁhÁhÁhhhÁhhÁhÁhÁhÁhhhÁhÁhÁhhhhÁhÁhÁhÁÁhÁhhhhhhÁhhÁhhÁhhhÁhhhÁhhhhhÁhÁhhÁhhhhÁhhÁhÁhÁhÁhÁÁhhÁÁhÁÁhhhhÁhÁhhÁhÁhhhÁÁhhhÁÁhÁhhhhÁÁhhÁhÁhÁhhÁÁhhÁhhÁhÁhhhhhhÁhÁhhhhÁhhÁhÁhÁhÁhhhhhhhhhÁhhÁhhhÁhhhhÁhhhhhÁhÁhÁhhhhÁhhhÁÁhhÁÁhÁhÁhÁÁhÁhÁhÁhÁhÁhhÁhÁhhÁhÁÁhhÁÁhÁhhhhÁhÁhÁhÁhÁhhhÁhhÁhhÁhÁhhÁhÁhÁhÁhhÁhÁhÁhhhÁÁhÁhhÁhhhhhhÁhhÁÁhhÁhÁhhÁhhhhhÁhÁhhhhhhhhhhhÁhhÁhÁhÁhhÁhÁhÁhhhhÁÁhhhhhÁÁhhÁhÁhhhÁhhÁhhhÁhhhhÁhhÁhhÁhhÁhhhhÁhhhhhhhhhhhhhhÁhÁhhÁhÁhhÁhhÁhhhhhÁhÁhhhhhÁhhhÁhhhhÁhÁhhhhhhhhhhhÁhhÁhÁhÁhhhhÁhÁhhÁhhÁhÁhhhhÁhÁhhÁhhhÁhÁhhÁhhÁhhhhÁhÁhÁhÁhhhhhhÁhhhÁhÁhhÁhhhhhhÁhhÁhhhÁhhhhhhhhhhhÁhhhhhhhhhÁhÁhhhhÁhhÁhhhhÁhhÁhhÁhhhhÁhhhÁhhÁhÁhhhhhhhÁhhhhhhhhhÁhhhÁhÁhhhhhhhhhhhhhhhhÁhhhhhhÁhÁhÁhhÁhhhhhhÁhhhhÁhÁÁhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhÁhhhhhhÁhÁhhhÁÁhhhhhhÁhhhhÁhhhÁhhhhhhÁhÁhÁhhhhÁhhhhhÁhhÁhhhhÁhhhhÁhhhhhÁhhhhhhhhhÁhhhhÁhÁhhhhhÁhhhhhhhhÁhhhÁhÁhhhÁhhhÁhÁhhhhhhhhhhhÁhhhÁhhhÁhhÁhhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhhhÁhÁhhhhhhhhhhhÁhhhÁhhhÁhhÁhhhhÁhhhhhhhhhÁÁhhhÁhhhÁhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhh•�¹••hhh•¹•hÁhhhhhÁÁÄÄÍÑÑðÑðððððÑðÑÑÑÑÑðÑððÑÑÑððÑðÑðððððÑðòïðóóóóóóðóóóóüóóóóðóðïðððÑðÑÑÍÍÍÍÍÄÄÄÄÁÁÄÁÁhhhcccccXXbXXTTT"TTTTTTThhhhhhhhhhhhhhhhhh•hhhhhhhhhÁ¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹•h¹••¹•�¹•hhhhh�Á•hhhhhhhh¹•hhh¹•hh•�¹•hhh•h¹•h•¹•hh¹•hh¹•h•¹•hhh¹••hhhh¹••�¹•hhhhhh¹•h•�Áhhhhhhhhhhhhhh•hhhhhhhh¹•hh•hh•�¾„hhhh•�¹•h„¹••hhh¹•¹•¹••hhhhhhhhhh•hhh•hhhh¹•hhh•�¹•hhh•h�hhhÁhhhÁhhhhhhhhhhhh•¹•hhÁhhhhhhhhh„¹•¹•h¹•hhh�¹hh•hhhhhh�¹•¹•h¹•h•h¹•¹hh•¹•hhhhhhhhhh•hh�h�¾„¹�¹•h•¹•Á¹•h•hhhh•h¹•hhh�¾¹•hhhh¹•hhhhhhhhhhhhh¹f•h¹•h•¹•hhhhhhhhhhhhhhhhhh¹•h¹Áhhh••hh�hh¹•hhhÁhÁhÁhÁhÁhhhÁhÁhÁhhhÁhÁÁhhhÁhÁhhÁhÁÁÁhÁhÁÁhÁhhÁÁhÁhhÁhÁhÁhÁhÁÁÁhÁhhÁhÁhhÁÁhÁÁÁhÁÁhÁhÁhhhÁhhhhhÁhÁÁhÁhÁhhÁhÁhÁÁhÁhÁÁhhÁhÁÁhhÁÁhÁhÁhÁhÁhÁhhhÁhÁhÁhÁhhhÁÁhÁhhhÁhÁhÁhÁhÁÁhhÁÁÁhÁhhhÁhhhhÁÁhÁhÁhÁhÁÁhÁhÁhÁÁhÁhÁÁhÁÁhÁÁhÁhÁhhhÁhhÁhhÁhÁhhhhÁhÁhÁhÁhÁhÁhÁÁhhÁhÁÁhhÁhÁhÁhÁhÁÁhÁhhÁhhÁhÁhÁhhÁhÁhÁhhhÁhÁÁhÁhÁhÁhhÁÁhhÁhhhÁhhÁhÁhÁhÁhÁhÁhÁhÁhhÁhÁhhÁÁhÁhÁhhÁhhhÁhhhÁhhhhhhÁhÁhhhÁhÁhhÁhhÁhhÁhÁhhhÁhÁhhhÁhÁhhÁhÁhhhhhhhhhhÁhÁhhhhÁhÁhhhÁhhÁhhhÁÁhhhÁhÁhÁhhhÁhhhhÁhÁhhhÁhÁhÁhÁhhÁhÁhhÁÁhÁhÁhhÁhhhhhhhÁhhhhhhÁhÁhhÁhhhÁhÁhÁhhÁhÁhhhÁhÁÁhhÁhhÁhÁÁhÁhhÁhhhhhhhÁhÁhhhhÁhÁhhhÁhhÁhhÁhÁhhÁhÁhhÁhhhÁhÁhÁhÁhÁhhhÁhÁÁhÁhhhÁhhÁhÁhÁhÁhÁhhÁhhhhhÁhhhhhÁÁÁhhhÁhhhÁhÁhhÁÁhÁhÁÁhÁhÁÁhÁÁhhÁhhÁhÁhhÁÁhhhhhhÁhÁhhhhÁhÁhhhÁÁhÁhhhhÁÁhÁhÁhhÁhhhÁhhhÁhÁhhhÁhÁhhÁhÁhÁhÁhhÁhÁhhÁhhÁhhhhhhhÁhhhhhhÁhÁhhhÁhhhhÁhhhÁhhhÁhhhÁÁhÁhhÁhhhhhÁhÁhhhhhhÁhhhhhÁhhhhhhÁhhhhhhÁhhhÁhÁhhhÁhhhhhhÁhhhÁhhÁhhhhhhÁhhhÁhhÁhhÁÁhÁhÁhhÁhhhhhhhÁÁhhÁhhÁhÁhhhÁhhÁhÁÁhÁhÁhhÁhhhhhhÁhhhhhhhÁhhÁhhhhhhÁhhÁhhÁhÁhÁhhÁhhhÁhhhhhÁhhÁhhhÁhhÁhhhhhhhÁhhhÁhhhhhhhÁhhhhÁhÁhÁhhhhhÁÁhhhhhhhÁhhhhhhÁhhhhhÁhhÁhhÁÁhÁÁhÁhhhhhÁhÁhhÁÁhhÁhhhhhhhhÁhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhÁhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhÁÁhhhhhhÁhhhhhÁÁhhhhhÁhhhÁhhhÁhhhhÁhhhÁhhhhhhÁÁhhhhhhhhhhhhhÁhÁÁhhhhhhhhhÁÁhhhhhhhhhÁhhhhhÁhhÁhÁhhhhhhÁhhhhhhhhhhhhhhhÁhhhhÁhÁhhÁhhhhhhhÁhhhhÁÁhhhhhhhhhhÁhhhÁhhhhhÁhhÁhhhhhhÁhÁhhhhhhhhhhhhhhÁhÁhhhhhhhhÁhÁhhhhhhhhÁ•¹hh•¹hh•¹�•Áhh•hÁhhÄÄÄÄÍÍÍÑÑððÑðÑððÑðÑÑððÑðÑðÑÑÑðÑóðÑðððóðóòóðóðóðóðóüüóóüüóóóðóðóðððÑÍÍÍÍÍÍÍÄÍÄÄÄÄÁÁhhhhhchcccccXXXXXXTTTTTTTThÁhhhhhhÁhhhhhÁh•¹•hhhhhh•Á�hhhhhhÁhhhhhÁhhhhhhhÁhhhhhhÁhh•¹�•hh•¹�•¹•hh•hh•¹•¹hh•hh•hhhhhhhh•h•¹hhhhh•¹¾„h•¹�•hhh•hhhh•¹�hhhhh•¹•hhhh•¹hhhhÁhhÁhhh•¹•¹•hhhhhh•hh•¹h•¹•hhhhh•Á�•h•¹h•¹•¹„¾hh•¹hh•¹Á�•¹hhhhhhhh•¹•hh•hh•h•¹•¹h•¹h•hhhhhh•¹hhhh••¹hhhhhhhhhhhhhhhhhhhhh•¹�•hhhhhhhhhhhhhhhhhhhhhh•¹•h•¹h•hh•hhhhhhhhh•¹hhh�h•¹�h•hhhhh•hh•¹•¹•¹•¹„¾„•h•¹�¹�hh•¹hhh•¹¾„•hh•¹„hh•hhÁ�hh•hh•hh•hh•hhh•¹��h•¹�h•¹•hhhhhhhhhhhhhhhh•Á��hhhh¹h•¹•Á�hhhhhhÁhÁhhÁÁhÁhÁhÁÁhÁÁhÁÁÁhÁhÁhhÁhÁÁhÁhhÁhÁÁhhÁhhÁhhÁhhÁÁÁhÁhÁhÁhÁhhhÁhÁÁhÁhhÁÁÁhhÁhÁhÁhÁÁhÁhhÁÁhÁhÁhhÁhÁhhÁÁÁhhÁhhhÁhhÁhÁhÁhhÁhhhhÁhÁhÁhhÁÁhÁhhhÁhhÁÁhÁhÁÁÁhÁhhÁhÁhÁhÁhÁhÁhhhÁhhÁhhÁÁhÁhÁhÁhÁhhÁÁhhhhÁhÁhÁhÁhÁÁhhÁhhÁÁhÁÁhÁhhÁhhÁhÁhÁhÁÁhhÁÁÁhhÁhhhÁhhÁhÁhÁhhÁhhhhÁhhhhhhÁhÁhÁhhÁhhÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁhÁhhhÁhhÁhhÁhÁhÁhÁhÁhÁhhhÁÁhÁhhÁhhÁhhhhÁhÁhÁhÁhÁhhÁÁhÁhÁhhÁÁhhhÁÁÁhhhhÁhhÁhÁhÁhÁhhÁhhhhÁhÁhhhhÁhÁhÁhhÁhhÁhÁhÁhÁÁhÁhhÁhhÁhÁhhÁhhÁhhÁhhÁhhhÁhhÁhhÁhÁhhhÁhhhhÁhÁhhÁhhÁhhhÁhhÁhhÁhÁhhhÁhhÁhÁhhhÁhÁhÁhÁhhhÁhhhÁhÁhhhhhhÁhhhhhÁhhhhhhÁhhÁhhÁhhhÁhhÁhÁhhhÁhÁhhÁhÁhhÁhhÁhhÁhhÁhhhÁhhÁhhhhÁhhhÁhhhhÁhÁhhhhhÁhhhhhhÁhhÁhhÁhhÁhhhÁhhhhÁhÁhÁhÁhÁhhhhhÁhhhhÁhhhÁhhhhÁÁhhÁhhhÁhhÁhhÁhhhÁhhÁhÁhhÁhÁhhhÁhÁhhÁhhÁhhÁhÁhÁhhÁhhÁhhÁhÁhhhÁhÁhhÁhhÁhhhhÁhhÁhhhhÁhÁhÁhhhÁhhhÁhhhhÁhhÁÁhÁhÁhhhhhÁhÁhhÁhhhÁhhhhÁÁhhÁhhÁÁhhÁhhÁhhhÁhhÁhÁhÁhÁÁhhÁÁhÁhhÁhhÁhhÁhhhhhhÁhhÁhhhhhhÁhhÁhhhhhhÁhhhhhÁhhhhhhÁhhÁhhhhhÁhhÁhhhhÁhhhhÁhhhhhhhhhhhhÁÁhÁhÁhÁhhÁhhÁhhhÁhhhhhhhÁhhÁhhhÁhÁhhhhhhhÁhhÁhhhhÁhhÁhhhhhhÁhhÁhhhhhÁhhÁhhhhÁhhÁhhhhÁhÁhhhhhÁÁhhÁhhhhÁhhhÁhhhÁhhÁhhÁhhhhhhhÁhÁhhhhhhÁhhhhhhhhhhÁhhhhhhhÁhhhÁhhhhhÁhhÁhhhhÁhÁhÁÁhÁhhhhhhhÁhÁhhhÁhhhhÁÁhhÁhhhhÁhÁhhhÁhÁhhhhhhhhhhhÁhhÁhÁhhhÁhhhhhhhhÁhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhÁhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhhÁhhhhhhhhhhhhÁhÁhhhÁhhhÁhÁhhhÁhhÁhÁhhÁhhhhhhhhÁhhhÁhhÁhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhh•�ÁÁhh¹•¹•h¹•hÁÄÄÄÍÄÑÑÑÑððÑððððÑÑðÍððÑðÍÑÑÑððððÑðððððóððóðóðóóóóóóóóóüüóóóóóðñðÑðÑÑÍÑÍÍÍÄÍÄÄÄÄÄÁÁÁhÁhhhchcccXXXXTXTTTT"ThhhhhhhÁhhhhÁhhhhh�¹•hhÁhh¹•¹•h•hhhhhhhhhhhhÁhhhhhhhhhhhhhhhhh¹•h•�¹•�¹•h¹•hhh�h•h¹•h¹•hhÁhhhh¹•hhhhh•h•h�¹•hhh¹•hh¹•hhhhh•¹•h•hh�¹•hhhhhhhhhhhhhhhhhhh�¹•h•h•h¹•h•hhh�¹••h•¹•¹•¹•hhhhhhhhhhhhhhh•�Á¹•hhh•hhhhhh�¹•h¹•h¹•hh�•h•h�¹•hh•hh•hhhhh¹•hhhhhhhÁhhhhÁhhÁhhhÁhhhhh¹•hhhh•hh•hhhhhhhhhhhh•h�¹•h„¾¹•h¹hhh•hh•hh•�¾•„¹•hhh¹•¹•hhh¹•hhh�•h••�¹�¹•¹•�•„¹•hhhhhhhh�¹•¹•h�¾hh¹•hh¹•h¹•h¹•h¹•h¹•hh••¹•¹••¹•hhh¹•h•hhhhh•hhhhhhh¹•¹•hhhhhhhh¹f•hhhÁhÁhÁhÁhÁhÁÁhÁhÁhÁÁhÁhÁÁÁhÁhÁhÁhÁÁÁÁhÁÁhhÁÁhÁhhhÁÁÁhÁhÁÁÁÁÁhÁhhÁhÁÁhÁÁÁÁÁhÁhhÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁhhÁÁhhhÁhhÁÁhÁhhÁhÁhÁhÁhÁhÁhÁhhhhÁhhhhÁÁhhÁÁhÁÁhÁhÁhÁhhÁhhÁhÁÁÁhÁhÁhÁhÁhÁhhhÁ„ÁhÁhÁÁhÁÁhÁhhÁhÁhhÁÁhÁÁhÁhhÁhÁhÁhÁhÁÁhhÁÁÁhÁÁÁhhÁhhhhÁÁhhhhÁhÁhÁhhÁhhÁhhÁhÁhÁhÁhÁhÁÁhhhhÁÁhhÁÁhÁÁhÁÁhÁÁhhÁhhÁhÁÁhÁÁhÁhhhÁhÁhhÁhÁÁhhÁhÁÁhÁhÁhhÁhÁhhÁÁÁhÁhÁhhÁÁhhÁhÁhÁÁhÁhÁhÁhÁÁhhÁhhhÁÁhhhhhÁhÁhÁhhÁhhÁhhÁhhÁhÁhhÁhhÁhhhhÁÁhÁhÁhÁÁhÁhÁÁhÁhÁhhÁhÁÁhÁÁhÁhhhÁhhhhhÁÁhÁhhÁhÁhÁhÁhhÁhÁhhÁÁÁhÁhÁhhÁhhÁhÁhÁÁhÁhÁÁhÁhÁÁhhÁhhhÁÁhhÁhhhhÁhÁhhÁhÁhÁhhhhÁhÁhhhhhÁhhhÁhÁhhÁhÁhÁhhhhÁhÁhhhhÁhÁÁhÁhhÁhhÁhhÁhhhÁÁhÁhhÁhÁhÁhÁhhhhÁhhhÁhÁhhÁhhhÁhhhhÁhÁÁhhhÁhhÁhÁhhÁhhhhÁhhhhhhÁhhhhÁhhhhhÁhhhhhÁhhhhhÁhhhhhÁhhÁhÁhÁhhÁhÁhhhhhhÁhÁÁhÁhhÁhhÁhhhhhhÁhÁhhhÁhÁhÁhhhhhhÁhhÁhÁhÁÁÁhhhÁhÁhhÁhÁhhÁhÁhhÁÁhhÁÁhhhhÁhhhhhhÁÁhÁhhÁhhhhÁhhhhhÁhhhhhÁhhhhÁhhÁhÁÁhÁhhhhÁhhÁhhhÁhhÁhÁhhÁÁhÁhhÁhhhÁhÁhÁhÁhÁhÁhÁhhhhÁhhÁhÁhÁhÁhhÁÁhÁhÁhÁhÁhÁhÁhhÁÁhhÁhhhÁhÁhhhhhhÁhhÁhhÁhhhhÁhhhhÁhhhhhhÁhÁhhÁhhhhhÁhÁhÁhhÁhhÁhhhÁhÁÁhÁÁÁhhhÁhhhhhhÁhÁhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhÁhÁhÁÁhÁhhhhhÁhhhhhhhÁhhhhÁhhhhhhhhhÁhhhhhÁhhhhhÁhhÁhÁhhÁhÁhÁhhhhhÁhhhÁhÁhhÁhhhÁÁhhhhhhÁhhhhÁhhÁhhhhhhhhhhhÁhÁhhÁhhÁhhhÁhÁhÁhhhhÁhhhÁhhhhÁhhhhhhhhhhhÁÁhhhÁhhÁhhhhÁhhhhhhhÁÁhhhÁhÁhhhÁhÁhÁhhhÁhhhhhhhhhÁÁhhÁhhhÁhhhhhhhÁhhhhÁhhhÁhhhhhhÁhhhhÁhhhhhhhhhhhhhÁhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhÁhhhhÁhÁÁhhhhhhhhÁhÁhÁhhhÁhhhhÁhhÁhhhhhhhhÁhÁhhhhh•¹•¹�Á••�hhhhhhhÁÁÄÄÍÍÑÍððóðóððÑðÑððÑÑÑÑÑÑÑðÑðÑðÑÑððððððððððóóððóúóóóóúüóóóóóóðïÑÑÑÑÑÑÑÑÍÍÍÄÍÄÄÄÄÁÁÁÁhhÁhhccXcXXXXTTTTTTTTTTThhhhÁhhhhhhhhhhh•¹h•hhÁhh•�hh•¹hhÁhhhhÁhhhhhhhÁhhhhhÁhÁhhhhhhhh•¹hh•¹hÁhh•hh•¹•¹Á•Áhhhhhhhhhhh•hÁh•¹•¹�¹•hh•hhhhhhh••hh•¹Á�„¾¹h•¹�•¹••hhhhhhhhhhhhhÁhhhhhh¹•¹hh�•¹hh•¹••¹hhhhhhhhhhhhhhhÁhhhÁhh•¹•¹�•hh•¹h•hh•¹•hhhhhhh•h•¹•¹•¹hh•h•¹h•¹h•hhÁ�•hhhhÁhhhhhhhhhhhhhhhhhhhhhhhhh•¹••¹hhhhhhhhhh•¹•¹hhh•¹�hhhhhh•¹••¹h•¹•¹•¹�•hh••�hhh•Á�hhh•¹•¹•¹hh•Á�h•¹•¹�•hhhh•hh•¹„¾�h•¹•hhh•¹�•hhhhhhhhhhhhhh•¹hhhh•¹�hhhhhh•¹hhhh•¹hhhh•hhhhh•¹••hh•hhh•¹hhhhÁÁhÁÁÁhhÁÁÁÁÁhÁhÁhÁÁhÁÁhÁÁÁÁÁÁhÁhÁÁhÁhÁhÁÁhÁhhÁÁÁhÁhhhÁhÁÁhÁhhÁÁÁhhhÁÁhÁhÁhhÁhÁhÁÁhÁhÁÁhÁhhhÁÁhÁhÁÁhhÁÁhÁhhÁÁhÁÁhÁÁhÁÁhÁhÁhÁhÁhhÁÁÁhÁÁhÁÁÁhÁhÁhÁÁhÁhhÁÁÁhÁÁÁhÁhÁhÁhÁhÁhÁhÁhÁhhÁÁÁÁhhhhÁhÁÁhÁhhÁhÁhhÁhÁÁhÁÁhhÁhÁhÁhhÁhÁhÁhhhhÁhhhhÁÁhhÁÁhhhhÁÁhÁhhÁÁhÁhÁhhÁhhÁhhÁhÁhÁhÁhhÁÁhÁhÁhÁÁhÁhhÁÁhÁhÁhÁhhÁhhÁhhÁhhÁÁhhÁhÁhÁÁhhhhÁhhÁhÁhhÁÁhhhhÁhÁhÁÁhhÁhÁhÁhhÁhÁhÁhÁhhÁÁhhhÁhhhÁÁhhhhÁÁhÁhhÁÁhÁhÁhhÁhhÁhÁhÁÁhÁhÁhhÁÁhÁÁhhÁÁhÁhÁhÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhhÁhÁÁhÁhhhhhÁhÁhÁhhÁhÁhhhÁhÁhÁÁhhÁhÁhÁhhÁhhÁhÁhhhÁÁhhhÁhÁhhÁhhhhÁÁhÁhÁhÁhÁhhÁhÁhhÁhhÁhÁhÁhÁhhÁhÁhÁhhÁÁhÁhÁhÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhhhhÁhÁhhhhhhÁhÁhÁhhÁhÁhhhÁhÁhÁÁhhÁhhÁhÁhhhhÁhÁhhhÁÁhhhÁhhhhÁhhhhhÁhhÁhÁhhÁhhÁhhhhÁhhhÁhhhÁhhhÁhÁhÁhhÁhhhÁhhÁhÁhÁhÁhhÁhhÁhhÁhhÁhhhhhhÁÁhhÁhhhhÁhhhÁhhÁhhhhÁhhÁhÁhhhÁhhhÁhhÁhÁhhhhhÁhhhhÁhhhhÁhhhhÁhhhÁhhÁhhÁhhÁhhhÁhhhÁÁhhÁhhhÁhhÁhhhÁÁhhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhhÁhhhÁhhÁÁhhhhhhhhÁhhhhÁÁhhhhÁhÁÁhÁhhhhÁhhhhÁhÁhhhhhhÁhhhhÁhÁhÁhhhhhÁhÁhÁhhÁhhÁhhÁhhhÁhhhÁhÁhÁhhhÁhÁhÁhÁÁhÁhÁhhÁhÁhÁhhÁhhÁhhhhhhhÁÁhhÁhÁÁÁhÁhhhÁhhÁhÁhhÁÁhhÁhÁhhÁhÁhhhÁhhÁhhÁhhÁhhhhhÁhhhhhhÁhhÁhÁhhhÁhhhhÁhhhÁÁhhÁhhÁÁhhÁhÁhhhhhÁhhÁhhhhÁhhÁhÁhÁhÁhhÁhhhÁhhhhÁhhÁhhhhhhÁhhhhhÁhhhÁhÁhhhÁhÁhhhhhhhÁhhhhÁhhÁhhhhÁhhhÁhhÁhÁhÁhhhhÁhhÁhhÁhhhhhhhhhhhhhhÁÁhhhhÁhhhÁhhÁhhhÁhÁhÁhhhhhÁhhÁhhhÁhhÁhhhhhhhÁhhhhhhÁhÁhhhhhÁhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhÁÁhhÁhÁhÁhhhhhhhÁhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhhhhhÁhhhhhÁhhhÁhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhh¹•¹•hhhhhÁÁÁÍÄÍÑÑÑÑðððÑÑðÑÑðÑÑðÑÑÑðÑÑÑÑÑðÑðððððððóððóóóóðúóóóóüóóüüóððóóðððÑðÑÑÍÑÑÄÄÍÄÄÄÄÁÁÄÁÁÁhhhccccbbXXXXXXTTTTThhhhhhhhhhhhhÁhÁhh••¹•h¾„¹•¹•¹•hhhhhhÁhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhh•�Á•Áh¹•hh�••�¹•hhhhhhÁhh••¹•hh•�Á••�¹•h¹•hh•hhh¹•¹•hh�¹•„�¾•„¹•hh¹•ÁhÁhhÁhhhhhhhhhhhhh�•�Á•¹•hhh•�¹•hhhhhhhhhÁhhÁhhhhhÁhhhhhhhhh¹•h•�¹•¹••�¹•h•hh•h¹•hhhhhhhh•¹•hhh¾„¹•h¹•¹•hhhhhhhhÁhhhhhhÁhhhhhÁhhhhhÁhh�¹•h�¾Áhhhhh•Áhh�••hh••¹•h•hhhh�¹•hhhhhhhhh¹•h¹•¹•hh¹•¹••¹•hhhhhhh¹•¹•hhhhh¹•hh�¹•hhhh•¹•h�¹•hh•hh¹•hh•hh•hh•hh•hhhhh•hh•¹•hh••hhhhh•¹•hhhhh¹•hhhh•hh¹•h¹•hh••hhhÁhÁÁhÁhÁhÁÁÁhÁhÁhÁhÁÁÁÁÁÁÁhÁhÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁÁhÁhhÁÁhhÁhÁÁhÁhhÁÁÁÁhhÁhÁhhÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁÁhÁhÁÁhhhÁhÁhÁÁhÁÁÁhÁhÁÁÁhÁÁhhÁhÁÁhÁÁhÁhÁhÁÁhÁÁÁÁhÁhÁhÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁhÁhhÁhÁhhÁhÁÁÁhhÁÁÁÁhÁhÁÁhhhÁhÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁhhÁhÁhhhÁÁÁhÁÁhÁhÁÁhhÁhÁhÁhÁÁÁhÁhÁhÁhÁÁhÁÁhÁhÁhÁhÁÁÁhÁÁÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhÁhÁhÁhÁhhhhÁhhÁÁhÁhhhhÁÁhÁhhhhhhhÁhÁÁhÁhÁÁÁhÁÁhhÁÁhÁhhÁÁhhhÁhhÁhÁÁhÁhhÁhÁhÁhÁhÁhhhÁÁhhÁhÁhÁhÁhÁhÁÁhÁhhÁhhÁhÁhÁhÁhÁhÁhÁhhÁhhÁhhÁhÁÁhÁÁhÁhhhhÁhhÁÁhÁhÁhhÁhÁÁhhÁhhhhÁhÁÁhhÁhÁÁhÁÁhhÁÁhÁhhÁhhhhÁhhhÁhÁhÁhÁhÁhÁhÁhÁhhhÁhÁhhÁhÁhÁhhÁhÁÁÁhÁhÁhhÁÁhÁhÁhÁhÁhÁhÁhhÁhhÁhhÁhÁÁhÁÁhÁhhhhÁhhhÁhÁhhhÁhÁhÁhÁhÁhhhÁhÁÁhÁhÁhÁhÁÁhhÁÁhÁhhÁhhhhÁhhhhÁÁhÁhhÁhÁÁhhÁhhhhÁhÁhÁÁhÁhÁhhÁhÁÁÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁhÁhÁhhhhÁhhÁÁhÁhhhhhÁhhhhÁhÁhhhhhÁhÁhhhhhhhhÁhÁhÁhhÁhÁhÁhhÁhÁhhhÁhhhhhhhÁhÁhÁhhhhhhÁhhÁhhhhÁhÁhÁhhhÁhhhhÁhÁÁhhhhhhÁhÁhÁhÁhÁhÁhhÁhhÁhhhhhÁhhÁhhÁhhÁhhÁhhhÁhhÁhhhÁhÁhÁhhhhhhhÁhÁhhhÁhhÁhhÁhhhÁhÁhhÁhhhhhhhÁÁÁhÁhhhÁhÁhhhÁhhhÁhÁhhÁhhÁhhhÁhhÁhÁhhÁhhhhhÁhÁhÁhhÁhÁÁÁhhÁhhÁhÁhhhÁhhÁhhhhhhhhhÁhhÁhhhÁhÁhÁhhÁhhhhÁhhÁhhÁhhÁhhÁhhÁhÁhhhÁhhhhhhhÁhÁhhÁhÁhhÁhhhÁhhhhhÁhhÁhhÁhÁhÁhhÁhÁhhhhhhhhÁhÁhÁhhÁhÁhÁhhÁhhÁÁÁhhÁhÁhÁhhÁhhhhhhhhÁhhÁhhhÁhÁhhhhhhhÁhhÁhhhhhÁÁhÁhhhhÁhhhhÁhhhhhhhhÁhÁhhhhhÁhhhÁhhhhhhhhÁÁhÁhÁhhhhÁhÁhhhhhhÁhhÁhÁhhhhÁhhÁhhÁhhÁhÁhhhÁhÁhhhhhÁÁhhhÁÁhhhhhÁhhÁhÁhhhhÁhÁhÁÁhhhhÁhhhÁhÁhhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhÁhhhhhhhhhhhhÁhÁÁhÁhÁhhÁhhhÁhhhhhÁhhhÁhhhhhhÁhhhhhhhÁÁhÁhhhhÁhhÁhÁhhhhhhÁhhÁhhhhhhh•ÁhÁhhhÁÁÄÄÍÍÍÑÑÑðÑððÑÑÑÑÑÑÑÑÑÑðÑÑÑÑðÑÑððÑððððïóóðóóóóóóóóóóóóóüóóóððóððððÑÑÑÑÍÍÍÍÄÄÄÄÄÁÁÁÁÁhhhhhhcccXccXXXTTTT:ThhhhÁhhhhÁÁhÁhhh•¹hhhhhhhÁ�Á�•hhhhÁhhhhhhÁhhÁhhhhÁhhhhhhhhhhhhÁhhh•¹•¹hhhhhh•¹•¹hhhhhhÁhhhh•¹Áhhh•¹•¹•¹hhhÁ„hh•¹Áh„¾�h•h•¹„¾Á¹•¹hhhhhhhhhhhhÁhhÁhhÁhhhhhhù•¹•¹�•hÁ•¹hhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhhh•¹hh••¹h•¹„¾hhhhhh•h•¹�•hhhhhhÁhhhhhÁhÁhhhhhhhhÁhhhhhhhhhhhhh•hÁh•¹••¹•¹�hh•hÁ¹�h•¹•¹h•¹hhh•¹hhh•¹•hh•hhhh•hhhhhhhh•h„¾�h•¹�•hhhhh•h•�hhhhhhhhh•¹•h•¹•h•¹�h•¹•hh•¹¾„Áhh•¹h•¹h•¹h•¹•hhh•¹h•¹�••¹•¹hhhh•¹�•hhhhhhhhh••¹hhhhhhhh•¹hhÁhhhÁÁÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁhÁhÁÁhÁhÁÁÁÁhÁÁhÁÁÁhhÁÁÁÁÁÁhhhÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁhÁhÁÁÁhhÁÁhÁÁÁhÁÁÁÁÁÁÁhÁhhÁÁÁÁÁhÁÁÁhÁhÁÁhhÁÁhÁhÁÁÁÁÁÁhÁÁhÁhÁÁhÁhÁhÁhÁÁÁhhÁhÁhÁhÁÁhÁhhÁÁhhÁÁhÁÁÁhhÁÁÁÁÁhÁhhÁÁÁhÁhÁhÁhÁhÁhÁÁÁÁhÁhÁhÁhÁÁÁhhÁÁhÁÁÁhÁÁhÁÁÁÁhÁhhÁhÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁÁÁÁÁhÁÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁhhÁhÁÁhÁhÁhÁhÁhÁhhÁÁhÁÁÁhhÁhÁÁÁhÁhhÁÁÁhÁhÁhÁhÁhhÁÁÁÁÁhÁÁÁhhÁhÁhÁhÁÁhÁhÁhÁÁÁhÁÁÁhÁhhÁÁÁÁhÁhÁÁhÁhÁÁhhÁÁhÁÁÁÁÁÁÁÁhÁÁhhhÁhÁhÁhÁhÁhÁhhhhÁhÁhÁhÁhÁhhÁÁhhÁhÁhÁÁhhÁhÁÁhÁhhhÁÁÁhÁhÁhÁhÁhhÁhÁÁhhÁhhÁhhÁÁhÁhÁÁÁhÁÁhhÁÁhÁÁhhhhhÁhÁhÁhÁhÁhhÁÁhhhÁhÁhÁhÁÁÁhÁhÁÁhhÁhÁhÁhÁhhÁÁhhhhhhÁhÁhÁÁhhhhÁÁhhÁhÁÁÁÁhhÁhÁÁÁhÁhhÁÁÁhÁhÁhÁhÁhhÁÁÁÁhhhÁhhhhÁÁhÁhÁhÁÁÁÁhhÁÁhÁÁhhÁhhhhÁhÁhÁÁhhÁhÁhhhhÁhÁhÁÁÁhÁÁhÁhhhÁhÁhÁhhÁhÁhÁhhhhhÁhÁhÁÁhhhhÁÁhhhÁhÁÁÁhhÁÁhÁÁhÁhhÁhÁhÁhÁhÁhÁhhÁÁÁhÁhhÁhÁhhÁhÁhÁhÁhÁhÁhhÁhÁÁÁÁhhhhhhÁÁhÁhÁhÁhÁÁhÁhhÁhÁhÁÁÁÁhÁhÁhhhÁhÁhÁhhhhhÁhhhhhhÁhhhÁhhhhhhÁhhÁhhÁÁÁhhhÁhÁÁhÁhhÁhÁhÁhhÁhhÁhhhÁhÁhhhÁhhhhÁhÁhhÁhÁhÁhÁhÁhÁhÁhÁhhhhhÁhÁhhÁhhhÁhÁhhhÁhhÁhÁÁhÁhÁhÁhhhÁhhÁhhhhhÁhhhhhÁÁhhÁhÁhhhhhÁhhhÁhÁhÁhhhÁhÁhhÁhhÁhÁhÁhhÁhhÁhhhÁhÁhhhÁhhhÁhÁhÁhÁhÁhhÁhhhÁhÁhhÁhhhhhÁhÁhhÁhÁÁhÁhÁhhÁhhÁhÁhÁhÁhhÁhhhhhhÁhhÁhÁÁhÁhhÁhÁhhhÁhÁhhhhÁhÁhÁhÁhÁhhhÁÁhÁhÁhhÁhÁhhÁhÁhhÁhhhÁhÁhhÁÁhhhhhÁhhhÁhÁhhÁhhÁhÁhÁhhhhhhhÁhÁhhÁhÁhÁhÁÁhÁhÁhÁhÁhÁhÁhÁÁhhhÁhhÁhhhÁhÁhhhhhhÁhhhÁÁhhÁhhÁhhhhhÁhÁÁhhÁhÁÁhÁhhÁÁhhhÁhhÁhhÁhhÁhÁhhhhÁhhhhÁhhhhÁhhÁhÁhhÁhhÁhÁhhhÁhÁhÁhhÁhhhhÁÁhhhÁhhÁhÁhÁhÁhÁÁhhhÁhhhhhhhÁhhhhhhhÁhhhÁhhhhhhÁhÁÁhhÁhÁÁhhÁhÁhhÁhhhÁhhÁhhhÁhhhhhÁhhÁhÁÁhhh•¹ÁhhÁhÁÁÄÄÄÑÑÑðÑððððÑððððððÑðÑðÍÑðÍðððÑÑðððððÑóððððóððóüóðóüüóóóóóóóóðïÑÑÑÑÑÑÍÍÄÍÍÍÄÄÄÄÁÁÁhhhhhcccdcXXXXTTTVTTTTTTTTThÁhhhhhÁhhhhhhhhhhhhhÁhhhhÁ•¹•¹•hhhhhhhhhÁhhhÁhhhhhhhÁhhhhhÁhhhhhhhhhhhhh•hh•hhhhhhhhhhhhhhÁhhhhÁhhhhhhhhÁhh¾hhh�ÁÁ•¹•h¹•hhhh�•�¾ÁhÁhhhhhÁhÁhhhhhhhhhhÁhhhhhhhhhh¹•hhhhhhÁhÁhhÁhhhhhhhÁhhhhhÁhhÁhhhhhhhhhhh•hhhhh¹•�¾hhh„¹•Á•Áh•¹•hh¹•hhhhhhhhhhhhhÁhhÁhhhhhhÁhhhÁhÁhhhhhÁÁ¹•¹•�¹•hhhhÁ•¹•h•¹•hhhhhhhhhh•�ÁÁh•�¹•h¹•hhh¹•hhh•hhh¹•¹•¹•hhh¹•hhhhh¹•¹•hhhh•hÁh•�¹••�¹•h•¹•h�¹•hhh�¹•hÁ•hhhhhhhhh�¹•hhhhhÁhh¹•h�¾„¾h•hhh¹•hhh•hhhh¹•hhhh•hh•hhhhhhhÁhÁÁhÁÁÁÁhhÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁhÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁÁÁhÁhÁÁhÁhÁhÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁhÁÁÁÁÁÁhhÁÁÁhÁhÁÁhÁhÁhÁÁÁÁhhÁÁÁhhÁ¾hÁÁÁhÁhhhÁÁÁÁhÁÁhÁÁhÁhÁÁÁhhÁÁÁÁÁÁhÁhÁÁhhÁhÁhÁÁhÁÁÁÁÁhÁhÁhÁhÁÁÁÁhÁÁhhÁÁÁÁhÁÁÁhhÁÁhhÁÁÁhÁhÁÁhÁÁÁhÁhÁhÁhÁhÁÁhÁhÁÁhÁhÁhÁÁÁÁhhÁÁÁhhÁhhÁÁÁhÁhÁhÁÁhÁhÁÁhÁhÁhÁhÁÁhhÁÁÁÁhÁhÁhÁhÁhÁhÁhÁÁhÁÁhÁÁhÁhhhÁhÁhÁÁhÁhÁhÁhÁÁhÁÁÁhhÁÁhhÁÁÁhÁhÁÁhÁÁÁhÁhÁhÁhÁhÁÁÁhÁhÁÁhÁhhÁÁhÁhhÁÁÁhhÁhhÁÁÁhÁhhÁhÁÁÁhÁÁÁhÁÁhÁhÁÁhÁhÁÁhÁÁhÁhÁhÁhÁhÁhÁÁhÁhÁhÁhÁhhÁhhÁÁhÁÁhÁhhÁÁhÁhÁÁhhÁhÁhhÁhÁhÁhhÁÁhÁhÁhÁhÁhhhÁÁhÁhhÁhÁhhhhÁÁhÁhÁhÁÁhhhhhÁhÁhÁhÁhhÁÁhhÁÁhÁhÁhÁhÁÁhhÁhÁhÁhhhÁhÁhhÁhÁhhÁhÁhÁÁhÁhÁhÁhhÁhÁÁhÁhÁhhÁÁÁÁhÁÁhhhÁhÁhÁÁhhhÁÁhÁhÁhÁÁhÁhhhÁÁhÁhhÁÁhÁhhhhÁÁhÁhÁhÁhhhhhÁhÁÁhhhhÁÁhÁhÁÁhÁhÁhhÁhÁhhhÁÁhÁhhhÁhÁhhhhÁhÁhÁhÁhÁhÁhhÁhhhÁhÁÁhÁhÁhÁhÁÁÁhÁÁhhhÁhÁhÁÁhÁhÁÁhÁhÁhÁhÁÁhhhÁhhÁhhÁhÁhhhhhÁhÁhÁhÁhhhhhhhÁÁÁhhhhhÁhÁhÁhÁhÁhÁhÁhÁhhÁÁhÁhÁhhÁhÁhhÁhhÁhÁhÁhÁhhÁhhhhhhÁhhÁhhÁhhÁhÁhÁhÁhhhhÁhhhÁÁhhÁhÁhhÁhhhhÁhhhhÁhhhhhhÁhÁhhhhÁhÁhhÁÁhhhhhhhÁhÁhhhhhÁÁhhhÁhhÁhhhhÁhhhhhÁhÁhhhhÁhhhhÁhhÁhÁhÁhÁhÁhhhhhhhÁhÁhÁhhhhÁhÁhhÁhhhÁÁhhhÁhhhhhÁhhÁhÁhhÁhhhhÁhÁhhhhÁhhhhhhhÁhhhhÁÁhhhhhhÁhÁhhhhÁhÁhhÁhhhÁhhÁhÁhhhhhÁhÁhhhhhÁhhhhÁhÁÁhhÁÁhÁhhhhhhhhhÁhhÁhhÁhÁhÁhhÁhhhhÁhhhÁhhhhhÁhhÁhÁhÁhÁhhhÁhÁhhhhhÁhhhhhÁÁhhÁhÁhhhhhhhÁhÁhhhhhÁhÁhhÁhhÁÁhhÁhhhÁhhÁhÁhhhhhÁhhhhhÁhÁhhhÁhÁhhhhhhhhhhÁhÁÁhhhhÁhhhÁhhhÁÁhhhÁhhhhhÁhhÁhhhhÁÁhhhÁhhhhhÁhhhhhhhhÁhhhÁhhhÁhhhÁhhÁhhhÁhÁhhhÁhhhhh•¹�Á„¾�hÁÁÁÄÄÍÍÍÑÑðððððÑÑÑðððÑÑÑðÑÑÑðÑÑÑðÑðïððððïóðóðóóúðóóóóóóüóóóóóðóððððÑÑÑÑÍÍÍÍÍÄÄÍÄÄÁÁÁÁÁhhhchccccXcXXTXTTTTTThhhÁhhhhÁhhhhhÁhhÁh•ÁhhÁ•¹hhhhhÁÁhÁhÁhÁhÁhÁhhhÁÁhhÁhhhhÁhhhhhÁhhÁhÁhhhÁ•¹••¹•hhhhhÁhhÁhhhÁhhhÁhhhhhhhhÁhhhhhh•Á•¹hhhhhhhhhhù•¹„hhÁÁhhÁhhhhhÁhhhhÁhhÁhhhhÁhhhhhhhhh•hhhÁhhÁhhhhÁhhÁhhhÁhÁhhhhhhhhhÁhhÁhhh•¹••hhhh•¹•hhh¾�Á•¹h•¹�•hhhhhÁhhÁhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhh•¹�•�••¹�•Á•h•¹hhh•¹�•hhhh•hh•h•¹•¹Á•¹Á„¾hhÁhÁh•hh•¹•Áhh••�•�hhhhhhhh•¹•h•�h•¹••¹hh•¹hh•¹hh•¹�hh¹•h•h•¹•h•¹•hh•hh•hh•¹„¾hhÁÁhhhhhh•¹•¹••¹•hhhh•h•¹hh•Á�hh•h•¹h•¹•hÁhhÁhhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁhÁhÁÁhÁÁÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁÁÁhÁhhÁhÁhÁÁÁÁhÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁhÁhÁÁhÁÁhhÁÁÁÁÁÁhhÁÁhÁhhhÁhhhÁhhÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁÁhÁhÁhÁhhÁhÁÁhÁÁÁÁÁÁhÁhÁhÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁÁhÁhÁhÁÁhÁÁÁhÁhÁhÁÁÁhhÁÁÁÁÁÁhhÁÁhÁhhhÁhhhÁhÁhÁÁhÁhÁhÁhÁhÁÁÁÁÁÁhÁhÁhÁhÁÁhÁhÁhÁhhÁhhÁhÁÁhÁÁÁÁÁÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁhhÁÁÁhÁhhÁÁhÁÁÁÁhhÁÁÁhÁhÁÁÁÁÁÁÁhhÁÁhÁhhhÁhhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁhÁhÁhÁhÁhhÁhÁhhÁhhÁhhÁhÁhÁÁÁÁÁhÁhhÁhhÁÁÁÁÁhÁhhÁhhhÁhÁÁhÁhÁhhÁhÁhÁhÁhÁhhhÁÁhÁÁÁhhhÁhÁÁhhÁÁÁhÁÁhhhÁhÁÁhhhÁhhhhÁhÁhÁhhÁhÁhÁhhÁÁhÁÁhÁÁhÁhhÁhhhÁhÁhhÁhÁhhhÁhÁhÁÁÁÁÁhÁhÁhÁhÁÁÁÁhÁhÁhÁhhÁhÁÁÁhÁhÁhhÁhÁhÁhÁhÁhhhÁÁhÁhÁhhÁhÁhÁÁhÁhÁÁÁhÁhhÁhÁÁhhhÁhhÁhhhÁhÁhhhÁhÁhhhhÁÁhÁÁhÁhÁhhÁhhhÁÁhhhÁhhÁhhÁhÁhÁÁhÁÁhhÁhÁhÁhÁÁhÁhÁhhÁhÁhÁhÁÁhÁhÁhhÁhÁhÁhÁhÁhhhÁÁhÁhÁhhhÁhÁhÁhhÁÁÁÁhÁhhÁÁhÁhhhÁhhhhhhÁhÁhhÁhÁhhÁhÁhÁhÁÁhÁhÁhhhÁhhÁhÁhhÁhhÁhhhÁhhÁhÁhÁhhÁhhÁhÁÁhÁhhÁhhÁhhhhhhÁhhÁhhhÁhhÁhhÁhÁhhhÁhhhÁhÁhhhÁÁhÁhhÁhÁÁhÁhhÁhhÁhhhhhhhÁhhÁhÁhhÁhÁhhhhhÁhÁÁhÁhhÁhhhhhhÁhÁhhÁhhhhhÁÁhhÁhÁhÁhhhhhÁhhÁÁhhhhÁhhÁhhÁhhÁhÁhÁhhÁhÁhhÁhÁhhhhÁhhÁhÁhhhhÁhhÁhhÁhÁhÁhhhÁhhÁhhhÁhÁhhhhÁhhhhhhÁhÁhhhÁÁhÁhÁhÁhhhÁhhhÁhÁhhÁhhÁhhhÁÁhhÁhÁÁhhhhÁhhÁhÁhhhÁhÁhÁhÁÁhhÁhÁhÁÁhÁhhÁhÁÁhÁhhhÁhhÁhÁhhhhÁhhÁhhhÁhÁhÁhhÁhÁÁhhhhhhhhhhÁhhhhÁhÁhÁhhhÁÁhÁhÁÁÁhhhÁhhhÁhÁhhÁhhh¹•¹ÁhhÁÄÄÍÍÑÑÑóðïÑððÑÑðÑÑÑÑÑÑÑÑÍððÑÑðÑððïóðððóððððóðüóóóóúóóüóóóóóóóóððÑÑÑÑÍÍÑÍÍÄÄÍÍÄÄÄÁÁÁÁhhhhccccXXXTXXXT"TTTTThhÁhÁhÁhhhhÁhÁhhÁhhhh¹••hhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhÁhhhÁhhhhhhÁhhÁhhh�¹Á�¹•hhhhhhhhhÁhÁhhhhhhhhhÁhhÁhhÁhhhh¹•hhÁhÁhhhÁhhhhhhÁhhÁhhÁhhhhÁhhhhÁhhhhhhÁhhhhhhÁhhh••¹•hhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhh¹•hhhh�¹••hÁ¹•hhhhÁh¹•hhÁhÁhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhÁhÁÁh¾„¹•¹•¹•Á¹•¹•hhhhhhhh¹•h•h¹•h¹•hhhhhhhhhhhhhhÁ�¹••hhh¹•h¹•¹•¹Ãhh•h••¹•h•¹•¹••�¹•Áhh•�¹•hhhh••¹•hhhhh¹••�¹•h�¹•h¹•h¹•hhhhÁhhhhhhhhhhh�•„¹Á�¹•hh•¹Áh�Áh¹•¹•h¹•hhhh�¹•hhhhhÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁhhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhhÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁhhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁhÁhÁhÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁhÁhÁÁhhÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁhÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁhhÁÁhÁÁÁÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁhÁÁhhÁÁhÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁhÁhÁÁÁhÁÁhÁÁhÁhÁhhÁhÁÁÁhhÁÁhÁhÁhÁÁÁhÁhÁhÁÁÁhÁÁhÁÁhhÁÁÁÁÁhÁhhhÁÁÁÁhÁÁhÁÁhÁÁhÁÁhhÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁhÁÁhÁhÁÁhhÁÁÁhÁhÁhÁhhÁÁhÁÁÁhÁhÁhÁÁhÁhÁÁÁhÁhÁhÁhhÁhÁÁÁhhÁÁhÁhÁhÁÁÁhhhÁhÁÁhÁÁhÁÁÁhhhÁÁhÁhÁhhhhÁÁÁÁhÁÁhÁÁhÁhÁÁhhÁhÁÁÁÁÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁhÁÁhhÁÁÁhÁÁhhÁhhÁÁhÁÁÁhÁhÁhÁÁÁhhÁÁÁhÁhÁhÁhhÁhÁÁhhhÁhÁhhÁhÁhÁhhÁhhhÁhÁhÁhÁÁhhhÁÁhÁhÁhhhhÁÁÁÁhÁhhÁhhÁhhÁhhhÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁhÁhÁhhÁhhhÁÁÁhÁhÁhÁhhÁÁhÁÁÁhÁÁhÁÁhÁhÁÁÁhhÁÁhhÁhhÁhÁÁhhhÁhÁhhÁhÁhÁhhÁÁhhÁhÁhÁhÁÁhhÁÁhÁÁhÁhhhÁhÁÁÁhÁhhÁhhÁhhÁhÁhÁhÁÁhÁhÁÁhÁhÁhÁhÁÁhhÁhÁhÁhhÁhÁhhÁhÁhÁhhÁÁhhÁÁhÁÁhhÁhÁhhÁÁhhÁhhhÁhhÁhÁÁhÁhÁhhhhÁhÁhÁhhÁhhhÁÁhÁhhÁÁhhhÁÁhÁhÁhhhÁhÁÁhhÁhhÁhhÁhhÁhÁhÁhÁhÁÁhÁÁhÁhÁÁhhÁÁhhÁhÁhhÁhhÁÁhÁhÁhhÁhhÁÁhÁhÁhÁÁhhÁhÁhhÁÁhhhÁhhÁhhÁhhÁhhhÁhhhhhhÁhÁhhÁhhhÁhhÁhÁhÁhhÁhÁhÁhÁhhhhÁhÁhhÁhÁhhhÁhhÁhhÁhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhÁhhÁhhhhÁhhÁhhhhhhÁhhÁhÁhhÁÁhÁhÁhÁhÁhhÁhhhÁhhÁhhÁhhhÁhhhhÁhhhÁhhÁhhhÁhhÁÁhhÁhhhÁhÁhÁhhhhÁhhÁhhÁhhÁhÁhhhÁhhhhÁhÁhÁhÁhhÁhÁhhhhÁhÁhÁhhÁhhhÁhhhhÁhhhhhÁhhÁhÁhhÁhhÁhÁhÁhÁhÁÁhhhÁhhÁhhÁhhhÁhhÁhÁhÁhÁhhÁhhhÁhÁhÁhhÁhhhhhÁhÁhhÁhhhhÁhhÁh••�ÁhhÁÄÁÄÄÍÍÍÑðððððÑÑðÑðÑÑððÑÑÑÑÑðÑððïçðÑóððððòóóóóóóðóüóóüóüüóüóóðððððïÑÑÑÑÍÍÍÍÄÄÄÄÁÄÄÁÁhhÁhchcccbbXXXXTTTTTT"TThÁhÁhhhÁhÁhhÁhhÁÁhÁhh•¹hÁhhÁhhÁhhhÁhÁhÁhhhhhhÁhhhhÁhÁhhhhÁhhhhÁhÁhhhÁhhhhhÁhhhhÁÁhhhhhhÁhhhhÁhhÁhhÁÁhÁhhhhhÁhhhhÁhhhhhÁhhÁhhhhÁhhÁhhhhÁhhÁhhÁhhÁhhÁhÁhÁhhhhhÁhÁh•¹hÁhhÁhhhhhhÁhhhhÁhhÁhhÁhhhhhÁhhhhhÁhhhÁhÁhhhÁhh•¹h•¹hÁ••hÁ•hÁhhhÁhhhÁhhhÁhÁhhÁhhhhhÁhhÁhhhhhÁhhÁhhhhhhÁhhhhhhhhhhhhhhÁ•hhhhh•¹•hÁhhhhhhhhhhhhhhÁh•¹h•¹•hhhhÁhhhhhhhh•¹•¹hhh•¹�hh•¹hhhÁh•¹hh•Áhh•¹hhÁÁhhhhh•¹hhh•¹•ÁhhhhhhhhhÁhhhhhhhÁhhÁ•¹•¹�•hhhh•¹�h••¹�Á�•hhhh•hh•¹•hhhÁhhhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁhÁÁÁÁÁÁhhÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁhÁÁhhÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁhÁÁhÁÁhhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁÁhÁÁhÁhÁÁÁÁÁhÁÁhÁÁhÁÁhÁhÁhÁÁÁÁÁhÁÁhÁÁhÁhÁÁhÁhÁÁÁhÁÁhÁÁÁÁÁÁhÁÁhÁhÁÁÁhÁÁhÁÁhÁhÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁhhÁhÁÁhhÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhÁhÁhhÁÁhÁÁhhÁÁhÁhÁÁhÁÁhÁhÁÁhÁhÁhhÁhÁhÁÁÁhÁÁÁhÁÁhhÁhÁÁÁhÁÁÁÁhhÁÁÁÁÁhÁhÁhÁÁÁÁÁhÁÁhhÁÁhÁhÁhhÁhÁÁÁÁhÁÁÁhÁÁhhÁÁhhÁhÁÁÁhhÁhÁÁÁÁhÁÁÁhÁhÁÁÁhhÁÁÁhÁhhÁÁhÁhÁÁhÁÁhÁhÁhÁhÁhhhÁhÁhÁÁhÁÁÁÁhÁhÁhÁhÁhÁÁhÁÁÁhhÁÁÁhÁhÁhÁhÁhÁÁÁhÁÁhhhÁhÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁhhÁhÁhÁhÁhÁhÁhÁhÁÁÁhÁhÁÁhÁhÁÁhÁhÁhÁÁhhÁÁhÁÁhÁhÁÁhÁhÁÁhÁhÁhhÁhÁhÁÁÁhÁÁhÁÁhhhÁhÁhÁhhÁÁhhhhÁhÁÁhhÁhhÁhÁhÁhÁÁhhhÁhhÁhÁhÁhhÁÁÁhÁÁhÁÁÁhhÁhhhÁhÁhÁhhÁhhÁÁhÁhÁÁhÁhÁhÁhhÁÁhÁhhhÁÁhÁhÁhhÁhÁhÁhÁhÁhÁhhÁhhhÁÁÁhÁÁhÁÁhhÁÁhÁhÁhhÁÁÁhhÁÁhÁÁhÁhhÁÁhÁhÁhhÁhhhÁhhÁhhhÁhhÁÁhÁhÁhÁÁÁhhÁÁhhÁhhÁÁhÁhhhÁhÁhÁÁhÁhhÁhÁhhÁÁhÁÁhhÁÁhÁhÁhhÁÁhÁhhÁhÁhhhÁhhÁhhÁhÁÁhÁÁhhhhÁhÁhÁhÁhÁhhhÁhÁhÁhhhÁhÁhÁhÁhÁhÁhhÁhhÁhhhÁhhÁÁÁhÁÁhÁÁhhhÁhhhÁhÁhÁhhÁhhÁhÁhÁhÁhÁhhÁÁhhÁÁhÁhhhhÁhÁhÁhhÁhÁhÁhÁhÁhhhÁÁhhhÁhÁhÁhÁÁhhhhÁhÁhÁhhÁhÁhhhÁhÁhhhhhhÁhÁhÁhÁhhhhÁhhÁhhhÁhhÁÁhhhÁhÁhÁhhÁhhhÁhhÁhhhÁhhhÁÁhhÁhÁhhhhÁhhÁhÁhÁhhhÁhÁhÁhhÁhhhÁhhhÁhhhhÁhhÁhÁhÁhÁhÁhhhhÁhhÁhhhÁhÁhhhÁhÁhhhÁhÁÁhÁhÁhhÁhhhÁhhÁhhhhhhÁhÁhÁhhhÁhhhhÁhhÁhhhhhhÁhhÁhÁhhÁhhhhhhÁhÁÁhh•Á¹•¹ÂhÁÁÄÄÄÍÍÑðððððÑððððððÑÑðÑÑÑÑÑðÑððÑððððòðððóðóðóóóóóóóóóóóúóüóóóððððÑáÑÑÍÑÍÍÄÄÄÄÄÄÄÁÁÁÁhhhcccccccXXXTXTT:TTTTThhÁhhhÁhhÁÁhhhÁhhhhÁhhÁh•ÁhÁhÁhÁhhhÁhhhÁhÁhÁhhÁhÁhhÁhhhhÁhhÁhÁhÁhhhhhhÁÁhhh•hhÁhÁhhÁhÁÁhhhhÁhhhhÁhhhhhhhÁÁhhÁÁhhhhhhÁhhhÁhhÁhhhÁhhhÁhhhÁhhhhhhÁhÁhhÁhhhhÁhhÁhÁhÁhhhhhhhÁhhÁhÁhÁhÁhhÁhÁhhhÁhÁhÁhhhhhhhhhÁhhhhhhhÁ•¹•Á„¾Áhhh¹•h¹•hhÁhhhÁhhÁhhhhhÁhhhhÁÁhhÁhhÁhÁhhÁhhhhhhhÁhhhhhhhhhhhhh•hhh¹ÁÁhhÁh�¹•hhhhÁhhhÁhhhhÁhhÁhhhh�¹•ÁhhhhhhhhhhhÁhhhhhhhÁhhhÁhhÁhhhhÁhh•¹•hÁhhhhhhhÁhhÁhhhh•�¹•hhh•hÁ•hhhhhhÁhhÁhhhÁhhhÁh¹•hh•hh•¹�¹•�¹•¹•hhh¹•h•�¹•ÁhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁhÁhÁhÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁhÁhÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁhÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁhÁhÁhÁÁhÁÁhhÁÁÁhÁhhÁÁhÁÁÁhhÁÁÁhÁÁhÁÁÁÁhÁhÁÁhhÁhÁÁÁhÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁÁhÁÁhhÁhÁhÁÁÁÁhÁhhÁÁhÁÁhÁÁhÁhÁÁÁhÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁÁhÁÁÁhÁhÁÁhhÁÁÁhhÁhÁÁÁhÁÁhÁÁhÁhhÁhÁÁÁhÁhÁhÁhhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁhÁÁhÁhÁhÁhÁÁÁhÁhhhÁhÁhÁÁhÁÁhÁÁÁhÁÁhÁhÁhÁÁÁÁÁhÁÁÁÁÁhhÁhÁhÁhÁÁÁhÁhÁhÁhÁhhÁÁÁhhÁhÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁhÁhÁhÁhhÁÁhÁÁhÁÁhÁhÁhÁhÁÁÁhÁhÁÁhhÁhÁhhhhÁhÁÁhhÁhhhÁhÁhÁÁhhÁhhÁhÁhÁhhÁhhhÁÁÁÁhÁÁhÁÁhhÁhÁÁhhÁÁhhÁhÁhÁhÁhhÁhÁhÁhhÁÁhÁhÁhÁhÁhhhhÁÁhÁhÁhhÁÁhhÁhhÁÁhÁhÁhÁÁhhÁhÁÁhÁhÁÁhhÁÁhhÁhhhÁÁÁhhÁhÁhÁhhÁhÁhhÁhÁhÁhÁÁhhÁhhÁhÁÁÁhÁhÁÁhÁhhÁÁÁhhÁÁhhÁhÁhÁhÁhhÁhÁhhhÁhÁhhÁÁhhÁÁhhhÁhÁhÁhÁhhÁhhhhÁhÁÁhÁhÁhÁhÁhÁhÁÁhÁhÁÁhhÁhÁhhÁhhÁÁÁhhÁhhhÁhhÁhÁhÁhhÁhÁhÁÁhhÁhhÁhÁÁÁÁÁhÁÁÁhÁhhÁÁhhhÁhhÁhÁhÁhÁhhÁhÁhÁhhÁÁhhÁÁhhÁÁhhÁhhÁhÁhÁhhÁhhhÁhÁhÁhÁhhÁhÁhhÁhÁhÁhÁhÁhhhÁhhhhhhÁÁÁhhÁhhhÁhhÁhÁhÁhhhÁÁhhÁhhhhhÁhÁhÁhÁhÁhÁhhhÁhÁhÁhÁhhÁhhhhÁhhhhÁhhhhhhÁhÁhÁhhhÁhhÁhhÁhÁhÁhhÁh•¹Á�ÁhÁhhÁÁÄÍÄÍÍÑÑÑÑððððððÑÑðÑÑÑÑÑÑðÑÑðÑÑÑÑðïÑðóððððóððóóóóóóóóóóóðóððððððÑÑÑÍÍÑÍÑÍÍÍÍÄÁÄÁÄÁÁÁhhhhhchcccXXXXVTTTTTTTTÁhhÁhÁhhhÁhÁhÁhhÁhÁhÁhhhhÁhhÁÁhhÁhhhÁhÁhhÁhÁhhÁhÁhÁhhhhhhhÁhÁÁÁhÁÁÁÁhhÁhh¹h•ÁhhhhÁhhÁhhhÁÁhhÁhhhÁhÁhÁhhhÁhhhhhÁhÁhÁhÁÁhhhÁhhÁhhÁhÁhÁhhhÁhÁÁhÁhhÁhÁhÁhhÁhhhhÁhhÁhhhhhÁhhÁhÁhhhhÁhhÁhhhhhhhhhÁhÁhÁhÁhhÁhhÁhhhhÁ•¹�••¹�Á•hhhÁhhhhhÁhhhÁhhhhÁhhÁhhhÁhhhhhÁhÁhhhhÁhhÁÁhhÁhhhÁhÁhhÁhhÁhhùh•Á��h•Á•¹•hhhhhÁhhÁhÁhhÁhÁhhÁhhh•¹•ÁhhÁhÁhÁhÁhhhhhhhhh•ÁhhhhhhhÁh•hhhh•¹�hhÁhhÁhhhhÁhhhhhhùhhhhh•¹h•¹•ÁhhÁhÁhhÁhhhhhÁhhhÁhh•¹ÁÁ¹�„•¹hÁhhhhhÁ�h•¹hÁhhhhhÁhÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁhÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁÁhÁhÁÁhÁÁhÁÁhhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁÁhÁhÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁÁhÁhÁhÁhÁhÁÁhhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁÁhhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁhÁhÁhÁÁÁhÁÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁhhÁhÁÁÁÁhÁhÁhÁÁÁhÁÁhhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁhÁhhÁhÁÁhÁÁhhÁÁhÁhÁÁÁÁhÁhÁhhhÁhÁhÁhÁÁhÁhÁhÁhÁÁÁÁÁhÁhhÁÁÁhÁÁÁhÁÁhhÁÁhhÁÁÁÁÁÁÁhÁÁhhÁhÁÁÁÁhÁhhÁhÁÁhhÁhhhÁhÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhhhÁhhÁhÁÁÁhÁÁhÁhÁÁhhÁÁÁhÁhÁhÁhhÁhÁhÁhÁÁhÁhÁhÁhÁÁÁÁhÁhÁhhÁÁhÁÁÁhÁÁhhÁÁhhÁÁÁÁÁhÁhÁÁhhÁhÁÁÁÁhÁhhÁhÁÁhhÁhhhÁÁhÁÁhÁhÁhÁÁhÁÁÁhÁÁÁÁhÁÁhhhÁhÁhÁhÁhÁÁÁhÁhÁÁhhÁÁÁÁhÁhhÁhhÁhÁhÁhÁÁhÁhÁhhhÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁhÁhhÁÁhhÁhÁÁhÁÁhÁÁhhÁhhÁÁÁhhhÁhhhÁhhÁhhhÁhÁhÁhÁhÁÁÁhÁÁÁhÁÁÁhÁhÁÁhÁhhÁhhÁhÁhhÁÁhhÁhÁhhÁÁÁhÁhÁhÁhhÁhÁhÁhÁhÁhhhhÁhhÁÁÁhÁhÁhhÁÁhÁÁhÁhÁhhÁÁhhÁÁÁÁhÁÁhhÁhhÁhhÁÁÁhÁhhÁhhÁhhÁhhhÁhÁhÁÁhÁÁhÁhÁhÁhÁÁÁhÁhÁÁhhhhhhhÁÁÁhhÁÁhhÁhÁhhÁhÁÁhhÁhÁhhhhÁhÁhÁhÁhhhhhhÁÁhÁÁÁhÁhhÁhÁhÁÁhÁÁhhÁÁhhÁÁÁÁhÁhÁhÁhhhÁhÁÁÁhÁhhÁhhÁhhÁhhhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁÁhÁhÁhhhhhhhÁÁÁhhÁÁhhÁhÁhhÁÁhÁhÁhhÁhhÁhÁhÁhÁÁhÁhhhÁhhÁhÁhÁhÁhhÁÁhÁhÁhÁÁhhÁhhhÁhÁhhÁhÁhÁhhhÁhÁÁhhhhhhhhÁhhhhhhhÁÁÄÄÄÑÍÑÑÑððððÑÑððÑðÑðÑðÑÍÑðÑðÑððððòïððóðððóðóóóóóóüóóóóüüóóóóðïððÑïÑÑÍÍÍÍÄÄÄÄÄÄÄÁÁÁÁÁhhhccccXXbXXTTTTTTT""TTT"hhhhhÁhÁhhÁhhhÁhhÁhÁhhhÁhhhhÁhhhÁhhhÁhhhÁhhhhÁhÁhhhÁhÁhhhÁhÁhhÁhhhhhhhhhÁhÁ„Á¹•hhÁhÁhhÁhÁhhhÁhhhÁhÁÁhhÁhhÁhhÁhhÁÁhhhÁhhhhÁhÁhhÁhÁhÁhhÁhÁÁhÁhÁhÁhhÁhÁhhhÁhhhÁÁhhhÁhÁhÁhhhÁÁhhhÁhÁÁhhhhhhhÁhÁhÁhÁhhhÁhhhhhÁhÁÁÁhÁhhÁ¹•ÁhÁ¹•ÁhhÁhhÁhÁhÁhÁhhÁhÁhhhhÁhÁhhhhhhhÁhhhhhhhÁhhhÁhhÁhÁhÁhÁhhÁhÁhhhÁ¹•¹•¹•hhÁhhhÁhhhhhhhhhÁhÁhÁhhhh•�¹•hhhhÁhÁhhÁhhhÁ•ÁÁhh¹•hÁhhÁh••¹Á••hÁhhÁhhÁhÁhhhÁhhÁhhÁhÁhhh••¹•hhh�¹•hhÁhhhhhhÁhÁhhÁhhhhÁhh�•„¾¹•hhhhhÁ•�¹ÁhhhhÁhhhhhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁhÁhÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁhÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁÁhhÁhÁÁhÁhÁÁÁÁÁhhÁÁhÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁÁhÁhÁhÁhÁhÁÁÁÁhhÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhhÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁhÁhÁÁÁhÁhÁÁhhÁhÁÁÁÁhÁhÁÁhÁÁhÁÁÁhÁhÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁhÁhÁhÁhÁhÁÁÁÁhhÁÁhÁhÁÁÁÁÁÁÁÁhhÁÁÁÁhÁÁÁhÁhÁÁhhÁÁÁhÁhÁÁÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁÁhÁÁhÁhÁhÁÁhhÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁÁhÁhÁÁhÁhhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁÁhhÁhÁÁhÁÁhÁhhÁÁhhÁÁhhÁhÁÁhÁÁhÁÁhhÁÁhÁÁhÁÁÁhÁÁhÁhÁhhÁÁhÁhhÁÁÁÁhÁhÁhÁhÁhÁÁÁhÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁÁhhÁhÁÁÁhÁhÁhhÁhhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁÁhÁhÁhÁhÁÁhÁhhÁÁhhÁhÁhÁhÁÁhÁÁhÁÁhhÁÁÁÁÁhÁÁÁhÁhÁÁhhÁhÁÁhÁhhÁÁÁÁhhÁhÁÁhÁhÁhÁÁhÁhÁÁhÁÁhÁhÁÁhÁhÁÁÁhhÁhÁÁÁhÁhhÁhhÁhÁhÁhÁhhÁhÁhÁhÁÁÁÁhÁhhÁhÁhÁhÁÁhhhÁhÁhÁÁhhÁhÁÁhÁÁhÁÁhhÁhÁhÁhÁhÁhhÁhhÁhhhÁÁhhhhÁhÁÁhhhÁhÁhÁhhÁhÁhÁhÁhÁÁhÁhhÁhÁhÁhÁÁhÁhhÁhÁhhhhhhhhhÁÁhÁhhhÁhhhhÁhÁhÁÁÁhhÁhÁhhhÁÁhhhhÁhhÁÁhhhhÁÁhÁÁhÁÁhhÁhÁÁhhÁÁÁhhÁhÁhhhhÁÁhhhhÁÁhÁhhhhhÁÁhhÁÁhÁhhÁÁhhÁÁhÁhÁhÁhÁhÁÁhhhhÁÁÁhhhhhhÁhÁhÁhÁhhhÁhhÁhÁhÁÁÁÁÁhhÁhÁhhÁhÁhhhÁÁhhÁÁhhhhÁÁhÁhÁhÁhhhÁhÁÁhÁhÁhhÁhhÁhhhÁÁhhhhÁÁhÁhÁhÁhÁhÁhhÁÁhÁhÁhhhÁÁÁhÁhÁhÁhÁÁhÁhhhÁhÁhhhhhhÁhhÁhhÁhhÁhhÁÁÄÄÄÍÍÑðÑðÑðððÑÑðÑðÑððÑÑÑÑðÑðÑððÑÑóððððóðóóóððóðóóüóóóóóüóüóððððððÑÑÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁÁhhhhccccXXXXXXXTT:TM"ThÁhhÁhÁhÁhÁhhÁhÁhhhÁÁhhhÁhhhhÁhhhhÁÁhÁhhhÁhÁhhÁhÁhÁhÁhhÁhhhÁhhhÁhhhhhÁhÁhhhÁhhÁhhhÁhÁhhÁhhÁhÁhhhÁhÁhhÁhÁhhhÁhÁhhhhhhhhhhÁhhÁhhhhhhhhÁhhÁhÁhhhhhÁhhÁhÁhhhÁhhhhÁhhhÁhÁhÁhhhÁhhhÁhÁhhÁhÁhhhÁhhhÁhhÁhhhhhÁhÁhhhhhhÁhhÁhÁhhhhÁhhhÁhhhÁhÁhÁhÁhhhhhÁhÁhhhhhÁhhhÁhhÁhhhhhhhhÁÁhÁhÁhhhÁhÁÁhÁhÁhhhÁ•hhhÁhhhhÁÁhÁhhÁÁhhÁhhÁhhÁhhùhÁÁhhÁhÁhhhhhhhÁ•¹¾�hhÁhhhÁhÁ•¹hÁh•¹hÁh•¹••ÁhhÁÁhhhhhhÁhhhhh•¹hhhÁh•¹•hhhhhhhÁhhÁhÁhhhhÁh•hhù•¹�Á•hh•Á•¹•¹Á••ÁhhÁhhhÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁhÁÁÁhhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhÁhÁÁhÁhhÁhÁhÁhhÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁhÁhhÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁhÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁhÁhÁÁÁhÁhhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁhhhÁÁÁhÁhÁÁÁÁhhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁhhÁÁÁÁhÁhÁhÁÁÁÁhÁÁhÁÁÁhhÁÁhhÁÁhÁhhhhÁhÁhÁhhÁÁhÁÁhÁÁhÁÁÁÁÁhhÁhhhÁhhÁÁÁÁhÁÁhhÁhhÁhhÁÁhhÁhÁhÁÁhÁÁÁÁhhÁhÁhhhÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁhÁhÁÁÁhÁÁhÁhÁÁÁÁÁhÁÁhhhÁÁhhhÁhÁhÁÁÁhhÁÁÁhÁÁÁhÁÁÁÁhÁhhhÁhhÁhhÁÁÁÁhÁÁhÁhhhÁhhÁhÁhhÁÁhÁhhÁhÁÁhhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁhÁhÁÁÁÁhÁhÁÁhÁÁhhÁÁhÁhÁÁhÁÁhhhÁÁhhhÁhhhÁhÁhhÁÁhÁhÁÁhhÁÁÁhÁhhÁhhhÁhhÁhÁÁhÁhÁhÁhhhÁhÁhhhhhÁhÁhhhÁhÁhhhÁhÁhhÁhÁÁÁhÁÁÁÁÁhÁhÁhÁhÁhÁhÁhhhhÁÁhhhÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁhhhÁhÁhhhhhhÁhÁhhÁÁhÁÁhÁhhÁÁÁhÁhhhhÁhhhhÁhÁhÁÁhhhÁhhÁhhÁhÁhhÁhÁÁhhhÁhÁhhÁhÁhhhhhÁhÁÁhÁÁÁÁhÁhÁhÁhÁhÁhÁhhÁÁÄÄÍÍÑÑÑðÑðÑðÑÑÑððÑÑðÑÑðÑÑÑÑÑÑðÑÑÑððððððóðóðúóóðóóóóüóüüóðóóðóððÑÑðÑÑÑÍÍÍÍÄÄÄÄÁÄÁÁÄÁhhhhccccXXbXXXTTTTT:T:TTM"hhhÁÁhÁhhÁhÁhÁhÁhÁhhÁhÁhhÁhhhhÁhhhhhhhÁhÁhhhÁhÁhhÁhhÁhÁhÁhhhhhhhhhÁhÁhÁhÁhhhhhhÁhÁhhhhhÁhhÁhhÁÁhhhhÁhhhhhhÁhÁhÁÁhÁhhÁhÁhÁhÁhhhÁhhhhÁhÁhhhÁhÁhÁhhÁhhhÁÁhhhÁhhhÁhhhhhhhhÁhÁhhÁhhÁhhÁhÁhÁhhhhhhhhhhhhÁhÁhÁhhhÁhhhhhhÁhhhhhÁhhÁhhÁhÁhhhÁhhhhhhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhÁhhhhÁhÁhhhÁhhÁhÁhhÁhhÁÁhhhÁhhhÁhÁhhhhhhÁhÁhhhÁhÁhhÁhhÁhÁhhhhhhhhhhhÁhÁhÁhÁh„¹•hhÁhÁhhhhhhhhÁhhÁhÁhh¹•hhhhhhÁhÁhÁhÁhÁhÁhhÁhhÁ•�¹ÃhhÁhÁhÁhÁhhÁhhÁ•hÁ¹•hÁhhhhÁ¹•h¹•hhhhhh¹•ÁhhÁhÁhhÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁhÁÁhÁhÁhÁhÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁhÁhhÁÁÁhÁÁÁhÁhÁÁhÁÁhÁÁhÁhÁhÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhÁÁhhÁÁhhÁÁÁhÁhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁhhÁÁÁhÁÁhÁÁÁhhÁÁhÁhÁÁhÁhhÁhÁhhÁhhÁhhhÁhÁhÁÁÁÁhÁhÁÁÁÁÁhhÁÁhÁÁhÁÁhÁÁhÁhÁhÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhhhÁhÁÁhÁÁÁhÁhÁÁhÁÁÁhhhÁÁhhÁÁÁhhÁhÁhÁhhÁÁhhÁhÁhÁhÁhhÁÁhhÁhÁhhhÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁhÁÁhÁhÁhÁÁÁÁhÁhhÁÁhÁÁÁhÁÁÁhÁÁhÁÁhÁhÁhÁÁhÁÁhÁhÁÁhhhÁhÁhÁÁhÁÁhhÁÁhÁÁhÁhhÁÁhhÁÁÁhhÁhÁhÁhhÁÁhÁhÁÁhÁhhÁhÁhÁhhhÁhhhÁhÁhÁÁÁÁhÁhÁÁÁÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁhhÁhhÁhÁÁhÁÁhÁhÁhÁhÁhÁhÁhhhÁhÁhÁÁhhhÁhÁhÁhÁhÁhhÁÁhÁhÁhÁhÁÁhhÁÁÁhÁhhÁhÁhhhÁhhÁhÁhÁhÁhÁhhhhÁhhhhhÁhÁhÁÁhÁhÁhÁÁhÁhÁhhÁÁhÁhhÁhÁÁÁhÁhhhÁhhÁÁÁÁÁÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁÁÄÄÄÍÍÑÑðÑððÑðððÑðÑððÑÑÑÑÑÑÑðÑððððÑðððïððóóðóóóóóóðúóóóüóóóóóððððÑÑÑÑÑÍÍÍÍÍÄÄÁÄÄÁÁÁÁÁhhchccccbbXTXXTTTTT"hÁÁhhhhhÁÁÁhÁhÁhhÁÁhhÁÁhhÁhÁhÁhÁÁhhhÁhÁhhhÁÁhhÁhÁhhÁhhÁhhhhhhhhhhÁhÁhhÁÁhhhÁhÁÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁhhÁhÁhÁÁhÁhÁhÁhÁhÁhhÁhhÁhhhÁhÁhhÁhhhhhhhÁhÁhÁhhhÁhÁhÁhhÁhÁhhÁÁhhhhhÁhhhhÁhhhÁhÁhÁhhhÁhhhhhhhhhhhhÁhhÁÁhhhhÁÁhÁÁhhhÁhÁhhÁhhÁhÁhhhhhhhhÁhÁhÁhÁhÁhÁhÁhhÁhhÁhhhÁhÁhhÁhhhhhÁhÁhÁhÁhhhÁhhhÁhhÁhÁhhhÁhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhÁhhhhÁhhhÁhÁhhÁhÁhÁhÁhhÁhÁhÁhÁhhÁhhÁhhhhÁhhhÁhÁhÁhÁhÁhhÁhhÁhhùhhÁhhhhÁhhhhhhÁhÁùÁ„¾hÁhÁhÁhhhÁhhhÁÁhhhhhÁhhhhhÁhhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhÁhÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁhÁÁhÁÁÁhhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁhÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁhÁÁhhÁÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁhÁÁÁhÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁhhÁhhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁhÁÁhhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁÁhÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhhÁÁhhhhÁhÁÁhÁÁÁÁhÁÁhÁhÁÁhÁÁhhÁÁhÁÁÁhÁÁÁÁhhhÁÁhÁÁÁÁÁÁÁhhhÁÁÁÁÁhhÁÁÁÁhhÁÁÁÁhÁÁhhhÁÁÁhhhÁÁÁhÁhÁÁhÁÁhÁhÁÁhÁÁÁhÁhhÁÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhhÁhÁhhÁhÁhÁÁhÁhÁÁhÁhÁÁÁhÁÁÁhhÁÁhÁÁhÁÁÁÁÁhhhÁhÁÁÁÁÁÁÁÁhhhÁÁÁÁÁhÁhÁÁhÁhÁÁÁÁhÁhÁhhÁhÁhÁhÁhÁhÁÁÁÁhÁhÁÁhÁÁhÁhÁhÁhhÁÁÁhÁhÁÁhÁhÁÁhÁÁhÁhhÁhÁhhÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁhÁhhÁhÁhÁhÁÁhÁÁhhhÁÁhÁhÁÁÁÁhhhhÁÁÁhÁhhÁhÁhÁhhÁÁÁhhÁhhhÁhÁhhhÁhÁhÁÁÄÄÄÍÍÑÑðððÑðÑððÑðÑÑÑÑÑðÑðÑððÑðÑÑóÑððóðóðóóóðóðóóóóóóóóüüóóðóðòðïÑÑÑÍÑÍÍÍÍÍÍÄÄÄÄÄÁhhhhhhcccccbXXXXXXTTTTTT:hÁÁhÁÁÁÁhhhÁhhÁÁhhhÁhÁÁhÁhhÁÁhÁhÁÁhÁhÁhÁhÁhhÁhhhÁhÁhÁÁhÁÁÁhÁhÁÁhÁhÁhhÁhÁhÁhÁÁhÁÁhhhÁhÁÁÁÁÁÁhÁhhhÁhÁhÁhhÁÁhhÁhhÁhÁhÁhhhhÁhÁhhÁhhÁÁÁhÁhÁhÁhÁhÁhhÁÁhhhÁhÁÁhÁhhÁhhhÁÁhhÁhhhhhÁhÁhhhhÁÁÁhhÁhÁÁÁhhÁhÁhÁÁÁhhÁhhÁhÁhÁhÁhhhhÁhhÁhÁhÁhÁhhhÁhÁhÁhhÁhÁhhÁhhÁhhhÁhhhhÁÁhhÁhhÁhÁhÁhhÁhhhhÁhhhÁhhhhhÁhÁhhhhÁhÁhÁÁhÁhhÁhhhhhhhhhÁhÁhhÁhÁhÁhhhÁÁhÁhÁhhÁhhÁhhÁhÁÁhhhhÁhhÁhÁhÁÁhhhhÁhhÁhhhÁhhhÁhhhÁhhhÁhhhÁhÁhhhhhÁhÁhÁhhhÁhÁhhhhhÁhhhhhÁhÁhhhÁhhhhÁhhÁhhhhhhhhhhhhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁÁÁhÁÁhÁÁÁhÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁÁhhÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁhÁÁÁÁÁhhÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁÁhÁÁÁÁÁhÁhÁhÁÁhÁÁhÁhÁhÁÁhÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhhÁÁÁhhÁhÁÁhÁÁhÁhÁÁÁhhÁhÁÁhÁÁhÁÁÁÁÁÁhÁhhhÁhÁhÁhÁÁhÁÁÁhÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁhÁhÁÁhÁhhÁhÁÁhÁhÁhÁÁhÁÁÁhÁÁhhÁÁÁhÁhhÁÁhÁÁhÁhÁÁhÁhÁhÁÁhÁÁÁhÁhÁÁÁhÁhhhÁhÁÁhhÁhÁhÁÁhÁhÁÁhÁhÁÁÁÁhÁhÁÁÁÁhÁhhÁhÁhhÁÁÁÁÁhÁÁhÁÁÁÁÁÁhhÁhÁhÁhhÁÁhhhÁhÁhÁhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhÁhÁhÁÁhÁÁhÁhÁÁhhÁhÁÁhÁÁÁÁÄÄÍÍÑÑÑðÑððððÑðÑÑðððÑÑðÑÑÍÑÑðððÑÑÑððððóððððóóóðóóóüóüüúóóóóðððððÑÑÑÑÍÍÍÍÍÄÄÍÄÄÄÁÁÁhÁhhhhcccbcXXXTVTTTTTTTTT::hhhÁÁhÁhhÁhhÁhhhÁhÁhÁhhÁÁhÁhÁhhÁhÁhÁÁhÁhÁhÁÁhÁhhhÁhhÁhÁÁÁhÁhÁhhÁÁÁÁhhÁhhhÁhhhÁhhhÁhÁhÁhhhÁhÁÁhhÁhÁhÁhhÁhÁhÁhhÁÁÁhÁhÁhÁhÁhhÁhhÁÁhÁhhÁÁhÁhÁhhhÁhhhÁhÁhÁhhÁhÁhhÁhÁhhÁÁhÁhÁÁhÁÁhÁhhhhÁhhÁhÁÁÁhÁÁhhÁÁhÁÁhhÁhhÁÁhhhÁhhhhhÁhÁhÁhÁhÁÁhhÁhÁhÁhhÁhÁhÁhhhÁhÁhÁhhÁhÁhhÁhhÁhÁÁhhÁhÁÁhhÁhhhÁhhÁhÁhÁhhÁÁhhÁhÁhhhhÁhÁhhÁhÁÁhÁhhhhÁhhÁhÁhÁhhÁhhhÁhÁÁhhhhhhÁhhhhhhhhÁhhÁhhhÁhhÁhhÁhhÁhhhÁhÁhhhhÁhÁhÁhhhÁÁhhhÁhhÁhhÁhhÁhÁÁhhhhhhhhhÁhhÁhhhÁhÁhhÁhhÁhÁÁhÁhÁhÁhÁhÁhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁhhÁhÁÁÁÁÁhhÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁhÁÁÁhÁÁÁhÁÁhhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁhÁhhÁÁÁÁhÁhÁÁhÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁ•ÁhhÁÁÁÁhÁhÁÁhÁÁhÁhÁhÁÁhhÁhÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁÁhÁhÁhÁÁhÁÁÁhÁÁÁhÁhhhhÁÁÁhhÁÁhhÁÁÁhhÁhÁÁhÁÁÁÁÁÁhÁhhÁhÁhhÁhhhÁÁhÁhhhÁÁ•ÁÁhhÁhhÁhhhÁhÁÁhÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhhÁhÁÁhÁÁÁhÁÁhÁÁhhÁhhhÁÁÁhhÁÁhhÁÁÁhhÁhÁÁhÁhÁÁÁÁhhÁhhÁhÁhÁhÁÃÁÄÍÍÍÑðÑðððáïÑðÑÑððÑÑÑÑÑÑÑÑÑððÑððððððóðòðóðóóðóóóóóóüóóóüóóðððððïÑÑÑÍÑÍÍÄÄÄÄÄÄÁÁÁÁÁÁhhchcccbXXXXXTTTTTTTTT¹•hÁhÁÁhhhÁÁhÁÁhhÁhhhÁhhÁhÁhhÁhÁÁhÁÁhhÁÁÁÁhÁÁhhÁÁhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhhÁhÁhÁhÁhÁÁhÁhÁhÁhhhÁhhÁÁÁhhÁÁhhÁÁhÁhhhÁhÁhÁÁhÁÁÁhhhhhÁhhÁhÁhÁhÁÁhhhÁhhÁÁhhÁhhhÁhhÁhÁhhÁhÁÁhÁÁhÁhÁÁhÁÁÁÁhÁÁhhÁhÁhÁhÁhÁhÁhÁÁhÁÁÁhÁhhÁhÁhÁhÁÁhÁhÁhÁhhhÁhhÁÁÁhhÁÁhhÁÁhhhÁhÁhÁhÁÁÁÁhÁhhhhhÁhhhÁhhÁhÁhÁhhÁhhÁÁhhÁhhhÁhhÁhÁhhhÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁÁhhÁhÁhÁhÁhÁhhÁÁÁhÁÁÁhÁhhÁhhÁhÁhÁÁhhÁhÁhhhÁhhÁÁÁhhÁÁhhÁÁhÁhhÁhÁhÁhÁÁÁhÁhhhhhhhhhhhhÁhhÁhhhÁhhÁhhhÁhhhÁhhhhÁhhÁhhÁhÁhhhÁÁhÁÁhÁhhhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁ•ÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁ•ÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁ¾ÁÁÁÁÁÁÁÁÁÁÁ¾ÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁ¾ÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁ¾ÁÁÁÁÁ•ÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁ¾ÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁhÁh¾ÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁ•ÁÁÁhÁÁÁÁÁÁÁ•ÁÁhÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁÁÁhÁÁÁhÁÁhÁÁ¾ÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁhÁÁÁÁÁÁÁhÁhÁhhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁhÁÁÁÁh•ÁÁhÁhÁÁÁhÁÁÁÁhÁÁhÁÁhÁhÁÁÁÁhÁÁhÁÁhÁÁÁÁhÁhÁhhÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhhÁhÁÁhÁ•¹ÁÁÄÄÍÍÍÑÑÑóðïïÑÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑÑðððððððððóððóóóóóóóóóóóüüóóóóóðððáðÑðÑÍÍÍÍÍÍÄÄÄÄÄÄÁÁhhhhcccccbbXXXXTXTTTTTTTThÁhÁhÁhÁÁhÁhhÁÁÁhhÁÁhhÁhÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁhÁÁhÁÁÁhÁhhÁÁÁhhÁÁhÁhÁÁÁhÁhÁÁÁhÁhÁhÁÁhÁhÁÁÁhÁhÁhÁhÁÁhÁhhÁhhÁhÁhÁhÁhÁÁhhÁhÁÁhÁhhhÁhÁhÁhhÁhhhÁhhÁhhÁhhÁÁÁhÁhÁhhÁhhÁhÁÁhÁhÁÁhÁhhÁÁhÁhÁhÁhÁhÁhÁÁhÁhÁhÁhÁhÁhÁhhÁÁÁhÁhhhÁhÁhÁhÁÁhhÁhhÁÁhÁÁhÁhhÁhhhÁÁhÁÁhhÁhÁhÁÁhÁhÁhhhÁhÁhÁhÁhÁhhÁhÁhÁhÁhhÁhÁhhhÁhhÁhÁhÁÁhÁhÁÁhÁhhhÁÁhÁhÁhÁhÁhÁhÁÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhhhÁhÁhÁÁhÁhhÁhhÁÁhÁÁhÁhhÁhhhÁÁhÁhÁhhÁhÁhÁhÁhÁhhhhÁhÁhÁhhÁhhÁÁhhÁhÁhhÁhÁhhhÁhhÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhÁhÁÁÁÁhÁÁÁÁhÁÁÁ•¹•ÁÁÁÁÁÁÁhÁÁÁ„hÁÁ•¹ÁÁ•ÁÁÁhhÁÁÁ•¹ÁÁÁÁÁ¹ÁÁÁÁÁÁÁ„¾ÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁ•h¹•ÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁ„¾ÁhÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁhÁÁ¾ÁhÁÁ¾ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁ„¾ÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁ„¾Á¾ÁÁhÁhÁÁhÁhÁhÁÁ¹•ÁÁÁÁ„¾ÁÁ¹ÁÁÁ„¾hÁÁÁÁÁÁ¾hÁ„¾ÁÁÁ¹•ÁÁ¹•ÁhÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁhÁÁÁÁ„¾ÁÁÁÁÁÁÁ„¾ÁÁ„hÁÁÁ„¾ÁÁÁÁÁÁhÁÁÁ„¾ÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁ„¾hÁÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁ„¹ÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁ„¾ÁhÁÁÁÁÁÁÁÁhÁÁhÁhÁÁ„h¾ÁÁÁhÁÁÁÁ„¾ÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁ¹•ÁÁÁhÁÁÁÁÁÁ¾ÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁh„¾Á„h¾hÁhÁÁÁÁÁÁhÁÁÁhÁÁÁ•¹•ÁhÁÁÁÁÁÁÁhÁhÁÁÁÁÁ¹ÁÁÁ„¾hÁÁÁÁÁÁÁÁhÁÁhÁ„ÁÁÁh•¹ÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁ¹ÁÁhÁÁÁÁhÁÁÁÁÁ¹•ÁÁÁÁÁÁÁÁÁÁ¾hÁÁÁÁhÁhÁhÁÁÁÁÁ¹ÁÁÁhÁÁÁÁÁ„¾ÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁ„¾ÁÁ¹•ÁÁÁÁÁÁÁÁhÁ¾hÁhÁÁ•h¹ÁÁÁhÁ¹•Á¾ÁÁÁÁÁÁÁÁÁÁÁÁ•h¾ÁÁ„¾ÁÁ„¾ÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁ¹•ÁÁÁhÁhÁÁhÁhÁhÁ•¹•Á¹•Á¾ÁÁÁ•¹•Á¹ÁhÁhÁÁÁÁÁhÁ„¾ÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁh„¾ÁÁhÁÁÁÁ•¹•ÁÁÁÁhÁÁÁhÁÁhÁÁ•¹•Á¹•ÁÁ¾hÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁ„¾hÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁ¹ÁÁhÁÁÁÁÁÁÁÁhÁ¾hÁ•¹•ÁhÁÁÁÁhÁÁÁÁÁ„¾ÁÁÁÁÁÁÁÁÁÁ•h¾ÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁ„¾Á¹•¹ÁÁ•hhÁhhÁ¹•ÁÁ¹•ÁÁÁhÁÁÁ¹ÁÁÁhÁÁÁ¾ÁÁÁhÁÁÁhÁÁhÁhÁ„¾hÁÁÁÁhÁÁÁÁhÁÁhhÁÁÁÁhÁÁÁÁhÁhÁÁ„¾ÁÁÁÁhÁÁhÁÁÁÁhÁÁÁÁ„¾ÁÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁ„¾hÁÁÁÁÁhhÁhhÁÁÁÁÁÁÁ¹ÁÁhÁÁÁÁ¹ÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁhÁhÁÁÁhÁÁÁÁhÁÁhhÁÁÁÁhÁÁÁÁhhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhhÁhhÁhhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁ¹ÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁhÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁÁhhÁ¹ÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁÁ¾ÁÁÁÁÁÁÁÁÁhÁÁhÁÁhhÁhhÁhÁÁÁhÁ•¹h�ÄÁÄÄÑÑÑÑÑððÑóðððÑÑðÑÑÑðÑÑÑÑÑðÑÑðÑðáïððóððóðóðóóðóóüóóüüóóóðóððððïðÑÑÍÑÍÍÍÍÄÄÄÄÄÄÁÁÁÁhhhhhcccXbbXXXTTTTTTThÁhÁÁÁÁhÁh¾hÁÁhÁÁhÁ•¹•ÁhhÁhÁhÁhhÁhÁhÁhÁhhÁÁhhÁÁÁÁhÁÁÁÁhhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁhhÁÁÁÁhÁÁhÁhÁhÁhÁhhÁÁhÁÁÁÁÁÁhÁÁÁhhÁhÁÁhhhhhÁhÁÁÁhÁÁÁhÁÁhÁÁhÁhÁÁÁhÁhÁhhÁÁÁhÁhhÁhÁhÁhhÁhÁhÁhÁhhÁÁhhÁÁhÁhÁhÁÁhhhhÁhÁÁÁÁhhÁhÁÁhhÁhÁhÁhhÁÁhhÁÁhÁÁhhhÁhhhÁÁhÁÁÁhÁÁhÁÁÁhhhÁhÁhhhhhhÁhÁhÁhÁhÁhÁhÁÁhÁhhÁhÁhÁhÁhÁÁÁhhÁhÁhhÁhhhÁÁÁhÁhÁhhhÁhhÁÁhÁhÁhÁ•hhhhÁhÁÁÁÁÁhÁÁÁÁhhÁh¾hÁhÁhÁÁhÁhhÁÁhhhÁhhhÁ•ÁhÁÁhÁhÁÁÁÁhhÁhÁÁhhhhhhÁÁhÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁÁÁhhÁhÁhÁhÁhhÁhÁhÁhÁhhhÁhhÁhÁhhhhchhdhhhhhhchhdhhhdhhhhhhhfhhhdhhhdhdhhhhcfhhhdhchdhhhfhdhhhhchhhchhhchhdhhhdhdhhhdhhhhhhchhchhgfhhhdhdhhhfhhhchhgfhhhdhhhhhdhhhhdhhhfhhhfhhhchhhhdhhdhhhhhdhhhfhhhchhhhchhhhfhchdhhhfhhhfhhhhhhhfhhhfhhhdhhhfhhhfhhhdhfhgfhhdhhhhhfhhhfhhhhhhdhhhchhchdhhhfhhhhhchhhchhhhhchhdhhhdhhhhhhhhhhhfhhhdhhhhhhcdhhhhchchhdhhhhhdhhchhhchhhchhdhhhdhhhhhdhhhfhhchhchhchhdhhhdhhhfhhhchhhdhhhdhhhhhhhhhdhhdhdhhhdhhhchhhdhhhhhdhhhfhhhdhhhchhfhhdhhhfhchdhhhhhfhhhhhhhhhfhhhdhdhhhfhhhdhhhhhfhhhchhgfhhhhhfhhhfhhhhhhchhhchhchdhhhchhhhhchhchhdhhhgfhhhdhhhhhhhdhhhfhhhfhhhdhhhhcfhhhhchchhdhhhfhhhhgfhhchhhchhhhfhhhhhdhhhfhhhhchhchhhdhhhdhhhfhhhdhhdhgfhhhfhhhhhhhhhdhhfhhhfhdhhhchhhchhhhhdhhhdhhhfhhhchhfhhdhhhhchchhfhhhdhdhhhfhhhdhdhhhhhhhfhdhhhhhhhfhhhdhhchhhhhhdhhhfhhhhhhchhhchhchdhhhdhhhhhchhchhhhhhchhhhdhhhhhhhhhhhhhhhfhhhdhhhhcdhhhhchchhdhdhdhhhhchhhchhhchhdhhhdhhhdhhhhhdhhdhhdhhchhdhhhfhhhfhhhchhhdhhhfhhhhhhhhhdhhhhdhhhhhchhdhhchhhhhdhfhdhhhfhhhchhhhchhhhhchchhdhhhfhhhfhhhdhhhfhhhfhhhdhhhfhhhfhhhdhhdhhdhfhhhhhfhhhhhhhhchhhchhchdhhhchhhhhchhchhhhhhchhfhhhdhfhhhdhhhdhhhdhhhdhhhhcdhhhhchchhdhhhdhhhchchhchhhchhfhhhfhhhdhhhfhhhhchhchhhdhhhdhhhdhgfhhchhchhhchchhhchdhhchgfhhhchhchchhhcchhdehchgfhhchhchhdhchhhchdhhchgfhhhhchgfhhhhchhchdhdhchhhhchchhchhchhhfhchhhhdhhhchhdhhfhhhdhdehchchgfhhhdhchhhdhdhhhfhhhchhhhcchhhfhchchhhdhhchhchfhhhchhfhhdhchchgfhchdhhdhhhchhhhdhdhhhhhhÁÄÄÄÍÑÑÑÑðÑÑððððÑÑÑÑðÑððÑÑÑÑóÑðÑïðÑððïóððóóóðóóóóóüóüóüúóóóóóððððÑÑÑÍÑÑÑÍÍÍÍÄÄÄÁÄÁÁhhhÁhhcccXbbbXXTTTT"TTTcdhhgfhhhfhchchhhhhhhchhdghggfhchgfhhfhhchchchfhchhfhchcdhhchhchchdghchchchghchhhdhhchchdhhhchhchchdhchhhchchhfhchcchdhhgdghchhchddhhdhhhchchdhhhchdhfhhchhchhhchchgfhhhchchchdgcdhchchcdhhchhhchchghcgdhchgfhchchhchchcchchchhhchddhchchchchdhhchcchdhhchdgdhdhchdhhddhhchdhchhhchdhhchhchhhcchchchchchhfhchhhhchhhhchchhhhhhchchhchchhhhfhhcfhchhhchccdhfhchhhhcdhdhchdhdhchchchchfhhhhcfhchhchchchdhchchfhchdhchchhhgfhchcchhcfhfhdhfhchchhchXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXÁÄÂÄÄÍÍÑÑðððÑðÑÑðÑÑðÑðÑÍðÑÑÑÍðððÑððÑóððóðòððóóðóóóðóóóóúóóóóóðððóÑÑððÑÑÍÍÍÄÄÄÄÄÄÁÁÄÄÁÁhhccccccbbXTXTXTTTM"T"XXXXXXXXXXXXXXXXXXXXXXXXXXX^XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXWXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTWTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTWTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTWTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTTTTXTXTTXTTXTXTXTTXTXTTXTXTTXTTXTTXTTXTXTXTTXTTXTTXTXTTXTXTXTTXTTXTXTXTXTTXTTXTTXTXTTXTXTXTTXTXTTXTTXTXTTTXTTXTTXXÁÁÁÄÍÍÍÑÑðððÑðÑÑðÑðÑÑðÑÑÑÑÑÑÑððÑÑðÑÑóðððððóðóðóóóóóüóúóóüóóóóóððððÑðÑÑÍÍÍÄÍÍÄÄÄÄÄÁÁÁÁÁÁchhccccXbXXXXTT"T"TTT""XTTXTXTXTXTXTXTTTTTXTTXTXTTTTXTXTTXTTXTTXTXTTXTTXTTXTTXTXTTXTTXTTXTXTTXTXTTXTTXTTVTXTXTTXTTXTTTXTXTTXTXTXTTXTXTTXTTVTXTTXTXTTXTTXTXTTXTXXTTXTXTTTTXTXTTXTXTTXTTXTTXTTTTTXTXTTXTTXTTXTTXTXTTXTTXTTXTXTTXTXTTXTTXTTXTXTXTTTXTTXTTXTXTTXTXTXTTXTXTTXTTXTXTTTXTTXTTXTXTTXTXTXTTXTXTTTXTXTTXTTXTTXTTXTTXTTTTTTTTTTTTTXTTTTTTXTTTTTTTXTTTTXTTTTTTTTTTTTTTTXTTTTTTTTTTTTTTXTTXTTTTTTTTTTTTTTTTTTTTTXTTXTTXTTTXTXTTTXTTXTTXTXTTXTTXTXTXTTTXTTXTTTXTXTTXTXTXTXTXTXTXTXTXTXXXXTXXTXTXTXTXTXXXXXXXXXXXXTXTXTXTXTXTXXXXXTXXTXXTXTXXTXTXTXXTXXXXXTXXTXTXTXXXTXTXTXTXTXWXXXXTXTXTXTXXTXTXXTXWXTXXTXXXXXTXTXTXTXTXTXUXTXTXTXXXTXTXTXXTXTXTXTXTXTXTXTXUXTXTXXXTXTXTXTXTXXTXTXTXTXTXXTXTXXXXXXXTXXTXXXTXTXXTXXXXTXTXTXTXTXWXTXXTXTXTXXTXXXXXTXTXTXXXTXTXXTXTXTXTXTXTXTXTXTXTXXXXXTXTXTXTXTXTXTXTXVXTXTXTXTXTXXXTXTXTXXTXVXTXXXXTXXTXTXXXXTXTXTXTXTXTXTXTXTXTXVXTXTXWXTXXXVXTXTXVXXXTXTXTXTXTXXTXTXXTXXXXXTXTXXXXXTXTXXTXTXXTXTXTXTXTXTXTXUXXXXXTXTXXXTXTXTXTXXXTXTXXXTXTXXTXTXTXTXTXTXXTXTXXTXXXXXTXXTXTXTXXXXXTXTXXXXTXTXTXXXXXTXTXTXTXTXXXXTXTXTXTXXTXUXTXTXTXTXTXTXWXTXTXTXTXTXTXTXUXTXTXTXTXVXTXTXXXXTXTXTXTXTXVXTXTXWXTXTXTXTXTXTXTXTXXXXXTXTXTXTXTXTXTXXXXTXTXTXXXXTXTXXTXTXUXXTXTXTXXXXXXXTXTXTXWXXXXXXXXXXXTXTXTXTXTXTXTXTXTXTXTXVXTXTXTXTXXTXXTXWXTXXTXXTXXTXTXTXTXTXXXTXTXTXVXTXTXTXTXTXTXTXTXTXXTXTXXTXXTXTXTXWXXXXXXXTXTXTXTXTXTXXXTXXXXXTXTXUXTXXXXTXTXTXXXXTXTXTXTXTXTXTXXTXXTXTXTXTXXTXTXTXTXTXTXTXTXTXTXTXTXXXXXTXTXTXXTXTXTXTXTXTXTXTXWXTXTXXXXXTXTXXTXTXXTXTXVXTXTXTXTXTXXXXXTXXXXXXXTXTXTXTXTXTXTXTXTXXTXVXTXXTXUXTXXXXTXTXVXTXTXTXWXXTXTXTXTXXXXXTXXXTXTXXXXXTXTXTXTXTXTXXXTXXTXTXXTXTXTXTXTXTXXXTXXTXTXTXXTXTXTXXXTXXTXXXXXXXXTXWXTXWXXTXXTXXTXVXTXTXTXXXXTXTXTXTXXXXXTXTXTXXTXTXTXTXTXTXTXVXXXTXTXTXTXXXTXTXTXTXVXTXTXTXTXTXTXTXXTXXTXTXXXTXXXXXXXXTXVXTXTXXXTXTXXTXTXTXTXXTXXTXXXXXTXXTXTXXTXXXTXTXTXXXXTXTXUXTXTXTXTXTXTXTXTXVXTXTXTXXXXXTXTXTXTXTXTXTXXXXhÁÁÄÍÑÍÍÑðÑðððÑððððÑððððÑÑÑÑÑÑðÑÑððððððððððóóóóóóóóüóóóóüüüóóóóððÑÑÑÑÍÍÍÍÍÍÄÄÄÄÁÁÁÁÁhhÁhhcccXcXXXXXTTTT"T"TTTTMXXXXTXTXTXTXTXTXXTXTXXXXTXTXTXXXXXTXTTXTXXVXTXTXTXTXTXXXXTXXXXXXVXXXXXXXTXXXXXXTXXXXXXXVTXTXXXTXTXTXXXTXTXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXTXXXXXXXXXXXTXXXXXXXXXXXXXXTXXXXXVXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXTXXXXTXXXTXXXTXXXXXXXXXXXXXXXXXXXXTXTXXXXXXXXXXTXXXTXXXXXXXXXXXXXXXXXXXXXXXWXXXXXXXXXXTXXXXTXXXXXXXXXXTXXXXXXXXXXXXTXXTXXXTXTXXXTXXTXXTXTXXTXXTXTXTXXXTTXTXTXTXTXXTXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXTXXXTXXXTXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXVXTXXXXXXXXXXTXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXTXXXXXXTXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXTXTXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXTXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXTXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXTXXXXXXXXXTXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXTXXXXXXTXXXXXXXXXTXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXTXXXXXXXXTXXXXXXXXXXXXXXXXXXXXTXXTXXXXXXXXXXXTXXXTXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXTXXXXXXXXXXXXXTXXXWXTXXXXXXXXXXTXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXVXXXTXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXTXXXXXXXTXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXTXXXVXXXXXXXXXXXXXTXXXXXXXTXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXTXXTXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXTXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWXTXXXXXXXXXXXXXXXXXTchÄÁÍÄÍÍÑððððððððÑðððÑÑððÑÑÑÑððÑðÑððððððððóðóðóðóóðóóóóüóóóóüóððððÑÑðÑÑÑÍÍÍÍÍÍÄÄÄÁÄÁÁhhhhhhhccccXXXXTXTTTMM"TT"WTXXXXXXXXXXXXXXXXXXXTXXXXXXXWXTXXXXXXXXTXXXXXXXXXXXXTXXVXTXVXTXXXTXXTXXXTXXTXXXTXXTXTXXXXXTXXXXXXXTXXXXXXTXXXTXTXTXXTXXTXXTXTXTXXTXXTXVXXTXWXTXTXTXTXXTXXXTXTXTXTXTXTXXXTXXTXXTXVXTXXTXXTXXTXXTXXTXTXXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXXWXTXXTXTXXTXXUXTXXTXTXWXTXWXTXXTXVXTXXWXTXWXTXWXTXWXTXXTXTXTXTXTXXTXXTXVXXXXXTXTXXTXXXXTXXXTXXTXXTXTXTXTXTXXTXXTXXTXTXTXXTXWXTXXWXTXWXTXXTXWXTXTXTXTXTXTXTXTXTXWXTXWXTXXTXXWXTXWXTXWXTXTXTXWXXTXXXXWXTXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXchÁÄÄÄÍÑÑÑððÑðððÑÑÑððÍðÑÑðÑÑÑðÑÑÑðððóðððððòðóðóðóðóóóüóóüóóóóððððððÑÑÑÑÍÍÍÍÍÍÄÄÁÄÁÁÁÁÁhhhchcccXXXXXXTTTT"TTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXÁÄÁÄÍÍÑÑÑÑððÑðÑðÑÑÑÑÑðÑÑÑÑÑÑðÑðððÑððððóðóððóóóóóðóüüóúóüüóóðóóóððððÑÑÑÍÍÍÍÍÄÍÄÄÄÄÁÁÁÁÁhhhccccccXXXXVTTTT::TT"TXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXbXXXXbXXXbXbXXXXXXXXXXbXXbXXXXbbXXXXXXbXXbXbXXXXXXXXXXXbXXXXbXXXXbXXXXXXbXXbbVXXbXbbXXbXbXXXXbXXXbXXXbXXXXXbXXbXXXbXbXXXXXXXXXbXXXbXXXbXXXXbXXXbXXXXbXXXbXXXbXXXXXXbXXbXXXXbXXXbXXXXXXXbXXXbXXXbXbXbXXXXXXXbXXXXbXXbXXXbXbXbXXXXXXXXbXXbXXbXbXXbXXXXbXXXbXXbXXbbXXXXXXXXbXXbXXbXXXbXbXXXbXXXbXXXXXbXXbXbXXXXXXXbXXbXXXbXbXXXXXbXXXbXXXXXXXXXXXXXXXbXbXXbXXXbXXbXXXXbXXXbXXXbXXbbXbXXbXXXXXbXbXXbXXbXXXXXbXXXbXXbXXXXXXXXXbXXXbXXXXbXXXbXXXbXXXXbXXXXXXXbXbXXbXXbXbXXbXXbXXXbXXXbXbXbXbXXXXbXbXXXXXXXXXXbXXXbXXbXXXXXbXbXXbXbXbXbXXXbXXXbXbXXbXXXXXXbXXbXbXXXXbXXXXbXXXbXXXbXXXbXXXXbXXbbXXXbXXXbXXXXXbXXbXXbXXXbXXXbXXXXbXXXXXXXXXXXXXXbXXbXbXXXbXXXbXXbXXXXXXXbXXXbXXXbXXXXbXXXXbXbXXXbXXXXbXbXbXbXbXXXbXXbXXXXbXXbXXXbXXbXXXbXbXXbXXbXXXXbXXbXXXXbXXXXXXXbXXXbXXXXbXXbXXXXXXXbXXXXbXXXXXXXXXXXbXbbXXXXbXXbXXbXXbXbXXbXbXXXbXbXbXXbXXXXXbXXbXXbXXXXbXXbXXbXXXbXbXXXXXbXbXXbXXbXXXXbXbXbXXXbXXXbXXXbXXXbXXXbXXbXXXXXXXXXbXXXXXbXXXbbXXbXbXXXXXbXXXXbXXbXbXXbXXXbXXbXXXXbXXXXXXbXXXXXXXXXXbXXbXbXXbXXbXbXXXXXbXXXXXbXbXXXXXXbXXXXbXbXbXbXXXXbXXbXbXXXXXXXbXXXXXbXXXXbXXbXXXXXXbXXXXXXXXbXbXXbXXbXXbXbXXbXXXXXXXbXXXbXXXXbXXXbXXXbXXbXXXXbXXXbXXXXXXbXbXXXXbXXXXXXbXXXbXXXbXXXXXbXbXXXXbXXXXbXbXXXbXXXXbXXXbXXbXXXXXXbXXbXXXXXXXbXXXXXXXXXbXXbXXXXXXbbXXbXXXbXbXXXXbXbXXbXXXXbXXXXbXbXbXXbXbXXXXXXXbXbXbXXbXXbXXbXXXXXbXXbXXXXXXXbXXbXbXXbXXbXXXbXXXbXXXXbXXbXbXXXXXXXXXXbXXXXbXXbXXXbXbXXbXXXbXXbXXbXXXXXXchÁÄÄÍÍÑÑÑÑðððÑðÑðððÑÑðÑÑÑÑÑðÑÑÑÑÑðððÑðððóððóðóðóóóóóóúóóüóüóóððððÑððÑÍÍÑÍÍÄÍÄÄÄÄÁÁÁÁÁÁhhcccccXcXXXXTTTTTTTTTXXXbXXbXbXbXXbXXXXbXXXXbXbbXXbXXXXbXXbXXXXXXbXXXXXbXXXXbXXbXbXXXXXXbXXXXXXbXXXbXXbXbXXXXXbXXXXbXXXXXXXbXXbXXXbXbXXXXXbXXXXbXXXXbXXXXXXXXbXXXXXXXXbXXbXXXbXbXbXXbXXbXXbXXXXbXXXbXXXXXXbXXXXbXXbXXXXbXXbXXXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXbXXXXXXXXXXXbXXXXXbXXXXXXXXXbXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXbXXXXbXbXXbXXXbbXXbXXbXbXXXbXXbXXXXbXXXbXXXXXXXbXbXbXXXbXXXXXXXbXbXbXbXXXbXXXXXXbXbXXXXXXXXXXbXbXbXbXbXbXXXbXXXXXXXbXXXXXXbXbXXbXXbXbXXXXXbXXXbXbXXXbXbXbXbXbXbXXXXbXXbXXbXXbXXbXXbXXXXbXXXXXXXbXbXXXXbXXbXbXXXXXbXXXXbXbXXbXXXXXXbXbXbXbXXXXXXXXXbXXbXXXXXbXbXXXXXXbXXbXXbXXXXXXXXXXbXXbXbXbXbXXXbXXXXXXXXXXXXbXXbXXXXXXbXXXXbXbXXbXXXbXXbXbXXbXXbXXXXXXXbXXbXXXXXXbXXbXXXbXXXXXXXXXXXXXXbXXXXXXXbXXXbXXbXXbXXXXXbXXbXbXXXXXbXbXXbXXbXbXXbXbXXbXXbXXXXbXXXXXXbXXXbXXXbXXXXXXXXbXXXXXbXbXbbXbXXXXXXbXbXbXXXbXXXXXXXXbXbXXXXXXXXXXbXXXXXXbXXXXXXbXXbXbXXXXXXXXbXXXbXXXXXbXXbXbXbXbXXbXbXXXXXXXXXbXbXXXbXXXXXXXXXbXbXXXXXXbXXXXXbXXXbXbXbXbXXXbXXXXXXXbXXbXbXXXXbXXXXXXXXXXXXbXXXXXbXXbXXbXXXXXbXXXXXXXXXXbXbXXbXXXbXXXXbXXXbXXXbXXXXXXXbXXbXXbXXXXXXbXbXXXbXbXXbXXXbXXbXbXXXXXbXXbXXXXbXXXXbXXXbXXbXXXXXXXbXXXXXbXXbXXXXXXXXXXbXXXXXXXXXbXbXbXXbXXXXXXbXXXXbXXXbXXXXXXXbXbXXXbXXXXXXbXbXXXXXXXbXXXXXbXXbXbXXbXXXXXXXXbXXXbXXbXbXXbXXbXXXXXXbXbXbXXXXXbXXXbXXXbXXbXXXXXbXbXXbXbXXXXXbXXXXbXbXXbXbXXXbXXXbXXXXXbXXXXXbXXXXXXbXbXXbXXbXXXXbXXXXXbXXXXXXXXbXXXbXXbXXbXXbXbXXbXXXXbXbXXXbXbXXbXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXbXbXXXXXXXXbXbXXbXXXXXXXXbXXbXbXXXXbXbXXbXXbXXXbXXXbXXbXbXXXXXXbXXXXXXXXXXXbXXXbXbXXbXXbXbXXXbXXXXXXXbXXbXXXbXXbXXbXXbXXXXbXbXXXXXXXbXXXbXXbXbXXXbXXbXXXXXXbXXbXXXXXbXXXXXXbXXXXXXXXXbXXXXXXXXXbXXXXXXXbXXXXXbXXXXXbXXXXXXXbXbXXbXbXXXXXXXXbXXbXbXbXXXbXXXbXXbXXXXXXXbXXbXXbXXbXXbXbXXchÁÄÄÄÍÍÑðÑðððÑðÑððððÑÑÑÑÑÑÑðÍðÑÑÑðððÑðÑððððóðóóðóóóóóóóüüóúóóóððððÑðÑÑÑÍÍÍÄÍÄÄÄÄÄÁÁÁÁhhhhhhcccXbXXXXTTTTT"XbXXbXXXXbXXXXXbXXXbXXbXXXXXbXXbXXXXXXXXXXbXXXbXXXXXXXXXXXbXXXbXXbXbXXbXXXXbXbXXbXbXXXbXXXbXbXXXXXXbXXbXXXXXXbXXXXbXbXXbXXbXXbXbXXbXXbbXXXbXbXXbXXbXXbXXXXXXXXXbXXXXXXXbbXXXXXXXbXXbXXXXbXXbXXXbXXXXXXXXbXXbXXbXbXXbXXXXbXbXXbXXbXXbXXbXXXXbXXXXXXXXbXXbXXbXXbXXXXbXbXXXXXbXXXXXXbXbXbXbXbXbXXXbXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXbXXbXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXbXXXXXXXXXXbbXbXbXbXXXXXXXXXXXbXXbXXXbXbXbXXbXXXXXXbXXXXXbXXXXXXXXXbXXbXXbXXXXXXbXXXbXXXXbXXXXXXbXbXbXbXXXbXXXXXbXXXbXXbXXbXXbXXbXbXXbXXXXXXXXXXXXXXXbXbXbXXXXXXXbXXXbXXXbXXXbXbXXXXXXXXXXXXbXXXXXbXXXbXXbbXXXXbXbXbXXXXXbXbXbXbXbXXXXbXXbXbXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXbXXXXXXbXbXbXbXXbXXbbXbXbXXXbXXXbXXbXXXbXXXbXbXbXXXXbXXcXXbXbXXXXXXXXXXXXbXXXXXXXXXXXbXXbXbXbXbXbXXXbXXXXXXXXbXXbXXXXbXXbXbXXbXXXXXXXXXXXbXXbXXXXbXXbXXXbXbXXbXXXXbXXXXXXXXXXXXXXXXXXbXXXbXXbXXXbXbXbXbXXbXXXbXXXbXbXbXXXXXXbXbXbXXXXXXXXXXXXbXXbXXbXXXXXbXXXbXbXXXXbXXXbXXXbXXXXXXXXXXXbXXXbXXXbXXbXXXbXXbXXXbXXXXXXXXXbXXXbXXbXXXXbXXXbXXXbXXXXXXXbXXbXXbXbXXXbXXXXXXXXXXXXXXXbXbXXXXXXXXXbXXXXbXXXbXXbXXXXXbXXbXXbXXXXXXbXXXXbXXXbXbXXXbXbXXbXXXXbXXXbXXXbXXXXbXXbXXXXXXXXXXXbXXbXXXXbXXXbXbXbXXXbXXXXbXXbXXXXXXbXXXXXXXXbXXXXbXXXXbXXXXXbXXXbXXbXbXXXXXbXXXXbXXXbXbXXbXXXbXXXbXXXbXXbXXXbXXXXbXXbXXXXXXXXXXXbXXbXXXXbXXXbXXbXbXXXXXXXXXXXbXXbXXbXXbXbXXXXXXXXXXXXXXbXXbXXXXXbXXbXbXbXXbXXbXbXXXbXXXXXXXXXXXbXXXXXbXXXXXbXXbXbXbXbbXbXbXbXXbXXbXXbXXXXbXXXXXXbXbXbXXbXbXbXXXXbXXbXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXXbXbXXXbXXXbXXXbXXbXXbXbXXXXXbXbbXbXXXbbXXXbXXXbXXXbXXXbXXXbXXbXbXbXXXXXXXXbXXXXXXXXXXXXXXbXXXbXXXXbXbXbXXbXXXbXXXXXXXXXXXXbXXXXXbXbXXXXbXbXXXXbXXbXXXXbXXXXXXbXXbXbXXbXXXXbXXXbXbXbXXXbXXXbXXbXbXbXXXXbXbXbXXbXXXXXXXXbXXbXXbXbXXXbXXbXXXbXXXbXbXbXbXbbXXXXXXbXXXXXXbXbXXXXXbXXXXXXXbXXXXXXXbXbXXbXXXbXXbXbXbXXXbXXXXchÄÄÄÍÍÍÑÑðððÑÑððÑÑððÑÑÑðÑðÑÑÑððÑððððððððóòóóóðóðóóóóóóóüóóóóóóðððÑÑÑÑÑÍÍÑÍÍÄÍÄÄÄÁÁÁÁhhÁhhcccccXXXXTTTTTT"TTTTXXXXbXXbXXbXbXXXXbXbXbXbXbXbXbXXXbXXbXXbXbXXbXXXXbXXXbXXXXXXXbXXXXXXXbXXXbXXXbXXbXXXbXXbXXXXXXXbXbXXXXXXbXXcXXbXbXXXXXXXXXXXXbXXXbXXbXXXbXbXXXXXXXXXXXXXbXXXbXXXXbXXbXXXXXXXbXXXXXXXXbXXXXXXbXbXXbXXbXXbXbXbXXbXXXbXXbXXXXXXXXXXXXXbXXXXXbXXXbXXbbXXbXbXXbXXXXXXbXXXXbXbXbXXXbXXXbXXXXXbXXXbXXbXXbXXbXXbXbXXbXXXXXXXXXXXbXXXbXbXXXXXXXXbXbXXbXbXbXbbXbXbXbXXXXXXXXbXbXbXbXXXXXXbXXXXbXbXXbXbXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXXbXXXXXbXXbXXXXXXXXbXXXbXXXbXXXXbXbXbXXbXXXXXXXbXXXXXXXXbXXbXXbXbXbXbXbXbXXbXbXbXbXXbXXXbXbXbXbXbXbXbXbXXbXXXXXXXXbXXXXXXbXXbXXXXbXbXbXbXXXbXbXbXbXbXbXbXbXbXbXbXXXbXXXbXXXbXXXXbXXXXXXXbXXXXXbXbXXbXXbXbXXXbXXXXXXXXbXXbXbXXbXXbXXXXbXXXbXXXXXbXXbXXbXbXbXbXbXbXbXbXbXXXbXXbXXbXXXXXXXbXbXbXbXbXXXXbXXXbXXbXXXXbXXXXXXXbXXbXXXbXXXbXXXXXXXbXXbXXXbXXbXXXbXXXbXXbXXXXbXXbXXXXXXXXbXbXXXXXXXbXbXbXbXbXXbXXXXXbXbXXXXbXXXXbXXXbXbXbXXXbXXXbXXXbXXbXXXXXXXXbXXXXbXXXbXXXbXXbXbXbXbXbXXXbXbXbXbXXXbXXbXXbXXXbXXXXXXXbXXXXXXXXbXbXbXbXbXbXbXXbXXXXXbXXbXbXbXbXbXXXbXXXXXXbXXbXbXbXbXbXbXbXbXbXXbXXXbXbXXXbXbXbXXbXbXbXbXXXbXXXXXbXXXbXbXXXbXXbXXXbXXXXXXbXbXXbXXbXXbXbXbXbXXXbXXXXXXXbXXbXXbXbXXbXXXXXbXbXXbXbXXXbXbXbXbXXXXbXXXXXbXXbXXXbXXXbXXXbXXbXXXbXXXXXXXbXXXbXXXbXXXXXbXXXXXbXbXXXXX^XXXbXXbXXXXXXXXXXXXXXbXbXbXXbXbXbXXbXXXXXbXbXXbXbXbXbXbXbXbXXXXbXXXXXbXXbXXXbXXXbXXXbXXXbXXbXXXXbXXXbXbXXbXXbXXXbXXXXXXXbXXXXXXXXXXXbXXXXbXbXbXbXbXbXbXXbXXXbXXbXbXbXXbXbXXXbXXXbXXbXXXXbXXXXXbXbXbXbXXXbXXXXXbXXbXXXXXXXXXXbXbXbXbXbXXXbXXbXbXXbXXXXXXXXbXXXbXXbXXXXbXXXbXXbXbXXbXXXbXbXbXbXXXXXXbXbXbXbXXXXXXXbXXXbXXbXXbXXXXXbXXXXXbXbXbXbXbXbXbXbXbXbXbXXXbXXXbXXXbXXXXXbXXXbXXXXXXbXbXXXbXXXXXXXXXXXXXbXXbXXXbXXXXXXXXbXXXXXXbXXXXXXXbXXXXXbXXXXXXXXXXXXXbXXXXXXbXXbXbXbXXXbXbXbXbXbXbXXXbXXXbXXXXXXXXXXbXXbXXXXXXXXbXXXXXXXXXXXXXXbXbXXbXXXbXXXXbXbXXbXbXbXbXXbXbXbXXbXbXbXXbXbXbXbXbXXXXXXbXXbXbXXXbXbXXXXXX^¹ÂÄÍÄÍÍÑðÑððððððÑÑÑðððÑÑÑðÑÑÑÑðÑðÑððÑððïóðóúðóóóóóóóóóóüóóóóóóóððððÑÑÑÑÍÍÍÍÍÍÄÁÄÁÄÁÁÁhhhhhccXccXXXXXXTTT:TT:XXbXXbXbXbXXXbXbXXbXXXbXXbXXXbXXXXXXXXXbXXXXXXXXbXXbXXbXbXXbXXXbXXXXXXXbXXXbXXbXbXbXbXXXXbXXbXbXXbXXbXXXXXXXXbXXbXXXbXXXbXXXXXXXXXXXXXXXXXXXbXXbXXXbXXXXXXbXXXbXXXXXXbXbXbXXXbXXXXbXXXXbXbXbXXbXbXXXbXXXXbXXbXbXbXbXbXXXbXXXbXXXbXXXXbXXXXXXXbXXXXXbXXXbXbXbXbXbXXXbXXbXXbXbXbXbXbXbXbXbXbXbXXbXXXXXXXXbXXXXXXbXXbXXXXbXXbXbXXbXbXbXbXXbXXbXbXXXbXXXXXbXXXbXbXbXbXbXXXbXXXbXbXXXbXXXbXXbXbXXbXXbXbXbXbXbXXXbXXXbXXbXXbXbXbXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXchÁÁÄÄÍÑÍðÑÑððððððÑÑÑðÑÑðÑðÑÑðÑðÑðððððððððððóðóóðóóóüóóóóóóóóðððððÑðÑÑÑÑÍÍÄÍÍÄÍÄÄÄÁÁÄÁÁhhchccccccXXTXTTTTTTTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcÁÁÄÄÍÍÍÑÑððÑðððÑðÑððÑÑðÑÑÑðÑðÑÑÑðððÑððððððïóóóóóðóóüóóóóóóóóóóððððÑÑÑÑÍÑÍÍÍÄÍÄÄÄÄÁÄÁÁhhchchcccXXXXXXVT"TTTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcXc^cXdcXcXcXcXcXcXcXcXcXcXXcXcXcXcXcXcXcXcXcbc^cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXccXcXcXcXcXcXccXccXcXcXcXcXXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXccXcXcXcXccXcXcXcXcXcXcXccXcXXXcXcXXcXcXcXcXcXcXcXcXcXccXcXcXcXcbcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXccXcXcXcXccXcXcXcXcXcXcXccXcXcXcXcXXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXccXcXcXcXcXcXcXcXccXcXcXcXc^ccXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXccXcXcXXcXXcXcXcXccXcXcXcXccXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXccXcXcXcXcXccXcXccXcXXcXcXXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXccXcXcXcXcXcXcXccXcXcXcXcXXcXcXcXcXcXcXcXcXcXcebcXcbc^cXcXcXcXcXcXc\dXcXcXcXcXcXcXc\cXcXcXcXcXcXcXcXcXcXcXcXcXcXXcXcXcXccXcXcXcXcXcXcXcXcXcXccXccXcXcXcXcXXcXcbcXcXcXcXcXcXcXccXcXcXcXcXcXcXccXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXXcXccXXcXfXcXcXcXcXcXcXcXcXcXcXcbcXcXcXcbcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXccXcXccXcXcXcXcXcXcXcXcXcXc\cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcchÁÁÄÍÑÍÑÑðÑÑððððÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑððððÑóðóðððóóðóóðóóóóóóüüóóóóóððððÑÑÑÍÑÑÍÍÍÄÄÄÄÄÁÁÁÁÁhhhhhcccbXXXXXTTTTTTTTTcXcXcXcXcXccXcXcXccXcXcXcXcXcXccXccXcXcXcXcXXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXXcXcXcXc\dXcXcXcXccXcXcXcXc^cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcbcXcXccXcXcXccXcXcXcXcXcXccXccXcXcXcXcXXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcc^cXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXccXcXcXcXcXcXccXccXcXcXcXcXcXcXhÁ¹Á•¹�•Á„ÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁhÁhÁÁhÁhÁÁÁÁhÁÁ¹ÁhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁhÁ„ÁÁÁhÁÁhÁÁhÁÁ•ÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhhÁhÁhÁhÁÁhÁÁhÁÁÁhÁÁhÁÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhÁhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁhÁ„ÁÁhÁÁhhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁhÁhÁhhhÁhÁhÁÁÁhÁhÁÁÁ•ÁÁ�ÁÁÁhÁhÁhÁhÁhÁhÁÁhhÁÁhÁhÁ•ÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁÁÁhÁhÁÁhÁÁhhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁhÁhhhÁ�Á•ÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁhÁhÁÁhhÁÁhÁhÁhÁÁÁhhÁÁÁÁÁÁÁÁÁÂÁÁÁÁÁ•ÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁhhhÁhÁ¹ÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁhÁÁ•ÁhhÁÁhhÁÁhÁhÁhÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁhÁÁhÁÁÁ•ÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁ�ÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁhhhÁhÁhÁÁhÁhÁÁÁÁhÁÁhÁÁÁhÁhÁhÁhhÁhÁÁÁhhÁÁhÁhhÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁhÁhÁhhÁhÁÁhÁÁhÁhÁÁÁÁhÁÁhÁÁÁhÁhÁhÁhhÁhÁÁÁhhÁÁhÁhhÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁ•ÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhhÁhÁhÁhÁÁÁ¹ÁhÁÁÁ¹ÁÁhÁÁhÁÁÁhÁÁh¹ÁhÁhÁhÁÁhÁhÁ•ÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhhÁÁÁhÁÁhÁÁ•ÁÁ•ÁÁÁÁhÁ•ÁÁhÁÁÁhÁÁÁÁÁÁÁ¾hÁhÁÁhhÁhÁhÁhÁÁÁhÁhÁÁÁhÁÁ•ÁÁÁhÁhhÁÁhÁhÁ•ÁhÁhÁÁhÁ•ÁhÁÁÁÁ•ÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁ•ÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁhhÁÁÁhÁÁhÁÁ•ÁÁhÁÁÁÁhÁ•ÁÁhÁÁÁÁhÁÁÁÁÁÁÁhhhÁÁ¹hÁ•ÁhÁhÁÁÁÁÁhÁÁÁ•ÁÁhÁÁ�ÁÁÁhÁhÁ�ÁÁhÁÁhhÁÁhÁhhÁÁÁÁh•ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁ•ÁhÁÁhhÁhÁhÁhÁÁÁÁÁhÁÁÁhÁÁ¹ÁÁÁhÁhÁhÁhÁhÁhÁÁhhÁÁ•ÁhÁhÁÁÁhhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁhÁÁÁÁÄÄÄÍÑÑÑððððÑÑðÑðÑððÑÑÑðÑÑÑÑÑðÑÑðïððððóóóóðóóóóðóóóóóüüüüúóóðððððÑÑÑÍÍÍÍÍÍÄÍÄÄÄÄÁÁÁÁhhhhhhcccbXXXVXTTTTTTTT"hÁhÁhÁÁhÁÁhhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁ„ÁhÁÁÁÁÁÁÁ•ÁÁhÁ„hhÁhÁhÁÁÁÁÁhÁÁÁ•ÁÁhÁÁÁhÁhÁhÁhÁhÁhÁÁhhÁÁhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁ„hÁÁ¹hÁhÁhÁhÁÁhÁÁhÁÁùÁÁhÁÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhÁhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁhÁ�ÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁ•ÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhhÁhÁhÁhÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁhÁhÁ•¹hÁhÁÁhhÁÁhÁhÁhÁÁÁhhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁ¹ÁÁÁÁhÁÁÁÁhÁÁhÁhÁhhhÁhÁÁhÁ•hÁh•hÁ¹•ÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhhÁhhÁhÁhÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁh¹ÃÁÁhÁÁ¹ÃhÁ¹ÁhhÁhÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁhÁÁhÁÁÁÁhÁÁÁ„ÁÁÁhÁ•Á¹•hÁhÁÁhÁhÁhÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhhÁhÁhÁhÁÁhÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁhÁ•ÁhhÁhÁhÁhÁÁ„ÁÁÁÁÁÁÁhhhhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁ¹Á„¹•ÁhÁÁhÁ•ÁhÁhÁhÁhÁÁÁhÁÁhÁÁ¹ÁhÁhÁ„ÁÁhhhÁhÁhÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhÁÁÁhÁÁhÁhÁhÁ¹•ÁhÁhÁhÁÁhÁÁÁÁÁÁ„Á¹•hÁÁÁhÁÁhÁÁÁÁ¹ÁÁÁÁÁÁÁ¹ÁhÁhhhÁhhÁhÁhÁhÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhhÁ�¹ÁhÁhÁ¹ÁhÁÁ•ÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁhÁÁ•ÁhÁhÁhhÁ„ÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁhÁÁhÁÁÁÁ�ÁÁÁÁhÁÁ•ÁhÁhhhÁhhÁhÁÁhÁ¹•ÁhÁ•ÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁ„¹•ÁhhÁhÁhÁhÁ¹ÁÁhÁÁÁhÁÁÁhÁÁÁÁ„ÁÁhÁhÁ¹ÁÁÁÁhÁhÁhÁhhÁhÁhÁ¹ÁÁ„ÁÁÁÁÁÁhÁ•hhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁhhÁhÁÁhÁhÁhÁhhÁhhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhhÁhhÁÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁÁhÁhÁÁhhÁÁÁhÁÁhÁhÁhÁhhÁhhÁÁhÁÁhÁÁÁÁÁÁÁh„¹•ÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁÁhÁÁhÁhhÁhÁÁhÁhÁhÁhhÁhhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhhÁhhÁÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁÁ�Á¹ÁÁhhÁÁÁhÁÁhÁhÁhÁhhÁhÁhÁhÁÁhÁÁhÁÁÁÁ„¹•hÁÁÁhÁhÁÁÁÁÁ•ÁÁÁÁ�ÁÁhÁ�Á¹•hÁhhÁhÁhÁhÁ�ÁhÁhÁÁÁhÁÁhÁÁÁ¹ÁÁ•ÁhÁÁhhhÁ�¹ÂhÁ•ÁhÁhÁÁÁhÁÁ•ÁÁÁhÁÁÁÁhÁÁÁhhÁhÁÁÁÁhÁ¹ÁhÁ¹•ÁhÁ¹Á„ÁÁ•ÁÁhÁÁÁÁh•„hÁÁÁ�Á•ÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁ¹•¹Á„ÁÁhÁhÁhÁhÁ¹ÁhÁÁÁhÁÁ¹ÁÁÁhÁÁ¹Á•ÁÁhh„Á�Á•ÁhÁhÁÁ¹ÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhÁhÁÁÁÁhÁ¹ÁhÁhhÁhÁ¹ÁhÁÁ�ÁÁÁÁÁÁhÁh•ÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁhÁÁ�Á¹Ã�Á„Á¹•ÁhÁÁ•h¹•ÁhÁhÁÁÁhÁÁ•ÁÁÁhÁÁ¹Á�ÁÁhhhÁhhÁ•ÁhÁhÁhÁÁÁhÁÁhÁÁÁÁÁÁÁhÁ•ÁÁhhÁ„ÁÁÁÁ•ÁhÁhÁhhÁhÁhÁhÁÁ•ÁÁÁÁÁÁ•hhh¹ÁÁÁhÁ•ÁÁÁÁÁhÁÁÁÁhÁÁhÁ�Á•„�ÁhÁÁhÁhÁhÁhÁhÁ•ÁÁÁ¹ÁÁhÁÁÁhÁÁhÁhÁ¾Á•hÁhhÁ•ÁhÁÁÁhÁÁ•ÁÁÁhÁÄÁÄÍÍÍÑÑÑðððÑððÑðÑÑðÑÑÑðÍÑÑÑðÑÑÑðððóïðóððóðòóóóóóüüóúüüóóóóðóðððððÑÑÑÑÍÍÍÄÍÄÄÄÄÄÁÁÁhhhhchccccbbXXXTTTTT:TTTM"ThÁÁÁhÁÁÁÁhÁÁÁhhÁÁÁhÁÁhÁhÁhÁh„ÁhÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁ•ÁÁhÁÁÁÁ•ÁÁÁÁ�ÁÁ•Á¹Á•hhÁhÁÁhÁ•ÁhÁhÁhÁhÁÁÁhÁÁhÁÁhÁhÁhÁ„ÁÁhhhÁhÁhÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁ¹ÃÁÁÁÁÁhÁhÁhÁhhÁhÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁ„ÁÁhÁÁÁÁhÁÁÁ�ÁÁÁhÁ�Á¹•hÁhÁÁhÁhÁhÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhhÁhÁhÁhÁÁhÁhÁÁhÁÁÁhÁÁÁhÁÁÁ�ÁhÁÁh¹ÃÁÁhÁÁ¹ÃhÁ¹ÁhhÁhÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁhÁhhhÁ•ÁÁhÁhÁ�ÁhÁhÁhÁÁÁhÁÁ„ÁÁÁhÁÁhÁhÁÁÁhhÁh�ÁhÁhÁhÁhÁÁÁhÁÁ¹ÁÁÁÁhÁÁhÁhÁÁhhÁhÁhÁÁÁhhÁhÁhÁhÁhÁÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁÁ„ÁhÁ¹ÁhhÁÁÁÁÁÁhÁhhÁhÁhhÁhÁÁ¹hÁ•¹Á„Á•ÁÁÁh¾„ÁhÁhÁhhÁÁÁÁhÁÁÁ•¹„ÁhÁhÁhÁÁÁ„ÁÁÁÁhÁhÁÁÁhhÁÁ•ÁÁÁ�ÁhÁÁhÁ�ÁhÁ„ÁhÁÁÁÁhÁ•ÁÁhÁhÁÁÁÁÁ„hhhÁÁÁÁhÁhÁÁhÁhhÂÁÁÁÁÁhÁ¹„ÁhÁ•hÁhÁÁhhÁhhÁhÁhÁÁÁhÁhÁhÁhÁ¹„ÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁÁhÁhÁÁÁhÁhÁÁÁ¹•ÁÁ•ÁÁÁ•ÁhÁÁ„ÁhÁhÁ¹Á�ÁÁÁÁhÁ•ÁÁÁhÁ„ÁÁÁhhhhhÁÁÁÁhÁÁ•ÁhÁhhÁÁÁÁÁÁhÁ„hÁhÁh„ÁhÁÁ¹hÁ•hÁhÁhÁÁÁhÁhÁÁ�ÁÁhhÁÁÁÁhÁÂÁhhÁhÁhÁÁhÁhÁÁ•ÁÁÁhÁhÁÁÁhhÁÁhÁÁÁhÁhÁÁhÁhÁhÁhÁ�ÁÁÁÁhÁ•ÁÁhhÁÁÁÁÁÁ�hhhÁ¹ÁÁÁÁÁhÁ¹Á„hÁÁÁÁÁÁ„Á•hÁhÁ•hÁÁhÁhhÁhhÁhÁhÁÁÁhÁhÁÁ„ÁhhhÁÁÁÁhÁÁÁ•¹ÁÁhÁ•Á„ÁÁ„Á¹ÁÁÁ•ÁhÁÁÁhhÁÁhÁÁÁhÁhÁÁ••¹ÁhÁhÁhÁÁÁÁhÁhÁÁhhÁÁÁÁÁÁhhhhÁÁÁ¹ÁÁhÁh¹„ÁÁÁÁÁÁ¹Áh•ÁhÁhÁhÁhÁhhÁ�hÁhÁ¹ÁÁÁÁÁhÁÁhÁhhhÁÁÁÁ¹ÁÁÁ„hÁÁhÁ•ÁhÁÁ„ÁhÁÁÁhÁhÁÁÁ•¹ÁÁhÁÁÁhÁ„ÁÁ„ÁhÁhÁhÁhÁÁÁÁhÁ„ÁÁ•¹ÁÁÁhÁÁ•¹h•ÁÁÁÁhÁÁhÁhÁhhÁÁÁÁÁÁÁhÁhÁhÁhhÁhÁÁhhÁhhÁhÁhÁÁÁÁÁhÁhÁÁhhhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhÁÁhÁÁ•¹ÁÁhÁhhÁÁhÁÁÁhÁÁhÁhÁhÁhÁhÁhÁÁhÁÁÁhÁÁ•hÁÁÂÁÁhhhÁhÁÁÁÁhÁÁhÁÁÁhhÁÁÁÁÁÁÁhÁhÁhÁhhÁhÁÁhhÁhhÁhÁhÁÁÁÁÁ•ÁhÁÁhhhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhÁÁhÁÁhhÁÁhÁ•¹ÁÁhÁÁÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁhÁ•ÁÁhhÁÁÁÁ¹h„ÁhÁÁÁÁÁÁÁhÁh¹�ÁÁÁÁÁÁh¹hÁhÁ•ÁhÁhÁhh¹„ÁhÁhÁÁÁhÁhÁÁ¹Á„•¹ÁÁÁÁhÁÁ¹„ÁÁ�Á¹Á„ÁÁÁÁhÁÁ¹ÁhÁÁÁhhÁÁhÁÁÁhÁhÁÁhÁhÁ„ÁhÁ�ÁÁÁÁ„ÁhÁÁ¹hÁÁÁÁÁh•¹hhÁÁÁÁ¹ÁÁ¹Á„ÁÁhÁÁÁÁÁÁhÁhh¾„ÁhhÁhÁÁhhÁhhÁ�Á•ÁÁÁhÁ„ÁÁhÁ•¹„ÁÁÁÁhÁÁÁ¹„Á¹ÁhÁÁhÁÁ„ÁhÁÁÁhÁhÁÁÁhhÁÁ„ÁÁÁhÁhÁÁhÁhÁ„ÁhÁ•ÁÁÁÁ„ÁhÁ–¹–¹ÁÁÁÁÁh•¹ÁhÁÁÁ„ÁÁ¹ÁhÁÁhÁÁÁÁÁ¹ÁhhÁ¹Á�ÁhÁh¹hhÁ„ÁhÁhÁÁÁ„Á¹ÁhÁhÁ„hÁÁ„ÁhÁÁÁ„hÁÁ¹ÁhÁÁÁÁhÁ•ÁÁÁhhÁÁ„Á¹•ÁÁ¹ÁÁÁhÁhÁÁhÁ¹ÁhÁhÁhÁÁÁÁhÁhÁÁ¹„ÁÁÁÁÁ¹Á„Á�ÁÁ„Á¹ÁÁhÁhÁhhÁÁÁÁÁÁh¹hÁ¹ÁhhÁhÁ¹„ÁhhÁhÁ¹ÁÁÁ„ÁhÁÁhÁhhhÁÁÁÁ„ùÁhhhÁ¹„ÁÁhÁhÁ•¹ÁÁÁhhÁÄÁÄÍÍÍÍðÑðððððÑðÑðÑÑðÑÑÑÑÑÑÑððÑïÑðóððððððððóððóóóóóóóóüóóóóóðóðððÑÑððÍÑÍÍÄÍÄÄÄÄÁÄÁÁhhhhcccccbbXXXTTTTTT"TTT„hÁÁÁ•hÁÁhÁÁÁ•ÁhÁÁhÁhÁhÁhÁhÁÁÁÁhÁ•ÁÁ•¹ÁÁÁÁÁÁhhhhÁ¹ÁÁ¹ÁÁhÁhÁ¹„ÁÁÁÁÁ–¹Á„hÁhÁh„ÁhÁÁ¹hÁ•hÁhÁhÁÁÁhÁhÁÁhÁÁhhÁÁÁÁhÁÂÁhhÁhÁhÁÁhÁhÁÁ•ÁÁÁhÁhÁÁÁ„hÁÁhÁÁÁ�ÁhÁÁhÁhÁhÁhÁ•ÁÁÁÁhÁhÁÁ„ÁhÁÁÁÁÁhhhhÁÁÁÁ�Á•ÁÁhÁhhÁÁÁÁÁÁhÁ¹„ÁhÁ•hÁhÁÁhhÁ„hÁhÁhÁÁÁhÁhÁhÁhÁ¹„ÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁÁhÁhÁÁÁhÁhÁÁÁ¹„ÁÁ•ÁÁÁ�ÁhÁÁhÁ�ÁhÁ„ÁhÁÁÁÁhÁ•ÁÁhÁhÁÁÁÁÁ„hhhÁÁÁÁhÁhÁÁhÁhhÂÁÁÁÁÁhÁhhÁhÁ•¹ÁhÁÁ•¹„ÁhÁhÁhÂÁÁ„Á¹ÁÁhÁhhhÁÁÁùÁhÁhhÁÁhÁhÁhÁÁhÁhÁÁÁ�ÁhÁÁhÁhÁÁhÁÁÁhÁhÁÁÁhÁhhÁhÁhÁÁÁÁhÁ•ÁÁhhÁÁÁÁÁÁhhÁhÁhh„¾ÁÁ¾hÁ„ÁÁÁÁh¹„ÁÁÁ¾hhÁÁÁhÁÁhÁÁ„ÁÁh¾Áh¾¹ÁhÁÁÁ„¹•ÁÁÁÁ¾ÁÁhhhÁh¾Áh¾hÁÁhÁ¾ÁÁÁ¹ÁhÁÁhÁÁh¹Áh„Á¹Á¹ÁÁh¹ÁhÁhÁ¹ÁÁh¾Áhhh¾ÁÁ¹Á¹ÁhÁ¾„ÁhÁ¹ÁÁÁh¾hhÁÁÁh¹ÁÁÁÁ¾¹Á¹•¹ÁÁÁhh¾ÁÁ¹ÁÁhÁÁÁÁÁhÁÁhÁhÁhÁÁÁhÁhÁÁÁh¾ÁÁhÁhÁhÁÁÁÁhÁÁh¾ÁÁÁÁhÁhÁÁh¾ÁhhÁh¾¹ÁÁ¹ÁÁh¹ÁhÁ¹ÁhÁÁhÁÁ¹•¹ÁÁÁhÁ¹•¹•¾Á¹ÁÁhÁÁÁhÁÁÁÁÁÁÁ¹ÁÁÁÁÁÁÁ¹•¾ÁÁÁ¹•¾ÁÁ¹ÁÁÁÁÁÁÁÁ¹ÂÁhÁhÁ¹ÁÁhhÁ¹ÁhÁÁÁÁÁÁ¹•¾¹ÁÁÁÁhÁÁh¾ÁÁÁhÁÁ¹ÁÁÁÁÁ„¹ÂhÁhÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁ„¹•ÁÁÁhÁ¹•ÁÁÁÁ¹Áh¹ÁÁÁhÁh„ÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁ¹•¾ÁÁ¹ÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁ¹ÁÁÁÁÁÁÁhÁÁÁhÁÁ„ÁÁÁÁ¹ÁÁÁÁÁ„ÁhÁÁ¹ÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁ¹Â¹ÂhÁÁÁÁÁÁÁ¹ÁÁÁÁÁÁhÁÁÁÁhÁ„¹Â¾ÁhÁ¹•ÁÁÂÁÁÁÁÁÁ¹ÂÁÁ„ÁÁÁÁ¹ÁÁÁhÁÁÁÁÁÁÁ¹ÂÁÁÁ„ÁÁÁÁÁÁÁ¹ÂÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁÁ¹ÂÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁÁ¹•ÁÁÁÁÁÁÁÁÁ„ÁÁÁhÁÁ¹Á„ÁÁÁhÁÁÁÁÁ¹Á„¹ÂÁÁÁÁÁÁÁÁÁÁhhhÁÁÁhÁ•ÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁ•¹•ÁÁhhÁ•ÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁÁhÁÁÁÁÁ•ÁÁhÁÁ�ÁÁhÁhhÁÁÁhÁÁhÁÁhÁhÁhÁÁhÁÁhhhÁÁÁhÁhhÁÁ�Á¹ÁÁhÁhÁhÁhhÁÁhÁhÁÁÁÁÁÁhhhÁÁÁhÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhhhÁÁh¹Á�ÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁÁhÁÁÁÁÁhÁÁhÁÁhÁÁhÁh„ÁÁÁhÁÁhÁÁhÁhÁhÁÁhÁÁhhhÁÁÁhÁ¹•ÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁ¹Ãh¹ÂÁÁÁÁ„ÁÁÁ¹ÃÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÂÁÁÁÁÁÁÁÁÁÁÁ¹ÂÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁÁ„¹•ÁÁÁÁÁÁ„ÁÁÁÁÁÁ¹ÂÁÁÁÁÁ„ÁÁÂÁhÁÁÁÁÁÁÁÁÁÁÂÁÁÁ„ÁÁÁÁÁÁÁÁÁÁÂÁÁÁ¹¹ÂÁÁÁÁhÁÁÁÂÁÁÁÁÁ„¹•ÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁÁÁÁÂÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁÁÁ¹•ÁÁÁÁÁÁÁÁÁÁÁ„Á¹ÂÁÁ„ÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁ„¹•ÁÁÂÁÁ„ÁÁ¹ÂÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁ¹ÂÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁ¹¹ÂÁÁÁÁÁÁ„¹ÂÁÁ„ÁÁÁÁÁÁÁ„Á„ÁÁÁÁÁÁ„¹ÂÁÁhÁÁhÁhÁ¹ÁhÁhÁÁ¹ÁhÁÁÁÂÁÁÁÁÁÁÁÁ¹•„ÁÁÁÁÁ„ÁÁÁÁÁÁhÁÁÁÁ¹ÂÁÁÁ„ÁÁÁÁÁÁÁ¹ÂÁÁÁÁÁÁÁÁ¹Á„ÁÁÁÁÁÁÁ¹ÁÁÁÁÁÁÁ„ÁÁhÁÁÁÄÍÍÑÑðÑððððÑÑðÑÑÑÑÑðÑðÑðÑÑðÑÑñðÑòÑððððóðóóððóóóóóóóóüüóóóóðóðððÑÑÑÑÍÑÍÍÍÍÄÄÄÄÁÁÁÁÁÁÁhhcchc^XXXXXTXTTTThÁÁÁ„Á¹ÁhÁÁ¹ÁÁÁ¹ÁhÁhÁÁÁÁÁÁÁhÁ¹ÁÁÁhÁ¹•ÁhÁÁ¹ÁhhÁÁÁhÁh„ÁÁÁÁÁÁÁÁÁÁÁ¹•¹ÁÁÁÁ¹•¾ÁÁ¹ÁÁÁÁÁÁÁÁ¹ÂÁhÁhÁ¹ÁÁhhÁ¹ÁhÁÁÁÁÁÁ¹•¾¹ÁÁÁÁhÁÁh¾ÁÁÁhÁÁ¹ÁÁÁÁÁhÁÁ¹ÁhÁÁhÁÁh¹ÁhÁhÁÁÁÁÁÁÁ¹•¹ÁÁÁ¹ÁhÁ¹ÁÁh¾¹ÁhÁÁÁh¾¹•¹ÁÁh¹ÁÁÁÁÁ¹Áh¹ÁÁÁÁhh¾ÁÁ¹ÁÁhÁÁÁÁÁ¹ÁÁhÁhÁhÁÁÁhÁhÁÁÁh¾ÁÁhÁhÁhÁÁÁÁhÁÁh¾ÁÁÁÁ¹ÁhÁÁhÁÁhhÁh„¹ÁÁ¹ÁÁh¹ÁhÁhÁ¹ÁÁh¾Áhhh¾ÁÁ¹Á¹ÁhÁ¾„ÁhÁ¹ÁÁÁh¾hhÁÁÁh¹ÁÁÁÁ¾¹Á¹•¾ÁÁÁ¹•ÁÁÁh¾ÁhÁÁ¾ÁÁ¹ÁÁhÁh¾¹ÁÁÁ„¾hÁÁÁÁÁ¾Á¹Á�ÁhÁÁhÁ¹ÁÁhÁÁÁÁÁÁhÁÁh¹ÂÁhÁhÁ„ÁÁÁhÁÁhÁÁhhÁhÁÁÁhÁÁhhhÁÁÁhÁ¹•ÁÁhÁhÁ„¹ÁhÁMMM0-M0MLM0LM000-M-M0MLM-M-M-M0LM-M0-M0-M-M0LMMLM0-M00-M-M00-M0MLM-M000000000LM000MLM000-M000-M0000-M0-M-M000000-M0MLM000-M-M00000-M0-M00000000-M0000000000000000MM000-M00000M00-M00000-M00-M00000000000000000000M00000000000000M000000000000000-000000000000000-M00000MM0000M00M00000M000000000M00M00M000M000M00M00MM000MMM00M00M0M0000000000000M000000M00-M0000M00M0000-000M0000-00M0000MchÁÁhÁÁ�„¾•Á¹•Áh•Áhhhhhhhhhh•¹ÁÁhÁhhÁ•¹hhhÁhÁhÁhhÁhhÁÁhhÁhÁhÁhÁ¹ÁhÁhÁ•¹Á••hÁÁhhÁh•ÁhhhÁhhÁ•hÁhÁhhÁÁhhhÁhh¹hhÁhhhhhhÁhÁhhÁhÁÁhÁhh•ÁÁhÁ•¹hÁhÁhhÁhhÁ•hhhh•hhhhhhÁÁhÁhhÁh•¹hhÁhÁhÁhhÁhhÁÁhhÁhÁhÁhÁhÁhÁ•Áh•ÁhhhÁÁhhÁhhÁhhhÁhhÁhhÁ•Áh•ÁÁhhÁÁÁ�Á„hX000M0M00M000-0--0000-M0000M0000-0000M000M0-000M00M0M0M00-M0000-M0-M0M0000MM0M0MM00-0000000000000M0-0M0000000M00000M0MhÁÄÄÄÍÑÑðÑððÑÑðððÑðððÑðÑÑðÑÑÑðÑÑððððïðððïòðóóóóðóóðóóóóüóóóóóóððððÑÑÑÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁhhhhhhccXXbXTXXTTTTT"TT0M00000000MM0000M00000000M000MM00000000000000-000000000000000-M000000M000000000000000000000000-M0000-M000000-M00000000-M00000000000000000MM000-M00000M0-M-M000000000LM00MLM000-M000-M0000-M0-M-M000000-M0MLM000-M-M00000-M0-M0000000000-M-M00-M-M000000-M0-M0LMMLM-M-M00-M-M-M-M-M0MLM-M-M-M-M0MLM-MMLM0LM-M-M-MMLM-M-M-M-M0LM-M00LM00LMMLM0MLM,,,,                                                                 ThhhÁhÁh¹•hhÁhh¹Á�¹•hÁhhhÁ•hÁhh�ÁhÁ•hÁhÁhhhÁhhhhÁhÁhhhÁhhÁhhhhÁÁ„ÁÁhhÁh„Á¹ÁÁhhÁÁhhh¹•hÁh••¹ÁhhhhhhhÁÁÁhÁhhÁhhhhÁÁ•ÁhÁÁhhhÁÁhhhÁÁÁÁ¹•Á•ÁhhhhhÁhhhÁ•h¹•Á•h¹ÂhhÁhhhÁhÁ•hÁhÁhhhÁhhhhÁhÁhhhÁhhÁhhhhÁÁhÁÁh¹Á•¹ÁhÁhh¾ÁÁhhhhh•ÁhhhhÁhh¹•h¹•ÁÁÁ•¹Á•¹c                                                                             MgÄÄÍÍÍÍÍÑðððÑðððððððÑÑÑÑðÑÑÑÑÑðÑÑðÑððòððóóðóóóóðóóóóóüüóüóüðóðððððÑðÑÑÍÍÍÍÍÄÄÄÄÄÁÁÁÁÁhhhccccXcbbXXXTTTTTTT:"                    ,,,,,,,                                                                                   0cÁhhÁhhhhhÁhÁ„ÁhÁhÁÁhÁ•Á¹Á•Á•¹Á•ÁÁhhhhhÁ•Á•hhÁhhÁhÁhÁhÁhÁ•Á•hÁ¾hÁhhhÁ¾�hÁ�hhÁÁhÁhhhhÁ•¹hhhÁhhÁhhhhhÁ¾„•ÁhhhÁh•Á¹hhÁÁhÁhhÁhhÁ•Á•�hÁ•¹Á•hhhhÁhÁ•Á¹Á�ÁùÁhÁhÁhÁhhÁhÁÁhhhhhÁ•Á•hhÁhhÁhÁhÁhÁhÁhÁhhÁhhÁhhhÁhhhÁhhhÁÁhÁ•h•¹Á•hhhhÁhhÁhhh•¹hhhÁhhhW                                                                                                  hÁÄÄÍÍÍÑÑðÑðÑðððÑÑÑðÑðÑÑÑÑÑððÑïïÑððÑÑðððððððóóóóóóóüóóüóóóüóóóððððÑÑÑÍÑÍÍÍÍÍÄÄÄÄÄÁÁÄÁhhhhhhcccbXXXXTXT""TTTTT                              ,  ,,,,,,,,,                                                            bhÁhÁhhhÁ•hÁ•h¾ÁhÁ•hÁhÁhh„Á¹Á�•Áhh¹•hh••Á¹Á¹Á•¾ÁhÁhhhhhÁ•Áh¹ÁhhhhhÁhhÁ•¹Ã�¹ÃhhÁhÁhÁhhhÁhhÁhÁÁ••Áhhhhh�¹Á¹•ÁhÁhhhÁhh�¹•hhÁhÁhhÁ¹•¹•Áh•�¹•ÁhhÁ•¹•ÁhÁ•¹Á�ÁhhhÁ•ÁhhÁhh¹•hhh•Á¹Á¹Á•ÁhhÁhhhhhÁhÁhhÁhhhhhÁhhÁhhÁ•hÁhhÁhÁ¹••�¹Á•hÁ•ÁÁhhÁhhhhhÁhhhc                                                                                 gÁÁÄÍÍÑÑÑðÑðððððÑÑðÑðÑÑÑÑÑÑððÑðáðððÑðððóððóðòðóóóóóúóóóóóóóóóðóðððïÑÑÑÑÍÍÍÍÄÄÄÄÄÄÁÁÁÁÁhhhcccccXcXXXTVTTMTT                          ,,,,,,,,                                                                                        MhhÁhhÁ•¹h•¹�Áh•¹•hÁhhhÁ¾hhh•¹ÁÁhhhhÁÁ¹Á�„¾•ÁhÁhÁ•hÁh¾Â¹Áh•hÁhÁhhhhùhhhÁÁhhhÁhhÁ•hhhÁhÁhhh•¹Á¹Á•Á•¹•Á�Á�Á•¹••Áhh•¹•hhhhÁhÁhhhhhÁ•¹Á¹•Áhhh•¹�Áhh•¹�ÁhhhÁ••¹hh•ÁÁhhhhÁùÁ�„¾•ÁhÁhÁh•ÁhÁÁhÁ•hhÁhÁhh•hÁhh•¹ÁÁhhhÁhhÁ•¹hhÁhÁ¹hhhhÁhÁ•ÁhhÁhÁÁhX                                                                                  MhÁÁÄÄÍÑÑÑððÑððÑðÑðÑððÑððÑÑÑÑðÑÑððððððòððððóðóóóóóóóóóóóóüóúóóððððððÑÑÍÑÑÍÍÍÍÍÄÄÄÄÁÁÁhhhhhhcccbXXXXXTTT""TTTTTT                          ,,,,,,,,                                                              dhhhhhh¾„Á¹•h¹•h�¹•hÁÁhÁhhÁh•�¹•hÁhhhÁ•Á¹•h•¹•h•Á¹•ÁhÁhh�Á¹•hÁhhÁ•hÁhhÁhh¹•hÁhÁhh¹••hhhhÁhhh�Á�Á¹•ÁhÁ¹Á„¹•h�¹ÁÁhh•�¹•ÁhhÁhÁhhÁhhhh�•„¾¹••Áhh•¹•hh•¹•hÁ•Á¹•¾„¹•¹•hÁhhhÁ�Á¹•h•¹•hhÁ•¹ÁhÁ••¹Á•hhÁhhÁ¹•Áh•Á•„¹•hÁhÁhhhhhh•h•Áhh•hh•Á¹•ÁhÁhÁh                                                                                   0hÁÄÄÍÍÍÑðÑððÑððÑððÑÑðÑÑÑÑðÑÑÑÑÑðððððððóðóððððóððóóóóóüóüüüüóððððóðÑÑÑÑÑÍÍÍÄÄÄÄÄÄÁÁÁÁhhÁhcccccXcXXXXTXTTT:TT                    ,,,,,,,,,,,,                                                                            Xhhh•¹„hhhhhhh•¹„¾hhhhÁhhhùhÁhhhÁÁh•¹�hh•¹�h•¹�h•hÁhhhhÁhhhÁhÁ•¹hÁhhhÁhhh•Áh•hhh•¹hhh•Áhh•¹•¹Á�hÁhÁ„Á¾hhhhhÁhh•¹ÁhhhhhhÁÁhÁhhÁ••¹•¹�h•¹hh•¹�•h•¹�•h•¹Á�•hÁhhÁhhhÁÁ•¹„h•h•¹�hh•¹hhhÁ•¹hhÁhhhÁ•ÁÁ�hÁ•¹�Á¹�•hÁhhh••hh•¹•¹Áh•¹h•¹Á�hÁhÁhÁhc                                                                                        MhÁÄÄÍÍÍÑðÑðððððÑððÑÑðÑÑÑÑÑÑðÍïÑÑÑðïðÑðóóðóðóïóóðóóóóúóüüóóüðóðððððÑðÑÍÑÍÍÍÍÍÄÄÄÄÄÄÁÁÁhhhhdccccccXXTXTTTTT""TT                           ,,,,,,,,                                                         MchhÁh�¾Á•ÁhhÁhhhÁhhhhhÁhhhhhhÁhÁhÁÁhh•¹•hÁhhhÁÃ�¹Á•ÁhhhhhhhhhhhhhhhhÁhhhhhh¹•¹•hÁ•�ÁÁh¹•Áhhh�•„¹•hhhhhhhÁhhhhhhÁhhhhÁhÁhhhhh•Áh¹•hhÁ•¹•ÁhÁhhÁ¹•hÁh¹•hhÁh¹•h•h¾hÁhÁÁh�¾•¹•Á•¹•ÁÁhhÁhÁhhhhhhhhhh¹•¹•hhÁhhhh¹•hhhh¹ÁhhhÁ�¾„Áhhhhh•¹•hhhhhW                                                                              0gÁÄÄÍÍÍÑÑððÑÑððððððÑÑÑðÑÑÑÑÑÑÑðóÑðððóðððïðóóóóóðóóüóóóüóúóüóóóððððÑÑÑÑÑÑÍÍÍÄÄÄÄÄÄÁÁÁÁhhhhhcccXXXXXXTTTTTTMT:T"T                  ,,,,,,,,,,,,,                                                       chÁ�Á¹•¹•hh•hhhÁhhhhÁhhhÁhhhhhhhÁhh•¹�•hhhhhÁ¹hhÁhÁhÁhhhÁhÁhhÁhÁh•hÁhhÁhhÁÁ�hÁh—¹�¹ÁhÁh•hÁ•¹•¹�•hhÁhÁhhhÁhÁhhÁhhÁh•ÁhhÁ•hÁ•¹hhhÁhh•¹Á�•hhhhhhhhÁhhhhÁhhhÁ•¹h••hhÁh•¹•¹�¹hhhhÁhhhÁhÁhÁhhhÁhÁhhÁ�Á•hhÁhhÁhhhÁhÁÁ�ÁhÁ�ùÁhh•Áhh•¹�•hhÁhÁd                                                                                                MgÁÄÄÄÍÍÑÑðððÑðÑðÑðÑÑÑÑÑÑðÑÑÑÑðððÑððððððòðððóóóóóóóüóóóüóóóúóóóðððÑÑÑÑÑÑÍÍÍÍÍÄÄÄÄÄÁÁÁÁhhhhhccccXXXXXXTTT"TT"MT""                    ,,,,,,,,,,,,,,,                                                                              X„Á¹•h•�Á¹Ãh¹•ÁhhÁhÁhÁhhÁÁhhÁ•ÁhhÁhhÁhh¹ÂhhÁhÁhhÁhh•¹•hÁhÁhhÁhÁÁh•¹•hÁh•hÁ�¹••hÁ¹••�Á•hÁ¹•hÁhhhh¹ÃhÁhhh••¹•hÁhhhhhÁh¹••h¹•hÁhhÁhÁhÁhhhh¹ÃhÁhhhÁhhÁhÁhÁhhÁhh•Á¹ÁhhÁhhÁ�•„ÁhhÁhÁh•ÁhhhhhhÁhÁhhÁ•ÁÁh¹•hhÁhh•ÁhhÁ�¹Áhhh¹•••Áh¹•Áhhhh¹ÃhÁhX                                                                                     gÁÁÄÄÍÍÑÑððððÑðððÑÑððÑÑÑððÑÑÑðÑÑÑððÑððððóóðóððóðóóóóóóóóóóóóððððððÑÑÑÍÍÑÍÍÄÄÍÄÄÁÁÁÁÁÁhhhhgccccbXXXXXTTTT:"TT"M                         ,  ,,,,,,,,,,,                                                                            chhùhhhhhhÁhhhÁhÁÁhh•¹�•h•¹ÁhhhhÁhhhhÁhÁÁhÁhhÁh•¹�••¹hÁhÁÁhÁh•¹�ÁhÁ•¹�¹•Á•¹•¾�•¹Á¹•hÁ�hhÁÁhÁhhhhhh•Á¹hhÁh••hÁhhÁhh•¹hhh•hÁhÁhh•ÁhhÁhhhh•hhÁhhhÁhÁÁhhhhhhhhhÁ•hhhÁ•¹•¹ÁhÁÁhÁ•¹Áhh••hh•¹ÁhÁ¹ÁhhhhÁhÁh•¹hhÁ•¹•h•hhÁ•¹hÁhhhÁÁhÁhhhhhhc-                                                                                   MhÁÁÄÍÍÍÍðÑðððÑÑðÑÑðÑðÑÑÑÑÑÑÑðÑÑÑÑðððÑððððóòððóóðóóóóóóóóüüóóóóóðððÑðÑÑÍÍÍÍÄÍÄÄÄÄÁÄÄÁÁÁhhhdcccccbXXTXTTTTT:T                       ,,,,,,,                                                                            XhhhhhhhhhhÁÁhÁhÁhÁÁhhÁhh¹•hhhhhhÁhhÁhhhÁhÁhÁhÁhÁhhh¹•hhÁhhhhhhhÁ•¹•hÁ•Áhh¹•�¹•¹••�Á¹•h¹•hhÁhÁhhhhhÁhhhhhÁh¹ÁhÁh•hhÁh�Á••¹•Áhhhhh¹•hhhhh•¹•ÁÁhÁ•ÁhÁÁhhÁhhhhhhh¹•hÁhhÁ��¾ÁhÁhÁ�ÁhÁh¹•¹•h•ÁhhhhhhhÁhhhhÁhÁhhh•�¹•¹•hhÁhhhhhh•ÁhÁhhhhhc                                                                                      0hÁÄÄÍÄÍÑÑððððððððÑÑððÑïÑðÍÑÑðÑÑÑðððÑððððððððóóóóóðóóóóóóüüóðóóðððÑððÑÍÍÍÍÍÍÍÄÄÄÄÁÄÁÁÁhhhhcccccXbXXXTTTTTTTTT                         ,,,,,,,,,,                                                                      Xhhhhhhh•hhh•h•ÁhhhhÁhÁhÁhhhhhhÁhÁhh•hh•hh••hÁ•hhhhhhhh•hÁhÁhhùÁhh•¹Á•hhÁ•¹Á„h•¹hhh•Á„h•hhhÁh•ÁhÁhÁhÁhÁhhh•hhÁ¹•hÁ•¹•¹hhhhhhhhÁ�Á•hhh•¹�hhh•¹hÁhhh••hÁhÁhhhhhhÁhÁ„•¹•¹•hh•¹•Áhhhhhhh•¹�hÁhÁhhÁhÁ•hhhÁhhhùhÁhhhhhhhhÁhh•¹hhÁhhhhÁhM                                                                           McÁÁÄÍÍÍÑðÑÑÑðððððððÑððÑÑððÑÑðÑÑïðððððòðóòðóðóóóóóóóüüóüþüóóóóóðððÑÑðÑÑÑÍÍÍÍÍÄÄÄÁÄÁÁÁhhhhcghcccXXXXXXTTTTTT"T                      ,,,,,,,,,,,,,,,,,,                                                            c¹•hÁhÁÁ¹•hh¹•¹ÁhhhhÁhhhÁhÁhÁhhÁhÁ•h¹•h¹•h¹Áhh¹•hÁhhÁ•Á¹•hÁ•Áhh�Á•hÁh�¹Ãh�•hhÁhhhhhhh¹Á•¹•hÁhÁ¹ÁhÁhÁ•ÁhÁ••h¹•h�Á¹•hÁhhhhÁhhhÁhh¹Á�¹•ÁhÁÁ¹•hhhhhÁhhh¹Á¹•hÁÁÁhÁhhÁ•¾¹••h�¹•hhÁh¹•h•ÁhhÁhÁ•¹•ÁhÁhh•Á¹•ÁhhhÁhhhhhÁhhh•hhhhÁhhhhÁhÁ•Áhc                                                                                                   hÄÄÄÍÍÍÑÑðÑððÑðÑÑðððÑÑÑÑðÑÑÑÑÑðáððððÑóðóððððòðóðóóóóóóüüóóóóóðóððÑÑÑÑÑÍÑÍÍÍÍÄÄÄÁÄÄÁÁÁhhchhcccbXXXXTTTVTTTTT                      ,,,,,,,,,,,,,,                                                                     bhÁhhÁÁ�hÁhÁ�•hhÁhÁ•hÁhhhhÁhhhÁ�ùÁ„¾hhhhhh•Á�hhÁhÁ•¹�hhhÁ¹Á•¹••¹ÁÁhhÁhhÁ¹•ÁhhÁhhÁhhÁ�ÁhhhÁ•Á•�hÁ•¹hhhhÁ¹Áhh•¹�Á•hÁhÁhhhhÁhÁhÁ„hhÁÁhÁ¾„•hÁhÁhhhhÁhÁ�•Á•¹�•Áhh•¹hÁ••¹hhhh•hhhhh•¹Á•Áh•¹hh•ÁhÁh•¹Á�•ÁhhÁhhÁhhÁh•Á•¹ÁhhÁhÁhhhÁ•Á¹hÁÁ\                                                                                        MhÄÄÄÄÍÍÍðððÑÑÑððÑðÑððÑÑÑðÑÑÑÑðÑïððððÑððóððóðóðóóüóóðóóóüóóüóóóðóððÑÑÑÑÍÑÍÍÍÍÄÄÄÄÄÄÁÁÁhhhdhcccbXXXXXTTTTTTTTTTT"                        ,  ,,,,,,,,,,,                                                             TdÁh•h�¹ÁhÁhÁh¹•hÁhh¹•hhhÁ•hÁ•Á¹Áhhhhhhhh•hh¹•¹•hh•Áh•¹•hÁh�Á•Á¹••�¹ÃhÁÁ•hhÁ¹•¾hhhhÁhÁhÁhÁhhh¹•¹•hhhhÁhhhh�¾hÁ„ÁÁ¹•ÁhhhÁ•hhhÁ•�¹•hhÁhh�¹ÁhÁhÁh•hhÁhhh¹•hhÁ¹•ÁhÁ�Á•¹•hhhhh¹•hhhhhh�¹Á•hhhhÁ¹•hhÁhÁh¹•ÁhÁÁh•hÁhhÁ¹•h�ÁhÁhÁhÁhhh•�Ác                                                                                    0gÁÁÄÄÍÍÑðððððÑððÑÑÑðÑÑðÑóÑÑðÐÑðÑððïððÑðóóððððóóðóüóóóüóüóóóððóððÑïáïÑðÑÍÍÄÄÍÍÄÁÄÁÁÄÁÁÁhhhchccbcbbXXTTTTTT:T                   ,,,,,,,,,,,,,,                                                                          chÁ¹•Á„h•hhhhÁhÁÁ•�•hÁh•¹h•¹�ÁhhÁhhhhÁ•¹•hÁ�ÁhÁ•¹Á•¹�•Á•¹•Á¹�••¹hhÁhÁ¹hhhÁ�•hhÁÁhh••¹ÁhhhÁhhhhÁ•hÁ•hh•h•¹„Á•¹�hhhÁhhÁ•¹hhÁ•¹hÁ••¹Á•¹•Áhh••h•¹Á••hhhhhÁhhhhh•¹Â¹hÁhhhhÁ•hhhÁhÁ•ÁhhÁhhÁ�¹�•ÁhhhhhhhÁhÁh•¹•ÁhhhhÁ•¹••ÁhÁ•hhÁ•¹hhhX                                                                                              gÁÄÄÍÍÍÑÑððððÑððÑðÑÑÑÑÑÑðÑÑðÍðÑÑðáðððððððððóóóóðóóóóóüüóóüúðóðððððÑðÑÑÍÍÍÍÍÄÄÄÄÁÄÁÁÁhhÁhhgcccbcXXXVXTTT"TT                            ,, ,,,,,,,,,,,,,,                                                                       Xhhh�¾¹•Á¹Á•hhÁh�¹•¹Á•¹•hhhh•¹•hh•hÁhhhÁ�¹•ÁhÁ•hhhhhhh¹•Áhhhhh¹•hhhhÁ•�Á•Áhh¹•„¾Áhh¹•hhhh•Áhhh•Á¹•h¹•h¹••�¹•h•¹•Áhhh•Á•hhhÁhhhh¹•�••�¹•hÁ¹Áhh�Á¹•¹••Áhhhhhh•hh�¾„hhÁh•¹Á�Á•ÁhÁh¹•hhhhh¹•Áh¹•h•hhhhhhÁhhh�Á¹•hhhhÁhh¹•hh¹••Áhhhh                                                                                  hÄÄÍÄÄÍÑÑðððððÑðÑóðÑÑÑÑÑÑÑÑðÑðÑÑðïðÑðððððóðóóóóóðóóóóüüóóóóúóóðððÑÑÑÑÑÑÍÍÍÄÄÍÄÄÄÁÁÁÁÁhhhcdcccbXXXXXXTTTTTT              ,,,,,,,,,,,,   ,                                                               c•¹„h•¹�•hhÁhhhhhhÁhhÁhhh•¹�•h•¹hÁhh•¹„¾hhùhhÁhhhhhhhhh•hhhhhhhhhÁ¹•¹hÁhhh•¹�hh¾„hhhh•¹hÁh•¹�•hhhhhh•¹hh•¹•h�ÁhhhÁ¹hh•hÁ•hÁhh•¹•¹hhhhhhhh•Á¹„¾�•¹ÁhhÁhh•¹h•¹•¹•hÁ•¹�••¹hhÁhhhÁhh•hhhhhhhh•¹h•hhhhÁh•¹•Á�hhhhhhhhhhhhh•¹hÁhhÁd                                                                                                  MgÄÁÄÍÍÑÑÑððððððÑÑÑÑðÑÑÑðÑÑÑÑÑÑïÑñïïðóðððððóðóðóüóðóüóóüüüóðóóðóððÑðÑÑÑÑÍÍÍÍÍÄÄÄÄÄÄÁÁÁÁhhhcdccbXbXXXTTXTT:TTT                         , ,,,,,,,,,,,,,,  ,                                                                XhhhÁh¾„¹ÁhhÁhhhhhhhh•Áhhhhhh¹•Á�ÁhhhhhhhhÁhhhÁhhÁh•hhhhh¹••hh•Áhhhhh�Á�¹•hÁ�•¹•Á�¹•hhÁhhhhÁhhh¹•hhh•hhhhh•�¹••¹•Áh�•Á•¹•h¹•hhhhhhhhÁ•hhhÁhhÁhh•¹•hhhhÁhhhhhh•�Á¹•hhhh¹•hhÁh•hÁhhÁ¹•hhhhhhh•�Á¹Á••hh•¾„¹•¹•Áhh•hÁhhhhhÁhhhhhhT                                                                                 gÁÄÄÍÄÑÑÑÑðððððÑÑÑðððÑÑðÍðÑÑÑÑïáïððÑóðððððóðóóóóóóóúóóüüóóóóðóððððÑÑÑÑÑÑÍÍÍÄÄÄÄÄÁÁÁÁÁÁhhhchccbbXXXTTXTTTTT                 ,,,,,,,,,,,,,,,,, ,                                             XhÁhhhhhhhÁÁhhhhÁhh•¹�•Áh•hhh•¹•Áhhh•ÁhhÁhÁhhÁhÁ••¹hhhÁhh•¹h•¹hÁhÁh•¹•¹„¾�Á¹hh•¹Á•ÁhÁhhÁh•Áhhhhh•h•¹h•hh•¹hhÁ¹�hh•¹•¹hhhhhhhÁhhhhhh•¹hhhhÁÁhg•¹�Áhhhhh•Áhhh•¹hhhÁhhhhÁhhÁhùhÁ•ÁÁ�•hhhÁhh•¹•¹�••¹Áh¹�hhhhhÁh•¹hhÁhÁhÁhhÁhhhÁc-                                                                                                  MhÁÄÄÍÍÍÑðÑÑðððððÑÑðÑððððÑÑÑÑÑÑÑðÑïðïÑðóððððððóððóóóóóóóüóóóóóóððððÑðÑÑÍÍÍÍÍÍÍÄÄÄÁÄÁÁÁhchhcccccbbXXXVTT:TT:TTTT                   , ,, ,,,,,,,,,,,,,,,,,,,,                                        chhhhhhÁh•h�¹•Áhhh•Áhh¹•Á¹•hhhhh¹•hÁ•¹•hhhhhhh•h¹•hhhhh•hhhhÁhhhhhhhh�¾„¹ÂhhhÁhh�¹•hh••Áhh¹•h•hh•¹••Á¹•hhhhh•hhÁÁhhhhhhh•ÁhhhhÁhhÁhh•hÁÁh�¹•h•Á¹•h•Áh•¹•Áh•hhhhhh•hÁhhhhhhhhhhhh¹•¹•h¹••hhhhÁh¹•h�¾„¹•hhhÁhh•Áhhhh•h•h•ÁhhhX                                                                                                          gÁÄÄÍÍÍÑÑðÑðÑðððÑðÑÑðÑÑÑðÑÑÑÑððððÑðòïððððóðòðóóóóóóóóóóüóóüðóðððððÑÑÑÑÍÍÑÑÍÄÄÄÄÄÄÁÁÁhÁhhhhccbcXbXXTXTTTTTTT"                ,,,,,,,,,,,,,,                                     XhhhhÁh•¹•¹„hÁÁh•¹hhhh•¹�•hÁhhhhh•¹hhhhhhhhh•¹•hhh•hh•¹h•hhhhh•hhhÁ•¹•hhhhhhh•Áhhh•¹•¹hhhhh•¹h•¹�•¹�•hhhÁh•¹h•¹�hhhhh••¹hhÁhÁÁ•Áh••¹�Áh•¹•h•¹Á„h•¹h•¹�hh•¹hÁ•h••¹•hhhhhhhhhhhhhhhhhhh•¹hhhhhhhh•¹„Áhh•hhh••¹�hÁhÁ¹�¹•¹•hhhh                                                                                                  MgÁÄÄÄÍÍÑÑðððððððÑðÑðÑÑÍÑðÑðÑÑÑÑóÑððððððððððóóóóóóóóóóóóóóüóóóðððððÑÑÑÑÑÍÍÍÍÍÄÍÄÁÄÁÁÁÁhhhchcccbXXXXXXTTT"TTTT                  , ,,,,,,,,,,,,,,,                                Xhhh•hhhÁhh�¾hh�¹•hhÁhhhhh¹Â�ÁhhÁhhhhhhÁhhhhÁhhhÁ•h¹•hh„Á¹•hhh•¹•Áh•h�¹•hh•hÁhh¹••¹•Á�ÁhhhÁhhhhh•¹•hh¹•hh•ÁhhhhhhÁ•Á•h¹•hhÁhhh�¹Áhh¹•h¹•Á�¹•hh�¹•hhhÁ•¹•hh�Á•¹•¹Á�¹•h•hÁhhhhÁh•hÁhhhhhh�ÁÁhhhhh•hÁh¹•h¹••h¹•Á•¹•h�••Á�Á¹•ÁX                                                                                                     hÁÁÍÍÄÍÍÑðóÑÑÑÑÑÑðïÑðððÑððÑÑÑÑððÑðððóÑðóóóóóðððóóóóóóüüüüóüüóðððÑÑððÑÑÑÍÍÍÄÄÍÄÄÄÄÄÁÁÁhhhhchccbbbXXXTTTT"TT:T                      ,,,,,,,,,,,, ,,,,                              cÁ¹•hhhh•¹•h•¹••hhÁh•hÁhh•¹hhhÁ•hhh•ÁhhhhÁhhhhÁ¹hÁhhh¾hhÁhÁ•¹�hh•¹•¹•h•¹•¹Áhhh•¹�h•¹•hhÁhÁ•hh•¹�hhhhh••¹h•hhhh•¹•¹ÁhhhhhhÁh•¹•hÁhhhhhh•¹•hh•¹••hhh¹�•Á•¹•¹„¾�Á•¹•¹•ÁhhhhÁh•¹hÁhhÁh•¹•¹�ÁhÁ••¹h•¾�hhh•¹hh•Á¹�••¹•¹hhhhhhhT                                                                                                 0gÁÄÄÄÍÍÑÑðððóÑðÑÑóðÑÑÑðÑÑÑÑðÑðÑððÑïðóððððòðóðóðúðóóóóóüüóóóóððòððÑðÑÑÑÑÍÍÍÍÄÄÄÄÄÄÄÁÁÁhhhhhcccbbXXXTXTTTTT               ,,,,,,,,,,,,,,,,,                             chh„¹Á•h•h�¹•hhh¹•hh¹•¹•hhhhhÁhh¹•hÁ¹Ãh¾hhÁh•hh•�hhhhhhhhh�ÁhhhÁ•hhh��¹•¾„�Áhhh•�¹•h�¹•hÁhh¹•h•hhÁ•hhh¹•�Á¹•ÁhhhhhhhhÁhÁhÁhh•�¹•h•hh•hÁ•�¹•h•hh¹•hhhhh¹•hhhhhÁ¹�h•�Á¹Á••¹•¾h•hhhhh•hh�•„¹•hh¹•�Á¹•¹•hhh�Á•¹•hh¹•hhhhhhhÁc                                                                                                           MgÁÄÄÍÍÑÑÑðÑÑððððÑðÑÑÑÑðÑÑÑðððÑÑÑÑÑïòðððÑððððòóðóóóóüóóóüóóóóóóóðððÑÑÑÑÑÑÑÄÍÍÄÄÄÁÁÁÁÁhhÁhhccccbXbXXXTTXTTTTTTT                   ,,,,,,,,,,,,,,,,, ,                        Mchh•¹•¹•¹„•hhhhhÁ••�hhÁhhÁhÁhhhhhhÁhhhh•¹•¹h•¹hhhhhhhhh•¹•¹••¹hhh•¹ÁhÁh•¹hhh•¹hh•¹•Á•hhhhÁh•¹�ùh•hhh•¹••hh•hhhhhhhhhÁhhh•¹hhh•¹h•¹Á•¹hhh•¹hhhhhÁ•hhhhÁhhÁ•Á�••¹hhÁ•¹hhh••¹„hhh•¹h•¹•¹�•hhh•¹„Á�„hhÁhÁ¹•hhhhhhhhhhÁhÁhhW                                                                                               gÁÁÄÍÄÍÑÑóÑððÑððÑððððÑÑÑÑÑÑÑÑÑðððáðððóóððððóóóðóóóóóóóóóóóóðòððððððÑÑÍÍÍÍÍÍÍÍÄÄÄÄÁÁÁÁhhhhchcccbXXXTXTTTTTTTT"                 ,,,,,,,,,,,,,,                             chhÁhh�¾„¾h¹•h•hhh¹•¹•hhhhhhÁ•hhh•hhhhhÁhh�Á•hhhÁ•hÁhhÁhh•�Á¹•hhhÁ•„Á¹••hhhÁhhhhÁ•�¹•¹•Áh•hhhh¹•�¹Á•hÁhhh¹•h¹•hhhhh••¹•h•hhhhÁ•hhhÁhhhhhhÁ•hhhh•hh¹•hhhhhhh¹Âh¹•hhhhhhhÁh¹•¾¹•hhÁhhÁhhÁh¹•hÁ•�¹•¹Á•hÁh•�¹•hÁhhh•ÁhhhhÁc                                                                                                     gÁÄÄÄÍÍÍÑðððððÑÑððÑðÑðÑÑðÍÑÑÑðððððððððððóðóðóóðóóóóðóóüóóóóóðóððððÑÑÑÑÑÍÍÑÍÄÄÄÄÄÄÁÁÁÁhhhhhccccbXXXXXTTTTTT                 ,,,,,,,,,,,,,,,,,                              XhÁh•¹•hhÁ�h•¹hÁhhhhhhhÁhhÁ•¹h••¹hh•hhhh•¹•¹hhÁ•¹Á•ÁhÁh•¹hhhhhh•¹•¹�••¹hh•h••hh•¹hhhhÁh•¹hÁ•Á�•¹••¹h•hhhhÁhh•ÁhÁh•¹hhh•¹•hÁh•¹hÁhÁhhhh••¹•hhh•¹ÁhhhhhhhÁhhÁhhhhh•hh•hhhhhh••h•Á•hÁhÁhÁhhhh•¹hhhhhhhh•¹hhh•hh•¹•¹••hhhhX                                                                                          0hÁÁÄÍÍÍÑÑðÑðððÑððÑðÑÑðÑÑðÑÑÑÑÑÑÑÑÑïðáÑóððððððððüóüüóúüþüþüóóððóððÑÑÑÑÑÑÍÍÍÄÍÄÄÍÄÁÁÁÄÁÁÁhcdccbbcbXXXVTTTTTTT"                         ,,,,,,,,,,,,,  ,                    MdÁhÁ•„¹Áhh¹•Á�¾hhÁhÁhh•Á•hÁhhÁ¹•hhh¹•hÁhh•�Á•ÁhÁh�¹•h¹•hhhhhhÁÁ�Á¾hh¹•hhh•¹Á¹•hhhhÁhhhhhhhhh¹Á•�¹•�Á¹•h•hÁhÁh¹•hhhhhhhÁ�¹•hhhhhhhhÁ•h•¹Á�¹•hÁ•hhhÁhÁhhhÁhhÁhhÁh•¹•h¹•h•hhh¹ÁhÁ¹Áhhhhhhhh•hhhhÁhhÁ•¹•h�hh•¹•Á•�Áhh¹Á•hM                                                                                        gÁÁÄÄÍÍÐÑÑÑÑðÑððÑðÑÑÑðÑÑÑÑÑÑÑÑÑðÑðððïððóðððóðóðóóóóóóóóüóóóóóðóððïÑÑÑÑÑÍÍÍÍÍÄÄÄÁÄÁÁÁ•hhhhcccccXXXXXTTTTT                     ,,,,,,,,,,,,,,,,, ,,                 FTTTXXXXXXXXXXXXXTFTXXXXXTXXXTF               chhÁ¹�••h•�•¹„ÁhhhÁh•¹Á¹Áh¾•Á�hhhhh•¹�h•¹hÁ¹hhh•¹•hhhhhhhhh•¹�Á¹„hhhhhÁ•¹Á�•hh•hhhhhhhÁhhÁhh•¹hh•¹•hh•¹hÁhhhhhhhÁhhhÁ•¹••h•hh•hh•¹•Á¹�•hhh•¹•hÁhh•Áhh•Áhhh•hÁ•¹�hhhh•¹•hhhÁ•Á�hh•h•hhh•¹h•hhh•Á•¹�••¹hù�Á¹•¹�hhhhhÁc                                                                                          McÁÁÄÄÍÍÑÑÑÑÑÑððÑÑÑðÑðÑðððÑÑðÑÑïÑððÑïÑððïóðóðóóðóðððóóðóóóóúóóðóóððáÑÑÑðÍÍÍÍÍÍÄÄÄÁĹhhhhhhgccccXXTXXTT"TT                  ,  ,,,,,,,,,,,,,,,,,,,,                   FTTFTTXXbXXXXbXXbXXXXXbXXbTFXbXXXXXXbTTXXXXXT           bhÁhhÁh¹•¹•¹•�Á¹•ÁhhhÁh��¾„¹�¹Á•hh•ÁhÁ•¹•ÁhhhhÁh•�¹•Áhhh•hÁhhhh•�¹•hhÁhhhhÁh¹•h¹•hhÁhhhÁhhÁhhhhhh•�¹•hhhhhhhhhhÁhh•hhhhhh¹•¹•h¹•h•�¹•Áh¹•hhh�¹•hhÁ¹•hÁh¹•hh¹•hÁ„¹•hÁhÁ�¹•Áhhh¹••h¹•¹Áhhhh•¹•hh¹•hhh¹•ÁhhhhÁ�¾„¹•h•hhW                                                                                                         cÁÄÁÄÄÍÍÑðððóðÑÑÑðÑÑðÑÑÑÑÑðÑÑððÑóÑÑòóðððóóóðóðóóóüüóóóóüúóüóððóððïïÑÍÍÍÍÍÍÍÄÄÍÄÄÄÁÁÁ•hhhccdccXXXXXTXTXTT                     ,,,,,,,,,,,,,,,,,,,,             ETXXXXTFETbXXXbXXXFTTXXbbbbXXXbXXbXbXbXXXXbXbXXXXTFE"bXXXXbXbXXbXTFTXXXXbXTTXX           0chhhhhhhhh•¹Á�hhh•hÁ•¹•¹„¾„h•¹h•¹Á••¹Á�•hhh•h•¹hhÁ�h•¹•¹�h•h•¹hhh•ÁhÁ•ÁhÁhhÁhhhhhÁh•Á•ÁhhhÁ•hh•¹hhh•hhhhhÁhhhÁhhÁ¹•hÁhhhhÁhhhh•¹hhhhhhh•h•¹•ÁhhhhhhÁhhhhh••hh¾hh•Á•¹•Áh•hhhh•¹h•�Á•hhhhhhhhhh•hhhhÁhÁhÁh¹•Áh�•¹hÁd                                                                                           MeÁÄÁÄÄÍÍÑððÑÑðÑÑÑÑÑÑðÑÑÑÑÑÑðÑÑðððÑðððððððóòððóóóóóóóóóüüóóóóðòðððáÑÑÑÍÍÍÑÍÍÍÄÄÄÄÄÄù••hhgcccccXXXXXXTT:TT"                 , ,,,,,,,,,,,,,,,,,,,,,,,,,       FFFFHEXbXXbXbXXXbXbXXXbbXXXXXFFTbXXXXXXXXXXXXbXXXXXXXXXbXXXXXXXbXbXbXXTTTTbXXXbXXXXXbXXXbTFEVXXXXXXXbTF"TTXXTTTTTT"FTbXXXXX         bhhhhhhhhhhh••¹•h¹•¹•hhhhÁ�¹••hhh•�¹•hhh¹•hh¹•hhhÁ•¹•hhhÁ•¹•¹•hhÁh•¹•h¹••hhhÁhh•hhÁ�¹••¹•hh•¹•hhÁhÁh¹•hgÁ�ÁÁhhÁ•h•h�¹Á•hhhhh•hhhhhhhhhhh¹•hh•¹••hh•hh•hh•Áh¹•hhhh¹•h�¹•h¹•h•hh••¹Á•¹•hhhÁhhh••¹•ÁhhhhhhÁhh„¹Á•¹•hhX                                                                                                          b¹•ÄÁÄÍÄÍÑÑÑÑÑÑÑÑÑÑÑðÑðÑðÑÑÑÑÑÑðÑóðððïððòððóóðóóóóóðúüüóóüóóóððððïðÑðÑÑÍÍÍÄÄÄÄÄÄÄÁÁÁÄÁ¹hfghhbXcbXXXTTTTT      ,,,,,,,,,,,,,,,,,,,,,,,,,    XXXXXXXXXXXXbXXTFFTXbXbXXbXXbbXbXXXXbXXXXbXXXbbbXXbXbXXbXXXXXXbXbbXbXXbbbbXXXXXbXbXXXXXXXXXXXXXXbXXbXXXXXbXbXbXXXTF"bXbXXXXbXXXXbXbXbXXbXXXbXXXXXXbXbXXXXXXXX                XhhÁhh••hh•¹hhh••�hhhÁh•¹•h•¹h•hÁ¹h•hhhhh•Á�•hhh•¹�•Áhh•¹„¾�hÁhh•¹�Áhh•¹h•hÁh•¹h•¹h•¹hÁhh•¹�hhÁhh•Á�hÁhù•hh•¹•¹•¹•hhÁhÁhh•¹••ÁhhhhÁhhÁ�hh•¹�•¹h•¹••¹Á•¹hhhhhhhhÁ•¹•hhhhh•¹h•¹hhhhhhÁhhhhh•¹hÁhhhhhÁhhhhhhhÁhhhhhc                                                                                         0chÁ¾ÄÄÄÍÍÑÑÑÑÑÑÑðÑÑÑÑÑÑÑÑÑÑÑÑðÑðÑððððððáóðððóóðóóúóðóóüüóóóóóðóððððÑÑÑÍÑÍÍÍÄÄÄÁÄÁÁÁÁÁhhhhchccccXXXXXTT          ,,,,,,,,,,,,,,,,,,,,,,,,,,            XXXXbXbXXXXXXbXbXXXXXbXXbXXbXbXXXXXbXbbXbXXXXXXXXXXXbXbXXXXbXbXXXbXXXXXXbXXXXXbXbbXbXbXXXXbbXXXXXXXXbXbXXXXXXXXXbXXbXXbXXbXXbXXXXTXXXbXXXXbXXXXXXbXbXXbXXbXXXbXbXbXbX        chhÁ•¹Á¹Âhhhhhh¹•¹••hÁh•�¹•hhÁ¹•h•Á¹ÁhhhÁh¹•¹•hÁhhh¹ÁhÁh¾¹„¹•hhh••¹•hÁhhÁ¹••hhhhhhhhhhhÁhh•¹•hÁhhh¹••hhh�¹•Áhhhh•�¹•hhhÁhhhhh¹•hh•hÁ•hÁ¹Ã�¾„¹•hhh�¹•�Áhhhh•hhÁhh•�Á¹••hhÁhhhhhhÁhh•hÁÁÁhÁhhhhhhÁhhhh•Á•hÁhÁhhhhhc                                                                                                          chÁÁÃÄÄËÍÍÑÑÍÍÍðÑðÑÍÑÍÑÑÑÑÑÑðáÑÑðÑðððððïððóðóóðúóúóóóóüóóóüóóððòðóðÑÑÍÑÑÍÍÍÍÄÄÄÁÄÄÁÁhhhhhcccccXcXXXTTTT           ,,,,,,,,,,,,,,,,,,,,,,,,,,,,  ,,,            XbXXXbXXXXXbXXbXXXbXbXbXXXbXXXXXbXXXXXXXXbXbXXXXXbXbXXXXbXXbXXbXbXXbXbXbXXXbXbXXXXXXXbXbXXXXXbbbXbXbXbXXXXXbbbXbXXbXXbXXbXXbXXXbXbXXXTTTXbXbXXXXXXXbbbXXXXXXbXXbXXXbXXXbXXXX               X•¹�Á•�ÁhhÁhÁhhhh•¹Á�¹•¹Á•hhÁ�h•¹Á�„h•hÁhhhhhhÁhhhhhhÁ�••�•hhh•¹hhhhÁ•Á�h•¹hÁhh•hh•hhhhÁ•¹�•hhhhhh•¹hh•¹•hh•hhhÁ¹„•hhhhÁhÁhhhhhÁ¹••¹Áh••¹hÁhÁhh•¹�•Á¹hÁ�ùhhÁh•¹hÁh•¹hhÁh¾•hhhÁh•¹•¹�Á¹•hhhhhhhhhh•¹Á¹Áh¾�hhÁhÁ„M                                                                               0bchÁÁÄÄÄÍÑÍÍÑÑÑÍÍÑÍÑðÑÐÑÑÍÍÑÑðÑÑÑÑÑÑððóðððóððóðóðóüúóóüóóóðóóóðïðÑÑÑÑÑÍÑÍÍÄÄÄÄÄÁÄÁÁÁÁÁhhhccccXXXXXVTTTT                  ,, ,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,       XXXbXXbXbXXbXXbXXbXbXXXbXbXbXbXXXXbXXbXbXXbXXXXXXXbXbXbXXbXXbXXXXbXXbXXbXXbXbXXbcbXbXXbXbXbXXXXXXbXXXXXbXXbXXXXXbXXbXXbbXXbXXbXXXXXXXXXXXXXXXXXXXXbXXXXXbXbbXXbXbXbXbXbXXbXX      Thhh•¹•¹•hhÁhÁhÁhÁhhh••h�Á¹•h•¹•h•�¹Á•¹•hhhhÁhÁhÁh•h•hhh¹•¹Á•Áhhhhhhhh¹•¹•hhhhÁ•¹•h¹•hh•hÁhÁ¹•h¹•¾hh�ÁhÁhhÁ•¹•Áhh�¾¹•hÁhhhhhhhh•�Á¹•hh•¹•hhÁhÁhÁhÁ„¹•hhh¹•�Á•¹•hhhhhÁhhh•h�¹Á•ÁhÁhhh�hh�¹•hÁ•Áhhhhhhh��Á•¹•¹••Ác                                                                                               cghhÁÁÄÄÄÍÍÍÍÑÍÍÍÍÑÑÑÑÏÑÑÍÑÍÑÑÑÑÑððÑðððóðððóóðòðóóóóóóóúúüóðóðððððÑÑÑÍÍÍÍÍÄÍÄÄÄÁÁÄÄÁhhhhccccccXXXXTTTT             ,,,,,,,,,,,,,,,,,,,,,,,,,,,,           XbXcXbXbXbXXbbXXbXXXXbXXbXXXbXXbXXbXXXXbXXbXbXXbXXXXXbXXbXXbXXbbXXXbXXbXXbXXXXbXXXXbXcXXXbXbbXbXbXXcbXbXXbXXXbXbXbXXXXXXXbXXbXXbXbXbXbbbbXbXbXbXXbXXXbXbXXXXXbXXXXXXXbXXbXXX                  c•¹„hhhhhÁ•hhhÁ•hhhÁ¹hÁhhh•¹�h•¹hhÁhhhh•Á•hh••¹•Á¹•hÁhhhh•¹ÁhhÁhhhhhhhhh•hhh•¹�hhhh••¹hÁ¾„hh••h•hù�hhhhÁ¹�hÁh•¹„hhhÁhÁhhhhhhÁ¹„hhhhhhhhhÁhhhhùh¾„ÁhhÁ•¹•¹�•hhh•hÁhh•¹•ÁhhhhhhhÁ•¹„Áhhhh•¹ÁhhÁhÁ�•¹•¹hhhh•¹hhW                                                                                                                Xhhh•¹ÄÍÄÍÄÄÍÍÍÍÑÑÑÍÑÑÍÍÑÑÍÍÑÍÑðÑïððððððÑðïòðóóóóððóüüóüýüóóóðòóððÑÑðÑÍÍÍÍÍÍÍÄÄÄÁÁÁÁhhhhchccccbXXXTTT                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,        XXXXbXXXXXbXXXXbXbXbXXbXXbXXXbXXbXXbXbXXbXXbXXbXbXbXbXXbXXbXbXXXXbXXbXXbXXbXbXXbXbXXbXXbXXXXXXXbXXbXXXXbXbXXbXbXXXbXXbXbXXbXXbXXXXbXXXXXXXXbXXXbXbXXbXbXbXbXbXbXbbbbXbXXbXXX          bhhhhhhhhh•¹••hh¹•Áh•Áhhhhhh•¹•hhhhhhhÁh¹•¹•Á¹•hhh�¹•hhhhhÁ�¾hh•Áh•h•hÁh•¹•Áhh•¹•hhh¹•hhhÁ¹•h¹•¹�¹Á•¹•h•h••¹•hhhhhhÁhÁhhhhÁhhhh�¾hhhhhhhhh•hh•hh�hÁ¹•Áhhhhhhh¹••h¹•hhhÁhh¹•hÁ•hhhhh•h¹•hhhÁhhhh•Áh¹•h„Á¾„h•Áhc                                                                       bchhhÁÁÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÑÑÑÑÍðÑÑÑÑÑðïóóðððóððóóóóúóóóóóðóóðóðððÑÑðÍÍÑÍÍÍÍÄÄÄÄÄÄÁhÁÁhhhccccXXXXTXXTTTT       ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,       XXbXXcXbXbXbXXbXXXXbXbXXbXbXbXbXXXXXbXbXXbXXXbXXXbXbXXbXXbXXcbXbbXbXXXbXbXXbXXbXcXbXXXcXcbXcbXbXXbXbbcXXbXXbXXXbXbXbXXbXXbXXbXXbXXXXbXbXbbXbXbXXbXXbXXXXXbXXcXbXXXXXXXXbXXXX                    McÁhhhh•Á¹�•¹hhhhh•¹„hhhh•Á¹„•hhh•hhÁhh•hhhhhhhÁ•¹••hhhÁg¹•h•¹Á•¹•¹hh•¹�hÁhhhhh•hhhÁhhh•�h¾Á�h••hhh•¹�Á¹hÁhhhh•ÁhhhÁhhh•ÁhÁ••¹„hhÁhhhhhùh•¹h•¹•Á�•hh••hhÁhh•¹hhhhhÁhhhhh•¹h•hÁh•¹„¾hhÁhÁhhh•¹Á¾„h•¹�¹•¹•ÁhhX                                                                                                                                    bhghhÁÁÁÄÄÍÄÍÄÍÍÄÍÍÍÍÍÍÍÍÑÑÍÍÑÑÑÑÑÑÑÑðððððððððððóóóóóóúóóóóóóðóððçðÑÑÍÑÍÍÍÍÍÄÄÄÄÁÁÁhhhhhhcccbXXXTTTTTT             ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,      XXXXbbbXbXXXbXXbbXbXXXXbXXXcXXXbXXbXbXXcXbXXcXbXXbXXcXbXcbXXbXXXXXXbXbXXXbXXcbXbXcXbXbXbXbXbXXXXbXXXXXbXXXbXbXbXXXXXbXXXbcXbcXXbXXbXcXXcXXXXcXbXXXbXbcXbXbXbXXXbXbXXbbbXbXbX           cghhhhhhh•¹•hhÁhhhhhÁhÁ•¹•h�¾¹•Áh¹•hhhhhhÁhÁhhhhhhh¹•hhÁhh�¹•hhhhh�Áhh•hÁhhÁhhhh¹•hÁh••¹•¹•„¹•¹�¹•hhÁhhhhhÁhhÁÁh¹•�¾„¹•h¹•hh¹•�¹•hhhhhhhhhhhhhÁhh¹•¹•hÁ¹•hhhhh�Á•hhhhhhhhÁhÁ�¹hhhhhhhhhÁhhhhhhhh�¹•Á�••�Á¹•hM                                                      \chhh•ÁÁÄÄÄÍÄÄÄÍÄÄÄÍÍÄÑÍÐÍÍÍÍÑÑðððïðððÑòððóððóóóóóðóðóúóóúúóòóðÑÑÑÑÑÍÑÑÐÍÍÍÄÄÁÃÄÄÁÁhhhfcccccXbXXXTTT ,,,,,,,,,,,,,,,,,,,,,,,,         XXbXXXXXXbXbXbXXXXbXbXbXXcbXbXcXbXXXcXXbXXcbXXXbXXXbXXcXXcXXcbXbbXXbXXbXbXbXXXXXcXbXXXbXXXXXcbXbXXXbXbXbXbXXXXbXbbXbXbbXXXXbXcXbXbXXbXbXXcbXXbXbXbXXXbXXcXXXcbXXbXbXXXXXXXXX                   Xhhhhhh•¹�•hhhhhhh•¹�•¹�•h¹„hhh•�hÁhhhÁhhhhhhhhhhhhhhhhh•¹„¾hÁhh•¹•h•¹•¹•hÁhhhh••hh•¹hhhh•¹�••�•¹¾„•hÁhhhhhhhhhh•¹hhhhhhhhhh•¹••¹hhhhhhhhh•hhhhhh�h•¹�hhhh•h•¹•¹„hÁhhhÁhh•¹•hh•hhhhhhhhhhhhÁhÁhhhh•¹•¹hhhhÁc                                              00UVV\^^^^^`^^^^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^`^^^^^^`^^^^^^`^^^^^^^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``^`^^^^^^^^^^^^^`^^^^^^^^^`^^^^^^^^^^^f–Â›ÆÆÆÆÆÇÆÌÌÌÌÉÌÌÌÌÌÌÌÌÌÌÌÌÌÌÎ×Î×Þ×ßßßßßßßßßæßßßàâàßàáâèèèßèßßßßßßßßÎÌ×ÌÌÌÌÌÌÉÈÇÆÆÆÆÆÆÆÆÂ–––––––…–‚‚‚‚‚‚‚‚‚�‚_‚‚x‚_zdz_‚_‚x‚‚‚‚^^^^^^^^^^^^^^^^^^^`^^`^^``````````^^`^`^^^^^^``^`^^^`````^````^```^^```^`^^^`^``^^`^^^``^^``^^^^^^^^^^^^^^^^^`^`^``^``^^^`^^^^^^^`^^^^^^^`^^`^`````^^``^^```^```^`^^^`^`^^^^`^^^`^^^`````^````````^``````^`^`^``^``^^````````````^`^``^^^``^`````````^`^```````e`````^\VUM000,,,,,,,,,,,,,,,,,,,,,,,,               XXXbXXbcXXbXXXbXXbXXXXbXXbcXcXbXbXbbXbcXXcXcXcbXbXXbXcXXbXcbXcXXXXbXbXbXXXcXbcXcXXcXbcXbXbcXbXXXbXbXbXXbXXcXXbXXXXXbXXXXbXcXcXbcXXXbXcXbXbcXcXXXXbXcbXcbXcXcXcbXXXXbXbXbXbcX             TchhhhÁhhhh¹•hhÁhhhhh¹•hh¹•hh¾„¹•¹•hhÁ�¹•hÁh•hhhhÁhÁhhhÁhÁhhhhhhhhÁ�¹•h�Á•¹ÁhÁhhh¹•hhhhÁhh•hh¹•¹•h�¹Áh•hhhÁhhhhhh••ÁhÁhhhhhhh•�¹•�¾hhhÁhhhh¹•h•Áhh•¹••¹•hhh¹•hhhh•¹•hÁhh•hÁ�¹•hh¹ÃhÁhhhÁhÁhhhhhhhhÁhhhhhÁhhW                                   0T^‚�ÊÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓ×ÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓ×Ó×Ó××ÓÓ×ÓÓØÓÔÓÔÓÔÓÔÓÓÔÓÓÓÓÔÓÓÓÓÓÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓ×ÓÓÓ×Ó×ÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÊÓÓÊ�“`U0,,,,,,,,,K2,,,,,,,,,,,,,        XXbXXbXXbXcXbXbbXbXbcXbXcXXcXcXcXXXXXcXcbXcXcXcXXbXcbXcXXcXXcbXcbXXXbXXcbXXcXXcbXcXcXXcXXbXXbXcXbXXXXbXXcbXcXbXbXbXbXcbXcXcXcXcXbXbXcXcXcXXcXcbXbXXXXcXcXXcXcXXcbXbXbXcXXcXX              cÁhhÁhhhhÁh•Áh¾Áh•Á�•hhhhhhhÁhhhhhh•¹•h•h•¹hh•ÁhhhhhhÁhÁhhÁhhhÁhù••hÁ¹hhhhhhÁhhhhhhhhh•¹hhhhhh•¹••f¹hhhÁhhhhh•¹hhhh•Á••hh¹hh•¹•hÁhÁhhhhÁ•¹ÁhhÁ¹�•¹�•hhhhhhÁh•¹�hh•h•¹h•¹••hhÁhhhhhhÁhÁhhÁhhhÁhÁhhhhhÁhhd                                        0Va–�ÓÓÓÓÓÓÓÓ×ÙÚÚàààèèëèèëèèëèèëèèëèëèëèèëèëèèèëèèèèèèèèèèèèèèëèëèëèëèëèëèëèèëèëèëèèëèëèëñèèëõèëôèíèèëèõèëèëèëèëíèëèèõèëíèëèõèëííèíèëñèíèõèíèíèëèõèíñíñíñëõíõõõõõõõõõèõèõñõñõòõñõõôõõôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ÷õõ÷õõ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôõõõõõõõõõõõõôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôõõõëõõõõôõõõõõõõõõõõôõõôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôõõõôõõõôõõôõõôõñõñõèõèõèõèõôôôíñëíñëõõõõõôôôôëôëôëôëôôèëèëèëíèëèëèèëííñíèëõèëõèëèëèõèíèëèèæààÚÚÚ×ÓÓÓÓÓÓÓÊ–f\M,,,,,,,LJNMµ·µ¶»¶»»»»¶µµ¶¹M,,,,,,,,,,,,,,, ,      XXXXbXbXbXXbcXXXXXcXXXXXbXcbcXcXbXbbcXcXcXbXcXXbXbXXXXXcXXXcXXXbXXbXXXXbcXbXcXXcXXcXXXXXcXXcXXbXcXbXbXXbXXXXcXXXbXXcXXXXXbbcXcXcXXXbXcXcXcXbcXXbXXbXbXbXcbXcXXXbXXbXXXXcXbXX                  XdhÁhhhÁ•hhh¹•hh�¹•¹•¹•hhhÁhhÁhhhhhhhhhh¹••hhh¹•hhhh„¾hhhhhhhhhhhhhÁ¹•h�hhhhhhhhhhÁhhhhh•hhhhhhhhhh¹•ÁhÁhhhÁhhhhhhhhhh¹Á¹•hhhhhh�¹•ÁhhhÁ•h•�•h•h•„¹•hh¹•hhÁhhÁhhhhhh¹•hhhhhh¹•hhhhhhh•hhhhhhhhhhhh•Á•hh•hX                                            \‚ÊÓÓÓÓÓÓÙàèèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúüúúúúúûüúúúúúûúüüüúúúüüüúüüúüúúýüúýúüüúýúüüúüúýüúýüüýúýüüüýüýüýüýüýüýüüüüüüüüüüüüýýýýýýýýýýýýýýýýýýýýýýýýýýþþýýýýýýýýþþþþþþþþþþþþþþýþþþþþþÿþþÿþþþþþþþþÿýþþþÿýþþþþþþþÿþÿþÿþÿþÿþÿþÿþþÿÿþÿýÿþÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿþÿÿþÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿýþÿÿÿþÿþÿÿþÿþÿþÿÿÿþÿþÿþÿþþþÿþþÿýÿþþÿþÿþÿþÿýÿýþþþþþþþþÿýÿþÿÿþÿýÿþÿýþÿýþÿýþýÿýÿýýÿýþþýþýþýþýýýþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüúýúýúýýüýüýüüýüýüýýüüúûüúýúýüúüüüüýúýúúýúüýúûüüúýú÷õëæÚ×ÓÓÓÓÓÊ”\0,,,,,,,0XcM³,IN¼»¶¶µ»»¶¶µ¶¶¶»¶»»Í»»¶¶µµµ¹M,,,,,,,,,,,,,,,,,,,,,,,,,,,,  ,          XcbXcXXXcXXcXcXcXcXcXcbcXXXcXcXXcXXXXcXcXcXXbXbXXcXXcXbXcXcXcXXXcXcXcbXcXcXcbcXXcXcXcbXcbXcbXcXcXXXXcXXXbXcXcXcXcXcXcXcbXXXcbcXcbXXXcXcXcXXbXbXcbXXXcXXXXXcXcbXXcXcXcbXbXcXX       0cÁhh•¹•hhhh••¹„hhhhhhhhÁhhhhhhh•hhhhhhh�¹•hhhh•hh•¹�hhhhhhhhhhhhhhhh•¹•hhhhhh•hhhhhg•¹•hhhÁhhhhhhhhhhhhÁ•hhÁhhhhhÁhhh�•hhhhhh¹„¾�hh•¹•¹•¹•¹•¹•¹�•hhhhhÁhhhhhhhhhhhhhh•hhhhhhhhhh••¹�hhhhhhhhhh•¹•¹h•¹hd0                            UfžÓÓÓÓÙàèèõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ú÷ú÷ú÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúüúúúúúúúúúýúüúúüúúüúüúüüûúúüüüúûúüýúýúýüüúýúýúýüüýúýýüýúýüýúýüýüýýüüýüýüýüýüýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýþýýýýýýþýýýýþþþþþþþþþþþþþþþþþþþþÿþÿþþÿýþþþþþþþÿþÿþÿþÿýÿÿþÿýÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþþÿÿÿþÿÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿþÿþÿÿþÿþÿÿÿþÿþÿþÿÿþÿþÿÿÿÿýÿÿþÿþÿÿþÿþÿþÿþÿýÿþÿþÿþÿþÿþÿþþþþþýÿþþÿþÿýÿþýÿþÿþýÿýÿþþÿþÿþÿþÿýÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýþýþþýþýþþþþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýüýüýüüýýýýýýýüýýüýýúýúýýýýüüýúýüûüýúüüúúüüýúõëèÚÓÓÓÓÊ“\0,,,,,,,ccccc‚¶µµµ¶¶µ¶µµµµµµµµµµµµµµµµµµ¼µµ¾,,,,,,,,,,,,,,,,,,,,,,,,, ,       XXXcXcXcXbcXcXcXcXcXcXcXXbXcXbcXXbcXXcXcXcXXbXXcXXXcbcXXXbXcXXbcXcXcXcXXcXb@=XcXbcXcXcXXXcXXcXXcXcXcXcbcXXXcXcXcXcXccXXcXbcXXXcXXXcXXcXcXcXXXXcXcXXcXcXcXXcXXXXcXcXcXcXcXXcX               chhhh•�¹Á•hh¹•�¾hhhhhhÁhhhÁhhhhh¹•hhh•¹••�¹•hhh•¹••hh¹•hhhhhhhhhhhhhhhhh¹•hh•h¹•hhhhh•�¹•hhÁhhhÁ•hhh•hhh�¹Áhhhhh•hhhhhh¹•hÁhhhhhh•¹•hh•�Áhhhhhhhhh¹•hhÁhhhÁhhhhhhhhhhhh¹••hhhhh•h¹•¹f•¹•hhhhhhhhhhhhhhhX                                ^�ÓÓÓÓÙàèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷÷ú÷ú÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúûúüúüúúüúúúúûüúûüúýúüúúüúýúûüüüýúúüüüüúüüüýúýüúýüýüúýüüüýüýüýüýüüýüüýüýüýüýüýüüýüýýýýýýýýýýýýýýýýýýýýýýýýýýýþýýÿüþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþÿþÿýþþþÿýþþÿýþþþÿýþþÿþÿþÿþþÿþÿþÿþÿþÿþÿÿþÿÿÿþþÿÿþÿÿþÿÿÿÿÿþÿÿþÿÿÿþÿÿþÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿÿÿÿþÿÿÿÿÿÿþÿÿþÿþÿþÿÿÿþÿÿÿþÿþÿÿþÿÿþÿÿþÿþþÿþÿÿþÿþÿþþþÿþÿþÿþÿÿþÿþÿþÿýÿýÿýÿþÿþÿÿþÿþÿýþÿýÿýÿýþÿýÿýýÿýþþþþþþþþþþþÿþÿýþþþþþþþþÿýþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýþýýþýþýýýýþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýüýüýýüüüüüüúýúüýüüýýýüúüúýüýüüýüýúýúýüýüûüüüüüüúõæÚÓÓÓÓÇf0,,,,,,,,,,0cccXccchºµµµµµµµ¼µµµ¼µµµµµµµµµµµµµµµµh,,,,,,,,,,,,,,,,,       XXcXXcbXXcXccXccXcXcccXcXcXXXcbXXXXbcXcccXcXbXcXbccXcbcXXXcbXXXXbXcXcXcbXXcA$cXXcXcbccbcXcXcXccXcXbXcXcXXccXcccXcXccXccXXcXXbcXbXbbXXXcXcXcbXXXXXccXcXcXbcXbXbXXXXcbcXcXXcXX         Thh•¹hhhhhhÁ•¹•hhhhhhhhhhhh�•¹�•Áh•¹�h•¹hhhhh•¹�Á¹Á�•hÁhhhhhhhhhhhhhhhhhÁh•¹�Áhhhhh•¹hhÁhhhhhhÁ¹hh•¹•h•¹•hh•Áh•¹h•hhhhhhhÁ••hhh•¹„hh•¹hhhhhÁhh•hhhhhhhhhhhhhhhhhÁhh•hhh•¹hhhh•¹•Á�h•¹�Á•hhhhhhhhhhhhhh„M                                  \–ÓÓÓ×àèòõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ú÷ú÷ú÷ú÷ú÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúûúýúüúúüúúúüúüüúýúüüúúúúüüüüúüüüýúüüüüýúýúýüüüüüüýüüüüýúýüüýüýüýüýüýüýýüýüýýýýýýýýýýýýýýýýýýýýýýýýýýþýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþýÿþþýþþþþþþÿþÿþýÿþÿþÿÿþÿþÿÿþÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿþþÿÿÿþÿÿþÿþÿþÿþÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿþÿÿþÿþÿÿþÿþÿÿþÿþÿÿþÿÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿþÿýÿþÿþÿþÿþÿþÿþþþþþþþÿþÿýÿýÿýÿþýÿýÿÿýÿýÿþÿþÿþÿþÿýþþýÿýÿþÿþÿþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýþþýþýþþþþýþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýýüýüýüüýýýýýýýýýýüüýúýúýýýýüûüüýúýúýüüýúýúüüüüûýúýüüüúõæÚÓÓÓ�^-,,,,XcXcXcXcchµµµµµµµµµµµµµµµµ¶µ¶»º»¹»¾¹ÁÁ¾0,,,,,,,,,,,,,,,,,,,,,     XXXcXbcXcXcXcccXccYYYXcXcXbYXbXXbYYXXcXYdXbXcXXbcXYYcXXcbcYYXbXcXYYbXcXcXcb@$XYXcXcXYYYXYXYcXYXbcYYXXcXYcXb[bXccXYYcXXccXXXYXXXXXXYYcbYcccXXXYcXcXcYYcXXcXYYXYXcXcXcXXcXcXcX                     chhhhhhhhÁhhh�¹•hhhÁhhhhhhh¹•hh¹•¹••¹•hhhhhhÁhhhhh�¹•¹••hhhhÁhhhÁh•hÁhhhhhh•¹•hhhhhhhhhhhhhhh�Áhhhh�¹•h�¹•h¹•Áhh�¹•h•hhhhh¹hhhhhhh¾hh�hhhÁhhhh¹••hhÁhhhhhhhhhhh•h•h¹•hhh•hhhÁhhh¹•¹•hh¹•¹•hhÁhhhÁhhhhc                                       U‚ÊÓÓÙàòõ÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷÷÷÷ú÷ú÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúúúüúúúúûúüúúüüúýúûüúüúúüýüýúüúûüüüûüüúýúýúüüüüüüüûüüüýûýüüýüýýüýüýüýüýüýüüýüýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýÿýþþþþþýþþþþþþþþþþþþþþþþþÿþþþþÿþÿþþÿýþþþÿþÿýþþþþþÿþþýþþÿþÿþÿýÿþÿþÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿÿÿÿÿÿÿþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿþÿÿÿþÿÿÿÿþÿÿÿÿÿÿþÿÿþÿþÿþÿþÿþÿÿþÿþÿÿÿþÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿþÿýÿýþÿþÿþÿýÿþÿþÿþÿþÿþþÿýÿýÿýÿýÿýþþþþÿýþþþþþþþþÿýÿýýþýþþþþþþÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýþýþýýýýþýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüýüýýüüüüüüüüüüûýüüüýúýúýúýýýûýýýüüûüüüüýýûüüúýúýûýúûüú÷ëÙÓÓÓ–\,,,,,,,McXcXcXcXcc¹¶µ¶¹¶¹¹¾»¹ÁÁÁÁÁÁÁÄÁÄÁÁÄÁÁÄÁ¾J,,,,,,,,,,,,,,,,,,,,,  XXcXXcXcXcXccXccY$$$@cXcX$@cXX$$>XA=XcXbXcXcX$@cXc$YbX@YXcXXXc@$@cX@$$@@$cb$Yc$@cA@Xc@A$cX$$cXcXcY$$@Xb@$Y$YXcXbY=XcbY$$XcY$cXcXcXcXcbXXcX          XhhÁ•hhhhhh•¹•h•¹••h•hhhhhh•¹„¾�h•¹�•hh•hhhÁh•hh•¹„•�•¹h•hhÁhhh•¹•¹�hhhhh•¹�hhhhhhhhhhhhhhh•¹•h•h•¹hh•¹•hhhhÁhù•h•¹hhhhh�hhhhÁhhhh¹•hhhhhhÁ�•¹hhhh•hhhhhh•h•¹Á¹hh•hh•¹�hhÁhh••�•h•h•�hhhhÁhhhhhhÁhhW                                          0`žÓÓ×àèòõó÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷ú÷÷ú÷ú÷ú÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúüúûúúüúúúüúüúûúúúúüúüûúýúúúúýúüüúýúüûüüüüüüýüûüüýüüýúýüüüýýüýüüýüýüýüýüýüýýüýüýüýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþÿýÿþÿþþýÿþÿþÿþþÿþÿÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿÿþþÿþÿþÿÿþÿþÿþÿÿÿþÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿÿÿÿþÿþÿþÿÿþÿþÿýÿþÿþþÿþÿþÿþÿþÿÿÿþÿþþÿþÿþÿþÿþÿþýÿýÿýÿýÿýÿýÿþÿþÿýÿýÿþÿþÿþÿþþþýÿýÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþýþýþþþþýþþýýýýýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýüýüüýýýýýýýýýýüüüýýüýüýüýúýúüúüüüüüüüýúüúüýüýúýúýúýüüüüúýõæ×ÓÓÓ“M,,,,,,cXXcXccXccchÁÁÁÁÄÁÁÁÁÄÁÄÁÁÄÁÁÁÁÁÄÁÁÄÁÁľg,,,,,,,,,,,,,,,,,     XcXcXccXXXcXccXX=@bcXY$@ccY$Xc@$YbXXc@$cXcXXXcXB$cX@$Yc@$Yb$$X@Yb@XcXcXc@$XcYXXYcX@@cXY@XbYXb@$XX@@@$cbYcY$XccccXYc@bX@XXYXYcXcXXbX$@bcYcX@Xc@bXcXcXbcXcXccX                Mhhh•¹•hhhhÁh�¹•hhh¹Á¹•hhhhh•hh•¹Âhhh¹Á•¹•�Áhh¹•h•�¹•¹•h•¹•hh¹•hÁ�¾„¹•hh•hhÁ•¹••hhhhhhhhhhhhhh�¹•¹•�hh•�¹••hhhhhh�¹•hhhhh•¹•hÁhhhhhhhhh¹•hhÁh�¹•hhhhh¹•h•¹•h¹••h�Áh•¹•Áh•¹••¹•h¹•¹•¹•¹•¹•h•h¹•hhÁhhhc                                :”ÊÓ×Ùèòò÷÷÷÷õóõ÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷ú÷ú÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûüúúúúûüúûúüúúýúýúüúüüúýüýýúýúýúüüüüúýúýúýúüüýúüüýúýüüýýúüýúýýüýüýüýüýüýüüýüýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþýýþþþþþþþþþþþþþþþþþþÿþÿþþÿýþþþþþþÿþÿýþþþÿþÿþþþþþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿþÿþþÿÿÿþÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿþÿþÿþÿþÿÿÿþÿýÿÿÿþÿþÿþþÿÿÿþÿÿþÿþÿþÿÿÿþÿÿþÿþÿþÿþÿþþþþÿþÿþþÿþþþÿþþþÿýÿýÿþÿýÿýÿþþþþþÿýÿýþþþþþþþÿþÿýþÿýþþþþÿþÿþþþÿýþþþþþþþþþþþþþþþþþþþþþþþþþþýþýýþýþýýýýþýýþþýýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüýüýýüüüüüüüüüüýýýüüýüýúýüüüýýýýýûüýüûüüýüýúýúýúýúýúýúýûüüüúúõàÓÓÓ�\,,,,,,,,,,XcXcXbbcXcchhÁÁÁÁÁÁÄÁÁÄÁÁ»¾»»»¶»¶¶¶¶µµµ¶h,,,,,,,,,,,,,,,,,,,,,,,,,, ,    XXcXcXXcXcXccXc@$cXXcbYXc@$Xb@$$YB$XcXcXcXX$YXcc$YXYXcXY$@ccX@Xcccc@ccc$YY$cbc$B@$cXX$$$$c@>Xc=@Y$XcX$$cXcXccY$@XY$$YYXcXY@cY$YX$@cbYXccXcXcXcXcXcX          X•¹�hhh••h•¹•h•hhÁ��hhhh••¹h•¹�hhhhhhhhhÁ¹hÁ�h•¹hhhhhhhhhÁh•hÁ•¹•hhÁh•¹Á•¹hh•¹hhhh•hhhhhhhh•¹„¾�•¹hùhh•¹hhhhhhhhÁhh•¹•¹�hhhhhhhhhhhhhhh•h•¹••hh•Áhh•¹hhh¾�•¹hhh•¹�hh•¹�Á¹�Áhhhhhhhhhhh•¹Á•hhÁhÁhhhX                                  M–ÓÓÙàñõ÷÷÷õ÷÷÷÷÷÷÷õ÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷ú÷÷ú÷ú÷ú÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúýúúúúúúüúýúúúúüúüúúüúúúúüúüúüüúýúýúýúüüýúýüüýüüüüýúüüýýüüüúýüýüýüýüýüýýüýüýüüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýýýýýþþýþþþþþþþþþþþþþþþþþþþýþþþþÿþþÿþþþýÿþÿýÿþþÿýÿÿÿþÿýÿþÿþÿþÿýÿþÿþÿþÿþÿþÿþÿþÿÿÿÿþÿþÿÿþÿÿÿþÿþÿþÿÿÿþÿþÿþÿÿÿþÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿþÿþÿÿþÿÿÿþþÿÿþþÿþÿÿÿþþÿþþÿþþÿþÿþÿþÿÿÿÿþÿþÿþÿþÿþÿþÿÿþÿýÿþýýÿýÿýÿþÿþÿýÿýÿýÿýÿþþþþþýÿýþýÿþþþþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýþþþþýþþýýþýýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýýýýýýýýûýüüýúýüýüüûüýýýúüúüüýúýüüýúýúýúýúýúýúýúýúýúýúýúýúúèÚÓÓ�\-,,,,,,,cXcXXXcXcXcc¾»»»»¶¶¶µµµµµµµµµµµµµ¶µµµµ¶µ�,,,,,,,,,,,,,,,,,,,,,,,,,,,,       XcXcXccXcXcXccX@XXcXcX@X$Y@$c@cXXX@$YccXcXcY@cbcYY$XcXc$@$YXXc$@XcXcX@$bcYYXXcX$@@$ccY@ccYX@$cX$@@cX=$bcXcXccX@YccXYbc$@$@cXc=@Y$XXYcX>@c=@Xc@XcXcXXXcXcXcXX            Xhhh¹•Áh¹•¹•hhh¹•h¹•¹•hh•¹•hh¾„¹•hh•h•hhh•�Á•¹•hhhhhhhhÁhhhh•¹•h�¹•hhh•�¹•hhhh�ÁÁhh•¹•ghhhhhhhhh¹•hhhhhh•�Á•hhhhhhhhh�•h•¹•hhhhÁhhhhh•Á•¹•¹•hh¹•h¹•hhhhhhh•¹•hhhhh•¹•h•hh••¹•hhhhhhhhhhÁhh�¹•hÁhhhhM                                   U–ÓÓÙèò÷÷õóõ÷÷óõ÷õ÷÷õ÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷ú÷÷÷ú÷úú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúúüúúýúûúüúúüúýúüüûüüüüúýúýüûüüüúýüüúýúýúýúýúýýúüüýüüüýýýýüýúýüýüýüýüüýüýüýýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþýýþýþþþþþþþþþþþþþþþþþþÿýÿþþþÿþþþÿþÿýþþÿýÿþþÿýþþþþÿýþÿþÿþþÿýÿþÿþÿþÿþÿþÿþÿÿþþþÿÿÿþÿÿþÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿÿÿÿþÿýÿþÿþÿÿþÿþÿÿÿþÿÿÿþÿþþÿÿþÿÿþÿÿþÿþÿþÿþþþþþþþÿþÿþÿþÿþþþþþÿþÿÿÿýÿýÿýþþþþÿýþþÿýÿýþÿþÿþÿþÿýÿýþþÿþþþþÿþÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýþýýýýþýýþþýþýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýüüüüüüüüüüýûüýüýüýüüýúüúýýýýýûýúýúüüüüüýúýúýúüüüûýúýúýúýúýúüúõàÓÓž\,,,,,,,,cXXcXcXXcXcX¾µµµµµµµµµµµµµµµµ¶µ¶µµµ¶µµµ¶h,,,,,,,,,,,,,,,,,,    XXccXcXccXcXcXc$YccXcXc$@Y$cY$XX!@$$c@$=XcXcbY$$@B$$cYcXXc@XccX@$cXccc@$$@$=cX@$@$@$Yb$Yc$=@$@c@$=$Y$$YXB$@@cXccXc$=@YXc@$@@X$=YX$Xc=@c@$@@XXY$$$cXccXcXccXcccW            ch„•hhhhhhhhhh•Á�„Áhh•¹�hhhhhhhh•¹•¹hh•¹•¹hhhhhhhhhhhhhhh•¹�••¹„¾hh¹hhhh•hhÁ¹�h•¹�••ÁhÁhhhhh••hhhhÁh•¹•¹hhhhhhhhh•¹•¹•hh•hÁhhhhhh•¹hhhhhhhhhhhhhhÁhh•h•¹�hhhhh•¹�••¹h•¹hhhhhhhhhhhhhhh•¹„¾hhhhhhc                                       U–ÓÓÙèòò÷òó÷õ÷óõ÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷ú÷ú÷ú÷÷ú÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúüúúúûúúúúüúüûúúúüúúúüúûúüúüúúüúýúüúýúýúýúüüýúýúüüýüüýúýýúýúýüýüýüýüýüýýüýüýüüýüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýýýþþýþþþþþþþþþþþþþþþþþþþýþþþþþþþÿþþþýÿþÿþýÿýÿþÿþÿþÿýÿþýÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿÿÿþÿþÿþÿÿÿÿþÿþÿþÿÿÿþÿþÿÿþÿþÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿþþÿÿþÿþÿþÿÿþÿÿþÿþýÿþÿþÿþÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþþþýýÿýÿýÿþþÿþýÿþÿþýÿýÿþþþþþþþÿýÿþþþýÿþþþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþþýþþýýþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýýýýýýýýýýüýýýüüýüýýüýýýúýúýúýüýüýûüüûüüýüýüüûýúüüüúýúýúýúýúüüúõà×Óž\0,,cXXbcXbcXcXc¹µµµµµµµµµµ¶µ¶µ¶µ¶µ¶µ¶µ¶µ¶¶b,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , XbcXcccXcXccXcX=@cccXcX$A@YccYYcc@@YcX_@Y@YccXcYX@@YXcY$bcXc$@$YXcc@=ccccXYY@@YccXcY@@YY$$Yc@XcX@Y@ccYYY@YX=XcX@@YcXXXXcX@@XcXcY@@Xc@Y@@Y@cXX@ccY@@XcccX@@@$XcXccXcXccccXX        chhh¹•hhhhhhÁhhh¹�¹•hhh„¹•hhhhhhhhh�hÁhhhhhhh•hÁhÁhhhÁhhhhhhh¹•hhhhhhhhhh•¹•hhh•¹•hh¹•¹•hÁhhÁhh¹•ÁhhhhhhhhhhÁ•¹•hhÁhhh�¹•h¹•hhÁ•h•hhhhhhhhhhÁhh•hhhh•h¹•h•¹•hhhhhhh¹�ÁhhhhhhhhhÁ•ÁhhhÁhhhhhhhÁhhhW                            U�ÓÓÙèò÷÷÷õ÷õó÷÷õ÷÷õ÷õóõ÷÷õ÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷úú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúûüúúüúúüúúúüúýúúüüüúýüüúüüüüúýúýúýúüúýúýúýüüüýýúýúýúýüüüüýüýüýüýüýüýüüýüýüýýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþþþýýþýýþþþþþþþþþþþþþþþþþÿýÿþþÿþþþþÿýÿýþþþÿýÿýþþþÿþþÿþÿÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿÿÿþÿþþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿÿþÿþÿþÿÿÿÿÿþÿþÿþþÿÿÿþÿþÿÿÿþÿþÿýÿÿþÿþþÿþÿÿÿþÿþÿþþþþþþþþþýþÿþÿþþÿþÿþþÿþÿÿÿýÿýÿýÿþÿþþÿýþþÿýÿýþþÿþÿþþþþþþÿýþýþþþþÿþÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýþýýþþýþþýýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýýüüüüüüüüüüýüüúýûüýúüýúýúýüýüýúýúýúüüýüýúýúüúüüúýúýûüüüüüúýúýúûüüúõàØÓž\,,,,,,,,,,XXbXXcXXXbcc¹¶µµKµµKµ³µµµ³µµKµµGKµFµ¶¶¶»M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,  VcXcccXcXccXcXc@ccXcc@$XccccXccXccXccXccccccXccYccXccYXXcbY$@ccb$@ccccccXccccccccXcXcY@cX@XcccXccccXcXcc@@ccXccXccXcXccccXccXccXccXccccccXcccXccXccccccXYccXcXccccccccX             Wh¾�hhhhhhÁhhhhhhh•hhh¾hhÁhhh•hÁhhhhhhhÁhhg•¹�hhhhhhhh¹•hhhhhhhhhhhhÁhh•¹�hh••¹�•hhhhhhhÁhhhhhhhÁhhh•hhhh•h•¹�hhhhhhhhhhhhhh•¹h•¹•hhhhhhhhÁhh•¹•hh•¹�hh•¹�•hhhhÁhhhhhhhÁ•hh•h•¹�hhhhhh•hhhhhhhhÁd                                     0‚ÓÓÚèòóõòõó÷ò÷õóõóõó÷÷÷÷óõó÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷÷ú÷÷ú÷÷ú÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúüûúúúüûúúúüúúúüûúýúüúüüüüýúýúüüüüúýúýúýüýüýüýüýýüýüýüýüýüýüýýüýüýüüýüüýýýýýýýýýýýýýýýýýýýýýýýýýýþýýýýýþþýþþýýþþþþþþþþþþþýþýþýþýþþþþþÿýþýÿþÿþÿþýÿýÿþþÿþÿþþþþþþÿþÿþÿþÿþÿÿþÿþÿþÿýÿÿþÿþÿþÿýÿÿÿÿþÿýÿþÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþþþþýÿýÿýÿþþÿþÿýÿþÿþþýÿþþþþþþÿþÿþþýÿýÿþÿþþýþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþþýþþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýýýýýýýýýýüýýýýüýüüýüýüýüýúýüüýüýüýüúýúýüüýýûýýüüúüüýúûüüúýúüüüûüüúõæ×Ó�U,,,,,,XXXXXXbcXcXc¹µ¶Kµ GµKµµ³µµµ¶µµ³¶µ¶¶¶¶¶¹,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , XccccXccccccXcXc$@XcbY@ccccXccXcXccXccccXcXcccX@$YcXccc@$bY@$c@Yb@XccccXccXcccccccXcXccXcc=XcXccccXccccccXcXccXccXcXcccccXccXcXccXccccXcXcccXccXcccccXcXcY$XcccccccccccXX        0c„•¹•ÁhhhhhhÁhhhhh¹•hhhhhhhhh¹•hhhhhhÁhhh•hh•¹•hhhhhhh�¹•Áhhhhhhhhh•hÁhhhhhh¹•hh¹•hhhÁhhhÁhhÁhhh•hhh¹•h•h¹•h•¹•hÁhhhhÁhh•hh•hhhh�¹•hhÁhhhhhhh•�¹•h•hh¹•hhh¹hhh•¹•hhhhÁhh¹•h¹•h•¹•hhh•h¹•hÁhhhhhX                        0^ž×Ùèò÷÷õ÷÷óõóõóò÷÷õ÷÷õóõ÷õ÷÷õó÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷úú÷úú÷úúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúûúýúúýúúúûüúýúúüúüüúüüüúüüúüúüúúüúüüúüüúüüüüüüüüüüüüüüüüüýüýüýüýüýüýüüýüýüýýüýýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþýýþýüþþþþþþþþþþþþþÿýÿýÿýÿýÿýÿýþÿþÿýþþþþþÿýÿýÿþÿþþÿþÿþÿýÿþÿþþÿýÿþþÿþÿýÿþÿÿýÿÿþÿþÿÿÿýÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿþÿþÿÿÿþÿþÿþÿþÿþÿþþÿÿþÿýþÿþÿþÿÿþþþþÿþÿýÿýþþþþþþþþþþþþþýþÿþÿþÿþÿþÿþÿÿýÿýÿýÿýÿýþþÿýýÿýÿýÿþÿþÿþþþþþþÿýÿýþþþþÿþÿþÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþýþýýýýþýýþþýþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüüüüüüüüüüýüüüüýüýýüýüýüûüýüýûüýúýüûüüüüüûüúüúýúûüüûüüüýúýúýúûüüúýúüúõà×Óf0,,,,,,,,,,,McXbXbbXXXchº¶µ¶µKµ¶³KL³Jµ³K¶µ¸¶¶¶¶¶¹\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,,,,, , XcccXcccXccccXccb$$$@cccXcccccccXcccccccccccXcc@$cccX$$XcX@$XcccXcccXccccccccXcXccccXcXcccccXcccXccccXcXcccXccccccXcccccccXcccccccccccXcccccXccXcXccYcccXccccccXccX            c¹�hhhhÁhhhhhhhh••hhhÁhhhhhÁ�•¹•hÁhÁhhh•¹••¹�•hhÁh•h•¹„ÁhhhhhÁhÁh•¹hÁ•h•¹•Á�•hhÁhhhhhhhhhhhhhh•¹h¾„h•¹•¹�••¹�•Áh•h•¹•h•¹h•¹hhhhÁhh•hhhhÁhhh•¹hh•¹•hhhÁhhh„hÁ•¹�•hÁhÁhhÁ�hhhh•¹�•Áh¹hhhhÁhhhhÁhc                              :–Ó×àñ÷÷õò÷ò÷õóõ÷÷÷õóóõ÷÷õ÷÷÷÷÷÷÷õ÷õ÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷÷÷÷÷ú÷÷ú÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúúúúúúúúúúúüúúüúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüþüüþüüýüýýýýýýýýüþüýýýýýýýýþþýýýýýýýýýþþýÿþýüýýþýþþþþþþüþþþþþþþþþþþþþþýÿüÿüÿüÿüÿýÿþüÿþÿüÿüÿüÿþÿýÿÿþÿþÿÿþÿÿÿþÿýÿÿþÿÿþÿÿýÿÿþÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþþýÿýÿýÿþÿþÿþþÿþÿþÿþÿþþþþþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþþýþþýýþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýýýýýýýýýýüýýýýüýüüýüýüýüûüýüüýüüûýüüüýúýüýüýüüýüûüüûúýúýúýúüüûúýúüûüýûèÚÓÇ\-,,,,,,,,,,,XXXXXXXcXch¶¶µ·µ¶¶·µ¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶»c,,,,,,,,,,,,,,,,,,,,,D²D,,,,,,,,,,  XcccccXcccccXcXcXcXYXccccccccXcccccccXcXccXcccXcXccYccXcccXXccccccXcccccccccccXcccccXccccXcccXccccccccXcccccXcXcXcccXccccccccXcccccccXcXccXcccXcXcccccXcccXcX$ccccXcccccccXX             Xh„¹•hhhhhhhhhhÁhh¹•hhhhhhhhh¹•�Á¹•Áhh•h•�¹•hh¹•h•h¹•h�¾hhhÁhhhhÁhh•hh¹•hhh¹•¹•hhhhhhhhhhhhhhhhh•„¾¹•hhhhh¹•hh¹•h¹••�¹•h�Áh•hh••¹•h¹•hhhhhhhhhhh•�¹•hhhhhh¹•hhhh¹•hÁhhh•¹•hh•hhh¹•hhhhhhhhhÁhhc                                  0‚ÊÓàè÷÷õ÷ó÷óõóóõóò÷ò÷õ÷÷õó÷õóõóõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷ú÷÷ú÷÷úú÷÷ú÷ú÷÷úú÷úúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüþüýýüüýýýüþüýüþýýüýþþýýüýüüüÿüÿüÿüÿüÿüÿþþÿüþþþüÿüÿüÿüÿüþÿüÿüÿþÿþÿüÿþÿþþÿþÿþÿþÿüÿüÿüÿüÿüÿüÿüÿýÿÿýÿþÿþÿþÿÿýÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿÿþÿþÿþÿþÿþþÿþÿÿþþÿþÿÿþÿÿþþþþÿþÿýþþþþþþþþþþþþþþþþþþÿþþÿýþÿýþÿþÿýÿýÿýÿýþþÿþÿýþþþþþþÿþÿþÿþþþþþÿýþÿþÿþÿþþþþþþþþþþýþþþþþþþþþþýþþýþþþýþýþýýþýýýýýýýþþýþýýýýýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüýüüüüýüýýüýüýüýüýúýüüýüüüýûýüüüúýúýúüüüüüüüýúýúýúýúúüüúýúýúúüú÷æ×Ó–M,,,,,,,,,MbcXbXXXcc¹¶¶¶¶¶¶¶¶¶¶¶¶»¶»¶»¶»»»»»»¾T,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDD,,,D,,,, , WcccccccccXcccccccXccccccccccccccXccXcccccccccXccccccccccccccccccXccccccccXccccccccccccXccccXcccccccccccccXcccccccXccccccccccccccXccXcccccccccXccccccccccccccccccXcccccccXcX         chhhhhhÁhhhhhhhhhhhhhhhhhhhÁ•¹�hh•h¹•¹�¹hhhhÁh•¹h•�•¹„ÁhhÁhhhhhhh¹hh�•hhhhhhhhhhhhhhÁhhÁhhhhhhh¹�h•hh•hhhhhhhhhh•¹hhh•¹•¹Áh•¹hhhh�hhhhhÁhhhhh•¹hhhhhhhh•�hhÁhhhhh•hh•¹�hh•¹hÁhhh•hhhhhÁhhÁhhhM                        \�ÓÙèòõóõóõ÷õ÷÷õõóõ÷õ÷ò÷ò÷óõ÷÷÷÷÷óõóõóõ÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷úúúüúüúüúüüúüüúüüúúüüúüüüüüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüüüüþþüüþüþüüþüþüþþüþþþþüþþüþþþüþþþþþþþþþþüþþþþüþþþþþþþþþþþþþþþüÿþþþþþþüÿþüÿüþþþþþüÿüÿüþüÿüÿüÿþþþþþþþþþþþþþþþþÿüÿþÿþÿþÿüÿþÿþþÿþÿþþÿþþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþþþÿþÿþÿþÿþþþþþÿþÿþÿþÿþþþþþþýÿþÿþÿþþÿýÿþþþþþÿþþÿþÿþþÿýþýÿýÿþÿþþþþþýÿýýýýþýÿþÿþþþþþÿþÿþÿþÿþÿþÿþýýýþþþþþþþþþþþþýþýþýþýýýýýþýþýþþþþþþþþþþþþþþþþþþýþþþþþýÿþýþýýýüýýüüüüüüýýüýýýüüüûýüýúýüüûüüüüûúüýúýúüüüüûüýúüúüýúüûúõà×Êf0,,,,,,,,,0XXXXcXh¹¶¶»¶»¶»»»»·¶¹µRJRKM0L0M,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD´DDDDDD,,,,,,,XccccccccXcccXcccccXcccccccccccccccccXccXcccXccccccccccccXccXcccccccXcccXccXccccccccccccXccccccccccccccccXcccXcccccXcccccccccccccccccXccXcccXccccccccccccXccXcccccccXcccXccX           cdhhhÁhhhhhhhhhhhhhhhÁhhhhhh�•„¹•h¹•h�Á•„¾Áhhhh•�¹•¹Á�h¹•¹�h�Áhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhÁhhhhÁhh¹••¹•hhhhhÁhhhhhhhhhh�••hhhhhÁh¹•gÁhhhhhhhhhhhhhhhÁhh¹hhhhh•hhh¹•¹•h¹•h•hhhhh•¹•hÁhh¹•hhhc                                   0‚ÓÙàòõ÷÷÷÷÷÷÷÷÷ò÷óõ÷ò÷óõóõóõ÷÷õ÷õ÷õ÷÷÷÷÷÷÷÷÷÷÷÷úüüþÿÿÿÿÿÿÿþÿþÿþÿþÿþþÿþþÿÿüÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿÿþÿþÿÿþÿþÿþÿþÿþÿÿþÿÿþþÿüÿþÿÿþÿþÿþþÿþþÿþþÿþþÿþÿþþÿþþþÿþþÿþÿþþÿþÿþÿþþÿþþÿþÿþþÿþÿþþÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿÿÿÿÿÿÿþÿþÿþÿÿþÿÿþÿÿÿÿþÿÿþÿþÿÿþÿÿÿþÿþÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿþÿþÿþþþþþþþþþþþþþþÿÿÿþÿþÿþÿþÿþÿþÿÿþÿþÿþÿþÿþÿýÿýÿýþþþþþþþþþþþþþþþýýÿýþþþþþþþþþþþþÿÿþÿÿÿÿÿÿþþþýüüúýüüüúüüüúýüüýûýüýûýúýýûüüûüúúüüüûúýúüüúúèÚÓ�M,,,,,,,,,,LXcbccRKRLM,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D´´DD,D²I,,DD,,,,    XcccccccccccccccXccccccccccccccccccccccXcccccXccccccccccXccXccccccccccccccXcccccccccccccccccccccccccccccccccccccXccccccccccccccccccccccXcccccXccccccccccXccXcccccccccccccccX                 MhÁhÁhhhhhhhhhhÁhÁ•¹hhhh•Á•¹•¹�•h�hh•¹•¹�hÁhh•¹„hhÁh•¹�•�h•¹hhhhÁh•hhhhhhÁhhhÁhhhhhÁhhhhhhhhhÁhhhhÁ•¹�hh•¹••hhhhhhhhhh•¹•¹hhhhhÁh�•hÁhhhhhhhhhhÁhÁ•hhhhh•Áhh•¹••h�h�Áh•�•¹Á•hh•¹�•ÁhÁ�•hhhhhW                        U–×Úèõ÷÷óõ÷óõóõóõ÷óõ÷óõóõóõ÷÷÷óõó÷ó÷÷÷õ÷÷÷÷úüþüÿÿÿþüüúúúóúóóúóó÷÷ó÷óóúóú÷óóú÷óóóúóúó÷óóúóóú÷óóúóúóúóóúóóú÷óó÷ó÷÷óóó÷÷óóóú÷ó÷úóúóóóúóúóóóúóúúúúóúúóúóúóúúóüóúúúúúúúóúúúúüúóüóüóúúüúúúüúúúüúüúúüúüüúüüüúüüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüþüüüüýüýüüýüüþüüýüýüýýþýþýýýüþþþüþþüýþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþþþþþþþÿþþÿþþÿþþþÿþþÿþÿþÿüÿþÿüÿþÿüÿýÿÿÿÿþÿÿÿÿÿþÿÿÿþÿþÿþÿÿþÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþþÿþÿÿÿÿÿþÿþÿþÿþÿþÿýÿþÿþÿþþþþþþþþþþþþþþþþþýþýýýþýþýýýýýýýýýýýýýýýýýýýýýüýüüýüýüýüýüüüýüýüüüüüûýýüýüüüüüüüüýúýúüúüúýúüúüúýúüúýúüúúüúúúýúúûúúúúúúúúúúúúúúúúúúúúúúú÷÷÷ú÷ú÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷÷÷÷õ÷÷÷òóõ÷õ÷õóõ÷÷ò÷óõ÷÷÷÷úüýýÿÿÿþýýýýýüýüüúýúüúýúüýúýúüýúüüüüüûúüýúüûúüûú÷à×Ç\-,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD´´´´´D´´´DDD´²D,DDD,,D,, ,XcccccccccccccccccccccccccccccccccccccXccXccccccccXcccccccXccXccccccccccXccXccXcccccccccccccccccccccccccccccccccccccccccccccccccccccccXccXccccccccXcccccccXccXccccccccccXccX              chÁhhhhhÁ„Áhhhh¾„¹•�•h•Á¹•hhhhh¹•¹ÂhhhhÁhhhhhhhÁhhÁh•hh¹•¹•Á„¾Áhhh¹•h•hhhÁhÁhhhÁhÁhhhÁhhhhhhhhhhhhhhh•¹••hh¹•hÁhhhh•ÁhhhhhhÁhhhhÁh¹ÃhhhhÁhÁhhh�•hÁ¹•h••Áh¹•hhhh¹•¹Âh¹•¹Áhh�¹•hhÁh¹Á�¹•¹•hhc                                     ^ž×àñ÷÷÷õ÷÷÷õ÷õ÷÷÷÷õóò÷ò÷÷õóò÷òõó÷õ÷õ÷÷úúüýÿþþüüúóóú÷úóó÷úóóúóóúóóúóúó÷óóó÷úóóúóúóóó÷óúóóóúóóúóó÷óóó÷úóóúóó÷úóúóóúóúóóú÷úóóúóóóó÷úúóúóúúóú÷÷óóúúóóúóüóüóúúúóúúóúúúúúúúúúúóüúúúúüúüóüúúúúüúüúúüúüúúüúúüúüúüúüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüýüüüþüýýýüþýþýýþýüþüþüþþýþüþþýþþþþþýþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþþþþþÿþÿþÿþþþÿþþÿþþÿþþÿþþþÿþÿÿÿþÿÿÿþÿÿÿÿýÿþÿÿþÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿÿþÿÿÿþÿþÿÿþÿÿþÿþÿþÿþÿþþÿþÿþÿþþþþþþþþþþþþþþþþþþþýþþþþþþþþþþþþþþþþþþþþþýþþþýýþýýýýýýýýýýýýýýýýýýýýýýüýýüýüýüýüýýýüýüýüûüüüüúýúýúýúýúýúüýúüúýúýúýúýúüúúúüúúûúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õó÷÷ò÷÷õóò÷óõ÷òóõ÷õ÷÷÷÷÷÷÷÷÷÷÷÷úüýÿÿýþýüüýüüüýüüýúýúýýúûüúýúûüüüúüúýúýúýúý÷ë×Ê‚0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI´´´´´´²D´´´´´´´´´´´,DDDD,D,,D,,,  XccXccXcccccccccccccccccccccccccccccccccccccccccXccccccccccccccccccccccccccccccccccccccXcccccccccccXccXcccccccccccccccccccccccccccccccccccccccccXcccccccccccccccccccccccccbX                   Xhhhhhh•¹ghhÁhhhh•¹•¹•¹�•hhhhhhhhhhhhhhhhhhhh•¹hÁ�•¹hhhhhh•¹�hhhh•�•¹hhhhhhhhhhÁhhhhhhhhÁhhhÁhhhhhh•¹„•¹hhhh•hhhh•¹Áhhhhh•hhhhhhhhhhhhhhhhhhù•¹�h•¹•¹hhhhhhhhhhhhhh�•hh•¹„hhhhhhhhhhhhhhhX                           0fÓÙèò÷õ÷÷÷÷÷ó÷÷÷óõóõóõ÷õ÷÷òóõ÷ò÷÷õ÷÷÷úüüþÿþüúúóúóóúó÷óóóúóó÷÷óúóó÷úóóóúóúóúóóú÷óóóúóúó÷óóú÷óóúóú÷óúóúóóóúóóúó÷óóú÷óóóúóóóó÷úóúóú÷óóóúóúóó÷÷óü÷úúóúüóúóúóúóúúúúúúóúúúúúúúúúüóüúúúúúúüúüúúüúúüúüúúüúüüüüúüúüúüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüþüüþüüüýüþüüýüýüýüüüþüýýýýýýýþýýýýþüþþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþþþþþþÿþþÿþþþÿþÿþÿÿþÿþÿþÿüÿýÿþÿÿþÿýÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþþÿþþþþþþþþþþþþþþþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüýüýüýüýúýúýüýúýüýúýüüüýúýúýúýúýúúýúýúüúúúúüúýúüûúýúüúúúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷ú÷ú÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õ÷õ÷ó÷õóõ÷õó÷õ÷õ÷õóõ÷÷÷÷÷õó÷õ÷÷õ÷÷÷õ÷÷÷÷÷üýþÿþþýýüüúýúýúýúúýüüýúüüüûúýúýúýúýúýúüúõÚÓ–U,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D´²´´´´´´´´´´´¼´´´²,´ID,D´I,D,,,, XccccccccccccccccccccccccccccccccccccccccccccccccXcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccXcccccccccccccccccccccccccW             MchhhÁhhh••Áhhhhhhhhhhhhh¹Ãghh•hhhhhhÁ•hhÁhÁ•¹•�¾h¹•ÁhÁhhh•¾hhh••¹•¹•••hhhhhhhhhhÁhÁhhhÁhhhÁhhhhhhÁhÁh¾ÁhhÁhh¹•hÁhhh�¹•hh•¹•hhÁhhhhhhÁhhhhhÁhhhhhhhh�¾hhhhÁhhhhhhhhhhÁ¹•hÁhÁ¹•hh•h••ÁhÁhhhM                      U›×Úè÷÷÷÷÷÷õ÷õ÷õóõ÷õ÷÷÷õó÷óõ÷õóõ÷õó÷÷üýÿüüüóó÷úóó÷óúó÷óú÷úóóúóóúó÷úóóóúóó÷óóó÷úóóú÷úóó÷óúóúóóú÷óóóóúóóó÷úóóóúó÷óúóóóúóúó÷úóúóóóó÷óóúóúóúóúúóúó÷óúóúóúóúúúúúúúúóúúúúúúúúóüúúúúúúúúüúüúúúúúüúüúüúüúüúüüúúúüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüýüüüþüüüüüüþüýüüþüþüþýýýýþýýþüþýýþüþþþþýþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþþþþþÿþÿþÿþþþÿþÿþÿþþÿþþþÿþÿüÿÿÿÿÿþþÿþÿÿÿýÿüÿþÿþÿÿÿÿþÿþÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿþÿþÿÿþþÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿýÿþþþþþÿþþþþþýþþþþþþþþþþþþþþþþþþþþþþþýþýýýýýþýýýýýýýýýýýýýýýýýýüýýüýýüýüýüýúýüýüýúýüüüýüýúýúüüýúüúýúýüúüúüúýüýüúüúúúüúúúúûúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷ó÷ó÷÷õó÷÷÷óõó÷ò÷òó÷õóõóõó÷÷õó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýýÿþþýüüüüüüýüüúûüüüúûüüúüüúýúüüúýúýú÷àØÇ\-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD´´´´´´´´´´´´´´´I²´´´,DDDD,DD´DDD,DDDD,,,  WccccccccccccccccccccccccccccccccccccccccccccccccccccccccccXcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccXcccccccccccccccX          chhÁhh•¹hhÁhhhhÁhÁhh•hhhhhÁ•¹h•hhh•¹hhhÁh¹�Á•¹Á„Á�•hh••Á¹„hÁ•¹hhhh•¹hhhÁhhhhÁÁhhhhÁhhÁhÁhÁhhhhÁhÁhÁhhhhh•hhhhh•hhhhhhh•¹�hhhÁhh•hhhÁhh•hhhÁhhhhÁh¹„h•hhhhÁ•hh•hhhhhhhhÁh�•ÁhÁÁ¹•¹hhhhhÁc                                   \ž×àò÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷òõ÷òóõ÷ó÷úüþÿüúúóóóúóóóúó÷óóúó÷óóúóóúóó÷úóóú÷óúóóúóúóóúó÷óóóúó÷óóóúóóóúóú÷óóú÷óóóú÷óóúóóóú÷÷÷ó÷óó÷ó÷ú÷úóú÷óúóúóúóóúóúúúóúúóúúúóúóúóúúúúóüóúúúúúúúúúúüúúúúúúüúúüúúüúüúúüúüúúüüüüúüúúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüüþüýüýüüüþüþüþüþüþüþýþýþüþüþþþüþþþþþþüþþþþþþþþþþþþþþþþþþþþþþþþþüÿþÿþÿþþþþþþÿþÿþÿþþþþÿþÿþÿþÿþÿÿþþþþÿÿÿÿüÿýÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿþÿÿÿÿþÿÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþþþýÿþþÿþÿþþþÿþÿþÿþþþÿþþþþþþþþþþþþþþþþýýýþüÿýþýýýýýýýýýýýýýýýýýýýýýýüüýüüýüýüýüýüýüýüýüüüýúýúýüüýúüüüýúüüûüüüúüúúúûúýúúüûúýúúúúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷ú÷÷÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õ÷õ÷÷õ÷õóõóõóõóõ÷ò÷÷÷õ÷õ÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ýþÿþýýýüúüûýüüýûýüüûüüûúýúüûúýúýúüû÷èÙÊ�0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD´´´´´DI´´´´´´´D´I´´DD,²´DDDD,DD´´D´D,,,,,XccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX             WhhhhhÁhhhhhh•Áhhhhh•¹•hhhhh•hh¹Âhhhhhh•Á••¹•hh�Á¹•¹•h¹•hh¾„¹•hhhhhhhhhhÁhhÁhhhhÁhhhhhhhÁhhhhhhhÁhhhhÁhh•¹•hh•h¹•hhhÁhhh•¹•Áhhhh¹•hhhhÁ¹•hhhhhÁhhhhh¾h¹••hhh¹•h¹Âhhhhh•hÁhh¹•hh�ÁhhhhhhhW                       aÓÙèõ÷÷÷÷÷÷÷õ÷÷õ÷÷õ÷óõó÷÷õ÷÷÷ó÷õ÷÷üýÿüüóóóó÷úóó÷úóó÷óú÷ó÷óúóóúóóú÷óóóúóóúó÷úó÷ó÷úó÷óúóúó÷óúóúó÷óúó÷óóúóóóúóúóóú÷ó÷úóóóóúóúóúóúóóóó÷óóúóúóúóúúóúóúóúóúóúóúúúúúúúúóúúúúúúúúúúúúúúúúúüúüúúúüúúüúüúüúúüúüüüúúüúüüüüüüüüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüþüüüþüüüüüþüüþüýýýýýüþüþýþýþýþýþýýýþþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþþþþÿüÿüÿþþþÿþÿþþÿþþþþþÿþÿþÿþÿþÿþÿüÿÿÿÿÿþÿþÿÿÿÿþÿýÿþÿþÿÿÿþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿþÿÿþÿÿÿþÿÿÿþÿÿþÿþÿþÿþÿþÿþÿþþÿþÿÿÿþÿþÿþþþÿþþþþýþþþþýþþþþþþþþþþþþþþþýþþþýþýýýýýýýýýýýýýýýýýýýýýýýüüýýüýýüýüýüýüýüýüüüýúýüüüýúýúüüúýúüüúýüúúüüûüüüüüúúüúüúúúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúúúúú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷õ÷÷÷÷÷÷óõó÷÷õóõò÷ò÷÷õ÷õóõó÷÷÷÷õ÷õ÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýÿþþýýüüúýúüüúýúüúýúýúýúýúýúúüûüýúõÚ×–M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D²´´´´DD´´´´´´´´´´DD´´´²´I´´DD,DD,D´´´´,I´´´´²´DDDD,,,,,, XccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX                   MchhhÁhhhhÁh¹hhhhh•¹�ÁhhhhhÁhhhhhhhhh•¹•¹hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhÁhhhhÁhhhÁhhhhhhÁh•¹�•h•¹Á•hhÁhhhh•¹�•ÁhhhÁ�hhhhhÁ�hhhÁhhhhhhhhhhÁ•¹hhhÁhhhhhhhh•¹••hhhhhhhhhh•hh•¹c                       0fÓÚè÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óõ÷÷÷õ÷óõ÷÷õ÷úüÿþüúóóóú÷úóóóúóóúóúó÷óúóúóúóóúóóóúó÷ó÷÷÷óúó÷úóúóúó÷óúóóúóóúó÷óúóóúóúóúúó÷÷óúó÷ó÷úóúóúóóóó÷ó÷ó÷ú÷óúóúóúóúóúóóúóúóúóúúúúóúóúóúóúúúúúúúúúúúúúúüúóüúúúúúúüúúüúüúúüúüüúüúúüüüúüúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüüüüüþüþüüþüüþüþüüþüþüþüþüþüþüþþþþüþþþüþþþüþþþþþþþþþþþþþþþþþþþþüþþþþüÿþþüÿüÿþþþþþþÿþþþÿþÿþþÿþÿþÿþÿþÿþÿÿþþÿþÿþÿÿþÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿÿÿÿþÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþþÿþÿþþþþþþþýÿþÿþþþþÿþÿþþÿþÿþþþþþþþþþþþþþþþþýýýþýýýýýýýýýýýýýýýýýýýýýýýüýýüüýüüýüýüýüýúýüýúýüýúýúýúýúüýúýúüýúüúúüüúúüúúúúúúüúûúüúúüûúúúúúûúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷ú÷÷÷÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óõóõóõ÷÷õóõóõó÷õ÷÷òó÷óõ÷õóõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ýýÿþýýüûüýúýúýúýúýúüúüúýúüýúüúúüüõàÓ�M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,ID´´D´´´´´´´´¼´´´´´´¼DD´´´´´¼²,DDD´´´´DD´´²D´´´´´´IDIDD,,,,,,,,XccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX             chhhh•hhhhÁh••hhhhh•h¹•hh•¹•hhhhh•hhhhhhhhh•hhÁhhhhhhhÁhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhh¹•h•�¹•�¹•hhhhhh¹•hhh•¹•hhh•h¹•hhÁh•hhhhhhhhhh�hhh•hhhhh•hhhhh¹•hh•hhÁhhh¹•h•X               0“ÓÙñ÷÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷÷÷÷÷õó÷õ÷÷÷úüÿüúóó÷÷úóóó÷óúóóúó÷óó÷óúó÷óó÷óúó÷óúóóúóúóó÷÷óó÷ó÷ó÷óúó÷óúó÷÷÷óúóóóúóóóóó÷óúó÷ó÷óúóóó÷óóú÷÷úóúó÷óóóúóúóúóúóúóúóúúóúúúóúóúúúúúúúúúúúúúóúúúúúúúúúúüúúúúúüúúúüúúúúüúúúúúüúüüúúüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüþüþüüýüüþüüýüýüýüþþüþüþþüþüþþþþüþþþþþþüþþüþþþþþþþþþþþþþþþþþþþþþÿþÿþþÿþþþÿýÿüÿþÿþÿþÿþÿýÿþþÿþÿþÿþÿþÿþÿþÿþÿÿÿþÿÿþÿþÿÿÿþÿþÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿþÿýþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþýýþþþýýýýýýýýýýýýýýýýýýýýýýýüýüüýýüýýüýüýüýúýüýúýüüüüüýúüüýüúüüýúüüüüüüûüüúüüüüúýúüúüúûüúúúúûúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷÷÷÷÷õóõ÷óõóõóõóõ÷õóõ÷÷ó÷÷÷÷õ÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýÿýýüúýüüüüüüúýúýüûüúüûüüûüüüûü÷æÓ�U,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D´´²´´´´´´´´´´´´´´´´²´¼´´´´´´D,´´D,D´´¼´´´´´´´´´´´´´´´´DI²´D,,,,, XcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX                 Xhh•¹••hhÁ•¹hhhhÁ•¹„hh•¹�hhhhhh•¹�hhhhhhh•¹•ÁhÁhhhÁhhhhÁhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁh•¹hh•¹•hhhhÁhhhhhÁ•¹�•h•¹Áh•�hhÁ•¹•¹h•Á•hhh•¹•h•¹hhh••¹hhhhhhhh•¹•ÁhÁhh•h•¹c0                         M”Óàõ÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷õ÷õ÷÷óõ÷÷÷úüÿüüóúóúóóóú÷úó÷óúóóóúóúó÷óóú÷úó÷óúóúóú÷ó÷óúóúóúóúóúóúóúóúóúóóúóúóú÷÷úóúóú÷ó÷óúóúó÷óóú÷óúóóóúóóóúóú÷÷ó÷óúúóúúóúóúúóúóúóúúúóúúóúóúóúóúúúúúúúúúúúúúúúúúúúüóüúúúüúüúúüúüúüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüýüüþüüýüþüþüþüüýþüþüþüþüþüþþüþüþüþüÿüþþþüþýþþþþþþþÿþþþþþþþþþüþüþþþþýÿüÿüÿþþþýÿüÿüÿþÿþþÿþÿýÿþÿþÿþÿÿþÿþÿþÿþÿÿÿþÿþÿÿÿÿÿÿþÿþÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþþþÿþþþþþþÿþÿþþþþþÿþÿþþþþþþþþþþþþþþþþþþýþþýýýþýýýýýýýýýýýýýýýýýýýýýýýüýýüüýüüýüýüýüýüýüýúýüûýüüüýúüúýúúüüûúüúúúüûúýúúûúúúûúúûúúúúüûúúúúúúúúúúúúúúúúúúúúúúúùúúú÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷÷õóõóõóõóõ÷ó÷õ÷÷õ÷÷õ÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úýÿþýýúýûüûúýúýúúüüýúüüúüüûúüúý÷è×�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,²´´´´´´´´´´´´´´¼´´¼´´´´´´´´´´´´I´´´´´´´´´´´´´´´´´´´´´´²´´I²´D²´D,,,,,,,XccccgccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX            0ghÁhhh¹•hhhhhÁh•ÁhÁ¾Áh•¹•¹•ÁhÁh•hhÁh•hÁhhhhh¹•ÁhÁhhhÁhhÁhÁhhhhhhhhhhhhhhhhÁÁhhhÁhÁhhÁhhhÁhhÁhhhhhhhhhÁhhÁhhhhh•�¹•hhhhhhh•hhhhh¹Á�Á�¹•¹•hhh�•Áh¹Á¹ÂhÁ•�¹•�•ÁhÁ¹•hhÁhhhÁhhhhh¹•Á•Á¹•�c               U–×àò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷úýþüüóó÷óóó÷úóóó÷óúóó÷úóó÷óúó÷úóóó÷óúó÷óóóúóúóó÷óúó÷ó÷ó÷ó÷ó÷ó÷ó÷÷óúóóóúóóó÷÷óúóóúóó÷÷óúóóúóó÷ú÷ó÷÷úóóóúó÷úóóó÷óóóúóúóúóúóúóúóúúóúúúúúúúúúúúúúúúúüúúúúúüüüüúüüúúüúüúüüüüüüüúüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüýüýüüüþüýüýüüýüýýýüþüýüþýþýýýüþþþüþþþüþþüÿüÿüÿüþþÿüþþþþÿýþþÿþÿþÿÿþÿþÿþÿþÿýþÿþÿþÿþÿþÿþÿÿþÿþÿÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿÿÿÿþÿþÿþÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿþÿþÿþÿþþþþÿþþþþþþþÿþþþþþþþþþþþþþþþþýýþþþýþþýýýýýýýýýýýüýýýýýýýýüýüüýýüýýüýüþüýüýüýüüüüüüúýüüüüýüýüýûüýúýüüúýúúüüüúýúúýúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúùúúõ÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷õõ÷óò÷óòõ÷÷÷õóòó÷óõóóõ÷óõóõóõóõóò÷õó÷ò÷÷õó÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úýÿþýúüúýüüüúüüüûüüúûüüûüüúýúý÷èÚ�\-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,´´D´´I´´´´´´´´´´´´´´¼´´¼´´¼´´´´´¼´´´´´´´´´´´´´´´²I²´´´²´´²´´²´IDI²D,,,XccccddcccccccW                XhhhhhhhhhhhÁ•¹Á•¹�••¹Á�••¹�••¹h•¹•¹hhhhhhhhhhÁhhhhhhhhhÁhhhhÁhhhÁhÁhhhÁhhhhÁhÁhhhhÁhhhÁhhhhhhÁhhhhhhhhhhÁhh•¹hhÁhÁhhhÁ•¹ÁhhÁhhh•¹•hhhhhhhÁ¹Á•hÁ�hh•¹hÁ•¹•¹�hhhhhhhhhhhhhhhh•¹Á�h•¹„M                       U�×àõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷÷úüÿüüóó÷úóúóúóóúóúó÷÷úóúóúóó÷óóúóú÷úó÷óúóú÷÷óúóúúóúóúó÷úóúóúóúóúóúóúóú÷÷óú÷÷úó÷÷÷÷óú÷úó÷÷÷÷÷ú÷ó÷ó÷÷óó÷÷÷óúóúúúúúú÷úó÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüüúüúüúúúúüúüüúüüüúüúúúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýüýýüüýüýýýýýýþýýþþýþþüýþýþþþþýüýþþþýþþýþþþþþþþþþþþþþþþþþÿþþþþþþþþþþþþþþÿþÿþþÿþÿþÿþÿþþþÿþÿþþþÿþÿþþÿþÿÿÿÿÿþÿÿþÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿÿþÿÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþþþþÿþþþþþÿþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþþþþþþýýýýýýüýüýýüüýüüüüüüüüüüüüüüüüüüüüúüúúúúúúúúúúúüûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúùúú÷÷ùóùúõúõúõõúõóõóõòúòõóõ÷÷÷õúõ÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷úúýÿþýüüûüüüüûúüûúýüüúüüûüúýúýúèÙÇ`-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,I²´´´´´´´´´´´´´´´´´´´´´´¼´´´´´´´´´´´´´´´´´´´´´²´²´´´²²I²²DD²D,,Xcchccccc cccccX               ThhhÁhhÁhhhÁhhhhhhÁh¹•hhh¹•hh¹•hhhÁ�ÁhhÁhÁ•hhhhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhÁhÁhÁhhhhhhhhhhÁhhhhhhhh�ÁhÁhhÁh•�¹•hhÁhhhÁ•�¹•hhÁ•hhhhhhhhhhhhh•Á•Á•hÁhÁhhhhh•¹•hc                V�׿õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷üþþüóó÷úóóó÷óóúóó÷óúóó÷ó÷óó÷úúóúóóóóòòòèèèèèèèæææèææææèèèæææææææææèæææèæèèæèèèèèèèèèæèæèèèèèèæèæéæèèèèèèèèæèæææèæèèèéèèèèèæèèèèæéèèèèèèèæéæèéæèèèéèèéèéèééèéèèééèéèééèéèéééèéèéééèéééééééééééééééíéééééééíéíéíéíééééééééííííííííííííííííííííííííííííõíõííííõõõíõíõõíõõíõíõíõõõíõõõõõõõíõíùõõõõõõõõõõõíùõõõíùíõõõõõõùíùíùõùíùõõùõùõõõõõùùõõùíùõùõõùùõùùõùùùùùùùùùõùùõùùùùõùùùõùùùùùùõùùùùõùùùùùùùùùùùùùùùùùùøùùùùùùùùùùùùùùùùùõùùùùõùõùùõùùùùùùõùõùùõùùõùùõùùõùõõùùõõõõõíùíùõõùõõõùõõõõíùíõõõõõõõõõõíõõõõíõíùíõõííùíõíõíõíõííííõííõííííííííííííííííííííííííííííííííííííéííííííííéííííéëéíëééëéíéééííéèíèííëééæéæééæíèëéíèéèëéèíèëèèëèéæéèèíèéæéæèèëèèèèèæèæëææêèææéæèæææææææææææææææææææææææææææææææææææææææææææææææææææææèèèèéèòòòó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ú÷÷úúþÿþýüúýúûüüúýúýúûüúúüúýúüúý÷ëÙÇ`-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,D²D´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´´´´²²´²²²²²²²I²IID,,,,XcccccgcccccccchccccccccchcccdcccccccccccchccccccccccgccccccdcgccdccccccchccccccccdcccdccgccccccccdccccccccccccecccccccgcchcdgccccccccccccdcccccdcccchcccccchcdccccccccccccX         0chhhÁhhhhÁ•hhhhhÁhhhhhhÁhhhhhhh•¹•hhhh•Á¹•hhhhhÁhÁhhhhhhhÁhhhhÁhhhhhhÁhhÁhhÁhhÁhhhÁhhhÁhhÁhhÁhhhhÁhÁhhhhhhÁhh••hh•h•hh••¹h•hhÁ•¹hÁ•hÁhhhhùhhhhhÁ¹hhhhhÁ•hhhh•¹•¹•¹hh•hÁhh•h•¹�hhhW                 \�×èõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýþüúóú÷óóúóúóúóóóúó÷óúóúóú÷÷óóóòñéèææÙÕ¬ª¥’’Ÿ�ŸŸ�� �Ÿ��ŸŸŸ�Ÿ �Ÿ�Ÿ�Ÿ �Ÿ�� � � ��Ÿ �Ÿ� �� �Ÿ �Ÿ �Ÿ� �Ÿ  �    ŸŸ�Ÿ��� �Ÿ      �ŸŸŸ � � ��Ÿ  �Ÿ  Ÿ�Ÿ�Ÿ Ÿ�Ÿ�Ÿ��ŸŸŸ  �Ÿ  �ŸŸ   �     �ŸŸ � � � � �   �Ÿ��  �Ÿ � � � �Ÿ�Ÿ Ÿ Ÿ �Ÿ�� � �Ÿ��ŸŸ�  �Ÿ� ���Ÿ�Ÿ��Ÿ� � � �Ÿ    �Ÿ � �Ÿ ŸŸ�Ÿ � Ÿ �  �Ÿ �Ÿ��       � Ÿ��   � �Ÿ�   �Ÿ��Ÿ� �Ÿ��Ÿ�Ÿ�Ÿ�Ÿ Ÿ��  �Ÿ� �   �Ÿ��Ÿ�Ÿ� ¢�Ÿ�Ÿ �  �Ÿ�  ��Ÿ   �Ÿ�ŸŸ  �Ÿ Ÿ � � �   Ÿ�Ÿ�  � �   �   Ÿ ��ŸŸŸ�Ÿ   �  Ÿ Ÿ �Ÿ  �Ÿ�   Ÿ �Ÿ��Ÿ�  � ¢    �Ÿ�Ÿ ŸŸ�Ÿ �Ÿ�   �    Ÿ� � �Ÿ       �Ÿ�Ÿ ��Ÿ� �Ÿ��     �  Ÿ��Ÿ�  �ŸŸŸ�� ’      Ÿ���  �Ÿ¢Ÿ  �Ÿ��ŸŸŸ�Ÿ     �Ÿ� �  Ÿ � ’  Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ��   Ÿ� �Ÿ�ŸŸ�ŸŸŸ�Ÿ��ŸŸ  � �  �  �Ÿ�  � � � � �ŸŸ �  ¢ Ÿ��Ÿ��� �ŸŸ’  �Ÿ�  � �  Ÿ� � �Ÿ�Ÿ ��Ÿ�� ��  ��ŸŸŸŸ Ÿ�Ÿ  �   � �  ¢’’¢¥ª¬Õäæèèèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ú÷÷úú÷÷úúþþýýúýüýúüúüúüüûýýúýúüûüúýúõÙÊ`-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD´´²´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´²´²´²´²²²²²I²´²,,,,,XcchccdcgccccccccccccccchccchccchcccdccccccccccchccccdcccccgccdcgccccccccccccchcchccgcgccdcchcchccccgccgcdcgccccccccccgcdcccccccgcccdcccccccccccgccccccchccccccccdccccccchcX       chhh•ÁhhhÁh¹•hhhhhhhÁhÁhhhh•hhhh•�¹•hÁhhÁ„¹•hÁhhÁhhhhhhÁhhhhhÁhÁhhÁhÁhhhhÁhÁhÁhhhhhhhhhhhÁhhhÁhhÁÁhhhÁÁhhhhhÁhh¹•h¹•¹Áh¹•hh¹•h¹„Áhh¹•ÁhhÁhhhhhhhh••hÁhÁhh¹••¹•hhhh�•hÁ¹•Áhh¹•¾„¹Âc                      V�Úæ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþüüóó÷óóúóó÷÷óóúóúó÷úóó÷ó÷óóóòèæÙ¬¥’���Ÿ’Ž}sppppppppppps}qqopppppppppppppq}q}}qwsssqs}qppsq}qpqpqppqqqpqq}}}pppppppqqp}}}qppp}qpppqqppqw}ppp}}popp}}pqsqpmp}}}}qpq}qq}}}qppq}}qppqsppppqppqps}}ppqpqwqpqpppppq}qpps}w}qpqppppqs}pmpqq}}qqpppqoopppoppsqq}qpps}}}}qp}qpsq}qpp}qqqppq}qqqqpppqqq}}}qpqqpq}}qppqpppqsqqpppoopqppoppqqpq}qppq}wooppqq}qppoppqpq}}qpppppq}qpp}pqps}}}ppppsqpqqqqpqppqqpqpppppsqqpqqspqw}}ppppqppp}}qqs}ppqpppps}spp}}qppqpppppspq}}}w}}pqq}qpopppppq}}ss}}qqpppswpq}}q}}qqppqqpqpppqqppq}}}pppqqpppq}sppssppnwŽ}}}}qqppppq}pqŽpq}ppmq}qppp}}}}}ppqsq}}qpqwŽ}}qppppppppppppqwqppppppopppppppp}qq}qqws}qqwsppqwq}qqpqppqqqqpqq}Žwopqppppsqp}Ž}qppq}pqppqppqp}sppq}spppq}qqqqppmp}}}}qp}wqq}}qqpp}}}sqs}ŽsŽ���’¬Õææéò÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷úú÷÷úúúúúúÿþüüúúýúýûüúûüúúýúüûüúýúý÷õÚÇ^,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,,,D,´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´²´´´´²´²´²²²²²²²´²I,,,,,XccccccddcgchcccchccchcccgccchccccgcccccccccccccchccgccdcgcdcgcdcgcccchchccccccccccddccdccccccccchccccdccccccccchcccccdccgchccgcdcccccccdccccgcccchchccccchccchcgccccchccccX            Mh•¹hhhÁhhhhhhÁ•hhhÁhhhhh•¹•h•¹•¹h•¹••hh¾hhhÁhÁhhÁhhÁhhhÁhhÁhhÁhÁhhÁhhhhÁhhhÁhhÁhÁhÁhÁhÁhhhhÁhhhÁhhhhhÁhhÁhhhhhhhhhÁ��Áhh•Á�„¾••hhh•hhhÁhhhhhhÁ•¹hhÁhhhhh•¹�•hhh•¹•¹�h•¹•Á�•ÁhhhhX                      0–׿÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýþüúóóúóúóóú÷óóúóó÷óóúó÷úóóòèæÙ¬’�ŽŽ}ssp??>===!!!!   !    !!!!!! !! !!!! !!! !!!==?lpwqqŽŽ�‘¬Ùæèòõ÷÷÷÷÷÷ú÷÷ú÷÷ú÷÷úú÷÷úúúúúýÿýýüúýúúýúýúüýúýúüüüúýúüúõÙž\-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDI´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´´´²´²´²´²²´²²²²²²²²I²ID,,,XcchccgcccdcccchcccccccchccdgccchcccdccccgccccchccccccdcccdccccccdccccccccchccchcgccccgcgcccccchcccchccgchcchcccccchchccgcccccdccccgcgccccgccccdgcccccchchccchccccdcccccchcX               XÁhhhÁhÁ•ÁhhÁhh¹•hÁhhhhh•Á�¹•h•�Á•hhh¹•hhhhhhhhhhhhhÁhhhhhhhhhÁhhhÁhÁhÁhÁhhhÁhhhhÁhhhhÁhhhhÁhhÁhÁÁhhÁhÁhhhhÁhhhh•Á••¹Áh•h¹•¹•hh¹•Áh¹•ÁhÁ•Á•hÁhhhhhÁ•hhhhhÁhh¹•h•Áhhhhhhhh¹•¹•hhhM                  0–׿÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üþüúóóóúóóó÷úóóúóó÷úó÷úó÷óòèæÓ’�ŸŽqpj>=! !  !! !! !     !   =>lpqs  ’¬äèò÷ú÷ú÷÷ú÷÷ú÷úú÷÷úúúúúúúúýþþýúüýüúýúýúûüúýúûüüüüûúúëÙ�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,D,D,,D²´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´´´´´²´²´²²²²²²²I²²II,,,,,XcccdccdcgcchccccchcchcccdccchcccddcchcgcdcchccchcchccgcgcchcgcgccccchcchccchccccdccgcdccchchcccchcccdccccccchcchcccccccdcgdcgdcgcgfcdccdccgcgccchcchcccccchccccgccccchccccX       XhhhÁ•¹hhh•Á¾�hhhhhh•h•¹•¹•hÁ¹hÁ¹•hhhhÁhhhÁhhhhÁhhhÁhhÁÁÁhÁhhhhhhhhhhhhhhhhhhhhÁhhhÁhÁhhhhÁhhhhhhhhhhhhhhhhhhh•¹•¹hh•¹•h•�hhhhhhÁ•hhÁh•¹•¹hÁhhhhhhh¹••hhhhhhh•¹ÁhhhhhhÁhhhhhhhhc                     0“×àõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþüúúóú÷óóú÷óóóúóú÷óóúóóóèæÕš��sspC=  !   ! !>opq��’¬æèõ÷ú÷÷ú÷÷ú÷÷úú÷úúúúúúúúúÿþýúüúýúýúüüúýúüüûúýúüüýúèÙ�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DD,D,,DD´´´´´´´²´´´´´´´´´´´´´´´´´´´´´´´´²´´´´²´²´²²´²²²²²²²IDDD,,,,,,,XcchccgccccdccchccccccccccgccccchcccdccccccgcccccccccdcdcccgcdcdcgccccccccccccchcccdccdcgcccccchcccchccgcchcccccccchcchccccccccccddccccgccgcdcccccccccchcchccchccdgcchccchcX         Mchhhh�Á�Áh¹•¹Á•hhh•Á•¹•hh�¹•�Áh•�¹•ÁhhÁhhÁhhhhhhhhhÁÁhÁhhhÁhhÁhhÁhhhhhhÁhhhhÁÁhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhhhhhÁhhh¹•¹ÂhhhÁhhhhhhhhhhhhh•ÁhhhhhÁh¹Á•hh••hÁhhhh•ÁhhÁhhÁhhhhW                     0‚Óàõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýþüóó÷óóó÷úóóúóúóóóúóúóòèÙ¬’�sp?=!    !      ! ! !   !!    Cps��šÕæò÷ú÷÷ú÷úú÷÷úúúùúúúúúúúþÿýýüúüúýúûüúýúûüüúüúûüû÷èØ�M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,²DD²,DDDD,D,DI²´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´²´´´²²´²²´²²²²²DD,,,,,,,,, XccccdcgcgcchcccchccchchccdcchcccccgcgcchccccchhchcccgcccgdcccgcdcgcchchcchchcccdcgcgcdcchcchcccchcccgcdcccchcchchccccccchcchccgcccchccchcdccchhchcchcccccchcccdcccccchccccX       chh•¹•¹hhhhh•¹•h�Á¹hhhÁhh¹�Á•¹hhhhhhhhhhhhhÁhhÁhhhhÁhhhhhhhÁhÁhhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhÁhhhhhhÁhhÁhhhhhhÁhÁhhhh•hhhhhhhhÁhhhÁhhhhhhhhh•¹••hhhÁhhhh•¹•Á¹hÁhhh•¹hhhhhhhhÁhhh                   fÓàõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþþúóóúóúóúóóú÷óóóúó÷ó÷òèÕ’�Žso>   !! !   !!    !=lqs�ŸÕæòúú÷ú÷÷úúúúúúúúúúúúúúýþýüýúýúüüúýúüüüûüýúýúüü÷è×�M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,DDD,DDDDDD´²´²´´²´´´´´´´´´´´´´´´´´´²´´²´´´²´´²´²´²´²²²²²IDD,,,,,,,,,XcchcccdcdcdccchchcchcccccccgccchccdccdchhchcchccchhcccgccccgcdcccdcccccccccccchccccdcgcccccccchcccchcccgcdccccccccchccchccdcccdcgcdccchcccgcdcccchhccchcccccchcdcchccccchcX     Xhhhhh�•h•hhhh�¹•Á•hhÁhhhhÁ„¹•ÁhhÁhhÁhhÁhhÁhhhhhhhhhhhhÁhhÁÁhÁhhhhÁhhÁhhhhhhhhhhhhhhhÁhhÁhÁhhhhhhhÁhhhhhhÁhhhÁhhhÁh•¹•hÁhhhhhhhhÁhhhhÁhhh•hhhh¹•hÁhhhÁhhhhÁhhhÁ•hÁ�ÁÁhhÁhhÁhhX                        aÓÚò÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþü÷óóúóó÷ó÷óúóóú÷úóúóòçÕš�Žo?!  ! !     !   ! !!  !=pq�’¬æéú÷úú÷úúúúúúúúúúúúúúýÿýýúúýúûüúýúûüüúúýúüúûü÷æÓ“0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²I²²,DDDDD´´´´´´²´²´´´²´´´´´²´´´²´²´²´´´´²´²´´²´´²´²´²²²²²²²D,,,,,,,XccchccgcdechcccccccchccchccchcccgccgccchccccccccccchccdcchcdcccgccchcchcchcchccgcgdcccchcchchccchccccgcdcchcchcchccchcccccgdcgcdccchccchcdccchccccchcccccchccccgccccchccccX      0cÁ••¹•¹•hhÁ•¹•Á¹hÁhhhhhhÁ¾hhÁhÁhhÁhhÁhhÁhhhÁhhhhhÁhhhhhhhhhÁhhhhhhhÁhhÁhhhhhhhÁhhÁhÁhhhhhhhÁhÁhhÁhhhhhhÁhhhÁhhhÁ•¹�•hÁhhhhh••ÁhhhÁhhhh•¹hhÁhhhÁ•hÁhhhhhhÁhhh¹Á•¹ÁhhÁ�hÁhhhg0                  VÇÚôú÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþüóúóúóúóúóúó÷úó÷óóóò⬒�Žp?   ! !!  ! !   $jŽ��¬æòú÷úúúúúúúúúúúúúúúúúýÿüýúýüúýúüüûüúýúýúýüûú÷àÓf-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIDD²²DD²I²DD´²´²´´´´´´²´´²´²´´´²´²´´´´´²´²´´´´²²´²²´²²²²²²²²DD,,,D,,,,,,XcchccccccccccchcchccccchccchccchccdcchcccccchcchcchchccchcccdgcdcchcccccccccchccccccchccccdcccccccchcdcccgccccccccchccchcccccccdcgccchchcccchcchcchchchcchccchcccchccccchcX   Xhh¹•Á�Á¹•hhhhhhhhhhÁhhhÁhhhhhhÁhhhhhhhhÁhÁhhhhhÁhhÁhhÁhhhÁhÁhhhhhhhÁhhhhhÁhhhhhhÁhhhhÁhÁhhhhhhÁhhhhÁhhÁhÁhhhhhhhhhh¹•�Á•hÁ•¹Á¹hÁhhhhÁÁÁhhhhhhhh¹•h•Áhh•Áhh•hh�Áh••�¹•¹•Áhhc                 0žÙè÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþüóóó÷óóó÷ó÷ó÷óó÷ó÷óèÕ’}sp? !      !    ! !! !!  ! !! !      !! !?pŽ�ÕæúúúúúúúúúúúúúúúúúúýþÿüüúúýúýúûüúýúýúýúúýúýõàÇ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDD²II²²D²´²´²´²´²´²´´²´´´´²´²´´´´²´²´´´´´²²´²´²²´²²²²²²²ID,,,,,,,,,,,,,,,,,XhcccchcchcchccccccchchcchcccchccdcgcdcccchchhcccchchgchcchcccccchccchcchchchcchcdcgdgchcchcchhchchcccccgdcgchchchcccchcchchcchcdcchcccccchchgccchcccccchcchccccchcchcchcccX          Th�Á¹•hhh•hhhÁh•hhhÁhÁhhhhhÁ•ÁhhÁhÁhhhhhÁhhhhÁhhhhhhhhhhhhhhhhÁhhÁhhhhÁhÁhÁhÁÁhÁhhhÁhÁhhÁhhhhhhÁhhhhhhÁhhhhÁhhhÁhÁhh•¹•¹hùÁ�•hÁhhhÁ¾�hhhhhhhÁhhh•¹ÁhÁhhh•¹Á•ÁhhÁ¹hhhhhhhhhM             “׿÷÷ú÷÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷üýþü÷ó÷úóúóúóúóúóúúóóòæª�so=!        !js�’ÙéúúúúúúúúúúúúúúúúúúýÿüüýúüüüýúýúýúýúüýúýúúôÙ�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD²²²²I´²²²²²²´²´²´²´²´´²´´²´²´´´´²´²´´´´²²´²²´´²´²²²²²²²²I´D,,,,,,,XccchcccccccccchhccccccchcchcccccgcccgcchhchccchchcccccchccghcchcccchchccccccccchcccfccchccchcchccccchccccccdccccccchccchchcccgccgcccchccchhccchccchchccchcchcchcccchchchccX     0c¹•hhhhhh¹•Áhhh•¹•hÁ•Áhhhhhh¹•hÁhhhhÁÁhhhhhhhhhhhhÁhhhÁhhhhÁhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhÁhhÁhÁhhhÁhÁhhhhhh�Áhhhhh¹•h•hhh•¹•h•hhÁh•hhh•�Á¹Áhhhhhhh¹•ÁhhhhÁhhh•c                 aÓàõ÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýüúóóúóóó÷ó÷óó÷ó÷óóò謒�q?!    !       !!!!        !     =ps�ªàòúúúúúúúúúúúúúúúúûýÿýüüúûúúüúýúýúýúüüúýúúèד0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DII²I²²²²²²²²²²´²´²´²²´²´²²´´²²´²´´´²²´²´²´²´²²²´²²²²²²²²²²ID,,,,,,,,,,,,ThccchchchchhcccchccchchdcccchchccchccccccchcccccchchhcccchcgcccchchchchhdchchchchccchchcdchcchcchcchcchchchcchcchccchchccccchchccchcccchchcchcccchchccchccccccchchcchhhchcX,      X•ÁhhhhÁ�h•hhù�••Á¹hhÁhÁhh••hhhhhhhhhhhhhÁhÁhhhhhhhhÁhhhÁÁhhhhhhhhhhÁÁhhhhhÁhhhhhÁhÁhhÁhhÁhhhhhhÁhhhÁhhhhhhhhhhhhh•¹•Áhhhhhhh•¹Áh¹�h•¹•h••¹Áh•¹hÁhhhÁhÁhhhhhhhh•hhhh•¹hW         VÊÚõ÷ú÷ú÷÷ú÷ú÷ú÷÷÷÷÷÷÷÷üþýúúóúóúóúóúóú÷óúó÷èÙ’�sl!      ! !!  !   >q�ŸÕèúúúúúúúúúúúúúúúúüýþýúýüýüûüúýúüúüûúüüüý÷àÓf0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD²IID²²²²²²²²²²²²²²´²´²´²´´²´²´²´´²²´²´²´²´²²´²²²²²²²²²²²²²²L,,,,,,,,,,,,,,Xchchccchcccccchccchcccccc‚__chcchcccchchchchchchchchcghcccccchcgcdcchccgcccdchchchgcccccgccchcdcchchgcggcccccchgchccccccchcccccchccgchcchchchchchchchchchchcchcgcchcccchccX      M„¹•hhhÁ¹•h¹•hhhh¹•ÁhhhhhÁhhh¹•hhÁhhÁhhhÁhÁhhÁhhÁhhÁhhhhÁhhhhÁhhhhÁhhÁhhhhhhhÁhhÁhhhhhhÁhhhhhhÁhÁhhhÁhhhhhÁhhhÁhhhÁ•Áhh¹•hhhhÁhh�ÁhhhhhÁ�¹•¹•hhhhhhÁhhhhhÁhhhhhhhÁ¹•Áhhhc0               M�Ùè÷ú÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷úþüúóó÷óó÷ó÷ó÷óóúóóó笒}p= !!!!       !  ! !!   ! !!  ?p�’æùúúúúúúúúúúúúúúúúýÿýúúúüüúýúüûüûüüüûúüúõàÇ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D²I²IDD´I²²²²²²²²²²²²²´²²´²´²´²´²´²²´²´²²´²²²²²²²²²²²²²²I²²I,,,,,,,,,,,,,Xhchhchccchcchchhhhchc_jjjC[hchhchchchchcx>_C_[hhchchcB_C_ccchcchccchccc‚_>jZC_hchccccj>>_chhB_C_Cdchgcch_C_>_hcchchcchj_C_chcchcdhc__YCcchchchdhdhcc_>_CcchcchchccccX  chhhÁÁ�•¹�•hhhhhhÁhhhÁhhhhhhhhhÁhhhhhÁhhÁhhhÁhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhÁhhÁhhhÁhhhhÁhhhhÁhhhÁhhhhhhhhhhhhhhh•¹•hhh•hhhÁhh•¹Á•hhh¹h•¹�•hh•hhhÁh•hÁhhhhhhhhhÁ�•hhhÁhX      0“Óè÷ú÷ú÷ú÷÷ú÷ú÷ú÷ú÷÷÷÷úþüúúóúóúóúóúóúóúóóòàª�q=      !  !=p�’ÚòúúúúúúúúúúúúúûúüüÿýüüûúýúýúýúüüûúüýúýûñÙ�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD²D²²I²²²²²²²²²²²²²²²´²²´²²²²´²²´²²²²²²²²²²²²I²²²²I²²²²,,,,,,,,,,,,,,,,,,,,Xccchcchchchcchchccc_jjj_chdhchch[jjj_hchchjhcdccccdchcc‚>jj>cchcc_j_ccc_j_cccch_jchchchcchcjhfchchchcBk_hchgchghchhcjhcchcccccchcW,Xhhhhh•¹•hh¹•hhhhhhh•hÁhhhhhÁhÁhÁhÁhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhÁhhhÁhhhhÁhÁhÁhhÁhhhhhhhhÁhhÁhÁhÁhhhhhÁÁhhhhhhhhÁhh�¹•hh¹•ÁhÁhÁ•�Á¹•hhhhhhhh¹•h¹•hhh•¹•Áhhh•hÁhÁ•Á¹ÁhhhhM         aÓàõú÷ú÷ú÷÷ú÷÷÷÷÷÷÷÷ú÷úýüüóó÷óó÷ó÷óó÷ó÷ó÷èÓ¢Ÿp=  !  ! ! !! !     !  !! !o��¬æúúúúúúúúúúúúúúúûýÿýúüüúýúýúüúýüüúüúýú÷ëד0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,²I²DD²I²²²I²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²I²²I²IDD,,,,,,,,,,,,,,,,,,,Wchchghchccchchhhhcj>ccchch_Cchch>chhhhccchch_jccch_Ychchj>chchcj_hchchcdhhcj>dhhchchhc__chchghdhghcf>jhchchhccchchX,MhhÁ•¹�hÁhh•¹••Áhh•¹ÁhhhhhÁhhhhhhhhÁhhÁhhhhhhhhÁhhhÁhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhÁhÁhhhhhÁhhhhhhhhhhhhhhhh•Áhhh•¹Á„h•¹Á•hhhÁhhhhh•Áh•¹�Áhhh•¹Á•¹•¹�•hhhhhc      MÇÙõ÷÷ú÷ú÷úú÷ú÷ú÷ú÷ú÷÷úüüüóóúóúóóúóúóú÷óó謒}l! !      !!>q�šäúúúúúúúúúúúúúúúüýþüýúýúýúüûüúûúýúýúüü÷æÊ`-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD²²I²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²I²²²IID²I²²ID,,L,,,,,,,,,,,,,Xhchchdhchccdhdccc>>[__[C>>chch_>>>jhhdjcchcchchchc>>>ChchZjZfhchc>__ccC>hccchchcchcjhchcchchcZ‚cchchchdhdhg>jchchcchchchcX  , 0bÁh•¹•¹••hÁ•�¹•¹•hÁh�Á•hÁhhhhhÁhhhhhhhhhhÁhhÁhhÁhÁhhhÁhhÁhhhÁhhhhhhhhhÁhhhhÁhhhhÁhhhÁhhhhhÁhhhhhhÁhhhhhÁhÁhÁhhÁhhhhÁ•hh¹•hÁhÁ�¾¹•Á•�¹•hÁ•hÁh•hh¹•hÁ•¹•hhÁhhhhhhh¹•h•hW       ”Ùè÷úú÷ú÷ú÷÷ú÷÷÷÷÷÷÷÷úüþüóóúóó÷óú÷ó÷÷óóóàª�q?  ! ! !    !       !       !! ! $o}‘ÙúúúúúúúúúúûúúüúýþÿüúúýúýúüúýúýúýúüüûúõÚ�M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,,.,,.L,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DII²²I²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²I²DDD,,,,,,,,,,,,,,,,,,,,,,,Xchchcchghcccghc‚>[chhchhch_C[hhc‚jcchcc_[eh>chchcchccchhB>[hchcj>chh_>Bhchch_cc_chchcchchdgf>>chchhdhgh_[hcchchdgghdhjhchchcchchcdXX•¹Á�••¹h•¹hhhhh•¹�•¹hhhhhÁÁhhhhhhhhhhÁhhhhhhhÁhhhhÁhhhÁhhÁhhÁhÁhhhÁhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁhÁhhhÁhhhhhhhhÁh•¹hhh••¹�•¹„h•¹•¹Á•h•¹hh•¹hÁ�h•¹hhhhhhhhhÁ•hhhh•¹hh    \ÓÚõúú÷ú÷ú÷úú÷úú÷ú÷ú÷úüþüú÷óóúóúóóó÷úóúòäš�p=   !    ! js’ÚõúúúúúúúúúúûúüúüýÿüýúüúýúýúýúýúüûúüýúèÙ‚-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,L,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DII²IDI²²I²²I²²²²²²²²²²²²²²²²²²²I²²I´IIDD,D,,,,,,,,,,,,,,,,Xhchchchdhgghchc_chchchchchch[>chdchBjgdcchccc>hd>fchchccchhhchBhcgchcChgd[_chchchB>h[hchchchchggh>jhchchgchcCj_hchcchchhdhg>hhchchccchdhXMchhÁh¹•hhhhhhhhh••¹•hhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhhhhÁhhhhhÁhhhhhhhhhhhÁhhhÁhhhhÁhhhhhhhhhÁhhÁhhÁhhÁhhÁhhhhhÁhhÁhÁ•hhhh¹•h¹ÂhÁ¾hh„�Á¹•hhhh•h�¹•¹•hhhh•hhhh••¹•hhh•�X             0ÇÙòúúúú÷ú÷ú÷÷ú÷÷÷÷÷÷÷üþüóóóúóó÷ó÷óúó÷óòäš�m  !          !!                ?}¢ÕòúúúúûúûúúúúúúûýþþüüúýúýúýüüúýúüüúüúõàÇ\-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,L.,L,,,,,.,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,I²I²²²²I²²²´I²²²I²III²I²²²I²I²D,,,,,,,,,,,,,,,,,,,,,,,,XcdhcghdghdhchhY[hghdhhghchhdhchcghhhhhdhdhhchZ_h>hdhhcgchchdhgghghghh>dhh_Bhchchhc>>>hhchcdhgghdfdj>chghchhchB_cgdhghchchdhjchhhhchcdhdeX, XhhhÁhÁhhÁhhhh•¹hhÁhhhÁhÁhhhhÁhhÁhhÁhhhhhhhhhhhhhhÁhhhhhÁhÁhhhhhÁhÁhhhhÁhhhhÁhhÁhhhhÁhÁhhhhhhhhhhÁÁhhhhhhhhÁhhhhÁ¹••Áhhh•h�¹�hhÁh¹hhÁhÁh•Á¹hh•h•hhÁ•¹hÁh•¹hhhhÁhÁ¹cM    fÓæõúúúúú÷ú÷úú÷úúú÷ú÷üþüúúóúóúóóúóúóó÷òÙ¥�o!        ! !      ?Ž’ÕéúúúúúúúüúúüúúúýþýûüúýúüúûúüüüûüüúüüèÙ–M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,L,,,,,,,,L,.,L,,,,,.,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,I²I²I´²²I´I²²I²²DI²I²I²²IDDDDII,,,,,,,,,,,,,,,,,,,,,,,,Xhchhchchdhghhc_hdhdhchdhhchgchhdhcccCghgghchhhc_c>fhcchhghhhghdhhfh_Chgd[Chghcchh[hchcchhdhdhghh>>hcdhdcchc__hhhchdhdhghd>hhccchgdhgghX WhhhhhhÁh•hh•hhhhhhÁhhhÁhhhhhhhÁhhhÁhhhhÁhhhÁhhhhÁhhhhhÁhhhhhÁÁhhhhhhÁhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhÁhhÁhÁhhhhhhhhhhÁh¹Á�Á�¹••hhh•hh�¾•h•Áhhh••h¹�¹•hÁhhhÁhhhhhhhÁh•c           VÓÙõúúúúúúú÷ú÷÷ú÷÷÷ú÷úýüúóóóóó÷óúó÷óóúòÙ’}?     !  ! !!!   !   !       !  ! !   ?Ž¢¬òúúúúúýúúúúûúüüýÿüúýúýúýúýúûüüúûüüû÷æÓe-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,LL,,,L,L,.L,.,,,,,,.,,,,,,,,,,,.,.,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²I²I²I²I²²I²ID²I²DD²DIDDID,,,,,,,,,,,,,,,,XghcdhchdhgdhgC>ghgdghhdghchdcgdgdhhh_Bhdhdhchcdf>Bh>hdhdhdhchchchhc>cdhh_BchchchchC[hdhddghgghchdd>>ghhdhhhchC_dhchhcggghdh>chhchdhdhdhdX 0cÁhhh•f¹hùhÁhhhÁhhÁÁÁhÁhhhÁhÁhhÁhhhhhÁhÁhhhhÁhÁhhhhÁhÁÁhÁhhÁÁhhhhhhhÁhhhhhÁhhÁhÁhhhhhÁhhÁhhÁÁhhhÁhhhhÁÁhÁhhÁhÁhÁhhh•¹hÁ•¹hh¹h••¹•¹�hhhhÁ¹�Á„•hhÁhÁhÁhÁhhhÁhh•¹„M        –Óèúúúúùúúúú÷úú÷úúú÷úüþúúóú÷úóúó÷úó÷÷òÙ’s?  !!    ?s�¬òúúúúúûúüúúüúúüýÿýúýúýúýúýúýúüüûúüüõÙ�U,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,L,,,L,L,,,,,,,,LL,,,,,,,.,,,.,,,,.,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DII²I²IIDDDDDDDDDDDID,,,,,,,,,,,,,,,,,,,Xdgdhdhhchhghdchdhhhdhghdhchghhhghccc_chghghghgh>Cg>hghghgdhhhhhh__hghc_Zhhhghghcc>>hhdhghhdhdhhhgh>>fdhghcchgY_hghdhghdhdhg>hhchdhgghdhgX,Xhhhh•¹•hhhhhhhÁhÁhhhhhhÁhÁÁhhhhhhhhÁhhhhÁhhÁhÁhhhhÁhhhhhhhhhhhÁhhhÁÁÁhhhÁhhhhÁÁhhhÁÁhÁhhhhhhÁhhhhhhhhhÁÁhhhhhÁÁhhhhÁhhhh•�Áhh•h¹Âh�Á•¹•h•h•¹�¹Áhhhhh•hhÁ•hÁhhh•c               ^Óà÷úúúúúúúúúù÷÷ú÷÷÷úüþüóó÷óóó÷ó÷ó÷óúóÙ¥Ž?!!  !  !!    ! !    ! !  !!      ! =q’Óõúúúúüúúûüúúüúýþþüúüúýúüúýúýúûüüúý÷ëד0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.L,L,,.,,,L,L,.,L.,,.,,,L,,.,,.,,.,,,,,,,,,,,,L,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD²IDDIID,,DDD,DDD,D,,,,,,,,,,,,,,,,,,,,,,Xhgghgdgdhdhh_>hdgdgdghdhghchdhchdhhhhBhchgdghdhh>Bh_hdhdhghchchc>>[dhhdhh_Bhchdhdhh_cgghdgdgghhchdhj>ghchghhhc_chdghchghdhdf>chhghdhhdghdX,ThÁ•¹�•hhhhÁ•ÁhhÁÁhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhÁÁhhhÁhhhÁhhhhÁhhhhhÁhÁhhhhhhhhhhhhÁhhhhÁhhhhÁhÁhÁhhhhhhhhhhÁhhhhhhÁh•¹•¹h•¹Á�ÁhÁ¹hh•¹•¹�Á••ÁhhÁh•¹h••¹hÁ•h•¹hX    0Ç×õúúúúúúúúúúúúú÷úúúúþüúóúóú÷÷ú÷óúó÷òÙ¥Žl     !     ?s’Õúúúúúúúúúüûúúúýþýýúýúýúýúýúüüûúýúý÷àÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,LL.,,L,,,.,,,,L,.L,,,,,L,L,,,.,,L,,.,,,,,,,,,,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DDDDDDDDD,,DD,DD,,,,,,,,,,,,,,,,,,Xedhdhhhghgdh_Zhhhghhdhghhdhghdhhgdhch>dhhhhhdhgc_dCghggdhdhghh]>_hhghchggccCghghghch>hfhghghdhchhhd>jhdhhhchchC_hhhdhhdhhghh>hhchdhchghdgW  cÁhhhh¹••Áh•¹Á•ÁhhhÁhÁhhhhÁÁhhhÁhhÁhhÁhhhÁhhhhhÁhhhhhÁhÁhÁhÁhhhÁhhhhÁhhÁÁhhÁhÁhÁhÁhÁhhhhÁhhhhhÁhhÁhhhhhhÁhhhhÁhhÁÁhÁhhhhÁhhhhhhhÁ•hhhhh�ÁÁhh¹ÁhÁhhÁhhÁ¹•�hÁ¹•hc0      aÓæ÷úúúúúúúúúúúú÷ú÷÷úþüúóó÷óóóóóóúó÷óàšŽl !       !    ! !   !      !  !  !>}¢ä÷úúúýúýúúüúýúüýÿýüúüúýúýúýúûüüúýúúëÙ–0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,L.LL,,,,.,L,.,,L,,L.,,L,L,L,.,,,,.,.,,,,,,,,,,,,.,,.,,,,,.,,,,,,.,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DIID,,D,,,,,,²D,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhdghddghdgfZ[hchdhdghhdgdhdhghchghhh__chdhdggh>hh_ghdhghdhch>Zhdhdhhdhhh_Bhhdhdhh>[hchhdhghhdhdh>>dghchhhhhY__c__c__c__c_>chhgghghdhhhX,XhhhhÁ•¹ÁhhhhhÁhhhÁhÁhÁhhhhhhhhhhhÁhÁÁhhhhhhhÁhÁhÁhÁhÁhhÁhhhhhhÁhÁhhhhhhhÁhhÁhhhhhhÁhhhhhhhhhÁhÁhhhhhÁhhÁhÁhhÁhhÁhÁhhhhÁhÁhhhhù•ÁhhhÁ•¹Áhhhh•ÁhhhÁhÁ�Á¹•Á�hhhX,  0ÇÙõúúúúúúúúúúùúúú÷úúüþüóóúóúóúúó÷ó÷ó⚎o   !  !       ?Ž¢äúúúúúúüûúúúüúüýþüýúýúüúýúýüûúýúüý÷æÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLLLL,,LLL,,LL,,.,L,,,,,,,,L,L,L,,,,,L,,,,,,,,,,,,,,.,,,,,,,,,.,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD²IIID,,,D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XddghdhghdhhhB$[hhhghghdhghghgdhdhghchhd_hdhghhCCgdChhhhdhghhB_hhdhchhchd�$Zhggdhd[_hhhchgddhghhg>@hhdhhchhhBhhchdhhhgdhcX,Mhh•ÁhhhhhhhhÁhhhhhhÁhhÁhhhÁhhhÁhÁhhhhhhhÁhÁÁhÁhhhhhhhÁhhhÁÁhÁhÁhhhhhhhhhhÁhhhhÁhÁhhhhÁhhhhÁÁhhhhhhÁhhÁhÁhÁhÁhhÁhhÁhhhÁhÁhhhÁÁhhhh¹•Áh¹•hhhhhÁ¹•hÁhhhh•Áhh¹Á„hM `Óæ÷úúúúúúúúúúúúúúú÷üþüóúóó÷ó÷ó÷óúóóè¬�q=! !!  !    !    !    !   !  ! ?�¥æúúúýúúüúüüúüüýÿýúüüüûüúýúüüüúýúúúëÙ“M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,.,.,,,,,LLL,LL.,LLLL,,L,.L,LLLL,L,,,,.,L,L,,,L,,L.,,.,.,L,,.,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD,,,,D,,,,,,,,,,,,,,,,,,,,,,,,WhghdghdggdghY_hhchdhhghdghdhgghdhhhhch_>___C$>ghh$$�hchch__c_>[hhgh_BhhhhdhCgC>dhhdhhgdhdhf>>chghhhchhCchhghdhdghghX,c¹••hhhhhÁhÁÁhhÁhhhÁhÁhhÁhhÁhÁhhhhhÁhhhhhÁÁhÁhÁhÁhhhhhhhhhhÁÁhÁhhÁhÁÁhhhÁhhÁhÁhÁhhÁhÁhhÁÁhÁhÁÁhhÁhÁhhhÁhhhÁhhhhhÁhhÁhÁhhÁhhÁhhhhhhh•hhhhhÁhÁ„¾hhhhhùhhhÁh•¹e ,  ,0žÙõúúúúúúúúúúúúúúúúúüüú÷óóúóúóúó÷úúòÓ p=!     !!  !j�šéúüúúüúüúúýúúúýÿýúýúüúüüúýúûüüüüü÷àÊ\,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,.,,,,,,,,,,,,.,,,,,,.,..,LL,,NL,,.,L,,L,L,,,.L.,,,,.L,,,.,LL,,,,.,L,L,,L,,L,,,,,,,,,.,,,,,.,,,,,,,,,.,,,,,,,,,,,,L,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhhhdhhh[Chhhhhchhdhdhgdhdhghdhhhhd_$$>fhch>@@hhhhhd@chdhcCghchh>$>hdh>_hhghhdhhgdh>>hhdhchhhc_hhhgdhdhhhdhT,,,, ,bhhh¹•ÁhÁhÁhhhhhÁhhÁhÁhÁhhhhhhhhhÁhÁhhhhÁhhÁhhhhhhÁhhÁhÁhÁhhhhhhÁhÁhhhÁhhÁhÁhhÁhhÁhÁhÁhÁÁhÁhhhhhÁhhÁhÁhhhÁhÁÁhhÁhhÁÁhhhhhÁhÁhhhhhÁÁhhhÁhÁhÁhhhhhÁhÁhhhhÁhhhhW ,,, ^Óàúúúúúúúúúúúúúúúúúüÿüóóúóó÷ó÷ó÷óóòÙ’q= !       !   !!        !   ! !  o�¬òúüúúûúüúúýúýüþþüúüûüüûüúýüúýúûüúëÙ“0,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,.,,.,,,,LLLLL,,L,,,L,,,LL,.,,,LLL,,LL,,,.L.L.L,,,LLLL,LL,,LL,,,,L,L,,,,,,,,,,,,,,L,,,,,,,,,,,,,L,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DD,,,,,,,,,,,,,,,,,,,,,,,,,,,Thhhhghdhghhdg$>hhhhhhhghghhhhhhhhhghhchhh‚@$Bhhhhh@‚@hhchch�@>hchh_Bhhhh_$_hhhcchdhhghhhhh@>hdhhhhhghZchhhhhhchhdhh>hchhghhghhghX,,MdhhhÁhÁÁhÁhhÁhhhÁhhhhÁhhÁhÁhhÁhhhhhhÁhÁhhÁhÁhÁhhÁÁhÁhÁÁhÁhhÁhhÁhhhhÁhÁhÁhhÁÁhhhhÁhhhhhhhhhÁhÁhÁhhÁhhhhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁ•ÁÁ•ÁhhÁhhÁhhhh•ÁhhÁhg0,0�Úõúúúúúúúúúúúúúúúúúüüú÷÷óóúóúó÷úó÷â’}?   !   !   ! !=q‘Úúúýúüýúüüúüúüýþýýúüûúüúüüúüúüüüü÷àÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,,,,,.,,,L,L,L,,,N,L,NL.,L.L,L,LL,,.,L,,.LL,,LL,L.L.LL.,,,,,LLL,,LL,.,,,,,,,,.,,L,.,,,,,.,.,,,,,,,,,,,.,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhfghhdhhh8chdhhdhdhhhdhdhchchhhhhhhhhch_B_B__hhhchchBBB_hh[B$j@�hhhhghgh[CYB_chhhghdZBY_hhhh[c_c‚hhchhc_c[hhhhhhhdghh>@hhhhdhhdhB_hhchhhhhhghh>$hhhhhdhhdhhdX,,,,,,chhÁhhhhÁhÁhhhÁhhÁhÁhÁÁhhÁhÁhhÁhhhÁhhÁhhhhhhÁhÁhhÁhÁhhÁhhhÁhhhÁhÁhÁhÁhÁhhhÁhhhhÁhÁhÁhhhhhhhhhhhhhhhhÁÁhÁhhhÁhhhhhhhhhhÁÁhÁhhÁhhÁhhhÁhh¹•Á¹ÁhhhÁhÁhÁhÁ¹••Á•^,,, ,,,`Óàúúúúúúúúúúúúúúúúúüÿúóóóúóó÷ó÷óó÷èš�m     !!!   !   !    ! =Ž’æúúúúúüúûüúýúýýÿüüüüüúýüûüûýúûúýúëÙ“-,,,,,,,,,,,,,,,,,,,.,,,,,.,.,,,,,,,,,,,.,.,,,,,,.,,,,,,,,L,,L,LL,,LLLLLLNLLL,L,,L,L,LL,,L.L.LL.L,.LL,LL,.,,L,L,,,,L,LL,,L,.,.,,,,,,,,,,,,,,,,,,,,,,,.,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,D,DD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhdhdhhhh_$Zhhhhghhhhhhhhhhhhhhhdhhchhhchhhhhghhhhhhhhhhhhhhhhchhhhhhdhhdhhhhdhdhdhghdhdhhhhhhhhhchhhhhhhhhhhhhhdhhhhh>hhghhhhhhC$[hhhhhhchhhdd@hdhhhhdhghhhX,,,,Whhh•hhÁhÁhhhÁhÁhÁhhhhhhÁhhhÁhhÁhhÁhÁhÁhÁhhhhhhÁhÁhÁhhhÁhÁÁhÁÁhhhÁhÁhhhhhhhÁhhhÁhhÁhhhhÁhhhhhhhhÁhhhÁhhhhhhhÁhhhhhÁÁhhÁhÁhhhhÁhÁhÁhhhhhÁ�Á••hÁhÁhÁhhh•¹•¹cM -�×õúúúúúúúúúúúúúúúúüþüóóú÷óóúóúóúóòÓ�p$   ! !   !         !jŽšéúüüüúüüúüúüüýþýúüûúýúúüúüúýüüüú÷àÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,.,,,,.,L,.,,L,L,LL,LLLLLL,LLL,L,.LL,LL,LLLLLLLL.LLL,.LL,L,,L,L,L,,LLL,L,.,.,,L,,,,LL,,,L,,,,,,,,,.,L,,,.,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIDDDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhgghghhhhchhhhhhhchhhghhhhhhhhghhhchhhhchhdhhchhhchhhhhhhhhhdhchhhghhhhchhghhgghhhghdhhhhhhhchhhchhhhhhhhhhhhhhhdhh>$$hdhhhhchgYchdhhhchhhhgh>hhhhhghgdhhhW,,,,McÁ•h¹•hÁhhhÁhÁhhÁhhhhhÁhÁÁhÁhhÁhÁhÁhhhhhhhhÁhÁhhhÁhhhhhhÁhÁhhhhÁhhhhhhÁhÁhhhÁhhhÁhhÁhÁhÁhÁhÁhhhÁhÁhhÁhÁhÁhhhÁhhhhÁhhhÁhÁhÁhÁÁhhhhÁÁhhhÁhhh¹ÁhÁhÁhhhhhhÁ�c^Óàúúúúúúúúúúúúúúúúúüþóóúóóúóó÷÷óó÷à’s=     !   !!     ! !     !!!o�Õúúúúüúûüúýúúüþÿüüüýúýúýüûüúýúûüúë×�/,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,.,,,,,,,,,,,,,,,,,,,,.,,,,,,,,L,LLLLL,L.LLLLLLLL.L.,,L,LLLLLLLLLL,LLL.L,,L,,,LLL,,LLL,L,,,,,,,,,LLL,,L,.LL,,.,L,,L,,,,,,,,,,.,,.,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhchhhhfhhhh•¹C$$>gdhhhhdhhghhhhdhhhdhhhhhhchchhhhghhhchchhhhhhhhchchghhhhhchghhhhhhhhhhg„$8hfhhhhhhhchhhhhhhhhdhhhghhhhg„$hhhhhhhghY$[dhchhhhhchdh>$hhhhgfhdhhhhX,,,,,,c¹Á„¾hhhÁhhÁhhhÁhÁhÁhÁhÁhhhhhÁhhÁhhhÁhhÁÁhhhhhhhÁhhhÁhhÁhhÁhhÁhÁhhhhÁÁhÁhhhhÁhhhhhhhÁhhÁhhÁhÁhhhhhÁhhhÁhhÁhhhÁhÁhhhhÁhÁÁhhhhhhhhhhÁhhhhhhhh•¹•ÁhÁ•ÁÁ•¹hhM    , �×õúúúúúúúúúúúúúúúúúÿüúóóúóóúóúóúóç¬�l     !   !  =s’æúüýúüüúüúüýúüþýýúúýúýúúüúüúüüúüõàžP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,.,,,,,,,,,,,,,,,,,,,,.,.,L.,,,,L,,LLLLLL,LLLLLLLL,LL,,L,L,LLLL.L,L,L.L.LL.LL,LL,LLLLL,,,,.,,,,,,.,L,,,LL,LL.,L.,,,L,.L,,,,,,,,,,,.,,L,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDDDDL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhchhhhhhhhhh$hhhhhhhhdhdhhhhhhghhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhchhhhC$Y¹hhhchhhhhhhhhhhhhghhhhhhhhhd>hhhhhchhhC$xhhhhhhhhhhhd@hhhhhhhhhhhhX,WhhhhhhÁhhhhhhÁhÁÁhhhhhhhhhhÁhÁhhhhÁhhÁhhhhhhÁhhhhhÁhhÁhhhhÁhhÁhhÁhhÁhÁhÁhhhÁhhhhhhÁhÁhhÁhhÁÁhhhÁhhÁhhhhhhÁhhhÁhÁÁhÁhÁhÁhhÁhÁÁhÁhÁhÁhhhÁhhhh•�Á¹•Áh¹•�•c0      0ÔÚúúúúúúúúúúúúúúúúúüþ÷óúóó÷úó÷óóúòÕ�q !        !     ! ! ! ! !         l�¬òúúüúûüúýúüüýþÿüüýüüúýúýüûüüûüüúèÓ`,,,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,,,,.,,,,,,,,,,,L,,,,,.L,LNLLL,.LLLLLLLLL.L,LL,LLLLL.L,LL,LLLLL.LL,,,,,LLL.L,,L,,L,L,,L,L,.,LLL,LL,.LL,,L.,,L,L,,,,,,,,,,.,,,,,,,.,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Whhhhhhhhhhhhhhhd$chhhfhhhhhhhghhhdhhhchhchhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhh_$Chhhhhhhhhhhhhhhhhhhhhdhhdhhhd@hhhhhhchhZ$[hhhhhhhhhhhh>$hhhhhhhhhhhhX,,,0chÁhÁÁhÁhhhhÁhhhhhhÁhhhhÁhÁhhhhÁhÁhÁhÁÁhhhÁhhÁhhhÁhhÁÁhhhhÁhhÁhhÁhÁhÁhÁhhÁÁhhÁhÁÁhhhhhhÁhhhhhhhÁhÁhhhhhhÁÁÁhÁhÁÁhhhÁhhÁhhhhÁhhhÁhhhÁhÁhÁh•¹hÁhhhhh•¹•¹W  , fÓèúúúúúúúúúúúúúúúúüýüúóóóúóóóú÷÷óâ’}>!   !  !  !  !!$q’ÚúýúüüúüüúýúüüþýúüûúýúýúúüûúüüúüõÙ“M,,,,,,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LL,.,,,,,,.,L.L.,LL,LLNLLLLLLLLLLLLLLLL.LLL,LLNLLL.,L,LLLLL.L,LL,LLLLLLLLLL.LL,,LL.,.,,,L,L.,,LL,,L,.,,,,,,,L,,,,.,.,,,,,,,,,,,L,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,DDDDDDDDDD,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhh�¹•hhhhhh_$>hd¹hhhhhh_X„hghdhhhhhhhhhhh¹•hhhhhhhhhhhhhhh�¹•hhhhhhhhhhhhhhhhhhhhB$>hhhhhhhhhhhhhhhhhhhhhhhhhhhdhh>$hhhhhhhhhB$chhhhhhhhhhhh@hhhhhh¹•hhhhX,,,c„hÁhhhhÁhhÁhhhhhhhhhhhÁhhhhhhÁhÁhhhÁhhÁhhÁhhÁhhÁhhÁÁhhhÁhhhhhhhhhhhhhhhÁÁhhhÁhhÁhhhÁhhhÁhÁhÁhÁhÁhhhÁhÁhhhhhhhhhÁhÁhhÁhhhÁhÁhhhhhhÁhÁhÁhÁhhÁhh•Áhhhhhc0 Ê×õúúúúúúúúúúúúúúúúüÿóóúóúóóú÷óóóòÓ�m!  ! !  !     !   !  !=Žªèúüúüüúúüüüúýýÿüüüýúýúýúýüüúýüû÷àÊ\,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,L,,,,.,,,L,,,,.LL.,.,,LLLL.L,LLLLLLLLLL,LLLLLLLLLLLLLLLLLLLL.L,,LL.LLL,LLLL..LLLL,.LL,,LLL,L.L,,LL,,,,,L,LLL,L,,L,,,,,,,,,,L.,,,,,,.,,,,,,.,,,.,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDLD,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Thhhhhh¹hhhhhhhhhh_!@Y_c_[@$@hhhhhhhhhhhhhh�•hhhhhhhhhh•hh••¹•hhh•hhh•hh•hh•hhhhhhhh•¹••hhhh•hh•hhhhhhhhhh•hhh@_@[>@$@>YZYZhhZ$_hhhhh•hhhhhh$hhhhhhhhhhhhX,,,,,MhÁhhhhhhÁÁhhhhÁhÁhhÁhhÁhÁhÁhÁhhÁhhÁhhhÁhÁhhhhÁÁhhÁhhhhÁÁhhhhÁhhÁhhhÁhhhhhÁhhÁhhhhhÁhhhhÁhhhhÁhhÁhhÁhhhÁhÁhhhhhÁhhhhhÁhhhhÁhhhÁhÁhÁhhhhhhhÁh•¹ÁhÁhhhhX UÓàúúúúúúúúúúúúúúúúúþüúóó÷óúó÷óúúóà¢s=   !!!      ! !o¢ÕúúüûüüüúýúýúýþýýúúýúýúüúûúýúúüüèÙ�-,,,,,,,,,,L,,,,L,,,,,,,,,L,,,.,,,,,,,,,,.,L.,,.,.LL,,L,,.,L,.,LLL,,,LLL.LLLNNLLLLNLLLLNLLLNLLLLLNLL.LLLLL,LLLL,,LLLLLLLLLLLLLLL,,L.LLLL,LLLL.,,L,L,L,L,L,.,,,,.,,,L,.L,,LLL,,,,,LL,,L,,,,,,.,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhh�••hhhhhhhhf>$$$[hhhgh•hhhhhhhhh¹•hhhhhhhhh¹•�¹•�¹•ghh¹•h¹•h¹•h¹•hhhhhhhhhh¹hhh�¹•¹•¹•hhhhhhh•¹hh$$$$‚hYchhhhhhh¹•hhh>$hhhh•hhhhhh�X,,,,,,,Ldh¹•hÁÁÁÁhhhÁhÁhhÁÁhÁhhÁhÁhhÁhÁÁhÁhhhÁhhhhÁhhhhhhhhhÁhÁhhhÁÁhhhhhhhÁhhhhÁhÁÁhhhÁhÁhhÁÁhhÁhhÁhÁhhhhÁhhÁÁhÁÁÁhhÁhhhÁÁÁhÁhÁÁhÁÁhhÁhÁÁhhhÁÁÁÁhhhÁhhhhÁÁhM ,“Óèýúúúúúúúúúúúúúúúýÿ÷óóúóó÷÷÷óó÷謠?      !  !  !            =}’æüúüúúýüüüüüüþÿúýüúýúýúýúýúýüüûõÚ—M,,,,,L,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,L,,L,L,,,,,LL,,,,,,,,LL,,,LLL,,LN.LLN,NLNLLLLLLLLLLLLLLLLLLLL.LLLLLNLLLLL,.LLLLLLLLL,LLLLL,LLLLLLL,,L,.L.L.L.,,LLL,,L,LL,,,,L.,,,L,L,L.,,LL,,L,,.,.,,,,,,,,,,,,.,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,DDIDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhh•h•¹•¹hhhhhhh•¹hh_$$$=hhhhh•¹•hhhhhhhhhhhhhhhh•¹�••¹h•¹•hhhhhhhhhhhhhhh•¹•hhhhhhhhhhh¹•h„¾�hhhhhhh•¹�•hh$$!$$$$hhY_hhh•hhhhhhhh@$hh•¹h•hhh�¹hX,,,b�hÁÁhÁhhhhÁhhÁhhÁhhÁhÁhÁhhhhÁhhÁÁhÁhhhhhÁhÁhhhhhÁhhÁÁhÁhhÁhÁÁhÁhÁÁÁhÁÁhÁhÁhhÁÁhhhhhhhÁhÁhhÁhÁÁhhhhhhhÁÁhhhÁhhhhÁhhhÁhhhhhÁhÁhhhÁhhÁÁhÁhhhhÁhhhhÁhhg,0ÊÚ÷úúúúúúúúúúúúúúúúüüóú÷óóúóóóú÷óÙ’}!!  !!  !!!   !    ! !! o�¬úýúüüüûüúýúüýÿýýúýúýúüüýúüúûúüúàÓ\,,,.,,,,,,,,,,,L,,,,,,L,,,,,L,,,,L.,,,L,L,LL,,L.L,LL,L,LL,,L,LL,,L.,LNLLNLNLLLLLLLLLNLNLLLN,NLLLLLLLLLNLLL,LN,LLL.LLLLLLLLLL,LLL,LLLLL,LLLLL.L.LL.,,LLL.L,,L,.,,,L,,,LLL,.,,,L,LLL,L,,,,,L,,,,L,,.,,,,,,,L,.,,.,,,,,,.,,,,.,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDD,DDDDD,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhh¹•hhhhhhhhh•hhhhhh_@$$$$>Y‚hhhhhhhh�¹•hhh¹•h•hhhhhhhhhhh¹•hhhhh¹•h•hh•hh•hh•hh•�¹•hhhhh•hhh•�¹••¹•¹•hhhh•hhh¹•ZYYYYYBYCYZYZ_YYYYh•_=@>hhh¹•¹•hhhh•h=$hhh•�¹•¹•hh„X,,,Mg¹ÂÁÁhÁÁÁÁhÁhhhÁhÁhhhhÁhhÁhÁhhhhhÁhhhÁhÁhÁhÁÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁÁÁhÁhÁÁhÁÁhÁhÁhÁhhhÁhÁhhhÁÁÁhÁhÁhÁhhÁhhhÁÁhhÁÁhhÁhhÁÁhhÁÁhÁhÁÁhÁhhhhÁÁÁhÁÁÁÁhÁhÁh•ÁhW\Óàúúúüúúúúúúúúúúúúýÿúóóó÷úóúóúóó謎?  !      ! ! !       !! =�’éúüúýúüúýúüüüþþúýúýúýúûüüúýüýúûèÚ�/,,,.,,L,,,,,.,,,,,,L,,.,L,,,,,,,,,,,L,L,,,,,.,LLL,L.,,,,L,,L,LL,L,,LLLLNLNLLNLNLLLLNNN,LLNNNLLL.NN,NLLLNLLLLLLLLLLLLLLLLLL,LLL,LL..LLLLLL,LLLLL.L,LLL.L,.LL,,LL,,L,.,,L,,L,,,.L,L,LL,L,,,.,,,..,L,L,.,,,,,,,,,,,,,.,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DLL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhÁ�hhhhhh•hh•¹•hh•h•¹ghh•_c_h•¹•hhhhhh•¹•hh•hhh••¹hh•¹hhhhhhhhhh•hh••�•¹h•¹h•¹h•¹h•¹hhh•h¹••¹hh•¹hh•¹�h••¹•h•¹hhhhhhhh••h•h•¹�•hh••h••¹hhhhhh••�hhhh•¹•hh•hh•h•¹hhhh•h•¹hX,,,,,,,,chÁhÁhhhhhhhÁhÁhÁhÁhhÁÁhÁÁhhhÁhhhhÁhhhhÁhhÁhÁÁhÁhhhhhhhhÁhhhÁÁhhÁhhhhhhhÁhhhÁhhhÁÁhÁhhÁhhÁhhÁhhhÁhÁÁÁhhhÁÁhÁhhÁhÁhÁhhÁÁÁhÁhhhhÁhÁhÁhÁhhhhhhhÁ•¹ÁÁgM,,�Óõúúûúûúúúúúúúúúúúüþóúóúóóóó÷ó÷óæ’q!      !!!      !        !o¢ÕúúüüüúýúýúýúýÿýúýúüüüüûúýúúúüüõàÆ\,,,,,,,,,,.,,,,L,,.,.L,,,L,.,,,,L,,,L,.,,L,,,LL,L,LLLL,L,,,,,L.L.L,LNLNNNLNLLNLLNLLNLLNLNLLNLLLLLNNNN,LLLLLLLLLLLNLLLLL.LLL,LLLLLLL,LL.L,LLL,LLLLLLLLL.LLL,.,LLL.,,,.,,,.,.,LLL,,,L,LL,LL,.,L,,,L,,,,,,LL,.,,.,,L,,.,L,,,.,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,D,DDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhh¹•¹•hh•h¹•h•�¹•h¹•�••hh•¹hhh•�¹•hh•hh•�¹••¹•hh¹•hhh••hhÁhhh•hh•¹•h¹•¹•hhhhhhhhhhhhhhh•¹•�¹•�¾•hhhhhhhh¹•�¹••hhh•hh•hhh¹•¹hhhh¹•h¹•¹•¹�h•hhhh¹•¹•hhhh�¹•h¹•h¹•hhhh•h¹••�X,,,,,,,,,,\hhÁhhÁhhÁhÁhhhÁhÁÁhÁÁhhhÁhÁÁhÁhhÁÁhhhÁhÁÁhhhhÁhhhhhhhhhhhÁhÁhhÁhhhÁhÁhhhhÁhÁÁhÁhhhÁÁÁhhÁhhhÁhhhÁÁhÁÁhhÁhhhÁÁhhÁhÁhhhÁhhhhhhhÁÁÁÁhhÁhhÁhhÁhÁhhÁhhX,,,,,0ÓÙúúúúúúúúúúúúúúúúüþúóóóó÷úóúóúóè¬�?  !          !! =�ªèüüüûüüüüüüüýþþüüüüûüúüúýúýýûüúæÓ\L,,,,,,,,,.,,L,L,,L,L,,,L,,,,,LL,L,,,,,,,,L,LLL,,LL,LL,,LLLL,,L.LL,LNNLLNLLNLLNLLNLLNLLLLLNNLLLLLLLNLNLLLLLLL,LNLLLNLL.LLLLLLLL.LL.L,LLLLLLLLLLL,,LLL.LL.L,,LLL,.LL,L,LL,.,,.L,L,,,LL,,,L,,,,.,L,L,,LL,,.,,,.,.,,,.,,,,L,,.,,,,,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XÁ¾„•�h•¹•¹�••¹hhhhh•¹•¹h•¹�•h•¹hhh•¹•h•¹hh•¹�hhhhhhh•¹hh¾�hh•¹h•¹�hhhhhhhhhh•hhh•hh•hh•¹�•¹h•¹•¹hh•hhÁhhh•¹••¹hh•¹••¹hhhhhhhhhhhhhhhhhh••¹hhhhhhhh•¹••¹•hhhhhhhhh••¹•h•¹hhX,,,,,,,MchhhÁhhÁÁÁÁÁhÁhhÁhhhhhhhhÁhhhÁhÁhhhhÁhÁÁhhÁhhhhÁhÁhÁÁhÁhhhÁÁhhhhhÁhÁhhÁhÁhÁhhhÁÁhÁhhÁhÁhhÁÁhhÁÁÁhhhhÁhhÁhhhhÁhhhhhhÁhhhhhÁhhÁhhhÁhhhÁhhÁÁÁÁhÁhhgM,,,\Óæúüûúúúûúúúúúúúúúüÿúóúóúóó÷÷÷óóà’q= !    !     !  !!     o¢ÕúýúüúýúýúýýüþþýûýúüüýúýúýúúüúýñÙ“L,,,,L,,,,,,L,,L,,,L,LLLL,,,,LL,,,,L,,LLL,,,LL,L,L,LLL,L.L,L,LLLLLLLNNLLNLLNLNLNLNLNLNNLNNLLLLLLNLLLNLNLLLLLLLNLLNLNLLLLLLLLLLLL.LL.L.L.LL,LLLLL.LLLLLL,LL,L.LL,LL.L,LL,L,,LLLL,,.L,L,LL,,LL,,,.LL,,LL,L.,,L,,L,,.,,L,L,,.,,,,,,,,,,.,L,,.,,,,L,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,LL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhh�¹•¹•hhhhh¹•hhÁhhhhhhhhhhh¹•hhhhh•�¹•hhhhh•¹•h•hh•hhhhh•¹•h•hhh•¹•hhhh•hhhÁ¹•h•¹•h¹•hh•¹•hhh�•�Áh¹•hhhhhh�¹•hhhh�¹•�Áhhhhh•hh•hh•hhhhh¹•�Áhh•hhhh•�¹•�¹•hh•hh•hh¹•�¹•hhhX,,,,,,,,,,,,,,,chhhhhÁhhÁhÁhhhÁhÁÁÁhhÁhÁhÁhÁhÁhhhhÁhÁhhhÁhhÁÁÁhhÁhhhÁhhhÁhÁhÁhhÁhhÁhÁhhhÁhhhÁhhÁhhhhhhÁÁhhÁhÁhhhhhhhÁhhÁhhÁÁÁhhhÁÁhhhÁÁhhÁÁhhhÁhhhhhÁÁhhhÁÁhhhc,,,,,,,,,,–Õõúúúúúúúúúúúúúúúúýüó÷÷ó÷óúóóó÷ò¬Ž?!!    !  !      =s¥èúüüüüüüüúüúþÿüüúýýûüüýúúýüúýúõà�O,,,,,,,LL,,L,L,,.L,L,,L,L,,LLL,LL,,,LL,,,LLLLL,,,L,L,LLLLL..,LL.L,LLNLNNLLLNNLNLNNLLNNLLLLLLNLLNNLLNNNNNLLLLLLNNLNL.LLLLLLNLLL.L..LLL.NLLLLLLLLLLLLLLLLLL,LL.L.L.L,,LLLL,LLLL,L,.,L,,LLL,L,L.,L,,LL,,,,L,,,L,.,L,L,,.L,,,,,,,,.,.,,,.,.,,,,,.,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,LD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhh•h•hhhhhhhhhhhhh•hhhhhhhhhh•¹hhÁ•hhh•¹�h•¹h•¹hhhh•¹�h•¹hh•¹�•hhh•¹Á„¾Á�h•¹�hhhhh•¹�•hh•¹•¹hhhhhhhhh•¹„¾hhÁ•¹••¹•hh•h•¹h•¹h•¹h•hÁhh•¹hh•¹•hh•¹hh•¹•hh•¹h•¹hÁ�•¹�•hh•hX,,,,,,,,,,WhÁhhhÁÁhhhhÁhÁhhÁhÁÁhÁÁÁhÁÁÁhhÁÁÁÁÁÁhhhÁÁhhhÁhhhÁÁhÁÁhÁhhÁhÁÁÁÁÁÁhhhÁhÁhhÁhÁhhhhhhÁhhhhhhÁhhÁhhhÁÁÁhhhÁhÁÁhhÁhhhÁhÁhhÁhhÁÁhhÁhhhÁÁhhhÁÁhhÁhhÁhM,,,,Ê×÷úúúüúûúúûúúúúúúúÿú÷óóúó÷óúóúóæ’q= !          !     ! !     !    !  ! m’Úüüûüüúüýüýüüþÿûüüúüûúüüüüûüúý÷àÊ\,,,,,,L,L,L,L,.,,LL,L,,,L,LLL,L,,L,,LLLL,,LLL,L.,,LL,LLL..LL,,LL,LLNLNNNNLLNNNLNNLLNNLLLLLNLLLNLNLLLLNLLLLNNNNLLLLLLLLNLLLLLLLLLLL.LLLLLLLLLNLLLLLLLLLLLLLLLL.LLLL.LLLLL,LLL,LL,,L,LLL,,,LL,,,L,L.,,,LLL.,,LL,,.L,,.L,,,,,.,.,,L,.,,,,L,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LD²D,D,DL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhhÁhhÁ¹•¹•hhhhhhhhÁhhh•¹•h•hhÁhhÁhÁhh•¹••¹••¹•hhhh�Áhh•hh•¹•hhh•h¹•¹•h•�¹•�¹•¹••¹•hhhhhhh¹•h•hhhhhÁhhÁhÁhhhhhhhh•�¹•�¹•Á¹•hhhhhhh•Á¹•h••hhhhh�¹•hhhhh•�¹••hhhhhhh¹Âhh¹•h¹V,,,,,,,,,,,McÁÁhÁhÁÁÁhÁhÁhhhhÁhÁÁhhÁhhhhhÁhÁhÁhhhhÁhhhhhÁhhÁhÁÁhhhhhÁhhhhÁÁhÁhhÁhhhhhhÁhÁhhhhhÁhÁhhÁhhhhÁhÁhÁhÁhÁÁhÁhÁhÁhÁÁhhÁhÁhhÁhÁhhhÁhhÁhÁÁhÁhÁÁÁhÁhhc,,,,,0ÓÚüúúüúúúúúúúúúúúúýÿóóúóó÷óúó÷óóÙŸo !   !  ! !    ! !  ! ?¢¬õüüúýüýúüüüýþþüúýüüüýúýúûüúýúüèÓeLL,,L,L,L,L,L,,LL.,L,,L,,L,,,LLLLLLLLL,LLLLLL,,L,LLL,,LL.LLLL.LL.NNNLNNNNLNLNLLLNLLLLLNLLLLLLNNLNLNLNLLLLLNLLL,NLLLLNLLNLLLLLLLLL,LLLLLNLLLL,LLNLLLLLL,LLLLL,LLLLLLLL,LL,,LL,,L,,LL,L.LL,LL,L,,,LLL,,LL,,,LL,,L,,.,,.,,.,,.,.,L,L,.,,.,L,,L,,,,,,,,,,,,,,.,,,,,,,,,,,,,,L,,,,,,,,.,.,,,,,,LD,LL,DL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhÁhhÁh•�hhhhÁhÁhhhhh•¹�••¹hhhhhhhhh•¹Á�¹�•¹�•hÁh•Á¹h•¹Á•¹„•hh•¹Á�„¾••¹�¹•¹„•�•¹�•hhhÁ•hhhh•¹hh•••ÁhhÁhhhhhÁhhhùh•¹h•¹�hhhhh•hh•¹�•hhÁ¹h••h•¹•Á•hÁh•¹hh•¹•hh•hhhhÁhhhhhhhX,,,,,,,,,chhÁhÁhÁhhhhhÁhÁhhhhhhÁhÁhhÁhhÁhhÁhhhÁhhhhhhhhÁhhÁhhhhhÁhhÁhhhhhhhÁhhÁhÁhhÁÁhÁhÁhÁhÁhÁhhÁÁÁhhÁÁÁÁhhÁhÁhhhhhhhhhÁhhhÁhhhhÁhhÁhÁÁhÁhhÁhÁhÁhhh•¹X,,,,,^Óèúûúûúúüûúúúúúúúúþüúóóúóúó÷úóúèª�?!   !!   !    ! !!     !9Ž¥æúüüüúüüûüüüüÿýüüûýúýúýúýúýúýúõÙ�OL,,,,,,,LLLL,,.L.LL,LLL,,LLLL,LLLLLLLL,,L,,LLL,L,,LL,LLLLLLL,LL,.LNNNNNNNLLNNNNLNNNLLLLLLLNLNLNLLNLLLLLLNLLLLLLLLNLLLLLNLLLLLLNLLLLNLLLLLLNLLLNLLLLLLLLLLLLLLLLL,LLL,LLLLLLL,LL,,LLL,LL.LLLL,LL,L,LL.L.LL,,LL,L,,L.,,,,,,.,.,,L,.,,,.,,,,,,L,,,,,L,,,,,L,.,,,,.,,,,,,,,,,,.,,,,,,,.,,,,,,,,,,,,LD,L,D,DL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhhÁÁh„¹•¹•hhhhhhhhhÁhhhh¹•ÁhhhhhÁhhhhh•„Á¹•hh¹•h•¹•hhhhhh�¾¹•hhÁ�¹•hh¹•�•�¾¹•¹•hh¹•ÁhÁ¹•hh•hhhh¹Á¹•Áhhhhhhhhhhhhhhhhhhhhh•Áh•¹••Áhh¹•�Á•h¹•¹•�¹•¹•hhhhhhh�¹•h¹•ÁhhÁhh•h•hX,,,,,,,,,,,,XhÁÁhhhhhhhhÁhÁhÁhÁhhhÁÁÁhÁhÁÁhÁhhÁÁÁhhhhhhhhhÁhÁÁhÁhÁhÁhÁhhhhhhhhÁhÁÁÁhhÁhÁÁhhhhÁÁhÁhÁhhÁhhhÁhhhhhhÁhÁhhÁhhhÁhÁhhÁhhhhÁhhÁhÁhhhhhÁÁhhhhhhhÁc0,,,–Óõúüúúúüúúúûúûúúúüÿ÷ó÷úóóó÷ó÷óóâ’p9    ! ! !  !  ! !!!C�Õüüúýüýüüýúýüÿýúûüúýúüüüüüúýúýõà�R,,,LLLLL,L,LLL.L,L.,,LLLLLL,L,LLL,LLLLLLL,LLLLLLLLLLLLLLLLLLL.LLNNNLNLNNLLLNLNNNNLNNLNLLNNNNNNLNLLLLLLLLNNLLLNNLLLLLNLLNLLNLLLLLLLLL,NLN,LLNLNLNLL,LLLLLLLLLLL,LL.LLLLL,LL,,.LL,LLLLLLL,.LLL,,,LLLL,L,LL,L,L,LL.L,LL,L,,,.,,.L.,.,,.,,,,,L,,,LL,,,,.,,,.,,,,,,,,,L,,,L,,,,,L,,,,,.,,.,,,,,,,,,,,,L,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XÁhhÁh¾Á�•hhhÁhhhÁhhhhhÁhhhhhhhÁhhhhÁh•¹Á¾•hhhhÁ•¹�Á••hÁh•¹„hhhhhh¹„¾••¹•¹„Áhhhhhhh•¹Á�hh•¹h¾•hÁ�•hÁÁhÁhhhÁhhhÁÁhhhhhÁhh•¹h•¹�Á¹hhhÁ•¹•¹•Á�h•¹Á„¾hÁhhÁhÁ•¹•h¾�hÁhÁhhhÁ¹•hhX,,,,,,,,,chÁhÁhhÁhÁÁÁÁhhhÁhÁhÁÁhhÁÁÁhhhhÁhhhÁÁÁÁÁÁÁÁÁÁhhhhÁÁÁhhhhÁhÁÁÁhhÁÁhÁÁÁhhÁhhhhhÁÁÁÁÁÁÁhÁÁÁhhÁhhÁÁhÁÁhÁÁhhhÁhhhÁhhhÁhhÁÁhÁhÁÁhhÁhÁhÁhÁhÁhhÁhÁhX,,ÓØúúúüúúúúúúúúúúúüüÿó÷óóúóúóúó÷òÕŽj !!     !!  !    !         !!      !  !  ! 7ŽšõüüúýüûüüüüüþÿüüüüüüûýúýúýúúýúàÓ\,,,,LLLL,,L,,LLLL.LLL,,LLLLL,,LLL,LLLLLLLLLLLLLLLLLLL,LLLL.LNNNNNNNLNNLLNNNNNNNNNNNNNLNLLLNNNNLLLLLLLNNNLNNNLNNLLNNLNNLNLNLLLLLNLLNLNLLLLNLLL,LLLLLNNLLLL,LLLLNLLLLLLLLLLLLL,LLLLLLL,LLL,L,L.,LLLL,,LL,,,LL.LLLLL.L,L,L,.,L..,,,,,,,,LLL,LLL,LL,,.,.L,.,L,,,,,,,,,,,L,,,,,,.,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhhhÁh„¹•¹•hhhhhhhhhÁhhÁhhh•¾hÁhÁhÁhÁhhh�Á¹•hhhhÁh„¹•¹•hÁhhhhÁhhhhÁhhÁ¹•hhhhhhhÁhhÁhhhhhÁ•hÁh„¹•Áh¹•ÁhhhÁhhhhhhhhhhÁhhÁhhhhhÁhh„ÁhÁhhhhh�¹•�¹•hhÁhhhÁhhhh•�¹Ã„¹•hhÁhÁ•�Á¹•W,,,,,,,,,,,,,,,,,,chhhÁhÁhÁhÁÁhhhhhÁhhÁhhhhÁhhhhhÁhÁhhhÁÁÁÁhÁhhhÁhÁhÁhÁhÁÁhÁhhhhÁhÁÁÁÁhÁÁÁÁhhhÁÁhÁhÁÁhÁhhÁhÁhÁhhÁÁhÁhhhÁÁhhÁhÁhÁhÁhÁÁhhÁÁÁhhÁÁhÁhÁhhhhÁhÁhÁhhM,,,,,,MÓàúûúúúûüúúüúúúúûúýüúóúóóó÷óó÷óèšs=  !!!!!!     !     p’ÙüüüüúüüüüýüýþýúýûüüüúýúýúýüúúèÓeL,L,LL,LLL,LLLLL,LLLLLL,,DLLLLLLL,LLL,LLLLLLLLLN,LLLLLL.NLNNNNNNLNNLNNNNNNNLNLLNNNNLNNNNNNNNNLLNNNLNLNNLNNNNLLNLLLLNNLNLLLNLNLNNNLLLNNLNLNLL,NLLLNLLLLLLNNLL.L.LLNLL,LL,LLLLLLLL,,L.LLLLLLLLLLL,,LL,LLLLL,L,.L,LL.L,,LLLLL.LL,,,LL,,,,L,,LL,.,L,,,,LLL,,,,,L,,L,.,,,.,.,,,,,,L,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XÁhÁhhhhhhhhhÁhhÁhhÁhhÁÁhÁ•¹„hhhÁhÁhÁhh¹„hÁÁhÁhÁhhhhhhÁhhÁhhhhhÁhÁhhÁ„hÁhhÁhÁhhhhÁhÁhhùhÁhhhÁhÁhhÁhhhhhhhhhÁhhÁhhhÁhÁhÁhhhhhhhÁhÁhÁhhhhùÁ•hhÁhhÁhhhhÁ•¹h•¹¾�ÁhÁhhùhÁhÁhX,,,,,,,,,,,,,,MhhhhÁhÁhÁhhÁhÁÁhhhÁhÁhhhÁhhhÁhhÁhhhhÁÁhÁÁhhÁhÁhhhhÁhÁÁhÁÁhhÁÁÁÁÁhÁhhÁÁhhÁhÁhhÁhÁhhÁhÁhhhÁÁhÁhhhhhÁhhhÁÁÁÁÁhÁhÁÁÁhhÁhhhÁhhÁhhÁhÁÁhhÁhÁhhÁhh,,,aÓèúúýúúúúúûúüûúúúúþü÷óóú÷úóúóúóà p! !  !! !!! !!         !  ! !!       ?�¬üûüýüýüýüüúýÿýýúüûýúýúýúüüûýüõÚ•P,,LLDMLL,LLLLLLLLLLNLLL,LNLLLLLLLLLLLLLL,LLLLLLLLLLLLLL.LNNNNNNLLNNNNLNLNNNLNNNNNNNNNNLNNNLNNNLNNLNNLNNLNNNLLNLNLNLNNNNLLNNLNLNLNLLLLLLNLNLLLLNNLLLLLNLLLNLLLLLLL,L,LLLLL,LLLLLLLLLLLLLLNLL,LLL,,LLLLL,,LLL,LLL,LLLL.,,L.L,L.,,.L,LL,LL,L,L,,,.,,.,LLL,,,.L,.L.LL,,.,,,.,.,.,,,,.,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhhÁhhÁhhhhhhÁhhÁhhÁhhÁhhhhhhhhhÁhÁhÁhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhÁhhÁhhhhhÁhÁhhhhhhhhÁhhhhhÁhÁhhhÁhhÁhhÁhhhÁhhhhhÁhhhhÁhÁhhÁhhhhhÁhÁhÁhhhhhh„¹•hhÁhhhÁhhÁhhhhh„¹•hÁhhÁhhhhÁX,,,,,,,,,,,,,,ghhhhÁÁhhhÁhÁÁhÁhÁhhÁÁhÁhÁhhÁhÁhhhÁhÁhÁhhÁÁhÁhhÁhÁhÁhhhÁÁÁÁhÁÁhÁÁhhÁhÁhÁhhÁhhÁhÁhÁÁhÁÁÁhhhÁÁhhhÁÁÁhhÁhhÁÁhÁhhhhÁÁhhÁhÁhÁhÁhhÁhhÁhhhhhÁÁhhW,–Óõúüúúúüúüúúúúúúúýÿóóóúóóóóó÷÷òÙ�m!  ! !!    !   ! =�ªõüýúýúüüüýüýþþúýüüúüüüüüúýüúú÷àÆPLLLLLLLL,LLLLLLL,LLLNLLLLLLLLL,LLL,LL,LLLLNNLL,-LLELNNNNNNNLNNNNNLNNLNNNLLNNNNNNLLNNNNNNLLNLNNNLLNLLNNNLNNNLLLNLNLLLNLNNLNNLNLLLLLLNLNLLLNLNLLNLLLLLLNLLLLLLLLLLLNLLLLLLLLLLLNLLLLLLLLLLLL,LLLL,L,LL,LLL,LLLLLLL,,LLL.LL,,,L,LL,,,,,.LL,,LL,.,L,L.,,LL,.LL.,,.,,L,,,L,,,,L,.,,,L,,,,,L,,,,,,,,,,.,,,,,,,,,,.,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhÁhhÁÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhÁhhÁhÁhÁhÁhÁhhÁhhÁhhÁhhÁhhÁhhÁhÁhÁhhÁhhÁhÁhÁhhÁhhÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhhhÁhhÁÁhÁhÁhhÁhÁÁhÁhÁhhÁhÁhhÁhÁhÁhÁhÁhÁhÁhhhhÁhhÁhhÁhhÁhhÁhÁhhÁhhÁhhÁhÁhhÁhX,,,,,,,WhhÁhhÁÁhÁhÁÁhÁhÁÁhÁhÁhÁhÁhÁhhÁhÁÁhÁhÁhhÁhhÁhhÁhhhÁhÁhhÁÁhhÁhhhÁhhÁhÁhhÁhÁhÁÁÁÁhÁhhÁÁhÁÁhhÁÁhÁhhÁhÁhÁhhhhhhhhhhhÁhÁhÁhÁhhhhÁhhÁÁhÁhÁhhÁÁdÊÓúüúúüûúûúüúúüúúúüÿú÷÷óóúóú÷óóéšs= !  !!!! !!!! !! !!! !!!!! !         !!   !!! !  !!! =qšæúüüüüýúýúýüþÿüüûüüýûýûýúýúüýúàÓeMRM\MRMMRMM\RMMRMR\RMRUMRMMMMMTMMRM\MMRMTRMMMMMMRMRMRMMMR\WMMRMMMNNNLLLNLNNNNNNLNNNNNLNNNNNNNLNNNNNNNLLNNLLNLNLLNNNNNNNLLLNNNNLLNLLLNNNLNLLLLNLNLNLLLNLNLLLLLLNLLLLLLLLLLLNLLNLLLLLLLNLLNLLL.LLLLLL,L,,L,LLLN,LL,LL,L,,LL.LLL,LLL,LLL,.LL,L,LL,LLL.,LLL,,,,L,L,,.,,,.LL,,L,,,,,.L,.,,L,L,,.,,,,L,,,,,,,,,,,.,L,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,XhhÁhÁhhhÁhÁhÁÁhÁÁhÁhhÁhÁÁÁhhhhÁhhÁhhÁhÁhhÁhhhhÁhÁÁhÁhÁhhhhhhhhhhÁhÁhÁhhÁhÁÁhÁhÁhhÁhÁhhhhÁhhhhhÁhhhÁhÁhhhÁhÁhhÁÁhÁhÁhÁhÁhÁÁhhhhÁhhÁhhÁhÁhhÁhhhhÁhÁÁhÁhhÁhhhhÁhhhÁhhÁhÁhhhhÁX,,,,,,,,"dÁÁÁhhÁÁÁhÁhÁhÁhÁÁhÁhhÁhhÁhÁÁhhÁÁhhhhhÁhhÁhhÁhhÁhhÁhhÁÁhÁhÁhhÁhhÁÁhÁÁÁÁÁhhÁÁhhÁhÁÁÁÁhÁÁhhhhÁhÁÁhhÁÁhhhhÁhÁhÁhÁhÁhÁhÁhÁhÁhhhÁhhhÁhÁÁÁhhhcXWXWXWXWWXWXWWWWWXWTWWWWMMMMMMMMMMMMTMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0MM0M-M0T0LMT"L"--0M-000LMM00M-M00M0F0M0000M00F,MÓÚúúûüúüúúúúúûúúúüþüóóóúóó÷óóúóè�q!  !!!  !! j�ÖüüýüüüüüýüýþþýüüüûüüúüúýúýúúüèÓÂhhhh¾hhhhhhh¹•hhhhh¹•hh¹•hÁhhhhhhhhh¾hhhhhhhÁhÁhÁhhÁhhhhhhhÁ¾hÁ¾hNLNNNNNNNNSNNNNNNNNLNNNNNNNNLNNNNNNLNLLNNLNNNLNNNNNLNLLNNLLNLLNNLLNNNNLLNLLNLLNNLLLNNNLNLNLLLLLLLNLLLLLLNLNLNLLNLLLLLLLNLLLLLLLL,LLLL.LLLLLLLLLLL,L.L.L.LLLLLLLLNLLL,,.L,L,L,,LLLLL,L,,LL.,,.,L,,,,.L,,,L,,LL,L,,,,L,L,L,,,,.,,,,LL,,.,,.,,,,,.,L,,,.,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MM\XXWbb\XW\WWWWXWWWXXWWWXÁhhhÁhhÁhhÁhÁhÁÁhÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhÁhhÁhhÁhÁhhÁhhÁhÁhhhhÁhÁhÁhÁhÁhÁÁhÁhhhhÁhhhhÁhhhÁhhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhhÁhÁhhÁhÁhhhhÁhÁhhÁhhÁX,,chÁhÁÁhÁhÁÁhhÁhÁhhÁhhÁÁhhÁÁhhhÁÁÁÁhÁhÁhÁhhÁÁÁhÁÁhhhhÁhhhhÁhÁhÁhÁÁhhhhÁÁhÁhÁhÁÁhÁÁhhÁhhhÁhÁhhÁhhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁhÁÁhhÁhÁÁhÁÁhÁhÁhÁhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhcccccccccccccccccccccccccccccccccccccccccccccccccccccccccc„Óàúúüúûúüúüúúúüúúúþüúóúóóúóúóóóà�o     !  !! !! !!!!!!! !           !! ! !!     !!!!!  !  !! =�ÓûúüýüýúýüüúüÿþúýúüüúýûýüüüüýúèׯÁÄÁÁÁÁÁÄÁÁÄÁÁ¾ÁÁÄÁÁÁÄÁÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÄÁÄÄÄÁÄÁÄÁÄÁÄÄÁÄÄÄÄÁÄÁÁÄÁÁÄLNNLNNNNNNLNNNNLNNNNNNLNNLSNNNNNNLNNLLNNLNNNLNNNLNNLLNLNNLLNLNNLNNNNNLLNLLNNLLNLLNLLNNNLNLLLNLLLLNLNLLLLLLLLLLLNLLLLNLNLLLLLLLLL,LL,NLL,LLL,NLLLLNLLLLLLL,LLLL,L,,LL,,LL.,LN,LLL,LLL,,,LL,,L,L,,LLLLL,,L,,L,,,,.,.,,LLL,L,,L,L,,,L,,,,,,.L,L,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MchhÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁXhÁhÁhhÁhhhhÁhhÁhÁhÁhÁÁÁhÁhÁhÁhÁÁhÁhÁhhÁhhÁhÁhhÁhÁhhhhÁhhÁhhhhhÁhÁÁhÁhhÁhÁhÁhhhÁhhÁÁhÁhhhÁhÁhhÁhhhÁhÁhhÁhhhhÁhhÁhÁhÁhÁÁÁhÁhÁhÁhÁÁhÁhÁhhÁhhÁhÁhhÁhÁhhÁhhÁhÁhhhhhÁhÁhÁhÁhhÁhÁXWWXWXWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMM0M0MM-L-MTMM-M000M00000M-0M0M00,,,0,0XhÁÁhhÁhÁÁÁÁhÁÁhhÁhhÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁhÁÁhÁÁÁÁhÁhhhhhhÁhhhÁÁÁÁhhÁÁhhhhhhÁÁÁÁhÁÁhhÁhÁhÁÁhhÁÁhÁÁhhÁÁÁÁhÁhÁÁhhÁhÁhÁhhÁhhhhhÁÁhÁhÁÁÁhÁÁhhÁhÁÁÁÁhÁÁhhÁhhÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁhÁÁhÁÁÁÁhÁhhhhhhÁhhhÁÁÁÁhhÁÁhhhhhhÁÁÁÁhÁÁhhÁhÁhÁÁhhÁÁhÁÁhhÁÁÁÁhÁhÁÁhhÁhÁhÁhhÁhhhhhÁÁhÁhÁÁÁhÁÁhhÁhÁÁÁÁhÁÁhhÁhhÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁhÁÁ¹Æ×èüüúüúúúúûúúüúûüüÿóó÷óóúóó÷óúòÕŽj  !!!!   ! !     !!   =ŽªòüýúýüýüýýüýÿþüüýýûüüüúýúýûüüõÙÆÂÁÁÄÁÄÁÁÁÁÁÁÁÄÄÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÄÁÄÁÄNNNNNNNLNNNNNNNNNNLNNNNNNNNNNNNNLNNLNNNNNNNNNNNLNNLLNNNNNLNNNLLNNNNNLNNLLNNNLNNLNNLLNNLLNNLLLNNLLLNLNLLNNNLLLLLLNLLLNLNNLLNLLLLLLL,LLLLL.LLLLLLLLL,LLLLLLLLL,LLL,LL,LLLLLL,,LLL,LL,,.LLLL,L.L,,LL.LL,L,L,,LL,,L,.L,L,L,,L.,,,,L,,,L,L,,,L,,,,,L,L,,,,,L.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,McÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄXhhÁhÁhhhhhhhhÁhÁhhhÁhÁhÁÁhÁhÁhhhÁhhhhÁhÁhhÁhhhhhhÁÁhÁhhhhhÁhÁhhhÁhÁhhÁhhhÁhhÁÁhhÁh„Áh„hhhhhhhhhÁhhÁhÁhhhhhhhhÁhhÁhhÁh„hÁÁhÁhÁhhhÁhhhhÁhÁhhÁhhhhhhÁÁhÁhhhhhÁhÁhhÁhÁhÁhÁhhÁhXhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchÁhhÁhÁÁÁhÁhÁhÁÁhhÁhÁhÁhhÁÁÁhhÁhÁhÁhÁhÁÁÁhhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁhhhÁhhhhhÁhÁhÁÁhÁhÁhÁÁÁhÁÁhÁhhÁhhhÁhhÁhhÁÁhhÁhhÁhhÁÁÁÁhhÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁhÁÁÁhÁhÁhÁÁhhÁhÁhÁhhÁÁÁhhÁhÁhÁhÁhÁÁÁhhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁhhhÁhhhhhÁhÁhÁÁhÁhÁhÁÁÁhÁÁhÁhhÁhhhÁhhÁhhÁÁhhÁhhÁhhÁÁÁÁhhÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁhÁÁÁhÁhÁhÁÁhhÁhÁhÁhhÁÁÁhhÁhÁhÁhÁhÁÁÁ�ÆÓèúúûúýúýúüúúúúúúüÿóúóúóóúóúóóéšs> !!  !!!! !!! !!!!!!!!   !!!!!!   !!!    !!  !   !!           !  ! =q’æüüüüüúýüüýüþýýúüúüûýúýúýúüüüõÙÌÂÁÄÁÁÁÁÁÄÁÄÁÁÁÁÄÁÄÁÁÄÁÁ¾ÄÁÄÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÄÄÄÁÄÁÄÁÄÁÁÄÁÄÁNNNNNSNNNNNNNNNSNNNNNNSNNNNNNNNNNNNLNNNNNNLNNNNNNNNNNNNNNLNNNLNNNNNNNNLLNNNLNNLNNNLLLNLNNLLLNLNLLLNNNLLLLLLLLNLLNLLNLLNLNNLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLL.LL,LLLLLLLLLLLLLLLLLLLLL,,LL,LLLL.LLL,,,LL,LL,LLL,,,,LLL,,,,L.,,,LLL,.,.,.,,,,,L,,L,,,.,L,,,,.,,,,,.,,,,,,,,,.,,,,,,,L,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,cÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÁÄÄÁXXXXXWXXTXXWXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXWXXXXTXWXTXWXTXXTXWXTXTXXXXXTXXXXTXXXTXWXTXXXTXXXTXUXXTÁÁÁhÁÁÁhÁÁhÁhhÁÁhhhÁÁhÁÁÁhhÁhÁÁhÁÁhÁhhÁÁhÁÁÁÁÁÁhÁhhÁhÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁhhhÁhÁÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁhÁhÁhhÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁhhÁÁhhhÁÁhÁÁhÁhÁhhÁhÁhhhÁhÁhÁhÁÁhÁÁhhhhhÁhÁhhÁhhÁhhhÁÁÁÁhÁÁhhÁhhhhÁhhÁhhhÁhhhhhhhÁÁÁhÁÁhhÁÁhhÁhÁhÁÁÁhhhhhhhÁhhÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁhhÁÁhhhÁÁhÁÁhÁhÁhhÁhÁhhhÁhÁhÁhÁÁhÁÁhhhhhÁhÁhhÁhhÁhhhÁÁÁÁhÁÁhhÁhhhhÁhhÁhhhÁhhhhhhhÁÁÁhÁÁhhÁÁhhÁhÁhÁÁÁhhhhhhhÁhhÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁhhÁÁhhhÁÁhÁÁhÁhÁhhÁhÇ×õüýüúúúúúúûúüúúúüÿóó÷óóúóóó÷óè’q9  !!!! ! ! !!    !o’Úüüüüýüüýúýüþÿüüýüýüúýúýüüûýú÷àʾÁÁÁÄÁľÄÁÄÁÄÄÁÄÁÁÄÁľÄÁÄÁÄÁÄÁÄÄÁÁÄÁÁÄÁÁÄÁÄÄÄÄÁÄÄÁÄÁÄÄÁÄÁÄÄÄÁÄÁÄNNNNNNNNNNNNSNNNNNNNNNNNSNNNSNNLNNLNNSNNNNNNNNNNNNNNNNNNLLNNNNNNLNNNNNLNNNLLNNNNNLNNNLNNLLNLNNNLLNNNLNLLNLLLLNNLNLLNLL,NLLNLNLLL,LLLLLLLLLLLLLLLLLLLLLLLNLLLNLL.LL,LLLNLLLLLLLLLLLLN,LLL,,LL.LLLLLLLLL,L,LL,L,LLL,LLL,LL,,L.LLL,,LLL.,,,.,,.,LL,L.,,L,,,,,LL,.,,,,,,,,,,,,.,,,,,.,,.,,,,.,,,L,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LcÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÁÁcXccccccccccccccccXXXcXXXXbXXXbXXbXbXbXbXbXXXbXXXXbXXXXXXXXXXXXXXXXXXXbXbXXXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWXTXXXXTXXXTXXXXXXXTXXXTXXXXXXWXÁÁhhhÁÁÁhhÁÁhÁÁhhÁhhÁhhÁhhhhhÁhÁÁhÁhhÁÁhhÁÁÁÁÁhhhhhhÁÁhÁhÁhÁhÁhhÁÁhÁÁhÁhhhhhÁhhÁhhÁhhhhhhÁhÁhÁÁÁhhÁÁhÁhhhÁÁÁhhÁÁÁhhhÁhÁhÁhÁÁhhÁhÁÁhhhÁÁhhhÁhhÁÁhhÁhhÁhhÁhhhhhÁhÁÁhÁhhÁÁhhÁÁÁÁÁhhhhhhÁÁhÁhÁhÁhÁhhÁÁhÁÁhÁhhhhhÁhhÁhhÁhhhhhhÁhÁhÁÁÁhhÁÁhÁhhhÁÁÁhhÁhÁhhhÁhÁhÁhÁÁhhÁhÁÁhhhÁÁhhhÁhhÁÁhhÁhhÁhhÁhhhhhÁhÁÁhÁhhÁÁhhÁÁÁÁÁhhhhhhÁÁhÁhÁhÁhÁhhÁÁhÁÁhÁhhhhhÁhhÁhhÁhhhhhhÁhÁhÁÁÁhhÁÁhÁhhhÁÁÁhhÁhÁhhhÁhÁhÁhÁÁhhÁhÁÁhhhÁÁhhhÁhhÁÁhhÁhhÁhhÁhhhhhÁhÁÓÓ÷úúúüúýúýúüúûúúüþüóúóúóóúóúó÷æ q!!  !!  !!!!!   !! !!!   !!!!  !! !!!!  !!        !!  ! !      !!!!!    ! ?Ÿ¬üýüýüýýüýüüþþýúýúýúýüüûúýüúýúàÓÃÁÁÄÁÁÄÁÁÁÁÁÄÁÁÁ¾ÄÁÁÄÁÄÁÄÁÄÁÄÁÁÁÁÄÄÁÄÄÁÄÄÄÁÄÁÁÄÄÄÁÄÁÄÁÁÄÁÄÄÁÁÄÁÄÁNNNˆNSNNSNNNNNNNNNNSNSNNNSNNNNNNNLNNNNNSNNNSNNNLSNNNNNNNNLLNNNNNNNNNNNNNNNNNNLNNLNNNNNNLLNNNNNNNNNNNLNNLLLNLNLLLNLLLLLNNLNLNLLLLLLNLNLLLN,LLLLNLNLLLNNLLLLLLLNLL.L,LLLLLLLLLNLL,LLL,LLLLL,,NLLLL,LLLLLLLLLLLL,LL,LLLL.,,,LLL..LLLL.,,,L,,,L,,L,,L,,L,.LL,L,,,,.,,,.LL,,L,,,,,.,,,,,,.,,,,,,,,,,,,,,.,,.,,,.,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,cÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÁhXÁhhhhchchcchcccccXcXcXXXXcXXXcXXcXXXXcXXcXXXXcXXXcXXXXcXXcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXTXXXTXXXcXÁhÁÁÁÁhhÁhÁhÁÁhÁÁhhÁÁhhÁhÁÁhÁÁhhhÁÁÁhÁhhÁhÁhhÁhhhÁÁhÁhhÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁÁÁhÁÁhÁÁÁÁÁhÁhÁhhhÁÁÁÁhÁhÁÁÁÁÁÁÁÁhhÁhÁÁhhÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁhÁhhÁÁÁhÁÁhhÁÁhhÁhÁÁhÁÁhhhÁÁÁhÁhhÁhÁhhÁhhhÁÁhÁhhÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁÁÁhÁÁhÁÁÁÁÁhÁhÁhhhÁÁÁÁhÁhÁÁÁÁÁÁÁÁhhÁhÁÁhhÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁhÁhhÁÁÁhÁÁhhÁÁhhÁhÁÁhÁÁhhhÁÁÁhÁhhÁhÁhhÁhhhÁÁhÁhhÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁÁÁhÁÁhÁÁÁÁÁhÁhÁhhhÁÁÁÁhÁhÁÁÁÁÁÁÁÁhhÁhÁÁhhÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁhÁhhÁÁÁhÁÁhhÁÁhhÁhÁÁhÁÁhh××üüüüúûúúúúúüúüúýýüóóóó÷úóóó÷óÙŸp!! !  !!!!!  ! !    ! ! !=�¬úúýúýüüýüýüýÿüüüýúýúýüüýúýüüúæÓÆÄÁÁÁÁÁÁÁÄÁÄÁÁÁÁÄÁÄÁÁÄÁÁÄÁÁÄÁÄÄÄÄÁÄÁÄÁÄÄÁÁÄÁÄÄÁÁÄÁÄÄÁÄÄÄÁÄÁÄÄÄÁÄÄNNSNˆNNNNNNSSNSSNNNNˆNNNNNNNSNNNNNLSNNNNNNNNNNNNNNNNNNNNLNNNNNNLNNNNNSNNNNNNLNLNNLNLNNLNNNNNNNLLNNNLLNNNLLNLNNLNNLLNLLNNLLNLNNLLNLNNNLLLNLLNLLLNLLLLNLLLLLLLNLNLLLLNLLLLNLLLLLNLLLLLLLLL,,LLLLL,LLL,LLLLLLLL,L,LL,L,LL,LLLL.LL,,LLL,,LL.,L,L,,LL,,,L,,,L.,.LL,,.,,L,L,,,.,,L,,,L,,,L,.,..,,L,.,,,,,,,,,,.,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,.,,,,,.,,,,,,,,,,,,,,,,,,,,WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄccXhchchccccccccccXccXcXcXXXcXXcXXcXXXXcXXXXcXXXcXXXXcXXcXcXXXXcXXcXXXcXcXXcXXcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXThÁÁhÁÁhÁÁÁÁhhÁhhÁhhÁÁhÁÁhÁÁhÁÁÁÁhhÁÁÁhhhhÁhÁÁhÁhhÁÁÁÁhhÁhÁÁhhÁhÁÁÁÁÁÁhhhhÁÁhÁhÁÁÁhÁhhÁÁhÁÁÁhhÁÁhhÁÁhÁhhhÁhÁÁhÁhhhhÁhÁhÁÁhhÁÁÁÁÁÁhÁÁhÁhÁhÁÁÁhhÁhhÁhhÁÁhÁÁhÁÁhÁÁÁÁhhÁÁÁhhhhÁhÁÁhÁhhÁÁÁÁhhÁhÁÁhhÁhÁÁÁÁÁÁhhhhÁÁhÁhÁÁÁhÁhhÁÁhÁÁÁhhÁÁhhÁÁhÁhhhÁhÁÁhÁhhhhÁhÁhÁÁhhÁÁÁÁÁÁhÁÁhÁhÁhÁÁÁhhÁhhÁhhÁÁhÁÁhÁÁhÁÁÁÁhhÁÁÁhhhhÁhÁÁhÁhhÁÁÁÁhhÁhÁÁhhÁhÁÁÁÁÁÁhhhhÁÁhÁhÁÁÁhÁhhÁÁhÁÁÁhhÁÁhhÁÁhÁhhhÁhÁÁhÁhhhhÁhÁhÁÁhhÁÁÁÁÁÁhÁÁhÁhÁhÁÁÁhhÁhhÁhhÁÁhÁÁhÁÁhÁÁÁÁ•ÓÚúúúúüüýúüúüûúúú÷ÿüúóú÷óóúóúóòÓsl!!      !!! !!!!!!!!!!!!! !!  !!!!  !!!    !     !!       !        !!      !=ެõüüüýúýüýüüüÿýýúüüüüüûúüüüûüüèÙÆÁÁÁÁÄÁÁÄÁľÄÁÄÁÁľÄÁÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÄÁÄÁÁÁÄÁÄÁÄÁÄÁÄÁÁNNSNNNNNNNNNNNNNNNNSNNNSNNNNNSNNNNNNNNNNNSSNNNNNSNNNNSNNNLNNNNLNNNNNNNLNNSNNLNNNLLNNNLLNNNNNNNNLLNLLNNNLLNNLLNNNNLNNNLLLLNLNNLNLLLLLLNLLLNLLLLNLLLNNNLLNLLLLNLLLL,LLLLLNLLNLLLNLLNLLNLLLLLLLLL,LL..L.LL,LLNL,LLL,,NLL,LLLLLLLLL,,L,LLLL,,LL,L..LL,L,,L,L,,L,LLL,L,.,.,.,,.,,.,L.,,L,L,.,,,,,,,,,,,,,,.,,,.,,,,,.,L,,L,.,,,,,.,,,,,,,.,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,0cÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÁÄÁÄÁÄÄÁhcccccccccXcXXXbXbXXXXXXXWXXWTXWXWXWXXXXXXXXWXXXXXXWXWXWXXWXWXWXXWXXWWXWXXWXWXWXXXXXXXWXWXXXXXXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhÁÁhÁÁhÁÁÁÁhhÁhÁÁÁhhÁÁhÁÁhÁÁhhhÁÁhÁhhÁÁÁhÁhÁÁhÁhÁhÁhÁhhÁÁhhhÁÁÁhhÁhÁhÁÁÁÁÁhÁÁÁhÁhhhÁÁÁhhhÁhÁÁÁÁÁÁhÁÁhhÁÁhÁhhÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁÁhhÁhÁÁÁhhÁÁhÁÁhÁÁhhhÁÁhÁhhÁÁÁhÁhÁÁhÁhÁhÁhÁhhÁÁhhhÁÁÁhhÁhÁhÁÁÁÁÁhÁÁÁhÁhhhÁÁÁhhhÁhÁÁÁÁÁÁhÁÁhhÁÁhÁhhÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁÁhhÁhÁÁÁhhÁÁhÁÁhÁÁhhhÁÁhÁhhÁÁÁhÁhÁÁhÁhÁhÁhÁhhÁÁhhhÁÁÁhhÁhÁhÁÁÁÁÁhÁÁÁhÁhhhÁÁÁhhhÁhÁÁÁÁÁÁhÁÁhhÁÁhÁhhÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁÁhhÁhÁÁÁhhÁÁhÁÁhÁÁhhhÁÁ–׿üýüüúúúúúúûüúúýýÿ÷÷óóóúóó÷óóò¬}? !!!!!! !!!!!  !!      !}ªèüýüüýüýüýüýÿýüüýûüüüüüýûüüúýëÙÆÁÄÁÄÁÁÁÄÁÁÄÁÄÁÁÄÁÄÁÄÁÁÁÄÁÄÁÄÁÁÁÄÁÄÄÁÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÄÄÁÄÁÄÁÄÁÄÁÄÄNNNNNNNNNSNNNNNNSSNNˆNNNNNSNNNNNNNNNNSNSNNNNNSNNSNNNNNNNNNNNNNNLNNLNNNNNNNNNNNNLNNNNNLLNNNNNNLLLNLLNNNNNLLNLNNNNNLNLNLLLNNNNNLLNNLLLLLLLLLNLLLLLLLLLLNLLLLLNLL,LLNLLLNLLNLLLLLLNLLLLLNLLLLLLL.L,LLLLL,LLNLLLLLL,LLL,L,,LLLLLLL,,L,,,LLLL,,,,LLLLL,LL,,,,,L.LL,,L,,,,,.,L,L,.,,,,,.,,L,,L,,,...,,,L,,,,.,.,,,L,.,,,,,,,,,,,,,,,,,,,,,,,,L,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ThÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÄÁÄÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÁÄÁÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁ¾ÄÁÁÁÄÁÁÄÁÁÁÁÁÁÁÄÁÁÁÁÁÁ¾ÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁhhhhhÁÁhÁhÁÁhÁÁÁhÁÁhhÁhhhÁhÁÁÁÁÁhÁÁhÁÁhÁhhhÁÁhÁhÁÁÁÁÁÁhÁÁhhhÁÁhÁhÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhhÁhÁhÁÁhÁÁÁÁÁhhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁhhhhhÁÁhÁhÁÁhÁÁÁhÁÁhhÁhhhÁhÁÁÁÁÁhÁÁhÁÁhÁhhhÁÁhÁhÁÁÁÁÁÁhÁÁhhhÁÁhÁhÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhhÁhÁhÁÁhÁÁÁÁÁhhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁhhhhhÁÁhÁhÁÁhÁÁÁhÁÁhhÁhhhÁhÁÁÁÁÁhÁÁhÁÁhÁhhhÁÁhÁhÁÁÁÁÁÁhÁÁhhhÁÁhÁhÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhhÁhÁhÁÁhÁÁÁÁÁhhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁÆÓèúúúûüüüüýúüúüúúúÿóóóú÷óóúóúóéšs= ! !!    !!! ! !!!!  ! !!!! !!!! !!!!!!!!   !! !   !!  !   !!        !!    !!!!  ! !  q¢äýüüýüýüýüüúÿþýúüüüûüüüúüûüýúòÚÆÁÁÁÁÁÄÁÁÁÄÁÄÁÁÄÁÄÁÁÁÄÁÄÁÄÁÁÄÁÄÄÁÄÁÁÄÄÁÄÁÄÄÄÁÄÁÄÄÄÁÄÁÄÁÄÄÁÄÁÄÄÁÄÁNSNNSNNSNNSNNNNNNNNNSNSNNNNNNNNNNNNNNNNNNSNNNNSNNNNNNNLNNNNNNNNLNNNNLNNNSNNNNNNNNNNNLLNNNNNSNLLNNNLNNNLLNNNNNNLLLNNNNLNLNNNNLLNLNLLNLNLNLLNLLLLNLNLLNLNLLLLLLLLLLLLL,LLLNN,LLNLLLNLLL,LLLLNLLLLL.LLLLLLLLLLLLNLLLLL.,,LLLLLLL,,LLL,LLL,,LLLL.L.,,LLLL,L,LL.L,,,LL,.,L,,,,,L,,,,L,L,.L,L,,,L,,,,,,,,,,,.,,L,,,,,.,.,,.,,,,,,.,,,,,,,,,,,,,,,,.,,,,.,,,,.,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,bÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÁÁÄÁÄÁÄÄÁÄÄÄÁÄÁÄÄÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÄÁÄÄÁÁÄÁÄÁľÄÁÄÁÁÄÁÄÁÄÁÁÁÁÄÁÁÄÁÁÁÁÁÄÁÁÄÁÁÁÄÁÁÄÁÁÄÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁhhÁÁhhÁhÁÁÁhÁhÁhhÁhhÁhÁÁhÁhhÁÁhÁÁhÁhhÁÁÁÁhhÁÁhÁÁÁÁÁhhÁÁhÁÁhhhÁÁÁhhÁhÁhÁhhhÁhhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhhÁhhÁhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁhhÁÁhhÁhÁÁÁhÁhÁhhÁhhÁhÁÁhÁhhÁÁhÁÁhÁhhÁÁÁÁhhÁÁhÁhÁÁÁhhÁÁhÁÁhhhÁÁÁhhÁhÁhÁhhhÁhhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhhÁhhÁhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁhhÁÁhhÁhÁÁÁhÁhÁhhÁhhÁhÁÁhÁhhÁÁhÁÁhÁhhÁÁÁÁhhÁÁhÁÁÁÁÁhhÁÁhÁÁhhhÁÁÁhhÁhÁhÁhhhÁhhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhhÁhhÁhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁhhÁÁhhÁhÁÁÁhÁhÁhhÁhhÁhÁÁÆÓèüüüüúúúúúúúúûüúýÿó÷÷óóúóó÷ó÷ç’q!!!!! !! !! !!!!!! !!!!!! !!     !  l’ÙúýüüýüýüýýýÿþüüüüýüüýûýúýúüüõÙÊÁÄÁÁÁÁÁÄÁÄÁÁÁÁÄÁÁÄÁÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÄÄÁÄÄÁÄÁÄÁÄÁÁÁÁÄÁÄÄÁÄÄÁÄÄÄÁÄÄÁNNˆNNSSSNˆNNNNSNSSSNNNSSNSSNNNNNNNNNSNNNˆNSNNNNNNNNNNLNNNNNNNNNNNNNNSNNNNNNNNSNNSNNLNNNNSNNNNNNNNNNNNNLLNNNNNNNLLNLNNLLLLNNNLLLLLNNLNNNNLNLNLLLLLNNNLLNNLNNLLLNLLLNLNLLLLNNLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLL.LLLLNLNLLLLLLLLLLL,LLLLLLL,,LLLLLL.L,LL,LL,,,LLLL,L,,,..L,.LL,L,L,,L,.,L,,,LL,L.,,,L,,,L,L,,,LLL,L,.,,,,,,,,,.,,,,,,,,,,,,,,L,,,,,.,,.,,,,,,,.,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,cÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÄÄÁÄÁÄÄÄÁÄÁÁÄÄÁÄÄÁÄÁÄÄÁÄÄÁÄÄÁÄÁÄÁÁÁÄÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÁÄÁÄÄÁÁÄÁÄÄÁÄÁ¾ÄÄÁÁÁÁÁÁÁÁÄÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhhhÁÁÁhÁÁhÁÁÁhhhÁÁhÁhÁhÁhhÁÁÁÁhÁÁÁÁÁÁhÁÁhhÁhhhÁÁÁÁÁhhhÁhÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁhhÁhhhÁhÁhhÁhhÁÁhÁhÁÁhÁhhÁhhÁhÁÁÁhÁhÁÁhÁhhhÁÁÁhÁÁhÁÁÁhhhÁÁhÁhÁhÁhhÁÁÁÁhÁÁÁÁÁÁhÁÁhÁhÁhhÁÁÁÁÁhhÁÁhÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁhhÁhhhÁhÁhhÁhhÁÁhÁhÁÁhÁhhÁhhÁhÁÁÁhÁhÁÁhÁhhhÁÁÁhÁÁhÁÁÁhhhÁÁhÁhÁhÁhhÁÁÁÁhÁÁÁÁÁÁhÁÁhhÁhhhÁÁÁÁÁhhhÁhÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁhhÁhhhÁhÁhhÁhhÁÁhÁhÁÁhÁhhÁhhÁhÁÁÁhÁhÁÁhÁhhhÁÁÁhÁÁhÁÁÁhhhÁÁhÁÆÓëüúúúüüüúýúýúúúüüÿóóóú÷óóúóúóæ�q    !!!!!  ! !!!!!!! @BY__x_ZB;!!!! ! !!!!!!!!!! @xÂÎçñóú÷òðáË…[             !!           !    !        ! !!! !!! !m�ÓüýüýüýüýüüüþþýüýúýúýúüúýüüýüõÚÌÁÁÁÄÁÄÁÄÁÁÁÄÁÄÁÁÁ¾ÄÁÄÁÄÁÄÄÁÄÁÄÁÁÄÁÁÄÁÄÁÄÁÄÄÁÄÄÄÄÄÄÄÁÄÁÄÄÁÄÁÄÁÄÁÄNˆSSSSSNNSNNNNNNNNNNSSSNSSNNNNSNNNNˆSNNSSNSNNNNNNNNNNSNNNNNNˆNNNNNNNNNNNNNNNNLNSNNNNLNNNNNNNLNNNSNNNLNLNNNNLLNNNNNNNNNLLNNLLNNNLNNNLLNNLNNLLLLNLNLLLNNNLNNLLLLNLLLLNNLLNNLNLLLLLLLLLLNLLLLLLNLLLLLLLLNLLNLLLLLLLLLLL,LL,LNLN,LLLLLLLLL,LLLL,,LL.LLLLLL,,LL,L.L,L,LLL.L.,LL,,,,.,,L,,LLL,LL,,,,L,.,,LL,,LL,L,,,,,,L,,,LL,,,,.L,.,,,,,.,L,,L,,,,,,.,,,,,.,,.,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,0\ÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÁÄÁÄÁÄÁÁÁÄÁÄÄÄÁÄÁÁÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁľÁÄÁÁÄÁÄÁÁÁÁÄÁÄÁÁÄÁÁÁÁÄÁÄÁÁÁÄÁÄÁÁÁÁÄÁÁÁÁÁÄÁÁÁÁÁÄÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁhhÁÁÁÁÁÁÁhÁhÁÁÁÁhÁÁhhÁÁÁhÁÁÁhhÁÁhÁhÁhhÁÁÁhÁhhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁhÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁhÁÁÁÁÁhhhhhhÁÁhÁhhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁhhhÁÁhhhhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhhÁÁÁhÁÁÁhhÁÁhÁhÁhhÁÁÁhÁhhÁÁÁÁÁhÁÁÁÁhÁÁÁhÁhhÁhÁÁhÁÁÁhÁhÁhÁhÁhÁhÁÁhÁÁÁÁÁhhhhhhÁÁhÁhhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁhhhÁÁhhhhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhhÁÁÁhÁÁÁhhÁÁhÁhÁhhÁÁÁhÁhhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁhÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁhÁÁÁÁÁhhhhhhÁÁhÁhhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁhhhÁÁhhhhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhhÁÁÁhÁÁÁhhÁÁhÁhÁhhÊÕòúüüüúûúüüúúúüúýþüúóúóó÷úóó÷óæ�q  ! ! !! !!!!!!!!!!!!!!Z–ÎçúÿÿÿÿÿÿÿÿÿÿÿÿúðÌ–Y!!!!!! !!    !‚ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÈZ!!!YYYZZZ[ZZ@ @__@! @YZYYZYZ_Y  @ZYZ[ZYZ[ZY! YZZZZ[ZZYZY!! ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !Ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË    ?�ÕýüýúýüüüýýýþÿüúûüüüüüýüüúûüúõàÇÁÁÄÁÄÁÁÁÁÄÄÄÁÁÄÁÄÁÄÁÄÁÁÄÁÁÄÁÄÁÄÄÁÄÄÁÄÁÄÁÄÁÄÄÄÁÄÁÄÄÄÄÁÄÄÁÄÁÄÁÄÄÄÁNSNNSNSSSNSSNNNNNNNNSSNSSNNˆNNSNNNNSNNSˆNNNNNNNNˆNNNNSNNNNNNNSNNNNNNSNSNSNNNNNNNNNNNNNNNNSNNNSNNNNNNLNNNNLNLNLNNNNNNNLNNNNLNNNLNNNNNNLNNNLNNLLLLLLNLNLLNNLNLNLNLLNLNNLNNLNLNLLLNNLLLLNLLLLLLNNLLLLLNLLNLLNLL,LNLLLLLLLLLLLLLLNLLNLLL,LLLL,L,L.LLLLLLLL,LLL,LLLLLLLL.L.LLLLLL,.,L,,L,LL,LL,LLL,L,,L,LL,LL,.,,L,,LL.,L,L,,,,,,L,L,,,,,.,,.,,,,,,L,,,,,,,,,,.,,..,,,,,,,,,,,,,,,,,,,L,.,,,,,,,,,,,LcÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÁÄÄÁÄÄÄÄÁÄÄÁÄÁÄÄÄÄÄÄÄÁÄÁÄÁÄÁÄÄÄÄÄÁÄÁÄÁÄÁÄÄÁÄÄÁÄÁÄÄÄÁÄÄÁÄÁÄÁÄÁÄÁÁÁÄÁÄÁÁÄÁÄÁÁÁÁÄÁÁÁÁÄÁÄÁÁÄÁÁÄÁÁÁÄÁÁÁÁ¾ÁÄÁÁÁÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁhÁÁÁÁÁÁhÁhÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁhÁhhÁhhÁÁÁÁhhÁhÁÁÁÁÁÁÁÁhÁhÁhÁhÁhhÁÁÁÁhÁhÁhÁhÁhhhhÁhÁhÁÁÁhÁÁÁÁÁhhÁÁÁÁÁhÁhhÁhhhhhhÁÁÁÁhÁhhhhÁÁÁhhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁhÁhhÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁÁhÁhÁhÁhÁhhÁÁÁÁhÁhÁhÁhÁhhhhÁhÁhÁÁÁhÁÁÁÁÁhhÁÁÁÁÁhÁhhÁhhhhhhÁÁÁÁhÁhhhhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁhÁhhÁhhÁÁÁÁhhÁhÁÁÁÁÁÁÁÁhÁhÁhÁhÁhhÁÁÁÁhÁhÁhÁhÁhhhhÁhÁhÁÁÁhÁÁÁÁÁhhÁÁÁÁÁhÁhhÁhÁhhhhÁÁÁÁhÁhhhhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁ¹ÇÓõüüûúüüüúúüüúúúúýþóóóóúóóúóúòæ’q!!! !!!! !!!! !  !!!!!!!ZÆçþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüá–B! !! !!_Ïýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Æ; !_ñÿÿÿÿÿÿÿÿË! !   @–çþÿÿÿÿÿÿÿñÆ@  !  ;Ìÿÿÿÿÿÿÿÿá@! !ÂÿÿÿÿÿÿÿÿÿÿÈ!Y÷ÿÿÿÿÿÿÿÿÿü!   xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ ! !    áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ ! !   ! !     =ެúýüýüüýýüüüýþýýüüûüýúýúýýüüýõßÊÄÁÁÁÁÁÁÁÄÁÁ¾ÄÁÁÄÁÄÁÄÁÄÄÁÁÄÁÄÁÄÁÁÄÁÁÄÄÁÄÁÄÄÄÄÄÁÄÄÁÄÁÄÄÁÄÄÄÁÄÄÁÄÁÄNNNSSSSSSNNSNNNNNNSNSSSSNSNSSNNSNNSSNNSNSNNNNNNˆNNNNNNˆNNNNNSNNNNNNNNNNNNNNNNLNNNNLNNNNNNSNSNNNSNNNLNNNLLNNNLNNNNNNNSNNLNNNNNNNNLLLNNNNNNLNNLLLLLNLLNNNNNLLNNLLNLLLNLLLNNLLLLLLNLLLLLNLLLLLNLLLLLLLLLLLLNLLLLLLLLLLLLLLLLNLLN,LNLL,L,LL.,NLL,L.LLLLLLLLLLLLLLLLL,,,LLLLLL,L,,.,,,,.,LLLL,L,LL,,L,,.L,.L,L,.,,,LL,,,,,,L,.,LL,.,,,L,,,,,,L,L,,,,,,,,,,,,,.,L,,,,.,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,0\¾ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÁÄÄÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁľÄÁÄÁÄÁÁÄÄÁÁÄÁÄľÁ¾ÁÁÁÁÁÄÁÁÁľÁÄÁÁÁÄÁÁÄÄÁÁÁÄÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁhhhÁÁÁÁhÁÁÁÁÁÁÁhÁhhhhÁÁhÁÁhÁhÁÁÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁhhÁÁÁhÁhÁÁÁÁhÁÁhhhÁÁÁhhhÁhÁÁhÁÁÁÁÁÁÁhÁhÁhÁhÁhhhÁhÁÁÁÁhhhÁhÁÁhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁhhhÁÁÁÁhÁÁÁÁÁÁÁhÁhhhhÁÁhÁhÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁhhÁÁÁhÁhÁÁÁÁhÁÁhhhÁÁÁhhhÁhÁÁhÁÁÁÁÁÁÁhÁhÁhÁhÁhhhÁhÁÁÁÁhhhÁhÁÁhhÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁhhhÁÁÁÁhÁÁÁÁÁÁÁhÁhhhhÁÁhÁÁhÁhÁÁÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁhhÁÁÁhÁhÁÁÁÁhÁÁhhhÁÁÁhhhÁhÁÁhÁÁÁÁÁÁÁhÁhÁhhÁhhhhÁhÁÁÁÁhhhÁhÁÁhhÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁhhhÁÁÇ×õüûüüúûúýúúûüüúýýüúúóúóóú÷óóóæŸq!!!!!!!! !!!!!!! ! YÆúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòÂ@!!!!!!�ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÌ;!_ñÿÿÿÿÿÿÿÿË;Yçÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷� ;Íÿÿÿÿÿÿÿÿç@Zðÿÿÿÿÿÿÿÿÿú‚ áÿÿÿÿÿÿÿÿÿÿ–  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_  ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!   ! 7}¬úüýüýüüüýýýþÿüüüüüúýüüýúýúýú÷ÚÊÁÄÁÁÁÁÁÁÁľÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÄÁÁÄÄÄÁÄÄÁÄÄÄÁÄÄÁÄÁÄÄÁÄÁÄÄÄÁÄÄÄÄÁÄÁÄÄÁNNˆNSˆSSSSNNNSSNNNNNSˆSSSNSNˆNSSNNNNSNNSSNNˆNSNNNNNˆNNNSNNNSNNSSNNNSNNNSSNSNNNNNLNNNSNNNSNNNNNNNNNNLLNNNNNNNLNNLLNNNNNNNNNNNLNLLLNLNLNNNNNNLLNNLLLLNNNNNNNLNNNLNNLLLLNLLNLLNNNLNNLNNLLNLLNLNLLNLLLLNNL,NLLLLLLLLLLLLNNLLLNLNLLLLLNL,LLLLLLLLLLLL,LNLNLLLLLLL,L,,L,LLLLLLLL,L,.L,,.,LLLLLLL,,N,LLL,,,L,,.L,,L,L,,L,LL.,L,,L,L,,L,,,,LL.,L,,,L,,,,,,,L,L,,,L,L,,,,,L,,,,,,.,,,,,,,,,,,,.,,,,,,,,,,,MWhÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÁÄÁÄÄÄÄÁÄÄÁÄÁÄÄÄÄÁÄÁÄÄÁÄÁÄÄÄÁÄÄÄÁÄÁÄÄÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÁÁÄÄÁÁÁÄÁÁÁÁÁÄÄÄÁÁÄÁÁÁÁÄÁÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÄÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁhÁhÁhhÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhhÁhÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁÁhÁÁhhÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhhÁhÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁÁhÁÁhhÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhhÁhÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÊÔ÷úüýúüúýúýúüúúúúÿüóóóóúó÷óú÷òÙ�j!!!!!! !!!!!!!!! !!!!!‚óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð_!!   !!!!!![ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË9!!ZñÿÿÿÿÿÿÿÿË9! YÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñY  ;Ìÿÿÿÿÿÿÿÿç; –ýÿÿÿÿÿÿÿÿÿÏ@ ‚üÿÿÿÿÿÿÿÿÿó!    ‚þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó�! !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ     !!!?�Öúýüýüüýýüüüýÿýûüýýüüûüüüüýúý÷àÊÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÁÄÁÄÁÄÄÁÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÄÁÄSˆNNNSSSNˆNSNSSNSNNNSˆNSSSNNSNNSˆSNNNNNSSNˆNNSNSSNNNNNSNNSNNNNSNNSSNNNSNNNNNNNNNNNNNNˆNNNNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNNNNNLNNNNLNNLLNNNNLLNNNNLNNNLNLNNNNNLLLNNNLNNLNLLNLNLLLNNLLLLLLNNLNNLLLNNLLNLLLLLLLLLNLNLNLNLLNLLLNLLLLL.LLL.L,LL...,LLLLLLLLL,LLLLL,LLLL,LL,,LLLL,,,LLLLLLL,L,L.LLL,,,LLL,LLLL,LL,L,,,LL,L,.,.LL,L.,L,L,,LL,,,,,L,.,.LL,L,L,,,L,.,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,.,,\cÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÁÄÄÁÄÁÄÄÁÄÄÄÄÄÄÄÁÄÄÁÄÄÄÁÁÄÁÄÁÄÄÁÄÄÁÁÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÁÄÁÁÄÁÄÁÁľÁÄÁľÄÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁľÁÁÁÄÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁľÁÁÁÄÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁÁ�ÁÁhÁhhÁhÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁÁÁhÁÁÁhÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁhÁÁÁÁÁhÁÁÁhÁhhÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁÁÁhhÁÁÁÁhÁÁÁÁÁÁhhÁÁÁhÁhÁhÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁhhÁhÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁÁÁhÁÁhÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁÁhÁhhÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁÁÁhhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhhÁhÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁÁhhhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhhÊÓ÷ýúúüúüüúúüúýüüüþü÷ú÷ó÷÷÷óóúòÙ�?!!! !!!!!!     !!! !!!!!!!!Âüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò‚!!!! !!!!!!!!!!!;Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú‚ !!!!!  _ðÿÿÿÿÿÿÿÿÌ!!!‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–9Îÿÿÿÿÿÿÿÿç; ;Ïÿÿÿÿÿÿÿÿÿÿ„ñÿÿÿÿÿÿÿÿÿÿ[! ‚þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    !!!=�¬õüýüýýüüýýýýþýüýúüüüüýúýúýüüúàÓÁÁÁÁÁÄÁÄÁÁÁÄÁÄÁÁÁÁÄÄÁÄÁÁÁÄÁÄÁÁÄÄÁÄÁÄÁÄÁÄÄÄÄÁÄÁÄÄÄÄÁÄÁÄÄÁÄÄÁÄÄÁÄÁˆˆˆSNˆNNSNNNSSNˆSSSNNNSSNSNNSNˆSSSNNNNNˆNSSNSˆNSNSNNNSSSNNNSNSSNNSSNNNSNNNNSNNNNNNNNNNSNˆNNNSNNSNNNNNNNNNLNNNLSNNNLNNNNNNNNNNNNNNNNNNNNLNLLLNNNNNNNLLNNNLNLLLNNNNNNLLLNLNNNNNNNNLNLLNNNNNLLLLNLNLNNNLLNLLLNNLLLLLLLLLNNLNNLNLNLNLLLLLLLLL.LLLLLNNLLLLLLLLLLLLLLLNLLLLLL,L,,LLN,LLLLL,LLL,L,L,LLLLLLL,.,LLLL,LLLL,L,,LLN,L,.,,.L,.LLL,,L.,,,L,L.,,,,,.LLLLL,LLL,,L,,,,,,,,,,,,,.,L,,,,.,,,L,,,,.,.,.,,MbÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÁÄÄÁÄÄÄÄÄÁÄÁÄÁÄÁÄÄÁÄÁÄÄÁÄÁÄÄÁÄÁÄÄÄÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÁÁÄÄÁÁÁÁÄÁÄÁÄÁÁÁÁÁÁÄÁÄÁÁÄÁÄÁÄÁÁÄÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁhÁhhÁÁhÁÁhÁhÁhÁÁhÁÁÁÁ•ÁÁÁÁÁ•ÁÁÁ„Áh•hÁÁ•ÁÁÁÁ•Á•ÁÁ„ÁÁÁÁÁÁ�Á„ÁÁÁ„•ÁÁÁÁ•ÁÁÁh•ÁÁ•ÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁhÁhÁhÁÁhÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁhhÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁhhÁÁhÁÁhÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁ•ÁÁÁÁÁÁhÁhhÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÓÓúúüýúýúúüüúüúúúúþüó÷óúóóóúóóòÕs?!!!  !! !!!!!!!!!!!!!!!!–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó‚!ZóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! [ñÿÿÿÿÿÿÿÿÍ! –þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ;Îÿÿÿÿÿÿÿÿð@‚üÿÿÿÿÿÿÿÿÿçY!ÂýÿÿÿÿÿÿÿÿÿÑ!‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_  !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  !      =q¬õüüýüüýýüüüýÿýüüüûüýúüýúýüûýúà×ÁÁÁÄÁÁÄÁÄÁÄÁÁÁÄÁÄÁÁÁÄÁÄÄÄÄÁÁÄÄÄÁÄÁÄÄÁÄÁÁÄÁÄÄÁÄÄÁÄÁÄÁÄÁÄÄÁÄÁÄÄÄÁÄSSSˆˆNˆNNSNSSNˆSˆNNˆSNSNNNNSNNNNSˆNNSNNNNSNSSNˆNNNNˆSNSSNNNNNˆSNSSSNNSSNNSNNNNSNNNSSSSNNSNSNNNSNNSNNNNNLNNNNNNNNSNLNNNNNNNNNLNNNNNNNNNNNLNNNNLNNNNLNNLNLLLLLNLNLNNLLNLLLNNLNNLNNLNLNNLNNLLNLNNNLNNN,LNNNLLN,LLNNLLNLNNLLLNLNL,NLLNLLLNLLLLLLLLLLLL,LLLNLLLL,LLLLLLLLLLLL,LL.L,LLLL,LLLL,L,,,L,LLLL,,L,,,LLLLL,LL,L,LL,LL,,.,LLL,L.L,,L..,L.,.,LL,,L,L.,,,LLL,,L.,L,,LL,,,,.,L,,,,.,,,,L,,,,,,,,,.,,.,,M\hÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÁÄÄÄÁÄÄÁÁÄÁÄÁÁÁÁÁÄÁÄÁÄÁÄÁÄÄÁÁÁÄÄÁÁÄÁÁÁÄÁÁÄÁÄÁÁÁÁÄÁÁÁÁÄÁÁÁÁÁÁÁÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁhÁÁÁhÁhÁÁhÁh&0++((++++(++(+++(++*(++++++++(++(+0(++(+*++(*(*+*(+++++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++cÁÁhÁhÁÁhhhhhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁÁ¹ÃhÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁ×Óúüúúüúýüúûüúüüüüÿú÷÷óóúóúó÷úòÓŽ? ! !!!!!!!!!! !!!!!!!!  !!! [óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç_ !!!!–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ@!!!_ñÿÿÿÿÿÿÿÿË!Ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá ;Îÿÿÿÿÿÿÿÿç@!ËÿÿÿÿÿÿÿÿÿÿÂ! ;óÿÿÿÿÿÿÿÿÿÿ@!�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!     $q¥õýüüýýüüýýýýÿýúýýüýúýüüüüüüüúàÓÄÁÄÁÁÁÁÄÁÁÁÁÁÄÁÄÁÁÄÁÁÄÁÁÁÁÄÁÄÁÁÁÄÁÄÁÄÁÄÄÄÁÄÄÄÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÁÁÄÄSNˆˆSˆNSNNˆNSNNˆSNˆNˆˆNSSNNNNSSSSNSSˆNˆNSNˆNNˆSNSNˆSSNSSNNNNNNNSSSSSSˆSNSSNNNNNˆNNNNˆNNNNSˆNSNˆNSNNNSNNNNNNNNSNNNLNLNNNNNLNNNNNNNNNNNNLNNLLNLNNNNNNNNNLNNNNLNNNNNLNNNLNNNNNLLNN,NLNNLLNNLLLLNN,NNNNNNNNLNNLLLLLNLLLLNNLNLNNNLNNNNLLLNLLLLNLLLNLNLL,LLNLLLLLLLLLLLLLNLL,.L,LL,.LLLLLLLL,LLLLLLLLLL,LLL,LLL,L,,LL,L,LL.LLLL,,,LL,LLLL.LLLLLL,,,,,L,,L,LL..,.L,.L.LLL,,L,,,,L,,,L,L,,,,,L,L,,,,.,,.,,,.,,,LMcÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÁÄÄÄÄÄÄÄÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhgddfhhdhhddhhhhhdhhhhchhhdchhdhcgfhhdhghcdhchdhgcchchhcghchhchccdhchchcchccchchccccccchcccccchccccccccchcccccccccccccccccccccccccccccdccgfcccgcccccccdcccccXcc*0+3300<+30+30<+3000<0+000+0+30+30(30+300003000000+30+00+0+       +&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+XcXcccccbcccccccccccccccccccccccchchcccchccccccccchcccccdccccccccchcccccccccccccccccccccccccÓÓýúýüúüüúüüúýúûúúþüóóúóó÷ó÷óóò¬Ž?!!!!!!!   !!!!!   !! 9ÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÌ@ ! !!Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó[ ! [ñÿÿÿÿÿÿÿÿÎ;–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË@ÎÿÿÿÿÿÿÿÿçB_òÿÿÿÿÿÿÿÿÿó_  ÎÿÿÿÿÿÿÿÿÿÿÆ!! �ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ     áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóxÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  !   !!!s¬íüýýüüýýüüüüÿýýüúýúýüüûýúýúýüàÓchddhchhfhhhgddghhhghdhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhˆˆNˆSNNNSNSNNSˆˆˆSNˆˆNNˆSˆNNSˆˆNNSSSNNSNSNNNNSNˆSNSSNNˆSˆNNNSSSSNSSNSSSSSNNˆSSNNNSNSSNNNNSSSNNˆNNNNNNSNNNNNNNˆNSLNNNNNNNNNNLNNNNNNNNNNLNLNNNNNNNNNLNNNNNNSNLNNNNLNNNNNNLNLLLNLNNNLNNLNNNNLLNLNNNNNNLNNNNNNLNNNNLNLNNNLLLLNNLNNLNLLNLLNLLLLLNLLNLLLLNL,LLLLLLLLLNNLLLLLLLLLLLLL.NLLLLLLLLNLL,LLLLLLLLLL.LLL,,L,.L.LLLLLLLL.,L,LLLLLLL.LLLLLLL.L.,LL,LLL,,,L.LLLLL,,L,,L,,.,,.LL.L,,,L,,,,,,,,,.,L,L,L,,,,,McÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄ   +000+0+00030+03+003+00033+<03+03+03003+03+0(03+*0+00+0*+00+        +&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+   Ó×üüüúüúüüúúýúüúýüÿúóúóóúóúóúóò¬s> !!!!!!!!!!!!!!!!!!!! !!!! !!! _úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó‚!! !!!!!!!! !!!Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_!!!![ñÿÿÿÿÿÿÿÿÌ!! _üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„;ÎÿÿÿÿÿÿÿÿðBÆÿÿÿÿÿÿÿÿÿÿË!_úÿÿÿÿÿÿÿÿÿ÷;!  �ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà   áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  ! =}ªéüüüýýüüýýýýÿýüýüýüüýúüúýúýüúæÓˆSˆNSSSSNSˆˆSNSSˆSNˆSˆSˆˆˆˆNˆSSNNˆSSNSNNˆˆNNˆNSNNSSSSNSSSSNNNSSNSSˆNSNSˆNNSSNSNSSNSSSNNNSSSSSNNNSSNNNNSNSNSNNSSNNNNNSNNSNNNNNNNNNNNLNNNLNNNNLNNNNNNNNNSNNNLNNNNNNNNNNLNNNNNLNNLNNNNNNLNNNNLNLNNLNNNNNNNNLLNNNLLNNLLNNLLNNNNNNLNLNLLNLLNLLNLLNNNLLLLNNLLNNLLLLLLLLL.LLL,LLLLLLLLLLLLLLLLLLLLLNLL,LLLLLLLLLLLLLLLLLLLLL,LLLLLLL,N,,L.LLLLL,,LLLLL.L,LLL,,.LLLLL,L,L,,L,L,L,LL,L.L,,,,L.,,.L,L,,,,L,.,,,,,,,,LWdÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÄÄÄ++30330*00+3000+300+30+00+00303000+300030+300000303(300********************************************************************************************************************************&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+  ÓÓûüüüüüûüüüúýúüúúþüóóúóó÷óóó÷ò¬�? !! !!!  !! !!!!ÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñÏÈÆÂ–––ÅÈÎñúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÈ@!!!!! ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáÆ…_[ZZZdÂÎóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü�_ñÿÿÿÿÿÿÿÿÍ!! ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüY;Îÿÿÿÿÿÿÿÿç@ Yáÿÿÿÿÿÿÿÿÿü‚ áÿÿÿÿÿÿÿÿÿÿ„ !_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ     !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !  !    $qšëýýýüüýýüüüýÿýýúýüüûüýýüüüüýüàÓNSSNNSSNNˆˆSSNNSˆSSSNˆˆˆˆˆNNSˆSˆˆSSSˆSSˆSSNSSNSSNSSSSNˆSSNNSSNSSNNNNNNˆSNSNNNNNˆNSSSSNNˆSˆSSNNSSSNNNNSSNNNNNSNSNNNNNˆNNNSNSNNNNNLNNNNNNNNNSNNNLNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNLNNNNLNLNLLLNNNNNLLNNNLNNNNLNNNNNNNLNNNLNLLNNLLNLLLNNLLLLLNLLLNLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLNLNLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL,LLL.,LLLL,LLLL.L,,LLLLLLLL,LLLLLLL,LLL,LL,LL,,L,,,L.L,.,.L.,L.L,,,L,,,,,,,L,,,L,,RcÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄ +000+00003+003+003+30+03+03+0+0+03+00*00+03+0*0+0(0+0+0*434344343O33433333433433333333333333333333333M333M333M333M330<0*03030:0033+03303+33+0<+00+0000003(0+00(0*0++0+++++++++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+     Ó×üúýúûúüúúýúúüúüüÿúóúóóúóúóúóò¬�?!!!!!!!!!!!!  !! !!!!!!!! ! !! @áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýñÈ�@!!!!@xÈñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ_!!! !!!Ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ËZ!#…çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_!_ñÿÿÿÿÿÿÿÿË;!Æýÿÿÿÿÿÿÿÿÿÿÿüç‚‚ÂÏüÿÿÿÿÿÿÿÿÿÿÿÿá;Îÿÿÿÿÿÿÿÿç@–üÿÿÿÿÿÿÿÿÿáY„üÿÿÿÿÿÿÿÿÿð!  !!�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!ÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóxÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      p’éüüüýýüüýýýýÿýúýüýûüýúúýúýûüüàÓNNSˆSˆSˆˆˆˆSSˆNSNˆˆSNNSˆˆˆNSSˆˆˆˆNSNˆˆNˆNNNNNSSˆˆˆNˆNSSˆNNSˆNNNNNSSˆNˆNNNSNSNNNNNSNSSNNNNNSSNSNSSNNNSSSNNˆNNSNNNNNNNNSNˆNSNNNNNNNNSNNNNSNSNNNNNNNNNNNNNSSNLNNNSNNNNNNNNNNNLLLNNNNNNNLNNNNLNNLNLNNNNNNNNLLNLNLLNLNNLNNNLLLNNNLNLNNLNLNNNLLNLNNNLNLLLLLNLNNNLLLLLLLLNLLLLLNNLLLLLLLNLLLLLNNLLLLLNNLLLLLNLLLL,,LLLLLLLLLLLL.LLLLLLLLLLLLLL,LL,L,L.,LLLL.LL,LLLL,L,LL,L,L.L,LLLL.L,L,,,,LL,LLL,L,,,,,,LL,,,LLLL.,LchÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ  +3030+0300030003000003003000300300030003000300303030+20*34344343434334334333333333333333333333333333333333333333M33M303*:40303330030+0000000+30+33+0<+30+300(30+0+0+*0++0+++++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+  ÓÓüüúýüýúüýúüüüüúúþüóóúóó÷óóó÷ò¬�l  !! !!!  !!!  !!!!!!Bóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð…!!!!!!!!;–çýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷‚!!!!!!Æýÿÿÿÿÿÿÿÿÿÿÿÿÿó„!!!!YÎüÿÿÿÿÿÿÿÿÿÿÿÿÿóY  [ñÿÿÿÿÿÿÿÿÌ9!@óÿÿÿÿÿÿÿÿÿÿÿÈ; !Âüÿÿÿÿÿÿÿÿÿÿü[;Îÿÿÿÿÿÿÿÿð;;Ïÿÿÿÿÿÿÿÿÿÿ– !ñÿÿÿÿÿÿÿÿÿÿ[  _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      =s¥íýýýüüýýüüüýÿþýúýüüýüýýúýúüüüæ×ˆˆˆˆSNSˆˆSˆˆSNSSˆˆNˆˆˆˆˆˆNˆSˆSˆSSNSNSˆˆNSSˆNSSˆˆNSˆSˆSNˆNSNSSSSNˆˆSNˆNNNSNˆNNNNNNNNNˆNSˆNNSNNSˆNNNNNSSNNNNSNSSNNNSSNNNˆNNNNNNSNNNNNNNNNNNSNNNNNNNSNNNNNNNNSNNNSNNNLNNNNNNNNLNNNNNNNNNNNNNLLNNNNNLNNNNNLNNNNLLLLLLNNNNNLNLNNNLNNNLLLLNNLNLNLNLNLLLNNLNNNNLLNLLNNLNLNLLLLNLLLNLLLLLLLLNLLNLLNLNLLNLLLLLNLLNLLLLLLNLLLLLLLLLL,LLLLLLLLLLL,LLLLL,,,,L,LLLLLL,LLL,LNL,L,,NLLL,L,LLLL,LLL.,LL.L,,,,LL.L,L,,.,L,,,,,.,\bÁÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÁ    +003+03000000000000000000000000000000000000000000000000*43434434343O33433333433333333333333333333333333M333M333M3330<3M*0300Q0300303303+30+30003+0003+003+0*0*00*0*0++0+++++++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+    ÓÓýüüüúüüúúüúýúûüüÿúóúóóúóú÷úóò¬s?! !!!!! !!!!!!!!! !!!!!!!!!!!!! !Z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ@!!!!!!!!!!!!YÈ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÂ!!!!!‚üÿÿÿÿÿÿÿÿÿÿÿÿü–!!!!! !! !Zðÿÿÿÿÿÿÿÿÿÿÿÿÿá!!!_ñÿÿÿÿÿÿÿÿÌ;Èÿÿÿÿÿÿÿÿÿÿ÷_ ;ñÿÿÿÿÿÿÿÿÿÿá;Îÿÿÿÿÿÿÿÿç@ ‚÷ÿÿÿÿÿÿÿÿÿñ[ÆýÿÿÿÿÿÿÿÿÿÎ!  ! dþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   =}ªéüüüýýüüýýýýÿýúýüýûüýúýýüýýûüàÓˆSSˆSNSNˆˆˆSSˆNˆNˆˆNNˆNˆSˆSˆSˆˆˆSSNSˆSˆˆˆˆNNNSˆˆNSSˆSSNSNNNNˆSˆNNˆSNNˆSˆSSSNNNNSNNNNNNSNSˆˆNSSSNNNNSˆNNSˆNNSSNNNNSSNSSNSNNNNNNSSSNNNNLNNNNNNNNNNNNSNNNNSNNNNNNNNNNNNSNSNNNNNNNNNLNNNNNLNNLNNNNNNNNNLNNNNNNNNNLLNLLLLLNNLNNNLNNNLLLNNNLLNNNLNNNLLLLNNLNLLNLLLLNNNNLLLLLLLNNLLLNLNLLNLLNLNLLLLLLLN,N,LLLLLLN,LLLLLLLLNLLLLL,LLLLLLLLLLLLLLLLLLLL,L,,,,,LL,LLLLLLL,,,LNLL,LLLLLLLL,,LLLLL,LL,LL,LLLL,,L,,,,,LL.,L,.Mc¾ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄ *00300++++++++++++++-++-+++-+-++-++++++++++++++++++++0+*3434434343434334334333343333333333333333333333333M333333333M3M3*303033030303003+300+0+300+30+0+300+0000*0(0+0++0++0++++++++++0*+0+&0&00&0++++++0++++0++0+++++0++++++0++&&&&&&+ ÓÓüûúüüüüüýúüúüüúüþüóóú÷óóóóóóò¬Ž?! !! !!  !!! !!!!!!!!!!!!!! !_úÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÅ#  !!! !!!@ÂòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ@!!!YòÿÿÿÿÿÿÿÿÿÿÿÿðY!!!!!!!–üÿÿÿÿÿÿÿÿÿÿÿÿË!  !_ñÿÿÿÿÿÿÿÿË!!! ñÿÿÿÿÿÿÿÿÿüY!ñÿÿÿÿÿÿÿÿÿü;;Îÿÿÿÿÿÿÿÿð@!ÌÿÿÿÿÿÿÿÿÿÿÃ! @óÿÿÿÿÿÿÿÿÿü@ _ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_  ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ ! =q¥ëýýýüüýýüýýýÿýýýúüüýüýúýúýúüýæÓˆˆˆˆˆˆNˆˆSSSSSSˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆNSSSNˆˆSˆˆNSˆˆNSNNˆSˆNSNˆNˆSNˆSNNˆSNNˆSˆNSˆNNSNNNNNNSNNNSSSSSSSNNNNˆSNNNSNNNˆSSSNNNNˆNSNNSNNNNSNˆSSNNNSNNNNNNNNNNNNSNNSNNNNˆNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNNNNNNNNNNNLNLNNLLNNLNLNNNNNNNNLLNNNLLNNLLNNNNNLNLNLNNNLNNLLLLNLNNNLNLLLNLLLLLLNLNNLLLNLLNLLNLNLLLLLNLLLNLLNLLLLLLLLLLLLLLLLLLLLNLLLLLNLLLLLL,LLL,LLLLLLL,LLLLL,LLLL,,LL.,LLLLL,L,LLLLL,N.,,,,L.LLL,LL,,L,,,.,,L,LXcÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ  TTT003+03+ýüüúüüüþüüúüúúúúó÷úóúúúúúúúúóú÷óòóúòúó÷ó÷ò÷óòòõð13343443434343433433334333Q333333333333333333333333333M333M33330*3M030M3030U00303030303003000303003030*00+0*0*0++0+++++++++++++1ÉÍÈ×ÄÇÄ×ÄÉÄÆÉÆÄׯÉÄÆÄÌ›ÆÄÆ™ÄÆÂÆÆÅÆÄÆÄÆ™ÄÆ›Ã†Æ–Ȇ+&&&&&&+TTT   Ó×üüüýúûüúüüúüúýúýÿúóúóó÷úóúóúòÓ�?!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!!!!!! !!!!_üÿÿÿÿÿÿÿÿÿÿÿÿÿüÉ@!!!! !!!!!!!!@Æúÿÿÿÿÿÿÿÿÿÿÿÿÿñ_!!!!!!;áÿÿÿÿÿÿÿÿÿÿÿÿÉ@ !! !! _óÿÿÿÿÿÿÿÿÿÿÿü‚ ![ñÿÿÿÿÿÿÿÿË!!!!!_÷ÿÿÿÿÿÿÿÿÿ‚;üÿÿÿÿÿÿÿÿý‚@Îÿÿÿÿÿÿÿÿç@! _ñÿÿÿÿÿÿÿÿÿú_! Îÿÿÿÿÿÿÿÿÿÿ   xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_  ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    !  !!q¥éüüüýýüüýýýýÿýüüýýýúýüýüýüüýúàÓˆˆˆSSˆˆˆˆˆSSSSSˆSˆSSˆˆSSSˆˆNSNSSSˆNˆˆˆSSSˆˆˆˆˆˆSNSSSSNˆNˆˆˆNNˆNˆˆSˆNNSSˆNˆNSˆNSNSNNNSSSNNNˆSSSNSNˆNNNNNNSˆNNˆNSNNSNSSSSNNˆNNNNSNSSNNNNSNSNNNNNNSNSNNSNSNNSNNNNNNNNNNNˆNNNNNSSNNLNNNNNNNNNSNNNNNNNNNLNNNNNNNNNLLNLLLNNNNNLNNNNLLLNNNNLLNLNNNNNNNNNNNNNLNLNNLLLNLNNNNLLNNLNLLLLLLNNLLNLNLLLNNLLLLLLNLLNNLLLLNLNNLLLLLLLLLLNNLLNLLLLLLLLL,NLLLLLL.L,L,LLLLLLLLLL.L...LL,L,LLLLLLLLLLL,LLLL,.LL,,LLLLLL,,L.LLL.,.,LLLL,McÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄ TTTTT"0(30300+þüúúüüüýüüüúúúúúóúúúúúúóúúúóúòúò÷÷ò÷÷÷÷÷ó÷òòóòðò*34434343334333333033333P0333\03333333333333333333303330333333M3*303M3030303030030000000000000000000000000000+0+0+0++0++++++++++ÉÌÉÆ×ÈÌÃׯÆ×ÄÆ×ÃׯɯÉÄÌÆÄÆÄ™ÆÄƙęęęÆÄ›ÄÅÆÅÅ–+&&&&&&+TTT""  ÓÓýúýúýüüüûüüúýúúüþüóóóúóó÷óóóò¬Ž?!! !  ! !!!! !!  !!!!  !! !!!!!!!_úÿÿÿÿÿÿÿÿÿÿÿÿÿçZ !!!!!! !!!!!! !!!ZÎýÿÿÿÿÿÿÿÿÿÿñ_!!! !!–üÿÿÿÿÿÿÿÿÿÿÿÂ!!!  !!! !!@ñÿÿÿÿÿÿÿÿÿÿÿñ@ _ñÿÿÿÿÿÿÿÿË!Âüÿÿÿÿÿÿÿÿó! –ÿÿÿÿÿÿÿÿÿÎ  ;Îÿÿÿÿÿÿÿÿð;ÂýÿÿÿÿÿÿÿÿÿÎ;_÷ÿÿÿÿÿÿÿÿÿó@ dýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!  !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    =q¥íýýýüüýýýýüýÿýüýúýúýüûüüüûüüüæ×T::TT:TT:TT"SˆˆˆSˆˆˆˆˆSˆSSSˆˆˆˆˆˆSSˆˆSNSNSSˆSSSˆˆˆˆSˆSNˆˆˆSNNNSSˆˆˆˆˆˆSSˆˆSSNˆSNSSNSˆNNˆSSSNNNNSˆˆSNSNNNNNNNNNSNNNNNˆSNNNNˆˆNˆSSNˆNNNSNNNNNNNSSSNNNˆSNNSNNNNNSNNNNNNNNNLNNNNNNNNNNNNSNNNNNNNNNNNNNNˆNSNNNNNNNNNNLNLNNNLNNNNLNLLNNNNNNNNLLNNNNLNNLLNLNNNLLLNNLNNNNNNLNLLNNLLNLNLNLLNNNNLNLLLLNNLNLNLLNNLLLLLNLLLNLNLLNLLNNLLLLLLNNNLNLLLLLLLLLLLLLLLLNLLLLLL.LLLLNLLLLLLL,LLLLLLL,L,LLLL,,LLL,LNLLLL,L.,LL,,L,LLL,LLLLL,L,,,,L.L.L\hÄÄÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄTTTTTT   """0003+0*üúúüüþýýüúúúúúúúúúóúúúúüúúú÷÷÷ó÷ò÷÷÷ó÷òò÷òòóòòóò133443***11***1*1*11+1+1+1*1+1*11+110*1+10*1+1+1+1+1*1+1*1+1**33*33**1+1+1+1*1*+0**1+1+*+1*10*1++1+1+1+1+1+1*0**+******+1*+++++*ÌÈÉÌÈÄÉÉÈ×ÄÉÈ×ÉÍ™ÍÇÍ™ÄÇÃ™ÆÆÆ™ÄÆÄ™ÄÇÆ™ÄÅÃ™ÄÆ–ÄÅÆ–&&&&&&+""TM"T  ÓÓýüúüúüúüüúýúüüúýÿúóúóó÷úóóúóò¬Ž?!!!!!!!! !!!!!!!!!!!! !! !!!!!! !!!!!ZóÿÿÿÿÿÿÿÿÿÿÿÿýÅ!! !!!!!!!!!!!!!!!„óÿÿÿÿÿÿÿÿß[!! Yñÿÿÿÿÿÿÿÿÿÿþ…!!!!!!!!!!!!! !!YðÿÿÿÿÿÿÿÿÿÿýÈ! [ñÿÿÿÿÿÿÿÿË!!ßÿÿÿÿÿÿÿÿÿ–!! !üÿÿÿÿÿÿÿÿó ;Îÿÿÿÿÿÿÿÿç;!@áÿÿÿÿÿÿÿÿÿþ‚ áÿÿÿÿÿÿÿÿÿÿ‚! !! !!‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!     áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóx !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!   !! !=}¥éüüüýýüýýýýýÿýüýýüýúýüýýûüýúýàÓTTTTTTTTTT:TˆSˆˆˆSˆˆˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆSSˆNSSSSSSSSˆˆˆˆSNSˆˆˆSSˆSˆNˆSˆˆˆˆNˆˆSNSSˆNNNSˆSSSˆNNˆNSSSNSNˆSNˆˆSNSSˆNNˆNSˆNNNNSSNNNNNˆˆSNNNNSNSNNNNNSNNSSNNNNˆSNSSSNSNˆSNNNSNNNNNNNNNNNNNSSNNNLNSNNNNNNNNNNNNNSLNSNLNNNLNNNNNNNNNNNNLNNLNNNNNNNNNNNNNLNLNNLLLLNNLLLNSNNSLNLNLNNLLLNLNNLNNNLNLNNLNNNLNLNNLNLNNLLLNLLLLLLLLNNNNLLLNLNLLNLLLLLLNNNLNNLLLLLLLLLNLLLLLLLLLLLLLLLLLLNLLLNLLLLLLLLL,LLL,.LLLNLLLLLLLLLL,,L,LL,L.L,LLLL,LLLLLLL.L,LMcÁÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄT"TTT TT":"0*30300+úúüüþüüüúúúúúóóóóúúúúúúúúúó÷ó÷÷÷÷ó÷ó÷óóóó÷òòóòòò*34434*óòñðóñòðòðóèðèòâòâðâòçðâñðòðâðâðâðâðâòâðâçâââðèâââïàÑè*33*03*ßáßâáÞáÞÑÞÑÞÑÞÑÞÎÞÑÞÞÎÞÍ×Ñ×ÍÞÎßÉ×Ñ×ÎÞÞÉÌÉÞÍ×Í×Í×Í×Í×É*++++++ÍÌÉÄÉË×ÄÌÆÉÆÌÉÃÇÆËÆÇÆÇÆÄÆÄ™ÄÆÇÃÇÆÇ–Æ––™ÆÅ–Æ–Ä™–+&&&&&&+TTT  ÓÓüüüüüüüýúýúüýúüüþü÷óóúóóú÷óóò¬}?   ! !! !!!!!!!!!!!!!!! !!!!!!! !Bñÿÿÿÿÿÿÿÿÿÿÿÿ÷_!! ! !!!! !!!!!!ZßÿÿÿÿÿÿÏY!!!!!ÈÿÿÿÿÿÿÿÿÿÿÿÆ$ !  ! !Yñÿÿÿÿÿÿÿÿÿÿó[ _ñÿÿÿÿÿÿÿÿÌ#!ðÿÿÿÿÿÿÿÿÿYÏÿÿÿÿÿÿÿÿü;Îÿÿÿÿÿÿÿÿç@ „üÿÿÿÿÿÿÿÿÿáY –üÿÿÿÿÿÿÿÿÿá!  �ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ!   áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_!!ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! =s¥íýýýüüýýýýýýÿþúýúýüýýúýúüýüüüàÓTTTTTˆˆˆˆˆˆNSˆˆˆSˆˆSˆˆˆˆˆˆˆˆˆˆˆSSSSˆSSSSˆˆˆˆˆSˆˆSSSNSˆˆSˆˆˆNSˆˆSˆSSSˆSNSNSSˆNSSNNˆNSˆNSNSˆSSˆˆSˆSSSSˆˆNNSNNNNNˆNNNNSˆSSˆˆNNSNSNNNNNNNSSNNNSNNNSNNNNNSNSNNˆNNSNNNNNNNNNNNNSNNSNNSNNNNNSNNSNˆNNSNNSNNNNNNNNNNSNLNNLNNNNNNNNNNNSNNSNNNNNSNNNNNLNNNNLNNNLNNNNNNNLNNLNLNLLNNNNLNLLNNNLLNNNNNNLNLLNNLLLLLLLLLNLNLNLLLNLLLLLNNLNNNLLNLLNLLLNLLLLLLLLLLLLLL.L.LLLLNLNNLLLLLLLNLLLLLLLLLLLL.LLLLLNLLLLLLL,LLL,LLLLL.L,LLL,LL,LLLLL.LLMc¾ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÁT"TTTTTT"TTTT:000+03+üúüþýüüúúóúúúúòúúúúúúóúúúú÷÷÷òú÷÷÷ó÷÷÷ò÷òòð÷òóóò*44344*òóòóðóòòëëëìêëêôêöãöããêìêëëêãêìëãëãìãêãêêêêêêãêãêÝãÝãÝ*3M*3M*ÝêÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ­ÝÝÝÝ­Ý­ÝÝÝ­ÝÝ­Ý­Ý­­Ý­­­­­­­°Ô¨10++++*°­¦­¦­¨­¦¦°¨­¦¨°¦¨¦£¨£¦¨£¦¦¨¦¨¦¨¦¨£¦¨¦¦£¦¦£¨¦¦r¦+&&&&&&+::"T  ÓÓüüúýúýúüüúýúúüúüÿúó÷úóóúóó÷úò¬s? !!! !!!!!!!! !! !! !!!!!!!!!!!! !!!!!!!!!!9áÿÿÿÿÿÿÿÿÿÿÿÿá;!! !!!!!!!! !!! !!!!!@ÆüÿÿÿÌ@!! !!! !!YóÿÿÿÿÿÿÿÿÿÿÎ@  !! !!!ZüÿÿÿÿÿÿÿÿÿÿÈ!![ñÿÿÿÿÿÿÿÿË9! !!!!! !ñÿÿÿÿÿÿÿÿü; Âÿÿÿÿÿÿÿÿü;  ;Îÿÿÿÿÿÿÿÿð@!Îÿÿÿÿÿÿÿÿÿÿ– ;ñÿÿÿÿÿÿÿÿÿÿY _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ         =qªéüüüýýýýýýýýÿýüüýúýüüýüýýüûüýàÓ"TTT"TT"TTTTTTTˆˆˆˆˆˆˆSSˆˆSSSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSˆSˆˆˆˆNSNSSSˆˆˆSˆˆˆˆSSSˆSˆNSˆNNSNSˆˆˆNNNˆSNNNNNˆSSˆˆˆˆSˆNˆˆNˆSˆSSˆSSSSSSSˆSNNSSNSˆˆNSNSSNSSNNNNˆSˆNNSNNSNNNNNSSSNSNSNSSSˆNSSNNNNSNNˆNSNNNNNNNNSNNSNNNNNNNSNNNNNNNNNNNNNNNNNNLNNNNNNNSNNNNNSLSNNNNNNNNNNNNNNLNNLNNNNNNNNNNNNLNLLNNNNLNLLNNLLLLNNNLNLNNNNNLNNLNNLLNNLNNNLLLLLLLNNLNNLNLLNLLNLLLLLLLLNNLLLLLLLLLLLNLLLNLLLNLLNLNLLLLNLLLLNLLLLLLLLLLLLLLLLNLLL,L,LNLLLLLL,LLL,,LLLLLLLLLLLbcÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄT:TT""TT0T "T:TT"00+3000+úüüüóúúúúúúúú÷÷óúúú÷÷÷÷÷÷÷÷ó÷÷÷óúòúó÷òóóòóóó÷ñòò*43434*óòòóòðñëëëëëëãìãããêãöãìãêìãöãêãìããããêêêãÝãêãêÝÝêÝãÝêÝÝ*33*03*ÝÝÝÝÝÝÝÝÝÝÝÝݰÝݰݰÝݰݰݰ°Ý°Ý°Ý°°Ý°°Ý°°°°°°°°°°°°°°°*+++++1°°°¦°°°°¨°£°¦°¦¦°¦°¦¨¦¦¦¨¦¦¦¦¦¦¦¦¨¦¦¨¦¦¨¦¨¦£¦¨¦¦+&&&&&&+TTT:T: Ó×ûýüüüüüûüüüüüüúüþü÷óóúóóóúóóò¬s?   !!!! !!!!! !!!! ! !!!!!!!!!  !!!!!Æÿÿÿÿÿÿÿÿÿÿÿÿß@!!!!!!!!!  !! !!!!!!! !!–óüÆ@!!!!!Èþÿÿÿÿÿÿÿÿÿñ@! !!!! !!!‚ÿÿÿÿÿÿÿÿÿÿòZ!!_ñÿÿÿÿÿÿÿÿË;!! !ðÿÿÿÿÿÿÿÿð!‚ÿÿÿÿÿÿÿÿüB;Îÿÿÿÿÿÿÿÿç;xóÿÿÿÿÿÿÿÿÿó_ÆýÿÿÿÿÿÿÿÿÿË xþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!  q¥íýýýüýýýýýüýÿýüýüýüüûüýüüýüýüæÓT"MTTT"MTT"MTT"T"TTTˆˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSˆSˆSˆˆNˆˆˆˆˆˆˆˆˆˆˆˆˆNSˆˆˆˆSˆSSSSˆˆˆˆSNˆˆNNˆSSˆˆˆˆSˆNˆSˆNSˆˆSSSNSSSNNSSNNSSˆSSSSˆˆˆNNNSNNSSSNSNNSNNNNNSSSSNNˆSNSSSNSSNˆNNSNSSNNNNSNSNSSNNSNSSNNNSSNNNNNNNNNNSNNNNNSNSNNNNNNNNNNNSNSNNNNNNNNNNNLNNNNNLNNNNNNNNNNNNNNNLNNNNNNNNNNLNNLLNNNNNNNNNNLNNNNNNNNNNNLLNNLLLNLNLNNLLNLNNLNLNNLLNLLNLLNLNLLLLNLLNLLLN,LNLLNLLNLNLLLNLLNLNLLLLLLLLLLLLLLNLLLLLLNLLLLLLLLLLLLLLL,LLLLLLLLLLLLLLMdÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ""""TTTTT:TT: TTT+0303++üüüúúúúúúúúúúóó÷úúúúó÷ó÷ñ÷ó÷úòó÷ú÷÷òúó÷ò÷ò÷÷ò÷òó+44443*òðóòòðòëëêëëëêêãëãêãêêããêëãêãëëãëãëãêãêãêÝêêÝãêÝãÝãÝãÝ*33*33*ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ­Ý­ÝÝÝÝ­Ý­ÝÝ­Ý­°­­­Ý°­­°­­°­­­°­¦­¦¨1++0++*°¦¦­¨¦¦£¦£¦¨¦¦¨¦¨¦¨¦¨¦¨¦¨¦¨¦¨¦¨¦¨¦¦¨¦¦¦¨¦¦¦¨r¦¦¦&&&&&&&+TTÓÓüüúýúüüüúýúýúýúýÿúóúóó÷úóóóúò¬s?!! !! !!!!!! !!!!!!!!!!! !!!!!! !!!!!!!!!!! !‚üÿÿÿÿÿÿÿÿÿÿÿÌ! !!!!! !!!!!!!!!!_‚@! !@ñÿÿÿÿÿÿÿÿÿý_!!! ! !!!!!!!!#ÎÿÿÿÿÿÿÿÿÿüÆ  !![ñÿÿÿÿÿÿÿÿË!!!!ÈñüüÿÿÿÿÿÎ !!!‚ÿÿÿÿÿÿÿÿüY!;Ìÿÿÿÿÿÿÿÿç@ !ËÿÿÿÿÿÿÿÿÿÿË@ ZóÿÿÿÿÿÿÿÿÿüB  !dþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóx  ÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    ! !p¥éüüüýýýýýýýýÿýýüýüýüüýúýûüýüûàÓ"""ˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSˆˆˆˆSˆSˆˆˆˆˆSˆˆˆˆSˆˆSˆˆˆSˆˆˆSSˆNˆˆNˆSSˆˆSˆSSˆˆNSˆˆˆˆˆSˆSˆˆˆSSˆˆNSˆNSSSSNNSSSSˆSNˆˆNSSSSˆˆNSSˆˆˆNNSSˆNNSSNSˆNˆˆSNSSNSˆNSNSNNSˆNNSNSNSNNNNNNSNSNNSSNSSNNSSNNNSNNNNSNNNNNNSNNNNNSNNSNNSSNNNNNSNNSNLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNLNNNNNLNNNLNNNNNNNLNNLNNNLNNNNNLNLNLNNNLNNNNLNNLNNNNLNNLLNLNNLNLLNNLNLLNNNLLNLNNNLNLNLLLNLLLLLLLLLLLLLLLLLLLNLLNLLNLLLLNLLLLLLLL.LLLLLLNLLLLLLLLLLL\gÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄ:TTTTT"TT0T:T"T"TTTTTTT(30000+üüúúóúúúúúúúúúó÷÷úúóú÷ó÷óò÷÷÷÷÷òóúó÷òóòòó÷óòóò÷÷*44434*òñóòõðòëëëëèâèââàâàâßßàââëâèêâãâãââêàêßâêßßßàßßßßßàߨß*33*331ÞØØßØ×ØßØ×רררÒררר××Ò×Ê×Ò××Ê××­ÇÒ×Ç×Ò×ÇÇ××Ç­ÇÇÔÇ*0++++*°°¦Ç­™ÇÇÇÇ™™Ç™™™™™™™™™™™™™™™™™™™™™™™†™†¦††¦†††œ†+&&&&&&+TTTTTTTÓÓýüüüüüûüüúýúýúüüþüóóú÷óóúóúóò¬Žl !!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!!! !!!!!!!YóÿÿÿÿÿÿÿÿÿÿÿÎ!!! !  ! !!! !!!! !!!!! !! !!!!!!!!–úÿÿÿÿÿÿÿÿÿÌ@  !!!!! !!!Zúÿÿÿÿÿÿÿÿÿá!!!_ñÿÿÿÿÿÿÿÿÌ#!!Y…ÎóüüÿÎ!!Æÿÿÿÿÿÿÿÿü!;Îÿÿÿÿÿÿÿÿð;[ðÿÿÿÿÿÿÿÿÿü_ !ÎÿÿÿÿÿÿÿÿÿÿÂ!_ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ!  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    pªíýýýýýýýýýýýÿþúýüýüûýüýüüýúýüæÓTT"T:T:TTT"T:TTT"T:TTT"TT0T"T"MT"Tˆ½ˆSˆˆˆˆˆˆSˆˆSˆˆˆˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆSSˆˆSˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆSSˆSSˆˆSSSˆSˆSSˆˆˆˆˆSˆSˆˆˆˆˆˆSSˆNˆˆSNSNSNSˆˆˆˆSˆSSˆNSNSSSSSˆNNSNˆˆSˆNNSNNˆNNNˆNNSNSSNNSSSNSSNSNNNSNSNˆNNSSNNSNNSˆNNNˆSSNˆNSˆNNNSNNNNNSNNNNSNNNNSNSSNNNNNSSNNˆNNNNNNNLNNNNNNNNNNNNNNNNNNNNNNNNNNNNSNNNNNLNNLNLNNLNNNNNLNNNNLNLNLNLNLNNNLNNNLLNLNNNLNLNNNNNNLNLNLNLLNLLLNLLLNLNNLNLNNLLLLNNNNLNLLNLNNLLLLLLLNLNLLLLLNLLLLLLLLLLLLLLNLNLLLLLNLLLLLLLLLLLLLLLLLLLLLMhÁÄÄÄÄÄÄÁÄÄÄÄÄÁÄT0"TT:TTTTTTTT TTTTTTT+003+3+úúüúüüúúúú÷úúúóúó÷ó÷÷÷÷ó÷òú÷úúò÷÷úòóñ÷ð÷óòóòòóòó*43443*òôòððòðöëìëëëèâêëêãêêêãêêêâãèêêëëãöãêãêãàâßêÝãÝêÝÝÝãÝÝ*3M*33*ÝÝÝÝÝÝÝרßÝÝÝÝÝÝÝÝ­Ý­Ø×ÒÝ­Ýݰݭݰݭ×××­°­°Ý°­°°­­Ç­ž­*+0*++*°¦°¦Ç­Ç¦¨¦°¦¨¦°¨£¦™Ç™™¦¨¦¦¦¨¦¦¦¨™™†¨¦¦¨r¦¨r¨¦¨r†+&&&&&&+TTTTTT  Ó×ýúýúýüüúýüúýúýúýÿúóúóóúóó÷óóò¬ŽC!!!!!!!!!!!!!!!!! ! !!!!!!!!!!!!!! !!!! !ÑÿÿÿÿÿÿÿÿÿÿÿÎ!!!!!!!! !!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!Ïÿÿÿÿÿÿÿÿÿü]!!!!!!!!!!! !!!@Æÿÿÿÿÿÿÿÿÿó_ !!!![ðÿÿÿÿÿÿÿÿË!!!!! !!!!Y–Ï–!! çÿÿÿÿÿÿÿÿú;Îÿÿÿÿÿÿÿÿç@ ÂüÿÿÿÿÿÿÿÿÿÎ@‚óÿÿÿÿÿÿÿÿÿñ;   xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   !!q¥éüüýýýýýýýýýÿýüüýúýüýúýýúýýüýàÓ½ˆ½ˆ½ˆSˆˆˆˆˆ½ˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSˆˆSSˆˆˆSSˆˆˆSˆˆˆˆˆˆSSSNˆNSˆSSˆˆSSSˆSˆˆˆˆˆNNNSˆˆˆNˆSSˆˆˆSSSNSˆSNSˆˆˆNˆˆSˆˆˆSˆNˆSSNSˆSNˆˆˆˆˆˆSˆˆNSSNSNˆSSNSNNSSSSNNNSSSNSSNNNSNSˆNSNNNSˆNNNNSSNSNNNNˆNNNNNNNNNNNNNNNSNNNSSNNNNNNSSNNNNNNSNNNNNNNNNSSSNSSNSNNNNNNNNNNNNNNSNSNNNSNLNLNNNNNNLNNNNNNNNNNNNLLNNNNLNLNNLLNLLNNNLLNNNLNLNNNNLLLLNLLNLLLNLLLNLNNNNNLLLLNNNLNNLNNNLLLLLNLLLNNNLNNLNLNLNLNLLLLNLLNNNNLNLNN,LLLLLNLLLLLLLLNLLLLLL.MLchÄÄÄÄÄÄÄÄÄÄÄÄÄTTTTTTTTTTTTTTTTTTTTTTTTTT"++0000+úúúüüú÷÷óòó÷óúúó÷÷÷÷÷úò÷ú÷÷óú÷÷óú÷ú÷óòóóòóòó÷÷óò*444431ðòñóòðòëëëêöëëèããêêããêêêãëâêâãëãìããöãêêãßêßêãêãÝÝÝÝÝÝÝ*33*M3*ÝÝÝÝÝÝÝØßÒÝÝÝÝÝÝÝݰÝÝ×××­Ýݰݰݰݰ­×Ò×­°­°°°­°­°­­Çצ*0++0+*°°°°£ÇǦ¦°¦°¦°¦¨¦¦¦Ç™¨¦¨¦¨¦¨¦¨¦¨™™™™¨¦¦¦¦¦¦¦¦¦™†+&&&&&&+TTTTTTTTTTÓÓüýüüüýúüüúýúüüüüþüóó÷÷óóúóú÷鬎?!!  !! !!! !!!!!!!!!!!! !!!!!!!!!!!!! !!!!!„üÿÿÿÿÿÿÿÿÿÿá;!!! ! !!!!!! !!!!  !!!! !  !!!!!!!!!YñÿÿÿÿÿÿÿÿÿÈ@!! !!!! !!! ! !!!ZüÿÿÿÿÿÿÿÿüÆ !!_ñÿÿÿÿÿÿÿÿÎ$!!;ÿÿÿÿÿÿÿÿÿñ;Îÿÿÿÿÿÿÿÿð@@áÿÿÿÿÿÿÿÿÿÿ–çÿÿÿÿÿÿÿÿÿÿ‚‚þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! !   =s¥íýýýýýýýýýüýÿýýýüýúýüýüüýüúýüàÓ‰‰ˆˆˆ½ˆˆˆˆˆˆˆˆ½ˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSˆˆˆˆˆSˆˆSˆˆˆˆSˆˆˆˆSSSˆSSSˆˆSSˆSSˆNˆˆˆSSSSSSˆSˆˆSSSNSSˆSNSNSSˆˆˆSˆˆSˆˆˆˆˆˆˆNˆSSNSNSˆˆSˆˆˆNSˆSSNNSˆNˆSˆNSˆˆSSSSSSNSNNNSˆSNNNNSNNNNNSNˆNNNSNSSSSNNSNNNNNNNNNSSNNNNNNNSˆSNNNNNNNSSNNNNNNNNNNNNNNNSNNNSNSNNSˆNSNSNNNNNNNNNSNSNNNNNNNNNNNSNNNNNSNNNNNNNNNNNNNNNNNNNNLNNNNNNLNNLNNNNLLNNNLNLNLLLNNLNNLLNLNNNLLLLLLNLNNLLLLLLNLLLLLLNNLLNNLNNNNNNLLNNLLLLLNLLNNNLLNLLLLLN,NLLLLNNNLLLLLLLNLLL\gÄÄÄÄÄÄÄÄÄÄÄÄTTTTTTTTTTTTTTTTTTTTTTTTTT""TTTTTTTTTTT+0330++üüüüúó÷óó÷÷òóú÷÷úó÷ó÷÷ó÷ó÷ó÷òú÷÷ò÷÷úóóòòóòòñóòòò*44434*òðóòòðñëëëìëöìëêàâßßßàãâêâââëñèëâëâêâêâàãßàãßàÝߨߨØßØ*33*33*ߨØßØØØØß×ß×רØß×ר×××××ר×××××ÊØ××Ê××××­Ç××­×Ò×­ÇÇǨ0++0*+*ǰ°°­™Ç™­ÇÇÇ™™™Ç™ÇǙǙ™™™™™™™†™™™™™™™††œ™†œ††™††+&&&&&&+TTTTTTTTTTTTÓ×ýúüýûüüüüüüüüúûüÿúóúóóúóó÷óóòÓ�?!!!!!!  !!!! ! !! !!!!   !!! !!!! !! !!!!!!!!!!Bñÿÿÿÿÿÿÿÿÿÿò@!! !!!!!!!!!!!!!!! ! ! !!!!   ! !!!!!‚÷ÿÿÿÿÿÿÿÿÿ_!!!!!!!!!!!!!;Ìÿÿÿÿÿÿÿÿÿá![ñÿÿÿÿÿÿÿÿÌ;!!! !!!!!! !! ËÿÿÿÿÿÿÿÿÿÌ;Îÿÿÿÿÿÿÿÿç@!„üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ9  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ ! !    ! =qšíüýýýýýýýýýýÿýüüýüýüýúýûüýýüýàÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTˆ½½ˆˆˆ½ˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSSˆˆˆSSSSSSˆˆSˆˆˆˆˆSSˆˆˆˆˆˆˆˆSˆˆˆSˆˆˆˆNˆˆSSˆˆˆˆSSSSSSSSˆˆSSNSˆˆSNˆˆˆˆˆSˆˆˆSˆˆSSSSˆNˆˆSSˆˆˆNSˆNˆSNˆˆˆˆNSSˆSSˆSNˆSˆNˆSSNˆSˆSSNNSSNNNSSNNNNNNNNSNSNSSSNNNˆNNˆNSˆNNSNNSNSNNNNNNSNNSNNNNNNNNNSNNNNNSNNNNSNSNNNNNNNNNNNSNSNNNNSNNNNNNNNSNNNNNSNNNNNNNNNNNNNNNNNNLNLLNLLLNNNLLLLLLNNLNNNNNLLNNLNNNNNLLNNLNLNNLNNLLNNNNLLNLLNLLNNLLLLNNNLLNNNNLLNNLLNLLLLNLNNLNLNLLLNLNLLNNNNLLLNLLNLLNLLLLLLLLMchÄÄÄÄÄÄÄÄÄÄTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTT:+0+300+üüúúú÷ú÷÷óò÷óóóúúóúóóúóú÷÷÷÷÷÷ó÷ó÷úú÷óòóòóóó÷óóò*444441ðòððòðòëëëöëëëëêãßßßßßâÞñâèëââãâââêâàâêßßßßßßÙߨßߨß×à*33*33*ØßØß×Þ×ß×ߨÒß×ߨÊ×Òר×Ê×Ê×Ê×Ò××ל××Ç­ÇÊ×ÇÒÇ×ÇÇ×ÇÒÇžÔÇ*+0+0+*™­°°¦­ÇÇÇ™™ÇǙǙ™Ç™™™Ç™™™™™™™™™™™™™™†™†œ†™††™†††+&&&&&&&TTTTTTTTTTÓÓüüýúüüüüýúýúýüüüþüóóúóóú÷ó÷÷ò¬�? !!!  ! !   ! ! !!!!  !!!!!!!!!!!!!! !!!!!!! !!!!!!!!Èþÿÿÿÿÿÿÿÿÿü_!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!Èýÿÿÿÿÿÿÿÿç@!!!!!!!!!!!!! ! !�ÿÿÿÿÿÿÿÿÿñY_ñÿÿÿÿÿÿÿÿÌ;! !! xÿÿÿÿÿÿÿÿÿýd;Îÿÿÿÿÿÿÿÿç@!Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü_ !_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ =s¥íýýýýýýýýýýýÿþýýüýüýüýüüýüúýüæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTˆˆˆˆˆˆˆˆˆˆˆˆ½ˆˆ‰ˆˆ½ˆˆ½Sˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆ½ˆˆˆˆˆˆSSˆˆˆSˆˆSˆˆˆˆ‰ˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSSSSSˆˆˆˆSˆNˆˆˆNˆˆˆˆˆNˆˆNˆˆNSˆNˆˆˆSˆˆNSNˆSSSˆˆNNˆˆSSˆˆˆˆNSˆNˆSˆSNNˆSNSNNˆSSNSNNNSSˆSSNNNNNNNSNSNˆSNNSSSSSNSNNNˆSNSNNˆNNˆNSSSSNNSNNNNNNˆSNNSNSSNNNSNˆSNNSNNNNNNNSNNNNNNNNNNNNSNNLNNNNNSNNNNNNNNSNNLNNNNNNNNNNNNNNNNNNNNLNNNLLNNLNNNLNNNNNNNNNLNNNLNNNNNLNNLNNNNLNLLLNLNNNNNNLNNNLNNNNNLNNLNNLLNLLNNLNNLLNNLLNNLLLLNLLNNNNLLLLNLLNLLNLLLLLchÄÄÁÄÄÄÄÄÄTT"TTTTTTTTTTTTTTTTTTT""""""""TTTTTTTTTTTTTTT:TT:TT:TT"TT+00303+ý÷üúúúóúú÷úó÷÷÷ú÷úúúúúúúúó÷÷ó÷÷÷òúò÷÷òóòóòóñóòð÷*44444*òñèóðòðëëëëöëëëìêêàßàßßââââèëèâöââàãââßãßâàãàßßߨߨßàØ*03*33*à×ßߨר×Êß×ßרÞÊ×Þ×××ר×××××××Ê×××Ç­×ל××Ç­Ç×ÊÇ­žÇ­Çž+0+0*0*Ǧ°°°¦™ÇÇ™ÇǙǙ™Ç™™Ç™™™™™™™™™™™™™†™™™™†™††™™††††+&&&&&&+T:T"TT"TT"TTTTTTTTT××ýüüüýúýûüüúýúüúýÿúóúóóúóóúóóò¬s?!! ! !!!!!! !!!!!! !!!!! !!!!!!!!!!!!!!!!!!!! !! Z÷ÿÿÿÿÿÿÿÿÿÿ–!! !!!!!!!!!!!! !!!!!!!!!!!!!!!!!! !!!!ÏÿÿÿÿÿÿÿÿÿÆ@ !!!!!!!!!!!!!!!!!! !!!Y÷ÿÿÿÿÿÿÿÿóx!!! !_ñÿÿÿÿÿÿÿÿÌ9 !!!!_üÿÿÿÿÿÿÿÿÿó! ;Ëÿÿÿÿÿÿÿÿç;!_óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!   áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_!!  ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ       =}ªíýýýýýýýýýýýÿýüûüüýüýüýüüýüüýàÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT½ˆ½ˆˆ½ˆ‰ˆˆˆˆˆˆˆ½½ˆˆˆˆˆ½ˆˆ½ˆˆˆˆˆ½SˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆSSˆˆNˆSˆˆˆˆˆˆSˆˆˆˆˆˆSˆˆSˆˆNSˆSSˆSˆSSSSSˆˆˆˆˆNˆˆSSNNNSNNˆˆSˆNˆˆˆSSˆSSNSˆˆNNˆNSˆNSNSˆSˆˆˆSˆNSSSNSNSNNSNNSNSˆNSSNSSNSNNSSNNNNSNNSSSNNNNNNNSSSNSNNNSSNSNNSSNNSNNSNNNNNNNNNNSNSNNNSNNNNNNNNNNSNNNSNSNNNNNNNNNNLNNNNNNNNSNNNNNNNNNNNLNNNNNNLNNNNNNNLNNNNNNNLNNLNNNNSNNLLLN,NLNNNNLNLLNNLNLLNNLNNLLNLLNLNLNLLLLNLNLLNNLNLLLLLLNNLLLNNLNLNLLLLNNLLLLMcÄÄÄÄÄÄÄÄT:T"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT""0"""""TTT"TTT TT"TTTTTTTTTTTTTTT"*00+00+üüúüúúú÷÷ú÷÷ó÷úó÷ú÷úúúúúú÷óò÷ó÷óóòóóóóòóñóñóñòóõ*4444P1ðððõððòëìëöëìëëêìêãßÞßàâàáèëèâãââãßâßßàââãßßߨàßߨßߨÞ133*33+ØßØßߨ××ÞØÞØÞ××ÞØ×Ê×Êל×Òרœ××ÇÒ×ÒÇÊ×ÇלÇÇÒÇל×ÇÇמÇÇ**0+0+*ǰ°¦°¨­™™ÇÇ™™™™™™™Ç™™™™™™œ†™™™™™™†™™™™œ††œ††††††+&&&&&&+TTTTTTTTTTTTT"TTT"TÓÓüüûüüýúüüüüüüüüüþüóóúóóúóóúóò¬s>!!!!!!! !! !!!!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!ÈþÿÿÿÿÿÿÿÿÿÎ!!!!! !!!!!! !!!!!!! !!!!!!!!!!! !! !!!!! !!9çÿÿÿÿÿÿÿÿÿx! !!!! !!!!!!!!!!!!!!!!@ßÿÿÿÿÿÿÿÿü–!!  _ñÿÿÿÿÿÿÿÿÍ!!!!‚ýÿÿÿÿÿÿÿÿÿÿÌ;Îÿÿÿÿÿÿÿÿð@ÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóY   _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ; áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_!ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !  !=qªíýýýýýýýýýýýÿþýüûýúýúýüüûüýýüàÓTTTT"TTT"TTTT":T"T"T:T"T:T:T"TTTTT"TT"TTTTTT:TT"TT"T:T"TT":T"T:T‰‰ˆˆˆ½ˆˆˆˆˆ½ˆ½ˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆ½ˆˆˆˆˆSˆˆˆ½‰ˆˆ‰ˆˆˆˆˆˆˆSˆˆNˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆNˆˆˆˆˆSSˆNˆNˆˆˆˆˆSSˆˆSˆˆˆˆˆˆSˆSˆˆˆˆNSNˆˆNˆˆSSSNNˆˆSNˆˆSNSSSˆˆSˆSNSNNSSˆˆSˆSNˆNNˆˆSSNNNNˆˆˆSSNSNNNNSSˆNSNNNSSNNNSSSSSSNNSNSSSSNNSNSSSˆˆNNNNSNNSSSSNNSNNSSSNSNNSNSNSNNNNSSNNSNNNNNSNNNNNNNNNNNSNSNNNNNLNNSNNNNNNNNNNNNNLNNNNNNNSNNLNNNNLNNNLNNLNNNNNNNNNNNLNNNNNLNLNNNSNLLNLNLNNNNNLLNNLNNNNNNLNNNLNNLNLNNLNNLLNLLNNLNLNLLLLLNLNNLLLLLLLNNLNLLNLLLNLLLM\hÁÄÄÄÄÄTTTTTTTTT"TT:"TT"T"TT"T"TT"T"TT"T"T"T"T""T"T"T"T""TT""""""""""""":::"0"T::"T:T:T:T"TTXXXXXXXXXXXXXXXXXXX+03030*ýüüüúúóóóóó÷÷úó÷ú÷ú÷ú÷ú÷úóóóòúó÷òòóóóòòðòóòòóñòð1P4444*ðèóòðíñëöëëöëëêëãëêêàâÞßâàâââââßßßßàßßâßâââßßßߨߨßÞߨ133*331ß×ß×ß×ÞØÞÒ×ÞØ×Ò×Ì×××Ç××Ç××Ç×××Ò××Ç×Ç­ÇžÇ×Ç×Ç×ÇÇÊÇÇÇÇ™*0+0*0*Ǧ°­¦°°™™™™™™™™Ç™™™™™™†™™†™™†™™†™†™†œ††™††††††††+&&&&&&+XXXXXXXXXXXXXXXXXXX"T""T"T:T:T:"T"Ö×ýüüüýúýüýúýúýúûüÿúóúóóúóóúóóò¬s>! !!!!!!!!!!! !!!!!!!!!!!  !!!!!!!! !!!!!!! !!!!!!!!!!Zóÿÿÿÿÿÿÿÿÿ÷Z!!!! ! !!!!!!!!!!!!!!!!!!!!! !!!  !! ! !!!!!!!ZñÿÿÿÿÿÿÿÿüZ!!!! !!!! !!!!!!!#ÅÿÿÿÿÿÿÿÿüÆ _ñÿÿÿÿÿÿÿÿË!!!!!!!! !!!!!!!;Æÿÿÿÿÿÿÿÿÿÿÿ÷B!;Ìÿÿÿÿÿÿÿÿç;Yðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…! ! �ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! !  !Ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      !qªíýýýýýýýýýýýÿýüýüýýýýüýýüýúüüæÓTTT"T:T"TTT"TTTTTTTTTTTTTTTTTT:"TTTTTT:TT"TTTTTTT:TTTTTTTTTTTTTTˆ½ˆˆˆˆ½ˆ½ˆˆˆ½ˆ½ˆˆ‰ˆˆˆˆ½ˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆ‰ˆˆˆˆˆˆˆˆˆˆSˆˆSˆSˆˆSˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆSSSˆˆˆSˆˆSˆˆˆˆˆˆSˆˆSˆˆˆˆˆˆˆˆˆˆNSˆSˆSSSNSSˆˆSˆSNNˆˆˆˆSSˆˆˆˆSSˆˆNNˆSˆSˆNSNˆNSˆSNSSNNSSˆˆˆˆSSSˆNSNNSSNNNSSNSˆNSSSSSˆNSNNSSˆSNNˆNˆSSNNNNNNNSˆNNSNNSNNSNNSSSNSNSNSNNNNNNNNNNNNNNNSNNNNSNNNNSNNNNNNNNNSNNNNNNNNNSNNNNLNNNNSNNNNNNNNLNLNLNLNNNNNNNNNNNNNLNLLNNNNNLNNNNNLNLNNLNNNLNNNLNNLNNLNNNNNNNNNNLLNNLNNLNLLNNLNLLLNNNNNLNNNNLNNNLLNNLNNLLLNLNNLLL,LNbgÁÄÄÄÁXXXXXXTXXXTXXXXXVXVXXXXXXXXXXVXXVXXXVXVXWXXXXXXXXXVXXXXXXXXXXXXXXXXXXVXXXVXTXXXTXXXXXTXTXTXTXTXTXTXTXTXTXTXTXTXTTUTUTTTTTUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTVTTTXTTVTTTXTVTTTTTTTTTTXXXXXXXXXXXXXXXXXXXX+*0000+üüüóüüúú÷ó÷úú÷óú÷óú÷÷÷÷ú÷óòòóòóóóóóñòòóñòóóòñóðñ1444431èðððððòìëëöëëëëèìêëêãàßâßââââßàßßâßÞßâàâÞâßàßßßßàÞÞàØ×*33*331×Þ×ÞÞ×Þ×××ÒÞ××××Ê×Ò×Ò××Ê×ÒÇÊÇž×ÇÇÊÇžÇÇÊÇלǞǞǞǞǙž*+0(0++™°°¨Ç¦°¦™Ç™™Ç™™™Ç™™œ™†™™†™™†œ™œ††œ††™††™†††††††+&&&&&&+XXXXXXXXXXXXXXXXXXXTTTTTTTTTTTTTTTTTTTTTXUTTVTXTTTXTVTTTVTTTXTTVTTTTVTTVTTTTVTTTTTTTTTTTTTTTTTUTT×Õúýüüüýúýúüüýúýüúÿüóóúóóúóó÷÷ò¬}?!!!!! !! !! !! !!!!!!!! !!!!!!!! !!!! ! !!!!!!!!!!!!ÈýÿÿÿÿÿÿÿÿÿÆ!!!! !!!! !!!!!!!!!!!!!!!!!!!!!!! ! !!!!!  !!!!!!!_óÿÿÿÿÿÿÿÿòY!!!!!!!!!!!!!!!!!!!!‚ÿÿÿÿÿÿÿÿÿÎ!!_ñÿÿÿÿÿÿÿÿÍ!! !!!!! !!_áÿÿÿÿÿÿÿÿÿÿÿÿÈ!;Îÿÿÿÿÿÿÿÿð@ –üÿÿÿÿÿÿÿÿÿÿÿÿÿÿð@!‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9 !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!q¥íýýýýýýýýýýýÿþýüýýúüüüüúýüýýýàÓXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXˆ½ˆˆˆˆ½ˆ½ˆˆ½ˆˆˆ½ˆ½½ˆˆ½ˆ½ˆˆˆˆ½ˆ½ˆˆ½ˆˆˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆ½ˆSˆˆˆˆˆ½½ˆˆˆˆˆˆˆˆˆˆˆSˆˆˆSˆˆˆSˆˆˆˆSˆˆSˆˆˆˆˆˆSˆSˆˆˆSˆˆˆˆˆˆˆSSSNSSSSSSˆSSSˆSSSSˆˆSSSˆSSSˆˆˆˆSNˆSˆˆˆNNˆˆˆNˆˆNSSNSˆSˆNNˆˆˆNSNSNSNNNSˆSNSNNSSˆNNˆSNNSNNˆSNNˆNNSSNSNSSNSNSNNNSˆNˆNNNSSSNNNˆSSSSNNNNNNNNNNNSNNNNNNNNSNSNNSNNNSNSSNNNNSNNNNNNNNNˆNNNNLNNNNNNSNNNNNNNNNNNNNLNNNNNNNNNNNNNNNNNNNNNNLNNLLNNNNLNNLNNNNNNLNLNNNLNNNNNNNLLLLLLLLLLNLLLNLLLLNNLLLNLLLNNNNLLNNNLNLLNLNLNNLNLLLLMcÁÄÄÄX\^X^X^X^X^X^X^X^bbX^X^X^XXbX^Xb^XXbX^bbYXXbVXV^VbXbXX^XXX^XXX^XXV^VXXX^XXX^VXVbXXVXVXVYXXVXXXXVXVXVXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXTXXTXTXTXTXTXTXTXTTXTTTXTTXTTTTTTTTTTTTTTTTTKKKK³KKK³KKK³KKK³KK+003+<+üüüüþüþóüóúóúóúóúóúóúó÷÷óóóóóòóòòòñóñóóóóòòðòððò134444*ðñðõðòðöëëöìëëëìêëëêìêâàâèâßßàßßâßâàâßâßâàâßßâßßßßÞØÞß*03*33*××××Þ××Ê×Ê××××É×××××××Ê×מ×Ç×ÇÇÊÇÒÇÇÇÇœ×ÇÇÇÇÇÊÇǞǙÇÇ*0*0*0*Ò¦°¦™™°°¨…œÇ™™™™œ™™†™†™™™†™†™††™†™†™††œ†††††††††+&&&&&&+KK³KKK³KKK³KKK³KKKTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTXTTTTTXTTTXTTTXTTXTXTTXTTXTXTTXTXTXTXTXTXTXTXXTXTÓ×ýüýúýúýüüýüüüüúýþúóúóóúóóúóóò¬Ž?!!  !!!!!!!! !!!  !!!!!!!!!! !!!! !!!!!!!!!!!!! !!!!!!!!@ñÿÿÿÿÿÿÿÿÿñ@!!!!!!!!!!! !!!!!!!!!!!!!!!!!! !!!  !!!‚÷ÿÿÿÿÿÿÿÿá@!!!!!!!!!!!!!!!!!!!_ÿÿÿÿÿÿÿÿÿÏ!!![ñÿÿÿÿÿÿÿÿÌ; !!!  !!! BÅüÿÿÿÿÿÿÿÿÿÿÿÿñ#!!Îÿÿÿÿÿÿÿÿç@;Ñÿÿÿÿÿÿÿÿÿÿÿÿÿý� !!‚þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ; !!! !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóx ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ ! p¢éýýýýýýýýýýýÿýüýüüýýýýýýüýúýúæÓX^X^X^X^X^X^X^X^X^X^X^XXXXX^X^X^XXX^XX^X^X^X^XXXX^XXX^X^XXX^X^XXˆ½ˆ‰‰ˆ‰‰ˆˆ½½ˆˆ½ˆ½ˆ‰½ˆˆˆˆ½ˆ½ˆˆˆ½ˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSSˆˆˆˆˆˆ‰ˆˆˆˆSSˆˆˆˆSˆˆˆSˆˆˆSSˆˆSˆˆˆˆˆˆSˆˆˆˆSSSSSSˆˆˆˆˆNˆˆSSˆˆSSˆˆˆSˆˆSSSˆˆSˆˆSˆˆSSˆˆNSSNSSSSSNˆSSNˆSNSSSNˆˆNSSSSSSSˆˆSˆNSSˆSNSNNNNNSSNNNSˆNNSNNSSNNSNSSNNˆNNSNNNNSSˆNNNNNSNNNNNNNNNNNSNNNNNˆNNNSNSNˆNNNNNˆNSNNSNNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSNSNNNNNNNNLNLLNNNNNNNNNNNLNNNNNLNNNLNNNLNNNNNNNNNLNNNNNLNLNLNNNNNNLLNNLNNNLLNNNNNLLLLNNLNLNNLNNNLLLNLNL\hÄÁKJKKKJ·J·J·J·J·JKJKJ·JKKKWKKJ·KJKKWKKKJKKWKJ·JJ·JJJWJJJWJJKWKJKJKKJ·JJJJJJJKJKJWKJKJKJKJKJKJKJKJKJJKJJKJJKJJJJJKJJHKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJHJJHJJHJHJHHGJGHGGGFGFFFFFFEKKKKKKKKKKKKKKKKKKK+30000+üüüüþþþþúúóóóóóúóúóóóóóóóðóòóóóóóóóóóóóóóóóóðòñð*444441òðòðòððöööëöëëëêëëêëêêêââàâßßßÞàâßàÞàßâßàÞàÞßàâÞàÞÞ×Þ×133*33+Þ××ÞÊ×É×××ÉÊ×ÉÊ×É×ÉÊ×É×ÇÊ×ÇÉÇמÇ×ǞמÇ×ǞǞ×ÇÇÇÇÇÇÇÇž*000+01œ¦°Çœ™¦¦°™™™™œ–™†™†™™›™œœ™†œ††œ††œ††††††††††††‚†&&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFGFFFFGGGGGGGGHGHHGHGHGJGJHHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓúýüýüüüüúüûúüüüüÿüóóúóóúóóúóò¬Ž? !   !!!!!!!!!!!!!!!!  !!!!!!!!! !!!!! !!!!!!!!!!! !!!!!!!!!!!!…üÿÿÿÿÿÿÿÿÿ„!$!!!!!! !!!!!!!!! !!!!!!! !!!!! !!!!!!!!!!!!!!ƒ÷ÿÿÿÿÿÿÿÿÎ@!!!!!!!!!  !!!!!!!!!!!!!!Yÿÿÿÿÿÿÿÿÿá !!_ñÿÿÿÿÿÿÿÿÌ@!  !!  9_áÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_!;ÎÿÿÿÿÿÿÿÿçY‚óÿÿÿÿÿÿÿÿÿÿÿÿÎ;�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó�ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! ! 9qšíýýýýýýýýýýýÿþýüýûüüüüüüýüýüýàÖJ·KK·JKKKKKKKKKKKKJKKKK·J·JKKKKKK·J·J·KKKKKKKKK·K·K·KKKKK·KKKKKK½‰½½‰‰‰‰½‰½‰‰ˆˆ½‰½ˆ½ˆˆ½ˆ‰‰½ˆ½½ˆ½ˆˆ½ˆ½ˆˆˆˆˆˆˆ½ˆˆˆ½ˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆ½ˆ½ˆˆˆˆˆˆSˆˆSˆSˆˆSˆˆˆˆˆˆˆSˆˆˆSˆˆˆˆˆˆˆSˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆˆSˆˆSˆˆˆˆSSˆˆˆSˆSSˆNˆˆˆSˆˆˆˆSˆˆˆSSSNSNˆNˆˆNˆˆSNSSNˆSˆSNˆˆSSNSSSˆˆˆNSSSNˆNNˆNNSSNSNˆˆSNˆSNNSNNˆNNSNSNNNSNˆNSSˆSNSSSSˆSNNNNNSNSNSˆSNNˆNSSNˆNNNNˆNNNNNNSNNSNSSNNNSNNNNNNNNNNNNNSNNNNNNSSNNNNNNNNNNNSNNNNNLNNNNLNNNNLLNNNNSNLNNNLNNNSNNNLNNLNNNNNNNNNNNNNNLLNNNLNNNSNLNNLNNNNLNNNNLNLNNLNNNNNNNLLNNLNLL,L,LMcÁK·KKJ·JKJKKJ·JKKJ·J·J·J·JKKJ·JKKKKKKJ·J·JKKJ·JKJKKJKKKJ·JKJKJJKJWKJJKJKH·JKJKJJKHKJJJJJKJJJJJWJJJKJJKJJJJJWKJKWJJJJKJJKJKJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJHJGHGHGGGGFFGFFFFFKKKKKKKKKKKKKKKKKKK+033+0*üüüóþþüüüóóóóóóóóóóóóóóóóóóóóóðóóóóóóóóóóóóñóðóó13444Q*òððóðóðöëëëëìëëëëèëêêêëêêßßßßßàÞàÞàÞØßàÞàÞØàßßßàÞàØ××Þ*33*33*Ø×Þ×××××Þ××××××××××××××ÌÇ××Ç××Ç×ÇÇÇÇÇ×ÇÇÇÇÇÇÇÇÇÇÇÇÇÇœ*0*03(*™­¦¦–œ™°¦¦™†œ™™†œ†œ†œœœ††††œ††††††††††††††††r††pM&&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFFFGFGFGGGHGGHGJGHGJHHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýüüüüüüýüýüýýúýüþúóúóóúóóúóóò¬}?!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!Îÿÿÿÿÿÿÿÿÿò;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   !!!!…úÿÿÿÿÿÿÿÿÌ@!!!!!!  !!!!!!!!!!!!!!!!!!Zþÿÿÿÿÿÿÿÿç=!!!!_ñÿÿÿÿÿÿÿÿÌ@ ! !!!!!YÆüÿÿÿÿÿÿÿÿÿÿÿÿÿü‚!!@Îÿÿÿÿÿÿÿÿð@! Îÿÿÿÿÿÿÿÿÿÿÿü_    �ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ    áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      !=qªéýýýýýýýýýýþÿýüýüüýýýûýüüýüýúæÓKJJKKKKKJ·J·J·JKKK·J·JKJKK·KKKK·J·KKKKKKK·K·K·KKKKKKKK·K·KKK·K·K‰½½½½ˆ½½ˆ½ˆ½½ˆˆ‰ˆˆ½ˆˆˆ½ˆ½ˆ½ˆˆ½½ˆ½ˆ½ˆ½ˆˆˆˆˆ‰ˆˆ½ˆˆˆˆˆˆˆˆˆ½ˆˆˆ½½ˆˆˆˆˆˆˆ½ˆˆˆˆˆSˆˆˆˆˆˆˆˆSˆˆˆ½ˆˆ½SˆˆˆˆˆˆˆˆˆˆˆSSSSˆˆˆˆˆˆSˆˆˆˆˆˆˆSSSˆˆˆˆˆˆˆˆSˆˆˆˆˆSˆˆSNˆSSˆSSNˆSSˆˆSˆˆˆˆSˆˆˆˆSSSˆNSSNˆˆSˆNSSNˆˆˆˆNSˆˆSSSSSNˆˆˆˆNSNSNSNSNSNSNNNSˆˆˆˆNNˆˆNNˆSSSNSNNNNNSNSSˆNNˆSˆSNNNNNSSSˆNˆˆSNNSSSNNSNNNSNNSNNNˆNNˆNNSSˆNNˆNSSNNNNNNNNSNNNNNNNNNSNNNˆNNNNNNNSSNNNNNNNNNNNLNLNNNˆNSNNLNNNNNNNNNNNLLNLNNLNNNLNSNNNNLNLLNNNNNNNNNNNNNNLNNLLNLLNLLLNNNNNLNNNNNNNNNNLLNLLNLcKKJ·J·J·J·JKKKKKJ·JKJKJ·J·J·JKKWKKJ·JKJ·J·JKJ·J·J·KJ·JKK·J·KJ·KKKKJ·J·KJKKJK·J·KKJKJ·JKJ·JKJKJKJKJKJWKJKJKJJKJKJKJKJKJJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHGHGGGFGFFFFFEKKKKK³KKK³KKKKKKKKK+00400+üþüþþþþþüüüüüüüüóüüüüüüóóüóóüüüóóóóüüüóüüóüóóóúó*444421óúóúóóúöëöëëëõëëëëëëêìêëêëêêêããêãêêêêêêêêêêêêêêêêÝëÝãÝ*33*301ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݰݰÝݰÝݰݰݰݰݰ°Ý°Ý°°°°°°°°®*000+0*°°°°°°°°°¦°°¦°¦°¦°¦°¦°¦°¦¦¦¨¦¦¦¦¦¨¦¦¨¦¨¦¦¨¦¦¦¦¦¦+&&&&&&+³KKKKKKKKKKK³KKK³KEFFFFFGFFFGFGGGGGGHGJGHGJGJHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓüýüüüýúýúýúýúüüüÿü÷óúóóúóóúóò¬s?! !!!! !! !!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !Zóÿÿÿÿÿÿÿÿÿ–!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!! !!!! !!!–üÿÿÿÿÿÿÿÿÌ@!!!!!!!!!!!!!!!!!!!!! !!!!!Züÿÿÿÿÿÿÿÿá!!!!!!_ñÿÿÿÿÿÿÿÿÑB!!!!!!!!!!  !@…óÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ!;Îÿÿÿÿÿÿÿÿç;_óÿÿÿÿÿÿÿÿÿÿÈ! xýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   7p¥íýýýýýýýýýýýÿþýüýýýúýüýüýüýüýàÓ·K·J·KJ·K·KKK·K·J·JK·K·K·KK·K·KKKK·K·K·KKKKKKK·K·K··KKKKK·KKKKKK½½½½ˆ½½½ˆ½ˆ½ˆˆ½‰½½ˆ½ˆˆ½½ˆ½ˆ½ˆ½½½ˆ½½½½ˆˆˆ½½ˆˆˆˆ½‰ˆˆˆˆˆˆˆ½ˆˆ½‰ˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ½ˆ½ˆ‰SS‰Sˆˆ½ˆˆˆˆˆSSSˆˆSˆˆˆˆSˆˆˆˆSSˆSˆˆˆˆˆˆˆˆˆˆSˆˆˆNˆˆˆSSSˆˆˆˆˆNˆˆˆˆˆˆˆSˆˆˆSˆˆˆˆSNSˆˆNˆSˆˆˆNSNSˆˆNˆNˆˆˆNˆSSSSˆˆˆˆNSNSNNSSNNSNNNSˆˆSˆSˆNNˆNNˆˆˆSˆNNNNNNSNNˆNSNNˆˆNNNˆNSSSNSNSSSSNSˆNNNSSNNNNSNNSNNSNSSNSSNSSNNSSSNNNSSNNNNSSNNNNNSNSNNˆNNSNNNNNSNNNNNNNNNNNNNNNNNNSNNSNNNNNNNSSNNNLLNNNNLNNNNLNNNNLNNLNNNNNNNNNNLNNNLNNNLLNLNNNNLNNNLNNNNNNNNNNNNNLNNNLNLM·KKKKKKKKKKKJKWKKKKK·J·JKKKJKJ·JKJ·J·J·JKJ·J·HKKJKJJ·H·JJJKJJ·HJ·H·JJJJ·JKWKJJJJJJWJKJKJJJJJKJJKJJJKJJJKJJKJJJJJJJJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJJHJHHHHGJGGGGGGFFFGFFFFKKKKKKKKKKKKKKKKKKK+03000*üüþþþþþþüþüüüüüüüüüüóüüóüüüüüüüóüóüüüüóóóóóóüóúó1P‡44Q*óúóúóüóöööëõëõìëëëêõêëêõêìòòóóóóóóðóðóððóðóðððóððòððòð103*331ñðððððððððððððððððððððÑððïÑðïÑðÑðÑïÑÑðÑðÑݰïÑáÑáÑáÑÑï*03+0**ÑÚ­ØÑÑÑÑÔ°¦ÞÑÐÑÍÑÑÑÐÑÍÑÍÐÍÐÍÍÍÐÍÐÍÎÍÍÍÎÍÍÍÎÐÎÍËÍ+&&&&&&+KKKKKKKKKKKKKKKKKKEEFFFFFFGFGFGGGGGGHGHGJGHGJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýúýúýüüüýúýüüýúýþúó÷óóúóóúóóò¬s? !!!  !!!!!! !!! !!!! !! !!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!›üÿÿÿÿÿÿÿÿúZ! !!!!!!!!!!!!!!!!$!!!!!! !!!!!!!!!!!! ! !! !!!…úÿÿÿÿÿÿÿÿÎ@!! ! !!!!!!!!!!!!!  !! !Zÿÿÿÿÿÿÿÿÿá! _ñÿÿÿÿÿÿÿÿáZ!!!!_áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó–@Îÿÿÿÿÿÿÿÿç@!!Zñÿÿÿÿÿÿÿÿÿÿà ‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! !!  sªíýýýýýýýýýýþÿýüýüüüýýýúýúýüýúæÓKKJ·JKKKKKJ·JKKJ·J·J·J·J·J·J·J·K·KKKKKKKK·K·K·KKKKKKK·KK·KKK·KK·‰‰½½½½½ˆ½½ˆ½ˆˆ½ˆ½‰ˆ½ˆ‰½ˆ½‰½ˆ½ˆ½½ˆˆˆ½‰½½ˆˆ‰ˆˆˆ½ˆ½ˆˆˆ½½‰ˆ½ˆˆ½ˆˆˆˆˆˆ½‰½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆSSˆˆ½ˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆSˆˆˆˆˆˆSˆˆˆSSSˆˆˆSSˆˆSˆˆˆˆSˆˆˆˆˆSNˆˆˆˆˆNSˆSSˆˆSˆNSˆˆˆSˆˆˆˆˆSˆSSNˆˆˆSNˆSNˆSSSNSSSSSSˆSSSˆˆˆNNˆˆNSSSSˆSSNSNSˆNSSNNˆNSSNSNNNˆNSNSSˆNNˆSNSSNNSNNNNNNSNNNNNSNSNNNNˆNSNNSˆNˆNNNSNNˆNSNNNNNSNSNNˆNNNSNNSNSNNSNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSNLNNNNNNNNNNLLNNNNNLNNNNNNNLNNNNSLLNNNNN,NNLLNNKWKJKKWKKKJ·KKKKKKJKJKKWKJ·J·J·KKKKJKKJ·J·JKKKKKKJ·JKKJ·J·J·JKKJKKJ·KKJKJJKH·JJ·JKJJJJWJKJKJJJJJKJKJJKJJJJJKJKJKJKJKJKJJJJJJJJJJJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHHGHGGGGFGFFFFFDKKKKKKKKKKKKKKKKKKK+3*030+þþþüþþüþüüþóüüüüóüüüüóüüüüþüüüüüóüüüüüüüüüþóóúóú1444431óóóóóóóööööõëöëõêõêëêëëëëëëëõòõòòñõèòñóóòòõèòëèñëñèððô133*331ââçððñáèâèâêâèâáððèâßâèÞèßâßèðïâßèßàßßßßè°ÝßßÝßßßßßßÑ*000+0*Ø­°Ý×ÑÑר°¦°ÞØÞØÞÞÑÞÞØÌØ×××ÉØÌÞÎÞÉ×××É×××Ì×ÉÍÍ×Ç+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFFGFGGGGHGHGHGJGHJGJHHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýüýüüýúýüüýúýüüüÿü÷óúóóúóóú÷ò¬s>!!!! !!!!!!!!!!!!!!!! ! !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!$ !!!!! !!!!!!ÎÿÿÿÿÿÿÿÿÿÌ@!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!  !!!!!!!!! !!!! !!!!!!‚÷ÿÿÿÿÿÿÿÿá@! !!!!!!!!!!!!!! !!!!!!_ÿÿÿÿÿÿÿÿÿá!!!_ñÿÿÿÿÿÿÿÿñ_!!!!! !!! @Âüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ�!@Îÿÿÿÿÿÿÿÿð;!Ëÿÿÿÿÿÿÿÿÿÿÿü_ _ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ;   áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !q¥íýýýýýýýýýýýÿþýüýýýúüýýýýúýüýàÖKKKJ·J·J·J·J·J·KJ·KKKKKKKK·KKKKKK·K·K·K·KKKKKK·K·K·KK·KKK·KK·KKK‰‰½½‰½‰‰½‰ˆ½ˆ½½chh¹µµµµµSµˆ½ˆ½ˆ½‰ˆ½‰½½ˆ½ˆˆ½½ˆ½ˆ½ˆˆ½ˆˆˆ½ˆ½ˆ½ˆˆ½½ˆ½ˆ½ˆˆˆˆˆ½ˆ‰ˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆSSˆˆˆSˆˆSˆSˆˆSˆˆSˆˆˆˆˆSSˆˆSSSˆˆSSˆSˆˆˆSSˆˆSSˆˆˆˆˆˆˆˆSSˆˆˆNˆˆˆˆSNSˆSNSˆSNSSˆˆSNSˆNˆˆSNNNˆˆˆSNNNˆSNSNNSSNSSNSNNˆSNNSSNSNNˆNNNSNˆSSNNNˆNNNSNSNNNNSNNSNNˆSNNNSNNSNSNNˆNSNNSNSSNNSNNSNNˆNNNSNSNNSNNNSSNNNNNSNNNNˆNNNNNSNNNLNNNSNLNNNNNNLNNNNNNNNNNNNNNNNNNNNNLLNNNNNNLNLNLLNNLNNLNNLNLNNNNNNLNNNLNKKKK·JKKJKWKJ·JKKWKK·J·JKKKJ·JKJKKWKKKKKKJ·J·JKWKKKKJ·J·JKKJ·JKK·J·JKJ·J·JKK·JK·JKK·J·KKJ·JKJ·JKJWJKJKJJ·JKJKJJJKJKJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHGJGGGGFGFFFFFFK³KKKKKKKKKKK³KKK³K+03003+þþüüþüþüþüüþüþüüüüüüüüüüüüüüüüüóüüüóüüüóüóóóóüóó1344441óóóóóóóööööõëõëìëëêëëëëëëëóëëñëëëòêëèëðóñëçëêèëêèêòðóá133*33*êèèðòçêèêßêàêêßèèðèßêßÝßÝßÝßßÑÑèØØÝØØØØØÚݰßÝ°ØØØØØ×Ñ*03+0+*Ô°°­ßÑÑØ×­°°¦Ø­×Ø×ÍÍר­Ò­­­­žÔÌÍÍ×ÔÇ­­ÔÇ­­ÇÌÍÍǦ+&&&&&&+K³KKK³KKKKK³KKKKK³DFFFFFFFGFGGGGGGHGHGJGHGJHHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×üýüýúýüüüýúýúýúýþúóó÷÷÷óóúóóò¬s?! !!!  !!! !!! !!!!!!!!!!!!!!!!!!!! !! ! !!!! !!!!!!!!!!!!!!! !!!@ñÿÿÿÿÿÿÿÿÿx!!!!!!!!!!!!!! !!!!!!!!!!!!!! !!!!!!!! ! !!!!!  !!!! !!!!!!xóÿÿÿÿÿÿÿÿð@!!!!!!!!!!!!!!! !!!!!  !‚ÿÿÿÿÿÿÿÿÿÎ  !!_ñÿÿÿÿÿÿÿÿóx!!!!!!! !!! _ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÎY! ;Îÿÿÿÿÿÿÿÿç@„üÿÿÿÿÿÿÿÿÿÿÿÿáY  dÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!   !q¥íýýýýýýýýýýþÿýüýüüýýýüüüýýüýüàÓKK·K·K·K·K·JK·KKK·KK·K·K·KKK·K·K·KKKKKKKKK·K·KKKKKKK·KK··KK·K·K·½½½½¿½‰½‰‰¿‰½½ccccc¸¼¼¼¼¼¼¼¼»»»¶ººˆ½ˆ½½ˆˆˆ½ˆ½ˆˆ‰‰‰‰½‰½ˆˆ½ˆ½ˆˆˆ½ˆˆ‰‰ˆˆ½ˆ½ˆˆˆ½ˆ½ˆ½ˆ‰ˆˆˆ½ˆ½ˆˆ‰ˆˆ‰ˆˆˆˆˆˆˆˆSˆˆˆˆˆˆ‰ˆˆˆˆSˆˆˆˆˆˆˆˆ½ˆS½ˆˆˆˆˆ½ˆˆˆSˆˆˆˆˆˆˆˆSˆˆˆˆSˆˆˆˆˆSSSˆˆSˆˆˆˆˆSSSˆˆˆSSˆˆˆˆˆˆSSˆSˆˆSSˆˆSSˆNˆˆSNˆSˆˆSˆˆSˆˆNˆSSˆˆˆSSSˆˆˆSˆNˆSSSSNSSSˆNNSSSNSNSSSSSSSSˆˆNˆˆNSSSˆSSSNNˆSNSNˆSNSNSSNNSNSSNNNSSNSSNSSNNNNˆNNNNSNNSNSNNNNSNNNˆNNSNSNNNNNSNSNˆNNNNSNNSNNNNNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNSNSNSNNNNNNSSNNNNNNNNNNNNNNNNNLNNNNSLLNNNLNNNNNLNLNNNLJ·KKJ·J·KJ·KKJ·JKKKJKKJ·J·JKJ·J·JKKKKJ·JKKJKKKKKWKJ·JKJ·JKKKKKJKJKH·KH·JH·JJJJKJKJKJJJJJKJWKJJKJKJKJJKJJJJJJJJKJJJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJHJJJJJHJJHJHJGJGHGGGGFGFGFFFFFKKKKKKKKKKKKKKKKKKK+04030+üüþþüþþþüþþüþþüüüüóüüüüüþüüüóüüüóüüüüüüüóóüüóóüú1‡44‡31úóóóóóóöìöëööëëöêõêìëëìëëëóòóóðóóðóððóóðóðóððóðóðóðððò*33*301ðððððóððððððððððððððððððððïððððÑðÑïÑðïáÑÑ­ÝðÑØèÑðÑïïç*00300*ÑØ°ØÑÑÑÑÐÑ­¦°ÞÑÐÑÐÐÑÑÑÑÑÑÑÑÑÑÍÍÑÍÍÍÍÐÍÎÍÐÍÍÐÍÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFGFGFFGFGGGGGGHGGHGHGHGJGHHJHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓÓýüýüüüüýüüüüüüüüÿüóúóóóú÷óúóò¬}?!!!!! ! !!!!!!!!  !!!!!!!! !!! !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!xóÿÿÿÿÿÿÿÿ÷Y!!!!!!!!!!!!!!!!!!!!!!!!!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!_ñÿÿÿÿÿÿÿÿ÷Z !!!!!! !!!!!!!!!!!!!!!–ÿÿÿÿÿÿÿÿÿÉ  !_ñÿÿÿÿÿÿÿÿÿ–!! !!!!xòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ–!!!;Ìÿÿÿÿÿÿÿÿñ@YñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ#!  _ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÆ____xd_______�________________ÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ q¥íýýýýýýýýýýýÿþýüýýüüüýûýúýýüüæÖKKJKKJKJKKJ·JKKKKKKKKJ·JKK·KKKKKK·K·K·KK·KKKKKK·K·K·K·KKK·KKK·KK¿¿½½¿½½½½½‰½½ˆhcccch¼´´´´´´´¼¼¼¶¼´ºˆ½½‰‰‰‰‰½½ˆ½ˆ‰½ˆˆˆˆ½‰ˆ½ˆˆ½ˆ½½ˆˆ½ˆ½ˆ½ˆ½ˆˆˆˆ½½ˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆSSˆˆˆˆˆ½ˆˆˆˆ½N½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆSˆˆˆSSˆˆˆSˆˆˆˆˆˆˆˆˆˆSˆSˆˆˆNSSˆˆSˆˆSˆˆˆˆSSˆSˆˆˆˆˆSSSˆSˆˆˆSˆSˆSSˆˆSSNˆSSSSSNSSNNˆSˆNNˆˆˆSSSNSˆSˆˆSˆˆˆNˆˆNˆˆNSˆSSNSSNSSNˆSNSNNˆˆNSNNˆˆˆNNNSNNSNSNNSNSSNSNNNSNNNNNNSSSNNSSSNNSNNˆNSSNNNNNˆNSNNNNNNSNSNNNNNNNNNNNNLNNSNNNˆNNNNNLNNSNNNSNNNSNSNNNNNNNNNNNNNNNNNNLNSNNNNNNNLNNNNLNNNNNNNNNLNKJKKJ·JJKKKJKKKKKKWKKJ·JKJKK·JKKJ·JKKWKJ·J·J·JKKKKKKKKKKKJ·JJWKKKWKKJKJ·J·JKJ·JKWJJJJ·J·JKJKJKWJJJJKWJKJKJJJKWJJJKWKJKWJJJJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJJJJJJJJHJJHJHJHJHHJGHGGHGGFFFFFFDKKKKKKKKKKKKKKKKKKK+20003+þþþþþþþþþüþþüüüüüüüüüüüüüþüüüüüüüüüüüüüüüüóüüüóü134444*óúóüóóóëëööëëõëëëëëõëõëëëëóëóóóóóóóóóóðóóóóóóðóòóðóðóð103*331ñððòððððððððððððððððððððððððððððïÑððïÑðÑðݰïÑÝßðÑÑÑÑá*00*03*ÑÚ°ßÑÑÑÑÑÑѰ°¦ÑÑÐÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÑÍÑÍÑÍÐÍÐÍÍÍÍͧ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFGGGGGGHGHHGJGHHJGHJGJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýüýýúüüúýüüýúýýþúóó÷úóóó÷óóò¬}?!!!! !!!! !!!! !!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!! !!!!!!!!–üÿÿÿÿÿÿÿÿÎ@!!!! !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!  !!!!!!! !!!!!!@ñÿÿÿÿÿÿÿÿÿx!! !!!!!!!!!!!!!!!!!!!!@ÌÿÿÿÿÿÿÿÿüÂ!!! !!_ñÿÿÿÿÿÿÿÿÿÌ;!!! !! !!!!�óÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÎY! !@ÎÿÿÿÿÿÿÿÿçY@Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü�   _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!  !  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   !=qªéýýýýýýýýýýþÿýüýüüýýýüüýýüüýüàÓKKKK·J·K·J·KK·J·K·KKK·K·K·KKK·K·KKKKKKKK·KK·K··KKKKKK·J·KKKK·KK·¿½¿½½½½¿½½½‰½ŒccccccÁ¹»¹ºººº¼¼¼´´¼´¹ˆ½½½½‰½ˆ‰‰‰‰‰½½ˆ½‰½ˆ½ˆ½½‰½ˆ‰‰‰ˆˆ½ˆ½ˆˆ½ˆˆˆˆ½ˆˆˆˆ‰½½ˆˆ½ˆˆˆˆ‰‰ˆˆˆ½ˆˆˆˆˆˆˆˆ½½ˆˆ½ˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSˆˆˆˆˆSˆˆˆˆSˆˆˆˆˆSˆˆˆˆˆˆSSˆˆˆˆˆˆSˆˆˆˆˆSˆˆˆˆSˆˆˆNˆˆˆˆSˆNˆSSˆˆSNSSˆˆˆNNˆSSSˆˆˆˆSˆˆˆSSNSNˆˆˆˆˆSˆˆNSNNˆˆSˆNˆNSˆNˆˆSˆˆSSSˆNSSNNˆSNSNˆNNˆˆNSNNNˆNNSSˆˆNNSˆˆSNSNNNˆNSSNNSSSNNNSSSSNˆNSNNSNSSNNSNSNSNNNNSSNNNNNNNNˆNSNNSNNNNNNSNSNSSNSNNNNNSNNNNNNSNNNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSNNNNNNN·J·J·K·KJ·J·KJ·JKJ·J·KJ·KKKJKKK·J·JKKKKKKKJKKKJKKKKJKKWK·J·KKKKJKJ·J·JKKJ·J·JKJ·K·K·KJJ·JJ·JJJ·J·JJJJKJKJKJKJJ·JKJKJKJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJGJGHGGGFGFFFFFFFKKK³KKK³KKKKKKKKK³K+03*30+üþüþþüþüþüüþüóüüüüüüóüüüüüóüóüüüüüóüóüüüüüüóüúóó*4‡44P1úóóóóóóëëöëöëõêõêëìëëöêõêëóëòóóðóðððððóððððððððððððóðñ133*331ððððððððððððððððïððððïððÑðÑïÑðÑïáïÑïïÑïÑÑݰÑÑÝÑÑïÑÑÑÑ*30000*ÑÔÔØÑÑÑÑÏÐÑÞ¦°×ÑÍÑÍÑÍÍÍÍÍÍÍÍÍÑÍÍÑÍÍÑÍÍÍÍÍÍÍÍÍËͦ+&&&&&&+³KKKKK³KKKKKKK³KKKFFFFFFFFFFGFGGGGHGHGHGJGJHJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓüýúýüýýýüüüýúýüúÿü÷úóóúóúóúóò¬s? !!!!!! !! !! ! !!  !!! !!!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ìÿÿÿÿÿÿÿÿÿ–!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!áÿÿÿÿÿÿÿÿÿ–@!!!!!! !!! !!!!!!!!!!$!!!!!!Zñÿÿÿÿÿÿÿÿú‚!!!_ñÿÿÿÿÿÿÿÿÿñ_!!!!!!!!!!!!Zñÿÿÿÿÿÿÿÿÿÿÿÿÿüá‚!!!! !!!;Îÿÿÿÿÿÿÿÿð@ –üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðY_ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ!  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  9qªíýýýýýýýýýýýÿþýüýýüüüýýýüýýüýæÖK·KKJ·KKKK·KK·KKKK·KKKKKKK·KKKKKK·K·K·KKK·KKK·K·K·K·KK·K·K·K·K·K¿¿½½½½½‰ˆ½‰½½\ccccccÁÁÄÄÁÄÄÁÄÁÄÁÄÄ»¹½ˆ½½½‰½½ˆ½‰½½‰½½½‰½‰‰‰ˆ½ˆ½½ˆ½‰‰½½‰ˆ½ˆ½ˆˆ½ˆ½‰‰½ˆˆ‰ˆˆ½ˆ½ˆ½½ˆ½‰‰‰‰‰ˆˆˆˆˆˆ½ˆˆ½ˆ½ˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆ½ˆˆˆˆˆSSSˆSˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆSˆˆˆSˆSˆˆˆˆˆSˆˆˆSSSˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆNSNNˆˆˆSˆˆSˆSNNˆSNˆSNSˆSSˆSˆSSSˆNNNNSNˆSNNˆSNSNˆSSˆNNˆNNSNNSSSNNNSˆNSˆNNSNˆNˆˆNSSSˆNNNNSSNSNNSNˆNNNNSNNNNNSSSNNSSNNSSSˆSSSNˆSSSNNNNNNSSSSNSNNNNNNNSNNNSNNNNˆNNNNNNLNNLNNNNNNNNNNNSNNNNNNNLNNNSNNNNNNNNNNNKKKKKJKKKK·J·J·J·J·JKKJ·JKWKKKWKKKK·JKKKKWKKKWK·JWKK·JKJKJKJKJ·J·J·JKJ·JJ·JJ·J·JJJJJJ·JJ·JJJK·JJJKJ·JKJJJJJKJJJJJJJJJJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJHJGHGHGGGGGFFGFFFDKKKKKKKKKKKKKKKKKKK+20300*üþþþþþüþþþþüþüüüüóüüüüüüüüüüüüüóüüüóüóóüüüüüüóüó1P44‡41÷úóúóóóëëöëìëìëìëëëõëëìëëêóëòóóóóóóðóóðóóóðóóððóðóððóð133*33*ñóððððòððóðòðððððððððððððððððïððÑðÑïÑáïÑð­°ïÑÝßïÑÑáïÑ*0+03+*ÑÝ­ØÑÑÑÑÑÑÐѨ°°ÞÑÑÐÑÐÑÑÑÑÑÑÍÑÍÍÑÍÍÑÍÍÍÑÍÍÐÐÍÑÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFFGFFGFGGGGGGGHGHGHGJGJGHHJGJHJJHJHJHJJHJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×ýüýüýúýúýúýüüüüüÿ÷óóóúóóó÷óóò¬Ž?!!!!!!!!!!!!! !!!!!! !!!!!!!!!!!!! !!!!!!!!!!!!!  !!!!!!!! !$!!!!!áÿÿÿÿÿÿÿÿÿ]!!!!!!!!= !!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!Îÿÿÿÿÿÿÿÿÿß@!!!  !!!!!!! !!!!!!!!!!!!_þÿÿÿÿÿÿÿÿòZ! !!!!!_ñÿÿÿÿÿÿÿÿÿý–!!!!!!@áÿÿÿÿÿÿÿÿÿÿÿÿÿñ–!!;Îÿÿÿÿÿÿÿÿç@_ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË! !�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!  !  !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! !  ! !q¢éþýýýýýýýýýþÿýüýüüýýýüýúýúýýüàÓKKKK·J·J·JKK·JKK·KKK·K·K·KKK·K·K·KKKKKK·K·K·KKK·K·K·K·K·K·K·K·KK¿Q½½iˆ½‰½½½5½cccccccº¼¼¼¼º¼ºº»º»Á»ÁÁ‰½½½½½½½½½‰‰‰½½½‰½‰‰‰½ˆ½ˆˆ½ˆ½ˆ½ˆ½ˆ½ˆ‰ˆ½ˆˆˆˆ‰‰ˆˆ½½ˆ½ˆˆ½ˆˆ½ˆˆ½‰‰½ˆ½ˆˆˆˆˆ½ˆ½ˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆSˆˆˆˆˆ‰ˆˆ‰ˆˆˆ‰ˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆSˆSˆSSSSNSSˆSSˆˆNˆSSˆˆˆˆˆˆˆˆˆˆˆˆSSSSSˆˆˆˆSˆˆSSSˆNˆSNSˆSˆˆSSˆSSSSˆSSNNSNNNˆˆNNSNNSSNSSSSˆSNNˆNSSSˆNˆˆSSˆSˆSNNSˆˆˆNNSNSSNNNNSSNSNSNSSNNNNNNNNSNNˆNNSNNNNNˆNNˆSSSSSNNSNNˆNˆNNSSNNNNNSNNNNNNˆNNNNNNˆNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNSNNNNNNSNNKKKJ·KKWKJKJKKKKJK·JKKKKKKKJKJKJKKJKKWKJKKKJKKJKKKJKJ·J·J·J·KJ·JKKKKKJ·JKKKJKKJKJ·JKKJKJJ·JJKJJJ·JJJJJJ·JWJKJKJKJJKJKJJJJKJJJJJJKJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHJGJGHGGGFGFFFFFEKKKKKKKKKKKKKKKKKKK+03020+þþþþþþþþþþüüüþüüþüþüüüüüóüüüüüüüüüüüüüüóüüüüóüüú144‡431óóúóóó÷ëëöëëëëëõêöêõëõêëêëðëòóóóóóðóóðóóóóóóóóóóóðóððð*33*301ððòðððððððððððððððððððððððððððððïðïðïðÑïÑݰïïØâïÑïÑÑÑ*30000*ÑÔ°ØÑÑÑÐÐÑÏÐѰ¦°ÑÐÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÑÍÑÍÑÍÐÍÎÍÍÍÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFGFFFGFFGGGGGGGHGJGHGHGJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓüýüýüýüýüüüüüüüüÿüóú÷óúóúóúóò¬Ž?   !!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!! !!! !!!!!!!!!!!!!! ! !!!!!!!!!!!!!!@ñÿÿÿÿÿÿÿÿúY!!!!!!!!!!!!!!!!!!!!!!$!!!!!!! !!!!!!!!!!!! !!!!!$!!! !!!–üÿÿÿÿÿÿÿÿü]!!!!!!!!!!!!!!!!!! !!!!!!!!!!Âÿÿÿÿÿÿÿÿÿç!!!!!_ñÿÿÿÿÿÿÿÿÿÿÏB!!!!!!!ÂýÿÿÿÿÿÿÿÿÿÿÿúÈY!!9Îÿÿÿÿÿÿÿÿç@ !;Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý‚  ! �ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   pšíýýýýýýýýýýýÿþýüýýüüüýüýýýüüýàÔKKKJ·KKJK·KKK·KKK·KKKKKKKK·KKKKKKK·K·K·K·KKK·KKKKK·KKKK·K·KK·K·KˆÀ½¿ÀÀ¿½ˆ¿À¿½ˆƒcccccº¼¼¼¼¼¼¼¼¼¼¼¼¼¼º‰¿½½¿½‰½¿‰½‰½½½½½‰½½½½½½½ˆ½½‰‰½‰½½ˆ½ˆ½ˆ½ˆ½ˆ½‰‰½½‰‰‰ˆˆ½ˆ½½‰½‰½‰ˆ½½ˆˆ½ˆ‰ˆˆˆ½ˆ½ˆˆ½ˆ½Sˆˆˆ½ˆ‰½ˆˆˆ½ˆˆˆˆ½ˆSˆˆ½ˆˆˆˆˆ½ˆˆˆˆ‰ˆˆSˆˆ‰ˆˆSˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆSˆˆSˆˆˆˆSˆSˆNSSˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆSˆˆˆSˆˆNˆSNˆSˆSˆˆˆSSˆˆSSˆˆˆNNˆˆSSˆNˆˆNSSˆˆNSNSˆSNNNSSSNSˆˆˆNˆˆNSˆNNNSˆSNSSSSSSˆˆSNNˆNNSSSSNNNSNNNSSSNSSSNNSNNˆNSSSSSSSNˆSNSSSNSNNSNSNSNNSNNSNˆNSSSNNSSNNNSNNNNˆNNNNSSNNNSSNNNNNNNNNNNSLNSNSNSSNNNNKK·KK·J·KK·J·J·J·KJK·J·J·JK·K·K·J·J·J·KK·JKK·J·J·J·J·JKKJ·KJKKKJ·JKWKKKKKJ·J·J·J·JKJ·J·J·JKKJ·JKJJJ·JWKJKJKJKJKJJKJKJKJKJJKJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJGHGGGGGFGFGFFFFK³KKKKKKKKKKK³KKKKK+20304+þüþþþþüüþüþüþüüþþþüüüüóóüüüüóüüüóüóóóóóóüóüóüóúó14444‡*óóóóóóóëëöëëêõêõêõëöêëêëêêóêòóóóðððóðóðððóóððóðððòðóðó*33*331ñðððððððððððððððïððÑïÑðïðÑïÑÑðÑÑðÑÑÑáïÑïÑݰÑáØßÑÑÑÑÑÑ*00+3+*Ï­°­ÑÑÑÑÑÑÑÑÐÞ°°­ÐÐÐÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍͦ+&&&&&&+K³KKKKKKK³KKKKKKK³FFFFFFFGFGGGGGGHGHGJGHGJHHHJHHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýüýüýüýüýúýüýüüüÿóóóó÷óóó÷óóò¬Ž?!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!Zòÿÿÿÿÿÿÿÿð@!!$$!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!! !!!!!!!!!!!!!xóÿÿÿÿÿÿÿÿÿ–!!!!!!!!!!!!! !!!!!!!!!!!!YñÿÿÿÿÿÿÿÿÿÉ !!! !!_ñÿÿÿÿÿÿÿÿÿÿü–!!! !! !!Bòÿÿÿÿÿÿÿÿÿÿÿç…!!! !!!!@Îÿÿÿÿÿÿÿÿç@!!ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóZ!!!  _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!    áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ   ! !9q¥íýýýýýýýýýýÿþþüýüüýýýüýüýúýûüæÓK·J·KKK··KK·KKK·KKK·K·K·K·KKK·K·K·KK·KK·KK·K·K·····K·K·K·K··K·K·i¿½¿68½½½ÀŒ66½ˆ½Q½‡Œ¿½½½‰¿½‰‰‰Q‰‰‰‰½¿½½½¿½<½‰½½½½‰ˆ½ˆˆ½½‰‰‰½ˆˆ½½ˆˆˆ½‰‰½ˆ‰½ˆˆ‰½NGDD,,LS½ˆ½ˆˆˆ½ˆˆˆˆˆ‰ˆˆ½ˆˆ½½ˆˆS½ˆˆˆˆˆˆˆˆˆ½ˆ½ˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆSˆˆNˆˆSˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆSˆSˆˆˆˆˆSˆSˆˆˆSSNSˆˆˆSˆˆSSSˆˆSDLˆˆNSˆˆˆˆ<ˆˆˆˆSNˆˆNˆˆSˆˆˆˆˆˆSSˆˆˆNˆˆˆSSNˆNˆSSNˆˆˆSˆSˆNSNNSˆˆSSˆSˆNSˆˆSSNSNNˆNNˆˆNNˆˆˆSSSˆˆˆSNSNNˆˆˆNSNNNSSNNNNˆSNNˆNNNNˆ!ˆSNNNNˆNNNˆNˆSˆNNSSNN·J·KKKKJ·J·J·J·KJ·J·J·J·K·J·J·J·K·J·KK·J·KJ·J·KKJ·JKKJKKKKKKKKWKKKJKKKJKJ·J·J·J·KKJ·KKKKKKKKJ·J·JWKJJKJKWKJJKJJJJJKWKJJJJJJJJJJJJHKJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJHJJJHJHJJHJHJGJGHGGGGFGFGFFFFKKKKKKKKKKKKKKKKKKK+03030+üüþþüþþþþüþüþþüþþüüþüþüþþüüüüüüþüóüüóüüüüüüüóüó÷1‡4‡441üóóúóóúöëöëõëõëõëöêõìëìëëëóóóðóóóóðóóóðóðóððóóóóðóððóñ133*301ðððóððóððððóðððððððððððððððððððïðÑðÑðÑïÑïݰÑðØèÑÑïïáÑ*330+0*ÑݰØÑÑÑÑÑÐÐÑÐÐÑÑÐÑØ¦°ÞÑÐÑÑÑÑÑÑÑÑÍÑÍÍÍÑÍÐÍÍÍÐÐÍÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFGFFFFFGFGGGGGGHGHGJGHGJHGJGHHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓÓýüýýüýüýüýüýúýúüÿüóúóúóóúóóóò¬s?!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Èýÿÿÿÿÿÿÿÿx!!!!!!$!!$!!!!!!!!!!!!!$!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!ƒúÿÿÿÿÿÿÿÿÿÿñx=!!!!!!!!! !!!!!!=!!=ÆýÿÿÿÿÿÿÿÿÿÿÏ@!!! !!!_ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ_!!!!! !Æÿÿÿÿÿÿÿÿÿ@!!!!Îÿÿÿÿÿÿÿò…!;Îÿÿÿÿÿÿÿÿð@ ! !!–÷ÿÿÿÿÿÿÿÿÿýÂ;Zñÿÿÿÿÿÿÿÿÿÿç@!  _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ;  !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    q¥íýýýýýýýýþýýÿýýýýüýýüýüýüýýüüæÕK·KKKKKKK·KKK·KKK·K·KKKKKKKKKKKKKKKKKKKK·KK·KK·K·K³K·KK³K³KK³K³K6666iii6iiiii6ii66iii6ii6666666i6ii6ii6666i6ii6i6iii666i6666‡66ii6i6i6665i<нii6<½À¿¿¿À6¿Š¿½¿½½½66½<‰½ŠP¿‰‰½½½¿¿½¿¿<½½‰‰‰‰ˆ½½‰½‰ˆ½½‰‰‰‰<ˆ½‰½ˆ½ˆˆ‰ˆIFDDD,, ‰‰‰‰‰‰‰‰‡ˆ½ˆˆˆˆ‰ˆ‰ˆ½‰ˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ½Sˆˆˆ½ˆˆˆ<ˆˆˆˆˆˆSˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSSˆˆˆˆˆˆSˆˆˆˆSˆˆˆˆˆˆˆˆSSSˆSˆˆDNˆN6ˆNˆˆˆ3ˆˆˆSˆˆˆˆˆSNSNˆSˆSˆˆSSˆNˆSˆˆˆˆˆˆSSSˆSSSSSSˆˆˆNSSˆˆˆNˆˆNSNˆNSNNˆNNSNˆS8ˆˆˆNˆSSˆSNNNNNNˆSSNSNSSˆNSNNN<ˆSNˆNNSN6iSˆ6NˆNNNNLSNNSSSNSSSNKKK·J·K·K·J·J·K·KK·J·K·J·J·K·J·J·JKJ·J·J·KKK·KKJ·J·J·KKKKJ·JKKKKKJ·J·JK·KKKJKJKJKJ·JKJ·JKKWKKJJKJKKKKKJ·HKJJ·HJ·JJKJJJKJKJKJJKJ·JKJJJKJJJJJKJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJHJHJHJHHJGHGGHGGFFFFGFEEKKKKKKKKKKKKKKKKKKK+20204+üüþþþþþþþüþüüþþþþþüþüþüþüþüüóüüüüüüþüüüüüüüüüóüü13‡4‡4*óúóúóüóööööõöõëöìõëöëõëëëëóòóóóóðóóóðóóðóðóóóóóóóóððóó134*331ñðóððòððððððððððóððððððððððððððððïððððððïÝÝðïÝÑÑïÑðÑï*03003*Ñ­°ØÑÑÑÑÑÑÑÑÑÏÑÑÑÑÑ­°¦ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÍÑÍÐÍÍÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFGGGGHGHGHGHGHHHGJHJHJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýüüýüýüýüýúýüýýÿúóóó÷óúóúóúò¬s> !!!!  ! !! !!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Æÿÿÿÿÿÿÿÿÿz!!!!$!!!!!$!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!@Îÿÿÿÿÿÿÿÿÿÿÿçx!!!!!!!!!!!!!!!!!!!!$!!!!@Æüÿÿÿÿÿÿÿÿÿÿ÷‚!! !!! !!_òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç…@!!!!!ÈÿÿÿÿÿÿÿÿÿZ !!÷ÿÿÿÿÿÿÿÿÈ!@Îÿÿÿÿÿÿÿÿç@ ![ðÿÿÿÿÿÿÿÿÿÿÎ;‚üÿÿÿÿÿÿÿÿÿÿÈ!!‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! !q¥íýýýýýþýýýþþÿýýýýýüüýüýüýüüýýàÓKKK·K·K·KKKK·KKK··JKK··KK···K·K·K·KK·K·K·K·K··K·KKK·K³K·K·K³K·K³6i6666i6i6ii6ii6i6iii6iiii6ii6i66ii6ii6i6i6i66i66i6ii66i6i6i6i6i6i6À!!  !!!! !!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!$!!!!!!!!!$!!!!!!!!!!!!!Æüÿÿÿÿÿÿÿÿ‚!!!!!$!!!!!!$!!=$!!!!!!!!!!!!!!!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!_ñÿÿÿÿÿÿÿÿÿÿÿñ‚!!!!!!!!!!$!!=!!!!!!!!=@ÆüÿÿÿÿÿÿÿÿÿÿþÈ!!!!!!!!!!_ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌ‚@!!! !!!–üÿÿÿÿÿÿÿÿÆ!!!!YÿÿÿÿÿÿÿÿÿÈ!! !@Îÿÿÿÿÿÿÿÿð@  ;Ëÿÿÿÿÿÿÿÿÿÿñ[!  Èýÿÿÿÿÿÿÿÿÿü‚  xþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ; ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! =qªíýýþýýýýþþýýÿýýýýýýýüýüýüýýüüæÔK·KKKKKKK·KKK·K·KK···K···K·K···K·K···³·K··K³·K³³³³³³³³·K³³·K³³³³6iii666ii666ii6ii6666iii6i6iii6ii6666iii66i6ii66i6iiii66i6ii666i6i666ii666ii66i666ii66Ài‡Àiiiii6i6i666½66¿Q6666¿¿56iii8666¿‡¿¿¿½¿¿¿666‰<6½ˆ‡665ˆŠ½i‰‰6EDDDDF½,,,,, ,NQi‰65‰ˆ½ˆ‰ˆ‰ˆˆ‰½ˆ‰‰‰ˆˆˆˆ‰ˆ½‰ˆˆˆ8‡‰ˆˆˆˆ½ˆ½ˆ½ˆˆˆˆˆˆˆ½ˆ½ˆˆˆˆiˆ‰ˆˆˆO‰‰ˆˆ½ˆˆ<ˆˆˆˆˆˆˆSˆˆˆ½ˆˆˆˆˆˆˆˆ5ˆSS2ˆNˆSˆˆˆˆˆˆˆˆDDLˆNNˆˆˆˆˆˆˆˆˆˆˆSˆˆˆSˆNˆ66ˆ6ˆˆˆˆSˆNˆˆˆˆˆ6ˆNˆˆi2ˆˆˆ!‰ˆN<ˆNˆNˆˆˆˆˆˆˆNˆiˆSˆˆNiˆNˆˆˆSˆSNˆSˆˆˆ54NˆˆˆQNiSˆ6SN‡NˆN6NN2ˆNNˆ<ˆ63$6ˆˆNˆOˆii666i666i6Ši6‡666iii6666i66i6iiii66¿6i½66666¿¿i6‰6ˆiNˆˆ<ˆˆSNˆˆN666ˆj8ˆ6iNˆˆ6ˆ66ˆSSˆˆˆNˆˆˆNiNN6ˆˆNSˆ5iˆSˆˆ=825SS!!!! !!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!$!!=$!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!$!!!!!!$$$–üÿÿÿÿÿÿÿÿ–=!!!!!!!!!=!!!!!!$!!!!!=$!!!!==!!!!!!!!!!!!!!!!!!!!!!$!!!!!!$!$!$!!!!!!!@ÌýÿÿÿÿÿÿÿÿÿÿÿüÌ_!!!!!$!!!!!!!!!!@–çÿÿÿÿÿÿÿÿÿÿÿÿó‚!!!!!!!!!!!xñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñΖ@!!!@óÿÿÿÿÿÿÿÿÿÏY!!!!_üÿÿÿÿÿÿÿÿý‚!!!!@Îÿÿÿÿÿÿÿÿð@!!_ñÿÿÿÿÿÿÿÿÿÿÈ;_óÿÿÿÿÿÿÿÿÿÿË! _þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ# áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  !p¥íýþýýýýýþþýýÿýýýýýýýüýüýüýýüýàÖKK·KKKKKK·KK··K··KK·KK·KK·K·K·K·K·K·KKK·K³·³K³K³K·K³KK³³³³³³³K³³iii6i66i66ii66i6i6iiiii6iii6666i6ii66iii6iii666i66ii66ii6i66i66i6iii66iiii6ii6ii6iiiiiii66iiiii6ii6iiii66iii6i6ii8iii6ii6ii6666i66666866‡‰j¿6ˆ66ˆˆˆ28ii<<666ˆˆˆˆˆˆˆ0iiiNˆ66ˆˆˆ666ˆ6655Sˆˆ6ˆˆ5Nˆii56ˆNˆ66ˆˆSS666iˆˆ>ˆˆ6iN<<5i6Q6ˆ<ˆ5i66ˆNˆi66i<6i>66ˆi<6i6i666i66i6iiiˆ6QNiK··J·K···K·K·K·J···J·K·J·K·J·K·J·KK··K··KKK·K·KKKKK·KK·J·KK·K·K·KK·J·K·KK·K·JKK·J·KKKJ·JKKJ·J·JKKJ·JKK·J·J·JKKWKKJ·JJJKJKJWKJKJKWKJKJJJJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHJGHGGGGGFGFFFFFDK³KKK³KKKKK³KKKKKKK+22202+üüüüþþüüþþüüóüüüüüþüüüüüüüüüüüóüóüüóüþüóóüóóóóóú144‡‡41óúóóóóúôöööööõöõöõöõöõìëëëóëóóóóðóóóðððððóððððóðððððóð10Q*331ñðððððððððððððððððððïððïðïðÑðÑÑÑÑïÑðÑÑðÑïݰÑðÝÑÑïÑáÑï*00+00*ÑÚ°ØÑÑÑÑÑÑÑÑÑÑÍÑÍÑÍÍÑ̦°­ÐÍÍÍÍÍÍÍÍÍÍÑÍÐÎÐÐÐÍÍÍͦ+&&&&&&+K³KKKKKKKKKKKKKKK³DFFFFFFFFGGGGGGHGHGJGJGJHJGHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýüüýüýüüýüýüýüýýþúóóóúóó÷ó÷úò¬Ž?!!!!!!!!!!!!! !!!!!!!!  !!!!!!!!!!!! !!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!…üÿÿÿÿÿÿÿÿË@!!!!!!!$!!!!$!!!!!!$!!!!!!!!$!!$!!$!!=!!!$!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Záÿÿÿÿÿÿÿÿÿÿÿÿÿñ–Z=!!!!!=!!!!=!9‚Ìúÿÿÿÿÿÿÿÿÿÿÿÿü–$!!!!!! !!_ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ@!!!!!!áÿÿÿÿÿÿÿÿÿÿßx@!;–ñÿÿÿÿÿÿÿÿÿü@ !@Îÿÿÿÿÿÿÿÿç@!@ÎÿÿÿÿÿÿÿÿÿÿáY!–üÿÿÿÿÿÿÿÿÿþ‚_þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    ! !qªíýýýýýþþýýþþÿýýýýýýýýüýüýüüýüàÓKK·KK·KK·KK·K·K·K·K·K····K·K·³K·K·³K·³³³³³K·³³³³³³³³³³³³K·³³K·³³666i66ii6ii66i666ii6i66i6i6iiiii666ii66iiiii6i6ii6666i6ii6i66ii6i6iii666i6i66iiii66i66i66i66ii66iii6ii6i66i66iiiii6iiiii6iiii666ii66666i6666i6i666>6i66EGDDi666i6i6666ii66i‰6i66i86½ii666‰i<66666i6656<½i666i6i566½5iˆŠ‰6ˆ666Q‰66666‰6‰6‰5ˆŠ6i66666ii6ˆ666i6666Q6666Ni6i6ii6i68i5iii6iii666i66i66iiiN68iiii86iiiii66ii6i6iiKK·K·J·J·KK·K·KKKK·KK·K·KK·K·K·KK·KKKKKKK·KKK·J·K·J·J·J·J·KKKKKJ·KJ·KKJKKKJ·KKKKKJ·JKKKWKKKKJ·J·JKWKKJKJKJH·JJKJKJJKJKJJKJKJJJJJJJJJJKHKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJJHJHJGJGHGGGGFGFGFFFFFKKKKKKKKKKKKKKKKKKK+20220+üüüüþþþüþþüüüüüüþþþþüüþüþüüüüüóüüüüüüþüüüóüóóüüó1‡4‡441óüüüóúúëöëöööõöõöõöõëöëõêëóë÷ðóóóóóóóóðóððóððóððóðóððñ143*O31ðóðóðóðóðòðððððððóðððððððððððððïððïðððÑðÑÝÝÑÑØèÑïïÑïá*33030*Ñ­°ØÑïÑÑÑÑÑÑÏÐÑÑÑÑÐÑÏÐÔ°¦×ÐÑÑÍÑÍÑÍÑÍÍÍÍÍÎÍÍÐÎÍЦ+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFFFGGGGGGGHGHGHGHGJHGJGJHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýüýüýýüýüýüýüüÿüóú÷ó÷úóúóóò¬�l!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!x÷ÿÿÿÿÿÿÿÿß@!!$!!$!!!$!!!!!!!$$!!!!!!!!!!!=!!==!!!!!!!!!!=$$$=$$!!!!!!!!!!$!!!!!!!!!!!xçÿÿÿÿÿÿÿÿÿÿÿÿÿüçÆx@!!!!!=$!!=ZƒÌóÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ@!!!!!!!!!!!!!!xñÿÿÿÿÿÿÿÿüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿü‚!!!!‚üÿÿÿÿÿÿÿÿÿÿóÎÆ–ÈÎüÿÿÿÿÿÿÿÿÿÿð ! !!!!!@ÎÿÿÿÿÿÿÿÿðB !!!!Âüÿÿÿÿÿÿÿÿÿ÷d! !ÎÿÿÿÿÿÿÿÿÿÿóY !dýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! ! !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍ!!qªíýýýýþýýþýýýÿýýýýýýýýýüýüýýüýæÓ·KKKK·KKKK·KKK·KKK·KKKKKK·KK·KK·K·K·KK·K·K³K·K³K³K·K³³K³K³K³K³K³ii6i666i6iiiiiiii6i6i6i6iii66666i6ii66iii66i66ii66i666ii6i6ii66i6iii6i6ii66i6iii66666iiii6i666i666i666i66i6ii66ii6i6i6iiii6iiiii6i6ii666ii66ii6i6i66ii8EDDEi66i6i66i6666Š666ii66666=$!=!!!!$===$!!$==$!===!=!!$=====$=====>==>CxßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÌx@======!!$!========$>>====$=!$!$====!$===$!=$=!$!!$$!$=$===$$!=====!!!=!=!!$==!!======!!$==!!=$$!!!$!$$!!$!!!!=$=!$!$=$$=$!$!!!==$!!!!$!$=!$=!!$!!!!=$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  !  !!!!!!! !!!!!!!!!!!! !!!!! !!! !!!   !   ! !!  !!!!!!!!!!   !!! !!!! !!  !!!!  ! ! $q¥íþþþþÿýÿþÿþÿÿýýýýýýýýýýýýýýýýæÓ³³K³³³³K³K³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³³¸³¸³³³³³³³³³³³³¸³6i66666666666666i6i666iii666666666ii6666666666i6i666i66i6i66ii666ii666i66i6i6i666666i666666i666666i66666666666666i6iiiii6666ii6i66ii6i6i &  & &  %& & %66iii66i6i66666i66ii6i6i6ii6i66i66666i66666i66ii6666666666i6666i666666666i666i66            66i66i6ii666i6666i6i666i666i6i66i666i6666ii6iiii666i6i66666i6666i6ii66i6ii6ii6i6666i6666i66i666i6i6i666666i66666i66i6i666i6i6i··¸·····¸····¸····¸··¸·····¸·¸······¸·····································K·³·K·³·K·³K·K·K·K·KK·K··KK·KKKKKKK·K·K·J·J·K·KWKJ·KKKJKJ·J·JKJWKJ·JKH·JKJJKJJJJJKJJKJJJJJJJJJJJJJJHJJJHJGHGGGGGFGFFFFFFKKKKKKKKKKKKKKKKKKK+2OOO2+üþþþþþüþþþþþÿüÿþþþþþþþþþþþþþþüüþüþþüüþþþüüüüüóüü1‡‡‡‡‡+üüüüóüüööööööõöõöõöõöõëõëöóëóóóóóóóóóóóóðóóóðóóóðóóóóó*‡4*‡4*óóóóóóóðóðóóððóðóðóððððððððððòðððððððððððÜÚððßèðïðððð*333301Ñß°ßÑïáÑïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÑÐÑÑÑÑÑÑÑÑÑÑÑÑÑÍÍ×+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFGFFGFGGGGGGGHGHHGHGJGJHJHJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþýýþýþýýýýýýýýýüÿüú÷óóú÷óóóóò¬Žj!!==!!!!$!!!!$==!!!!!=$!!==!==$$!!!!$=!$$$$!==$!$$$!$!!$$$$$$==!!=$!$=$$$$!$$=!==$=====$$$$$!======$===$$=======9===!========$$====$!=======!$====!=!!=====!====]Ìúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Æu==$=====$===!$==!$!=$====$!===$!=$=====!$!=!=====!!=$=$!===!!$!=$==$!==$!==$$!$=!$$$=$!$$$!$$!==$!$!==!!!=$!$$!!$=$!!!!!!=!=!!!$!!!!!!!!!=$!!!!!!!!!!!!!!!!!!!=!!!!!!!!!!!!!$!!!!!!!!$!!!!!!!!!!!!!!!!!!  !!!!! !!!! !!!!!!!!    !   =qªõþÿþþýþþþþþýÿÿýýýýýýýýýýýýýýýæÓ³³³·K³·³·³·³·³³·³³³³³³³³·³³³³³³³³³³¸³¸³¸³¸³¸³¸³³·³³¸¸³¸¸³¸³¸¸³³³ii6i6i6i66ii66i6ii6i66i66666666i6i6i6i6i6666666666iii6i66i6i6i66i6i66i6i6i66i666i66666i6iii6ii6ii66i6i66666666666666ii66ii666666666666i6% % % & & %& &  & % & & & & & & %(666666666666i66i666i6666i666666i6666666666666666666i6i66i66iiii66i66i6i66i66666         6i66i6666i6666i6666i6666i6i66i6i66i6666i66666666i66666iii6i6i66666i6666i6666666ii6i666i666i66i66i6i6i6666i6ii6i66666i6i66i666i·······¸·¸·¸···¸·¸·¸···¸····¸··¸·¸·¸··¸·¸································³···K·³·K·³·³·³·K·K·K···KK·K·KK·K·K·KKKKK·KKKKJKKKKKJKKKKKKKKKKKKKKJKJ·JKJK·JJKJ·JJJKJJJKJJJJJJJJJJJJHJHJHHGJGGGGGFFFFFFFKKKKK³KKKKKKKKKKKKK+OO2OO+üüþþþþþþüþþþþÿüÿüþþþüþþþþþþþþüþüüþüþüþþüüüüóüüüü+‡Š‡‡‡1üüüüüóóööõöööõöõöõöõöõöõöëóë÷óóóóóóóóóóóóóóðóóóðóððóðó*4‡*44*ðóððóðóððððððòðóðððòððððððððððððððððððððïÝÝèÑèÑÑÑÑðÑÑ1333331áØÝØáÑÑÑÑÑáÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÏÐÐÑÑÍÑÍÑÍÍÍÍÍÍÍÍÑÍÍ&&&&&&&+K³KKK³KKKKK³KKKKK³DFFFFFFFGFGGGGGHGHGJGHHHJGHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýýýýýýýýýýýýýÿúóó÷úóóú÷úóò¬sl==!!$!!===$!$$=!!!=!$===!$==$==$$$!!!!!===!!!!!$$!=!!!$!$=$==$===!=!$=!===!$!!!$=$=9!!$==========!$!!!$$======!$======!!$$=>A>==!=====!=====$$=!=====!!!=!==@ƒßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌx@===!!!$!=========!!$=!!!!!!=$$====!=$$=========!!=$=$!======!!$$!$==$!$$==$!=$$==!$====!!$$!!!$!!!!=$!==!$!$=!!!$!!!$=$!$=$!!!!!!$=!!==!$!$=!!$!!=$!!!$!!!=!!!!!!!$=$!$=!!!!!!!!!$!!!!!!!!!!!!!! !!!! !!!! !!!!!!!!!! !!!!!!!!  !!!       !! !      !pªíþþþþÿþÿþÿþÿÿýýýýýýýýýýýýýýýýàÓ³³³K³³K³³³³³³K³³³³³³³³³³³³³³³³¸³³³³³³³³³³³³³·³¸·¸³¸³³·³³·³¸³³³¸³66666666i666i6i6i6666666ii66ii6ii6666i66i6i66i6i6666666666666i6i66666ii66ii6i66666ii66i666i6666iii6i66666666666ii66i666i66i666i666i6ii6i(& & & & & &  % & % %66666666666666i6666666i6ii666i6666666666666i66666666666ii66666666ii6i6i66666666            666i666i666666666i666i6i6i66666i66i6i66i6666ii6i6i6666i6ii6i6i6iii6i6666iii6666666i66iii6i66i66i6i6i666666ii6ii6i66i666i666i666·¸···¸³··³··³···¸·······³¸¸³··³···³·¸³···³·³·³·³·³·³·³·³·³·³³³³·K³³³K·³K³K³³³³K³·³·K·K·KKK·K·KKK·K·KKKK·KKKKK·K·KKJ·J·KK·J·JKKKWKKWKKJKJKH·H·HKH·JKJJJKJJJJJJJJJJJJJJJJJJJJJHJJHJGJGHGGGFGFGFFFFDKKKKKKKKKKKKKKKKKKK+OOOO2+þþþþþþþþþüþüÿþüÿþþþþþþþþþüÿþþþþüþüþþþþþüüóüóüüüü1‡‡‡‡‡1üóüóüüüööööööõöõöõöõöõöõëõóëóóóóóóóóóóóóóóóóóóðóóðóðóó*‡4*‡3*ððóðóðóðóððóððððððóððóððððóððòðððððððððððÝÝïðððïððÑðï*333331áݰØÑðÑðÑÑïÑðÑðÑÑÑÑÑÑÑÑÎÑÑÐÑÑÑÑÏÐÑÑÑÐÑÑÑÑÑÑÑÍÍÐÍ+&&&&&&+KKKKKKKKKKKKKKKKKKFGFFGFFFFGFGGGGGGHGHGHGHGJHGJGHHJHJHJJJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýþýýþýþýýýýýýýüÿüóúóóúóóóóóò¬s?==!!$$$!!$!!!!$!$!$$$!$!!!==!$!!=!==!=!=!==!==$!=!$=$$==!====!!==$=!==$$$==$==!!!==$$$=!===9===!$========$$==$!=======$=!=====$=====$=>=$=====$$====$$=======$=$===@zÇðýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüçÆxC=!=========!===============$$=$>===!$===$$==!=!=====$=$====!$==$==$=!=$=$=!==$!==$!===!!$!$=$$$$$!=!==$!!=!!=$$=!$=$$=!!!=!!$$!=$!!!=!$$!!$$!!!$=!!$!!!!!!!!!!!!$!!!!!=$ !!!!!!!!!!!!!!!!!!!!!!!!  !!!! ! !!! !!!!!!!!!!  ! !   !!qªíþþþþþþþþþþýÿÿýýýýýýýýýýýýýýýæÓK³³³³³³³K³³³³³³³³³³³³³³³³³³³³³³³¸³¸³³³¸³³¸³³¸³³³³¸³³³¸³¸¸³³³¸³³³66iii6iii6i6i66iii6i6ii6666iii6ii6i66666666i6i66i6iiiiii66i666i6i6i6i666ii6666i666666i6iiii6ii66i666i66666666666666666i6666i6i66i6666( % & & &%  & %& & % % &66666ii66iiii666i666666i6666i6666iii666666666ii6ii6666666666i6666666i66ii666i6         6i6666i66i666iii66i666666i6666i6i6i66i666i6666i6i66i6i6ii66i66666ii666666666i666ii6666i6i666i66666i6666i66i66i66666i6i6iii6i666···¸··¸··¸··¸··¸··¸··¸··¸···¸·¸·¸··¸····¸·····¸················³···³······³·K·³··K·K·KK·³K·K·KK·KKKK·K··J·K·KKKKKK·J·KKJKKKKKKKKKKKJ·JWKK·JKJKJ·JJJJJJJJJKJKJJJKJJJKJJJJJJJJJJHJHJHHGGHGGGFGFFFFFFKKKKKKKKKKKKKKKKKKK+O2OOO+þþþþþþüþþþþþþþþþüþþþþþüþþþþþþþüþüþþüþþüþüüüüüüüü1Ї‡‡‡*üüóüüüüööõöööõöõö÷öõöõöõööóë÷óóóóóóóóóóóúóðóðóóóóóóóóó*4‡*4‡1óóóóóóóóóðóððóððóóðóððððððððòððóðððððððððÝÝèðâïððððïð*333331áݰÝÑÑïÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÐÑÑÐÑÑÐÑÑÑÑÑÑÑÑÑÑÍÍ×+&&&&&&+KKKKKKKKKKKKKKKKKKFDFGFFFFGGFGGGGGGHGHGHGJHHGJHJHJHJJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýýýýýýýýýýýýýÿóóóóúóóúóúóò¬Ž?==!!$$$!!!$==!!$!!$=!!!$=$!!!!=$!$=!$!!!!$=$!!==!===!===!!$=!$$!$========!!$!====$======!$!!$$$==$!!!$=====$!$$$=$===!$==$==$!$$$$==!!======$$!====$=$====>>=========AAC_ƒÈßñüüýÿÿÿÿÿü÷òßÌ–u@========$$==>====$!=============>===>====$!!==!===!!!$!$=====C=!!$!!==$!==$!!!===!!$!!!$!$=$=!!!!!===$=!!$$$!!==$!$==!!===!$!!!!!$==!!=!!!!$==!$!!$==$!!!!!=!$!!===!!$!!!!!$!!!!!!!!!!!$!!! !!! !!!   !!!!!!!!!!! !  !!! ! !        ! !!  !!q¬íÿþÿþÿþÿþÿþÿÿýýýýýýýýýýýýýýýýæÓ³³³K·³·³³·³³³³·³³³³·³³³³³³³¸³³¸³³³³³³¸³³¸³³¸³³¸¸³·³³¸³³³³³¸³³¸³¸666ii6666i6666i66ii66i6i6i66666666i666i6i6i6i666i66i66666i66666i66i666i666i66666iii66i66666i6i66i66iii6i6i66ii6i566666666i6i66i66ii6i % %&% &%&& & % & & & & & && % %% (ii6i6666i6i6666i6i66i6666i66i66i666i6i66i6i66666666i66666666iiii6ii6666666(%        i55666i66666i66666i6ii66666666i66666666ii666i666i666666i6i66666666i666i6i66i666666666666666666i6666i666666i66i66666i66666i6i6i¸·¸··¸··¸··¸··¸··¸·¸··¸··¸·¸···¸··¸··¸···¸··¸·········¸·················³·K·³··K··³···³···K·K·K·K···KK·K·KKK·K·K·KK·KK·KK·JKKWKKJ·JKKKKJKJKKK·JKJKJ·J·JKJKJJKJJKJJJJJJJJJJJJJJJHJJJGJGGGGGGFFFFFEK³KKK³KKK³KKK³KKK³K+OOO2O+þþþþþþþþþþüþþüÿþþþþüþüþüþþþþþþüüüþüþüþþüüüüóüóüü1‡‡Š‡Š1óüóóóóúööõöööõöõìõëõëõëõëöóëóóóóðóóóóóóðóóóóóóðóðóðððó*‡4*‡31ðòðððððóðóðóðóðòðððððððððððððððððððððïðÑïÝÝÑïßèÑðÑïïÑ*333301ÑÔ°ØïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÐÑÑÑÑÍÑÎÑÍÍÑÍÍÍÍÍÐÍÍ­+&&&&&&+³KKKKKKKKKKKKK³KKKFFDFFFFFFGFGGGGGHGHHGJHHGJHJHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþýþþýýýþýýýýýýýüÿüóú÷÷ó÷÷÷óóò¬Ž?==!!!!!!$=!!$=$!!$!!!=$!!=!!==!!=!$=$!$$$!===$$==!!====!=!$==$=!=$$==$$==$!====$!===========!$====!=====$$$====!======$=$!=========$=====$=============$!===>$==!=======!=========>@A@=@=@=@=====$=====$==$!=====$$$=====$===!$=====!=$===>9==!=====$=$===!======$===$===$!==$$===!===!=$$=$!$$$$====$$!==$!$=!!=$$$$!=!$!$!==!!==!!!!!!=$!!!!=$!!!$!$$$!!!!!$!$!!=!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!! !! !! !!!!   !     ! qªíþþþþþþþþþþýÿÿýýýýýýýýýýýýýýýæÓK³³³³·K³³³³³³³³³³³³³³³³³³³³³³³³³¸³¸³¸³¸³³¸³³¸³³³¸³¸¸³¸¸³¸³³¸³³¸³6i666i6i6i6ii66666i666i6666ii6666666i66666666666666i6666i6i6ii6i66i66666i6666i66ii6i66666i66666666i6666iiiii66i66i66666ii6i6666i666666%%%&% % & & & & & & & & %&% %&66666i66i66i666i6i6i6666i6666i666666666666666666666i66666666666666666i665 % %%        ( 66666iii66i6i6i666666i6i6i666666666666i66i66i666i666ii6666i666666i66666666666i666i66i666i66i666i6666i6666i66i666666i666666i···¸··¸··¸··¸··¸··¸··¸·¸·³¸·³¸·³·¸··¸·····³····³··³··³···³··³³³³³³·³·K³·K³·³·K·³³³K·³³KK³K·KKK³KK·KKK·KKK·KKKKKKKKK·J·JKKKKK·KKJ·J·J·JJ·J·H·HKJJKJKJJJJJJJKJJJJJJJJJJJJJJJJJJJHJHGJGHGGGGGFFFGFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþüþþþþþüþüþþþþþþüþüþþþþþþþþþþüþüüüþüþþüüüüóüüü+‡Š‡‡‡1üóüóüüóööööööõëõëööõöõìõöëúõóóóóóóóóóóóóóóóóóóóóóóðóðó*2‡*4‡1óðóðóóóðóððððððððóóððóððððððóðòððððððððððÝÝððÝâïÑðÑÑá133333*áݰÝÑáïÑðÑïïÑáïÑðÑÑÑÑÑÑÑÑÑÑÑÑÐÏÑÑÑÐÐÑÐÑÐÑÑÑÑÍÍÍÔ&&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFGGFGGGGGGGGJGGJGHHGJGHHJHJHJHJHJJJHJJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýþýýýýýþýýýýþÿúóóóóúóóóúóò¬�?$$!!!==!!$!!===!!======!===!!!!=!!$====!!!==$!=$!=!!$$==!=$!!!!$!$$!=====$!$!$$$=========$!$$$======!!===!=$$======$$$=====$$$$======$=====!=>===>===!!==!$===========$=!====!!$=$=A=!!$==========!$====$=======$!$!==>==!!$==!==>=====!$$=$=>C==!$=!$=!!!===!=$$$$!===$==!$==$===!==$=====!!!$!$==$!$===!!!$!!$=$!!!====$=!!!!!=!!======!!!!!!!!!!!=$!!$$!!!=!!!!!!!$!!!!!!==!!!!!!!!!=$!!!!!!!!!!!!! !!!!!!!!!!!!! !!!!!!! !! !!   !    !  ! !!! q¥õþþþÿþþÿþÿýÿÿýýýýýýýýýýýýýýýýàÓ³³K³³K³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³¸³³³¸³³³³³³³³¸³³¸¸³³³ii666i6i66i6666i6666i6ii6666ii6i6i6i6i66666i66666i6666i6666666i66666i66666666ii666i666i6i66i66666666666666i6i66666ii6666666666i6666666 & &% % & % & % & % % % %& % %66666666666666666i6i666666666i6666666666i6i6i66i66666i66i6i6666666666i6i6%           i6666666666i666i66666i66i6i6i6iiii66666666i6666666i666666i66666666i66666666666i6665iii66i666i666i666666666666666i6666i6i66i¸·¸··¸··¸··¸··¸··¸··¸·¸··¸··¸·¸·¸··¸··¸·¸·¸···¸······¸···¸·····³··³········³·³··K··K···K·³K·³³··KKK·K·K·K·K·KK·K·KKKKK·J·JKKJ·JKJKJKJ·JKJKJ·JKJ·JKJKJJJKJJJJJJKJJKJJKJJJJJJJJHJJHJGJGHGGGFGFFFFFDKKKKKKKKKKKKKKKKKKK+OOO2O+üÿþþþþþþüþüüþþþþþþüüþüþþþþþþþþþþþþüüüþþþüüüóüüüü1‡Š‡‡Š1üüüóüóüööõöëöõöõëõëõëõöõëõóóóóóóóóóóóóóóóóóóðóóóóðóóðó*‡4*‡21ðóðóóðóóóóðóòðóððððóðððððððððððððððððððððÝÝððÝèðððïðï*333331ÑÝÝØÑïÑÑÑÑáÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍ­+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFFGGGGHGHGHGHHGHHHHJHHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýþþýþýýýýþýýýýüÿüóúóúóóú÷óóò¬Žl!!!$!!$!!=!!=$!!$$=!$$$$$$$$$=!!$$$$!!$$====!!$!===$$==!$!=$=!===$==!==!==$==!=$=====!===!=!=====!=========!=$===$!==========$!=========!=========$===$====$=====!=============!=A=!=====$$=============$=========$=============$=$$==$$====$=====>=$====$!=!=========!!=====!===!===!=!$====!$=$$!=====$!!$!=!$=!$$!==!!!!=!==$!$!!=$!=!=$=!!$!!$$!!!!$$!!=!!!=!!!!$$!!!!$!!!!!!!!!$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!   !!!!!!    !  $q¥íþÿþþþþþþýÿýÿÿýýýýýýýýýýýýýýýæÓ³³·³·³³·³·³³³³³³·³³³³·³³³³¸³¸³¸³³¸³³¸³³¸³³·³³¸³³³¸³¸³¸³³³¸³³³³¸³666i6i6i6666i66666i6666666666666i66666666i6i666i6666iii66i666i666i6i666iii66i666i66666i66666i666i66i6666666666ii666i666i666i66ii6666i6 %% % %& % & & & & & % & & %% %% %%6666666i6i6666666i666i666i66666ii66i6i66i66ii6666666i66i6i6i6666666i66666(         (% 6666iii666666666i666666i666i66i6i6ii6ii6666i666i6666666666i6666i66ii666i6iii66666i6i66666666i66i666i6666i66666i66i666666666···¸··¸··¸··¸··¸··¸····¸··¸··¸···¸··¸··¸···¸·¸···¸··¸···················³·³·K··K··³··K··³·³K·K·K···K·K·KK·K·KKKKKKK·K·K·J·J·JK·J·J·J·JK·J·J·JKKJKJ·JKJ·JKJKJJKJJKJJKJJJJJJJJJJJHJJHJGGGGGGGFFFGFFFK³KKKKKKKKKKKKKKKKK+OOOO2+þþÿþþþþþþþþüüþüþüüþüþüþþþþþþþüþüüüüüüüþþüüüüóüóü1Ї‡Š‡1óóóüóóúõööööëõöõöõëööõëöööóóóóóóóóóóóóóóóóóóóóóóðóðððð1‡4*4‡*ñððððóðóðððððððòðóðóðóïðððððððððððððïðïÑðÝÝÑÑÝÑïÑÑÑÑï133333*ÑØÝØÑÑÑïÑÑÑÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÐÐÍÑÍÑÎÑÍÍÑÍÍÍÍÍÍÍÍѦ+&&&&&&+K³KKKKK³KKK³KKKKK³DFFFFFFFFGGGGGGGHGJGHGJHHJGJHJHJHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýþýþýýýýýýþýþÿóóó÷óóúóóúóò¬Žo===!!$==!!=$!==!!!$!!!!!!$!$======!=$====$!!=$!!!=!!==$===$$$!==$$!!==!$$========$===!$===!=======>=!!==>=====$==A=======$$===$======$$!=$$==!!$==!$=$======!====$$!!====>=!======A=$$>CA===$$=!$========>A>=====$!!============!====!=========!!!!====$!=>====$====!!==$==$$====$=$!=$$!$!$$!!$$==$$!$====!!!=$===!==>=$!!=!!!=!$!!==!!!!!!!$==$!!$!!!!!!!!!=$!!=!$!!!!===!!!!!!!!!!!!!!! !!$!!!!!!!!!!!!! !!!!!!!!!!!! ! !!!!!       ! !  ! !   =p¥õþþþýÿþÿþÿþÿÿýýýýýýýýýýýýýýýýæÓ³³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³³³¸³³¸³¸¸³¸·¸³¸³¸³¸³¸³³¸³¸¸¸³¸³¸¸¸i6666i66ii666666i66666666666666666i666ii666666666666666666666666666i6i6666i666666i666666666i6666666666i6i66i666666i6ii66i6666666666i65% %% % % % &&& & % % % % % % % %6i6i66i66i66i6ii666i66i6i66i666i66i6666i6i6i6666i6i6666ii6666i6i6666666655(        ( % 6666666ii66ii66666i6i6i6i666i66666666i666666i66i6666i666666i66666666i666i66666ii6666i6i6ii6ii6i6i66666i6666i666i666666666i6¸·¸··¸··¸·¸···¸··¸·¸¸·¸··¸··¸··¸··¸··¸··¸³··³···³··³···³··³·³·³·³··³·³·³·K³³·³³³³³K³³³³··K··K·KKKK·K·KK·KKKKK·K·K·KKKKKJ·KK·J·KKJKKJ·JKJKJKJKJKWKJKJKKJKJJJJJJJJJJJJJJJJJJJJJJHJJGJGHGGGGGFGFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþþþþþþþþþüüüüüþüþüüþþþþüÿþþþþüþþüüüþþþüüüüüüü1‡Š‡ŠŠ1üüüóüóüööõöööõöõöõëõëõëõëõóõóóóóóðóóóóóóúóóóóóóðóðóóóð*4‡*‡31ðóððóðóóðóðóðóððððððððòðóððòððððóððððððððÝÝððØèÑðïððá*33333*ðØÝßïïÑÑðÑðÑïáÑðÑÑðÑÑÑÑÑÑÑÑÑÐÑÑÑÐÐÑÑÐÐÑÑÐÑÑÑÑÍÍ­+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFGFFFFGGGGGGGGHGHHGHGHGJGJHHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýþþýþýþýýýýýýýüÿüúóóúóóúóó÷ò¬�o!!$!!!!!=$$$!!!$$=$!!!!=$!$$==$=$$$!$===$$=$$$$=$=$!$=$$===!=!====!=======$$=!===$=!=========$=======$===$=====$$=================!============A=$$=============!===========$=======$===$$======$$=====$===============$==========!===========!================$$==$!======$!=====$====$!!====!!====!!$$!!$$$!=====$!$$!====$!$!==$=$!!!!$$$$=$!!!==!!!$=!!!=!!!!!!=!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!! !!!!  !!!!!!  !!!!!!!!    ! qªíýÿþÿþþþþþþþÿÿýþýýýýýýýýýýýýýàÓ·K³K³K³³³³³³³³³³³³³³³³³³³³¸³³³¸³³¸³³³³³³³³³³³¸³³³³¸³³³¸³³³³¸³³³³666i66666ii666666ii6i6ii5i6i666i666ii666666666666666i666i66i66i6i66i666i6i66666i6666i6i6ii6666i6i666i66i66666666i66666i66666i666i6666 %% %%&% & % % & % %% & & & % %& & % %&%& i6666i66666i666666i666666666i6666i6i666666666666666i66i666666666i6666666%(      666i6666i666i6i66666666i666i66ii66i6i6i6i66i666666i666i666666i666i6666i66i6666666i666i666666666666i6ii666i66i6666666666666i···¸··¸····¸·¸·¸·······¸···¸··¸·¸··¸¸·¸···¸···¸·¸··¸·¸·¸······³··³······K·³·K···K···K··K·K·K·KK·K·K·KKK·KK·K··KKKKKK·KK·KJ·JKKJKK·J·J·J·J·J·J·JJJKHJJJWJJKWKJKJJKJJJJJJJJJJJJJJHJHJHGJGGGFGFFFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+ÿþÿÿþþþüþþþþþþüþüþüüþþþþþþÿüÿüþþþþþüþüüþþüüüóüüü+‡Š‡‡‡1úóóüóüüööööõöõöõöõöõëööõööúöóóóóóóóóóóóóóóúóóóðóóóóóóó1‡2*4‡*óðóóóóóóóðóðóðóðóðòóðóðððððððððððððððððððÝÝððÝèïðððïð10Q333*ðÝÝßÑÑáïÑÑÑÑÑïÑÑïÑÑÑÑÑÑÑÑÑÑÏÑÐÑÐÏÑÑÐÑÑÑÑÑÑÑÑÑÑÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFFFGGGFGGGHGGHGJGHGJHHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýþýþýþþýýýýýþÿ÷ó÷úóóúóóúóò¬Ÿo!!!====!!!===!$$===$!!!!$==!$=!!!!!$===!$!=>A=!$=$$=====$==========!$===$===$$!!=========!$!!$==$$$===$======$====!$=CA=$==$$========!======!!$!==!====$===>==>=======>=========$=$!=$============$==$$!$====$!=>=====!$==========$==!=$$==>==C==!!=>==$=!!=$$====$$=$!!$!==!==$========!$!$======!!==$$====!!!$$$$!=!!!!!$==$$==!!!$!=!$===$$==!!==!$!!=!!!!!$!!=$!!!!!!! !!!!!!$=!!!!!!!!!!!!!!!!!!!!! !!! !!! !  !!!!! !!! !! !!     !   !!  !  !!!  =}ªíÿýþþþþÿþÿýÿþýýýýýýýýýýýýýýýýèÓ³·³·³·³·³³³³³³³³³³¸³³³¸³³³³³³³³³·³¸³¸¸³¸¸³¸³¸³³¸¸³³³¸³³³¸³¸³¸³¸³6666666i6i66i66i66666666666666666666i6666666i66666i66i666666i66i6i66666666666666666i6666666ii66i6i6i66666666666i6i66666i66666666666i%&%% & % %% % %&% & & & % % && % & &% &%%6666666i666i6666i66666666i6i66i6ii6666ii6666i666666666i66i66666i6i6666i66( (% %       666666666i66i66666666666666666666666i66666i666i66i6ii6i66ii6666666666666666i666666666666i6i666i6666666i666666i666i6666i666666¸·¸··¸··¸¸··¸·¸··¸¸·¸¸··¸·¸··¸···¸···¸·¸·¸··¸¸································K···³··K··³·³·³·K··K·K·K·K··KKK·K·K·KKKK·J·K·KKK·KKJKJ·JKKKJ·JKJ·JK·JKJKKJKJJJKJKJJKJJKJJJJJJJJJHJJJGJHHGGGGFGFFFGDKKKKKKK³KKKKK³KKK³K+OOOOO+þüþþþÿþþþþþüþüþüþüþüþüüþüÿüÿþþþþüþþüüüüþüþüüüüüü1ЇЇŠ+üóüóúóüööõööëõëõëõëõìõëõöõóîóóóóðóóóóóóóóóðóóóóóóðóððð*4‡*‡31ðòðððóðóðóóðððððððððððóðððððððððððïðÑïÑïðÝÝÑðØèÑÑÑïïá*333331ÑÝÝØïïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÏÐÑÑÎÑÎÑÍÎÑÍÍÑÍÍÍÍ­+&&&&&&+³KKKKKKKKKKKKK³KKKEFFFFFGFFFGFGGGGGGHGJGHGJGJHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþýþýþýýþýýýýüÿü÷óóúóóú÷óóò¬�j=$!!=$$$!$=$$$=$!!$===!!$==!!$$$$!===!=$!!==$!==$!$!===$$$=$$C===!===$!=$====!!====$$=========!=$===$$======$$====$$===============$===================$$=====$=====!=C===================>======================$=======!=>===========>=$========$=======$=$=>===!!====!!==$====!========!$==!==$=$========$$$$=======!$$==$!$==!$=$!$===$=$!!$$$!$!$!!==$!!=!=!$!!$!!$!!=$!!!!!!!!!!!!$!$!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!    !    !=s¥õþÿþÿþÿþýÿþÿÿÿýýýýýýýýýýýýýýýàÓ³K³³³³³³³³³³³³³³³³³³³³³¸³³¸³³¸³¸¸³·³³·³³³¸³¸³³¸³³¸³¸¸¸³¸¸¸³¸³¸³¸6666666i66666i666ii66666i666i6i66i566656666666666i666i66666666666666i666666666i66i666666666666666666666666666666i66666i6i6i66666668%% % %% % % & % % & % %% % %%&&%%56i66ii6i66666666666666i6666666i6666i6666666i666666i66i66666666i66666i666i665( % %       i6666666i666666666666666i666666i6666666666656666666666666666666i66666666666666666666i6666666666666666i6i66i6666666i66666i66666···¸··¸····¸····¸······¸·¸··¸··¸··¸·¸···¸··¸···¸·¸···¸···¸·¸···³·³·³·³·³·³·³·K·³·³K·³³³³³K·K·K·K³K·KK·KKKKK·KKKKKKK·K·J·KKKJ·JKKJ·J·JKJ·JKKKJ·HKJJKJ·JJJJKJKJJJJJJJJJJJJJJJJJJJHJHJGGGGGGGFFFGFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþÿÿÿþÿüþþþüþþþþüüþþþþþþþþÿüþþþþþþþüþüüüþüþüüþü1‡Š‡Š‡1óóóóóüó÷öîöúöõöëìõëöëõëööîüë÷óóúóóóðóóóóóóóóóóóóóóóðóð144*4‡1óððóóðóóóððóðóóðóðóðóðððòððóððððòððððððððÝÝððÝÑðïÑðÑÑ13O334*ÑݰÝÑáÑïÑðÑïÑïÑïÑÑðÑðÑðÑÑÑÑÑÑÑÑÐÐÐÐÐÐÑÐÐÑÑÐÑÐÎÍÔ&&&&&&&+KKKKKKKKKKKKKKKKKKFEFFFFFFFFGFGGGGGGHGHGJGHGJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþýþýþýþþýþýýýÿþúóóúóóúóó÷úò¬}?9=!!!!!!!!$=!!!=!!==!$!$==!!==!!$!$=!!====$=======$=!======!!==!!!!=$!===$!!==$====>$$==>===========$==>==$====!$=>=$!$==$!!$=>===========$======>>==>=$=C======$$>=$=====$$====!!===>==!$=A=>===$=====!======!$$!$!!=>>>=========$==$!$==$$==!!$$==>====$$=!!===!!=>C>=====$!==$==$!$!!!=$===!=$========!!!!===!!!!!$$!!!!!!$$!!!$==!!!!!==$==!$=$!!!!$!!!!$=$!===$!====!=$!!==$!!!!!!==!!!!!!!!!$!!! !!!! !!!!!!!!!!!!!!!!$! ! !!!! !!!!! !!!!!!!!! !    !!  !    !  !  !!=}ªíþþþþþþþÿýþÿþýýýýþýýýýýýýýýýýæÓ³³³³K³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³¸³³¸³¸³³³³³¸³¸³¸³¸³³³³³³¸³³³¸³666666666i66666i6666666i6666i666666i666666i666666666i8i66666666666i66i6666666666i6666666i66666666666i66i6i6666i6666666666666666666i6% % % %% %%& %&% &% % % % % % % & &% % %& %% %6666i6666666i6i6666666i6666i666666i6666666666i66666666666i6i6666666i66i66i66 %      i666666666666i6i6i66i66666666666666i66666i6665i6666666666i666666666666666666666i6666666i6i66i6666i66i6666666666666i6i66i666666·¸··¸·¸·¸·¸·¸¸·¸·¸·¸¸·¸···¸·¸·¸·¸¸····¸···¸·¸·¸·¸··¸···¸¸···············³·³·³·³·K·³·K·K·K·³·K·³·K·K·K··K··K·KK·K·KKKKKKKKKK·J·J·KJKKK·JKKWJKKKKKJKJKJKKJJJJJJJJJKJJKJJJJJJJJJJHJJHJGHGGGGFGFFFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+üÿþþþÿþÿÿüÿþþüþþþþþþüþþþþüÿþþþþþüþþþþüüüþüüüþüüü1ЇЇŠ1üüóüúúüööýöõöõëõëöëõëõöõö÷óöóóóóóóóóóüóóóóóóóóóóóóóóóó*4‡*441ðóóóóóóóóóóððóðóððððððóððòðððóðððððððððððÝÝððãèððððÑï*43343*ïÝÝØÑïïÑÑÑáÑïÑáÑðÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍ­+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFGFGFGGGGHGHGHGJGHJGJHHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþýþýþýýþýþýýüÿüúóóúóó÷úóóò¬ŽC!=!!$$=!$$!$!==$$$$!$$!!=$!$===!!$=!===!!=$===$$==!====$==!===$!====$=======!==$$===================>>=$=================$===========A=!=============$$A>=$===$===$=======>===$==================================$===>========================$=$=====$=====$===$===================$!===$===========$!==$$==$$$=$$$!==$!!$!!==$$$$$=$$$=$!$=$==!!$$!=$!!!$!=$!!!$$$!$!!!$$!!!!!!$!!!!!!!!$!!!!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! !!!!!!!!    !=q¥íÿþÿþÿþÿýÿþÿÿÿýýýýýýýýýýýýýýýæÓ³³·³³³·³³³³³³·³¸³³³³¸³³³¸³¸³³¸³³¸³³¸³³·³³¸³¸³³³³¸³¸³¸³¸¸³¸³¸³¸³¸6666i66666666i6i666i6i6i666i6666ii666666i66666i6i6i666666666666666666666i6i666ii666i666i6666666i6666666666i6i666666666666i66666666i6 % %% %%% % % %& &% %& & % % % % % %&6i666666i6666666666666666i66666i6i6i66i6666i6i66666666666666i6666i66666666665%%% % %    % % 666i66666666666666i6666i666i666i666666ii66666666666666666666666666666666666666666i66666i6666i666666i666666666666i6i66666i66¸·¸·¸··¸·¸··¸·¸··¸¸··¸·¸¸¸·¸·¸·¸···¸¸··¸·¸···¸···¸··¸·····¸·¸··¸··¸···¸··³···············³·K·³·K·K·K·K·K·KKKK·KKKK·K·K·K·KK·KKKKJ·KKJKKKKKKKJ·JKKWKJKHJJ·JKJJKJKJJJJJKJJJJJJJJJJHJHJGJGGGGFGFFFFFFK³KKK³KKKKKKKKKKKKK+OOOOO+ÿüþþüÿþÿþþþþþþþþüþüüüþþþþÿþþþþüüüþþüüþüüüüüüüóüü+‡Š‡Œ‡*úüüüóóóööõööö÷öõëõëõëöëõëöúëóóóóóóóóóóóóüóóóóóóóóóóóðó*‡4*‡41ñððóðóðóðððòðððòððóððòððððððððððððïððððïÑÝÝèïßâïÑÑÑÑð*34333*ÑÝÝØÑÑáÑïÑÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÍÑÍÑÍÎÑÍÎÑÍÍÍÐÇ+&&&&&&+K³KKK³KKK³KKK³KKK³EFFFFFFFGFGGGGGGHGHGJGHGJHHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþýþýþþýþýþýýÿ÷óóúóóúóóóúò¬Žj==$==!$==$!!!$===!!===$==$$=$==!!===$==$!$===!!$!!$========!!>>=>==!======$==>=!!!====$!!=$==$=!$!$$!!==$=======$$=====>>=====!$===>>======$=======>=$>>====$==>=====$$==>=====>>=$!$$========>=>=========>A==C>=====$!!!$=!!$=====$$!====$=$=============>=!=>==$$==$$==$!=========!==!!$$$=!$!$$$!===$$$======$!!=A======!!!$=!!$!$!$=!!==!$==!!!==!$!!!$$=!!!!!!!!!!$!!=!=!!=$$$==!$==!$!!!!!!!$=$!!! !!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! !!!!!!!          !  !  !    !pªõþþþþþþþÿýþÿþýýýýýþýþýýýýýýýýà׳³³³³³³³³³³³³³³³³³³³³³¸³³³³³¸³¸·¸³¸³³¸³¸¸³³¸³¸¸¸³¸³¸³¸¸¸³¸¸¸³¸¸¸666666i66i8i66i86i6666666666ii6666666666666666666i666i666666666666666666i666666666i6i666665666666666i6i6i66666666i6666i666666666i666 %%%% %% %&%%%&% % %%%%% % &% % & &% %%%% %6666666i6666666666666666i6666666666666666666i666i66ii6666666666666666i665666 % % %    % % %66666i66666i6i666i666666666i666666i6666666666666i66666666666666i6666666i6i6666666666666666666666666i66666666666666i6i6666¸···¸·¸·¸··¸·¸·¸···¸··¸·····¸····¸···¸··¸·¸¸··¸·¸··¸··¸¸·¸·····³···³····³··³·³·K·³·K³³³³K³³³·K³K·K·KK·KK·KK·K·K·KKKKKKKK·J·JK·J·KWKKKWJKKJ·H·H·JJKH·J·JJJKJKJJJJJJJJJJJJJJJJJJJHJHJGHGGGFGFGFFFFEKKKKKKKKKKKKKKKKKKK+OOOOO+ÿþÿþþÿþÿþÿþþþþþþþüþþþþþþþþþþþþþüþüþþþþþüüüüüüüüü1Ї‡Š‡1üüüóüóúööõöööýöõëöìõëõìõî÷óö÷óóóóóóóóóüóóóúðóóóóóóóóóó144*4‡'óððóóóóðóðóððóððóðððððððððóððððððððððððððÝÝððèðððððïÑ*433O3*ðØÝßïÑïáÑïïÑïáÑïÑÑðÑÑÑðÑÑÑÑÑÑÑÐÐÑÐÑÐÑÐÐÑÐÐÐÑÑÍÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFGFFFGFGGGGGGHGGHGHGHGJGHHJHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþýþýýþýþýýýÿüúóóóúóú÷÷óò¬�l=$!$$$$$==!!$$!===!!$===$$$==!$$==$=====$!===$==$===!===$=======$====$====$!=======!$======$===$$$$=$===========================!========================>===========>=!======================$=======A=======>===============================$===============$>===$!======$=====$$=======!==$!===!!=$$=====!!=====$!=====$!=$===!==!!!!=$$!!===!!!$$!!===!==$!!!$=!!$$$!!!!$$$$!$$!!!!=$!$!!!$!!!!!!!!!=!!!!!!!!!!!!!!!!!!! !!!!! !!!!!! !   !!!!!!      !!q¥íÿþÿþÿýÿýÿþÿÿÿýýýýýýýýýýýýýýýæÓK³³³³³³³³³³³³³³³³³³¸³³³³³³¸³³³³³³³¸³³¸³³³³¸³³³³¸³³¸³¸³³³³¸³³¸³¸³666666666i6666i6i6666i666666i6666666666666666666666666666i66i66666666i6i6666666666666ii666666i66666666666i6i666666i6i8666i66i6666665%%&%% % &% % % %%& % %&%%&% %% &% %&%%% % %5666666666666666i6666666666i6i666666666666666i666i6i6666666i6666666i666i6666% % %    % %566666i66666i6i66666666666666666666i6666i66i6666666666666i6665i6i66666666566i6666666666i6i66666666666666666i66666666666i6·¸·¸·¸·¸·¸¸···¸·¸·¸¸¸·¸·¸¸¸··¸¸·¸·¸·¸·¸·¸····¸···¸··¸·····¸··¸··¸···········³·³·³·K··K·K·³·³K³·³·KK·K·K·K·KKKKK·KK·K·K·JKKKK·KJKKKKKJKK·JKKKKKKKJKJKJJJJ·HJJJJJJJKKJJKJJJJJJJJJHJHJHGGGGGGGFFFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+ÿþþþþþþÿþÿþþþþþþþþþüþþþþþþþþþþþüüüþþþüþþüþüüüüüü1‡ŒŠ‡Š1üüüüóüóööööööõöúöõëöëõëöëöüöóóóúóóóóóüóúóüóúóóóóóóóóóó'‡4*‡4*óóóóóóóóðóðóððóóðóðóðóðóðððððððððððððððððÝÝðððððððððï*34334*ðÝÝØïÑÑïÑïÑáïÑïïðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÏÑÑÑÑÑÑÑÑÐצ+&&&&&&+KKKKKKKKKKKKKKKKKKDFFGFFFFFGFGGGGGGHGHHGJGHHJGHJGJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþýþþýþýþþþÿóóóú÷óóóóó÷ò¬Žj!!=!==!!!=====!$====!!==!!!$!=====$!!$$!==!!$=======$$=$!$$=>==!$$$=====$!==$$==$=>=$$$!$!=====$==>>===>A>==========>$$===========$$$!===>=========$!!===$===>=!========9=>=======>>=>==$====$==A>==>=$!$============A>>=>A>=====!==A==>>>=>=====$$==$$=$!!$===$=====$===$!!$!=>=$==!$=!!====A=$!$===========$!===$$=$=!=$!$=$!!=====!!!!==$!=!$!!!$=$!!$=!!!!!=$$!!!!==!!!!!!$!$!!!!!$=!!!!!!!$!!$!!!!!!!!$!!!!!!! !!!!!!$!!!!!!!!!!!!!!!!!!!!!!! ! !!!!   !! !    !       !       !! !!! =sªíþþþþþÿýÿýþÿþýýýýýþýýýýýýýýýýæÓ³·³³³³·³³³³·³³³³³³³³³³¸³¸³·¸³¸¸³³¸³³¸³³¸³¸³³¸³¸³³¸³¸³¸³¸¸³¸¸¸¸³¸666666666666666666666i66i66666i666666666666666666i66i66666i66666666i66666666666666666666i666666i666i66i666i66666666i666i66666666666%%%&%% %%% %%%&% %%% % % % & &%& %% % % %%% %% % (i6666i6i6666i6666666666i6i666666666i6666i666666i666666i6666i6666666666666665%% %    % 66666666i6666666666666666666666666666666i66666666i6666666666666i666666i6666666666666i6666666666i6666666i666666666666i6666¸¸·¸·¸¸¸·¸·¸¸¸·¸·¸¸··¸·¸··¸·¸¸·¸·¸·¸··¸··¸¸·¸·¸·¸··¸··¸¸·¸··¸·····¸·¸·¸···················K³··³·³·³··K··K·K·K·K·KKKKKKK·K·KKJ·KKJ·J·KKJKKWKJKKJ·J·JKJ·JKJ·KJJKJKJJJKJJJJJJJJJJJJJJJGJGHGGGFGFFFFDKKKKKKK³KKKKK³KKK³K+OOOOO+ÿþþüÿÿÿþÿþþþþþþþüþþþþþüþþüþþþüþóüüüüþüþþóüüüüüóü1Œ‡‡Š‡+üüóóóóúööõöööõöõöõöõëõö÷öõóõóúóóóóóóóóóúóóðóóóóóóóóðóó*‡‡*4‡*ðóðóðóðððóðóðððóððððððððððððððððïðððððÑïÑê°ïÑèÑðÑðïÑÑ*433431ÑÝÝØïïáïÑÑÑïïáÑÑÑÑÑÑÑÑÑÑÑÑÑÐÏÐÑÏÑÐÐÑÐÑÍÑÍÑÍÐÍɰ¦+&&&&&&+³KKKKKKKKKKKKKKK³KFFDFFFFFGGFGGGGHGHGHGJGJHJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþýýþýþýýüÿüúó÷óúóú÷úóò¬�o!!$$==!!!===!=!======$!=$!==$$$$==$!!$=$!!====!====>=!=====!=====$!=$$======!===========!===============!=>>>>===========$=========!==================================$=====>======$=====>===>===$============>==$=====================AA=======$===$=======$===$$>===$!=====!=!$====!=$$==!$=======$$=====!=======$===$!=========$!!==!==!!==$!$!$!!==$$!!$==!$$!!$=$$=!!=$!$=!!$!!!!=$=!!!!$!!!$!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !!!! =q¥íÿýÿýÿýÿþÿþÿÿÿþýýýþýþýýýýýýýýæÓ³³³³³³³³³³³³³³³³³¸³³¸³³³³¸³³·³³¸³³¸³³¸¸³¸³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸66666i6666666666666i66686666i666i66666666i66666i66666666i666666666666666666i66i666i6666666666i6i6666666666i66666i66666i6i6666666i666'%% & % %%% %%% %%% % % %&% % %%&%% %% %%% %%5'%%666666666666666666i6666666666i6i666i66666666666666666666666i66866666i66656666% % %  % % 6666i66i6666666i6666666i66666i6i6666666i6i6656666666666666i66666666666666666666666i66666666666666i666666i666i666i66666666··¸·¸·¸··¸·¸··¸·¸··¸¸·¸·¸··¸··¸·¸·¸··¸·¸·····¸·¸·¸··¸······¸³·¸³··³··³···³³··³·³·³³·K·³K··³³³KK·K³K·K·KKKKK·KKKKK·K·K·KKKKJ··J·JK·KJKJ·J·JKK·H·HKJJJ·HKJKJJKJJJJJJJJJJJJJJJJJJHJHJHGHGGGGGFFFGFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþÿþþÿÿüþþüþþþþþþþþþþÿþþþþüþüþüþüüüþüüüüüüóüüü+‡ŠŠ‡Š1üüóüüóóöööööëõöõöõöõöõìõëîüõóóóóóóóóóüóúóóóóóóóóóóðóóð*‡4*‡4*óóóóððóððððððóððóðóððòðððóðððóðòðððóðððððÝÝððÝðÑðÑðïð*34334*ïݰÝÑÑÑÑÑïïÑáïïÑðÑÑÑáïÑðÑÑÑÑÑÑÑÐÐÑÑÑÐÑÏÑÐÐÑÐÍÔ¦°(&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFFGFGGGGGGGHGHGHGJGJGHHJGJHJJHJHJHJJHJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþýþýýýÿþúó÷÷óó÷óóóóò¬so$!9!!!$====!=!=!!$$=$!!!======$!===============$!$=>===A===!=$$$===>>===!=>==========$=A>>A>>>=================================$=>=====>>=======>=====>C>==$=>>=A======>>>==>=$>>=$=$=$===$=>>=========$$=======>======>==$======>=$!=$=====A==$!=>====$========$==!!=============!=!===>A====$!$==!==$=!=$!!=$!$$=$!!$!!==!=!$!!$!$====$$!==!!$======!!$==!!!$=$!!!!!!!=!!!$!!=$!=!!!!=!!!!$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!!!!!!!  !!! !!!!    !qšõþÿþÿýÿýþþÿþÿýýýýýýýýýýýýýýýýæÓ³³³³³³³³³³³³³³³³³³³³³¸³¸³³¸³¸³³³¸³³³¸³³³³¸³³¸³³¸³¸³¸³¸³¸³³³³¸³¸³66i6666666666666ii6666i6i666666666i6666666666666666666666666666666i66666i666i6666i66666i66666i66666666666666666i6666666666666666666i(66(%&%%&%% &% &% % % % %& %% %% %%&%%%((5(6666666666666666666666666i6666666i6666ii6i66666666i6666i666666i6666666i6666i666 % % %  % %66i6i666666666i8666666666666i6i66i666i66666666i66i666666666666i66666i666666i6i6i66666i6i6i66i66666666i6666666666666666i66¸·¸·¸·¸·¸·¸·¸¸¸·¸·¸··¸·¸¸¸¸¸·¸¸·¸·¸¸·¸··¸¸·¸···¸···¸·¸·¸¸·¸··¸··¸·······³···³·····K·³·³··K·K³·K³³·K·K·K···KKK·K·KKKKKKKKK·KKJ·KKKJK·J·JKKKKJ·JKKWKJKJKJJJJJJKJJKJJKJJKJJJJJJJHJJHJHJGHGGGFGFFFFFEKKKKKKKKKKKKKKKKKKK+OOOOO+þþþüÿÿþþþþþþþþüþþþþþþþþþþþþþþþþüþüþüþüþüüüüüüüüü1ŠŠ‡Œ‡1üüüüüüüööõöööõöõöõöõöõëõö÷úóóúóüóóóóóóóóóóóóóóóóóóóóóó*4‡*4‡*óóóóóóóóðóðòóðòððððóððòðòððòððððóððððððððÝÝððßèðïðððð*3O343*ðÝÝÝðÑïïáÑÑïïÑïÑÑÑÑÑïÑÑÑÑÑÑÑÑÑÐÑÑÏÐÐÑÐÑÑÑÑÑÑØ¦°¦+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFFGGGGGGGHGJGHGHGJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþýþýþýýüÿü÷óóú÷óúóúóò¬s?===$$!!==!=====$$!!!!$$$!!======!$===$===$$===$===========!=>===$=====!==============$===A=====$=======$=========!====================$=C>========A====A=A=========>===>=========>=====$=$=>=========>==$===========>===========>=====$==>======$$=====$=====$=>=$=======$===!$=====!=====>======!========$$!$==$!$$$$==$===$$$==$$$====!=!=$!!$!$$$===!$!!===!!!$$!=$!!$$$$!!$!=$!$$!!!$$$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!!!!!!!!!   !  =q¥íþþþþÿýÿþÿþþÿÿýþýýþýþýþýýýýýýæÓ³³·³³³³³³·³³³¸³³¸³¸³³³³³¸³³·³¸¸³³¸³³¸³¸³³¸¸³¸³¸³¸³¸³¸³¸¸³¸¸¸¸¸¸¸6i6666666666i6i66666i6666666666i6668i6666i6666i6i66666666i66i66666666666666666i66666666666i66666666i66666666666ii666666i666666666666(i5%%% %&% &% %%% &%% %%% % %% % %%% % %%%%86666666i86666666i66i666i6666666666i668666666i66666666666666666666i6i6666666ii566i % % % %  % % 666666666666666666666666666665666666i66ii666666666666i666i6i66i666i66666i66666i6i6666666i66666666i6666666666666i6i66666i6¸¸·º·¸·¸¸¸¸¸··¸¸¸¸¸¸¸·¸·¸·¸·¸¸·¸¸·¸·¸·¸¸··¸·¸·¸··¸¸···¸····¸¸·¸···¸·¸···¸·················³··K³·K··³··³·KK···K·KKK·K·K·K·KKK·KKK·J·KKJ·J·JKKKJ·JKKKJ·JKJ·J·JJJKJKJJJJJJJJJJJJJJJJHJGJGGGGGGFFFFFFD³KK³KKKKKKK³KKKKKKK+OOOOO+þþþþÿüþþþüþþþüþüþþþþþüþþþþüþüüüþüþüüüüüüüüóüüüüó1‡Œ‡ŠŒ1üüüüóüüööõöööõëõöõöõëõëöëöóúóóóóóóóóóóóóóóóóóóóóðóðóðó*‡4*‡4*óðóðóðóððóððððððóððððððððððððððððððððððððÝÝððÝÑÑÑðÑáï*43334*ÑݰØÑÑðÑïÑÑÑÑÑáÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÐÑÑÑÏÑÑÍÑÍÍͦ°¨Ô+&&&&&&+K³KKK³KKKKK³KKKKK³EFFFFFFFFGGGGGGHGHGJGHGJHHHJHHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþýþýþþÿþúóóúóóúóóó÷ò¬�?$!!$!$==!!$$$!!===$!======!=!=!$==!==!!====$!!!===!$!$=$==!=A==$!=!===$$==!$$==$===============!$=========!==$$==================>>>>=$==========$==$$=====>=======C=====$==========A=>=>=========>=$===>>=>=>==>============>>===$=============>=$===$==================$!===$=>==$==A==!$$!==$$$$$$$==>>==$$=$!$=======$!==!==$$!!$$$===$!$====!$=$=!==$$!!!!!==!==!!==!==$$!!!!!!!!$!!!$$!$!!!!!!!!!=!!$===$!!!$$!!!!$==!!!!!!!!!!$!!!! ! !!!!!!!!!!!!!!!!!!! !!!!!  !   !   !!    ! ! ! !sªõÿþÿýþÿþÿýÿþÿýýýþýýýýýýýýþýýýæÓ³³³³³³³³³³³³³³³³³³³³¸³¸¸³³¸³¸³³³¸³¸¸³³¸³¸³³¸³¸³¸³¸³¸¸¸³¸¸¸¸¸¸¸¸¸656665666666665666666666666666666i6666656666665666666666666666666i866666666666666666i666666i66666666666666666i8666666666666666666666%%% %%%%%% %% %%%%%%%%%% %% %%%%%%% % %%%& %%5666i666i6i66666666666666i66666i666668666666666666i66i666666666666666666666655666( % % %  %666i65666666666i6666565666666i666666i5666666666666666666666666i6666666666i666i6666666i5666666i66i66666666666i6666666666¸···¸·¸¸¸¸·¸¸¸·¸·¸·¸·¸¸¸¸¸·¸¸·¸··¸··¸·¸·¸¸··¸··¸····¸···¸¸···¸··¸·³··³··³·³·³··³·³·K·³K·K³³³³³³³³K³K³K·KK·KKKKK·KKKKKKKKK·KKK·J·JKK·JKKJKKWKKJ·JKJKKJKJJJJJJ·JJJJJJJJJJJJJJJJJJHJHJHGGGGGGFGFGFFFKKKKKKKKKKKKKKKKKKK+OOOOO+üþþþüþþþþüþþþþüüþþþþþüþþüþüüþüüþþüþüüüüüüüüþüüüü1ŒŒ‡Œ‡+üüüüüóüõöõöööõöõöõëõöõëõöõúóúóüóüóóóóóóóóóóóóðóóóóóóóó*4‡*2‡*ðóóðóððóððóðóðóððóðóððððóððððóðððððòðððððêÝðÑãèððÑðÑï*34343*ïÝÝÝÑðÑÑïáïÑÑïÑïïÑðÑÑÑÑÑÑÑÑÑÑÑÐÑÏÐÑÐÐÐÑÑÑÑদ×Ô+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFGFGFFFGGGGGGGHGHGJGHGJGHJGJHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþýþýýüÿüúóó÷÷óóú÷óòÕ�l!$!!====!$!!!=============!=====$==$=!==!$$!$==!==$$==$=======$=====$=====$============$===============================>==$=>===>=>==============================>==>==$=>=$=>====>==>A==A==$=>======>=>========$==>==>A===>====$================$=========C=============$======$======$!$====!$$$$===========$==========!=!==$==$!$=======!!=!==$!$$=$!=!=!!===$!!$==!===!!$!!$=$!!$=!!!!!$!=$!!$!$$!!!!!!!!!!!!!!==!!!!!!!!!!!!!!!!!!!!!! !!!!!! !!!$!!!!!! !!!!!q¥íþýÿþÿþþýÿþÿÿÿþþýþýýþýþýýýýýýæÓ³³³³³³³³³³³³³³³¸³³³³³³³³¸³³³³¸³¸³³³¸³¸³³¸³¸³¸³³³¸³¸³¸³¸³¸¸³¸³¸³¸665i6666666665666666666666i5i8666i66666i66666666i66666666666666i666666i566666i666666i66566666666666668i6666666i6666656i66666666i65'%%%%%% %%%%%%%%%&%%%& &%&%%%% %&% %% %%%%%%66666666i6666666666666666666666666666666ii6666666666566666i666i66i66666666i665666%% % % % % 666686566566666i66i66666666666i66666666566i6666666666656666666666i6666666666i6666666666i6666666i666i6i666666666686i6i666¸¸¸¸¸·¸·¸¸¸¸¸·¸¸¸¸¸¸¸·¸·¸·¸·¸¸¸¸¸¸·¸¸¸·¸·¸·¸·¸¸·¸¸¸··¸·¸···¸···¸·¸····¸··¸³···³·······³·³·³³K·K·³K···K···K³K··KKK··K·K·K·KKK·JKKK·JKKKKKKKKJ·J·JJ·HJKJKJKJKJJJJJJJKJJKJJJJJJJJJJHJHHJGGGGFGFFFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþþþþþþþþþþþüþþþþþþþþüüüþþüþþüüþüþüþüüþüþüüüüþ1‡Œ‡Š‡1üüüóüüüööööööýëõëööõöëëõööúõ÷úóóóóóüóóóóóóóóóóóóðóóóðó*‡‡)‡‡*óóóððóðóðóðóðóððóðððððóðððððòððððððððððððÝÝððÝâðððððð1P3434*ðÝÝßðïðÑïÑÑïïÑïÑáÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÑÑÑÑÑÑØ¦°­Í­+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFFFGFGFGGGGGHGHGHHGHJHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþþýþþýÿ÷óóúóóúóóó÷ò¬Žo==$!!!$$=====!$=!=$!$=$!$$$=$=!$==$!=$==>=========A=$==$!===$$=>=$=======>=======$=>=========>==>==========>============$=>=========>===C====>==$=C>=>=>========>====$=====C=$==============>========>=======$=====$=$==>=====$$=>==>====>=======$===>>A===$===$$====$====A======$$==$$==============$===$==========!$$$$=!=!===!$======!$!!!==!$=$=!=$!!!!=$$=!!=!!$=!$=!!$!!==!$=!$$!!!!$=$!!!$!$=!!!!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!! !! !!   !!  !        !  =sªõÿþÿþþÿþÿýþÿþþýýþýýýýýýýýþýýýæÓ·³³³·³³³³³³³³³³³³³¸³¸³¸³·³³¸³³·³³¸³³³³³¸³¸³¸³¸¸³¸¸¸¸³¸¸³³¸³¸¸³¸³66666666666i66i6666665666666666666i6666666666i66666i666665i6ii86666666666666656666666666666666668666666i6666666666666666666i66666665'%%%&%%'%%%%%%&%%&%%%%%%% & & %%&%%%&%%%%% %66666i6666666666666666666666666666i6666i86666666666i666i5666666666866i6666i6666i6i6i6 % % % % % % % % (6666666666666666666666i6666666i66i6666666666666666666666666i66666666i6666i666666666i666666i6i6666566666666666i666666i6·¸·¸¸¸¸¸·¸¸¸¸¸·¸·¸·¸¸¸¸¸·¸·¸·¸·¸·¸¸¸·¸·¸¸·¸¸·¸·¸··¸·¸·¸·¸·¸·¸·¸····¸······················K··³··³·K··³·K···KK·K·KKKKKKKKK·KKK·K·J·J·KKWKJ·JKJKK·J·KKJ·JKJKJJKJKJKJJKJJJJJJJJJJJJJJHJGHGGGGFGFFFFEKKKKKKK³KKKKKKK³KK³+OOOOO+þþþþþþþþþþþþþþþüüþþüþþüüüüüþüþüþüþüüüüüüüüüüüüüü*ŒŠŠŠŒ1óüüüüóüööõöõöõöõöõëõëöëõöõó÷óóüóüóóóóóóóóðóóðóóóóðóóóó*4‡*4‡1ððððóððòðððððóðòððððóðððððóððððððððððððïðÝÝïðßèïðÑÑïá*34343*ïØÝßáÑïáïáïáÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÏÑÑÐÏÑÍÑÍÍÞ¦°ÔÍÍ­+&&&&&&+³KKKKK³KKKKKKKKK³KFFFFFFFFFFGFGGGGGHGJGHJGHJGHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþþþþþýýýÿüúóóúóóúóúóò¬�o==!$!!==$$===!!$======$!!=$!$$!$==$$=================$=!====$>======>===>=$=====$===>==========>===============$==A>=$==>A>===>==============C=====>C===$=====>>====!=====>=======>==>>====>=====>===>>======$==>==========>=====>>===A==============>>=$=====$==========>AA=======$=====>=======A==$=$$============!$!$==$$$==========!!$!=$$$$!!$!!!=!!!!$$$==!$==!==$=$!$==!!!==$$!!!!$!!$$!!!!$!!$$!!!!!!!!==!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !$!!!!!!!!!!!!!  !  !!!!!! !   =}ªíþþÿýÿýÿþÿþÿÿÿýþýþþýýýþýýýþýýæÓ³³³³³³³³³³³³¸³³¸³¸³³³³³¸³¸¸³¸³¸¸³³¸¸¸³¸³¸³¸³¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸66666666666i666666666666666666666666i6666666i666666666566666666666i666666656666665666666i666i666666666666i66566666666666666666i6665(%%%' %%%%%%%%%%%%%%%%%%%%%% %%%%% %%%&% %%((66666666666666666i666666666665i566666i66666566666666i666i666i66666i6666566i66666666 % % % % % % % % % %%666666666666i8i66666656i666656666856666i666666666666666666666666666i66i6666666666i666666666i66666i666666666666666i6i66i·¸¸¸·¸¸¸¸¸¸¸·¸¸¸¸¸¸¸·¸¸¸¸¸¸¸¸¸·¸¸¸·¸¸·¸·¸·¸·¸··¸¸········¸·¸···¸¸·¸·¸·¸¸·³·³·³·³·³··³·³··K³³³³K·³³K³K·K³KKK·KKKK·K·K·K·K·KKKK·JKKKKJKKKKKKJ·J·HKJKJJWJJJKJ·JKJJJJJJJJJJJJJJJJJHJJHJGHGGGGGFFFGFEFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþþþþüþüþþþþþüþüüþþþüþüüüþþþüþþüþþüþüóüüüüüþüþ1ЇŒŠ‡1üüüüóüóööõöúöúöõöõöõëõëöööúöóúóóóóóüóüóóúóóóóóóðóóóðóó1‡‡*44*óðóðððóðóððóóððððóðóðððóðóðððóðóððòððððððÝÝððÝððððïðÑ133434*ÑÝÝßïÑðÑÑïÑÑïÑáïÑðÑðÑðÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÐÑÐÑ­°¦ÞÐÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFGFFGFGGGGGGGHGHGJGHJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþþþþþþþþþþþþýþÿóóóúóóúóóó÷ò¬sj======$=$!==$!=!====!=====$====!====!=!===$===$======$$=====$=======$=============$===!=>==========>========>A=====>====================A>===>>====>=====>>=====A===$=====>===C>====>========>===========$=>================A==>=====A=====$======>=============>======================$===!==!=========!====!$$!=====$=====!$=$=!==!!$====$!========!======9!=!!$$!!!$!$$!!$=$$!!!!=$!!!=!!!$!!!!!!!$!$!!$$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!  !! !!!!!!!!!!!!!!!!!! !!  !     $qªõþÿýÿýÿýþþÿþÿýýýþýýþýýýýýþýýýæÓ³³³³³³³³³³³³³³³³³³³¸³³¸³³³³³³³³³³¸³³³³¸³¸³¸³³³³³³³¸³¸³¸³¸¸³¸³¸³¸66566666666666666666666666i66666666666i666686666666666666666666666665666i6666666566666666666666666666666666666i666666666666i66666666%%%(%%%%'%%%&%% %% '%&%%%&%%%&%&%%%%% %%%%%%%6666666666i66666686i666666666i6666666666668i6666i5666i66666666i6666666i86666666666 % % % % % % % % % % %%56666666666666666666i666666666666666666666666666i66666666665i666666666i666666666i6666665666656666i666i666666666666666¸·¸·¸·¸·¸·¸·¸·¸·¸·¸·¸·¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸·¸·¸¸³¸¸·¸¸·¸¸·¸·····¸···¸·¸······¸···³·········³·³K³·³·K·³K³K·····K··KKK·KKKKKKK·K·KK·KKJ·KKKJ·J·JKKKKKKKJK·J·JJJJJJJKJJJJKKJKJJJJJJJJJHJHJHGGGGFGFFFFFDKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþþþüüüüüüþþþþþüþþþüþüþþþþþþþüþþþþüüüüüüüüüüþü1ŠŠŒ‡Œ+üüüüüóüööîöýö÷öõöõëìëõìõööóöóüüóüóúóóóóóóóóóóóóóóóðóóó)4‡*‡‡*óóðóóóðóóðóððóóóðððððóðððððòðððððððððððððÝÝðïãèðððððð*43434*ïÝÝÝððïðïðïïÑïïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÏÑÑÑÑÑÑ×°¦ÞÑÑÍ­+&+&&&&+KKKKKKKKKKKKKKKKKKFFFFFGFFFFGFGGGGHGHGHGHHGHJGJHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþþþþþþþýÿüúóóúóóú÷úóò¬ŽC==========$$$=======!==========!!====!====$===========$=======$$==$$==$=$$===$=======!=======>================>=$=====$===>==============>A===>=====>>======C===>========>===>=A>====>>A====================>>=======>================>=============>=$$=>===================$==>===$=>========$$=>=>==$!$$$=$==$$====$======$$!==$$========$!========$=$$===!$!$!!$!$$!$=$!!=$=$!$=!!!!!!==!!!$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!! !!! !!!!       =p¥íþþÿþÿþÿþÿþþÿÿþþýþþýþýýýýþýýýæÓ·³³³·³³³³³¸³³¸³¸³³¸³¸³³¸³³¸³¸¸³¸³³¸¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸6666666566i66666666666666666i666666666i66666668666i6666666666666666666666666666666i666666i66666666666666666666666666666666i666666666%%'((%%%%%%%%%%%'%%%%%&%%%%%%%%%%%% %%%%%&%%(i66666666i666i6666666666666666668i6i6666i666666666i6666666666666666666i6i6666i666 % % % % % % % %% % % % % 66666666666i6666666666i66666666666i6i66ii68i666666666666666666i666i66666666666i666666666666666666666666666666666666666¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸¸¸·¸¸¸·¸¸¸·¸·¸¸·¸·¸·¸···¸·¸·¸·¸·¸····¸·¸·¸··¸·¸···············K··³··³·³·KK·K³K·K·KKK·K·K·KKKKKKKK·J·J·KKKJK·JKKWKJ·JJKJKJ·JKJKJKJKJJJJJJJJJJJJJJJHJHGJGGGGFGFFFFFFK³KKK³KKKKK³KKKKKKK+OOOOO+þþþþþüüüüüüüüþüþþüþüþüþþþüþüþþüüþüþþüüüüüüüüüþüü+ŠŠŠŠ‡1üóüüóüóõöýöõöýöõöõëõëëöõëîüõúóúóóóúóóüóóóóóóóóðóððóððð*‡‡*‡4*ððððððððóððòððóððóðóððððóðððððððððððððððïÝÝððÝèïðÑÑðÑ*44343*ÑÝÝÝÑïÑáïÑÑáïÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÍÑÍÑͰ¦ÔÍÍÍÍÔ+&&&&&&+K³KKKKKKKKK³KKK³K³EFFFFFGGFGGGGGGHGHGJGHHJGHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþþþþþþÿ÷óóúó÷÷óóóóò¬�m=!$!$$!$$$$!==!$$$$==!$!===============$$!$======$!===========!=C===@======>======>========$=====$===========>===>===>>=========>=>=========================>=====>=>C>==C=====A>=>========>>>C=======>=A==>>==>C=======>====>===>==========>>===========>===>====>A>=========$=====!=A======$===========$======$$==$==$==!======>=$!$==$==!$$==!=!=!===$!!==$=$!!!==$=!$==$!$!$!$$$$!!!=!$!==!=!!!$!!!!=!!$!!!!!!!!!!!!$!!!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !!!!     !! $s¥õÿþÿþþþþþÿþÿÿýýýþýýþýþýýýýýýþæÓ³³³³³³³³³³³³³³³³³¸³·³³¸³³¸³¸³³³¸³¸³¸³³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸6i666666566666666666666666666666666i8666666666666666666666666666666666666i6666666i6666666i66666666i666666666666668i66666666666i666666%%(%%%%%%%% %%'&%%%%'%%%%%% %%%%%%'%%%'%%%(566666666666666i6666666666666666666666666666666i6666666666666666666666686666666666% % % % % % % % % % % %% 66666i6666666i66i6i6666666666666666666666668666666666666666666666666i8666666666666666666666666666666666666666666666¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸·¸¸¸¸¸¸¸·¸¸¸·¸··¸¸·¸··¸·¸·¸·¸·¸·¸···¸·¸¸·¸·³··³··³·³··³·³··³·K·K³³K³³³K³·K³K³K·K·KK·K·KKKKKKK·KKK·J·J·JKKWKKKKJ·JKJ·JKJKJKJKJJJKJJJJJJJJJJJJJJJJJJJHJJGJGGGGGGFFFFFFKKKKKKKKKKKKKKKKKKK+4OOOO+þþþþþüþüþüüüþüþþþþþþþþþþþþüüþþþþüþüþþüüüþüüüþüüü1ŠŒŠŠŠ1üüóüüüüööööüöúöõëöëõëõëõö÷óöüóóüóóüóúóüóóóóðóóóóðóðóðó*4‡*‡‡1ðóóðóðóðóðóððóðóðððððóðòðððóðððóðððððððððÝÝðïãèððððÑð*43434*ïÝÝßðÑðÑðïÑïÑÑÑçÑÑÑðÑÑÑÑÑÑÑÑÑÎÑÑÑÑÑÑÑÑѦ°°ÌÑÍÑÍ×+&&&&&&+KKKKKKKKKKKKKKKKKKFFFEFGFFFFFGFGGGGGGHGHGJGHGJHGJGHHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþþþþþýÿü÷óóúóóúóúóò¬�o!!===!!!=$$!=$!$=$!===!===========$$====!!$====$=$$========$$==========>=A===>=====>==$==============>=>====>===>====A>>A=====>>>==========>=======>>>=>===C===>>=>>=>=>A=$=>==>=A>=A=======A=>=======>>>=>===CC>=>====>===A=======>>=$=>>=>====>==$=>====>======>C>$===!$=======>=$==>A===$====$$$================!$$=======>========$!!=!=!=$=$=$$====!!$$$$=!$=!$!!$===$=!!==!!$!!$!!$$====!!$!!!$=!!$$!!!!!!!!!!!$==!!!!!!!!!!! !!!!!!$!!! !!!!!!!!!! !!!!!!!!!  !! !     !!  ! =q¥íþþÿþÿÿÿþÿþþÿÿýþýþþýþýþýýþýýýæÓ³³³³³³³³³³³³³³³³³³³¸³³¸³¸³³³³³¸³¸³³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸¸³³¸¸¸6666666666i6666666666666666666666666666i66666i66666666666666666666666666666666666666666866666666i66i666i66i66i66i6666666666666666666('%%%%%%%%'%(%%%%'%%&%%%%%%'%%%%%%%%%%%%(666666666i66666666666666666666666666666i5i6666666666i666i6666i6666666666i6666666 %%% %% % % % % % ((666666666666666656666666666666666666666i6i66666i6666666666666i666666666668i6i666666666666666666666i66666666666666666666¸¸·º¸¸·¸¸¸¸¸·¸¸¸·¸¸¸·¸¸¸¸¸¸¸·¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸¸¸¸·¸···¸···¸¸··¸·······¸·······³··³···³·³··K··K·³·K·K··³K·K·KKKK·K·K·K·KKK·KKKKKK·JKKJKJ·JKKKKJJ·JKH·HJJ·HJJKJJJJJKJJJJJJJJJHJHJGHGHGGGGFFGFFDKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþüþþþüüþþüþþþþþþþþþþþüþþþþþüþþþþþþþüüüþüüüüüü1ŒŠŠŠŒ1óüüüüüüööúööö÷öõöõëöëõëõëöüîüóüóóúóóóóóóóóóóóóðóóóóóóó*‡‡)‡4)óóóóóóóðóðóóðóðóóðóðóððððóðððòðððððððððððÝÝððèððððððï134443*ðÝÝßððïðÑïÑðÑðïÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑØ°¦ØÑÑÑÑÍÍ+&+&&&&+KKKKKKKKKKKKKKKKKKDFFGFFFGFGFGGGGHGHGHGHGHHHGJHJHJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþþþþþþÿ÷óúóó÷úóóó÷ò¬Žo=!$$$===$======$===!======$$===$$=$$===========$$=$=========$====$==$======>===>===$=================>=>======>>====>>==========>===A==>==>=====>======>=>=$=C=====>=$===>===>===========>>====>>===>>>===========>==>==>>===>==>==$>>==>>===>======>========$==========>=$>===$!=======>===$=>===$==========================!==$!$======$$$!===$!$!===$==$!$$!=====$=!=!$!!==!!!$$=!$!=$=!!$!$=$!!=$!$$!!!$!!$$!$$!!!!!!!!!$$!!!!!!!!!!!!!!!!!!! ! !!!! !!!!!! !!!!!!! ! !!       =s¥õÿþÿþþþþþÿþÿÿýýýþýýþýþýþýýýýýæÓ³³·³³³³¸³³¸³³¸³¸³³¸³³¸³³·³¸³¸¸³³³³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸³6i666i56666666666666666666666666i6666i8666666666666666666666666i66i6666566666666i666666i66666666666i66668666666666666666666666666666666%''%%%%%%%%'%%%'%'%%'%%%'%%%%%%%%%%%%%%66666666666666666666666666666666666i666666i66666i66666666i6i666i66666666i6i6666666666%%%% %%% % % % % % % % (666666666666i6666666666666666666666668i66665666i6666666i666666666666666666i666666666666666666i6666666i6666666666666666666º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·º¸¸·¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸·¸·¸¸¸·¸¸¸·¸·¸·¸·¸·¸·¸··¸··¸·¸·¸¸··¸·¸·¸··¸··············³··³···K·K·K···K··KKKKKKK·K·KK·K·J·J·J··JKKWKKJ·KKJ·J·JKJKJ·JWKKJKJJJKJJJJJJJJJJJHJHGGGGGFGFFFFFFKKKKKKKKKKKKKKKKK³K+4OOOO+þþþþþüþþüþüþþüþþþþþþþþþÿþþüþüþþüüþüþþüüüóüüüüüüú1ŒŒŠŠŠ1üóüóüóüööîöýö÷öõöõëõìõëëöõü÷úúúóóóóóóóóóóóóóóóóóðóðóðó*4‡*‡‡*óðóðóðððððòðððððððððððóðððððððððððððïððððÝÝððððïðïÑÑÑ*344331ÑßÝàÑïïÑïáïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÞ¦°­ÍÑÍÍÐÎÍ+&&&&&&+³KKKKK³KKKKKKKKK³KEGFGFFFGGFGGGGGHGHGJGHJGHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþþþþþþþüÿüóóóúóóóúóóò¬so!$=!==========$!$=$!==========$$======$======!$==!==$======$===============>=================>========>===>>=>AA=>=>=>==========>=>=>===>>===>=>A>==>========>C>=>===$===>C===============>====>>==>=CA========>>>A====>==>=>>=>C>======>===>======>>>====>==>=====$=======A=$==$==$=================$=======$==============$$!!$!$$$$====$======!!$$=====$$!======$===!=!!==!!$!!$==$!$===!!!!$$!==$=!!!!!!!$!$==!!!$!!!!!=$!!!$!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   !  ! =s¥íþþÿþÿþÿþÿþþÿÿþþýþþýþýþýþýýýýæÓ³³³³³³³³³³³¸³³³³¸¸³¸³³¸³¸¸³³³¸³¸³¸³¸³¸³¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666666666i666666i686666666666666i66666666666666666666666666666666666666i686666i8i6666ii666666666i6666666666i66666666666666666666666'(%%%%%%%%%%'%%%%%%%%%%%%%%%%%'%%%%%%%%6666666666666i6666i66666666666666i666666666666i666666665i66666i6i666666666666i6666666% % % % %%% % % % % % % % %%% % %5666666666i6ii6666666666666i666666i666665666666666666666i66666666666ii6666666666666i6666666668i666665i666666i6i66666666i¸¸·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸¸³¸¸¸·¸·¸·¸·¸··¸·¸··¸··¸·¸··¸·¸··³¸·³··³··³·³·³·³·³·³·³³K³³K·³³³K·³KK·KKKKKK·K·K·KKKKJ·JKKKKKKKJKJ·JKKJ·HKJKJKJJJKJJJKJJJJJJJJJJJJJJJJHJHJHGJGGGGFFFFFFFDKKKKKKKKKKKKKKKKKKK+O4OOO+þþþþþþþüüþþþþüþþþþþþþþþþþþþüþþþþþüüüþüþüüüüþüüüü1Œ‡ŒŠŠ1üüüüóüüõöýöööýöõöõöõöëëõëöüöüóóóüóóóóóüóóóóóóóóóóóðóóó*‡‡*‡4*óóðóóóðóðóðóðóððóðóðóððððóðóððóððóðððððððÝÝððèðððððïð*43443*ïÝÝßðÑáÑïÑÑÑïáïÑðÑÑÑðÑÑðÑÑÑÑÑÑÑÑÑÑÑÐÑÔ°°ÑÑÐÑÑÍÍ×&&&+&&&+KKKKKKKKKKKKKKKKKKDFFFFFFFFFGFGGGGGGGHGHGHJGHGJGHJGJHJJHJHJHJJHJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýþþþþþþþþþþþþþþÿúóúóó÷úóó÷úò¬Žo7=!!===$==!====!========$!========================$=========>===========$$=========C====>>>==>==================>========>>==========>=>===>====>=>=>>=====>===>===>==>==>==?==>====>>===>====>=>====>>===>=====>=>=========>==========>=============>=====$=A==>======>====>=====>===============$$=========$===A==$=$$=======$=====!$====>=!$==!$==$$$$==$!=$$$$=!!==$=$$=$$=!==!!!!$!==!!$=!!!==!!!$!!$=!!!!!!!!!!$!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !!!!!!  !!!   !     !=q¥õÿþÿþþþÿþÿþÿÿýýýþýýþýþýþýýýýýèÓ³³³³³³³³³³³³³³³¸³³³³³³¸³³³³¸³³³³¸³¸³¸³³³³³³¸³¸³¸³¸³¸³¸¸³¸¸³¸³¸¸¸666666666666656666666666666666666666666i6i6666666666666566666666i665i666668i66666666666i6666666666666666666686666666666666666i666666665%%%%%'%'%'%%%%%%%%'%%%%%%%'%%%'%'%%'%%666666666656666666666665666666666656666656666666666i666666i8656666666i66666666i566( %% % % %% % % % %% % %% %% % 666i6666666i6656665666666566666666i666666666665i666666668i6666666666686666665666i6666666666866666666666666666666666666666¸¸¸¸¸¸¸·º¸¸¸¸¸¸·º·º¸¸¸¸¸¸·¸·¸·¸·¸·¸·¸¸¸¸¸¸¸·¸·¸¸·¸¸¸¸·¸·¸·¸·¸·¸····¸···¸·¸·¸··¸·····³····³··K·K·³K³·K·K³³·K³³K···K·KKKKKK·K·K·KK·JK·KKKK·J·JKKJ·J·H·JKJ·KJKJJJKJJJJKJKJJJJJJJJJHJJHJHHGGGGGGFFFFEKKKKKKKKKKKKKKKKKKK+OO4OO+þþÿüÿüþþþþþþþþþüþþþüþþüÿüþþüþþþþüþüüüþüüüþüüüüüü+ŒŒŠŒŒ+üüüüüüüöýööüöõöõöõöõöõëõöõüõóóóóóóúóúóóúóúóóóóóóóóóóóó*4‡)‡‡*óóóóóðóðóóðóððóóðððððóðòðððððòðððððððððððêÝððâèðððððð*44344*ðÝÝÝïïïïÑïðÑïÑïÑÑÑðÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑØ°°×ÑÑÑÑÑÑÍÔ++&&+&&+KKKKKKKKKKKKKKKKKKEEFFFFGFGFFGGGGGGGHGHGHGHGJHHJHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýþþþþþþþþþþþþþþýÿü÷óóúóóú÷óóò¬so==========$$$===9====$!!=$$=========$=====!$==========A==>=>=========$$===========>====CCA>========>============>>====>==A>========>>====>>===>C==>C==>===>>=>===>>>>>>====>>>=>========CC=>====C===>C==>CC>====>>==============>>>>=========>>===C>>>======CCA==========$===>==>>>====$===================$====>===!$!!=>======>===========$!!!==!==$!!!====$!!!$=!$==!!$$!!!=$!=====!$$$=$!!!!!!$$$!!=!$$!!!!!!!$!$$$$!!!=$$!$!!!!!!!$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !   !! !!q¥íþþÿþÿþÿýÿþÿÿÿýþýþþýþýþýþþýýýæÓ³³·³³³¸³³³¸³³¸³³³¸¸³¸³³·¸³¸³³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸³¸¸666656666666666666666666666666666i5666666i6666666i6566666666i6666665666666666666665666566666686686666666666666566i66i666666656666666%'%%'%%'%%%'%%%'%%%'(%'%'%%%'%'%%%%%66656666i56666656666666666i666666566666666665656566666666656666666666i6666666666686%% %% %% %% %% % % % % % % % % %% % % %%666665656566666666666666666666i66666666665666666i66666666666666666666666666666565666666666666666666666666666i666i5666i¸¸¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸·¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸·¸··¸·¸·¸¸·¸·¸·¸¸··¸¸···¸··¸··¸·················³··³··K³·K·³K·K·K·K·K·KKKKKKK·J·J·J·JK·JKKJ·JKKKKKKJ·HKJJKJKJKJKJKJJJJJJJJJJJJHJHJGHGGGGFGFFFFFFK³KKK³KKK³KKK³KKKKK+O4OO4+þÿüþÿþÿÿüþüþþþþþþþþþþþþþþþüüþüþüþüüüüüþþþüþüüóüü1ŒŒŒŠŒ1óüóüüóüöö÷öööúöõöõöõöõëõöîüõóóóóóóóóúóóüóóóóóóóóóóóðóð1‡‡*4‡*òðóðóðòðððòððóððòðóððððððððððððððððððððððÝÝððÝððïðÑÑï*43443*ÑݰØÑáÑÑáïÑÑÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ×°¦°ÑÐÍÑÍÍÍÍ­+&&&&&&+K³KKKKKKKKK³KKKKK³EEFFFFFFFFGGGGGGHGHGJGJGJHJGHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿýþþþþþþþþþþþþÿ÷óóúóóúóóúóò¬�o$=!$===!=====!==========$$=====!===$============>=====>=$=>=======>>====>>===>=======A===>======>==>=>>====>>=======>====>====>=====>==>>=====>===>=======>====>======>=======>=>====A>====>>=>===>===?=======>====>==>==>====>>=====>>=======>A=$=>===========>=====>>=====>================================================$=$===$=======!===$===$$==$===!!$=====$$==!!=====!$$=$!$!!=$!!$=!!$=!!!!!!$$!$!!!!$!!!!$!!!!!!!!!!!$!!!!!!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!    !    !=s¥õÿþÿþþÿþÿþÿþÿýýýþýýþýþýþýýþýýæÓ³³³³³³³³³¸³³¸³³¸³³³·³³¸³³¸³³¸¸¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸656666i665666666666666666665665666666666666665666665i6i66668665656666666666666666666i66666666i666666666666666666666666666666666656666i8666(%%('%%'%'%'%%'%%'%%%%'%%%%%6556666i66666666666666666666666566666666666666666666666i6666666666666666666i666666i666666(% % %%%% % % % %% % % %% % % %% % % %% % i6666666666666666656666666666666i666666666656666666666666666666668666666866666566i6666666666666666656666666666i86666i86¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸·¸¸·¸¸¸¸·¸··¸···¸····¸····¸·³·¸³··³·····³·³·K³·K·³·K³·K³³³³³K·KK·KKK·KKKKKK·K·K·KJ·KKJ·KKK·J·JKKWKJKJKJKKJJJ·JJJJJJJJJJJJJJJJJJJHJJHJGHGGGGGFFFFFFDKKKKKKKKKKKKKKKKKKK+4OO4O+þþüÿþÿþÿþþüþþþüþþþþþþþþþþþüþþþþþüþüþþþþþþþüþüüüú1ŒŒŒ‡Œ1üüüüüüüüöüöýö÷öõöõöõëõöõö÷óóóóóúóóóóóóúóúóóóüóúóóóóðóó)4‡*‡‡1óóðóóððóðóðóðððóðððóðóðóðóðððððóðððòðòðððêÝððãèðððððð*44434*ð°ÝÝïÑïïÑÑðÑðÑÑÑðÑðÑÑÑÑðÑÑÑÑÑÑÑÑÑÑÑÔ°°ÐÑÑÐÑÑÑÑÍÔ+&+&&+&+KKKKKKKKKKKKKKKKKKFFFFFFFFFFFGGGGGGGHGHGHGHGJHGJGJHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþþþþþþþýÿüú÷óóúóóúóóòÕ�o=!=!$=!!$=!=$!$==============$=====!=====$=====>C=$=======>======>AA====>=>>>===>=>=>C>==========>=>=>A>==>AA>>==============>=>>>>>====A>=========>=>>==>>====CC>====>>>>=====>=====>A>====>=>===>===>A>====AA>>===>==>>======>>=====A>=C=====A================>>==>C>=====>===>==$$==>========$==>==$========$=>=>==========$!====$!!$==!=$!!!!====!=!!$==!!===>=!!$=====!!=$!!===$!!==!!!==$=$!!!=$!!$======$!!!!!!!!!$=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!! !!!!!!!  !!!!!!!! ! !    !  $qªíþþÿþÿþÿþÿþÿÿÿþþýþþýþýþýþþýþýæÓ³³³³³³³³³³³³³³³³¸³³¸³³³¸³³¸³³³³³³¸³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸¸¸³¸¸¸¸¸¸¸6i6666566i66i6666666656i666666666666i6666666i6656i6566i8666666666668666666666666666668i6666665666666666666566656666666666666666666666666666565%%%%%'%%)%%%'%%%%%'%%%%66i66666666666666i6666668665666666666666666i6666666666666666666666666666666666666666666ii66( % %%%%% %% % % %% %% % % % % % %56% (666566666656i666i66666666i65i66666666666566666668656665666666666666666666666566666i666i665665668666i666665666666666¸¸¸¸·¸¸º·º¸¸¸¸¸¸º·º·º·¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸¸¸¸¸¸¸³¸·¸¸·¸·¸·¸¸·¸¸·¸·¸¸··¸¸·¸·¸¸·¸··¸··¸·¸····³·³·³··K··K³·K·³K³K³·K·K·KK··K·KKKKKJ·KKKK·J·JKKJKKKJ·JKKWKJ·HKJ·HJJJKJKJJKJKJJJJKJJJJJHJJHJGGGGGGFFGFFFFKKKKKKKKKKKKKKKKKKK+O4OOO+þþþþÿþÿþþþþþþþþþþþþþþþþþþüþþþþþüüþþþþþþþþþþüþüüü1ŒŒŒŠŒ1úüüüüóüöýööööýöúöõöõöõëõööó÷÷óóóúóúóóóóóóóóóóóúóóóóóóó*‡‡*4‡)óóóóðóóóóðóðóðóðóóóóóðóðððòðóðòððòðððððððÝÝððêâðððððð*43444*ïݰÝïáïÑïïÑÑÑÑÑðÑÑÑÑðïÑÑÑÑÑÑÑÑÑÑÑÑØ°¦ßÑÑÑÑÑÑÑÑЭ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFGGFGFGGGGGHGHGHGJGHHHJHJHJHJJJHJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþþþþþþþþþþþþþþÿóóóúóó÷÷ó÷÷ò¬Žo==$=$==$===$=======$$9===$======================>=======================================>=>=======>=====>=>>====>>==>>====>>===>===>===>=>===>=>>====>>===>==>=>A===>===>>===>>=====>>=>==>>====>A====>C>>===>======>====>====>>=======>======>=>==========>>========>====>===>>=================>====$=$=========$====$$=====!========$!=============$$==!==$$$$=$!=!$=$=$==!==!=$$$=$!$!!=$!$!!$!!!$=!!$!!$!!!$!!!!!$!!$!!!!!!!!!!!!$$!!$=!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!    =sªõÿþÿþþÿþÿþÿþÿþýýþýýþýþýþýýþýþæÓ·³³³³³³³³³¸³³¸³¸³³¸³³¸³³¸³³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸³¸³¸¸¸¸³¸¸¸¸¸³¸³¸¸i56666656666666666666666666666666666666666i6656i66666i66666666666i66666666666666666666666666665666666668666566666i666665666666666666666666566655%%%%'6%%'%%'%%%%%%6i666666666656666656666666666666666666666666666i66666666566666666666666666686666666i6i66666666566%%% % %%% %% %% % % %%% % %%%%% %%65(5666666i66666665666666666i866666686i666666666656666666566666665666i666666665666i86666i6666666i566666666566666666666i66º¸º¸º¸¸º¸¸·º¸¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸·¸¸·¸·¸¸·¸·¸·¸··¸··¸·····¸··¸·······¸····³·········³··³····K·³K·K·KKKK·K·K·K·KK·KK·J·J·KKJ·J·J·J·JKKKJKJ·J·JJJKJKJJJKJJJJJJJJJJJHJGHGGGGFGFFFFDK³KKKKKKKKKKK³KKK³K+4O4OO+þþþüÿþÿþþþþþüþüþþþþüþþþüüüþþþþþüþüþþþþþüþüüüüþüý*ŒŒŒŒŒ1üóüüüüüüöúöööõö÷öõöõëõöõöõ÷÷óóóóóóóóóóóóóóóóóóóóðóóðóð*4‡*‡‡*ðóðòðððððóððóðððóðððððððóððððððððððððððððêÝïðßèÑðÑïïÑ*44434*ÑÝÝØÑÑïáÑÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÑÑÞ°°­ÍÑÍÑÍÍÑÍÎÍÔ+&&&+&&+³KKKKK³KKKKKKK³KKKEFFFGFFFFGFGGGGGHGHGJGJGHJGJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþÿþþþþþþþþþþþüÿüúóóú÷óóúóóò¬�j!======!!==$$===========$!$======$==========$===9=$=>==========A>=====$$==>=====>===>======>==>>>=========>=>====A>>====>=>C>===>======A>=====>C>>>=======>>==>>>>=>>====>>>A>=C>==>>=>=====>>>>==>>C>==>=>>==>>>=======>CA>>>>=============>>====?==$=======>=$=>>>====>==C>>=>>==>====>====$====>>====$===========$====$========>========>>>=======>>=======!!$$$==$!!$==!===!!!!!$====$!!$===$!!!$!!!!!!!==$$==!!!!!!!!!!$!!!!!!$!!$!!!!!!!!!! !!!!!!!! !!!!! !!!!!!!!       !  =}ªíþþÿþÿþþÿþÿþÿÿýþýþþýþýþýþþýþýæÓ³³³³¸³³¸³³³³¸³³³¸³³¸³³¸³³¸¸¸³¸³¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6686666656666666666666666666666666666666i6665i666666666666666666666666666i866i56666666666566666666i6666666666666656666666566666666666666666666665%%%%665%%%%%%%%%%55666i66666666666566666666666665666566666666i66i666666666666665665666666666666666666866666666666%% % %% % % %%% %% %% % %%%6666666666666666666666666566ii8ii6666666668666666666i6666i656666666666666666666666656668686866666666666666666566666666666666¸¸·º·º·¸¸¸º¸¸¸¸¸º·¸¸¸¸º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸··¸·¸¸¸·¸··¸··¸·¸³¸·³¸·³·¸³¸··³··³³·³³·K·³·K·³³K·³KKK·KK·K·KK·K·KKKKKKKJ·JKKJ·J·JKWKKKKKJKJKJJKJKJJJJKJKJJJJJJJJJJJJJJHJJHJGHGGGGGFFFFFEFFKKKKKKKKKKKKKKKKKKK+4O4O4+þþþþüÿüþþþþþþþþüüþüþþþþüüþþþþüþþüüþþþþþþüþüüüüüü1ŒŒŒŒŒ+üüüüüüüöýîýöö÷öõöõöõëõöõööóö÷óóúóüóóóóóóóóóóóðóóóóóðóó*‡‡*‡4*óðóððóðóóðóðððòóðóðòðóðòðòðòðóðóðððððððððêÝððÝððððÑðÑ*44443*ïßÝßïïðÑïÑðÑÑÑðÑðÑïÑÑðÑÑÑÑÑÑÑÑÑÑÑ­°°ÑÑÑÑÑÑÑÑÑÍÍ­+&&+&&++KKKKKKKKKKKKKKKKKKEFFFFFFGFFGFGGGGGGGHGHGJGHJGHGJHJHJJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þÿþþþþþþþþþþþþþÿýúóóúóóúóóóúò¬�o=$===>=========$=====$==============================>===============>>=====>=====>===>==>==>===C===>===>=>=>=====>==>==>=>>====>C===>=>==>>===?=====>==>==>A===>=C=======>=>=>>A>=>>>===>=>=>===>==>>==>=>====>=>==>====A>==>=======>>==>>====>>===>===>=====C>$=C>=>=======>=>=====>===C======================================$=$=$========!==!$==$===$$$$==$$===!==$==!=$===$$$===!$====!!==9=!$!$!=!$$!==CYCYCZ@ZZZBBZZZCYCBBZZCYBBZZ@BBYBBCZZBBBBYBZ@@BZBBB@@ZBBB@B@BBB@BBB@B@BBB@@@CBBB@@B@@@@@B@@B@@@@@B@@@@@@@@@@@@@@@@@@@@@@@;@@@;@@@@@@@@@;@;;@@@@;;@;;;;@@;;;;;;@@@@;;;;@@;;@@;;@@;;@;@@@;@;@;;@@;;;;;@@@;;@@@@;;;;@@;;@@;;;;@@;;@@@;@;;;;@@@@@;;;;;@@;@;@;;@@!! !     wªõÿþÿþÿþÿþÿþÿÿþýýþýýþýþýþýýþýþæÓ³³³³³³³³³³³³³³¸³³³³³¸³³¸³³³³³³¸³³³¸³³³³¸³¸³¸¸³¸³¸¸³¸¸¸¸¸³¸¸¸¸¸³¸66666666666666666666666666566666666i5i666666666666566666566666566i6686i66665i66i65666666665666i66666i66568666i5656566666i665666i66666666666666665(%(66665%'%(((((i86i56666666666i66666666i6i666566666i666666666666666566666666666666666666i66666666666686666666666i666%%% %% %%%% % % % % % % %% % 66666i66i66568i6666666665ii6666666666i8i666666666666666666666666666656666666666666666i666666566866656666666666666686666666¸º¸¸º¸·º·¸¸¸¸¸·¸·º·º·¸¸¸·¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·¸···¸·¸·¸··¸·¸··¸··¸··¸····¸·····³³··³·K·K··K³·K·³³³K³·K·K·KKKKK·K·K·K·K·J·KKKKKK·JKJ·JKKJ·J·JJJ·JJJJJWKJKJKJJJJJJJJJJJHJHJHHGGGGGGFFFFEKKKKKKKKKKKKKKKKKKK+O4O4O+þþþþþþþþþþþüþþþþþþþþþþþþþþüÿþþþüþþþþþþþþüüüüóüüü1ŒŒŒŒŒ1üüüüüüüüöýöýöõöõöõöõöõöõö÷úõüóúóóóóóóóóóúóóóóóóóóóóóóó*4‡)‡‡*óóóóðóóðóóðóóðóðóðóððððððððððððððððððððððêÝððãèðððððï*4444P1ïÝÝßáðÑðÑÑÑÑðÑÑÑÑÑÑÑÑÑÑïÑÑÑÑÑÑÑÑ×°°×ÑÑÑÑÑÑÑÑÑÑÍÔ++&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFFFFFGFGGGGGGGHGHHGHGJGJHJHJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþÿþþþþþþþþþýÿü÷óóóúóóú÷óò¬so=!$======!====$!===$$===>==$!===@==$=>>==========>======>====>=======A=======>====>=====>======>>=>=>===>=>=====>=>====>>A=====>>>>======ACC>=========>AC=>>=====>AC====>A==>=>CC>>C?==>>>>>==>>>>==>>=======>=====A>======>=>=>=>>>>CC>C=====>=====>>=>>=>>======>======$=>====$==>====>>>==>>========A=>>===============>=======$======$===$$====!!=!====$$=====$!$=====$==$!!==$$=!$=!=!!==!==!!!!$!ZÉááááááßáßáßááßáááááááßáááááááßáßáááááááßáßááÏáßáßááááßáßáßáßáááßáßáßáßÑßáßÑßááßÑßááßÑßáßáßÏßááßáßÏáßÏáßÑßÏßÏÏÏÑßáßáßÏÏßÑßÏÏÏÏÏßÑßÏÑßáßÑßÏÏÏÏßÏÏÏÏÏÏÏÏÏÏÏßÏÏÏÏÏÏÑßÏÏÏÏáßÏÏÏÏÏÏÏÏÏÑßÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÑßÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏßÏÏÏÏÏÏßÏÏÏÏßÏÏÏÏÏÏÏÏÏÏÏÏßÏÏÏÏÏÏßÏÏÏËÆ–„‚x_Y!  !   =qªõþÿþÿþÿþÿþÿþÿÿþþýþþýþýþýþþýþýæÓ·³¸·³³³³³³¸³¸³³¸³¸¸³³¸³³¸³³¸³¸³¸³¸³¸¸¸³¸³¸¸¸¸¸¸¸¸¸³¸¸³¸¸¸³¸¸¸¸¸¸666666i5i6666i66666i66656666656666666566666666666666666666656666866i666i865666i6666666665666666565666666666666666666566666666i666656665666i666666666666(%%666666i8668666566i5668666i666i66666i66686866i66666i66566i66666666666666666656866666i666666666666666666i %% %%% % %% % % %%% %% % % %% 5666666666666666666666656i866666566666666i66656666566666866665656666666666666666666i6866666i666i6666666666666666666566i6¸º¸¸¸º¸º¸º¸º¸¸º¸º¸º¸¸º¸¸º¸º¸º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸¸¸·¸·¸·¸·¸··¸··¸··¸··¸·¸····················K··³·K·K³·K·K··K·KKKKKKKKKJ·KJ·J·JKKKKKKKJ·J·JJKJ·HKJKJKJJKJJKJJKJJJJJJJJJJJHGJGGGGFGFFFFFFKKK³KKK³KKKKKKKKKKK+4O‡OO+þþþüþþþþþþüþþÿüþþþþþüþþþþÿüþþþþüüþþüþþþüüüüüüüüü+ŒŒŒŒŒ1÷üóüóúüöüöö÷öýöõöõëõöõöõöõóöóóóóóúóóðóóóóðóóóóðóóðóðóð1‡‡*‡4*ðóððóððóðððððððððððóðòðððððððððððïÑðÑðÑðÑÝÝðÑêèÑïÑðÑá1P4O44*áØÝßÑÑÑÑÑÑÑÑÍÑÑÑÑÑÐÑÐÑÐÑÎÑÐÑÍÑÍ×°°­ÍÍÑÍÍÍÍÎÍÐÍÍ­+&&&&+&+K³KKKKK³KKKKKKKKK³EEFFFFFFGFGGGGGHGHGJGHHHJGHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþÿþþþþýþþþþþþÿþúóúóúóóúóó÷ò¬Žo==$======$=====$========================!=======>=======C=$=====$=======C>==>A=====A=>===>=====>=======>=====>===>>=======>=>>===>>=>====>>==>>=>=>>==>>=>===>==>=>C>>==>C=>>==>===>=>=?>====>>=>===>=>=>>>====>>>>>===>==>=>======>==>==>==>>==>>===C=====>=====>====A===$==>A===>=======A=====>======>============================$$====$==!=====$====>==!===$!===!===$$!=====!$==!$$!==!$$$==!$$=!!==!!$=xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñÎ…_B;   !! $sªõþþÿþÿþÿþÿþÿÿþýþþýýþýþýþýýþýþæÓ³³³³³³¸³¸³³³³³¸³¸³³³¸³³¸³¸¸³¸¸¸³¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸66666666566ii6668666666666i666666656666666666666666666i66665665666666666666666666666666666666i666656666666655666666666666656666666566666666666656i666666i6666666666666686i666i666i666i656666666666666i66i8666666i6566666666566i66666i5i66666i66666666666656666666i666((%%%% % % %% %% %% % % %% %%% %%% 66566666666666i566666666666i6666i666686i666666666i666666666i56666666666i56686566666666666666666665666666666666666566666i666¸¸¸º¸¸¸¸¸·¸¸º·º·¸·º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸³¸¸¸¸·¸¸·¸·¸·¸··¸··¸·³¸·³··³····³·³³K·³·³·³·³³³³·K³³K·KKK·KKKKK·K·K·K·K·KK·KK·J·KJKKWKKKKJKJ·JKJKJ·JKJKJJJJJJJJJJJJJJJJHJGJHGGGGGFFFFFFDKKKKKKKKKKKKKKKKKKK+O‡O4O+þþþþþþþþþþþþþþþþþþþþþþüÿüÿþþüþþüþþþþþþþüüüüþüüüü1ŒŒŒŒŒ1úóüóúóüööýöýö÷öõöõöõöõöõööúöóúóóóðóóóðóóóóóðóóóóóóóóòó*‡‡*‡‡1ððóðóðóóðóðóðóðóðòðððððóððððððððððïðÑððÑðÝÝïðßèðïÑÑïÑ*444431ÑÝÝØðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÑ­°°ÑÍÑÍÑÍÑÐÍÐÍÍÍ­+&&+&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFGFFGFGGGGGGHGHGHGHGJHGJGHHJHJHJJJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýþþþþþÿþÿþþþþþþýÿüóóóó÷÷óóúóò¬Žl$$=$==$========!$==A>============>============>===>=>==>C==>=======>>===CA==>>=>>>=>===>==>=====>=>===========>=>>=>>===>==>AA>=>>>C>=>>======>>===>=>C===>=>=>=A>=CC>>>C>==========>===>====>>>==>>==>>>CC>===>CA>=>>>>>>>==>>>=>===>==>CCCC>=>A>C==>=====>>===>>=$=>=======>===>>>============>>====>=>========================$===$=$$==$$===$=$$=A====!!===$==$===!=$!$!===!!=$!!$=!!!$==!!!==$=======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñË‚@! qªíÿþÿþþÿþÿþÿþÿÿþþþþþýþýþýþþýþýæÓ³³³³³³³³³³³¸³³³³³³¸³¸³¸³³³¸³³³¸³³³¸³¸³¸³¸³¸¸³¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666656666666666i6666566666666666866i666666666566665656i6666666666666666666666666666666665i6666i66665666666666666666666566666566666666666666666566665666666i666i666666666666666i66i66666i6666666666666666666666i68668i6666666666656665666686668668666666i66666668655% % %%% % % %% % % % % % % %%%6668656666i6666666666666665666i666666666i68666666666666666666666666666566668566665666666666i66666666666656656666566666i666665¸¸º·¸¸¸¸º¸º·¸¸·º¸º¸·º¸¸¸·º·º·º·º·º·º·º¸¸¸¸¸¸¸¸·¸·¸·¸·¸¸¸¸¸¸³¸·¸·¸··¸··¸·¸··¸··¸··¸·¸··¸···³··³·³·K·K··KK·³KK·KK³·K·K·K·KKKKKKKKJ·KKKKKKKJKK·JKKKJKKKKJKJ·HKJJJJJJJKJJJJJJJJJJJJJJHJHGHGGGGGFGFFFFFKKKKKKKKKKKKKKKKKKK+4O4O‡+üþþþþþþþþþþþþþüþþþüüþþüþÿüþüþüüþüþþüþüþþþüþüüüüó1ŒŒŒŒŒ1üóúóúóóöö÷öýöõöõöõöõö÷öõöõóö÷úóóóóóóóóóóðóóóóóóóóóóóóó1‡‡*‡4*ððóóðóðððððððððððððòðððððððððððððïðïðïðÑïÝÝèïêÑÑáÑïÑÑ*44443*ÑÝÝÝÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑ×°°ÞÍÍÍÍÐÍÍÐÍÍÍÍË×+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFGGGGGGGGHGHGHGJHHGJHJHJHJJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýÿýþþþþþþþþþþþÿþúóúóúóóúóó÷ò¬Žj=!========================================>===C===================>>=>$=A>==>=====>>=$==>>>====>=====A>>>====>=====>===>>==>>===>==>C==>=>==C=>=>>=>==>=>>====>=>=>>>=>C==>>=C=>==>====C>=>=>>>==>>==>>=>>>>=>==>=>>C>====C>==>>>>==>===>>=====>===C=>===>=====>=>=$=>>=>====>>===>==>=>====>============>=====>===================>=$=============$=>==$==$!====$!====$$$=$=====!=!===!!=$$=!$$$$!$$$$==$=xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá‚Y!    !qªõÿþÿþÿþÿþÿþÿÿýýþþþýþýþýþýýþýþæÓ³³³³³³³³³³¸³³¸³¸³¸³³·³³¸³³³¸³¸³¸¸¸³¸¸³¸¸¸¸³¸¸¸³¸¸¸¸¸³¸¸³¸³¸¸¸³¸¸66i65665665656656665666666566666666666666566666666666666665666665666666666666566656666566666i866666666666666666566666668i6666666666i66666666866656i56666666568i66865666666666666656666666666666i666666666666666666666656666665666666666666666666i56666666i666666665666i(%%% %%%% % %%%%% % % %%%% %%%%(6666666656666666566666566666688666666666666i65666i666666666665666666666666666666866656666666565i6i5686666666666666666656i6666º¸¸º¸¸º¸¸¸º¸º¸º¸¸º¸º¸¸¸º¸º¸¸¸º¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸·¸¸·¸¸·¸··¸··¸··¸·¸·····················³·³·³··K·K·K·K·K·K·K·K·KKK·K·J·K·JKKKKJ·KWKKWKKKJ·J·J·J·JKJKJKJJJJJJJJJJHJJGJGHGGGFGFFFFDK³KKKKKKK³KKKKK³KKK+O4O4O+þþþþþüþþþþþþþüüüþþüþüüþþþþþüüþüþþüóüüüþþüþüüüüüü)ŒŒŒŒŒ+úóúóóóóööõöõöõöõöõö÷öõöõöõóõóóóóóóðóóðóóðóóðóðóðóððóðñ*‡‡*‡‡*ðððòðððððððððððïðððððððððÑðððïðïáÑÑðÑÑÑÑÑÝÝïÑßÑÑÐÑÎÑÑ*44444*ÑØ°ßÑÑÑÑÑÐÍÑÍÑÍÍÍÑÎÍÍÍÐÎÍÍÎÍÍͰ°­ÍÍÍÍÍÍÍÍÄÍÍÍÍÍÄ+&+&&+&+³KKKKKKKKK³KKK³K³KFFFFFFFFFFGFGGGGGHGHHGJHHGJHJHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþÿþþþþþþýÿþþþþýÿü÷óóóúóóúóóò¬�l=$=!$==============$===$$!$==>=$=====$$==>=>==>===>>============>=A=====>==>===$===========AA>>C===>>>ACACA>>=>>>=>>=>>>>>==>=>=====>>>===>=C>>>AC>>>>>>CC>>==l==>========CA=>C>>=====>>>=>C>>>==>>==>>==>=>>>=>=>=>>=====>C>=>==A>=>>===========>>>C>>>====>=>>>====CC=>CC>=A>>>===>>==>==>>==$===>========$$==>=====$$==$===========>>==========$$===$$!========$==$=!====$!=$===!$===$=$=!$$==!$$!!$$!$!xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð–Y !  ! =sªíÿþÿþÿþÿþÿþÿÿÿþþþþþýþýþýþþýþýæÓ³³³³³³¸³³¸³³¸³³·³³¸³¸¸³¸¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666565666i5666566666656666i6866666666666656i6856666666666666666666666866556666666665565668666666666666666666i6656686665666566666i656668666666666i656686i6656i6666i566666566566666665666665656i65666666666666666566666666866566566666i6666666666666666665i66665666665% %%% %%%%%%% % % %% %% %%% %% 6(6i86665666666556666665666666666656666685686666656666666666666566565i6666665666668i866666666666666666666566655666i66666656¸¸¸º¸º·º·º·º¸·º¸¸¸¸¸¸¸º¸¸¸¸¸º¸¸¸¸¸º¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸³¸·¸·¸···¸··¸··¸··¸³··³¸··³·³··³·³³³·K³³·³·K·K³K³KK³K·KK·KKKKKKKKKKK·JKKKKKJKKKWKJ·JJKJKJKJKJJJJKJJJJJJJJJJJJJJJJHJJGJHGJGGGFFFFGFFFFKKKKKKKKKKKKKKKKKKK+O‡OO4+þþþþþþþþþþþþüüþüüþþüþüüüüüüüüþþþüüüüüüüüþþüüþüüü1�ŒŒŒŒ1úúóúóóóööýöööõöõëõöõöõöõööðöóóóóóðóðóóðóóóóóóðððóðóðóð1‡‡*‡4*ððððððððððððððððððïðððððððïÑððÑðÑÑðÑÑðÑÑÑÝÝÑÑÑÑÑÑÑÑÑÑ*44444*ÑØÝØÑÑÑÍÐÍÐÍÐÍÐÑÍÐÍÐÍÐÍÐÍÐÍÍÍ®°°ÍÍÍÈÍÍËÍÈÍËÍÈÍÍÄ+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFFGFGGGGGGGGJGGJGHHGJGHHJHJHJHJHJJJHJJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþþÿþÿþÿþþþþþþÿþúóóú÷óóúóóúò¬�o=====================>=======A===>=>========>=======$=>=====>=====>>==>=>=>=>>===>=======>>>>=>A===>>===>>>>===>=>>=>>=>>=>>>===>==>>>=>>=A>=>==CA======>>>===A>=>=A==>>>=>=>=A=>==>>==>===>=>>==>>>===>>==>>A>==>>>=>>==@C>====>=>=CA=>==>C===>>>==>=>C====>=>>==>==>>==>A=>==>=>>====>A===>==============>=====>====$$=>===>=$=============$$>====$==========$=$!=$===$$$=$===!$$$===$=$!$==!!$$$$$!$$!!x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ„;! ! 9qªõþÿþÿþÿþÿþÿþÿþþþþþþþýþýþýýþýþæÓ³³³³³³³³³³³¸³¸³¸³³³¸³³³³³³¸³¸¸³¸³³³³³¸³¸³¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸666666666666656i566666666i6656666665665666666566666666666666665666666666665666665665666666666666666656666666i66665666i666666666i6666665666i66666566665666668666666666656666656656i666666566665665665666666565666566866666i5566i6i6666666666666665665666566665656656666666 % % % % %%%%% %%%%% %% % %%% %(66666666666665i666666666666666i86656666866666i666666666i65665i6866666666568i66666666666666565666666666656666666i66666666i66¸º¸¸¸º¸º¸¸¸º¸¸º·º¸º¸º·º¸¸¸·¸¸·º·¸º·¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸¸¸¸¸¸³¸³¸·¸¸·¸·¸··¸·¸¸··¸·¸···¸···³··³·³·³··K···K·³·K··K·K·K·K··K·K·K·KKK·J·J·KK·JKKKKJ·J·JKKH·JH·JJJJKJKJJJJJKJJJJJJJJHJJGJGHGGGGFFFEFEKKKKKKKKKKKKKKKKKKK+‡4O‡O+þþüÿþþþþþþüþüþüþþþþþüüüüüüþüþüþüþüüüüüüóüüþüüüüü1ŒŒŒŒŒ1óóóóóóóööõöööõöõöõö÷ö÷ìõëëóëóóóóóðòðóðóóóóóóóóóððððððð*‡‡*‡‡*ððððððððððððððððïðÑÑïðïðÑïÑðÑïÑÑÑÑÑÑÑÑÑÑÑÝÝÑÑßÑÑÑÑÑÑÑ*44444*ÍØÝ×ÑÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ×°°ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÌ++&&+&&+KKKKKKKKKKKKKKKKKKFFFFFFFGGFFGGGGHGHGHGHHGHHHHJHHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþýÿýþþþþþþþþþþþýÿüúó÷óú÷ó÷÷óò¬Žo========$====$=========!$====>>==>CAA>=>>=============>>C==CCA>>===>=========>>>>>==>>>>=>======>=======>>>=>>==>=====>>>===>=>>A====>===>>>=A>>>>ZCZ]xxz{x{zx{zz{{{x{{ƒ{{xx{{yx{z{{ƒ{xx{z{z{xz{xx{z{xxz{zxx{{{{xxxxxx{{{{{{xxyx{xx{{{xz{x{{{x{xz{xxzxyƒ{{{xxxxzz{{{xzxxxz{xxxxxxxzxxxxz{{xxx{xxxz{xxxxx{xxzx{zxxxx{{zxxx{zxz{xxxxxxxxxxzz{zxxxzxxxxxxxx{zz{xxxxxxxxxxz{xxxxxxxxxxxzxx_xxxxxxxxxxxxxxxxxx_xx–ñüúú÷ú÷ü÷úúúú÷úú÷ú÷ú÷ú÷úú÷÷÷÷ú÷ü÷÷ü÷÷÷ú÷÷÷÷úú÷ü÷÷÷úú÷ü÷ú÷÷ü÷ú÷÷ú÷ú÷÷ü÷ú÷ú÷ú÷ú÷úúú÷úúú÷ú÷ú÷ú÷÷ü÷÷ú÷ú÷ú÷ú÷ú÷ú÷ú÷÷÷÷ú÷ú÷÷ú÷úú÷úú÷÷÷ú÷ú÷úúú÷÷÷ú÷ú÷ú÷ú÷ú÷úú÷÷÷÷÷÷÷÷÷ó÷÷÷ó÷÷ú÷÷÷÷÷÷ó÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷ú÷÷÷÷÷÷óó÷÷÷ó÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷óú÷÷÷÷÷÷÷÷÷÷ó÷÷÷óü÷÷óüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈY  ! $p¥íÿþÿþÿþÿþÿþÿÿÿþþþþþþþýþýþþýþýæ×·³¸³³³³¸³³³³³·³³¸³³³³¸³¸³¸³³¸³¸³¸¸³¸¸¸³¸¸³¸¸³¸³¸³¸³¸¸³¸¸¸¸¸¸¸¸¸¸666566666666666666666666666668i6686656668665666666666666666666665656666666856666666666565656666566666666566565i566656866666566566566666666666668i66666i6566i5686666666i6566656666666668666666686666666666666666656666856566i6656666666565666666666666666666666i6666565 % %% %% %%%%% % %%%%%%%% %%( 6666668i66666656856i6665666666688666666666i6565666666666656666666666666666566666666656666656565i666666666666666666666i66656¸¸º¸º¸¸¸º¸º¸º¸º¸º¸¸¸º¸º¸º¸º¸º¸º¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸³¸¸¸¸¸¸·¸·¸·¸·¸··¸···¸·¸·¸····¸·············³··³·K·³K·³³K·K·KKKKKKKKKK·KKKKKKKKJ·JKJ·JKJK·J·JKJ·JKJ·JJJJKJKJJJJJJJJJJJHJHGHGGGGFGFFFFFFK³KKKKK³KKK³KKKKK³K+4O4O‡+üþþþþþþþþþüüþþüþÿüþþüüüüüúüüüüüþüüüóüüóóúóüüüóüó1ŒŒŒ‹Œ1òóóóóóóõî÷îööõöòöõöõöõëòëìðëðóóóðóððòðóððððððððóðòðððð*‡‡*‡‡*ðÑðÑÑÑðÑïÑððÑáïÑÑÑÑÑÑÑÑÑðÑÑÑÑÑÑÑÑÑÍÑÑÑÑÍÍÝÝÑÍßÞÍÐÍÐÍÍ*44444*ÍØ­ØÍÍÍÍËÍÈÍÈÍËÍÍËÍËÍËÍÄÍÄḬ́°×ÄÍÄÍÄÄÄÄÄÄÄÄÄÄÄĦ+&&&&&&+K³KKK³KKK³KKKKKKK³FFFFFFFFFFGGGGGGGHGJGHGJHHJGJHJHJHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþÿýÿýþþþÿþþþþþÿúó÷÷óóóúó÷óò¬�o=======!=============================>>=>=>===========>=>===>>=>=====>=>====>>=>==>>==>C=>====>>=>=====>>==>=>===>===>>C>==>>===>>=>=>>=C>=>=Cuƒ–ÆÌ×ßçñóõó÷÷ò÷÷÷ò÷÷ò÷÷÷÷÷÷òóõ÷÷÷÷÷÷÷÷ò÷õóõ÷÷ò÷÷òó÷÷õóõó÷÷õó÷÷÷÷÷÷÷÷÷òó÷÷÷÷õó÷÷ò÷óõó÷÷õó÷ò÷ó÷÷÷òó÷÷õó÷ò÷ó÷÷÷ò÷÷÷÷÷ò÷ó÷÷ò÷ò÷÷÷÷òóõ÷ó÷òóò÷ò÷òóõó÷òóò÷÷÷ò÷ò÷ò÷òóõóõóòóõó÷òóò÷ó÷ò÷òóòóõóòóòó÷õó÷òóõóòóòóòóõóòó÷óòóõóòóòóòóò÷òóòóòóòóòóòóõóòòóòóòóòóòóòòóòóòóòóòóòçÆ”ƒƒ–”–ƒ–”ƒƒ––ƒƒ––ƒƒ–”––ƒ––ƒ–ƒ…ƒƒ–ƒƒ––ƒ……ƒ–ƒ……ƒƒ…–ƒ‚ƒ…ƒ…ƒ…ƒ…ƒ„‚…‚……ƒ‚…‚ƒ…ƒ‚„‚…ƒ‚‚ƒ‚ƒ‚„‚ƒ„ƒ‚‚…‚‚…‚„‚„‚‚ƒ‚„ƒ‚„‚‚„‚‚‚‚‚‚ƒ…ƒ‚‚‚‚‚‚‚„‚‚„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚�‚‚‚‚�‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚�‚‚‚‚‚‚‚‚‚�‚‚‚‚‚‚��‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚�‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚�‚‚‚‚‚„–ÆÈÎáð÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿá_!   $qªõÿþÿþÿþÿþÿþÿþþýþþþþþþþýþýýþýþæÓ³³³³³¸³³¸³¸³¸³¸¸³¸¸³¸¸³³¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸³¸º³656666666666666656666566666666666666666865866666666566666666i665i66666656666666666666i6666686665i6656666666666686666666666666666666666656666666668i86666666686666668i86666688666656566666566666666668666666666i666666666666666666566656666656666566656668666668656666655% %%%%%% %%%%% %% %% %% % % %%% %66656666666666566666686666665i66666666666666666668666666668666666666566666666866666566668665i66656666566666666656665666666666º¸¸¸¸¹¸·º¸¸¸¸¸¸¸¸¹¸¸¸¸¸¸·º·¸·º·º·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸·¸·¸···¸··¸·¸··³··³¸·³·³·³·³·³·K·K··K³KK³K³³K·KK³·KKK·K·K·K·KK·J·J·J·J·KJ·KJ·J·JKJKH·JJJKJJJJJKJJJJJJJJJJJJJHJJGJHGGGGGFFGFFFDKKKKKKKKKKKKKKKKKKK+O‡O‡O+üüüþþþþüüüüüþþþþþÿþþüüúüüüúüüüüüüüüüüúüúóúóüüüóú*‹Œ�ŒŒ*óóóòóóóööõöööõöõöõöõöñëëëëðóðóóóðððððððððððððòðððððððð*‡‡*‡‡*ÑïÑðÑïçÑðÑïðÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÍÐÍÐÍÐÍÝÝÍÐÝÍÍÍÍÍÍÍ*44444*ÍØ°ØÍÍÍÍÍÍÍÍÍÍÍÄÍÍÄÍÍÍÄÍÄÍÆ­°°ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÈÇ+&+&&+&+KKKKKKKKKKKKKKKKKKDFFFFGFFFFGGGGGGGGHGHHGHGHGJGJHHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþÿþþýÿþþþþþÿþþüÿü÷óóúóúóóúóò¬�?=======$$=======>=======>==$$==$===$======>A=========>================>>>CA====>===>>==>====>>====>A>==>=>>=>>=>>>>====>A>A=>C>>>=>>===>AACxƒÆá÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñx$=$!$$!!!!==$!===!$$=!!!$=$=!!!!!!$!!!!$!!!!!!!!!!!!!! !!!!!!!!!!! !!!!! !!!!!!!!!!!!!! ! ! !   @‚Èçóÿÿÿÿÿÿÿÿÿÿÿÿó–!!!      q¥íýÿþÿþÿþÿþÿÿÿÿþþþþþþþþþýþþýþýæ×³³³³³³³³³³³³¸³³³³³³³³¸³³³³³¸³¸³³¸³¸³¸³¸³¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸66666666866i666666666666866666666666i66665656666666i66666666666666666i866666866866666666i666666666666666666666666666656666668i66666666666i66666666666666566i6566666666666666666666665666665666666566666666666ii66666666666565668i866666i566( %%%% %%%% %% % %%%%%% %%%% % %% % 666666668666666666666666666i6566666666666666i666666666866666666666666666666666i666666668666666666866866666666666665¸º¸º¸º¸¸º¸¸¹¸¸º¸¸º¸¸º¸º¸¸º¸¸º·º¸¸¸¸·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸³¸···¸·¸·¸··¸··¸¸·¸······³···³·³·³·³····³³³K·³·K·K·KK·KKKKKKKKKKKK·J·J·JKKKKJ·JKJ·J·JKJKJKJJJKJKJJKJJKJJJJJJJJJHJHGJGGGGGFFFFFFFKKKKKKKKKKKKKKKKKKK+4O4O4+óüüüüþþüüÿüüþþüþþüþþüüüüüüüüüüüüüüüüóóóüóúóúüúúó1�Œ‹ŒŒ1óðóóóóðööúöööñöñöõöõìëöñëëððððóððððððððððððððððððððððð*‡‡*‡‡*ðïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÍÑÐÑÍÍÍÍÍÍÍÍÙÜÍÍØ×ÍÍÍËÍÍ*44444*Í­°ØÍËÍËÄÄÄÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄ×°°ÆÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÁÁ¦+&&+&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFGFGGGHGGHGJGHGJHHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþþþÿýþþÿþþþþþÿþúóóúóóó÷÷óóò¬}j=========!=========>============$=====>====>>=====>===========?=====>>>>>A======>==>>=>===>=>>>>==>>>===>A>=>==AA==>=>>=>CC>=>=>>>=>=?C>u”Ìèüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòx==!!$$!$$!!$$!!!$!!$$=$!=$!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! !! !!!!   !! ! !  #_ËóÿÿÿÿÿÿÿÿÿÿÿüÂ! !q¥õÿÿþÿþÿþÿþÿþÿýýþþþþþþþþþýýþýþæÓ³³³¸³³¸³³³¸³·³¸³¸³³¸³³¸³¸¸³³¸³¸³¸³¸³¸¸¸¸³¸¸¸¸¸¸³¸¸³¸¸³¸¸¸¸¸¸º¸¸¸66i6666666i8666666666666666666666665666666666666666666566666666i6666686666666666666666666668666i66666666666668666666666666666666668666666666666666666666686666666666666686666666566666666i6666666665i666666665666666i686i6666666666666666666866686i66( %%%%%% % %%% % %%% % % %%% % % %%6666ii666566666666666666566i6666i6666666666666666866666666666666666666666666i6665i66666666666i6666666656666666¸º¸¸¸¸º¸º¸¸º¸¸¸º¸º¸º¸¸¸º¸¸º¸º¸¸º¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸·¸¸¸¸¸¸¸¸··¸··¸··¸···¸·¸··¸·¸··········K··³·K·³K··K·KK·K·K·K·K·K·K·KK·J·J·KKKWKKKKKKKJKKJ·JKJJ·JKJJKJKJJJJJJJJJJJJHJJGJGHGGGFGFFFFFKKK³KKKKKKKKKKKKK³K+42‡O4+++++++++++++++++++++++++++++++++++++++++++++++++1Œ‹ŒŒ�1óóðóñðóööõöööñöõöõöõöôìôìëñâðòðòðçðÑñïðáðáïáððñððáðáðð*‡‡*‡‡*ÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÍÑÍÑÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍËÍÖÚËÍÓÍÄÍÄÍÄÍ*44444*++++++0++++++++++0++++++++++++++++++++++++++++++++&&+&&+³KKKKKKKKKKKKK³K³KFFFFFGFFFGFGGGGGGHGJGHGJGJHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþÿþÿýÿþþþþþþþþýÿüúóóúóúóóúóò¬sj===$$$=========>=============>==============>A>===>===>====>==A==>==A=>>>=========>====>>>>===>CC>==>==>=CC>==>CC=>==>===CC>==>>>=====CƒÌúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò]$=!!!=====$$$$!!!!!=$!$$!!!=!$!!!==!!!!$!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!! !!!!!!!!!!!!!! !! ! _Îóÿÿÿÿÿÿÿÿÿÿü„ !=qªíþþÿþÿþÿþÿþÿÿÿþþþþþþþþþþþþýþýæ×³³³³³³³³¸³³¸¸³·³¸·¸³¸³³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66i668666i6666666666666666i866668866666666666666666i666666666i86i6666666566656666666666666686666666666666666666666666686656656666656i666666666666666566666666656i6666666666666666666666666666665666i6i566666i68i66668666666i66665666i6i666666666(%(65%%%%%%% %%%% %%%% %% %%%%% %%% (666656656i6686666656i66665666666666666665666686656666666666666666665666666666666666666666666666566666666666866666666866668¸¸º¸º¸º·º·º¸¸º¸º¸¸¸º¸¸¹¸¸º·¸·º·º·¸º·º¸¸¸¸¸º·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·¸··¸··¸·¸··³··³·³··³·³·³³·K·³³K³·³K·³K³K·K·K·KKKKKKKKKKKK·KK·JKJ·JKJ·JJ·H·JJ·HKJKJKJJJKJJJJJJJJJJJJJJHJHJGHGGGGGFFFGFEFDKKKKKKKKKKKKKKKKKKK+O‡O4O4O4OOOO4OOOOOOOOOOOOOO2OOO24222222222222222022032*Œ�Œ�‹11**11**1***1*11*111*111111*11*11*11*111*111*11*1111*111‡‡*‡‡*****)***1*****)*****11*******)***)********************44444*+++++(++(++&++&0++&++&0&++&+&+&+&+&+&+&+&+&&+&+&&&++KKKKKKKKKKKKKKKKKKFFFFFFFFGFGFGGGGGGHGHGJGHGJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýþþþþþþÿýþþÿþÿþÿúóóúóóó÷úóóò¬Žo=$====================================>======>>====>==>>===>=>>===>>>>====>>==>=>>===>===?>>==>C>==>>>==>C>=>=>>=>>>>>=>>>>=>>>>>===C{Ì÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ]$=$!$==!===!!$!$!!!!!!$!$!!!!!!!!$$$=!$!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!! !!!!! !!!!!!!!!! �Îüÿÿÿÿÿÿÿÿÿó_  =q¥õÿÿþÿþÿÿþÿÿÿÿþýþþþþþþþþþþýþýþæÓ³³³³¸³³³³³¸³³³¸³³³³³³³¸³³¸³³¸³¸³³³³¸³¸³¸¸³¸¸³¸¸¸¸¸¸¸¸¸³¸³¸¸¸¸³¸¸68666i6668666656i6i66i6666666666666666666566666668656566666666656666i6656666666666666666666666666666666666666i6565666i6666666666666668666656556666666666666656666i668666656666i66666i88666566666666666666i666i666666666666666665666i886566666666666666665% %% % % % % % % %% % %% %%6666666666666666666666666666666666666666656666666665666i66666666666666566666666656666666656666666666666566666666i66i5666¸º¸¸¸¸º¸º¸º¸¸º¸¸¸º¸º¸¸º¸¸¸º¸º¸¸º¸¸º¸¸º·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸··¸·¸·¸¸··¸··¸··¸·¸··³··³······³·K·K··³·K³K³·K·K·K·K···K·K·K·KKKJ·J·KKKKKKJ·JKKJKKJKJ·JJJJKWJJKJKJJKJJJJJJJJJJHJHGHGGGGFFFFFEKKKKKKKKKKKKKKKKKKK+‡4O‡O‡2‡O4O4OOOOOOOOOOOOOOOOOO2O2O2O2222222222222222031ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŒŠŠŒŠŒŠŒŠŠŠŒ‡Œ‡Œ‡ŠŠ‡‹‡Š‡Š‡Š‡Š‡Š‡Š‡‡‡Š‡‡‡‡‡‡‡‡*‡‡‡‡‡‡‡‡‡‡1‡4‡‡‡‡4‡‡‡‡‡1‡‡‡‡‡4‡‡4‡4‡44‡4‡4‡4‡4‡44‡444‡44444444*+++0+++0+++0&++(+0&+&++&+&++&+&+&+&+&+&+&+&+&+&&+&+&&&+KKKKKKKKKKKKKKKKKKDFFFFFFFFGFGGGGHGHGHGJGHHGJHHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýÿýÿþÿþÿýÿþþþþþýÿüó÷óúóúóóúóò¬Žj$!$========>=$==$=======>A>===>=>?>======>====C=>=======>A====>=====>=====CA>C>==>>==>>>=======>==>A=>C>==>=>>========>>===>=>CC>>=uÆòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò_===!!=$!!!=!!===!!=!!!!!!!!!!!!!!!!!!!=!!!=!!$!!!$!!!!!!!!!!!!!!!!!   Â÷ÿÿÿÿÿÿÿÿÿñY =q¥íýÿþÿþÿþÿþþþÿÿþþþþþþþþþþþþýþýæÓ·³³³³³¸³¸³³³¸³³¸³³¸¸³³³¸³¸³¸³¸³¸¸¸¸¸¸³¸³¸³¸¸¸¸¸¸³¸¸³¸¸¸¸¸¸³¸¸¸¸¸6666686666666666666666568666666i6666668666666666656666666665666666566666666666666666666666666666665666665666666666666i6i86656666666666666666666666666666666666668666666666666666666666666i86666i656665666665665666666666666666666686666666666666665666%%%%%% %%% %%%%%%% %% %(66866666666666i666666666666i6566666666656666656666666666666568i666668666656666666566566666666666666666566666666666666666i8¸º¸¸¹¸º¸¸º¸º¸º¸¸¹º¸¸¸º¸¸º¸º¸¸¸¸º¸º¸¸¸º¸¸º¸º¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸·¸¸¸·¸·¸···¸·¸··¸··¸·¸·¸··¸·······³······K³·³·K³³³K·K·KKKKKKKKKK·KK·J·JK·JKKWKKJ·J·JKJ·JKJKJKJKJKJJJKJJJJJJJJJHJJHGJGGGGFGFFFEFEK³KKKKKKK³KKK³KKK³K+2‡2O4O‡O4O‡OO4OOOOOOOOOOOOOOOOO2O2O2222222222222222220*Œ�‹Œ�‹Œ‹�‹ŒŒŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŒŠŠŠŠ‡Œ‡Œ‡Š‡Š‡Š‡Š‡Š‡Š‡Š‡‡Š‡‡‡‡‡‡‡‡‡*‡‡‡‡‡‡‡‡4‡‡‡‡‡‡1‡‡‡‡1‡‡‡‡‡‡1‡‡4‡‡4‡4‡‡4‡4‡4‡4‡4‡44‡444444444‡4*++++0++(++(+&0&+(++&0&+&0&+&0&+&+&+&+&+&&+&+&&&&+&&+K³K³KKK³KKKKKKKKK³DFFFFFFFGFGGGGGGHGHGJGHGJHHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýÿýþþþþþþþÿýþþÿþúóóúóó÷óúóóò¬}m==============$$==============>==A=====>>========>>====>A>>===A>===>>>===>>>>>>==C==>C=====>===>>=>>>>>==>=?>==>>=>==>>>>>>==>>>A>xÞýÿÿÿÿÿÿÿÿÿÿÿÿÿüüú÷ññèñçðñððññèðñððèñèññçðèðèðèñðñðçèððèñèñèñññèñçñèðñðèèñèððèñèñðèñèðèðèñðèñççñðçèðèññèñðñðððñññññèððçñèèðèðèðèðèèðèðèñèñðçèðèððçðèñðèðèðèðèðèñðçççèðèððèðççççèñðèðèðñðèðñèðççççèñççðèðèèèñèðèðççèèðèèðçèðèññçðèçèçèçèèççèðèçèèèèèèèèðççèèççèçèèçèèçèçèáß–ƒ”ƒƒƒƒƒƒƒƒƒƒ‚ƒƒƒƒƒƒƒ‚ƒƒ‚‚ƒƒƒƒ‚‚ƒƒƒƒƒ‚ƒƒƒ‚ƒƒ‚‚ƒƒƒ‚ƒ‚ƒ‚ƒƒƒ‚‚‚‚ƒ‚‚‚‚ƒ‚‚ƒƒ‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚�‚‚‚�‚‚‚‚‚�‚‚‚‚�‚‚‚x�‚‚��x��‚�‚����‚���_�����‚��‚���xdz‚_‚‚���x_‚���_�������_�__‚���x_��x_dx���__��‚��‚xdx��_‚�x__dxdx_��_������__dx��_dx_�__d_ZY@; ‚ñÿÿÿÿÿÿÿÿÿá; !qªõÿÿÿþÿþÿþÿÿÿÿþþþþþþþþþþþþþþýþæÓ³³³³³¸³³³³¸³³³¸³¸³³³¸³¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸³¸¸º¸¸¸6566656666666666665666i66666666656666666566566666686666656666666566566666666666656666666666666666666666686665686656686666666i8666565666i666666666666566666668666666656656666i6665i8668668866665656666i666665666665865666666666666666666666666666666686666666666(%% % %%%% %%%%%% %%(65666666665666868666665666586666i56666i66i66665666565666666666666666866666666666666666666666665666668666686666666666666666666666¸º¸º¸¸º¸¸º¸¸¸¸º¸º¸º¸¸º¸º¸·¸º¸º¸¸º·º¸º·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸·¸¸¸·¸··¸··¸·³··³³·³·³··³·K·³·³·³³·K³K³³K·KK·KKK·K·K·K·K·J·J·J·KKKKKKJ·JKJKJKJKJJJ·JJJKJJJJJJJJJJJJJJHJJHJGJGGGGGFFFFFGFKKKKKKKKKKKKKKKKKKK+‡O‡O‡O4O‡O4O4OOOOOOOOOOOOOOOO2OOOO2O2422222222222220231ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŒŠŠŠŠŠŒŠŠŠŠŒ‡Œ‡Œ‡‡Š‡Š‡Š‡Š‡‡‡Š‡Š‡‡‡‡‡‡‡*‡‡‡‡‡‡‡‡‡‡‡‡4‡‡‡‡4‡‡‡‡4‡4‡‡‡‡‡44‡‡44‡44444‡444‡44444‡44‡444444*++++++++++++++++&+++&+++&+&+&+&+&+&+&+&+&+&&+&+&+&&+&+&+KKKKKKKKKKKKKKKKKKFFFFFGFGFFGFGGGGGGHGGHGHGJGJGHHJHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýÿýÿþþÿþýÿýþþþþþÿüúóóóúó÷óúóò¬Žo==>=========$======$=====$=====$=>>====A>>====>>====>>==>==>==>>==>>====?==>>==>>>==CC>=ACCC>>>C==>=>>>>===>>>=CCC>>===>>?>=>>==>ƒáÿÿÿÿÿÿÿÿÿÿÿÿúñßÇ�›”{xuxuuuuuuxuuuuuuxuxuuu]uuuxuuuuxuuu]uxuxuuxuxuuxuuu]uxuuuxuxuu]uxuuuxuuxuuxuuu]uuxvxuuuuuuuxuuxuuuuZuxuuu]uxuxuu]txu]uuZuxuuuuuZuu]u]uuZuuxuuu]u]uuuu]utZuZZuu]u]uuu]uu]uxutZZuxuZuuZZ]u]uZCZZ]uZ]uuZ]uZu]uuZZZuZ]ZuZZuuZZZZZZZZ]]uZZZ]uZZZZZZZZZZZZZƒñüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúóñáÏÌ–d@ ! [ÑÿÿÿÿÿÿÿÿÿÈ!!qªíþþþÿþÿþÿþþÿÿÿþþþþþþþþþþþþþþýæ×³³³¸³³³³¸³³³¸³³³³³¸³¸³³³³¸³¸³³¸³¸³¸³¸³¸¸³¸³¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666666665666668666665668866666666666566666656566566666666666666566686666666666666665666666566666668868666668666i6666666656566686666666866686666666666666666665666556656686665566866666566666666656665i6666566666666666666566666666666666666666666i66666565666666565%%% 68%% %%% % % 66566666656565666666666566666666666666665666666666i65686566668665686666665656556666666666666666666i666666566666685665668868¸º¸¸º¸º¸¸º¸¸¹¸º¸¸¸¸¸º¸¸¸º¸º¸¸¸º¸º¸¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸··¸······¸··¸··¸··¸³··³··³··³·K·K··K·K·³K·KKK·K·K·KKKKKKKKKKKKKKKKKJ·JKKKKK·J·J·JKJ·HKJJJJJKJKJJJJJJJJJJJJHJHGHGGGGGFGFFFFFKKKKKKKKKKKKKKKKKKK+O‡OOO‡OOOOOOOOOOOOOOOOOOOOOOOOO042O2O22222222222222220*Œ�Œ�Œ�Œ�Œ‹�ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠ‡ŠŠ‡Œ‡Š‡ŠŒ‡Š‡Š‡Š‡Š‡Š‡‡‡‡‡‡‡‡‡‡*‡‡‡‡‡‡‡‡‡‡4‡‡‡‡4‡‡‡‡4‡‡‡‡‡‡4‡‡‡‡44‡‡4‡‡‡4‡4‡4‡4‡4‡4‡44‡4‡444Q4*++++++++++++++++++&+++&++&+++&+&+&+&+&+&+&+&+&+&&+&&+&&+KKKKKKKKKKKKKKKKKKEEFFFFFFFFGFGGGGHGHGHGHGJHHHHHJGJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýþþÿýþþÿþÿþÿýÿþÿúó÷úóó÷÷óó÷ò¬�o=======>===============>=========A>====>======>>>===>>=>>=>>===C==C>====>>=>===A==>>>A=>?CA>>>>>>>>>>>>>===>>==CC>>>=>=AC>=>>==C–òÿÿÿÿÿÿÿÿÿÿüèÌ›xC>>C>C>>>==>=>C>=>C==>>>C>>===?>C>=>=>=>=>>>>>>>>>>>>>>>=>>>>=>>?>=>>>>C>=>A>>>==>=>>=>>A>=>>>=>>>>>>>==>==>>====>>>===>>A>>>==>====>=====>>===>>=>==>>=>===========>=>>=====>>>===================================$=============$$===$==$$====$!=$======!!x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷áÂ;Báÿÿÿÿÿÿÿÿ÷Y  $qªõÿÿÿÿþÿÿþÿÿÿþþýþþþþþþþþþþþþþþæÓ³³³³³³¸³³³¸¸³³¸¸³¸³³·³¸³¸³¸³¸³¸³¸³¸¸¸¸³¸¸¸¸¸¸¸³¸¸¸³¸¸³¸¸¸¸º¸³¸¸º66566565i6566668666566666666666666666665666666666666666666666666666666665666666666666666566566656666666666666666666666656665666668i6666666666666565666566666665666666666565666666566666666666566666656656666666686666666656666665666666666665666666666856%%%%666% %% % %%6666666666666666666666666656666666665666666658666666656666666666666666666666i666666686666666656666666665665666656666i666666666ºº¸º¸¸º¸º¸º¸º¸º¸ºº¸º¸¹¸¸º¸¸¹¸º¸¸¸º¸º¸¸¸º¸º¸º¸º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸·¸··¸··¸·¸···¸···············³·³K·³·³·K·K·K··KK·K·K·KK·J·KK·KKWKKKKJKJ·JJ·JKJKJ·J·JKJKJJKJJJJJJJJJHJJGJGHGGGFGFFFFEKKK³KKKKKKKKKKKKKKK++++++++++++++++++++++++++++++OOOOO0O202020202020202022*ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŒŠŒŠŒŠŠŠŠŠŠŠŠ‡Š‡Œ‡‡Š‡‡‡Š‡‡Š‡‡Š‡Š‡QЇ‡‡‡*‡‡‡‡‡‡‡‡‡‡‡‡4‡‡‡‡‡4‡‡‡4‡4‡‡‡‡‡4‡‡‡‡‡4‡‡4‡4‡4‡4‡2‡4‡44‡44444424*++++++++++++++++++++++++++++++++++++++++++++++++++++++++KKKKKKKKKKKKKK³KKKFEFFFFFFGFGGGGGHGHGHGJGJGJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿþÿþþþýþýþþþýÿü÷óóóúóóú÷óòÓŸp============>>>=>==$===AA===>>===>>====>=>===>>====>=========>===>C>=>>>=>====>>>>>>==>==C=====>C>>=>>>=ACCC>==>C==>>>>===>CCAC�÷ÿÿÿÿÿÿÿÿÿüç�xCC>>>>==>>>C>=>>CC>=>CC>C>=CCC>==>>CC>CC?>>>C?=>=>=>>=>>>>A==>=>>>===>>>>>>>>=>>>>=>=>AC>=>===>>=>>=>=>C>=>lC>>>>>>>>>>=>=======>C====>>>C>>==>=========AA====>===>>>=>>=====>===========>>>>=>>==>=>=======>=========$$=======$====!=$$$=>=$$$=!$$$=$==$=!=$$xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÏ‚;YñÿÿÿÿÿÿÿÿÎ!  !   !  q¥íþþþþÿþÿþÿþÿÿÿþþþþþþþþþþþþþþþæÓ³³³³³¸³³¸³³³¸³³·³³¸³¸¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸66666666666656666i56566666666656666665666666665666666666566665666i6665656666666666566666656i6666566666655666666666666666666686666666666666656665656655666566666665666566666686666666666656566666666566668i668666556666i8656566656565686666666656668566666666666665565665% %(( 666666666666666666656666i665i6666668656665666666566666666666566666666666666666656666666666566i666666686666666666566i665656666666¸º¸¸ºº¸¸ºº¸¸º¸¸¸º¸º¸¸º¸º¸¸º¸º¸¸¸¹¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸·¸·¸·¸···¸··¸··¸···¸³¸³·³·³··³³³³·³³K·³³K·K³K·K·K·K·KKK·KKKKKKK·J·J·JKKKJKKWKJ·JKJJKJKJJJJJJJJJJJJJJJJJJJJJJJHHGJGGGFFFFGFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK++++++++++++++++++++++++++1+1+1+1+1+1+1+1+1**********1+1************1************1+111**********1+************1+11*********1+*************1+***********1+K††K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEEEFFFFFGFFGFGGGGGGGHGJGHGJGJGHHJGJHJJHJHJHJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿýþþþÿþÿþÿþÿýÿþúóóúóóóúóóúò¬�o===========>>>========>>>======>==>===>=>====A>===C===>====>=>>==>>=>>A>====>>>>>>>>====>>>==>>>>>=>>>>>>CCC>==>>=>CA==>=>>>>C›÷ÿÿÿÿÿÿÿÿýèÆuC>C>>>>===>>>>>>>>>>>?>>>>?>=CC>>=>C>?>>>CC>>>>C>==>=>>=>>>A?>>==>>>>==>C>>>=>>>>>=>>>>>>C=>=>>>>=>=>>>>=>>=>C>A>>>>>==>>====>=>A==>===>>>>>A====>====>==>>>>===>==>=>==>>>>======>===>=====>========>==>===============================!!$=====!$$=$$$====!$$==x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü΂!  _÷ÿÿÿÿÿÿÿ÷[=q¥õÿÿÿÿþÿþÿÿþÿÿþþþþþþþþþþþþþþþþæÓ³³³³³³³³³¸³³¸³³¸³³¸³³³³³³³³³¸³³³³¸³¸³¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸65666666666566666566666666666566866666656668666666666666i6866566666656568666666i566866656665666666666666666666566666666668666666656566656668i66i686665666666666656666666666666666666656666665666656666566566656666666666666666666666665656886666666666666656686666666686(%%8666656666666566656566556665666666656665666666666656666866i666666666565666566666666666665665686666666666666665656666665666ºº¸ºº¸ºº¸º¸º¸ºº¸ºº¸º¸º¸º¸¸¸¸º¸º¸¸¸¸º¸¸¸·º·º¸¸¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸·¸·¸¸··¸¸··¸··¸···³··³···³···³·K··K·K³³·K³K·K·K·K·KKKK·KK·KKKKJ·J·KJ·KKJKKKJKKJ·JKJ·JKJKJKJJJJJJJJJJJJJJJHJGJGHGGGGFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³K³K³K³K³KKKKK³J³K³K³K³KKKKK³K³K³J³K³KKKKJ³K³K³K³K³KKKKK³J³K³J³K³KKKKJ³K³J³K³K³KKKKK³K³K³J³K³³KKKK³K³K³K³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KEFFFGFFFFGFGGGGGGHGHGHGHJGHHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþýÿýÿþþþþþþýþþþÿüú÷óóú÷óúóóò¬Žo==========>======>=>=>====>====>A====CA====>==>==>>==>C>>C====CC>==>=>>>=>>==>====>>C>>=>>>=>>>=>===>====CC>>=>C>==>C>>A>>>>=ƒòÿÿÿÿÿÿÿÿ÷Ìx=>AC>>>>>C>>CA>=>>>>=>=>>>>=>>>C>=>>=>CCC>=>A>>=>>>>=>>>>>>>=>CCA>>CCCC>=>?CCC>>C>C>>>>>>>CC>=>=>C=>>>=>=>=>===>>=>=>=>=>===>==>>CC==>CC=>>===>>>>==>===A>>=>>>>====>=>=========>>=======>=====$=$==========================>>>=!=====>======$==!===$$!==!=$$===$=xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÈ@ „üÿÿÿÿÿÿÿÎ    =}¥íþþÿþÿÿþÿþÿÿÿÿþþþþþþþþþþþþþþýèÓ³³³³³³³³³³³³³³³³³³·³³¸³³¸³¸³¸³¸¸³¸¸³¸¸¸¸¸³¸¸¸¸³¸·¸¸³¸¸³¸¸¸³¸·¸¸¸666666665665666866666666656666686666668666656665665666666666665666666666665666666668666666666666566686665666666565666665665666666666666666666866i66665656i6665666566566666665i66i6666665666566666866666665666566656566666666566665656666666666666566685686865666666666666666666668666666566i66665666668666866656666666666566666i6866665668688i6666666i6666665666666656666566668666666685665656666668i66666666656¸¸º¸¸¸º¸¸º¸º¸¸¸º¸¸º¸¸¸¸º¸¸ºº¸¸¸ºº¸º¸¸º¸º¸¸¸º¸º¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸·¸·¸¸···¸··¸·¸·¸··¸·········³····³·³·K··³K·K·K····K·K·KKK·KK·J·J·J·JK·J·J·J·J·JKKJKJJKJJJKJJKJKJJJJJJJHJJHHGGGGGFGFFFFFK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKKKK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKKKK³K³KKK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKKKK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKKKFFFFFFFFGFGFGGGGHGHHGHGJGHHJHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿþÿþÿýÿþÿýÿþÿþÿúóó÷úóóúóóúò¬�m==>========>=$====>=>==========>>====C>====>=>=>>>>==>==C>==>>CC====>>>>>>>=>>==>>=>C>>>>=>=>>>==>>==>>=>CC=>>>>>==C>=?CC>==zèÿÿÿÿÿÿÿÿò›C=C>>>>>C>>C>>>>>=>>>C==>C>>==>=>C==>A>=AAC>=>>C>>>>C=>A>>>>>>=>lA>AC>?>>>>>?>?C???A?>=>>>>>C>>>==C>==>>>>===>==>=>>=C==>>=>==>==C>A>=>>C>=>==>==CA===>=>=>>==>>>=>===C>=>==>>===>>=>=====>=>==>================>=========$========$==========$$==$===9=!==!=====!$!x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáZ!Èÿÿÿÿÿÿÿ÷[   =qªõÿÿýÿþÿþÿÿþÿþþþþþþþþþþþþþþþþþæÓ6666666586666666666665665656666566666666666656666655666666656866666656666666865666666656666666656666666566656666666666666666666656666656656668666665666666656656666i666i6656568666566666666686656666666566666i56666666666566666666866586665666666666i666666666566666666666686668666666666666666665666666665666865666566566566666686666666666666665666665866666666665666666656666666666666666666665i6666666666666566ºº¸ºº¸ºººº¸ººººº¸º¸º¸ººº¸º¸ººº¸º¸¸º¸º¸¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸··¸·¸··¸·¸··³·³·³·³·³·³·K·³K³K³³K³K³K³·KKKKKKKKKKKKK·KKKKKKKKKJKKKJKJKJKJKJKJJJKJJJKJJJJJJJJJJJJJJHJJGJGHGGGFGFGFFEEFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFFFGFGGGGGGGHGHGJGJGHHJGJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJJJJJÓÓÿþþþþýÿþþþþÿþþþþÿüóúóóúóóóúóò¬�o====>=========>A>>===>AC=====>>A>=>==CA=>==>==>=>=>>===>>===>=>>=C>>>====>==CC=>AC===>==>>>=>>==>CC>>>>==>>>>>>>CC=?C>=>C>=ußÿÿÿÿÿÿÿÿèƒCCCCC>>=>CC===>>>C>C>>>>=CC>C>>==>C>=CCC>>>>=>>=>A==>>>=>CCCC>>=>>==>>>=>>>>=>>>>>>=>CC>>>>>==>=C>>>C>>CCCC>>>>==>>=>=>C=>>>>CA>>=>>>=>==>====>CC==>>=>>>>>C>========>=>>=>>====C=====>==>=>====CA====>>>=======>=!$==========$$=====$$==$==========!======$!$=======xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð‚  !@óÿÿÿÿÿÿÿÎ! !qªíýÿÿþÿÿþÿþÿÿÿÿþþþþþþþþþþþþþþþæÓ656656666666566i6666666666666656665666666666666666666666686866666556566556656666666866566665656666666666666666666666666566686666566666666666666666666666666i56665665666566686885666i66668i666665666666666568666566566666666656666666666656666666666656666666866i666566566656666566666666666666656666565666666666666666666666i56666666665666665666566666688665666666665666666566666656666566666666668656668665666568566666¸º¸º¸º¸¸¸¸º¸¸¸¸¸º¸º¸º¸¸¸¸º¸¸¸¸¸¸º¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸·¸·¸·¸·¸·¸··¸··¸···¸··············³····³··³³·³K·³K·KK·KKKKKKKKKKKKKKKKKKKKJKKKJKJKKJJJKJJJKJJJKJJJJJJJJJJHJJJHJHJGHGGGFFFFFFEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KEFEFFFFGFGGGGGGHGHGJGHGHHJHHHHJGJHJJHJJHJJJHJJJJJJJJJJJJHJJHJJJHJJJJJJHJJJJJHJJJJJJJJJJHJJ××ÿþþÿþÿýÿýÿýþþþÿþÿóóóóúóúóúóúò¬Žo=>===>===$=====CAA===A>A>====>=>>=>==>>=>=>===>====>>==>==C=>>==>A>>==>====>C>>>>>====>=>==>>>=>>=>C>>>>>>>>>C>>C>>>>>=>>>CÌýÿÿÿÿÿÿÿßxCACCC>=>>>>>>=>>>ACC>C=>>>>>?>>A>>>=>>?l?>>>>=>>>>?=>=>>=>CCl>A?=>=>>A>==>C>==>>=>>==>ACC>C>==>>>>>>>>?>?>>>>C>>>=>>=>>=>=>>A=?>>>>==>>==>>====>C>=>>==>=>>>>>====>==>======C>==>>>=>===>===>>===>>====A>=======>==================$$=!=>=!=====$===$!=======!!====!==x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷– –ÿÿÿÿÿÿÿñ!  !9q¥õÿÿþÿþÿþÿÿþÿÿýþþþþþþþþþþþþþþþæÓi66666666666656565666566665666566i666566666566668666666656666655566665666656665666666666656566666565656686666666686686656666566665665666666686665666666665665656666666666665666656656666656666665656666666i66666656666565666656665666565666666666666665666666665656566665i65666655666666i66866656566665666666i866686665666666666666656666666i666656666566666666666565656566i665666666666666666656666666666656565JJJJKJJJJJJJJJJJJJJJJJJJJJJKJJJJJJJJJJJJJKJJJJJJJJJJJHJJHJJHJHJHJHJHJHJHJHJHJHJHJHHJHHJGHHJHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHFHHHFHGTFHGTFHFHFGGHFHFGFGFFFFFFDFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFEFDFFFFFFGFGFFGFFFFGFGHFGFGFGFGGHFHGFHFHGFHFFHFHFGHFGHFHFTÓÓÿþÿþþýÿþÿýÿýÿþþþÿüóú÷óóóóóú÷ò¬Žo=====>=>===>>========================>=>=====CC==>===>>==>C>=>=>>>>>===>C>>>=>=>>?>CA>>>C=>=>CC>>>=CC>=>>>>=>>>>>=>A>>=AC>ƒóÿÿÿÿÿÿÿèxC>>>>>>>=>>>>>>>?>==>>C?=>>>=>>>CCCC>>>>CC>>>?=>C>CC>>>=>>>>>>>=>CCCCC>C?=>CC>CCC=>>C>>==CC>>==CC>=>C>=>>=>>>>C>>>>>>>CA>C>>C>>>==>>==>>>>>>=>C>=>>>=>>>>>=>=>ACC===>>>>>C>>=====>====>====>==>>====>>==>=======>==>==>A=======>=========A=$======!$=========$==$!==!==x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü‚;ñÿÿÿÿÿÿú_  =sªíÿþÿþÿÿþÿþþÿÿÿþþþþþþþþþþþþþþþæÓ5668686655656666666665565666656666566666665566666666566666666666666866686666686666566656566656656668666666666656i566i6668656656566666665666666656686566686666666666666666666656666i66656i6i66566668666666566685666666566656656566665666666566665668666666566656566566666668566566566665668666565666656668666656666666668566656666566565666566566656666665666666656666i666566666566666666666566566565666566686866    HHHHHHHHGHHHHHGHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHGHHHHHHHHGHHHHHGHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHGHHHHHHHHGHHHHHGHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHHHHH     ÓÓÿþþÿýÿýþþÿþÿýþÿþÿúóóóúóúúúóóò¬Žl=====>=>>==>===>=============>===>===========CC==>>=>===>>C==>>>=>>>==>>>>>=====>A?>>>>>>=>=?C>>>=>>C>>>>==>>>>==>CCC=>?>CßÿÿÿÿÿÿÿñƒC>>>>>>>>>>>>>?C>>>>=>=>C>>C==>CCl>>?>>>>CC>>??=>CC>>>>>>>>C>=>>>>CCCC>>>>>>C>>>C>C>>>?>>=CC>===CC==AC>=>>>>C>>>>>?C>=>=>lC>>=??>=>=>>>=>>CA>=>C>=>>>>=>>>C>==>CA>>>=>=>>ACC==>=>====>==>===>=>======>==>==>============>=>======>==>=========!=====$=========!$=!==$$==xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóY!„ÿÿÿÿÿÿü !  qªõÿÿþÿþÿþÿÿÿÿÿýþþþþþþþþþþþþþþþæÓTTTTTTT66666886665666665665666656666568666665665656556686666866666566666666656668656666666666666566665666666666656665666666666i56666868666i6666586666666665686566656666685666566666668666665i6665665666656666566666686666656i6566666666666666666586566666656686666665i86666586565656666666866566666656666666665666666668665665866666666566566i66666656668686668665666566666568656866656566686566656668668666666565668666668       ÓÓÿþÿýÿýÿþþþþýÿþþþÿüóúó÷óóóóúúò¬Žl=====>====>=========>C>==>A>==>==>>=>>>>>>>==>l===C>>>=A>>>>>=>>==>==>C>=>CCCCC>>>=>>>C=>>>==>>>>?CC>==>C=>>>AC>>C>>>>=>>”÷ÿÿÿÿÿÿ÷–C>>==>>>>>C>>>=>?>=>C>>>>>CCC>=>C>C>>C>>>>=>=>C?=>lC>=>>>?>>>C?>>>>>>>>>>>=>CCC=>>>>>=>?>=>>>>>>>>C==CC>>>>A>=>AC>=>C>>>>=>=>>>=>>=>=>CC==C=>C>>=>>>==>=>?>>>=>====>A>===>=>>=====>==>C=============>>======C========>==>==>===$=====C======================$==$!=====!$=z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç;@óÿÿÿÿÿÿá $qªíþÿÿþÿÿÿþÿþÿÿÿþþþþþþþþþþþþþþþæ×"T"TTTT"TTTTTTTTTTT666566666666668i66656666656656666566656656666665656665656666666566665666686566666566666566i66666666666666666666686i66666666666666656i666656656656666666566666666568666686665656665666668656666665666665666686666666666656656666666666666i6666666666666666666i6666666666665666666666666i665665666656666665666666666666666656686666666666666666566666566666666666666866666666       Ó×ÿþþÿýÿýÿþÿþÿýþÿþÿúó÷ó÷óúúúóóò¬�m=========>==========>A>==A>==>===>>>A>>==CC==>A==>C>=>>>A==>>>=>==>==>>>>>CCC>C>>=>>>>>>>C>==>>=>>C>>>>C>>>>>>>>>>>>>>>>tßÿÿÿÿÿÿýÆC>C>>>>>C>=>C?=>>>>>>CC>>>>>CC>>=>CC>?CC>=>>>>>>>=>CC=>C>>>>>>>?>C>>>>>>>>>=>>C>>>>>>>>>>A>>>>>>>>>>>>>>>>=>C>==C>>=>C>>C>>>>=>C>====>>>>=>C=>CC>==>==>>>?C>=>?=====>>>>===>=>=>======>C>======>>====>====>=>A========C=>>===>====>====>$=============$$==$=====$======!=={óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!Ëÿÿÿÿÿÿó;!qªõÿÿþÿþÿþÿÿÿÿÿýþþþþþþþþþþþþþþþæÓTT668666566666666665666666666866665i6i6666666668666665666665666666656566666666566666666666656866666565668666665666568i6665666566656665666866666666666i8666666666656666566666666666666666656666666566666666666666666666686666866666i8866668666566566565666666668666666566566666666866566665666656666666666666865666656666655666666666666666666566656666666666666666656665666566666666666566   ÓÓÿþÿýÿýÿýÿþþýÿþþþÿü÷óúóúóóóúúò¬Žo==>=====>====>>====>==>==>>===>>>==A>>>==CC===>>=>C>=>>=>>=>?=>=>=CC>===>=>>=>=>>>>C>===>C>>AC>>>=>>>CC>>>>>>C>>>>>>>>>>›úÿÿÿÿÿÿßu=>CC>>>>>>=>CCCC>>CAC>>C>>>>>>>CC>>>>>>CCAC>>>C>>>=?C>>>CCCCC>>C>>>CCCC>?>>?>>>>>>>>>>>>>>?>>>>?CCC>>>=>>>>>=C>=>CA=>>>>=CCC>>=>>=C?>A>>C>=>=CC=>>>?=>>>==>>==>C>===>>>A>=>====>>>>>==AC==>>>==A==>=>C==>C====>==>>==>========>=>=>====$!=>=======!====$=========$$=======xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿx !�ÿÿÿÿÿÿü‚ !   $pªíÿþÿþÿÿþþþþÿÿÿþþþþþþþþþþþþþþþæ×TTTT""TT""TT""TTT""TT"TT"TT"TT6656566666665666668666666666i866i666666866666566856666668566566666665665666666666666666i666656666666865666566666666i8556666666668666666666666686656686666666666656666666665666665666566665666666656665666656666866666666666666666866666656666666666665656565i656665656668i66666i56666565656666656666666688886666666665666666666666666665666666666666866656666666i665686i8i66566666"T     ÓÓÿþþÿþÿýÿýþþÿýÿþÿþúóúóóóúúúóóò¬�o===>========>==>=>>>>>==>==>===>===>>>>=>AC===>>>>>====>>>=>>==>=>CC=>>>=>C>==>>=>>C>>==>C>>CA>==>>>>CC>=>?CC>>>>==>>>>tßÿÿÿÿÿÿú–A=>>>>C>>C>>>>Cll>>>C>>?C>=>>>>>CCC>>>>>CCCC>>>C>>==>C?>CCCCC?>C>>CCCCCCC>>?>>>=>>>C>=>=>>>>?C>>>??>>>>>>=?>=>C?>>?>=>>A=>CCC>==>>CC>C==CC>===>=>C>A>>===C==>=>>>>>>>>>>>>>=====A>>>==>>==>>>>==>==>=CC>>>=>>====>>====>=======A======>=====================$$!=====!==$===x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð ! @üÿÿÿÿÿü !q¥õÿÿþÿÿþÿÿÿÿÿÿýþþþþþþþþþþþþþþþæÓ8686666656666666666665656665666686686i6566666666666666566666i666666566665666666666666666i65656666666656666665668666866666666i6656656666666666566666666668666666566666566666666i6666665666656656666668666666666666i565666665566668666666666665666666666666866666566666666656666i5665666666666666666666666666666566666666666666665666565666566666666666i666666566666688656866666666TTT"TT  TTTT""TTTT""TT""TT""TTT""TT""TT""TTTTTT""TT""TTT""TTTTTT""TT""TT""TT""T  ÓÓÿþÿþþýÿýÿþÿþÿþþþÿüóóóúúóóóúúò¬�q==>=>A==>=>===>======>>>===>>>>=>==>>====>>=>>=>>>CC>>>>>>>=>C>>>A>>>AC>>=>C>=>>>=AC>>>=>>>>>C>>CC>>>?>=>>C>>>>?C>>>C>>{òÿÿÿÿÿÿßu>CC>>>>>>CCCC>>CC=>>?>>?>>>C?>AC>>?>>>>>=>CC>C>>CC>>C>A>>>>>>CCC==>>>>C?>>>>>>>>>CCCC>>C>CC>>AC>>>?CCA?A?==>>>>>>>>>>>>>=>C>A>>>=>C>>>==?>>A>>>=C>>>>>>=ACC=>=====>>>====>>>>=>>A=>>>====>=>>>=>>>====>=>>=====>============>==============>=======A=$====>======$======$!$z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ… !ÎÿÿÿÿÿÿÌ  $}ªíþÿÿþÿÿþÿÿþÿÿÿþþþþþþþþþþþþþþþæÓ66666666666656556666656666666656566666656666666666666666656656666566666666668666665i66666656666656686666666666665666665666686666666666566666568666656666665666668665666566656i6665666666565656666666666666666665666668666666i656666666666666668566666i66666655656666666566666666686886666656666666665666666666566666666666656666566666666666666666666566666665666566565566666666666656666T:TTM""TT  TTTTM""TTTTM""TM""TM"TTTTM""TM""TM"TTTTT"TM""TM"TTTTM""TT"TT"TM""TM""TM""TM"T  Ó×ÿþþÿþÿýÿþÿþþþþÿþÿ÷óúóóóúúúóóò¬�q===>>>>>==>>===>=====>>===>A>==>>>>=========C>=>>=>C>>=>>=>=>C>>=?C>=CC>===?>>>C=>CC>>>>CC=>>CC>CC>=>C>=>C>>>>>C>A>>>A>Æýÿÿÿÿÿ÷”CC>CC>>>>>CC>CC>>>>>>>>=>?>>CC>>C>>C>>>>>>>>?>CC???>CC>C>??>>>>?>>>>>?C>>CC>>>>>>>>CC?>CCCC?=>>CCA?CCCC>>>>>>C>>>>=>>>?=>>?C>C>=>>C>=>>=>==CCC>>>>C>=>>>>>lC=>>===>>===>>>===>=>A>=>>=>>====>>=>==>>===>=>=============>====A===========>>====>=====>====================!$$z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò; –ÿÿÿÿÿÿÏ=}ªõÿÿþÿÿþÿÿþÿÿÿþþþþþþþþþþþþþþþþæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT66656666656666665665666656686666656665666665666665666666666i66666565666556686i66666566656i666656665566565666666666565656i66655665666666656666666566666666666666666666656565656656656666656665665665666666666556556i56666666656656656565656666666656665686666i556556566666656i56658665685665666666665566686666566666656666656665666666656666665666666565666568866566665666656666TT""T"TTTTTTTTTTTTT"TTT"TTTTTTTT"TTTTTTTT"TTTTTTTT"TTTTTTTTTTTTTTTT ÓÓÿþÿþÿýÿþýÿþÿþÿþþÿü÷óúúúóóóúúò¬�p==>========>==>=>AA>A>>=>==>>=>=>=>==CC>>>>>>==>>=>=>C=>?CC>>>>C==>>>==>>>C>>=CC>=A>>>>=>>>=>C>>>?>==CC>>>>>=>>CC>C>>CußÿÿÿÿÿÿÎuC>>>>CC>>>>>>>>>>?CC>?=>??C>>C>>>CCC=>>?C>C?>>>>>>?>>>>>>C>>>>>>>>>>>>>>>>CCClCC?>=>>>=>CCCC=>C>?>>>>>>CCC>>>C>=>CCC>>>==>=C>>>=C>>=>C>CC>=C>=>>>>>>===>>=>>>>AA=>C>>>=>CC==>=>>>?>===CC==>>=>>>>=>C>====>=>==>==>==>>===>=>=$=>>===>=====$=======$=====$===================x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„!�ÿÿÿÿÿÿá!  =q¥íÿþÿþÿÿþÿÿþÿÿÿþþýþþþþþþþþþþþþæÓTTT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TTTT:TTTT:TTTTT"TT:TT65655665665656666656566656666666656665656666566666666666686565566666666556688566i6666686666665666666665665665656666666i666566566566668665666666568666566666656666665566566566656i5665666665665666665666666665666666866665655666666666866656565668866666666566656666666565655668866866i566665565655i6666666656666666666656666566656656665685666566666666666666665566566"T""TTTTTT T"TTTT""TT"TTT""TT""TT"""TTTT""TT""TT"""TTTT""TT""TT"""TTTT""TT""TT""TT""TT""TT""TT"""T" Ó×ÿþþþþÿþÿÿþþþþþÿþÿúó÷óóóúúúóóòÓ�o=>>=>>====>=>>==>CC>>A>=>>>>>==>=>=>>>CC?C>>>>=>>=>=>>>>>CC>=>>>=>>>===>>>CC>>>CC>>>>C>>>=>>>=>>>=>>=>>C>>>>>>CC>>>>>C{ñÿÿÿÿÿþ›CCC>>>?>?C>>=>?>>>CC>?>>>??>=C?>=?CC>=?>>CCCC>>?>>=???C>>CC>>>>=?C>>CC>>>>>>ClCCCC>=>>>>>??CC>>>C>>>>C>=?CCC>>C>=>C>>>=>>=>>>>>>>C>>>>>>CC>=>=>>>>>C>>=>==>>>C>>C>A>>=>>>>==>>=>>>>>>>>?>>>>====A>>>====>=>>>==>==>>>>>===>>===$>>=====>============$==========$$=====$$=====x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá[ÿÿÿÿÿÿñ   p¥õÿÿþÿÿþÿÿþÿÿÿþþþÿýÿýþþþþþþþþþæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT856666666665886666565665656566666666566666666665586665666565566666566566i56656566656666666i666666566666666666666666666655658i5666666666i666556656566665666566565666865666666566i6666666666566866666656666656566665866566668655666686586688666666666666666665i565666666656686656866666666666666656666666566656665666665666566666565i6565565666666565686656566666666665666665656666666656TTTTTTTTTTTTTTTTTT"TTTTTT"TT"TT"TTTTTTTTTTTTTTTTTTTTTTTT ÓÓÿþÿþÿþþþýÿþÿþÿþþÿüúóúúúóóóúúò¬Žl>>===>==>>===>===>====>=>==>==>>>>>=>>====>===>>A>>===>>=>>C=>>>==CCCC>>>>>C>>>=>>>>>C>=>>CC>>>>>>>>?>>>C>>>>>>>?CC>=A�üÿÿÿÿÿò{>?>>?>CCClC>CC>>>C>>CCl>?CC>=>C?>?CCCCC?>>>>?>>>?C=>C>CC>>>CCC>=CC>>Cl>>>?>>?>>>>C?>?lC>>=>>>=>C>>>C>>C>>>>=>>>>>CCCA>=>lCC>>>>>>>=>C>>=>>>>C>>>=>>A>>>>C=>>>C>>>==>CA>>>=>>>>>C?===>=>===>>>>A>>>>==>>>>>==>>====>>==>====>=>===A=====A======>====$=>===========A==!$=======xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü#Yÿÿÿÿÿÿñ!!!=qªõþÿÿþÿþÿÿÿþÿÿÿþþýþýþýþþþþþþþþæÓXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXbXXbXX66666656666666665656666i86666566666665566565666i6665666556666556666565i8666666i66666666566666665665665655566666666566566666i6665665666i665666655666656656666666665666666666656566556666665656665666i686666666866866665666665666666666556686566566i666566666666686666686666665656666666666666686556666565666566686566656565665666668666666866666666666666656656666666668666665656666TTTTTTTTTTTT"":TT"T"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTÓ×ÿþÿþþÿþÿþÿýÿýþÿþÿóóúóóóúúúóóò¬Žo>>==>===>=====>=>========>==>=>CCC?=>=>===>===AC>>>=>=>===>>=CC>=>lCCA>=C>CC>C>>>==C>>>>>>CCC>=>>>>>>>=>>>>>>>=>CCC>>CÌÿÿÿÿÿÿßu>>>=C?ClCCCCCC?=>lC>>lC>?CCC>>CCCACCCCC>>>>>>?>>CC>>C>>C>>CCCCC=>>CCCCC>>>>>>C>=>?CCClC?>=>?>=>>>>?CC>>>>>>>C>>>>CC>>C>CCCCC>>>>>>>>C>==>>=CCC===>>>>CACC>>>=?>>>=>>>>>>======>CC>====>==>>=>C>>A>>=>>C>>===?>=====>=>======>=>===A>=======>===>================A============x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�@üÿÿÿÿÿó@ !  ! =s¥õÿÿþÿÿÿÿþÿÿÿÿþþþÿýÿýÿýÿýþþþþþæÓ·········³··³··············³··········³···³³·³··³··¸·¸·¸········666665i656666686866i6556666686666666656866666665666666666666566666666666666665666566655665666556566656666665i5666666666656665665665666i5665666666666666666566666666666666656566666566665665666666556665665665666666668666866666656666666565666666666666586656566665666666556658i6666665666665686666666866666655666666666i66665565566565666666i86565666666566566666668655i686665666566666TTTTTTTTTTTTTTTTTTT:TTTTTT"T"T"T"TTTTTTTT""T""T"T""""""TT""T":TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTM ÓÓÿþÿþÿþþÿþÿýÿýÿþþÿüúóúúúóóóúúò¬so=>===>>>===>>>>==>==>>>>>>=>>====>>==>>==>A==>C>>>=>>=C?>=>>=>?>==CA=>>=>>>C>>>>>>CC>>>??>>=>>CACC??>CC>>>>CC>C>>>>>Cußÿÿÿÿÿÿ�C??>>>>>C>=>CCA>>>CC=>CC>>>>>ClC>C>?>>CCCC>CC>?=CC>>>CCC??>Cl>?>CC>CC>>>CCC>>CC>>>C?C>C>>>>>Cl?>CC>>?C>>>>?CCC>>>C>C>>>=>>>CC>>C?>>>>CC=>CC>>>C>>?>>=>>>>>>>>>>>=>C>>>>>>C=>>>>>A=>>>>>>=>?C>==>=>==>=>>>>>==>====>>===>>=>>>======>===>>>======C>======>====>============$$==zóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ @óÿÿÿÿÿóY !=sªíÿþÿþÿþÿÿÿþÿÿÿþþýýýýþþþþþþþþþæÓ³³³³³³³¸³³¸³¸³³·³³¸³³¸³³¸³¸³¸³¸³¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸³¸³¸³¸¸¸¸¸¸¸¸6666666566666666666566666666666656656666566665656685668688666856666555665655666665665666566566666666686566566566666666665666566566566666666666566568655566566665655665666666656666665666656666566666668668668656666656666666656666566666566666666665666666666665665656666666665666665666665655668i8668666565656666685656666566656565566i665688666656686565666666666666656666656TTXTTXTTXTTXTTTVTXTXTXTVTXTTTTUTTTTTTVTTTTTTTTTTXTTUTTTTVTUTVTTUTTVTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"T:T"TTTTTTTTTTTTTT"TT"TTTTT"TTTTTT"TTTTTT"TTTTTT"T"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TT:TT:TT:TT:TTÓ×ÿþÿþÿþÿýþþÿýÿýÿþÿúóúóóóúúúóúò¬so>>==CC>====>>>===>>=>A>===>CC====>==>>==>>>>>>>>=>>>>=>C>>>>>>=>>>==>>==>>>>>>>=>?CC>>>>C>>=>CCC>>CCCCC>>CC>?CC?>>>>?uèÿÿÿÿÿúƒ>>CCCC>>>>=>>>>>>>>>>>>>>>?>>?lCCC>>>CCCC>>??C>>CC>>>CCCC>>?C>>?CC??C>=>?CCC>>>>>C>CCC>A>C>>lC>>CC?>>CCC>>?CC?>>>>C>>>>=>>=?C>>>A?C>=CA>>CCC>>>??>>==>>>=>A>>>>==CC>===>>>C>=>>>=>>C>>>>>>>>>====>===>>>>>>>=====>>>>>===>C>>=======>==CC====>=>>>>===============$==A========z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷;óÿÿÿÿÿ÷Y !! $sªõÿÿÿþÿÿÿþÿþÿÿþþþÿþÿýÿýþþþþþþþæÓ³³³³³³¸³³³³³³¸³³¸³³¸³³¸³³³³¸³¸³¸³³¸³¸³¸³¸³¸³¸³¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666568666666556666666656666665666686665666655566656665856668866665666666566665666656686566i666656566866568566666656666666665i65668656565i8666666666686665566666686666865568656566665666666666666666665668666666656666666566666656665i55666655566666665656566556556666866656666666566656666665666566656586666666566666566666666866666565656666666666665666i556656666656686665666658XXXXXXXXXXXXXXXXXXXXXXXXXX^XXbXbXbVbXX^X^XX^XXXXXXXbVbVXXXXXXXXXXXXXXXXXXWXXXXXXXXWXXXXXXXXXXXXXXXXXXXVXXVXXVXVXXXVXVXVXVXVVVVVVVVXVXXX:VVXXXVXTVVXTXUXVVX:XTVVVVXUXXTXTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTXTXTXTXTXTXTXTXTXTXXTXXTXXTXXTXXTXÓÓþÿþÿþÿþÿþÿýÿýÿþþÿüúóúúúóóóúóò¬}j=>===>==>>==>=>=>>=>=C>>===C>>>>=>A>>=>CC>>>>>=>=>>>>?=>>>C>C>=>CC=>lC=>C?>>>>>>AC>C>>>>>>>>>C>C?>>CCC>>>CC>>?C>>C?>>zñÿÿÿÿÿõƒ>C>>C>>>lC>>>?>>>>CC>??>>>CC=>C>CCC>>C?>?=CCClC?>>C>?C>C?>>C?>>C??CCC>>???C???>?C>>>??C>?C=>CC>>CC>CC>CC>?CC>>>>>>>?>C>>>CCC>>C>>C>>>C>>>>>C>>=CC>>C>>C>=>>>>>CC>>CC>>>=>>>C>>>>==>>>>==>A>>=>>=>?==>>>>===>>=>>=>>==>>=>========>>=C===>=========C>=======>=$==>=============x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ!;òÿÿÿÿÿóZ! qªõþþÿÿÿþÿÿÿÿÿÿÿþþþþþþþþþþþþþýÿæ×³³¸³³³³³³¸³¸³³¸³³¸³³¸³³¸¸³¸³¸³¸³¸¸³¸³¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸³¸³¸¸¸6666666666666656566565666566668665655666666666856666666686656666666666656566666566666566866656656665686566666666666666666565666586686666565656666666666i6666566666666656666666566666666866665i65i6566666866668666866566865666668666656566666566666668566665656666666666666666666566656556566666656666656686666566666i66866566666665686656i665666666666565666i5i666665656666655665666ºººººººººººººººººººº¸ººº¸ºº¸ºººº¸ºº¸ººº¸ººº¸º¸¸¹¸º¸¸º·º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·····¸··¸··········K··K··³··K·³·K·K·K·K·K·K·K·KJ·J·JKKKWKKJ·JKKWJKJKJKJ·JKJKJKJJJJKJJJJJJJJHJHJGJGGGGFGFFFFFFTXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHFFFFFFGGFGGGGGGHGHGJGHGJHHJGHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþÿþþþÿþþÿþÿþÿþÿóóúóóóúúúóúòÓ�m=========>>>===>>=>=>>==>=>>>?C>>>>==>CC>?CC>===>CC>C?>>C>CC>>>CCC>>CC>>CCC=>>=>CA>?C>C=>>>CCCC>C>>>?>>>?CC>>?>C>?C>>{òÿÿÿÿÿñ{>>>>>>ClCCC>CC>>>>>CCC?>>>C?>>C>ClC>>>>?>ClCCCC?>=?CC>>?C??>>>?C>>ClCC?C>?>>CCCC>>>>>?>>>>>>>>>>>>ClCC>>>>CC>A>>>=>CA>>=CCCC>>CC>?>CCC>>>>C>>>>AC>>CC>>>C>>>>CCCC=>>ACC?>==>>>>==>C=====>>>=>>==A>>=?>====>A>>A>>?>=>>=>======>==C>=>C>======>==$==>>===$========>=========$$$xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü@!óÿÿÿÿÿóY  qªõÿÿÿþÿþÿþÿþÿÿþýþþþþþÿýþþþþþþþæÓ³³³³³¸³³¸³³³³¸³¸³³³¸³³¸³³¸³¸³¸³¸³¸¸³¸¸¸¸³¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸³¸¸¸¸¸³86666856666666656666666686656668666656668665666666666666656666666666666656666666656666i65666666666656556656865666668i666865655666666668666665566666665686i5686566666666865566666656666666566i666566566685665665656666666665666656666668666656656666656666656656866656656566866566666665666668665866666686656866666566665665666666656666ººº¸ººººººº¸ºº¸º¸º¸ººº¸ºº¸ºº¸º¸ººº¸º¸º¸¸º·º¸¸º¸¸º·¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸·¸·¸·¸··¸¸·¸·³¸·³³·³³·³·³··³³³·K·K³K³K·K³KK·KKKKKKKKKK·J·KK·JKKKKKJ·JKJ·J·JKJJJKJKJJJJJJJJJJJJJJHJJHJGHGGGFGFFFFFFFTXXXXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXXXXFFFFGFFFFFGFGGGGGGHGHGHGJGHGJGJGJHJHJHJJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓÓýÿþÿþÿþÿþÿþþýÿüÿÿüúóúú÷óúóú÷ò¬Žo>==>==>>==>>=>>A>>===>>=>>===A>>>>>>>C?==A>>C==>>Cl>>>=>>>>>>>>>>C>>>C=>>>>>CC==>>>>CC>>>>>CCC?>>>>CC>C?>C>>>>>>>CC>>”÷ÿÿÿÿÿáu>>C>>>?>>?>CCC>CCCC?C?>?C>Cl>=??CC?C?>>C>>>>>CClC=?l?>>CCCC>>?>CCC?>C??>CCC>>C>??CCC>>>CCC?CC>>?>>CC?>>C>=CACCA>>>CC>>>>>CC>?=>?>>>>>>CC>>?>C>=>>>>>C>=Cl=>>>>?>>>=>>=C>>>>>>=>>>>>C=>>>>>==CC>==C>==>>==>>>>>>==>===>===>A=>====>C===>==>====>>=====>====>============>=====$x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_;òÿÿÿÿÿ÷Z $pªíÿþÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþþýÿþþþþþþæ×³³³³³³³¸³³³¸³³³³³¸³³¸³³¸³³³¸³³³³¸³³¸³¸³¸¸³¸³¸³¸³¸¸¸¸³¸³¸¸¸¸¸¸¸¸¸66686656666656666656566666666666656866565655656666656666565686566656666866656666i6665665566566656668656656656666666866666866686666656666668866566866565666565665566665666566665566665666565688656666666566656666668665666656666865656685666656866668668668568666886666656665666656656656656666666666666665665656866565i686566665868666686ººººººººººººººººººº¸ººº¸ºº¸ººº¸ºº¸ººººº¸ººº¸º¸º¸º¸º¸º¸¸·º·¸¸º·¸¸¸¸¸¸¸¸¸¸·¸¸¸¸³¸¸·¸·¸·¸····¸···¸³¸·····³³··³K³·³³K³³·K·K·K·KK·K·K·K·J·KJ·JKKKKKWKKKJKKJJJJJJ·HJJJJKJJKJJJJJJJJJJHJHJHGGHGGGGFFGFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFDFFFFFFGFGFGGGGGGHGHGHGJHHHJHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿþÿþÿþþÿþÿþÿþÿ÷óúóóúóúú÷úò¬Žo===>==>>>>==>CC>>>>>>>>>>>>==>>>>>>A>>=>>>>=>>>>>CCC>>=>CC>>=C?>>CC>>>>>==?C>>>=>>>>>>>C?=>?>>CCC>>>CCCCC>>>>==>C?>>?›úÿÿÿÿÿßZ>>>CC>=>>=>CC?>CCCl>>?CCC??l?>>CC>?CC>>CC?>=llCCCCClC?CllCCCC>>CCCCC>?>>CC?>>>C?>>?>>=?CC>CC>>>>>?C>=>?C>>>CCCCCC>Cl>>>>?CC?>>>>>>>>>>CC>>>>CC>>>==>C=>C?>>>>>C>=>=>>>=CCC>==>>C>>C>CCC>AC>>>A>=>A>==>==>>==>>==>>>>==>>=CA>>=>==AC>=>>==C>===CA====>=>===>>==========>C==$$==z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚@óÿÿÿÿÿ÷Y $pªõÿÿÿþÿÿþÿþÿÿÿýýþþþþþþþýþþþþþþæÓ³³³³³³³³³¸³³³¸³¸¸³³¸³³¸³³¸³³¸³¸¸³¸¸³¸³¸³¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6566666556656666656666656856666656666866666666656665666666666666566686565666666656668666666666666666666665666i66665i668665666666666666566686665666666668665666666866666668666665666658666668658665666666655656666666566686866666666666566666665656665668666666666566566656686686556656665566665i866866668686666586666666566666666666ººººººººººººººººººººººººººººº¸ººº¸ºº¸ººº¸ºº¸º¸º¸¸º¸¸º¸º¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·¸·¸··¸·¸··········K·³··K···³·K··K··K·KKKKKKKKK·KK·J·J·JKKJ·J·J·K·JKJKJ·JKJKJKJJKJJJJJJJJJJHJJHHGGGGGGGFFFFF³KKKKK³KKKKK³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKK³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKK³KKKKK³KKKKKKKKKKKKK³KKKKK³KKKKKKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKK³KKKKKKKKK³KKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKK³KKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKK³KKKKKKK³KKKKKKKKKKK³KKKFFFGFFFGGFGGGGHGHHGJGJGJGJHHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýÿþÿþÿþÿþÿþÿþþþþÿüúóúúóúóóúúò¬�p>>>>====>C>=>C>>=>>===>A>A>=>>=>>>>=>>>>>>>>=>C>>>>>=>>>l>>>>>>>C>>>>>>>>>Cl>>>>>>>>>>CC>>?C>>>>>>?>>>>>>CCCC>>CC?CCC�üÿÿÿÿÿÎuCC>ClC>>C?CC>>>>?CCC>?CCCCCC>>CC?>C>CCClACC>>CC>>>>C?>CCC?CCC>=?CCC>>>??C?CC?ClCCC>???C??>CC?CCC>>Cl>>CCC?>?>>CC>>CCCC>>>?>>>>>=>C>>>>>>??>>>>C>C>>>C>>>=>>>=>C>>>>>C?==C>>>>>CC=>=>>>>>>>==>>=>>>>>>>>=>>>==>>====C>=>==>>>>=>===>>==>=>===$=C======>=>======================x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;òÿÿÿÿÿóZ  !!=sªíÿþÿÿþÿÿÿÿþÿÿÿÿþþþÿþÿýÿþþþþþþæÓ³³³³³³³³³³³¸³³·³³¸³³¸³³¸¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸³¸¸¸¸¸¸³¸³¸³¸¸6566666556656668666666666556566566665665i666665686655566688656566566666666i56666665656685666668865656586666566668566558558656566656666666656666i666566866656566666686666686666666566665666866666666868866666565666666666568665566668656666666666666566656665665666666666666566568666666665668666665666666666556685666666666668656666ºººººººººººººººº¸ººº¸ººº¸ºº¸ºº¸º¸ººº¸º¸º¸¸º¸¸¹¸¸º·¸º·¸¸¸¸º¸º·¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸·¸··¸··¸·¸³·¸³·³³¸³·³··³·³K·³³³K·K·³KKKKK·KK·K·K·KK·JKKKKK·JKJ·J·JJKJKJJJ·JKJJJKJJJJJJJJJJJJJJHJJGJGJGGGGGFFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKDFFFFFFFFFGFGGGGGGGHGHGHGJGJHGHHJHJHJHJJHJJHJJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿýÿþÿþÿþÿþþÿþÿþÿ÷óúóóúóúúó÷ò¬�o?>CC>>==CCC>>>===>>====>>>>>?>=CC>>=>>>C>=>==>>>===>=C?CC>>>=>=>C>>C==C>=>CC>C>=>CCC>=>?=>CCC>>>>>C>>>>>>CCCC>>ClC?CCÇüÿÿÿÿÿ×ulC>llClCCC?>>?>C>>lCC?CCCCC>ClC>>>?C>>lCC?CCC>>>>>>>>C>C>>CCC>>>CCC>>>???CCC?CllCCCCCC?>>CCClCCC>>?CCCCCC?>>>>?>>>>C??>>>>>CC>=>CCC?>>>>>>===>>Cl>>>CCC==>=>>>C=>CC>>>>=>>>>C>AC>>>>?>==>>>>>>>>>>=>C>===>=>==>===>>C>=>>C>===C>======>===>>====>>=====>>>===>================z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Y  qªõÿÿÿþÿÿþÿÿÿÿÿþþþþþþþþþþþþþþþþæÓ³³³³³³³³³³³³³³¸³¸³³³³¸³¸³³¸³¸³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸¸¸³¸³¸¸³¸¸¸¸¸¸¸86668666666566666666666666656586666556686666666866666656666666586565555665666556665666665666866665666666666656666556565658666665666666665666i66i665668666665666668656566866865566665566666656666565666666555665666766856666686566666866665666566666586656866666666656566866666666666666565658666666666665666656656668666866665666666665656666566666ººººººººººººººººººººººººº¸ºº¸ºº¸º¸º¸ºº¸º¸ºº¸ºº¸º¸¸¸º¸º¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸·¸·¸··¸···¸····³··³···³·K·³³·K³·K³K·³K··KK·KKKKKKKKK·KKK·JKK·JKJ·JKWKKKJKJJJJWKJJJJKJJKJJJJJJJJJHJHJGHGGGFGFFFFFFEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFGFGFFGGGGGGGHGHHGHGHJHHJHJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿÿþÿþþÿþÿþÿþÿýÿÿüúóóúóúúóúúò¬so==>>>>===>>>>=>>>=>=>>>>>>>>>>=>>>>==>>>>>C=>>C>C>>>=>>>>>C?=>>>C>>>>>CC>>CC>>>>C>Cl?=CC?>AC>=>lC??>>C?>??C>>?CCC>>CC�ýÿÿÿÿÿÌlC?>>>ClCCC>>C>C>>>CCCCCC>C>>Cl>>>>ClC>Cl>>?C?C?>C?C?>CC?C>>CC>>CCCC>>CCC>CC>>?CCCC??CC>AlC?CCC>>?>CCCC>>CC?>>>>?CCC?Cl>>>>>>C>CCC>>CCC>>CCC>>CCCC>=C>Cl>>>>>>>CC>>?>>>C>>C>>>>>>>>=>>?>=>=>>>>>=>C>>>>>>>==>>>>==CA==>=A>>C====>>=====>=>===>===>=========>>==========$$======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY =}«íÿþÿÿþÿÿÿþÿÿÿÿþÿþþþÿþþþÿþþþþþæ×³³³³³³¸³³¸³¸³¸³³·³¸¸³³·³³¸³³¸³¸³¸³¸³¸³¸¸³¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666686666568566656666665666i66565566856i6666656686i586666666656666565666666666665666656i5556565666666665656566688586566665666686686666666688665656666666568666656i666666566666666666686665666666666666666656666566666688666656666656668666666666666658856666566665656685i565656666666666666856666686566666586666665666658666665566566668566866ºººººººººººººººººººººººººººººº¸ºººº¸ººº¸ººº¸º¸º¸º¸¹¸¸º¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸·¸¸·¸··¸·¸·¸·¸·¸········³··K··³·³·³K··K·K·KK·K·K·K·J·J·JKKKKJ·J·J·J·JKJ·J·JKJKJKJKJKJJJJJJJJJJJHJJHJGGGGGGGFGFFFFFK³KKKKK³KKKKKKKKKKK³KKKKKKKKK³KKK³KKKKK³KKKKKKK³KKK³KKKKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKK³KKKKK³KKKKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKK³DFFFFFFFFGGGGGGHGHGJGJGJHHJGJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿþÿþÿþþÿþþþþÿþÿ÷óúúúúóúúóúò¬so==>==>====>>A>>C>==>C>=>>>>>>==>>>=>>>>=>>>>>CCCCC?C>>>>>=>CC>==C>=>>>>CC>>C?>=?l>>C>>lC>>>>=>CC>>C>>>>>>?>>>>CCC>CCCÆýÿÿÿÿÿÌlC>>>>>CCC>>ClC>>>>>ClCCCClCCllCC>?Cll>>C>>>?C?CCCClCCCCCC>>>???C>>>CllCCC>>>>>>>>>CCC?>CC>>>>>>>>CCC>>=>ClC>??CCClCCCC??C?>>>?C>>>CCC>>>>>?CCCCC?>C>>ClC>C>=>>CC>>?CCA>>>CC>=>=>>>>>CC>>>>>>=>=>>>>===>C>>>>===>AC>=>==>==>=>>==>>=>>>==A>===C====>>==>=>=>>===========!======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷Y!!  !!=sªõÿÿÿþÿÿÿþÿÿÿÿýýþþþþþþþþþþþþþþæÓ³³³³³³³³¸³³³³³³¸³¸³³³¸³¸¸³³¸³¸³¸³¸³¸³¸³¸¸¸³¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸³¸¸³56566666586665666666565686666686i6686556666566865565666665656666666656656666665566556565666666668566666666666666656666865666666666666665665666666666566688666566668666666666i66668666658666566686688666566666886566566666665666656665686865566668656566666666666666666686566i566566566666666666866566656666666686668666666666i666656566665666ººººººººººººººººººººººººººº¸ººº¸ºººº¸ººº·º¸º¸¸º¸¸º¸º¸º·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸·¸·¸·¸··¸···¸³··³·³³·³··³·³·³³K³K³K·K·KKK·K·KKKKKKKK·KKJ·K·JKKKKJKJKKH·J·JJJKJJJJJJJJJJJJJJJJJJJJJJHJGJGGGGGFFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKDFFFFFFFFFFGGGGGGGHGHGHGJGGJGJGJHJHJHJHJJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿþÿþÿþÿþÿþÿþþÿüúóóúóúúóúúò¬�p>===>A>=>>>>==>>>==C>>>=>>>>>>>==>>C>>>>>?C>=>?>?>>>>>>>C>=>C>>>CC=>CC>>?>>>CC?>CCCCCA>CC>>>??CCC???C>>CC??>>>>C>>>CC�üÿÿÿÿÿÌC>CCCCC>?lC>>lC>?C?>>CC>>CC?>?CCC?>CCCCClC>CC>>?CC??CC?>CCCC>???CC>>Cl?>CC>>?>CCC?CCCCC?CCC>>>>?>CClCCC>>ll>>>?>>?CC>??C??CC?>CC>>>?CC>>CC>>CC>>>>CC>>>?>>>lAC>>>=>>>A>CC>>CC>>>=>>>>>>>>>>>>>=>?==>C>=>>>=>=>>>=>>>=>==>>>>==CC>====>>=>>>>====>==>===A=======>===============x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóZ! !qªíÿþÿÿÿþÿÿÿþÿÿÿýÿýþþþÿþþþþÿþþýèÓ³³³³³³³³³³¸³³³¸³³³¸³³³³³³³¸³¸³³¸³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸³¸³¸³³¸¸¸¸¸¸6566566656666566666868665i666566566666686666566686665656666658666666i666656666566665656666666665866i655566666666666666566665666556665856i666656866655665686656556566666655656666666666656685656i5566665686655566666656666666666866666686665686666665666686666866666666685666665565666668666666666666676866656656666ººººººººººººººººººººººººº¸ººº¸ºº¸ºº¸ººº¸ººº¸º¸º¸º¸¸¸¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸··¸··¸¸··¸··³··³··³·K·K·³³³·³·K·K·K·K·KKK·K·K·KKKK·J·JKKKWKKK·J·J·HKJJKJJK·JKJKJJJKJJJJJJJJHJHJHHGJGGGFGFFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFGGFGFGGGGGHGHGHHHGJHHJHHJHJHJJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿþÿþÿþÿþÿþÿþþÿúóúúóúóóúóúò¬�o====>==>C>=>>>=>>=>>>>>>====>>C>=>CCC>>>>C>=>>>=>>>====>C>=>>CCClCCllC==>C>>ClC>CCCC>?CCC>>CCCClC?>ClCCCCC>>?C>>?>>>>ÆýÿÿÿÿÿÌuClllllCCll>>lClCCl??lC>>??>>C>?lC????lllCCC?>>C?C>>>C>>>ClCCClCC?>>?C?>??>>CCCllCCCCC>>>?C?>>C?>>>lCCCC>CCCCCCCCClCC>>?>?CCC>CC=>??>>>>?>C>>>>>=>>lC>>==>?CClC>>>>>>>CCC>=>>?CC?>>>>>>>>CA>>>>>>>>CCCCA>=>>>C>>>=>>>=>>CCA>=>C>=>======A>=========>==>>==>====>C======>>======x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Z!   pªõÿÿÿþÿÿÿÿþÿÿÿþÿýÿþÿýþþþÿþþþþÿàÓ·³³³³³³³³³³³³¸³¸³¸³³¸³¸¸³¸³³³¸³¸³¸³¸³¸¸³¸¸¸¸³¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸68666656656656556666655666666665565586666868666i68666665666666666565555666666665656555555668666686665566566565656655i66565566856656665666866666658656665666665666565666i66686566566656565568666566568586656866666665665665655665666656666666666656656666666866568666666666656666658666666655668668666665556556666865686866566666566556666666565666ºººººººººººººººººººººººººººººººººº¸ºº¸ºº¸º¸ººº¸º¸ºº¸º¸º¸º¸º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸³¸¸·¸¸·¸·¸·¸···¸··¸·¸········³··K··K·³·K·³·K·K··KKKKKK·KKK·J·J·JKKKKKJKKKKKKK·JKJJJJJKJKJJJKJJJJJJJJHJJHJGHGGGGGGFFFFF³KKKKKKK³KKKKK³KKKKKKKKK³KKKKKKKKK³KKKKKKK³KKKKKKKKKKK³KKK³KKK³KKK³KKKKKKKKK³KKK³KKK³KKK³KKKKK³KKKKKKKKK³KKK³KKK³KKKKKKKKKKKKK³KKK³KKK³KKK³KKKKKKK³KKKKK³KKK³KKK³KKKKKKKKKKKKK³KKK³KKK³KKK³KKK³KKK³KKK³KKK³KKKKKKK³KKKKK³KKK³KKK³KKKKKKKKK³KKK³KKKKK³KKK³KKKKK³KKKKK³KKKKKKK³KKK³KKKDFFFGFFFFGFGGGGGHGHGJGJGJHHJHHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿþÿþÿþÿþÿþÿþÿÿüóúóúúóüóúúò¬Žo=>>>>=>>>A>=>>>=>>>=>>>>>>>>>>>>>>>>>>>>>CC>=?C>=>C>=>>AC>=>>>C???>?CC=>CC>>Cl?=CCCCC?>??>CCC>CCC>>CC>>CC????C>lC>>AC�ýÿÿÿÿÿÌC>CC??CCC>C?CCClCCC>>lC>>CC>>?>CCCCC?CCCCClC>CCCCC>?CC??>?lCCC?>Cl?>C?CC???>?CCCClCCCCC????C?>??CCC?C>>C??>Cl>>?>CCCC?>C>>?C>ClC>>lC>>CC>>lC>>>>C>Cl>C>>>>>>?C?=>C>>>>>CC>>=>>>CC>>>>>>>>AC>=>>>>>?>>>>>=>>>A>>=>=>>==>>A?=>==A=>=>===>=>>===>=======>=>====>===>===>=======>==z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !óÿÿÿÿÿ÷Y!9qªíÿþÿÿÿþÿÿÿÿÿÿÿþþþýþþþþþþþþþþþæÓ³³³³³³³³³¸³¸³³³³³³³¸³·³³·³¸¸³¸¸³¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸55666666686566656566566565665666i668666668656555665656665668565665666666556558865558656656688668668666665566666666566656656688666655666566665665665668i58666656665666665656665556666566655666666686666665i5656666565566565686868686656565586665856565668665555i65866668656665i6686665666865666666566565566686666666866568586856866668656656666566566655ººººººººººººººººººººººººººº¸ºº¸ºº¸ºº¸º¸ººº¸º¸¸¸º¸¸º¸º¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸·¸·¸·¸·¸³¸·³··³³··³³··³K·³³³³³K³K³KK·K·KKKK·K·KKK·J·J·JKK·JKKWKJ·HKJ·HJJJ·JKJKJJJJJJJJJJJJJJHJJHJGHGGGGGFFFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEFFFFFFGFFGFGGGGGGGHGHGHGJGHHJGJHJGJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿþÿþÿÿþþÿþþÿþÿþúóúúóúúóúúóò¬�m=?>==>C>>>====>=>>=>==>?>>C>===>CA>>C>>==>C>>>C>=>C>CA>lol>>>>C>>>=>>CCCC>=>>>>=>???>>>>??CC?>?>>>C??>?>>ClCCCCCC>ClCÇýÿÿÿÿÿÌlCA>>>C>>>>>CC?CCCC>>CllClC>>>>C>?C>?>>>>Cl>>ll>>llCCCClC>C?>>>C?CCCllllC?>>>CC?>?CC?ClCCClllC?CClCCC>>>CCCllC>>CCC>C>>?>>>>CCC>>>CC>Cll>ClllC>CCClCCC>CC>>=>CCC?>CC>>>>>>>>>CCA>>>>>>?>=>>>>=?ACC>===>=>CCC>==>=>===>>>==>====>>===>====>=>>AC>C====>==>======>>=============>{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY  !!$sªõÿÿÿÿþÿÿÿþÿÿÿþþþþÿýÿþÿþþþþÿþþæÓ³³³³³³³³³³³³³³³¸³¸³³³¸³³¸³³³³³³³³³³³³³¸³¸³¸³¸³¸³¸³¸³¸³¸¸³¸¸³¸¸¸¸56558665666666566665656865656568666665656666666666665666658666666666665666666666566666568665686666686556558566556566568666566566665886685556566555658868865666656686688666666865i5665656666556655668i566666556656666655655566666666565656666656566665866566666i5566686666565866566665568i5656866565666666566865866666668656665665658666655655656666ºººººººººººººººººººººººººººººººº¸ºº¸º¸ºº¸¸º¸ºº¸º¸º¸¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸³¸·¸·¸··¸·¸···¸··³···³···³····K·KK·³·K·K·KK·K·KKK·KK·JKKKK·J·J·JKKJKJ·JJ·H·JJJJJJJJJJKJJJJJJJJJJJJHJGJGHGGGFGFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEFFFFFFFFFGFGGGGHGHGHGHGJHGJHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓÿþÿþÿþÿþÿÿþÿþÿþÿÿüóúóúóúóúóúò¬�o>?==>>>>>=>C>==>>>>>=>=A>>A==>>?>>>>>>>>>A>?>>>>>>>?>>>Cl>>?=>C>?C>>>>CC>>CC>>>>>?>>?>???CC?CC>>?CC>?lC>>ll>>C?ll?>??ÆýÿÿÿÿÿÌlC>>??CC?CC>ClC?C>C>>AClCCC???C?>Cl?C?C>>ClCCCCC>Cll>CCC??CCCCCC>>CCCCCC?>A>ClCC>>CCCCC>?CCCCCC??C????C?CC????>CCC?CCC>?CCCCCC>>CC>?>>lC>?C?Cl>???C>>>CC>>>>>??>?>>C?>>>>C>>>C>C>>>>>>>>>>>>>>>>>>C>>>>=>>C?=>?>==C?==>>=>==>>=>==>=>>>>===>>==>==>==C===>===>==A>===>==>===>==z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y !qªõþÿþÿÿþÿÿÿÿÿÿÿÿþÿþþþþþþÿþþþþÿæÓ·³³³³³·³¸³³³³¸³³³³³¸³³¸³³¸¸³¸¸³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸8666666556858686666666655656666666865655686565566855566866865666666666655666566668665668666685i68668i6866556565566656666656666686666666666665686666856556866566666656566666i6666566666655666666568666666866665566556666668655566666655655568566666556666566666566656656i65665666566656666866586666658566666665656566668688666566585ºººººººººººººººººººººººººººººººººººººº¸ººº¸ºº¸º¸ºº¸¸¹¸º¸¸¸º¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸·¸·¸¸····¸¸·¸·¸·¸······K··K····³K··K·K·K·KKK·KKKK·KK·J·JKKJKKJ·J·J·JKJKKJKJ·JKJJKJJJKJJJJJJJJJJJHJHHGHGGGGFFGFFFFK³K³KKKKKKK³KKKKK³KKK³KKK³KKK³KKK³KKKKK³KKKKK³KKK³KKK³KKKKKKKKKKKKKKK³KKK³KKKKK³KKKKKKK³KKK³KKK³KKK³KKK³KKKKKKK³KKK³KKK³KKK³KKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKK³KKK³KKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKK³KKK³KKK³KKKKKKK³KKKKKKKKKKK³KKKKK³KKKKK³KKK³KKKKK³K³EEFFFFFGGFGGGGGGHGHGJGHHGJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿýÿþÿþÿþþþÿþÿýÿþüóúúóúóúúúúò¬Žm=?>>==>==>>>=>CCCCCCC>>CCC>>>>>A>>CC>>CCCCCCC>>=>>?CCC>CC>>C=>>>>>>>>>C>>CCC>?ClCCCCC?>C??>C>>CCll?>Cll>>?>>>>>ClC>>?ÇüÿÿÿÿÿÌlC>?CC>??C>>>?>?>>>CllCCCllCCCC>?lllC>Cl>ClllllC?>?CC?>?>?CClCCCC>??CCCClCllllCCC>>CC>>?>>>>>??>>?CC>CCC?>?CC>>ClCC>?>>CllllC>>CCC>>>ClC>==CCC?>CC>>>>??>>CCCC>>>>CllC>=?CCCC>=>CCA>=>>>>>>=?>==>>CCC>==>>>==>CC>CC>==>>==>>>?C>==A>>>CA==>===>======>C===C>=A=======>==>==>===z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY! !  !qªùÿÿÿÿÿÿÿÿþÿÿÿþþþþþþÿýþýþþþþþþæÓ³³³³³³³³³³³³¸³³¸³¸¸³³¸³³¸³³·³³¸³¸¸¸³¸¸¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸665686566865655868655666855656666666666568665656666666666i6866566686566668668666655686666668666666566666686865865566666568666666555666656665656656566686655666i66666666656666566665665656668666866656665666656566666658666856656665666666656666566565665656666665665556668655686655556586668656565656666656656568666666566ºººººººººººººººººººººººººººººº¸ºº¸ººººº¸¸º¸º·ºº¸¸¸º¸º¸¸¸º¸¸·º¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸·¸¸·¸···¸¸³··³·³··³·³·³·³·³³³³³K·K·K³KK·K·K·KKKK·KKKKKKK·KKKKKKKKKH·H·JKJJKJKJJJKJJJJJJJJJJJJJJHJHJHHGGGGGGFFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFFFGFGGGGGGHGHGHGJGHJGHHJHJHJHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿÿþÿþÿþÿÿÿþÿþÿþÿüúóóüóúúóúúòÕ�p=>>>>==>==>>>>>>>=>CC=>=>C>>>>>C>>?>>>CCC>>CC>>>>>>>>?>?C>C?>>C>=>C>CCC>>CC??CCC>>?CCC?>?>CCC>?CCC?>>CCC>??CCCCCC>>??ÆýÿÿÿÿÿÌlCCCCC?>CCCCC>ACC>>ClCCC?CCC>ll?CC?CCCCC?ClClC?CCC>?lC>C?C>?ll?CCCCCCC>>CCClCCC>?lCC?>?CCCCCC?CCC>C?>Cl??>>lC>>CCCC??>>?CCCCl?>C>?C??CC?CC>>???>Cl>?>>CC?C?>C>AC>>>lC>>>>C>>>>>CC>>>>>>>>CC>>>=>=?CCC>==>>>>=>C>>>>>>=>>==AC=>>>>=>?==AA>A===C===>=>=A>==>>=>>====>=======>====z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!óÿÿÿÿÿ÷Z    =qªíÿþÿþÿþÿÿÿÿÿÿÿþÿýÿýýÿþÿþþÿþþþæÓ³³³³³³³³³³³³³³³³³³³³¸³³³³¸³¸³¸³³³³¸³³³³¸³¸³¸³¸³¸³¸¸³¸³¸³¸³¸³¸¸³¸688i66666685666666565666665666866668566666686665i8866566655666666656656666866668666566666868565666666566686i66666666656665566566866568666668666865666868856656566666666666566i5668668656666566866656656886686666686656868656665686566685665i8665566656666668668686866566556655666666668668665668666666655668ººººººººººººººººººººººººººººººº¸ºº¸ººº¸ºººº¸º¸ºº¸º¸º¸¸º·¸¸º·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³·¸·¸·¸·¸····¸·¸··³···³··³·K·K·³K³·K·K··K·KKKKKK·KKK·KKK·KKKJ·KWKKKWKKJKKJKJJJJJKWJJJJJKJJJJJJJJJJHJHJGJGGHGGFGFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKDFFFFFFFGGFGGGGHGHGHGHGHHHGJHJGJHJHJJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿþÿþÿþþÿþþÿýÿÿúóúúóúóúúúóò¬�q?>=?>>>CCCClC==>=>>C>>C>>>CCC>>>>>===C>>>>>ACC?CCCCCC>=>ClC>>CCCCCl>C>>CC?>???>C?>=>>?CCCCClC?????C?>>>>CCCllllC>>CC>ÇüÿÿÿÿÿÌlClCCC>?CCCC?CllC?CC?>>CCC?>Cll?>>>>>CCC>CC>???ll?>Cll???CCCll??Cll?>>>>>>C??CCClC>ll>>lllC>>>>AlCACCCC>>>>>>>>??>CCC>>C?>>?llC>>C>>>=>>>lC?>>>>CC??>>?lll?>CC>>?=>>>>>=>??>>>?lCC=>C>=>>llCC>>C>===>>>CA>A>==>>===>==>C>=CA===CC==>==>CA>>=>>===C==>>===>=====>==>============zóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY  ! !  qªõÿÿÿÿÿÿÿÿÿþÿÿþþþþþÿþÿýþþþþþþÿæÓ³³·³³³³³³³³¸³³³³¸³¸¸³³³¸³³·³³·³¸¸³³³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸³³¸¸¸¸³6666886566666666665i666666686665665666866686566666866656866666666565666566686666666866566566668666666666686866556566656686666866666656666i66665656666666566666666666665668666686656i65666866666686656686666866686666666666666665i86556666i656666566665666666686668668666665686666686685868666i5666666658ººººººººººººººººººººººººººººººººººººººº¸º¸ººº¸ººº¸¸º¸º¸º¸º¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸¸·¸·¸·¸··¸········³··³··³·K³·K·K·K··KKK·KK·KKKJ·J·KJKKJKKKKKKKJ·J·J·JKJKJKJKJJKJJJJJJJJJJJJGJGHGGGGGGFFFFFF³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKK³KKK³KKK³KKK³KKKKK³KKKKKKKKKKKKKKKKKKKKKKKKK³KKK³KKK³KKK³KKK³KKK³KKK³KKK³KKK³KKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFGFFGFGGGGGGHGHGJGJGHHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓÿþÿþÿþÿþÿÿþÿÿþÿþÿüóúóúóúúóúúò¬�p>=>=>=>>>>CC?=>>>=>>>C>>>>>>A>>>>>>>=>>>>>>CC>>CCCCCC>=>CC=>CCCCCC>CCC>?>C>CC>CCC>CCCC?>C?ClC>?C??CCC>???CCCCCC>>Cl>>ÆýÿÿÿÿÿÎC?CCCCCCCCC?ClCCC?C?CC?llCC>?CCCC?>CCCl?>Cl?>C??C?CC?CCC?C?Cll?>CCC??CC?CCCCC?lCCCC>CCCClCC>>lCCCC>llCC>>CC>>CCCl>>Cl?>C??CC>?lC>CCCCC?C>CCC>>?CC?CC>>??CCCCC>>>>>>>>C>>>lC>>>>CC?>>>>>?CCCC>>>>>>>>>>>AC>>>>=C>==C>==>>>>>>===>>?====>l==>=>C==>C>==>===A>========>===>=======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!9qªõÿþÿþÿÿþÿÿÿÿÿÿþþÿýþýþýÿþþþþþþæÓ³³³³³³³³³³³³¸³¸³³³³³³¸³³¸¸³¸¸³¸³³¸³¸¸¸³¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66565i66666666666555666565i686866656666556666686666665656666666566668686856666656656666666566666i666555666666666665656686686665656666666666668668668566568666866666656665666886666665i666565i55i66666666565666668i566666666565686665666665586656566866866686866666665668656665866666556866656656666ººººººººººººººººººººººººººººººººº¸ºº¸º¸ººº¸¸¸º¸¸¸º¸º¸¸·¸·º·º·º·º·¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·¸····¸··³·³··³·³³··³³K³K·³³K³K·KKKK·KKK·KKKKKJ·J·JKKKKKJ·JKJKJ·H·JJJJJJJJJJJJJJJJJJJJJJJHJHJHJGHGGGGFFFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEFFFFFFFFGFGFGGGGGGHGHGJGGHGJGHJGJHJJHJHJJJHJJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿÿþÿþþÿþÿþþÿþÿú÷úúúúóúúúóòÕ�p=?=>>>>===>>==>C>====>>=>>>>>CCCCCC>CC>>>>>?>>>C>>>>CCCCC>=?C?>>?>>CCC>CC>>>>>>>>CCC>>?>>?ll?CC?CClC??CC?CC>>>lllllCCÇýÿÿÿÿÿ×uA>?CCC?>CCCCC?????>>>Cll>?CC?>?CCCllloC?ll>>>>CClC>>>Cl?>>>?C>>>?ClllCC>>>??>?Clll??llC?CCClllll?>CC?llCCCCllClllC>CC??ClC>>>CC?>?lllC>>>>C>CC>?>ClCCC>>>>>>?C>>>CCClC>>ACC>>=>>>CCCC>>>=>===>>CCC>>=>=>>>C>CC=>>CC?CC=>ACCC>>==>>>>==C=========>==>=======C>=A>>=>=>==>>====={÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @óÿÿÿÿÿóY    !!! ! $qªõÿÿÿÿÿÿÿÿÿÿÿÿþþþþÿþÿþÿýþþþÿþÿàÓ³³³³³³³³³³³³³³³³³³¸³¸³¸³³³³³³³³¸³¸³¸³³³¸³³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸³¸³668666685668666565686568868686668665866665866686558658568666666865565656666656666658666656666i66665655656655666565565865666686665656666686656686568866656566876665666665656656666855656866668666588565656666555566665865655665865686566666i585666665656565666666565665655666686666656866566665556866766668ºººººººººººººººººººººººººººººººº¸ºººº¸ºººººº¸ººº¸º¸¸º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸·¸···¸¸···¸···³··³··K·K·³³·K³K·K·³···K··KKK·KK·K·J·J·J·J·J·JKKWKJKJKJ·JJJKJKKJJJJJJKJJJJJJJJHJHJGJGHGGGGGFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFGFFGGGGGGGHGHGJGHHJGJHHJHJHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿþÿþÿÿþÿþÿÿþÿÿüóúóóúúóúúúò¬�o?>>=>>>=>C>=>>>>>A>=>C>>>>>>>>>>>CCC>>>C>>>>>CCC>CCA>?CC>?>?C>?>CC>C>>?>CC>>??A>AlCC>>C???C?ClCCCCCC?>ClCCC>>CCClC?CCÇüÿÿÿÿÿ×lCCCC??>ClC?C??lC?C>??CCC?Cll>>Cl?CC>loC?C?C?CCClCCCCCCl>>lCCC>??CCl??lCC>>?>>ClllC>?CCCCCCCC?Cll?>CC>Cll?>ClC>CCllC>CCC?ClC>?>CCCCCCCCC>>C?CC?C>>ClCCCC>>>>>CC?>>CCCCC>>>CCC>>??>?C?CC>>>>>=>>>>CC>=>>>>>=>C>>>>>>>>>>>??>>CC>==>>=>>>>>>>==C====>@===>===>A=ACZuxzƒ”››ÆÆÌÌßßáòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Z qªíÿþÿÿÿþÿÿÿþÿÿÿÿþþþþýþýÿþþþþþþæÓ³·³³³³³·³³³³³³¸³¸³³³³³³¸³³¸³³¸³³³·³³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸³¸¸¸¸56866i5666686865686868666856666665686666685656866656668866665665665665666685655668666656566566558665665666666686665668656665665665568666686566866568665665666566666556686665556686666586566556856656666666856566668666666865586658686666566865866666668868668655656586556865666655656685666866ººººººººººººººººººººººººººººººººººººººº¸º¸º¸ººº¸º¸ºº¸º¸º¸¸º¸º¸º¸º¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸·¸·¸¸····¸··¸··¸·······³··K··³·³·K³K³K·K·K·KKK·KKK·J·J·J·JKJKJ·JK·J·JKJKJ·JKJJJKJJKJJJJJJJJJJJJJJHJGGGGGGFGGFFFFDKKK³KKK³KKK³KKKKK³KKKKKKKKKKKKKKK³K³KKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKK³K³K³KKKKKKKKK³KKKKKKKKK³K³K³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³K³K³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³K³K³KKKKKKKKK³KKK³K³KKKKKKKKKKKKKKK³KKK³KKK³KKKKKKKKKKK³K³K³DFFFFFGFFGFGGGGHGHGHHGJGHHJHJHHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿÿþÿþÿþþÿþÿþþÿþÿ÷úóüóüóúúóúò¬}p?C==CC>>C>=>CCCC>>>>CC>>AC>>>>C>=>>>>>>>C?C?>>>>=CC>>>C??C>>>>>CllCC>CCCClCCCC>>ll?ClC>>>>>=?lC>>C>CCC>>>CCCCCCCC?>lCÇýÿÿÿÿÿÌCC??>?lllllC??CllCl?lC>CC?CllCCllC>>>ClCCCClCllClCCCCllC>?lllllllC?lC>CllllCC>>??CC>CCC??C?>>>>?>?lllC>?C?ClC>>C?CC?CC??CCC>CCCllC>?>?Cl>>>>CCC>>>CC=>>>>>?>>>>ClC>>>CCCC>>===>>C>>>>>>>CC>>CC>?>>>>>>ClCC>>>>>CC>=C>>C?>=>=CC>CA===>CA=>===ACCCC=Cu{ƒ�ÉÌáñò÷úúüüüüüýýýþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷[ !!     =pšõÿÿÿÿþÿÿÿÿÿÿÿþýþþÿþÿþÿýþýÿýþþæÓ³³³³³³³³³³³³³³³³³¸³¸³¸¸³¸³³¸·¸³¸³¸¸¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6668686666865656666668656668686586666656568666686668666656666655656656656656665865865666565665656566656565658565688686656656666665558666686686668665656666556666666566565686656586666565558665658666668665566566656666i6556686568566656865655556565686666866685586668666666668666666565666666856566566656666ººººººººººººººººººººººººººººººººººº¸ºº¸ºººº¸ºº¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸···¸·¸³¸·³·³·³·³·³·K·³³³³³K³K³³K·KKK·K·K·K·K·K·J·J·KJ·J·KKK·JKJKJ·JJJJJJJKJJJJJJJJJJJJJJJJJHJGJGHGGGGFGFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFFFFGFGGGGGGHGGHGHGJGHHGJHHJHJJHJHJHJJHJJJJJJJJJJJJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿÿÿþÿÿþÿþÿÿþÿÿüóúóóúóúúúúò¬so?C=>>>>>>>>C>=Cl>>>>>C>>>A>>>>C=>CC>>??C>>CC>>>>>Cl?>>CCCC>>??>?CCCCC??>Cl?CCC>>CC?>ll?>??>>>CC?CCC>ClC??>?lC??CC?CC?ÆýÿÿÿÿÿÌl>CC?>CllClCC>ClCCCClCCCCllCCCCClCCClCClCCCCCCCClC>C>CCCCClllCClCCCCC>ClCCC?C?ACC>ClClC>ClC?>>>??CCCCll?CC?CCCCCCC>CCCCClC>ClCCCCCC?C?ll>>CC?Cll>>C>CC>>CCC>>>C>CC?>ClC>>CA>>>=CC??>>CC>>C>>C>>>>>>>>>>?C>>>>>>C>>>>>>CC==>>>>>>>>==?C>===uƒ�ÇÌçñ÷üüüýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;òÿÿÿÿÿóZ =sªíÿþÿÿÿÿÿÿþÿÿÿÿÿþÿþþþþýÿþÿýÿþÿæÓ³³³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³³³³³³³¸³³³¸³¸³³¸³¸³³³¸³³¸³¸³¸³¸³¸58686666866865668666568666866866666666666665566656868665556866566665665665565866656668586865686656666665656868686666866566568565686565656566665i66686656568565666665655658656665866666656555686556685666566666666866665668656866866665566676666556565566665586865566686656865665656665866855666665ººººººººººººººººººººººººººººººººººººº¸ºº¸º¸º¸ººº¸ºº¸º¸ºº¸¸º¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸··¸·¸·¸···¸···³····³··³·K·³K·³·K³K·K³K·KKKKKKKKKKKKKKKKKKJKJKJKKJKKJKJJ·JJKJJJJKJJJKJJJJJJJJHJHJHGHGGGGFFFFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFGFFGFGGGGGGHGHJGHGJGHJGJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿþþÿþÿýÿþþÿþÿþüóúúúúúúóúóò¬Žm>>>>>>>=AAC>>=>C>=>>>CC>=>CA>>>>>lC>>>C>>>>>>ClC>>?=>>=>>>>?lCCCC>>>>C?CCC>?>CC?>?>>ClCClllClC>>?CC?>ClClC>CCC??Cl>>>ÇüÿÿÿÿÿÌCCClC?CCCC>?C?>llC?>>?>CCCC>>??CCCCC?>>>??lC>>ClllClCll>C>C>>CllCC????ClClCCClllCClllCC>CllllCC?>>>>?lC?CCC??Cl>>>ClCCC?C>>>lA>>>>>CC>>>>>CCl>?llCClll>>CC>CC?>>>>>>=?>>?lllCCllC>>==>CC>>CC?>>>CCllC>==>>>>>>>=>>====>==>C>==>>=>?Cx›Çßñúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿþü÷òñçáßÌÉÆÆÆ�Æ››–––”–›”ƒ‚‚ƒ–›�ÆÆÆÌÌÌÞÏßßááçèñòó÷üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–  @óÿÿÿÿÿ÷Y  !    =ެõÿÿÿÿÿþÿþÿÿÿÿþþþþþþÿþÿýþþþýþýæÓ·³³³·³³³³³³·³³³³¸³³³¸³¸³¸³·¸¸³·¸¸³·¸³³¸³¸³·¸³¸³¸³¸¸³¸¸¸¸¸³¸¸¸¸¸¸5666666656666556656658665665666856686656686656868656886866686665666868666666666666568656665665666866656566666568656666865568665686866568665i66666685866868666566666866868665656686656665566665666685666586656665656656665656665658656856686666665666656686686558665666866666668686566686688656656686666ººººººººººººººººººººººººººººººººººº¸ººº¸º¸º¸º¸¸º¸º¸¸¸º¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸·¸¸¸·¸·¸····¸··¸·········³······³·K·³·K·K·KKKKKKKKKKKKKKKKJKKKKKKKJKKKKJJKJJJJJJKJJJKJJJJJJJJJJHJJHJHJGHGGGGGFFFFFFFKK³K³K³KKK³K³K³KKK³K³K³K³K³K³K³KKK³KKK³K³KKK³K³K³K³K³K³K³K³K³K³K³K³KKK³K³KKK³KKK³KKKKK³K³K³KKK³K³KKK³KKK³KKKKK³K³K³KKK³K³KKK³K³K³KKK³K³K³KKK³K³K³KKK³KKK³KKKKK³K³K³KKK³K³KKK³K³K³KKK³K³K³KKK³K³K³KKK³K³K³KKK³K³K³KKK³KKK³KKKKK³K³K³K³KKK³KKKKK³K³K³K³K³K³KKK³KKK³KKKKK³K³K³K³K³KKKKKFFFFFFFFGFGFGGGGGHGHHGHHJHJHHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJÓÓÿþÿþÿÿþÿÿÿþÿÿþÿþÿüúóúúóúóüúúò¬Žp>=>>CC>>>C>>>>CC>=>C?=>C?CCCC>?CCCCC?>?C>>>>CCCCC>>>>>=>CC>?CClCl>>?>>CC>>CC??Cl>>>>CCClCCCCCC>>?CC>>CCClC?>ClC?CCC>?ÇýÿÿÿÿÿÌlClCCCCCCCC>CCCClC>>?CCllCC>>CClCCl>>>>C?ClC>CClllClCCl?CCC>CCCCCCCC??C>llC>CCllC>llllClCCCCCCClC>>?CC?CCCl>>llC>ClC>ClC>C?ClCC??>>CC>C>CC>?lC?ClCllCC>>?C>=CC>CC>>?>>>??CCCC>Cll>>>>>>?CCCCC>>>>CCCC>>==>C>=>>>??>>>>>A==CC=?z›Ìá÷üüþþÿÿÿÿÿÿÿÿÿÿýóñßÌ›ƒutZuuZClZCCCCCCCCAAAAA=AAAA===AA@ACCCC@CCC@CBCZCCZCCuZuxƒ–ÆÆÌÎßçò÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Z !s­íÿÿþÿÿÿÿÿÿÿÿÿÿþÿþÿþþþþÿþÿþÿýÿæÓ³·³·³³·³³··³·³·³·³³³³³·³·¸·³·¸·³·¸·³¸¸·³¸³¸³¸³¸³¸³¸¸¸·¸·¸¸¸¸¸¸¸¸866568686668686666666686686566668666565686656658666686556566656656565568666656666656666668568686558656566565666856666556665666866666665565556668568666866565565656666666566665865668656665666566656656665666665686666668656868666666668666866568666886565556656686865686866668565666866666656666665568666855iKKKKJKKKJKJKKKJKKKKKKKJKJKJKJKJKJJJKJJJJJJJJJJJJJJJKJJJJHJJHJJJHJJJHJHJHJHJHJHJHHJHHJHHJHHJHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHFHHFTGHHFHGHGHFTFHFTFHGFFHFFFGFFFFF KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFFFGFFGFGGFHGFTFHFTFHFTFHFMFHFTFHFTFHFTFHFTFHFTFHHGHHGHHGGHGHGGÓ×ÿÿþÿÿþÿþÿþÿþþÿþÿÿúóúóúúúúóúóòÕ�o=>C====>CA>>>==CC>>CA=>>>C>>>>>>=>C>CCCAlC>>>>>=CCCCll?CC>>?>>>>>ClC>CCC?>CC>>CCClC>C??C?>CCCllCC???CCCC>CllCllC??CCCÆýÿÿÿÿÿÌuCCllC>>CllCllllC?llCllplClC???CClllllCCCClllllC?>>??>CllCllCCClCCClCCllCl?CCC>?>>?C?>>lCCCC>>CllllCC?CCCCC?>ClC?ll>>ClC>>CllllC?lC>>?llllC?CC>>CC>C>ClCCCC>?ClCCClCC>>>>>>>C?>lC>CCCCCC>>>>>=>=>>>>CCCC=>CCCC>>>==CCCA>Au›Ìèüýÿÿÿÿÿÿÿÿÿÿÿ÷ñßÌÆƒuZCCCA@>A===C======>=============>>>==A=========A==========$=>=====CC@@@CCBZx”ÆÌçóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!;óÿÿÿÿÿóY!     !!!qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþþþÿþþþþþþþýàÓHHJHHHJHHJHHJHHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJJJHJHJHJJJHJ6856686686865866666566566665666566565655686866866656656566568566686565666686656655656666566566665656666666665868686568665666866656856568666665655666666666568866665666586666686665666865868556666566656566565656866686686866655666656556668665656866666666668565865686566568866566866566566586566568 KKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKK³KKK³KKKKK³KKKKKKKKKKKKKKKKKKKKKKKKK³KKKKK³KKK³KKK³KKKKKKKKK³KKKKK³KKK³KKK³KKKKKKKKK³KKKKK³KKKKKKK³KKKKKKK³KKKKKKK³KKK³KKK³KKKKKKKKK³KKKKK³KKKKKKK³KKKKKKK³KKKKKKK³KKKKKKK³KKKKKKK³KKK³KKK³KKKKKKKKKKK³KKK³KKKKKKKKKKKKK³KKKK³KKK³KK³KKKKKKKKKKK³KKÓÓÿþÿÿþÿþÿþÿþÿÿþÿþÿüúúúóúóúúúúò¬�o>>>>>>>>>C>>>>=>>>>>>>A>AC>CC?>=>>>CCCCCCC??C?>>C>?ClC>C>CCC>>l>>C>>>C?CC>Cl>?>CClC>??>>ClClCCllCCC>>CC?>CllCCCCCCCCCÇýÿÿÿÿÿ×uClClCCClCllllClC?CllClolCClC?CCCCCClCCCC?CllllCCC>>CCClCCll>>lllCCC??lllC??ClC?>?CCCCCllCCCACC?CCllC>ClC?C?>CCllll?>CCCC>>ClllC>Cll>?ClCCCCCA>CClC??>ll>>>C>CC>>CCC>C>CC>>>?>>Cl>C?>CC>>>>C>>>>>C?>=?CC>>CC>>>>A>>Cu˜Ìèúýÿÿÿÿÿÿÿÿÿþò߯”xCZCCCCC>====>=>>====>>========>A=>===>>==A>=>==========>>========$$=========!=!$=====@=CCZx–ÌñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Z qªõþÿÿÿþÿþÿÿÿÿÿÿýÿýÿþþþýÿþÿþÿþÿèÓ5686566666666656558666856566666866666655655556566565566866656866665665666656566686665668658i8666666666565565665866666666555666856655666656668656565866565686666656568666686565566866566655685656666686565686665665566568665i6656866656556565686668566668665685556668665666668665666686665666666655666666666666655666  KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKÓ×ÿÿþÿýÿÿþÿþÿýþÿþÿÿúóúóúúüóüóúò¬Žp?>=>>>>=>=>>>>CCCCC>>>>>=??C?>CC?>>==>>=>?>??>>CClCCC>>>>>C?>CllCCClC?>>?CllC?>>CC?ClClACC?lC??Cl??>ClCCClC?>????CCl?ÆýÿÿÿÿÿÌC>>CCllCC???>??lC??CC>?lC>>ClllCllCllCCCCl>>?>>?lllllllCCCllC?CCClll?>CCClCClllll?>?ClllC??llll??llllCCCl?>CClC?>ClCCllCll>CC>CC>llC>llC>>?>>lC>?C>CC>CllClllC>=?>>?CClllCC>>>>CC>>>>>>>>?CCllll>>>>=>C>>C?>>>==u˜Î÷ýÿÿÿÿÿÿÿÿÿþò߯zZCCClA=>CA>=>=>C===>C>>CC>>=>C>=>>=========A==>=>==>=>===============C>===>======!=====!!!=>=$=!===@BuÂÎ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y  !  ! =pªõÿÿÿÿÿÿÿÿÿÿþÿþþýÿýþÿþÿýþþþþþþàÓ6656566866656586668668665866856665655666866886666556685656666865656656665665855656666568656566666585665555666586656686556568666768686656655855556865666665686565656666566565665655656656666566666665i8556555688656566565668665566656566566868665656666666686556668666855688656865566865668666856768666565658    ÓÓÿþÿÿÿþÿÿþÿÿÿÿþÿþÿüúúúóúóüóúúò¬�p?C==>>====>>>CC>CCC>>C>>>>>?CCCCC=>>>CC>>CC>C>C>CClC>Cl>??>C>CllCC>lC?>>>CCClC?>>?ClC?ClC??CClC>Cl?>CllllCCCC?C??CCllÆüÿÿÿÿÿÌl>>>ClCCClC>>>CCl??ll?ClC>>CllCCClCClClACCCCC?>CllllllllCCCCCCll?Cll??llllClllllCC?>CllllCCllClC?ClCClC?CCC?CC?lCCClllCl?ClCC??C>ClC>ClC>>CCCl?>ClCCCCCClllCll?>?>>CCCCCC?>CC>>>?>>>>>>>>?>CCCCCC>>>>CCC>?>>C{Æñüÿÿÿÿÿÿÿÿýòß›xZtCC>==>>>==>C>>>C>=>>===??>>CC====>=======>>==>>=====>=>=>>====>===>======>=========$$===$==$====$==$=!$===@CZƒÌñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;òÿÿÿÿÿóZ  qªíÿÿÿþÿÿÿÿÿÿÿÿÿÿýÿýÿþþýÿþÿþÿþÿæÓ5665886686566568558555656656655568685665i685666856858667865685556656565555688656555686668558568665568666868865586666686568666566586665665656566668566566556558665665685686556885865865866868558655588658666656855656866655668556658666566865565666556566655665666566856666655686686866555865856666885556  Ó×ÿÿþÿþÿÿþÿþÿþþÿþÿÿúóúóúúúóúúúò¬�p>>?CCCCACC>>>>>>>C>=CCC>CACC>=>?C>>?ClC>>>CCCCCC>>>>>ClCCC>C??C?Cll>>C>CCC>>Cllll??C>>lC?CCC?C?>?Cl>ClC??>?CClC????llÇýÿÿÿÿÿÌollllll?>lClllCCC>ClC>>llllll>CC>?llCCllClllllCCC?CCC>?lCCCClCll>>llC>>>ClC>>ClCllC??lCC>?CllC?CllC>CllC???C?>>???>?C?>>>Cl?CCC?>>Cl?>CC?>llll>>lC?C>>??>>>>ClCCC>CCC>>>>>CC>CCCCCCllll?CCC>>>=>>>>C>>C>=u–ßúÿÿÿÿÿÿÿÿüá›{uCCCCC>>>>>C>>?C=>C=>=>>==>C==>===>=>C>==>>>>>>>=>===================>>=$===>==$$=>=====$$===$=>=====$$====$!$======!=@C–ßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY            !p­ùÿÿþÿÿÿÿÿÿÿÿÿþþÿþÿýþþÿýþþþþþþæÓ556568665556588586666866865665666566665686686656886686686566665565668686665686556665658665665866886665866665665665565666565686856565585657665586566886665865656865658666665655866655668656866856666686666568666658565556868558666686686586655566666666868686666668668686566658666656566566656555658665566565656655565665658TT  TTTÓÓÿþÿÿþþÿÿþÿþÿÿýÿþÿüüóüóüóüóúúòÕ�o>?>CCCC>CC>>>>>>>C>>?CC>>CCC>>>>?CC>?C>=>CCCCCCCCC???llCCCCClC>CllC>CC>>>C?>llCCC>>?ClllCl?>CCC?CCCCCllC?>?CC?>ll?>?lÇýÿÿÿÿÿÌullllllCC>CllCAllClClC>ClllCClllCCCCCC?llllllllCCC>CC?ClllCClllC?CCCC>?C>CA>CClllCCCCCllC>ClC>llllCCCCllC??>C?>>>CC>?Cl?>>>>>?C?>>?lC>ll?>ll>>CCllCCCCC>>?>?CClll?ClC>>>?C??>ClC?CCClCC?CCC>>>CCC>>??>l›èüÿÿÿÿÿÿÿÿ÷ÌzCCC?C?>>>>ACC>>CC=>>==>>A>=C>==AC===>>C>=C>>>>>>=>CC>==========>>====>=========A===$!=====>=$=>=$==AC====$!$====!=======!===@A‚ÎüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y ! 7sªõÿÿÿÿÿÿÿþÿÿÿÿÿþþýÿýÿþýÿþÿþÿþÿæÓ:TT"TT"T""TT""6656665668668865665666866565865865665566856668665666566865656656586656565555685666868665665655885865665686855556665686855686656556555586566868666568556555665688665i865656666886686656556665566556686668688666666666656565656655588668666566668656685555585866566655665656566868666885668668656656586686665666TT TT"TT"TTTTTTTT"T"TT:T"T:TTT:T"TTTT"TTTTרÿÿÿþÿÿÿþÿþÿÿþÿÿþÿúóúóüóüóúúúò¬Žo?>>>>>>>?>>>>>>>>C>>>>>>>>>llC?>>CC>>>l?>Cl>>>>CC>>>>>>>??>>CC>>>>Clolllll>>CC>?CClCCC>>?Cl?ClllC?C?>CCCCCCllllllCCl?ÆýÿÿÿÿÿÌlCCClCCllCClCCllCCCC>?llCCl?CllCCClllC?llC>?Clllll>ClCl?ClC?CCCllCCllllllllllCC???ClClClC>Clol>?CC?ClC?CllllCCllllllCClCllllClllClC>>?lC>>ll>>CC?C?>CCCllCC>>>>CC>?lCClC?>C?ClC>>CC>>>??>>C>>CC>CCCCƒßúÿÿÿÿÿÿÿüèÆuCCC=CAC>>>>>>>>>>>AC>=>=CC>C>==>C>=>C====>C>>=>=======>======A>===C==>>============>=A==>>=$=====A=!====$$$==!=====$==$!$$$!!==!=====xáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿóY  ! ! =pªõÿÿÿÿþÿÿÿÿÿÿÿþÿþÿþÿýþÿýþþþþþþæÓ"TTTT"TTTTTTT6586666685568658686566866556656656555686586855558886586856856656558665665666666655566866666865668865666856565568656665656566685656656855855668686865666668686655666565566566556656566686866666656566658666566666656586556685656686686668666568688565666568655565685656866586556656666556866866T":TTT"T:TT"T"M"TTTTT  "T"TTT"""ÓÓÿþÿÿþÿþÿÿþÿþÿþÿÿÿüúúóúóúúúúúòÕ�p?C>>>>=>>>>>>>>>?C>>C>>CC>Cll>>>>C>>>?C?ClCC>>CCC?=>lC=>C>>All>>lC?lCColC?lC??>>CllCCC>>>ClllllC?CCC>Cl?CCCCCllllllllÇýÿÿÿÿÿÌllClCCCCllllllClC>C>>ClllCC>ClCll?CllC?ll???>C?lCCllll>>lllC?ClllC?llllllllllC?CCClClllC?Clllll>CCC>>CC>Clol?ClllooC>?lCllll?CCCllC?>ClCCC?C?Cl?ClC>CllCllCC?>>?CCCCCClC>>CCClCCACC>>>>>>?C??>>>CuÌõÿÿÿÿÿÿÿúߘuCC>=>>CCC>A>C>=>?>CCC>>>>==>>?>=>>=>>==>======>=>C>======?>=====>=====>=>=====>==========>=========>======>=$=!!$==$=====$!$$$==$====!!$$=ZÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y  !!!=pªõþÿÿÿÿÿÿÿÿÿÿÿÿþþþýÿýÿýÿþÿþÿþÿæ×TT"TT""M"TT:TT:6685666665666665686686566666866566666676666565666686865656656886686568568666565685665656668556668666686668566586565686586685686886568868665568566688666668866866686686656656655865686586856868865665665665866866866665656656565868666656865656588656668685865566868688686686"M"""T"TTTT"""TT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:"TTTTÓ×ÿÿÿþÿÿÿþÿÿþÿþÿþÿþüóúúúúúúóúúò¬sp?C==CClC>CCC?>C>ClC>>>>lC=>A?>>lCllACCC>=>>>>lC?C?>ll>>lCC=>C>>?lCCC>>ll>>CCC?CCCCC>ClllC>>?CCC?ClClllCClCl??lC>>CCC?ÇýÿÿÿÿÿÌuCCCClCCClC??ClllClllllCCCll???lol?ClC>llClCllCCCClCll>ClCllCC??Clll?CCCllllC>ClCCCCCllllCC??lC??llllllCColCCCC?>lll>CCCCClCCCClC>>C?>lCllCCC>C?Cl>???>>?CCC??C>>?C>>?>?lC>?>>>>>llCCC>>>CC??>>{ßþÿÿÿÿÿÿüÌxCC>>>CC>>C>>>C=>>=>C>>>>>==>C>=>>>?>C>=>>CCA>CC>>>>>>>==>=>=>===>>CA>>>=>======>A>==========================!==========@>=!$===!==$===!!$======9CÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷[ !   qªõÿÿÿÿÿÿÿÿÿÿÿÿþþÿýÿýÿþÿýþþþþþþæÓ65565566686565666665685686656656866666668668686666566558666866866865666685566666866656656556665666586665556665566586686665656556666656655666686868667668665856866565655868686656566666566866566668566565565656666686686566666666566666665866668665685866566858686866565686TTTTTT"0TTT:TT"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTÓÓÿþÿÿþÿþÿþÿÿýÿÿþÿÿüúúóúóúúúúúò¬soCC=>llC>>>>>CCCllCllC>?CC>=>>>lCC>ClC>=>>CC>?C>>CCCll>>lC>C>>>>C?>>?>?CCC>ClC?llCl?>?llCC??ll??llC?llC>>CllC>Cl>?>CCCÆýÿÿÿÿÿÌulCClllClllCCCCCClllllll??lol?>lpl??l?C??lClolCllllllllll?llC?CCllC???ClllllCl>>ClCClCllllCCC??CC>?llllllllClC>>AllCC??>?CllCC>lC>>CCC>?ClCC>?C>ClCC?>Cl>>C>CllC?>C??C>?lCC>>>>>?CC?CCC>>C?>>xßýÿÿÿÿÿÿó�uCCCC>=>CC>>C>>CCC>>=CCC>=C>>>=>>>>>C>==>CC>>CC?CCC>>>>CC>>==>AC===>>Cl=>CC>>>===>==>>=========>===========>=========$====>========$==$$==$$=====$!==ZèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿ÷Z  q¥õÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿþþþþýÿþÿþÿþÿæÓTTTTTTTTTTTTTTTTTTTTTT568565556656565885585656666565855685556556556686655666656656865665656566656565858685855585866666565656586866865666656565666566565666658656666665665865666866656566665668866666688856665688668686686668565656666655666665686858656665666658565855556556665655656866865565856655565886686666565TTTTTTTTTTTTTT:"""TTT""TTTTTTTTTTT:T:TTTTTT"TTTTTT"TT"TTTTTT"TTTTTT"TTTTTTTTTTTT"TTTTTTTTTTTTTTTT"TTTT"TTTTTT"TTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTÓ×ÿÿÿþÿÿþÿÿþÿÿÿþÿþÿúóúúúúúúúúúòÓŽmCl>=>A>CC>C>>>>>>=>C?=>CCCClC>>>C>>llCCl?Cl?>>C?>C>>CC>?ClllCClC?ClC????CClC>>llCC?>lC>?lCClC?ClC>CllllCClC?CllCCCCCCÇýÿÿÿÿÿÌuClCClC??CC?ClllCl?Cl??Cll?ll?CllC?Cllll>CCloC?CClCC?Cll>?lllCllllClC?lClC??lllClolCCCCCC?CllCllC?Cll????CCllClC?ClllClCCCCCll>ClCCCllCCClCC?>CllC>l>>ClCC>>ClCCC>>>?ClCC>>CCC?lCCCC>>C?>Clyßýÿÿÿÿÿÿè”CC?>>>lC?CCC>>?C==?C>>>>>>==>>>>CC>>>=>>C>AC>=>>===>>==>=>=>C==>>=>>=>=>A====>===>>==>===>A>==>=>========================$$=$!$========!==!=$==!!!===$$$@ÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z   ! =}¬ùÿÿÿÿÿÿþÿÿÿÿÿþþþþþÿýÿþÿýþþþþþæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT68665556686665565665676865558566656856565585555688856586686656655656585688567666666867868666585866568565655856866565865668556656568666655588566565656665666656566656856656566856665656665556657655688566866585585686856565665676588668658556568685855565666665858665655TTTTTTTTTTTTTTTTTTTTTTTT""""T"""""T"""TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTÓÓÿþÿÿþÿÿÿþÿþÿþÿþÿÿüüóúóúúóúúúò¬�pCC>>CC?CCCCC>=>??>CCC>>?CClC?>>=CCCCCClC>>C?>>>CC>>>?lCClllllllllCllCCClllC>?>AlCClCC?>?CCClCCll?>CCCCllCCllllllCCCllÇýÿÿÿÿÿÌllllll?>?lllCClllllll??lolC?C>llCllCCClCCCCllllC?llC>llllACCllCClllCC?ClCC?>>CllllllCCC?>>?C?llCCCCAC?C>?>llCCClC?lollCllC>>llCCll>lollCClll>>>CoC>ClCllCl>>>C>>>>=>>?CCCCCCllCCll>>CCCC>tÌýÿÿÿÿÿüßx>>C?=>CCClCC>>>>>A>>>CCC==C>==>>=>CC>==>==ClC>=>C>>>==C>==>===?CCC>>CC>>>>A=====>>==>==>===>==CC==>?========>=========$!$==!!$=!!==!========$!!!!==========xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @òÿÿÿÿÿ÷Y    !s¬íÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿýÿþýÿýÿýÿþÿæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT5856667666666586655655666586556686656585556866786868676558656686688658666655666866566656885565667686568665666668666866755658866656865685655656666566856568558558586866556666858666576556665655665655885668668868686866655568658565856676868566566566868686656666556686T:"TTTTTTTTT:TTTTTTTTTTTTTTTTTTTT"TTT"T""T"""T"""TTTTTTTTT"TTTT:TT:TT"TT"T:TT"T"T"TTT"T"TT:"T:"M"T"TT:"M"T"TT:"T"TTT:"T0T"TT:"TT:"T:"××ÿÿÿþÿÿþþÿÿþÿÿÿþÿþüóúúúúúúúúúòÕ�m>C>=?C?C>>>>>>??>>>?>>C?>>>CClC>>???CCC>ClCCCCClC>ClC?>?lC>>CC>?CCCC?C??CC?>lCllC???ClCCC>lll?CCClClCllCCl?ClCCClll?CÇýÿÿÿÿÿ×u?ClCll?llCClClllCCllCCllClCCl?C?lolllllllClCCll>CllCCCCllllllC?llClCllllCC?llllClClllClllllllC?CllllllCClCCllllll?CCC>loCClCC>Cll>?llll>CClCCC>lll?C>CClll>llllCClllC?CClC>>>C>A?Cll?>?{èÿÿÿÿÿúÇuCCCCl?=?lC?>>>>>lC>>>>>>>C>>>CC>CC>>>C>>CCC=>C>=>C>==>>>==>CC==>=>>=>>=====>C>====C===C>===>====A>======>========$=========C=======A>!!=$=$$=!$======$$!$$!$!=$ZñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY  ! qªùÿÿÿÿÿÿÿÿÿÿÿÿÿýÿýþÿþÿýÿýýÿýþþæÓTTTTTT"TTT:TTTTTTT"TTT"TTT""TTT"TT"T"TT"TT"TTT"TTTT66586666585658585688666586856655666566868566856856865656666566568656566565556866566686656666865686868568565556855556665568658566666656858668656655685665855588656658666586566565686558666556665666865665666866665655566856665668556868656566586568666576586856656665668565565856XXXXXXTXXXTXXXTXXXTXTXTXXTXXXXTXXTXTXTXTXTXTXTXXXTXTXXTXXTXXXTTXVTXTXTXTXTXTXTXTWTXVTTTXTXTXTVTXTXTXTXTXTXTTXTTXTTTTXTTXTTXTWTTTTXTTXTTTXTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXÓÓþÿÿÿþÿÿÿþÿÿþÿþÿÿÿüüóúúóúüóúúò¬�l=>??=?C>>C>=>>CC>??C>>>?>CCClClC>>?>>CC>ClC>C?CCCCllC>CC?>>>CC>>Cl>CllCClllClllll>ClCllCCC>CCCC>llllCCllCCC>CC>?lllC?�ýÿÿÿÿÿÌl?CCCCCClllllllllCCll?CC?CCClllCllvllllCllll?>lllllolCAllll>llllllClClllllCCCCC?>?ClllllllCCll>?Clool?Cllll?ClllllC>CllllCCC?>>ClllCollllCCC>?CClplC>>>CllCClooplClllCC?Cl>>>>>>?ClllC?ƒõÿÿÿÿüÇCCCCllCC>>CCC>??>>=>>>=>>>>>?CCCCCCCC?>>C==>CC>>>=====>>=>>==CC>=>==>>==>>=====A>===>C>=>=>A========>=>?==>=>>=>======$$=======>=========$!!$$!========$!$!=$$!!!@áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!òÿÿÿÿÿ÷Z! !!  ! $q­õÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþþþýÿýÿÿýÿýÿæÓXTXXTXTXXXXTXXTXTXXXTXXXXXTXXXXTXXWXTXWXTXXXWXTXVXTXXXTXWXTXXXTX668688688866856868666566555556568866586668665685566566568556666685866866665685666686656856585655656655656566656888686865556555865568556666555855565665555676565666665565658665866885666555656686588658666666586666666665566865656568666868656886855556688656688586686566XTXTXTXTXTXTXTXTXTXTXTXTXTTVTTXTUXTTTXTTXTTTTVTTTTXTTTTUTTTTTTVTTTTTTTUTTTTTUTTTTTTTTXTTUTTTTTTTTTTUTUTTTTTXTTTTTTXTTTXTTVTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUTTTTTTTTTTXTTXTTXTXTUXTTXTTXTUXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTØ×ÿÿþÿÿÿþÿÿþÿþÿÿþÿþüóúúúúúúóüúòÕŽp??CCC>>>CC>>CC>>?CC>>>C>CCCCC>>>CCC>?CC>>llCl?>C>ll>>ClC>CClCC>>pl>?CC>>CC??CCCl?>llClCClCl>ClC>CllCllClllC??lllCCCCCÇýÿÿÿÿÿÌuClplClCllC>CCCCCllllCl?CllllCClCllC?CCl?llCClllCC?Cllll?CClllC?llllC?CllCllllllllCClllCCClCCCllllCllCCllCl??llCCClC?C?CClllClClCCC?lC>?CCCl??C?llCCC?llACC?CCCCC?CCC?C>>ClllCC?>>>CCCÆýÿÿÿÿç{ClC>>>CCCC?>>>>>CC>CCCCClCCC=>????>>>=CCAl>>>>>>>?>>C=>C?==>>CA>>>C==>A===>==>>>>>===>>=>===>=>>===>==============================$======$$==>==!===!======!===$====u÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY   $qªõÿÿÿþÿÿÿÿÿÿÿÿþþÿýÿýÿýÿýþþþþÿýàÓXXXVXXXXXVXXXXXXXXVXXXVXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXWXXX866666656666565555666656865856656567686656865566665655655688886655686668867655685855856688656668656567858665568688568568686566565555656686666566565665665566856556665865565675568666685865686565555655566768568686655666888568658656565886566585666866666886665678668676865655656568666766676866655668666656656668558566865556665565666665556686658688656565556665686588886666656856666656865568TTTTTTTTTTTTTT"TTTT:TTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTT:TTTTT:TTTTT:TTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TTT:TTTTTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTT6666855688858568565568555566656865856666666666865865665568ÓÓÿÿþÿþÿÿÿþÿÿþÿþÿÿÿüúúúúúúúúúúò¬ŽpC>?C>C>=>C?ClC?>>CClCC>>=>>>>>>>>>CCCCCC>lCllC>>llC>>CCC>ClllC>CllC???C>?C?>?C?>CllllClllCllCCl>>CClllCClll?ClllCCC>>ÆýÿÿÿÿÿÌullooplC??>>?C?>CllpolC?llll?Cl??llll?CCllllllCCCl?lllllC>CllllllllC??CCClllloppol??ClllClClllllllllllll?>CClllCClCCC?>?>Cl?Clllll?>?CCCCC>CCCl?CC>>??CllllCC?>>>CC?Cll??CClllC>>???CÇþÿÿÿ÷›ollll?>>>>>CC>>C>>>ClClCCCllA>>>?C?CC>>>>>>>A>>>>>=>C>>C==CCC>>>>>CC>==>CC====>CCC==>>>====>=>==>A=>A===>========$=>=>>========$===!=====!=====>=!===!!=$!$==!===$!===@›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!;òÿÿÿÿÿ÷Y !! !   pªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿþÿþÿþÿýÿèÓ6586655656866555586855686665686586655688866665665565668665666668666566666555666666856656568666685676556656656886656686656686665686755565665867666665675566656666585688886666865666656766685685556556566666585688566756886686766556768685685866667578566865655568566665888655566865666566658656865586655565856565566566666856665565668656565558586886756565565856665566685665566668666555666658566588558655565566567855668665656688656656668656TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT8566565655656668665588868658656566865568556656558566566Ó×ÿÿÿÿÿÿþÿþÿþÿÿÿþÿþüóúúúóúúúúúòÕŽm>>C>C?>>CCC?>>?CC>?C?>CCCCC>?lCCCCCCCCC>>CClCC?ll?C?>ClC>ClCll>?lCCC??llCC?>llC>llCCCCClCllCClCCllCCCClCCllCCllCClllCÇýÿÿÿÿÿÌuCCCllCClllClolCllCllClCCllCCloC>lClplClCCllllClll?CCllCCllllCCCllllC?llllC?CCCClll?CllCllllllC>?ll?CllCCllCCCCllCCloCCCllll?ClCCCCllCllClCClCClCl?>lCllC?ClClC>llC?ClCCC>???CCC?CCC”÷ÿÿÿçx?C>>llCCC?>>?CCC?>???CC>>??CC=>C?C>>>>>>CCC>>>C>>>C>>>>>lC=>>C=>==>>>C>=>>==>>>>=>===>>>>=>>====>A>==>>======>=A========>===$=A===========!=>=====$$=======!u÷‚$===!===!=‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿóY  !!=qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýþÿýþþþþþþþÿýàÓ68568565565665666556556565655656658656586868678685665856656556685568565756568555585656566665558665655565656665568666868665566686665566666668686658666588666655668865666588576566665665865676566855655566886555586585766665865666666566565666866685566668656586686658585586555666566885568568656588585655555668685658566658568666766865658666556655668685665686656566866565886586656665856856565655686566555686658666885658658655865866568586656556665688556556586XXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=6886666866855658666655686685665686865665665556676666655ÓÓþÿþÿþÿÿÿÿÿÿþÿþÿÿÿüüóúúüóúúúúò¬Žo>>>CC?>ClC?>>>CCC>>CCC?CllllCllllCCCClC?>>CllCllC>?lClll>>llll?>>>>C>?lCll?ClC?>CllllClCCllll?>?ll>>???C>llllCl?ClpllÊýÿÿÿÿÿÌlClCll?>?llCCvpllllCCllllCl??lll?>llllllCClCCC>ll>>?llllllllll>>Cl?CllllCl??Clll>llC???ClllllllCClC??lllllllC>>>>AlllCllllolC>>CC>?llC>?ClllllCll?>lllCC?>CC>>>lllC>lllCC?llC>>>CC>tßÿÿÿèyCC>>>CC>?CC>>ClC=>CCCllC=>>>??ClC?>>=>>?>ClC>>C>C>=CC===>>>C>===>=>>>=>CCA>>CCCC===>====>C?C>>===>>=======================>====>C>==>===========$!=!=====A=!=–ÿ÷@!=!!$=$@ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóY      ! =s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿÿþÿþÿþÿýÿèÓ6556566655868566865666856666866568666588685555588688555568588565665865556686866656656855655555867665675555555655555585555556556586658565565656655685565667688656565655856655586565666765666588586556856565676556686568855856566556768655856686565686565565655566556655886556566685855666866588688565656856765565565565667686556566675566586566658568656656858865785866555688856556858556866866765686655666686666558686865666668685865566555868566856555TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTMTTTTTTTTTTTTTTTTTTMTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT76866555676558858658566566656666686688858856656668Ó×ÿÿÿÿÿÿþÿþÿþÿÿÿþÿþüóúúúúóüúúúò¬�p?>CCCCC?CC>>?C>?>>?CC>C>?>?CCCCCC>???CCCCC?CCCCClC>C?ClC>ClCCCClClll>?lClCC?llCClClCClCCClllC?llCClllllllllCCllC?llClÆýÿÿÿÿÿ×ulCClll?lllClllClCCClllllllCClClllClllllClllll?lolClllllCllCllCClllCllllllC>lllllllCllllCCClClCllllCCllllC?llllC?lllCllC?lllll>lllCCll?CllClClCCCCllCCCCC?llCCllCCC>CCCCCCCCC>?ll>>˜÷ÿÿè{CCC?>>CCCCClCACCC>>lC>>CC>>C>?>lC>>CC>>?C>>>C>=?>A>Cl>>>?A=>C?=>CC==>=>=CC=>>>>>==>>=>>>=A=>===>>====C>====>>>>=====>=====>=====$===$=====$=========$$==!=$===ƒÿÿß=====!$=ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Yq¥õÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþÿýýýýþþþþÿýàÓ8655655656567765568666585566655558855656555555875865655655686555857656565665565856855555666565658565668665567656855558676665686576555556868658586888555686865556566865586865855666588565586765886558555856655565658658556655866655665665657655686886665558688555665565565656556886566558555568665566656855866556688565766668868665565576865865676678556656556868656666658586656856588665868656885767656655586885765768656556885566656565686555866565565865566668686588688656567685656555556556558665865665685656585866786565686656865856665686858565685667556685685666766855865585566655586656555566566665686568686586866665566666668876558866588685555556886565858657656665566558655656ÓÓÿÿþÿþÿÿÿÿÿÿþÿþÿÿÿüúúóúúüóúúúò¬Žo>ClC>>>>?>>>?C>>CACC>>CC>>>CC?C>>CC?>>?ClC>>CCCClllC>CCClll???llllllC>AllCCCClllllC>Cl?>>?CCllolCCCCllllC>>CC?llCClCCÇýÿÿÿÿÿÌvllCClClpvllCCllCll>>CClllllllCCllCllCCClol>ClllpllllCllllllllllollllllpollCllClllCllpolllC>>ClC???ClCClClClollllllC?>>>>CllllC?CCCClllllC???lCllllCCClCC>CllCllCllC?>>CllCClClllCC›ýÿüžC?lC?>>>>Clƒ˜vC>?C>>?lC>>CCCCC>Cl?=CCll>>CCC?CC>>ClC>CCCAClC>>>>==>>>>>>>>===>?===>>==>?>=>CA====>===CC======CA===>>>>>>==========$======>=$$==!===$!!===!!!=xÿÿÿ–=$!!$@{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿóZ!!  =sªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿÿÿÿþÿýÿýÿæÓ656588565656865685565565656565585586565565568685665856856765685665566665686668558686585886576568678676555656668656578676566656656856556685556685665856555565676556565566655656656686556588867566556668566656568665565688866576568685666855665668855568656565555855566566858565558568566665586856878665665656555586655656568586856586855666555655566866566655566556666565655858686568555655855585865558555668565566558665655565666656685686666656558568555555656585665566665676558555566565666566855666555666565676668688855555585565686565657855665658668656655655555686855588686555568585856668586556556868666566566556555558676556675555556555558565555655658585866556565656555855665656886656656555856655586565555676566658Ó×ÿÿÿÿÿÿþÿþÿþÿÿÿþÿþüúúúúúúóüúúòÓ�p???C???C?C>=CCCC?>ClC??CC?ClCCC>?lCCC??Cl>?CCC?CCllC>C?ClCCC?Cll>ClCCClClCllCCCCll?>llCllCClClCllllCCClCllllll?lCllCCÇýÿÿÿÿÿÌull?lllClllll?CllllClllllllCClllllllolClllllCllllllCllolll?ClllllllCllllCClClolCCClllllClllClllllClllll?llCllC?lllllllClll?l>llllllClCllCl?lCClCllC?ClClC>lll?CCCllCC>?lCCCCl>CCCCC�þÿòƒl>C?>CCCCuÌýÌllC>?CC>>CC>>CCC?>>CC>>>>?>C>?>>C>=CC>>C>>>C>>C?=>CC>>>>>=>>>>>>>?==CC==>>>=>>>>>=>===>>>==>=>=>==>==>>=======>=========>=!========$>============!Aüÿÿüu=!==xúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@óÿÿÿÿÿ÷Y  !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿýÿýþþþþÿþþÿýæÓ8856586556665665658656555585676567676555565858668868558555566565868555656568658566856686658556655686556658655765555666556665556858865568676885655568685565555555865885686855565885556855556565858655865855685586556868565655585666566565658585666555655558566555676555565568656865665676585566855565688866565565585655656865688588555556586565665858555665658586665865567655658588656865656568686655858676665586566558765555865658556565656885656566566566855888567686656565668555865656565568586856587655658665565555566866666655865656666656558586865585555655555556855665655655657655585765656656765856655555666565658565668665586568555586766786656655556865655858688855686855556566865586855855666768665586765ÓÓÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿüúúúúúúúúúüò¬spCCC?CCCCCC?>>ClC>=>ll>CClClllClllllC??CCClllllCC>>CC>>>?C??>>>lll>>??lll?lCCCCCCCCC>>llollC>>>C?CClCCC?lollpoll>llCl?Æýÿÿÿÿÿ×ul>Clol?lllllC?CCllllolllCC?llllllC?l?CC>>llCllClll?lllllCCllC?CllllllllllllClCCllllClC?ClllllllllCllllC?llClCCClCllllllC>C?CllCCll?CC???Cll???>>???lllC>ClllCCClCCC?>C?>>>CCC>Clll�þÿò”llCC?lllzèÿü–ClC>?ClC>ll>>??CC>>ClC>>?CCC>>C>=>>>>=>C>>>>=>ClCCC?>==>=>C?==A>>>=>>C>>>C=>CC>====>=CCC>=>>==>>>=>========>>>==>>============$=A=$$A==A==!$====>==ÌÿÿÿçA==ƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!óÿÿÿÿÿóZ    p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿþÿþþÿýÿæ×666567688568856865656656568676865665656676565866566566555665655885856685655565675566688685656566886856656655668556565865676855686656656676558686766558675555668685655856565655686565678856765665866685665888555555566686568678666565575678585855568865555666655566556556565786768655858688755565666586565588558565685566655556756568655885667655686666868558686665666556656558655556586556665865865856656865566558888556866667655666586558568656855565556555676555566866686568558685656758555658886556675565585655656865688586556558586565656585855668585658667558655565556585868686666556566686556666658665858686585666565688658666555656568656568666566566656856656685556856658565555656666756556667565665868656588886565658668666Ó×ÿÿÿÿÿþÿþÿþÿþÿÿÿþÿúóúúóüóüúúúò¬Žm??>C?C?>C??>CCCC?>?lA>>CCCCCC?CCCCCCCCC??CC??CClCClC?ClClClC>CllllCl>?llllCCCCllCllllClllClClCClCllClClllCl>lllCCl?llÇýÿÿÿÿÿÌullClll?lllllClllllllllllllCClllClllllllClllllllllClllllCClllllClll?lllClllllClolClllllCCllllllllCCllllClCCllllllC?l?lplClll?lll?lClll?ClCllCCC?lCCCllllllCCllCCC?ClllC??CClCCClClC�þÿÿÇCCCClCCußÿÿßuCCCC???>ClC>>CCCC>>C??>CC?>>>Cl>=CCCl>=?>>C?>>>ACC=>C>CC==CC==??>?>=>=?>>>==>>>=>>>==>>=>=>=>======A>>>========>C===========C=$===$==========!=====xÿÿÿÿÇxÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y!!q¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿýþþþÿþþÿþþÿýæÓ556665586665658566556666858885658668565655565558656556666656565565556686665857685568556565565585567686665686586665586655666556656568686566586666558566565565655556865866586765555886558855868666688655568665555658655665556656588676555556585665566655655665555666685676765666658658668655656655666565556655656565655665666555656557655655686666556655657656885656768686585565665655856658686565866665566556556558658676865856868565556686585565766686656585556665565566558865688566865568566868568556585665565665656668666556865566655565858688868558555665658685556565686585668566865586565655686685666557665676655665655885866556856868566556868555555555686588568685665568557685655ÓÓÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿüúúúúúúúúúúòÕ�o>>>>>>>>>CCCllCCC>CCC>>ClC??>>>>?C?ClllC>>>>>>CClClCCllllCCllllCClCCCCllCl?lllllCCClllllCllllllllllllloolllCCllCCClovÇýÿÿÿÿÿÌClllClC>??Clollll??llCClppol?CC?lCllolloollllClolC?>lllC?CCC?lllCl?ClC>ClllolClllCCllllClCCCC?CllllllCC>?>llCllpllC>ClollllCllll?>lllC?Clool???Clll??CClllCCClllC>>lllC>>lll??CC?>C”÷ÿÿñ{?>>CCCÇýÿþ�CCCCCC?>>?lC?CCCCl?>=>=>C>>>>>CC>=>CCll>=C?ClC>=>?===>CllC>CC>==CCCA>==>C=>>=>C=>CCC>=====>==>>>>>C=>==>>=======>=========>==A=$====$$==$======$$$!!=ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY      ! !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿýÿþþÿþÿæÓ86586688586886666666887565555556556556565665675667565555565566676886568655566555665567555556875658556565656566666555555658666856555656568565666686656656655865688555665555665655686667666565558566566858658667656566866665675656558688566656565665855555888585565856555565558676685656685656868665568558555868686566568685565586558585668688656666555568555686556656886565565556585656556585555565856555565566856665866566655656866586556576556755655566555585655655565586556566556555565558566565665656865686555558858656856555656656665658885656667586856656655666656565658568555686556666765586866665566765556688656556555656566666556758655676566867686656888ÓØÿÿÿÿÿþÿþÿÿþÿþÿÿþÿüóúúúúúúúúúò¬Žo?CCCCC>>?CCCCCC>>?ClC>CCC?CCClC>>llCl>?C?CClCCCllC?CClCCCC>CllCl?ClCll?ClClClCloCClClClClllllCCllClllllCllllllCllClllÇýÿÿÿÿÿ×uCCClllllClllllll?CplCCllllllllllC?lllClvlClllClllllllllllllCClllllClllllllllllllllClllllllllClll?lllllllCClllllllllClllolCl?llCClCllClColClClClClC?C?llCCCCCCCCCCClllC?CCCCClllC??ußÿÿþÌoCCCC{ñÿÿòƒCCCCCC>A>CCCCC>CCC??>?>>C>CCCC>>C?CCCCA=>l?=>lC=>CC>>>>>>>>CA>>>>CC=>>>>>==>=AC>>>>>=>>>=>==?>==>>=>=>===>>>===========$=>=>============$===>===!====–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Z!  !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþþþþþÿýÿýÿýýæÓ675685666865855668565556865656556886568665655556565685658576865556685656565657566766868866886855566657576688655665667555558865656558686585768655656856555658856655658555555886656565866666885655558656555685666658756555556868855855565656558768568565656656555557685655556566656656565658676868656665587665565865565555555558856586685556665656865565556866576558685556656565868566686565585667866656557655656665555655856665688866865656556585555586876558585665555676856665565686686565655686565568686855565686655658655665678586855586565556666556565565556557666558676856685565655665856565865655556686656558665565665565565686686556566655858666556665556668665658676555565765688556688ÓÓÿÿþÿÿÿÿÿþÿÿÿþÿÿÿÿüüóúúúúúúüúò¬solC>>>>>?CC?C?C>>>>CC>Cll??CCllC>>?CCCC?>?llCCC>>???>CCCCClCClCC??lllllC?C?>>lllollC???ClllC?C?llClC>>>?>lllCCllllC?llÇýÿÿÿÿÿßvll?ClllllllCllolllollllClCClpolllllllllllllll?>?AlovlopolopolppplllolllCClplloollCllloolllllllCCCCCllplllCllllC?CllCCClllClCClllll?lll?ll>C?lll?CCClC?llCCll????lllCClCll>>CCCCl??>›ÿÿÿüÇtC?lÌÿÿÿáuCCCCClllC>>>CCC??>CCCl>>>>lllC>>>CCC>>>=Cl>=>>>>>>CClC>>>>==>>>C==>>>>==>>====>>=====>AC>=>=======>==>>==========$==>>=======>>=====>=====$=====$====ZýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿóZ  ! !!!!=p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿýÿýÿýÿÿæÓ565856565655656556855556685656565565658655858555675665868866655555585565575655685865565558886865656568685686676558655755856665675586867856566555688685566555855655855667556856888565565865556588855586555856555585858565856855556566556566858567585576567655556555885566856555767755558556666756586768555666556555655676676658866566656565555566557555868676568558566555767585556656656567655555576868585558586755867666556656575555558855555555686567565656686567885686666586558585558555565568866686675666856785565566666865556556655585755565675567657555556665686556865556655557656755555567555855656657566676555555758665856556555875555556676655865655866588555556ÓØÿÿÿÿþÿþÿÿÿþÿÿÿþÿþüúúúúúúúúúúòÕ�qCC?>>>CC??CCCC??CCC???CCCCC?C?CCCCC>AllCCllCCClClC>ClClCCllCllCl?CllCClCCl>?lllllol?CllllolllClAlllAlllCllllClllClCllÇýÿÿÿÿÿ×ull?lllllllllllllllllllllllCClllllllllllllllllllllllolllCClllllllllllllll?lllClllllllllClllllollCllClllllCllllllClllllllllllClClll>Col??llClClClCCCClllCl?llCCCCllCCCCClCllll?CC?lCC{èÿÿÿý×{uÆúÿÿÿ×l?CC??CCClA>>CCCC>>CClC>>?CCCC>>>>CC??>C>>l>?>=?CC=>?C>>CC>>>>>=>=C>>C>>=>>=>C>>>=>>>>>>=>=>=>>>===A>=>=====>=>======>>====>===============!====$!=A=$C÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷Y!!!sªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþÿþþÿýÿýÿýþàÓ665656556785656855555558555658556558666558666688566558566555565588556556566556586665586557686565556667585576857657656558556586656865556767655785768856865665655565655556657665565655578658655655565686558556855655555558556555788586865586586556865856568656556767686685555565676556665755555565868565655656558565555656857656565656655566588558866555686588587558656665565558585865585665555668556665856566585576568565565556655666555556866656658586655686665556875585565567668655568565656556555556868556856856588685688656856565555656865668556865555576655856555655576765866556688685557685757668865666565655555866565656766658558685556568565565866556585555558586556656586ÓÓÿþÿÿÿÿÿþÿÿÿÿþÿÿÿÿüóúúúúúúóüúòÕ�pCCCllClCC>CCCClCClCClC>>>>>>>CClClllClCCC?ClllllllllCCCC?CllllllCllC?llClll>C?>>ClClllll?CCCCllllollllllCllClollllC??Æýÿÿÿÿÿ×ulClppoolCCCl>?lllC??llCClllllllCllCCllllllCllllllllolll?ClllCCClllCllllCllllClCClllC?ClCClolollllC??lllll?ClllClll?lllCCClCCCCC?llloC>loollllClClCCClllCCClClllCCCCC?lCllpol?CCCCC>?›úÿÿÿÿýüÿÿÿÿÿÆ>>>Cl?>CCllACCC?>>>CClC>>C>>>>>?>lC>>>>>>>CC>>=>C>=>=>>>?=>?C?>>>>>>=>=>>==>CC?>==>CCC===>==>C>=>===>>==>>>===>>==AA>=C>=>=====$=====>>===$==$======!@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿóY ! !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþÿýÿýÿýÿÿèÓ556568555678565686866665558865666586765565585856865667556785586765586655585655675755566555678665565567556678568555556565766585656685558666555556556685686685558855665655565856656567656556555566756558585658555665685568665558655565555756557655866555556857558655656856878575876765558575658566856855555556565556685587656865865565555766676585685575556585565658868686558557657855856568565568567676855555676566556566557566856587556765856565667566555565655586588586568568585855665668686886555558555575655685865865586867556565666668665755675575865655656586656785656757688688656556558558555656568568675556585Ó×ÿÿÿÿþÿÿÿÿÿþÿÿÿþÿþüúúúúúüúüúúòÕ�qC?ClCCCCCCCCClC>ClClC??CC>>CCCCC?ClllCCll??llC?llllC?Cll?CCllClllllClCllClllClC?lllllllll>lllllCllllllCllllllllllCClCÇýÿÿÿÿÿÌullClllllllllClllllCllllllllllllllll?lolllClllll?lllollllllllllllolllllllllllllClllllClllClllllllCCClllllCllllllClllllllClllllll>lllll?CllllCCllllllCllllllCC?lolCC?ClClClllCCClCClCCCÇüÿÿÿÿÿÿÿÿÿú˜>>ClC?CCC?CCCCCCC>>C?CC>>C?CC>C>>CC?>>??CC>?>>>>>>C>>>?C==CC>>>?>=>>>>>>>=>>>>C>>=>>A=>>>=>=>CA==>=====>A=A=>=====>==>====>==========================!Cýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Y  =qªùÿÿÿÿÿÿÿÿÿÿÿÿÿýþþÿþÿþþÿýÿýÿýýæÓ8565555586686565586576568676555676565786655765666758765685556685886585556567586655655588856565656586657667556556866755556576565886786686658665686565566588558568676656558655555568658665656766555686857565685566568656756855568766685768566666556866765686765866556656566668865768656865565686857667666785668585658568556655667665556585655655655655665567686558585658555686886555686565656665575568555686755665787556755658568685556676658555668556865566575556655565655585586758666567565865658665565665885565566565676665586576868655666866576858665655856566556865558566756857688686556555555565666567656ÓÓÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿüúúüóúúóúüúò¬sp?CCC>>>>CCllCC??lllC>CllllllCCC>lCCC?llllCCClC?CC?l?ClllCllC?ClC?CCClClplCClpplClC>CllllCllpollllllClClC>?CC?lllCllpoÇýÿÿÿÿÿÌuolClllCllpplClolClllpollllolllllCllClollCCpollllC?CllCClplClpllplC?llllllllCCClllCCCllllCCllllClllllllCClllCllC?lllC>ClllllC?ClCClllllCC>?llllCCC?CC>??ClCllCCClllCllC>>>>?llCClllllCC�òÿÿÿÿÿÿÿÿõƒlCCl??>?>CllllCCllClCCllCC>?lCCC>?C>>?>?lCCCCCCCC>CCC>>>>>CC>CC?>=>?ClCCCCCCAC>=>=>>=>=>>====CC>=>=>>>=A>>========>==========$=A>==>===!====$>=$====9=ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;òÿÿÿÿÿóY       7p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþÿþÿýÿýÿÿæÓ5576758765765686876765556558555765588856556865768586556855856865668566665655655865856556786586658556665658656655655568785566558655656886668855555655656675pj57655656656555666866768676656558587567556655558655568555655676558767658555568656586556588668658885678876578655856656765566855678655678868555766858558666558566655685565655655666565556875588656556756568566655576865865688567586755686555666577658865668558656656676865555886867675867655885568685686556585566856656565658676558576676565658676565865858568676685567855865655866556865667576555765556586756556566785558555655656566585656685658556565556655558585866558575Ó×ÿÿþÿÿÿþÿÿþÿÿÿÿþÿþüóúúúüúüúúúòÓŽp??C?CCCCCCCC?>?ClCC?CCCCClC>?ll??CCCCllCCCCC?llllCCC?lllClllCCllCl?ClCooll?ClllllllllClllllllllllllllllCClllllllllCooÇýÿÿÿÿÿÌvol?lllllolllllpllllllllllllllllllllllplllllllllllllllCllllloollloCClllllllllllll?lllllllllllllllllCClllllllClllllClllllllCllCllllllClllCl>llllClllCClCCllllllC?llCClol>?ll>CCllClllCCCl{ßüÿÿÿÿÿÿáx?CClC??>CCCCCCCCClCll>?lC>>CCCCCC?C>?>>?CC?C>>>CC>C?>?>>>>C>CC>A>>>>>>?>A>>A>>>=>C>=A>>>>>>==>>>>=>>>=>>>==>>=====C=========$==>===============!=>=$=CÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷Y =qªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþþþÿýÿýþæÓ6568666555568556568568665568558665766558565555555865555768765575656565566586658556658585885555565657866865856856555668656656565655565j™ý68665855865856666558685568666856658655665686856856655685685656858657565765557856565588656888588578855865565656766557885655865858865665756665656678685655755768555877866768876665855685768556665658656656556555676566558565557666565856565787685688556755867786658766688556578556886556585668656588876555865555655755767665576556556785656865555888676555555675866556555888565566565866565675556865665555566765587675766866586655585866566666558566ÓÓÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿüüúúúúúúúúüò¬sl>>>?CCCl?>???>>>>>?CCllC?llCCllCC?C?>?C>>CC??lCCl?ll????lllC?llCCl?>C?llCC?>?CCCClll??llllC>CC??>llllllllllCCCCClllllÇýÿÿÿÿÿÌullC?lllllC?CCCollllllllollllpllvlllllllllCCllllppvoopppllllllCllllllplCCClollollCllollllpplllllllllllClllllllllllllllllllClollCClllC??llllCllClopollllllllllllC???ClllClllC?l?CllC>CCClloÇúÿÿÿÿÿßul>CCCllC>??>>CC>?C?CCC>>C?Cll???>>ClCC>ClC?>>?>>CClC>>>C?=>>>C=>CCC>>>>==>>>>==>CC>>>?CA>>>====>===>>>=>C>==>==>>>?=>==>===$=>>====$==$=$=====$======ZüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿóZ!!     $s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþÿþÿþÿýÿýÿÿæÓ56765658658855676676576558765586656656565656656855556658655856655856676656555876556568568566866658567567576555676668667865556555555756656656886775556565575656568†™p66556558685566558555558556658886556655755756555765586556556656856555686855568655685868556656655568566665555655588668556576556655556566867668566556886888667566568675566656566865568865576588658656655858685867656556567685886568558656655577655655586565688685857676556655865686655686655865658656855578865555868866555675688656666866868856556865768586565855855586556856856756556555855856556786585685556676586585558655867855555586558686868885555555567566758567565566565555667885Ó×ÿÿÿþÿÿþÿÿÿþÿÿÿþÿÿüóúúúúúúúüúò¬Žo?C>>C?ClCCC?>?CC?>CllllCCCCCl?lllCCCC?CCCCC?ClClCCClCCCCllol>lAlol>?llCCllClClllCllClllllll>lllCl>lolllllllClllllllooÇüÿÿÿÿÿ×uClllllllllllllClllllllppllllollplllllCllllllllllpllllpllllllllllllllllClllllplllClllolllllllllllllllClllllCClllllllolClll?lllllCllllCCCllCClllClllllClllllllClll?CllllClllClCCCllClCCClClo›÷ÿÿÿÿßuCCClCCCC??C>>lCCCCCCCCC>?>?ll?>?>>>CCCCCCCC>?C>>=?lC=>CC>=?>>>>>CC>C>=>=>>>C>=>C?>>>>>>C>>A>=>=>>==>>==?>C>======>=>===>A=======>>===============$===–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z!q­ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþþÿþþÿýÿýýàÓ57655865675685657587665656858656588587555565655655685667855885765855686555565856765568867676685565556858565558658656576666555656576568865585586655658855556856586>5555656556865566556568558555556886755855566868755586558566555555686585655566565565655865685558558685755556556565666585668655555666558556555555655875686658856656565667655685555668567555558585886586565555585675658755555655855658678556586656858685676566556876666556556566877855557657685666585756765666566687868655656568865565655656685555685585667685585655566658755565667556865655556556865855665865888556576656866665866856555668656656565665556658556855556658766ÓÓÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿüüóüóüóüúúüòÕ�pllC>>>?C????lClll?>CCC?CllCCCC>ClCCllCClllllCCClllCClllll??lCllloC>loolloplllCllllCCClllCllllolllllvpllClolllvpolllloÇýÿÿÿÿÿ×uClpolollllllllllllllCCllllCCloollClClllplppolClC?llllllll?lllllllpllllllllllllllllllllll?>llllpollllllolllllllpllllllClllClpllllC??Clllll?Cll?ClClClllC?lCCCCllCClC?ClCClClC?llCClllCCCCCClÆüÿÿÿáu??ClllCClC?>?ll>>CC?>CC>C?>ll??ClC>>CC>>C>?CCC>>>>ClC>>>>>>CCC==>CC>>>>>C>>>>=CC>=>=>==>====?>>>C>=>>=====>>========>====A=A>===>====>=>==C>==$=$!$=C÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿ÷Z    ! pªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþÿþÿýÿýÿÿèÓ5686765576766855686566557686576555555655565565555565885866556757565866555657558556666565655856855656565558555558555555558685868655585555556555665558667675668865758658565676557555655558776755575586585555558558885655556557655655768765565555655566585676788685655675858585556576758855565555568855555655675555855555555765565766587658686758655655555668575565655585887565865586655555555685565668565585585555675585558587555575555768585658676555556585575755555585855556585685585555555565556655555568685566556555666858755675655856765555555655655556857855587575855767556655565566585687665555555555556656655885755555656558565755655656558585565756855Ó×ÿÿÿþÿÿÿÿÿÿþÿÿÿþÿþüúúúúúüúúúúòÕ�qCCCC?>?C?>?CCllllCCC>??CllCClCCCCllCCCCllll?ClllllClllllCC?ClllllCCllllloolllClollCClCl?lllllllllllplllllllllpollllllÇýÿÿÿÿÿ×ullolllllllllolllllollllllllClllllllllCllllpllllllCllllllllClllllllplllllllllllllloolllllllllllllllllllllllllCClolllllllllClllllplCCllllllClllC?llCClllCllCCCClClllCClCClllCCCClClllClCCC?CCuáÿÿÿñ{C?CllCCCClC>Cll>>lC>????CC?llCCCl>=?CC=?CCC?>CC>>?>CC>>>C>>?CC>=ClCC>>>C?C>>>>>A===>=>>==?>=>A>>?>>=>>====>>========>>>===>==>========>>==========$=–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿþþÿþÿþýæÓ85855556675576565556555856655676865855565655575586556655656555656855576765865566565655555555555585558755655555585555658585755856586555658556655655655586767568555865565558555685555788587665555665556655867857668766586585555568655565555557686855565858565555665585676767555587655655675655885656855657557558858585658656666585556568555555657558857675585556555565767555686758555568576686856655556665557676756565755676856765685867556786586556766586558555565665788555556555855758555655556755865586558587655565565566866876587555588655568567665688685766855655678585555656856567866555765577678885855676557568565585555755577555588555766ÓÓÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿüúúúúúúúüúüò¬Žp?>C?>>llC??CllC>>Clll??CCllClClCCC??Cl?lCCCl?C?ClC?C??l?ll?lllCC?lllCCCCClClClllllClllCCll>llllllCAllCCllllClllC?lllCÇýÿÿÿÿÿÌulppllllllllopollllllllllllllllllovollCllll?llllpol?llllplCClpll>llllClloolllllClllpplllllllCCCllllllllClllpollllllClllopllllCClvpllolCllpllolllllClllCloolClClllllllllCCllllCCClllCCllCClCllžúÿÿü›CCCCCClCCll>>ll>CllC??CC>?>CCCCCl?>Cl>>?l>C?>>>C?>>>>CC>CCl>?C?=>?==>>>>?>>>>>>>C>C?>=>>>>>==>>>>>>>==>>>===>>>=>==>>=A===>=>======>=========>>A===Z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!óÿÿÿÿÿóZ   ! ! !!!9qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿþÿþþýÿÿæÓ865655655657665555555555655575655657676687556855857585855576557586566578556555555655568856765567656555885687656568555655566758765658565867665658865758565555585565685555885555555655658566755585655655855555656655555655666565565655565676755568555655658865856565555555685655856558856856768655555558655685685665556555765557556556556565865655855555555556675665555755655556678556786656668555578755565557658585556587685555655556586768575567675655665858556568566575556568565857585566665655667856565685855666755855555555658855755567585658655565755865556656765856855656565556655767555555566858675675585555558565565656568675656865565585ÓØÿÿÿÿþÿÿÿÿþÿÿÿÿÿþÿüúúúúüóüúúúò¬�q??>C??llCCCCllC>>CllCC??CllCCCllC?ClCC?CClllC>?Clll>ClCClllCllllAllCCCll??lollllllCClolCllllllllllllllllllCCloollllllÇýÿÿÿÿÿÌuollllllllllllollplllllolllllllllpvlCllllllllllllllllllolllllllllllpllllpplllllllllpollllpllllllllllllllllllplllllllllllllllllllloplllCCllollllll>lllllllllllllllllllllClllCCCCllllClllllllllußÿÿÿßulC?CCllCCClC?CCCllCC>C?>CC?CCCClCCCC>=Cl?>?>>CC>>??=?C>>CC>>CC>>>>=>C>>>C>>>>>>>CCA>>>>>==>=>>>=>>>===>=>=>>>>====>==>===>>=======>==$======>=$=A=Æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@òÿÿÿÿÿ÷Z !=q¥ùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþþÿþÿýþæÓ5865655776685855755558558858565567657856586866585788555655586686857876557576755555556658555556655855658555855576555555656565658565655555565656558688567656555766766766556665657555656585856555858555785857657555555755656555655677655555866568555558555576675658576585655555555856656567655655565555556575578656558655655585565868565755856675555555565655656555868886555865577656858885855557555555685855855558858655658855555566757687676555555655567555765755555685658565555555565656856565655568556655578655656855576588555665656565555555555685677556555655865566586657585658655567855665565655565767568555556565558558865ÓÓÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿüúúúúúúúüúüò¬�p?ClCCCClCCC>>CCClC??CCllCCCC???CC??ll?llClClllCCllllCClllCClllllllllllol?CllCllllolllplllollllC?CllClllllllCCllllplllÇýÿÿÿÿÿÌvollCllllplll?lllppllllllCl?llllllllllllopvololpllllllpllllppllpllllllollolloplllCCllplllppllllpoll?lloolllllllllllllCllllllllCCCllllpllllClCCllClllllCC??CClCClCCCCCllllllCllCCCCClC?CllC?ClC”÷ÿÿüÇul?CCClllCClC>>?>>lllC>>ClC>>>CC>?>C?>>lCC?>ClC>CC?=>CC>>CCC>ClC>>>Cl>>>C?>>C>==>=>>>>?>=>C>>>=>>>=>>=>A>>===>=>>=====>=>>=>====A======>========CxýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿóY  ! qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿÿæÓ68565578858565765586575886686885655585656855658557567565865565555855876557556656655555566585555567675665665767556765555585555655656565686555855586858565758655585565655665555565856888575555765555555676555758665766765686858665585565655556888566685557665555575655586676865565556575765855875677555558655885555565588555555556786657655588656555555565658556555655656555556585676755556756565757657566557868558567566655756875855856756555555856776676775655655555558656855566555586557555857655766758667558556555555555556885656656765675566768565655655555566768766555655655885685658665558555556556556568555586565555557ÓØÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿüúúúúúüúúúúòÕ�q?>lllC?CCCCC??llC>?CC?Cll>ClC??>?>CllCCllC?CClCllllCllllAlllolCllllCllllCllClllllllllllllplllClCllollllllllllllopllllÊýÿÿÿÿÿÌvplClllllolllClllplolllllllCllllllClolClplooloplolllllplllllvololloolllllplolllll?llllolllllollllllCClpollClpllCClplClllllllllllllllllllolCll?llllllllllCClllClClllCllllllllCll>>ClllCCllCClCCl×ÿÿÿè{CCC?ClllCCCC?>>>?llCC>?CCC>CC>>?>>>?C??Cl>>ClCCC>>??>C?>CCCC?CCC>>CCC>CCCC>>>>==>>>>CC>>>>===>A>>>>==>>=>=>==>=>>>==>>>>==>>==>>======>==A=$===CáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!    9qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿþþÿþÿþþÿýþæÓ55685566667558565568675555555586558585656655785857556576566855568656557885758855675575555567565555658556756557685855585786568655558855567867677855576558665568566565565555855685565658688565556557658555785675655557655685685555885586865555565568555566555566755557675866755565575557585685567767876755555676856585557558858667555865676855585566765565558655556586585557586657685658588656785655566575588865555855555766555555565556576766565675567655568678555585657665565585668555555588655588768678876855556776568578766575566555565585855555588658556585558555675655556575655765556755655556567655888855576ÓÓÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿüúúúúúúúüúüòÕ�}??lC?CC??CClC?ClCCllllCll>?llCllll?llCClllCllllll?lll>ll?CCCllCCClClllllllC?lClllllllllllplCllolll?llpl?llloollolCCClÇýÿÿÿÿÿÌuolllllloplllll??lllllllplopllpplCloplllllllllllplllClllllllolllllpplllClllllllllllllCllollplllpllllCll?lClplllllllCllllllClllplllllCCllplCCCllloll>llllllllC?lClllCCll??CCClllllllCCC?lolCClC?ƒòÿÿÿÊulC?>?CCCClllCC?CllClCCll>?CC?CCCCACCC>?CC>>>CCC>?C>>>>>??>>>>>C?>>>>>>>>C>=>>C>>>C==>>>>=>>>>>>=>?>>>>=>C>==>>=====>>====>=======>>>====>==A==–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z !     $}«õÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþþÿþÿþÿþÿþÿÿæÓ57555858655655655555655556658676755765585685555756556556658556555557885655665675758567665585556755855686555555556565685586665555588856786675565655858565587867665858655555585886568775556557555568558556688886556866758655556658578857788556665655868555567655766875685868588556755685567555588566656866658755666866755868867667575765865658566788665676585566585556858856665565556555755788555676755558568656568567566875555667586885555656555755856887667676565565566768555585557558858558665667575867556556565565655667655555655676855755556877558658555567675755566555565565665655655555565655555665556555868585575855665556555565756Ó×ÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿüúúúüúüúúúúòÕ }??lCCC?A>?lll??CllllllC?C?ClC?CooC?lllClCClllClpllClAAllCClllClCClllllllllll??lllClolllllollllollllllplCllllpllllllllÇýÿÿÿÿÿ×ullllplllolllpllllllplllollpllvlllllvlllllplllllpolllCllllllpllllllllplCllllllllllppllllllllllllolllllllllllllplCllCllllollllloolllllCClllCCllllllllCClolllollC?lllCllC??lCllCllll?ll??lllllllllÊýÿÿ÷˜llCCCC?CllllC>CCCCCllllClC?>?C?CC>>ClC>?CC>>>?C??>>>>>>>>?>>>>CC?CC>>>>>C>=>?>>>C>>>>C>>>>>>C>===>CA=>=?>======>=>>>>======>=====A>==>====>==C÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY    =s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþþÿþþþæÓ75565576657675767656785555655656557655658567675655565585575855655685686758675555557655565556755568868685575675555555558676578556685566865555555556556555585567565585685555876568675765855555765865655558586555655555665575566565655575558655858555565786565867656755657556858555656555665556555556558566565585655556858888655555575565655555756786555856656558655556658556886588856756556578585555575565555667855588588855565765565655556856686685555586688687665568558868575665867676885578656755555685675768656555666567865585555555667565555585675555788585558578865865765585567876877865676558665558566565565565ÓÓÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿüúúúúúúúüúüòÕ�}?>CCCClllC?CC?ClClCCCllCCClolCCll?CllClCllClll?lplllllllCllClllllCllllCClllllClplllllll?CoplpolllllllllllllllllllllloÇýÿÿÿÿÿÙuCllllllllllllolplllllolllllllllllllllpllopllllovllllllllllllpllllllllllppllollllllllllllllllllplllpopolpllllllllooplllllllClClCClvoll??lllllllllllllClllClvlCj>CllllllCllllllCllCClll?ClCClClClxèÿÿÿßuCCCCCCllCCC?lll>ClC>??>Cl?ClCCCCClCCC?>ClC>CC??C?CC>?CCC>CCCC>>>>>>>>=>C=>CC>=>>>=>>>>>>=>=>>=>>=>C>>>==>>A>=>C======>=>==C>==$=>=!$=>=$===AÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿ÷Y!  ! =qªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþÿýÿþÿþÿÿæÓ558865656575556565555555557658576555758858665555565686755865565558856555555558865585557555556555555556566755588586555875856875565556566555565565586555555565568676556575665555585575865667865658555555855867665856855755657655655555555555587656686655555766656557565576665875685855758556758555555555576876858555856858jCn855565765555667586675866855555688565785555858755575575565755565586758565755555655575565655555567558656855667655658685556565686557555555565555758656565565555755587555556586555557855655675655566558585665555768867566756755555855865556566586588555665667555568668656565656685658765585565556565658555655658865767585Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿüúúüúüúüúúúòÕ�p??>CCCllll>?ClCllllC?lllCllollllCCClCCCllllllC?llllllllllllCllll?llllCCClllllllolllll>llllpplplllplllllllllllllllllllÇýÿÿÿÿÿ×ullollllllllllloolllllllllolllllppplllllllpllllplllllllllllllllllllllllppplllplllllllllllllllllollllllplopolllllllplllllll?lllClClvlllllClllllllllllllllllllllC?lllllolClllllC?lllCClllCC?CCCClClÇüÿÿü�lCllCClCCCC>llC>ClC>>>>Cl>lCC>?C?Cll>CCCCClC>>CC?C??>CCCCCCCCC>>?>>>=>>>=>CC>>>>>=>C>>>>>=>>>>C>=>>>>>=>CC===C>=>==>>==>===>====>====>=====xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;òÿÿÿÿÿóZ =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿýÿþþæÓ76687755556575555556875765555758566565556565555767665565555565567655576656657557686555856766855657656567558557685558868876585555585575855855555555858556557558578656555555855655765565585585557785558557655765557558755855655675755655558888765767655657558657665565688857586558585855586865576765557555685675656558555656jZrƒp65555555556557566555576555565555585566768576765867576556555555557555767587876555555765758656555565567675587656555585565855555555675765856556755865655555555555555565757856558558555585755555565556558588755656767557657555558575587855767555577556575557675555855676566688555565555855655756558655ÓÓÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿüúúúúúúúüúüõ¬spCllClCCCClC>?ClCCCC?ClCllllCCCCClllll?lllCCllC>ClCllllClllllllllClllllllllCClllllllllllpllCllllCloollllppllllllllllloÇýÿÿÿÿÿÞulpplllllllppllllloll?lloplllllollollllollplllllllllllvpollloopplllpllllllllllpllllllllllllllllpolllllllllllolllllllllllllCloollllllllpollll?ClClllllllll?lllllllllClllllllCCCClllll?llllllC?CllCvßÿÿÿè{llllC?>?lC>?llCCCllCCCllll?CC??>ll>>CCCCCl?>CCCCCCCCC>=>>>>CC>>>>>CC>CCC>>CCC?>>==>>>=>>?>ACC>==>>=>==C>=>>=>>==>==>>===>>==A==>A=>======CèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Y! ! !qªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿýÿèÓ6568855565675575665877655558555565585575555555575557655567556586685655678575855855555657555565678565555585656655657558555575755555678565756675576555555555555755555565656875676755556685556757675665555856555658755658567585587587587565585555555758767555567565555565555655555565876765558757788>{†™Zj685675558558857875658577857555555655585765575555555578676755587557576855876555587675685658858557675556757555557687556855756555565755766875676555767555567655767575655556555587557555657555555656767558868555666855856556757555555555558555555555676576557Ó×ÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿüúúúüúüúúúúò¬so?olCllCC?CC>CllCC???CCCClol?>ClllllCCClCClllllCllCllllllllplllllClllolClllllllCClllllCllpllClllllllolllppllllllllplllÇýÿÿÿÿÿÙvloollollollllllCopllllovlllpllpllllllloollloplllllllpvvpllpllpplCllllllllllllplllllllllllllllllllllllllllollllllllllllllllllppllCllllopolllllllll?Cloppl?lClolllol?CllllllCCllllllCCllllClllllllC›÷ÿÿÿÌvllClC>C>>>?llCC?llllCClCCClC?CCllCll>CCClC>C?llC>CCC?>>>Cl?>?CCA>>lCClC>>ClCC>>=>>>==>C>>CC>>>>==>==>==>>>>CA>>==>=====>A=>>=======>====›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @óÿÿÿÿÿ÷Y!qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþþÿþÿþÿàÓ855555555555585558585555555555785558555655555755575678675855755678885885555657686555575885555565576855657555855855556556676588585858555568885555565765857557556555675588555575585576558555765875555557575555576876565655557755655576755878655557576657557565565755575555865555555555678565585578jl†‚n>5655765676558755556765555567558777675785575675555565765586758556556787586755558575555755855855555575575555565557557556556657855787555556565855656556655665765556765755555755558557876555856755875657755585557576875887875855555575575555585555558575565575857866555555756ÓÓÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿüúüúúúúúüúüòÕ�plC?>CCllC>CCClClCC?Clll?CllllllCClllllCC?lllCllllllCllll?lol?llllCClpollooopollllllll>lllllllllClllllllll?lllollllpllÇýÿÿÿÿÿÌvllllllllolllllllpllpllpolllllllloooplCllllllllllllpllpllopllllollllplplloopplllplolpppllolllplllplllvllllClllllllllllpoolllllllClCllllllolllCllool?lllllllllllllll?lllllllllCCCCllCClCCCllClClCllu×ýÿÿú›lCClllCllCClllC>?CClC?>lCllCCC??C?C?=?lClC??>>>?>>>>>C?>CC>>CC>CC>>C>>>>>>>C>>>C?CC=>C>>>>>=>CC>>=>>>>=>>>>==>>>====>>>===========>==>=]úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;óÿÿÿÿÿóZ ! ! 9q«õÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿþÿèÓ55555576555587577655558555875555556765655675555655575755555558657587575556585588566675756677555685855868655755555555575567585555585875555855557585857558565586875657555567855576755565755555876775555576567555688655567655555755665665755765765555555557555555575655575555657555555585655565877855558>ikCj6867755756555567557656585675555578575656555685855585656775555865665585565655655555576556765555557767555586565678655685555555655788555556556875755555555555767557655556585685755678566755855557658555657558557556755555556557558755575756555878555757675576555555555555ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüúúúúüúüúúúòÕŸql?>?llllAC??ClCClCCCClCCClllllllCClllllCCllllllllllCllCll?ollCCplllllllloppopplllllllllllllllllllolllllllllllplllplllÊýÿÿÿÿÿ×ullllllllllllllplllppolpllllplllllppolllplllllolplllllplpplllllloollppollloplllollpopvpllllpoolllplllppllllllllllllllppppollll?lllClollClllllCllolC?llllllollollllllllllllllll>CCCllCCCClllClC?lllC{èÿÿÿè{??lllllll>CllCC>?lCl>?CClllCC>>C??>=CCClCCC>>>>>>>>CC?>C?>CC?CCC>C>A?>>>>>=>CC>>CC>>>>>>=>=>CC>=>>C>==>====>=>>====>CC>======>===A==A=Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– ;òÿÿÿÿÿ÷Y! }¬õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿàÓ5655755565667555567767586575555655577555576555565875555765575555555885556555667856555585555557556555587675555775766565565757885557557655657657565657555555555875558758855655858567585555558655555565585585575565775555575785755855658875757555556755556657555558555855755765557565765788>875656567575556556556757765657755655556555555585767565556555555855565857755855755757656775655555577555755555585555555655555557858555576555557675655555755755678675865765688776885575667785556555885577655768576575558558555567666855777856585555686855555ÓÓÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿüúúüóüóüúüüõ¬�pCCC?CCllllllllC?CllllllCC?Cll?CllCCllCCllllCClllClllll?CllollllClollCClllllllllllllClllllllllllllllllppllllplllCCllllÇýÿÿÿÿÿ×ulllppollploolovpllplllllllplllllpllllClvollllplplllllolollllllloplllllpllppollllllllpllllllllllloollpolloopllllllllllllllolplllloplpolllllllllllolCllllCl?ClllClClCCllll?loolllllClllllllCllC?lllCC›÷ÿÿÿÌtlCCClCCClCCClllCC?CC?CCClCCCCllClC>Cl?CClCCCCC??CClC>>C??C>>??>>>>>>>>C>>>>>>=>>>>>>A>A==>>>>>C>=>>>>>>=>>>===>>>=>====>>=>=>A==>===zÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9óÿÿÿÿÿóZ !    =qªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿýÿþÿþÿèÓ558586555556567665565575755555556556557575675565556756556755555657576585555655575775557557555558575585765556556655766658556765556575558756555556756755757578576556755556758557685765575566855585656856566555566555555655776676685757565785555775585557555855785865555765855555856555655556756555858867555555575857557585855676555755855875875556765555575565675575555567555655655755676565656756756555656576755565875575558555765576765555566556556765656755575565575555575575556766555575855858555568555656555687557665575555565558576765556768765555655557585855755865568875Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüúüúúüúúúòÓ�qCCC>>llolClllllClllllCCCC??lllClC?lllCllllllCCllllolllClCllllollllllClClllllloovlllllllllllplllllllllplllpoplllllllllÇþÿÿÿÿÿ×ulllpploplppvvpoloopolllplppollllollllllovvlllplplllllllppllloollollllplpoppllllllllllllllllllllloollllllpplllollllllllllooloolllovpollCllllClollplllol>llClllllllCllllCCClllolllllllllolCCllC?llCCClÌýÿÿú›olCCC>?lllClllCCCClCC>>lC>ClllllClllCCClCl>llC?CCCCC>>>?>>>>?>=>>C>>>>>>>>>=>>>>>>>>>>>>>>>==CC>>=>>>===CC>>==>A>>===>>A>=>>C>=====AñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y !=qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿàÓ56558556555555555767558575555855658558565755785585555585555555657575875556575858755557566575558555585555555555557765755585755655865555657857655558557657655655675555855565557557555555675855578585555575566557778555555555556555565568566555655658756556755555775556766757655576866877555555575655658555587658555555566856555557765555675556658756565555585565555655767677786657655565655565758555555855755885555655655565656655555655855876557558575555655555655557675555567555585877555555588555768585855585555557555555565755765757656675657576755657557655658757556585ÓÓÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿüúúúúüúúúüüò¬�qClCClCCC??llCCCCCAlllCCll?lllllCClClllllllllllClllolllCC?lllllll?llolllCllllllllllollloplllllllollllllllllllplllllollÇýÿÿÿÿÿÞvllllllllllolplClolplllolllopllllppoploollvl?lpllpllopllplllppllppllpllllllpooollllpllllollppplllpollllllllllpplllllplllllllllllClpllllloploCllllllllllllllllllllllllllllll?lloClllCllllllllllllllllCyèÿÿÿè{lllC>Cll>lCC?ClCCCCl?>Cl?>CC??C?>C?CC?C>CC>CC>>>>>C>>ClCCCC>>CCClCACC>>AC?=>C>>>>>>>>>>>CC==CC>>>=>>>>>>====>A>>>>>==>==>===>=>=>=ÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;óÿÿÿÿÿóZ    !qªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿþÿèÓ5767557655655655856855565755655556555555767566655567655555586555556585656665655555565756556555555557858575556558576555565757555758855778567555556855855585557576755585555567555675877558855575567555558555565765575655555555575555858578857675556576556555585558576758855675555575555565555768755755556675865555755765755556556778555785585555755786575655855755555665555555667685555567565875555855555556555556876755855755855677557557575665565555765576565655655757767656556885658555567558768555565557576555775755565585575586556666655765758556765555575668756575567567557575675765ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüúúúüúúüüúúòÕŽpjClllC>>CClCClCCClCll?ClllllllACllCllllllClpvl?lllllllllllllllClllColplllllllCllloplpopvppllplllpllloplollllloollppplÇýÿÿÿÿÿÙvollllllllopllllllllllllllllpllolpllopppooplllolloplppopllllploppppppolllllovpolllpolllllppvpolllpllllllllplpoollllpllllllplllllClvllllllopllllllCllllllllllllllloollllllllClllllllCCllllllllCllllllll›÷ÿÿÿÌulCClllllCC?CClC>>CCC>>lC>>>>C>>>>CCC>?ClC?>?>>>?>>>>CCClCCCCl>ClClCCC?C?>=>CC>>>>>==>>>C>=>?>>>>=>>>C>=>>==>C>>AAA===>====>===>AuüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!   =q¥ùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿþæÓ85565675867667557756565555555586758556555557576575557578557558558767566575755675755566556855555855555766755665856555757565666565685555575555865565556586555755576587565687585566555565555555556555557655555576586567555557555558555565655565855675555585655585865558765555558555576585676578565565555655556575586576758585658556555555865555757555655556555655555585585658555875558557565675655765587566556555565755755755575765575655577655678585556785656555855555557556758755657565765555756655765855557556555555758755555585656755857555767855855578555655655655575555Ó×ÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿüúüúúüúúúüüòÕŽpCCCllllCClCClllCllllCllolClllllll?ClllllllCllCClllClllplolllll?lpollllllllpllllllolllllllvlllolllllolllollllllollllloÇýÿÿÿÿÿÌvllllplllollllollllpppplllpppllllloolpolllpollvpllpolollolplllpolllllpllopollplllllllplllpolllllopollllllllllllllpllllloolvlllllClpplllllllllllpllollllplllllllolllllllllllCCllllllllllCCllllCClllllCloÌýÿÿú›lClllCCllCCllllCCllClCC?CC?ClCCC?CC?>C>CCCCC>CCl?C>>C>C?>>>C>>>>>C>>CA>C?=>CC??>>>>>>>>CC>=>>>>>C>>>>>==A>>>=>==>>==>=>>=>=>>==CßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!óÿÿÿÿÿóY!   7}ªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿæÓ6578555558555576655675565555786555565555565555558555565585586565577755567575555575656585575558656758658557558755575555585555675555556575785565765755855575557555556556765575655665855555555555556555857558655555885655575576755557655677585556588565876555685577655785555587585566766655555555578755585557576588655758556855557556585575555657575555555587558755557557555585555558755755557555655558765556587675556757555767558568565776855555557757655555765556656865555565658566557555555757765655555555578785755565585576556576755575885556557575755568558555855ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúúüüúúòÕ�p?ClClllCCC??lollllolC?lolCllClllClCllCCClCllllllll?lllpolollClllllllllllplllllllollllllllpplllooploolllllllllllollllpÊýÿÿÿÿÿ×ulllllpllpllllplllllpppllppplllplllpppollloplppvolpplpppollllloplllClllopvppllllpolpplllppollllppppllllllllllllpollllllollplpllllllllppoolllllllpplClllolClllllllll???llllllllllCllllllCCCCCCllCllllllluçÿÿÿè{Clll>?CllClClCllllCCllC??CC>Cll>>C>?C??>CCCCCCCClC>?>>>>>>>>>>=>>>>>CCCC>>CCCC?>CC>>>>CC>=>>CACCC>==>==CC=========A>>C=>>=C?==ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷Y ! =s¬ùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿþæÓ6557885655855555555557765576555868877555557557655575575655587555585755755555685785785557575557575558555555555875576555775767575756555875555675555577555775565585576755676555755555767575855556755555775557555756557555565555585575557578556555556768556855857587755557575655555557555565785575555755755775575555568557576655655575555555555675575555555555555555557575555555676565555577765655555567757555558687585555556655567558555885557576855657555555555555557555575555555555558575757566555555675755555558555555755757587555565575567576565665558758557555555755556Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüóüúüúúüüò¬�pllCCClCllClClllCCClll?ClllCllllCllllllllllllllllllllllplllllllllllllolllollllplllllllllllllllllllllpollolllllppolllooÇýÿÿÿÿÿÌvllplllpppollllololplllplllllooolplpolpolpllplplpololloplplpllpplplllpllplllplllopopollllllppllppllolplllvvlollllllpllllloolplllolllllllpplllllllolllolplllllClllllClllolClllllllllCClllllllllllClllllCl˜÷ÿÿÿ×ulCCCClCClllCClClCCCll?CClC>llC>ClCCCCC>?llCl>>CC?C?CCCCCCC?>>>?C>>Cll>>=>???A>>>C=>>>>>>>>>>>>>>>>>>>>C>>=>>>=>>====>>=>====ZóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóY !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿèÓ55558556575875575655558585575875555555777575555677555875676555585555755555855555585675577555557675575557555765555755765855655555555567775787558655585585555757855555765555555585577556557555556577555555565575856755558757755875757557558755775756758555555565555757555577557585576575555576755555557575755555675557555776587555755756555575555557555575558585757575557575758567555585885556755677578555557575855555576755855558555755755575555557575557555575555655556555555575555555556558556557775555587557575655585555565556758757555555655557555575555675555556575775557755755855575ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿüúúüüúüúüúúò¬�qll>?CClCClllCllCllllCClllClCClllllllllllllCllpolll?llllllpllppollll?lllllplllplllllllllllpllllllllllllplppopppllpolllÇýÿÿÿÿÿ×uvlollppppololllplplllloolllloploplpllopopppplloollplllpolllolpopoplolllllllllollppppppllllppoppoloppppllvvplpllllpppllllpllllloppllll?CllllpolllllClpoplllllllllllllllllllllllllllCClllllllollC?lCCClClvÌýÿÿú�lClClCC?CllCC?CClCCll?llCClllC>CCllCCC>llllC?>>CCCClllCClCC>>?CCC>?CC>>>>?>C>>>>>>=>==>=>C>>>>>=?C>A>A>=>=====>>=>==========ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z ! =pªùÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿþÿþÿþÿþþàÓ5755558555555556578757557555555555575655575555557555755758555558575557555855655585575555577555758857678778757675656555555565775566557575757755587585576755575586555577555785575557555755565757555555555878555557585758755565565556557556555555856585555787855566557567555675557565555555558775875555555887555565575555858557755655565655557555557555575757585555578575556857575575587555765685776755556555556585576577575576575555557555555565577876765755555778557565757755875575755557555556555785767555555557575655855656557785755557558757575556555575555675555575557675555775576755Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúúúüúüúúüõÕ�plCClCClllCCllCC?lllllCCCCllCllllllllllllCllllllllCllllllpllollllllClplCllollollllllpllllplpllllllllplpllllolloloooollÇýÿÿÿÿÿ×vvollllpoolpoplllllolpopplollpvllollppoollllpollpollllpoopllllllolopllplllloloololllolllplllpllllllllppllvplllplllllplllplolllllplllvp?lplllolllpolllllllolllolllpollllplllllllllllllllllCCllllCCllllClllvßÿÿÿè{CCCllC?llllll?llCCllClC>llCCllCCClC>CCCCC?C?CC?ClCCClC???C>Cl>>?>??>>CCC=>C?>>C>>>>>>>>>CC>=>>>>>>>>>>>=>=>C>>>=>=>>>>=>>=ƒýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;òÿÿÿÿÿóY ! q­õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿÿèÓ55855765555585555585765557557558555555555755555565575575557555587555555755875555575575876757755555655575855575575557575575575555875658655555557555555577556755858775755775755557557865558577755755587655875675765555875755857565576575555555855757657685588755875855555555555555555578555777557577765557555567555555575555555557585555575677556555867587555758555755756565555655775757875855655876575556555877555555578755855555555557757555555565558756767555855555755557655755765585577755555758875555755765555755556585585755555557667675855787778558555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüúúüúüúúüúüòÕ�slllllCClC??llC?CllllllCllllllClClllllllC?llolllllCllllClollllllppollllllllllpolClllpplplloppllllllppllllllllllllppoolÇýÿÿÿÿÿÙwoooplllllplllplppopppooppppopplllllppppllpllollpollplpllolllolllolopplppoplpopollllllloploplllllllpllplopplllollllllplllllolllllplpplllooolplloopllllllllllllplpvpllCllplllCllllllllllllC?lllllllllCC?Cll˜óÿÿÿ×uClC?C>CllClllClllClCCCCCl>?lllCllC?C?Cl>>?CCC>CCCCCC>?>>>ClC>>>>CC>CCC>>>>>>>CA>CCCC>>>>>=>>>>>=>>CA>=>>=CCC>>>==ACC?===ZñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Y   9s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿþàÓ655658655856858756685856576775775575875577755555675757575757875557557755765787657565755555587568555755557757577655576755577557785555555555757775567875555777555555585575555555785575755557577557855775575585565575575755757587555775555585555775558757575756555756575557575577655575775777575855557557755555775555776776775757575557555775857555575555567555855785558775555555557555576755577575655555555765555565757758575558575557575755778557555575575786765577765558765575565576575577565757855587777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüúúüúüúüúòÕ�plClClCllCClllllCllllCClllClllCCllllllllllllll?llllllolllllllClollolllllllllloolllplplplllllolllppllololllllllolppolopÇýÿÿÿÿÿÙulllolplploppolllolpooploooopooplllpplplllpololopollppppllooppllppllpvlllplllllpollollpppolooolllllpplllllloolllpollllopolloolololllllllpollllpolllllllllllllllllllllllpllllllllllllllllllCllllllllllC>llloÇüÿÿü›ollllCCllCCllClClCCC>llClC>ClClCCCCC>?Cl>CCCC?CCCCCCC?>>?>ClC??>CCCCC>>>CCC>>lC>>>>>>CA>>>>==>>>=>>>>>>>>>>>==>>==>=>>==ÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿóY! =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿþÿþÿþÿþÿþÿèÓ755555555557555778557757555757855775775575755557775775557575877677585777575575777577757555778575875577555775555757555787557577755775575575775575757577775557575755575777557555785757675757557555576575585855677585577757777585575755757555577757875755755577585755875556775565775575787555777555575576755557575787557877577565575785557577555858758557558557577775787755555757555755578557787555557775755885755575755555577855555575577557657577775575778777777775567756778577755577776577755777757555758575575558778ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúüúüúúüúúóÓŽqClCCCllCllllllllllCCClllCCClllCClloll?ClllClllCllollllllolllllollllolllpplllllllppoolllplllppoppploplollllppolopoopppÊýÿÿÿÿÿ×ullllppplllppplllplollppllplplllolppllllllpolplpppllpolllpppvvpopppoppllllppllppppppooppolllpopplllpvolpllloppoloopplplvpllpvolplllplppllollllpllllolllllllplllCC?lllCllllolllllllClllllllllllClloll?llCCllußÿÿÿè{ullll>CC>CllCC?lCCllllCClC??lC?llCC>CCCCCC?ClC?ClAllC>>>>ClCC?>>CCC?>>CCCCCClC>=>>>>CC>?CC>>>>>>==>CC>>==>>==>>===>>C={üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y   !=p¥ùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿþÿþþÿþÿàÓ7555855757758755555775555577588577775755575775755785776577875577755577857675575557775575777775558585755787755877557887577555765555755775776555555755555558555577657875777776555577765578575657555775755575755555777787575777577575757577555557577575757757555767875575557775577577555757577555575577555568757558775775755577555755857556775755757577587577575758575557755587577575757765555578756577557577577575587757777775576577755757778755557577558758787575555755555787768757555555785755575557775557757778555577575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüúúüúüúüõ¬�qCClCllllllClllllCClllollllllllllllllllllllllllllolllllllplllllllllllllllpoCllloolplllllllpllllollloppolllooppllllolllÊýÿÿÿÿÿßvllloppoollplpplovplpllpplplpllllplplplolppplpplpollvplplololoppolppllllllpvllopplppoppllppplploollopplolllppoolllolllloplllpllllllpllopllolllollllplllpllllollllllplllllolllllCllllolllllllClllllllClllllll{òÿÿÿ×ulll?CllllClClCCCCllClC?ClC>C?CCClC?CCCCC?>ClC>Cl>>CCCC?>ClC>C??>?C??>?>>CCCCC>>>>>>CC>>>>>>>=>A>=>C>=>>>=>>=>>>>==>>AáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;òÿÿÿÿÿóY  =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿÿþÿþÿþÿþÿèÔ575777757755785658575757776755778757875577575775577557557655557776555557775776575575578558577557555777755577757775557555758657576557755755758775567555775557777557575577555555775757555557786588758577575565577575877575575875755755557775875757775577557575556757757575555755875755555575856755555577578757577878557557557777555585555685575755575577775777875676775675575557555575557575577557558775855557555677557555757555777757555557575777755877765755757775577575777585757577755575555587755577757557577755587557557577577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüúüòÕ�p??CCllllllllClCCC>llpollllllCCllCllllllllCCllllppllllllCloollllplClllplllollloplpplllllllllllllllllpolppoppppllllllllÇýÿÿÿÿÿÙvvpllllpppplllppppplollllppoplllppoopllllv|olllloplpppppplllooppoopplllopopppllplpollllllpppolppplopolllppppplllllpllllpplllpllllopllppplllppllolllpppollloplpppplpvplllCllC?llllllollpollll?lllllllllllllCll�üÿÿú˜CCCllllllClllC??CCCllC>?CCCC>?ClllCCCC?Cl?CC>>?C?>?ClC>>>CC>>C>>>>CCC>>>>>>=>?C?>>>CC>>>>=>>>>>>=>>>>>CC>AC>=>===>>>›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Z  !  $qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþÿþÿþÿÿþÿàÓ555755558575775777785557785757758777787855557755775757765557855757757857757555755775775575775557575765775577567558757777755755577557575585787555575755567555775575555675877767755575557555777577775755777577755585575777785555775755576557755557765577555777567576756575776757577555557778775575857555755557575757555775555555557575555578866777785775757575577777575577855775755555578758577757558557755555557757557557775757555758757557857755778755775757757575555575757775775775777775577557877558775587875587557565575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüúúüúüúüüò¬ŽpCCllllllllllllllllllllllllllClCllolCllllllllllllllllllplllllllllllllllplpplllolllolllllllllolploollolllooppooloppllolÇýÿÿÿÿÿÌvppllolloppoolopoppopllllvpllopllpoovplllpvollplolppplpplollpploplpploplplplplolopopllollopppllooppploplollpppplllvllolopollplllplpplllplllllplplllllplllllllllolllllllllllllllllllllllllllCllllllllolllllllCoßþÿÿèyllllllllCCllC?C?lCClllCCClC>CCClClC?C>?llCC?>?>Cl>CCCC>C??CCCCC>>C??>?>>CC>>>CC?>>C>>>>>>C>>>=>>>>>C>>>=>C>=>=>==@u÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;òÿÿÿÿÿ÷Y =sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿÿæÓ7557567575775555757557787655577555777577785575757577555555577577575575777855775557557575557577555757755577777577775755777555557577777755577777775558575757557577577777575875755785755777775757676757555755757755577555775557757575577755775755775875575855557857557755557557575557755775877558777775557577757577577778557557757575557875755577757556575775555577775575775557555577577877778555557777555577557777785556755775575557555775575575555557777555557577557755755877657757555755557577556775757555755577775555557577557557757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüúüò¬Žp?lllC?ClCCllCCCllllolCCllllllClllllClopoollpllllll?llpolllllllllllllolllvvooolllllllolpppopvpllpllllllloplllpppvplllpÊýÿÿÿÿÿ×ulllpppllollppllplllllllpppllpvpllolpopplpvollllppollllllollllpolllopvppllllllpopploppolooollllppoololplpoplvppolppllpllpoopppolplllllpppolllllplllllpllolllllllllllllllpplllppllClllllllllllllCCClloplCllCCll{ñÿÿÿ×vlllllll??llllC?CC?ClllClllCllCllCC>?>>CCCCCll?CC>>>CClCCCCllCCCC>A>?CC?CC>>CC?C>>==?>?CC>CC>>A>>>>CC>==>C>=>>>>>>Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@óÿÿÿÿÿóY  =q¬ùÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿÿþþÿþÿþþæÓ7557755577575775555755757577578775777577857557577777575755757577555855778755555557555777577755757755557575575755757555575575755777755757577575577757555757776557558575555558755555557577755587555875757575555755867787755855557557767775755555585577577577575775577757755557757777758578755757757557577757758757575575587575555775555775777757855557577577755577757585575777557757555755775755755857555555757577755577555577557577777557557755755755785577575755557557577555757777775575757555757555757875555755775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüúüúüúúüüõ¬�pllllC?llCllllllllllllllllllClllllllClllolllpllllllllolllplllllplll?lplllpplpollolllllllpllopolloopoplllllpplolplpllppÇýÿÿÿÿÿÙvpllpplllpolppollpoopppppplllvvolppplplplopopplovplolopoppopllpvoloopppoplloooplovplooooooollllopllpollplppllppopoplllplplpllopopplllllppllllllloplllllllllvlllllplllplllplllpplllllllllllllllllCllllllllllllll›úÿÿü›lllllCCCCllllCCllC?lllCCCCCCCCCClCCl>CCCC?CCC?CCC?CCClC>?CC???CCC>CCCCCCC>>lC>>C>>>>CCC>>>?>>>C>>>>>C>==C>>>=>>>ƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóY !q«õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþýÿÿþÿþÿÿèÓ55557577555775757757875775657575755875577875775575755757577557577555577755777777775577755555775777575775555557755755575775755777757555577577557755785575755555577557755575775577558555755757775755775555577575587575577575577557877556778757775755557575755577577557777775675557575575755577755775775555757785777755557755855575758757575558757757575755557577775787555575557575555577587555755577775775577557575577577755557577555555775775575577785557755575775757577755575757555777775775557557775555555777777555577677575558Ô×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüúüòÕ�slClllCllllClllllllllllllCCClloplllllllllolColllllllopllpolpllllplllllllllllolopollllllllplpolllpppllpolllopolpllloppoÇýÿÿÿÿÿÙvllllppoppolllllpllopvvollllpppllpppopllllpppppv|olllpvvvplplppplppppplllopppollpppppppopolpooopllllplplllollllpppplllppoollllplppllpollllllllllopllllllllppplpCllllllploloollllpollClllllllllllllllClllllollllv×ÿÿÿè{lCCCCCC?Cllplllll?ClCCC?C>?>ClCllll?>?lC>C?>ClCCClC?CCCC?>>>CCC?CCCCCCC?>CC>=>>CC>=>CCC>=>>>>>C>==>>C==>>C>==>tèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9óÿÿÿÿÿóZ !    qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿÿÿþþÿþÿþàÓ555755755777755577775575777557557577577575577757555787758755755577557757757757555578757775558575777557557557777577875575775757755775777777777557765575777558875775555775557557757775777758575757557575555555775575775875755557877755755575757575777575585757555775755575757575557577777575575757757775557557757757775575757775755575555757755677565577757555575757575557877577757777777755577865775755775755575555857765775557757757557575775775757757757758557757775577575557775777555557557757575575755758555575575755777555575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüúüúüüüüòÕ�pCCllCCClllClllllCllllllllllllllllllCllllllllllolllllolllllvlllllvolllllllloplllplplllllllloplllpplolpolllppllppllllooÇýÿÿÿÿÿßvoopoloppoopllloopplpvpplllpoplpopoppopplopplplpvooplopvppllloppoppppplpllopppllovplplopploppllppllolpollpppollpopplllpplpllolplllloplllllopllollloplllllpollplllolllllplllpllllplllllllllllllolllllClllllllllll{èÿÿÿÌulllCllllClllClCCllllllCCClCCCClllCllCl??CC??llCCCC?>CCC?>>?CCCA>ClC>>>>CC?>>>A???>>CCCC=>>C>>>>>=>=>>>=>C>=>>�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y   !q¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿýÿÿþÿþÿèÓ7585557577755557575555575555778857575555555775578757787777555555575755775587757755557775777557755757557575577587555775555777557555577557557775778777755755775775557577775557575575755558557575555775777757577877575577777557577755775578577575757577555777757557578555577555575555755775777567775575777757577775555765675555777777757555587757575577777757775587575757555777557555577775577777657575755775775755555575555757775575775555755575777577558557775555577777757577755555777575557577575777775755557757755775577555Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüúüúüüúúüò¬�ql?l?>CllllllCCCCllCCllllllolllC?lllll?llpllllpollollpllllppolpolppppoolpopplllllppppppolllloooppllppllppppollppplllplÊýÿÿÿÿÿ×vopollpolpppooopovvolppllpppppoppollplpvvppllllovpopoopooolpollplllllolppopollloppolllollopvplppplloloploollplllllllllpplllpllllllpllllllopploolpllpllopolollllllollplloollopllploollllllllllllllllllllllClllCCCl›÷ÿÿü˜olCClllllllCCCClllloolCllllllCllClloC?CClllCCl????>>>CCC?CCCCC?>lC?>>>>?C>>>CCCCCC>CC>>>=>>>CC?>>=>>>>=>>==>x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y!         =wªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿÿýþÿþÿàÓ575555757575775756785575775775555775778767575755875557577757555575775855575775555575575555775755777555575575755575757555755777758577575557575775575855577775575757775577557557557575757575757575755557877777575657775755855655775575577575585755777557657555777755577777557555775855755577755775775775557577557557755755577555778557575557575557555575777777755757555577757557575755675577575577555757557577555577755575757577775757575757777787555557755775775775755555787577755565757755577575777755778757757758577557757777777775577655Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüüüõÕŽpCClllllllllll>llllllllllllllllllllllllllllllloolllplllolllloloppllvpoplllplllllllpllollplllpplopplpppllopplllopolpoopÊýÿÿÿÿÿßvpppoloollpppppoppppllloovvloopppllppoopvplplplo}plooopppplpolooolllppppplpplllopoopplllloppplopopollpoopllpoolpplllplpoplololllllpplloolpllpplolollpplllllolllllllllllllllollllllllllllllllllllllllllllClllllllClÌýÿÿè{lllCllllCClClClllllllClolllCCllCCll>>ClCClCCCC??>??CCC?ClC?Cl?>>?>>>?>lC>>>>C>>??>C>>A>>>=>>>>>>>>>=>>>>>=CßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ#òÿÿÿÿÿ÷YqªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþÿÿþÿýÿÿþÿÿèÓ55577755755757755755575775757575777576755875777875575757775777757755757775575555557555577577577555555577575757557555577757557757775757575757557575777577555557775755855555775558757558577755755555555757775577777875557755785757557755577777755775585575757757555757575775755755555575568757577775755775575557575775575557575757557775777575857785757855755755577577757577775755557557557675555657575757577757757575775555775775757555777557757775655557557757755777577555775757757577557575555555557755855557555557775575575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüúüüúüúó¬Žo?Clllllllllllllllpollllllll?loollllllolllopllopollllololll?lolllllpppplllollopollllopllpplolllpppllplllllllpppoopppopÊýÿÿÿÿÿÙwolppllooloppvplllplolpolvpllpllpopppoopppoolpllppllpoppppoollppooppvvppllpppolollppoolloplppllolppoppvpoloppoooolloovolpooppopvppvplpppopoopplpplllllllllopplllppppllllllllllllllllpllllCllplllllllllCCClllllllllvçÿÿÿÌolllllClllllCllClC?CC?ll>?CCllC>Cll>>lllCl>CllCCClCC?>CCC>>?CC>>>>>CCCCCCCC>>>>>===>>lCC=>>>>>>CCC>=A?>>C>”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóZ  =s¬ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿýÿþþàÓ5555575777555577755788757557777755757757755778787775577757577757577557757577557557555755555555877555777777575777755778575555575557575775567585758577755775757577857755555757775577777757777785577555757577777557778575577557777775555755857575577775765785785757755555777555555575575575755777575755587785755575775777755777578765757557758577578557757787577575557587755755775757577755755777575555576555775557755655775755555777585555777577777575556575757777575565557575577577755775775755777575557577775575875557ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüüüò¬�plClllllllllllllllplllllllllClplllpllloolllolllplllllllllplllollplloppllllloplpllllloolpvpolllplllppllllopllopppoppollÊýÿÿÿÿÿßvoopppopoloppppopllooppolpvoplplploppppoopvolppplpplvplpppllpopvoplppvplooooppppoloppoolopplooopplolovpppllopllppopllpooppllpplppppooplpppllopllolppllllllllollplppvlllllpllllllllllllllllllolllllllllllllllCllllll˜÷ÿÿý›ollCClllClCllC?llC>l>lll>ClllCCClClCCCll??CCCCClCCCCCCC?CC??CCC>>>>CC>?>?CC>>A>>>>>CC?>>=>>>>>CC>>=>C>=>CñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ9óÿÿÿÿÿ÷Y qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿþþÿÿýÿÿèÓ55557577557755757557765757557758777577575757775777777857557775777777585757775777755556775755575577777577575755775755577575575757877775575775777757755575755757755775575777755577555775777777877557786775575575755577757775577575775758785775775777775577578578787775575577777757575577777558557757675575755775555555775775555675575575757577575775575775757557556755557757557755777575777757575577575777777775755875657777575775557577777755575777775776Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüúüúüúüúòÕ�sllCClllll?lllllCllllllloll?CClllllppllplopol?lllpppollllppllpllllllllolppppllllpppvploppllllllollllpvppplooooppollppoÇýÿÿÿÿÿ×uloolopppolppvvpvppvpppppvpppoolllloopplllpvppppolppppooooolpv}vopoplllloppppvpooopvpppllllopooppppolpolplpppoppvpplloppollpplolplpllppllllllllllppplpolllllppllllllplplpppllllllppllllppolpllllllClllllClollClllCClÇýÿÿèy?CClCCllCClll?llCllCCllC?CC?C?CCClllCCCCCl?>???>?>??CCCCC?>>ClCC>>CC?>>>CCCCCCCCCCC>>CC>>>=>CC>>>>>>>>>ÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY!! ! pªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþþÿÿþþÿÿýàÓ775557577777578575577757557767575757587755775787577755777558557757775677775775778557777757575578755777575555777755777555755857577777577557585757557777777757777777755567777775757757575757775567755575755777577575755777757777755755557777557757557775558575755757775775755557775557755757557775757557775577777777577777755557575775577757777777555555775655787775755575777777775777577557757557757575775555555755585777577777575777757577775557575685557577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüüúüüù¬�plllllllllllllll?lllllllllllllplCllplllolllllllllvoloolllllllllplpllllllppplplplppppollppopllollllllvpllpploplppoollpoÇýÿÿÿÿÿßvoploppppoplpppppppppllppppvpooploopopvolopp}ppplppppplooppoop|pplpooooppppoppoopoppplppplloooopppppooplpplpplopvppllppppllopplpllpllppllllolplllpllopopllllpplllolllllplolllpollolllllpplllllllllllllllllplllClllllußÿÿÿÌulllC?lllClClllCClllCllCClC?>lCllllll?>ClC?C>CCClC>CClCCCC>CCC??C?CCC>CC>?>>CCCCCC>>?C>>>>>>>>>?>C>=A>x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;óÿÿÿÿÿóY $pªõÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿÿþÿÿÿþÿÿÿýÿÿèÓ75755558757555557877757777775757877775777777755777557577757757775777777577757557775557575757757557575557557757577755757577577577757777757785785757777555775555775575557557555777857577757777775777577755757555777577577577777575777557557757777775775557575575557777575757777777755575777577555557555757777557755775755557775775555575775777775757777775557555777555758757577557577575757775577557757757555557777558777555577575557575577755777577577575557757556577777775575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüúüúüüòÕŽpllolllCCCllolll?llllllllllpllpollpllllollllllolllljlpollllllplpolpllllplllooopvpllllollllppplopppopplllppvppolpppollpÊýÿÿÿÿÿ×ulllppppppppolllppoppllloloppppppppoloploppoplpplooloppooopppopplopppopppppppppppppolllppovvpllppvplllolllppppooplppllpllpoloollolpvpllollopopollllopvpppllllolllpllllllollllllllllvplllplllloppplllloplllolllllllCll{÷ÿÿý›plllCllClCClCCllCClllCCCCCCllllCCCCl?>llCClllCllCllCCCl?>>>?>>>?CC>>CllC>=>?CC>>>>CC>>CCCC>>=C>>C>>>Cßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿóZ  $pªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþþÿþþÿÿýæÓ7577755757755577575557557757575577757757777577777577777757857777775775575755557775775575757777777555775775777577757557757577757577577576757557775557577575555555775757557757575575755777757555775777757755557757575577777577575577757557555777575757775775775776777577775577775577575557775775757755577775577757555777755777757575575757557757755757777777755756655575775755777577557557755577775777577755777757777777777775757558757557775755557755757577575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúúúüúüüú÷¬�sllollClllllllClllllllllllplllpolllllllplllllppllolClvlllllllplpllolplplolloplopooplpolllopppploppllplooopppppolopolppÊýÿÿÿÿÿßvppppoppoppoooploppppoplpooppopppppplpoppplpppppppplppplplppppppolpopppppppppppppvpooloopop|plolovpllppllppopppllooppopllpplllllvopplollploopvlllllpololpvlllplllplllpllllloolllllolppllllllllllllllllllllplllolll?Cpo�üÿÿò{lllClllllCllllllCClllCl>CllllCCllCCCCCCCClllCllClC?CCC?>>?CCCC>??>CCCCC>>>CC>>A>>C?>CCC>>>>>>>>?>>>›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9óÿÿÿÿÿ÷Z!!qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿþÿÿÿÿÿÿÿþÿÿæÓ7575777575757577557587577777577757575777777757877575555777777575775577777757577577777777777575757777755757757555557777575857775757557775757757757777577555767757777755777775775757575755555777777757777577757777577777577777775757777775777555777575777757575577775775775557755757777777775775757557577777577555777777857555555775757777757755777777755757777557767755567755557577575757775575755777577775757775755777755757755775755555775575755757577755755××ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüúüòÓ�q?ClpllllCllollllpplllllllllllllllllllplllllolllpvlllplpppolpvpllllppollllllpplllpvpollpppvppolppllloopoolooppollllovpÓýÿÿÿÿÿ×wpoolloppooppppplpolplppoloopolopolloppoplloolllppppplpplppollpvpploppooooppoolloppppoopplpvvppllpppppvppvplllllppppvppplpvpppoovpollllpppppppovplppllllovvppppllolppppplllppllpllllllllllpolpllllllllllClllClpppol?oouàÿÿÿ×tCCClllllCCCCClll>?llllACC?CC?>CCCCClCC?>???>?CCCC>>??lllCCCllC???llC?CCCCCC>>>llC>CCC>>>>>>>>?>>>tñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;òÿÿÿÿÿ÷Y  !! ! !  =}ªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿþþþþþÿþÿæÓ5577775555755777755757755555777777775777775757777777777777577575575775755755777775577557775577575777755777777778575557557777777757775777557557757575775557557575757757757557577777775775757775775575557757557577575757757575758557757757755777755555557777577575775557575755777575777777777577557557775777755775757555757557777757577777577577777557755577557577555777577575557777575775577777575777575557757575557777577557575777777755777757577757775755775757775765757757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúúúúúüúüüù¬�pCllllllllCllllllovlllllllllllllllolllpllllllllopopllllpplplppplllooopolpllppppllpppppolopppppolppllopooplllppplopopopÊýÿÿÿÿÿßvppoolppplovplpoppplopoppppopplppoloppopvolpppllvppplpvpllppoopppoooppppolppppllpppppopppppppppplpoppooppppoolllopopvpoplppopplppooollppllppplpvllpvlllloopppllpllllllopollpppolllllllllllplllllllllllllllllllllollllll{÷ÿÿý˜CllllllllllCll?llCllClllCCClCCCl>CCCllCl?>?>?CCACl?>CCCCl>>CllC>?CCCCCC???>?>?CCCCC?>?C>=>>CC>>>>ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y  =}ªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿþÿÿæÓ755577777757757767777777755775575787757787775757757775577577558575577787577575777755778576775577755775775557555755775575577755775575575557555555757777575757555577557757777787575757777777757777757757577777755777777557577755757555775755777575757777755755777575775555757575757757757755777777757575775775575557755577577577557575577555775757557557777577577767575677557755757777776575777757577555777775757757777777775775757577777577557575555577575756577757575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüúüüòÕ }ollllloollllClollplllllllllpllllllllllllpplllllllopplllllollloopplllopopllollolllpopllpllolllppvvolpollpppoolopppplllÇýÿÿÿÿÿÙuolpoppvpopvllllpvvpolpvpvvopllppopppppv|pppppoppoppllvvppvppppplppplppppoppppollplpppppollpppvpvppppllppoppppppppplppllllpppollpppllovollllllppllovpolllplollpvppplopopllllllllpvvolllllllllllllllllllooppolllllCCllllCÇýÿÿñvllllCllllooolClllll?llllllCClllllC?llClC?CCllClllC>CllC>>?CCCC>>CC>>??>?>>>CC>>>CC>>CC>>>>=C>=={÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY!      =s¥ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿýÿþþÿþÿþÿæÓ7777757557557577577577577577757577755777775775777777757777777777555757775757585577577575775557577757777755755757657777777755775575777775755767757777575775757577777775757557577777575577577557755757577575557757777577777755775577755575557777757557775555775575757577677775775777757577775577577757555557757775577777775757557757777757577777577777757557577565577555557857775777755757777755775757755775777777557777777775757575577777777577ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüüüòÕ�}lClllllllllllllllplClollloollllpllllllplpollllllolloolllpllplploolpploppoollllopllopllopplopllpppplpplplooopopvopplopÇýÿÿÿÿÿÙvlppppppppppppplpppvplopppppppopplppopopvpppopvpoovpooppppppppppolppoopppppppopplloppvvpplooppppppoopplpoppopppllpvplpllplopplllppollpvpllllolololopppolllolllopooplpppolllllllllvvllopllllolllllopllllpllolllllCllllllluèÿÿÿ×uCllllCllllllllllCllllClllClCllllCCCCCCCCCllllCllCCCCCCCCCCCCCC???CC>?C>C>>?CC>>?>>>C>?C>>>>>=CáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ ;óÿÿÿÿÿ÷YqªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿÿæÓ575757757575577557577577757557755757575877777577777777775577757757575757757577757557775777757555775775757577585557755557777775575757775757777557577775558575555775557575557777757575777777775577557775775777777577777775755777557565777557575577557757775557575577575555575777577577757575777757555775775777575555775775558755557557575757775577755555777757775757575777757577757775557577575777577755576777755777576775577755775775555575557557775755777557755755555Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüúüúüüòÕ�p?lllllllCllolllClloloplClllllllll?lllvpollolopolplllppopvvllllopoppllppplpoploppllopopppollpplpplpvvppoololopvploooooÇýÿÿÿÿÿÙwvvvpoolllppvvploolpplpopoppolpp}ppolppppooolppplpppppppoppvpppolpvvpplopplollppvpppppolopppppllloppoloooppolpplloplllpvvvplpplloopvplpppvvppppppppllllppllopllppolllllllllppppllpplllpllpllpppolpvplllllllllllpoplllllll˜úÿÿý”llllolCCCllCClll?ClCCllC>CCll?ClClll?ClClCC??CCllClC??CllCC?CllCC?>>>>CCC>>?lC>>CA>>>ClC>CCCC›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷[     !  =q¬öÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿþÿæÓ5755775555755755575777785775757577875777777577577777577557777577757757557777575577777775557555757777775575757755755757577575555577777787557777555577577577777777577775757555577775757777577775577755777555757557775575557757757577777877577785557557557575757777757775757577577757777577775777755777757557757575575777575755775577557755775775757575775775755555555777577575557777755757777757585577575575575575577577777557557577577777777577578Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúúúüüüüüüõ¬splllllllCllllllllllllpllllolllplllllllppllopllpplpollpplpppolpllpppllppllppppolopllpopppopllllpppplpvppoooopopppopopplÇýÿÿÿÿÿßwpvpppppploppoppooopppplopppplov}popoppploopvppplpvpppppopppppppooppvpolpppllooppppoppppppppoopollpppoppppppollooloploppvplovllllo|vlolppppppppopppolpplplovolllppppolllollopppllpopllllllllppplllopvlllllllolllppllllllluÌþÿÿñvlClllllllllClllCCll?llCCCCCl?llllll?>llCC??CClllCClC>ClllC>CCCC???CC>C>>C>CCC?CCCC>CCC?>>ACvòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Z!=s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿþÿþÿÿþÿÿæÓ575577767775777775777557577877575577777757757757755757575757777757785557757777677575777777575775577777755577575757775757577577677765577575577855757777757757577755777755775777785655775577577577557775557555555555555555777557777757555775577555575557577555677757557777775775757775776755577777777577575777777575555557757777577775558775755757575857575777757757775575775755777577757757777555775575757775577775755755775775777777557755775555777577757575557575757ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüúüüúüòÕŽpllllolllollllllloopllllllpolloollppolllllpllllpoollppllllllppollollpvolloooolpopppoopplloppvvplplllvoopppppplpppvvvpvÓüÿÿÿÿÿ×ulopooppoopvvpppoopv|ppoppppvplvvppolpolpvpp}vvpolpppppploloolpvppoppv|pv}vpvppoopppoppvvpppppoopppvpppppppppppppppolpppolopvvpvplplppplllllppllpooppollllpvpoolllllollolllppollllloppllllloplolllllpplllllllllCllllloolllvñÿÿÿ×uCollllllllllClllolCCllllCCCClC??llClllCCC?C??C?>>?>>>CCC?>>llCC>>ll?>>>?CCC>?????>>=>>>?>CÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Z!   !  !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþæÓ7757577777575587857777777777777778777757757775777777777777777777557777775777755557757575757575775557755775565755555555557777555557757775575757575755755775777555757777577575757577777577755757775577577777775777557555675755575777577557555777757877575577775557757577757577557757757575777777777575757577575575755577755777777755775575557557556557755557577777775557555757777555757555775555555575557575577775557757777555755555757777775775575557575757577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüúüúüúüüüõÕ�qlllllllppllllllppllllloloplllllllllpppollollllpppploplplollllllloooppollpplpooloppllpopolpvvpollllpppoppppppllovvvppvÓýÿÿÿÿÿÙvoooppppolpvppppopppvppppppp|pppppvloppooppp|vpploppoooopooloovvplppppppppvvppppoppopppvvppppppppopvvppppppoopppopppppooolopppppvoolpvplpllopvllppopopllopppppooopollollpplppllllllllollllllllllllllplllllllpllllllllplllll˜üÿÿý˜lloCllllllllllllClll?lllllCllC?CllCClllCCCC??>>C?>>C?>?CC>?llCC?>Cl>>>>>>lC>>>???>C>>>>?>{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿóZ! !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿÿÿþÿþÿÿèÓ77577777777757775577577557777875777777775757777757775757777577777777777775757777777577777577555777757575757775557575577755575777757777557767675777777577557777557777757577575575755577577575555755757577575577775557577557575557557777777757777757565757775757757755755755757557557555577557757575777775575557575577757555757777577558575757577755575575755575755757757557557777557757557577577557777777557557755577575755585757777577777757577557755577557577575577755776557777××ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüúüüüüüüüòÓŽqjCllllppllppollplllllplllllllppolllpolllllppoplllloppllllllppvllplollolopplplpplopplollppolpppvpplopvpoplppppooppopppÊýÿÿÿÿÿßwppppppvvpoppoppv|pvpllppvvpplloop}ppoppppooppplppvvppppvpppvpppppvpoooppppvppv|vppppooppooppppppllppllpppllpppopppppolppppploopppppvllppvllpplllplplplloollopollollopppolllllllollllppopppllllpppllllllllllplllllpollllllloßÿÿÿòvoollCCllllClCll?CllCCllllCCCllCCllClCCCllCCClllC?lClCCC?>?CC?CCClC??llCCCCC>>>?CCCC>>>>Cßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– @óÿÿÿÿÿ÷Y! pªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿþÿþÿþÿàÓ575575575757755757775767577777755757777775775777557777757775577777555757775777778777777775577577557757577757557767775755775755755777775777557577557757755577755555557757555577775757577777777777775577755775755575777557757577555575557575577775577557557757757767675577775575555777775557575775757777555757775557557757557757757575557777577577577557657775775757577578557775577775755777775775777777555757577775557575557575557757755577575575555555575577775555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüúüúüúüüù¬�wlCllllllllpppplllllllooplllllpopplllollllpppopllllvpllllllooppllpplolplpplpplppolpplpooppplloppooolppppplopvpooppllplÊýÿÿÿÿÿßwppppppvpppopppppvvpoppppvvppllolp}pplpplpopppopopvv|ppvppppppplpppopppppppvpppvvvpppopppllppoppppppplppvpplpppllpppploopolpopopvppppolpopppppplllopllplpplppppopllloloppooollllppolollloopollopvppllllllplllllloollllllClllyõÿÿÿÌullollloCllCCll?CClllCllllCClll?llCClCllCCClllC>?ClCCCCC?>??lC?ClCClCClCCCCC>>?CCCCC>>>›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿóY   9pªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿÿþÿÿÿþÿèÓ757757577577777555757557775777577577777777777577787777777577555775777577775575577777557775775577755575777757555567575575555755755575777757785577575777575777777557777577567575757775755757575755755757757577757775757557755557557575775755775757777755677557557775557755555767557755557777577757767777577757755775577775557777755575577577557557555556755577755757755775557556557557575777775777577577757577757577577755777757555757777557575577775577757657777555775555777757775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüòÕ�}llvplllllllllplllllllllolopooolplllllllplllllllpooplpppplppppllpvvppooloopvvllllpoloopppppvpppppppppollpvpppppopplpopÓýÿÿÿÿÿ×uopvppoppppolppopppvvvollppoplpvp|vpvvvplpppvpoppppopvpppppolpopvvppvppppoppoloppvpooppvplpvpoooppvvvplpppvppvvoopppvpoppplppoloppoppppploplploppppvvpollpllllpppppolllpllollppppllpppolllllllolllllllllllllppllpllCllpplllol�þÿÿý{lppC?llllCCllllllCllCCClCllCClCCCCC?CCClCCllCClC?C??CllllCCCC>>?>CC>?CCCCCC?>>>>>>C>?uñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Z $sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþþÿÿàÓ5755557557577575775775577577777777777787777577857757577777777777777577777787757757777757777555757777575557775555757565557777577777755757555576757555755575777565757777557577757777757575755777555755775755757775577775555757575757757755577575777575757556575577757577777777755775775757755757575775775575557575755555775757577775555557775777575757777775765575555777777775755575775577755776575577557575557855575777777755557757775757557775555776777577777557757777758Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúüúüúüüüüõÕ�qllppllllllolllllllllllollopppplpllllllpolllopoppplllpppppppplllpppppvpopoppppollppllpppppvvppppppppplplopppppppllppppÊýÿÿÿÿÿÙvoppvvplpvpoppplppp}}ppppopooopvvpppvw|ppplp}povvpoppppppppoppooppppppvvplpppopvvppppppppppvppooppvpplpppv|ppppppoppppppoppppplloopooppplpopllpopppppppolllplllppvvpplllllopllpplpppvpolllllolllllopplllllpppllpllllllvplCloloßÿÿÿèuoolCClllCClllllllllll>?llClCCClCllC??CllCCllll>>?C??>ClllC?CCC>>CCC?CCCCCCCC>>>>>>>?ÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!óÿÿÿÿÿóZ! !s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿÿÿþÿèÓ7777775757557757555775755775777777785775777777877577777577575777775777777775777777775777575557787777757557557775777775575775757577757777757755777577577557575577575767757777757757575777575757577577577555555777557575577555755557757577575757777778757577775757557755577777555777555775757777575775757757575555757777775757757557555755757757777757777555575777775757757557577757757555877755575755575555577777787557775557757755777575755857577557777575757777555557757755557577555777755775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüúüòÓ�qjClllolllllllllllplllpllolllllloplplppollllooollplllllllpolllppollplpplplplopvplvpooppoooolllppvpppoppvppooooppoopvpoÊýÿÿÿÿÿÙvvpopvvppvppvvppoolpppvvvppppvpppplpppvpppppvplpvppolpopvpppvpppoppopppvolvpppvpoooooopppvppvppolplpppoolppploppppooopppoppppppppoppoopvvpllloppppololopopvppoppllllplvppolppopllllllppppllopolllolllllollplloolllllplllllllll{úÿÿÿÇlllClllplllllllplllllCClllC??llCC?CC?llCCllClCCllClC??CCCC?>>?>ClC>>?>>>>>CC?>?CClCxòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y     =sªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿþÿÿþÿþÿÿàÓ7757577777757775575777575777778777757777757777775557777755775775777757577775777577777575775557777557777757577557577577775577777757775777777757777775577757767777757775577775575577777777577777757777757777777577577777577757557575557577575775577775577755777757777755757777777577557755777757577575777775777777557775775757777757555775577877777778577755577777757757777757775577757777575777757577755577755777775575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüúüúüüüüüõÕ�plllllpllllllllollplllllpllllllllppoplolllpplpollolllllllpololvlllopllplopolpppppppopppoppollloopvppoopvvppploppppppppÓýÿÿÿÿÿßwvvoopvvvvvppvploplppp}pvvppvpppvolpppppppppppopvpppllpp|vvppppppopppvpppppppvvpppppopppvvpopppppllpvplopppoppooppplloppppppppvvpplppppv}voollpopoopllpoppvvoppppllopppvvllpppolllllpooooplpppllllllolloppplpplpllllollllllllllÆÿÿÿú{lllClllllllllllllllClCCllC??llC>CC??ClllCClCClllCClCC>>CCC>>>?ClC?C>>>>?C>CC?CCCCC×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z =s¬õÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿþÿþÿÿþÿèÓ777557775777755757775777777877757777577777555777775777575577577757775777777555577555555575775577577757755775755757575575775775557775577575777775567557575757777585577775775757777557777577777577777557575777777767777777575775777755757767777777775775757557555577775775557777757577757577777557757777777777777577577757557755757557575757755777777775858777575755577777775757757777577777757755777757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüúüüòÕ�qllllpllllllollllllllllppollppoolloploppllppolllpvppolppovppolplppopppplloopopplpppvpoopppppoppppolpppppppppppppppooolÊýÿÿÿÿÿÙ}vppoopppppppppopppvpvppppvppoopvppvppppvppplpppvpvvpppovppvpopppppopppppoopvpplpppoppppppplppv|vppppopppvpooppppppoovpppooooppppvopppllpppvppppppppllopplpvppolllppllpoollooppoolppplplllllllppplllvollolllllllllllllCCpplllllvèÿÿÿßllloololllllCCllllCllllClllllllllllClClll?C>llCClllCCClCCClCCCClCCC>?C?CC>>>?CCC>ƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y !!!qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿÿþÿÿàÓ55775757577755755557777777777777755777777777777777775777575757777777777757757555777777577577777777775777777777577577777757777777555577577755775777557775777575575757755785577777577755777755555777775757777777777577755755775557775757755777757775757757775577777777555555757777755555577577577757756577775777777557777577677777777575757777775575767757577577777777777775577577555775577777577755777757777555577757757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüúüüüüüüõ¬�splllllllllppolllllllllpppllppppllpplolopooplllpllpopppopppppoopvpopppolloopoppllv|ppppooppppppppollppplopopppppppplooÇýÿÿÿÿÿßwpppoppppppppplpvpv|vppppppvppppppppppvppvvppppppp}|pppppplppppppppppvppplpppplpppppppppplpppvvppvppplovvvpopppppppopppppopllovppppopvpllpppvpppooppllppolpvppllovvollopolllllpppolpplpppllllllopllpplllplllllllplllllCllllllloo†üÿÿÿ›llpvlllClll?CCllClllollllllolCllllllCClClClll?>CllC??ClCClllCCClC>CCCC?>>C>>Cl>AßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Z!   =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþÿèÓ7757775777775567757557777777777777778777777777777777577777777577785755777777777777577755777777577777777775777775575777777575557755557557575757775775777557765577775577777575775777577776777757575755777755757577557767757575775577555777777757777577577775777755577555777555757775577757757778757557755577757777575577557755775775775775777777557578575757577757577775ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüúüüüüòÕŽpllllllllllllpllolpolllollllppllllpooollllppooppolpoppolpplloppolpppplpooplpppvlloplpovpooppppppvpppvpppvvpoppppvvpoppÊýÿÿÿÿÿÙwpopppolplpvvvp|poppppppppppp|vpopvpov}poppppvvpppvvppop}vppppvpppppvvpppppppppvvppppppvvpoppppopv|pppopppp|pllvppvpoplpvpvvlppooppvvppplloopppvllpppppvplopopolpvpopolplopppoloollppllpplplllploollppollllllllllllllollpplllllllÊÿÿÿ÷uCoolllllvllllCllllllCCllC?llCCll?>CllCl?CCCllCCCCCClClCCCCl?CCC>>ClCC>>lC>>ClC›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY ! =qªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþþÿþÿÿþÿÿàÓ577777757777577577777777787777777777777777777777577777777777775577578775777775777777775775775777577755777757757778557757777777575777777755575777577777777575755777557577777777775757755775577777755577755777575777577557755757555577577757557777577557557775575777557577557777577777757777757777577577877555577755577777757555757775757775575577757777777755577777777575775775757ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüüüüüüüüõ¬Žplpllpoolllllllllolllllolpopollplllllllllploppppploolollppllloppllppplpppploopppllpllppppppplopvpvppvvpv|vppoppppvppooÓýÿÿÿÿÿßwppvpopplplp}|vpvpppppvpoppvvpvvppvppv}plpvvpv}plpvppoppvvpppvvppplp}}vvplopppppp}ppppppppopppplpppvppppppvpplovpopvppoppppvppplllpvvpoollpppvppppvpppppolllopopppppvpplllpvvvpollllllllopplloppplllppllllolllplllpoloppplpll?lCluñÿÿÿ×llplllllllllllllllllllCCClll?ll?CC>CllClCClllCCCCClClCCCCCCCCCC?>CCC?>CC?>?ClvèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ#òÿÿÿÿÿ÷Y !   =sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿÿþÿþÿèÓ5757577777577775757577777777757775755777777777787877777777777777755577777777775757577777755755557777757575757777555875777775777577577777777577767577577777577557855777577577777777577555777787775757575755775755577577777757758777757755757777757757575577777775777777755557577755577777777777777755575757775777575555775575775757575776777577577755777577575567557775577757557757757757758577577777777777657775777777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüúüúüüüòÕ�qollllplolllpolllllplollllpllloolopppplppplooplpolppppolpvpppoppplppvplppoopppppvpppppppppppppopopppppopvvoolopvpppvppÓýÿÿÿÿÿÙvvppplp|ppvpppvppppppppppvppppopp|}plpvplppppp|popppvpppppppppvvv|povvppppv|v|popppppppppppvvvppopppvpppppppppppvpoppppppppppoppppvppoppppppppllpooppooppppppvppolppopolpplplpolooollpplplollpoollloollpllllllplllplllllllpollllol˜ÿÿÿþ{lolllllllllClll?CllollClllllCCllol?ClCCC?ClCClCCllCC>ClC?C??>?ClCCClCC>>C>>CÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿóY   !!pªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿþÿàÓ77757777777777777575777577777777777887777777777775777777777777577777577777755777777775757777775777575757777757655775757777755777757757777775777575575755557577777775777755777777757577757757777755575755577575577655775775777777757557577777857775775775577577557577577777777775775577777575775575775777757775777777575777777777577777756575775757775775578557577577575575775755575777777557777778Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüüüüüüüüù¬ŽplpplpllllllppvollloppllollplllloppoppppppolpplloplpvpplpvvppvoppplpvppppppvvvppppppvllovpppllloppopopvvpopppppppppvpoÓýÿÿÿÿÿÙwppoppvvvv|voppppppppvpppppppplppvvpppvplpppvp|vplpv}vppppppppp}}}|pvppppp}}}vppppoppppplpv}|pvppppvpppppplpvpop|pppppppvvppoopppppollppppllpppoplloplpppvpppppvllppplopvollopploppollppopppllolllllploolllolpollllollllllpllllloovßÿÿÿñoll?lllllC?lopl?lollllllCCClClloollCCCCC>?CCCllCCl?>Cll??>>>?>?ClC>CCC>lC>>uñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Z!! qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿþÿþÿÿÿèÓ7755777755555775757555557787778777777775757777777577777877777777777777777777777777777577777577575757575757777777755577777577575776757577755777577777775755755575775775577777755575577777757775777777575777755575775575577775775575577755755567577775557755577777575777777755577755575766775757777777575577757775777555757555557775577777775575757577777575777777557777777757775755575755755777755577777777775777777757777677577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüúüüüüüüòÕŽpolllllllllpllollllpoollvpllllppoopppplollllppoopvolopollpolppooplopopoppppppopppplp|plv}pppopop}pppooppopppvpppppvpppÊýÿÿÿÿÿÙwvpopppppvpvpppppvpppppopppppppvvppppppvpppp|ppppvppvvpppvppppppppppp}oopmv|ppv|vpppppvvpppppoppppppppppvpop|ppv|plpvpoppppoopvpppppopppppllvpolpvpppoolpvplplpwplpoollvppppooollppoopplllppopplollpppolllplllloolllllpolllplllllllüÿÿÿÇolCllllllllllllCllllllllllllCllCCCClllCCClC?lllCCCClC?CCC?CCCCCll?>CCCC?>CÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY $qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿþÿÿÿþÿþÿæÓ755755757577777777777777777777777775777777777577777777777757777757777777575777777577575777775757777777777757777757577775775555577777575577777557777775777777577575575777777777775757777777577555775775757755555575757555757577777777757775777577577775577577777577557757775755755777777755557757557575555775775575577775757557757777557756575557577757555775775777775775557555775757ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõ¬�plllllpvollvpllllpolollolpopooppppolllopllllpplloplopolllollvvppplovpllppoolpppppolpvpppppppppopvvppppllllp}ppppppvpppÊýÿÿÿÿÿßvvppvpppvppp|ppppvv}vpppp}}vvpp|}popop|vv|plplopv}pp||pppp|||vpppppppppoopvvlopv}}}vplpvvpppppppvvpppopvvvvvvvvvppppppoploopppvplllopppppplpvppplvvvplplpvppooppppoollllllpvpopplopppvplllloppppllolpopplppplllpollllloplllllpplllloÇÿÿÿývCCollllllC>CllCllC?CllllllCllCClllllllllllClllCC>>???lll?ClllCllC?CClC>?{õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!;óÿÿÿÿÿ÷Z   !   pªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿÿÿþÿæÓ7775775577777577577575557577878777777757777777777877777777777777757557777777777577775775777775777775577577777577775555777555777555775777555575778777777577557557757578757575757777577577777777777756775777775577777577777557575577777575557775777777575757575757557577775777787775575757775577577757557777757577777777757755777775557577757557777775777577576575575575877777577755775777775775777775775577557577757777777777555775777777567757575557755577777557775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüúüüüüüòÕ�qlllplllolllvllplolppoplllllooolpplollppplllpvoopopooopppvplopoppllvplovplpppoppopopvppppppppplpppvppplpppvppppppoppv}ÊýÿÿÿÿÿÙvvppppppppppppppppp|vppppppppppppppp|vvpppvvpvopvpppvpppppvpvpppppppvvppplp}ppppvvppppp|vopppvvppvprvopppppppppppppppppppppppp}pppop}ppvpvolppppppooplplppolppoppppppppplvpppllpopplopvllppopollpppololooolloppollplllllpollpplllCllvòÿÿÿèlllllllplllllllllClllllC?lllllCllllC?CClll?CCClClllCCCCCCCCCCCCC?>>>CCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!=qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿýÿþÿæÓ7775777775757787777775877575775777777877777777777777577777777777777757777777777775755577757775557777575757757777777777775555775785777557575577575577757557777775757577777755777577777757777776777755757557775775777777777777777777777777777777577555757757777775555777777775777757777777577777777777777757777577577757775775775777777557777777775557775757577577777577577577577577577777577775557777757577775785775777777777757777557575775575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüüüüüüüüõ¬�}llplllllllppvvpplollpvplllllppoloppllovvolpv|pppppplpvvvppolpppvllpoovvpplllppooopvvpplllllpppoppppppplpv|ppvvppplp|vÓýÿÿÿÿÿ×vlloppppppv}plppplpp|vvpopppppppvppvv}}popv}}vpppoplpppvpp}ppvppppp}|}v}vppvvppppppppp|}ppppp}vppppvvpoplppppollo}}vvvpopvpv|pppppppvplvpppopvp}pppllolllllpppllllopvppvvpvpolllppplloolloolppploppopllllllllvvppppploollpllplllllpol˜ÿÿÿÿ�llllolllllllppolCCCllllClllol?CllllCCClllC>?CCCClllC>CC>Cll>>>>?C>>>CC˜÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿ÷Y!    !!  =Ž­õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿÿÿÿÿÿÿÿÿæÓ77587755775777775777587777757775777775575575777755577777755577577777577577777757555757777757577777577777755775577555775777755557777757877777777775777757557777577777777755577557777777777575755775777577757755777777777577775777757576757757575777777757777777565775575557775757777755557777557777577777577555877577777777577775757775777577777777757577777575755577775777577777777575777777777777577775577777757757777777757777775777557775777777775557777777777777575575775777××ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüòÕ�qolllpllllllpopollolpoppooplllpolloploppppplppllppppolpppopppvppplppppppooppopppppppppppppoppvppppppvvppppvvppppppppppÓýÿÿÿÿÿÙwpppppv}pppvppp}vppvpppppppv|vppvpppov}ppppp}plpvppvppvvppppppppppv|ppppppppvvpppppopppvpppopv|pppppppopp}vpppppppppppvpppppvpppvppppvpoppvpppopolpvppppplppppppooppplpppppllpopppooopoppoollllloooopllpoppollllplllllllpolllllollllllèÿÿÿúulllllClvllClllllllllll?llllCClllClllClCCllCCCC?ClCClll??lCCC??ll>>CCláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;òÿÿÿÿÿóZ !wªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿþÿþæÓ77777557575777777755557877787777777777777757757787777777557775777777775577577777757577777777575577757777755777577777777755777575775557757755775777777575777757757777777777557775555777775777777577557575777557777575577777577775777777775777777577577575777575757775555775577777757577755777777577777577775777777577757757777777777775755557777777775777777577777775777577777857777557557777575775777775777577777777577757775577777775775577775777755755777577777777777775577ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõ¬splllllllopllllllllpppvpppppllloollpvpppolvppopollooplllplpp|vvppplovpppoopppppppp}popoppv}vppp}vppp|}}ppvvppvpv|||ppppÊýÿÿÿÿÿß}}}pop}}|v||vpv}vpv|pooopvp}}}|vpppvp|}ppplp||pv}}}pvvpppppppv|ppp}}ppoppv}vpppvppppppop}}pppppopvvvvppppvvpopvvppoppp|vppooppllpvv|ppppllplpvppolpv|vppvpppppvvvpollloplplllolpopolllppplopplllllppplllollllllllllpolppppllloplllllllýÿÿÿÙvoCClllllll?>llpvlCCC?Cll?lCCl?>lllClC?ClllClC>>?>>CllCCClClC>ClCCC>›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ !óÿÿÿÿÿ÷Y!    7pªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿÿÿèÓ7555577777755577777577557577787775777577757775778575777757757777575778577777577577775777777757577757577777757757777777577775575575755577755755777775787757577555777777777777755555757755777757777755777777777555777777757755557777777557577775757757577757777775587757557777775775775775575757775777577777775775575557777777775777777555777755775777577575557775757775777757777775757777777777775757785577777777777757575777777777757555757777755777577775777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüòÓ�poplollpplloplllollollpllovpllvpllppopppppllllpppoplppplpppppopppopvppppppppvpplopppvppppppplpvpppppvpop}vppppppvpppppÓýÿÿÿÿÿÙwvppppp|vvpppppppppvvppppvpvpppppppppp}p|ppppppppppv}ppppppvpppvppppppv}ppppppv|ppppvppppvpppvvppppppvvppppppv|ppolpppvpppppvpppvpvplpvpopppvppoppppppppppppppppppplovpppllppppoopvlpplppolpoppolooppoolollopolllollllollollplpolllllllÌÿÿÿÿyplllllllpoCllllllllllllllClllClllClol>lll>lllllClCClClC??ll??CCCCClèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y  !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿýÿþæÓ777777577777775756577777575$775777575777775777777778757777777777777757775575777777757775777775755755777777577777777777577575777557555775577575557757775577775777575555777577775777777775777775857775577577775755575775775757757777775777777755575777577757755555575777777777777775577777555777775557777777777557577777757577577575577777575757555775777777577775777755787777777575855577757775775777775557777777577777757775755755775757875757577777757757575775757777775576775577557777757577557777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüùÕŸpllloolooloppopppolllllllp}vlovvpppolopllloplllolppolpoplppollollppppolpvpoppplllopppppvppppo|}}vpoppplpppplpp|pp|ppopÇýÿÿÿÿÿß}vppppvvppppppoppppppppppoppppppppppppvpp}|}vpppv|pp}|vv}}}}ppp}plppp}}pppv|vpvvpv}vv}}pppvpv}}|vpppp|}|poopp}|vpplppplpppppp|v||ppppp|}vplp}plovppplppolppllloppoppppllppllpvpvpppvppppppolllpppploppolppllpplllolllllppllllloopollllluúÿÿÿèlvplClCllllll?lllovlllopplllllllClllllClClllllllllCClll?>ClCCllC??ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ#òÿÿÿÿÿóY!!!!!  q­õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿèÓ7775777777775575775775777777775777755777777757787775757577777757777557877777777777777577775775757775757577577777777775755557775777775555555555575777575557775677775755777777577555555557757777555757777777775775575757775577577777577577775757777757757577757575777577775555775777575777777578577557555777775777555757755577777775777757777755777755575775755757757777777587577777777777777777577777775777777778575777777777775777777775757777577777777757577777557775777757755777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüó¬�slllllllloplllpollooppllllppllpppppppolloopvolppppolpopppppoppplovppplov|oopppppopvpppppvpppppppppppppvpppvpppppppppppÊýÿÿÿÿÿÙwpppppvvpppvppppppppppp|vppvvppppp}ppp|popppppppvppppppp|vv|op|}ppppv}ppppp|ppppvvppp}pvpppppvrvpppppvppppppppppvpppvpppvpppppppppppppppv|lp|vpppvpvplpppvppplpvpopppppppppllpppvplpvllpopvopopolplopppooollllolllvplllollllllllpplllllp›ÿÿÿÿƒlvllllllllpCClllllllllllllllllllllClll>lllCCClllCCCCCC??llCCCCCCuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóZ   ! !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿþÿþÿþæÓ7775777777775775775775557775777757775=77777775777577777775757777777755775777557577787575775757777775775777557575777555577777777775775577577557777575755777557777577757777777777777777755757757555578755755777557777775775577775757757555577777777777557557577777757777777757777777775557557777755555777757577777577787757757775557757777775757777557777775775577657755577557577577575775755577775777757577777575777757777577775777577577775777877757757777775577557577557577577757777857577777ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõ¬Žpjlllllllpvplpplppllpvvpllllllllppppopopppv|ppv}pplpvvpvvvppppopppppvpppplpvvvvvv|vppoopplpvpllpppppv}}}pppvpppppvvvv}×ýÿÿÿÿÿÙwvvvvpppppplpv}}}}|v}|v}}pp|pv|v}pppv}vpmpv||pppppppppp||pppppp}pppp|vv||ppvpppppppp}}|pppppppppppp|ppppvp}}popv|vopp||vvpp}vpppvvpplpllppll}}vpopvvpplp|vpvvpp}}pooppvplopppppvpooopollpppopppllllloppppllppolpollllpvolpppolllllllpllllèÿÿÿ÷lopolllllllllllolll?CCl>CC?Cl?CCC>?Cll>>lCCllClCCCCC???llC?CCCCCÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Y    !=pªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿèÓ5775857757757557775777777755777=5787757=5777=5=577777577575777577877777777777777775757775757555777577777777775775775555555757775777557575757575577555577577777777777775777575775777777757755757777755577575575757755577777557577755775777577555755777757775775557757655777757577777577777577775758575757755577777755777555777557755555577777777757757577775775577777775575757557577855787757577557557777777775577555757777777777777755775757777757755575577777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷Ó�qlllpopllopooolppplppploploopplopopplppplppppppvooolpvplppppplp|poppppvoppppvpppppppppppppop|pppvvpppppppp|vppvvpppp}}ÓýÿÿÿÿÿÙwvppprpppvppp}ppp|vpvop|vpppp||v|ppp}p|pov}vpvvppp}|ppppppppvpvpppp|pprvppp|pppppppvppppppp}vvppppppppppppppppvpppppvvppppppppvpvpvppvpvopoo|vpvpoppp}olpppppppppvppppploopppolpppppolpppolpppopoppllppollpovpllllpollpplolooolllllllllpl{ÿÿÿÿÇllolllllllllllllllllllllC?lllllCllllC>lll?CllClCClCCClCCCll??Cuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– @óÿÿÿÿÿ÷Z =sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿþæÓ7575777775587777557577557757755=577777777777777877>77775=7755775777777777555777777777777775775775775777575777755777577777777775577757775577757777777777555775757757575777777777757777777775557757557575575775777675755777775757777577777755778577575757777777575757555777757757777775577557577757557787555557575777777775777575757777757575777757577755777675777557775777857777777777575575575777777775777757555777775555557577577777777575775577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõ¬s}ppv|vvpllllooollloloollovvv}ppooopollopollllpopopllpvpllpopppv}plppooppllp}popvpppppvvv}}pv}}ppolpppppppv|vplpv|pppvvÊýÿÿÿÿÿÙvppppv}}}|v|ppoppploppp}}}pvv||p|vpvvp||p|vpppp|pppvpppppppv}}vppp}}ppvpppvppv|}||vpppppvpp|vppp}}vp|}}}}vpp}}popppvpppopllppopppvvppppppvplpplpllppv}pppplopplpllopppppvvopllloppplpllpplpvpllppppvpovplllv|plllo|vpllpllllllpvvpplloppllßÿÿÿýolooolllllllollllllClolll?lollllllClllllllC?ClllCClCCCCllCCClCÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @òÿÿÿÿÿ÷Y! !!! p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿè×75777577777757577575557777877777557757777775777777777777777757775777777777777775777757777777777757757775777555577775777575757775757755555577575767777555557575557775555577777755757575777757577577775575777755777777577755777577757777555775557777777575775777557557657777577775777577777557777777777755775777777775777777777757557575577757777777577757777777757758775775577775755757577757777777577777777758557577555677575777777777777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷Õ�sllpplllllloppoolpvplopoopppooooppppllvvppllp|llvvpoppplp}plp|vpplpvpppppppv|oopppoppp|pppppvvppppppppppppvpppppppppppÓýÿÿÿÿÿÙwvv}vpp|pop}vppppvvvvpp}|v|pvpvpppvpvvvvvppp}ppv}ppvvvppvvppv||}pp}}ppppv|ppp}pp||vppppvpppvppppp|p|vpp|vppppvppppp||ppp|plp}ppppp|pppppvpppppppplpvpppvplpvpopvplpppppppppooopppllpplopppppplpppppplppploopvplllpvpllpoplllllplpolllloollvüÿÿÿßllllllllllllllllllClllllllolClClllClllllllll>llCCCllCCll?ClluñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Y !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿþæÓ7775757757775755777577575575777777775=78777887777787775777577775777777777777575577775777757577775757577777775555777777777775577777757557557777777575757577757777777777577777757755777777777877577575757775575757577757577755775577777777775757777777777755555777555775757577777777555577577577775577777777757557757775755575777755577775577785775777777757775577757577775777557577757575757577577777757775757775775757777777777777777777557775ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüòÕŸplllollllpopolllllppllpplllllvvvpooolpv|vpllvvppp}vplopovvllpvlovpop}|vv}pplppppppp|p}}vpoopppv|v||v|vvppp}}}|pppppppvÓýÿÿÿÿÿß|p|p|vvppp}pp|vp|vrppppppvv|vppopppopp|ppppvrppv}pp|}}}||pppppppo}}pppp||pp|pppvrvv}|v|vpv}|||vppv|ppvvppppplpppppppppp|}ppv}}popv}pppv|vp}vpopvov|ppopopvplppvppvppollop}|vppvppvvpopvvplllollolllllpolpplplpvpllolllllllllloplplopllllllÇÿÿÿÿ{lllooolCClllClloollllCC>lllCj>lolllllC?ClCCC>ClolClCCCl>>CCÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿóY  ! !  !s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿèÓ558767777777775577577777777577777757777777777777777575777757887777757775577777577757777777777757777775755775775757775777577575555575777757575857577777758777575555755577777557777577875775557777577777575777775577757575577575777577757575777557777777577755777777555777777757755777575777757775557577557775775557777777777757757578777777755775777775577777755577777575877777755577755777777775777555ÓÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÕ�pllppllllppopppolopolllppppppppppppploppppppppppppvppppppppppopppppvpvpvppplppppvpppvppppp}popvvvvvpv|vvpppppppp}}ppppÓýÿÿÿÿÿÙ}vvvvvppv|vpppp||pvppvppp|p||vvppp|plrv||pvppplppp}p}|p}pp|p}|vppp||vvv|v|ppppp}pvppvvvvpppvvvppvvppp||pppp|vppppvpvvppppvvpppvppppvpppppppvpppppovvvvplpppppppvpvvlooppoppvvlpppv|ppppppppllpvplpollppolpoloppppollpploppllpopooolllllllllp÷ÿÿÿèClllplllClolllllllllllllllllCClplClllllCCCCllClllCCllCC>?lxñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿþÿþæÓ57775777777777757557777777577778777577777777787577775787755757787775775777777777777777777757777755777777777777577777587758775757755757557757757577777757777777775775775757577777575755575777777777777777777557575555577555777557777775575577785775557757575775777775775755775777557775575775555775777555757577577775755577775557777777777777777755775777777555777757577577577755577557877575767777577557775757555777577ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüù¬Ž}pppllppllpllooopppploppvppppllloopppppllppplllooopvvollppvvoopppplpplplpp}vpoopllp|pooop}}plppppvppppppppppop|p|povppÊýÿÿÿÿÿßvpppppppv~}}}|pvvvpppp}}vpvvrp}v}}}pp|pp|}p}}}}p}pppppppppppppv}vppppppvvvvvppvpppvppp|}}ppppvvpppppppppppp|}||vv}}p|v|vpp||pppvvpplopppv||vp}vppoppppvploppvvppppop}|pppppvpplllpplolllppvppvplllopvvvollpvplllllloppvpopplolllllllllppvvvv˜ÿÿÿÿ˜pllllCll>lloolllllllllllClClllllC??Cllll?Cll??CC>>>CClCClÊýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ  !óÿÿÿÿÿ÷Z   !      7p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿèÓ5575777755775577555777775777777777775875775777777777777557$7577555777577775777757775775775757777757757577757777777757775565755757577555775755757577757555757775757755777777577777557577785777777557775757755757757575555775775755777757775775577575777757757577575777555777575575777577757577755577875777777557755555555575757557777775757555777575557557775757777757557557577757757575578775757557577577777577777775755777777757755555757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷Ó�Žpollloppoolpllppppppoopvplppplpppppppppopppllppvpp|ppopppppplp|pppoppppppppploppppvpppppppppp|vpppp}vpp||ppppppvppp|vÓýÿÿÿÿÿÙwvppppp|}||p|}ppprvppvv}ppp|v}}p|vpvvvpv}pop}|v|pppppp|v|vpp|pp|ppppppvrpp}vpppppppppp|v|vppp}|pp||ppvpv|vvppvppp|vvpvvvp|}pppp|ppoppppvvvppv|povppppovvplppp|popopppvpoovpppopoppplloopppop|ppppllpppppppoollvolllpppvpllvplplpllllloplpppll÷ÿÿÿèllllllllllloplllllolClllllllllllol>CllllCCCCCClC?CCCCCCCvñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@òÿÿÿÿÿ÷Y  !!pªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿþæÓ5777775777757557755777777777777775777777777577777777787=7757775=777777557777757777757575775777777777775757757575555555757785555777757577557557775777757757677757577577777777755755557775557577555767557577777575577777757757775575577877575577577577577755777765575777575577757757575775575755575777557577777555777557575777757557777557775557775775777777575755557775777757777555775777775775755577777557558755577575755757855558577755777775775755777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÖ }lloppllloppllllllllopllppooolllvppppppvploppppplopvppolpvvppllppp}}|pvpolppv|p}}vpop}ppppppppvpppppppppvvpppppop}}pvvÊýÿÿÿÿÿà}vpppp|ppppp}}pp}ppv}pv}ppppppppppppppv}}pv|pppv}}}rv|ppppv|}vppv||}}p|vppp}pv|}vppvppppppop|}pv|ppppppv||vpppppv}poppppppvp}vpv}v}}|vpppolpoppp}vpoo|}vppoopppppppppplpppllooppv}vvplopllllllv|vppplpopolllopvopplllopllppoppllpolplllll?ll˜ÿÿÿþulpvlllppplpollllllllppolllllCllol?lolCC?lllllllllllClllÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY  !!!      !! qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿèÓ777777777777557675777=777777775=5777777875577778755557577777577575777777777777777577777775777777775777777577577575757555755757577577775555755577557555775757777555777575775555557577577757555755757585577577777757777755757575777575577755755775757755755757755577575555755757577577557755775757775755757777575777777755777755757777777557777775577755777777757757555577575757757777555577575755777775555557775555755758Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÓ�qlooppollloollpllppplppolopppplp|vlpvvoppppppopplppppppppppppoo|plpppvpppppppvvvvppppvvppppvppppvpppvppppvvpvvppvvppppÓýÿÿÿÿÿß}v|pppv}ppvp|}|v|vppp||}|pp}}po|}pppvppv|pppppppp}}}pvvp|ppp|v|pv}p|}|ppppppv}v}ppp|pppvppppppp|p}ppppppp}}|vpppp|vvppvppp}pvppp}}p|pvpvvvooppppvppvppvpv}poppppplpvpppppppoopoppppppolpppooplpppvwpoppplpllpplopoloolpploppoollpvllolpllplCllúÿÿÿÇoollllllllllollllllllllllClolClllCllllC>lllCClClllClllláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Z ! 9qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿÿþæÓ577775777755577755577777757777777775757777755=7575775577775777757577557577777777577757757756757575777575757757775775577757577575577557577555577757555577775577575755777575775757577757775557555757775555555757755777757777777757777777757577775575555555577575757775755758555777557555777777577557575575577577577757575577777777777757775775755575755775585555557567755575775777557757775577755577775557555775575755775757755ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüù¬�qpppllpoopllpvplolppllppppoopvllppllvppllppvppppvvpppvvpllopvvv}volopvpp}pppp|pppp|volp}vvpp|vv|vppv|pp|vrpv}}pp|}vppvÓýÿÿÿÿÿÙvop}}|ppppppppvppv}|ppppppp|vppv|p|}}vp|}v}}}vv|vp}vpppv|}pv|pp}}}ppp}vppv}|v|p||p}}|pp}}}}|}vpppv}}|v|vppppvvpvpoppv||ppvpppvop}pppppppppopvvvvv}vplloopvpopvv}vooppvvpvppoppvvoooovpppvvvvvplllpplllplllpppollplllloplllooollloplllplllvplloÇÿÿÿñolpplllllllCClllCCllCCllllllllCllCCopolCCllCllllCCCCC?{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!!!!! ! =}«õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5755757755755577555555775775757777777777755777777777557777777777757777777757757755777777577755777577577775777577777777777777555775557575757555775577555757777775757757577575775577557755555575777777555557777585585757577575557857757577755557757777755557757755557755755757777757777757777755757575557755757577577557577557775575555755755555757777555757575755755575555577757577757755555777575555577757577755577557577757555577777577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷ÓŽsppolloppollpolppplllovvpppppppopvpoppppllpppppppvvppvplpppppppvppopvpppvpopp|ppppvvpp}vppppp|}vppv|}ppp}vppp|pp|}vppvÓýÿÿÿÿÿÙvvv|v|ppp|pppp|pp~}pvppvppppppopvp}vprw}pp}}}vvvpvpp|p}vppvvpp}}vp|p}}vppp}v|vppvv}|vv|}}||v}vpppp}}|pp}ppp}}pvppppv}vvvvvpp}vpppp|vvpvvpvppvvpp}}vpoopppppoopvvvooppvpvvpoppopvvpoopvpppppoopppppoooppollvpoloollollpvllolpololllppoolollpplCvüÿÿÿvlllpllloollllllC?lllllllllllllClllClllllllll?lllllCCl�üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY !q¬ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿàÓ757555777555755757775757755577777577777575777577777777777777575757757755777777755755557775777775777577777755777577757777575755775557575755575575757557577555555757757755575777775775757575575755777757777755775777577755577777755577775555577575557575557555775755557557577555575577575775557555777777785575557755757557755755775555577757757575775757757555755755775755777755755557757577558575757577577777775777775557755555575775577757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÕ�plllopppplpvvppvvppllppllollollpplllppppopppppopvpoppplpvpooppppvv||pv|ppoppop}}vpppp||pppvvpppplv|pvvpp|vvvpppv|vp}|pÊýÿÿÿÿÿàpp|ppvpv}pvvpppp}vppv|}|p}}}||}}}|pppppv|vpvrv}pppvvpp}||||pp}}pppp|pp}}|ppp}}|pppppppppppppp}vpppv}ppvvpppvppv|vppvppvpppv}ppvvv}vvvppp|vvpppo|vpv}|}}}vvv}vppopvvvvvvplpvvolppppvpopppoppllopooloopvvov|vvpvpopvpplpvppollllopllllllolllplllÇÿÿÿ×llloopllplllllllCllllC?C??llllCllll>llllllllCCllCCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷[     !q«õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ755575575775777575775787777557775757777757777777557577777577777577577855775777757755777775777757557577775757777757575775575577777577555755577575557775555575755577577755755555557777555575555775777775757575575777575555775557777757757555755775557555775757575555557557777557775575575757575777775777755775757575575757755577775575575555557757557755757557757575775555777575775577555577855757555577757555577775757775757557575775757757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷ÓŽsplpppopllppvppppppllopoolpppolopplppppoppvvpvpopop|ploppoppopppppvvvppvppvpppv|vppp}plpvppppp|ppp}pv|vv|}ppppvrpp|}ppÓýÿÿÿÿÿß}vpvv|v|}vv|vpppppp}pp||p|}}~p|}}}|pppp}|vp|}vp|}pp|}pp|}|}|p|v|ppv|pvp|}||}pp}|pppp|vpppopppvv|pp|vvvppppvppvp|||vpppvvvvvvppvvvv}||vpoov}vpvppwvvvvwwv}vvpvvvvpovvvvvvvvpvplovvovppppvoppoolooopvopoooppopovvvlooopppvvvvpllllvlovlllloololClvüÿÿ÷olooollllolllCllolCoplCCClllllClllllCClCCllllClCCllluèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Z  q¬õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿþÿþÿþÿÿàÓ77777757557777777557757777777777777757777757775577577777777777875775577577777577755775777777575755575577877775777755577775755775777757775555777755555577757557757757577757775557557555777555775557775575757757775777555555757557775575555755577777775775575775757557775855557575757555755777555577755575775557775555577755557557577575555557577757555777775757757575557575775757577577755757777777557577557757575575575757575757ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÕŽpllopoloppooolplllppplppppvpoplpv|ppvpopppppvpppppvvpp|}ppv||vpppppppppvv}|vvvpo|pop}ppv}}vppv}}ppppppppppv|vpp|ppvvppÓýÿÿÿÿÿß}p|}||ppppp|||p||vp|}pppp}ppppppppppp}vp|||p|ppv|vppp}pppp|}pppppv}}|pppppv}|pp}|vvvvv}}vpv}}vvp}}vvvv}}}}vpppvvvv}}|vppppvvovpvvvvvv}v}vp}}vvpopvvvvpopvvvovvvv}vvvvvvoopv}wvv}}vvuvovvvpvwvvvvvvwvvpopvppopovvlvvpvpoollopovplovv|vouvovooplloÌÿÿÿƒllolooollpoolllll?lpllllollllllllll?lollCCC?ClolCCl{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ@òÿÿÿÿÿ÷Y!!!! !  mªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ775575775757757775757757777777757777777775775775777=575577777757777775777777777777575577757755777777755777577775777575575757775575775555555577755755777558757555557555775577777575757757557575757775757775755575757777555557777775777557577575557757558555777557557757585577757777587757777555775757577777575775757557755575575755577575577777775777775577577755557575575755555755755575555575777555577755557577755555757577577577555557757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷ÓŽpolpplppoppopoolllopppooloppoopppvpp|vppppvvppppolp|pvvppppvvpppp||pppv}|pv|}vppvpopv|||}}|ppp}vvppppppppvp}pppppppvvvÓýÿÿÿÿÿÚww}p}ppppppvp|vp}ppvvpp}}vpppp}pppvpv}pv|}}vpppprp}rppvpvpp|vpp}v}rwppvpvvvvvp}|vpv|pvvv|}}p}}ppw}v}vpw}}vvvpvvvv|v}}vvppvwvvvvvvv}vvv}wvvvvvvvpvwvvvvvvvpvvvwpvvwvvwvvvvovwvvvvwwvvvvvvvvv}vvovvvvvvvvvvvvvuvvvvvvvvvvpllvvpvuooppvvvpvpvoloollvýÿÿ×ullloovlopllllllClloollllllllollllCClloCCCllClolCCC›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@óÿÿÿÿÿóY  ! !!pªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþÿþÿàÓ75577775555755755755575555775577777755757577577757778877777757777775777777775777$77577777757575777757757777777777757757757777757775777577575575577755577577787555555777775577557577755757757555777577775777757575577557557575757557555757757775577577575575577775555777577557557557575575757757757775757557577755577755775775575755757577755777757777757755757575757755555577577775577777757555575775557755575577577775755555775777755555775577577755577757555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕŸ}lpppollpppppllopppp}vpppppoop}ppoooppopplpppppvplp||ppppopppp|pvvpppplppppppp||pppvppvppppvopppp}}}pppvppppp}|vvv|vvvÓýÿÿÿÿÿß}ppppv|}|p|}v}vpppr}}pp}|pp}}}}pp}}}rvp}pp}p|}p|vv}vp|vv|}}|v}|vvvvvvv}}v||v|vv|vpv}}}vvv}vvv}}ppvv}}vvw}v}vv||vvvvv}wvvv}}v}vvovvvvv}}vvvvvvvv}}vvvvwvvuvvvw}vvvvvvvvvvuvwvvvpv}vvvvvvvouvvovvoovvvovvvuoovooooouooouolvuvvooloolovulooolpvvloàÿÿèlollllllllllouopllollolllllllllCCClllpllllCCllCllllÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿ÷Y ! 7s­õÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿèÓ5775757755755555755557557777757775577577575577577777777775575777877777777>57757777777757777577775775777787577777777777577577755777777777577757755557757557777577577555557757557557575777755775555755577577757555775577757757557577755777755577757575575575777755557775577575555575778755755755757557577577775555557555777575577557555757577757757555755775755775577775775575755755575755755755575775775755575577575777555577555775557577557555555575777775757557575ÓÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷Õ¢}oopppoopvplllppvppv|poppppppppppplppppppoppvvpppopvpppppplppvpv|ppvvlpppolpppvvppvpvvp|vpvpppppp}}pvp}rvpppv}vv||}}}vÓýÿÿÿÿÿà}pp|vp}|p|}}p|ppp|}}pp}}pp|}}}p}v}}}pv}ppppv|vvpppvppvvv}}}pv|vp|vv|}}}pw}vvvpv}vvvvv}}}}vvv}vvw}}}}}v}vv}}}vvvvvvvvvwvvv}}vwvvvvvvv}wvvvvvvw}wvw}vvvvvvvvwvuvvvwvvvvvvvvvvuv}{vvuv{}vvvuvvuvvvvvvvvvuvuouvopvuluoluvvlououvoovvllvvuouvvop�ÿÿ÷lvooololllllooooolooluollllllllllllllllllolCllCllllÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóZ  !!s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿþÿÿàÔ757555575555575557777555757777577778575777777777777577777777575=777777777777777777775557777755757777775775777757777777777755575755575757557557575575557555757577777775557577757775755555755557557575575757757555775755575575755777757555575777577557787555755577755557557755557575775555775555577575555777555757557755577555575555777555575575557555557777775755755755557575757557777575777575577555575775755757757775757557577755755777575755775577575575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüù¬Ž}llloopllloplpopppllpppppopppplpvpploooppppppppppppvvpp|vp}pp|ppplppppp}pppvv|ppov||pplppv|vr|vvppoppv}}pv}||vppvpppppÓýÿÿÿÿÿà}pp}pppv|pv}|}}|pppp||p}}pp}}ppp|pvppp}}pvpvv}}}p}}}|vpv}vvv|}vvw}vvvvvvv}v}vv}}}wvv|wvvvw}}vvvvvvvvwwvvv}v}vvvwww}}wwvw}vvv}vvvvv}vvwvw}}vwvvvvwwvvvvvvwwvvvvvvv{vvvvvvvv{vvvvvvuwwvvvuvvvwwvuuv{vvvvvuv}{vvuvwvvovvvvvvvvuoovulppooouuouuÿÿýullolovvoovlllooouollllllllllllClllllllCCllCCClllllßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y!  !=qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777775577577575757777577577777757777757757777777777777777575775777557777777775777777777775777575575777757777575757777777777757577575755577755777755775555575755757775557555755555575755555577775757577575775577755557575555575775555555755555575755557777557577557555555775755575777785775575577557555757775557577575775557557555577555755555755555557557555575757855757555577575755777557775777777577555557555557557575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷ÕŽsppollpollloopololllpvpplpoppolppplppplpppvppvpoppv}vv|}vp}pppppppppop|vvpp}}ppppp}|pppppp}}}}p}pppp|}}|}}|}}|pprpppppÓýÿÿÿÿÿÙwp}}ppp|}}p}}p}}|p}pp}|v}}}vvpp|}ppp}v}vpppp}|}}}}}}}vvpp}}vp||v|}vv}vvw}}}vvw}}w}}}}}w}}wvvv}}vvvvvvwvw}vv}vvvvww}vwvwvwww}vwvw{}wwwwvuvwwvvw}vvvw{wvvvwwvuvvvvwwwvvvuvvvvvv{}vuuvw}{vuvvvvvvvvvvwvvvvv{vuuvvv{}vuvovvoluuuvuovuuvúÿÿ{lvvouvvvvuluvvuoolllllllluololllllllllllCCCllCllCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Y  !=qªõÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿþÿþÿÿþÿÿþÿþæÓ5775575557575755757777757777577775757775755775777577777775=777775777775577777577757777777777775577757777757577775755757755755555577555557777557555755557557557557755557757577775775575775575555555555555757775757557555757555575755755575755575777555557577555757755777557757757757555777575755575555757557775555575557575575755555775555577775757557755575557555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕ�pooopvplppppplopvppppooopppp}vplpvppvvvplopppvpopppvpppppoppppvvppvpvvpppppv}pvppvpp|vv|pppp}||v|vpv}|pppppppppp|}}}poÓýÿÿÿÿÿßwpv}|p|pv}v|ppp}}vvpv}|ppv}pppv}}vp}}|vv}}p}vvvppv}p}}v}vv}}}vwwvvvv}}}}}vvw}vw}}}vvwwwvw}}vw}ww}}w}}vvv}}wvvw}wvvvwvvwvwvwwvvvvw{vwvw}vvwwwwwvwwv}vvw}wvvvvvw}{vvvvvvvwvvvvvvvvvvv}{wv}vvvyvvwvvwvuvuvvvvvuvvvvuvvuuuuv{vuvuu}ulovuvàÿÿ˜uvuoouvoollotolulllulovolllouulolllllllllllCllllCláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ ;òÿÿÿÿÿ÷Z!   !  !!qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5555575757777575555757775757577777777777777=5555777777575577777575557577777577577577777777777577777777777777755577777777577755557777577777757557757775777555557555555575757777555777757755557757755775755557775577777777755775577775757775757777575575777557575757557577575775557577557555757557555755755757557777575577557757555575557577575775755777555775777575555755575577755575577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüýú¬�soolpvolpvppllppvppvppooopvvvvppv}vpp|vvpppppppplppppopppvolppv}ppp}|pppppppp}}pp}ppvpp||pp|}}|pp}||vpppvppppv}pp}}vppÊýÿÿÿÿÿÙvvp}}}pp}pppppv}}}}v}}}ppppv}}p}}v|}}vv}~}v}}v}vvvvv}}}}vw}}v}}vvvvvw}€}v}}}wv}}}vv}vvw}w}vvwvv}}wvwww}}wwwwwvwwvw}vvvv{vwwvvvvw{}}wvvwv}{}{}wvyvvvvuwwwvvvuvvvvvvvvvvv{vvv{w}wvv{{wvvvyvyvuvvuvvuuvuvywvvvouv{vuvwvuvuuuvvÌÿÿÇuvuluuuuuoouolulluvvuuvuulCuvvvuuutltllluvlCllCCClçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿóZ  ! q¥õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿþÿÿæÓ55777557557557777777757777777757777575757777777577777777777777777=7777775775777777777577577777575777575775=7775775777757757557777777577557777557575557575577777755757755757755577775575775557577577577757577757555755557775557555557557577575775577555557557775755555775757777577575575577757575557575557585555775755775757555575755777777757775575777ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕ�}opolopppoooppppvpoolppppppplplovppppppplppvvppv|vppppppp}vppop}vop}|ppvv|}ppv}ppppp}|pv}vpp|pv}pp|vpp|v|vv|ppp}|pprvvÓþÿÿÿÿÿÙ}p}|v|vpp|p}}pwpp|p}ppvp}|v|}vvv|v}vv}vv}vpv}w}w}vvv}w}}wv}}vw}vw}ww}wv}wv}}wwww}}wv}{ww}w}{w}ww}vvwww}wwwvwwwwwv{w}ww}vwvwww}{v}wv{v}{wvvvvwwvw}{wvwvvvv}{wv}w}v{vwvwvvuvvv{vvvvvvvuvvvwyvuvvvvuvyvvvvvuvuuvvvwvuvvvuuuvvuuÇÿÿ×uvvvuouvvuuvvvvuouullulouulllloullllluClulClullllCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y   sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿèÓ5755757555555557577577777575777577577777777=57777557577777777777777757775777777777775775757777757777557775775577775777757757755577557775777755555555775575755555775755557775757755755757777755755577557557575575757577855755775555757577577557555757755757555757757755557577757555555577555577575757777777755575555577555555755555785775777577575557575575757757755777775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüúÕŽqpppoopppoop|vpoppolpolppppplllploppppollpp}pppvvpppppplp||vpp|}||pp|||p}}}pv|||vppv}|v}}|vvpv}}}|ppp|}|pppv||p}}ppv}}×ýÿÿÿÿÿß}v}pv|vpp}}wvppppppvvppv}vvpv|}}vvvv}}}vvv}vv}vvvvvwww}}}}}w}w}}}}}vw}wwwvvvwwvvw}www}}}ww}wvv}vw}}}}ww}ww}}}}wvvvv{}}wwvv{}vvvvvvvv}www}}}wwv{}wvv{w{}}wwvvvvvv{}vvvuvvvvvvvvvvvvvvvuvwvvuuvuuuvvuuuuvuvuuvvvuuvžÿÿèuvw{vuvvvvvvvvvuuvulluluvvuuuoullCllullulClllluullßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y !!=s¬ùÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿþÿàÓ775575555757577575555775775777775777757577777575777577778777777777777777775755777777757577775777$7757777775777777575575777755775555755557557577757575755575757577755777557587555575775557575757777555557577557557757577577775575555555775555555575557577577775755555755757777555775555577775555577577557555777757877757775775557755755575777557755577577577557775777555555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕ�pppopppooolpppppopppvpppppppvvpppp|vvpppvpvvppvvpppvpppppvp}|pppp}}pvvvppvvvpppp}ppp|p|v|ppp|ppp||pppp}}vrpp}}ppv}vpvvÓýÿÿÿÿÿà}pv|v|vv}}}v|}|pvv}€}}v}}v}vv|vw}}}}wvvv}wv}}w}w}}w}}wwwvww}w}w}w}ww}w}}{wvw}v}ww}wwwvw}{}{w}{}w{w}w{wwww}v}{ww}}}{vv}{vvvvvw}vv{wvwwv{vvvvvwvw{vvvwvwwwvyvvvvwv{vv{vvvv{vyvvv{vvvwyvvvv{wwwvyvvvvvvvvyvvuvuvvv{vuuvvouv›ÿÿèuvuvuuuuvuuuuuuvvuvuluouvuloouuooulouulloouullloCC×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!;óÿÿÿÿÿóZ  $qªõÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿèÓ77755757757757555777777777777577577777777577777575777557577777777775577777757757776=57777777777775575757777777557577775777757775757577777577755555757777775557755555755776575557775557775757755775555757775755555775755575775577755757555577577555775557575775775555755555755557555777775757755557755555757757775557575575577557775757755575777775555775757755575775775757775555757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüþüü÷Õ�}pllopvpllooplllppppppppppppv|pvvvppppppvvvpv}vppvv}pppp}}pp}volp}}}pp|vpp}vppppv|pppp|pp}}}pppp|}pvpp|vp}}}}pppp}|ppvÓýÿÿÿÿÿßwppp|}}}}}}|}}}v}}}}}}}}}vw}ww}w}‘}wv}}}w}}vw‘w}wvwwvv}www}}w}ww}ww�‘}}vvwwvvv{vwwwvv}}wv}wvvwwwwvvvw}ww}vvvw{vvww}vvvw}wwvvwv}vwwv}wvvv}{vv{}vvv{vvvv{}vvvv{vw}}wvvvvvvvvwvvvvw{wvvyv}w{vvuvyw{w{vvvvuuuvvuuvvvvuuuu˜ÿÿèvvuuuuuuuuuultuuuuvuuluvuoltuuluuvvuuoouuvvulllCltÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!;òÿÿÿÿÿ÷Z!!   pªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿàÔ5755775755777557557775577757777757577775757777777777775757777777577775557775755$77775=7775777757777777=775777575777777777577577757777755777575777577577757755775577577757757575575577777755757575575577555557757757577557755757577557777555555557575757557577755575557757755555755575555757577557557557775575557557575777777555755557755575555557757557756555757775755575555757557557ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüù¬Žsllppppplpppvpopppvpopppppop}pppppppppvvpppp|vppvpvvppppp|ppp}|ppvppppp|vvrpvpp|pv}vpv}vpppvv|v|pvv|pp}}vvppv|vpvv|||vÓýÿÿÿÿÿà|vvv}|vv}vvv}}w}vww}v}}}vv}}}}www}wv}}ww}}ww}}v{}}}v}w}vw}{}wv}v{}w}}ww}v}{wwwwwwvw}}}}vw}ww}vwww}ww}w{wwv{vvv}{vvw}wvw}{vvvwwv}}vvwyvvvv}vvwvvv|{vwyvv{vvvvvwwyvvvvwuvvvw{vvvvvvvvvuvvuvvuvvvvuvwvvvuvv›ÿÿßvvvuvvvuuvuuuvuuuuuuuuuuuuuuvuuuuuuuouuouutloutlooÇúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@óÿÿÿÿÿóY   !q­õÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿèÓ7555755555755757577775577775575777777575777757777775777777557775777757577777777777577777577775577575777757775775777777755777757577775777775777775777557557557575557757557775755555557557775755777577555577775755557575577775577575757777755775777575757555577555557575555575555755577775755557757557575757557575555577775575577557555755775557755555555557775555757575775557××ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüþü÷Ó�pppppopopppvvppppppppoloppplppolppppov|vpopp}pppppp}ppp|p|vpp}}vppvpppvvpvvpp}pppp}|v}}vpppp}|vp|v||||}|ppv|}}}}}}ppvpÓýÿÿÿÿÿàvvv}}v|vvvvv}}wvv}}}}w}}}}w}vvvvwvw}vv}‘w}wv}‘‘wwwwww}wvww}wwwww}{}vvw}vww}}}}w}}}{vvvvv}wwv{}vwww}wwwvvvwvvv{vvvwwvvvww{}}wwvvvv{vwvvv{vvvvvwvvy{vvvuvvvvvvwwvvuvvvvvuuuvvvuuvv{vvu{vvvvwvÌÿÿÙuuuvvvuuuuuuvvuuuvuuuvuuluvvvvvvuoluuvuuuoouuvvuuu˜óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y!!  ! $wªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿÿÿàÓ555555557577557575575777757775777777775777757577755777577775577775777755777757777777757777777757775777777777755576577775775575577577757557577775755575755755777577755757755777777555577577555555575775755575575755777557557557577555555755755757757575775557557557755575577775757555555775555555555755755557755775755577757555757557577757775557755557555575777775577575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüþüüüüüùÓ�sppoppopppppppppppopvpppppopvvppvpvvppppppvpvvppppp}ppp}pppppvppvppppvrpp||ppv}ppv}pvrvp}ppv}|pv|v|vvv|vpp}}|vwp}}pv}}Óýÿÿÿÿÿß}wv}v}}}w}v}w}ww}}ww}}ww}}}ww}}}}}w}}v}vwv}}w}wwwwwwww}}w}}w}w}}}wwwv}w}}}wwww}w}}{w}ww{wv}{v{w}vw}vw{vvvwvvwwvwwwvww{wwv}{wvv}}{wvvvvvwvvw}yvw{w}vvvvvvvvwvvvv{vyvuvvvvv{vvvvvvvv{vvvuvwvuvvvvvuvuuvßÿÿÇvuu{vuvuuuuvyuuuuvvuuuvuuuvuuuuuuuuuuuouluuuuotuuuuèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ9óÿÿÿÿÿ÷Y   qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ557575777757557555575757577775757775777777757577757775575777775777577757777557777557777757777757775777557755575775755555775575755557775575575757557755555575555555755775557557775577555557557775555757557777557757557577555555757557575755575557577555575755575577757557757757775757577755757555775755755557577557557757755555755777555775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷¬sqpplpploppppppoopvppppp|vplp}}}v|vpppopppp|pvppppppv|pppv|vppvv|||ppv}ppp|ppv}|pp}}}vvpp}ppr}pp|pppvvv|}}}}pppv}}}v|}}×þÿÿÿÿÿß}wv}wv}v}}ww}w}}wvv}}vwwwww}�}vvw}wvv}}}ww}www}w}}wvwww}wvvw}www{}}}vvvw{ww}wvwvvvww}wwv}wvvvvwvvwwvwwwwvv{vvw}wwwvw}wvw}wwvv{}wv{vvw}}vv{vvwvwvvvw}wwy}vvvvuvwvvvvuvwwvvvwvvuuw{vluvuuuuuuuvõÿÿ˜vuvwvvvvvuuuvvvvvvwuuvvvuuuuuuuutuuuuuuuuuuuCluollußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿóY   !!pªõÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿÿæÓ575777555575757557577575777777775577555755755775777577777777777577577577777757777777777=57777775777787757775777777775757577557577575557575755557557557757575577557777755557575575757575755575577577775575575557577557557577777777755555555777775555755777757755557557755555555575555755555557557755557577777777557555757575557577557575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüþüüùÕsppvppoopppppppppppppppvpvppppppvppppppvvpppppvv|ppppp|ppppppvvp|v||ppvvv|v|ppp}pp}||p||vvvpv}vvvpv}v}vv|v|||vv}}|vvvv}×ýÿÿÿÿÿß}}vw}}}}}}w}v}}}wvw}}ww}}}}w}w�w}w}}w}}{}}}{}www}}{}w}}}www}}w}}}w}{www}w}}ww}ww}w}wvwwv}{}{}wwvvvw{w}wwwwwwwwvw}wwwvwv{wwvv{vvvwwv{vvvwvvvvv}{vvvwwvv{vvvwvvvvvvvvvwvvuw}uvvvvuvuvvuvvuvvvvv{þÿý{vvuvvuuvvuvuuvvuuuvuuvuuuuuuuvvuouvuuuuuouuuluuuouu�÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;óÿÿÿÿÿ÷Y ! =qªõÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7577555775775775775777557575775777775557757575757557577777777777557757777777775755777577777575777777757757777777757777777775755757755757755775757755777775575777557775555555757557577755777555755757755575755777575555555757755775575557577575775755755555577575777755555777757757555555555557555755755575577555577757775557555755577757557557Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüú¬Žppppppppopppppopppoopvppv}vpppppppppppppppppp}}vpp}p}ppppppp|ppppvppppv|}p}vpv}}v|ppp|pp}}ppvv|vvv||v|vvvvvvvvv|v}vv}vÓþÿÿÿÿÿßvvvv}}ww}}}w}wwwwww{}www}ww}ww}}vw‘v}v}}ww}w}vvvvwwwwww}}wwwwww€wwwvw}vwwvvwvw}wwwwvvvvvw{}}w{}wvvvvww}{wvvvv{wvvvv{vvvw{}{wvvv{}vvv{vvw{{vvyvv{}wvvuuvvvywvvuuv{wÊÿÿõvuuuuuuuvvvuuvuuuuuuuulluvuuouwvuvuuuulllouuuouuuZluçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ! ;òÿÿÿÿÿóY !  !!qªõÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿþæÓ55555557575555557777777777777777777775777575675757777577775577777777777757577577577777775775777577775775757777575777777775557755785755775557755575555555757557777577575575777557755577755555557575555557757557557775575557755577755577755775777755775757557755577757557775775575555755557757775657555755555557ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüýüüþüüüõÕ�pvvplpppppwppplpvpppppopppvpppppppvvppppv|vvppppppppppvpvvp|pvvpp|v|vrp|}vvpprpp}||vvv}v|vpvv}}}|vvvvvv}|v}wvv}wv}}vw}×ýÿÿÿÿÿßvww}}}w}}w}}www}ww}}}}}w}wwwwvvwwwww}}w}{}}w}w}}}w}w}w}www}{w}{wv}}}vw}vvwwwwwwvww}vww}}w}{v}wvw}}wwww{vvwwwwwwwwvwvv}}vvvvvvw{vvvvvwvvvvvw{uv{vvvvwvvvvv}{vvvvvvvvvvvwvuvv{õÿÿ×vvvvvvuuvvvuvuvuuuvvvvuuuuuvuuuuuuuvvouuuuuuuluuuoluuÊüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ9óÿÿÿÿÿ÷Y   !qªõÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7757555557777757575555755775757777575757777757757757777577=577775577787557777577757777777777=5777777757775777777575755577557555557577577755557775577755775555557555777777557575555557757577577575557577775555755555757777555787755777575575775555755775557775557555577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüýüüüüúÕ�spvppllllp|vvppvpppppplpppppppppp}|vvvpp}vppvppv|pppv}}v||vppprpv|p|}}}}vppp}}p}}pvpp}}}vpv}}}}}}vv}}}}}v}vvvw}}vvvvvw×þÿÿÿÿÿàw}wwwwwwvww}}}ww}}}wwvw}}vvvv}}ww}}}}}ww}{}ww}}wwwwwwwvw}ww}}‘}www}}vwvw}wvv}vww}wvvv{}}ww}{vw}w}vvwwvwwww}}wvvyvvwvvwwvww{}{}vwwwvvvvvuvvuuvwvvvvvvvvvv{wvvv{vvvv{vuvvuuyv{vvvžÿÿþ{vuuuvwvuvuuvvuuvuvvvwvvuvuouvuuuluvvuuuuuuuuuuuuuuuou{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y  ! !!o¥õÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿàÓ77575777575555757757577777777775557777575777775757777577777557777777777757775577755777577777877775777787777775757555575777777577577755577777555557557557575555775555555577575575777555575555777555557775555555577577557555775557575555577557585575775557755775555575755ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüýüüüüýüõÕ�ppppppppppvpppppvpppvppppppppppppppp}vpppppppp|vvpppp}vpp}pppp|pp}p|pppp}p}ppvv|}vvvvv}vpvp}}}vv}}vv}}v}vwv}vwvvw}}}×þÿÿÿÿÿßw}}}}w}w}}w}}}}w}ww}{}w‘}}}}}}}w}ww}{}}}}}}w}wwww}}wwwwwww}w}w}}}}wwww{vwwwww}vw}{vv}wwvw}}}wvw}}{vw}{}wwv{vvvv}{wwvv}{vvvwwwwwwvvwvvvvv}wvvwvwwvvvvuvuvvvuvvwvvvvvuvvvvvuvvv˜õÿÿòuvuvv{vuuvvuuuuuvuvuuuvuvuouvuuuuuuuuuvuuuuuuuuuuuuuuou×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;óÿÿÿÿÿ÷Z! !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿèÓ5775575575555755557575775777775777757757577777577777757775777775777775775=7777777777577757577777777577777557755555577777777577557577755555577575777555557557575555575575575555557755755757775557555555575777575777555575577555777775557757575555575555577757755755575575Ó×ÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿüüüüüüýüþüüú¬sqooppopvplloopppp|pvv|ppppppvpvppppp}vppppopv||pp||vv|pp|}popv}ppp}}pppppppvvvvpv|}|vpvv}}}}vvpvw}vvvw}wwv}}}}}}}}}}×þÿÿÿÿÿà�{}w}}w}wvww}}www}w�}ww}wwww}ww}wwww}}w}}wwwwv}www}wwwv}wwwvww{vv}wwvwvw}}vw}}}vvv}}vw}w{}ww}wwwvwwwvw}wvvwvwwvwv}vvvvv{vvwww{www{wvwwww{}{vvvvvvuuvyvyvvvvw{vvuuvv{àÿÿÿ›uuuuvvuvvuuvuuvvvvuuuuuvuouuuuvvvuuoouuouvuuuvuuvvvuuu›÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY =}ªõÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿàÓ7575555555585777575557575775775775777777777757555777557777757757777775777577757777775=777775777777777777755777757757575575757757557577577555577557555777755757555775755577557775555755755755555777577555755757755555555557575575755557777555557577555557577577755757555557777555555555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüýüüüüüü÷Õ�}opppppppplpppvpppoppppppp|vpppppppp|pppppppvvpppv|ppppvv}vppvpvpvp}}pp}}pp|}}}vv|v}}vv}}ww}}vvv}}}vw}}v}}w}ww}ww}}×ýÿÿÿÿÿß}w}w}}w}}}}vw}ww}w}}w}vww}}www}w}ww}}ww}w}}}ww}}}}w}w}}w}wwwwwwwww}w}}}{}wvvww}{w}wwwv}wwwww}}wwwwwwwwww}wwvv{vv{www}vvw}wwwvvvv{vvwwwwvwvvvvvvwvvvvvvvvvvvvvvvvvvvv{ÊÿÿÿõvvvvuvvuvvvvvwuuvuvvvvuouuuluuuuuvvuuuuuuuuuuluvvuuuuuuluáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y !  !qªõÿÿÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ55755557555575777777775557757575577775575757777775775557777777585755757757577577757777757757775577577557777577577775777577557785555755557755555777577555575575755575557565575775555555555577575575577755577555775555557577577555757557755555577757755755555555575557575757575557577575557Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüþüüþü÷ÕŸsppvvvolpppvvpvvppoppoppopvppppvppppppp}}}v|ppppv|v|}p}}pv|v}}ppv|v}}|}}vpv}v}}vvvvv}}}}}vw}w}}w}www}}w}}vvw}}vw×þÿÿÿÿÿàwvw}}wwvww}‘�}w}w}}w}vwwv}}ww}�vv}}}www}}wwwwww}wwww}vv}}wvvw}wwwwvwwvwvvwvvvwwvvvv}wvw}w{}vvv{}wvwwww}vwww{}wvv}}w{}wvvv{}}wwvvvvvv}}vvv{vvuvvvw}{wvwwvuuuvvw{vvvv{×ÿÿÿþ›vwwwvuvuuvw{}vuvvuuuuvutuuuuuuvvuvuuuuvvvuuuuuuvvoluuuuulÊüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !@óÿÿÿÿÿóY      q¥õÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿàÔ5555755775557755577757575777755757777755777755777577775777775757557775777777555757757777777575777577777777757777575757777757557555755755555757557555577755777577575575577555775557577555555555575555575555777757775757757577557557555575775557557757577757755555757775555575555575557755575777755ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüüýüüüüüüùÕ�ppppppppppppppppppvpvpppppppvvppvppppppvvvv|vvppp}|pppv}vprvv}v|v}vpv|w}}v}vvvvvw}}vv}}}}w}}w}}}}}}v}}v}}w}wv}×ýÿÿÿÿÿß}w}}}}}}w}www}}}}w}w}}}}w}ww}}}}}ww}}}}�}}}}}}wwv}}ww}vw}ww}}}}}www}wv}w}wwwvv{w}wvw}}wvvw}wwwwwwwwvw}wvw}}{vvwwww{vwv{vvw}vvv{w{w{vvwyvvv}{vvwvyvwwvvvuvvvvvvv˜àÿÿÿÿâv{vuvuuvvvuvvuuvuvvvuuuvvvvuuuuuvvuvuutuuvuuuuuuuuuouuuuouÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y !  =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿè×5557577757555775755777587575775775575757777=7555777577777577575=7775777777757757778577775577757757557757557775777575775555755755755577557557755577555755555575575557757575555575757775575757755575557557577757757775555757555775577575557577575755577ÓÙÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿüüüüþüüþüýý÷ÓŽsppppopvvvppppoppp|v||v|pppv}|pppp}}}}}ppvp|prvp}vppppp}ppvvvvv}vvpvvvv}}}vpv}}}}wvvw}wv}}}wwvvvww}}}wwww‘�}}wv×þÿÿÿÿÿà‘‘ww}ww}wv}vvwwww}}}w}ww}w}wvw}w‘w}}}}}}ww}ww}w}www{}}ww}}}www€www}wwww}{}ww}wvwvv}v}}vwwwvw}}}}wwww}}vwwwvwwvv}}wwv{}wwvvvvwvv}}}vvvvvw{}wwvvvvvvvvvvvw}vwvwwvvwvv{vw{vvv˜žòÿÿÿÿ÷{uvvuuuuv{vuuvuuuuuuuuvvv{wvvuvuuuvvvvllvvvuouullultuuultty×òó÷÷÷úýüüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY   =q¥õÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿæÓ575777555555577557575775577557755777775577557755757777757577557777777777777777777775778755777777757757777575575775777555575755575555755557555555555557775557557777555557775557575557555555555775755755555757755775575755577555575755575555557575575ÓÓþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕ�}pppppppvpppppoppv|vvppvvppp||vpvppppv||ppppvvppv|pvvpp|vvvpv|p}}vvv}vv}}wwvvww}}vv}}}}w}}}}w}}w}}}}}}{}}}}}}}}}×ýÿÿÿÿÿà�}}}w}}}ww}w}}w}www}}}w}}w}}w}ww}}}}}{}}{}}}}w}ww}}w}w}}www{}‘}w}}w}}}{}w}ww}{vv}{}wvww}wv{}{wvwwvw}}}ww}vv{www}w}{wvvwww{vvvy|yvvvwvvvv{vvvvvww{w{vvvvwwvvvvvw{˜Çèÿÿÿÿÿý�vvvvvvvvuuvuvuvvuuvvvuvuvvvvvuvuvuuuuvuuuuuuuvuuuuullvultuuuvy{”˜›�ÇÇÌßòýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿ÷Y!=qªõÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75577555575555555757557557575575557577575775777757777575777777777777557777777775777575775777777757755777777777555775777777775757575755755775577775555575555555555577575555555557575577555555577555555775557557575755777555777557575777557775555577Ó×ÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿüüüþüüþüýýýúÕ�solpp|vpopppvpppppppvppppppv|pp}}vppppv}pppppppp}ppppv}}vvvppvv}wv}}}vv}vv}}wvw}}w}ww}vvwvw}}}wwwvw}}www}}w{}Ùþÿÿÿÿÿà{}ww}w}}w}w}‘}}ww}w}w}w}www}}w}wv}w}}}}}}}�}}w}www}‘wvw}www}}w}wvwv}}}‘}www}wwvvwv}www}wwwwvvwvw{}}}vwwvww}wwwvvwvv}vvvvwvvvvvv{w{}}wvvv{wwwvvuuvvv{wv{›ž×ñÿÿÿÿÿÿý×vvuvuvw{|vvvvvvvvvyv{vvvvvuuuuvvuvuvuuuvulouuvuuuvvuluuvuvvvuuulluuulltu{ßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@óÿÿÿÿÿ÷Z!   !! =wªõÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿæÓ755757557557777775757777757755775757755777755575757575757577577755777777557577777757777777775557775757577875577757577755777775755775755755557555555775557577775755757575575575575777755755755575555755557777555575555757555555555755755575775555557ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüýüüüýüüüõÕ�qpppvvppppvppppppppv|ppppppvvppv}}pppppp|vppppppv}vpvv|vv}vvv}vvv}}w}vvwvw}}}vvw}}}}v}ww}v}}ww}w}w}w}www}}}}�×þÿÿÿÿÿßww}wwww}}}}}}}}w}}}w}}}}}}w}w}v}}}}}ww}ww}w}www}}}w}}}w}}{}}�}}}}ww}wvwvv}ww}wwwwwwvwv}{}{vvvvwwwwvvwww{vvwvvw}{vvvvvvvvv{w}{uvwwvvvvv{˜™žÇ×è÷ÿÿÿÿÿÿÿÿúÌ{vvvuvvvw{vvuvvuvvvvvvvuvvuuvuvvvvuuuvuuuuuuuvvuuuvuuuuuuuuvuuluvuuutuCuuu�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿóZ   7}ªõÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÔ5575557755557775755775757777775777777=77557575775577577777777777757777775777757757777757557757557577577777775577777755575755577557555755775775575575555777757557555775775555755775577757555557775755555775575557557775577577577555555775555775555775557577Ö×ÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿüüüüüýýüüþü÷ÓŽspppppvppppppppppppp|}ppp}|ppvvppvpvppvvv}vpp}}pp|v|v|v}v}wv}}}v}}v}vw}}vw}vvwvvw}vwww}�}w}}}}wwwv}}×þÿÿÿÿÿàv}}w}ww}}w}w}}}w}}€‘}}}}w}w‘}}}}}}}w}}}}}}}}w}}wwww}}w}}w}w}}www}}{}w}{vw}}}vw}www}vww}w}}wvvwww}w}wwvvwwwvw}w}www{}}wvvwvvvwvvwvv{}vvvvvv}}vvvvvvvvž×æñ÷ýÿÿÿÿÿÿÿÿÿü÷èžv}}vvuv{vvvvvuuuuvv{vvuuuvvvuuuuvuoltuvuuvvvuuuuuvuluvuvultluuluvuuulllluuu˜üÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y    =qªõÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿæÓ555575575557557555575757555777755775777577577577$77757757777755777755=777755557777777775777777775775557757575575755555755557555757557575555557555557777555575555557755755755555557775555555777555555557555775575777777755555ÓÓÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþüýýüüüþüüüùÓ�spvpppppppppppvpppppvvppv|}vpp}pvp}vppv|v}pvpv|vpv}}vvv}wvv}}}}w}}}ww}w}}wv}}ww}vv}}w}w}w}}}ww}}}}w}ww×ýÿÿÿÿÿàwww}w}}}}}w}{w}{}}}}w}ww‘}w}}}}}w}w}w}wv‘�w}{}}}ww}w}w}w}w}vww}}}wv}wwwwvwwwwvw}wvv}vvvvw}{vvvww{wwvvww{vvvvvvvvwvvvvvvw{wvv}{vvvvvñÿÿÿÿÿÿÿþýúõñèß×›vvv{vvuvvvvvvvvvuuvvvvuuvuuvvvvuuvuuuouvuuvuvuuuuuvuuuuvuuuoooluuuluuttltuvu{úÿòÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ@òÿÿÿÿÿóY  qªõÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿèÓ775777555575777575575555757777775777577757757577575777775775777755775777757=777777777777775557=55777777775557555755557555755775557555555575775557557555555575575555575575555555557557575555555555777555575555555555755557775555555ÓØÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿüüüüüýüýüýýú¬�s}}vpvvppvpppppvvvpppppppp}}pppvpppvvv}}pvv}}vvv}vw}vvv}wv}}}w}vvvvvwww}vww}}w}vww}w}}{}}}v}}w}}}}}{×þÿÿÿÿÿà�}}}}}}w}}}www�}}}‘‘w}w‘{}}w}w‘}}}ww}w}}w}}}‘‘}}}}�}www}ww}w}}}}w}�}vw}}}ww}wvvwwwwwvwv}v{wvw}ww}wvwwvvvwvvw}w}wv{}ww{}vvvvvwwvvvvuvwvvvvvòÿÿÿþúõèßÊž˜{vuvvuyvwvyvvvuvuuuuvuvvyuuvuvvuvvuuuvvyuuvuuuvvuoluvvvvuuuuotuuuuuuouultuulluluuuzúÿßvÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–!@òÿÿÿÿÿ÷Z!   pªõÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ57555555575555555575577557575775777777775777575$75777777777577777757777777=77777777777777775755775777757755575555577577755555555557757557557755557557575557575557775555555ÓÓÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþüüþüüýüýüü÷ÖŽ}v|pppppvpppvpppppvvvpoppv}}|vpppppv|vv}vp}}vvvvw}vv}vv}wwwww}}vv}}vv}vw}}}w}w}}}}}wwww}}}}w}}}}}w}www}×ýÿÿÿÿÿà‘}}}}}w}}w‘w}w‘�}}}w}w}}}}�}w}}w}}}}}}}w}€}}}}w}}}www}www}}}}}w}}{}�}wwwwv}w}wwwwvw}wwv}}www}}}wwwvvvwvvwwvw}{wwwvwwvw}{vvvvvvwvvvvv{vvv}èÿÿ÷מ˜vvv{vuvuvvvvyvvvvvvuuuuvvvvvuvvuvvuvvvyuvuuvvvuvuuuuuuuuuvvvuuuuutuuuuuuuuuutuuuuuullluv÷ÿÌv{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;óÿÿÿÿÿ÷Z  !qªíÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿèÓ55777755778775555557777757775577777577775578757757777777557757777777$777777757777777757575775777555755555555575777578555755775577555557555555757555555775755775575555775Ó×ÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿüüþüüýüüýýüú¬Žppppppoppppvvppppvvpppppppvvvvvpvvpp}}v|ppw}vvvv}}}}wwwwvv}vv}vvv}}ww}wwv}}}wvvvwww}vwwww}}www}}}}}}}×þÿÿÿÿÿà�}}ww}w‘�}}}‘�}}w€}ww}}‘w}‘wwvw‘‘}w}}}}{}}}}ww}w}w}w}}}}}w}}www}}ww}}‘wvwwwwwww}w}w}}wwwwvv}{}wvw}w}}w}wwvvwwwvwvvvvww}}{vv{}vw}vvvñÿÿÓ{wvvv}}vvvuvvvvvvvuvvvuuvuyv{wvvvvvvuuuuvvvvuuvuvuuvvvvuuuuuuuluuvvuvvuluvuuvuvvuCuuvluultu÷ÿÇuuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Z ! !$s­õÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5755755555575557755575557555757557575775575757775777775577777557577777767777777775777577775575577557777557575555575555555755557577557555555555575575755755557555ÓÓÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþüüýüýüýüüüùÕ�qoopppppvpppppopvvvppppppppvpvvvvvvvv}vvvvvwvvvww}}}}}}wvvwvv}}vww}}}w}}}wvv}wvwv}}}}}w}}w}}}wvv}w}}}}Ùþÿÿÿÿÿß�}}}}w‘‘}}}}}}}}}}}‘}w‘}}}w}�}}}}}}}}}}}}}}}}}www}}}}w‘w}}v}w}}w}w}w}ww}}}w}www}}}wwwwwwvvw}}wwvv}{v}w}vvvwww}{vvvvww}{vwvvw}}v{}vvvèÿÿ˜vvvv{w{vvvvvvvwvvvuvvvvvuvvvvvvvvvvvvuvvuvvvuuvuvvvuvvuuuvvouuuluuvvvvuluvuuuuuuvuuvuuuulluõÿÇulßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@óÿÿÿÿÿóZ !sªõÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75557757557557555555775577557777575777575=777=577757=7757777775777777775755555575557557555575775777755575577755575557555555557555555577755757555557555577Ó×ÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿüüüþüüýüýýþ÷Ó�Žppvvppppppvvpppvv|}pvvpvvvpvv}v}}vvvvvvvw}w}w}www}wvvw}}}w}v}}w}vw}}}}}€}w}}}}w}w}}w}w}}}}wwwww}}}×þÿÿÿÿÿà�}}ww}‘w}}}}}}}{}}}}}}}‘}}}‘}}}}}}‘}w}}}w}}}}}}w}}}}}}w}}}w‘}w}}w}wv}www}w}}wwwww}wwvwww}v{}wwwww}{}w}vwwwwwww}ww}www}}wvww}vvvw}vvv}wvwwvvv{wèÿú�vwvwvvvvv}v{vvwvvvuvwvvvvuvvvuvuvuuuouvwvuuvvvvuuvuuuvvuvwvuovuoluvvuuulluvuluouuuuluuuuuuuèÿÆvuÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y! !  =qªõÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ555575555575757557575557577757557757777757755777777777775577777757777557577777575557557755557555775555555575557555575755775557555557557757555755757555775755757577ÓÓÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþüüýüýüýüüüùÖ�~ppvpvppopvvvppv}vpv}vpp}}pvvvvv}}vvvvvvv}}}}}wvvwwvvw}}}ww}}v}w}vw}w}}w}}}v}}}}w}w}}}}}wwv}}}}×ýÿÿÿÿÿßw}}}}�w}}}ww}}}}}w‘�}}�}}}‘vw}w}}}w}}w}w}}w}}w}v}w}}w}}wv}}vw}w}wwww}}w}wvww}}wwvww}{w}}ww}}}}www}wvwwwwv}{vvvw}wvv{vv{wvvv}}èÿ÷†w{wvvvvv{vvvwvvvuvvyvvvvvuuvuvvuuuvuuv{vvuuvvvvuuuuuvvuvuvuuvvuuuuuuuuuuuvuuutluvutluvuuuoçÿÇuu›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ! @óÿÿÿÿÿ÷Z    q¥íÿÿÿÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5575555757757775757577555575757577757757757777757777777877=7777777777755=7777577757555775555577575777555755555575755755555555555557555555575557555575555577Ó×ÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿüüþüüýýüýýþ÷ÓŽsppppp|ppvvpvppv|vpvvvv}}vvv}vw}wvvvwvvv}wvww}w}}}w}}v}vwww}}vv}}}ww}w}vwwwv‘wv}}}}}}ww}w}}}}}}}w}w}wwv×þÿÿÿÿÿà}}}‘�}}}w}}}}ww}}}w}}}}}}}}www‘}}}v}}}w€}}}}}{}}}w}w}w}w}}}�}}w}}ww}www}}wvw}ww}w}wvwvw}w}}w}wwwwvvw{}wwv{}w}{}w}wv{}}vwvv{}vwvvvwv}vwèÿõvvwvv{}wyvvvvvv{vvvvvvvvwwvvvvwwvvv{vvvvvvvuuuuvvvvuvuuoouuvuuvuuvuuvvvuuuuuvuvuooultuuoluußÿ�uu˜ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY !=qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ575557777575777557577777757577777755577777777757$777757777777777775575577575557755755755755577755575555557775757555777557ÓÓÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþüüþüüüýüüüùÓŽqppvvpppvvpppvvpvvvvvvo}}}vvv}v}}vvwwwv}w}vww}}wwv}v}}vwwwv}}ww}w}}w}w}vvw}}wv}}}}}}}w}}}w}}}w}}}}}}}w}×ýÿÿÿÿÿà�}‘}}}}}}}}w}}}}}}}ww}‘}}}{}}w}}}}}}w}}}}}}}}w}www}}}}�}}w}www}}}}}ww}w}}www}}}wvv}}w}}{wv}wwwwvvw}wvvwwwwwvwwwwvwvw{vwvvvvww}{wwâÿõvvvvvvwwvvvv{vvwvvvvvwwvuvvvuvyvvwvvw{vvvvuvuuuuvvvuvvuuuuuuvuuouvuuuvvvvvvuvvvultluluuuuuoßþÆuu{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿ÷Z  =sªõÿÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5575577575555557577577577777757757777557775577775777777757=75777777757577775777557777577577575755757555757557575555775555777555555577777555555555577575555755575555555557Ó×ÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿüüýüýüýýýýþú¬Žppppwpvvvpopvv}vpvvv}vvv}vv}vvvv}}}}}}wwv}}wvwvvwwvww}www}}ww}}ww}}}}wv}w}}ww}}w}}w}}}}w}}}}}}w}}}×þÿÿÿÿÿà}}}}}}}}}}}}}}}}‘}}}w}}‘‘‘‘}}‘€€w€v}}}}w}}}}}w}}}ww}}}}w}}}wwwwww}€}w}}�w}}}{}w}ww}}ww{}vv{}wwv}w}wvvvwwwwwww}wvvvv}wwwvv{vvvèÿè{vv}vwvvvuwvvvvuvwyvvv{}vvvvuvvuvvuvvvuuvuvvuuvvv{vuvvvvvvuvvuuuouvuuuoltltluuuuuuvuuuluouußÿ�uouüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@óÿÿÿÿÿóY!qªõÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ555555555577577555757555557557557578755775755755577777577777777777577777557777577757575775557575755555575757555557755757555557575555557555757555555555555ÓÓÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿþýüýüýüüýüüùÕ�qppppvv|vppvvv|vvpvvw}vvvvw}}www}}}}w}wwvww}vwwvwww}ww}v}}w}}wv}w}wwwv}}wv}}wvww}}}}v}}}}}}}}}}}Úþÿÿÿÿÿß�}}}}}}}w}}w}}}}‘w}}w‘‘}}‘�€}}€}}}}}w}}}}w}}}{}w}w}}w}wv{ww}}}www}}}}{vww}w}wwv}}}}{vw}{wwvwwvww}{v}vv}vww}}vvvvwvàÿè{vv{wvwvvvwvv{wuvvvvuvw{vvvvvuvvvvvuvvvuuuvvvvvvvuvvvuvwvvuuuvvouuuuuotuouuoouuuuuvvululuou×ÿÇuttúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Y! pªõÿþÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5555555775775755555557577555755575777577557757555757577575757577575777575577785775577777755775757557555755755775555577575555557775755777755555557575555Ó×ÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿüüýüýýüþýýý÷Õ�}qvppppw}vvvvvvvvvvv}vvvv}wvwvvvwwvv}}}wvwwvvw}}}}}vv}ww}}}}}}vwww}ww}‘€}}}}w}}w}}w}‘v}�}}}}}w}}}}}×þÿÿÿÿÿà‘‘}w}}}€}}‘}‘w}‘‘�}}}}}‘}}‘‘}}}}}}€}w}}}w}}€�€}}�‘}}}}}w}}}}ww}ww}w}}‘}}www}wwwww}w}}ww}}}}}wwvv}}{}vw}}}wvwwwv}vvwww}|}vvv{wvvvv{}ww}wvßÿâv{vvwvwvuvvvvvvvwvvvuvvvv{vvvvuvvvvvvvvvvvuvvvvuluvuuuuouvvuvuuoouvuuvvuuultuvvultuuouuuuu×þ�uoo÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!;óÿÿÿÿÿ÷Z! !!q¬õÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5775557755557557777577755577755$755775775775757777775757777775777757577557555557777777575555557777555757557575555757755555577555555555777757555575775575ÓÓþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþýüþüýüýüþüùÖ�}ppvvppvv}}}vvv}vvvwwvvvvwvv}}vvvwvv}ww}ww}}vv}wwwv}}}}}vww}}}vv}}}}}‘�}}w}}}}}w}}}}}€w}}w}}}}}×ýÿÿÿÿÿß™‘}w}}}‘}‘‘‘}}}}}�‘‘‘}}}}}}}}}€}‘�}‘}}}}}}}}}w}w}}}‘‘}}}}}}w}}}}}}w}w}}{w}}}}vwvvw}vw}}ww}www}}ww}vv{vvwwvvvw}{vvwwv{}w{vvvw{vvv}}{wwvßÿèvvvvw{vvvyvvvv}yvvvvvvvvvv{vvvvvyvvuvvvvuuvvyvvvuuuuvuuuuouuvuvuuuuvuvvvvuuuuuuvvulouuuuutoÌþÆutuèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!;òÿÿÿÿÿóZ !sªõÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5555755577775855777555575557557755755555577577787!7755577575575577775757575555775577557557575575555555775755755555557555555775755777755755575555Ó×ÿÿÿÿÿÿþÿÿÿþÿþÿþÿÿüüþüýüýýüýüúÓŽsvv|vvvpvvvvvvvv}wvv}w}wwwvvwvw}ww}}}vv}w}}}}www}}w‘wwv}}}}w}{}vw}}www}}}}}}w}w}}}}w}}}w}‘}}‘}}×þÿÿÿÿÿà‘€‘}}}}}}}}}}€€}}}}‘}}‘}}�‘€}}‘‘}}}‘v‘‘‘}}}}w}}}}}}}}}}}‘}}w}w}€‘}}ww}}}ww}}wwvww}wwwwww}w}wvwwww}wv}wwww}}vvw{}wvvwvwwvwwvwvvvàÿè{vv}wvwwuvvvvv{vvuvvwwvvuvvvvvuvwvuuvvvwvuvuvvvvuuvvuvvvuuuvuouuvuouuuvuuvvvulluvuuuvuououuÊýÇuuláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z !=qªõÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ755755775555775757775557757775755575757577575$5577777777557777557777757777777757577755577555775755555555555777555555555755555555557555555557577555575ÓÓÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿþüüýüþüýýþüùÕ�}vvvvvvvpvvv}vvv}}vv}}}}vvw}vw}}}}w}vvw}}}ww}vv}w‘www}}}}}}}}www}}}ww}}}}w}}}}}}}}w}}}}}}}}‘}}}�}}Ùþÿÿÿÿÿß�€�‘}}}}}‘‘}}}}}€‘}w}}}‘}‘}}}�‘}}}}}‘}‘}}‘}}w}}}}}}}}w‘�}w}}}}�w}}wwwww}w}vwwwvww}wvvvwvvvvv}}w}}ww}www{vvvwvvwwwww}{vvvvvßÿñww}{vwvvuwvvvvvvv{vvvvuvwwuuuvvvuvvuvwvvuuvwvvvvvvuuuvvvvvvtluvuuuvuuouvvuouuouvvuuuuololÇýÇvoZ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Z =sªõÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ555575555555575555555557575755755777577777557757757555=77777755777777777755557755557557555577755575555775557555555567557555555555755555555557775557755557555755Ó×ÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿüüþüþüþüþüüúÕ�}pvvv}}vvvv}wvvwvvvvv}}wwvv}}}vww}w}ww}ww}}}vvw}w}}v}w}wwvw}}w}}}‘}ww}}�}w}w}}w}}}}}}}}}}w}}}}w‘‘w×þÿÿÿÿÿà‘}}}w}‘€‘�}}}}€}}}}€}}}}}}€}‘}}‘}‘‘}}}}‘}}}}‘€}}}ww}}}}}}w}w}}w}}}}}}}ww}}ww}}w}}}wwvwwvvwwwwvvvv{}v}wwwvwwwvvww{ßþèvvvvvw{vvvvvwvvvwvvvwwvuvv{vvvvvvvuuuvvvuvovvvuuvuvvuvvvuuvvuuvuuuvvuuuuuulluultouuuuuuuuuÆýÌwtlÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!@óÿÿÿÿÿ÷Y! qªõÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ55557575557555557555775775557575575557775575777=755775775775575775757575775577775555555577755775557557575755557577557757555755755555555575757577755555555755ÓÓÿÿþÿÿÿÿþÿþÿþÿÿÿÿÿþüüþüýüþüüþõÕ�}vwvvw}v}vv}}}vvvvvwvvw}wwvw}}}vwv}}}}vw}w}}}}}}vwv}}}}}w}}vw}}w}}}‘}}}ww}}}}w}}}w}}}}}}}}}w}w}}w}‘}}×þÿÿÿÿÿß‘}}‘}}}}}}‘�‘‘}}‘}}}}€‘}}}}}}}}}‘}€}}}}}}€‘‘}‘‘}‘}}€�}}w}}w}w}w}ww}w}}w}ww}}w}w}w}wwvvvw}wv}vwvwwvvwwvvwvvvwvw}Ùÿñ{v{vvvvvvvwwwvwvwwuvwvvvvvvvvvvuuvuvuvvuvvuuvuuuvvuvvvvuuuvvuvuuuvvvvvvuuutuuuuuluoooluvuužýÙuuCÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@òÿÿÿÿÿóZ!qªõÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ55557755577555555557775755575757555777557757557775777777757777757777755777577755755557557555757557555555557555555575555575575555755555555577755555555Ó×ÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿüüþüýüþüþüþúÕ�sw}vvvvwwvvvv}}wvw}wvvvw}}w}wwv}ww}}}}wvw}}}wwwww}}}}}}}}w}}}}}w}ww}}}w}}}}}w�}}‘}}}}}}}}}}}×þÿÿÿÿÿà�}}}‘}}‘}}w}}}}€}}}}€}}�}}€}€€}‘}}}}}}}}}}}}}}}€}}}}}w}}}www}}}www}}w}w}}}v}}}w}wwww}wvvw}}w}w}wwvwwww}vvvw}w}{}wwwvvvwßÿëvvvvvwvwwwvuvwvwwvuwvvvwwvvvvvvvvvvv{vvvuuuvvvvvvuuuvvvvuvuvvuouvuuuuuuuouvuvuvuuouuuuvvuo›üÌwulÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !@óÿÿÿÿÿ÷Z  =s¥õÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ55575775575555755777777777555==7777777757557777775777777755777555575775555757ÓÓÿÿüÿÿÿþÿÿþÿÿÿþÿÿÿþýüþüþüþüþüùÕ�}}}vvvvwwvvwv}}}ww}}}vvvvw}w}}vvvww}}w}w}ww}wvvvvv}}ww}w}}}}}}}}‘}v}v}‘‘w}}w}}}}w}‘w}}}‘‘}}}}}}}Ùþÿÿÿÿÿà‘}w}}}}}}}}}}‘}}}€‘‘}}}€}€‘‘}‘}}}}}}}}}}}}}}w}}}}�‘}w}‘‘w}}}}wvvw}v}‘}}}}}}}}}}wvw{w}vw}www}vw}w}w}}}}ww}}vvwwwvv}}ww}{vvv×ÿòvuvv}}w}wwvvvv}{wuvvvvvvvvuvvv{vvvuvvvvvvuvyvvvvvvvuvvvvuvvuuuuuvvvuouuouvvuvvuoouuuuuvuuu›üÌvulÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿóY   =sªíÿÿþÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ55775557577757775777555777555775777755775777557557757557755577575577755ÓØÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿüüþþüýüþüþüúÕ�}vvvvwww}wvvwwvwvwv}}www}}}}}}wwwww}}}w}}}vv}}}}}wv}}w}}}vwww�}w}}w}}}w€‘}}}}}}}w}}}‘}}}}}}}}}}Ùþÿÿÿÿÿà�}‘€}}}}}}‘‘w}€‘}€}}‘‘}}}}}}‘}}}€}}‘}}}}€}}}}‘}w€}}w}}}‘}}‘w}vv}wv}w}w}w}w}‘}}}}ww}w}}vw}vvw}}w}wwwwwww}}ww}w}v{wwwvwvvvw}vvv×þñ{vvw{}wvvywwv{vvvvvvvv{w{vwwvvvvvuvvwvuvvwvvvvvvuuuvvvuvvuvuvvvuuvuvuuovuvvlouvouuuuuuuoltu˜üÙ{ovÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;óÿÿÿÿÿ÷Z    =qªõÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ77775577775575575777557755577775775577777577557755557577557575755757557575575577ÓÓþÿýÿÿÿÿþÿþÿÿÿÿÿÿÿþüüüþüýþüþüúÖ }vvvvw}w}}vvvw}vwvvw}}}}}}}}ww}w}ww}}}w}}ww}‘}}}vvw}}}ww}wwv}}}}}ww}}}}}}�‘�}}w}}}}}}}w}}}}}}}}}}Úþÿÿÿÿÿà‘‘€€‘‘}}‘w}w}‘‘‘}}‘‘}}‘‘}}€}}}€}}}}}}�‘}}€‘}}}}}}}}‘}w}�}}}}w‘‘}w}w}}wwwww}w}}w}}{}}vwww}wvw}}}vw}ww}vvwvvvv}ww}}wwvv}wvvvvvwvvÌÿõ}vvvvvvvvvvww}{vvvv{vvvvw}{vuvvvvv}vvvwyvvvvvvuuvv{vvvvuvvvuvvvvvuuuuuuuuuuvuuouuououlllo˜üß{uvžþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!9óÿÿÿÿÿ÷Z!=qªõþÿþÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75757557577577755555777=7777557557575775575577575755555755575Ó×ÿÿÿÿÿþÿÿÿÿÿþÿÿþÿÿüýýýýýýüþüþúÕ��vvvvw}vvwwwwwwwwvvv}}}www}}vw}w}}www}w}w}wv}w}}}ww}}}}}v}}}}}}}}}}}}}}}w}}}}}}w}}}}}}}}}}}}}×þÿÿÿÿÿà‘}}}}}‘‘}}}‘‘}}‘‘}}w}€€‘}}‘€‘}}}}}}}�‘€}‘‘}}}‘‘€‘}}}}€€}}}}}}}ww‘w}}w}w}}}}}ww}}{w}}}}w}ww}w}w{}ww}ww}wvwww}{}}wvw}wvvwvvwvvw}w×ÿè{w}vvv{vvvvvwwvwvvvvvvvwvvvvvvuvvvv{wvwuvvuvyvvvvuvvvuuuvuuvvvvuuvuvvuuuvuvouvuuouvuuvuuuu˜üßvuv›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!@òÿÿÿÿÿóY  !=sªõÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5555775775775775755575777777577577775555577755755755777755ÓÓÿþÿþÿÿÿÿþÿÿÿÿÿÿÿÿþýüüýüýýþüüõÕ�}vvvvv}}wvv}}}wvwvvvw}}wvww}vvw}v}}wvww}w}wvw}w}w}}}}}}}wv}‘}}}}}}}vv}}}}}}}}}}}}}‘‘}}‘}}}}}}‘‘€Úþÿÿÿÿÿà™€}}}‘‘}}}€‘€}}‘}}}}}}}€‘‘}}‘�‘}}}}w}‘™€}€€�‘€}}}}‘‘�‘}}}}}}}‘€}}}}}}}}}w}}}‘€�}}}}}ww}}}vwww}}}}w}}w}ww}w}}}w}}}}wwvvvwvvvvvw}w}}wwwvÓÿóvv}{vvvvwvuvwvwwvvvvwwvvv{wvwvuv{vvw}wvuvvvuvvvvvvvvvvuouvvvvvvuouvvvvouvvvuouvvuuvvouuvvuüßxlv˜ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ@óÿÿÿÿÿ÷Z ! =}ªõÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè×575577555575755555775777575555575777577575775755577557555775575775777555777Ó×ÿÿÿÿÿþÿþÿÿÿþÿÿþÿÿüýüþýþýþüþþúÕ�Ž}wvv}}vwvv}wvv}}}}w}w}wvw}wv}}ww}wv}}}}w}}}}}}}}}}w}}}w}}}}w}}w}}}ww‘v}€}}}}}}}}}}}}}}}}}‘}}‘}}}‘}×þÿÿÿÿÿà‘}}}‘‘}‘‘‘}‘‘}€}‘‘�‘}‘‘}}}}}}}€€}}}}}‘}}}‘}€}}}}}}}}v}}}w{}w}}ww}w}}}ww}}wwwwwww}}wwwwww}w}ww}}}w{}wwwww}vÌþõ‘www}vvvvvvvvvwvvvvvvvvuvwvvvuvvvvuvvw{vvuvvvvuvvvvuvuouvuuuvuvvuuuuvuuuvuuuuuuvuouvuluuuo{úâuuu˜ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ @óÿÿÿÿÿ÷Y=sªõÿÿÿÿÿÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5555557575757777557755777777757877777775575755775575555757555575757ÓÓÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿþýýüüýüýýüüúÕ�Ž}}}vw}vvvv}ww}}}}}ww}}wv}wv}}wv}}}}}}}}}}}wvww}vw}ww}v}}}€}w}}v}}}}}}}}}}}}}}w}€}‘}}}}‘}‘‘×ýÿÿÿÿÿà�}}‘‘‘‘�‘‘‘‘€€‘}}‘‘‘€}‘‘€‘}}w}�‘€‘‘‘‘}‘}}}}}‘‘}}}}}‘}‘™}}}}}}‘‘‘w}}‘‘‘}‘}}}}w}}}w}}}}}vww}}}w}}w}ww}w}wvwww}}wwwvwwvvvw}ww{}}}}wwvvwvÓþ÷˜}w}wwvvvvvvvvvw}vvvuvvvuvvvuvvvvvvvvwvvvvvvvvuuuuvvvouuvuvuuvuuvvuoouvuouuuvuoouvuuuvulootyúèyou{ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!;òÿÿÿÿÿóZ!  =qªíÿþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ555777575757557777575575757577777757$7757!75777755557557555775577557757577777557Ó×ÿÿÿÿÿþÿýÿþÿÿÿþÿÿÿüüýýþýþýþýþúÕ�Žw}vvw}vvwwvvwwvw}}wwww}}w}vw}}}}vw}}w}}}ww}}}w}}w}}}}}}}w}‘}}w}�€}}w}}}}}}}}}}}}}}}}}}‘}}}}}‘€}}}‘}}‘}}Ùþÿÿÿÿÿà�‘}}‘‘€�}w€‘}}€‘�}‘‘€‘}‘‘‘�}‘€‘}€}}€€}}‘‘}}}}‘}}}}}}�}w}}}}}}}}}www}}wwwww}ww}}}}w}}}wwwww}www}vw}wwwwvw}wvÊþ÷vwvvvw}vvw{vvvv{}v{vvvvvv{vvvvwvvvvvvuuvvuvvvvvvuvvvuvvvuuvvvvvvvvuuuvuuuvvvuvuuuuoovvuuuovúè{uu{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@óÿÿÿÿÿóY!!!!   !qªõÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5577577557555775757775557577557777757577557775777755555575ÓÓÿþÿþÿÿÿÿÿÿþÿÿÿþÿÿþþüþüþüþüþüùÖ�}vwvvwwvvw}vv}}vvvw}}wvvww}}wvw}}www}}ww}ww}}}}}w}}w}}w}}}‘‘}v}}w}}€}}}}w}‘}}}}}}}}}}w}}}}}€}}}}×þÿÿÿÿÿ߀}€€}}‘‘‘‘}w‘‘€‘w}€‘‘‘}}‘‘€}‘€€‘‘‘€}‘‘‘‘‘�‘‘‘‘}}‘}}}}‘‘}‘‘}}}}�‘}}}}}}}‘}}}wwww}}}ww}}}‘€}}w}ww}w}wwwww}{}w}wvvvwwwvww}wvww}vvww}wvÇþ÷ƒvwvvv}}wvvvvvvwvvw}vvwvvvuv{wvw{vvvuuuvuvwvvuvuvuvyvvuuuvvvuuvvvuvvuvvuvvuuvulluuuvuoluu÷è{vvvüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Z! ! p¥íÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5775575555777577555575757757577577555775557577577555757555775555777575755775Ó×ÿÿÿÿÿþÿþÿþÿÿþÿÿÿÿüüþüþþüþýþüúÕ�}vvwww}wv}}vv}}wvv}}}vvw}}w}w}}}w}}}}}w}w}w}w}}}}}w}v}}}w}}}}}€}v}}}}}}}}w}}}}}}}}}}}}}}}€}}}}}}Ùýÿÿÿÿÿà‘‘}}}€€€}€}}‘}}‘‘€‘€‘€‘}}}}‘‘€�‘€‘}€}€�}}‘€�}}}}}}}}w}}}}}}}}w}}vw}w}}}}}w}}}w}}}w}ww}wwv}w}vwwww}}ww{ww}}wwwÊþ÷vwvuw}w{wvv}vvvv}vv{wvwvvvvvvwvvvvwvuvvvuvvv{vvvvvuvvvvvvvuuvuuuvuvuvvuuuuuuuouvuuuuuvuuuuu÷ò{uuuüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ@óÿÿÿÿÿóY  =sªõÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ57775577577575557777555755775777!577=775=55557755757577577777755755755775575777ÓÓÿüÿþÿÿÿÿÿÿÿÿÿÿþÿÿþýüþüþýþüüüúÕ�}vv}}v}}w}wvv}}wwvvvvv}}}w}ww}}w}}}}wvvvww}}}}wvwv}w}}}}}w}}}}}}}}}‘}}}}w}‘‘}}}}}‘‘}}}}}}}‘×þÿÿÿÿÿæ™}}€‘}‘‘}}}}}}‘}}}‘¡€‘‘‘}}‘‘‘€}€€}}�‘}}}‘‘‘}‘‘‘‘}€}}}}‘‘}‘‘‘‘}}}‘‘€}}}}}}w}}w}}}}}}}w}‘}‘}w}}}}w}}w}}}‘}ww}}}}wwwww}w}}}}}}{}vv}}w}vww}wvvvvv}Òÿú�vvwvvvv}vvv}{vwwvvw}{uvuvvvvvvvvvvvvvvvvvvwuuvvvuvvvvvvwvuuvuouvuouuuuvuuoouuuvvuuuuuuvvu÷õ{ouvüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;òÿÿÿÿÿ÷Z!!   =}ªíÿÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ57757775777557555!7575$7755!755775575$7577777557757777757777757557777Ó×ÿÿÿÿÿþÿüÿþÿþÿÿÿÿÿüþþýþüþüþþþúÕ�Žvvwwvv}wvvwwww}}ww}}w}}}wwww}}}}ww}}}}}}}}}}w}}w}}w}‘}}}}v}}}}}}}}}}}}w‘}}}}}‘}}}}}}‘}}‘�}}}}}‘‘Ùýÿÿÿÿÿà‘‘}€}‘€}}€}}}‘‘€}}}‘‘}}‘¤}}€‘‘‘}‘}}‘�€}}}�€‘‘‘}}‘}‘}}}}}‘‘w}}}}}‘}w}}}}}}}}}www}www}}}www}w}}}v}‘v{}www}}}}vwww}{wÓýúww}wwvvwvvyvvvvvvvwvwvvvvvwwvvvwvvvvvvvvvuvvvuvuvuvvvuvvuvuuuuuvvuuvuvvvvuuvvoouvuuuvuuuvoõõ{uouúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @óÿÿÿÿÿóZ!=qªõÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ777577777577555757755775777775757577575777757775777777577575ÓÓÿüÿþÿÿÿÿÿÿÿÿÿüÿÿÿþüýüýþýþüüüúÖ’�}vvwwvw}}}vvwwvvw}}}}}}w}w}wvw}wv}}}}€}�}wvw}}}}}}}w}}}w}}}}}}}w}}}}w}w}}}}‘‘}}}}}}}‘}}}}}}€}}‘‘×þÿÿÿÿÿà�‘‘}‘‘}}}€}‘}}}}‘}}€€‘‘‘‘‘‘‘}‘‘}w‘‘‘‘‘‘‘}‘‘‘}}€‘‘}}}}}€‘‘‘}‘‘‘‘‘}‘}}}}}‘‘}}}}w}}}�‘}}w}‘}www}w}}}w}}}}ww}w}wvwwwvw}{v}w}}}wvvwww}wžÿú˜{vvvvvvvvvvvvvvvvvvvv}vuvwvuuvvvvuuvvuvuvvuvvvvvuvvvvvvuvuuuuvvvvuvvvuuuuuouvuvvvuouoò÷{luo÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÇßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Y     q¥õþÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75555557557557775575777755777577777557557Ô×ÿÿÿÿÿþÿþÿüÿþÿÿÿÿÿüþýþýýüþýþþúÕ Žw}vvvv}}vvvv}}vv}}}w}vvw}w}}w}w}w}}}vw}}}}v}}}}}}}}w}}}}}}}}}}}}}€}}}}}}}}}}}€}}}}}€}}}Ùþÿÿÿÿÿà‘€‘}}}}‘€€‘€‘‘‘€}€€‘}‘™‘‘}€‘‘‘‘‘€€€‘}€€€}}‘�€€}}}}€}€‘}€}}�}}}}}}}}}}}v}}}}}}}}}}}w}}}}wv}ww}wv}}}w}ww{}wwvw}vvvÇýú‘vvvwvwwwvw}w}wvvvvvv{vwvvvv{vuwuvvv{}vvuvvvvvvvuuvvuvuvvvvuvuvuuvuvvuuvuvvuovvuuouuuuuuvuñ÷{uvuòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Ìzu‚çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ! @óÿÿÿÿÿ÷Z ! =qšùÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ7757757775557577757777757777775775557577755777777777777775577555Ó×þÿÿüÿÿÿÿÿÿÿÿÿþÿÿÿþüþüýýþüþüüúÖ¢}vvvvvvvvvvvv}}}v}}}w}}}vw}}}}v}}wv}ww}vv}}}‘}‘}}}}}}}€}}}}‘‘‘}w}}}}}w}€‘}}}}}}‘‘}}}}‘}×ýÿÿÿÿÿà‘}}‘‘}}}}‘‘‘‘‘‘}}‘‘‘‘‘‘}‘‘}™‘‘‘‘‘}}‘‘‘‘‘}}‘‘}‘‘‘‘‘‘‘‘€€‘}}}}€€€}}w€}}}}}}}}}}€‘}w}‘�ww}}}}€wvw}}}}}}w}w}ww}w}}�}ww}v‘vw}}}}}www}ww}}wvwvwwvvwvžýý˜vvvvwwvww}{wvw{vvvvwvwvvvvvv}}vvvvw}wvw}w{vvuvvuvuuuvvvvvvvvvvuuouvuuuoovvvuuouulouvuèú{oulñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýß–uCCC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Z!!!   =q¥íþÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77557757555775775857557!55=577775775757757777577757777775557757757777557777Ó×ÿÿþÿÿÿüÿþÿþÿÿþÿÿÿüþýýýþüþþþþúÕ�Žvvvvwwwwww}w}wwv}}}v}}wvw}}}}}}vw}}}}}}}}wv}}}}}}}}}}}w}}}}}}}}}}}€}}}}}}}}}}}‘}}}‘‘}Ùþÿÿÿÿÿà‘€}}}‘€‘€€€€€‘�‘}‘}‘‘€€¡€}€‘}‘‘‘}‘‘}‘‘‘‘‘}‘€€}‘€€€}€}‘‘}}}}}‘}}‘}}�}}}}w}}}}ww}}}}w}w}}}v}}}}www}w}}}w}w}vww}ww}wvvwvžýý�vwv}vwvvwvvvwvvvwvvwvvwwvvvvvu{}vvvvwwvvvvvvvvvvuuvwvouvvvvuuvuvvuuvvuuuvuuuuuvuuuvuouuuèú˜uluñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÆylCZlCuÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !@óÿÿÿÿÿ÷Y ! =sªùÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ555575775575775777557777777!55$77577757557577777777777575755775555ÓÓþÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿþýþüþüþüþüýú¬s}v}}w}}}}v}vvv}w}vw}w}}wvv}}vvwvw}}}}wv}}w}}wwv}}}}}w}‘}}}}}}}}w}}}}v}}}}}}}}€‘€€€}}}}‘‘‘€}}€‘‘}€€€‘Úþÿÿÿÿÿ晑‘€}}}‘‘‘‘}}‘‘}‘‘‘}}‘}}}}‘‘‘¥‘}}}}}�‘‘}‘€}�‘‘‘‘‘}€€€€€}}‘‘‘‘‘™‘‘}‘}€�‘‘‘‘}}}‘€}}}}‘}‘‘‘‘‘}}}}}}}}w}}}}ww}€�}}}}}}www}}w}}www}vw}}vvvwvww}}žýý˜}wwwvvvvwvwvvwvvvvuuvwvvvvvwvvv}vuuuouuuvuvvuouvwvuvvuvuuououuouvuoouuvuvuvulouvououuèû˜uuvèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Ì{uCtlltllyßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@òÿÿÿÿÿóZ ! =ŽªõþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÔ577577575575757775555777575777577757575!5775755557775577777777577777757555Ó×ÿÿþÿþÿþÿüÿþÿþÿÿÿÿüþüþþýþýþþýúÕŽsw}vv}}w}}}v}}wvw}}w}w}w}}}ww}wvw}}}w}}}}}}}}}}}w}}}}}w}}‘w}}}w}}}}}}}}}}€}}}‘}}}€€}}€‘€}€Úþÿÿÿÿÿà‘}}€‘‘€‘€‘‘‘€€€}‘}‘€€‘}‘}‘‘‘‘}€‘€‘‘}€€€€€€‘‘‘}‘‘€€}}‘‘}}}}‘‘}}€}w‘v‘}}}}}}}}}}}}}}}}}}w}}www}}}wv}}v}wwwwv}www}}žýý™}w}ww}wwwvvvwvvwwvwvvwvvv}vvv{}vvvwvv{wvvvuvvvyvvvuvvvvvvuvvvvouvuuvuuvvuuvvuouvuvuluvuvuluàýƒouuèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”vlZllCZllCZ”õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ @óÿÿÿÿÿ÷Z!=}ªõÿÿÿÿþÿþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ7775777575555!57!577759755755$7!55!5!7757577777757577755577ÓÓþÿÿÿþÿÿÿÿÿÿÿþÿþÿÿþþüýüþþüþüþúÕ¢}}vv}}}vvvvv}}}}vvv}}}}}}}}}}}}‘}}}}}}}}}}}}}}wwvv}w‘}}}w}‘‘‘�‘}‘‘‘}}}‘}€}}}€‘}}}‘}€€}€}×ýÿÿÿÿÿà�}}}‘‘}}}‘‘‘€‘‘‘}‘‘‘}}‘‘}€‘‘}‘€}}€€‘™‘‘‘‘‘‘‘‘€}€‘‘‘‘€‘‘‘‘‘}‘€‘‘‘‘‘‘€‘€}}}}‘}}�‘‘}}‘‘}}}€}}}}w}}}v}}}‘‘‘‘�}ww}}}}}}}}}wvw}}}vw}www}vvw}}w}wvv}ww}}w}v}}wvwvžýþ˜wwwvw}wwvvvvvvvvuvww}vv{vvv}vvvwvvvvvwwyvvvwvuvvuuuuvuuuvuuvvuuvulvvvvvvvuuvvllouuvulußþ†uvlçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòžxZCClZClClZCCZÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@òÿÿÿÿÿ÷Z!! p¥õþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777575775755775755777!7!5!7755$77555!75775777777777777Ó×ÿÿþÿÿÿþÿüÿþÿþÿÿÿÿüþþýþþüþþþüúÕ�Žwvw}wv}vvw}w}}}}www}}}ww}}}}}w}w}}}}}}}}ww}}}}}}}}}}w}v}€}}}}}}}‘}}‘}}w‘}}‘}}€}€}}}‘‘}}}‘‘Úþÿÿÿÿÿà‘‘}€€}‘‘‘‘€‘€€€€€™‘€€‘‘‘�}€‘‘}‘‘‘€}€}€€€‘‘‘€‘‘‘}‘}€‘€‘‘}€€‘}‘w}‘€}}}w‘}}}}}‘v}}}w}}w}}}wv}}ww}}w}w}}}}}}w}www}}}}wwww}wwžýþv}}vvwwwwvwv}vvvvvvvvvvwvvvvvwvvvwvvvvvvwvvvvvvvvvvvvvvuvvvuvuuvvvvuuvuvvuvuvouuvuluuuvuoußþƒouußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü̃utCCuZlCZCZllCCußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @óÿÿÿÿÿóY  !pªõÿÿÿÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75777557575775777!557577775557ÓÓÿþÿüÿþÿÿÿÿÿÿþÿþÿÿþüþüþýþþüþüúÕ�}pvwvvvw}w}}wwvvv}}}}w}}vvw}w}}}vw}}}}ww}}}}}}w}}€}}}‘}w}}}}w}}€‘‘‘}}}}w}}€}}}}}}}ww}}‘}}}}}}×þÿÿÿÿÿà�‘™‘‘‘‘‘}}}‘‘‘‘}}€€}‘‘‘‘‘‘}}‘}}‘}}‘‘‘€‘€€}€‘‘‘‘‘‘€}}‘‘‘‘‘‘‘‘‘™‘‘€}}}}�‘‘}}‘}}‘‘}}}‘‘‘www}}}}w‘‘w}}}}}}}}}}}w‘}wwwvwvvwvw}}www}wwww}wžýÿ˜vw}}wwvvw}{vuvwvv}}w}{vv}{vvv{vvvvvwvvvvvvvuv{wvv{vvuuuvvvvuuv{vuuvvvvuuuuuovvvuvvultluÙÿ˜ouvßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè›ulttCClutCClultlZC{ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9óÿÿÿÿÿ÷Z !!  s¬íÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ77575777777!577557777777755ÓÓÿÿþÿÿÿÿþÿüÿÿþÿÿÿÿüþüþþüþýþþþúÕ��pvw}vv}}w}wv}}v}}}}}w}}vww}}}}}w}}}}}}}}}}}v}‘}}}}}}}}}}w}}}}}}‘}}}‘}}}}}}}}}‘}}€€}}‘‘}€×þÿÿÿÿÿà‘}‘‘‘‘€}€€}‘‘‘‘‘‘}‘‘‘‘€‘‘}‘€‘‘‘}}}‘‘‘‘‘‘‘€}‘‘‘‘€€‘€€€€€}‘‘€€‘‘‘}}}‘}�‘‘}}€}}}‘}}}}}}}‘}w}}}}}}}}}w}}}}w}wvw}}}}w}}w}}v}}w}wv}wwžýþ�ww}wwwwvvwv}vvvwvvw{}wvvvvwvwvvvvvv{vuvvvvvvvvvvvvvvvvvuvvvvvvvuvvvuvvvuuvuuvuuuvuouvuuouu×þ™ulußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌ{uCZllllttCCCCCZltlCtÆúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!!@òÿÿÿÿÿ÷Z  $qªõÿÿÿþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77757777575757777757757777777ÓÓÿþÿþÿþÿÿÿÿþÿþÿþÿÿþþþüþþþüþüüùÕ��}w}vvw}}vvv}vvwvwvvvw}}vv}}}vvvvw}}}wv}v}€}v}}}}v}w}‘‘‘}}}}}}}w}}}}‘‘‘‘€}}}‘}‘‘‘‘‘‘‘‘€}}‘‘‘‘€}‘‘‘‘‘‘Úþÿÿÿÿÿà™}€€€‘‘‘}‘‘‘€}€‘‘‘‘€‘‘‘‘‘‘‘}}‘‘‘€}}‘‘‘‘€}‘‘€€‘‘‘™‘‘‘}}}}}}‘‘‘‘‘‘‘‘€}€}‘}‘‘‘‘‘}}w}‘‘}}}�‘‘‘�}}}}‘‘}wÙëÚž}w}‘‘€}}}}ww}w}w}}}ww}}}}}wwwvw}€}ww}}w}}}w™ýÿ˜vvwv}}}vvvvvvv}}wvwvwvvvwvvvvvvuvvwwvvv{vvuvvvvvvuvuuuvvw}{uvvvvuvvvvuouvvvvuooouolvvvvvvvÌþ›vll×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè›uCtClZlttlCltutllZlCZtuÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@óÿÿÿÿÿ÷Z!!!   ! ! !q¥íÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7775775777577!557757575757777777775777Ô×ÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿüþüþþýýþþþþúÕ�Žww}wvw}}}wvvvw}vw}}wvw}}}vw}w}}}}ww}}}}}}}}}}w}}}w}}}}}‘}}v}‘~}}}}}‘}}}}}€€€€€‘}€‘‘}€€‘‘‘Úþÿÿÿÿÿà‘‘€‘‘€}‘‘‘}}‘‘€‘€€€‘‘‘‘‘‘‘‘‘‘‘‘‘€€€‘™€‘€‘‘‘‘}}€}‘‘‘‘‘‘‘‘‘}‘€‘‘}€€‘‘‘}‘‘}}€‘}‘‘‘‘}}}w‘}}ÓýÿÿýõÙ™}}}‘}}}}}}}}}ww}wv�}w}vww}ww}}vw}}w}}}vœýÿ�wvvww}}vvw}vvvvvwwvvvwwvvvvwwvvvvvvwvwvvvvvvvuv{vvvvvuvvvwvvvvvuuvvvvuuuuvvuouvuouvuuuuvvvÊý›uuoßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Ç{ulClltCCllCCtultCZllltCC{ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@òÿÿÿÿÿ÷Z =sªõÿÿÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77775557577775!7777!5577777777777777ÓÓþÿþÿÿþÿþÿÿþÿþÿþÿÿþþüýýþþüþüýúÕ�}vv}}vw}}}}v}}}}}w‘}}v}}ww}}}}}}}}}}}}}}€}}}}}}w}€€}}}}}}}�}‘}}}}}}}}}‘}}‘‘‘‘}w}}‘€‘‘‘‘‘}}€‘}}‘}}×ýÿÿÿÿÿà™€}}}‘¤‘‘‘‘‘€}}}€‘‘‘}€€}}‘‘‘‘}}}‘‘‘‘‘}€‘‘}}}}}}‘™‘‘}}‘™‘}}€}}€‘‘‘‘}}‘‘‘€}}}‘‘‘�‘‘‘€‘�‘}}}}‘‘}v}}}}ww‘§úÿÿÿÿÿþúèž}}w}w}}w}}}}}}}}w}ww}‘}}vw}}wwwwwwww}vžýÿ˜}}vwvvvwwvwvw}ww}vvvvvwvwvuvvvvvwwvwvuvvvvuuvvvvuouvuvuvvvuvvvvouvuvvuvvuouvvuooououÇý�uuu×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ߆utCuutuulZtlZCCtCCCCCZCClCu›÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ  @óÿÿÿÿÿóY   !  !   sªíÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ577777775777557757777757777777777777777757Ó×ÿÿþÿþÿþÿÿþÿÿþÿÿÿÿüüþþþþþüþþþúÕ�}pv}}}v}}}}w}}}}}}}}}}}}w}}}v}}}}}}w}}}}}}}}}}}w}}}}‘}}}w}}}}}‘}}}}‘‘}}}‘}‘‘‘}}}‘‘}}€‘‘€€}‘€‘‘}€}×þÿÿÿÿÿæ‘€‘‘‘€€‘‘}€~€€‘‘‘‘‘‘‘}‘¡€}‘‘‘}‘‘‘}‘‘‘‘‘‘}}}‘‘}‘‘‘‘€€}‘‘‘‘€‘‘‘€‘‘}‘‘€}‘‘‘€}¡}‘‘}‘‘}}‘}}€‘}}}}}}™ëÿÿÿÿÿÿÿÿÿýõÓ�}}}}}}}}}w}}}}w}}w}w}}}}v‘ww}w}}}}}}}vv}wvžýÿ˜vwwwwwwvvw}v}wvvwvv}vvvv}wvwvvvvvvvvwvvwvvuvvvvvvvvvvuvvvvvvvvuuvvuuuvuvvuvuuuvvuvuuoouužüÇuuu×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ�{ulCtlultlllCCtCtlCCltCCCCZlZtÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ! @òÿÿÿÿÿ÷Z! ! =sªõÿþÿÿþÿÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77575557777!7!!75!77777777557775757ÓÓÿþÿÿþÿÿþÿþÿÿþÿüÿÿþþüþüþýþüþüúÕ’�vvvvvwwww}}wvv}vw}}vvvvw}‘‘v}}}}}w}}}}}w}}}}}}}€‘‘‘‘€}}}}}}}}}‘}}‘€€}}}}}}}€€€‘‘}}}}}}}}}}€‘}}‘‘}}}Úþÿÿÿÿÿꤑ‘‘‘}}}}}�‘‘‘™‘‘‘‘‘‘‘‘‘™‘}‘‘€‘‘‘‘€‘‘‘‘‘‘‘™‘‘‘}€€‘‘‘‘€}‘‘}}‘‘‘}‘‘‘€‘‘}}}‘‘‘}}}€€‘‘}}‘}‘‘‘€}}}}w}‘}‘}‘}�‘‘�ÓÿÿÿÿíõÿÿÿÿÿÿþõÓ™‘€}}}}}}}w}}w}}w}}}}}vwvwwww}vwvžýÿ˜w}}wvvvvv}}wvv}vvwvvw}{vvvvv{wvvvvwvvwvuvvvvvwwwwvuuvvuuvvwvvuvvvuovvouvvvuuvvvvuuuvvuuoožýÇyvuÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÌxulttllttClZlutCClutCZCtlttCCCCC{èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷[!!      9qªíÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7775777777777575!757!7575$!75777575777Ó×ÿÿÿüÿÿþÿþÿÿþÿÿÿÿÿþþþþþýþýþþþúÖŸ�wpvv}}}}}}}w}}wvw}}}wv}}}}€}}}}}}}}}ww}}}v‘}}‘w}}}}‘}}}}}‘}}}}‘‘€}}}}‘€‘‘}}}}}}€‘}€€Úýÿÿÿÿÿæ‘‘�‘‘‘€}}‘}}}‘‘‘€‘‘‘¡‘}‘‘‘‘‘‘‘‘‘€‘‘€‘‘‘€‘‘}€€€€‘‘‘€€‘‘€‘‘‘‘‘}‘‘‘‘‘‘‘€}}�‘‘€‘‘‘�‘€}}}‘‘}}}}‘€‘€‘˜úÿÿÿõ˜™Óèýÿÿÿÿÿþõב‘}}�}}}}}}}w}}}}}w}}}}w}}}}w}wvw}wœýÿ˜}}wvvvvvwww}wvvwvvw}vvwwvvvwvv}vvwwvuvvvwvvvwvvvvvvvuvvvvvvvvvvuuuvuvuvvuvvvvuuuvvvuvuu˜ýÊvvuÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ”uultlltuolCullttllCtCCCCCCllCttCCt›÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@òÿÿÿÿÿ÷[qªõÿþÿÿþÿÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77777555755577775757777777777777777775ÓÓþÿþÿþÿþÿÿþÿÿüÿþÿÿþüþüþüþýþþýúÕ�}v}}w}}wwvvv}�}}}}}w}wvv}}w}}}ww}}}}}w}w}~�}v‘‘}w}}}}}}}}‘}}€}}}}}}}}}}}‘‘€}}‘‘‘}}}}‘‘}}‘‘€‘‘‘}}‘‘‘€Úþÿÿÿÿÿà™‘€~€€}}‘‘‘�‘‘‘‘€‘‘‘}~™‘‘‘€€}‘‘‘‘‘}‘‘¡¡‘‘‘¤¡™}‘‘‘‘€€€€€‘‘‘‘‘}‘‘€}‘‘€‘€€�‘‘‘€}}€‘‘}}}}‘}}}�‘€€‘‘}}‘€‘‘}}}}}‘‘Ùÿÿÿýž}‘™š×õÿÿÿÿÿÿõÙ�ww}}ww‘w}}}}}w}}wvw}}ww}}}wvvw}}}}}žýÿ˜ww}w}wwvvvwvv}vvvwvvvwvvvvvvvvvvwvvuuvvvvvvvvvvvvvvvvuvuvuvvvvvuouuvvuuuuvvvouuoouvu†üÌvvÊþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÌ{ttotlZlllZCCttCClZCtCuutllZCCCtutCCtÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ  @óÿÿÿÿÿóZ!!!      =Ž­õþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7577775777555775!57575777577777577Ö×ÿÿþÿþÿÿþÿþÿþÿÿÿÿÿüþþþþþþþþþþúÕ��ww}}}w}}wvw}}}}}}}}}}vv}}v}}}w}}}}}}}}w}w}}}}‘‘}}}}}}}}€w}‘}}€}}‘}}‘€}‘‘€}}}}€‘}‘�~‘‘€€}‘‘‘‘‘€Ùþÿÿÿÿÿæ‘‘}}€€‘€‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘€‘‘‘‘‘‘¥‘}‘‘‘‘‘€‘‘‘‘}‘‘‘‘€€‘‘‘‘‘‘€‘‘}€‘‘‘€‘‘€‘‘}€€‘‘}}}€€‘€}‘‘}€‘‘}}‘‘€}}}}}žþÿÿÿÙ}€‘�™Óëþÿÿÿÿþ÷×�}‘}}}}}ww}}}}}w}ww}}www}v}}}}}}}žýÿ˜vw}}}}v}wvvv}}wvvvwvvvw}w}vvvvwvvvvw}vuvvvvvuvwvvvvv}wvvvuvvvvvwvuuuuvuvuvvvvvuuvvuuuuo{úÙ{vvÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè˜vlllullllCZlllCCCCCCltlllZltlCZllClCCC{ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!@òÿÿÿÿÿ÷Z!  =sªõÿÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7777777!55!7777!77577777777777775ÓÓÿþÿþÿþÿþÿþÿþÿÿüÿÿþþüþüþüýþüýúÕ¢‘}ww}}}}}vv}}}}vw}}w}}}}}}}}v}}}}}}}}‘‘}}}}}}}}‘}}}}}‘€}}‘}}}}‘‘‘}‘‘}}}‘}}}}}€‘}€‘‘}}‘‘€~}}}}‘‘}}}€Úþÿÿÿÿÿà‘‘‘‘}‘‘€€‘‘‘}}€‘‘}}€}}}¤‘}‘‘‘}}€¡€‘‘¡‘€}‘‘€}‘‘‘‘‘‘‘€‘‘€‘‘€‘¥¡‘‘€€‘‘‘‘€€‘‘‘‘€‘‘‘‘}€‘€€‘‘‘€‘€}}}€}}ww}}€€}�èÿÿÿõ}w}}}w}�žàýÿÿÿÿÿ÷Ú™}w}}}}}}}}vw}v}‘}wv}‘ww}}wwvvvw}žýÿžw}wvwvvv}vvvvwvw}{vvv}wwvwvvwvv}wvvuvvvv}wvvuvvw}wvuvwvuuvvwwulvuuuvvwvuvvouvuuoluvuvuvv{úßvulÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÇxulultuuttlloluuuuootluuZCCCltCClZCCZCtCl›÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@óÿÿÿÿÿóY!    !  $p¥íÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77775575777!555577757777777777777Ó×ÿÿþÿÿþÿÿþÿÿþÿþÿÿÿþýþþþþþþþþþúÕ �}}}}}}}}vv}}wwwww}}}}}vw}}}}}}}}}}‘‘}}}}}}}}‘}}}}}‘}}}}€}~}‘‘}‘‘€}}‘}}‘‘}}€‘}‘}‘}}€‘}Úýÿÿÿÿÿæ‘‘‘‘}‘‘}‘€‘‘‘‘}€}‘}‘¡‘€‘�~‘‘}‘¤€‘™‘‘€‘‘}‘€€‘‘‘‘‘‘‘¤€€‘‘‘¤‘‘‘‘€€‘�‘‘‘‘‘‘‘‘‘‘€€€€€}‘‘€‘‘‘‘‘€}}}}}}€}‘‘žÿÿÿþÓ€}w}€}}˜àýÿÿÿÿÿúÙ�}}}}}}}w}wvv}w}}}vw}}}vvwwvv}žýÿž}}vv}}wvvvw}vwvwvvvvvww}wvvvvwvvvvvvvvvvv}vvvvvvvvvvvvvvvwvvuvvvvvvwvuuvuuuuuvuoovvvuvwúáwuu�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿß{uoluttluulltltuuuuuttuultlCClCCZlCtCCCCCCZtÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@óÿÿÿÿÿóZ!!     !qªõÿÿÿþÿÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77775757777757!577757!5!7557557555775777755557ÓÓþÿþþÿþÿþÿþÿþÿÿþÿÿþþüþüþýþþþüùÕ�}vvvvvvw}}}}}w}}}}v}}wv}}}}www}vw}}}}}}}}}}}}}}}}}}}}}€€}}‘}}w}}�‘}}}}}}}}}‘‘‘‘‘€‘}}€}€€‘‘}€‘€¡‘‘‘}€}}}×þÿÿÿÿÿà�}‘‘‘}‘‘}‘‘}‘‘}€‘‘‘€‘‘‘‘‘‘‘‘‘}‘‘~}‘‘€¤‘€‘‘‘‘‘‘‘‘‘‘}‘‘‘‘‘‘‘€€�‘‘‘‘€€}‘‘‘‘‘}‘‘‘€‘‘€‘€€‘‘‘}}}}‘¡‘}‘‘‘€}‘€‘}}‘™õÿÿÿè‘}}€}}}}‘žàýÿÿÿÿÿúà™}}}}}€}}}w}}w}}}}w}‘€}w}žýÿžww}vv}wwww}vvvv}wvw}vvvvuvvvvvwvvvwwvwvvvwvvuvvvuuvvvuvuvuuvuuvuuvvvvvvvuvvvoouvvuvvuuuvúè{vu›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷›wulZlllltllZCZltClZltCCtZCCZCuutlltlltCultCCl{ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!@òÿÿÿÿÿ÷Z! !  ! =sªõþþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÔ5755575577=577777577Ô×ÿÿþÿÿþÿþÿþÿÿþÿþÿÿþüþþþþþýþýþúÕ�}wvvvww}}w}}}}}}w}}vw}}}}}}}}}}}w}}}}}}}}}}}}}}}‘�‘}‘}}}}}€‘‘‘}}}}€€}}€}‘‘€}}}‘‘€}€‘‘‘‘‘Ùýÿÿÿÿÿà‘‘}‘‘‘‘}‘‘‘‘‘�‘}‘‘‘‘‘€€€‘‘‘}}‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘}‘‘™‘‘‘‘‘‘‘‘‘‘€‘‘�‘‘‘€‘€€‘‘‘‘€€‘€‘‘}}}}}‘‘‘‘™}}‘€‘}‘€‘‘Úÿÿÿýš}‘‘‘}}w}€‘§àýÿÿÿÿÿûà™}}€}}}}v}}}wvww}‘}ww}žýÿžw}ww}}}}}v}wvvvvwvvvvwvvvvvvvvvwvvvvwvvvvuvvvvuuvvuuvvvuvvuvvuvvvvvvuuvvvuuvvuvvvvvuvu÷èuo›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÌyuuvlltCtuoCtulCCCCtCCltlCCCCtlluuulttlltCCZlCCt�úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@óÿÿÿÿÿ÷Z!  !qªõÿÿÿþÿÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ577757575!557775777777777757ÓÓþÿþþÿþÿÿþÿþÿþÿþÿÿþþýýýþþþþþüúÖ�}vv}vwv}}}w}}}wwwvw}}v}}}}}}}}}}}}}}}}}}v}‘‘}}}w‘}}}}}}}}}}‘‘}}}‘€}}‘€‘€}‘‘‘€‘€‘‘‘‘‘}‘‘}‘}€‘‘‘‘‘‘Úþÿÿÿÿÿà™‘‘‘}}‘‘™‘‘‘€}‘‘€‘‘‘‘‘‘‘‘}‘‘‘™‘¡™‘‘‘‘‘}‘‘‘€€‘‘‘�‘¡‘‘‘€€}‘€}}€‘‘€‘‘‘‘‘‘‘‘‘‘‘}}€€}‘‘‘‘‘‘}‘‘‘€‘}}‘‘€}}}‘‘€}�ýÿÿÿß}}}}}}}}}‘‘‘}}}}}™àýÿÿÿÿÿúà˜}w}}‘}}}}ww}}}}ww}}ww}}w}w}}žýÿžwww}w}wvww}v}wvww}vvwvvwvw}vwvv}vvvwwvvvv}{vvvvvvvvvvvuvvvuvuvvuolvvuuuvuuvvuuouuouoouõò{lv›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ”uutluululoutClvvttlllotluuCCtltuZClZCCCZCtCClutClZ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@óÿÿÿÿÿ÷Z !   =sªíÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777757577!57!5!!777777557777Ó×ÿþÿþÿÿþÿþÿþÿÿþÿÿþþþþþþþþþþþþúÕ�}w}}}}}v}}}}}wwvvv}}}}}}}}}}}}}}€}}}}}}}}}}}}}}}}‘‘}}}}}}}}}}‘‘�‘}}‘‘‘‘‘}‘‘‘}‘‘‘‘€‘‘€‘‘‘‘‘‘‘‘‘‘‘‘€‘€€€‘‘‘‘Úþÿÿÿÿÿà‘‘‘€€‘€€‘‘‘‘‘‘}€€‘‘‘‘€‘‘‘€‘‘‘‘™‘‘‘‘‘¡‘€€‘‘‘‘‘‘‘‘€‘‘‘™‘‘‘‘€€‘‘}‘‘€€‘‘‘‘€‘€‘‘‘‘‘}}‘‘€‘‘‘€‘‘‘‘‘‘‘}}‘‘}‘€àÿÿÿú‘}}}}}¤‘}}}}}}�šàýÿÿÿÿÿýàš}}w}}}}}ww}}}}w}w}}}}}w}}}žýÿž}}v}wwww}vvvv}}vvw}vvvv}}v}wvvv}wvwvvww}wvwvvvvvvvvvvvvouvvvvuuvuuuuuuuvuuvvvuluuvvouluñõ{lu�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÇvuulCuuluuutltltuuulCCZluoutlltullClltCCZCCCCCCZCCZtƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@òÿÿÿÿÿ÷Z!!!!  !qªõÿÿþÿþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ757777777!57777557777ÓÓÿþÿþþÿþÿþÿþÿþÿþÿÿþþüþþþþüþþýúÖ�}}vvv}}}vvw}}}}}}v}w}}w}}}}}}v}}}}w}}€}}}}}}}€}}‘‘}}}}}}}w}}}}}‘}}‘}}}}‘}}€}€}€}€}}€}}}}‘‘}}}‘‘}}Úþÿÿÿÿÿ晑}‘‘‘‘‘‘‘€€‘‘‘‘‘¤‘‘‘}€‘‘‘€‘‘€‘‘‘‘€‘‘‘}€‘‘‘‘€‘‘‘}‘‘‘‘}}‘‘‘‘‘‘‘‘‘¤‘‘‘‘¤‘€€€‘‘€‘‘‘€€‘‘‘‘¡™‘‘‘‘}}‘¡‘‘}€}‘‘}‘}‘}€‘‘‘}}‘™þÿÿÿב‘‘€€}}}}}}‘}}}}}€}w}™àýÿÿÿÿÿýæ™}}}}}}w}}}}w}ww}}w}wvw}w˜ýÿÇ}}vvv}vwwvw}}wv}vvvv}v}}wvuvvvvv{vvvvvvvvwvvvvvvvvvuvuvvwvvvv}wvvwvvvvvvvvvvvuvvuvuuvuuvoè÷vužþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá{uullulltlulluluClltluluutlZCltClultlZCtCClltulZCCCCCtCÆúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷Y  !!!!=q¥õþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ7777!77577ÓÓÿþÿþÿþÿþÿÿþÿþÿþÿÿþüþþþþüþþþþúÖ Žvv}}v}}}wvvw}}}}}}}ww}w}}}}}}}}}}}}}}}}}}ww}}}}}}‘€}}}}}}}}v}‘‘}}}}}}}}}€€}€€}}‘}}‘‘‘}}}‘}Ùþÿÿÿÿÿ॑‘€‘™¡‘‘‘‘‘‘¡‘‘‘€€€€‘‘‘‘‘‘‘‘‘‘}‘‘}‘™‘‘‘‘‘‘‘‘‘‘}‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘€‘‘‘‘‘‘‘€€€‘‘‘‘‘‘‘€‘‘}‘¥‘‘€}€‘€€€€}}€‘}}}€‘‘‘€€‘æÿÿÿõ‘‘¤‘}€‘€}}}‘w}}}‘}w}}™àýÿÿÿÿÿýàš}}}}}}}}}}}}}vvvw}}}}w}}w™ýÿÓ}}wvvvv}vwww}wvw}}vw}}vwwvvvvuv}}vvwwwvovwwwwvvvvvvuvvvvv{vvvvvvvw}vvvuvvvwvuovvvvvvuouuuáü{uuÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú›vuoluvuulllultuullCtlultuvvtllZtCltltltCCCCltuuulCCCCtlluáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@òÿÿÿÿÿóZ! ! ! =sªõÿÿþþÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75!5777777777ÓÓÿþÿþÿþÿþÿþÿÿþÿÿþÿþþþþýþþþþþüúÕ�}}v}}wwww}}}}}}}www}}}}}}}}}}}}}}}}}€}}}}‘}}}}‘€‘}}}‘€€‘€}‘‘‘}}‘‘}}‘‘‘}‘�€€‘}}€‘}€�}}}€‘‘‘‘‘‘‘‘‘€‘‘‘‘Úþÿÿÿÿÿà™‘‘}‘‘€‘‘‘‘‘}‘‘‘‘‘¤‘‘‘‘‘}‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘}~�‘‘‘‘‘€}€}€‘‘‘}‘‘}‘‘€‘‘‘‘}‘‘}‘‘‘€‘‘‘‘‘‘‘‘}‘}€‘‘€}‘‘‘‘}}§ÿÿÿÿž}‘}‘}}}‘‘}}€‘}}}}}™àýÿÿÿÿÿýà�}}}}}}}}}}}}}}}}wwvw}}všýÿÇ{vv}}vw}}wwwwvw}wvvvwvwvvvvvwvv}wvvvvw}vvwvvvvv}wvvvuv}wuvwvvvuouuvuvvuvvvuuuvvupuuvuvvoooßÿ˜uvÊþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌyvttlZltlutluulCltltlttltlCuuCtCClltlZlltltlZCtCZCZlltCCZCCƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷Z!   !  9q¥õþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75577777777775Ó×ÿþÿþþÿþþÿþÿþÿþÿþÿþþþüþþýþþýþúÕ�Žv}}}vvv}}}}w}}}}}}}}}}}v}}}vw}€}w}‘‘}}}‘‘}w}‘‘€‘‘‘}}€‘‘‘‘€€}}}‘‘‘‘€€}}}‘}}}}‘‘¡¤¡‘‘‘‘‘‘‘‘‘‘‘€Úþÿÿÿÿÿà‘‘‘‘€‘‘€‘‘‘}€‘€‘‘‘¤‘‘‘¡¡‘}‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘€‘‘}‘€‘‘‘‘�‘‘€‘‘‘}€}}¡¢‘‘}€‘‘‘‘‘‘‘‘}€‘‘€€‘€€‘¤‘‘‘èÿÿÿè}}‘‘‘}}‘}}}‘‘‘‘}}‘}}‘žàýÿÿÿÿÿýà™}}}w}}}}}}}}vv}}}ww}žýÿÓvv}}}wv}}vwvv}wvvv}}wvvvvvvwwwvwwvvvvvvwwvuvvwvvvvv}vvvvvvuouuovvvvvvwvvuovwvuvvvuvvulußþ˜vvÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿò{uvulllllllulluultllulltlllClulllClututlCCZCluCCCllCCCZltlCtlZÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!YóÿÿÿÿÿóZ!!    ! !=sªõÿþÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77777777777ÓÓÿþÿþÿþÿþÿþÿþÿþÿÿÿþþþþþýþýþþþúÕ�Ž}v}}}}}}}}}}}}}}}}}}}}}w}}}€w}}}}}}}}}€€}}‘}}}}€}‘}‘}}}€‘€€}}}}‘‘€€€€‘€€‘¡‘‘€‘}‘€€€€€‘€}Úþÿÿÿÿÿà‘‘‘‘}€‘‘‘‘‘‘‘‘‘‘€‘€€‘‘€‘‘‘€‘‘¡€‘‘‘‘‘‘€‘‘‘€€}~‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘}‘€‘‘‘‘‘‘‘‘‘‘‘€€}™‘€‘€‘€€€‘‘‘‘‘‘€€€‘¤‘‘‘€€}‘‘‘€}}‘žÿÿÿýš‘}}}‘}}}}}}}}�‘}}}w}}}˜àýÿÿÿÿÿýà™}}}}}w}}}w}}wwšýÿבwvw}}‘wvw}}vvwvv}vv}wvv}}}}vvvvvwvvvvw˜ž×מ›vwvuvvvvvvvvvwwvvvvvvvuuuuuvvvuuvuvuuuuouvu×ÿÇvuÊÿÿÿÿÿÿÿÿÿÿÿÿüÇvlloutltluluvultloutuuClllutuCtltltCClttCClllZClllZuCCCCluCCZCCuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! !!@òÿÿÿÿÿ÷Z!!  $pªíÿÿþÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè×577!77577777Ó×ÿÿþÿþÿþÿþÿþÿÿþÿþÿþþþýþþþþþþþú¬�Ž}}}}}}}}}€}}}}}w}}v}‘€}}}}}}‘‘}w}}}€‘€}}}}‘‘}}}}}}}‘‘‘}}}‘‘}v‘€€}}‘¤‘‘}}€€‘‘‘€‘€‘‘‘‘}€‘‘‘€}€€‘€Ùþÿÿÿÿÿà‘‘‘€}}‘‘‘‘‘‘‘‘‘‘‘‘‘€}}‘¤‘‘‘}€‘¤‘‘€‘‘‘‘™‘}‘‘€‘¥‘}}€‘‘‘‘‘‘™‘‘‘‘‘�€}}€‘‘‘‘‘¤¤‘‘‘}‘‘‘‘‘‘‘‘‘€}‘¤‘‘‘‘‘¥‘‘‘}‘€‘‘‘‘‘‘‘}}�õÿÿÿæ}‘€‘‘‘}}}‘‘€}}}}}v}‘‘‘}}}}}}}™àýÿÿÿÿÿýÚ�}}}}}}v}}}}}}všýÿבvw}}}}vv}w}wwwvvwwvvwv}wvvvvvv�ßèýÿÿÿÿÿÿÿÿ÷æžvvvuvuuvvvvvvvvvvuuuvulouvvulluuoolltuvvÌþÊvtÌÿÿÿÿÿÿÿÿÿÿÿßvuutltulCltvuuuuuluvlllttlttutllCCltoltlClluutCCllttlCCZllutCCCCCC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!! @óÿÿÿÿÿ÷Z!! !  !! !! !p¥õÿþÿÿÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ775!577!77ÓÓüÿþÿüÿþþÿþÿþÿþÿþÿþþþþþþþþþþþúÕ�}w}w}vw}}}}}w}w}}}}}}}}}}w}}}}}}}}}}}}}}}}}}}}€‘}}}€}w‘}‘}}‘€}‘‘}}}€€}‘‘}€€‘}}‘‘€}}‘€‘‘‘‘}}‘‘€‘‘‘€‘‘‘‘Úþÿÿÿÿÿ晑‘�‘‘‘‘‘‘‘‘€‘}‘‘‘‘‘‘‘‘€‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€¤‘‘‘‘‘‘€‘‘‘‘‘€€‘‘‘‘‘}‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘€‘€€‘™‘‘€€€}‘‘‘‘‘‘€}€‘‘‘‘‘‘}‘‘}}€‘§ÿÿÿý™}}}‘}‘�‘}‘�}}}}}}}}}}}}}}}˜àýÿÿÿÿÿýÚ™}}}}}}}}}}w}}}}™ýÿÊww}}}}wwv‘wv}}ww}vw}}wvwvw}vvvwwwv}˜èþÿÿüèæßßÙà÷ÿÿÿÿ÷×vvvvvvvvvvvuuvvvvwwvuvvvvvuvvuvvvvuvwÊýßwvÙÿÿÿÿÿÿÿÿÿú›uluvtluvuoutuuutlltttlutlluCllluulutCtlltlZtClCtlZCltCCllZCClZCCtZCCÌüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@óÿÿÿÿÿ÷_!  ! =q¥íÿÿþÿþÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77!5!75757××ÿÿþþÿÿþÿþþÿþÿþÿÿÿþþþþüþþþþþþúÖŸ}w}}w}}}vvvw}}}}}vv}}}}|}ww}v}}€}}}€‘}vv}}v}}}}€€}}}}}}‘‘}€€}}}€‘‘‘}‘}}€}‘‘‘‘}}}€‘}€‘€€}}€‘‘‘‘‘‘‘€€‘‘Úþÿÿÿÿÿæ‘‘‘‘‘‘‘‘‘}‘‘™‘€‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¥¥¡‘‘€‘‘¥‘‘‘€€‘‘€‘‘‘‘‘¤¡‘‘‘‘¥¥¡‘}‘}€‘‘‘‘‘‘‘‘‘‘‘‘‘€}}}}}}‘‘‘‘€}‘‘€‘‘‘‘‘‘‘‘‘€}}}€}÷ÿÿÿà€€€}‘}‘‘‘‘‘‘€‘‘}}}}}}}}}€}‘‘‘}}˜àþÿÿÿÿÿýÚ™}vw}‘�}w}vv}}}žýÿ×}}wvww}€}}}}vv}v}}wvvvv}wvvv˜èÿÿüߘvwww}}v}{žÙúÿÿ÷Ç}wwvvvvuuuvvuvuvv}vvuuvvvvvuovvwvvvwžýè{vßÿÿÿÿÿÿÿÿ×uultvvllluvuuoCCCutlCllulCltlCluvutttlltCCClCCCuullCCtlCZCCCCCuCCllCCtèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ! !!!Yòÿÿÿÿÿ÷[!! !! !!    p¥õÿþÿþÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777!!7757ÓÓþÿþÿüÿþÿþÿþþÿþÿþÿþýþþþþþþþþþúÕ�}}}w}}}}w}}}}}}}}}v}}}}}}}}}}}}}}}€€}}‘}€}}}}€€€}}}€}}€€}€}}‘‘}‘‘}€‘~€}‘‘€€‘‘€}‘‘€‘€‘€€‘‘‘€Úþÿÿÿÿÿæ‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€‘‘‘}‘‘‘‘‘‘‘‘‘‘}€¡¡€‘‘‘‘‘€‘‘‘‘‘~€€‘¡‘}€€‘‘‘€�‘‘‘‘€~‘‘‘‘‘‘€€‘‘‘‘€‘‘€‘‘‘‘‘}}‘€‘‘‘‘}‘€€‘€™‘€Óÿÿÿü‘€}€‘}}‘}}}}}}}€}€}}}}}}}}}}}}}}™àýÿÿÿÿÿýÙ�}}}}}}vw}žýÿ×ww}w}wvw}}www}vwwwwv}vwv}wvv}wæÿÿúÇwvwww}vvvuvvvv{Ó÷ÿÿè˜vvvvwwvvwwvvvvvuvvvvuuuvvvvuvvuluuýú{oèÿÿÿÿÿÿò{uuuulvuuuuluvlollulluuvutultlltlttluCCtltuCltlltCCltlltCCllClttCCClZClZCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Bóÿÿÿÿÿ÷[!! 9sªíÿþÿÿþÿÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77775!7$57Ó×ÿþÿþÿÿþÿþÿþÿþÿþÿÿþþþþþþþþþþþú¬�Ž}vvwvw}‘€}w}w}}}}‘‘}}}}}}}}}v}‘}}}‘¡‘‘‘}w}}€‘‘}}}}}€€}}}}}}}}€€€}}}‘‘€‘‘‘}}€‘‘‘€€‘‘‘‘‘‘‘‘}€‘‘‘¡‘‘Úþÿÿÿÿÿæ‘‘‘‘¤‘‘‘™¡¡¤‘‘‘‘‘‘‘‘‘¡‘‘‘¤‘‘‘‘‘¤‘}€‘‘‘‘‘‘‘€‘~‘‘‘‘‘~‘¡¡¥‘‘‘‘¡‘‘¤‘€‘‘}€‘‘€‘€‘‘�}€€‘‘‘¡¤‘‘¤¤‘‘‘‘€‘‘}}‘‘‘}}}}‘¡‘‘¡‘‘¥ûÿÿÿÓ€€‘}}}}‘‘}ww}‘‘}€‘}}€€}}}}}}}}w€šèþÿÿÿÿÿýÙvvvwwwÓýÿ×w}}v}}vv}}wvvvw}}vwwv}}wvvv}}}w˜õÿüÊw}ž×Ùßß×›wvvvvvwwž÷ÿõ˜vuuvvvvvvvvwvuvvvvvvuvoouvwvvulluu÷ÿ›{úÿÿÿÿýÇvtuvullllluvvuuuuuuoCtvuouuluvuutClCCttlCtlCClttlCllltuttlttCZluuCCCtuCCtCCÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!;9!!Yóÿÿÿÿÿ÷_      !!  =}ªõÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75777!57775777ÓÓÿþþþþÿþþÿþþÿþÿþþÿþþþþþþþþþþþúÕŽ}}}}}}v}}}}}}}}v}}}}}}}}v}‘}}}}}}€€}}}}€}}€}}}€}}}}€‘€€‘}€€€‘}€€}‘‘€}‘‘‘‘‘€}‘‘‘€€‘‘‘‘€€‘‘‘€Úþÿÿÿÿÿæ‘€€€€‘‘‘€€‘‘‘‘‘‘€‘‘‘�‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¥‘‘‘‘‘‘€€€‘™‘‘‘‘‘‘�‘‘‘€‘¡‘€‘‘¤‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€}}€€‘‘‘€€‘‘‘€~}‘€€€‘Óÿÿÿ÷€‘€}‘‘}}}}€}}}}}}}}}‘}}}}}}}}™æþÿÿÿÿÿý×}}}}}}}vÓþÿÙ{}}w}w}ww}}}vw}}}}vw}}vwwwvwžýÿèv}™æýÿÿÿÿÿÿÿÿèžvvvwww˜èÿ÷žvvvvvvvvvvvvuuvvvvvvuuuuvvuuvuvvoèÿýúÿÿÿÿç{vvlluvuluuuluuoluuovoCovuCtlluutlltuullltllltltltCClttClCltCllCCCCCZCCttCCCCuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!@óÿÿÿÿÿ÷[!!!! !=qªíÿþÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5!77!Ô×ÿþþÿþÿþÿþÿþÿþÿþÿÿþþþþþþþþþþþúÕ�}q}}}}}vvvvw}}vvvv}w}w}}}}}€‘€}‘‘}}}‘€}€}}}}€}‘‘€}}}}‘€}}‘‘‘€}‘‘‘}}}€‘€}}}}}}}‘‘¡‘‘‘‘‘€‘‘‘‘€}€‘‘‘}€¡¤‘×þÿÿÿÿÿà‘‘€}€€‘‘‘‘¤¤‘‘€€}~‘€‘‘‘‘‘‘‘‘‘‘™‘¡€€‘‘€€}‘‘¥¤‘‘‘‘‘‘‘™‘‘€}}‘‘‘‘‘‘¤‘}}‘¡¢¡‘‘‘‘‘‘‘€‘‘‘‘¤¡‘‘‘‘‘‘}‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘}€‘}}€ýÿÿÿÓ}}€€€}}}‘‘}}}}‘‘‘‘‘€}}}}}}}}}}}}€€}}}}‘}w}}v˜æþÿÿÿÿÿýÚ‘}vv}wv×ÿÿÙwwvw}}}}w}wvvw}}www}w}ww}™úþÙw}˜àÿÿÿýèÌÊàõýÿÿý×vvwvvv{ßÿ÷ž}}vvuvwvovvvuuvvvvvvuvvuvuvvvvvußÿÿÿÿÿú›uuvulvvuouvuulvuuuulluuuvuulCluvCCCuvwvtCtvutuuuCtltlZCCCCtlCtullZCCCCCllCCCCCu›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ !!!!Yóÿÿÿÿÿ÷[!!! !!    !!!pšõÿÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777557777ÓÓÿþÿþþÿþÿþÿþÿþÿþÿÿþþþþþþþþþþþúÕ¢‘wv}}}}}}}v}}}}}}}}}w}}}}}}}}€}}}}}}�}}}}}}€€€}}}}‘€}}}€}‘‘€€}‘‘}}€‘‘€‘€‘€}€}€‘‘€‘‘‘}€€‘‘‘‘€‘€‘‘‘‘‘‘‘Úþÿÿÿÿÿ晑‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘¤‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘™‘‘‘‘‘‘�‘‘‘‘‘}‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘€}€‘‘‘‘}€‘‘‘‘}‘‘×ÿÿÿõ‘}}‘‘‘€}}}}‘€€€}}‘}}}}}�}}}}}}}}™èþÿÿÿÿÿû×�}vÙþÿß}}}}}}}w}}}w}v}vw}}}vvwv}v˜÷ÿ×w}žúÿýÙ˜vvvvvwv†èþÿáwvvvw{×ÿñ˜vvvvvvuuvvvuvvvvvvuovwvuvvvvuuvÇýÿÿþßvvluvvluuuuuuvlCuvlluouvutuuulutluuCluluuCltuCltulllltlltCCttCClttCClZCCCZCCulZCCCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Bóÿÿÿÿÿ÷[!   !  qªíþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ557=777!7××ÿÿþþþÿþþþÿþþÿþÿþÿþþþþþþþþþþþúÖ¢Ž}}}vv}}�}}}}}€‘€}}}v}‘€}}}}}}}}‘€}}w}}}w}€}}€‘‘}€‘}€}}w}‘‘€€‘‘‘‘‘‘‘‘‘€~‘‘€}‘¡€}}}€}}}€€}}}‘‘‘€‘¡‘‘‘€€×þÿÿÿÿÿæ‘}}‘‘¡‘}}€‘‘€€}€‘¥¥‘€‘‘‘€€‘‘€‘‘€‘¤¤‘‘¥¡¤¡‘‘‘‘‘¤¥‘‘‘€‘‘‘‘¡¤¡¤¡‘‘‘‘‘‘‘‘‘¥¥¡‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘}€‘‘‘€€‘‘‘‘‘‘€‘}‘€€}‘‘¥‘‘}}}€}‘}‘þÿÿÿ™}}‘‘‘}‘}}‘‘‘‘‘‘‘}}}}€}€}}}‘‘‘}}}}}‘‘}�}}}‘‘‘‘}™èýÿÿÿÿÿúØ‘}æÿÿàw}wvvvvvvwvwv}w}v}}w}ww}èÿàw}žýÿõ˜vvvvvwwvvvu˜õÿõ™vvwwv˜èÿà{}wvvovuuuvvvoluvoluwwuuuulluvvòýßuvuuvwvollvuouulltvuolluululltlulttlCCCtuollullluulttlClutlCllCZCCCCltlCtCCCltlCCCC]ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@@!!Yòÿÿÿÿÿ÷_ !! !!!!!!!!   !=ެõÿÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77!7!7ÓÓþþÿþþÿþÿþÿþÿþþÿþÿþþþþþþþþþþþúÕ�}}}}}}v}}}}}}}}}}}}}}}}}}}}}}}}w}€}€‘}}€€}}}}}‘}‘‘€‘}€€}‘‘€€‘‘}€€‘‘‘}‘‘}€‘‘}€‘‘‘€‘‘‘‘‘‘‘‘‘‘Úýÿÿÿÿÿꙑ€‘‘‘¡‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘}€‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘‘€‘‘¤‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘€€‘‘‘‘‘‘‘}�‘‘‘‘€€‘‘‘€‘‘}Ùÿÿÿë}€€‘‘€}}€‘‘€}}}}}‘}}€}}}‘}}€}}}}‘}}}}}}}wšèþÿÿÿÿÿúÓ‘÷ÿÿ×}}w}}w}}}w}}vw}w}}w}w}wwžÿõwžÿýß}wvvw}vvvvvvvv˜èÿè{vvvvv�÷þÊvvvvvuvvvvvvvuovvvuuvvuuvvuvvuuuvuvuvvluuuvvuuoulvuluuuvtlulululluulluuotllutuulttltulCotltluCCZCllllZCCtlCCltlZCCtCZCC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Bóÿÿÿÿÿ÷_ ! ! !! =}¥íÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ$7557Ó×ÿýÿþÿþþÿþÿþÿþÿþÿÿþþþþþþþþþþþú¬s}}}v}}v}}}}}}€‘€}}}}}}}v}}}}}‘‘‘}}}}}€‘‘‘€}}€}}€}}}}}}}}€‘¡‘‘‘}‘¡‘€€}‘‘‘}}‘‘‘‘}‘‘}‘‘}‘¡‘}‘‘€‘¡‘‘€‘‘}€€‘¥Úþÿÿÿÿÿæ‘‘‘‘‘€‘€‘‘‘‘‘™¡‘‘‘‘‘¡‘‘‘¤‘‘¤¥‘‘€‘‘‘€‘‘‘‘‘‘‘‘€¡¡‘‘‘€‘‘‘€€‘€€}}}‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€}‘¡‘™‘}}}€‘€‘‘‘¤‘‘‘‘‘‘‘‘‘€}‘‘‘¥ÿÿÿþ™}}}}‘¡‘}€‘‘‘}}€‘‘‘}}}}€}}‘‘}}ww}}}}}}}}}}‘‘}}}}}}€‘™èýÿÿÿÿÿýÿÿÿÊwvw}‘v}€}}}vv}wvvvvv}vvwúýžv˜ûþà}wwvvv}}vw}vu˜ñý×vvwwvv×þñ�uvvvuuvvwwwvvvuouvvvuvvvuvvuoovvvuvvuulluv{vltluvuvultulluuuuluuulCCuvuvuCCCtlClCCClltuvultllCCCCttuullltCZlulCCCtCCCCCÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!#9Zóÿÿÿÿÿú_! !!  !      ! =s¥õÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!!7!7ÓÓþÿþþþÿþþÿþþÿþÿþþÿþþþþþþþþþþþúÕ�}}}vv}}}}w}w}€}}}}}}}}}}}}}}}}}}}}}}}‘‘}}}}€‘}€}€€€€}€€€‘‘}}€‘‘€‘€‘‘€€€}€€€‘€‘¤‘‘‘‘}‘‘‘‘‘‘‘‘‘‘€‘‘Úýÿÿÿÿÿꙑ‘‘‘‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€‘¥‘}‘¥‘‘¥‘€‘‘‘‘¤¡€€‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘�‘‘‘€€‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘}‘‘€æÿÿÿæ‘€€‘‘}€‘€}€€}}€}}€€}}}}‘}}}}‘}}}}}}}}}}}}}}}™àüÿÿÿÿÿÿÿž}}}}wv}}w}}wv}}w}vw}}v}Óÿñvèÿñwvwvvvvw}vwvvv}vvž÷õ˜v}vvv˜òþÌuu}wvvuvvvvvvvulvvvvvvvvuvuouvvuvuuvvuvllvvouotulvvuluvuluutuuloltlluultotlluultCltutluutltttClllCtltlZCClCtltCCCtCCCllxòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ9!!!!Yóÿÿÿÿÿ÷_!!! !!!! !!!!qªíÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!57!7ÓÙÿþÿþÿþþÿþþÿþÿþÿÿÿþþþþþþþþþþþúÖ Ž}‘}}€‘‘‘}}}}}}}}}}}}}€‘}v}}}}}v}‘€€}}}}}}}‘‘‘}}‘‘‘‘‘‘‘‘‘‘}}}}‘‘€€€}€}}}€€}€‘‘‘}}€‘‘}‘‘€‘‘}~‘‘€‘‘€‘‘}‘‘×þÿÿÿÿÿæ‘‘‘¤‘‘‘¥¡€‘‘¥‘€€‘‘‘¡‘‘‘‘‘€‘¢‘€‘‘‘€‘‘€‘‘‘‘‘¢‘‘‘¤‘‘‘‘‘€‘¤¡‘‘‘™¡¤¤¤‘}‘‘™‘€‘‘‘‘¡‘‘‘€€‘€€‘‘€}‘‘¥¢¡‘‘‘‘€€‘‘‘‘‘‘}}‘‘‘‘‘¤‘‘‘‘‘‘‘}‘ÿÿÿý™‘‘‘‘‘}€‘}}‘�}}}‘‘‘}}}}€}}}}}}}‘‘‘‘‘}}‘‘€}}}w}}}w}‘}}}}}}wÓ÷ÿÿÿÿÿ™}‘wvw}}}v}‘‘}vw}w�÷þžÓÿú˜w}}vvv}vvvvvvvvvvuv×ÿßvvvuvvÙÿèuwwwwvvuouvuvuuvuvuoltuvvvovuvuulollvvuovuuuuuulvvllvvvuluvvuutuvvullClluoluullltuCCCCCCCCCCltuulCCCCCCCZCCCttllutCtuuuÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!!!Yòÿÿÿÿÿ÷_! !   !     !  !qªõÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7$!7$7!$777ÓÓüÿþþÿþþþÿþþÿþÿüÿÿþþþþþþþþþýþúÖ��}}}}}}}}}}}}}}}}}}}}‘}}}}}}}}}}}}}}‘‘}}}}}}}}€‘}‘‘€}€}}€€€€‘€‘‘}}€‘€}‘‘‘€€€‘€€€‘‘€€€€¡‘€‘‘‘‘~‘‘‘~Úþÿÿÿÿÿæ‘‘‘‘‘€‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¤‘‘‘}‘¢‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘~‘‘‘‘‘‘‘¡‘‘¤‘‘‘‘‘‘‘‘‘¡‘€€‘¤‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘€€‘‘}èÿÿÿÚ‘‘‘‘‘‘}}‘‘}}‘‘€}‘€}‘‘}}‘€}}}‘‘}}}}}}‘}}}}}}}}}w}}}}žõþÿý™}}}}}w}}}}}w}w}}}}vwvw}žÿ÷}�èÿ×}vvw}vvwwwwvvw}wvvvvž÷õ˜uv}vvžõýÇvvvvvvuvvwvvvvvvuuvvovvvluuvvvvvoovovvulvuvvluluuuutuvuvuluuuvllutltluluultttlltlllotttlltCCCltttllllCCCCCCtCCZlltCCCCltáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;!#! Bóÿÿÿÿÿ÷_!!!!!!!! !!     $qªõþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!!!!77Ó×ÿÿþþÿþþÿþþÿþÿþÿÿþþþþþþþþþþþÿú¬Ž}}}}}vv}}}vvvvvvv}}}€}}}}}}v}}}}}}}}}‘‘‘}€}w}}}}}}}}}}}‘‘€€‘‘}€€‘}‘‘‘¡‘€}€‘~‘‘‘¥¡‘‘‘‘€€‘‘‘‘‘‘‘™‘‘‘€‘‘‘™¡‘‘¡àþÿÿÿÿÿꥑ€‘‘‘€€}}‘‘‘€}}‘‘¡‘‘€€‘‘‘¤¤€€‘‘¡‘‘¡‘¡‘¡¤‘‘‘€€€‘€‘‘‘‘¤¥‘‘‘¤¡¤¡‘‘¤‘‘‘™¡¡‘‘€‘¥¤‘‘€‘‘¤¡¤¡‘‘™‘€‘‘€‘‘‘‘‘‘‘‘€‘‘‘‘}}‘}‘‘‘‘‘‘‘‘¡‘™ÿÿÿû‘}€‘¡‘‘‘‘‘}}}}}‘‘‘¡‘€‘‘}€}}}}}}}}}€}}}}}}}}}}€}w}}}}}w}‘§èÙw}€}wvvv}vvvvww}€}v{àÿÙv›ÿúwww}wvvvw}}vvv}}vvßüÓvvw}v{èÿÙwwvvvvvvuvvwvwvulvvuvwwvuuoluuvulouuuuoluluvvluolClllllulllCluullluuuvuuulollCtltlouvoCCtCCtlZCCClZttulCCttCCCCCZCCC@CCZ{óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!#!!!#!! !!    $p¥õÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!57Ó×þþÿþÿþþÿþþþþÿþþÿÿþþþþþþþþþþþúÕ�}}w}}}}}}}}}}}}}}}}}}}}}}}}}‘}}}}}}}‘‘�‘}}‘‘}}}}~€~}€€‘}}€‘‘}‘‘€€€‘€}€}‘‘‘‘‘‘€‘€€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘Úþÿÿÿÿÿ晑‘‘‘‘‘€€‘‘‘‘¡‘€‘€¥‘‘‘‘‘‘‘‘¡‘‘¡¡‘¡‘‘‘‘‘‘‘¤‘‘‘‘‘¤‘€‘‘‘¤‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘�}‘€‘‘‘‘‘‘‘‘‘}‘‘íÿÿÿÓ‘‘€‘‘‘‘€}‘¡€}‘‘€‘}}‘‘€}‘‘‘‘}}€}}}}}}‘}}}}}}}}}}}}v}}}}‘w}}}}}w}}}www}v}}w}vv}�}vvòÿž}Ùÿñw}wvwvvv˜�wvw}}vyvvv×ýÙvvwwvvÙÿávvvvvvuovvvvwvvuuovvvvvvvouvvvvluuvlovuvluuvuuulluoooluuollluuuuClouluuuuutlllltutuutlllltCllCltCCCltuCCllZCCCCCCtlCCCCCÊýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=9!!!Yóÿÿÿÿÿ÷_!#!! !!! ! !! !  ! =qªíÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ777!$7!$!Ó×ÿþÿþþþþÿþþÿþÿþþÿÿþþþþþþþþþþþúÖ�Žvv}€}}wv}}€‘}€‘�}}}}�‘‘}}‘‘}}}}}‘}}}‘}}‘‘‘‘‘‘‘€}}}}}~}}‘‘‘}}}}‘¡‘‘€}€‘€‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘¡‘‘‘Ùýÿÿÿÿÿà‘€€€‘‘¥¡¥¡‘‘™‘¡¡¤¥¡‘‘‘€‘¤¡‘€¤‘‘¤‘€}}}€‘}€€‘¡‘‘€€‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘¡¥‘‘€‘‘€€€‘‘‘‘‘¤¤‘‘‘‘‘‘‘¡¤¤¡‘€‘‘}‘‘¤‘‘}‘‘‘‘™‘‘‘‘‘‘‘‘‘‘‘‘žÿÿÿõ}}}~}}}}‘‘}}}‘‘‘‘‘€€~‘‘}‘}}}}}}}}}‘}}w}‘}}}‘‘}}v}‘‘}ww}}}}}}vv}v}w}vvwvwv}}‘}}v}}}}}}w}˜ÿû}òþÓ}vv}w}ž÷ÿýÙvvvvvvvvvwÓýßvwvvvÇýò˜vuvvuvvuvvvvvwvvvuvulooouovvuuluvvvlluvuuolvuvvulvuuuuuoltluvuullltltllCCCouvuulCCCtluuuullttluullllllllCltullCCCtllCC@CuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@!!;!Yòÿÿÿÿÿ÷_!! ! !  !! ! pªõÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77!!!75ÓÓþþþÿþÿþþÿþÿþþÿþÿÿþþþþþþþþþþþúÕ�Žwv}}}}}v}}}}}}}}}}}}}}€}}}}‘}}}}}}}~}}}‘‘‘€€}}}}}}‘‘}€}}�}‘€‘}}‘‘€€‘‘}}‘€‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘‘€‘‘‘‘‘‘‘Úþÿÿÿÿÿæ‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘¥‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘€€~‘¡‘€‘‘‘¡¡}‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘€‘‘¡¡‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€‘™‘¡‘‘‘‘‘‘‘‘‘‘‘õÿÿÿ§‘�‘‘‘‘‘}€}€‘‘‘}‘‘}}‘}}}‘‘}}}}}‘}}}€}}}}}}}}€}}}ww}}}}}}}}}w}}w}}vw}}w}vw}}v}}ww}žÿòv�þý™wv}vvÙÿÿÿú˜wvvvvvvwvžýñvwvvvžúúžvvvvvvvvuvvvvuvvvuvvuouuouvvvouovvvllvvvuuuoouvouuluooultluuuullvulluulllltutluollltuuuultCCllttltttlZCCZCltlZCCCCZtZCCll”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=;!!!Bóÿÿÿÿÿ÷_!!! ! !! !!!! !   qªíþþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7Ó×ÿþÿþþþþÿþþþþÿþþÿÿþþþþþþþþþÿüúÕ�sv}}}w}}}}}}}}vv}}}}}}}}}}}€}}}}‘‘€‘€‘}}}}}}}}}}}}}}}‘‘‘‘€}}‘€€‘}}}‘}‘‘‘€‘‘€‘‘‘‘¡€}}‘‘¤¡‘€€‘‘€}‘€‘‘€€‘‘‘€€€‘Úþÿÿÿÿÿæ‘‘¤¡‘}‘‘‘¡‘‘‘¡‘€€‘‘€‘‘‘¡¡‘‘‘‘€‘‘¤‘¤¥¤€€‘‘‘‘€¥¦¥‘‘‘¡‘‘‘‘‘‘‘‘‘‘¥¥‘€‘€€‘‘‘¤¡‘‘€€‘¥¡‘‘‘‘€‘¤¥‘‘‘¤¥¤¤¤¡‘‘‘€‘™‘‘‘}‘‘‘‘¤‘‘‘€€}}}§ÿÿÿõ€‘€€‘‘‘‘€‘€}}‘‘‘}‘€€}}}}}}‘‘€€€}€}‘‘‘€‘}}}}}}€}}}}‘}}}w‘}}}}}}}‘}wv}}w}wv}}w}}wvv}}Óÿè™ÿý˜vv}}wvÙÿÿÿ÷œvwvvw}vvžýèvvuvwžõúžvvwvvvwwvuuvovvvvuw}vvtvvuououvvluvuuvlovuluuvvuuluouvvuvvllllluuulullCttlulllouuuoCCCCCCtltttlCCtlCCtllCCCZlCCCCtCCCCCCZCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!#!!Yóÿÿÿÿÿ÷_ !!!!;;! ! ! !;!   !   !  !=q¥õÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ$5!Ó×þþþþÿþþþÿþÿþþÿþþÿþþþþþþþþþüÿúÕŽ}w}}}ww}}}}}}}}}}}}}}}}}‘}}}}}}}}}‘‘‘€}}}}}}}}}}€‘€€}€‘}‘€‘}€€}‘€‘‘€‘‘€€}‘‘‘¡‘}€€‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘Úþÿÿÿÿÿæ‘‘‘‘‘~€‘‘€‘¤‘€€¥‘‘‘€‘‘‘‘‘‘‘‘‘‘‘¡¡€‘¡‘‘‘‘‘€‘€‘¥‘‘‘¥¡€‘‘‘‘‘‘‘¤‘‘‘‘‘¡¤‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘€‘÷ÿÿÿ¥‘‘‘‘‘‘}‘€‘‘‘€‘€}}}‘‘}}}€}}}}‘}}€‘}}}}}}}‘‘}}}}}}}}}}}}}}}ww}v}‘}v}}}w}}v}}Úÿà}™ÿý™vvv}}v}žúÿýàvwvvv}vvvÇýèwvvvvvžõýÇvvvvvvvvvuvvuuuvuvvvvvvuvuvvuovuoovvuuvuuvvuvuvtvloulvwouullotluooulltltlluluttluuullCCllllllulCCltlCtltCCCllCCCtCCCClZCCCxòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Bóÿÿÿÿÿ÷_ !!#!!!!! !! !!  !=q¥íÿþÿþÿþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ7Ó×ÿþÿþÿþÿþÿþþþÿþþÿÿþþþþþþþþþÿüúÖ¢�Ž}}}}}}}w}v}}‘}}}}}}}}}€}}}}‘}}}}w}}}}}}}‘‘‘€}€‘‘‘‘€}‘}€‘‘‘}€}}‘¡¡€}‘€‘‘€‘‘‘‘‘‘€}}‘‘€€€‘‘‘€‘‘€}‘€€‘‘‘‘‘‘‘‘‘€Úýÿÿÿÿÿæ‘€€‘¡‘™¡‘€€¤‘€‘¤¡‘¥€€€‘‘‘‘‘‘™‘‘‘¥‘‘¡¥‘€€‘‘‘¥‘‘‘€‘¡‘‘¡¤‘€€‘‘‘‘‘‘‘‘‘‘‘¥¡‘¡‘‘‘‘€€‘¡‘‘€‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘€€€€‘‘‘¤‘‘‘‘‘‘‘}}‘‘‘€‘‘‘}‘‘Ôÿÿÿæ}‘€‘}€‘‘‘‘‘‘‘‘¤‘‘‘‘‘€‘‘‘€}}€‘€‘‘‘€}}}}}w}}}€}}}}}}€€}}}}}}}}vv}}v}}w}}}}v}vv}}v}w}wvvvwßÿÙv˜ÿýžvw}vvv}˜Êž�}vvvw}vvv{ßÿßvvvvvv˜õúžvvvvvuvvvw}vvuvvvuvvuuvvvvuvvvvvvuuvvvluluuolluvvuulluvtotouuoulltltllluCltlulCCllCCluuvuulCZlCCtlCCtlCtllluultlCltCCtlCCCC›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!! ;!Yóÿÿÿÿÿúx!!;!! ! !!!! ! ! !!    !s¥õÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5!77ÓÓþþþþþþþþÿþÿþþÿþþÿþþþþþþþþþüÿúÕ¢�}}}}}w}}}}}}}}‘€}}}}€}}}}}}}}}}}}}€}}‘}€€‘}}€‘}}‘‘‘}‘}‘‘}€‘‘‘€}}¥¡}}‘‘‘‘‘}€‘‘€‘‘€‘}‘‘‘‘‘‘‘‘€€€€‘‘€‘‘‘‘‘‘‘‘€€ÚþÿÿÿÿÿꙀ‘¤‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘€€‘¢™‘‘‘‘‘‘‘‘¡¥‘‘‘‘‘‘‘¡¤‘‘‘‘¡‘‘¤¤‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘¤‘‘‘‘‘‘™‘‘‘€‘™‘‘‘‘‘‘‘‘‘‘‘‘‘€€€‘‘€‘‘‘‘‘‘‘¤‘€€‘‘‘‘‘‘‘€‘¥ûÿÿþ™‘‘€‘‘‘€}‘€‘‘€€‘‘‘‘‘‘‘‘‘‘‘}}‘‘‘‘‘}€}}}}}}}}‘}}}}}}}}}}}}}w}}}}}}}}}}}}}}}v}ww}}}w}}ww}vw×ÿ×v�úýž}}}wvvw}}v}wvwvvvwvèý×vvvvvv˜õúÇ}vuvvvw}|vvvvvuuvvuvvvvvuuuvvwvuvvvuvuoolvvuullouoououvuluvuluotlllltllllllllCClttCltllutluClulllltCtlCCutttttllZClCClCCCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!=Zóÿÿÿÿÿ÷_!;!#! ! !!!!! !! ! !  !  qªíÿþÿþÿþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè×!77Ô×ÿþÿþÿþÿþÿþþþþÿþÿÿþþþþþþþþþÿüú¬��}}}}}}‘‘‘}}}v}}}}}}€}}}}}}‘€}}}}‘}}}‘‘}}}€}‘‘€}}€}‘‘‘‘}}}€}€¡‘‘€‘‘}}‘‘€}}€€€‘‘‘‘}€‘‘€‘‘‘‘‘‘‘‘¤¡‘‘€‘¡‘‘‘‘‘Ùþÿÿÿÿÿæ‘‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘¡¡‘‘‘‘‘‘‘‘€‘€‘‘‘‘€‘¡¡¢¡‘‘¤¡‘‘‘‘¤¡¡‘‘‘‘‘‘€‘‘‘‘‘¡‘‘‘‘‘‘¤¡‘‘‘‘‘‘‘‘‘‘€€€‘€‘¡¡‘€‘‘¡¡‘‘‘€‘‘‘‘¡‘‘¤‘‘‘}€‘‘‘‘‘‘‘àÿÿÿÚ‘‘¤‘€}‘‘}}‘¡‘€€€‘}}‘‘}€}}‘‘}}}}‘‘€‘‘‘}}}€~}}}}}}}}}}}}}}€}}}}}wvvww}w}}w‘vww}}w}}}}vÓÿ×}èÿ×}}vvwvvvvvvvvvwvvw}wž÷÷œvwvvv}ž÷÷œv}vvuuvvuouvvvuuwvvvvuoovvvuvuuuvuuouuuuuvuuvvuuouuulltlluvuoouvlluvuvuuluotlultuvlltllZlCCCCtCCZCCCCCtlCCCCCCultCCCZtltlCCZx÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Yóÿÿÿÿÿ÷_! !!! !#!;! !#! ! !!  !  =pªõÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!$Ó×þþþþþþþþþÿþÿþþþþÿþþþþþþþþüÿþúÖ�}}}}}}}}}€‘}}}}}}}‘}}}}}}}}€}}}}€€‘}}}}‘‘‘}€‘‘}}‘}‘‘}‘‘‘}‘€}‘‘‘}€‘‘‘€}}‘‘‘}}‘‘‘‘€‘€‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€Úþÿÿÿÿÿꙑ‘‘‘‘‘‘‘¤¡‘‘‘‘‘‘‘‘¥‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘}¡¥¡¥¤‘‘¡¥‘‘‘‘‘¥‘¤¤¡‘€‘‘‘€‘‘‘‘‘‘‘¤‘‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘¡™‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘€‘ûÿÿý‘‘‘‘¡‘}‘‘‘¥€‘‘‘‘‘€}‘‘}‘‘}‘‘}}}}‘‘}�‘‘‘‘‘}}~�‘}}}}}}w}}}}}}}}}€ww}}vv}w}ww}w}}}}}}}}vw}w}žÿà}Óÿ÷wwvv}}}vvvvvvv}vvwvwÓÿà{vw}vvwÇúñ˜vvwvuvvvvuuuvvvvvvuvvuuuuuvuvvuvvvullvvllvovvuvulluullulluvluutultluutuuululoullouuuoullltCCCCCCCtCCCttCClCuCCZCClCCCtCouCCCCÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@! !!Bóÿÿÿÿÿ÷_!!!! !! ! !#!!# !!! ! !  =q¥íþÿþÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!7ÓÓÿþÿþÿþÿþþÿþþþÿþÿÿþþþþþþþþþþþúÕŽs}v}‘}}}}}€}}}}€}}}}}}}}}‘}}‘€‘}}€‘}}}}}€}€€€‘}}‘‘‘‘‘‘‘}}‘}}‘‘}€‘‘‘‘‘‘‘‘€‘‘‘‘€€€‘€}}‘‘€€‘¡¡‘€€‘‘‘‘‘Úýÿÿÿÿÿæ‘‘}‘¡¡‘€‘‘‘‘‘€‘¡‘‘‘¡‘‘‘¤¡‘‘€‘‘‘¡¡¡¤‘¤¡‘‘¡¡‘�‘‘‘‘‘¡¡‘€‘‘¥¡‘‘‘‘‘‘‘¤‘€‘¡¥¡¡‘€‘¤‘‘‘‘‘¤¡‘‘‘‘‘‘‘¡¡¤¡‘€€€‘‘‘€‘¥‘‘‘‘‘‘¡€€‘€€‘‘‘‘‘‘‘‘¡‘‘‘×ÿÿÿÚ‘‘}€€}€‘‘‘‘}‘¡‘‘‘‘}}‘‘€}‘‘}}~€}}‘}‘}‘‘}‘‘}€}}w}}}‘‘€}}}}}}}}}}}}}}}}}}}}}w}}}wvv}}ww}}wv˜ÿôv}˜ÿýÇww}}vv}vv}v}}}wvvv˜ñýÓvvvv}vv×ýßvvvvvvvvvvvvvvvuovvvvlvvvvvuooovuuvluwvoluuvvouoovuouvvvououvlCluvltllultuoooulCtllCullltolluultllCCClCCltlCCCCCCZlCCCCZCCCCZtèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!;Zóÿÿÿÿÿ÷_!!#!!!#!#! ! ! !! !! !    !! qªõÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!!75Ó×þþþþþþÿþþþÿþÿþþÿÿþþþþþþþþþÿþúÕ�}}v}€€}}}}}}}}}}}}}}}}}}}}‘€}‘‘}}}‘}‘‘}}}}‘‘€}€}‘}}‘‘‘‘‘¡‘}‘‘€}‘‘‘‘‘‘€‘‘‘‘‘€€€‘€‘‘‘‘€‘‘‘€‘‘‘‘‘¡‘€€‘‘‘€‘‘Úþÿÿÿÿÿꙑ€‘¤‘‘‘‘‘¡‘‘‘™‘‘‘¤‘€‘‘‘¡‘€‘‘‘¤¡‘‘¡¥‘‘¡¤¡‘‘‘‘‘‘‘¥‘‘‘‘‘¡¥‘‘‘‘‘‘¡‘‘‘‘¤¡¥¤‘€‘‘‘‘‘¡‘¤‘‘‘‘‘‘‘¡‘‘‘¤‘‘‘‘‘‘‘€‘¢™‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡¡‘úÿÿû¤‘‘€€}€‘‘€}‘€‘‘‘‘‘‘‘‘€}‘‘‘‘€}�‘€}‘}€‘}‘‘‘‘‘€}}}}}}}~€}‘€}}}}€}}}}}}v}}}}}}}}}}}‘}v}}v}v}}wv}}}vÿüv}˜õÿõv}}v}}wvv}}}}v}}vÙÿñ˜vuvvvvvßÿ×vvvuvvvwvvvvvuvvvvvvuvuvvvvuouuuuouvlovvuullvuuvluvluvvvvlououllluvllltClouuuuulultCCltlttlZutllulCCCCCZlutuCCCCCClttCCCCCZCCCCƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;!!!!Bóÿÿÿÿÿ÷_!!!;!!!!! ! ! !!! !!! ! ! ! !! p¥íÿþÿþÿþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!7!!Ó×ÿþÿþÿþþþþÿþÿþþþÿÿþþþþþþþþþþþúÖ�}}}}}}}}w}w}‘}}}}}}}‘}}‘€}}}}}}}}}}}}‘‘}‘‘}€}}‘~}}}}}}‘‘}}~}‘‘‘€‘¡‘‘‘‘‘‘€€€‘‘‘‘‘€‘‘‘‘¤¡‘‘‘‘‘¤‘‘€€‘‘¤‘‘¤¡‘¡¤¡Úþÿÿÿÿÿ椡¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¤¡‘‘‘‘¡¥¡‘‘€‘¡‘~‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¤‘‘€‘‘‘‘¡‘‘€‘‘‘‘‘€‘‘€‘¡¤¡€‘‘‘‘¤‘€‘‘€€¡¡‘‘‘‘™¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘€~‘�ÓÿÿÿÓ}~€€‘}‘‘‘‘‘€‘}€}€‘‘€}€€}}}‘€‘‘‘‘}}€€€}}}}}€}‘}}}}}}}}‘€}}}}}€}w}w}}}}}‘}v}}}w}}}}wvw}�úý˜}Çÿý§}wvvv}vv}}vvvvvw{Êýü×wvvwvvèýÊvvvvvwvvvvvvvvvvwvvvouovvvuvuvvvvuvvouvvvvuluovuoooluuuuoCtuuvulvuoluuvooullZlllllulCuulllllCCCtutltlullCCCCCCZCCCtCCCCCCCCuCCCZÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=9!!!Yóÿÿÿÿÿ÷_! !! ! !! !! ! ! !!   !!   qªõÿþÿþÿþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!7!ÓÓþþþþþþÿþþþþþÿþþþÿþþþþþþþþþÿþúÕ�}}}}}wv}}}v}}}}}}}‘‘‘}€‘}}}‘}}€}}}~€}}}}€‘‘€}}‘}}}}}}}~}€}}}}¡‘}}‘¡‘‘‘‘‘‘}}‘‘€‘‘‘¡¡‘€‘‘‘‘‘‘‘€‘‘¡¡‘‘‘‘‘¡‘‘¡¡¤¡¡‘Úþÿÿÿÿÿॡ¤¡‘¤¡‘‘‘‘‘‘‘‘¡‘‘‘‘¡‘€€¡¤¥¢€€‘¡‘€€€‘‘‘€‘¢¤‘‘‘‘‘¡¡¤¡‘‘‘¡¡¡‘‘€‘¡¡¡¤¡‘‘‘‘¡¤¡¡‘€‘¥‘‘‘‘€‘‘¡¥‘‘‘‘‘‘‘‘€‘‘‘¤‘‘‘‘‘¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘€€‘‘‘‘ûÿÿ÷€‘‘‘‘€‘‘‘€‘€‘€€}}}�‘‘‘‘‘}€‘€€‘}}}}}‘€}€}}}}‘‘}}}}}�}}}}}}‘}w}}}}}}€}}w}}w}}}w}v}}èÿÓ}wõÿ÷™wwvw}wwv}vvvvvžõÿèww}wvvwžúñ˜vvvvwvvvvvvvvvvvwvvvuoovuvuvvvvvvuouvulvuvoluluvtluulooullloouuuuvtlluvuuuullutlututCllltluCCClCtlluCoutltCCCCCCCltCCCCCBCCCCCCCuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!;!!@óÿÿÿÿÿ÷_! !! !!#!! !!! ! !! ! ! !  !    $}ªíÿþÿþÿþÿþÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!7$!777Ó×ÿþÿþÿþÿþþÿþÿþÿþÿÿþþþþþþþþþþþúÖ�}Ž}}}}}€€}}}‘}~}}}}}}}~}}}}€}}}€‘‘€}}}}}‘€}€}}~€€€‘‘‘‘‘€€}‘‘‘‘¤¡}‘}}~‘‘‘¡€€‘€}‘€‘‘‘€‘‘€€‘‘‘‘}‘‘‘¡‘‘‘€€‘‘‘‘€Úþÿÿÿÿÿ椑‘‘‘‘‘‘‘€‘¡‘‘‘‘‘‘¡‘‘¤¡‘€‘‘¡‘}¡¦¡¡¡€‘¡‘‘¤¥‘¡¤‘¡‘€‘‘¡‘‘‘‘‘™¡‘‘™‘‘‘‘‘‘¤‘‘‘‘‘¤‘‘‘¡‘¤¡¡‘‘‘‘‘‘€‘‘‘‘‘‘‘¤¡‘€‘‘‘‘‘‘‘€‘¥¡‘€‘‘‘‘‘‘€‘‘€‘€ÓÿÿÿÓ€‘‘¤‘€‘‘}}‘‘‘‘‘‘€‘‘‘‘€}‘‘‘€€‘‘}€~€‘€}}}€}€€}}‘}€‘}}}}}~}}}}}}w}}}}‘‘ww}v}ww}v}‘}v}v}}}}}}}žÿôžüÿõž�}wvv}vwvvw}˜Ó÷ÿõœvvvwvvwàþßvvvvvouvupvvvuvvvuuvovuvvvvvvuuovvuvvvuuovuuuovvuluvvluvluuvuoooltouoolotullCuulltllCuutlltllutolCtlCCullCCtllCllCtCCCtlCCuCulCCC–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!Bóÿÿÿÿÿúx!!!!!!! #!!!!#! ! ! !     !=q¥õÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!!!!ÓÓþþþþþþþþþþþþþþþÿÿÿþþþþþþüÿþþúÖŽ}}}}}}}}}}}€€‘‘}}}}}}}€}}€‘}}€‘‘‘‘‘}}}}‘€}}‘‘‘}}‘‘€‘‘‘‘‘}}‘‘‘‘‘‘‘}}}€}}‘‘‘‘€}‘‘€}€€€‘‘‘‘‘€€‘‘€‘‘‘€‘¡‘‘€‘‘‘‘‘‘‘Úþÿÿÿÿÿड‘‘‘‘‘¡™¡‘‘‘€‘¡‘‘¡¡‘‘‘‘€‘‘‘‘€¡¥¥¤‘‘¡‘‘‘¡¡‘¡¥¤‘‘‘‘¤¥‘‘‘‘‘‘‘¡¡‘‘‘‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘¤¥¤‘‘¤‘‘‘‘‘¤¡‘‘¡¥¥‘€‘‘‘‘‘‘‘€€~‘¡¢¡‘€€‘‘¡€‘‘‘‘÷ÿÿ÷‘€‘‘‘€€‘‘‘‘‘‘‘€‘‘€‘‘‘‘}€‘€}€‘‘‘‘‘€}}�‘‘‘}}}‘‘}€}}}‘‘}}}}}€€�}}}}}}}}w}‘}}v}}}vv}}}}}w}vvw}w}}�õþÓ}}žúÿýàž�}{}}{�™Óèÿÿ÷Çwvvvvvvvœ÷÷ž}vvvvvvvvvuvvvvvvvvvuvvuvvvvvvooulvvuuvvuovuovvuuvvuuvultlluuuuuvlluvotullouClluCCllllluutltCCuuulltuCltttltluCCZluCCluCZCCllZtCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9#!!!@óÿÿÿÿÿ÷x;!! !!!!!!!!!!! ! !! ! !!  ! !! ! q¥íÿþÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!!!!Ó×ÿüÿþÿþþÿþÿþÿþþÿþÿþþþþþþþþÿüÿúÖ�}}}}}‘}}}}}}}}}}v}v}}~}}}}|}~€}}}}}‘‘‘~}}‘‘}‘}}‘‘‘‘€€€€‘}€‘‘€‘‘‘‘‘‘}€‘‘€‘‘¤‘€€€‘€€‘‘‘‘‘‘¡‘‘‘‘‘‘¤‘€‘€‘¡‘‘¤‘‘‘‘Úþÿÿÿÿÿ楡¡‘€‘‘‘‘‘‘‘‘‘¡‘€€‘‘‘‘¡¤¡‘‘¡¡‘‘‘‘¤‘‘¡¥¡‘‘‘€‘‘‘‘€‘¤¡¡‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘¤¤¡‘‘‘‘¤¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘¡‘¡‘‘‘€‘‘‘™‘‘™‘‘‘‘¡¡€¡¡‘€‘ÚÿÿÿÓ‘‘‘‘‘€‘€€‘‘€‘‘‘‘‘€‘‘‘‘‘‘€‘€‘‘}}‘‘€‘}}}€‘€}}€‘}}€}}€‘}}}}€}}}}}}}}}‘}}}}�~ww}w}}}€}w}}}}w}}w}}}w}}Êÿ÷�vwv™òþÿþõßÓÓž×àñûÿÿÿõžvvw}wvvÙýàw}v{}vvvvvvuvvvuuovvvvvovuuuouuvvvovvvvvvoooovvtlvvoluuvvuuuoluuvulluullluuulluulltltullllltlllllttlCCCuCCCCCllCCCCCltCCCCCZCCCCBA@u÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!;Zóÿÿÿÿÿ÷_!! !!9!!! ! !! ! !      !q¬õÿþÿþÿþþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!!ÓÓÿþþþÿþþþþþþÿþþþþÿþþþþþþþüÿþþúÕŸ}}}}}}}}}}}}}}}}}}}}}}€}}~‘}}}}}}}}}€‘‘‘}}}~‘€}}}‘}€‘‘�€‘€€‘€€‘‘‘}}}€‘€‘‘‘‘‘‘‘‘¤‘‘‘€‘‘‘€‘¡¤‘‘‘‘‘‘‘¡‘€¡¤‘‘¡‘‘‘‘‘Úþÿÿÿÿÿत‘‘‘‘‘‘‘‘‘€¡¤‘‘‘€€¡‘€‘‘¤‘‘¡¡¤‘‘‘‘‘‘‘¡¤¡¥‘‘€‘‘‘‘‘‘‘‘‘¡¡¤‘‘¥‘‘€€‘¡‘€‘¡‘‘¡¤¡‘‘‘¡¥¡‘‘€‘‘‘‘‘‘¤‘¡‘‘‘‘™‘‘‘¡¤‘¡¥¡€‘‘‘‘‘‘‘‘€‘‘€€¥‘€¡¥‘‘¡÷ÿÿõ‘‘‘‘‘€‘‘}¡™‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€€€€}€€€}‘}}}€€}‘‘}}}‘}}}}}€‘}}}}}}}‘‘}}‘}w}w}w}}}}}}}}}}}}}}wvúÿ×wvv{×úþÿÿÿÿÿÿÿÿÿÿÿõžvvvv}}}wwÇú÷žvyvvw}wvwvvvvvvvvouvvvvuoovvvolovwvvuvvvvvououuvvovvooluvvvooutlluouuouutlluuuouulluClutllttlulttClltCCCCCCCZltlCClZCCulClCCCCCCCCCC@�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ;!!9!Cóÿÿÿÿÿ÷_!!!!#!#! ! !! ! !!!! !!   ! !   !q«õþÿþÿþÿþÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ57Ó×ÿþþþþþþÿþÿþþþþþÿÿþþþþþþþþÿüÿúÕ��}~}}}}}}}~}}}}}}~}}}}}}}}€€}~}}€€}~‘~}€}}€€~~}‘~}}}‘‘€}}¡€}~}€}~‘‘‘€‘‘‘‘‘‘}}‘¡‘‘¡‘€‘¤‘€}‘¡‘¡‘‘‘€‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘Úþÿÿÿÿÿ楡‘‘‘‘¡¡‘¡‘€‘¥¡‘‘‘‘¥¡‘‘‘‘‘‘¤¡¡¡‘¡‘¡¡‘‘€‘¡‘‘‘¤‘¡‘¥¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘¢¥‘‘¤¢‘‘‘‘‘¤‘‘‘‘‘¤‘‘‘¡‘¤¡¡‘‘€‘‘‘‘‘‘‘‘¥¡‘‘‘‘€€‘‘‘‘‘‘‘‘¡‘‘€‘¥€‘¡‘‘Úÿÿÿ¬‘‘‘€‘€‘¤€}‘‘‘‘€‘~€‘‘€€€‘‘‘‘€€€}€€€‘€‘‘‘€€}}€€}}}}‘€€€}€}}}}€}}w}}}}}}}}}}}}}}}wwwwww}vw}v}}v}ÌýýÓ}}vv˜àõýÿÿÿþúýÿÿè™v}wvv}v}w˜õý×vvvvvvvvuvvwvvvvvuovvvvvuvuuvvuvvuuvvuoooououvlloouuuououuuluooluouvoluooltlltluulllluulltlllltlClulCCulullllCCCZltCCCCCCZltClCCCtCCCCçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Yóÿÿÿÿÿ÷_!!#!! !! !!!#!# ! !  !! !  !  pªõþÿþþþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!ÓÓþþþþÿþþþþÿþÿþÿþþÿÿþþþþþþþüÿþúÕ��~}}}}}}}}}~}}}}‘‘}}}}}}}}}~€‘‘‘‘€}~}}~}}‘‘}}‘‘‘}}}}€~}}‘}}}‘€}}}}‘‘}‘‘‘‘‘‘‘‘}‘‘‘‘‘¥‘‘‘‘‘‘}‘¥‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡Úþÿÿÿÿÿꥡ‘‘‘‘¡¡‘‘‘‘¡¥¡‘‘€‘¥¤‘‘‘‘‘‘¢¥¤¡‘‘‘¤£¥‘‘‘‘‘‘¡¡¡¡¡¤‘‘‘‘‘}‘¡¡¡‘‘‘‘‘¥¥‘‘¡¥‘‘€€‘‘¡¡‘‘‘¡‘¡¤‘¡¢¤‘‘€‘‘‘‘‘‘‘‘‘¡¤‘‘‘‘€‘€‘¡‘‘€‘¤¡‘€‘‘‘‘€‘¥‘¡÷ÿÿô‘¤‘‘‘€‘¡‘‘‘‘‘}€‘‘€‘€‘‘€}€‘‘‘‘€€}}‘‘‘‘}}‘‘‘‘‘}}}}}‘}‘‘€‘}}}}}€}}}}}}}}}‘}€}}}}}}}}vvv}wvv}}vvàþý×vvvvw�×÷ÿÿàžàÿ÷˜vvv}}vvvw™èþè†}wvvvvvuuov}vvvv}wvuvvvuvvvvuvvvv}oovvvououououuluvovvuvllllvulllouuvtlotluoltlllululultullutltlltCCoClltltultCCCCutlCZCCCCCCZCCCClZCCC{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@!!!!@óÿÿÿÿÿ÷_!!;! ! !!!!!! !!! !  !!!  !! !!  ! !$p¥õþÿþÿþÿþÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!!!$!!7Ó×ÿþþÿþþþÿþþþþþþþþÿþþþþþþþþÿþþúÖ�Ž}}}}}}}}}}}}}}~}}}}€‘‘€}}}}}}}~}‘€‘}}}}‘‘}}‘‘}}‘‘‘‘}€¡‘}€‘‘}‘€‘¡‘€‘‘€‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘‘‘€‘‘‘‘‘€€‘‘‘‘¡¡‘‘‘‘‘€‘‘Úþÿÿÿÿÿæ‘‘‘‘‘‘¡‘™¡‘‘‘¡‘¡‘‘‘¡¡‘‘¡¡‘‘‘¡‘¡¡‘‘‘‘¤‘‘‘‘‘‘‘‘‘‘‘¡¤‘¡‘‘€‘¡‘‘¡¡¡¡‘‘¡‘‘¤¡‘¤‘‘‘‘¤¤‘‘‘¡‘¤‘‘‘¥¡‘‘€‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘¤¡‘¡¡‘€‘¤‘‘‘‘‘€‘€‘¤‘×ÿÿÿ§‘‘‘€‘€‘‘‘€€‘‘‘‘‘€}‘¡}€€€€€€‘‘€}‘€‘‘‘€€}}‘‘‘‘}}}‘€}}}}€}}}€}}€}}}w}}}}}€}}}}}}}}}}v}w}}}v}}v}}}èÿû×}}wv}Êÿ÷™vžúè}wvvvv}v{žèýò›vvvvvvvvvv}wvuvvv}vvvvvovvvwvvulv}vuuvuoovvvvuoolvvuuouoououvoouluuouolltluuoolltoulttlllltllCultulCZltulCltltlCllCCCllCCCCCCCCCCZCCCCCZÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!9!Zòÿÿÿÿÿ÷_!!!!! ! ! ! !!! ! ! !#! ! !   !  !qªõþÿþÿþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!!$!7ÓÓþþþþþþþþÿþþÿþÿþÿÿþþþþÿþþþüÿþúÖ¢}v}}}€~}}}}}€}}}}}}~}€‘‘~}}}}}}}‘}}~‘‘‘~}}}‘€‘‘}}~‘‘‘}}€€‘‘}€‘‘‘‘‘‘¥‘}‘~‘}}€‘€~‘‘‘‘‘‘‘‘‘€‘‘€‘€€‘‘€‘‘‘‘‘€€‘¥¤‘‘‘‘€‘‘‘ÚþÿÿÿÿÿꙀ‘¡‘™‘‘¡‘‘‘‘‘¡¤¡‘‘‘‘‘¡¡¤¡‘‘‘¡¤¤¡¡‘‘‘¡‘‘‘‘¡‘‘‘‘‘‘¡¡¡¡‘€‘¤‘¡¥¤¥¡€‘‘‘¡¡¡‘‘‘¡¡‘¡¡‘‘‘‘¡¤‘‘‘¤‘‘‘€‘¡¡‘‘‘‘¡‘‘‘‘‘‘¤¡¤‘‘™‘‘‘‘‘‘¡¤¡‘‘‘€‘¡÷ÿÿ뤑‘‘€‘‘‘‘‘€‘‘€€€‘‘‘}}‘€€}€‘‘€}‘‘€€‘‘‘‘}}€‘‘‘‘‘‘€€‘‘}}€€}}€€}}}}}‘‘‘}}}}}}}}‘}w}w}}v}}}}}}}}}}vww}}w}˜òÿþÙ˜w}}vvšÿõw™ñÙwvvvvvvÊõÿõžvvvvvvvvvwvvvvovvvvvwwvvvuvvvvvvvuvwvvuvvuuluvvuvuovvuouvuovvuvuvvuuuuuvulCloutlluluullllCtltuClltCCCCCloulZCtlltltlCClZulllZCClZCCCCACCCCvñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!9!!9Zóÿÿÿÿÿ÷_!! !#! !!! ! !!!!! ! !!!!  ! ! !!   !  qªõþÿþÿþÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!Ó×ÿüÿþþþÿþþþþÿþþþþÿþþþþþþþÿþÿþúÖ��}}}}}}}}}}}‘}}}}}}}}}‘€}}€€}~€}~‘}}~}}€}}‘€~‘}}‘‘~}€~‘‘‘€€}‘‘‘€~}~¢‘‘‘€‘}}¡‘€€‘€‘¡‘€‘¡‘‘‘‘‘‘‘‘‘‘¡¡‘¡‘‘‘‘‘‘‘¡‘¤‘¡‘‘‘‘Úþÿÿÿÿÿæ¡‘¡¥¡‘‘‘‘‘‘¡¡¡‘¡¡‘¡‘¡‘‘¡¡‘‘‘‘‘‘‘‘‘¡‘€‘¤¡‘¡¡¡‘‘¤‘‘‘‘¡¤¡‘€¡‘¤¡‘‘‘¡¡‘‘¤‘‘‘‘¡¤¡‘‘¡¤‘¡¡¡¡‘‘‘‘‘‘¡‘¡¥¡‘‘‘‘‘‘‘‘‘‘¤¡‘‘‘‘‘‘‘‘‘‘‘™‘‘‘‘‘¡‘‘Øÿÿþ¥‘‘‘‘‘‘‘‘‘‘€€‘¡‘‘‘‘€€‘€‘‘‘‘‘‘€}‘‘€€€}}€‘€‘€‘‘€€}}~}€‘‘}€€€€}}}€}}}}}}}}}}€}}}}}€}}}w}€}v}}}}}v}}ww}}ww}}}™èýÿõÓ™€vvžý÷w˜èÙvvww˜žàýþèžwvvvvvvvvvvvvvvvuvvuvvvvvvvvuvovuvoovvvvvvvvoovvuuuovuolvvolupooouoluloltooltuollvulloululllullCCtulCtllCZCllllCtlCCttCCCCCZCCCCtlCCCCCBCCCZ”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Yóÿÿÿÿÿ÷_!! !!!!!#$! !! ! ! ! ! ! ! !   !  !q¥õÿþÿþþÿþþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!775Ó×þÿþþþþþþÿþþþþÿþþÿÿþþþþþþþüþþúÕŽ��}}}}}}}}}€~}}}}}}}}}}}}‘‘‘}€‘}}‘‘}}}}~}~‘€}‘‘€€€}€‘‘‘‘‘‘‘‘‘}}}¡‘‘‘‘‘‘€‘‘~‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘¡¥‘‘‘‘‘‘‘‘‘‘‘¡¥¡‘‘€‘Úþÿÿÿÿÿड‘‘¡‘¡‘‘‘¡¥¥¡‘‘‘¡¤‘‘‘¡¥¥‘‘‘‘‘¡¡¡‘‘‘‘‘¦¡¡¥¥¡¤¡¡‘‘‘‘‘¡¥‘‘‘¡¡¡‘€¡¥¡‘¡¡‘‘‘¡¡¤‘‘‘‘¡¤¤¤¡¡‘‘‘‘‘¡¥‘¢¦¤‘€€‘‘€‘‘¤‘‘¡¤‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¥¡‘õÿÿè‘€‘‘€‘‘‘‘‘‘‘€€‘‘™‘‘‘‘‘‘¢‘‘‘‘€}‘‘€‘‘}}‘‘‘‘}€‘€€}}}}€‘‘‘}€€}}}‘€}}}}}}}}}}}}}}}}}}}}}}w}w}}}}}}}}}}}}}}}}ÙúÿÿõÓ˜žý÷w™èß‘™Óèüÿüè™w}vvvvvvw}vvvvuvvvvvvuvpvwwvouovvouvuvuuuuvvvuvvvllvulluooulooulluoooooullullouluvuuullullultluClllltlllCCCCCCCtCCCZCClltCCCCCCCCtlCCCCCCCCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!;!9@Cóÿÿÿÿÿü_! !!=#!!#!!! ! ! !! ! !! ! ! ! !  !!=q¥õþÿþÿþÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè×!77Ô×ÿüþþÿþþÿþþþÿþþþþÿþþþþÿþþþÿþÿúÕ�}}}}}}}}}}}}€}}}€‘}}}}~~}‘~}}‘‘}}~~~~€€}}�‘‘‘€€}}€‘~~~~€}‘€€‘‘€€}‘‘‘‘~‘€~~‘¡‘‘€}‘‘‘€‘‘‘€‘‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘¤¡‘€Úþÿÿÿÿÿ楡‘€‘‘‘‘‘¡¡‘‘¤‘‘‘‘¤‘¡‘‘‘¡‘‘¤‘¡¡‘¤¡‘‘‘¤¦‘‘‘‘‘¡‘‘‘‘¡¡¡‘‘€‘¡‘¤¡¡‘¡¡‘‘¡¡‘‘¤¤¡‘¡‘¡‘‘¡‘¡‘¤¡‘¡‘¡‘‘€‘¤¡‘‘‘‘¤¡‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘Öÿÿý¥‘‘‘‘‘‘‘‘¤€‘‘‘‘‘‘€‘‘‘‘€‘‘€‘‘‘}‘‘€}€‘‘€‘‘‘‘€}}‘€}}€€}€€€€}€}}€}€‘}}‘€€€}}€}}}}}}}}}}}}}}}}}}ww}w}}}wwv}}}ww}žñþÿÿõßèÿõwœõ÷Ó×à÷ÿÿýèÓ�}vvvvvvvvvvv}vvvvvvvwvvvuvvvvvovvuuvvvvvvvoovvouvvllvvulvuuouvuuuloluvoooluvullulvulluultlluulllltlllltttllllCtlulCCulCCtlClllCCCZlCCZCCtlCCCCC{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿ÷_!!!!#!! !!! ! !#! ! ! !  ! !    !$qªõþþÿþÿþÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!ÓÓþÿþþþþþþþþþÿþÿþÿÿþþþþþþþþüÿþúÖŸ�}}}}€‘}}}}~€~}‘‘‘€€~}}€€}}~€€‘‘}}}}‘€~}}}‘¡‘‘‘}}‘‘}}}}}~€€‘‘€‘‘}}‘‘‘€~~}}‘¥‘€€‘€}‘‘€€}€‘‘‘‘‘‘‘‘‘‘‘}€‘¡¡‘€€€‘‘‘‘‘¡¤‘€Úþÿÿÿÿÿ椑‘‘‘€‘‘¡™‘‘‘‘¡‘‘‘¡¤¡¡‘€‘‘‘¦¡¥¡‘¤¡¤¡‘¡¡‘‘‘‘‘¡¡‘‘‘¤¡‘‘‘‘‘¡¡¡¥‘¡¡‘€‘¥¤‘‘‘‘¡¤‘¡¤‘‘‘‘‘‘¡¤¡¡¥‘€‘‘‘¤¡‘¤‘¡¤¡¡‘‘‘‘‘‘‘€‘¤‘‘€‘‘‘€‘‘€‘‘‘™õÿÿà‘‘‘‘‘‘€‘‘‘‘‘‘‘¤‘‘‘‘‘‘‘‘}‘‘‘‘}‘‘‘‘€‘‘‘‘‘€}}}}}}€‘‘‘‘‘}}}}‘€€‘€}}€‘€‘‘‘}}}}}}}}€}}}}}}€€}}}}}w}vwwv}vwvv}}}wvww�Ùõýÿÿÿÿ÷}™õÿÿÿÿÿúñ׆vv}vvwv}vvvvvw}wvuvvvwvvuvvvuvvuvvvvvvvvvuooovullouuouvolvvvuluooptlluuluulluvulllulCCluClllouolluuuotCluvuuultllvtCClltllZCttttCCCllCClllZCZCCZCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=;!!!@óÿÿÿÿÿ÷_!#!!!#!! !!!! !! !!!! !  ! ! !  !! !p¥íÿþÿþÿýÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ$!!××ÿüþþþþþþþÿþþþþþþÿþþÿþþÿþþþÿþúÖ ‘}}}}}}€}}}}}}}‘}}}~}}}~}€}‘~}}‘‘}€€~€}€~~~}~‘€~€‘€€‘}€€€€~‘‘‘‘€‘‘‘~€€‘‘€‘¡€~‘‘‘}¡¢‘€‘~‘‘‘‘‘}‘‘‘¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘¡‘‘Úþÿÿÿÿÿ椑¡‘‘‘‘‘‘¡‘¡‘‘‘¡¡¡¡¡‘™¡‘‘‘‘¡¡¡¤‘‘‘¡‘¡¤‘¡¥¡‘¡¤¡¡¤¡‘¡¡¡¡¡‘¡¡¥¡¡¡™¡¡¡‘¡¡¡‘‘¡¤‘‘‘‘¡¡¡¡‘‘‘‘‘¡‘‘‘‘‘¡‘¤‘‘‘‘‘¤¡¡¡‘‘‘¤‘‘‘‘‘‘¡¡‘‘‘‘‘¤‘€Ôÿÿý¥€‘‘‘¡‘€€‘€‘¤€‘‘‘‘‘€‘‘‘‘‘€€‘‘‘€‘‘€‘‘€€‘‘‘‘€€€€€€€€}}€}€€}}€~€€€}}}}€}}‘‘}}}}}€}}}}}}}}}}}}v}‘}}}}}}}}}}}}w}ww}}}˜×õ÷ýÿ÷™w˜õÿÿúòàžv}vvvvv}}vvvvvwvvvwvvvvvvvvvuvvvvuvvvvwvvvvvouvuvvovuuvvvvulvvovoluluuuluoovlluvlllltuuCluollultltttulCtllllulCCtlCttlCllZolCCCCClClCCCZCClZCCCCCCCCu÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!!!Yóÿÿÿÿÿ÷_!!!!!!!!!!!#!!!! !!!!! !! !! ! ! !    pªõÿþÿþþÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!!ÓÓüÿþþþþÿþþþþþþÿþþÿþþþþþþÿþüÿþúÖ¢‘}w}}}}~}‘€}}€~~}}}}}‘€~}}}}}}}}€}€‘‘~}~}}}}}}}€‘€‘‘‘‘¡~‘‘€}}‘‘‘‘‘‘‘€~}€‘‘‘‘‘‘}‘¡‘€‘¡€‘€€‘‘€‘‘‘‘‘¡¡€‘‘‘‘¡¥¥¡¡‘€€‘‘‘‘‘‘Úþÿÿÿÿÿꤡ¤‘‘‘¡‘‘¡‘¤¡‘‘‘¤¤‘‘‘¡¥¡‘‘€¥‘‘¤¡‘‘¡‘‘¡¡¤¡‘¡¡¤¡¡¥¡¡¡¥¤¦¥‘‘‘¡¤‘‘¡¡¤¡‘‘¡¡‘‘‘¡‘‘‘‘¡¤‘‘‘‘‘‘‘¡‘‘¡‘‘‘¡‘‘‘‘‘¡¤¡™‘‘‘‘‘‘‘‘‘¡¡¥¢¡‘¡‘¡‘‘‘õÿÿÚ¥‘‘€‘¤‘‘‘‘‘‘‘€‘‘€‘‘€‘‘‘€}€€€�‘‘‘€}€€}}‘‘‘‘‘}€€‘€€~€‘}€}}€‘}}€}}}}}}€}}}€}}€}}€}}}v}w}‘}}}}‘}}w}}}}wvv}}}}}}}}�žÙý÷‘}˜õýæž�}vvvv}}vvv}}v}vvvwwvvvwwvvvvvwvvvvuvvvvvvvvvvvvoouvouvvvvvvvvvloouuvolllvvlovotlloulllluvvuouulCltllClCCllloutllllCCCCClCltllutCCCCCttltCCCZCCCCCCCCCCCCÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!@!@óÿÿÿÿÿ÷_!!!!#!!#!!!!!!# !!!#!!! ! ! !   !  ! !!  =sªíÿþÿþÿýÿþþýÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿëÓÓ×ÿþþþþÿþþþþþÿþþþþÿþÿþþþþþþþÿþúÖŸ�}}}€}}}}~‘}}}}}}}€}}}‘}}}}~}~~~}€‘‘}‘‘‘€€~€€‘€‘€~}}‘€~}€‘‘‘‘‘‘€¡‘‘‘€‘‘€‘€‘‘‘‘‘¡‘}‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡¡‘}€¡‘¡¡‘‘‘‘‘¡¡¡‘‘Úþÿÿÿÿÿæ‘‘‘¡¡¡‘‘¡¤¡¡‘‘¡¡¡‘‘¡‘‘¡‘¡‘‘¡¡¡¡¡¡¡¡¡‘¡‘¡‘¡¤¡¤‘¡‘‘‘¥¡¡¤‘¡‘‘¡¡¡¡‘‘¤¤‘‘¤¡¡‘¡‘‘‘‘‘¤¥¡‘‘€‘‘‘¥¡‘‘‘¡¡‘‘‘‘¡‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘¤¡‘™‘‘‘‘‘Óÿÿú™‘‘‘‘‘‘¡€‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘€€‘‘‘€‘‘€€€}‘€}€€€€}}€€}}€‘}}‘}}~€}}}€}}}}}w}}}‘}}}w}€}v}}}}}}}}w}}ww}w}}wvwv}}™úú™}˜õ÷˜vv}wwvvv}vvv}vvvvvvvvvvvvvvvvvvvvvvvvvvuvuvvvvuvuuvvvuuvvvvoouvoouuoluvuuvvulovololuuuuooolluululluulllllltltltlCCuullCCCCCtlCtllCtllCCCCttCCCCCCCZCCCtC@CZòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!#!!Yóÿÿÿÿÿ÷_!!!!!!!!!!!#! !!!! ! !! !! ! !!   !   =q¥õÿþÿþþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!$Ó×þþþþþþþþÿþþþþþÿþÿþþÿþþþþþþÿþúÖ��}€€}}}}}}€}}}}}‘}}}}€}}‘€~}}}}€‘~€‘‘‘‘‘‘}‘‘‘}}‘}}}‘}}}‘‘‘‘‘~}‘‘‘‘‘‘¡‘€}€‘‘¡‘‘‘‘~‘¡¡¢¡€‘‘‘‘‘¡¥‘‘¡¤¤‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘Úþÿÿÿÿÿꥑ¡¡¥¡¡¡¤¤‘‘¡‘¡¥‘‘‘‘‘‘‘¡¡¡‘‘¥¥¡‘¡¥¥¡¡‘‘¡¡¡‘‘¡¡‘‘¡‘‘‘‘¡‘‘‘‘‘‘‘¤‘¡‘¡¡¡¡¡¡¤‘‘¡¡¡‘‘¡¤‘‘‘‘‘‘‘¤‘‘¡¤¡‘‘‘‘‘‘‘‘‘‘‘€‘¤‘‘‘‘‘¡‘¡¡‘¡¡‘‘€‘õÿÿÚ‘€‘‘€‘‘‘‘¡‘¤‘‘‘‘‘‘‘¡‘€‘‘‘‘‘‘¡¥‘‘‘‘‘‘‘‘‘‘‘€~}€€‘€‘‘€€}}}}}}}}}‘}}‘‘€}}€€‘}}}}}}}€}}}‘}}wvw}}}}wv}}}}}€}}vvv}}}w}}}™û÷�}˜õõ™vvwvv}}wwvvwwvvvw}vvvvvvvvvuvvvvvwwvvpvvooooooooovvwvvvvloulloouovvolovuvvuolluuuvoovvvutltCllllCuuullllCCllllllCCluullCCCClllCtlllZlCCCCClCCCCCCCCCACCCACl›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Cóÿÿÿÿÿ÷_;!#! !!#! !!!! ! ! ! ! !! !  !!=q¥íÿþÿýÿþþÿþþýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿèÓÓ×ÿþþþþþþþþþþþþÿþþÿþþþþþþÿþþþþúÖ��}}}}}€}}}~}}~‘}}}}}}}‘€}}¡‘}}}}‘€}}‘‘‘‘~~}}‘‘}~‘‘‘‘¡‘‘‘~‘€‘‘‘}‘~‘‘‘‘‘€‘€‘€€‘¡‘‘‘€‘‘‘‘‘‘‘€‘‘‘‘¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘¡‘¡¡Úþÿÿÿÿÿ椑‘¡‘‘¡‘¡¡¡‘‘¡¡¢¡‘¡¡¡‘‘‘‘¤¡¡¡¡¡‘‘¡‘¡¥‘€‘¥¡‘¡¥¡‘¡¤¡‘‘¡¡¡¡‘‘¤¡¡¡¡¡‘‘¡¡‘‘¤¢‘‘¤¤¡‘¡‘‘¡¡‘¡¤¡¡¡¡‘¡¤¡‘¤¡‘‘¡¡‘‘¡¡‘€‘¡‘‘¡‘‘€‘¡¡¡‘‘‘‘Ôÿÿú¥‘‘¤¡€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¤€€‘‘‘‘‘}‘¢‘‘‘‘‘‘‘‘€€}€€€‘€‘€€‘‘‘}‘}}€€}}}}‘}}}}€}}€€}}}}}}}v€}}}w}}}}}}}w}}}w}}}}}}w}}}}w}}w}wvv}}™úõ˜v™õ÷™}v}vvvwvvvvvvvvvwwvvvvvvw}vvvvvvvwvvvuvvvpuovvvuvuvvvvvoovvoovuoovvuuvuoououvoooooltvuuolloolluollloltuulCltltltllttltlCtllulCllCtlCCulCClCCCtlCCCCCACZCACuCðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$!!!Yóÿÿÿÿÿ÷_!!!!! !!! !! ! ! ! ! ! ! ! !  ! !!     !!qªíÿþþÿýÿýÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿæÓ!7ÓÓþþþþÿþþÿþþÿþþþþþÿÿþþþþþþÿþÿÿúÖŽ}}}}}‘‘}}}}}}}‘€}}‘‘}}}€~€‘€}}‘‘‘}~‘€}}}~}€‘‘}}€‘‘‘‘‘‘‘‘€~‘‘‘~~}}‘‘~‘‘‘‘‘‘‘‘‘‘€€€‘‘€‘€‘‘‘‘‘‘‘‘‘€‘‘‘¡‘¡¤‘‘‘‘‘€‘‘¡¡¤¡‘Úþÿÿÿÿÿê‘‘‘‘‘‘‘‘‘¡¡¡¡‘¡¥‘‘¡¡¢¡‘‘‘¡¥¡‘€€‘‘‘‘‘‘‘‘‘¤¤‘¡¡¤¡‘¡¡‘¡¤¥¡¤¡¢¢¤‘‘¡¤‘‘¡¥‘‘¤¡‘‘¡¡¡¤‘‘‘¡¤¡¡¢¥¥¤¤¡¡¡‘¡¡¤‘€‘™‘¡¡¡‘‘‘‘¤¡¡‘€€‘¡¥¤¡‘‘‘õÿÿÚ¥¡¤¡‘‘¤‘‘¡™‘‘‘‘‘‘¡¡‘€‘‘€‘¡¡‘€}‘¤‘~€€€‘‘‘‘‘€‘}€‘‘€‘€}}‘‘‘€€‘‘‘‘€}€‘}}}}}}}}}}€€}}}‘€}}}}}}}}}}}}}}}w}}}€ww}w}}}v}}}}v}}}}}wvvvvvw™÷÷�v˜õ÷˜}}}}vvvvv}vvwvvvvvv}}wwvvw}vvovvw}wvuvvwvuuovvvvvuvouvulvuvvvvuoouvuvvvuloovvovuvullloooluluououlotllouvtClltllluClllCClouuulZCCClCCCltCCCCCCltCCClCACCCCClC{ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!;!!!Bóÿÿÿÿÿ÷_ ! !!! !!!!! !!! ! !!! ! ! !  ! !!!! ! !!  !=s¬íÿþÿýÿýÿþþýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ$Ó×ÿþþþþþþþþþþþþþþÿÿþþþþÿþþþþþþúÖŽ}}}}}}}}~~}}}€~}~}‘}}}}~}}‘€}}‘~‘‘}~‘€}~}~‘‘€‘‘€€~‘‘€~‘‘‘€€~~‘‘€€}}¢‘~‘‘¡¡‘‘€‘‘‘‘~‘‘‘‘‘¡‘€‘€‘¡‘€‘‘‘‘¡¡¡‘‘‘‘‘‘‘€‘‘¡¡‘‘Úþÿÿÿÿÿꙑ‘‘‘¡¡‘‘¡‘‘‘‘‘¡¡¡¡‘‘¤¡¤¡¡¡¡¡‘‘¥¦‘¡‘¡¡‘‘¡¡¡‘‘¡¡¡¥¡‘‘¦¡‘¡¡¡¥¢‘‘¤¡‘‘¤¡‘‘¡‘¡¡‘‘¤¡‘‘‘¢¡‘¡¤¡¡¡‘‘‘‘¡¡¡¡‘‘‘¡‘‘¥¡‘‘‘‘¡¡¤¡‘‘¡‘‘‘‘‘‘Óþÿ÷™‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¤€}‘¡‘€‘‘‘}€‘‘¡‘€}€€‘‘€€‘‘€‘‘€€€‘‘‘‘}€€€€€€€€€€€}}€}}}}€€}}}}}€}}}}}}}}}}w}}}}}}}}}}}w}}}}}w}}}w}}™÷û™v˜òõ™ww}vwwvw}wvvwvvvvvwvvvvwvvvvvvvuvvvvvvvvvovvvvvvvouoowvuvoouvvvouoovvvvoooooouuouuluuouuuoolultluolluultlCtullllCClulClCtulCllCCCllCCtCCCZCCCtCClCZCCCCCCCZC@ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!;Zòÿÿÿÿÿú_!!!!!!!! ! ! !! !! !!! !  ! !!! ! ! ! !  }ªõÿþþÿýÿþÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ7!ÓÓþþþþþþþþþþþþÿþþþÿÿþþþþþþþÿýÿúÖŽ}}}}}€~}}€€~}€€€~€}~}‘~}}}}‘€}}}€‘€}‘~}‘}‘¡‘‘¡‘~}€‘}~€‘‘‘}€€‘‘‘‘‘‘¡‘}‘¡‘‘‘¡‘€‘‘€‘‘‘‘¡¤‘}‘€‘‘‘‘‘‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘¡Úþÿÿÿÿÿꥡ‘‘¡¥‘‘‘‘‘¡‘‘‘¡¥¡‘‘‘¡‘¢¦¥¡¡¤¡¡¢¤¡¡¥¤‘¡¡¡¡¡¡‘‘‘¤¡¤‘‘¤¡‘‘¤‘¡¤¡¢¦¤‘‘¡‘‘‘‘¡¥¥¡‘‘‘‘‘¡¥¤‘¡¡‘‘‘‘‘‘‘¡¥¡‘¡¤¡‘‘‘¡¥¡¢¤¡¡‘¡¥¤¡¤‘‘‘‘¡¥õÿÿÔ‘‘‘‘€‘‘‘‘¡‘‘‘€‘‘‘¡‘€‘¤‘‘‘‘€}€€‘‘‘‘€€}}‘‘‘‘‘‘‘‘‘‘‘€‘‘€}€‘}}}‘‘‘€€‘€€}}}}€}}‘€}}€€}}}€}€€}}vv}}}}}}}}}}v}w}vvvw}}}šõ÷˜v�õ÷˜wvv}}}}}vwvvvvvv}wwvvvvvwvvvoovvvvvvvvpuvvwvuvovvloouwvvvulovvvvvulluouuluuulvvtllouvuulououluoooullllCClluuullulCCttltllutCCtlClZCCCltClltCCtlZCCCClZCCAACCCxÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!=Zóÿÿÿÿÿ÷_!9!! !#!!!! ! !!! ! ! !!!  !!  !!   ! !! !9sªíÿýÿýÿþþÿþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ Ó×ÿþþþþþÿþþþÿþþþþþÿþþþþþþÿþþÿþúÕŽ�}}}}~€}}}€}}~}~}}}€~~}}}}~~‘‘}}~€}~€€€€}~‘‘€€‘‘€}‘€€‘€€‘}‘‘‘~‘¡‘‘‘‘‘}€‘‘‘‘‘‘‘‘‘¡‘‘‘€‘¥‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡¡¡‘‘‘‘Úþÿÿÿÿÿ椑¡‘‘¢¡‘‘‘‘¤¡‘¡¡¡¡‘‘‘¡¡¡¤¡¡¡¡¡¥‘‘¡¡¡¡‘‘¡¥¡¡¡‘‘¡¡¡¡‘‘¡¡‘‘¡¡¡¡¤¡¤¡¡¡¤¡¡¡‘¡¡¡‘‘¡‘‘¤¡¡‘‘‘¡¡¡‘‘‘‘‘¤¡‘‘¤¡‘‘‘‘¤¡‘‘‘‘‘‘¡¤¡¡‘‘‘¤‘‘Ôþÿõ™‘‘¤‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€€‘‘}€‘‘€‘‘€}~€€€€}‘‘€€€}}€‘‘}}€}}€}}‘}}}}}}}}}}}}}}}}}}}}}w}}w}}w}v}}}}v}}˜÷ú™}˜õ÷™wwvww}}wvv}}vvvvvv}wvvvvvvvvvvvvvvvvvvvouvv}vvvuvovouvvuvvvvvuuvuolvvuuoluvolovoluouuuolltuulltluluuuolllllllCtlltltlClCuulCCllClCCllllCCtlCCCCCCCCCCCCCCCCCtC÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!!Zóÿÿÿÿÿ÷_!!!#!!!!!! ! ! ! ! ! !! ! ! !   ! ! ! ! ! !!qªõþÿýÿýÿýÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿàÓ Ó×þþþþþþþþþþþþþþÿþÿþÿþþþþÿþþþÿúÕ�}}}‘~}}}}}~}}}}}~}}~~}}~}‘€~‘‘~}}}}}}~‘‘~~‘‘€~}‘€}€‘‘‘‘}~€€‘‘‘€‘‘¡‘€‘‘‘~‘‘‘‘¡¡‘€‘‘‘‘‘¡¡‘‘¡¡¡¢¤¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘¡¡¡¥‘‘‘¡¡Úþÿÿÿÿÿꤑ‘‘‘¡‘¡¡‘‘¤¡¡¥¡‘‘‘¡‘¡¡¡¡‘‘‘¡‘¡€‘¡¡‘¡¡‘¡¡‘‘¡¡‘¡¡‘‘¡¡¥‘‘‘‘¡‘¡‘‘‘‘‘¡¢¦¥¤¡¡¡‘‘‘‘¡¤¡‘‘‘‘€¡¤¥¡¡¡¤¡¤‘€‘¡¤‘‘‘‘‘‘‘‘€€‘‘¡¤¡¤‘‘‘¡‘‘õÿÿÓ‘‘¡¡¡‘‘‘‘‘‘¡‘‘‘‘‘€€€‘‘‘€‘‘€€€¤¥‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘€}‘€}‘‘‘~~€}}}‘‘‘‘}‘‘‘€}‘‘}€‘‘€}}‘‘}€‘}}}}€}}}€}}}€}}ww}}}}}}vv}}}w}}}}vvvv™õúž}™õú™wvvvw}}}v}}}w}vvvvwww}wuvvvwwvvvvvvvvvvopov}vvvvvvvuooooovvuoloouvuvvovvoovoluuulllooooullovvtllullooutvutltllltClltllCCCltlltCCCCttCtCCCCtCCCCCCCClCACCCtCClláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@!Bóÿÿÿÿÿ÷_!! !! !! !! !! !!    !!!! !   !! ! !!   p¥íÿýÿýÿýÿþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ  Ó×þþþþþþþþþþþþþþþþÿþþþþÿþþþþÿüúÖ��}}}}}~}}}‘}}}}~}}}€}}}‘€€€‘‘€~‘‘}}€‘‘}~€‘‘‘}}‘}‘¡‘‘‘}‘‘‘}‘‘‘‘‘‘‘€‘‘‘€‘‘}‘‘‘¡€~‘‘‘€‘¡‘‘‘¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡¡‘‘¡‘àþÿÿÿÿÿ椑‘‘¡¤¡¡‘‘¡¡¡¡¡‘‘¡¡¥¡‘¡¡¡‘‘¡£¡¡‘‘¢¢‘¡‘‘¡¥‘‘¡¡¡¡¡‘‘¢¡¡¡‘¡¡‘¡‘‘‘‘‘¡¤¡¤¡¡¡¤¡¡¡‘¡¡‘‘¡‘‘‘¡¡¡¡¡‘¤¡¡¡‘‘‘¡¡‘‘¡‘‘‘¡¡‘‘‘¡‘‘‘‘‘‘‘¢‘Óþÿõ‘‘¡‘‘¡™¡€‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘}‘‘‘€~€‘€€~€‘‘‘‘‘€‘}‘‘‘}}‘€}}‘€}}}}}‘‘}}}}}}}}}}v‘}}v}}}}}}}vw}}}}}}}}wv}}v}˜õûš}™õõ™wvvw}}vvvvwv}vvvvvvvwvvvvvvv}wvpwwvov}vovpv}vvouv}voovuovvvoovvoovvuvouuouuouololuooouuolluuuolltluultuulltltllllCtllCtllllCtlCllClCClCCCCCCCCCCCCCZCCCCCCCCC{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Zóÿÿÿÿÿ÷_!9!!! !! !!!! !! ! ! !!    !  !  ! !q¥õþÿýÿýÿýÿþÿþÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿæÓ! ÓÓÿþþþþþþþÿþþþÿþþþÿÿþþþþþÿþþþÿúÖ �}}}}}}}}}}}}}~€‘‘‘~}‘€€€~}}}}~‘¡‘‘‘‘‘~€}}}}}~~}~}‘‘‘‘€€~‘‘}}‘‘~€‘‘€‘¡‘}€~}€‘‘‘‘‘‘‘‘‘¡¤¡¡¡‘‘‘€‘‘‘¡¡¡¡¡‘¡¡¡¤¡‘‘‘‘¡¡‘‘‘¡Ýþÿÿÿÿÿꥡ¡‘¡¢¡‘¡‘¡¤¡‘‘‘¡¢¡¢¢‘‘¡¡‘¡¥¢¡¡¤¡¡¥¡¢¡‘¡¡‘‘¡¥¥¡¡‘‘¤‘¡¡¡¢¥¢¢¡‘‘¡¡¡¡‘¡‘‘¡‘¡¡¥¡¤¡¡¡‘‘‘¡¥¡¥¤‘‘‘¡‘‘¡‘¡¥¡¡¥¥¡¡¡¥¥¡¤¤‘‘‘‘‘‘‘¡¥¡õÿÿÓ‘¡¤‘‘‘¡‘‘‘¡¡‘‘‘‘€¡‘‘‘‘€‘‘¤‘¡¤‘‘‘‘‘€‘€‘‘}}€‘€€‘‘}}}}}}‘‘€~}‘‘¡‘}}}}‘‘‘}}}€}}}}€€‘}}}}}}}}}w}}}}}v€‘}}vwwvw}}‘}}}}}}w}}}}˜õú™p˜õ÷™ww}}}vvvvvvvv}}}vvvwvvvvvvvvwvvvwvvvwwvvoovvvulvwvovwvooouoluooluuluooovvovvululuvtlouuloullluloooulCltlllllluullltCllotCCllttttCClZClCClCCCCZlllCCClCtCCCC›çÿÿÿüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ@9!!!Bóÿÿÿÿÿ÷_!!!!!!!!! !!!!! ! ! !!!! ! ! !! !  ! !   ! ! !!!!  }ªíÿýÿýÿýÿþýÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ  Ô×ÿüþþþþþþþþþþþþþþÿþþÿþþÿþþþÿýúÖ��}}}‘}}}}~~}}}‘~}‘‘}}~}‘‘€‘~}}~€‘‘~~‘‘€~}€€~}}€‘}~‘‘‘‘‘‘€~€}‘‘‘€€‘‘€‘‘‘‘‘‘‘‘€‘‘‘‘€‘‘‘‘¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘¤¡‘‘‘¡Úþÿÿÿÿÿ楡¡¡¡¥¡‘‘¡¡¡¡¡‘¡¡¡¥¡¡‘‘¢¢‘‘¡¥¡‘¡¡¡¡¤¡¡¢‘¡‘€¡¦¤‘¡‘‘¢¡¡¡‘‘¡¡¡¡¡¡¢¢¡¡¡¡‘‘¡¡¡¤¡‘¢¡¡¤¡‘¡¤¡¥¡¡¡‘‘¤¡‘‘¡¡¤¡¡¡‘¡¡¤¡‘¤¡‘¡‘‘‘‘‘¤¡¡Óýÿõ¥‘¡¤‘‘‘¤‘‘‘‘‘¡¤‘‘‘‘‘¤‘€‘‘‘€‘‘‘‘‘‘‘€‘‘‘€‘‘‘‘‘‘€‘}€‘‘‘€€€€‘‘€€‘‘€}}‘~‘€‘}€}}}}}}‘€€}}}}}}}‘‘}}}}}}}}}}}}}}}}}}}}}}}}}}}}}wv}}}}w˜õú™}˜ô÷™}}w}vwwvvvvv}}vvvvvvwvvvvvvvvvvvvvvpvvvwvvvvvovvvvvovvvvuvvuvllvlvvlooouvuuvuovlluuolloolooultlloouollllllloCCuulllCltlltCCulllCllCtlCCCCZlCCltCCZlCCCCCCC{ÌúÿÿúáÇçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@Yóÿÿÿÿÿ÷_!!!#!!!! !;! ! ! ! ! ! !  !   !!  !  !  !! !=qªõþÿýÿýÿþÿþÿýÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿæÓ ÓÓþþþþþþþþþþþþþþþþÿþþþþþþÿþþÿþúÖ�}~~‘}}}}}}‘‘}~}}}}}}~~}‘}‘€~}}}‘~}€‘‘‘‘‘‘‘‘}}‘‘}}~‘~}‘‘‘‘~‘¡‘‘‘‘}~€¡¡¡‘‘‘¡‘‘‘‘‘‘~‘€€‘‘‘‘‘‘¡¤¡¡¡‘€‘‘‘‘‘‘‘‘¡¡‘‘‘¡¤¡‘¡¥Ýþÿÿÿÿÿ榥¤¡‘¡¡‘¡¡‘‘‘¡¤¡¡‘‘€‘‘¡¥¡‘¡‘¡‘‘‘‘‘‘¢¡‘¡¡¢¢‘‘¢¡‘‘‘¢¡‘¡¥‘‘‘‘¡¥¡¥¡¥‘‘‘‘‘‘‘‘‘¡¡‘¡¡‘¡¤‘¡¡¡¡‘‘‘‘‘¡¤¡¡‘¡¡¤¡‘¡¤¡¡‘‘‘‘‘‘¤‘‘‘¡¥¡‘ëÿÿÚ‘‘‘¡¡‘‘‘¡‘‘€‘‘¤¡¡‘‘‘‘‘€‘‘€‘‘‘‘‘€‘‘€‘‘‘‘¡‘€‘‘‘€‘€‘‘¤‘‘€€‘‘€‘‘€}}}}~}}‘}}}}}}€€}}‘€‘}}€‘�}}‘‘}‘‘€‘€}}}}€}w}}}w‘‘}vvw}}www}}}v}}}}}}}šõûž}˜ô÷œ}wvwvvvvvvvw}vvvpvwv}}}}wvvvvwwwvvpuvvvvwwvvpvvvvooovvvoovvvvvvvoovuoolovollluovullvvuuultlolououuoulouootuullltllCltltllClltltlCltuCClCCltlCCCCCCCCCCCCu›èÿÿýá�xƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!9Cóÿÿÿÿÿ÷_!!!!!!#!! !!!! !! !!  !!! !     !    ! !  !!=q¥íÿýÿýÿþþýÿýÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿèÓ  Ó×ÿþþþþþþþþþþÿþþþÿÿþþþÿþÿþþþþÿúÖ�Ž}}}}}}}}€‘€~}}}}~~}€}}}‘~}~€€}}‘‘}}‘‘‘‘‘‘‘‘}~‘}‘~€‘}‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘€‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘¡‘‘¡¥‘‘‘‘‘‘‘¡¡‘‘‘‘¡¡‘¡‘‘¡¡Úþÿÿÿÿÿ楢¡‘¡¡‘‘¡¡¡‘¡¥¡‘¡¡¡‘‘¡‘¡¡¤¢‘‘¡‘‘¡¡¡¡¡‘¡¡¥¡‘¡¡¡¥¡‘¡¡¡¡¡¡‘¡‘¢¢¡¡¡¡‘‘¡¡¡¡¡‘¡¢‘‘¡¢¡‘¡¡¡¡¡‘¡¡‘‘‘¡¡¡‘¡‘¡¤‘‘¤¡¡‘¡¡‘‘‘¤‘‘‘¡¡¤‘§ûÿõ¥‘‘‘¤‘‘‘‘‘¦¡€‘‘‘¥¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘€€‘‘‘€‘‘‘‘‘‘€‘‘€}‘‘€}€}}‘}}€‘}}‘€}‘}}‘€}‘}�}}}}}}}}}}}}}}}}}w}}}‘}}}}}}wv}}}}}w}vv}}™õûž}˜èúš}www}vwwvvvwwvvvvvv}vv}}wvvovvvvvvvpvvvvvwvvuvvwvovuvuvovuvvovvuouvoluoouuouooluvtluvollolllluouuouolllttllltlttltlllllCltltlCtCltlCCCCZlllllCCCCCZCCCA{ÌúÿÿñÆu]ÊóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!99Y÷ÿÿÿÿÿ÷_!!!!! !!! ! !#! !! ! ! !   ! ! ! ! ! qªõþÿýÿýÿþÿþÿýÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿæÓ  ÓÓþþþþþþþþþþþþþþþþÿÿþþþþþþÿþÿþúÕ�}}}}}€}~}~€}€}~}}}€‘€}}}}€‘‘‘}}}‘‘€€€}}€‘~‘‘‘‘}‘‘‘}‘‘‘€‘€~€}‘€~‘‘‘‘‘‘‘€‘‘}}}‘¡¡‘¡¡€‘‘¡‘‘‘‘‘‘‘¡‘‘¡¡¡¡¤¡‘¡¥¥¡‘€‘¡¥¡¡¡‘‘‘Úþÿÿÿÿÿꙡ¡‘‘‘‘‘¡¢¡‘¡¥¡¡¡¤¢¡‘¡¡¡‘¢¢‘‘¡¢¡¡‘¡¢¦¥‘‘¡‘‘¢¡¢¦‘‘‘¡¥¡‘¡¢¡¡¥¡¡¡¡¤¡¡¡¢¢¥¡¡¥¢‘‘¡¢¡¡‘‘‘‘‘‘‘¡¡¡‘¡¡¡¡‘¡‘¡‘¡¡¡¡¥¡¥‘‘‘‘‘¡¡¡‘‘‘ëÿÿÚ™¡‘‘‘‘‘‘‘‘¥¥‘‘‘‘¡¤‘¡‘€‘¥¡‘‘‘‘‘‘‘‘‘€‘‘¡‘‘‘‘}€€‘‘‘‘‘¡‘‘}‘‘‘‘‘‘€}}‘‘‘‘}‘€‘‘}}‘}}}‘}}}}}}}}}}}}}}}}}}}}}}}}}}}€}}w}}}‘}}}}}}}v}}}}ww}}vv}}˜õúžw�ô÷™w}w}}}}vvwvvvwv}wv}wvvvvv}vvvvvwvvvvwvvopvvvpovvvovvvvwvvvooovvlvvvvovvvvlloollvvvolvvovuuulultlllluuullltlllCClulltlCtlCllttCCCCClClCClClZCZCCCCCllCZ›çÿÿ÷Ì{CƒßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!@óÿÿÿÿÿ÷_!!!;!!! !!!!! ! !! ! !!! !! ! ! !  !       ! !  !$p¥íÿýÿýÿþþþýÿýÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿèÓ   Ó×ÿüþþþþþþþþþþþþþþÿÿþþÿþÿþÿüþÿúÖ��}}}~}}}}€‘}}~€}}}‘€~}}}~‘‘€}~€}~~‘‘}}}~‘‘‘‘‘‘~‘‘}‘‘‘‘‘€€‘€}‘}~‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘¡¥‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘¡¡‘¡‘‘¡¡¡‘‘¡¢‘¡‘¡‘¡Úþÿÿÿÿÿ楑‘‘‘¡‘‘¡¥¡‘¡¡¤¢¡¡¡‘¡¥¡‘‘¡¡‘‘¢¥¡¡‘‘¡¢¡¡¡‘‘¡¤¡¡¥¡‘‘¡¡¡‘‘¡¥¡¡¡¡¢¡¡¢¡¡¥¡¢¡¡¡¡¡‘¡¥¡‘¡¡‘¡¡¡¡¡¡¡¡‘‘¤¡‘‘¡‘¡‘‘‘¤¡¡¤¡¡‘‘‘‘¥¡‘‘§ûÿû¥¡‘‘‘‘‘¡¡€‘‘¤‘‘‘‘‘‘‘‘‘€‘¤¤¡‘‘‘‘‘‘€‘‘‘‘‘€‘‘‘€‘‘€‘‘‘‘‘‘€‘‘‘‘‘}‘‘‘‘‘‘}€‘‘‘‘}}}}}}‘}}}}}}}}}}€€}}}}}}}}}}}}‘}}}}}}}‘}}}w}}}}v}}}}}w}}w}wv™õúš|˜èú™w}}ww}}wvv}vvvvwvwwvvwvvv}vvvvvvvvvwvvvovvvvvopvuvuvuuvvvvvouvvlovvuovvvvlluvulvvuluoouuuoloolltlulluulllllllllllltllllCCtlllCltlCClZlCClllCCClCCCCCƒÌúÿúß”ltÆòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!;!!Yóÿÿÿÿÿ÷_!!!#!! !!!! !!! ! ! ! ! ! ! !! !! !!   ! ! ! !   !!pªõþÿýÿþÿþÿýÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿæÓ  Ó×þþþþþþþþþþþþþÿþþÿÿþþþþþþþÿþÿúÖ�‘}}}}~}}~€~}}~‘€€}€}}}}‘€}~€€}‘‘~€‘‘€‘‘}~}€~}‘‘‘}¡¢‘‘€}€‘‘~‘}‘‘‘‘‘‘‘‘‘‘¡¡¡‘‘¡‘¢¡€‘¡‘‘‘‘‘¡¡‘‘‘‘‘€‘‘‘‘¡¡‘‘‘‘¡‘¡¢¥‘‘‘‘¡¥Ýþÿÿÿÿÿ릡¡¡¡¢¥¡‘¡¤¡¡‘¡¡‘‘‘‘‘¢¢¡¡¢‘¡¡¡¢¡‘‘‘¡¥‘‘‘¡¦¡¡‘¡¦¢¡¡¡‘¡¡¡¡¡¡¡¡¡¥‘‘¡¥¡‘‘¡‘‘¡¡¥¢¥¢¡¡¡¥¦¥¢¥¡¡¡¢¥¡¡¢¥‘‘‘‘¡¡‘‘¡¤‘¡¡¡¡¡¡‘‘¡¡‘ÚÿÿÚ¤‘¡‘‘¡¡¥¡‘‘€‘¡‘‘‘‘‘~‘‘‘‘‘‘¡‘}€‘¤‘‘€¡‘‘‘€‘‘¡‘¤‘‘€}}‘‘‘‘‘€€‘¥‘‘‘‘€‘}€‘‘‘‘}~€€€}‘‘‘}‘‘}}€}}}}}}}}‘‘‘}}}}}}w}}}}}w}}}}v}}vvv}v}}vv}}}v}v™õúž}™õ÷ž}}}wvv}}vw}}}wvvwvvvvvvvwvvppovvvvwvvvvvvvpvvuvvvvvovvooouvovvvuoluoouvoullvvvllolllvulooootllllulllovptlluoooultlltltClltlllCCltClCuClZCtCCCltlCCu›èÿÿè›tlƒßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=9!Cóÿÿÿÿÿ÷_ !!! !!!!!!!#! ! ! ! ! !! !! !! ! !!!!! ! !  !   !  qªíÿýÿþþýÿþÿýýÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿèÓ!  ÓÓÿüþþþþþþþþþþþþþþÿþþþÿþÿþÿþÿþúÖ��}}~~}}~€}}}}}}‘‘~}}~}}€~}‘€}}‘‘€~‘‘€‘‘€‘}€}‘‘‘€~~¡‘‘¡‘}‘‘‘‘‘~‘‘‘€€‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘�‘‘‘¡‘‘‘¡‘€‘‘‘¡‘‘‘¡¡‘‘‘‘‘‘‘‘¡¡¡¡‘‘¡¢Úþÿÿÿÿÿꥢ‘‘¡¥¡¡‘‘¡¡‘¢¡¡¡¡‘‘‘¢¡¡¡¥¡¡¥¡¡‘‘‘¡¡¡‘‘¡¥¢‘¡‘¡¦¥¡¡‘¡‘¡¢¢¡‘‘‘¥¡¡¡¢¢‘‘¡¡‘‘¡¢¢¡¢¡¡¥¡¡¡¡¡¡¡¥¡¥¡‘¡¥¡‘‘‘‘¡¡‘‘¡‘¡¡‘¡¤¢‘‘‘¢‘¥ûÿû§¡¡‘‘‘‘¤¡‘¤‘‘‘‘‘€€¡‘‘‘‘‘‘‘‘‘‘€‘‘‘¡‘€‘¤‘‘‘€‘‘¤¡‘‘}‘‘‘‘‘€‘‘€‘‘‘‘‘‘‘€~}‘‘‘‘‘}}‘‘‘}}}‘‘}}‘€€}}}}}}}}}‘}€}}}}}}}}}}}}}}}}}w}}}}}vv}v}}v}}}vw˜õúž}˜ë÷ž}}}}wwwwvw}wvwwvvwvvvvwwvvvvvvvov}vvvvvovvvvvvvuvvvovvvlovouvvvvoooovovooolu}ullulluvlolluoolllllullluullltluvlltllltlltlllCZCCllCltlCCllCCCCCCltƒÌüÿòÇzCxÇóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!!Y÷ÿÿÿÿÿ÷_!!!! !!!! !!!! !!!  ! !!  !!! !!  !  !   !qªõþÿþÿþÿýþþþÿÿÿþÿÿÿÿþÿþÿÿÿÿÿþÿæÓ7    Ó×þþþþþþþþþþþþþþþþÿÿþþþþþþþþÿþúÖ �}}}}}}‘‘}€‘~}}}‘€~}‘€~}}‘‘‘‘‘‘‘}€~~}~}}€‘‘¡‘‘~}‘~‘‘€‘‘‘‘‘~~}}€‘‘‘‘‘‘‘‘¡¡‘‘‘}€~‘¡‘€€‘‘¡‘‘‘¡¡‘‘‘¡‘¡‘‘‘‘‘¡¡¡¡‘‘‘‘‘‘¡¡‘¡¡Úþÿÿÿÿÿꙡ¢¡‘¡‘¡¥‘‘¡¡¡‘¡¡¦¢¡¡£¥¡‘¡¢¦¢‘¢¢£¥¡‘¡‘¡¥¢¡‘¡‘‘¡‘¡¥¡¡¡¢¥¡‘¡¡‘¡¡¡‘¡¥‘¡¡¥¡¡¥¡‘‘‘‘‘¢¢¡‘‘‘¡‘‘¡¢¤¡‘¡¡¡¡¥¢¥¡‘‘¡¡‘‘‘‘¡¡‘‘¡‘¡Úþÿà‘‘‘‘‘¡‘‘‘‘¡¡€‘¡¡‘‘¢¥‘‘‘¤‘‘‘‘‘¡¤‘‘‘‘‘‘¡‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘}€‘‘€}‘‘~}}}‘€}}‘€‘‘€‘}‘‘}€€€}€~}}‘‘‘€}}}}}}}}}}}}}}}}}}�‘€}}vv}}}}}}}}}vw}}}™õúžv˜èúžwvvv}}}}}w}}}vv}vwvvpvwvw}vvvwvvvvoovvuvuvvvuvvovvvoovvovvvvupoovvvvulvuvvlvvoovvvlouolulluvuuulullullltlloouvtlCCCClClttlCllClttlCCCCltlCltCCAuÇñÿüß”CC˜áýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!@=!Bóÿÿÿÿÿúx!!!!!#!!!!! ! !!!!!! ! !  !! !   !   !  ! !      !=sªíþÿþþýÿýÿýÿýÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿèÓ!     Ó×þþþþþþþþþþþþþþþþÿþþþÿþÿþÿþþÿúÖŸ�}}}}}€€€€€‘~}}~‘€}}‘‘€€€‘‘}‘‘‘‘‘€€‘€}}‘‘‘‘‘~}}‘‘‘‘~€‘¡‘‘‘}‘~~‘‘‘‘‘‘€‘¡¡‘¡‘~‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¢‘¡‘‘‘¡‘¡‘¡‘‘‘¡¡‘‘‘‘¡¡‘¡‘‘Úþÿÿÿÿÿæ‘¡¡¥¡¡¡¡¡‘‘¤¡¡¡‘¥¥¢‘¡¥¥¡¡¡¡¥£¡¡¥¢¢¥¡‘¡¦¡‘¡¡¡‘‘‘¡¡¢¡¤¦¥¡‘¡¡‘‘¥¡‘¡‘¡¡¡¥¢¡¡¡‘¡¡¡‘¡¡¡¥‘‘‘¡¡‘¡¡¡‘‘¡¡¡¢¡¡¡¡‘¡¡¡‘‘¡¡¡¤‘‘¡‘¥õÿý§‘‘¡‘‘¡‘‘¡‘‘‘‘‘¡‘‘‘¡¥‘‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘€‘‘‘‘‘‘€‘‘‘‘‘‘‘‘€‘‘}}}‘‘}~‘‘‘‘‘}‘€}€~‘‘}}€}}}‘‘�}}}}}}}}}‘}}}}€}}}}}}}v}}}}}}}}}v}}v}}}˜íûž}èûžvwvwv}}}}wvv}vvvvvvvvvvvvwvvvwvvvvvovovvvvvvvovvvvvoovvuvuvovuooovuoooovvvluvouvuuuollvoluouvvollltllllllltluulllllClllllCltlCltlCCCClltCltllCƒßúþè�ut{Ì÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@!!Yóÿÿÿÿÿ÷_9!! !!!! #! !!! !#! !  ! !! ! ! !   ! !!!  !  9sªõÿþÿþÿýÿýÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓÓ×þþþþþþþþþþþþþþþþÿÿþþþþþþÿþÿÿúÕŽ�}}‘~}}}}€~}€~}}€~}~€}€~}€€~}}~~}€€}€‘~‘‘‘‘‘€‘‘}~}€‘€}‘¡~~‘¡‘‘‘‘‘‘‘~€~‘¡‘‘‘€‘¡¢‘‘‘‘¡¡¡‘‘¡¢¡‘¡¡¡¡‘¡¤¡¡¡‘¡‘‘¢¡‘‘‘‘¡¡‘‘‘‘Úþÿÿÿÿÿꥑ‘¡¢¢‘‘¡‘¡¢¡¡¤‘‘¡¡‘‘¡¡¡‘‘‘¢¥¡‘¡¡¥¡‘¡¢¥¡¡¢¥¥¡¡¡¥¡‘‘¢¦¡‘‘¡‘‘¡¢¥¡¤‘‘‘‘¡¡¢¡‘‘¥¢¡¡¥¡¡¤¢¡¡¦¥¡¡¡¡‘¡‘¡¡¡¡¡¡¤¡‘¡¡‘‘¡‘‘‘‘‘‘¡Ôýÿ楑¡¢¥‘‘‘‘‘‘‘‘‘‘¥¡‘‘‘‘€‘¡‘‘¡‘€€‘‘‘‘‘‘‘‘€‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘€}‘‘}‘‘€€}‘‘€}€‘}€‘‘}}‘€€}€}‘€}}}}‘}}‘}‘€}}‘‘}}}}}}}}}}}}v}}}}}w}}vw}}}}}}™ñûžv˜èúž}}}}vv}vwwvv}}w}vvvw}wvvvvvv}vvw}}vvvvv}wvuvpvvvvvvoouvvvvvuoovuvvvvvvloolllovvlloooouvullulltluolooutltllCCClltllltCllulCCltCCCClttCCCCtCCCuÆñÿ÷Ìzll›èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!! !;!!!!!!!!!! !!! !!   !! ! !  !! !! !     !!!!!=p¥íþþþýÿýÿþþþþÿÿÿÿþÿþÿþÿÿÿÿÿþÿÿèÓ!!     Ó×þþþþþþþþþþþþþþþþÿþþþÿþÿþÿþþþúÕ��}�~}}}~}~}}~}~~}€‘‘}}€~~€}~}}‘‘~€}€‘‘‘‘‘‘}‘‘€‘‘€‘‘}‘¡€}‘¡‘€‘¢‘}‘€~‘‘¡‘‘€‘‘¡¡¡‘‘‘¡‘¡¡‘‘¡‘‘‘¡¢‘‘¡¢¡¡‘‘‘‘¡¤¡‘‘‘¡¡‘‘‘‘‘Úþÿÿÿÿÿê¡‘¡¡¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘‘¡¡¥¢‘¡¡¡‘¢¢¡¡¢¡¡¢¡¡¦¥‘‘¢¢¡¡¡¡‘¡‘¢¢¢‘‘¡‘‘¡¡¡¥¢‘‘¡¡¡¥¡¡¡¡¡¡¤¥¢¡¡¥¡‘‘‘‘¥¡¥¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘‘‘ëÿý¬¡‘¡¥¡‘‘¡‘¡‘¡¡‘‘¡¡‘‘‘¡‘‘‘‘‘‘‘¥€€‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘€‘‘‘}‘‘}}‘‘‘‘€~€€€€‘€€}‘€}~‘€}}}}‘€}€}}€}�}�€}}€}}‘}}}}}}}}}}}}‘v}}}}}}}}}vv}}}}}w�õúžv˜èû§}}}}}}}vv}v}v}vvvvv}wwvvvvpv}vvvvvvwvpv}vvvlvwvvvvvvuvuvvvvovovvvoovwuluuoloouolooouuvvoluollloolultolllulllllllluulCCtutllllCCCllllCZlCCCCƒßüüß”tC{ßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!! !!!!!!!#! !!!! !  ! !!! ! !!!  ! ! !!    !!  !!qªõÿþÿþÿýþÿþÿþÿÿþÿÿÿÿÿÿÿÿþÿþÿÿÿàÓ  Ó×þþþþþþþþþþþþþþþþÿÿþþþþþþþÿþÿúÖ¢�}}}}‘~}}}}‘€}~~}}}}¡‘‘‘‘€€~}~}}‘‘€‘��‘‘€}‘‘‘€}€‘¡‘¡‘~€¡‘~‘¥‘}‘¡¢¡¡‘‘‘}‘€‘‘‘‘‘€€‘‘‘‘‘‘¡‘‘~‘‘‘‘¡‘€‘¡¡¡¤¡‘¡¡¡¡‘‘¡¡‘¡¡¡¡¡Úþÿÿÿÿÿꥑ‘¡¡¦¥¡‘¡‘‘‘‘¡¡¡¢¥¦¡¡‘¡¥¡¡¡¡¢¥‘¡‘¡¥¡‘‘¢¥¡‘‘¡¢¦¡‘¡¢‘‘¡¢¥¡¤¢¡¡¦¢¡¢¦¢¥‘‘¡¦¥¡¡‘¡¤¡¡‘¡¡¡‘¡¡¡¡¢¡‘¡‘‘¢¢¡¤‘‘¡‘¡¤¡¡‘‘¡¢¡¡¡¡úÿꙑ‘¡¡‘€‘¡‘¤¡¥‘‘‘‘‘€‘‘‘~~~€‘¡‘¡‘€‘¤¡‘¤¡‘‘‘‘‘‘‘¡‘€€‘‘‘‘‘‘‘‘‘‘‘‘~}‘‘‘‘‘¡‘‘‘€}€‘‘€€}}}‘‘‘}}}}}‘}w}}}}�}‘}}}}‘€|}}}}~€}}wv}}}‘}}v}}}}}}}}}w}v˜õü§w�èúž}vvv}wwvvvvv}wvvvvvw|vvv}wvvv}wvvovvvovwwwvvwwvvupovvvvouvvvvlvoooluvolvvvvuvoopvvllltlulluvulvvuullllullouluotltlltllCCCltCCClultCCllCCCuÇõþñÇxClÆñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ@!!!!Zóÿÿÿÿÿ÷_!!!! !!!! !! !! !!!!!! ! ! !!! !   !! !!  !  !  ! !      pªõþþþýÿýÿþþþþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿèÓ   Ô×þþþþþþþþþþþþþþþþÿÿþþÿþÿþÿþþÿúÖ �}}}}}}}}~‘~}~€‘€}}~‘‘‘‘‘‘‘~}}}‘‘‘‘‘‘€‘‘}}‘‘‘‘}~‘¡‘‘‘‘~}‘‘‘¡‘‘‘‘‘¢‘‘‘€~€‘‘‘‘‘‘‘‘¡‘¡‘~‘‘‘¡‘€‘¡‘‘‘‘‘¡¡‘¡¡¡‘¡¡¡¡¡¡¡‘‘¡¡¡¡Úþÿÿÿÿÿꥡ¡¡¢¦¡‘‘¡¡¡¡‘¡¡¡¢¥¢¡¡¡¡¢‘¡‘‘¢¡¡¡¡¢¡‘¡¡¢¢¡‘¡¡¢¢¡¡¥¡¡‘¡¢¢¥£¡¡¤¥¡¡¢¥¡¡¡¡¥¥¢¢¡¡¤¢¡‘¡¡¡‘¡¡¡¤¢¥¡¡¡‘¡¢¡‘¡¡‘¤¡‘¡¢¡‘‘¡¥¡¡‘ÓýÿÔ‘‘¡¡¢‘~‘¡¡¡¡‘‘‘‘¡¡}€‘‘‘‘‘€¡‘‘¡‘‘‘‘‘¡¡¡‘‘‘‘‘‘‘¡‘‘‘¡‘‘‘€€‘‘‘‘‘‘‘}‘‘‘‘‘‘‘}‘‘}€‘‘‘}}‘}}€‘€€}}}}}}}}}}}}}}}€}}€‘}v}}}}}}}w}}}}}}}‘w}}v}}v}}}ww™ëý¬v�èûÒ}}}}}vv}vv}vvv}vvvvvwvvvvwvv}}vvvvvvvovwvvvvvovvvvupvwvovvvvuvvououovvovvvovvuouuullloulluvuuuuuoolltooltuluulltlCtllClCtllCCCoutCCCClCl”ßý÷̃tC”ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Yóÿÿÿÿÿ÷_!!!!!!#!! !!!! ! !  !!! !!! !! ! !!   !!   ! !  !  !!  !! qªíÿþÿýÿýþÿþÿþÿÿþÿþÿÿÿÿþÿÿÿÿþÿÿæÓ!      Ó×þþþþþþþþþþþþþþþþÿþÿþþþþþÿþÿþûÓ�}}}}}}}}}}€}~€}}~}}}}�}}~}~‘‘‘‘~~~}€}~€€€}‘‘‘‘‘}‘‘‘‘‘‘‘~€}€‘‘‘‘~‘‘‘‘‘‘‘¡¡¡¡‘‘‘‘‘¡‘‘€‘¡¡¡¥¡‘‘¦¥¡‘¡¡¡¡‘‘¡¡¡¡‘¡¡‘¡¡‘‘¢¥¥¦Ýþÿÿÿÿÿ楢¢‘‘‘‘‘¡¢¡¢¥¡‘¡¡¡‘¡¡¥¢¢¢¡¡¡¡‘¡¡¡¡¢¢¡¥¢¡¡¡¡¢¥¡¡¢¡‘¡¥‘‘¡¡¡¥¡¡¡‘‘¡¡¡¡‘¡‘¡¡¡¡¡‘¡¡¡¡¥¥¡¡¡¡‘¡¡¡¥¡¥¡¡¦¡‘‘‘¡¢¢¡‘¡¤¡¡¢¡¡¡¡êþÿõ­¡‘¡‘‘‘¡¥¡‘‘‘¡‘‘¡¡‘¡¥¢¡¥¡‘‘¡¤‘‘‘¡€‘‘‘‘‘‘‘‘‘‘‘‘€~}‘‘€‘€‘‘‘€~€‘‘‘‘}~}€€‘‘}}‘‘‘‘€}‘‘‘�}‘€€‘€€‘‘‘‘‘‘‘}€€‘}}}}}‘‘}}}}}}}€}}v}}‘€}w}}w}}€wv}}}}˜èüÓ}™èüžvv}vw}vvvvv}vvvw}}}vvvvvvvvvvv|vv}vvvvvvvpvvuopvvvvuovvovupoovvvlvooooouvulovouvoolvulvvllllllolllCloolllltlCtllCllullCllvllltCCCCCCCCxÌ÷üç›uCuÊòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9==!Cóÿÿÿÿÿ÷_!#!!!! ! !!!!!! !! !!!      !!!! !   !  ! !!  !  !!! 7p¥õþÿýÿýÿþþþþýÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿæÓ$   Ó×þþþþþþþþþþþþþþþþÿþþþþÿþÿþþþÿúÖŽŽ}}}}}~}}}}}}~}~€}}}}€}}~}}‘¡‘€€}}}~‘‘‘~~}‘‘‘~‘‘‘‘‘€‘‘‘€€€€‘‘~‘‘‘€‘¡¡‘‘¡‘¡‘¡‘‘¡‘‘‘€‘‘¡¢¡‘¡‘¡¢¢¡¡‘¡¡¡‘¡¡¡‘‘¡‘¡¡¡¡¡¡¢¢¡¡Úþÿÿÿÿÿꥡ¡¡‘‘¡¡¡¡¡¡¢¡¡¡¡¡¡‘¡¢¢¢¥¡¡¡¡‘¡¡‘¡¥¡¡¡¥¡‘¡¥¡¥¡¡¥¡¡¢¥¡‘¥¡¡¡‘¡¡¡¡¡¡¢‘¡‘¡¡¢¡¡¤¢‘¡¢¦¢¢¡¡¥¡¡‘¡¥¢¢¡¡¤¡¤‘‘¡¡¡¡¥¡‘¡¡¡¤¡¡¥¡ÚýÿÿøÚ¢‘‘‘‘¡¥¡‘‘¡¡‘‘‘¡‘‘¦¥¡¡¡‘‘€¡¢‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€‘‘‘‘€€‘‘‘‘€~€‘‘‘‘€~‘‘€}}€‘‘€‘‘‘€€‘‘€}�€}€‘‘€‘‘€‘‘‘}}‘‘}}}€}}}‘}}}}‘}}}}}}}‘‘}}w}}}}}}}}}}v�éý§}™æûÊ}vvv}v}wvvvwww}}v}vvwwvvv}vvv|vvw}vvvvvvvovvvlvvvovpovvvvvulovvvvlulpouvvllupllovuvoluvulltlllvulClluulllllllllllCtotllllttuulCCCCClt›èüòÇ{CC›áýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!9Zóÿÿÿÿÿ÷_!!!!!!! !!!! ! ! ! !     !! !!!!!! ! !  ! ! !! ! !  ! ! =q¥õþþþþÿþÿþÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿÿþÿæÓ      Ó×þþþþþþþþþþþþþþþþÿÿþÿþþþÿþÿþÿúÖ�~}}€‘‘‘}~‘€~}€€€¡‘~‘‘}}~‘‘}€¡‘€‘}‘‘‘‘€~€€~‘‘~‘‘‘€~~€‘¡‘‘‘‘¡¢‘‘‘€‘€€¡‘‘‘‘€~€‘¡¡¤‘¡¡‘‘‘‘¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¡¡¡¡‘‘¡¤¡‘‘‘‘‘‘‘Úþÿÿÿÿÿꤑ¡¡¥‘¡¦¢¥¥‘¡¡¡¦¥¡¡‘‘¡¡‘¡¡¡¢¥¡¡¡‘¦¢¡¡¡¡‘‘¡¡‘¡¢¡¡¡¡¡¡‘¡¦¦¥¡¡¡¡¤¦¢¥¡‘¡¦£¢¢¡‘¡¢¢‘¡¥¡¡¡‘‘¡¡‘‘¡‘‘‘¡¡¡¡‘¡¢¤¡¡‘¡‘‘¤¡‘‘‘¡¡¥ëÿÿÿý묡¥¡‘¡¡‘¡¡‘€¡¥‘~€¥‘€‘‘¡‘‘‘¡‘€‘‘‘¡‘‘‘‘‘‘¡¡‘‘‘‘‘¡‘‘‘€‘‘‘‘‘}€}€‘‘€~‘~‘‘}‘‘‘€~€}}}~}€}‘}}}‘}}}€‘}}€‘‘}‘‘}}}}}}}}}‘}}}}}}}}}}}}}}v}w}v}vw}}}™èýÇw™èüÇ}v}}w}}}v}vvvv}}vvvvvvpvvvv}vvvvwvvovovvpvv}vvv}vvvuvvouoovvvvvuvvvvuvovovuovvouuloulluvuooolltvluuCuvulullluultlllllotClCCCClllCCC{×÷üß›ulxÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_9! !!! !! !! ! !! !!! !!!  ! !!  !        !!  !  !  9s¥ëÿþÿþþþþþþþýÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿèÓ$!    Ó×þþþþþþþþþþþþþþþþÿþþþþÿþÿþþÿþúÖ �}}~€‘€}~‘€}}~~‘¡‘}‘‘€}‘‘‘~~‘‘~~‘‘~‘‘‘‘€}€}~‘€‘‘~}‘‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘¡¡¡‘‘‘‘‘¡‘�‘¡¡¡‘€‘‘‘‘‘‘¡¥¡‘‘¡¡¡‘‘¡‘‘‘‘Úþÿÿÿÿÿæ‘‘¡¦¢¡¡¡¢¢¡¡¡¡¥£¢¡‘‘¡¥¢‘¡¡¥¡¢¡¡‘¡¢¢¡¡¡¡¡¡¡‘‘¡¡¡¡¥¡¡¡¢¢¥¦¦¡‘¡¥¦¥¡¡¡¡¡¥¥¢¥¡¡¡¡¥¡¡¡¡¢¡‘‘¡‘‘¡¡‘¡¡¢¤¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘‘¡¡¡‘¬ëÿÿÿÿûꥡ¡¡¡‘‘¥‘‘¡¦‘‘‘¡‘¡‘€‘‘‘‘‘‘‘‘¡‘‘‘¡¡‘‘‘¡‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘€€}~‘‘€‘‘‘‘‘}‘‘‘‘}}}‘}‘‘~€€~}}}€}}‘}}‘‘‘€}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}vw}}w�èýÒ}�èýÓv}w}}v}vv}vvvv}wvvvvvvvvvv}}vvvwvvvvpvvvvpvvvvvvv}vovvvpvlvvvvvoov}vuovouvolvuvlolvllluovllultllvoollvuulllullllltlCtltllllClCtllu�ñýñÆulu�èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@!!Bóÿÿÿÿÿ÷_!!!!! !!! ! !!! !!!!!! !! ! !!!!   !    ! !     ! ! !  ! qªõÿýþÿþÿþÿþþÿÿÿýÿþÿÿÿþÿþÿÿÿÿÿÿàÔ!    Ó×þþþþþþþþþþþþþþþþÿÿþÿþþþÿþþÿþûÖ��€€}}}}~}}}}}}}}~~}}‘~}}‘€}}€~~}~‘‘~€€‘‘‘‘‘‘€‘‘‘‘~‘‘‘‘‘‘‘~~‘‘}‘‘‘¡‘¡‘€€‘¢¢¥‘~‘‘¡‘‘‘¡‘‘‘¡¢‘‘‘‘¡‘¡‘¡¡¡‘¡‘‘¡‘€‘¡¡¢¢¢¢¢¢¡‘Ýþÿÿÿÿÿꥑ¡¥¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡‘‘¢¡‘¡¡¡¡¡¢¦¡‘‘‘¡¥¡¡¢¢¢¡¡¡¡¡¡¢¥‘‘¡¡¡¡¢£¡¡¡¢¡¡¡¢¥¡¡¡¡¢¡¡¢¤¡¡¡¢¡¥¡¡¤¡¡¡¡¡¥¤¡¡¡¡¡¡¤‘¡¡¡¢¡¥¡‘‘¢¡¢¡¡¡¡¥ÚýÿÿÿÿõØ‘‘‘~‘¢¡~‘¥¡‘€‘¡¥¥‘¡¡‘~‘¤¡¡¡‘‘‘¥‘‘‘‘‘‘‘¡‘~€‘‘¡‘€}€‘¥¡‘‘~€€‘‘‘¡‘‘~~}‘‘‘‘}‘‘‘‘€}}}}}}€‘‘€€‘‘}}}}}}}}€}}}€}}}}‘}}}}}}}}}}}}}v}}}}€}vvw}}}}}™èýÓwæýÓ}}vv}}}}}}vvvv}}vvww}}}}vvv}vvvvvv}}vvvvvovpovpov}vovvvvwvooovvllvvopouoovovoouulovulooouvolvootlulltllllluvulutlulCllClloltCCCoƒßü÷̃lC{ßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!9!!Bóÿÿÿÿÿ÷[!!!!!!#!!!! !! !! ! ! !! !  !!! ! !!  ! !! ! !  !   !!!9sªíýÿþþþþþþþþýÿÿÿÿÿþÿÿÿÿÿÿþÿþÿÿèÓ!   Ó×þüþþþþþþþþþþþþþþÿþþþþÿþÿþþÿÿúÖŽ��‘~}}}}}}}}}}}}}}}}~}~~€~€~~~}}‘‘‘‘€‘€‘‘‘‘‘€€‘‘‘‘‘~‘‘‘‘‘}€€‘€‘‘‘¡¡¡‘~‘‘¡¡¡¡‘‘‘‘‘‘‘¡¢‘‘¡¥¡~‘¡‘‘¡¡¡‘‘‘¡¡‘‘‘‘‘¤¡¢¢¢¥£¥¡‘Úþÿÿÿÿÿæ¡‘¡¡¢¡¡‘‘¡¡‘¡¡¡¢¥¡¡¡‘‘¡¢¢‘‘¢¢¡¥¡¡¡‘¡¢¡¡¥£¡£¡¡¡¡¡¢¢‘¡¡¡¡¡¦¥¡‘¡¡¡¡¡¢¢¡‘¡¡¥¡¢¥¢¡¢¢¥¢¡¡¢¢‘¡¡¡¡¢¡‘¡¡¥¡¡¡¡¡¥¥¡¥¢¡‘¡¡¢¥¡‘¡¡¥¥Ôõÿÿÿÿý묑€‘¢¡~‘¢¡¡‘‘‘¡¡¡¤¡‘‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘}‘‘‘¡¤€€}}~€€‘‘€€¡‘~~}}}}‘€}}‘€}}}}}}}}}‘‘}}}‘}}}‘}}}}}}}}€}}}}w}}ww}}}w}}}}}˜ëýÓv�âý×}}}vv}}}vvvvv}}w}}}}}}wwv|vvvvvpvvwvvvvvvvvvpovupvvovvvvv}voooouooovvoopoouvuoollooolouuvvluuuolllllulllltlllullullllCltltulCluÇòýè›uCuÇñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Zóÿÿÿÿÿ÷_! !!!!!!!! ! !! ! !!!  ! !  ! ! !   !! ! !!! !!  !!!  !   !!=}ªõÿýÿþÿþÿþÿþÿÿÿþÿþÿÿþÿþÿþÿÿÿÿÿàÓ  Ó×þþþþþþþþþþþþþþþþÿÿþÿþþþÿþÿþþúÖŽ}}‘~~}~}€‘‘‘‘€~‘‘€~}~€€€€}€€€~‘‘‘€~~~}~‘‘‘‘€~~‘‘‘~}€‘‘¡¡‘‘~~€~‘‘‘‘¡¡‘‘‘‘‘‘‘‘¡¡‘‘‘€‘‘‘~¡¥‘¡¡¥¡‘¡¡¡¡¡¡‘‘‘‘¡¡¡¡¡‘¡‘¡‘¡‘‘Úþÿÿÿÿÿꥑ¡¡‘¢¡‘¡¥¢¡¡¢¢¡‘¡¡¡¥¡¡¦¢‘‘¥¢¡¡¡¢¥¡¦¢¡‘¡‘¡¥¢‘¡¡¡¡¡¡¡¥¡¡¡¡¡¡¡¢¢¢¡¡¡‘¡¡‘¢¢‘¡¡¡¡¡¡¡¡¡¡¥¡¡¡¦¥¢¡‘¡¡¡¢¥¡‘¡‘¡¡¡¡‘¢¡‘¡¡¡¥¡¡‘¡¡¡§àûÿÿÿÿûꥑ¦¡‘‘‘‘¥¥¡¡‘‘‘¡‘¡‘‘‘‘‘‘‘¡‘‘€‘‘‘‘~‘¡‘‘‘‘€‘‘‘‘‘‘~~€‘‘~}€‘¡‘~~€‘‘‘~}}~‘‘€}€‘‘‘‘€‘‘€€‘}}}}}}€‘‘‘}}}‘}}€‘}}}}}}}}}}w}}}}}‘}}}‘}}}}}}}}‘èýבàýÓ|vvvv}}}v}}}|vv}vvvvw|vvvvvvvvvvvvvvvvvvpvvvvvpvvvvvlooovvoooovvvovvoououoooovvvulvlulovvlloouvulllovtlooulullllouuCClullClu˜çüóÊ{ulƒßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!@Cóÿÿÿÿÿ÷x9;!! ! !!! ! ! ! !! ! !       ! !  !  !   ! ! !!  ! !q¥íýÿþþþþþþþþýÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿèÓ    Ô×þþþþþþþþþþþþþþþþÿÿþþþÿþÿþþÿÿúÖ�Ž��~€‘}}}‘‘‘‘‘}‘‘‘€}~}‘‘€}~‘‘€~‘‘€€€}}}‘‘‘‘‘‘‘‘~‘‘~}~‘‘‘¡¢‘}€‘~~‘‘‘‘‘‘¢‘‘‘‘¡‘‘‘‘‘‘‘~‘‘¡‘‘¥¢‘¡¥¡¡¢¡‘‘¡‘¡¡¤¡¢‘‘‘¡‘‘¡¡¡Úþÿÿÿÿÿꥡ‘‘¡¢¡‘¡¦¡¡¡¥¡¢¡¡¡¡¢¦¦¢¡‘‘¡¡¡¡‘¥£¢¢¢‘¡¡¢¡¡¢¡¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¥£¢¡¡‘¡¡¡¡¡¡¡¡¡‘¡¢¢¡¡£¡¡¡¡¢¦¡¡¡¡¢¥¡¡¡¡¢‘‘‘‘‘‘¡¡‘¡¥¢¡¡¡‘¡¡¡‘¡¥Ôæýÿÿÿÿúꥥ¡‘‘¡¦¢¡‘‘¡‘‘‘¤‘€‘‘‘¤‘‘¡‘‘‘‘‘€‘‘‘¡¡‘‘‘‘‘‘‘‘}}‘‘‘‘‘€‘‘‘¡€‘‘‘€~}}€‘‘€€‘‘‘‘‘‘‘‘‘~€}}}}}€~€‘‘€}}€€}‘€}}}}}€}}‘}}}}}}}}}}}}}}}}‘}w}}}}˜èýÙ}�àý×vvwv}w|}}}}vvvv}}vvv|vvvwvovv}vvvpppvvwvvvvvvvovpvouvvovvuvulvpvvvvvoooooluooooulovloltooouoououlllluuluvloltlCtuollltltlly×÷úߘutxÊõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=@=!Yóÿÿÿÿÿ÷_!!!!!!!! !!!!! ! !  !!!!  !    !  !  !!! !!!! ! !! ! !!!! 9qªõÿþÿþÿþÿþÿþÿÿÿþÿþÿÿþÿþÿÿþÿÿÿþæÓ   Ó×þþþþþþþþþþþþþþþüÿÿþÿþþþÿþþÿþûÖ�}}}}}€‘}}~~~}}}~‘‘}€€‘€~}‘~}€�}~‘~€‘‘‘‘€€~~~‘‘€€‘¡‘€‘‘€}‘¡‘‘‘¢¡‘€‘‘‘‘‘€¡¢‘‘‘‘‘¡‘‘¡¢¡¡¡‘¡¡‘‘‘¢‘¡‘‘¡¡‘€‘¢¢¡¡¡¡¡¡¡‘¡¡¡‘¡¦Ýþÿÿÿÿÿ楑¡¡¢¡¡‘¡¢¢‘¡¡¡¥¡¡¢¡‘¡¡¡¡¡¡¢¢¢¢¢¡¡‘¡¢¥¡¡¢¡¡¡¥£¥¢¡¢¢¢¡¢¥¡‘‘¡¢¦¥¡¥¡¡¢¥¡¡¡¡¡¢¡¡¡¢¡‘¡¥¡‘¡‘¡¥¢¡¤¡¡¢¢‘‘¡¡‘¡¢¢¡¡¢¡¡‘¢¢¡‘‘‘¡¡‘¡¡¦¡¥ÔëÿÿÿÿþøÚ¥¢‘‘¡¤‘¡‘¡‘‘‘¢‘‘¡‘‘¡‘¡‘‘¡‘‘‘‘€€‘‘¤¡‘‘~~‘‘¡¤‘‘¡‘~~~~~}‘‘‘€€‘‘~}}‘‘‘‘‘‘‘‘‘}~‘€‘€}}}€}~‘~}}€€}}}}}}‘‘‘}}‘€}}}}}}}}}}}}}}}}}wv}}ww‘èþ×}�àþ×v}}}vvv}w}}vvvv}vvv}}vvvvppvvv}}vvvvpvvvvvvvvvvvvvvovvooovvvvpuovovvvvuouloupuvvvvullloulvoltluvvvutllllttlltlClltltllClu›èýòÆutC˜èýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Cóÿÿÿÿÿ÷_! !!! !! !!!!!! !! !!!! ! ! !!  !  !  !  !  !   !  !!   ! !! !$p¥íþþþþþþþþþþýÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿèÓÓ×þüþþþþþþþþþþþþþþÿÿüþþÿþÿþÿþÿúÖ��}}}}}~€‘~}}}}}€€}~‘‘‘‘}‘‘}~‘€}}~}‘‘‘‘‘‘}‘‘€€‘~~¡¡‘‘‘‘‘‘~~‘‘¡¡¡‘~¡‘€€}€‘¡¡¡‘‘‘‘‘‘¡¡¥¡¡¡¡‘‘‘¡¡‘¡‘‘¡‘‘‘¡¦¥¡¢¡¡¡¥¡¡¡¤‘‘¡¢àþÿÿÿÿÿæ¡¡¢¥¡¡‘¡‘¡¢¡‘¡¡¢¡¡¢¡¡¡¡‘¡¡¢¥¦¢¥¦¡‘‘¡¢¦¢¡¡¡¡¡¦¦¡¢¢¡¡¥£¢¡¡¡‘¡££¡¡¢¦¢¢¢¡‘¡¥¡‘¡¢¥£¡‘¡¡¡‘‘‘¡¡¡¥¡¡¡¡¡¡‘¡‘¡¢¥¡¡‘¢¥¡¡¡¥¡¢‘‘‘¡¡¥¢¥¡¡‘šÓöÿÿÿÿþöÚ¡‘‘¡¡‘¡¥‘‘‘‘‘¡¡¡‘‘¡‘‘¡¡‘‘¡‘€‘‘‘¡‘‘‘‘}€‘‘‘¡¡‘‘}€~}}€€‘‘‘‘‘‘‘€‘€~‘‘‘‘‘‘€}‘€€€}}}€‘}€‘€}}}~}}}}}€‘‘‘€}€‘‘‘}v~}}}}}}}}}}}v}}}}}}}v}™èýÙv�àþÙv}}}}vvw}wvvvv}vvvv}}vvvvvpvvvvvvvvvvvvvvvvvvvvvvvvvvovoovvvwvvoopovvvvpooovvvvuouooooovouvuoollvvuollCClllllllltllllCCl{Ùú÷΃uly×÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yòÿÿÿÿÿ÷_ !!!#!!!!!!!#!!!! !! ! !!!! !!  !  !!   !  !! !  !  ! !!! !   $q¥õÿþÿþÿþÿýÿýÿÿÿþÿþÿÿþÿÿÿþÿÿÿÿþæÓ    Ó×þþýþþþþþþþþþþþþüÿÿÿÿþþþþÿýÿþúÖ��~~}~}}}~}}}}€‘~}~}}}€‘‘‘‘}}¡‘~€€‘‘‘‘‘¡‘~}€‘~‘}}‘‘€€‘¡‘‘€}‘¡‘~‘‘‘¥¡‘¡‘‘¡‘¡‘‘‘‘‘¡¡‘‘¡¡‘‘‘‘‘‘‘¡¢¡¡‘‘‘¡¡¡¥¢‘‘‘‘¡¡¡¡¡¡¡‘¢¢Ýþÿÿÿÿÿ륡¡¢¡¢¢¥¢‘¡¡¡¡¡¡¢¡¡¡¡¥¦¡¡¡¡¢¢‘¡¡¦¡¡¥¡¡¡¡¢¢¥¡¦¡‘¡¢¢¡¡¡¡¡¡¡¡¥¡¡¡¡¡¢¥¡¢¡¡¡¦‘‘¡¡¡¥¡¡¡¢¢¢¢¡¡‘¡¡¡¡¡¡¡¡¥¡¡‘¡¡¥‘‘¡¡¡‘¡‘¡¡‘¡¡¡¡¡‘‘‘¡‘‘¢­ÚúÿÿÿÿýíÔ‘‘‘¡‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘~‘¥‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€~€‘‘‘‘‘‘‘€}€‘�€~}}~€€~‘~}}}~~~}‘‘€}}€€}}}}}‘€‘~}}}}~}}}}}‘}}}}}}}}‘~}}}}}}}}}}€}v�æÿÙ}àþÙ}vw}}v}}}vv}}}}wvvvvvv}ww}vv}vvvvvvvvvvv}vwvpvvvovvvuvvvvvvvpvpoulovovopolulovoooulvuoulloooulllulloulllllultlllllullužñýè�vll�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@!!Zóÿÿÿÿÿ÷x!!!!!!!!!#!!! !! ! ! !!  ! ! !!   !    !!!!   !   !  !  !=qªíþþþþþþþýÿþýþÿÿÿÿþÿÿÿþÿÿÿþÿÿÿèÓ    ××þüþþþþþþþþþþþþþþÿÿþþþþÿÿþÿþÿúÖ���~}~}}}}}}~‘~€‘‘}~~€‘‘~~}‘‘‘€~}‘‘~‘‘‘‘‘‘}~€~}‘¡~‘‘‘¡‘}‘‘‘¡‘~~~¡¦¡‘‘¡¡¥¡‘‘‘¡‘‘¡¡‘‘¡¡‘‘‘¡‘‘‘‘¡£¡‘‘¡¥¡‘‘¡¡¡‘‘¡¡¡¡¡¡¡¡¡¥ãþÿÿÿÿÿꦡ¡¥¢¦¦¦¢¡‘‘‘¡¡¡¥¡¡‘¥¦¥¦¦¥¡¡¡¡¡‘¡¥¦¦¡¡¡¦¦¦¢¢¡¡¢¡¡¥¡¡¡¡¡¡¡¦¢¡‘¡¡¡¥¢¡¥¡¡¥¦¡¡¡¡¡¢¡¡¡¥£¦¢‘‘¡‘‘¡¡¡‘¡¥¦¡¡¡¡¢¢‘‘¡¡¡¡¡‘¡¡¡¡¥¢¡‘‘‘‘‘¡¡¡‘‘§ãýÿÿÿÿýë§‘‘‘¡¡¡¡‘‘‘€‘€‘‘‘‘‘€}‘¤¡‘¡¡‘€‘‘‘‘‘‘‘€}€‘‘‘‘€€‘¡¡‘‘‘‘}‘‘‘}}}}‘~}‘€}}}€€€}}}‘‘}}}€}}}}€‘€~‘‘}}}}}}}~}}}v}~}~}€}}}}}v}}}}}}}€}}�ëþÙ}‘ßþÙvvv}€}v}wvv}}wvvv}}vpp}}}v}vvv}vvvvvwvpvwwvv}uoppupvvvvvvvvvvvvvvloloovuuvuoovulooolooolouvulullllluuolluluoooltltlouƒßú÷Ì{uCƒßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!==;=Zóÿÿÿÿÿ÷_!;!!!!9;!! !! ! ! !!  !! !  !    !!    !!  !    !     !! =}ªõþÿþÿþÿþÿýþÿÿÿýÿþÿÿþÿÿÿþÿÿÿÿþæÓ  Ó×þþþþþþþþþþþþþþþþÿÿþÿþþÿüÿþÿþúÖ��}~€€~}~}}}‘‘€~}~}}€‘~€~}~~~‘‘‘‘~~€~€‘€~‘‘€€¡‘‘€€‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡‘¡¡~�‘‘‘‘¡¥¡‘‘‘‘‘¡¡‘‘¡‘¡¥¡¡¡¡¡‘‘¡‘¢¡‘‘¡¡¡¡¡¡¡¥¡¢Ýþÿÿÿÿÿꥢ¡‘¡¡¡¢¢¡¡¡¥¦¥¡¡‘¡¡¡¡¡¢¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¦¡¡¢¡¡¦¡‘‘¡¡£¢¢¥¢¢¢¢¡¡¡¡¢¢¢¡¡¡£¦¢¡¡‘¡¡¡¡¡¡¥¦¢¡¢¦¢‘¡¢¢¡¡¡¡¡¡¡‘¡¡¡¡¡¥¡¡‘‘¡¡¢¡¡¢¡‘¡¢¡¡‘¡¡‘¡¥¥­ëÿÿÿÿÿûꬡ‘‘‘‘¡‘‘‘‘¡‘¡¡‘‘‘€‘¡‘‘‘¡‘€€‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘€‘‘~‘¡‘}€‘€}~€‘‘€}}€‘}~‘€€‘}€¡‘€‘€~}~}}‘‘}}}€}}}}}}}}}}€}}}}}}}}}}}}}}}wv}}w}}v�èþß}�Ùýàv}vw}}vw}}vv}}}v}v}wvv}}vv}}vvv}wvvvvw}vvopvvpvvvvvpvvvvopuovoovvoouvuoooopulooupoouvuoulloullloulpllluulllolullllluÇõüá˜vouÇñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!9!!!Bóÿÿÿÿÿ÷_!!!! !!!!!! !!! ! !!!!!  !!!!    !!! ! !      ! !  ! !!   !9q¥õþþþþþþýýÿþýÿÿÿÿþÿÿþÿþÿÿÿþÿÿÿèÓ  ÓÓþüþþüþþþþþþþþþþþÿþþþþÿþÿþÿþÿúÖ�s~‘~}~}€€}}~€€€‘‘~€‘‘}}~}}}}‘‘‘‘}}}~‘‘€}~‘‘¡‘¡‘‘}‘¡¡‘‘¡¡‘‘€‘‘‘¡‘‘‘€‘‘¢¡¡¡‘‘‘‘€€‘¢¡¡‘‘‘‘‘¡¡‘¡¡¡¡¡‘¡¡¡‘‘¢¢¡‘¡¡‘‘¡¥¡¡¡¢¢¡Úþÿÿÿÿÿꥢ¡‘¡¡¡¢¥¡¡‘¦«¦¢¡¡¦¦¦¡‘‘¡¡¡¡¡¡¡¢¢¡¡‘‘¡¡¥¦¡¡¥£¦¥¡¡¡¡¡¥¢£¢¦¥¢¦¥£¡¡¡¢¡¢¢¡¡¡¥¦¢‘¡¡¡¡¢¢¡¢¢¢¢¡¡¡¡¢¢¢¡‘‘¡¡¡‘¡¡¡¡¥¦¡¡‘‘¢¥£¡¡¡¡‘¢¦¥¡‘‘‘¡¥¡¡¡¥Ôëÿÿÿÿÿûê‘‘¡‘‘‘¡‘¡¡¡‘‘‘€‘‘¡¡‘‘‘‘‘‘€‘‘¡¤‘‘‘‘‘‘‘‘¡¥‘‘‘‘‘~‘‘‘‘€‘‘‘€€‘‘€}‘‘‘}‘‘‘~‘‘‘‘¡‘¡‘}}‘‘€}}}}}}}}}}}}}}‘‘}}}}}}}}v}~}}}}}}vv}}}vèþßvÙÿÙ}}vv}}v}}}}v}}vvvvv}}}}wv}}vvvv}}}vopvwvpovvpuvvvvvvppvvovpvooooooovvolllouollovvllvuolllllllluvuoltuoolllltuolCllƒàüòÇuuCƒßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=9!!!Yóÿÿÿÿÿ÷_!! !!!!!!!!!! !!! !!!!!! ! ! !!!   !  !  !  !!  !!  !! !! ! !!=qªíÿþÿþÿþÿÿýþÿÿÿþÿÿÿþÿÿÿÿþÿÿÿþÿæÓ Ó×þþþþþþýþþþþþþþþþÿÿÿþþÿþÿþÿþÿúÕ�}~‘}}}}‘‘€€~}~�}€}}~€‘‘€}‘€‘‘‘}‘‘‘‘‘‘€‘‘‘€‘‘‘‘‘¡‘~‘¡‘}‘¡‘‘‘~‘‘‘‘€‘‘¡‘¡‘‘¡‘‘¡‘¡‘¡‘¡¡‘¡¡‘¡¤¡¡¡‘‘¡¡‘¡¡¡‘¡¡¡¡¡£¢‘‘¢¡¡¡‘¡¡¡Úþÿÿÿÿÿꥢ¡‘¡¥¡¡¡¡¢‘¡¢¡¥¢¢¡¥¡¡¡¢¢¡¢¡¢¡‘¦¦¡¢¡‘¢¡¡¡¡¡¡¡¡¡¡¦¡‘¡¢¡¥¡¦¦¡¡¡¢¡¡¢¡¡¡¡¢¡¡¢¦¡¡¢¦¡¡¡¡¡‘¡¦¥‘‘¡¡¡¡£¥¡¡¡¡¡¡¡¡¤¡¡¡¡¡¡¡¡¢‘‘¡¡‘‘¡¢¡‘¢¡¡¡¡‘¡‘¡€¥ÖõÿÿÿÿÿøÚ¥‘¡‘¡‘‘‘¡¡¡¡¡¡‘‘‘‘‘‘‘‘‘¡‘‘¡‘€‘‘‘‘‘~‘‘¡€}‘€‘}‘‘‘‘‘}~‘‘}€€‘‘}~~}}€~}}‘~}}~}}}€}~€}}‘‘}}}}‘}|}}}‘}}~}}}}~}v}}}}}}}}}vv}}}}‘æÿà}Ùþà}}}}}}}v}vvv}}v}vvw}vvvv}vvvvvvvv}vvvvv}vov}vpvovvvwwvuvoovovvvpovpvvuvvvoouluvovvlooooouoouoolllulCouoolulllulluÇ÷ú߃ulvÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Cóÿÿÿÿÿ÷_!!! !! ! ! ! !!! ! !!! ! !  !   !  !    !  !   !! =w¥õþþþþþýýýþþýÿÿþÿþÿÿþÿþÿþÿþÿÿÿèÓ!!!  ÓÙüþþýþüþþýþþþþþþþÿþþþÿþÿþÿþÿþúÖŽs�}}}}~‘‘‘‘‘}~}~~~~€‘‘~}~‘‘‘‘€~‘‘¡‘‘‘~~‘¡‘€~€‘‘¡¡~‘¡‘~‘¡‘€‘~€¡¡€‘‘¡‘‘‘¡‘¡‘‘¢¢¡¡¡‘�‘‘¢¡‘¡¡¡¥¡‘‘‘‘‘¡¥¢¡¡‘¡¡¢¥¢¡¡‘¡¡¡‘‘¡¡Úþÿÿÿÿÿꥢ¡¡¡¢¡¢¡¦¥¡¡¦¢¦¦¥¡‘¡¡¢¢¢¡¥¢¦¥£¦¦¡¥¢¢¡‘‘¡¢¥¡¡¡¢¦¢¡¡¡¡¦¦¢¢¢¢¡¥¢¥¦¢¡¡¡¡¡¡¡¥¦¡¡¦«¥¡¡¡¡‘¡¢¢¡¡¡¡‘‘¡¡¡‘¡¡¡¢¦¡¡¡¡¡‘¥¦¥¢¡‘‘‘‘‘‘‘¢‘¡¢£¡‘¡‘‘‘‘¡¡¥¨ÚûÿÿÿÿþõÔ¡‘‘‘¡‘‘¢¥¡¡¤‘‘‘‘‘¡¡¡¡¥‘‘‘‘‘‘‘‘€€€€‘‘‘€~}‘‘‘‘‘‘€}~€~~‘‘‘}}}~}€}}}}}}}}}}~€}~‘‘€‘‘}~}~€}}}}~}}}}}}}}}}}}}vvv}}}vv}}}}}™æÿà}‘Ùÿß}}}}wvvvvvvvv}}vv}wvvvv|}}vvvvvvv}}}vvpvvvvvvpooovv}wvvoovvovovvoovvvovvoolllvvuvoluluvlouupolllllllllultolllloƒèüè�vlu�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿúx!!!!! !!! !!!!! !!! !! ! ! !   ! !!!  !  !  !!  !! !  ! !!   !  =qªõþþÿýÿýÿýÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿþÿàÓ!$  Ó×þþþþþþþþþþþþþþþþÿÿÿþþÿþþÿþÿÿúÖ�}}€€~}~}~‘‘€}}}}‘€€~‘‘€~}~~€‘‘~‘~€}~‘‘‘‘¡‘~~‘‘‘‘€~‘‘‘‘‘¡‘€‘‘‘¥‘‘‘¡‘‘‘‘‘�‘‘‘¡¢‘‘¡¤‘‘¡¥¡‘‘‘¡¡¡¡¡¢¡‘‘¡¡¡¡‘‘¡¡¡¡¡¡¡‘¢¢‘‘¢¥Ýþÿÿÿÿÿꤡ¡¡¡¢¡¥¡¢¢‘¡¥¡¢¢¢¢‘¡¢¦¡¡¡¡¡¡£¢¡¦¡¡¢£¢‘¢¡¡¦¡¥¡¡¡¡¢¢¥¡¡¡¡¡¡¡¡¢¢¡¡¡¢¥¢¡¡¡¡¡¡¡¡¥¦¢¡¥¡¡¡¡¥¢¡¡¥¡‘¡¥¢¡¡¡¡‘¡¢¢¡¡¡¡¡‘¡¡¡¥¡¡¡¡‘‘¡¥¡‘¡¥¡¡¡¡¡‘‘¡¡¡¡¡­àþÿÿÿÿýõ§‘¡¡‘€‘¡‘‘‘‘‘¡‘‘‘‘‘¡‘‘‘~‘‘‘‘‘‘€‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘~‘‘~€‘~€€€‘‘‘‘‘‘€‘}€}}~}€~~}}}€€}~}€}}}}}}}‘}}}}}}}}}}}}}}€}}}w}v}}�æÿà}×ÿàwv}}v}v}vv}vvv|v|v}}vvvvvvvv}}vvvvvvvvvvvvvvvvvvvvvpvvvovwvovoouvvvvvuoulvvvuvloovvolovvllvuouoloulooullouolo{Ì÷÷Ê{ulƒßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!9!Cóÿÿÿÿÿ÷_!!!!!!! !!!! !! !!! !  ! ! !! !!  !       !  !   !! !q­íÿþýÿýÿþÿþþýþÿþÿÿþÿþÿþÿþÿþÿÿÿèÓ$      ××þüþþýþþþþþüþþþþþÿÿüþþÿþÿþÿþÿúÖŸŽ~‘‘~}}}}}€~}}}}~~€‘‘‘‘‘‘~€‘‘}~‘~}€‘¡‘‘¡‘€~¡‘‘‘‘‘‘€‘‘‘¡¡‘¡‘¡‘‘‘¡‘€‘¢¡€€€‘‘¡¡‘‘¡¡¢‘‘¡‘‘‘‘¡‘‘¡¢¡¡‘‘¡¡¡¡‘‘‘‘¡¡¢¢¡‘¡¡¡‘¦¦àþÿÿÿÿÿꥡ¡¡¡¡¢¢¡‘¡¡‘‘¡¢¡¡¢¡¡¡¡¡¢‘‘¡¡¥¦¥£¢¢¡¥¢¢¦¡¡¢¡¡¡‘¡¥¦¥£¡‘‘‘‘‘¡¡¡¡¡¡¢¦¦£¡¡¦¡¡¡‘‘£¦¢¢¢¢¡¢¥¢¡¡¢¦¢¢¢¢¡¡¦¥‘‘‘¡¥¢¡¡¡‘¡¢¢¡¢¢¢¢‘¡¡¢¡‘‘‘¡¡¡¤‘¡¡¡¦‘‘¡¡¡™§ëÿÿÿÿÿý륡‘€‘~~~‘‘‘‘‘‘¡‘‘‘‘‘‘~‘¡‘‘¡¡‘€€‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘€~}}~‘‘}}}}‘‘¡‘¡‘‘}~‘€}€€‘}}}‘€‘‘}€}‘‘}}}}}}‘€}}}}}v}}‘}}}}‘}}}}}}àÿæ}}×ÿà}}|}}vvvvv}}}vv}v}}}}}}}vpvv}vvvvpoppvwvpvvvvvvpvvvpvvvov}povloouwvvoloopvvpoouvvoovuvvvluvvvvvluouuuoluuuou˜èüß”tC{×÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿ÷_!!!!!!! !! ! !!!!!    !!!  !!!  !! !  ! !!   ! ! !!  ! ! !  !!9}ªíþþÿýþýþýþþÿÿÿÿþÿÿþÿþÿÿÿÿÿÿþÿàÔ   Ó×þþþþýþüþþþþþþþþüÿÿÿÿþÿþÿþÿþþûÖ��~‘~�}}~€€}~~~~‘‘‘}}~€‘‘€€~~~€~}¡‘~}‘‘‘€€€‘€‘‘‘€‘¡‘~‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘¡¡‘‘‘‘¡¡‘¡¡‘¡¡¡¡‘‘¡¦¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥¡¡¡¥Ýþÿÿÿÿÿ楑¢¦¢¡¡¢¡‘¢¢¢¡¡¢¢¡¡£¥¡¥¢¢¡¡£¢¡¡¢¡¢¦¡¢¡¡¢¡¢¦¢¢¡¡¡¦¢¡¢¢¢¡¢¡¡¢¢¥¦‘‘¢¢¢¥¡¡¡¦¢¡¡‘¡¥¡¡¡¢¡¡¢¢¡‘¢¢¥¢¢¢¡¢¡¡¡¡¡¡¡¡¡¢¥¡‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘¡¡¡¥¢‘‘¡¡‘‘¥Üíÿÿÿÿÿû॑‘‘¡‘‘¥‘‘‘¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘~‘‘€€‘}€‘‘~€‘‘€‘‘‘€‘‘‘‘}~€€}}€}}~}}~‘}}}}}€}}}~}}}}}}}}}}}}}}}}}}}}}}v}}�àÿè}Óÿè}w}v}}vv}}vw}}vvvv}}vvwvpvv}vvw}vvvvvvwwvvvvvvvovvvuvvvlo}vvvpvllvwlvouovouvouooouooouooooououlullllululll{×÷òž{ou�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ==!!!Cóÿÿÿÿÿ÷_!!!!! !!!!!! !!! !! ! ! !! ! ! !!  !  !  ! !   !  !  ! !  ! ! =qªõþþýÿþÿþÿþþýÿÿþÿþÿÿÿÿþÿþÿþÿÿÿèÓ$    Ó×þüþþþþþþýþþþþþþþÿÿüÿþÿþþÿþÿÿúÖ����}}}~‘¡‘~}}~‘‘‘‘}}}}~~€‘‘€‘€}}‘‘~}}}}}‘¡‘}‘~€}‘‘‘€~‘¡‘~€€‘¡‘‘‘¡‘‘‘}‘‘¡¡‘‘‘‘‘‘¡‘‘‘¡‘‘¡¡¡‘‘¡¥¡‘¡¡¢¡¡¡¢¡¡¥¦¥¡‘‘¡££¢¡¡¡¡Úþÿÿÿÿÿê¡‘‘¥£¥¦¢¢¢¢¦¦¢¢¦¦¢¢¥£¦¦¦¢‘¡¥¢¢¢¡‘¡¦¢¡¢¡¡¢¥«¦¥¦¡¢¦¢¦¦¦¦¦¥¡¢¦¡¡¡¡¡£¢¢¦¢‘¢¦¡¡¡‘¡¡‘¡¡¡¥¢¡¡¡¡¢¦¡‘‘‘¢¡¡¡¦¢¢¢¡¡¢¢¢¢¡¡¢¡‘‘�‘¢¥¡¡¢£¡¡¡¡¡¡¡¥¡‘¡¡‘‘¡‘‘¡¡¡§ÔõÿÿÿÿÿûÚ‘¡¥¡¡¢¡‘‘€‘‘¡‘¡¡‘€‘¡¥‘~€‘‘‘¡‘}}‘‘€€~€‘‘‘‘}‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘€€€~€‘}~}~}}€}}€‘‘~‘‘}}}‘}}}}}}‘}}}~‘}}}}}}}}w}}}v}}™æÿè}}×ÿè|vpv}vvvv}}}}}vvvv}}vvpvpv}vvvvvvv}}vvvvvvvvvvvvvvovvollv}wvvvvvovvvuvlllooollupoollolluuoloouooolllllllo›ñ÷Ì{uu”ßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!@==Yòÿÿÿÿÿ÷]!9!! !!!!@!!!!!!!!!!!!! !!!  !!    ! !!! !  !   ! !   !!  !=qšíÿþÿþþþýþþþÿÿÿþþÿÿþþÿþÿÿÿÿÿÿþàÓ  Ó×þüþýþýþþüþþþþþþüÿÿÿþÿþÿþÿÿþÿúÖ�~~~~‘~}}~€‘~}~~~~~~€~~}~‘€‘‘‘‘}~‘‘‘‘‘‘‘‘‘‘€~‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘¡‘‘‘¡¡‘‘¡¡¡¡‘‘¡¡‘‘¡¡‘‘¡¡¡¡¡¥¡‘¡¡¡‘¡¥¢‘¡‘¡¡¡¢¢¢¡‘‘¡¥¡¡¡£¡¡Úþÿÿÿÿÿꥡ¡¢¡¢¡¡¡¡¢£¢‘¡¥¢¡¢¡¡£¢¥¦¡¡¡¡¡¢¡¡¥¦¡¡¢¡¢¢¢¦¢‘¡¡¡¢¡¦¢¢¥¢£¡¡¡¥¡¡¢¡¥¢¢¢¡‘¢¦¥¢¡¡¡¢¡¡¡¡¢¢¢¡¡¡¡¢¢¡¡¡¡¢¡£¥¡¡¢¡¡¡¡‘¡¡¢¢¡¡¡‘¡¦¡¡¡¥¡‘¡¡¡¡‘¡¡‘‘¡¡‘¡‘‘¡¡‘‘¢¦¥Ô÷ÿÿÿÿþõÖ¡‘‘‘‘¡‘‘‘‘‘€‘¡‘~‘¡‘‘‘�‘‘€‘‘~}‘‘‘~€€‘€‘¡‘~€~€‘‘‘‘}‘}‘‘€~~}}€€‘‘}~~}}}‘‘}}}}}}}}‘}€€€‘}v}‘}}}}}‘}}}}}}}}}}}}v}}�àÿèw}Óÿè}wv}}}}vvv}}}v}vvv}v}wvvvvvvvvvvvvv}vvvvvpvvvovvvlvwvovoovvvvoovvoovvovvuovuououuoluvvloputllloououloulvÌ÷ߘul{×÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!99!Zóÿÿÿÿÿ÷_!!!!! !!!!! ! ! !! !! ! !! !!! ! ! !  !   ! !  !  !  !      !=}¥õýþþýÿþÿþþþþÿÿÿÿþÿÿÿÿÿþþÿÿýÿÿèÓ        Ó×þþþýþþþþþþþüþþþþÿÿüþÿþþÿþþÿþúÖŽ}~�‘€~}}}~~}}�}}}}~‘‘~}}~~€‘‘~~‘¡‘€‘¡¢¢¡¡‘}~¡‘¡‘¡¡¡¥¡�‘¡¢¡¡¤‘‘¡‘~¡¡¡¡‘¡‘¡‘¡¡¥¡‘¡¡¡‘¡¡¥¢¥¦¡¡‘‘‘‘¡¡¡¢¡‘‘¡¥¡‘‘¡‘‘¢¡‘‘¢¥¡¡Úþÿÿÿÿÿ뫦¦¦¦¢¢¡¡¡¡¥¢¡¡¡¡¢¢¢¡¡¡¡¢¢¡‘¥£¢¡¡¢¢¢¡‘‘¡¡¡¡¡¡¡‘¡¢¥¦¡¡¢¢¦¡¢¦¦¦¦¢¡¡¢¡¡‘‘¡¢£¦¦¥¦¦¦¡¡¡¡¢¥¡¡‘‘¡¡¡¡¡¢¦¢¥¡‘¡¡¡¡¡‘¡¡¢¥¢¡¥¡¡¥¡‘‘‘‘‘‘¡¡¡¡¡‘‘‘¡¡‘‘‘‘¡¦£‘‘¡¥¡¡šÚûÿÿÿÿþõ§‘}~‘¡‘‘‘‘‘‘‘¡‘€€‘‘‘‘‘‘‘‘‘}‘¡¡‘}€‘¡¡‘‘}‘‘}~~‘‘€‘~}€‘~€~}}€€€‘}‘}€~}}~~}~}}}}€‘}}}‘‘}}‘~}}}}}}‘}v}}}}}vvvw}‘àÿè}vÊÿë}}}}}}}v}}}vvvvvppvv}}}wvvvvv}vvvpvvvpvvvpvwvvvvvvvpvvvlvvvvvvvoloopv}vovvoovvllvovvvvlluoltuvoovvvul{çè�ulu�ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zòÿÿÿÿÿ÷_!!! ! ! ! !!! !! !!! !   ! ! !!    !! !   ! ! !   !! =ެíÿþÿþþþýþþÿþÿÿþþÿþÿþÿþÿÿÿþÿÿÿàÓ $$8>        Ó×üþýþþþþþýýþþüþþüÿÿÿþþÿþÿÿþÿÿúÖ��~}}}~€~~€~~}~~€‘~~�‘�}~~€‘‘‘‘}~‘‘~~‘‘‘‘‘‘~~‘‘‘‘‘‘‘¡‘}‘¡‘¡‘¡‘~‘‘‘¡¡¡¡‘‘¡¡‘¡‘¡‘‘¡‘¡¡‘‘¡‘¡¡¡¥¡‘¡‘‘¡¡¢¢‘‘¢¢¢¢‘¡¡¡¥¢¡¡¡¢‘¡Ýþÿÿÿÿÿ榢¢¢¢¡¡¥¡‘¡¦¢¡¡¢¢¢¢¢¢¥¢¡¡¡¢¢¢¢¢¢¢¡¡¡¦¡¡¢¢¢¡¢£¡¡¡¦¢¢¡¡¡¦¥¢¡¢¢¢¦¡¡¡¡¢¢¥¦¡¡¢¦¢¢¢¢¢¢¡¡¢¡¡¦¢¡¡¡¡¦£¡¡¥¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡‘¡¡¡‘¡¦¡¡¡‘‘¡¡‘‘¡¡¥¡‘¡¥¡‘‘¡¡¡¡‘‘§Úýÿÿÿÿý륑‘¡¥‘‘‘‘‘~‘¡‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘~‘‘‘‘‘~€~‘€€€‘‘‘‘€}~€€¡‘}‘‘€€}}~~}€}}€‘}€}}€}}}}‘}}}}}}~v}}}}}}}}}}}}}}}€àÿõ}}Óÿè}}}w}}wwvw}}vv}}vvvv}wvvwv}vvvvww}vpvvv}vvvpvvvvvvvlvvvvvvvvvvovvvuvovvulvwoluvvouloopuvlllloouotlouvÇçÇ{voƒáýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!!!Yóÿÿÿÿÿ÷_!!!!! !! !!!! !!!!!!!! !!!   ! !   !  !  ! !!  !   !   ! !=qªõýþþþÿþÿþþþýÿÿÿÿþÿÿþÿÿþþÿÿþÿÿèÓ $jƒƒ_j!   Ó×þüþýýüþþþþþþþþþþÿÿþÿþÿþÿüÿÿþúÖ��}}~}‘‘€}~‘‘}}‘‘€~~~}}}‘‘‘�~‘‘~~‘‘~~‘}}}}‘‘‘~}~‘¡‘‘‘‘~¡¡€~‘¡‘~€‘¡¡‘¡¡‘‘‘¡¡£‘‘‘¡€‘¡¡‘‘¡‘‘‘¡¡¡¡¡‘¡¡¢¥¡‘‘¡¡¢¥¡‘‘‘¡¡¡¡¦¦¦£êþÿÿÿÿÿꥡ‘¡¡¡‘‘¡‘‘‘‘‘‘¡¡¡¡¦¦¦¡¡¢¦¥¡¡¡¡‘¡‘¡¡¢¡¡¦¢¡¡¦¥¢¢¥¢¢¦¡¡‘¢¡¡¢¡‘¡¡¡¡¦¢¦¦¦¦¦¥¡¡‘¢¥¡¡£¦¦¢¡¡¢¢¥£¦¦¦¥¡¡¡¡¡‘‘¢¥£¢¡¥¡¡‘¡¢¡¡¡‘‘‘¢£¢¡¡¦¥¡¥¡¡¢¦¡¡¡¥¢¡‘‘¡¡¡‘‘€‘¡‘¡¡‘¥æþÿÿÿÿûॡ¢¡¡‘‘‘}€‘¡‘¡¡¡‘‘~€‘‘‘‘‘~~‘€‘‘€}‘‘€}~‘‘‘€}€€}}}‘‘~}}‘¡‘‘‘~}}‘€}‘€}‘‘‘‘‘}|}}~‘}}€}}}}}}}}}}v}‘}}€€}}‘}ßÿõv}Óÿè}vvw}}}}vvv}w}}}}}}}v}vvv}}}vvvv}}vvvvvv}}}vovvvv}vpovvvvvvuoovvvvollvoolo}vlovvvlouvupollovvolllltv�ʘvv˜ßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ===!!Yõÿÿÿÿÿ÷_ !!!!!!!!!!! !! !   !! !!!!!  ! !  !! !!   ! !  ! ! !! ! !! !  !pšíÿþÿýþþþþþÿþÿÿýÿþÿþÿÿþÿÿÿþÿÿþæÓ  >B–×™_    Ó×þþýþþþüþþþýþýþþüÿÿþÿþÿþÿÿÿþÿúÖ��~}}~‘‘~~~�}}~€~~€‘‘‘~~~€~~~‘‘�~‘‘~~‘‘~~‘‘‘‘‘‘‘‘‘~‘¡‘€‘¢‘~‘¡‘¡¡‘‘‘‘‘‘¢¡�€¥¡‘‘¡¢‘‘¡¡¡¢¡‘¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¢¡¡¡¡¡¡¡¢¢¡¥Ýþÿÿÿÿÿꥡ¡¢¡¥¡‘¡¦¢‘¢¢¢¢¥¢¢¡¢¡¢¡¡¦¦¡‘£¥¢¦¡¡¥¦¡¡¥¢¢¡¢¢¢¢¢¢¢¦¥‘¡¢¢¢¢‘¡£¥¡¡¦¦¡¥¢¡¢¡¡¡¢¢¢¥¢¥¢¡¡¡¡¥¢¢¥¢¥¡¡¡¡¢¢¡¡¢¡£¥‘¡¢¥¡¡¢¥¡¡‘¡¡‘¡¥¡¡¡¡¡‘¡¦¡‘¡¡¡‘¡¡¡¡‘¡¡¡¡‘‘¡‘‘‘‘‘¡¡§ëþÿÿÿÿûÚ¡‘¥¡‘‘‘‘‘‘‘‘‘‘‘‘~}‘‘‘‘€€‘‘‘~‘‘‘‘‘‘~‘€€‘‘‘‘‘€‘~€‘€€‘}€~~�‘}}‘}}‘‘}}}}~€}}}}}‘}}}}}}}}}}}}}v€}}}}}}}àÿõ}}Óÿô}}w}v}}v}v}}vvv}}}}}vvvv|vwvvvvvvvv}vvvvvvvvvvvpvvvvvvvvvouvvuovvlvoouoouvvulopovvoooouuuuoovullulovvuo{ßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!9!!!Bóÿÿÿÿÿ÷_!!9! !!! !! !!! !!  !!!!!! ! !  !!!  ! !    !!  !  !!   !   !9qªõýþþþþþþþþþýÿÿÿþÿþÿþÿÿþÿþÿþÿÿèÓ     8ƒÇèÄ_>       ÓÓüþüþýþüþþþþþþþþþÿÿüÿþÿþÿüÿüÿúÖŸ�~}~}}~€}}}}~‘‘‘‘‘‘~~‘€€~‘}}~‘‘‘~‘~~‘¡‘‘‘}~~�¡¡‘~~‘‘¡‘‘‘‘‘‘‘‘¡¥¡‘‘‘‘¡¢¥‘‘¡‘‘~‘¦¥¡¥¥¡¡¡¥¢¡‘‘‘¡‘‘¥¢¡¡¡¡¦¦¢¡¡¡¢¦£¢¥¡¡¡¡¡¡Úþÿÿÿÿÿ楣¦¡¡¡¡¡¦¦¢¢¢¢¦«¢¡¡¡¡¥¢¢¡¦¦¡¡¦¦¦¦¥¢¢«¦‘¡¢¦¡¢¢¦¦¡‘‘¢¦¢¡¦¥¢¢¡¡£¢¦¥¢¦¥¢¡‘¡¥¦¦¦¡¡¡¡¡¡¡¡¡¥¦¦¡‘‘¡¡¡¥¦¦¢¥¦¢‘‘¡¡¢¦¦¡‘¡¢¡¦¦¢¡‘¡¡¡¡¡¡¡‘‘¡¢¡¡¡¡‘‘¡¡¢¡‘‘‘¡‘¤¡¡‘~‘¡¥¡¡¥§ëÿÿÿÿÿõÔ¡¡¡¡¡‘‘‘¡‘‘‘‘‘‘‘�~‘‘‘‘¡¡‘}€‘‘~}~€}~}}~‘‘}‘‘€}}}‘‘‘}}}}}‘‘‘‘‘}}}}}}}}‘}‘}}€‘‘}€‘}}|}}}}}v}}|}}~€wv}}ßÿõ}Òÿèwv}}vvvvv}}vv}}|vv}vv}vvvvpv}vpvvv}vpvvvpoov}}wvpvvvv}vvvoovvoovvvvvopvvvvvoovvuvolollollllltoluloltuƒßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!9!Y÷ÿÿÿÿÿ÷x!!!!!! !!!!!!! !!! !  ! ! ! !! ! !!  ! !  !!! !  !   !   =wªíÿþÿþÿþÿþþÿþÿÿþÿþÿÿþÿþÿÿþÿÿþÿàÓ  =Z†–†C   ÓÙüþþýýýþþüþýþýþþüÿÿÿþþÿþÿÿÿÿÿúÖ��~~€‘}}~~~}~€‘‘‘��~~~~‘�~~‘~~€¡‘~�‘‘€‘‘¡~~~‘‘‘‘~‘‘‘‘‘‘‘‘‘¡‘¡‘‘¡¡¡‘¡‘‘¡¡�‘¡‘‘‘¡¡¡¡¡¢‘‘¡¢¡‘¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¥¡‘¡£¥¡¡¢¡¥¢¢¢Ýþÿÿÿÿÿ襢£¥¡¡¡¢¢¡¡¦¢¡¥«¥¢¢¡¢¡¢¡¡£¢¢¡¥¦¡¡¦«¢¢¢‘¢¦¢¡¢¢¢¦¢¢¢¢¢¢¢¢¢¡¢¡¡¢¢¦¦¢¢¢¢¡¡¢¢£¥¢‘¡¦¡¡¡¥¢¡¢¢¢¡¡¢¡¡¡¢¢¢¡¢¢¡¡¡¡¢¢¢¢¡¡¡¢¡¡£¥¡‘¡¡¡¢¡¡¡¡¡‘¡¡¡¢¡¡‘¡¡¡¥¡¡‘‘¡¡¡¡‘‘¡¡¡‘¡‘‘¥§õÿÿÿÿþõ¬¡‘¡‘‘‘¡¡‘‘€€¡¡€€‘‘‘‘‘‘‘~‘‘‘€‘‘€‘€~€€‘~€¡‘}~€€€€‘‘}}€}‘‘€€‘‘}}}‘}€}}}}}~}}€}}~~}}}}~}}}}}v}}}}}}}€Úÿ÷}Óÿèv}}}}}}}vv}}vv}}}w}}vvvv}}vvvvvvvvvvvpv}vovvvvvpvwvuvvvvvvovvppvvvvolvvvovuuvvvovooullvulollolllolužúýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!!!Bóÿÿÿÿÿ÷_99!!! !!! ! !!!! ! !!! !! !!!!   !        ! !!!  !!   !  =}¥õþþþþþþþþþýýþÿÿþÿþÿÿþÿþÿÿþÿÿÿèÓ   7ZCB>!      Ó×þüþýþþþüþþþþþþþþÿÿþþÿþÿüÿüÿþúÖ�s~~}�~}~}~¡¡‘‘~}}~‘‘‘‘‘‘~~‘¡‘�¡¡~}~‘¡‘‘‘‘¡‘‘‘~~}¡¡¡‘‘~‘¡¡¡‘¡‘‘‘¡¡‘¡¡‘‘‘‘‘‘¡‘¡¢¡¡¡¡¢¡‘‘¡¡¡¢¡¦¦¡‘¡‘‘‘‘‘‘‘¡¢¢¡¡¦¦¡‘‘¡¢¡¡¥ãþÿÿÿÿÿꦦ¥¦¦¦¦¢‘‘¢¦¡¡¡¦¦¡¡‘¡¡¢¡¡¥¢¡‘¢¦£¡¦¦¡‘‘¡¦¦¡‘¡¡¢¦¡¢¢¢¡¡¦¦¢¡¡¡¡¡‘¢¦¡¢¢¢¦¦¦¢¡¢¡¡¦«¦¥¦¦¡¡¢¢¡¡¢¡¢¦¢¡‘‘¡‘‘¡¢¢¢¥¡‘‘¡¥¦¡‘‘‘¢¡¡¥¢¥£¡‘‘‘‘‘‘‘‘¡¢¡¡‘‘¡¡‘¡‘¡¡¡‘‘‘‘¥¡‘‘‘¡‘¢¦¨Ôõÿÿÿÿþ륑¡‘‘‘‘€¡¡¡¡¡‘€‘}}~‘‘‘‘~}}�‘¢¡‘‘‘‘‘}}‘‘‘}}~‘‘}~‘‘€}}€‘}}}‘}‘‘~}}~}}}}€‘}}}}}}}‘‘€€}}}€‘}v}v}}vvv}‘ßÿõ‘‘Óÿñ}}}v}w}|vvvvvvvvvv|}}wv}}}}vv}vvvvwvvvvvvvvvpopoovoopvoooov}vvupouvovvvooollvlluvvvolovvvvvvvvuuuoo˜òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!B÷ÿÿÿÿÿ÷_!9! !!! !!!! !! !!!    ! !!   !! !    ! ! !!! ! ! ! !   =wªíÿýþÿþþþþÿýÿÿÿþÿÿþÿþÿþÿÿþÿÿþÿæÓ ==      Ó×þþýþüþþþþüþþýþþüÿÿþÿþÿÿÿÿþÿÿúÖ�}‘¡}}~�}~€‘‘}~�~~~‘‘~��‘‘‘~�~€‘‘‘~‘‘¡‘~~¡‘‘‘‘‘~~‘¡¡¡‘~‘¡‘¡‘¡¡�‘‘‘‘‘¡¡~‘¢¢‘‘‘‘¡¡¡¡¡¡¡‘¡¡¡¥¡¡¡¡¡¡¡¢¡€¡¡¡¡¡¢¢¡¡¢¥¡¡¡¢¢¢¡¡Ýþÿÿÿÿÿꦦ¢¡¢¦¢¢¡‘¡£¥‘¢¦¢¢¡¢¥¡¢‘¡¢¢¢¢¢¥¢¢¢¦¡‘¢£¥¢¢¢¡¡¢¥¢¡¢¦¦¡¢¦¥¡¢¢¢¡¡¢£¢¢¢¦¢¡¢¥¢¡¢¢¢¢¢¡¦¦¢¡¡¦¡¥¡‘¡¦¢¡¡¡¡¡¡¢¥¡¡¢¢‘‘¡¡¦¥¡¢¡‘¡¡¡¡¡¥¡¢¡‘¡¡¡‘¡¡¡¥¡‘‘¡¡¡¡‘‘‘¡‘¡‘‘¡¢‘€¡¡¡‘¡¡‘¤Ô÷ÿÿÿÿýॡ‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘~€€‘‘‘€‘~‘‘‘€‘‘‘~€~€‘~‘‘‘‘}}‘‘~~~~€€}}}}}€~}}‘}}}~}}}}}}}}}}}}}}}}}}}}}}vÚÿ÷}Òÿõ‘}v}}}v}w}}wvv}vvvvv}}vvv}vv}}vvvvvvvvvvvvvvvpuvvvvpvoovpvvvvvvoooovvuvooulovvlovuvvoolovvlouuuooolu{ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!@óÿÿÿÿÿ÷_!!! !!!!! ! !! !!! !! !  !!! !!   !  !   !  !  !   !    !   !=qªíÿþþþýÿþþþýýÿÿþÿþÿýÿþÿþÿþÿþÿÿæÓ     !          Ó×üþüþþþþüþþýþþþþþÿÿþÿþÿüÿþÿþÿúÖ�s~�€~~}}~‘‘}}~}}~‘‘~~}}}‘~}}}~~}~‘~}‘¡�~‘¡�~‘¡‘~‘‘‘‘~~‘¡¡‘‘‘‘‘‘~~��‘¡‘~¡¡‘¡‘‘‘�‘¡‘‘‘‘¡¡‘¡‘‘¡¢¥¡¡¢¦¥¦¥¦¢¡¡¡‘‘¡¡¡¢¥¢¢¦¡‘Úþÿÿÿÿÿ楡¡‘¡‘¡¢¦¢¢¥¢‘¡¡¡¥¦¦¢¢¦£¦¦¢¢¢¦¢¡¡¡£¦¦«¢¢¡¦¦£‘¡¢¦¢¥¦¡¡¡¢¦¢¢¢¦¥¢¦¦£¡¡¡¡££¢¡¢¦¢¡¡¡¡¡¢¦£¢¢¢¢¢¡¡£¦¥£¥¦¦£¦¢¡¡¥¦¢¡¢¡¦¦¥¢‘¡¡¡¡¡¦¢¡¡¡¡£¡¡‘¡‘‘¢¡‘¥¦¢¢¦¡¡¡¦¦¥¡‘¡¡‘€‘‘‘‘‘¡¡‘€™ÚûÿÿÿÿûÚ¡‘¡‘‘€€€‘‘‘¡¡‘‘‘‘~‘‘‘‘‘€‘~}}}€‘¡‘‘}}‘‘‘‘}€‘}~€}€‘}}}}}}‘‘‘‘€‘}}}€€}}‘‘}}}}}}}}v}}}v}€‘‘}}}}Ùÿõvžÿôvv}}vvvv}}}}}}}}vvvvv}wvp}}w}vvvv}}}v|vpvvvpv}}vooovvvvoovlllovovvovvoovvvoopoopoovpvvullCllluvououÇúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!@!Zóÿÿÿÿÿ÷_!!!=!! !!!! !!!! ! ! ! !!!  ! !  !  ! !! ! !!!!!   ! ! !  !!!  =ެõþþþþþþþþþþÿÿþÿþÿþÿÿÿþÿþÿÿÿþÿæÓ           Ó×þþüþüþþýýýþüþþþüÿÿþÿþÿÿÿþÿÿÿûÖ��}}�~}~}}‘‘~~€‘}}~‘‘‘~}~‘‘~~~€~~¡¡}~¡¡€‘‘‘€~‘‘¡‘~~‘‘‘‘‘~¡¡‘~¡¡¡~‘¡‘‘‘‘‘¡¡¡¡‘¡‘‘¡¦‘‘¡¡¡‘¡¡¡‘¡¢¡‘¡¡¢¦¢¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢¡£¡Úþÿÿÿÿÿꥡ¢¦¡¡¡¡¢¦¢¡¢¢¡¢¢¡¢¡¡¥¢¦£¥¢¢‘¦¦¦¦¡‘¦«¥¢¢¡¥¢¢¢¡£¢¡¢¡¡¢¢¦£¥¦¢¡¢¢£¥¦¦¡¡¥¦¢¢¡¢¢¦¡‘¢¦¢¡¥¦£¥¡¡¡¡¡¢¢¦¢¡¡¥¢¥¢¡¡¦¦¡¡¡¡¦¦¢¡¡¡¢¡¡¡¥¡¡¡¡¥¡‘‘¢¡‘‘¦¡¡¡¡¥¡¢‘‘¡¡¡¡‘‘¡¡¡¡‘¡‘‘¡‘‘‘‘¡¤¥Úýÿÿÿÿõ¬‘¡‘€‘‘‘‘‘¡¡‘‘‘‘€~‘‘‘‘�}‘‘‘€‘‘‘‘‘}~~‘¡‘}}¡‘}~}~‘‘}€}}€‘€‘}~}~€}}}}}}€}}}}}v}‘}}}}}}}}}}€}}}w×ÿõ�}žÿõ�}v}}}}vv}}}v}}}vv}}vvvv}}vvv}vwvvvvvv}vvvvpvvvvvvvvvvvvvuovvoovvoovvvvoooovvvovvuuvouuuuovulllllvlluou˜èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!9!!Zóÿÿÿÿÿ÷_ !!;!!!!!!!!!! !! ! !!!! ! !!! !!  !  ! !  !  !  !!  !! !!!    ! !!=}ªõþþÿþÿýÿþþþýÿÿþÿþÿþÿþÿþÿþÿþÿÿæ×  !      ÓØüüþþýþþüþþýþþþþþÿÿüÿþÿüÿþÿþÿúÖŽ��~}~��~}~‘‘~�‘‘}}~}‘‘~‘‘‘‘‘¡¡‘¡¡‘}‘¡¡�~‘¡¡‘¡‘‘¡¡‘€‘¡¡‘‘‘¡¦‘~�‘‘¡¡‘‘¡¡¡¥¡¡¡¡¡¡‘¢¡~‘¡¡¡¡¡¢‘‘¡¡‘‘¡¡¡¡¡¡¡¦¦¡¡¡£¢¡‘‘‘¡‘¡¡¥ãþÿÿÿÿÿ梡¡¡¡¥¦£¡¢¢¡¡¢¦¢¢¢£¢¡¢¡¡¡¢¦¢¢¢¡¡¦¢¡¦¦¡¡¢¢¦¦£¦¦¦¡¢¢¢¦¢¢««¦¦¡¦£¡¡¡¢¥¡¡¢¢¡¥¦¢¢¢¢¢¦¦¡¡¡¦¢¡¡¡¢¥£¢¡¡¦¡¡¡¡¡¡‘‘¡¡‘‘¡‘¡¢‘¡¢¥¡¡¡‘‘¡¦¦¥¡¡¡¥¦¢¡‘¡¥¡¡¡‘‘‘‘¡¡‘‘¡¡¡¡‘‘¡¡¤¡‘‘‘‘¡¡‘‘‘¡§æþÿÿÿýÚ¤¡¡‘‘‘~‘¡‘‘‘‘‘‘‘‘€‘€€‘¡‘‘}}}}~~‘€‘‘}}}‘‘‘‘€}€‘‘‘}}}}}}}}~}}‘‘}}}}}€‘€}v}€‘‘‘}}}w}}}}}}}€‘×ÿ÷™}žÿõ‘}ww}vv}}}}}vppvvvvvvvvvv}vv}vv}vvvvvvvvvvvvv}}voppvvvouvp}}vvvvvooooooovvuollllulvllllllvvvoluvvvllluolu›òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yòÿÿÿÿÿ÷_!!!!!!!!!!!!!!! ! !!!!! ! !   !  ! !! ! ! !  !  !!!  ! ! 9pªõþþþþþþýþþþÿÿþÿþÿþÿþÿþÿÿÿþÿÿþæÓ       Ó×þýþýþüþþýþüþüþþüÿÿÿÿþÿÿÿþÿþÿúÖ��~‘}}}}~€~‘€�~}~~~}~‘‘~~€‘€‘‘‘‘‘‘‘~€¡‘‘‘~‘‘‘¡¡‘‘‘¡‘‘‘¡‘‘‘‘¡¡‘~‘¡¡¡‘‘‘¡¡¡‘¡¡‘‘¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡£¥¢¡‘‘¢¦¢¡¡¡¡¡¡¡¡¡Ýþÿÿÿÿÿꥢ¡‘¢¦¥¡¡¡¢¡¡¦¦‘¡¦¥¢¡¢¢¡¢¢¢¦¦¡¡¥¢¢¡¢¦¢¦¢¢¦¥¢¦£¥¢¦£¢¦¡¡¦¦¢¢¥¦¥¢¡¡¦¦¡¡¢¢¢¢¦¦¦¢¢¢¢¥¡¡£¥¢¦¢¡¡¡¥¢¥¡¡¢¢¢¢¢¡‘¡¡¡¢¡¡¡¡¢¡¡¡¢¡¡¡¡¡‘¢¦¢‘¡¦¢‘¢¡‘¡¡‘¡¡‘¢‘¡¢¡¡‘‘¤¡¡‘¡¡¡¡¡‘‘¡‘¢¡‘‘‘‘‘‘§ëÿÿÿÿõ¬‘‘¢¡~‘¡‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€‘‘~€‘€�}~‘€‘€}}~€‘‘‘‘~~‘~}~}}}‘‘‘}|‘}‘}w}‘}}}}€‘}}}}}}}}}}}~}}Óÿú™vžÿõ™}}}}}vv}}}w}vvv|v}}vvvpw}vv}vv|vvvov}vwvvvvv}vopvvvvoovvovvvvvvvovulovoovvpllooovvvllvoouvvooouuuollluluvu�÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!! !!!!! !!!!!!!!! !! ! !! !!! !    !  ! !   !!  !!     =q¥íÿþþþÿýÿþþþüÿÿþÿþÿþÿþÿþÿþÿþÿÿèÓ             ÓÓüþþüþþþþüþþþýþþþÿÿüÿþÿüÿÿþÿÿúÕ�s}~}~‘‘‘~}}~}}}~‘‘¡¡¡~~‘‘‘~‘‘~~~€‘‘‘€}~‘‘~~‘¢¢‘¡¡¡¡~~¡¡¡‘~‘¢¥‘‘‘‘¡¦‘‘‘¡‘¡¡¢¡€‘‘‘¢¢¡¡‘¡¡¢¦¢¢¡¡¡¡¡¡‘¡¡¢¡‘¡‘¡¡‘¡¡£¡¦¦¦¡¡¢Úþÿÿÿÿÿë­«¦¢¦¦¢¢¥¡¡¢¦¦¢¢¦¦¢¡¦¦¦¥¡¡¡¡¦¡¢¦¦¢¡¢¢¢¡‘¡¡¡¢¡¢¢¦¦¦¡¡‘¡¢¢¡¡¡¡¢¡¡¡¢«£¢¡¡¡¡¢¢¡¡¢¢¢¢¢¢¡¢¡¢¡¡¡¡¡¡¡¡¡¥¢¢¢¢¦¢¢¡‘¡¡¦¥£¡¡¡¡¢¢¢¢¦£¡‘¡‘‘¢¥¡‘‘¢¦¡¡‘¡‘‘¢¦¦¡‘¡‘‘¡¡‘¡¡¡¡¡‘‘¡¡¡¡¡‘‘€‘‘‘‘‘§íÿÿÿýÚ‘‘¢€}~‘‘‘‘‘€€~‘¡‘€~‘‘‘‘‘¡‘‘€}~}~‘‘‘‘‘�‘~‘€}~}}}‘‘}}}‘€}‘}}}‘}¡~}€~}}‘‘}‘}vv}}}}}}vv}vw}}×ÿ÷‘}§ýõvv}}}w}}vw}}}v}}}}}}vv}}}vvvvvvvvov}vvv}}vvvvvv}vv}vv}}vplovvvvvvoolvvwvovuovolvuvtlovvvlllouvllllvullluvul{ÌúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=@=!Bóÿÿÿÿÿ÷_!!!!!! ! ! !!!!  !   !!       !!! ! ! !  !!!!  !!!=qšíþþþþýþþþþþÿÿÿþþÿþÿþÿþÿÿþÿþÿþæÓ         ÓÙüýþüýþüþþþüþþüþüÿÿÿÿþÿÿþÿþÿÿûÖ�}}}€‘~~~~}}‘‘~}}}€‘‘‘‘~‘¡‘‘‘�‘~€}‘‘‘~~‘‘‘¡~‘¡¡‘‘¡‘¡‘‘‘¡¢‘‘¡¡¡‘‘‘‘¦¢~‘¡¡‘‘¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡¢£¡¡¡¡¡‘¡¡¡¢¡¡¡¦¡‘¡¡¥¢¢¡¡¢¡¢¢Úþÿÿÿÿÿꦢ¦¦£¢¢¦¢¡¡¢¥¦¦¦¦¢¢¡¢¦¦¦¢¥¢¢¢¢¢¦¢¥¦¡¢¦¡¡¢¡¢¢¡¢¢¢¦¥¦¢¡¢¡¢¡¡¡¢¢¡¡¢¡¦¥¢¢¡¡¡¢¥¢¡¡¥¢¢¦£¢¢£¥¡¡¡¡¡¡¡¡¢¡¡¢¢¦¦¡¡¡¡¡¡¦¦¢¡¡¢¡¡£¥¢£¥¡¡¡‘¡¢¢¡‘‘¢¢¡‘¦¡¡‘¢¦¡‘‘‘‘‘¡¡¡¡¡‘¡¡¡‘¡‘‘‘‘‘‘‘‘¡¡¡‘‘™àÿÿÿþæ‘‘‘€‘‘‘‘‘‘‘‘€€‘‘~€‘‘‘€‘‘‘‘‘‘€}}‘‘}‘}€~€‘‘}}‘‘~‘}}}‘€~~}~}~‘€~‘}}}}‘~}}€}}}}}}}}}}v}}}Óÿú™}žýõ�v}|}wv}}v}}}}vv}}}}vwvv}ww|v}vvvvvvv}vvvvvvvvvvvvv}vvvvvvvlovvvuvvovvovoouvvvlovvvvlovvvvoullvuvoloolllllouuu{×ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!=9!Bóÿÿÿÿÿ÷_!!!!! !!!!! !!!!!!! !    !  ! ! ! !! !!! !! ! ! !  !!!q¥õþþÿýÿþþþþþýþÿÿþÿþÿþÿþÿþÿÿþÿÿæÓ   !        Ó×üþüþýýþýþüþþýýþþÿÿüÿÿþÿþþÿÿþúÖ �‘‘‘‘}}~‘‘~~¡¡¡¡‘~~�‘~}~‘€~}}}‘‘~~¡‘�‘‘‘¡‘~}~‘‘‘~}~‘‘‘‘‘~~‘‘‘�¡¡‘¡¡‘¡£¡¡¡¡‘‘‘¡¡‘¡¥£¡¡‘~‘‘¡¥¢¡¡¡¡¡¡¡‘¡¡¡¢¦¥¡¡¡¡¡¦¡¡¡¢¦«êþÿÿÿÿÿꥢ¢¥¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡£¡¡¡£¢¢¢¥¡¡¢¢¦¢¡¡¢¦«¦¦¥¡¡¢¦¦¢¦¦¦¦£££¦¦¡¡¦¦¦¦¢¡¦¢££¢¢¢¢¢¦¦¢¡¡¢¥¢¢££¢¢¢¢¦¦¢¡¡¡¥¡¡¢¡¡£¢¢¡¦£¡¦¦¦¢‘‘¡¡¡¡¡¡¥¦¢¡¡¡¡¡¢‘¡‘¡¡¡¡¦¡‘¡‘¡¡¡¡¡‘‘¡‘¡‘‘¡¡¡¡‘¡‘‘‘‘‘€‘‘¢¦ëÿÿÿÿûÔ‘‘‘¢¥‘‘‘‘¡¡‘~€‘¡€}‘}~‘‘‘}‘‘‘‘‘‘€‘‘‘€}�‘}}€‘}€}}‘‘}~}}}}}€}}}}}}}‘}w}}}}‘€}}}}‘€}}}}Óÿ÷™}žýõ™}}}v}vvv}}w}}vvvvv|}}}vvvvvvvvvv}}}vvvpppvvvpv}vvv}voooovwpovvovvvvvolovvoovpovvlllllulltlolluopulluvvvolCClllo{ßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yòÿÿÿÿÿ÷_!!! !!!@!!! ! !!!!!!!! !! !!!!! ! !  !!  !   !    ! !!!    !!   ! =qªõþþþýþþþþþþÿÿÿþÿÿþÿþÿþÿþÿþÿþÿæÓ           Ó×þþüýýýþýýþüþþüþüÿÿÿþÿþÿÿÿþÿÿûÖ¢‘‘‘~~}}~‘~}~~‘¡‘‘€‘€~}~‘‘‘~~~�‘‘~‘‘‘¡‘~‘‘‘‘‘~‘‘‘‘~‘‘‘~‘¡�}‘¢‘~¡¦¡~‘¢¡¡¡¡¡¡¡‘¡¡‘‘¢¡¡‘¡¡‘¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡‘¡¦¡¡¡¡¡¡¡¢¢£¦¢£åþÿÿÿÿÿꦦ¢¡¡¡¢¦¡¡¡¡¡¡¡¢¢¡¡£¥¢¢¡¢¡¡¡¢¦¢¡¢¢¢¢¡¥¦¥¦¦¢£¢¢¥¦¦¢¢¦¦¦¢¥¢¦£¥¡¢¢¥¦¡¡£¥¢¥¦¢£¢¢£¥¢¡¢¦¦¦£¢¡¡¡¡¡£¦¡¡¡¢¡¡¡¡£¡¥¢¡¥¡¢¥¦¢¥¢¢¡‘¡¡¡¡¡¦¥‘¡¡¡¢¡¢‘‘¡¡¡¡¡¥¡¡¡‘‘‘‘¡¢‘‘¢¢‘~¡¥¡‘¡¡‘‘‘‘‘‘‘‘‘¥Ýþÿÿÿÿà¡‘‘‘¡¡‘~‘‘‘‘‘‘€‘‘‘€‘~}€‘‘€‘‘€‘‘‘‘‘‘‘‘‘€}~‘}}}€~~‘‘‘}€}}}}}€}}~}}}}}}~}}}}~}~}}}}}~}}}}}Óÿúš}žûõ™w}v}v}}v}}}vv|vv}}}vv|}vvv}vvvvvvvvvvvvvvvvvvv}vvvvvvvlovvvvvvvvvvvvvpulvoovulvvuvollllloovlovuuollouvuullllotlul{áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!! !!!!!!!! !!!!!  !   ! !!! !   !!    ! !  ! !    !! 9qªíþÿýÿþþþþþþþÿÿþÿþÿþÿþÿþÿþÿþÿÿæÓ                   Ó×üüþýþüþüþþþýþýþþÿÿüÿþÿÿþþÿÿþúÖ�‘~~}~}~¡¡~}~}~~~~‘‘‘‘‘‘~}}~~~~¡¡‘~~}~‘~~‘‘¡¢¡~‘‘~�¡¡¡€‘¡¡¡¡¢‘~‘¡¡‘‘¢¡‘‘¡¡‘¡‘¡¡¡¦¢‘¡¢¡‘‘¡¢¡¡¡¡¡‘‘‘‘¡¢¦¦¡¡¡¦£¢¡¡¡¡¡¡¡¡‘‘Úþÿÿÿÿÿ楦¦¦¦¡¡¦¦¦¦¥¢¡££¢¢¦¦¡¢¦££¢¦¢¡¢¦«¦¦¥£¢¢¦¢¢¡¡¢¥¦¢¡¡¡¡¡¢¦¦£¢¡£¦¢¢¢¡¡¦¦¢¡¡¦¦¦¥¢¡¢¢¢¢¢¢¢¢¢¡¥££¦£¦¢¡¥£¥¢¦¢¡¡£¢¢¦¢¡‘¡¡‘¡‘¡¡¡¢¡¡¡¡¦¡‘‘‘‘¡‘¥¦¥¡¢¡‘‘¡¢¥¦¡¡¡¡¢¦¢‘‘¢¡‘¥¡‘‘‘‘‘‘¡‘‘¡¡¡¡ÚÿÿÿÿþÚ‘‘¡‘‘‘‘€}‘‘¡‘‘‘~}‘‘‘¡‘€‘¡‘€‘}�‘€}~}}}‘‘}}}€‘‘‘‘‘}}�€}}}}~€‘€}}}~~}}}‘}}‘}}}}}}}v}}}}}}}Çÿú§‘§úõš}}}v}}}}v}vvv}}}}vvvv}vv|}}}}wvvvvvvvv}}vvvvpvvplovvvwvvvvvovupuoouvvoopvvvvolouovvvvovvvuolCloovolllCllpoltvlCCluv˜ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!=!Zóÿÿÿÿÿ÷x!!!! !!!  !!  !!!  !!  !! !! !      ! ! !    !!!  !=qªõþþþþþþþþþþþÿþþÿþÿþÿþÿþÿþÿÿþÿæÓ                   Ó×þþüýýýþþüþýþþüþüÿÿÿÿþþÿÿÿýÿÿúÖ Ÿ~}~~}}‘‘�€~~�‘~~}~�‘~~‘~}}~~‘~~‘‘~}‘‘~}‘‘¡¡‘~‘¡‘‘‘‘¡¡‘‘¡‘¡¡‘‘‘¡‘‘¡¡¡‘‘¡¡‘¡¡¡¡¡¦¦¡¡¢¡¡‘¡£¡‘¡¦¡¡¡‘‘¡¡¡¡¦¢¡¡¢¢¡¡¡¡¡¡¥¢¡¡Ýþÿÿÿÿÿꥢ¦£¢¦¢¦¦«¦¢¢¡¢¡¢¦¦£¡¡¡¥¢¦¦¡¡¦«¦¦£¢¢¢¢¦¢¡¦¦¢¢¦¦¡¡¡¡¡¢¦¦££¥¡£¥¡¢¡¢¦¦¥¢¡¡¢¦¦£¥¢¢¡¡¢¢¢¦¥¢¢¦¥£¥¡¡¢¡¦¦¢¦£¡¥¢¡¢¦¢¡‘¡¡¡¡¡‘¡‘¢¡¡¥¢¡¡¡‘‘‘¢‘‘¢¢£¥¡‘‘¡¢¡¡¦¥‘¡¢¡¥¦¡‘¡¢¡¡¡‘‘‘‘~¡¡‘‘¡¨íÿÿÿÿýÔ¡‘€‘¡¡‘‘‘‘‘‘¡‘€€€€~~‘¡‘‘‘¡‘‘‘}}‘‘‘}~‘‘‘‘~}}‘‘‘¡€€‘}}€}}}}}‘‘}}€}}}}}}}€}}~}}}}}}}}}€}}}v}Óÿûž}žû÷™|}}w}€}}}}vv}vv}}v}vv}vvwvv}vvvvvvvvvvv}}vvvovvvvvvvuvvv}voovovvolovvovvvvvvllvvvvvvuooouvvllluuvuullCClulClllllltluu›õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Cóÿÿÿÿÿ÷_!!!!!!! !!!!!!! !!!!! !  !!!!!   !! !   ! ! !  !    !   !   >}¥íÿþþþþþþþþþýÿÿþÿýÿþÿþÿþÿþÿþÿÿæÓ            ÓÓýüþýþüþüþýþþüþþþÿÿüÿþÿÿþÿÿÿþûÖ��}}�¡‘~~~~�~}}~~~�~~€‘‘~‘¡¡‘‘‘€‘¡‘�‘¡¡‘‘¡¡‘‘~‘¡¡‘‘~}¡¥¢¡¡‘�¡¢¡‘‘¡¡‘¡‘¡¡¦¡¡¡‘‘‘‘¡¡‘¡‘¡¡‘¡¢¡‘¡¦¥¡¡‘¡¡¡¡¡¢¡‘¡¢¢¢¢¦£¡¡¦¦¢¢Úþÿÿÿÿÿꦡ¡¡¡¡¡¡¡¢¡¢¢¢¢¡¡¢¡¢¦¢¢¦¦¦¥¡‘¢¢¡¡¡££¢¢¢¡¡¡£¡¡¡«¦¦«¦¦¥¡¢¥¡¡¡¡¢¦¦¦¦¦¡¢¢¦¦¢¡¡¡¢¢¦¦¦¢¢¢¢¡¡¢¢¢¢¢¡¢¦¦¦¡¡¡¡¥¦¦¡‘¡¢¡¢¢¢¦¦¦¦¢¢¢¢¢¦¢¡¢¢¢¡¢¦¦¡¡¡‘¢¦¡¡‘‘‘‘¢¦¡‘‘‘¡¢‘‘‘¡‘€‘‘‘¡¡‘‘¡‘¡Óûÿÿÿÿëš‘‘‘‘‘¡‘€~‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘}€‘‘‘~}‘‘}€‘‘}}~€‘}~‘‘~}}}‘‘€~‘‘€‘‘}}}~}}‘}€}}~€}}}}}}v}}‘‘}}}v}Óÿúž}™ú÷¥}vv}vvvw}}}vv}}vvv|vv}}}vov}}}|vvvvv}vpvvvpoovpvv}vovvvvvpvvv}voovvlovuoovvvlloovoovvvlllltpuolllluullvvllvlltoolCClluÆ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!!=Yóÿÿÿÿÿ÷_!!!!!! ! ! !!!!!!!   !!!!  !!  !!    ! ! !!   ! !! ! !  !!   !!  =ެíþþþþþþþþþþÿÿþÿþÿþÿþÿþÿþÿþÿþÿæÓ   !          ÓÙüýþüþüþüþüýþþüþüÿÿÿþÿþÿÿüÿÿÿúÖ�}}}�‘‘‘~~~~�~€‘�}~}}�‘‘‘‘¡�‘¡‘��‘‘‘‘‘‘¡¡¡‘~~¡¡‘‘¡‘~‘¡¡¡¢¡‘‘¢¡‘‘¡¡‘‘¡¡¡¡¡¡‘¡¡¡‘‘¡¡‘¡‘¡¡¡‘¡¢¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¢¢¢¦¢¢¡¢££¢¡Úþÿÿÿÿÿ릣¥¡¡¡¡¦¡¡¢¢¢¢¡¡¡¢¡¢¦¢¢¦¦¢¢¦¢¢¡¡¡¡¡¢¦¢¢¡¡¡¢¡¡¡«¦¦¦££¢££¢‘¡¢¢¡¡¦¦¦¦¢¡¢¦¦¢¢¦¢¢¢¦¦¦££¥¦¡‘¡¢¡¡¡¡¦¦¥¦¦¢¡¢£¥¦¡¡¢¥¦¢¥¢¢¥¦«¥¡¦¦¡£¥¢¢¡¡¢¢¦¢¢¢¡¡¡¢¦¢‘¡¡¡¡¥¢¡¡¡¢¡¡¡¡‘‘¡‘€‘‘‘¡‘‘¥êÿÿÿÿþà‘‘¡¡‘‘‘¡‘€‘¡‘‘~€‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€}‘‘€~~‘}€‘‘‘‘€}}~}�‘}}€‘‘}�}}€}}~}~}}}~}}}}}}}}}~}}}}}}}žÿýÒ}™õ÷ž}}}}}}v|}}}}vvvvvv}}vvv}}ppv}}vvvvvvv}}vpvvpopppp}vvpvoo}vvvvvvvvovvulvolovvvolllvuovvlolllovvllCllluuloullvvlltllClllCCvÌüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ9!!9!Cóÿÿÿÿÿ÷_!!!!!! !! !!!!!!! !!  ! !!  !!!  !  !!  !! ! !!! ! ! !! ! !  !  =ŽªíÿþþþþþþþþþüÿÿþþÿþÿþÿþÿþÿþÿþÿæÓ                 Ó×üþüþýýþýýþþüþýþþÿÿþÿÿÿÿýÿÿÿüúÖ�Ž}}}~~~~�~}}~‘¡~}~~‘‘‘‘‘~~}~¡‘‘‘‘‘¡‘~~¡‘¡¡�~‘¡‘~�‘‘~��‘‘‘~‘‘‘‘¡¡‘��‘¡¡¡¢£¡¡‘¡‘�¡¡¦¦¡¡¡¡¢¡‘¡¡¢¢¡¡¡¦¦¢¢¦¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢êþÿÿÿÿÿꥡ¡¢¦¡¢¢¡¡¢¦£¦£¡£«¦«¦¡¢¢¡¡¡¦«¦¦£¢¢¢£¦¢¦£¡¦««¢¦¦¢£¢¢£¡¢£¦£¦¦¦¡¢¦¦¦¢¥£¦£¢¡¦¦¢¢¢¡¡¡¢¢¢¦¦¢¢¦¥¦¦¥¡¡¢¡¡¡¢¡¡¢¡¡¡¢¢¡¢¡¡¡¡¡¢¡‘‘¡¢¢¡¡¡‘¥¢¡¢¥¡¡‘¡‘¡¥£¡‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘¡¢¡¡¢‘¡¡‘§õÿÿÿÿû¬‘¡¡‘‘‘‘€‘¡¡‘¡‘‘‘‘‘¡¡‘~‘‘‘}~‘‘~}~~}�~‘¡‘‘‘‘}}~€}~‘}‘€€}}}~‘‘‘€}}}}‘‘‘}}}}}€}v}}‘}}}}}}}}}}}}§ÿú§}šõ÷™vv}}}}}}vvv}}}}v}}w}}vp}}vv}}v}vvvvvov}vovv}v|vvvovvvvoovvooooovoov}ovvvvoovoovovvoluluvooouovvuvvoollluvollvuulllluullllluÎýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Bóÿÿÿÿÿ÷_!!!9!9!!!!!!!!! ! ! !! !! !!!  !    !  !      !  !  ! !  ! =p¥íþþþþþþþþþþÿÿÿþÿþÿþÿþÿþÿþÿþÿþæÓ                  ××þüþüþüýüþüýþþüþüÿÿÿüÿýÿÿþÿÿÿûÖŸ~}}}~~~‘‘~~}~‘~~~~~�~~¡‘‘~}~~‘‘‘��‘‘�‘‘‘‘¡¡~‘¡~��‘‘~~‘~‘‘�‘~‘¢¡~‘¡‘‘¡¡¡¡¡¦¡‘‘¡‘‘¡¢¢¡¡¡¢¡‘¡£¢¢¡¢¡‘¢¦¡¢¦¦¥¦¡‘‘¡¡‘¡¥¡¡‘¡¡Ýþÿÿÿÿÿ릣¢¢¢£¢¡¡¢¦«¦££¢£¦««¦¢¦¦£¡¢¦¦¦¦¦¦¡£¦£¦«¦¡¢«¦¢¦¦££¢¦¥¡¢¡¢¦¦¢¡¦¦«¦¦¦¦¦¦¦¢¢¦¢¢¥¢¢¢¡¦¢¢¦¦¢¢¦¦¢¢£¥¢¡¢¡¡¡¦£¡¡¡¡¢¡¥¦¡¡¡¡‘¡¢¢¡¡¦¢¢¢¡¡¢¥¡¢¦¡¡¡¡‘¡¢¥¢¡¡¡¡‘‘‘¡‘¡¢¡‘‘‘¡¥‘¡¢‘¡¥Úþÿÿÿÿõ§¡‘¡¡¡‘‘‘‘‘‘¡¡¡‘‘¡¡‘¡¡‘‘‘‘~}€‘‘~}€}}€‘‘‘€}‘€}}~}}�‘‘‘~}}}~¡‘‘}}}}~‘¡‘}}}}}}}}}~~}‘‘}}}}}v}w}}~ÓÿúÓ}šõúžvvv}}}}vpvvvwv}v|}vv|vvv}}}}vvv}pvvpvvvvvpvvvvvvvpvvvvvvvvvpvoovoovvvvvvvvvlvvvoovllooooouullovvvullollltvouoooullloutlCCCll{ßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇ@=!$=Bóÿÿÿÿÿ÷_!!!!!!!!!9!!!!!!!!! !!! !!!!!!!!!! !    ! !!  !   !  !!!!  ! ! !! 9q¥õþþþþþþþþþýýÿþÿþÿþÿþÿþÿþÿþÿþÿèÓ                  ÓÓüüýýýþýþýþýüþüþþÿÿüÿÿÿÿþÿÿþÿúÖ��~}‘€~~~‘~~~}}~�‘‘‘‘~‘¡‘~~‘‘‘~�‘‘‘‘‘~~~�‘‘~~¡¢¡‘‘¡‘‘¡¡¢‘‘‘¢¡¡¥¡~�¢¢¡‘‘‘‘‘¢¦‘‘¡¡¡‘¡¡¡¡¡¡¡‘¡¢¡‘¡¦¢‘¡¦¢¡¡¡¡¢¦¡¢¦¢¡¡¡¡¢¦¢¢Ýÿÿÿÿÿÿꥣ¡¢¢¢¢¡£¢¡¢¢¡¡¢¢¢¡¡¢¡¡¦¦¡¡¡¢¢¢£¦£¢¡¡¢¦¢¢¦¦¢¡¡¡¡¢¦««¦¦¢¢¦¢¡¢¦¢¡£¡¢¢¢¡¡¡¡¢¦¦¦¦¢¢¡¡¢¦¦¡¡¢¦¢¢¢¢¡¢¦¦¦¡¡¦¦¡¡¡¡¡¡¦¦¢¢¢¦¡‘¥¦¢‘¡¡¡¡¡¡¡¡¡¡¡‘¡¢¥¡¡‘‘¡¡¡¡¡¢¡‘¡‘¡¢¡¢¡‘¡¦¡¡‘‘¥õÿÿÿÿûÚ‘¡‘€€‘‘‘‘‘‘‘€‘‘‘‘‘€~}‘¡‘‘‘‘‘~‘‘~}‘¡‘€~‘€‘‘~}‘‘‘‘‘€~}}}~‘‘‘}}}€}}}}~‘}‘}}}‘‘~}}}‘}}}}}}}~}}}€€}}ÓÿýÓ}™õúž}v}}}}}v}}v}}}}}}w}vwvv|v}vvvvvpv}}}vvpv}vvvvvvvvvvv}vpvooopovvvolvvpvooooolovolovvvlooouvvllulvoltvvlulllClluoovlllllloloollCƒèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Zóÿÿÿÿÿ÷x!!! !!!!!! ! !9!!!! ! ! ! !     ! ! ! !! !!!     !  =}ªíþþþþþþþþþþÿÿÿþÿþþÿþþÿþÿþÿþÿþæÓ               Ó×þýýýýüþüþüþýýýþüÿÿÿÿüÿþÿþÿÿÿûÖ��‘‘‘�~~~~}}}~}~}~‘‘‘‘~‘‘~~~¡¡‘}‘¡‘‘‘~~~‘‘�~‘‘‘¡‘‘¡‘¡¡¡¡‘�¡¢¦¡¢¡�‘‘‘¢‘‘¡‘‘¡¡¡¡¡¦¡‘‘¡‘‘‘¡£¡¡¢¡‘¡¢¢¡¢¦¢¢¡¡¡¡¡¡¡¢££¡¡‘¢¢£¥Ýþÿÿÿÿÿ楡¢¢¡¢££¢¦¢¡¢¢¡¢¢¡¡‘¡¡£¢£¢¢¦¡¡£¢¥«¦¡¢¡¡£¦¦£¢££¡¡¦¦«««¦¦££¡¦«¦¡¡¡¡¢¢¢¢£¡¡¡¦¦¦¦¢¡¡¡¡£¦¥¢¦¦¢¦¦¦¡¡¥¦¡¡¢¥¢¢¡¡¡¡‘¡¢¢¥¡¡¢¢¦¦¥¡¡¥¡‘¡¥¡‘¡¡¡¡¡‘£¡‘‘‘¡¥¡¢¢¢¦¢‘¡¥¦¡¥¢€‘¦¥‘¡Úýÿÿÿÿõ§¡‘¡‘‘‘¡¡~~‘¡¡€‘¡‘‘€}~€‘¡¡¡‘‘‘‘~}€‘‘‘‘‘€~}€€~}€‘‘‘‘}}~}}‘‘‘‘~}}}}‘‘€}}}}}€}‘‘}}€€}}~€}v}€~}}}}}}}§ÿýÓ}˜ëúžw}}}|}}}}}}|}}}}}vvv}w}}}wvvvvvvvw}}vpvvvvvvvvvvvvvvvvvvlopov}}vllvvluvppvollvvvovvvolllovvlllouulovvuoullllluuuvuutlluuouuullll˜èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷_=! ! !!!!!!!!!!!!!!!!! !!!     !!! ! !! !     !!  !    =}¬õþþþþþþþþþþþþÿþÿþÿþÿþÿþÿþÿþÿÿæÓ            Ó×üüþüþýþüþþüþüýþþÿÿþÿÿÿÿÿÿÿþÿúÖ����~€~~~‘~~‘~~‘‘~‘‘~~‘�~�‘‘�¡‘~~�‘¡¡¡¡~~¡¡¡‘‘�‘¡¡¡¡‘‘‘¡‘¡‘‘£¡‘¡�¡¡¡¦¢¡¡�‘¡¡¡¡¡¡¡¡¢¥¡¡¢¡‘‘¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¢¢¢¢¢¡¡¡¡¢¦¦¢£Ýþÿÿÿÿÿꦥ£¦¦¡¡¢¥£¢¡¡¦¦¦¢¦¦¡¦¢¢¡¢¡¡¢¦¦¦¡¡£¦¢£¢¡¢¦¡¢£¦¢¡¢£¢¡¢¢¢¡¢££¦¦¡£¢¡¦¢¢¢¦¦¡¡¦¦¢¡¡¡¢¦¥££¦¢¡¡¡¢¢¡¢£¢¢¦¦¥¢¡¡£¦¦¥¢¦¢¡¡¢¡¡¦¢¢¢¡‘¥¦¡‘¢¦¢‘¥¢¡¢¥¡‘‘¡¢¡¦¦‘‘¡‘¡¢‘‘¡¢‘¡‘‘¡¢‘¥õÿÿÿÿýÚ‘‘‘‘¡¡‘‘‘‘‘‘¡‘~‘¡¡‘‘‘‘‘‘‘‘€‘€~€‘‘‘‘¡‘€~‘‘‘€~‘‘‘~‘‘€‘}}‘¡~}}~}~}~}}}‘}}}€‘‘}}}}‘€}}}}}}€}}}}}}}}}}}žÿûÓ€™èú§}}vw}v}}}vv}}v}}v}}vvv|vvv}}w}wvvvvv}}vv}vvvvvv}v|vpopvvvvvpvpovolvvvooluvoovuoppoooooollvvlolllollvvlloolllllllulllClullllCCClltu›òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!! !!!! ! !! ! !! !  !  !   !!   !   ! !! ! !   ! 9qªíþþþþþþþþþþþÿÿýÿþÿþÿþÿýÿþÿþÿþæÓ                     ÓÙüþüþüþüýüþþýýþüüÿÿþÿüÿüÿþÿÿÿûÖŸ�}}~�‘~}}~‘‘~}~¡¡¡¡‘‘‘‘~~¡‘‘‘‘~~‘‘¡¡‘‘‘‘‘¡¡¡¡‘¡¢¡‘‘‘‘¢¡¡¡‘¡¢‘��¡¡¡¡¢££¡‘¡‘¡¢£¡¡¡¦¦¢‘¡£¡¡‘‘¢¡‘¡¢¢¢¡¡¡¡¡‘¡¢¢¡¢¡¡¡¡¡¢«¥¢£êþÿÿÿÿÿꦢ¡¦«¦¢¢¢¡¡¡¡£¦£¢¢¦¦£££¡¡¡¡¡¦¦«¢¡¦¦¡¡¢¡¡¡¡¦¦«¦£¢¦¢¢¡¡¢¡¢¥¦¦¢¡¦¦¡¡¡¢¢¦¦¡¢¢£¡¡£¦£¦¦¦£¡¡¡¢¢¢¢¡¡¡¢¢¦¦¦¦¡¡¥«¦¦¢¦¦¡¡¡¡¡¢¡¢¢¢¡¢¦¡¡¡¡¢¡¢¢¡‘¡¡‘¡¢¦¢¢¢¡‘¡¡‘¡¡‘‘¡¡‘¡¡¡¥Úþÿÿÿÿõ§¡‘~‘‘‘¡¡‘‘~}‘‘‘~‘¡¡‘¡¡¡‘¡¡‘~~‘€‘‘€‘‘‘€}~}~‘‘‘‘‘}‘‘‘�}‘€‘‘‘~}}€}}}}}}}‘}}~‘‘~‘‘}}‘‘}}}}}}~}}}v}}}}}}}žÿý×}™èûž}}}vv}w}}v}}vvv}}v}}}vwvvvvvvvvvppvv}vvw}}vvvvv}wvvvoovwvvovoolvollovvlloovvvolvullpvvoouvvvvvlovvlllovvlluulllCCllllCClltClClllCCluÆ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=9!!!@óÿÿÿÿÿ÷_!!! !!! !!!!! !!!   !!! !   !!  ! !   !!!!! ! !    !  !  !! !=qšõþþþþþþþþþþþÿþÿýÿþþÿýÿþÿþÿþÿÿæÓ    !          Ó×üüþüþüþýþýüþüþüþÿÿþÿÿÿÿÿÿÿþÿúÖ�¢�~~~~‘‘~‘‘}~‘~~€~‘~~~‘‘‘~~~~~�‘‘‘‘‘~‘‘‘~~��‘‘‘‘~�¡‘‘¡�~‘�‘¢¡‘¡‘‘‘¡‘‘¡¡¡¡‘¡¢¢‘‘¡‘¡¢¡¡‘¡¡¡¢¦¡¡¡¡¡¢¢¡¢¦¢¡¡¢¢¡¡¢¦¢¥¡¡¦¦¢¡Úþÿÿÿÿÿꥡ£¢¢¦¢¦¢¢¢¢¢£¢£¢¢¢¦£¢¢¡¦¢¦¢¢¦¦¡¡¦¦¢¢¦¦¦¢£¦¢£¢¢£¦£¢¦¢¢¡¢¦¦¦¦¢¢¢¦¢¢¢¡£££¢¦¦¢¡¦¦¢¡££¢¢¦¢¢¢¢¦¥¡££¢¦¢¡¢¡¡¦¦¡¢¢¡¡¡¦¦¦¥¡¡¡¡¡¡¢¦¢¢¡‘¡¡¢¥¡‘¡¢¡¥¡¡¢‘‘¡‘£¦‘‘¡‘¡¡‘‘¡¥¬õÿÿÿÿýà¡‘‘‘¡¥¡¡‘‘¡¡¡¡‘¡¡‘‘‘€‘‘‘¡‘€‘‘‘‘€‘‘¡‘‘€‘‘‘€~€~~€€}‘‘‘}~}~€}€‘}}‘‘}}~€‘~€¡}~}}}|}}~}}}~}}}}}}}}}}}}}}}~}§ÿýÓv‘èýÓ}v}v}}}}}vv}}vv}}vv}}wv}}w}}wvvvv}vv}vpvvvov}vppvp}vopvvvvvvvvpovvvpv}oovvooolvvolovlouolltplolvlltlllllluolllllllllullltllllluollCCluÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Yóÿÿÿÿÿ÷]!9!!!!!!!!!! !!! !! !!! ! !!     !   ! !!    !  !!!  =ŽªíþþþþþþþþþþþÿÿýÿýÿþÿþÿþÿþÿþÿþæÓ                     ÓÙüþüþüþüýüþýþüþþüÿÿÿÿþÿýÿþÿÿÿûÖ�¡‘~}}~‘¡¡‘~}~¡¡€~}}~~�‘¡~~‘‘~~~~~~~�‘‘‘‘~~~}‘¡�‘~~‘‘�~‘��~~‘¡¡¡�¡¡¡�¡¡‘¡¢¡‘¡¢¡�‘¡�‘¡¡¡‘¡‘¢¦££¢¢‘¢¦¡¢¢¡¡¢¦¢¡‘¢¢¦¦¡¡¦«¦¢Ýþÿÿÿÿÿꥡ¦¦¡¡¡¦¦¦¦¦¦£¢¦¦££¢¢¡¡¡¢¦¦¦«¦££¢¢¦«®¦¦¦¢¦«¢¡¡¢¦¦¡¡¡¡¡¢¢¦£¢¦¦££¦¦¦¡¡¡¢¢£¢¡£¢¢¦¦¢¢££¦¦£¡¢¦¦¦£¥¢¦¡¡¡¢£¢¦¢¢¦£¡¡¥¦«¦¦¥¡‘‘¡¡¡¦¦¢¥¢¡¡‘¢¦¡¡¡¢¡‘¡‘‘¡‘‘¥¢¢¢¡‘‘‘‘‘¦êþÿÿÿÿõ¬¡‘~‘¡¡£¥¡‘‘¡¥¥¡¡¥¡‘‘‘€€~‘‘‘€~‘¡‘~}}€‘‘‘‘‘‘~‘‘€}‘}~‘‘~�€}}~‘‘€}}‘‘€~~~‘€‘‘~}~~}}}}}}}}}}}}}}v}}‘€~}}}}€}žÿþÙ}™æý×}}}|v}vvvv}}}}v}}|v}}}}}}vv|vvvv}}vv}vvvvvvvvvvvvvvvvvoovvlpvvvvvvvvwvllpvvovlvvpvvvuloolloollovullllltlloulvuullllloullvtlCCCtuulCCluuyÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷_!!;9!!!!!!  !!!!  !!! ! !!  !  ! !! !! !   !!! !!!!! !! ! ! =}ªõþþþþþþþþþþýÿþÿýÿþþÿþÿþÿþÿþÿÿæÓ    !                    Ó×üüþüýüþýýýýüþýüþÿÿüÿþÿÿÿÿÿþÿúÖŸ��~~}~~~�~~~~‘‘�‘‘~~~~�~~‘¡‘~‘‘‘‘‘~~‘¡¡¡‘¡~~¡¢‘¡‘‘¡‘¡‘‘¡¡¡¡¡‘¡¡‘‘¡¢�‘¡¡¡‘‘‘¢¡‘‘¢¦¡¡¢¢¡¡¡‘¡¡¡¡¡¡¢¢¡¡¡¢¡¡¡£¢¢¢¦¦¢¢¡¡¢¢¢£Ýþÿÿÿÿÿꥡ¥¦¢¡¢¦¢¢¢¢¢¢¢¦£¦¥¢¦¢¦¡¢¦¢¦¦¡¡¢¦¡¡¦¦¢¡¢¡£®¢¡£££¦¦¢¦¢¦¦¦¦¦¢¡¢¢¢¢¦«¢¡¦¦¦¦¢¡£¦¦¦¢¡¢¦¢£¢¡¢£¢¢¢¡¢¢¢¢¦¥¢¡¢¡¡¦¡¢¢¢¡¢¡¡¢¢¦¡¡¢¦¢¡¡‘¡¡¡¢¢¢¡¢¥¡¡¡¡¡¢¢¢‘‘¡¡¢¡¡¡¢¦¢§õÿÿÿÿýà¡¡¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘€‘‘~}‘¡‘‘‘}‘‘‘‘€}~‘‘~€~‘‘~}‘‘}€}}}~~}}~}}}}}}}�}€~}}€}}}}}~}}}}}}}}žÿýÚ}�æýÙ}}}}}v}}}vv}}}}}}vv}}vvvvv}}}w}vvpvv}vvvpvvvvvvvpvvvvvlo}}vvppvovpuopvvovvopploluvovoluooolltpolooollvllullllllllovlllCltlllllllltCCllllCuÌúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!9!Bóÿÿÿÿÿ÷_!!!!!!! !!!!! !! !!!!  ! !!! ! !  ! !       !    =qªíþþþþþþþþþþþÿÿýÿýÿýÿþÿýÿýÿþÿþæÓ                   ÓÙüþüþüþüýýýýþüþýüÿÿÿÿþÿþÿþÿÿÿûÖ �~‘~~‘‘�~}}~�‘‘~‘¡‘~~~‘~~‘‘~~‘¢¡¡‘~}‘‘‘¡¢¡‘�¡¡‘¡¡¡¡¡¢¡�¡¥¦¡‘�¡‘‘¡‘¡‘‘¡¢‘‘¡‘¡‘�¡¡£¢¡¢¡‘¡¢¡¡‘‘¡¢¢¦£¢¢£¢¡¡¢¦¦¢£¦¢‘¡¡¡¡¢¡£êþÿÿÿÿÿ릢¢¢¡£¦¢¡¡¡¡¢¢¢¢¡¦¦¢¦¢¦¦¦«¦¦¢¡¡¢¦¦¢££¡¦£¡¡¢¡¢¦¡¡¦¦¦¦¦«¦«¦¦¡¡¡¡¢£¢¦¦£¦¦«¦¢¡¡¦¦¦¦¢¢¢¦¢¡¢¢¢¡¡¡¦¢¢¢¦¦¦¢¡¢¦¦¦£¡¦¦¢¢¡¡¡¡¡¥¡¢¦£¡‘¡¡¡‘‘¢¦¡¡¦¥‘‘‘¡¡¡‘¡‘¡¢¢¢‘‘«­êÿÿÿÿÿõ§‘‘‘¢¡€‘‘‘‘€‘‘‘‘¡¢‘€~‘¡¡‘‘¡¡‘‘¡¡‘‘€€‘¡‘~€‘�}‘¡¡‘€‘‘¡‘€}}}~‘¡‘€‘~¡‘‘‘‘€‘€}}}}}}€‘‘‘}}}}}}~€~‘‘}}~}}}}}}}}}}}žþþà}™àþÚ}}}}}}}}}vpv}}}}}v|vvvpvw|vv}vvvpop}wvvvpv}}vvvvopvvvvlovvvvvvoouvplovvvvvvopvollvollllovvuloulllovulllllllllClluuultlllllllClllllClltlCCClxßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!$9!Z÷ÿÿÿÿÿ÷x!!!!!!!! ! !! !!!!!!!!!!   ! !!!!!!!! !!!  ! !! ! !   ! !! 9}ªõþþþþþþþþþþþÿþÿýÿýÿýÿþÿþÿþÿþÿèÓ      !                     Ó×üüüþüýüþüþüþüýýþÿÿýÿþÿÿÿÿÿþÿúÖŸ�}~~}~�~‘~}~~~‘‘‘~~~~‘¡‘~~~�‘‘¢¡‘‘�‘¡¡‘�‘‘‘‘¡¡‘‘‘‘‘‘‘¢¡‘‘¡¡‘¡¢¡¡¡�‘¡‘¦¢��¢¡¢¢¡¡¡‘¡¡¢¢¡¡¡¢¡‘¡£¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢¢¢¡¦¥£¢¡¡Úþÿÿÿÿÿꦢ¡¡£¦¢¢¢¢¢¦¢¦¢¡¢¦£¢£¦¦¡¢££¢¢¢¢¦¦¢¢££¦«¢¦¥£¦¦¦¡£¦¢££££¡¢¢¢¦¦¢¢¦¦¥¡££¢¢£¦¢¢£¦¢¢¢£¢¢¢¢£«¦££¡¢¦¦¡¢¢¦¢¢¡¡¡¡¢¥¡¢¡¢¢¢¢¢¡¡¢¦¢¢¡¡¥¦¡¡¢¡¡¦¡¡¡¢¢¡¡¦¥¡‘¥¡¡¡¢£‘‘Ôûÿÿÿÿýꥡ¡‘¡¡¡¡¡¡‘‘¡¡‘‘¡¡¡‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘}‘¡‘}‘‘‘}‘‘‘‘‘‘‘}~€~‘‘‘€}}~}‘€~‘}~€~}}‘€}}~~€€}}}€}}}}}~}}}}}}}}}}}}šýþÙ}àþÚ}|}}}|}}}v}}w}vvv}}v}vv|vvv}w}}vwvpvv|wvpvvvvvvvpvvvvvpvvpvvvvoovvvvvvplvvlouvolovvlovooovolloluoovluluoolClooltlllllllllltlCCtlllCCllClCCCCl{ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!9!!!!!!!!!!!!!! !! ! !!!   !   !  !  ! !   !      !  =}ªíþþþþþþþþþþþÿÿýÿýÿýÿýÿþÿþÿþþÿàÓ       !!                  ÓÙüþüýýüþüýýýýýþüüÿÿÿÿþÿþÿýÿÿÿýÖ��~}}}}}~‘~}}~~‘‘~‘‘‘~~~}~~~~�‘¡‘‘¡¡¡¡¡‘‘‘‘¡‘�‘‘~~~~~‘‘¡¡~~¡¡¦¢¡¡¢¡‘‘‘¦¢‘¡¢£¢¦£¡‘¡‘‘¡¦¦¢¡¡¡¡¢¡¡‘‘�‘¡‘¡¢¢¡¡¡¡¢£¦¦£¦¦£¡¡¢Úþÿÿÿÿÿ楡¡¢£¢¢£¦¦¢¦¢¢£¡¦¦¦¦¦¦¦£¡¢¦¢¡¡¦¢¡¢££¡¦«¦¦¦¦¦¦£¢¢¦¢¦¦¢¡¡¢¢¢¢¦¦¢¦««£¢¡¢¢£¦¦¦¦£¢¢¡¢¦¢¢¦¦¦£¦¦£¡££¢¡¡¡¡¡¡¢¢¢¡¡¡¢£¢¡¡¢£¡¡¦¦¦¦¦¦¦¢¡¦¦¢¦¢¡¡¡¢¢¡¥«¦¡¦¢¡£¥¢¢¥àÿÿÿÿÿ÷Ô¡¢¡¡¡¡¡‘‘¢¢¡¡¡¡¡¢¡¡‘¡¥¡‘‘€€‘¡‘~~~‘‘‘‘¡¡‘€‘¡¢¡‘}}}}}€~‘‘�‘‘‘‘~‘‘‘‘}}}}‘}}€€‘¡~}}‘~}~}‘‘€‘}~}}}}}‘€}}|}}v}}}}}}™ýÿàwÙþßvvv}}}}}}}}}}|vpp}}}wv}}}v}vv}}}|}vvvvpoovvpppppvvvvov}vvvvvovoovvovvolllolllvvlloovvvvvoovoollloloollluvvooulClllllltlCClllllllCCCCCCllCCCCClC{áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9===!@óÿÿÿÿÿó]!!!!!!!!!!!!! ! !   ! !!! ! !!   !!! !  ! ! !!! !! !! ! !!! !=}ªõþþþþþþþþþþýÿþÿýÿýÿýÿýÿþÿþÿþÿèÓ      !                           Ó×üüþüýýüþüþüþüþýþÿÿþÿþÿÿÿÿÿÿþûÖ��}}~~~}‘¡~}‘‘‘¡~}~¡‘�~~‘‘‘~‘‘��‘‘‘¡‘‘‘‘‘‘‘¡¡‘‘‘¡‘¡‘�¡‘¡¦¡�‘¡¡¡¡‘‘¡¡‘¡¡¡‘‘¡¢¡¡¡¡¡¡¡‘¢¢¡¡¡¡¢¢¡‘¡¢¡¡¢¦¢‘¡¢¢¢¢¡¡¢¢¢¢££¡¢¦¦Ýþÿÿÿÿÿꦥ£¢¢¢¢¢¢¢£¦¦¢¢¢£¦£££££¢£¦¦¢¦¦¦¡¡¦«¢¡¦¦£¦¦¢£¦¢¡¢¦£«¦¦¦¢¢£¦¦¦¢£££¦¦¢¢¦£¢¡££¢¦£¦¢¡¢¢£¦¦¢¥¡£££££¦¦¢¢¦¦¢¢¢¢¢¢¢¦¡¢¡¡¦¦¡¡¡¡¡£¡¦¡‘¡«¢‘¡‘¡¦¡¢¢‘‘¦¡¢¡‘‘¢¡¥Ôûÿÿÿÿýꥡ¡¡‘¡¢¡¡¡‘‘¡‘‘‘‘‘¡¡‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘~‘‘‘‘‘‘‘}‘‘‘‘‘‘‘}~€€~€~~‘€‘‘}}}~€€~}}~~}~}}‘}‘}}~}}}}~}}}}~}}}€}}}}}}}žýþà}×ÿà}|}}}|}v|}}}|w}}}}}}}}vvv}vvv}vvvvvv}vvvvvwwwvvpvv}vovvvppvvpvoovvvvopvovvvlvvovuoovulouluooolovvlluollllltlullovlllllltllllultlCCllCCtlCCllllCAlƒèüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zòÿÿÿÿÿ÷_!!!!!!!!!!!! !!!!!!! ! !! ! !! !  !!  !! !!   !  !!  ! !  ! =wªíþþþþþþþþþþþÿÿýÿýÿýÿýÿýÿþþÿþÿàÓ                             Ó×üþüýüþüüþüýýýþüüÿÿÿÿþÿþÿýÿÿÿûÖ��}}�€‘‘‘‘~~‘¡‘‘�}~‘‘‘‘¡¡¡‘�‘‘�~‘‘‘¡‘‘�~~‘¡¡¡¡¡‘¡¡��‘¡¡‘¡¡��‘‘¡¢‘�‘‘��‘‘��¡¡¡¡‘¡¢¢¡‘¡‘‘¡¡¢¢¡‘¡¡¢¢¡¢¦¦¢¡¢¦¦¢¡¡¢¢‘¡££¢¢¢£åþÿÿÿÿÿë««¦¢¢¡£¦¡¡¦«¦¦¦£¦£¡¢¢¡¢¦¦«¦£¦«¦¡¡¦«¦¡¡¢¢«¦¢¡¦¢¡¢¢£¦®¦¦£¢¦««¦¢¦¦¦£¢¢¢¢¡¡¡¢¦¢¢¢¢¢¡¡¡¡¢¢¢££¥¢¢¢¢£¦¦¦¦¦¦¢¢¢¡¢¢¡¡¡£¡¢¡¡¡¡‘¡¡¡¡¡¢¦¢¡¡‘¡¦¦¡¡¢¡‘¦¡¡¡‘¡¡¥êÿÿÿÿÿøÔ¢¡‘¡‘¡¡¡‘‘¡‘€€€‘¡‘‘¡‘‘€‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘~€¡¡‘‘‘‘‘~‘¡‘‘€‘~}}}}}~}}}~€}}}}~~}}}}}€}}}}~}~}}~€‘}}}}€‘~‘‘}}‘~}}}}}}šûÿà}×ÿæ}}}}vvvvv}|v}}}}}}vv}}}v}}}}vv}}}vpvvvv}vpv}}}vvvvvvppvpvvovvvvvvvvolvwov}vvpvlvvvolllloooouuovwvuolouolllllllouuluvolllltlCCllCCllCllulCltutlCAClC›ñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zóÿÿÿÿÿ÷]99! !!!! !  !!!!! !!!!!!         !! !!      !!! !=q¥õþþþþþþþþþþýÿþÿýÿþÿýÿýÿýÿþÿþÿèÓ                                       Ó×ýüüþüþüþýüþüþüþþÿÿþÿÿÿÿÿÿÿÿþúÖ��Ž~‘~~�‘‘~~~‘�~~}�‘���‘‘~~~‘¡‘‘‘‘‘¡¡‘‘~�¡¡‘¡‘‘‘¡‘¡‘‘¡¡¡‘‘�¡¡¡‘¡�‘£¡‘‘¡¡¡‘¢¡¡¢‘¡¡¢¡‘¡¡¢¡¡¢¡¢¢¢¢¡¢¡¡¡¢¡¢¡¡£¢¡¢¢¢¡¡¢£¢¢¢¡Ýþÿÿÿÿÿꫦ¦¢¢¡¢«£¡¢££££¢¢¢¢«¦¢¢££¢¢¢¡¦«¢¡¦¦£¢¦¢¦«£¢£«¦¦¦¡£¦¢¢¢££¦£¦¦¢¢¦£¢¢¦¦££¢¢¦¦£¦¦¦¢¡¦¦¦¦¢¢¢¢£¢¦¢¢¢¢¦¦¦¢¡¢¢¢¡¢¢¡££¢¥¢¡¢¦¡‘¢¦¢¢¡¦¡¡¡¦¥¡¡¡¡‘¡‘¡£¢¡¡¢¦Óûÿÿÿÿþ륡¡¡¡¡¡¡¡¢¡‘¡‘¡¡¡¡¡‘‘¡¡‘‘‘‘¡‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘~‘‘‘‘‘€‘‘‘‘€~€€‘‘‘~‘€€}~€~‘‘€~}€}}}}~~€}}}‘}}~}~}}‘}}}}~}}}}}v~‘}˜ûþæ}}Óÿè}}}}}vv}}}}}}v|}v|v}|}}v|vvv||v}}vvv}vvvvvvv}vovvvvvvvvvvvopvpvvpovvpvolvvvlvloouopvvllvloooollpoollluvllollltulllllulClullCllClClllllllCCllCCCCClCCl›ñýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ==!!!Cóÿÿÿÿÿ÷_!!!!!!!!! !!!! ! !  !!!  !! !   ! !      !   !    !!  ! !=qªõþþþþþþþþþþþÿÿýÿþþþÿýÿýÿþÿþÿþæÓ                              Ó×üþüýüüýüüþüýýüüüÿÿþÿüÿþÿýÿÿÿûÖ��}‘‘�~}}~}}~‘‘~~~~~}~‘~~~~~~‘¡‘‘‘‘‘¡‘‘~‘¡¡‘¡¡¡¡‘‘¡¡‘¡¢£¡¡‘¡¡¡¡‘�¡¦¦‘�¡¦¡¡¡‘¡¡‘�¡¡¡¢¢¢¢££¡¡¢¢¢¢¢¢¢¡¡¡¡‘¡¡¢¦£¢¢¢¡¡‘‘¢¢¡¢åþÿÿÿÿÿ榦£¦¦¡¢¦£¢¢¢¡¢¢¢¡¡¢££¢¡¢¡¡¢¢¢£¦¦¢¢¢¢£¦¦¦¦¢¢£«¦¦¦¢¦¦¢¡¡¡¢¢¢¦«¦¢¢¦¢¦¦¦¦¦¦¡¡¡¦¦¦«¦£¦««¦¦¢¡¡¡£¦£¡¡¢¦¢¡¡¡¡¢¥¦¢¡¡¡¢¦¦¢¦¦¦¢¡¢¦¡¡¦¡¡¡¢«¦¢¡‘¡¡¡¡‘¡¡¡¡­êÿÿÿÿÿûÖ££‘‘‘¡¡¡¡¡¡¥¦¢¡¢¢¡¡‘~~‘¡‘¡¡‘‘¡¡‘‘‘‘‘¡‘‘‘~‘¡¢¢‘€‘~}~‘‘‘~}~~€‘‘‘‘‘¡¡‘‘}}‘€~‘‘‘‘}}}~‘}~}~}‘‘}}€‘}}}}~~}}}}}}}~}}}}|}}s™úÿè}vÓÿèvvvv|}}}}}vvvv|}}vv|v||vvvppvvv}}|v€}}}||vvpovv|wpvvvvoppvpoooopolpvvvooopoopvvvlvvvvouvvvulllluooullulluvvlllllllltllClullllllllltllClCCCClCCCCCCCCCCC›óýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@óÿÿÿÿÿ÷] !!!!!!!!!!!!!!!!!  ! !!!  !!!!!   !! !!! !   !!!!! !  !!!  =q¥íþþþþþþþþþþýÿþÿýÿþÿýÿýÿþÿþÿþÿæÓ                              Ó×üüýüþüýýýýýüþüþþÿÿÿÿÿÿÿÿÿÿÿþûÖ���~~‘}~�‘~~~~~~~€‘‘‘~~~�‘¡‘‘��~�¡¡€�¡¡�~¡‘¡‘¡‘¡¡¡¡‘‘‘‘¡¢‘‘¡~‘¢¡¡¡¡¢�¡¢¢‘‘¢¡¡¡¡¡¡¢¡¢¡¡¡¢¡�¢¦¢¡¡¡¢¦¢‘¡¢¢¡¢¡¢£¢¢¡¢¢¢¡¦¦¢¢Úþÿÿÿÿÿꦦ¢¢¢¢¢¢¢¢£¢£¢¢«¦¦¢¢¢¡£¦¢£££¦¢¡¦££¢¦¦¦¦£££¢¦®¦¢¦¡¦«¦¦¦¦¦¢¢¢¢£¢««¢££¢¦¦¢¢¦¢¢¢¦¦£¢£££££¦£¡¢¦¦¥£¢¢¢¢¢¢¦¦¢£¦¦¢¢¢¢¢¦¡¢¡¡¢¡£¦¢¡¢¡¡¡£¦¢£¡¡¡¢¡¢¡¡¢¡¬ûÿÿÿÿýí­¡¡¡‘¡¡¡¢¡¢¡�¡¢¡¡¡¡¡‘‘‘¡¡¡‘‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘}‘‘‘‘‘~€‘‘‘€‘‘~‘‘‘‘‘‘‘}~}~‘‘~€}}€~}‘}}~‘}}‘~}}}}€~}}}~v|}}}}}}}}}™÷ÿè}}Óÿè}v|}}}}v}v}}}}}}vvv}}}}vv|vvvv|}}vpv}vvvpv}vpvvvvvvv}vvvppvvpovvvov}oopvopoovpvuuooouvooopoolllvvlllllluolulllllltolllllllllllllllllCCtlCCCClCCllCCCCACltÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿ÷_!!!!!!!! !!!! !!! ! !  !!! !   !    ! ! ! !    !!  !! ! !=wšõþþþþþþþþþþþÿÿýÿýþþÿýÿýþýþþÿþæÓ      !                  Ó×üþüýüýüýüüþüýþüüÿÿþÿþÿþÿþÿÿÿýÖ��‘~}~}}}‘‘~}}~€‘‘‘¡¡‘~}‘¡¡‘~~}~}�‘�~‘¡¡�‘‘~‘‘‘�¡¢¡‘¡¡‘¡¢¡‘‘‘¡¢¡‘�‘‘‘¢«¡�‘¡¡¡¦£¢£‘¡¡¡¡¡¡‘�¡¢¢¢¢¢¢£¢¡¡¢¦¡¡‘¡¢¡¡¡£¢¢¢¦¦¦¦åþÿÿÿÿÿ릢¡¡¡¢¦¦¦¢¡¢£¢¢««¦£¢¢¢£««£¢¢««¢¦£¦£¦¦¢£¦¦¢¡¦¦£¦«¢£®«®¦¦¦¢¢¦¢¡¢¦¦¢¢¢¢£¦¦¦¦¦¦¡¡¡¡¢¢¡¡¡¢££¢££¢¦¦¦¡¢¢£¦«¦¡¡¡¡¢££¢¢¢¢¦¦¢¡¡¡¦£¢¡¡¢¥¡¡¡¢¦¡¡¢¢¢¦¢­êÿÿÿÿÿûÔ¦¦¡‘‘¡¡¡¦¢¡¡¡‘¡¡‘‘¡¡¡‘‘‘¡¡‘~~�‘‘¡¡‘~‘‘‘‘€‘¡‘‘‘‘‘‘~~~‘‘¡‘‘‘‘€‘‘‘‘¡‘}}}}‘¡‘‘~€~}~‘‘¡‘~}}‘‘~}}€~}}‘}}}|}}€}}}}}}}v}}v}~€}˜õÿè}~Óÿõ}}}||v}}}}}~}}|v}vvvv}}}vvvvv}vv}vp}}}vvvv}}p}vvvvvv}vvvvvvvvvvolvvvvvvvvullollvvvllllullovuvollolollluvllClllllloollotlllltlllltCClCCClCCCCClCllulCAClluCuÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!=Cóÿÿÿÿÿ÷_!!!!!!!! !!!!!!!!!!!  !  ! ! !  !!! !!!   !! ! ! !!  =q’õþþþþþþþþþþþþÿþýÿþÿþÿýÿÿÿþÿþÿèÓ     !                           ××üüýüýüþüþýýýüýüþÿÿþÿÿÿÿÿÿÿÿþúÖ��‘‘~~~~‘€~~~}‘¡~~�‘‘‘‘~�~‘‘‘€�‘‘‘‘‘~‘‘¡‘¡¡‘‘‘¡‘‘‘‘¡¢‘¡¡¡¡¡¡‘¡¡‘¡¡‘¡¡‘¦¢¡¡¡¡‘¡¡¡¡¡¡¢¡¢¡¢¡¡¡¡¡¢¡¡¡¡¡¡¢¦£¡¢¢¢¦¥¡¢¡¢¢¦¢¢¢¢Ýþÿÿÿÿÿꥡ££¢¢¢££¢£¦£¢¢¦¦¦£££¢¢¦¦¢¢¢£££¢¢¦¢¦¦¢£¦«£¡¦¦¢«¦¢£¦£¦¦¢£¢£¦¦¡¡¦¦¦££££¦¢¢¦¦¢¡¦¦¦¦¦¢¦¥£¢£¢£¢£«¦¡¡¦£¦¦££¡¢¡¢¢¡£¡¦¦££¢¡¢¢¡¡¢¡¢¡¡«¢‘¡¡¡¡¡¢¢¢¦¬ûÿÿÿÿý륡¡¡¡‘¡¡¡¡¡¢¡‘¡¡¡¡¡¡¡‘¡‘‘‘‘¡‘‘¡¡¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘~‘‘‘‘‘}}¡‘€~‘‘}}~}‘‘}€}}‘‘}}}~~}}‘}~}}}}~}}}}}~}}}€}}}}}™õÿè}}Óÿè}}|v}}}v|}}}v||}v}}|}v}v|||vv||vvv}vvvvvvvvvvvpvppvvpvvvpo}}lovvvovvvvvovvvlvvovooololovvoooolluulloolllllolllululllullCllCCllullCClllllCCllCCClClCCCCCCCCxßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Zóÿÿÿÿÿ÷_!!!!!!!! !!!!!!!!!!!!! !! ! !  !     !!! !!  !   !!     =qªíþþþþþþþþþþþÿÿþÿýÿýþþÿýþþþÿþþæÓ                               ÓÙüýüýüýüüýüüþüþüüÿÿÿÿþÿþÿþÿÿÿûÕŽ��¡‘~‘‘¡¡‘‘‘€‘‘~}}‘~�‘~~~~‘¡‘‘‘‘�~~¡‘‘‘~��~~‘‘�~~‘¡‘~‘�‘¡¡¡¢¡¡¡‘¡‘¡¡¡£¡‘¡¡¢¡‘‘‘¡¢¡¡¡¢¡¢££¦¢¡¢¡‘¡‘¡¡¢¦¢¢¢£¢£¦¦¢¢¢¦¢¡¡¡¢åþÿÿÿÿÿ릣¢£¦£¢££¦¦¦¢¢¦¦££¦«£¡¢¢£¦®¦££¢¢¢£¡¢££££¦¦¢£¢¢¦¢¡¡¢¢¢£¢¦¦£¦£¢¢¢¢¢£¦¦¦£¢¢¡¢¢£¦««¦£¦¦««¦¢¡¡¡¢¦¦¡¦¦¦¢¢¢¢¡¡¦¦¦¥¡¡¡¢¡¡¡¡¡£¦¢¡¡¡‘¡¦¡‘¡¡¡¡¥¦£­êÿÿÿÿÿûÚ¦¢‘‘‘¡¡¢¡¢¡‘¡¡‘‘‘‘¡¡‘‘‘‘‘¡¡‘¡¡¢¢¢¡¡‘¡¢¡‘¡‘‘¡¡¡¡‘‘‘‘¡¡‘‘‘‘‘‘‘~‘‘€~~~‘¡¡‘€€‘‘~}}‘‘}~}‘~}‘~}‘‘‘~}}}}}€‘€}}}}}}~‘€€‘‘€‘‘~}}}~šõÿè}}Óÿõ‘~}}}}}}}vvv}v}pvv}}}}|v}€}}vvv}pvpvvvppvvvvvppppvpvvvplpvpv}}ooppvovvovvvvvooouvoovvvlluvoloouvvvvuulllloouvotllutlCllllllCCCCCoulllovtltlltlCAClCCCCCACCllCCƒáýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=!!!!Cóÿÿÿÿÿ÷_!!!!!!!!! !  ! !!    ! !  !! !! !!!! !    !  =}ªõþþþþþþþþþþþþÿþýÿýÿþÿýÿÿþÿýÿÿæÓ       !                                      ÓÓüþüýüüýýýüþüþüýþÿÿþÿþÿÿÿÿÿÿþûÖ��~��~~~‘‘‘‘€‘‘€~}�¡‘}~‘€~‘‘‘‘‘~�‘‘¡‘‘‘‘‘¡‘¡¡‘¡‘¡~‘¡‘¡¡¡~¡¡‘¡¡¡¡¡¡�¡¡‘£¡¡¡¡¡¡‘¢¡¢¦‘‘¡¢¡¡¡¡¡¢¢£¢¡¡¡¡¢¢¢¢¡¢¦¢¡¢¦¦¡¡££¢¢¢¢Úþÿÿÿÿÿê«£¢¢££¢¢££££¢¢££¢¢£«£¢¢££««¢¢¦¦¢£¢¢£¦£¦£¢¦¢£££¦£¢£«¦¢¦£££¦¢¢¦¦¢¢£¢¦¦¦¦£¢£££¦£¦¦¢£¢£¦¦¦¢¢¢¢¢¦£¦£¦¦¢¢¢£¢¢¦¦¢¢¡¡¦¦¡¡¢¢¢¢¢¢¢¡¢¡¡¦¡¡¡£¡‘¡¦Ôûÿÿÿÿý륢£¡¡¡‘¡¥¡‘¢¦¡‘¡¡¡‘¡£¡‘‘¡¡�‘¡¡¡¡‘¡‘¡‘‘¡¡¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¡‘€‘~‘~‘~€‘‘‘‘‘‘~~‘~‘‘~€‘€€}~}‘‘€}~‘~‘}}}}}~~}}}}}}}}}}}}~}}}}}}}}™õÿë}}žÿõ�}vv}}}}}}v}}}vvv|v}}vv||}}vv|}vvvvv|ppv}vvvvvpvppvvvvppvvppvvpvpopvoovvvvvovuppvlovpoollvoooopoulloloollluollolllllllltllllllllllCllCllllCClCCAltCCClCCClCCCACCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Y÷ÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!! ! !!    ! ! !      !!  !        !   =}ªíþþþþþþþþþþþÿÿýÿþÿýþþÿýþþþÿýþæÓ        !                                        ÓÙüüüýüþüüýüýüýýüüÿÿÿÿÿÿÿþÿþÿÿýÖ �}}}}~}~~��~~~��}‘‘~}~‘‘~~¡¡‘‘‘‘‘‘¡¡‘‘‘¡¥¢¡¡¡¡¡‘‘~¡¡¡¡‘��‘�¡¡¡‘‘¡¡¡��¡¦¢¡¢¢¡¡¢¡¡¢¡‘¡¡¡¡‘‘¡¡¢£¢¡¢¢£¦£¢¡¡¡¢¦¢¢¦¦£¢¢¢£¦¦¦Ýþÿÿÿÿÿë«£¢¡¡¡¢¢¢¢¢¦£¢¢¡¢¢£««¦«¦£¦¦££¢¦££¢¢¦¦¦¦£¢¢¡¡£«¦¢¢««¦«®«¢£¦££««¦£¦¢£¦««£¦¦¦¦¦¢£¢¡¡¢¦¢¢¢¦¢¢¢¢¢¦£¢£¦£££¡¡¢¦¢¡¦¦£¦£¡¡¢«¦¦¦¢¡¢¡¡£¦¦¢¡¦¦¡¥êÿÿÿÿÿûÚ¡‘¡¥£££¡¢¢¡‘¢¦¢¡‘‘‘‘¡¢¡‘‘¡¢‘‘¡‘‘¡‘~~~‘¡¡¡‘¡‘‘¡‘‘~‘‘}~~~~‘‘‘‘‘~‘¡‘~}~~€‘~}�}}~€¡¡‘}}€‘‘}‘‘‘~}}}}‘‘~}}‘}}}‘‘‘}}v}}}}}}}}}v}}||˜èÿë}}§þ÷‘}}}}}}vvv}}v}}}v}}|vvvvv}|vvvvvvv}}|vv}}|vvvpvvvvv|vvvv}vvopvvvvpvoploooolooppooluvvovvouooululllvuouuolulloollllCllllllullvulCCClCCltCllllClCClCCCCCCCCtCCCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ==!=$Bóÿÿÿÿÿ÷_!!9!!! !  !!! !!!!!!! !!!!!!  !! ! !  ! !!!!!!! !  !!  ! =}ªíþþþþþþþþþýþþÿþþþýÿýÿýÿÿþÿþÿÿæÓ                                         ÓÓüüþüþüýüýýüþüþüþÿÿþÿÿþÿÿÿÿÿÿúÖ��}~~~~��‘~€‘‘~~~}�‘‘‘‘~�~‘‘‘~�‘‘‘‘‘¡¡‘~‘¢¡¡¡‘‘¡¡‘‘¡¡‘�¡‘‘‘¡¡¡¡¡‘¡¡¡‘¡¡¢¡¡¢¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¢¢¡¡¡¢¢¢¢¢¢¡¡¡££¢¢¢¢£¦¢¢¢¢¦£åþÿÿÿÿÿꦥ££¢¡¢££¢£¦£¢¢¢¢£££££¦¦£¢¢¦«¢¢£££¢¦«£££¦£¢£¦¦«¦¢£££¦¦««¢££££¦¢¢¦££¦¦¦£¢££¦¦¢¢£¢£¦£¢¢¢£¦£¦¥¢££¢¢£¦¦¥£¡¢«¦¡¢¦¥¦¦¡¡£¦¢¢¥¡¢«¢¡¢¢¢¢¢¢¥Ôöÿÿÿÿþõ¦¡¡¡¡¢¡¡¡¡¡¡¡‘¡¥¡¡¡‘¡‘¡£¡‘¡¡¡‘¡‘¡¡¡‘¡~~¡¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘~‘‘‘~‘~~‘‘‘‘¡‘~€}~~‘‘‘~~}~‘‘}‘~}€‘}}~‘~}}~}~}‘~}‘}}}}}€}}}~}}}}}}}�ñÿè}}žýõ™}w}}}}v}}}|v}|}}}}vv|v|vv||vv|}}p|v|vvvvv}vvvvvpvvvvvvvpvppppvvpvppooppplpvppolovpoolvvvlvlllluouoololuolluluollllllllltlCltlllllCClClllCtlCCCCClClCCCAClCAClCuþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!Y÷ÿÿÿÿÿ÷_!!!!! !! !!!!!  ! !!!!! ! !!!  !    !  !!!!!  !   =}ªõþþþþþþþþýþþÿÿþÿþÿýÿþÿýþþÿþþýæÓ       !                                Ó×þüüüüýüüýüýüüþüüÿÿÿÿÿþÿÿþÿÿÿûÕ��~}}}}}}}‘‘‘¡‘‘‘~‘‘¡‘‘‘~�‘‘‘~‘‘‘~~‘‘‘¡‘~¢¡¡‘~~‘¡¡��¡¡~‘¡¡¡¢¡‘¡¡‘¡¡¡‘¢¡‘‘‘¡¡‘¡¡¡¡¡¢¢¢¢¦¦¢¢£¦¢¡¡¡¢¢¡¡¡¢¢¢¢£¢¡¡¡¡¢¢¢¡¡¡¡¢Ýþÿÿÿÿÿ릦£££¢¦¦¢¢¢¦¦£¢¢£¦¢¢£¦¢¡¢¢£®¦¢¢¦¦¦££££¢££¢£«®£¦¦£££¦¦¢£¦£££££¦¦££¦¦¢¢£¢£¦£¦«¦¦¦¦¦£¢¢¢£¦««««¢¢¡¡¢¢¢¢£¦£¢¦¦£¢¢¢¢¦£¢¦¦¢¡¡¡¦¦£¢¡¡¡¢¦­êþÿÿÿÿûꦡ¡¡¦¦¡‘‘‘¡‘¡¡‘‘¡¡‘¡¢£‘‘¡‘‘¡¡¡¡£¢¡¡¡‘¡‘‘¡¡‘~‘‘~~~‘‘¡¡¡¡‘€‘‘¡‘~~‘‘}~~‘‘‘‘¡‘€‘‘~}‘€‘‘}‘‘}~‘~~}}}‘‘}}}}€‘€€‘‘€}}}~}}‘‘‘}}}}}}}}~}}‘èÿèv|žý÷™}}vv}vv|}}v}}||}}}vv}}}}vv}}vvvwvvvvvppvvvvv|}vpvvppvvpoppvvpvvvolopvoplovvppvoopvvvpoovppvvlllloolollllollllvvollooolllCCClCltClCCCCCCllltCllCltoClCCCCCCCCCCÇÿÿÿüñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$!!@óÿÿÿÿÿ÷x!!!!!!!!!!!!!!!  !! ! !  ! ! ! ! !!!! !!!!!!!!  !!!  =q¥íþþþþþþþþþýþþÿþþýÿþþþþÿþþÿþÿÿæ×     !                                           Ó×üüþüþüýüþüýýüþüþÿÿýÿþÿÿÿÿÿÿþýÖŸ‘Ž}~€~~~~~�‘‘‘‘‘‘~‘‘~‘¡‘‘‘‘~‘‘‘¡~~¡‘‘‘‘‘¡¡¡‘�‘¡‘¡‘‘‘‘‘¡¡¡~¡¢¡~¡‘¡¡¡¡¢‘‘¡‘£¦‘¡¡¡¡¡¢£¡¡¦£¡¡¢¡¢£¢¡¢¢¢¡¢¦¢¡¢¢¡¢¢££¡¢¢¡¦¢¢¡Úþÿÿÿÿÿꫦ¥¢£¦£¦¢¢¢¢£¦£¢£¦£¡¢«¦¢¢¢£££¦¦££¦®£¢£¦£¢¦«¦®¦¢¦££¦¦«£¢¢£¦¦¦£¦¦£¢£¦¦££££££¦¦££¦¦£¢¢¢££££¦®«¦£¡¢¦£¡¢¦¦¢¢££££¢¢£¦¢¡¢¢¢¢¢¦¢¡¢¢¡¡¡¥Üöÿÿÿÿþí¨¢¦¡¡¡¡£¡¡¡¡¢¡‘¡‘¡¡¡¡¡¦¡‘‘¡¡‘‘¡¡¡¡¡¡¢¡‘‘‘‘¡¡‘‘¡¡‘�~‘‘¡‘‘¡‘‘‘‘‘‘}‘¡‘~~‘‘�‘‘‘‘~‘‘}~~~‘‘}~~~‘‘~~~}}¡‘}}}}‘‘}~‘‘}}}}‘€}}}~~}}}}}}}}}}™èÿè|}žúú¥}}}}}}v}}|}|}}}v}|v|}}}v||}}vpv}vpv}vpvvvvvvv|vpvvvvvpppppvvpvvpoppvvpopovvvlvpoooovvovolvvvlllovolllllluulllluullltoolClllllllCCtlClClCllllllCCCCCllCllCCCCluúÿÿþ��ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@!!Yóÿÿÿÿÿ÷_!9!!!!!!!!!!!! !!! !!!! !!!! !!  !!  !!     !  ! !=q¥õþþþþþþþýýþþÿÿýÿþþÿþÿýÿþþÿþþþæÓ     !                                   ÓÙüüüüüýüýüýüþüüüüÿÿÿÿÿÿþÿþÿÿÿûÖ¢‘~}‘¡¡‘‘‘‘‘‘‘~~~‘‘~~~‘¡¢¡‘‘‘‘�‘‘~�¡¡~~~~‘‘‘‘‘‘‘¡‘‘¡¡‘‘¡¦‘�‘¢‘‘¡¢¡¡¢¢¡¡¡¡‘¡¢¡¡¡¢¡¡¢£¡¡¡¡¡¡¢¡¡¡¢¡¡¡¡¡¢¦¢¡¡¡¢£¦¦¦£¢¢¦¦¦££êþÿÿÿÿÿ榦¦¢¦¦£¢¢¢¦¦£¦¦¦¦«¦¢¢«®¦£££¢¢£¦£¢£«£¢««¦£«¦£¦¦¢£¢££¦¦£¢¢¢¢£¦¦£¢¢¢¢£®«¦£¢¢¡¢£¦££££¢¢¢£¢¢¡£««¦¢¡¦«£¢¢¢¢¡¡¡¡¢¢¢¢¡¡¡¡¡¡¦£¢¡¡¡¡¡¢¡¦êþÿÿÿÿûꦡ¡¡¡¢¡‘‘‘¡¡¡¢¡‘¡¡¢¡‘¡¢¢¡‘‘¡¡‘‘‘‘¡‘‘‘¡¦‘‘‘‘‘‘¡¡¥¢¡‘‘‘‘‘‘¡‘‘�‘‘‘~~‘¡¡‘‘~~}~€~~‘‘‘~~�}}~}}}}‘‘‘~~~~~}}‘~�‘}}}~}}‘€}‘‘}}|v}}|}}‘}}}}}‘èÿñ}}§ûúž}}~}~~}}}}vv}}}}|}vvv}v}vvv}vv|}}vvvpv}|pppppvpvpopvppvvvplopopopvvvvpvppovpooovvvlllollllvollolovlouvullolluolllllllvvlllooouuCCluoullltlCCCCllCCClultCCCCCC�ÿÿÿÌCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!==!Cóÿÿÿÿÿ÷]!!!!!!!!!! !! !! !!   ! !!!! ! ! !!    ! !  !q¥íþþþþþþýþþýýþÿþþþÿþþþýÿþþÿþÿÿæÓ       !     !                                         Ó×üüþüüþüýüüýüüýþþÿÿÿþÿþÿÿÿÿÿÿúÖ ��~€~‘‘‘�‘‘‘~~‘~‘‘}~‘‘¡¡¡¡‘��~~‘‘‘¡‘�‘¡‘‘‘~‘¡¡¡¡‘�¡¡‘�¡¦¡~¡¢¡�¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¢¢¡£¢¡¡¦¢¡¡¡¡£££¦£¢¢¢£¢£¦åþÿÿÿÿÿꦦ¦£££¢¢¢¢£¦££¦¦¦¦£¢¢¦¦££¦¦¢¢¦¦¢¢¦«£¢«®¦¦¦¢££¦«£¢££¦££¦£££¢£¦¦¢¢£££¦¦££¢£¦¢¢£££¦£¢¢££¢¢¢£«¦£¢¢£¦££££¢¡¡¢¢¢¢¢¢¢¡¢¢¢¢¦¦¢¢¡¡¡¡¢­õÿÿÿÿþö­¦¡¢‘¡¢¢¡¡¡‘¢¦¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘¢¢‘¡‘‘‘‘¡‘¡¡¡‘‘‘‘‘¡¡¡¡‘~‘¡‘�‘‘‘‘‘‘€~~~~€‘~‘‘€~}~}‘‘}}‘‘€‘€‘}}~‘~‘~}}‘~}}‘‘}~‘�}}}}}}}}}‘}|}€}èÿõ}}žúû§|}}}}}}}}}v}}}}}v|}v}}v}v|}}}vvp|vv}vp|vvppvpvvvvopvvpvvvplvvpvopppvvvvvvooploppvppollplllooppllooooooloolloolloollllvlCloltlollllltlltllCCllCCCCCCllltlCCACC÷ÿÿõZlýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!!Bóÿÿÿÿÿ÷_!!!!!=!!!!!!!! !!!! !  ! ! !! !  !     !! !! ! !qªíþþþþþþþýýþþÿÿýÿýþþÿþÿþÿýÿþþþæÓ                                                    ÓÙüüüüüüüþüýüýýüüüÿÿÿÿÿÿÿþÿÿÿÿþÖ��~€~~}‘~~~}}~¡¡‘‘‘‘‘‘~~~‘‘‘‘~‘‘‘�‘¡‘~�¢¡‘‘‘¡¡¡¡¡¡‘¡¦¡€¡¢¡¡‘¢¢‘¡¢¢¡‘‘‘¡¡¡¢¢¡‘¡‘¡¡¡¡¡¡¡¡¦¦¢¡¡¡¡£¦£¦¢¡¡££¢¢¡¡¡¡¡¡¡¢¢¡¢¢¦¦åþÿÿÿÿÿ뫦¢¢££¦«¦¢¢¦¦¢¡¢¢£¦££¦££¦¦¦¢£«®£¡£¦¦¦®®££¢¡£¢¢¦££«¦££¦¦««¦¡¢¢££¦¦££££¦¦££¦¦£££££££¦¦¦£¦¢¢£¢£¦¢¢¦«¦£¢¢¡£¦¦££¢££¦«¦¦¢¢££££¢¡­êþÿÿÿÿûড¢¡¢¡¡¦¢¡¢¢¢¦¦¡‘¡¢¦¡¡¡¡¡‘‘¡¢¥¦¡¢¦¡¢¢¡‘¡¡¡¡¡¡¡¡‘¡¡‘‘‘¡¡‘~~‘‘‘‘‘~‘¢¡‘‘~~‘‘¡‘‘~~~‘‘~}~‘~‘‘¡‘‘~~~€~~}‘}}}~�}}}~‘€}~~}}}}}}€}�~}}}~}}}~�vàÿò|vš÷ýÇvv|vp}}}vrpvvv}}vvv}}}|pppvv}}vvvv}}}vpv}vvvv|v|}vvvvvvvvvvvvpvpppoppopopvlolopopooollvvvolloolouvolllolloulllllllCCCllClllloClCllCllCCCCClttltlClCCCCCCCCCC”ÿÿÿ›CÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!Zóÿÿÿÿÿ÷]!!!!99!! ! ! !! !!!!!! !! !!   !  ! !!  ! ! ! !! !=}ªõþþþþþýýþþýýÿþÿýÿþþþþþýÿþýÿþÿæÓ                                                                ÓÓüüüþüþüüüþüüýüþüÿÿÿþÿþÿÿÿÿþÿûÖ�Ž}�‘~~~�~~‘~~‘‘‘‘‘‘�~~~�~‘‘‘~�‘€‘‘‘‘‘‘¡¡‘�¡¡¡¡¡¡¡¡¡¢¡‘‘‘¡¢¡¡¡�‘¡¡¡‘‘‘¢¡‘¡¢¡¡¡¡‘¢¦¡¡¡‘¡¦¢¡¡¡¡¡¡¦£¢¢¡¡¡¢¢¢¡¡¡¢££¡¡¡¢£¦¦¦êþÿÿÿÿÿꫦ¢¢£¢¦¦¦¢¢¦¦¡¢¢¢¦£¢£«¦¢£¦¦¢£®«¦£¢£¦¦¦¦£«¢¢£¢£££¦¦«¦£¦££®¦¢££¦£¦£¢£¢¦«¦££¦¦££££¦¢¡¦®¦¦££¢£££££¢«¦¦£¢¢¢£¦¦¢¡¢£¦¦££¦¦¡¢¢££¥Ôöÿÿÿÿþö­¡¢¡¡£¢¡¢¢¡¡££¡¢¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¦¡¢¢¢¡¡¡‘‘¡‘¡¢¡¡‘‘¡¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘}~‘‘}}‘€~~‘‘�~‘€~}�~~‘}}}~}}}}}‘~€�~}}}}}}~~}}}}}}}}~}}}àÿô}}™õýÓv|vp}|}}vvvv}}}|vp}|}|vv}vvv}|vv||v|vvpv|vvpvvvpv}vvvpvvp}}ppvppvoopvoopoppllovpoollopvvoolopplopplllolllllllluplllCllllClllllCllllClllClCCllClllCCCCCCClCAlèÿÿßCl÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9=!!Yõÿÿÿÿÿ÷_!!!!!!!! ! !!!!!!! ! !!! !!  !! !  !!   ! ! !!!! !    ! !=}ªíþþþþýþþýýþþÿÿýþþþÿþÿþÿýÿýÿþþæÓ                                         ÓÙüýüüüüþüýüýüýüüüÿÿÿÿÿÿþÿÿÿÿÿûÕ��~}~‘‘~}~€‘‘~~‘�~~€‘‘¡‘~‘~‘‘€¡‘‘‘‘‘‘~~‘¡‘‘¡¡~~€‘�‘‘¡‘‘‘~¡¢¡¡‘�‘¡‘‘¡¡¡£¢¡‘‘¢¡££¡¢¦¡¡¡¡¢¡¡¡¡¦¢¡¡¡¢¢¢¦¦££¢¡¡¢£¡¢£¥¦£¢¢£££Ýþÿÿÿÿÿꥦ¢¢¢£¦®¦¢¦«¦¦¦££«¦£¦®«¢¢£¦¦¢¦¦£¦«¢££¢¢¢¦«£«£¦««¦¢¦£££¢¦±®¦«««¦«£££¢£££¦¦¦££££¦¦¦¢£¦£¢¢¢¦£¢¡¡¡¢££¢££¦¦¢££¢¡¢¡¢£¢¡¡¢¡¡¡¡¥Ýýÿÿÿÿýঢ¡¡‘¡£¡¡¡¡¢¥¢¡¡¡¡¢¢¦¡¡‘¡¡¢¡¡¡‘‘¡¡¡¡¡¡¡¡¡‘‘‘‘¡¡‘¡¡‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘�}~‘‘~€‘~¡‘‘‘‘‘~~‘¡‘�‘‘€�‘�}}‘‘~‘‘}~‘�}~‘}~~}}~~}}}~}}}‘‘}}}}}�}}}~}}}}àÿõ~~šõþÚ}}}}}}}}v}}~}}v}vvv}||vv}}|vvv|vvvvvw}}vvvvpv}vop}vvvvvppvvpppoppppvvppooovvpvvvvplpolooopoovvlloolloovoClllllovlluluoououllCClCClllCCCloCCllCCCCCllCCCACCCƒÿÿúxC›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!@óÿÿÿÿÿ÷_!!!! !!!!!!!!!! !!!9!!! ! !   ! ! ! ! !! !   =p¥õþþþýþýýþþýþþÿþýÿýþþþþýÿþÿþþÿèÓ           !                                                   Ó×üüüýüüüüüþüüýüýþÿÿþÿþÿÿÿÿþÿÿúÖ��Ž}~‘‘}~~�‘‘~‘¡‘~��~‘‘‘‘‘‘~‘�‘‘‘‘‘¡‘‘~‘¡‘¡¡¡~~¡¡‘¡‘~¡¡‘‘¡¡¡‘‘‘¡¡‘‘¡¡¡¡¡¡‘¡¡£¦¡¡¡¢¡¡¡¢¡¢¡¡¡££¡¡¡¢¦¦¦¢¢£¢¡¡¡¢¢¢¢¦¦¢¢¢¢£¢åþÿÿÿÿÿꦣ££££¦¦¦£¦¦¦¦¦¢£¦¦¦¦««¢¢¦¦¦¦££¢£¦¢¦«¢£¢¢¦¦««¦®¦¢¢®¦£¦¢£®«£¦««¦¦£££¢£¦¢¢¦¦¦¦¦¦£¦¦¢£¢£¢¢¦¦£¢¢¢¢¢¢¢¢£¦¦£¢£¦¡¢¡¡¢£¢¢¡¡¢¢¡¥àþÿÿÿÿøÜ¢¡¡¡¡¡¢¢¡¡¡¢¡¦¦¡‘¡¡¡¡¢¡¡¡¡¡¡‘¡¦¡�¡¡¡¢¡¡¡‘‘¡¡‘‘¡¡¡¡¡¡‘‘¡‘‘‘‘¡¡¡‘~‘‘~~�‘‘‘�~‘‘‘‘‘‘‘¡‘~‘‘‘~�‘‘~}‘‘‘‘�‘~~}~‘‘~‘}}}}}~}~}~~}}}‘~}}}}}€�~}}}}}}Ùÿõ}}™õþà}}}}v|}}}}w}‘}|vvp}vpvv|}}}}vv|}vvvpv}|vv}vov}vpvvvpv}vpvvvvvvvppoovopopvpvvppvvvoloooppovopoooooolollvllllulloololllllllllClllCClllCClltlCllCCCCCCCCClCCCCñÿÿÆCtòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$==9@÷ÿÿÿÿÿ÷_!!!!!! !!!!!!!!!!! !!! !!!!!! ! !  ! ! !!!  !  !q¥íþþþþýþþýýþþÿÿýÿýÿýÿþÿþÿýþþÿýàÓ                                             Ó×üüýüþüüþüüýýüýüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��}}‘‘~~‘€‘‘~~�‘~}~‘‘~}}‘¡‘�‘‘€¡¡¡‘¡¡~‘‘‘��‘¡‘�¡£¢¢‘~‘¢¡¡‘¡¡¡¢¢¢¡¡‘¡¢¡‘¡¡¢¡¡¦¡¡¡¢¢¡¡¡¢¢¡¡¡£¢¡¡£¢¢¢¡¢£¢¡¡¢¢¢£¦¦£¦¦¢¢¢¢¡¢Ýþÿÿÿÿÿ릣£¢£¡¡¢¢¢¢¢¢£¢¡¢¦¦¦££¦¢¦¦££££¦£¢¢¡¦®¦«®¢¢¢¢¦¦¦£¡¦®££«¢¢££¢¢££££££££¦«£¢£¢£¦¦«¦££¦«¦¢¢£¦¦¦£¢£¦¦££¦¢¢¢¡¢£¦¦£¦£¦¦¦¦£££¢¦êÿÿÿÿÿõ§¦£¡¢£¢¡¡¢¢¢¡‘¢¦¢¡¢£¡¡‘¡¡¡¢¢¡‘‘¡¢‘�‘¡¡¡¡¡¡‘‘¡¡‘¡¡‘‘‘¡¡¡‘‘¢¡‘¡‘¡‘�‘¡¡‘‘¡¡‘€‘‘‘‘‘~�~}‘‘~}‘‘}}~‘}~‘‘�}}}~}~}‘‘‘‘~‘‘}€‘}}}~~}~‘}}~}}}}}}}}}}}}}‘Ùÿò}v�èÿæ}}}}p}}}}}pv}}v}}}}}vv}v|v}}vpv|v}vp|vvvv}}pv}|ppvvppvvvpvpvvvvv}pppvvvvvvvooooovvpplloollooolooooooolloollolllllolCllllllllCllCCulCClCllCCllCCCCCCACllCCC{ÿÿòCC˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_ !=!!!  !!! !! !   ! ! !!  ! ! !   ! ! !!    !  !  !9ŽªõþþýýþýýþþýþþÿþþýÿþþþþþýÿþÿýÿèÓ                                                         ÓÓüüüüüüüüüüþüþüþüÿÿÿÿþÿÿþÿÿÿÿúÖ��}}‘¡�~‘‘~~‘‘‘€~~~~~~~‘‘‘‘~‘‘�¡¡‘‘¡¡��‘�‘‘‘¡¡‘¡¡¡¡¡‘¡£¡¡‘‘¡£¢¡¡¡¡‘¡¦¡‘¡¡¡¢¡¢¡¡¡¢¢¡¡¡¢¢¡¡¡¢¢¢¦£¢¢¡¢¦¦£¢¡££¢¡£¦¦£¢¦¢¢¢¢¡Ýþÿÿÿÿÿꦥ££¢¢¡¢££££¢¢¢£££¦££££¦¦¦¢£££¦¢¢¢££®««¦£¢¢£¦«®£¡¦¦££¦¦£¢¢¦¦¢£¢¢££££¦¦££¢¢£¦¦¦£££«®¦£££¢£¦¦££¦¦¢¢¦£¡¡£¢¢¦¦£¦¦££¢£££¢­íÿÿÿÿýꥡ¢¦¢¢¢¢¡¡¢¢£¡¡¢¢¡¡££¡‘¡¡¡¡¢¢¡‘¡¡¢¡‘‘‘¡¢¡‘‘¡‘¡¡¡¡¡‘¡¡‘¡¡‘¡¡¡‘¡¡‘¡€�‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘~~‘‘‘~~‘}}¡‘~~‘‘€~}~}�}}~‘‘‘‘‘~}�~}}~}}~}~}~~}}}}}~}}}}}}}‘Ùÿõ}wèÿè~}}}}}}}}|p}}|}}v}}}}vvvvv}}}}vv|v|vv}vvv|}vv}vppvvvpvvvvpvvpppv}povvvvvvvvoloppvvpollpollvplllloooovolllllolllllllllollCllllllCCuollllCClCClCCCCCCCCCCCClèÿÿƒClòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zóÿÿÿÿÿ÷]!!!!!!!! !!!! !! !!  !  !!  !!    ! ! !   !  ! !=}ªíþþþþýþþýýþþÿÿýþÿýþÿýÿýÿýþþÿýæÓ          !  !                                                              Ó×þüüýüþüþüüüüüüüüÿþÿÿÿÿÿÿþÿÿÿýÖ �~}��}~~�~}~‘‘‘‘‘‘~~‘‘¡¡‘¡‘‘€¡¡‘~~‘‘~‘‘‘¡¢¡‘�~‘‘‘‘‘‘¢¥¡¡¡‘‘¡¡‘¡¡¡¡‘¦¢¡¢¥¢¡‘¡¡¡¡¡¡¡¢¢£¡¡¢¡¡¢¢¢¡¡¡¡¡£¢¢¢¢¢¢¢¡¡¦¦¢¢¦¦££¡£åþÿÿÿÿÿ뫦¢£¡£¦¢¢££££¢¦¦¦££¢¢¢¢£££¦¦«¦«¦¦®®¦¦£¦£¦¦£«®£««££¦«¦££«««®«££££££¦«¦¦¦««£££¢£¢¢¢££¦£££¢¢¢£¢£¦¦¢¡¦¦¢¢¦¦¦¢¡¢£¢¢¢¢¢¢¡¢êÿÿÿÿûݦ¦¦¦£¢¢¢¢‘‘¡¡¢¢¡¡‘¡¡¡‘¡¡¡¡¡¡¡‘¡¡¢¢¢¢¢¢¡¢¢¡�‘¡¢¡‘‘¡‘‘¡‘‘‘‘¡¡¡~‘‘‘¡¡¡‘‘‘¡‘‘¡¡‘€‘~‘~~€€‘¡‘‘‘¡‘~}‘‘~~~}~~‘‘~‘~}}}}}}~~}}‘‘}}}}}}‘€~~}}�}}}}}}}}w}‘×ÿõ~}�æÿè}}p}}v}}}}vvs}}}wpp|v}}p}}||v}pvvvvp|}|pppvvpv}pv|vpvvvvvvppvvo}wplvvppolopplpoooolvov}volvvolppooolovllooolllloullClllClClllllCCllCCllCCllllClCCCCllCllC{þÿáC>›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷_$!!!!!!!!!!!!!  !! !!!!!! !!!!      !    !  !9p¥íþýýýþýýþþýþþÿþþýÿýþýÿþýÿþÿýÿæÓ                                                            ÓÓüüüüüüüüüüþüýüþþÿÿÿÿþÿÿÿÿÿÿÿûÖ ‘~~}~~�~~~}~‘�~‘‘‘�‘‘‘‘‘¡‘‘~~‘‘‘~�¡‘‘‘‘¡¡¡¡‘~�¡¡�~¡¡¡¢¡¡¡~¡¢¡¡‘¢£‘¡¢¡¡¢¦¢¡‘¡¡¡¡¡¡¡¡££¡¡¢¢¡¡¢¡¡¡¡¡¡¢¢¢¢¢¢¢¢¡¢¦¦££¦¦¦£¢¢êþÿÿÿÿÿꫦ¢¡¡¦¦¢¢¦¦££¦¦¦¦¦£¡¢£¢£¦££¦®¦£®®«¦®¦¦«££¦£¦®¦£¦«¦¦¦¦££««««£¦£««££«®««£¦«¦¦£££¢¡£¦¦¦¢¢£¢¢¦£¡£«¦¢¢¢¢¦¦£¦¦¦¡¢¢¢¡¢££¢¡­ûÿÿÿíÔ«£££¦¦¦¢¡¢¡¡¡¡¢¡£¢‘¡¡¡‘‘¢¢¡¡¡‘¡‘¡¢¡¢¢¢¢¡¡¡‘‘‘¡¡¡‘¡¡‘¡‘‘‘‘¡¡‘�‘‘‘‘‘¡¡‘‘¡‘‘‘¡¡‘‘~‘‘‘~‘‘‘‘‘‘‘‘‘‘~~‘€€~~~‘‘‘}}‘‘}}}}}~}�}‘‘~~}}}~‘~}}}}~}}}}}}}}}}‘Óÿõ~}™æÿè}}}p}}}wvppvp}}vvv}}}v}}}ppv|v}pppvv}vvvpvppvvvv}vpppvvvvppvppvpvpvpovllooopooollpvov}vllvpopvpooooollvoooolCloollllllllllClulllCCllClCCClCCCllCClClClCCáÿý{CCóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Yóÿÿÿÿÿ÷x!!!!!!!!!!!!! !!!!!  !!!! !!!!!!! !!     ! ! !!   ! !!!!!!   $qšíþþþþýþþýýþþÿÿýþþþÿþÿýþÿþþþÿýæÓ                                                                       ÓÙüüüüþüüþüüüüþüüüÿÿÿÿÿþÿÿþÿÿÿýÖŸ¡‘‘~}~‘€~�~‘‘‘‘‘‘~‘‘¡¡���~�‘€‘�‘‘~¡¡¡‘‘‘�~‘¡¡‘¡¡¡€‘¡¡¡¡‘¡‘‘£¡‘¡¡¡~‘¡¡¡¡¡¡¡¡¢¡¢¢¡¢¡¡£¢¡¡¢¢£¡¢¢¢¢¡¡¢£¢¢¢¢¢¡¢¡¡¢¢¢¡¢¢££¡¢Ýþÿÿÿÿÿꦦ¦£¦¦£¢¦¦¢¦¦¦¦¦¦¦£¢£££¦£¦¦®®¢¢¦¦¦£¢¢¦«¢¦£¢¦¦£¢¢£¦¦«««¦¢£¦¢£«¦®«¢£«££¦¢¢£«¦£££££¦¦£¦¦£££¦¦£¢££¢¢£¦¦¦£¢¢££¢¡¢¢¢¢¢¦¢¢­ûÿÿû§¢¢¡¡¢¢¡¢£¢£¡¢¡¡¡¢¦¦¢¢¢¥¢¡¢¢¡¢¡‘¢¡¡¡¡¡¡¢¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘‘‘¡‘‘€‘‘‘¡¡¡¡‘~�‘�‘‘~‘¡‘~‘‘~~~~~}~¡¡‘~‘‘~~~‘~‘‘~~‘}}‘‘‘‘€~~~~}~}}~}}}}}}}}~}}}}}}}}}}Óÿè}}‘àÿõ}}}}p}}}}}}}}}vv|}v|}vv}}}vvvvvvp}|}}vvpppvv}vpp|vpvppvpppvpoopopvpov}popvvvvpplvvolovvlloooooooloooooolllvulupllllootllllllloolCCllClCCloCllCClluCCCCC{ýÿÎCC›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Aóÿÿÿÿÿ÷_!!!! !!!! ! !!! !! !!!! !!! !  !! !!   !=}ªíþýýýþýýþþýþþÿýÿþþþþýÿýþýÿþýÿæÓ           !                                                                                           ÓÓüüüþüüüüüüþüüüþüÿÿþÿÿÿÿÿÿÿÿþûÖ��‘‘~~~~��~��‘‘~‘‘��¡¡‘‘‘~~‘‘�‘‘¡¡‘‘¡¡¡‘¡‘‘~‘‘‘¡¡¡¡¡¡‘‘‘‘¡‘‘¢¡¡‘¡¡¡‘‘‘¡¡‘‘¡¢¢¢¡¡¡¡¡¡¦£¡¡¡¢¦¡¢¦¢¡¡¡£¦¡¢¢¡¡¡££¡¢¢£¢¡¡£¢¡¡Ýþÿÿÿÿÿꥦ¦¦¦£££¦£¢¦«£¦¦¦¦¦£¦¦¦¢£££®®£¢¦®£¢£¢£¦£¦¦£££¦£££¦¦¦¦¦¦££¦£¦«®«¦££¦¢¦«¢¢¦¦¦¦¢¢£¦««¦¦¦£££¦¢££££¢£¦«¦¦£¡¡¢¢¢¢¢£¢¢£¦¢¡¢ëÿÿø¦¢¢¡¡¡¢¢¢¦¢¢¡¡¦¢¡¡£¦¡¡££¢¡¢¢¡¢¢¡¢¢¡‘¡‘‘¡¡¡‘‘‘¡¡¡¡‘¢¡¡¡¡‘‘¡�¡¡¡‘¡‘�‘¡¡‘¡¡‘‘‘‘~‘¡‘~‘¡‘~‘‘~‘�~~}~‘‘‘~~‘‘‘}~~~‘‘}�~}~‘�~~}}}}~€‘~}}}}}}}~€‘}}}}}}}}}}Óÿæ}}àÿõ™}}vp}}}}}}}}}}}p}qv}}v}p}p}}}ppp}}}}v|vvvppv}popvvvvvppovvvvooolpvpovvvppvvvvpovvpllovoollloolollooloollllooovvllllouolllllllllolCCllllClllCllCClllCCCCßÿúyCu÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿ÷_!! !!!!!! ! !  !!!!!!!!!!! ! ! ! !!! ! ! !!!! !!  ! !  =}ªõýþþþýþþýýþþÿÿýþþþþþÿýÿýÿýþÿýæÓ                                                                                       ÓÙüüüüüüýüýüüþüüüüÿÿÿþÿÿþÿÿÿÿÿþÖ �~~‘‘~}~~~~‘�~~~¡~~~~‘‘~‘¡¡‘~�‘‘‘¡¡‘�‘¡¡‘¡¡¡�~‘¡¡¥¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¢¢¢¢¢¡¡¡¡¡¡¢¢£¡¡¡‘¡¦¡¢¢¡¡¡¡¦¦¢£¢¡£¦¢¢¢£¡¡¢¦£¢¢£¡¡£¦¦¦êþÿÿÿÿÿ뫦¦¦¦¢££££¦¦£¢£¦£¦¦¦¦¦¦¢£££®¦££¦¦£¦¦¦¦®®®«¦¦£¦©¦£££££££¦¦¦¦¦«¦¢££¢¢£«®¦££¢£««£««¦¦£¢¢¢¢£¢¢££¢¢£¦¦££¢£¢¢¦¦¦¦¦¦£¢¢¦¢¡¦°ûÿÿꦫ¦¡¢¢¡¡¡¢£¢¢¦¢¡¡¡¢¡‘¢¢¡¡¡¢¢¢¡‘¡¢¡¡¡‘¡¡‘¡‘¡¢¡¡¡¡¡‘‘‘¡¡¡‘‘‘¡¡¡¡‘‘‘�‘‘��~�‘¡‘‘¡¡‘~€¡‘~~‘‘‘‘€‘~~�}~~~~~~}~}}‘‘}}~}~‘}~€~�}~‘}~~~~}}}}~}~~}}}}~~}}}�Óÿæ}}Ùÿõš}}}}}}}}}p}pv}}}}vv}}|v}pvp}}}}}pwvvppv|v}ppvvppvpppppopv|vvppvvvvoopvoopvolooovpopoloooooovopuooovoollollllllvlllCCllllllvolClllllCCCCllCCCllCCCCCCCCƒüÿÉCCÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ!=!!Bóÿÿÿÿÿ÷_!!!!9!9!!! !!!  !  ! !!! ! !  !! !   !!   ! !=q¥íþýýýþýýþþýýþÿþþÿþÿþþýÿþýÿþýÿæÓ                                                                                                 ÓÓüüüüüüüüüüüüüüþþÿÿÿÿÿÿÿÿÿÿÿÿúÖ �Ž‘�~‘~~‘~~�~~~‘~��~~‘‘��¡¡‘~‘¡‘�¡¡¡~‘¡¡¡¡¡¡‘¡¡‘¡¦¡‘¡¡¡‘¡¡¡¡¡¡¡‘¡¢¢¢¢¡¡¢¡‘‘¡¢¡¡£¢¡¡¡¡¡¡¦¢¢¡¡¡¢£¦£¢¢££¢¢£¡¡¦¦¦£¢¢¡¡£¦¦¦êþÿÿÿÿÿꦦ¦«¦¢¢£¢¦¦££¦¦£££¦®¦¦¦¢£££¦¦£¦£¢£¦®¦¦®«¦®®¦£¦¦¦£¢£¦¦¦£¦£¦¦¦¦¦¢£¦£¢¢«®¦¦¢¡¦®«¦«¦£¢¢¢¢£¢£££¦¢¢££¦¢¢¢££¢£¦¦¦¦££££¢¢¢¢£¦êÿÿý­«¦¡¡¢¢¡¡¡£¢¢£¢¢¢¡¡¢¢¡¢‘‘¡¢¢¡¡¡¡¢¢‘¡‘¡‘‘¡‘¡¡£¡¡‘‘¡‘‘¡¡¢¡�‘¡¡‘‘‘‘¡‘~~¡‘~~‘¡¡¡‘¡‘~�¡¡~~‘‘€‘�‘‘‘}}~~}~~~}~}}~~~‘€~}}}}‘‘~}�‘}}~~~}}~~}}}~}~}}�}}~}‘Úÿà}}}Ùÿúž}}}}}~}p|}}}}}}}}}ppv}vvvp}}}}}vvv|vpv}|}vpp}pppvvoovpopvvvvovvvvvolopopplollpoppovvllloovopollolvooolllllllloolllCllllllluuollllllCllCClCCClCCCCCClClèÿ÷uCu÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Bòÿÿÿÿÿ÷_!!!!!!!!!!! !!! !!! !!!! !! ! !!!  !! ! ! !!  ! =w¥íýþþþýþþýýþþÿÿýýýþþþþÿýþÿýþÿýàÓ                                                                              ÓÙüüüüþüüýüþüüþüüüÿÿÿþÿÿÿÿþÿÿÿþÖ��~}~}~‘¡¡~~}~~‘�‘‘‘‘‘~‘��~‘‘~~¡‘~~‘‘~��‘‘‘¡¢¡¡‘‘¡¡¡~‘¡¡‘¡¡¡‘¡¢¡‘¡¡¡¡¡¡¡¢¢¡¡¡¢¡‘¡¢¡¡¢¦¢¡¡¡¡¡¢¡¢¢¢£¢¢¢££¢¢¡¡¦¦¢¢¡¢££¦¦££Ýþÿÿÿÿÿ릡£¦£¢£««¦¦¢¦¦¦¦£¢£©¦¦¦¦££¢¦¦¦¦¦££¦¦¦¦¦£¢£¦£¦¦¦¦£¦¦£¦®¦¦¦£££¦®¦¦¦®¦¢¦¦«¦£¢¦®¦££¦¦¢£¦««¦¦¦£¢¢£¦¦¢£¢£££¢¢£££¦¢¢£¦£¡¡¡£¥¦øÿÿí¦¢¢£¦£¢£¢¡¡¡¢¢££‘‘¢¦¢£¡¡¢¢¡¡¡¡¡¢¢¢¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡�‘¡‘¡¡‘�¡¡‘‘‘‘‘‘�‘¡¢‘~�‘‘¡‘~~~‘‘�~~‘‘~~~‘¡‘~‘‘¡‘‘‘‘¡‘�}~~‘‘~‘€~~~}~~}}~}}}}}~}~~}}}}}}}}}~}}}�æþà}}}Óÿý×v}}v}‘}v}}}p}v}|wpw}}v}|}vpvv}}wpwvpvvvvvvpvvvpw}vpp}}povpvvvooppvvovvppvoppvvpvpooopoppoovoplovpooopolvvlllllopulllolllllClllClClllooCCCCllClllCCCCC{üÿ�CCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!=!!Bóÿÿÿÿÿ÷]!!!!!! !!!! !!!!!! !!!! ! !!!!  ! !!  !  !!   =s¥íþýýýþýýþþýþþÿÿýÿþþþþþÿþýÿþýÿèÓ      !   !                                                                                Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿþÿÿÿÿÿûÖŸ�~~~~~�‘¡~}~~~�‘¡¡��‘��~~�‘~~‘‘�~~��~~‘�‘¡‘¡¡¡‘¡¡¡‘�¡¢‘¡¡¡‘¡‘¡¡¡¡¡¡¡¡¢¢¡¡¦¦¡¡¡‘¡£¡¡¦¦¢¡¡¡¡¡¢£¢¢¢£¢¡¡¢¢¡¢¢¡¢££¡¡£¦¦¦¦¦¢Úþÿÿÿÿÿꥢ£¦££¦¦««££¦¦¦¦¦¡£¦¦¦¦®¦¢¡£¦£¦¦¦£¦¦¦¦££«¢¡£¦¦¦¦£¦££¦¦¦¦¦¦¦¦¦¦®®®«¦¦££¦¦££¦¦¦¦££££¦««¦¦¦¦¦¢¢£«£¢¢¡¢¦£¢¢££££¢¢££¢¡¢¢¦¢¡ÚÿÿÿÖ¦¢¦¦£¢¦¦¢¢¢¡¢¢¢¡¡¢¦¦¦¡¡¢¡¡¢‘¡¡¢¢¡¡‘¢¢¡¢¡‘¡¡¡¡¢¡‘‘¡¡¡¡‘‘‘‘¡¡¡‘‘¡~‘‘¡¡¡~�~‘‘‘~~}�‘~�‘~‘‘~}�‘‘~‘¡¡‘‘¡‘‘¡~}~‘‘~€‘�~~}}}}~}}}~}}}}~}}}}}}}}}}}}}}}™íýÚ}}}Óÿÿæ}w}}}~~}pvp}}qvp|}}}}p}|vpppv}}ppppv}pppvvvpvvpv}vvv}}popopvvppvopvvvvvvppvvppvvvooovopvooopooovvolopooppollllouolltlllullClllllCCClolCCCCCClllCCCCCCßÿòt>uúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!9=Yóÿÿÿÿÿ÷_!!!!! !!!! !!  !  ! ! !!!!!!! ! !   !!!!!!!! !  !=}ªéýþþþýþþýýýýÿýýþþþþÿþþþþÿýþÿþæÓ                                                                                    Ó×üüüüüüüüþüüüþüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��~~~‘‘~~~~~�‘‘‘‘¡~}‘‘‘¡¡‘‘¡¡�~‘¡‘¡¡¡‘~¡¡¢¡¡~‘¡¡¡¡‘¡¡¡£¡‘¡�¡¡¡¡¡‘�¡¡¡¡¢¢¡‘££¡¡¡¡£¦¡¡¡¡¡¡££¡¡¢£¡¡¢££¢¢¡¢¡¡¦¦£¡¢££¢¢¢££££åþÿÿÿÿÿ릢£££¦¦££££££¦¦¦¦££¦£¢£®®¦¦®«££¦¦¦¦£¢¦£«®¦£¦®¦¦««¦£¦¦¦©¦¦¦¦¦£££¦£¦¦¦£¢¦££££¦¦¦¦¦£¦¦«£¢£¦£¦¦¢£¦¦£££¢¦«¦¦¦¦£¢¢¢£¢¢¢¢¡¢¦¢¦öÿÿöª¢¡¢¢¡¡¢¢¢£¡¡¡¢¡¡¢¢¢¢¡¡¡‘¢¦¡‘‘¡¡¡¡‘¡¢¡¡¡¡‘¡¡¡¡¡¡‘‘¡‘‘¡¡¡‘‘‘‘‘‘‘¡¡‘‘‘�‘‘‘¡¡‘¡‘�‘‘¡¡‘�€‘‘‘‘‘‘~‘‘‘~}~‘‘‘~~‘~}}~‘€‘~}}}~¡}}~‘~}}~�}~}}}}}}}}}}}}}ÓþýÓ}}}§üÿúÓ�}wv}}p}}}}}}}vpv}p}}v}}}v}pv}v}vp|}vpvv|vv}pov|vvp}vppvvvpvvvvpovppvpopoopolovpppooooooooopoololloollllllopollllllllllvulCllCllollCCCClllloCCCllllƒüÿ›CCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!=Cóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!! ! !!!! ! !  !!! !! ! !!   =}¥õýýýýþýýþýýýÿÿþþþþþþþþÿþýÿýþþæÓ                                                                                       ÓÓüüüüüüüüüüüþüüüþÿÿÿþÿÿÿÿÿÿÿÿúÖŽ�~~~‘‘~~�}}‘¡‘¡¡‘~~~‘‘¡¡‘‘‘‘‘�~‘¡¡¡¢¡~�¡¡¢‘��‘¡¡‘¡¡¡¡¢¡¡‘¡‘¡¡¡¡¡‘‘¡¡¡¡£¡¡¡¡¢¡‘¡¢¢£¡¡¡¡¢£¢¡¢¢¢¡¡¡£¦¢¡££¢¡£¦£¡£¦£¢¢¢¢¢£¦êþÿÿÿÿÿꦢ¦¢£¦¦¦¢¢¢¡£¦¦®¦¦¦¦¦¡£¦«®®®¦¢¢¦¦®¦£¢£®¦¦£¦¦©¦¦®®¦£¦®¦¦¦¦¦¦¦££££££¦«¦£¦¦¦¦¢£¦¦¦££¦«®¦£¦£¢¦¦¦£¦¦££¢¡¦««¦£¦¦¢¢£¢¢¢£¢¡¡¦£¢ÖþÿÿÚ¢¡¦¢¢¡¡¢¡¢¡¡¢¡¡¡¢¢¢¢¡¡¡‘¢¢‘‘‘¡¡‘¡¡¡£¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡‘¡¡�‘¡‘‘‘¡‘‘¡¡‘‘‘‘‘¡¡¡‘¡¡‘‘¡¡¡¡��‘‘¡‘‘�‘‘�~~~~‘~~~‘~~}�‘‘‘�~~}}~‘}~‘}}}}}~}~~}}}}}}}}}}}žõÿõ™p}}�Úÿÿýæž}}wv}}}}}ppvvpp|}pp}}}}}vpwpvvvvvppvvvvv}vppvwvpppppv}ppv}opppppppooppolloooooovppoooooooollllloolllClovvolloolllloovolllllClllCllCCllllllCCCCCuèÿèuCzúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Z÷ÿÿÿÿÿ÷_!! !!!! !!!!!!! !!! ! !! !    ! !!!  !!  !   =qªíþþþþýþþýýþþÿýþþþþÿýÿþþþþþÿýÿàÓ     !                                                                                 ÓÙüüüüüüüþüüüüüüüüÿÿÿÿþÿÿÿÿÿÿÿþÖ��~~~~~~‘‘�~~‘�‘‘‘‘‘‘~‘‘�~‘‘¡¡¡��‘‘¡‘�¡‘‘¡¡¡¡~�¡¡‘�¡¡¡¢¡¡¡¡¢¡¡‘‘¡¡¡¡¢¢¡¡¡£¡¡££¡�¡‘¢£¢¢£¢¡¡¡¢¢¢¢¡¢£¡¡££¢££¦¢¡¢¦¦¢¢££¢¢¢£åþÿÿÿÿÿ릣¦¦¦¦£®¦¦¦¢¢££¦¦¦¦®¦££££¦¦¦®£¢¦¦¦¦£¢®®¦£¦®¦££££¦¦££¦¦®££¦¦¦£¦¦¦££¦®¦£¦¦«®¦££¢£¦¦¦¦¦¦£££¦¦£££££¢£¢£¦£££¢¢¢££¦¦£££¢¡¦¦¢¢£íÿÿý­¦¦¢¢¢¡¢¡¢¡¡£¢¡¢¢¢¡¡¡¡¢¢¢¦¢¡¢¡¡¡¡‘¡¢¢‘¢¡¡¡¡¡¡¡¡‘‘¡¡‘‘�‘¢¡¡¡¢¡‘~‘¡‘¡‘~‘‘‘‘‘‘‘‘‘‘�‘‘~�~‘‘‘‘‘‘�}~‘�~‘~}��~~�‘~}~}~€‘}‘‘~~}}~‘‘}}}}‘~~~}}}}}}ÓõÿúÓ}}}}}˜àûÿÿúæÓ™}}v}}}}}}}}}}}}vp}}}ppv}}}pv}|vvpv}vpv}vopvpppvvvvvvvpvvplpppppvvpoppopoolooopoppooopolopolllopooplollulllolllllollllllCllClClllCCllClllClCCl”üþƒCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Bóÿÿÿÿÿ÷_!!!!!!!!! ! !!!! !!!!! ! !   ! !  ! !  !9q¥íýýýýþýýýýýýÿÿþþþþþþýþþþÿþþýÿèÓ          !  !                                                                                          Ó×üüüüüüüüüüüþüüüþÿÿÿÿÿÿÿýÿÿÿþûÖ��}�‘�€€~~‘‘~~~~~‘¡¡¡�‘�~~��‘¡¡¡�‘¡�~‘¡¡�¡¡‘��~¡¢¡‘‘¡¡¡¢¢¡‘¡¢¡¢¡�¡¢¢£¡¡¡¡££¡¢¡¡¡¡¡¢£¢££¢¡¡¡£¢¡¢¢¢¢¡¦¦¢¡¦¦£¡¢££¦£¢¦¦¡¡££Ýþÿÿÿÿÿꫦ¦¦¦££¦¦®¦¢¡¢¢¦££¦¦¦¦¦££¦£¦¦££®¦¦£¢¢¦®¦£¦©¦££££££¢££¦¦£¦¦£¢£¦¦¦££¦®¦£¦¦®®¦££££¦¦¦¦¦¦£¢¦¦¦¢¢¢¢¢£¢£¦¦£¢¡¡¢¢£¢££¢£¦¡¢¦¦¢¢¢Ôýÿÿ릥¡£¢¦¢¡¡¡¡¢¡¡¢¦¢‘�¡¡¢¢¦¦¢¡¢¡¡‘¡¡‘¡¡¡¡¢¢¡¡‘‘‘¡¡¡¡¡¡‘~¡¥¢‘¡¢¡‘�¡‘‘¡‘�‘‘��~‘~�‘‘‘~�‘‘~‘¡‘~~~~~‘‘~‘~}}}}~}‘¡}}~}~¡‘}���~}~‘‘‘~}}}~‘~}}~~}žæýÿõÓ}~}}}}}Êèúÿÿýõמ�}vw}}}}}}}}}ppvpvpp}}}}}}}vv}v}}}ppvvppppppvvvvppppppvopoppovvvoopvoooooopolopoopollvvollllovvuolllloloolllllllClllllCllllCllllCCCCCllllClèÿßuC{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Y÷ÿÿÿÿÿ÷_!!!!!!!!!!    ! ! !  !!! !!  !!     !!   ! !p¥íþþþþýþýýýþýÿýýþþþþþÿýÿþþþþÿýæÓ                                                                                                                     ÓÓüüüüüüüüüüüüüüüüÿÿÿþÿÿÿÿÿÿÿÿþÖ ‘~}~~~�~~‘¡‘~~~~~~‘‘~~‘¡‘‘‘‘‘‘¡‘¡¡~�¡¡‘‘Ÿ¡‘‘¡~¡¡‘¡�~¡¡‘¡¡�¡¡¡¢¡�¡¡¡¢¢¡¡¡¡¢¡¡£¡¡¡¡¢¦¡¢¢¢¡¡£¦¢¡¢¢¢¡£¦¢¡¢££¢££££¢¢¢«¦££¦«êþÿÿÿÿÿ릣£££¢¦¦¦¦¦¢¦¦£££££££¦¦¢£¦£¦«¦¢«®««¦¢¦®¦¦¦¦¦¦«¦¦¦®¦««¦¦¦¦®¦¦¦«£¦££¦©£¦¦¦¦®¦¢£¦¦«¦¦££££¦¦¦¦¦¦¦¦¦¦¦¦£££¢¦¦¦¦£¢¡¢£¦¦£¢¢¦¦¦££íÿÿþÖ¢¢£¢¦¢¡¡¡¢¦¦¡¡¢£¡¡¢¢¢¡¡¡¡¡¡¢¡¡¢¢¢¡¡¡¡¡¢‘¡‘¡‘‘¡¡‘¡¡¡‘‘¢¢‘‘‘‘‘‘‘¡¢¢‘‘�‘¡‘¡¡‘~‘‘‘~‘¡¡~~‘‘~‘~~~~~~�~~~‘~‘}~‘~}~~~‘~}}}~}}�~}~}}}}}}~~}}}™Úõÿþèž}}}}}}}}}}�ÓàõýÿÿúæÓ™}vv|vp}}}wwv}v}}v}vpw}vvvvvvv}vpv}vvvvvvpvv|vppvvpoppvpvvvopvooopvopopoooopooooollpplloooolllllllllllllllClolClClllClllllCCouCCCCCCClC?ƒüý{CCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!@óÿÿÿÿÿ÷x!!!!! ! !!!!! ! !!! !!!!!!!!! !!   ! !  !! !q¥õýýýýþýþýýýýÿÿþþþþþþþþþþþþþþÿæÓ                                                                                                          Ó×üüüüüüüüüüüüþüüþÿÿÿÿÿÿÿÿÿÿÿÿúÖ� ~~~~~~~~¡¡‘‘~}~~~~‘~�¡¡¡€��¡‘‘‘‘��‘¡��‘‘~‘¡‘‘�‘�‘‘¡¡‘¡‘¢‘‘¡¡¡¡¡¡¡‘¢£¢¡¡¡¡¡¡£¢¢¡¡¡¡£¢¡¡£¢£¦¢¢£¢¡£££¡¡¡¦£¢£¦£¡¡££¦¦¦£®«åþÿÿÿÿÿꫦ¥¡¢¡¦®¦££¦¦¦¦¢£££¦£¦¦££¦¦¦®¦£¦®®¦®¦¦¦¦¦¦¦¦¦®¦¦®®¦®®¦¦¦¦©¦®®¦¦¦££¦¦¦¦«¦¦®¦£¢£¦¦¦£¢£¦¦¦¦¦¦¦£¦«¦¦¦¦£¢¢¦¦¦¦«¦¡¡£¦¦£¦££¦¦¦¦¢­ýÿÿõ¦¦¢£¦¢¡¡‘¢¦«¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¢¡¢¢¢¡‘¡¡‘¡¡¡¡¡��¡¡‘‘¡¡¡‘¡¢‘‘‘‘���‘¢¢‘�‘¡‘‘¡¡�~‘¡¡‘‘¡‘‘~‘€~‘‘~~~}~~}~‘‘~�}~‘}~}}~}~~}}}}~‘}}}}}}~}~~}}‘Óèþÿ÷Ú™}|w}}}v}~~}}}}™Óæ÷þÿýõÙžvv}w}}pp}}}}}vppp|v}}wpvv}}pvvvv}}v}vvppvvppvvvpvpvpvvppooolopppppooppoololvolllpoolloollllllCllllllCCCloolCllllllCCClCloollCCCCCCCCçÿ×ZC{ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿúx!!!!!!!!!! !!!!!!!!!!! ! !!   !! ! ! ! ! !!! !!! !!!!!  !!=qªíþþþþýýþýýýþÿýýþþþþþþþÿþþÿþþþæÓ                                                                                                               ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��‘‘~~~~~}~‘¡‘�~�‘‘~~~‘¡‘~�~‘‘¡�‘¡‘‘¡�‘¡¡�~¡¡¡¡¡¡¡¡¡¡‘¡‘�¡¡¡£¡‘‘¡¡¡¡£¡¡¡�¡¡¡¡¡¡¢¡¡¡¡¢£¢¡¡¢¢£¢¡¢¡¡£¢££¢£©£¢¢¦£¡¢¡¢££¢££¦åþÿÿÿÿÿ릣£¦¦££®¦¡£¦¦®«£¦¦¦®¦¦¦££®®¦¦££¦¦¦£¦®¦£¦®«®¦¦¦£¦®¦££¦¦£¦¦¦¦®«®®¦££¦¦£¦¦££¦¦¦¦£¦¦¦¦¦££¦¦££¦¦¢££££¦¦¦¢£¦¦¢¢£¦¢¢¢£¢¡££¢¢£¢¢¡£êÿÿÿꢡ¢¦¢¡¦¢¢££‘‘¢¡¢£¡‘¡¡¡¡¢¢¡‘¡¡¡¡¡¡¢¦¡‘¡¡¡¡‘‘¡¢¡¡¡‘‘‘‘¡¡‘‘‘‘¡‘‘‘¡¡‘‘‘‘���‘‘‘‘‘‘�‘��‘‘¡�~~~‘‘‘~�~~‘‘~}~~‘¡‘€~~~}€¡€}}}}~~~}~~‘€}}}‘§æûÿýæ§}}~~}~}}}}}}}}v}}}ž×èúÿÿ÷æÓ™}}}p}}vwp}}pvv|vpp}vvvpp|vpvvv}wvpvvoovvvpvppppvpopppvopppvppvpopooooloolovooploplloplollllolovlllllllolCllllllCllClCCllllCCllCCCƒüú{CláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=9!!!Bóÿÿÿÿÿ÷_!!!!! !!!!! !!!  !! ! !!!!! ! !   !!!   !!!=}¥íýýýýýýþýýýýÿÿþþþþþþþþþþþþþÿþæÓ                                                                                             Ó×üüüüüüüüüüüüüüüýÿÿÿýÿÿÿþÿÿÿÿûÖ¢Ÿ�~~~€‘‘~~‘‘‘¡‘�‘‘�~~‘¡‘‘‘~~‘�‘‘¡‘�‘‘¡¡¡‘¡¡‘‘¡¡¢¡¡¡¡¡¡¡�¡¡¡¡¡¡¡¡¡‘¡¡¡£¡¡¡‘¡¡¡¡¢¢££¡££¢¢££¡¡¢¡¡¡¡¡¡¡£££££££££¢¡¢££¡¢¢¢£åþÿÿÿÿÿê«¢£®®¦£¦¦¡¢¦¦®®¦¦¦¦««®¦¦¦®®®¦¢£¦®¦¦¦®¦££®®®®¦££¦¦¦«££¦£¦®¦¦«®®®©£¦®¦£££££££¦¦¦£¦¦¦¦£££¦¦¦¦£¢¢££¦¦¦£££¦¦£¢¢££¢¡¢¡¢££¢¢¡¡¡¡£¨ûÿÿû§¡¢¦¢¦¦¡¡¡¢¡¡£¢¢¢‘¡¡¡¡¢¦¢¡¡¡‘‘‘¡¡¢¢¢‘‘¡¡¡¡‘¡¡¡‘‘‘�~�‘‘��‘‘‘¡‘�¡‘‘‘¡~~~‘¡¡��‘‘~‘‘~‘¡‘~}~~~‘‘~‘~~¡‘~}~~‘‘‘¡‘~�~�¡‘}}}}}~€~¡‘~~}}šàûÿýèÓ}}~~~~~}}}€‘}}}}}wv|vvžàõÿÿýõÚ™}w}}ppvvw}}vvvpv}pvpppvvpppp}vpopvpopvvvpoppopvooppoovvpvvpvvopoopoloolooooolooolooopoollvoollollllollllllollllCllCCClllllCllCCèÿÇoCƒýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!$!!Cóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!! !!!! !!!! !!! ! !!!!!! !=q¥íþþýýýýýýýýþÿþþþþþþþþþþþÿþþþþæÓ                                                                                                                                  ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��~~‘�~‘~~‘‘~~�‘‘�‘‘~~�‘‘¡‘~‘‘‘‘¡¡¡‘‘�‘¡¡¡¡‘¡‘�¡¡¡¡¡‘¡¡¡‘¡¡¡‘¡£¡¢¡�¡¡‘££¢¡¡¡¢¢£¢¢¡¡¡¡¢¢¡£¢¡¡¡¡¢££¦£¡¡££¢¢££¢¡¡£££¡£¦¦££åþÿÿÿÿÿí¦££££¦¦¦¦¢¦¦¦«¦¦¦¢£¦¦®¦££££«®££®¦¦¦®®©¦®¦¦®¦£¦£¦¢¦®®¦£¢£¦¦£¦£¦©®££¦®¦£¦¦¦¦££¦¦¦¦¦¦¦£££¦«¦¦¦££¦¦¦£££¦¦£££¦¢£¦¦£¢£¢¢££¦¢¢£¡£¥Ýÿÿÿë¡¢¢¢¦£¡¡¡¡¢¡¢¢¦¦¢¢¡¢¡¢¡¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘~‘‘‘¡‘‘‘‘‘‘�}�‘‘~~‘��~~‘‘‘}~¡‘‘‘~~~‘~}~~~}‘‘~}~~~‘~}~~~}}~}~~}}‘×õÿþíב}}}}}™§žÓ×ÚààÚÓ§ž‘v}}}}}}§×èûÿýõÙ™}ww}}vp}}vvvp}}vvvpv}vvvpvvppvvvvvppvpoovvppvoppppvvplpoopoloppoploppppllolopoolloooolCoplllllllllllolllllllllllllllCCllCCClƒüóyCuèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!Bóÿÿÿÿÿ÷_!!!!!!!!!!! !!!!!!!! !! !  ! !  !     !=}ªíþüÿýýþýýýýþþÿþþþþþþþþþþþþþþÿæÓ                                                                                                         Ó×üüüüüüüüüüüüüüüþÿÿÿÿÿÿÿÿÿÿÿÿýÖ���¡‘~~~‘¡¡‘~}~‘‘‘~~~~‘‘¡‘¡‘¡¡‘¡‘¡¡¡¡¡¡¡¡¡¡�¡¡�‘¡¡‘‘¡¡¡‘�¡‘‘¡¢¡¡£¢¡¡‘‘£¦¡¡¡¡£¦£¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡££¦«£¡¡¡¡¡¡£¢¡¡£££¡££¦«¦¢Úþÿÿÿÿÿꫦ££¢£¦¦£¦®®¦££¦£¡££¦®¦£££¢¦®¦¦«®£®®®®®®¦££¦¦£¦¦¡£®®¦£¢£¦¦¦¦¦¦£¦££¦®¦£¦®«£££¦¦£¦¦¦¦£££¦¦¦¦®¦¦¦¦£¢¢£¦¦¦£¢£¦¦«®£¢¦¦¡£¦£¡£¦¦¦¢¦÷ÿÿþÖ¢¡¢¦¢¢¡¡¡¦¡¡¡¦££¦¦¦¢¢¡¦¡¡¡¦¢¡¡‘¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡‘~‘‘‘�‘‘¡‘‘�~�~~‘~~~~}}~¡‘‘~~€‘‘‘~}~�~}��}}~‘}}}}~�~}~‘~}}‘}}}Óèýÿôך€}}}~‘žÙèõ÷ûýÿÿÿþýúõèàÓ™}}}}}}}�Çà÷ÿýõÙ™}}}pv}}}}v}}}w|vv}}}}vvpppvvvvvvppvvoovvvvooopvvpolooppoooooooooopvvpollloopolloolollovlllllllCllCllllCllolCClllllC>ClClCCçÿÇul›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$=!!@óÿÿÿÿÿ÷_!!!!!!!!!!!! !!! ! ! !! ! !! !! ! !! !!!!! ! !  =}ªíýþýýýþýýþýþÿþýþþþþþþþþþþþÿýþàÓ               !                                                                                             ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿþÿÿÿÿÿÿûÖŽ}‘‘~~~~�‘~~~~‘‘¡‘¡¡‘~�¡‘�‘‘‘����‘�¡¡‘¡‘‘¡¡‘‘‘¡¡¡¡�¡¡¡¡¡‘¡¡¡¡¡�¡£¡¡¡¡¡£¡‘‘¡¡¢£¡¡¡¡¢£¡¡¢¢¢¢¢££¢¢¡£®££¢£¡¡¢£¢¢£££££££££¢¢åþÿÿÿÿÿ뫦¦¦££¦£££¦®¦¢£®«££££«¦¦££¦®®¦¦¦¦££®®¦¦¦®©£¦®®®®¦¦®®¦¦¦¦®¦®¦¦¦££¦£¦®¦£«®¦¦¦£¦¦¦¦¦£¦¦¦££¦¦££¦¦¦¦£¦£££¦¦¦¢¢¦¦£¦¡¡¦«¢¡£££¢£¢¢¡¢Üþÿÿö¦¡¢¢¢¦¦¡¡£¦¡¡¢¡¢¢£¡¡¢¡¢¡‘¢¦¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡‘¡‘¡¡¡¡‘¡¡¡‘�‘¡¡¡‘�‘¡‘�‘‘‘¡‘‘‘‘�‘‘��‘‘¡‘‘‘�~~~~‘‘~~~‘‘~}~‘~}}}}}}}~‘~}}‘}}šàúÿõÚ¥}}}}}™Úë÷ÿÿÿÿÿýýûýýÿÿÿÿÿüõæÓ™}}}}v|žß÷ÿþõßž}vpv|}||v|vvvvvpv}vpvvp}wpppvvov}plvvvvpovpvvpovpoppoppooolooooooollooollooooplllllplllollCllClllllCColClCCllClCClllll˜üòultñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!! !!!!   ! ! !!    !  ! !!  =qªíþýýýýýýýýýþþÿþþþþþþþþþþþþþþÿæÓ                                                                                                                                   Ó×üüüüüüüüüüüüüüüþÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ��‘}~‘~~~}~~~‘¡‘¡¡¡¡�‘‘‘‘��‘~~~~�‘�‘‘‘~�¡¡¡‘�¡¡¡‘‘¡¢¡¡�¡¡¢¡¡‘‘¢£¡¡¡¡¢¢¡‘¡¡¡¡¢¡¡¡¡££¢¡¡¢¢£££¦¡¢¡£¦£££¡¡££££¢£££¢£¦£¡¡¡¢åþÿÿÿÿÿꦦ¦¦¦©¦££¦¦£¦£©®®£¦¦££®£££¦®®£©¦¦£¦¦¦¦££®®££®®®®©®®¦¦®©®®®©£¦¦£¦¦£®®££¦«¦¦®¦¦£¦¦¦££¦¦¦¦¦¦¦£¢£¦¦¦«¦£££¦¦££¦£¢¢¢¡£¦¢¡¡£¦¢¡¡¡¡¡¦íÿÿÿÚ¡¡££¦¦£¢¡£¡¡¡¡¢¢¡‘¡£¢¡¡¢¢¡¡¡¢¢¡¡¡¢¡‘¢¡¡¢¡¡¡‘¡‘¡‘¡¡‘¡¡¡‘‘~‘¡¡¡�~‘¡‘‘‘‘¡¡¡¡‘~‘¡¡‘‘‘‘‘‘¡¡‘~~~}‘‘}~~~}~~~}}~}}}}}~~‘}~~‘‘×õÿýæ§‘�}}}šÚõþÿÿÿúèàÙÓ§ÓÓÓÓàèõúÿÿÿýíÙš}}}|v}žÙõÿÿõàž}vvvvvvvvpp|vpv|pppv|v}vppvpvpv}vppvvvop}}vvpvvppvvvoooollloolllllooopolloopvlllllolovoollCllllClCClll?llCCCCCCllllluèÿ›lC�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!$!@óÿÿÿÿÿ÷_!!!! !!!!!!!!!!!!!!! !!!!! !! ! !  !!!!!!  !!!=qªíýýýþýýþýýýþÿþþþþþþþþþþþþþÿýþæÓ                                                                                               ÓÓüüüüüüüüüüüüüüüüÿþÿÿÿÿÿÿÿÿÿÿþÖ��‘‘~}‘�~~‘‘‘�~~~~‘¡�~�‘‘‘‘~~���‘¡¡¡‘¡‘��¡¡¢¡¡‘¡¡¡‘¡£¡¡¡‘¡¡¡�¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡£¢¢¢¡¡¢¢¢¢¢¢¢£££¢¡¢¡¢££££¡¡££££¢¢£££££££¦£¦Ýþÿÿÿÿÿ릣££¦¦£££®££££¦¦££¦©«©¦£¦®¦®®££££¦©¦£¦£¦£¦¦®®¦¦¦¦©®®¦®®¦®«£¦®¦¦¦¦¦®®¦¦¦£¦£¦®¦£¦¦¦¦£££¦£¦¦¦£¢£¦¦¦¦£¢¦£¦¦££¦¦¢¢££¦¦£¡¦¦£¦¢¢¢£££­ûÿÿû¥¡¢¢£¡£¢¡¢¢¡¡¡¡¡¡‘¢¦¡‘¡¦¡‘¡¡¡¢¡‘¡¦¢¡¡¡¡‘¡‘¡¡‘¡¡¡‘¡¡‘‘‘‘‘‘¡¢¡‘‘�¡¡¡‘‘‘‘�‘¡‘~‘¡¡‘‘~‘~~‘‘‘~‘‘~~~}‘¡~}~‘~}‘¡~~~}}}}�}}~§ëýÿúב}}}}‘ØõþÿÿþõÚ§™‘�}}}}}}}™šÓÚèúÿÿþõà§v}}vvžÚõÿÿ÷Ú˜vvpv|v|vv|vvpvvv|vvvppppvvvvppvpppvvpovvpvvpvlppovplopooovploppoolloplloooolllolllllllolllllClllllolCCllllllCCCCCC˜üñuCuòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!$!!Bóÿÿÿÿÿ÷]!!!!!! ! !!!! !!!!!!!!!!!!!!! ! !!   ! !!      ! 9q¥íþýýþýýýýýýþþÿþþþþþþþþþþþþþýÿæÓ                                                                                                                                              Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���¡‘~~‘¡¡‘‘‘~~~~~~}~~�‘��~~�~~‘¡¡¡¡¢¡‘~~‘‘¡¢¢¢¡��‘¢£¡¡¡�‘¢¡¡¡¡‘¡‘‘�‘¡¢¦¢¡¦£££¢£¢¡¡£££¡¢¢¢£¡£¡¢¡¡¢¢£¢¡¢¢£££££¦®¦£££££¦£åþÿÿÿÿÿꦣ¦¦££££££¦££££¦£££®®®¦£«®®«¦££®£©®££££¦«££®¦£¦£¦¦®®¦®¦¦©¦¦©®®¦£¦¦££¦®¦££¦¦¦¦£¦¦¦¦¦££££¡£¦¦£¦¦¦¦££¦¦¦¢££¦¦¦¢£¦¦¦¦££¦¦£¢£¦¦¦£¢¢êÿÿÿꢦ¢‘‘¢¢¡£¢¡¡¡‘¡¡¢¢¡¡‘¡¢‘�¡‘¡¡¡¡¡¦¡¡¡‘‘~‘¡‘‘¡‘¡¡‘‘‘‘‘¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡‘�~~�‘�‘‘‘‘‘‘€~~‘�~�‘‘}}}~‘‘~~�‘‘‘‘¡‘}~~~}}}}€×úÿÿæ§‘}}}‘ÒèýÿÿûèÓ™}}~}~}ppp}~~}~~}‘žÙëýÿÿúèÓ�}vv}}™×÷ÿþõÓvw}vv|vvppvp||vvvppvppvvpvvvvpvppppovvlvvvoopoopoovvvpvvpopvvvpoloplloooollooolllllopolluollpoCloolCllollllCCCCCèý˜CCÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!!!Z÷ÿÿÿÿÿ÷_!!!! !!!! ! ! !!  !!!!!  ! ! ! ! !! !   !p¥íýýýþýýýýýýþÿþýþþþþþþþþþþþþþþæÓ                                                                                                                                                 ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~~~~~‘‘�~�€�‘‘~~~‘‘‘�‘�‘‘‘‘‘¡¡¡¡¡¡¡¡‘‘¡¡‘¡¡¡‘~¡¡¢¡‘¡¡�¡¢¡‘¡£¡¡¢¡¡¡¡¡¢¡¡££¡£¡¡¡¡¡¢¢¦¢¡¡¡¡¡¢£¢¢¢¢¢¦¦££¡£¢¢£££££££¦££¦©åþÿÿÿÿÿë«££¦£££©£¢£¦£££¦¦¦¦££¦¦¢£®®¦®££¦¦®®¦¦¦£®®¦£®£©®®®©¦«¦¦£¦¦¦¦¦¦¦¦¦®®¦£®®¦¦¦¦££¦¦¦®¦¦¦£¦¦¦¡£¦¦¦££¦¢££¦«¦¡¢£¦££¢¢£££££¢¦¦¢¡¦¦¦¢¦£¢¦ûÿÿþ­¦¢‘¡¦£¡¢¢¡¢£¡‘¢£¡¡¡‘¢¦¡‘¡¡¡£¡‘¡¢¡¡¡‘‘‘‘¡¡¡¡¡‘¡‘¡¡¡‘‘‘¡¡‘‘‘�¡¡‘¡‘‘‘‘‘�‘‘‘‘‘��‘‘‘�~~�‘~~‘‘‘‘}~~~~�~~~�~~~}~‘~}~~‘æýÿúב~€}}§æûÿÿ÷àÒ‘}}s}~}~}}s}}~}v}}}}}}˜Óæúÿÿýèךv}vv}žàýÿýèž}}vp|}vvvvv|vpvvvppvvvvppvpppvpvvpovvpopppppooppopoppopooopplllloolloolllooolllllllvllllllCvolllCllClllCClCClC˜üçuCu÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷_!!!!!!! !!!!!!!! !!  !!!! !   !!!!! !!=s¥íýýýýýýýýýýýþÿþþþþþþþþþþþþþþþæÓ                                                                                                                                            Ó×üüüüüüüüüüüüüüüýÿÿÿÿþÿÿÿÿÿÿÿûÖ��}}~}~~~‘‘�~�‘‘‘~~‘¡¡~~~‘¡¡�‘¡¢‘‘‘��‘¡¡¡¡¡�����¡¡¡¡¡��¡¡¡¢¡�‘££¦¦¡¢¢¡¡¡¡¡¡¢¢¡¡¡¡¡¢¡¡£¢¡¡¡¡¡£££¦¦£¢¦¦«££¢¡¢££¢¡¡¡£¦££££åþÿÿÿÿÿ£¦¦££¦£££££¢¢¦«¦©£¢£¦¢£®®¦®£££®®®£®®¦©«¦®¦£®®®®®®©¦¦¦¦¦©®££¦¦£®®¦®®®®®¦£¦¦¦¦®®¦¦£¢£¦®¦£¦¦£¢¢¢£¢£¦®¦¡¡££¦¦¢¢¦£¢£¢£¢¦¦££¦£¦¦¦¡¢Ôþÿÿõ«¢¡¢£¦£¡¡£¢¢¡¡£¢‘¡¡¢¦¦¢¡¡¡¥£¢‘‘¡¢¡‘¡¡‘¡£¦¡¡¡¡~¡¡¢¡‘�‘‘‘�~~‘‘‘�¡¡‘‘‘‘‘‘¡~‘�~‘‘‘~~��‘�}�¡¡‘‘‘€‘‘‘~~}~‘}}~}�‘‘‘‘Óõÿÿè§~~‘}‘Ú÷ÿÿúÚž}}}~}}}}}}}}}}}}}r}|v|||}}�žßõÿÿþõà§vvvv‘Óòþÿúà™}v}}}v}}|vvpp||ppp|}vpploppvvv}olp}voopvvpooopooopoooopppollllpolllolllopolooolllllCClClllllCCCCCCClllCCllllçý›llÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Y÷ÿÿÿÿÿ÷x!!!!!!!!!!!!!!!!  ! ! !! !!! ! !!!!   !!!!! ! !  !=q¥õýýýýþýýýýýþÿýýþþþþþþþþþþþþþþæÓ                                                                                                                                       ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ�~~~~~~~~~‘‘‘��~~‘‘¡¡‘‘‘‘‘‘‘‘~‘¡¡¡‘‘‘��¡¡¡¡¡‘�~‘¡¡‘¡¢¡‘¡¡¡¢¡‘¡¢¡¢¢¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¢¢¢¢¢¢¢¢¢¡¢££££¢£¢£££££¢£££££¢£££¦¦¢£åþÿÿÿÿÿ££¦££££¢¦®¦¦£¦¦£¦££®®££®©£¦££®¦®¦¦®¦®©£®¯¦£©¦¦¦¦©¦¦¦£©££®®®®££®®®©££¦¦££¦©££¦®¦¦¦£¦¦¦¦¦¦¦¦£¢£¦£¦¦¦¦¢¢¦¦£¦¢¡£££¢£££££££¢¢£££¢¢¦íÿÿÿÝ¢¢¢¡¡¢¢¢¦¡¡¡¡¡¢¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¢¡‘‘¡¡¡‘‘‘‘‘‘~‘¡‘¡‘‘‘~�‘‘‘¡‘‘‘‘~‘‘�~~‘‘‘‘}}¡¡~~���~€~~}~¡}}~‘}~}‘àûÿýÚ™}}~~¬ëýÿþè§}~}}}}}}}}}}~}}}p}}}|}}}}|}|}™×èýÿÿ÷à§vvv}™ßúÿÿõ×|}vpv}|vvppvvpppppvpppp|vppvvpopvppppppvppppoopploppopoollooovollolllllollollllllllllolllllllllllCCllClCC›ýßvly÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!=!@óÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!!! !!!!!!! ! !  !! ! !!   !  !q¥íýþýýýýýýýýýÿÿþþþþþþþþþþþþþýÿæÓ                                                                                                                                                            Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽŽ�‘‘‘�~~~��~‘‘~~~‘¡‘‘¡¡¡��‘¡~�¡‘‘‘~‘‘‘‘‘¡¡‘¡¡‘���~�¢¢‘¡‘‘¡¡¡¡¡�¡¡¡¡¡£¢¢¡¡�¡¢¡¡¡¡¡¢¢££¡¢££¢¡¡¢¡¡££££¡¢££££¦¦££££¦¦£¦¦£¢åþÿÿÿÿÿꫦ¦¦£®¦©¦¦®®®¦¦®¦£¦®©¦®¦£££££©£££©¦©®¦®®£®®®¦¦££££¦£££¦¦££®®±®®®®®®¦£££¦£¦®¦£¦®¦££¦¦®¦¦¦®¦¦£¦£££¦¦¢£¦¦¦®¦££¡¡¡£¢¦¦¦£¡¡¢£¡¡£¢¦¦£¦Üýÿÿû«¥¡¡¡¡¡¡£¡¡¡¡¡¢¡¡¡¡¡‘‘¡¢¡¡¡¡¢£¡¡¡¢¢¡‘¡¡¡€�¡¡‘¡€~‘¡‘‘‘‘‘‘¡‘‘¡¡‘‘‘~~~‘‘‘�‘‘~~‘~}‘¡‘‘�}~‘~}~~~}}~~�~‘¡‘~‘‘~}‘èýÿõÓ‘}}~™àúÿÿõÓ™}}‘~}}~~}}}}}}}}}}v}}|}}~~}}|}}|v}˜Óèýÿÿúàš}}vvžèþÿýè˜vvppppvppvpppvppppvvvv|vppvvpvvppvvvpppvvvvppvoooppollllooloovppllllllClllllllllllllpolCCClllllCCllCllClèú”lCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!=!@÷ÿÿÿÿÿ÷_!!!!!!!!!!!     !!!! !!!!!!!!!!! ! ! !  =qªíþýýýýýýýýýþÿþýþþþþþþþþþþþþþþæÓ                                                                                                                                                                   ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ�}�‘‘‘‘�~~~~‘¡‘‘‘~‘‘�~¡‘¡‘�‘‘~‘¡¡¡‘~�¡¡‘�‘¡�¡¡¢¡‘¡‘¡¢¡�¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¢¢¡¡¢¡¡¡¡£¡£¢¡£¢¡¢£££¢£¡¢¡¢¢£¦£¡¢££¢£¦££££££¦¦¦£¢åþÿÿÿÿÿ뫦££££££¦¦¦®¦£«®®££®®££®®£¦¦¦®®¦©££®®££®£©¦©®¦®¦££¦¦©¦®®££®®¦¦®¦®¦®®¦¦¦£¦¦¦¦¦¦¦¦¦¦¦®¦££¦¦®¦¦¦££¦¦¦¦£¦££¦¦££¢¢¢¢£¦££¢£¢¢£¡¢£¢¦£¡¢¦êÿÿÿꢢ¡¡££¡¢¡¢¡¡¡¦¡¢¡¡¡¡¡¡¡¡¡‘¡£¡¡¡¡¡¡¡‘¡¡¡�‘¡‘¡¡‘‘¡¡‘‘‘‘‘‘¡¡‘‘‘~‘¡‘~‘¡‘~€¡‘~�‘‘~�‘‘~~~~‘‘‘‘~�}}�€‘~��~~€‘~™ëÿÿà¥~~}€Óõþÿýà™}~}~~}}}}}}}}}}}}}~}||s}}}}}}}}}}}|vvw‘žàúÿÿ÷à™}}|v�×õÿÿõžvpvvv}vvvppvvvvvppvvpvvpppvpvpoppvppppvvlplovoopoplloooooollovoloolllllllolllllllllullllCllllllCCCClll›ü×uC{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!$Bóÿÿÿÿÿ÷[!!!!!!!!!!!!!! !! !!!!!!!!!  !! !  ! ! !=q¥íýýýýýýýýýýýþÿþþþþþþþþþþþþþþþæÓ                                                                                                                                                               Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���~~���‘~~~¡‘‘‘‘¡‘�‘�‘‘�~‘¡¡€~‘¡¡¡�‘¡¢¢¡‘¡¡‘¡¡¢¢£¡£¢‘�¡¡¡¢¢¡¡¡¡¡¢¦¡��¡¡¢£¡¡¢¢¢££¢¡¡¢¢¡£££¡¡¡££¢¡¡¡¢¢¢¡¡¢£££¦££¢¢££££££Ýþÿÿÿÿÿê°¦£¢££££¦®®©¦£¦®®«£®®££®®®®¦¦®®®¦££®®¦®¦©®££®©®®¦®®©¦®®¦£¦®££££¦¦¦¦®®®¦¦©¦£¦®££¦®®®¦£££££¦®¦¦£¦®¦®®¦¢¢¦£¢¡£££¦¦¦£¡¡¡£¦¦¡¢¢¦¡¡¢¢¡¡¦ûÿÿþ­£¡¡£¦¢¡¡¡¡¡¡£¢¢¢¢¢¢¢‘¡¡¡‘‘¡‘¡¡‘‘¡¡‘‘¡‘‘‘‘¡¡¡‘‘¢£¡¡¡€‘‘‘‘‘‘~~‘¡‘‘¡¡~‘¡‘€~}~�~}~~~~~}~‘¡¡~�}}}�‘~}}}}~¡§õÿþב~~}™æûÿÿ묑~}~}}}}}}|}}‘‘}}}}}}}}}}}}}}|}}rw}}||}rv}}žàýÿþõÙ�wvv}™èþÿúÓw|vv~}v|p|}v|||ppvppvvvpvplvplpplpoplooplllolppopllovplopolvllvppllllooovoluuoollllollCllClllllCCllllèúƒClßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!=Zóÿÿÿÿÿ÷_!!!!!!!!!!!! !! !!!!  !! !!!!! !   !  !$q¥õýýýýýýýýýýþÿþýýþþþþþþþþþþþþþæÓ                                                                                                                                                          ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~‘~��~�‘�‘�~~�¡¡‘�‘‘‘‘�}�¡¡‘��‘‘‘¡¡‘¡¡¡‘‘¡¡¡‘¡¢¡¡¡¡¡�¡¡¡¢¡¡¡¢¢‘¡£¢�‘¢¡¢£¡¡¢£¡£¡¡¡¡¢¡££££¢¡¢¡£¢¢£¢¡¢¦£¡¢¢¢££££¡¡¦¦£££¦Ýþÿÿÿÿÿ뫦£££®£££©¦££¦¦¦¦££®¦¦¦®®¦©££®®®©££®¦®®®¦©£©®®£¦®®®®£¦®®£¦®®££¦£¦©££©®¦¦®®¦¦¦£¦¦¦©£££££¦¦£¦¦¦££¦¦¦¦££¦¦¢¢££££¦¦£££¡¢£¦££¢£¦¡¡¢¦¢¡¡Ôÿÿÿõ¦¡¡¢¢¢¡¡¡¡¡¢£¢¡¡¡¡¢¡‘¡£¡‘¡¡¡¡¡‘¡£¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡‘‘‘‘‘‘‘¡‘�‘‘‘‘‘~�‘~~‘‘‘~~‘‘~~‘¡€‘~}~~~~�}~‘}}}ÖûÿýØ‘}~‘ÓõÿÿýÙ™‘~}}}~}}}~}|}}�‘}}}|}}}~}p}}|}s}}vp~}pp}}}}vvÇèýÿþõÊ}vv�×ýÿüßvv}|ppvvvvvvvvvvoopppppvpovlvvolppplpvploooppopoooppllollpllloulllolllllllllllllllllllllllCClCllCC›üÌvlƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Cóÿÿÿÿÿ÷]!!!!!!!!!!!! !!!!!!!!!! !!!!! ! !!!!   !9q¥íýýýýýýýýýýýþÿýþýþþþþþþþþþþþþæÓ                                                                                                                                                           Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���‘¡~}}~�‘�}~��¡¢¡‘~~~��~~¡‘‘¡‘��‘¡¡¡‘¡¡¡‘‘¡¡‘¡‘��¡¡�‘¢¡¡‘�¡¡¡¢¡¡¢£¡¡£¡¢£¡¡¡¡¢¡¡¢£¢££££¡£¢¢£¢¢£¢£¢¢££££££¢¡£¦¦££¦®£¡£¦åþÿÿÿÿÿê«««¦¦£££££££®®¦£££££©©¦©®¦®££©££®®£®®®®££®£®®£¦®®®®©££®®®¦«®®®®¦£«£££££®®®®®¦®®¦£££££¦®®¦¢¢££¢£¢¢£¦¦«®¦¦¦¦¦¦¦¦£££¢£¦¢¡£¢£¦¦¦¡¡£¢¡¡¥íÿÿÿÜ¡£¦¢¡¢¡£¢¢¦¢¡¡¡‘¡¢¡‘¡¡‘¡¢¢¡¡¡‘¡¢¢¡¡¡¢¢¡¡¡‘�‘¡‘�~~‘¡¡¡¡‘‘~‘‘¡¢¡‘~~~�~~~~‘‘‘¡¡‘‘‘‘¡¡¡‘~‘~~~‘‘}}}�‘�}ÚýÿýÓ~€€‘àûÿÿõÓ‘}~~}}~‘‘�~~}~~}}}||}|||}~|vv|}}}}}p}}}p}}p|v||}}‘ÇèþÿýëÓvpwÇ÷ÿþèvvvvvppppvv|}vpooopvpv|vlpppvvpppllvvplpvvvpollpollopvollvvppopvllllllllllllllulllllllollCCCllCClèó˜olèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!!Zòÿÿÿÿÿ÷_!!!!!! !!!! !!!!!!!!!!!!!!! !! ! !!    =wªíýýýýýýýýýýþÿþýýþþþþþþþþþþþþþæÓ                                                                                                                                                                  ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~‘�~~~‘¡‘�~~~‘‘‘��~�‘‘�‘¡‘�¡~~¡‘¡¡�¡‘¡¡¡¡‘¡¡¡¡‘�¡¡¡¡¡¡¡¡¡¡¡¡¡£¡¡¢¡¡¡¡¡¢¢¢¡¡¡¡¢£¢¡¢££¡¢££¢£¢¢¢££¢¢£££££££¡¡¦«¢££££££©åþÿÿÿÿÿꦣ«®£¢¦®¦£££¦®®£££££¦©¦¦¦©®££®®®®¦¦¦®®®££¦¦®«®¦©®©®®¦¦¦®®®¦¦®®®¦®®£££¦¦¦®£©¦¦®®©¦££££®«®¦££¦£¢£¢£¦£©®£££¦££¦£££¦¦£££¦¢£¡¡£££¡¢£¢¡¡¦­ýÿÿû¥¡¦¦¡¢¡¢¡¡¦£¢¢¡‘¡¦¡‘¡¢¡¡¡£¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘¡‘‘‘¡¡‘‘‘~‘¡¡¡‘~‘‘‘~‘‘‘~‘‘‘‘¡�~‘�‘‘‘‘�~~~~�‘‘}}€¡€Úþÿú¬}}~¥íþÿþà¥~}}~~|}~~~~}}}}}}}~}}}s}p}}}r}}}pw}}||}}v||v|p}}||}v�Óèÿÿûèž}pwžëÿÿõžvv|vvvvp|vvvpppppovvpvvlpvpppwppplpvpoppppvlollvlvvlpllllppllvvollllllllllllllllllClllllCCllllC�üÇul›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!!! !!!!!!!! !!!  !  !!  !!! !=q¥íýýýýýýýýýýýþÿþþýýþþþþþþþþþþþæÓ                                                                                                                                                                                              ××üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���~}��~‘¡‘¡‘‘‘~~~~~~�¡¡¡¡¡¡¡‘‘‘¡¡¡¢¡¡‘~~‘¡¡¡¡¢£¢¡‘‘¢£¡¡¡¡‘‘¡¡¡¡£¡¡¡¡¡‘¡¡¡¡¦£¡¡¡£¡¡£¢¢¡¡¡££¢¡¡¢¢¢£¦£¢¡¡££¢¢¡¢¦¦¢£¢¡££££êþÿÿÿÿÿꥣ®®££®®¦¦£££©¦¦£¦®©££®¦£¦¦£¦®®®®¦££¦£££¦¦¦®®®®®®©®®®®®¦®¦¦¦¦££¦®®®®®¦®®££££®®¦££££££££©®®®®«¦£¢££££¦¡££¦£¢¦¦££¦®¦¦£££¢¡‘¡£¢¢¦¦££¦«¦êÿÿÿ桦¢¡¢¡¡‘‘£¦¡¡¡¡£¦¦¡¡¢¢¡¡¡¢¡¡‘‘¡¡¡¡‘‘‘‘¡¢¡¡¢¡¡¡¡¡‘¡‘�‘‘‘‘¡¡‘~~~€¡‘‘‘¢¡‘‘‘~~}}}~~�~‘‘~}~‘~}}¡‘}~‘Óýÿúš€‘}ÓõÿÿúÓ€}}}}~~}}}}}}}}}rvr}}~}}|}}}}}}p}}|}rvp}}}}}|}|vv|v||}}}™Ó÷ÿÿúà˜vv˜èÿÿúžvvpppv|}ppppppv}pppopolvvvpvvpvvopvplolllpvvllplvvlllvvpollloplvllollCllllClllllllllCClCllloluñò{ClèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!$!@÷ÿÿÿÿÿúx!!!!! !!!!!!!!!!!!!!!  !!  !  !! !  !! !! !!qšíýýýýýýýýýýþÿþýýþþþþþþþþþþþþþæÓ                                                                                                                                                                                         ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��‘‘~~~�~~‘‘‘�‘‘�‘~~��‘¡¡�‘¡‘¡‘‘‘‘¡¡¡¡¡~~¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡�¡¢¡¢¢¡¡¡¡££¡¡¢¡££¡¡¡¡¢¦£¡¡¡¢¦£££££¢¢¢£¢¢£££££££££¦££åþÿÿÿÿÿ릣¦®¦¦££¦£¦¦¦£¦£¦£®®©£®££®®£®¦¦®®©£®®¦¦¦®©£®®®®®®®£©¯®®©¦©®®¦©£¦¦¦®®«¦®®££¦£¦©¦«¦¦£££¦£¦¦¦¦®®££¢£¦£¦££¢¦¦££¦¦£¡¦£¦¦£¢££¢¡¢¦¢¡£££¢£££¥ûÿÿþ¨¢¡¦¦¡¡¡¡£¦¡‘¡£¡¡¢£¡¡¡¡¡¡¡¢¡‘¡‘¡¡¡‘‘¡‘¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘‘‘¡‘~�‘‘‘‘‘‘¢¡~~�€¡‘}~‘‘~~‘‘~}‘¡}}~‘~�€¬ýÿýÓ€~‘Úûÿÿëž}}}}}~}~}}~}}}}}}}}}}}~~}}}~}p}}}}}}}}}v}}}}}}}|v}|||||}|v}™àþÿÿõÓwv�Ùþÿúž}vpvpvppppvvpl}vpvoppoppppppvvplpvvloolllvvpolvlvlolooplllllllollullClllllllllllllllllllllClÇüÇtC�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!!!!! !  ! !!!!!  ! !  !!!!  9p¥íýýýýýýýýýýýþÿýþýýýþþþþþþþþþþæÓ                                                                                                                                                                                  Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ �}~~~~}~~~~}~~‘¡¡¡‘�~~��~���~~�‘�‘‘��‘�¡¡¡‘¡�¡¡¡¡¡¢¡�‘‘¡¡¦¢¡¡¡‘¡¢¡�¢¢¡£¡¢¡¡¢¡¡¡¢¡¡¢¡¡¢£¦£¡¡¢¢£«£¢££¦£££¡¡¡£¦£¢££££££¢¢åþÿÿÿÿÿê«¢£¦®¦£££¦£©£££©¦¦££©¦££©®±®¦©®®¦¦®®®®®¯¦££¦¦¦¦¦®«£¦®£££®®®®®®®®¦£¦¦££®®«¦¦££££®®®¦£¦¦£¢£££££¦«££££¦¦££®¦¢¢¦®££¦££¦¢¡¦¦¦¢£¦¢¢¢¢¢¡¡¢£¢Öÿÿÿí¡£¦¦¢¡¡‘¡¦¢£¦¢¢¡¡¢¢¡¡¡¡‘¡£¡¡¡‘¡¢¡¡‘¡¡¡¡‘‘‘‘‘¡‘‘¡¡¡¡¡¢¡¡¡¡‘¡¡¡‘€~~�‘‘€‘‘‘¡¡‘~‘€}~~~~~‘‘~~‘‘~~§ûÿþÓ¡‘‘èþÿÿæ™}}~‘~�~~~}}~}}}}}}}}~~}~}~}~}}v}}~‘~}}}}}v|}}}}}p}}~}}pv|||v|Çõÿÿýèžv{õÿÿ÷žwvpppvppv|vpp}}|}vvopolppvolplllpllppvplvpovvlllplllllllllllollllllllCllltlllllllClCCCCCCCuñè{luòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!! ! ! ! !!!! !!!!!! !   !! !   !!!=q¥íýýýýýýýýýýþÿþýýþþþýþþþþþþþþþæÓ                                                                                                                                                                                             ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ �~}�‘~~~~~�~~�‘‘�¡¡‘~~‘‘‘‘‘�~~¡‘¡‘¡¡�€¡¡¡‘¡¡‘‘¡¡‘‘¡‘¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡£¢¡¡£¢¡¡¡¡¡¡¢¢¡¢¡‘££££¡¡¢¢£££¢£££¢¦¦£¢¢£££¢¦¦££££££åþÿÿÿÿÿ뫦££¦®£££¦¦¦¦£££©¦££¦££®®®®££©®¦£©®®£®®®¦¦®®£¦®©¦©¦©®®££®®®®££®®¦®¦«££®®¦®®®£¢¦®®®¦£¦¦£££®¦¡£¦¦©£££¦¦££££¢£££££££¦£¢¢£¦£¡£££«£¢¢¡¡¢£¡¢öÿÿÿÖ¦¢¢¢£¡¡¡¡¢¦¡¡¢£¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¢¢‘¡¡‘¡¡‘‘¡¡‘¡‘‘¡¡‘‘¡¡‘‘¡‘¡¡¡‘‘‘‘~~‘‘¡‘~~‘‘~‘‘~~~~~‘‘~~~~‘~€§úÿÿב¡¥õÿÿýØ‘~}}~~}‘�}}}~}}}}}}~}}}}}}}}}}}}vr}}�}}}}}}s}|}}}}vv}}}}|v||v||p}™àýÿÿúèÙüÿÿÿõ™vvpv|vpvvpvpvvvvvppvolpvpvplopoppllpvplpplovvlloolllllloolllllllolllllllllllllllCCllCCCClÇüÆtlÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷Z!!!!!!! !!!!!!!!!!! !!!! ! !! !   !! =q¥íýýýýýýýýýýýþÿþþýýýþýþþþþþþþþæÓ                                                                                                                                                                                            Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~‘‘‘~‘‘¡¡‘�~~}~~‘‘~~�‘‘�‘¡‘‘¡¡‘��‘~�¡‘�¡‘���‘¡¡~‘¡¢¡¡‘¡¢¡‘¡£¡¡¡¡¢¦£¡¡¡¢¡�¡££¡¡¦¦¦£¡¡¢¡£¢¡££¡¡¡¡££¡¡£««££¦£¢££¢£¦¦¦¦¦êþÿÿÿÿÿê®®®¦®®®¦£©¦¦®¦££¦£®®®¦¦®®££££©¦£©©®¦££££¦®®©£©®©¦©©©®®¦¦®®¦®£©®®®¦®®®¦£©¦¦¦£££¦¦£¦££££®®®®¦££££¦®¦¦¦¦£¦£¢£¦¦££¢¡¡£®£££¦£¢¡£¦«££¦¦«¦¡¡‘­ÿÿÿû¦‘¢£¦£¦¢¡¡¡¡¡¡¡¡¡£¡¡¡¢¡‘¡¡¡‘‘¡¢¡¡‘‘‘¡¢¡¡¡¢£¡‘‘¡¡‘‘‘‘�~~~‘‘‘‘¡¡¡‘¡‘¡¡¡~‘‘‘~~‘¡‘‘‘~€‘}}}~~}‘õÿÿè‘}¬÷ÿÿõ§‘}�‘}}}~�}}}}}}}~~}�~}}~}}sp}}r}}}}p}}}}}}vrvv}}rvvp||vv}ppvpvvvpv|žõÿÿÿÿÿÿÿÿÿ÷ž}vpvvvppppoppopv}vvplvvpppvvvpvpopollpvlllpolopvololltpvllloollvpllllvlllClCCllClllllllyõèyCuòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!$Yóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!! !!! !!! !!! !!!!!!!! ! =}ªíýýýýýýýýýýþÿþýýþþþýþýýþþþþþþæÓ                                                                                                                                                                                     ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ��~‘��‘~~‘¡‘~~~~‘�~�‘�~‘¡‘~‘¡¡¡¡‘‘¡‘~�‘‘¡¡‘‘‘¡¡¡‘�¡¡¡¡¡~¡¡¡¡¡¢¡¡¡¡¢¢¢¢¢¡¡‘¡£¦¡¡¡¡£¢£¢¡¢¡¢¢¡££¢¡¡£££¢¡£«¦££¦£¦¦¢¡£«££¦®åþÿÿÿÿÿë«««££¦¦¦¦®¦£¦¦¦«¦£¦®®¦¦®®££®£®¦®®©®¦¦¦¦®®®©®£©®®£©®©£®®®®®¦®®¦®®®£®®®¦©®¦¦¦¦¦¦££¦®¦£££«®®££££££¦«£¦¦£££££¦¦££££¢££¦£¢£¦££¢££¢£££££¦£‘¡¢êÿÿÿê‘¢¡¡¦¦¢¡¡¡¡£¡¡¡¢¢¢¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡‘‘¡¡¡¡‘¡¡¡¡‘¡¡‘�‘¡‘~‘‘‘¡‘¡‘‘¡‘‘‘‘¡‘‘~¡‘~~‘‘~~‘‘‘‘~}~‘~}§ÿÿÿš‘Úûÿÿèš~}}‘‘}}~~}}~}~}}~}~}}}}}}}}}}}}}}}|s}}}}}}}}v}pp}}vvwwr}pv|v}}rppvvvv}˜Ùýÿÿÿÿÿÿÿÿý×vvvv}vopppppppvvvpvlvvplp|voovovovllooplpopoploppllllvolllvlllvlllltlllllCllClllllllClÌü›lCÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!=Còÿÿÿÿÿ÷_ !!!!!!!!!!!!!!  ! ! !!!!!!!  ! !   ! ! =q¬íýýýýýýýýýýýþÿýýýýýþýþþþþþþþþæÓ                                                                                                                                                                                                            Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ�}~~‘¡‘‘~‘‘~‘¡‘‘¡‘~~�¡‘�¡¡�¡¢¡~~~¡¡¢¡¡¢¡¡¡¡¡¢¡‘¡‘�¢¢¡¡¡~‘¡¡¢££¢¡¡¢¡¡¡¡¡¡¢¡¡¦¢¡¢¢¡¡¡¢¢£««¦¢¡¢¢¡£¦££¦¦£¡¢¢¡¢££££¢£¦£¢£¦¦Ýþÿÿÿÿÿê«¢¢¢£¢££«®¦££®®®®®®¦£££®®££¦®¦£¦®££©®®®®®®®¦¦®®££®®®¦©££®®®£¦®®¦£©®¦¦®®®£®®®®®®¦®®®£££¦®££¦®®«¦®®£¢££££££®¦£¢£¦¦¦¦£¢¢¢£¢¦££¡¡¡¢¡¡¡¡£¡££¥ûÿÿþ¦¡¡¡¢£¡¡¡¡¢£¡¡¢¢¡¢¢�‘¡¡‘¡¢¦¢¢¢‘‘¡‘‘¡¡‘¡‘�‘¡�~‘¡¡‘‘¡�~‘¡¡¡¡‘‘‘‘‘‘�~~‘~‘¡‘‘‘‘‘~}�‘€‘‘¡‘~}}ëÿÿÿèõýÿÿÚ‘}~}}~}}}}}|}~}}}}~}~}}}}}}rw}}}}}}}}}}pvv}p}v}}}p}}p}prvp}p}}}}}vv}}v|pv}˜ßúÿÿÿÿÿÿÿýßppvvp}|vvvvpppolooovppvvolvpvpppvlppvpllllvollvlpllllllllltplllllllllllllllClClllllvòèyl{óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zóÿÿÿÿÿ÷_!!!!!!!!! !!!!!!!!!!!  !  !!!!!!!!! ! !!!!qªíýýýýýýýýýýþÿýýýþþþýþýýþþþþþþæÓ                                                                                                                                                                           ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~~~‘‘�~‘¡‘‘¡‘~~�¡�~¡‘‘‘¡‘¡¡¡~~¡¡¡¡�‘¢¢�‘¢¢¡‘¡¡¡¡¡¡¡¡¡¡‘¡¡¢¢¢¡¡¡£¢‘¡¡¡¢¢¡¡¢¢¡¡¢¡¡¢£¢£¦£¦¢¡¢£¢¢£££££££££¢£££££¢££££¦¦£åþÿÿÿÿÿ릡£©£££¦®£¦£¦®®£©®®££££®®¦£®®¦©¦©££¦®®®®®®¦®®®¦¦®®¦®®®££¦©®¦®®®®£®®®¦©®®££®®®®®®©©¦£££¦®¦£¦¦¦©¦¦¦££¦¦¦¦£££££££¦£££¢£¦££££££¢¡¢£¢¢¢¡£¢££¢Öÿÿÿí£¡¡¢£¢¡¡‘££¡¡¡¡¡£¡�¡¡¡¡¡¢¢¢¡¡‘‘‘¡¡¢¡�‘‘¡‘‘‘‘‘¡¡¡‘¡~~‘¡¡¡¡‘‘‘‘‘�‘‘~~‘‘¡‘�€‘‘}~‘‘}~‘¡�~�™ýÿÿÿÿÿÿûÓ¤~}~}}~}~}}}}}‘~}}~�}}}}}}}|}}}}}}}}}}}}}s}}}vrp}}}}}p}vvvvvvv}}}}}pvs}vvppv™Ùúÿÿÿÿÿÿÿèžvpvpv||ppvpppppppppppvopopvlvoppvlvvpplllppplloolllllllllpllllllltlllClllClllllllCÌü�tl×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!CóÿÿÿÿÿúZ!!!!!!!!!! ! ! !!!!!!  !! ! ! !  !!   ! $pªíýýýýýýýýýýýþÿýýýýýþýþþýþþþþýèÓ                                                                                                                                                                                                                  Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��¡¡‘~~~~~‘¡¡¡~‘‘~¡‘‘~‘¡¡¡‘~~¡¡‘¡¡¡‘~~�¡¡‘�¡¢¡‘¡�‘¡¡¡¡¡¡£¢¡¡¡‘‘‘¡¡¦¢¡¡¡£¦£¢¡¡¡¢¢£¦£¢¡¡¢¡¡¡¡¡¡£¦¦¢¡¡¢¡£¦¦¢¡¡£¦¦¦¦£¢£¦£££åþÿÿÿÿÿ¦®¦¦¦¦£££¢£®¦£££££®®¦«££®®®®®®®®©©®¦©¦£©®®®®®®¯®£®®®££©®®®®®®®¦££££££©¦££££££¦¦£®®¦££©¦©¦©¦££££¢£«¦£££¢¢¢¦«¦££¢¡¡£££¡¢¦¦¦£¢£«¦¦¦¡¡¡¡¢¡¡õÿÿÿÔ¡¡¡¡¡¦¢�¡¢¡¡¡¡¡¡¡¡¡£¢¡¡¡¡‘¡¡£¡¡‘‘¡¡¡¡¡‘‘‘‘¡¡¡‘¡¡¡¡‘‘‘¡‘‘~~~~~‘‘~~~~~‘‘~‘‘~~~¡¡}~‘‘}}}êÿÿÿÿÿÿõž}�‘}}}}}}~‘‘‘}}}�}}}~}}}}}}}s}}~~}}}}}}}~}}}}}v}}v}}~~}}p}|v}}}pvp}}}pv}}wpp}}pv˜ßüÿÿÿÿÿÿýà�|vvvvpvvpvvvv|}vpllopppolvpppooolllolppllollllpvvolplllllupllllollCllvlllollCCC{õè{l{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!! !!!!!!! !! !!!! !   !  !!!!q¥íýýýýýýýýýýýÿýýýýþþýþýýþýþþþþæÓ                                                                                                                                                                                                         ÓÓüüúüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ~‘¡‘‘~~~�‘¡‘‘‘‘‘‘‘�~€‘¡¡‘‘‘‘‘‘Ÿ¡¡¡��¡‘¡¡¡‘¡¡¡‘‘‘¡¡¡¡¡¡¡¡¢¡¡¢¡�¡¡¡£¡£¡¢£¡£¡¡¡¡£¢¢£¢¡¢£¡¢¡¡¡¡¡¡¦¦¢££¢£¢£££¡¢££££©¦££®¦££åþÿÿÿÿÿë«®£££©¦££££££¦¦®¦££¦®¦¦®¦©®®®¦¦®®®®®®©¦®©®®®®®®®®®®®®®£¦®®®®©©®©®®££¦££¦®©££££¦®££¦®¦££©££¦®¦££££££««£££¢¢¢¦®£££¢£¢£«¢¡¢¦¦££££££¦££¢¡¢¢¢¡­ÿÿÿû¢¡¡‘¢¦¡�¡¢¡¢¡¡¡‘¡£¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡‘¡¡¡¡‘¡¡¡¡¡‘¡¡‘‘¡¡‘‘‘¡‘¡‘‘‘~~‘€€€~‘‘‘‘‘‘~~‘‘‘‘~‘‘~€šýÿÿÿÿüÚš‘~}�}}}~}}~~‘‘}}~~}}}}}}}}~}}}}}}~}}}}}}}~}}}}}}}rp}}}}}vv}qw|q}p}}w}}ppp}p}pv}vov}™àÿÿÿÿÿÿÿúÙvvvvvppvpvvvvplplppvppllppvvoolloopvvlllooolllpllllolllovulllllllllllCltlllClÌü›olßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@óÿÿÿÿÿ÷_!!!!!!!!!! !!!!!!!!!!!!! ! !! !! !!9q¥íýýýýýýýýýýýÿÿýýýýýþýþþýþýþþþæÓ                                                                                                                                                                                                                                     Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ~��~�~�‘‘~~~~‘‘‘¡‘‘¡�����‘¡¡¡�‘‘�¡�¡¡¡~‘‘‘¡¡�¡¢¡¡¡¡¡‘¡‘����££¡¢¡¡£¡¡£¢¡¡¡¡‘¡�¢£¢¢£¡££¢££££¢£¢¢¦£££££¡¡£¦«¦£¡££¦£££¦¦£©êþÿÿÿÿÿê««¦£®«¦££©®¦®®®®®¦£¦¦¦¦®®®®®®©£®®®®¦®®®®©¦®®©®®®©£¦®®®©®®©¦®££££®®®¦®®®®®®££¦¦®®®£¦«¦¦®®®££¦¦£¦£££¡©«£££®¦¦¦¦¢¡¡¢¦¦«£¢¡¦¦¢¡¡¢£¢¡¢¢££¢¡£¦££ëÿÿÿÝ¥¡¡£¦¡¡££¢££¢¢�¡¡¡�‘¡¡¡¡¡‘¡¡‘¢¢¡‘‘¡¡‘¡¡¡‘‘�~¡¡‘�¡¡¡‘��‘‘‘�~~‘¡¡¡¡‘~~~~~‘‘~~~}~~~~}~ëÿÿÿÿ॑}~~}}}‘‘€}}}}}~}}‘‘~}}}}}}}}}}}}}}|}s}}sp}}}p}}}}vv}}}p}p}}}|}ppp}wpppw}}pp}ppv}}ppvwÙÿÿÿÿÿÿÿþúÙopvolpvpopvvvvpvvpvplppvwppvlopoollolovolvplllolpplllllllllllCllClCClllClC{÷èyCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Z÷ÿÿÿÿÿ÷x!!!!!!!!!! ! ! !!!!!!!!   !!!!!!!!  ! ! =qªíýýýýýýýýýýþÿýýýýýýýþýýþýþýýþæÓ                                                                                                                                                                                                                      ÓÓüüúüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ~‘‘~~€~~�‘‘~~‘¡‘‘¡¡¡‘~‘‘~‘¡¡‘~¡¡‘‘¡¡¡��‘¡¡‘¡‘¡¢£¡¡¡‘¡¡‘�‘¡¡¡£¡¢¡¡¡¡¢¢¢¡¡¡¡‘¡¡¢¦¡£¢¡££¡¢££¢¢£¢£«£¡££££¢£¦¦£¡¡££¦£¡¢¦¦££åþÿÿÿÿÿë«£¦¦¦¦£¦¦¦®£¦®®®®®¦£¦®®¦®¯®£¦®®¦®®®£©¯¯®£©®®®®®®®©£©®®¦®±®©®¦®¦¦£®®®®®¦£©©££££©®¦£¦¦¦®®¦¦¦¦£¦©¦££££££¦¦¦¦®¦£¢£¢££¦¦¦£¡¢£££¢¡¡£¦¢¡¢¡¡¦¢£¦¡¢°ýÿÿþ«£¢¡¡¡££¦¡¡¢¢¡‘¡¡¡‘¡¡¢¡¡¡¡¡¡¡¡¢¡¡¡¡‘¢¡¡¡��‘�¡¡¡‘¡¡¡¡‘�‘‘�~‘‘¡‘¡¡¡‘~}~~~¡‘~~‘‘~~}}}Óþÿÿÿà¥}}}}}~~}~~~�~}}~}~}�}‘‘}}}|}~}}}}}|v}}}}}}pp}}}}}}}p}}}}vpv}s}}}}}}}}v}}}|}}vp}pp}vpppvp{àÿÿÿÿÿÿÿÿÿúߘpppppoovvvppopvpppoovvvvlppvlllolllpolloppllllpolllllllllllllllClCllllllßü›tlßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!!!!!!!  !!  !!!! !!!  =qªíýýýýýýýýýýýþÿýýþýýýýýýýþýþþþæÓ                                                                                                                                                                                                                     Ó×üüüüüúüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ�s�‘‘‘�‘‘~~�~~��~~�‘~�‘‘��¡¡�~¡¡‘‘‘¡¡‘¡¡¡¡¡¡‘�‘¡£‘��¡¢¦¡¡¢¢¡¡¡¡¡¡�¡¡¢¡¡¡£¢¡¢¦£¦¦¡¡¡‘¡££¢¢¢£¢¢¡¡££¡£££¦£££££££¦££¦£¡££££åþÿÿÿÿÿꦣ¦©©®®®®¦¦¢¦®¦££®®¦¦®®££®®©£©®®®¦®©£¦®©¦®®£©£®©®®®¯®££©±±®®®¦£©®£¦¦®®©£®®©®®¦¦¦££¦®®®¦££¦£££«®¦¦¦®£££££¢££££¦££¢£¦££¦¢¢¢¢£££¢££££¡£«¦¦£¡¡¢Ýÿÿÿõ¡¡¡¡£¢¡£¡¡¡¡¡¡££¡¡¢¢¡‘¡¡¡¡¡��¡¡¡¡‘�¡¢¡¡‘�‘¡¡‘��‘¡¡¡‘~�¡‘~�‘�~~‘�‘¡‘~~}¡‘~~~~~‘~‘¥úÿÿÿè‘‘‘‘‘‘�~}~~}}}~~}~}}}}}~~}~}}~~}r}�}~~}}}}}}}}}v}}}vp}}}pv}}~}}wp}pppppp}pp|vvpppv}}p|}vvv|üÿÿÿÿÿÿÿÿÿÿüè˜opvpoppovpoopoopopplpollooopvoovplllolvollllltppollllllCllovollCCllllƒõèuC˜úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!!B÷ÿÿÿÿÿ÷_!!!! !!! !!!!!!!!!!!! ! ! !  !  !!!!q¥íýýýýýýýýýýýÿýýýýýýþýýÿýýþýýýæÓ                                                                                                                                                                                                                                 ÓÓüúüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ�~~‘¡¡~~¡‘~}~~‘‘~�‘��¡¡�~‘¡¡~�¡¡¡�‘‘‘¡¡‘‘¡¡¡�‘¡¡¡‘~�¡£¡¡¡¢¡¡¡¡¡¡¡‘¡¡¢¡�¡¦£¡¢¦£££¢¡¢¡¡¢¢£¢¡££¢¢¡££¡¢£¦¦£¡¡£¦££¦££¦£¢££££åþÿÿÿÿÿꦣ£££«®®®®££¦®®¦£¢¦®®®®¦¦®®®®£®¯®¦®®®££®®¯®£¦©£®®¯®®¦£¦®±¯®®®©£¦®©¦®££¦¦¦®®£®®¦£££¦¦©®®¦¦®¦££¦«¦©®¦¦£¦¦££¢£££¦¦£¢£¦£££¢¡£¢¢£££¡¢¦£¡£¦££¢¢¡£¦õÿÿÿÚ¦¡¡££¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡‘‘‘‘¡¡¡¡¡‘¡¢¡¡¡‘�¡¡‘¡¡‘¡¡¡‘¡‘¡¡�~��~~�‘‘¡¡‘~~~�~‘~~~‘�¡õÿÿÿÿ§}~‘¡‘}‘~}‘~}}��~~~}~~}}~~~}}~}}}}}}}}~}}}}}}}}|}}}pp}}rvvv}}}}}|v}wpp}w}}p}}}pppppvvv|}}v}}vòÿÿÿÿÿÿÿÿÿÿÿÿýè˜vppopppplopppopvpolpllpplopovvoollloopvlvlllolluvllllCllolllllCllllßüžlláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!$!!@óÿÿÿÿÿ÷_!!!!!!!! ! !!!! !!! !! !    !!  !!pªíýýýýýýýýýýýþÿýýýýýþýýýýþýþþþæÓ                                                                                                                                                                                                      Ó×üüüúüüüúüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ �‘~~�}~~¡‘��~~‘‘‘~~‘¡‘�¡�~~‘‘‘¡¡¡¡~¡¡¡¡¡¡‘‘¡¢¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡££¢¡¡‘¡£¢¡‘£¢¡¡¡¡¡¡¡£¢¦¢¡¢£¢££££££££¦¦¡£¦£¢¢££££££¦£££åþÿÿÿÿÿî°¦£¦¦£££¦®£££¦¦£©££®©®®©¦©£®®¦£®®¦®®®©£©¦£®¯¯©£©®©¦©£©©¦®®££¯®®®®±®®®£¦®®®¦£®®®®®®®®©«££¦©£¡£®¦¦££«¦££££®£££££¦¦£¦®£££¦®«££¢¢£¡£«£¡¡¡¡¡¢£¢¦«Ûÿÿÿû®¡¡¡¡¡¡¡¡£¡¡¡¡¢¢¡¡¡¡¡¢¡¡¡¢¡¡�‘¡¡¡¡¡¡¡~‘¡¡¡~~¡¡¡‘��‘¡‘~~~‘¡‘‘‘‘‘‘�¡‘~‘¡‘~}}~¡‘Ôúÿÿÿÿõ¡‘~}‘~}}}�‘}}}~}}}}}€~}}}}}~~}}}~}}|}|v}|}}}}}s|}~}}}}}}}sv}}p}p}pp}}}vpppv}}p}wv}pwppvpvppppæÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜vpopooopvooopoppollovpllpopvoollvllllllllllllllllllluvlCClllllCl˜÷á{o�üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!!Cóÿÿÿÿÿ÷_!!!!!!!!! !!!!! !!!!!!!!  !  !!! !!! !qªíýýýýýýýýýýýÿýýýýýýýýýýþýþýýýæÓ                                                                                                                                                                                                                          ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ ¢‘�~~~}~‘¡¡�~~~‘‘�~‘¡¡‘‘‘�‘‘~‘¢¡‘‘‘¡¡¡‘¡¡‘¡¡¡¡�‘¡¢¡‘¡¡‘¡¢¡¡¡¡¡¡¢¢¢¢¢¡��¢£¡¡££¡¡¢¡¡‘¡¡¢£¢¡¢£¢¦¦£¦££¢£££¦££¢£¡¢£¢¢££££££åþÿÿÿÿÿî«££¦®¦££¦¦£¢£©££«®©£©©®®®££®®®®®®®®®©¦©®®©®¯®©£©®®¦©®®¦£¦®®®®®®®¯®®®®®®£®®££®®®©®®®®®££®¦£¢£¦¦£¦¦£¦¦£¦¦££¦¦¦¦££££¦¦¦¦¦¦«¦¦££¡¢¢£¦£¡¡¡¡££££¦¦¦ëÿÿÿë¡¡£¡¡¡‘¡¢¡¡£¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡‘�‘¡¡‘¡‘‘‘¡�~~¡¡‘‘‘‘‘¡‘¡�}‘‘‘~}~‘¬õþÿÿÿÿÿè‘‘~}}~~}‘‘�}}}~}~~}}~}~}}}}}}}}}}}}}}}sp}}}p}}}}}}}~}}}p}p}}p}p}p}vp}|}vvp}}|v}}p}}vpppppvpov×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜vooppvvplllpvvllppopooopolpppoovlllolllllllllllplllllCCCloulllßü›luèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!$@óÿÿÿÿÿ÷[!!!! !!!!!! !!!   ! !!!!!! !! !!  ! !      !!!!qªíýýýýýýýýýýýþÿýýýýýþýþýýþýþþþæÓ                                                                                                                                                                                                                         Ó×üüüüúüüúüúüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~‘~�‘~~~‘‘‘‘‘‘‘¡~}~��‘‘¡¡¡¡~�¡¡‘¡‘‘‘���‘�¡¡‘¡¡¡¡£¡¡‘¡¢¡‘‘¡¡¡¢¡¡¡¡¡¢£¡¢¦£�‘¢¢¡¡¡£¢¢¦££¦¡¡£££¦£¢¢££¡¡¢££££££££££¢£¦¦¦¦£åþÿÿÿÿÿꫦ¦¦£££££®®®®®®¦¦®®®¦££®®£©®®¦©¦©«¦¦©®®©®®¯®®®©®¯©¦®®®£®©¦®©®®®£®®¦£¦®£©®¯©££®®¦£©££££¦®®¦®¦¦¦¦¦¦£££¦¦£££££££¢¡¢£££££¢¡¡¢¢¦¦£¢¢£¡¡£££¢£¢¡¡¡¡¡¦ýÿÿþ­‘¡¢£££¡¡¡¢¦¡¡¡¡¡¡¡¢¡¡¡¡¡�‘¡‘¡¡‘�‘‘‘¡�~‘‘‘‘¡¡���‘‘��‘¡‘‘‘¡¡‘‘�~~‘¡~~�‘‘‘¥ëúôýÿÿÿÿÿà‘~‘�}~�}‘}}‘}}}~‘~}�~}~�}~}}}|}}}}~}�‘}}}�}}}}}}|v}}}}}}}}wp}}}v}v}w}ppppvpvp}}ppwvpp}}v}vpv}žÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜ooopvppvpopolopololloollollloolloolllCllolllovllllolllllCll›÷áuCÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zóÿÿÿÿÿ÷_!!!!!!!!!!!!! !!!! !!!!!!! !   !    !!qªéýýýýýýýýýýýÿýýýýýýýýýýýýþýýýæÓ                                                                                                                                                                                                             ÓÓüúüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ�~}~‘‘~~~~‘‘~~‘‘¡�~}~~~��¡¡¡‘¡‘�‘¡¡‘‘¡‘���‘¡‘‘¡¡‘¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¢¢¢£¡¡£¢¡‘¡¡¡¡¡¡££¦¦£££¡¢£¦¦£¢¢¦££££££££££££££¢£¦®®¦®êþÿÿÿÿÿë«£¦¦££££¦®®®®®®®®®¯®¦££®®£®®©©®¦®¦¦£¦©¯®®¯®©®¯©¯®©©®©©©®®£®®¦®®£©©®££££®®®®££®®©£¦¦¦££¦©®®®®®®¦££¦¦¦®¦¢¢£££¢£¡¡£££¡££££¡¡¢£«¦££¦¢¡£¦£££¢¦£¢¢¡¡Üÿÿÿõ¡¡¡¢££¢¡¡£¢¡¡¡¡¡¢¡¡¡¡¡¡�¡¡‘�‘¡‘‘¡‘~~�~¡¡�‘¡‘‘¡‘‘¡�€¡¡‘‘‘¡‘¡¡‘~~‘‘‘~~‘¡Úûõ§¥ýÿÿÿÿÿÚ‘�~‘�‘~~�}}‘}}|}‘�}~~~�~}}}w|}~}}}~}~~}}}~~}}}}}}pv}}|}}}}}}}}s}pppp}vppppppvppp}v}|v}}}}pvvp™ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜popvvvlloppplllllllpooplllllopllpolllollllopollllolCClCClßü›luñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!$Aóÿÿÿÿÿ÷[! !!!!!!!!!!!!!!! !!!  ! !!!!    =p¥íýýýýýýýýýýýþÿýýýýýýýþýýýýýýþæÓ                                                                                                                                                                                                                                                         Ó×üüüüúüúüüüüúüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŸ��~‘‘‘¡‘~~¡‘~‘‘�‘‘‘¡‘¡¡¡‘‘~�¡¡~~¡¡¡�‘‘¡¡��¡¢££‘�‘¡¡�¡¡¢¢¡£¡¡¡¡¡‘¡¢¡¡¢‘¡££¡¡£¢£¦¢¡¢¡££££¡¢££¢¢¡¡¢££££¢¢£££££¦££££©¦££££Ýþÿÿÿÿÿê««¦¦££¦®¦¦££¦¦££®¦¦®®¦£®®®®®®®®£®¦©®®®®®£©©©©©£©®¯¯¯®¯®®£©®¯¦¦¦®®¯®®®®©¦¦£¦¦®®££®£¦®®¦£££¦®££®¦£¦©¦£££¦®¦¦¦£££¢¦®£¡¦££¦££¢¡¡££¢¡¡££¡¡¡¡¡¢¢¢¢¡¡¥õÿÿÿ墡¡¢¡¡¡¡¡�¡¡¡¡¡¢¡‘‘¡‘‘¡£¢¡¢¡¡��¡¡�‘¡¡¡¢¡~��¡¢¡‘���‘�~~~~~�¡‘}~‘�¡‘¡Ô÷ûÚ™‘àÿÿÿÿÿÿØ‘}}}}~~~¡~~~}~}}~}}}}}}~}}}~~}}}}~}}}}}}}}}}}}}~}p}}}}}v}}}wvv|}}}}}vp}}}}|}}vpvwp}vppvvpv}|pvýÿèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜lovolooovploppvppollopoooooplllollollllCllCllCCllCllll›úèylÊýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Zóÿÿÿÿÿ÷_!!!!! !!!!!!!! !!! !!! ! !    ! =qªíýýýýýýýýýýýÿýýýýýýýýýýýþýýÿüæÓ                                                                                                                                                                                                                                                      ÓÓüúüüüüüüúüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖŸ¡~~‘‘¡¡‘}�¡‘‘‘~�‘¡‘‘¡‘‘¡¡¡‘¡¡‘~~¡¡¡¡¡¡‘‘~�¡¢£¢¡¡‘‘‘¡¡¡¢¢‘¡¡¡¢£¡�¡¡¡¡¡¢¡¡¢¢¦¢¢£¦£¡¡¡£¦£¢¡££¡¡¡¡¢¡£¢££¢¡¡£££¡££££¦®¦££¡£åþÿÿÿÿÿë°®®®££¦®®£££¦¦£®®®®®¯®£¦®®®®®®®®®£©©®©©®®££¦£££©®¯®¯¯®¯®®®®®©©®¯¯¯®®®®©®¦¦£©®®©££¦¦®®®£££©®®¦£¦®®®¦¢£¦®®®£££¦££¦«£££¢¢¦¦¢¢£¢¢£¢££¢¡¡¡£¡¡¡£¢¡¡¡¢­ÿÿÿý¨¡¡¡¡¡¢¢‘�¡¢¡¡¡¡¢¡¡‘¡�¡¢¢¡¡¡‘�‘‘‘‘¡¡¡¡¢¡¡��¡¡¡¡¡~�‘‘~~~~}‘¡�~‘‘‘¡§õýë§€~ÚýÿÿÿÿÿÿÚ~~~}~}}~¡�~}‘�}}}|rs}}~~}}}~}|}}}}}}}~}|}}}}}}}}}}}}}}vsp}}}}}}}p}}}pv}v}}vpvv}}}}|}}}p}vpvvppúÿ�Êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜lppollpoloovvvooolppoooloollllllolllllCllCllCllClullâý›v{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!=!!!Cóÿÿÿÿÿ÷] !!!!!! !!!!!!!!!!! !!!!!!! !! ! ! ! !  =sªíýýýýýýýýýýýþÿýýýýýýýýýýþýýýþæÓ                                                                                                                                                                                                                                                          Ó×üüüüúüüüüüüúüüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ ¢~~~~‘¡~~‘‘~~‘�‘¡‘‘�‘‘~‘‘‘‘‘‘¡�¡¡¡‘‘¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡�¡£¡¡¡¡¡££¡¡¢¡¡¡£¢¡¢££¡¡¢£¡¢£¡¡£¡¡££¡¡¢£££££££¢¡££££¦££££££¦¦££££åþÿÿÿÿÿꦦ¦®«¦¦£££©®¦¦¦¦¦£¦££®®®©¦¦©¦®®®¯®®®¯®£®¯®®¯®¯¯¯¯®£©®®®©®®®®®¦©¦££®¦®®®¦¦®®¦¦¦££®¦®®¦¦¦££££©£££¦¦££££¦¦£££¢££¢¢£¦£££¢¦¦£¢¦®¢££¡¡££¡¢£¢¢£¢¡¡¡¢¡£¡êÿÿÿí£££¡‘¢¦¢‘¡£¢¡¡¡¡¡¡¡¡‘¡¡¡�‘¡¡¢¢¡¡¡¡��‘�‘‘‘~‘¡‘~~�¡¡‘‘‘¡‘~~‘¡~~~‘àýøØ‘‘}ÚýÿÿÿÿÿÿÿÚ}~‘~~}}~~}}}‘‘~€}}~}}}~~}~~}}s~}~}}}}~}}}s}}}p}}}}}rw}}}}}p}r}vv}}}v}}rvp}}}v}|vpppv}pvppvpppvõÿwvúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜vplovvpploppllllopllloolllloollloolllolllloolllol›úáyl×ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=$!Bóÿÿÿÿÿ÷x!!!!!!!!!!!!!!! !!!!!  !!     ! 9qªíýýýýýýýýýýýÿýýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                ÓÓüúüüüúüúüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ ��‘‘~€‘~�‘‘~‘~‘¡¡¡‘‘���¡‘��~‘¡¡¡¡‘�‘‘�‘¡¡‘¡¡~~‘¡¡¢¡¡¡¡‘‘¢¡¡�‘¢¦£££¡¡¢£¡¡¡££¢¡¡¢¡¦¦¡¡¡¡¡¢¡¢¢¦¦££¦£¡¡¡¡£¢¢¢££££¦¦¦££¦£¢£êþÿÿÿÿÿ릢£«®®¦££¦®¦££¦©¦®©£©®®®®®®¦®®©®®®®©®¯®¦®¯¯¯¯±¯±®£©®®®©©®¯®®©£©££©£££¦®¦©®®®¦®££¦©¦£¦®¦££££¦¦££££££¦£®¦££££¢¡¢¢¢£¦¦¦£¦¦££¦£¡¢£££¢¢¡£££¡¢¡¡¡¢¢¡¢£¥ûÿÿþÖ¢¢‘¡¢£¢¢¢¢£¢¡‘¡¢¡‘¡¡¡¡¡¡�‘¡¡¡¢¢¡‘‘‘�~‘¡�~�‘�~~‘¡¡¡¡¡¡¡~}‘‘€~Ô÷ý륑‘‘æþÿÿÿÿÿÿÿÿà€}}~�}}~~}r}‘‘‘�~~}}~}}}}}~~}}~}~~}}}~}}}p}~}}p}p}pvr}}}}}}pv}}p}}ppvw}vv}}}}pp}}vpv}}ppvvpv}võýp×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜ooopvpolopllllllllooolloovolllllloopollllloooluèþ�C{õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!$!!! ! !! !  ! ! !! !! =q¥íýýýýýýýýýýýþÿýýýýýýýýýýþýþýýæÓ                                                                                                                                                                                                                                                 ÓÓüüúüüüüüúüüúüüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ���~~��‘‘�‘¡‘‘~��‘�‘¡‘~~~‘¡¡‘‘‘‘¡¡¡¡‘¡¡¡~�¢¢¡¡¡¡¡¡¡¡¡‘¡¡¡¢¡‘¡¡¡¡¡¢¡¡¡¡¢¡¡¢¡¡¢¢¡£¢¢££¦££¢¡¢¢¢£¢¢¢£¦¦¦¦£¦¦¦¦££¦££££¢¦«£¢åþÿÿÿÿÿ릣¦£®®«££®©¦®¦¦®¦®©£££©££®®££®®®®¯®©£®®©¦®®®®®©©£®¯©©®©©®®©®©©®®®®®®¦£®£®¦¦¦®®®¦®©¦££¦¦««¦£££££®¦££¢£«¦¢££¦££¦®£¢£££¢£¦£¢¢¡££¢¢¢¢£££¡¡¡¡¦££¢¢¡££¡Ôÿÿÿû¦¦£¡¡¡¡¡¡¡¡£¢‘¡¡¢‘¡¡¡‘‘¡¡¡¡¡‘¡¡��¡¡‘�¡¢‘�¡¡‘‘¡‘��‘¡‘‘~~‘‘‘¥ëýõ¬‘€~§øÿÿÿÿÿÿÿÿÿÿà‘~}~‘~}}��}~‘}~~~~}}~�~}~}~~}}}|}~}~}}s|}}}}}v}}~}}}}}}}}}}pp}}p}p}}}v|pp|v}}}pvvpppwvvv}vppppñýv˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýàoovpoooooploopollloooooolllolllllllClolClllC�üául×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@÷ÿÿÿÿÿ÷_!!!!!!!!!!!! !!!!  !  !! =}šíýýýýýýýýýýýÿýýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                            ×ÓüúüúüúüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ����~~~‘‘�~‘¡¡‘~‘‘�~~‘‘~~~~¡‘��¡¡‘¡‘¡¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡££¡‘¡‘�¡£¡¡‘££¡¡£¢¡¡¡¡¡¡££¦£¢¦¦¦¦£¡‘¡¢¢£¡¡¢¦«££££¦®®®¦£££¢££££¦®£Ýþÿÿÿÿÿ릣®¦¦®®£®®¦¦®®®®®££££©£££®®¦££®¯®¯¯££££®®©£©®©©¦£®¯®®©£®®£®®©®±®©££¦©¦¦®¦¦£££®®®®®¦££££®®£££¦£££¦®¦¡¡££¡¡££¦£¦«£¡¦¦£¡¢£££¡¡££¡¡¡¡£££¡¡¡¢¦£££¡£¦£¡¥õÿÿÿê«£¢¢¡‘‘¢¡‘¡¦¦¡¡¢¡‘‘¡¡‘�¡£¢¡���~‘¡¢¡¡¡¡¡‘¡‘¡¡¡¡~€�¡‘~‘¡¡¡ÚýýÚ¤~}‘Úýÿÿÿÿÿÿÿÿÿÿÿ怀‘‘‘�}}~~~��~~‘�}}}}~�~}~‘�}}}}~~}}}}}}}}}}r}}}}~}v||p}}}}}|}||pv}}}pppppv}}}vpppopppvppvppppè÷�pvýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýß{polooollllpvvooololoollllllllCCllClolCCCluèý�l{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷_!! !!! ! !!!!!!!!!!!!     ! !=q¥íýýýýýýýýýýýþÿýýýýýýýýýýýýþýýæÓ                                                                                                                                                                                                                                                          ÓÓüüüüúüüüúüúüüüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~~~‘~�~~~~�‘��‘�‘‘‘‘¡‘‘¡‘‘�‘¢¡‘‘�‘¡¡‘‘¢¢‘‘¡¡¡¡¡�¡¡¡¡‘¡¢¡¡‘¡¢¡‘¡¦¢~¡¡¢¡¡¢¡¢¢£¢¡¢¢£¡¡£££¡£££££¡£££¢¢¢££££££££££££££¢£¦êþÿÿÿÿÿ£££¦£££®©£££¦®«££¦¦®®®®®®©®©£®©®±©®®©®±®£®¯®¯®©®®®¯®©©£©®¯®®®®©¦®©®®®®®®¦¦©¦©®££££¦®®®®££®¦¦¦££¦£££®«¦£££¦¦¦¦£¡£®£¢¦¦£££¢¢££££¡££¢£££¢££¢£¡¡¡¢¢£¨þÿÿþ­¡¡¡¢¡¡¡¡¡‘¡£¢¡¡¡¡¡¡¡¡‘‘¡¡��¡¡¡‘¡¡�‘��‘‘‘‘¡¡‘~‘�‘‘‘~~‘¬õþí§¡‘~¥õÿÿÿÿÿÿÿÿÿÿÿÿÿè}�‘~~~~~‘~}~}~}~}~~~}}}~}|}~}}sr}}}}}}}}}|}r}}}}}}}rv}}v|}}}}pw}}}}v}}}pvpp|}|}v}|v|pv}vppvvvvè÷vvòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýßwoovopplloololloolllloplllllllllllllllCCÇüèyCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!9!!!!!!!!! !! !!!  ! ! ! ! !!qªíýýýýýýýýýýýÿýýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                          ×ÓüúúüúüúüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~~�‘�~~~~~~~€‘~~‘‘�~¡¡¡¡¡¡‘�¡¡¡¡‘�¡¡¡¡¢¡¡¡¡‘�‘�~‘¡�~�¡¦«¦¡‘‘¡¡£¦£¡�¡¡¡¡¢¢££¦£¡¢¡¡£¢¢£££¢£££££¢¢££¦£¡¢¢£¢¢¦®£¡¢£¢¡£££åþÿÿÿÿÿî°¦¦¦¦£¢¢£¦©£££®®£¢£¦®®®®®®®®¯®®©©®¯®®¯±¯±®©®¯¯¯¯®®©¯¯®©®£©¯®®£¦®®®®®®®®®®¦«®®®¦¦®®®®©©®®¦¦®®®®®£¢¢££«®®«¦££®¦®®¦¢¢££¦®«££¦¦££«¦¦¢¢££££££¡¢¢¦£¢¡¢££¢êÿÿÿõ¡¡¡¢¢¢¡¡‘¡¡¢¡‘�‘¡¡‘‘¡‘¡¡¡‘¡¢£¡���~~~~�‘¡¡¡¡�~‘¡‘‘€~‘æýýØ¡¡¢¡Úýÿÿÿÿýþÿÿÿÿÿÿÿÿí‘}~‘}}~‘‘~}~}}}}~}}~}}}}}r}}}}}v|}r}}rpvr}pv}~}|s}}}}|vrppvv}}r}}vvrp}}}}}pvv|v}}}}}v}||vpppvvß÷‘}pßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü×wppovooplllollllllopvolllllllCllovolCuèÿ�l˜÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!==9Cóÿÿÿÿÿ÷_!!!!!!!!!!!!!!! !!!!! !!!  ! !!! !  ! ! !!!!!  ! !!  ! =}ªíýýýýýýýýýüýþÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                    ÓÓüüüüüüüüúüúüúüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ ���~~~~�‘¡¡�~~���‘¡‘�‘¡‘~�‘‘‘‘‘‘¡¡‘‘�‘¡‘¡¡¡¡¡¡¡‘¡¡¡£¡�¡¡¡£¡¡¢�¡¢¡¡¡¡¢¡¡¡¡¢¢¡¡¢£¡¢¡¡¡¡¢¢£«¢¡¢¡£££¡¢¦£¡£££££¢¢¦¦£¢¦®¦£££åþÿÿÿÿÿꦦ¦«¦¦©£¦®¦£¦¦¦®®©®©¦©©®©©®©©¦®££®¯©©®¯©®®©®®®©®¯®®®©®¯®£©®¯©®®©®®®©®®©®¦£®©®®¦£££©¦¦¦££¦¦¦®¦¦¦££££¦¦¦¦¦¦¢¢££¦¦£££££¢¢¢¢££¦£¢¢¢£¡£¢£££££¡¢¡¡¢¡¡¡¢¢¡¥ûÿÿÿÝ£¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¡¡¡‘‘¡¡¡¡‘�¡¡¡¡‘�¡¢¡‘‘‘~~�¡‘�‘Ôûÿ륑€�­õÿÿÿÿÿà¥Úÿÿÿÿÿÿÿÿõ‘‘}~}~~}¡~~~}~}}~~}~}}~}}}}}}}}}~‘}}}|}}}~}}}}}p}}}}}pv}}}}rv|}}}rv|}|}v|ppp|vp|vp}p}vpv}vpv}vß÷‘woÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌvoollppllllpplllollllllovllllllllllÇýè{uáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷Z!!!!!!!! !!! ! !! ! ! ! !   !q¥íýýýýýýýýýýýÿýüýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                               ÓÓüúüúüúüúüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~}}}~}}‘¢¡‘~~~‘‘¡¡�‘¡¡¡~~~~‘¡¡~¡‘~~¡‘~‘¡¡£¢¡¡¡¡¡¡£¢‘‘¡¡¡¡¡¢¢¡££¡¡‘�¡¡¡¦¦¦¢¡¡‘¡¡¡¡Ÿ¡¡¡¡£¦¢¡‘¡¡£¦£¦¦££¦££¦£¢¡£¦««®®¦£££åþÿÿÿÿÿꦣ©®®®®®¦©££®¦¢¦®®®®£®®®¦®®¦£££££®®¯®££©®®®®©®®®®®©©®®¯®©©¦©®®¯®®®£®®®®®®®®££¦¦¦££££®¦¦¦®®££¦££¦®¦®®£¢¢££¢¡¡£¦¦£¦®¦£¢¡¡¡¡¡£¦¦¡¢¦£¡¡¡¡¢¢£¢¢¡¡�¡¡¡¢¦£¡Ôÿÿÿý«¡¡¡¡¡££‘‘¡¡¡£¢¢¦¦¦¦¡‘~~‘‘�‘‘¡¡¡¡¡‘¡¡¡‘‘~}~}~¡‘§õÿúÓ‘~‘¡àýÿÿÿÿõ§}~¥ýÿÿÿÿÿÿÿõ‘¡‘~}~~}‘¡¡~~‘~}}‘~‘~�‘}}~~}}~}~~‘€}}}}vpvrvr}}}r}}}}}r}|v}}}pp}}v}}}}|v|}}}|pp|||ppp|vp}}}v}vÙúvvžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÇollllllloooploolClloopplopolCCCl{òÿÇC˜÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!!@óÿÿÿÿÿ÷_!!!!! !! !!! !!! !!! ! !  ! ! ! !!qªíýýýýýýýýýýýþÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                           Ó×üüúüúüüúüüúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ���‘�~‘‘~}�‘‘¡‘‘���‘‘‘�‘��‘¡¡¡¡�‘¢¡�‘¡¡��¡¡¡¢¡¡¡¡¡‘¡¢¡¢¡‘¡‘¡¢¢‘¡¢¡¡¢¡¡¢¡££¢£¡¢¡¢¡¡¢¢££¢£¢£¢¢££££¢¢£££££¢£¦¦££¢¢¦¦¦¦££££åþÿÿÿÿÿꫦ¦¦££££©®®¦¦¦©®®£¦®©®®£©®®££®®®®®®®±©£®®®¯®©®¯®©®¦©¯®©®®¯©®©®¦®®®®£¦¦®©¦©¦¦¦®®±®®¦£££¦¦¦¦¦¦£££®«¦£££££®®£££££££££££¦£¡£¦£¢£¦£¢¢££¡¢£¢¡¢££¡£¡¡¢¡££¡¡¥íÿÿÿí¡¡¡¡¡¢¡�¡¦¢¡¡�‘¡¡¡¡‘‘¡¡¡¡¡¡‘‘¡¡¡¡‘‘‘‘¡¡‘‘‘‘¡¥êýÿ॑‘~¬ûÿÿÿÿýÚ¤~~‘‘ýÿÿÿÿÿÿÿú�~~~}~~~}~~}~}~~~~}}}}~‘}}}}}}}}}s}s}‘}}}|}}}}}}}v}}|}}}|p|}}v|}}p}|vvp}|}}p}ppv|vvppv||pvpp|v×üvoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÇvllopoolllloplCoplllClolllllll×ÿñ{uèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷]!!!!!!!!! !! !!!!!    !!  !  !qªíýýýýýýýýýýýÿýüýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                   ÓÓüúüúüüúüüúüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��‘¡‘~~��~‘¡¡¢¡�~}~~¡¡‘~~~‘¡¡¡‘�¡¡¡¡¡£¡�~~~¡¡¡¡¢¡�¡¡¢¢¡¢¡¡‘¢«£¡�¡¢£¦¢¡££¦¢¡£¢¦¦££¡¡¡£¢¢£¡¢£¦¦£¦¢¡¢¢¡¡££££¦£¢¡¡¢£¦¦££¦®©åþÿÿÿÿÿ뫦¦£££££¦®®®¦©®®®®¦¦£££¦¦¦®©®®®®®®©®¯®©®®£®®©©¯¯¦©¦®¯®©£®¯®®££££©®®®©¦®®£¦®®®®®®££¦££¦¦£¦®®®£¢¦®¦£¢¡¢££¦®®®¦¡¢£¡¡¡££¦¦££¦¦¡¡¡¡¡¢££¡££¡¡¡£¦¢£¦¢¡‘¡¡¡¡¡§þÿÿþ¬¡¦£¡¡¡¡¢¢¢¢¡‘��¡�~���¡£¡¡¡¡¡�¡‘¡¡�~‘¡¡¡¢¢¡Ôûÿ÷¬‘¡¡¥ëþÿÿÿÿ뚀‘‘¡¡‘õÿÿÿÿÿÿÿý‘~�}}‘‘}}}}}~}~~~}}}}~~~~||}}s}}}}}|}~|}~~~~}}pr}r}||}}}~}}}|pp}}ppvrppppp|}pp|ppp|}}p}}}plppp×üplpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷�vpvvvolllllllooolllllClllCC˜÷ÿÇužüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Bóÿÿÿÿÿ÷_!!!!! !!! !! ! ! ! !! !!!   !   pšíýýýýýýýýýüýþÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                           Ó×üüüüúüüüúüüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ����~~~‘~~‘‘‘¡‘‘�~~�‘‘‘�‘‘‘¡¡�‘‘‘¡‘¡¡‘‘¡¡~�¡¡¡¡¡¡¡¡¡¡¡�¡£¡�¡¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¢£¡¡¢¡££¢¢££¢¡¢£¢¡£¢£«£¡¢££¦¦££¢£££££££¦¦££åþÿÿÿÿÿꮦ££«®«¦££¦¦¦¦¦®®¦©£©®¦®®¦©®®®®©¦®£®®®®®®®¯©®®¯®©®®©¯®®®¯®®¯©®©¦©¦®®©¦®®¦£©¦®®©¦¦£££®®®££®¦¦¦££®¦¦¦££¦¦£¢«¦££¦«£££®£¡£®£¢¢£¢¢£¢¢£¢¢¢££¡¡££¡¡££¡¡¡‘£¦¡¡Ýÿÿÿû¡¡¢¡‘¡¢¡¡¡¢¡¡¡¡‘‘¡¡¡¡�¡¡¡‘¡‘¡¡‘‘¡‘¡‘‘‘‘¡¥ëÿþ楡~‘ÓûÿÿÿÿúÔ‘‘~~‘��~Úÿÿÿÿÿÿÿþ‘‘‘~|~‘~‘~|}¡~}~}}~~~~|}}~~~}|}}}}}}}~}|}s}}}}}}}}}}s|}||p}}s}}}}pp}|pprv}}p|}}ppp|v}vpp}rppvvÓýwpppýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷�ooolllloolllllllllClollluèÿñ{uèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!$Yóÿÿÿÿÿ÷_!!!!!!!!!!!!! !! !!  ! !! !  ! !q¥íýýýýýýýýýýýÿýýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                               ÓÓüúüúüúúüüúüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ�}~¡‘�~~‘~~‘¡‘‘¡¢¢£¡¡¡‘‘‘���‘¡‘~¡¡¡¡‘�¡‘¡¡~~~‘¡�¡‘¡¡‘�‘¡¡¡‘¡¡¡�‘‘�‘¡¡¡¡��‘¡¡¡¡¡¡¡£¦£¡¢¦¦¢¡¡¡£¢¡£¦£¢¡£¦£¦©£¢£®££££££®£££êþÿÿÿÿÿí°¦££¦®®¦¦££¦®££¦££££®±¦¦®®££®®®©©£©®®®£©®®®©®®®®®±®©®¯®¯±±¯¯±¯®®®££¦¦¦®®©£¦¦¦¦£¦®¦£¢¦®¦£¢¢££®©£®±®®®©¦£¢££¢¡¦®®¦¦®¦££££¡¢¢£«««¢¡¢£££«®¡¡¡¢¡¡¡£££¦¡¢«£‘¥ûÿÿÿê¡¡¡¡¢¡‘¡¢¦£¢£¢¡¢¦£¢¡‘‘¡¡‘‘‘‘‘��‘¡‘~�~‘Úýÿõ§‘‘‘šëÿÿÿÿÿê¥~�¡‘~‘‘~~‘ýÿÿÿÿÿÿÿ¡}}|}~‘‘‘}}~~}}}||~}}|s}~�}~~}}}||}}~~~}pv}~}}}}}}}}||}}}ppv}}}}}}v|}p}}}|pppv|}p}}}|pppppp|}vžÿvpv÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷žollllovplClCllllllllllžúÿÌlÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!==!!Cóÿÿÿÿÿ÷Z !!! !! ! !!!!!!!!!!!!!! !  !!!   !! !!!!! ! =}ªíýýýýýýýýýýýÿþýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                     ÓÓüüüüúüüüúüüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ���‘�‘~~�‘~~‘~�~‘¡‘�‘¡‘�‘¡‘~‘¡¡�‘‘‘¡¡¡¡��¡¡‘�¡¢¡¡‘�¡‘¡¡¡¡¡¦¡‘¡¡¡¡¡£¢¡¢¡¡¡¡¢¡¡¡£¢¢¡£«¢¡¢¢£¦¢¡¢¡£¦£¢¢¢£££¦¦££££££¦¦¢¢£££©åþÿÿÿÿÿê®®«¢£¦¦®©¦¦©¦£©®«¦¦£©¯®¦©®®¦£®®®®®¦®®®©®±©£®¯®©®®®®®¯®©®®®©¦®®®®®®®®¦¦©¦®®®©®®®¦®¦££¦®©¦¦©¦££££¦¦£¦¦£¦¦£££££££££££¦£¦£££¢¢¢£¦£¡¢¦¢¡£¦£¡¢¡¡¦¦¡¡¡¡¡¡£¦¡‘¢Ûÿÿÿý­¡¡¡¡¡¡¡¡¢¢¡¡‘¡¢¢‘‘¡¡‘¡‘¡¡‘¡¡‘�¡¡‘~¡ÔõÿþÚ¥¡‘‘Úýÿÿÿÿõ­‘~‘~�~~¡‘~~�ëÿÿÿÿÿÿÿ‘}~}~~~~~~~}}¡~}}€~}}}~~~}|}}~~}}}~}|}}}r}~}s}}}r}}}}}v|}}}}v}}rvps}p}v|vp||v|vv|}rpvvvvpvp|pžþvppõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷žvlllolllllllolllllluèÿõ”uñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!Bóÿÿÿÿÿ÷_!!!!!!! !!!!!!!!!!   !  !9qªíýýýýýýýýýýýþýüüýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                             Ó×úúúüúüúüúüúüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ�¡‘~‘‘�‘‘¡‘~‘¡¡��~}}~‘‘¡¢¡‘‘¡¡¡¡~�‘¡¡¡~‘¡££¡¡¡¡¡¢‘‘£¦¡��¡¡¡‘‘¡¦«£¢¡¡¢¢¦¢¡¡£¦¡¡¡¡¢££¡¡¡££££¢¡¡¢¢¡¢££¡¡££££¦£££¦¦£££¡¢££åþÿÿÿÿÿë°®®££¦®®®¦¦£¢££££®®£¦®®¦£®±®©®©££©®¯®®®¯¯©®±±¯££©©£©¯®£©®©£©®®©®®®®¦£££££¦¦¦®®®£¢£®©£¦®®¦®®¦£¢¡¢¢¢¡¢££¦£££££££££££¡¡£££¦®®£¡¡¡¢¦¦£¡¡¢¢£«¢‘¢£¢¢£¡¡¢¦¢¡¡¡¥ëÿÿÿõ¡¡�¡¡‘‘�‘‘‘~�¡¡¡��¡¦£¡¡‘‘¡¡£¡‘¡¡‘‘êþÿõ­¡‘�§õÿÿÿÿýÝ¥¡¡‘~~~~~¡‘~~‘€æÿÿÿÿÿÿ‘}~‘}|}}~~~~�‘�}}‘¡‘}}}}}~}}s}‘‘�}~}s}}~~}p}}}}p}|p}}}rp}~~}rppv|}}}vvv|vpp}}}|vpppppvrp|}|vv}˜ÿplpèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷�olllollC?llllllllÊýÿÌuÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!@óÿÿÿÿÿ÷Z!!!!!!!!!!!!!!!!!!!!  !  !!! ! pšíýýýýýýýýýýýÿÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                      ÓÓüüúüúüüúüüüüúúúüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ~~~��‘‘~€�~‘~‘‘¡‘‘�‘���‘‘‘�‘‘¡¡¡��¡�¢¢�‘¡¡¡¢‘¡‘‘¡¡¡¦¡‘¡‘¡¡¡¡¡~¡¦¢¡¡¡¡££¢¢¡¡¡¡¢¢¢¢¡¡¡¡¢£¢¡£££¡£¡¢£££¢££££££¢¢¦¦££¦¦££££êþÿÿÿÿÿꫦ¦¦¦¦¦¦¦£©©¦©¦££®®££®¦®¦®¯©®©®¦¦®®®®®®®¯©£®®®©©¯®©®¯®©©®®®©®¯©¦®®®®®®©¦®®¦¦©£¦¦¦¦®®«¦¦£¦¦«®¦££¦¦££££¦£«¦£¦£¢¦¦£¦£££¦¢¡£££®£¡¢£££¢¡¢¡¡®¦‘¡¢¡££¡¡¡¢¡¡¢£¡¡§þÿÿþÚ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡‘‘‘‘ÔûÿýÚ¡‘�‘æþÿÿÿÿ륑‘‘‘¡‘~�~~��~~~~¡àÿÿÿÿÿ™~‘~}~}~‘~~~‘~|}‘~}~~}}}}}~~}}}}}~}}}}}}}}}}}}}p}~}}}}}p}}}}|}}p}}}p}r}p}p|pp|}pp|pv}p}vppppvp™þ™wppæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷›ooolllllllllll{ñÿü›{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Bóÿÿÿÿÿ÷_!!!! !! !!!!  !!!!! !  !  !! =q¥éýüýýýýýýýýýþþýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                          Ó×úúüúüúüúüúüúüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~}~�‘¡‘���~~~~~¡¡¡¡¡¡�~¡¡¡‘~~‘‘~‘‘~¡¡¡¡�~�¡‘‘‘~¡¡¢¢¡‘¡¡£££££‘¡¦¢¢¦¢¡¡¡¡£¡¡¡¡¢¢¦¢¡¡¡¡£¦¢¡¡£¦£¢££¡¡£®¦¡¡¡¡£¦¦¦£££££¡¡¢¢Ýþÿÿÿÿÿꥣ£¦®®®££«¦®®®®®®±®££££©®®®£££®©£®©©¦©¦©¯¯©©©¦®®®®®®®®£©®©£©®®©£¦¦¦®®±¯®®¦£¡¢££®®®®±®££¦¦®¦££¢¦¦££¦¦¦¦££¦£££¢¢££¢¢¦®¦£¡££¡¢££££¡¢¦£¦¢¡¢¢¡£¦£¦¡¡¢¦¡¡¢£¦£¦«Ýÿÿÿû¤��¡¦«¦¢¡¡¡¢¢¡¡¢£¢�~‘¡¡‘‘~¡¡¡¨ëÿÿõ§‘�‘ÓûÿÿÿÿûÓ‘�~�~}~¡¡�~‘‘}~�¡~‘�Óýÿÿÿž~‘‘~¡�‘‘}}}}}}�‘~}}}~��~}}}}||p}||}r}|}~}~}}}}pp}r}pv|pppppv}p|p}}}vpv||vvvpvppppppv|pppppvpp˜þ™|ppßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷�vuvulooooollÌÿÿà{×þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Cóÿÿÿÿÿ÷[!! !!!!! !!!!! !!!!!!!!  !!!    }ªëýýýýýýýýýýýÿþýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                   ÓÓüüúüúüúüüúüüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~�‘‘�‘‘¡¡�‘~}‘‘¡¡¡‘‘~‘¡¡‘¡~�¡¡‘‘‘‘¡¡¡¡‘�¡¡‘¡‘‘¡¡¡¡¡¡¡‘¡¢¡¡¡¡¡¦¡¡¢¡¡¡¡£¢¡¡££¡¡£¢¡¡¡¡££££££¢¡££¢¡£¦¦¦£¢£¡¢¦¦££¦¦¦££££¦åþÿÿÿÿÿꫦ¦£¦®¦£¦®«¦¦£©®®®®¦¦®®¦®®®¦£©®©®¦¦®®®®©£®¯®®®®®£©¯®®®©®®®©©®®©£®®©¦©¦®¦®®¦¦©©¦®¦£¦®¦£¦®®®¦££££¦£¦¦¢£¦¦££¢£¦¦¢¢££¦¦£££££¦£¡£¦£¡¢££¢¢¡¡£¢¦£¢¢£¦¡¡¢¢¡¡£¢¢¡¢¥öÿÿÿê¡¡�¡¦¢¡¡¢¢‘¡¡¡¡¡¢¡‘¡¡¡‘�‘‘¤ÚýÿûÚ¡¡‘¥ëÿÿÿÿþê¤~~‘~~~�‘‘¢‘~�~~‘‘~~‘‘�Úÿÿÿ¬€‘~~~}~¡~~~~~}~}~}~r}~~}}}}~~||}}}~}}}}}}}}}}}p}}}p}}}p}}}pr}}vv}}}}pp}}}|prvvppp}pvpppppvpvv˜þ˜vpvÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõžvllllllll˜õÿÿ�ƒõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷]!!!!!!! !! !!  ! ! !    !qªíýýýýýýýýýýýþýüýýýýýýýýýýýýýýà×                                                                                                                                                                                                                                                                          Ó×úúüúüúüúüúüúüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ��‘¡‘}}~}}~~}~~‘¡���~~~�¡‘~~~¡¡‘‘¡¡¡¡¡¢¡¡¡¢£¢¡��‘¡¢¡¡¡¢¡¡¡‘¡¡��¢¡�¡‘¡‘�¡£¢¡¢££¡£«££¦¢¡£££££¢£¦¦£¢¢¢¡¢®¦£¡¡££££¦«£¦¦£®®êþÿÿÿÿÿí°¦££¦¦£££®®©¦££££££¦®®±®££££®®®¦®¦£¦®®£©©®®®®©®©£®¯®®¯¯®®¯®¯®®©®¯®®®®¦©®®±®®®®®®£££®®££®¦©®«®®¦®«®¦£«®®®®££¦««¦®£¢£¡¡¡¢¡¢¡¢£¦¢£®¦¢¡¢£¦¦£¦£¡¢£¦¡¢¢¡¡¡¡¡‘¡¡¡¬ÿÿÿþÔ¡¡¡¡�‘¡¡¡¡¡¡‘‘¡¡¢¡¡¢¡‘¡¡¬õÿÿë¥�~¥êþÿÿÿÿõ§‘‘¡‘‘~~~��~‘�~~~�‘}}}~~}§þÿÿÓ¡�}}}~}‘‘~}~�~}r~}}}}}}}}}}‘¡~~}}}~~}}wr}}p}~}}}‘~}}~~|pp}}p|r}v|v|}|pppp}|pp}}}~}}}vpp||}vpvþ˜}vlÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷žullllClßÿÿè{ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!===!@òÿÿÿÿÿ÷_!!!!!!!!! !!!!!!!!!! !!!!!!!  !   !!!   ! !   9qªíýýýýýýýýýýýÿÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                      ÓÓüüúüúüúüúüúüüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ����‘¡~~~~�‘~��~¡¡‘~~�‘‘¡¡¡¡‘�‘‘¡¡¡‘¡‘‘¡¡¡¡¡‘¡£‘¡¡¡¡¢¡¡¡¡¡‘¡£¡‘¡¡¡�‘£¡‘¡£¢¢¢¡¡£¢¦¦¡¡££¢¢¢¡£¢£¦¦¢¢¢£¦£¡£«£¡¢££££®«££££¦¦åþÿÿÿÿÿꫦ¦®¦¦¦££©¦¦©££®¦¦¦®®¦®®¦£©¦¦®®£©®¦®¯¦£®£®®®®©¯®©®®®©®®®©®®¯®®®®©¦®®®®®¦®®®®¦®¦¦¦¦¦¦®£¦®¦¦¦£¦££¦¦¦¦££¦¦¦£££££®®££¢£¢¡£®¢¡¢¢£¦£¢££¢¡¢££¢£¦¦¡¢£¢¢£¢¢¡£¡�¡£¡‘¥ëÿÿÿõ¢¡¡¢¡¡¡‘¡¡¢¡¡¡¡¡¡¡¡¡¡¡¥êþÿûÔ¡‘‘ÓûÿÿÿÿýÚ‘‘‘‘‘‘‘�‘‘‘~~�~‘‘��‘‘}}�‘~~ûÿÿÓ‘‘~~~~~~~~~~~�~}}}}~~}|~~}~}~}}}}}}}}}r}}}}}�}r}}}p}~}||}|pp}}pp}}pvpp|p|||vp}pp||w}vppppppvpÿœvppÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú×ylll�úÿÿ̘õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!!Bóÿÿÿÿÿ÷] !!! !!!!!  !! !! !!! ! !! ! !=sªéüýýýýýýýýýýþþüýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                    ÓÓúúüúüúüúüúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿþÖŸ�~}~‘~~}~‘¡¡¡‘~~¡‘~~~~���‘¡¡¡�~‘‘���‘‘¡‘¡¡‘¡¡¢¡¡¡¡‘¡‘�‘¡‘�¡¡¡¡£££¡¢««¡¡¢¡¡¡¡�¡‘¡¦¢¡¢¦£¢¡¡££¡¢¡¢£¢¦«¦££¦«£¢£¡¡¡£¦¢¡¢£££åþÿÿÿÿÿ릣®®©££®®®¦£££®®±®®®®¦£®®®¯®®¯®®®®¦®©£©®®££©¯¯±¯¯®®®©©¯¯®©£££££¦©®®®£££££®®®¦¦¦¦©®®®££®®®¦£££££¦£¦®«£¡¢££££¡¡££¡¢¦£¡¡£¦£¢£¦£££¡¡¡¢¡¢££¡¡¡£¡¡¡¡¡¡¡£¢¡‘¡¢£¡¡¦°ýÿÿþê¡‘¡¢£¡¡¡¡���¡¡‘‘‘��¡Óûÿþ륡¡­íÿÿÿÿÿ륡‘¡‘‘¡�}~‘¡�~~~~~~~�‘¡‘~¡‘}~èÿÿÓ~~}}}~~}}}}}}~�}}~€¡¡~}~~~}s}}s}}�}r}}}vrppv}}vv}}pp}vp}}}|s}}v}}|vrv}}}}vp}}}ppp|vppp}}vppp}�þžvppÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý螘èÿÿúžßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷_!!!!!! !!!!!!!!  !  ! !! !!!   $p’ëýýýýýýýýýýýÿþýüýýýýýýýýýýýýýàÔ                                                                                                                                                                                                                                                                                 ××üüúúüúüúüúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ ¢�~~~�~~~‘‘‘‘‘~‘¡‘~~‘‘¡‘‘�~¡¡‘¡¡‘¡¡¡~�¡¡¡¡¡‘¡¡¡¡¡¢¡‘¡¡¡¡‘¡¡¡¡¦¢¢¢¡¡££¡¡¢£¡¡¡‘¢¡¡£¡¡£¦¢¢¡¡£¢¡¢£¦¢¢£¦¦££¦¦¢¢¦£¡£££££¦¦££Ýþÿÿÿÿÿꫦ¦®¦®££¦©«®¦£®®®®©£®®®®®¦®©¦®©©©®®©£©®®®©©®®¯£®±®®®®®®®®®££®®®®®®®®¦£®®«®®¦®©¦¦®®®¦¦©®¦©¦¦££®«££££®¦££££££¢¡¦«¢¡¦¦£¦¢¡££££££¢£¢¡£¡¢¦£¢£¡¡££¢¢¡¡¡¢£¢¡¡¡¡¡¢¢¥Úÿÿÿû­¡¡¡‘¡¡¡¡¡�¡¡¡‘¡‘‘§ëÿÿöÔ¡¡¤àýÿÿÿÿûÔ‘‘�¡¡¡‘‘�~~‘¡‘~�~~~~‘‘¡¡~}‘‘~~àÿÿÙ~}~~~~~~~}~}}}}}}�‘}}~}~}}}}}}~}}}}}}}}|p}}rv}}}rw}|}rv}p}}}}}}}rvv|}}v||p}}ppvp}}pppp|}pvpvvwýÊvpvžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Bóÿÿÿÿÿ÷_!!!!!! !! !!!!!!!!!!!    qªéýýýýýýýýýýýþþüýüýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                 ÓÓúúüóüúüúüúüüúüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ¢�}‘¡�~¡¡‘~�‘~~~~‘�~‘¡¡¡¡¡¡~~¡¡¡‘€~‘‘�‘¡‘‘‘��‘¡¡¡‘¡‘�‘¡¢¦£¡¢¢£¦¡¡¡¡¡¡¡¡£££¡¢¡¡£¦¦¢¡¡¢£££¢¡¡¢£¢¢¦£¢£¦££¡¢¡¢£¦¦££££¡¢¦¦££ìþÿÿÿÿÿ릢£¦©££¡£££«®£££££¦££¦¦©®®£££®¯®®¦®©®®®©¯®®®¦¦£®¯®££©®®¦®©£©®®®®®®®¦£©®¯®®©£¦®®®££££££££££££«®®¦®£££®¦££¦¦¦£¦®®£££®®«¢¢£££¡¢¢¢¦¦£¦£¢££¢¡Ÿ‘¢¢¡¢£¡¡�¡£¢¡¡¢¢¡‘‘¥õÿÿÿí¦¢¢¡‘‘‘¡¡�‘¡¡¡¡¢Úýÿþæ¤�¥Öûÿÿÿÿþॡ¡¡‘�¡�}~�¡�~¡‘�‘‘‘¡‘�~~~~~‘¡¡‘ÚÿÿÚ}}‘¡‘~}}‘‘~~~}}}~‘}r|}s}~~}}}}}}|}~~}}}~}}~~}|}}v}}}~~}}}|}|||||v}}|||}pv|}}|p|pp}}}}pp}v}}|vvýÓ}pp™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Cóÿÿÿÿÿ÷Z!!!!!!!!!!!!   !!  !!!!  !!!!   =p¥íýýýýýýýýýýýÿþýüýüýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                         Ó×üüúüúüúüúüúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ Ÿ~~‘�~‘‘�~�‘~~~~‘‘‘‘‘¡¡‘‘¡¡¡¡‘�¡��‘‘�‘¡¡��¡¡��¡‘¡£¡¡¡¡¡£¡�¡«¢¡¢¡¡£¡¡¡¢¢¢¡¢£¡¡£££¡¢¢¢£¦¦¡¡¢££¢¢££¡£©£¡¡£¢£¦££££¦£¢¢¦¦£¦åþÿÿÿÿÿê«££¦«¦£££¦£¦©¦¦¦¦££££®®£©££®¦®®®®££®®®¦©®©®¯©©®®®®©¦¯®£©®®®®®®¦¦®®®£®®®®®¦¦®££®®¦¦£©£££¦£££¦¦¦¦¦¦®££¦££®®££££££¦£££¦£¢¡£¦¢¡£¢¢¢£¢£¦£¢¢£¢¡¡¦¦¡¡¦£‘‘¢££¢¡¡¡¡¡¡¡¬ÿÿÿþÚ¡¡¢¡‘¡‘¡¡¡‘‘¢Ôõÿÿ÷Ô¡‘­íÿÿÿÿÿõÓ‘¡¡¡¡��¡‘~�‘‘~~‘‘‘¡~�¡‘~‘~~‘‘�‘~~ÓÿÿÚ~�~�~}}�¡~}~}}}}~~}}}}}}}}}}}~}}~~}}}s}}}}}}|}}r}}}}}}}}}||v}}|}}vp}}|vv}}}pv}|p|}}}vpppp||vvý×wpp˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!@óÿÿÿÿÿ÷_!!!!!!! !!! !!!!  !!    =qšíüýýýýýýýýýýÿýüýüýýýýýýýýýýýýàÓ                                                                                                                                                                                                                                                                            ÓÓúúüúúüúúüúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ�¢‘~~~¡‘~‘‘~~~‘‘¡¡~‘‘‘�‘¡‘�~~‘¡‘~~‘¡¡¡¡¢£¡‘¡¡¡~¡‘¡¡¡¡‘¡¡£¡�¡£‘����£¢¡¡¡¡¡¡¡¡¡¡¡¡¡£¢£¢¡¡£¦£¦£¢££¦£¡¡££¡£¦®¦£¢£¦£¦®¦£©¦¦£åþÿÿÿÿÿí«££££®®®®®¦£¦£¦®®®®£©®®£¦¦¦®®®®¦®©©®¯®®®®®®®¦®®¦¦£££®®¦£®®®¦®®££©¦¦©®¦££££®®®£££¦¦®®®£££££¦¦¦£££¢££££££¦£¢£¦££¡¢««£¢£¦££¦¦£¡£¦¦¢¡¢£¡¡¡££¢¢¦¢�¡¦¦£¡£¡¡££¢¢¢¦¦£¦ëÿÿÿ÷¥¡¡¡¡¡¢£¡¡¡¥êþÿÿ륦­êþÿÿÿÿýà‘~¡‘�~~~¡¢¡�~�‘~‘‘~~~}~¡‘‘~}}~�~}}~Ôÿÿæ‘}}}}‘‘~}~~}~}~~~€‘}}s}~}}r}}}}|ps}r}}|}}}vv}~�}||}|}|v||v||vvppr}pp|rvvrvvvvppv|vp|ppppppppp}ýàwppÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!Bóÿÿÿÿÿ÷[!!!!!!!!! !!!!!!!!! !! !!!=}ªëýýýýýýýýýýýýÿýüýüýýýýýýýýýýýèÓ                                                                                                                                                                                                                                                                         Ó×üüúúüúúüúüúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��¡‘}}‘‘‘‘~~~~~‘¡‘�¡¡‘‘¡¡¡‘~�¡¡‘�‘‘�‘¡¡¢¢¡‘�¡�‘¡¡¡¢¡¢¡‘¡¢¡‘¡¦¡�‘¡¡¡¡¡¡¢¡¢¡¡‘££¡¡¢£¡¢¢¢¢¡¦«¦¦£¡££££¡¦¦¢£®«££££¦¦£¦££«¦®®êþÿÿÿÿÿꫦ¦¢¦®¦¦®®¦¢£®®¦®®¦¦«£¦¦¦©®®®®®¦©®®®¯®£®¯®©®£®±®¦©££©®©©®®®£®®¦¦®®£®®®££££«®®¦££©®¦£®®¦££¦¦££££££££££¦¦££££££££¢££¢¢£¦¦££¦¦£¡¦©£¡¢¦¢¡¡££££¢¡¡¡£¡£¦¡¡¡£¢¢¢¢£¢££­ûÿÿÿê¡‘¡¡¡¢¢¡¥ÚûÿÿûÝ¢¥Ýûÿÿÿÿÿõ§‘�‘‘‘‘‘~~‘‘‘¡��~~‘�~~~‘‘~€�‘~}�‘~}~‘¬ÿÿê‘}}}}‘~~}}~~}}~}~~~�~|}}}}}}~}}|}|}}}}}}}}pr}}}~}}}}|}}|vpvp}rpvvvpp}}p}pp}|v|v}}p}|ppppppvv||ýàwpp{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷_!!!!!!! !!!!!!!!         =qªíýýýýýýýýýýýÿýüýüýüýýýýýýýýýýàÓ                                                                                                                                                                                                                                                                                ÓÓúüúüúüúüúúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿþÚŸ�‘¡�~‘‘‘�~~~~‘~‘¡‘�~���~�‘~‘¡‘¡¢¡¡¡���¡¡‘¡¡¡¡‘¡‘¡¡¡¡¡‘¡¡¡��¢£‘¡£¢¦¡¡¡¡¡¦¦¡¡£¦¢¡¢£¡¡£¡¡¡¢¢¡¢¢¡¡¡¡£¦¦£¡¡££¡¡¢£££££¡¢££££åþÿÿÿÿÿꦦ®¦¦®®¦¦®®££¦££¦©®®©££®©®®¦©®®££¦©£«£©¯®©©££¦±®©®©¯®£©®®©£¦¯®®©£©©£££¦®®®®®¦¦££¦®¦££«®®®®¦£££££®¦¦££¦¦¦££¢£££¦£££¢¦£¦¦¦¢¡£¡¡¡££¡¡¦¦¢¢£¡¡¢££¢¡¡¡¢¡‘¡¡£¢¢¡¡‘��¡¡Öÿÿÿý­¡¡¢¢¡¥Ôõÿÿÿô¨¥¬õÿÿÿÿÿýݦ¡�‘¡‘‘‘¡¡�‘‘¡¡‘��~~~¡‘�¡~~‘~~~~‘‘‘‘¡�šÿÿë‘~‘~‘¡~~~}}~‘‘~}}|s}}}}~~~~~~~}~~~}}}}}~~}}~}}ppvvr}|s}}||}}}}vr}v}}}}v||pvvr}ppppppppp}}|ppppýæ}pv}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷[! !!!!!!!!!! !!! !!!       qªíýýýýýýýýýüüÿþýüýüýüüýýýýýýýýæÓ                                                                                                                                                                                                                                                             Ó×üúúüúüúüúüúüüúüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ ��‘‘�‘¡‘�~~~‘‘¡¡¡‘}�¡‘~�~�‘¡¡¡¡¡¡¡‘‘‘¡‘‘‘‘¡¡‘‘¡‘¡¢¡¡¡¡¡¡¡�‘¡¢¢¡¡£¡¡¡¢�‘£¡£¡¢¦¢¡¡¢¡¢££¡¡¢¡¡¢££¢¡¡¢£¦£¢¢££¡¢¦¦¢£££¢£££££åþÿÿÿÿÿꦦ®®£¦®®®©¦££££¦¦¦®®©££©®®¦£¦®®©¦¦®££©®®®®®©££®®®©£®®©®¯®®££®®®®£©££££¦®¦£®¦¦¦¦®¦£©®¦£©®®¦£££¦££¦«¦£¢¦®¦£¢¡£¦£¦£££¦£¢£¦££¡¡¡¡¢¦£¡£¢¦¦£¢¡¢£££¡¡¡¢¡¡¡¡¢££¡¢¡‘¡¡~¡¥õÿÿÿõ¥¢¢¥ÔõÿÿÿýÚ¥¬íÿÿÿÿÿý륢¢¡��‘~~‘¡¡‘�~‘¡¡¡~~‘‘‘‘~‘~~�‘~‘~~�¡¡‘~™þÿè‘�‘~�‘~}~~}}�‘~}~}|}}}~}}~}~~~~~~~}}}}}~}}}}~}p|}rvp}}}}s||}p}}|pp}}}}rvvvvrvvpp}|pppv|p}ppvpvúèwpvpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!Yóÿÿÿÿÿ÷Z!!!!!!!!! !!!!! !    !  9q¥éüýýýýýýýýýýÿýüýüýüýýüýýýýýýýæÓ                                                                                                                                                                                                                                                                   ÓÓúüúúúúüúúüúúüúüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ}~~~}~~~~¡‘‘��~~¡�}‘¢¡�~~‘¡‘‘‘¡‘‘‘‘‘¡‘�¡¡¡¡¡¡¡¡¡¢¢¡�‘¡¡¡¡¡£¡‘¡¡¡¡¡£¦¢~¡¡¡¦£££¢££¦¢¡¢£¢¡¢¢£¡¡¢¢¢¢¡¢¢¢¡¢££££¦¦££¦£¢¡¢¡££åþÿÿÿÿÿë«£«®®®££££££®®®®®££¦®£®®®®®¦¦®®®®®®©£¦££©®®©£®¯®¯®®££©®©®®©¦®®¯±®¦£®®®±±¦£££¦®®®¦£¦®¦¢£¦¦¦©¦£¦®¦£££££®¦£¦¦¦¦£¢£¢¢¢¢£¢¢£¢£¦¦¦£¢££¢£¡¡££¢¢¢¢¢££££¦£¢¢¡¢¢¡¡¡¢£¢¡¡¡¢­þÿÿþê­Ú÷ÿÿÿÿøÔ­íÿÿÿÿÿþô¬¡¡‘¡‘¡¡¡¡~¡¡‘�~~‘‘�‘¡��~~~~‘‘‘~~�~‘~}~‘~€‘þÿë€}}}}~}}~¡‘}}~¡€}}~}}~~}}}}}}}}}}}~}}}|}r}}}}}p}}}}}}}pv}}}|}p}}vp}|vpv|r}v|vp|pp}vp}}|pppvpppûñ}pppþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷_!!!!!!!!!!!!!!! !!!!!! !  =ŽªëýýýýýýýýüüýÿþýüýüýüüýüýýýýýýàÓ                                                                                                                                                                                                                                                                       ÓÙüúúüüüúúüúüüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽs‘‘~}~‘~�‘¡‘‘‘‘‘‘~~�¡¡¡‘‘¡��‘¡‘�~¡¡¡¡‘‘¡¡¡‘‘¡¡¡¡¡¢¡¡‘‘¡¡¡¡¡¡‘¡¡¡¡¡££¡¡¡‘¡¦¦£¦£¢¦£¡¡¢¦££¢£¢¡¢¦¢¡¡¡¢¡¡¢¢£¦££££££££¡¡¢¢¢£Ýþÿÿÿÿÿê«£«®®¦£££££¦®®®®®¦££®£®®®®®©¦®®££®®®£©®£®®®¦£®®®®®¦££®®®®®¯®¦©®®®®£®®®®®©¦££¦®¦©®©¦££££¦£¦¦¦¦¦®¦££££££££¦®«¦¢¢£££¢¢¢£¡¡¢¢¦¦£¡¢££££££££¢¢££¡£££££¦£¡¡££¡¡‘¡¢¡¡¢¡¡¥àÿÿÿÿÿÿÿÿÿÿúÚíþÿÿÿÿþõÔ¡¡¡‘¡¡�‘¡¡¡¡‘�‘��~�¡�‘‘‘‘~~�~‘¡�~~‘~��~‘‘~�~þÿõ€}}}~~}}~‘‘~}}~�~}~}}}}}}~}s|}~}}}}}}}|}|}}}}}}}}}}}}|}|v}}v|vp|pp||||}|}}p|pv}pppp}}|vppp|vpp÷ñwpopýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!$Cóÿÿÿÿÿ÷_!!!!!!! !!!! !!!!!!!!!!!   !   =}¬íýýýýýýýüýýýþþüýüýüýýüýüýýýýýæÓ                                                                                                                                                                                                                                                                    Ó×úüúúúúüúüúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��‘¡~�‘‘~}~~~}~‘‘¡‘~~��‘¡‘~~~¡‘¡‘�~~‘¡¡¡‘¡¢¡¡¡¡‘‘¡¡‘¡‘¡¡¡¡‘¡¢££¢¡¢‘¡¡¢££¡‘¡¡¡¡¡‘¡£¢¡¢£¡¢££¢¡£«¦££¢¢¢¢¦¦«£££¢¢¢¢¦®¦¦«®®®åþÿÿÿÿÿ릢£££££££¦®®©¦©¦¦¦®££££®£¦¦¦¦®®££¯®¦©®±®¦©®®¦©®®®©£®©£®©££¦®££££®®®¦££®®®®®®®®©£££££¦®®®©£¦®®®¦£¦¦¦¦¦££¡¢¦¦£¦®®¦¦¢££¦£££¡¡££¢££¡¢¢¡¡¡¢¡¢¦£¡¡¡¡‘¡¢£¡‘¢¢¡¢¡‘¡¡¡£¡¢£¨ûÿÿÿÿÿÿÿÿÿûþÿÿÿÿÿúÚ¥‘¡¡‘~~‘¡‘¡‘‘¡‘~~¡‘�‘¡‘��~~}~~‘¡‘‘‘~~}~}}~��~~ýÿõ‘¡~~~‘�}~~~}~s}}~}~}~~~~}}~|}~~}vr}}~}}|}}}}vr}}p}}}v|||}|v}}}}|vv}|p|v|pv|}|ppp}|v|pppppppvvvõõ}pppúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷Z!!!$!! !! !!!!!!  ! !!   !  q¥íýýýýýýýýüüýÿþýüýüýüüýüýüýýýüæÓ                            $[=                                                                                                                                                                                                      @                            ÓÓüúúüúüúüúúüúúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖŸ�¡¡�‘¡�~~~�~}~‘¡~‘¡~}~¡¡¡~}~‘¡¡‘‘¡~¡¢¡‘‘‘¡£¢¡‘¡¡¡‘�~¡¡‘‘¡�¡¢¡¡¡¡¡¡¡¡¢££¡¡¡¡¡¡¡¡¢¦£¡¢£¡£££££££¦«¦¢¢££¡¦«££££¢¡¢¦®¦¦¦®¦£êþÿÿÿÿÿê«££££¢£¦£¦®®¦£¦£¦©¦££©©£££¦¦®®®££®®£©®±®®¦®®®©£®¦£©®®£®®£££®®¦£¦®®®¦££®®®®®®®®£££££¦®¦¦£®®¦®®«¦££®®¦¦®£¡¢££¦¦£«®£££££££¢¡¡££££¡¡¡¡¡¡¦£¡¢¦£¡¡¡¡¡¢¢¢¢¡££¡¡¡¡¡¡¢¢¡¢£¢ÚÿÿÿÿÿÿÿÿÿÿÿÿÿýõÚ¥‘¡¡¡¡¡�~‘¡¡‘�~‘‘~~‘‘‘‘���‘~}~�~~¡¡~���~}~~~‘‘‘~ûÿõ‘}��~¡~~�‘}}}}}}}~}}}�~~}}}}s}~|v}}}}~~}|}}rv|}rv}|r|r|pppr|}r}}}}rv}}vp}}}|vpp|vppppvppppppv|õ÷wppp÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@÷ÿÿÿÿÿ÷_!!!!!!!!! !!! !!!!!!  q¥éüýýýýýüüýýýþþüýüýüýýüýüýýýýýæÓ                        $ƒÌ–!                                                                                                                                                                                                    !@_Y                           Ó×úúúüóüúüúüúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿþÖŽ}~‘~~}‘‘~‘‘¡‘¡¡�~¡¡¡~‘¡‘¡¡�¡¡�¡¡¡¡�~‘¡¡¡~�‘¡‘‘¡¡¡¡¡¡¢¦¢¡¡‘¡¢¡�¡‘¡¡¡¡¡¢¢¡¢£¡¡¡¡¡££¡¡££¡¡¡¡¢£¢¡¢£¢¢£¦£¡¡¦£££££¡£££¢¢£¢¢¢åþÿÿÿÿÿ릦©¦¦¦®®®®£¦¦¦£££¦®£©®©£¦©®®¦¦®¦£©®®£¦®¦®¦®££¦®®®®¯®¦®±®®®®®®®¦£©®®®££¦®££££¦®®¦¦¦®¦£££££££££££¦¦¦£¢£¦¦¢¢¢£¦¦£¡¢¢£££££¦¦¦£¡¢££¡¢¢¢£¢¦£¡¡£¢¡¡¡¢¢¡¡¡¡‘¡£¢¢£¢¡¡¡¢¢¡¡¡¦ëþÿþþþþÿþýýûëÔ¡�¡¡¡¢¡‘¡¡‘�‘¡¡¡¡¡‘~‘¡‘�‘‘¡‘�‘¡¡‘~~‘�}~~~}}‘¡‘~~~}õÿú‘}}}}~}}}~}}~‘~}~~‘}}}}}~}}}}~�}r~}}}}}}v|}|}}}}}}}}}}}}}|}}}}}}pvvp}}ppv}pv|pv|ppvvv}}pvvppp|õúwvvvõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!@óÿÿÿÿÿ÷[!!!!!!!!!!!!!!!! !     =q¥ëýýýýýýýýüüýÿþýüýüýüüýüýüýýýýàÓ                             !ƒâÇZ                                                                                                                                                                                                 !Z–Z                           ÔÓüúüúüúüúüúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~�~}~�‘‘‘‘¡¡¡¡‘�‘¡¡‘¡‘‘�‘¡¡¢‘¡¡¡¡‘‘~‘¡‘�‘¡¡��‘¡¡¢¢¢¢¢££¡¡‘¡¡‘‘‘¡¡¡¡¡¡¦£££¢¡¡¡¡££¡¡£¡¡¡¡£¢££¡¡¢¢£¦¦¢¡¢¦££££¢¡¡¡¡£££¢¢£Ýþÿÿÿÿÿë«®¦¦®®®¦«®¦£©¦£££®¦£®®££££®®®£¦¦££¦®®£¦®®®¢£¦¦®®®®®®£©®®®®©®®®££®®®®®£££££££¦©®¦£¦¦¦£¢££££££££¦®©¦£¡¢£¦¢£££¦¦££¡¡¢¢¢¢££¦¦££¢£££¢¡¢££¦¢¡¡¦¢¡¡¢£¢¢¡¡¡‘¡¢£¦¢£¡¡¢¢¡¡¡¡¡¥àÚæêêêÚÖ¬§¦‘¡¡‘�‘¡¡¡¡‘‘¡‘¡¢¢¡¡¡‘‘‘��‘¡¡¡~~‘‘‘���~~~~}}}}¡¡‘���}õÿ÷€}~}}}~~~}}}~}}~~}~�~}}}~}~}}}~}}}~}r}}}r}}s|}~}s|v}}}}}}}}}}}}}pp}vp}vprv}}}v}|pp}}||vpppppv|ôú}v|vñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Bóÿÿÿÿÿ÷Z!!!!!! !!!!! !!!!!!!!!  !  $qšíýýýýýüüüýýýþýüýüýüýýüýüýüýýýæÓ                        Bƒ_!                                                                                                                                                                                                  @@!                        Ó×úúúúúüóüúüúúüúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~~��~~‘~~~~~~~��‘‘‘���~~~�¡¡‘‘��¡¡¡‘¡¡¡¡‘¡��¡¡¡¡‘¡‘�¡£¡¡¢£¢¡¢¡¡¢¡¢¡¢¡¡¡¡£¡¢¡¡¢£¡¡¡¡£¢££¢¡¡¡¢£££¢¦£¡¡£££¢£¦¦¦££¦££¦®®åþÿÿÿÿÿꦦ££££££¦®¦££®®£¦®®££®®®®©£®®®¦®®®£®±®£®®®®®®®®¦©®¦¦£¦®£®®££®®©£®®¦£¦®®®®®®¦¦£££®®®®®£¦®¦£££££££¦¦®££«®¦£££££££¢¢¦¦¦£¢¡££££¢£¢£¢¡¡¢¡¢¢¡¡¢£¡¢¦¦¡¢¡¡¢¡£¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡‘¡¢¢�¡¡¡¡‘‘‘‘¡�~‘‘‘‘‘����‘‘‘‘¡�‘~}‘¡¡~‘‘‘~‘�‘‘¡~~�~}}~‘~ëÿý‘‘~}~}}‘}}‘~~}}‘~s}}}||~}}}}~}}}}}}}}}|s}}}}s}}}}}p}~}||vv}vrp}}vvr}|ppv|p|}|pv}|pp|||pvvpv}ppèý{|ppèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷]!!!!!!!!!!!!!! !!!!  !! !q¥íýýýýýýýýüüýÿþýüýüýüüýüýüýüýýæ×                           !!                                                                                                                                                                                                                                             ÓÓüúüúüúüúúúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ�Ž}}~‘~}~‘�~}~~~~‘~�¡�~~~‘~~‘¡‘~~‘‘‘¢¡¡¡¡¡¡‘¡‘‘‘¡¡¢‘�‘‘¡¢¢¡¢£¦¢¢£¢£¡¡¡¡¡¡�¡££¦£¡¢¢¡¡¢££¡¢£¡¢¢¢£££¢¡£££¢££¢£¢¦£¦¦¦£££¦«®êþÿÿÿÿÿꦣ¦®¦£¢££¦®££®®¦¦¦£££®®®®©£¦®®®®®®®®±®££®®±®®®®¦¦¦££©¦££®®££®®©®®®¦®¦®®¦¦®®®¦££¦®¦®®®®¦££££££©¦££¦«££«®¦¦¦£££¢¡¡£«®«¦£¢¢££¢¡££¦¢¡¡¡¡¢¢¡¡¢£¡¡££¢¡¡£¡£££¡�¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¡¡¡¡‘¡£¢‘�¡¡¡¡~~¡¡‘¡¡���‘‘�~~�¡‘¡‘‘�~~‘¡‘‘‘¡~‘~~~¡¡‘~}}~~~‘~èÿû‘‘~~~}}‘~~‘‘~}~~~}}|}}|}}|}}~}}}~|}~}}r}}}}}}}}}}}}}}}}}|||pppp}pv|}pppv|p|vpp}}vpv|ppprvp}~|pèÿvvvpæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$$!Zòÿÿÿÿÿ÷x!!$$!!!!$!!!! !!!! !!!! =q¥éüýýýüüüüýýýþþüýüýüýýüýüýüýüýàÓ                                                                                                                                                                                                                                                     Ó×úúúüóüúüúüúúüúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��‘‘‘¡~~�‘‘‘�~~~¡¡¡~~‘‘�‘¡¡~�¡¡�‘¡¡¡‘‘���¡¡‘¡¡¡‘~¡¡¡‘¡¡¡¡¡�¡¡¡¡¡¡¡¢£‘¡¢¡¡¡¡¡¡¡¡¢¡¢¢¡¢£¡¡¢£¢££¡¢¡¢¢£££¦¦¦¦££££¢¡££££££££åþÿÿÿÿÿí«££¦££«®®¦££¦®¦¦¦£©££®®¦©£¦££®¦®¦££¦®££®¦®®©£¦®©£®®¦®®£©±®¦£®®¦£©¦¦®¦¦££®©¦£¦®®¦£££££®¦¦¦¦¦££«¦¢£££¢¢¦¦¢¢£££¦£¢£¢£££££¢£££¢££¢££¡¢¢¡¢£¡¢¦£¡¡¡¡£¡¢£¡¡¢¢¡¡¢¢¡¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡‘‘‘¡¡¡‘‘¡¡¡‘�¡¡‘‘‘¡‘‘‘¡‘¡~~~�‘¡‘¡‘~~‘��~~‘‘¡}~¡‘~‘~~�~~~~Úÿý‘‘}~~}~¡}}}~~}}}}~}}}~~~~}}~~}|}~}v}}}}}}}p}}}}|}r}}vv||s}}}}}}||p}v}}||pv|}ppv|rvpvp}pvppp}voßÿ}vpßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!!Bóÿÿÿÿÿ÷_!!!!!! !! !!!!!! !!$qªëýýýýýýýýüüýÿþýüýüýüüýüýüýüýüæÓ                                                                                                                                                                                                                                                                   ÓÓüúüúúüúúúüóüüúüúÿÿÿÿÿÿÿÿÿÿÿÿýÖ��¢¡~~‘~‘‘¡‘¡~~�‘¡‘�‘‘¡‘¡¡¡�~¡¡¡¡‘¡¡¡¡¡~~‘‘‘¡£¢¡�¡¡�~¡¡¡¡‘�‘¡‘�¡¢¢££¡¡¦¡¡¢‘�¡¢¡¡£¢¡¡¡¡¡�¡¢£¢¢¡¡¡¢££££¦¦£££££¢¢¡££¢£®®££åþÿÿÿÿÿê«¢¢££®®®®®¦£®©¦®¦£¦¦¦¦®££¦£©©¦£®££££¦££¦£®®¦£¦®®¦®¦££©¦®®®®¦£¦££££®®®©®¦®®£££®®®££££££®©®®¦¦¦¦£¢££££¢¢¡¢¢££¢¦£££££¢¢£££¢£££¦¦¡¡£¢¢£¡££¡£¦£¡¡¡¡¡¡¡££¡¡¡¡¦£‘¡¢¡¡££¡¡¢¢¡¡¡‘¡‘¡‘�¡¡‘‘�‘¡‘�‘¡¡‘¡‘�¡¡‘�‘‘�}~¡¡‘‘‘¡¡‘�~}~‘‘¡~}~¡‘~‘‘�¡‘}~‘Úÿý‘�~~~}‘~}|}~‘‘~}}|}~~}~€‘�}~‘}|}~}r|}}}~~}}|}}v}v}|pprv}}}}}}}}vv||}}}}vv|}}vp}vpppp|vvpvpp}|pàÿvppÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@÷ÿÿÿÿÿ÷Z! !!!!!!!!!!!!q¥íýýýüüüüüýýýþýüüüýüýýüýüýüýüýæÓ                                                                                                                                                                                                                                              Ó×úúúúúúüúüúüúúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ}¡¡~}�‘‘‘~~�‘‘‘~‘‘‘�‘‘‘����‘¡‘�‘�‘¡‘¡¡��‘‘¡‘¡¡‘~¡¢¡�¡¡¡¦¡�¡¦¡�¡¢¡¡¡�¡¦¦¢¢¡¡¦£¡¡¡¢¡¢¢£¢¡¢£¢£¢¡£¡¡£¢¢¢££¡¢£¢¢£¦¦¦¦£¢££¢£åþÿÿÿÿÿ릢¦¦££££££¦££££®®£¦®®¦¦££®¦®©££®®®®®®©¦®¦¦®®¦®®®¦¦®®¦®®©££®®®®®£¦¦®®£££¦©®££¦®££¦¦®®®£££££¦¦¦£¦¦££££¦££££«®¦£££££¢¢££¢¢£¢¢¢¢£¢¡¢£¢££«£¡¡¢¡¡¢¢¢¡¡¢¡¡¡¡¡¢¦¡¡¡£¡�¡¢¡�‘¡¡¡¡¡¡¡‘‘¡¡¡¡¡‘‘‘¡‘�¡¡¡¡�~¡¡�~¡¢‘~‘‘�~���¡‘‘‘}~‘�‘¡}~‘�~~~~€¡~}~Ôÿþ‘}~~~}~~~}}�~~~}~~}�~}r}}}~~}}}}}}}}}}|}~}}~}}r|}|}}}|vv}}}}||v}|vvv||rpvvv}pppp|}|vvpvvpppvppÙÿ˜ppp×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!!! !! !! !9qªíýýüýýýýýüüüÿþýüýüýüüýüýüýüýüæÓ                                                                                                                                                                                                                                                  ÓÓüúüúüúúúúúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ���¡}~~~‘�‘‘~~¡¡�~�‘��¡‘�~~‘¡‘�¡‘�‘¡‘¡¡‘‘¡‘‘‘¡¡¡‘‘¢¡�¡¡¢£¡¡¢¡¡¡¡¡¡¡¡¡¡¦£¡¢¢¢¡¡¡¡‘¢¡¡£££¢££££¢£¢¡¡¡¢£¢¢££¢¡¡¢£¦«¦¦¢¡££££åþÿÿÿÿÿꦦ¦¦££¢¢£££©®££¦®©®®¦£££®®®¦£¦¦®®®®®®®®®®¦®®¦®®®®©¦®®®®££££®®®¦££®®®¦£££¦®¦£®¦£¢¦®®®¦££££££®¦¦¦®¦££¦®©®¦£¦««££¦¢¡¡¡££¢£££¢¡¡¢¢¡¢£¢¡¦«£¡¡¢¡¡¦¦¡¡¡¦¡¡¡¡££¢¡¡¡‘‘‘¡¡¡Ÿ¡¡¡¡¡¡‘‘¡‘¡¢¡¡¡¡¡‘¡¡‘‘¡¡¡‘¡¡‘‘‘¡¡¡~‘¡~~~~}~‘¡¡~~~~‘‘~}~~~‘‘¡��~}‘Ôÿþ}}~}}~}‘~~~}}�‘‘~}~~}s}}}~~}}}~s|}|p}}}}~}~}}|}s|}}}v}rv|||vpp|}rvrppvvpprvvppv}}|pp|}rvoppppßÿ˜oopÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Y÷ÿÿÿÿÿ÷_!!!!!!!!!!!!!!!! !!!!!!!!!!sªíýüýüüüüüýýýÿýüýüýüýýüýüýüýüýàÓ                                                                                                                                                                                                                                        Ó×úúúúúüúüúüóüúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��‘¡~~~~~~‘¡�~‘¡‘~‘‘‘~�¡‘‘¡¡‘~‘¡¡��‘‘¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡�¡¡¡¡¡‘¡¡¡£¡¡¡‘¡¡¡¡¡¡¡¢¢¡¡££££¡¡¡¡¡¡¢£¢¢£££¢£¢£££¡¢££££¢¢££££¢£££¦£êþÿÿÿÿÿë«£££¦¦¦£££££££©£¦©¦®®¦¦££®®££®®®®¦£££©£¦®®©©£®©¦®©¦¦®¦®®®®££¦®£¦®«££££¦®®®¦£¦®£¢£®®¦¦£££¦¦¦¦¦££¦£¢£¦¦¦¦¡¢£££¢¦®£££¢£¦¢¢¢¢¢¢¦¦£¡¢££¡¡¦¢¡¡££¢¡¡¢¡¡££¡¡¢¢¡¡¢£¡‘¡¡¡¡¡‘¡¡¡¡¡¢¢¡¡‘‘¡¡¡‘¡¡‘‘‘¡¡¡‘�‘‘‘�‘‘¡¡~~‘¡¡‘‘�‘~~¡‘~�~~¡‘��‘‘‘‘~~}}~~~§ýÿ‘}~¡~~~}~~~}~}}}~}~}}}}}}}}s}}}}}~~}|~}}s|}|}}}}}}}vr}}}|v|vr}|v}}}}|vv|vp||ppv|v}vpp|p|ppvppp×ÿœppwÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!@óÿÿÿÿÿ÷x !!!!!!!!!!!!! !     !pªíýýüýýýýýüüýþþýüýüýüüýüýüýüýüæÓ                                                                                                                                                                                                                                           ÓÓüúúüúúúúúúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŸ�}‘‘~~}�~‘¡�}~‘‘~�¡‘‘‘‘¡¡¡¡¡‘¡¡¡�~�‘‘‘~‘¡¡£¡¡¡�¡¡¡‘¡¡¡�¡¡‘¡¡¡¢¡¡¡¡¡��¡¡‘¡¡¡¡£££££¡¡¡¡¡¡¢¡¡¦£¢£¢£¦££¢¡¡¢¢¢£¦££££¢¢£¦£¡£Ýþÿÿÿÿÿꦢ££«®®¦££££¦£®®®£¦®®®®££®®¦¦®®®®©££¦¦££®®¦¦¦®®©®£££££®®©££££¦£¦®«£££¦®®®®¦©®¦¦££¦¦¦¦£¦££®®£¦£¢£¢¢£®®¦££¡££¢¡£¦®©£££¦¢¡¢¦¢£««¦¢¡¡£¡¡¦¡¡¡¢¦£¡�¡¡¡¡¡¡¡££‘¡¢¢¡¡¢¡¡¢¢¢¡¡¡¡¡¢££¡¡‘¡‘��¡¡‘‘¡¡¡¡��‘¡�~�¡¡~~~�¡¡¡‘‘‘~~��‘‘�~~‘¡¡¡¡‘~~~~~}}~¥ÿÿ€~~‘~~~~€~}~�~}}}}}}}}~~}}}|}}}}}�‘~|}}rv}}}}r}}~~}}}}}}pppp}}p}}}}}p|p|}|vvpp}v|}v|}}pppp}ppp×ÿžpvvžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!@÷ÿÿÿÿÿ÷_! !!!!!!!!!!!! !!!!$q¥íüüýüüüüüýýýÿýüýúýüýüüýüýüýüýæÓ                                                                                                                                                                                                                                              ×ÓúüóüúüúúüúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~}‘‘~~~‘‘¡~~‘‘�‘‘‘‘‘‘‘�‘‘‘�‘‘¡‘‘¡¡¡¡¡‘�¡‘¡¡¡¢‘�‘‘¡¡¡¡¡¢¡‘¡¡¡¡¡¡¡¢¡‘¡£¢¡¡¡¡¢¢¡¡¡¡¡¡£¦¢¢¢¡¢¦¢¡¢¡¢£¢¢¢¢¢££££®¦¢£¢£££¦¦££åþÿÿÿÿÿ뫦£¡£¦¦®£¦¦¦£££££££®®¦¦££®®££©®¦£©©®®£¢®®®£©®££¦®«®®££®®££¦®®¦££®®®£©®¦¦¦££¦¦£¦¦¦¦¦®«¦£££¦¦££££¦¦££¦£££££££££¦££¦££££¢¡£«¢¡¡£¢¢¢¡¢¡¡¦£¢¢££¡£¡¡¢¢¡¡¡¡¢¦¡¡¡¢¡¡¡¡¡¡¡¡¡‘¡¡¡�¡¡¡¡¡¡¡¡‘¡�¡‘¡¡‘‘‘�‘¡‘~¡‘‘¡¡¡‘‘‘��¡‘~�‘~‘‘‘‘‘�~~~~~~}~~~~}‘¥ÿÿ‘�~}~}~‘~~}}}~~~~}~}}}}}}�‘}~}}}|}~}p}}}p}~|}}|}}}p|}}v}}}rp}}vvrv}}v||vr}p}pvrp||vpp|ppv|ppvpÓÿÇvppžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷Z!!!!!!!!! !!!!!!!!!   9q¥íýýüýýýýýüüýþþýüýúýüüýüýüýüýüæÓ                                                                                                                                                                                                                                                                     ÓÓüúúúúúúúüóüúüüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ�¢�~‘‘~}}�¡‘‘�‘‘~‘¡‘~~�~~~~~~�‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘~�¡¡¡‘��¡¡�¡¡¡¡¢¡¡¡¡�¢¢¡¡¡¡¢¡¡¡¡¡¡£££¦£¢¢¢¦¦¢¡¢¢£¢¡¡£££¦¦£¦«£¡¡£¦«£££££Ýþÿÿÿÿÿ£££¦£££¦¦¦¦££££££¦£®¦¢££¦£££¦£¦®®®®©¡®¦£«¦£££¦¦¦«®®£¦®¦«®®®®££®±®®¦©££¦££¦££©®®©¦®®®®¦¦®££¢¡£¦«¦¦¦££¦£££¢£¦¦£¢£££££¦¢££¡¡¡‘¡¢¢¢£¢¡£¦££¦¢¡££¢£¡¡¦¢�¡£¢¡¡¡¢£¢¡¡¡¡¡¡¡‘�‘¡¡¡‘‘‘¡¡‘‘‘‘‘¡¡£¡‘~~�¡‘¡¡¡‘¡¡¡¡‘~‘¡‘�~‘�~�~�¡¡~}}}}~~~}}~~‘‘‘ÿÿ‘€}}}}}~}~~~}}�~}}~~~}~}}�‘~}~}}s}}||}~}|}}}}}p|||vp|vr}}~}}}}ppv}}vv}|pv}}|vpvvppppvp|}}pv}}vÓÿÇvp}™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!!!      !!=q’éüüýüüüüüýýýþþüüýüüýüüýüýüýüýàÓ                                                                                                                                                                                                                                                          Ó×úúúúúüúúúüúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖŸ¡~~~~��‘‘~�~~��‘¡‘���‘‘‘‘‘~�‘‘¡¡¡‘�‘‘‘¡‘¡¡‘¡‘‘¡¡¡¡¡¡¡‘¢¥¡‘¡¡¡‘¡¡¡¢¢¡¡¡¡¦¢¡¢¡¢¡¡¡¡££¡¢¢¡¢¢¢¢¡¢¢¢¢¢¢£¢¢£££¡¢£££¡££££¢¢£¦åþÿÿÿÿÿ릣£«¦«£££¦¦¦¦®©¦¦££££®®£¦£¦££¦¦¦¦¦®£¦¦£¦¦®®¦®®¦®®®£¦®®¦¦¦¦¦¦®®££®®¦®£¦££¦¦«®©£©£¦¦¦¦££££¦®¦¦£¢£¦¦££££££¢¢££¦¦£££££££¡£££££¦£¡£££¡¢££££¡¡££¡¡¡¡¡¢¢£¡‘¢¡¡¡¡¡¢£¡¡¡‘¡¡¡¢¢‘¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘‘�~¡¡‘¡‘��~‘‘‘‘‘�‘~�‘‘~~‘�~~~~¡‘~~~}‘‘~}þÿ‘~}}~}~~}~}~~}}~~}}}}}}|}}~}}}}}}}s}~}~}p}~}|}v||s}|}}|}vr}}|v}}|vr}p}vp||v|v|p}|pvrpvppppp}vpÇÿ×vpp˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!@óÿÿÿÿÿ÷Z!!!!!!!!! ! !! !! $qªëüýüýýýýýüüýÿþüýüüýüüýüýüýüýüæÓ                                                                                                                                                                                                                                                      ÓÓüúúúüúúüúúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ Ÿ~~~~‘‘‘‘~}~��‘¡‘~~~‘¡¡¡‘�~‘‘~‘¡¡~~~�¡¡�~�~~¡¡�¡¢¡‘�‘¡£¦¡‘�¡£¡¡¢¢¡£¡¡¢£¢¡¢£¢££¢¡¡¢¡¡¡¡¡£¢¢¢¡¡££¢¢££££¢¡¡¡¡¢£££¡¢¢££¢¢£êþÿÿÿÿÿê«¢£¦®®¦¢£££££¦¦¦¦£®££®©¦¦®£¢¢£££££¦®®¦£££©®®®®®®®®¦¦®®®®©©¦««®®£££££££©£®©¦¦¦£®£££¦££¢¢¢¦®¦££¢£®®¦£££¢¢££££«¦££¦£¢£¢¡¢¡¢¦¦¦¦¦¦££¡¡¦¦£¡‘¡¢¡¡¡¡‘¢¦¡¡¡¢£¡¡¡¡¡¡¢¡¢¢¡¡¢¡¢¢¢¡¡‘¡‘¡¡¡¡¢¡¡‘�¡¡¡‘¡¡¢¡��‘‘¡‘‘�¡¡~~¡~�¡¡‘‘¡¡�~}~�~‘~�‘¡~�‘¡‘~~~þÿ‘}‘}}~~~}}}}~~}}�~}}}}|}r}}}}rv}}}}}}}~}}}}}}}rvv}}}v}}vv|}}}v}}}vpv}pp||pp|}pvvvvvpp}ppppppprÓÿÙvpp˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!B÷ÿÿÿÿÿ÷]!!! !!!!!!!! !! !  ! !!  =}ªíýüýüüüüüýýýþýüüýüüýüüýüýüýüýæÓ                                                                                                                                                                                                                      Ó×úúüóúúúúüúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ���‘~}~�‘�~~‘‘�~‘¡~~‘‘‘¡‘~�‘‘‘‘�‘‘‘�~¡‘¡‘¡¡‘‘¡¡¡‘¡¡¡‘¡‘¡£¡¡¡¡¡‘¡¦¢¡¡�¡¢¢¡¡¢¢¡¡¡£¡‘¢£¢£¢¡¢¢¢££¢£££¡£¡£££¡¢£££££££¢£££¦££åþÿÿÿÿÿꦣ¦¦¦®¦££®££¦££¦¦¦©££®®££®®££«¦®®££«©¦®¦¢®®¦¦®¦©£¦®¦££¦¦®®¦©££®®«®£¦£££¦¦®£££¦¦©£££¦£¢£¢£®¦¦£¢£®¦££¦¦££¦¦¢¢¦¦£¡££¢¢£¢£¢£¦£¢¢¦£¡¢¡¡¦£¢¢‘¡¦¢¢£¡¡£¦¡‘¢¢¢¡¡¡¡¡¡¡¡¢¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘¡‘¡¡¡�~‘‘‘‘�~‘‘‘~‘¡‘~~‘‘‘�¡‘~‘‘�‘‘~~~~~}‘‘~}~~ýÿ‘}~~~‘~}~‘~~}‘~}~}~~}|}}}}}}~}|}~}}}}}~|}}|s}}}}r}}}rp}}}}|}|r}vr}|p}p}}ppv|v|vrp}ppp}vpppp|pvžþß}ppÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷Z!!! !!!!!! ! !  !=s¥èýýüýýýýýüüýÿþüýüüýüüýüýüýüýüæÓ                                                                                                                                                                                                                     ÓÓüúúúúüúúüóüúüúüúÿÿÿÿÿÿÿÿÿÿÿÿûÖ�Ž~‘~}~~��~~���~‘‘‘~¡‘�‘�~‘¡~~‘‘‘‘¡�‘¡‘�¡¢¢¡‘¡¡¢¢¡¡¡¡¡�¡¢¡¢¢¡‘�¡£¡¡‘‘¡¡¡�¡¢¡¡¡¡£¡¡¡£¢£¦¡¡££¦¦££¦£¢¢££££¢£¦®£¢¢££££¡¢¦¦£åþÿÿÿÿÿꦦ®¦¦¦££«¦£«¦¢£¦¦¦¦£®®®©¦®¦££¯®¦¦¦¦¦££®®££®®¦¦££®£¦¦£££©®®®£££®®®®®®©££¦¦®£££££££££¢££¢¢¢£®®®££¦£££££££££¢¡¢£££¡££¡¡¡¢¡£¦¦£¢¢¢¡¢¡¡¢£¢¡¡¢¦«¦¦¡¢¦¦¡¡£¢¡£¢¡¡¡‘�¡¡¡¡¡¡¡¡¡¡¡¡¡££¡¡‘‘‘�¡¡¡�~�‘‘�‘‘�~~~~~�‘‘�~�¡‘�~~€�‘~‘‘‘¡‘~�‘~~~}~~~}}~~ûÿ™}~‘‘�~~�‘¡~~‘~}}}��~}}|r}|}}}}~~}|}}}s}v|p}}p}}}p}}|v}rvvvp|vppv}|v}}}pp||v|}}}}pppp}pp}vvvvpžÿßwvp{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$!!B÷ÿÿÿÿÿ÷_!!!!!!!! !! !!!!!!!! =}¥éüüýüüüüüýûýþýüüýüüýüüýüýüýüýàÓ                                                                                                                                                                                                                            Ó×úúúüóúúúúüúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��‘‘~~~‘~¡‘‘~~~~�¡‘‘�~~‘¡‘�¡¡~‘¡‘‘¡~~¡¡¡¡¡¢�~‘¡¢£¡€¡¡¡�¡¡¡£¡¡¡‘¡¢¡‘¡¢¡¢£‘¡¡¡¡¢¡£¡¡£¦¡¡¡¡¡£¢£¢¡¢£¢££¢££¡¡¢££¢¢¢¢££££££¦£åþÿÿÿÿÿ뫦¦¦££££¦¦¦®¦¢£©©£££¦¦©£¦®®££°®££¦©££¦®¦£¦¦©£¦£¦®®¦©£¦®©¦¦££¦¦«®¦£¦£¦©¦¦£¦¦£¦¦£¦¦«¦££¦¦£££¦®£££££¦£¢££££££¢£¢£¦¢£¢£¢¢¢¡£¦£££¡¢¢£££¡¡¢¢¢¢£¢¢£¡¡¢¢¡¡¢¢¢¢¡¢¡¡¡�¡¢¡‘¡¡¡¢¡¡¡¡¡¡¡‘‘¡¡‘‘¡¡¡‘¡¡‘‘��¡¡‘‘‘‘�¡‘‘‘‘‘�‘‘‘~�‘�~~‘‘¡‘~}‘‘�~~~~~~}~�úÿ¥~~~~}~}}~~~~}}}}~}~~~}}}}}}}~~}}}v}~}||s}}}}}}}}}vv|p}}rv|v|}vp}}rv|}|pv|pp|v|}v|vvvvpvvppppp˜ÿèvpvwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@óÿÿÿÿÿ÷Z!!!!!!!!  !  !=q¥ëýýüýýýýýüüýÿþüûüüýüüýúýüýüýüæÔ                                                                                                                                                                                                                          ÓÕüúúúúúüúúüóüúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���‘‘‘‘~�‘‘‘~}}~‘‘¡¡~}~‘¡¡‘‘‘�‘¡‘¡¡‘�‘¡¡‘¡¡�~¡‘¢¡��‘‘‘���¡¢¡¡£¢¢¡‘¡££¢¦£¡¡¡¢¢£¡¡¡££¦¢¡¡‘¡¢¢£¡¡¡¡¡¢¢¡¡¡¡¡¡¢¡¡¢¢¢£££¦£££¢Ýþÿÿÿÿÿꮦ£££¡£££®®®¦£¦©¦££££££££¦®££®®¦¦®£££©®®£®®££££©®££££®®®¦£££££©®¦¦££®®®®£¦®«¦¦££©®®¦©®®¦¦¦£££¡¡¡¢£¢¡££££££¢¡¢££¦£¢¢¡¢££££¢££¢££££¦¢¡£¦£¡¡¡¡¢¡¡¢¡¡�¢£¡¡¡¡¡¢¡¡¢¢‘�¡¡‘¡‘¡���‘¡�¡¢¡¡¡‘‘¡¢¡¡¡‘~�¢¦¡¡¡¡¡‘‘�~�¡‘~~~���‘}~‘‘‘~}~‘‘~~~¡‘~‘‘~~õÿ¬€}~}}~}}}}}~}~~~~}}~~}~~‘~}~~}~~}r|}}}}||}}�~}}}ppr}}}}}}}s}}r}vvvpvvv||ppp|ppvv}p|p}vrpvpppp™ÿèvppÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!! !!!qšèýüýüüüüüýýýþýüüýýüýüýüüýüýüýàÓ                                                                                                                                                                                                                     Ó×úúúúúúúúúúüúúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~~‘��~~‘¡�~~‘�~‘¡‘���‘¡¡~�‘‘‘�¡‘¡¡‘‘‘‘¡¡‘�‘¡¡¡¡¡¡¡¡¡¡‘¡¢¡‘¡¡¡¡¡¡£‘¡¡¡¡¡¢¢¢¢¡‘¢£¢¡¢¢¡¡¢¡¢¢¡¡¡¡¢£¢¢¡¡¡¢¢£¢¢£¦¦££££££££åþÿÿÿÿÿ릣¦®£¡£¦££££££¦¦£££¦¦¦¦¦©£¦¢¢®®©£¦¦£®££®£¦®£££¦£©¦®£©¦©¦®®¦¦£¦¦£¦®££££®®£¢«®¦£££££¦®¦¦¦££££££££££¦£££££¢¢£££¢££¦¦££££££¢¡¢££¢¢£¢¡¡¡¡¦£¢¢¡¡£¡¡¡¢¡¡¡¢¢¡¢¡¡¡¡¡¡¡¢¡�¡¡¡¡¡¢¡��¡‘¡¡¢¡¡¡‘‘¡¡¡‘¡‘¡‘¡¡‘¡‘�‘‘‘¡‘~‘‘�~�‘‘~~~~¡‘��~~~~}~‘‘~}‘‘~}õÿÓ¡}~~~}}~~}}~~~~~~}}}}}}}‘�}~}}}}}}s}}}}}}p}~}v}}}pp}}p}}}|v}}}}rpv||||vvppp|p|pp}v}|ppvvvrppp˜ÿ÷vppwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Còÿÿÿÿÿ÷Z!!!!!!!!!!!! =q¥íüýüýýýûýüüüÿþüüýúýúýüýýüýüýüæ×                                                                                                                                                                                                                               ÓÓüúúúúüóüóüúúüúüúÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~~~‘‘‘~~‘‘¡‘¡~~‘¡¡¡¡�~‘¡‘~‘‘�‘‘‘¡¡‘~~�‘‘�‘¡‘‘‘‘¡£¡¡£¢‘¡¢¡‘‘‘¡¢¦¢¡��¡‘¡¢£££¢¡�¡¢¡¡¢¢¡¢££¡¡¡¡¡¡¡£¦¢¢¡£¦£¦¦££«®«¦£££¢££åþÿÿÿÿÿê«£££££££¢££¢¢£¦¦®¦£¦£¦¦¦«££¢¢£®¦££®©®££££¦¦££¦££®®¦¦®©££¦®®®®®¦¢¦®¦£££¦®®£®®¦£¢¢£££®£££££££¦®¦®¦®®¦¦££¦¢¢£¦®¦¦£¦¦£¦£¡¡££¡¡£¢¡¢¢¡¡¡¡¢¢¡¡¢¡¢¢¡¡¡¢£¡�‘‘¡¢£¡¡¡¡‘‘¡¡~�¡¡¡¡¦£‘�‘¡¡¢¢¡¡¡¡¡¡¡‘‘‘¡¡‘‘‘¡¡‘¡¡��¡‘~~‘¡‘‘‘�~~�‘‘~~�~~}}~‘‘�}}~¡~~ëÿÓ¡}~~~~~¡~}~~}~~}}~}}|}}r~‘~}v|}s}}}~}~s}}}}}vr}~}|}}}vv}p|p|}}}pp}}}}|}}vvv|v|p|}}p|p|vv|vvpp˜ýüvvovÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷Z!!!!! !!!!!! !  !! !!! =qªéýüýüüüüýýûýÿüüüüüýýüýüüýúýüýàÓ                                                                                                                                                                                                              ×ÓúúúúúúúúüóüóúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��}}~~~~~~~�‘‘‘��~�‘‘¡‘‘~~‘��¡¡�¡�‘¡¡‘�‘¡‘¡��¡¡¡¡‘‘¡¡¡¦¡‘¡¢¡¡¡�¡¡¡¡¡¡¡¢¡¡¡¡¡¢£¡¡¢¢¡¡¡¡¢¡££¢¡¢£¢¢¢££££¡¢££¦£¡¢¦¦¦¦£¢££££åþÿÿÿÿÿí¦££¢£®£¢£££¦¦£¦®¦¦¦¦¦£¦£££¦¦®£¦££¦¦¦®££¦«¦£¦®©££®®££®®£££¦££®®££«®¦¦££¦¦¦©££££££££¦¦¦££©£¦¦¦¦£££££¦££¦££¡££«¦¦£££££¢¡£¦£¡££¢¢¢¢¢¡¢¢¢¡¡£¢¡¢¡¡¢¢¢¢¡¡¡¡¡¡¢¢¡¡¡¡¡¢¡‘¡¡¡¡¡¢¡¡‘¡¡¡¡¡¡�‘¡¡¡‘¡¡¡‘¡¡�~‘¡‘‘‘‘‘¡‘~�‘‘¡‘‘�~~¡‘~~~‘‘~~�‘‘~~~}�‘��èÿÚ‘~}~~}~~}}�}}~~~}}€~}}}}}}~~}}}v}}}}}}}r}}|}}p|}}v|}}r}|v|}pv|||p}}||vvr}|v}v|pp}|vppv}|ppppo�ýÿvpvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Bóÿÿÿÿÿ÷Z!!!!! !!!!!!!!! !=q¥èýýüýýýýúýüüÿþýúýúüüüýúýüýúýüæÓ                                                                                                                                                                                                                    ÓÕüúúúúúúúúúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���‘‘~~~~�‘‘‘¡‘‘‘�~~~~‘��~~~¡¡¡¡‘‘�‘¡¡¡‘¡¢¡‘‘¡¡¡¡¡¡�¡¡£¡¡¢¦¢¡¡¡¡¡¡�¡¡¡¦£¡¡¡¡¡££¢£¡¡¢¢¢¢¡¡£¦¦¦¦¦¦¦¢¢¢££¢£¢££¢¢££££££¢¢£¦êþÿÿÿÿÿꫦ£¢£¦££¦£¦®®¦££££¦¦®¦¦££¦®®®®£££®®®®®¦£¦¦¦®®®¦¦®££®®¦£££££££££¦®®¦¦££££©¦£¢¢£®¦¦¦£©«£¦¦££¦¦££¢£¢£¦¦¦¦£¡¡¡¢¦¦££¦¦¦¢¡¡£¦£¢£¢¡¢¢£¡¡£¦¡¡¢£¡¡¡¡¡¡¡¢¢¡¡¢¢¢¡‘¡¡¡¡¢¦¦¢¡¢¡¡��¡¡‘¡¡‘¡‘‘‘~�¡¡�~¡‘‘~�‘~�¡¡‘~���~~}�¡¡¡‘��~�‘~~~~�‘‘�‘¡�}}}~‘‘�~àÿÚ‘~}}~}~}s~~}}}~}}~~~~~~|}s}~}~|r}}}}}}}p|}rvrv}}vvr|vpppr}}vv|v|||pppp}v}vpvpp}}vpppop|ppppv}ÿÿvpwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@÷ÿÿÿÿÿ÷_!!!!!! !!!!!! !   =q¥éüüýüüüýýüýýýýüüüýüýüüýüýüýüýàÓ                                                                                                                                                                          Ó×óúüóüúúúúúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ�~~�~~~~�‘�~�‘��‘‘‘~~~�‘‘‘‘�‘¡‘¡¡‘��¡¡¡‘‘¡¡‘¡‘¡¡‘¡¡‘¡¡¡¡¡¡¢¡�¡¦¡¡¡¡¡¡¡£¢¡¡¢¡¡¡££¢¡¢¢¢¡£¡¡¡£¦£££££¡¡££££££¡¢£¢££££££¢¡££åþÿÿÿÿÿ릦££¦«£¦£¡£®«¦¦££££££®¦££¦®¦®¦¦££¦£¦£®®¦£¦®©£¦£¦®££¦®£¦¦¦¦£¦££«®££¦¦¦©££¦¦££££¦££££®£££¦¦¦£¦£££££¦¦¦¦££¢£¢¡£¦£££££¢£¡£££££¢¡¢¢££¡¢¦£¡¢¡¡¢¢¢¢¡¡¡¢¡‘¢£¡¡¡�¡¢¡¡¢¢¡‘¡¡‘¡‘¡‘¡¡¢¡¡¡‘¡��¡¡~~‘‘‘‘¡¡‘�¡‘��‘¡‘‘~~‘‘¡¡‘‘‘~‘‘~~~~~‘~‘‘‘‘~~}}~~~}àÿè‘~}~‘}~}}~~}}}}}}}~}}~}}}|}~}}s}}}}v}~}p}}}s}p||s}}p}p|p}}}vp|}p|vp|pvvr}v|p|pv||ppppp|vpp|vvþÿ˜ppvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷Z!!!! !!!!! =qšëýýüýýûýüýüýÿýüýüüüüüûüüüýüýüæÓ                                                                                                                                                    ÓÓüúúúúúúúúúüóüúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ Ž~~}~~~‘‘}~~~~~�‘‘¡‘‘‘¡‘¡¡‘�‘‘‘¡‘¡‘‘‘¡�~¡¡‘¡�~~�‘¡¡‘�~�¡‘¡¡‘¡££¡¡�¡¡¡¡¢‘¡¢¡¡¡¡¡¡¡¡££¢¡¡£¢¢¡¡¡¢¢¡¡¡¡££¢¢¢¡£¡¡¢£¡¡£¦¢¡££Ýþÿÿÿÿÿꦦ¦£¦®®®¦¢£¦££££££¦£¢¦¦¢¢£¦£¦¦©££¦£££®®¦¦¦©£¢£¦¦£¦®£¦£®®¦©¦®«£®¦£££¦¦©£¢£®¦®®«¦¦®©¦¦£¢£¦¦£££¦£££®¦£££¡¡£¦££¢££¢¢£¡£¦¢¢¡£¡¡¡¢£¢¢£££££¡¡¡£££¢£‘¡¡¢¡¡¢£¡¡¡¡££¡¡���‘¡¡¡����‘¡¡¢££¡¡‘‘‘¡��¡¡¡¡¡¡¡‘‘‘‘~‘‘¡~�~~~~‘¡‘‘~�‘‘‘‘~~‘‘‘~~‘�~~}~~}~Úÿë‘}~�‘~~‘�~}}}}}}}~~~}}~~}}}}|}}}}}}p}}~}}~}}}}p}|}}s|}}}}~~}}}vv}}||}}|vppp|v|pp|vvpppvpp|vppþÿžplvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@óÿÿÿÿÿ÷_ !!! !!!!!! !!    !q¥éüüýüüüüýúýýþýüüüüüüýüýýýüýüýàÓ                                                                                                                                                                      ×Óúóúúúúúúúúúúúúú÷ÿÿÿÿÿÿÿÿÿÿÿÿýÖ �~�~~~~‘�~‘~~~}~¡¡‘‘~‘¡‘‘‘‘‘‘‘‘‘‘‘‘¡�‘‘‘¡¡�‘‘‘¡¡‘�¡¡‘�¡¡¡�¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢¦¡¡££¢¡¡¢¢£¢¢¡£¢££¡¢¢¢¢¢££¢¢¢£¢¢££åþÿÿÿÿÿ릫£¢¦£¦®£¢£¦£¢£¦¦££¢¢«¦£¦£¦£¦¦¦££¦£¦¦¦®©£®¦£££®¦££®©££¦®££®®¦£®®££¦¦¦¦££¦¦¦¦¦¦¦££££¦£¢££¦££«¦£££¦££££¡¢£££¢££¢¢¢¢¢££¡¡¡¢£¢¦¢£¡¡£«£¡¡¢¢¡¢¡¡¢¢¡¡¡¡¡¡¢¢¡‘¡¢¡¡¡¡¡�¡¡¡¢¡�‘¡‘¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡¡‘‘¡¡¡‘‘�~�‘‘�‘¡�~~�‘‘�~‘‘‘}~�~‘��~}~~}~~~�}~×ÿõ‘~}~‘~}~�~}}~~|}~~~~s}}~}|~}s}}}}~}r}}}}}}}}}||p}}}}}v}}}}}}r}vrv}}||}}|v|pp}ppv|pvvppvpprppvwýÿÓvopÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!$!@óÿÿÿÿÿ÷Z!!!!! !!!! ! !!qªëýüýûýýýüýüüÿþúýüýúýúýüüüýüýüæÓ                                                                                                                                                                      ÓÔüüúúúúúúúúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖŸ�¡‘~}}~~‘‘‘‘‘�~~�~‘~~�‘‘~~~‘‘��~~¡¡‘~‘¡¡¡¢¡¡¡¡¡¡¢¡¡£¡‘¡¡¡�‘¢¡‘�¢£¡¡¡¢¡¦£¡¢¦¢¡¡¢¡¢¡¡¡¦£¢¢¡¡¢£££££¦¦£¢££¢££¢¢£¦£¢¢¢¢££¦¦Ýþÿÿÿÿÿê«££££££¦££¦®£¢£¦«¦£¢¦®®¦®¦©£¢££££¦®®¦£££¢££¦£¦®¦¢£¦££®¦¦£¦®¦££¦®¦£¦¦¦¦¦£®®¦¦£££¢¢¡£¦®£¢¢¢¢£¦££¦¦£¡¢£¦£¦£¢¢¦¦£¢¢¢£¢£¡¡£¡¡¦¦¦¢¡£¡¡£¡¡¡¢¢¢¢¡¡¡££¦££¢¢¡¡¡¡¡¡¡¡¡¡¢¢£¡¡¡¡¡¢¢¡‘‘‘¡‘¡‘¡¡¡¡¡¡¡¡‘~��~�‘��~�¡¡‘�¡¡¡‘¡‘~~}~�‘‘~~~~€~~~~}}~~~~‘~~Ôÿõ‘~~~‘~}}}}~~~}}~~}}}|}s}}s}~~}}r}}}}~}}p}}}vv}}|}}~}p}prv}}p}v}pp}}vpp}|v|vvppppvv}rv||vppppv|ýÿà}puÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!$!!Zóÿÿÿÿÿ÷[!!!!!!!!! !   ! !=}ªèýûüüýúýýúýýþýýüüüýüüüúýûüüüýàÓ                                                                                                                                                                                             Ó×óúóúúúúúüúúúúüóüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��‘‘~~~~~‘~~‘‘‘}~~‘¡‘~~¡‘‘�~���‘�~‘¡‘�‘‘‘¡¡‘‘¡¢‘¡¡¢¡¡¡¡¡�‘‘¡¡¡‘‘£¢¡¡¡¡¡¡¢¡¢£¡¡¡¡¢£¡¡¡¡¢£¡‘¡£¢¡£¢££££¢¢¢£¢¢¢¡¢£¢££¡¡¢£««åþÿÿÿÿÿ릢£¦£¢£££££¦££££¦®¦£££¦®®£¦£¢¦«££¦¦¦®£££¡££¦¦£®¦££«£££®£®¦¦¦££¦¦¦«££¦©££¦¦¦¦£¢£££¢££¦¦£¢¢££¦£££¦£¡¢££¦¦£¢£¦£¢££¢¢¢¢¢¡££¢££¦¢¡¢¢¢¢¡¡¡¢¢¢¢¡¡¡¡££££¢¢¡¡¡¡¡¡¡¡¡¡¢£¡¡¡¡¡¡¡£¡¡‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡���~‘‘‘‘�~‘‘�‘‘¡‘‘‘‘~~~‘~~�‘�~~�~~~‘~}~~~~~~~Óÿû‘~}~~}~~}~~~}}}~~}~}}}}}}~}}}}}|}}}}}}||}}}rp}|s}~}}||}vr}}|v}||pv||vvv|}vvppp|p|ppvpv}pppvpppýÿè}vvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷Z!!!!!!!!! ! ! =sªíýüýýüýüüýüüÿþúýúýüüýüýüüüýýüàÓ                                                                                                                                                              ÓÓüúúúúúúúúúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���‘¡¡‘‘‘‘‘�‘�~�‘�‘¡¡‘~¡¡‘‘‘‘‘¡¡‘~~¡¡‘���¡¡¡�¡¡¡‘¡¡¡¡‘¡¡‘¡¡¢¢¡¡¡¢¡¡¡‘��¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡£¦¢¡¡£¡¢¢¢£££¢¢££¢¢¢¢¦«¢¡££££Ýþÿÿÿÿÿꦢ£££££££¢£¦®¦¦¢£«¦£¢¢£®¦££££®«¦¦¦¦¦®¦££¢£££¦£¦¦¦¦®®£££©®®¦£££¦££¦££¦££££¦££¢¢£®¦¢¢£¢£££¦££££¢¢¦¦£¦¦¢¢¢¢£¦¦£¢¢¢¡¢¢£¢¢£¦¦¢¡¡£¢¡¡¡¡¡¡££¡¡¢¡££¡¢¡¢¡¡¢¡£¢¡¡�¢¢¡‘¡¡¡‘¡‘��¡£¢¢¢¡Ÿ‘�‘¡¡‘‘���¡¡¡‘‘�¡¡¡¡‘~~�‘‘~~‘~~~¡¡¡‘�~~‘¡‘‘‘‘‘~‘‘~~‘‘~}~~§ÿý‘}~}}}~~}}}~~~}}}~}~}}r|}~}}}}}s||}v}}}s}r||}}}|}}|p}}ppp}|pvv}p|}||rvpv|}}p}|}}vpppppv|pppvvvýÿ÷voÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Bóÿÿÿÿÿ÷_!!!! !!!! ! !q¥éúýúýýüýüüýýþýüúýüýúüüüüýûüüýàÓ                                                                                                                                                                      Ó×óúúúóüóúúóüúúúúúÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~‘‘¡‘~~��~~�‘‘~‘¡¡‘~�‘‘‘¡‘¡¡‘‘�~‘¡¡�~¡‘¡‘~¡¡¡¡¡¡¡‘¡¡‘‘¡‘¡¡¡¡¡‘‘¢¢�¡¡¡‘¡�‘¢¢¡‘¢£¡¡¡¡¡¡¡¡££¡¡¢¦£¡¢¡£££¢¡¢¢¢¢¢¢££¢¡££££åþÿÿÿÿÿ릢£££££££££¦¦®¦¢£¦¦££¢£¦£¦£¦£££®®££¦®£¢¦«£¢£®££¦©¦®®£££¦¦©®¦¢£¦£¦®££££££££¦££¢¦«¦££¦£¡£¦¦££££¢£¦¦££££¢¢¢£¦£££¢¢¢£¢¢££¢¢££¡¡£¦¢¡¢¢¡¡¢£¡¢¡¡¢¢¡¢¡¢¡¡¡¢£¡¡¡‘¡¦¡¡¡‘¡¡¡¡‘¡¡¢¡¢¡‘‘�~¡‘‘�‘‘��‘¡¡¡‘‘‘¡¡‘‘��~‘¡�~‘~~‘‘¡¡�‘~~‘‘¡‘‘‘‘‘�‘~~‘‘~~}}šÿÿ™}~~}}~~}}}~~~~}~}}}}}}}}~~}}}}}}r}|s}}}}|||}}}}}}}v|}}}v||vr}}|v}}pvr}pv|||v|pv}pppvppvvppp}vüÿÿp™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷[!! !!! !!!!  !! 7qšëýýýýúýüüýüüÿýýüýúüüýüüüüüúýüæÓ                                                                                                                                                                             ÓÓüúúúúúúúüúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ �~~~~~~}~~~~~~�~~~�~�‘‘~~‘¡¡‘‘‘¡‘¡¡‘‘¡¡‘‘‘~~‘¡¡¡‘¡‘�‘¢¡¡¡¡‘¡¡‘‘�¡¦¢¡¡¢¡¡£¢¡£¢¡¡£¢¡¢£¢£¡¡¡¡¢¡¡¡¢¡¡£¡¡¡¡¢££££¢¢£¦£¡£¦£¢£åþÿÿÿÿÿꦢ¦«¦¦£££¢¢£¢£££££££¦££¦¦«££¦££®¦£¢¦¦¦¦®®®¦®®®¢£¦£®®¦®¦£¦¦££££¦©®®¦££¡£££¦¦®®¦¦®££®®¦££¦£££¦£¢£¦£¢¡££¢¢¦¦¢¡££¢£¦£¡¡¢¢¢¡¡££¡¢£¡¢£££¢¡£¦«¦¡¡¡¡¡¡¡¢¡‘¡¡¡¢¢�¡£¢¢¡¡¡‘‘¡¡¡‘¡‘¡¡¡¡‘¡‘¡¡¡¡¡‘‘¡�~‘€‘‘‘�¡¡¡¡¡¡¡¡‘~�‘~~~~~~~‘��~~~~‘‘€�}}~~~~~}šÿÿ¥}~}~‘�}~}}}}~}}}}|}}}}}~‘~~~}|}}}|}}~}}}}}}v|vvrv|p}}}}}}}v|ppppv|pp}pppvrv}ppp|vv}ppppvpop}wúÿÿžoÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Cóÿÿÿÿÿ÷]!!!!!!!!!!!  !!!  !9q¥éüüüüýüýüüýýýýüúüüüýüüûüüýýüýàÓ                                                                                                                          ÓÓóüóúúúüóúúúúúúúúÿÿÿÿÿÿÿÿÿÿÿÿþÖ ‘~}~~~~~~~�~}~‘�~~‘�}�‘��‘¡¡‘‘¡¡‘‘¡¡~‘‘¡¡‘���‘¡¡‘~¡~¡¡¡¡¡¢¡¡¡‘‘¡¡¡¡¢¢¡¡¡¡£¢££¡¡¢£¡¢¢¡££¡¡¡¢¢¡¡¡¢¡¢¡¡¢¢££££££¡££¢¢£££¢£åþÿÿÿÿÿꦣ¦®£££¦£¢£¢£¦££££££¦¢£¦¦¦¦¦¦¢£®®¢£¦¦¦©©£©¦¦®¦¢£®¦©¦¦®££«¦££¦¦££¦¦¦¦££££¦«¦¦¦£¦£££¦«¦¦¦¦£¢£«¦¡£¦¦¢¢££¢¢«¦¢¡£¦£¢¦¦¡¡¢£¢¡¡¢£¢¢¢¢££¡¢¢¡££¦¦¡¡¡¢��¢£¡¡¡¡¡£¡‘¡¡¢¦¡¡¡�¡¢¡‘‘�‘¡¡¡¡¡‘¡‘‘‘¡¡‘‘‘¡����¡‘‘¡¡¡¡¡¡‘‘‘‘‘‘�~~~~~��~~~~~~‘‘�~~~~~~~‘~‘ÿÿÓ~}~~�}~~}}}~~}}~}}}~}}}}}}}~}}}}}}}~}}}}}}r}}}pp}}v}}}}}}|}wvv}|vpvvvv|ppvpvppv|v}{˜˜žžÊ×àæþÿÿòžõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!!!!! !!  =sšëýýýýüýüûýüýÿþüüûýüúýüüýüüúýüæÓ                                                                                                                                     ×ÙúúúúúúóúúúüúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��Ž}~~~~‘‘€‘‘‘¡‘~~‘¡~~‘¡¡‘‘‘‘�‘¡‘~‘‘‘�‘¡��‘¡¡¡‘‘¡�‘�‘¡‘‘¡¡¡¡¡��¡¡¡‘‘¡¡‘¡¡¡¡¡¢£¢¡££¡¡¡¡¡¢¢¡¡¡¢¢¢£¢¡¡¡¢¢¢£¦£¢£££¢£¦¦££££¦êþÿÿÿÿÿꥢ£¦£££¦££¦£¦¦££¦£¦«¦££¦££££¦£¢£®«£¦££©¢¡£££®«¢££££££££££¦££¦¦££££®®££¦®®«£¢¢¢¢¢¢¢£©¦¦£££££¦¦££¦¦£¦«¦¢¡££¡¡¦¦¢£££¢¡¢£££££¢¡¡¡£¢¡¡¡¢¢¡¡¡¢¡¡££¡¡££¡‘‘�¡¡‘¡¡¡¡£¡‘¡‘¡¢‘¡¡‘¡¡�‘‘¡¡¡¡¡‘‘¡¡‘¡¡¡¡¡‘‘¡‘¡~~~~~}~~�‘‘‘�~~~~‘‘‘~}~~~‘‘~¡‘~}}~~‘‘¤ÿÿÚ‘}}~}}}~‘}}}}}~~~}}}~~~}}}|}}}v}~}}}}sv}}|}}}}|}~}|ppp}}vvwww�™�˜™™šžšžž§ÇÓÊÓ×ÙÙààèèõõ÷ýýÿÿÿÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Bóÿÿÿÿÿ÷x!!!!!!! !!!!  =s¥éüúýúýüýüýúýþýüüüúýüüüüüüýüüýàÓ                                                                                                                                                   ÓÓúóüóúúúúúóúúúúúúÿÿÿÿÿÿÿÿÿÿÿÿûÖ��~~~}�¡‘€�‘��‘¡~~�‘��‘‘¡¡‘��¡¡‘��‘‘‘‘¡‘�‘‘‘¡¡¡��¡¡‘�¡‘‘¡¡¡¡¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡£¢¡¢¡¡¡¢¢¡‘¢¢¡¡¡¡¢££¡¡¢¢¢¡£££¡¢£¦££¦¦££££¦åþÿÿÿÿÿ릢£££££££¦£££££££££®¦££©¦£¦£££££¦«®£££®£¡£££¦®££££££££££££¢£¦¦£££¦¦«££££«®¢¡££¢¢¢££¦¦©££££££££££££¦¦£¡¡£¢¢£££££££¢¢¢¢£££¦¢¢¡¢£¡¡¢¢¢¡¡¡¡¡¡¡¢¢¡¡££¡‘¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡�‘¡‘¡¡¡¡¡¡¡�‘¡¡¡�¡‘¡¡‘¡‘‘‘‘�~~~�~�~~‘‘‘‘~‘‘~�¡�}}�~�~��‘~}~�~‘‘‘ÿÿæ‘‘~€}|}‘~}}}}}}}}}}}}‘~}}}}‘‘�¥™™™™™™š§§žž§ÓÒÓÓÓÓÓÊ×ÙÚàààààèëèôèõõõ÷÷÷úúüýýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!!@óÿÿÿÿÿ÷Z!! !!!  !! =sšëýýüýüýúýüýüÿýúüüüüûüüýüüúýüüæÓ                                                                                                                                             Ô×úüóüúúúúúúüúóüúüÿÿÿÿÿÿÿÿÿÿþÿûÖ��‘‘�~‘‘~�‘~~~‘‘‘~~‘‘‘‘~~~�~~‘‘‘¡¡‘‘¡¡‘‘¡¡¡‘~‘¡‘�¡¡‘‘¡¡¢¡¡�‘¡¢¢¡¡¡¡¡¡¡‘¡¡‘¡‘¡¡‘¡¡¡¡¡£¦¡¡¡¢¦«¦¢¢¢¡¡¢¢¡£££¡¡££¢¢¢¢¢¢£££¢¡Ýþÿÿÿÿÿꦦ¢¢¢¢£¦¦££££¦¦£¢£¦®¦£¦®¦£¦£¢£««£¦¦¢£®®¦£®¦£££¦®¦¦¦¦£££¦¦£¢£®¦¦£¦££¦¦££¢¦«£¢¦®«¦£¢£¦¦©£¢¡¢£¢¢££££¢¡¢¦¦£££¢¢¢¡¡¢¡¢££¢¡¢££¦¢£¢¡¡¡¡«¦£¢¡¡¡‘¢¡£¢¡¡¡¢‘¢¢¡£¦¢¡¡¡‘¡‘¡‘¡¡¡¡¡¡‘�¡¡¡¡¡‘‘‘�‘‘‘¡¢¡‘�~~~~‘¡¡‘¡‘�‘¡¡¡‘~��‘¡¡¡‘}~�~}~~~~~}}~�~~‘}}}~þÿõ§§§§§§§ÓÓÒÓÔÓØÚØÚÙÙÚÚàæààèèèèèèëõëôõõõõõ÷úúûúûýýýýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!Cóÿÿÿÿÿ÷_!!!!!!!!!!!! !!!     !!q¥éüüýüýúýüýúýÿýüüüüüüýúýúýüüüýàÓ                                                                                                                                                     ÓÓóúúóúúúúúóúúúúú÷ÿÿÿÿÿÿÿÿÿÿÿÿýÖ�‘��~~‘¡~~‘‘��~~‘‘‘~‘¡‘�~~~~~¡‘‘¡‘‘¡¡‘~¡¡¡¡���‘‘‘¡¡‘‘¡¡¡£‘~‘¢¡¡¡¡¡‘‘¢¡¡¡��¡¡¡¡¡¡¡¡¡¡¢¢¡¢¡¡£¦££¢¢¡¢¢¡¡¢££¡¡¢¢¡¢¢¢¢¢¢£££¢åþÿÿÿÿÿ릣£¢¢££¦¦£££££¦£££¦¦¦¦¦©££££¢£¦¦£¦¦££¦£¦¦«£££££¦®¦¦¦££¢£¦£¢£®¦©¦££££®¦£¢«®££¦¦«£££££££££¢££££££££££¡£¦£¦£¢£¡¡¡¡¢¢£¦¡¡¢«££¢¡¢¡¡¡¢¦¦£¢¡¡¡¡¢£¡¡¡¡¡¢¡£¡¡¢¢¢¡¡¡¡�‘¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡‘¡¡‘‘¡¡¡¡¡‘���~��¡¡‘‘‘~¡¡‘‘‘‘�‘‘¡¡‘�~~}~‘�~~��}~}‘~~�~~}}ýÿÿõ÷ø÷ú÷ûúûúûýýýþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@òÿÿÿÿÿ÷]!!!!!!! !!!! !!!=qšëüýüýüýüýüüýþýûúüýúýúýüýúýüüüæÓ                                                                                                                            ×ÕüúúúüóüóúúúúúúúüÿÿÿÿÿÿÿþÿÿÿÿûÖ¢��}}~~~}}~‘~�~}~‘�~�‘‘�‘��~‘¡‘~‘~�¡‘~‘¡¡‘‘�‘¡¡¡¡¢¢¡��‘¡¢¡�¡£¡¡¡¡¡¡¡¦£¡£¡¡£¢¡££¢¡¡¡¡¡¢£¦¦¡¢£¡¡¢¡¢¢¢¢¢£¢£¦¢¢¢£¦¦££¢¡¢¢¢£Ýþÿÿÿÿÿꫦ££££¦££¢£¦¦££¡£¦££££££¦£££¦®£¢¢¦®«£¢¡¢¦¦¦¦¦£¢££££¦££¢£©®££££¦¦£©£¢£¦¢¡£«¦££¢¢£¦¦¦£££££¦¦¦££¡¡¢¡£¦¢¡¢¢¢££¦£¦£¢¡¢£¦¢‘¢£¡¢¢¡¢¡¢¡¡¢¡£¢¡¡¢¢¦£¡¡¡¡¡£¡¡¡¡¡‘¡¡¡¡¢¡¡¡¡‘¡¡¡��¡¡¡�‘¡¡‘¡¡�‘‘~¡¡¡¡¡‘‘¡‘‘¡¡‘~~~‘¡‘~~~~~‘‘~~}~~}~‘‘~}~~}~~‘}}}~‘‘¡ëõõõõõõõõõõõõõíõõíííõëíèèèèëèèèèèèæèèèèâèèõþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Bóÿÿÿÿÿ÷Z!!!!!!! ! ! ! !9s¥éüüýüýüûüýüýÿýüüýúýúýüúýüüýúýàÓ                                                                                                                                Ó×óúóúóúúúúúúúúúúúÿÿÿÿÿÿÿÿÿÿÿÿþÖ �~~~~~�~}~�~~~}~‘‘‘�~�‘‘¡‘~‘¡����‘¡‘~‘¡¡¡‘~�¡¡¡¡¡¦¡~‘¡¡¡¡‘¡¢¡¡¡¡‘¡¢¢£¡¡¡¡¢¡¢¢¢¢¡¡¢¡¡¢¢£¢¡¢£¡£¡¡¡¢¢¢¢£¢£¦¢¢¢£¦¦£¢¢¡££¢£åþÿÿÿÿÿꦣ£¦££££¢¡£«£¦£¡£¦££££££¦¦£££¦£¢¢£¦®¦£££¦¦£¦¦£¢¢££¦£¢¢£¦®¦¦£££¦®££££¦¦£¢££¦«££¢¢¦«¦£¢¢££££££¢£¢¡¢£¦¦£¢¢¢¢¦££¦£¡¡¡££££¡¡¡£¢¢¢¡¢¢¡¢¢¢£¢¢¡£££¡¡¡‘¡¢¡¡¡£¡¡‘�¡¡¡¢¡¡¡¡¡¡¡‘‘¢¡¡¡�¡¡‘¡‘¡¡~~‘¡¡¡¡�‘¡¡‘¡¡‘‘~}~¡‘�~~~~‘~~‘~~~}~�‘�~~~}}~�~~}~‘‘‘¥žš§§¥§§§šš§š™™™¥™™‘™š™‘™‘™‘™‘‘‘����‘‘€ÓûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷Z!!!!!!!!!!     =q¥ëüýúýúýüûüúýþþúýúýúüüüüüûüüüüæÓ                                                                                                                             ÓÔüúúúüúúóüóúúúúóüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��}~�~~‘‘~~‘�~~~¡‘¡¡‘~~~‘¡�~~‘¡‘‘¡~‘¡‘‘¡‘‘¡‘¡¡‘‘�¡¡�~¡¡¡‘�¡¡¡¡‘¡¡¢¢¡¡¡‘‘¡‘¡¡¢¡¡¡¡¡£¡¡¢¢¡¡¡¡¢¢£¢¡¢£¢¡¢£¢¡¢¡¢£¢££¢¢¡£££££Ýþÿÿÿÿÿ륡¢££¢¢££¢¦¦£££¡¢¦«¦¦£££¢££¢¢££££«¦¦®££¦¦£¢£¦¦£©¦¦®¦¢£¦¦£¦¦£¡¡£®££££¦®¦¦¦£¦¦¦¦£¢£¦£££¢¢££¡££¦¦¦£££££¢¡¡¡¢¢¢¢¢¡¢££££¢££¡¡¡¡¡¢‘¡¢¢£¡¡¡¢£¡¡¡¢¡¡¡¢¦¢¡¡££¡¡¡¡¡¡¡¡¡¡¡‘�‘‘‘¡¢¢¡¡‘�~�¡‘¡¡‘¡¡¡~~~‘¡‘~~‘‘‘‘�~¡¡¡‘‘~�~~~‘¡¡‘‘~‘‘‘‘¡‘‘~~�~~‘~}}}}~~~~}}}}~~~}}‘~}}}}}}}}~}}~}}}}}~}}r}}}}}}™úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$! @óÿÿÿÿÿ÷]!!!!!!! !!  !!   =sªèýüýýýüýüýýýÿýüúüúüýúýüüüüüüýàÓ                                                                                             Ó×óúóúóúúüóúúóúúú÷ÿÿÿÿÿÿÿÿÿÿÿÿûÖŸ�~~~~~‘~~~~‘~~‘‘�‘¡‘���‘‘~~~‘‘¡¡‘‘~‘‘‘¡¡�‘‘¡‘~‘¡‘��~¡¢¡¡‘‘¡¡¡¡¡¡¢¡¡‘¡¡¡�¡¡¡¢¢‘¡¡¡£¡¡¡¢¢¢¡¡¡¡£¢¡¢¦£¡¢¢¢¡¡¢¢¢£¢£¢¡¢¢¦£££åþÿÿÿÿÿ릡£££¢¢££££¦£¢¢¢£¦¦¦¦£¢££££££¦©££¦¦¦¦£££¢£££¦¦£©£¦®¦££¦¦£££¢¢££¦¦£££££¦®£¢£¦£££¢£¦¦¦£¡¢££¡¢«¦¦££££¢¢¢¢¢¢¢¡¡¢£¢¡£¢££¢¢££¡¡¡¢¢¡¡¡¢¦¢�¡¦£¢¢¡¡¡£¡¡¦£¢¢¢¢¡¡¡¢¡‘¡¢¡‘¡‘‘‘¡¡¡¡¡¡¡‘‘�‘‘‘¡‘¡‘¡‘¡‘�‘‘�‘~�‘��‘�‘¡¡‘~‘‘�‘‘‘¡‘¡¡~~¡‘�‘¡¡~~~~~‘~}}~}}~~~}}s}}~‘}~~}}}}r}~}}~}}~~}}}}~}}}}p}}|}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿóZ!!!!!!!!!!! !!!!  !=}ªëüýúüüüüýüüýþýüüüüúüüüüûüüýüüàÓ                                                                             ×ÓúúúúúúóúúúúúúúúüÿÿÿÿÿÿþÿÿþÿÿûÖ���~~‘¡¡~‘�}~�‘‘~~~�~~~�‘‘¡‘‘~~‘‘¡¡‘~�‘¡¡¡‘¡¡~�¡¡�¡¡¡¡¡¡‘¡¡¡‘‘¡¡¡‘¡¡¡‘¢£¡‘¡¡¡¢¡¡¡‘¡¢¡¡¡¢¡¡¢¡¢£¡¡¢¦¢¡¢££¡¡¢¢£¢¢¢¡¢££££¢¢Úþÿÿÿÿÿꢡ¦®££¢££¡¢£¦««££££¡¢£££££¦¦£¦®£¡£££®¦¦£¡££¦¦££¦£¦®«£¦®«£££¦¦«¦£££¦¦£¢£¦£££££££¢££££¢£¦£¢¡¢££¢¢£¢¢£¢¢££¦¦££¦£¡¡¡¢££¡¡¡£¢¡¢£¢¢£¢¡¦¡¡‘¦¢¢¢¡¡¡¡‘‘£¡¡¡¡‘¡¡¢¡¡�¡¦¡‘‘¡¡¡¡¡¡�¡��¡¢¡¡¡‘‘‘‘‘¡�‘‘‘‘‘~�‘¡¡‘‘�~�~~~¡¡‘¡~~~~~�~}~‘~}}‘~}~~~~~~~~‘~}}}}�‘}~~}‘~}}}��}|}~}~~}|}}}}}}|}}}pp}|}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ !!!@÷ÿÿÿÿÿ÷Z!!!!!! !! !! !!  $q¥èýüýýýûüüüûýÿýúýüûýúýúüüýúýúýàÓ                                                                                      Ó×úóúóúúüóüóúúúúóüþÿÿÿÿÿÿÿÿÿÿÿûÖ���}}�‘‘‘¡‘~~‘‘~~}~‘~}~~�¡‘‘�~~��‘¡¡�~‘¡¡‘‘¡‘‘¡¡‘‘¡¡‘‘‘¡�¡¢¡�‘¡¡¡¡�¡¢‘¡¢¡‘¡¡‘¡¢£¡‘¡¡¡¢¡¢¡¢£¡¡¡¡¡¢£¢¡¢¢¢¢¡¢£¢££¡¡¡¢¢££¢¢åþÿÿÿÿÿꥢ£££££££¢¢¢¦®¦£££¢¢¢££¡£¦«¦£££££¢¢£¦®®££¢¢¦®££¦£¦®¦££®¦££¦©££££¦¦£¦£¡£©£££¢£££¡¢£££££¦££¡¡¢¢££££¢£¢¢£££¦¦££¢¡¡¡££¡¢¡¡¡£¦¢¢£¡¢£¢¡¡¡¡¢¢¡¡¢¡¡¡‘‘¢¡¢¢‘�¡¢¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡‘‘‘‘¡¢¡¡¡¡‘¡¡‘‘¡~~‘¡‘��‘¡¡¡‘‘~~�~‘‘�‘‘�~~~~}~‘�‘~}~~}~~~~~}~‘~~~~}}~‘�}~}~�~}}}~~}|}}}}~|s}}}~}r}}}}}}}r}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@óÿÿÿÿÿ÷Z!!!! !!!!!! !!   =sªíüýüúüüûýýüýþýýúúüúüüýúýúýüüüæÓ                                                                                         ÔÓúüúúúóúúúúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖŸ�}~~~�~~‘~}~��‘~}~¡¡¡¡‘‘‘¡¡¡~‘‘‘�‘¡¡‘‘¡¡~~‘�‘‘¡¡¡¡¡¡¡¡¡‘¡£¡�¡¡¡¡¡�‘¡¡£¡¡¡¦¦¡¡££¡¡¢¡¢£¡¡¡¡¢¢¢¡¡‘¡¢¢¢¢¡¡¡¢¢¢¡¡¡¢¢¢¢¢££¢£Ýþÿÿÿÿÿ뫦¢£¦¦¦¦¢££¢¢£¢¡£¦£££££££¦¦££¢¢££££¦£¦®«¦¦£¦®£££¡¢££¢£££££¦«¢¡¢£¦«££££¦££££¦««£¡£££®¦¦££££¦££¦£££££¢¢¢¢¢¢¢¢£¦¦¦¦¢¢¢£££¡¢¦¡¡¡¡¡£¢‘¡¢¢£¡¡¡¢¢‘¡�Ÿ¡¡¢£‘�¢¢¢¡¡‘‘¡¡¢‘¡¡¡¡¡¡��‘¡¢¡¡¡¡‘¡€‘‘¡¡‘‘¡¡‘‘¡�‘‘‘~~‘‘‘~~~~~‘~~~�~}~‘~~�}~~‘¡¡~~}}~‘~}~~~}~¡}}~}}~}~~}}}~}s}}}}s|}}~}}}}}}}}~}}~~§úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@÷ÿÿÿÿÿ÷Z!!!!!! !!!! !!   !qªèüüýýýýüúýúýÿýüüýüüüúüüüüüúýüàÓ                                                                                                Ó×óúóúúúúóüóüóúúúóÿÿÿþÿÿÿÿÿþÿÿûÖ��~~~~~~~~~‘~~‘‘~~}�¡¡¡��‘‘‘¡‘�‘‘‘‘¡¡‘‘‘‘‘�¡¡�‘¡¢¡‘‘¡¡¡¡¡¡£¡‘¡¡‘�‘‘�¢¢¢¡�¡¦£¡¡¢£¡¡£¡££¡¡¡¢¢£¢¡¡‘¡¡¢¢¢¡¡¢¢¢¡¡¡¡¢¢¢¢¢¢¢££Ýþÿÿÿÿÿ릢¡£££¦¦££¦££¡¢¦£¦££¢££¢£®££££££¢¢£¦££«®£¦«©££¦¢££¢£¢££££¢¦¦¢¢£¢¦«£¢£¦£¢£¦¦¦«®£¢¢¢££¦££¦¦££££¦£¡¢¦£££¡¡¢¢¢¢£¦¦¦¦£¢££££¢¡£¡¡¡¡¡¢¡¡¡¡££¡�‘¢¡¡¡¡‘¡¡¢¢‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡�¡¡¡¡¡¡¡‘�¡‘‘¡¡‘‘¡‘‘‘¡‘‘‘���~~�‘~}~�~~~~~}‘‘~~~~}‘¡‘‘‘~}}~~~�~}~}~�~}}}}}}~~~}}~}|}}}}}}}~}}||}}}}}}~}}~§úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@óÿÿÿÿÿ÷Z !!!!!!!!  !!! qªëûýúüúüýýýúýþýüúüûüüüûüüüüüüüæÓ                                                                                                ÓÓúúúúóúóüóúúúúúúüÿÿÿÿÿÿÿÿþÿÿÿûÖ��}}~}~‘‘~‘¡‘~€‘‘‘‘�~‘‘~~��~~�‘¡‘��‘‘~�~~‘‘¡¡‘�¡¢¡�¡¡¡¡‘~‘¡¡‘¡‘¡�¡¡¡¢¡¡¡�‘£¡¡¡¡¡‘¡‘¡¡¡¡�¡¡¡¢¢¢£¢¢£¢¡¡¡£££¦¦¢££¢¢£¢¢¢£££åþÿÿÿÿÿꦢ££¢¡£«££¢¢¢¢£®¦£¦£¦££££¦£¦¦¦£¢£«££££££¢£¦¢¢¦¦£¦¦£¦£¢¡¢¢£«£££¦£©¦¢¢£¦¢¡£¦¢££¦¦£££¢£££¦«£¡¡¡£¦«¡¢£¢£¦¢¢££¢¡££¡¡¡¡¡£¡¡¢¦££¢¢¡¡¡¡¢¢¢£¡¢¡�¡¦¦¢£¡¡¢¡¢¢¡¡¡¡¡¡¢¡¡¡‘‘¡¢¡�‘¡‘¡¡‘�‘‘¡‘‘‘~~¡¡¡‘‘‘‘~~~‘�~~‘�‘‘‘�‘¡‘~‘‘‘‘~‘‘�~‘‘~~}~¡‘}}~�~}~~�‘}}‘~~‘}}}~~|}}~~~}}}~‘~}}}}}}}}}}}}}}|}}}|}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@÷ÿÿÿÿÿ÷[!!!!!!!! !   !sªèüüýýýýúýúýýÿýúüüüúýúüúýúýúýúàÓ                                                                                                   Ó×úóúóüóüóüóúúúóúúþÿÿÿÿÿÿÿÿÿÿÿþÖ��}~~~}�‘�‘¡‘‘�~‘‘¡‘~}~‘‘~~}~~¡¢‘~~¡‘‘�}~�‘‘¡¡¡¡¡‘¡¡¡¡€¡¡‘‘¡�‘‘‘¡¡¡¡£¡‘¡¡‘£¡¡¡¢¡��¡¡¡‘‘‘¡¡¡¢£££¡£¦¢¡¡£££££¦¦£££¡¢££¢£££åþÿÿÿÿÿꦢ¢¢¡¡£¦£¢£££££££££««££££££®®££¡£®£¢£££¢¢££¢£¦££¦®¦£¢¢¢¢¢£¦£££¦¦¦£¢¢¦£¢££¢£££££¦¦£££££££££¡¡¡¦¦¢¢¢¡£¦£¢¦£¡¡¡¡¢¢¡¡¡¢¢£££¦££¦¡¡¡¡£¡££¡¢¡¡¡£¦¡¡¦¦¡¢¢¢¢¡¢¡¡¡¢¡¡¢‘¡¢¡‘����¡¡‘¡��‘¡‘‘~~�¡¡¡�‘��~~�‘~~�¡‘�‘‘‘‘¡‘‘¡‘�~�¡~~¡‘~~~~‘‘~}}~}}~~~¡}}�}}}}}~~}}}~}}~}}}�~~}}}}}}p}~}r}}vr}}}}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!@óÿÿÿÿÿ÷_$!!!!!! !!!  !=sªëýúýúýúýüýúüþýýúýúüüüýüúýüüüüæ×                                                                                ×ÖúúúúúúóúóúúüóüúüÿÿÿÿÿþÿÿþÿÿþûÖ�Ÿ�~~~��~~~�~�~~~~~‘�~‘¡~}~~‘‘‘¡¡~�¢¢¡¡¡‘¡¡¡�¡¡‘‘‘¡�¡�~¡¡¡¡¡¡¡¢¢¡¡‘‘¡¢‘¡¡¡¡¡¡¡¡¢¡¡¢£¡¡¢¢¢¡¢¢¡¢¡¡¡£¢�¡£¡¡¡¡¢££¢¢¡¡¢££¢¡¡Ýþÿÿÿÿÿꥣ££¢¡£££¢¢¢£¦£££££«¦¢¢¡¡¢¡¦¦£££¡¦££¦£¦¢£¦«¦££¢¦£££££¦¦¦£¢££££££££¢¢£¦££¢¢£¦¢¢¢£¦¦£¢¢¢¢¡££¦££¦£¡¢¢¡££¡£¦£¢¢¡¡¦¦¢¡¢¢¢£¡¡¢¡¢«£¡¢¡¡¡¡£¡¢£¡¡¢¡��££¡¡¡¡¡¡¡¡‘¡‘�¡£¡‘¡¡¡‘¡�¡¡¡‘‘‘¡¡‘¡¡‘‘‘�¡‘¡¡¡‘~~‘¡‘~¡¡�~�‘�~~~�‘‘‘‘‘~}}¡‘~~~}~~‘‘���‘~~}~~}}~~‘�~}}~}~~~}}}~~}}}~}}}~~}|}}}}}}}}}rvvšûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!! @óÿÿÿÿÿ÷Z!!!!!! ! !!!  ! pªèýýüýüýüýúýýÿýúüúýúýúüúüüúýúýàÓ                                                                                         Ó×óúóúóúúúüóúóúúóúþÿÿÿÿÿÿÿÿÿÿÿûÖ��‘~~‘‘~~~~~�‘�~~~~~‘‘‘‘~}~‘‘�‘¡¡‘‘¡¡¡¡¡¡¡¡¡‘‘‘¡‘�‘‘¡¡�‘¢¢¢¡¡£¦¢¡¢‘¡¡¡¡¡¡‘¡¡‘¡¡£££¡¡¡¢¢¡¢¢¢¢¡¡¡¡¢¢¢¡¡¡¡‘¡¢¢£¢¢¢¢¡¢¡¡£¡¡Ýþÿÿÿÿÿ륢£££¢¢¢£¢¢££££¢£££££¦£¡¡¡¡£¢¦££¢¦££¦¦£¢¦®®©¦¢¡£¦£®££¦¦®£¢£¦£¦££££¢¡£¦££¢¢£££¢£¦¦¦££¢£¢¡¡£¦£££££¢¡£¡¡¡£¦¢¢¢¢¢¢¦££¡¡££¡¡¢¡¢¢£££¡¡£¡¢¡¡£¡¡¢‘‘¡¢¢¡¡¡�¡¢¡¡¡‘�‘¡¡¡‘‘¡¡�‘‘¡¡¡�¡‘‘¡¡‘‘¡¡¡~~‘‘¡¡‘~‘¡¡¡‘‘¡~}~‘~~}~‘¡‘‘¡‘~~~~�}~�}~‘��‘¡���~}~}}}}~¡�}}}}~}}~}}~�}}p}~}r}}~}}r}}}}}}}|p}}žûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–!!!@úÿÿÿÿÿóY! !!!!!!!!!    9q¥èýúýúýüûüýúüþýýúýúýúýúýýúýúüüàÓ                                                       ×ÓúúúúúóüóóúúúúúúüÿÿÿÿÿÿþÿÿÿÿÿûÖ����‘‘€‘~}}~~‘~~~‘‘~�‘‘‘‘‘‘¡‘}~���~�‘�‘¡‘¡‘‘¡¡‘�‘¡€¡���¡¡‘¡¡�‘¡¡¡¡‘¡�‘¡¡¡¡¡¢¡¡¡¡¡¡¡‘¡¢¡¡¢£¡¡¡‘¡¢¡¡¡¡£¢¡¡¡£¢¢¢¢££¢¡¢£¢¡¡Öûÿÿÿÿÿõ°£££¢££¢£££¦£££¢¢£¢¡£®¦¡££££¢¦¦£¡£¦«¦£¢¦££¦£¦£¡£££¦££¦££¢£¦£££¢¢£¦££¦«¦££¡£££££££¢¢¢££¢¡£££££¡¢¦¦¢¢¢£¢¡¡¡££¢¢¢¡¢£¡‘¡¢¡¢¡¡¡¡¢£¡‘¡¢¡¡£¡¡¡¡¡¢¢¡¡¡¡‘¡‘¡¢¡¡�¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘‘‘¡¡¡����‘‘¡¡¡‘‘¡‘�‘~‘‘¡¡‘~¡¡‘��~~‘‘~~~�‘‘~~~~‘~~~}}~~}}~~}}~~~}~�}}�~~~~}~}~}}~}}}}}}}}p}}}p}r}w}~|||}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿx!=!Zÿÿÿÿÿÿò!!!!!!!!! !!! ! q¥éüýýýúýüýúýýÿýúüúüúýúýúúýúýúýàÓ                                                                                                                     Ó×úóúúóúúúüóüóúúó÷ÿÿÿÿÿÿÿÿÿþÿÿûÖ�}}��‘~~~}}~‘‘~~‘�‘‘¡‘��‘‘¡‘~~}~�~~‘�~�¡¡‘~¡¡¡¡~‘‘�‘¡‘‘¡‘~‘¡‘��‘¡¡¡‘��¡¢¢£¢¦¡¡¡¡¡¡¡¡¡¢¢¡¡¢¡¡¡¡£¢¡¡¡¡££¢¡¡¢¡¢¢¢¢£¡¢£¢£¡¡­ûÿÿÿÿÿö­¢£££££¡£££¦¦££¡¢¦£¡£«£££¦££¢£¦£¢££®££¦£££££¦¦££¡¢¦£¢£¢£¦®®£¡¢££££¦£¦¦£££¡££££££¡¡¡¡¢££¡£®££¢¡¡££££¡££¡¡¡¢£££¡¢¢¢¡¡¡¢¡¢¡¡¡‘¡¢¡¡‘¡‘¡£¡‘¡¢¡£¢¡¡�¡¡¡¡¡¡¡‘‘¡¢¡¡‘¡‘¡¡¡¢¢‘‘¡‘¡¡¡¡¡¡¡�~~~‘¡¡¡‘�¡‘‘~~�¡¡‘¡‘‘¡¡‘‘~‘‘~~~~~�€�~}�‘~~~~~}}}}}~~}}‘‘~}}}~‘~}~~~}~~}}}~~}s}|}}}r}}}}|r}}}|s}|žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_!!!!Zÿÿÿÿÿÿñ!!!!!!!  !!!!!     qšëúýúüýüýúýúüþýýúýúüúýúüýúüüüüæÓ                                                                                                                  ÓÓ÷üóúúúóúóúóüúóüüÿÿÿþÿÿþÿþÿÿÿúÖŽŽ�~~~~~~�~}~‘�‘�~�‘‘‘�~��~‘‘�‘¡‘~~‘‘~~‘¡~�‘‘¡¢¡‘‘‘‘¡‘�‘¡‘¡‘¡¡~¡¡¡‘¡‘¡¢¡¡¢¡¡¡¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¢¡¡£¢£¢¡¡£¢¡¡¢¢¦¦¡¢¡¢¦¦¢¡¢¢­øÿÿÿÿÿû­¢££¢¡¢¢£¦£¦£¢¢¡¡¦£¢£££££££££¦££¦£¡¦££¦£¢£¡£££¦¦¢£®¦¢£¢£¦££¦¢¡£¦£¡££££££¢¢£¦££¢¡£££££¦££¢££¡¢¡£¦£££¡¡££¢¢££¢¢££¢¡¢¡£¦£¢¡¢¡¡¡¡¢££¢¢¡¡¡¢£¢¡¢¡¡¡‘¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡~‘¡¡¢¡~�‘¡¢¡‘‘‘¡‘¡‘¡‘‘¡¡��‘‘���~‘‘~~‘‘‘¡~¡�~~~~~~~‘~�‘~~}~~‘~�‘~~}}~‘~}~~}~}}~~}~~}}}}~~}}}}~~}}}r}~}|}~}}|v}}}}}pšúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýB!!!!xÿÿÿÿÿÿá!!!!! !! !!! ! !!qªéýüýýúüüüüýýÿýúüúýúýüýúýúýúýúàÓ                                                                                                   Ó×úóúúóúúúúúúóúúóúþÿÿÿÿÿÿÿÿÿÿÿûÖŽ�~}~}}}~~~}~‘‘~‘¡‘‘‘‘~~‘~~�‘€‘¡�~~~�~~‘¡‘~�‘¡¡¢¡�‘‘¡¡¡‘¡¡�~‘¡¡¡¢‘‘¡¡¡¢¡¡¢¡¡¡‘�‘‘¡¡¡‘¡¡¡¡¡¢££¡¡¡£¦¦¡¡¡¢¡¡¡¢¦¦¢¡¡£££¢£¢£­õÿÿÿÿÿûÔ£££¡¡¡¢££¦££¢¢¡¡¢£¢¢¦¢¡¢£££££¢£¦£¡¦£¦®££¢¡¢£¡£®¦£¦££¢¢£¦£¡£¢¢¢££¢£¦££¢¡¢¡¦®¦££¡¡¢¦¦¦¦¦¦£¡¡¡¡¢£££¢£¦¢¡££££¢££¢£¢¢¢¢£¢£¢¡¢¡¡¡¡¢££¦¢�‘¢¦¢¡¡¡¡¢¡¡¢¡‘¡¢¢¡¡¢¡¡¡¡¡‘��‘�¡¡¡¡¡¡¡¡‘~¡‘�‘¡¡¡‘‘�~‘¡�~‘‘‘¡¡�~‘‘¡‘~~~~~~~~~‘~}~‘‘~}}‘¡~~~~~}}���~}}}~}}~~}~~~}|}}~~~~}}}}}}}}~}}}~~}vr}}s}}p™úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý!!!!!‚ÿÿÿÿÿÿÏ!!!!!!!!! !!!  =q¥èúýüüýûýúýúüþýýúüúüúúúýüüúüüüæ×                                                                                                                  ÓØúúúóúúóúóúóüóúúüÿÿÿÿÿÿÿÿÿÿþÿûÖ��s}~~~~~‘~‘‘‘~}~‘~}~‘‘���‘¡‘�‘�‘‘¡¡‘‘�¡‘�‘¡‘~‘¡¡¡¡‘�‘‘¡¡¡‘¡‘¡¡‘¢¡�¡¡¡¡¡‘‘‘¡¡¢¡¢¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡‘¡¢¢¡¢¢¢¢¢¡¡££¡¡¢¢¡¡¢¢¡¡¦íÿÿÿÿÿþÝ«££¢¡¢£££¢£¢££¦¦£££¡¦¦¢¢££¢¢££¦®¢¡£££®££¢¡£¦£££¦££¦¦££¢¦¦¢£¦¦£¢££££¢¢£££££¦£££££¢¢£¢¢£££¡¡£££¢¢¢¢¢¦¦¢¢¡¡¢¡£¢££¡¡¡¡¢¡¢¡¢¢¢¢¡¡¢£¡££‘¡¦£¡¡¡¡¡¡¡¡¡¢‘�¢¡¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¢¡¡‘�‘��¡¡~�¡¡¡‘¡¡~~‘‘¡‘~~‘�~~���‘‘‘‘~~~~�‘‘‘~~‘�}~~}‘�~}‘�}}~~~‘}}}~~~~}}}}}}s}}}}}}}}r}}}s}~}}}}}}}v}}}}}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ!!!!!–ÿÿÿÿÿÿÈ!!!!!!! !!  !!! =q¥éüüýûüüúýüüýÿýúüýúýüýüúüüüüûüàÓ                                                                                                                    ÓÓóóúúóüóúúúúóúúóúþÿÿÿþÿÿþÿÿÿÿûÖ�}}}}~~‘���~‘‘�~}~~~�‘‘‘�‘¡¡‘~~‘¡‘¡¢¡‘‘‘�‘‘‘¡��¡¡‘¡¡¡‘‘‘‘¡¢¢¡‘�¡¢¡~‘‘¡¢¡��¡¡££¢£¢¡¡¢¢‘¡£¢�¡‘‘¡¡�¡£¡¡¢£¢££¡¡¡¡¢£¡¡¡¡¡¡¡¡¢ëÿÿÿÿÿÿꦦ¦£¡£«¦¢¢£¡¢¦¦¦£££¡¡£¦¢¢¢¢¢££¦¦£¡¢¡£«¦£¢¢£¦¦¢££¦¦£¦£¢££¦¦¦£££¡¢£££££££¦¦££££¦¦£¢¢¢¡¡¡£££¡¡£££¢¢¡¢££¢¢¢¢¡¡¢¢¡¢¢¢¡¡¡¡¡¡¡¢¢££££¢¡¡¢¡¢¢¡¡¡¡£¡‘¡¡‘¡‘¡¢¦¡¡¡�‘‘¡¢¡¡¡¡¡¡¡¡¡‘�~�‘‘¡‘‘¡¢¡¡¡‘¡¡‘~¡¡~~~�~~‘~~}~¡¡¡‘~}‘‘�‘��~~~}‘~~¡‘}~‘‘~}}}}�}}~~~~}}}~}}}}}}r}}~~}}s}}}~}r}}|}~}pp}}~}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!@ÌÿÿÿÿÿüÆ!!!!!!!! !!!!   !q¥ëýúüýúýüüýúüþýüúúüúúúúüüûúüüüæÓ                                                                                                                         Ó×úúúóúóúúúóúüóúúüÿÿÿþÿÿÿÿÿÿþÿûÖ��~~~~~~~~~}��~~~~~�~~~~~�~�‘‘�‘¡~�¡¡��‘�¡¡¡‘~~‘¡¡�‘¡‘¡‘~¡¢¡¡¡~‘¢¡‘¡¡¡¡¡~�¡¡¡¢¢¢¡¡¡£¡‘¢¦¡‘¡¢¢£¡¡¡£¡¡¡¢¢¢¢¡¡¡¡££¡¡¢£¢£¡¡¡Ýþÿÿÿÿÿõ­££¢¡£££¡¢¦£¡¢££££££¡£¦¦££££¢£££¢££¢£££¢£¦£¦£¢£¢£¢£¦¦££¡¢££¢¢££¦¦£££££££¦¢¡¢¢£¦¢¡££££¢¢£££¢¢££¡¢¢¢¡£¢¢¢¢¡¡¢£¢¢¢£¡¡¡£¢¡¢¢¢¡¡¡¡¡¡£¡¡¡¡¡¡¡¡¡‘‘££¡¡¡‘¡£¡‘¡�¡�¡¢¡‘¡¡¡‘‘¡¡¡¡~~‘‘¡¡¡‘¡¡�~�~¡¡�‘‘~‘‘~~‘¡�~~~��‘¡‘~~‘‘~~‘�~~~~}}‘‘}~‘‘}~}}‘‘~~}}}~~}~�}}}¡~p}}}~~}}}}}|}~}}}s}}|r}|}}s|žûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZ!!!!Cóÿÿÿÿÿüƒ!!!! !!  !!!!! !q¥èüýýúýüüûüüýÿýúüüúüüüýúýüýúýúàÓ                                                                                                        ÓÓúóóúúóúóúúóúúúóüþÿÿÿÿÿÿþÿÿÿÿûÖ��~�¡�~}‘‘~~~~}}}}~~~~~~~~~}~�~~~}�¡¡~~~‘¡¡‘‘~~‘¡¡‘‘�‘¡¡‘‘¡‘¡¡~~¡¢‘¡£¡‘�~¡¢¡¡¡¡�¡¡¡¡¡¡£¦¡¡£¦¦££¢£¢¡¡¢¢¢££¢‘¡¡¢¢¡¡¦«¦£¡¡¡­ûÿÿÿÿÿýÔ¡¢£¡¡¢¢¡¢«¢¡¡¡¡¡¡¢£££®¦¦¦££¢¢£¡¢«£¢¦£¡¡¢¦¦«¢¢¢¡¡¢¢¦£¡¢¡££¢¡¡¢£¦¦££¦¦£¢£¦££¡¡££¢¢¢¦¦££¡¡£££¢¢££££¡¡¢¢¡¡¡¡¢¦¦¦¡¡£¢¡¡£££££¡‘¡¡‘‘£¢¡¡�¡¢¢¢¡¡‘¡££¡¡¡�‘¡¡‘‘‘¡‘‘¡��‘¡¡~¡¢¡¡¡‘�¡‘‘¡¡~�~~~}~~‘¡‘�‘¡¡‘��‘‘¡¡�}~}�¡�~‘‘~}~‘~~}}}}~�~~‘~}~~~��‘�~}}�}~}~}}�~}}}}}}}}}~}|}}~~}}}s}}}}}}}v|žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó!!!!xÿÿÿÿÿÿ÷Y!!!!!!!!!!! =qªëüúüüúýüüüüüþýüûúúýúúúüúúüüüüæÓ                                                                                               Ó×úúúóúúúúúóüóúóüúÿÿÿÿþÿþÿÿÿþÿûÖ  ~}�‘}~�‘~~~~~�‘€��~}~~�¡‘~~‘‘��~~¡¡~~�‘‘‘‘���¡¡‘¡�~¡¡‘¡¡¡‘¡¡�¡¡¡~¡£¡‘¡¡¡¡¡‘¡‘‘¡¢¡¡¡¡¡¡¡¡¢£¡¡¡¡¡¢¢¢¡¡¢¡¢¡¢¢¢££¡¡£¦¡¢¢¡¢¦íÿÿÿÿÿÿÝ¢¡¢£¢£¢¡£¦£¢¢¢£¢££££¢£££££¦¡¡£¡¦®¢¡£«£¢£££¦¦££¡¢££«¦¢£££¢£££££¢£¢¢£¢¢£££££¢¡£££¢¢¢¢¢¢¢¢¢£££¢¢££££¡¢¡¡££¢¢¢£¡¡¢¢¡¢¡¢¢¡¢£¢¡¡¦¡¡¡¡¡¡¢¡¡¢¢�‘¡‘¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡‘~‘¡¡�‘¡‘¡¡¡‘��‘‘‘‘¡‘��‘‘‘�‘��‘‘~‘‘‘‘�~~}~‘‘‘�~~�~~‘~~~~~~~~~‘~~~}~}~~~}}�~~}~~}}~~}~|}}}}}~}}r}}}}|v}}}}}}}}|pžûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ!!!!!Æÿÿÿÿÿÿá!!!!!!!!!!  !q¥èýüýûýúýúýûýÿýúüúýúýüýúýúýúüúàÓ                                                                                                            ÓÓóúóúóúóúóúóúúúóüþÿÿÿÿÿÿÿþÿÿÿûÖ¢¡}}}~�~~~~~�‘¡¡¡�‘�}}~€¡¡¡‘‘‘¡‘‘‘~‘¡‘~�‘¡¡‘�‘‘¡¡�~�¡¡��‘��~‘¡‘‘¡~�¡£¡‘¢¢¡�‘�‘¡¡¢¢¢¡£¡‘‘¡¡¡¢¡�¡¡¢££¢¡¡¢£¡¡£¦¦¦¢‘¡¢¢¡¡£¢¢¡åþÿÿÿÿÿõ¬¡¢¢£¢¢¡¡¦¦¢¢£¦¦¦£££¡¡¡¢£¢¦££££¦¦£¢£¦©£¦£¡¦«¦¢¡¢¦£¦¦£¦«¦£££¦¦¢¡¡¢¡¢¢¡¢££¦£¡¡¡¡¡££¡¡¡¢¦££¢¢¢£¡¢¢¡¢¡¢£¢£££¡¡¡¡¡¢¡¡¡¢¢¢¡¡£¢¡¢«¦¢£¡¢¡¡¡¡¡¢‘¡‘�¡‘‘¡�¡¢¡��‘¢¢¢¢¢‘�‘¡¡�~�‘‘~�¡¢¡‘�~¡¡��‘¡¡‘‘¡¡¡¡~}~��‘‘��‘�~~~�¡¡¡‘‘¡‘~�‘‘‘�‘�}~}~~~‘~~~}~~~}}}}~~~�~}}~€}}}sp}}‘~}}||p}r}}}}}wrvr}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ_$!!!@áÿÿÿÿÿýÅ!!!!!!! !!!!!!!! !! ! qšëýúüüúýúýúüüþýüúýúúúúúýúüúüüüæÓ                                                                                                          Ó×úóúúúóúúúúúóúóúúÿÿÿÿþÿÿÿÿÿÿþûÖŸ��~~~~~~~~�~��‘~}�‘‘~~‘‘‘‘‘�~��~¡‘���‘‘‘�‘�‘‘‘‘¡�~¡¢‘~‘¢‘‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¢‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¢¡¡¡¡¡¡¢¡¡¡¡¢¡¡¡¦£££¡¡££¡¡£¦¡¡ÔûÿÿÿÿÿÿÚ¢¢¢¢¢£¦££¢¡¢££££¢£££¡¢£££¢£££££¢£¦¢¡£¢£¢£¦££¢¢¢¦££¦££¦¦¢£¢£££¢¡£¢£¦¢£¢¡£¦££¢¡£¦££¢¡¢££££¡¢¢¢££¢¢¢¢¢¢££¡¡¡¡¢£¡¡¡¢¡¡¡¡¡¡¡¡¡£¢¡¡¡¡¡¢‘¡¡¡¡¡‘¡¡¡¢£‘�¡¡‘‘¡¡¡¡¡¢¡‘¡‘¡¡‘~�¡¡‘¡‘¡¡¡�‘‘¡‘‘‘¡‘‘‘¡‘‘���‘‘�~~~�‘‘��~~~~~~�~~�~‘‘~~~~}~~~~~~}~}~}}~}~}~}}}~}}}¡~}}|}}}~~}}}}}}}}||}}r}}}}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ=!!!!Yýÿÿÿÿÿ÷[!!!!!!!!!! !!=}’éúýüýüüýüüýýþýüúúüüýýüúüúýúûüàÓ                                                                                                           ÓÓúúó÷óúúóúóúúúúúúþÿÿÿÿÿþÿþÿÿÿûÖ��}‘‘~}�}}~~‘‘}~~}~‘‘�‘‘~~��¡�~}~‘¡‘~~‘¢¡‘�~�¡‘‘¡‘¡¡¡~~¡¡¡¡¢‘~�¡££¡�~‘¡¢¡¡¡¡¡‘‘¡‘�‘¡¡¢¦£¡¡¡¡¢¡¡¢¢¡‘¡¡‘¡¡¡‘¡¦£¡¢¢¢£¢¡¡££¢£­öÿÿÿÿÿÿö­¢¢££¢££¢¡¡¢¦¦£££¢¢¦¦£¦££¡¢£££¡¡¢¦£¢¡¡£¡£¦¡¡¢¢¢£¦®¦£¡¢£££¢¢££¢¡£¢¡¢¢¢¢¡£«¦£££¦¦¦££¢£¦¦¦¦¦¦¦£¦£¡¢¢¢¢£¦¦¡¡¡¡£¢¡¡¢¡¡¡¡‘‘¡¡�¡¡¡¡¡¡¡¡¢¡¡¡‘�¡¡¡¢¢¦¢¡‘¡£¢¡¢‘�‘�¡¢¡¡��‘¡�‘¢¡‘�¡¡¡¡‘~~‘¡¡�‘~‘‘‘��~~¡‘‘‘~}~~‘‘‘~~~}}}}}~}}~}~��~}~~}}�~}}~~}s}~‘�¡�}s}}}~}~~~~}}}r}}p}}s|rp}}||}}}}|v}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüZ!!!!!–ÿÿÿÿÿÿñ!!!!!!!!!!!!    =s¥éüüüúýúýúýúýþýúüüúúúúúüüüúüüüàÓ                                                                                                     ÓÓúóúúúóúúóúúóúúóüÿÿÿÿÿþÿÿÿÿþÿûÖ���~~~~~~~~~�‘~}~¡‘~~~�‘‘‘�}~~~�‘¡¡��~�¡¡‘‘~~¡‘‘¡‘¡‘¡‘�‘‘¡¡¡~¡¡¡¢¡‘¡‘¡¡¡¡¡¡¡¡‘¢¢¡‘¡£¡‘¡¢¡¡¡¡¡¡¡¢¡¡¡£¢¡¡¢¡¡¡££¡¡¡¡¢¢¡¡££¡¡¦åþÿÿÿÿÿÿÚ¦¦¢¢¢¢¢¡¢¦£££¡¢¦¦¢¢¢¢¢¢£¢££££¡¡£¦£¦¢¡£¡£®£¡£¦£¡££££¢££££¡£££¢¡£¦¢£¢£¢¡£«£¢£££¢¢¢¢¢¢¢¢¢££¢¢£££¡¡¢¢¡¡££¢¢¡¡£¦¡¡¢£¢£¡¡¡¢¡‘¡¡¡¡¡£¡¡¡¡¡¡¡¡¡��¡¡¡¡¡¡¡¢¡‘¡‘¡¡¡�¡¡¡�‘¡¡¡‘¡¡‘‘‘¡‘�‘‘�‘¡¡‘‘‘~‘~¡‘‘�‘����~�‘‘‘~~~¡�~~}~~~~~}~~~}~‘‘}}~~}~~‘}}~}~}~}~}}}}~}}}~}~~|}}}}}}}}}}}sv}~}}}v}ržúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ!!!$!@òÿÿÿÿÿþÈ!!!!!!!!! !!!!=qªëúýûüüýüýúýýýýüúúüüüüüúûüüúüúæÓ                                                                                                                  Ó×÷úóúóúúóüóúúóúúúþÿþÿÿÿÿþÿÿÿÿûÖ��~�~~‘�~~}}~~}~‘¡¡¡‘~�¡¢¡¡~~~‘¡‘¡¡‘¡‘~¡¡�¡�~�~‘‘‘��¡¡‘~�¡‘�‘‘¡¡‘¡¡£¡¡¡‘‘�‘�‘¡£¢¡¡¢¢‘��‘‘¡¡¡¡¡¢¡�‘¢££¡¡¡¢¡¡¢¢¢¢¢¢¢¦£¡££¡¡¢¦íÿÿÿÿÿÿûܦ¢£¢£¦¦«®¦¢¡¡¢¦£¡¡¡¢¢£¦£¦£¡£¢¡£¦£¦£¡¡¡¡£¡¡¦«¦£¡£¡¡¡£¡££¡¡¢£¢¡¢¦««¦££¡¡¢¡¡££¡¡¢£¡¡¡¢¢¢¢¡¡¡¢£¦£¢¢¢¡¡¡¡¢££¡¢£¢¢¦££¢¡¢¢¢¡¡¢¡¡¡¡¡¢¡¡¢¡¡££¢¡¡¡¡¡¡�‘¡¡��‘~¡£¡¡‘¡‘‘¡¡¡¡¡¡‘����~~�‘‘~‘‘‘¡¡¡~�‘¡‘‘~~~�‘€‘‘¡‘�}‘¡¡‘~}~‘¡‘~}~~}~‘‘}s}~~}}~�~}}}}}}}s}}||~}r}~}}}|~~~|p}}}~}}}pp}~~}}}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Z !!=ƒÿÿÿÿÿÿü� !!!! !!!! !!  !!pšèýúüüüúýúýúüÿýúüüûúúûúüüûúüüüàÓ                                                                                                                                                                                             ××ú÷úóúó÷úóúóúúúóüÿÿÿÿÿþÿÿÿþÿþûÖ��~~}~~~~~}}~‘~~~‘‘‘~~~‘‘‘‘~~~‘�‘‘‘�‘��¡¡‘‘‘‘��‘¡‘~‘‘¡¡‘‘¡�‘¢¡¡‘�‘¡¡¡¡�¡‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘¡¢¡¢¡¡¡£¢¡¡¢¡¡¡¡¢¢¢¢¢¡¡¢¢¡¡¡£Úýÿÿÿÿÿÿõ«¢¢¢£¢££¢¢¡££££¢¢¢¢£¡££££¦¡¢£¢£¢£¢£¦¢£¢¡£¡£®£¢£££¡¢¢¢¦¦¢£¡¢¢¢££¦¦£¢¢¢¢¡¢£££¡¡¢¦£¡¢££¡¢£¢¡¡¢¢££££¡¡¢¢¡¡££¡¡¢¢¢¡¢¡£¦¢¢¡‘¡¡¡£¡¡¡¡¡¢¡¡¡¡¡¡¡¡�¡¢¡‘¡¡‘‘‘�¡¡¡¡¡¡‘¡‘‘¡¡¡¡¡‘¡��‘‘‘¡�‘‘‘~�‘‘��‘¡‘€‘‘~~��~~‘‘~~~‘‘‘~}~¡‘~~~~}}‘‘}~}~~‘}}~~}}~~}}}~~|}s}‘}|}}}}}}}}}}}}~}}}}}}p}}}}p}}žûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ‚!!!!!@òÿÿÿÿÿÿç9 !!!!!!!!!!! !  =s¥ëüýüýûüüüüüýþýüúúüúýúýúúüüúýúæÓ                                                                                                                                                                                   ÓÓóúóúóúúóúóúóúóúóÿÿþÿÿÿþÿÿÿÿÿûÕ���~}}~‘�‘‘}~‘¡~~~��~}}~~}~~~~~~~~~~~~}�‘�~~~~‘¢¢~~‘‘~�¡~�‘¡£‘�¡¡¡¡¡¡¡��‘¢¢¡¡��‘‘¡¡¢££¢¢¡¡¢¡¡¡¢£¢¢¡‘¡£¦¢¡¡£¡‘¡¡¢¡¡¡¡££¢¡¡£¢¦íÿÿÿÿÿÿÿë«££¢¢¢¢¡£¡¡¡¢¢¢££££¢¡¡¡¡¦¦¡¡£¡¡¢£¦«¦¦¦¢£¢¢¦¦£¡££¢£¦£££¢¢¡¡£¢£¡¡¢¢¡£¦««¦¦£££¡¡¦£¢¦¦£¡¡¢¦£¢¡¡££¢¡�¡¦£¡¡¡£¢¡¢¡¡¡£¢¡£¡¡£¡¡¡¡¢¢££¢¡¢¢¡¡�‘¡¡‘¡¡¡¢¢¢¡�¡£¡‘¡¡‘¡‘¡¡¡¡‘‘‘¡¢¢¡‘‘‘¡¡‘¡¡¢¢‘~~��~�~�����~~�¡‘~‘¡~}~~‘‘~~‘~~~}}}}‘~~~~}‘‘�}}}~}~~‘~}~}}~}~�}}}|}}}}rp}}}~}}}}}v}}pp}||}}™úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!!!–ÿÿÿÿÿÿü‚ !! !!!!!! !!   ! !  =sªèüúýúüüüüûúýþýûúýúüúüúüüúúüúüàÓ                                                                                                                                                                   Ó×úóúúúóúúóúóüóüúüÿÿÿÿÿþÿÿþÿÿþûÖ��~~~~‘‘~~~}~�~}~‘~~~~~‘~~~�~�~‘�~~¡‘~~�‘‘‘�‘~~¡¢�~¡¡‘¡‘~‘¡¡¡¡~¡¡¡‘‘¡¡��¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡£¢¡¢¡¡¢¢¡¡¡¡¡¡¡¢¢¢¡¡¢££¢¡¡££¡Ôûÿÿÿÿÿÿÿݦ¢¢¢¢¢¢¢£¢¡¢¢¢££¢¢££¡¢¢¢£££¦¡¡£¦£¦¢¢£¢£££££¢¢££¡¢«¦¡¢¢¢£¢¢¡££¡¡¢¢£££¦£¡¢¢¢¢£¦£¡¢£¢£¢¢¢£¢¡¡££¡¡¡¡££¡‘££¡¡¡¡¡¡£¡¡¢¡¡¢¦¢¡¡‘¡¦¡¡¡¡¡¢¡¡¡�¡¡¡‘�¡¡¡¡¡¡¡¡¡¡¡‘‘�¡¡¡¡¡~‘‘¡¡¡¡¡‘‘�‘‘¡¡¡‘‘�‘�‘~~‘¡~~�‘~~�‘���~~¡~~�~~}~‘�}~~~}~~~}~~~~�}}}~~~~}}‘}}}}~~}~}r}}}~}}}}~}}}|}}rv}}}}|v}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ=!!!!@òÿÿÿÿÿÿá!!!!!!!!!!!! !!  !pªíûüüüýüûüüýýýýúüúüúüúýúûüüüüúæÓ                                                                                                                                                                              ÓÓóúóóúóúóúóú÷úóóúþÿþÿÿÿþÿÿþÿÿûÖŸ}}}}}~�~~~‘‘~}}}~~}}~¡¡¡~}‘¡‘‘~~~�¡¡‘¡¡‘‘‘¡¡‘~¡¢‘~‘¡¡¡¡‘¡¡‘‘¡¡~¡¡�~‘~�¡¢‘¡¡£¦¦££¡¡‘‘¡¡¡£¡¡¡¡��¡¡¡¡£¦£¡¡¡¡¢¡¢£¡¢£¢¢£¢¢£¡¡¡¡¡¥ëþÿÿÿÿÿÿþÚ¢¡¡¢£¢¡¡££¡¡¡¢£¡¡¡¦££¢¡££«©¡¡¡££®££¦£¢¡¡¡¡¡¢£¢¡¢®¦¡¢£¡¢££¢£¦¦££¢¡¢¡¢¢¡£¡¡¢£¦¢¡¡¢¢¢¡¡¡¢£¡¡¢¢¡£¢¡¢¢¡¢££¢¡¡££¡�¡£¢¡�¡£¡¡£¡¡¡¡¡¢¡¡¡‘�¡¡¡£¡�¡£‘¡£¢‘~¡¡¡~¡¡¡¡¢¡¡¡‘‘~~~~¡¡‘‘~~¡‘‘‘��~}~�~~‘¡‘~~~~}}�~}}}}‘‘~}~‘~‘‘~}~~~}}‘‘��‘~}‘‘~}}}~~}~‘�}}}}}~~}}~}}~}}}}}r~}}s}vr}}}}}rv}§úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@!!!!!!Æÿÿÿÿÿÿüx!!!!!!!!!!!!!   9qªèüüýúýúýúýúüÿýúúúüúüúüúüûúýúüàÓ                                                                                                                                                                                         ÙÓúóúúóúúúóúúóúúúüÿÿÿÿþÿÿÿÿþÿÿúÖ��}~}~~~~}~~~~~‘~~~}~‘‘‘�~~¡¡~��~�‘~~¡¡‘¡~~¡¡€~¡¡‘~‘¡¡�‘¡¡¡‘~¡¡¡‘¡�‘¡¡~¡¡‘¡¡¢¢¡¡¡¡¡¡¡¢¡¡¡‘¡¦¡�¡¢¡¡¡¡¡¡¡¡¡£¢¡¡¡¡¢¢¡¢¢¡¡¡¢¢¢¡¡¡¦õÿÿÿÿÿÿÿþÝ¥¡¡££¢¡¡«¢¡¡¡¡£¢££££¡¢£££££¢¢¢£££££¦£¡¡££££¢£¡¢¦£¡¡££££¢£¢¡£££¢¢¢¢¢¢££¢¡¡££¢¢¢¢¢¡¢¢¢£¢¡¡¢¡¡¢¢¢¡¡¡¡¡¡¢¢¡¡¢¡¡‘¢¢¡¡¡¢¡¡¡¢¡¡¡‘¡£¡‘¡‘‘¡¡¡¡¡‘¡‘¡£¡¡‘‘¡�¡¡¡¡¡¡¡�¡¡¡�‘~~¡¡¡¡��‘‘�~‘‘��~‘‘~‘¡‘~�‘~}‘¡‘~}~~‘�}}‘�}~¡�}}‘~}}�‘~~~�}}�~}}}‘}}}~}|}�}}}}~~~|}~~pr}}}}}}}}}v}}}}|p}}§úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ@!!!!!@‚þÿÿÿÿÿÿÏ!!!!!!! !!!! !qªéýûüýúýúýúýüþýüúýúüúüúüúýúúüúæÓ                                                                                                                                                                        Ó×óúóóúóúóúúóóúóóóÿþÿÿÿþÿþÿÿÿÿûÖ�~}~‘~}}}}�~}}‘‘‘�~}‘‘~�~~�‘~~}}�‘~~‘¡¡‘‘~‘¢¢�~~‘¡¡¡¡‘~‘‘‘¡¡�‘¡�~�‘‘¢¦¡��‘¡‘¡¡~�‘¡¡‘¡£¡‘‘~¡££¡£¢¡‘‘¡¡¡¢££¡¡¡¢¢££¢¡¡¡¡¡¡¡¡£¢¢¡¡­ûÿÿÿÿÿÿÿÿê«¢¡¢¡¡¡¦«««£¢££££££¢¡¡¡¢¡¡¦¦£¢¢¡¢¢£¦¦¦¢¡¢££¡¡¡¢¦¢¡£¦«©££¢££¢¢£¦¦¦¦££¡¢££¡¡¡¡¡¢¢¡¡¡¡¢¡¢££¢¢¢££££¡¡¡‘¡¢¡�‘££¡¢¢¡¡¡¡¢¡‘¢¦£¡��¡¡¡££¢¡‘¡¢¡�‘¡¢¡�¢¡¡¡‘����~‘‘�‘¡¡¡�~‘¡‘‘¡¡�~~~~�‘¡¡¡�~‘¡¡~‘‘¡‘~�‘}~¡‘¡¡‘‘¡¡‘~}~~~~‘�}}~~}}}}}}~‘~~�~}~~}||}~s}}}}}|}}}}}}}}}vvp}~}|}r|}}}}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ@!!!!]üÿÿÿÿÿÿü]!!! ! !!!!!!! !! !!!    !  !p’èüüüüüüüúýúýþýúúúûúýúüúúüúýúüàÓ                                                                                                                                                               ÓÓúóúúóúóúóúúúúúúüÿÿÿÿþÿÿÿÿÿþþûÖ �}}~‘~~}}�~~~~~~~~~‘��‘‘~~}~‘~�‘‘‘~�‘‘‘‘��¡¡‘��~¡‘¡¡‘~‘‘¡¡¡~¡¡‘�¡¡¡¡¡‘‘¡¡�‘£¢�‘¡¡¡¡¡¢¡¡‘�¡¡¡¡¡£¡‘¡¡¡¡¡£¢¡‘¢¢¢¢¡¡¢¡¡¡¢¢¡¡¡¡¢¢¢¢Öûÿÿÿÿÿÿÿÿí­££¢¡¢¡¢«¦¡¢££¢¡££¢¡£¢£¢¢¢£££¢¢¢£££¦£¢£¡£££¡¡¢¢£¢¢¢££££££¡¡£¦£££££¢¢¢¢¡¡¡¡£¢£¢¡¡¡¡¢¢¢¢£¢¡¢¢¢¢¡¡¡¡¢¡¡¡¡¡£¢¡¡¡¡¡¡¡¡¡¡¢¢¢¡¡¡�‘¢¢¡¢‘�££‘‘‘‘¡�¡¡¡¡¡¡‘~¡¡‘�‘¡‘‘¡‘‘‘¡‘¡�‘¡‘‘‘~}‘‘‘‘‘‘~��~���‘‘�‘‘~~�~‘¡‘‘‘~~‘�}~~~~~~}~~~~}}~~~~~}~}}~~}}}}~}}}}}}}}}v|}}}~}}rv}~}}rv}}v|}|žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü‚=!!!!!!@ñÿÿÿÿÿÿÿÌ!!!!! !!!!!!  !q¥éýúýüûýûýüüýþýüúýúúúüúüüúýúýúæÓ                                                                                                                                                             ×Óóúóóúóúóúó÷óúóóóÿþÿÿÿÿþÿþÿÿÿûÖ�¢�}~‘‘‘‘~}�‘‘~}�~~~}}~‘‘‘~}‘¡¡‘�‘‘‘‘~~~~~}~~~¡‘�‘‘‘¡¢¡¡‘‘‘�‘�¡¢¡‘‘¡¡¡‘££¡�~‘¢¡‘¡‘‘‘¢£¡¡¡¡¢¡¡‘¡££¡¦£¡¡¡¡¡�¡¢¡¡¡¡¡££¡¡¡£¢¡‘¡¢¢¡¢¦ãþÿÿÿÿÿÿÿÿûÚ«¦¦¦£¢££¡¡¡¢¡¡¢£¡¢¦£¢£¦¢¡¢¡¢£¢¡¡¡££¢£££££¢££¢£¢£¢¢¡¡££¢¡‘¡¡¢¢££¡¢¢£¡¡¡¡¢£¦¦£¡££¢££¡¡¢££¡¡££££¢¢¢¡¡¡¢¡¡¡¡‘¡¡¡¡¡¡¡¡£¡¡¡¡‘¡¢£‘¡‘~~‘¡¡¢¢¡‘¡¡¡¡‘‘¡¡~¡¦¢¡‘�~~~‘¡¡�~~~~�‘‘‘~‘¡¡‘‘¡��~~}~€¡‘~~~‘¡~}}~�~~~}}~}}~~}}}}~�~}}}~�~}~}}}}}~}~‘}}}~~~}}}}�~r}}~~~}}~}~}p}}|}}}rpvžûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎx!!!=$=Îÿÿÿÿÿÿÿñ@!!!!!!! !  !!!! $ŽªèúýýúýúüüûüüþþúúúýúúüüúúüúúúüàÓ                                                                                                                                                             ÓÓúóúúóúóúóúúúóúúüÿÿÿÿþÿþÿÿÿþÿúÖ ¢}}}~�‘��~}�‘~}~~~~~~�‘‘~~}�‘‘~~~��‘�~‘‘~~~�‘¡‘~¡¡‘‘¡¡‘�¡‘‘¡‘‘¡¡¡�¡¡¡‘¡¡¡‘�¡¡¡‘¡¢��¢¢¡¡¡¡¡¡¡Ÿ¡£¡¡¢£¡‘¡¦¢¡¡¢¢¡¡¡¡¢¢¢¡¡¡¢¡¡¡¢¡¢£¢¢æþÿÿÿÿÿÿÿÿÿûÜ¢£££¢¡£¢¡£¡¡¢¢¢¢£¦¢¢£¢¡¦¢¢¢£¢¡¡££¢££££¡¢¢£¢¢¢££¢¡¡¢¢¢¢¢¡¡£¦£¡££¢¡¡¢¢¢¢¡¢£¢¡¢¦¢£¢¡¡¢£££¢£¢££¢¡¡¡¡¢£¡¡¡¡¡¡¡¡¡‘¡¡¡£¡¢¡‘¡¡¢‘�¡¡¡‘��¢£¡¡‘¡¡¡‘‘¡�¡¡¡¢¡‘‘‘�~�¡‘‘~~�¡¡~~��‘¡¡‘~‘‘~‘¡~}~‘‘‘‘�~~�‘~}~~~�~�~}~}~~}~}~~}}~}�‘}}~~}}}�}}}�~|}}~}}}}|}~}}}}}}}}}}}}|}}}}}}rvp}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáx=!!!!!!!$9Èÿÿÿÿÿÿÿú_!!!!! !!!!! !!!   =}ªéüüúüüüüüüüýþüúüúúúüúûüüúüüýüàÓ                                                                                                                                                                                 Ó×óúóóúóúóúóúóúóóúþÿþÿÿÿÿþÿþÿÿûÖ �~�¡}~~}~}}��~~~~‘¡¡¡‘¡��‘~~‘‘~‘‘~~~~~¡¡¡¡¡‘‘¡�~‘‘~~~‘¡‘‘¡¢£¡¡‘‘¡~~¡‘~~~¡¡¡¢¡¡‘¢¦¢‘¡¡‘¡¡‘¡¡‘‘¡¡¡‘¡¡¡��¡£¡¡¡¡¡‘¡¡£¢¡£¡¡¦¦£¡¡¢¢¢¡¡¦ÝýÿÿÿÿÿÿÿÿÿÿõÚ¦¡¡££££¢¡¡££¢¡¡£¡¡¢¦¦£‘¡¡£££¦£¡¡¡¡¡¡££¢¢¢¡££¢¡¡¡¡¢¡¢¢¢¢¡¡¡¡¢£¦¦©¦££¡¡¡¡¡¡¡££££¡¡¢¡¡¡¡¡¡¡¡¢£££¡¡£¡�¡¢££¡¡‘�‘‘‘¡¡¡¡¡£¡‘�¡¢¡¢¦¡�¡‘~¡¡‘¡¡¡��~‘��¡‘¡¡¡¢¡¡¡¡‘¡‘¡¡‘~‘¡~‘‘‘¡¡~~‘¡¡�‘‘~~~�¡‘‘‘‘‘}}~~‘‘‘~}�~}~‘‘‘‘~}~‘~~}||‘�}}~~~}}}}|}~}}}}~||}~}}|}|}}}p|v}~}||p}}}}}™úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáz@$!!$!!9ßÿÿÿÿÿÿÿþ‚!!!! !!!! !! !!!     $p’ëúýüûüüûúýúüÿýûúúüûúúüúúüúúúúæÓ                                                                                                                                                                                ×Ó÷÷úúóúóúóúó÷úúúüÿÿÿÿþÿþÿÿÿÿþûÖ��~‘~}�‘~}~~~~~‘~}‘¡¡�‘‘‘~���¡‘~~‘~��‘‘¡¡¡¡¡¡~‘‘�‘‘�¡~~¡¡‘¡¡¡‘�‘¡¡‘�¡‘‘¡~¡¡¡¡¢‘¡‘¡¡¡¡¡¡¢¡‘¡‘¡¡¡�¡¡¡‘¡¡¡‘¡£¢¡¡¡¡¢£¢¡¡¡¡¡££¡¡¡¢¢¢¢¡£¦Öûÿÿÿÿÿÿÿÿÿÿÿþõå­££¢¢¡¢¢¦¢¡££¢¡££¦¢¢£¢¡££££¢£¢¢¢¡¡££££¡££¡¢¢¡¡£¦¡¡¦£¢¡¡¢¡£££¦£££¢‘¡£¡¡¡¢££¢¡¡££¡¡£¢¢¡¡¡££¡¡¡¡¡¡¢¦¡¡¡Ÿ¡¢¡¡¡¡¡¡Ÿ¡¢�¡¡¡¡‘¢¡¡‘¡�¡¡¡¡‘¡¡¡��Ÿ~‘‘¡¡¡¡¡‘‘¡‘���¡‘~‘‘‘‘‘¡�‘‘‘‘‘‘‘‘‘‘�~~~‘€‘‘~~~€‘~~~‘}~~~~‘‘~~‘~}}‘€}~}}~€}}}}~‘}|}}}~}}}}}||}}}||}||}}vv}~}v|vv}}}||žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú΂C@=!!!!!!=@ðÿÿÿÿÿÿÿýÆ!!!!!!! !! !!  p¥èýüúüüûüýúýüþýúúýúüúýúûüúüüüüàÓ                                                                                                                                                                     Ó×úóóóúóúóúóúúóóóúþÿþÿÿÿÿÿþþÿÿûÖŽ~��}}~~}~‘~}}~€~}~~}}}~}~~�}~~~‘¡¡¡‘~~~~~}~�~}~‘¡¡¡¡�~~‘~~��¡‘¡¡�~‘£££¢¡‘‘‘¡¡¡¡¡�¡��‘¡¢��‘¡££¢¡‘¡¡¡¡¡¢¡�¡¢¡¡¡¡¡‘¡¢¦£¡‘¡£¡¢££¡¡¡¡¡¡¡­öÿÿÿÿÿÿÿÿÿÿÿÿÿÿþûöîêÝÝÝÚÚÚÝÝÚÝÝÝÝÝåÝÚÚÖÚÚÝÝÚÝÝÚÚÝÚÝÝÚÚÚÝÝåÝÚÝÝÝÝÝåÝÚÚÝÚÚÚÚÖÚÚÝÝÚÝååÝÖÚÖÚÖÚÖÚÚÚÚÝÝÖÚÚÚÚÖÚÖÚÚÚÚÝÝÚÚÚÚÚåÝÝÝÚÖÚÚÚÚØÖÚÚØÔÖÚÔÚÝÚÖÚÔÖÚÚÖÚÚÚÚÚÖÚÔÚÚÔÚÔÔÖÚÚÚÚÔÓÔÚÔØÖÚÚÔÓÓÓÔÔÓÓÔÔØÔÚÔÚÔÚÔÓÓÔÚÔÚÓÓÓÔÚÓÓÓÓÔÓÓÓÓÓÓÓÓÔÓÔÓÓÓÚÓÓÓÓÓÔÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÇÓÓÓÓÓÓÓÓ×èèèèèèèèèèëèèèèèèèèèèèèèèèèèèèèèèôèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèáèèèçèèèèèèèèèèèèâèâèèáèçèèèèçèèèèáèèáèèèèèçááâççèááèáçáççáèçááèçáçèááçáèááçááááááááááááááèçèáááááááááßáááçááááßááßßßáááááááááçááßááááááááßßßßáßáßßßßáááßßáßßßáßßáßßáßßáßÑßááááÎÌÆƒxZ@=!!!!!!!=!!=9u÷ÿÿÿÿÿÿÿÿá=$!!!!!!!! !!!!! ! !!!!!! ! !! =sªèûüüûüüüúüüüþþúúúûúúúúüúüúúúúæÓ                                                                                                                                                                                ÓÓ÷÷úúóúóúóúóúúúúúÿÿÿÿþÿÿþÿÿÿþûÖ���~~}~~}~~~}~}~~~�~}}}~~~~~~~~~‘¡‘¡¡~�~~~}~‘}~�¡¡‘‘~~‘�‘�~�‘¡�¡¢¡~�£¢¡¡‘‘¡¡¡£¡¡¡¡¡�‘¡¡�¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡£¢¢¡¡¡¡¡¢¡¡¢¡¢¡¡¡¡­íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ™}}}}}}}}}}}w}}}vvv}}}}}vv}}}}}v}}vv}}vw}vpv}wvvvv}vvvvvvvvvvv}vvvvvuvvvvvvvvvuluvvvuovvvoouuuolovvolluuluulllltllluulllullooolCllCltllCCllllCCCCCCClCCCCCllCoCCCCCAACC@AClCCCACCCCA@CCCCCCC=CCCAA@ACCCCCCA@=@AA@=@>@>@=C=@=@=@==@==@==@=====@>====!=!!!!!!!!!!==–üÿÿÿÿÿÿÿÿñ@!!!!!!!!!!!!!!!  !!!   =sšéüüûüýúûüüúýþýúúüúýúýúúúûüüüüàÓ                                                                                                                                                                                                                          Ó×úóóóúóúóúóúóóúóúþÿþÿÿþÿÿþÿþÿúÔŽ~}~}~�‘‘}}}~�¡‘~~}~‘~~‘��~~‘¡‘~}}~�~~‘‘�}�¡¡�~¡‘�‘�‘¡‘‘¡¡‘‘‘‘�~‘‘~�¡‘~‘�~¡¡‘¡‘¡‘‘‘¡££¡¡¡¡¡¡¡~‘¡¢¢¡¡£¡¢££¡¡¡¡¡¢¡£¡¡¡¡¡¢£¢¡¡¡¢££¡¢¡£¡¡¢¡­õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷™}}}}|rvrp|}v|p}vrvvp}}ppvpppoppvvvv|}ppvpppp|vplppppplpppvplllpppllloopvppplllllllpllplovlllpllCllllCoollollllllllpllC??Cl?CCl?CCCCllll?>>CllC??>lC>CCCC>CClC>=>>C>=C>>=>CC>=C>=>=>A>=CC==>===================$===A========!$==========$!=!=$==!!!!!=$$!!$!=$!$$!!!_òÿÿÿÿÿÿÿÿÿñB!! !!!!!!! !!!!!   =}¥ëúüüüúýüýúüúÿýúúúúúúúüúúüúúúúæÓ                                                                                                                                                                                                                                 ÓÓ÷úúúóúóúóúóúúóúüÿÿÿÿýÿÿþÿÿþÿûÖŽ}�‘~}�¡~~~~}~‘�~}~~�~‘‘‘~~}~¡¡~}~~‘~~��~�‘~��‘‘‘‘�~�‘‘~‘¡¡‘¡‘¡¡~~¡‘~~¡¡�~¡‘¡¡¡¡¡�¡¢¡¢‘‘¡¡¢¡‘‘¡¡¢¢¡¡¡£¢£¢‘‘¡¢¡¡££¡¡¡¢¡¡£¢‘¡¡¡£¢¡¡¢¢¢£¢¡¡¥Úûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷š}~}}}}}v||pv|||}vp}}|}vpppppppp||vvvppppppvpvppoopppvppppppllpvppplllopvppplpplllllllpooplllpolllllllopCClpllllllllllC>ClllClC?Col?CllC?CC>ClCC>>?CClCC>>=?lC>>=>C>>>>=>?=>>>>>>=>>>==>A>=>=>=======>============>>=======!!=====$====$!!==$===$$$!!==!!!!=!!!!$=Yßÿÿÿÿÿÿÿÿÿÿß@!!!!!!!! !!!!!!!! !!!! $qªèüüüûüüúüüûýþýúúúüúúüúûüúúüüüàÓ                                                                                                                                                                                                                             ÓÓóóóóúóúóúóúóóúóóþþÿÿÿÿþÿþÿÿÿûÖ�s}~}}}}}}~‘‘}}}~�‘~~~~‘~~~~�¡‘�‘�~‘¡‘~�¡¡¡‘‘¡‘~~~�¡¡‘¡¡�‘‘‘¡¡¡�~¡¦¢�‘¦¢�¡¢¡¡�����¡¡¡¢¡¡¡‘�¡¡¡¡¢¡¡¡‘¡¡¡¡¡¡¢¦¢¡¡¡¡¡¡¢¢¡‘¡¢¢¡¡¢¦«¢¡¡¡¡¡¡¡£¦£¥êýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ˜v}|pppvpv}}|ppv}ppppp|}||pv|||pppppppv|vpppopvvvpplpvvvvpppppollppllvopplollloolpppllplllllollllClplClollpplllCCllllllCCllllll>?Cl??C?>?llC??C?lCC?>?l>C>>Cl>AC>>CC>>>ClC>>A>=>=>>A>>?=>=>AC?==>C>=>C===>>=============$$=======$!=====!===!!$$!!==!!=!!$!@=$!ZÌÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!!!!!!!!!!! !!!  !qªëüûúýúýúýúüüþüüûúúüûúüúúüúûúúàÓ                                                                                                                                                                                                                      ÊÓ÷÷÷úóúóúóúóúúóúüÿÿÿþÿÿþÿÿþÿþûä �s}}~}}}~~}~‘~}}~~~~~~‘~}~}~~~¡¡‘��‘~}�¡‘�‘¡¡‘~~�‘¡¡�¡¡~¡¡‘¡¡‘‘‘¡¡¡‘‘¡¢‘¡¡¡¡‘¡¡�‘¢¡¡¡¡¡¡‘�‘¡¢¢£¢¡¡¡¡¡¡¡¡‘¡£¢¡¡¡¡¡¡¡¢¡‘¡£¡¡¢¢¦¦¢¡¡¡¡‘¡££¢£¡¡¦Ôêýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷™ppvppp}}|v}}vpppppp|vvrv|vvvv|pppvvppvvvppvppvpp|vop}vpvvvppplpolllppllpllpllplllllllpplllllllllllplCllllollllllllllllll?Clllll>???C?>CCCCCC?>>CC??>CC>>>>CC>ll??>C>=?l>>CCC>==>>CA=?>=A>>>>===C>>=>A>========$========!$===========!!!====$=$=!9=!!==!!!$==!_Ìúÿÿÿÿÿÿÿÿÿÿÿÿ…!!!!!!!!!! ! !!! !!!   sªõúýüüüúýúýúýþýúúúúûúúúüúûüúüúàÓ                                                                                                                                                                                                         žÓóóóóúóúóúóúóó÷óúüÿÿÿþÿÿþÿÿþÿýÚ��~}~~}~~~~}~~~‘¡‘‘~~~~�‘~‘�~~~‘�~‘~�‘‘¡�~~‘‘�‘�~�‘¡¢¡¡~~~‘¡‘‘�¡¡‘�¡¡¡‘¡~��~‘¡¡¢�~�‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢¡¢¡¡¡¡‘‘‘‘¡¡¢¡¡¡¢¢¡¡¡¡¡¡¡�¡¢¢¡¡¡¡¡¡¡££¢¡£­êûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷š}}}}}}||ppp|}v|}}|pv|vv|vpvpppv|vv}vpppppp}}ppop|pllppllllopllopppppolpvolllpvvppllllvlllllllllllollllllCllCCClllC?llCClCCll?>ClCClC?CllC?lCClllCC??>lC?C??=>l>?>>C>CC>=>>>>?>=>>Cl>>===>>===>>==>==========@=9$9==============$!9!====$!!!!!!!!=!!!$$=Zxƒßüÿÿÿÿÿÿÿÿÿÿÿÿÿü_$!$!!!!!!!!!!!! ! !!!!!   ! =sªõüüûýúýúýúüýþýúýúúúúüûúúüûúúúàÊ                                                                                                                                                                                                                          žÓòúóúóúóúóúóúúóúúÿÿÿþÿþÿÿþÿþÿûä��}}~~}}~~‘‘}}~¡‘��‘�~~~�‘�‘~}}~�‘�‘¡‘‘‘~~‘‘‘~�‘‘~‘¡¡¡‘‘��¢¡‘�‘¡¡�‘¢¡‘‘¡¡‘�~¡¡‘‘~�‘¡‘‘¡¡¡¢¡�‘¡¡¡¡¡¡¡‘¡¡¡£¢¡¡‘¡¡��¡¢¡¡¡¡¡¡¡¢¡¡‘�‘¡‘¡¢¢¡�‘‘‘¡£¢¡¡££¦¦¡¢¥­ÜÝêêêêæêêêêêêêêêêêêàæêêêêêêêêêêêêêêêêêæêêêêêêêêæêêêêêæêêêêêæêæàêêêêêêêàêêæêêêàãêêêæêêêêêêêæêêæêææêêêêæàêàêæààààêêàààêêêààêàÚàêààêààêãààêààààÚæàààêæàÚààææààãàãêêàêæààààààÚàààààÚààààÚàãàÚàÚàààÚàÚààààÚàÚÙÙàêÚàÚàÚÚàÚÚÙÚæÚàÚßÙàÚàÚÙÚÚÚÙÙÙßÚÚÙÙÚàààÚÙÙ×ÙÙàèëèèëèèèèèèèèèëèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèâèèèèèèèèèèèèèèèèèáèèèâèèèèèèèèáèáâáèèèáèèèèáèèáâááßçáèáâçááèáâèáááèèáèáèááâáâáâááßááááááâáááßááááßáááßááâáßáßáááßáßáßááááßáßáßßáßáßßßßáßßßáßáßßßáßßáßáßßßßßáßáßßßßßÏßßßßßßáñ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßB!!!!$!!!!!!!!! !!!!!!!! !!! =s¬õüüüúüüüúýúýþüúúúúúüúúúüúüúý÷àž                                                                                                                                                                                                                 ›Óòó÷óúóúóúóúóóúóúüÿÿþÿÿþÿÿþÿÿþê ���‘‘~~}}~¡‘~~¡~}}~~}}}~‘‘‘‘}~‘~~‘~~~~~�¡‘‘‘~~�¡�~~~~~‘‘‘¢‘�‘~��‘¡‘‘¡�~‘�‘‘¢£‘¡¡�‘¡¡¡‘‘¡¡¡�¡¢¡‘‘¡‘¡¡¡¡¡�¡¡¢££¢‘¡££¡¡£¢¡‘¡¢¡¢¢¡£¦£¡£¦¢¡¢££¢¡¡¡¡¡¡¡£¢¡¡£¡£££¢¡¢£¡¡‘¢¡¢££¦¢¦£¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢¢¡‘¡¢¢¢¡¡¡¢£¡¡¡¢¢¢¦£¢¢¢¢¢£¢¡¡¡¢¢¢£¢¡¡¡££¡¡£¢¢¡¡¡‘�¡¡¡‘¡¦¢¡‘¡¡¡‘¡¡‘‘�¡¢¡¡¡¡�‘¡¡‘‘�‘¡¡¡¡‘¡¡¡¡~}¡‘�~‘¢‘�¡‘¡¡¡~~‘¡‘‘‘~¡¡~~~~‘�~}‘‘~~~~~�‘�~�‘‘~}~‘~}}~~}}}~‘‘~}}}‘~~}~‘~}}}}}}~}}}}}p}~}}}r}}}}~}}}}}}}r}}}pvr}}|w}||}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ[!!!!!!!!!!!!! !!! ! !! 7�­õýûüüüûúýúüýþýúúüúúûúüúûúúúú÷Úž                                                                                                                                                                                                                ˜Óò÷ó÷óóóúóúóúúóúóþÿÿÿþÿþÿþÿÿþþæŸ�~~‘‘‘~}~~¡¡‘~}~}~}~}}}~‘~�‘‘‘�~�¡‘~~~‘‘‘~~�~~~‘‘~}~~~¡¡¡¡¡¡‘~~~‘¢‘‘¡~~¡¡~¡¡¡�¡¡~‘¡¢¡��¡¡~‘¡¢¡�‘¡¡¡¡¡‘¡¡�¡¡£¢¡¡¡¢£¡¡¢¢¡‘¡¡¡¢¦¦¦¦¢¡£££¦¢¢¢¡¡¡¡¡¢¡¡£¢¢¢££¡£¡¡£¦¢¡¡¡¡£¡¡¦¦¡¡££¢¢¡‘‘‘¡¡¡¢¢¢¡¡¢£¢¡�¡££¢¡‘¡¡¡¡£¦£¡£¦££¢¡¡£¢¡¡¡¡¢££¦£¢¡¡¡££££¡£¡‘¡¡¡¡‘¡¡‘¡¡¡‘‘¡‘‘¡¢¡�¡¢¡¡¡‘‘‘‘¡¡‘~~‘¡¡£¡~‘¡¡¡}~~~‘‘‘¡~‘¡¡‘��‘�~�~¡¡¡‘¡‘‘��‘~}~~~~�‘‘~~‘‘~�¡�}}}}~~}}‘}}~}~��~~‘‘�}}}~‘}}r}}}}}}}}~}v}}~~}}s|}}~}}}r}}}}}}}}v|p}}r}}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú‚!!!!!!!!!!! !!! !!!!!!! =�¬úúýúúýúýúýúýþüúúúûüúúúúúýúýú÷à�                                                                                                                                                                                                                     ƒÓñóúóúóúóúóúóóúóúüÿþÿÿÿÿþÿþÿÿþ뎎}}~~~~}}}}~~~}~‘~~~~‘�~~~~~��}~‘�~~~~‘‘�‘‘‘�~¡¡‘¡‘‘¡~��~�~¡¡~‘~~¡‘�‘‘‘¢£�~¡¢¡‘�‘¡‘¡£¡�¡¡¡¡¡¡‘�¡£¡¡¡‘¡¡¡¡¡¡¡�¡¡¡¡¡‘¡¢¢¡¢¦¦¢¡¡¡¡¡¡�‘¡¢¦¢¡¡¡¡¢¡¡¡‘¡¢¢¢¡££¡¢¡¡£¦¡¡¡¡£¦£¡¡£¡¡¡¢¡¢¢¡£¢£¡¡£¢¢¢¡¡¡£¢¢¢¢¡¡¡¢££¢¡¡¡¡‘¡¡¡¡¢¡¢¢¡¡¡¦£¡¡¡¡�¡¡¡¡¡¡¡�‘¢£¡¡¡¡¡¡¢¦¢¡¡£¡¡¡¡¡¡¡¡¡¡‘�¡¢¡¡¡¡¡¡¡‘‘¢¡¡¢�~¡¡¡¦¡~¡~~¡‘¡¡‘�‘‘~‘¡‘‘¡�~�~~~‘‘~~‘‘�~~~~~~~~}‘‘~}}~‘¡�}~�~~}}~‘�}}}}~~}~}~}}}~}}}}~~}~}}}~~|}}}}}}}}r}}}~}}|}v}r}|}pp}}}||všúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÆ!!!!!!!!!!!!!!!!!!!!!!!      !? Öýúüüýúýúýúüýþüûúúúúúúüúúúúúú÷Ù›                                                                                                                                                                                                      {Óñóó÷óó÷óóúóú÷óúúüÿÿþÿþþÿÿþÿþÿëŽ�}}}s}~}}}~~‘�~‘‘~}}~‘~}~�~~~~~~~~~~~�~~~~‘‘~‘¡¡¡¢¡¡¡‘¡�~‘~~¡¡¡~~¡‘~~�¡�¡¡‘¡¡¡�~¡£¡‘¡¡¡¢¢¡‘‘~�‘¡¢¡‘¡‘‘�‘¡¡¡¡‘‘¡¡£¢¡¡£¢¡¢£££¢¢¡¡¡¡¡‘¡¡¡¢¢¡‘¡¦¢¡‘�¡¡¡¦¢¢¢£¦£¢¦££¢¡¡£¦¦¡¡¡¡¡‘¡¡¡¢¢£¢¦¦¢¡£¢¢¡¡¡¡¡¡¢¡¡¡¡¦£¡£¡¡‘¡‘¡¡¡‘¡¡¡¢¡¡¢£¡‘¡¡‘¡¡¡¡£¢¡‘�‘£¦¡¡¡¡¡¡££¡¢¢¡¡¡¢¡‘‘‘¡¡¡‘¡¡¡¡‘‘¡‘‘¡¡¢¡¡¡‘‘¡‘‘¡¡¡¡¡¡~~~¡¡�~‘¡¡¡‘~�¡¢�}~}~~~�‘¡¡‘~~~�‘~}~~~}~~}}‘‘�~~}~}~~‘‘~~~}}~}}~}}�~}~~}~~~}}~~}}}~}|}r}~}}}}}}}}|}rvp|}}}}ppv}}vpvžûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá‚=!!!!=! !!!!!!!!!!!! !!!! !!!  ! ?�ÖúüüûúýúýúýúýþüúúúûúüúúûüúúûüõÚ˜                                                                                                                                                                                                                     zÓèóúó÷úóúóóúóóúóóüÿÿþÿÿÿþÿÿþÿþò¢ }s}}~�~}~~~~~}~�~}~‘€‘�~~~~‘‘~~}}‘�¡¡‘‘~~‘¡~~��~�~~~~~‘‘¡¡}�‘‘¡‘£¡‘¡¢¡~~‘¡��¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡¡¡¡¡¡‘¡¡¡¢¡¡¢¢¢£¢¡¢¦¢‘¡¦¢¡¡£¢¡¡£¢¡¡¢¡¡¡¡¡¡£¡¡¡¡¡¢£¦¢¡¢£¡¡¢¢¢¡¡¡¢¡¡¡£¢¢¡¡¡¡¢¡¡¡£¦¡¡¢£¡¡¡¡¢£¢¡¡¢¢¢¡¡¡¢¢¡¡‘¡¡¡¡¡££¡¢‘¡££¡‘¡¡¡¡¡¡¡¡¡¡¡¡‘£¡¡¡¡¡�¡‘‘¡¡�‘¡¡‘‘¢¡��‘�¡¢‘~‘���‘¢¡¡¡‘�~�‘�‘‘‘¡�~‘¡�‘‘��~~~~~�~‘‘‘�~~~‘~}‘¡‘~~~}~~}~�~}}~~}~}}‘�~~}}‘‘}}}|}}}}~~}}}|}r}}}~}r}}}}|}}}v~}}}vv}}}r}wr}}|šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÏ‚=$!!=!=!!!!!!!!!! !!!! !! ! !?�ÓûúýúýúüúýúüþþýúúúúúûúúúúúüúúòÚ”                                                                                                                                                                                                   zÓè÷ó÷óóó÷÷÷óúúóúúüÿÿÿÿþþÿþÿþÿþõ’�}}}}~}}~‘‘}~~~}}~}~~~~~~}}}}�‘¡‘~~¡¡‘~‘‘‘¡‘~}‘‘~~�‘~}~}~‘~}�¡¡¡¡¡¡¡££¡}~‘¡‘‘¡¦¢�¡¢¢¡¡‘‘¡¡‘¡¡¡¡¢£¢¡‘¢£¡¡¢¢¡‘�¡¡¡¡¡��‘‘¡¡¡¡¡‘¡¢¢¢£¦¦¦¦£¡£¦¡¡¢£££¢£¡¡¦¡¡�¡¡¡¡¡¡¡¦£¢¡¢¢¦«¦¢££¡�¡¡¡¡‘�¡¢¡�¡£¦£¢££¢£¡¡¡¡¡¡¡¡¡¡¡¢¢¢¦¦£¢££¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¢¡¡¡¡¡¢¡¢¢¡¡££¡‘‘¡‘¡¡¡¡‘¢¡��¡¡�‘¡¡¡¡¡¡�~~��~‘£¡‘~}~~‘¡¢¢¡~~�‘�~~¡¡¢‘~}�¡¡¡‘~~€��‘~�‘‘�~~~‘~~‘¡‘‘‘‘}~}~‘‘~~~~~�~}~~¡¡€~}~�}}~}}s}r}‘~}}r}v|}s}}|}~~}}}}rv}}~}p}}r}}}}}}}}p™÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüóçÏÆx======!!$$!!!!$!!!!!!!!! !!!!!!!!!!! !j�ÙüýúüúýúýúüüýýúúúûúúúúúüúúúúúõÙƒ                                                                                                                                                                                        ]Óèóúóúóúóóóúóóúóóúÿþÿþÿÿþÿÿþÿÿù¥Ž~~~~}~~~~�}}~~~~~�~}~~~~~~�~~~~~~~~~�~~~~‘¡~~¡¡~}‘¡‘�‘~¡¢¡~�~�¡‘‘‘��¡¡~�¡¡��¡¡~~¡¡‘¡¡¡¡‘¡‘¡¡¡¡‘¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¡¢¢¡¡¡¡¢¢¡¡‘¡¢¢¡‘¡¡¡¡¡¡¡¡¡¡¢¢¡££¡¡�¡££¡¡£¢¡¡¡¡£¡¡¡¡¡¡¡¡¡¢£¡¡¢¦¢¡¢¡¢£¢¡¢¡¡¢¢¡¡¡¡¢£¡¡¢¡¢£¡¡¡¡¡¢¢¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡‘¡¡¡¡¡££¡‘‘‘¡¡¡¡¡�¡‘¡¡¡¡¡£¡�¡£¡�‘¡¡~‘£¡¡¡¡‘¡¡¡¡‘¡‘�¡‘�~‘¡‘~‘¡‘‘‘�‘‘‘��~~‘‘¡¡~~�~‘‘~~‘�~~~~~‘��~}~�~}~‘~~~}}}~~}}}~~}~s}}}}~}}}}~}}s}}}}~~}~}}|}}}}}}}}}}}r}}}|}}wv|v}p}}|vžÓÓÓÓÓÒÓÒÓÓÓÇÓžÓÇÇÓÓžÇÓÓÒžÓÇÊžÊÇÇÇÇÓÇÓÇÓÇžÇÊžÊÇÇžÇÇÇÇÊÇžžÇÇÇžÇÇÇÇÇÇǞǞžÇÇžžÓÇǞǞÇÇžÇÇž�›�žÇž�žÇž�žÆž��žÇž�žÇ����ž�žÇÇž�›���ž�››����›�����›››�›››�›››››�›�›››››››››››››››››–››�–››�›–›››�››–›–››››––››––›–––›–”––––––––––––––”–––”–––…–––––”–”–––”––”xZ=!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !o’àúüýúýúýúüûúÿþúúúúúûúúûúúüúúúõÙƒ                                                                                                                                                                                                         BÓà÷ó÷óóó÷úóóóúóúúüÿÿÿþÿþÿþÿþÿþú¬���~}}~�~~}~}}}}}~~~}}}~‘~‘¡~}}}~‘‘~~‘‘~}}�¡€��‘~~~‘‘‘‘¡¢ª¡‘‘~‘¡‘�‘~~‘¡¡¡¡~~‘~‘�~~‘‘¡‘��‘¡¡¡¡¡‘¡��‘¡¡‘¡¡�‘£¦¢¡¢¡¢¢¡¡£¡¡¡¡‘¡¡¡¡¡¡¡��¡¡¡¡¡‘¡¢£¡¡¢¡¢¡�¡££££¡¡�‘¡¡�¡¢¡¡¡‘‘‘£¦¡¡££¡¡¦«¢¡¢££¡¡¢¡¡¡¡¡¡¡££¦£££¡¡¡‘¡¢¡¡¡¡££¡¢£¡¡¢£££¢¡¡¢£¢¡¡¡‘‘¡¢¡£¢¡‘¡¡¡¡¡¡‘�¡‘�‘‘¡£¡‘‘‘¡¡¡¡¦¢¡¡£¦£¡‘¡¡¢¢¡¡¡‘¡¡~~~~‘¡¡‘‘¡¡~~����~~‘‘‘‘�~�‘‘�‘~~~‘~~~~‘‘‘�}}~}}~‘¡‘~}~~}}}}}~~}~~}}}}|}~r}}}}}}}}}~�}~~~}p}}}||}}|p}}}}~}}vvvrv}|v|}}}}}||pp|}}|p}}vp}}}|}}|pvppp|}|||pppv|ppppppploopoolllv|pppplllp|ppppvppllvolpvppplllpvolllllllpplllllpll?lllvllllClollllllllC?ClCCllC>?llC??>>>>>CCC>>>>CC>Cl=>>=CCC=>C>>==>?>>>>===>>>>>llA===>>=======>=====$==!====$$$=======$!!=$$$=!!$=====$=!!==!$$!!!$!!!!!!!!!!!!!!!!!!!!  !!!!!!!!!!!!!=q¥æüúúýúýúýúýüþýúúúúúúúúúúýúûüúèÚ]                                                                                                                                                                                                                 9ÓÙóúóúóúóóúóúóúóóóþÿþÿÿþÿÿþÿþÿûÚ��~}~}~}}~}�‘~}~~~‘~~~~~‘‘�~}~�~‘‘~‘��~‘‘€‘‘‘‘~~�~‘�‘�‘~‘¢‘~‘~�¡‘¡‘~‘~�¡¡�‘¡¡‘�¡¡¡¡‘‘¡‘¡¡¡¡¡¡¡¡¡‘¡£¡‘¡£¢�‘¢¢‘‘¡¡¢¢¡¡¡¡¡¡¡¡¢¢¡¡¡¢¡‘¡¢¡¡¡¢¡‘¡¢¡¡¡¡¡¡¡¡¡£¡¢£¡¢¡¡¡¡£«¡¢¡¢¡‘¢¦¢¡¢£¢‘¡£¢¡¡¡¢¡¡¢£¡¢¡¢¡‘¢¡¢¡¡£¡¡¡¡¢£¢¢¡‘¡¢¡¢¡‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¢¡¡¡¡‘�¡¡¡�‘‘‘¢¡��‘‘¡¡‘‘‘‘‘‘‘‘‘¡‘�¡‘¡‘‘‘‘~‘¡¡‘�~�‘¡‘‘‘��‘‘‘~~~~~~~~~~~~~~�‘‘~~}~~~~~}~‘~}~‘~}}~}}}}}~~~}}}~}~}~~}|}}}}}}}|}}}~}|}}~vv}}}}}}rp}|}~pp|r|}|||v|v|}}pp||pv}}ppppvvp|pvv|ppppvppvvvpppvpoppp}pppopppllvpppvpolllppolpvlllopplllllplloolllolllllllllllCllllClllCCClClllllCCCClCll?CCCCCCCll?C?CClCCC>?CCC>=>>>C>>A?>=>>>?>>>>=>=>=>>>=>C=====>>======>===A===================!====!=====$!$!!==!!!!$!!!=!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!! ! !  =s¥õûüýúüúýúüúüþýúúúúúúûúúúúúúúüè×]                                                                                                                                                                                                      ×Ùóó÷ó÷óúóó÷óóóúúúÿÿÿÿþÿþÿþÿþÿýæ�Ž~~}}}}}}}}~}~�¡‘�‘¡‘~~�‘‘~~�~~‘~�¡¡~‘¡¡¡‘‘¡¡~~}~�‘‘¡¡�‘¡~�¡~}~�~����‘¡�~¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡‘‘‘¡‘�¡¡£¢‘‘¡£¢¡�‘‘‘�‘¡¡£¡��¡¡�¡¡££¢¢¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡�¡££¢¢£££¢¡£¢¡¡£££¡¡¢£¡¡¦«¦£¢¢¡¡¡¢¢¡‘¡¡¡¡¢£¢¡¢¡¡¡¡¡¢¡¡£¢££££¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡‘¡¡‘¡¡¡�¡¢¡¡‘‘¡¡�‘¢¢¡¡‘¡‘�¡¢£¦¦¢�~¡¡¡‘‘¡¡£¡‘~~‘¡¡¡‘¡¡�~~�¡¡�‘¡¡¡¡��~~‘£¢‘�~‘¡‘‘‘�~‘‘‘‘~}}~~~‘~}~~}}}~¡‘¡~}}}~~}}~��~�¡~}}}~|}}~~��~}}~}}~¡~}}}}|}~ps}}}r}‘}|}�~}~rvv}}p}}}}}}}}}}vvvpv|pp|pp}}pp|}vppppp|}}}}vpppp||ppppp|vppvoop}}}v|plolllpvvvvvollllllllplllllllllllopvvpppllllpllCClll?lllllClCCC>CC??Cll?CllCC>ClCC>>?>>>CC>ClllCllC>?ClC>>C>>C>ClC>ClCCC>CC====>>>>>=>==>>=========>===>====>>=========!=9$$====!$===!!$!!!!==!!$!!$==$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!   ! =�¬õüúüüûüúýúýýþýúúúúúúúúûúúüúúúàÓB                                                                                                                                                                                                                   ž×òúóúó÷óú÷ó÷ú÷óóúüÿþþÿþÿþÿþÿþÿí �~}~~}~~~}~‘~}~~~}~¡~}~}~€�‘‘}~‘‘~~}~‘‘��~~‘‘‘‘��‘‘�~‘~�‘‘¡‘~‘¡‘~�¡‘¡‘‘‘‘¡‘‘¡¡‘¡¡‘‘¡‘¡¡‘¡‘¡¡¡‘¡¡¡‘¡�¡¡¡¡¡¡¡¡¢¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡‘¡¡¡¢¡¡¡¢¡‘¡¢¢¡¡¡¡¡¡¡¡££¡¡¡¡¡¡¢¢¡¡¢¡¡¢¡¡¢£¡�¡¦£¡¡¡¡¡¡££¡¡¢¢¡¡¡¡¡�¡¡¡¢¡¢¡¡¡¢¢¢¡‘¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡‘¡¡¢¡‘¡¡¡¡¡¡¡�¡¡¡¡¡¢¡¡¡‘¡‘¡‘¡‘¡¡¡�‘‘¡‘‘¡¢�¡�~‘¡‘¡‘~‘‘‘¡‘~‘¡¡��~~‘‘��~~‘¡�~~�~~~~‘‘‘‘~}~}~��‘~}~~~‘~}~~~~}~~}}~~}}‘‘}}}~}}}~}v~~}�}r}~}p}}}}}}}vp}}}}}}|}}}|}}p}v}}}v|r}v}||p}}}ppv|v|pp}}pp||vv|vppv|ppppvvpov}pppppvpppoplpppppppppplpppvloolpploolollppllplllllolllllllllllllllllllllllllCCCllCCCClCllCCClCCCCCCllA?CC>>Cl>>>>CCCC>>>C>?>=>C>>>>>>>>>>=>=>=>==>>>==>========>======================$===$$!=$=!$!$===$$$!!$!!!$!!!!!!$!$!!!!!!!!!!!!!!!!!!!!! !!!! !     ?�Óüýúýúüúüüúüýþýúúúúúúúúúúúúûú÷àÊ9                                                                                                                                                                                                                                             ˜Óòóóó÷÷óóóúóóóúóúüÿÿÿÿþÿþÿþÿþÿõ¢’s}~~}~��‘¡¡‘}}}}}~~~��~~~‘‘‘~~~~~}}}~~~~�~‘¡‘‘¡¡¡‘¡¡~}~¡¢‘~‘¡¡¡¡¡¡¡¡�~¡‘¡�¡¡�‘¡‘~~~�¡¡¡¡¡¡¦¡‘‘¡‘¡¡¡‘��‘¡¢¡££££¡�‘¡¡�¡¡¡¡~�¡¡¡¡¢¢¢¡¡¡¢¢¢¡¡¢££¢¡¡¢¡¡‘¡¡¡¡‘¡££¡¡‘¡‘¡¡¢¡‘¡¢¡¡¡¡¢£¡¡¡£¢¡¡¡¢¡¢¦£¡‘¡¦¦¡¡¡¡‘¡¡¡¡¡¡¢¢£¢¡¡£¡¡¢¦¦¡¡‘¡‘¡¢¡‘¡¢¡¡‘�‘‘�‘‘�‘¡�¡¡¡�‘¡¡~�¡¡¢¡‘‘¡¡~�~~~�¢¡‘~�‘‘¡¡¡‘~~¡¡£¢‘‘¡‘~��~}~‘~~}~¡‘~~~‘¡¡‘}~�‘}~�¡¡¡‘~�‘~}}}}~~‘‘~~}}}~}}}}}}}~�~}~~|p}~‘~}}}|}¡~}~|}}}p}~}}}}}r}}}spp}}pr}}|p|}rv|prvvp}rvv|}}ppp|}}pp|}~}}|vp}pppppvvpp|}|vpp}}}}p}}olppplpvvvpvopplloppppplpvvpoppollpvllll?ClllllllllllllClllCCllllllllllllCC??>CCllll>CCCCCllllll>>>>>CC?CC>>CClC>=C>====>=>>>=ACA>CCC>>>===CC==>>A>>>A>=============!$$=======C=$=$!==!!!$=======!!$!!!$$!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!  j’Õúúüúýúýúûüüýþúúúúúúúúúûúûúúú÷à›                                                                                                                                                                                                                                                          x×èúóúóóúóúóóú÷óóúúÿþÿþÿþÿþÿþÿþúª�}~}}}}~~}~�}}}‘~~}}~‘~}~~~~~‘�~�€‘}~‘‘~~~~‘¡~~‘‘‘‘‘¡�~‘¡‘}‘¡‘‘‘‘¡~‘‘¡�‘�‘‘‘‘‘¡‘¡‘¡¡¡‘¡‘‘¡¡£¡‘¡¡¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¢¢¡‘¡¡¡¡¡¡¢¦¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡‘¡¡¡¦£¡¡¡¡¡¡¡¡¡‘¢¢¡¦¡‘¡¦¡‘¡¡¡¢¡¢¡¡¡¢¢¡¡¡¡££¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¢¡¡¡‘¡¢¢¡¡‘¡¢¢¡¡‘¡¡¡¡‘¡¡¢¢¡‘¡¡¡‘¡¡¡¡¡‘¡¢¡~¡‘¡¡¡¡¡�¡¡¡~~¡‘‘‘¡¡‘~‘‘‘¡‘¡‘�‘~‘~�~�¡‘~�¡¡�~~~‘‘‘‘~~~~‘‘��~~~~~~~~~~~~~�~~~}}‘~}}‘~}}~}~~~~}}}}}~}}}r~¡}v}}}~}}}�}r|}}}}}}}}}r}}}r}}sp}|}}}}}p}pvrv|vv|v|pv}}|vv|pvpp|vpp|vv|ppv|pppoppvvpop}vlpvpopppppplvvllpvllppplloooopollplllplllpplllllllllllllolClllllllClllllCClllClCll?C?CC?CCC?ll>>ClC>>>Cl>>?????CC>C>?=>?>=>>=C>==>>>>>A==>>===>>==>=====================$=====$$$==$===!$!$=$$$$$!!=$!!!!!!!==!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! !p’æüüûüúýúýüûüþþúúúúúúúúúúúúúüúòÚ”                                                                                                                                                                                                                                        ZÓàóóó÷úóóó÷÷óóúóóüÿÿýÿþÿþÿþÿþÿûÚ��}}}~}}}}~}}}~�~}}}}~~}~~}~~�‘‘‘‘¡‘‘‘~~~‘~€~~�¡~~‘~‘‘¡¡‘�~‘¡�‘�‘~~¡‘¡‘¡¡‘~����~�¡¡¡‘�¡��‘¡¡¡¡¡¡¡¡¢¡‘¡¡¡¡‘‘�~‘¡£££¢¡¢¢¢¡‘�‘¢£¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¢¡‘¡¢¡‘¡¢¡¡¢£¦«¡¡¦¢¡�¡¡¡¢¢¡¡‘¡¡£¡‘¡‘¡¡�‘¡¡¢£¢¢¢¡¡�‘¡��¡¢£¦¢¡¡¢£¡¡¡¡¡¢£¦¦£¡�¡¡‘¢£¡¡¡¡£¢¡¡¦£¡‘¡¡‘‘¡¢¢‘~~‘¡¡�¡£¢¢¡‘~‘‘‘‘¡‘¡‘~‘¢¡¡¡�~~~~~‘¡�~�¡¡¡¡¡�}�¡‘�~~~~~¡¡¡‘�~}}~}}}}~¡¡¡~}}}}}~~‘‘�~~}~‘�~‘‘}}~�~�~}}r}}}}}}~}}|p|}|v|}}s}svv|v|}~}}}}}}}}}}}}}|p|p|}}}}}}r}}}~}pp|pp|pppppppppppvpppp|vvpoopppplp}}pvvolplopolpppolvploppllllppopolollopoplppllpllCCCClloppolllllllCClCCllCCCCllolllCCCCCCCC>>C?>>>CC>>>=>C>>>>>>>CCCCCCC>C>>>>=>>>>C==>=>>>>>==>>==>===>>==>==$====!====$==!$======$====!===!!$!!=====$$=$!!==!!!!!!!!!!!!!!!!!!!!!!!!  !!!! !=}ªõüûüúýúýúüüúþýúúúúúúúúúúúûúúúëÙz                                                                                                                                                                                                                                 ;Óàúóúóóúóúóóúóóúóóÿÿÿþÿþÿþÿþÿþþí �}}~~}}~‘}}~~~~~~}}~‘~~~‘�~~~~}~���~~~�‘~~~}‘‘‘~‘¡‘~‘¡‘~‘~�‘‘‘‘¡¡~¡�‘‘‘‘¡��‘¡�~¡¢‘¡‘‘‘‘¡‘¡�¡£¡�¡¡¡¡¡‘¡¡¡¡¡‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡£¡¡¡¡¡¢¢¡¡¡¡¡¡¢¡¡¡¦£¡‘¢£¡¡¡‘¢¦¡¡¡¡¡¡¡¡¡£¡¡¢¡¡¢¢�¡¢¢¡¢¡¡¡¡¢¢¡¡¡¢¡¡¡¡¡¡¡¢¢£¡‘¡¢¡¡¡¡¡¡¡‘¡¢¡‘¡¡¡¡‘¢¡�‘¢¡¡�¡¡¢¢¡‘¡¡¡‘¡¢¡~¡‘¡¡¡‘¡‘¡¡¡~�¡‘¡¡‘‘�~¡¢�¡‘¡�~‘~�¡‘‘‘‘‘‘‘‘‘‘�~�¡�}~‘‘~���‘‘~~�~~~~~~~��~}~~~~~}~�~}~~~}}~}~}~~}}‘‘}}}}}}~}}}}}}p}�}}}}}}}vr}|}s~}}|}}|}}p}}}}vv}}|p}}|v}}}|v|p}|pppp}|ppv|ppppvvppvppppppppvpppppppppvpppopppppolppopplppplploplllpollppllllllpollllllClllllllllllCClllCClllC>CllClCCll?ClC>>lCC>CCCCCC>>>C?>AC>>?>>>>>>>C=>C>>>>=>>>=>A=>>?=>===>===>=============$=>==========$======$=$!====!!!=$=$!$=$!!!!!$!!!!!!!!!!$!!!!!!!!!!!!$!!!!!!! !  ? ¬úúýúýúüúúýúýþýúúúúúúúúúúúúúúúèÙ]                                                                                                                                                                                                                                     ÓÙóó÷óúóóó÷úóóúóúúüÿþÿþÿþÿþÿýÿÿíªŸ}}~‘~}~~}~‘~��~~~~‘‘~~��}}~~‘~}~~~~~~‘~�‘‘~~~}~‘¡�~~‘‘‘‘~~�~~‘¢¡¡‘�¡‘‘¡¢‘¡¡‘‘‘¡¡‘¡¢‘�~�~~~‘¡¡‘‘‘�‘¡¡��‘¡¡¡¡¡‘¡‘‘‘¡¡¡¡¡¡¦¡¡‘‘¡¡¡�¡£££¦£¡¡¡¡£¢¡¢¡¢¢¡¡¡¡¢££¡¢¦¦¢¡‘¡¡¢¡¡¡¡¢¡£¢¡¢¡¡¡¡¢¢¡¡¡¦¦¦£¢¦£¡¡¡¡‘¡£££¢¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡‘���¡�¡¢£¢¡‘¡¡¡¡¡¡‘‘¡‘¡¡‘¡¡‘‘¡¡¡‘¡¡¡¢¢¡�¡~�¡£‘~��‘¡¡‘~�¡‘~~~~~‘�~~~~‘¡¡�~�¡¡‘‘�~}}}}~‘~~}}~~~‘‘~~‘‘~~}}~~}~‘¡¡‘}~~}~‘~}}~~~�~}}}}~~~~~}rv}�~}}r}}~~}‘~}}}}|}}}}}}pp}pp||pp|pp|}r}}}vppp|}}}pppppvvpppp}}v|}vpp|}}||vpolppopvpppplloloop|vpooplppllpploloppopplpplllpolppllllllllllpplllplllllllllCC?Clll?ClollC?ClC>?llC>CllCCl?>llCllCC??ll>CCC>>>CC==>>>=>>>>>C>=>===CC===?>=======>A>>=====>>============!!$!!===!$!!$=$!!!!=$$!$!$!!$!!!!$=!!!!!!$$!=!!!!$!!!!!! !!!!!!!! !! ! !!!!!!    o¢ÕüüúýúüûüüüüýþüúúúúúúúúúúúúúûúæÓY                                                                                                                                                                                                                                             ÓÓó÷ó÷óóú÷óóúó÷óóóüÿÿþÿþÿþÿþÿþþú¬Ÿ~}}~~}~}~~~}~¡~}}~~‘~}~~~~~~�}}¡‘}~�‘~~���~‘‘~~‘¡~~��‘¡‘~�‘‘~‘‘�¡‘‘‘�‘¡¡�‘¡¡��‘¡‘~¡¦‘�‘¡‘�‘¡¡‘¡¡¡‘¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡¡‘¢¢¡‘¢£¡¡¡‘¡¡¡�¡£¡¡¡¡¡‘¡£¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¢‘¡¡¡¢¡¡¡¢£¡¡¢£¡¡¡¡¡‘¢£¡¡¡‘¡¡¡¡¡¡¡¢¢¢¡�¡£¢¡¡‘‘‘¡¡¡¡¡¢¢‘¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡£¡�‘¢¡‘¡‘¡‘‘¡¡¡¡~~¡‘¡‘¡¡‘~‘�‘¡‘~‘¡‘�‘‘‘~‘‘~~‘¡‘~~‘‘~~~~‘‘��~~‘‘~�~~~�~~~~~‘~�}}~~~}~�}~~~~}~}}�~}}~~}}~~}}}}~¡}s}}}}}r}~}|}~}}}|r}}}}}~v|}}pp|}r}}}|p}|||v}||vpv}|pv|}pvpv||ppppv|ppp|ppppv}ppppp}pppppvpppppppooppllvvlpllpvllolopollplllllvllllllloollllllllllllllllllllllCClllllCCCCCCllCCCC?CCCCl>>ll>>??CC?>C>>>>>C=>l?=>>A>>>>>=>>>=>C====>>>==>===>=======>=========$=A======!===$===!==!$$$!=$!!$!$$!!==!=$!!!!!!!$!!!!!!!!!!!!!!!!!!! ! ! !!9q’æúüüúýúüüûúúýþúúúúúúúúúúúúúúúúßÓ;                                                                                                                                                                                                                                            ˜×òóúóú÷óóúóó÷ó÷úóüÿþÿþÿþÿþþÿþÿûÚŸ�Ž~~}}~~~~}}~‘}}~~~~‘~}~‘€~~~~~¡¡~~~‘~~}~~�¡¡¡~~~}}~}~~~~‘¡¡¡¡¡~~~~�‘‘‘‘‘‘~‘¡‘���~¡¡¡¡¢¢¡¡¡¡��‘¡¡~‘¡¡¡¡¡‘‘¡¡‘‘¡¡‘�¡¡¡‘‘¢¦¡¡‘¡¡£¡¡¡¡¡¡‘‘¡¡‘££¡‘��¡‘¡¢¡¡�‘¡¡¡¡¡¢¡¡�‘¡¡¡¢¡¡�¡£¦£¡£¡£¢‘¡‘¡��¡¢¢¡¡¡¡�¡¡¡¡¢¡¡¡¢¦¢¡‘¢£¢¢¡¡¡¢¡¡¢¡¡¡‘‘�‘¡¡¡‘¡¡¡¡‘¢¢‘�‘¡¡¡¡¡¡‘�~‘¡‘��~��¡¡~‘~~�¡¡¡‘‘¡¢¡¡¢¢¡~~¡¡��¡‘~~~~~~}~�~‘¡¡¡¡¡¡¢¡~}}}~‘‘~�‘¡‘}}~‘‘¡¡‘~}|}}}~}}~}}}}}}}}}r}~}}}}}}}~}r}}}}}~}s|}~}}r}}~}}}}p}}}}}}~}w}}}}}|}|pv}|}}|ppp|}}}v|}}}}vp||pppv|vpppvvp|p|vplppv}v|vvvpplllllpoppppovvpvplpplpplovolollllllppoolllloppplll>llllC?lllllllllllC?CClllC>???CCCllC??CClC>>CC>>CC>CC>>CC>>>>>CCC>>>C>====ACCA=>=========>>>>>=======>==========$$=========$!$=$!$===$!!==!!!=!$$!!==!!!!$!!!!!!!!$!!!!!!!!!! !! !!   =�¥õüüûüúýúûüýúÿýúúúúúúúúúúúúúúúõàž!                                                                                                                                                                                                                                      xÓè÷óóóóú÷óóúóúó÷óúÿÿþÿþÿþÿþÿþÿþé��}~~~~~~~}}}~‘~}}�~}~~~‘��~~~~�~���~‘‘‘}~~�~¡�‘~~~�~}�¡‘~‘‘‘¡‘¡~‘‘~~¡‘�~¡¡�‘¡¡�‘��‘¡¡¡¡¡¡‘¡¡‘‘¡¡¡��‘¡¡¡¡¡¡¡¢¢¡¡¡¡‘‘¡¡¡‘¢¢¡‘¡¡¢¡¡¡¡‘¡¢¡‘¡¡¡¢¡¡¡¡¡¡¡¢¢¡¡‘‘¡¡¡¢¡¢¡‘¡‘¡¡¡£¡‘¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢£¡¡¡¡¡£¡‘¡¢¡¡¡¢¡¡¡¡¡¡¡¢¡‘‘‘¡¡¡¡¡¡¡��¡¢¡‘¡£¡�¡¢‘~‘‘¡¡¡¡‘�¡~¡¡‘‘‘¡¡�~¡¡~‘¡¡¡¡¡‘�~‘‘~}���¡��‘‘�~~�~‘‘‘‘~~¡¡~~~~~~��‘‘�~~~~~~~�‘~~}}~‘~}~}}~~}}~}}}}}�~s}}~s|~}}}}~}}}}}}}}~|}}}}}}}vp}}|v}}}r}|}}}}}vs}}vr}|}ppp}}rv||||vp}|ppppv|vvppv|pvpvpppppppppvpppoplppoppppppoppppvllooopoloppplllllllllplllllolllllllllllCCllllllCCllllCCCClll?ClC?CCCClCCll>??>ll>>?CC=CC>CCCCA>C>CC>A>CA>=>>>>>>>===>===>>==>=>>==========>=======$========$===!==$!!!$==$$!$=$$$$!!!$$!=$!!!=!!!!!!!!!!!!!!!!!!! !!! !!! ?¢ÖúûúüúýúüüúüýþüúúúúúúúúúúúúúúúñÚ”                                                                                                                                                                                                                          BÓß÷÷úóúóó÷úó÷ó÷ó÷úüÿþÿþÿþÿþÿýÿþõª�}s}}}~�~}~}}~~~~~~}}}~~}~~~}}}~~~‘‘~�¡¡~~~~}}¡‘‘¡¢¡�‘‘~~�~~�~~¡¡‘~¡‘¡‘~‘¡~~‘¡¡¡¡�‘‘‘‘‘‘‘¡¡¡¡¡‘¡‘‘¡¡¡¡�¡£¢¡¡¡¡‘‘¡¡¡¡¡‘�¡¢¢¢¢¡¡£¢¡‘�¡¢£¢¢£¢¢¡‘¢¢¢££«¢¡¢¡¡‘¡¡¡¡£¢£¢¡¡¡¡£££¦¢¡¡‘¡�‘‘¡£¢¡¢¢¡¡¡¢¢¡¡£¡¡¢¢¢¢‘¡¡¡‘‘��¡¡‘‘¡¢¢¡¡¡‘‘¡¡¢¢¢¢¡‘¡¡¡‘¡‘~¡¡¡¡¢¡~~¡¢¡‘�¡¡¦£¢¡‘¡¡‘€‘¡££¡¡‘¡‘�~‘‘�‘�‘¡¡�‘¡~�¡¡‘‘‘¡¡‘�~~‘~~~‘~~¡‘~‘‘‘‘�~}}~}~}}}~~~}~‘‘�}}‘‘~~}~~}}�‘‘~~}}~~}}}}}}}�~}}}}|}p}}~}|pp||}p}}rv}}}prpp}}ppr|}pv|pp||v}}}v}}pvp|vvpp|}}pppv|pppppv|ppppp|vpolopopppppvppvvvppoooppollplpllllllppllllllllllpplllllollCClllolllllllllCll?ClCCC??CCCClll??lC>>>>?Cl?C?>>CC??C>>>>C?>>>>>=>=?>C>>>C>======C>>CC>=>=========>>==========$=====$=$==$=======$$$!$==!!===$==!!!$!!$!!!=!=!!!$!!!!!$!!!!!!!!!!=!!!!!!!!!!!!!!!!   !!q’Ùúüüúýúýúûüúýþüúúúúúúúúúúúúúúúè×]                                                                                                                                                                                                                                                   Ó×óó÷óóóúóó÷óúóúóóúÿÿþÿþþÿþÿÿþÿýä��~}}}}}~~~}}~}~}~~~~~~~~‘‘~~~}}~~~��~~‘~‘‘~~~‘‘�‘¡‘~�~‘‘‘~�¡‘�‘�‘�‘��‘�¡¡‘�~~¡¡‘�‘‘�~‘¡¡¡¡¡¡¡¡‘¡�‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡¡¢¡¡¡¢¡‘¡¡¡¡¡¦¢¡¡¢¡¡¡¡¡¡¡¡£¡¡¡¡¡¡¡¢¢¡¡¡¡‘¡¢¡¡¡¡¡££‘‘¢¢¢¡¡¢¡¡¢£¡¡¡‘¢¡¡¡‘¡¡¡¡¡¡£¢¡¡¡¡¡¡�¡¡¢¢¡‘‘¡¡�‘¡�¡¡¡¡¡¢‘�¡¡¡¡‘~¡¡¡¡¡~‘£¡�‘¡¡�‘¡‘‘‘~‘¡¡‘‘‘�¡¢‘~‘‘‘‘‘~�‘‘‘�~�¡‘~~~~~~¡¡~�~~~~~~~}~€~�~~~~}}~�~}~~~~}}}~~}~~~~~}}}}}}s}~}}}}|}~}p}}}}~}}|}|p}}}}||}|}}}}pp}|}p}}|}}vv}|p}}}|v}|v|p}vvpv}}vvv|ppvvppv|pppppppppppvpppvpppppppppoollvpplolpvllllopppoolllolllllpllllllllllllllllllllllllCCCClClC?lllCCllCCCCCCCC>CCCCC?>>CC>?>??C>C?>lC>>=>>>>>C>>>C>>>>==>>>>C>=>>=>===>=======================$!====$===$=$!$$$!!===!!$$$$!!$!!!!!$!$!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!  ! =Žªõüüûüúýúüüúüþþúúúúúúúúúúúúúúú÷àÓ@                                                                                                                                                                                                                                      ›Óñ÷ó÷úóó÷úó÷óóóóúüÿÿþÿþÿþÿþþþýýè�Ž}}}r}}}}}~~��‘�}~~~}}~~‘�~�~‘~}}}~}}~~~~~~�‘‘‘¡‘‘~~~~�‘‘~‘£¡‘‘‘¡‘~~~~¡¡¢¡‘�~�‘‘¡¡¡¡‘¡‘‘¡‘‘‘¡¡¡‘~‘¡¡¡¡¡‘‘‘��‘‘¡¡¡¡‘¡¡¡¡¡�¡�~�‘‘¢¢¡¡¡‘���¡¡¡¡¡¡¡‘‘¢¡‘�¡£¢¡¡¡¢¡¡£¡¢¡¡¡‘‘‘��‘¢£¢¢££¢¡¡¡¢¢¡¡¡¡‘¡£¢‘�¡¡¡¡¡¡¢£££¢‘��¡¡¢¢¡‘‘£¢¡¡¡�¡¡¡¡¡¡¡¡‘¡�¡¡‘‘�‘¡¡¡¡¡¡¡¡‘¡��¡‘�¡£‘~¡¡‘~~‘��¢¡~�‘��‘~‘¢¡¡¡¡¡¡~}�~~��¡¡¡‘‘‘~~}~~‘~}~}~~}~~‘¡¡¡¡‘~}~}}~‘~~~~}~}}}�~~|}~~~~�~}~~}}~}}}r}}�}}}~}}s}r}~|p}s~}}}~}}p|}}}||v|vv|vpp}}|vv|vprv|||ppprvpv|prvpp|}}ppv}vppppoopvppppllp|plppppopppplpplpplpolpplllllllpoppolllllvplljlllpolClllllClllCCCCCClCllllllC>ClCClCC>>CC>>>>?>?ClCClC>>?>=>>>C>CC>C====>===>>>>=>>?>A>>=====>==>CA=>=?==$$=>>A===$=========$====!==$!!===$==!!$!!!!!=$!$!=!!!!!$!!!!!!!! !!!!!!!! !!!! !!!  ?�Óúûüüúýúýúûüüþþúúúúúúúúúúúúúúúõà�!                                                                                                                                                                                                                                           ]Óæóúó÷óúóóóóúóú÷óúþÿþÿþÿþÿþÿÿÿÿõª�~}}}}~}}}~~~~‘~}}�~}}~~~~~~‘~}}~}‘¡}~�‘~�~�~�‘‘‘~‘¡���~�~‘¡¡¡‘‘¡�‘~��‘‘‘¡¡‘‘‘�¡¡‘�¡¡¡‘�¡¡¡‘�¡¡‘~¡¢¡¡¡¡‘‘‘‘¡�‘¡¡¡¡¡¡¡¡¡¡¡‘¡‘¡‘¡£¡‘¡¡¡‘¡‘‘¡¡‘¡¢¢�¡£¡‘¡¡£¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡�¡¡¢¢¢¢¡£¢¡¡‘¡¡¡¢¢¡‘££‘‘¡¡¡£¡¡¡¡¢¢¡¡‘‘¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡‘¡�¡¡¡¡¡¡¡¡¡�¡¡‘¡�‘¡~¡¡‘�¡¡¡~~¡‘‘¡~~¡¡‘¡‘�‘¡‘¡¡‘¡¡~~‘~~‘‘�‘‘‘~~‘�~~~~~}~�~�}~~~��~~�~}~}~~�~}~~}~~}}~~}}}}}~}~}}}}}}~}}}}}}}}r}~}}}}}s}}}p|}}}}~}s}||}||vvvr||}|p}}|vr}p}}}v}}pvpp}}ppv|ppp||vvvp|ppppppppppoppppvvppppopllpppopvooploolppollopllovollllplllpllClllplllllllllCllCllClllCllllllC>>?ClllC??CC>>>?>CCCCCCl>>CC>>>>?C>>AC>=>=>C>=>>>=>>>=>A>>=>>>===>=>A>=========================$$===$$==$====$$!!!$$!$!!=!!$!$!!!!!!!$!!!!! !!!!!!!!!!! !!!!!!!! $s’æúüûúýúýúüüüýþüúúúúúúúúúúúúúúúèÙƒ                                                                                                                                                                                                                                                       ;ÓÙóó÷ó÷óóúúóó÷óóóúüÿÿþÿþþÿþþþþþýä ¡�~~~~}}~}}~}~}}~‘�~~~‘~}}}~‘~~~�¡‘}}~‘‘‘‘‘�~~~~~‘¡‘‘‘�‘‘~�~‘¡¡~~‘~~~‘�~‘¡¡¡¡~�‘��¡¡‘‘¡‘‘¡‘~�¡¡~‘¡¡‘‘~‘¡¡¡‘¡‘‘‘¡¢¢¡¡¡¡¡�‘¡¢¢¢££¡¡‘¡¡¢¢¡¡¡¡‘¡¡¡‘�¢£££¡¡¡¡¡�‘¡¡¡‘¡¢¡¡£££¢¡¡¡‘‘¡¡‘‘¡¡¡¡¡¡¢£¢��¡£¡���¡¡‘��¡¡¡¢¡¡‘‘¡¡¡��¡¡¡¡¡¡£¢‘‘¡¡£¡‘‘�‘¡��‘�‘��‘‘‘�~‘¡�‘‘‘‘~~¡¡‘~‘¡~~£¢¡‘�~¡¡�‘�~�~~~~~�¡¡‘‘~‘¡�~}~~~�‘~�‘‘‘‘‘¡¡¡¡~~‘~}}}}~~}~~~~~~}}}~~~~~‘~}}}}}}~~~}}~~}~~}}~}}}}||}}}}}}vp}~}r|}rv}}}}}p}}}}}}}}}}ppprppvpp|vprv|pppv}vppp|v|vpllp}|pvvpppv|ppp}}vpppplppppollppvvvpllppvvppllpllpploplloplppllllClllpll?llllllllllllllpoC??ClC???Cllll>CCClllCllC?>?C>>CC>>CCC>?CC>=>>>C>>>AC>==>C>A>>>=====?C=>=>=====>>========$$=>===$$=!======$=$!!$=$!==!!!!$$=!$!!!===!!$!!!!$$$$=!!!!!!!!!!!!!!! ! !!!!! !!      =¢¬ùüüüüúýúýúûüýþúúúúúúúúúúúúúúúúèÓZ                                                                                                                                                                                                                                          Ó×óúóúóúó÷óúóóú÷úóüÿþÿþÿþÿýÿþÿþÿí¥Ÿ�~~~~}}}~}}~~~}~~~}}~~‘~}~}~~‘}~~~}}‘‘�~�~‘�~~~~‘‘��‘�‘¡‘~�‘¡‘~‘¡~‘‘‘~~¡¡‘‘‘�‘‘‘¡¡¡‘¡‘~‘¡‘‘¡�¡�¡¡¡‘��‘¡¡‘¡¡¢��¡¡¢¡¡¡¡¡‘�¡¢¡¡¡¡¡¡‘�¡£¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡¢¡¡¡¡¢£¡¡¢¢¡¢¡¡¡�¡¡‘¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¢¡¡�¡¢¡‘¡¡¡¡¡‘¡¡¡¡¡‘¡‘‘‘‘‘‘‘‘��¡¡��‘‘��‘¡‘~��¡�‘¡¡�~¢¢~~‘¡¡‘‘�‘‘‘�~�~~‘�‘¡¡~‘¡‘~~~~~‘�~‘¡~~‘‘~�‘�~~‘‘}}~��~}}~~}~~}}}~~~~~~~}~r}~~}~~}}}}~~}}}~~}}}v}}}}}r}}}}}~}pp}}}}|}}}|}|r}|}}}v||ppvp}pp}|ppp}}|vrp}pp|v}|pppppvppv}pop|popp|}vpppolpppppllppppppllppppppllopllpplllllpllolllllllllllllllClllllClllllllClCCCC>?ClllCClCllClCCCC???>C>CC>?CCC>C>CC>>>=>C>>>>>==C>>>>>>>=>=>>>>=>=>>===>>========================$!===$$$$$===!!!!$!!!=!!!$=!!!$!!$=!!$!!!!$!!!!!!! !!!!!!!  !!!!! !  o¢Úúýúûúýúýúüüüþýúúúúúúúúúúúúúúú÷àÓB                                                                                                                                                                                                                                             ”Óñó÷ó÷ó÷÷óó÷úóóóóúþÿýÿþÿþÿþÿýþþú¬�s}}}~}}}}}}~~~}~}}~~~~¡‘�~~~‘�}~~‘~~‘‘~}~~‘‘~}~~~~~~~~~‘‘~~~~�¡¢¡¡¡¡¡�~�‘~~‘¡¡‘‘‘~~�¡¡‘¡¢¢¡‘‘‘‘~‘¡‘¡¡‘¡¡¡¡¢¢¡¡¡¡¡‘��‘¡¡�‘¡¡¡¡¡¡¡£¡¡¢¡¡¡¢¡‘¡‘�‘¡¢¡¡¡‘‘¢¡¡¡‘¡¡¢¡‘¡¢‘�‘¡¡¡¢¡¡¡¡¢¡¡‘¡¢¡¡‘‘¡¡¡¡‘¡£¡£¢¢¢¢¢¢¡‘‘‘‘¡¡¡¡¡¡‘‘¡££¡‘‘‘¡�¡¡‘�‘¡¢¢¡¡¡¡¡¡¦¦¡‘‘¡¡¡¢¡¡¡¡¡¡‘¡¡~~~¡‘~~¡¡~~¡~�¡€~‘‘‘¡¡‘‘~~}~�~~~‘‘‘¡‘~~~~‘¡‘~}‘~~}}}~}~�~~~~}~‘~~�~~~}}}}}��~}~}~}}~}~}}}~}}}}}~}}~}}rw}~}~}v}}}}p}}vp|v}}}}v}|vrvvp}}vpvpv}}|pp|}|v}vpppp|ppppppv|||vp}}pppvpp||ppvppvplopplppovpppplllplolppoppolllplllplloploll?lllppolllllloolCllolllllC?ClllCllllCCCCCCCCCCCC?>>CC?>>>>>>CC>>C>>>>>>lC>>=>C>==>C=>CA====>>===========>======AC>A>======$$=====$!!$==$====$$$!!$!$=!$==$===!=!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!  !   ! 9sªèüúüüýúýúýúûýþüúúúúúúúúúúúúúúúõÚ›9                                                                                                                                                                                                                                            ZÓæóóúóúóóú÷óóúóúóóúÿÿþÿþýÿþÿÿþÿþè’�}}~}}}~}}}~€~}~}~‘~}~‘¡}~~~�~}}~�~~‘‘~}~‘~�~}~¡~}~‘�}~¡‘}~¡‘~¡~�¢¢�~‘‘‘���‘¡¡�‘¡�~~‘¡¡¡¡¡‘‘‘¡‘‘¡¡‘‘‘¡‘¡¡¢¡¡¡¡¡¡¡¡�~¡¡¡‘‘¡¡‘¡¡‘¡¡£¡¡¡¡¡¡¡‘¡‘‘¡£¡¡‘¡‘¡¡‘¢¡¡¡¢¢¡‘¡£¡‘¡¡¡¡¡‘¡¢¡£¢�‘¡¡¢¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡�¡¡¡¡¡¡£¡¡¡‘¡¡¢¢¡�‘¡¡�‘¡¡�‘¢¦¡‘‘¡¡¡¢£¡~�¡¡¡¡£¡�‘¡‘¡¡‘�~�¡¡‘‘�‘�‘¡�‘¡�~‘¡¡‘¡¡�‘~~~~‘‘‘�‘‘‘‘~~�‘�‘‘~~�‘~~}~~}~€~~~}~~‘‘~}}~~~~}}~~~}~}}}~~~~}}}~}}}}}~}~}}}}}r}}}}r}}r}}}}}}||vvvr}}}}vvvppv}vvrpp}||ppv|||}|pppv|vp|vppppv|v|pvpppppvvvppppp}poploopvppvoppolloopppplppllplolloplClvllllllloollllllllollllllllllCClCCllCCllClCCC?ClClC>?CCCCCC?C>>>>CC>>C>?C?>ClC>>C>C>=>>C=>C>>=>>>>==>>=======A=========C>=====$=========$=======!$!=!!=$$!$$!$==!$$$$$!!!$!!!!!!!!!$!!!!!!!!!!!!!!!!!!  !! !! o�¬úüýúúúýúýúüüþþúúúúúúúúúúúúúúúúèÙz                                                                                                                                                                                                                                          "ÓÙ÷÷óóóóúóóúóó÷÷÷óüÿÿýþÿÿýþýþþÿýõÕ  �}~~~}}~~�‘‘~}}}‘~}}~}}~‘�‘‘‘‘~~}}~~}}‘‘~‘~~¡¡~}¡¡~}~~}~�¡‘��~~¡¡~~‘¡‘~‘‘¡¡�~‘¡¡¡¡~�‘¡‘�‘¡¡‘¡¡¡‘�¡¡¡��¡‘~~‘¡‘�¡¡¡¡¡¡‘¡¡¡‘¡¡¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¢£¡¡‘‘£¢¡‘�¢¦¡‘¡¡¡�¡¡¡¡¡¡¡‘¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢¡¡‘‘¡¡¢£¢¡‘‘¡‘‘¡¡‘¡¡¡¡¡¡‘�‘¡¡��¡¡¡¡¡¢¡¡¢¡‘‘¡‘�~¡¢‘�‘¡‘�¡¡¡€¡�¡‘~~�‘�‘‘¡¡‘‘~~‘~‘¡�~�~~~~‘‘‘‘�‘~~~~~~~~~¡�~}}~}~~‘‘�‘~~}}‘�~~}}~~~‘‘~~}}~~}~~}}}~�}}~}}}~}}}s}~~}|}}rv}}}|}|}}}}}|}}}}}}~}~}r}}}}prvr}|}rp}||}}}}}}|vpppp|}}|vpp|vppppvpppppppvppppvppplpvvppopopvv|pllpvpoopoplplllpvppplllplllpolollllpllCloolClCllllCClClCClllClllC?>?CllA>>?ClC>?lllCCCCCCCCCClC?>>Cl>==?>=CC>CC>A>====>==>>=>==CA==C>=======>===$=============$$====$!$=$=!=======!$=$$!!$!!!!!!!=!!$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!   =ŽªæüûúýýýúýúýúýþýúúúúúúúúúúúúúúúúæÓ]                                                                                                                                                                                                                                                             ›×ñóúóúóó÷÷óóúóóóúóüÿÿþþýÿÿÿþÿþÿþí¥Ÿ~}}~}~~~�~~�‘~}~�~}}~~~�~~}~‘‘}}~}�‘~~~~~~‘~‘‘~~‘~~‘~~~~�~~~‘~~‘~‘~‘¡‘~¡¡�‘�~�¡¡‘‘��¡¡�‘¡¡‘‘¡¡¡‘�¡¡¡‘�¡¡�‘‘�¡‘¡£¡¡¡¡‘‘¡¡¡‘¡¡¡‘¡¡¡‘‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡£¢��¡¦¡‘‘¡¡¡‘‘¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡‘¢¡¡‘¡‘¡¢¡‘¡‘¡¡¡¢¡¡¡¡‘�¡¢¡‘¡¡¡¡¡¡¡¡‘‘‘¡‘~‘£¡¡¡¡¡¡¡¡¡‘�~�¡¢¡‘‘‘€‘‘¡¡¡‘~¡‘~�‘¡‘~�‘¡‘�~~‘�‘‘‘¡~}‘¡~~�}�‘‘�~~�~~�~~‘~~~~}}~~‘‘~�‘~~}~�~~}~~€~~~~~}}~~}~~}}}~~}}~}|~~~}}}}~~}r}}}r}}}v}}}}|}}~}}}~}}}}}}}}}}}}}pp}}}}pp}}}~|v}}}}vvvv|pv||ppppppppvvpppppvppppvvvppppppvpppppvvpppopvppopololpplvppvppolplllolllpplllllllplllllCllllllC?CllCCCllllCC?>llC?>>ClC>CllCC>??CCCllCCll>=CC>=>C>>C?>>>l>==>=>>=>>>=>>>>>==>==================>===>===$!=====!===!===!$==!!!!==!!=!!!!!!!==$!$!!$!!!!!!!!!!!!!!!!!!!!!!!!!  !!   !?¢Óúúüýúúúüúýúýýþúùúúúúúúúúúúúúúúõßž;                                                                                                                                                                                                                                                   ]Óàóó÷ó÷úóóúóó÷úóó÷üÿÿþÿÿýþþþÿýþþõ¬���}~}}}}~}}~�~}}~~~‘‘~}}}~~}‘¡~‘‘~~‘~}~~�~}~}~‘~~‘‘¡¡‘‘¡¡‘‘¡‘‘~��‘‘¡‘~~‘¡‘‘‘~¡‘~~‘‘‘¡‘€¡¡‘~‘¡‘¡¡¡‘¡¡‘¡¢¢¡‘�‘‘¡¡¡‘‘‘¡‘‘¡¡¡¡¡¡¡�‘¡‘¡¡¡¡¡¡¡‘¡¡‘�¡¢¡‘¡¡‘‘¢¢¡‘¡¡¡¡¡�¡‘¡£¡‘‘¡¡¡‘‘¡¡¡‘‘¡¡¡¡¡¡¢£¡¡‘�¡¡¡¡��¡¡¡¡££¡¡‘‘‘¡‘�‘¡¡¡¡¡¡��¡¡�����¡¡¡‘¡¡�¡¡¢¡¡‘¡¡‘�‘¡¡~‘¡‘‘¡¢¡�‘‘¡‘‘�~~¡¡‘~‘�}¡¡‘‘~}�¡���}}}~‘‘‘~~~~‘‘~‘‘�~~~~~~}~‘‘‘~}~‘‘~}}~}~}}}~‘�}~~}}}~~}|}~}}}}}}pp}}}}~~}}}rv|~}}~}p}}|vv}}vv|pvv}}}}}||}}v|v}}vprvp|vpr}vp|vp|}}|||vv||vpvppppp|vpppppppoooopplloollppoppppploolllollloooollllopllloollllllol?lllCllllloolllll?llCCCllllCCllCl?Cll>?CCClCCC>>>?>>>CC>=>CC>CC>>==?=>CC>C>>>C===>======>==>>C>>=A=>=>>========!$=====$=$!$$===$$==!!==$===$=!!$==!$!!!=!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!    9s’æúüûüüüýûüúýúþýúúúúúúúúúúúúúúúúèÙ{                                                                                                                                                                                                                                                               ÓÙóúóúóóúóóóúóóóúóúþÿþþýÿþÿþýÿþÿþæ¢��}~~}s}}~}}~~}}}�~�~~~~}~~~�~‘¡~}~~~~}~~‘~}~�‘~~¡¡�‘¡‘�‘‘‘‘¡‘‘~‘¡‘‘~‘~‘¡‘�‘~‘�~~¡�¡¡¡�¡‘��‘¡‘¡¡¡‘‘¡¡¡¡¡¡�¡‘¡¡¡¡‘¡�~¡¡¡¡¡¡¡¡‘~‘¡¡‘¡¡¡¡¡¡¡¢¡��¢£¡¡�‘�¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡¢¡�¡¢¡�¡¡¡¡‘‘¡¡¡‘¡¡¡¡¡¡‘¡¡¡‘‘��¡¡¡¡¡¡¡¡¡¡‘�‘�‘¡¡¡¡�¡¡¡‘‘‘~�‘¡¡¡‘¡¡‘�¡¢¡¡�¡¢‘~�‘¡‘‘¢¡~‘¢¡¡‘~¡¡¡~~~~¢¡~~¡~‘‘‘¡~~~‘‘~~}~~~~‘�~‘‘~‘¡~�‘‘~~~~�~~~�‘�}~}�‘~}}~~}|}~~~�~~}}}}}}}s}}~~s}}}}|}}}|~~}p}}}p}¡}}|}}|}vrv}rp}}rpp}}}}}}}}r}||}pp|pp}}pv|vvvvpp}pp}}vp|vrvppppppvvpppppvvpoloppllpollppllppppppolollllplpopplplplllloopollllllCCllClllllllllllClClC??llllCCllCCCCll??lCClCCCC>>?C>>?CC=>?CCCC>>>=?>>C?CC>=>>>===>>===>>==A>=>>>===>================$==$!==$==$$==!!!$!==!$$=$=$=!!!$!$=!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!    !l ¬úýúüüûúúüúüüýþýúúúúúúúúúúúúúúú÷àÓY                                                                                                                                                                                                                                                               ”×èóóó÷÷ó÷úóóúóúóóúüÿÿýÿþÿýÿþÿýþþõ¬��}}}}}~~}}~}}}~~}~}~‘‘‘~}}~~~��}~¡�~~~~‘‘~‘‘~~~�‘~}~‘‘}~‘‘~�~‘~~�‘�~‘‘¡¡‘~�‘‘¡‘¡�~‘¡‘��~‘¡¡¡‘¡¡‘¡‘‘�¡‘�‘¡¡¡‘‘¡¡‘¡‘¡¡¡‘�‘¡‘¡¡�¡¢¡¡¡¡¡¡¡‘‘¢¡‘‘¡¡‘¡‘¡¡¡‘‘¢¦¢¡¢¡¡¡¡¡¡‘¡¡¡�¡¡£¡‘‘¡¡¢¡¡¡¢‘‘¡¡¡¡¡¡¢¢¡¡‘‘¡¡‘¡‘¡‘¡¡¡¡¡¢¡¡¡¡¡¡~‘¡£¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘‘‘‘‘¡¢‘�‘‘�~‘¢¡~�¢¡¡¡���‘~‘�~¡¢‘~~}�‘¡¡‘~¡¡¡¡‘~‘¡‘~~~�‘~}}}~~}~‘¡‘~}~‘~}}~~}}}~�‘~~‘}}~�~}}}}}r~~}}}}}}}~}}}~}}~~}}}}}p~~}v}}|p|}}p||}}p|}}}pp}v}|vvv|pppp}}}ppp|}vpp}}pvrvpppp}|pvvpvpv|vvpppppopoopppppv}ppvppop}vllololllllpppopplllllllllllCllllllCllllllllllllClCCCCllllllC?lCCCCC?lC>CC?CC?>CCCC>?>>>>C?>>??>>?>>>>CCCC=>>>>>A>=>C>=?>>>>=>>===>>=====================>==$======$$===!$!====$=$!=!!!$!$!=!!!!!!!$!!!!!!!!!!!!!! !!!!! !!!!!!!! !!!!!  =Ž¢æúüüûúüýüúýúýýýúúúúúúúúúúúúúúúúòÚ›;                                                                                                                                                                                                                                                                                @Óàóú÷óóúóóúóóóóúóóúþÿÿþþýÿþýÿþÿþþæ’��s}}}~~}}~}~}}~}~~‘�~~~}~~}}~~}~¡‘~�~~~~�¡¡~~‘~~~~~��~}¡‘}~‘¡�~¡‘‘~¡¡¡¡‘~‘¡‘‘¡‘‘��‘‘‘‘~¡¡¡‘‘‘¡¡‘¡‘~�‘‘‘¡¡¡¡�‘‘‘‘¡¡¡¡��¡¡‘‘¡¡¡¢¡‘¡¡¡¡¡¡‘¡¡�¡¡�¡¡¡¡¡‘¡¡£¦¡¡¡¡¡¡¡¢¡‘�¡¡¡¡¡¢¢¡¡¡¡¡¡‘¡¡¡¡¢¡¡¡‘¡¢¢¡¡¡‘¡¡¡‘‘‘¡¡¡£¡¡¡¡¡‘¡‘�‘‘¡¡¢¡�‘¡¢¡¡�‘¢¢¡¡¡‘��¡‘¡¡‘¡‘�~~�¡¡‘‘¡¡‘¡‘‘‘‘~~‘�¡¢‘‘~~~‘‘‘�~‘¡¡¡¡‘‘¡¡‘~~~‘~~~}~}~~‘¡‘~}~~~~}}}}}~~~�‘�~}}~~}}~}}}}~}}}}}}}|}~~}~~}}}}}}~s|}~}}}}|pspv}|p}}p}}}}p}rp|vrv}|ppppp}}ppv|}}vvrv}pvpppp|pvv|v|p|vvvpvvppppppoppvpppvvpppoppppplllplllpppoppoplll?lplllllllllllllllllollllCllC>?lCClllllllCClCCC>?CC?CC>?CC??CC>C?>>?CC?>C>>>>?>>C>CC>C?=>>==>>=>l>=>=>>=>C>============>================$=====$$!!=!==!===$!==$$$!!!!!=$!!!!!!$!$!!!!!!!!$!!!!!!!!! !! !!!!!!! ! !! ! $p¢­úúýúüüúüûüýúýþýú÷÷úúúúúúúúúúúúúèÓz                                                                                                                                                                                                                                                                  žÙò÷óúóóúóó÷úóúóóúúüÿüÿþÿýÿþÿþþþþúÓŸ�}}~~}}}~~~}}~}}~~}~}}~}~�}~~�~}‘¡‘‘~}~~‘‘}~~‘�~~¡‘‘~}~¢¡~~�~~}�‘~~�‘���~¡¡‘¡‘‘‘‘‘�‘¡‘~�¡‘¡¡¡‘‘¡¡‘��¡¡¡‘����‘¡¡¡¡¡��¡‘¡¦¢¡¡‘‘¡�~‘‘‘~¡¡¡¦¢¡‘�‘¢¡¡‘‘¡‘‘¡¡‘‘¡�¡�¡£¡‘¡¡¡‘¡�‘¡¡¡¡��¡¡¢¡‘‘¡£¡¡��¡‘¡¡¡¡¡¢¡¡¢¡‘�‘¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¡¡‘¡‘‘¡~�¡¡‘‘¡‘�~�~��‘¡‘‘¡‘¡‘‘�~‘‘~~‘�‘¡~~‘~‘¡~~~~‘‘‘‘‘~��~�~~���~�~~~‘‘‘�~~}~}~~~~~~€~~�‘‘‘‘}}~~}~~}}}~}}~}~~~~}~‘‘}}s|}}~~}s}r}}}~}}v}}||}}}}}p~}}}||}}|}}}pp}}|pp}p|}}|}pp||vvp||pp||v}p|vppp|pppppvpppp|pppppppppppoppoooppppllloopvvllppollplplplllpollopoolllllloollllllllllllllCCllllCCCClllllllCCCCClC?lCCC>>Cl>CC?>>CCCC>>?=>?>>>=>>>>A=>>A==CC>>====?>===C===>>====C======$==$================!=$!=$$=$$!=$$!!$=$$!!!!!$!!!!!!!==!!!!! ! !!!$!!!!!! ! !   =Žšèúýúýúûüüüúúüþþú÷úú÷úúúúúúúúúúú÷àÊB                                                                                                                                                                                                                                                                          zÓèó÷óúóóóúóó÷óóúóóúÿÿþÿþÿþþþýÿþÿþ襟�~~~}~~~~~~}~}}}}}}}}}~}~~~€~~}�‘‘‘�}~¡‘�}}~‘~}�¡‘¡�}~¡¡‘~~~�~~‘~~�‘~~‘¡¡¡‘‘‘¡¡‘¡‘‘‘‘~�‘‘‘¡¡‘‘¡¡¡~‘¡¡‘�‘‘~~¡¡¡�‘¡~‘¡¡¡¡¢¢¡¡‘‘‘~�¡‘�‘¡¡¢¢¡¡�¡¡¡¡�¡¡��¡¡¡¡‘‘¡¡¡¢¡¡¡¡‘¡¡�¡¡¡¡¡‘‘‘¡¡¡¡¡¡¢‘¡��‘¡¡¡¡¡¡¢££¢¡�~¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘��‘�‘¡¡‘¡‘�‘¡~~~~‘¡��¡¡¡¡‘~~‘‘‘‘�‘~‘�~¡~~‘~~�~‘¡‘�‘‘~‘~}~�~~~‘‘~~~�‘‘‘�}}~~~~~~~~~}~‘�~¡¡}}}}}}~~}}~}}}~‘�~}~~‘�}}}}}}}}}}|}}}}}}r}|}}r}}}}}}v}}}|s}}}}}}pp}}}pppp}}}}pvv||vppp}ppvp}}pp}vpp|pppppppplppvvvvppplovplppllpppppllpppppvplopollllllollovollpplollllClpllllllllllllll?llllCClllClllllll??CC?CCCCCC?>>CC?CCC??>CCC>>>>=>>=>>==>>>>>>>>=A>CC==>C>=======>>>>=$=A>=========$==$$====!======$==$!!=$$==$!==$!=$!!!!!!=!!!!!!!!!=$!!!!!!!$!!!!! !! q‘Ùúýúýúüüûúüüüýþý÷ú÷÷ú÷úúúúúúúúúúñÚ”!                                                                                                                                                                                                                                                                                ;ÓÙó÷óóúóúóóúóúóóóú÷üÿþþþþþÿþÿýþþþúä¢�}}}~~}}}~~}}}~~~~~‘‘€‘~~~‘~~}}~~‘‘~~‘‘~~~~‘‘‘}~‘‘¡‘}~‘~~�~~¡‘‘‘~~‘‘~~�¡‘‘‘~‘‘‘¡¡‘‘‘�‘‘¡�~~‘‘��¡¡‘‘¡‘‘‘¡¢¡¡¢¡�‘¢£¡‘‘‘‘‘¡¡‘�‘¡¡‘¡¢¢‘¡¡¡¡¡¡¡‘‘¡¡‘¡¡£¡~‘‘¢¦‘¡¡‘¡¡¡¡¡‘¡¡¡~‘¡¡¡¡¡¡¡¡¡¡‘�¡¡¡¡¡�¡¡¡¡‘~‘¡‘‘‘¡¡�‘¡‘‘¡¡¡¡¢¡‘~‘¡‘��¡¡¡¡¡¡‘‘�~‘��‘¡¡¡‘¡¡¡¢¡~�‘‘���‘¡��‘‘‘‘‘‘�‘‘‘‘~~‘‘‘‘�~�‘~~~~‘‘~~~¡‘~~}~~~~~~~~~~}~‘~}}}~~}}�‘~~~}}}}~~}}}}}~~}}}}}~~}}~}~}}}}}}~~}}|}}}s|}}|vv|}}}||}p|v|}p}}|}|}vv}}|vv||pp||}|v}vpppp|}ppp||pppppp|vvpppvpppppppplv}pppvvplpppplpvppolpllpooppplloolllolloplllllollClolll?llllCCllC?llClllCCC?ClClCll?ClC????CClC?ClCC?>>?C>>>C>?>?CCC>>C?AC>>>A>>==>>C>=A>>=>==>>===>=A=========>=>=$===$=============!=!$==!!$$$!$=$!!$$!!==!!=!!==!!!!!!!!!!!=!!!!!!!!!!!!! ! ! j ªõüúýúýúûüýúûüýþúú÷úú÷ú÷úúúúúúúú÷æÓ_                                                                                                                                                                                                                                                                            �×òóúóóóóúóó÷óóú÷óóúÿÿþÿþÿþþýÿþÿþÿõ¬�}}}~~}}}~~~~~���‘~‘��‘~~~~~~~}}~‘‘‘~¡‘}}�~‘¡‘}}¡‘¡‘~~~~~‘}~¡‘¡‘~~¡‘~~‘‘¡‘¡¡‘�‘‘¡¡‘~~�‘‘‘�~~�‘�¡¡‘‘¡¡~�¡£¡¡¡¡‘¡¡¡¡¡‘‘¡�¡¡‘~‘¡¡�¡¦¢¡¡¡�¡‘¡¡¡¡¡¡��¡¡¡¡~¡¡¢‘¡¡�‘¡‘¡¡~¡¡‘~�¡¡¡¡¡¡¡¡¡¡~~‘¡‘‘¡¡¡¡‘¡��‘¡¡¡‘¡¡‘‘‘‘‘¡¡¡¡¡¡¡‘�¡¡~‘¡¡¡¡‘¡¡‘~�~~‘¡¡¡‘¡¡‘¡¢‘‘�~���~¡¡‘~~‘¡¡¡¡¡~¡‘~~‘¡‘~~~~‘~~~~‘¡‘~}‘‘‘~~~‘‘~~}~~~}~}~~‘‘~~~}}}~~~}~�}}~�}r}~~~~‘~|}s}}}~~}}}}vr}}s}~}}}}}}}|~}vrp}|}}}rp}}pp}v||}}}vr}}}}pp|vppvpv}}|}v|pp|pppvpvppvppppppppvpppppvvppppvvvppppppppppppppllolopplpvpollllllolllllllllllClllllllCCC??>llllllllllC?CCllllCCCCCCCCC?CCCCC?ClC>>>?CC>>>C?>C>CCCC?CCCC>>>>>==>=>C>=>A>==>=>C>==A>>>======$=====$===$$=======$$====!!!=$!!!!!!!==$!$!!==$==!!!=$!!!!!!!!!!!!=!!! !!!!!!!!!!       =Ž¥àüúýúýúüüúúüüýþýú÷ú÷÷ú÷úúúúúúúúúõàž@                                                                                                                                                                                                                                                                                       _Óßó÷÷úóúóóúóúóóóúóúüÿþþþÿþþÿýþþþýýæ’ŽŽ}}}}}}~}}}}}}}~~~~~~}}}}~~~�~}~~~~€‘~~~}�‘~~‘¡~~��‘~‘‘‘}}��‘‘~~‘‘‘‘‘‘�~‘‘~~�‘‘‘¡�¡‘�‘�‘¡¡¡¡‘‘‘��‘¡‘�‘‘‘�¡¡¡¡‘�¡Ÿ¡¡‘‘¡¡‘‘¡¢¡‘‘¡¡‘‘¡‘��¡‘¡¡¡¢‘‘¡‘¡¡¡‘¡¡¡¡‘¡¡¡¡‘¡‘¡£¡¡¡¡¡¡¡‘¡¡¡¡£‘‘¢¢¡‘¡¡¡¡¡¡¡~¡¡¡¡¡¡‘‘¡¡¡¡¡‘‘��¡‘¡‘¡‘��‘‘¡¡~�¡¡¡¡‘�¡¡‘���~~‘¡¡¡‘~‘‘‘~�¡¡~‘¡‘�‘�‘~‘�‘¡‘~~�~~}�¡‘~‘‘��‘~~~~~‘~~~~}~‘‘}}~~}~~~~~~}~}~}~}~‘~}}~~}}~~}}~}}}~}}}‘}}}}~}}}~}}}}}r}}}}}�}r}}}|v~|vp}}vv||||}}pp}}p}vvvpp}||v}|vvpp}pppv|}pppppv||vppppvvppvpppppppolopploppppllpollppppllppllllllppoloplllllpoloopllollllCllllllllllllCCllCCCCClClC?CCC?C??CCCCC?C?CC>>CC>?>>CC>>>>>>>C>>>>>=>=>>>C>==>>>>>C====>>==>>======>=>$=============$$==$$====!==$$!=$$$==!$!!!$=!$!!!!!$!!!!!!!!!!!!$!!!!!!!!!!!! !!!! o Õúúýúüúýúûüüýúýýú÷ú÷úú÷ú÷÷úúúúúú÷è×z                                                                                                                                                                                                                                                                            žÙòóóóóóú÷óóóúóúóóóúÿþÿþþýÿþÿþÿþÿþúÕ��~}}}}~~}}~~}}}~~~}}}~~~}}}~‘~}}~~~�‘‘‘~}�~~‘‘‘~}~¡‘�¡¡¡~~�‘‘‘�‘�‘‘‘¡¡�}�‘~~~~‘‘‘‘¡¡‘�‘�‘¡¡¡‘~~‘‘�¡¡~�¡‘‘¡¡¡‘‘‘~‘¡¡¡~‘¡¡‘¢¦¡¡‘€¡‘¡¡¡~~¡‘¡¡¡¡¡¡¡�‘¡¡‘¡¢¡��¡¡¡��¡¡¡£¡¡¡¡‘¢¡¡¡¡‘¡¡¡¡¢¡‘¡¡¡¡£¡¡‘‘¡¢‘‘¡¡‘¡¢¢¡¡‘¡‘~~�¡‘���‘¡‘¡�¡¡~‘¡¡‘¡¡¡¡‘~~~~~‘¡¡‘‘��‘‘�‘‘¡¡¡¡�~~~‘‘‘‘¡‘~~‘�‘~}‘¡‘~‘‘‘‘‘~~}}�‘�~‘‘~~‘‘~~~~~}~~}~~}}}}}}~~~‘‘}}}}}}~}}|}~~~}}}�}r}}~~}}}}}}}}v}}~}}}}}}}~}svr}}v}|}|v||}p|pv}vpr}|pp|}pp|}vrpppvppp}}pppppp||vppv}vpvvppppppopooooppolpvpllplllpplllllpllllllppoolvlllllpoolpplplllllllllllllllCCCCCClCCl?>ClC???CC>?C?CllCCC?C?>>>C>>>?>C?=>C>==>C>>>=>>>====>C===>>=>>>>==>==>>====>=>=>================!==!$!$$=====!$$!===$!!!!=!!!!!!=$!!!$$!!!!==!!!!!!!!!!!!!!!!!! ?�šëüüúýúýúüüûúúýÿý÷ú÷ú÷÷ú÷úú÷úúúúúõàÇB                                                                                                                                                                                                                                                                                            _׿ó÷úóúóóúóúóóóóúóúüÿÿþþÿýþþýþþþþþõª���}}}}€‘}}~~}~‘~~‘}~‘�~~}~~�~~‘�~~~}~‘~}}~~‘~~~}~¡‘~~~~~~‘‘‘‘‘‘�~���‘~}�¡‘¡¡‘‘�~~‘‘‘¡‘~�‘�‘¡‘¡¢¢‘��¡¡‘�~¡¡‘‘¡¡‘�¡¡��¡¢‘~¡¡¡¡¡�‘¡‘¡¡‘¡¡¡¡¡�¡~�¡¡¡¡¡�¡¢‘‘¡�‘‘¡‘¡¡‘¡¡‘‘¡¡¢¡¡�‘‘¡‘¡‘¡¡¡�¡¡¡¡‘�¡�¡¡¡�‘¡¡¡‘¡‘�¡¡¡‘¡¡¡‘¡‘‘¡¡¡‘‘‘‘¡¡¡�~¡¡‘¡‘‘¡‘‘¡�~�~¡‘�‘¡‘�‘‘‘‘~‘�‘~~�~��~~‘‘‘‘~~‘¡�~�~�‘�~~}~~~~~~‘}~~�~‘~~}}~‘~~}}~‘~~~~~}~‘~}}~~}}~~}s}}~~}}}~}|}s}}~}}}}}}r}}|}}}s}}p}}}}}}}|p|vps}|vv}||}pp}}pp|}p|}}p|vvppp|||vpvvppv|vpppppppoppppvvpvppppooppplopolpvpllvvlppllopploplllpoopollllllllllCClllCllolllll?CCCClClllll?ClClClCCCC>?CCCCCCCCCCCC>=CCC?>>?CC>>CC>>C>>C=>C>>>=>>>=>>>==>=>>=====>=====>=============$$$===!=====$$$$!=$==!!=!!=!!===!!!!=!!$!!!$!!$! !$!!$!!!!!!!!!!!!!!!! >Ž’àüúûüúýúýúûüüýþýú÷÷ú÷úú÷ú÷÷úúúúúúèÙƒ                                                                                                                                                                                                                                                                                  ž×òó÷óóúó÷óóúóú÷óóóúüÿþÿþýÿýÿþþþþþþ襠�~}|}�~}}~�~~�~~��~‘‘~}~~}~~����~~~}�~}}}~�~~}}}‘¡‘~}~}~¡‘~‘~�~~~~‘‘~~~�¡¡¡�~~~~~��‘‘���~¡¡¡¡¡¡¡‘�‘¡‘‘‘‘‘‘‘‘¡¡¡¡‘��¡¡¡~¡¡¡¡¡‘�‘‘¡¡¡¡¡¡¡¡‘‘�‘¡¡¡¡¡‘�¡�‘‘~�¡¡‘¡¡‘¡¡¡�¡¡¢¡‘‘�¡¡‘�‘¡¡¡‘¡¡¡¡‘¡¡¡‘‘‘¡‘‘¡¡‘‘¡~�¡¡¡¡¡‘¡¡‘~¡¡¡¡�‘‘�¡‘‘‘‘¡~¡¡‘¡¡‘~~�~~‘¡‘�‘¡~��~~~~‘‘~~~}~~~~‘¡‘~}~¡¡‘~~~‘~~�~~~~}~}~~~}�~‘‘�~}}~�~~~~~�~~��~}}~~}}~~}}�~}}}}}}r}~}}}}}}}}|}}|p}}}}vr}}||}p}}}}}}|}vr}pv}}pp|}r}pv|}}p}}vp}}|pppppvv}}|p|||ppvppv|pppppppppppp|vpppoppppllpolovpllvppvppllopppppllppllpolpllllllCllClllllllClCCCCC>lllClllCCCllCCCllCCC>>ClCCCCCCCCC>>CCCC==>lC>>CC>CC>CCCAC>>>=>=>>CC>>====>===========>A===$$=>===========$9!$====!!!!!$!==!!!!=======!!$!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!! !$q’Úúüüüûüúýúüüúüýþý÷÷÷÷ú÷÷ú÷úú÷÷úúúõàÊB                                                                                                                          !T                                                                                                                                                       _Ùæóó÷ú÷÷ó÷úóóóóúóúóüÿþþþþÿþþþþþÿýþüä¢��}s}~~|s~~}~~}}~}~~~}~�‘~}~~}}~~�‘~‘~}���‘~~‘~�¡�‘‘~~}~¡¡~‘~~‘�‘‘��‘‘¡‘‘¡‘‘‘‘‘��‘‘‘¡‘¡�¡¡¡‘‘~�¡¡~��‘¡¡¡¡‘‘¡‘‘‘‘¡‘‘¡¡‘~‘¡‘¡¡�‘‘‘¡‘¡¡‘‘¡¡¢¡‘~¡¡‘‘¡¡¡¡‘¡¡‘¡¡¡‘‘¡¡¡¡�‘¡¡‘‘‘�¡¡‘¡¡�¡¡‘‘¡¡�‘¡‘¡¢¡�¡¡¡�‘¡¡¡‘�¡‘‘��‘¡¡¡�‘¡‘¡‘~~�‘‘�¡¡¡¡‘~~~¡£‘‘‘¡‘~‘¡‘~~‘‘¡‘~�‘‘¡¡~~~~‘�‘~�‘~‘‘‘~~~‘‘~~}~¡�‘~}}~~‘~}~~~~~~~~~~}~~~~~~}}}~}~~}~}~}}s}~~}}~}~~}|}}}}~}}|||~~}p}}}~}v}}}}}}||}}}pv}}}}|p}}vp}}}}vp|v|}v||pv}pv}||pprvpppppppppvvvpvpvppppppppvvploopppopppvplpppllpppolplpllpllllllplllpovllllllppolllllllllCllllCllllCllCCCCCCl?CCCCCll??CC?>??>>?CC?CCCC>>?C>=>C>>>>>=>>>?>>>AC==>===>>>>=>==>==>=====>=======>==================$===$$$$$$$$$==$!!$=!!$=$!$!$!!!!!!!! !!!!!!!!!!!!!! !!!!!    !!o�¬õüúûüüúýúýúûüüþýú÷ú÷ú÷úú÷ú÷÷úú÷úúèÙƒ                                                                                                           @_Y@                                                                                                                                                             žÙòúóóóóúóóúóúó÷óóúóüÿýÿýþþþÿþþþþþþ÷Õ��}}~~}}}~~~}}}}}}}~~~‘~~}}}}}}}}~��~~~‘‘‘~~~‘‘‘‘~~�~~�‘‘‘‘‘~�‘~¡¡~~�‘¡‘¡‘�‘¡¡¡‘‘¡¡‘‘¡‘¡¡¡‘¡‘�‘‘‘���‘¡¢¡¡‘¡‘¡‘~~‘¡‘‘¡�~��‘¡¡¡¡¡¡~~¡¡��¡¢¢¢¡��‘�¡�‘¡¡¡¡¡¢¡¡¡¡‘‘¢¡‘��‘¡¡‘~‘‘‘�‘¡¡‘¡��¡‘�‘¡¡¡¢¡�¡¡¡‘‘‘¡¡‘‘‘��‘‘~‘¡¡€¡¡‘‘�~�~�¡‘‘¡¡¡‘�~~¡¡¡¡¡‘‘�‘¡‘~~‘¡¡~~~¡¡¡‘~~~�‘‘‘}~~‘¡‘�~~~‘‘~~}}~¡‘~}~~�~}~~~~}~~~‘‘~~}}}~~~~}~~~}}~}~}}}}}~~}}~}~~}}|rv|}|}}}}}}vr}~}~~pv}}}~~}p|}rpps}}~}|}}rpp}}}}|pp|}pp|pv}||}}}vpvppvvpp}pp|p}pvpppvvpppopvvppopppopppppvplppplpllollpppollllllllllllooplllllppolllllllllllCCllllllClCCCCC?ClCCCC??lll?>???CC?>>?CCCCC>?>>CC=>=AC>>>>>===C>>C>>========>A>=>=>>>===>>>==================$$===========!$=====$==$!$$!!$!!!!!==$!!!!!!!!!!!!!!!!!!!!!!!!! !! !!  !o�šëýúüüûúýúüúüüüýþú÷÷÷÷÷÷÷÷ú÷úú÷÷ú÷õàÊY                                                                                                                         !b��Z                                                                                                                                                                  x׿ó÷÷úóóúóó÷÷÷ó÷úóóüÿÿüÿþÿþþþþþþþþþõª�Žs~~}}~~}}}~~‘~}}~~~~}}}~€~~~~~~�}~~~~~~~~}~‘‘~~}~‘�¡‘~~~~~~��¡¡‘�‘~~~~�‘¡�‘‘~‘‘‘�‘~~��~�¡¡‘‘‘‘¡‘‘�¡¡‘��‘¡¡¡¡¡‘‘~‘¡‘‘¡�¡¡¡‘¡¡¡~‘£¡~‘¡¡‘‘¡‘¡¡¡¡‘�¡¡¡�¡¦‘‘¡¡¡�‘‘‘‘¡¡¡¡¢¡¡¡¡‘‘¢¢¡¡‘‘¡¡‘‘¡‘¡¡¡‘¡¡¡¡��¡¡¡¡¡‘‘¡‘��‘‘�‘¡‘¡¡¡‘~~¡‘‘¡‘‘‘‘‘~��¡¡‘���‘‘‘�‘‘~~‘‘~¡‘~�~‘‘~~�~~‘~~¡‘~~~�~~~~~�‘~‘�}~~~}~��~~}}}}~~~~}~}~~}}~}}}~~}~}~}~}}}}}}}}}}}}}}}s}}~~}}|r}}}}}}}p}~}p}}}p}}}}}|p}v|v}||p}p}}pv|p||vpppv}|ppvppv|vpppp|vppppppp|ppppppppppolppppplpvppppplolppplollplpvlolllloooolllllllllllplllllllCCllllllCCl?lllllClll?ClCCCCCCCCC>CCCC???>>CCC??C>>>>CC>>CC>>>>CC>=>?>>>==>=C=>=>=>====>==>====>=======A====$====>A==$==$=$===$!$==!$!!!$!!$=!!$!!$!!!=!!!!!$!!!! !!!!!!!!!!!!!!!! !!! !!!    ?�’àüúýúûüüúýúýúûüÿü÷ú÷ú÷ú÷ú÷÷ú÷÷úú÷úèÚ”                                                                                                                           !Y‚_T!                                                                                                                                                                  žÙòóóóúóóóúóóóúóóúó÷üÿþþþþþþÿþþþþþþþèš�Ž}~}}~~}~}~��}}}}~}}~~}}�‘~}}~}}~}}~~~~~�~~‘~~~}‘¡¡‘‘~~~~}}‘¡¡¡‘¡�}~~~‘¡¡‘~~~���‘�~~~~~‘¡¡‘~‘‘‘‘~~�¡‘�‘¡¡¡¢£¡¡‘~�¡¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡¡‘‘‘‘‘~¡¢¡¡¡‘‘¡¡¡‘¡¡¡¡‘¡¡~~~~¡¡£¡¡¢¡¡¡¢¡¡¢¡¢¡‘¡¡¡¡¡��¡¡¡¡¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡�����‘¡¡¡‘‘‘¡‘¡‘‘~�¡¡�~~‘¡¡‘‘~�‘¡‘¡�~¡¡�}¡‘}~~¡‘�~~~~‘~~‘‘}~‘~}}}~�‘�}~‘‘€‘~~~~~~~~~}~~}~}~~}}}}}}}~}}~}}~~~~}}rs}~~}}}}}~~}p}}~~~}vv}}}}}r}p}~|vvrp}}p}}}}v|}|pp}|v|vvv|||pp||pppvv|ppppvv|}|vppppppppvppvpoopppppppllppvvplopppovvppolppooooollpopllovooplpllllllllllllllCCll?looollllllllllollllllC??CllCC????ClC>>>>>CC>CC??>>>>>>>>C>>>>>CC>==>>>=>>=>>C==========>==>===>=====>>======!$=======!!!!===$=!!=!$$!!!!===!!!$!!!!$!!!$!===!!!!!!!!!!!!!!!!!! !!!! !!! !!!!!!!!!=}’Úûúýúüüûúýúýúüýþþú÷÷÷÷÷÷÷÷ú÷÷úú÷÷úõàÊ]                                                                                                                            !YT!                                                                                                                                                             ‚Ùæó÷÷ó÷úóó÷úóóúóó÷óúýÿÿýþþþþþþþþþþþýæª��}}}}}}}}}}~}~~~€}}‘�~~~~~~~‘~‘~}~~~~~~~‘‘‘‘~‘~~‘‘~��~~‘~}�‘~~�¡~~‘‘‘‘‘‘����‘�‘¡‘~‘¡¡~�¡‘��¡¡‘‘��‘‘‘¡¡‘‘�‘¡¡��‘¡¡¡¡¡~‘‘‘�‘¡‘¡‘�‘¡¡�‘¡¡�‘¡¡‘�¡¡‘�¡¡¡�¡¡‘¡‘‘‘¡¡‘‘¢¡¡¡��¡¡¡‘¡¡¡¡‘‘¡¡¡¡�~¡¡‘�¡¡‘¡¡¡‘‘‘�‘‘‘¡¡¢¡�‘‘‘~~¡¡‘‘‘�‘¡‘‘��‘‘‘¡¡‘‘‘‘‘�~‘~��‘~‘¡‘}~¡¡�‘~‘~‘~~~~�‘��~~~¡~~�~~~~~~~~~~‘‘‘€}~~}~~}}}}~~‘‘~}}}~~~}}}}}~}}}~~~}}}}}}|}}~~}}}}}}}}|}r}}}}w|}v}~}s|p}}}pv}}||}||v}|pp}pv||}p}pppp}}prvp|||vrpppppvvpvvppp|pppppppppvpopppppvpoppppppooplpppppoollpolplllvlllllplpllllllllollllllCClllllClCCCClllllC?llllCCCClCC>CCClCCC?ClC>?CC?CCAC?>>?>>>>>>>>>>>>A>==C>=>>>=>>C=>===>=====>>======>=======$$======$$======$$$$!$==!!$=!!$$!$=!$!!!!!!$!!!!!!!!!!!! !!!!!! ! !!    !!!=s’Öúüüúýúûüüúýúýúýýú÷÷÷ú÷ú÷ú÷÷÷ú÷÷úú÷èÙ”                                                                                                                              !                                                                                                                                                                  žÙòóóúóóóúóóúóóóúóúóüüÿþÿþþþþþþþþþþþý檟��}}}}}|}}}~~~~��~~}~~}~‘¡‘‘¡‘¡‘~}~~~}~‘¡‘�‘‘�‘‘~~�‘~~¡‘}~~}}~¡��¡‘¡‘~~~�~‘¡~‘¡‘‘‘¡¡‘‘‘‘�‘¡¡�‘‘~~~‘¡¡‘‘¡~~‘¡��¡¢¡¡¡�~‘�~~¡¡¡�~~¡¡‘�¡¡¡‘¡¡¡‘‘¡�~¡¡‘‘¡��¡¡¡¡�¡¡¡¡¡¡‘~��¡‘~~~¡¡‘‘¡¡�¡~¡¡¡‘‘‘�‘¡¡‘‘~�‘��¡¡¡¡¡¡‘�~~~‘¡¡¡‘~~¡¡¡~‘¡‘~‘¡‘~~~‘~~�~~}��‘¡�}�¡¡‘¡��~‘�‘�~~‘¡‘~~~‘~~¡‘~~~}~~~~~¡¡¡�}~~}~}}}}}~¡‘Ÿ~}}}~�~}}r}~~}}~~~~}}~}}}r|}}~}r|}|s}ps}}~}}rv|p}|}}v|pp}vrpv|||vp|}}}v||p}ppppv|ppv|}}|ppv}}}ppppppp}vppppppppvvvvpppppppvvppvpppppppollolopppppplpplllolpplll?lppppllllllolpllClllCllCCClCCCCClllllC?CllllC?CllC?ClCCCClCCCCC>C>?l>>CC?CC>=>=====>C>>>C>A>==>=>>C>>CAC>=======>>>>=>===========$$$!========$!=$!==!==$$===!$$$!$=!!!!!!=!!!!!!!!=!!!!!!!! !! !!!!!! !!  =q�Ö÷úûúýúüüûúýúüúýÿý÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷÷õàÊZ                                                                                                                                                                                                                                                                                           _×àóúóúóúóóúóóúóó÷óóúüÿþþþþþþþþþþþþþþúæ¥��}}~}}~}}~}}}~}~~~~‘‘}}�‘}}~~�‘~}�‘~}~~�~~�~~~~~~~‘‘��~‘‘‘~~‘‘~~‘‘‘¡~}¡¡¡‘‘~‘¡‘‘‘~‘�~‘‘‘‘¡¡‘��‘‘‘¡¡�~¡¡�~‘¡‘~¡‘¡¡‘¡¡¡¡~‘¡¡‘‘‘‘¡¡�‘¡‘¡‘‘¡¡�¡¡‘~¡¡¡‘¡~¡¡¡¡¡~‘�‘¡¡‘¡�¡¡‘¡¡¡‘¡¢��‘‘‘‘¡‘‘‘¡‘�~‘¡‘‘��‘¡‘~�¡¡‘‘¡¡~‘��¡¡‘��‘‘‘¡¡~~¡¡‘~~‘��‘¡��~‘‘}‘‘‘¡‘~~~~�‘~~¡~~~~~~~~~~‘~~~}~‘‘~~}~�~}}~~~~~~~~~~~~}}~~}}}~}}~~}}}}~�}}}}}}}}~~}}~}}}}}~}}}}}~}}}p}}}v}|}}}|}||}|}|}}p|}|p|}}||}}pp||}}}pvvvv|}vvvpp}vpv|vpppp}|ppppppppv|ppppppplpvppppppppopllpppopopllpplllplllplllllllolllllllllllllllCllllllClllClllCClClCCCCClClCCCCC?ClCCClC?C>?>?CCCC>>Cl?C>>>C>>>>>>>=>>>C>>>CC==AC==?>>C==>>========================$==$=====!!====!!=$$=!!$!!$!$!=$!!!!!!$!!=!!!!!$!!!!!!!!!!!!!!  ! !!!  =s’Óõúýüüúýúûüüúýúýþý÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷÷ú÷è׃                                                                                                                                                                                                                                                                                              ˜×èóóó÷óúóóúó÷óúóúóóúüÿýÿþþþþþþþþþþþþúÚ’Ž��~~~~~~~~}~}~~~����}}~~~~~�}~}}�¡‘~‘‘~}}‘~}~~~�}¡¢‘�}�¡¡‘‘‘~}�‘��‘~�¡¡¡‘‘‘¡¡��‘‘�~~~�~~‘¡‘�‘¡¢¡‘‘~~‘¡~~‘¡¡~¡¡‘��¡¢¢¡�‘¡‘�¡�¡¡¡¡¡‘¡¡‘‘‘‘‘~¡‘�¡¢¡‘�~¡¡‘¡¡‘�~~¡‘~~‘¡¡�¡¡¡¡¡¡~~‘¡‘¡¡‘¡‘�~~‘‘�����¡¡�~~�¡‘�‘‘‘‘‘‘¡‘~~‘‘¡~�‘�~�¡‘~~~‘‘‘‘‘~}~‘~�‘��¡‘~~~}~‘‘‘~~~}~~}~}~‘��~~~~��~~‘‘~}}}}}~~}~~‘¡�~}}~~}}}}}}}~}~}}~~}}}|}}~~~~}}~~~~}}~~}}p}~}}}v}}r|vr}~}}}}}}}}p}}|}p}pp}v|}}||pv|}}}}|r}}r}|ppv|ppppp|vppp|}vvpppvpp|vppppplolppplpolloppllovpooppolllppllpollpplllllllllllllllllllllollllllC?lllllllC???ClCC>CllllCCC??>?CCCCC?>>CCCCCC>>?CCC>>>CACCC>>C>=>>=>=CCC>==>>==>=====>C>=>============A>====A====$!$=$==!=====$===!$!$!!!!!$=$!!$=$!!!!!!!=!!!!!!$!!!$!!!! !!!! !!!! =q�¬õüüüûúýúüüüûüüüþþú÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ñÚžY                                                                                                                                                                                                                                                                                                           BÊÙòúó÷óó÷úó÷óúóó÷÷÷óúüÿþþþþþþþþþþþþþþúÚ¢ �Ž}�~}}�€~}~}}}~~~}~~}}~~~~}~~}~~~~�‘~}~¡~~~}}~~¡¡~~}~�¡�~~‘�‘~}‘¡�‘�~�~~~�‘‘���‘~����~�‘�‘�‘¡¡‘�‘�‘‘‘‘¡¡�~‘‘¡‘‘¡¡‘‘�‘¢¡‘‘‘‘¡¡¡¡‘‘¡¡¡‘¡¡¡‘‘‘¡¡¡‘‘�¡‘¡‘‘¡¡¡¡¡¡‘¡¡‘‘‘¡¡‘‘¡¡�~¡¡‘‘‘¡‘¡‘‘¡¡�~‘¡‘‘‘�¡¡¡¡‘¡‘‘‘‘¡~~¡‘�‘‘¡��‘‘��‘‘‘‘�‘‘¡�~‘‘‘~��‘‘‘~~��~�~~‘‘��‘‘‘~~~~~‘‘~�‘‘~}~~~}�¡�}~‘�}}~}~~‘‘}~}~~‘}}~‘~}}}~}~}}~}}}}}}}}}}}}}}}~}}}}}|}}}}}}}}}}}}|}}}}s||p}}}}}||v||v}r}|v||}pp|v}v||}p}pppv}pp|v|vpppppppvpppvpppvvpppvolppvvppoppoopolovplplopplolllllpllopollplllllllllplllllllllCCllllCClllllllllCCClCCCCllCClCCCCC>>>C>?C?CC>C??>>>>?>>>CCA>>C>=>C>=>>>=>C>=>=>==>>===>======>>===>===$=======$=====$===$====$$$$$$$$=$!=!$!!!$!!!!!!$=!!!!!!!!!!!!!!!!!!!! ! !!!!!!  ?s�¬òúûüúüüúýúûüüúüýþú÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷÷÷æÓx                                                                                                                                                                                                                                                                                        ƒ×àó÷óú÷óóó÷÷óóúóóóúóüüÿþþþþþþþþþþþþþþúäª��}}~}}~�~~}}}}}}}}}}}}�~~~}~‘}}}}~‘¡~}‘�~‘~}}~}~~~~}~}~~~~‘¡~~~‘‘¡‘~}~�~~}~‘¡‘‘‘��‘‘~~~~~�‘�¡¡~~�¡¡¡¡‘‘‘‘~~�‘‘¡‘~~�~�¡¡‘¡‘¡‘‘¡¡¡¡¡¡¡¡¡£¡�‘¡¡‘‘¡‘~~¡¡�¡¡¢¢¡¡¢¢¢¡¡‘‘¡�~�¡¡‘‘¡¡¡~��‘¡¡¡¡¡‘~‘‘¡¡‘‘¡¡¡¡‘�‘‘‘¡¡�‘�~�¡¡‘�~‘‘‘‘‘�‘¡‘�‘¡~~‘¡¡‘~~�‘‘~}}~�‘~~‘‘~~¡¡¡‘‘�‘‘‘‘‘‘‘��~}}}~~‘‘}�¡‘~}~}~~‘}}}~}~‘�‘‘¡~~}}}}~}}~}~~}s}}||}}s}}}}}}r}}}}‘}}|}rp}}}s}}}}}vr}v|}}}}v|p}}ppvv}p||}}||pppppp}ppp|}}|v|v|}|v|ppppvpppvvppp}|poppppppvppppvpplllppopplllllllllpoolllllolloopllllllvvll?Cl?llllCClllllllllllllCC?CllCllC???CC?>>>>>>>CCClC?>?>>=>>>>>CCCA>>?>>>CC>>=>==========>>=>==>=====>>==>====$$=====$$!$==!====!!====!!!!!!==!=$!!$!!!!$!!=!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !>}¢Óõûüüüüûúýúüüúüüýþý÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷èÙ�;                                                                                                                                                                                                                                                                                                        ;žÙñó÷óóúóúóóúóó÷úóó÷úüÿþýþþþþþþþþþþýýþúæª���}~~}}~~}~~}}}~}~~}~}}~~~}~~~~~‘~‘~}~~~¡~}}‘‘~~‘‘�~~~���‘~~~���‘¡~}�¡‘~�~‘¢¡��~‘¡¡~�¡¡�‘‘‘¡¡~~¡‘¡�‘‘‘~‘¡‘‘‘¡‘¡�‘�‘‘�‘‘¡‘‘��¡¡‘‘‘‘¡¡¡¡�~‘‘¡~‘¡¡¡¡¡‘‘‘‘¡¡¡�¡¡¡‘‘‘‘¡�‘¡‘‘¡¡‘¡�~‘�‘¡¡¡‘¡�~‘‘‘¡¡‘‘‘‘‘‘~�¡¡‘‘‘‘~�¡‘‘‘~~¡‘¡‘�‘¡¡‘~‘¡‘}�¡‘‘‘�~~�~�~�‘‘~}¡¡}~‘‘‘‘~~‘~~�~~~~~‘~}~~~~~~~~~~~~~~~~~~~}}~~~�~}}}}}}~}}}~~}~}}}}|}~}}}}}}}}}v}rv‘€}r}}}}}}}}}}}}v}}p}p|~}rv}}pp||||pp}}}|pp|pvvv}ppv}pppv|pv|vppppppvvpppppopppppoppplppppplppploppooppllpplplppplllplllolllllllllllolplllCllloolCllCllCllllllllC?CCC?CCClCCCCC?C?ClC>?>>CC>>>>>>CC>=?C?C>>?>>>>>>C>=>>==>>=>=>=>=>========>=======>=!==========!====$$$=====!!==$$!!==$$!!$=$!=!!!!!=!!!$!!!!!!!!!!!! !!! !!!!!!!!!!!!! ?s’Öõüüúýúûüüúýúûüúýþý÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷õàÇ]                                                                                                                                                                                                                                                                                                  ]Óàóóú÷óóóú÷óóúóóú÷óóúüÿÿþþþþþþþþþþþþýþú楒 }}~}}}~}~~}~}�‘‘~~}~~�‘~~~~‘‘‘~}}}~‘‘‘‘}}~¡¡‘‘¡¡‘‘‘}~‘�~~}~~�~~‘¡‘‘¡��¡�‘¢¡‘‘��¡¡‘¡¢¡¡¡¡��¡‘‘‘‘‘‘�‘¡~�¡¡¡¡¡‘‘¡‘‘¡¡���‘‘¡~~¡¡‘‘�~‘¡¡¡‘��‘�~¡¡¡¡¢¡‘�~�~~¡‘‘‘‘‘‘~~‘¡¡‘¡‘¡¡¡‘‘�‘¡‘‘‘¡¡‘¡‘¡¡‘¡‘‘�~~�‘‘¡¡¡¡�‘‘‘‘¡‘‘�~~~‘¡¡‘�‘‘‘~~‘‘~‘¡‘�‘‘~}}~‘�‘‘‘}~‘�}}~~~}~‘�~}~~}~}‘~~~~}}~~~}~~}}}~~}~‘‘~~}~}}}}}|}}~}}s}~~~~}}~}}v}‘}}|}}||}}r}}}~€}}}}}pr}}pp}r}}}}|vpr}}}p}|vpv}}}pp|}}}vpvvr}p}pp||pppppppppppp||vp}vppvpopopvvplllpplpppplpppvppoppplllppvppvpollllllllllllllllllpllpolllllolCCllCCl??CC?CClllCCCCCC??CCCCCCCClClC?>>>C?>>>CCCClC>>>>>=CCC>>?==>>>?>>>=CAC>=>=>A>>=>>>=>=======>====>===>>======$=!!=!=!$=$$==!==!===$!!$=$!===$=$!$!!!!!!!!=!!!!!!!!!! ! !!!!!!! !lŽ�Úõûúüüúüüûúýúüüüüþýú÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷èÓ”                                                                                                                                                                                                                                                                                                              ”Ùèóóóúóúóó÷úóóúóóúóóúüÿþþþþþþþþþýýýþþýü몢�Ž}}~}}~~}~}}~~~~}}~~~~~}~~~�~~~}~~~‘�~~~~~~~~‘‘~~‘~‘¡~~~~~~~~~��‘�‘‘‘‘~‘¡‘~~�‘‘‘�‘¡¡‘‘‘‘‘‘‘‘‘~‘¡‘���¡¡‘�‘¡‘�‘�‘¢¡¡‘�‘¡‘~�‘¡‘¡~~¡‘‘‘¡¡‘�‘~¡¡‘¡¡¡��¡‘¡~‘‘‘��¡¡~~¡¡����¡¡‘~‘¡¡¡‘‘��‘~‘¡¡¡¡‘‘�‘‘�‘‘~‘‘‘‘��‘�‘‘‘‘‘‘¡~~¡¡‘‘‘‘‘‘‘‘‘~�¡‘~‘¢‘~~‘‘~~‘‘~~‘‘~~�~~~�‘~}‘‘~}~}~~~�~~~~~}~�~~~}}~~~‘}}~~}}}}~}~}~~}}}}}~}~~}}~~r}�~|}~~}r}}}}}v~~}|}}}p}}}p}}|}v|}||||v}}|pp}|}r}}vp}}pprvv}|}ppvp||vppvppppp|vppvp|vp|pppppppppppppollpvppolppppoopolpolpppllpplplplllllllllllolllllllpollCllllllllCC?CClCClllCC??ClC?CCllC?CCCCC??CC>>CC>>?>CCC?>?>?>=>>?C>>>>>=>>>=>==>>>>==>=>>====>>======>==$============$====$=!$$$=$==$$$=!$==$!$!$!$!$=$!!!!!!!!!!!!!!!$!!! !!!!!!!! !!!!!!!! !!oŽ’Ú÷üüýúûüüûüüúýúûüþþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òÙ�B                                                                                                                                                                                                                                                                                                              @ÇÙòúó÷óóóúóóúó÷óúóóúóúüÿþþþþþþþþþþþýýþýüò¬¢��~~~}}}}}~}}}~~~}}}}~}}}}}}}~‘~}�~~}}‘‘~~}}~~}~‘~~‘‘‘�}~‘‘~}�~}~‘‘¡�~~~��~~€‘~~~~¡‘~}~¡‘~‘¡¡‘‘¡‘~�‘¡¡¡‘~¡‘‘‘‘¡¡¡‘¡¡‘¡¡�¡¡‘~‘~‘¡‘�‘¡¦¡��~���‘~~‘�‘¡¡~~��‘¡¡‘~~‘¡‘~~~¡¡‘~�‘¡¢‘‘‘‘~�‘‘¡¢¡¡�~‘¡¡‘~~~�~~‘‘‘¡~~�‘¡¡¡‘~‘¡‘��~‘‘¡¡¡~�‘�~‘¢¡¡‘¡‘~~~¡¡‘¡‘‘~~~~~‘�}‘¡¡~~~~�‘‘‘�~‘‘~~}€‘~~}}~‘�~}~~~}~~~~�~~�~}r}}}}}}~}}~~}}}}|}~~}}|}}|}r|}}}}~s|}~pp}~vr}pp|}}ppvp}}p}}}vv}|pp}vpv||v|v|pp|ppv|}|pppppppppvv|pppppppppppovvpppoopppppllpppololllvpllllllloppooollllllpllpllCllClllllCClllllllllCCCCClCCC?CC?llCCllCl?>?C>CC?>>>>>ll?>>ClC>>=?CC>>>>>CC>>>C>>=>=>>=>=>>=====>========>===========$==$$==$====$!===!!$!!$===$!!!$!!$$!!!!$!!!$!!!$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!! !?q�’æúûüúúýüûúüûúýúüüþþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õàÓx                                                                                                                                                                                                                                                                                            zÓàò÷óúóúóóúóó÷óó÷úóó÷üüÿþýþþþþýýýýþþýýþýõÚ’�Ž~}~}}~~}}~}~~~~}}~‘~~}}~~}�~}~‘~~~}�~~}~‘�}}‘¡~~�~�~~~‘¡~}‘‘���‘�}~�~~~��¡¡~~~~¡¡���‘�~‘¡‘‘~~�~‘¡¡‘‘‘‘�‘¡‘‘¡~¡�‘¡¡‘‘‘‘¡‘�‘~‘¡‘~‘¡¢‘~‘‘‘‘‘¡‘‘‘~‘¡‘��‘�¡¡‘‘¡‘‘‘¡‘�~‘¡‘�‘‘¡¡‘~‘¡�~���¡¡‘‘~‘¡¡~���‘‘‘‘��‘‘‘‘‘�¡¡‘‘~‘�‘~��‘‘‘‘~‘‘~~�‘‘¡‘‘‘~~��‘‘~�‘‘}~~~��~�~~~~~~~�~}~~~~~~~~�}}~}~~}~~~~~~~~}~~~}~~}}}�}}}}}~}}}}}s}s}}}}}}}rv}}}}}|}}}}}}vp}~|}}p}}}p|||pv}|v|}vrv}}pppp|}pp|}pvv|vpp||vv|v|vppvppppppvpppoppvppppppoppplpppoovpppllpopplollpoloopllpvlllllllllllllolClllllCCllllllCllllCllCCClllC>ClC?CCllC>CCCCC??C>>CCC>?>>CC>=>>C>>C>=>C>=>>>>>==?>==>=>>>===>>=======>===>=======$===$=========$$==$!==$$!=!!$$!!$!9=!!!=!!!!!!$!!$!!!!!!! !!!!!!!!!!!!!!!!!!! jsŸ¬èúûüúýüúúüüúýúýúýýþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÓ”                                                                                                                                                                                                                                                                                                            "˜×èó÷óóóú÷óóúóú÷óóóúóóüüÿþþþþþþþþþýýýýýýýúæš�Ž}s}}�~}~~~}}}~~}}‘‘�~~~~~~~~‘¡~~‘‘‘~~~‘‘�}~‘~~�‘�€¡‘~�¡¡‘‘¡‘‘‘~~}~‘¡�~‘‘‘‘�~~~‘‘‘¡¡‘‘‘¡¡‘¡¡�~~‘¡‘~~~~~~¡‘‘~~~~¡¢¡¡‘‘�‘‘~~~~‘‘~��‘�‘‘~¡¡¡¢¡¡¡¡¡¡¡~‘¡¡¡¡~~‘¡¢¡‘¡¡‘¡¡~‘¡‘¡¡¡¡¡¡¡�~}~�‘¡¡‘~¡¡‘¡‘‘¡¡��}~‘¡¡‘�~‘¡¡�~~‘‘�~~~��~~‘~~~~~~‘‘~¡‘�‘~}~~}~‘~~~�¡~~}}}}~~}~~~}~}~~�~�‘~~~~~}}}~~}}}~~}}~}}}}~}}~~}}}}}�~~}}}}|v|vv~~}}|p}~}pv||}||p}}p|}}}vv}}}|}}pp||}|v}}}vs}}|pp}}}pp|}|||vpppppppv|ppvvpppppvpppoppvpppoopppppplopppppopplopvpplllopoloolllovoopollllllllpll?ClllllCClClCllClllC?C?>lllll???>>>CClC>?CCC?>CClC>CCCC>>>>>C>>=>>>>C>=>>=======C>=>A>===>===A>>==>=====>>==>=====>==!===$======$======$==!!!==!!$$$$!!!=!$=$$!!=!!!!!$!! !!!!!!!!!!!!!!!!!! !  m}’Öõýúüúýúûüüûúýúüúüýÿú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÚ�B                                                                                                                                                                                                                                                                                                ;ž×èóúóúóó÷úóóóóúóúóó÷úüþÿþþýýýýýýþýýýþýýýüè¬�ŽŽ}}‘�}}~~}}~}~~~~~~~~~�~}~}~‘~}~��~~~~‘~~~~}~�~~�‘‘�~~‘�‘¡‘~~~~~~‘‘~~¡¡~~~~‘‘~�¡¡‘~�‘¡‘��‘‘�~¡¡�~�‘‘‘‘¡¡��~�~‘¡‘¡‘~‘¡¡��‘‘‘‘¡¡~~¡¡‘~¡¡¡‘¡‘¡¡‘¡‘�‘‘‘¡‘~‘‘‘¡¡¡¡‘�¡¡~~¡�‘¡‘¡¡‘‘‘�~�‘‘‘‘‘�‘¡¡¡~�¡¡‘‘~}¡¡‘‘~~‘¡�~~~‘¡~~~~‘‘~~‘~~‘~‘~‘�~�~~¡‘}~~}~�~�~~�‘~~}~~~~}~}~�~}~~~}~~~}~~~}}}~}~}}~~}}}}}}~~}}}~}}}r}}~~}}}}}}r|}~~}}s}}}||}s|}|||v}}|v}}rp}}}}}p|}vp||p}}p|v}}}pp|}ppv}||vppvppvvvpp|vpppppppvpppvppppppppopppppplppppplpppllppllplpoolpplllloplllllvlllClllllllolClllllllCllClolllCCClllCCCCCCCCCCCC?CCClC>?CCCC>>>?CA>>CC>>>>>=Cl>=>C>>>=>=>C>=>>>==>=>>=>==>==>=====>==============$========$$=$===$$!!!==$!$=!!$!!$!!!=$!!!$!!!!!!!!$!!!!!$!!!!!! ! !!!!    ?q�’æ÷ýúüûüúüüúýúýúýúýýþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òàÇ_                                                                                                                                                                                                                                                                                                    ZÓÙòóó÷óúóóúóú÷ó÷óóúóóóüüÿþýþþþþþýþýýýýýýýýõÚª¢�}Ž�~}~~}~~~~~¡~}}~}}}~}}~}~~}}}~}‘€‘�‘‘�}~}}~‘�~~‘¡�~~‘¡~}~‘¡‘‘~}~¡¡‘}~�¡¡¡‘‘¡‘~~~~��~~~¡‘�€¡‘~¡‘�‘¡¡‘¡¡‘�~~~~‘¡‘�‘¡‘¡¡¡¡¡¡‘~~¡¢‘�‘¡‘¡‘~‘‘‘¡¡‘‘~~‘¡‘‘¡‘¡‘�‘‘‘¡¡‘‘�}~‘‘~~~�‘‘‘¡¡�~~~¡‘‘¡¡�~¡‘‘‘~~�~}~}~¡‘‘¡‘~‘�~~~��¡�~~~¡¡¡~~�~}~~‘¡‘}}~~‘‘‘‘~}}~‘¡‘~‘‘}}}}~‘~}}~}}}}}}~~~~~~}~}}}~‘�}}~~}}~~}}}~~~}|}}}}}~~~}|s}}}}~}}~}}s}}p}|}}rp}}|p}}vvpp|}p|}pvvpp||v|ppp}}|||||vpp|pppv|pp|vppp|pppvvpvppoppvppppvvpllopopoppppplllplpoolloppplooppllpolllllllllllClolllllllCllllllllCClllllllllllC>??ClllllCCCCCClll>Cl>>?>>>CCl?=?C>>CCC>>C===C==>CC==>>==>>=>>=>>C==>============!==========$$=!===$====!===$!!===$!!==$!===!!$!!!!! !$!!!!!!!!!!! !!!!!!!!!!! !     ?pŽ¢Óèúýúýúüüüûúýúýúüúüýÿü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õàÓz                                                                                                                                                                                                                                                                                                        zÓàò÷ó÷óóúóóóóúóúóóúóúóüþÿþýýýýýýþýýýýýýýýýúëÕ�Ž��}}}}~}~}~}‘‘}~~}}~~}~�~~~~~}~~~�‘}~‘~~~~}�‘~}�‘‘~~~�¡�~�‘¡~~~~�‘‘‘~~‘‘‘‘�~��~~��¡‘~}�‘¡¡�~‘‘‘¡‘�¡‘‘‘‘¡‘~���‘¡�‘�¡‘¡¡‘‘¡‘�~~¡¡‘‘‘~‘¡‘~‘‘�¡¡~‘~�‘‘��¡‘¡‘‘‘�‘‘‘¡¡~~¡¡����‘~��¡¡‘~�‘‘‘¡‘‘~~¡‘�‘‘�‘‘~�~~‘‘‘‘~}�‘~~‘~‘‘‘~~~�‘�~~¡‘~~}~�~~~~~�‘�‘~~}}‘‘~}�¡~~~}~‘~}~~~}}~}~~}~~~}}~~}|~~~~}~~}}~}}}}}~}}s}}|}~~}}}}}}}}}}}}}}}}}|}}}}||}}}}|v}}rpv}}v}vvprvvvvvvvpvpv|vvvpppv}ppp|ppp|pppvp|ppppp|vppppv|pppppppppopvplpppollplovploloppllppllppoolllllllllllCllllllllllllllllClllllCllllCClCCl??lllClC??CCCCCll>?C?C>C>>>CC>>>>?CCCCC>=>>>C>=>lA==>>>=>>=>=>==C>==========================!!!==$!====$$==$!===!$!!$==!!!$$$!!$!!!!!$!!!!!!!!!!!!!!!!!!!!!!! !!! !!!! oŽ�ªæõúüúýúýúûüüüúýúýúýýþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õèט#                                                                                                                                                                                                                                                                                 9”×èóúóúóóúóúó÷óóúóó÷óúóüüÿþþþþýýýýýýýýýýýýýýõ暟��Ž}�}~}~}}~¡‘~}~�~~}~~}}�~‘}~}~~~}}~‘~~~}‘¡‘~‘‘~~~}~‘¡¡¡¡~~‘‘‘‘‘�‘‘~~~~‘‘‘‘~~‘‘‘‘‘~~¡‘�‘‘~�‘�‘‘~€�~~~‘¡¡¡¡�‘‘‘¡‘~~‘‘~~‘�‘¡‘�‘¡¡�~¡¢¡~�‘¡¡¡¡‘~~��~��~�¡‘‘~��~~¡‘‘¡¡¡‘¡‘‘‘‘‘‘‘‘~~��~~~~~‘¡¡~‘¡¡¡¡¡¡¡‘���¡�‘¡¡¡‘‘‘‘‘~~~~~}}}�¢¡~~}}}~�~~~‘~~��‘‘}~~~~‘¡~}}}}~~~�‘~}~�~~~}}~~~}~~~}}}}}~}}~}}}~~}}}}}~}s}~}}}}}}�}p}}}|v|p}}p}}}ps}}}}}||p}}}}||vv|v}}|v}}vr}}}|}pvvppppppvpp|}vppvppppvvppppppppvppvvpvpoppvpppppoloooppopplppplllpl?llplllolpllvplllllllllllllllllllClllClllllCllClC??CllCCCClC>>>?>CClCClC>>>??CClC>>>>>ACCC>=>CC>>>ClC=AC>=>?==>=>>=>===>C>>=>>===========$===$$!=============!!!$=====$$$$=$$$$!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !!! $os�’Úëúýüûüúýúüüüûúýúýúýýÿú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÙž<                                                                                                                                                                                                                                                                                   ;žÙèó÷ó÷úóó÷÷ó÷úóóúóó÷óóúýÿýýýýýýýýýýýýýýýýýýüíÚ¢����Ž}~‘}s~�~~~�~}~~~}~‘~}�}}~~~}~}�~~~‘~‘‘�¡~~~}~~~~‘‘¡‘�~‘¡‘�~~~‘‘~~~��‘~~‘‘‘‘‘�‘‘‘‘~��~‘¡‘��~�~�¡~�‘‘‘‘‘�‘~‘‘‘‘¡‘~�~¡¡¡¡~~‘‘‘�‘¡‘~‘�¡‘‘‘‘�‘‘‘‘‘~�‘‘¡¡~~‘‘��‘‘¡‘‘‘¡¡‘‘‘��‘~�‘¡‘��~��‘¡‘~‘�‘‘‘‘‘¡‘‘‘~~~~‘‘‘~‘‘�‘~}~�~~~~�¡‘}~‘�}�‘�}}‘~‘‘~‘~~~~}}~�~~}}}�~}~‘~}}‘~}~}s~~~}}}~~}~}}}s}}}}}}}}}}}}}~}}}}}}}p}~}|}}}||rp}~}}}rv}}p}~}p}|}}v}}vv}|r}p|v|vrv|v|}vvvrvpvppvrpp|}ppvppopvpppppppppp|popppppppvpppopvpoooopolpllppolllpplllollllllpplllllolllllllllllllll?CllCllCllllllCCCCllC?ClCCCCC?>>?lC??CCC>??CCCCCC=>??C>?C>>>>C>>>>C>>>=>==>>==>>=>A>==>>>=====>==============$$===========$!!=!$====$!$==!$!$=!!!$!$!!!$!!!!!!!!!$!!!!!!!! !!! !!!! !7lqŽ¢¬æúúýúüüúýúýúûüüüúýúýýýú÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òÚÇ]                                                                                                                                                                                                                                                                            YÊÙòó÷óóú÷óóúóó÷÷÷óúóúóóüüÿþýýýýýýýýýýýýýýýýýýúèÕ’������}}}}}~~~}}~~‘‘‘�~~~}~‘~�~~}~~}}~~}}}~~~~~‘¡‘‘~}~~‘}~‘‘�‘~~¡¡�~�~~�~~‘‘�‘‘¡‘~~‘‘‘‘�¡¡‘‘‘�‘‘‘‘¡‘€~~‘¡‘~~~‘¡¡‘�‘‘‘¡‘�‘~~~�‘‘‘¡‘‘¡‘‘�~~~�¡¢¢¡��‘¡‘¡¢‘~�‘‘~�‘‘�~~~‘¡‘‘~~~�‘‘‘�‘‘~~~~‘‘~~~}~�~~‘‘‘‘‘�~~~‘‘~~~~~~}~‘¡¡�~}~~~~¡¡‘~~‘~}�}~~}~~‘¡¡~}}~‘‘‘~‘‘~}}~‘~~~~}}}}~}~~}}~��}}~}}}~~~}}rp|s}~}~}}|pvr}p}~}}|}}~}}}}}}}}}}v||}}||}}vr}}|pr}}}}v}|}ppppp|r}ppvrpv}p}}}pv|}}|pppppppovvpvv|vppppoplloppopppvpopooopplllpplpvolpvoooplllplllpllllpolllpolllllCllllllllC??lllCCCCCllCClCCllCC?CCC>>?CC>>>>ClCCC?>>>C>=>?A>>>>=>>>>CC>>==>>>>>>==>>===>C=====>>>===>>>>====$=========!!=!=!!=!=!$===$!$!==!!==$!!$==!$!!!!$!!!!$!!!!!!$!!!!!!!!!!!!!!!!!!   !!?p��¬æõýúýúüûúýúýúüüüûúüúüÿþ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òàÓz                                                                                                                                                                                                                                                                                         xÓßòóúó÷óúóó÷úóóóúóó÷÷÷óúüÿþýýýýýýýýýýýýýýýýýýü÷ëÕ’� ��Ž}}�}}~~~~~}~¡~}~~~}~~~‘�}~~~~~~~~~~�~�}}�‘‘‘~}~‘~~~‘�‘�~‘¡¡~~‘~�‘��‘‘~~‘¡�~~~‘¡‘‘‘‘‘‘‘¡�‘��‘‘�~~¡¡�~~~¡¡‘�‘¡‘�¡~‘‘�¡~~¡¡‘�‘¡‘~‘��‘~‘‘¢¡¡�‘¡�‘¡¡�~‘‘‘‘‘‘‘¡~~�‘¡‘�‘~~‘‘‘�~���~‘‘‘‘‘‘~~‘‘~�‘‘�‘‘~~~�‘�~‘¡~�~~~~‘¡‘}~~~‘‘�‘‘�}�}~�~�‘}}~‘‘‘~}~}~‘~~~‘~}}~~�~~~}}~~}~~~}}~}~}~}}~}}~}}}}}|}}}~}}}}|}}}p}~~}}r}}}}}}s}|}}}rwv}}|}}p|}}}|v}p}}}p}}||ppp}}ppv|vvpp}|}|vpp}}}ppppp}popprvpvvpppppppppppoppppppppopolpooopppopollllooollllllollolllllllplllllClllllllllCCClllC?lClCCClllllCCCC?CC?>?CC>?>>CC>?CCCC>>>>>CCA>=>>>C>>Cl>==>>>>C>=>=>==>>=>===>=========>===========$=======$$===$!=====!!$$!$$!=!$$=$!!!!$!!!!!!!!$!!!!!!!!!!!!!!!!! !!!!!  ! !! =oqŽ ¬æõúýúýúýúüüúýúýúûüüüýüþýú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òæÓ”;                                                                                                                                                                                                                                                                                                  ƒÓàòóó÷óóú÷óóóú÷óóúóóóúóúüþÿýýýýýýýýýýýýýýýýýýýüúéÖš���Ÿ��}~}}}~~}}‘�}}}¡~}}‘‘‘~~‘¡¡¡¡¡~~}~~~~}}~~�~}~~~}~‘‘~~�~~~}}~‘¡‘~‘¡‘�‘‘~~�~‘‘¡~~‘~~~~~‘‘~~�~�‘‘¡‘‘¡‘‘¡¡~~‘‘~~‘‘‘¡¡¡�}�‘~~~~~‘‘‘‘‘¡‘�¡‘‘¡¡‘~~�‘~~�‘¡¡‘‘�‘¡¡‘�~�¡‘¡¡¡¡¡‘‘‘‘‘¡¡‘~‘¡‘�‘¡¡~}~~}~~�~~~~~‘‘¡¡‘�‘‘}}~€~~}}‘�~~~¡~~~}}‘‘‘}}}~~�~~�~~‘�~}~~}~~}�~~~~}}}}s}~}}}}}}}~}}}}}~}}~~~}}}}s}~~~~}~}v}}}}vvv}}}|p}}}~}w}rp|||pp|}|}}||ppp|ppppp}}p}|pp}}p}}ppvp|ppppppvp|pp||pppvppppop|vpoopvpoopoollppppollopvpplllllpllllpllpolllllpllllllClplCClCllpllllllloolCll?>?CllCCCCCC?Clll??ClllC>CCllC>>>CCC>>>>>C>>>>>=>?C==>C>>CC=>=>>>C>===>=>==>>>>========>=$$=>=$==>===A>>A===!=$$=!!!$!=!!$=!!$==!!!!!!!!!=!!$=!!!!!!!!!!!!! !!!!!!! !!!!7?qŽ�‘Ôèõüúýúýúüúüûúýúüúüüûúúüÿü÷õ÷÷õ÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷òæÓ›;                                                                                                                                                                                                                                                                                                ƒ×àòúóúóóóúóúóóúóó÷úóóóóúüþÿüýýýýýýýýýýýýýýýýýýüüúëÚ¬�¢�Ž��}�}}~}~‘~}}}��}~~~~~~‘‘‘‘‘‘~~}~~~~~~~~~~~~�~~~‘~~~‘‘}~~~‘‘‘‘~~‘‘‘‘�~‘‘�~‘‘‘‘‘~‘¡�~�‘�~�}~¡‘~~¡¡‘‘‘�~~‘¡~~‘‘‘‘¡‘‘~‘¢‘}���‘‘¡‘~‘�‘¡‘‘¡~�‘~‘�¡¡�~¡‘‘�~�¡¡‘‘����‘‘¡¡¡�‘�‘‘‘‘~~�¡‘~�¡¡~~�~�‘�€�‘~~~�‘�‘¡‘�~‘~}�~}~}¡�}~�‘�~~}~~‘�}}~�~~~�~}~�~~~~~}~~~~~}~�~}}}}}}~}}}}}~}}}sr}�}}}}}}}~}p}}}}}}}}}s}}}}sr}}}vv}}}}}}rv|}psppv}}}||vvvpppp|p}}pp}}}}p||}ppvv|vppvppppvvpp}pppvpppppppvppppppppopppoppolppoloppvpllllooplllpolplllllololCllllllljlllClllollllllolClCl??ClClCC?CCCClllCCCCCCCCCCCCC>>>C?C?>>>>>C>>>>>>>>>=>>>C>>>>>=>CA====>>==>>===========>=====================!==$$$$$=$!!=!!!$=!!=!!!!!$$!!!!!!!!!!!!!!!$ !!!!!!!!!!!!!!!!! 9?psŽ�¥Úæõúýûýüüüüúýúüüúýúýüûüüþÿú÷÷÷ó÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷õè×�Y                                                                                                                                                                                                                                                                                   9”Óàòóóúóúóóóúóóóúóóúóú÷óóüüÿýýýýýýýýýýýýýýýýýüýýüýúõëÖš�  ���s}}}�}��~}~‘�}}}~~‘~}~�‘‘‘‘~}}~~}~~~��~‘~}~~~}�¡‘~~¡‘¡‘~~}}~~~~�¡¡¡‘�‘�~~��¡¡‘�‘‘¡¡¡¡¡¡¡~‘¡‘~~~‘‘‘¡‘~}~�¡�~~�}�¡¡‘‘~‘¡‘¡‘~~~~��¡¡~~�‘‘~‘¡~~~�¡¡¡‘¡¡��‘�~~~~�‘‘~~~~~~~‘�~‘‘~‘‘‘~~¡¡‘�~�~��}~~�~~�‘‘‘¡‘}~�¡¡‘¡¡}}~}}~}~‘~~¡�}~�~}}}}}}~~}}}}}}~}}}}}‘‘�~}~}}}~~~�}}}}}}}}~}r}|v}}�}}}}s}}|r}}}s}}}}}vr}r}wr}}p}}}}}}}}r}}v|}}}r}}||p}p}}ppppp|ppvpppppppppppppppppppvpppppppppppppvpoopppoooppppllpppplllolppoplppooollllopoplloljlppppllllplCllClllCCCllC?CCClC?CClllCC?CCCCCCCCCC?>>??C?>C>>>?llCCCCCC>>CCCC>>>====?>=>>==>>>==>>>====>==>>=>=$===>=>====A=$!$===!=======$!!$!!!!$=$$=!!$!!!$==$$$=!!!!!!!$=!!!!!!!!!$!!!!!!!!!!!!!! !!   =?mps�’Óæë÷üüýúüüûüüûüüüûúýúýúúúüÿþ÷÷÷÷õ÷õ÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷õèÙžY                                                                                                                                                                                                                                                                                                     9–Ùæóó÷÷óóúóó÷úóóúóó÷óóúóóúüÿÿüüýýýýýýýýýýýýüýüüýýüýü÷íæÕ¥� ���s��~��~~}��~}~}}�~}~~��¡~}~~~}~~~�~��}��~~~~�‘�~������}~~��~~¡¡‘���‘‘~����‘‘‘‘�‘¡¡¡¡��¡�¡‘~~�‘��¡‘~~~~‘‘�‘~~~�¡¢�~�¡�¡�}�‘�~�¡‘~~‘¡‘�‘‘�~��‘���¡¡�����}�¡‘����~~��~�~~¡�������¡‘�~‘‘~~�~�����~�‘�����~�¡���~}��~�}~�~~�~}~�}}}}}}~~}}}~}}}}}}}s}~~��}}}~}}~}~~}}}~}s}~}}}sr}}}}}}}}s}p}}~}}}}}}}}|}}}pp}}v|}~}}}}}}}||}}s|p}}}p}s|}vpp|vppppppppp}pppppppvpopppppppppppppppplp}pplpppooppppolopppopllppppplpppoojojlopppllllllloollllllplCllllllClClllCllCClCClClll>>CCljlllCC?CCC>>lCCC>>?Cl?>>CCC?>>>>CC>>>>==>?>>>=>=>>===C>>>======>>==================$===97====!=!=$$=$=!=$!$$$!!!=$!!$=!=!!!!!!!==!!!!!!!!!!!!! !!!!!!!!!!!!!! ==jpqs}�’žäèõüüüúûüýúýüúýúýúûüüúýúýüýÿü÷÷õ÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷õèÙžY                                                                                                                                                                                                                                                                                       ;›Ùæóóóúóóú÷óóúóóóúóúóóúóóúüüÿþýýýýýýýýýýýüýüýýüüýüýüüüõíèÚ¬’�s�Ÿ���Ž~}s~‘‘‘�s}}~~}~}�~�‘�‘‘¡¡‘‘������Ÿ������~��������~‘¡��‘�~����¡Ÿ��~�����������}���¡�~������¢����¡Ÿ�¡¡¡¢��¢�}����¡��Ÿ¡����~�Ÿ��‘¡¡‘¡¡����~�¡¢‘�������~~~�‘¡¡¢Ÿ�~�¡�}~}Ž}Ž��~�¢Ÿ�}��¡����}���}�~}s}¢�}~}��‘Ÿ�}}~~~}}���}}������}��������~�~}s}��Ž}�}s}}}���}�}}}~�~}}}~}}s}ss~}}}s}�}s}}rq}}s}ps}qpq}sppqppsppwq}sppp}}ppspppppspps}s}qwqp}ws}}q}sppvrppp}ppppppppppp|poo}ppppoopppppplllpppppppllplllllooooopolpolllllloolllllllljolj?jlllll?l??Clll?llj?ljllll>??>??lC?>>>jl>>CCCj?C??>>>??>>?>=>>>?>=>??>?C>>==>==>>??>>=C??===>>>>===============>==!7============>===$==!$==!$!$$!$$!$$$!$!!!!!!!!===??mo}sssŽ’¥Öæëõúüüüûýüüúüüýúýúüúüüüúýúúüýÿú÷õ÷óõóõóõ÷÷÷÷õ÷÷÷÷÷÷÷÷÷èÙž_                                                                                                                                                                                                                                                                    @�Ùèó÷÷÷÷óóúóó÷úóó÷óóúóóúóóüüÿþýüýýýýýýýýýüýüüýýüýüýüýüüüúõèèÖ¬š’��ŽŽŸ�ŽŸ�Ÿ�Ž��Ÿ �Ž�Ž� Ÿ� Ÿ    ��Ÿ����Ž��Ÿ� Ÿ�Ž��Ÿ���Ž Ÿ���Ÿ������Ÿ����Ÿ�s� � ���Ž�Ž� ��Ÿ����� �ŽŸ� ���   �  �Ž� �Ž� Ÿ� �Ÿ�ŸŸŸ�Ÿ� ŸŸŸ   �Ž���Ÿ ¢�����Ÿ���Ž�    ���� ��Ž������� ���Ž�����Ž���¢���Ž�ŽŸ¢��ŽŽ��� ���ŸŸŽs�Ÿ��� ���Ž�Ž���  �����Ÿ��ŽŽ������Ž�� ��Ÿ����Ž�Ÿ�Ÿ�Ž� �Ž�����ŽŽ������ŽŽ����ss���Žs��ŽŽs~��sŽs���s�Ž���s�ssŽ�ŽŽss���������s�������~Ž�ssŽ��ŽsŽss}s�Žs��ss�Žs��Žs~��ŽsŽ�ss��Žs�Ž�ssŽs�s�Žs}s}��s}�s}Žss}s��s}Žss~ssŽ}�sss���sss}ssŽŽ}ssssss}s~ssssssspss~ssss}ssssss}ss�sppss}ss}sssssssss�sqs}sssqssq}s~s}sss��qqs}ss}ss}ssssssqpsssq}ssspqs}sqqsqs}ssss}s}}qsssqqqqqssss}qpqqsqspqssqqsspqqsqssqpqsspnqsq}qqpnqqqsqqqpqqpsspnqqqqpqqsqqqqpnqqpnqsqqqqqpqqpqqqqqqqqqqpnqqq}ŽŽ}�Ž� š¥Óæèõõüúüüýûüüúýûüýûüüúüûüúûüüüüýÿý÷÷õó÷õ÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷÷÷÷èßÇx                                                                                                                                                                                                                                                                                     YžÙæóóóóú÷óóúóóóúóúóóóúóóúóúüþÿýýýýýýýýýüýüýýüüýüýüýüüýüüýüúúõõèëæÚÓ¬¥¥’¢’¢�Ÿ�  �� ��Ÿ ��Ÿ� � Ÿ� �ŸŸ��� � � �Ÿ���Ÿ �Ÿ   �Ÿ ŸŸŸŸ � �Ÿ�ŸŸŸ��   �Ÿ����Ÿ �Ÿ �Ÿ�Ÿ� ���Ÿ� ��� �Ÿ� ��� ��� Ÿ�Ÿ��������Ÿ�Ÿ�� � ���Ÿ�Ÿ� Ÿ�Ÿ�� �Ÿ �Ÿ� � ��Ÿ�  �Ÿ�� �  �ŸŸ� �Ÿ    �Ÿ   Ÿ�Ÿ���� Ÿ ��Ÿ�� �Ÿ�Ÿ ��� �Ÿ� � �� ��Ÿ � �Ÿ� � �Ÿ��ŸŸ��Ÿ�Ÿ� �Ÿ�ŸŸŸ� ��Ÿ�ŸŸ��ŸŸ��Ÿ�Ÿ���Ÿ ��ŸŸ�� �Ÿ ��Ÿ� � � �Ÿ�Ÿ �Ÿ�Ÿ�  � �ŸŸ �Ÿ��� � ��Ÿ�Ÿ ŸŸŸŸ �ŸŸŸŸŸŸŸŸ �ŸŸ�   �ŸŸŸŸ �ŸŸ   �   �ŸŸŸŸŸŸŸ�ŸŸŸŸŸŸ �ŸŸ �Ÿ Ÿ Ÿ  ŸŸŸ   Ÿ�ŸŸ ŸŸŸ �Ÿ  �ŸŸŸ  �ŸŸ � �ŸŸ   �  �    ŸŸŸŸŸŸŸŸŸŸ �ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ ŸŸŸŸŸŸŸŸŸ Ÿ �ŸŸŸŸŸŸŸ  �ŸŸ �ŸŸŸ�Ÿ Ÿ ŸŸŸ �  ��  ŸŸ Ÿ  �ŸŸ �Ÿ �ŸŸŸŸŸ�ŸŸŸ�Ÿ  ��Ÿ�Ÿ � �Ÿ    � �Ÿ �Ÿ� �ŸŸŸŸ�Ÿ�Ÿ�ŸŸ�ŸŸŸ �ŸŸ �Ÿ �ŸŸŸŸ�Ÿ ��Ÿ ŸŸ�Ÿ�����ŸŸ� ��Ÿ�Ÿ ��Ÿ�ŸŸ�� �Ÿ�Ÿ ��� ��� �� �Ÿ�� �Ÿ� �Ÿ� � �Ÿ�¢’¢¢¥¬¬Öæèëõõ÷úýüýúüýüúüýüüúüýúüûýýúüüüüûúúÿþú÷ó÷÷õ÷óõ÷÷õóõ÷÷÷÷÷÷÷÷÷÷÷èÚÊx                                                                                                                                                                                                                                                                                         YžÙæóóúóóúóóúóúóóó÷úóóóúóóúóúüÿÿüýýýýüüýüýüüýýüýüýüýýüýýüûüüýüýüúúõõõíííëèëèëèëèëèëèëèëèëèëèëèëèëèèëèëèëèëèëèëæëæèæææææææææææææëèêèêèêèêèêæêèêèêèêèææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææêèêèêèêèêææêæëæëææëèêææææææææææææèêèêèëèëèëèëèëèëëèëèëèëèëèëèëèëèëèëèëèëèëèíëèëèíëèíëëèëëëèíëíëëèíëëèííëííííííííííííííííííííííííííííõííííííííííííííííõííõíííõíííõõõíõíííõííííõíõíõíõíõíõíõõíõõõíõõíõõíõõõõíõõíõõíõíõõíõõõõõõíõõõõíõõõõõõõõõõõõõõõõõõöõùõùõùõùõøùõøùõùõøõùõùõùõùõùõõöõõöõõõõõõõõõõõõõõíõõõõõõõõõõõõõíõõõõõõõõíõõõõõíõõõíõíõõõõíõíííííõõõíõõííõõíõõíõõíõíõíõíõíõíõíõííõíõíõííõíõíõíõííõííõõíííõíííííõíõííííííííííõíõííõííõííííííííííííííííííííõíííõííõííõííííííííííííííííííëëëëëèëëèëëèëëèëëèëëèíëèëëèëëèííëëèííííõõõõúûýüúýúýúýúýýúýüýúýûýúüüüüúúýúûüúüþÿü÷÷÷õóõóõ÷÷õó÷÷÷÷÷÷õ÷õ÷÷÷õèÙÊx                                                                                                                                                                                                                                                                                          B›Ùæòóúóóúóó÷óúóúóóú÷÷ó÷÷÷óóóüüþÿüüýýýüýüýýüüýüýüýüúýüúýüýúüüüúýüüüüúýúýúýúüúüûúüúúýúüúúýúüûúüúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷ú÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õóõ÷óõóõóóõõóõõó÷÷õ÷÷óõó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷ú÷ú÷÷÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúüûúúúúúýúüûúýúýúüýúýúüúýúýúýüüúüüüüûýüüýúýúýúýüýüýüüýüüüýüüüýýýýýýýýýýýýýýýýýýýýýýýýýþþþýýþþþþþþþþþþþþþþþÿþÿþþýþþþÿþÿþÿþÿýÿýÿýÿýÿþÿþÿþþÿþÿþþÿþÿþÿþÿþþþÿÿþÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿþÿÿþÿÿÿþÿþÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿýÿýÿþþÿþÿýÿþþýÿýÿýÿþÿþÿýÿþÿþÿþÿþÿýÿþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýþýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýýýúýýýýúýüýúýüüúüýýýüýüüüúüüûúüüúüüüýúýúüýúüüúýÿýú÷õóõóõó÷÷ò÷÷÷õ÷÷÷õó÷÷÷÷÷õèÙÊ_                                                                                                                                                                                                                                                                              Y›Ùæòó÷÷óóúóúóó÷÷÷óóóúóóóúóúóúüþÿÿüüüýüýüüýýüýüýüýýüýüüýúýýüýüüüüüûüúýúüúýúüüüüúýúúüúûüúúúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úú÷ú÷ú÷ú÷ú÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷õó÷÷÷÷÷÷÷õ÷÷óõ÷÷óõóó÷õò÷õóõ÷÷õ÷õ÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷÷÷úúú÷÷úúúùúúúúúúúúúúúúúúúúúúúúûúúúúúúúýúûüúúúüúúúüúûúüúýúýúüüüúýúýüúýýüüúýüüüýüýüýüýüýüýýýýüýýýüýýýýýýýýýýýýýýýýýýþýýýýþýýýþþýþþþþþþþþþþþþÿýþþþþþÿýÿýþþþþþþþÿýÿýÿýÿýþÿþÿþÿþÿþÿÿþÿþÿÿÿþÿÿÿÿþÿþÿþÿþÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþÿÿÿþÿþÿÿþþÿÿþÿÿþþÿÿÿþÿþÿþÿþÿþÿþÿþÿþÿýÿþÿþÿþÿþÿþþÿýÿýÿýÿþþÿýÿþÿþÿþÿþþþþýþþýþýþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþýþýýýþþþýþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüüüüüüüûýýúýüýüýüýúýýýýúýúüüüüûüýüüýýûýúýúûüúüûüüúýÿþü÷÷õóõóõóõóõ÷õóõó÷õó÷÷õóõ÷òèÙž_                                                                                                                                                                                                                                                                           ;”×àòóóúó÷óóóúóóóúóúóóú÷óóóúóóúüþþÿüüýüýýüüýüüýúýüýüýúüýúüúýúýúýúüüýúýúüúüýúúûúüúüúúüúúüúüúúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷ú÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷óõ÷õ÷÷ò÷õ÷òóõóõõó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷ú÷úú÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúûúýúúúúúúüúúüúúüúýúüüýúüúüúýúýúüüüúýüüúýüýúýúýüýüýüýüýüüüüüüýüüüýýýýýýýýýýýýýýýýýýýþýýýþýþþþýýþþþþþþþþþþþþþýþþþþÿþþþÿþÿýÿþÿþÿýÿþÿþÿýÿþÿþÿþÿþÿþÿþþÿÿþþÿþÿþÿþÿÿÿÿÿÿþÿþÿÿÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿþÿÿþÿÿÿþþÿÿþÿÿþÿþÿþÿþÿÿþÿþÿþÿýÿýÿþþÿþÿýÿýÿýÿþþÿýÿþþþþþþþþÿþÿýÿýÿþÿþþþþÿýÿþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýýýýýýýýýüüýüýüýüýúýýúýúýüýûýúýüýúýúýúüüýúýüúýúüüýÿþú÷óóõóõóõóõóõó÷÷÷÷õ÷÷õ÷÷÷÷÷òæÙžZ                                                                                                                                                                                                                                                                 ;ƒÓàò÷÷÷ó÷úóó÷úóó÷óóúóó÷úúóó÷úóúüýÿÿüüüüýüüýüüýüýúýüýýúýýýüýúýüüüúüüúýúýúúüüüüúýúýúúûüúûúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷úú÷ú÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷óõ÷÷ó÷õ÷÷òó÷õò÷÷óõóõ÷õ÷õóõ÷÷õ÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷ú÷÷úúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúüúûüúýúüúúüüúýúýúýúýúýúýüüûüüüüüüýüýüýúýüýüýýýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýþþþþþþþþþþþþþþþÿþÿþþþþÿýþþþÿýþþþþÿýþÿýþÿþÿþÿþÿþÿþÿþÿÿþþÿÿþÿÿþÿÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿÿþÿþÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿþÿÿþÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿþÿþÿþÿþÿýþÿýÿýÿþÿýÿýþþÿþÿþÿþþþþþýÿýþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþýýþýþýýýþþþýýþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüüüýúýýúýýüýüýüûüýüúýüýüýúýúýúýúüüýúýúûúýúýüüüýÿýü÷÷÷÷õ÷õóõóõóõóõóõ÷õó÷õó÷÷õ÷òæ×�Y                                                                                                                                                                                                                                                         ƒÓßñóóúóóóúóóúóóú÷óóúó÷óóúóóúóóúüüÿÿýüüüýüýýüýüýúýúüýúüúýúüüúýúýýúüúüúüüúûúúüúúúüúüúúúüúúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óõ÷÷óõõ÷÷òóõ÷õó÷õóõ÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷ú÷úú÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúûúúúúúüûúüûúüûúüüúüúüúüüûúüúýúýúüüüüüüúýüüüüýúýüýúýüýüýüýüüüüüüýüüýýýýýýýýýýýýýýýýýýýþýýýýþýþþþýþþþþþþþþþþþþýþýþýþýÿþýÿþÿþýÿþÿþþÿþÿýÿþÿþÿýÿþÿþÿþÿþþÿÿÿþÿÿþÿþÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿþÿÿÿÿþÿÿÿþÿþÿÿýÿþÿÿþÿþÿþÿÿþÿþÿþÿþÿþÿÿþÿýÿþþÿþÿþÿþÿÿþýÿýÿþþýÿýÿýÿþþþþþþÿýÿýÿþÿþþþþþþýÿþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýýýüýüüýýüýüüüýüýüýýüüúýúýúýúýüüûüüüüýüýüüúüýÿþú÷õó÷ò÷÷òóõóõóõóõóõó÷÷õ÷÷õó÷÷òàÓ�@                                                                                                                                                                                                                                                            zÓÙèóó÷úóóúóó÷úóóúóó÷ó÷úóóúóóúóóúüüÿÿþüüüüüýüýüüüüýüüýüüüüúýúýúúüüüúýúûüüüúüúüúúüúûúúúûüúúûúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷úú÷ú÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷õ÷÷õ÷÷÷õó÷óò÷õ÷ò÷õóò÷÷÷õ÷õ÷õóõ÷õ÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûüúúúúúüúúüúúüúüúûüúüüüúýúýüüúýúüüûüüúýüýüýüýúýüýüýüýüýýýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýþþþþþþþþþþþþþÿþÿýÿþÿýþÿþþþþÿýþþÿþÿþþÿýÿýÿýÿþÿþÿþÿþÿÿÿþþÿþÿÿþÿÿÿþÿýÿþÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿÿÿþÿþÿþÿþÿÿþÿÿÿÿÿþÿÿÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿþÿþþþýýþÿýÿýÿýÿýÿþÿýÿþÿþÿþþþÿþþþþþÿþþÿýþþþþþþþþþþþþþþþþþþþþþþþýýýþýþýýýþþþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüüüýüýýüýûüýýúýýúýúýýûüýýüüüýüúýüýúýûüúüúýÿÿýú÷÷÷÷÷õ÷õó÷õóõóõóõóõóõóò÷õó÷÷õèÙÓ›;                                                                                                                                                                                                                                                                       xžÙàòó÷÷÷óóúóóú÷óóúóúóóúóóúóóúóóó÷úüþþÿüüüüüüüüüüüýúüûüüüüúýúüüüûúüúüüúúúýúüúüûúúúýúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õóõ÷õóóõó÷õ÷÷ò÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷ú÷úú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúûúüûúüûúüüúýúýúýúýúúýúüüûüüüýúýüýüüýúüüúýüýüýüýüýüýüüüüüüýüýýýýýýýýýýýýýýýýýýýýýýýþýþýþþþþþþþþþþþþþþþþþþýþþýÿþþþýÿýÿýÿþÿþþÿþÿýÿýÿýÿþÿþÿþÿþÿþþþÿÿþÿþÿÿÿþÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿþÿþþÿÿþÿþÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿþÿýÿýÿýþþýÿþþþþþþýÿýþþþÿþþýþþýÿþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýýýüýýúýüýúýüýüüüýüúýüýúýúýúýúýúýúýúüüýÿÿþü÷÷õ÷÷óõ÷÷÷÷÷õóõóõóõóõóõ÷õ÷÷÷õ÷õèÙÓ”"                                                                                                                                                                                                                                                      Y›Ùàñóóó÷úóóúóó÷úóóóóúóóúó÷úó÷úóúóúúüüÿÿÿýüüúüüüüüüýüüúýüüüüüúüüüúýúúüüúüúúûúüúüúúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷úú÷÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷õ÷÷õóõóõóõó÷÷ò÷õõóõóõóõ÷õóõ÷õ÷÷õ÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷ú÷÷ú÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúüúúúüúúúüúúüúüúüüüüüüüúýúüýúýúýüüüýýüüýüýüýüýüýüýýýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýþþþþþþþþþþþþþþþþÿþÿýþþÿþÿþÿýÿýþþÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿÿÿÿþÿÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþÿÿÿþÿþÿÿÿÿþÿÿþÿÿþÿÿþÿþÿþþÿþÿþÿþþÿýÿþÿþÿþÿþÿþþþþþþþþÿþÿþÿÿþÿýÿþÿþÿþÿþÿþÿþþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþýýýýþýþýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýüüüüýüüýýýüýüýúýýüüýüüýúýüýúýüüýüüüúýýÿþüú÷÷÷÷÷÷÷õ÷÷õóõó÷÷óõóõóõóõóòó÷õó÷òàמx                                                                                                                                                                                                                                                      ƒÓÙèóúóóúó÷óúóóúóú÷óúóóó÷óó÷óó÷óóúóúúüüþÿÿÿüüüüüüüüüüüúýúüúüüúúüúüüúúüúüúúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úúúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷õóõóóóõóõó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúüüüüúüüúüúüüúüúüúüüüüúüüüüüüüüüüüýüýüýüýüüýýüüüüüüýýýýýýýýýýýýýýýýýýýýýýýýþþýþýþþþþþþþþþþþþþþþÿþþýþýÿþþþþþýýÿýÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿÿþþÿþþÿþÿþÿþÿÿÿÿÿÿÿýÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿþÿþÿþÿÿþÿþÿþÿþÿþÿÿþÿþÿþÿÿþÿýÿþþþÿþþýÿþÿþÿþÿþþþýýýýýÿþþþþþþþþþþþþþÿþþþþýýýÿþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýüýýýýüýýúüüýúýüüüüýûüýýúýüúüýúýúüýýÿÿÿýúú÷÷÷õ÷÷õ÷÷÷÷÷óõ÷õ÷õ÷òõóõóõ÷÷õ÷ò÷õèÙÓ�Y                                                                                                                                                                                                                                                 _žÙæò÷÷÷÷ó÷óóúóóó÷óóúóúó÷úóóúóúóóó÷÷óúúúüüÿÿÿþþüüúúúúüúüüüúüüüúüúúüüúüúúüúüúúúúúüúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷úú÷÷÷÷÷÷ú÷÷÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õóõ÷õ÷÷óõ÷ò÷õ÷õõõóõ÷õ÷õ÷õ÷õ÷÷õ÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷ú÷÷ú÷ú÷÷úúúúúúúúúú÷úúúúúúúúú÷ú÷úúúúúüúúüúúúüúúúüúúúúüúúüúüúúüüüüüüúüüüüüüüüüüüüýüüýüýüýüýýüüýýýýýýýýýýýýýýýýýýýýýþþýýýýþþþýýþýþýþþþþþþþþþþþþþþþþþÿþÿýþÿþÿþÿÿþÿþÿþÿþÿþþÿýÿýÿþÿþÿþÿþþÿÿþÿÿþÿþÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿÿÿþÿÿÿþÿÿÿþÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿþÿÿÿÿþÿÿÿþþÿþÿÿþÿýÿþÿþÿÿÿþÿÿÿþÿþÿþÿþÿÿþÿÿÿÿÿþÿþÿþÿþÿýÿþþÿýþþþþþÿþÿýþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýüýüýúýûüýýýýýüüýýýûüüýúýýüýüüýýýÿÿýýý÷÷÷÷÷÷õ÷÷÷÷÷÷÷õóõ÷÷÷ó÷÷÷÷óõóõóò÷óõ÷òèÙÓƒ                                                                                                                                                                                                                                                                   Z›Óßñóóóúóú÷óúóúóúóóóóúóóú÷óóóú÷úóóúóúóúóúúüüþþÿÿÿÿýüüúúúúúúúüúüúüúúúúú÷úúúúü÷ü÷úúüúúúüüúúúüüúúüúúúúúüúüúúü÷ü÷ü÷úú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷ó÷ó÷ó÷ó÷÷÷ó÷óóõ÷÷ó÷ò÷óóó÷÷óó÷ó÷óóóó÷óóó÷ó÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷ú÷úúó÷÷úó÷÷÷ú÷÷÷÷ú÷ú÷úú÷ú÷üúüúúüúúúúüüüüüüüúúúúúúúúüüúúüüúüüüüúüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýüýüüüýýýüüüýüýýýýýþýþýþüýýýýýüýýýþþþýýÿþþýýýýýýýþþþþýÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿþÿÿÿÿþÿþÿþÿþþþþþþþÿÿþÿþþþþÿþþþÿÿýÿþýÿýÿþþÿþþþþþþþýþýþýþýþýýþýýýýýýþþþþþþþþþýþýþýþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýüüüüýüüüýüýýýýýýýýýýýýüýüýüýüýüýüýüýúýüúüüüýúúüüúýüýýýþþÿÿþÿýýúú÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷óõ÷õ÷õóõóõóõóõ÷ò÷òòà×Ê]                                                                                                                                                                                                                                                                 "ƒÓÙæòúó÷óóúóó÷óóúóúóóóúóóúóúóóóóúóúóúóúóúúóúüüüüüþÿÿÿÿÿÿÿÿÿþÿþÿÿþÿÿþÿÿÿÿþÿþÿþÿþÿþþÿþþþþÿþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿüÿüÿüþþþþþþþþþþþþþþþüÿüþüÿüþþþüüþþüþþþþþþþþþÿüÿüÿüþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþÿþþÿþÿþÿþÿþþÿþÿþþþþÿþþÿþÿþþþþþþþþÿþÿþÿþÿþþþÿþþÿüþþÿþÿþÿþþÿþÿþþþþÿÿüÿþÿþÿüÿþÿþÿþþþÿüÿüÿüÿüÿþÿýÿüÿþÿþÿÿþÿþÿþÿýþþÿþÿþÿÿþþÿÿÿþÿþÿþÿþÿþÿþÿÿÿþÿÿÿÿÿÿÿÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿþþýýûúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷õ÷÷÷÷÷÷õ÷÷÷óõóõ÷õèÙÓ�@                                                                                                                                                                                                                                                        _ž×Ùèóó÷÷óóúóúóó÷óóú÷ó÷÷÷óóúóúóóúóúóúóúóóúóóóúóúúúüúüüüüüüüüüüüüüüüüüüüüüýüüüüþüüþüþüüýüüüþüýüþüüþüüýüýüþüþýþüþýþüýýýýýüþüþýþþüþüþüþüþüþüþüþüþüþüþüþüþüþþþþþþþþþþþÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþþþÿþþÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿÿþÿþÿþÿÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿÿÿÿþÿþÿþÿþÿýÿýÿýÿýÿþÿþÿýÿýÿþþþþþþþþþþþþþþþþþþþþþýþþþþýþþýþþþþþþþþþýýþþþýþýýýýýýýýýýýýýýýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýýýýýýýýýýýýýûýüûúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óõóõ÷÷÷õóõóõ÷èß×Ó‚                                                                                                                                                                                                                                           ‚Ó×ßòóó÷úóóó÷úóóúóóúóóóúóó÷÷÷ó÷óóúóúóúúóúúúóúúóúóúúóúúóüúúúúúúüúúüóúúúúúúúúüúúüúúúúüúüúüúüúüüúüúüüüúüúüüúüúüúüúüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüþüþüüþüþþüþüýýýüþýýýýýþýýýýþüþýüþýþüþýýþüþþþþþþüþþþþþýþýþüþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþþÿþþÿþþþþÿþþþþþþþþÿþþÿþþþÿÿþþÿÿÿþÿþÿüÿÿÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿþÿÿÿÿþÿÿÿþÿÿþÿþÿÿþþÿþÿþÿÿýþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿÿþÿýþþþÿýÿýþþþþþþþþþýþýþþÿýþþþþþþþþþþþþþþþþþýþþýýþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýüýüýýüýüýüýýüýüýüýüýüýüýüüüýúýüüüüýýúýüüüüüüüüüüüúüúýúýúýüüúüüúüüúýüýúûüúúüúúüûúûúûüúûúûúûúûúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷õ÷÷õ÷÷÷õóõóõ÷÷÷òàÙÓ˜;                                                                                                                                                                                                                                      Y›ÓÙèóó÷÷óúóóú÷ó÷÷óóú÷óóúóóóúóúóúóóúóóúóóóúóóúóúúóúúóúóúúúúóúóúúóüóüóüúúúóúúóúúúúúúúúúúúúúóüúüúúúúüúüóüúüúüúüúüóüúüúüúüúüüüúúüúüúüúüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüþüüüüüüüþüüýüüüýüýüüýüþüþüþýþüþüþüþþýþüþüþüþþþüþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþÿþÿþÿþþÿþþÿþÿþüÿþÿþüÿþþÿþÿþüÿþÿþÿÿþÿþÿÿÿþÿþÿþÿüÿüÿÿÿþÿÿÿýÿþÿþÿþÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿþÿÿþÿÿþÿþÿÿÿþÿþÿþÿÿÿþÿþÿþÿþÿþÿýÿþÿþÿþþþþþþÿþÿþÿýÿýÿþÿþÿþÿýÿþÿþÿþþþþþþþþþþþþþþþþþþþþýþýýþþýþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýüýüýýüýüýüýüýüýüýúýúýüýüüýúýúüüüüüúýúýúýúýúýúüúüúüúûúüúúüúúüúúúúüúüûúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷ú÷ú÷ú÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷óõ÷÷÷÷÷õ÷÷õèÙÓÇ]                                                                                                                                                                                                                                                               _ž×Ùèóó÷÷óúóóúóó÷úóóúóó÷úóó÷óóó÷úóúúóúúúóúúóúóúúóúúóüóúóúúúúúóüóúúúóúóüúúúúúúúúúúúúúúúúüúüúúúúüúúúüúüúüúúüúüúüüúüúüüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüüüþüýýýüþüþþüþüþüþüþüþüþýþýýüþýþþþþýþüþýþýþýþýþüþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþþþþþþþþþþþþþÿþþþÿÿþþþÿÿþÿþÿþÿÿÿþÿþÿþÿþÿÿüÿþÿþÿÿÿÿÿÿÿÿüÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿÿÿÿÿþÿÿÿÿþÿþÿþÿÿþÿÿÿþÿþÿþÿþÿþÿýþÿþÿþÿþÿþþÿþÿþþþÿþÿÿþÿýþÿýþþÿýþþþþþýþþþýþþþþþþþþþþþþþþþþþþþþþþþþýþþýýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýýüýüýüüüüýüýüýüýüýüýüýüüüýúýüüüýüüúýüüüúýúýúüúüúýúýúýúüúüüúýúûüúúüúûúúúúûúüúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷úú÷ú÷ú÷÷ú÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õ÷÷óõ÷÷÷òòàÓÓƒ                                                                                                                                                                                                                                   9”Ó×àèóó÷óúóóóúóóúóóóúóóú÷óúóúóóúóóúóóóúóóúóúúóúóúóúóúúóúóúúúóüóúúúúüóúúúúúúúúúüóüúüóúúúúúúüúúúüúúúüóüüúúüúúüúüúüúüúüúüüúüúüúüüüüüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüüüüþüüýüüüýüýüüþüýüýýüýýýþüþüýþýþüþüþþüþþþþþþþþýþþþýþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþþþþþþÿþþÿþÿþÿþÿþÿþþÿþþÿüÿþþþÿþþÿþÿüÿüÿþÿþÿþÿþÿÿÿþÿþÿþÿüÿýÿÿÿþÿÿÿþÿÿþÿþÿÿþÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿþÿÿþÿþÿÿÿþÿÿþÿþÿÿÿþÿþÿþÿþÿþÿþýÿþÿþþþþþÿþÿýÿþÿýÿýÿýÿþÿþÿýÿýþþþÿþþþþþþþþþþþþþþþþþþþþýýþþýþýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüýüýýýýüýüýüýúýüýüýúýúýüüüüûüüúýüüúýúýúýúýúýúýúüúüúýúüûúüúüúúüûúúúúüúúüúúüûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúúú÷ú÷÷ú÷ú÷ú÷÷÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷òòà×Ó�Y                                                                                                                                                                                                                             Y�Ó×àèó÷÷÷úóóúóó÷úóóúóóóúóóó÷úóúúóúúúóúúóúóúúóúóúúúóúúúúóúóüóúúóúüóúúúúúóüúúúúúúúúúüúúúúüúüóüúúüúüúüúúüúúüúúüüúüúüüúüúüüüúüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüþüüüþüþüýüýüþüþýüýüýýþüþüþüþýüýýýþþþüþýýüþüþþþþýþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþÿþþþþÿþþþþþþþþþþÿþÿþÿþÿþÿþþÿþÿþÿþÿÿþÿþÿþÿþÿüÿÿþÿÿþÿÿÿÿÿýÿÿÿÿþÿÿþÿÿÿÿÿþÿÿþÿÿþÿþÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿþÿþÿÿÿþÿÿþÿþÿþÿþÿÿþÿþþÿþÿþÿþÿþÿþÿÿþÿþÿÿÿþÿþþÿþþþÿþÿþÿýþþþþþþÿýÿþþþþÿþþþþþþþþþþþþþþþþþþþýýþýþþýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýüýýüýüýüüüüüüýüýüýüýúýüýúýüüüüûüüýüüúýüüüüüúýúýúüúüúýúýúüúüüúüúúüúüúýúýúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúù÷úú÷ú÷ú÷ú÷ú÷÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷õ÷÷÷õòà×ÓÓ_                                                                                                                 _                                                                                     Y›ÓÓßèóóóúóóóúóóúóóóú÷óóú÷óóúóóúóóóúóóúóúóóúóúóúóüóúúóúúúóüúóüóúúúúóúúúóúúóüúúúúúúúüóüóüúüúúüúúúúúüúüúüúüúúüúüúüúüúüúüúüüúüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüüüüüþüüþüüýüýüýüüüþüýþüþüýýþýþüþýþýþüþýþýþþþþþüþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþþüÿþþÿþÿþÿþþþþþþþþÿþþÿþþÿþþÿþÿüÿþÿþÿÿþÿÿþÿþþÿþÿþÿþÿÿüÿþÿÿþÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿÿÿþÿÿÿÿÿÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿþÿþÿþþþÿþþþþþÿþÿþþÿþþþþýÿýÿþÿþÿþþþþþþþþþýþþþþþþþþþþþþþþþþþýþþýþýýþþýþýýþýýýýýýýýýýýýýýýýýýýýýýýýüüýüýüýýýýýýüýüýüýüýúýüýüüüýüüüúýúýüüüüúýúýúýúýúýúýúüúýúüûúüúüúúûúúúúúûúüúúüúúýúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷ú÷ú÷÷÷÷ú÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õòàÓÓÇ_                                                                                                                 c                                                                                  Y›ÓÓßèóó÷úó÷óúóóúóóóúóóóúóó÷úóúúúóúúóúóúúóúúúóúóúóúúúúóúúóüóúúúúúúúúúúúúúúúóüúúúúúúúüúúúüúúúúüúüúúüúüúúüúüúüüúüúüüüúüúüúüúüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüüüüüüüþüýýüýýüþþüýüüüþýþüþüþüþüýüþþýýýþüþüþýþýþþþýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿüÿüþþþÿþÿþÿÿüÿþÿþÿþÿÿþÿþÿÿþÿþÿþÿþÿþÿÿÿÿþÿþÿÿÿþÿÿÿÿþÿÿþÿþÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿþÿþÿÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþÿþþÿþÿýÿýþþþþþþþÿýþÿþþÿþþþþþþþþþþþþþþþþþþýýþýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüüüüüüüýüýüýüýüýüýúýüüüýüüýúýüúûüúüüüúýúýúüúüúýúüúüüúüúüüúúýúüüúúúûúûúúúúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷úú÷ú÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñà×ÓÇ_                                                                                                                                                                                                                                 Y›ÓÓÙèòóó÷÷óúó÷óúóóóú÷óóúóóúóóóúóóúóúóóúóóóúóúóúúóúóúóúúóüúóúóúúúúúúúúúúúúúúúúúúüóúüúúúúüúúüúúüóüúüúüúúüúúüüúüúúüüüüüüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüþüüýüüþüüýüüþýýýýüþüýýþýýýýþýþüþþýþþþýþþþþüþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþþþþÿþÿüÿþÿÿþþþþÿþüÿÿüÿþþþÿüÿþþÿüÿþÿþÿþÿþÿþýÿþÿþÿÿþÿþÿþÿþÿÿþÿÿÿÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿþÿÿþÿÿÿÿÿþÿÿþÿÿþÿþÿÿÿÿþÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþþþÿþÿþþÿþÿþþýÿýÿýÿþÿþÿþþýþþþþþþþþþþþþþþþþþþþþþþþþþýþýýþþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýýýýýýýüýüýüýüýúýüýúýúýüüýúýúýýüüýúýúýúüüüúýúüúýúýúúýúüûúýúúúûúüüúúúúüúúúûúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúùúúú÷ú÷ú÷ú÷÷÷÷ú÷÷ú÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÚ×ÓÇZ                                                                                                                                                                                                                  ;›ÓÓ×àèóó÷÷÷ó÷ó÷úóóóúóóóúóú÷úóúúóúóúúúúúúúúúúúóúúúúúúóüóúúúúúúóüóúúúúúúúúúúúúúúúüúóüúúüúúúúüúúüúüúüúüúüúüúüúüüüúúúüúúüúüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüüüüüüþüþüüýþüþüýüýüþüýýþüþüþýüþüþþþüþþüþþüþüþþþþüþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿüÿüþþþÿþþþÿÿüÿþÿþÿüÿÿþÿþÿÿþÿüÿþÿþÿÿÿÿþÿÿÿþÿþÿÿþÿÿÿþÿÿþÿþÿÿÿþÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿþÿþÿÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿÿþÿþþÿþÿýþÿþÿþÿýÿýþþþþÿýÿÿýÿþþþþþýþþþþþþþþþþþþþþþýþýþþýýþýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüüüüüüüüüýüýüýúýüýúýüýüýúüüüýúüúýúýúýúüúýúýúüúýúüúýúüúúüúúúüüúúúûúúüúúûüúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷úúú÷÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èà×ÓÓžY                                                                                                                                                                                                           !‚ÇÓÓÙàòóóúóúóóúóúóóúó÷óúóóúóóúóúóóúóúó÷óóóóúóóúúóúúóüóúóúúúúúúúúóúúúúúúüúúúúúúúüúúúúüúüúúúüúúúüúüúüúüúüúüúúüüüüüüüüüúüüúüüüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüþüüþüüüþüýüüüþüþüþüþüýýþüþýþýþüþüþýýþýýþýþýþþýþþþþüþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþþÿüÿüÿüÿÿþþþÿþþÿüÿüÿüÿÿþÿüÿþþÿüÿÿÿþþÿþÿüÿüÿÿüÿþÿÿÿþÿÿþÿÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿþÿÿþÿþÿÿÿþÿþÿÿÿÿÿþÿþÿÿþÿÿþÿþÿþÿþþÿþÿþÿþþþÿþÿþþÿþÿþþþþýÿýÿýÿþþýþýþþþþÿþÿýÿþþþþþþþþþþþþþþþþýþýýþþýþýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýüýüýýýýýýýýýýüýüýüýüýüýúýüüüüýüüüüýüüüúüüýúýúýúýúüúýúüüúüüýúüüúûúýúýúüúúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷÷úú÷÷ú÷÷÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õèÙ×ÓÓ”Y                                                                                                                                                                                                                       Y˜ÓÓ×Ùèòóó÷÷ó÷óóúóó÷óó÷úó÷úóúóúúóúóúúúúúúúúúüóúúóúóúúúúúóúúóúúúúúóüóüóúúúúúúúúúúüúúúúúüúúüúüúüúúúúúüúüúüüüúúüúúúüúüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüþüüüüþýýüþüüþüþüþüýüüüþüþüþýýüþýþþþþüþýþüþþþþþþþþþþýþþþþþþþþþþþþþþÿþþþþþþþþþþþþþÿþþþþÿþþÿþÿüÿþþÿþþþÿþÿþÿÿüÿüÿÿþÿÿþÿÿüÿþÿÿÿþÿÿÿÿýÿÿÿþÿüÿÿþÿÿþÿÿþÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿþÿÿþÿÿþÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿþÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿÿÿþÿþÿþÿþÿþþÿþÿþþÿýÿþÿþÿþÿþÿþÿþÿþÿýþýþþþþþþþþþþþþþþþþþþþþþýþþýýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüüüüüüüüüüüýüýüýüýüýüýúýüüýúýúýúýüüüúüüüüüüúýúýúüúûüúûúüúúýúúúúúúúûúúúúúúûüúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷úúú÷÷ú÷÷÷ú÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÚ×ÓÓ�]                                                                                                                                                                                          Z�ÓÓ×Ùæèó÷ó÷÷÷÷úóú÷ó÷óúóúóúóóúóúóúóúóúóóóóóúúúúúúóúóúüóüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúüúúúúúúúüüúüüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüþüüüþüüüüþüüþüüþüþüþþþþþüþýýýýþþüþüüþþþýþþýþþüþþþþüþþþþþþþþþþþþüþþþüþþþþþþþþþþþþþþþþÿþþüÿþüÿüÿüÿþüÿþþÿþÿüÿüÿÿüÿüÿüÿýüÿþÿþýþþÿþýÿþÿþÿþÿÿÿþÿÿþÿÿþÿÿþÿþÿÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿþÿþÿÿÿþÿÿÿÿÿþÿþÿþÿþÿþÿþÿþþþþÿþÿþÿþÿþÿþýÿýÿýÿþþþþþþýþþþþþþýýÿýÿþþþþþþþþþýþýþýýýýýýýþþýýþþýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýýýýýýüýüüüüüüüüüüüúýüýüýúýüûüüüýúýúýúýúüúýúüüúüúýúúýúüüýúýúýúüûúýúúúûúüûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷úú÷úú÷÷÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñèÙÓÓÓÇx!                                                                                                                                                                                            ‚žÓ×Ó×Ùèñóóóóó÷óúóú÷úóúóúúóúóúóúóúóúúúüúúúóúúóúüúúóúúóúúóüóüóüóüúúúúúúúúúúúúüúüúúüúüúúüúüüúüúüüüüúüüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüþüüþüþüþüüþüüüüüüþüþüþüýýýýþþüþýþüþþüþþþüþþþþþþþþþþþþþþÿüÿüÿþþÿþþþþþþþþþþÿüÿþþþÿüÿþÿþÿüÿþÿþþÿüÿüÿÿýÿüÿþÿþÿþÿÿÿÿýÿÿÿÿþÿÿÿþÿþÿÿþÿþÿÿþÿþÿÿÿþÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿþÿþÿþÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿþÿþÿþÿýÿþÿþÿýÿýÿýÿþÿþÿÿþÿþÿþÿþÿýþþþÿþÿýþþþÿýÿýÿýÿýÿýÿýþþþýýþýþýþþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüýüýýýýýýýýýýýüüüüüüüüüüýúýúüúýúýúýúýúüúýúýüúýúüúúúúúúúúúúúúúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úúú÷÷ú÷÷÷ú÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷òèÚ×ÓÓÓÓƒ@                                                                                                                                                                                     Z”ÇÓÓÓÓÙèñò÷óóóóó÷úóúóóúóúóüóúóúúó÷óóúóúóúúóúóúüóúúúúúúúúúúúúúúúüúüúüúüúüúúüúüúüúüüúüúúüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüþüþüþþþþþþþþþýþþþþþþüþþþþþüþþþþþþþþþüþþüþþþþüþüþüþüþüþýþüÿüþþþþþþþüÿüþþþüÿüþþüÿüÿüÿýÿüÿýÿüÿüÿýÿüÿýÿþýýÿýÿýýÿþÿýÿþÿÿýÿþÿÿþÿþÿÿþÿþÿÿþÿþÿþÿþÿþÿÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿþÿþÿþÿÿþÿÿþþþþþþþÿþÿþÿþþþþþþÿþýÿýÿþþýÿýÿýÿýÿþþþþýþþýþþýýýþýÿýþýþüÿþþýýýýýýýýýýýýýýýýýþýþþþþüÿýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüüüüüüüüüüüüüüüüüüüúüüüüüüüüüüüüüýúüúüúúüúýúüüüüúýúýúýúýúúûúúüúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷úú÷úú÷÷÷ú÷÷÷÷÷÷÷÷õñèà×ÓÓÓÓ˜_;                                                                                                                                                                                                    Z”ÓÓÓÓÓÓ×àæèòóóúóú÷÷÷÷ó÷÷÷üóúúúúúúúúúúúúúü÷úúúúúúúúúúúúúúúúúúúúúúúúúúúüúüúüúüúúüúüüüüúüúüúúúüúúüúúúúüúüúüúúüúüüúüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüüþüþüþüþþüþüþüþþþþþþþþþþþþþÿüÿüÿüÿüÿüÿýÿüÿþþÿþþÿýÿþÿþÿýÿÿýÿÿÿýÿýÿýÿýÿþÿþÿÿÿýÿÿÿþÿÿÿÿýÿÿÿÿýÿÿÿþÿþÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþÿþÿþÿþÿÿýÿÿýÿÿÿýÿþÿþÿþÿþþþÿýÿýÿýÿýÿüÿüÿüÿüÿüþýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýüýüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúüúüúüúúüüúüúüüúüúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷ú÷÷÷÷õèèàÙÓÓÓÓÓÓ›_;                                                                                                                                                                                                        _{›ÊÓÓÓÓÓÓÓ×ÙÙßàßæèèèñèñèñèñèñèññèñèñèññññññññññññññññññññññññññññññññññññòñññññññòññòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòõòõòòòòõòõòòõòõòõòõòõòõòõòõòõòõõõõõòõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ÷õõõ÷õõõõõõõõõõ÷õõõõõ÷õõ÷õõõ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷÷õ÷õ÷÷õ÷÷÷÷÷õ÷÷÷õ÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úùú÷÷úú÷÷÷÷÷ú÷÷÷ú÷úú÷ú÷ú÷÷úúú÷û÷÷÷÷û÷úúúúúûúúúúú÷ûúúúúûúúûúûúúúúúúúûú÷úúø÷úúú÷úúúú÷ú÷û÷÷ú÷÷÷÷÷ø÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷÷÷÷÷õ÷õ÷õ÷÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õõ÷õõ÷õõõ÷õõõõõõõõ÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõòõòõòõòõñõõñõòôõñõñõñõñõñõòéòòôñõñôñôñôññôñôñôñôñôññëñôèõèôñôèñèôñèôèñèñèñèñèèèèèàààÙÙÙ×ÓÓÓÓÓÓÓžƒ];                                                                                                                                                                                                                        #Yx”žÓÓÓÓÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓÓÓÓÓÓ××ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ××Ó×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÕ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ××××ǘzY;                                                                                                                                                                                                     ;;@Y]Zxzzzzzzzzzzxzzzz‚zzzz‚zzzzzzz‚zzz‚zzx{‚zzz‚zzzzz‚zx‚zxxzzzzzz‚xzzzzzxzxzz‚xzzzzzz‚zxzzzz‚zzz‚z‚zz‚z‚x‚xzzzzz‚x‚‚zzzzz‚zzzzzzzz‚zzzx‚zz‚zzzzzxzx‚{zxzzzxzxzzxz‚zzzzxzzzxxzzzzzzzzzzzzzz‚z‚xzzzzzzzzxzxxzzzz‚xzzxz{zzzzzxzzzz‚‚xzzzzzz‚xzzzzzzzzxz‚zxxzz�xzzzzzxz‚zzzzƒ�ÆÇÆÇÆÊÌÌ×ÌÌÌ×ÌÌÌÌÌÊÌÌÌÌÌÌÌÌ×ÌÊÌÌÌÌÌÌÙ×ÌÌ×ßÌ×ßÙÌßÙßßßßßßßßßÌßÙß××ÌÌÌÌÌÊÌÌÌÊÌÊÆÊÆÆÆ�Æ�›Æ–››››–›––––––”–‚”‚‚‚ƒ‚ƒ“‚ƒƒƒ‚ƒ‚”‚ƒƒ‚‚ƒ‚ƒzzzzzzxzzzzzzzzzxzxz‚z‚zx‚xzzzzzxzzzz‚z‚zxzzxz‚zzzzzzzzzzzzzzzzzzxzzzxzzzzz‚{zzzzzzzzzzzzzzzzxzzzzzzzzz‚zzzzzzzzzzzzzxzzzz‚zx{‚zzzz‚zzzxxxzzz‚zxzxxzzzzzxzzzzzzzzzzzxzz‚zzzzzxz‚xzzzz‚xzz‚x{zz‚{‚z‚‚zzz‚xxxzzzzzzzzzzzzzzz{zzzxzzzz‚x‚‚zzxzzzzx‚zzzzzzzzzzz‚zzzzz‚zzzzxxZYY;;                                                                                                                                                                                                                                           "chhÁÄÄÍÍÍÍÄÍÍÄÍÍÄÍÄÍÍÍÍÍÄÍÄÄÍÄÍÍÑÑÍÑÍÍÑÑÍÑÑÑÑÍÑÑÑÑÑÑÑÑðÑÑðÑððÑÍÑÍÍÍÍÍÍÍÄÄÁÁÁÁÁhÁhhhhhhhcccccXXXXTTTTTT                                                                                                                                                                                                                                                                     chÁÁÁÁÁÄÄÍÄÍÄÍÄÍÄÄÄÄÄÍÄÄÄÄÄÄÄÍÄÍÄÍÍÍÄÍÍÍÑÍÍÑÑÑÍÑÑÑÑÑÑÑðáððÑïÑÑÍÐÐÐÄÍÍÄÄÄÄÄÁÄÁÁÁhhhhhcccbccXXXXTXTXTT"                                                                                                                                                                                                                                                            dÁÁÁÁÁÄÄÄÄÄÄÄÍÍÍÍÍÍÄÄÄÄÍÄÄÄÄÍÄÍÍÄÄÍÍÍÍÍÍÍÍÍÍÑÑÑÐÑðÑÑÐðððïÑÑÑáÑÑÍÍÈÄÍÄÄÄÄÁÄÄÁÁhhÁhhhhccccXXXXXXXTTTTTT                                                                                                                                                                                                                                         "chhhhÁÁÁÄÍÍÄÄÄÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÄÄÄÄÍÍÄÄÍÄÍÑÍÑÍÍÍÍÑÑÍÑçðÑÑÑÑÑðÑÍÑÍÑÍÍÍÍÍÄÁÄÄÄÁÁÁÁhhhhcccccccbXXVXTTT"M                                                                                                                                                                                                                                           "chhhhÁÁÄÄÄÄÄÍÁÍÄÁÁÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÍÄÄÍÍÄÍÍÍÑÍÍÍÍÍÑÑÑÑÑÑðÑÑÑðÑÑÐÍÍÍÍÍÄÄÄÄÄÁÁÁÁÁhhhhcccccbccXXXTTTX:T"                                                                                                                                                                                                                           chhhÁÁÁÁÄÄÁÁÁÁÁÁÄÄÄÁÄÄÍÁÄÁÄÄÄÄÍÁÍÍÄÍÄÄÍÍÍÍÍÍÍÍÑÑÑÑÑÑÑÑðïðïÑÑÍÍÍÍÍÍÍÄÄÍÄÄÄÄÁÁÁhÁÁhhhhhcbccXXXXTXTTTTT"                                                                                                                                                                                                                       cdhhhhÁÁÁÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÁÍÄÄÍÄÍÍÍÄÍÑÍÍÍÑÍÑÑðÑÑÑÑÑïáÑÑÐÍÑÍÍÍÍÄÄÄÄÄÁÄÁÁÁÁhhhchcccXcXXXXXXTTTTT                                                                                                                                                                                              chhhhhhÁÁÄÄÄÄÁÄÄÄÁÁÁÄÁÄÄÄÄÄÄÄÁÄÄÄÄÍÍÄÄÍÍÍÍÍÍÑÑÑÑÑáÑÑÑðÑÑÑïïÑÎÑÍÍÍÍÍÍÄÄÄÄÁÄÄÁÁÁÁhhhccccccXXXXXTTTTTT                                                                                                                                                                                                                bhhhhhhÁÁÄÁÄÄÄÁÄÁÄÄÄÄÁÁÄÁÍÁÁÄÍÄÍÍÄÄÍÍÍÍÍÍÑÑÍÑÑÑðÑÑÐÑÑÑóðððïÑðÑÍÍÑÑÄÍÍÄÄÄÄÄÁÄÁÁhhhhhcccccXXcXTTXXTTT""                                                                                                                                                                         ^hhhhh¾ÁÄÄÁÄÄÄÄÄÄÁÁÄÄÄÄÄÁÄÄÄÄÍÄÄÍÄÍÍÍÍÑÑÍÑÑÎÑÑÑðÑïðÑððððððÑððïÑÑÑÍÍÍÍÍÍÄÄÄÄÁÁÁÁÁhhhhcccccXXXXXXTTTT                                                                                                                                                                             chhhh••ÄÃÁÄÄÁÄÄÍÍÄÄÄÄÄÍÄÄÄÄÄÄÄÑÄÄÍÍÍÍÍÑÑÍÑÐÑïÑÑððÑððóðóðððïððððÑÍÍÍÍÍÄÄÄÄÄÁÄÁÄÁÁÁhhhhhcccXXXXXXTTTTT"T                                                                                                                                                                    ccghhÁ¹ÁÄÄÄÄÄÄÄÄÄÄÄÄÍÄÄÄÍÍÄÍÄÍÄÍÍÑÑÍÍÑÍÑÑÑÑðÑððÑïóððððóïóòððïÑïÑÑÑÍÍÍÍÍÍÍÄÄÄÁÁÁÁÁÁhhhccccccbXXXXTT"M                                                                                                                                                                      chhhhÁÁÁÄÍÄÄÄÍÄÄÄÄÍÄÍÄÍÄÍÍÍÄÄÍÍÑÑÍÑÍÑÑÎïÑÑïðÑðððððóïðóðóóððóððððÑÑÑÍÍÑÍÍÄÍÄÄÄÄÁÁÁÁÁhhccccccXbXXTUTTTT                                                                                                                                                           "ch„ÁÁÁÁÁÁÄÄÍÄÄÄÍÄÍÄÄÍÄÄÍÍÄÄÍÍÍÑÑÑÑÑÑÑÍïðððððððóðóðóóóóóóóóððððÑïðÑÑÑÑÍÍÍÄÍÄÄÄÄÁÁÁhhÁhchcccccXXXTXTT"T"                                                                                                                                               cÁ¹•¾ÁÁÄÄÄÍÄÍÄÍÄÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÑÍÑÑðÑððáÑïðïðððóðóðóóóóóóóððóðïðððÑÑÑÍÍÍÍÄÄÄÄÄÄÁÄÁÁhhhhccccXXXXXTXTT"M                                                                                                                                                                                c�•hÁÂÁÄÄÍÄÍÍÍÄÍÍÍÍÍÑÑÍÑÑÍÑÍÑÑÑÍÑÑððÑÑÑïÑïðððóðóðóóððððóóóððóòðððÑÍÑÍÍÍÍÍÍÄÍÄÄÄÁÁÁÁhÁhhhhccccXXXXXXTTT                                                                                                                                                                    c„Á¹ÁÄÄÄÄÑÍÍÍÍÑÍÍÍÍÍÍÍÍÍÑÑÍÍÑÑÑÍÑÑÑðÑððððóððóóðóðóóóóóüüüóóóðððïáÑÑÑÑÍÍÑÍÍÍÄÄÄÄÁÁÄÁÁhhhhccccXXbXXTTTT"                                                                                                                                                                  chÁÁÁÁÄÄÍÑÍÍÍÍÍÑÑÑÑÍÑÍÍÑÍÑÑÑÑÑÑÑÑÑÑðÑðððððððóóðóóóóóúóóóüúóðóððððïÑÑÑÑÍÍÑÍÍÍÄÄÄÁÁÁÁhÁÁhhcdcccXXXXXUTTTT                                                                                                                                                                                  "chÁÄÁÄÄÄÄÍÍÑÍÍÑÑÑÑÑÑÑÑÑÑÍÑÑÑÑÍðÑðÑÑðïðóòððóóóðóóðóóóóóóóóüóóóðððððïÑðÑÑÍÍÍÄÄÄÄÄÄÄÁÁÁÁhhhhccccccXXXXTTTTT                                                                                                                                                       dÁÁÁÄÄÄÍÍÑÑÑÑðÑÑÍÑÑÑÑÑÑÑÑÑÑÑðÍÑÑðððððððððððððððóóóóóóóóüóóóóðóðòïððÑÑÑÍÍÍÍÍÍÄÄÄÁÄÄÁÁÁhhhchcccXbXXXXTTTT                                                                                                                                                           cÁ¾ÁÄÄÍÍÍÑÑÑÑððÑÑðÑÑðÍÑÑÑÍÑÑðÑÑðÑððððððððððóðóðóóóóóóóóóüóóðóððóðððÑÑÑÑÍÍÍÍÄÄÄÁÄÁÄÁÁÁhhhccccccXXXXXTXTT                                                                                                                                                                             "fÁÁÄÄÄÑÍÑððÑÑÑÑÑÑÑÑÑÑÍðÑÑÑÑÍðÑÑðððððóððóðóðóðóððóóúüóüóóüóóóóðððïððÑÑÑÑÍÍÍÍÍÍÄÄÄÄÁÁÁÁhhhhhdccXXXXXXTTTTTTT                                                                                                                                                        dÁÁÄÄÍÍÍÍððÑðÑÑðÑðÑÑðÑÑðÑÑÑÑÑÑÑðÑððÑððóððððóóðóóóóóóóóóüúóóóóððððððÑÑÑÑÍÍÍÍÄÍÄÄÄÁÁÁÁÁÁhhhcccbbXcXXTTUTTT"T                                                                                                                                                     hÁÄÄÄÄÍÑÍðÑðÑðÑÑÑðÑÑðÑÑÑÑðÑÑÑÑððÑððÑðÑðóïðóðóðóüóóóóóóüþüüúðóòððóðÑðÑÍÍÍÍÍÍÄÄÍÄÄÄÄÁÁÁÁhhhcccccccXVXTTTT"T                                                                                                                                         "cÁÁÄÄÍÍÍÑÑðÑððÑÑÑðÑðððÑÑÑÑððÑðÑðÑÑðððððóïóóðòððúðóóóóóóóóóóóóóðððÑÑÑÑÑÑÍÍÍÍÍÄÄÄÄÁÁÁÁÁhhhÁchcccXXXXTXTTTT"TT                                                                                                                        "fÁÄÄÄÍÍÑÑÑðÑóÑÑÑððÑÑÑðÑÑÑÑÑðÑÑÑðÑÑððððððððóóðóóúóóóóóóóüóóüóóðóððððÑÑÑÍÍÍÍÍÄÍÄÄÄÁÄÁÁhhhhhhccccbXXXXXTTT"MTTT"TT                                                                                                                          "hÁÁÄÄÄÍÑðÑðððÑðððÑÑÑÍðÑðððÑÑðÑÑððððððóððòóóóðóðóóðóóóúüóóóüóððóððððÑÍÑÍÑÑÍÍÄÄÄÄÁÄÁÄÁÁÁhhcchccXXXXXTTTTT""M"TTTT                                                                                                                       hÄÄÄÄÍÍÑðÑðððÑðððÑððÑðÑÑÑÑÑÑðÑðÑóÑÑïððððððððóðóóóóóóóóóüóóóóóóðððÑðÑÑÑÑÑÍÑÄÍÄÄÄÄÁÄÁÁÁÁhhhhccccXXXXXXTT:T"                                                                                                                 "hÂÁÄÍÐÍÑÑððÑÑÑððÑðððÑððÑÍÑÑÑðÑðÑðÑðÑððóðððððððóðóüóóüüóóóóóðððïððÑðÑÑÍÑÍÍÍÍÄÍÄÄÄÄÄÁÁÁhhhccccccXXXXXXXTTTTT                                                                                                   gÁÄÄÈÐÍÑÑÑðððÑððððÑÑÑðÑÑÑÑðÑðÑÑððððáðóððóðóóóóóðóóóüóüüóüüóóóóòððÑðÑÑÑÍÍÍÍÄÍÄÄÄÁÁÁÁÁhhhchhccccXcXTVTTTTTTTTTTTT                                                                                                            !ThÄÂÄÄÍÑÑÑððððÑÑÑðÑÑÑðÑÑðÑðÑÍÑÑÑÑððððÑðððóðóððóóóóóóóóóüóüóóóðóðððÑðÑÑÑÑÍÍÍÍÍÄÄÄÄÁÄÁÁhhhhhcccccXbXXXTTTTT"TTTT                                                                                             TY_T "hÁÄÄÍÄÑÑÑÑðððÑÑÑðÑðÑÑÑÑðÑÑÑÑÑÑÑðððððïðððóóóóðððóóóóóóóüüüóóóððððððððÑÑÑÑÍÍÍÍÍÄÄÄÄÁÁÁÁhhhhchcccbXXXXTTTTTTTTTTT                                                                                                      !chY!   "hÁÄÄÍÍÍÑÑðððððððïÑÑÑÑÑðÑÑÑÑÑÑÑðÑÑÑðððÑððóððððóðóóóóóóóüóóüüóóðóïððÑÑÍÑÑÍÍÍÍÄÄÄÄÄÄÁÄÁhhhhhcccccXXXXXTXT"T:                                                                                                 ZXY   hÁÄÄÄÍÍÑÑðÑðððáððÑÑðÑÑðÑðÑÑððÑðððÑððððïóðóðóðóðóóóóóóüóóóüúðóóóðððÑÑÑÍÍÍÍÍÍÄÍÄÄÁÄÁÁÁhhhhhhccccbXXXXTTTTTTTT                                                                                                                 !dÁÄÄÍÍÍÑðÑððððïÑðÑÑðÑÑÑÑðÑÑÑðÑÑðððÑðÑððððóóóóóóðóóóðóüóóóóóóððððïðððÑÑÑÍÍÍÄÍÄÄÁÄÁÁÁÁÁÁhhcchccbXbXXXTTT:TTTTTT                                                                                         "dÄÄÄÄÍÍÑÑððððïÑðððÑÑðÑÑÑÑðÑÑÑÑÑóÑðððÑòðððòóððóóóóóóóóüüóüüóóóðóðððÑÑÑÍÑÍÑÍÍÄÍÄÄÄÄÁÁÁÁÁhhhhccccXXXVXXTTTTT                                                                                         "fÄÄÄÄÍÍÑÑÑðððÑÑððÑÑÑððÑÑÑÑÑðÑÑðððððáððððððóðóóóóóóóóóúóóüóóóððóððïáÑÑÑÍÍÑÍÍÍÄÄÄÄÁÄÄÁÁÁhhhccccbXbXXXTTTXT":TTT                                                                                         "hÁÄÄÍÍÍÑðððððçðÑÑÑÑÑðððÑÑÑÑðÑÑÑïáÑðïððððððóðóðððóóüóüóóóóóóóóòððáÑðÑÑÑÑÍÍÍÄÍÄÄÄÄÁÄÁÁhhhhcchcccXXXXTXTTTTT"MT                                                                                                      dÁÄÄÍÍÐÑïððÑðïÑðÑðÑÑðÑÑÑÑÑÑÑÑððÑðÑðððððóððóðóððóóóóúóóóüüóóóóðððïðïÑÑÑÑÑÍÍÍÍÄÄÄÁÄÄÁÁÁhhhhcccccXcXXTTXTTT"TT                                                                                                hÁÄÄÄÍÎÑÑðÑïððÑðððÑÑÑÍÑÑÑðÑÑÑðÑïïïÑïóððððððóðóóüóóóóóóüüüúóóóóðððððÑÑÑÍÍÍÄÍÍÍÄÄÄÄÁÁÁÁhhhhhccccXXXXXXTT"TT"TTTTTT                                                                                                      "dÁÄÄÍÍÐÑÑððñðÑÑðÑÑÑððÑððÑÑÑÑÑÑÑðÑðáïóðóððóóóðóðóðóóóóúüóóóóóóóððððððÑÑÍÑÍÍÍÄÍÄÁÄÄÁÁÁhhhhhchcccXXXXXTTUT:M"TTT:                                                                                                     hÁÄÄÍÍÑÑÑððððÑððÑÑððÑÑÑÑÑÑÑÑÑÑÑðÑÑïðððððððóðóóðóóóóüóóóóóóóóóðóðððÑðÑÍÍÍÍÍÍÄÄÄÄÄÄÁÁÁhÁhhhhcccccXXXXTTTTTT                                                                                        "hÁÄÄÄÍÎÑáïïïððððÑðððÑÑÑÑÑÑÑðÑððððÑðáððððððòððóðóóóðóüóüüüóóóóðóððððÑÑÑÍÍÑÍÍÄÄÄÄÄÁÁÄÁÁhhhhchcbbcXXXTXTTTTTTTTT                                                                                                           hÁÄÄÍÍÍÐïÑïðððáðïáÑðÑðÑÑÑðÑðÍððððÑïóððïóððóðóóóðóóóóüóóóüóóóððòðððÑÑÑÑÑÍÍÍÍÍÄÄÄÄÄÁÁÁÁhhhhhcccbcbXXXXTTTTTTTT                                                                                                         hÁÄÄÍÄÍÐðÑçðððïïïÑÑÑÑðÑÑÑðÑÑÑðÑððÑððóðððððóóóóóóóóðóóóóóüóðóððððððÑÑÑÑÑÍÍÍÍÄÄÄÄÄÁÁÁÁhÁhhcccgcXcXXXTXTTTTT"TT                                                                                              hÄÄÄÍÍÍÑÑïððïñÑÑðÑðÑÑóÑÑÑððÑððÑÑÑðÑðððóððóððððóóóóóóóüóüüúóóóóððððÑðÑÑÑÍÍÍÍÍÍÍÁÄÄÁÄÁhhhhhcccccXbXXXTTTTTT"TTT                                                                   dÁÄÄÍÍÍÎÐððïáðïÑðÑððÑðÑðÍðÑÑÑðÑðÑððïÑðóðððððóóóóóóóóóüóüüóóóóððóðÑÑÑÑÑÍÑÍÄÍÍÄÄÄÁÄÁÁÁhhhhdchbXcXXbXXTTTTTM"TT                                                                       dÁÄÄÄÍÐÑÑððÑÑðððÑÑÑðÑÑÑðÑÑÑÑÑððÑÑððóððððóðððóóðóóóüüóóóóóóóóóðóðððÑÑÑÍÑÍÍÍÍÍÍÍÄÄÁÁÁÁhhhhgchcccbXXXXXTTTTT:TTT                                                                hÁÄÄÍÍÑÑÑððððóÑÑÑððÑððÑðÑððÑÑÑÑðÑððððððóóóðóóðóóóóóóóóúóóüóóóóðððððÑÑÑÑÍÑÍÄÄÄÄÄÁÄÄÁÁÁhhhchccccXbXXXVTTTT:T"TTT                                                                "hÁÄÄÄÍÑÑÑÑððððÑðÑððÑÑðÑÑðÑÑÑÑÑÑðÑðððóÑððóóðóðððóóóóóóóóóúüóðóóððÑðððÑÑÑÍÍÍÄÍÄÄÄÄÄÄÁÁÁhhhhcdccbcXXXXXTTTT"T                                                                                 cÁÁÄÍÍÑÑÑÑððððððÑÑðÑÑÑðÑÑÑÑðÑïÑðÑððÑðððïððòóóóóóðóúóüüúóüóóðóóððððÑÑÑÑÍÍÍÑÍÍÄÄÄÄÁÄÁÁÁhÁhhhcccbXXXXTTTT:TTT                                                                   hÄÄÄÄÍÑÑÑÑððÑðÑððÑÑÑðÑÑÑÑÑÑÑÑÑððÑðððððððððóóðóóðóóóóóóóúóüóóóóðððððÑÑÑÍÍÍÍÍÍÄÄÄÄÄÁÁÁhhhhhhcccbX^XXXXTTTT"MTTT:T                       @Y!                                               "hÁÄÄÄÍÑÑïÑððÑðððÑðÑððÑÑÑÍÑÑÑÑÑððáïðððððððóðóðóóðóóóóóóóüóóóóóðòððððÑÑÑÑÍÍÍÄÄÍÄÄÄÄÁÁÁÁÁhhhchXcbXXXXXTTTT:TT                 !c‚X                                             "hÁÄÄÄÍÍÑððððÑÑðÑÑððÑÑÑÑðÑðÑÑÑðÑÑïçÑððïóððððóðóóóóóóóóóüüüóóðóðððððÑÑÑÑÍÍÍÍÍÍÄÄÄÄÄÁÁÁÁhhhchccccXXXXXTTTTTTTTTT"TT                      T_cB                                               hÁÂÄÄÍÍÑÑððððÑððÑððÑÑðÑÑÑÑÑÑÑððÑðÑïððððððððóðóóóóðúóóüüóüóóóóððððïÑÑÑÍÍÑÍÍÍÄÄÄÄÄÁÁÁÁÁhhhhcccccbXXXTTXTTTTT                             @T!                                    "hÁÄÄÍÍÍÑÑððððÑðððÑÑðÑððÑÑÍðÑðððÑóÑðððððóðððóðóóóóóóóóóóóüóóóóóóðððÑÑÑÑÑÑÍÍÍÍÍÄÄÄÄÁÁÁÁhhhhhcccccXXXXTTTTTTTTTT                                                              cÁÄÄÄÍÑÑÑððÑðððððÑðÑÑÑÑððÑÑÑÑÑÑÑðÑðððóðóðóðóóððóóóóóóóóüóóóóððððððÑðÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁÁÁhhchccccXXXXXXTTTTTT:T                                                              "hÁÄÄÍÍÑÑÑððÑððððÑÑðÑÑÑÑðÑÑÑÑðÑÑððððÑððððóðóóóóðóóóóüóóóüóóðóóóðððððÑðÑÍÍÍÍÄÍÄÄÄÄÄÁÁÁÁhhhchccccbXXXXXTTTTTTT                                                                                    hÁÃÄÄÄÑÑÑÑðððÑÑðÑÑððÑÑðÑÑÑÑÑððÑððððððððóðððððððóóóóóóóóüóóóóóóððïáïðÑÑÑÑÍÍÄÍÄÄÁÄÄÁÁÁÁhhhhchcccXXXXVTTTTT"TTT                                                                     "hÁÄÄÍÄÑÑÑððððÑÑððÑÑðÑððÑÑÑÑÑðÑððÑðÑðÑððòððóðóóóðóóóóóóóüüóóóóóóððððÑÑÑÍÍÍÍÍÄÍÄÁÄÄÁÁÁÁhhhhhccccXXXTXXVTTTTTTT                                                                             dÁÁÄÍÍÑÑáððððÑðððÑÑðÑÑÑðÑðÑÑÑðÑððÑÑððïðòïðóóóóðððóóðúüüüüóóóóóðòïððÑÑÑÍÍÍÍÍÍÍÄÄÄÁÁÁÁÁhhhhchccXbXXXXTTTT"T:T                                                                           "hÄÄÄÄÍÑÑÑðÑððÑðÑððððÑÑÑÑÑðÑÑÑÑðÑðÑðððòðððóðóðóóóóóóóóóóóóóóðóððððïðÑÑÑÍÑÍÍÍÄÍÍÄÄÄÁÄÁÁÁhÁhhccbccXXXXXTTTTTT:TTT                                                                                 hÁÄÄÄÑÍÑððÑðððïÑððÑðÑðÑÑÑðÑÑÑðÑÑðððÑðððððóòóðóóóóóðüóóóóüóóóóðððððÑÑÑÑÑÍÍÍÄÍÄÄÄÄÁÁÁÁÁhhhhchccbbXXXXTXTM"TTTT                                                                           hÁÁÄÍÍÑÑÑððïððððÑÑÑÑÑðÑÑÑÑðÑÑðÑðÑÑðððððóððóóóðóðóóóóüóóúüüóóóòðòðÑÑÑÑÑÍÍÍÄÍÄÄÄÄÄÄÁÁÁÁhhhhchccccXXXTTTT":TTTTT                                                                  hÁÄÄÍÍÍÑÑðððÑóððððÑðÑÑðÑÑÑÑÑðÑÑðÑððÑððððððóóðóóóóóóóóóüúóóóóðóóððððÑÑÑÑÑÍÍÍÍÄÄÄÄÄÁÁÁhhhhhccccbbXXXXTXTTTTT                                                                         hÁÄÄÍÄÍÑððððÑðððóÑÑÑÑÑÑðÑÑÑÑððÑðÑðððÑððððððóððóúðóóðóüóüóóóóðóððððÑÑÑÑÑÑÍÄÍÍÍÄÄÄÄÁÁÁÁÁhhhccccXXXXXTVXTTTTT                                                                                      hÁÄÄÍÍÍÍððÑðÑðÑÑðÑÑðÑðÑððÑÑÑÑÑððÑóóðóðððóóððòóóóóóüóüúóóóóóóðóðïðððÑÑÑÍÍÍÍÍÄÄÄÄÄÁÁÄÁÁÁÁhhcccccccXXXTTTTTTTT                                                                                 "gÁÁÄÄÍÍÑÑðÑðððÑÑÑðÑðÑðÑÑÑÑÑÑÑðÑÑÑððÑðððóðóóðòóóðóóúóüüóüóóúóóðóðððÑÑÑÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁhhhchccccbXXXVTTTTTTTT                                                                                                                    "fÄÁÄÄÍÍÑÑðððððððððððÑÑðÑÑðÑÑÑðððÑÑððððóðððóóððóóóóüúóóóüüóóóóóððððÑðÑÍÍÍÍÍÄÍÄÄÄÄÁÁÁhhhhhchhccXXXXXTXTTTT:TT                         CorsixTH-0.70.0/CorsixTH/Bitmap/mainmenu1080.dat000066400000000000000000077220001522247547500210610ustar00rootroot00000000000000                                                                                         "fÄÁÄÄÍÍÑÑðððððððððððÑÑðÑÑðÑÑÑðððÑÑððððóðððóóððóóóóüúóóóüüóóóóóððððÑðÑÍÍÍÍÍÄÍÄÄÄÄÁÁÁhhhhhchhccXXXXXTXTTTT:TT                                                                                    "gÁÁÄÄÍÍÑÑðÑðððÑÑÑðÑðÑðÑÑÑÑÑÑÑðÑÑÑððÑðððóðóóðòóóðóóúóüüóüóóúóóðóðððÑÑÑÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁhhhchccccbXXXVTTTTTTTT                                                                                                 hÁÄÄÍÍÍÍððÑðÑðÑÑðÑÑðÑðÑððÑÑÑÑÑððÑóóðóðððóóððòóóóóóüóüúóóóóóóðóðïðððÑÑÑÍÍÍÍÍÄÄÄÄÄÁÁÄÁÁÁÁhhcccccccXXXTTTTTTTT                                                                                 hÁÄÄÍÄÍÑððððÑðððóÑÑÑÑÑÑðÑÑÑÑððÑðÑðððÑððððððóððóúðóóðóüóüóóóóðóððððÑÑÑÑÑÑÍÄÍÍÍÄÄÄÄÁÁÁÁÁhhhccccXXXXXTVXTTTTT                                                                    hÁÄÄÍÍÍÑÑðððÑóððððÑðÑÑðÑÑÑÑÑðÑÑðÑððÑððððððóóðóóóóóóóóóüúóóóóðóóððððÑÑÑÑÑÍÍÍÍÄÄÄÄÄÁÁÁhhhhhccccbbXXXXTXTTTTT                                                                      hÁÁÄÍÍÑÑÑððïððððÑÑÑÑÑðÑÑÑÑðÑÑðÑðÑÑðððððóððóóóðóðóóóóüóóúüüóóóòðòðÑÑÑÑÑÍÍÍÄÍÄÄÄÄÄÄÁÁÁÁhhhhchccccXXXTTTT":TTTTT                                                                       hÁÄÄÄÑÍÑððÑðððïÑððÑðÑðÑÑÑðÑÑÑðÑÑðððÑðððððóòóðóóóóóðüóóóóüóóóóðððððÑÑÑÑÑÍÍÍÄÍÄÄÄÄÁÁÁÁÁhhhhchccbbXXXXTXTM"TTTT                                                                            "hÄÄÄÄÍÑÑÑðÑððÑðÑððððÑÑÑÑÑðÑÑÑÑðÑðÑðððòðððóðóðóóóóóóóóóóóóóóðóððððïðÑÑÑÍÑÍÍÍÄÍÍÄÄÄÁÄÁÁÁhÁhhccbccXXXXXTTTTTT:TTT                                                                                 dÁÁÄÍÍÑÑáððððÑðððÑÑðÑÑÑðÑðÑÑÑðÑððÑÑððïðòïðóóóóðððóóðúüüüüóóóóóðòïððÑÑÑÍÍÍÍÍÍÍÄÄÄÁÁÁÁÁhhhhchccXbXXXXTTTT"T:T                                                                          "hÁÄÄÍÄÑÑÑððððÑÑððÑÑðÑððÑÑÑÑÑðÑððÑðÑðÑððòððóðóóóðóóóóóóóüüóóóóóóððððÑÑÑÍÍÍÍÍÄÍÄÁÄÄÁÁÁÁhhhhhccccXXXTXXVTTTTTTT                                                                                  hÁÃÄÄÄÑÑÑÑðððÑÑðÑÑððÑÑðÑÑÑÑÑððÑððððððððóðððððððóóóóóóóóüóóóóóóððïáïðÑÑÑÑÍÍÄÍÄÄÁÄÄÁÁÁÁhhhhchcccXXXXVTTTTT"TTT                                                                   "hÁÄÄÍÍÑÑÑððÑððððÑÑðÑÑÑÑðÑÑÑÑðÑÑððððÑððððóðóóóóðóóóóüóóóüóóðóóóðððððÑðÑÍÍÍÍÄÍÄÄÄÄÄÁÁÁÁhhhchccccbXXXXXTTTTTTT                                                                         cÁÄÄÄÍÑÑÑððÑðððððÑðÑÑÑÑððÑÑÑÑÑÑÑðÑðððóðóðóðóóððóóóóóóóóüóóóóððððððÑðÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁÁÁhhchccccXXXXXXTTTTTT:T                  @T!                                    "hÁÄÄÍÍÍÑÑððððÑðððÑÑðÑððÑÑÍðÑðððÑóÑðððððóðððóðóóóóóóóóóóóüóóóóóóðððÑÑÑÑÑÑÍÍÍÍÍÄÄÄÄÁÁÁÁhhhhhcccccXXXXTTTTTTTTTT                     T_cB                                               hÁÂÄÄÍÍÑÑððððÑððÑððÑÑðÑÑÑÑÑÑÑððÑðÑïððððððððóðóóóóðúóóüüóüóóóóððððïÑÑÑÍÍÑÍÍÍÄÄÄÄÄÁÁÁÁÁhhhhcccccbXXXTTXTTTTT                     !c‚X                                             "hÁÄÄÄÍÍÑððððÑÑðÑÑððÑÑÑÑðÑðÑÑÑðÑÑïçÑððïóððððóðóóóóóóóóóüüüóóðóðððððÑÑÑÑÍÍÍÍÍÍÄÄÄÄÄÁÁÁÁhhhchccccXXXXXTTTTTTTTTT"TT                    @Y!                                               "hÁÄÄÄÍÑÑïÑððÑðððÑðÑððÑÑÑÍÑÑÑÑÑððáïðððððððóðóðóóðóóóóóóóüóóóóóðòððððÑÑÑÑÍÍÍÄÄÍÄÄÄÄÁÁÁÁÁhhhchXcbXXXXXTTTT:TT                                                                 hÄÄÄÄÍÑÑÑÑððÑðÑððÑÑÑðÑÑÑÑÑÑÑÑÑððÑðððððððððóóðóóðóóóóóóóúóüóóóóðððððÑÑÑÍÍÍÍÍÍÄÄÄÄÄÁÁÁhhhhhhcccbX^XXXXTTTT"MTTT:T                                                                            cÁÁÄÍÍÑÑÑÑððððððÑÑðÑÑÑðÑÑÑÑðÑïÑðÑððÑðððïððòóóóóóðóúóüüúóüóóðóóððððÑÑÑÑÍÍÍÑÍÍÄÄÄÄÁÄÁÁÁhÁhhhcccbXXXXTTTT:TTT                                                                 "hÁÄÄÄÍÑÑÑÑððððÑðÑððÑÑðÑÑðÑÑÑÑÑÑðÑðððóÑððóóðóðððóóóóóóóóóúüóðóóððÑðððÑÑÑÍÍÍÄÍÄÄÄÄÄÄÁÁÁhhhhcdccbcXXXXXTTTT"T                                                                  hÁÄÄÍÍÑÑÑððððóÑÑÑððÑððÑðÑððÑÑÑÑðÑððððððóóóðóóðóóóóóóóóúóóüóóóóðððððÑÑÑÑÍÑÍÄÄÄÄÄÁÄÄÁÁÁhhhchccccXbXXXVTTTT:T"TTT                                                                            dÁÄÄÄÍÐÑÑððÑÑðððÑÑÑðÑÑÑðÑÑÑÑÑððÑÑððóððððóðððóóðóóóüüóóóóóóóóóðóðððÑÑÑÍÑÍÍÍÍÍÍÍÄÄÁÁÁÁhhhhgchcccbXXXXXTTTTT:TTT                                                                 dÁÄÄÍÍÍÎÐððïáðïÑðÑððÑðÑðÍðÑÑÑðÑðÑððïÑðóðððððóóóóóóóóóüóüüóóóóððóðÑÑÑÑÑÍÑÍÄÍÍÄÄÄÁÄÁÁÁhhhhdchbXcXXbXXTTTTTM"TT                                                                        hÄÄÄÍÍÍÑÑïððïñÑÑðÑðÑÑóÑÑÑððÑððÑÑÑðÑðððóððóððððóóóóóóóüóüüúóóóóððððÑðÑÑÑÍÍÍÍÍÍÍÁÄÄÁÄÁhhhhhcccccXbXXXTTTTTT"TTT                                                                                                     hÁÄÄÍÄÍÐðÑçðððïïïÑÑÑÑðÑÑÑðÑÑÑðÑððÑððóðððððóóóóóóóóðóóóóóüóðóððððððÑÑÑÑÑÍÍÍÍÄÄÄÄÄÁÁÁÁhÁhhcccgcXcXXXTXTTTTT"TT                                                                                                                       hÁÄÄÍÍÍÐïÑïðððáðïáÑðÑðÑÑÑðÑðÍððððÑïóððïóððóðóóóðóóóóüóóóüóóóððòðððÑÑÑÑÑÍÍÍÍÍÄÄÄÄÄÁÁÁÁhhhhhcccbcbXXXXTTTTTTTT                                                                                             "hÁÄÄÄÍÎÑáïïïððððÑðððÑÑÑÑÑÑÑðÑððððÑðáððððððòððóðóóóðóüóüüüóóóóðóððððÑÑÑÍÍÑÍÍÄÄÄÄÄÁÁÄÁÁhhhhchcbbcXXXTXTTTTTTTTT                                                                                                     hÁÄÄÍÍÑÑÑððððÑððÑÑððÑÑÑÑÑÑÑÑÑÑÑðÑÑïðððððððóðóóðóóóóüóóóóóóóóóðóðððÑðÑÍÍÍÍÍÍÄÄÄÄÄÄÁÁÁhÁhhhhcccccXXXXTTTTTT                                                                                           "dÁÄÄÍÍÐÑÑððñðÑÑðÑÑÑððÑððÑÑÑÑÑÑÑðÑðáïóðóððóóóðóðóðóóóóúüóóóóóóóððððððÑÑÍÑÍÍÍÄÍÄÁÄÄÁÁÁhhhhhchcccXXXXXTTUT:M"TTT:                                                                                         hÁÄÄÄÍÎÑÑðÑïððÑðððÑÑÑÍÑÑÑðÑÑÑðÑïïïÑïóððððððóðóóüóóóóóóüüüúóóóóðððððÑÑÑÍÍÍÄÍÍÍÄÄÄÄÁÁÁÁhhhhhccccXXXXXXTT"TT"TTTTTT                                                                                                                dÁÄÄÍÍÐÑïððÑðïÑðÑðÑÑðÑÑÑÑÑÑÑÑððÑðÑðððððóððóðóððóóóóúóóóüüóóóóðððïðïÑÑÑÑÑÍÍÍÍÄÄÄÁÄÄÁÁÁhhhhcccccXcXXTTXTTT"TT                                                                                              "hÁÄÄÍÍÍÑðððððçðÑÑÑÑÑðððÑÑÑÑðÑÑÑïáÑðïððððððóðóðððóóüóüóóóóóóóóòððáÑðÑÑÑÑÍÍÍÄÍÄÄÄÄÁÄÁÁhhhhcchcccXXXXTXTTTTT"MT                                                                                       "fÄÄÄÄÍÍÑÑÑðððÑÑððÑÑÑððÑÑÑÑÑðÑÑðððððáððððððóðóóóóóóóóóúóóüóóóððóððïáÑÑÑÍÍÑÍÍÍÄÄÄÄÁÄÄÁÁÁhhhccccbXbXXXTTTXT":TTT                                                                                      "dÄÄÄÄÍÍÑÑððððïÑðððÑÑðÑÑÑÑðÑÑÑÑÑóÑðððÑòðððòóððóóóóóóóóüüóüüóóóðóðððÑÑÑÍÑÍÑÍÍÄÍÄÄÄÄÁÁÁÁÁhhhhccccXXXVXXTTTTT                                                                                                                 !dÁÄÄÍÍÍÑðÑððððïÑðÑÑðÑÑÑÑðÑÑÑðÑÑðððÑðÑððððóóóóóóðóóóðóüóóóóóóððððïðððÑÑÑÍÍÍÄÍÄÄÁÄÁÁÁÁÁÁhhcchccbXbXXXTTT:TTTTTT                                                                                                ZXY   hÁÄÄÄÍÍÑÑðÑðððáððÑÑðÑÑðÑðÑÑððÑðððÑððððïóðóðóðóðóóóóóóüóóóüúðóóóðððÑÑÑÍÍÍÍÍÍÄÍÄÄÁÄÁÁÁhhhhhhccccbXXXXTTTTTTTT                                                                                                 !chY!   "hÁÄÄÍÍÍÑÑðððððððïÑÑÑÑÑðÑÑÑÑÑÑÑðÑÑÑðððÑððóððððóðóóóóóóóüóóüüóóðóïððÑÑÍÑÑÍÍÍÍÄÄÄÄÄÄÁÄÁhhhhhcccccXXXXXTXT"T:                                                                                              TY_T "hÁÄÄÍÄÑÑÑÑðððÑÑÑðÑðÑÑÑÑðÑÑÑÑÑÑÑðððððïðððóóóóðððóóóóóóóüüüóóóððððððððÑÑÑÑÍÍÍÍÍÄÄÄÄÁÁÁÁhhhhchcccbXXXXTTTTTTTTTTT                                                                                                             !ThÄÂÄÄÍÑÑÑððððÑÑÑðÑÑÑðÑÑðÑðÑÍÑÑÑÑððððÑðððóðóððóóóóóóóóóüóüóóóðóðððÑðÑÑÑÑÍÍÍÍÍÄÄÄÄÁÄÁÁhhhhhcccccXbXXXTTTTT"TTTT                                                                                                      gÁÄÄÈÐÍÑÑÑðððÑððððÑÑÑðÑÑÑÑðÑðÑÑððððáðóððóðóóóóóðóóóüóüüóüüóóóóòððÑðÑÑÑÍÍÍÍÄÍÄÄÄÁÁÁÁÁhhhchhccccXcXTVTTTTTTTTTTTT                                                                                                                      "hÂÁÄÍÐÍÑÑððÑÑÑððÑðððÑððÑÍÑÑÑðÑðÑðÑðÑððóðððððððóðóüóóüüóóóóóðððïððÑðÑÑÍÑÍÍÍÍÄÍÄÄÄÄÄÁÁÁhhhccccccXXXXXXXTTTTT                                                                                                                 hÄÄÄÄÍÍÑðÑðððÑðððÑððÑðÑÑÑÑÑÑðÑðÑóÑÑïððððððððóðóóóóóóóóóüóóóóóóðððÑðÑÑÑÑÑÍÑÄÍÄÄÄÄÁÄÁÁÁÁhhhhccccXXXXXXTT:T"                                                                                                                  "hÁÁÄÄÄÍÑðÑðððÑðððÑÑÑÍðÑðððÑÑðÑÑððððððóððòóóóðóðóóðóóóúüóóóüóððóððððÑÍÑÍÑÑÍÍÄÄÄÄÁÄÁÄÁÁÁhhcchccXXXXXTTTTT""M"TTTT                                                                                                                         "fÁÄÄÄÍÍÑÑÑðÑóÑÑÑððÑÑÑðÑÑÑÑÑðÑÑÑðÑÑððððððððóóðóóúóóóóóóóüóóüóóðóððððÑÑÑÍÍÍÍÍÄÍÄÄÄÁÄÁÁhhhhhhccccbXXXXXTTT"MTTT"TT                                                                                                                                    "cÁÁÄÄÍÍÍÑÑðÑððÑÑÑðÑðððÑÑÑÑððÑðÑðÑÑðððððóïóóðòððúðóóóóóóóóóóóóóðððÑÑÑÑÑÑÍÍÍÍÍÄÄÄÄÁÁÁÁÁhhhÁchcccXXXXTXTTTT"TT                                                                                                                                                hÁÄÄÄÄÍÑÍðÑðÑðÑÑÑðÑÑðÑÑÑÑðÑÑÑÑððÑððÑðÑðóïðóðóðóüóóóóóóüþüüúðóòððóðÑðÑÍÍÍÍÍÍÄÄÍÄÄÄÄÁÁÁÁhhhcccccccXVXTTTT"T                                                                                                                                            dÁÁÄÄÍÍÍÍððÑðÑÑðÑðÑÑðÑÑðÑÑÑÑÑÑÑðÑððÑððóððððóóðóóóóóóóóóüúóóóóððððððÑÑÑÑÍÍÍÍÄÍÄÄÄÁÁÁÁÁÁhhhcccbbXcXXTTUTTT"T                                                                                                                                                                          "fÁÁÄÄÄÑÍÑððÑÑÑÑÑÑÑÑÑÑÍðÑÑÑÑÍðÑÑðððððóððóðóðóðóððóóúüóüóóüóóóóðððïððÑÑÑÑÍÍÍÍÍÍÄÄÄÄÁÁÁÁhhhhhdccXXXXXXTTTTTTT                                                                                                                                                                   cÁ¾ÁÄÄÍÍÍÑÑÑÑððÑÑðÑÑðÍÑÑÑÍÑÑðÑÑðÑððððððððððóðóðóóóóóóóóóüóóðóððóðððÑÑÑÑÍÍÍÍÄÄÄÁÄÁÄÁÁÁhhhccccccXXXXXTXTT                                                                                                                                                       dÁÁÁÄÄÄÍÍÑÑÑÑðÑÑÍÑÑÑÑÑÑÑÑÑÑÑðÍÑÑðððððððððððððððóóóóóóóóüóóóóðóðòïððÑÑÑÍÍÍÍÍÍÄÄÄÁÄÄÁÁÁhhhchcccXbXXXXTTTT                                                                                                                                                                            "chÁÄÁÄÄÄÄÍÍÑÍÍÑÑÑÑÑÑÑÑÑÑÍÑÑÑÑÍðÑðÑÑðïðóòððóóóðóóðóóóóóóóóüóóóðððððïÑðÑÑÍÍÍÄÄÄÄÄÄÄÁÁÁÁhhhhccccccXXXXTTTTT                                                                                                                                                              chÁÁÁÁÄÄÍÑÍÍÍÍÍÑÑÑÑÍÑÍÍÑÍÑÑÑÑÑÑÑÑÑÑðÑðððððððóóðóóóóóúóóóüúóðóððððïÑÑÑÑÍÍÑÍÍÍÄÄÄÁÁÁÁhÁÁhhcdcccXXXXXUTTTT                                                                                                                                                                         c„Á¹ÁÄÄÄÄÑÍÍÍÍÑÍÍÍÍÍÍÍÍÍÑÑÍÍÑÑÑÍÑÑÑðÑððððóððóóðóðóóóóóüüüóóóðððïáÑÑÑÑÍÍÑÍÍÍÄÄÄÄÁÁÄÁÁhhhhccccXXbXXTTTT"                                                                                                                                                                           c�•hÁÂÁÄÄÍÄÍÍÍÄÍÍÍÍÍÑÑÍÑÑÍÑÍÑÑÑÍÑÑððÑÑÑïÑïðððóðóðóóððððóóóððóòðððÑÍÑÍÍÍÍÍÍÄÍÄÄÄÁÁÁÁhÁhhhhccccXXXXXXTTT                                                                                                                                                    cÁ¹•¾ÁÁÄÄÄÍÄÍÄÍÄÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÑÍÑÑðÑððáÑïðïðððóðóðóóóóóóóððóðïðððÑÑÑÍÍÍÍÄÄÄÄÄÄÁÄÁÁhhhhccccXXXXXTXTT"M                                                                                                                                                               "ch„ÁÁÁÁÁÁÄÄÍÄÄÄÍÄÍÄÄÍÄÄÍÍÄÄÍÍÍÑÑÑÑÑÑÑÍïðððððððóðóðóóóóóóóóððððÑïðÑÑÑÑÍÍÍÄÍÄÄÄÄÁÁÁhhÁhchcccccXXXTXTT"T"                                                                                                                                                       chhhhÁÁÁÄÍÄÄÄÍÄÄÄÄÍÄÍÄÍÄÍÍÍÄÄÍÍÑÑÍÑÍÑÑÎïÑÑïðÑðððððóïðóðóóððóððððÑÑÑÍÍÑÍÍÄÍÄÄÄÄÁÁÁÁÁhhccccccXbXXTUTTTT                                                                                                                                                           ccghhÁ¹ÁÄÄÄÄÄÄÄÄÄÄÄÄÍÄÄÄÍÍÄÍÄÍÄÍÍÑÑÍÍÑÍÑÑÑÑðÑððÑïóððððóïóòððïÑïÑÑÑÍÍÍÍÍÍÍÄÄÄÁÁÁÁÁÁhhhccccccbXXXXTT"M                                                                                                                                                                         chhhh••ÄÃÁÄÄÁÄÄÍÍÄÄÄÄÄÍÄÄÄÄÄÄÄÑÄÄÍÍÍÍÍÑÑÍÑÐÑïÑÑððÑððóðóðððïððððÑÍÍÍÍÍÄÄÄÄÄÁÄÁÄÁÁÁhhhhhcccXXXXXXTTTTT"T                                                                                                                                                                                       ^hhhhh¾ÁÄÄÁÄÄÄÄÄÄÁÁÄÄÄÄÄÁÄÄÄÄÍÄÄÍÄÍÍÍÍÑÑÍÑÑÎÑÑÑðÑïðÑððððððÑððïÑÑÑÍÍÍÍÍÍÄÄÄÄÁÁÁÁÁhhhhcccccXXXXXXTTTT                                                                                                                                                                                                                    bhhhhhhÁÁÄÁÄÄÄÁÄÁÄÄÄÄÁÁÄÁÍÁÁÄÍÄÍÍÄÄÍÍÍÍÍÍÑÑÍÑÑÑðÑÑÐÑÑÑóðððïÑðÑÍÍÑÑÄÍÍÄÄÄÄÄÁÄÁÁhhhhhcccccXXcXTTXXTTT""                                                                                                                                                                                     chhhhhhÁÁÄÄÄÄÁÄÄÄÁÁÁÄÁÄÄÄÄÄÄÄÁÄÄÄÄÍÍÄÄÍÍÍÍÍÍÑÑÑÑÑáÑÑÑðÑÑÑïïÑÎÑÍÍÍÍÍÍÄÄÄÄÁÄÄÁÁÁÁhhhccccccXXXXXTTTTTT                                                                                                                                                                                                               cdhhhhÁÁÁÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÁÍÄÄÍÄÍÍÍÄÍÑÍÍÍÑÍÑÑðÑÑÑÑÑïáÑÑÐÍÑÍÍÍÍÄÄÄÄÄÁÄÁÁÁÁhhhchcccXcXXXXXXTTTTT                                                                                                                                                                                                                     chhhÁÁÁÁÄÄÁÁÁÁÁÁÄÄÄÁÄÄÍÁÄÁÄÄÄÄÍÁÍÍÄÍÄÄÍÍÍÍÍÍÍÍÑÑÑÑÑÑÑÑðïðïÑÑÍÍÍÍÍÍÍÄÄÍÄÄÄÄÁÁÁhÁÁhhhhhcbccXXXXTXTTTTT"                                                                                                                                                                                                                                                   "chhhhÁÁÄÄÄÄÄÍÁÍÄÁÁÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÍÄÄÍÍÄÍÍÍÑÍÍÍÍÍÑÑÑÑÑÑðÑÑÑðÑÑÐÍÍÍÍÍÄÄÄÄÄÁÁÁÁÁhhhhcccccbccXXXTTTX:T"                                                                                                                                                                                                                                          "chhhhÁÁÁÄÍÍÄÄÄÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÄÄÄÄÍÍÄÄÍÄÍÑÍÑÍÍÍÍÑÑÍÑçðÑÑÑÑÑðÑÍÑÍÑÍÍÍÍÍÄÁÄÄÄÁÁÁÁhhhhcccccccbXXVXTTT"M                                                                                                                                                                                                                                            dÁÁÁÁÁÄÄÄÄÄÄÄÍÍÍÍÍÍÄÄÄÄÍÄÄÄÄÍÄÍÍÄÄÍÍÍÍÍÍÍÍÍÍÑÑÑÐÑðÑÑÐðððïÑÑÑáÑÑÍÍÈÄÍÄÄÄÄÁÄÄÁÁhhÁhhhhccccXXXXXXXTTTTTT                                                                                                                                                                                                                                                   chÁÁÁÁÁÄÄÍÄÍÄÍÄÍÄÄÄÄÄÍÄÄÄÄÄÄÄÍÄÍÄÍÍÍÄÍÍÍÑÍÍÑÑÑÍÑÑÑÑÑÑÑðáððÑïÑÑÍÐÐÐÄÍÍÄÄÄÄÄÁÄÁÁÁhhhhhcccbccXXXXTXTXTT"                                                                                                                                                                                                                                                                              "chhÁÄÄÍÍÍÍÄÍÍÄÍÍÄÍÄÍÍÍÍÍÄÍÄÄÍÄÍÍÑÑÍÑÍÍÑÑÍÑÑÑÑÍÑÑÑÑÑÑÑÑðÑÑðÑððÑÍÑÍÍÍÍÍÍÍÄÄÁÁÁÁÁhÁhhhhhhhcccccXXXXTTTTTT                                                                                                                                                                                                                                                  ;;@Y]Zxzzzzzzzzzzxzzzz‚zzzz‚zzzzzzz‚zzz‚zzx{‚zzz‚zzzzz‚zx‚zxxzzzzzz‚xzzzzzxzxzz‚xzzzzzz‚zxzzzz‚zzz‚z‚zz‚z‚x‚xzzzzz‚x‚‚zzzzz‚zzzzzzzz‚zzzx‚zz‚zzzzzxzx‚{zxzzzxzxzzxz‚zzzzxzzzxxzzzzzzzzzzzzzz‚z‚xzzzzzzzzxzxxzzzz‚xzzxz{zzzzzxzzzz‚‚xzzzzzz‚xzzzzzzzzxz‚zxxzz�xzzzzzxz‚zzzzƒ�ÆÇÆÇÆÊÌÌ×ÌÌÌ×ÌÌÌÌÌÊÌÌÌÌÌÌÌÌ×ÌÊÌÌÌÌÌÌÙ×ÌÌ×ßÌ×ßÙÌßÙßßßßßßßßßÌßÙß××ÌÌÌÌÌÊÌÌÌÊÌÊÆÊÆÆÆ�Æ�›Æ–››››–›––––––”–‚”‚‚‚ƒ‚ƒ“‚ƒƒƒ‚ƒ‚”‚ƒƒ‚‚ƒ‚ƒzzzzzzxzzzzzzzzzxzxz‚z‚zx‚xzzzzzxzzzz‚z‚zxzzxz‚zzzzzzzzzzzzzzzzzzxzzzxzzzzz‚{zzzzzzzzzzzzzzzzxzzzzzzzzz‚zzzzzzzzzzzzzxzzzz‚zx{‚zzzz‚zzzxxxzzz‚zxzxxzzzzzxzzzzzzzzzzzxzz‚zzzzzxz‚xzzzz‚xzz‚x{zz‚{‚z‚‚zzz‚xxxzzzzzzzzzzzzzzz{zzzxzzzz‚x‚‚zzxzzzzx‚zzzzzzzzzzz‚zzzzz‚zzzzxxZYY;;                                                                                                                                                                                                                            #Yx”žÓÓÓÓÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓÓÓÓÓÓ××ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ××Ó×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÕ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ××××ǘzY;                                                                                                                                                                                                        _{›ÊÓÓÓÓÓÓÓ×ÙÙßàßæèèèñèñèñèñèñèññèñèñèññññññññññññññññññññññññññññññññññññòñññññññòññòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòõòõòòòòõòõòòõòõòõòõòõòõòõòõòõòõõõõõòõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ÷õõõ÷õõõõõõõõõõ÷õõõõõ÷õõ÷õõõ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷÷õ÷õ÷÷õ÷÷÷÷÷õ÷÷÷õ÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úùú÷÷úú÷÷÷÷÷ú÷÷÷ú÷úú÷ú÷ú÷÷úúú÷û÷÷÷÷û÷úúúúúûúúúúú÷ûúúúúûúúûúûúúúúúúúûú÷úúø÷úúú÷úúúú÷ú÷û÷÷ú÷÷÷÷÷ø÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷÷÷÷÷õ÷õ÷õ÷÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õõ÷õõ÷õõõ÷õõõõõõõõ÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõòõòõòõòõñõõñõòôõñõñõñõñõñõòéòòôñõñôñôñôññôñôñôñôñôññëñôèõèôñôèñèôñèôèñèñèñèñèèèèèàààÙÙÙ×ÓÓÓÓÓÓÓžƒ];                                                                                                                                                                                                Z”ÓÓÓÓÓÓ×àæèòóóúóú÷÷÷÷ó÷÷÷üóúúúúúúúúúúúúúü÷úúúúúúúúúúúúúúúúúúúúúúúúúúúüúüúüúüúúüúüüüüúüúüúúúüúúüúúúúüúüúüúúüúüüúüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüüþüþüþüþþüþüþüþþþþþþþþþþþþþÿüÿüÿüÿüÿüÿýÿüÿþþÿþþÿýÿþÿþÿýÿÿýÿÿÿýÿýÿýÿýÿþÿþÿÿÿýÿÿÿþÿÿÿÿýÿÿÿÿýÿÿÿþÿþÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþÿþÿþÿþÿÿýÿÿýÿÿÿýÿþÿþÿþÿþþþÿýÿýÿýÿýÿüÿüÿüÿüÿüþýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýüýüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúüúüúüúúüüúüúüüúüúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷ú÷÷÷÷õèèàÙÓÓÓÓÓÓ›_;                                                                                                                                                                                   Z”ÇÓÓÓÓÙèñò÷óóóóó÷úóúóóúóúóüóúóúúó÷óóúóúóúúóúóúüóúúúúúúúúúúúúúúúüúüúüúüúüúúüúüúüúüüúüúúüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüþüþüþþþþþþþþþýþþþþþþüþþþþþüþþþþþþþþþüþþüþþþþüþüþüþüþüþýþüÿüþþþþþþþüÿüþþþüÿüþþüÿüÿüÿýÿüÿýÿüÿüÿýÿüÿýÿþýýÿýÿýýÿþÿýÿþÿÿýÿþÿÿþÿþÿÿþÿþÿÿþÿþÿþÿþÿþÿÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿþÿþÿþÿÿþÿÿþþþþþþþÿþÿþÿþþþþþþÿþýÿýÿþþýÿýÿýÿýÿþþþþýþþýþþýýýþýÿýþýþüÿþþýýýýýýýýýýýýýýýýýþýþþþþüÿýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüüüüüüüüüüüüüüüüüüüúüüüüüüüüüüüüüýúüúüúúüúýúüüüüúýúýúýúýúúûúúüúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷úú÷úú÷÷÷ú÷÷÷÷÷÷÷÷õñèà×ÓÓÓÓ˜_;                                                                                                                                                                                                      ‚žÓ×Ó×Ùèñóóóóó÷óúóú÷úóúóúúóúóúóúóúóúúúüúúúóúúóúüúúóúúóúúóüóüóüóüúúúúúúúúúúúúüúüúúüúüúúüúüüúüúüüüüúüüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüþüüþüþüþüüþüüüüüüþüþüþüýýýýþþüþýþüþþüþþþüþþþþþþþþþþþþþþÿüÿüÿþþÿþþþþþþþþþþÿüÿþþþÿüÿþÿþÿüÿþÿþþÿüÿüÿÿýÿüÿþÿþÿþÿÿÿÿýÿÿÿÿþÿÿÿþÿþÿÿþÿþÿÿþÿþÿÿÿþÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿþÿþÿþÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿþÿþÿþÿýÿþÿþÿýÿýÿýÿþÿþÿÿþÿþÿþÿþÿýþþþÿþÿýþþþÿýÿýÿýÿýÿýÿýþþþýýþýþýþþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüýüýýýýýýýýýýýüüüüüüüüüüýúýúüúýúýúýúýúüúýúýüúýúüúúúúúúúúúúúúúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úúú÷÷ú÷÷÷ú÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷òèÚ×ÓÓÓÓƒ@                                                                                                                                                                                          Z�ÓÓ×Ùæèó÷ó÷÷÷÷úóú÷ó÷óúóúóúóóúóúóúóúóúóóóóóúúúúúúóúóúüóüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúüúúúúúúúüüúüüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüþüüüþüüüüþüüþüüþüþüþþþþþüþýýýýþþüþüüþþþýþþýþþüþþþþüþþþþþþþþþþþþüþþþüþþþþþþþþþþþþþþþþÿþþüÿþüÿüÿüÿþüÿþþÿþÿüÿüÿÿüÿüÿüÿýüÿþÿþýþþÿþýÿþÿþÿþÿÿÿþÿÿþÿÿþÿÿþÿþÿÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿþÿþÿÿÿþÿÿÿÿÿþÿþÿþÿþÿþÿþÿþþþþÿþÿþÿþÿþÿþýÿýÿýÿþþþþþþýþþþþþþýýÿýÿþþþþþþþþþýþýþýýýýýýýþþýýþþýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýýýýýýüýüüüüüüüüüüüúýüýüýúýüûüüüýúýúýúýúüúýúüüúüúýúúýúüüýúýúýúüûúýúúúûúüûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷úú÷úú÷÷÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñèÙÓÓÓÇx!                                                                                                                                                                                                                   Y˜ÓÓ×Ùèòóó÷÷ó÷óóúóó÷óó÷úó÷úóúóúúóúóúúúúúúúúúüóúúóúóúúúúúóúúóúúúúúóüóüóúúúúúúúúúúüúúúúúüúúüúüúüúúúúúüúüúüüüúúüúúúüúüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüþüüüüþýýüþüüþüþüþüýüüüþüþüþýýüþýþþþþüþýþüþþþþþþþþþþýþþþþþþþþþþþþþþÿþþþþþþþþþþþþþÿþþþþÿþþÿþÿüÿþþÿþþþÿþÿþÿÿüÿüÿÿþÿÿþÿÿüÿþÿÿÿþÿÿÿÿýÿÿÿþÿüÿÿþÿÿþÿÿþÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿþÿÿþÿÿþÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿþÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿÿÿþÿþÿþÿþÿþþÿþÿþþÿýÿþÿþÿþÿþÿþÿþÿþÿýþýþþþþþþþþþþþþþþþþþþþþþýþþýýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüüüüüüüüüüüýüýüýüýüýüýúýüüýúýúýúýüüüúüüüüüüúýúýúüúûüúûúüúúýúúúúúúúûúúúúúúûüúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷úúú÷÷ú÷÷÷ú÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÚ×ÓÓ�]                                                                                                                                                                                                             !‚ÇÓÓÙàòóóúóúóóúóúóóúó÷óúóóúóóúóúóóúóúó÷óóóóúóóúúóúúóüóúóúúúúúúúúóúúúúúúüúúúúúúúüúúúúüúüúúúüúúúüúüúüúüúüúüúúüüüüüüüüüúüüúüüüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüþüüþüüüþüýüüüþüþüþüþüýýþüþýþýþüþüþýýþýýþýþýþþýþþþþüþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþþÿüÿüÿüÿÿþþþÿþþÿüÿüÿüÿÿþÿüÿþþÿüÿÿÿþþÿþÿüÿüÿÿüÿþÿÿÿþÿÿþÿÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿþÿÿþÿþÿÿÿþÿþÿÿÿÿÿþÿþÿÿþÿÿþÿþÿþÿþþÿþÿþÿþþþÿþÿþþÿþÿþþþþýÿýÿýÿþþýþýþþþþÿþÿýÿþþþþþþþþþþþþþþþþýþýýþþýþýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýüýüýýýýýýýýýýüýüýüýüýüýúýüüüüýüüüüýüüüúüüýúýúýúýúüúýúüüúüüýúüüúûúýúýúüúúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷÷úú÷÷ú÷÷÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õèÙ×ÓÓ”Y                                                                                                                                                                                                                 ;›ÓÓ×àèóó÷÷÷ó÷ó÷úóóóúóóóúóú÷úóúúóúóúúúúúúúúúúúóúúúúúúóüóúúúúúúóüóúúúúúúúúúúúúúúúüúóüúúüúúúúüúúüúüúüúüúüúüúüúüüüúúúüúúüúüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüüüüüüþüþüüýþüþüýüýüþüýýþüþüþýüþüþþþüþþüþþüþüþþþþüþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿüÿüþþþÿþþþÿÿüÿþÿþÿüÿÿþÿþÿÿþÿüÿþÿþÿÿÿÿþÿÿÿþÿþÿÿþÿÿÿþÿÿþÿþÿÿÿþÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿþÿþÿÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿÿþÿþþÿþÿýþÿþÿþÿýÿýþþþþÿýÿÿýÿþþþþþýþþþþþþþþþþþþþþþýþýþþýýþýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüüüüüüüüüýüýüýúýüýúýüýüýúüüüýúüúýúýúýúüúýúýúüúýúüúýúüúúüúúúüüúúúûúúüúúûüúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷úúú÷÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èà×ÓÓžY                                                                                                                                                                                                                                Y›ÓÓÙèòóó÷÷óúó÷óúóóóú÷óóúóóúóóóúóóúóúóóúóóóúóúóúúóúóúóúúóüúóúóúúúúúúúúúúúúúúúúúúüóúüúúúúüúúüúúüóüúüúüúúüúúüüúüúúüüüüüüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüþüüýüüþüüýüüþýýýýüþüýýþýýýýþýþüþþýþþþýþþþþüþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþþþþÿþÿüÿþÿÿþþþþÿþüÿÿüÿþþþÿüÿþþÿüÿþÿþÿþÿþÿþýÿþÿþÿÿþÿþÿþÿþÿÿþÿÿÿÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿþÿÿþÿÿÿÿÿþÿÿþÿÿþÿþÿÿÿÿþÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþþþÿþÿþþÿþÿþþýÿýÿýÿþÿþÿþþýþþþþþþþþþþþþþþþþþþþþþþþþþýþýýþþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýýýýýýýüýüýüýüýúýüýúýúýüüýúýúýýüüýúýúýúüüüúýúüúýúýúúýúüûúýúúúûúüüúúúúüúúúûúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúùúúú÷ú÷ú÷ú÷÷÷÷ú÷÷ú÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÚ×ÓÇZ                                                                                                                   c                                                                                  Y›ÓÓßèóó÷úó÷óúóóúóóóúóóóúóó÷úóúúúóúúóúóúúóúúúóúóúóúúúúóúúóüóúúúúúúúúúúúúúúúóüúúúúúúúüúúúüúúúúüúüúúüúüúúüúüúüüúüúüüüúüúüúüúüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüüüüüüüþüýýüýýüþþüýüüüþýþüþüþüþüýüþþýýýþüþüþýþýþþþýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿüÿüþþþÿþÿþÿÿüÿþÿþÿþÿÿþÿþÿÿþÿþÿþÿþÿþÿÿÿÿþÿþÿÿÿþÿÿÿÿþÿÿþÿþÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿþÿþÿÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþÿþþÿþÿýÿýþþþþþþþÿýþÿþþÿþþþþþþþþþþþþþþþþþþýýþýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüüüüüüüýüýüýüýüýüýúýüüüýüüýúýüúûüúüüüúýúýúüúüúýúüúüüúüúüüúúýúüüúúúûúûúúúúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷úú÷ú÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñà×ÓÇ_                                                                                                                         _                                                                                     Y›ÓÓßèóóóúóóóúóóúóóóú÷óóú÷óóúóóúóóóúóóúóúóóúóúóúóüóúúóúúúóüúóüóúúúúóúúúóúúóüúúúúúúúüóüóüúüúúüúúúúúüúüúüúüúúüúüúüúüúüúüúüüúüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüüüüüþüüþüüýüýüýüüüþüýþüþüýýþýþüþýþýþüþýþýþþþþþüþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþþüÿþþÿþÿþÿþþþþþþþþÿþþÿþþÿþþÿþÿüÿþÿþÿÿþÿÿþÿþþÿþÿþÿþÿÿüÿþÿÿþÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿÿÿþÿÿÿÿÿÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿþÿþÿþþþÿþþþþþÿþÿþþÿþþþþýÿýÿþÿþÿþþþþþþþþþýþþþþþþþþþþþþþþþþþýþþýþýýþþýþýýþýýýýýýýýýýýýýýýýýýýýýýýýüüýüýüýýýýýýüýüýüýüýúýüýüüüýüüüúýúýüüüüúýúýúýúýúýúýúüúýúüûúüúüúúûúúúúúûúüúúüúúýúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷ú÷ú÷÷÷÷ú÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õòàÓÓÇ_                                                                                                                                                                                                                              Y�Ó×àèó÷÷÷úóóúóó÷úóóúóóóúóóó÷úóúúóúúúóúúóúóúúóúóúúúóúúúúóúóüóúúóúüóúúúúúóüúúúúúúúúúüúúúúüúüóüúúüúüúüúúüúúüúúüüúüúüüúüúüüüúüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüþüüüþüþüýüýüþüþýüýüýýþüþüþüþýüýýýþþþüþýýüþüþþþþýþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþÿþþþþÿþþþþþþþþþþÿþÿþÿþÿþÿþþÿþÿþÿþÿÿþÿþÿþÿþÿüÿÿþÿÿþÿÿÿÿÿýÿÿÿÿþÿÿþÿÿÿÿÿþÿÿþÿÿþÿþÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿþÿþÿÿÿþÿÿþÿþÿþÿþÿÿþÿþþÿþÿþÿþÿþÿþÿÿþÿþÿÿÿþÿþþÿþþþÿþÿþÿýþþþþþþÿýÿþþþþÿþþþþþþþþþþþþþþþþþþþýýþýþþýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýüýýüýüýüüüüüüýüýüýüýúýüýúýüüüüûüüýüüúýüüüüüúýúýúüúüúýúýúüúüüúüúúüúüúýúýúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúù÷úú÷ú÷ú÷ú÷ú÷÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷õ÷÷÷õòà×ÓÓ_                                                                                                                                                                                                                    9”Ó×àèóó÷óúóóóúóóúóóóúóóú÷óúóúóóúóóúóóóúóóúóúúóúóúóúóúúóúóúúúóüóúúúúüóúúúúúúúúúüóüúüóúúúúúúüúúúüúúúüóüüúúüúúüúüúüúüúüúüüúüúüúüüüüüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüüüüþüüýüüüýüýüüþüýüýýüýýýþüþüýþýþüþüþþüþþþþþþþþýþþþýþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþþþþþþÿþþÿþÿþÿþÿþÿþþÿþþÿüÿþþþÿþþÿþÿüÿüÿþÿþÿþÿþÿÿÿþÿþÿþÿüÿýÿÿÿþÿÿÿþÿÿþÿþÿÿþÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿþÿÿþÿþÿÿÿþÿÿþÿþÿÿÿþÿþÿþÿþÿþÿþýÿþÿþþþþþÿþÿýÿþÿýÿýÿýÿþÿþÿýÿýþþþÿþþþþþþþþþþþþþþþþþþþþýýþþýþýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüýüýýýýüýüýüýúýüýüýúýúýüüüüûüüúýüüúýúýúýúýúýúýúüúüúýúüûúüúüúúüûúúúúüúúüúúüûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúúú÷ú÷÷ú÷ú÷ú÷÷÷÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷òòà×Ó�Y                                                                                                                                                                                                                                                                  _ž×Ùèóó÷÷óúóóúóó÷úóóúóó÷úóó÷óóó÷úóúúóúúúóúúóúóúúóúúóüóúóúúúúúóüóúúúóúóüúúúúúúúúúúúúúúúúüúüúúúúüúúúüúüúüúúüúüúüüúüúüüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüüüþüýýýüþüþþüþüþüþüþüþüþýþýýüþýþþþþýþüþýþýþýþýþüþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþþþþþþþþþþþþþÿþþþÿÿþþþÿÿþÿþÿþÿÿÿþÿþÿþÿþÿÿüÿþÿþÿÿÿÿÿÿÿÿüÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿÿÿÿÿþÿÿÿÿþÿþÿþÿÿþÿÿÿþÿþÿþÿþÿþÿýþÿþÿþÿþÿþþÿþÿþþþÿþÿÿþÿýþÿýþþÿýþþþþþýþþþýþþþþþþþþþþþþþþþþþþþþþþþþýþþýýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýýüýüýüüüüýüýüýüýüýüýüýüüüýúýüüüýüüúýüüüúýúýúüúüúýúýúýúüúüüúýúûüúúüúûúúúúûúüúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷úú÷ú÷ú÷÷ú÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õ÷÷óõ÷÷÷òòàÓÓƒ                                                                                                                                                                                                                                                  Y›ÓÙèóó÷÷óúóóú÷ó÷÷óóú÷óóúóóóúóúóúóóúóóúóóóúóóúóúúóúúóúóúúúúóúóúúóüóüóüúúúóúúóúúúúúúúúúúúúúóüúüúúúúüúüóüúüúüúüúüóüúüúüúüúüüüúúüúüúüúüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüþüüüüüüüþüüýüüüýüýüüýüþüþüþýþüþüþüþþýþüþüþüþþþüþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþÿþÿþÿþþÿþþÿþÿþüÿþÿþüÿþþÿþÿþüÿþÿþÿÿþÿþÿÿÿþÿþÿþÿüÿüÿÿÿþÿÿÿýÿþÿþÿþÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿþÿÿþÿÿþÿþÿÿÿþÿþÿþÿÿÿþÿþÿþÿþÿþÿýÿþÿþÿþþþþþþÿþÿþÿýÿýÿþÿþÿþÿýÿþÿþÿþþþþþþþþþþþþþþþþþþþþýþýýþþýþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýüýüýýüýüýüýüýüýüýúýúýüýüüýúýúüüüüüúýúýúýúýúýúüúüúüúûúüúúüúúüúúúúüúüûúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷ú÷ú÷ú÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷óõ÷÷÷÷÷õ÷÷õèÙÓÇ]                                                                                                                                                                                                                                ‚Ó×ßòóó÷úóóó÷úóóúóóúóóóúóó÷÷÷ó÷óóúóúóúúóúúúóúúóúóúúóúúóüúúúúúúüúúüóúúúúúúúúüúúüúúúúüúüúüúüúüüúüúüüüúüúüüúüúüúüúüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüþüþüüþüþþüþüýýýüþýýýýýþýýýýþüþýüþýþüþýýþüþþþþþþüþþþþþýþýþüþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþþÿþþÿþþþþÿþþþþþþþþÿþþÿþþþÿÿþþÿÿÿþÿþÿüÿÿÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿþÿÿÿÿþÿÿÿþÿÿþÿþÿÿþþÿþÿþÿÿýþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿÿþÿýþþþÿýÿýþþþþþþþþþýþýþþÿýþþþþþþþþþþþþþþþþþýþþýýþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýüýüýýüýüýüýýüýüýüýüýüýüýüüüýúýüüüüýýúýüüüüüüüüüüüúüúýúýúýüüúüüúüüúýüýúûüúúüúúüûúûúûüúûúûúûúûúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷õ÷÷õ÷÷÷õóõóõ÷÷÷òàÙÓ˜;                                                                                                                                                                                                                                             _ž×Ùèóó÷÷óóúóúóó÷óóú÷ó÷÷÷óóúóúóóúóúóúóúóóúóóóúóúúúüúüüüüüüüüüüüüüüüüüüüüüýüüüüþüüþüþüüýüüüþüýüþüüþüüýüýüþüþýþüþýþüýýýýýüþüþýþþüþüþüþüþüþüþüþüþüþüþüþüþüþþþþþþþþþþþÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþþþÿþþÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿÿþÿþÿþÿÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿÿÿÿþÿþÿþÿþÿýÿýÿýÿýÿþÿþÿýÿýÿþþþþþþþþþþþþþþþþþþþþþýþþþþýþþýþþþþþþþþþýýþþþýþýýýýýýýýýýýýýýýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýýýýýýýýýýýýýûýüûúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óõóõ÷÷÷õóõóõ÷èß×Ó‚                                                                                                                                                                                                                                                                      "ƒÓÙæòúó÷óóúóó÷óóúóúóóóúóóúóúóóóóúóúóúóúóúúóúüüüüüþÿÿÿÿÿÿÿÿÿþÿþÿÿþÿÿþÿÿÿÿþÿþÿþÿþÿþþÿþþþþÿþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿüÿüÿüþþþþþþþþþþþþþþþüÿüþüÿüþþþüüþþüþþþþþþþþþÿüÿüÿüþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþÿþþÿþÿþÿþÿþþÿþÿþþþþÿþþÿþÿþþþþþþþþÿþÿþÿþÿþþþÿþþÿüþþÿþÿþÿþþÿþÿþþþþÿÿüÿþÿþÿüÿþÿþÿþþþÿüÿüÿüÿüÿþÿýÿüÿþÿþÿÿþÿþÿþÿýþþÿþÿþÿÿþþÿÿÿþÿþÿþÿþÿþÿþÿÿÿþÿÿÿÿÿÿÿÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿþþýýûúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷õ÷÷÷÷÷÷õ÷÷÷óõóõ÷õèÙÓ�@                                                                                                                                                                                                                                                                            Z›Óßñóóóúóú÷óúóúóúóóóóúóóú÷óóóú÷úóóúóúóúóúúüüþþÿÿÿÿýüüúúúúúúúüúüúüúúúúú÷úúúúü÷ü÷úúüúúúüüúúúüüúúüúúúúúüúüúúü÷ü÷ü÷úú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷ó÷ó÷ó÷ó÷÷÷ó÷óóõ÷÷ó÷ò÷óóó÷÷óó÷ó÷óóóó÷óóó÷ó÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷ú÷úúó÷÷úó÷÷÷ú÷÷÷÷ú÷ú÷úú÷ú÷üúüúúüúúúúüüüüüüüúúúúúúúúüüúúüüúüüüüúüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýüýüüüýýýüüüýüýýýýýþýþýþüýýýýýüýýýþþþýýÿþþýýýýýýýþþþþýÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿþÿÿÿÿþÿþÿþÿþþþþþþþÿÿþÿþþþþÿþþþÿÿýÿþýÿýÿþþÿþþþþþþþýþýþýþýþýýþýýýýýýþþþþþþþþþýþýþýþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýüüüüýüüüýüýýýýýýýýýýýýüýüýüýüýüýüýüýúýüúüüüýúúüüúýüýýýþþÿÿþÿýýúú÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷óõ÷õ÷õóõóõóõóõ÷ò÷òòà×Ê]                                                                                                                                                                                                                                                     _žÙæò÷÷÷÷ó÷óóúóóó÷óóúóúó÷úóóúóúóóó÷÷óúúúüüÿÿÿþþüüúúúúüúüüüúüüüúüúúüüúüúúüúüúúúúúüúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷úú÷÷÷÷÷÷ú÷÷÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õóõ÷õ÷÷óõ÷ò÷õ÷õõõóõ÷õ÷õ÷õ÷õ÷÷õ÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷ú÷÷ú÷ú÷÷úúúúúúúúúú÷úúúúúúúúú÷ú÷úúúúúüúúüúúúüúúúüúúúúüúúüúüúúüüüüüüúüüüüüüüüüüüüýüüýüýüýüýýüüýýýýýýýýýýýýýýýýýýýýýþþýýýýþþþýýþýþýþþþþþþþþþþþþþþþþþÿþÿýþÿþÿþÿÿþÿþÿþÿþÿþþÿýÿýÿþÿþÿþÿþþÿÿþÿÿþÿþÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿÿÿþÿÿÿþÿÿÿþÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿþÿÿÿÿþÿÿÿþþÿþÿÿþÿýÿþÿþÿÿÿþÿÿÿþÿþÿþÿþÿÿþÿÿÿÿÿþÿþÿþÿþÿýÿþþÿýþþþþþÿþÿýþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýüýüýúýûüýýýýýüüýýýûüüýúýýüýüüýýýÿÿýýý÷÷÷÷÷÷õ÷÷÷÷÷÷÷õóõ÷÷÷ó÷÷÷÷óõóõóò÷óõ÷òèÙÓƒ                                                                                                                                                                                                                                                    ƒÓÙèóúóóúó÷óúóóúóú÷óúóóó÷óó÷óó÷óóúóúúüüþÿÿÿüüüüüüüüüüüúýúüúüüúúüúüüúúüúüúúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úúúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷õóõóóóõóõó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúüüüüúüüúüúüüúüúüúüüüüúüüüüüüüüüüüýüýüýüýüüýýüüüüüüýýýýýýýýýýýýýýýýýýýýýýýýþþýþýþþþþþþþþþþþþþþþÿþþýþýÿþþþþþýýÿýÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿÿþþÿþþÿþÿþÿþÿÿÿÿÿÿÿýÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿþÿþÿþÿÿþÿþÿþÿþÿþÿÿþÿþÿþÿÿþÿýÿþþþÿþþýÿþÿþÿþÿþþþýýýýýÿþþþþþþþþþþþþþÿþþþþýýýÿþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýüýýýýüýýúüüýúýüüüüýûüýýúýüúüýúýúüýýÿÿÿýúú÷÷÷õ÷÷õ÷÷÷÷÷óõ÷õ÷õ÷òõóõóõ÷÷õ÷ò÷õèÙÓ�Y                                                                                                                                                                                                                                                    Y›Ùàñóóó÷úóóúóó÷úóóóóúóóúó÷úó÷úóúóúúüüÿÿÿýüüúüüüüüüýüüúýüüüüüúüüüúýúúüüúüúúûúüúüúúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷úú÷÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷õ÷÷õóõóõóõó÷÷ò÷õõóõóõóõ÷õóõ÷õ÷÷õ÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷ú÷÷ú÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúüúúúüúúúüúúüúüúüüüüüüüúýúüýúýúýüüüýýüüýüýüýüýüýüýýýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýþþþþþþþþþþþþþþþþÿþÿýþþÿþÿþÿýÿýþþÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿÿÿÿþÿÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþÿÿÿþÿþÿÿÿÿþÿÿþÿÿþÿÿþÿþÿþþÿþÿþÿþþÿýÿþÿþÿþÿþÿþþþþþþþþÿþÿþÿÿþÿýÿþÿþÿþÿþÿþÿþþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþýýýýþýþýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýüüüüýüüýýýüýüýúýýüüýüüýúýüýúýüüýüüüúýýÿþüú÷÷÷÷÷÷÷õ÷÷õóõó÷÷óõóõóõóõóòó÷õó÷òàמx                                                                                                                                                                                                                                                                      xžÙàòó÷÷÷óóúóóú÷óóúóúóóúóóúóóúóóó÷úüþþÿüüüüüüüüüüüýúüûüüüüúýúüüüûúüúüüúúúýúüúüûúúúýúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õóõ÷õóóõó÷õ÷÷ò÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷ú÷úú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúûúüûúüûúüüúýúýúýúýúúýúüüûüüüýúýüýüüýúüüúýüýüýüýüýüýüüüüüüýüýýýýýýýýýýýýýýýýýýýýýýýþýþýþþþþþþþþþþþþþþþþþþýþþýÿþþþýÿýÿýÿþÿþþÿþÿýÿýÿýÿþÿþÿþÿþÿþþþÿÿþÿþÿÿÿþÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿþÿþþÿÿþÿþÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿþÿýÿýÿýþþýÿþþþþþþýÿýþþþÿþþýþþýÿþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýýýüýýúýüýúýüýüüüýüúýüýúýúýúýúýúýúýúüüýÿÿþü÷÷õ÷÷óõ÷÷÷÷÷õóõóõóõóõóõ÷õ÷÷÷õ÷õèÙÓ”"                                                                                                                                                                                                                                                              zÓÙèóó÷úóóúóó÷úóóúóó÷ó÷úóóúóóúóóúüüÿÿþüüüüüýüýüüüüýüüýüüüüúýúýúúüüüúýúûüüüúüúüúúüúûúúúûüúúûúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷úú÷ú÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷õ÷÷õ÷÷÷õó÷óò÷õ÷ò÷õóò÷÷÷õ÷õ÷õóõ÷õ÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûüúúúúúüúúüúúüúüúûüúüüüúýúýüüúýúüüûüüúýüýüýüýúýüýüýüýüýýýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýþþþþþþþþþþþþþÿþÿýÿþÿýþÿþþþþÿýþþÿþÿþþÿýÿýÿýÿþÿþÿþÿþÿÿÿþþÿþÿÿþÿÿÿþÿýÿþÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿÿÿþÿþÿþÿþÿÿþÿÿÿÿÿþÿÿÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿþÿþþþýýþÿýÿýÿýÿýÿþÿýÿþÿþÿþþþÿþþþþþÿþþÿýþþþþþþþþþþþþþþþþþþþþþþþýýýþýþýýýþþþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüüüýüýýüýûüýýúýýúýúýýûüýýüüüýüúýüýúýûüúüúýÿÿýú÷÷÷÷÷õ÷õó÷õóõóõóõóõóõóò÷õó÷÷õèÙÓ›;                                                                                                                                                                                                                                                         ƒÓßñóóúóóóúóóúóóú÷óóúó÷óóúóóúóóúüüÿÿýüüüýüýýüýüýúýúüýúüúýúüüúýúýýúüúüúüüúûúúüúúúüúüúúúüúúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óõ÷÷óõõ÷÷òóõ÷õó÷õóõ÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷ú÷úú÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúûúúúúúüûúüûúüûúüüúüúüúüüûúüúýúýúüüüüüüúýüüüüýúýüýúýüýüýüýüüüüüüýüüýýýýýýýýýýýýýýýýýýýþýýýýþýþþþýþþþþþþþþþþþþýþýþýþýÿþýÿþÿþýÿþÿþþÿþÿýÿþÿþÿýÿþÿþÿþÿþþÿÿÿþÿÿþÿþÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿþÿÿÿÿþÿÿÿþÿþÿÿýÿþÿÿþÿþÿþÿÿþÿþÿþÿþÿþÿÿþÿýÿþþÿþÿþÿþÿÿþýÿýÿþþýÿýÿýÿþþþþþþÿýÿýÿþÿþþþþþþýÿþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýýýüýüüýýüýüüüýüýüýýüüúýúýúýúýüüûüüüüýüýüüúüýÿþú÷õó÷ò÷÷òóõóõóõóõóõó÷÷õ÷÷õó÷÷òàÓ�@                                                                                                                                                                                                                                                            ;ƒÓàò÷÷÷ó÷úóó÷úóó÷óóúóó÷úúóó÷úóúüýÿÿüüüüýüüýüüýüýúýüýýúýýýüýúýüüüúüüúýúýúúüüüüúýúýúúûüúûúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷úú÷ú÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷óõ÷÷ó÷õ÷÷òó÷õò÷÷óõóõ÷õ÷õóõ÷÷õ÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷ú÷÷úúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúüúûüúýúüúúüüúýúýúýúýúýúýüüûüüüüüüýüýüýúýüýüýýýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýþþþþþþþþþþþþþþþÿþÿþþþþÿýþþþÿýþþþþÿýþÿýþÿþÿþÿþÿþÿþÿþÿÿþþÿÿþÿÿþÿÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿÿþÿþÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿþÿÿþÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿþÿþÿþÿþÿýþÿýÿýÿþÿýÿýþþÿþÿþÿþþþþþýÿýþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþýýþýþýýýþþþýýþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüüüýúýýúýýüýüýüûüýüúýüýüýúýúýúýúüüýúýúûúýúýüüüýÿýü÷÷÷÷õ÷õóõóõóõóõóõ÷õó÷õó÷÷õ÷òæ×�Y                                                                                                                                                                                                                                                                      ;”×àòóóúó÷óóóúóóóúóúóóú÷óóóúóóúüþþÿüüýüýýüüýüüýúýüýüýúüýúüúýúýúýúüüýúýúüúüýúúûúüúüúúüúúüúüúúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷ú÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷óõ÷õ÷÷ò÷õ÷òóõóõõó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷ú÷úú÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúûúýúúúúúúüúúüúúüúýúüüýúüúüúýúýúüüüúýüüúýüýúýúýüýüýüýüýüüüüüüýüüüýýýýýýýýýýýýýýýýýýýþýýýþýþþþýýþþþþþþþþþþþþþýþþþþÿþþþÿþÿýÿþÿþÿýÿþÿþÿýÿþÿþÿþÿþÿþÿþþÿÿþþÿþÿþÿþÿÿÿÿÿÿþÿþÿÿÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿþÿÿþÿÿÿþþÿÿþÿÿþÿþÿþÿþÿÿþÿþÿþÿýÿýÿþþÿþÿýÿýÿýÿþþÿýÿþþþþþþþþÿþÿýÿýÿþÿþþþþÿýÿþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýýýýýýýýýüüýüýüýüýúýýúýúýüýûýúýüýúýúýúüüýúýüúýúüüýÿþú÷óóõóõóõóõóõó÷÷÷÷õ÷÷õ÷÷÷÷÷òæÙžZ                                                                                                                                                                                                                                                                              Y›Ùæòó÷÷óóúóúóó÷÷÷óóóúóóóúóúóúüþÿÿüüüýüýüüýýüýüýüýýüýüüýúýýüýüüüüüûüúýúüúýúüüüüúýúúüúûüúúúúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úú÷ú÷ú÷ú÷ú÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷õó÷÷÷÷÷÷÷õ÷÷óõ÷÷óõóó÷õò÷õóõ÷÷õ÷õ÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷÷÷úúú÷÷úúúùúúúúúúúúúúúúúúúúúúúúûúúúúúúúýúûüúúúüúúúüúûúüúýúýúüüüúýúýüúýýüüúýüüüýüýüýüýüýüýýýýüýýýüýýýýýýýýýýýýýýýýýýþýýýýþýýýþþýþþþþþþþþþþþþÿýþþþþþÿýÿýþþþþþþþÿýÿýÿýÿýþÿþÿþÿþÿþÿÿþÿþÿÿÿþÿÿÿÿþÿþÿþÿþÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþÿÿÿþÿþÿÿþþÿÿþÿÿþþÿÿÿþÿþÿþÿþÿþÿþÿþÿþÿýÿþÿþÿþÿþÿþþÿýÿýÿýÿþþÿýÿþÿþÿþÿþþþþýþþýþýþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþýþýýýþþþýþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüüüüüüüûýýúýüýüýüýúýýýýúýúüüüüûüýüüýýûýúýúûüúüûüüúýÿþü÷÷õóõóõóõóõ÷õóõó÷õó÷÷õóõ÷òèÙž_                                                                                                                                                                                                                                                                                                  B›Ùæòóúóóúóó÷óúóúóóú÷÷ó÷÷÷óóóüüþÿüüýýýüýüýýüüýüýüýüúýüúýüýúüüüúýüüüüúýúýúýúüúüûúüúúýúüúúýúüûúüúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷ú÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õóõ÷óõóõóóõõóõõó÷÷õ÷÷óõó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷ú÷ú÷÷÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúüûúúúúúýúüûúýúýúüýúýúüúýúýúýüüúüüüüûýüüýúýúýúýüýüýüüýüüüýüüüýýýýýýýýýýýýýýýýýýýýýýýýýþþþýýþþþþþþþþþþþþþþþÿþÿþþýþþþÿþÿþÿþÿýÿýÿýÿýÿþÿþÿþþÿþÿþþÿþÿþÿþÿþþþÿÿþÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿþÿÿþÿÿÿþÿþÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿýÿýÿþþÿþÿýÿþþýÿýÿýÿþÿþÿýÿþÿþÿþÿþÿýÿþþþþþþþþþþþþþþþþþþþþþþýþýþþþýýýþýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýýýúýýýýúýüýúýüüúüýýýüýüüüúüüûúüüúüüüýúýúüýúüüúýÿýú÷õóõóõó÷÷ò÷÷÷õ÷÷÷õó÷÷÷÷÷õèÙÊ_                                                                                                                                                                                                                                                                                     YžÙæóóúóóúóóúóúóóó÷úóóóúóóúóúüÿÿüýýýýüüýüýüüýýüýüýüýýüýýüûüüýüýüúúõõõíííëèëèëèëèëèëèëèëèëèëèëèëèëèèëèëèëèëèëèëæëæèæææææææææææææëèêèêèêèêèêæêèêèêèêèææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææêèêèêèêèêææêæëæëææëèêææææææææææææèêèêèëèëèëèëèëèëëèëèëèëèëèëèëèëèëèëèëèëèëèíëèëèíëèíëëèëëëèíëíëëèíëëèííëííííííííííííííííííííííííííííõííííííííííííííííõííõíííõíííõõõíõíííõííííõíõíõíõíõíõíõõíõõõíõõíõõíõõõõíõõíõõíõíõõíõõõõõõíõõõõíõõõõõõõõõõõõõõõõõõöõùõùõùõùõøùõøùõùõøõùõùõùõùõùõõöõõöõõõõõõõõõõõõõõíõõõõõõõõõõõõõíõõõõõõõõíõõõõõíõõõíõíõõõõíõíííííõõõíõõííõõíõõíõõíõíõíõíõíõíõíõííõíõíõííõíõíõíõííõííõõíííõíííííõíõííííííííííõíõííõííõííííííííííííííííííííõíííõííõííõííííííííííííííííííëëëëëèëëèëëèëëèëëèëëèíëèëëèëëèííëëèííííõõõõúûýüúýúýúýúýýúýüýúýûýúüüüüúúýúûüúüþÿü÷÷÷õóõóõ÷÷õó÷÷÷÷÷÷õ÷õ÷÷÷õèÙÊx                                                                                                                                                                                                                                                                                  YžÙæóóóóú÷óóúóóóúóúóóóúóóúóúüþÿýýýýýýýýýüýüýýüüýüýüýüüýüüýüúúõõèëæÚÓ¬¥¥’¢’¢�Ÿ�  �� ��Ÿ ��Ÿ� � Ÿ� �ŸŸ��� � � �Ÿ���Ÿ �Ÿ   �Ÿ ŸŸŸŸ � �Ÿ�ŸŸŸ��   �Ÿ����Ÿ �Ÿ �Ÿ�Ÿ� ���Ÿ� ��� �Ÿ� ��� ��� Ÿ�Ÿ��������Ÿ�Ÿ�� � ���Ÿ�Ÿ� Ÿ�Ÿ�� �Ÿ �Ÿ� � ��Ÿ�  �Ÿ�� �  �ŸŸ� �Ÿ    �Ÿ   Ÿ�Ÿ���� Ÿ ��Ÿ�� �Ÿ�Ÿ ��� �Ÿ� � �� ��Ÿ � �Ÿ� � �Ÿ��ŸŸ��Ÿ�Ÿ� �Ÿ�ŸŸŸ� ��Ÿ�ŸŸ��ŸŸ��Ÿ�Ÿ���Ÿ ��ŸŸ�� �Ÿ ��Ÿ� � � �Ÿ�Ÿ �Ÿ�Ÿ�  � �ŸŸ �Ÿ��� � ��Ÿ�Ÿ ŸŸŸŸ �ŸŸŸŸŸŸŸŸ �ŸŸ�   �ŸŸŸŸ �ŸŸ   �   �ŸŸŸŸŸŸŸ�ŸŸŸŸŸŸ �ŸŸ �Ÿ Ÿ Ÿ  ŸŸŸ   Ÿ�ŸŸ ŸŸŸ �Ÿ  �ŸŸŸ  �ŸŸ � �ŸŸ   �  �    ŸŸŸŸŸŸŸŸŸŸ �ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ ŸŸŸŸŸŸŸŸŸ Ÿ �ŸŸŸŸŸŸŸ  �ŸŸ �ŸŸŸ�Ÿ Ÿ ŸŸŸ �  ��  ŸŸ Ÿ  �ŸŸ �Ÿ �ŸŸŸŸŸ�ŸŸŸ�Ÿ  ��Ÿ�Ÿ � �Ÿ    � �Ÿ �Ÿ� �ŸŸŸŸ�Ÿ�Ÿ�ŸŸ�ŸŸŸ �ŸŸ �Ÿ �ŸŸŸŸ�Ÿ ��Ÿ ŸŸ�Ÿ�����ŸŸ� ��Ÿ�Ÿ ��Ÿ�ŸŸ�� �Ÿ�Ÿ ��� ��� �� �Ÿ�� �Ÿ� �Ÿ� � �Ÿ�¢’¢¢¥¬¬Öæèëõõ÷úýüýúüýüúüýüüúüýúüûýýúüüüüûúúÿþú÷ó÷÷õ÷óõ÷÷õóõ÷÷÷÷÷÷÷÷÷÷÷èÚÊx                                                                                                                                                                                                                                                                         @�Ùèó÷÷÷÷óóúóó÷úóó÷óóúóóúóóüüÿþýüýýýýýýýýýüýüüýýüýüýüýüüüúõèèÖ¬š’��ŽŽŸ�ŽŸ�Ÿ�Ž��Ÿ �Ž�Ž� Ÿ� Ÿ    ��Ÿ����Ž��Ÿ� Ÿ�Ž��Ÿ���Ž Ÿ���Ÿ������Ÿ����Ÿ�s� � ���Ž�Ž� ��Ÿ����� �ŽŸ� ���   �  �Ž� �Ž� Ÿ� �Ÿ�ŸŸŸ�Ÿ� ŸŸŸ   �Ž���Ÿ ¢�����Ÿ���Ž�    ���� ��Ž������� ���Ž�����Ž���¢���Ž�ŽŸ¢��ŽŽ��� ���ŸŸŽs�Ÿ��� ���Ž�Ž���  �����Ÿ��ŽŽ������Ž�� ��Ÿ����Ž�Ÿ�Ÿ�Ž� �Ž�����ŽŽ������ŽŽ����ss���Žs��ŽŽs~��sŽs���s�Ž���s�ssŽ�ŽŽss���������s�������~Ž�ssŽ��ŽsŽss}s�Žs��ss�Žs��Žs~��ŽsŽ�ss��Žs�Ž�ssŽs�s�Žs}s}��s}�s}Žss}s��s}Žss~ssŽ}�sss���sss}ssŽŽ}ssssss}s~ssssssspss~ssss}ssssss}ss�sppss}ss}sssssssss�sqs}sssqssq}s~s}sss��qqs}ss}ss}ssssssqpsssq}ssspqs}sqqsqs}ssss}s}}qsssqqqqqssss}qpqqsqspqssqqsspqqsqssqpqsspnqsq}qqpnqqqsqqqpqqpsspnqqqqpqqsqqqqpnqqpnqsqqqqqpqqpqqqqqqqqqqpnqqq}ŽŽ}�Ž� š¥Óæèõõüúüüýûüüúýûüýûüüúüûüúûüüüüýÿý÷÷õó÷õ÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷÷÷÷èßÇx                                                                                                                                                                                                                                                                                    ;›Ùæóóóúóóú÷óóúóóóúóúóóúóóúüüÿþýýýýýýýýýýýüýüýýüüýüýüüüõíèÚ¬’�s�Ÿ���Ž~}s~‘‘‘�s}}~~}~}�~�‘�‘‘¡¡‘‘������Ÿ������~��������~‘¡��‘�~����¡Ÿ��~�����������}���¡�~������¢����¡Ÿ�¡¡¡¢��¢�}����¡��Ÿ¡����~�Ÿ��‘¡¡‘¡¡����~�¡¢‘�������~~~�‘¡¡¢Ÿ�~�¡�}~}Ž}Ž��~�¢Ÿ�}��¡����}���}�~}s}¢�}~}��‘Ÿ�}}~~~}}���}}������}��������~�~}s}��Ž}�}s}}}���}�}}}~�~}}}~}}s}ss~}}}s}�}s}}rq}}s}ps}qpq}sppqppsppwq}sppp}}ppspppppspps}s}qwqp}ws}}q}sppvrppp}ppppppppppp|poo}ppppoopppppplllpppppppllplllllooooopolpolllllloolllllllljolj?jlllll?l??Clll?llj?ljllll>??>??lC?>>>jl>>CCCj?C??>>>??>>?>=>>>?>=>??>?C>>==>==>>??>>=C??===>>>>===============>==!7============>===$==!$==!$!$$!$$!$$$!$!!!!!!!!===??mo}sssŽ’¥Öæëõúüüüûýüüúüüýúýúüúüüüúýúúüýÿú÷õ÷óõóõóõ÷÷÷÷õ÷÷÷÷÷÷÷÷÷èÙž_                                                                                                                                                                                                                                                                                                      9–Ùæóó÷÷óóúóó÷úóóúóó÷óóúóóúüÿÿüüýýýýýýýýýýýýüýüüýýüýü÷íæÕ¥� ���s��~��~~}��~}~}}�~}~~��¡~}~~~}~~~�~��}��~~~~�‘�~������}~~��~~¡¡‘���‘‘~����‘‘‘‘�‘¡¡¡¡��¡�¡‘~~�‘��¡‘~~~~‘‘�‘~~~�¡¢�~�¡�¡�}�‘�~�¡‘~~‘¡‘�‘‘�~��‘���¡¡�����}�¡‘����~~��~�~~¡�������¡‘�~‘‘~~�~�����~�‘�����~�¡���~}��~�}~�~~�~}~�}}}}}}~~}}}~}}}}}}}s}~~��}}}~}}~}~~}}}~}s}~}}}sr}}}}}}}}s}p}}~}}}}}}}}|}}}pp}}v|}~}}}}}}}||}}s|p}}}p}s|}vpp|vppppppppp}pppppppvpopppppppppppppppplp}pplpppooppppolopppopllppppplpppoojojlopppllllllloollllllplCllllllClClllCllCClCClClll>>CCljlllCC?CCC>>lCCC>>?Cl?>>CCC?>>>>CC>>>>==>?>>>=>=>>===C>>>======>>==================$===97====!=!=$$=$=!=$!$$$!!!=$!!$=!=!!!!!!!==!!!!!!!!!!!!! !!!!!!!!!!!!!! ==jpqs}�’žäèõüüüúûüýúýüúýúýúûüüúýúýüýÿü÷÷õ÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷õèÙžY                                                                                                                                                                                                                                                                                      9”Óàòóóúóúóóóúóóóúóóúóú÷óóüüÿýýýýýýýýýýýýýýýýýüýýüýúõëÖš�  ���s}}}�}��~}~‘�}}}~~‘~}~�‘‘‘‘~}}~~}~~~��~‘~}~~~}�¡‘~~¡‘¡‘~~}}~~~~�¡¡¡‘�‘�~~��¡¡‘�‘‘¡¡¡¡¡¡¡~‘¡‘~~~‘‘‘¡‘~}~�¡�~~�}�¡¡‘‘~‘¡‘¡‘~~~~��¡¡~~�‘‘~‘¡~~~�¡¡¡‘¡¡��‘�~~~~�‘‘~~~~~~~‘�~‘‘~‘‘‘~~¡¡‘�~�~��}~~�~~�‘‘‘¡‘}~�¡¡‘¡¡}}~}}~}~‘~~¡�}~�~}}}}}}~~}}}}}}~}}}}}‘‘�~}~}}}~~~�}}}}}}}}~}r}|v}}�}}}}s}}|r}}}s}}}}}vr}r}wr}}p}}}}}}}}r}}v|}}}r}}||p}p}}ppppp|ppvpppppppppppppppppppvpppppppppppppvpoopppoooppppllpppplllolppoplppooollllopoplloljlppppllllplCllClllCCCllC?CCClC?CClllCC?CCCCCCCCCC?>>??C?>C>>>?llCCCCCC>>CCCC>>>====?>=>>==>>>==>>>====>==>>=>=$===>=>====A=$!$===!=======$!!$!!!!$=$$=!!$!!!$==$$$=!!!!!!!$=!!!!!!!!!$!!!!!!!!!!!!!! !!   =?mps�’Óæë÷üüýúüüûüüûüüüûúýúýúúúüÿþ÷÷÷÷õ÷õ÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷õèÙžY                                                                                                                                                                                                                                                                                               ƒ×àòúóúóóóúóúóóúóó÷úóóóóúüþÿüýýýýýýýýýýýýýýýýýýüüúëÚ¬�¢�Ž��}�}}~}~‘~}}}��}~~~~~~‘‘‘‘‘‘~~}~~~~~~~~~~~~�~~~‘~~~‘‘}~~~‘‘‘‘~~‘‘‘‘�~‘‘�~‘‘‘‘‘~‘¡�~�‘�~�}~¡‘~~¡¡‘‘‘�~~‘¡~~‘‘‘‘¡‘‘~‘¢‘}���‘‘¡‘~‘�‘¡‘‘¡~�‘~‘�¡¡�~¡‘‘�~�¡¡‘‘����‘‘¡¡¡�‘�‘‘‘‘~~�¡‘~�¡¡~~�~�‘�€�‘~~~�‘�‘¡‘�~‘~}�~}~}¡�}~�‘�~~}~~‘�}}~�~~~�~}~�~~~~~}~~~~~}~�~}}}}}}~}}}}}~}}}sr}�}}}}}}}~}p}}}}}}}}}s}}}}sr}}}vv}}}}}}rv|}psppv}}}||vvvpppp|p}}pp}}}}p||}ppvv|vppvppppvvpp}pppvpppppppvppppppppopppoppolppoloppvpllllooplllpolplllllololCllllllljlllClllollllllolClCl??ClClCC?CCCClllCCCCCCCCCCCCC>>>C?C?>>>>>C>>>>>>>>>=>>>C>>>>>=>CA====>>==>>===========>=====================!==$$$$$=$!!=!!!$=!!=!!!!!$$!!!!!!!!!!!!!!!$ !!!!!!!!!!!!!!!!! 9?psŽ�¥Úæõúýûýüüüüúýúüüúýúýüûüüþÿú÷÷÷ó÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷õè×�Y                                                                                                                                                                                                                                                                                                     ƒÓàòóó÷óóú÷óóóú÷óóúóóóúóúüþÿýýýýýýýýýýýýýýýýýýýüúéÖš���Ÿ��}~}}}~~}}‘�}}}¡~}}‘‘‘~~‘¡¡¡¡¡~~}~~~~}}~~�~}~~~}~‘‘~~�~~~}}~‘¡‘~‘¡‘�‘‘~~�~‘‘¡~~‘~~~~~‘‘~~�~�‘‘¡‘‘¡‘‘¡¡~~‘‘~~‘‘‘¡¡¡�}�‘~~~~~‘‘‘‘‘¡‘�¡‘‘¡¡‘~~�‘~~�‘¡¡‘‘�‘¡¡‘�~�¡‘¡¡¡¡¡‘‘‘‘‘¡¡‘~‘¡‘�‘¡¡~}~~}~~�~~~~~‘‘¡¡‘�‘‘}}~€~~}}‘�~~~¡~~~}}‘‘‘}}}~~�~~�~~‘�~}~~}~~}�~~~~}}}}s}~}}}}}}}~}}}}}~}}~~~}}}}s}~~~~}~}v}}}}vvv}}}|p}}}~}w}rp|||pp|}|}}||ppp|ppppp}}p}|pp}}p}}ppvp|ppppppvp|pp||pppvppppop|vpoopvpoopoollppppollopvpplllllpllllpllpolllllpllllllClplCClCllpllllllloolCll?>?CllCCCCCC?Clll??ClllC>CCllC>>>CCC>>>>>C>>>>>=>?C==>C>>CC=>=>>>C>===>=>==>>>>========>=$$=>=$==>===A>>A===!=$$=!!!$!=!!$=!!$==!!!!!!!!!=!!$=!!!!!!!!!!!!! !!!!!!! !!!!7?qŽ�‘Ôèõüúýúýúüúüûúýúüúüüûúúüÿü÷õ÷÷õ÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷òæÓ›;                                                                                                                                                                                                                                                                                              xÓßòóúó÷óúóó÷úóóóúóó÷÷÷óúüÿþýýýýýýýýýýýýýýýýýýü÷ëÕ’� ��Ž}}�}}~~~~~}~¡~}~~~}~~~‘�}~~~~~~~~~~�~�}}�‘‘‘~}~‘~~~‘�‘�~‘¡¡~~‘~�‘��‘‘~~‘¡�~~~‘¡‘‘‘‘‘‘‘¡�‘��‘‘�~~¡¡�~~~¡¡‘�‘¡‘�¡~‘‘�¡~~¡¡‘�‘¡‘~‘��‘~‘‘¢¡¡�‘¡�‘¡¡�~‘‘‘‘‘‘‘¡~~�‘¡‘�‘~~‘‘‘�~���~‘‘‘‘‘‘~~‘‘~�‘‘�‘‘~~~�‘�~‘¡~�~~~~‘¡‘}~~~‘‘�‘‘�}�}~�~�‘}}~‘‘‘~}~}~‘~~~‘~}}~~�~~~}}~~}~~~}}~}~}~}}~}}~}}}}}|}}}~}}}}|}}}p}~~}}r}}}}}}s}|}}}rwv}}|}}p|}}}|v}p}}}p}}||ppp}}ppv|vvpp}|}|vpp}}}ppppp}popprvpvvpppppppppppoppppppppopolpooopppopollllooollllllollolllllllplllllClllllllllCCClllC?lClCCClllllCCCC?CC?>?CC>?>>CC>?CCCC>>>>>CCA>=>>>C>>Cl>==>>>>C>=>=>==>>=>===>=========>===========$=======$$===$!=====!!$$!$$!=!$$=$!!!!$!!!!!!!!$!!!!!!!!!!!!!!!!! !!!!!  ! !! =oqŽ ¬æõúýúýúýúüüúýúýúûüüüýüþýú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òæÓ”;                                                                                                                                                                                                                                                                        YÊÙòó÷óóú÷óóúóó÷÷÷óúóúóóüüÿþýýýýýýýýýýýýýýýýýýúèÕ’������}}}}}~~~}}~~‘‘‘�~~~}~‘~�~~}~~}}~~}}}~~~~~‘¡‘‘~}~~‘}~‘‘�‘~~¡¡�~�~~�~~‘‘�‘‘¡‘~~‘‘‘‘�¡¡‘‘‘�‘‘‘‘¡‘€~~‘¡‘~~~‘¡¡‘�‘‘‘¡‘�‘~~~�‘‘‘¡‘‘¡‘‘�~~~�¡¢¢¡��‘¡‘¡¢‘~�‘‘~�‘‘�~~~‘¡‘‘~~~�‘‘‘�‘‘~~~~‘‘~~~}~�~~‘‘‘‘‘�~~~‘‘~~~~~~}~‘¡¡�~}~~~~¡¡‘~~‘~}�}~~}~~‘¡¡~}}~‘‘‘~‘‘~}}~‘~~~~}}}}~}~~}}~��}}~}}}~~~}}rp|s}~}~}}|pvr}p}~}}|}}~}}}}}}}}}}v||}}||}}vr}}|pr}}}}v}|}ppppp|r}ppvrpv}p}}}pv|}}|pppppppovvpvv|vppppoplloppopppvpopooopplllpplpvolpvoooplllplllpllllpolllpolllllCllllllllC??lllCCCCCllCClCCllCC?CCC>>?CC>>>>ClCCC?>>>C>=>?A>>>>=>>>>CC>>==>>>>>>==>>===>C=====>>>===>>>>====$=========!!=!=!!=!=!$===$!$!==!!==$!!$==!$!!!!$!!!!$!!!!!!$!!!!!!!!!!!!!!!!!!   !!?p��¬æõýúýúüûúýúýúüüüûúüúüÿþ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òàÓz                                                                                                                                                                                                                                                                                ;žÙèó÷ó÷úóó÷÷ó÷úóóúóó÷óóúýÿýýýýýýýýýýýýýýýýýýüíÚ¢����Ž}~‘}s~�~~~�~}~~~}~‘~}�}}~~~}~}�~~~‘~‘‘�¡~~~}~~~~‘‘¡‘�~‘¡‘�~~~‘‘~~~��‘~~‘‘‘‘‘�‘‘‘‘~��~‘¡‘��~�~�¡~�‘‘‘‘‘�‘~‘‘‘‘¡‘~�~¡¡¡¡~~‘‘‘�‘¡‘~‘�¡‘‘‘‘�‘‘‘‘‘~�‘‘¡¡~~‘‘��‘‘¡‘‘‘¡¡‘‘‘��‘~�‘¡‘��~��‘¡‘~‘�‘‘‘‘‘¡‘‘‘~~~~‘‘‘~‘‘�‘~}~�~~~~�¡‘}~‘�}�‘�}}‘~‘‘~‘~~~~}}~�~~}}}�~}~‘~}}‘~}~}s~~~}}}~~}~}}}s}}}}}}}}}}}}}~}}}}}}}p}~}|}}}||rp}~}}}rv}}p}~}p}|}}v}}vv}|r}p|v|vrv|v|}vvvrvpvppvrpp|}ppvppopvpppppppppp|popppppppvpppopvpoooopolpllppolllpplllollllllpplllllolllllllllllllll?CllCllCllllllCCCCllC?ClCCCCC?>>?lC??CCC>??CCCCCC=>??C>?C>>>>C>>>>C>>>=>==>>==>>=>A>==>>>=====>==============$$===========$!!=!$====$!$==!$!$=!!!$!$!!!$!!!!!!!!!$!!!!!!!! !!! !!!! !7lqŽ¢¬æúúýúüüúýúýúûüüüúýúýýýú÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òÚÇ]                                                                                                                                                                                                                                                                                9”×èóúóúóóúóúó÷óóúóó÷óúóüüÿþþþþýýýýýýýýýýýýýýõ暟��Ž}�}~}~}}~¡‘~}~�~~}~~}}�~‘}~}~~~}}~‘~~~}‘¡‘~‘‘~~~}~‘¡¡¡¡~~‘‘‘‘‘�‘‘~~~~‘‘‘‘~~‘‘‘‘‘~~¡‘�‘‘~�‘�‘‘~€�~~~‘¡¡¡¡�‘‘‘¡‘~~‘‘~~‘�‘¡‘�‘¡¡�~¡¢¡~�‘¡¡¡¡‘~~��~��~�¡‘‘~��~~¡‘‘¡¡¡‘¡‘‘‘‘‘‘‘‘~~��~~~~~‘¡¡~‘¡¡¡¡¡¡¡‘���¡�‘¡¡¡‘‘‘‘‘~~~~~}}}�¢¡~~}}}~�~~~‘~~��‘‘}~~~~‘¡~}}}}~~~�‘~}~�~~~}}~~~}~~~}}}}}~}}~}}}~~}}}}}~}s}~}}}}}}�}p}}}|v|p}}p}}}ps}}}}}||p}}}}||vv|v}}|v}}vr}}}|}pvvppppppvpp|}vppvppppvvppppppppvppvvpvpoppvpppppoloooppopplppplllpl?llplllolpllvplllllllllllllllllllClllClllllCllClC??CllCCCClC>>>?>CClCClC>>>??CClC>>>>>ACCC>=>CC>>>ClC=AC>=>?==>=>>=>===>C>>=>>===========$===$$!=============!!!$=====$$$$=$$$$!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !!! $os�’Úëúýüûüúýúüüüûúýúýúýýÿú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÙž<                                                                                                                                                                                                                                                                                                       zÓàò÷ó÷óóúóóóóúóúóóúóúóüþÿþýýýýýýþýýýýýýýýýúëÕ�Ž��}}}}~}~}~}‘‘}~~}}~~}~�~~~~~}~~~�‘}~‘~~~~}�‘~}�‘‘~~~�¡�~�‘¡~~~~�‘‘‘~~‘‘‘‘�~��~~��¡‘~}�‘¡¡�~‘‘‘¡‘�¡‘‘‘‘¡‘~���‘¡�‘�¡‘¡¡‘‘¡‘�~~¡¡‘‘‘~‘¡‘~‘‘�¡¡~‘~�‘‘��¡‘¡‘‘‘�‘‘‘¡¡~~¡¡����‘~��¡¡‘~�‘‘‘¡‘‘~~¡‘�‘‘�‘‘~�~~‘‘‘‘~}�‘~~‘~‘‘‘~~~�‘�~~¡‘~~}~�~~~~~�‘�‘~~}}‘‘~}�¡~~~}~‘~}~~~}}~}~~}~~~}}~~}|~~~~}~~}}~}}}}}~}}s}}|}~~}}}}}}}}}}}}}}}}}|}}}}||}}}}|v}}rpv}}v}vvprvvvvvvvpvpv|vvvpppv}ppp|ppp|pppvp|ppppp|vppppv|pppppppppopvplpppollplovploloppllppllppoolllllllllllCllllllllllllllllClllllCllllCClCCl??lllClC??CCCCCll>?C?C>C>>>CC>>>>?CCCCC>=>>>C>=>lA==>>>=>>=>=>==C>==========================!!!==$!====$$==$!===!$!!$==!!!$$$!!$!!!!!$!!!!!!!!!!!!!!!!!!!!!!! !!! !!!! oŽ�ªæõúüúýúýúûüüüúýúýúýýþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õèט#                                                                                                                                                                                                                                                                                                      ZÓÙòóó÷óúóóúóú÷ó÷óóúóóóüüÿþýþþþþþýþýýýýýýýýõÚª¢�}Ž�~}~~}~~~~~¡~}}~}}}~}}~}~~}}}~}‘€‘�‘‘�}~}}~‘�~~‘¡�~~‘¡~}~‘¡‘‘~}~¡¡‘}~�¡¡¡‘‘¡‘~~~~��~~~¡‘�€¡‘~¡‘�‘¡¡‘¡¡‘�~~~~‘¡‘�‘¡‘¡¡¡¡¡¡‘~~¡¢‘�‘¡‘¡‘~‘‘‘¡¡‘‘~~‘¡‘‘¡‘¡‘�‘‘‘¡¡‘‘�}~‘‘~~~�‘‘‘¡¡�~~~¡‘‘¡¡�~¡‘‘‘~~�~}~}~¡‘‘¡‘~‘�~~~��¡�~~~¡¡¡~~�~}~~‘¡‘}}~~‘‘‘‘~}}~‘¡‘~‘‘}}}}~‘~}}~}}}}}}~~~~~~}~}}}~‘�}}~~}}~~}}}~~~}|}}}}}~~~}|s}}}}~}}~}}s}}p}|}}rp}}|p}}vvpp|}p|}pvvpp||v|ppp}}|||||vpp|pppv|pp|vppp|pppvvpvppoppvppppvvpllopopoppppplllplpoolloppplooppllpolllllllllllClolllllllCllllllllCClllllllllllC>??ClllllCCCCCClll>Cl>>?>>>CCl?=?C>>CCC>>C===C==>CC==>>==>>=>>=>>C==>============!==========$$=!===$====!===$!!===$!!==$!===!!$!!!!! !$!!!!!!!!!!! !!!!!!!!!!! !     ?pŽ¢Óèúýúýúüüüûúýúýúüúüýÿü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õàÓz                                                                                                                                                                                                                                                                                                   ;ž×èóúóúóó÷úóóóóúóúóó÷úüþÿþþýýýýýýþýýýþýýýüè¬�ŽŽ}}‘�}}~~}}~}~~~~~~~~~�~}~}~‘~}~��~~~~‘~~~~}~�~~�‘‘�~~‘�‘¡‘~~~~~~‘‘~~¡¡~~~~‘‘~�¡¡‘~�‘¡‘��‘‘�~¡¡�~�‘‘‘‘¡¡��~�~‘¡‘¡‘~‘¡¡��‘‘‘‘¡¡~~¡¡‘~¡¡¡‘¡‘¡¡‘¡‘�‘‘‘¡‘~‘‘‘¡¡¡¡‘�¡¡~~¡�‘¡‘¡¡‘‘‘�~�‘‘‘‘‘�‘¡¡¡~�¡¡‘‘~}¡¡‘‘~~‘¡�~~~‘¡~~~~‘‘~~‘~~‘~‘~‘�~�~~¡‘}~~}~�~�~~�‘~~}~~~~}~}~�~}~~~}~~~}~~~}}}~}~}}~~}}}}}}~~}}}~}}}r}}~~}}}}}}r|}~~}}s}}}||}s|}|||v}}|v}}rp}}}}}p|}vp||p}}p|v}}}pp|}ppv}||vppvppvvvpp|vpppppppvpppvppppppppopppppplppppplpppllppllplpoolpplllloplllllvlllClllllllolClllllllCllClolllCCClllCCCCCCCCCCCC?CCClC>?CCCC>>>?CA>>CC>>>>>=Cl>=>C>>>=>=>C>=>>>==>=>>=>==>==>=====>==============$========$$=$===$$!!!==$!$=!!$!!$!!!=$!!!$!!!!!!!!$!!!!!$!!!!!! ! !!!!    ?q�’æ÷ýúüûüúüüúýúýúýúýýþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òàÇ_                                                                                                                                                                                                                                                                                                             "˜×èó÷óóóú÷óóúóú÷óóóúóóüüÿþþþþþþþþþýýýýýýýúæš�Ž}s}}�~}~~~}}}~~}}‘‘�~~~~~~~~‘¡~~‘‘‘~~~‘‘�}~‘~~�‘�€¡‘~�¡¡‘‘¡‘‘‘~~}~‘¡�~‘‘‘‘�~~~‘‘‘¡¡‘‘‘¡¡‘¡¡�~~‘¡‘~~~~~~¡‘‘~~~~¡¢¡¡‘‘�‘‘~~~~‘‘~��‘�‘‘~¡¡¡¢¡¡¡¡¡¡¡~‘¡¡¡¡~~‘¡¢¡‘¡¡‘¡¡~‘¡‘¡¡¡¡¡¡¡�~}~�‘¡¡‘~¡¡‘¡‘‘¡¡��}~‘¡¡‘�~‘¡¡�~~‘‘�~~~��~~‘~~~~~~‘‘~¡‘�‘~}~~}~‘~~~�¡~~}}}}~~}~~~}~}~~�~�‘~~~~~}}}~~}}}~~}}~}}}}~}}~~}}}}}�~~}}}}|v|vv~~}}|p}~}pv||}||p}}p|}}}vv}}}|}}pp||}|v}}}vs}}|pp}}}pp|}|||vpppppppv|ppvvpppppvpppoppvpppoopppppplopppppopplopvpplllopoloolllovoopollllllllpll?ClllllCClClCllClllC?C?>lllll???>>>CClC>?CCC?>CClC>CCCC>>>>>C>>=>>>>C>=>>=======C>=>A>===>===A>>==>=====>>==>=====>==!===$======$======$==!!!==!!$$$$!!!=!$=$$!!=!!!!!$!! !!!!!!!!!!!!!!!!!! !  m}’Öõýúüúýúûüüûúýúüúüýÿú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÚ�B                                                                                                                                                                                                                                                                                           zÓàò÷óúóúóóúóó÷óó÷úóó÷üüÿþýþþþþýýýýþþýýþýõÚ’�Ž~}~}}~~}}~}~~~~}}~‘~~}}~~}�~}~‘~~~}�~~}~‘�}}‘¡~~�~�~~~‘¡~}‘‘���‘�}~�~~~��¡¡~~~~¡¡���‘�~‘¡‘‘~~�~‘¡¡‘‘‘‘�‘¡‘‘¡~¡�‘¡¡‘‘‘‘¡‘�‘~‘¡‘~‘¡¢‘~‘‘‘‘‘¡‘‘‘~‘¡‘��‘�¡¡‘‘¡‘‘‘¡‘�~‘¡‘�‘‘¡¡‘~‘¡�~���¡¡‘‘~‘¡¡~���‘‘‘‘��‘‘‘‘‘�¡¡‘‘~‘�‘~��‘‘‘‘~‘‘~~�‘‘¡‘‘‘~~��‘‘~�‘‘}~~~��~�~~~~~~~�~}~~~~~~~~�}}~}~~}~~~~~~~~}~~~}~~}}}�}}}}}~}}}}}s}s}}}}}}}rv}}}}}|}}}}}}vp}~|}}p}}}p|||pv}|v|}vrv}}pppp|}pp|}pvv|vpp||vv|v|vppvppppppvpppoppvppppppoppplpppoovpppllpopplollpoloopllpvlllllllllllllolClllllCCllllllCllllCllCCClllC>ClC?CCllC>CCCCC??C>>CCC>?>>CC>=>>C>>C>=>C>=>>>>>==?>==>=>>>===>>=======>===>=======$===$=========$$==$!==$$!=!!$$!!$!9=!!!=!!!!!!$!!$!!!!!!! !!!!!!!!!!!!!!!!!!! jsŸ¬èúûüúýüúúüüúýúýúýýþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷èÓ”                                                                                                                                                                                                                                                                                                               @ÇÙòúó÷óóóúóóúó÷óúóóúóúüÿþþþþþþþþþþþýýþýüò¬¢��~~~}}}}}~}}}~~~}}}}~}}}}}}}~‘~}�~~}}‘‘~~}}~~}~‘~~‘‘‘�}~‘‘~}�~}~‘‘¡�~~~��~~€‘~~~~¡‘~}~¡‘~‘¡¡‘‘¡‘~�‘¡¡¡‘~¡‘‘‘‘¡¡¡‘¡¡‘¡¡�¡¡‘~‘~‘¡‘�‘¡¦¡��~���‘~~‘�‘¡¡~~��‘¡¡‘~~‘¡‘~~~¡¡‘~�‘¡¢‘‘‘‘~�‘‘¡¢¡¡�~‘¡¡‘~~~�~~‘‘‘¡~~�‘¡¡¡‘~‘¡‘��~‘‘¡¡¡~�‘�~‘¢¡¡‘¡‘~~~¡¡‘¡‘‘~~~~~‘�}‘¡¡~~~~�‘‘‘�~‘‘~~}€‘~~}}~‘�~}~~~}~~~~�~~�~}r}}}}}}~}}~~}}}}|}~~}}|}}|}r|}}}}~s|}~pp}~vr}pp|}}ppvp}}p}}}vv}|pp}vpv||v|v|pp|ppv|}|pppppppppvv|pppppppppppovvpppoopppppllpppololllvpllllllloppooollllllpllpllCllClllllCClllllllllCCCCClCCC?CC?llCCllCl?>?C>CC?>>>>>ll?>>ClC>>=?CC>>>>>CC>>>C>>=>=>>=>=>>=====>========>===========$==$$==$====$!===!!$!!$===$!!!$!!$$!!!!$!!!$!!!$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!! !?q�’æúûüúúýüûúüûúýúüüþþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õàÓx                                                                                                                                                                                                                                                                                                            ”Ùèóóóúóúóó÷úóóúóóúóóúüÿþþþþþþþþþýýýþþýü몢�Ž}}~}}~~}~}}~~~~}}~~~~~}~~~�~~~}~~~‘�~~~~~~~~‘‘~~‘~‘¡~~~~~~~~~��‘�‘‘‘‘~‘¡‘~~�‘‘‘�‘¡¡‘‘‘‘‘‘‘‘‘~‘¡‘���¡¡‘�‘¡‘�‘�‘¢¡¡‘�‘¡‘~�‘¡‘¡~~¡‘‘‘¡¡‘�‘~¡¡‘¡¡¡��¡‘¡~‘‘‘��¡¡~~¡¡����¡¡‘~‘¡¡¡‘‘��‘~‘¡¡¡¡‘‘�‘‘�‘‘~‘‘‘‘��‘�‘‘‘‘‘‘¡~~¡¡‘‘‘‘‘‘‘‘‘~�¡‘~‘¢‘~~‘‘~~‘‘~~‘‘~~�~~~�‘~}‘‘~}~}~~~�~~~~~}~�~~~}}~~~‘}}~~}}}}~}~}~~}}}}}~}~~}}~~r}�~|}~~}r}}}}}v~~}|}}}p}}}p}}|}v|}||||v}}|pp}|}r}}vp}}pprvv}|}ppvp||vppvppppp|vppvp|vp|pppppppppppppollpvppolppppoopolpolpppllpplplplllllllllllolllllllpollCllllllllCC?CClCClllCC??ClC?CCllC?CCCCC??CC>>CC>>?>CCC?>?>?>=>>?C>>>>>=>>>=>==>>>>==>=>>====>>======>==$============$====$=!$$$=$==$$$=!$==$!$!$!$!$=$!!!!!!!!!!!!!!!$!!! !!!!!!!! !!!!!!!! !!oŽ’Ú÷üüýúûüüûüüúýúûüþþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òÙ�B                                                                                                                                                                                                                                                                                                  ]Óàóóú÷óóóú÷óóúóóú÷óóúüÿÿþþþþþþþþþþþþýþú楒 }}~}}}~}~~}~}�‘‘~~}~~�‘~~~~‘‘‘~}}}~‘‘‘‘}}~¡¡‘‘¡¡‘‘‘}~‘�~~}~~�~~‘¡‘‘¡��¡�‘¢¡‘‘��¡¡‘¡¢¡¡¡¡��¡‘‘‘‘‘‘�‘¡~�¡¡¡¡¡‘‘¡‘‘¡¡���‘‘¡~~¡¡‘‘�~‘¡¡¡‘��‘�~¡¡¡¡¢¡‘�~�~~¡‘‘‘‘‘‘~~‘¡¡‘¡‘¡¡¡‘‘�‘¡‘‘‘¡¡‘¡‘¡¡‘¡‘‘�~~�‘‘¡¡¡¡�‘‘‘‘¡‘‘�~~~‘¡¡‘�‘‘‘~~‘‘~‘¡‘�‘‘~}}~‘�‘‘‘}~‘�}}~~~}~‘�~}~~}~}‘~~~~}}~~~}~~}}}~~}~‘‘~~}~}}}}}|}}~}}s}~~~~}}~}}v}‘}}|}}||}}r}}}~€}}}}}pr}}pp}r}}}}|vpr}}}p}|vpv}}}pp|}}}vpvvr}p}pp||pppppppppppp||vp}vppvpopopvvplllpplpppplpppvppoppplllppvppvpollllllllllllllllllpllpolllllolCCllCCl??CC?CClllCCCCCC??CCCCCCCClClC?>>>C?>>>CCCClC>>>>>=CCC>>?==>>>?>>>=CAC>=>=>A>>=>>>=>=======>====>===>>======$=!!=!=!$=$$==!==!===$!!$=$!===$=$!$!!!!!!!!=!!!!!!!!!! ! !!!!!!! !lŽ�Úõûúüüúüüûúýúüüüüþýú÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷èÓ”                                                                                                                                                                                                                                                                                                          ;žÙñó÷óóúóúóóúóó÷úóó÷úüÿþýþþþþþþþþþþýýþúæª���}~~}}~~}~~}}}~}~~}~}}~~~}~~~~~‘~‘~}~~~¡~}}‘‘~~‘‘�~~~���‘~~~���‘¡~}�¡‘~�~‘¢¡��~‘¡¡~�¡¡�‘‘‘¡¡~~¡‘¡�‘‘‘~‘¡‘‘‘¡‘¡�‘�‘‘�‘‘¡‘‘��¡¡‘‘‘‘¡¡¡¡�~‘‘¡~‘¡¡¡¡¡‘‘‘‘¡¡¡�¡¡¡‘‘‘‘¡�‘¡‘‘¡¡‘¡�~‘�‘¡¡¡‘¡�~‘‘‘¡¡‘‘‘‘‘‘~�¡¡‘‘‘‘~�¡‘‘‘~~¡‘¡‘�‘¡¡‘~‘¡‘}�¡‘‘‘�~~�~�~�‘‘~}¡¡}~‘‘‘‘~~‘~~�~~~~~‘~}~~~~~~~~~~~~~~~~~~~}}~~~�~}}}}}}~}}}~~}~}}}}|}~}}}}}}}}}v}rv‘€}r}}}}}}}}}}}}v}}p}p|~}rv}}pp||||pp}}}|pp|pvvv}ppv}pppv|pv|vppppppvvpppppopppppoppplppppplppploppooppllpplplppplllplllolllllllllllolplllCllloolCllCllCllllllllC?CCC?CCClCCCCC?C?ClC>?>>CC>>>>>>CC>=?C?C>>?>>>>>>C>=>>==>>=>=>=>=>========>=======>=!==========!====$$$=====!!==$$!!==$$!!$=$!=!!!!!=!!!$!!!!!!!!!!!! !!! !!!!!!!!!!!!! ?s’Öõüüúýúûüüúýúûüúýþý÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷õàÇ]                                                                                                                                                                                                                                                                                         ƒ×àó÷óú÷óóó÷÷óóúóóóúóüüÿþþþþþþþþþþþþþþúäª��}}~}}~�~~}}}}}}}}}}}}�~~~}~‘}}}}~‘¡~}‘�~‘~}}~}~~~~}~}~~~~‘¡~~~‘‘¡‘~}~�~~}~‘¡‘‘‘��‘‘~~~~~�‘�¡¡~~�¡¡¡¡‘‘‘‘~~�‘‘¡‘~~�~�¡¡‘¡‘¡‘‘¡¡¡¡¡¡¡¡¡£¡�‘¡¡‘‘¡‘~~¡¡�¡¡¢¢¡¡¢¢¢¡¡‘‘¡�~�¡¡‘‘¡¡¡~��‘¡¡¡¡¡‘~‘‘¡¡‘‘¡¡¡¡‘�‘‘‘¡¡�‘�~�¡¡‘�~‘‘‘‘‘�‘¡‘�‘¡~~‘¡¡‘~~�‘‘~}}~�‘~~‘‘~~¡¡¡‘‘�‘‘‘‘‘‘‘��~}}}~~‘‘}�¡‘~}~}~~‘}}}~}~‘�‘‘¡~~}}}}~}}~}~~}s}}||}}s}}}}}}r}}}}‘}}|}rp}}}s}}}}}vr}v|}}}}v|p}}ppvv}p||}}||pppppp}ppp|}}|v|v|}|v|ppppvpppvvppp}|poppppppvppppvpplllppopplllllllllpoolllllolloopllllllvvll?Cl?llllCClllllllllllllCC?CllCllC???CC?>>>>>>>CCClC?>?>>=>>>>>CCCA>>?>>>CC>>=>==========>>=>==>=====>>==>====$$=====$$!$==!====!!====!!!!!!==!=$!!$!!!!$!!=!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !>}¢Óõûüüüüûúýúüüúüüýþý÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷èÙ�;                                                                                                                                                                                                                                                                                                         BÊÙòúó÷óó÷úó÷óúóó÷÷÷óúüÿþþþþþþþþþþþþþþúÚ¢ �Ž}�~}}�€~}~}}}~~~}~~}}~~~~}~~}~~~~�‘~}~¡~~~}}~~¡¡~~}~�¡�~~‘�‘~}‘¡�‘�~�~~~�‘‘���‘~����~�‘�‘�‘¡¡‘�‘�‘‘‘‘¡¡�~‘‘¡‘‘¡¡‘‘�‘¢¡‘‘‘‘¡¡¡¡‘‘¡¡¡‘¡¡¡‘‘‘¡¡¡‘‘�¡‘¡‘‘¡¡¡¡¡¡‘¡¡‘‘‘¡¡‘‘¡¡�~¡¡‘‘‘¡‘¡‘‘¡¡�~‘¡‘‘‘�¡¡¡¡‘¡‘‘‘‘¡~~¡‘�‘‘¡��‘‘��‘‘‘‘�‘‘¡�~‘‘‘~��‘‘‘~~��~�~~‘‘��‘‘‘~~~~~‘‘~�‘‘~}~~~}�¡�}~‘�}}~}~~‘‘}~}~~‘}}~‘~}}}~}~}}~}}}}}}}}}}}}}}}~}}}}}|}}}}}}}}}}}}|}}}}s||p}}}}}||v||v}r}|v||}pp|v}v||}p}pppv}pp|v|vpppppppvpppvpppvvpppvolppvvppoppoopolovplplopplolllllpllopollplllllllllplllllllllCCllllCClllllllllCCClCCCCllCClCCCCC>>>C>?C?CC>C??>>>>?>>>CCA>>C>=>C>=>>>=>C>=>=>==>>===>======>>===>===$=======$=====$===$====$$$$$$$$=$!=!$!!!$!!!!!!$=!!!!!!!!!!!!!!!!!!!! ! !!!!!!  ?s�¬òúûüúüüúýúûüüúüýþú÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷÷÷æÓx                                                                                                                                                                                                                                                                                               ˜×èóóó÷óúóóúó÷óúóúóóúüÿýÿþþþþþþþþþþþþúÚ’Ž��~~~~~~~~}~}~~~����}}~~~~~�}~}}�¡‘~‘‘~}}‘~}~~~�}¡¢‘�}�¡¡‘‘‘~}�‘��‘~�¡¡¡‘‘‘¡¡��‘‘�~~~�~~‘¡‘�‘¡¢¡‘‘~~‘¡~~‘¡¡~¡¡‘��¡¢¢¡�‘¡‘�¡�¡¡¡¡¡‘¡¡‘‘‘‘‘~¡‘�¡¢¡‘�~¡¡‘¡¡‘�~~¡‘~~‘¡¡�¡¡¡¡¡¡~~‘¡‘¡¡‘¡‘�~~‘‘�����¡¡�~~�¡‘�‘‘‘‘‘‘¡‘~~‘‘¡~�‘�~�¡‘~~~‘‘‘‘‘~}~‘~�‘��¡‘~~~}~‘‘‘~~~}~~}~}~‘��~~~~��~~‘‘~}}}}}~~}~~‘¡�~}}~~}}}}}}}~}~}}~~}}}|}}~~~~}}~~~~}}~~}}p}~}}}v}}r|vr}~}}}}}}}}p}}|}p}pp}v|}}||pv|}}}}|r}}r}|ppv|ppppp|vppp|}vvpppvpp|vppppplolppplpolloppllovpooppolllppllpollpplllllllllllllllllllllollllllC?lllllllC???ClCC>CllllCCC??>?CCCCC?>>CCCCCC>>?CCC>>>CACCC>>C>=>>=>=CCC>==>>==>=====>C>=>============A>====A====$!$=$==!=====$===!$!$!!!!!$=$!!$=$!!!!!!!=!!!!!!$!!!$!!!! !!!! !!!! =q�¬õüüüûúýúüüüûüüüþþú÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ñÚžY                                                                                                                                                                                                                                                                                            _×àóúóúóúóóúóóúóó÷óóúüÿþþþþþþþþþþþþþþúæ¥��}}~}}~}}~}}}~}~~~~‘‘}}�‘}}~~�‘~}�‘~}~~�~~�~~~~~~~‘‘��~‘‘‘~~‘‘~~‘‘‘¡~}¡¡¡‘‘~‘¡‘‘‘~‘�~‘‘‘‘¡¡‘��‘‘‘¡¡�~¡¡�~‘¡‘~¡‘¡¡‘¡¡¡¡~‘¡¡‘‘‘‘¡¡�‘¡‘¡‘‘¡¡�¡¡‘~¡¡¡‘¡~¡¡¡¡¡~‘�‘¡¡‘¡�¡¡‘¡¡¡‘¡¢��‘‘‘‘¡‘‘‘¡‘�~‘¡‘‘��‘¡‘~�¡¡‘‘¡¡~‘��¡¡‘��‘‘‘¡¡~~¡¡‘~~‘��‘¡��~‘‘}‘‘‘¡‘~~~~�‘~~¡~~~~~~~~~~‘~~~}~‘‘~~}~�~}}~~~~~~~~~~~~}}~~}}}~}}~~}}}}~�}}}}}}}}~~}}~}}}}}~}}}}}~}}}p}}}v}|}}}|}||}|}|}}p|}|p|}}||}}pp||}}}pvvvv|}vvvpp}vpv|vpppp}|ppppppppv|ppppppplpvppppppppopllpppopopllpplllplllplllllllolllllllllllllllCllllllClllClllCClClCCCCClClCCCCC?ClCCClC?C>?>?CCCC>>Cl?C>>>C>>>>>>>=>>>C>>>CC==AC==?>>C==>>========================$==$=====!!====!!=$$=!!$!!$!$!=$!!!!!!$!!=!!!!!$!!!!!!!!!!!!!!  ! !!!  =s’Óõúýüüúýúûüüúýúýþý÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷÷ú÷è׃                                                                                                                              !                                                                                                                                                                  žÙòóóúóóóúóóúóóóúóúóüüÿþÿþþþþþþþþþþþý檟��}}}}}|}}}~~~~��~~}~~}~‘¡‘‘¡‘¡‘~}~~~}~‘¡‘�‘‘�‘‘~~�‘~~¡‘}~~}}~¡��¡‘¡‘~~~�~‘¡~‘¡‘‘‘¡¡‘‘‘‘�‘¡¡�‘‘~~~‘¡¡‘‘¡~~‘¡��¡¢¡¡¡�~‘�~~¡¡¡�~~¡¡‘�¡¡¡‘¡¡¡‘‘¡�~¡¡‘‘¡��¡¡¡¡�¡¡¡¡¡¡‘~��¡‘~~~¡¡‘‘¡¡�¡~¡¡¡‘‘‘�‘¡¡‘‘~�‘��¡¡¡¡¡¡‘�~~~‘¡¡¡‘~~¡¡¡~‘¡‘~‘¡‘~~~‘~~�~~}��‘¡�}�¡¡‘¡��~‘�‘�~~‘¡‘~~~‘~~¡‘~~~}~~~~~¡¡¡�}~~}~}}}}}~¡‘Ÿ~}}}~�~}}r}~~}}~~~~}}~}}}r|}}~}r|}|s}ps}}~}}rv|p}|}}v|pp}vrpv|||vp|}}}v||p}ppppv|ppv|}}|ppv}}}ppppppp}vppppppppvvvvpppppppvvppvpppppppollolopppppplpplllolpplll?lppppllllllolpllClllCllCCClCCCCClllllC?CllllC?CllC?ClCCCClCCCCC>C>?l>>CC?CC>=>=====>C>>>C>A>==>=>>C>>CAC>=======>>>>=>===========$$$!========$!=$!==!==$$===!$$$!$=!!!!!!=!!!!!!!!=!!!!!!!! !! !!!!!! !!  =q�Ö÷úûúýúüüûúýúüúýÿý÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷÷õàÊZ                                                                                                                               !YT!                                                                                                                                                             ‚Ùæó÷÷ó÷úóó÷úóóúóó÷óúýÿÿýþþþþþþþþþþþýæª��}}}}}}}}}}~}~~~€}}‘�~~~~~~~‘~‘~}~~~~~~~‘‘‘‘~‘~~‘‘~��~~‘~}�‘~~�¡~~‘‘‘‘‘‘����‘�‘¡‘~‘¡¡~�¡‘��¡¡‘‘��‘‘‘¡¡‘‘�‘¡¡��‘¡¡¡¡¡~‘‘‘�‘¡‘¡‘�‘¡¡�‘¡¡�‘¡¡‘�¡¡‘�¡¡¡�¡¡‘¡‘‘‘¡¡‘‘¢¡¡¡��¡¡¡‘¡¡¡¡‘‘¡¡¡¡�~¡¡‘�¡¡‘¡¡¡‘‘‘�‘‘‘¡¡¢¡�‘‘‘~~¡¡‘‘‘�‘¡‘‘��‘‘‘¡¡‘‘‘‘‘�~‘~��‘~‘¡‘}~¡¡�‘~‘~‘~~~~�‘��~~~¡~~�~~~~~~~~~~‘‘‘€}~~}~~}}}}~~‘‘~}}}~~~}}}}}~}}}~~~}}}}}}|}}~~}}}}}}}}|}r}}}}w|}v}~}s|p}}}pv}}||}||v}|pp}pv||}p}pppp}}prvp|||vrpppppvvpvvppp|pppppppppvpopppppvpoppppppooplpppppoollpolplllvlllllplpllllllllollllllCClllllClCCCClllllC?llllCCCClCC>CCClCCC?ClC>?CC?CCAC?>>?>>>>>>>>>>>>A>==C>=>>>=>>C=>===>=====>>======>=======$$======$$======$$$$!$==!!$=!!$$!$=!$!!!!!!$!!!!!!!!!!!! !!!!!! ! !!    !!!=s’Öúüüúýúûüüúýúýúýýú÷÷÷ú÷ú÷ú÷÷÷ú÷÷úú÷èÙ”                                                                                                                      !Y‚_T!                                                                                                                                                                  žÙòóóóúóóóúóóóúóóúó÷üÿþþþþþþÿþþþþþþþèš�Ž}~}}~~}~}~��}}}}~}}~~}}�‘~}}~}}~}}~~~~~�~~‘~~~}‘¡¡‘‘~~~~}}‘¡¡¡‘¡�}~~~‘¡¡‘~~~���‘�~~~~~‘¡¡‘~‘‘‘‘~~�¡‘�‘¡¡¡¢£¡¡‘~�¡¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡¡‘‘‘‘‘~¡¢¡¡¡‘‘¡¡¡‘¡¡¡¡‘¡¡~~~~¡¡£¡¡¢¡¡¡¢¡¡¢¡¢¡‘¡¡¡¡¡��¡¡¡¡¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡�����‘¡¡¡‘‘‘¡‘¡‘‘~�¡¡�~~‘¡¡‘‘~�‘¡‘¡�~¡¡�}¡‘}~~¡‘�~~~~‘~~‘‘}~‘~}}}~�‘�}~‘‘€‘~~~~~~~~~}~~}~}~~}}}}}}}~}}~}}~~~~}}rs}~~}}}}}~~}p}}~~~}vv}}}}}r}p}~|vvrp}}p}}}}v|}|pp}|v|vvv|||pp||pppvv|ppppvv|}|vppppppppvppvpoopppppppllppvvplopppovvppolppooooollpopllovooplpllllllllllllllCCll?looollllllllllollllllC??CllCC????ClC>>>>>CC>CC??>>>>>>>>C>>>>>CC>==>>>=>>=>>C==========>==>===>=====>>======!$=======!!!!===$=!!=!$$!!!!===!!!$!!!!$!!!$!===!!!!!!!!!!!!!!!!!! !!!! !!! !!!!!!!!!=}’Úûúýúüüûúýúýúüýþþú÷÷÷÷÷÷÷÷ú÷÷úú÷÷úõàÊ]                                                                                                                           !b��Z                                                                                                                                                                  x׿ó÷÷úóóúóó÷÷÷ó÷úóóüÿÿüÿþÿþþþþþþþþþõª�Žs~~}}~~}}}~~‘~}}~~~~}}}~€~~~~~~�}~~~~~~~~}~‘‘~~}~‘�¡‘~~~~~~��¡¡‘�‘~~~~�‘¡�‘‘~‘‘‘�‘~~��~�¡¡‘‘‘‘¡‘‘�¡¡‘��‘¡¡¡¡¡‘‘~‘¡‘‘¡�¡¡¡‘¡¡¡~‘£¡~‘¡¡‘‘¡‘¡¡¡¡‘�¡¡¡�¡¦‘‘¡¡¡�‘‘‘‘¡¡¡¡¢¡¡¡¡‘‘¢¢¡¡‘‘¡¡‘‘¡‘¡¡¡‘¡¡¡¡��¡¡¡¡¡‘‘¡‘��‘‘�‘¡‘¡¡¡‘~~¡‘‘¡‘‘‘‘‘~��¡¡‘���‘‘‘�‘‘~~‘‘~¡‘~�~‘‘~~�~~‘~~¡‘~~~�~~~~~�‘~‘�}~~~}~��~~}}}}~~~~}~}~~}}~}}}~~}~}~}~}}}}}}}}}}}}}}}s}}~~}}|r}}}}}}}p}~}p}}}p}}}}}|p}v|v}||p}p}}pv|p||vpppv}|ppvppv|vpppp|vppppppp|ppppppppppolppppplpvppppplolppplollplpvlolllloooolllllllllllplllllllCCllllllCCl?lllllClll?ClCCCCCCCCC>CCCC???>>CCC??C>>>>CC>>CC>>>>CC>=>?>>>==>=C=>=>=>====>==>====>=======A====$====>A==$==$=$===$!$==!$!!!$!!$=!!$!!$!!!=!!!!!$!!!! !!!!!!!!!!!!!!!! !!! !!!    ?�’àüúýúûüüúýúýúûüÿü÷ú÷ú÷ú÷ú÷÷ú÷÷úú÷úèÚ”                                                                                                                   @_Y@                                                                                                                                                             žÙòúóóóóúóóúóúó÷óóúóüÿýÿýþþþÿþþþþþþ÷Õ��}}~~}}}~~~}}}}}}}~~~‘~~}}}}}}}}~��~~~‘‘‘~~~‘‘‘‘~~�~~�‘‘‘‘‘~�‘~¡¡~~�‘¡‘¡‘�‘¡¡¡‘‘¡¡‘‘¡‘¡¡¡‘¡‘�‘‘‘���‘¡¢¡¡‘¡‘¡‘~~‘¡‘‘¡�~��‘¡¡¡¡¡¡~~¡¡��¡¢¢¢¡��‘�¡�‘¡¡¡¡¡¢¡¡¡¡‘‘¢¡‘��‘¡¡‘~‘‘‘�‘¡¡‘¡��¡‘�‘¡¡¡¢¡�¡¡¡‘‘‘¡¡‘‘‘��‘‘~‘¡¡€¡¡‘‘�~�~�¡‘‘¡¡¡‘�~~¡¡¡¡¡‘‘�‘¡‘~~‘¡¡~~~¡¡¡‘~~~�‘‘‘}~~‘¡‘�~~~‘‘~~}}~¡‘~}~~�~}~~~~}~~~‘‘~~}}}~~~~}~~~}}~}~}}}}}~~}}~}~~}}|rv|}|}}}}}}vr}~}~~pv}}}~~}p|}rpps}}~}|}}rpp}}}}|pp|}pp|pv}||}}}vpvppvvpp}pp|p}pvpppvvpppopvvppopppopppppvplppplpllollpppollllllllllllooplllllppolllllllllllCCllllllClCCCCC?ClCCCC??lll?>???CC?>>?CCCCC>?>>CC=>=AC>>>>>===C>>C>>========>A>=>=>>>===>>>==================$$===========!$=====$==$!$$!!$!!!!!==$!!!!!!!!!!!!!!!!!!!!!!!!! !! !!  !o�šëýúüüûúýúüúüüüýþú÷÷÷÷÷÷÷÷ú÷úú÷÷ú÷õàÊY                                                                                                                            !T                                                                                                                                                       _Ùæóó÷ú÷÷ó÷úóóóóúóúóüÿþþþþÿþþþþþÿýþüä¢��}s}~~|s~~}~~}}~}~~~}~�‘~}~~}}~~�‘~‘~}���‘~~‘~�¡�‘‘~~}~¡¡~‘~~‘�‘‘��‘‘¡‘‘¡‘‘‘‘‘��‘‘‘¡‘¡�¡¡¡‘‘~�¡¡~��‘¡¡¡¡‘‘¡‘‘‘‘¡‘‘¡¡‘~‘¡‘¡¡�‘‘‘¡‘¡¡‘‘¡¡¢¡‘~¡¡‘‘¡¡¡¡‘¡¡‘¡¡¡‘‘¡¡¡¡�‘¡¡‘‘‘�¡¡‘¡¡�¡¡‘‘¡¡�‘¡‘¡¢¡�¡¡¡�‘¡¡¡‘�¡‘‘��‘¡¡¡�‘¡‘¡‘~~�‘‘�¡¡¡¡‘~~~¡£‘‘‘¡‘~‘¡‘~~‘‘¡‘~�‘‘¡¡~~~~‘�‘~�‘~‘‘‘~~~‘‘~~}~¡�‘~}}~~‘~}~~~~~~~~~~}~~~~~~}}}~}~~}~}~}}s}~~}}~}~~}|}}}}~}}|||~~}p}}}~}v}}}}}}||}}}pv}}}}|p}}vp}}}}vp|v|}v||pv}pv}||pprvpppppppppvvvpvpvppppppppvvploopppopppvplpppllpppolplpllpllllllplllpovllllllppolllllllllCllllCllllCllCCCCCCl?CCCCCll??CC?>??>>?CC?CCCC>>?C>=>C>>>>>=>>>?>>>AC==>===>>>>=>==>==>=====>=======>==================$===$$$$$$$$$==$!!$=!!$=$!$!$!!!!!!!! !!!!!!!!!!!!!! !!!!!    !!o�¬õüúûüüúýúýúûüüþýú÷ú÷ú÷úú÷ú÷÷úú÷úúèÙƒ                                                                                                                                                                                                                                                                              ž×òó÷óóúó÷óóúóú÷óóóúüÿþÿþýÿýÿþþþþþþ襠�~}|}�~}}~�~~�~~��~‘‘~}~~}~~����~~~}�~}}}~�~~}}}‘¡‘~}~}~¡‘~‘~�~~~~‘‘~~~�¡¡¡�~~~~~��‘‘���~¡¡¡¡¡¡¡‘�‘¡‘‘‘‘‘‘‘‘¡¡¡¡‘��¡¡¡~¡¡¡¡¡‘�‘‘¡¡¡¡¡¡¡¡‘‘�‘¡¡¡¡¡‘�¡�‘‘~�¡¡‘¡¡‘¡¡¡�¡¡¢¡‘‘�¡¡‘�‘¡¡¡‘¡¡¡¡‘¡¡¡‘‘‘¡‘‘¡¡‘‘¡~�¡¡¡¡¡‘¡¡‘~¡¡¡¡�‘‘�¡‘‘‘‘¡~¡¡‘¡¡‘~~�~~‘¡‘�‘¡~��~~~~‘‘~~~}~~~~‘¡‘~}~¡¡‘~~~‘~~�~~~~}~}~~~}�~‘‘�~}}~�~~~~~�~~��~}}~~}}~~}}�~}}}}}}r}~}}}}}}}}|}}|p}}}}vr}}||}p}}}}}}|}vr}pv}}pp|}r}pv|}}p}}vp}}|pppppvv}}|p|||ppvppv|pppppppppppp|vpppoppppllpolovpllvppvppllopppppllppllpolpllllllCllClllllllClCCCCC>lllClllCCCllCCCllCCC>>ClCCCCCCCCC>>CCCC==>lC>>CC>CC>CCCAC>>>=>=>>CC>>====>===========>A===$$=>===========$9!$====!!!!!$!==!!!!=======!!$!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!! !$q’Úúüüüûüúýúüüúüýþý÷÷÷÷ú÷÷ú÷úú÷÷úúúõàÊB                                                                                                                                                                                                                                                                                          _׿ó÷úóúóóúóúóóóóúóúüÿÿþþÿýþþýþþþþþõª���}}}}€‘}}~~}~‘~~‘}~‘�~~}~~�~~‘�~~~}~‘~}}~~‘~~~}~¡‘~~~~~~‘‘‘‘‘‘�~���‘~}�¡‘¡¡‘‘�~~‘‘‘¡‘~�‘�‘¡‘¡¢¢‘��¡¡‘�~¡¡‘‘¡¡‘�¡¡��¡¢‘~¡¡¡¡¡�‘¡‘¡¡‘¡¡¡¡¡�¡~�¡¡¡¡¡�¡¢‘‘¡�‘‘¡‘¡¡‘¡¡‘‘¡¡¢¡¡�‘‘¡‘¡‘¡¡¡�¡¡¡¡‘�¡�¡¡¡�‘¡¡¡‘¡‘�¡¡¡‘¡¡¡‘¡‘‘¡¡¡‘‘‘‘¡¡¡�~¡¡‘¡‘‘¡‘‘¡�~�~¡‘�‘¡‘�‘‘‘‘~‘�‘~~�~��~~‘‘‘‘~~‘¡�~�~�‘�~~}~~~~~~‘}~~�~‘~~}}~‘~~}}~‘~~~~~}~‘~}}~~}}~~}s}}~~}}}~}|}s}}~}}}}}}r}}|}}}s}}p}}}}}}}|p|vps}|vv}||}pp}}pp|}p|}}p|vvppp|||vpvvppv|vpppppppoppppvvpvppppooppplopolpvpllvvlppllopploplllpoopollllllllllCClllCllolllll?CCCClClllll?ClClClCCCC>?CCCCCCCCCCCC>=CCC?>>?CC>>CC>>C>>C=>C>>>=>>>=>>>==>=>>=====>=====>=============$$$===!=====$$$$!=$==!!=!!=!!===!!!!=!!$!!!$!!$! !$!!$!!!!!!!!!!!!!!!! >Ž’àüúûüúýúýúûüüýþýú÷÷ú÷úú÷ú÷÷úúúúúúèÙƒ                                                                                                                                                                                                                                                                            žÙòóóóóóú÷óóóúóúóóóúÿþÿþþýÿþÿþÿþÿþúÕ��~}}}}~~}}~~}}}~~~}}}~~~}}}~‘~}}~~~�‘‘‘~}�~~‘‘‘~}~¡‘�¡¡¡~~�‘‘‘�‘�‘‘‘¡¡�}�‘~~~~‘‘‘‘¡¡‘�‘�‘¡¡¡‘~~‘‘�¡¡~�¡‘‘¡¡¡‘‘‘~‘¡¡¡~‘¡¡‘¢¦¡¡‘€¡‘¡¡¡~~¡‘¡¡¡¡¡¡¡�‘¡¡‘¡¢¡��¡¡¡��¡¡¡£¡¡¡¡‘¢¡¡¡¡‘¡¡¡¡¢¡‘¡¡¡¡£¡¡‘‘¡¢‘‘¡¡‘¡¢¢¡¡‘¡‘~~�¡‘���‘¡‘¡�¡¡~‘¡¡‘¡¡¡¡‘~~~~~‘¡¡‘‘��‘‘�‘‘¡¡¡¡�~~~‘‘‘‘¡‘~~‘�‘~}‘¡‘~‘‘‘‘‘~~}}�‘�~‘‘~~‘‘~~~~~}~~}~~}}}}}}~~~‘‘}}}}}}~}}|}~~~}}}�}r}}~~}}}}}}}}v}}~}}}}}}}~}svr}}v}|}|v||}p|pv}vpr}|pp|}pp|}vrpppvppp}}pppppp||vppv}vpvvppppppopooooppolpvpllplllpplllllpllllllppoolvlllllpoolpplplllllllllllllllCCCCCClCCl?>ClC???CC>?C?CllCCC?C?>>>C>>>?>C?=>C>==>C>>>=>>>====>C===>>=>>>>==>==>>====>=>=>================!==!$!$$=====!$$!===$!!!!=!!!!!!=$!!!$$!!!!==!!!!!!!!!!!!!!!!!! ?�šëüüúýúýúüüûúúýÿý÷ú÷ú÷÷ú÷úú÷úúúúúõàÇB                                                                                                                                                                                                                                                                                     _Óßó÷÷úóúóóúóúóóóúóúüÿþþþÿþþÿýþþþýýæ’ŽŽ}}}}}}~}}}}}}}~~~~~~}}}}~~~�~}~~~~€‘~~~}�‘~~‘¡~~��‘~‘‘‘}}��‘‘~~‘‘‘‘‘‘�~‘‘~~�‘‘‘¡�¡‘�‘�‘¡¡¡¡‘‘‘��‘¡‘�‘‘‘�¡¡¡¡‘�¡Ÿ¡¡‘‘¡¡‘‘¡¢¡‘‘¡¡‘‘¡‘��¡‘¡¡¡¢‘‘¡‘¡¡¡‘¡¡¡¡‘¡¡¡¡‘¡‘¡£¡¡¡¡¡¡¡‘¡¡¡¡£‘‘¢¢¡‘¡¡¡¡¡¡¡~¡¡¡¡¡¡‘‘¡¡¡¡¡‘‘��¡‘¡‘¡‘��‘‘¡¡~�¡¡¡¡‘�¡¡‘���~~‘¡¡¡‘~‘‘‘~�¡¡~‘¡‘�‘�‘~‘�‘¡‘~~�~~}�¡‘~‘‘��‘~~~~~‘~~~~}~‘‘}}~~}~~~~~~}~}~}~}~‘~}}~~}}~~}}~}}}~}}}‘}}}}~}}}~}}}}}r}}}}}�}r}}}|v~|vp}}vv||||}}pp}}p}vvvpp}||v}|vvpp}pppv|}pppppv||vppppvvppvpppppppolopploppppllpollppppllppllllllppoloplllllpoloopllollllCllllllllllllCCllCCCCClClC?CCC?C??CCCCC?C?CC>>CC>?>>CC>>>>>>>C>>>>>=>=>>>C>==>>>>>C====>>==>>======>=>$=============$$==$$====!==$$!=$$$==!$!!!$=!$!!!!!$!!!!!!!!!!!!$!!!!!!!!!!!! !!!! o Õúúýúüúýúûüüýúýýú÷ú÷úú÷ú÷÷úúúúúú÷è×z                                                                                                                                                                                                                                                                                �×òóúóóóóúóó÷óóú÷óóúÿÿþÿþÿþþýÿþÿþÿõ¬�}}}~~}}}~~~~~���‘~‘��‘~~~~~~~}}~‘‘‘~¡‘}}�~‘¡‘}}¡‘¡‘~~~~~‘}~¡‘¡‘~~¡‘~~‘‘¡‘¡¡‘�‘‘¡¡‘~~�‘‘‘�~~�‘�¡¡‘‘¡¡~�¡£¡¡¡¡‘¡¡¡¡¡‘‘¡�¡¡‘~‘¡¡�¡¦¢¡¡¡�¡‘¡¡¡¡¡¡��¡¡¡¡~¡¡¢‘¡¡�‘¡‘¡¡~¡¡‘~�¡¡¡¡¡¡¡¡¡¡~~‘¡‘‘¡¡¡¡‘¡��‘¡¡¡‘¡¡‘‘‘‘‘¡¡¡¡¡¡¡‘�¡¡~‘¡¡¡¡‘¡¡‘~�~~‘¡¡¡‘¡¡‘¡¢‘‘�~���~¡¡‘~~‘¡¡¡¡¡~¡‘~~‘¡‘~~~~‘~~~~‘¡‘~}‘‘‘~~~‘‘~~}~~~}~}~~‘‘~~~}}}~~~}~�}}~�}r}~~~~‘~|}s}}}~~}}}}vr}}s}~}}}}}}}|~}vrp}|}}}rp}}pp}v||}}}vr}}}}pp|vppvpv}}|}v|pp|pppvpvppvppppppppvpppppvvppppvvvppppppppppppppllolopplpvpollllllolllllllllllClllllllCCC??>llllllllllC?CCllllCCCCCCCCC?CCCCC?ClC>>>?CC>>>C?>C>CCCC?CCCC>>>>>==>=>C>=>A>==>=>C>==A>>>======$=====$===$$=======$$====!!!=$!!!!!!!==$!$!!==$==!!!=$!!!!!!!!!!!!=!!! !!!!!!!!!!       =Ž¥àüúýúýúüüúúüüýþýú÷ú÷÷ú÷úúúúúúúúúõàž@                                                                                                                                                                                                                                                                                  ;ÓÙó÷óóúóúóóúóúóóóú÷üÿþþþþþÿþÿýþþþúä¢�}}}~~}}}~~}}}~~~~~‘‘€‘~~~‘~~}}~~‘‘~~‘‘~~~~‘‘‘}~‘‘¡‘}~‘~~�~~¡‘‘‘~~‘‘~~�¡‘‘‘~‘‘‘¡¡‘‘‘�‘‘¡�~~‘‘��¡¡‘‘¡‘‘‘¡¢¡¡¢¡�‘¢£¡‘‘‘‘‘¡¡‘�‘¡¡‘¡¢¢‘¡¡¡¡¡¡¡‘‘¡¡‘¡¡£¡~‘‘¢¦‘¡¡‘¡¡¡¡¡‘¡¡¡~‘¡¡¡¡¡¡¡¡¡¡‘�¡¡¡¡¡�¡¡¡¡‘~‘¡‘‘‘¡¡�‘¡‘‘¡¡¡¡¢¡‘~‘¡‘��¡¡¡¡¡¡‘‘�~‘��‘¡¡¡‘¡¡¡¢¡~�‘‘���‘¡��‘‘‘‘‘‘�‘‘‘‘~~‘‘‘‘�~�‘~~~~‘‘~~~¡‘~~}~~~~~~~~~~}~‘~}}}~~}}�‘~~~}}}}~~}}}}}~~}}}}}~~}}~}~}}}}}}~~}}|}}}s|}}|vv|}}}||}p|v|}p}}|}|}vv}}|vv||pp||}|v}vpppp|}ppp||pppppp|vvpppvpppppppplv}pppvvplpppplpvppolpllpooppplloolllolloplllllollClolll?llllCCllC?llClllCCC?ClClCll?ClC????CClC?ClCC?>>?C>>>C>?>?CCC>>C?AC>>>A>>==>>C>=A>>=>==>>===>=A=========>=>=$===$=============!=!$==!!$$$!$=$!!$$!!==!!=!!==!!!!!!!!!!!=!!!!!!!!!!!!! ! ! j ªõüúýúýúûüýúûüýþúú÷úú÷ú÷úúúúúúúú÷æÓ_                                                                                                                                                                                                                                                                     zÓèó÷óúóóóúóó÷óóúóóúÿÿþÿþÿþþþýÿþÿþ襟�~~~}~~~~~~}~}}}}}}}}}~}~~~€~~}�‘‘‘�}~¡‘�}}~‘~}�¡‘¡�}~¡¡‘~~~�~~‘~~�‘~~‘¡¡¡‘‘‘¡¡‘¡‘‘‘‘~�‘‘‘¡¡‘‘¡¡¡~‘¡¡‘�‘‘~~¡¡¡�‘¡~‘¡¡¡¡¢¢¡¡‘‘‘~�¡‘�‘¡¡¢¢¡¡�¡¡¡¡�¡¡��¡¡¡¡‘‘¡¡¡¢¡¡¡¡‘¡¡�¡¡¡¡¡‘‘‘¡¡¡¡¡¡¢‘¡��‘¡¡¡¡¡¡¢££¢¡�~¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘��‘�‘¡¡‘¡‘�‘¡~~~~‘¡��¡¡¡¡‘~~‘‘‘‘�‘~‘�~¡~~‘~~�~‘¡‘�‘‘~‘~}~�~~~‘‘~~~�‘‘‘�}}~~~~~~~~~}~‘�~¡¡}}}}}}~~}}~}}}~‘�~}~~‘�}}}}}}}}}}|}}}}}}r}|}}r}}}}}}v}}}|s}}}}}}pp}}}pppp}}}}pvv||vppp}ppvp}}pp}vpp|pppppppplppvvvvppplovplppllpppppllpppppvplopollllllollovollpplollllClpllllllllllllll?llllCClllClllllll??CC?CCCCCC?>>CC?CCC??>CCC>>>>=>>=>>==>>>>>>>>=A>CC==>C>=======>>>>=$=A>=========$==$$====!======$==$!!=$$==$!==$!=$!!!!!!=!!!!!!!!!=$!!!!!!!$!!!!! !! q‘Ùúýúýúüüûúüüüýþý÷ú÷÷ú÷úúúúúúúúúúñÚ”!                                                                                                                                                                                                                                                                    žÙò÷óúóóúóó÷úóúóóúúüÿüÿþÿýÿþÿþþþþúÓŸ�}}~~}}}~~~}}~}}~~}~}}~}~�}~~�~}‘¡‘‘~}~~‘‘}~~‘�~~¡‘‘~}~¢¡~~�~~}�‘~~�‘���~¡¡‘¡‘‘‘‘‘�‘¡‘~�¡‘¡¡¡‘‘¡¡‘��¡¡¡‘����‘¡¡¡¡¡��¡‘¡¦¢¡¡‘‘¡�~‘‘‘~¡¡¡¦¢¡‘�‘¢¡¡‘‘¡‘‘¡¡‘‘¡�¡�¡£¡‘¡¡¡‘¡�‘¡¡¡¡��¡¡¢¡‘‘¡£¡¡��¡‘¡¡¡¡¡¢¡¡¢¡‘�‘¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¡¡‘¡‘‘¡~�¡¡‘‘¡‘�~�~��‘¡‘‘¡‘¡‘‘�~‘‘~~‘�‘¡~~‘~‘¡~~~~‘‘‘‘‘~��~�~~���~�~~~‘‘‘�~~}~}~~~~~~€~~�‘‘‘‘}}~~}~~}}}~}}~}~~~~}~‘‘}}s|}}~~}s}r}}}~}}v}}||}}}}}p~}}}||}}|}}}pp}}|pp}p|}}|}pp||vvp||pp||v}p|vppp|pppppvpppp|pppppppppppoppoooppppllloopvvllppollplplplllpollopoolllllloollllllllllllllCCllllCCCClllllllCCCCClC?lCCC>>Cl>CC?>>CCCC>>?=>?>>>=>>>>A=>>A==CC>>====?>===C===>>====C======$==$================!=$!=$$=$$!=$$!!$=$$!!!!!$!!!!!!!==!!!!! ! !!!$!!!!!! ! !   =Žšèúýúýúûüüüúúüþþú÷úú÷úúúúúúúúúúú÷àÊB                                                                                                                                                                                                                                                                                      @Óàóú÷óóúóóúóóóóúóóúþÿÿþþýÿþýÿþÿþþæ’��s}}}~~}}~}~}}~}~~‘�~~~}~~}}~~}~¡‘~�~~~~�¡¡~~‘~~~~~��~}¡‘}~‘¡�~¡‘‘~¡¡¡¡‘~‘¡‘‘¡‘‘��‘‘‘‘~¡¡¡‘‘‘¡¡‘¡‘~�‘‘‘¡¡¡¡�‘‘‘‘¡¡¡¡��¡¡‘‘¡¡¡¢¡‘¡¡¡¡¡¡‘¡¡�¡¡�¡¡¡¡¡‘¡¡£¦¡¡¡¡¡¡¡¢¡‘�¡¡¡¡¡¢¢¡¡¡¡¡¡‘¡¡¡¡¢¡¡¡‘¡¢¢¡¡¡‘¡¡¡‘‘‘¡¡¡£¡¡¡¡¡‘¡‘�‘‘¡¡¢¡�‘¡¢¡¡�‘¢¢¡¡¡‘��¡‘¡¡‘¡‘�~~�¡¡‘‘¡¡‘¡‘‘‘‘~~‘�¡¢‘‘~~~‘‘‘�~‘¡¡¡¡‘‘¡¡‘~~~‘~~~}~}~~‘¡‘~}~~~~}}}}}~~~�‘�~}}~~}}~}}}}~}}}}}}}|}~~}~~}}}}}}~s|}~}}}}|pspv}|p}}p}}}}p}rp|vrv}|ppppp}}ppv|}}vvrv}pvpppp|pvv|v|p|vvvpvvppppppoppvpppvvpppoppppplllplllpppoppoplll?lplllllllllllllllllollllCllC>?lCClllllllCClCCC>?CC?CC>?CC??CC>C?>>?CC?>C>>>>?>>C>CC>C?=>>==>>=>l>=>=>>=>C>============>================$=====$$!!=!==!===$!==$$$!!!!!=$!!!!!!$!$!!!!!!!!$!!!!!!!!! !! !!!!!!! ! !! ! $p¢­úúýúüüúüûüýúýþýú÷÷úúúúúúúúúúúúúèÓz                                                                                                                                                                                                                                                              ”×èóóó÷÷ó÷úóóúóúóóúüÿÿýÿþÿýÿþÿýþþõ¬��}}}}}~~}}~}}}~~}~}~‘‘‘~}}~~~��}~¡�~~~~‘‘~‘‘~~~�‘~}~‘‘}~‘‘~�~‘~~�‘�~‘‘¡¡‘~�‘‘¡‘¡�~‘¡‘��~‘¡¡¡‘¡¡‘¡‘‘�¡‘�‘¡¡¡‘‘¡¡‘¡‘¡¡¡‘�‘¡‘¡¡�¡¢¡¡¡¡¡¡¡‘‘¢¡‘‘¡¡‘¡‘¡¡¡‘‘¢¦¢¡¢¡¡¡¡¡¡‘¡¡¡�¡¡£¡‘‘¡¡¢¡¡¡¢‘‘¡¡¡¡¡¡¢¢¡¡‘‘¡¡‘¡‘¡‘¡¡¡¡¡¢¡¡¡¡¡¡~‘¡£¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘‘‘‘‘¡¢‘�‘‘�~‘¢¡~�¢¡¡¡���‘~‘�~¡¢‘~~}�‘¡¡‘~¡¡¡¡‘~‘¡‘~~~�‘~}}}~~}~‘¡‘~}~‘~}}~~}}}~�‘~~‘}}~�~}}}}}r~~}}}}}}}~}}}~}}~~}}}}}p~~}v}}|p|}}p||}}p|}}}pp}v}|vvv|pppp}}}ppp|}vpp}}pvrvpppp}|pvvpvpv|vvpppppopoopppppv}ppvppop}vllololllllpppopplllllllllllCllllllCllllllllllllClCCCCllllllC?lCCCCC?lC>CC?CC?>CCCC>?>>>>C?>>??>>?>>>>CCCC=>>>>>A>=>C>=?>>>>=>>===>>=====================>==$======$$===!$!====$=$!=!!!$!$!=!!!!!!!$!!!!!!!!!!!!!! !!!!! !!!!!!!! !!!!!  =Ž¢æúüüûúüýüúýúýýýúúúúúúúúúúúúúúúúòÚ›;                                                                                                                                                                                                                                                           ÓÙóúóúóóúóóóúóóóúóúþÿþþýÿþÿþýÿþÿþæ¢��}~~}s}}~}}~~}}}�~�~~~~}~~~�~‘¡~}~~~~}~~‘~}~�‘~~¡¡�‘¡‘�‘‘‘‘¡‘‘~‘¡‘‘~‘~‘¡‘�‘~‘�~~¡�¡¡¡�¡‘��‘¡‘¡¡¡‘‘¡¡¡¡¡¡�¡‘¡¡¡¡‘¡�~¡¡¡¡¡¡¡¡‘~‘¡¡‘¡¡¡¡¡¡¡¢¡��¢£¡¡�‘�¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡¢¡�¡¢¡�¡¡¡¡‘‘¡¡¡‘¡¡¡¡¡¡‘¡¡¡‘‘��¡¡¡¡¡¡¡¡¡¡‘�‘�‘¡¡¡¡�¡¡¡‘‘‘~�‘¡¡¡‘¡¡‘�¡¢¡¡�¡¢‘~�‘¡‘‘¢¡~‘¢¡¡‘~¡¡¡~~~~¢¡~~¡~‘‘‘¡~~~‘‘~~}~~~~‘�~‘‘~‘¡~�‘‘~~~~�~~~�‘�}~}�‘~}}~~}|}~~~�~~}}}}}}}s}}~~s}}}}|}}}|~~}p}}}p}¡}}|}}|}vrv}rp}}rpp}}}}}}}}r}||}pp|pp}}pv|vvvvpp}pp}}vp|vrvppppppvvpppppvvpoloppllpollppllppppppolollllplpopplplplllloopollllllCCllClllllllllllClClC??llllCCllCCCCll??lCClCCCC>>?C>>?CC=>?CCCC>>>=?>>C?CC>=>>>===>>===>>==A>=>>>===>================$==$!==$==$$==!!!$!==!$$=$=$=!!!$!$=!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!    !l ¬úýúüüûúúüúüüýþýúúúúúúúúúúúúúúú÷àÓY                                                                                                                                                                                                                                                     ]Óàóó÷ó÷úóóúóó÷úóó÷üÿÿþÿÿýþþþÿýþþõ¬���}~}}}}~}}~�~}}~~~‘‘~}}}~~}‘¡~‘‘~~‘~}~~�~}~}~‘~~‘‘¡¡‘‘¡¡‘‘¡‘‘~��‘‘¡‘~~‘¡‘‘‘~¡‘~~‘‘‘¡‘€¡¡‘~‘¡‘¡¡¡‘¡¡‘¡¢¢¡‘�‘‘¡¡¡‘‘‘¡‘‘¡¡¡¡¡¡¡�‘¡‘¡¡¡¡¡¡¡‘¡¡‘�¡¢¡‘¡¡‘‘¢¢¡‘¡¡¡¡¡�¡‘¡£¡‘‘¡¡¡‘‘¡¡¡‘‘¡¡¡¡¡¡¢£¡¡‘�¡¡¡¡��¡¡¡¡££¡¡‘‘‘¡‘�‘¡¡¡¡¡¡��¡¡�����¡¡¡‘¡¡�¡¡¢¡¡‘¡¡‘�‘¡¡~‘¡‘‘¡¢¡�‘‘¡‘‘�~~¡¡‘~‘�}¡¡‘‘~}�¡���}}}~‘‘‘~~~~‘‘~‘‘�~~~~~~}~‘‘‘~}~‘‘~}}~}~}}}~‘�}~~}}}~~}|}~}}}}}}pp}}}}~~}}}rv|~}}~}p}}|vv}}vv|pvv}}}}}||}}v|v}}vprvp|vpr}vp|vp|}}|||vv||vpvppppp|vpppppppoooopplloollppoppppploolllollloooollllopllloollllllol?lllCllllloolllll?llCCCllllCCllCl?Cll>?CCClCCC>>>?>>>CC>=>CC>CC>>==?=>CC>C>>>C===>======>==>>C>>=A=>=>>========!$=====$=$!$$===$$==!!==$===$=!!$==!$!!!=!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!    9s’æúüûüüüýûüúýúþýúúúúúúúúúúúúúúúúèÙ{                                                                                                                                                                                                                                                                    ›×ñóúóúóó÷÷óóúóóóúóüÿÿþþýÿÿÿþÿþÿþí¥Ÿ~}}~}~~~�~~�‘~}~�~}}~~~�~~}~‘‘}}~}�‘~~~~~~‘~‘‘~~‘~~‘~~~~�~~~‘~~‘~‘~‘¡‘~¡¡�‘�~�¡¡‘‘��¡¡�‘¡¡‘‘¡¡¡‘�¡¡¡‘�¡¡�‘‘�¡‘¡£¡¡¡¡‘‘¡¡¡‘¡¡¡‘¡¡¡‘‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡£¢��¡¦¡‘‘¡¡¡‘‘¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡‘¢¡¡‘¡‘¡¢¡‘¡‘¡¡¡¢¡¡¡¡‘�¡¢¡‘¡¡¡¡¡¡¡¡‘‘‘¡‘~‘£¡¡¡¡¡¡¡¡¡‘�~�¡¢¡‘‘‘€‘‘¡¡¡‘~¡‘~�‘¡‘~�‘¡‘�~~‘�‘‘‘¡~}‘¡~~�}�‘‘�~~�~~�~~‘~~~~}}~~‘‘~�‘~~}~�~~}~~€~~~~~}}~~}~~}}}~~}}~}|~~~}}}}~~}r}}}r}}}v}}}}|}}~}}}~}}}}}}}}}}}}}pp}}}}pp}}}~|v}}}}vvvv|pv||ppppppppvvpppppvppppvvvppppppvpppppvvpppopvppopololpplvppvppolplllolllpplllllllplllllCllllllC?CllCCCllllCC?>llC?>>ClC>CllCC>??CCCllCCll>=CC>=>C>>C?>>>l>==>=>>=>>>=>>>>>==>==================>===>===$!=====!===!===!$==!!!!==!!=!!!!!!!==$!$!!$!!!!!!!!!!!!!!!!!!!!!!!!!  !!   !?¢Óúúüýúúúüúýúýýþúùúúúúúúúúúúúúúúõßž;                                                                                                                                                                                                                                              "ÓÙ÷÷óóóóúóóúóó÷÷÷óüÿÿýþÿÿýþýþþÿýõÕ  �}~~~}}~~�‘‘~}}}‘~}}~}}~‘�‘‘‘‘~~}}~~}}‘‘~‘~~¡¡~}¡¡~}~~}~�¡‘��~~¡¡~~‘¡‘~‘‘¡¡�~‘¡¡¡¡~�‘¡‘�‘¡¡‘¡¡¡‘�¡¡¡��¡‘~~‘¡‘�¡¡¡¡¡¡‘¡¡¡‘¡¡¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¢£¡¡‘‘£¢¡‘�¢¦¡‘¡¡¡�¡¡¡¡¡¡¡‘¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢¡¡‘‘¡¡¢£¢¡‘‘¡‘‘¡¡‘¡¡¡¡¡¡‘�‘¡¡��¡¡¡¡¡¢¡¡¢¡‘‘¡‘�~¡¢‘�‘¡‘�¡¡¡€¡�¡‘~~�‘�‘‘¡¡‘‘~~‘~‘¡�~�~~~~‘‘‘‘�‘~~~~~~~~~¡�~}}~}~~‘‘�‘~~}}‘�~~}}~~~‘‘~~}}~~}~~}}}~�}}~}}}~}}}s}~~}|}}rv}}}|}|}}}}}|}}}}}}~}~}r}}}}prvr}|}rp}||}}}}}}|vpppp|}}|vpp|vppppvpppppppvppppvppplpvvppopopvv|pllpvpoopoplplllpvppplllplllpolollllpllCloolClCllllCClClCClllClllC?>?CllA>>?ClC>?lllCCCCCCCCCClC?>>Cl>==?>=CC>CC>A>====>==>>=>==CA==C>=======>===$=============$$====$!$=$=!=======!$=$$!!$!!!!!!!=!!$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!   =ŽªæüûúýýýúýúýúýþýúúúúúúúúúúúúúúúúæÓ]                                                                                                                                                                                                                                            ZÓæóóúóúóóú÷óóúóúóóúÿÿþÿþýÿþÿÿþÿþè’�}}~}}}~}}}~€~}~}~‘~}~‘¡}~~~�~}}~�~~‘‘~}~‘~�~}~¡~}~‘�}~¡‘}~¡‘~¡~�¢¢�~‘‘‘���‘¡¡�‘¡�~~‘¡¡¡¡¡‘‘‘¡‘‘¡¡‘‘‘¡‘¡¡¢¡¡¡¡¡¡¡¡�~¡¡¡‘‘¡¡‘¡¡‘¡¡£¡¡¡¡¡¡¡‘¡‘‘¡£¡¡‘¡‘¡¡‘¢¡¡¡¢¢¡‘¡£¡‘¡¡¡¡¡‘¡¢¡£¢�‘¡¡¢¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡�¡¡¡¡¡¡£¡¡¡‘¡¡¢¢¡�‘¡¡�‘¡¡�‘¢¦¡‘‘¡¡¡¢£¡~�¡¡¡¡£¡�‘¡‘¡¡‘�~�¡¡‘‘�‘�‘¡�‘¡�~‘¡¡‘¡¡�‘~~~~‘‘‘�‘‘‘‘~~�‘�‘‘~~�‘~~}~~}~€~~~}~~‘‘~}}~~~~}}~~~}~}}}~~~~}}}~}}}}}~}~}}}}}r}}}}r}}r}}}}}}||vvvr}}}}vvvppv}vvrpp}||ppv|||}|pppv|vp|vppppv|v|pvpppppvvvppppp}poploopvppvoppolloopppplppllplolloplClvllllllloollllllllollllllllllCClCCllCCllClCCC?ClClC>?CCCCCC?C>>>>CC>>C>?C?>ClC>>C>C>=>>C=>C>>=>>>>==>>=======A=========C>=====$=========$=======!$!=!!=$$!$$!$==!$$$$$!!!$!!!!!!!!!$!!!!!!!!!!!!!!!!!!  !! !! o�¬úüýúúúýúýúüüþþúúúúúúúúúúúúúúúúèÙz                                                                                                                                                                                                                                         ”Óñó÷ó÷ó÷÷óó÷úóóóóúþÿýÿþÿþÿþÿýþþú¬�s}}}~}}}}}}~~~}~}}~~~~¡‘�~~~‘�}~~‘~~‘‘~}~~‘‘~}~~~~~~~~~‘‘~~~~�¡¢¡¡¡¡¡�~�‘~~‘¡¡‘‘‘~~�¡¡‘¡¢¢¡‘‘‘‘~‘¡‘¡¡‘¡¡¡¡¢¢¡¡¡¡¡‘��‘¡¡�‘¡¡¡¡¡¡¡£¡¡¢¡¡¡¢¡‘¡‘�‘¡¢¡¡¡‘‘¢¡¡¡‘¡¡¢¡‘¡¢‘�‘¡¡¡¢¡¡¡¡¢¡¡‘¡¢¡¡‘‘¡¡¡¡‘¡£¡£¢¢¢¢¢¢¡‘‘‘‘¡¡¡¡¡¡‘‘¡££¡‘‘‘¡�¡¡‘�‘¡¢¢¡¡¡¡¡¡¦¦¡‘‘¡¡¡¢¡¡¡¡¡¡‘¡¡~~~¡‘~~¡¡~~¡~�¡€~‘‘‘¡¡‘‘~~}~�~~~‘‘‘¡‘~~~~‘¡‘~}‘~~}}}~}~�~~~~}~‘~~�~~~}}}}}��~}~}~}}~}~}}}~}}}}}~}}~}}rw}~}~}v}}}}p}}vp|v}}}}v}|vrvvp}}vpvpv}}|pp|}|v}vpppp|ppppppv|||vp}}pppvpp||ppvppvplopplppovpppplllplolppoppolllplllplloploll?lllppolllllloolCllolllllC?ClllCllllCCCCCCCCCCCC?>>CC?>>>>>>CC>>C>>>>>>lC>>=>C>==>C=>CA====>>===========>======AC>A>======$$=====$!!$==$====$$$!!$!$=!$==$===!=!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!  !   ! 9sªèüúüüýúýúýúûýþüúúúúúúúúúúúúúúúõÚ›9                                                                                                                                                                                                                                       Ó×óúóúóúó÷óúóóú÷úóüÿþÿþÿþÿýÿþÿþÿí¥Ÿ�~~~~}}}~}}~~~}~~~}}~~‘~}~}~~‘}~~~}}‘‘�~�~‘�~~~~‘‘��‘�‘¡‘~�‘¡‘~‘¡~‘‘‘~~¡¡‘‘‘�‘‘‘¡¡¡‘¡‘~‘¡‘‘¡�¡�¡¡¡‘��‘¡¡‘¡¡¢��¡¡¢¡¡¡¡¡‘�¡¢¡¡¡¡¡¡‘�¡£¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡¢¡¡¡¡¢£¡¡¢¢¡¢¡¡¡�¡¡‘¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¢¡¡�¡¢¡‘¡¡¡¡¡‘¡¡¡¡¡‘¡‘‘‘‘‘‘‘‘��¡¡��‘‘��‘¡‘~��¡�‘¡¡�~¢¢~~‘¡¡‘‘�‘‘‘�~�~~‘�‘¡¡~‘¡‘~~~~~‘�~‘¡~~‘‘~�‘�~~‘‘}}~��~}}~~}~~}}}~~~~~~~}~r}~~}~~}}}}~~}}}~~}}}v}}}}}r}}}}}~}pp}}}}|}}}|}|r}|}}}v||ppvp}pp}|ppp}}|vrp}pp|v}|pppppvppv}pop|popp|}vpppolpppppllppppppllppppppllopllpplllllpllolllllllllllllllClllllClllllllClCCCC>?ClllCClCllClCCCC???>C>CC>?CCC>C>CC>>>=>C>>>>>==C>>>>>>>=>=>>>>=>=>>===>>========================$!===$$$$$===!!!!$!!!=!!!$=!!!$!!$=!!$!!!!$!!!!!!! !!!!!!!  !!!!! !  o¢Úúýúûúýúýúüüüþýúúúúúúúúúúúúúúú÷àÓB                                                                                                                                                                                                                                                        ;ÓÙóó÷ó÷óóúúóó÷óóóúüÿÿþÿþþÿþþþþþýä ¡�~~~~}}~}}~}~}}~‘�~~~‘~}}}~‘~~~�¡‘}}~‘‘‘‘‘�~~~~~‘¡‘‘‘�‘‘~�~‘¡¡~~‘~~~‘�~‘¡¡¡¡~�‘��¡¡‘‘¡‘‘¡‘~�¡¡~‘¡¡‘‘~‘¡¡¡‘¡‘‘‘¡¢¢¡¡¡¡¡�‘¡¢¢¢££¡¡‘¡¡¢¢¡¡¡¡‘¡¡¡‘�¢£££¡¡¡¡¡�‘¡¡¡‘¡¢¡¡£££¢¡¡¡‘‘¡¡‘‘¡¡¡¡¡¡¢£¢��¡£¡���¡¡‘��¡¡¡¢¡¡‘‘¡¡¡��¡¡¡¡¡¡£¢‘‘¡¡£¡‘‘�‘¡��‘�‘��‘‘‘�~‘¡�‘‘‘‘~~¡¡‘~‘¡~~£¢¡‘�~¡¡�‘�~�~~~~~�¡¡‘‘~‘¡�~}~~~�‘~�‘‘‘‘‘¡¡¡¡~~‘~}}}}~~}~~~~~~}}}~~~~~‘~}}}}}}~~~}}~~}~~}}~}}}}||}}}}}}vp}~}r|}rv}}}}}p}}}}}}}}}}ppprppvpp|vprv|pppv}vppp|v|vpllp}|pvvpppv|ppp}}vpppplppppollppvvvpllppvvppllpllpploplloplppllllClllpll?llllllllllllllpoC??ClC???Cllll>CCClllCllC?>?C>>CC>>CCC>?CC>=>>>C>>>AC>==>C>A>>>=====?C=>=>=====>>========$$=>===$$=!======$=$!!$=$!==!!!!$$=!$!!!===!!$!!!!$$$$=!!!!!!!!!!!!!!! ! !!!!! !!      =¢¬ùüüüüúýúýúûüýþúúúúúúúúúúúúúúúúèÓZ                                                                                                                                                                                                                                               ]Óæóúó÷óúóóóóúóú÷óúþÿþÿþÿþÿþÿÿÿÿõª�~}}}}~}}}~~~~‘~}}�~}}~~~~~~‘~}}~}‘¡}~�‘~�~�~�‘‘‘~‘¡���~�~‘¡¡¡‘‘¡�‘~��‘‘‘¡¡‘‘‘�¡¡‘�¡¡¡‘�¡¡¡‘�¡¡‘~¡¢¡¡¡¡‘‘‘‘¡�‘¡¡¡¡¡¡¡¡¡¡¡‘¡‘¡‘¡£¡‘¡¡¡‘¡‘‘¡¡‘¡¢¢�¡£¡‘¡¡£¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡�¡¡¢¢¢¢¡£¢¡¡‘¡¡¡¢¢¡‘££‘‘¡¡¡£¡¡¡¡¢¢¡¡‘‘¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡‘¡�¡¡¡¡¡¡¡¡¡�¡¡‘¡�‘¡~¡¡‘�¡¡¡~~¡‘‘¡~~¡¡‘¡‘�‘¡‘¡¡‘¡¡~~‘~~‘‘�‘‘‘~~‘�~~~~~}~�~�}~~~��~~�~}~}~~�~}~~}~~}}~~}}}}}~}~}}}}}}~}}}}}}}}r}~}}}}}s}}}p|}}}}~}s}||}||vvvr||}|p}}|vr}p}}}v}}pvpp}}ppv|ppp||vvvp|ppppppppppoppppvvppppopllpppopvooploolppollopllovollllplllpllClllplllllllllCllCllClllCllllllC>>?ClllC??CC>>>?>CCCCCCl>>CC>>>>?C>>AC>=>=>C>=>>>=>>>=>A>>=>>>===>=>A>=========================$$===$$==$====$$!!!$$!$!!=!!$!$!!!!!!!$!!!!! !!!!!!!!!!! !!!!!!!! $s’æúüûúýúýúüüüýþüúúúúúúúúúúúúúúúèÙƒ                                                                                                                                                                                                                                      ›Óñ÷ó÷úóó÷úó÷óóóóúüÿÿþÿþÿþÿþþþýýè�Ž}}}r}}}}}~~��‘�}~~~}}~~‘�~�~‘~}}}~}}~~~~~~�‘‘‘¡‘‘~~~~�‘‘~‘£¡‘‘‘¡‘~~~~¡¡¢¡‘�~�‘‘¡¡¡¡‘¡‘‘¡‘‘‘¡¡¡‘~‘¡¡¡¡¡‘‘‘��‘‘¡¡¡¡‘¡¡¡¡¡�¡�~�‘‘¢¢¡¡¡‘���¡¡¡¡¡¡¡‘‘¢¡‘�¡£¢¡¡¡¢¡¡£¡¢¡¡¡‘‘‘��‘¢£¢¢££¢¡¡¡¢¢¡¡¡¡‘¡£¢‘�¡¡¡¡¡¡¢£££¢‘��¡¡¢¢¡‘‘£¢¡¡¡�¡¡¡¡¡¡¡¡‘¡�¡¡‘‘�‘¡¡¡¡¡¡¡¡‘¡��¡‘�¡£‘~¡¡‘~~‘��¢¡~�‘��‘~‘¢¡¡¡¡¡¡~}�~~��¡¡¡‘‘‘~~}~~‘~}~}~~}~~‘¡¡¡¡‘~}~}}~‘~~~~}~}}}�~~|}~~~~�~}~~}}~}}}r}}�}}}~}}s}r}~|p}s~}}}~}}p|}}}||v|vv|vpp}}|vv|vprv|||ppprvpv|prvpp|}}ppv}vppppoopvppppllp|plppppopppplpplpplpolpplllllllpoppolllllvplljlllpolClllllClllCCCCCClCllllllC>ClCClCC>>CC>>>>?>?ClCClC>>?>=>>>C>CC>C====>===>>>>=>>?>A>>=====>==>CA=>=?==$$=>>A===$=========$====!==$!!===$==!!$!!!!!=$!$!=!!!!!$!!!!!!!! !!!!!!!! !!!! !!!  ?�Óúûüüúýúýúûüüþþúúúúúúúúúúúúúúúõà�!                                                                                                                                                                                                                                                   Ó×óó÷óóóúóó÷óúóúóóúÿÿþÿþþÿþÿÿþÿýä��~}}}}}~~~}}~}~}~~~~~~~~‘‘~~~}}~~~��~~‘~‘‘~~~‘‘�‘¡‘~�~‘‘‘~�¡‘�‘�‘�‘��‘�¡¡‘�~~¡¡‘�‘‘�~‘¡¡¡¡¡¡¡¡‘¡�‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡¡¢¡¡¡¢¡‘¡¡¡¡¡¦¢¡¡¢¡¡¡¡¡¡¡¡£¡¡¡¡¡¡¡¢¢¡¡¡¡‘¡¢¡¡¡¡¡££‘‘¢¢¢¡¡¢¡¡¢£¡¡¡‘¢¡¡¡‘¡¡¡¡¡¡£¢¡¡¡¡¡¡�¡¡¢¢¡‘‘¡¡�‘¡�¡¡¡¡¡¢‘�¡¡¡¡‘~¡¡¡¡¡~‘£¡�‘¡¡�‘¡‘‘‘~‘¡¡‘‘‘�¡¢‘~‘‘‘‘‘~�‘‘‘�~�¡‘~~~~~~¡¡~�~~~~~~~}~€~�~~~~}}~�~}~~~~}}}~~}~~~~~}}}}}}s}~}}}}|}~}p}}}}~}}|}|p}}}}||}|}}}}pp}|}p}}|}}vv}|p}}}|v}|v|p}vvpv}}vvv|ppvvppv|pppppppppppvpppvpppppppppoollvpplolpvllllopppoolllolllllpllllllllllllllllllllllllCCCClClC?lllCCllCCCCCCCC>CCCCC?>>CC>?>??C>C?>lC>>=>>>>>C>>>C>>>>==>>>>C>=>>=>===>=======================$!====$===$=$!$$$!!===!!$$$$!!$!!!!!$!$!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!  ! =Žªõüüûüúýúüüúüþþúúúúúúúúúúúúúúú÷àÓ@                                                                                                                                                                                                                           BÓß÷÷úóúóó÷úó÷ó÷ó÷úüÿþÿþÿþÿþÿýÿþõª�}s}}}~�~}~}}~~~~~~}}}~~}~~~}}}~~~‘‘~�¡¡~~~~}}¡‘‘¡¢¡�‘‘~~�~~�~~¡¡‘~¡‘¡‘~‘¡~~‘¡¡¡¡�‘‘‘‘‘‘‘¡¡¡¡¡‘¡‘‘¡¡¡¡�¡£¢¡¡¡¡‘‘¡¡¡¡¡‘�¡¢¢¢¢¡¡£¢¡‘�¡¢£¢¢£¢¢¡‘¢¢¢££«¢¡¢¡¡‘¡¡¡¡£¢£¢¡¡¡¡£££¦¢¡¡‘¡�‘‘¡£¢¡¢¢¡¡¡¢¢¡¡£¡¡¢¢¢¢‘¡¡¡‘‘��¡¡‘‘¡¢¢¡¡¡‘‘¡¡¢¢¢¢¡‘¡¡¡‘¡‘~¡¡¡¡¢¡~~¡¢¡‘�¡¡¦£¢¡‘¡¡‘€‘¡££¡¡‘¡‘�~‘‘�‘�‘¡¡�‘¡~�¡¡‘‘‘¡¡‘�~~‘~~~‘~~¡‘~‘‘‘‘�~}}~}~}}}~~~}~‘‘�}}‘‘~~}~~}}�‘‘~~}}~~}}}}}}}�~}}}}|}p}}~}|pp||}p}}rv}}}prpp}}ppr|}pv|pp||v}}}v}}pvp|vvpp|}}pppv|pppppv|ppppp|vpolopopppppvppvvvppoooppollplpllllllppllllllllllpplllllollCClllolllllllllCll?ClCCC??CCCClll??lC>>>>?Cl?C?>>CC??C>>>>C?>>>>>=>=?>C>>>C>======C>>CC>=>=========>>==========$=====$=$==$=======$$$!$==!!===$==!!!$!!$!!!=!=!!!$!!!!!$!!!!!!!!!!=!!!!!!!!!!!!!!!!   !!q’Ùúüüúýúýúûüúýþüúúúúúúúúúúúúúúúè×]                                                                                                                                                                                                                                   xÓè÷óóóóú÷óóúóúó÷óúÿÿþÿþÿþÿþÿþÿþé��}~~~~~~~}}}~‘~}}�~}~~~‘��~~~~�~���~‘‘‘}~~�~¡�‘~~~�~}�¡‘~‘‘‘¡‘¡~‘‘~~¡‘�~¡¡�‘¡¡�‘��‘¡¡¡¡¡¡‘¡¡‘‘¡¡¡��‘¡¡¡¡¡¡¡¢¢¡¡¡¡‘‘¡¡¡‘¢¢¡‘¡¡¢¡¡¡¡‘¡¢¡‘¡¡¡¢¡¡¡¡¡¡¡¢¢¡¡‘‘¡¡¡¢¡¢¡‘¡‘¡¡¡£¡‘¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢£¡¡¡¡¡£¡‘¡¢¡¡¡¢¡¡¡¡¡¡¡¢¡‘‘‘¡¡¡¡¡¡¡��¡¢¡‘¡£¡�¡¢‘~‘‘¡¡¡¡‘�¡~¡¡‘‘‘¡¡�~¡¡~‘¡¡¡¡¡‘�~‘‘~}���¡��‘‘�~~�~‘‘‘‘~~¡¡~~~~~~��‘‘�~~~~~~~�‘~~}}~‘~}~}}~~}}~}}}}}�~s}}~s|~}}}}~}}}}}}}}~|}}}}}}}vp}}|v}}}r}|}}}}}vs}}vr}|}ppp}}rv||||vp}|ppppv|vvppv|pvpvpppppppppvpppoplppoppppppoppppvllooopoloppplllllllllplllllolllllllllllCCllllllCCllllCCCClll?ClC?CCCClCCll>??>ll>>?CC=CC>CCCCA>C>CC>A>CA>=>>>>>>>===>===>>==>=>>==========>=======$========$===!==$!!!$==$$!$=$$$$!!!$$!=$!!!=!!!!!!!!!!!!!!!!!!! !!! !!! ?¢ÖúûúüúýúüüúüýþüúúúúúúúúúúúúúúúñÚ”                                                                                                                                                                                                                                            ˜×òóúóú÷óóúóó÷ó÷úóüÿþÿþÿþÿþþÿþÿûÚŸ�Ž~~}}~~~~}}~‘}}~~~~‘~}~‘€~~~~~¡¡~~~‘~~}~~�¡¡¡~~~}}~}~~~~‘¡¡¡¡¡~~~~�‘‘‘‘‘‘~‘¡‘���~¡¡¡¡¢¢¡¡¡¡��‘¡¡~‘¡¡¡¡¡‘‘¡¡‘‘¡¡‘�¡¡¡‘‘¢¦¡¡‘¡¡£¡¡¡¡¡¡‘‘¡¡‘££¡‘��¡‘¡¢¡¡�‘¡¡¡¡¡¢¡¡�‘¡¡¡¢¡¡�¡£¦£¡£¡£¢‘¡‘¡��¡¢¢¡¡¡¡�¡¡¡¡¢¡¡¡¢¦¢¡‘¢£¢¢¡¡¡¢¡¡¢¡¡¡‘‘�‘¡¡¡‘¡¡¡¡‘¢¢‘�‘¡¡¡¡¡¡‘�~‘¡‘��~��¡¡~‘~~�¡¡¡‘‘¡¢¡¡¢¢¡~~¡¡��¡‘~~~~~~}~�~‘¡¡¡¡¡¡¢¡~}}}~‘‘~�‘¡‘}}~‘‘¡¡‘~}|}}}~}}~}}}}}}}}}r}~}}}}}}}~}r}}}}}~}s|}~}}r}}~}}}}p}}}}}}~}w}}}}}|}|pv}|}}|ppp|}}}v|}}}}vp||pppv|vpppvvp|p|vplppv}v|vvvpplllllpoppppovvpvplpplpplovolollllllppoolllloppplll>llllC?lllllllllllC?CClllC>???CCCllC??CClC>>CC>>CC>CC>>CC>>>>>CCC>>>C>====ACCA=>=========>>>>>=======>==========$$=========$!$=$!$===$!!==!!!=!$$!!==!!!!$!!!!!!!!$!!!!!!!!!! !! !!   =�¥õüüûüúýúûüýúÿýúúúúúúúúúúúúúúúõàž!                                                                                                                                                                                                                                             ÓÓó÷ó÷óóú÷óóúó÷óóóüÿÿþÿþÿþÿþÿþþú¬Ÿ~}}~~}~}~~~}~¡~}}~~‘~}~~~~~~�}}¡‘}~�‘~~���~‘‘~~‘¡~~��‘¡‘~�‘‘~‘‘�¡‘‘‘�‘¡¡�‘¡¡��‘¡‘~¡¦‘�‘¡‘�‘¡¡‘¡¡¡‘¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡¡‘¢¢¡‘¢£¡¡¡‘¡¡¡�¡£¡¡¡¡¡‘¡£¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¢‘¡¡¡¢¡¡¡¢£¡¡¢£¡¡¡¡¡‘¢£¡¡¡‘¡¡¡¡¡¡¡¢¢¢¡�¡£¢¡¡‘‘‘¡¡¡¡¡¢¢‘¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡£¡�‘¢¡‘¡‘¡‘‘¡¡¡¡~~¡‘¡‘¡¡‘~‘�‘¡‘~‘¡‘�‘‘‘~‘‘~~‘¡‘~~‘‘~~~~‘‘��~~‘‘~�~~~�~~~~~‘~�}}~~~}~�}~~~~}~}}�~}}~~}}~~}}}}~¡}s}}}}}r}~}|}~}}}|r}}}}}~v|}}pp|}r}}}|p}|||v}||vpv}|pv|}pvpv||ppppv|ppp|ppppv}ppppp}pppppvpppppppooppllvvlpllpvllolopollplllllvllllllloollllllllllllllllllllllCClllllCCCCCCllCCCC?CCCCl>>ll>>??CC?>C>>>>>C=>l?=>>A>>>>>=>>>=>C====>>>==>===>=======>=========$=A======!===$===!==!$$$!=$!!$!$$!!==!=$!!!!!!!$!!!!!!!!!!!!!!!!!!! ! ! !!9q’æúüüúýúüüûúúýþúúúúúúúúúúúúúúúúßÓ;                                                                                                                                                                                                                                 ÓÙóó÷óúóóó÷úóóúóúúüÿþÿþÿþÿþÿýÿÿíªŸ}}~‘~}~~}~‘~��~~~~‘‘~~��}}~~‘~}~~~~~~‘~�‘‘~~~}~‘¡�~~‘‘‘‘~~�~~‘¢¡¡‘�¡‘‘¡¢‘¡¡‘‘‘¡¡‘¡¢‘�~�~~~‘¡¡‘‘‘�‘¡¡��‘¡¡¡¡¡‘¡‘‘‘¡¡¡¡¡¡¦¡¡‘‘¡¡¡�¡£££¦£¡¡¡¡£¢¡¢¡¢¢¡¡¡¡¢££¡¢¦¦¢¡‘¡¡¢¡¡¡¡¢¡£¢¡¢¡¡¡¡¢¢¡¡¡¦¦¦£¢¦£¡¡¡¡‘¡£££¢¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡‘���¡�¡¢£¢¡‘¡¡¡¡¡¡‘‘¡‘¡¡‘¡¡‘‘¡¡¡‘¡¡¡¢¢¡�¡~�¡£‘~��‘¡¡‘~�¡‘~~~~~‘�~~~~‘¡¡�~�¡¡‘‘�~}}}}~‘~~}}~~~‘‘~~‘‘~~}}~~}~‘¡¡‘}~~}~‘~}}~~~�~}}}}~~~~~}rv}�~}}r}}~~}‘~}}}}|}}}}}}pp}pp||pp|pp|}r}}}vppp|}}}pppppvvpppp}}v|}vpp|}}||vpolppopvpppplloloop|vpooplppllpploloppopplpplllpolppllllllllllpplllplllllllllCC?Clll?ClollC?ClC>?llC>CllCCl?>llCllCC??ll>CCC>>>CC==>>>=>>>>>C>=>===CC===?>=======>A>>=====>>============!!$!!===!$!!$=$!!!!=$$!$!$!!$!!!!$=!!!!!!$$!=!!!!$!!!!!! !!!!!!!! !! ! !!!!!!    o¢ÕüüúýúüûüüüüýþüúúúúúúúúúúúúúûúæÓY                                                                                                                                                                                                                               ;Óàúóúóóúóúóóúóóúóóÿÿÿþÿþÿþÿþÿþþí �}}~~}}~‘}}~~~~~~}}~‘~~~‘�~~~~}~���~~~�‘~~~}‘‘‘~‘¡‘~‘¡‘~‘~�‘‘‘‘¡¡~¡�‘‘‘‘¡��‘¡�~¡¢‘¡‘‘‘‘¡‘¡�¡£¡�¡¡¡¡¡‘¡¡¡¡¡‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡£¡¡¡¡¡¢¢¡¡¡¡¡¡¢¡¡¡¦£¡‘¢£¡¡¡‘¢¦¡¡¡¡¡¡¡¡¡£¡¡¢¡¡¢¢�¡¢¢¡¢¡¡¡¡¢¢¡¡¡¢¡¡¡¡¡¡¡¢¢£¡‘¡¢¡¡¡¡¡¡¡‘¡¢¡‘¡¡¡¡‘¢¡�‘¢¡¡�¡¡¢¢¡‘¡¡¡‘¡¢¡~¡‘¡¡¡‘¡‘¡¡¡~�¡‘¡¡‘‘�~¡¢�¡‘¡�~‘~�¡‘‘‘‘‘‘‘‘‘‘�~�¡�}~‘‘~���‘‘~~�~~~~~~~��~}~~~~~}~�~}~~~}}~}~}~~}}‘‘}}}}}}~}}}}}}p}�}}}}}}}vr}|}s~}}|}}|}}p}}}}vv}}|p}}|v}}}|v|p}|pppp}|ppv|ppppvvppvppppppppvpppppppppvpppopppppolppopplppplploplllpollppllllllpollllllClllllllllllCClllCClllC>CllClCCll?ClC>>lCC>CCCCCC>>>C?>AC>>?>>>>>>>C=>C>>>>=>>>=>A=>>?=>===>===>=============$=>==========$======$=$!====!!!=$=$!$=$!!!!!$!!!!!!!!!!$!!!!!!!!!!!!$!!!!!!! !  ? ¬úúýúýúüúúýúýþýúúúúúúúúúúúúúúúèÙ]                                                                                                                                                                                                                                              ZÓàóóó÷úóóó÷÷óóúóóüÿÿýÿþÿþÿþÿþÿûÚ��}}}~}}}}~}}}~�~}}}}~~}~~}~~�‘‘‘‘¡‘‘‘~~~‘~€~~�¡~~‘~‘‘¡¡‘�~‘¡�‘�‘~~¡‘¡‘¡¡‘~����~�¡¡¡‘�¡��‘¡¡¡¡¡¡¡¡¢¡‘¡¡¡¡‘‘�~‘¡£££¢¡¢¢¢¡‘�‘¢£¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¢¡‘¡¢¡‘¡¢¡¡¢£¦«¡¡¦¢¡�¡¡¡¢¢¡¡‘¡¡£¡‘¡‘¡¡�‘¡¡¢£¢¢¢¡¡�‘¡��¡¢£¦¢¡¡¢£¡¡¡¡¡¢£¦¦£¡�¡¡‘¢£¡¡¡¡£¢¡¡¦£¡‘¡¡‘‘¡¢¢‘~~‘¡¡�¡£¢¢¡‘~‘‘‘‘¡‘¡‘~‘¢¡¡¡�~~~~~‘¡�~�¡¡¡¡¡�}�¡‘�~~~~~¡¡¡‘�~}}~}}}}~¡¡¡~}}}}}~~‘‘�~~}~‘�~‘‘}}~�~�~}}r}}}}}}~}}|p|}|v|}}s}svv|v|}~}}}}}}}}}}}}}|p|p|}}}}}}r}}}~}pp|pp|pppppppppppvpppp|vvpoopppplp}}pvvolplopolpppolvploppllllppopolollopoplppllpllCCCClloppolllllllCClCCllCCCCllolllCCCCCCCC>>C?>>>CC>>>=>C>>>>>>>CCCCCCC>C>>>>=>>>>C==>=>>>>>==>>==>===>>==>==$====!====$==!$======$====!===!!$!!=====$$=$!!==!!!!!!!!!!!!!!!!!!!!!!!!  !!!! !=}ªõüûüúýúýúüüúþýúúúúúúúúúúúûúúúëÙz                                                                                                                                                                                                                                                         x×èúóúóóúóúóóú÷óóúúÿþÿþÿþÿþÿþÿþúª�}~}}}}~~}~�}}}‘~~}}~‘~}~~~~~‘�~�€‘}~‘‘~~~~‘¡~~‘‘‘‘‘¡�~‘¡‘}‘¡‘‘‘‘¡~‘‘¡�‘�‘‘‘‘‘¡‘¡‘¡¡¡‘¡‘‘¡¡£¡‘¡¡¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¢¢¡‘¡¡¡¡¡¡¢¦¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡‘¡¡¡¦£¡¡¡¡¡¡¡¡¡‘¢¢¡¦¡‘¡¦¡‘¡¡¡¢¡¢¡¡¡¢¢¡¡¡¡££¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¢¡¡¡‘¡¢¢¡¡‘¡¢¢¡¡‘¡¡¡¡‘¡¡¢¢¡‘¡¡¡‘¡¡¡¡¡‘¡¢¡~¡‘¡¡¡¡¡�¡¡¡~~¡‘‘‘¡¡‘~‘‘‘¡‘¡‘�‘~‘~�~�¡‘~�¡¡�~~~‘‘‘‘~~~~‘‘��~~~~~~~~~~~~~�~~~}}‘~}}‘~}}~}~~~~}}}}}~}}}r~¡}v}}}~}}}�}r|}}}}}}}}}r}}}r}}sp}|}}}}}p}pvrv|vv|v|pv}}|vv|pvpp|vpp|vv|ppv|pppoppvvpop}vlpvpopppppplvvllpvllppplloooopollplllplllpplllllllllllllolClllllllClllllCClllClCll?C?CC?CCC?ll>>ClC>>>Cl>>?????CC>C>?=>?>=>>=C>==>>>>>A==>>===>>==>=====================$=====$$$==$===!$!$=$$$$$!!=$!!!!!!!==!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! !p’æüüûüúýúýüûüþþúúúúúúúúúúúúúüúòÚ”                                                                                                                                                                                                                                            ˜Óòóóó÷÷óóóúóóóúóúüÿÿÿÿþÿþÿþÿþÿõ¢’s}~~}~��‘¡¡‘}}}}}~~~��~~~‘‘‘~~~~~}}}~~~~�~‘¡‘‘¡¡¡‘¡¡~}~¡¢‘~‘¡¡¡¡¡¡¡¡�~¡‘¡�¡¡�‘¡‘~~~�¡¡¡¡¡¡¦¡‘‘¡‘¡¡¡‘��‘¡¢¡££££¡�‘¡¡�¡¡¡¡~�¡¡¡¡¢¢¢¡¡¡¢¢¢¡¡¢££¢¡¡¢¡¡‘¡¡¡¡‘¡££¡¡‘¡‘¡¡¢¡‘¡¢¡¡¡¡¢£¡¡¡£¢¡¡¡¢¡¢¦£¡‘¡¦¦¡¡¡¡‘¡¡¡¡¡¡¢¢£¢¡¡£¡¡¢¦¦¡¡‘¡‘¡¢¡‘¡¢¡¡‘�‘‘�‘‘�‘¡�¡¡¡�‘¡¡~�¡¡¢¡‘‘¡¡~�~~~�¢¡‘~�‘‘¡¡¡‘~~¡¡£¢‘‘¡‘~��~}~‘~~}~¡‘~~~‘¡¡‘}~�‘}~�¡¡¡‘~�‘~}}}}~~‘‘~~}}}~}}}}}}}~�~}~~|p}~‘~}}}|}¡~}~|}}}p}~}}}}}r}}}spp}}pr}}|p|}rv|prvvp}rvv|}}ppp|}}pp|}~}}|vp}pppppvvpp|}|vpp}}}}p}}olppplpvvvpvopplloppppplpvvpoppollpvllll?ClllllllllllllClllCCllllllllllllCC??>CCllll>CCCCCllllll>>>>>CC?CC>>CClC>=C>====>=>>>=ACA>CCC>>>===CC==>>A>>>A>=============!$$=======C=$=$!==!!!$=======!!$!!!$$!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!  j’Õúúüúýúýúûüüýþúúúúúúúúúûúûúúú÷à›                                                                                                                                                                                                                         ž×òúóúó÷óú÷ó÷ú÷óóúüÿþþÿþÿþÿþÿþÿí �~}~~}~~~}~‘~}~~~}~¡~}~}~€�‘‘}~‘‘~~}~‘‘��~~‘‘‘‘��‘‘�~‘~�‘‘¡‘~‘¡‘~�¡‘¡‘‘‘‘¡‘‘¡¡‘¡¡‘‘¡‘¡¡‘¡‘¡¡¡‘¡¡¡‘¡�¡¡¡¡¡¡¡¡¢¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡‘¡¡¡¢¡¡¡¢¡‘¡¢¢¡¡¡¡¡¡¡¡££¡¡¡¡¡¡¢¢¡¡¢¡¡¢¡¡¢£¡�¡¦£¡¡¡¡¡¡££¡¡¢¢¡¡¡¡¡�¡¡¡¢¡¢¡¡¡¢¢¢¡‘¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡‘¡¡¢¡‘¡¡¡¡¡¡¡�¡¡¡¡¡¢¡¡¡‘¡‘¡‘¡‘¡¡¡�‘‘¡‘‘¡¢�¡�~‘¡‘¡‘~‘‘‘¡‘~‘¡¡��~~‘‘��~~‘¡�~~�~~~~‘‘‘‘~}~}~��‘~}~~~‘~}~~~~}~~}}~~}}‘‘}}}~}}}~}v~~}�}r}~}p}}}}}}}vp}}}}}}|}}}|}}p}v}}}v|r}v}||p}}}ppv|v|pp}}pp||vv|vppv|ppppvvpov}pppppvpppoplpppppppppplpppvloolpploolollppllplllllolllllllllllllllllllllllllCCCllCCCClCllCCClCCCCCCllA?CC>>Cl>>>>CCCC>>>C>?>=>C>>>>>>>>>>=>=>=>==>>>==>========>======================$===$$!=$=!$!$===$$$!!$!!!$!!!!!!$!$!!!!!!!!!!!!!!!!!!!!! !!!! !     ?�Óüýúýúüúüüúüýþýúúúúúúúúúúúúûú÷àÊ9                                                                                                                                                                                                     ×Ùóó÷ó÷óúóó÷óóóúúúÿÿÿÿþÿþÿþÿþÿýæ�Ž~~}}}}}}}}~}~�¡‘�‘¡‘~~�‘‘~~�~~‘~�¡¡~‘¡¡¡‘‘¡¡~~}~�‘‘¡¡�‘¡~�¡~}~�~����‘¡�~¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡‘‘‘¡‘�¡¡£¢‘‘¡£¢¡�‘‘‘�‘¡¡£¡��¡¡�¡¡££¢¢¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡�¡££¢¢£££¢¡£¢¡¡£££¡¡¢£¡¡¦«¦£¢¢¡¡¡¢¢¡‘¡¡¡¡¢£¢¡¢¡¡¡¡¡¢¡¡£¢££££¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡‘¡¡‘¡¡¡�¡¢¡¡‘‘¡¡�‘¢¢¡¡‘¡‘�¡¢£¦¦¢�~¡¡¡‘‘¡¡£¡‘~~‘¡¡¡‘¡¡�~~�¡¡�‘¡¡¡¡��~~‘£¢‘�~‘¡‘‘‘�~‘‘‘‘~}}~~~‘~}~~}}}~¡‘¡~}}}~~}}~��~�¡~}}}~|}}~~��~}}~}}~¡~}}}}|}~ps}}}r}‘}|}�~}~rvv}}p}}}}}}}}}}vvvpv|pp|pp}}pp|}vppppp|}}}}vpppp||ppppp|vppvoop}}}v|plolllpvvvvvollllllllplllllllllllopvvpppllllpllCClll?lllllClCCC>CC??Cll?CllCC>ClCC>>?>>>CC>ClllCllC>?ClC>>C>>C>ClC>ClCCC>CC====>>>>>=>==>>=========>===>====>>=========!=9$$====!$===!!$!!!!==!!$!!$==$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!   ! =�¬õüúüüûüúýúýýþýúúúúúúúúûúúüúúúàÓB                                                                                                                                                                                                                 9ÓÙóúóúóúóóúóúóúóóóþÿþÿÿþÿÿþÿþÿûÚ��~}~}~}}~}�‘~}~~~‘~~~~~‘‘�~}~�~‘‘~‘��~‘‘€‘‘‘‘~~�~‘�‘�‘~‘¢‘~‘~�¡‘¡‘~‘~�¡¡�‘¡¡‘�¡¡¡¡‘‘¡‘¡¡¡¡¡¡¡¡¡‘¡£¡‘¡£¢�‘¢¢‘‘¡¡¢¢¡¡¡¡¡¡¡¡¢¢¡¡¡¢¡‘¡¢¡¡¡¢¡‘¡¢¡¡¡¡¡¡¡¡¡£¡¢£¡¢¡¡¡¡£«¡¢¡¢¡‘¢¦¢¡¢£¢‘¡£¢¡¡¡¢¡¡¢£¡¢¡¢¡‘¢¡¢¡¡£¡¡¡¡¢£¢¢¡‘¡¢¡¢¡‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¢¡¡¡¡‘�¡¡¡�‘‘‘¢¡��‘‘¡¡‘‘‘‘‘‘‘‘‘¡‘�¡‘¡‘‘‘‘~‘¡¡‘�~�‘¡‘‘‘��‘‘‘~~~~~~~~~~~~~~�‘‘~~}~~~~~}~‘~}~‘~}}~}}}}}~~~}}}~}~}~~}|}}}}}}}|}}}~}|}}~vv}}}}}}rp}|}~pp|r|}|||v|v|}}pp||pv}}ppppvvp|pvv|ppppvppvvvpppvpoppp}pppopppllvpppvpolllppolpvlllopplllllplloolllolllllllllllCllllClllCCClClllllCCCClCll?CCCCCCCll?C?CClCCC>?CCC>=>>>C>>A?>=>>>?>>>>=>=>=>>>=>C=====>>======>===A===================!====!=====$!$!!==!!!!$!!!=!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!! ! !  =s¥õûüýúüúýúüúüþýúúúúúúûúúúúúúúüè×]                                                                                                                                                                                                       BÓà÷ó÷óóó÷úóóóúóúúüÿÿÿþÿþÿþÿþÿþú¬���~}}~�~~}~}}}}}~~~}}}~‘~‘¡~}}}~‘‘~~‘‘~}}�¡€��‘~~~‘‘‘‘¡¢ª¡‘‘~‘¡‘�‘~~‘¡¡¡¡~~‘~‘�~~‘‘¡‘��‘¡¡¡¡¡‘¡��‘¡¡‘¡¡�‘£¦¢¡¢¡¢¢¡¡£¡¡¡¡‘¡¡¡¡¡¡¡��¡¡¡¡¡‘¡¢£¡¡¢¡¢¡�¡££££¡¡�‘¡¡�¡¢¡¡¡‘‘‘£¦¡¡££¡¡¦«¢¡¢££¡¡¢¡¡¡¡¡¡¡££¦£££¡¡¡‘¡¢¡¡¡¡££¡¢£¡¡¢£££¢¡¡¢£¢¡¡¡‘‘¡¢¡£¢¡‘¡¡¡¡¡¡‘�¡‘�‘‘¡£¡‘‘‘¡¡¡¡¦¢¡¡£¦£¡‘¡¡¢¢¡¡¡‘¡¡~~~~‘¡¡‘‘¡¡~~����~~‘‘‘‘�~�‘‘�‘~~~‘~~~~‘‘‘�}}~}}~‘¡‘~}~~}}}}}~~}~~}}}}|}~r}}}}}}}}}~�}~~~}p}}}||}}|p}}}}~}}vvvrv}|v|}}}}}||pp|}}|p}}vp}}}|}}|pvppp|}|||pppv|ppppppploopoolllv|pppplllp|ppppvppllvolpvppplllpvolllllllpplllllpll?lllvllllClollllllllC?ClCCllC>?llC??>>>>>CCC>>>>CC>Cl=>>=CCC=>C>>==>?>>>>===>>>>>llA===>>=======>=====$==!====$$$=======$!!=$$$=!!$=====$=!!==!$$!!!$!!!!!!!!!!!!!!!!!!!!  !!!!!!!!!!!!!=q¥æüúúýúýúýúýüþýúúúúúúúúúúýúûüúèÚ]                                                                                                                                                                                     ]Óèóúóúóúóóóúóóúóóúÿþÿþÿÿþÿÿþÿÿù¥Ž~~~~}~~~~�}}~~~~~�~}~~~~~~�~~~~~~~~~�~~~~‘¡~~¡¡~}‘¡‘�‘~¡¢¡~�~�¡‘‘‘��¡¡~�¡¡��¡¡~~¡¡‘¡¡¡¡‘¡‘¡¡¡¡‘¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¡¢¢¡¡¡¡¢¢¡¡‘¡¢¢¡‘¡¡¡¡¡¡¡¡¡¡¢¢¡££¡¡�¡££¡¡£¢¡¡¡¡£¡¡¡¡¡¡¡¡¡¢£¡¡¢¦¢¡¢¡¢£¢¡¢¡¡¢¢¡¡¡¡¢£¡¡¢¡¢£¡¡¡¡¡¢¢¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡‘¡¡¡¡¡££¡‘‘‘¡¡¡¡¡�¡‘¡¡¡¡¡£¡�¡£¡�‘¡¡~‘£¡¡¡¡‘¡¡¡¡‘¡‘�¡‘�~‘¡‘~‘¡‘‘‘�‘‘‘��~~‘‘¡¡~~�~‘‘~~‘�~~~~~‘��~}~�~}~‘~~~}}}~~}}}~~}~s}}}}~}}}}~}}s}}}}~~}~}}|}}}}}}}}}}}r}}}|}}wv|v}p}}|vžÓÓÓÓÓÒÓÒÓÓÓÇÓžÓÇÇÓÓžÇÓÓÒžÓÇÊžÊÇÇÇÇÓÇÓÇÓÇžÇÊžÊÇÇžÇÇÇÇÊÇžžÇÇÇžÇÇÇÇÇÇǞǞžÇÇžžÓÇǞǞÇÇžÇÇž�›�žÇž�žÇž�žÆž��žÇž�žÇ����ž�žÇÇž�›���ž�››����›�����›››�›››�›››››�›�›››››››››››››››››–››�–››�›–›››�››–›–››››––››––›–––›–”––––––––––––––”–––”–––…–––––”–”–––”––”xZ=!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !o’àúüýúýúýúüûúÿþúúúúúûúúûúúüúúúõÙƒ                                                                                                                                                                                                      zÓè÷ó÷óóó÷÷÷óúúóúúüÿÿÿÿþþÿþÿþÿþõ’�}}}}~}}~‘‘}~~~}}~}~~~~~~}}}}�‘¡‘~~¡¡‘~‘‘‘¡‘~}‘‘~~�‘~}~}~‘~}�¡¡¡¡¡¡¡££¡}~‘¡‘‘¡¦¢�¡¢¢¡¡‘‘¡¡‘¡¡¡¡¢£¢¡‘¢£¡¡¢¢¡‘�¡¡¡¡¡��‘‘¡¡¡¡¡‘¡¢¢¢£¦¦¦¦£¡£¦¡¡¢£££¢£¡¡¦¡¡�¡¡¡¡¡¡¡¦£¢¡¢¢¦«¦¢££¡�¡¡¡¡‘�¡¢¡�¡£¦£¢££¢£¡¡¡¡¡¡¡¡¡¡¡¢¢¢¦¦£¢££¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¢¡¡¡¡¡¢¡¢¢¡¡££¡‘‘¡‘¡¡¡¡‘¢¡��¡¡�‘¡¡¡¡¡¡�~~��~‘£¡‘~}~~‘¡¢¢¡~~�‘�~~¡¡¢‘~}�¡¡¡‘~~€��‘~�‘‘�~~~‘~~‘¡‘‘‘‘}~}~‘‘~~~~~�~}~~¡¡€~}~�}}~}}s}r}‘~}}r}v|}s}}|}~~}}}}rv}}~}p}}r}}}}}}}}p™÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüóçÏÆx======!!$$!!!!$!!!!!!!!! !!!!!!!!!!! !j�ÙüýúüúýúýúüüýýúúúûúúúúúüúúúúúõÙƒ                                                                                                                                                                                                                        zÓèóúó÷úóúóóúóóúóóüÿÿþÿÿÿþÿÿþÿþò¢ }s}}~�~}~~~~~}~�~}~‘€‘�~~~~‘‘~~}}‘�¡¡‘‘~~‘¡~~��~�~~~~~‘‘¡¡}�‘‘¡‘£¡‘¡¢¡~~‘¡��¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡¡¡¡¡¡‘¡¡¡¢¡¡¢¢¢£¢¡¢¦¢‘¡¦¢¡¡£¢¡¡£¢¡¡¢¡¡¡¡¡¡£¡¡¡¡¡¢£¦¢¡¢£¡¡¢¢¢¡¡¡¢¡¡¡£¢¢¡¡¡¡¢¡¡¡£¦¡¡¢£¡¡¡¡¢£¢¡¡¢¢¢¡¡¡¢¢¡¡‘¡¡¡¡¡££¡¢‘¡££¡‘¡¡¡¡¡¡¡¡¡¡¡¡‘£¡¡¡¡¡�¡‘‘¡¡�‘¡¡‘‘¢¡��‘�¡¢‘~‘���‘¢¡¡¡‘�~�‘�‘‘‘¡�~‘¡�‘‘��~~~~~�~‘‘‘�~~~‘~}‘¡‘~~~}~~}~�~}}~~}~}}‘�~~}}‘‘}}}|}}}}~~}}}|}r}}}~}r}}}}|}}}v~}}}vv}}}r}wr}}|šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÏ‚=$!!=!=!!!!!!!!!! !!!! !! ! !?�ÓûúýúýúüúýúüþþýúúúúúûúúúúúüúúòÚ”                                                                                                                                                                                                    {Óñóó÷óó÷óóúóú÷óúúüÿÿþÿþþÿÿþÿþÿëŽ�}}}s}~}}}~~‘�~‘‘~}}~‘~}~�~~~~~~~~~~~�~~~~‘‘~‘¡¡¡¢¡¡¡‘¡�~‘~~¡¡¡~~¡‘~~�¡�¡¡‘¡¡¡�~¡£¡‘¡¡¡¢¢¡‘‘~�‘¡¢¡‘¡‘‘�‘¡¡¡¡‘‘¡¡£¢¡¡£¢¡¢£££¢¢¡¡¡¡¡‘¡¡¡¢¢¡‘¡¦¢¡‘�¡¡¡¦¢¢¢£¦£¢¦££¢¡¡£¦¦¡¡¡¡¡‘¡¡¡¢¢£¢¦¦¢¡£¢¢¡¡¡¡¡¡¢¡¡¡¡¦£¡£¡¡‘¡‘¡¡¡‘¡¡¡¢¡¡¢£¡‘¡¡‘¡¡¡¡£¢¡‘�‘£¦¡¡¡¡¡¡££¡¢¢¡¡¡¢¡‘‘‘¡¡¡‘¡¡¡¡‘‘¡‘‘¡¡¢¡¡¡‘‘¡‘‘¡¡¡¡¡¡~~~¡¡�~‘¡¡¡‘~�¡¢�}~}~~~�‘¡¡‘~~~�‘~}~~~}~~}}‘‘�~~}~}~~‘‘~~~}}~}}~}}�~}~~}~~~}}~~}}}~}|}r}~}}}}}}}}|}rvp|}}}}ppv}}vpvžûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá‚=!!!!=! !!!!!!!!!!!! !!!! !!!  ! ?�ÖúüüûúýúýúýúýþüúúúûúüúúûüúúûüõÚ˜                                                                                                                                                                                                                  ƒÓñóúóúóúóúóúóóúóúüÿþÿÿÿÿþÿþÿÿþ뎎}}~~~~}}}}~~~}~‘~~~~‘�~~~~~��}~‘�~~~~‘‘�‘‘‘�~¡¡‘¡‘‘¡~��~�~¡¡~‘~~¡‘�‘‘‘¢£�~¡¢¡‘�‘¡‘¡£¡�¡¡¡¡¡¡‘�¡£¡¡¡‘¡¡¡¡¡¡¡�¡¡¡¡¡‘¡¢¢¡¢¦¦¢¡¡¡¡¡¡�‘¡¢¦¢¡¡¡¡¢¡¡¡‘¡¢¢¢¡££¡¢¡¡£¦¡¡¡¡£¦£¡¡£¡¡¡¢¡¢¢¡£¢£¡¡£¢¢¢¡¡¡£¢¢¢¢¡¡¡¢££¢¡¡¡¡‘¡¡¡¡¢¡¢¢¡¡¡¦£¡¡¡¡�¡¡¡¡¡¡¡�‘¢£¡¡¡¡¡¡¢¦¢¡¡£¡¡¡¡¡¡¡¡¡¡‘�¡¢¡¡¡¡¡¡¡‘‘¢¡¡¢�~¡¡¡¦¡~¡~~¡‘¡¡‘�‘‘~‘¡‘‘¡�~�~~~‘‘~~‘‘�~~~~~~~~}‘‘~}}~‘¡�}~�~~}}~‘�}}}}~~}~}~}}}~}}}}~~}~}}}~~|}}}}}}}}r}}}~}}|}v}r}|}pp}}}||všúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÆ!!!!!!!!!!!!!!!!!!!!!!!      !? Öýúüüýúýúýúüýþüûúúúúúúüúúúúúú÷Ù›                                                                                                                                                                                                                 ˜Óò÷ó÷óóóúóúóúúóúóþÿÿÿþÿþÿþÿÿþþæŸ�~~‘‘‘~}~~¡¡‘~}~}~}~}}}~‘~�‘‘‘�~�¡‘~~~‘‘‘~~�~~~‘‘~}~~~¡¡¡¡¡¡‘~~~‘¢‘‘¡~~¡¡~¡¡¡�¡¡~‘¡¢¡��¡¡~‘¡¢¡�‘¡¡¡¡¡‘¡¡�¡¡£¢¡¡¡¢£¡¡¢¢¡‘¡¡¡¢¦¦¦¦¢¡£££¦¢¢¢¡¡¡¡¡¢¡¡£¢¢¢££¡£¡¡£¦¢¡¡¡¡£¡¡¦¦¡¡££¢¢¡‘‘‘¡¡¡¢¢¢¡¡¢£¢¡�¡££¢¡‘¡¡¡¡£¦£¡£¦££¢¡¡£¢¡¡¡¡¢££¦£¢¡¡¡££££¡£¡‘¡¡¡¡‘¡¡‘¡¡¡‘‘¡‘‘¡¢¡�¡¢¡¡¡‘‘‘‘¡¡‘~~‘¡¡£¡~‘¡¡¡}~~~‘‘‘¡~‘¡¡‘��‘�~�~¡¡¡‘¡‘‘��‘~}~~~~�‘‘~~‘‘~�¡�}}}}~~}}‘}}~}~��~~‘‘�}}}~‘}}r}}}}}}}}~}v}}~~}}s|}}~}}}r}}}}}}}}v|p}}r}}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú‚!!!!!!!!!!! !!! !!!!!!! =�¬úúýúúýúýúýúýþüúúúûüúúúúúýúýú÷à�                                                                                                                                                                                                                 ›Óòó÷óúóúóúóúóóúóúüÿÿþÿÿþÿÿþÿÿþê ���‘‘~~}}~¡‘~~¡~}}~~}}}~‘‘‘‘}~‘~~‘~~~~~�¡‘‘‘~~�¡�~~~~~‘‘‘¢‘�‘~��‘¡‘‘¡�~‘�‘‘¢£‘¡¡�‘¡¡¡‘‘¡¡¡�¡¢¡‘‘¡‘¡¡¡¡¡�¡¡¢££¢‘¡££¡¡£¢¡‘¡¢¡¢¢¡£¦£¡£¦¢¡¢££¢¡¡¡¡¡¡¡£¢¡¡£¡£££¢¡¢£¡¡‘¢¡¢££¦¢¦£¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢¢¡‘¡¢¢¢¡¡¡¢£¡¡¡¢¢¢¦£¢¢¢¢¢£¢¡¡¡¢¢¢£¢¡¡¡££¡¡£¢¢¡¡¡‘�¡¡¡‘¡¦¢¡‘¡¡¡‘¡¡‘‘�¡¢¡¡¡¡�‘¡¡‘‘�‘¡¡¡¡‘¡¡¡¡~}¡‘�~‘¢‘�¡‘¡¡¡~~‘¡‘‘‘~¡¡~~~~‘�~}‘‘~~~~~�‘�~�‘‘~}~‘~}}~~}}}~‘‘~}}}‘~~}~‘~}}}}}}~}}}}}p}~}}}r}}}}~}}}}}}}r}}}pvr}}|w}||}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ[!!!!!!!!!!!!! !!! ! !! 7�­õýûüüüûúýúüýþýúúüúúûúüúûúúúú÷Úž                                                                                                                                                                                                                             žÓòúóúóúóúóúóúúóúúÿÿÿþÿþÿÿþÿþÿûä��}}~~}}~~‘‘}}~¡‘��‘�~~~�‘�‘~}}~�‘�‘¡‘‘‘~~‘‘‘~�‘‘~‘¡¡¡‘‘��¢¡‘�‘¡¡�‘¢¡‘‘¡¡‘�~¡¡‘‘~�‘¡‘‘¡¡¡¢¡�‘¡¡¡¡¡¡¡‘¡¡¡£¢¡¡‘¡¡��¡¢¡¡¡¡¡¡¡¢¡¡‘�‘¡‘¡¢¢¡�‘‘‘¡£¢¡¡££¦¦¡¢¥­ÜÝêêêêæêêêêêêêêêêêêàæêêêêêêêêêêêêêêêêêæêêêêêêêêæêêêêêæêêêêêæêæàêêêêêêêàêêæêêêàãêêêæêêêêêêêæêêæêææêêêêæàêàêæààààêêàààêêêààêàÚàêààêààêãààêààààÚæàààêæàÚààææààãàãêêàêæààààààÚàààààÚààààÚàãàÚàÚàààÚàÚààààÚàÚÙÙàêÚàÚàÚÚàÚÚÙÚæÚàÚßÙàÚàÚÙÚÚÚÙÙÙßÚÚÙÙÚàààÚÙÙ×ÙÙàèëèèëèèèèèèèèèëèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèâèèèèèèèèèèèèèèèèèáèèèâèèèèèèèèáèáâáèèèáèèèèáèèáâááßçáèáâçááèáâèáááèèáèáèááâáâáâááßááááááâáááßááááßáááßááâáßáßáááßáßáßááááßáßáßßáßáßßßßáßßßáßáßßßáßßáßáßßßßßáßáßßßßßÏßßßßßßáñ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßB!!!!$!!!!!!!!! !!!!!!!! !!! =s¬õüüüúüüüúýúýþüúúúúúüúúúüúüúý÷àž                                                                                                                                                                                                         žÓóóóóúóúóúóúóó÷óúüÿÿÿþÿÿþÿÿþÿýÚ��~}~~}~~~~}~~~‘¡‘‘~~~~�‘~‘�~~~‘�~‘~�‘‘¡�~~‘‘�‘�~�‘¡¢¡¡~~~‘¡‘‘�¡¡‘�¡¡¡‘¡~��~‘¡¡¢�~�‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢¡¢¡¡¡¡‘‘‘‘¡¡¢¡¡¡¢¢¡¡¡¡¡¡¡�¡¢¢¡¡¡¡¡¡¡££¢¡£­êûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷š}}}}}}||ppp|}v|}}|pv|vv|vpvpppv|vv}vpppppp}}ppop|pllppllllopllopppppolpvolllpvvppllllvlllllllllllollllllCllCCClllC?llCClCCll?>ClCClC?CllC?lCClllCC??>lC?C??=>l>?>>C>CC>=>>>>?>=>>Cl>>===>>===>>==>==========@=9$9==============$!9!====$!!!!!!!!=!!!$$=Zxƒßüÿÿÿÿÿÿÿÿÿÿÿÿÿü_$!$!!!!!!!!!!!! ! !!!!!   ! =sªõüüûýúýúýúüýþýúýúúúúüûúúüûúúúàÊ                                                                                                                                                                                                                   ÊÓ÷÷÷úóúóúóúóúúóúüÿÿÿþÿÿþÿÿþÿþûä �s}}~}}}~~}~‘~}}~~~~~~‘~}~}~~~¡¡‘��‘~}�¡‘�‘¡¡‘~~�‘¡¡�¡¡~¡¡‘¡¡‘‘‘¡¡¡‘‘¡¢‘¡¡¡¡‘¡¡�‘¢¡¡¡¡¡¡‘�‘¡¢¢£¢¡¡¡¡¡¡¡¡‘¡£¢¡¡¡¡¡¡¡¢¡‘¡£¡¡¢¢¦¦¢¡¡¡¡‘¡££¢£¡¡¦Ôêýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷™ppvppp}}|v}}vpppppp|vvrv|vvvv|pppvvppvvvppvppvpp|vop}vpvvvppplpolllppllpllpllplllllllpplllllllllllplCllllollllllllllllll?Clllll>???C?>CCCCCC?>>CC??>CC>>>>CC>ll??>C>=?l>>CCC>==>>CA=?>=A>>>>===C>>=>A>========$========!$===========!!!====$=$=!9=!!==!!!$==!_Ìúÿÿÿÿÿÿÿÿÿÿÿÿ…!!!!!!!!!! ! !!! !!!   sªõúýüüüúýúýúýþýúúúúûúúúüúûüúüúàÓ                                                                                                                                                                                                                             ÓÓóóóóúóúóúóúóóúóóþþÿÿÿÿþÿþÿÿÿûÖ�s}~}}}}}}~‘‘}}}~�‘~~~~‘~~~~�¡‘�‘�~‘¡‘~�¡¡¡‘‘¡‘~~~�¡¡‘¡¡�‘‘‘¡¡¡�~¡¦¢�‘¦¢�¡¢¡¡�����¡¡¡¢¡¡¡‘�¡¡¡¡¢¡¡¡‘¡¡¡¡¡¡¢¦¢¡¡¡¡¡¡¢¢¡‘¡¢¢¡¡¢¦«¢¡¡¡¡¡¡¡£¦£¥êýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ˜v}|pppvpv}}|ppv}ppppp|}||pv|||pppppppv|vpppopvvvpplpvvvvpppppollppllvopplollloolpppllplllllollllClplClollpplllCCllllllCCllllll>?Cl??C?>?llC??C?lCC?>?l>C>>Cl>AC>>CC>>>ClC>>A>=>=>>A>>?=>=>AC?==>C>=>C===>>=============$$=======$!=====!===!!$$!!==!!=!!$!@=$!ZÌÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!!!!!!!!!!! !!!  !qªëüûúýúýúýúüüþüüûúúüûúüúúüúûúúàÓ                                                                                                                                                                                                                                 ÓÓ÷úúúóúóúóúóúúóúüÿÿÿÿýÿÿþÿÿþÿûÖŽ}�‘~}�¡~~~~}~‘�~}~~�~‘‘‘~~}~¡¡~}~~‘~~��~�‘~��‘‘‘‘�~�‘‘~‘¡¡‘¡‘¡¡~~¡‘~~¡¡�~¡‘¡¡¡¡¡�¡¢¡¢‘‘¡¡¢¡‘‘¡¡¢¢¡¡¡£¢£¢‘‘¡¢¡¡££¡¡¡¢¡¡£¢‘¡¡¡£¢¡¡¢¢¢£¢¡¡¥Úûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷š}~}}}}}v||pv|||}vp}}|}vpppppppp||vvvppppppvpvppoopppvppppppllpvppplllopvppplpplllllllpooplllpolllllllopCClpllllllllllC>ClllClC?Col?CllC?CC>ClCC>>?CClCC>>=?lC>>=>C>>>>=>?=>>>>>>=>>>==>A>=>=>=======>============>>=======!!=====$====$!!==$===$$$!!==!!!!=!!!!$=Yßÿÿÿÿÿÿÿÿÿÿß@!!!!!!!! !!!!!!!! !!!! $qªèüüüûüüúüüûýþýúúúüúúüúûüúúüüüàÓ                                                                                                                                                                                                                       Ó×úóóóúóúóúóúóóúóúþÿþÿÿþÿÿþÿþÿúÔŽ~}~}~�‘‘}}}~�¡‘~~}~‘~~‘��~~‘¡‘~}}~�~~‘‘�}�¡¡�~¡‘�‘�‘¡‘‘¡¡‘‘‘‘�~‘‘~�¡‘~‘�~¡¡‘¡‘¡‘‘‘¡££¡¡¡¡¡¡¡~‘¡¢¢¡¡£¡¢££¡¡¡¡¡¢¡£¡¡¡¡¡¢£¢¡¡¡¢££¡¢¡£¡¡¢¡­õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷™}}}}|rvrp|}v|p}vrvvp}}ppvpppoppvvvv|}ppvpppp|vplppppplpppvplllpppllloopvppplllllllpllplovlllpllCllllCoollollllllllpllC??Cl?CCl?CCCCllll?>>CllC??>lC>CCCC>CClC>=>>C>=C>>=>CC>=C>=>=>A>=CC==>===================$===A========!$==========$!=!=$==!!!!!=$$!!$!=$!$$!!!_òÿÿÿÿÿÿÿÿÿñB!! !!!!!!! !!!!!   =}¥ëúüüüúýüýúüúÿýúúúúúúúüúúüúúúúæÓ                                                                                                                                                                                   ÓÓ÷÷úúóúóúóúóúúúúúÿÿÿÿþÿÿþÿÿÿþûÖ���~~}~~}~~~}~}~~~�~}}}~~~~~~~~~‘¡‘¡¡~�~~~}~‘}~�¡¡‘‘~~‘�‘�~�‘¡�¡¢¡~�£¢¡¡‘‘¡¡¡£¡¡¡¡¡�‘¡¡�¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡£¢¢¡¡¡¡¡¢¡¡¢¡¢¡¡¡¡­íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ™}}}}}}}}}}}w}}}vvv}}}}}vv}}}}}v}}vv}}vw}vpv}wvvvv}vvvvvvvvvvv}vvvvvuvvvvvvvvvuluvvvuovvvoouuuolovvolluuluulllltllluulllullooolCllCltllCCllllCCCCCCClCCCCCllCoCCCCCAACC@AClCCCACCCCA@CCCCCCC=CCCAA@ACCCCCCA@=@AA@=@>@>@=C=@=@=@==@==@==@=====@>====!=!!!!!!!!!!==–üÿÿÿÿÿÿÿÿñ@!!!!!!!!!!!!!!!  !!!   =sšéüüûüýúûüüúýþýúúüúýúýúúúûüüüüàÓ                                                                                                                                                                            Ó×úóóóúóúóúóúúóóóúþÿþÿÿÿÿÿþþÿÿûÖŽ~��}}~~}~‘~}}~€~}~~}}}~}~~�}~~~‘¡¡¡‘~~~~~}~�~}~‘¡¡¡¡�~~‘~~��¡‘¡¡�~‘£££¢¡‘‘‘¡¡¡¡¡�¡��‘¡¢��‘¡££¢¡‘¡¡¡¡¡¢¡�¡¢¡¡¡¡¡‘¡¢¦£¡‘¡£¡¢££¡¡¡¡¡¡¡­öÿÿÿÿÿÿÿÿÿÿÿÿÿÿþûöîêÝÝÝÚÚÚÝÝÚÝÝÝÝÝåÝÚÚÖÚÚÝÝÚÝÝÚÚÝÚÝÝÚÚÚÝÝåÝÚÝÝÝÝÝåÝÚÚÝÚÚÚÚÖÚÚÝÝÚÝååÝÖÚÖÚÖÚÖÚÚÚÚÝÝÖÚÚÚÚÖÚÖÚÚÚÚÝÝÚÚÚÚÚåÝÝÝÚÖÚÚÚÚØÖÚÚØÔÖÚÔÚÝÚÖÚÔÖÚÚÖÚÚÚÚÚÖÚÔÚÚÔÚÔÔÖÚÚÚÚÔÓÔÚÔØÖÚÚÔÓÓÓÔÔÓÓÔÔØÔÚÔÚÔÚÔÓÓÔÚÔÚÓÓÓÔÚÓÓÓÓÔÓÓÓÓÓÓÓÓÔÓÔÓÓÓÚÓÓÓÓÓÔÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÇÓÓÓÓÓÓÓÓ×èèèèèèèèèèëèèèèèèèèèèèèèèèèèèèèèèôèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèáèèèçèèèèèèèèèèèèâèâèèáèçèèèèçèèèèáèèáèèèèèçááâççèááèáçáççáèçááèçáçèááçáèááçááááááááááááááèçèáááááááááßáááçááááßááßßßáááááááááçááßááááááááßßßßáßáßßßßáááßßáßßßáßßáßßáßßáßÑßááááÎÌÆƒxZ@=!!!!!!!=!!=9u÷ÿÿÿÿÿÿÿÿá=$!!!!!!!! !!!!! ! !!!!!! ! !! =sªèûüüûüüüúüüüþþúúúûúúúúüúüúúúúæÓ                                                                                                                                                                              ×Ó÷÷úúóúóúóúó÷úúúüÿÿÿÿþÿþÿÿÿÿþûÖ��~‘~}�‘~}~~~~~‘~}‘¡¡�‘‘‘~���¡‘~~‘~��‘‘¡¡¡¡¡¡~‘‘�‘‘�¡~~¡¡‘¡¡¡‘�‘¡¡‘�¡‘‘¡~¡¡¡¡¢‘¡‘¡¡¡¡¡¡¢¡‘¡‘¡¡¡�¡¡¡‘¡¡¡‘¡£¢¡¡¡¡¢£¢¡¡¡¡¡££¡¡¡¢¢¢¢¡£¦Öûÿÿÿÿÿÿÿÿÿÿÿþõå­££¢¢¡¢¢¦¢¡££¢¡££¦¢¢£¢¡££££¢£¢¢¢¡¡££££¡££¡¢¢¡¡£¦¡¡¦£¢¡¡¢¡£££¦£££¢‘¡£¡¡¡¢££¢¡¡££¡¡£¢¢¡¡¡££¡¡¡¡¡¡¢¦¡¡¡Ÿ¡¢¡¡¡¡¡¡Ÿ¡¢�¡¡¡¡‘¢¡¡‘¡�¡¡¡¡‘¡¡¡��Ÿ~‘‘¡¡¡¡¡‘‘¡‘���¡‘~‘‘‘‘‘¡�‘‘‘‘‘‘‘‘‘‘�~~~‘€‘‘~~~€‘~~~‘}~~~~‘‘~~‘~}}‘€}~}}~€}}}}~‘}|}}}~}}}}}||}}}||}||}}vv}~}v|vv}}}||žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú΂C@=!!!!!!=@ðÿÿÿÿÿÿÿýÆ!!!!!!! !! !!  p¥èýüúüüûüýúýüþýúúýúüúýúûüúüüüüàÓ                                                                                                                                                                                 Ó×óúóóúóúóúóúóúóóúþÿþÿÿÿÿþÿþÿÿûÖ �~�¡}~~}~}}��~~~~‘¡¡¡‘¡��‘~~‘‘~‘‘~~~~~¡¡¡¡¡‘‘¡�~‘‘~~~‘¡‘‘¡¢£¡¡‘‘¡~~¡‘~~~¡¡¡¢¡¡‘¢¦¢‘¡¡‘¡¡‘¡¡‘‘¡¡¡‘¡¡¡��¡£¡¡¡¡¡‘¡¡£¢¡£¡¡¦¦£¡¡¢¢¢¡¡¦ÝýÿÿÿÿÿÿÿÿÿÿõÚ¦¡¡££££¢¡¡££¢¡¡£¡¡¢¦¦£‘¡¡£££¦£¡¡¡¡¡¡££¢¢¢¡££¢¡¡¡¡¢¡¢¢¢¢¡¡¡¡¢£¦¦©¦££¡¡¡¡¡¡¡££££¡¡¢¡¡¡¡¡¡¡¡¢£££¡¡£¡�¡¢££¡¡‘�‘‘‘¡¡¡¡¡£¡‘�¡¢¡¢¦¡�¡‘~¡¡‘¡¡¡��~‘��¡‘¡¡¡¢¡¡¡¡‘¡‘¡¡‘~‘¡~‘‘‘¡¡~~‘¡¡�‘‘~~~�¡‘‘‘‘‘}}~~‘‘‘~}�~}~‘‘‘‘~}~‘~~}||‘�}}~~~}}}}|}~}}}}~||}~}}|}|}}}p|v}~}||p}}}}}™úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáz@$!!$!!9ßÿÿÿÿÿÿÿþ‚!!!! !!!! !! !!!     $p’ëúýüûüüûúýúüÿýûúúüûúúüúúüúúúúæÓ                                                                                                                                                                 ÓÓúóúúóúóúóúúúóúúüÿÿÿÿþÿþÿÿÿþÿúÖ ¢}}}~�‘��~}�‘~}~~~~~~�‘‘~~}�‘‘~~~��‘�~‘‘~~~�‘¡‘~¡¡‘‘¡¡‘�¡‘‘¡‘‘¡¡¡�¡¡¡‘¡¡¡‘�¡¡¡‘¡¢��¢¢¡¡¡¡¡¡¡Ÿ¡£¡¡¢£¡‘¡¦¢¡¡¢¢¡¡¡¡¢¢¢¡¡¡¢¡¡¡¢¡¢£¢¢æþÿÿÿÿÿÿÿÿÿûÜ¢£££¢¡£¢¡£¡¡¢¢¢¢£¦¢¢£¢¡¦¢¢¢£¢¡¡££¢££££¡¢¢£¢¢¢££¢¡¡¢¢¢¢¢¡¡£¦£¡££¢¡¡¢¢¢¢¡¢£¢¡¢¦¢£¢¡¡¢£££¢£¢££¢¡¡¡¡¢£¡¡¡¡¡¡¡¡¡‘¡¡¡£¡¢¡‘¡¡¢‘�¡¡¡‘��¢£¡¡‘¡¡¡‘‘¡�¡¡¡¢¡‘‘‘�~�¡‘‘~~�¡¡~~��‘¡¡‘~‘‘~‘¡~}~‘‘‘‘�~~�‘~}~~~�~�~}~}~~}~}~~}}~}�‘}}~~}}}�}}}�~|}}~}}}}|}~}}}}}}}}}}}}|}}}}}}rvp}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáx=!!!!!!!$9Èÿÿÿÿÿÿÿú_!!!!! !!!!! !!!   =}ªéüüúüüüüüüüýþüúüúúúüúûüüúüüýüàÓ                                                                                                                                                              ×Óóúóóúóúóúó÷óúóóóÿþÿÿÿÿþÿþÿÿÿûÖ�¢�}~‘‘‘‘~}�‘‘~}�~~~}}~‘‘‘~}‘¡¡‘�‘‘‘‘~~~~~}~~~¡‘�‘‘‘¡¢¡¡‘‘‘�‘�¡¢¡‘‘¡¡¡‘££¡�~‘¢¡‘¡‘‘‘¢£¡¡¡¡¢¡¡‘¡££¡¦£¡¡¡¡¡�¡¢¡¡¡¡¡££¡¡¡£¢¡‘¡¢¢¡¢¦ãþÿÿÿÿÿÿÿÿûÚ«¦¦¦£¢££¡¡¡¢¡¡¢£¡¢¦£¢£¦¢¡¢¡¢£¢¡¡¡££¢£££££¢££¢£¢£¢¢¡¡££¢¡‘¡¡¢¢££¡¢¢£¡¡¡¡¢£¦¦£¡££¢££¡¡¢££¡¡££££¢¢¢¡¡¡¢¡¡¡¡‘¡¡¡¡¡¡¡¡£¡¡¡¡‘¡¢£‘¡‘~~‘¡¡¢¢¡‘¡¡¡¡‘‘¡¡~¡¦¢¡‘�~~~‘¡¡�~~~~�‘‘‘~‘¡¡‘‘¡��~~}~€¡‘~~~‘¡~}}~�~~~}}~}}~~}}}}~�~}}}~�~}~}}}}}~}~‘}}}~~~}}}}�~r}}~~~}}~}~}p}}|}}}rpvžûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎx!!!=$=Îÿÿÿÿÿÿÿñ@!!!!!!! !  !!!! $ŽªèúýýúýúüüûüüþþúúúýúúüüúúüúúúüàÓ                                                                                                                                                          ÓÓúóúúóúóúóúúúúúúüÿÿÿÿþÿÿÿÿÿþþûÖ �}}~‘~~}}�~~~~~~~~~‘��‘‘~~}~‘~�‘‘‘~�‘‘‘‘��¡¡‘��~¡‘¡¡‘~‘‘¡¡¡~¡¡‘�¡¡¡¡¡‘‘¡¡�‘£¢�‘¡¡¡¡¡¢¡¡‘�¡¡¡¡¡£¡‘¡¡¡¡¡£¢¡‘¢¢¢¢¡¡¢¡¡¡¢¢¡¡¡¡¢¢¢¢Öûÿÿÿÿÿÿÿÿí­££¢¡¢¡¢«¦¡¢££¢¡££¢¡£¢£¢¢¢£££¢¢¢£££¦£¢£¡£££¡¡¢¢£¢¢¢££££££¡¡£¦£££££¢¢¢¢¡¡¡¡£¢£¢¡¡¡¡¢¢¢¢£¢¡¢¢¢¢¡¡¡¡¢¡¡¡¡¡£¢¡¡¡¡¡¡¡¡¡¡¢¢¢¡¡¡�‘¢¢¡¢‘�££‘‘‘‘¡�¡¡¡¡¡¡‘~¡¡‘�‘¡‘‘¡‘‘‘¡‘¡�‘¡‘‘‘~}‘‘‘‘‘‘~��~���‘‘�‘‘~~�~‘¡‘‘‘~~‘�}~~~~~~}~~~~}}~~~~~}~}}~~}}}}~}}}}}}}}}v|}}}~}}rv}~}}rv}}v|}|žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü‚=!!!!!!@ñÿÿÿÿÿÿÿÌ!!!!! !!!!!!  !q¥éýúýüûýûýüüýþýüúýúúúüúüüúýúýúæÓ                                                                                                                                                                    Ó×óúóóúóúóúúóóúóóóÿþÿÿÿþÿþÿÿÿÿûÖ�~}~‘~}}}}�~}}‘‘‘�~}‘‘~�~~�‘~~}}�‘~~‘¡¡‘‘~‘¢¢�~~‘¡¡¡¡‘~‘‘‘¡¡�‘¡�~�‘‘¢¦¡��‘¡‘¡¡~�‘¡¡‘¡£¡‘‘~¡££¡£¢¡‘‘¡¡¡¢££¡¡¡¢¢££¢¡¡¡¡¡¡¡¡£¢¢¡¡­ûÿÿÿÿÿÿÿÿê«¢¡¢¡¡¡¦«««£¢££££££¢¡¡¡¢¡¡¦¦£¢¢¡¢¢£¦¦¦¢¡¢££¡¡¡¢¦¢¡£¦«©££¢££¢¢£¦¦¦¦££¡¢££¡¡¡¡¡¢¢¡¡¡¡¢¡¢££¢¢¢££££¡¡¡‘¡¢¡�‘££¡¢¢¡¡¡¡¢¡‘¢¦£¡��¡¡¡££¢¡‘¡¢¡�‘¡¢¡�¢¡¡¡‘����~‘‘�‘¡¡¡�~‘¡‘‘¡¡�~~~~�‘¡¡¡�~‘¡¡~‘‘¡‘~�‘}~¡‘¡¡‘‘¡¡‘~}~~~~‘�}}~~}}}}}}~‘~~�~}~~}||}~s}}}}}|}}}}}}}}}vvp}~}|}r|}}}}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ@!!!!]üÿÿÿÿÿÿü]!!! ! !!!!!!! !! !!!    !  !p’èüüüüüüüúýúýþýúúúûúýúüúúüúýúüàÓ                                                                                                                                                                                           ÙÓúóúúóúúúóúúóúúúüÿÿÿÿþÿÿÿÿþÿÿúÖ��}~}~~~~}~~~~~‘~~~}~‘‘‘�~~¡¡~��~�‘~~¡¡‘¡~~¡¡€~¡¡‘~‘¡¡�‘¡¡¡‘~¡¡¡‘¡�‘¡¡~¡¡‘¡¡¢¢¡¡¡¡¡¡¡¢¡¡¡‘¡¦¡�¡¢¡¡¡¡¡¡¡¡¡£¢¡¡¡¡¢¢¡¢¢¡¡¡¢¢¢¡¡¡¦õÿÿÿÿÿÿÿþÝ¥¡¡££¢¡¡«¢¡¡¡¡£¢££££¡¢£££££¢¢¢£££££¦£¡¡££££¢£¡¢¦£¡¡££££¢£¢¡£££¢¢¢¢¢¢££¢¡¡££¢¢¢¢¢¡¢¢¢£¢¡¡¢¡¡¢¢¢¡¡¡¡¡¡¢¢¡¡¢¡¡‘¢¢¡¡¡¢¡¡¡¢¡¡¡‘¡£¡‘¡‘‘¡¡¡¡¡‘¡‘¡£¡¡‘‘¡�¡¡¡¡¡¡¡�¡¡¡�‘~~¡¡¡¡��‘‘�~‘‘��~‘‘~‘¡‘~�‘~}‘¡‘~}~~‘�}}‘�}~¡�}}‘~}}�‘~~~�}}�~}}}‘}}}~}|}�}}}}~~~|}~~pr}}}}}}}}}v}}}}|p}}§úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ@!!!!!@‚þÿÿÿÿÿÿÏ!!!!!!! !!!! !qªéýûüýúýúýúýüþýüúýúüúüúüúýúúüúæÓ                                                                                                                                                                             ÓÓóúóóúóúóúóú÷úóóúþÿþÿÿÿþÿÿþÿÿûÖŸ}}}}}~�~~~‘‘~}}}~~}}~¡¡¡~}‘¡‘‘~~~�¡¡‘¡¡‘‘‘¡¡‘~¡¢‘~‘¡¡¡¡‘¡¡‘‘¡¡~¡¡�~‘~�¡¢‘¡¡£¦¦££¡¡‘‘¡¡¡£¡¡¡¡��¡¡¡¡£¦£¡¡¡¡¢¡¢£¡¢£¢¢£¢¢£¡¡¡¡¡¥ëþÿÿÿÿÿÿþÚ¢¡¡¢£¢¡¡££¡¡¡¢£¡¡¡¦££¢¡££«©¡¡¡££®££¦£¢¡¡¡¡¡¢£¢¡¢®¦¡¢£¡¢££¢£¦¦££¢¡¢¡¢¢¡£¡¡¢£¦¢¡¡¢¢¢¡¡¡¢£¡¡¢¢¡£¢¡¢¢¡¢££¢¡¡££¡�¡£¢¡�¡£¡¡£¡¡¡¡¡¢¡¡¡‘�¡¡¡£¡�¡£‘¡£¢‘~¡¡¡~¡¡¡¡¢¡¡¡‘‘~~~~¡¡‘‘~~¡‘‘‘��~}~�~~‘¡‘~~~~}}�~}}}}‘‘~}~‘~‘‘~}~~~}}‘‘��‘~}‘‘~}}}~~}~‘�}}}}}~~}}~}}~}}}}}r~}}s}vr}}}}}rv}§úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@!!!!!!Æÿÿÿÿÿÿüx!!!!!!!!!!!!!   9qªèüüýúýúýúýúüÿýúúúüúüúüúüûúýúüàÓ                                                                                                                                                                        Ó×úóúúúóúúóúóüóüúüÿÿÿÿÿþÿÿþÿÿþûÖ��~~~~‘‘~~~}~�~}~‘~~~~~‘~~~�~�~‘�~~¡‘~~�‘‘‘�‘~~¡¢�~¡¡‘¡‘~‘¡¡¡¡~¡¡¡‘‘¡¡��¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡£¢¡¢¡¡¢¢¡¡¡¡¡¡¡¢¢¢¡¡¢££¢¡¡££¡Ôûÿÿÿÿÿÿÿݦ¢¢¢¢¢¢¢£¢¡¢¢¢££¢¢££¡¢¢¢£££¦¡¡£¦£¦¢¢£¢£££££¢¢££¡¢«¦¡¢¢¢£¢¢¡££¡¡¢¢£££¦£¡¢¢¢¢£¦£¡¢£¢£¢¢¢£¢¡¡££¡¡¡¡££¡‘££¡¡¡¡¡¡£¡¡¢¡¡¢¦¢¡¡‘¡¦¡¡¡¡¡¢¡¡¡�¡¡¡‘�¡¡¡¡¡¡¡¡¡¡¡‘‘�¡¡¡¡¡~‘‘¡¡¡¡¡‘‘�‘‘¡¡¡‘‘�‘�‘~~‘¡~~�‘~~�‘���~~¡~~�~~}~‘�}~~~}~~~}~~~~�}}}~~~~}}‘}}}}~~}~}r}}}~}}}}~}}}|}}rv}}}}|v}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ=!!!!@òÿÿÿÿÿÿá!!!!!!!!!!!! !!  !pªíûüüüýüûüüýýýýúüúüúüúýúûüüüüúæÓ                                                                                                                                                                                            ÓÓóúóúóúúóúóúóúóúóÿÿþÿÿÿþÿÿÿÿÿûÕ���~}}~‘�‘‘}~‘¡~~~��~}}~~}~~~~~~~~~~~~}�‘�~~~~‘¢¢~~‘‘~�¡~�‘¡£‘�¡¡¡¡¡¡¡��‘¢¢¡¡��‘‘¡¡¢££¢¢¡¡¢¡¡¡¢£¢¢¡‘¡£¦¢¡¡£¡‘¡¡¢¡¡¡¡££¢¡¡£¢¦íÿÿÿÿÿÿÿë«££¢¢¢¢¡£¡¡¡¢¢¢££££¢¡¡¡¡¦¦¡¡£¡¡¢£¦«¦¦¦¢£¢¢¦¦£¡££¢£¦£££¢¢¡¡£¢£¡¡¢¢¡£¦««¦¦£££¡¡¦£¢¦¦£¡¡¢¦£¢¡¡££¢¡�¡¦£¡¡¡£¢¡¢¡¡¡£¢¡£¡¡£¡¡¡¡¢¢££¢¡¢¢¡¡�‘¡¡‘¡¡¡¢¢¢¡�¡£¡‘¡¡‘¡‘¡¡¡¡‘‘‘¡¢¢¡‘‘‘¡¡‘¡¡¢¢‘~~��~�~�����~~�¡‘~‘¡~}~~‘‘~~‘~~~}}}}‘~~~~}‘‘�}}}~}~~‘~}~}}~}~�}}}|}}}}rp}}}~}}}}}v}}pp}||}}™úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!!!–ÿÿÿÿÿÿü‚ !! !!!!!! !!   ! !  =sªèüúýúüüüüûúýþýûúýúüúüúüüúúüúüàÓ                                                                                                                                                                                         ××ú÷úóúó÷úóúóúúúóüÿÿÿÿÿþÿÿÿþÿþûÖ��~~}~~~~~}}~‘~~~‘‘‘~~~‘‘‘‘~~~‘�‘‘‘�‘��¡¡‘‘‘‘��‘¡‘~‘‘¡¡‘‘¡�‘¢¡¡‘�‘¡¡¡¡�¡‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘¡¢¡¢¡¡¡£¢¡¡¢¡¡¡¡¢¢¢¢¢¡¡¢¢¡¡¡£Úýÿÿÿÿÿÿõ«¢¢¢£¢££¢¢¡££££¢¢¢¢£¡££££¦¡¢£¢£¢£¢£¦¢£¢¡£¡£®£¢£££¡¢¢¢¦¦¢£¡¢¢¢££¦¦£¢¢¢¢¡¢£££¡¡¢¦£¡¢££¡¢£¢¡¡¢¢££££¡¡¢¢¡¡££¡¡¢¢¢¡¢¡£¦¢¢¡‘¡¡¡£¡¡¡¡¡¢¡¡¡¡¡¡¡¡�¡¢¡‘¡¡‘‘‘�¡¡¡¡¡¡‘¡‘‘¡¡¡¡¡‘¡��‘‘‘¡�‘‘‘~�‘‘��‘¡‘€‘‘~~��~~‘‘~~~‘‘‘~}~¡‘~~~~}}‘‘}~}~~‘}}~~}}~~}}}~~|}s}‘}|}}}}}}}}}}}}~}}}}}}p}}}}p}}žûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ‚!!!!!@òÿÿÿÿÿÿç9 !!!!!!!!!!! !  =s¥ëüýüýûüüüüüýþýüúúüúýúýúúüüúýúæÓ                                                                                                                   Ó×÷úóúóúúóüóúúóúúúþÿþÿÿÿÿþÿÿÿÿûÖ��~�~~‘�~~}}~~}~‘¡¡¡‘~�¡¢¡¡~~~‘¡‘¡¡‘¡‘~¡¡�¡�~�~‘‘‘��¡¡‘~�¡‘�‘‘¡¡‘¡¡£¡¡¡‘‘�‘�‘¡£¢¡¡¢¢‘��‘‘¡¡¡¡¡¢¡�‘¢££¡¡¡¢¡¡¢¢¢¢¢¢¢¦£¡££¡¡¢¦íÿÿÿÿÿÿûܦ¢£¢£¦¦«®¦¢¡¡¢¦£¡¡¡¢¢£¦£¦£¡£¢¡£¦£¦£¡¡¡¡£¡¡¦«¦£¡£¡¡¡£¡££¡¡¢£¢¡¢¦««¦££¡¡¢¡¡££¡¡¢£¡¡¡¢¢¢¢¡¡¡¢£¦£¢¢¢¡¡¡¡¢££¡¢£¢¢¦££¢¡¢¢¢¡¡¢¡¡¡¡¡¢¡¡¢¡¡££¢¡¡¡¡¡¡�‘¡¡��‘~¡£¡¡‘¡‘‘¡¡¡¡¡¡‘����~~�‘‘~‘‘‘¡¡¡~�‘¡‘‘~~~�‘€‘‘¡‘�}‘¡¡‘~}~‘¡‘~}~~}~‘‘}s}~~}}~�~}}}}}}}s}}||~}r}~}}}|~~~|p}}}~}}}pp}~~}}}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Z !!=ƒÿÿÿÿÿÿü� !!!! !!!! !!  !!pšèýúüüüúýúýúüÿýúüüûúúûúüüûúüüüàÓ                                                                                                     ÓÓúóúúúóúúóúúóúúóüÿÿÿÿÿþÿÿÿÿþÿûÖ���~~~~~~~~~�‘~}~¡‘~~~�‘‘‘�}~~~�‘¡¡��~�¡¡‘‘~~¡‘‘¡‘¡‘¡‘�‘‘¡¡¡~¡¡¡¢¡‘¡‘¡¡¡¡¡¡¡¡‘¢¢¡‘¡£¡‘¡¢¡¡¡¡¡¡¡¢¡¡¡£¢¡¡¢¡¡¡££¡¡¡¡¢¢¡¡££¡¡¦åþÿÿÿÿÿÿÚ¦¦¢¢¢¢¢¡¢¦£££¡¢¦¦¢¢¢¢¢¢£¢££££¡¡£¦£¦¢¡£¡£®£¡£¦£¡££££¢££££¡£££¢¡£¦¢£¢£¢¡£«£¢£££¢¢¢¢¢¢¢¢¢££¢¢£££¡¡¢¢¡¡££¢¢¡¡£¦¡¡¢£¢£¡¡¡¢¡‘¡¡¡¡¡£¡¡¡¡¡¡¡¡¡��¡¡¡¡¡¡¡¢¡‘¡‘¡¡¡�¡¡¡�‘¡¡¡‘¡¡‘‘‘¡‘�‘‘�‘¡¡‘‘‘~‘~¡‘‘�‘����~�‘‘‘~~~¡�~~}~~~~~}~~~}~‘‘}}~~}~~‘}}~}~}~}~}}}}~}}}~}~~|}}}}}}}}}}}sv}~}}}v}ržúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ!!!$!@òÿÿÿÿÿþÈ!!!!!!!!! !!!!=qªëúýûüüýüýúýýýýüúúüüüüüúûüüúüúæÓ                                                                                                           ÓÓúúó÷óúúóúóúúúúúúþÿÿÿÿÿþÿþÿÿÿûÖ��}‘‘~}�}}~~‘‘}~~}~‘‘�‘‘~~��¡�~}~‘¡‘~~‘¢¡‘�~�¡‘‘¡‘¡¡¡~~¡¡¡¡¢‘~�¡££¡�~‘¡¢¡¡¡¡¡‘‘¡‘�‘¡¡¢¦£¡¡¡¡¢¡¡¢¢¡‘¡¡‘¡¡¡‘¡¦£¡¢¢¢£¢¡¡££¢£­öÿÿÿÿÿÿö­¢¢££¢££¢¡¡¢¦¦£££¢¢¦¦£¦££¡¢£££¡¡¢¦£¢¡¡£¡£¦¡¡¢¢¢£¦®¦£¡¢£££¢¢££¢¡£¢¡¢¢¢¢¡£«¦£££¦¦¦££¢£¦¦¦¦¦¦¦£¦£¡¢¢¢¢£¦¦¡¡¡¡£¢¡¡¢¡¡¡¡‘‘¡¡�¡¡¡¡¡¡¡¡¢¡¡¡‘�¡¡¡¢¢¦¢¡‘¡£¢¡¢‘�‘�¡¢¡¡��‘¡�‘¢¡‘�¡¡¡¡‘~~‘¡¡�‘~‘‘‘��~~¡‘‘‘~}~~‘‘‘~~~}}}}}~}}~}~��~}~~}}�~}}~~}s}~‘�¡�}s}}}~}~~~~}}}r}}p}}s|rp}}||}}}}|v}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüZ!!!!!–ÿÿÿÿÿÿñ!!!!!!!!!!!!    =s¥éüüüúýúýúýúýþýúüüúúúúúüüüúüüüàÓ                                                                                                           Ó×úóúúúóúúúúúóúóúúÿÿÿÿþÿÿÿÿÿÿþûÖŸ��~~~~~~~~�~��‘~}�‘‘~~‘‘‘‘‘�~��~¡‘���‘‘‘�‘�‘‘‘‘¡�~¡¢‘~‘¢‘‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¢‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¢¡¡¡¡¡¡¢¡¡¡¡¢¡¡¡¦£££¡¡££¡¡£¦¡¡ÔûÿÿÿÿÿÿÚ¢¢¢¢¢£¦££¢¡¢££££¢£££¡¢£££¢£££££¢£¦¢¡£¢£¢£¦££¢¢¢¦££¦££¦¦¢£¢£££¢¡£¢£¦¢£¢¡£¦££¢¡£¦££¢¡¢££££¡¢¢¢££¢¢¢¢¢¢££¡¡¡¡¢£¡¡¡¢¡¡¡¡¡¡¡¡¡£¢¡¡¡¡¡¢‘¡¡¡¡¡‘¡¡¡¢£‘�¡¡‘‘¡¡¡¡¡¢¡‘¡‘¡¡‘~�¡¡‘¡‘¡¡¡�‘‘¡‘‘‘¡‘‘‘¡‘‘���‘‘�~~~�‘‘��~~~~~~�~~�~‘‘~~~~}~~~~~~}~}~}}~}~}~}}}~}}}¡~}}|}}}~~}}}}}}}}||}}r}}}}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ=!!!!Yýÿÿÿÿÿ÷[!!!!!!!!!! !!=}’éúýüýüüýüüýýþýüúúüüýýüúüúýúûüàÓ                                                                                                          ÓÓóúóúóúóúóúóúúúóüþÿÿÿÿÿÿÿþÿÿÿûÖ¢¡}}}~�~~~~~�‘¡¡¡�‘�}}~€¡¡¡‘‘‘¡‘‘‘~‘¡‘~�‘¡¡‘�‘‘¡¡�~�¡¡��‘��~‘¡‘‘¡~�¡£¡‘¢¢¡�‘�‘¡¡¢¢¢¡£¡‘‘¡¡¡¢¡�¡¡¢££¢¡¡¢£¡¡£¦¦¦¢‘¡¢¢¡¡£¢¢¡åþÿÿÿÿÿõ¬¡¢¢£¢¢¡¡¦¦¢¢£¦¦¦£££¡¡¡¢£¢¦££££¦¦£¢£¦©£¦£¡¦«¦¢¡¢¦£¦¦£¦«¦£££¦¦¢¡¡¢¡¢¢¡¢££¦£¡¡¡¡¡££¡¡¡¢¦££¢¢¢£¡¢¢¡¢¡¢£¢£££¡¡¡¡¡¢¡¡¡¢¢¢¡¡£¢¡¢«¦¢£¡¢¡¡¡¡¡¢‘¡‘�¡‘‘¡�¡¢¡��‘¢¢¢¢¢‘�‘¡¡�~�‘‘~�¡¢¡‘�~¡¡��‘¡¡‘‘¡¡¡¡~}~��‘‘��‘�~~~�¡¡¡‘‘¡‘~�‘‘‘�‘�}~}~~~‘~~~}~~~}}}}~~~�~}}~€}}}sp}}‘~}}||p}r}}}}}wrvr}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ_$!!!@áÿÿÿÿÿýÅ!!!!!!! !!!!!!!! !! ! qšëýúüüúýúýúüüþýüúýúúúúúýúüúüüüæÓ                                                                                                  Ó×úúúóúúúúúóüóúóüúÿÿÿÿþÿþÿÿÿþÿûÖ  ~}�‘}~�‘~~~~~�‘€��~}~~�¡‘~~‘‘��~~¡¡~~�‘‘‘‘���¡¡‘¡�~¡¡‘¡¡¡‘¡¡�¡¡¡~¡£¡‘¡¡¡¡¡‘¡‘‘¡¢¡¡¡¡¡¡¡¡¢£¡¡¡¡¡¢¢¢¡¡¢¡¢¡¢¢¢££¡¡£¦¡¢¢¡¢¦íÿÿÿÿÿÿÝ¢¡¢£¢£¢¡£¦£¢¢¢£¢££££¢£££££¦¡¡£¡¦®¢¡£«£¢£££¦¦££¡¢££«¦¢£££¢£££££¢£¢¢£¢¢£££££¢¡£££¢¢¢¢¢¢¢¢¢£££¢¢££££¡¢¡¡££¢¢¢£¡¡¢¢¡¢¡¢¢¡¢£¢¡¡¦¡¡¡¡¡¡¢¡¡¢¢�‘¡‘¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡‘~‘¡¡�‘¡‘¡¡¡‘��‘‘‘‘¡‘��‘‘‘�‘��‘‘~‘‘‘‘�~~}~‘‘‘�~~�~~‘~~~~~~~~~‘~~~}~}~~~}}�~~}~~}}~~}~|}}}}}~}}r}}}}|v}}}}}}}}|pžûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ!!!!!Æÿÿÿÿÿÿá!!!!!!!!!!  !q¥èýüýûýúýúýûýÿýúüúýúýüýúýúýúüúàÓ                                                                                                         ÓÓúóóúúóúóúúóúúúóüþÿÿÿÿÿÿþÿÿÿÿûÖ��~�¡�~}‘‘~~~~}}}}~~~~~~~~~}~�~~~}�¡¡~~~‘¡¡‘‘~~‘¡¡‘‘�‘¡¡‘‘¡‘¡¡~~¡¢‘¡£¡‘�~¡¢¡¡¡¡�¡¡¡¡¡¡£¦¡¡£¦¦££¢£¢¡¡¢¢¢££¢‘¡¡¢¢¡¡¦«¦£¡¡¡­ûÿÿÿÿÿýÔ¡¢£¡¡¢¢¡¢«¢¡¡¡¡¡¡¢£££®¦¦¦££¢¢£¡¢«£¢¦£¡¡¢¦¦«¢¢¢¡¡¢¢¦£¡¢¡££¢¡¡¢£¦¦££¦¦£¢£¦££¡¡££¢¢¢¦¦££¡¡£££¢¢££££¡¡¢¢¡¡¡¡¢¦¦¦¡¡£¢¡¡£££££¡‘¡¡‘‘£¢¡¡�¡¢¢¢¡¡‘¡££¡¡¡�‘¡¡‘‘‘¡‘‘¡��‘¡¡~¡¢¡¡¡‘�¡‘‘¡¡~�~~~}~~‘¡‘�‘¡¡‘��‘‘¡¡�}~}�¡�~‘‘~}~‘~~}}}}~�~~‘~}~~~��‘�~}}�}~}~}}�~}}}}}}}}}~}|}}~~}}}s}}}}}}}v|žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó!!!!xÿÿÿÿÿÿ÷Y!!!!!!!!!!! =qªëüúüüúýüüüüüþýüûúúýúúúüúúüüüüæÓ                                                                                                                        Ó×úúúóúóúúúóúüóúúüÿÿÿþÿÿÿÿÿÿþÿûÖ��~~~~~~~~~}��~~~~~�~~~~~�~�‘‘�‘¡~�¡¡��‘�¡¡¡‘~~‘¡¡�‘¡‘¡‘~¡¢¡¡¡~‘¢¡‘¡¡¡¡¡~�¡¡¡¢¢¢¡¡¡£¡‘¢¦¡‘¡¢¢£¡¡¡£¡¡¡¢¢¢¢¡¡¡¡££¡¡¢£¢£¡¡¡Ýþÿÿÿÿÿõ­££¢¡£££¡¢¦£¡¢££££££¡£¦¦££££¢£££¢££¢£££¢£¦£¦£¢£¢£¢£¦¦££¡¢££¢¢££¦¦£££££££¦¢¡¢¢£¦¢¡££££¢¢£££¢¢££¡¢¢¢¡£¢¢¢¢¡¡¢£¢¢¢£¡¡¡£¢¡¢¢¢¡¡¡¡¡¡£¡¡¡¡¡¡¡¡¡‘‘££¡¡¡‘¡£¡‘¡�¡�¡¢¡‘¡¡¡‘‘¡¡¡¡~~‘‘¡¡¡‘¡¡�~�~¡¡�‘‘~‘‘~~‘¡�~~~��‘¡‘~~‘‘~~‘�~~~~}}‘‘}~‘‘}~}}‘‘~~}}}~~}~�}}}¡~p}}}~~}}}}}|}~}}}s}}|r}|}}s|žûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZ!!!!Cóÿÿÿÿÿüƒ!!!! !!  !!!!! !q¥èüýýúýüüûüüýÿýúüüúüüüýúýüýúýúàÓ                                                                                                                  ÓÓóóúúóüóúúúúóúúóúþÿÿÿþÿÿþÿÿÿÿûÖ�}}}}~~‘���~‘‘�~}~~~�‘‘‘�‘¡¡‘~~‘¡‘¡¢¡‘‘‘�‘‘‘¡��¡¡‘¡¡¡‘‘‘‘¡¢¢¡‘�¡¢¡~‘‘¡¢¡��¡¡££¢£¢¡¡¢¢‘¡£¢�¡‘‘¡¡�¡£¡¡¢£¢££¡¡¡¡¢£¡¡¡¡¡¡¡¡¢ëÿÿÿÿÿÿꦦ¦£¡£«¦¢¢£¡¢¦¦¦£££¡¡£¦¢¢¢¢¢££¦¦£¡¢¡£«¦£¢¢£¦¦¢££¦¦£¦£¢££¦¦¦£££¡¢£££££££¦¦££££¦¦£¢¢¢¡¡¡£££¡¡£££¢¢¡¢££¢¢¢¢¡¡¢¢¡¢¢¢¡¡¡¡¡¡¡¢¢££££¢¡¡¢¡¢¢¡¡¡¡£¡‘¡¡‘¡‘¡¢¦¡¡¡�‘‘¡¢¡¡¡¡¡¡¡¡¡‘�~�‘‘¡‘‘¡¢¡¡¡‘¡¡‘~¡¡~~~�~~‘~~}~¡¡¡‘~}‘‘�‘��~~~}‘~~¡‘}~‘‘~}}}}�}}~~~~}}}~}}}}}}r}}~~}}s}}}~}r}}|}~}pp}}~}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!@ÌÿÿÿÿÿüÆ!!!!!!!! !!!!   !q¥ëýúüýúýüüýúüþýüúúüúúúúüüûúüüüæÓ                                                                                                                     ÓØúúúóúúóúóúóüóúúüÿÿÿÿÿÿÿÿÿÿþÿûÖ��s}~~~~~‘~‘‘‘~}~‘~}~‘‘���‘¡‘�‘�‘‘¡¡‘‘�¡‘�‘¡‘~‘¡¡¡¡‘�‘‘¡¡¡‘¡‘¡¡‘¢¡�¡¡¡¡¡‘‘‘¡¡¢¡¢¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡‘¡¢¢¡¢¢¢¢¢¡¡££¡¡¢¢¡¡¢¢¡¡¦íÿÿÿÿÿþÝ«££¢¡¢£££¢£¢££¦¦£££¡¦¦¢¢££¢¢££¦®¢¡£££®££¢¡£¦£££¦££¦¦££¢¦¦¢£¦¦£¢££££¢¢£££££¦£££££¢¢£¢¢£££¡¡£££¢¢¢¢¢¦¦¢¢¡¡¢¡£¢££¡¡¡¡¢¡¢¡¢¢¢¢¡¡¢£¡££‘¡¦£¡¡¡¡¡¡¡¡¡¢‘�¢¡¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¢¡¡‘�‘��¡¡~�¡¡¡‘¡¡~~‘‘¡‘~~‘�~~���‘‘‘‘~~~~�‘‘‘~~‘�}~~}‘�~}‘�}}~~~‘}}}~~~~}}}}}}s}}}}}}}}r}}}s}~}}}}}}}v}}}}}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ!!!!!–ÿÿÿÿÿÿÈ!!!!!!! !!  !!! =q¥éüüýûüüúýüüýÿýúüýúýüýüúüüüüûüàÓ                                                                                                      Ó×úóúúóúúúúúúóúúóúþÿÿÿÿÿÿÿÿÿÿÿûÖŽ�~}~}}}~~~}~‘‘~‘¡‘‘‘‘~~‘~~�‘€‘¡�~~~�~~‘¡‘~�‘¡¡¢¡�‘‘¡¡¡‘¡¡�~‘¡¡¡¢‘‘¡¡¡¢¡¡¢¡¡¡‘�‘‘¡¡¡‘¡¡¡¡¡¢££¡¡¡£¦¦¡¡¡¢¡¡¡¢¦¦¢¡¡£££¢£¢£­õÿÿÿÿÿûÔ£££¡¡¡¢££¦££¢¢¡¡¢£¢¢¦¢¡¢£££££¢£¦£¡¦£¦®££¢¡¢£¡£®¦£¦££¢¢£¦£¡£¢¢¢££¢£¦££¢¡¢¡¦®¦££¡¡¢¦¦¦¦¦¦£¡¡¡¡¢£££¢£¦¢¡££££¢££¢£¢¢¢¢£¢£¢¡¢¡¡¡¡¢££¦¢�‘¢¦¢¡¡¡¡¢¡¡¢¡‘¡¢¢¡¡¢¡¡¡¡¡‘��‘�¡¡¡¡¡¡¡¡‘~¡‘�‘¡¡¡‘‘�~‘¡�~‘‘‘¡¡�~‘‘¡‘~~~~~~~~~‘~}~‘‘~}}‘¡~~~~~}}���~}}}~}}~~}~~~}|}}~~~~}}}}}}}}~}}}~~}vr}}s}}p™úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý!!!!!‚ÿÿÿÿÿÿÏ!!!!!!!!! !!!  =q¥èúýüüýûýúýúüþýýúüúüúúúýüüúüüüæ×                                                                                                                ÓÓ÷üóúúúóúóúóüúóüüÿÿÿþÿÿþÿþÿÿÿúÖŽŽ�~~~~~~�~}~‘�‘�~�‘‘‘�~��~‘‘�‘¡‘~~‘‘~~‘¡~�‘‘¡¢¡‘‘‘‘¡‘�‘¡‘¡‘¡¡~¡¡¡‘¡‘¡¢¡¡¢¡¡¡¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¢¡¡£¢£¢¡¡£¢¡¡¢¢¦¦¡¢¡¢¦¦¢¡¢¢­øÿÿÿÿÿû­¢££¢¡¢¢£¦£¦£¢¢¡¡¦£¢£££££££££¦££¦£¡¦££¦£¢£¡£££¦¦¢£®¦¢£¢£¦££¦¢¡£¦£¡££££££¢¢£¦££¢¡£££££¦££¢££¡¢¡£¦£££¡¡££¢¢££¢¢££¢¡¢¡£¦£¢¡¢¡¡¡¡¢££¢¢¡¡¡¢£¢¡¢¡¡¡‘¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡~‘¡¡¢¡~�‘¡¢¡‘‘‘¡‘¡‘¡‘‘¡¡��‘‘���~‘‘~~‘‘‘¡~¡�~~~~~~~‘~�‘~~}~~‘~�‘~~}}~‘~}~~}~}}~~}~~}}}}~~}}}}~~}}}r}~}|}~}}|v}}}}}pšúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýB!!!!xÿÿÿÿÿÿá!!!!! !! !!! ! !!qªéýüýýúüüüüýýÿýúüúýúýüýúýúýúýúàÓ                                                                                                                      Ó×úóúúóúúúüóüóúúó÷ÿÿÿÿÿÿÿÿÿþÿÿûÖ�}}��‘~~~}}~‘‘~~‘�‘‘¡‘��‘‘¡‘~~}~�~~‘�~�¡¡‘~¡¡¡¡~‘‘�‘¡‘‘¡‘~‘¡‘��‘¡¡¡‘��¡¢¢£¢¦¡¡¡¡¡¡¡¡¡¢¢¡¡¢¡¡¡¡£¢¡¡¡¡££¢¡¡¢¡¢¢¢¢£¡¢£¢£¡¡­ûÿÿÿÿÿö­¢£££££¡£££¦¦££¡¢¦£¡£«£££¦££¢£¦£¢££®££¦£££££¦¦££¡¢¦£¢£¢£¦®®£¡¢££££¦£¦¦£££¡££££££¡¡¡¡¢££¡£®££¢¡¡££££¡££¡¡¡¢£££¡¢¢¢¡¡¡¢¡¢¡¡¡‘¡¢¡¡‘¡‘¡£¡‘¡¢¡£¢¡¡�¡¡¡¡¡¡¡‘‘¡¢¡¡‘¡‘¡¡¡¢¢‘‘¡‘¡¡¡¡¡¡¡�~~~‘¡¡¡‘�¡‘‘~~�¡¡‘¡‘‘¡¡‘‘~‘‘~~~~~�€�~}�‘~~~~~}}}}}~~}}‘‘~}}}~‘~}~~~}~~}}}~~}s}|}}}r}}}}|r}}}|s}|žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_!!!!Zÿÿÿÿÿÿñ!!!!!!!  !!!!!     qšëúýúüýüýúýúüþýýúýúüúýúüýúüüüüæÓ                                                         ×ÓúúúúúóüóóúúúúúúüÿÿÿÿÿÿþÿÿÿÿÿûÖ����‘‘€‘~}}~~‘~~~‘‘~�‘‘‘‘‘‘¡‘}~���~�‘�‘¡‘¡‘‘¡¡‘�‘¡€¡���¡¡‘¡¡�‘¡¡¡¡‘¡�‘¡¡¡¡¡¢¡¡¡¡¡¡¡‘¡¢¡¡¢£¡¡¡‘¡¢¡¡¡¡£¢¡¡¡£¢¢¢¢££¢¡¢£¢¡¡Öûÿÿÿÿÿõ°£££¢££¢£££¦£££¢¢£¢¡£®¦¡££££¢¦¦£¡£¦«¦£¢¦££¦£¦£¡£££¦££¦££¢£¦£££¢¢£¦££¦«¦££¡£££££££¢¢¢££¢¡£££££¡¢¦¦¢¢¢£¢¡¡¡££¢¢¢¡¢£¡‘¡¢¡¢¡¡¡¡¢£¡‘¡¢¡¡£¡¡¡¡¡¢¢¡¡¡¡‘¡‘¡¢¡¡�¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘‘‘¡¡¡����‘‘¡¡¡‘‘¡‘�‘~‘‘¡¡‘~¡¡‘��~~‘‘~~~�‘‘~~~~‘~~~}}~~}}~~}}~~~}~�}}�~~~~}~}~}}~}}}}}}}}p}}}p}r}w}~|||}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿx!=!Zÿÿÿÿÿÿò!!!!!!!!! !!! ! q¥éüýýýúýüýúýýÿýúüúüúýúýúúýúýúýàÓ                                                                                         Ó×óúóúóúúúüóúóúúóúþÿÿÿÿÿÿÿÿÿÿÿûÖ��‘~~‘‘~~~~~�‘�~~~~~‘‘‘‘~}~‘‘�‘¡¡‘‘¡¡¡¡¡¡¡¡¡‘‘‘¡‘�‘‘¡¡�‘¢¢¢¡¡£¦¢¡¢‘¡¡¡¡¡¡‘¡¡‘¡¡£££¡¡¡¢¢¡¢¢¢¢¡¡¡¡¢¢¢¡¡¡¡‘¡¢¢£¢¢¢¢¡¢¡¡£¡¡Ýþÿÿÿÿÿ륢£££¢¢¢£¢¢££££¢£££££¦£¡¡¡¡£¢¦££¢¦££¦¦£¢¦®®©¦¢¡£¦£®££¦¦®£¢£¦£¦££££¢¡£¦££¢¢£££¢£¦¦¦££¢£¢¡¡£¦£££££¢¡£¡¡¡£¦¢¢¢¢¢¢¦££¡¡££¡¡¢¡¢¢£££¡¡£¡¢¡¡£¡¡¢‘‘¡¢¢¡¡¡�¡¢¡¡¡‘�‘¡¡¡‘‘¡¡�‘‘¡¡¡�¡‘‘¡¡‘‘¡¡¡~~‘‘¡¡‘~‘¡¡¡‘‘¡~}~‘~~}~‘¡‘‘¡‘~~~~�}~�}~‘��‘¡���~}~}}}}~¡�}}}}~}}~}}~�}}p}~}r}}~}}r}}}}}}}|p}}žûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–!!!@úÿÿÿÿÿóY! !!!!!!!!!    9q¥èýúýúýüûüýúüþýýúýúýúýúýýúýúüüàÓ                                                                                ×ÖúúúúúúóúóúúüóüúüÿÿÿÿÿþÿÿþÿÿþûÖ�Ÿ�~~~��~~~�~�~~~~~‘�~‘¡~}~~‘‘‘¡¡~�¢¢¡¡¡‘¡¡¡�¡¡‘‘‘¡�¡�~¡¡¡¡¡¡¡¢¢¡¡‘‘¡¢‘¡¡¡¡¡¡¡¡¢¡¡¢£¡¡¢¢¢¡¢¢¡¢¡¡¡£¢�¡£¡¡¡¡¢££¢¢¡¡¢££¢¡¡Ýþÿÿÿÿÿꥣ££¢¡£££¢¢¢£¦£££££«¦¢¢¡¡¢¡¦¦£££¡¦££¦£¦¢£¦«¦££¢¦£££££¦¦¦£¢££££££££¢¢£¦££¢¢£¦¢¢¢£¦¦£¢¢¢¢¡££¦££¦£¡¢¢¡££¡£¦£¢¢¡¡¦¦¢¡¢¢¢£¡¡¢¡¢«£¡¢¡¡¡¡£¡¢£¡¡¢¡��££¡¡¡¡¡¡¡¡‘¡‘�¡£¡‘¡¡¡‘¡�¡¡¡‘‘‘¡¡‘¡¡‘‘‘�¡‘¡¡¡‘~~‘¡‘~¡¡�~�‘�~~~�‘‘‘‘‘~}}¡‘~~~}~~‘‘���‘~~}~~}}~~‘�~}}~}~~~}}}~~}}}~}}}~~}|}}}}}}}}}rvvšûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!! @óÿÿÿÿÿ÷Z!!!!!! ! !!!  ! pªèýýüýüýüýúýýÿýúüúýúýúüúüüúýúýàÓ                                                                                                 Ó×úóúóüóüóüóúúúóúúþÿÿÿÿÿÿÿÿÿÿÿþÖ��}~~~}�‘�‘¡‘‘�~‘‘¡‘~}~‘‘~~}~~¡¢‘~~¡‘‘�}~�‘‘¡¡¡¡¡‘¡¡¡¡€¡¡‘‘¡�‘‘‘¡¡¡¡£¡‘¡¡‘£¡¡¡¢¡��¡¡¡‘‘‘¡¡¡¢£££¡£¦¢¡¡£££££¦¦£££¡¢££¢£££åþÿÿÿÿÿꦢ¢¢¡¡£¦£¢£££££££££««££££££®®££¡£®£¢£££¢¢££¢£¦££¦®¦£¢¢¢¢¢£¦£££¦¦¦£¢¢¦£¢££¢£££££¦¦£££££££££¡¡¡¦¦¢¢¢¡£¦£¢¦£¡¡¡¡¢¢¡¡¡¢¢£££¦££¦¡¡¡¡£¡££¡¢¡¡¡£¦¡¡¦¦¡¢¢¢¢¡¢¡¡¡¢¡¡¢‘¡¢¡‘����¡¡‘¡��‘¡‘‘~~�¡¡¡�‘��~~�‘~~�¡‘�‘‘‘‘¡‘‘¡‘�~�¡~~¡‘~~~~‘‘~}}~}}~~~¡}}�}}}}}~~}}}~}}~}}}�~~}}}}}}p}~}r}}vr}}}}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!@óÿÿÿÿÿ÷_$!!!!!! !!!  !=sªëýúýúýúýüýúüþýýúýúüüüýüúýüüüüæ×                                                                                               ÓÓúúúúóúóüóúúúúúúüÿÿÿÿÿÿÿÿþÿÿÿûÖ��}}~}~‘‘~‘¡‘~€‘‘‘‘�~‘‘~~��~~�‘¡‘��‘‘~�~~‘‘¡¡‘�¡¢¡�¡¡¡¡‘~‘¡¡‘¡‘¡�¡¡¡¢¡¡¡�‘£¡¡¡¡¡‘¡‘¡¡¡¡�¡¡¡¢¢¢£¢¢£¢¡¡¡£££¦¦¢££¢¢£¢¢¢£££åþÿÿÿÿÿꦢ££¢¡£«££¢¢¢¢£®¦£¦£¦££££¦£¦¦¦£¢£«££££££¢£¦¢¢¦¦£¦¦£¦£¢¡¢¢£«£££¦£©¦¢¢£¦¢¡£¦¢££¦¦£££¢£££¦«£¡¡¡£¦«¡¢£¢£¦¢¢££¢¡££¡¡¡¡¡£¡¡¢¦££¢¢¡¡¡¡¢¢¢£¡¢¡�¡¦¦¢£¡¡¢¡¢¢¡¡¡¡¡¡¢¡¡¡‘‘¡¢¡�‘¡‘¡¡‘�‘‘¡‘‘‘~~¡¡¡‘‘‘‘~~~‘�~~‘�‘‘‘�‘¡‘~‘‘‘‘~‘‘�~‘‘~~}~¡‘}}~�~}~~�‘}}‘~~‘}}}~~|}}~~~}}}~‘~}}}}}}}}}}}}}}|}}}|}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@÷ÿÿÿÿÿ÷[!!!!!!!! !   !sªèüüýýýýúýúýýÿýúüüüúýúüúýúýúýúàÓ                                                                                         Ó×óúóúúúúóüóüóúúúóÿÿÿþÿÿÿÿÿþÿÿûÖ��~~~~~~~~~‘~~‘‘~~}�¡¡¡��‘‘‘¡‘�‘‘‘‘¡¡‘‘‘‘‘�¡¡�‘¡¢¡‘‘¡¡¡¡¡¡£¡‘¡¡‘�‘‘�¢¢¢¡�¡¦£¡¡¢£¡¡£¡££¡¡¡¢¢£¢¡¡‘¡¡¢¢¢¡¡¢¢¢¡¡¡¡¢¢¢¢¢¢¢££Ýþÿÿÿÿÿ릢¡£££¦¦££¦££¡¢¦£¦££¢££¢£®££££££¢¢£¦££«®£¦«©££¦¢££¢£¢££££¢¦¦¢¢£¢¦«£¢£¦£¢£¦¦¦«®£¢¢¢££¦££¦¦££££¦£¡¢¦£££¡¡¢¢¢¢£¦¦¦¦£¢££££¢¡£¡¡¡¡¡¢¡¡¡¡££¡�‘¢¡¡¡¡‘¡¡¢¢‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡�¡¡¡¡¡¡¡‘�¡‘‘¡¡‘‘¡‘‘‘¡‘‘‘���~~�‘~}~�~~~~~}‘‘~~~~}‘¡‘‘‘~}}~~~�~}~}~�~}}}}}}~~~}}~}|}}}}}}}~}}||}}}}}}~}}~§úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@óÿÿÿÿÿ÷Z !!!!!!!!  !!! qªëûýúüúüýýýúýþýüúüûüüüûüüüüüüüæÓ                                                                                        ÔÓúüúúúóúúúúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖŸ�}~~~�~~‘~}~��‘~}~¡¡¡¡‘‘‘¡¡¡~‘‘‘�‘¡¡‘‘¡¡~~‘�‘‘¡¡¡¡¡¡¡¡¡‘¡£¡�¡¡¡¡¡�‘¡¡£¡¡¡¦¦¡¡££¡¡¢¡¢£¡¡¡¡¢¢¢¡¡‘¡¢¢¢¢¡¡¡¢¢¢¡¡¡¢¢¢¢¢££¢£Ýþÿÿÿÿÿ뫦¢£¦¦¦¦¢££¢¢£¢¡£¦£££££££¦¦££¢¢££££¦£¦®«¦¦£¦®£££¡¢££¢£££££¦«¢¡¢£¦«££££¦££££¦««£¡£££®¦¦££££¦££¦£££££¢¢¢¢¢¢¢¢£¦¦¦¦¢¢¢£££¡¢¦¡¡¡¡¡£¢‘¡¢¢£¡¡¡¢¢‘¡�Ÿ¡¡¢£‘�¢¢¢¡¡‘‘¡¡¢‘¡¡¡¡¡¡��‘¡¢¡¡¡¡‘¡€‘‘¡¡‘‘¡¡‘‘¡�‘‘‘~~‘‘‘~~~~~‘~~~�~}~‘~~�}~~‘¡¡~~}}~‘~}~~~}~¡}}~}}~}~~}}}~}s}}}}s|}}~}}}}}}}}~}}~~§úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@÷ÿÿÿÿÿ÷Z!!!!!! !!!! !!   !qªèüüýýýýüúýúýÿýüüýüüüúüüüüüúýüàÓ                                                                                             Ó×úóúóúúüóüóúúúúóüþÿÿÿÿÿÿÿÿÿÿÿûÖ���}}�‘‘‘¡‘~~‘‘~~}~‘~}~~�¡‘‘�~~��‘¡¡�~‘¡¡‘‘¡‘‘¡¡‘‘¡¡‘‘‘¡�¡¢¡�‘¡¡¡¡�¡¢‘¡¢¡‘¡¡‘¡¢£¡‘¡¡¡¢¡¢¡¢£¡¡¡¡¡¢£¢¡¢¢¢¢¡¢£¢££¡¡¡¢¢££¢¢åþÿÿÿÿÿꥢ£££££££¢¢¢¦®¦£££¢¢¢££¡£¦«¦£££££¢¢£¦®®££¢¢¦®££¦£¦®¦££®¦££¦©££££¦¦£¦£¡£©£££¢£££¡¢£££££¦££¡¡¢¢££££¢£¢¢£££¦¦££¢¡¡¡££¡¢¡¡¡£¦¢¢£¡¢£¢¡¡¡¡¢¢¡¡¢¡¡¡‘‘¢¡¢¢‘�¡¢¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡‘‘‘‘¡¢¡¡¡¡‘¡¡‘‘¡~~‘¡‘��‘¡¡¡‘‘~~�~‘‘�‘‘�~~~~}~‘�‘~}~~}~~~~~}~‘~~~~}}~‘�}~}~�~}}}~~}|}}}}~|s}}}~}r}}}}}}}r}}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@óÿÿÿÿÿ÷Z!!!! !!!!!! !!   =sªíüýüúüüûýýüýþýýúúüúüüýúýúýüüüæÓ                                                                             ×ÓúúúúúúóúúúúúúúúüÿÿÿÿÿÿþÿÿþÿÿûÖ���~~‘¡¡~‘�}~�‘‘~~~�~~~�‘‘¡‘‘~~‘‘¡¡‘~�‘¡¡¡‘¡¡~�¡¡�¡¡¡¡¡¡‘¡¡¡‘‘¡¡¡‘¡¡¡‘¢£¡‘¡¡¡¢¡¡¡‘¡¢¡¡¡¢¡¡¢¡¢£¡¡¢¦¢¡¢££¡¡¢¢£¢¢¢¡¢££££¢¢Úþÿÿÿÿÿꢡ¦®££¢££¡¢£¦««££££¡¢£££££¦¦£¦®£¡£££®¦¦£¡££¦¦££¦£¦®«£¦®«£££¦¦«¦£££¦¦£¢£¦£££££££¢££££¢£¦£¢¡¢££¢¢£¢¢£¢¢££¦¦££¦£¡¡¡¢££¡¡¡£¢¡¢£¢¢£¢¡¦¡¡‘¦¢¢¢¡¡¡¡‘‘£¡¡¡¡‘¡¡¢¡¡�¡¦¡‘‘¡¡¡¡¡¡�¡��¡¢¡¡¡‘‘‘‘‘¡�‘‘‘‘‘~�‘¡¡‘‘�~�~~~¡¡‘¡~~~~~�~}~‘~}}‘~}~~~~~~~~‘~}}}}�‘}~~}‘~}}}��}|}~}~~}|}}}}}}|}}}pp}|}}šúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ !!!@÷ÿÿÿÿÿ÷Z!!!!!! !! !! !!  $q¥èýüýýýûüüüûýÿýúýüûýúýúüüýúýúýàÓ                                                                                         Ó×óúóúóúúüóúúóúúú÷ÿÿÿÿÿÿÿÿÿÿÿÿûÖŸ�~~~~~‘~~~~‘~~‘‘�‘¡‘���‘‘~~~‘‘¡¡‘‘~‘‘‘¡¡�‘‘¡‘~‘¡‘��~¡¢¡¡‘‘¡¡¡¡¡¡¢¡¡‘¡¡¡�¡¡¡¢¢‘¡¡¡£¡¡¡¢¢¢¡¡¡¡£¢¡¢¦£¡¢¢¢¡¡¢¢¢£¢£¢¡¢¢¦£££åþÿÿÿÿÿ릡£££¢¢££££¦£¢¢¢£¦¦¦¦£¢££££££¦©££¦¦¦¦£££¢£££¦¦£©£¦®¦££¦¦£££¢¢££¦¦£££££¦®£¢£¦£££¢£¦¦¦£¡¢££¡¢«¦¦££££¢¢¢¢¢¢¢¡¡¢£¢¡£¢££¢¢££¡¡¡¢¢¡¡¡¢¦¢�¡¦£¢¢¡¡¡£¡¡¦£¢¢¢¢¡¡¡¢¡‘¡¢¡‘¡‘‘‘¡¡¡¡¡¡¡‘‘�‘‘‘¡‘¡‘¡‘¡‘�‘‘�‘~�‘��‘�‘¡¡‘~‘‘�‘‘‘¡‘¡¡~~¡‘�‘¡¡~~~~~‘~}}~}}~~~}}s}}~‘}~~}}}}r}~}}~}}~~}}}}~}}}}p}}|}žúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿóZ!!!!!!!!!!! !!!!  !=}ªëüýúüüüüýüüýþýüüüüúüüüüûüüýüüàÓ                                                                                                                              ÓÔüúúúüúúóüóúúúúóüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��}~�~~‘‘~~‘�~~~¡‘¡¡‘~~~‘¡�~~‘¡‘‘¡~‘¡‘‘¡‘‘¡‘¡¡‘‘�¡¡�~¡¡¡‘�¡¡¡¡‘¡¡¢¢¡¡¡‘‘¡‘¡¡¢¡¡¡¡¡£¡¡¢¢¡¡¡¡¢¢£¢¡¢£¢¡¢£¢¡¢¡¢£¢££¢¢¡£££££Ýþÿÿÿÿÿ륡¢££¢¢££¢¦¦£££¡¢¦«¦¦£££¢££¢¢££££«¦¦®££¦¦£¢£¦¦£©¦¦®¦¢£¦¦£¦¦£¡¡£®££££¦®¦¦¦£¦¦¦¦£¢£¦£££¢¢££¡££¦¦¦£££££¢¡¡¡¢¢¢¢¢¡¢££££¢££¡¡¡¡¡¢‘¡¢¢£¡¡¡¢£¡¡¡¢¡¡¡¢¦¢¡¡££¡¡¡¡¡¡¡¡¡¡¡‘�‘‘‘¡¢¢¡¡‘�~�¡‘¡¡‘¡¡¡~~~‘¡‘~~‘‘‘‘�~¡¡¡‘‘~�~~~‘¡¡‘‘~‘‘‘‘¡‘‘~~�~~‘~}}}}~~~~}}}}~~~}}‘~}}}}}}}}~}}~}}}}}~}}r}}}}}}™úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$! @óÿÿÿÿÿ÷]!!!!!!! !!  !!   =sªèýüýýýüýüýýýÿýüúüúüýúýüüüüüüýàÓ                                                                                                                                  Ó×óúóúóúúúúúúúúúúúÿÿÿÿÿÿÿÿÿÿÿÿþÖ �~~~~~�~}~�~~~}~‘‘‘�~�‘‘¡‘~‘¡����‘¡‘~‘¡¡¡‘~�¡¡¡¡¡¦¡~‘¡¡¡¡‘¡¢¡¡¡¡‘¡¢¢£¡¡¡¡¢¡¢¢¢¢¡¡¢¡¡¢¢£¢¡¢£¡£¡¡¡¢¢¢¢£¢£¦¢¢¢£¦¦£¢¢¡££¢£åþÿÿÿÿÿꦣ£¦££££¢¡£«£¦£¡£¦££££££¦¦£££¦£¢¢£¦®¦£££¦¦£¦¦£¢¢££¦£¢¢£¦®¦¦£££¦®££££¦¦£¢££¦«££¢¢¦«¦£¢¢££££££¢£¢¡¢£¦¦£¢¢¢¢¦££¦£¡¡¡££££¡¡¡£¢¢¢¡¢¢¡¢¢¢£¢¢¡£££¡¡¡‘¡¢¡¡¡£¡¡‘�¡¡¡¢¡¡¡¡¡¡¡‘‘¢¡¡¡�¡¡‘¡‘¡¡~~‘¡¡¡¡�‘¡¡‘¡¡‘‘~}~¡‘�~~~~‘~~‘~~~}~�‘�~~~}}~�~~}~‘‘‘¥žš§§¥§§§šš§š™™™¥™™‘™š™‘™‘™‘™‘‘‘����‘‘€ÓûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷Z!!!!!!!!!!     =q¥ëüýúýúýüûüúýþþúýúýúüüüüüûüüüüæÓ                                                                                                                          ×ÕüúúúüóüóúúúúúúúüÿÿÿÿÿÿÿþÿÿÿÿûÖ¢��}}~~~}}~‘~�~}~‘�~�‘‘�‘��~‘¡‘~‘~�¡‘~‘¡¡‘‘�‘¡¡¡¡¢¢¡��‘¡¢¡�¡£¡¡¡¡¡¡¡¦£¡£¡¡£¢¡££¢¡¡¡¡¡¢£¦¦¡¢£¡¡¢¡¢¢¢¢¢£¢£¦¢¢¢£¦¦££¢¡¢¢¢£Ýþÿÿÿÿÿꫦ££££¦££¢£¦¦££¡£¦££££££¦£££¦®£¢¢¦®«£¢¡¢¦¦¦¦¦£¢££££¦££¢£©®££££¦¦£©£¢£¦¢¡£«¦££¢¢£¦¦¦£££££¦¦¦££¡¡¢¡£¦¢¡¢¢¢££¦£¦£¢¡¢£¦¢‘¢£¡¢¢¡¢¡¢¡¡¢¡£¢¡¡¢¢¦£¡¡¡¡¡£¡¡¡¡¡‘¡¡¡¡¢¡¡¡¡‘¡¡¡��¡¡¡�‘¡¡‘¡¡�‘‘~¡¡¡¡¡‘‘¡‘‘¡¡‘~~~‘¡‘~~~~~‘‘~~}~~}~‘‘~}~~}~~‘}}}~‘‘¡ëõõõõõõõõõõõõõíõõíííõëíèèèèëèèèèèèæèèèèâèèõþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Bóÿÿÿÿÿ÷Z!!!!!!! ! ! ! !9s¥éüüýüýüûüýüýÿýüüýúýúýüúýüüýúýàÓ                                                                                                                                                   ÓÓóúúóúúúúúóúúúúú÷ÿÿÿÿÿÿÿÿÿÿÿÿýÖ�‘��~~‘¡~~‘‘��~~‘‘‘~‘¡‘�~~~~~¡‘‘¡‘‘¡¡‘~¡¡¡¡���‘‘‘¡¡‘‘¡¡¡£‘~‘¢¡¡¡¡¡‘‘¢¡¡¡��¡¡¡¡¡¡¡¡¡¡¢¢¡¢¡¡£¦££¢¢¡¢¢¡¡¢££¡¡¢¢¡¢¢¢¢¢¢£££¢åþÿÿÿÿÿ릣£¢¢££¦¦£££££¦£££¦¦¦¦¦©££££¢£¦¦£¦¦££¦£¦¦«£££££¦®¦¦¦££¢£¦£¢£®¦©¦££££®¦£¢«®££¦¦«£££££££££¢££££££££££¡£¦£¦£¢£¡¡¡¡¢¢£¦¡¡¢«££¢¡¢¡¡¡¢¦¦£¢¡¡¡¡¢£¡¡¡¡¡¢¡£¡¡¢¢¢¡¡¡¡�‘¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡‘¡¡‘‘¡¡¡¡¡‘���~��¡¡‘‘‘~¡¡‘‘‘‘�‘‘¡¡‘�~~}~‘�~~��}~}‘~~�~~}}ýÿÿõ÷ø÷ú÷ûúûúûýýýþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@òÿÿÿÿÿ÷]!!!!!!! !!!! !!!=qšëüýüýüýüýüüýþýûúüýúýúýüýúýüüüæÓ                                                                                                                                            Ô×úüóüúúúúúúüúóüúüÿÿÿÿÿÿÿÿÿÿþÿûÖ��‘‘�~‘‘~�‘~~~‘‘‘~~‘‘‘‘~~~�~~‘‘‘¡¡‘‘¡¡‘‘¡¡¡‘~‘¡‘�¡¡‘‘¡¡¢¡¡�‘¡¢¢¡¡¡¡¡¡¡‘¡¡‘¡‘¡¡‘¡¡¡¡¡£¦¡¡¡¢¦«¦¢¢¢¡¡¢¢¡£££¡¡££¢¢¢¢¢¢£££¢¡Ýþÿÿÿÿÿꦦ¢¢¢¢£¦¦££££¦¦£¢£¦®¦£¦®¦£¦£¢£««£¦¦¢£®®¦£®¦£££¦®¦¦¦¦£££¦¦£¢£®¦¦£¦££¦¦££¢¦«£¢¦®«¦£¢£¦¦©£¢¡¢£¢¢££££¢¡¢¦¦£££¢¢¢¡¡¢¡¢££¢¡¢££¦¢£¢¡¡¡¡«¦£¢¡¡¡‘¢¡£¢¡¡¡¢‘¢¢¡£¦¢¡¡¡‘¡‘¡‘¡¡¡¡¡¡‘�¡¡¡¡¡‘‘‘�‘‘‘¡¢¡‘�~~~~‘¡¡‘¡‘�‘¡¡¡‘~��‘¡¡¡‘}~�~}~~~~~}}~�~~‘}}}~þÿõ§§§§§§§ÓÓÒÓÔÓØÚØÚÙÙÚÚàæààèèèèèèëõëôõõõõõ÷úúûúûýýýýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!Cóÿÿÿÿÿ÷_!!!!!!!!!!!! !!!     !!q¥éüüýüýúýüýúýÿýüüüüüüýúýúýüüüýàÓ                                                                                                                                                     ÓÓúóüóúúúúúóúúúúúúÿÿÿÿÿÿÿÿÿÿÿÿûÖ��~~~}�¡‘€�‘��‘¡~~�‘��‘‘¡¡‘��¡¡‘��‘‘‘‘¡‘�‘‘‘¡¡¡��¡¡‘�¡‘‘¡¡¡¡¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡£¢¡¢¡¡¡¢¢¡‘¢¢¡¡¡¡¢££¡¡¢¢¢¡£££¡¢£¦££¦¦££££¦åþÿÿÿÿÿ릢£££££££¦£££££££££®¦££©¦£¦£££££¦«®£££®£¡£££¦®££££££££££££¢£¦¦£££¦¦«££££«®¢¡££¢¢¢££¦¦©££££££££££££¦¦£¡¡£¢¢£££££££¢¢¢¢£££¦¢¢¡¢£¡¡¢¢¢¡¡¡¡¡¡¡¢¢¡¡££¡‘¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡�‘¡‘¡¡¡¡¡¡¡�‘¡¡¡�¡‘¡¡‘¡‘‘‘‘�~~~�~�~~‘‘‘‘~‘‘~�¡�}}�~�~��‘~}~�~‘‘‘ÿÿæ‘‘~€}|}‘~}}}}}}}}}}}}‘~}}}}‘‘�¥™™™™™™š§§žž§ÓÒÓÓÓÓÓÊ×ÙÚàààààèëèôèõõõ÷÷÷úúüýýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!!@óÿÿÿÿÿ÷Z!! !!!  !! =sšëýýüýüýúýüýüÿýúüüüüûüüýüüúýüüæÓ                                                                                                                                       ×ÙúúúúúúóúúúüúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��Ž}~~~~‘‘€‘‘‘¡‘~~‘¡~~‘¡¡‘‘‘‘�‘¡‘~‘‘‘�‘¡��‘¡¡¡‘‘¡�‘�‘¡‘‘¡¡¡¡¡��¡¡¡‘‘¡¡‘¡¡¡¡¡¢£¢¡££¡¡¡¡¡¢¢¡¡¡¢¢¢£¢¡¡¡¢¢¢£¦£¢£££¢£¦¦££££¦êþÿÿÿÿÿꥢ£¦£££¦££¦£¦¦££¦£¦«¦££¦££££¦£¢£®«£¦££©¢¡£££®«¢££££££££££¦££¦¦££££®®££¦®®«£¢¢¢¢¢¢¢£©¦¦£££££¦¦££¦¦£¦«¦¢¡££¡¡¦¦¢£££¢¡¢£££££¢¡¡¡£¢¡¡¡¢¢¡¡¡¢¡¡££¡¡££¡‘‘�¡¡‘¡¡¡¡£¡‘¡‘¡¢‘¡¡‘¡¡�‘‘¡¡¡¡¡‘‘¡¡‘¡¡¡¡¡‘‘¡‘¡~~~~~}~~�‘‘‘�~~~~‘‘‘~}~~~‘‘~¡‘~}}~~‘‘¤ÿÿÚ‘}}~}}}~‘}}}}}~~~}}}~~~}}}|}}}v}~}}}}sv}}|}}}}|}~}|ppp}}vvwww�™�˜™™šžšžž§ÇÓÊÓ×ÙÙààèèõõ÷ýýÿÿÿÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Bóÿÿÿÿÿ÷x!!!!!!! !!!!  =s¥éüúýúýüýüýúýþýüüüúýüüüüüüýüüýàÓ                                                                                                                      ÓÓóüóúúúüóúúúúúúúúÿÿÿÿÿÿÿÿÿÿÿÿþÖ ‘~}~~~~~~~�~}~‘�~~‘�}�‘��‘¡¡‘‘¡¡‘‘¡¡~‘‘¡¡‘���‘¡¡‘~¡~¡¡¡¡¡¢¡¡¡‘‘¡¡¡¡¢¢¡¡¡¡£¢££¡¡¢£¡¢¢¡££¡¡¡¢¢¡¡¡¢¡¢¡¡¢¢££££££¡££¢¢£££¢£åþÿÿÿÿÿꦣ¦®£££¦£¢£¢£¦££££££¦¢£¦¦¦¦¦¦¢£®®¢£¦¦¦©©£©¦¦®¦¢£®¦©¦¦®££«¦££¦¦££¦¦¦¦££££¦«¦¦¦£¦£££¦«¦¦¦¦£¢£«¦¡£¦¦¢¢££¢¢«¦¢¡£¦£¢¦¦¡¡¢£¢¡¡¢£¢¢¢¢££¡¢¢¡££¦¦¡¡¡¢��¢£¡¡¡¡¡£¡‘¡¡¢¦¡¡¡�¡¢¡‘‘�‘¡¡¡¡¡‘¡‘‘‘¡¡‘‘‘¡����¡‘‘¡¡¡¡¡¡‘‘‘‘‘‘�~~~~~��~~~~~~‘‘�~~~~~~~‘~‘ÿÿÓ~}~~�}~~}}}~~}}~}}}~}}}}}}}~}}}}}}}~}}}}}}r}}}pp}}v}}}}}}|}wvv}|vpvvvv|ppvpvppv|v}{˜˜žžÊ×àæþÿÿòžõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!!!!! !!  =sšëýýýýüýüûýüýÿþüüûýüúýüüýüüúýüæÓ                                                                                                                                                                      ÓÓüúúúúúúúüúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ �~~~~~~}~~~~~~�~~~�~�‘‘~~‘¡¡‘‘‘¡‘¡¡‘‘¡¡‘‘‘~~‘¡¡¡‘¡‘�‘¢¡¡¡¡‘¡¡‘‘�¡¦¢¡¡¢¡¡£¢¡£¢¡¡£¢¡¢£¢£¡¡¡¡¢¡¡¡¢¡¡£¡¡¡¡¢££££¢¢£¦£¡£¦£¢£åþÿÿÿÿÿꦢ¦«¦¦£££¢¢£¢£££££££¦££¦¦«££¦££®¦£¢¦¦¦¦®®®¦®®®¢£¦£®®¦®¦£¦¦££££¦©®®¦££¡£££¦¦®®¦¦®££®®¦££¦£££¦£¢£¦£¢¡££¢¢¦¦¢¡££¢£¦£¡¡¢¢¢¡¡££¡¢£¡¢£££¢¡£¦«¦¡¡¡¡¡¡¡¢¡‘¡¡¡¢¢�¡£¢¢¡¡¡‘‘¡¡¡‘¡‘¡¡¡¡‘¡‘¡¡¡¡¡‘‘¡�~‘€‘‘‘�¡¡¡¡¡¡¡¡‘~�‘~~~~~~~‘��~~~~‘‘€�}}~~~~~}šÿÿ¥}~}~‘�}~}}}}~}}}}|}}}}}~‘~~~}|}}}|}}~}}}}}}v|vvrv|p}}}}}}}v|ppppv|pp}pppvrv}ppp|vv}ppppvpop}wúÿÿžoÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Cóÿÿÿÿÿ÷]!!!!!!!!!!!  !!!  !9q¥éüüüüýüýüüýýýýüúüüüýüüûüüýýüýàÓ                                                                                                                                                                          Ó×óúúúóüóúúóüúúúúúÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~‘‘¡‘~~��~~�‘‘~‘¡¡‘~�‘‘‘¡‘¡¡‘‘�~‘¡¡�~¡‘¡‘~¡¡¡¡¡¡¡‘¡¡‘‘¡‘¡¡¡¡¡‘‘¢¢�¡¡¡‘¡�‘¢¢¡‘¢£¡¡¡¡¡¡¡¡££¡¡¢¦£¡¢¡£££¢¡¢¢¢¢¢¢££¢¡££££åþÿÿÿÿÿ릢£££££££££¦¦®¦¢£¦¦££¢£¦£¦£¦£££®®££¦®£¢¦«£¢£®££¦©¦®®£££¦¦©®¦¢£¦£¦®££££££££¦££¢¦«¦££¦£¡£¦¦££££¢£¦¦££££¢¢¢£¦£££¢¢¢£¢¢££¢¢££¡¡£¦¢¡¢¢¡¡¢£¡¢¡¡¢¢¡¢¡¢¡¡¡¢£¡¡¡‘¡¦¡¡¡‘¡¡¡¡‘¡¡¢¡¢¡‘‘�~¡‘‘�‘‘��‘¡¡¡‘‘‘¡¡‘‘��~‘¡�~‘~~‘‘¡¡�‘~~‘‘¡‘‘‘‘‘�‘~~‘‘~~}}šÿÿ™}~~}}~~}}}~~~~}~}}}}}}}}~~}}}}}}r}|s}}}}|||}}}}}}}v|}}}v||vr}}|v}}pvr}pv|||v|pv}pppvppvvppp}vüÿÿp™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷[!! !!! !!!!  !! 7qšëýýýýúýüüýüüÿýýüýúüüýüüüüüúýüæÓ                                                                                                                                                                  ÓÓüúúúúúúúúúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���‘¡¡‘‘‘‘‘�‘�~�‘�‘¡¡‘~¡¡‘‘‘‘‘¡¡‘~~¡¡‘���¡¡¡�¡¡¡‘¡¡¡¡‘¡¡‘¡¡¢¢¡¡¡¢¡¡¡‘��¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡£¦¢¡¡£¡¢¢¢£££¢¢££¢¢¢¢¦«¢¡££££Ýþÿÿÿÿÿꦢ£££££££¢£¦®¦¦¢£«¦£¢¢£®¦££££®«¦¦¦¦¦®¦££¢£££¦£¦¦¦¦®®£££©®®¦£££¦££¦££¦££££¦££¢¢£®¦¢¢£¢£££¦££££¢¢¦¦£¦¦¢¢¢¢£¦¦£¢¢¢¡¢¢£¢¢£¦¦¢¡¡£¢¡¡¡¡¡¡££¡¡¢¡££¡¢¡¢¡¡¢¡£¢¡¡�¢¢¡‘¡¡¡‘¡‘��¡£¢¢¢¡Ÿ‘�‘¡¡‘‘���¡¡¡‘‘�¡¡¡¡‘~~�‘‘~~‘~~~¡¡¡‘�~~‘¡‘‘‘‘‘~‘‘~~‘‘~}~~§ÿý‘}~}}}~~}}}~~~}}}~}~}}r|}~}}}}}s||}v}}}s}r||}}}|}}|p}}ppp}|pvv}p|}||rvpv|}}p}|}}vpppppv|pppvvvýÿ÷voÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Bóÿÿÿÿÿ÷_!!!! !!!! ! !q¥éúýúýýüýüüýýþýüúýüýúüüüüýûüüýàÓ                                                                                                                                                                                         Ó×óúóúúúúúüúúúúüóüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��‘‘~~~~~‘~~‘‘‘}~~‘¡‘~~¡‘‘�~���‘�~‘¡‘�‘‘‘¡¡‘‘¡¢‘¡¡¢¡¡¡¡¡�‘‘¡¡¡‘‘£¢¡¡¡¡¡¡¢¡¢£¡¡¡¡¢£¡¡¡¡¢£¡‘¡£¢¡£¢££££¢¢¢£¢¢¢¡¢£¢££¡¡¢£««åþÿÿÿÿÿ릢£¦£¢£££££¦££££¦®¦£££¦®®£¦£¢¦«££¦¦¦®£££¡££¦¦£®¦££«£££®£®¦¦¦££¦¦¦«££¦©££¦¦¦¦£¢£££¢££¦¦£¢¢££¦£££¦£¡¢££¦¦£¢£¦£¢££¢¢¢¢¢¡££¢££¦¢¡¢¢¢¢¡¡¡¢¢¢¢¡¡¡¡££££¢¢¡¡¡¡¡¡¡¡¡¡¢£¡¡¡¡¡¡¡£¡¡‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡���~‘‘‘‘�~‘‘�‘‘¡‘‘‘‘~~~‘~~�‘�~~�~~~‘~}~~~~~~~Óÿû‘~}~~}~~}~~~}}}~~}~}}}}}}~}}}}}|}}}}}}||}}}rp}|s}~}}||}vr}}|v}||pv||vvv|}vvppp|p|ppvpv}pppvpppýÿè}vvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷Z!!!!!!!!! ! ! =sªíýüýýüýüüýüüÿþúýúýüüýüýüüüýýüàÓ                                                                                                                                                                    ÓÔüüúúúúúúúúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖŸ�¡‘~}}~~‘‘‘‘‘�~~�~‘~~�‘‘~~~‘‘��~~¡¡‘~‘¡¡¡¢¡¡¡¡¡¡¢¡¡£¡‘¡¡¡�‘¢¡‘�¢£¡¡¡¢¡¦£¡¢¦¢¡¡¢¡¢¡¡¡¦£¢¢¡¡¢£££££¦¦£¢££¢££¢¢£¦£¢¢¢¢££¦¦Ýþÿÿÿÿÿê«££££££¦££¦®£¢£¦«¦£¢¦®®¦®¦©£¢££££¦®®¦£££¢££¦£¦®¦¢£¦££®¦¦£¦®¦££¦®¦£¦¦¦¦¦£®®¦¦£££¢¢¡£¦®£¢¢¢¢£¦££¦¦£¡¢£¦£¦£¢¢¦¦£¢¢¢£¢£¡¡£¡¡¦¦¦¢¡£¡¡£¡¡¡¢¢¢¢¡¡¡££¦££¢¢¡¡¡¡¡¡¡¡¡¡¢¢£¡¡¡¡¡¢¢¡‘‘‘¡‘¡‘¡¡¡¡¡¡¡¡‘~��~�‘��~�¡¡‘�¡¡¡‘¡‘~~}~�‘‘~~~~€~~~~}}~~~~‘~~Ôÿõ‘~~~‘~}}}}~~~}}~~}}}|}s}}s}~~}}r}}}}~}}p}}}vv}}|}}~}p}prv}}p}v}pp}}vpp}|v|vvppppvv}rv||vppppv|ýÿà}puÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!$!!Zóÿÿÿÿÿ÷[!!!!!!!!! !   ! !=}ªèýûüüýúýýúýýþýýüüüýüüüúýûüüüýàÓ                                                                                                                                                                          ×Óúóúúúúúúúúúúúúú÷ÿÿÿÿÿÿÿÿÿÿÿÿýÖ �~�~~~~‘�~‘~~~}~¡¡‘‘~‘¡‘‘‘‘‘‘‘‘‘‘‘‘¡�‘‘‘¡¡�‘‘‘¡¡‘�¡¡‘�¡¡¡�¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢¦¡¡££¢¡¡¢¢£¢¢¡£¢££¡¢¢¢¢¢££¢¢¢£¢¢££åþÿÿÿÿÿ릫£¢¦£¦®£¢£¦£¢£¦¦££¢¢«¦£¦£¦£¦¦¦££¦£¦¦¦®©£®¦£££®¦££®©££¦®££®®¦£®®££¦¦¦¦££¦¦¦¦¦¦¦££££¦£¢££¦££«¦£££¦££££¡¢£££¢££¢¢¢¢¢££¡¡¡¢£¢¦¢£¡¡£«£¡¡¢¢¡¢¡¡¢¢¡¡¡¡¡¡¢¢¡‘¡¢¡¡¡¡¡�¡¡¡¢¡�‘¡‘¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡¡‘‘¡¡¡‘‘�~�‘‘�‘¡�~~�‘‘�~‘‘‘}~�~‘��~}~~}~~~�}~×ÿõ‘~}~‘~}~�~}}~~|}~~~~s}}~}|~}s}}}}~}r}}}}}}}}}||p}}}}}v}}}}}}r}vrv}}||}}|v|pp}ppv|pvvppvpprppvwýÿÓvopÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!$!@óÿÿÿÿÿ÷Z!!!!! !!!! ! !!qªëýüýûýýýüýüüÿþúýüýúýúýüüüýüýüæÓ                                                                                                                                                          ÓÓüúúúúúúúúúüóüúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ Ž~~}~~~‘‘}~~~~~�‘‘¡‘‘‘¡‘¡¡‘�‘‘‘¡‘¡‘‘‘¡�~¡¡‘¡�~~�‘¡¡‘�~�¡‘¡¡‘¡££¡¡�¡¡¡¡¢‘¡¢¡¡¡¡¡¡¡¡££¢¡¡£¢¢¡¡¡¢¢¡¡¡¡££¢¢¢¡£¡¡¢£¡¡£¦¢¡££Ýþÿÿÿÿÿꦦ¦£¦®®®¦¢£¦££££££¦£¢¦¦¢¢£¦£¦¦©££¦£££®®¦¦¦©£¢£¦¦£¦®£¦£®®¦©¦®«£®¦£££¦¦©£¢£®¦®®«¦¦®©¦¦£¢£¦¦£££¦£££®¦£££¡¡£¦££¢££¢¢£¡£¦¢¢¡£¡¡¡¢£¢¢£££££¡¡¡£££¢£‘¡¡¢¡¡¢£¡¡¡¡££¡¡���‘¡¡¡����‘¡¡¢££¡¡‘‘‘¡��¡¡¡¡¡¡¡‘‘‘‘~‘‘¡~�~~~~‘¡‘‘~�‘‘‘‘~~‘‘‘~~‘�~~}~~}~Úÿë‘}~�‘~~‘�~}}}}}}}~~~}}~~}}}}|}}}}}}p}}~}}~}}}}p}|}}s|}}}}~~}}}vv}}||}}|vppp|v|pp|vvpppvpp|vppþÿžplvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@óÿÿÿÿÿ÷_ !!! !!!!!! !!    !q¥éüüýüüüüýúýýþýüüüüüüýüýýýüýüýàÓ                                                                                                                                                                   Ó×óúüóüúúúúúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ�~~�~~~~�‘�~�‘��‘‘‘~~~�‘‘‘‘�‘¡‘¡¡‘��¡¡¡‘‘¡¡‘¡‘¡¡‘¡¡‘¡¡¡¡¡¡¢¡�¡¦¡¡¡¡¡¡¡£¢¡¡¢¡¡¡££¢¡¢¢¢¡£¡¡¡£¦£££££¡¡££££££¡¢£¢££££££¢¡££åþÿÿÿÿÿ릦££¦«£¦£¡£®«¦¦££££££®¦££¦®¦®¦¦££¦£¦£®®¦£¦®©£¦£¦®££¦®£¦¦¦¦£¦££«®££¦¦¦©££¦¦££££¦££££®£££¦¦¦£¦£££££¦¦¦¦££¢£¢¡£¦£££££¢£¡£££££¢¡¢¢££¡¢¦£¡¢¡¡¢¢¢¢¡¡¡¢¡‘¢£¡¡¡�¡¢¡¡¢¢¡‘¡¡‘¡‘¡‘¡¡¢¡¡¡‘¡��¡¡~~‘‘‘‘¡¡‘�¡‘��‘¡‘‘~~‘‘¡¡‘‘‘~‘‘~~~~~‘~‘‘‘‘~~}}~~~}àÿè‘~}~‘}~}}~~}}}}}}}~}}~}}}|}~}}s}}}}v}~}p}}}s}p||s}}p}p|p}}}vp|}p|vp|pvvr}v|p|pv||ppppp|vpp|vvþÿ˜ppvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷Z!!!! !!!!! =qšëýýüýýûýüýüýÿýüýüüüüüûüüüýüýüæÓ                                                                                                                                                                                                              ÓÕüúúúúúúúúúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���‘‘~~~~�‘‘‘¡‘‘‘�~~~~‘��~~~¡¡¡¡‘‘�‘¡¡¡‘¡¢¡‘‘¡¡¡¡¡¡�¡¡£¡¡¢¦¢¡¡¡¡¡¡�¡¡¡¦£¡¡¡¡¡££¢£¡¡¢¢¢¢¡¡£¦¦¦¦¦¦¦¢¢¢££¢£¢££¢¢££££££¢¢£¦êþÿÿÿÿÿꫦ£¢£¦££¦£¦®®¦££££¦¦®¦¦££¦®®®®£££®®®®®¦£¦¦¦®®®¦¦®££®®¦£££££££££¦®®¦¦££££©¦£¢¢£®¦¦¦£©«£¦¦££¦¦££¢£¢£¦¦¦¦£¡¡¡¢¦¦££¦¦¦¢¡¡£¦£¢£¢¡¢¢£¡¡£¦¡¡¢£¡¡¡¡¡¡¡¢¢¡¡¢¢¢¡‘¡¡¡¡¢¦¦¢¡¢¡¡��¡¡‘¡¡‘¡‘‘‘~�¡¡�~¡‘‘~�‘~�¡¡‘~���~~}�¡¡¡‘��~�‘~~~~�‘‘�‘¡�}}}~‘‘�~àÿÚ‘~}}~}~}s~~}}}~}}~~~~~~|}s}~}~|r}}}}}}}p|}rvrv}}vvr|vpppr}}vv|v|||pppp}v}vpvpp}}vpppop|ppppv}ÿÿvpwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@÷ÿÿÿÿÿ÷_!!!!!! !!!!!! !   =q¥éüüýüüüýýüýýýýüüüýüýüüýüýüýüýàÓ                                                                                                                                                                                                                ×ÓúúúúúúúúüóüóúúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��}}~~~~~~~�‘‘‘��~�‘‘¡‘‘~~‘��¡¡�¡�‘¡¡‘�‘¡‘¡��¡¡¡¡‘‘¡¡¡¦¡‘¡¢¡¡¡�¡¡¡¡¡¡¡¢¡¡¡¡¡¢£¡¡¢¢¡¡¡¡¢¡££¢¡¢£¢¢¢££££¡¢££¦£¡¢¦¦¦¦£¢££££åþÿÿÿÿÿí¦££¢£®£¢£££¦¦£¦®¦¦¦¦¦£¦£££¦¦®£¦££¦¦¦®££¦«¦£¦®©££®®££®®£££¦££®®££«®¦¦££¦¦¦©££££££££¦¦¦££©£¦¦¦¦£££££¦££¦££¡££«¦¦£££££¢¡£¦£¡££¢¢¢¢¢¡¢¢¢¡¡£¢¡¢¡¡¢¢¢¢¡¡¡¡¡¡¢¢¡¡¡¡¡¢¡‘¡¡¡¡¡¢¡¡‘¡¡¡¡¡¡�‘¡¡¡‘¡¡¡‘¡¡�~‘¡‘‘‘‘‘¡‘~�‘‘¡‘‘�~~¡‘~~~‘‘~~�‘‘~~~}�‘��èÿÚ‘~}~~}~~}}�}}~~~}}€~}}}}}}~~}}}v}}}}}}}r}}|}}p|}}v|}}r}|v|}pv|||p}}||vvr}|v}v|pp}|vppv}|ppppo�ýÿvpvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Bóÿÿÿÿÿ÷Z!!!!! !!!!!!!!! !=q¥èýýüýýýýúýüüÿþýúýúüüüýúýüýúýüæÓ                                                                                                                                                                                                                             ÓÓüúúúúüóüóüúúüúüúÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~~~‘‘‘~~‘‘¡‘¡~~‘¡¡¡¡�~‘¡‘~‘‘�‘‘‘¡¡‘~~�‘‘�‘¡‘‘‘‘¡£¡¡£¢‘¡¢¡‘‘‘¡¢¦¢¡��¡‘¡¢£££¢¡�¡¢¡¡¢¢¡¢££¡¡¡¡¡¡¡£¦¢¢¡£¦£¦¦££«®«¦£££¢££åþÿÿÿÿÿê«£££££££¢££¢¢£¦¦®¦£¦£¦¦¦«££¢¢£®¦££®©®££££¦¦££¦££®®¦¦®©££¦®®®®®¦¢¦®¦£££¦®®£®®¦£¢¢£££®£££££££¦®¦®¦®®¦¦££¦¢¢£¦®¦¦£¦¦£¦£¡¡££¡¡£¢¡¢¢¡¡¡¡¢¢¡¡¢¡¢¢¡¡¡¢£¡�‘‘¡¢£¡¡¡¡‘‘¡¡~�¡¡¡¡¦£‘�‘¡¡¢¢¡¡¡¡¡¡¡‘‘‘¡¡‘‘‘¡¡‘¡¡��¡‘~~‘¡‘‘‘�~~�‘‘~~�~~}}~‘‘�}}~¡~~ëÿÓ¡}~~~~~¡~}~~}~~}}~}}|}}r~‘~}v|}s}}}~}~s}}}}}vr}~}|}}}vv}p|p|}}}pp}}}}|}}vvv|v|p|}}p|p|vv|vvpp˜ýüvvovÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷Z!!!!! !!!!!! !  !! !!! =qªéýüýüüüüýýûýÿüüüüüýýüýüüýúýüýàÓ                                                                                                                                                                                                                     Ó×úúúúúúúúúúüúúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~~‘��~~‘¡�~~‘�~‘¡‘���‘¡¡~�‘‘‘�¡‘¡¡‘‘‘‘¡¡‘�‘¡¡¡¡¡¡¡¡¡¡‘¡¢¡‘¡¡¡¡¡¡£‘¡¡¡¡¡¢¢¢¢¡‘¢£¢¡¢¢¡¡¢¡¢¢¡¡¡¡¢£¢¢¡¡¡¢¢£¢¢£¦¦££££££££åþÿÿÿÿÿ릣¦®£¡£¦££££££¦¦£££¦¦¦¦¦©£¦¢¢®®©£¦¦£®££®£¦®£££¦£©¦®£©¦©¦®®¦¦£¦¦£¦®££££®®£¢«®¦£££££¦®¦¦¦££££££££££¦£££££¢¢£££¢££¦¦££££££¢¡¢££¢¢£¢¡¡¡¡¦£¢¢¡¡£¡¡¡¢¡¡¡¢¢¡¢¡¡¡¡¡¡¡¢¡�¡¡¡¡¡¢¡��¡‘¡¡¢¡¡¡‘‘¡¡¡‘¡‘¡‘¡¡‘¡‘�‘‘‘¡‘~‘‘�~�‘‘~~~~¡‘��~~~~}~‘‘~}‘‘~}õÿÓ¡}~~~}}~~}}~~~~~~}}}}}}}‘�}~}}}}}}s}}}}}}p}~}v}}}pp}}p}}}|v}}}}rpv||||vvppp|p|pp}v}|ppvvvrppp˜ÿ÷vppwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Còÿÿÿÿÿ÷Z!!!!!!!!!!!! =q¥íüýüýýýûýüüüÿþüüýúýúýüýýüýüýüæ×                                                                                                                                                                                                                        ÓÕüúúúúúüúúüóüúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���‘‘‘‘~�‘‘‘~}}~‘‘¡¡~}~‘¡¡‘‘‘�‘¡‘¡¡‘�‘¡¡‘¡¡�~¡‘¢¡��‘‘‘���¡¢¡¡£¢¢¡‘¡££¢¦£¡¡¡¢¢£¡¡¡££¦¢¡¡‘¡¢¢£¡¡¡¡¡¢¢¡¡¡¡¡¡¢¡¡¢¢¢£££¦£££¢Ýþÿÿÿÿÿꮦ£££¡£££®®®¦£¦©¦££££££££¦®££®®¦¦®£££©®®£®®££££©®££££®®®¦£££££©®¦¦££®®®®£¦®«¦¦££©®®¦©®®¦¦¦£££¡¡¡¢£¢¡££££££¢¡¢££¦£¢¢¡¢££££¢££¢££££¦¢¡£¦£¡¡¡¡¢¡¡¢¡¡�¢£¡¡¡¡¡¢¡¡¢¢‘�¡¡‘¡‘¡���‘¡�¡¢¡¡¡‘‘¡¢¡¡¡‘~�¢¦¡¡¡¡¡‘‘�~�¡‘~~~���‘}~‘‘‘~}~‘‘~~~¡‘~‘‘~~õÿ¬€}~}}~}}}}}~}~~~~}}~~}~~‘~}~~}~~}r|}}}}||}}�~}}}ppr}}}}}}}s}}r}vvvpvvv||ppp|ppvv}p|p}vrpvpppp™ÿèvppÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!! !!!qšèýüýüüüüüýýýþýüüýýüýüýüüýüýüýàÓ                                                                                                                                                                                                                           Ó×úúúüóúúúúüúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��‘‘~~~‘~¡‘‘~~~~�¡‘‘�~~‘¡‘�¡¡~‘¡‘‘¡~~¡¡¡¡¡¢�~‘¡¢£¡€¡¡¡�¡¡¡£¡¡¡‘¡¢¡‘¡¢¡¢£‘¡¡¡¡¢¡£¡¡£¦¡¡¡¡¡£¢£¢¡¢£¢££¢££¡¡¢££¢¢¢¢££££££¦£åþÿÿÿÿÿ뫦¦¦££££¦¦¦®¦¢£©©£££¦¦©£¦®®££°®££¦©££¦®¦£¦¦©£¦£¦®®¦©£¦®©¦¦££¦¦«®¦£¦£¦©¦¦£¦¦£¦¦£¦¦«¦££¦¦£££¦®£££££¦£¢££££££¢£¢£¦¢£¢£¢¢¢¡£¦£££¡¢¢£££¡¡¢¢¢¢£¢¢£¡¡¢¢¡¡¢¢¢¢¡¢¡¡¡�¡¢¡‘¡¡¡¢¡¡¡¡¡¡¡‘‘¡¡‘‘¡¡¡‘¡¡‘‘��¡¡‘‘‘‘�¡‘‘‘‘‘�‘‘‘~�‘�~~‘‘¡‘~}‘‘�~~~~~~}~�úÿ¥~~~~}~}}~~~~}}}}~}~~~}}}}}}}~~}}}v}~}||s}}}}}}}}}vv|p}}rv|v|}vp}}rv|}|pv|pp|v|}v|vvvvpvvppppp˜ÿèvpvwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@óÿÿÿÿÿ÷Z!!!!!!!!  !  !=q¥ëýýüýýýýýüüýÿþüûüüýüüýúýüýüýüæÔ                                                                                                                                                                                                                       ÓÓüúúúúüúúüóüúüúüúÿÿÿÿÿÿÿÿÿÿÿÿûÖ�Ž~‘~}~~��~~���~‘‘‘~¡‘�‘�~‘¡~~‘‘‘‘¡�‘¡‘�¡¢¢¡‘¡¡¢¢¡¡¡¡¡�¡¢¡¢¢¡‘�¡£¡¡‘‘¡¡¡�¡¢¡¡¡¡£¡¡¡£¢£¦¡¡££¦¦££¦£¢¢££££¢£¦®£¢¢££££¡¢¦¦£åþÿÿÿÿÿꦦ®¦¦¦££«¦£«¦¢£¦¦¦¦£®®®©¦®¦££¯®¦¦¦¦¦££®®££®®¦¦££®£¦¦£££©®®®£££®®®®®®©££¦¦®£££££££££¢££¢¢¢£®®®££¦£££££££££¢¡¢£££¡££¡¡¡¢¡£¦¦£¢¢¢¡¢¡¡¢£¢¡¡¢¦«¦¦¡¢¦¦¡¡£¢¡£¢¡¡¡‘�¡¡¡¡¡¡¡¡¡¡¡¡¡££¡¡‘‘‘�¡¡¡�~�‘‘�‘‘�~~~~~�‘‘�~�¡‘�~~€�‘~‘‘‘¡‘~�‘~~~}~~~}}~~ûÿ™}~‘‘�~~�‘¡~~‘~}}}��~}}|r}|}}}}~~}|}}}s}v|p}}p}}}p}}|v}rvvvp|vppv}|v}}}pp||v|}}}}pppp}pp}vvvvpžÿßwvp{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$!!B÷ÿÿÿÿÿ÷_!!!!!!!! !! !!!!!!!! =}¥éüüýüüüüüýûýþýüüýüüýüüýüýüýüýàÓ                                                                                                                                                                                                                  Ó×úúüóúúúúüúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ���‘~}~�‘�~~‘‘�~‘¡~~‘‘‘¡‘~�‘‘‘‘�‘‘‘�~¡‘¡‘¡¡‘‘¡¡¡‘¡¡¡‘¡‘¡£¡¡¡¡¡‘¡¦¢¡¡�¡¢¢¡¡¢¢¡¡¡£¡‘¢£¢£¢¡¢¢¢££¢£££¡£¡£££¡¢£££££££¢£££¦££åþÿÿÿÿÿꦣ¦¦¦®¦££®££¦££¦¦¦©££®®££®®££«¦®®££«©¦®¦¢®®¦¦®¦©£¦®¦££¦¦®®¦©££®®«®£¦£££¦¦®£££¦¦©£££¦£¢£¢£®¦¦£¢£®¦££¦¦££¦¦¢¢¦¦£¡££¢¢£¢£¢£¦£¢¢¦£¡¢¡¡¦£¢¢‘¡¦¢¢£¡¡£¦¡‘¢¢¢¡¡¡¡¡¡¡¡¢¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘¡‘¡¡¡�~‘‘‘‘�~‘‘‘~‘¡‘~~‘‘‘�¡‘~‘‘�‘‘~~~~~}‘‘~}~~ýÿ‘}~~~‘~}~‘~~}‘~}~}~~}|}}}}}}~}|}~}}}}}~|}}|s}}}}r}}}rp}}}}|}|r}vr}|p}p}}ppv|v|vrp}ppp}vpppp|pvžþß}ppÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷Z!!! !!!!!! ! !  !=s¥èýýüýýýýýüüýÿþüýüüýüüýüýüýüýüæÓ                                                                                                                                                                                                                                                    ÓÓüúúúüúúüúúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ Ÿ~~~~‘‘‘‘~}~��‘¡‘~~~‘¡¡¡‘�~‘‘~‘¡¡~~~�¡¡�~�~~¡¡�¡¢¡‘�‘¡£¦¡‘�¡£¡¡¢¢¡£¡¡¢£¢¡¢£¢££¢¡¡¢¡¡¡¡¡£¢¢¢¡¡££¢¢££££¢¡¡¡¡¢£££¡¢¢££¢¢£êþÿÿÿÿÿê«¢£¦®®¦¢£££££¦¦¦¦£®££®©¦¦®£¢¢£££££¦®®¦£££©®®®®®®®®¦¦®®®®©©¦««®®£££££££©£®©¦¦¦£®£££¦££¢¢¢¦®¦££¢£®®¦£££¢¢££££«¦££¦£¢£¢¡¢¡¢¦¦¦¦¦¦££¡¡¦¦£¡‘¡¢¡¡¡¡‘¢¦¡¡¡¢£¡¡¡¡¡¡¢¡¢¢¡¡¢¡¢¢¢¡¡‘¡‘¡¡¡¡¢¡¡‘�¡¡¡‘¡¡¢¡��‘‘¡‘‘�¡¡~~¡~�¡¡‘‘¡¡�~}~�~‘~�‘¡~�‘¡‘~~~þÿ‘}‘}}~~~}}}}~~}}�~}}}}|}r}}}}rv}}}}}}}~}}}}}}}rvv}}}v}}vv|}}}v}}}vpv}pp||pp|}pvvvvvpp}ppppppprÓÿÙvpp˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!B÷ÿÿÿÿÿ÷]!!! !!!!!!!! !! !  ! !!  =}ªíýüýüüüüüýýýþýüüýüüýüüýüýüýüýæÓ                                                                                                                                                                                                                                                             Ó×úúúúúüúúúüúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖŸ¡~~~~��‘‘~�~~��‘¡‘���‘‘‘‘‘~�‘‘¡¡¡‘�‘‘‘¡‘¡¡‘¡‘‘¡¡¡¡¡¡¡‘¢¥¡‘¡¡¡‘¡¡¡¢¢¡¡¡¡¦¢¡¢¡¢¡¡¡¡££¡¢¢¡¢¢¢¢¡¢¢¢¢¢¢£¢¢£££¡¢£££¡££££¢¢£¦åþÿÿÿÿÿ릣£«¦«£££¦¦¦¦®©¦¦££££®®£¦£¦££¦¦¦¦¦®£¦¦£¦¦®®¦®®¦®®®£¦®®¦¦¦¦¦¦®®££®®¦®£¦££¦¦«®©£©£¦¦¦¦££££¦®¦¦£¢£¦¦££££££¢¢££¦¦£££££££¡£££££¦£¡£££¡¢££££¡¡££¡¡¡¡¡¢¢£¡‘¢¡¡¡¡¡¢£¡¡¡‘¡¡¡¢¢‘¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘‘�~¡¡‘¡‘��~‘‘‘‘‘�‘~�‘‘~~‘�~~~~¡‘~~~}‘‘~}þÿ‘~}}~}~~}~}~~}}~~}}}}}}|}}~}}}}}}}s}~}~}p}~}|}v||s}|}}|}vr}}|v}}|vr}p}vp||v|v|p}|pvrpvppppp}vpÇÿ×vpp˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!@óÿÿÿÿÿ÷Z!!!!!!!!! ! !! !! $qªëüýüýýýýýüüýÿþüýüüýüüýüýüýüýüæÓ                                                                                                                                                                                                                                                                ÓÓüúúúúúúúüóüúüüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ�¢�~‘‘~}}�¡‘‘�‘‘~‘¡‘~~�~~~~~~�‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘~�¡¡¡‘��¡¡�¡¡¡¡¢¡¡¡¡�¢¢¡¡¡¡¢¡¡¡¡¡¡£££¦£¢¢¢¦¦¢¡¢¢£¢¡¡£££¦¦£¦«£¡¡£¦«£££££Ýþÿÿÿÿÿ£££¦£££¦¦¦¦££££££¦£®¦¢££¦£££¦£¦®®®®©¡®¦£«¦£££¦¦¦«®®£¦®¦«®®®®££®±®®¦©££¦££¦££©®®©¦®®®®¦¦®££¢¡£¦«¦¦¦££¦£££¢£¦¦£¢£££££¦¢££¡¡¡‘¡¢¢¢£¢¡£¦££¦¢¡££¢£¡¡¦¢�¡£¢¡¡¡¢£¢¡¡¡¡¡¡¡‘�‘¡¡¡‘‘‘¡¡‘‘‘‘‘¡¡£¡‘~~�¡‘¡¡¡‘¡¡¡¡‘~‘¡‘�~‘�~�~�¡¡~}}}}~~~}}~~‘‘‘ÿÿ‘€}}}}}~}~~~}}�~}}~~~}~}}�‘~}~}}s}}||}~}|}}}}}p|||vp|vr}}~}}}}ppv}}vv}|pv}}|vpvvppppvp|}}pv}}vÓÿÇvp}™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!!!      !!=q’éüüýüüüüüýýýþþüüýüüýüüýüýüýüýàÓ                                                                                                                                                                                                                                        ×ÓúüóüúüúúüúúúúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~}‘‘~~~‘‘¡~~‘‘�‘‘‘‘‘‘‘�‘‘‘�‘‘¡‘‘¡¡¡¡¡‘�¡‘¡¡¡¢‘�‘‘¡¡¡¡¡¢¡‘¡¡¡¡¡¡¡¢¡‘¡£¢¡¡¡¡¢¢¡¡¡¡¡¡£¦¢¢¢¡¢¦¢¡¢¡¢£¢¢¢¢¢££££®¦¢£¢£££¦¦££åþÿÿÿÿÿ뫦£¡£¦¦®£¦¦¦£££££££®®¦¦££®®££©®¦£©©®®£¢®®®£©®££¦®«®®££®®££¦®®¦££®®®£©®¦¦¦££¦¦£¦¦¦¦¦®«¦£££¦¦££££¦¦££¦£££££££££¦££¦££££¢¡£«¢¡¡£¢¢¢¡¢¡¡¦£¢¢££¡£¡¡¢¢¡¡¡¡¢¦¡¡¡¢¡¡¡¡¡¡¡¡¡‘¡¡¡�¡¡¡¡¡¡¡¡‘¡�¡‘¡¡‘‘‘�‘¡‘~¡‘‘¡¡¡‘‘‘��¡‘~�‘~‘‘‘‘‘�~~~~~~}~~~~}‘¥ÿÿ‘�~}~}~‘~~}}}~~~~}~}}}}}}�‘}~}}}|}~}p}}}p}~|}}|}}}p|}}v}}}rp}}vvrv}}v||vr}p}pvrp||vpp|ppv|ppvpÓÿÇvppžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷Z!!!!!!!!! !!!!!!!!!   9q¥íýýüýýýýýüüýþþýüýúýüüýüýüýüýüæÓ                                                                                                                                                                                                                                                     ÓÓüúúüúúúúúúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŸ�}‘‘~~}�~‘¡�}~‘‘~�¡‘‘‘‘¡¡¡¡¡‘¡¡¡�~�‘‘‘~‘¡¡£¡¡¡�¡¡¡‘¡¡¡�¡¡‘¡¡¡¢¡¡¡¡¡��¡¡‘¡¡¡¡£££££¡¡¡¡¡¡¢¡¡¦£¢£¢£¦££¢¡¡¢¢¢£¦££££¢¢£¦£¡£Ýþÿÿÿÿÿꦢ££«®®¦££££¦£®®®£¦®®®®££®®¦¦®®®®©££¦¦££®®¦¦¦®®©®£££££®®©££££¦£¦®«£££¦®®®®¦©®¦¦££¦¦¦¦£¦££®®£¦£¢£¢¢£®®¦££¡££¢¡£¦®©£££¦¢¡¢¦¢£««¦¢¡¡£¡¡¦¡¡¡¢¦£¡�¡¡¡¡¡¡¡££‘¡¢¢¡¡¢¡¡¢¢¢¡¡¡¡¡¢££¡¡‘¡‘��¡¡‘‘¡¡¡¡��‘¡�~�¡¡~~~�¡¡¡‘‘‘~~��‘‘�~~‘¡¡¡¡‘~~~~~}}~¥ÿÿ€~~‘~~~~€~}~�~}}}}}}}}~~}}}|}}}}}�‘~|}}rv}}}}r}}~~}}}}}}pppp}}p}}}}}p|p|}|vvpp}v|}v|}}pppp}ppp×ÿžpvvžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!@÷ÿÿÿÿÿ÷_! !!!!!!!!!!!! !!!!$q¥íüüýüüüüüýýýÿýüýúýüýüüýüýüýüýæÓ                                                                                                                                                                                                                                             Ó×úúúúúüúüúüóüúúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��‘¡~~~~~~‘¡�~‘¡‘~‘‘‘~�¡‘‘¡¡‘~‘¡¡��‘‘¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡�¡¡¡¡¡‘¡¡¡£¡¡¡‘¡¡¡¡¡¡¡¢¢¡¡££££¡¡¡¡¡¡¢£¢¢£££¢£¢£££¡¢££££¢¢££££¢£££¦£êþÿÿÿÿÿë«£££¦¦¦£££££££©£¦©¦®®¦¦££®®££®®®®¦£££©£¦®®©©£®©¦®©¦¦®¦®®®®££¦®£¦®«££££¦®®®¦£¦®£¢£®®¦¦£££¦¦¦¦¦££¦£¢£¦¦¦¦¡¢£££¢¦®£££¢£¦¢¢¢¢¢¢¦¦£¡¢££¡¡¦¢¡¡££¢¡¡¢¡¡££¡¡¢¢¡¡¢£¡‘¡¡¡¡¡‘¡¡¡¡¡¢¢¡¡‘‘¡¡¡‘¡¡‘‘‘¡¡¡‘�‘‘‘�‘‘¡¡~~‘¡¡‘‘�‘~~¡‘~�~~¡‘��‘‘‘‘~~}}~~~§ýÿ‘}~¡~~~}~~~}~}}}~}~}}}}}}}}s}}}}}~~}|~}}s|}|}}}}}}}vr}}}|v|vr}|v}}}}|vv|vp||ppv|v}vpp|p|ppvppp×ÿœppwÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!@óÿÿÿÿÿ÷x !!!!!!!!!!!!! !     !pªíýýüýýýýýüüýþþýüýüýüüýüýüýüýüæÓ                                                                                                                                                                                                                                              ÓÓüúüúüúúúúúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ���¡}~~~‘�‘‘~~¡¡�~�‘��¡‘�~~‘¡‘�¡‘�‘¡‘¡¡‘‘¡‘‘‘¡¡¡‘‘¢¡�¡¡¢£¡¡¢¡¡¡¡¡¡¡¡¡¡¦£¡¢¢¢¡¡¡¡‘¢¡¡£££¢££££¢£¢¡¡¡¢£¢¢££¢¡¡¢£¦«¦¦¢¡££££åþÿÿÿÿÿꦦ¦¦££¢¢£££©®££¦®©®®¦£££®®®¦£¦¦®®®®®®®®®®¦®®¦®®®®©¦®®®®££££®®®¦££®®®¦£££¦®¦£®¦£¢¦®®®¦££££££®¦¦¦®¦££¦®©®¦£¦««££¦¢¡¡¡££¢£££¢¡¡¢¢¡¢£¢¡¦«£¡¡¢¡¡¦¦¡¡¡¦¡¡¡¡££¢¡¡¡‘‘‘¡¡¡Ÿ¡¡¡¡¡¡‘‘¡‘¡¢¡¡¡¡¡‘¡¡‘‘¡¡¡‘¡¡‘‘‘¡¡¡~‘¡~~~~}~‘¡¡~~~~‘‘~}~~~‘‘¡��~}‘Ôÿþ}}~}}~}‘~~~}}�‘‘~}~~}s}}}~~}}}~s|}|p}}}}~}~}}|}s|}}}v}rv|||vpp|}rvrppvvpprvvppv}}|pp|}rvoppppßÿ˜oopÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Y÷ÿÿÿÿÿ÷_!!!!!!!!!!!!!!!! !!!!!!!!!!sªíýüýüüüüüýýýÿýüýüýüýýüýüýüýüýàÓ                                                                                                                                                                                                                                                Ó×úúúúúúüúüúüúúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ}¡¡~}�‘‘‘~~�‘‘‘~‘‘‘�‘‘‘����‘¡‘�‘�‘¡‘¡¡��‘‘¡‘¡¡‘~¡¢¡�¡¡¡¦¡�¡¦¡�¡¢¡¡¡�¡¦¦¢¢¡¡¦£¡¡¡¢¡¢¢£¢¡¢£¢£¢¡£¡¡£¢¢¢££¡¢£¢¢£¦¦¦¦£¢££¢£åþÿÿÿÿÿ릢¦¦££££££¦££££®®£¦®®¦¦££®¦®©££®®®®®®©¦®¦¦®®¦®®®¦¦®®¦®®©££®®®®®£¦¦®®£££¦©®££¦®££¦¦®®®£££££¦¦¦£¦¦££££¦££££«®¦£££££¢¢££¢¢£¢¢¢¢£¢¡¢£¢££«£¡¡¢¡¡¢¢¢¡¡¢¡¡¡¡¡¢¦¡¡¡£¡�¡¢¡�‘¡¡¡¡¡¡¡‘‘¡¡¡¡¡‘‘‘¡‘�¡¡¡¡�~¡¡�~¡¢‘~‘‘�~���¡‘‘‘}~‘�‘¡}~‘�~~~~€¡~}~Ôÿþ‘}~~~}~~~}}�~~~}~~}�~}r}}}~~}}}}}}}}}}|}~}}~}}r|}|}}}|vv}}}}||v}|vvv||rpvvv}pppp|}|vvpvvpppvppÙÿ˜ppp×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!!! !! !! !9qªíýýüýýýýýüüüÿþýüýüýüüýüýüýüýüæÓ                                                                                                                                                                                                                                                                  ÓÓüúüúúüúúúüóüüúüúÿÿÿÿÿÿÿÿÿÿÿÿýÖ��¢¡~~‘~‘‘¡‘¡~~�‘¡‘�‘‘¡‘¡¡¡�~¡¡¡¡‘¡¡¡¡¡~~‘‘‘¡£¢¡�¡¡�~¡¡¡¡‘�‘¡‘�¡¢¢££¡¡¦¡¡¢‘�¡¢¡¡£¢¡¡¡¡¡�¡¢£¢¢¡¡¡¢££££¦¦£££££¢¢¡££¢£®®££åþÿÿÿÿÿê«¢¢££®®®®®¦£®©¦®¦£¦¦¦¦®££¦£©©¦£®££££¦££¦£®®¦£¦®®¦®¦££©¦®®®®¦£¦££££®®®©®¦®®£££®®®££££££®©®®¦¦¦¦£¢££££¢¢¡¢¢££¢¦£££££¢¢£££¢£££¦¦¡¡£¢¢£¡££¡£¦£¡¡¡¡¡¡¡££¡¡¡¡¦£‘¡¢¡¡££¡¡¢¢¡¡¡‘¡‘¡‘�¡¡‘‘�‘¡‘�‘¡¡‘¡‘�¡¡‘�‘‘�}~¡¡‘‘‘¡¡‘�~}~‘‘¡~}~¡‘~‘‘�¡‘}~‘Úÿý‘�~~~}‘~}|}~‘‘~}}|}~~}~€‘�}~‘}|}~}r|}}}~~}}|}}v}v}|pprv}}}}}}}}vv||}}}}vv|}}vp}vpppp|vvpvpp}|pàÿvppÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@÷ÿÿÿÿÿ÷Z! !!!!!!!!!!!!q¥íýýýüüüüüýýýþýüüüýüýýüýüýüýüýæÓ                                                                                                                                                                                                                                               Ó×úúúüóüúüúüúúüúúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��‘‘‘¡~~�‘‘‘�~~~¡¡¡~~‘‘�‘¡¡~�¡¡�‘¡¡¡‘‘���¡¡‘¡¡¡‘~¡¡¡‘¡¡¡¡¡�¡¡¡¡¡¡¡¢£‘¡¢¡¡¡¡¡¡¡¡¢¡¢¢¡¢£¡¡¢£¢££¡¢¡¢¢£££¦¦¦¦££££¢¡££££££££åþÿÿÿÿÿí«££¦££«®®¦££¦®¦¦¦£©££®®¦©£¦££®¦®¦££¦®££®¦®®©£¦®©£®®¦®®£©±®¦£®®¦£©¦¦®¦¦££®©¦£¦®®¦£££££®¦¦¦¦¦££«¦¢£££¢¢¦¦¢¢£££¦£¢£¢£££££¢£££¢££¢££¡¢¢¡¢£¡¢¦£¡¡¡¡£¡¢£¡¡¢¢¡¡¢¢¡¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡‘‘‘¡¡¡‘‘¡¡¡‘�¡¡‘‘‘¡‘‘‘¡‘¡~~~�‘¡‘¡‘~~‘��~~‘‘¡}~¡‘~‘~~�~~~~Úÿý‘‘}~~}~¡}}}~~}}}}~}}}~~~~}}~~}|}~}v}}}}}}}p}}}}|}r}}vv||s}}}}}}||p}v}}||pv|}ppv|rvpvp}pvppp}voßÿ}vpßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!!Bóÿÿÿÿÿ÷_!!!!!! !! !!!!!! !!$qªëýýýýýýýýüüýÿþýüýüýüüýüýüýüýüæÓ                             !!                                                                                                                                                                                                                                             ÓÓüúüúüúüúúúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ�Ž}}~‘~}~‘�~}~~~~‘~�¡�~~~‘~~‘¡‘~~‘‘‘¢¡¡¡¡¡¡‘¡‘‘‘¡¡¢‘�‘‘¡¢¢¡¢£¦¢¢£¢£¡¡¡¡¡¡�¡££¦£¡¢¢¡¡¢££¡¢£¡¢¢¢£££¢¡£££¢££¢£¢¦£¦¦¦£££¦«®êþÿÿÿÿÿꦣ¦®¦£¢££¦®££®®¦¦¦£££®®®®©£¦®®®®®®®®±®££®®±®®®®¦¦¦££©¦££®®££®®©®®®¦®¦®®¦¦®®®¦££¦®¦®®®®¦££££££©¦££¦«££«®¦¦¦£££¢¡¡£«®«¦£¢¢££¢¡££¦¢¡¡¡¡¢¢¡¡¢£¡¡££¢¡¡£¡£££¡�¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¡¡¡¡‘¡£¢‘�¡¡¡¡~~¡¡‘¡¡���‘‘�~~�¡‘¡‘‘�~~‘¡‘‘‘¡~‘~~~¡¡‘~}}~~~‘~èÿû‘‘~~~}}‘~~‘‘~}~~~}}|}}|}}|}}~}}}~|}~}}r}}}}}}}}}}}}}}}}}|||pppp}pv|}pppv|p|vpp}}vpv|ppprvp}~|pèÿvvvpæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$$!Zòÿÿÿÿÿ÷x!!$$!!!!$!!!! !!!! !!!! =q¥éüýýýüüüüýýýþþüýüýüýýüýüýüýüýàÓ                         Bƒ_!                                                                                                                                                                                                  @@!                        Ó×úúúúúüóüúüúúüúúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~~��~~‘~~~~~~~��‘‘‘���~~~�¡¡‘‘��¡¡¡‘¡¡¡¡‘¡��¡¡¡¡‘¡‘�¡£¡¡¢£¢¡¢¡¡¢¡¢¡¢¡¡¡¡£¡¢¡¡¢£¡¡¡¡£¢££¢¡¡¡¢£££¢¦£¡¡£££¢£¦¦¦££¦££¦®®åþÿÿÿÿÿꦦ££££££¦®¦££®®£¦®®££®®®®©£®®®¦®®®£®±®£®®®®®®®®¦©®¦¦£¦®£®®££®®©£®®¦£¦®®®®®®¦¦£££®®®®®£¦®¦£££££££¦¦®££«®¦£££££££¢¢¦¦¦£¢¡££££¢£¢£¢¡¡¢¡¢¢¡¡¢£¡¢¦¦¡¢¡¡¢¡£¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡‘¡¢¢�¡¡¡¡‘‘‘‘¡�~‘‘‘‘‘����‘‘‘‘¡�‘~}‘¡¡~‘‘‘~‘�‘‘¡~~�~}}~‘~ëÿý‘‘~}~}}‘}}‘~~}}‘~s}}}||~}}}}~}}}}}}}}}|s}}}}s}}}}}p}~}||vv}vrp}}vvr}|ppv|p|}|pv}|pp|||pvvpv}ppèý{|ppèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷]!!!!!!!!!!!!!! !!!!  !! !q¥íýýýýýýýýüüýÿþýüýüýüüýüýüýüýýæ×                         !ƒâÇZ                                                                                                                                                                                                 !Z–Z                           ÔÓüúüúüúüúüúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~�~}~�‘‘‘‘¡¡¡¡‘�‘¡¡‘¡‘‘�‘¡¡¢‘¡¡¡¡‘‘~‘¡‘�‘¡¡��‘¡¡¢¢¢¢¢££¡¡‘¡¡‘‘‘¡¡¡¡¡¡¦£££¢¡¡¡¡££¡¡£¡¡¡¡£¢££¡¡¢¢£¦¦¢¡¢¦££££¢¡¡¡¡£££¢¢£Ýþÿÿÿÿÿë«®¦¦®®®¦«®¦£©¦£££®¦£®®££££®®®£¦¦££¦®®£¦®®®¢£¦¦®®®®®®£©®®®®©®®®££®®®®®£££££££¦©®¦£¦¦¦£¢££££££££¦®©¦£¡¢£¦¢£££¦¦££¡¡¢¢¢¢££¦¦££¢£££¢¡¢££¦¢¡¡¦¢¡¡¢£¢¢¡¡¡‘¡¢£¦¢£¡¡¢¢¡¡¡¡¡¥àÚæêêêÚÖ¬§¦‘¡¡‘�‘¡¡¡¡‘‘¡‘¡¢¢¡¡¡‘‘‘��‘¡¡¡~~‘‘‘���~~~~}}}}¡¡‘���}õÿ÷€}~}}}~~~}}}~}}~~}~�~}}}~}~}}}~}}}~}r}}}r}}s|}~}s|v}}}}}}}}}}}}}pp}vp}vprv}}}v}|pp}}||vpppppv|ôú}v|vñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Bóÿÿÿÿÿ÷Z!!!!!! !!!!! !!!!!!!!!  !  $qšíýýýýýüüüýýýþýüýüýüýýüýüýüýýýæÓ                         $ƒÌ–!                                                                                                                                                                                                    !@_Y                           Ó×úúúüóüúüúüúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿþÖŽ}~‘~~}‘‘~‘‘¡‘¡¡�~¡¡¡~‘¡‘¡¡�¡¡�¡¡¡¡�~‘¡¡¡~�‘¡‘‘¡¡¡¡¡¡¢¦¢¡¡‘¡¢¡�¡‘¡¡¡¡¡¢¢¡¢£¡¡¡¡¡££¡¡££¡¡¡¡¢£¢¡¢£¢¢£¦£¡¡¦£££££¡£££¢¢£¢¢¢åþÿÿÿÿÿ릦©¦¦¦®®®®£¦¦¦£££¦®£©®©£¦©®®¦¦®¦£©®®£¦®¦®¦®££¦®®®®¯®¦®±®®®®®®®¦£©®®®££¦®££££¦®®¦¦¦®¦£££££££££££¦¦¦£¢£¦¦¢¢¢£¦¦£¡¢¢£££££¦¦¦£¡¢££¡¢¢¢£¢¦£¡¡£¢¡¡¡¢¢¡¡¡¡‘¡£¢¢£¢¡¡¡¢¢¡¡¡¦ëþÿþþþþÿþýýûëÔ¡�¡¡¡¢¡‘¡¡‘�‘¡¡¡¡¡‘~‘¡‘�‘‘¡‘�‘¡¡‘~~‘�}~~~}}‘¡‘~~~}õÿú‘}}}}~}}}~}}~‘~}~~‘}}}}}~}}}}~�}r~}}}}}}v|}|}}}}}}}}}}}}}|}}}}}}pvvp}}ppv}pv|pv|ppvvv}}pvvppp|õúwvvvõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!@óÿÿÿÿÿ÷[!!!!!!!!!!!!!!!! !     =q¥ëýýýýýýýýüüýÿþýüýüýüüýüýüýýýýàÓ                            $[=                                                                                                                                                                                                      @                            ÓÓüúúüúüúüúúüúúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖŸ�¡¡�‘¡�~~~�~}~‘¡~‘¡~}~¡¡¡~}~‘¡¡‘‘¡~¡¢¡‘‘‘¡£¢¡‘¡¡¡‘�~¡¡‘‘¡�¡¢¡¡¡¡¡¡¡¡¢££¡¡¡¡¡¡¡¡¢¦£¡¢£¡£££££££¦«¦¢¢££¡¦«££££¢¡¢¦®¦¦¦®¦£êþÿÿÿÿÿê«££££¢£¦£¦®®¦£¦£¦©¦££©©£££¦¦®®®££®®£©®±®®¦®®®©£®¦£©®®£®®£££®®¦£¦®®®¦££®®®®®®®®£££££¦®¦¦£®®¦®®«¦££®®¦¦®£¡¢££¦¦£«®£££££££¢¡¡££££¡¡¡¡¡¡¦£¡¢¦£¡¡¡¡¡¢¢¢¢¡££¡¡¡¡¡¡¢¢¡¢£¢ÚÿÿÿÿÿÿÿÿÿÿÿÿÿýõÚ¥‘¡¡¡¡¡�~‘¡¡‘�~‘‘~~‘‘‘‘���‘~}~�~~¡¡~���~}~~~‘‘‘~ûÿõ‘}��~¡~~�‘}}}}}}}~}}}�~~}}}}s}~|v}}}}~~}|}}rv|}rv}|r|r|pppr|}r}}}}rv}}vp}}}|vpp|vppppvppppppv|õ÷wppp÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@÷ÿÿÿÿÿ÷_!!!!!!!!! !!! !!!!!!  q¥éüýýýýýüüýýýþþüýüýüýýüýüýýýýýæÓ                                                                                                                                                                                                                                                                     Ó×úüúúúúüúüúúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��‘¡~�‘‘~}~~~}~‘‘¡‘~~��‘¡‘~~~¡‘¡‘�~~‘¡¡¡‘¡¢¡¡¡¡‘‘¡¡‘¡‘¡¡¡¡‘¡¢££¢¡¢‘¡¡¢££¡‘¡¡¡¡¡‘¡£¢¡¢£¡¢££¢¡£«¦££¢¢¢¢¦¦«£££¢¢¢¢¦®¦¦«®®®åþÿÿÿÿÿ릢£££££££¦®®©¦©¦¦¦®££££®£¦¦¦¦®®££¯®¦©®±®¦©®®¦©®®®©£®©£®©££¦®££££®®®¦££®®®®®®®®©£££££¦®®®©£¦®®®¦£¦¦¦¦¦££¡¢¦¦£¦®®¦¦¢££¦£££¡¡££¢££¡¢¢¡¡¡¢¡¢¦£¡¡¡¡‘¡¢£¡‘¢¢¡¢¡‘¡¡¡£¡¢£¨ûÿÿÿÿÿÿÿÿÿûþÿÿÿÿÿúÚ¥‘¡¡‘~~‘¡‘¡‘‘¡‘~~¡‘�‘¡‘��~~}~~‘¡‘‘‘~~}~}}~��~~ýÿõ‘¡~~~‘�}~~~}~s}}~}~}~~~~}}~|}~~}vr}}~}}|}}}}vr}}p}}}v|||}|v}}}}|vv}|p|v|pv|}|ppp}|v|pppppppvvvõõ}pppúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷Z!!!$!! !! !!!!!!  ! !!   !  q¥íýýýýýýýýüüýÿþýüýüýüüýüýüýýýüæÓ                                                                                                                                                                                                                                                                         ÓÙüúúüüüúúüúüüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽs‘‘~}~‘~�‘¡‘‘‘‘‘‘~~�¡¡¡‘‘¡��‘¡‘�~¡¡¡¡‘‘¡¡¡‘‘¡¡¡¡¡¢¡¡‘‘¡¡¡¡¡¡‘¡¡¡¡¡££¡¡¡‘¡¦¦£¦£¢¦£¡¡¢¦££¢£¢¡¢¦¢¡¡¡¢¡¡¢¢£¦££££££££¡¡¢¢¢£Ýþÿÿÿÿÿê«£«®®¦£££££¦®®®®®¦££®£®®®®®©¦®®££®®®£©®£®®®¦£®®®®®¦££®®®®®¯®¦©®®®®£®®®®®©¦££¦®¦©®©¦££££¦£¦¦¦¦¦®¦££££££££¦®«¦¢¢£££¢¢¢£¡¡¢¢¦¦£¡¢££££££££¢¢££¡£££££¦£¡¡££¡¡‘¡¢¡¡¢¡¡¥àÿÿÿÿÿÿÿÿÿÿúÚíþÿÿÿÿþõÔ¡¡¡‘¡¡�‘¡¡¡¡‘�‘��~�¡�‘‘‘‘~~�~‘¡�~~‘~��~‘‘~�~þÿõ€}}}~~}}~‘‘~}}~�~}~}}}}}}~}s|}~}}}}}}}|}|}}}}}}}}}}}}|}|v}}v|vp|pp||||}|}}p|pv}pppp}}|vppp|vpp÷ñwpopýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!$Cóÿÿÿÿÿ÷_!!!!!!! !!!! !!!!!!!!!!!   !   =}¬íýýýýýýýüýýýþþüýüýüýýüýüýýýýýæÓ                                                                                                                                                                                                                                                                   ÓÓúüúúúúüúúüúúüúüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ}~~~}~~~~¡‘‘��~~¡�}‘¢¡�~~‘¡‘‘‘¡‘‘‘‘‘¡‘�¡¡¡¡¡¡¡¡¡¢¢¡�‘¡¡¡¡¡£¡‘¡¡¡¡¡£¦¢~¡¡¡¦£££¢££¦¢¡¢£¢¡¢¢£¡¡¢¢¢¢¡¢¢¢¡¢££££¦¦££¦£¢¡¢¡££åþÿÿÿÿÿë«£«®®®££££££®®®®®££¦®£®®®®®¦¦®®®®®®©£¦££©®®©£®¯®¯®®££©®©®®©¦®®¯±®¦£®®®±±¦£££¦®®®¦£¦®¦¢£¦¦¦©¦£¦®¦£££££®¦£¦¦¦¦£¢£¢¢¢¢£¢¢£¢£¦¦¦£¢££¢£¡¡££¢¢¢¢¢££££¦£¢¢¡¢¢¡¡¡¢£¢¡¡¡¢­þÿÿþê­Ú÷ÿÿÿÿøÔ­íÿÿÿÿÿþô¬¡¡‘¡‘¡¡¡¡~¡¡‘�~~‘‘�‘¡��~~~~‘‘‘~~�~‘~}~‘~€‘þÿë€}}}}~}}~¡‘}}~¡€}}~}}~~}}}}}}}}}}}~}}}|}r}}}}}p}}}}}}}pv}}}|}p}}vp}|vpv|r}v|vp|pp}vp}}|pppvpppûñ}pppþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷_!!!!!!!!!!!!!!! !!!!!! !  =ŽªëýýýýýýýýüüýÿþýüýüýüüýüýýýýýýàÓ                                                                                                                                                                                                                                                             Ó×üúúüúüúüúüúüüúüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ ��‘‘�‘¡‘�~~~‘‘¡¡¡‘}�¡‘~�~�‘¡¡¡¡¡¡¡‘‘‘¡‘‘‘‘¡¡‘‘¡‘¡¢¡¡¡¡¡¡¡�‘¡¢¢¡¡£¡¡¡¢�‘£¡£¡¢¦¢¡¡¢¡¢££¡¡¢¡¡¢££¢¡¡¢£¦£¢¢££¡¢¦¦¢£££¢£££££åþÿÿÿÿÿꦦ®®£¦®®®©¦££££¦¦¦®®©££©®®¦£¦®®©¦¦®££©®®®®®©££®®®©£®®©®¯®®££®®®®£©££££¦®¦£®¦¦¦¦®¦£©®¦£©®®¦£££¦££¦«¦£¢¦®¦£¢¡£¦£¦£££¦£¢£¦££¡¡¡¡¢¦£¡£¢¦¦£¢¡¢£££¡¡¡¢¡¡¡¡¢££¡¢¡‘¡¡~¡¥õÿÿÿõ¥¢¢¥ÔõÿÿÿýÚ¥¬íÿÿÿÿÿý륢¢¡��‘~~‘¡¡‘�~‘¡¡¡~~‘‘‘‘~‘~~�‘~‘~~�¡¡‘~™þÿè‘�‘~�‘~}~~}}�‘~}~}|}}}~}}~}~~~~~~~}}}}}~}}}}~}p|}rvp}}}}s||}p}}|pp}}}}rvvvvrvvpp}|pppv|p}ppvpvúèwpvpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!Yóÿÿÿÿÿ÷Z!!!!!!!!! !!!!! !    !  9q¥éüýýýýýýýýýýÿýüýüýüýýüýýýýýýýæÓ                                                                                                                                                                                                                                                                                ÓÓúüúüúüúüúúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿþÚŸ�‘¡�~‘‘‘�~~~~‘~‘¡‘�~���~�‘~‘¡‘¡¢¡¡¡���¡¡‘¡¡¡¡‘¡‘¡¡¡¡¡‘¡¡¡��¢£‘¡£¢¦¡¡¡¡¡¦¦¡¡£¦¢¡¢£¡¡£¡¡¡¢¢¡¢¢¡¡¡¡£¦¦£¡¡££¡¡¢£££££¡¢££££åþÿÿÿÿÿꦦ®¦¦®®¦¦®®££¦££¦©®®©££®©®®¦©®®££¦©£«£©¯®©©££¦±®©®©¯®£©®®©£¦¯®®©£©©£££¦®®®®®¦¦££¦®¦££«®®®®¦£££££®¦¦££¦¦¦££¢£££¦£££¢¦£¦¦¦¢¡£¡¡¡££¡¡¦¦¢¢£¡¡¢££¢¡¡¡¢¡‘¡¡£¢¢¡¡‘��¡¡Öÿÿÿý­¡¡¢¢¡¥Ôõÿÿÿô¨¥¬õÿÿÿÿÿýݦ¡�‘¡‘‘‘¡¡�‘‘¡¡‘��~~~¡‘�¡~~‘~~~~‘‘‘‘¡�šÿÿë‘~‘~‘¡~~~}}~‘‘~}}|s}}}}~~~~~~~}~~~}}}}}~~}}~}}ppvvr}|s}}||}}}}vr}v}}}}v||pvvr}ppppppppp}}|ppppýæ}pv}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷[! !!!!!!!!!! !!! !!!       qªíýýýýýýýýýüüÿþýüýüýüüýýýýýýýýæÓ                                                                                                                                                                                                                                                                         Ó×üüúúüúúüúüúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��¡‘}}‘‘‘‘~~~~~‘¡‘�¡¡‘‘¡¡¡‘~�¡¡‘�‘‘�‘¡¡¢¢¡‘�¡�‘¡¡¡¢¡¢¡‘¡¢¡‘¡¦¡�‘¡¡¡¡¡¡¢¡¢¡¡‘££¡¡¢£¡¢¢¢¢¡¦«¦¦£¡££££¡¦¦¢£®«££££¦¦£¦££«¦®®êþÿÿÿÿÿꫦ¦¢¦®¦¦®®¦¢£®®¦®®¦¦«£¦¦¦©®®®®®¦©®®®¯®£®¯®©®£®±®¦©££©®©©®®®£®®¦¦®®£®®®££££«®®¦££©®¦£®®¦££¦¦££££££££££¦¦££££££££¢££¢¢£¦¦££¦¦£¡¦©£¡¢¦¢¡¡££££¢¡¡¡£¡£¦¡¡¡£¢¢¢¢£¢££­ûÿÿÿê¡‘¡¡¡¢¢¡¥ÚûÿÿûÝ¢¥Ýûÿÿÿÿÿõ§‘�‘‘‘‘‘~~‘‘‘¡��~~‘�~~~‘‘~€�‘~}�‘~}~‘¬ÿÿê‘}}}}‘~~}}~~}}~}~~~�~|}}}}}}~}}|}|}}}}}}}}pr}}}~}}}}|}}|vpvp}rpvvvpp}}p}pp}|v|v}}p}|ppppppvv||ýàwpp{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷_!!!!!!! !!!!!!!!         =qªíýýýýýýýýýýýÿýüýüýüýýýýýýýýýýàÓ                                                                                                                                                                                                                                                                         ÓÓúúüúúüúúüúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ�¢‘~~~¡‘~‘‘~~~‘‘¡¡~‘‘‘�‘¡‘�~~‘¡‘~~‘¡¡¡¡¢£¡‘¡¡¡~¡‘¡¡¡¡‘¡¡£¡�¡£‘����£¢¡¡¡¡¡¡¡¡¡¡¡¡¡£¢£¢¡¡£¦£¦£¢££¦£¡¡££¡£¦®¦£¢£¦£¦®¦£©¦¦£åþÿÿÿÿÿí«££££®®®®®¦£¦£¦®®®®£©®®£¦¦¦®®®®¦®©©®¯®®®®®®®¦®®¦¦£££®®¦£®®®¦®®££©¦¦©®¦££££®®®£££¦¦®®®£££££¦¦¦£££¢££££££¦£¢£¦££¡¢««£¢£¦££¦¦£¡£¦¦¢¡¢£¡¡¡££¢¢¦¢�¡¦¦£¡£¡¡££¢¢¢¦¦£¦ëÿÿÿ÷¥¡¡¡¡¡¢£¡¡¡¥êþÿÿ륦­êþÿÿÿÿýà‘~¡‘�~~~¡¢¡�~�‘~‘‘~~~}~¡‘‘~}}~�~}}~Ôÿÿæ‘}}}}‘‘~}~~}~}~~~€‘}}s}~}}r}}}}|ps}r}}|}}}vv}~�}||}|}|v||v||vvppr}pp|rvvrvvvvppv|vp|ppppppppp}ýàwppÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!Bóÿÿÿÿÿ÷[!!!!!!!!! !!!!!!!!! !! !!!=}ªëýýýýýýýýýýýýÿýüýüýýýýýýýýýýýèÓ                                                                                                                                                                                                                                                                       Ó×üüúüúüúüúüúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿþÖ Ÿ~~‘�~‘‘�~�‘~~~~‘‘‘‘‘¡¡‘‘¡¡¡¡‘�¡��‘‘�‘¡¡��¡¡��¡‘¡£¡¡¡¡¡£¡�¡«¢¡¢¡¡£¡¡¡¢¢¢¡¢£¡¡£££¡¢¢¢£¦¦¡¡¢££¢¢££¡£©£¡¡£¢£¦££££¦£¢¢¦¦£¦åþÿÿÿÿÿê«££¦«¦£££¦£¦©¦¦¦¦££££®®£©££®¦®®®®££®®®¦©®©®¯©©®®®®©¦¯®£©®®®®®®¦¦®®®£®®®®®¦¦®££®®¦¦£©£££¦£££¦¦¦¦¦¦®££¦££®®££££££¦£££¦£¢¡£¦¢¡£¢¢¢£¢£¦£¢¢£¢¡¡¦¦¡¡¦£‘‘¢££¢¡¡¡¡¡¡¡¬ÿÿÿþÚ¡¡¢¡‘¡‘¡¡¡‘‘¢Ôõÿÿ÷Ô¡‘­íÿÿÿÿÿõÓ‘¡¡¡¡��¡‘~�‘‘~~‘‘‘¡~�¡‘~‘~~‘‘�‘~~ÓÿÿÚ~�~�~}}�¡~}~}}}}~~}}}}}}}}}}}~}}~~}}}s}}}}}}|}}r}}}}}}}}}||v}}|}}vp}}|vv}}}pv}|p|}}}vpppp||vvý×wpp˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!@óÿÿÿÿÿ÷_!!!!!!! !!! !!!!  !!    =qšíüýýýýýýýýýýÿýüýüýýýýýýýýýýýýàÓ                                                                                                                                                                                                                                                                                  ÓÓúúüóüúüúüúüüúüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ¢�}‘¡�~¡¡‘~�‘~~~~‘�~‘¡¡¡¡¡¡~~¡¡¡‘€~‘‘�‘¡‘‘‘��‘¡¡¡‘¡‘�‘¡¢¦£¡¢¢£¦¡¡¡¡¡¡¡¡£££¡¢¡¡£¦¦¢¡¡¢£££¢¡¡¢£¢¢¦£¢£¦££¡¢¡¢£¦¦££££¡¢¦¦££ìþÿÿÿÿÿ릢£¦©££¡£££«®£££££¦££¦¦©®®£££®¯®®¦®©®®®©¯®®®¦¦£®¯®££©®®¦®©£©®®®®®®®¦£©®¯®®©£¦®®®££££££££££££«®®¦®£££®¦££¦¦¦£¦®®£££®®«¢¢£££¡¢¢¢¦¦£¦£¢££¢¡Ÿ‘¢¢¡¢£¡¡�¡£¢¡¡¢¢¡‘‘¥õÿÿÿí¦¢¢¡‘‘‘¡¡�‘¡¡¡¡¢Úýÿþæ¤�¥Öûÿÿÿÿþॡ¡¡‘�¡�}~�¡�~¡‘�‘‘‘¡‘�~~~~~‘¡¡‘ÚÿÿÚ}}‘¡‘~}}‘‘~~~}}}~‘}r|}s}~~}}}}}}|}~~}}}~}}~~}|}}v}}}~~}}}|}|||||v}}|||}pv|}}|p|pp}}}}pp}v}}|vvýÓ}pp™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Cóÿÿÿÿÿ÷Z!!!!!!!!!!!!   !!  !!!!  !!!!   =p¥íýýýýýýýýýýýÿþýüýüýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                               ××üüúúüúüúüúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ ¢�~~~�~~~‘‘‘‘‘~‘¡‘~~‘‘¡‘‘�~¡¡‘¡¡‘¡¡¡~�¡¡¡¡¡‘¡¡¡¡¡¢¡‘¡¡¡¡‘¡¡¡¡¦¢¢¢¡¡££¡¡¢£¡¡¡‘¢¡¡£¡¡£¦¢¢¡¡£¢¡¢£¦¢¢£¦¦££¦¦¢¢¦£¡£££££¦¦££Ýþÿÿÿÿÿꫦ¦®¦®££¦©«®¦£®®®®©£®®®®®¦®©¦®©©©®®©£©®®®©©®®¯£®±®®®®®®®®®££®®®®®®®®¦£®®«®®¦®©¦¦®®®¦¦©®¦©¦¦££®«££££®¦££££££¢¡¦«¢¡¦¦£¦¢¡££££££¢£¢¡£¡¢¦£¢£¡¡££¢¢¡¡¡¢£¢¡¡¡¡¡¢¢¥Úÿÿÿû­¡¡¡‘¡¡¡¡¡�¡¡¡‘¡‘‘§ëÿÿöÔ¡¡¤àýÿÿÿÿûÔ‘‘�¡¡¡‘‘�~~‘¡‘~�~~~~‘‘¡¡~}‘‘~~àÿÿÙ~}~~~~~~~}~}}}}}}�‘}}~}~}}}}}}~}}}}}}}}|p}}rv}}}rw}|}rv}p}}}}}}}rvv|}}v||p}}ppvp}}pppp|}pvpvvwýÊvpvžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Bóÿÿÿÿÿ÷_!!!!!! !! !!!!!!!!!!!    qªéýýýýýýýýýýýþþüýüýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                   ÓÓúúüúüúüúüúüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿþÖŸ�~}~‘~~}~‘¡¡¡‘~~¡‘~~~~���‘¡¡¡�~‘‘���‘‘¡‘¡¡‘¡¡¢¡¡¡¡‘¡‘�‘¡‘�¡¡¡¡£££¡¢««¡¡¢¡¡¡¡�¡‘¡¦¢¡¢¦£¢¡¡££¡¢¡¢£¢¦«¦££¦«£¢£¡¡¡£¦¢¡¢£££åþÿÿÿÿÿ릣®®©££®®®¦£££®®±®®®®¦£®®®¯®®¯®®®®¦®©£©®®££©¯¯±¯¯®®®©©¯¯®©£££££¦©®®®£££££®®®¦¦¦¦©®®®££®®®¦£££££¦£¦®«£¡¢££££¡¡££¡¢¦£¡¡£¦£¢£¦£££¡¡¡¢¡¢££¡¡¡£¡¡¡¡¡¡¡£¢¡‘¡¢£¡¡¦°ýÿÿþê¡‘¡¢£¡¡¡¡���¡¡‘‘‘��¡Óûÿþ륡¡­íÿÿÿÿÿ륡‘¡‘‘¡�}~‘¡�~~~~~~~�‘¡‘~¡‘}~èÿÿÓ~~}}}~~}}}}}}~�}}~€¡¡~}~~~}s}}s}}�}r}}}vrppv}}vv}}pp}vp}}}|s}}v}}|vrv}}}}vp}}}ppp|vppp}}vppp}�þžvppÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý螘èÿÿúžßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷_!!!!!! !!!!!!!!  !  ! !! !!!   $p’ëýýýýýýýýýýýÿþýüýýýýýýýýýýýýýàÔ                                                                                                                                                                                                                                                                         ÓÓüüúüúüúüúüúüüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ����‘¡~~~~�‘~��~¡¡‘~~�‘‘¡¡¡¡‘�‘‘¡¡¡‘¡‘‘¡¡¡¡¡‘¡£‘¡¡¡¡¢¡¡¡¡¡‘¡£¡‘¡¡¡�‘£¡‘¡£¢¢¢¡¡£¢¦¦¡¡££¢¢¢¡£¢£¦¦¢¢¢£¦£¡£«£¡¢££££®«££££¦¦åþÿÿÿÿÿꫦ¦®¦¦¦££©¦¦©££®¦¦¦®®¦®®¦£©¦¦®®£©®¦®¯¦£®£®®®®©¯®©®®®©®®®©®®¯®®®®©¦®®®®®¦®®®®¦®¦¦¦¦¦¦®£¦®¦¦¦£¦££¦¦¦¦££¦¦¦£££££®®££¢£¢¡£®¢¡¢¢£¦£¢££¢¡¢££¢£¦¦¡¢£¢¢£¢¢¡£¡�¡£¡‘¥ëÿÿÿõ¢¡¡¢¡¡¡‘¡¡¢¡¡¡¡¡¡¡¡¡¡¡¥êþÿûÔ¡‘‘ÓûÿÿÿÿýÚ‘‘‘‘‘‘‘�‘‘‘~~�~‘‘��‘‘}}�‘~~ûÿÿÓ‘‘~~~~~~~~~~~�~}}}}~~}|~~}~}~}}}}}}}}}r}}}}}�}r}}}p}~}||}|pp}}pp}}pvpp|p|||vp}pp||w}vppppppvpÿœvppÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú×ylll�úÿÿ̘õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!!Bóÿÿÿÿÿ÷] !!! !!!!!  !! !! !!! ! !! ! !=sªéüýýýýýýýýýýþþüýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                           Ó×úúüúüúüúüúüúüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ��‘¡‘}}~}}~~}~~‘¡���~~~�¡‘~~~¡¡‘‘¡¡¡¡¡¢¡¡¡¢£¢¡��‘¡¢¡¡¡¢¡¡¡‘¡¡��¢¡�¡‘¡‘�¡£¢¡¢££¡£«££¦¢¡£££££¢£¦¦£¢¢¢¡¢®¦£¡¡££££¦«£¦¦£®®êþÿÿÿÿÿí°¦££¦¦£££®®©¦££££££¦®®±®££££®®®¦®¦£¦®®£©©®®®®©®©£®¯®®¯¯®®¯®¯®®©®¯®®®®¦©®®±®®®®®®£££®®££®¦©®«®®¦®«®¦£«®®®®££¦««¦®£¢£¡¡¡¢¡¢¡¢£¦¢£®¦¢¡¢£¦¦£¦£¡¢£¦¡¢¢¡¡¡¡¡‘¡¡¡¬ÿÿÿþÔ¡¡¡¡�‘¡¡¡¡¡¡‘‘¡¡¢¡¡¢¡‘¡¡¬õÿÿë¥�~¥êþÿÿÿÿõ§‘‘¡‘‘~~~��~‘�~~~�‘}}}~~}§þÿÿÓ¡�}}}~}‘‘~}~�~}r~}}}}}}}}}}‘¡~~}}}~~}}wr}}p}~}}}‘~}}~~|pp}}p|r}v|v|}|pppp}|pp}}}~}}}vpp||}vpvþ˜}vlÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷žullllClßÿÿè{ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!===!@òÿÿÿÿÿ÷_!!!!!!!!! !!!!!!!!!! !!!!!!!  !   !!!   ! !   9qªíýýýýýýýýýýýÿÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                   ÓÓüüúüúüúüüúüüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~�‘‘�‘‘¡¡�‘~}‘‘¡¡¡‘‘~‘¡¡‘¡~�¡¡‘‘‘‘¡¡¡¡‘�¡¡‘¡‘‘¡¡¡¡¡¡¡‘¡¢¡¡¡¡¡¦¡¡¢¡¡¡¡£¢¡¡££¡¡£¢¡¡¡¡££££££¢¡££¢¡£¦¦¦£¢£¡¢¦¦££¦¦¦££££¦åþÿÿÿÿÿꫦ¦£¦®¦£¦®«¦¦£©®®®®¦¦®®¦®®®¦£©®©®¦¦®®®®©£®¯®®®®®£©¯®®®©®®®©©®®©£®®©¦©¦®¦®®¦¦©©¦®¦£¦®¦£¦®®®¦££££¦£¦¦¢£¦¦££¢£¦¦¢¢££¦¦£££££¦£¡£¦£¡¢££¢¢¡¡£¢¦£¢¢£¦¡¡¢¢¡¡£¢¢¡¢¥öÿÿÿê¡¡�¡¦¢¡¡¢¢‘¡¡¡¡¡¢¡‘¡¡¡‘�‘‘¤ÚýÿûÚ¡¡‘¥ëÿÿÿÿþê¤~~‘~~~�‘‘¢‘~�~~‘‘~~‘‘�Úÿÿÿ¬€‘~~~}~¡~~~~~}~}~}~r}~~}}}}~~||}}}~}}}}}}}}}}}p}}}p}}}p}}}pr}}vv}}}}pp}}}|prvvppp}pvpppppvpvv˜þ˜vpvÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõžvllllllll˜õÿÿ�ƒõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷]!!!!!!! !! !!  ! ! !    !qªíýýýýýýýýýýýþýüýýýýýýýýýýýýýýà×                                                                                                                                                                                                                                                                          Ó×úúüúüúüúüúüúüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~}~�‘¡‘���~~~~~¡¡¡¡¡¡�~¡¡¡‘~~‘‘~‘‘~¡¡¡¡�~�¡‘‘‘~¡¡¢¢¡‘¡¡£££££‘¡¦¢¢¦¢¡¡¡¡£¡¡¡¡¢¢¦¢¡¡¡¡£¦¢¡¡£¦£¢££¡¡£®¦¡¡¡¡£¦¦¦£££££¡¡¢¢Ýþÿÿÿÿÿꥣ£¦®®®££«¦®®®®®®±®££££©®®®£££®©£®©©¦©¦©¯¯©©©¦®®®®®®®®£©®©£©®®©£¦¦¦®®±¯®®¦£¡¢££®®®®±®££¦¦®¦££¢¦¦££¦¦¦¦££¦£££¢¢££¢¢¦®¦£¡££¡¢££££¡¢¦£¦¢¡¢¢¡£¦£¦¡¡¢¦¡¡¢£¦£¦«Ýÿÿÿû¤��¡¦«¦¢¡¡¡¢¢¡¡¢£¢�~‘¡¡‘‘~¡¡¡¨ëÿÿõ§‘�‘ÓûÿÿÿÿûÓ‘�~�~}~¡¡�~‘‘}~�¡~‘�Óýÿÿÿž~‘‘~¡�‘‘}}}}}}�‘~}}}~��~}}}}||p}||}r}|}~}~}}}}pp}r}pv|pppppv}p|p}}}vpv||vvvpvppppppv|pppppvpp˜þ™|ppßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷�vuvulooooollÌÿÿà{×þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Cóÿÿÿÿÿ÷[!! !!!!! !!!!! !!!!!!!!  !!!    }ªëýýýýýýýýýýýÿþýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                     ÓÓüüúüúüüúüüüüúúúüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ~~~��‘‘~€�~‘~‘‘¡‘‘�‘���‘‘‘�‘‘¡¡¡��¡�¢¢�‘¡¡¡¢‘¡‘‘¡¡¡¦¡‘¡‘¡¡¡¡¡~¡¦¢¡¡¡¡££¢¢¡¡¡¡¢¢¢¢¡¡¡¡¢£¢¡£££¡£¡¢£££¢££££££¢¢¦¦££¦¦££££êþÿÿÿÿÿꫦ¦¦¦¦¦¦¦£©©¦©¦££®®££®¦®¦®¯©®©®¦¦®®®®®®®¯©£®®®©©¯®©®¯®©©®®®©®¯©¦®®®®®®©¦®®¦¦©£¦¦¦¦®®«¦¦£¦¦«®¦££¦¦££££¦£«¦£¦£¢¦¦£¦£££¦¢¡£££®£¡¢£££¢¡¢¡¡®¦‘¡¢¡££¡¡¡¢¡¡¢£¡¡§þÿÿþÚ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡‘‘‘‘ÔûÿýÚ¡‘�‘æþÿÿÿÿ륑‘‘‘¡‘~�~~��~~~~¡àÿÿÿÿÿ™~‘~}~}~‘~~~‘~|}‘~}~~}}}}}~~}}}}}~}}}}}}}}}}}}}p}~}}}}}p}}}}|}}p}}}p}r}p}p|pp|}pp|pv}p}vppppvp™þ™wppæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷›ooolllllllllll{ñÿü›{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Bóÿÿÿÿÿ÷_!!!! !! !!!!  !!!!! !  !  !! =q¥éýüýýýýýýýýýþþýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                              Ó×úúúüúüúüúüúüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ�¡‘~‘‘�‘‘¡‘~‘¡¡��~}}~‘‘¡¢¡‘‘¡¡¡¡~�‘¡¡¡~‘¡££¡¡¡¡¡¢‘‘£¦¡��¡¡¡‘‘¡¦«£¢¡¡¢¢¦¢¡¡£¦¡¡¡¡¢££¡¡¡££££¢¡¡¢¢¡¢££¡¡££££¦£££¦¦£££¡¢££åþÿÿÿÿÿë°®®££¦®®®¦¦£¢££££®®£¦®®¦£®±®©®©££©®¯®®®¯¯©®±±¯££©©£©¯®£©®©£©®®©®®®®¦£££££¦¦¦®®®£¢£®©£¦®®¦®®¦£¢¡¢¢¢¡¢££¦£££££££££££¡¡£££¦®®£¡¡¡¢¦¦£¡¡¢¢£«¢‘¢£¢¢£¡¡¢¦¢¡¡¡¥ëÿÿÿõ¡¡�¡¡‘‘�‘‘‘~�¡¡¡��¡¦£¡¡‘‘¡¡£¡‘¡¡‘‘êþÿõ­¡‘�§õÿÿÿÿýÝ¥¡¡‘~~~~~¡‘~~‘€æÿÿÿÿÿÿ‘}~‘}|}}~~~~�‘�}}‘¡‘}}}}}~}}s}‘‘�}~}s}}~~}p}}}}p}|p}}}rp}~~}rppv|}}}vvv|vpp}}}|vpppppvrp|}|vv}˜ÿplpèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷�olllollC?llllllllÊýÿÌuÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!@óÿÿÿÿÿ÷Z!!!!!!!!!!!!!!!!!!!!  !  !!! ! pšíýýýýýýýýýýýÿÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                    ÓÓüüüüúüüüúüüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ���‘�‘~~�‘~~‘~�~‘¡‘�‘¡‘�‘¡‘~‘¡¡�‘‘‘¡¡¡¡��¡¡‘�¡¢¡¡‘�¡‘¡¡¡¡¡¦¡‘¡¡¡¡¡£¢¡¢¡¡¡¡¢¡¡¡£¢¢¡£«¢¡¢¢£¦¢¡¢¡£¦£¢¢¢£££¦¦££££££¦¦¢¢£££©åþÿÿÿÿÿê®®«¢£¦¦®©¦¦©¦£©®«¦¦£©¯®¦©®®¦£®®®®®¦®®®©®±©£®¯®©®®®®®¯®©®®®©¦®®®®®®®®¦¦©¦®®®©®®®¦®¦££¦®©¦¦©¦££££¦¦£¦¦£¦¦£££££££££££¦£¦£££¢¢¢£¦£¡¢¦¢¡£¦£¡¢¡¡¦¦¡¡¡¡¡¡£¦¡‘¢Ûÿÿÿý­¡¡¡¡¡¡¡¡¢¢¡¡‘¡¢¢‘‘¡¡‘¡‘¡¡‘¡¡‘�¡¡‘~¡ÔõÿþÚ¥¡‘‘Úýÿÿÿÿõ­‘~‘~�~~¡‘~~�ëÿÿÿÿÿÿÿ‘}~}~~~~~~~}}¡~}}€~}}}~~~}|}}~~}}}~}|}}}r}~}s}}}r}}}}}v|}}}}v}}rvps}p}v|vp||v|vv|}rpvvvvpvp|pžþvppõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷žvlllolllllllolllllluèÿõ”uñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!Bóÿÿÿÿÿ÷_!!!!!!! !!!!!!!!!!   !  !9qªíýýýýýýýýýýýþýüüýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                            ÓÓüúüúüúúüüúüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ�}~¡‘�~~‘~~‘¡‘‘¡¢¢£¡¡¡‘‘‘���‘¡‘~¡¡¡¡‘�¡‘¡¡~~~‘¡�¡‘¡¡‘�‘¡¡¡‘¡¡¡�‘‘�‘¡¡¡¡��‘¡¡¡¡¡¡¡£¦£¡¢¦¦¢¡¡¡£¢¡£¦£¢¡£¦£¦©£¢£®££££££®£££êþÿÿÿÿÿí°¦££¦®®¦¦££¦®££¦££££®±¦¦®®££®®®©©£©®®®£©®®®©®®®®®±®©®¯®¯±±¯¯±¯®®®££¦¦¦®®©£¦¦¦¦£¦®¦£¢¦®¦£¢¢££®©£®±®®®©¦£¢££¢¡¦®®¦¦®¦££££¡¢¢£«««¢¡¢£££«®¡¡¡¢¡¡¡£££¦¡¢«£‘¥ûÿÿÿê¡¡¡¡¢¡‘¡¢¦£¢£¢¡¢¦£¢¡‘‘¡¡‘‘‘‘‘��‘¡‘~�~‘Úýÿõ§‘‘‘šëÿÿÿÿÿê¥~�¡‘~‘‘~~‘ýÿÿÿÿÿÿÿ¡}}|}~‘‘‘}}~~}}}||~}}|s}~�}~~}}}||}}~~~}pv}~}}}}}}}}||}}}ppv}}}}}}v|}p}}}|pppv|}p}}}|pppppp|}vžÿvpv÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷žollllovplClCllllllllllžúÿÌlÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!==!!Cóÿÿÿÿÿ÷Z !!! !! ! !!!!!!!!!!!!!! !  !!!   !! !!!!! ! =}ªíýýýýýýýýýýýÿþýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                            Ó×üüüüúüüüúüüúüúüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ����~~~‘~~‘‘‘¡‘‘�~~�‘‘‘�‘‘‘¡¡�‘‘‘¡‘¡¡‘‘¡¡~�¡¡¡¡¡¡¡¡¡¡¡�¡£¡�¡¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¢£¡¡¢¡££¢¢££¢¡¢£¢¡£¢£«£¡¢££¦¦££¢£££££££¦¦££åþÿÿÿÿÿꮦ££«®«¦££¦¦¦¦¦®®¦©£©®¦®®¦©®®®®©¦®£®®®®®®®¯©®®¯®©®®©¯®®®¯®®¯©®©¦©¦®®©¦®®¦£©¦®®©¦¦£££®®®££®¦¦¦££®¦¦¦££¦¦£¢«¦££¦«£££®£¡£®£¢¢£¢¢£¢¢£¢¢¢££¡¡££¡¡££¡¡¡‘£¦¡¡Ýÿÿÿû¡¡¢¡‘¡¢¡¡¡¢¡¡¡¡‘‘¡¡¡¡�¡¡¡‘¡‘¡¡‘‘¡‘¡‘‘‘‘¡¥ëÿþ楡~‘ÓûÿÿÿÿúÔ‘‘~~‘��~Úÿÿÿÿÿÿÿþ‘‘‘~|~‘~‘~|}¡~}~}}~~~~|}}~~~}|}}}}}}}~}|}s}}}}}}}}}}s|}||p}}s}}}}pp}|pprv}}p|}}ppp|v}vpp}rppvvÓýwpppýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷�ooolllloolllllllllClollluèÿñ{uèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!$Yóÿÿÿÿÿ÷_!!!!!!!!!!!!! !! !!  ! !! !  ! !q¥íýýýýýýýýýýýÿýýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                       ÓÓüúüúüüúüüúüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��‘¡‘~~��~‘¡¡¢¡�~}~~¡¡‘~~~‘¡¡¡‘�¡¡¡¡¡£¡�~~~¡¡¡¡¢¡�¡¡¢¢¡¢¡¡‘¢«£¡�¡¢£¦¢¡££¦¢¡£¢¦¦££¡¡¡£¢¢£¡¢£¦¦£¦¢¡¢¢¡¡££££¦£¢¡¡¢£¦¦££¦®©åþÿÿÿÿÿ뫦¦£££££¦®®®¦©®®®®¦¦£££¦¦¦®©®®®®®®©®¯®©®®£®®©©¯¯¦©¦®¯®©£®¯®®££££©®®®©¦®®£¦®®®®®®££¦££¦¦£¦®®®£¢¦®¦£¢¡¢££¦®®®¦¡¢£¡¡¡££¦¦££¦¦¡¡¡¡¡¢££¡££¡¡¡£¦¢£¦¢¡‘¡¡¡¡¡§þÿÿþ¬¡¦£¡¡¡¡¢¢¢¢¡‘��¡�~���¡£¡¡¡¡¡�¡‘¡¡�~‘¡¡¡¢¢¡Ôûÿ÷¬‘¡¡¥ëþÿÿÿÿ뚀‘‘¡¡‘õÿÿÿÿÿÿÿý‘~�}}‘‘}}}}}~}~~~}}}}~~~~||}}s}}}}}|}~|}~~~~}}pr}r}||}}}~}}}|pp}}ppvrppppp|}pp|ppp|}}p}}}plppp×üplpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷�vpvvvolllllllooolllllClllCC˜÷ÿÇužüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!Bóÿÿÿÿÿ÷_!!!!! !!! !! ! ! ! !! !!!   !   pšíýýýýýýýýýüýþÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                                        Ó×üüúüúüüúüüúüúüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ���‘�~‘‘~}�‘‘¡‘‘���‘‘‘�‘��‘¡¡¡¡�‘¢¡�‘¡¡��¡¡¡¢¡¡¡¡¡‘¡¢¡¢¡‘¡‘¡¢¢‘¡¢¡¡¢¡¡¢¡££¢£¡¢¡¢¡¡¢¢££¢£¢£¢¢££££¢¢£££££¢£¦¦££¢¢¦¦¦¦££££åþÿÿÿÿÿꫦ¦¦££££©®®¦¦¦©®®£¦®©®®£©®®££®®®®®®®±©£®®®¯®©®¯®©®¦©¯®©®®¯©®©®¦®®®®£¦¦®©¦©¦¦¦®®±®®¦£££¦¦¦¦¦¦£££®«¦£££££®®£££££££££££¦£¡£¦£¢£¦£¢¢££¡¢£¢¡¢££¡£¡¡¢¡££¡¡¥íÿÿÿí¡¡¡¡¡¢¡�¡¦¢¡¡�‘¡¡¡¡‘‘¡¡¡¡¡¡‘‘¡¡¡¡‘‘‘‘¡¡‘‘‘‘¡¥êýÿ॑‘~¬ûÿÿÿÿýÚ¤~~‘‘ýÿÿÿÿÿÿÿú�~~~}~~~}~~}~}~~~~}}}}~‘}}}}}}}}}s}s}‘}}}|}}}}}}}v}}|}}}|p|}}v|}}p}|vvp}|}}p}ppv|vvppv||pvpp|v×üvoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÇvllopoolllloplCoplllClolllllll×ÿñ{uèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷]!!!!!!!!! !! !!!!!    !!  !  !qªíýýýýýýýýýýýÿýüýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                ÓÓüúüúüúüúüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~}}}~}}‘¢¡‘~~~‘‘¡¡�‘¡¡¡~~~~‘¡¡~¡‘~~¡‘~‘¡¡£¢¡¡¡¡¡¡£¢‘‘¡¡¡¡¡¢¢¡££¡¡‘�¡¡¡¦¦¦¢¡¡‘¡¡¡¡Ÿ¡¡¡¡£¦¢¡‘¡¡£¦£¦¦££¦££¦£¢¡£¦««®®¦£££åþÿÿÿÿÿꦣ©®®®®®¦©££®¦¢¦®®®®£®®®¦®®¦£££££®®¯®££©®®®®©®®®®®©©®®¯®©©¦©®®¯®®®£®®®®®®®®££¦¦¦££££®¦¦¦®®££¦££¦®¦®®£¢¢££¢¡¡£¦¦£¦®¦£¢¡¡¡¡¡£¦¦¡¢¦£¡¡¡¡¢¢£¢¢¡¡�¡¡¡¢¦£¡Ôÿÿÿý«¡¡¡¡¡££‘‘¡¡¡£¢¢¦¦¦¦¡‘~~‘‘�‘‘¡¡¡¡¡‘¡¡¡‘‘~}~}~¡‘§õÿúÓ‘~‘¡àýÿÿÿÿõ§}~¥ýÿÿÿÿÿÿÿõ‘¡‘~}~~}‘¡¡~~‘~}}‘~‘~�‘}}~~}}~}~~‘€}}}}vpvrvr}}}r}}}}}r}|v}}}pp}}v}}}}|v|}}}|pp|||ppp|vp}}}v}vÙúvvžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÇollllllloooploolClloopplopolCCCl{òÿÇC˜÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!!@óÿÿÿÿÿ÷_!!!!! !! !!! !!! !!! ! !  ! ! ! !!qªíýýýýýýýýýýýþÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                                          ÓÓüüüüüüüüúüúüúüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ ���~~~~�‘¡¡�~~���‘¡‘�‘¡‘~�‘‘‘‘‘‘¡¡‘‘�‘¡‘¡¡¡¡¡¡¡‘¡¡¡£¡�¡¡¡£¡¡¢�¡¢¡¡¡¡¢¡¡¡¡¢¢¡¡¢£¡¢¡¡¡¡¢¢£«¢¡¢¡£££¡¢¦£¡£££££¢¢¦¦£¢¦®¦£££åþÿÿÿÿÿꦦ¦«¦¦©£¦®¦£¦¦¦®®©®©¦©©®©©®©©¦®££®¯©©®¯©®®©®®®©®¯®®®©®¯®£©®¯©®®©®®®©®®©®¦£®©®®¦£££©¦¦¦££¦¦¦®¦¦¦££££¦¦¦¦¦¦¢¢££¦¦£££££¢¢¢¢££¦£¢¢¢£¡£¢£££££¡¢¡¡¢¡¡¡¢¢¡¥ûÿÿÿÝ£¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¡¡¡‘‘¡¡¡¡‘�¡¡¡¡‘�¡¢¡‘‘‘~~�¡‘�‘Ôûÿ륑€�­õÿÿÿÿÿà¥Úÿÿÿÿÿÿÿÿõ‘‘}~}~~}¡~~~}~}}~~}~}}~}}}}}}}}}~‘}}}|}}}~}}}}}p}}}}}pv}}}}rv|}}}rv|}|}v|ppp|vp|vp}p}vpv}vpv}vß÷‘woÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌvoollppllllpplllollllllovllllllllllÇýè{uáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷Z!!!!!!!! !!! ! !! ! ! ! !   !q¥íýýýýýýýýýýýÿýüýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                          ×ÓüúúüúüúüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~~�‘�~~~~~~~€‘~~‘‘�~¡¡¡¡¡¡‘�¡¡¡¡‘�¡¡¡¡¢¡¡¡¡‘�‘�~‘¡�~�¡¦«¦¡‘‘¡¡£¦£¡�¡¡¡¡¢¢££¦£¡¢¡¡£¢¢£££¢£££££¢¢££¦£¡¢¢£¢¢¦®£¡¢£¢¡£££åþÿÿÿÿÿî°¦¦¦¦£¢¢£¦©£££®®£¢£¦®®®®®®®®¯®®©©®¯®®¯±¯±®©®¯¯¯¯®®©¯¯®©®£©¯®®£¦®®®®®®®®®®¦«®®®¦¦®®®®©©®®¦¦®®®®®£¢¢££«®®«¦££®¦®®¦¢¢££¦®«££¦¦££«¦¦¢¢££££££¡¢¢¦£¢¡¢££¢êÿÿÿõ¡¡¡¢¢¢¡¡‘¡¡¢¡‘�‘¡¡‘‘¡‘¡¡¡‘¡¢£¡���~~~~�‘¡¡¡¡�~‘¡‘‘€~‘æýýØ¡¡¢¡Úýÿÿÿÿýþÿÿÿÿÿÿÿÿí‘}~‘}}~‘‘~}~}}}}~}}~}}}}}r}}}}}v|}r}}rpvr}pv}~}|s}}}}|vrppvv}}r}}vvrp}}}}}pvv|v}}}}}v}||vpppvvß÷‘}pßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü×wppovooplllollllllopvolllllllCllovolCuèÿ�l˜÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!==9Cóÿÿÿÿÿ÷_!!!!!!!!!!!!!!! !!!!! !!!  ! !!! !  ! ! !!!!!  ! !!  ! =}ªíýýýýýýýýýüýþÿýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                     ÓÓüüüüúüüüúüúüüüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~~~‘~�~~~~�‘��‘�‘‘‘‘¡‘‘¡‘‘�‘¢¡‘‘�‘¡¡‘‘¢¢‘‘¡¡¡¡¡�¡¡¡¡‘¡¢¡¡‘¡¢¡‘¡¦¢~¡¡¢¡¡¢¡¢¢£¢¡¢¢£¡¡£££¡£££££¡£££¢¢¢££££££££££££££¢£¦êþÿÿÿÿÿ£££¦£££®©£££¦®«££¦¦®®®®®®©®©£®©®±©®®©®±®£®¯®¯®©®®®¯®©©£©®¯®®®®©¦®©®®®®®®¦¦©¦©®££££¦®®®®££®¦¦¦££¦£££®«¦£££¦¦¦¦£¡£®£¢¦¦£££¢¢££££¡££¢£££¢££¢£¡¡¡¢¢£¨þÿÿþ­¡¡¡¢¡¡¡¡¡‘¡£¢¡¡¡¡¡¡¡¡‘‘¡¡��¡¡¡‘¡¡�‘��‘‘‘‘¡¡‘~‘�‘‘‘~~‘¬õþí§¡‘~¥õÿÿÿÿÿÿÿÿÿÿÿÿÿè}�‘~~~~~‘~}~}~}~}~~~}}}~}|}~}}sr}}}}}}}}}|}r}}}}}}}rv}}v|}}}}pw}}}}v}}}pvpp|}|}v}|v|pv}vppvvvvè÷vvòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýßwoovopplloololloolllloplllllllllllllllCCÇüèyCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!9!!!!!!!!! !! !!!  ! ! ! ! !!qªíýýýýýýýýýýýÿýýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                            ×ÓüúüúüúüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ����~~~‘‘�~‘¡¡‘~‘‘�~~‘‘~~~~¡‘��¡¡‘¡‘¡¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡££¡‘¡‘�¡£¡¡‘££¡¡£¢¡¡¡¡¡¡££¦£¢¦¦¦¦£¡‘¡¢¢£¡¡¢¦«££££¦®®®¦£££¢££££¦®£Ýþÿÿÿÿÿ릣®¦¦®®£®®¦¦®®®®®££££©£££®®¦££®¯®¯¯££££®®©£©®©©¦£®¯®®©£®®£®®©®±®©££¦©¦¦®¦¦£££®®®®®¦££££®®£££¦£££¦®¦¡¡££¡¡££¦£¦«£¡¦¦£¡¢£££¡¡££¡¡¡¡£££¡¡¡¢¦£££¡£¦£¡¥õÿÿÿê«£¢¢¡‘‘¢¡‘¡¦¦¡¡¢¡‘‘¡¡‘�¡£¢¡���~‘¡¢¡¡¡¡¡‘¡‘¡¡¡¡~€�¡‘~‘¡¡¡ÚýýÚ¤~}‘Úýÿÿÿÿÿÿÿÿÿÿÿ怀‘‘‘�}}~~~��~~‘�}}}}~�~}~‘�}}}}~~}}}}}}}}}}r}}}}~}v||p}}}}}|}||pv}}}pppppv}}}vpppopppvppvppppè÷�pvýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýß{polooollllpvvooololoollllllllCCllClolCCCluèý�l{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷_!! !!! ! !!!!!!!!!!!!     ! !=q¥íýýýýýýýýýýýþÿýýýýýýýýýýýýþýýæÓ                                                                                                                                                                                                                                                    ÓÓüüúüüüüüúüüúüüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ���~~��‘‘�‘¡‘‘~��‘�‘¡‘~~~‘¡¡‘‘‘‘¡¡¡¡‘¡¡¡~�¢¢¡¡¡¡¡¡¡¡¡‘¡¡¡¢¡‘¡¡¡¡¡¢¡¡¡¡¢¡¡¢¡¡¢¢¡£¢¢££¦££¢¡¢¢¢£¢¢¢£¦¦¦¦£¦¦¦¦££¦££££¢¦«£¢åþÿÿÿÿÿ릣¦£®®«££®©¦®¦¦®¦®©£££©££®®££®®®®¯®©£®®©¦®®®®®©©£®¯©©®©©®®©®©©®®®®®®¦£®£®¦¦¦®®®¦®©¦££¦¦««¦£££££®¦££¢£«¦¢££¦££¦®£¢£££¢£¦£¢¢¡££¢¢¢¢£££¡¡¡¡¦££¢¢¡££¡Ôÿÿÿû¦¦£¡¡¡¡¡¡¡¡£¢‘¡¡¢‘¡¡¡‘‘¡¡¡¡¡‘¡¡��¡¡‘�¡¢‘�¡¡‘‘¡‘��‘¡‘‘~~‘‘‘¥ëýõ¬‘€~§øÿÿÿÿÿÿÿÿÿÿà‘~}~‘~}}��}~‘}~~~~}}~�~}~}~~}}}|}~}~}}s|}}}}}v}}~}}}}}}}}}}pp}}p}p}}}v|pp|v}}}pvvpppwvvv}vppppñýv˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýàoovpoooooploopollloooooolllolllllllClolClllC�üául×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@÷ÿÿÿÿÿ÷_!!!!!!!!!!!! !!!!  !  !! =}šíýýýýýýýýýýýÿýýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                    ÓÓüúüüüúüúüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ ��‘‘~€‘~�‘‘~‘~‘¡¡¡‘‘���¡‘��~‘¡¡¡¡‘�‘‘�‘¡¡‘¡¡~~‘¡¡¢¡¡¡¡‘‘¢¡¡�‘¢¦£££¡¡¢£¡¡¡££¢¡¡¢¡¦¦¡¡¡¡¡¢¡¢¢¦¦££¦£¡¡¡¡£¢¢¢££££¦¦¦££¦£¢£êþÿÿÿÿÿ릢£«®®¦££¦®¦££¦©¦®©£©®®®®®®¦®®©®®®®©®¯®¦®¯¯¯¯±¯±®£©®®®©©®¯®®©£©££©£££¦®¦©®®®¦®££¦©¦£¦®¦££££¦¦££££££¦£®¦££££¢¡¢¢¢£¦¦¦£¦¦££¦£¡¢£££¢¢¡£££¡¢¡¡¡¢¢¡¢£¥ûÿÿþÖ¢¢‘¡¢£¢¢¢¢£¢¡‘¡¢¡‘¡¡¡¡¡¡�‘¡¡¡¢¢¡‘‘‘�~‘¡�~�‘�~~‘¡¡¡¡¡¡¡~}‘‘€~Ô÷ý륑‘‘æþÿÿÿÿÿÿÿÿà€}}~�}}~~}r}‘‘‘�~~}}~}}}}}~~}}~}~~}}}~}}}p}~}}p}p}pvr}}}}}}pv}}p}}ppvw}vv}}}}pp}}vpv}}ppvvpv}võýp×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜ooopvpolopllllllllooolloovolllllloopollllloooluèþ�C{õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!$!!! ! !! !  ! ! !! !! =q¥íýýýýýýýýýýýþÿýýýýýýýýýýþýþýýæÓ                                                                                                                                                                                                                                                          Ó×üüüüúüüüüüüúüüúüÿÿÿÿÿÿÿÿÿÿÿÿýÖ ¢~~~~‘¡~~‘‘~~‘�‘¡‘‘�‘‘~‘‘‘‘‘‘¡�¡¡¡‘‘¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡�¡£¡¡¡¡¡££¡¡¢¡¡¡£¢¡¢££¡¡¢£¡¢£¡¡£¡¡££¡¡¢£££££££¢¡££££¦££££££¦¦££££åþÿÿÿÿÿꦦ¦®«¦¦£££©®¦¦¦¦¦£¦££®®®©¦¦©¦®®®¯®®®¯®£®¯®®¯®¯¯¯¯®£©®®®©®®®®®¦©¦££®¦®®®¦¦®®¦¦¦££®¦®®¦¦¦££££©£££¦¦££££¦¦£££¢££¢¢£¦£££¢¦¦£¢¦®¢££¡¡££¡¢£¢¢£¢¡¡¡¢¡£¡êÿÿÿí£££¡‘¢¦¢‘¡£¢¡¡¡¡¡¡¡¡‘¡¡¡�‘¡¡¢¢¡¡¡¡��‘�‘‘‘~‘¡‘~~�¡¡‘‘‘¡‘~~‘¡~~~‘àýøØ‘‘}ÚýÿÿÿÿÿÿÿÚ}~‘~~}}~~}}}‘‘~€}}~}}}~~}~~}}s~}~}}}}~}}}s}}}p}}}}}rw}}}}}p}r}vv}}}v}}rvp}}}v}|vpppv}pvppvpppvõÿwvúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜vplovvpploppllllopllloolllloollloolllolllloolllol›úáyl×ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=$!Bóÿÿÿÿÿ÷x!!!!!!!!!!!!!!! !!!!!  !!     ! 9qªíýýýýýýýýýýýÿýýýýýýýýýýýýýýýýæÓ                                                                                                                                                                                                                                                ÓÓüúüüüüüüúüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖŸ¡~~‘‘¡¡‘}�¡‘‘‘~�‘¡‘‘¡‘‘¡¡¡‘¡¡‘~~¡¡¡¡¡¡‘‘~�¡¢£¢¡¡‘‘‘¡¡¡¢¢‘¡¡¡¢£¡�¡¡¡¡¡¢¡¡¢¢¦¢¢£¦£¡¡¡£¦£¢¡££¡¡¡¡¢¡£¢££¢¡¡£££¡££££¦®¦££¡£åþÿÿÿÿÿë°®®®££¦®®£££¦¦£®®®®®¯®£¦®®®®®®®®®£©©®©©®®££¦£££©®¯®¯¯®¯®®®®®©©®¯¯¯®®®®©®¦¦£©®®©££¦¦®®®£££©®®¦£¦®®®¦¢£¦®®®£££¦££¦«£££¢¢¦¦¢¢£¢¢£¢££¢¡¡¡£¡¡¡£¢¡¡¡¢­ÿÿÿý¨¡¡¡¡¡¢¢‘�¡¢¡¡¡¡¢¡¡‘¡�¡¢¢¡¡¡‘�‘‘‘‘¡¡¡¡¢¡¡��¡¡¡¡¡~�‘‘~~~~}‘¡�~‘‘‘¡§õýë§€~ÚýÿÿÿÿÿÿÚ~~~}~}}~¡�~}‘�}}}|rs}}~~}}}~}|}}}}}}}~}|}}}}}}}}}}}}}}vsp}}}}}}}p}}}pv}v}}vpvv}}}}|}}}p}vpvvppúÿ�Êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜lppollpoloovvvooolppoooloollllllolllllCllCllCllClullâý›v{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!=!!!Cóÿÿÿÿÿ÷] !!!!!! !!!!!!!!!!! !!!!!!! !! ! ! ! !  =sªíýýýýýýýýýýýþÿýýýýýýýýýýþýýýþæÓ                                                                                                                                                                                                                                                           Ó×üüüüúüúüüüüúüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŸ��~‘‘‘¡‘~~¡‘~‘‘�‘‘‘¡‘¡¡¡‘‘~�¡¡~~¡¡¡�‘‘¡¡��¡¢££‘�‘¡¡�¡¡¢¢¡£¡¡¡¡¡‘¡¢¡¡¢‘¡££¡¡£¢£¦¢¡¢¡££££¡¢££¢¢¡¡¢££££¢¢£££££¦££££©¦££££Ýþÿÿÿÿÿê««¦¦££¦®¦¦££¦¦££®¦¦®®¦£®®®®®®®®£®¦©®®®®®£©©©©©£©®¯¯¯®¯®®£©®¯¦¦¦®®¯®®®®©¦¦£¦¦®®££®£¦®®¦£££¦®££®¦£¦©¦£££¦®¦¦¦£££¢¦®£¡¦££¦££¢¡¡££¢¡¡££¡¡¡¡¡¢¢¢¢¡¡¥õÿÿÿ墡¡¢¡¡¡¡¡�¡¡¡¡¡¢¡‘‘¡‘‘¡£¢¡¢¡¡��¡¡�‘¡¡¡¢¡~��¡¢¡‘���‘�~~~~~�¡‘}~‘�¡‘¡Ô÷ûÚ™‘àÿÿÿÿÿÿØ‘}}}}~~~¡~~~}~}}~}}}}}}~}}}~~}}}}~}}}}}}}}}}}}}~}p}}}}}v}}}wvv|}}}}}vp}}}}|}}vpvwp}vppvvpv}|pvýÿèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜lovolooovploppvppollopoooooplllollollllCllCllCCllCllll›úèylÊýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Zóÿÿÿÿÿ÷_!!!!! !!!!!!!! !!! !!! ! !    ! =qªíýýýýýýýýýýýÿýýýýýýýýýýýþýýÿüæÓ                                                                                                                                                                                                                 ÓÓüúüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ�~}~‘‘~~~~‘‘~~‘‘¡�~}~~~��¡¡¡‘¡‘�‘¡¡‘‘¡‘���‘¡‘‘¡¡‘¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¢¢¢£¡¡£¢¡‘¡¡¡¡¡¡££¦¦£££¡¢£¦¦£¢¢¦££££££££££££££¢£¦®®¦®êþÿÿÿÿÿë«£¦¦££££¦®®®®®®®®®¯®¦££®®£®®©©®¦®¦¦£¦©¯®®¯®©®¯©¯®©©®©©©®®£®®¦®®£©©®££££®®®®££®®©£¦¦¦££¦©®®®®®®¦££¦¦¦®¦¢¢£££¢£¡¡£££¡££££¡¡¢£«¦££¦¢¡£¦£££¢¦£¢¢¡¡Üÿÿÿõ¡¡¡¢££¢¡¡£¢¡¡¡¡¡¢¡¡¡¡¡¡�¡¡‘�‘¡‘‘¡‘~~�~¡¡�‘¡‘‘¡‘‘¡�€¡¡‘‘‘¡‘¡¡‘~~‘‘‘~~‘¡Úûõ§¥ýÿÿÿÿÿÚ‘�~‘�‘~~�}}‘}}|}‘�}~~~�~}}}w|}~}}}~}~~}}}~~}}}}}}pv}}|}}}}}}}}s}pppp}vppppppvppp}v}|v}}}}pvvp™ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜popvvvlloppplllllllpooplllllopllpolllollllopollllolCClCClßü›luñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!$Aóÿÿÿÿÿ÷[! !!!!!!!!!!!!!!! !!!  ! !!!!    =p¥íýýýýýýýýýýýþÿýýýýýýýþýýýýýýþæÓ                                                                                                                                                                                                                        Ó×üüüüúüüúüúüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~‘~�‘~~~‘‘‘‘‘‘‘¡~}~��‘‘¡¡¡¡~�¡¡‘¡‘‘‘���‘�¡¡‘¡¡¡¡£¡¡‘¡¢¡‘‘¡¡¡¢¡¡¡¡¡¢£¡¢¦£�‘¢¢¡¡¡£¢¢¦££¦¡¡£££¦£¢¢££¡¡¢££££££££££¢£¦¦¦¦£åþÿÿÿÿÿꫦ¦¦£££££®®®®®®¦¦®®®¦££®®£©®®¦©¦©«¦¦©®®©®®¯®®®©®¯©¦®®®£®©¦®©®®®£®®¦£¦®£©®¯©££®®¦£©££££¦®®¦®¦¦¦¦¦¦£££¦¦£££££££¢¡¢£££££¢¡¡¢¢¦¦£¢¢£¡¡£££¢£¢¡¡¡¡¡¦ýÿÿþ­‘¡¢£££¡¡¡¢¦¡¡¡¡¡¡¡¢¡¡¡¡¡�‘¡‘¡¡‘�‘‘‘¡�~‘‘‘‘¡¡���‘‘��‘¡‘‘‘¡¡‘‘�~~‘¡~~�‘‘‘¥ëúôýÿÿÿÿÿà‘~‘�}~�}‘}}‘}}}~‘~}�~}~�}~}}}|}}}}~}�‘}}}�}}}}}}|v}}}}}}}}wp}}}v}v}w}ppppvpvp}}ppwvpp}}v}vpv}žÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜ooopvppvpopolopololloollollloolloolllCllolllovllllolllllCll›÷áuCÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zóÿÿÿÿÿ÷_!!!!!!!!!!!!! !!!! !!!!!!! !   !    !!qªéýýýýýýýýýýýÿýýýýýýýýýýýýþýýýæÓ                                                                                                                                                                                                                         ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ ¢‘�~~~}~‘¡¡�~~~‘‘�~‘¡¡‘‘‘�‘‘~‘¢¡‘‘‘¡¡¡‘¡¡‘¡¡¡¡�‘¡¢¡‘¡¡‘¡¢¡¡¡¡¡¡¢¢¢¢¢¡��¢£¡¡££¡¡¢¡¡‘¡¡¢£¢¡¢£¢¦¦£¦££¢£££¦££¢£¡¢£¢¢££££££åþÿÿÿÿÿî«££¦®¦££¦¦£¢£©££«®©£©©®®®££®®®®®®®®®©¦©®®©®¯®©£©®®¦©®®¦£¦®®®®®®®¯®®®®®®£®®££®®®©®®®®®££®¦£¢£¦¦£¦¦£¦¦£¦¦££¦¦¦¦££££¦¦¦¦¦¦«¦¦££¡¢¢£¦£¡¡¡¡££££¦¦¦ëÿÿÿë¡¡£¡¡¡‘¡¢¡¡£¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡‘�‘¡¡‘¡‘‘‘¡�~~¡¡‘‘‘‘‘¡‘¡�}‘‘‘~}~‘¬õþÿÿÿÿÿè‘‘~}}~~}‘‘�}}}~}~~}}~}~}}}}}}}}}}}}}}}sp}}}p}}}}}}}~}}}p}p}}p}p}p}vp}|}vvp}}|v}}p}}vpppppvpov×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜vooppvvplllpvvllppopooopolpppoovlllolllllllllllplllllCCCloulllßü›luèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!$@óÿÿÿÿÿ÷[!!!! !!!!!! !!!   ! !!!!!! !! !!  ! !      !!!!qªíýýýýýýýýýýýþÿýýýýýþýþýýþýþþþæÓ                                                                                                                                                                                                           Ó×üüüúüüüúüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ �‘~~�}~~¡‘��~~‘‘‘~~‘¡‘�¡�~~‘‘‘¡¡¡¡~¡¡¡¡¡¡‘‘¡¢¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡££¢¡¡‘¡£¢¡‘£¢¡¡¡¡¡¡¡£¢¦¢¡¢£¢££££££££¦¦¡£¦£¢¢££££££¦£££åþÿÿÿÿÿî°¦£¦¦£££¦®£££¦¦£©££®©®®©¦©£®®¦£®®¦®®®©£©¦£®¯¯©£©®©¦©£©©¦®®££¯®®®®±®®®£¦®®®¦£®®®®®®®®©«££¦©£¡£®¦¦££«¦££££®£££££¦¦£¦®£££¦®«££¢¢£¡£«£¡¡¡¡¡¢£¢¦«Ûÿÿÿû®¡¡¡¡¡¡¡¡£¡¡¡¡¢¢¡¡¡¡¡¢¡¡¡¢¡¡�‘¡¡¡¡¡¡¡~‘¡¡¡~~¡¡¡‘��‘¡‘~~~‘¡‘‘‘‘‘‘�¡‘~‘¡‘~}}~¡‘Ôúÿÿÿÿõ¡‘~}‘~}}}�‘}}}~}}}}}€~}}}}}~~}}}~}}|}|v}|}}}}}s|}~}}}}}}}sv}}p}p}pp}}}vpppv}}p}wv}pwppvpvppppæÿÿÿÿÿÿÿÿÿÿÿÿÿÿýè˜vpopooopvooopoppollovpllpopvoollvllllllllllllllllllluvlCClllllCl˜÷á{o�üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!!Cóÿÿÿÿÿ÷_!!!!!!!!! !!!!! !!!!!!!!  !  !!! !!! !qªíýýýýýýýýýýýÿýýýýýýýýýýþýþýýýæÓ                                                                                                                                                                                                                                   ÓÓüúüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ�~~‘¡¡~~¡‘~}~~‘‘~�‘��¡¡�~‘¡¡~�¡¡¡�‘‘‘¡¡‘‘¡¡¡�‘¡¡¡‘~�¡£¡¡¡¢¡¡¡¡¡¡¡‘¡¡¢¡�¡¦£¡¢¦£££¢¡¢¡¡¢¢£¢¡££¢¢¡££¡¢£¦¦£¡¡£¦££¦££¦£¢££££åþÿÿÿÿÿꦣ£££«®®®®££¦®®¦£¢¦®®®®¦¦®®®®£®¯®¦®®®££®®¯®£¦©£®®¯®®¦£¦®±¯®®®©£¦®©¦®££¦¦¦®®£®®¦£££¦¦©®®¦¦®¦££¦«¦©®¦¦£¦¦££¢£££¦¦£¢£¦£££¢¡£¢¢£££¡¢¦£¡£¦££¢¢¡£¦õÿÿÿÚ¦¡¡££¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡‘‘‘‘¡¡¡¡¡‘¡¢¡¡¡‘�¡¡‘¡¡‘¡¡¡‘¡‘¡¡�~��~~�‘‘¡¡‘~~~�~‘~~~‘�¡õÿÿÿÿ§}~‘¡‘}‘~}‘~}}��~~~}~~}}~~~}}~}}}}}}}}~}}}}}}}}|}}}pp}}rvvv}}}}}|v}wpp}w}}p}}}pppppvvv|}}v}}vòÿÿÿÿÿÿÿÿÿÿÿÿýè˜vppopppplopppopvpolpllpplopovvoollloopvlvlllolluvllllCllolllllCllllßüžlláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!$!!@óÿÿÿÿÿ÷_!!!!!!!! ! !!!! !!! !! !    !!  !!pªíýýýýýýýýýýýþÿýýýýýþýýýýþýþþþæÓ                                                                                                                                                                                                                    Ó×üüüüüúüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ�s�‘‘‘�‘‘~~�~~��~~�‘~�‘‘��¡¡�~¡¡‘‘‘¡¡‘¡¡¡¡¡¡‘�‘¡£‘��¡¢¦¡¡¢¢¡¡¡¡¡¡�¡¡¢¡¡¡£¢¡¢¦£¦¦¡¡¡‘¡££¢¢¢£¢¢¡¡££¡£££¦£££££££¦££¦£¡££££åþÿÿÿÿÿꦣ¦©©®®®®¦¦¢¦®¦££®®¦¦®®££®®©£©®®®¦®©£¦®©¦®®£©£®©®®®¯®££©±±®®®¦£©®£¦¦®®©£®®©®®¦¦¦££¦®®®¦££¦£££«®¦¦¦®£££££¢££££¦££¢£¦££¦¢¢¢¢£££¢££££¡£«¦¦£¡¡¢Ýÿÿÿõ¡¡¡¡£¢¡£¡¡¡¡¡¡££¡¡¢¢¡‘¡¡¡¡¡��¡¡¡¡‘�¡¢¡¡‘�‘¡¡‘��‘¡¡¡‘~�¡‘~�‘�~~‘�‘¡‘~~}¡‘~~~~~‘~‘¥úÿÿÿè‘‘‘‘‘‘�~}~~}}}~~}~}}}}}~~}~}}~~}r}�}~~}}}}}}}}}v}}}vp}}}pv}}~}}wp}pppppp}pp|vvpppv}}p|}vvv|üÿÿÿÿÿÿÿÿÿÿüè˜opvpoppovpoopoopopplpollooopvoovplllolvollllltppollllllCllovollCCllllƒõèuC˜úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!!B÷ÿÿÿÿÿ÷_!!!! !!! !!!!!!!!!!!! ! ! !  !  !!!!q¥íýýýýýýýýýýýÿýýýýýýþýýÿýýþýýýæÓ                                                                                                                                                                                                                     ÓÓüüúüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ~‘‘~~€~~�‘‘~~‘¡‘‘¡¡¡‘~‘‘~‘¡¡‘~¡¡‘‘¡¡¡��‘¡¡‘¡‘¡¢£¡¡¡‘¡¡‘�‘¡¡¡£¡¢¡¡¡¡¢¢¢¡¡¡¡‘¡¡¢¦¡£¢¡££¡¢££¢¢£¢£«£¡££££¢£¦¦£¡¡££¦£¡¢¦¦££åþÿÿÿÿÿë«£¦¦¦¦£¦¦¦®£¦®®®®®¦£¦®®¦®¯®£¦®®¦®®®£©¯¯®£©®®®®®®®©£©®®¦®±®©®¦®¦¦£®®®®®¦£©©££££©®¦£¦¦¦®®¦¦¦¦£¦©¦££££££¦¦¦¦®¦£¢£¢££¦¦¦£¡¢£££¢¡¡£¦¢¡¢¡¡¦¢£¦¡¢°ýÿÿþ«£¢¡¡¡££¦¡¡¢¢¡‘¡¡¡‘¡¡¢¡¡¡¡¡¡¡¡¢¡¡¡¡‘¢¡¡¡��‘�¡¡¡‘¡¡¡¡‘�‘‘�~‘‘¡‘¡¡¡‘~}~~~¡‘~~‘‘~~}}}Óþÿÿÿà¥}}}}}~~}~~~�~}}~}~}�}‘‘}}}|}~}}}}}|v}}}}}}pp}}}}}}}p}}}}vpv}s}}}}}}}}v}}}|}}vp}pp}vpppvp{àÿÿÿÿÿÿÿÿÿúߘpppppoovvvppopvpppoovvvvlppvlllolllpolloppllllpolllllllllllllllClCllllllßü›tlßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!!!!!!!  !!  !!!! !!!  =qªíýýýýýýýýýýýþÿýýþýýýýýýýþýþþþæÓ                                                                                                                                                                                                                                Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ~��~�~�‘‘~~~~‘‘‘¡‘‘¡�����‘¡¡¡�‘‘�¡�¡¡¡~‘‘‘¡¡�¡¢¡¡¡¡¡‘¡‘����££¡¢¡¡£¡¡£¢¡¡¡¡‘¡�¢£¢¢£¡££¢££££¢£¢¢¦£££££¡¡£¦«¦£¡££¦£££¦¦£©êþÿÿÿÿÿê««¦£®«¦££©®¦®®®®®¦£¦¦¦¦®®®®®®©£®®®®¦®®®®©¦®®©®®®©£¦®®®©®®©¦®££££®®®¦®®®®®®££¦¦®®®£¦«¦¦®®®££¦¦£¦£££¡©«£££®¦¦¦¦¢¡¡¢¦¦«£¢¡¦¦¢¡¡¢£¢¡¢¢££¢¡£¦££ëÿÿÿÝ¥¡¡£¦¡¡££¢££¢¢�¡¡¡�‘¡¡¡¡¡‘¡¡‘¢¢¡‘‘¡¡‘¡¡¡‘‘�~¡¡‘�¡¡¡‘��‘‘‘�~~‘¡¡¡¡‘~~~~~‘‘~~~}~~~~}~ëÿÿÿÿ॑}~~}}}‘‘€}}}}}~}}‘‘~}}}}}}}}}}}}}}|}s}}sp}}}p}}}}vv}}}p}p}}}|}ppp}wpppw}}pp}ppv}}ppvwÙÿÿÿÿÿÿÿþúÙopvolpvpopvvvvpvvpvplppvwppvlopoollolovolvplllolpplllllllllllCllClCClllClC{÷èyCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Z÷ÿÿÿÿÿ÷x!!!!!!!!!! ! ! !!!!!!!!   !!!!!!!!  ! ! =qªíýýýýýýýýýýþÿýýýýýýýþýýþýþýýþæÓ                                                                                                                                                                                                            ÓÓüüúüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ~‘¡‘‘~~~�‘¡‘‘‘‘‘‘‘�~€‘¡¡‘‘‘‘‘‘Ÿ¡¡¡��¡‘¡¡¡‘¡¡¡‘‘‘¡¡¡¡¡¡¡¡¢¡¡¢¡�¡¡¡£¡£¡¢£¡£¡¡¡¡£¢¢£¢¡¢£¡¢¡¡¡¡¡¡¦¦¢££¢£¢£££¡¢££££©¦££®¦££åþÿÿÿÿÿë«®£££©¦££££££¦¦®¦££¦®¦¦®¦©®®®¦¦®®®®®®©¦®©®®®®®®®®®®®®®£¦®®®®©©®©®®££¦££¦®©££££¦®££¦®¦££©££¦®¦££££££««£££¢¢¢¦®£££¢£¢£«¢¡¢¦¦££££££¦££¢¡¢¢¢¡­ÿÿÿû¢¡¡‘¢¦¡�¡¢¡¢¡¡¡‘¡£¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡‘¡¡¡¡‘¡¡¡¡¡‘¡¡‘‘¡¡‘‘‘¡‘¡‘‘‘~~‘€€€~‘‘‘‘‘‘~~‘‘‘‘~‘‘~€šýÿÿÿÿüÚš‘~}�}}}~}}~~‘‘}}~~}}}}}}}}~}}}}}}~}}}}}}}~}}}}}}}rp}}}}}vv}qw|q}p}}w}}ppp}p}pv}vov}™àÿÿÿÿÿÿÿúÙvvvvvppvpvvvvplplppvppllppvvoolloopvvlllooolllpllllolllovulllllllllllCltlllClÌü›olßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@óÿÿÿÿÿ÷_!!!!!!!!!! !!!!!!!!!!!!! ! !! !! !!9q¥íýýýýýýýýýýýÿÿýýýýýþýþþýþýþþþæÓ                                                                                                                                                                                                                    Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��¡¡‘~~~~~‘¡¡¡~‘‘~¡‘‘~‘¡¡¡‘~~¡¡‘¡¡¡‘~~�¡¡‘�¡¢¡‘¡�‘¡¡¡¡¡¡£¢¡¡¡‘‘‘¡¡¦¢¡¡¡£¦£¢¡¡¡¢¢£¦£¢¡¡¢¡¡¡¡¡¡£¦¦¢¡¡¢¡£¦¦¢¡¡£¦¦¦¦£¢£¦£££åþÿÿÿÿÿ¦®¦¦¦¦£££¢£®¦£££££®®¦«££®®®®®®®®©©®¦©¦£©®®®®®®¯®£®®®££©®®®®®®®¦££££££©¦££££££¦¦£®®¦££©¦©¦©¦££££¢£«¦£££¢¢¢¦«¦££¢¡¡£££¡¢¦¦¦£¢£«¦¦¦¡¡¡¡¢¡¡õÿÿÿÔ¡¡¡¡¡¦¢�¡¢¡¡¡¡¡¡¡¡¡£¢¡¡¡¡‘¡¡£¡¡‘‘¡¡¡¡¡‘‘‘‘¡¡¡‘¡¡¡¡‘‘‘¡‘‘~~~~~‘‘~~~~~‘‘~‘‘~~~¡¡}~‘‘}}}êÿÿÿÿÿÿõž}�‘}}}}}}~‘‘‘}}}�}}}~}}}}}}}s}}~~}}}}}}}~}}}}}v}}v}}~~}}p}|v}}}pvp}}}pv}}wpp}}pv˜ßüÿÿÿÿÿÿýà�|vvvvpvvpvvvv|}vpllopppolvpppooolllolppllollllpvvolplllllupllllollCllvlllollCCC{õè{l{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!! !!!!!!! !! !!!! !   !  !!!!q¥íýýýýýýýýýýýÿýýýýþþýþýýþýþþþþæÓ                                                                                                                                                                             ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~~~‘‘�~‘¡‘‘¡‘~~�¡�~¡‘‘‘¡‘¡¡¡~~¡¡¡¡�‘¢¢�‘¢¢¡‘¡¡¡¡¡¡¡¡¡¡‘¡¡¢¢¢¡¡¡£¢‘¡¡¡¢¢¡¡¢¢¡¡¢¡¡¢£¢£¦£¦¢¡¢£¢¢£££££££££¢£££££¢££££¦¦£åþÿÿÿÿÿ릡£©£££¦®£¦£¦®®£©®®££££®®¦£®®¦©¦©££¦®®®®®®¦®®®¦¦®®¦®®®££¦©®¦®®®®£®®®¦©®®££®®®®®®©©¦£££¦®¦£¦¦¦©¦¦¦££¦¦¦¦£££££££¦£££¢£¦££££££¢¡¢£¢¢¢¡£¢££¢Öÿÿÿí£¡¡¢£¢¡¡‘££¡¡¡¡¡£¡�¡¡¡¡¡¢¢¢¡¡‘‘‘¡¡¢¡�‘‘¡‘‘‘‘‘¡¡¡‘¡~~‘¡¡¡¡‘‘‘‘‘�‘‘~~‘‘¡‘�€‘‘}~‘‘}~‘¡�~�™ýÿÿÿÿÿÿûÓ¤~}~}}~}~}}}}}‘~}}~�}}}}}}}|}}}}}}}}}}}}}s}}}vrp}}}}}p}vvvvvvv}}}}}pvs}vvppv™Ùúÿÿÿÿÿÿÿèžvpvpv||ppvpppppppppppvopopvlvoppvlvvpplllppplloolllllllllpllllllltlllClllClllllllCÌü�tl×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!CóÿÿÿÿÿúZ!!!!!!!!!! ! ! !!!!!!  !! ! ! !  !!   ! $pªíýýýýýýýýýýýþÿýýýýýþýþþýþþþþýèÓ                                                                                                                                                                                                             Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖŽ�}~~‘¡‘‘~‘‘~‘¡‘‘¡‘~~�¡‘�¡¡�¡¢¡~~~¡¡¢¡¡¢¡¡¡¡¡¢¡‘¡‘�¢¢¡¡¡~‘¡¡¢££¢¡¡¢¡¡¡¡¡¡¢¡¡¦¢¡¢¢¡¡¡¢¢£««¦¢¡¢¢¡£¦££¦¦£¡¢¢¡¢££££¢£¦£¢£¦¦Ýþÿÿÿÿÿê«¢¢¢£¢££«®¦££®®®®®®¦£££®®££¦®¦£¦®££©®®®®®®®¦¦®®££®®®¦©££®®®£¦®®¦£©®¦¦®®®£®®®®®®¦®®®£££¦®££¦®®«¦®®£¢££££££®¦£¢£¦¦¦¦£¢¢¢£¢¦££¡¡¡¢¡¡¡¡£¡££¥ûÿÿþ¦¡¡¡¢£¡¡¡¡¢£¡¡¢¢¡¢¢�‘¡¡‘¡¢¦¢¢¢‘‘¡‘‘¡¡‘¡‘�‘¡�~‘¡¡‘‘¡�~‘¡¡¡¡‘‘‘‘‘‘�~~‘~‘¡‘‘‘‘‘~}�‘€‘‘¡‘~}}ëÿÿÿèõýÿÿÚ‘}~}}~}}}}}|}~}}}}~}~}}}}}}rw}}}}}}}}}}pvv}p}v}}}p}}p}prvp}p}}}}}vv}}v|pv}˜ßúÿÿÿÿÿÿÿýßppvvp}|vvvvpppolooovppvvolvpvpppvlppvpllllvollvlpllllllllltplllllllllllllllClClllllvòèyl{óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zóÿÿÿÿÿ÷_!!!!!!!!! !!!!!!!!!!!  !  !!!!!!!!! ! !!!!qªíýýýýýýýýýýþÿýýýþþþýþýýþþþþþþæÓ                                                                                                                                                                             ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ��~‘��‘~~‘¡‘~~~~‘�~�‘�~‘¡‘~‘¡¡¡¡‘‘¡‘~�‘‘¡¡‘‘‘¡¡¡‘�¡¡¡¡¡~¡¡¡¡¡¢¡¡¡¡¢¢¢¢¢¡¡‘¡£¦¡¡¡¡£¢£¢¡¢¡¢¢¡££¢¡¡£££¢¡£«¦££¦£¦¦¢¡£«££¦®åþÿÿÿÿÿë«««££¦¦¦¦®¦£¦¦¦«¦£¦®®¦¦®®££®£®¦®®©®¦¦¦¦®®®©®£©®®£©®©£®®®®®¦®®¦®®®£®®®¦©®¦¦¦¦¦¦££¦®¦£££«®®££££££¦«£¦¦£££££¦¦££££¢££¦£¢£¦££¢££¢£££££¦£‘¡¢êÿÿÿê‘¢¡¡¦¦¢¡¡¡¡£¡¡¡¢¢¢¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡‘‘¡¡¡¡‘¡¡¡¡‘¡¡‘�‘¡‘~‘‘‘¡‘¡‘‘¡‘‘‘‘¡‘‘~¡‘~~‘‘~~‘‘‘‘~}~‘~}§ÿÿÿš‘Úûÿÿèš~}}‘‘}}~~}}~}~}}~}~}}}}}}}}}}}}}}}|s}}}}}}}}v}pp}}vvwwr}pv|v}}rppvvvv}˜Ùýÿÿÿÿÿÿÿÿý×vvvv}vopppppppvvvpvlvvplp|voovovovllooplpopoploppllllvolllvlllvlllltlllllCllClllllllClÌü›lCÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!=Còÿÿÿÿÿ÷_ !!!!!!!!!!!!!!  ! ! !!!!!!!  ! !   ! ! =q¬íýýýýýýýýýýýþÿýýýýýþýþþþþþþþþæÓ                                                                                                                                                                                                Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~‘‘‘~‘‘¡¡‘�~~}~~‘‘~~�‘‘�‘¡‘‘¡¡‘��‘~�¡‘�¡‘���‘¡¡~‘¡¢¡¡‘¡¢¡‘¡£¡¡¡¡¢¦£¡¡¡¢¡�¡££¡¡¦¦¦£¡¡¢¡£¢¡££¡¡¡¡££¡¡£««££¦£¢££¢£¦¦¦¦¦êþÿÿÿÿÿê®®®¦®®®¦£©¦¦®¦££¦£®®®¦¦®®££££©¦£©©®¦££££¦®®©£©®©¦©©©®®¦¦®®¦®£©®®®¦®®®¦£©¦¦¦£££¦¦£¦££££®®®®¦££££¦®¦¦¦¦£¦£¢£¦¦££¢¡¡£®£££¦£¢¡£¦«££¦¦«¦¡¡‘­ÿÿÿû¦‘¢£¦£¦¢¡¡¡¡¡¡¡¡¡£¡¡¡¢¡‘¡¡¡‘‘¡¢¡¡‘‘‘¡¢¡¡¡¢£¡‘‘¡¡‘‘‘‘�~~~‘‘‘‘¡¡¡‘¡‘¡¡¡~‘‘‘~~‘¡‘‘‘~€‘}}}~~}‘õÿÿè‘}¬÷ÿÿõ§‘}�‘}}}~�}}}}}}}~~}�~}}~}}sp}}r}}}}p}}}}}}vrvv}}rvvp||vv}ppvpvvvpv|žõÿÿÿÿÿÿÿÿÿ÷ž}vpvvvppppoppopv}vvplvvpppvvvpvpopollpvlllpolopvololltpvllloollvpllllvlllClCCllClllllllyõèyCuòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!$Yóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!! !!! !!! !!! !!!!!!!! ! =}ªíýýýýýýýýýýþÿþýýþþþýþýýþþþþþþæÓ                                                                                                                                                                                                    ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ �~}�‘~~~~~�~~�‘‘�¡¡‘~~‘‘‘‘‘�~~¡‘¡‘¡¡�€¡¡¡‘¡¡‘‘¡¡‘‘¡‘¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡£¢¡¡£¢¡¡¡¡¡¡¢¢¡¢¡‘££££¡¡¢¢£££¢£££¢¦¦£¢¢£££¢¦¦££££££åþÿÿÿÿÿ뫦££¦®£££¦¦¦¦£££©¦££¦££®®®®££©®¦£©®®£®®®¦¦®®£¦®©¦©¦©®®££®®®®££®®¦®¦«££®®¦®®®£¢¦®®®¦£¦¦£££®¦¡£¦¦©£££¦¦££££¢£££££££¦£¢¢£¦£¡£££«£¢¢¡¡¢£¡¢öÿÿÿÖ¦¢¢¢£¡¡¡¡¢¦¡¡¢£¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¢¢‘¡¡‘¡¡‘‘¡¡‘¡‘‘¡¡‘‘¡¡‘‘¡‘¡¡¡‘‘‘‘~~‘‘¡‘~~‘‘~‘‘~~~~~‘‘~~~~‘~€§úÿÿב¡¥õÿÿýØ‘~}}~~}‘�}}}~}}}}}}~}}}}}}}}}}}}vr}}�}}}}}}s}|}}}}vv}}}}|v||v||p}™àýÿÿúèÙüÿÿÿõ™vvpv|vpvvpvpvvvvvppvolpvpvplopoppllpvplpplovvlloolllllloolllllllolllllllllllllllCCllCCCClÇüÆtlÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷Z!!!!!!! !!!!!!!!!!! !!!! ! !! !   !! =q¥íýýýýýýýýýýýþÿþþýýýþýþþþþþþþþæÓ                                                                                                                                                                             Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ �}~~~~}~~~~}~~‘¡¡¡‘�~~��~���~~�‘�‘‘��‘�¡¡¡‘¡�¡¡¡¡¡¢¡�‘‘¡¡¦¢¡¡¡‘¡¢¡�¢¢¡£¡¢¡¡¢¡¡¡¢¡¡¢¡¡¢£¦£¡¡¢¢£«£¢££¦£££¡¡¡£¦£¢££££££¢¢åþÿÿÿÿÿê«¢£¦®¦£££¦£©£££©¦¦££©¦££©®±®¦©®®¦¦®®®®®¯¦££¦¦¦¦¦®«£¦®£££®®®®®®®®¦£¦¦££®®«¦¦££££®®®¦£¦¦£¢£££££¦«££££¦¦££®¦¢¢¦®££¦££¦¢¡¦¦¦¢£¦¢¢¢¢¢¡¡¢£¢Öÿÿÿí¡£¦¦¢¡¡‘¡¦¢£¦¢¢¡¡¢¢¡¡¡¡‘¡£¡¡¡‘¡¢¡¡‘¡¡¡¡‘‘‘‘‘¡‘‘¡¡¡¡¡¢¡¡¡¡‘¡¡¡‘€~~�‘‘€‘‘‘¡¡‘~‘€}~~~~~‘‘~~‘‘~~§ûÿþÓ¡‘‘èþÿÿæ™}}~‘~�~~~}}~}}}}}}}}~~}~}~}~}}v}}~‘~}}}}}v|}}}}}p}}~}}pv|||v|Çõÿÿýèžv{õÿÿ÷žwvpppvppv|vpp}}|}vvopolppvolplllpllppvplvpovvlllplllllllllllollllllllCllltlllllllClCCCCCCCuñè{luòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!! ! ! ! !!!! !!!!!! !   !! !   !!!=q¥íýýýýýýýýýýþÿþýýþþþýþþþþþþþþþæÓ                                                                                                                                                                                        ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��‘‘~~~�~~‘‘‘�‘‘�‘~~��‘¡¡�‘¡‘¡‘‘‘‘¡¡¡¡¡~~¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡�¡¢¡¢¢¡¡¡¡££¡¡¢¡££¡¡¡¡¢¦£¡¡¡¢¦£££££¢¢¢£¢¢£££££££££¦££åþÿÿÿÿÿ릣¦®¦¦££¦£¦¦¦£¦£¦£®®©£®££®®£®¦¦®®©£®®¦¦¦®©£®®®®®®®£©¯®®©¦©®®¦©£¦¦¦®®«¦®®££¦£¦©¦«¦¦£££¦£¦¦¦¦®®££¢£¦£¦££¢¦¦££¦¦£¡¦£¦¦£¢££¢¡¢¦¢¡£££¢£££¥ûÿÿþ¨¢¡¦¦¡¡¡¡£¦¡‘¡£¡¡¢£¡¡¡¡¡¡¡¢¡‘¡‘¡¡¡‘‘¡‘¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘‘‘¡‘~�‘‘‘‘‘‘¢¡~~�€¡‘}~‘‘~~‘‘~}‘¡}}~‘~�€¬ýÿýÓ€~‘Úûÿÿëž}}}}}~}~}}~}}}}}}}}}}}~~}}}~}p}}}}}}}}}v}}}}}}}|v}|||||}|v}™àþÿÿõÓwv�Ùþÿúž}vpvpvppppvvpl}vpvoppoppppppvvplpvvloolllvvpolvlvlolooplllllllollullClllllllllllllllllllllClÇüÇtC�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!!!!! !  ! !!!!!  ! !  !!!!  9p¥íýýýýýýýýýýýþÿýþýýýþþþþþþþþþþæÓ                                                                                                                                                                                                 ××üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���~}��~‘¡‘¡‘‘‘~~~~~~�¡¡¡¡¡¡¡‘‘‘¡¡¡¢¡¡‘~~‘¡¡¡¡¢£¢¡‘‘¢£¡¡¡¡‘‘¡¡¡¡£¡¡¡¡¡‘¡¡¡¡¦£¡¡¡£¡¡£¢¢¡¡¡££¢¡¡¢¢¢£¦£¢¡¡££¢¢¡¢¦¦¢£¢¡££££êþÿÿÿÿÿꥣ®®££®®¦¦£££©¦¦£¦®©££®¦£¦¦£¦®®®®¦££¦£££¦¦¦®®®®®®©®®®®®¦®¦¦¦¦££¦®®®®®¦®®££££®®¦££££££££©®®®®«¦£¢££££¦¡££¦£¢¦¦££¦®¦¦£££¢¡‘¡£¢¢¦¦££¦«¦êÿÿÿ桦¢¡¢¡¡‘‘£¦¡¡¡¡£¦¦¡¡¢¢¡¡¡¢¡¡‘‘¡¡¡¡‘‘‘‘¡¢¡¡¢¡¡¡¡¡‘¡‘�‘‘‘‘¡¡‘~~~€¡‘‘‘¢¡‘‘‘~~}}}~~�~‘‘~}~‘~}}¡‘}~‘Óýÿúš€‘}ÓõÿÿúÓ€}}}}~~}}}}}}}}}rvr}}~}}|}}}}}}p}}|}rvp}}}}}|}|vv|v||}}}™Ó÷ÿÿúà˜vv˜èÿÿúžvvpppv|}ppppppv}pppopolvvvpvvpvvopvplolllpvvllplvvlllvvpollloplvllollCllllClllllllllCClCllloluñò{ClèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!$!@÷ÿÿÿÿÿúx!!!!! !!!!!!!!!!!!!!!  !!  !  !! !  !! !! !!qšíýýýýýýýýýýþÿþýýþþþþþþþþþþþþþæÓ                                                                                                                                                                 ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��~~‘�~~~‘¡‘�~~~‘‘‘��~�‘‘�‘¡‘�¡~~¡‘¡¡�¡‘¡¡¡¡‘¡¡¡¡‘�¡¡¡¡¡¡¡¡¡¡¡¡¡£¡¡¢¡¡¡¡¡¢¢¢¡¡¡¡¢£¢¡¢££¡¢££¢£¢¢¢££¢¢£££££££¡¡¦«¢££££££©åþÿÿÿÿÿꦣ«®£¢¦®¦£££¦®®£££££¦©¦¦¦©®££®®®®¦¦¦®®®££¦¦®«®¦©®©®®¦¦¦®®®¦¦®®®¦®®£££¦¦¦®£©¦¦®®©¦££££®«®¦££¦£¢£¢£¦£©®£££¦££¦£££¦¦£££¦¢£¡¡£££¡¢£¢¡¡¦­ýÿÿû¥¡¦¦¡¢¡¢¡¡¦£¢¢¡‘¡¦¡‘¡¢¡¡¡£¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘¡‘‘‘¡¡‘‘‘~‘¡¡¡‘~‘‘‘~‘‘‘~‘‘‘‘¡�~‘�‘‘‘‘�~~~~�‘‘}}€¡€Úþÿú¬}}~¥íþÿþà¥~}}~~|}~~~~}}}}}}}~}}}s}p}}}r}}}pw}}||}}v||v|p}}||}v�Óèÿÿûèž}pwžëÿÿõžvv|vvvvp|vvvpppppovvpvvlpvpppwppplpvpoppppvlollvlvvlpllllppllvvollllllllllllllllllClllllCCllllC�üÇul›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!!! !!!!!!!! !!!  !  !!  !!! !=q¥íýýýýýýýýýýýþÿþþýýþþþþþþþþþþþæÓ                                                                                                                                                            Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���‘¡~}}~�‘�}~��¡¢¡‘~~~��~~¡‘‘¡‘��‘¡¡¡‘¡¡¡‘‘¡¡‘¡‘��¡¡�‘¢¡¡‘�¡¡¡¢¡¡¢£¡¡£¡¢£¡¡¡¡¢¡¡¢£¢££££¡£¢¢£¢¢£¢£¢¢££££££¢¡£¦¦££¦®£¡£¦åþÿÿÿÿÿê«««¦¦£££££££®®¦£££££©©¦©®¦®££©££®®£®®®®££®£®®£¦®®®®©££®®®¦«®®®®¦£«£££££®®®®®¦®®¦£££££¦®®¦¢¢££¢£¢¢£¦¦«®¦¦¦¦¦¦¦¦£££¢£¦¢¡£¢£¦¦¦¡¡£¢¡¡¥íÿÿÿÜ¡£¦¢¡¢¡£¢¢¦¢¡¡¡‘¡¢¡‘¡¡‘¡¢¢¡¡¡‘¡¢¢¡¡¡¢¢¡¡¡‘�‘¡‘�~~‘¡¡¡¡‘‘~‘‘¡¢¡‘~~~�~~~~‘‘‘¡¡‘‘‘‘¡¡¡‘~‘~~~‘‘}}}�‘�}ÚýÿýÓ~€€‘àûÿÿõÓ‘}~~}}~‘‘�~~}~~}}}||}|||}~|vv|}}}}}p}}}p}}p|v||}}‘ÇèþÿýëÓvpwÇ÷ÿþèvvvvvppppvv|}vpooopvpv|vlpppvvpppllvvplpvvvpollpollopvollvvppopvllllllllllllllulllllllollCCCllCClèó˜olèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!!Zòÿÿÿÿÿ÷_!!!!!! !!!! !!!!!!!!!!!!!!! !! ! !!    =wªíýýýýýýýýýýþÿþýýþþþþþþþþþþþþþæÓ                                                                                                                                                           ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~‘~��~�‘�‘�~~�¡¡‘�‘‘‘‘�}�¡¡‘��‘‘‘¡¡‘¡¡¡‘‘¡¡¡‘¡¢¡¡¡¡¡�¡¡¡¢¡¡¡¢¢‘¡£¢�‘¢¡¢£¡¡¢£¡£¡¡¡¡¢¡££££¢¡¢¡£¢¢£¢¡¢¦£¡¢¢¢££££¡¡¦¦£££¦Ýþÿÿÿÿÿ뫦£££®£££©¦££¦¦¦¦££®¦¦¦®®¦©££®®®©££®¦®®®¦©£©®®£¦®®®®£¦®®£¦®®££¦£¦©££©®¦¦®®¦¦¦£¦¦¦©£££££¦¦£¦¦¦££¦¦¦¦££¦¦¢¢££££¦¦£££¡¢£¦££¢£¦¡¡¢¦¢¡¡Ôÿÿÿõ¦¡¡¢¢¢¡¡¡¡¡¢£¢¡¡¡¡¢¡‘¡£¡‘¡¡¡¡¡‘¡£¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡‘‘‘‘‘‘‘¡‘�‘‘‘‘‘~�‘~~‘‘‘~~‘‘~~‘¡€‘~}~~~~�}~‘}}}ÖûÿýØ‘}~‘ÓõÿÿýÙ™‘~}}}~}}}~}|}}�‘}}}|}}}~}p}}|}s}}vp~}pp}}}}vvÇèýÿþõÊ}vv�×ýÿüßvv}|ppvvvvvvvvvvoopppppvpovlvvolppplpvploooppopoooppllollpllloulllolllllllllllllllllllllllCClCllCC›üÌvlƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Cóÿÿÿÿÿ÷]!!!!!!!!!!!! !!!!!!!!!! !!!!! ! !!!!   !9q¥íýýýýýýýýýýýþÿýþýþþþþþþþþþþþþæÓ                                                                                                                                                             Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���~~���‘~~~¡‘‘‘‘¡‘�‘�‘‘�~‘¡¡€~‘¡¡¡�‘¡¢¢¡‘¡¡‘¡¡¢¢£¡£¢‘�¡¡¡¢¢¡¡¡¡¡¢¦¡��¡¡¢£¡¡¢¢¢££¢¡¡¢¢¡£££¡¡¡££¢¡¡¡¢¢¢¡¡¢£££¦££¢¢££££££Ýþÿÿÿÿÿê°¦£¢££££¦®®©¦£¦®®«£®®££®®®®¦¦®®®¦££®®¦®¦©®££®©®®¦®®©¦®®¦£¦®££££¦¦¦¦®®®¦¦©¦£¦®££¦®®®¦£££££¦®¦¦£¦®¦®®¦¢¢¦£¢¡£££¦¦¦£¡¡¡£¦¦¡¢¢¦¡¡¢¢¡¡¦ûÿÿþ­£¡¡£¦¢¡¡¡¡¡¡£¢¢¢¢¢¢¢‘¡¡¡‘‘¡‘¡¡‘‘¡¡‘‘¡‘‘‘‘¡¡¡‘‘¢£¡¡¡€‘‘‘‘‘‘~~‘¡‘‘¡¡~‘¡‘€~}~�~}~~~~~}~‘¡¡~�}}}�‘~}}}}~¡§õÿþב~~}™æûÿÿ묑~}~}}}}}}|}}‘‘}}}}}}}}}}}}}}|}}rw}}||}rv}}žàýÿþõÙ�wvv}™èþÿúÓw|vv~}v|p|}v|||ppvppvvvpvplvplpplpoplooplllolppopllovplopolvllvppllllooovoluuoollllollCllClllllCCllllèúƒClßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!!=Zóÿÿÿÿÿ÷_!!!!!!!!!!!! !! !!!!  !! !!!!! !   !  !$q¥õýýýýýýýýýýþÿþýýþþþþþþþþþþþþþæÓ                                                                                                                                                                    ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ�}�‘‘‘‘�~~~~‘¡‘‘‘~‘‘�~¡‘¡‘�‘‘~‘¡¡¡‘~�¡¡‘�‘¡�¡¡¢¡‘¡‘¡¢¡�¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¢¢¡¡¢¡¡¡¡£¡£¢¡£¢¡¢£££¢£¡¢¡¢¢£¦£¡¢££¢£¦££££££¦¦¦£¢åþÿÿÿÿÿ뫦££££££¦¦¦®¦£«®®££®®££®®£¦¦¦®®¦©££®®££®£©¦©®¦®¦££¦¦©¦®®££®®¦¦®¦®¦®®¦¦¦£¦¦¦¦¦¦¦¦¦¦¦®¦££¦¦®¦¦¦££¦¦¦¦£¦££¦¦££¢¢¢¢£¦££¢£¢¢£¡¢£¢¦£¡¢¦êÿÿÿꢢ¡¡££¡¢¡¢¡¡¡¦¡¢¡¡¡¡¡¡¡¡¡‘¡£¡¡¡¡¡¡¡‘¡¡¡�‘¡‘¡¡‘‘¡¡‘‘‘‘‘‘¡¡‘‘‘~‘¡‘~‘¡‘~€¡‘~�‘‘~�‘‘~~~~‘‘‘‘~�}}�€‘~��~~€‘~™ëÿÿà¥~~}€Óõþÿýà™}~}~~}}}}}}}}}}}}}~}||s}}}}}}}}}}}|vvw‘žàúÿÿ÷à™}}|v�×õÿÿõžvpvvv}vvvppvvvvvppvvpvvpppvpvpoppvppppvvlplovoopoplloooooollovoloolllllllolllllllllullllCllllllCCCClll›ü×uC{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!$Bóÿÿÿÿÿ÷[!!!!!!!!!!!!!! !! !!!!!!!!!  !! !  ! ! !=q¥íýýýýýýýýýýýþÿþþþþþþþþþþþþþþþæÓ                                                                                                                                                             Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖŽŽ�‘‘‘�~~~��~‘‘~~~‘¡‘‘¡¡¡��‘¡~�¡‘‘‘~‘‘‘‘‘¡¡‘¡¡‘���~�¢¢‘¡‘‘¡¡¡¡¡�¡¡¡¡¡£¢¢¡¡�¡¢¡¡¡¡¡¢¢££¡¢££¢¡¡¢¡¡££££¡¢££££¦¦££££¦¦£¦¦£¢åþÿÿÿÿÿꫦ¦¦£®¦©¦¦®®®¦¦®¦£¦®©¦®¦£££££©£££©¦©®¦®®£®®®¦¦££££¦£££¦¦££®®±®®®®®®¦£££¦£¦®¦£¦®¦££¦¦®¦¦¦®¦¦£¦£££¦¦¢£¦¦¦®¦££¡¡¡£¢¦¦¦£¡¡¢£¡¡£¢¦¦£¦Üýÿÿû«¥¡¡¡¡¡¡£¡¡¡¡¡¢¡¡¡¡¡‘‘¡¢¡¡¡¡¢£¡¡¡¢¢¡‘¡¡¡€�¡¡‘¡€~‘¡‘‘‘‘‘‘¡‘‘¡¡‘‘‘~~~‘‘‘�‘‘~~‘~}‘¡‘‘�}~‘~}~~~}}~~�~‘¡‘~‘‘~}‘èýÿõÓ‘}}~™àúÿÿõÓ™}}‘~}}~~}}}}}}}}}}v}}|}}~~}}|}}|v}˜Óèýÿÿúàš}}vvžèþÿýè˜vvppppvppvpppvppppvvvv|vppvvpvvppvvvpppvvvvppvoooppollllooloovppllllllClllllllllllllpolCCClllllCCllCllClèú”lCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$!!=!@÷ÿÿÿÿÿ÷_!!!!!!!!!!!     !!!! !!!!!!!!!!! ! ! !  =qªíþýýýýýýýýýþÿþýþþþþþþþþþþþþþþæÓ                                                                                                                                        ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ�~~~~~~~~~‘‘‘��~~‘‘¡¡‘‘‘‘‘‘‘‘~‘¡¡¡‘‘‘��¡¡¡¡¡‘�~‘¡¡‘¡¢¡‘¡¡¡¢¡‘¡¢¡¢¢¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¢¢¢¢¢¢¢¢¢¡¢££££¢£¢£££££¢£££££¢£££¦¦¢£åþÿÿÿÿÿ££¦££££¢¦®¦¦£¦¦£¦££®®££®©£¦££®¦®¦¦®¦®©£®¯¦£©¦¦¦¦©¦¦¦£©££®®®®££®®®©££¦¦££¦©££¦®¦¦¦£¦¦¦¦¦¦¦¦£¢£¦£¦¦¦¦¢¢¦¦£¦¢¡£££¢£££££££¢¢£££¢¢¦íÿÿÿÝ¢¢¢¡¡¢¢¢¦¡¡¡¡¡¢¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¢¡‘‘¡¡¡‘‘‘‘‘‘~‘¡‘¡‘‘‘~�‘‘‘¡‘‘‘‘~‘‘�~~‘‘‘‘}}¡¡~~���~€~~}~¡}}~‘}~}‘àûÿýÚ™}}~~¬ëýÿþè§}~}}}}}}}}}}~}}}p}}}|}}}}|}|}™×èýÿÿ÷à§vvv}™ßúÿÿõ×|}vpv}|vvppvvpppppvpppp|vppvvpopvppppppvppppoopploppopoollooovollolllllollollllllllllolllllllllllCCllClCC›ýßvly÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!=!@óÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!!! !!!!!!! ! !  !! ! !!   !  !q¥íýþýýýýýýýýýÿÿþþþþþþþþþþþþþýÿæÓ                                                                                                                                            Ó×üüüüüüüüüüüüüüüýÿÿÿÿþÿÿÿÿÿÿÿûÖ��}}~}~~~‘‘�~�‘‘‘~~‘¡¡~~~‘¡¡�‘¡¢‘‘‘��‘¡¡¡¡¡�����¡¡¡¡¡��¡¡¡¢¡�‘££¦¦¡¢¢¡¡¡¡¡¡¢¢¡¡¡¡¡¢¡¡£¢¡¡¡¡¡£££¦¦£¢¦¦«££¢¡¢££¢¡¡¡£¦££££åþÿÿÿÿÿ£¦¦££¦£££££¢¢¦«¦©£¢£¦¢£®®¦®£££®®®£®®¦©«¦®¦£®®®®®®©¦¦¦¦¦©®££¦¦£®®¦®®®®®¦£¦¦¦¦®®¦¦£¢£¦®¦£¦¦£¢¢¢£¢£¦®¦¡¡££¦¦¢¢¦£¢£¢£¢¦¦££¦£¦¦¦¡¢Ôþÿÿõ«¢¡¢£¦£¡¡£¢¢¡¡£¢‘¡¡¢¦¦¢¡¡¡¥£¢‘‘¡¢¡‘¡¡‘¡£¦¡¡¡¡~¡¡¢¡‘�‘‘‘�~~‘‘‘�¡¡‘‘‘‘‘‘¡~‘�~‘‘‘~~��‘�}�¡¡‘‘‘€‘‘‘~~}~‘}}~}�‘‘‘‘Óõÿÿè§~~‘}‘Ú÷ÿÿúÚž}}}~}}}}}}}}}}}}}r}|v|||}}�žßõÿÿþõà§vvvv‘Óòþÿúà™}v}}}v}}|vvpp||ppp|}vpploppvvv}olp}voopvvpooopooopoooopppollllpolllolllopolooolllllCClClllllCCCCCCClllCCllllçý›llÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Y÷ÿÿÿÿÿ÷x!!!!!!!!!!!!!!!!  ! ! !! !!! ! !!!!   !!!!! ! !  !=q¥õýýýýþýýýýýþÿýýþþþþþþþþþþþþþþæÓ                                                                                                                                                    ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿýÖ��~~~~~~‘‘�~�€�‘‘~~~‘‘‘�‘�‘‘‘‘‘¡¡¡¡¡¡¡¡‘‘¡¡‘¡¡¡‘~¡¡¢¡‘¡¡�¡¢¡‘¡£¡¡¢¡¡¡¡¡¢¡¡££¡£¡¡¡¡¡¢¢¦¢¡¡¡¡¡¢£¢¢¢¢¢¦¦££¡£¢¢£££££££¦££¦©åþÿÿÿÿÿë«££¦£££©£¢£¦£££¦¦¦¦££¦¦¢£®®¦®££¦¦®®¦¦¦£®®¦£®£©®®®©¦«¦¦£¦¦¦¦¦¦¦¦¦®®¦£®®¦¦¦¦££¦¦¦®¦¦¦£¦¦¦¡£¦¦¦££¦¢££¦«¦¡¢£¦££¢¢£££££¢¦¦¢¡¦¦¦¢¦£¢¦ûÿÿþ­¦¢‘¡¦£¡¢¢¡¢£¡‘¢£¡¡¡‘¢¦¡‘¡¡¡£¡‘¡¢¡¡¡‘‘‘‘¡¡¡¡¡‘¡‘¡¡¡‘‘‘¡¡‘‘‘�¡¡‘¡‘‘‘‘‘�‘‘‘‘‘��‘‘‘�~~�‘~~‘‘‘‘}~~~~�~~~�~~~}~‘~}~~‘æýÿúב~€}}§æûÿÿ÷àÒ‘}}s}~}~}}s}}~}v}}}}}}˜Óæúÿÿýèךv}vv}žàýÿýèž}}vp|}vvvvv|vpvvvppvvvvppvpppvpvvpovvpopppppooppopoppopooopplllloolloolllooolllllllvllllllCvolllCllClllCClCClC˜üçuCu÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷_!!!!!!! !!!!!!!! !!  !!!! !   !!!!! !!=s¥íýýýýýýýýýýýþÿþþþþþþþþþþþþþþþæÓ                                                                                                                                              Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ���¡‘~~‘¡¡‘‘‘~~~~~~}~~�‘��~~�~~‘¡¡¡¡¢¡‘~~‘‘¡¢¢¢¡��‘¢£¡¡¡�‘¢¡¡¡¡‘¡‘‘�‘¡¢¦¢¡¦£££¢£¢¡¡£££¡¢¢¢£¡£¡¢¡¡¢¢£¢¡¢¢£££££¦®¦£££££¦£åþÿÿÿÿÿꦣ¦¦££££££¦££££¦£££®®®¦£«®®«¦££®£©®££££¦«££®¦£¦£¦¦®®¦®¦¦©¦¦©®®¦£¦¦££¦®¦££¦¦¦¦£¦¦¦¦¦££££¡£¦¦£¦¦¦¦££¦¦¦¢££¦¦¦¢£¦¦¦¦££¦¦£¢£¦¦¦£¢¢êÿÿÿꢦ¢‘‘¢¢¡£¢¡¡¡‘¡¡¢¢¡¡‘¡¢‘�¡‘¡¡¡¡¡¦¡¡¡‘‘~‘¡‘‘¡‘¡¡‘‘‘‘‘¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡‘�~~�‘�‘‘‘‘‘‘€~~‘�~�‘‘}}}~‘‘~~�‘‘‘‘¡‘}~~~}}}}€×úÿÿæ§‘}}}‘ÒèýÿÿûèÓ™}}~}~}ppp}~~}~~}‘žÙëýÿÿúèÓ�}vv}}™×÷ÿþõÓvw}vv|vvppvp||vvvppvppvvpvvvvpvppppovvlvvvoopoopoovvvpvvpopvvvpoloplloooollooolllllopolluollpoCloolCllollllCCCCCèý˜CCÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!!!Z÷ÿÿÿÿÿ÷_!!!! !!!! ! ! !!  !!!!!  ! ! ! ! !! !   !p¥íýýýþýýýýýýþÿþýþþþþþþþþþþþþþþæÓ                                                                                          ÓÓüüüüüüüüüüüüüüüüÿþÿÿÿÿÿÿÿÿÿÿþÖ��‘‘~}‘�~~‘‘‘�~~~~‘¡�~�‘‘‘‘~~���‘¡¡¡‘¡‘��¡¡¢¡¡‘¡¡¡‘¡£¡¡¡‘¡¡¡�¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡£¢¢¢¡¡¢¢¢¢¢¢¢£££¢¡¢¡¢££££¡¡££££¢¢£££££££¦£¦Ýþÿÿÿÿÿ릣££¦¦£££®££££¦¦££¦©«©¦£¦®¦®®££££¦©¦£¦£¦£¦¦®®¦¦¦¦©®®¦®®¦®«£¦®¦¦¦¦¦®®¦¦¦£¦£¦®¦£¦¦¦¦£££¦£¦¦¦£¢£¦¦¦¦£¢¦£¦¦££¦¦¢¢££¦¦£¡¦¦£¦¢¢¢£££­ûÿÿû¥¡¢¢£¡£¢¡¢¢¡¡¡¡¡¡‘¢¦¡‘¡¦¡‘¡¡¡¢¡‘¡¦¢¡¡¡¡‘¡‘¡¡‘¡¡¡‘¡¡‘‘‘‘‘‘¡¢¡‘‘�¡¡¡‘‘‘‘�‘¡‘~‘¡¡‘‘~‘~~‘‘‘~‘‘~~~}‘¡~}~‘~}‘¡~~~}}}}�}}~§ëýÿúב}}}}‘ØõþÿÿþõÚ§™‘�}}}}}}}™šÓÚèúÿÿþõà§v}}vvžÚõÿÿ÷Ú˜vvpv|v|vv|vvpvvv|vvvppppvvvvppvpppvvpovvpvvpvlppovplopooovploppoolloplloooolllolllllllolllllClllllolCCllllllCCCCCC˜üñuCuòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!$!!Bóÿÿÿÿÿ÷]!!!!!! ! !!!! !!!!!!!!!!!!!!! ! !!   ! !!      ! 9q¥íþýýþýýýýýýþþÿþþþþþþþþþþþþþýÿæÓ                                                                                                                                        Ó×üüüüüüüüüüüüüüüþÿÿÿÿÿÿÿÿÿÿÿÿûÖŽ��‘}~‘~~~}~~~‘¡‘¡¡¡¡�‘‘‘‘��‘~~~~�‘�‘‘‘~�¡¡¡‘�¡¡¡‘‘¡¢¡¡�¡¡¢¡¡‘‘¢£¡¡¡¡¢¢¡‘¡¡¡¡¢¡¡¡¡££¢¡¡¢¢£££¦¡¢¡£¦£££¡¡££££¢£££¢£¦£¡¡¡¢åþÿÿÿÿÿꦦ¦¦¦©¦££¦¦£¦£©®®£¦¦££®£££¦®®£©¦¦£¦¦¦¦££®®££®®®®©®®¦¦®©®®®©£¦¦£¦¦£®®££¦«¦¦®¦¦£¦¦¦££¦¦¦¦¦¦¦£¢£¦¦¦«¦£££¦¦££¦£¢¢¢¡£¦¢¡¡£¦¢¡¡¡¡¡¦íÿÿÿÚ¡¡££¦¦£¢¡£¡¡¡¡¢¢¡‘¡£¢¡¡¢¢¡¡¡¢¢¡¡¡¢¡‘¢¡¡¢¡¡¡‘¡‘¡‘¡¡‘¡¡¡‘‘~‘¡¡¡�~‘¡‘‘‘‘¡¡¡¡‘~‘¡¡‘‘‘‘‘‘¡¡‘~~~}‘‘}~~~}~~~}}~}}}}}~~‘}~~‘‘×õÿýæ§‘�}}}šÚõþÿÿÿúèàÙÓ§ÓÓÓÓàèõúÿÿÿýíÙš}}}|v}žÙõÿÿõàž}vvvvvvvvpp|vpv|pppv|v}vppvpvpv}vppvvvop}}vvpvvppvvvoooollloolllllooopolloopvlllllolovoollCllllClCClll?llCCCCCCllllluèÿ›lC�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!$!@óÿÿÿÿÿ÷_!!!! !!!!!!!!!!!!!!! !!!!! !! ! !  !!!!!!  !!!=qªíýýýþýýþýýýþÿþþþþþþþþþþþþþÿýþæÓ             !                                                                                             ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿþÿÿÿÿÿÿûÖŽ}‘‘~~~~�‘~~~~‘‘¡‘¡¡‘~�¡‘�‘‘‘����‘�¡¡‘¡‘‘¡¡‘‘‘¡¡¡¡�¡¡¡¡¡‘¡¡¡¡¡�¡£¡¡¡¡¡£¡‘‘¡¡¢£¡¡¡¡¢£¡¡¢¢¢¢¢££¢¢¡£®££¢£¡¡¢£¢¢£££££££££¢¢åþÿÿÿÿÿ뫦¦¦££¦£££¦®¦¢£®«££££«¦¦££¦®®¦¦¦¦££®®¦¦¦®©£¦®®®®¦¦®®¦¦¦¦®¦®¦¦¦££¦£¦®¦£«®¦¦¦£¦¦¦¦¦£¦¦¦££¦¦££¦¦¦¦£¦£££¦¦¦¢¢¦¦£¦¡¡¦«¢¡£££¢£¢¢¡¢Üþÿÿö¦¡¢¢¢¦¦¡¡£¦¡¡¢¡¢¢£¡¡¢¡¢¡‘¢¦¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡‘¡‘¡¡¡¡‘¡¡¡‘�‘¡¡¡‘�‘¡‘�‘‘‘¡‘‘‘‘�‘‘��‘‘¡‘‘‘�~~~~‘‘~~~‘‘~}~‘~}}}}}}}~‘~}}‘}}šàúÿõÚ¥}}}}}™Úë÷ÿÿÿÿÿýýûýýÿÿÿÿÿüõæÓ™}}}}v|žß÷ÿþõßž}vpv|}||v|vvvvvpv}vpvvp}wpppvvov}plvvvvpovpvvpovpoppoppooolooooooollooollooooplllllplllollCllClllllCColClCCllClCClllll˜üòultñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!$!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!! !!!!   ! ! !!    !  ! !!  =qªíþýýýýýýýýýþþÿþþþþþþþþþþþþþþÿæÓ                                                                                                      Ó×üüüüüüüüüüüüüüüþÿÿÿÿÿÿÿÿÿÿÿÿýÖ���¡‘~~~‘¡¡‘~}~‘‘‘~~~~‘‘¡‘¡‘¡¡‘¡‘¡¡¡¡¡¡¡¡¡¡�¡¡�‘¡¡‘‘¡¡¡‘�¡‘‘¡¢¡¡£¢¡¡‘‘£¦¡¡¡¡£¦£¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡££¦«£¡¡¡¡¡¡£¢¡¡£££¡££¦«¦¢Úþÿÿÿÿÿꫦ££¢£¦¦£¦®®¦££¦£¡££¦®¦£££¢¦®¦¦«®£®®®®®®¦££¦¦£¦¦¡£®®¦£¢£¦¦¦¦¦¦£¦££¦®¦£¦®«£££¦¦£¦¦¦¦£££¦¦¦¦®¦¦¦¦£¢¢£¦¦¦£¢£¦¦«®£¢¦¦¡£¦£¡£¦¦¦¢¦÷ÿÿþÖ¢¡¢¦¢¢¡¡¡¦¡¡¡¦££¦¦¦¢¢¡¦¡¡¡¦¢¡¡‘¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡‘~‘‘‘�‘‘¡‘‘�~�~~‘~~~~}}~¡‘‘~~€‘‘‘~}~�~}��}}~‘}}}}~�~}~‘~}}‘}}}Óèýÿôך€}}}~‘žÙèõ÷ûýÿÿÿþýúõèàÓ™}}}}}}}�Çà÷ÿýõÙ™}}}pv}}}}v}}}w|vv}}}}vvpppvvvvvvppvvoovvvvooopvvpolooppoooooooooopvvpollloopolloolollovlllllllCllCllllCllolCClllllC>ClClCCçÿÇul›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$=!!@óÿÿÿÿÿ÷_!!!!!!!!!!!! !!! ! ! !! ! !! !! ! !! !!!!! ! !  =}ªíýþýýýþýýþýþÿþýþþþþþþþþþþþÿýþàÓ                                                                                                                                         ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��~~‘�~‘~~‘‘~~�‘‘�‘‘~~�‘‘¡‘~‘‘‘‘¡¡¡‘‘�‘¡¡¡¡‘¡‘�¡¡¡¡¡‘¡¡¡‘¡¡¡‘¡£¡¢¡�¡¡‘££¢¡¡¡¢¢£¢¢¡¡¡¡¢¢¡£¢¡¡¡¡¢££¦£¡¡££¢¢££¢¡¡£££¡£¦¦££åþÿÿÿÿÿí¦££££¦¦¦¦¢¦¦¦«¦¦¦¢£¦¦®¦££££«®££®¦¦¦®®©¦®¦¦®¦£¦£¦¢¦®®¦£¢£¦¦£¦£¦©®££¦®¦£¦¦¦¦££¦¦¦¦¦¦¦£££¦«¦¦¦££¦¦¦£££¦¦£££¦¢£¦¦£¢£¢¢££¦¢¢£¡£¥Ýÿÿÿë¡¢¢¢¦£¡¡¡¡¢¡¢¢¦¦¢¢¡¢¡¢¡¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘~‘‘‘¡‘‘‘‘‘‘�}�‘‘~~‘��~~‘‘‘}~¡‘‘‘~~~‘~}~~~}‘‘~}~~~‘~}~~~}}~}~~}}‘×õÿþíב}}}}}™§žÓ×ÚààÚÓ§ž‘v}}}}}}§×èûÿýõÙ™}ww}}vp}}vvvp}}vvvpv}vvvpvvppvvvvvppvpoovvppvoppppvvplpoopoloppoploppppllolopoolloooolCoplllllllllllolllllllllllllllCCllCCClƒüóyCuèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!Bóÿÿÿÿÿ÷_!!!!!!!!!!! !!!!!!!! !! !  ! !  !     !=}ªíþüÿýýþýýýýþþÿþþþþþþþþþþþþþþÿæÓ                                                                                            Ó×üüüüüüüüüüüüüüüýÿÿÿýÿÿÿþÿÿÿÿûÖ¢Ÿ�~~~€‘‘~~‘‘‘¡‘�‘‘�~~‘¡‘‘‘~~‘�‘‘¡‘�‘‘¡¡¡‘¡¡‘‘¡¡¢¡¡¡¡¡¡¡�¡¡¡¡¡¡¡¡¡‘¡¡¡£¡¡¡‘¡¡¡¡¢¢££¡££¢¢££¡¡¢¡¡¡¡¡¡¡£££££££££¢¡¢££¡¢¢¢£åþÿÿÿÿÿê«¢£®®¦£¦¦¡¢¦¦®®¦¦¦¦««®¦¦¦®®®¦¢£¦®¦¦¦®¦££®®®®¦££¦¦¦«££¦£¦®¦¦«®®®©£¦®¦£££££££¦¦¦£¦¦¦¦£££¦¦¦¦£¢¢££¦¦¦£££¦¦£¢¢££¢¡¢¡¢££¢¢¡¡¡¡£¨ûÿÿû§¡¢¦¢¦¦¡¡¡¢¡¡£¢¢¢‘¡¡¡¡¢¦¢¡¡¡‘‘‘¡¡¢¢¢‘‘¡¡¡¡‘¡¡¡‘‘‘�~�‘‘��‘‘‘¡‘�¡‘‘‘¡~~~‘¡¡��‘‘~‘‘~‘¡‘~}~~~‘‘~‘~~¡‘~}~~‘‘‘¡‘~�~�¡‘}}}}}~€~¡‘~~}}šàûÿýèÓ}}~~~~~}}}€‘}}}}}wv|vvžàõÿÿýõÚ™}w}}ppvvw}}vvvpv}pvpppvvpppp}vpopvpopvvvpoppopvooppoovvpvvpvvopoopoloolooooolooolooopoollvoollollllollllllollllCllCCClllllCllCCèÿÇoCƒýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!$!!Cóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!! !!!! !!!! !!! ! !!!!!! !=q¥íþþýýýýýýýýþÿþþþþþþþþþþþÿþþþþæÓ                                                                                                               ÓÓüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿþÖ��‘‘~~~~~}~‘¡‘�~�‘‘~~~‘¡‘~�~‘‘¡�‘¡‘‘¡�‘¡¡�~¡¡¡¡¡¡¡¡¡¡‘¡‘�¡¡¡£¡‘‘¡¡¡¡£¡¡¡�¡¡¡¡¡¡¢¡¡¡¡¢£¢¡¡¢¢£¢¡¢¡¡£¢££¢£©£¢¢¦£¡¢¡¢££¢££¦åþÿÿÿÿÿ릣£¦¦££®¦¡£¦¦®«£¦¦¦®¦¦¦££®®¦¦££¦¦¦£¦®¦£¦®«®¦¦¦£¦®¦££¦¦£¦¦¦¦®«®®¦££¦¦£¦¦££¦¦¦¦£¦¦¦¦¦££¦¦££¦¦¢££££¦¦¦¢£¦¦¢¢£¦¢¢¢£¢¡££¢¢£¢¢¡£êÿÿÿꢡ¢¦¢¡¦¢¢££‘‘¢¡¢£¡‘¡¡¡¡¢¢¡‘¡¡¡¡¡¡¢¦¡‘¡¡¡¡‘‘¡¢¡¡¡‘‘‘‘¡¡‘‘‘‘¡‘‘‘¡¡‘‘‘‘���‘‘‘‘‘‘�‘��‘‘¡�~~~‘‘‘~�~~‘‘~}~~‘¡‘€~~~}€¡€}}}}~~~}~~‘€}}}‘§æûÿýæ§}}~~}~}}}}}}}}v}}}ž×èúÿÿ÷æÓ™}}}p}}vwp}}pvv|vpp}vvvpp|vpvvv}wvpvvoovvvpvppppvpopppvopppvppvpopooooloolovooploplloplollllolovlllllllolCllllllCllClCCllllCCllCCCƒüú{CláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=9!!!Bóÿÿÿÿÿ÷_!!!!! !!!!! !!!  !! ! !!!!! ! !   !!!   !!!=}¥íýýýýýýþýýýýÿÿþþþþþþþþþþþþþÿþæÓ                                                                                                             Ó×üüüüüüüüüüüüþüüþÿÿÿÿÿÿÿÿÿÿÿÿúÖ� ~~~~~~~~¡¡‘‘~}~~~~‘~�¡¡¡€��¡‘‘‘‘��‘¡��‘‘~‘¡‘‘�‘�‘‘¡¡‘¡‘¢‘‘¡¡¡¡¡¡¡‘¢£¢¡¡¡¡¡¡£¢¢¡¡¡¡£¢¡¡£¢£¦¢¢£¢¡£££¡¡¡¦£¢£¦£¡¡££¦¦¦£®«åþÿÿÿÿÿꫦ¥¡¢¡¦®¦££¦¦¦¦¢£££¦£¦¦££¦¦¦®¦£¦®®¦®¦¦¦¦¦¦¦¦¦®¦¦®®¦®®¦¦¦¦©¦®®¦¦¦££¦¦¦¦«¦¦®¦£¢£¦¦¦£¢£¦¦¦¦¦¦¦£¦«¦¦¦¦£¢¢¦¦¦¦«¦¡¡£¦¦£¦££¦¦¦¦¢­ýÿÿõ¦¦¢£¦¢¡¡‘¢¦«¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¢¡¢¢¢¡‘¡¡‘¡¡¡¡¡��¡¡‘‘¡¡¡‘¡¢‘‘‘‘���‘¢¢‘�‘¡‘‘¡¡�~‘¡¡‘‘¡‘‘~‘€~‘‘~~~}~~}~‘‘~�}~‘}~}}~}~~}}}}~‘}}}}}}~}~~}}‘Óèþÿ÷Ú™}|w}}}v}~~}}}}™Óæ÷þÿýõÙžvv}w}}pp}}}}}vppp|v}}wpvv}}pvvvv}}v}vvppvvppvvvpvpvpvvppooolopppppooppoololvolllpoolloollllllCllllllCCCloolCllllllCCClCloollCCCCCCCCçÿ×ZC{ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿúx!!!!!!!!!! !!!!!!!!!!! ! !!   !! ! ! ! ! !!! !!! !!!!!  !!=qªíþþþþýýþýýýþÿýýþþþþþþþÿþþÿþþþæÓ                                                                                                                   ÓÓüüüüüüüüüüüüüüüüÿÿÿþÿÿÿÿÿÿÿÿþÖ ‘~}~~~�~~‘¡‘~~~~~~‘‘~~‘¡‘‘‘‘‘‘¡‘¡¡~�¡¡‘‘Ÿ¡‘‘¡~¡¡‘¡�~¡¡‘¡¡�¡¡¡¢¡�¡¡¡¢¢¡¡¡¡¢¡¡£¡¡¡¡¢¦¡¢¢¢¡¡£¦¢¡¢¢¢¡£¦¢¡¢££¢££££¢¢¢«¦££¦«êþÿÿÿÿÿ릣£££¢¦¦¦¦¦¢¦¦£££££££¦¦¢£¦£¦«¦¢«®««¦¢¦®¦¦¦¦¦¦«¦¦¦®¦««¦¦¦¦®¦¦¦«£¦££¦©£¦¦¦¦®¦¢£¦¦«¦¦££££¦¦¦¦¦¦¦¦¦¦¦¦£££¢¦¦¦¦£¢¡¢£¦¦£¢¢¦¦¦££íÿÿþÖ¢¢£¢¦¢¡¡¡¢¦¦¡¡¢£¡¡¢¢¢¡¡¡¡¡¡¢¡¡¢¢¢¡¡¡¡¡¢‘¡‘¡‘‘¡¡‘¡¡¡‘‘¢¢‘‘‘‘‘‘‘¡¢¢‘‘�‘¡‘¡¡‘~‘‘‘~‘¡¡~~‘‘~‘~~~~~~�~~~‘~‘}~‘~}~~~‘~}}}~}}�~}~}}}}}}~~}}}™Úõÿþèž}}}}}}}}}}�ÓàõýÿÿúæÓ™}vv|vp}}}wwv}v}}v}vpw}vvvvvvv}vpv}vvvvvvpvv|vppvvpoppvpvvvopvooopvopopoooopooooollpplloooolllllllllllllllClolClClllClllllCCouCCCCCCClC?ƒüý{CCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!@óÿÿÿÿÿ÷x!!!!! ! !!!!! ! !!! !!!!!!!!! !!   ! !  !! !q¥õýýýýþýþýýýýÿÿþþþþþþþþþþþþþþÿæÓ         !  !                                                                                          Ó×üüüüüüüüüüüþüüüþÿÿÿÿÿÿÿýÿÿÿþûÖ��}�‘�€€~~‘‘~~~~~‘¡¡¡�‘�~~��‘¡¡¡�‘¡�~‘¡¡�¡¡‘��~¡¢¡‘‘¡¡¡¢¢¡‘¡¢¡¢¡�¡¢¢£¡¡¡¡££¡¢¡¡¡¡¡¢£¢££¢¡¡¡£¢¡¢¢¢¢¡¦¦¢¡¦¦£¡¢££¦£¢¦¦¡¡££Ýþÿÿÿÿÿꫦ¦¦¦££¦¦®¦¢¡¢¢¦££¦¦¦¦¦££¦£¦¦££®¦¦£¢¢¦®¦£¦©¦££££££¢££¦¦£¦¦£¢£¦¦¦££¦®¦£¦¦®®¦££££¦¦¦¦¦¦£¢¦¦¦¢¢¢¢¢£¢£¦¦£¢¡¡¢¢£¢££¢£¦¡¢¦¦¢¢¢Ôýÿÿ릥¡£¢¦¢¡¡¡¡¢¡¡¢¦¢‘�¡¡¢¢¦¦¢¡¢¡¡‘¡¡‘¡¡¡¡¢¢¡¡‘‘‘¡¡¡¡¡¡‘~¡¥¢‘¡¢¡‘�¡‘‘¡‘�‘‘��~‘~�‘‘‘~�‘‘~‘¡‘~~~~~‘‘~‘~}}}}~}‘¡}}~}~¡‘}���~}~‘‘‘~}}}~‘~}}~~}žæýÿõÓ}~}}}}}Êèúÿÿýõמ�}vw}}}}}}}}}ppvpvpp}}}}}}}vv}v}}}ppvvppppppvvvvppppppvopoppovvvoopvoooooopolopoopollvvollllovvuolllloloolllllllClllllCllllCllllCCCCCllllClèÿßuC{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Y÷ÿÿÿÿÿ÷_!!!!!!!!!!    ! ! !  !!! !!  !!     !!   ! !p¥íþþþþýþýýýþýÿýýþþþþþÿýÿþþþþÿýæÓ        !                                                                                 ÓÙüüüüüüüþüüüüüüüüÿÿÿÿþÿÿÿÿÿÿÿþÖ��~~~~~~‘‘�~~‘�‘‘‘‘‘‘~‘‘�~‘‘¡¡¡��‘‘¡‘�¡‘‘¡¡¡¡~�¡¡‘�¡¡¡¢¡¡¡¡¢¡¡‘‘¡¡¡¡¢¢¡¡¡£¡¡££¡�¡‘¢£¢¢£¢¡¡¡¢¢¢¢¡¢£¡¡££¢££¦¢¡¢¦¦¢¢££¢¢¢£åþÿÿÿÿÿ릣¦¦¦¦£®¦¦¦¢¢££¦¦¦¦®¦££££¦¦¦®£¢¦¦¦¦£¢®®¦£¦®¦££££¦¦££¦¦®££¦¦¦£¦¦¦££¦®¦£¦¦«®¦££¢£¦¦¦¦¦¦£££¦¦£££££¢£¢£¦£££¢¢¢££¦¦£££¢¡¦¦¢¢£íÿÿý­¦¦¢¢¢¡¢¡¢¡¡£¢¡¢¢¢¡¡¡¡¢¢¢¦¢¡¢¡¡¡¡‘¡¢¢‘¢¡¡¡¡¡¡¡¡‘‘¡¡‘‘�‘¢¡¡¡¢¡‘~‘¡‘¡‘~‘‘‘‘‘‘‘‘‘‘�‘‘~�~‘‘‘‘‘‘�}~‘�~‘~}��~~�‘~}~}~€‘}‘‘~~}}~‘‘}}}}‘~~~}}}}}}ÓõÿúÓ}}}}}˜àûÿÿúæÓ™}}v}}}}}}}}}}}}vp}}}ppv}}}pv}|vvpv}vpv}vopvpppvvvvvvvpvvplpppppvvpoppopoolooopoppooopolopolllopooplollulllolllllollllllCllClClllCCllClllClCCl”üþƒCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Bóÿÿÿÿÿ÷_!!!!!!!!! ! !!!! !!!!! ! !   ! !  ! !  !9q¥íýýýýþýýýýýýÿÿþþþþþþýþþþÿþþýÿèÓ                                                                                     ÓÓüüüüüüüüüüüþüüüþÿÿÿþÿÿÿÿÿÿÿÿúÖŽ�~~~‘‘~~�}}‘¡‘¡¡‘~~~‘‘¡¡‘‘‘‘‘�~‘¡¡¡¢¡~�¡¡¢‘��‘¡¡‘¡¡¡¡¢¡¡‘¡‘¡¡¡¡¡‘‘¡¡¡¡£¡¡¡¡¢¡‘¡¢¢£¡¡¡¡¢£¢¡¢¢¢¡¡¡£¦¢¡££¢¡£¦£¡£¦£¢¢¢¢¢£¦êþÿÿÿÿÿꦢ¦¢£¦¦¦¢¢¢¡£¦¦®¦¦¦¦¦¡£¦«®®®¦¢¢¦¦®¦£¢£®¦¦£¦¦©¦¦®®¦£¦®¦¦¦¦¦¦¦££££££¦«¦£¦¦¦¦¢£¦¦¦££¦«®¦£¦£¢¦¦¦£¦¦££¢¡¦««¦£¦¦¢¢£¢¢¢£¢¡¡¦£¢ÖþÿÿÚ¢¡¦¢¢¡¡¢¡¢¡¡¢¡¡¡¢¢¢¢¡¡¡‘¢¢‘‘‘¡¡‘¡¡¡£¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡‘¡¡�‘¡‘‘‘¡‘‘¡¡‘‘‘‘‘¡¡¡‘¡¡‘‘¡¡¡¡��‘‘¡‘‘�‘‘�~~~~‘~~~‘~~}�‘‘‘�~~}}~‘}~‘}}}}}~}~~}}}}}}}}}}}žõÿõ™p}}�Úÿÿýæž}}wv}}}}}ppvvpp|}pp}}}}}vpwpvvvvvppvvvvv}vppvwvpppppv}ppv}opppppppooppolloooooovppoooooooollllloolllClovvolloolllloovolllllClllCllCCllllllCCCCCuèÿèuCzúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Z÷ÿÿÿÿÿ÷_!! !!!! !!!!!!! !!! ! !! !    ! !!!  !!  !   =qªíþþþþýþþýýþþÿýþþþþÿýÿþþþþþÿýÿàÓ                                                                                   Ó×üüüüüüüüþüüüþüüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��~~~‘‘~~~~~�‘‘‘‘¡~}‘‘‘¡¡‘‘¡¡�~‘¡‘¡¡¡‘~¡¡¢¡¡~‘¡¡¡¡‘¡¡¡£¡‘¡�¡¡¡¡¡‘�¡¡¡¡¢¢¡‘££¡¡¡¡£¦¡¡¡¡¡¡££¡¡¢£¡¡¢££¢¢¡¢¡¡¦¦£¡¢££¢¢¢££££åþÿÿÿÿÿ릢£££¦¦££££££¦¦¦¦££¦£¢£®®¦¦®«££¦¦¦¦£¢¦£«®¦£¦®¦¦««¦£¦¦¦©¦¦¦¦¦£££¦£¦¦¦£¢¦££££¦¦¦¦¦£¦¦«£¢£¦£¦¦¢£¦¦£££¢¦«¦¦¦¦£¢¢¢£¢¢¢¢¡¢¦¢¦öÿÿöª¢¡¢¢¡¡¢¢¢£¡¡¡¢¡¡¢¢¢¢¡¡¡‘¢¦¡‘‘¡¡¡¡‘¡¢¡¡¡¡‘¡¡¡¡¡¡‘‘¡‘‘¡¡¡‘‘‘‘‘‘‘¡¡‘‘‘�‘‘‘¡¡‘¡‘�‘‘¡¡‘�€‘‘‘‘‘‘~‘‘‘~}~‘‘‘~~‘~}}~‘€‘~}}}~¡}}~‘~}}~�}~}}}}}}}}}}}}}ÓþýÓ}}}§üÿúÓ�}wv}}p}}}}}}}vpv}p}}v}}}v}pv}v}vp|}vpvv|vv}pov|vvp}vppvvvpvvvvpovppvpopoopolovpppooooooooopoololloollllllopollllllllllvulCllCllollCCCClllloCCCllllƒüÿ›CCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!=Cóÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!! ! !!!! ! !  !!! !! ! !!   =}¥õýýýýþýýþýýýÿÿþþþþþþþþÿþýÿýþþæÓ           !   !                                                                                Ó×üüüüüüüüüüüüüüüüÿÿÿÿÿÿþÿÿÿÿÿûÖŸ�~~~~~�‘¡~}~~~�‘¡¡��‘��~~�‘~~‘‘�~~��~~‘�‘¡‘¡¡¡‘¡¡¡‘�¡¢‘¡¡¡‘¡‘¡¡¡¡¡¡¡¡¢¢¡¡¦¦¡¡¡‘¡£¡¡¦¦¢¡¡¡¡¡¢£¢¢¢£¢¡¡¢¢¡¢¢¡¢££¡¡£¦¦¦¦¦¢Úþÿÿÿÿÿꥢ£¦££¦¦««££¦¦¦¦¦¡£¦¦¦¦®¦¢¡£¦£¦¦¦£¦¦¦¦££«¢¡£¦¦¦¦£¦££¦¦¦¦¦¦¦¦¦¦®®®«¦¦££¦¦££¦¦¦¦££££¦««¦¦¦¦¦¢¢£«£¢¢¡¢¦£¢¢££££¢¢££¢¡¢¢¦¢¡ÚÿÿÿÖ¦¢¦¦£¢¦¦¢¢¢¡¢¢¢¡¡¢¦¦¦¡¡¢¡¡¢‘¡¡¢¢¡¡‘¢¢¡¢¡‘¡¡¡¡¢¡‘‘¡¡¡¡‘‘‘‘¡¡¡‘‘¡~‘‘¡¡¡~�~‘‘‘~~}�‘~�‘~‘‘~}�‘‘~‘¡¡‘‘¡‘‘¡~}~‘‘~€‘�~~}}}}~}}}~}}}}~}}}}}}}}}}}}}}}™íýÚ}}}Óÿÿæ}w}}}~~}pvp}}qvp|}}}}p}|vpppv}}ppppv}pppvvvpvvpv}vvv}}popopvvppvopvvvvvvppvvppvvvooovopvooopooovvolopooppollllouolltlllullClllllCCClolCCCCCClllCCCCCCßÿòt>uúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!9=Yóÿÿÿÿÿ÷_!!!!! !!!! !!  !  ! ! !!!!!!! ! !   !!!!!!!! !  !=}ªéýþþþýþþýýýýÿýýþþþþÿþþþþÿýþÿþæÓ                                                                            ÓÙüüüüþüüýüþüüþüüüÿÿÿþÿÿÿÿþÿÿÿþÖ��~}~}~‘¡¡~~}~~‘�‘‘‘‘‘~‘��~‘‘~~¡‘~~‘‘~��‘‘‘¡¢¡¡‘‘¡¡¡~‘¡¡‘¡¡¡‘¡¢¡‘¡¡¡¡¡¡¡¢¢¡¡¡¢¡‘¡¢¡¡¢¦¢¡¡¡¡¡¢¡¢¢¢£¢¢¢££¢¢¡¡¦¦¢¢¡¢££¦¦££Ýþÿÿÿÿÿ릡£¦£¢£««¦¦¢¦¦¦¦£¢£©¦¦¦¦££¢¦¦¦¦¦££¦¦¦¦¦£¢£¦£¦¦¦¦£¦¦£¦®¦¦¦£££¦®¦¦¦®¦¢¦¦«¦£¢¦®¦££¦¦¢£¦««¦¦¦£¢¢£¦¦¢£¢£££¢¢£££¦¢¢£¦£¡¡¡£¥¦øÿÿí¦¢¢£¦£¢£¢¡¡¡¢¢££‘‘¢¦¢£¡¡¢¢¡¡¡¡¡¢¢¢¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡�‘¡‘¡¡‘�¡¡‘‘‘‘‘‘�‘¡¢‘~�‘‘¡‘~~~‘‘�~~‘‘~~~‘¡‘~‘‘¡‘‘‘‘¡‘�}~~‘‘~‘€~~~}~~}}~}}}}}~}~~}}}}}}}}}~}}}�æþà}}}Óÿý×v}}v}‘}v}}}p}v}|wpw}}v}|}vpvv}}wpwvpvvvvvvpvvvpw}vpp}}povpvvvooppvvovvppvoppvvpvpooopoppoovoplovpooopolvvlllllopulllolllllClllClClllooCCCCllClllCCCCC{üÿ�CCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!=!!Bóÿÿÿÿÿ÷]!!!!!! !!!! !!!!!! !!!! ! !!!!  ! !!  !  !!   =s¥íþýýýþýýþþýþþÿÿýÿþþþþþÿþýÿþýÿèÓ                                                                                                 ÓÓüüüüüüüüüüüüüüþþÿÿÿÿÿÿÿÿÿÿÿÿúÖ �Ž‘�~‘~~‘~~�~~~‘~��~~‘‘��¡¡‘~‘¡‘�¡¡¡~‘¡¡¡¡¡¡‘¡¡‘¡¦¡‘¡¡¡‘¡¡¡¡¡¡¡‘¡¢¢¢¢¡¡¢¡‘‘¡¢¡¡£¢¡¡¡¡¡¡¦¢¢¡¡¡¢£¦£¢¢££¢¢£¡¡¦¦¦£¢¢¡¡£¦¦¦êþÿÿÿÿÿꦦ¦«¦¢¢£¢¦¦££¦¦£££¦®¦¦¦¢£££¦¦£¦£¢£¦®¦¦®«¦®®¦£¦¦¦£¢£¦¦¦£¦£¦¦¦¦¦¢£¦£¢¢«®¦¦¢¡¦®«¦«¦£¢¢¢¢£¢£££¦¢¢££¦¢¢¢££¢£¦¦¦¦££££¢¢¢¢£¦êÿÿý­«¦¡¡¢¢¡¡¡£¢¢£¢¢¢¡¡¢¢¡¢‘‘¡¢¢¡¡¡¡¢¢‘¡‘¡‘‘¡‘¡¡£¡¡‘‘¡‘‘¡¡¢¡�‘¡¡‘‘‘‘¡‘~~¡‘~~‘¡¡¡‘¡‘~�¡¡~~‘‘€‘�‘‘‘}}~~}~~~}~}}~~~‘€~}}}}‘‘~}�‘}}~~~}}~~}}}~}~}}�}}~}‘Úÿà}}}Ùÿúž}}}}}~}p|}}}}}}}}}ppv}vvvp}}}}}vvv|vpv}|}vpp}pppvvoovpopvvvvovvvvvolopopplollpoppovvllloovopollolvooolllllllloolllCllllllluuollllllCllCClCCClCCCCCClClèÿ÷uCu÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Bòÿÿÿÿÿ÷_!!!!!!!!!!! !!! !!! !!!! !! ! !!!  !! ! ! !!  ! =w¥íýþþþýþþýýþþÿÿýýýþþþþÿýþÿýþÿýàÓ                                                                                      ÓÙüüüüüüýüýüüþüüüüÿÿÿþÿÿþÿÿÿÿÿþÖ �~~‘‘~}~~~~‘�~~~¡~~~~‘‘~‘¡¡‘~�‘‘‘¡¡‘�‘¡¡‘¡¡¡�~‘¡¡¥¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¢¢¢¢¢¡¡¡¡¡¡¢¢£¡¡¡‘¡¦¡¢¢¡¡¡¡¦¦¢£¢¡£¦¢¢¢£¡¡¢¦£¢¢£¡¡£¦¦¦êþÿÿÿÿÿ뫦¦¦¦¢££££¦¦£¢£¦£¦¦¦¦¦¦¢£££®¦££¦¦£¦¦¦¦®®®«¦¦£¦©¦£££££££¦¦¦¦¦«¦¢££¢¢£«®¦££¢£««£««¦¦£¢¢¢¢£¢¢££¢¢£¦¦££¢£¢¢¦¦¦¦¦¦£¢¢¦¢¡¦°ûÿÿꦫ¦¡¢¢¡¡¡¢£¢¢¦¢¡¡¡¢¡‘¢¢¡¡¡¢¢¢¡‘¡¢¡¡¡‘¡¡‘¡‘¡¢¡¡¡¡¡‘‘‘¡¡¡‘‘‘¡¡¡¡‘‘‘�‘‘��~�‘¡‘‘¡¡‘~€¡‘~~‘‘‘‘€‘~~�}~~~~~~}~}}‘‘}}~}~‘}~€~�}~‘}~~~~}}}}~}~~}}}}~~}}}�Óÿæ}}Ùÿõš}}}}}}}}}p}pv}}}}vv}}|v}pvp}}}}}pwvvppv|v}ppvvppvpppppopv|vvppvvvvoopvoopvolooovpopoloooooovopuooovoollollllllvlllCCllllllvolClllllCCCCllCCCllCCCCCCCCƒüÿÉCCÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ!=!!Bóÿÿÿÿÿ÷_!!!!9!9!!! !!!  !  ! !!! ! !  !! !   !!   ! !=q¥íþýýýþýýþþýýþÿþþÿþÿþþýÿþýÿþýÿæÓ       !                                                                                           ÓÓüüüþüüüüüüþüüüþüÿÿþÿÿÿÿÿÿÿÿþûÖ��‘‘~~~~��~��‘‘~‘‘��¡¡‘‘‘~~‘‘�‘‘¡¡‘‘¡¡¡‘¡‘‘~‘‘‘¡¡¡¡¡¡‘‘‘‘¡‘‘¢¡¡‘¡¡¡‘‘‘¡¡‘‘¡¢¢¢¡¡¡¡¡¡¦£¡¡¡¢¦¡¢¦¢¡¡¡£¦¡¢¢¡¡¡££¡¢¢£¢¡¡£¢¡¡Ýþÿÿÿÿÿꥦ¦¦¦£££¦£¢¦«£¦¦¦¦¦£¦¦¦¢£££®®£¢¦®£¢£¢£¦£¦¦£££¦£££¦¦¦¦¦¦££¦£¦«®«¦££¦¢¦«¢¢¦¦¦¦¢¢£¦««¦¦¦£££¦¢££££¢£¦«¦¦£¡¡¢¢¢¢¢£¢¢£¦¢¡¢ëÿÿø¦¢¢¡¡¡¢¢¢¦¢¢¡¡¦¢¡¡£¦¡¡££¢¡¢¢¡¢¢¡¢¢¡‘¡‘‘¡¡¡‘‘‘¡¡¡¡‘¢¡¡¡¡‘‘¡�¡¡¡‘¡‘�‘¡¡‘¡¡‘‘‘‘~‘¡‘~‘¡‘~‘‘~‘�~~}~‘‘‘~~‘‘‘}~~~‘‘}�~}~‘�~~}}}}~€‘~}}}}}}}~€‘}}}}}}}}}}Óÿæ}}àÿõ™}}vp}}}}}}}}}}}p}qv}}v}p}p}}}ppp}}}}v|vvvppv}popvvvvvppovvvvooolpvpovvvppvvvvpovvpllovoollloolollooloollllooovvllllouolllllllllolCCllllClllCllCClllCCCCßÿúyCu÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿ÷_!! !!!!!! ! !  !!!!!!!!!!! ! ! ! !!! ! ! !!!! !!  ! !  =}ªõýþþþýþþýýþþÿÿýþþþþþÿýÿýÿýþÿýæÓ                                                                            ÓÙüüüüþüüþüüüüþüüüÿÿÿÿÿþÿÿþÿÿÿýÖŸ¡‘‘~}~‘€~�~‘‘‘‘‘‘~‘‘¡¡���~�‘€‘�‘‘~¡¡¡‘‘‘�~‘¡¡‘¡¡¡€‘¡¡¡¡‘¡‘‘£¡‘¡¡¡~‘¡¡¡¡¡¡¡¡¢¡¢¢¡¢¡¡£¢¡¡¢¢£¡¢¢¢¢¡¡¢£¢¢¢¢¢¡¢¡¡¢¢¢¡¢¢££¡¢Ýþÿÿÿÿÿꦦ¦£¦¦£¢¦¦¢¦¦¦¦¦¦¦£¢£££¦£¦¦®®¢¢¦¦¦£¢¢¦«¢¦£¢¦¦£¢¢£¦¦«««¦¢£¦¢£«¦®«¢£«££¦¢¢£«¦£££££¦¦£¦¦£££¦¦£¢££¢¢£¦¦¦£¢¢££¢¡¢¢¢¢¢¦¢¢­ûÿÿû§¢¢¡¡¢¢¡¢£¢£¡¢¡¡¡¢¦¦¢¢¢¥¢¡¢¢¡¢¡‘¢¡¡¡¡¡¡¢¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘‘‘¡‘‘€‘‘‘¡¡¡¡‘~�‘�‘‘~‘¡‘~‘‘~~~~~}~¡¡‘~‘‘~~~‘~‘‘~~‘}}‘‘‘‘€~~~~}~}}~}}}}}}}}~}}}}}}}}}}Óÿè}}‘àÿõ}}}}p}}}}}}}}}vv|}v|}vv}}}vvvvvvp}|}}vvpppvv}vpp|vpvppvpppvpoopopvpov}popvvvvpplvvolovvlloooooooloooooolllvulupllllootllllllloolCCllClCCloCllCClluCCCCC{ýÿÎCC›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Aóÿÿÿÿÿ÷_!!!! !!!! ! !!! !! !!!! !!! !  !! !!   !=}ªíþýýýþýýþþýþþÿýÿþþþþýÿýþýÿþýÿæÓ                                                              ÓÓüüüüüüüüüüþüýüþþÿÿÿÿþÿÿÿÿÿÿÿûÖ ‘~~}~~�~~~}~‘�~‘‘‘�‘‘‘‘‘¡‘‘~~‘‘‘~�¡‘‘‘‘¡¡¡¡‘~�¡¡�~¡¡¡¢¡¡¡~¡¢¡¡‘¢£‘¡¢¡¡¢¦¢¡‘¡¡¡¡¡¡¡¡££¡¡¢¢¡¡¢¡¡¡¡¡¡¢¢¢¢¢¢¢¢¡¢¦¦££¦¦¦£¢¢êþÿÿÿÿÿꫦ¢¡¡¦¦¢¢¦¦££¦¦¦¦¦£¡¢£¢£¦££¦®¦£®®«¦®¦¦«££¦£¦®¦£¦«¦¦¦¦££««««£¦£««££«®««£¦«¦¦£££¢¡£¦¦¦¢¢£¢¢¦£¡£«¦¢¢¢¢¦¦£¦¦¦¡¢¢¢¡¢££¢¡­ûÿÿÿíÔ«£££¦¦¦¢¡¢¡¡¡¡¢¡£¢‘¡¡¡‘‘¢¢¡¡¡‘¡‘¡¢¡¢¢¢¢¡¡¡‘‘‘¡¡¡‘¡¡‘¡‘‘‘‘¡¡‘�‘‘‘‘‘¡¡‘‘¡‘‘‘¡¡‘‘~‘‘‘~‘‘‘‘‘‘‘‘‘‘~~‘€€~~~‘‘‘}}‘‘}}}}}~}�}‘‘~~}}}~‘~}}}}~}}}}}}}}}}‘Óÿõ~}™æÿè}}}p}}}wvppvp}}vvv}}}v}}}ppv|v}pppvv}vvvpvppvvvv}vpppvvvvppvppvpvpvpovllooopooollpvov}vllvpopvpooooollvoooolCloollllllllllClulllCCllClCCClCCCllCClClClCCáÿý{CCóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Yóÿÿÿÿÿ÷x!!!!!!!!!!!!! !!!!!  !!!! !!!!!!! !!     ! ! !!   ! !!!!!!   $qšíþþþþýþþýýþþÿÿýþþþÿþÿýþÿþþþÿýæÓ         !  !                                                              Ó×þüüýüþüþüüüüüüüüÿþÿÿÿÿÿÿþÿÿÿýÖ �~}��}~~�~}~‘‘‘‘‘‘~~‘‘¡¡‘¡‘‘€¡¡‘~~‘‘~‘‘‘¡¢¡‘�~‘‘‘‘‘‘¢¥¡¡¡‘‘¡¡‘¡¡¡¡‘¦¢¡¢¥¢¡‘¡¡¡¡¡¡¡¢¢£¡¡¢¡¡¢¢¢¡¡¡¡¡£¢¢¢¢¢¢¢¡¡¦¦¢¢¦¦££¡£åþÿÿÿÿÿ뫦¢£¡£¦¢¢££££¢¦¦¦££¢¢¢¢£££¦¦«¦«¦¦®®¦¦£¦£¦¦£«®£««££¦«¦££«««®«££££££¦«¦¦¦««£££¢£¢¢¢££¦£££¢¢¢£¢£¦¦¢¡¦¦¢¢¦¦¦¢¡¢£¢¢¢¢¢¢¡¢êÿÿÿÿûݦ¦¦¦£¢¢¢¢‘‘¡¡¢¢¡¡‘¡¡¡‘¡¡¡¡¡¡¡‘¡¡¢¢¢¢¢¢¡¢¢¡�‘¡¢¡‘‘¡‘‘¡‘‘‘‘¡¡¡~‘‘‘¡¡¡‘‘‘¡‘‘¡¡‘€‘~‘~~€€‘¡‘‘‘¡‘~}‘‘~~~}~~‘‘~‘~}}}}}}~~}}‘‘}}}}}}‘€~~}}�}}}}}}}}w}‘×ÿõ~}�æÿè}}p}}v}}}}vvs}}}wpp|v}}p}}||v}pvvvvp|}|pppvvpv}pv|vpvvvvvvppvvo}wplvvppolopplpoooolvov}volvvolppooolovllooolllloullClllClClllllCCllCCllCCllllClCCCCllCllC{þÿáC>›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷_$!!!!!!!!!!!!!  !! !!!!!! !!!!      !    !  !9p¥íþýýýþýýþþýþþÿþþýÿýþýÿþýÿþÿýÿæÓ                                                             ÓÓüüüüüüüüüüþüþüþüÿÿÿÿþÿÿþÿÿÿÿúÖ��}}‘¡�~‘‘~~‘‘‘€~~~~~~~‘‘‘‘~‘‘�¡¡‘‘¡¡��‘�‘‘‘¡¡‘¡¡¡¡¡‘¡£¡¡‘‘¡£¢¡¡¡¡‘¡¦¡‘¡¡¡¢¡¢¡¡¡¢¢¡¡¡¢¢¡¡¡¢¢¢¦£¢¢¡¢¦¦£¢¡££¢¡£¦¦£¢¦¢¢¢¢¡Ýþÿÿÿÿÿꦥ££¢¢¡¢££££¢¢¢£££¦££££¦¦¦¢£££¦¢¢¢££®««¦£¢¢£¦«®£¡¦¦££¦¦£¢¢¦¦¢£¢¢££££¦¦££¢¢£¦¦¦£££«®¦£££¢£¦¦££¦¦¢¢¦£¡¡£¢¢¦¦£¦¦££¢£££¢­íÿÿÿÿýꥡ¢¦¢¢¢¢¡¡¢¢£¡¡¢¢¡¡££¡‘¡¡¡¡¢¢¡‘¡¡¢¡‘‘‘¡¢¡‘‘¡‘¡¡¡¡¡‘¡¡‘¡¡‘¡¡¡‘¡¡‘¡€�‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘~~‘‘‘~~‘}}¡‘~~‘‘€~}~}�}}~‘‘‘‘‘~}�~}}~}}~}~}~~}}}}}~}}}}}}}‘Ùÿõ}wèÿè~}}}}}}}}|p}}|}}v}}}}vvvvv}}}}vv|v|vv}vvv|}vv}vppvvvpvvvvpvvpppv}povvvvvvvvoloppvvpollpollvplllloooovolllllolllllllllollCllllllCCuollllCClCClCCCCCCCCCCCClèÿÿƒClòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zóÿÿÿÿÿ÷]!!!!!!!! !!!! !! !!  !  !!  !!    ! ! !   !  ! !=}ªíþþþþýþþýýþþÿÿýþÿýþÿýÿýÿýþþÿýæÓ                                          Ó×üüýüþüüþüüýýüýüüÿÿÿÿÿÿÿÿÿÿÿÿûÖ��}}‘‘~~‘€‘‘~~�‘~}~‘‘~}}‘¡‘�‘‘€¡¡¡‘¡¡~‘‘‘��‘¡‘�¡£¢¢‘~‘¢¡¡‘¡¡¡¢¢¢¡¡‘¡¢¡‘¡¡¢¡¡¦¡¡¡¢¢¡¡¡¢¢¡¡¡£¢¡¡£¢¢¢¡¢£¢¡¡¢¢¢£¦¦£¦¦¢¢¢¢¡¢Ýþÿÿÿÿÿ릣£¢£¡¡¢¢¢¢¢¢£¢¡¢¦¦¦££¦¢¦¦££££¦£¢¢¡¦®¦«®¢¢¢¢¦¦¦£¡¦®££«¢¢££¢¢££££££££¦«£¢£¢£¦¦«¦££¦«¦¢¢£¦¦¦£¢£¦¦££¦¢¢¢¡¢£¦¦£¦£¦¦¦¦£££¢¦êÿÿÿÿÿõ§¦£¡¢£¢¡¡¢¢¢¡‘¢¦¢¡¢£¡¡‘¡¡¡¢¢¡‘‘¡¢‘�‘¡¡¡¡¡¡‘‘¡¡‘¡¡‘‘‘¡¡¡‘‘¢¡‘¡‘¡‘�‘¡¡‘‘¡¡‘€‘‘‘‘‘~�~}‘‘~}‘‘}}~‘}~‘‘�}}}~}~}‘‘‘‘~‘‘}€‘}}}~~}~‘}}~}}}}}}}}}}}}}‘Ùÿò}v�èÿæ}}}}p}}}}}pv}}v}}}}}vv}v|v}}vpv|v}vp|vvvv}}pv}|ppvvppvvvpvpvvvvv}pppvvvvvvvooooovvpplloollooolooooooolloollolllllolCllllllllCllCCulCClCllCCllCCCCCCACllCCC{ÿÿòCC˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_ !=!!!  !!! !! !   ! ! !!  ! ! !   ! ! !!    !  !  !9ŽªõþþýýþýýþþýþþÿþþýÿþþþþþýÿþÿýÿèÓ          !                                                   Ó×üüüýüüüüüþüüýüýþÿÿþÿþÿÿÿÿþÿÿúÖ��Ž}~‘‘}~~�‘‘~‘¡‘~��~‘‘‘‘‘‘~‘�‘‘‘‘‘¡‘‘~‘¡‘¡¡¡~~¡¡‘¡‘~¡¡‘‘¡¡¡‘‘‘¡¡‘‘¡¡¡¡¡¡‘¡¡£¦¡¡¡¢¡¡¡¢¡¢¡¡¡££¡¡¡¢¦¦¦¢¢£¢¡¡¡¢¢¢¢¦¦¢¢¢¢£¢åþÿÿÿÿÿꦣ££££¦¦¦£¦¦¦¦¦¢£¦¦¦¦««¢¢¦¦¦¦££¢£¦¢¦«¢£¢¢¦¦««¦®¦¢¢®¦£¦¢£®«£¦««¦¦£££¢£¦¢¢¦¦¦¦¦¦£¦¦¢£¢£¢¢¦¦£¢¢¢¢¢¢¢¢£¦¦£¢£¦¡¢¡¡¢£¢¢¡¡¢¢¡¥àþÿÿÿÿøÜ¢¡¡¡¡¡¢¢¡¡¡¢¡¦¦¡‘¡¡¡¡¢¡¡¡¡¡¡‘¡¦¡�¡¡¡¢¡¡¡‘‘¡¡‘‘¡¡¡¡¡¡‘‘¡‘‘‘‘¡¡¡‘~‘‘~~�‘‘‘�~‘‘‘‘‘‘‘¡‘~‘‘‘~�‘‘~}‘‘‘‘�‘~~}~‘‘~‘}}}}}~}~}~~}}}‘~}}}}}€�~}}}}}}Ùÿõ}}™õþà}}}}v|}}}}w}‘}|vvp}vpvv|}}}}vv|}vvvpv}|vv}vov}vpvvvpv}vpvvvvvvvppoovopopvpvvppvvvoloooppovopoooooolollvllllulloololllllllllClllCClllCClltlCllCCCCCCCCClCCCCñÿÿÆCtòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ$==9@÷ÿÿÿÿÿ÷_!!!!!! !!!!!!!!!!! !!! !!!!!! ! !  ! ! !!!  !  !q¥íþþþþýþþýýþþÿÿýÿýÿýÿþÿþÿýþþÿýàÓ                                                 ÓÙüýüüüüþüýüýüýüüüÿÿÿÿÿÿþÿÿÿÿÿûÕ��~}~‘‘~}~€‘‘~~‘�~~€‘‘¡‘~‘~‘‘€¡‘‘‘‘‘‘~~‘¡‘‘¡¡~~€‘�‘‘¡‘‘‘~¡¢¡¡‘�‘¡‘‘¡¡¡£¢¡‘‘¢¡££¡¢¦¡¡¡¡¢¡¡¡¡¦¢¡¡¡¢¢¢¦¦££¢¡¡¢£¡¢£¥¦£¢¢£££Ýþÿÿÿÿÿꥦ¢¢¢£¦®¦¢¦«¦¦¦££«¦£¦®«¢¢£¦¦¢¦¦£¦«¢££¢¢¢¦«£«£¦««¦¢¦£££¢¦±®¦«««¦«£££¢£££¦¦¦££££¦¦¦¢£¦£¢¢¢¦£¢¡¡¡¢££¢££¦¦¢££¢¡¢¡¢£¢¡¡¢¡¡¡¡¥Ýýÿÿÿÿýঢ¡¡‘¡£¡¡¡¡¢¥¢¡¡¡¡¢¢¦¡¡‘¡¡¢¡¡¡‘‘¡¡¡¡¡¡¡¡¡‘‘‘‘¡¡‘¡¡‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘�}~‘‘~€‘~¡‘‘‘‘‘~~‘¡‘�‘‘€�‘�}}‘‘~‘‘}~‘�}~‘}~~}}~~}}}~}}}‘‘}}}}}�}}}~}}}}àÿõ~~šõþÚ}}}}}}}}v}}~}}v}vvv}||vv}}|vvv|vvvvvw}}vvvvpv}vop}vvvvvppvvpppoppppvvppooovvpvvvvplpolooopoovvlloolloovoClllllovlluluoououllCClCClllCCCloCCllCCCCCllCCCACCCƒÿÿúxC›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!@óÿÿÿÿÿ÷_!!!! !!!!!!!!!! !!!9!!! ! !   ! ! ! ! !! !   =p¥õþþþýþýýþþýþþÿþýÿýþþþþýÿþÿþþÿèÓ                                                                  ÓÓüüüþüþüüüþüüýüþüÿÿÿþÿþÿÿÿÿþÿûÖ�Ž}�‘~~~�~~‘~~‘‘‘‘‘‘�~~~�~‘‘‘~�‘€‘‘‘‘‘‘¡¡‘�¡¡¡¡¡¡¡¡¡¢¡‘‘‘¡¢¡¡¡�‘¡¡¡‘‘‘¢¡‘¡¢¡¡¡¡‘¢¦¡¡¡‘¡¦¢¡¡¡¡¡¡¦£¢¢¡¡¡¢¢¢¡¡¡¢££¡¡¡¢£¦¦¦êþÿÿÿÿÿꫦ¢¢£¢¦¦¦¢¢¦¦¡¢¢¢¦£¢£«¦¢£¦¦¢£®«¦£¢£¦¦¦¦£«¢¢£¢£££¦¦«¦£¦££®¦¢££¦£¦£¢£¢¦«¦££¦¦££££¦¢¡¦®¦¦££¢£££££¢«¦¦£¢¢¢£¦¦¢¡¢£¦¦££¦¦¡¢¢££¥Ôöÿÿÿÿþö­¡¢¡¡£¢¡¢¢¡¡££¡¢¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¦¡¢¢¢¡¡¡‘‘¡‘¡¢¡¡‘‘¡¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘}~‘‘}}‘€~~‘‘�~‘€~}�~~‘}}}~}}}}}‘~€�~}}}}}}~~}}}}}}}}~}}}àÿô}}™õýÓv|vp}|}}vvvv}}}|vp}|}|vv}vvv}|vv||v|vvpv|vvpvvvpv}vvvpvvp}}ppvppvoopvoopoppllovpoollopvvoolopplopplllolllllllluplllCllllClllllCllllClllClCCllClllCCCCCCClCAlèÿÿßCl÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9=!!Yõÿÿÿÿÿ÷_!!!!!!!! ! !!!!!!! ! !!! !!  !! !  !!   ! ! !!!! !    ! !=}ªíþþþþýþþýýþþÿÿýþþþÿþÿþÿýÿýÿþþæÓ                                                ÓÙüüüüüüüþüýüýýüüüÿÿÿÿÿÿÿþÿÿÿÿþÖ��~€~~}‘~~~}}~¡¡‘‘‘‘‘‘~~~‘‘‘‘~‘‘‘�‘¡‘~�¢¡‘‘‘¡¡¡¡¡¡‘¡¦¡€¡¢¡¡‘¢¢‘¡¢¢¡‘‘‘¡¡¡¢¢¡‘¡‘¡¡¡¡¡¡¡¡¦¦¢¡¡¡¡£¦£¦¢¡¡££¢¢¡¡¡¡¡¡¡¢¢¡¢¢¦¦åþÿÿÿÿÿ뫦¢¢££¦«¦¢¢¦¦¢¡¢¢£¦££¦££¦¦¦¢£«®£¡£¦¦¦®®££¢¡£¢¢¦££«¦££¦¦««¦¡¢¢££¦¦££££¦¦££¦¦£££££££¦¦¦£¦¢¢£¢£¦¢¢¦«¦£¢¢¡£¦¦££¢££¦«¦¦¢¢££££¢¡­êþÿÿÿÿûড¢¡¢¡¡¦¢¡¢¢¢¦¦¡‘¡¢¦¡¡¡¡¡‘‘¡¢¥¦¡¢¦¡¢¢¡‘¡¡¡¡¡¡¡¡‘¡¡‘‘‘¡¡‘~~‘‘‘‘‘~‘¢¡‘‘~~‘‘¡‘‘~~~‘‘~}~‘~‘‘¡‘‘~~~€~~}‘}}}~�}}}~‘€}~~}}}}}}€}�~}}}~}}}~�vàÿò|vš÷ýÇvv|vp}}}vrpvvv}}vvv}}}|pppvv}}vvvv}}}vpv}vvvv|v|}vvvvvvvvvvvvpvpppoppopopvlolopopooollvvvolloolouvolllolloulllllllCCCllClllloClCllCllCCCCClttltlClCCCCCCCCCC”ÿÿÿ›CÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!Zóÿÿÿÿÿ÷]!!!!99!! ! ! !! !!!!!! !! !!   !  ! !!  ! ! ! !! !=}ªõþþþþþýýþþýýÿþÿýÿþþþþþýÿþýÿþÿæÓ  !     !                                         Ó×üüþüüþüýüüýüüýþþÿÿÿþÿþÿÿÿÿÿÿúÖ ��~€~‘‘‘�‘‘‘~~‘~‘‘}~‘‘¡¡¡¡‘��~~‘‘‘¡‘�‘¡‘‘‘~‘¡¡¡¡‘�¡¡‘�¡¦¡~¡¢¡�¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¢¢¡£¢¡¡¦¢¡¡¡¡£££¦£¢¢¢£¢£¦åþÿÿÿÿÿꦦ¦£££¢¢¢¢£¦££¦¦¦¦£¢¢¦¦££¦¦¢¢¦¦¢¢¦«£¢«®¦¦¦¢££¦«£¢££¦££¦£££¢£¦¦¢¢£££¦¦££¢£¦¢¢£££¦£¢¢££¢¢¢£«¦£¢¢£¦££££¢¡¡¢¢¢¢¢¢¢¡¢¢¢¢¦¦¢¢¡¡¡¡¢­õÿÿÿÿþö­¦¡¢‘¡¢¢¡¡¡‘¢¦¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘¢¢‘¡‘‘‘‘¡‘¡¡¡‘‘‘‘‘¡¡¡¡‘~‘¡‘�‘‘‘‘‘‘€~~~~€‘~‘‘€~}~}‘‘}}‘‘€‘€‘}}~‘~‘~}}‘~}}‘‘}~‘�}}}}}}}}}‘}|}€}èÿõ}}žúû§|}}}}}}}}}v}}}}}v|}v}}v}v|}}}vvp|vv}vp|vvppvpvvvvopvvpvvvplvvpvopppvvvvvvooploppvppollplllooppllooooooloolloolloollllvlCloltlollllltlltllCCllCCCCCCllltlCCACC÷ÿÿõZlýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!!Bóÿÿÿÿÿ÷_!!!!!=!!!!!!!! !!!! !  ! ! !! !  !     !! !! ! !qªíþþþþþþþýýþþÿÿýÿýþþÿþÿþÿýÿþþþæÓ       !                                   ÓÙüüüüüýüýüýüþüüüüÿÿÿÿÿÿþÿþÿÿÿûÖ¢‘~}‘¡¡‘‘‘‘‘‘‘~~~‘‘~~~‘¡¢¡‘‘‘‘�‘‘~�¡¡~~~~‘‘‘‘‘‘‘¡‘‘¡¡‘‘¡¦‘�‘¢‘‘¡¢¡¡¢¢¡¡¡¡‘¡¢¡¡¡¢¡¡¢£¡¡¡¡¡¡¢¡¡¡¢¡¡¡¡¡¢¦¢¡¡¡¢£¦¦¦£¢¢¦¦¦££êþÿÿÿÿÿ榦¦¢¦¦£¢¢¢¦¦£¦¦¦¦«¦¢¢«®¦£££¢¢£¦£¢£«£¢««¦£«¦£¦¦¢£¢££¦¦£¢¢¢¢£¦¦£¢¢¢¢£®«¦£¢¢¡¢£¦££££¢¢¢£¢¢¡£««¦¢¡¦«£¢¢¢¢¡¡¡¡¢¢¢¢¡¡¡¡¡¡¦£¢¡¡¡¡¡¢¡¦êþÿÿÿÿûꦡ¡¡¡¢¡‘‘‘¡¡¡¢¡‘¡¡¢¡‘¡¢¢¡‘‘¡¡‘‘‘‘¡‘‘‘¡¦‘‘‘‘‘‘¡¡¥¢¡‘‘‘‘‘‘¡‘‘�‘‘‘~~‘¡¡‘‘~~}~€~~‘‘‘~~�}}~}}}}‘‘‘~~~~~}}‘~�‘}}}~}}‘€}‘‘}}|v}}|}}‘}}}}}‘èÿñ}}§ûúž}}~}~~}}}}vv}}}}|}vvv}v}vvv}vv|}}vvvpv}|pppppvpvpopvppvvvplopopopvvvvpvppovpooovvvlllollllvollolovlouvullolluolllllllvvlllooouuCCluoullltlCCCCllCCClultCCCCCC�ÿÿÿÌCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!==!Cóÿÿÿÿÿ÷]!!!!!!!!!! !! !! !!   ! !!!! ! ! !!    ! !  !q¥íþþþþþþýþþýýþÿþþþÿþþþýÿþþÿþÿÿæÓ        !                                           Ó×üüþüþüýüþüýýüþüþÿÿýÿþÿÿÿÿÿÿþýÖŸ‘Ž}~€~~~~~�‘‘‘‘‘‘~‘‘~‘¡‘‘‘‘~‘‘‘¡~~¡‘‘‘‘‘¡¡¡‘�‘¡‘¡‘‘‘‘‘¡¡¡~¡¢¡~¡‘¡¡¡¡¢‘‘¡‘£¦‘¡¡¡¡¡¢£¡¡¦£¡¡¢¡¢£¢¡¢¢¢¡¢¦¢¡¢¢¡¢¢££¡¢¢¡¦¢¢¡Úþÿÿÿÿÿꫦ¥¢£¦£¦¢¢¢¢£¦£¢£¦£¡¢«¦¢¢¢£££¦¦££¦®£¢£¦£¢¦«¦®¦¢¦££¦¦«£¢¢£¦¦¦£¦¦£¢£¦¦££££££¦¦££¦¦£¢¢¢££££¦®«¦£¡¢¦£¡¢¦¦¢¢££££¢¢£¦¢¡¢¢¢¢¢¦¢¡¢¢¡¡¡¥Üöÿÿÿÿþí¨¢¦¡¡¡¡£¡¡¡¡¢¡‘¡‘¡¡¡¡¡¦¡‘‘¡¡‘‘¡¡¡¡¡¡¢¡‘‘‘‘¡¡‘‘¡¡‘�~‘‘¡‘‘¡‘‘‘‘‘‘}‘¡‘~~‘‘�‘‘‘‘~‘‘}~~~‘‘}~~~‘‘~~~}}¡‘}}}}‘‘}~‘‘}}}}‘€}}}~~}}}}}}}}}}™èÿè|}žúú¥}}}}}}v}}|}|}}}v}|v|}}}v||}}vpv}vpv}vpvvvvvvv|vpvvvvvpppppvvpvvpoppvvpopovvvlvpoooovvovolvvvlllovolllllluulllluullltoolClllllllCCtlClClCllllllCCCCCllCllCCCCluúÿÿþ��ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@!!Yóÿÿÿÿÿ÷_!9!!!!!!!!!!!! !!! !!!! !!!! !!  !!  !!     !  ! !=q¥õþþþþþþþýýþþÿÿýÿþþÿþÿýÿþþÿþþþæÓ      !                                Ó×þüüüüýüüýüýüüþüüÿÿÿÿÿþÿÿþÿÿÿûÕ��~}}}}}}}‘‘‘¡‘‘‘~‘‘¡‘‘‘~�‘‘‘~‘‘‘~~‘‘‘¡‘~¢¡¡‘~~‘¡¡��¡¡~‘¡¡¡¢¡‘¡¡‘¡¡¡‘¢¡‘‘‘¡¡‘¡¡¡¡¡¢¢¢¢¦¦¢¢£¦¢¡¡¡¢¢¡¡¡¢¢¢¢£¢¡¡¡¡¢¢¢¡¡¡¡¢Ýþÿÿÿÿÿ릦£££¢¦¦¢¢¢¦¦£¢¢£¦¢¢£¦¢¡¢¢£®¦¢¢¦¦¦££££¢££¢£«®£¦¦£££¦¦¢£¦£££££¦¦££¦¦¢¢£¢£¦£¦«¦¦¦¦¦£¢¢¢£¦««««¢¢¡¡¢¢¢¢£¦£¢¦¦£¢¢¢¢¦£¢¦¦¢¡¡¡¦¦£¢¡¡¡¢¦­êþÿÿÿÿûꦡ¡¡¦¦¡‘‘‘¡‘¡¡‘‘¡¡‘¡¢£‘‘¡‘‘¡¡¡¡£¢¡¡¡‘¡‘‘¡¡‘~‘‘~~~‘‘¡¡¡¡‘€‘‘¡‘~~‘‘}~~‘‘‘‘¡‘€‘‘~}‘€‘‘}‘‘}~‘~~}}}‘‘}}}}€‘€€‘‘€}}}~}}‘‘‘}}}}}}}}~}}‘èÿèv|žý÷™}}vv}vv|}}v}}||}}}vv}}}}vv}}vvvwvvvvvppvvvvv|}vpvvppvvpoppvvpvvvolopvoplovvppvoopvvvpoovppvvlllloolollllollllvvollooolllCCClCltClCCCCCCllltCllCltoClCCCCCCCCCCÇÿÿÿüñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$!!@óÿÿÿÿÿ÷x!!!!!!!!!!!!!!!  !! ! !  ! ! ! ! !!!! !!!!!!!!  !!!  =q¥íþþþþþþþþþýþþÿþþýÿþþþþÿþþÿþÿÿæ×                                           ÓÓüüþüþüýüýýüþüþüþÿÿþÿÿþÿÿÿÿÿÿúÖ��}~~~~��‘~€‘‘~~~}�‘‘‘‘~�~‘‘‘~�‘‘‘‘‘¡¡‘~‘¢¡¡¡‘‘¡¡‘‘¡¡‘�¡‘‘‘¡¡¡¡¡‘¡¡¡‘¡¡¢¡¡¢¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¢¢¡¡¡¢¢¢¢¢¢¡¡¡££¢¢¢¢£¦¢¢¢¢¦£åþÿÿÿÿÿꦥ££¢¡¢££¢£¦£¢¢¢¢£££££¦¦£¢¢¦«¢¢£££¢¦«£££¦£¢£¦¦«¦¢£££¦¦««¢££££¦¢¢¦££¦¦¦£¢££¦¦¢¢£¢£¦£¢¢¢£¦£¦¥¢££¢¢£¦¦¥£¡¢«¦¡¢¦¥¦¦¡¡£¦¢¢¥¡¢«¢¡¢¢¢¢¢¢¥Ôöÿÿÿÿþõ¦¡¡¡¡¢¡¡¡¡¡¡¡‘¡¥¡¡¡‘¡‘¡£¡‘¡¡¡‘¡‘¡¡¡‘¡~~¡¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘~‘‘‘~‘~~‘‘‘‘¡‘~€}~~‘‘‘~~}~‘‘}‘~}€‘}}~‘~}}~}~}‘~}‘}}}}}€}}}~}}}}}}}�ñÿè}}žýõ™}w}}}}v}}}|v}|}}}}vv|v|vv||vv|}}p|v|vvvvv}vvvvvpvvvvvvvpvppppvvpvppooppplpvppolovpoolvvvlvlllluouoololuolluluollllllllltlCltlllllCClClllCtlCCCCClClCCCAClCAClCuþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!Y÷ÿÿÿÿÿ÷_!!!!! !! !!!!!  ! !!!!! ! !!!  !    !  !!!!!  !   =}ªõþþþþþþþþýþþÿÿþÿþÿýÿþÿýþþÿþþýæÓ       !                                        ÓÙüüüýüþüüýüýüýýüüÿÿÿÿÿÿÿþÿþÿÿýÖ �}}}}~}~~��~~~��}‘‘~}~‘‘~~¡¡‘‘‘‘‘‘¡¡‘‘‘¡¥¢¡¡¡¡¡‘‘~¡¡¡¡‘��‘�¡¡¡‘‘¡¡¡��¡¦¢¡¢¢¡¡¢¡¡¢¡‘¡¡¡¡‘‘¡¡¢£¢¡¢¢£¦£¢¡¡¡¢¦¢¢¦¦£¢¢¢£¦¦¦Ýþÿÿÿÿÿë«£¢¡¡¡¢¢¢¢¢¦£¢¢¡¢¢£««¦«¦£¦¦££¢¦££¢¢¦¦¦¦£¢¢¡¡£«¦¢¢««¦«®«¢£¦££««¦£¦¢£¦««£¦¦¦¦¦¢£¢¡¡¢¦¢¢¢¦¢¢¢¢¢¦£¢£¦£££¡¡¢¦¢¡¦¦£¦£¡¡¢«¦¦¦¢¡¢¡¡£¦¦¢¡¦¦¡¥êÿÿÿÿÿûÚ¡‘¡¥£££¡¢¢¡‘¢¦¢¡‘‘‘‘¡¢¡‘‘¡¢‘‘¡‘‘¡‘~~~‘¡¡¡‘¡‘‘¡‘‘~‘‘}~~~~‘‘‘‘‘~‘¡‘~}~~€‘~}�}}~€¡¡‘}}€‘‘}‘‘‘~}}}}‘‘~}}‘}}}‘‘‘}}v}}}}}}}}}v}}||˜èÿë}}§þ÷‘}}}}}}vvv}}v}}}v}}|vvvvv}|vvvvvvv}}|vv}}|vvvpvvvvv|vvvv}vvopvvvvpvoploooolooppooluvvovvouooululllvuouuolulloollllCllllllullvulCCClCCltCllllClCClCCCCCCCCtCCCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ==!=$Bóÿÿÿÿÿ÷_!!9!!! !  !!! !!!!!!! !!!!!!  !! ! !  ! !!!!!!! !  !!  ! =}ªíþþþþþþþþþýþþÿþþþýÿýÿýÿÿþÿþÿÿæÓ       !                                      ÓÓüþüýüüýýýüþüþüýþÿÿþÿþÿÿÿÿÿÿþûÖ��~��~~~‘‘‘‘€‘‘€~}�¡‘}~‘€~‘‘‘‘‘~�‘‘¡‘‘‘‘‘¡‘¡¡‘¡‘¡~‘¡‘¡¡¡~¡¡‘¡¡¡¡¡¡�¡¡‘£¡¡¡¡¡¡‘¢¡¢¦‘‘¡¢¡¡¡¡¡¢¢£¢¡¡¡¡¢¢¢¢¡¢¦¢¡¢¦¦¡¡££¢¢¢¢Úþÿÿÿÿÿê«£¢¢££¢¢££££¢¢££¢¢£«£¢¢££««¢¢¦¦¢£¢¢£¦£¦£¢¦¢£££¦£¢£«¦¢¦£££¦¢¢¦¦¢¢£¢¦¦¦¦£¢£££¦£¦¦¢£¢£¦¦¦¢¢¢¢¢¦£¦£¦¦¢¢¢£¢¢¦¦¢¢¡¡¦¦¡¡¢¢¢¢¢¢¢¡¢¡¡¦¡¡¡£¡‘¡¦Ôûÿÿÿÿý륢£¡¡¡‘¡¥¡‘¢¦¡‘¡¡¡‘¡£¡‘‘¡¡�‘¡¡¡¡‘¡‘¡‘‘¡¡¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¡‘€‘~‘~‘~€‘‘‘‘‘‘~~‘~‘‘~€‘€€}~}‘‘€}~‘~‘}}}}}~~}}}}}}}}}}}}~}}}}}}}}™õÿë}}žÿõ�}vv}}}}}}v}}}vvv|v}}vv||}}vv|}vvvvv|ppv}vvvvvpvppvvvvppvvppvvpvpopvoovvvvvovuppvlovpoollvoooopoulloloollluollolllllllltllllllllllCllCllllCClCCAltCCClCCClCCCACCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Y÷ÿÿÿÿÿ÷_!!!!!!!!!!!!!!!!! ! !!    ! ! !      !!  !        !   =}ªíþþþþþþþþþþþÿÿýÿþÿýþþÿýþþþÿýþæÓ                                ÓÙüýüýüýüüýüüþüþüüÿÿÿÿþÿþÿþÿÿÿûÕŽ��¡‘~‘‘¡¡‘‘‘€‘‘~}}‘~�‘~~~~‘¡‘‘‘‘�~~¡‘‘‘~��~~‘‘�~~‘¡‘~‘�‘¡¡¡¢¡¡¡‘¡‘¡¡¡£¡‘¡¡¢¡‘‘‘¡¢¡¡¡¢¡¢££¦¢¡¢¡‘¡‘¡¡¢¦¢¢¢£¢£¦¦¢¢¢¦¢¡¡¡¢åþÿÿÿÿÿ릣¢£¦£¢££¦¦¦¢¢¦¦££¦«£¡¢¢£¦®¦££¢¢¢£¡¢££££¦¦¢£¢¢¦¢¡¡¢¢¢£¢¦¦£¦£¢¢¢¢¢£¦¦¦£¢¢¡¢¢£¦««¦£¦¦««¦¢¡¡¡¢¦¦¡¦¦¦¢¢¢¢¡¡¦¦¦¥¡¡¡¢¡¡¡¡¡£¦¢¡¡¡‘¡¦¡‘¡¡¡¡¥¦£­êÿÿÿÿÿûÚ¦¢‘‘‘¡¡¢¡¢¡‘¡¡‘‘‘‘¡¡‘‘‘‘‘¡¡‘¡¡¢¢¢¡¡‘¡¢¡‘¡‘‘¡¡¡¡‘‘‘‘¡¡‘‘‘‘‘‘‘~‘‘€~~~‘¡¡‘€€‘‘~}}‘‘}~}‘~}‘~}‘‘‘~}}}}}€‘€}}}}}}~‘€€‘‘€‘‘~}}}~šõÿè}}Óÿõ‘~}}}}}}}vvv}v}pvv}}}}|v}€}}vvv}pvpvvvppvvvvvppppvpvvvplpvpv}}ooppvovvovvvvvooouvoovvvlluvoloouvvvvuulllloouvotllutlCllllllCCCCCoulllovtltlltlCAClCCCCCACCllCCƒáýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=!!!!Cóÿÿÿÿÿ÷_!!!!!!!!! !  ! !!    ! !  !! !! !!!! !    !  =}ªõþþþþþþþþþþþþÿþýÿýÿþÿýÿÿþÿýÿÿæÓ      !                           ××üüýüýüþüþýýýüýüþÿÿþÿÿÿÿÿÿÿÿþúÖ��‘‘~~~~‘€~~~}‘¡~~�‘‘‘‘~�~‘‘‘€�‘‘‘‘‘~‘‘¡‘¡¡‘‘‘¡‘‘‘‘¡¢‘¡¡¡¡¡¡‘¡¡‘¡¡‘¡¡‘¦¢¡¡¡¡‘¡¡¡¡¡¡¢¡¢¡¢¡¡¡¡¡¢¡¡¡¡¡¡¢¦£¡¢¢¢¦¥¡¢¡¢¢¦¢¢¢¢Ýþÿÿÿÿÿꥡ££¢¢¢££¢£¦£¢¢¦¦¦£££¢¢¦¦¢¢¢£££¢¢¦¢¦¦¢£¦«£¡¦¦¢«¦¢£¦£¦¦¢£¢£¦¦¡¡¦¦¦££££¦¢¢¦¦¢¡¦¦¦¦¦¢¦¥£¢£¢£¢£«¦¡¡¦£¦¦££¡¢¡¢¢¡£¡¦¦££¢¡¢¢¡¡¢¡¢¡¡«¢‘¡¡¡¡¡¢¢¢¦¬ûÿÿÿÿý륡¡¡¡‘¡¡¡¡¡¢¡‘¡¡¡¡¡¡¡‘¡‘‘‘‘¡‘‘¡¡¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘~‘‘‘‘‘}}¡‘€~‘‘}}~}‘‘}€}}‘‘}}}~~}}‘}~}}}}~}}}}}~}}}€}}}}}™õÿè}}Óÿè}}|v}}}v|}}}v||}v}}|}v}v|||vv||vvv}vvvvvvvvvvvpvppvvpvvvpo}}lovvvovvvvvovvvlvvovooololovvoooolluulloolllllolllululllullCllCCllullCClllllCCllCCClClCCCCCCCCxßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Zóÿÿÿÿÿ÷_!!!!!!!! !!!!!!!!!!!!! !! ! !  !     !!! !!  !   !!     =qªíþþþþþþþþþþþÿÿþÿýÿýþþÿýþþþÿþþæÓ      !                  Ó×üþüýüýüýüüþüýþüüÿÿþÿþÿþÿþÿÿÿýÖ��‘~}~}}}‘‘~}}~€‘‘‘¡¡‘~}‘¡¡‘~~}~}�‘�~‘¡¡�‘‘~‘‘‘�¡¢¡‘¡¡‘¡¢¡‘‘‘¡¢¡‘�‘‘‘¢«¡�‘¡¡¡¦£¢£‘¡¡¡¡¡¡‘�¡¢¢¢¢¢¢£¢¡¡¢¦¡¡‘¡¢¡¡¡£¢¢¢¦¦¦¦åþÿÿÿÿÿ릢¡¡¡¢¦¦¦¢¡¢£¢¢««¦£¢¢¢£««£¢¢««¢¦£¦£¦¦¢£¦¦¢¡¦¦£¦«¢£®«®¦¦¦¢¢¦¢¡¢¦¦¢¢¢¢£¦¦¦¦¦¦¡¡¡¡¢¢¡¡¡¢££¢££¢¦¦¦¡¢¢£¦«¦¡¡¡¡¢££¢¢¢¢¦¦¢¡¡¡¦£¢¡¡¢¥¡¡¡¢¦¡¡¢¢¢¦¢­êÿÿÿÿÿûÔ¦¦¡‘‘¡¡¡¦¢¡¡¡‘¡¡‘‘¡¡¡‘‘‘¡¡‘~~�‘‘¡¡‘~‘‘‘‘€‘¡‘‘‘‘‘‘~~~‘‘¡‘‘‘‘€‘‘‘‘¡‘}}}}‘¡‘‘~€~}~‘‘¡‘~}}‘‘~}}€~}}‘}}}|}}€}}}}}}}v}}v}~€}˜õÿè}~Óÿõ}}}||v}}}}}~}}|v}vvvv}}}vvvvv}vv}vp}}}vvvv}}p}vvvvvv}vvvvvvvvvvolvvvvvvvvullollvvvllllullovuvollolollluvllClllllloollotlllltlllltCClCCClCCCCClCllulCAClluCuÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!=Cóÿÿÿÿÿ÷_!!!!!!!! !!!!!!!!!!!  !  ! ! !  !!! !!!   !! ! ! !!  =q’õþþþþþþþþþþþþÿþýÿþÿþÿýÿÿÿþÿþÿèÓ                              Ó×üüýüþüýýýýýüþüþþÿÿÿÿÿÿÿÿÿÿÿþûÖ���~~‘}~�‘~~~~~~~€‘‘‘~~~�‘¡‘‘��~�¡¡€�¡¡�~¡‘¡‘¡‘¡¡¡¡‘‘‘‘¡¢‘‘¡~‘¢¡¡¡¡¢�¡¢¢‘‘¢¡¡¡¡¡¡¢¡¢¡¡¡¢¡�¢¦¢¡¡¡¢¦¢‘¡¢¢¡¢¡¢£¢¢¡¢¢¢¡¦¦¢¢Úþÿÿÿÿÿꦦ¢¢¢¢¢¢¢¢£¢£¢¢«¦¦¢¢¢¡£¦¢£££¦¢¡¦££¢¦¦¦¦£££¢¦®¦¢¦¡¦«¦¦¦¦¦¢¢¢¢£¢««¢££¢¦¦¢¢¦¢¢¢¦¦£¢£££££¦£¡¢¦¦¥£¢¢¢¢¢¢¦¦¢£¦¦¢¢¢¢¢¦¡¢¡¡¢¡£¦¢¡¢¡¡¡£¦¢£¡¡¡¢¡¢¡¡¢¡¬ûÿÿÿÿýí­¡¡¡‘¡¡¡¢¡¢¡�¡¢¡¡¡¡¡‘‘‘¡¡¡‘‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘}‘‘‘‘‘~€‘‘‘€‘‘~‘‘‘‘‘‘‘}~}~‘‘~€}}€~}‘}}~‘}}‘~}}}}€~}}}~v|}}}}}}}}}™÷ÿè}}Óÿè}v|}}}}v}v}}}}}}vvv}}}}vv|vvvv|}}vpv}vvvpv}vpvvvvvvv}vvvppvvpovvvov}oopvopoovpvuuooouvooopoolllvvlllllluolulllllltolllllllllllllllllCCtlCCCClCCllCCCCACltÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿ÷_!!!!!!!! !!!! !!! ! !  !!! !   !    ! ! ! !    !!  !! ! !=wšõþþþþþþþþþþþÿÿýÿýþþÿýÿýþýþþÿþæÓ                                 Ó×üþüýüüýüüþüýýüüüÿÿþÿüÿþÿýÿÿÿûÖ��}‘‘�~}}~}}~‘‘~~~~~}~‘~~~~~~‘¡‘‘‘‘‘¡‘‘~‘¡¡‘¡¡¡¡‘‘¡¡‘¡¢£¡¡‘¡¡¡¡‘�¡¦¦‘�¡¦¡¡¡‘¡¡‘�¡¡¡¢¢¢¢££¡¡¢¢¢¢¢¢¢¡¡¡¡‘¡¡¢¦£¢¢¢¡¡‘‘¢¢¡¢åþÿÿÿÿÿ榦£¦¦¡¢¦£¢¢¢¡¢¢¢¡¡¢££¢¡¢¡¡¢¢¢£¦¦¢¢¢¢£¦¦¦¦¢¢£«¦¦¦¢¦¦¢¡¡¡¢¢¢¦«¦¢¢¦¢¦¦¦¦¦¦¡¡¡¦¦¦«¦£¦««¦¦¢¡¡¡£¦£¡¡¢¦¢¡¡¡¡¢¥¦¢¡¡¡¢¦¦¢¦¦¦¢¡¢¦¡¡¦¡¡¡¢«¦¢¡‘¡¡¡¡‘¡¡¡¡­êÿÿÿÿÿûÖ££‘‘‘¡¡¡¡¡¡¥¦¢¡¢¢¡¡‘~~‘¡‘¡¡‘‘¡¡‘‘‘‘‘¡‘‘‘~‘¡¢¢‘€‘~}~‘‘‘~}~~€‘‘‘‘‘¡¡‘‘}}‘€~‘‘‘‘}}}~‘}~}~}‘‘}}€‘}}}}~~}}}}}}}~}}}}|}}s™úÿè}vÓÿèvvvv|}}}}}vvvv|}}vv|v||vvvppvvv}}|v€}}}||vvpovv|wpvvvvoppvpoooopolpvvvooopoopvvvlvvvvouvvvulllluooullulluvvlllllllltllClullllllllltllClCCCClCCCCCCCCCCC›óýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@óÿÿÿÿÿ÷] !!!!!!!!!!!!!!!!!  ! !!!  !!!!!   !! !!! !   !!!!! !  !!!  =q¥íþþþþþþþþþþýÿþÿýÿþÿýÿýÿþÿþÿþÿæÓ                                    Ó×ýüüþüþüþýüþüþüþþÿÿþÿÿÿÿÿÿÿÿþúÖ��Ž~‘~~�‘‘~~~‘�~~}�‘���‘‘~~~‘¡‘‘‘‘‘¡¡‘‘~�¡¡‘¡‘‘‘¡‘¡‘‘¡¡¡‘‘�¡¡¡‘¡�‘£¡‘‘¡¡¡‘¢¡¡¢‘¡¡¢¡‘¡¡¢¡¡¢¡¢¢¢¢¡¢¡¡¡¢¡¢¡¡£¢¡¢¢¢¡¡¢£¢¢¢¡Ýþÿÿÿÿÿꫦ¦¢¢¡¢«£¡¢££££¢¢¢¢«¦¢¢££¢¢¢¡¦«¢¡¦¦£¢¦¢¦«£¢£«¦¦¦¡£¦¢¢¢££¦£¦¦¢¢¦£¢¢¦¦££¢¢¦¦£¦¦¦¢¡¦¦¦¦¢¢¢¢£¢¦¢¢¢¢¦¦¦¢¡¢¢¢¡¢¢¡££¢¥¢¡¢¦¡‘¢¦¢¢¡¦¡¡¡¦¥¡¡¡¡‘¡‘¡£¢¡¡¢¦Óûÿÿÿÿþ륡¡¡¡¡¡¡¡¢¡‘¡‘¡¡¡¡¡‘‘¡¡‘‘‘‘¡‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘~‘‘‘‘‘€‘‘‘‘€~€€‘‘‘~‘€€}~€~‘‘€~}€}}}}~~€}}}‘}}~}~}}‘}}}}~}}}}}v~‘}˜ûþæ}}Óÿè}}}}}vv}}}}}}v|}v|v}|}}v|vvv||v}}vvv}vvvvvvv}vovvvvvvvvvvvopvpvvpovvpvolvvvlvloouopvvllvloooollpoollluvllollltulllllulClullCllClClllllllCCllCCCCClCCl›ñýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ==!!!Cóÿÿÿÿÿ÷_!!!!!!!!! !!!! ! !  !!!  !! !   ! !      !   !    !!  ! !=qªõþþþþþþþþþþþÿÿýÿþþþÿýÿýÿþÿþÿþæÓ                              Ó×üþüýüþüüþüýýýþüüÿÿÿÿþÿþÿýÿÿÿûÖ��}}�€‘‘‘‘~~‘¡‘‘�}~‘‘‘‘¡¡¡‘�‘‘�~‘‘‘¡‘‘�~~‘¡¡¡¡¡‘¡¡��‘¡¡‘¡¡��‘‘¡¢‘�‘‘��‘‘��¡¡¡¡‘¡¢¢¡‘¡‘‘¡¡¢¢¡‘¡¡¢¢¡¢¦¦¢¡¢¦¦¢¡¡¢¢‘¡££¢¢¢£åþÿÿÿÿÿë««¦¢¢¡£¦¡¡¦«¦¦¦£¦£¡¢¢¡¢¦¦«¦£¦«¦¡¡¦«¦¡¡¢¢«¦¢¡¦¢¡¢¢£¦®¦¦£¢¦««¦¢¦¦¦£¢¢¢¢¡¡¡¢¦¢¢¢¢¢¡¡¡¡¢¢¢££¥¢¢¢¢£¦¦¦¦¦¦¢¢¢¡¢¢¡¡¡£¡¢¡¡¡¡‘¡¡¡¡¡¢¦¢¡¡‘¡¦¦¡¡¢¡‘¦¡¡¡‘¡¡¥êÿÿÿÿÿøÔ¢¡‘¡‘¡¡¡‘‘¡‘€€€‘¡‘‘¡‘‘€‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘~€¡¡‘‘‘‘‘~‘¡‘‘€‘~}}}}}~}}}~€}}}}~~}}}}}€}}}}~}~}}~€‘}}}}€‘~‘‘}}‘~}}}}}}šûÿà}×ÿæ}}}}vvvvv}|v}}}}}}vv}}}v}}}}vv}}}vpvvvv}vpv}}}vvvvvvppvpvvovvvvvvvvolvwov}vvpvlvvvolllloooouuovwvuolouolllllllouuluvolllltlCCllCCllCllulCltutlCAClC›ñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zóÿÿÿÿÿ÷]99! !!!! !  !!!!! !!!!!!         !! !!      !!! !=q¥õþþþþþþþþþþýÿþÿýÿþÿýÿýÿýÿþÿþÿèÓ      !                           Ó×üüþüýýüþüþüþüþýþÿÿþÿþÿÿÿÿÿÿþûÖ��}}~~~}‘¡~}‘‘‘¡~}~¡‘�~~‘‘‘~‘‘��‘‘‘¡‘‘‘‘‘‘‘¡¡‘‘‘¡‘¡‘�¡‘¡¦¡�‘¡¡¡¡‘‘¡¡‘¡¡¡‘‘¡¢¡¡¡¡¡¡¡‘¢¢¡¡¡¡¢¢¡‘¡¢¡¡¢¦¢‘¡¢¢¢¢¡¡¢¢¢¢££¡¢¦¦Ýþÿÿÿÿÿꦥ£¢¢¢¢¢¢¢£¦¦¢¢¢£¦£££££¢£¦¦¢¦¦¦¡¡¦«¢¡¦¦£¦¦¢£¦¢¡¢¦£«¦¦¦¢¢£¦¦¦¢£££¦¦¢¢¦£¢¡££¢¦£¦¢¡¢¢£¦¦¢¥¡£££££¦¦¢¢¦¦¢¢¢¢¢¢¢¦¡¢¡¡¦¦¡¡¡¡¡£¡¦¡‘¡«¢‘¡‘¡¦¡¢¢‘‘¦¡¢¡‘‘¢¡¥Ôûÿÿÿÿýꥡ¡¡‘¡¢¡¡¡‘‘¡‘‘‘‘‘¡¡‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘~‘‘‘‘‘‘‘}‘‘‘‘‘‘‘}~€€~€~~‘€‘‘}}}~€€~}}~~}~}}‘}‘}}~}}}}~}}}}~}}}€}}}}}}}žýþà}×ÿà}|}}}|}v|}}}|w}}}}}}}}vvv}vvv}vvvvvv}vvvvvwwwvvpvv}vovvvppvvpvoovvvvopvovvvlvvovuoovulouluooolovvlluollllltlullovlllllltllllultlCCllCCtlCCllllCAlƒèüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zòÿÿÿÿÿ÷_!!!!!!!!!!!! !!!!!!! ! !! ! !! !  !!  !! !!   !  !!  ! !  ! =wªíþþþþþþþþþþþÿÿýÿýÿýÿýÿýÿþþÿþÿàÓ  !!                  ÓÙüþüýýüþüýýýýýþüüÿÿÿÿþÿþÿýÿÿÿýÖ��~}}}}}~‘~}}~~‘‘~‘‘‘~~~}~~~~�‘¡‘‘¡¡¡¡¡‘‘‘‘¡‘�‘‘~~~~~‘‘¡¡~~¡¡¦¢¡¡¢¡‘‘‘¦¢‘¡¢£¢¦£¡‘¡‘‘¡¦¦¢¡¡¡¡¢¡¡‘‘�‘¡‘¡¢¢¡¡¡¡¢£¦¦£¦¦£¡¡¢Úþÿÿÿÿÿ楡¡¢£¢¢£¦¦¢¦¢¢£¡¦¦¦¦¦¦¦£¡¢¦¢¡¡¦¢¡¢££¡¦«¦¦¦¦¦¦£¢¢¦¢¦¦¢¡¡¢¢¢¢¦¦¢¦««£¢¡¢¢£¦¦¦¦£¢¢¡¢¦¢¢¦¦¦£¦¦£¡££¢¡¡¡¡¡¡¢¢¢¡¡¡¢£¢¡¡¢£¡¡¦¦¦¦¦¦¦¢¡¦¦¢¦¢¡¡¡¢¢¡¥«¦¡¦¢¡£¥¢¢¥àÿÿÿÿÿ÷Ô¡¢¡¡¡¡¡‘‘¢¢¡¡¡¡¡¢¡¡‘¡¥¡‘‘€€‘¡‘~~~‘‘‘‘¡¡‘€‘¡¢¡‘}}}}}€~‘‘�‘‘‘‘~‘‘‘‘}}}}‘}}€€‘¡~}}‘~}~}‘‘€‘}~}}}}}‘€}}|}}v}}}}}}™ýÿàwÙþßvvv}}}}}}}}}}|vpp}}}wv}}}v}vv}}}|}vvvvpoovvpppppvvvvov}vvvvvovoovvovvolllolllvvlloovvvvvoovoollloloollluvvooulClllllltlCClllllllCCCCCCllCCCCClC{áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9===!@óÿÿÿÿÿó]!!!!!!!!!!!!! ! !   ! !!! ! !!   !!! !  ! ! !!! !! !! ! !!! !=}ªõþþþþþþþþþþýÿþÿýÿýÿýÿýÿþÿþÿþÿèÓ        !                     Ó×üüüþüýüþüþüþüýýþÿÿýÿþÿÿÿÿÿþÿúÖŸ�}~~}~�~‘~}~~~‘‘‘~~~~‘¡‘~~~�‘‘¢¡‘‘�‘¡¡‘�‘‘‘‘¡¡‘‘‘‘‘‘‘¢¡‘‘¡¡‘¡¢¡¡¡�‘¡‘¦¢��¢¡¢¢¡¡¡‘¡¡¢¢¡¡¡¢¡‘¡£¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢¢¢¡¦¥£¢¡¡Úþÿÿÿÿÿꦢ¡¡£¦¢¢¢¢¢¦¢¦¢¡¢¦£¢£¦¦¡¢££¢¢¢¢¦¦¢¢££¦«¢¦¥£¦¦¦¡£¦¢££££¡¢¢¢¦¦¢¢¦¦¥¡££¢¢£¦¢¢£¦¢¢¢£¢¢¢¢£«¦££¡¢¦¦¡¢¢¦¢¢¡¡¡¡¢¥¡¢¡¢¢¢¢¢¡¡¢¦¢¢¡¡¥¦¡¡¢¡¡¦¡¡¡¢¢¡¡¦¥¡‘¥¡¡¡¢£‘‘Ôûÿÿÿÿýꥡ¡‘¡¡¡¡¡¡‘‘¡¡‘‘¡¡¡‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘}‘¡‘}‘‘‘}‘‘‘‘‘‘‘}~€~‘‘‘€}}~}‘€~‘}~€~}}‘€}}~~€€}}}€}}}}}~}}}}}}}}}}}}šýþÙ}àþÚ}|}}}|}}}v}}w}vvv}}v}vv|vvv}w}}vwvpvv|wvpvvvvvvvpvvvvvpvvpvvvvoovvvvvvplvvlouvolovvlovooovolloluoovluluoolClooltlllllllllltlCCtlllCCllClCCCCl{ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!9!!!!!!!!!!!!!! !! ! !!!   !   !  !  ! !   !      !  =}ªíþþþþþþþþþþþÿÿýÿýÿýÿýÿþÿþÿþþÿàÓ                       ÓÙüþüþüþüýýýýþüþýüÿÿÿÿþÿþÿþÿÿÿûÖ �~‘~~‘‘�~}}~�‘‘~‘¡‘~~~‘~~‘‘~~‘¢¡¡‘~}‘‘‘¡¢¡‘�¡¡‘¡¡¡¡¡¢¡�¡¥¦¡‘�¡‘‘¡‘¡‘‘¡¢‘‘¡‘¡‘�¡¡£¢¡¢¡‘¡¢¡¡‘‘¡¢¢¦£¢¢£¢¡¡¢¦¦¢£¦¢‘¡¡¡¡¢¡£êþÿÿÿÿÿ릢¢¢¡£¦¢¡¡¡¡¢¢¢¢¡¦¦¢¦¢¦¦¦«¦¦¢¡¡¢¦¦¢££¡¦£¡¡¢¡¢¦¡¡¦¦¦¦¦«¦«¦¦¡¡¡¡¢£¢¦¦£¦¦«¦¢¡¡¦¦¦¦¢¢¢¦¢¡¢¢¢¡¡¡¦¢¢¢¦¦¦¢¡¢¦¦¦£¡¦¦¢¢¡¡¡¡¡¥¡¢¦£¡‘¡¡¡‘‘¢¦¡¡¦¥‘‘‘¡¡¡‘¡‘¡¢¢¢‘‘«­êÿÿÿÿÿõ§‘‘‘¢¡€‘‘‘‘€‘‘‘‘¡¢‘€~‘¡¡‘‘¡¡‘‘¡¡‘‘€€‘¡‘~€‘�}‘¡¡‘€‘‘¡‘€}}}~‘¡‘€‘~¡‘‘‘‘€‘€}}}}}}€‘‘‘}}}}}}~€~‘‘}}~}}}}}}}}}}}žþþà}™àþÚ}}}}}}}}}vpv}}}}}v|vvvpvw|vv}vvvpop}wvvvpv}}vvvvopvvvvlovvvvvvoouvplovvvvvvopvollvollllovvuloulllovulllllllllClluuultlllllllClllllClltlCCClxßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!$9!Z÷ÿÿÿÿÿ÷x!!!!!!!! ! !! !!!!!!!!!!   ! !!!!!!!! !!!  ! !! ! !   ! !! 9}ªõþþþþþþþþþþþÿþÿýÿýÿýÿþÿþÿþÿþÿèÓ     !                    Ó×üüþüýüþýýýýüþýüþÿÿüÿþÿÿÿÿÿþÿúÖŸ��~~}~~~�~~~~‘‘�‘‘~~~~�~~‘¡‘~‘‘‘‘‘~~‘¡¡¡‘¡~~¡¢‘¡‘‘¡‘¡‘‘¡¡¡¡¡‘¡¡‘‘¡¢�‘¡¡¡‘‘‘¢¡‘‘¢¦¡¡¢¢¡¡¡‘¡¡¡¡¡¡¢¢¡¡¡¢¡¡¡£¢¢¢¦¦¢¢¡¡¢¢¢£Ýþÿÿÿÿÿꥡ¥¦¢¡¢¦¢¢¢¢¢¢¢¦£¦¥¢¦¢¦¡¢¦¢¦¦¡¡¢¦¡¡¦¦¢¡¢¡£®¢¡£££¦¦¢¦¢¦¦¦¦¦¢¡¢¢¢¢¦«¢¡¦¦¦¦¢¡£¦¦¦¢¡¢¦¢£¢¡¢£¢¢¢¡¢¢¢¢¦¥¢¡¢¡¡¦¡¢¢¢¡¢¡¡¢¢¦¡¡¢¦¢¡¡‘¡¡¡¢¢¢¡¢¥¡¡¡¡¡¢¢¢‘‘¡¡¢¡¡¡¢¦¢§õÿÿÿÿýà¡¡¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘€‘‘~}‘¡‘‘‘}‘‘‘‘€}~‘‘~€~‘‘~}‘‘}€}}}~~}}~}}}}}}}�}€~}}€}}}}}~}}}}}}}}žÿýÚ}�æýÙ}}}}}v}}}vv}}}}}}vv}}vvvvv}}}w}vvpvv}vvvpvvvvvvvpvvvvvlo}}vvppvovpuopvvovvopploluvovoluooolltpolooollvllullllllllovlllCltlllllllltCCllllCuÌúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!9!Bóÿÿÿÿÿ÷_!!!!!!! !!!!! !! !!!!  ! !!! ! !  ! !       !    =qªíþþþþþþþþþþþÿÿýÿýÿýÿþÿýÿýÿþÿþæÓ                      ÓÙüþüþüþüýüþýþüþþüÿÿÿÿþÿýÿþÿÿÿûÖ�¡‘~}}~‘¡¡‘~}~¡¡€~}}~~�‘¡~~‘‘~~~~~~~�‘‘‘‘~~~}‘¡�‘~~‘‘�~‘��~~‘¡¡¡�¡¡¡�¡¡‘¡¢¡‘¡¢¡�‘¡�‘¡¡¡‘¡‘¢¦££¢¢‘¢¦¡¢¢¡¡¢¦¢¡‘¢¢¦¦¡¡¦«¦¢Ýþÿÿÿÿÿꥡ¦¦¡¡¡¦¦¦¦¦¦£¢¦¦££¢¢¡¡¡¢¦¦¦«¦££¢¢¦«®¦¦¦¢¦«¢¡¡¢¦¦¡¡¡¡¡¢¢¦£¢¦¦££¦¦¦¡¡¡¢¢£¢¡£¢¢¦¦¢¢££¦¦£¡¢¦¦¦£¥¢¦¡¡¡¢£¢¦¢¢¦£¡¡¥¦«¦¦¥¡‘‘¡¡¡¦¦¢¥¢¡¡‘¢¦¡¡¡¢¡‘¡‘‘¡‘‘¥¢¢¢¡‘‘‘‘‘¦êþÿÿÿÿõ¬¡‘~‘¡¡£¥¡‘‘¡¥¥¡¡¥¡‘‘‘€€~‘‘‘€~‘¡‘~}}€‘‘‘‘‘‘~‘‘€}‘}~‘‘~�€}}~‘‘€}}‘‘€~~~‘€‘‘~}~~}}}}}}}}}}}}}}v}}‘€~}}}}€}žÿþÙ}™æý×}}}|v}vvvv}}}}v}}|v}}}}}}vv|vvvv}}vv}vvvvvvvvvvvvvvvvvoovvlpvvvvvvvvwvllpvvovlvvpvvvuloolloollovullllltlloulvuullllloullvtlCCCtuulCCluuyÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!Cóÿÿÿÿÿ÷_!!;9!!!!!!  !!!!  !!! ! !!  !  ! !! !! !   !!! !!!!! !! ! ! =}ªõþþþþþþþþþþýÿþÿýÿþþÿþÿþÿþÿþÿÿæÓ    !          Ó×üüþüþüþýþýüþüþüþÿÿþÿÿÿÿÿÿÿþÿúÖ�¢�~~~~‘‘~‘‘}~‘~~€~‘~~~‘‘‘~~~~~�‘‘‘‘‘~‘‘‘~~��‘‘‘‘~�¡‘‘¡�~‘�‘¢¡‘¡‘‘‘¡‘‘¡¡¡¡‘¡¢¢‘‘¡‘¡¢¡¡‘¡¡¡¢¦¡¡¡¡¡¢¢¡¢¦¢¡¡¢¢¡¡¢¦¢¥¡¡¦¦¢¡Úþÿÿÿÿÿꥡ£¢¢¦¢¦¢¢¢¢¢£¢£¢¢¢¦£¢¢¡¦¢¦¢¢¦¦¡¡¦¦¢¢¦¦¦¢£¦¢£¢¢£¦£¢¦¢¢¡¢¦¦¦¦¢¢¢¦¢¢¢¡£££¢¦¦¢¡¦¦¢¡££¢¢¦¢¢¢¢¦¥¡££¢¦¢¡¢¡¡¦¦¡¢¢¡¡¡¦¦¦¥¡¡¡¡¡¡¢¦¢¢¡‘¡¡¢¥¡‘¡¢¡¥¡¡¢‘‘¡‘£¦‘‘¡‘¡¡‘‘¡¥¬õÿÿÿÿýà¡‘‘‘¡¥¡¡‘‘¡¡¡¡‘¡¡‘‘‘€‘‘‘¡‘€‘‘‘‘€‘‘¡‘‘€‘‘‘€~€~~€€}‘‘‘}~}~€}€‘}}‘‘}}~€‘~€¡}~}}}|}}~}}}~}}}}}}}}}}}}}}}~}§ÿýÓv‘èýÓ}v}v}}}}}vv}}vv}}vv}}wv}}w}}wvvvv}vv}vpvvvov}vppvp}vopvvvvvvvvpovvvpv}oovvooolvvolovlouolltplolvlltlllllluolllllllllullltllllluollCCluÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Yóÿÿÿÿÿ÷]!9!!!!!!!!!! !!! !! !!! ! !!     !   ! !!    !  !!!  =ŽªíþþþþþþþþþþþÿÿýÿýÿþÿþÿþÿþÿþÿþæÓ                    ÓÙüþüþüþüýüþþýýþüüÿÿþÿüÿüÿþÿÿÿûÖŸ�}}~�‘~}}~‘‘~}~¡¡¡¡‘‘‘‘~~¡‘‘‘‘~~‘‘¡¡‘‘‘‘‘¡¡¡¡‘¡¢¡‘‘‘‘¢¡¡¡‘¡¢‘��¡¡¡¡¢££¡‘¡‘¡¢£¡¡¡¦¦¢‘¡£¡¡‘‘¢¡‘¡¢¢¢¡¡¡¡¡‘¡¢¢¡¢¡¡¡¡¡¢«¥¢£êþÿÿÿÿÿꦢ¡¦«¦¢¢¢¡¡¡¡£¦£¢¢¦¦£££¡¡¡¡¡¦¦«¢¡¦¦¡¡¢¡¡¡¡¦¦«¦£¢¦¢¢¡¡¢¡¢¥¦¦¢¡¦¦¡¡¡¢¢¦¦¡¢¢£¡¡£¦£¦¦¦£¡¡¡¢¢¢¢¡¡¡¢¢¦¦¦¦¡¡¥«¦¦¢¦¦¡¡¡¡¡¢¡¢¢¢¡¢¦¡¡¡¡¢¡¢¢¡‘¡¡‘¡¢¦¢¢¢¡‘¡¡‘¡¡‘‘¡¡‘¡¡¡¥Úþÿÿÿÿõ§¡‘~‘‘‘¡¡‘‘~}‘‘‘~‘¡¡‘¡¡¡‘¡¡‘~~‘€‘‘€‘‘‘€}~}~‘‘‘‘‘}‘‘‘�}‘€‘‘‘~}}€}}}}}}}‘}}~‘‘~‘‘}}‘‘}}}}}}~}}}v}}}}}}}žÿý×}™èûž}}}vv}w}}v}}vvv}}v}}}vwvvvvvvvvvppvv}vvw}}vvvvv}wvvvoovwvvovoolvollovvlloovvvolvullpvvoouvvvvvlovvlllovvlluulllCCllllCClltClClllCCluÆ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=9!!!@óÿÿÿÿÿ÷_!!! !!! !!!!! !!!   !!! !   !!  ! !   !!!!! ! !    !  !  !! !=qšõþþþþþþþþþþþÿþÿýÿþþÿýÿþÿþÿþÿÿæÓ          Ó×üüþüþýþüþþüþüýþþÿÿþÿÿÿÿÿÿÿþÿúÖ����~€~~~‘~~‘~~‘‘~‘‘~~‘�~�‘‘�¡‘~~�‘¡¡¡¡~~¡¡¡‘‘�‘¡¡¡¡‘‘‘¡‘¡‘‘£¡‘¡�¡¡¡¦¢¡¡�‘¡¡¡¡¡¡¡¡¢¥¡¡¢¡‘‘¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¢¢¢¢¢¡¡¡¡¢¦¦¢£Ýþÿÿÿÿÿꦥ£¦¦¡¡¢¥£¢¡¡¦¦¦¢¦¦¡¦¢¢¡¢¡¡¢¦¦¦¡¡£¦¢£¢¡¢¦¡¢£¦¢¡¢£¢¡¢¢¢¡¢££¦¦¡£¢¡¦¢¢¢¦¦¡¡¦¦¢¡¡¡¢¦¥££¦¢¡¡¡¢¢¡¢£¢¢¦¦¥¢¡¡£¦¦¥¢¦¢¡¡¢¡¡¦¢¢¢¡‘¥¦¡‘¢¦¢‘¥¢¡¢¥¡‘‘¡¢¡¦¦‘‘¡‘¡¢‘‘¡¢‘¡‘‘¡¢‘¥õÿÿÿÿýÚ‘‘‘‘¡¡‘‘‘‘‘‘¡‘~‘¡¡‘‘‘‘‘‘‘‘€‘€~€‘‘‘‘¡‘€~‘‘‘€~‘‘‘~‘‘€‘}}‘¡~}}~}~}~}}}‘}}}€‘‘}}}}‘€}}}}}}€}}}}}}}}}}}žÿûÓ€™èú§}}vw}v}}}vv}}v}}v}}vvv|vvv}}w}wvvvvv}}vv}vvvvvv}v|vpopvvvvvpvpovolvvvooluvoovuoppoooooollvvlolllollvvlloolllllllulllClullllCCClltu›òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!! !!!! ! !! ! !! !  !  !   !!   !   ! !! ! !   ! 9qªíþþþþþþþþþþþÿÿýÿþÿþÿþÿýÿþÿþÿþæÓ                Ó×þýýýýüþüþüþýýýþüÿÿÿÿüÿþÿþÿÿÿûÖ��‘‘‘�~~~~}}}~}~}~‘‘‘‘~‘‘~~~¡¡‘}‘¡‘‘‘~~~‘‘�~‘‘‘¡‘‘¡‘¡¡¡¡‘�¡¢¦¡¢¡�‘‘‘¢‘‘¡‘‘¡¡¡¡¡¦¡‘‘¡‘‘‘¡£¡¡¢¡‘¡¢¢¡¢¦¢¢¡¡¡¡¡¡¡¢££¡¡‘¢¢£¥Ýþÿÿÿÿÿ楡¢¢¡¢££¢¦¢¡¢¢¡¢¢¡¡‘¡¡£¢£¢¢¦¡¡£¢¥«¦¡¢¡¡£¦¦£¢££¡¡¦¦«««¦¦££¡¦«¦¡¡¡¡¢¢¢¢£¡¡¡¦¦¦¦¢¡¡¡¡£¦¥¢¦¦¢¦¦¦¡¡¥¦¡¡¢¥¢¢¡¡¡¡‘¡¢¢¥¡¡¢¢¦¦¥¡¡¥¡‘¡¥¡‘¡¡¡¡¡‘£¡‘‘‘¡¥¡¢¢¢¦¢‘¡¥¦¡¥¢€‘¦¥‘¡Úýÿÿÿÿõ§¡‘¡‘‘‘¡¡~~‘¡¡€‘¡‘‘€}~€‘¡¡¡‘‘‘‘~}€‘‘‘‘‘€~}€€~}€‘‘‘‘}}~}}‘‘‘‘~}}}}‘‘€}}}}}€}‘‘}}€€}}~€}v}€~}}}}}}}§ÿýÓ}˜ëúžw}}}|}}}}}}|}}}}}vvv}w}}}wvvvvvvvw}}vpvvvvvvvvvvvvvvvvvvlopov}}vllvvluvppvollvvvovvvolllovvlllouulovvuoullllluuuvuutlluuouuullll˜èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Cóÿÿÿÿÿ÷_=! ! !!!!!!!!!!!!!!!!! !!!     !!! ! !! !     !!  !    =}¬õþþþþþþþþþþþþÿþÿþÿþÿþÿþÿþÿþÿÿæÓ                     ÓÓüüýýýþýþýþýüþüþþÿÿüÿÿÿÿþÿÿþÿúÖ��~}‘€~~~‘~~~}}~�‘‘‘‘~‘¡‘~~‘‘‘~�‘‘‘‘‘~~~�‘‘~~¡¢¡‘‘¡‘‘¡¡¢‘‘‘¢¡¡¥¡~�¢¢¡‘‘‘‘‘¢¦‘‘¡¡¡‘¡¡¡¡¡¡¡‘¡¢¡‘¡¦¢‘¡¦¢¡¡¡¡¢¦¡¢¦¢¡¡¡¡¢¦¢¢Ýÿÿÿÿÿÿꥣ¡¢¢¢¢¡£¢¡¢¢¡¡¢¢¢¡¡¢¡¡¦¦¡¡¡¢¢¢£¦£¢¡¡¢¦¢¢¦¦¢¡¡¡¡¢¦««¦¦¢¢¦¢¡¢¦¢¡£¡¢¢¢¡¡¡¡¢¦¦¦¦¢¢¡¡¢¦¦¡¡¢¦¢¢¢¢¡¢¦¦¦¡¡¦¦¡¡¡¡¡¡¦¦¢¢¢¦¡‘¥¦¢‘¡¡¡¡¡¡¡¡¡¡¡‘¡¢¥¡¡‘‘¡¡¡¡¡¢¡‘¡‘¡¢¡¢¡‘¡¦¡¡‘‘¥õÿÿÿÿûÚ‘¡‘€€‘‘‘‘‘‘‘€‘‘‘‘‘€~}‘¡‘‘‘‘‘~‘‘~}‘¡‘€~‘€‘‘~}‘‘‘‘‘€~}}}~‘‘‘}}}€}}}}~‘}‘}}}‘‘~}}}‘}}}}}}}~}}}€€}}ÓÿýÓ}™õúž}v}}}}}v}}v}}}}}}w}vwvv|v}vvvvvpv}}}vvpv}vvvvvvvvvvv}vpvooopovvvolvvpvooooolovolovvvlooouvvllulvoltvvlulllClluoovlllllloloollCƒèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Zóÿÿÿÿÿ÷x!!! !!!!!! ! !9!!!! ! ! ! !     ! ! ! !! !!!     !  =}ªíþþþþþþþþþþÿÿÿþÿþþÿþþÿþÿþÿþÿþæÓ                 ××þüþüþüýüþüýþþüþüÿÿÿüÿýÿÿþÿÿÿûÖŸ~}}}~~~‘‘~~}~‘~~~~~�~~¡‘‘~}~~‘‘‘��‘‘�‘‘‘‘¡¡~‘¡~��‘‘~~‘~‘‘�‘~‘¢¡~‘¡‘‘¡¡¡¡¡¦¡‘‘¡‘‘¡¢¢¡¡¡¢¡‘¡£¢¢¡¢¡‘¢¦¡¢¦¦¥¦¡‘‘¡¡‘¡¥¡¡‘¡¡Ýþÿÿÿÿÿ릣¢¢¢£¢¡¡¢¦«¦££¢£¦««¦¢¦¦£¡¢¦¦¦¦¦¦¡£¦£¦«¦¡¢«¦¢¦¦££¢¦¥¡¢¡¢¦¦¢¡¦¦«¦¦¦¦¦¦¦¢¢¦¢¢¥¢¢¢¡¦¢¢¦¦¢¢¦¦¢¢£¥¢¡¢¡¡¡¦£¡¡¡¡¢¡¥¦¡¡¡¡‘¡¢¢¡¡¦¢¢¢¡¡¢¥¡¢¦¡¡¡¡‘¡¢¥¢¡¡¡¡‘‘‘¡‘¡¢¡‘‘‘¡¥‘¡¢‘¡¥Úþÿÿÿÿõ§¡‘¡¡¡‘‘‘‘‘‘¡¡¡‘‘¡¡‘¡¡‘‘‘‘~}€‘‘~}€}}€‘‘‘€}‘€}}~}}�‘‘‘~}}}~¡‘‘}}}}~‘¡‘}}}}}}}}}~~}‘‘}}}}}v}w}}~ÓÿúÓ}šõúžvvv}}}}vpvvvwv}v|}vv|vvv}}}}vvv}pvvpvvvvvpvvvvvvvpvvvvvvvvvpvoovoovvvvvvvvvlvvvoovllooooouullovvvullollltvouoooullloutlCCCll{ßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇ@=!$=Bóÿÿÿÿÿ÷_!!!!!!!!!9!!!!!!!!! !!! !!!!!!!!!! !    ! !!  !   !  !!!!  ! ! !! 9q¥õþþþþþþþþþýýÿþÿþÿþÿþÿþÿþÿþÿþÿèÓ                Ó×üþüþýýþýýþþüþýþþÿÿþÿÿÿÿýÿÿÿüúÖ�Ž}}}~~~~�~}}~‘¡~}~~‘‘‘‘‘~~}~¡‘‘‘‘‘¡‘~~¡‘¡¡�~‘¡‘~�‘‘~��‘‘‘~‘‘‘‘¡¡‘��‘¡¡¡¢£¡¡‘¡‘�¡¡¦¦¡¡¡¡¢¡‘¡¡¢¢¡¡¡¦¦¢¢¦¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢êþÿÿÿÿÿꥡ¡¢¦¡¢¢¡¡¢¦£¦£¡£«¦«¦¡¢¢¡¡¡¦«¦¦£¢¢¢£¦¢¦£¡¦««¢¦¦¢£¢¢£¡¢£¦£¦¦¦¡¢¦¦¦¢¥£¦£¢¡¦¦¢¢¢¡¡¡¢¢¢¦¦¢¢¦¥¦¦¥¡¡¢¡¡¡¢¡¡¢¡¡¡¢¢¡¢¡¡¡¡¡¢¡‘‘¡¢¢¡¡¡‘¥¢¡¢¥¡¡‘¡‘¡¥£¡‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘¡¢¡¡¢‘¡¡‘§õÿÿÿÿû¬‘¡¡‘‘‘‘€‘¡¡‘¡‘‘‘‘‘¡¡‘~‘‘‘}~‘‘~}~~}�~‘¡‘‘‘‘}}~€}~‘}‘€€}}}~‘‘‘€}}}}‘‘‘}}}}}€}v}}‘}}}}}}}}}}}}§ÿú§}šõ÷™vv}}}}}}vvv}}}}v}}w}}vp}}vv}}v}vvvvvov}vovv}v|vvvovvvvoovvooooovoov}ovvvvoovoovovvoluluvooouovvuvvoollluvollvuulllluullllluÎýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Bóÿÿÿÿÿ÷_!!!9!9!!!!!!!!! ! ! !! !! !!!  !    !  !      !  !  ! !  ! =p¥íþþþþþþþþþþÿÿÿþÿþÿþÿþÿþÿþÿþÿþæÓ   !          ÓÙüýþüþüþüþüýþþüþüÿÿÿþÿþÿÿüÿÿÿúÖ�}}}�‘‘‘~~~~�~€‘�}~}}�‘‘‘‘¡�‘¡‘��‘‘‘‘‘‘¡¡¡‘~~¡¡‘‘¡‘~‘¡¡¡¢¡‘‘¢¡‘‘¡¡‘‘¡¡¡¡¡¡‘¡¡¡‘‘¡¡‘¡‘¡¡¡‘¡¢¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¢¢¢¦¢¢¡¢££¢¡Úþÿÿÿÿÿ릣¥¡¡¡¡¦¡¡¢¢¢¢¡¡¡¢¡¢¦¢¢¦¦¢¢¦¢¢¡¡¡¡¡¢¦¢¢¡¡¡¢¡¡¡«¦¦¦££¢££¢‘¡¢¢¡¡¦¦¦¦¢¡¢¦¦¢¢¦¢¢¢¦¦¦££¥¦¡‘¡¢¡¡¡¡¦¦¥¦¦¢¡¢£¥¦¡¡¢¥¦¢¥¢¢¥¦«¥¡¦¦¡£¥¢¢¡¡¢¢¦¢¢¢¡¡¡¢¦¢‘¡¡¡¡¥¢¡¡¡¢¡¡¡¡‘‘¡‘€‘‘‘¡‘‘¥êÿÿÿÿþà‘‘¡¡‘‘‘¡‘€‘¡‘‘~€‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€}‘‘€~~‘}€‘‘‘‘€}}~}�‘}}€‘‘}�}}€}}~}~}}}~}}}}}}}}}~}}}}}}}žÿýÒ}™õ÷ž}}}}}}v|}}}}vvvvvv}}vvv}}ppv}}vvvvvvv}}vpvvpopppp}vvpvoo}vvvvvvvvovvulvolovvvolllvuovvlolllovvllCllluuloullvvlltllClllCCvÌüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ9!!9!Cóÿÿÿÿÿ÷_!!!!!! !! !!!!!!! !!  ! !!  !!!  !  !!  !! ! !!! ! ! !! ! !  !  =ŽªíÿþþþþþþþþþüÿÿþþÿþÿþÿþÿþÿþÿþÿæÓ           ÓÓýüþýþüþüþýþþüþþþÿÿüÿþÿÿþÿÿÿþûÖ��}}�¡‘~~~~�~}}~~~�~~€‘‘~‘¡¡‘‘‘€‘¡‘�‘¡¡‘‘¡¡‘‘~‘¡¡‘‘~}¡¥¢¡¡‘�¡¢¡‘‘¡¡‘¡‘¡¡¦¡¡¡‘‘‘‘¡¡‘¡‘¡¡‘¡¢¡‘¡¦¥¡¡‘¡¡¡¡¡¢¡‘¡¢¢¢¢¦£¡¡¦¦¢¢Úþÿÿÿÿÿꦡ¡¡¡¡¡¡¡¢¡¢¢¢¢¡¡¢¡¢¦¢¢¦¦¦¥¡‘¢¢¡¡¡££¢¢¢¡¡¡£¡¡¡«¦¦«¦¦¥¡¢¥¡¡¡¡¢¦¦¦¦¦¡¢¢¦¦¢¡¡¡¢¢¦¦¦¢¢¢¢¡¡¢¢¢¢¢¡¢¦¦¦¡¡¡¡¥¦¦¡‘¡¢¡¢¢¢¦¦¦¦¢¢¢¢¢¦¢¡¢¢¢¡¢¦¦¡¡¡‘¢¦¡¡‘‘‘‘¢¦¡‘‘‘¡¢‘‘‘¡‘€‘‘‘¡¡‘‘¡‘¡Óûÿÿÿÿëš‘‘‘‘‘¡‘€~‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘}€‘‘‘~}‘‘}€‘‘}}~€‘}~‘‘~}}}‘‘€~‘‘€‘‘}}}~}}‘}€}}~€}}}}}}v}}‘‘}}}v}Óÿúž}™ú÷¥}vv}vvvw}}}vv}}vvv|vv}}}vov}}}|vvvvv}vpvvvpoovpvv}vovvvvvpvvv}voovvlovuoovvvlloovoovvvlllltpuolllluullvvllvlltoolCClluÆ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=!!=Yóÿÿÿÿÿ÷_!!!!!! ! ! !!!!!!!   !!!!  !!  !!    ! ! !!   ! !! ! !  !!   !!  =ެíþþþþþþþþþþÿÿþÿþÿþÿþÿþÿþÿþÿþÿæÓ                 Ó×þþüýýýþþüþýþþüþüÿÿÿÿþþÿÿÿýÿÿúÖ Ÿ~}~~}}‘‘�€~~�‘~~}~�‘~~‘~}}~~‘~~‘‘~}‘‘~}‘‘¡¡‘~‘¡‘‘‘‘¡¡‘‘¡‘¡¡‘‘‘¡‘‘¡¡¡‘‘¡¡‘¡¡¡¡¡¦¦¡¡¢¡¡‘¡£¡‘¡¦¡¡¡‘‘¡¡¡¡¦¢¡¡¢¢¡¡¡¡¡¡¥¢¡¡Ýþÿÿÿÿÿꥢ¦£¢¦¢¦¦«¦¢¢¡¢¡¢¦¦£¡¡¡¥¢¦¦¡¡¦«¦¦£¢¢¢¢¦¢¡¦¦¢¢¦¦¡¡¡¡¡¢¦¦££¥¡£¥¡¢¡¢¦¦¥¢¡¡¢¦¦£¥¢¢¡¡¢¢¢¦¥¢¢¦¥£¥¡¡¢¡¦¦¢¦£¡¥¢¡¢¦¢¡‘¡¡¡¡¡‘¡‘¢¡¡¥¢¡¡¡‘‘‘¢‘‘¢¢£¥¡‘‘¡¢¡¡¦¥‘¡¢¡¥¦¡‘¡¢¡¡¡‘‘‘‘~¡¡‘‘¡¨íÿÿÿÿýÔ¡‘€‘¡¡‘‘‘‘‘‘¡‘€€€€~~‘¡‘‘‘¡‘‘‘}}‘‘‘}~‘‘‘‘~}}‘‘‘¡€€‘}}€}}}}}‘‘}}€}}}}}}}€}}~}}}}}}}}}€}}}v}Óÿûž}žû÷™|}}w}€}}}}vv}vv}}v}vv}vvwvv}vvvvvvvvvvv}}vvvovvvvvvvuvvv}voovovvolovvovvvvvvllvvvvvvuooouvvllluuvuullCClulClllllltluu›õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Cóÿÿÿÿÿ÷_!!!!!!! !!!!!!! !!!!! !  !!!!!   !! !   ! ! !  !    !   !   >}¥íÿþþþþþþþþþýÿÿþÿýÿþÿþÿþÿþÿþÿÿæÓ                   Ó×üüþýþüþüþþþýþýþþÿÿüÿþÿÿþþÿÿþúÖ�‘~~}~}~¡¡~}~}~~~~‘‘‘‘‘‘~}}~~~~¡¡‘~~}~‘~~‘‘¡¢¡~‘‘~�¡¡¡€‘¡¡¡¡¢‘~‘¡¡‘‘¢¡‘‘¡¡‘¡‘¡¡¡¦¢‘¡¢¡‘‘¡¢¡¡¡¡¡‘‘‘‘¡¢¦¦¡¡¡¦£¢¡¡¡¡¡¡¡¡‘‘Úþÿÿÿÿÿ楦¦¦¦¡¡¦¦¦¦¥¢¡££¢¢¦¦¡¢¦££¢¦¢¡¢¦«¦¦¥£¢¢¦¢¢¡¡¢¥¦¢¡¡¡¡¡¢¦¦£¢¡£¦¢¢¢¡¡¦¦¢¡¡¦¦¦¥¢¡¢¢¢¢¢¢¢¢¢¡¥££¦£¦¢¡¥£¥¢¦¢¡¡£¢¢¦¢¡‘¡¡‘¡‘¡¡¡¢¡¡¡¡¦¡‘‘‘‘¡‘¥¦¥¡¢¡‘‘¡¢¥¦¡¡¡¡¢¦¢‘‘¢¡‘¥¡‘‘‘‘‘‘¡‘‘¡¡¡¡ÚÿÿÿÿþÚ‘‘¡‘‘‘‘€}‘‘¡‘‘‘~}‘‘‘¡‘€‘¡‘€‘}�‘€}~}}}‘‘}}}€‘‘‘‘‘}}�€}}}}~€‘€}}}~~}}}‘}}‘}}}}}}}v}}}}}}}Çÿú§‘§úõš}}}v}}}}v}vvv}}}}vvvv}vv|}}}}wvvvvvvvv}}vvvvpvvplovvvwvvvvvovupuoouvvoopvvvvolouovvvvovvvuolCloovolllCllpoltvlCCluv˜ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!=!Zóÿÿÿÿÿ÷x!!!! !!!  !!  !!!  !!  !! !! !      ! ! !    !!!  !=qªõþþþþþþþþþþþÿþþÿþÿþÿþÿþÿþÿÿþÿæÓ            Ó×þþüýýýþýýþüþþüþüÿÿÿþÿþÿÿÿþÿÿûÖ¢‘‘‘~~}}~‘~}~~‘¡‘‘€‘€~}~‘‘‘~~~�‘‘~‘‘‘¡‘~‘‘‘‘‘~‘‘‘‘~‘‘‘~‘¡�}‘¢‘~¡¦¡~‘¢¡¡¡¡¡¡¡‘¡¡‘‘¢¡¡‘¡¡‘¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡‘¡¦¡¡¡¡¡¡¡¢¢£¦¢£åþÿÿÿÿÿꦦ¢¡¡¡¢¦¡¡¡¡¡¡¡¢¢¡¡£¥¢¢¡¢¡¡¡¢¦¢¡¢¢¢¢¡¥¦¥¦¦¢£¢¢¥¦¦¢¢¦¦¦¢¥¢¦£¥¡¢¢¥¦¡¡£¥¢¥¦¢£¢¢£¥¢¡¢¦¦¦£¢¡¡¡¡¡£¦¡¡¡¢¡¡¡¡£¡¥¢¡¥¡¢¥¦¢¥¢¢¡‘¡¡¡¡¡¦¥‘¡¡¡¢¡¢‘‘¡¡¡¡¡¥¡¡¡‘‘‘‘¡¢‘‘¢¢‘~¡¥¡‘¡¡‘‘‘‘‘‘‘‘‘¥Ýþÿÿÿÿà¡‘‘‘¡¡‘~‘‘‘‘‘‘€‘‘‘€‘~}€‘‘€‘‘€‘‘‘‘‘‘‘‘‘€}~‘}}}€~~‘‘‘}€}}}}}€}}~}}}}}}~}}}}~}~}}}}}~}}}}}Óÿúš}žûõ™w}v}v}}v}}}vv|vv}}}vv|}vvv}vvvvvvvvvvvvvvvvvvv}vvvvvvvlovvvvvvvvvvvvvpulvoovulvvuvollllloovlovuuollouvuullllotlul{áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!! !!!!!!!! !!!!!  !   ! !!! !   !!    ! !  ! !    !! 9qªíþÿýÿþþþþþþþÿÿþÿþÿþÿþÿþÿþÿþÿÿæÓ    !        Ó×üþüþýýþýþüþþýýþþÿÿüÿÿþÿþþÿÿþúÖ �‘‘‘‘}}~‘‘~~¡¡¡¡‘~~�‘~}~‘€~}}}‘‘~~¡‘�‘‘‘¡‘~}~‘‘‘~}~‘‘‘‘‘~~‘‘‘�¡¡‘¡¡‘¡£¡¡¡¡‘‘‘¡¡‘¡¥£¡¡‘~‘‘¡¥¢¡¡¡¡¡¡¡‘¡¡¡¢¦¥¡¡¡¡¡¦¡¡¡¢¦«êþÿÿÿÿÿꥢ¢¥¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡£¡¡¡£¢¢¢¥¡¡¢¢¦¢¡¡¢¦«¦¦¥¡¡¢¦¦¢¦¦¦¦£££¦¦¡¡¦¦¦¦¢¡¦¢££¢¢¢¢¢¦¦¢¡¡¢¥¢¢££¢¢¢¢¦¦¢¡¡¡¥¡¡¢¡¡£¢¢¡¦£¡¦¦¦¢‘‘¡¡¡¡¡¡¥¦¢¡¡¡¡¡¢‘¡‘¡¡¡¡¦¡‘¡‘¡¡¡¡¡‘‘¡‘¡‘‘¡¡¡¡‘¡‘‘‘‘‘€‘‘¢¦ëÿÿÿÿûÔ‘‘‘¢¥‘‘‘‘¡¡‘~€‘¡€}‘}~‘‘‘}‘‘‘‘‘‘€‘‘‘€}�‘}}€‘}€}}‘‘}~}}}}}€}}}}}}}‘}w}}}}‘€}}}}‘€}}}}Óÿ÷™}žýõ™}}}v}vvv}}w}}vvvvv|}}}vvvvvvvvvv}}}vvvpppvvvpv}vvv}voooovwpovvovvvvvolovvoovpovvlllllulltlolluopulluvvvolCClllo{ßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yòÿÿÿÿÿ÷_!!! !!!@!!! ! !!!!!!!! !! !!!!! ! !  !!  !   !    ! !!!    !!   ! =qªõþþþýþþþþþþÿÿÿþÿÿþÿþÿþÿþÿþÿþÿæÓ           ÓÙüýþüýþüþþþüþþüþüÿÿÿÿþÿÿþÿþÿÿûÖ�}}}€‘~~~~}}‘‘~}}}€‘‘‘‘~‘¡‘‘‘�‘~€}‘‘‘~~‘‘‘¡~‘¡¡‘‘¡‘¡‘‘‘¡¢‘‘¡¡¡‘‘‘‘¦¢~‘¡¡‘‘¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡¢£¡¡¡¡¡‘¡¡¡¢¡¡¡¦¡‘¡¡¥¢¢¡¡¢¡¢¢Úþÿÿÿÿÿꦢ¦¦£¢¢¦¢¡¡¢¥¦¦¦¦¢¢¡¢¦¦¦¢¥¢¢¢¢¢¦¢¥¦¡¢¦¡¡¢¡¢¢¡¢¢¢¦¥¦¢¡¢¡¢¡¡¡¢¢¡¡¢¡¦¥¢¢¡¡¡¢¥¢¡¡¥¢¢¦£¢¢£¥¡¡¡¡¡¡¡¡¢¡¡¢¢¦¦¡¡¡¡¡¡¦¦¢¡¡¢¡¡£¥¢£¥¡¡¡‘¡¢¢¡‘‘¢¢¡‘¦¡¡‘¢¦¡‘‘‘‘‘¡¡¡¡¡‘¡¡¡‘¡‘‘‘‘‘‘‘‘¡¡¡‘‘™àÿÿÿþæ‘‘‘€‘‘‘‘‘‘‘‘€€‘‘~€‘‘‘€‘‘‘‘‘‘€}}‘‘}‘}€~€‘‘}}‘‘~‘}}}‘€~~}~}~‘€~‘}}}}‘~}}€}}}}}}}}}}v}}}Óÿú™}žýõ�v}|}wv}}v}}}}vv}}}}vwvv}ww|v}vvvvvvv}vvvvvvvvvvvvv}vvvvvvvlovvvuvvovvovoouvvvlovvvvlovvvvoullvuvoloolllllouuu{×ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!=9!Bóÿÿÿÿÿ÷_!!!!! !!!!! !!!!!!! !    !  ! ! ! !! !!! !! ! ! !  !!!q¥õþþÿýÿþþþþþýþÿÿþÿþÿþÿþÿþÿÿþÿÿæÓ             ÓÓüþþüþþþþüþþþýþþþÿÿüÿþÿüÿÿþÿÿúÕ�s}~}~‘‘‘~}}~}}}~‘‘¡¡¡~~‘‘‘~‘‘~~~€‘‘‘€}~‘‘~~‘¢¢‘¡¡¡¡~~¡¡¡‘~‘¢¥‘‘‘‘¡¦‘‘‘¡‘¡¡¢¡€‘‘‘¢¢¡¡‘¡¡¢¦¢¢¡¡¡¡¡¡‘¡¡¢¡‘¡‘¡¡‘¡¡£¡¦¦¦¡¡¢Úþÿÿÿÿÿë­«¦¢¦¦¢¢¥¡¡¢¦¦¢¢¦¦¢¡¦¦¦¥¡¡¡¡¦¡¢¦¦¢¡¢¢¢¡‘¡¡¡¢¡¢¢¦¦¦¡¡‘¡¢¢¡¡¡¡¢¡¡¡¢«£¢¡¡¡¡¢¢¡¡¢¢¢¢¢¢¡¢¡¢¡¡¡¡¡¡¡¡¡¥¢¢¢¢¦¢¢¡‘¡¡¦¥£¡¡¡¡¢¢¢¢¦£¡‘¡‘‘¢¥¡‘‘¢¦¡¡‘¡‘‘¢¦¦¡‘¡‘‘¡¡‘¡¡¡¡¡‘‘¡¡¡¡¡‘‘€‘‘‘‘‘§íÿÿÿýÚ‘‘¢€}~‘‘‘‘‘€€~‘¡‘€~‘‘‘‘‘¡‘‘€}~}~‘‘‘‘‘�‘~‘€}~}}}‘‘}}}‘€}‘}}}‘}¡~}€~}}‘‘}‘}vv}}}}}}vv}vw}}×ÿ÷‘}§ýõvv}}}w}}vw}}}v}}}}}}vv}}}vvvvvvvvov}vvv}}vvvvvv}vv}vv}}vplovvvvvvoolvvwvovuovolvuvtlovvvlllouvllllvullluvul{ÌúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=@=!Bóÿÿÿÿÿ÷_!!!!!! ! ! !!!!  !   !!       !!! ! ! !  !!!!  !!!=qšíþþþþýþþþþþÿÿÿþþÿþÿþÿþÿÿþÿþÿþæÓ       Ó×þýþýþüþþýþüþüþþüÿÿÿÿþÿÿÿþÿþÿúÖ��~‘}}}}~€~‘€�~}~~~}~‘‘~~€‘€‘‘‘‘‘‘‘~€¡‘‘‘~‘‘‘¡¡‘‘‘¡‘‘‘¡‘‘‘‘¡¡‘~‘¡¡¡‘‘‘¡¡¡‘¡¡‘‘¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡£¥¢¡‘‘¢¦¢¡¡¡¡¡¡¡¡¡Ýþÿÿÿÿÿꥢ¡‘¢¦¥¡¡¡¢¡¡¦¦‘¡¦¥¢¡¢¢¡¢¢¢¦¦¡¡¥¢¢¡¢¦¢¦¢¢¦¥¢¦£¥¢¦£¢¦¡¡¦¦¢¢¥¦¥¢¡¡¦¦¡¡¢¢¢¢¦¦¦¢¢¢¢¥¡¡£¥¢¦¢¡¡¡¥¢¥¡¡¢¢¢¢¢¡‘¡¡¡¢¡¡¡¡¢¡¡¡¢¡¡¡¡¡‘¢¦¢‘¡¦¢‘¢¡‘¡¡‘¡¡‘¢‘¡¢¡¡‘‘¤¡¡‘¡¡¡¡¡‘‘¡‘¢¡‘‘‘‘‘‘§ëÿÿÿÿõ¬‘‘¢¡~‘¡‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€‘‘~€‘€�}~‘€‘€}}~€‘‘‘‘~~‘~}~}}}‘‘‘}|‘}‘}w}‘}}}}€‘}}}}}}}}}}}~}}Óÿú™vžÿõ™}}}}}vv}}}w}vvv|v}}vvvpw}vv}vv|vvvov}vwvvvvv}vopvvvvoovvovvvvvvvovulovoovvpllooovvvllvoouvvooouuuollluluvu�÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!!!!!!!!!! !!!!! !!!!!!!!! !! ! !! !!! !    !  ! !   !!  !!     =q¥íÿþþþÿýÿþþþüÿÿþÿþÿþÿþÿþÿþÿþÿÿèÓ   !      ÓØüüþþýþþüþþýþþþþþÿÿüÿþÿüÿþÿþÿúÖŽ��~}~��~}~‘‘~�‘‘}}~}‘‘~‘‘‘‘‘¡¡‘¡¡‘}‘¡¡�~‘¡¡‘¡‘‘¡¡‘€‘¡¡‘‘‘¡¦‘~�‘‘¡¡‘‘¡¡¡¥¡¡¡¡¡¡‘¢¡~‘¡¡¡¡¡¢‘‘¡¡‘‘¡¡¡¡¡¡¡¦¦¡¡¡£¢¡‘‘‘¡‘¡¡¥ãþÿÿÿÿÿ梡¡¡¡¥¦£¡¢¢¡¡¢¦¢¢¢£¢¡¢¡¡¡¢¦¢¢¢¡¡¦¢¡¦¦¡¡¢¢¦¦£¦¦¦¡¢¢¢¦¢¢««¦¦¡¦£¡¡¡¢¥¡¡¢¢¡¥¦¢¢¢¢¢¦¦¡¡¡¦¢¡¡¡¢¥£¢¡¡¦¡¡¡¡¡¡‘‘¡¡‘‘¡‘¡¢‘¡¢¥¡¡¡‘‘¡¦¦¥¡¡¡¥¦¢¡‘¡¥¡¡¡‘‘‘‘¡¡‘‘¡¡¡¡‘‘¡¡¤¡‘‘‘‘¡¡‘‘‘¡§æþÿÿÿýÚ¤¡¡‘‘‘~‘¡‘‘‘‘‘‘‘‘€‘€€‘¡‘‘}}}}~~‘€‘‘}}}‘‘‘‘€}€‘‘‘}}}}}}}}~}}‘‘}}}}}€‘€}v}€‘‘‘}}}w}}}}}}}€‘×ÿ÷™}žÿõ‘}ww}vv}}}}}vppvvvvvvvvvv}vv}vv}vvvvvvvvvvvvv}}voppvvvouvp}}vvvvvooooooovvuollllulvllllllvvvoluvvvllluolu›òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yòÿÿÿÿÿ÷_!!!!!!!!!!!!!!! ! !!!!! ! !   !  ! !! ! ! !  !  !!!  ! ! 9pªõþþþþþþýþþþÿÿþÿþÿþÿþÿþÿÿÿþÿÿþæÓ          Ó×þþüþüþþýýýþüþþþüÿÿþÿþÿÿÿþÿÿÿûÖ��}}�~}~}}‘‘~~€‘}}~‘‘‘~}~‘‘~~~€~~¡¡}~¡¡€‘‘‘€~‘‘¡‘~~‘‘‘‘‘~¡¡‘~¡¡¡~‘¡‘‘‘‘‘¡¡¡¡‘¡‘‘¡¦‘‘¡¡¡‘¡¡¡‘¡¢¡‘¡¡¢¦¢¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢¡£¡Úþÿÿÿÿÿꥡ¢¦¡¡¡¡¢¦¢¡¢¢¡¢¢¡¢¡¡¥¢¦£¥¢¢‘¦¦¦¦¡‘¦«¥¢¢¡¥¢¢¢¡£¢¡¢¡¡¢¢¦£¥¦¢¡¢¢£¥¦¦¡¡¥¦¢¢¡¢¢¦¡‘¢¦¢¡¥¦£¥¡¡¡¡¡¢¢¦¢¡¡¥¢¥¢¡¡¦¦¡¡¡¡¦¦¢¡¡¡¢¡¡¡¥¡¡¡¡¥¡‘‘¢¡‘‘¦¡¡¡¡¥¡¢‘‘¡¡¡¡‘‘¡¡¡¡‘¡‘‘¡‘‘‘‘¡¤¥Úýÿÿÿÿõ¬‘¡‘€‘‘‘‘‘¡¡‘‘‘‘€~‘‘‘‘�}‘‘‘€‘‘‘‘‘}~~‘¡‘}}¡‘}~}~‘‘}€}}€‘€‘}~}~€}}}}}}€}}}}}v}‘}}}}}}}}}}€}}}w×ÿõ�}žÿõ�}v}}}}vv}}}v}}}vv}}vvvv}}vvv}vwvvvvvv}vvvvpvvvvvvvvvvvvvuovvoovvoovvvvoooovvvovvuuvouuuuovulllllvlluou˜èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!9!!Zóÿÿÿÿÿ÷_ !!;!!!!!!!!!! !! ! !!!! ! !!! !!  !  ! !  !  !  !!  !! !!!    ! !!=}ªõþþÿþÿýÿþþþýÿÿþÿþÿþÿþÿþÿþÿþÿÿæ×    !          Ó×üþüþþþþüþþýþþþþþÿÿþÿþÿüÿþÿþÿúÖ�s~�€~~}}~‘‘}}~}}~‘‘~~}}}‘~}}}~~}~‘~}‘¡�~‘¡�~‘¡‘~‘‘‘‘~~‘¡¡‘‘‘‘‘‘~~��‘¡‘~¡¡‘¡‘‘‘�‘¡‘‘‘‘¡¡‘¡‘‘¡¢¥¡¡¢¦¥¦¥¦¢¡¡¡‘‘¡¡¡¢¥¢¢¦¡‘Úþÿÿÿÿÿ楡¡‘¡‘¡¢¦¢¢¥¢‘¡¡¡¥¦¦¢¢¦£¦¦¢¢¢¦¢¡¡¡£¦¦«¢¢¡¦¦£‘¡¢¦¢¥¦¡¡¡¢¦¢¢¢¦¥¢¦¦£¡¡¡¡££¢¡¢¦¢¡¡¡¡¡¢¦£¢¢¢¢¢¡¡£¦¥£¥¦¦£¦¢¡¡¥¦¢¡¢¡¦¦¥¢‘¡¡¡¡¡¦¢¡¡¡¡£¡¡‘¡‘‘¢¡‘¥¦¢¢¦¡¡¡¦¦¥¡‘¡¡‘€‘‘‘‘‘¡¡‘€™ÚûÿÿÿÿûÚ¡‘¡‘‘€€€‘‘‘¡¡‘‘‘‘~‘‘‘‘‘€‘~}}}€‘¡‘‘}}‘‘‘‘}€‘}~€}€‘}}}}}}‘‘‘‘€‘}}}€€}}‘‘}}}}}}}}v}}}v}€‘‘}}}}Ùÿõvžÿôvv}}vvvv}}}}}}}}vvvvv}wvp}}w}vvvv}}}v|vpvvvpv}}vooovvvvoovlllovovvovvoovvvoopoopoovpvvullCllluvououÇúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!@!Zóÿÿÿÿÿ÷_!!!=!! !!!! !!!! ! ! ! !!!  ! !  !  ! !! ! !!!!!   ! ! !  !!!  =ެõþþþþþþþþþþÿÿþÿþÿþÿÿÿþÿþÿÿÿþÿæÓ ==      Ó×þþýþüþþþþüþþýþþüÿÿþÿþÿÿÿÿþÿÿúÖ�}‘¡}}~�}~€‘‘}~�~~~‘‘~��‘‘‘~�~€‘‘‘~‘‘¡‘~~¡‘‘‘‘‘~~‘¡¡¡‘~‘¡‘¡‘¡¡�‘‘‘‘‘¡¡~‘¢¢‘‘‘‘¡¡¡¡¡¡¡‘¡¡¡¥¡¡¡¡¡¡¡¢¡€¡¡¡¡¡¢¢¡¡¢¥¡¡¡¢¢¢¡¡Ýþÿÿÿÿÿꦦ¢¡¢¦¢¢¡‘¡£¥‘¢¦¢¢¡¢¥¡¢‘¡¢¢¢¢¢¥¢¢¢¦¡‘¢£¥¢¢¢¡¡¢¥¢¡¢¦¦¡¢¦¥¡¢¢¢¡¡¢£¢¢¢¦¢¡¢¥¢¡¢¢¢¢¢¡¦¦¢¡¡¦¡¥¡‘¡¦¢¡¡¡¡¡¡¢¥¡¡¢¢‘‘¡¡¦¥¡¢¡‘¡¡¡¡¡¥¡¢¡‘¡¡¡‘¡¡¡¥¡‘‘¡¡¡¡‘‘‘¡‘¡‘‘¡¢‘€¡¡¡‘¡¡‘¤Ô÷ÿÿÿÿýॡ‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘~€€‘‘‘€‘~‘‘‘€‘‘‘~€~€‘~‘‘‘‘}}‘‘~~~~€€}}}}}€~}}‘}}}~}}}}}}}}}}}}}}}}}}}}}}vÚÿ÷}Òÿõ‘}v}}}v}w}}wvv}vvvvv}}vvv}vv}}vvvvvvvvvvvvvvvpuvvvvpvoovpvvvvvvoooovvuvooulovvlovuvvoolovvlouuuooolu{ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!@óÿÿÿÿÿ÷_!!! !!!!! ! !! !!! !! !  !!! !!   !  !   !  !  !   !    !   !=qªíÿþþþýÿþþþýýÿÿþÿþÿýÿþÿþÿþÿþÿÿæÓ  7ZCB>!      Ó×þüþýþþþüþþþþþþþþÿÿþþÿþÿüÿüÿþúÖ�s~~}�~}~}~¡¡‘‘~}}~‘‘‘‘‘‘~~‘¡‘�¡¡~}~‘¡‘‘‘‘¡‘‘‘~~}¡¡¡‘‘~‘¡¡¡‘¡‘‘‘¡¡‘¡¡‘‘‘‘‘‘¡‘¡¢¡¡¡¡¢¡‘‘¡¡¡¢¡¦¦¡‘¡‘‘‘‘‘‘‘¡¢¢¡¡¦¦¡‘‘¡¢¡¡¥ãþÿÿÿÿÿꦦ¥¦¦¦¦¢‘‘¢¦¡¡¡¦¦¡¡‘¡¡¢¡¡¥¢¡‘¢¦£¡¦¦¡‘‘¡¦¦¡‘¡¡¢¦¡¢¢¢¡¡¦¦¢¡¡¡¡¡‘¢¦¡¢¢¢¦¦¦¢¡¢¡¡¦«¦¥¦¦¡¡¢¢¡¡¢¡¢¦¢¡‘‘¡‘‘¡¢¢¢¥¡‘‘¡¥¦¡‘‘‘¢¡¡¥¢¥£¡‘‘‘‘‘‘‘‘¡¢¡¡‘‘¡¡‘¡‘¡¡¡‘‘‘‘¥¡‘‘‘¡‘¢¦¨Ôõÿÿÿÿþ륑¡‘‘‘‘€¡¡¡¡¡‘€‘}}~‘‘‘‘~}}�‘¢¡‘‘‘‘‘}}‘‘‘}}~‘‘}~‘‘€}}€‘}}}‘}‘‘~}}~}}}}€‘}}}}}}}‘‘€€}}}€‘}v}v}}vvv}‘ßÿõ‘‘Óÿñ}}}v}w}|vvvvvvvvvv|}}wv}}}}vv}vvvvwvvvvvvvvvpopoovoopvoooov}vvupouvovvvooollvlluvvvolovvvvvvvvuuuoo˜òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!B÷ÿÿÿÿÿ÷_!9! !!! !!!! !! !!!    ! !!   !! !    ! ! !!! ! ! ! !   =wªíÿýþÿþþþþÿýÿÿÿþÿÿþÿþÿþÿÿþÿÿþÿæÓ  =Z†–†C   ÓÙüþþýýýþþüþýþýþþüÿÿÿþþÿþÿÿÿÿÿúÖ��~~€‘}}~~~}~€‘‘‘��~~~~‘�~~‘~~€¡‘~�‘‘€‘‘¡~~~‘‘‘‘~‘‘‘‘‘‘‘‘‘¡‘¡‘‘¡¡¡‘¡‘‘¡¡�‘¡‘‘‘¡¡¡¡¡¢‘‘¡¢¡‘¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¥¡‘¡£¥¡¡¢¡¥¢¢¢Ýþÿÿÿÿÿ襢£¥¡¡¡¢¢¡¡¦¢¡¥«¥¢¢¡¢¡¢¡¡£¢¢¡¥¦¡¡¦«¢¢¢‘¢¦¢¡¢¢¢¦¢¢¢¢¢¢¢¢¢¡¢¡¡¢¢¦¦¢¢¢¢¡¡¢¢£¥¢‘¡¦¡¡¡¥¢¡¢¢¢¡¡¢¡¡¡¢¢¢¡¢¢¡¡¡¡¢¢¢¢¡¡¡¢¡¡£¥¡‘¡¡¡¢¡¡¡¡¡‘¡¡¡¢¡¡‘¡¡¡¥¡¡‘‘¡¡¡¡‘‘¡¡¡‘¡‘‘¥§õÿÿÿÿþõ¬¡‘¡‘‘‘¡¡‘‘€€¡¡€€‘‘‘‘‘‘‘~‘‘‘€‘‘€‘€~€€‘~€¡‘}~€€€€‘‘}}€}‘‘€€‘‘}}}‘}€}}}}}~}}€}}~~}}}}~}}}}}v}}}}}}}€Úÿ÷}Óÿèv}}}}}}}vv}}vv}}}w}}vvvv}}vvvvvvvvvvvpv}vovvvvvpvwvuvvvvvvovvppvvvvolvvvovuuvvvovooullvulollolllolužúýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!!!Bóÿÿÿÿÿ÷_99!!! !!! ! !!!! ! !!! !! !!!!   !        ! !!!  !!   !  =}¥õþþþþþþþþþýýþÿÿþÿþÿÿþÿþÿÿþÿÿÿèÓ    8ƒÇèÄ_>       ÓÓüþüþýþüþþþþþþþþþÿÿüÿþÿþÿüÿüÿúÖŸ�~}~}}~€}}}}~‘‘‘‘‘‘~~‘€€~‘}}~‘‘‘~‘~~‘¡‘‘‘}~~�¡¡‘~~‘‘¡‘‘‘‘‘‘‘‘¡¥¡‘‘‘‘¡¢¥‘‘¡‘‘~‘¦¥¡¥¥¡¡¡¥¢¡‘‘‘¡‘‘¥¢¡¡¡¡¦¦¢¡¡¡¢¦£¢¥¡¡¡¡¡¡Úþÿÿÿÿÿ楣¦¡¡¡¡¡¦¦¢¢¢¢¦«¢¡¡¡¡¥¢¢¡¦¦¡¡¦¦¦¦¥¢¢«¦‘¡¢¦¡¢¢¦¦¡‘‘¢¦¢¡¦¥¢¢¡¡£¢¦¥¢¦¥¢¡‘¡¥¦¦¦¡¡¡¡¡¡¡¡¡¥¦¦¡‘‘¡¡¡¥¦¦¢¥¦¢‘‘¡¡¢¦¦¡‘¡¢¡¦¦¢¡‘¡¡¡¡¡¡¡‘‘¡¢¡¡¡¡‘‘¡¡¢¡‘‘‘¡‘¤¡¡‘~‘¡¥¡¡¥§ëÿÿÿÿÿõÔ¡¡¡¡¡‘‘‘¡‘‘‘‘‘‘‘�~‘‘‘‘¡¡‘}€‘‘~}~€}~}}~‘‘}‘‘€}}}‘‘‘}}}}}‘‘‘‘‘}}}}}}}}‘}‘}}€‘‘}€‘}}|}}}}}v}}|}}~€wv}}ßÿõ}Òÿèwv}}vvvvv}}vv}}|vv}vv}vvvvpv}vpvvv}vpvvvpoov}}wvpvvvv}vvvoovvoovvvvvopvvvvvoovvuvolollollllltoluloltuƒßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!9!Y÷ÿÿÿÿÿ÷x!!!!!! !!!!!!! !!! !  ! ! ! !! ! !!  ! !  !!! !  !   !   =wªíÿþÿþÿþÿþþÿþÿÿþÿþÿÿþÿþÿÿþÿÿþÿàÓ   >B–×™_    Ó×þþýþþþüþþþýþýþþüÿÿþÿþÿþÿÿÿþÿúÖ��~}}~‘‘~~~�}}~€~~€‘‘‘~~~€~~~‘‘�~‘‘~~‘‘~~‘‘‘‘‘‘‘‘‘~‘¡‘€‘¢‘~‘¡‘¡¡‘‘‘‘‘‘¢¡�€¥¡‘‘¡¢‘‘¡¡¡¢¡‘¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¢¡¡¡¡¡¡¡¢¢¡¥Ýþÿÿÿÿÿꥡ¡¢¡¥¡‘¡¦¢‘¢¢¢¢¥¢¢¡¢¡¢¡¡¦¦¡‘£¥¢¦¡¡¥¦¡¡¥¢¢¡¢¢¢¢¢¢¢¦¥‘¡¢¢¢¢‘¡£¥¡¡¦¦¡¥¢¡¢¡¡¡¢¢¢¥¢¥¢¡¡¡¡¥¢¢¥¢¥¡¡¡¡¢¢¡¡¢¡£¥‘¡¢¥¡¡¢¥¡¡‘¡¡‘¡¥¡¡¡¡¡‘¡¦¡‘¡¡¡‘¡¡¡¡‘¡¡¡¡‘‘¡‘‘‘‘‘¡¡§ëþÿÿÿÿûÚ¡‘¥¡‘‘‘‘‘‘‘‘‘‘‘‘~}‘‘‘‘€€‘‘‘~‘‘‘‘‘‘~‘€€‘‘‘‘‘€‘~€‘€€‘}€~~�‘}}‘}}‘‘}}}}~€}}}}}‘}}}}}}}}}}}}}v€}}}}}}}àÿõ}}Óÿô}}w}v}}v}v}}vvv}}}}}vvvv|vwvvvvvvvv}vvvvvvvvvvvpvvvvvvvvvouvvuovvlvoouoouvvulopovvoooouuuuoovullulovvuo{ßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!9!!!Bóÿÿÿÿÿ÷_!!9! !!! !! !!! !!  !!!!!! ! !  !!!  ! !    !!  !  !!   !   !9qªõýþþþþþþþþþýÿÿÿþÿþÿþÿÿþÿþÿþÿÿèÓ    $jƒƒ_j!   Ó×þüþýýüþþþþþþþþþþÿÿþÿþÿþÿüÿÿþúÖ��}}~}‘‘€}~‘‘}}‘‘€~~~}}}‘‘‘�~‘‘~~‘‘~~‘}}}}‘‘‘~}~‘¡‘‘‘‘~¡¡€~‘¡‘~€‘¡¡‘¡¡‘‘‘¡¡£‘‘‘¡€‘¡¡‘‘¡‘‘‘¡¡¡¡¡‘¡¡¢¥¡‘‘¡¡¢¥¡‘‘‘¡¡¡¡¦¦¦£êþÿÿÿÿÿꥡ‘¡¡¡‘‘¡‘‘‘‘‘‘¡¡¡¡¦¦¦¡¡¢¦¥¡¡¡¡‘¡‘¡¡¢¡¡¦¢¡¡¦¥¢¢¥¢¢¦¡¡‘¢¡¡¢¡‘¡¡¡¡¦¢¦¦¦¦¦¥¡¡‘¢¥¡¡£¦¦¢¡¡¢¢¥£¦¦¦¥¡¡¡¡¡‘‘¢¥£¢¡¥¡¡‘¡¢¡¡¡‘‘‘¢£¢¡¡¦¥¡¥¡¡¢¦¡¡¡¥¢¡‘‘¡¡¡‘‘€‘¡‘¡¡‘¥æþÿÿÿÿûॡ¢¡¡‘‘‘}€‘¡‘¡¡¡‘‘~€‘‘‘‘‘~~‘€‘‘€}‘‘€}~‘‘‘€}€€}}}‘‘~}}‘¡‘‘‘~}}‘€}‘€}‘‘‘‘‘}|}}~‘}}€}}}}}}}}}}v}‘}}€€}}‘}ßÿõv}Óÿè}vvw}}}}vvv}w}}}}}}}v}vvv}}}vvvv}}vvvvvv}}}vovvvv}vpovvvvvvuoovvvvollvoolo}vlovvvlouvupollovvolllltv�ʘvv˜ßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ===!!Yõÿÿÿÿÿ÷_ !!!!!!!!!!! !! !   !! !!!!!  ! !  !! !!   ! !  ! ! !! ! !! !  !pšíÿþÿýþþþþþÿþÿÿýÿþÿþÿÿþÿÿÿþÿÿþæÓ$$8>        Ó×üþýþþþþþýýþþüþþüÿÿÿþþÿþÿÿþÿÿúÖ��~}}}~€~~€~~}~~€‘~~�‘�}~~€‘‘‘‘}~‘‘~~‘‘‘‘‘‘~~‘‘‘‘‘‘‘¡‘}‘¡‘¡‘¡‘~‘‘‘¡¡¡¡‘‘¡¡‘¡‘¡‘‘¡‘¡¡‘‘¡‘¡¡¡¥¡‘¡‘‘¡¡¢¢‘‘¢¢¢¢‘¡¡¡¥¢¡¡¡¢‘¡Ýþÿÿÿÿÿ榢¢¢¢¡¡¥¡‘¡¦¢¡¡¢¢¢¢¢¢¥¢¡¡¡¢¢¢¢¢¢¢¡¡¡¦¡¡¢¢¢¡¢£¡¡¡¦¢¢¡¡¡¦¥¢¡¢¢¢¦¡¡¡¡¢¢¥¦¡¡¢¦¢¢¢¢¢¢¡¡¢¡¡¦¢¡¡¡¡¦£¡¡¥¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡‘¡¡¡‘¡¦¡¡¡‘‘¡¡‘‘¡¡¥¡‘¡¥¡‘‘¡¡¡¡‘‘§Úýÿÿÿÿý륑‘¡¥‘‘‘‘‘~‘¡‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘~‘‘‘‘‘~€~‘€€€‘‘‘‘€}~€€¡‘}‘‘€€}}~~}€}}€‘}€}}€}}}}‘}}}}}}~v}}}}}}}}}}}}}}}€àÿõ}}Óÿè}}}w}}wwvw}}vv}}vvvv}wvvwv}vvvvww}vpvvv}vvvpvvvvvvvlvvvvvvvvvvovvvuvovvulvwoluvvouloopuvlllloouotlouvÇçÇ{voƒáýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!!!Yóÿÿÿÿÿ÷_!!!!! !! !!!! !!!!!!!! !!!   ! !   !  !  ! !!  !   !   ! !=qªõýþþþÿþÿþþþýÿÿÿÿþÿÿþÿÿþþÿÿþÿÿèÓ       Ó×þþþýþþþþþþþüþþþþÿÿüþÿþþÿþþÿþúÖŽ}~�‘€~}}}~~}}�}}}}~‘‘~}}~~€‘‘~~‘¡‘€‘¡¢¢¡¡‘}~¡‘¡‘¡¡¡¥¡�‘¡¢¡¡¤‘‘¡‘~¡¡¡¡‘¡‘¡‘¡¡¥¡‘¡¡¡‘¡¡¥¢¥¦¡¡‘‘‘‘¡¡¡¢¡‘‘¡¥¡‘‘¡‘‘¢¡‘‘¢¥¡¡Úþÿÿÿÿÿ뫦¦¦¦¢¢¡¡¡¡¥¢¡¡¡¡¢¢¢¡¡¡¡¢¢¡‘¥£¢¡¡¢¢¢¡‘‘¡¡¡¡¡¡¡‘¡¢¥¦¡¡¢¢¦¡¢¦¦¦¦¢¡¡¢¡¡‘‘¡¢£¦¦¥¦¦¦¡¡¡¡¢¥¡¡‘‘¡¡¡¡¡¢¦¢¥¡‘¡¡¡¡¡‘¡¡¢¥¢¡¥¡¡¥¡‘‘‘‘‘‘¡¡¡¡¡‘‘‘¡¡‘‘‘‘¡¦£‘‘¡¥¡¡šÚûÿÿÿÿþõ§‘}~‘¡‘‘‘‘‘‘‘¡‘€€‘‘‘‘‘‘‘‘‘}‘¡¡‘}€‘¡¡‘‘}‘‘}~~‘‘€‘~}€‘~€~}}€€€‘}‘}€~}}~~}~}}}}€‘}}}‘‘}}‘~}}}}}}‘}v}}}}}vvvw}‘àÿè}vÊÿë}}}}}}}v}}}vvvvvppvv}}}wvvvvv}vvvpvvvpvvvpvwvvvvvvvpvvvlvvvvvvvoloopv}vovvoovvllvovvvvlluoltuvoovvvul{çè�ulu�ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Zòÿÿÿÿÿ÷_!!! ! ! ! !!! !! !!! !   ! ! !!    !! !   ! ! !   !! =ެíÿþÿþþþýþþÿþÿÿþþÿþÿþÿþÿÿÿþÿÿÿàÓ   Ó×þüþýþýþþüþþþþþþüÿÿÿþÿþÿþÿÿþÿúÖ�~~~~‘~}}~€‘~}~~~~~~€~~}~‘€‘‘‘‘}~‘‘‘‘‘‘‘‘‘‘€~‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘¡‘‘‘¡¡‘‘¡¡¡¡‘‘¡¡‘‘¡¡‘‘¡¡¡¡¡¥¡‘¡¡¡‘¡¥¢‘¡‘¡¡¡¢¢¢¡‘‘¡¥¡¡¡£¡¡Úþÿÿÿÿÿꥡ¡¢¡¢¡¡¡¡¢£¢‘¡¥¢¡¢¡¡£¢¥¦¡¡¡¡¡¢¡¡¥¦¡¡¢¡¢¢¢¦¢‘¡¡¡¢¡¦¢¢¥¢£¡¡¡¥¡¡¢¡¥¢¢¢¡‘¢¦¥¢¡¡¡¢¡¡¡¡¢¢¢¡¡¡¡¢¢¡¡¡¡¢¡£¥¡¡¢¡¡¡¡‘¡¡¢¢¡¡¡‘¡¦¡¡¡¥¡‘¡¡¡¡‘¡¡‘‘¡¡‘¡‘‘¡¡‘‘¢¦¥Ô÷ÿÿÿÿþõÖ¡‘‘‘‘¡‘‘‘‘‘€‘¡‘~‘¡‘‘‘�‘‘€‘‘~}‘‘‘~€€‘€‘¡‘~€~€‘‘‘‘}‘}‘‘€~~}}€€‘‘}~~}}}‘‘}}}}}}}}‘}€€€‘}v}‘}}}}}‘}}}}}}}}}}}}v}}�àÿèw}Óÿè}wv}}}}vvv}}}v}vvv}v}wvvvvvvvvvvvvv}vvvvvpvvvovvvlvwvovoovvvvoovvoovvovvuovuououuoluvvloputllloououloulvÌ÷ߘul{×÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!99!Zóÿÿÿÿÿ÷_!!!!! !!!!! ! ! !! !! ! !! !!! ! ! !  !   ! !  !  !  !      !=}¥õýþþýÿþÿþþþþÿÿÿÿþÿÿÿÿÿþþÿÿýÿÿèÓ $    Ó×þüþþþþþþýþþþþþþþÿÿüÿþÿþþÿþÿÿúÖ����}}}~‘¡‘~}}~‘‘‘‘}}}}~~€‘‘€‘€}}‘‘~}}}}}‘¡‘}‘~€}‘‘‘€~‘¡‘~€€‘¡‘‘‘¡‘‘‘}‘‘¡¡‘‘‘‘‘‘¡‘‘‘¡‘‘¡¡¡‘‘¡¥¡‘¡¡¢¡¡¡¢¡¡¥¦¥¡‘‘¡££¢¡¡¡¡Úþÿÿÿÿÿê¡‘‘¥£¥¦¢¢¢¢¦¦¢¢¦¦¢¢¥£¦¦¦¢‘¡¥¢¢¢¡‘¡¦¢¡¢¡¡¢¥«¦¥¦¡¢¦¢¦¦¦¦¦¥¡¢¦¡¡¡¡¡£¢¢¦¢‘¢¦¡¡¡‘¡¡‘¡¡¡¥¢¡¡¡¡¢¦¡‘‘‘¢¡¡¡¦¢¢¢¡¡¢¢¢¢¡¡¢¡‘‘�‘¢¥¡¡¢£¡¡¡¡¡¡¡¥¡‘¡¡‘‘¡‘‘¡¡¡§ÔõÿÿÿÿÿûÚ‘¡¥¡¡¢¡‘‘€‘‘¡‘¡¡‘€‘¡¥‘~€‘‘‘¡‘}}‘‘€€~€‘‘‘‘}‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘€€€~€‘}~}~}}€}}€‘‘~‘‘}}}‘}}}}}}‘}}}~‘}}}}}}}}w}}}v}}™æÿè}}×ÿè|vpv}vvvv}}}}}vvvv}}vvpvpv}vvvvvvv}}vvvvvvvvvvvvvvovvollv}wvvvvvovvvuvlllooollupoollolluuoloouooolllllllo›ñ÷Ì{uu”ßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!@==Yòÿÿÿÿÿ÷]!9!! !!!!@!!!!!!!!!!!!! !!!  !!    ! !!! !  !   ! !   !!  !=qšíÿþÿþþþýþþþÿÿÿþþÿÿþþÿþÿÿÿÿÿÿþàÓ   Ó×þþþþýþüþþþþþþþþüÿÿÿÿþÿþÿþÿþþûÖ��~‘~�}}~€€}~~~~‘‘‘}}~€‘‘€€~~~€~}¡‘~}‘‘‘€€€‘€‘‘‘€‘¡‘~‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘¡¡‘‘‘‘¡¡‘¡¡‘¡¡¡¡‘‘¡¦¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥¡¡¡¥Ýþÿÿÿÿÿ楑¢¦¢¡¡¢¡‘¢¢¢¡¡¢¢¡¡£¥¡¥¢¢¡¡£¢¡¡¢¡¢¦¡¢¡¡¢¡¢¦¢¢¡¡¡¦¢¡¢¢¢¡¢¡¡¢¢¥¦‘‘¢¢¢¥¡¡¡¦¢¡¡‘¡¥¡¡¡¢¡¡¢¢¡‘¢¢¥¢¢¢¡¢¡¡¡¡¡¡¡¡¡¢¥¡‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘¡¡¡¥¢‘‘¡¡‘‘¥Üíÿÿÿÿÿû॑‘‘¡‘‘¥‘‘‘¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘~‘‘€€‘}€‘‘~€‘‘€‘‘‘€‘‘‘‘}~€€}}€}}~}}~‘}}}}}€}}}~}}}}}}}}}}}}}}}}}}}}}}v}}�àÿè}Óÿè}w}v}}vv}}vw}}vvvv}}vvwvpvv}vvw}vvvvvvwwvvvvvvvovvvuvvvlo}vvvpvllvwlvouovouvouooouooouooooououlullllululll{×÷òž{ou�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ==!!!Cóÿÿÿÿÿ÷_!!!!! !!!!!! !!! !! ! ! !! ! ! !!  !  !  ! !   !  !  ! !  ! ! =qªõþþýÿþÿþÿþþýÿÿþÿþÿÿÿÿþÿþÿþÿÿÿèÓ$      ××þüþþýþþþþþüþþþþþÿÿüþþÿþÿþÿþÿúÖŸŽ~‘‘~}}}}}€~}}}}~~€‘‘‘‘‘‘~€‘‘}~‘~}€‘¡‘‘¡‘€~¡‘‘‘‘‘‘€‘‘‘¡¡‘¡‘¡‘‘‘¡‘€‘¢¡€€€‘‘¡¡‘‘¡¡¢‘‘¡‘‘‘‘¡‘‘¡¢¡¡‘‘¡¡¡¡‘‘‘‘¡¡¢¢¡‘¡¡¡‘¦¦àþÿÿÿÿÿꥡ¡¡¡¡¢¢¡‘¡¡‘‘¡¢¡¡¢¡¡¡¡¡¢‘‘¡¡¥¦¥£¢¢¡¥¢¢¦¡¡¢¡¡¡‘¡¥¦¥£¡‘‘‘‘‘¡¡¡¡¡¡¢¦¦£¡¡¦¡¡¡‘‘£¦¢¢¢¢¡¢¥¢¡¡¢¦¢¢¢¢¡¡¦¥‘‘‘¡¥¢¡¡¡‘¡¢¢¡¢¢¢¢‘¡¡¢¡‘‘‘¡¡¡¤‘¡¡¡¦‘‘¡¡¡™§ëÿÿÿÿÿý륡‘€‘~~~‘‘‘‘‘‘¡‘‘‘‘‘‘~‘¡‘‘¡¡‘€€‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘€~}}~‘‘}}}}‘‘¡‘¡‘‘}~‘€}€€‘}}}‘€‘‘}€}‘‘}}}}}}‘€}}}}}v}}‘}}}}‘}}}}}}àÿæ}}×ÿà}}|}}vvvvv}}}vv}v}}}}}}}vpvv}vvvvpoppvwvpvvvvvvpvvvpvvvov}povloouwvvoloopvvpoouvvoovuvvvluvvvvvluouuuoluuuou˜èüß”tC{×÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿ÷_!!!!!!! !! ! !!!!!    !!!  !!!  !! !  ! !!   ! ! !!  ! ! !  !!9}ªíþþÿýþýþýþþÿÿÿÿþÿÿþÿþÿÿÿÿÿÿþÿàÔ!$  Ó×þþþþþþþþþþþþþþþþÿÿÿþþÿþþÿþÿÿúÖ�}}€€~}~}~‘‘€}}}}‘€€~‘‘€~}~~€‘‘~‘~€}~‘‘‘‘¡‘~~‘‘‘‘€~‘‘‘‘‘¡‘€‘‘‘¥‘‘‘¡‘‘‘‘‘�‘‘‘¡¢‘‘¡¤‘‘¡¥¡‘‘‘¡¡¡¡¡¢¡‘‘¡¡¡¡‘‘¡¡¡¡¡¡¡‘¢¢‘‘¢¥Ýþÿÿÿÿÿꤡ¡¡¡¢¡¥¡¢¢‘¡¥¡¢¢¢¢‘¡¢¦¡¡¡¡¡¡£¢¡¦¡¡¢£¢‘¢¡¡¦¡¥¡¡¡¡¢¢¥¡¡¡¡¡¡¡¡¢¢¡¡¡¢¥¢¡¡¡¡¡¡¡¡¥¦¢¡¥¡¡¡¡¥¢¡¡¥¡‘¡¥¢¡¡¡¡‘¡¢¢¡¡¡¡¡‘¡¡¡¥¡¡¡¡‘‘¡¥¡‘¡¥¡¡¡¡¡‘‘¡¡¡¡¡­àþÿÿÿÿýõ§‘¡¡‘€‘¡‘‘‘‘‘¡‘‘‘‘‘¡‘‘‘~‘‘‘‘‘‘€‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘~‘‘~€‘~€€€‘‘‘‘‘‘€‘}€}}~}€~~}}}€€}~}€}}}}}}}‘}}}}}}}}}}}}}}€}}}w}v}}�æÿà}×ÿàwv}}v}v}vv}vvv|v|v}}vvvvvvvv}}vvvvvvvvvvvvvvvvvvvvvpvvvovwvovoouvvvvvuoulvvvuvloovvolovvllvuouoloulooullouolo{Ì÷÷Ê{ulƒßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!9!Cóÿÿÿÿÿ÷_!!!!!!! !!!! !! !!! !  ! ! !! !!  !       !  !   !! !q­íÿþýÿýÿþÿþþýþÿþÿÿþÿþÿþÿþÿþÿÿÿèÓ!!!  ÓÙüþþýþüþþýþþþþþþþÿþþþÿþÿþÿþÿþúÖŽs�}}}}~‘‘‘‘‘}~}~~~~€‘‘~}~‘‘‘‘€~‘‘¡‘‘‘~~‘¡‘€~€‘‘¡¡~‘¡‘~‘¡‘€‘~€¡¡€‘‘¡‘‘‘¡‘¡‘‘¢¢¡¡¡‘�‘‘¢¡‘¡¡¡¥¡‘‘‘‘‘¡¥¢¡¡‘¡¡¢¥¢¡¡‘¡¡¡‘‘¡¡Úþÿÿÿÿÿꥢ¡¡¡¢¡¢¡¦¥¡¡¦¢¦¦¥¡‘¡¡¢¢¢¡¥¢¦¥£¦¦¡¥¢¢¡‘‘¡¢¥¡¡¡¢¦¢¡¡¡¡¦¦¢¢¢¢¡¥¢¥¦¢¡¡¡¡¡¡¡¥¦¡¡¦«¥¡¡¡¡‘¡¢¢¡¡¡¡‘‘¡¡¡‘¡¡¡¢¦¡¡¡¡¡‘¥¦¥¢¡‘‘‘‘‘‘‘¢‘¡¢£¡‘¡‘‘‘‘¡¡¥¨ÚûÿÿÿÿþõÔ¡‘‘‘¡‘‘¢¥¡¡¤‘‘‘‘‘¡¡¡¡¥‘‘‘‘‘‘‘‘€€€€‘‘‘€~}‘‘‘‘‘‘€}~€~~‘‘‘}}}~}€}}}}}}}}}}~€}~‘‘€‘‘}~}~€}}}}~}}}}}}}}}}}}}vvv}}}vv}}}}}™æÿà}‘Ùÿß}}}}wvvvvvvvv}}vv}wvvvv|}}vvvvvvv}}}vvpvvvvvvpooovv}wvvoovvovovvoovvvovvoolllvvuvoluluvlouupolllllllllultolllloƒèüè�vlu�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿúx!!!!! !!! !!!!! !!! !! ! ! !   ! !!!  !  !  !!  !! !  ! !!   !  =qªõþþÿýÿýÿýÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿþÿàÓ Ó×þþþþþþýþþþþþþþþþÿÿÿþþÿþÿþÿþÿúÕ�}~‘}}}}‘‘€€~}~�}€}}~€‘‘€}‘€‘‘‘}‘‘‘‘‘‘€‘‘‘€‘‘‘‘‘¡‘~‘¡‘}‘¡‘‘‘~‘‘‘‘€‘‘¡‘¡‘‘¡‘‘¡‘¡‘¡‘¡¡‘¡¡‘¡¤¡¡¡‘‘¡¡‘¡¡¡‘¡¡¡¡¡£¢‘‘¢¡¡¡‘¡¡¡Úþÿÿÿÿÿꥢ¡‘¡¥¡¡¡¡¢‘¡¢¡¥¢¢¡¥¡¡¡¢¢¡¢¡¢¡‘¦¦¡¢¡‘¢¡¡¡¡¡¡¡¡¡¡¦¡‘¡¢¡¥¡¦¦¡¡¡¢¡¡¢¡¡¡¡¢¡¡¢¦¡¡¢¦¡¡¡¡¡‘¡¦¥‘‘¡¡¡¡£¥¡¡¡¡¡¡¡¡¤¡¡¡¡¡¡¡¡¢‘‘¡¡‘‘¡¢¡‘¢¡¡¡¡‘¡‘¡€¥ÖõÿÿÿÿÿøÚ¥‘¡‘¡‘‘‘¡¡¡¡¡¡‘‘‘‘‘‘‘‘‘¡‘‘¡‘€‘‘‘‘‘~‘‘¡€}‘€‘}‘‘‘‘‘}~‘‘}€€‘‘}~~}}€~}}‘~}}~}}}€}~€}}‘‘}}}}‘}|}}}‘}}~}}}}~}v}}}}}}}}}vv}}}}‘æÿà}Ùþà}}}}}}}v}vvv}}v}vvw}vvvv}vvvvvvvv}vvvvv}vov}vpvovvvwwvuvoovovvvpovpvvuvvvoouluvovvlooooouoouoolllulCouoolulllulluÇ÷ú߃ulvÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Cóÿÿÿÿÿ÷_!!! !! ! ! ! !!! ! !!! ! !  !   !  !    !  !   !! =w¥õþþþþþýýýþþýÿÿþÿþÿÿþÿþÿþÿþÿÿÿèÓ  ÓÓþüþþüþþþþþþþþþþþÿþþþþÿþÿþÿþÿúÖ�s~‘~}~}€€}}~€€€‘‘~€‘‘}}~}}}}‘‘‘‘}}}~‘‘€}~‘‘¡‘¡‘‘}‘¡¡‘‘¡¡‘‘€‘‘‘¡‘‘‘€‘‘¢¡¡¡‘‘‘‘€€‘¢¡¡‘‘‘‘‘¡¡‘¡¡¡¡¡‘¡¡¡‘‘¢¢¡‘¡¡‘‘¡¥¡¡¡¢¢¡Úþÿÿÿÿÿꥢ¡‘¡¡¡¢¥¡¡‘¦«¦¢¡¡¦¦¦¡‘‘¡¡¡¡¡¡¡¢¢¡¡‘‘¡¡¥¦¡¡¥£¦¥¡¡¡¡¡¥¢£¢¦¥¢¦¥£¡¡¡¢¡¢¢¡¡¡¥¦¢‘¡¡¡¡¢¢¡¢¢¢¢¡¡¡¡¢¢¢¡‘‘¡¡¡‘¡¡¡¡¥¦¡¡‘‘¢¥£¡¡¡¡‘¢¦¥¡‘‘‘¡¥¡¡¡¥Ôëÿÿÿÿÿûê‘‘¡‘‘‘¡‘¡¡¡‘‘‘€‘‘¡¡‘‘‘‘‘‘€‘‘¡¤‘‘‘‘‘‘‘‘¡¥‘‘‘‘‘~‘‘‘‘€‘‘‘€€‘‘€}‘‘‘}‘‘‘~‘‘‘‘¡‘¡‘}}‘‘€}}}}}}}}}}}}}}‘‘}}}}}}}}v}~}}}}}}vv}}}vèþßvÙÿÙ}}vv}}v}}}}v}}vvvvv}}}}wv}}vvvv}}}vopvwvpovvpuvvvvvvppvvovpvooooooovvolllouollovvllvuolllllllluvuoltuoolllltuolCllƒàüòÇuuCƒßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=9!!!Yóÿÿÿÿÿ÷_!! !!!!!!!!!! !!! !!!!!! ! ! !!!   !  !  !  !!  !!  !! !! ! !!=qªíÿþÿþÿþÿÿýþÿÿÿþÿÿÿþÿÿÿÿþÿÿÿþÿæÓ  Ó×þþþþþþþþþþþþþþþþÿÿþÿþþÿüÿþÿþúÖ��}~€€~}~}}}‘‘€~}~}}€‘~€~}~~~‘‘‘‘~~€~€‘€~‘‘€€¡‘‘€€‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡‘¡¡~�‘‘‘‘¡¥¡‘‘‘‘‘¡¡‘‘¡‘¡¥¡¡¡¡¡‘‘¡‘¢¡‘‘¡¡¡¡¡¡¡¥¡¢Ýþÿÿÿÿÿꥢ¡‘¡¡¡¢¢¡¡¡¥¦¥¡¡‘¡¡¡¡¡¢¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¦¡¡¢¡¡¦¡‘‘¡¡£¢¢¥¢¢¢¢¡¡¡¡¢¢¢¡¡¡£¦¢¡¡‘¡¡¡¡¡¡¥¦¢¡¢¦¢‘¡¢¢¡¡¡¡¡¡¡‘¡¡¡¡¡¥¡¡‘‘¡¡¢¡¡¢¡‘¡¢¡¡‘¡¡‘¡¥¥­ëÿÿÿÿÿûꬡ‘‘‘‘¡‘‘‘‘¡‘¡¡‘‘‘€‘¡‘‘‘¡‘€€‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘€‘‘~‘¡‘}€‘€}~€‘‘€}}€‘}~‘€€‘}€¡‘€‘€~}~}}‘‘}}}€}}}}}}}}}}€}}}}}}}}}}}}}}}wv}}w}}v�èþß}�Ùýàv}vw}}vw}}vv}}}v}v}wvv}}vv}}vvv}wvvvvw}vvopvvpvvvvvpvvvvopuovoovvoouvuoooopulooupoouvuoulloullloulpllluulllolullllluÇõüá˜vouÇñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!9!!!Bóÿÿÿÿÿ÷_!!!! !!!!!! !!! ! !!!!!  !!!!    !!! ! !      ! !  ! !!   !9q¥õþþþþþþýýÿþýÿÿÿÿþÿÿþÿþÿÿÿþÿÿÿèÓ    ××þüþþþþþþþþþþþþþþÿÿþþþþÿÿþÿþÿúÖ���~}~}}}}}}~‘~€‘‘}~~€‘‘~~}‘‘‘€~}‘‘~‘‘‘‘‘‘}~€~}‘¡~‘‘‘¡‘}‘‘‘¡‘~~~¡¦¡‘‘¡¡¥¡‘‘‘¡‘‘¡¡‘‘¡¡‘‘‘¡‘‘‘‘¡£¡‘‘¡¥¡‘‘¡¡¡‘‘¡¡¡¡¡¡¡¡¡¥ãþÿÿÿÿÿꦡ¡¥¢¦¦¦¢¡‘‘‘¡¡¡¥¡¡‘¥¦¥¦¦¥¡¡¡¡¡‘¡¥¦¦¡¡¡¦¦¦¢¢¡¡¢¡¡¥¡¡¡¡¡¡¡¦¢¡‘¡¡¡¥¢¡¥¡¡¥¦¡¡¡¡¡¢¡¡¡¥£¦¢‘‘¡‘‘¡¡¡‘¡¥¦¡¡¡¡¢¢‘‘¡¡¡¡¡‘¡¡¡¡¥¢¡‘‘‘‘‘¡¡¡‘‘§ãýÿÿÿÿýë§‘‘‘¡¡¡¡‘‘‘€‘€‘‘‘‘‘€}‘¤¡‘¡¡‘€‘‘‘‘‘‘‘€}€‘‘‘‘€€‘¡¡‘‘‘‘}‘‘‘}}}}‘~}‘€}}}€€€}}}‘‘}}}€}}}}€‘€~‘‘}}}}}}}~}}}v}~}~}€}}}}}v}}}}}}}€}}�ëþÙ}‘ßþÙvvv}€}v}wvv}}wvvv}}vpp}}}v}vvv}vvvvvwvpvwwvv}uoppupvvvvvvvvvvvvvvloloovuuvuoovulooolooolouvulullllluuolluluoooltltlouƒßú÷Ì{uCƒßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!==;=Zóÿÿÿÿÿ÷_!;!!!!9;!! !! ! ! !!  !! !  !    !!    !!  !    !     !! =}ªõþÿþÿþÿþÿýþÿÿÿýÿþÿÿþÿÿÿþÿÿÿÿþæÓ    Ó×þþýþþþþþþþþþþþþüÿÿÿÿþþþþÿýÿþúÖ��~~}~}}}~}}}}€‘~}~}}}€‘‘‘‘}}¡‘~€€‘‘‘‘‘¡‘~}€‘~‘}}‘‘€€‘¡‘‘€}‘¡‘~‘‘‘¥¡‘¡‘‘¡‘¡‘‘‘‘‘¡¡‘‘¡¡‘‘‘‘‘‘‘¡¢¡¡‘‘‘¡¡¡¥¢‘‘‘‘¡¡¡¡¡¡¡‘¢¢Ýþÿÿÿÿÿ륡¡¢¡¢¢¥¢‘¡¡¡¡¡¡¢¡¡¡¡¥¦¡¡¡¡¢¢‘¡¡¦¡¡¥¡¡¡¡¢¢¥¡¦¡‘¡¢¢¡¡¡¡¡¡¡¡¥¡¡¡¡¡¢¥¡¢¡¡¡¦‘‘¡¡¡¥¡¡¡¢¢¢¢¡¡‘¡¡¡¡¡¡¡¡¥¡¡‘¡¡¥‘‘¡¡¡‘¡‘¡¡‘¡¡¡¡¡‘‘‘¡‘‘¢­ÚúÿÿÿÿýíÔ‘‘‘¡‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘~‘¥‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€~€‘‘‘‘‘‘‘€}€‘�€~}}~€€~‘~}}}~~~}‘‘€}}€€}}}}}‘€‘~}}}}~}}}}}‘}}}}}}}}‘~}}}}}}}}}}€}v�æÿÙ}àþÙ}vw}}v}}}vv}}}}wvvvvvv}ww}vv}vvvvvvvvvvv}vwvpvvvovvvuvvvvvvvpvpoulovovopolulovoooulvuoulloooulllulloulllllultlllllullužñýè�vll�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@!!Zóÿÿÿÿÿ÷x!!!!!!!!!#!!! !! ! ! !!  ! ! !!   !    !!!!   !   !  !  !=qªíþþþþþþþýÿþýþÿÿÿÿþÿÿÿþÿÿÿþÿÿÿèÓÓ×þüþþþþþþþþþþþþþþÿÿüþþÿþÿþÿþÿúÖ��}}}}}~€‘~}}}}}€€}~‘‘‘‘}‘‘}~‘€}}~}‘‘‘‘‘‘}‘‘€€‘~~¡¡‘‘‘‘‘‘~~‘‘¡¡¡‘~¡‘€€}€‘¡¡¡‘‘‘‘‘‘¡¡¥¡¡¡¡‘‘‘¡¡‘¡‘‘¡‘‘‘¡¦¥¡¢¡¡¡¥¡¡¡¤‘‘¡¢àþÿÿÿÿÿæ¡¡¢¥¡¡‘¡‘¡¢¡‘¡¡¢¡¡¢¡¡¡¡‘¡¡¢¥¦¢¥¦¡‘‘¡¢¦¢¡¡¡¡¡¦¦¡¢¢¡¡¥£¢¡¡¡‘¡££¡¡¢¦¢¢¢¡‘¡¥¡‘¡¢¥£¡‘¡¡¡‘‘‘¡¡¡¥¡¡¡¡¡¡‘¡‘¡¢¥¡¡‘¢¥¡¡¡¥¡¢‘‘‘¡¡¥¢¥¡¡‘šÓöÿÿÿÿþöÚ¡‘‘¡¡‘¡¥‘‘‘‘‘¡¡¡‘‘¡‘‘¡¡‘‘¡‘€‘‘‘¡‘‘‘‘}€‘‘‘¡¡‘‘}€~}}€€‘‘‘‘‘‘‘€‘€~‘‘‘‘‘‘€}‘€€€}}}€‘}€‘€}}}~}}}}}€‘‘‘€}€‘‘‘}v~}}}}}}}}}}}v}}}}}}}v}™èýÙv�àþÙv}}}}vvw}wvvvv}vvvv}}vvvvvpvvvvvvvvvvvvvvvvvvvvvvvvvvovoovvvwvvoopovvvvpooovvvvuouooooovouvuoollvvuollCClllllllltllllCCl{Ùú÷΃uly×÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yòÿÿÿÿÿ÷_ !!!#!!!!!!!#!!!! !! ! !!!! !!  !  !!   !  !! !  !  ! !!! !   $q¥õÿþÿþÿþÿýÿýÿÿÿþÿþÿÿþÿÿÿþÿÿÿÿþæÓ   Ó×þþþþþþþþþþþþþþþüÿÿþÿþþþÿþþÿþûÖ�}}}}}€‘}}~~~}}}~‘‘}€€‘€~}‘~}€�}~‘~€‘‘‘‘€€~~~‘‘€€‘¡‘€‘‘€}‘¡‘‘‘¢¡‘€‘‘‘‘‘€¡¢‘‘‘‘‘¡‘‘¡¢¡¡¡‘¡¡‘‘‘¢‘¡‘‘¡¡‘€‘¢¢¡¡¡¡¡¡¡‘¡¡¡‘¡¦Ýþÿÿÿÿÿ楑¡¡¢¡¡‘¡¢¢‘¡¡¡¥¡¡¢¡‘¡¡¡¡¡¡¢¢¢¢¢¡¡‘¡¢¥¡¡¢¡¡¡¥£¥¢¡¢¢¢¡¢¥¡‘‘¡¢¦¥¡¥¡¡¢¥¡¡¡¡¡¢¡¡¡¢¡‘¡¥¡‘¡‘¡¥¢¡¤¡¡¢¢‘‘¡¡‘¡¢¢¡¡¢¡¡‘¢¢¡‘‘‘¡¡‘¡¡¦¡¥ÔëÿÿÿÿþøÚ¥¢‘‘¡¤‘¡‘¡‘‘‘¢‘‘¡‘‘¡‘¡‘‘¡‘‘‘‘€€‘‘¤¡‘‘~~‘‘¡¤‘‘¡‘~~~~~}‘‘‘€€‘‘~}}‘‘‘‘‘‘‘‘‘}~‘€‘€}}}€}~‘~}}€€}}}}}}‘‘‘}}‘€}}}}}}}}}}}}}}}}}wv}}ww‘èþ×}�àþ×v}}}vvv}w}}vvvv}vvv}}vvvvppvvv}}vvvvpvvvvvvvvvvvvvvovvooovvvvpuovovvvvuouloupuvvvvullloulvoltluvvvutllllttlltlClltltllClu›èýòÆutC˜èýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Cóÿÿÿÿÿ÷_! !!! !! !!!!!! !! !!!! ! ! !!  !  !  !  !  !   !  !!   ! !! !$p¥íþþþþþþþþþþýÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿèÓ    Ô×þþþþþþþþþþþþþþþþÿÿþþþÿþÿþþÿÿúÖ�Ž��~€‘}}}‘‘‘‘‘}‘‘‘€}~}‘‘€}~‘‘€~‘‘€€€}}}‘‘‘‘‘‘‘‘~‘‘~}~‘‘‘¡¢‘}€‘~~‘‘‘‘‘‘¢‘‘‘‘¡‘‘‘‘‘‘‘~‘‘¡‘‘¥¢‘¡¥¡¡¢¡‘‘¡‘¡¡¤¡¢‘‘‘¡‘‘¡¡¡Úþÿÿÿÿÿꥡ‘‘¡¢¡‘¡¦¡¡¡¥¡¢¡¡¡¡¢¦¦¢¡‘‘¡¡¡¡‘¥£¢¢¢‘¡¡¢¡¡¢¡¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¥£¢¡¡‘¡¡¡¡¡¡¡¡¡‘¡¢¢¡¡£¡¡¡¡¢¦¡¡¡¡¢¥¡¡¡¡¢‘‘‘‘‘‘¡¡‘¡¥¢¡¡¡‘¡¡¡‘¡¥Ôæýÿÿÿÿúꥥ¡‘‘¡¦¢¡‘‘¡‘‘‘¤‘€‘‘‘¤‘‘¡‘‘‘‘‘€‘‘‘¡¡‘‘‘‘‘‘‘‘}}‘‘‘‘‘€‘‘‘¡€‘‘‘€~}}€‘‘€€‘‘‘‘‘‘‘‘‘~€}}}}}€~€‘‘€}}€€}‘€}}}}}€}}‘}}}}}}}}}}}}}}}}‘}w}}}}˜èýÙ}�àý×vvwv}w|}}}}vvvv}}vvv|vvvwvovv}vvvpppvvwvvvvvvvovpvouvvovvuvulvpvvvvvoooooluooooulovloltooouoououlllluuluvloltlCtuollltltlly×÷úߘutxÊõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!=@=!Yóÿÿÿÿÿ÷_!!!!!!!! !!!!! ! !  !!!!  !    !  !  !!! !!!! ! !! ! !!!! 9qªõÿþÿþÿþÿþÿþÿÿÿþÿþÿÿþÿþÿÿþÿÿÿþæÓ  Ó×þþþþþþþþþþþþþþþþÿÿþÿþþþÿþÿþþúÖŽ}}‘~~}~}€‘‘‘‘€~‘‘€~}~€€€€}€€€~‘‘‘€~~~}~‘‘‘‘€~~‘‘‘~}€‘‘¡¡‘‘~~€~‘‘‘‘¡¡‘‘‘‘‘‘‘‘¡¡‘‘‘€‘‘‘~¡¥‘¡¡¥¡‘¡¡¡¡¡¡‘‘‘‘¡¡¡¡¡‘¡‘¡‘¡‘‘Úþÿÿÿÿÿꥑ¡¡‘¢¡‘¡¥¢¡¡¢¢¡‘¡¡¡¥¡¡¦¢‘‘¥¢¡¡¡¢¥¡¦¢¡‘¡‘¡¥¢‘¡¡¡¡¡¡¡¥¡¡¡¡¡¡¡¢¢¢¡¡¡‘¡¡‘¢¢‘¡¡¡¡¡¡¡¡¡¡¥¡¡¡¦¥¢¡‘¡¡¡¢¥¡‘¡‘¡¡¡¡‘¢¡‘¡¡¡¥¡¡‘¡¡¡§àûÿÿÿÿûꥑ¦¡‘‘‘‘¥¥¡¡‘‘‘¡‘¡‘‘‘‘‘‘‘¡‘‘€‘‘‘‘~‘¡‘‘‘‘€‘‘‘‘‘‘~~€‘‘~}€‘¡‘~~€‘‘‘~}}~‘‘€}€‘‘‘‘€‘‘€€‘}}}}}}€‘‘‘}}}‘}}€‘}}}}}}}}}}w}}}}}‘}}}‘}}}}}}}}‘èýבàýÓ|vvvv}}}v}}}|vv}vvvvw|vvvvvvvvvvvvvvvvvvpvvvvvpvvvvvlooovvoooovvvovvoououoooovvvulvlulovvlloouvulllovtlooulullllouuCClullClu˜çüóÊ{ulƒßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!@Cóÿÿÿÿÿ÷x9;!! ! !!! ! ! ! !! ! !       ! !  !  !   ! ! !!  ! !q¥íýÿþþþþþþþþýÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿèÓ!   Ó×þüþþþþþþþþþþþþþþÿþþþþÿþÿþþÿÿúÖŽ��‘~}}}}}}}}}}}}}}}}~}~~€~€~~~}}‘‘‘‘€‘€‘‘‘‘‘€€‘‘‘‘‘~‘‘‘‘‘}€€‘€‘‘‘¡¡¡‘~‘‘¡¡¡¡‘‘‘‘‘‘‘¡¢‘‘¡¥¡~‘¡‘‘¡¡¡‘‘‘¡¡‘‘‘‘‘¤¡¢¢¢¥£¥¡‘Úþÿÿÿÿÿæ¡‘¡¡¢¡¡‘‘¡¡‘¡¡¡¢¥¡¡¡‘‘¡¢¢‘‘¢¢¡¥¡¡¡‘¡¢¡¡¥£¡£¡¡¡¡¡¢¢‘¡¡¡¡¡¦¥¡‘¡¡¡¡¡¢¢¡‘¡¡¥¡¢¥¢¡¢¢¥¢¡¡¢¢‘¡¡¡¡¢¡‘¡¡¥¡¡¡¡¡¥¥¡¥¢¡‘¡¡¢¥¡‘¡¡¥¥Ôõÿÿÿÿý묑€‘¢¡~‘¢¡¡‘‘‘¡¡¡¤¡‘‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘}‘‘‘¡¤€€}}~€€‘‘€€¡‘~~}}}}‘€}}‘€}}}}}}}}}‘‘}}}‘}}}‘}}}}}}}}€}}}}w}}ww}}}w}}}}}˜ëýÓv�âý×}}}vv}}}vvvvv}}w}}}}}}wwv|vvvvvpvvwvvvvvvvvvpovupvvovvvvv}voooouooovvoopoouvuoollooolouuvvluuuolllllulllltlllullullllCltltulCluÇòýè›uCuÇñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Zóÿÿÿÿÿ÷_! !!!!!!!! ! !! ! !!!  ! !  ! ! !   !! ! !!! !!  !!!  !   !!=}ªõÿýÿþÿþÿþÿþÿÿÿþÿþÿÿþÿþÿþÿÿÿÿÿàÓ!    Ó×þþþþþþþþþþþþþþþþÿÿþÿþþþÿþþÿþûÖ��€€}}}}~}}}}}}}}~~}}‘~}}‘€}}€~~}~‘‘~€€‘‘‘‘‘‘€‘‘‘‘~‘‘‘‘‘‘‘~~‘‘}‘‘‘¡‘¡‘€€‘¢¢¥‘~‘‘¡‘‘‘¡‘‘‘¡¢‘‘‘‘¡‘¡‘¡¡¡‘¡‘‘¡‘€‘¡¡¢¢¢¢¢¢¡‘Ýþÿÿÿÿÿꥑ¡¥¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡‘‘¢¡‘¡¡¡¡¡¢¦¡‘‘‘¡¥¡¡¢¢¢¡¡¡¡¡¡¢¥‘‘¡¡¡¡¢£¡¡¡¢¡¡¡¢¥¡¡¡¡¢¡¡¢¤¡¡¡¢¡¥¡¡¤¡¡¡¡¡¥¤¡¡¡¡¡¡¤‘¡¡¡¢¡¥¡‘‘¢¡¢¡¡¡¡¥ÚýÿÿÿÿõØ‘‘‘~‘¢¡~‘¥¡‘€‘¡¥¥‘¡¡‘~‘¤¡¡¡‘‘‘¥‘‘‘‘‘‘‘¡‘~€‘‘¡‘€}€‘¥¡‘‘~€€‘‘‘¡‘‘~~}‘‘‘‘}‘‘‘‘€}}}}}}€‘‘€€‘‘}}}}}}}}€}}}€}}}}‘}}}}}}}}}}}}}v}}}}€}vvw}}}}}™èýÓwæýÓ}}vv}}}}}}vvvv}}vvww}}}}vvv}vvvvvv}}vvvvvovpovpov}vovvvvwvooovvllvvopouoovovoouulovulooouvolvootlulltllllluvulutlulCllClloltCCCoƒßü÷̃lC{ßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!9!!Bóÿÿÿÿÿ÷[!!!!!!#!!!! !! !! ! ! !! !  !!! ! !!  ! !! ! !  !   !!!9sªíýÿþþþþþþþþýÿÿÿÿÿþÿÿÿÿÿÿþÿþÿÿèÓ$!    Ó×þþþþþþþþþþþþþþþþÿþþþþÿþÿþþÿþúÖ �}}~€‘€}~‘€}}~~‘¡‘}‘‘€}‘‘‘~~‘‘~~‘‘~‘‘‘‘€}€}~‘€‘‘~}‘‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘¡¡¡‘‘‘‘‘¡‘�‘¡¡¡‘€‘‘‘‘‘‘¡¥¡‘‘¡¡¡‘‘¡‘‘‘‘Úþÿÿÿÿÿæ‘‘¡¦¢¡¡¡¢¢¡¡¡¡¥£¢¡‘‘¡¥¢‘¡¡¥¡¢¡¡‘¡¢¢¡¡¡¡¡¡¡‘‘¡¡¡¡¥¡¡¡¢¢¥¦¦¡‘¡¥¦¥¡¡¡¡¡¥¥¢¥¡¡¡¡¥¡¡¡¡¢¡‘‘¡‘‘¡¡‘¡¡¢¤¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘‘¡¡¡‘¬ëÿÿÿÿûꥡ¡¡¡‘‘¥‘‘¡¦‘‘‘¡‘¡‘€‘‘‘‘‘‘‘‘¡‘‘‘¡¡‘‘‘¡‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘€€}~‘‘€‘‘‘‘‘}‘‘‘‘}}}‘}‘‘~€€~}}}€}}‘}}‘‘‘€}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}vw}}w�èýÒ}�èýÓv}w}}v}vv}vvvv}wvvvvvvvvvv}}vvvwvvvvpvvvvpvvvvvvv}vovvvpvlvvvvvoov}vuovouvolvuvlolvllluovllultllvoollvuulllullllltlCtltllllClCtllu�ñýñÆulu�èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@!!Bóÿÿÿÿÿ÷_!!!!! !!! ! !!! !!!!!! !! ! !!!!   !    ! !     ! ! !  ! qªõÿýþÿþÿþÿþþÿÿÿýÿþÿÿÿþÿþÿÿÿÿÿÿàÔ      Ó×þþþþþþþþþþþþþþþþÿÿþÿþþþÿþÿþÿúÖ�~}}€‘‘‘}~‘€~}€€€¡‘~‘‘}}~‘‘}€¡‘€‘}‘‘‘‘€~€€~‘‘~‘‘‘€~~€‘¡‘‘‘‘¡¢‘‘‘€‘€€¡‘‘‘‘€~€‘¡¡¤‘¡¡‘‘‘‘¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¡¡¡¡‘‘¡¤¡‘‘‘‘‘‘‘Úþÿÿÿÿÿꤑ¡¡¥‘¡¦¢¥¥‘¡¡¡¦¥¡¡‘‘¡¡‘¡¡¡¢¥¡¡¡‘¦¢¡¡¡¡‘‘¡¡‘¡¢¡¡¡¡¡¡‘¡¦¦¥¡¡¡¡¤¦¢¥¡‘¡¦£¢¢¡‘¡¢¢‘¡¥¡¡¡‘‘¡¡‘‘¡‘‘‘¡¡¡¡‘¡¢¤¡¡‘¡‘‘¤¡‘‘‘¡¡¥ëÿÿÿý묡¥¡‘¡¡‘¡¡‘€¡¥‘~€¥‘€‘‘¡‘‘‘¡‘€‘‘‘¡‘‘‘‘‘‘¡¡‘‘‘‘‘¡‘‘‘€‘‘‘‘‘}€}€‘‘€~‘~‘‘}‘‘‘€~€}}}~}€}‘}}}‘}}}€‘}}€‘‘}‘‘}}}}}}}}}‘}}}}}}}}}}}}}}v}w}v}vw}}}™èýÇw™èüÇ}v}}w}}}v}vvvv}}vvvvvvpvvvv}vvvvwvvovovvpvv}vvv}vvvuvvouoovvvvvuvvvvuvovovuovvouuloulluvuooolltvluuCuvulullluultlllllotClCCCClllCCC{×÷üß›ulxÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_9! !!! !! !! ! !! !!! !!!  ! !!  !        !!  !  !  9s¥ëÿþÿþþþþþþþýÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿèÓ$   Ó×þþþþþþþþþþþþþþþþÿþþþþÿþÿþþþÿúÖŽŽ}}}}}~}}}}}}~}~€}}}}€}}~}}‘¡‘€€}}}~‘‘‘~~}‘‘‘~‘‘‘‘‘€‘‘‘€€€€‘‘~‘‘‘€‘¡¡‘‘¡‘¡‘¡‘‘¡‘‘‘€‘‘¡¢¡‘¡‘¡¢¢¡¡‘¡¡¡‘¡¡¡‘‘¡‘¡¡¡¡¡¡¢¢¡¡Úþÿÿÿÿÿꥡ¡¡‘‘¡¡¡¡¡¡¢¡¡¡¡¡¡‘¡¢¢¢¥¡¡¡¡‘¡¡‘¡¥¡¡¡¥¡‘¡¥¡¥¡¡¥¡¡¢¥¡‘¥¡¡¡‘¡¡¡¡¡¡¢‘¡‘¡¡¢¡¡¤¢‘¡¢¦¢¢¡¡¥¡¡‘¡¥¢¢¡¡¤¡¤‘‘¡¡¡¡¥¡‘¡¡¡¤¡¡¥¡ÚýÿÿøÚ¢‘‘‘‘¡¥¡‘‘¡¡‘‘‘¡‘‘¦¥¡¡¡‘‘€¡¢‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€‘‘‘‘€€‘‘‘‘€~€‘‘‘‘€~‘‘€}}€‘‘€‘‘‘€€‘‘€}�€}€‘‘€‘‘€‘‘‘}}‘‘}}}€}}}‘}}}}‘}}}}}}}‘‘}}w}}}}}}}}}}v�éý§}™æûÊ}vvv}v}wvvvwww}}v}vvwwvvv}vvv|vvw}vvvvvvvovvvlvvvovpovvvvvulovvvvlulpouvvllupllovuvoluvulltlllvulClluulllllllllllCtotllllttuulCCCCClt›èüòÇ{CC›áýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!9Zóÿÿÿÿÿ÷_!!!!!!! !!!! ! ! ! !     !! !!!!!! ! !  ! ! !! ! !  ! ! =q¥õþþþþÿþÿþÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿÿþÿæÓ!      Ó×þþþþþþþþþþþþþþþþÿþÿþþþþþÿþÿþûÓ�}}}}}}}}}}€}~€}}~}}}}�}}~}~‘‘‘‘~~~}€}~€€€}‘‘‘‘‘}‘‘‘‘‘‘‘~€}€‘‘‘‘~‘‘‘‘‘‘‘¡¡¡¡‘‘‘‘‘¡‘‘€‘¡¡¡¥¡‘‘¦¥¡‘¡¡¡¡‘‘¡¡¡¡‘¡¡‘¡¡‘‘¢¥¥¦Ýþÿÿÿÿÿ楢¢‘‘‘‘‘¡¢¡¢¥¡‘¡¡¡‘¡¡¥¢¢¢¡¡¡¡‘¡¡¡¡¢¢¡¥¢¡¡¡¡¢¥¡¡¢¡‘¡¥‘‘¡¡¡¥¡¡¡‘‘¡¡¡¡‘¡‘¡¡¡¡¡‘¡¡¡¡¥¥¡¡¡¡‘¡¡¡¥¡¥¡¡¦¡‘‘‘¡¢¢¡‘¡¤¡¡¢¡¡¡¡êþÿõ­¡‘¡‘‘‘¡¥¡‘‘‘¡‘‘¡¡‘¡¥¢¡¥¡‘‘¡¤‘‘‘¡€‘‘‘‘‘‘‘‘‘‘‘‘€~}‘‘€‘€‘‘‘€~€‘‘‘‘}~}€€‘‘}}‘‘‘‘€}‘‘‘�}‘€€‘€€‘‘‘‘‘‘‘}€€‘}}}}}‘‘}}}}}}}€}}v}}‘€}w}}w}}€wv}}}}˜èüÓ}™èüžvv}vw}vvvvv}vvvw}}}vvvvvvvvvvv|vv}vvvvvvvpvvuopvvvvuovvovupoovvvlvooooouvulovouvoolvulvvllllllolllCloolllltlCtllCllullCllvllltCCCCCCCCxÌ÷üç›uCuÊòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9==!Cóÿÿÿÿÿ÷_!#!!!! ! !!!!!! !! !!!      !!!! !   !  ! !!  !  !!! 7p¥õþÿýÿýÿþþþþýÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿæÓ   Ô×þþþþþþþþþþþþþþþþÿÿþþÿþÿþÿþþÿúÖ �}}}}}}}}~‘~}~€‘€}}~‘‘‘‘‘‘‘~}}}‘‘‘‘‘‘€‘‘}}‘‘‘‘}~‘¡‘‘‘‘~}‘‘‘¡‘‘‘‘‘¢‘‘‘€~€‘‘‘‘‘‘‘‘¡‘¡‘~‘‘‘¡‘€‘¡‘‘‘‘‘¡¡‘¡¡¡‘¡¡¡¡¡¡¡‘‘¡¡¡¡Úþÿÿÿÿÿꥡ¡¡¢¦¡‘‘¡¡¡¡‘¡¡¡¢¥¢¡¡¡¡¢‘¡‘‘¢¡¡¡¡¢¡‘¡¡¢¢¡‘¡¡¢¢¡¡¥¡¡‘¡¢¢¥£¡¡¤¥¡¡¢¥¡¡¡¡¥¥¢¢¡¡¤¢¡‘¡¡¡‘¡¡¡¤¢¥¡¡¡‘¡¢¡‘¡¡‘¤¡‘¡¢¡‘‘¡¥¡¡‘ÓýÿÔ‘‘¡¡¢‘~‘¡¡¡¡‘‘‘‘¡¡}€‘‘‘‘‘€¡‘‘¡‘‘‘‘‘¡¡¡‘‘‘‘‘‘‘¡‘‘‘¡‘‘‘€€‘‘‘‘‘‘‘}‘‘‘‘‘‘‘}‘‘}€‘‘‘}}‘}}€‘€€}}}}}}}}}}}}}}}€}}€‘}v}}}}}}}w}}}}}}}‘w}}v}}v}}}ww™ëý¬v�èûÒ}}}}}vv}vv}vvv}vvvvvwvvvvwvv}}vvvvvvvovwvvvvvovvvvupvwvovvvvuvvououovvovvvovvuouuullloulluvuuuuuoolltooltuluulltlCtllClCtllCCCoutCCCClCl”ßý÷̃tC”ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Yóÿÿÿÿÿ÷_!!!!!!#!! !!!! ! !  !!! !!! !! ! !!   !!   ! !  !  !!  !! qªíÿþÿýÿýþÿþÿþÿÿþÿþÿÿÿÿþÿÿÿÿþÿÿæÓ  Ó×þþþþþþþþþþþþþþþþÿÿþþþþþþþÿþÿúÖ¢�}}}}‘~}}}}‘€}~~}}}}¡‘‘‘‘€€~}~}}‘‘€‘��‘‘€}‘‘‘€}€‘¡‘¡‘~€¡‘~‘¥‘}‘¡¢¡¡‘‘‘}‘€‘‘‘‘‘€€‘‘‘‘‘‘¡‘‘~‘‘‘‘¡‘€‘¡¡¡¤¡‘¡¡¡¡‘‘¡¡‘¡¡¡¡¡Úþÿÿÿÿÿꥑ‘¡¡¦¥¡‘¡‘‘‘‘¡¡¡¢¥¦¡¡‘¡¥¡¡¡¡¢¥‘¡‘¡¥¡‘‘¢¥¡‘‘¡¢¦¡‘¡¢‘‘¡¢¥¡¤¢¡¡¦¢¡¢¦¢¥‘‘¡¦¥¡¡‘¡¤¡¡‘¡¡¡‘¡¡¡¡¢¡‘¡‘‘¢¢¡¤‘‘¡‘¡¤¡¡‘‘¡¢¡¡¡¡úÿꙑ‘¡¡‘€‘¡‘¤¡¥‘‘‘‘‘€‘‘‘~~~€‘¡‘¡‘€‘¤¡‘¤¡‘‘‘‘‘‘‘¡‘€€‘‘‘‘‘‘‘‘‘‘‘‘~}‘‘‘‘‘¡‘‘‘€}€‘‘€€}}}‘‘‘}}}}}‘}w}}}}�}‘}}}}‘€|}}}}~€}}wv}}}‘}}v}}}}}}}}}w}v˜õü§w�èúž}vvv}wwvvvvv}wvvvvvw|vvv}wvvv}wvvovvvovwwwvvwwvvupovvvvouvvvvlvoooluvolvvvvuvoopvvllltlulluvulvvuullllullouluotltlltllCCCltCCClultCCllCCCuÇõþñÇxClÆñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ@!!!!Zóÿÿÿÿÿ÷_!!!! !!!! !! !! !!!!!! ! ! !!! !   !! !!  !  !  ! !      pªõþþþýÿýÿþþþþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿèÓ!!     Ó×þþþþþþþþþþþþþþþþÿþþþÿþÿþÿþþþúÕ��}�~}}}~}~}}~}~~}€‘‘}}€~~€}~}}‘‘~€}€‘‘‘‘‘‘}‘‘€‘‘€‘‘}‘¡€}‘¡‘€‘¢‘}‘€~‘‘¡‘‘€‘‘¡¡¡‘‘‘¡‘¡¡‘‘¡‘‘‘¡¢‘‘¡¢¡¡‘‘‘‘¡¤¡‘‘‘¡¡‘‘‘‘‘Úþÿÿÿÿÿê¡‘¡¡¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘‘¡¡¥¢‘¡¡¡‘¢¢¡¡¢¡¡¢¡¡¦¥‘‘¢¢¡¡¡¡‘¡‘¢¢¢‘‘¡‘‘¡¡¡¥¢‘‘¡¡¡¥¡¡¡¡¡¡¤¥¢¡¡¥¡‘‘‘‘¥¡¥¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘‘‘ëÿý¬¡‘¡¥¡‘‘¡‘¡‘¡¡‘‘¡¡‘‘‘¡‘‘‘‘‘‘‘¥€€‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘€‘‘‘}‘‘}}‘‘‘‘€~€€€€‘€€}‘€}~‘€}}}}‘€}€}}€}�}�€}}€}}‘}}}}}}}}}}}}‘v}}}}}}}}}vv}}}}}w�õúžv˜èû§}}}}}}}vv}v}v}vvvvv}wwvvvvpv}vvvvvvwvpv}vvvlvwvvvvvvuvuvvvvovovvvoovwuluuoloouolooouuvvoluollloolultolllulllllllluulCCtutllllCCCllllCZlCCCCƒßüüß”tC{ßúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!!!!! !!!!!!!#! !!!! !  ! !!! ! !!!  ! ! !!    !!  !!qªõÿþÿþÿýþÿþÿþÿÿþÿÿÿÿÿÿÿÿþÿþÿÿÿàÓÓ×þþþþþþþþþþþþþþþþÿÿþþþþþþÿþÿÿúÕŽ�}}‘~}}}}€~}€~}}€~}~€}€~}€€~}}~~}€€}€‘~‘‘‘‘‘€‘‘}~}€‘€}‘¡~~‘¡‘‘‘‘‘‘‘~€~‘¡‘‘‘€‘¡¢‘‘‘‘¡¡¡‘‘¡¢¡‘¡¡¡¡‘¡¤¡¡¡‘¡‘‘¢¡‘‘‘‘¡¡‘‘‘‘Úþÿÿÿÿÿꥑ‘¡¢¢‘‘¡‘¡¢¡¡¤‘‘¡¡‘‘¡¡¡‘‘‘¢¥¡‘¡¡¥¡‘¡¢¥¡¡¢¥¥¡¡¡¥¡‘‘¢¦¡‘‘¡‘‘¡¢¥¡¤‘‘‘‘¡¡¢¡‘‘¥¢¡¡¥¡¡¤¢¡¡¦¥¡¡¡¡‘¡‘¡¡¡¡¡¡¤¡‘¡¡‘‘¡‘‘‘‘‘‘¡Ôýÿ楑¡¢¥‘‘‘‘‘‘‘‘‘‘¥¡‘‘‘‘€‘¡‘‘¡‘€€‘‘‘‘‘‘‘‘€‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘€}‘‘}‘‘€€}‘‘€}€‘}€‘‘}}‘€€}€}‘€}}}}‘}}‘}‘€}}‘‘}}}}}}}}}}}}v}}}}}w}}vw}}}}}}™ñûžv˜èúž}}}}vv}vwwvv}}w}vvvw}wvvvvvv}vvw}}vvvvv}wvuvpvvvvvvoouvvvvvuoovuvvvvvvloolllovvlloooouvullulltluolooutltllCCClltllltCllulCCltCCCClttCCCCtCCCuÆñÿ÷Ìzll›èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!! !;!!!!!!!!!! !!! !!   !! ! !  !! !! !     !!!!!=p¥íþþþýÿýÿþþþþÿÿÿÿþÿþÿþÿÿÿÿÿþÿÿèÓ!     Ó×þþþþþþþþþþþþþþþþÿþþþÿþÿþÿþþÿúÖŸ�}}}}}€€€€€‘~}}~‘€}}‘‘€€€‘‘}‘‘‘‘‘€€‘€}}‘‘‘‘‘~}}‘‘‘‘~€‘¡‘‘‘}‘~~‘‘‘‘‘‘€‘¡¡‘¡‘~‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¢‘¡‘‘‘¡‘¡‘¡‘‘‘¡¡‘‘‘‘¡¡‘¡‘‘Úþÿÿÿÿÿæ‘¡¡¥¡¡¡¡¡‘‘¤¡¡¡‘¥¥¢‘¡¥¥¡¡¡¡¥£¡¡¥¢¢¥¡‘¡¦¡‘¡¡¡‘‘‘¡¡¢¡¤¦¥¡‘¡¡‘‘¥¡‘¡‘¡¡¡¥¢¡¡¡‘¡¡¡‘¡¡¡¥‘‘‘¡¡‘¡¡¡‘‘¡¡¡¢¡¡¡¡‘¡¡¡‘‘¡¡¡¤‘‘¡‘¥õÿý§‘‘¡‘‘¡‘‘¡‘‘‘‘‘¡‘‘‘¡¥‘‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘€‘‘‘‘‘‘€‘‘‘‘‘‘‘‘€‘‘}}}‘‘}~‘‘‘‘‘}‘€}€~‘‘}}€}}}‘‘�}}}}}}}}}‘}}}}€}}}}}}}v}}}}}}}}}v}}v}}}˜íûž}èûžvwvwv}}}}wvv}vvvvvvvvvvvvwvvvwvvvvvovovvvvvvvovvvvvoovvuvuvovuooovuoooovvvluvouvuuuollvoluouvvollltllllllltluulllllClllllCltlCltlCCCClltCltllCƒßúþè�ut{Ì÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@!!Yóÿÿÿÿÿ÷_9!! !!!! #! !!! !#! !  ! !! ! ! !   ! !!!  !  9sªõÿþÿþÿýÿýÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ7    Ó×þþþþþþþþþþþþþþþþÿÿþþþþþþþþÿþúÖ �}}}}}}‘‘}€‘~}}}‘€~}‘€~}}‘‘‘‘‘‘‘}€~~}~}}€‘‘¡‘‘~}‘~‘‘€‘‘‘‘‘~~}}€‘‘‘‘‘‘‘‘¡¡‘‘‘}€~‘¡‘€€‘‘¡‘‘‘¡¡‘‘‘¡‘¡‘‘‘‘‘¡¡¡¡‘‘‘‘‘‘¡¡‘¡¡Úþÿÿÿÿÿꙡ¢¡‘¡‘¡¥‘‘¡¡¡‘¡¡¦¢¡¡£¥¡‘¡¢¦¢‘¢¢£¥¡‘¡‘¡¥¢¡‘¡‘‘¡‘¡¥¡¡¡¢¥¡‘¡¡‘¡¡¡‘¡¥‘¡¡¥¡¡¥¡‘‘‘‘‘¢¢¡‘‘‘¡‘‘¡¢¤¡‘¡¡¡¡¥¢¥¡‘‘¡¡‘‘‘‘¡¡‘‘¡‘¡Úþÿà‘‘‘‘‘¡‘‘‘‘¡¡€‘¡¡‘‘¢¥‘‘‘¤‘‘‘‘‘¡¤‘‘‘‘‘‘¡‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘}€‘‘€}‘‘~}}}‘€}}‘€‘‘€‘}‘‘}€€€}€~}}‘‘‘€}}}}}}}}}}}}}}}}}}�‘€}}vv}}}}}}}}}vw}}}™õúžv˜èúžwvvv}}}}}w}}}vv}vwvvpvwvw}vvvwvvvvoovvuvuvvvuvvovvvoovvovvvvupoovvvvulvuvvlvvoovvvlouolulluvuuulullullltlloouvtlCCCClClttlCllClttlCCCCltlCltCCAuÇñÿüß”CC˜áýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!@=!Bóÿÿÿÿÿúx!!!!!#!!!!! ! !!!!!! ! !  !! !   !   !  ! !      !=sªíþÿþþýÿýÿýÿýÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿèÓ!  ÓÓÿüþþþþþþþþþþþþþþÿþþþÿþÿþÿþÿþúÖ��}}~~}}~€}}}}}}‘‘~}}~}}€~}‘€}}‘‘€~‘‘€‘‘€‘}€}‘‘‘€~~¡‘‘¡‘}‘‘‘‘‘~‘‘‘€€‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘�‘‘‘¡‘‘‘¡‘€‘‘‘¡‘‘‘¡¡‘‘‘‘‘‘‘‘¡¡¡¡‘‘¡¢Úþÿÿÿÿÿꥢ‘‘¡¥¡¡‘‘¡¡‘¢¡¡¡¡‘‘‘¢¡¡¡¥¡¡¥¡¡‘‘‘¡¡¡‘‘¡¥¢‘¡‘¡¦¥¡¡‘¡‘¡¢¢¡‘‘‘¥¡¡¡¢¢‘‘¡¡‘‘¡¢¢¡¢¡¡¥¡¡¡¡¡¡¡¥¡¥¡‘¡¥¡‘‘‘‘¡¡‘‘¡‘¡¡‘¡¤¢‘‘‘¢‘¥ûÿû§¡¡‘‘‘‘¤¡‘¤‘‘‘‘‘€€¡‘‘‘‘‘‘‘‘‘‘€‘‘‘¡‘€‘¤‘‘‘€‘‘¤¡‘‘}‘‘‘‘‘€‘‘€‘‘‘‘‘‘‘€~}‘‘‘‘‘}}‘‘‘}}}‘‘}}‘€€}}}}}}}}}‘}€}}}}}}}}}}}}}}}}}w}}}}}vv}v}}v}}}vw˜õúž}˜ë÷ž}}}}wwwwvw}wvwwvvwvvvvwwvvvvvvvov}vvvvvovvvvvvvuvvvovvvlovouvvvvoooovovooolu}ullulluvlolluoolllllullluullltluvlltllltlltlllCZCCllCltlCCllCCCCCCltƒÌüÿòÇzCxÇóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!!Y÷ÿÿÿÿÿ÷_!!!! !!!! !!!! !!!  ! !!  !!! !!  !  !   !qªõþÿþÿþÿýþþþÿÿÿþÿÿÿÿþÿþÿÿÿÿÿþÿæÓ  Ó×þþþþþþþþþþþþþÿþþÿÿþþþþþþþÿþÿúÖ�‘}}}}~}}~€~}}~‘€€}€}}}}‘€}~€€}‘‘~€‘‘€‘‘}~}€~}‘‘‘}¡¢‘‘€}€‘‘~‘}‘‘‘‘‘‘‘‘‘‘¡¡¡‘‘¡‘¢¡€‘¡‘‘‘‘‘¡¡‘‘‘‘‘€‘‘‘‘¡¡‘‘‘‘¡‘¡¢¥‘‘‘‘¡¥Ýþÿÿÿÿÿ릡¡¡¡¢¥¡‘¡¤¡¡‘¡¡‘‘‘‘‘¢¢¡¡¢‘¡¡¡¢¡‘‘‘¡¥‘‘‘¡¦¡¡‘¡¦¢¡¡¡‘¡¡¡¡¡¡¡¡¡¥‘‘¡¥¡‘‘¡‘‘¡¡¥¢¥¢¡¡¡¥¦¥¢¥¡¡¡¢¥¡¡¢¥‘‘‘‘¡¡‘‘¡¤‘¡¡¡¡¡¡‘‘¡¡‘ÚÿÿÚ¤‘¡‘‘¡¡¥¡‘‘€‘¡‘‘‘‘‘~‘‘‘‘‘‘¡‘}€‘¤‘‘€¡‘‘‘€‘‘¡‘¤‘‘€}}‘‘‘‘‘€€‘¥‘‘‘‘€‘}€‘‘‘‘}~€€€}‘‘‘}‘‘}}€}}}}}}}}‘‘‘}}}}}}w}}}}}w}}}}v}}vvv}v}}vv}}}v}v™õúž}™õ÷ž}}}wvv}}vw}}}wvvwvvvvvvvwvvppovvvvwvvvvvvvpvvuvvvvvovvooouvovvvuoluoouvoullvvvllolllvulooootllllulllovptlluoooultlltltClltlllCCltClCuClZCtCCCltlCCu›èÿÿè›tlƒßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=9!Cóÿÿÿÿÿ÷_ !!! !!!!!!!#! ! ! ! ! !! !! !! ! !!!!! ! !  !   !  qªíÿýÿþþýÿþÿýýÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿèÓ   Ó×ÿüþþþþþþþþþþþþþþÿÿþþÿþÿþÿüþÿúÖ��}}}~}}}}€‘}}~€}}}‘€~}}}~‘‘€}~€}~~‘‘}}}~‘‘‘‘‘‘~‘‘}‘‘‘‘‘€€‘€}‘}~‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘¡¥‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘¡¡‘¡‘‘¡¡¡‘‘¡¢‘¡‘¡‘¡Úþÿÿÿÿÿ楑‘‘‘¡‘‘¡¥¡‘¡¡¤¢¡¡¡‘¡¥¡‘‘¡¡‘‘¢¥¡¡‘‘¡¢¡¡¡‘‘¡¤¡¡¥¡‘‘¡¡¡‘‘¡¥¡¡¡¡¢¡¡¢¡¡¥¡¢¡¡¡¡¡‘¡¥¡‘¡¡‘¡¡¡¡¡¡¡¡‘‘¤¡‘‘¡‘¡‘‘‘¤¡¡¤¡¡‘‘‘‘¥¡‘‘§ûÿû¥¡‘‘‘‘‘¡¡€‘‘¤‘‘‘‘‘‘‘‘‘€‘¤¤¡‘‘‘‘‘‘€‘‘‘‘‘€‘‘‘€‘‘€‘‘‘‘‘‘€‘‘‘‘‘}‘‘‘‘‘‘}€‘‘‘‘}}}}}}‘}}}}}}}}}}€€}}}}}}}}}}}}‘}}}}}}}‘}}}w}}}}v}}}}}w}}w}wv™õúš|˜èú™w}}ww}}wvv}vvvvwvwwvvwvvv}vvvvvvvvvwvvvovvvvvopvuvuvuuvvvvvouvvlovvuovvvvlluvulvvuluoouuuoloolltlulluulllllllllllltllllCCtlllCltlCClZlCClllCCClCCCCCƒÌúÿúß”ltÆòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!;!!Yóÿÿÿÿÿ÷_!!!#!! !!!! !!! ! ! ! ! ! ! !! !! !!   ! ! ! !   !!pªõþÿýÿþÿþÿýÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿæÓ  ÓÓþþþþþþþþþþþþþþþþÿÿþþþþþþÿþÿþúÕ�}}}}}€}~}~€}€}~}}}€‘€}}}}€‘‘‘}}}‘‘€€€}}€‘~‘‘‘‘}‘‘‘}‘‘‘€‘€~€}‘€~‘‘‘‘‘‘‘€‘‘}}}‘¡¡‘¡¡€‘‘¡‘‘‘‘‘‘‘¡‘‘¡¡¡¡¤¡‘¡¥¥¡‘€‘¡¥¡¡¡‘‘‘Úþÿÿÿÿÿꙡ¡‘‘‘‘‘¡¢¡‘¡¥¡¡¡¤¢¡‘¡¡¡‘¢¢‘‘¡¢¡¡‘¡¢¦¥‘‘¡‘‘¢¡¢¦‘‘‘¡¥¡‘¡¢¡¡¥¡¡¡¡¤¡¡¡¢¢¥¡¡¥¢‘‘¡¢¡¡‘‘‘‘‘‘‘¡¡¡‘¡¡¡¡‘¡‘¡‘¡¡¡¡¥¡¥‘‘‘‘‘¡¡¡‘‘‘ëÿÿÚ™¡‘‘‘‘‘‘‘‘¥¥‘‘‘‘¡¤‘¡‘€‘¥¡‘‘‘‘‘‘‘‘‘€‘‘¡‘‘‘‘}€€‘‘‘‘‘¡‘‘}‘‘‘‘‘‘€}}‘‘‘‘}‘€‘‘}}‘}}}‘}}}}}}}}}}}}}}}}}}}}}}}}}}}€}}w}}}‘}}}}}}}v}}}}ww}}vv}}˜õúžw�ô÷™w}w}}}}vvwvvvwv}wv}wvvvvv}vvvvvwvvvvwvvopvvvpovvvovvvvwvvvooovvlvvvvovvvvlloollvvvolvvovuuulultlllluuullltlllCClulltlCtlCllttCCCCClClCClClZCZCCCCCllCZ›çÿÿ÷Ì{CƒßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!@óÿÿÿÿÿ÷_!!!;!!! !!!!! ! !! ! !!! !! ! ! !  !       ! !  !$p¥íÿýÿýÿþþþýÿýÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿèÓ  Ó×ÿþþþþþþþþþþÿþþþÿÿþþþÿþÿþþþþÿúÖ�Ž}}}}}}}}€‘€~}}}}~~}€}}}‘~}~€€}}‘‘}}‘‘‘‘‘‘‘‘}~‘}‘~€‘}‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘€‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘¡‘‘¡¥‘‘‘‘‘‘‘¡¡‘‘‘‘¡¡‘¡‘‘¡¡Úþÿÿÿÿÿ楢¡‘¡¡‘‘¡¡¡‘¡¥¡‘¡¡¡‘‘¡‘¡¡¤¢‘‘¡‘‘¡¡¡¡¡‘¡¡¥¡‘¡¡¡¥¡‘¡¡¡¡¡¡‘¡‘¢¢¡¡¡¡‘‘¡¡¡¡¡‘¡¢‘‘¡¢¡‘¡¡¡¡¡‘¡¡‘‘‘¡¡¡‘¡‘¡¤‘‘¤¡¡‘¡¡‘‘‘¤‘‘‘¡¡¤‘§ûÿõ¥‘‘‘¤‘‘‘‘‘¦¡€‘‘‘¥¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘€€‘‘‘€‘‘‘‘‘‘€‘‘€}‘‘€}€}}‘}}€‘}}‘€}‘}}‘€}‘}�}}}}}}}}}}}}}}}}}w}}}‘}}}}}}wv}}}}}w}vv}}™õûž}˜èúš}www}vwwvvvwwvvvvvv}vv}}wvvovvvvvvvpvvvvvwvvuvvwvovuvuvovuvvovvuouvoluoouuouooluvtluvollolllluouuouolllttllltlttltlllllCltltlCtCltlCCCCZlllllCCCCCZCCCA{ÌúÿÿñÆu]ÊóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!99Y÷ÿÿÿÿÿ÷_!!!!! !!! ! !#! !! ! ! !   ! ! ! ! ! qªõþÿýÿýÿþÿþÿýÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿæÓ ÓÓþþþþþþþþþþþþþþþþÿþþþþþþÿþþÿþúÖ�}~~‘}}}}}}‘‘}~}}}}}}~~}‘}‘€~}}}‘~}€‘‘‘‘‘‘‘‘}}‘‘}}~‘~}‘‘‘‘~‘¡‘‘‘‘}~€¡¡¡‘‘‘¡‘‘‘‘‘‘~‘€€‘‘‘‘‘‘¡¤¡¡¡‘€‘‘‘‘‘‘‘‘¡¡‘‘‘¡¤¡‘¡¥Ýþÿÿÿÿÿ榥¤¡‘¡¡‘¡¡‘‘‘¡¤¡¡‘‘€‘‘¡¥¡‘¡‘¡‘‘‘‘‘‘¢¡‘¡¡¢¢‘‘¢¡‘‘‘¢¡‘¡¥‘‘‘‘¡¥¡¥¡¥‘‘‘‘‘‘‘‘‘¡¡‘¡¡‘¡¤‘¡¡¡¡‘‘‘‘‘¡¤¡¡‘¡¡¤¡‘¡¤¡¡‘‘‘‘‘‘¤‘‘‘¡¥¡‘ëÿÿÚ‘‘‘¡¡‘‘‘¡‘‘€‘‘¤¡¡‘‘‘‘‘€‘‘€‘‘‘‘‘€‘‘€‘‘‘‘¡‘€‘‘‘€‘€‘‘¤‘‘€€‘‘€‘‘€}}}}~}}‘}}}}}}€€}}‘€‘}}€‘�}}‘‘}‘‘€‘€}}}}€}w}}}w‘‘}vvw}}www}}}v}}}}}}}šõûž}˜ô÷œ}wvwvvvvvvvw}vvvpvwv}}}}wvvvvwwwvvpuvvvvwwvvpvvvvooovvvoovvvvvvvoovuoolovollluovullvvuuultlolououuoulouootuullltllCltltllClltltlCltuCClCCltlCCCCCCCCCCCCu›èÿÿýá�xƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!9Cóÿÿÿÿÿ÷_!!!!!!#!! !!!! !! !!  !!! !     !    ! !  !!=q¥íÿýÿýÿþþýÿýÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿèÓ  Ô×ÿüþþþþþþþþþþþþþþÿþþÿþþÿþþþÿýúÖ��}}}‘}}}}~~}}}‘~}‘‘}}~}‘‘€‘~}}~€‘‘~~‘‘€~}€€~}}€‘}~‘‘‘‘‘‘€~€}‘‘‘€€‘‘€‘‘‘‘‘‘‘‘€‘‘‘‘€‘‘‘‘¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘¤¡‘‘‘¡Úþÿÿÿÿÿ楡¡¡¡¥¡‘‘¡¡¡¡¡‘¡¡¡¥¡¡‘‘¢¢‘‘¡¥¡‘¡¡¡¡¤¡¡¢‘¡‘€¡¦¤‘¡‘‘¢¡¡¡‘‘¡¡¡¡¡¡¢¢¡¡¡¡‘‘¡¡¡¤¡‘¢¡¡¤¡‘¡¤¡¥¡¡¡‘‘¤¡‘‘¡¡¤¡¡¡‘¡¡¤¡‘¤¡‘¡‘‘‘‘‘¤¡¡Óýÿõ¥‘¡¤‘‘‘¤‘‘‘‘‘¡¤‘‘‘‘‘¤‘€‘‘‘€‘‘‘‘‘‘‘€‘‘‘€‘‘‘‘‘‘€‘}€‘‘‘€€€€‘‘€€‘‘€}}‘~‘€‘}€}}}}}}‘€€}}}}}}}‘‘}}}}}}}}}}}}}}}}}}}}}}}}}}}}}wv}}}}w˜õú™}˜ô÷™}}w}vwwvvvvv}}vvvvvvwvvvvvvvvvvvvvvpvvvwvvvvvovvvvvovvvvuvvuvllvlvvlooouvuuvuovlluuolloolooultlloouollllllloCCuulllCltlltCCulllCllCtlCCCCZlCCltCCZlCCCCCCC{ÌúÿÿúáÇçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@Yóÿÿÿÿÿ÷_!!!#!!!! !;! ! ! ! ! ! !  !   !!  !  !  !! !=qªõþÿýÿýÿþÿþÿýÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿæÓ! ÓÓÿþþþþþþþÿþþþÿþþþÿÿþþþþþÿþþþÿúÖ �}}}}}}}}}}}}}~€‘‘‘~}‘€€€~}}}}~‘¡‘‘‘‘‘~€}}}}}~~}~}‘‘‘‘€€~‘‘}}‘‘~€‘‘€‘¡‘}€~}€‘‘‘‘‘‘‘‘‘¡¤¡¡¡‘‘‘€‘‘‘¡¡¡¡¡‘¡¡¡¤¡‘‘‘‘¡¡‘‘‘¡Ýþÿÿÿÿÿꥡ¡‘¡¢¡‘¡‘¡¤¡‘‘‘¡¢¡¢¢‘‘¡¡‘¡¥¢¡¡¤¡¡¥¡¢¡‘¡¡‘‘¡¥¥¡¡‘‘¤‘¡¡¡¢¥¢¢¡‘‘¡¡¡¡‘¡‘‘¡‘¡¡¥¡¤¡¡¡‘‘‘¡¥¡¥¤‘‘‘¡‘‘¡‘¡¥¡¡¥¥¡¡¡¥¥¡¤¤‘‘‘‘‘‘‘¡¥¡õÿÿÓ‘¡¤‘‘‘¡‘‘‘¡¡‘‘‘‘€¡‘‘‘‘€‘‘¤‘¡¤‘‘‘‘‘€‘€‘‘}}€‘€€‘‘}}}}}}‘‘€~}‘‘¡‘}}}}‘‘‘}}}€}}}}€€‘}}}}}}}}}w}}}}}v€‘}}vwwvw}}‘}}}}}}w}}}}˜õú™p˜õ÷™ww}}}vvvvvvvv}}}vvvwvvvvvvvvwvvvwvvvwwvvoovvvulvwvovwvooouoluooluuluooovvovvululuvtlouuloullluloooulCltlllllluullltCllotCCllttttCClZClCClCCCCZlllCCClCtCCCC›çÿÿÿüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ@9!!!Bóÿÿÿÿÿ÷_!!!!!!!!! !!!!! ! ! !!!! ! ! !! !  ! !   ! ! !!!!  }ªíÿýÿýÿýÿþýÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ  Ó×þþþþþþþþþþþþþþþþÿþþþþÿþþþþÿüúÖ��}}}}}~}}}‘}}}}~}}}€}}}‘€€€‘‘€~‘‘}}€‘‘}~€‘‘‘}}‘}‘¡‘‘‘}‘‘‘}‘‘‘‘‘‘‘€‘‘‘€‘‘}‘‘‘¡€~‘‘‘€‘¡‘‘‘¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡¡‘‘¡‘àþÿÿÿÿÿ椑‘‘¡¤¡¡‘‘¡¡¡¡¡‘‘¡¡¥¡‘¡¡¡‘‘¡£¡¡‘‘¢¢‘¡‘‘¡¥‘‘¡¡¡¡¡‘‘¢¡¡¡‘¡¡‘¡‘‘‘‘‘¡¤¡¤¡¡¡¤¡¡¡‘¡¡‘‘¡‘‘‘¡¡¡¡¡‘¤¡¡¡‘‘‘¡¡‘‘¡‘‘‘¡¡‘‘‘¡‘‘‘‘‘‘‘¢‘Óþÿõ‘‘¡‘‘¡™¡€‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘}‘‘‘€~€‘€€~€‘‘‘‘‘€‘}‘‘‘}}‘€}}‘€}}}}}‘‘}}}}}}}}}}v‘}}v}}}}}}}vw}}}}}}}}wv}}v}˜õûš}™õõ™wvvw}}vvvvwv}vvvvvvvwvvvvvvv}wvpwwvov}vovpv}vvouv}voovuovvvoovvoovvuvouuouuouololuooouuolluuuolltluultuulltltllllCtllCtllllCtlCllClCClCCCCCCCCCCCCCZCCCCCCCCC{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Zóÿÿÿÿÿ÷_!9!!! !! !!!! !! ! ! !!    !  !  ! !q¥õþÿýÿýÿýÿþÿþÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿæÓ Ó×þþþþþþþþþþþþþþÿþÿþÿþþþþÿþþþÿúÕ�}}}‘~}}}}}~}}}}}~}}~~}}~}‘€~‘‘~}}}}}}~‘‘~~‘‘€~}‘€}€‘‘‘‘}~€€‘‘‘€‘‘¡‘€‘‘‘~‘‘‘‘¡¡‘€‘‘‘‘‘¡¡‘‘¡¡¡¢¤¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘¡¡¡¥‘‘‘¡¡Úþÿÿÿÿÿꤑ‘‘‘¡‘¡¡‘‘¤¡¡¥¡‘‘‘¡‘¡¡¡¡‘‘‘¡‘¡€‘¡¡‘¡¡‘¡¡‘‘¡¡‘¡¡‘‘¡¡¥‘‘‘‘¡‘¡‘‘‘‘‘¡¢¦¥¤¡¡¡‘‘‘‘¡¤¡‘‘‘‘€¡¤¥¡¡¡¤¡¤‘€‘¡¤‘‘‘‘‘‘‘‘€€‘‘¡¤¡¤‘‘‘¡‘‘õÿÿÓ‘‘¡¡¡‘‘‘‘‘‘¡‘‘‘‘‘€€€‘‘‘€‘‘€€€¤¥‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘€}‘€}‘‘‘~~€}}}‘‘‘‘}‘‘‘€}‘‘}€‘‘€}}‘‘}€‘}}}}€}}}€}}}€}}ww}}}}}}vv}}}w}}}}vvvv™õúž}™õú™wvvvw}}}v}}}w}vvvvwww}wuvvvwwvvvvvvvvvvopov}vvvvvvvuooooovvuoloouvuvvovvoovoluuulllooooullovvtllullooutvutltllltClltllCCCltlltCCCCttCtCCCCtCCCCCCCClCACCCtCClláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@!Bóÿÿÿÿÿ÷_!! !! !! !! !! !!    !!!! !   !! ! !!   p¥íÿýÿýÿýÿþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ Ó×ÿþþþþþÿþþþÿþþþþþÿþþþþþþÿþþÿþúÕŽ�}}}}~€}}}€}}~}~}}}€~~}}}}~~‘‘}}~€}~€€€€}~‘‘€€‘‘€}‘€€‘€€‘}‘‘‘~‘¡‘‘‘‘‘}€‘‘‘‘‘‘‘‘‘¡‘‘‘€‘¥‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡¡¡‘‘‘‘Úþÿÿÿÿÿ椑¡‘‘¢¡‘‘‘‘¤¡‘¡¡¡¡‘‘‘¡¡¡¤¡¡¡¡¡¥‘‘¡¡¡¡‘‘¡¥¡¡¡‘‘¡¡¡¡‘‘¡¡‘‘¡¡¡¡¤¡¤¡¡¡¤¡¡¡‘¡¡¡‘‘¡‘‘¤¡¡‘‘‘¡¡¡‘‘‘‘‘¤¡‘‘¤¡‘‘‘‘¤¡‘‘‘‘‘‘¡¤¡¡‘‘‘¤‘‘Ôþÿõ™‘‘¤‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€€‘‘}€‘‘€‘‘€}~€€€€}‘‘€€€}}€‘‘}}€}}€}}‘}}}}}}}}}}}}}}}}}}}}}w}}w}}w}v}}}}v}}˜÷ú™}˜õ÷™wwvww}}wvv}}vvvvvv}wvvvvvvvvvvvvvvvvvvvouvv}vvvuvovouvvuvvvvvuuvuolvvuuoluvolovoluouuuolltuulltluluuuolllllllCtlltltlClCuulCCllClCCllllCCtlCCCCCCCCCCCCCCCCCtC÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!!Zóÿÿÿÿÿ÷_!!!#!!!!!! ! ! ! ! ! !! ! ! !   ! ! ! ! ! !!qªõþÿýÿýÿýÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿàÓ7!ÓÓþþþþþþþþþþþþÿþþþÿÿþþþþþþþÿýÿúÖŽ}}}}}€~}}€€~}€€€~€}~}‘~}}}}‘€}}}€‘€}‘~}‘}‘¡‘‘¡‘~}€‘}~€‘‘‘}€€‘‘‘‘‘‘¡‘}‘¡‘‘‘¡‘€‘‘€‘‘‘‘¡¤‘}‘€‘‘‘‘‘‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘¡Úþÿÿÿÿÿꥡ‘‘¡¥‘‘‘‘‘¡‘‘‘¡¥¡‘‘‘¡‘¢¦¥¡¡¤¡¡¢¤¡¡¥¤‘¡¡¡¡¡¡‘‘‘¤¡¤‘‘¤¡‘‘¤‘¡¤¡¢¦¤‘‘¡‘‘‘‘¡¥¥¡‘‘‘‘‘¡¥¤‘¡¡‘‘‘‘‘‘‘¡¥¡‘¡¤¡‘‘‘¡¥¡¢¤¡¡‘¡¥¤¡¤‘‘‘‘¡¥õÿÿÔ‘‘‘‘€‘‘‘‘¡‘‘‘€‘‘‘¡‘€‘¤‘‘‘‘€}€€‘‘‘‘€€}}‘‘‘‘‘‘‘‘‘‘‘€‘‘€}€‘}}}‘‘‘€€‘€€}}}}€}}‘€}}€€}}}€}€€}}vv}}}}}}}}}}v}w}vvvw}}}šõ÷˜v�õ÷˜wvv}}}}}vwvvvvvv}wwvvvvvwvvvoovvvvvvvvpuvvwvuvovvloouwvvvulovvvvvulluouuluuulvvtllouvuulououluoooullllCClluuullulCCttltllutCCtlClZCCCltClltCCtlZCCCClZCCAACCCxÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!=Zóÿÿÿÿÿ÷_!9!! !#!!!! ! !!! ! ! !!!  !!  !!   ! !! !9sªíÿýÿýÿþþÿþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ$Ó×ÿþþþþþþþþþþþþþþÿÿþþþþÿþþþþþþúÖŽ}}}}}}}}~~}}}€~}~}‘}}}}~}}‘€}}‘~‘‘}~‘€}~}~‘‘€‘‘€€~‘‘€~‘‘‘€€~~‘‘€€}}¢‘~‘‘¡¡‘‘€‘‘‘‘~‘‘‘‘‘¡‘€‘€‘¡‘€‘‘‘‘¡¡¡‘‘‘‘‘‘‘€‘‘¡¡‘‘Úþÿÿÿÿÿꙑ‘‘‘¡¡‘‘¡‘‘‘‘‘¡¡¡¡‘‘¤¡¤¡¡¡¡¡‘‘¥¦‘¡‘¡¡‘‘¡¡¡‘‘¡¡¡¥¡‘‘¦¡‘¡¡¡¥¢‘‘¤¡‘‘¤¡‘‘¡‘¡¡‘‘¤¡‘‘‘¢¡‘¡¤¡¡¡‘‘‘‘¡¡¡¡‘‘‘¡‘‘¥¡‘‘‘‘¡¡¤¡‘‘¡‘‘‘‘‘‘Óþÿ÷™‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¤€}‘¡‘€‘‘‘}€‘‘¡‘€}€€‘‘€€‘‘€‘‘€€€‘‘‘‘}€€€€€€€€€€€}}€}}}}€€}}}}}€}}}}}}}}}}w}}}}}}}}}}}w}}}}}w}}}w}}™÷û™v˜òõ™ww}vwwvw}wvvwvvvvvwvvvvwvvvvvvvuvvvvvvvvvovvvvvvvouoowvuvoouvvvouoovvvvoooooouuouuluuouuuoolultluolluultlCtullllCClulClCtulCllCCCllCCtCCCZCCCtCClCZCCCCCCCZC@ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!9!;Zòÿÿÿÿÿú_!!!!!!!! ! ! !! !! !!! !  ! !!! ! ! ! !  }ªõÿþþÿýÿþÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!7ÓÓþþþþÿþþÿþþÿþþþþþÿÿþþþþþþÿþÿÿúÖŽ}}}}}‘‘}}}}}}}‘€}}‘‘}}}€~€‘€}}‘‘‘}~‘€}}}~}€‘‘}}€‘‘‘‘‘‘‘‘€~‘‘‘~~}}‘‘~‘‘‘‘‘‘‘‘‘‘€€€‘‘€‘€‘‘‘‘‘‘‘‘‘€‘‘‘¡‘¡¤‘‘‘‘‘€‘‘¡¡¤¡‘Úþÿÿÿÿÿê‘‘‘‘‘‘‘‘‘¡¡¡¡‘¡¥‘‘¡¡¢¡‘‘‘¡¥¡‘€€‘‘‘‘‘‘‘‘‘¤¤‘¡¡¤¡‘¡¡‘¡¤¥¡¤¡¢¢¤‘‘¡¤‘‘¡¥‘‘¤¡‘‘¡¡¡¤‘‘‘¡¤¡¡¢¥¥¤¤¡¡¡‘¡¡¤‘€‘™‘¡¡¡‘‘‘‘¤¡¡‘€€‘¡¥¤¡‘‘‘õÿÿÚ¥¡¤¡‘‘¤‘‘¡™‘‘‘‘‘‘¡¡‘€‘‘€‘¡¡‘€}‘¤‘~€€€‘‘‘‘‘€‘}€‘‘€‘€}}‘‘‘€€‘‘‘‘€}€‘}}}}}}}}}}€€}}}‘€}}}}}}}}}}}}}}}w}}}€ww}w}}}v}}}}v}}}}}wvvvvvw™÷÷�v˜õ÷˜}}}}vvvvv}vvwvvvvvv}}wwvvw}vvovvw}wvuvvwvuuovvvvvuvouvulvuvvvvuoouvuvvvuloovvovuvullloooluluououlotllouvtClltllluClllCClouuulZCCClCCCltCCCCCCltCCClCACCCCClC{ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!;!!!Bóÿÿÿÿÿ÷_ ! !!! !!!!! !!! ! !!! ! ! !  ! !!!! ! !!  !=s¬íÿþÿýÿýÿþþýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓÓ×ÿþþþþþþþþþþþþÿþþÿþþþþþþÿþþþþúÖ��}}}}}€}}}~}}~‘}}}}}}}‘€}}¡‘}}}}‘€}}‘‘‘‘~~}}‘‘}~‘‘‘‘¡‘‘‘~‘€‘‘‘}‘~‘‘‘‘‘€‘€‘€€‘¡‘‘‘€‘‘‘‘‘‘‘€‘‘‘‘¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘¡‘¡¡Úþÿÿÿÿÿ椑‘¡‘‘¡‘¡¡¡‘‘¡¡¢¡‘¡¡¡‘‘‘‘¤¡¡¡¡¡‘‘¡‘¡¥‘€‘¥¡‘¡¥¡‘¡¤¡‘‘¡¡¡¡‘‘¤¡¡¡¡¡‘‘¡¡‘‘¤¢‘‘¤¤¡‘¡‘‘¡¡‘¡¤¡¡¡¡‘¡¤¡‘¤¡‘‘¡¡‘‘¡¡‘€‘¡‘‘¡‘‘€‘¡¡¡‘‘‘‘Ôÿÿú¥‘‘¤¡€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¤€€‘‘‘‘‘}‘¢‘‘‘‘‘‘‘‘€€}€€€‘€‘€€‘‘‘}‘}}€€}}}}‘}}}}€}}€€}}}}}}}v€}}}w}}}}}}}w}}}w}}}}}}w}}}}w}}w}wvv}}™úõ˜v™õ÷™}v}vvvwvvvvvvvvvwwvvvvvvw}vvvvvvvwvvvuvvvpuovvvuvuvvvvvoovvoovuoovvuuvuoououvoooooltvuuolloolluollloltuulCltltltllttltlCtllulCllCtlCCulCClCCCtlCCCCCACZCACuCðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!$!!!Yóÿÿÿÿÿ÷_!!!!! !!! !! ! ! ! ! ! ! ! !  ! !!     !!qªíÿþþÿýÿýÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿæÓ!$Ó×þþþþþþþþÿþþþþþÿþÿþþÿþþþþþþÿþúÖ��}€€}}}}}}€}}}}}‘}}}}€}}‘€~}}}}€‘~€‘‘‘‘‘‘}‘‘‘}}‘}}}‘}}}‘‘‘‘‘~}‘‘‘‘‘‘¡‘€}€‘‘¡‘‘‘‘~‘¡¡¢¡€‘‘‘‘‘¡¥‘‘¡¤¤‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘Úþÿÿÿÿÿꥑ¡¡¥¡¡¡¤¤‘‘¡‘¡¥‘‘‘‘‘‘‘¡¡¡‘‘¥¥¡‘¡¥¥¡¡‘‘¡¡¡‘‘¡¡‘‘¡‘‘‘‘¡‘‘‘‘‘‘‘¤‘¡‘¡¡¡¡¡¡¤‘‘¡¡¡‘‘¡¤‘‘‘‘‘‘‘¤‘‘¡¤¡‘‘‘‘‘‘‘‘‘‘‘€‘¤‘‘‘‘‘¡‘¡¡‘¡¡‘‘€‘õÿÿÚ‘€‘‘€‘‘‘‘¡‘¤‘‘‘‘‘‘‘¡‘€‘‘‘‘‘‘¡¥‘‘‘‘‘‘‘‘‘‘‘€~}€€‘€‘‘€€}}}}}}}}}‘}}‘‘€}}€€‘}}}}}}}€}}}‘}}wvw}}}}wv}}}}}€}}vvv}}}w}}}™û÷�}˜õõ™vvwvv}}wwvvwwvvvw}vvvvvvvvvuvvvvvwwvvpvvooooooooovvwvvvvloulloouovvolovuvvuolluuuvoovvvutltCllllCuuullllCCllllllCCluullCCCClllCtlllZlCCCCClCCCCCCCCCACCCACl›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Cóÿÿÿÿÿ÷_;!#! !!#! !!!! ! ! ! ! !! !  !!=q¥íÿþÿýÿþþÿþþýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿèÓÓ×ÿþþþþÿþþþþþÿþþþþÿþÿþþþþþþþÿþúÖŸ�}}}€}}}}~‘}}}}}}}€}}}‘}}}}~}~~~}€‘‘}‘‘‘€€~€€‘€‘€~}}‘€~}€‘‘‘‘‘‘€¡‘‘‘€‘‘€‘€‘‘‘‘‘¡‘}‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡¡‘}€¡‘¡¡‘‘‘‘‘¡¡¡‘‘Úþÿÿÿÿÿæ‘‘‘¡¡¡‘‘¡¤¡¡‘‘¡¡¡‘‘¡‘‘¡‘¡‘‘¡¡¡¡¡¡¡¡¡‘¡‘¡‘¡¤¡¤‘¡‘‘‘¥¡¡¤‘¡‘‘¡¡¡¡‘‘¤¤‘‘¤¡¡‘¡‘‘‘‘‘¤¥¡‘‘€‘‘‘¥¡‘‘‘¡¡‘‘‘‘¡‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘¤¡‘™‘‘‘‘‘Óÿÿú™‘‘‘‘‘‘¡€‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘€€‘‘‘€‘‘€€€}‘€}€€€€}}€€}}€‘}}‘}}~€}}}€}}}}}w}}}‘}}}w}€}v}}}}}}}}w}}ww}w}}wvwv}}™úú™}˜õ÷˜vv}wwvvv}vvv}vvvvvvvvvvvvvvvvvvvvvvvvvvuvuvvvvuvuuvvvuuvvvvoouvoouuoluvuuvvulovololuuuuooolluululluulllllltltltlCCuullCCCCCtlCtllCtllCCCCttCCCCCCCZCCCtC@CZòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!#!!Yóÿÿÿÿÿ÷_!!!!!!!!!!!#! !!!! ! !! !! ! !!   !   =q¥õÿþÿþþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!!ÓÓüÿþþþþÿþþþþþþÿþþÿþþþþþþÿþüÿþúÖ¢‘}w}}}}~}‘€}}€~~}}}}}‘€~}}}}}}}}€}€‘‘~}~}}}}}}}€‘€‘‘‘‘¡~‘‘€}}‘‘‘‘‘‘‘€~}€‘‘‘‘‘‘}‘¡‘€‘¡€‘€€‘‘€‘‘‘‘‘¡¡€‘‘‘‘¡¥¥¡¡‘€€‘‘‘‘‘‘Úþÿÿÿÿÿꤡ¤‘‘‘¡‘‘¡‘¤¡‘‘‘¤¤‘‘‘¡¥¡‘‘€¥‘‘¤¡‘‘¡‘‘¡¡¤¡‘¡¡¤¡¡¥¡¡¡¥¤¦¥‘‘‘¡¤‘‘¡¡¤¡‘‘¡¡‘‘‘¡‘‘‘‘¡¤‘‘‘‘‘‘‘¡‘‘¡‘‘‘¡‘‘‘‘‘¡¤¡™‘‘‘‘‘‘‘‘‘¡¡¥¢¡‘¡‘¡‘‘‘õÿÿÚ¥‘‘€‘¤‘‘‘‘‘‘‘€‘‘€‘‘€‘‘‘€}€€€�‘‘‘€}€€}}‘‘‘‘‘}€€‘€€~€‘}€}}€‘}}€}}}}}}€}}}€}}€}}€}}}v}w}‘}}}}‘}}w}}}}wvv}}}}}}}}�žÙý÷‘}˜õýæž�}vvvv}}vvv}}v}vvvwwvvvwwvvvvvwvvvvuvvvvvvvvvvvvoouvouvvvvvvvvvloouuvolllvvlovotlloulllluvvuouulCltllClCCllloutllllCCCCClCltllutCCCCCttltCCCZCCCCCCCCCCCCÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!@!@óÿÿÿÿÿ÷_!!!!#!!#!!!!!!# !!!#!!! ! ! !   !  ! !!  =sªíÿþÿþÿýÿþþýÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ$!!××ÿüþþþþþþþÿþþþþþþÿþþÿþþÿþþþÿþúÖ ‘}}}}}}€}}}}}}}‘}}}~}}}~}€}‘~}}‘‘}€€~€}€~~~}~‘€~€‘€€‘}€€€€~‘‘‘‘€‘‘‘~€€‘‘€‘¡€~‘‘‘}¡¢‘€‘~‘‘‘‘‘}‘‘‘¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘¡‘‘Úþÿÿÿÿÿ椑¡‘‘‘‘‘‘¡‘¡‘‘‘¡¡¡¡¡‘™¡‘‘‘‘¡¡¡¤‘‘‘¡‘¡¤‘¡¥¡‘¡¤¡¡¤¡‘¡¡¡¡¡‘¡¡¥¡¡¡™¡¡¡‘¡¡¡‘‘¡¤‘‘‘‘¡¡¡¡‘‘‘‘‘¡‘‘‘‘‘¡‘¤‘‘‘‘‘¤¡¡¡‘‘‘¤‘‘‘‘‘‘¡¡‘‘‘‘‘¤‘€Ôÿÿý¥€‘‘‘¡‘€€‘€‘¤€‘‘‘‘‘€‘‘‘‘‘€€‘‘‘€‘‘€‘‘€€‘‘‘‘€€€€€€€€}}€}€€}}€~€€€}}}}€}}‘‘}}}}}€}}}}}}}}}}}}v}‘}}}}}}}}}}}}w}ww}}}˜×õ÷ýÿ÷™w˜õÿÿúòàžv}vvvvv}}vvvvvwvvvwvvvvvvvvvuvvvvuvvvvwvvvvvouvuvvovuuvvvvulvvovoluluuuluoovlluvlllltuuCluollultltttulCtllllulCCtlCttlCllZolCCCCClClCCCZCClZCCCCCCCCu÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!!!Yóÿÿÿÿÿ÷_!!!!!!!!!!!#!!!! !!!!! !! !! ! ! !    pªõÿþÿþþÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!ÓÓþÿþþþþþþþþþÿþÿþÿÿþþþþþþþþüÿþúÖŸ�}}}}€‘}}}}~€~}‘‘‘€€~}}€€}}~€€‘‘}}}}‘€~}}}‘¡‘‘‘}}‘‘}}}}}~€€‘‘€‘‘}}‘‘‘€~~}}‘¥‘€€‘€}‘‘€€}€‘‘‘‘‘‘‘‘‘‘‘}€‘¡¡‘€€€‘‘‘‘‘¡¤‘€Úþÿÿÿÿÿ椑‘‘‘€‘‘¡™‘‘‘‘¡‘‘‘¡¤¡¡‘€‘‘‘¦¡¥¡‘¤¡¤¡‘¡¡‘‘‘‘‘¡¡‘‘‘¤¡‘‘‘‘‘¡¡¡¥‘¡¡‘€‘¥¤‘‘‘‘¡¤‘¡¤‘‘‘‘‘‘¡¤¡¡¥‘€‘‘‘¤¡‘¤‘¡¤¡¡‘‘‘‘‘‘‘€‘¤‘‘€‘‘‘€‘‘€‘‘‘™õÿÿà‘‘‘‘‘‘€‘‘‘‘‘‘‘¤‘‘‘‘‘‘‘‘}‘‘‘‘}‘‘‘‘€‘‘‘‘‘€}}}}}}€‘‘‘‘‘}}}}‘€€‘€}}€‘€‘‘‘}}}}}}}}€}}}}}}€€}}}}}w}vwwv}vwvv}}}wvww�Ùõýÿÿÿÿ÷}™õÿÿÿÿÿúñ׆vv}vvwv}vvvvvw}wvuvvvwvvuvvvuvvuvvvvvvvvvuooovullouuouvolvvvuluooptlluuluulluvulllulCCluClllouolluuuotCluvuuultllvtCClltllZCttttCCCllCClllZCZCCZCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=;!!!@óÿÿÿÿÿ÷_!#!!!#!! !!!! !! !!!! !  ! ! !  !! !p¥íÿþÿþÿýÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!77Ô×ÿüþþÿþþÿþþþÿþþþþÿþþþþÿþþþÿþÿúÕ�}}}}}}}}}}}}€}}}€‘}}}}~~}‘~}}‘‘}}~~~~€€}}�‘‘‘€€}}€‘~~~~€}‘€€‘‘€€}‘‘‘‘~‘€~~‘¡‘‘€}‘‘‘€‘‘‘€‘‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘¤¡‘€Úþÿÿÿÿÿ楡‘€‘‘‘‘‘¡¡‘‘¤‘‘‘‘¤‘¡‘‘‘¡‘‘¤‘¡¡‘¤¡‘‘‘¤¦‘‘‘‘‘¡‘‘‘‘¡¡¡‘‘€‘¡‘¤¡¡‘¡¡‘‘¡¡‘‘¤¤¡‘¡‘¡‘‘¡‘¡‘¤¡‘¡‘¡‘‘€‘¤¡‘‘‘‘¤¡‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘Öÿÿý¥‘‘‘‘‘‘‘‘¤€‘‘‘‘‘‘€‘‘‘‘€‘‘€‘‘‘}‘‘€}€‘‘€‘‘‘‘€}}‘€}}€€}€€€€}€}}€}€‘}}‘€€€}}€}}}}}}}}}}}}}}}}}}ww}w}}}wwv}}}ww}žñþÿÿõßèÿõwœõ÷Ó×à÷ÿÿýèÓ�}vvvvvvvvvvv}vvvvvvvwvvvuvvvvvovvuuvvvvvvvoovvouvvllvvulvuuouvuuuloluvoooluvullulvulluultlluulllltlllltttllllCtlulCCulCCtlClllCCCZlCCZCCtlCCCCC{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Yóÿÿÿÿÿ÷_!!!!#!! !!! ! !#! ! ! !  ! !    !$qªõþþÿþÿþÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!775Ó×þÿþþþþþþÿþþþþÿþþÿÿþþþþþþþüþþúÕŽ��}}}}}}}}}€~}}}}}}}}}}}}‘‘‘}€‘}}‘‘}}}}~}~‘€}‘‘€€€}€‘‘‘‘‘‘‘‘‘}}}¡‘‘‘‘‘‘€‘‘~‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘¡¥‘‘‘‘‘‘‘‘‘‘‘¡¥¡‘‘€‘Úþÿÿÿÿÿड‘‘¡‘¡‘‘‘¡¥¥¡‘‘‘¡¤‘‘‘¡¥¥‘‘‘‘‘¡¡¡‘‘‘‘‘¦¡¡¥¥¡¤¡¡‘‘‘‘‘¡¥‘‘‘¡¡¡‘€¡¥¡‘¡¡‘‘‘¡¡¤‘‘‘‘¡¤¤¤¡¡‘‘‘‘‘¡¥‘¢¦¤‘€€‘‘€‘‘¤‘‘¡¤‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¥¡‘õÿÿè‘€‘‘€‘‘‘‘‘‘‘€€‘‘™‘‘‘‘‘‘¢‘‘‘‘€}‘‘€‘‘}}‘‘‘‘}€‘€€}}}}€‘‘‘}€€}}}‘€}}}}}}}}}}}}}}}}}}}}}}w}w}}}}}}}}}}}}}}}}ÙúÿÿõÓ˜žý÷w™èß‘™Óèüÿüè™w}vvvvvvw}vvvvuvvvvvvuvpvwwvouovvouvuvuuuuvvvuvvvllvulluooulooulluoooooullullouluvuuullullultluClllltlllCCCCCCCtCCCZCClltCCCCCCCCtlCCCCCCCCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!;!9@Cóÿÿÿÿÿü_! !!=#!!#!!! ! ! !! ! !! ! ! ! !  !!=q¥õþÿþÿþÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè×7!Ó×ÿüÿþþþÿþþþþÿþþþþÿþþþþþþþÿþÿþúÖ��}}}}}}}}}}}‘}}}}}}}}}‘€}}€€}~€}~‘}}~}}€}}‘€~‘}}‘‘~}€~‘‘‘€€}‘‘‘€~}~¢‘‘‘€‘}}¡‘€€‘€‘¡‘€‘¡‘‘‘‘‘‘‘‘‘‘¡¡‘¡‘‘‘‘‘‘‘¡‘¤‘¡‘‘‘‘Úþÿÿÿÿÿæ¡‘¡¥¡‘‘‘‘‘‘¡¡¡‘¡¡‘¡‘¡‘‘¡¡‘‘‘‘‘‘‘‘‘¡‘€‘¤¡‘¡¡¡‘‘¤‘‘‘‘¡¤¡‘€¡‘¤¡‘‘‘¡¡‘‘¤‘‘‘‘¡¤¡‘‘¡¤‘¡¡¡¡‘‘‘‘‘‘¡‘¡¥¡‘‘‘‘‘‘‘‘‘‘¤¡‘‘‘‘‘‘‘‘‘‘‘™‘‘‘‘‘¡‘‘Øÿÿþ¥‘‘‘‘‘‘‘‘‘‘€€‘¡‘‘‘‘€€‘€‘‘‘‘‘‘€}‘‘€€€}}€‘€‘€‘‘€€}}~}€‘‘}€€€€}}}€}}}}}}}}}}€}}}}}€}}}w}€}v}}}}}v}}ww}}ww}}}™èýÿõÓ™€vvžý÷w˜èÙvvww˜žàýþèžwvvvvvvvvvvvvvvvuvvuvvvvvvvvuvovuvoovvvvvvvvoovvuuuovuolvvolupooouoluloltooltuollvulloululllullCCtulCtllCZCllllCtlCCttCCCCCZCCCCtlCCCCCBCCCZ”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Yóÿÿÿÿÿ÷_!! !!!!!#$! !! ! ! ! ! ! ! !   !  !q¥õÿþÿþþÿþþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!$!7ÓÓþþþþþþþþÿþþÿþÿþÿÿþþþþÿþþþüÿþúÖ¢}v}}}€~}}}}}€}}}}}}~}€‘‘~}}}}}}}‘}}~‘‘‘~}}}‘€‘‘}}~‘‘‘}}€€‘‘}€‘‘‘‘‘‘¥‘}‘~‘}}€‘€~‘‘‘‘‘‘‘‘‘€‘‘€‘€€‘‘€‘‘‘‘‘€€‘¥¤‘‘‘‘€‘‘‘ÚþÿÿÿÿÿꙀ‘¡‘™‘‘¡‘‘‘‘‘¡¤¡‘‘‘‘‘¡¡¤¡‘‘‘¡¤¤¡¡‘‘‘¡‘‘‘‘¡‘‘‘‘‘‘¡¡¡¡‘€‘¤‘¡¥¤¥¡€‘‘‘¡¡¡‘‘‘¡¡‘¡¡‘‘‘‘¡¤‘‘‘¤‘‘‘€‘¡¡‘‘‘‘¡‘‘‘‘‘‘¤¡¤‘‘™‘‘‘‘‘‘¡¤¡‘‘‘€‘¡÷ÿÿ뤑‘‘€‘‘‘‘‘€‘‘€€€‘‘‘}}‘€€}€‘‘€}‘‘€€‘‘‘‘}}€‘‘‘‘‘‘€€‘‘}}€€}}€€}}}}}‘‘‘}}}}}}}}‘}w}w}}v}}}}}}}}}}vww}}w}˜òÿþÙ˜w}}vvšÿõw™ñÙwvvvvvvÊõÿõžvvvvvvvvvwvvvvovvvvvwwvvvuvvvvvvvuvwvvuvvuuluvvuvuovvuouvuovvuvuvvuuuuuvulCloutlluluullllCtltuClltCCCCCloulZCtlltltlCClZulllZCClZCCCCACCCCvñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!9!!9Zóÿÿÿÿÿ÷_!! !#! !!! ! !!!!! ! !!!!  ! ! !!   !  qªõþÿþÿþÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!!!$!!7Ó×ÿþþÿþþþÿþþþþþþþþÿþþþþþþþþÿþþúÖ�Ž}}}}}}}}}}}}}}~}}}}€‘‘€}}}}}}}~}‘€‘}}}}‘‘}}‘‘}}‘‘‘‘}€¡‘}€‘‘}‘€‘¡‘€‘‘€‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘‘‘€‘‘‘‘‘€€‘‘‘‘¡¡‘‘‘‘‘€‘‘Úþÿÿÿÿÿæ‘‘‘‘‘‘¡‘™¡‘‘‘¡‘¡‘‘‘¡¡‘‘¡¡‘‘‘¡‘¡¡‘‘‘‘¤‘‘‘‘‘‘‘‘‘‘‘¡¤‘¡‘‘€‘¡‘‘¡¡¡¡‘‘¡‘‘¤¡‘¤‘‘‘‘¤¤‘‘‘¡‘¤‘‘‘¥¡‘‘€‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘¤¡‘¡¡‘€‘¤‘‘‘‘‘€‘€‘¤‘×ÿÿÿ§‘‘‘€‘€‘‘‘€€‘‘‘‘‘€}‘¡}€€€€€€‘‘€}‘€‘‘‘€€}}‘‘‘‘}}}‘€}}}}€}}}€}}€}}}w}}}}}€}}}}}}}}}}v}w}}}v}}v}}}èÿû×}}wv}Êÿ÷™vžúè}wvvvv}v{žèýò›vvvvvvvvvv}wvuvvv}vvvvvovvvwvvulv}vuuvuoovvvvuoolvvuuouoououvoouluuouolltluuoolltoulttlllltllCultulCZltulCltltlCllCCCllCCCCCCCCCCZCCCCCZÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!9!Zòÿÿÿÿÿ÷_!!!!! ! ! ! !!! ! ! !#! ! !   !  !qªõþÿþÿþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ!!ÓÓþþþþÿþþþþÿþÿþÿþþÿÿþþþþþþþüÿþúÕ��~}}}}}}}}}~}}}}‘‘}}}}}}}}}~€‘‘‘‘€}~}}~}}‘‘}}‘‘‘}}}}€~}}‘}}}‘€}}}}‘‘}‘‘‘‘‘‘‘‘}‘‘‘‘‘¥‘‘‘‘‘‘}‘¥‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡Úþÿÿÿÿÿꥡ‘‘‘‘¡¡‘‘‘‘¡¥¡‘‘€‘¥¤‘‘‘‘‘‘¢¥¤¡‘‘‘¤£¥‘‘‘‘‘‘¡¡¡¡¡¤‘‘‘‘‘}‘¡¡¡‘‘‘‘‘¥¥‘‘¡¥‘‘€€‘‘¡¡‘‘‘¡‘¡¤‘¡¢¤‘‘€‘‘‘‘‘‘‘‘‘¡¤‘‘‘‘€‘€‘¡‘‘€‘¤¡‘€‘‘‘‘€‘¥‘¡÷ÿÿô‘¤‘‘‘€‘¡‘‘‘‘‘}€‘‘€‘€‘‘€}€‘‘‘‘€€}}‘‘‘‘}}‘‘‘‘‘}}}}}‘}‘‘€‘}}}}}€}}}}}}}}}‘}€}}}}}}}}vvv}wvv}}vvàþý×vvvvw�×÷ÿÿàžàÿ÷˜vvv}}vvvw™èþè†}wvvvvvuuov}vvvv}wvuvvvuvvvvuvvvv}oovvvououououuluvovvuvllllvulllouuvtlotluoltlllululultullutltlltCCoClltltultCCCCutlCZCCCCCCZCCCClZCCC{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@!!!!@óÿÿÿÿÿ÷_!!;! ! !!!!!! !!! !  !!!  !! !!  ! !$p¥õþÿþÿþÿþÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ757Ó×ÿþþþþþþÿþÿþþþþþÿÿþþþþþþþþÿüÿúÕ��}~}}}}}}}~}}}}}}~}}}}}}}}€€}~}}€€}~‘~}€}}€€~~}‘~}}}‘‘€}}¡€}~}€}~‘‘‘€‘‘‘‘‘‘}}‘¡‘‘¡‘€‘¤‘€}‘¡‘¡‘‘‘€‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘Úþÿÿÿÿÿ楡‘‘‘‘¡¡‘¡‘€‘¥¡‘‘‘‘¥¡‘‘‘‘‘‘¤¡¡¡‘¡‘¡¡‘‘€‘¡‘‘‘¤‘¡‘¥¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘¢¥‘‘¤¢‘‘‘‘‘¤‘‘‘‘‘¤‘‘‘¡‘¤¡¡‘‘€‘‘‘‘‘‘‘‘¥¡‘‘‘‘€€‘‘‘‘‘‘‘‘¡‘‘€‘¥€‘¡‘‘Úÿÿÿ¬‘‘‘€‘€‘¤€}‘‘‘‘€‘~€‘‘€€€‘‘‘‘€€€}€€€‘€‘‘‘€€}}€€}}}}‘€€€}€}}}}€}}w}}}}}}}}}}}}}}}wwwwww}vw}v}}v}ÌýýÓ}}vv˜àõýÿÿÿþúýÿÿè™v}wvv}v}w˜õý×vvvvvvvvuvvwvvvvvuovvvvvuvuuvvuvvuuvvuoooououvlloouuuououuuluooluouvoluooltlltluulllluulltlllltlClulCCulullllCCCZltCCCCCCZltClCCCtCCCCçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=!!!!Yóÿÿÿÿÿ÷_!!#!! !! !!!#!# ! !  !! !  !  pªõþÿþþþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!!ÓÓÿþþþÿþþþþþþÿþþþþÿþþþþþþþüÿþþúÕŸ}}}}}}}}}}}}}}}}}}}}}}€}}~‘}}}}}}}}}€‘‘‘}}}~‘€}}}‘}€‘‘�€‘€€‘€€‘‘‘}}}€‘€‘‘‘‘‘‘‘‘¤‘‘‘€‘‘‘€‘¡¤‘‘‘‘‘‘‘¡‘€¡¤‘‘¡‘‘‘‘‘Úþÿÿÿÿÿत‘‘‘‘‘‘‘‘‘€¡¤‘‘‘€€¡‘€‘‘¤‘‘¡¡¤‘‘‘‘‘‘‘¡¤¡¥‘‘€‘‘‘‘‘‘‘‘‘¡¡¤‘‘¥‘‘€€‘¡‘€‘¡‘‘¡¤¡‘‘‘¡¥¡‘‘€‘‘‘‘‘‘¤‘¡‘‘‘‘™‘‘‘¡¤‘¡¥¡€‘‘‘‘‘‘‘‘€‘‘€€¥‘€¡¥‘‘¡÷ÿÿõ‘‘‘‘‘€‘‘}¡™‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€€€€}€€€}‘}}}€€}‘‘}}}‘}}}}}€‘}}}}}}}‘‘}}‘}w}w}w}}}}}}}}}}}}}}wvúÿ×wvv{×úþÿÿÿÿÿÿÿÿÿÿÿõžvvvv}}}wwÇú÷žvyvvw}wvwvvvvvvvvouvvvvuoovvvolovwvvuvvvvvououuvvovvooluvvvooutlluouuouutlluuuouulluClutllttlulttClltCCCCCCCZltlCClZCCulClCCCCCCCCCC@�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ;!!9!Cóÿÿÿÿÿ÷_!!!!#!#! ! !! ! !!!! !!   ! !   !q«õþÿþÿþÿþÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ!!!!Ó×ÿüÿþÿþþÿþÿþÿþþÿþÿþþþþþþþþÿüÿúÖ�}}}}}‘}}}}}}}}}}v}v}}~}}}}|}~€}}}}}‘‘‘~}}‘‘}‘}}‘‘‘‘€€€€‘}€‘‘€‘‘‘‘‘‘}€‘‘€‘‘¤‘€€€‘€€‘‘‘‘‘‘¡‘‘‘‘‘‘¤‘€‘€‘¡‘‘¤‘‘‘‘Úþÿÿÿÿÿ楡¡‘€‘‘‘‘‘‘‘‘‘¡‘€€‘‘‘‘¡¤¡‘‘¡¡‘‘‘‘¤‘‘¡¥¡‘‘‘€‘‘‘‘€‘¤¡¡‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘¤¤¡‘‘‘‘¤¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘¡‘¡‘‘‘€‘‘‘™‘‘™‘‘‘‘¡¡€¡¡‘€‘ÚÿÿÿÓ‘‘‘‘‘€‘€€‘‘€‘‘‘‘‘€‘‘‘‘‘‘€‘€‘‘}}‘‘€‘}}}€‘€}}€‘}}€}}€‘}}}}€}}}}}}}}}‘}}}}�~ww}w}}}€}w}}}}w}}w}}}w}}Êÿ÷�vwv™òþÿþõßÓÓž×àñûÿÿÿõžvvw}wvvÙýàw}v{}vvvvvvuvvvuuovvvvvovuuuouuvvvovvvvvvoooovvtlvvoluuvvuuuoluuvulluullluuulluulltltullllltlllllttlCCCuCCCCCllCCCCCltCCCCCZCCCCBA@u÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!;Zóÿÿÿÿÿ÷_!! !!9!!! ! !! ! !      !q¬õÿþÿþÿþþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!!!!ÓÓþþþþþþþþþþþþþþþÿÿÿþþþþþþüÿþþúÖŽ}}}}}}}}}}}€€‘‘}}}}}}}€}}€‘}}€‘‘‘‘‘}}}}‘€}}‘‘‘}}‘‘€‘‘‘‘‘}}‘‘‘‘‘‘‘}}}€}}‘‘‘‘€}‘‘€}€€€‘‘‘‘‘€€‘‘€‘‘‘€‘¡‘‘€‘‘‘‘‘‘‘Úþÿÿÿÿÿड‘‘‘‘‘¡™¡‘‘‘€‘¡‘‘¡¡‘‘‘‘€‘‘‘‘€¡¥¥¤‘‘¡‘‘‘¡¡‘¡¥¤‘‘‘‘¤¥‘‘‘‘‘‘‘¡¡‘‘‘‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘¤¥¤‘‘¤‘‘‘‘‘¤¡‘‘¡¥¥‘€‘‘‘‘‘‘‘€€~‘¡¢¡‘€€‘‘¡€‘‘‘‘÷ÿÿ÷‘€‘‘‘€€‘‘‘‘‘‘‘€‘‘€‘‘‘‘}€‘€}€‘‘‘‘‘€}}�‘‘‘}}}‘‘}€}}}‘‘}}}}}€€�}}}}}}}}w}‘}}v}}}vv}}}}}w}vvw}w}}�õþÓ}}žúÿýàž�}{}}{�™Óèÿÿ÷Çwvvvvvvvœ÷÷ž}vvvvvvvvvuvvvvvvvvvuvvuvvvvvvooulvvuuvvuovuovvuuvvuuvultlluuuuuvlluvotullouClluCCllllluutltCCuuulltuCltttltluCCZluCCluCZCCllZtCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9#!!!@óÿÿÿÿÿ÷x;!! !!!!!!!!!!! ! !! ! !!  ! !! ! q¥íÿþÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!7$!777Ó×ÿþÿþÿþÿþþÿþÿþÿþÿÿþþþþþþþþþþþúÖ�}Ž}}}}}€€}}}‘}~}}}}}}}~}}}}€}}}€‘‘€}}}}}‘€}€}}~€€€‘‘‘‘‘€€}‘‘‘‘¤¡}‘}}~‘‘‘¡€€‘€}‘€‘‘‘€‘‘€€‘‘‘‘}‘‘‘¡‘‘‘€€‘‘‘‘€Úþÿÿÿÿÿ椑‘‘‘‘‘‘‘€‘¡‘‘‘‘‘‘¡‘‘¤¡‘€‘‘¡‘}¡¦¡¡¡€‘¡‘‘¤¥‘¡¤‘¡‘€‘‘¡‘‘‘‘‘™¡‘‘™‘‘‘‘‘‘¤‘‘‘‘‘¤‘‘‘¡‘¤¡¡‘‘‘‘‘‘€‘‘‘‘‘‘‘¤¡‘€‘‘‘‘‘‘‘€‘¥¡‘€‘‘‘‘‘‘€‘‘€‘€ÓÿÿÿÓ€‘‘¤‘€‘‘}}‘‘‘‘‘‘€‘‘‘‘€}‘‘‘€€‘‘}€~€‘€}}}€}€€}}‘}€‘}}}}}~}}}}}}w}}}}‘‘ww}v}ww}v}‘}v}v}}}}}}}žÿôžüÿõž�}wvv}vwvvw}˜Ó÷ÿõœvvvwvvwàþßvvvvvouvupvvvuvvvuuvovuvvvvvvuuovvuvvvuuovuuuovvuluvvluvluuvuoooltouoolotullCuulltllCuutlltllutolCtlCCullCCtllCllCtCCCtlCCuCulCCC–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!=!!Bóÿÿÿÿÿúx!!!!!!! #!!!!#! ! ! !     !=q¥õÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!7!ÓÓþþþþþþÿþþþþþÿþþþÿþþþþþþþþþÿþúÕ�}}}}}wv}}}v}}}}}}}‘‘‘}€‘}}}‘}}€}}}~€}}}}€‘‘€}}‘}}}}}}}~}€}}}}¡‘}}‘¡‘‘‘‘‘‘}}‘‘€‘‘‘¡¡‘€‘‘‘‘‘‘‘€‘‘¡¡‘‘‘‘‘¡‘‘¡¡¤¡¡‘Úþÿÿÿÿÿॡ¤¡‘¤¡‘‘‘‘‘‘‘‘¡‘‘‘‘¡‘€€¡¤¥¢€€‘¡‘€€€‘‘‘€‘¢¤‘‘‘‘‘¡¡¤¡‘‘‘¡¡¡‘‘€‘¡¡¡¤¡‘‘‘‘¡¤¡¡‘€‘¥‘‘‘‘€‘‘¡¥‘‘‘‘‘‘‘‘€‘‘‘¤‘‘‘‘‘¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘€€‘‘‘‘ûÿÿ÷€‘‘‘‘€‘‘‘€‘€‘€€}}}�‘‘‘‘‘}€‘€€‘}}}}}‘€}€}}}}‘‘}}}}}�}}}}}}‘}w}}}}}}€}}w}}w}}}w}v}}èÿÓ}wõÿ÷™wwvw}wwv}vvvvvžõÿèww}wvvwžúñ˜vvvvwvvvvvvvvvvvwvvvuoovuvuvvvvvvuouvulvuvoluluvtluulooullloouuuuvtlluvuuuullutlututCllltluCCClCtlluCoutltCCCCCCCltCCCCCBCCCCCCCuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!;!!@óÿÿÿÿÿ÷_! !! !!#!! !!! ! !! ! ! !  !    $}ªíÿþÿþÿþÿþÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!7!!Ó×ÿþÿþÿþþþþÿþÿþþþÿÿþþþþþþþþþþþúÖ�}}}}}}}}w}w}‘}}}}}}}‘}}‘€}}}}}}}}}}}}‘‘}‘‘}€}}‘~}}}}}}‘‘}}~}‘‘‘€‘¡‘‘‘‘‘‘€€€‘‘‘‘‘€‘‘‘‘¤¡‘‘‘‘‘¤‘‘€€‘‘¤‘‘¤¡‘¡¤¡Úþÿÿÿÿÿ椡¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¤¡‘‘‘‘¡¥¡‘‘€‘¡‘~‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¤‘‘€‘‘‘‘¡‘‘€‘‘‘‘‘€‘‘€‘¡¤¡€‘‘‘‘¤‘€‘‘€€¡¡‘‘‘‘™¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘€~‘�ÓÿÿÿÓ}~€€‘}‘‘‘‘‘€‘}€}€‘‘€}€€}}}‘€‘‘‘‘}}€€€}}}}}€}‘}}}}}}}}‘€}}}}}€}w}w}}}}}‘}v}}}w}}}}wvw}�úý˜}Çÿý§}wvvv}vv}}vvvvvw{Êýü×wvvwvvèýÊvvvvvwvvvvvvvvvvwvvvouovvvuvuvvvvuvvouvvvvuluovuoooluuuuoCtuuvulvuoluuvooullZlllllulCuulllllCCCtutltlullCCCCCCZCCCtCCCCCCCCuCCCZÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=9!!!Yóÿÿÿÿÿ÷_! !! ! !! !! ! ! !!   !!   qªõÿþÿþÿþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!!75Ó×þþþþþþÿþþþÿþÿþþÿÿþþþþþþþþþÿþúÕ�}}v}€€}}}}}}}}}}}}}}}}}}}}‘€}‘‘}}}‘}‘‘}}}}‘‘€}€}‘}}‘‘‘‘‘¡‘}‘‘€}‘‘‘‘‘‘€‘‘‘‘‘€€€‘€‘‘‘‘€‘‘‘€‘‘‘‘‘¡‘€€‘‘‘€‘‘Úþÿÿÿÿÿꙑ€‘¤‘‘‘‘‘¡‘‘‘™‘‘‘¤‘€‘‘‘¡‘€‘‘‘¤¡‘‘¡¥‘‘¡¤¡‘‘‘‘‘‘‘¥‘‘‘‘‘¡¥‘‘‘‘‘‘¡‘‘‘‘¤¡¥¤‘€‘‘‘‘‘¡‘¤‘‘‘‘‘‘‘¡‘‘‘¤‘‘‘‘‘‘‘€‘¢™‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡¡‘úÿÿû¤‘‘€€}€‘‘€}‘€‘‘‘‘‘‘‘‘€}‘‘‘‘€}�‘€}‘}€‘}‘‘‘‘‘€}}}}}}}~€}‘€}}}}€}}}}}}v}}}}}}}}}}}‘}v}}v}v}}wv}}}vÿüv}˜õÿõv}}v}}wvv}}}}v}}vÙÿñ˜vuvvvvvßÿ×vvvuvvvwvvvvvuvvvvvvuvuvvvvuouuuuouvlovvuullvuuvluvluvvvvlououllluvllltClouuuuulultCCltlttlZutllulCCCCCZlutuCCCCCClttCCCCCZCCCCƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;!!!!Bóÿÿÿÿÿ÷_!!!;!!!!! ! ! !!! !!! ! ! ! !! p¥íÿþÿþÿþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!7ÓÓÿþÿþÿþÿþþÿþþþÿþÿÿþþþþþþþþþþþúÕŽs}v}‘}}}}}€}}}}€}}}}}}}}}‘}}‘€‘}}€‘}}}}}€}€€€‘}}‘‘‘‘‘‘‘}}‘}}‘‘}€‘‘‘‘‘‘‘‘€‘‘‘‘€€€‘€}}‘‘€€‘¡¡‘€€‘‘‘‘‘Úýÿÿÿÿÿæ‘‘}‘¡¡‘€‘‘‘‘‘€‘¡‘‘‘¡‘‘‘¤¡‘‘€‘‘‘¡¡¡¤‘¤¡‘‘¡¡‘�‘‘‘‘‘¡¡‘€‘‘¥¡‘‘‘‘‘‘‘¤‘€‘¡¥¡¡‘€‘¤‘‘‘‘‘¤¡‘‘‘‘‘‘‘¡¡¤¡‘€€€‘‘‘€‘¥‘‘‘‘‘‘¡€€‘€€‘‘‘‘‘‘‘‘¡‘‘‘×ÿÿÿÚ‘‘}€€}€‘‘‘‘}‘¡‘‘‘‘}}‘‘€}‘‘}}~€}}‘}‘}‘‘}‘‘}€}}w}}}‘‘€}}}}}}}}}}}}}}}}}}}}}w}}}wvv}}ww}}wv˜ÿôv}˜ÿýÇww}}vv}vv}v}}}wvvv˜ñýÓvvvv}vv×ýßvvvvvvvvvvvvvvvuovvvvlvvvvvuooovuuvluwvoluuvvouoovuouvvvououvlCluvltllultuoooulCtllCullltolluultllCCClCCltlCCCCCCZlCCCCZCCCCZtèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!;Zóÿÿÿÿÿ÷_!!#!!!#!#! ! ! !! !! !    !! qªõÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!$Ó×þþþþþþþþþÿþÿþþþþÿþþþþþþþþüÿþúÖ�}}}}}}}}}€‘}}}}}}}‘}}}}}}}}€}}}}€€‘}}}}‘‘‘}€‘‘}}‘}‘‘}‘‘‘}‘€}‘‘‘}€‘‘‘€}}‘‘‘}}‘‘‘‘€‘€‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€Úþÿÿÿÿÿꙑ‘‘‘‘‘‘‘¤¡‘‘‘‘‘‘‘‘¥‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘}¡¥¡¥¤‘‘¡¥‘‘‘‘‘¥‘¤¤¡‘€‘‘‘€‘‘‘‘‘‘‘¤‘‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘¡™‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘€‘ûÿÿý‘‘‘‘¡‘}‘‘‘¥€‘‘‘‘‘€}‘‘}‘‘}‘‘}}}}‘‘}�‘‘‘‘‘}}~�‘}}}}}}w}}}}}}}}}€ww}}vv}w}ww}w}}}}}}}}vw}w}žÿà}Óÿ÷wwvv}}}vvvvvvv}vvwvwÓÿà{vw}vvwÇúñ˜vvwvuvvvvuuuvvvvvvuvvuuuuuvuvvuvvvullvvllvovvuvulluullulluvluutultluutuuululoullouuuoullltCCCCCCCtCCCttCClCuCCZCClCCCtCouCCCCÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@! !!Bóÿÿÿÿÿ÷_!!!! !! ! !#!!# !!! ! !  =q¥íþÿþÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!77Ô×ÿþÿþÿþÿþÿþþþþÿþÿÿþþþþþþþþþÿüú¬��}}}}}}‘‘‘}}}v}}}}}}€}}}}}}‘€}}}}‘}}}‘‘}}}€}‘‘€}}€}‘‘‘‘}}}€}€¡‘‘€‘‘}}‘‘€}}€€€‘‘‘‘}€‘‘€‘‘‘‘‘‘‘‘¤¡‘‘€‘¡‘‘‘‘‘Ùþÿÿÿÿÿæ‘‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘¡¡‘‘‘‘‘‘‘‘€‘€‘‘‘‘€‘¡¡¢¡‘‘¤¡‘‘‘‘¤¡¡‘‘‘‘‘‘€‘‘‘‘‘¡‘‘‘‘‘‘¤¡‘‘‘‘‘‘‘‘‘‘€€€‘€‘¡¡‘€‘‘¡¡‘‘‘€‘‘‘‘¡‘‘¤‘‘‘}€‘‘‘‘‘‘‘àÿÿÿÚ‘‘¤‘€}‘‘}}‘¡‘€€€‘}}‘‘}€}}‘‘}}}}‘‘€‘‘‘}}}€~}}}}}}}}}}}}}}€}}}}}wvvww}w}}w‘vww}}w}}}}vÓÿ×}èÿ×}}vvwvvvvvvvvvwvvw}wž÷÷œvwvvv}ž÷÷œv}vvuuvvuouvvvuuwvvvvuoovvvuvuuuvuuouuuuuvuuvvuuouuulltlluvuoouvlluvuvuuluotlultuvlltllZlCCCCtCCZCCCCCtlCCCCCCultCCCZtltlCCZx÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!9Yóÿÿÿÿÿ÷_! !!! !#!;! !#! ! !!  !  =pªõÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5!77ÓÓþþþþþþþþÿþÿþþÿþþÿþþþþþþþþþüÿúÕ¢�}}}}}w}}}}}}}}‘€}}}}€}}}}}}}}}}}}}€}}‘}€€‘}}€‘}}‘‘‘}‘}‘‘}€‘‘‘€}}¥¡}}‘‘‘‘‘}€‘‘€‘‘€‘}‘‘‘‘‘‘‘‘€€€€‘‘€‘‘‘‘‘‘‘‘€€ÚþÿÿÿÿÿꙀ‘¤‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘€€‘¢™‘‘‘‘‘‘‘‘¡¥‘‘‘‘‘‘‘¡¤‘‘‘‘¡‘‘¤¤‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘¤‘‘‘‘‘‘™‘‘‘€‘™‘‘‘‘‘‘‘‘‘‘‘‘‘€€€‘‘€‘‘‘‘‘‘‘¤‘€€‘‘‘‘‘‘‘€‘¥ûÿÿþ™‘‘€‘‘‘€}‘€‘‘€€‘‘‘‘‘‘‘‘‘‘‘}}‘‘‘‘‘}€}}}}}}}}‘}}}}}}}}}}}}}w}}}}}}}}}}}}}}}v}ww}}}w}}ww}vw×ÿ×v�úýž}}}wvvw}}v}wvwvvvwvèý×vvvvvv˜õúÇ}vuvvvw}|vvvvvuuvvuvvvvvuuuvvwvuvvvuvuoolvvuullouoououvuluvuluotlllltllllllllCClttCltllutluClulllltCtlCCutttttllZClCClCCCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!=Zóÿÿÿÿÿ÷_!;!#! ! !!!!! !! ! !  !  qªíÿþÿþÿþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè×7Ó×ÿþÿþÿþÿþÿþþþÿþþÿÿþþþþþþþþþÿüúÖ¢�Ž}}}}}}}w}v}}‘}}}}}}}}}€}}}}‘}}}}w}}}}}}}‘‘‘€}€‘‘‘‘€}‘}€‘‘‘}€}}‘¡¡€}‘€‘‘€‘‘‘‘‘‘€}}‘‘€€€‘‘‘€‘‘€}‘€€‘‘‘‘‘‘‘‘‘€Úýÿÿÿÿÿæ‘€€‘¡‘™¡‘€€¤‘€‘¤¡‘¥€€€‘‘‘‘‘‘™‘‘‘¥‘‘¡¥‘€€‘‘‘¥‘‘‘€‘¡‘‘¡¤‘€€‘‘‘‘‘‘‘‘‘‘‘¥¡‘¡‘‘‘‘€€‘¡‘‘€‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘€€€€‘‘‘¤‘‘‘‘‘‘‘}}‘‘‘€‘‘‘}‘‘Ôÿÿÿæ}‘€‘}€‘‘‘‘‘‘‘‘¤‘‘‘‘‘€‘‘‘€}}€‘€‘‘‘€}}}}}w}}}€}}}}}}€€}}}}}}}}vv}}v}}w}}}}v}vv}}v}w}wvvvwßÿÙv˜ÿýžvw}vvv}˜Êž�}vvvw}vvv{ßÿßvvvvvv˜õúžvvvvvuvvvw}vvuvvvuvvuuvvvvuvvvvvvuuvvvluluuolluvvuulluvtotouuoulltltllluCltlulCCllCCluuvuulCZlCCtlCCtlCtllluultlCltCCtlCCCC›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!! ;!Yóÿÿÿÿÿúx!!;!! ! !!!! ! ! !!    !s¥õÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ$5!Ó×þþþþÿþþþÿþÿþþÿþþÿþþþþþþþþþüÿúÕŽ}w}}}ww}}}}}}}}}}}}}}}}}‘}}}}}}}}}‘‘‘€}}}}}}}}}}€‘€€}€‘}‘€‘}€€}‘€‘‘€‘‘€€}‘‘‘¡‘}€€‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘Úþÿÿÿÿÿæ‘‘‘‘‘~€‘‘€‘¤‘€€¥‘‘‘€‘‘‘‘‘‘‘‘‘‘‘¡¡€‘¡‘‘‘‘‘€‘€‘¥‘‘‘¥¡€‘‘‘‘‘‘‘¤‘‘‘‘‘¡¤‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘€‘÷ÿÿÿ¥‘‘‘‘‘‘}‘€‘‘‘€‘€}}}‘‘}}}€}}}}‘}}€‘}}}}}}}‘‘}}}}}}}}}}}}}}}ww}v}‘}v}}}w}}v}}Úÿà}™ÿý™vvv}}v}žúÿýàvwvvv}vvvÇýèwvvvvvžõýÇvvvvvvvvvuvvuuuvuvvvvvvuvuvvuovuoovvuuvuuvvuvuvtvloulvwouullotluooulltltlluluttluuullCCllllllulCCltlCtltCCCllCCCtCCCClZCCCxòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Bóÿÿÿÿÿ÷_ !!#!!!!! !! !!  !=q¥íÿþÿþÿþÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ7Ó×ÿþÿþþþþÿþþþþÿþþÿÿþþþþþþþþþÿüúÕ�sv}}}w}}}}}}}}vv}}}}}}}}}}}€}}}}‘‘€‘€‘}}}}}}}}}}}}}}}‘‘‘‘€}}‘€€‘}}}‘}‘‘‘€‘‘€‘‘‘‘¡€}}‘‘¤¡‘€€‘‘€}‘€‘‘€€‘‘‘€€€‘Úþÿÿÿÿÿæ‘‘¤¡‘}‘‘‘¡‘‘‘¡‘€€‘‘€‘‘‘¡¡‘‘‘‘€‘‘¤‘¤¥¤€€‘‘‘‘€¥¦¥‘‘‘¡‘‘‘‘‘‘‘‘‘‘¥¥‘€‘€€‘‘‘¤¡‘‘€€‘¥¡‘‘‘‘€‘¤¥‘‘‘¤¥¤¤¤¡‘‘‘€‘™‘‘‘}‘‘‘‘¤‘‘‘€€}}}§ÿÿÿõ€‘€€‘‘‘‘€‘€}}‘‘‘}‘€€}}}}}}‘‘€€€}€}‘‘‘€‘}}}}}}€}}}}‘}}}w‘}}}}}}}‘}wv}}w}wv}}w}}wvv}}Óÿè™ÿý˜vv}}wvÙÿÿÿ÷œvwvvw}vvžýèvvuvwžõúžvvwvvvwwvuuvovvvvuw}vvtvvuououvvluvuuvlovuluuvvuuluouvvuvvllllluuulullCttlulllouuuoCCCCCCtltttlCCtlCCtllCCCZlCCCCtCCCCCCZCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!#!!Yóÿÿÿÿÿ÷_ !!!!;;! ! ! !;!   !   !  !=q¥õÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77!!!75ÓÓþþþÿþÿþþÿþÿþþÿþÿÿþþþþþþþþþþþúÕ�Žwv}}}}}v}}}}}}}}}}}}}}€}}}}‘}}}}}}}~}}}‘‘‘€€}}}}}}‘‘}€}}�}‘€‘}}‘‘€€‘‘}}‘€‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘‘€‘‘‘‘‘‘‘Úþÿÿÿÿÿæ‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘¥‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘€€~‘¡‘€‘‘‘¡¡}‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘€‘‘¡¡‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€‘™‘¡‘‘‘‘‘‘‘‘‘‘‘õÿÿÿ§‘�‘‘‘‘‘}€}€‘‘‘}‘‘}}‘}}}‘‘}}}}}‘}}}€}}}}}}}}€}}}ww}}}}}}}}}w}}w}}vw}}w}vw}}v}}ww}žÿòv�þý™wv}vvÙÿÿÿú˜wvvvvvvwvžýñvwvvvžúúžvvvvvvvvuvvvvuvvvuvvuouuouvvvouovvvllvvvuuuoouvouuluooultluuuullvulluulllltutluollltuuuultCCllttltttlZCCZCltlZCCCCZtZCCll”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=;!!!Bóÿÿÿÿÿ÷_!!! ! !! !!!! !   qªíþþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777!$7!$!Ó×ÿþÿþþþþÿþþÿþÿþþÿÿþþþþþþþþþþþúÖ�Žvv}€}}wv}}€‘}€‘�}}}}�‘‘}}‘‘}}}}}‘}}}‘}}‘‘‘‘‘‘‘€}}}}}~}}‘‘‘}}}}‘¡‘‘€}€‘€‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘¡‘‘‘Ùýÿÿÿÿÿà‘€€€‘‘¥¡¥¡‘‘™‘¡¡¤¥¡‘‘‘€‘¤¡‘€¤‘‘¤‘€}}}€‘}€€‘¡‘‘€€‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘¡¥‘‘€‘‘€€€‘‘‘‘‘¤¤‘‘‘‘‘‘‘¡¤¤¡‘€‘‘}‘‘¤‘‘}‘‘‘‘™‘‘‘‘‘‘‘‘‘‘‘‘žÿÿÿõ}}}~}}}}‘‘}}}‘‘‘‘‘€€~‘‘}‘}}}}}}}}}‘}}w}‘}}}‘‘}}v}‘‘}ww}}}}}}vv}v}w}vvwvwv}}‘}}v}}}}}}w}˜ÿû}òþÓ}vv}w}ž÷ÿýÙvvvvvvvvvwÓýßvwvvvÇýò˜vuvvuvvuvvvvvwvvvuvulooouovvuuluvvvlluvuuolvuvvulvuuuuuoltluvuullltltllCCCouvuulCCCtluuuullttluullllllllCltullCCCtllCC@CuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@!!;!Yòÿÿÿÿÿ÷_!! ! !  !! ! pªõÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!57Ó×þþÿþÿþþÿþþþþÿþþÿÿþþþþþþþþþþþúÕ�}}w}}}}}}}}}}}}}}}}}}}}}}}}}‘}}}}}}}‘‘�‘}}‘‘}}}}~€~}€€‘}}€‘‘}‘‘€€€‘€}€}‘‘‘‘‘‘€‘€€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘Úþÿÿÿÿÿ晑‘‘‘‘‘€€‘‘‘‘¡‘€‘€¥‘‘‘‘‘‘‘‘¡‘‘¡¡‘¡‘‘‘‘‘‘‘¤‘‘‘‘‘¤‘€‘‘‘¤‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘�}‘€‘‘‘‘‘‘‘‘‘}‘‘íÿÿÿÓ‘‘€‘‘‘‘€}‘¡€}‘‘€‘}}‘‘€}‘‘‘‘}}€}}}}}}‘}}}}}}}}}}}}v}}}}‘w}}}}}w}}}www}v}}w}vv}�}vvòÿž}Ùÿñw}wvwvvv˜�wvw}}vyvvv×ýÙvvwwvvÙÿávvvvvvuovvvvwvvuuovvvvvvvouvvvvluuvlovuvluuvuuulluoooluuollluuuuClouluuuuutlllltutuutlllltCllCltCCCltuCCllZCCCCCCtlCCCCCÊýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ=9!!!Yóÿÿÿÿÿ÷_!#!! !!! ! !! !  ! =qªíÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ7!!!!77Ó×ÿÿþþÿþþÿþþÿþÿþÿÿþþþþþþþþþþþÿú¬Ž}}}}}vv}}}vvvvvvv}}}€}}}}}}v}}}}}}}}}‘‘‘}€}w}}}}}}}}}}}‘‘€€‘‘}€€‘}‘‘‘¡‘€}€‘~‘‘‘¥¡‘‘‘‘€€‘‘‘‘‘‘‘™‘‘‘€‘‘‘™¡‘‘¡àþÿÿÿÿÿꥑ€‘‘‘€€}}‘‘‘€}}‘‘¡‘‘€€‘‘‘¤¤€€‘‘¡‘‘¡‘¡‘¡¤‘‘‘€€€‘€‘‘‘‘¤¥‘‘‘¤¡¤¡‘‘¤‘‘‘™¡¡‘‘€‘¥¤‘‘€‘‘¤¡¤¡‘‘™‘€‘‘€‘‘‘‘‘‘‘‘€‘‘‘‘}}‘}‘‘‘‘‘‘‘‘¡‘™ÿÿÿû‘}€‘¡‘‘‘‘‘}}}}}‘‘‘¡‘€‘‘}€}}}}}}}}}€}}}}}}}}}}€}w}}}}}w}‘§èÙw}€}wvvv}vvvvww}€}v{àÿÙv›ÿúwww}wvvvw}}vvv}}vvßüÓvvw}v{èÿÙwwvvvvvvuvvwvwvulvvuvwwvuuoluuvulouuuuoluluvvluolClllllulllCluullluuuvuuulollCtltlouvoCCtCCtlZCCClZttulCCttCCCCCZCCC@CCZ{óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!Bóÿÿÿÿÿ÷_!#!!!#!! !!    $p¥õÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7$!7$7!$777ÓÓüÿþþÿþþþÿþþÿþÿüÿÿþþþþþþþþþýþúÖ��}}}}}}}}}}}}}}}}}}}}‘}}}}}}}}}}}}}}‘‘}}}}}}}}€‘}‘‘€}€}}€€€€‘€‘‘}}€‘€}‘‘‘€€€‘€€€‘‘€€€€¡‘€‘‘‘‘~‘‘‘~Úþÿÿÿÿÿæ‘‘‘‘‘€‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¤‘‘‘}‘¢‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘~‘‘‘‘‘‘‘¡‘‘¤‘‘‘‘‘‘‘‘‘¡‘€€‘¤‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘€€‘‘}èÿÿÿÚ‘‘‘‘‘‘}}‘‘}}‘‘€}‘€}‘‘}}‘€}}}‘‘}}}}}}‘}}}}}}}}}w}}}}žõþÿý™}}}}}w}}}}}w}w}}}}vwvw}žÿ÷}�èÿ×}vvw}vvwwwwvvw}wvvvvž÷õ˜uv}vvžõýÇvvvvvvuvvwvvvvvvuuvvovvvluuvvvvvoovovvulvuvvluluuuutuvuvuluuuvllutltluluultttlltlllotttlltCCCltttllllCCCCCCtCCZlltCCCCltáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;!#! Bóÿÿÿÿÿ÷_!!!!!!!! !!     $qªõþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7!57!7ÓÙÿþÿþÿþþÿþþÿþÿþÿÿÿþþþþþþþþþþþúÖ Ž}‘}}€‘‘‘}}}}}}}}}}}}}€‘}v}}}}}v}‘€€}}}}}}}‘‘‘}}‘‘‘‘‘‘‘‘‘‘}}}}‘‘€€€}€}}}€€}€‘‘‘}}€‘‘}‘‘€‘‘}~‘‘€‘‘€‘‘}‘‘×þÿÿÿÿÿæ‘‘‘¤‘‘‘¥¡€‘‘¥‘€€‘‘‘¡‘‘‘‘‘€‘¢‘€‘‘‘€‘‘€‘‘‘‘‘¢‘‘‘¤‘‘‘‘‘€‘¤¡‘‘‘™¡¤¤¤‘}‘‘™‘€‘‘‘‘¡‘‘‘€€‘€€‘‘€}‘‘¥¢¡‘‘‘‘€€‘‘‘‘‘‘}}‘‘‘‘‘¤‘‘‘‘‘‘‘}‘ÿÿÿý™‘‘‘‘‘}€‘}}‘�}}}‘‘‘}}}}€}}}}}}}‘‘‘‘‘}}‘‘€}}}w}}}w}‘}}}}}}wÓ÷ÿÿÿÿÿ™}‘wvw}}}v}‘‘}vw}w�÷þžÓÿú˜w}}vvv}vvvvvvvvvvuv×ÿßvvvuvvÙÿèuwwwwvvuouvuvuuvuvuoltuvvvovuvuulollvvuovuuuuuulvvllvvvuluvvuutuvvullClluoluullltuCCCCCCCCCCltuulCCCCCCCZCCCttllutCtuuuÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9!!!Yòÿÿÿÿÿ÷_! !   !     !  !qªõÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ!!7!7ÓÓþÿþþþÿþþÿþþÿþÿþþÿþþþþþþþþþþþúÕ�}}}vv}}}}w}w}€}}}}}}}}}}}}}}}}}}}}}}}‘‘}}}}€‘}€}€€€€}€€€‘‘}}€‘‘€‘€‘‘€€€}€€€‘€‘¤‘‘‘‘}‘‘‘‘‘‘‘‘‘‘€‘‘Úýÿÿÿÿÿꙑ‘‘‘‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€‘¥‘}‘¥‘‘¥‘€‘‘‘‘¤¡€€‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘�‘‘‘€€‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘}‘‘€æÿÿÿæ‘€€‘‘}€‘€}€€}}€}}€€}}}}‘}}}}‘}}}}}}}}}}}}}}}™àüÿÿÿÿÿÿÿž}}}}wv}}w}}wv}}w}vw}}v}Óÿñvèÿñwvwvvvvw}vwvvv}vvž÷õ˜v}vvv˜òþÌuu}wvvuvvvvvvvulvvvvvvvvuvuouvvuvuuvvuvllvvouotulvvuluvuluutuuloltlluultotlluultCltutluutltttClllCtltlZCClCtltCCCtCCCllxòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ9!!!!Yóÿÿÿÿÿ÷_!!! !!!! !!!!qªíÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ$7557Ó×ÿýÿþÿþþÿþÿþÿþÿþÿÿþþþþþþþþþþþú¬s}}}v}}v}}}}}}€‘€}}}}}}}v}}}}}‘‘‘}}}}}€‘‘‘€}}€}}€}}}}}}}}€‘¡‘‘‘}‘¡‘€€}‘‘‘}}‘‘‘‘}‘‘}‘‘}‘¡‘}‘‘€‘¡‘‘€‘‘}€€‘¥Úþÿÿÿÿÿæ‘‘‘‘‘€‘€‘‘‘‘‘™¡‘‘‘‘‘¡‘‘‘¤‘‘¤¥‘‘€‘‘‘€‘‘‘‘‘‘‘‘€¡¡‘‘‘€‘‘‘€€‘€€}}}‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€}‘¡‘™‘}}}€‘€‘‘‘¤‘‘‘‘‘‘‘‘‘€}‘‘‘¥ÿÿÿþ™}}}}‘¡‘}€‘‘‘}}€‘‘‘}}}}€}}‘‘}}ww}}}}}}}}}}‘‘}}}}}}€‘™èýÿÿÿÿÿýÿÿÿÊwvw}‘v}€}}}vv}wvvvvv}vvwúýžv˜ûþà}wwvvv}}vw}vu˜ñý×vvwwvv×þñ�uvvvuuvvwwwvvvuouvvvuvvvuvvuoovvvuvvuulluv{vltluvuvultulluuuuluuulCCuvuvuCCCtlClCCClltuvultllCCCCttuullltCZlulCCCtCCCCCÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!#9Zóÿÿÿÿÿú_! !!  !      ! =s¥õÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77!7!7ÓÓþþÿþþÿþÿþÿþÿþþÿþÿþþþþþþþþþþþúÕ�}}}}}}v}}}}}}}}}}}}}}}}}}}}}}}}w}€}€‘}}€€}}}}}‘}‘‘€‘}€€}‘‘€€‘‘}€€‘‘‘}‘‘}€‘‘}€‘‘‘€‘‘‘‘‘‘‘‘‘‘Úýÿÿÿÿÿꙑ€‘‘‘¡‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘}€‘‘‘‘‘€‘‘‘‘‘‘‘‘‘€‘‘€‘‘¤‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘€€‘‘‘‘‘‘‘}�‘‘‘‘€€‘‘‘€‘‘}Ùÿÿÿë}€€‘‘€}}€‘‘€}}}}}‘}}€}}}‘}}€}}}}‘}}}}}}}wšèþÿÿÿÿÿúÓ‘÷ÿÿ×}}w}}w}}}w}}vw}w}}w}w}wwžÿõwžÿýß}wvvw}vvvvvvvv˜èÿè{vvvvv�÷þÊvvvvvuvvvvvvvuovvvuuvvuuvvuvvuuuvuvuvvluuuvvuuoulvuluuuvtlulululluulluuotllutuulttltulCotltluCCZCllllZCCtlCCltlZCCtCZCC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Bóÿÿÿÿÿ÷_ ! ! !! =}¥íÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ557=777!7××ÿÿþþþÿþþþÿþþÿþÿþÿþþþþþþþþþþþúÖ¢Ž}}}vv}}�}}}}}€‘€}}}v}‘€}}}}}}}}‘€}}w}}}w}€}}€‘‘}€‘}€}}w}‘‘€€‘‘‘‘‘‘‘‘‘€~‘‘€}‘¡€}}}€}}}€€}}}‘‘‘€‘¡‘‘‘€€×þÿÿÿÿÿæ‘}}‘‘¡‘}}€‘‘€€}€‘¥¥‘€‘‘‘€€‘‘€‘‘€‘¤¤‘‘¥¡¤¡‘‘‘‘‘¤¥‘‘‘€‘‘‘‘¡¤¡¤¡‘‘‘‘‘‘‘‘‘¥¥¡‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘}€‘‘‘€€‘‘‘‘‘‘€‘}‘€€}‘‘¥‘‘}}}€}‘}‘þÿÿÿ™}}‘‘‘}‘}}‘‘‘‘‘‘‘}}}}€}€}}}‘‘‘}}}}}‘‘}�}}}‘‘‘‘}™èýÿÿÿÿÿúØ‘}æÿÿàw}wvvvvvvwvwv}w}v}}w}ww}èÿàw}žýÿõ˜vvvvvwwvvvu˜õÿõ™vvwwv˜èÿà{}wvvovuuuvvvoluvoluwwuuuulluvvòýßuvuuvwvollvuouulltvuolluululltlulttlCCCtuollullluulttlClutlCllCZCCCCltlCtCCCltlCCCC]ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@@!!Yòÿÿÿÿÿ÷_ !! !!!!!!!!   !=ެõÿÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777557777ÓÓÿþÿþþÿþÿþÿþÿþÿþÿÿþþþþþþþþþþþúÕ¢‘wv}}}}}}}v}}}}}}}}}w}}}}}}}}€}}}}}}�}}}}}}€€€}}}}‘€}}}€}‘‘€€}‘‘}}€‘‘€‘€‘€}€}€‘‘€‘‘‘}€€‘‘‘‘€‘€‘‘‘‘‘‘‘Úþÿÿÿÿÿ晑‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘¤‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘™‘‘‘‘‘‘�‘‘‘‘‘}‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘€}€‘‘‘‘}€‘‘‘‘}‘‘×ÿÿÿõ‘}}‘‘‘€}}}}‘€€€}}‘}}}}}�}}}}}}}}™èþÿÿÿÿÿû×�}vÙþÿß}}}}}}}w}}}w}v}vw}}}vvwv}v˜÷ÿ×w}žúÿýÙ˜vvvvvwv†èþÿáwvvvw{×ÿñ˜vvvvvvuuvvvuvvvvvvuovwvuvvvvuuvÇýÿÿþßvvluvvluuuuuuvlCuvlluouvutuuulutluuCluluuCltuCltulllltlltCCttCClttCClZCCCZCCulZCCCÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Bóÿÿÿÿÿ÷[!   !  qªíþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5!77!Ô×ÿþþÿþÿþÿþÿþÿþÿþÿÿþþþþþþþþþþþúÕ�}q}}}}}vvvvw}}vvvv}w}w}}}}}€‘€}‘‘}}}‘€}€}}}}€}‘‘€}}}}‘€}}‘‘‘€}‘‘‘}}}€‘€}}}}}}}‘‘¡‘‘‘‘‘€‘‘‘‘€}€‘‘‘}€¡¤‘×þÿÿÿÿÿà‘‘€}€€‘‘‘‘¤¤‘‘€€}~‘€‘‘‘‘‘‘‘‘‘‘™‘¡€€‘‘€€}‘‘¥¤‘‘‘‘‘‘‘™‘‘€}}‘‘‘‘‘‘¤‘}}‘¡¢¡‘‘‘‘‘‘‘€‘‘‘‘¤¡‘‘‘‘‘‘}‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘}€‘}}€ýÿÿÿÓ}}€€€}}}‘‘}}}}‘‘‘‘‘€}}}}}}}}}}}}€€}}}}‘}w}}v˜æþÿÿÿÿÿýÚ‘}vv}wv×ÿÿÙwwvw}}}}w}wvvw}}www}w}ww}™úþÙw}˜àÿÿÿýèÌÊàõýÿÿý×vvwvvv{ßÿ÷ž}}vvuvwvovvvuuvvvvvvuvvuvuvvvvvußÿÿÿÿÿú›uuvulvvuouvuulvuuuulluuuvuulCluvCCCuvwvtCtvutuuuCtltlZCCCCtlCtullZCCCCCllCCCCCu›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ !!!!Yóÿÿÿÿÿ÷[!!! !!    !!!pšõÿÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75777!57775777ÓÓÿþþþþÿþþÿþþÿþÿþþÿþþþþþþþþþþþúÕŽ}}}}}}v}}}}}}}}v}}}}}}}}v}‘}}}}}}€€}}}}€}}€}}}€}}}}€‘€€‘}€€€‘}€€}‘‘€}‘‘‘‘‘€}‘‘‘€€‘‘‘‘€€‘‘‘€Úþÿÿÿÿÿæ‘€€€€‘‘‘€€‘‘‘‘‘‘€‘‘‘�‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¥‘‘‘‘‘‘€€€‘™‘‘‘‘‘‘�‘‘‘€‘¡‘€‘‘¤‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€}}€€‘‘‘€€‘‘‘€~}‘€€€‘Óÿÿÿ÷€‘€}‘‘}}}}€}}}}}}}}}‘}}}}}}}}™æþÿÿÿÿÿý×}}}}}}}vÓþÿÙ{}}w}w}ww}}}vw}}}}vw}}vwwwvwžýÿèv}™æýÿÿÿÿÿÿÿÿèžvvvwww˜èÿ÷žvvvvvvvvvvvvuuvvvvvvuuuuvvuuvuvvoèÿýúÿÿÿÿç{vvlluvuluuuluuoluuovoCovuCtlluutlltuullltllltltltCClttClCltCllCCCCCZCCttCCCCuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!@óÿÿÿÿÿ÷[!!!! !=qªíÿþÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77775!7$57Ó×ÿþÿþÿÿþÿþÿþÿþÿþÿÿþþþþþþþþþþþú¬�Ž}vvwvw}‘€}w}w}}}}‘‘}}}}}}}}}v}‘}}}‘¡‘‘‘}w}}€‘‘}}}}}€€}}}}}}}}€€€}}}‘‘€‘‘‘}}€‘‘‘€€‘‘‘‘‘‘‘‘}€‘‘‘¡‘‘Úþÿÿÿÿÿæ‘‘‘‘¤‘‘‘™¡¡¤‘‘‘‘‘‘‘‘‘¡‘‘‘¤‘‘‘‘‘¤‘}€‘‘‘‘‘‘‘€‘~‘‘‘‘‘~‘¡¡¥‘‘‘‘¡‘‘¤‘€‘‘}€‘‘€‘€‘‘�}€€‘‘‘¡¤‘‘¤¤‘‘‘‘€‘‘}}‘‘‘}}}}‘¡‘‘¡‘‘¥ûÿÿÿÓ€€‘}}}}‘‘}ww}‘‘}€‘}}€€}}}}}}}}w€šèþÿÿÿÿÿýÙvvvwwwÓýÿ×w}}v}}vv}}wvvvw}}vwwv}}wvvv}}}w˜õÿüÊw}ž×Ùßß×›wvvvvvwwž÷ÿõ˜vuuvvvvvvvvwvuvvvvvvuvoouvwvvulluu÷ÿ›{úÿÿÿÿýÇvtuvullllluvvuuuuuuoCtvuouuluvuutClCCttlCtlCClttlCllltuttlttCZluuCCCtuCCtCCÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!;9!!Yóÿÿÿÿÿ÷_      !!  =}ªõÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777!!7757ÓÓþÿþÿüÿþÿþÿþþÿþÿþÿþýþþþþþþþþþúÕ�}}}w}}}}w}}}}}}}}}v}}}}}}}}}}}}}}}€€}}‘}€}}}}€€€}}}€}}€€}€}}‘‘}‘‘}€‘~€}‘‘€€‘‘€}‘‘€‘€‘€€‘‘‘€Úþÿÿÿÿÿæ‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€‘‘‘}‘‘‘‘‘‘‘‘‘‘}€¡¡€‘‘‘‘‘€‘‘‘‘‘~€€‘¡‘}€€‘‘‘€�‘‘‘‘€~‘‘‘‘‘‘€€‘‘‘‘€‘‘€‘‘‘‘‘}}‘€‘‘‘‘}‘€€‘€™‘€Óÿÿÿü‘€}€‘}}‘}}}}}}}€}€}}}}}}}}}}}}}}™àýÿÿÿÿÿýÙ�}}}}}}vw}žýÿ×ww}w}wvw}}www}vwwwwv}vwv}wvv}wæÿÿúÇwvwww}vvvuvvvv{Ó÷ÿÿè˜vvvvwwvvwwvvvvvuvvvvuuuvvvvuvvuluuýú{oèÿÿÿÿÿÿò{uuuulvuuuuluvlollulluuvutultlltlttluCCtltuCltlltCCltlltCCllClttCCClZClZCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!!!!Bóÿÿÿÿÿ÷[!! 9sªíÿþÿÿþÿÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77!5!75757××ÿÿþþÿÿþÿþþÿþÿþÿÿÿþþþþüþþþþþþúÖŸ}w}}w}}}vvvw}}}}}vv}}}}|}ww}v}}€}}}€‘}vv}}v}}}}€€}}}}}}‘‘}€€}}}€‘‘‘}‘}}€}‘‘‘‘}}}€‘}€‘€€}}€‘‘‘‘‘‘‘€€‘‘Úþÿÿÿÿÿæ‘‘‘‘‘‘‘‘‘}‘‘™‘€‘€€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¥¥¡‘‘€‘‘¥‘‘‘€€‘‘€‘‘‘‘‘¤¡‘‘‘‘¥¥¡‘}‘}€‘‘‘‘‘‘‘‘‘‘‘‘‘€}}}}}}‘‘‘‘€}‘‘€‘‘‘‘‘‘‘‘‘€}}}€}÷ÿÿÿà€€€}‘}‘‘‘‘‘‘€‘‘}}}}}}}}}€}‘‘‘}}˜àþÿÿÿÿÿýÚ™}vw}‘�}w}vv}}}žýÿ×}}wvww}€}}}}vv}v}}wvvvv}wvvv˜èÿÿüߘvwww}}v}{žÙúÿÿ÷Ç}wwvvvvuuuvvuvuvv}vvuuvvvvvuovvwvvvwžýè{vßÿÿÿÿÿÿÿÿ×uultvvllluvuuoCCCutlCllulCltlCluvutttlltCCClCCCuullCCtlCZCCCCCuCCllCCtèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ! !!!Yòÿÿÿÿÿ÷[!! !! !!    p¥õÿþÿþÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ775!577!77ÓÓüÿþÿüÿþþÿþÿþÿþÿþÿþþþþþþþþþþþúÕ�}w}w}vw}}}}}w}w}}}}}}}}}}w}}}}}}}}}}}}}}}}}}}}€‘}}}€}w‘}‘}}‘€}‘‘}}}€€}‘‘}€€‘}}‘‘€}}‘€‘‘‘‘}}‘‘€‘‘‘€‘‘‘‘Úþÿÿÿÿÿ晑‘�‘‘‘‘‘‘‘‘€‘}‘‘‘‘‘‘‘‘€‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘€¤‘‘‘‘‘‘€‘‘‘‘‘€€‘‘‘‘‘}‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘€‘€€‘™‘‘€€€}‘‘‘‘‘‘€}€‘‘‘‘‘‘}‘‘}}€‘§ÿÿÿý™}}}‘}‘�‘}‘�}}}}}}}}}}}}}}}˜àýÿÿÿÿÿýÚ™}}}}}}}}}}w}}}}™ýÿÊww}}}}wwv‘wv}}ww}vw}}wvwvw}vvvwwwv}˜èþÿÿüèæßßÙà÷ÿÿÿÿ÷×vvvvvvvvvvvuuvvvvwwvuvvvvvuvvuvvvvuvwÊýßwvÙÿÿÿÿÿÿÿÿÿú›uluvtluvuoutuuutlltttlutlluCllluulutCtlltlZtClCtlZCltCCllZCClZCCtZCCÌüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!@óÿÿÿÿÿ÷_!  ! =q¥íÿÿþÿþÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ577!77577777Ó×ÿÿþÿþÿþÿþÿþÿÿþÿþÿþþþýþþþþþþþú¬�Ž}}}}}}}}}€}}}}}w}}v}‘€}}}}}}‘‘}w}}}€‘€}}}}‘‘}}}}}}}‘‘‘}}}‘‘}v‘€€}}‘¤‘‘}}€€‘‘‘€‘€‘‘‘‘}€‘‘‘€}€€‘€Ùþÿÿÿÿÿà‘‘‘€}}‘‘‘‘‘‘‘‘‘‘‘‘‘€}}‘¤‘‘‘}€‘¤‘‘€‘‘‘‘™‘}‘‘€‘¥‘}}€‘‘‘‘‘‘™‘‘‘‘‘�€}}€‘‘‘‘‘¤¤‘‘‘}‘‘‘‘‘‘‘‘‘€}‘¤‘‘‘‘‘¥‘‘‘}‘€‘‘‘‘‘‘‘}}�õÿÿÿæ}‘€‘‘‘}}}‘‘€}}}}}v}‘‘‘}}}}}}}™àýÿÿÿÿÿýÚ�}}}}}}v}}}}}}všýÿבvw}}}}vv}w}wwwvvwwvvwv}wvvvvvv�ßèýÿÿÿÿÿÿÿÿ÷æžvvvuvuuvvvvvvvvvvuuuvulouvvulluuoolltuvvÌþÊvtÌÿÿÿÿÿÿÿÿÿÿÿßvuutltulCltvuuuuuluvlllttlttutllCCltoltlClluutCCllttlCCZllutCCCCCC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!! @óÿÿÿÿÿ÷Z!! !  !! !! !p¥õÿþÿÿÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7777777777ÓÓÿþÿþÿþÿþÿþÿþÿþÿÿÿþþþþþýþýþþþúÕ�Ž}v}}}}}}}}}}}}}}}}}}}}}w}}}€w}}}}}}}}}€€}}‘}}}}€}‘}‘}}}€‘€€}}}}‘‘€€€€‘€€‘¡‘‘€‘}‘€€€€€‘€}Úþÿÿÿÿÿà‘‘‘‘}€‘‘‘‘‘‘‘‘‘‘€‘€€‘‘€‘‘‘€‘‘¡€‘‘‘‘‘‘€‘‘‘€€}~‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘}‘€‘‘‘‘‘‘‘‘‘‘‘€€}™‘€‘€‘€€€‘‘‘‘‘‘€€€‘¤‘‘‘€€}‘‘‘€}}‘žÿÿÿýš‘}}}‘}}}}}}}}�‘}}}w}}}˜àýÿÿÿÿÿýà™}}}}}w}}}w}}wwšýÿבwvw}}‘wvw}}vvwvv}vv}wvv}}}}vvvvvwvvvvw˜ž×מ›vwvuvvvvvvvvvwwvvvvvvvuuuuuvvvuuvuvuuuuouvu×ÿÇvuÊÿÿÿÿÿÿÿÿÿÿÿÿüÇvlloutltluluvultloutuuClllutuCtltltCClttCClllZClllZuCCCCluCCZCCuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! !!@òÿÿÿÿÿ÷Z!!  $pªíÿÿþÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè×75577777777775Ó×ÿþÿþþÿþþÿþÿþÿþÿþÿþþþüþþýþþýþúÕ�Žv}}}vvv}}}}w}}}}}}}}}}}v}}}vw}€}w}‘‘}}}‘‘}w}‘‘€‘‘‘}}€‘‘‘‘€€}}}‘‘‘‘€€}}}‘}}}}‘‘¡¤¡‘‘‘‘‘‘‘‘‘‘‘€Úþÿÿÿÿÿà‘‘‘‘€‘‘€‘‘‘}€‘€‘‘‘¤‘‘‘¡¡‘}‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘€‘‘}‘€‘‘‘‘�‘‘€‘‘‘}€}}¡¢‘‘}€‘‘‘‘‘‘‘‘}€‘‘€€‘€€‘¤‘‘‘èÿÿÿè}}‘‘‘}}‘}}}‘‘‘‘}}‘}}‘žàýÿÿÿÿÿýà™}}}w}}}}}}}}vv}}}ww}žýÿÓvv}}}wv}}vwvv}wvvv}}wvvvvvvwwwvwwvvvvvvwwvuvvwvvvvv}vvvvvvuouuovvvvvvwvvuovwvuvvvuvvulußþ˜vvÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿò{uvulllllllulluultllulltlllClulllClututlCCZCluCCCllCCCZltlCtlZÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!!YóÿÿÿÿÿóZ!!    ! !=sªõÿþÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ775!5777777777ÓÓÿþÿþÿþÿþÿþÿÿþÿÿþÿþþþþýþþþþþüúÕ�}}v}}wwww}}}}}}}www}}}}}}}}}}}}}}}}}€}}}}‘}}}}‘€‘}}}‘€€‘€}‘‘‘}}‘‘}}‘‘‘}‘�€€‘}}€‘}€�}}}€‘‘‘‘‘‘‘‘‘€‘‘‘‘Úþÿÿÿÿÿà™‘‘}‘‘€‘‘‘‘‘}‘‘‘‘‘¤‘‘‘‘‘}‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘}~�‘‘‘‘‘€}€}€‘‘‘}‘‘}‘‘€‘‘‘‘}‘‘}‘‘‘€‘‘‘‘‘‘‘‘}‘}€‘‘€}‘‘‘‘}}§ÿÿÿÿž}‘}‘}}}‘‘}}€‘}}}}}™àýÿÿÿÿÿýà�}}}}}}}}}}}}}}}}wwvw}}všýÿÇ{vv}}vw}}wwwwvw}wvvvwvwvvvvvwvv}wvvvvw}vvwvvvvv}wvvvuv}wuvwvvvuouuvuvvuvvvuuuvvupuuvuvvoooßÿ˜uvÊþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌyvttlZltlutluulCltltlttltlCuuCtCClltlZlltltlZCtCZCZlltCCZCCƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!!@óÿÿÿÿÿ÷Z!   !  9q¥õþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7777!77577ÓÓÿþÿþÿþÿþÿÿþÿþÿþÿÿþüþþþþüþþþþúÖ Žvv}}v}}}wvvw}}}}}}}ww}w}}}}}}}}}}}}}}}}}}ww}}}}}}‘€}}}}}}}}v}‘‘}}}}}}}}}€€}€€}}‘}}‘‘‘}}}‘}Ùþÿÿÿÿÿ॑‘€‘™¡‘‘‘‘‘‘¡‘‘‘€€€€‘‘‘‘‘‘‘‘‘‘}‘‘}‘™‘‘‘‘‘‘‘‘‘‘}‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘€‘‘‘‘‘‘‘€€€‘‘‘‘‘‘‘€‘‘}‘¥‘‘€}€‘€€€€}}€‘}}}€‘‘‘€€‘æÿÿÿõ‘‘¤‘}€‘€}}}‘w}}}‘}w}}™àýÿÿÿÿÿýàš}}}}}}}}}}}}}vvvw}}}}w}}w™ýÿÓ}}wvvvv}vwww}wvw}}vw}}vwwvvvvuv}}vvwwwvovwwwwvvvvvvuvvvvv{vvvvvvvw}vvvuvvvwvuovvvvvvuouuuáü{uuÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú›vuoluvuulllultuullCtlultuvvtllZtCltltltCCCCltuuulCCCCtlluáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@òÿÿÿÿÿóZ! ! ! =sªõÿÿþþÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ757777777!57777557777ÓÓÿþÿþþÿþÿþÿþÿþÿþÿÿþþüþþþþüþþýúÖ�}}vvv}}}vvw}}}}}}v}w}}w}}}}}}v}}}}w}}€}}}}}}}€}}‘‘}}}}}}}w}}}}}‘}}‘}}}}‘}}€}€}€}€}}€}}}}‘‘}}}‘‘}}Úþÿÿÿÿÿ晑}‘‘‘‘‘‘‘€€‘‘‘‘‘¤‘‘‘}€‘‘‘€‘‘€‘‘‘‘€‘‘‘}€‘‘‘‘€‘‘‘}‘‘‘‘}}‘‘‘‘‘‘‘‘‘¤‘‘‘‘¤‘€€€‘‘€‘‘‘€€‘‘‘‘¡™‘‘‘‘}}‘¡‘‘}€}‘‘}‘}‘}€‘‘‘}}‘™þÿÿÿב‘‘€€}}}}}}‘}}}}}€}w}™àýÿÿÿÿÿýæ™}}}}}}w}}}}w}ww}}w}wvw}w˜ýÿÇ}}vvv}vwwvw}}wv}vvvv}v}}wvuvvvvv{vvvvvvvvwvvvvvvvvvuvuvvwvvvv}wvvwvvvvvvvvvvvuvvuvuuvuuvoè÷vužþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá{uullulltlulluluClltluluutlZCltClultlZCtCClltulZCCCCCtCÆúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷Y  !!!!=q¥õþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ77757577!57!5!!777777557777Ó×ÿþÿþÿÿþÿþÿþÿÿþÿÿþþþþþþþþþþþþúÕ�}w}}}}}v}}}}}wwvvv}}}}}}}}}}}}}}€}}}}}}}}}}}}}}}}‘‘}}}}}}}}}}‘‘�‘}}‘‘‘‘‘}‘‘‘}‘‘‘‘€‘‘€‘‘‘‘‘‘‘‘‘‘‘‘€‘€€€‘‘‘‘Úþÿÿÿÿÿà‘‘‘€€‘€€‘‘‘‘‘‘}€€‘‘‘‘€‘‘‘€‘‘‘‘™‘‘‘‘‘¡‘€€‘‘‘‘‘‘‘‘€‘‘‘™‘‘‘‘€€‘‘}‘‘€€‘‘‘‘€‘€‘‘‘‘‘}}‘‘€‘‘‘€‘‘‘‘‘‘‘}}‘‘}‘€àÿÿÿú‘}}}}}¤‘}}}}}}�šàýÿÿÿÿÿýàš}}w}}}}}ww}}}}w}w}}}}}w}}}žýÿž}}v}wwww}vvvv}}vvw}vvvv}}v}wvvv}wvwvvww}wvwvvvvvvvvvvvvouvvvvuuvuuuuuuuvuuvvvuluuvvouluñõ{lu�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÇvuulCuuluuutltltuuulCCZluoutlltullClltCCZCCCCCCZCCZtƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@òÿÿÿÿÿ÷Z!!!!  !qªõÿÿþÿþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ577757575!557775777777777757ÓÓþÿþþÿþÿÿþÿþÿþÿþÿÿþþýýýþþþþþüúÖ�}vv}vwv}}}w}}}wwwvw}}v}}}}}}}}}}}}}}}}}}v}‘‘}}}w‘}}}}}}}}}}‘‘}}}‘€}}‘€‘€}‘‘‘€‘€‘‘‘‘‘}‘‘}‘}€‘‘‘‘‘‘Úþÿÿÿÿÿà™‘‘‘}}‘‘™‘‘‘€}‘‘€‘‘‘‘‘‘‘‘}‘‘‘™‘¡™‘‘‘‘‘}‘‘‘€€‘‘‘�‘¡‘‘‘€€}‘€}}€‘‘€‘‘‘‘‘‘‘‘‘‘‘}}€€}‘‘‘‘‘‘}‘‘‘€‘}}‘‘€}}}‘‘€}�ýÿÿÿß}}}}}}}}}‘‘‘}}}}}™àýÿÿÿÿÿúà˜}w}}‘}}}}ww}}}}ww}}ww}}w}w}}žýÿžwww}w}wvww}v}wvww}vvwvvwvw}vwvv}vvvwwvvvv}{vvvvvvvvvvvuvvvuvuvvuolvvuuuvuuvvuuouuouoouõò{lv›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ”uutluululoutClvvttlllotluuCCtltuZClZCCCZCtCClutClZ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@óÿÿÿÿÿ÷Z !   =sªíÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7755575577=577777577Ô×ÿÿþÿÿþÿþÿþÿÿþÿþÿÿþüþþþþþýþýþúÕ�}wvvvww}}w}}}}}}w}}vw}}}}}}}}}}}w}}}}}}}}}}}}}}}‘�‘}‘}}}}}€‘‘‘}}}}€€}}€}‘‘€}}}‘‘€}€‘‘‘‘‘Ùýÿÿÿÿÿà‘‘}‘‘‘‘}‘‘‘‘‘�‘}‘‘‘‘‘€€€‘‘‘}}‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘}‘‘™‘‘‘‘‘‘‘‘‘‘€‘‘�‘‘‘€‘€€‘‘‘‘€€‘€‘‘}}}}}‘‘‘‘™}}‘€‘}‘€‘‘Úÿÿÿýš}‘‘‘}}w}€‘§àýÿÿÿÿÿûà™}}€}}}}v}}}wvww}‘}ww}žýÿžw}ww}}}}}v}wvvvvwvvvvwvvvvvvvvvwvvvvwvvvvuvvvvuuvvuuvvvuvvuvvuvvvvvvuuvvvuuvvuvvvvvuvu÷èuo›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÌyuuvlltCtuoCtulCCCCtCCltlCCCCtlluuulttlltCCZlCCt�úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@óÿÿÿÿÿ÷Z!  !qªõÿÿÿþÿÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75757777757!577757!5!7557557555775777755557ÓÓþÿþþÿþÿþÿþÿþÿÿþÿÿþþüþüþýþþþüùÕ�}vvvvvvw}}}}}w}}}}v}}wv}}}}www}vw}}}}}}}}}}}}}}}}}}}}}€€}}‘}}w}}�‘}}}}}}}}}‘‘‘‘‘€‘}}€}€€‘‘}€‘€¡‘‘‘}€}}}×þÿÿÿÿÿà�}‘‘‘}‘‘}‘‘}‘‘}€‘‘‘€‘‘‘‘‘‘‘‘‘}‘‘~}‘‘€¤‘€‘‘‘‘‘‘‘‘‘‘}‘‘‘‘‘‘‘€€�‘‘‘‘€€}‘‘‘‘‘}‘‘‘€‘‘€‘€€‘‘‘}}}}‘¡‘}‘‘‘€}‘€‘}}‘™õÿÿÿè‘}}€}}}}‘žàýÿÿÿÿÿúà™}}}}}€}}}w}}w}}}}w}‘€}w}žýÿžww}vv}wwww}vvvv}wvw}vvvvuvvvvvwvvvwwvwvvvwvvuvvvuuvvvuvuvuuvuuvuuvvvvvvvuvvvoouvvuvvuuuvúè{vu›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷›wulZlllltllZCZltClZltCCtZCCZCuutlltlltCultCCl{ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!@òÿÿÿÿÿ÷Z! !  ! =sªõþþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÔ57775575777!555577757777777777777Ó×ÿÿþÿÿþÿÿþÿÿþÿþÿÿÿþýþþþþþþþþþúÕ �}}}}}}}}vv}}wwwww}}}}}vw}}}}}}}}}}‘‘}}}}}}}}‘}}}}}‘}}}}€}~}‘‘}‘‘€}}‘}}‘‘}}€‘}‘}‘}}€‘}Úýÿÿÿÿÿæ‘‘‘‘}‘‘}‘€‘‘‘‘}€}‘}‘¡‘€‘�~‘‘}‘¤€‘™‘‘€‘‘}‘€€‘‘‘‘‘‘‘¤€€‘‘‘¤‘‘‘‘€€‘�‘‘‘‘‘‘‘‘‘‘€€€€€}‘‘€‘‘‘‘‘€}}}}}}€}‘‘žÿÿÿþÓ€}w}€}}˜àýÿÿÿÿÿúÙ�}}}}}}}w}wvv}w}}}vw}}}vvwwvv}žýÿž}}vv}}wvvvw}vwvwvvvvvww}wvvvvwvvvvvvvvvvv}vvvvvvvvvvvvvvvwvvuvvvvvvwvuuvuuuuuvuoovvvuvwúáwuu�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿß{uoluttluulltltuuuuuttuultlCClCCZlCtCCCCCCZtÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@óÿÿÿÿÿóZ!!     !qªõÿÿÿþÿÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7777777777!55!7777!77577777777777775ÓÓÿþÿþÿþÿþÿþÿþÿÿüÿÿþþüþüþüýþüýúÕ¢‘}ww}}}}}vv}}}}vw}}w}}}}}}}}v}}}}}}}}‘‘}}}}}}}}‘}}}}}‘€}}‘}}}}‘‘‘}‘‘}}}‘}}}}}€‘}€‘‘}}‘‘€~}}}}‘‘}}}€Úþÿÿÿÿÿà‘‘‘‘}‘‘€€‘‘‘}}€‘‘}}€}}}¤‘}‘‘‘}}€¡€‘‘¡‘€}‘‘€}‘‘‘‘‘‘‘€‘‘€‘‘€‘¥¡‘‘€€‘‘‘‘€€‘‘‘‘€‘‘‘‘}€‘€€‘‘‘€‘€}}}€}}ww}}€€}�èÿÿÿõ}w}}}w}�žàýÿÿÿÿÿ÷Ú™}w}}}}}}}}vw}v}‘}wv}‘ww}}wwvvvw}žýÿžw}wvwvvv}vvvvwvw}{vvv}wwvwvvwvv}wvvuvvvv}wvvuvvw}wvuvwvuuvvwwulvuuuvvwvuvvouvuuoluvuvuvv{úßvulÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÇxulultuuttlloluuuuootluuZCCCltCClZCCZCtCl›÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@óÿÿÿÿÿóY!    !  $p¥íÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7577775777555775!57575777577777577Ö×ÿÿþÿþÿÿþÿþÿþÿÿÿÿÿüþþþþþþþþþþúÕ��ww}}}w}}wvw}}}}}}}}}}vv}}v}}}w}}}}}}}}w}w}}}}‘‘}}}}}}}}€w}‘}}€}}‘}}‘€}‘‘€}}}}€‘}‘�~‘‘€€}‘‘‘‘‘€Ùþÿÿÿÿÿæ‘‘}}€€‘€‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘€‘‘‘‘‘‘¥‘}‘‘‘‘‘€‘‘‘‘}‘‘‘‘€€‘‘‘‘‘‘€‘‘}€‘‘‘€‘‘€‘‘}€€‘‘}}}€€‘€}‘‘}€‘‘}}‘‘€}}}}}žþÿÿÿÙ}€‘�™Óëþÿÿÿÿþ÷×�}‘}}}}}ww}}}}}w}ww}}www}v}}}}}}}žýÿ˜vw}}}}v}wvvv}}wvvvwvvvw}w}vvvvwvvvvw}vuvvvvvuvwvvvvv}wvvvuvvvvvwvuuuuvuvuvvvvvuuvvuuuuo{úÙ{vvÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè˜vlllullllCZlllCCCCCCltlllZltlCZllClCCC{ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!@òÿÿÿÿÿ÷Z!  =sªõÿÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777555755577775757777777777777777775ÓÓþÿþÿþÿþÿÿþÿÿüÿþÿÿþüþüþüþýþþýúÕ�}v}}w}}wwvvv}�}}}}}w}wvv}}w}}}ww}}}}}w}w}~�}v‘‘}w}}}}}}}}‘}}€}}}}}}}}}}}‘‘€}}‘‘‘}}}}‘‘}}‘‘€‘‘‘}}‘‘‘€Úþÿÿÿÿÿà™‘€~€€}}‘‘‘�‘‘‘‘€‘‘‘}~™‘‘‘€€}‘‘‘‘‘}‘‘¡¡‘‘‘¤¡™}‘‘‘‘€€€€€‘‘‘‘‘}‘‘€}‘‘€‘€€�‘‘‘€}}€‘‘}}}}‘}}}�‘€€‘‘}}‘€‘‘}}}}}‘‘Ùÿÿÿýž}‘™š×õÿÿÿÿÿÿõÙ�ww}}ww‘w}}}}}w}}wvw}}ww}}}wvvw}}}}}žýÿ˜ww}w}wwvvvwvv}vvvwvvvwvvvvvvvvvvwvvuuvvvvvvvvvvvvvvvvuvuvuvvvvvuouuvvuuuuvvvouuoouvu†üÌvvÊþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÌ{ttotlZlllZCCttCClZCtCuutllZCCCtutCCtÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ  @óÿÿÿÿÿóZ!!!      =Ž­õþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75777777777575!757!7575$!75777575777Ó×ÿÿÿüÿÿþÿþÿÿþÿÿÿÿÿþþþþþýþýþþþúÖŸ�wpvv}}}}}}}w}}wvw}}}wv}}}}€}}}}}}}}}ww}}}v‘}}‘w}}}}‘}}}}}‘}}}}‘‘€}}}}‘€‘‘}}}}}}€‘}€€Úýÿÿÿÿÿæ‘‘�‘‘‘€}}‘}}}‘‘‘€‘‘‘¡‘}‘‘‘‘‘‘‘‘‘€‘‘€‘‘‘€‘‘}€€€€‘‘‘€€‘‘€‘‘‘‘‘}‘‘‘‘‘‘‘€}}�‘‘€‘‘‘�‘€}}}‘‘}}}}‘€‘€‘˜úÿÿÿõ˜™Óèýÿÿÿÿÿþõב‘}}�}}}}}}}w}}}}}w}}}}w}}}}w}wvw}wœýÿ˜}}wvvvvvwww}wvvwvvw}vvwwvvvwvv}vvwwvuvvvwvvvwvvvvvvvuvvvvvvvvvvuuuvuvuvvuvvvvuuuvvvuvuu˜ýÊvvuÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ”uultlltuolCullttllCtCCCCCCllCttCCt›÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@òÿÿÿÿÿ÷[qªõÿþÿÿþÿÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77575557777!7!!75!77777777557775757ÓÓÿþÿÿþÿÿþÿþÿÿþÿüÿÿþþüþüþýþüþüúÕ’�vvvvvwwww}}wvv}vw}}vvvvw}‘‘v}}}}}w}}}}}w}}}}}}}€‘‘‘‘€}}}}}}}}}‘}}‘€€}}}}}}}€€€‘‘}}}}}}}}}}€‘}}‘‘}}}Úþÿÿÿÿÿꤑ‘‘‘}}}}}�‘‘‘™‘‘‘‘‘‘‘‘‘™‘}‘‘€‘‘‘‘€‘‘‘‘‘‘‘™‘‘‘}€€‘‘‘‘€}‘‘}}‘‘‘}‘‘‘€‘‘}}}‘‘‘}}}€€‘‘}}‘}‘‘‘€}}}}w}‘}‘}‘}�‘‘�ÓÿÿÿÿíõÿÿÿÿÿÿþõÓ™‘€}}}}}}}w}}w}}w}}}}}vwvwwww}vwvžýÿ˜w}}wvvvvv}}wvv}vvwvvw}{vvvvv{wvvvvwvvwvuvvvvvwwwwvuuvvuuvvwvvuvvvuovvouvvvuuvvvvuuuvvuuoožýÇyvuÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÌxulttllttClZlutCClutCZCtlttCCCCC{èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!@óÿÿÿÿÿ÷[!!      9qªíÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ777577777775777557757777757777777777777777757Ó×ÿÿþÿþÿþÿÿþÿÿþÿÿÿÿüüþþþþþüþþþúÕ�}pv}}}v}}}}w}}}}}}}}}}}}w}}}v}}}}}}w}}}}}}}}}}}w}}}}‘}}}w}}}}}‘}}}}‘‘}}}‘}‘‘‘}}}‘‘}}€‘‘€€}‘€‘‘}€}×þÿÿÿÿÿæ‘€‘‘‘€€‘‘}€~€€‘‘‘‘‘‘‘}‘¡€}‘‘‘}‘‘‘}‘‘‘‘‘‘}}}‘‘}‘‘‘‘€€}‘‘‘‘€‘‘‘€‘‘}‘‘€}‘‘‘€}¡}‘‘}‘‘}}‘}}€‘}}}}}}™ëÿÿÿÿÿÿÿÿÿýõÓ�}}}}}}}}}w}}}}w}}w}w}}}}v‘ww}w}}}}}}}vv}wvžýÿ˜vwwwwwwvvw}v}wvvwvv}vvvv}wvwvvvvvvvvwvvwvvuvvvvvvvvvvuvvvvvvvvuuvvuuuvuvvuvuuuvvuvuuoouužüÇuuu×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ�{ulCtlultlllCCtCtlCCltCCCCZlZtÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ! @òÿÿÿÿÿ÷Z! ! =sªõÿþÿÿþÿÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77775557577775!7777!5577777777777777ÓÓþÿþÿÿþÿþÿÿþÿþÿþÿÿþþüýýþþüþüýúÕ�}vv}}vw}}}}v}}}}}w‘}}v}}ww}}}}}}}}}}}}}}€}}}}}}w}€€}}}}}}}�}‘}}}}}}}}}‘}}‘‘‘‘}w}}‘€‘‘‘‘‘}}€‘}}‘}}×ýÿÿÿÿÿà™€}}}‘¤‘‘‘‘‘€}}}€‘‘‘}€€}}‘‘‘‘}}}‘‘‘‘‘}€‘‘}}}}}}‘™‘‘}}‘™‘}}€}}€‘‘‘‘}}‘‘‘€}}}‘‘‘�‘‘‘€‘�‘}}}}‘‘}v}}}}ww‘§úÿÿÿÿÿþúèž}}w}w}}w}}}}}}}}w}ww}‘}}vw}}wwwwwwww}vžýÿ˜}}vwvvvwwvwvw}ww}vvvvvwvwvuvvvvvwwvwvuvvvvuuvvvvuouvuvuvvvuvvvvouvuvvuvvuouvvuooououÇý�uuu×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ߆utCuutuulZtlZCCtCCCCCZCClCu›÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ  @óÿÿÿÿÿóY   !  !   sªíÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7775775777577!557757575757777777775777Ô×ÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿüþüþþýýþþþþúÕ�Žww}wvw}}}wvvvw}vw}}wvw}}}vw}w}}}}ww}}}}}}}}}}w}}}w}}}}}‘}}v}‘~}}}}}‘}}}}}€€€€€‘}€‘‘}€€‘‘‘Úþÿÿÿÿÿà‘‘€‘‘€}‘‘‘}}‘‘€‘€€€‘‘‘‘‘‘‘‘‘‘‘‘‘€€€‘™€‘€‘‘‘‘}}€}‘‘‘‘‘‘‘‘‘}‘€‘‘}€€‘‘‘}‘‘}}€‘}‘‘‘‘}}}w‘}}ÓýÿÿýõÙ™}}}‘}}}}}}}}}ww}wv�}w}vww}ww}}vw}}w}}}vœýÿ�wvvww}}vvw}vvvvvwwvvvwwvvvvwwvvvvvvwvwvvvvvvvuv{vvvvvuvvvwvvvvvuuvvvvuuuuvvuouvuouvuuuuvvvÊý›uuoßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Ç{ulClltCCllCCtultCZllltCC{ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@òÿÿÿÿÿ÷Z =sªõÿÿÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77757777575757777757757777777ÓÓÿþÿþÿþÿÿÿÿþÿþÿþÿÿþþþüþþþüþüüùÕ��}w}vvw}}vvv}vvwvwvvvw}}vv}}}vvvvw}}}wv}v}€}v}}}}v}w}‘‘‘}}}}}}}w}}}}‘‘‘‘€}}}‘}‘‘‘‘‘‘‘‘€}}‘‘‘‘€}‘‘‘‘‘‘Úþÿÿÿÿÿà™}€€€‘‘‘}‘‘‘€}€‘‘‘‘€‘‘‘‘‘‘‘}}‘‘‘€}}‘‘‘‘€}‘‘€€‘‘‘™‘‘‘}}}}}}‘‘‘‘‘‘‘‘€}€}‘}‘‘‘‘‘}}w}‘‘}}}�‘‘‘�}}}}‘‘}wÙëÚž}w}‘‘€}}}}ww}w}w}}}ww}}}}}wwwvw}€}ww}}w}}}w™ýÿ˜vvwv}}}vvvvvvv}}wvwvwvvvwvvvvvvuvvwwvvv{vvuvvvvvvuvuuuvvw}{uvvvvuvvvvuouvvvvuooouolvvvvvvvÌþ›vll×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè›uCtClZlttlCltutllZlCZtuÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@óÿÿÿÿÿ÷Z!!!   ! ! !q¥íÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7575777777!577557777777755ÓÓÿÿþÿÿÿÿþÿüÿÿþÿÿÿÿüþüþþüþýþþþúÕ��pvw}vv}}w}wv}}v}}}}}w}}vww}}}}}w}}}}}}}}}}}v}‘}}}}}}}}}}w}}}}}}‘}}}‘}}}}}}}}}‘}}€€}}‘‘}€×þÿÿÿÿÿà‘}‘‘‘‘€}€€}‘‘‘‘‘‘}‘‘‘‘€‘‘}‘€‘‘‘}}}‘‘‘‘‘‘‘€}‘‘‘‘€€‘€€€€€}‘‘€€‘‘‘}}}‘}�‘‘}}€}}}‘}}}}}}}‘}w}}}}}}}}}w}}}}w}wvw}}}}w}}w}}v}}w}wv}wwžýþ�ww}wwwwvvwv}vvvwvvw{}wvvvvwvwvvvvvv{vuvvvvvvvvvvvvvvvvvuvvvvvvvuvvvuvvvuuvuuvuuuvuouvuuouu×þ™ulußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌ{uCZllllttCCCCCZltlCtÆúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!!@òÿÿÿÿÿ÷Z  $qªõÿÿÿþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7775777557575775777!557577775557ÓÓÿþÿüÿþÿÿÿÿÿÿþÿþÿÿþüþüþýþþüþüúÕ�}pvwvvvw}w}}wwvvv}}}}w}}vvw}w}}}vw}}}}ww}}}}}}w}}€}}}‘}w}}}}w}}€‘‘‘}}}}w}}€}}}}}}}ww}}‘}}}}}}×þÿÿÿÿÿà�‘™‘‘‘‘‘}}}‘‘‘‘}}€€}‘‘‘‘‘‘}}‘}}‘}}‘‘‘€‘€€}€‘‘‘‘‘‘€}}‘‘‘‘‘‘‘‘‘™‘‘€}}}}�‘‘}}‘}}‘‘}}}‘‘‘www}}}}w‘‘w}}}}}}}}}}}w‘}wwwvwvvwvw}}www}wwww}wžýÿ˜vw}}wwvvw}{vuvwvv}}w}{vv}{vvv{vvvvvwvvvvvvvuv{wvv{vvuuuvvvvuuv{vuuvvvvuuuuuovvvuvvultluÙÿ˜ouvßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè›ulttCClutCClultlZC{ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!9óÿÿÿÿÿ÷Z !!  s¬íÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ7775755775755777!7!5!7755$77555!75775777777777777Ó×ÿÿþÿÿÿþÿüÿþÿþÿÿÿÿüþþýþþüþþþüúÕ�Žwvw}wv}vvw}w}}}}www}}}ww}}}}}w}w}}}}}}}}ww}}}}}}}}}}w}v}€}}}}}}}‘}}‘}}w‘}}‘}}€}€}}}‘‘}}}‘‘Úþÿÿÿÿÿà‘‘}€€}‘‘‘‘€‘€€€€€™‘€€‘‘‘�}€‘‘}‘‘‘€}€}€€€‘‘‘€‘‘‘}‘}€‘€‘‘}€€‘}‘w}‘€}}}w‘}}}}}‘v}}}w}}w}}}wv}}ww}}w}w}}}}}}w}www}}}}wwww}wwžýþv}}vvwwwwvwv}vvvvvvvvvvwvvvvvwvvvwvvvvvvwvvvvvvvvvvvvvvuvvvuvuuvvvvuuvuvvuvuvouuvuluuuvuoußþƒouußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü̃utCCuZlCZCZllCCußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @óÿÿÿÿÿóY  !pªõÿÿÿÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7775777575555!57!577759755755$7!55!5!7757577777757577755577ÓÓþÿÿÿþÿÿÿÿÿÿÿþÿþÿÿþþüýüþþüþüþúÕ¢}}vv}}}vvvvv}}}}vvv}}}}}}}}}}}}‘}}}}}}}}}}}}}}wwvv}w‘}}}w}‘‘‘�‘}‘‘‘}}}‘}€}}}€‘}}}‘}€€}€}×ýÿÿÿÿÿà�}}}‘‘}}}‘‘‘€‘‘‘}‘‘‘}}‘‘}€‘‘}‘€}}€€‘™‘‘‘‘‘‘‘‘€}€‘‘‘‘€‘‘‘‘‘}‘€‘‘‘‘‘‘€‘€}}}}‘}}�‘‘}}‘‘}}}€}}}}w}}}v}}}‘‘‘‘�}ww}}}}}}}}}wvw}}}vw}www}vvw}}w}wvv}ww}}w}v}}wvwvžýþ˜wwwvw}wwvvvvvvvvuvww}vv{vvv}vvvwvvvvvwwyvvvwvuvvuuuuvuuuvuuvvuuvulvvvvvvvuuvvllouuvulußþ†uvlçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòžxZCClZClClZCCZÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!@òÿÿÿÿÿ÷Z!! p¥õþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7775757577575575757775555777575777577757575!5775755557775577777777577777757555Ó×ÿÿþÿþÿþÿüÿþÿþÿÿÿÿüþüþþýþýþþýúÕŽsw}vv}}w}}}v}}wvw}}w}w}w}}}ww}wvw}}}w}}}}}}}}}}}w}}}}}w}}‘w}}}w}}}}}}}}}}€}}}‘}}}€€}}€‘€}€Úþÿÿÿÿÿà‘}}€‘‘€‘€‘‘‘€€€}‘}‘€€‘}‘}‘‘‘‘}€‘€‘‘}€€€€€€‘‘‘}‘‘€€}}‘‘}}}}‘‘}}€}w‘v‘}}}}}}}}}}}}}}}}}}w}}www}}}wv}}v}wwwwv}www}}žýý™}w}ww}wwwvvvwvvwwvwvvwvvv}vvv{}vvvwvv{wvvvuvvvyvvvuvvvvvvuvvvvouvuuvuuvvuuvvuouvuvuluvuvuluàýƒouuèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”vlZllCZllCZ”õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ @óÿÿÿÿÿ÷Z!=}ªõÿÿÿÿþÿþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5575775575775777557777777!55$77577757557577777777777575755775555ÓÓþÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿþýþüþüþüþüýú¬s}v}}w}}}}v}vvv}w}vw}w}}wvv}}vvwvw}}}}wv}}w}}wwv}}}}}w}‘}}}}}}}}w}}}}v}}}}}}}}€‘€€€}}}}‘‘‘€}}€‘‘}€€€‘Úþÿÿÿÿÿ晑‘€}}}‘‘‘‘}}‘‘}‘‘‘}}‘}}}}‘‘‘¥‘}}}}}�‘‘}‘€}�‘‘‘‘‘}€€€€€}}‘‘‘‘‘™‘‘}‘}€�‘‘‘‘}}}‘€}}}}‘}‘‘‘‘‘}}}}}}}}w}}}}ww}€�}}}}}}www}}w}}www}vw}}vvvwvww}}žýý˜}wwwvvvvwvwvvwvvvvuuvwvvvvvwvvv}vuuuouuuvuvvuouvwvuvvuvuuououuouvuoouuvuvuvulouvououuèû˜uuvèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Ì{uCtlltllyßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@òÿÿÿÿÿóZ ! =ŽªõþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÔ5777557757555775775857557!55=577775775757757777577757777775557757757777557777Ó×ÿÿþÿÿÿüÿþÿþÿÿþÿÿÿüþýýýþüþþþþúÕ�Žvvvvwwwwww}w}wwv}}}v}}wvw}}}}}}vw}}}}}}}}wv}}}}}}}}}}}w}}}}}}}}}}}€}}}}}}}}}}}‘}}}‘‘}Ùþÿÿÿÿÿà‘€}}}‘€‘€€€€€‘�‘}‘}‘‘€€¡€}€‘}‘‘‘}‘‘}‘‘‘‘‘}‘€€}‘€€€}€}‘‘}}}}}‘}}‘}}�}}}}w}}}}ww}}}}w}w}}}v}}}}www}w}}}w}w}vww}ww}wvvwvžýý�vwv}vwvvwvvvwvvvwvvwvvwwvvvvvu{}vvvvwwvvvvvvvvvvuuvwvouvvvvuuvuvvuuvvuuuvuuuuuvuuuvuouuuèú˜uluñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÆylCZlCuÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !@óÿÿÿÿÿ÷Y ! =sªùÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ55757757775557577757777757777775775557577755777777777777775577555Ó×þÿÿüÿÿÿÿÿÿÿÿÿþÿÿÿþüþüýýþüþüüúÖ¢}vvvvvvvvvvvv}}}v}}}w}}}vw}}}}v}}wv}ww}vv}}}‘}‘}}}}}}}€}}}}‘‘‘}w}}}}}w}€‘}}}}}}‘‘}}}}‘}×ýÿÿÿÿÿà‘}}‘‘}}}}‘‘‘‘‘‘}}‘‘‘‘‘‘}‘‘}™‘‘‘‘‘}}‘‘‘‘‘}}‘‘}‘‘‘‘‘‘‘‘€€‘}}}}€€€}}w€}}}}}}}}}}€‘}w}‘�ww}}}}€wvw}}}}}}w}w}ww}w}}�}ww}v‘vw}}}}}www}ww}}wvwvwwvvwvžýý˜vvvvwwvww}{wvw{vvvvwvwvvvvvv}}vvvvw}wvw}w{vvuvvuvuuuvvvvvvvvvvuuouvuuuoovvvuuouulouvuèú{oulñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýß–uCCC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Z!!!   =q¥íþÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ55557557557775575777755777577777557557Ô×ÿÿÿÿÿþÿþÿüÿþÿÿÿÿÿüþýþýýüþýþþúÕ Žw}vvvv}}vvvv}}vv}}}w}vvw}w}}w}w}w}}}vw}}}}v}}}}}}}}w}}}}}}}}}}}}}€}}}}}}}}}}}€}}}}}€}}}Ùþÿÿÿÿÿà‘€‘}}}}‘€€‘€‘‘‘€}€€‘}‘™‘‘}€‘‘‘‘‘€€€‘}€€€}}‘�€€}}}}€}€‘}€}}�}}}}}}}}}}}v}}}}}}}}}}}w}}}}wv}ww}wv}}}w}ww{}wwvw}vvvÇýú‘vvvwvwwwvw}w}wvvvvvv{vwvvvv{vuwuvvv{}vvuvvvvvvvuuvvuvuvvvvuvuvuuvuvvuuvuvvuovvuuouuuuuuvuñ÷{uvuòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Ìzu‚çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ! @óÿÿÿÿÿ÷Z ! =qšùÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ777777577555757755775777775757577575777757775777777577575ÓÓÿüÿþÿÿÿÿÿÿÿÿÿüÿÿÿþüýüýþýþüüüúÖ’�}vvwwvw}}}vvwwvvw}}}}}}w}w}wvw}wv}}}}€}�}wvw}}}}}}}w}}}w}}}}}}}w}}}}w}w}}}}‘‘}}}}}}}‘}}}}}}€}}‘‘×þÿÿÿÿÿà�‘‘}‘‘}}}€}‘}}}}‘}}€€‘‘‘‘‘‘‘}‘‘}w‘‘‘‘‘‘‘}‘‘‘}}€‘‘}}}}}€‘‘‘}‘‘‘‘‘}‘}}}}}‘‘}}}}w}}}�‘}}w}‘}www}w}}}w}}}}ww}w}wvwwwvw}{v}w}}}wvvwww}wžÿú˜{vvvvvvvvvvvvvvvvvvvv}vuvwvuuvvvvuuvvuvuvvuvvvvvuvvvvvvuvuuuuvvvvuvvvuuuuuouvuvvvuouoò÷{luo÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÇßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Y     q¥õþÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75557775777557555!7575$7755!755775575$7577777557757777757777757557777Ó×ÿÿÿÿÿþÿüÿþÿþÿÿÿÿÿüþþýþüþüþþþúÕ�Žvvwwvv}wvvwwww}}ww}}w}}}wwww}}}}ww}}}}}}}}}}w}}w}}w}‘}}}}v}}}}}}}}}}}}w‘}}}}}‘}}}}}}‘}}‘�}}}}}‘‘Ùýÿÿÿÿÿà‘‘}€}‘€}}€}}}‘‘€}}}‘‘}}‘¤}}€‘‘‘}‘}}‘�€}}}�€‘‘‘}}‘}‘}}}}}‘‘w}}}}}‘}w}}}}}}}}}www}www}}}www}w}}}v}‘v{}www}}}}vwww}{wÓýúww}wwvvwvvyvvvvvvvwvwvvvvvwwvvvwvvvvvvvvvuvvvuvuvuvvvuvvuvuuuuuvvuuvuvvvvuuvvoouvuuuvuuuvoõõ{uouúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @óÿÿÿÿÿóZ!=qªõÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ77757775577577575557777555755775777!577=775=55557755757577577777755755755775575777ÓÓÿüÿþÿÿÿÿÿÿÿÿÿÿþÿÿþýüþüþýþüüüúÕ�}vv}}v}}w}wvv}}wwvvvvv}}}w}ww}}w}}}}wvvvww}}}}wvwv}w}}}}}w}}}}}}}}}‘}}}}w}‘‘}}}}}‘‘}}}}}}}‘×þÿÿÿÿÿæ™}}€‘}‘‘}}}}}}‘}}}‘¡€‘‘‘}}‘‘‘€}€€}}�‘}}}‘‘‘}‘‘‘‘}€}}}}‘‘}‘‘‘‘}}}‘‘€}}}}}}w}}w}}}}}}}w}‘}‘}w}}}}w}}w}}}‘}ww}}}}wwwww}w}}}}}}{}vv}}w}vww}wvvvvv}Òÿú�vvwvvvv}vvv}{vwwvvw}{uvuvvvvvvvvvvvvvvvvvvwuuvvvuvvvvvvwvuuvuouvuouuuuvuuoouuuvvuuuuuuvvu÷õ{ouvüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;òÿÿÿÿÿ÷Z!!   =}ªíÿÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5775575555777577555575757757577577555775557577577555757555775555777575755775Ó×ÿÿÿÿÿþÿþÿþÿÿþÿÿÿÿüüþüþþüþýþüúÕ�}vvwww}wv}}vv}}wvv}}}vvw}}w}w}}}w}}}}}w}w}w}w}}}}}w}v}}}w}}}}}€}v}}}}}}}}w}}}}}}}}}}}}}}}€}}}}}}Ùýÿÿÿÿÿà‘‘}}}€€€}€}}‘}}‘‘€‘€‘€‘}}}}‘‘€�‘€‘}€}€�}}‘€�}}}}}}}}w}}}}}}}}w}}vw}w}}}}}w}}}w}}}w}ww}wwv}w}vwwww}}ww{ww}}wwwÊþ÷vwvuw}w{wvv}vvvv}vv{wvwvvvvvvwvvvvwvuvvvuvvv{vvvvvuvvvvvvvuuvuuuvuvuvvuuuuuuuouvuuuuuvuuuuu÷ò{uuuüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ@óÿÿÿÿÿóY  =sªõÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ55577577557555775757775557577557777757577557775777755555575ÓÓÿþÿþÿÿÿÿÿÿþÿÿÿþÿÿþþüþüþüþüþüùÖ�}vwvvwwvvw}vv}}vvvw}}wvvww}}wvw}}www}}ww}ww}}}}}w}}w}}w}}}‘‘}v}}w}}€}}}}w}‘}}}}}}}}}}w}}}}}€}}}}×þÿÿÿÿÿ߀}€€}}‘‘‘‘}w‘‘€‘w}€‘‘‘}}‘‘€}‘€€‘‘‘€}‘‘‘‘‘�‘‘‘‘}}‘}}}}‘‘}‘‘}}}}�‘}}}}}}}‘}}}wwww}}}ww}}}‘€}}w}ww}w}wwwww}{}w}wvvvwwwvww}wvww}vvww}wvÇþ÷ƒvwvvv}}wvvvvvvwvvw}vvwvvvuv{wvw{vvvuuuvuvwvvuvuvuvyvvuuuvvvuuvvvuvvuvvuvvuuvulluuuvuoluu÷è{vvvüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Z! ! p¥íÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ577777575757557777575575757577777757$7757!75777755557557555775577557757577777557Ó×ÿÿÿÿÿþÿýÿþÿÿÿþÿÿÿüüýýþýþýþýþúÕ�Žw}vvw}vvwwvvwwvw}}wwww}}w}vw}}}}vw}}w}}}ww}}}w}}w}}}}}}}w}‘}}w}�€}}w}}}}}}}}}}}}}}}}}}‘}}}}}‘€}}}‘}}‘}}Ùþÿÿÿÿÿà�‘}}‘‘€�}w€‘}}€‘�}‘‘€‘}‘‘‘�}‘€‘}€}}€€}}‘‘}}}}‘}}}}}}�}w}}}}}}}}}www}}wwwww}ww}}}}w}}}wwwww}www}vw}wwwwvw}wvÊþ÷vwvvvw}vvw{vvvv{}v{vvvvvv{vvvvwvvvvvvuuvvuvvvvvvuvvvuvvvuuvvvvvvvvuuuvuuuvvvuvuuuuoovvuuuovúè{uu{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@óÿÿÿÿÿóY!!!!   !qªõÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ55557575757777557755777777757877777775575755775575555757555575757ÓÓÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿþýýüüýüýýüüúÕ�Ž}}}vw}vvvv}ww}}}}}ww}}wv}wv}}wv}}}}}}}}}}}wvww}vw}ww}v}}}€}w}}v}}}}}}}}}}}}}}w}€}‘}}}}‘}‘‘×ýÿÿÿÿÿà�}}‘‘‘‘�‘‘‘‘€€‘}}‘‘‘€}‘‘€‘}}w}�‘€‘‘‘‘}‘}}}}}‘‘}}}}}‘}‘™}}}}}}‘‘‘w}}‘‘‘}‘}}}}w}}}w}}}}}vww}}}w}}w}ww}w}wvwww}}wwwvwwvvvw}ww{}}}}wwvvwvÓþ÷˜}w}wwvvvvvvvvvw}vvvuvvvuvvvuvvvvvvvvwvvvvvvvvuuuuvvvouuvuvuuvuuvvuoouvuouuuvuoouvuuuvulootyúèyou{ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!;òÿÿÿÿÿóZ!  =qªíÿþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ555577555575755555775777575555575777577575775755577557555775575775777555777Ó×ÿÿÿÿÿþÿþÿÿÿþÿÿþÿÿüýüþýþýþüþþúÕ�Ž}wvv}}vwvv}wvv}}}}w}w}wvw}wv}}ww}wv}}}}w}}}}}}}}}}w}}}w}}}}w}}w}}}ww‘v}€}}}}}}}}}}}}}}}}}‘}}‘}}}‘}×þÿÿÿÿÿà‘}}}‘‘}‘‘‘}‘‘}€}‘‘�‘}‘‘}}}}}}}€€}}}}}‘}}}‘}€}}}}}}}}v}}}w{}w}}ww}w}}}ww}}wwwwwww}}wwwwww}w}ww}}}w{}wwwww}vÌþõ‘www}vvvvvvvvvwvvvvvvvvuvwvvvuvvvvuvvw{vvuvvvvuvvvvuvuouvuuuvuvvuuuuvuuuvuuuuuuvuouvuluuuo{úâuuu˜ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ @óÿÿÿÿÿ÷Y=sªõÿÿÿÿÿÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5555775775775775755575777777577577775555577755755755777755ÓÓÿþÿþÿÿÿÿþÿÿÿÿÿÿÿÿþýüüýüýýþüüõÕ�}vvvvv}}wvv}}}wvwvvvw}}wvww}vvw}v}}wvww}w}wvw}w}w}}}}}}}wv}‘}}}}}}}vv}}}}}}}}}}}}}‘‘}}‘}}}}}}‘‘€Úþÿÿÿÿÿà™€}}}‘‘}}}€‘€}}‘}}}}}}}€‘‘}}‘�‘}}}}w}‘™€}€€�‘€}}}}‘‘�‘}}}}}}}‘€}}}}}}}}}w}}}‘€�}}}}}ww}}}vwww}}}}w}}w}ww}w}}}w}}}}wwvvvwvvvvvw}w}}wwwvÓÿóvv}{vvvvwvuvwvwwvvvvwwvvv{wvwvuv{vvw}wvuvvvuvvvvvvvvvvuouvvvvvvuouvvvvouvvvuouvvuuvvouuvvuüßxlv˜ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ@óÿÿÿÿÿ÷Z ! =}ªõÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè×5755757557577577755555777=7777557557575775575577575755555755575Ó×ÿÿÿÿÿþÿÿÿÿÿþÿÿþÿÿüýýýýýýüþüþúÕ��vvvvw}vvwwwwwwwwvvv}}}www}}vw}w}}www}w}w}wv}w}}}ww}}}}}v}}}}}}}}}}}}}}}w}}}}}}w}}}}}}}}}}}}}×þÿÿÿÿÿà‘}}}}}‘‘}}}‘‘}}‘‘}}w}€€‘}}‘€‘}}}}}}}�‘€}‘‘}}}‘‘€‘}}}}€€}}}}}}}ww‘w}}w}w}}}}}ww}}{w}}}}w}ww}w}w{}ww}ww}wvwww}{}}wvw}wvvwvvwvvw}w×ÿè{w}vvv{vvvvvwwvwvvvvvvvwvvvvvvuvvvv{wvwuvvuvyvvvvuvvvuuuvuuvvvvuuvuvvuuuvuvouvuuouvuuvuuuu˜üßvuv›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!@òÿÿÿÿÿóY  !=sªõÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ555577775575575777557755577775775577777577557755557577557575755757557575575577ÓÓþÿýÿÿÿÿþÿþÿÿÿÿÿÿÿþüüüþüýþüþüúÖ }vvvvw}w}}vvvw}vwvvw}}}}}}}}ww}w}ww}}}w}}ww}‘}}}vvw}}}ww}wwv}}}}}ww}}}}}}�‘�}}w}}}}}}}w}}}}}}}}}}Úþÿÿÿÿÿà‘‘€€‘‘}}‘w}w}‘‘‘}}‘‘}}‘‘}}€}}}€}}}}}}�‘}}€‘}}}}}}}}‘}w}�}}}}w‘‘}w}w}}wwwww}w}}w}}{}}vwww}wvw}}}vw}ww}vvwvvvv}ww}}wwvv}wvvvvvwvvÌÿõ}vvvvvvvvvvww}{vvvv{vvvvw}{vuvvvvv}vvvwyvvvvvvuuvv{vvvvuvvvuvvvvvuuuuuuuuuuvuuouuououlllo˜üß{uvžþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!9óÿÿÿÿÿ÷Z!=qªõþÿþÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ775557577757775777555777555775777755775777557557757557755577575577755ÓØÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿüüþþüýüþüþüúÕ�}vvvvwww}wvvwwvwvwv}}www}}}}}}wwwww}}}w}}}vv}}}}}wv}}w}}}vwww�}w}}w}}}w€‘}}}}}}}w}}}‘}}}}}}}}}}Ùþÿÿÿÿÿà�}‘€}}}}}}‘‘w}€‘}€}}‘‘}}}}}}‘}}}€}}‘}}}}€}}}}‘}w€}}w}}}‘}}‘w}vv}wv}w}w}w}w}‘}}}}ww}w}}vw}vvw}}w}wwwwwww}}ww}w}v{wwwvwvvvw}vvv×þñ{vvw{}wvvywwv{vvvvvvvv{w{vwwvvvvvuvvwvuvvwvvvvvvuuuvvvuvvuvuvvvuuvuvuuovuvvlouvouuuuuuuoltu˜üÙ{ovÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;óÿÿÿÿÿ÷Z    =qªõÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ777775575555755777777777555==7777777757557777775777777755777555575775555757ÓÓÿÿüÿÿÿþÿÿþÿÿÿþÿÿÿþýüþüþüþüþüùÕ�}}}vvvvwwvvwv}}}ww}}}vvvvw}w}}vvvww}}w}w}ww}wvvvvv}}ww}w}}}}}}}}‘}v}v}‘‘w}}w}}}}w}‘w}}}‘‘}}}}}}}Ùþÿÿÿÿÿà‘}w}}}}}}}}}}‘}}}€‘‘}}}€}€‘‘}‘}}}}}}}}}}}}}}w}}}}�‘}w}‘‘w}}}}wvvw}v}‘}}}}}}}}}}wvw{w}vw}www}vw}w}w}}}}ww}}vvwwwvv}}ww}{vvv×ÿòvuvv}}w}wwvvvv}{wuvvvvvvvvuvvv{vvvuvvvvvvuvyvvvvvvvuvvvvuvvuuuuuvvvuouuouvvuvvuoouuuuuvuuu›üÌvulÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿóY   =sªíÿÿþÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ557755577555555557775755575757555777557757557775777777757777757777755777577755755557557555757557555555557555555575555575575555755555555577755555555Ó×ÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿüüþüýüþüþüþúÕ�sw}vvvvwwvvvv}}wvw}wvvvw}}w}wwv}ww}}}}wvw}}}wwwww}}}}}}}}w}}}}}w}ww}}}w}}}}}w�}}‘}}}}}}}}}}}×þÿÿÿÿÿà�}}}‘}}‘}}w}}}}€}}}}€}}�}}€}€€}‘}}}}}}}}}}}}}}}€}}}}}w}}}www}}}www}}w}w}}}v}}}w}wwww}wvvw}}w}w}wwvwwww}vvvw}w}{}wwwvvvwßÿëvvvvvwvwwwvuvwvwwvuwvvvwwvvvvvvvvvvv{vvvuuuvvvvvvuuuvvvvuvuvvuouvuuuuuuuouvuvuvuuouuuuvvuo›üÌwulÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !@óÿÿÿÿÿ÷Z  =s¥õÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ55575775557555557555775775557575575557775575777=755775775775575775757575775577775555555577755775557557575755557577557757555755755555555575757577755555555755ÓÓÿÿþÿÿÿÿþÿþÿþÿÿÿÿÿþüüþüýüþüüþõÕ�}vwvvw}v}vv}}}vvvvvwvvw}wwvw}}}vwv}}}}vw}w}}}}}}vwv}}}}}w}}vw}}w}}}‘}}}ww}}}}w}}}w}}}}}}}}}w}w}}w}‘}}×þÿÿÿÿÿß‘}}‘}}}}}}‘�‘‘}}‘}}}}€‘}}}}}}}}}‘}€}}}}}}€‘‘}‘‘}‘}}€�}}w}}w}w}w}ww}w}}w}ww}}w}w}w}wwvvvw}wv}vwvwwvvwwvvwvvvwvw}Ùÿñ{v{vvvvvvvwwwvwvwwuvwvvvvvvvvvvuuvuvuvvuvvuuvuuuvvuvvvvuuuvvuvuuuvvvvvvuuutuuuuuluoooluvuužýÙuuCÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@òÿÿÿÿÿóZ!qªõÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5555755555575555555557575755755777577777557757757555=77777755777777777755557755557557555577755575555775557555555567557555555555755555555557775557755557555755Ó×ÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿüüþüþüþüþüüúÕ�}pvvv}}vvvv}wvvwvvvvv}}wwvv}}}vww}w}ww}ww}}}vvw}w}}v}w}wwvw}}w}}}‘}ww}}�}w}w}}w}}}}}}}}}}w}}}}w‘‘w×þÿÿÿÿÿà‘}}}w}‘€‘�}}}}€}}}}€}}}}}}€}‘}}‘}‘‘}}}}‘}}}}‘€}}}ww}}}}}}w}w}}w}}}}}}}ww}}ww}}w}}}wwvwwvvwwwwvvvv{}v}wwwvwwwvvww{ßþèvvvvvw{vvvvvwvvvwvvvwwvuvv{vvvvvvvuuuvvvuvovvvuuvuvvuvvvuuvvuuvuuuvvuuuuuulluultouuuuuuuuuÆýÌwtlÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!@óÿÿÿÿÿ÷Y! qªõÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ55557555775555775757775557757775755575757577575$5577777777557777557777757777777757577755577555775755555555555777555555555755555555557555555557577555575ÓÓÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿþüüýüþüýýþüùÕ�}vvvvvvvpvvv}vvv}}vv}}}}vvw}vw}}}}w}vvw}}}ww}vv}w‘www}}}}}}}}www}}}ww}}}}w}}}}}}}}w}}}}}}}}‘}}}�}}Ùþÿÿÿÿÿß�€�‘}}}}}‘‘}}}}}€‘}w}}}‘}‘}}}�‘}}}}}‘}‘}}‘}}w}}}}}}}}w‘�}w}}}}�w}}wwwww}w}vwwwvww}wvvvwvvvvv}}w}}ww}www{vvvwvvwwwww}{vvvvvßÿñww}{vwvvuwvvvvvvv{vvvvuvwwuuuvvvuvvuvwvvuuvwvvvvvvuuuvvvvvvtluvuuuvuuouvvuouuouvvuuuuololÇýÇvoZ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Z =sªõÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5555755577775855777555575557557755755555577577787!7755577575575577775757575555775577557557575575555555775755755555557555555775755777755755575555Ó×ÿÿÿÿÿÿþÿÿÿþÿþÿþÿÿüüþüýüýýüýüúÓŽsvv|vvvpvvvvvvvv}wvv}w}wwwvvwvw}ww}}}vv}w}}}}www}}w‘wwv}}}}w}{}vw}}www}}}}}}w}w}}}}w}}}w}‘}}‘}}×þÿÿÿÿÿà‘€‘}}}}}}}}}}€€}}}}‘}}‘}}�‘€}}‘‘}}}‘v‘‘‘}}}}w}}}}}}}}}}}‘}}w}w}€‘}}ww}}}ww}}wwvww}wwwwww}w}wvwwww}wv}wwww}}vvw{}wvvwvwwvwwvwvvvàÿè{vv}wvwwuvvvvv{vvuvvwwvvuvvvvvuvwvuuvvvwvuvuvvvvuuvvuvvvuuuvuouuvuouuuvuuvvvulluvuuuvuououuÊýÇuuláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z !=qªõÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ75577755557557777577755577755$755775775775757777775757777775777757577557555557777777575555557777555757557575555757755555577555555555777757555575775575ÓÓþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþýüþüýüýüþüùÖ�}ppvvppvv}}}vvv}vvvwwvvvvwvv}}vvvwvv}ww}ww}}vv}wwwv}}}}}vww}}}vv}}}}}‘�}}w}}}}}w}}}}}€w}}w}}}}}×ýÿÿÿÿÿß™‘}w}}}‘}‘‘‘}}}}}�‘‘‘}}}}}}}}}€}‘�}‘}}}}}}}}}w}w}}}‘‘}}}}}}w}}}}}}w}w}}{w}}}}vwvvw}vw}}ww}www}}ww}vv{vvwwvvvw}{vvwwv{}w{vvvw{vvv}}{wwvßÿèvvvvw{vvvyvvvv}yvvvvvvvvvv{vvvvvyvvuvvvvuuvvyvvvuuuuvuuuuouuvuvuuuuvuvvvvuuuuuuvvulouuuuutoÌþÆutuèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!;òÿÿÿÿÿóZ !sªõÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ555575555775775755555557577555755575777577557757555757577575757577575777575577785775577777755775757557555755755775555577575555557775755777755555557575555Ó×ÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿüüýüýýüþýýý÷Õ�}qvppppw}vvvvvvvvvvv}vvvv}wvwvvvwwvv}}}wvwwvvw}}}}}vv}ww}}}}}}vwww}ww}‘€}}}}w}}w}}w}‘v}�}}}}}w}}}}}×þÿÿÿÿÿà‘‘}w}}}€}}‘}‘w}‘‘�}}}}}‘}}‘‘}}}}}}€}w}}}w}}€�€}}�‘}}}}}w}}}}ww}ww}w}}‘}}www}wwwww}w}}ww}}}}}wwvv}}{}vw}}}wvwwwv}vvwww}|}vvv{wvvvv{}ww}wvßÿâv{vvwvwvuvvvvvvvwvvvuvvvv{vvvvuvvvvvvvvvvvuvvvvuluvuuuuouvvuvuuoouvuuvvuuultuvvultuuouuuuu×þ�uoo÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!;óÿÿÿÿÿ÷Z! !!q¬õÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ577555555577577555757555557557557578755775755755577777577777777777577777557777577757575775557575755555575757555557755757555557575555557555757555555555555ÓÓÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿþýüýüýüüýüüùÕ�qppppvv|vppvvv|vvpvvw}vvvvw}}www}}}}w}wwvww}vwwvwww}ww}v}}w}}wv}w}wwwv}}wv}}wvww}}}}v}}}}}}}}}}}Úþÿÿÿÿÿß�}}}}}}}w}}w}}}}‘w}}w‘‘}}‘�€}}€}}}}}w}}}}w}}}{}w}w}}w}wv{ww}}}www}}}}{vww}w}wwv}}}}{vw}{wwvwwvww}{v}vv}vww}}vvvvwvàÿè{vv{wvwvvvwvv{wuvvvvuvw{vvvvvuvvvvvuvvvuuuvvvvvvvuvvvuvwvvuuuvvouuuuuotuouuoouuuuuvvululuou×ÿÇuttúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Y! pªõÿþÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5555575577575555557577577577777757757777557775577775777777757=75777777757577775777557777577577575755757555757557575555775555777555555577777555555555577575555755575555555557Ó×ÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿüüýüýüýýýýþú¬Žppppwpvvvpopvv}vpvvv}vvv}vv}vvvv}}}}}}wwv}}wvwvvwwvww}www}}ww}}ww}}}}wv}w}}ww}}w}}w}}}}w}}}}}}w}}}×þÿÿÿÿÿà}}}}}}}}}}}}}}}}‘}}}w}}‘‘‘‘}}‘€€w€v}}}}w}}}}}w}}}ww}}}}w}}}wwwwww}€}w}}�w}}}{}w}ww}}ww{}vv{}wwv}w}wvvvwwwwwww}wvvvv}wwwvv{vvvèÿè{vv}vwvvvuwvvvvuvwyvvv{}vvvvuvvuvvuvvvuuvuvvuuvvv{vuvvvvvvuvvuuuouvuuuoltltluuuuuuvuuuluouußÿ�uouüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@óÿÿÿÿÿóY!qªõÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5555557777575777557577777757577777755577777777757$777757777777777775575577575557755755755755577755575555557775757555777557ÓÓÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþüüþüüüýüüüùÓŽqppvvpppvvpppvvpvvvvvvo}}}vvv}v}}vvwwwv}w}vww}}wwv}v}}vwwwv}}ww}w}}w}w}vvw}}wv}}}}}}}w}}}w}}}w}}}}}}}w}×ýÿÿÿÿÿà�}‘}}}}}}}}w}}}}}}}ww}‘}}}{}}w}}}}}}w}}}}}}}}w}www}}}}�}}w}www}}}}}ww}w}}www}}}wvv}}w}}{wv}wwwwvvw}wvvwwwwwvwwwwvwvw{vwvvvvww}{wwâÿõvvvvvvwwvvvv{vvwvvvvvwwvuvvvuvyvvwvvw{vvvvuvuuuuvvvuvvuuuuuuvuuouvuuuvvvvvvuvvvultluluuuuuoßþÆuu{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿ÷Z  =sªõÿÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5557757775757577555575757577757757757777757777777877=7777777777755=7777577757555775555577575777555755555575755755555555555557555555575557555575555577Ó×ÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿüüþüüýýüýýþ÷ÓŽsppppp|ppvvpvppv|vpvvvv}}vvv}vw}wvvvwvvv}wvww}w}}}w}}v}vwww}}vv}}}ww}w}vwwwv‘wv}}}}}}ww}w}}}}}}}w}w}wwv×þÿÿÿÿÿà}}}‘�}}}w}}}}ww}}}w}}}}}}}}www‘}}}v}}}w€}}}}}{}}}w}w}w}w}}}�}}w}}ww}www}}wvw}ww}w}wvwvw}w}}w}wwwwvvw{}wwv{}w}{}w}wv{}}vwvv{}vwvvvwv}vwèÿõvvwvv{}wyvvvvvv{vvvvvvvvwwvvvvwwvvv{vvvvvvvuuuuvvvvuvuuoouuvuuvuuvuuvvvuuuuuvuvuooultuuoluußÿ�uu˜ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY !=qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5755555575555575757557575557577757557757777757755777777777775577777757777557577777575557557755557555775555555575557555575755775557555557557757555755757555775755757577ÓÓÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþüüýüýüýüüüùÖ�~ppvpvppopvvvppv}vpv}vpp}}pvvvvv}}vvvvvvv}}}}}wvvwwvvw}}}ww}}v}w}vw}w}}w}}}v}}}}w}w}}}}}wwv}}}}×ýÿÿÿÿÿßw}}}}�w}}}ww}}}}}w‘�}}�}}}‘vw}w}}}w}}w}w}}w}}w}v}w}}w}}wv}}vw}w}wwww}}w}wvww}}wwvww}{w}}ww}}}}www}wvwwwwv}{vvvw}wvv{vv{wvvv}}èÿ÷†w{wvvvvv{vvvwvvvuvvyvvvvvuuvuvvuuuvuuv{vvuuvvvvuuuuuvvuvuvuuvvuuuuuuuuuuuvuuutluvutluvuuuoçÿÇuu›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ! @óÿÿÿÿÿ÷Z    q¥íÿÿÿÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ557555577757557557555555775577557777575777575=777=577757=7757777775777777775755555575557557555575775777755575577755575557555555557555555577755757555557555577Ó×ÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿüüüþüüýüýýþ÷Ó�Žppvvppppppvvpppvv|}pvvpvvvpvv}v}}vvvvvvvw}w}w}www}wvvw}}}w}v}}w}vw}}}}}€}w}}}}w}w}}w}w}}}}wwwww}}}×þÿÿÿÿÿà�}}ww}‘w}}}}}}}{}}}}}}}‘}}}‘}}}}}}‘}w}}}w}}}}}}w}}}}}}w}}}w‘}w}}w}wv}www}w}}wwwww}wwvwww}v{}wwwww}{}w}vwwwwwww}ww}www}}wvww}vvvw}vvv}wvwwvvv{wèÿú�vwvwvvvvv}v{vvwvvvuvwvvvvuvvvuvuvuuuouvwvuuvvvvuuvuuuvvuvwvuovuoluvvuuulluvuluouuuuluuuuuuuèÿÆvuÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y! !  =qªõÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ55575557755575557555757557575775575757775777775577777557577777767777777775777577775575577557777557575555575555555755557577557555555555575575755755557555ÓÓÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþüüýüýüýüüüùÕ�qoopppppvpppppopvvvppppppppvpvvvvvvvv}vvvvvwvvvww}}}}}}wvvwvv}}vww}}}w}}}wvv}wvwv}}}}}w}}w}}}wvv}w}}}}Ùþÿÿÿÿÿß�}}}}w‘‘}}}}}}}}}}}‘}w‘}}}w}�}}}}}}}}}}}}}}}}}www}}}}w‘w}}v}w}}w}w}w}ww}}}w}www}}}wwwwwwvvw}}wwvv}{v}w}vvvwww}{vvvvww}{vwvvw}}v{}vvvèÿÿ˜vvvv{w{vvvvvvvwvvvuvvvvvuvvvvvvvvvvvvuvvuvvvuuvuvvvuvvuuuvvouuuluuvvvvuluvuuuuuuvuuvuuuulluõÿÇulßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!@óÿÿÿÿÿóZ !sªõÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75557755778775555557777757775577777577775578757757777777557757777777$777777757777777757575775777555755555555575777578555755775577555557555555757555555775755775575555775Ó×ÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿüüþüüýüüýýüú¬Žppppppoppppvvppppvvpppppppvvvvvpvvpp}}v|ppw}vvvv}}}}wwwwvv}vv}vvv}}ww}wwv}}}wvvvwww}vwwww}}www}}}}}}}×þÿÿÿÿÿà�}}ww}w‘�}}}‘�}}w€}ww}}‘w}‘wwvw‘‘}w}}}}{}}}}ww}w}w}w}}}}}w}}www}}ww}}‘wvwwwwwww}w}w}}wwwwvv}{}wvw}w}}w}wwvvwwwvwvvvvww}}{vv{}vw}vvvñÿÿÓ{wvvv}}vvvuvvvvvvvuvvvuuvuyv{wvvvvvvuuuuvvvvuuvuvuuvvvvuuuuuuuluuvvuvvuluvuuvuvvuCuuvluultu÷ÿÇuuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Z ! !$s­õÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5755755555575577557575775777777775777575$75777777777577777757777777=77777777777777775755775777757755575555577577755555555557757557557755557557575557575557775555555ÓÓÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþüüþüüýüýüü÷ÖŽ}v|pppppvpppvpppppvvvpoppv}}|vpppppv|vv}vp}}vvvvw}vv}vv}wwwww}}vv}}vv}vw}}}w}w}}}}}wwww}}}}w}}}}}w}www}×ýÿÿÿÿÿà‘}}}}}w}}w‘w}w‘�}}}w}w}}}}�}w}}w}}}}}}}w}€}}}}w}}}www}www}}}}}w}}{}�}wwwwv}w}wwwwvw}wwv}}www}}}wwwvvvwvvwwvw}{wwwvwwvw}{vvvvvvwvvvvv{vvv}èÿÿ÷מ˜vvv{vuvuvvvvyvvvvvvuuuuvvvvvuvvuvvuvvvyuvuuvvvuvuuuuuuuuuvvvuuuuutuuuuuuuuuutuuuuuullluv÷ÿÌv{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;óÿÿÿÿÿ÷Z  !qªíÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿèÓ557777575575555757777775777577757757577575777775775777755775777757=777777777777775557=55777777775557555755557555755775557555555575775557557555555575575555575575555555557557575555555555777555575555555555755557775555555ÓØÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿüüüüüýüýüýýú¬�s}}vpvvppvpppppvvvpppppppp}}pppvpppvvv}}pvv}}vvv}vw}vvv}wv}}}w}vvvvvwww}vww}}w}vww}w}}{}}}v}}w}}}}}{×þÿÿÿÿÿà�}}}}}}w}}}www�}}}‘‘w}w‘{}}w}w‘}}}ww}w}}w}}}‘‘}}}}�}www}ww}w}}}}w}�}vw}}}ww}wvvwwwwwvwv}v{wvw}ww}wvwwvvvwvvw}w}wv{}ww{}vvvvvwwvvvvuvwvvvvvòÿÿÿþúõèßÊž˜{vuvvuyvwvyvvvuvuuuuvuvvyuuvuvvuvvuuuvvyuuvuuuvvuoluvvvvuuuuotuuuuuuouultuulluluuuzúÿßvÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–!@òÿÿÿÿÿ÷Z!   pªõÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÓ5755555557555555557557555575757555777755775777577577577$77757757777755777755=777755557777777775777777775775557757575575755555755557555757557575555557555557777555575555557755755755555557775555555777555555557555775575777777755555ÓÓÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþüýýüüüþüüüùÓ�spvpppppppppppvpppppvvppv|}vpp}pvp}vppv|v}pvpv|vpv}}vvv}wvv}}}}w}}}ww}w}}wv}}ww}vv}}w}w}w}}}ww}}}}w}ww×ýÿÿÿÿÿàwww}w}}}}}w}{w}{}}}}w}ww‘}w}}}}}w}w}w}wv‘�w}{}}}ww}w}w}w}w}vww}}}wv}wwwwvwwwwvw}wvv}vvvvw}{vvvww{wwvvww{vvvvvvvvwvvvvvvw{wvv}{vvvvvñÿÿÿÿÿÿÿþýúõñèß×›vvv{vvuvvvvvvvvvuuvvvvuuvuuvvvvuuvuuuouvuuvuvuuuuuvuuuuvuuuoooluuuluuttltuvu{úÿòÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ@òÿÿÿÿÿóY  qªõÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿèÓ77577755557575557775755775757777775777777=77557575775577577777777777757777775777757757777757557757557577577777775577777755575755577557555755775775575575555777757557555775775555755775577757555557775755555775575557557775577577577555555775555775555775557577Ö×ÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿüüüüüýýüüþü÷ÓŽspppppvppppppppppppp|}ppp}|ppvvppvpvppvvv}vpp}}pp|v|v|v}v}wv}}}v}}v}vw}}vw}vvwvvw}vwww}�}w}}}}wwwv}}×þÿÿÿÿÿàv}}w}ww}}w}w}}}w}}€‘}}}}w}w‘}}}}}}}w}}}}}}}}w}}wwww}}w}}w}w}}www}}{}w}{vw}}}vw}www}vww}w}}wvvwww}w}wwvvwwwvw}w}www{}}wvvwvvvwvvwvv{}vvvvvv}}vvvvvvvvž×æñ÷ýÿÿÿÿÿÿÿÿÿü÷èžv}}vvuv{vvvvvuuuuvv{vvuuuvvvuuuuvuoltuvuuvvvuuuuuvuluvuvultluuluvuuulllluuu˜üÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y    =qªõÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿæÓ55557557577775757777757755775757755777755575757575757577577755777777557577777757777777775557775757577875577757577755777775755775755755557555555775557577775755757575575575575777755755755575555755557777555575555757555555555755755575775555557ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüýüüüýüüüõÕ�qpppvvppppvppppppppv|ppppppvvppv}}pppppp|vppppppv}vpvv|vv}vvv}vvv}}w}vvwvw}}}vvw}}}}v}ww}v}}ww}w}w}w}www}}}}�×þÿÿÿÿÿßww}wwww}}}}}}}}w}}}w}}}}}}w}w}v}}}}}ww}ww}w}www}}}w}}}w}}{}}�}}}}ww}wvwvv}ww}wwwwwwvwv}{}{vvvvwwwwvvwww{vvwvvw}{vvvvvvvvv{w}{uvwwvvvvv{˜™žÇ×è÷ÿÿÿÿÿÿÿÿúÌ{vvvuvvvw{vvuvvuvvvvvvvuvvuuvuvvvvuuuvuuuuuuuvvuuuvuuuuuuuuvuuluvuuutuCuuu�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿóZ   7}ªõÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÔ55755577555757557557575575557577575775777757777575777777777777557777777775777575775777777757755777777777555775777777775757575755755775577775555575555555555577575555555557575577555555577555555775557557575755777555777557575777557775555577Ó×ÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿüüüþüüþüýýýúÕ�solpp|vpopppvpppppppvppppppv|pp}}vppppv}pppppppp}ppppv}}vvvppvv}wv}}}vv}vv}}wvw}}w}ww}vvwvw}}}wwwvw}}www}}w{}Ùþÿÿÿÿÿà{}ww}w}}w}w}‘}}ww}w}w}w}www}}w}wv}w}}}}}}}�}}w}www}‘wvw}www}}w}wvwv}}}‘}www}wwvvwv}www}wwwwvvwvw{}}}vwwvww}wwwvvwvv}vvvvwvvvvvv{w{}}wvvv{wwwvvuuvvv{wv{›ž×ñÿÿÿÿÿÿý×vvuvuvw{|vvvvvvvvvyv{vvvvvuuuuvvuvuvuuuvulouuvuuuvvuluuvuvvvuuulluuulltu{ßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!@óÿÿÿÿÿ÷Z!   !! =wªõÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿæÓ7557575575577577557575775577557755777775577557755757777757577557777777777777777777775778755777777757757777575575775777555575755575555755557555555555557775557557777555557775557575557555555555775755755555757755775575755577555575755575555557575575ÓÓþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕ�}pppppppvpppppoppv|vvppvvppp||vpvppppv||ppppvvppv|pvvpp|vvvpv|p}}vvv}vv}}wwvvww}}vv}}}}w}}}}w}}w}}}}}}{}}}}}}}}}×ýÿÿÿÿÿà�}}}w}}}ww}w}}w}www}}}w}}w}}w}ww}}}}}{}}{}}}}w}ww}}w}w}}www{}‘}w}}w}}}{}w}ww}{vv}{}wvww}wv{}{wvwwvw}}}ww}vv{www}w}{wvvwww{vvvy|yvvvwvvvv{vvvvvww{w{vvvvwwvvvvvw{˜Çèÿÿÿÿÿý�vvvvvvvvuuvuvuvvuuvvvuvuvvvvvuvuvuuuuvuuuuuuuvuuuuullvultuuuvy{”˜›�ÇÇÌßòýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿ÷Y!=qªõÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7557755557555557757555775755777587575775775575757777=7555777577777577575=7775777777757757778577775577757757557757557775777575775555755755755577557557755577555755555575575557757575555575757775575757755575557557577757757775555757555775577575557577575755577ÓÙÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿüüüüþüüþüýý÷ÓŽsppppopvvvppppoppp|v||v|pppv}|pppp}}}}}ppvp|prvp}vppppp}ppvvvvv}vvpvvvv}}}vpv}}}}wvvw}wv}}}wwvvvww}}}wwww‘�}}wv×þÿÿÿÿÿà‘‘ww}ww}wv}vvwwww}}}w}ww}w}wvw}w‘w}}}}}}ww}ww}w}www{}}ww}}}www€www}wwww}{}ww}wvwvv}v}}vwwwvw}}}}wwww}}vwwwvwwvv}}wwv{}wwvvvvwvv}}}vvvvvw{}wwvvvvvvvvvvvw}vwvwwvvwvv{vw{vvv˜žòÿÿÿÿ÷{uvvuuuuv{vuuvuuuuuuuuvvv{wvvuvuuuvvvvllvvvuouullultuuultty×òó÷÷÷úýüüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY   =q¥õÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿæÓ57577755555577757575777755757777755777755777577775777775757557775777777555757757777777575777577777777757777575757777757557555755755555757557555577755777577575575577555775557577555555555575555575555777757775757757577557557555575775557557757577757755555757775555575555575557755575777755ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüüýüüüüüüùÕ�ppppppppppppppppppvpvpppppppvvppvppppppvvvv|vvppp}|pppv}vprvv}v|v}vpv|w}}v}vvvvvw}}vv}}}}w}}w}}}}}}v}}v}}w}wv}×ýÿÿÿÿÿß}w}}}}}}w}www}}}}w}w}}}}w}ww}}}}}ww}}}}�}}}}}}wwv}}ww}vw}ww}}}}}www}wv}w}wwwvv{w}wvw}}wvvw}wwwwwwwwvw}wvw}}{vvwwww{vwv{vvw}vvv{w{w{vvwyvvv}{vvwvyvwwvvvuvvvvvvv˜àÿÿÿÿâv{vuvuuvvvuvvuuvuvvvuuuvvvvuuuuuvvuvuutuuvuuuuuuuuuouuuuouÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y !  =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿè×55575757555575777777775557757575577775575757777775775557777777585755757757577577757777757757775577577557777577577775777577557785555755557755555777577555575575755575557565575775555555555577575575577755577555775555557577577555757557755555577757755755555555575557575757575557577575557Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüþüüþü÷ÕŸsppvvvolpppvvpvvppoppoppopvppppvppppppp}}}v|ppppv|v|}p}}pv|v}}ppv|v}}|}}vpv}v}}vvvvv}}}}}vw}w}}w}www}}w}}vvw}}vw×þÿÿÿÿÿàwvw}}wwvww}‘�}w}w}}w}vwwv}}ww}�vv}}}www}}wwwwww}wwww}vv}}wvvw}wwwwvwwvwvvwvvvwwvvvv}wvw}w{}vvv{}wvwwww}vwww{}wvv}}w{}wvvv{}}wwvvvvvv}}vvv{vvuvvvw}{wvwwvuuuvvw{vvvv{×ÿÿÿþ›vwwwvuvuuvw{}vuvvuuuuvutuuuuuuvvuvuuuuvvvuuuuuuvvoluuuuulÊüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !@óÿÿÿÿÿóY      q¥õÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿàÔ555575577555775555777575557575775775775777777777757555777557777757757777775777577757777775=777775777777777777755777757757575575757757557577577555577557555777755757555775755577557775555755755755555777577555755757755555555557575575755557777555557577555557577577755757555557777555555555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüýüüüüüü÷Õ�}opppppppplpppvpppoppppppp|vpppppppp|pppppppvvpppv|ppppvv}vppvpvpvp}}pp}}pp|}}}vv|v}}vv}}ww}}vvv}}}vw}}v}}w}ww}ww}}×ýÿÿÿÿÿß}w}w}}w}}}}vw}ww}w}}w}vww}}www}w}ww}}ww}w}}}ww}}}}w}w}}w}wwwwwwwww}w}}}{}wvvww}{w}wwwv}wwwww}}wwwwwwwwww}wwvv{vv{www}vvw}wwwvvvv{vvwwwwvwvvvvvvwvvvvvvvvvvvvvvvvvvvv{ÊÿÿÿõvvvvuvvuvvvvvwuuvuvvvvuouuuluuuuuvvuuuuuuuuuuluvvuuuuuuluáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y !  !qªõÿÿÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ557555755557575775777775777757757577777577777757775777775777775775=7777777777577757577777777577777557755555577777777577557577755555577575777555557557575555575575575555557755755757775557555555575777575777555575577555777775557757575555575555577757755755575575Ó×ÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿüüüüüüýüþüüú¬sqooppopvplloopppp|pvv|ppppppvpvppppp}vppppopv||pp||vv|pp|}popv}ppp}}pppppppvvvvpv|}|vpvv}}}}vvpvw}vvvw}wwv}}}}}}}}}}×þÿÿÿÿÿà�{}w}}w}wvww}}www}w�}ww}wwww}ww}wwww}}w}}wwwwv}www}wwwv}wwwvww{vv}wwvwvw}}vw}}}vvv}}vw}w{}ww}wwwvwwwvw}wvvwvwwvwv}vvvvv{vvwww{www{wvwwww{}{vvvvvvuuvyvyvvvvw{vvuuvv{àÿÿÿ›uuuuvvuvvuuvuuvvvvuuuuuvuouuuuvvvuuoouuouvuuuvuuvvvuuu›÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY =}ªõÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿàÓ75755555555875555757757577777777775557777575777775757777577777557777777777757775577755777577777877775777787777775757555575777777577577755577777555557557557575555775555555577575575777555575555777555557775555555577577557555775557575555577557585575775557755775555575755ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüýüüüüýüõÕ�ppppppppppvpppppvpppvppppppppppppppp}vpppppppp|vvpppp}vpp}pppp|pp}p|pppp}p}ppvv|}vvvvv}vpvp}}}vv}}vv}}v}vwv}vwvvw}}}×þÿÿÿÿÿßw}}}}w}w}}w}}}}w}ww}{}w‘}}}}}}}w}ww}{}}}}}}w}wwww}}wwwwwww}w}w}}}}wwww{vwwwww}vw}{vv}wwvw}}}wvw}}{vw}{}wwv{vvvv}{wwvv}{vvvwwwwwwvvwvvvvv}wvvwvwwvvvvuvuvvvuvvwvvvvvuvvvvvuvvv˜õÿÿòuvuvv{vuuvvuuuuuvuvuuuvuvuouvuuuuuuuuuvuuuuuuuuuuuuuuou×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;óÿÿÿÿÿ÷Z! !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿèÓ5775575575555757575555755775757777575757777757757757777577=577775577787557777577757777777777=5777777757775777777575755577557555557577577755557775577755775555557555777777557575555557757577577575557577775555755555757777555787755777575575775555755775557775557555577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüýüüüüúÕ�spvppllllp|vvppvpppppplpppppppppp}|vvvpp}vppvppv|pppv}}v||vppprpv|p|}}}}vppp}}p}}pvpp}}}vpv}}}}}}vv}}}}}v}vvvw}}vvvvvw×þÿÿÿÿÿàw}wwwwwwvww}}}ww}}}wwvw}}vvvv}}ww}}}}}ww}{}ww}}wwwwwwwvw}ww}}‘}www}}vwvw}wvv}vww}wvvv{}}ww}{vw}w}vvwwvwwww}}wvvyvvwvvwwvww{}{}vwwwvvvvvuvvuuvwvvvvvvvvvv{wvvv{vvvv{vuvvuuyv{vvvžÿÿþ{vuuuvwvuvuuvvuuvuvvvwvvuvuouvuuuluvvuuuuuuuuuuuuuuuou{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y  ! !!o¥õÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿàÓ77575777557777777777777777777775777575675757777577775577777777777757577577577777775775777577775775757777575777777775557755785755775557755575555555757557777577575575777557755577755555557575555557757557557775575557755577755577755775777755775757557755577757557775775575555755557757775657555755555557ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüýüüþüüüõÕ�pvvplpppppwppplpvpppppopppvpppppppvvppppv|vvppppppppppvpvvp|pvvpp|v|vrp|}vvpprpp}||vvv}v|vpvv}}}|vvvvvv}|v}wvv}wv}}vw}×ýÿÿÿÿÿßvww}}}w}}w}}www}ww}}}}}w}wwwwvvwwwww}}w}{}}w}w}}}w}w}w}www}{w}{wv}}}vw}vvwwwwwwvww}vww}}w}{v}wvw}}wwww{vvwwwwwwwwvwvv}}vvvvvvw{vvvvvwvvvvvw{uv{vvvvwvvvvv}{vvvvvvvvvvvwvuvv{õÿÿ×vvvvvvuuvvvuvuvuuuvvvvuuuuuvuuuuuuuvvouuuuuuuluuuoluuÊüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ9óÿÿÿÿÿ÷Y   !qªõÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ77575555577777557575775777775557757575757557577777777777557757777777775755777577777575777777757757777777757777777775755757755757755775757755777775575777557775555555757557577755777555755757755575755777575555555757755775575557577575775755755555577575777755555777757757555555555557555755755575577555577757775557555755577757557557Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüú¬Žppppppppopppppopppoopvppv}vpppppppppppppppppp}}vpp}p}ppppppp|ppppvppppv|}p}vpv}}v|ppp|pp}}ppvv|vvv||v|vvvvvvvvv|v}vv}vÓþÿÿÿÿÿßvvvv}}ww}}}w}wwwwww{}www}ww}ww}}vw‘v}v}}ww}w}vvvvwwwwww}}wwwwww€wwwvw}vwwvvwvw}wwwwvvvvvw{}}w{}wvvvvww}{wvvvv{wvvvv{vvvw{}{wvvv{}vvv{vvw{{vvyvv{}wvvuuvvvywvvuuv{wÊÿÿõvuuuuuuuvvvuuvuuuuuuuulluvuuouwvuvuuuulllouuuouuuZluçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ! ;òÿÿÿÿÿóY !  !!qªõÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿþæÓ55555557575555557577575777777775577555755755775777577777777777577577577777757777777777=57777775777787757775777777775757577557577575557575755557557557757575577557777755557575575757575755575577577775575575557577557557577777777755555555777775555755777757755557557755555555575555755555557557755557577777777557555757575557577557575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüþüüùÕsppvppoopppppppppppppppvpvppppppvppppppvvpppppvv|ppppp|ppppppvvp|v||ppvvv|v|ppp}pp}||p||vvvpv}vvvpv}v}vv|v|||vv}}|vvvv}×ýÿÿÿÿÿß}}vw}}}}}}w}v}}}wvw}}ww}}}}w}w�w}w}}w}}{}}}{}www}}{}w}}}www}}w}}}w}{www}w}}ww}ww}w}wvwwv}{}{}wwvvvw{w}wwwwwwwwvw}wwwvwv{wwvv{vvvwwv{vvvwvvvvv}{vvvwwvv{vvvwvvvvvvvvvwvvuw}uvvvvuvuvvuvvuvvvvv{þÿý{vvuvvuuvvuvuuvvuuuvuuvuuuuuuuvvuouvuuuuuouuuluuuouu�÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;óÿÿÿÿÿ÷Y ! =qªõÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ75775557757757757757757555575757577775757775777777757577757775575777775777577757777557777557777757777757775777557755575775755555775575755557775575575757557755555575555555755775557557775577555557557775555757557777557757557577555555757557575755575557577555575755575577757557757757775757577755757555775755755557577557557757755555755777555775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷¬sqpplpploppppppoopvppppp|vplp}}}v|vpppopppp|pvppppppv|pppv|vppvv|||ppv}ppp|ppv}|pp}}}vvpp}ppr}pp|pppvvv|}}}}pppv}}}v|}}×þÿÿÿÿÿß}wv}wv}v}}ww}w}}wvv}}vwwwww}�}vvw}wvv}}}ww}www}w}}wvwww}wvvw}www{}}}vvvw{ww}wvwvvvww}wwv}wvvvvwvvwwvwwwwvv{vvw}wwwvw}wvw}wwvv{}wv{vvw}}vv{vvwvwvvvw}wwy}vvvvuvwvvvvuvwwvvvwvvuuw{vluvuuuuuuuvõÿÿ˜vuvwvvvvvuuuvvvvvvwuuvvvuuuuuuuutuuuuuuuuuuuCluollußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿóY   !!pªõÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿÿæÓ575777555575757577757775777777775777757577755777577775577775777755777757777777757777777757775777777777755576577775775575577577757557577775755575755755777577755757755777777555577577555555575775755575575755777557557557577555555755755757757575775557557557755575577775757555555775555555555755755557755775755577757555757557577757775557755557555575777775577575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüþüüüüüùÓ�sppoppopppppppppppopvpppppopvvppvpvvppppppvpvvppppp}ppp}pppppvppvppppvrpp||ppv}ppv}pvrvp}ppv}|pv|v|vvv|vpp}}|vwp}}pv}}Óýÿÿÿÿÿß}wv}v}}}w}v}w}ww}}ww}}ww}}}ww}}}}}w}}v}vwv}}w}wwwwwwww}}w}}w}w}}}wwwv}w}}}wwww}w}}{w}ww{wv}{v{w}vw}vw{vvvwvvwwvwwwvww{wwv}{wvv}}{wvvvvvwvvw}yvw{w}vvvvvvvvwvvvv{vyvuvvvvv{vvvvvvvv{vvvuvwvuvvvvvuvuuvßÿÿÇvuu{vuvuuuuvyuuuuvvuuuvuuuvuuuuuuuuuuuouluuuuotuuuuèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ9óÿÿÿÿÿ÷Y   qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ55757577775757577775577775575777777575777757777775777777557775777757577777777777577777577775577575777757775775777777755777757577775777775777775777557557557575557757557775755555557557775755777577555577775755557575577775577575757777755775777575757555577555557575555575555755577775755557757557575757557575555577775575577557555755775557755555555557775555757575775557××ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüþü÷Ó�pppppopopppvvppppppppoloppplppolppppov|vpopp}pppppp}ppp|p|vpp}}vppvpppvvpvvpp}pppp}|v}}vpppp}|vp|v||||}|ppv|}}}}}}ppvpÓýÿÿÿÿÿàvvv}}v|vvvvv}}wvv}}}}w}}}}w}vvvvwvw}vv}‘w}wv}‘‘wwwwww}wvww}wwwww}{}vvw}vww}}}}w}}}{vvvvv}wwv{}vwww}wwwvvvwvvv{vvvwwvvvww{}}wwvvvv{vwvvv{vvvvvwvvy{vvvuvvvvvvwwvvuvvvvvuuuvvvuuvv{vvu{vvvvwvÌÿÿÙuuuvvvuuuuuuvvuuuvuuuvuuluvvvvvvuoluuvuuuoouuvvuuu˜óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y!!  ! $wªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿÿÿàÓ55555555757755757557577757777757577775757777777777775757777777577775557775755$77775=7775777757777777=775777575777777777577577757777755777575777577577757755775577577757757575575577777755757575575577555557757757577557755757577557777555555557575757557577755575557757755555755575555757577557557557775575557557575777777555755557755575555557757557756555757775755575555757557557ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüù¬Žsllppppplpppvpopppvpopppppop}pppppppppvvpppp|vppvpvvppppp|ppp}|ppvppppp|vvrpvpp|pv}vpv}vpppvv|v|pvv|pp}}vvppv|vpvv|||vÓýÿÿÿÿÿà|vvv}|vv}vvv}}w}vww}v}}}vv}}}}www}wv}}ww}}ww}}v{}}}v}w}vw}{}wv}v{}w}}ww}v}{wwwwwwvw}}}}vw}ww}vwww}ww}w{wwv{vvv}{vvw}wvw}{vvvwwv}}vvwyvvvv}vvwvvv|{vwyvv{vvvvvwwyvvvvwuvvvw{vvvvvvvvvuvvuvvuvvvvuvwvvvuvv›ÿÿßvvvuvvvuuvuuuvuuuuuuuuuuuuuuvuuuuuuuouuouutloutlooÇúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@óÿÿÿÿÿóY   !q­õÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿèÓ75557555557557577777777777577577777777577777575777557577777777775577777757757776=57777777777775575757777777557577775777757775757577777577755555757777775557755555755776575557775557775757755775555757775755555775755575775577755757555577577555775557575775775555755555755557555777775757755557755555757757775557575575577557775757755575777775555775757755575775775757775555757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüþüü÷Õ�}pllopvpllooplllppppppppppppv|pvvvppppppvvvpv}vppvv}pppp}}pp}volp}}}pp|vpp}vppppv|pppp|pp}}}pppp|}pvpp|vp}}}}pppp}|ppvÓýÿÿÿÿÿßwppp|}}}}}}|}}}v}}}}}}}}}vw}ww}w}‘}wv}}}w}}vw‘w}wvwwvv}www}}w}ww}ww�‘}}vvwwvvv{vwwwvv}}wv}wvvwwwwvvvw}ww}vvvw{vvww}vvvw}wwvvwv}vwwv}wvvv}{vv{}vvv{vvvv{}vvvv{vw}}wvvvvvvvvwvvvvw{wvvyv}w{vvuvyw{w{vvvvuuuvvuuvvvvuuuu˜ÿÿèvvuuuuuuuuuultuuuuvuuluvuoltuuluuvvuuoouuvvulllCltÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!;òÿÿÿÿÿ÷Z!!   pªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿàÔ575577575577755755777557775775777775777757577777575777577778777777777777777775755777777757577775777$7757777775777777575575777755775555755557557577757575755575757577755777557587555575775557575757777555557577557557757577577775575555555775555555575557577577775755555755757777555775555577775555577577557555777757877757775775557755755575777557755577577577557775777555555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕ�pppopppooolpppppopppvpppppppvvpppp|vvpppvpvvppvvpppvpppppvp}|pppp}}pvvvppvvvpppp}ppp|p|v|ppp|ppp||pppp}}vrpp}}ppv}vpvvÓýÿÿÿÿÿà}pv|v|vv}}}v|}|pvv}€}}v}}v}vv|vw}}}}wvvv}wv}}w}w}}w}}wwwvww}w}w}w}ww}w}}{wvw}v}ww}wwwvw}{}{w}{}w{w}w{wwww}v}{ww}}}{vv}{vvvvvw}vv{wvwwv{vvvvvwvw{vvvwvwwwvyvvvvwv{vv{vvvv{vyvvv{vvvwyvvvv{wwwvyvvvvvvvvyvvuvuvvv{vuuvvouv›ÿÿèuvuvuuuuvuuuuuuvvuvuluouvuloouuooulouulloouullloCC×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!;óÿÿÿÿÿóZ  $qªõÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿèÓ77755757757757555757577577777575777577577777777=57777557577777777777777757775777777777775775757777757777557775775577775777757757755577557775777755555555775575755555775755557775757755755757777755755577557557575575757577855755775555757577577557555757755757555757757755557577757555555577555577575757777777755575555577555555755555785775777577575557575575757757755777775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüúÕŽqpppoopppoop|vpoppolpolppppplllploppppollpp}pppvvpppppplp||vpp|}||pp|||p}}}pv|||vppv}|v}}|vvpv}}}|ppp|}|pppv||p}}ppv}}×ýÿÿÿÿÿß}v}pv|vpp}}wvppppppvvppv}vvpv|}}vvvv}}}vvv}vv}vvvvvwww}}}}}w}w}}}}}vw}wwwvvvwwvvw}www}}}ww}wvv}vw}}}}ww}ww}}}}wvvvv{}}wwvv{}vvvvvvvv}www}}}wwv{}wvv{w{}}wwvvvvvv{}vvvuvvvvvvvvvvvvvvvuvwvvuuvuuuvvuuuuvuvuuvvvuuvžÿÿèuvw{vuvvvvvvvvvuuvulluluvvuuuoullCllullulClllluullßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y !!=s¬ùÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿþÿàÓ775575555757577575555777777757777575757777777577777777777777777=7777775775777777777577577777575777575775=7775775777757757557777777577557777557575557575577777755757755757755577775575775557577577577757577757555755557775557555557557577575775577555557557775755555775757777577575575577757575557575557585555775755775757555575755777777757775575777ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕ�}opolopppoooppppvpoolppppppplplovppppppplppvvppv|vppppppp}vppop}vop}|ppvv|}ppv}ppppp}|pv}vpp|pv}pp|vpp|v|vv|ppp}|pprvvÓþÿÿÿÿÿÙ}p}|v|vpp|p}}pwpp|p}ppvp}|v|}vvv|v}vv}vv}vpv}w}w}vvv}w}}wv}}vw}vw}ww}wv}wv}}wwww}}wv}{ww}w}{w}ww}vvwww}wwwvwwwwwv{w}ww}vwvwww}{v}wv{v}{wvvvvwwvw}{wvwvvvv}{wv}w}v{vwvwvvuvvv{vvvvvvvuvvvwyvuvvvvuvyvvvvvuvuuvvvwvuvvvuuuvvuuÇÿÿ×uvvvuouvvuuvvvvuouullulouulllloullllluClulClullllCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y   sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿèÓ575575755555557775757577777777777777=5555777777575577777575557577777577577577777777777577777777777777755577777777577755557777577777757557757775777555557555555575757777555777757755557757755775755557775577777777755775577775757775757777575575777557575757557577575775557577557555757557555755755757557777575577557757555575557577575775755777555775777575555755575577755575577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüýú¬�soolpvolpvppllppvppvppooopvvvvppv}vpp|vvpppppppplppppopppvolppv}ppp}|pppppppp}}pp}ppvpp||pp|}}|pp}||vpppvppppv}pp}}vppÊýÿÿÿÿÿÙvvp}}}pp}pppppv}}}}v}}}ppppv}}p}}v|}}vv}~}v}}v}vvvvv}}}}vw}}v}}vvvvvw}€}v}}}wv}}}vv}vvw}w}vvwvv}}wvwww}}wwwwwvwwvw}vvvv{vwwvvvvw{}}wvvwv}{}{}wvyvvvvuwwwvvvuvvvvvvvvvvv{vvv{w}wvv{{wvvvyvyvuvvuvvuuvuvywvvvouv{vuvwvuvuuuvvÌÿÿÇuvuluuuuuoouolulluvvuuvuulCuvvvuuutltllluvlCllCCClçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿóZ  ! q¥õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿþÿÿæÓ557775575575577777777577777757777577775757775755775777577777775=777775777775577777577757777777777775577757777757577775755757755755555577555557777557555755557557557557755557757577775775575775575555555555555757775757557555757555575755755575755575777555557577555757755777557757757757555777575755575555757557775555575557575575755555775555577775757557755575557555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕ�pooopvplppppplopvppppooopppp}vplpvppvvvplopppvpopppvpppppoppppvvppvpvvpppppv}pvppvpp|vv|pppp}||v|vpv}|pppppppppp|}}}poÓýÿÿÿÿÿßwpv}|p|pv}v|ppp}}vvpv}|ppv}pppv}}vp}}|vv}}p}vvvppv}p}}v}vv}}}vwwvvvv}}}}}vvw}vw}}}vvwwwvw}}vw}ww}}w}}vvv}}wvvw}wvvvwvvwvwvwwvvvvw{vwvw}vvwwwwwvwwv}vvw}wvvvvvw}{vvvvvvvwvvvvvvvvvvv}{wv}vvvyvvwvvwvuvuvvvvvuvvvvuvvuuuuv{vuvuu}ulovuvàÿÿ˜uvuoouvoollotolulllulovolllouulolllllllllllCllllCláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ ;òÿÿÿÿÿ÷Z!   !  !!qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ555557575777757555575777577577777757777757757777777777777777575775777557777777775777777777775777575575777757777575757777777777757577575755577755777755775555575755757775557555755555575755555577775757577575775577755557575555575775555555755555575755557777557577557555555775755575777785775575577557555757775557577575775557557555577555755555755555557557555575757855757555577575755777557775777777577555557555557557575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷ÕŽsppollpollloopololllpvpplpoppolppplppplpppvppvpoppv}vv|}vp}pppppppppop|vvpp}}ppppp}|pppppp}}}}p}pppp|}}|}}|}}|pprpppppÓýÿÿÿÿÿÙwp}}ppp|}}p}}p}}|p}pp}|v}}}vvpp|}ppp}v}vpppp}|}}}}}}}vvpp}}vp||v|}vv}vvw}}}vvw}}w}}}}}w}}wvvv}}vvvvvvwvw}vv}vvvvww}vwvwvwww}vwvw{}wwwwvuvwwvvw}vvvw{wvvvwwvuvvvvwwwvvvuvvvvvv{}vuuvw}{vuvvvvvvvvvvwvvvvv{vuuvvv{}vuvovvoluuuvuovuuvúÿÿ{lvvouvvvvuluvvuoolllllllluololllllllllllCCCllCllCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Y  !=qªõÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿþÿþÿÿþÿÿþÿþæÓ5775575557575755755757777577778575777777777777577777777575=777777777777777777775557777755757777775775777757777777777755575755575757557557575575557555757577777775557577757775755555755557557575575757757555775755575575755777757555575777577557787555755577755557557755557575775555775555577575555777555757557755577555575555777555575575557555557777775755755755557575757557777575777575577555575775755757757775757557577755755777575755775577575575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüù¬Ž}llloopllloplpopppllpppppopppplpvpploooppppppppppppvvpp|vp}pp|ppplppppp}pppvv|ppov||pplppv|vr|vvppoppv}}pv}||vppvpppppÓýÿÿÿÿÿà}pp}pppv|pv}|}}|pppp||p}}pp}}ppp|pvppp}}pvpvv}}}p}}}|vpv}vvv|}vvw}vvvvvvv}v}vv}}}wvv|wvvvw}}vvvvvvvvwwvvv}v}vvvwww}}wwvw}vvv}vvvvv}vvwvw}}vwvvvvwwvvvvvvwwvvvvvvv{vvvvvvvv{vvvvvvuwwvvvuvvvwwvuuv{vvvvvuv}{vvuvwvvovvvvvvvvuoovulppooouuouuÿÿýullolovvoovlllooouollllllllllllClllllllCCllCCClllllßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y!  !=qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ7777755775775757577777757775577577575577577777777775575777877777777>57757777777757777577775775777787577777777777577577755777777777577757755557757557777577577555557757557557575777755775555755577577757555775577757757557577755777755577757575575575777755557775577575555575778755755755757557577577775555557555777575577557555757577757757555755775755775577775775575755755575755755755575775775755575577575777555577555775557577557555555575777775757557575ÓÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷Õ¢}oopppoopvplllppvppv|poppppppppppplppppppoppvvpppopvpppppplppvpv|ppvvlpppolpppvvppvpvvp|vpvpppppp}}pvp}rvpppv}vv||}}}vÓýÿÿÿÿÿà}pp|vp}|p|}}p|ppp|}}pp}}pp|}}}p}v}}}pv}ppppv|vvpppvppvvv}}}pv|vp|vv|}}}pw}vvvpv}vvvvv}}}}vvv}vvw}}}}}v}vv}}}vvvvvvvvvwvvv}}vwvvvvvvv}wvvvvvvw}wvw}vvvvvvvvwvuvvvwvvvvvvvvvvuv}{vvuv{}vvvuvvuvvvvvvvvvuvuouvopvuluoluvvlououvoovvllvvuouvvop�ÿÿ÷lvooololllllooooolooluollllllllllllllllllolCllCllllÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóZ  !!s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿþÿÿàÔ75755557555557555777755775577777755757577577757778877777757777775777777775777$77577777757575777757757777777777757757757777757775777577575575577755577577787555555777775577557577755757757555777577775777757575577557557575757557555757757775577577575575577775555777577557557557575575757757757775757557577755577755775775575755757577755777757777757755757575757755555577577775577777757555575775557755575577577775755555775777755555775577577755577757555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüõÕŸ}lpppollpppppllopppp}vpppppoop}ppoooppopplpppppvplp||ppppopppp|pvvpppplppppppp||pppvppvppppvopppp}}}pppvppppp}|vvv|vvvÓýÿÿÿÿÿß}ppppv|}|p|}v}vpppr}}pp}|pp}}}}pp}}}rvp}pp}p|}p|vv}vp|vv|}}|v}|vvvvvvv}}v||v|vv|vpv}}}vvv}vvv}}ppvv}}vvw}v}vv||vvvvv}wvvv}}v}vvovvvvv}}vvvvvvvv}}vvvvwvvuvvvw}vvvvvvvvvvuvwvvvpv}vvvvvvvouvvovvoovvvovvvuoovooooouooouolvuvvooloolovulooolpvvloàÿÿèlollllllllllouopllollolllllllllCCClllpllllCCllCllllÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿ÷Y ! 7s­õÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿèÓ57757577557555557555575557757777777757777777775775775777=575577777757777775777777777777575577757755777777755777577775777575575757775575775555555577755755777558757555557555775577777575757757557575757775757775755575757777555557777775777557577575557757558555777557557757585577757777587757777555775757577777575775757557755575575755577575577777775777775577577755557575575755555755755575555575777555577755557577755555757577577577555557757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷ÓŽpolpplppoppopoolllopppooloppoopppvpp|vppppvvppppolp|pvvppppvvpppp||pppv}|pv|}vppvpopv|||}}|ppp}vvppppppppvp}pppppppvvvÓýÿÿÿÿÿÚww}p}ppppppvp|vp}ppvvpp}}vpppp}pppvpv}pv|}}vpppprp}rppvpvpp|vpp}v}rwppvpvvvvvp}|vpv|pvvv|}}p}}ppw}v}vpw}}vvvpvvvv|v}}vvppvwvvvvvvv}vvv}wvvvvvvvpvwvvvvvvvpvvvwpvvwvvwvvvvovwvvvvwwvvvvvvvvv}vvovvvvvvvvvvvvvuvvvvvvvvvvpllvvpvuooppvvvpvpvoloollvýÿÿ×ullloovlopllllllClloollllllllollllCClloCCCllClolCCC›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@óÿÿÿÿÿóY  ! !!pªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþÿþÿàÓ75577775555755755755575555777777777777757777757775577577777777777875775577577777577755775777777575755575577877775777755577775755775777757775555777755555577757557757757577757775557557555777555775557775575757757775777555555757557775575555755577777775775575775757557775855557575757555755777555577755575775557775555577755557557577575555557577757555777775757757575557575775757577577755757777777557577557757575575575757575757ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÕŽpllopoloppooolplllppplppppvpoplpv|ppvpopppppvpppppvvpp|}ppv||vpppppppppvv}|vvvpo|pop}ppv}}vppv}}ppppppppppv|vpp|ppvvppÓýÿÿÿÿÿß}p|}||ppppp|||p||vp|}pppp}ppppppppppp}vp|||p|ppv|vppp}pppp|}pppppv}}|pppppv}|pp}|vvvvv}}vpv}}vvp}}vvvv}}}}vpppvvvv}}|vppppvvovpvvvvvv}v}vp}}vvpopvvvvpopvvvovvvv}vvvvvvoopv}wvv}}vvuvovvvpvwvvvvvvwvvpopvppopovvlvvpvpoollopovplovv|vouvovooplloÌÿÿÿƒllolooollpoolllll?lpllllollllllllll?lollCCC?ClolCCl{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ@òÿÿÿÿÿ÷Y!!!! !  mªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ775575775757757775775787777557775757777757777777557577777577777577577855775777757755777775777757557577775757777757575775575577777577555755577575557775555575755577577755755555557777555575555775777775757575575777575555775557777757757555755775557555775757575555557557777557775575575757575777775777755775757575575757755577775575575555557757557755757557757575775555777575775577555577855757555577757555577775757775757557575775757757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷ÓŽsplpppopllppvppppppllopoolpppolopplppppoppvvpvpopop|ploppoppopppppvvvppvppvpppv|vppp}plpvppppp|ppp}pv|vv|}ppppvrpp|}ppÓýÿÿÿÿÿß}vpvv|v|}vv|vpppppp}pp||p|}}~p|}}}|pppp}|vp|}vp|}pp|}pp|}|}|p|v|ppv|pvp|}||}pp}|pppp|vpppopppvv|pp|vvvppppvppvp|||vpppvvvvvvppvvvv}||vpoov}vpvppwvvvvwwv}vvpvvvvpovvvvvvvvpvplovvovppppvoppoolooopvopoooppopovvvlooopppvvvvpllllvlovlllloololClvüÿÿ÷olooollllolllCllolCoplCCClllllClllllCClCCllllClCCllluèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Z  q¬õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿþÿþÿþÿÿàÓ77777757557777777557757577777577777575777577777777777777575757757755777777755755557775777775777577777755777577757777575755775557575755575575757557577555555757757755575777775775757575575755777757777755775777577755577777755577775555577575557575557555775755557557577555575577575775557555777777785575557755757557755755775555577757757575775757757555755755775755777755755557757577558575757577577777775777775557755555575775577757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÕ�plllopppplpvvppvvppllppllollollpplllppppopppppopvpoppplpvpooppppvv||pv|ppoppop}}vpppp||pppvvpppplv|pvvpp|vvvpppv|vp}|pÊýÿÿÿÿÿàpp|ppvpv}pvvpppp}vppv|}|p}}}||}}}|pppppv|vpvrv}pppvvpp}||||pp}}pppp|pp}}|ppp}}|pppppppppppppp}vpppv}ppvvpppvppv|vppvppvpppv}ppvvv}vvvppp|vvpppo|vpv}|}}}vvv}vppopvvvvvvplpvvolppppvpopppoppllopooloopvvov|vvpvpopvpplpvppollllopllllllolllplllÇÿÿÿ×llloopllplllllllCllllC?C??llllCllll>llllllllCCllCCCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷[     !q«õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ755575575775777575775775757777777777755777777777557777777777757777777757757755777777577755777577577775777577777777777777555775557575757555775577555757777775757757577575775577557755555575777777555557777585585757577575557857757577755557757777755557757755557755755757777757777757777755757575557755757577577557577557775575555755755555757777555757575755755575555577757577757755555777575555577757577755577557577757555577777577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷ÓŽsppolloppollpolppplllovvpppppppopvpoppppllpppppppvvppvplpppppppvppopvpppvpopp|ppppvvpp}vppppp|}vppv|}ppp}vppp|pp|}vppvÓýÿÿÿÿÿÙvvv|v|ppp|pppp|pp~}pvppvppppppopvp}vprw}pp}}}vvvpvpp|p}vppvvpp}}vp|p}}vppp}v|vppvv}|vv|}}||v}vpppp}}|pp}ppp}}pvppppv}vvvvvpp}vpppp|vvpvvpvppvvpp}}vpoopppppoopvvvooppvpvvpoppopvvpoopvpppppoopppppoooppollvpoloollollpvllolpololllppoolollpplCvüÿÿÿvlllpllloollllllC?lllllllllllllClllClllllllll?lllllCCl�üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY !q¬ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿàÓ75755577755575575777575775577777757777777775757777755=7575775577775777757577557577777777577757757756757575777575757757775775577757577575577557577555577757555577775577575755777575775757577757775557555757775555555757755777757777777757777777757577775575555555577575757775755758555777557555777777577557575575577577577757575577777777777757775775755575755775585555557567755575775777557757775577755577775557555775575755775757755ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüù¬�qpppllpoopllpvplolppllppppoopvllppllvppllppvppppvvpppvvpllopvvv}volopvpp}pppp|pppp|volp}vvpp|vv|vppv|pp|vrpv}}pp|}vppvÓýÿÿÿÿÿÙvop}}|ppppppppvppv}|ppppppp|vppv|p|}}vp|}v}}}vv|vp}vpppv|}pv|pp}}}ppp}vppv}|v|p||p}}|pp}}}}|}vpppv}}|v|vppppvvpvpoppv||ppvpppvop}pppppppppopvvvvv}vplloopvpopvv}vooppvvpvppoppvvoooovpppvvvvvplllpplllplllpppollplllloplllooollloplllplllvplloÇÿÿÿñolpplllllllCClllCCllCCllllllllCllCCopolCCllCllllCCCCC?{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!!!!! ! =}«õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÓ5755757755755577555555777=777777775=5777777875577778755557577777577575777777777777777577777775777777775777777577577575757555755757577577775555755577557555775757777555777575775555557577577757555755757585577577777757777755757575777575577755755775757755755757755577575555755757577577557755775757775755757777575777777755777755757777777557777775577755777777757757555577575757757777555577575755777775555557775555755758Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÓ�qlooppollloollpllppplppolopppplp|vlpvvoppppppopplppppppppppppoo|plpppvpppppppvvvvppppvvppppvppppvpppvppppvvpvvppvvppppÓýÿÿÿÿÿß}v|pppv}ppvp|}|v|vppp||}|pp}}po|}pppvppv|pppppppp}}}pvvp|ppp|v|pv}p|}|ppppppv}v}ppp|pppvppppppp|p}ppppppp}}|vpppp|vvppvppp}pvppp}}p|pvpvvvooppppvppvppvpv}poppppplpvpppppppoopoppppppolpppooplpppvwpoppplpllpplopoloolpploppoollpvllolpllplCllúÿÿÿÇoollllllllllollllllllllllClolClllCllllC>lllCClClllClllláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Z ! 9qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿÿþæÓ577775777755577755577777777775777777777577777777787=7757775=777777557777757777757575775777777777775757757575555555757785555777757577557557775777757757677757577577777777755755557775557577555767557577777575577777757757775575577877575577577577577755777765575777575577757757575775575755575777557577777555777557575777757557777557775557775775777777575755557775777757777555775777775775755577777557558755577575755757855558577755777775775755777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÖ }lloppllloppllllllllopllppooolllvppppppvploppppplopvppolpvvppllppp}}|pvpolppv|p}}vpop}ppppppppvpppppppppvvpppppop}}pvvÊýÿÿÿÿÿà}vpppp|ppppp}}pp}ppv}pv}ppppppppppppppv}}pv|pppv}}}rv|ppppv|}vppv||}}p|vppp}pv|}vppvppppppop|}pv|ppppppv||vpppppv}poppppppvp}vpv}v}}|vpppolpoppp}vpoo|}vppoopppppppppplpppllooppv}vvplopllllllv|vppplpopolllopvopplllopllppoppllpolplllll?ll˜ÿÿÿþulpvlllppplpollllllllppolllllCllol?lolCC?lllllllllllClllÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY  !!!      !! qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿèÓ7777777777775576757775777777777775875775777777777777557$7577555777577775777757775775775757777757757577757777777757775565755757577555775755757577757555757775757755777777577777557577785777777557775757755757757575555775775755777757775775577575777757757577575777555777575575777577757577755577875777777557755555555575757557777775757555777575557557775757777757557557577757757575578775757557577577777577777775755777777757755555757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷Ó�Žpollloppoolpllppppppoopvplppplpppppppppopppllppvpp|ppopppppplp|pppoppppppppploppppvpppppppppp|vpppp}vpp||ppppppvppp|vÓýÿÿÿÿÿÙwvppppp|}||p|}ppprvppvv}ppp|v}}p|vpvvvpv}pop}|v|pppppp|v|vpp|pp|ppppppvrpp}vpppppppppp|v|vppp}|pp||ppvpv|vvppvppp|vvpvvvp|}pppp|ppoppppvvvppv|povppppovvplppp|popopppvpoovpppopoppplloopppop|ppppllpppppppoollvolllpppvpllvplplpllllloplpppll÷ÿÿÿèllllllllllloplllllolClllllllllllol>CllllCCCCCClC?CCCCCCCvñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@òÿÿÿÿÿ÷Y  !!pªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿþæÓ57777757777575577557777777577778777577777777787577775787755757787775775777777777777777777757777755777777777777577777587758775757755757557757757577777757777777775775775757577777575755575777777777777777777557575555577555777557777775575577785775557757575775777775775755775777557775575775555775777555757577577775755577775557777777777777777755775777777555777757577577577755577557877575767777577557775757555777577ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüù¬Ž}pppllppllpllooopppploppvppppllloopppppllppplllooopvvollppvvoopppplpplplpp}vpoopllp|pooop}}plppppvppppppppppop|p|povppÊýÿÿÿÿÿßvpppppppv~}}}|pvvvpppp}}vpvvrp}v}}}pp|pp|}p}}}}p}pppppppppppppv}vppppppvvvvvppvpppvppp|}}ppppvvpppppppppppp|}||vv}}p|v|vpp||pppvvpplopppv||vp}vppoppppvploppvvppppop}|pppppvpplllpplolllppvppvplllopvvvollpvplllllloppvpopplolllllllllppvvvv˜ÿÿÿÿ˜pllllCll>lloolllllllllllClClllllC??Cllll?Cll??CC>>>CClCClÊýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ  !óÿÿÿÿÿ÷Z   !      7p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿèÓ557577775577557755577777577777757777777777777777575777757887777757775577777577757777777777757777775755775775757775777577575555575777757575857577777758777575555755577777557777577875775557777577777575777775577757575577575777577757575777557777777577755777777555777777757755777575777757775557577557775775557777777777757757578777777755775777775577777755577777575877777755577755777777775777555ÓÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõÕ�pllppllllppopppolopolllppppppppppppploppppppppppppvppppppppppopppppvpvpvppplppppvpppvppppp}popvvvvvpv|vvpppppppp}}ppppÓýÿÿÿÿÿÙ}vvvvvppv|vpppp||pvppvppp|p||vvppp|plrv||pvppplppp}p}|p}pp|p}|vppp||vvv|v|ppppp}pvppvvvvpppvvvppvvppp||pppp|vppppvpvvppppvvpppvppppvpppppppvpppppovvvvplpppppppvpvvlooppoppvvlpppv|ppppppppllpvplpollppolpoloppppollpploppllpopooolllllllllp÷ÿÿÿèClllplllClolllllllllllllllllCClplClllllCCCCllClllCCllCC>?lxñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿþÿþæÓ577757777777777575577775575777777775=78777887777787775777577775777777777777575577775777757577775757577777775555777777777775577777757557557777777575757577757777777777577777757755777777777877577575757775575757577757577755775577777777775757777777777755555777555775757577777777555577577577775577777777757557757775755575777755577775577785775777777757775577757577775777557577757575757577577777757775757775775757777777777777777777557775ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüòÕŸplllollllpopolllllppllpplllllvvvpooolpv|vpllvvppp}vplopovvllpvlovpop}|vv}pplppppppp|p}}vpoopppv|v||v|vvppp}}}|pppppppvÓýÿÿÿÿÿß|p|p|vvppp}pp|vp|vrppppppvv|vppopppopp|ppppvrppv}pp|}}}||pppppppo}}pppp||pp|pppvrvv}|v|vpv}|||vppv|ppvvppppplpppppppppp|}ppv}}popv}pppv|vp}vpopvov|ppopopvplppvppvppollop}|vppvppvvpopvvplllollolllllpolpplplpvpllolllllllllloplplopllllllÇÿÿÿÿ{lllooolCClllClloollllCC>lllCj>lolllllC?ClCCC>ClolClCCCl>>CCÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿóY  ! !  !s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿèÓ558767777777775577577777777877777557757777775777777777777777757775777777777777775777757777777777757757775777555577775777575757775757755555577575767777555557575557775555577777755757575777757577577775575777755777777577755777577757777555775557777777575775777557557657777577775777577777557777777777755775777777775777777777757557575577757777777577757777777757758775775577775755757577757777777577777777758557577555677575777777777777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷Õ�sllpplllllloppoolpvplopoopppooooppppllvvppllp|llvvpoppplp}plp|vpplpvpppppppv|oopppoppp|pppppvvppppppppppppvpppppppppppÓýÿÿÿÿÿÙwvv}vpp|pop}vppppvvvvpp}|v|pvpvpppvpvvvvvppp}ppv}ppvvvppvvppv||}pp}}ppppv|ppp}pp||vppppvpppvppppp|p|vpp|vppppvppppp||ppp|plp}ppppp|pppppvpppppppplpvpppvplpvpopvplpppppppppooopppllpplopppppplpppppplppploopvplllpvpllpoplllllplpolllloollvüÿÿÿßllllllllllllllllllClllllllolClClllClllllllll>llCCCllCCll?ClluñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Y !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿþæÓ77757577577757557775775757757755=577777777777777877>77775=7755775777777777555777777777777775775775775777575777755777577777777775577757775577757777777777555775757757575777777777757777777775557757557575575775777675755777775757777577777755778577575757777777575757555777757757777775577557577757557787555557575777777775777575757777757575777757577755777675777557775777857777777777575575575777777775777757555777775555557577577777777575775577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõ¬s}ppv|vvpllllooollloloollovvv}ppooopollopollllpopopllpvpllpopppv}plppooppllp}popvpppppvvv}}pv}}ppolpppppppv|vplpv|pppvvÊýÿÿÿÿÿÙvppppv}}}|v|ppoppploppp}}}pvv||p|vpvvp||p|vpppp|pppvpppppppv}}vppp}}ppvpppvppv|}||vpppppvpp|vppp}}vp|}}}}vpp}}popppvpppopllppopppvvppppppvplpplpllppv}pppplopplpllopppppvvopllloppplpllpplpvpllppppvpovplllv|plllo|vpllpllllllpvvpplloppllßÿÿÿýolooolllllllollllllClolll?lollllllClllllllC?ClllCClCCCCllCCClCÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @òÿÿÿÿÿ÷Y! !!! p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿè×7577757777775757757555777=5787757=5777=5=577777577575777577877777777777777775757775757555777577777777775775775555555757775777557575757575577555577577777777777775777575775777777757755757777755577575575757755577777557577755775777577555755777757775775557757655777757577777577777577775758575757755577777755777555777557755555577777777757757577775775577777775575757557577855787757577557557777777775577555757777777777777755775757777757755575577777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüü÷Ó�qlllpopllopooolppplppploploopplopopplppplppppppvooolpvplppppplp|poppppvoppppvpppppppppppppop|pppvvpppppppp|vppvvpppp}}ÓýÿÿÿÿÿÙwvppprpppvppp}ppp|vpvop|vpppp||v|ppp}p|pov}vpvvppp}|ppppppppvpvpppp|pprvppp|pppppppvppppppp}vvppppppppppppppppvpppppvvppppppppvpvpvppvpvopoo|vpvpoppp}olpppppppppvppppploopppolpppppolpppolpppopoppllppollpovpllllpollpplolooolllllllllpl{ÿÿÿÿÇllolllllllllllllllllllllC?lllllCllllC>lll?CllClCClCCClCCCll??Cuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– @óÿÿÿÿÿ÷Z =sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿþæÓ7575777775587777557577575777757775=77777775777577777775757777777755775777557577787575775757777775775777557575777555577777777775775577577557777575755777557777577757777777777777777755757757555578755755777557777775775577775757757555577777777777557557577777757777777757777777775557557777755555777757577777577787757757775557757777775757777557777775775577657755577557577577575775755577775777757577777575777757777577775777577577775777877757757777775577557577557577577757777857577777ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõ¬Žpjlllllllpvplpplppllpvvpllllllllppppopopppv|ppv}pplpvvpvvvppppopppppvpppplpvvvvvv|vppoopplpvpllpppppv}}}pppvpppppvvvv}×ýÿÿÿÿÿÙwvvvvpppppplpv}}}}|v}|v}}pp|pv|v}pppv}vpmpv||pppppppppp||pppppp}pppp|vv||ppvpppppppp}}|pppppppppppp|ppppvp}}popv|vopp||vvpp}vpppvvpplpllppll}}vpopvvpplp|vpvvpp}}pooppvplopppppvpooopollpppopppllllloppppllppolpollllpvolpppolllllllpllllèÿÿÿ÷lopolllllllllllolll?CCl>CC?Cl?CCC>?Cll>>lCCllClCCCCC???llC?CCCCCÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Y    !=pªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿèÓ5775857757757557775777777755775777777775777755777777757787775757577777757777557877777777777777577775775757775757577577777777775755557775777775555555555575777575557775677775755777777577555555557757777555757777777775775575757775577577777577577775757777757757577757575777577775555775777575777777578577557555777775777555757755577777775777757777755777755575775755757757777777587577777777777777777577777775777777778575777777777775777777775757777577777777757577777557775777757755777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüó¬�slllllllloplllpollooppllllppllpppppppolloopvolppppolpopppppoppplovppplov|oopppppopvpppppvpppppppppppppvpppvpppppppppppÊýÿÿÿÿÿÙwpppppvvpppvppppppppppp|vppvvppppp}ppp|popppppppvppppppp|vv|op|}ppppv}ppppp|ppppvvppp}pvpppppvrvpppppvppppppppppvpppvpppvpppppppppppppppv|lp|vpppvpvplpppvppplpvpopppppppppllpppvplpvllpopvopopolplopppooollllolllvplllollllllllpplllllp›ÿÿÿÿƒlvllllllllpCClllllllllllllllllllllClll>lllCCClllCCCCCC??llCCCCCCuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóZ   ! !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿþÿþÿþæÓ7775777777775775775775557777575$775777575777775777777778757777777777777757775575777777757775777775755755777777577777777777577575777557555775577575557757775577775777575555777577775777777775777775857775577577775755575775775757757777775777777755575777577757755555575777777777777775577777555777775557777777777557577777757577577575577777575757555775777777577775777755787777777575855577757775775777775557777777577777757775755755775757875757577777757757575775757777775576775577557777757577557777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüùÕŸpllloolooloppopppolllllllp}vlovvpppolopllloplllolppolpoplppollollppppolpvpoppplllopppppvppppo|}}vpoppplpppplpp|pp|ppopÇýÿÿÿÿÿß}vppppvvppppppoppppppppppoppppppppppppvpp}|}vpppv|pp}|vv}}}}ppp}plppp}}pppv|vpvvpv}vv}}pppvpv}}|vpppp|}|poopp}|vpplppplpppppp|v||ppppp|}vplp}plovppplppolppllloppoppppllppllpvpvpppvppppppolllpppploppolppllpplllolllllppllllloopollllluúÿÿÿèlvplClCllllll?lllovlllopplllllllClllllClClllllllllCClll?>ClCCllC??ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ#òÿÿÿÿÿóY!!!!!  q­õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿèÓ7775777777775575775777577787775777577757775778575777757757777575778577777577577775777777757577757577777757757777777577775575575755577755755777775787757577555777777777777755555757755777757777755777777777555777777757755557777777557577775757757577757777775587757557777775775775775575757775777577777775775575557777777775777777555777755775777577575557775757775777757777775757777777777775757785577777777777757575777777777757555757777755777577775777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüòÓ�poplollpplloplllollollpllovpllvpllppopppppllllpppoplppplpppppopppopvppppppppvpplopppvppppppplpvpppppvpop}vppppppvpppppÓýÿÿÿÿÿÙwvppppp|vvpppppppppvvppppvpvpppppppppp}p|ppppppppppv}ppppppvpppvppppppv}ppppppv|ppppvppppvpppvvppppppvvppppppv|ppolpppvpppppvpppvpvplpvpopppvppoppppppppppppppppppplovpppllppppoopvlpplppolpoppolooppoolollopolllollllollollplpolllllllÌÿÿÿÿyplllllllpoCllllllllllllllClllClllClol>lll>lllllClCClClC??ll??CCCCClèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y  !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿýÿþæÓ777777577777775756577787777777777777757757787777777557775777777775577577777757577777777575577757777755777577777777755777575775557757755775777777575777757757777777777557775555777775777777577557575777557777575577777577775777777775777777577577575777575757775555775577777757577755777777577777577775777777577757757777777777775755557777777775777777577777775777577777857777557557777575775777775777577777777577757775577777775775577775777755755777577777777777775577ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõ¬splllllllopllllllllpppvpppppllloollpvpppolvppopollooplllplpp|vvppplovpppoopppppppp}popoppv}vppp}vppp|}}ppvvppvpv|||ppppÊýÿÿÿÿÿß}}}pop}}|v||vpv}vpv|pooopvp}}}|vpppvp|}ppplp||pv}}}pvvpppppppv|ppp}}ppoppv}vpppvppppppop}}pppppopvvvvppppvvpopvvppoppp|vppooppllpvv|ppppllplpvppolpv|vppvpppppvvvpollloplplllolpopolllppplopplllllppplllollllllllllpolppppllloplllllllýÿÿÿÙvoCClllllll?>llpvlCCC?Cll?lCCl?>lllClC?ClllClC>>?>>CllCCClClC>ClCCC>›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ !óÿÿÿÿÿ÷Y!    7pªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿÿÿèÓ75555777777555777775775587777757775777775575575777755577777755577577777577577777757555757777757577777577777755775577555775777755557777757877777777775777757557777577777777755577557777777777575755775777577757755777777777577775777757576757757575777777757777777565775575557775757777755557777557777577777577555877577777777577775757775777577777777757577777575755577775777577777777575777777777777577775577777757757777777757777775777557775777777775557777777777777575575775777××ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüòÕ�qolllpllllllpopollolpoppooplllpolloploppppplppllppppolpppopppvppplppppppooppopppppppppppppoppvppppppvvppppvvppppppppppÓýÿÿÿÿÿÙwpppppv}pppvppp}vppvpppppppv|vppvpppov}ppppp}plpvppvppvvppppppppppv|ppppppppvvpppppopppvpppopv|pppppppopp}vpppppppppppvpppppvpppvppppvpoppvpppopolpvppppplppppppooppplpppppllpopppooopoppoollllloooopllpoppollllplllllllpolllllollllllèÿÿÿúulllllClvllClllllllllll?llllCClllClllClCCllCCCC?ClCClll??lCCC??ll>>CCláÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;òÿÿÿÿÿóZ !wªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿþÿþæÓ777775575757777777555578777787777775877575775777777877777777777777577777777777777757777777777775755577757775557777575757757777777777775555775785777557575577575577757557777775757577777755777577777757777776777755757557775775777777777777777777777777777777577555757757777775555777777775777757777777577777777777777757777577577757775775775777777557777777775557775757577577777577577577577577577777577775557777757577775785775777777777757777557575775575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüüüüüüüüõ¬�}llplllllllppvvpplollpvplllllppoloppllovvolpv|pppppplpvvvppolpppvllpoovvpplllppooopvvpplllllpppoppppppplpv|ppvvppplp|vÓýÿÿÿÿÿ×vlloppppppv}plppplpp|vvpopppppppvppvv}}popv}}vpppoplpppvpp}ppvppppp}|}v}vppvvppppppppp|}ppppp}vppppvvpoplppppollo}}vvvpopvpv|pppppppvplvpppopvp}pppllolllllpppllllopvppvvpvpolllppplloolloolppploppopllllllllvvppppploollpllplllllpol˜ÿÿÿÿ�llllolllllllppolCCCllllClllol?CllllCCClllC>?CCCClllC>CC>Cll>>>>?C>>>CC˜÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿ÷Y!    !!  =Ž­õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿÿÿÿÿÿÿÿÿæÓ77587755775777775777557577878777777757777777777877777777777777757557777777777577775775777775777775577577777577775555777555777555775777555575778777777577557557757578757575757777577577777777777756775777775577777577777557575577777575557775777777575757575757557577775777787775575757775577577757557777757577777777757755777775557577757557777775777577576575575575877777577755775777775775777775775577557577757777777777555775777777567757575557755577777557775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüúüüüüüòÕ�qlllplllolllvllplolppoplllllooolpplollppplllpvoopopooopppvplopoppllvplovplpppoppopopvppppppppplpppvppplpppvppppppoppv}ÊýÿÿÿÿÿÙvvppppppppppppppppp|vppppppppppppppp|vvpppvvpvopvpppvpppppvpvpppppppvvppplp}ppppvvppppp|vopppvvppvprvopppppppppppppppppppppppp}pppop}ppvpvolppppppooplplppolppoppppppppplvpppllpopplopvllppopollpppololooolloppollplllllpollpplllCllvòÿÿÿèlllllllplllllllllClllllC?lllllCllllC?CClll?CCClClllCCCCCCCCCCCCC?>>>CCCCßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!=qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿýÿþÿæÓ7775777775757777777777777777777777775777777777577777777777757777757777777575777777577575777775757777777777757777757577775775555577777575577777557777775777777577575575777777777775757777777577555775775757755555575757555757577777777757775777577577775577577777577557757775755755777777755557757557575555775775575577775757557757777557756575557577757555775775777775775557555775757ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüõ¬�plllllpvollvpllllpolollolpopooppppolllopllllpplloplopolllollvvppplovpllppoolpppppolpvpppppppppopvvppppllllp}ppppppvpppÊýÿÿÿÿÿßvvppvpppvppp|ppppvv}vpppp}}vvpp|}popop|vv|plplopv}pp||pppp|||vpppppppppoopvvlopv}}}vplpvvpppppppvvpppopvvvvvvvvvppppppoploopppvplllopppppplpvppplvvvplplpvppooppppoollllllpvpopplopppvplllloppppllolpopplppplllpollllloplllllpplllloÇÿÿÿývCCollllllC>CllCllC?CllllllCllCClllllllllllClllCC>>???lll?ClllCllC?CClC>?{õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!;óÿÿÿÿÿ÷Z   !   pªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿÿÿþÿæÓ7775775577777577577575587778777777775757777777577777877777777777777777777777777777577777577575757575757777777755577777577575776757577755777577777775755755575775775577777755575577777757775777777575777755575775575577775775575577755755567577775557755577777575777777755577755575766775757777777575577757775777555757555557775577777775575757577777575777777557777777757775755575755755777755577777777775777777757777677577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüúüüüüüüòÕŽpolllllllllpllollllpoollvpllllppoopppplollllppoopvolopollpolppooplopopoppppppopppplp|plv}pppopop}pppooppopppvpppppvpppÊýÿÿÿÿÿÙwvpopppppvpvpppppvpppppopppppppvvppppppvpppp|ppppvppvvpppvppppppppppp}oopmv|ppv|vpppppvvpppppoppppppppppvpop|ppv|plpvpoppppoopvpppppopppppllvpolpvpppoolpvplplpwplpoollvppppooollppoopplllppopplollpppolllplllloolllllpolllplllllllüÿÿÿÇolCllllllllllllCllllllllllllCllCCCClllCCClC?lllCCCClC?CCC?CCCCCll?>CCCC?>CÌýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY $qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿþÿÿÿþÿþÿæÓ75575575757777777777777887777777777775777777777777577777577777755777777775757777775777575757777757655775757777755777757757777775777575575755557577777775777755777777757577757757777755575755577575577655775775777777757557577777857775775775577577557577577777777775775577777575775575775777757775777777575777777777577777756575775757775775578557577577575575775755575777777557777778Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüüüüüüüüù¬ŽplpplpllllllppvollloppllollplllloppoppppppolpplloplpvpplpvvppvoppplpvppppppvvvppppppvllovpppllloppopopvvpopppppppppvpoÓýÿÿÿÿÿÙwppoppvvvv|voppppppppvpppppppplppvvpppvplpppvp|vplpv}vppppppppp}}}|pvppppp}}}vppppoppppplpv}|pvppppvpppppplpvpop|pppppppvvppoopppppollppppllpppoplloplpppvpppppvllppplopvollopploppollppopppllolllllploolllolpollllollllllpllllloovßÿÿÿñoll?lllllC?lopl?lollllllCCClClloollCCCCC>?CCCllCCl?>Cll??>>>?>?ClC>CCC>lC>>uñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Z!! qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿþÿþÿÿÿèÓ775577775555577575755555777757775755777777777787877777777777777755577777777775757577777755755557777757575757777555875777775777577577777777577767577577777577557855777577577777777577555777787775757575755775755577577777757758777757755757777757757575577777775777777755557577755577777777777777755575757775777575555775575775757575776777577577755777577575567557775577757557757757757758577577777777777657775777777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüúüúüüüòÕ�qollllplolllpolllllplollllpllloolopppplppplooplpolppppolpvpppoppplppvplppoopppppvpppppppppppppopopppppopvvoolopvpppvppÓýÿÿÿÿÿÙvvppplp|ppvpppvppppppppppvppppopp|}plpvplppppp|popppvpppppppppvvv|povvppppv|v|popppppppppppvvvppopppvpppppppppppvpoppppppppppoppppvppoppppppppllpooppooppppppvppolppopolpplplpolooollpplplollpoollloollpllllllplllplllllllpollllol˜ÿÿÿþ{lolllllllllClll?CllollClllllCCllol?ClCCC?ClCClCCllCC>ClC?C??>?ClCCClCC>>C>>CÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿóY   !!pªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿþÿàÓ777577777777777775757775777777787777777777777777777777577777777777775577578775777775777777775775775777577755777757757778557757777777575777777755575777577777777575755777557577777777775757755775577777755577755777575777577557755757555577577757557777577557557775575777557577557777577777757777757777577577877555577755577777757555757775757775575577757777777755577777777575775775757ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüüüüüüüüõ¬Žplpllpoolllllllllolllllolpopollplllllllllploppppploolollppllloppllppplpppploopppllpllppppppplopvpvppvvpv|vppoppppvppooÓýÿÿÿÿÿßwppvpopplplp}|vpvpppppvpoppvvpvvppvppv}plpvvpv}plpvppoppvvpppvvppplp}}vvplopppppp}ppppppppopppplpppvppppppvpplovpopvppoppppvppplllpvvpoollpppvppppvpppppolllopopppppvpplllpvvvpollllllllopplloppplllppllllolllplllpoloppplpll?lCluñÿÿÿ×llplllllllllllllllllllCCClll?ll?CC>CllClCClllCCCCClClCCCCCCCCCC?>CCC?>CC?>?ClvèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ#òÿÿÿÿÿ÷Y !   =sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿÿþÿþÿèÓ575757777757777575757777777777777777777778777777777777777577777777577785755777777777777577755777777577777777775777775575777777575557755557557575757775775777557765577775577777575775777577776777757575755777755757577557767757575775577555777777757777577577775777755577555777555757775577757757778757557755577757777575577557755775775775775777777557578575757577757577775ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüúüüüüòÕŽpllllllllllllpllolpolllollllppllllpooollllppooppolpoppolpplloppolpppplpooplpppvlloplpovpooppppppvpppvpppvvpoppppvvpoppÊýÿÿÿÿÿÙwpopppolplpvvvp|poppppppppppp|vpopvpov}poppppvvpppvvppop}vppppvpppppvvpppppppppvvppppppvvpoppppopv|pppopppp|pllvppvpoplpvpvvlppooppvvppplloopppvllpppppvplopopolpvpopolplopppoloollppllpplplllploollppollllllllllllllollpplllllllÊÿÿÿ÷uCoolllllvllllCllllllCCllC?llCCll?>CllCl?CCCllCCCCCClClCCCCl?CCC>>ClCC>>lC>>ClC›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY ! =qªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþþÿþÿÿþÿÿàÓ57777775777757757757777777777777755777777777777777775777575757777777777757757555777777577577777777775777777777577577777757777777555577577755775777557775777575575757755785577777577755777755555777775757777777777577755755775557775757755777757775757757775577777777555555757777755555577577577757756577775777777557777577677777777575757777775575767757577577777777777775577577555775577777577755777757777555577757757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüúüüüüüüõ¬�splllllllllppolllllllllpppllppppllpplolopooplllpllpopppopppppoopvpopppolloopoppllv|ppppooppppppppollppplopopppppppplooÇýÿÿÿÿÿßwpppoppppppppplpvpv|vppppppvppppppppppvppvvppppppp}|pppppplppppppppppvppplpppplpppppppppplpppvvppvppplovvvpopppppppopppppopllovppppopvpllpppvpppooppllppolpvppllovvollopolllllpppolpplpppllllllopllpplllplllllllplllllCllllllloo†üÿÿÿ›llpvlllClll?CCllClllollllllolCllllllCClClClll?>CllC??ClCClllCCClC>CCCC?>>C>>Cl>AßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Z!   =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþÿèÓ7757775777775567757557775777777877757777577777555777775777575577577757775777777555577555555575775577577757755775755757575575775775557775577575777775567557575757777585577775775757777557777577777577777557575777777767777777575775777755757767777777775775757557555577775775557777757577757577777557757777777777777577577757557755757557575757755777777775858777575755577777775757757777577777757755777757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüúüüòÕ�qllllpllllllollllllllllppollppoolloploppllppolllpvppolppovppolplppopppplloopopplpppvpoopppppoppppolpppppppppppppppooolÊýÿÿÿÿÿÙ}vppoopppppppppopppvpvppppvppoopvppvppppvppplpppvpvvpppovppvpopppppopppppoopvpplpppoppppppplppv|vppppopppvpooppppppoovpppooooppppvopppllpppvppppppppllopplpvppolllppllpoollooppoolppplplllllllppplllvollolllllllllllllCCpplllllvèÿÿÿßllloololllllCCllllCllllClllllllllllClClll?C>llCClllCCClCCClCCCClCCC>?C?CC>>>?CCC>ƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y !!!qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿÿþÿÿàÓ557757575777557555777778777757777757777775557777755775775777757577775777577777575775557777557777757577557577577775577777757775777777757777775577757767777757775577775575577777777577777757777757777777577577777577757557575557577575775577775577755777757777755757777777577557755777757577575777775777777557775775757777757555775577877777778577755577777757757777757775577757777575777757577755577755777775575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüúüúüüüüüõÕ�plllllpllllllllollplllllpllllllllppoplolllpplpollolllllllpololvlllopllplopolpppppppopppoppollloopvppoopvvppploppppppppÓýÿÿÿÿÿßwvvoopvvvvvppvploplppp}pvvppvpppvolpppppppppppopvpppllpp|vvppppppopppvpppppppvvpppppopppvvpopppppllpvplopppoppooppplloppppppppvvpplppppv}voollpopoopllpoppvvoppppllopppvvllpppolllllpooooplpppllllllolloppplpplpllllollllllllllÆÿÿÿú{lllClllllllllllllllClCCllC??llC>CC??ClllCClCClllCClCC>>CCC>>>?ClC?C>>>>?C>CC?CCCCC×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z =s¬õÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿþÿþÿÿþÿèÓ77755777577775575777777785775777777877577777577575777775777777775777777775777575557787777757557557775777775575775757577757777757755777577577557575577575767757777757757575777575757577577577555555777557575577555755557757577575757777778757577775757557755577777555777555775757777575775757757575555757777775757757557555755757757777757777555575777775757757557577757757555877755575755575555577777787557775557757755777575755857577557777575757777555557757755557577555777755775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüúüòÓ�qjClllolllllllllllplllpllolllllloplplppollllooollplllllllpolllppollplpplplplopvplvpooppoooolllppvpppoppvppooooppoopvpoÊýÿÿÿÿÿÙvvpopvvppvppvvppoolpppvvvppppvpppplpppvpppppvplpvppolpopvpppvpppoppopppvolvpppvpoooooopppvppvppolplpppoolppploppppooopppoppppppppoppoopvvpllloppppololopopvppoppllllplvppolppopllllllppppllopolllolllllollplloolllllplllllllll{úÿÿÿÇlllClllplllllllplllllCClllC??llCC?CC?llCCllClCCllClC??CCCC?>>?>ClC>>?>>>>>CC?>?CClCxòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y     =sªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿþÿÿþÿþÿÿàÓ775757777775777557577757577777777777787777577857757577777777777777577777787757757777757777555757777575557775555757565557777577777755757555576757555755575777565757777557577757777757575755777555755775755757775577775555757575757757755577575777575757556575577757577777777755775775757755757575775775575557575755555775757577775555557775777575757777775765575555777777775755575775577755776575577557575557855575777777755557757775757557775555776777577777557757777758Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúüúüúüüüüõÕ�qllppllllllolllllllllllollopppplpllllllpolllopoppplllpppppppplllpppppvpopoppppollppllpppppvvppppppppplplopppppppllppppÊýÿÿÿÿÿÙvoppvvplpvpoppplppp}}ppppopooopvvpppvw|ppplp}povvpoppppppppoppooppppppvvplpppopvvppppppppppvppooppvpplpppv|ppppppoppppppoppppplloopooppplpopllpopppppppolllplllppvvpplllllopllpplpppvpolllllolllllopplllllpppllpllllllvplCloloßÿÿÿèuoolCClllCClllllllllll>?llClCCClCllC??CllCCllll>>?C??>ClllC?CCC>>CCC?CCCCCCCC>>>>>>>?ÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!óÿÿÿÿÿóZ! !s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿÿÿþÿèÓ77777757575577575557757557757775777577577777777777577787777777577555775777577775575577777557775775577755575777757555567575575555755755575777757785577575777575777777557777577567575757775755757575755755757757577757775757557755557557575775755775757777755677557557775557755555767557755557777577757767777577757755775577775557777755575577577557557555556755577755757755775557556557557575777775777577577757577757577577755777757555757777557575577775577757657777555775555777757775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüüüòÕ�}llvplllllllllplllllllllolopooolplllllllplllllllpooplpppplppppllpvvppooloopvvllllpoloopppppvpppppppppollpvpppppopplpopÓýÿÿÿÿÿ×uopvppoppppolppopppvvvollppoplpvp|vpvvvplpppvpoppppopvpppppolpopvvppvppppoppoloppvpooppvplpvpoooppvvvplpppvppvvoopppvpoppplppoloppoppppploplploppppvvpollpllllpppppolllpllollppppllpppolllllllolllllllllllllppllpllCllpplllol�þÿÿý{lppC?llllCCllllllCllCCClCllCClCCCCC?CCClCCllCClC?C??CllllCCCC>>?>CC>?CCCCCC?>>>>>>C>?uñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Z $sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþþÿÿàÓ57555575575775757757755775777755757777775775777557777757775577777555757775777778777777775577577557757577757557767775755775755755777775777557577557757755577755555557757555577775757577777777777775577755775755575777557757577555575557575577775577557557757757767675577775575555777775557575775757777555757775557557757557757757575557777577577577557657775775757577578557775577775755777775775777777555757577775557575557575557757755577575575555555575577775555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüúüúüúüüù¬�wlCllllllllpppplllllllooplllllpopplllollllpppopllllvpllllllooppllpplolplpplpplppolpplpooppplloppooolppppplopvpooppllplÊýÿÿÿÿÿßwppppppvpppopppppvvpoppppvvppllolp}pplpplpopppopopvv|ppvppppppplpppopppppppvpppvvvpppopppllppoppppppplppvpplpppllpppploopolpopopvppppolpopppppplllopllplpplppppopllloloppooollllppolollloopollopvppllllllplllllloollllllClllyõÿÿÿÌullollloCllCCll?CClllCllllCClll?llCClCllCCClllC>?ClCCCCC?>??lC?ClCClCClCCCCC>>?CCCCC>>>›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿóY   9pªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿÿþÿÿÿþÿèÓ757757577577777555757557777875777777775757777757775757777577777777777775757777777577777577555777757575757775557575577755575777757777557767675777777577557777557777757577575575755577577575555755757577575577775557577557575557557777777757777757565757775757757755755755757557557555577557757575777775575557575577757555757777577558575757577755575575755575755757757557557777557757557577577557777777557557755577575755585757777577777757577557755577557577575577755776557777××ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüúüüüüüüüòÓŽqjCllllppllppollplllllplllllllppolllpolllllppoplllloppllllllppvllplollolopplplpplopplollppolpppvpplopvpoplppppooppopppÊýÿÿÿÿÿßwppppppvvpoppoppv|pvpllppvvpplloop}ppoppppooppplppvvppppvpppvpppppvpoooppppvppv|vppppooppooppppppllppllpppllpppopppppolppppploopppppvllppvllpplllplplplloollopollollopppolllllllollllppopppllllpppllllllllllplllllpollllllloßÿÿÿòvoollCCllllClCll?CllCCllllCCCllCCllClCCCllCCClllC?lClCCC?>?CC?CCClC??llCCCCC>>>?CCCC>>>>Cßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– @óÿÿÿÿÿ÷Y! pªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿþÿþÿþÿþÿàÓ5755755757577557577757675777777777778777757757775777777777777777777557777775777755557757575757575775557755775565755555555557777555557757775575757575755755775777555757777577575757577777577755757775577577777775777557555675755575777577557555777757877575577775557757577757577557757757575777777777575757577575575755577755777777755775575557557556557755557577777775557555757777555757555775555555575557575577775557757777555755555757777775775575557575757577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüúüúüúüüüõÕ�qlllllllppllllllppllllloloplllllllllpppollollllpppploplplollllllloooppollpplpooloppllpopolpvvpollllpppoppppppllovvvppvÓýÿÿÿÿÿÙvoooppppolpvppppopppvppppppp|pppppvloppooppp|vpploppoooopooloovvplppppppppvvppppoppopppvvppppppppopvvppppppoopppopppppooolopppppvoolpvplpllopvllppopopllopppppooopollollpplppllllllllollllllllllllllplllllllpllllllllplllll˜üÿÿý˜lloCllllllllllllClll?lllllCllC?CllCClllCCCC??>>C?>>C?>?CC>?llCC?>Cl>>>>>>lC>>>???>C>>>>?>{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿóZ! !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿÿÿþÿþÿÿèÓ775777777777577755775775577877575577777757757757755757575757777757785557757777677575777777575775577777755577575757775757577577677765577575577855757777757757577755777755775777785655775577577577557775557555555555555555777557777757555775577555575557577555677757557777775775757775776755577777777577575777777575555557757777577775558775755757575857575777757757775575775755777577757757777555775575757775577775755755775775777777557755775555777577757575557575757ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüúüüúüòÕŽpllllolllollllllloopllllllpolloollppolllllpllllpoollppllllllppollollpvolloooolpopppoopplloppvvplplllvoopppppplpppvvvpvÓüÿÿÿÿÿ×ulopooppoopvvpppoopv|ppoppppvplvvppolpolpvpp}vvpolpppppploloolpvppoppv|pv}vpvppoopppoppvvpppppoopppvpppppppppppppppolpppolopvvpvplplppplllllppllpooppollllpvpoolllllollolllppollllloppllllloplolllllpplllllllllCllllloolllvñÿÿÿ×uCollllllllllClllolCCllllCCCClC??llClllCCC?C??C?>>?>>>CCC?>>llCC>>ll?>>>?CCC>?????>>=>>>?>CÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Z!   !  !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþæÓ7757577777575587857777777785775757577875777777577577777577557777577757757557777575577777775557555757777775575757755755757577575555577777787557777555577577577777777577775757555577775757777577775577755777555757557775575557757757577777877577785557557557575757777757775757577577757777577775777755777757557757575575777575755775577557755775775757575775775755555555777577575557777755757777757585577575575575575577577777557557577577777777577578Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúúúüüüüüüõ¬splllllllCllllllllllllpllllolllplllllllppllopllpplpollpplpppolpllpppllppllppppolopllpopppopllllpppplpvppoooopopppopopplÇýÿÿÿÿÿßwpvpppppploppoppooopppplopppplov}popoppploopvppplpvpppppopppppppooppvpolpppllooppppoppppppppoopollpppoppppppollooloploppvplovllllo|vlolppppppppopppolpplplovolllppppolllollopppllpopllllllllppplllopvlllllllolllppllllllluÌþÿÿñvlClllllllllClllCCll?llCCCCCl?llllll?>llCC??CClllCClC>ClllC>CCCC???CC>C>>C>CCC?CCCC>CCC?>>ACvòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Z!=s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿþÿþÿÿþÿÿæÓ575577767775777775777557575757575877777577777777775577757757575757757577757557775777757555775775757577585557755557777775575757775757777557577775558575555775557575557777757575777777775577557775775777777577777775755777557565777557575577557757775557575577575555575777577577757575777757555775775777575555775775558755557557575757775577755555777757775757575777757577757775557577575777577755576777755777576775577755775775555575557557775755777557755755555Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüúüúüüòÕ�p?lllllllCllolllClloloplClllllllll?lllvpollolopolplllppopvvllllopoppllppplpoploppllopopppollpplpplpvvppoololopvploooooÇýÿÿÿÿÿÙwvvvpoolllppvvploolpplpopoppolpp}ppolppppooolppplpppppppoppvpppolpvvpplopplollppvpppppolopppppllloppoloooppolpplloplllpvvvplpplloopvplpppvvppppppppllllppllopllppolllllllllppppllpplllpllpllpppolpvplllllllllllpoplllllll˜úÿÿý”llllolCCCllCClll?ClCCllC>CCll?ClClll?ClClCC??CCllClC??CllCC?CllCC?>>>>CCC>>?lC>>CA>>>ClC>CCCC›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷[     !  =q¬öÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿþÿæÓ575577555575575557577577757577755777775775777777757777777777555757775757585577577575775557577757777755755757657777777755775575777775755767757777575775757577777775757557577777575577577557755757577575557757777577777755775577755575557777757557775555775575757577677775775777757577775577577757555557757775577777775757557757777757577777577777757557577565577555557857775777755757777755775757755775777777557777777775757575577777777577ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüüüòÕ�}lClllllllllllllllplClollloollllpllllllplpollllllolloolllpllplploolpploppoollllopllopllopplopllpppplpplplooopopvopplopÇýÿÿÿÿÿÙvlppppppppppppplpppvplopppppppopplppopopvpppopvpoovpooppppppppppolppoopppppppopplloppvvpplooppppppoopplpoppopppllpvplpllplopplllppollpvpllllolololopppolllolllopooplpppolllllllllvvllopllllolllllopllllpllolllllCllllllluèÿÿÿ×uCllllCllllllllllCllllClllClCllllCCCCCCCCCllllCllCCCCCCCCCCCCCC???CC>?C>C>>?CC>>?>>>C>?C>>>>>=CáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ ;óÿÿÿÿÿ÷YqªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿÿæÓ57575775757557755757757775755775575787757787775757757775577577558575577787577575777755778576775577755775775557555755775575577755775575575557555555757777575757555577557757777787575757777777757777757757577777755777777557577755757555775755777575757777755755777575775555757575757757757755777777757575775775575557755577577577557575577555775757557557777577577767575677557755757777776575777757577555777775757757777777775775757577777577557575555577575756577757575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüúüüòÕ }ollllloollllClollplllllllllpllllllllllllpplllllllopplllllollloopplllopopllollolllpopllpllolllppvvolpollpppoolopppplllÇýÿÿÿÿÿÙuolpoppvpopvllllpvvpolpvpvvopllppopppppv|pppppoppoppllvvppvppppplppplppppoppppollplpppppollpppvpvppppllppoppppppppplppllllpppollpppllovollllllppllovpolllplollpvppplopopllllllllpvvolllllllllllllllllllooppolllllCCllllCÇýÿÿñvllllCllllooolClllll?llllllCClllllC?llClC?CCllClllC>CllC>>?CCCC>>CC>>??>?>>>CC>>>CC>>CC>>>>=C>=={÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY!      =s¥ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿýÿþþÿþÿþÿæÓ7777757557557577577577577555777777775777775757777777777777577575575775755755777775577557775577575777755777777778575557557777777757775777557557757575775557557575757757757557577777775775757775775575557757557577575757757575758557757757755777755555557777577575775557575755777575777777777577557557775777755775757555757557777757577777577577777557755577557577555777577575557777575775577777575777575557757575557777577557575777777755777757577757775755775757775765757757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúúúúúüúüüù¬�pCllllllllCllllllovlllllllllllllllolllpllllllllopopllllpplplppplllooopolpllppppllpppppolopppppolppllopooplllppplopopopÊýÿÿÿÿÿßvppoolppplovplpoppplopoppppopplppoloppopvolpppllvppplpvpllppoopppoooppppolppppllpppppopppppppppplpoppooppppoolllopopvpoplppopplppooollppllppplpvllpvlllloopppllpllllllopollpppolllllllllllplllllllllllllllllllllollllll{÷ÿÿý˜CllllllllllCll?llCllClllCCClCCCl>CCCllCl?>?>?CCACl?>CCCCl>>CllC>?CCCCCC???>?>?CCCCC?>?C>=>>CC>>>>ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y  =}ªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿÿþÿÿæÓ7555777777577577677777777557757577777577757575777777757877575555777777575775577777757577577777777777575757777755757757555557777575857775757557775757757757777577555767757777755777775775757575755555777777757777577757777577777577777775757777775777555777575777757575577775775775557755757777777775775757557577777577555777777857555555775757777757755777777755757777557767755567755557577575757775575755777577775757775755777755757755775755555775575755757577755755××ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüüüüúüòÓ�q?ClpllllCllollllpplllllllllllllllllllplllllolllpvlllplpppolpvpllllppollllllpplllpvpollpppvppolppllloopoolooppollllovpÓýÿÿÿÿÿ×wpoolloppooppppplpolplppoloopolopolloppoplloolllppppplpplppollpvpploppooooppoolloppppoopplpvvppllpppppvppvplllllppppvppplpvpppoovpollllpppppppovplppllllovvppppllolppppplllppllpllllllllllpolpllllllllllClllClpppol?oouàÿÿÿ×tCCClllllCCCCClll>?llllACC?CC?>CCCCClCC?>???>?CCCC>>??lllCCCllC???llC?CCCCCC>>>llC>CCC>>>>>>>>?>>>tñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;òÿÿÿÿÿ÷Y  !! ! !  =}ªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿþþþþþÿþÿæÓ55777755557557777557577557757575577757757777577777577777757857777775775575755557775775575757777777555775775777577757557757577757577577576757557775557577575555555775757557757575575755777757555775777757755557757575577777577575577757557555777575757775775775776777577775577775577575557775775757755577775577757555777755777757575575757557757755757777777755756655575775755777577557557755577775777577755777757777777777775757558757557775755557755757577575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúúúüúüüú÷¬�sllollClllllllClllllllllllplllpolllllllplllllppllolClvlllllllplpllolplplolloplopooplpolllopppploppllplooopppppolopolppÊýÿÿÿÿÿßvppppoppoppoooploppppoplpooppopppppplpoppplpppppppplppplplppppppolpopppppppppppppvpooloopop|plolovpllppllppopppllooppopllpplllllvopplollploopvlllllpololpvlllplllplllpllllloolllllolppllllllllllllllllllllplllolll?Cpo�üÿÿò{lllClllllCllllllCClllCl>CllllCCllCCCCCCCClllCllClC?CCC?>>?CCCC>??>CCCCC>>>CC>>A>>C?>CCC>>>>>>>>?>>>›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9óÿÿÿÿÿ÷Z!!qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿþÿÿÿÿÿÿÿþÿÿæÓ757577757575757755758777775757877775777777755777557577757757775777777577757557775557575757757557575557557757577755757577577577757777757785785757777555775555775575557557555777857577757777775777577755757555777577577577777575777557557757777775775557575575557777575757777777755575777577555557555757777557755775755557775775555575775777775757777775557555777555758757577557577575757775577557757757555557777558777555577575557575577755777577577575557757556577777775575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüüúüúüüòÕŽpllolllCCCllolll?llllllllllpllpollpllllollllllolllljlpollllllplpolpllllplllooopvpllllollllppplopppopplllppvppolpppollpÊýÿÿÿÿÿ×ulllppppppppolllppoppllloloppppppppoloploppoplpplooloppooopppopplopppopppppppppppppolllppovvpllppvplllolllppppooplppllpllpoloollolpvpllollopopollllopvpppllllolllpllllllollllllllllvplllplllloppplllloplllolllllllCll{÷ÿÿý›plllCllClCClCCllCClllCCCCCCllllCCCCl?>llCClllCllCllCCCl?>>>?>>>?CC>>CllC>=>?CC>>>>CC>>CCCC>>=C>>C>>>Cßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿóZ  $pªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþþÿþþÿÿýæÓ7577755757755577575557557575757587755775787577755777558557757775677775775778557777757575578755777575555777755777555755857577777577557585757557777777757777777755567777775757757575757775567755575755777577575755777757777755755557777557757557775558575755757775775755557775557755757557775757557775577777777577777755557575775577757777777555555775655787775755575777777775777577557757557757575775555555755585777577777575777757577775557575685557577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüüúüüù¬�plllllllllllllll?lllllllllllllplCllplllolllllllllvoloolllllllllplpllllllppplplplppppollppopllollllllvpllpploplppoollpoÇýÿÿÿÿÿßvoploppppoplpppppppppllppppvpooploopopvolopp}ppplppppplooppoop|pplpooooppppoppoopoppplppplloooopppppooplpplpplopvppllppppllopplpllpllppllllolplllpllopopllllpplllolllllplolllpollolllllpplllllllllllllllllplllClllllußÿÿÿÌulllC?lllClClllCClllCllCClC?>lCllllll?>ClC?C>CCClC>CClCCCC>CCC??C?CCC>CC>?>>CCCCCC>>?C>>>>>>>>>?>C>=A>x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;óÿÿÿÿÿóY $pªõÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿÿþÿÿÿþÿÿÿýÿÿèÓ757555587575555578777578777577575757775777777857557775777777585757775777755556775755575577777577575755775755577575575757877775575775777757755575755757755775575777755577555775777777877557786775575575755577757775577575775758785775775777775577578578787775575577777757575577777558557757675575755775555555775775555675575575757577575775575775757557556755557757557755777575777757575577575777777775755875657777575775557577777755575777775776Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüúüúüúüúòÕ�sllCClllll?lllllCllllllloll?CClllllppllplopol?lllpppollllppllpllllllllolppppllllpppvploppllllllollllpvppplooooppollppoÇýÿÿÿÿÿ×uloolopppolppvvpvppvpppppvpppoolllloopplllpvppppolppppooooolpv}vopoplllloppppvpooopvpppllllopooppppolpolplpppoppvpplloppollpplolplpllppllllllllllppplpolllllppllllllplplpppllllllppllllppolpllllllClllllClollClllCClÇýÿÿèy?CClCCllCClll?llCllCCllC?CC?C?CCClllCCCCCl?>???>?>??CCCCC?>>ClCC>>CC?>>>CCCCCCCCCCC>>CC>>>=>CC>>>>>>>>>ÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY!! ! pªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþþÿÿþþÿÿýàÓ775557577777578575577757557767757755778787775577757577757577557757577557557555755555555877555777777575777755778575555575557575775567585758577755775757577857755555757775577777757777785577555757577777557778575577557777775555755857575577775765785785757755555777555555575575575755777575755587785755575775777755777578765757557758577578557757787577575557587755755775757577755755777575555576555775557755655775755555777585555777577777575556575757777575565557575577577755775775755777575557577775575875557ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüüüò¬�plClllllllllllllllplllllllllClplllpllloolllolllplllllllllplllollplloppllllloplpllllloolpvpolllplllppllllopllopppoppollÊýÿÿÿÿÿßvoopppopoloppppopllooppolpvoplplploppppoopvolppplpplvplpppllpopvoplppvplooooppppoloppoolopplooopplolovpppllopllppopllpooppllpplppppooplpppllopllolppllllllllollplppvlllllpllllllllllllllllllolllllllllllllllCllllll˜÷ÿÿý›ollCClllClCllC?llC>l>lll>ClllCCClClCCCll??CCCCClCCCCCCC?CC??CCC>>>>CC>?>?CC>>A>>>>>CC?>>=>>>>>CC>>=>C>=>CñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ9óÿÿÿÿÿ÷Y qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿþþÿÿýÿÿèÓ555575775577557575577657575577577576755875777875575757775777757755757775575555557555577577577555555577575757557555577757557757775757575757557575777577555557775755855555775558757558577755755555555757775577777875557755785757557755577777755775585575757757555757575775755755555575568757577775755775575557575775575557575757557775777575857785757855755755577577757577775755557557557675555657575757577757757575775555775775757555777557757775655557557757755777577555775757757577557575555555557755855557555557775575575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüüüúüüúüúó¬Žo?Clllllllllllllllpollllllll?loollllllolllopllopollllololll?lolllllpppplllollopollllopllpplolllpppllplllllllpppoopppopÊýÿÿÿÿÿÙwolppllooloppvplllplolpolvpllpllpopppoopppoolpllppllpoppppoollppooppvvppllpppolollppoolloplppllolppoppvpoloppoooolloovolpooppopvppvplpppopoopplpplllllllllopplllppppllllllllllllllllpllllCllplllllllllCCClllllllllvçÿÿÿÌolllllClllllCllClC?CC?ll>?CCllC>Cll>>lllCl>CllCCClCC?>CCC>>?CC>>>>>CCCCCCCC>>>>>===>>lCC=>>>>>>CCC>=A?>>C>”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóZ  =s¬ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿýÿþþàÓ55555757775555777557887575577777557575778767575755875557577757555575775855575775555575575555775755777555575575755575757555755777758577575557575775575855577775575757775577557557557575757575757575755557877777575657775755855655775575577575585755777557657555777755577777557555775855755577755775775775557577557557755755577555778557575557575557555575777777755757555577757557575755675577575577555757557577555577755575757577775757575757777787555557755775775775755555787577755565757755577575777755778757757758577557757777777775577655Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüüüõÕŽpCClllllllllll>llllllllllllllllllllllllllllllloolllplllolllloloppllvpoplllplllllllpllollplllpplopplpppllopplllopolpoopÊýÿÿÿÿÿßvpppoloollpppppoppppllloovvloopppllppoopvplplplo}plooopppplpolooolllppppplpplllopoopplllloppplopopollpoopllpoolpplllplpoplololllllpplloolpllpplolollpplllllolllllllllllllllollllllllllllllllllllllllllllClllllllClÌýÿÿè{lllCllllCClClClllllllClolllCCllCCll>>ClCClCCCC??>??CCC?ClC?Cl?>>?>>>?>lC>>>>C>>??>C>>A>>>=>>>>>>>>>=>>>>>=CßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ#òÿÿÿÿÿ÷YqªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþÿÿþÿýÿÿþÿÿèÓ555777557557577557555757757575757778857575555555775578757787777555555575755775587757755557775777557755757557575577587555775555777557555577557557775778777755755775775557577775557575575755558557575555775777757577877575577777557577755775578577575757577555777757557578555577555575555755775777567775575777757577775555765675555777777757555587757575577777757775587575757555777557555577775577777657575755775775755555575555757775575775555755575777577558557775555577777757577755555777575557577575777775755557757755775577555Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüúüúüüúúüò¬�ql?l?>CllllllCCCCllCCllllllolllC?lllll?llpllllpollollpllllppolpolppppoolpopplllllppppppolllloooppllppllppppollppplllplÊýÿÿÿÿÿ×vopollpolpppooopovvolppllpppppoppollplpvvppllllovpopoopooolpollplllllolppopollloppolllollopvplppplloloploollplllllllllpplllpllllllpllllllopploolpllpllopolollllllollplloollopllploollllllllllllllllllllllClllCCCl›÷ÿÿü˜olCClllllllCCCClllloolCllllllCllClloC?CClllCCl????>>>CCC?CCCCC?>lC?>>>>?C>>>CCCCCC>CC>>>=>>>CC?>>=>>>>=>>==>x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y!         =wªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿÿýþÿþÿàÓ5755557575757757567855757757755557777557557577577575577757555787758755755577557757757757555578757775558575777557557557777577875575775757755775777777777557765575777558875775555775557557757775777758575757557575555555775575775875755557877755755575757575777575585757555775755575757575557577777575575757757775557557757757775575757775755575555757755677565577757555575757575557877577757777777755577865775755775755575555857765775557757757557575775775757757757758557757775577575557775777555557557757575575755758555575575755777555575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüúüúüüüüòÕ�pCCllCCClllClllllCllllllllllllllllllCllllllllllolllllolllllvlllllvolllllllloplllplplllllllloplllpplolpolllppllppllllooÇýÿÿÿÿÿßvoopoloppoopllloopplpvpplllpoplpopoppopplopplplpvooplopvppllloppoppppplpllopppllovplplopploppllppllolpollpppollpopplllpplpllolplllloplllllopllollloplllllpollplllolllllplllpllllplllllllllllllolllllClllllllllll{èÿÿÿÌulllCllllClllClCCllllllCCClCCCClllCllCl??CC??llCCCC?>CCC?>>?CCCA>ClC>>>>CC?>>>A???>>CCCC=>>C>>>>>=>=>>>=>C>=>>�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y   !q¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿýÿÿþÿþÿèÓ758555757775555757555557555557575755875577875775575755757577557577555577755777777775577755555775777575775555557755755575775755777757555577577557755785575755555577557755575775577558555755757775755775555577575587575577575577557877556778757775755557575755577577557777775675557575575755577755775775555757785777755557755855575758757575558757757575755557577775787555575557575555577587555755577775775577557575577577755557577555555775775575577785557755575775757577755575757555777775775557557775555555777777555577677575558Ô×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüúüòÕ�slClllCllllClllllllllllllCCClloplllllllllolColllllllopllpolpllllplllllllllllolopollllllllplpolllpppllpolllopolpllloppoÇýÿÿÿÿÿÙvllllppoppolllllpllopvvollllpppllpppopllllpppppv|olllpvvvplplppplppppplllopppollpppppppopolpooopllllplplllollllpppplllppoollllplppllpollllllllllopllllllllppplpCllllllploloollllpollClllllllllllllllClllllollllv×ÿÿÿè{lCCCCCC?Cllplllll?ClCCC?C>?>ClCllll?>?lC>C?>ClCCClC?CCCC?>>>CCC?CCCCCCC?>CC>=>>CC>=>CCC>=>>>>>C>==>>C==>>C>==>tèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9óÿÿÿÿÿóZ !    qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿÿÿþþÿþÿþàÓ5557557557777555777755758775777577857557577777575755757577555855778755555557555777577755757755557575575755757555575575755777755757577575577757555757776557558575555558755555557577755587555875757575555755867787755855557557767775755555585577577577575775577757755557757777758578755757757557577757758757575575587575555775555775777757855557577577755577757585575777557757555755775755755857555555757577755577555577557577777557557755755755785577575755557557577555757777775575757555757555757875555755775Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüúüúüúúüüõ¬�pllllC?llCllllllllllllllllllClllllllClllolllpllllllllolllplllllplll?lplllpplpollolllllllpllopolloopoplllllpplolplpllppÇýÿÿÿÿÿÙvpllpplllpolppollpoopppppplllvvolppplplplopopplovplolopoppopllpvoloopppoplloooplovplooooooollllopllpollplppllppopoplllplplpllopopplllllppllllllloplllllllllvlllllplllplllplllpplllllllllllllllllCllllllllllllll›úÿÿü›lllllCCCCllllCCllC?lllCCCCCCCCCClCCl>CCCC?CCC?CCC?CCClC>?CC???CCC>CCCCCCC>>lC>>C>>>>CCC>>>?>>>C>>>>>C>==C>>>=>>>ƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóY !q«õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþýÿÿþÿþÿÿèÓ5555757755577575775787577567577785575757577555555577577575575777855775557557575557577555757755577777577775755777555557577777755577777775558575757557577577777575875755785755777775757676757555755757755577555775557757575577755775755775875575855557857557755557557575557755775877558777775557577757577577778557557757575557875755577757556575775555577775575775557555577577877778555557777555577557777785556755775575557555775575575555557777555557577557755755877657757555755557577556775757555755577775555557577557557757Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüúüò¬Žp?lllC?ClCCllCCCllllolCCllllllClllllClopoollpllllll?llpolllllllllllllolllvvooolllllllolpppopvpllpllllllloplllpppvplllpÊýÿÿÿÿÿ×ulllpppllollppllplllllllpppllpvpllolpopplpvollllppollllllollllpolllopvppllllllpopploppolooollllppoololplpoplvppolppllpllpoopppolplllllpppolllllplllllpllolllllllllllllllpplllppllClllllllllllllCCClloplCllCCll{ñÿÿÿ×vlllllll??llllC?CC?ClllClllCllCllCC>?>>CCCCCll?CC>>>CClCCCCllCCCC>A>?CC?CC>>CC?C>>==?>?CC>CC>>A>>>>CC>==>C>=>>>>>>Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@óÿÿÿÿÿóY  =q¬ùÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿÿþþÿþÿþþæÓ755775557757577555575575757757777787855557755775757765557855757757857757555755775775575775557575765775577567558757777755755577557575585787555575755567555775575555675877767755575557555777577775755777577755585575777785555775755576557755557765577555777567576756575776757577555557778775575857555755557575757555775555555557575555578866777785775757575577777575577855775755555578758577757558557755555557757557557775757555758757557857755778755775757757575555575757775775775777775577557877558775587875587557565575ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüúúüúüúüüò¬ŽpCCllllllllllllllllllllllllllClCllolCllllllllllllllllllplllllllllllllllplpplllolllolllllllllolploollolllooppooloppllolÇýÿÿÿÿÿÌvppllolloppoolopoppopllllvpllopllpoovplllpvollplolppplpplollpploplpploplplplplolopopllollopppllooppploplollpppplllvllolopollplllplpplllplllllplplllllplllllllllolllllllllllllllllllllllllllCllllllllolllllllCoßþÿÿèyllllllllCCllC?C?lCClllCCClC>CCClClC?C>?llCC?>?>Cl>CCCC>C??CCCCC>>C??>?>>CC>>>CC?>>C>>>>>>C>>>=>>>>>C>>>=>C>=>=>==@u÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;òÿÿÿÿÿ÷Y =sªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿÿæÓ7557567575775555757557787655577555778757875577575775577557557655557776555557775776575575578558577557555777755577757775557555758657576557755755758775567555775557777557575577555555775757555557786588758577575565577575877575575875755755557775875757775577557575556757757575555755875755555575856755555577578757577878557557557777555585555685575755575577775777875676775675575557555575557575577557558775855557555677557555757555777757555557575777755877765755757775577575777585757577755575555587755577757557577755587557557577577Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúüúüúüòÕ�p??CCllllllllClCCC>llpollllllCCllCllllllllCCllllppllllllCloollllplClllplllollloplpplllllllllllllllllpolppoppppllllllllÇýÿÿÿÿÿÙvvpllllpppplllppppplollllppoplllppoopllllv|olllloplpppppplllooppoopplllopopppllplpollllllpppolppplopolllppppplllllpllllpplllpllllopllppplllppllolllpppollloplpppplpvplllCllC?llllllollpollll?lllllllllllllCll�üÿÿú˜CCCllllllClllC??CCCllC>?CCCC>?ClllCCCC?Cl?CC>>?C?>?ClC>>>CC>>C>>>>CCC>>>>>>=>?C?>>>CC>>>>=>>>>>>=>>>>>CC>AC>=>===>>>›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Z  !  $qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþÿþÿþÿÿþÿàÓ5557555585757757777855577857577588577775755575775755785776577875577755577857675575557775575777775558585755787755877557887577555765555755775776555555755555558555577657875777776555577765578575657555775755575755555777787575777577575757577555557577575757757555767875575557775577577555757577555575577555568757558775775755577555755857556775755757577587577575758575557755587577575757765555578756577557577577575587757777775576577755757778755557577558758787575555755555787768757555555785755575557775557757778555577575Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúüúúüúüúüõ¬�qCClCllllllClllllCClllollllllllllllllllllllllllllolllllllplllllllllllllllpoCllloolplllllllpllllollloppolllooppllllolllÊýÿÿÿÿÿßvllloppoollplpplovplpllpplplpllllplplplolppplpplpollvplplololoppolppllllllpvllopplppoppllppplploollopplolllppoolllolllloplllpllllllpllopllolllollllplllpllllollllllplllllolllllCllllolllllllClllllllClllllll{òÿÿÿ×ulll?CllllClClCCCCllClC?ClC>C?CCClC?CCCCC?>ClC>Cl>>CCCC?>ClC>C??>?C??>?>>CCCCC>>>>>>CC>>>>>>>=>A>=>C>=>>>=>>=>>>>==>>AáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;òÿÿÿÿÿóY  =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿÿþÿþÿþÿþÿèÔ57577775775578565857575777675577775775575755557775775557575877677585777575575777577757555778575875577555775555757555787557577755775575575775575757577775557575755575777557555785757675757557555576575585855677585577757777585575755757555577757875755755577585755875556775565775575787555777555575576755557575787557877577565575785557577555858758557558557577775787755555757555755578557787555557775755885755575755555577855555575577557657577775575778777777775567756778577755577776577755777757555758575575558778ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúüúüúúüúúóÓŽqClCCCllCllllllllllCCClllCCClllCClloll?ClllClllCllollllllolllllollllolllpplllllllppoolllplllppoppploplollllppolopoopppÊýÿÿÿÿÿ×ullllppplllppplllplollppllplplllolppllllllpolplpppllpolllpppvvpopppoppllllppllppppppooppolllpopplllpvolpllloppoloopplplvpllpvolplllplppllollllpllllolllllllplllCC?lllCllllolllllllClllllllllllClloll?llCCllußÿÿÿè{ullll>CC>CllCC?lCCllllCClC??lC?llCC>CCCCCC?ClC?ClAllC>>>>ClCC?>>CCC?>>CCCCCClC>=>>>>CC>?CC>>>>>>==>CC>>==>>==>>===>>C={üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y   !=p¥ùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿþÿþþÿþÿàÓ75558557577587555557755555775875775575875577755555675757575757875557557755765787657565755555587568555755557757577655576755577557785555555555757775567875555777555555585575555555785575755557577557855775575585565575575755757587555775555585555775558757575756555756575557575577655575775777575855557557755555775555776776775757575557555775857555575555567555855785558775555555557555576755577575655555555765555565757758575558575557575755778557555575575786765577765558765575565576575577565757855587777Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüúúüúüúüúòÕ�plClClCllCClllllCllllCClllClllCCllllllllllllll?llllllolllllllClollolllllllllloolllplplplllllolllppllololllllllolppolopÇýÿÿÿÿÿÙulllolplploppolllolpooploooopooplllpplplllpololopollppppllooppllppllpvlllplllllpollollpppolooolllllpplllllloolllpollllopolloolololllllllpollllpolllllllllllllllllllllllpllllllllllllllllllCllllllllllC>llloÇüÿÿü›ollllCCllCCllClClCCC>llClC>ClClCCCCC>?Cl>CCCC?CCCCCCC?>>?>ClC??>CCCCC>>>CCC>>lC>>>>>>CA>>>>==>>>=>>>>>>>>>>>==>>==>=>>==ÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿóY! =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿþÿþÿþÿþÿþÿèÓ755555555557555778557757555757855555555755555565575575557555587555555755875555575575876757755555655575855575575557575575575555875658655555557555555577556755858775755775755557557865558577755755587655875675765555875755857565576575555555855757657685588755875855555555555555555578555777557577765557555567555555575555555557585555575677556555867587555758555755756565555655775757875855655876575556555877555555578755855555555557757555555565558756767555855555755557655755765585577755555758875555755765555755556585585755555557667675855787778558555ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüúúüúüúúüúüòÕ�slllllCClC??llC?CllllllCllllllClClllllllC?llolllllCllllClollllllppollllllllllpolClllpplplloppllllllppllllllllllllppoolÇýÿÿÿÿÿÙwoooplllllplllplppopppooppppopplllllppppllpllollpollplpllolllolllolopplppoplpopollllllloploplllllllpllplopplllollllllplllllolllllplpplllooolplloopllllllllllllplpvpllCllplllCllllllllllllC?lllllllllCC?Cll˜óÿÿÿ×uClC?C>CllClllClllClCCCCCl>?lllCllC?C?Cl>>?CCC>CCCCCC>?>>>ClC>>>>CC>CCC>>>>>>>CA>CCCC>>>>>=>>>>>=>>CA>=>>=CCC>>>==ACC?===ZñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Y   9s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿþàÓ65565865585685875668585657675555575655575555557555755758555558575557555855655585575555577555758857678778757675656555555565775566557575757755587585576755575586555577555785575557555755565757555555555878555557585758755565565556557556555555856585555787855566557567555675557565555555558775875555555887555565575555858557755655565655557555557555575757585555578575556857575575587555765685776755556555556585576577575576575555557555555565577876765755555778557565757755875575755557555556555785767555555557575655855656557785755557558757575556555575555675555575557675555775576755Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúúúüúüúúüõÕ�plCClCClllCCllCC?lllllCCCCllCllllllllllllCllllllllCllllllpllollllllClplCllollollllllpllllplpllllllllplpllllolloloooollÇýÿÿÿÿÿ×vvollllpoolpoplllllolpopplollpvllollppoollllpollpollllpoopllllllolopllplllloloololllolllplllpllllllllppllvplllplllllplllplolllllplllvp?lplllolllpolllllllolllolllpollllplllllllllllllllllCCllllCCllllClllvßÿÿÿè{CCCllC?llllll?llCCllClC>llCCllCCClC>CCCCC?C?CC?ClCCClC???C>Cl>>?>??>>CCC=>C?>>C>>>>>>>>>CC>=>>>>>>>>>>>=>=>C>>>=>=>>>>=>>=ƒýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;òÿÿÿÿÿóY ! q­õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿÿèÓ55855765555585555585765557557558555777575555677555875676555585555755555855555585675577555557675575557555765555755765855655555555567775787558655585585555757855555765555555585577556557555556577555555565575856755558757755875757557558755775756758555555565555757555577557585576575555576755555557575755555675557555776587555755756555575555557555575558585757575557575758567555585885556755677578555557575855555576755855558555755755575555557575557555575555655556555555575555555556558556557775555587557575655585555565556758757555555655557555575555675555556575775557755755855575ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿüúúüüúüúüúúò¬�qll>?CClCClllCllCllllCClllClCClllllllllllllCllpolll?llllllpllppollll?lllllplllplllllllllllpllllllllllllplppopppllpolllÇýÿÿÿÿÿ×uvlollppppololllplplllloolllloploplpllopopppplloollplllpolllolpopoplolllllllllollppppppllllppoppoloppppllvvplpllllpppllllpllllloppllll?CllllpolllllClpoplllllllllllllllllllllllllllCClllllllollC?lCCClClvÌýÿÿú�lClClCC?CllCC?CClCCll?llCClllC>CCllCCC>llllC?>>CCCClllCClCC>>?CCC>?CC>>>>?>C>>>>>>=>==>=>C>>>>>=?C>A>A>=>=====>>=>==========ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z ! =pªùÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿþÿþÿþÿþþàÓ57555585555555565787575575555577555557557655575575655587555585755755555685785785557575557575558555555555875576555775767575756555875555675555577555775565585576755676555755555767575855556755555775557555756557555565555585575557578556555556768556855857587755557575655555557555565785575555755755775575555568557576655655575555555555675575555555555555555557575555555676565555577765655555567757555558687585555556655567558555885557576855657555555555555557555575555555555558575757566555555675755555558555555755757587555565575567576565665558758557555555755556Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüóüúüúúüüò¬�pllCCClCllClClllCCClll?ClllCllllCllllllllllllllllllllllplllllllllllllolllollllplllllllllllllllllllllpollolllllppolllooÇýÿÿÿÿÿÌvllplllpppollllololplllplllllooolplpolpolpllplplpololloplplpllpplplllpllplllplllopopollllllppllppllolplllvvlollllllpllllloolplllolllllllpplllllllolllolplllllClllllClllolClllllllllCClllllllllllClllllCl˜÷ÿÿÿ×ulCCCClCClllCClClCCCll?CClC>llC>ClCCCCC>?llCl>>CC?C?CCCCCCC?>>>?C>>Cll>>=>???A>>>C=>>>>>>>>>>>>>>>>>>>>C>>=>>>=>>====>>=>====ZóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóY !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿèÓ555585565758755756555585855758755555556555565555565555558555565585586565577755567575555575656585575558656758658557558755575555585555675555556575785565765755855575557555556556765575655665855555555555556555857558655555885655575576755557655677585556588565876555685577655785555587585566766655555555578755585557576588655758556855557556585575555657575555555587558755557557555585555558755755557555655558765556587675556757555767558568565776855555557757655555765556656865555565658566557555555757765655555555578785755565585576556576755575885556557575755568558555855ÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúúúüúúüüúúòÕ�p?ClClllCCC??lollllolC?lolCllClllClCllCCClCllllllll?lllpolollClllllllllllplllllllollllllllpplllooploolllllllllllollllpÊýÿÿÿÿÿ×ulllllpllpllllplllllpppllppplllplllpppollloplppvolpplpppollllloplllClllopvppllllpolpplllppollllppppllllllllllllpollllllollplpllllllllppoolllllllpplClllolClllllllll???llllllllllCllllllCCCCCCllCllllllluçÿÿÿè{Clll>?CllClClCllllCCllC??CC>Cll>>C>?C??>CCCCCCCClC>?>>>>>>>>>>=>>>>>CCCC>>CCCC?>CC>>>>CC>=>>CACCC>==>==CC=========A>>C=>>=C?==ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷Y ! =s¬ùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿþæÓ65578856558555555555577655765558688556555557576575557578557558558767566575755675755566556855555855555766755665856555757565666565685555575555865565556586555755576587565687585566555565555555556555557655555576586567555557555558555565655565855675555585655585865558765555558555576585676578565565555655556575586576758585658556555555865555757555655556555655555585585658555875558557565675655765587566556555565755755755575765575655577655678585556785656555855555557556758755657565765555756655765855557556555555758755555585656755857555767855855578555655655655575555Ó×ÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿüúüúúüúúúüüòÕŽpCCCllllCClCClllCllllCllolClllllll?ClllllllCllCClllClllplolllll?lpollllllllpllllllolllllllvlllolllllolllollllllollllloÇýÿÿÿÿÿÌvllllplllollllollllpppplllpppllllloolpolllpollvpllpolollolplllpolllllpllopollplllllllplllpolllllopollllllllllllllpllllloolvlllllClpplllllllllllpllollllplllllllolllllllllllCCllllllllllCCllllCClllllCloÌýÿÿú›lClllCCllCCllllCCllClCC?CC?ClCCC?CC?>C>CCCCC>CCl?C>>C>C?>>>C>>>>>C>>CA>C?=>CC??>>>>>>>>CC>=>>>>>C>>>>>==A>>>=>==>>==>=>>=>=>>==CßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!óÿÿÿÿÿóY!   7}ªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿæÓ6578555558555576655675565555785555767566655567655555586555556585656665655555565756556555555557858575556558576555565757555758855778567555556855855585557576755585555567555675877558855575567555558555565765575655555555575555858578857675556576556555585558576758855675555575555565555768755755556675865555755765755556556778555785585555755786575655855755555665555555667685555567565875555855555556555556876755855755855677557557575665565555765576565655655757767656556885658555567558768555565557576555775755565585575586556666655765758556765555575668756575567567557575675765ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüúúúüúúüüúúòÕŽpjClllC>>CClCClCCClCll?ClllllllACllCllllllClpvl?lllllllllllllllClllColplllllllCllloplpopvppllplllpllloplollllloollppplÇýÿÿÿÿÿÙvollllllllopllllllllllllllllpllolpllopppooplllolloplppopllllploppppppolllllovpolllpolllllppvpolllpllllllllplpoollllpllllllplllllClvllllllopllllllCllllllllllllllloollllllllClllllllCCllllllllCllllllll›÷ÿÿÿÌulCClllllCC?CClC>>CCC>>lC>>>>C>>>>CCC>?ClC?>?>>>?>>>>CCClCCCCl>ClClCCC?C?>=>CC>>>>>==>>>C>=>?>>>>=>>>C>=>>==>C>>AAA===>====>===>AuüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!   =q¥ùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿþæÓ855656758676675577565655555555867588565755785585555585555555657575875556575858755557566575558555585555555555557765755585755655865555657857655558557657655655675555855565557557555555675855578585555575566557778555555555556555565568566555655658756556755555775556766757655576866877555555575655658555587658555555566856555557765555675556658756565555585565555655767677786657655565655565758555555855755885555655655565656655555655855876557558575555655555655557675555567555585877555555588555768585855585555557555555565755765757656675657576755657557655658757556585ÓÓÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿüúúúúüúúúüüò¬�qClCClCCC??llCCCCCAlllCCll?lllllCClClllllllllllClllolllCC?lllllll?llolllCllllllllllollloplllllllollllllllllllplllllollÇýÿÿÿÿÿÞvllllllllllolplClolplllolllopllllppoploollvl?lpllpllopllplllppllppllpllllllpooollllpllllollppplllpollllllllllpplllllplllllllllllClpllllloploCllllllllllllllllllllllllllllll?lloClllCllllllllllllllllCyèÿÿÿè{lllC>Cll>lCC?ClCCCCl?>Cl?>CC??C?>C?CC?C>CC>CC>>>>>C>>ClCCCC>>CCClCACC>>AC?=>C>>>>>>>>>>>CC==CC>>>=>>>>>>====>A>>>>>==>==>===>=>=>=ÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;óÿÿÿÿÿóZ    !qªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿþÿèÓ57675576556556558568555657556555565556556557575675565556756556755555657576585555655575775557557555558575585765556556655766658556765556575558756555556756755757578576556755556758557685765575566855585656856566555566555555655776676685757565785555775585557555855785865555765855555856555655556756555858867555555575857557585855676555755855875875556765555575565675575555567555655655755676565656756756555656576755565875575558555765576765555566556556765656755575565575555575575556766555575855858555568555656555687557665575555565558576765556768765555655557585855755865568875Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúüúüúúüúúúòÓ�qCCC>>llolClllllClllllCCCC??lllClC?lllCllllllCCllllolllClCllllollllllClClllllloovlllllllllllplllllllllplllpoplllllllllÇþÿÿÿÿÿ×ulllpploplppvvpoloopolllplppollllollllllovvlllplplllllllppllloollollllplpoppllllllllllllllllllllloollllllpplllollllllllllooloolllovpollCllllClollplllol>llClllllllCllllCCClllolllllllllolCCllC?llCCClÌýÿÿú›olCCC>?lllClllCCCClCC>>lC>ClllllClllCCClCl>llC?CCCCC>>>?>>>>?>=>>C>>>>>>>>>=>>>>>>>>>>>>>>>==CC>>=>>>===CC>>==>A>>===>>A>=>>C>=====AñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y !=qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿàÓ5655855655555555576755857555585565855555655577555576555565875555765575555555885556555667856555585555557556555587675555775766565565757885557557655657657565657555555555875558758855655858567585555558655555565585585575565775555575785755855658875757555556755556657555558555855755765557565765788>875656567575556556556757765657755655556555555585767565556555555855565857755855755757656775655555577555755555585555555655555557858555576555557675655555755755678675865765688776885575667785556555885577655768576575558558555567666855777856585555686855555ÓÓÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿüúúüóüóüúüüõ¬�pCCC?CCllllllllC?CllllllCC?Cll?CllCCllCCllllCClllClllll?CllollllClollCClllllllllllllClllllllllllllllllppllllplllCCllllÇýÿÿÿÿÿ×ulllppollploolovpllplllllllplllllpllllClvollllplplllllolollllllloplllllpllppollllllllpllllllllllloollpolloopllllllllllllllolplllloplpolllllllllllolCllllCl?ClllClClCCllll?loolllllClllllllCllC?lllCC›÷ÿÿÿÌtlCCClCCClCCClllCC?CC?CCClCCCCllClC>Cl?CClCCCCC??CClC>>C??C>>??>>>>>>>>C>>>>>>=>>>>>>A>A==>>>>>C>=>>>>>>=>>>===>>>=>====>>=>=>A==>===zÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9óÿÿÿÿÿóZ !    =qªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿýÿþÿþÿèÓ558586555556567665565575755555556765655675555655575755555558657587575556585588566675756677555685855868655755555555575567585555585875555855557585857558565586875657555567855576755565755555876775555576567555688655567655555755665665755765765555555557555555575655575555657555555585655565877855558>ikCj6867755756555567557656585675555578575656555685855585656775555865665585565655655555576556765555557767555586565678655685555555655788555556556875755555555555767557655556585685755678566755855557658555657558557556755555556557558755575756555878555757675576555555555555ÓØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüúúúúüúüúúúòÕŸql?>?llllAC??ClCClCCCClCCClllllllCClllllCCllllllllllCllCll?ollCCplllllllloppopplllllllllllllllllllolllllllllllplllplllÊýÿÿÿÿÿ×ullllllllllllllplllppolpllllplllllppolllplllllolplllllplpplllllloollppollloplllollpopvpllllpoolllplllppllllllllllllllppppollll?lllClollClllllCllolC?llllllollollllllllllllllll>CCCllCCCClllClC?lllC{èÿÿÿè{??lllllll>CllCC>?lCl>?CClllCC>>C??>=CCClCCC>>>>>>>>CC?>C?>CC?CCC>C>A?>>>>>=>CC>>CC>>>>>>=>=>CC>=>>C>==>====>=>>====>CC>======>===A==A=Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– ;òÿÿÿÿÿ÷Y! }¬õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿàÓ565575556566755556776758657555655555755575678675855755678885885555657686555575885555565576855657555855855556556676588585858555568885555565765857557556555675588555575585576558555765875555557575555576876565655557755655576755878655557576657557565565755575555865555555555678565585578jl†‚n>5655765676558755556765555567558777675785575675555565765586758556556787586755558575555755855855555575575555565557557556556657855787555556565855656556655665765556765755555755558557876555856755875657755585557576875887875855555575575555585555558575565575857866555555756ÓÓÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿüúüúúúúúüúüòÕ�plC?>CCllC>CCClClCC?Clll?CllllllCClllllCC?lllCllllllCllll?lol?llllCClpollooopollllllll>lllllllllClllllllll?lllollllpllÇýÿÿÿÿÿÌvllllllllolllllllpllpllpolllllllloooplCllllllllllllpllpllopllllollllplplloopplllplolpppllolllplllplllvllllClllllllllllpoolllllllClCllllllolllCllool?lllllllllllllll?lllllllllCCCCllCClCCCllClClCllu×ýÿÿú›lCClllCllCClllC>?CClC?>lCllCCC??C?C?=?lClC??>>>?>>>>>C?>CC>>CC>CC>>C>>>>>>>C>>>C?CC=>C>>>>>=>CC>>=>>>>=>>>>==>>>====>>>===========>==>=]úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;óÿÿÿÿÿóZ ! ! 9q«õÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿþÿèÓ5555557655558757765555855587555555575555555575557655567556586685655678575855855555657555565678565555585656655657558555575755555678565756675576555555555555755555565656875676755556685556757675665555856555658755658567585587587587565585555555758767555567565555565555655555565876765558757788>{†™Zj685675558558857875658577857555555655585765575555555578676755587557576855876555587675685658858557675556757555557687556855756555565755766875676555767555567655767575655556555587557555657555555656767558868555666855856556757555555555558555555555676576557Ó×ÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿüúúúüúüúúúúò¬so?olCllCC?CC>CllCC???CCCClol?>ClllllCCClCClllllCllCllllllllplllllClllolClllllllCClllllCllpllClllllllolllppllllllllplllÇýÿÿÿÿÿÙvloollollollllllCopllllovlllpllpllllllloollloplllllllpvvpllpllpplCllllllllllllplllllllllllllllllllllllllllollllllllllllllllllppllCllllopolllllllll?Cloppl?lClolllol?CllllllCCllllllCCllllClllllllC›÷ÿÿÿÌvllClC>C>>>?llCC?llllCClCCClC?CCllCll>CCClC>C?llC>CCC?>>>Cl?>?CCA>>lCClC>>ClCC>>=>>>==>C>>CC>>>>==>==>==>>>>CA>>==>=====>A=>>=======>====›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @óÿÿÿÿÿ÷Y!qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþþÿþÿþÿàÓ855555555555585558585555555555785558556565555767665565555565567655576656657557686555856766855657656567558557685558868876585555585575855855555555858556557558578656555555855655765565585585557785558557655765557558755855655675755655558888765767655657558657665565688857586558585855586865576765557555685675656558555656jZrƒp65555555556557566555576555565555585566768576765867576556555555557555767587876555555765758656555565567675587656555585565855555555675765856556755865655555555555555565757856558558555585755555565556558588755656767557657555558575587855767555577556575557675555855676566688555565555855655756558655ÓÓÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿüúúúúúúúüúüõ¬spCllClCCCClC>?ClCCCC?ClCllllCCCCClllll?lllCCllC>ClCllllClllllllllClllllllllCClllllllllllpllCllllCloollllppllllllllllloÇýÿÿÿÿÿÞulpplllllllppllllloll?lloplllllollollllollplllllllllllvpollloopplllpllllllllllpllllllllllllllllpolllllllllllolllllllllllllCloollllllllpollll?ClClllllllll?lllllllllClllllllCCCClllll?llllllC?CllCvßÿÿÿè{llllC?>?lC>?llCCCllCCCllll?CC??>ll>>CCCCCl?>CCCCCCCCC>=>>>>CC>>>>>CC>CCC>>CCC?>>==>>>=>>?>ACC>==>>=>==C>=>>=>>==>==>>===>>==A==>A=>======CèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Y! ! !qªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿýÿèÓ656885556567557566587765555855556558858665555565686755865565558856555555558865585557555556555555556566755588586555875856875565556566555565565586555555565568676556575665555585575865667865658555555855867665856855755657655655555555555587656686655555766656557565576665875685855758556758555555555576876858555856858jCn855565765555667586675866855555688565785555858755575575565755565586758565755555655575565655555567558656855667655658685556565686557555555565555758656565565555755587555556586555557855655675655566558585665555768867566756755555855865556566586588555665667555568668656565656685658765585565556565658555655658865767585Ó×ÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿüúúüúüúüúúúòÕ�p??>CCCllll>?ClCllllC?lllCllollllCCClCCCllllllC?llllllllllllCllll?llllCCClllllllolllll>llllpplplllplllllllllllllllllllÇýÿÿÿÿÿ×ullollllllllllloolllllllllolllllppplllllllpllllplllllllllllllllllllllllppplllplllllllllllllllllollllllplopolllllllplllllll?lllClClvlllllClllllllllllllllllllllC?lllllolClllllC?lllCClllCC?CCCClClÇüÿÿü�lCllCClCCCC>llC>ClC>>>>Cl>lCC>?C?Cll>CCCCClC>>CC?C??>CCCCCCCCC>>?>>>=>>>=>CC>>>>>=>C>>>>>=>>>>C>=>>>>>=>CC===C>=>==>>==>===>====>====>=====xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;òÿÿÿÿÿóZ =qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿýÿþþæÓ76687755556575555556875765555758566565555656557655658567675655565585575855655685686758675555557655565556755568868685575675555555558676578556685566865555555556556555585567565585685555876568675765855555765865655558586555655555665575566565655575558655858555565786565867656755657556858555656555665556555556558566565585655556858888655555575565655555756786555856656558655556658556886588856756556578585555575565555667855588588855565765565655556856686685555586688687665568558868575665867676885578656755555685675768656555666567865585555555667565555585675555788585558578865865765585567876877865676558665558566565565565ÓÓÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿüúúúúúúúüúüòÕ�}?>CCCClllC?CC?ClClCCCllCCClolCCll?CllClCllClll?lplllllllCllClllllCllllCClllllClplllllll?CoplpolllllllllllllllllllllloÇýÿÿÿÿÿÙuCllllllllllllolplllllolllllllllllllllpllopllllovllllllllllllpllllllllllppllollllllllllllllllllplllpopolpllllllllooplllllllClClCClvoll??lllllllllllllClllClvlCj>CllllllCllllllCllCClll?ClCClClClxèÿÿÿßuCCCCCCllCCC?lll>ClC>??>Cl?ClCCCCClCCC?>ClC>CC??C?CC>?CCC>CCCC>>>>>>>>=>C=>CC>=>>>=>>>>>>=>=>>=>>=>C>>>==>>A>=>C======>=>==C>==$=>=!$=>=$===AÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿ÷Y!  ! =qªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþÿýÿþÿþÿÿæÓ558865656575556565555555557658576555758685555756556556658556555557885655665675758567665585556755855686555555556565685586665555588856786675565655858565587867665858655555585886568775556557555568558556688886556866758655556658578857788556665655868555567655766875685868588556755685567555588566656866658755666866755868867667575765865658566788665676585566585556858856665565556555755788555676755558568656568567566875555667586885555656555755856887667676565565566768555585557558858558665667575867556556565565655667655555655676855755556877558658555567675755566555565565665655655555565655555665556555868585575855665556555565756Ó×ÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿüúúúüúüúúúúòÕ }??lCCC?A>?lll??CllllllC?C?ClC?CooC?lllClCClllClpllClAAllCClllClCClllllllllll??lllClolllllollllollllllplCllllpllllllllÇýÿÿÿÿÿ×ullllplllolllpllllllplllollpllvlllllvlllllplllllpolllCllllllpllllllllplCllllllllllppllllllllllllolllllllllllllplCllCllllollllloolllllCClllCCllllllllCClolllollC?lllCllC??lCllCllll?ll??lllllllllÊýÿÿ÷˜llCCCC?CllllC>CCCCCllllClC?>?C?CC>>ClC>?CC>>>?C??>>>>>>>>?>>>>CC?CC>>>>>C>=>?>>>C>>>>C>>>>>>C>===>CA=>=?>======>=>>>>======>=====A>==>====>==C÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY    =s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþþÿþþþæÓ7556557665767576765678555565656655785857556576566855568656557885758855675575555567565555658556756557685855585786568655558855567867677855576558665568566565565555855685565658688565556557658555785675655557655685685555885586865555565568555566555566755557675866755565575557585685567767876755555676856585557558858667555865676855585566765565558655556586585557586657685658588656785655566575588865555855555766555555565556576766565675567655568678555585657665565585668555555588655588768678876855556776568578766575566555565585855555588658556585558555675655556575655765556755655556567655888855576ÓÓÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿüúúúúúúúüúüòÕ�}??lC?CC??CClC?ClCCllllCll>?llCllll?llCClllCllllll?lll>ll?CCCllCCClClllllllC?lClllllllllllplCllolll?llpl?llloollolCCClÇýÿÿÿÿÿÌuolllllloplllll??lllllllplopllpplCloplllllllllllplllClllllllolllllpplllClllllllllllllCllollplllpllllCll?lClplllllllCllllllClllplllllCCllplCCCllloll>llllllllC?lClllCCll??CCClllllllCCC?lolCClC?ƒòÿÿÿÊulC?>?CCCClllCC?CllClCCll>?CC?CCCCACCC>?CC>>>CCC>?C>>>>>??>>>>>C?>>>>>>>>C>=>>C>>>C==>>>>=>>>>>>=>?>>>>=>C>==>>=====>>====>=======>>>====>==A==–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z !     $}«õÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþþÿþÿþÿþÿþÿÿæÓ575558586556556555556555566586767557655855658557567565865565555855876557556656655555566585555567675665665767556765555585555655656565686555855586858565758655585565655665555565856888575555765555555676555758665766765686858665585565655556888566685557665555575655586676865565556575765855875677555558655885555565588555555556786657655588656555555565658556555655656555556585676755556756565757657566557868558567566655756875855856756555555856776676775655655555558656855566555586557555857655766758667558556555555555556885656656765675566768565655655555566768766555655655885685658665558555556556556568555586565555557ÓØÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿüúúúúúüúúúúòÕ�q?>lllC?CCCCC??llC>?CC?Cll>ClC??>?>CllCCllC?CClCllllCllllAlllolCllllCllllCllClllllllllllllplllClCllollllllllllllopllllÊýÿÿÿÿÿÌvplClllllolllClllplolllllllCllllllClolClplooloplolllllplllllvololloolllllplolllll?llllolllllollllllCClpollClpllCClplClllllllllllllllllllolCll?llllllllllCClllClClllCllllllllCll>>ClllCCllCClCCl×ÿÿÿè{CCC?ClllCCCC?>>>?llCC>?CCC>CC>>?>>>?C??Cl>>ClCCC>>??>C?>CCCC?CCC>>CCC>CCCC>>>>==>>>>CC>>>>===>A>>>>==>>=>=>==>=>>>==>>>>==>>==>>======>==A=$===CáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!    9qªùÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿþþÿþÿþþÿýþæÓ5568556666755856556867555555558655858856586866585788555655586686857876557576755555556658555556655855658555855576555555656565658565655555565656558688567656555766766766556665657555656585856555858555785857657555555755656555655677655555866568555558555576675658576585655555555856656567655655565555556575578656558655655585565868565755856675555555565655656555868886555865577656858885855557555555685855855558858655658855555566757687676555555655567555765755555685658565555555565656856565655568556655578655656855576588555665656565555555555685677556555655865566586657585658655567855665565655565767568555556565558558865ÓÓÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿüúúúúúúúüúüò¬�p?ClCCCClCCC>>CCClC??CCllCCCC???CC??ll?llClClllCCllllCClllCClllllllllllol?CllCllllolllplllollllC?CllClllllllCCllllplllÇýÿÿÿÿÿÌvollCllllplll?lllppllllllCl?llllllllllllopvololpllllllpllllppllpllllllollolloplllCCllplllppllllpoll?lloolllllllllllllCllllllllCCCllllpllllClCCllClllllCC??CClCClCCCCCllllllCllCCCCClC?CllC?ClC”÷ÿÿüÇul?CCClllCClC>>?>>lllC>>ClC>>>CC>?>C?>>lCC?>ClC>CC?=>CC>>CCC>ClC>>>Cl>>>C?>>C>==>=>>>>?>=>C>>>=>>>=>>=>A>>===>=>>=====>=>>=>====A======>========CxýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿóY  ! qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿÿæÓ68565578858565765586575886686885655585656857556855857585855576557586566578556555555655568856765567656555885687656568555655566758765658565867665658865758565555585565685555885555555655658566755585655655855555656655555655666565565655565676755568555655658865856565555555685655856558856856768655555558655685685665556555765557556556556565865655855555555556675665555755655556678556786656668555578755565557658585556587685555655556586768575567675655665858556568566575556568565857585566665655667856565685855666755855555555658855755567585658655565755865556656765856855656565556655767555555566858675675585555558565565656568675656865565585ÓØÿÿÿÿþÿÿÿÿþÿÿÿÿÿþÿüúúúúüóüúúúò¬�q??>C??llCCCCllC>>CllCC??CllCCCllC?ClCC?CClllC>?Clll>ClCClllCllllAllCCCll??lollllllCClolCllllllllllllllllllCCloollllllÇýÿÿÿÿÿÌuollllllllllllollplllllolllllllllpvlCllllllllllllllllllolllllllllllpllllpplllllllllpollllpllllllllllllllllllplllllllllllllllllllloplllCCllollllll>lllllllllllllllllllllClllCCCCllllClllllllllußÿÿÿßulC?CCllCCClC?CCCllCC>C?>CC?CCCClCCCC>=Cl?>?>>CC>>??=?C>>CC>>CC>>>>=>C>>>C>>>>>>>CCA>>>>>==>=>>>=>>>===>=>=>>>>====>==>===>>=======>==$======>=$=A=Æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@òÿÿÿÿÿ÷Z !=q¥ùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþþÿþÿýþæÓ5865655776685855755558558858565567657565655575586556655656555656855576765865566565655555555555585558755655555585555658585755856586555658556655655655586767568555865565558555685555788587665555665556655867857668766586585555568655565555557686855565858565555665585676767555587655655675655885656855657557558858585658656666585556568555555657558857675585556555565767555686758555568576686856655556665557676756565755676856765685867556786586556766586558555565665788555556555855758555655556755865586558587655565565566866876587555588655568567665688685766855655678585555656856567866555765577678885855676557568565585555755577555588555766ÓÓÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿüúúúúúúúüúüò¬Žp?>C?>>llC??CllC>>Clll??CCllClClCCC??Cl?lCCCl?C?ClC?C??l?ll?lllCC?lllCCCCClClClllllClllCCll>llllllCAllCCllllClllC?lllCÇýÿÿÿÿÿÌulppllllllllopollllllllllllllllllovollCllll?llllpol?llllplCClpll>llllClloolllllClllpplllllllCCCllllllllClllpollllllClllopllllCClvpllolCllpllolllllClllCloolClClllllllllCCllllCCClllCCllCClCllžúÿÿü›CCCCCClCCll>>ll>CllC??CC>?>CCCCCl?>Cl>>?l>C?>>>C?>>>>CC>CCl>?C?=>?==>>>>?>>>>>>>C>C?>=>>>>>==>>>>>>>==>>>===>>>=>==>>=A===>=>======>=========>>A===Z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!óÿÿÿÿÿóZ   ! ! !!!9qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿþÿþþýÿÿæÓ86565565565766555555555565557565565767668655565565555565885866556757565866555657558556666565655856855656565558555558555555558685868655585555556555665558667675668865758658565676557555655558776755575586585555558558885655556557655655768765565555655566585676788685655675858585556576758855565555568855555655675555855555555765565766587658686758655655555668575565655585887565865586655555555685565668565585585555675585558587555575555768585658676555556585575755555585855556585685585555555565556655555568685566556555666858755675655856765555555655655556857855587575855767556655565566585687665555555555556656655885755555656558565755655656558585565756855Ó×ÿÿÿþÿÿÿÿÿÿþÿÿÿþÿþüúúúúúüúúúúòÕ�qCCCC?>?C?>?CCllllCCC>??CllCClCCCCllCCCCllll?ClllllClllllCC?ClllllCCllllloolllClollCClCl?lllllllllllplllllllllpollllllÇýÿÿÿÿÿ×ullolllllllllolllllollllllllClllllllllCllllpllllllCllllllllClllllllplllllllllllllloolllllllllllllllllllllllllCClolllllllllClllllplCCllllllClllC?llCClllCllCCCClClllCClCClllCCCClClllClCCC?CCuáÿÿÿñ{C?CllCCCClC>Cll>>lC>????CC?llCCCl>=?CC=?CCC?>CC>>?>CC>>>C>>?CC>=ClCC>>>C?C>>>>>A===>=>>==?>=>A>>?>>=>>====>>========>>>===>==>========>>==========$=–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿþþÿþÿþýæÓ8585555667557656555655585665567686585555655685667855885765855686555565856765568867676685565556858565558658656576666555656576568865585586655658855556856586>5555656556865566556568558555556886755855566868755586558566555555686585655566565565655865685558558685755556556565666585668655555666558556555555655875686658856656565667655685555668567555558585886586565555585675658755555655855658678556586656858685676566556876666556556566877855557657685666585756765666566687868655656568865565655656685555685585667685585655566658755565667556865655556556865855665865888556576656866665866856555668656656565665556658556855556658766ÓÓÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿüüóüóüóüúúüòÕ�pllC>>>?C????lClll?>CCC?CllCCCC>ClCCllCClllllCCClllCClllll??lCllloC>loolloplllCllllCCClllCllllolllllvpllClolllvpolllloÇýÿÿÿÿÿ×uClpolollllllllllllllCCllllCCloollClClllplppolClC?llllllll?lllllllpllllllllllllllllllllll?>llllpollllllolllllllpllllllClllClpllllC??Clllll?Cll?ClClClllC?lCCCCllCClC?ClCClClC?llCClllCCCCCClÆüÿÿÿáu??ClllCClC?>?ll>>CC?>CC>C?>ll??ClC>>CC>>C>?CCC>>>>ClC>>>>>>CCC==>CC>>>>>C>>>>=CC>=>=>==>====?>>>C>=>>=====>>========>====A=A>===>====>=>==C>==$=$!$=C÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿ÷Z    ! pªõÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþÿþÿýÿýÿÿèÓ568676557676685568656655768657655555556855556658655856655856676656555876556568568566866658567567576555676668667865556555555756656656886775556565575656568†™p66556558685566558555558556658886556655755756555765586556556656856555686855568655685868556656655568566665555655588668556576556655556566867668566556886888667566568675566656566865568865576588658656655858685867656556567685886568558656655577655655586565688685857676556655865686655686655865658656855578865555868866555675688656666866868856556865768586565855855586556856856756556555855856556786585685556676586585558655867855555586558686868885555555567566758567565566565555667885Ó×ÿÿÿþÿÿþÿÿÿþÿÿÿþÿÿüóúúúúúúúüúò¬Žo?C>>C?ClCCC?>?CC?>CllllCCCCCl?lllCCCC?CCCCC?ClClCCClCCCCllol>lAlol>?llCCllClClllCllClllllll>lllCl>lolllllllClllllllooÇüÿÿÿÿÿ×uClllllllllllllClllllllppllllollplllllCllllllllllpllllpllllllllllllllllClllllplllClllolllllllllllllllClllllCClllllllolClll?lllllCllllCCCllCClllClllllClllllllClll?CllllClllClCCCllClCCClClo›÷ÿÿÿÿßuCCClCCCC??C>>lCCCCCCCCC>?>?ll?>?>>>CCCCCCCC>?C>>=?lC=>CC>=?>>>>>CC>C>=>=>>>C>=>C?>>>>>>C>>A>=>=>>==>>==?>C>======>=>===>A=======>>===============$===–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z!q­ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþþÿþþÿýÿýýàÓ576558656756856575876656568586565885875555656568558665766558565555555865555768765575656565566586658556658585885555565657866865856856555668656656565655565j™ý68665855865856666558685568666856658655665686856856655685685656858657565765557856565588656888588578855865565656766557885655865858865665756665656678685655755768555877866768876665855685768556665658656656556555676566558565557666565856565787685688556755867786658766688556578556886556585668656588876555865555655755767665576556556785656865555888676555555675866556555888565566565866565675556865665555566765587675766866586655585866566666558566ÓÓÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿüüúúúúúúúúüò¬sl>>>?CCCl?>???>>>>>?CCllC?llCCllCC?C?>?C>>CC??lCCl?ll????lllC?llCCl?>C?llCC?>?CCCClll??llllC>CC??>llllllllllCCCCClllllÇýÿÿÿÿÿÌullC?lllllC?CCCollllllllollllpllvlllllllllCCllllppvoopppllllllCllllllplCCClollollCllollllpplllllllllllClllllllllllllllllllClollCClllC??llllCllClopollllllllllllC???ClllClllC?l?CllC>CCClloÇúÿÿÿÿÿßul>CCCllC>??>>CC>?C?CCC>>C?Cll???>>ClCC>ClC?>>?>>CClC>>>C?=>>>C=>CCC>>>>==>>>>==>CC>>>?CA>>>====>===>>>=>C>==>==>>>?=>==>===$=>>====$==$=$=====$======ZüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿóZ!!     $s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþÿþÿþÿýÿýÿÿæÓ56765658658855676676576558765586656656565656688856556865768586556855856865668566665655655865856556786586658556665658656655655568785566558655656886668855555655656675pj57655656656555666866768676656558587567556655558655568555655676558767658555568656586556588668658885678876578655856656765566855678655678868555766858558666558566655685565655655666565556875588656556756568566655576865865688567586755686555666577658865668558656656676865555886867675867655885568685686556585566856656565658676558576676565658676565865858568676685567855865655866556865667576555765556586756556566785558555655656566585656685658556565556655558585866558575Ó×ÿÿþÿÿÿþÿÿþÿÿÿÿþÿþüóúúúüúüúúúòÓŽp??C?CCCCCCCC?>?ClCC?CCCCClC>?ll??CCCCllCCCCC?llllCCC?lllClllCCllCl?ClCooll?ClllllllllClllllllllllllllllCClllllllllCooÇýÿÿÿÿÿÌvol?lllllolllllpllllllllllllllllllllllplllllllllllllllCllllloollloCClllllllllllll?lllllllllllllllllCClllllllClllllClllllllCllCllllllClllCl>llllClllCClCCllllllC?llCClol>?ll>CCllClllCCCl{ßüÿÿÿÿÿÿáx?CClC??>CCCCCCCCClCll>?lC>>CCCCCC?C>?>>?CC?C>>>CC>C?>?>>>>C>CC>A>>>>>>?>A>>A>>>=>C>=A>>>>>>==>>>>=>>>=>>>==>>=====C=========$==>===============!=>=$=CÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷Y =qªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþþþÿýÿýþæÓ65686665555685565685686655765666758765685556685886585556567586655655588856565656586657667556556866755556576565886786686658665686565566588558568676656558655555568658665656766555686857565685566568656756855568766685768566666556866765686765866556656566668865768656865565686857667666785668585658568556655667665556585655655655655665567686558585658555686886555686565656665575568555686755665787556755658568685556676658555668556865566575556655565655585586758666567565865658665565665885565566565676665586576868655666866576858665655856566556865558566756857688686556555555565666567656ÓÓÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿüúúüóúúóúüúò¬sp?CCC>>>>CCllCC??lllC>CllllllCCC>lCCC?llllCCClC?CC?l?ClllCllC?ClC?CCClClplCClpplClC>CllllCllpollllllClClC>?CC?lllCllpoÇýÿÿÿÿÿÌuolClllCllpplClolClllpollllolllllCllClollCCpollllC?CllCClplClpllplC?llllllllCCClllCCCllllCCllllClllllllCClllCllC?lllC>ClllllC?ClCClllllCC>?llllCCC?CC>??ClCllCCClllCllC>>>>?llCClllllCC�òÿÿÿÿÿÿÿÿõƒlCCl??>?>CllllCCllClCCllCC>?lCCC>?C>>?>?lCCCCCCCC>CCC>>>>>CC>CC?>=>?ClCCCCCCAC>=>=>>=>=>>====CC>=>=>>>=A>>========>==========$=A>==>===!====$>=$====9=ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;òÿÿÿÿÿóY       7p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþÿþÿýÿýÿÿæÓ5576758765765686876765556558555765565666586765565585856865667556785586765586655585655675755566555678665565567556678568555556565766585656685558666555556556685686685558855665655565856656567656556555566756558585658555665685568665558655565555756557655866555556857558655656856878575876765558575658566856855555556565556685587656865865565555766676585685575556585565658868686558557657855856568565568567676855555676566556566557566856587556765856565667566555565655586588586568568585855665668686886555558555575655685865865586867556565666668665755675575865655656586656785656757688688656556558558555656568568675556585Ó×ÿÿÿÿþÿÿÿÿÿþÿÿÿþÿþüúúúúúüúüúúòÕ�qC?ClCCCCCCCCClC>ClClC??CC>>CCCCC?ClllCCll??llC?llllC?Cll?CCllClllllClCllClllClC?lllllllll>lllllCllllllCllllllllllCClCÇýÿÿÿÿÿÌullClllllllllClllllCllllllllllllllll?lolllClllll?lllollllllllllllolllllllllllllClllllClllClllllllCCClllllCllllllClllllllClllllll>lllll?CllllCCllllllCllllllCC?lolCC?ClClClllCCClCClCCCÇüÿÿÿÿÿÿÿÿÿú˜>>ClC?CCC?CCCCCCC>>C?CC>>C?CC>C>>CC?>>??CC>?>>>>>>C>>>?C==CC>>>?>=>>>>>>>=>>>>C>>=>>A=>>>=>=>CA==>=====>A=A=>=====>==>====>==========================!Cýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Y  =qªùÿÿÿÿÿÿÿÿÿÿÿÿÿýþþÿþÿþþÿýÿýÿýýæÓ8565555586686565586576568676555676565786658666558666688566558566555565588556556566556586665586557686565556667585576857657656558556586656865556767655785768856865665655565655556657665565655578658655655565686558556855655555558556555788586865586586556865856568656556767686685555565676556665755555565868565655656558565555656857656565656655566588558866555686588587558656665565558585865585665555668556665856566585576568565565556655666555556866656658586655686665556875585565567668655568565656556555556868556856856588685688656856565555656865668556865555576655856555655576765866556688685557685757668865666565655555866565656766658558685556568565565866556585555558586556656586ÓÓÿþÿÿÿÿÿþÿÿÿÿþÿÿÿÿüóúúúúúúóüúòÕ�pCCCllClCC>CCCClCClCClC>>>>>>>CClClllClCCC?ClllllllllCCCC?CllllllCllC?llClll>C?>>ClClllll?CCCCllllollllllCllClollllC??Æýÿÿÿÿÿ×ulClppoolCCCl>?lllC??llCClllllllCllCCllllllCllllllllolll?ClllCCClllCllllCllllClCClllC?ClCClolollllC??lllll?ClllClll?lllCCClCCCCC?llloC>loollllClClCCClllCCClClllCCCCC?lCllpol?CCCCC>?›úÿÿÿÿýüÿÿÿÿÿÆ>>>Cl?>CCllACCC?>>>CClC>>C>>>>>?>lC>>>>>>>CC>>=>C>=>=>>>?=>?C?>>>>>>=>=>>==>CC?>==>CCC===>==>C>=>===>>==>>>===>>==AA>=C>=>=====$=====>>===$==$======!@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!óÿÿÿÿÿóY ! !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþÿýÿýÿýÿÿèÓ5565685556785656868666655588858555675665868866655555585565575655685865565558886865656568685686676558655755856665675586867856566555688685566555855655855667556856888565565865556588855586555856555585858565856855556566556566858567585576567655556555885566856555767755558556666756586768555666556555655676676658866566656565555566557555868676568558566555767585556656656567655555576868585558586755867666556656575555558855555555686567565656686567885686666586558585558555565568866686675666856785565566666865556556655585755565675567657555556665686556865556655557656755555567555855656657566676555555758665856556555875555556676655865655866588555556ÓØÿÿÿÿþÿþÿÿÿþÿÿÿþÿþüúúúúúúúúúúòÕ�qCC?>>>CC??CCCC??CCC???CCCCC?C?CCCCC>AllCCllCCClClC>ClClCCllCllCl?CllCClCCl>?lllllol?CllllolllClAlllAlllCllllClllClCllÇýÿÿÿÿÿ×ull?lllllllllllllllllllllllCClllllllllllllllllllllllolllCClllllllllllllll?lllClllllllllClllllollCllClllllCllllllClllllllllllClClll>Col??llClClClCCCClllCl?llCCCCllCCCCClCllll?CC?lCC{èÿÿÿý×{uÆúÿÿÿ×l?CC??CCClA>>CCCC>>CClC>>?CCCC>>>>CC??>C>>l>?>=?CC=>?C>>CC>>>>>=>=C>>C>>=>>=>C>>>=>>>>>>=>=>=>>>===A>=>=====>=>======>>====>===============!====$!=A=$C÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷Y!!!sªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþÿþþÿýÿýÿýþàÓ6656565567856568555555585556585565556886568665655556565685658576865556685656565657566766868866886855566657576688655665667555558865656558686585768655656856555658856655658555555886656565866666885655558656555685666658756555556868855855565656558768568565656656555557685655556566656656565658676868656665587665565865565555555558856586685556665656865565556866576558685556656565868566686565585667866656557655656665555655856665688866865656556585555586876558585665555676856665565686686565655686565568686855565686655658655665678586855586565556666556565565556557666558676856685565655665856565865655556686656558665565665565565686686556566655858666556665556668665658676555565765688556688ÓÓÿÿþÿÿÿÿÿþÿÿÿþÿÿÿÿüüóúúúúúúüúò¬solC>>>>>?CC?C?C>>>>CC>Cll??CCllC>>?CCCC?>?llCCC>>???>CCCCClCClCC??lllllC?C?>>lllollC???ClllC?C?llClC>>>?>lllCCllllC?llÇýÿÿÿÿÿßvll?ClllllllCllolllollllClCClpolllllllllllllll?>?AlovlopolopolppplllolllCClplloollCllloolllllllCCCCCllplllCllllC?CllCCClllClCClllll?lll?ll>C?lll?CCClC?llCCll????lllCClCll>>CCCCl??>›ÿÿÿüÇtC?lÌÿÿÿáuCCCCClllC>>>CCC??>CCCl>>>>lllC>>>CCC>>>=Cl>=>>>>>>CClC>>>>==>>>C==>>>>==>>====>>=====>AC>=>=======>==>>==========$==>>=======>>=====>=====$=====$====ZýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿóZ  ! !!!!=p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿýÿýÿýÿÿæÓ56585656565565655685555668565656556565865556565665675667565555565566676886568655566555665567555556875658556565656566666555555658666856555656568565666686656656655865688555665555665655686667666565558566566858658667656566866665675656558688566656565665855555888585565856555565558676685656685656868665568558555868686566568685565586558585668688656666555568555686556656886565565556585656556585555565856555565566856665866566655656866586556576556755655566555585655655565586556566556555565558566565665656865686555558858656856555656656665658885656667586856656655666656565658568555686556666765586866665566765556688656556555656566666556758655676566867686656888ÓØÿÿÿÿÿþÿþÿÿþÿþÿÿþÿüóúúúúúúúúúò¬Žo?CCCCC>>?CCCCCC>>?ClC>CCC?CCClC>>llCl>?C?CClCCCllC?CClCCCC>CllCl?ClCll?ClClClCloCClClClClllllCCllClllllCllllllCllClllÇýÿÿÿÿÿ×uCCClllllClllllll?CplCCllllllllllC?lllClvlClllClllllllllllllCClllllClllllllllllllllClllllllllClll?lllllllCClllllllllClllolCl?llCClCllClColClClClClC?C?llCCCCCCCCCCClllC?CCCCClllC??ußÿÿþÌoCCCC{ñÿÿòƒCCCCCC>A>CCCCC>CCC??>?>>C>CCCC>>C?CCCCA=>l?=>lC=>CC>>>>>>>>CA>>>>CC=>>>>>==>=AC>>>>>=>>>=>==?>==>>=>=>===>>>===========$=>=>============$===>===!====–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Z!  !qªùÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþþþþþÿýÿýÿýýæÓ6756856668658556685655568656565565558656556666656565565556686665857685568556565565585567686665686586665586655666556656568686566586666558566565565655556865866586765555886558855868666688655568665555658655665556656588676555556585665566655655665555666685676765666658658668655656655666565556655656565655665666555656557655655686666556655657656885656768686585565665655856658686565866665566556556558658676865856868565556686585565766686656585556665565566558865688566865568566868568556585665565665656668666556865566655565858688868558555665658685556565686585668566865586565655686685666557665676655665655885866556856868566556868555555555686588568685665568557685655ÓÓÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿüúúúúúúúúúúòÕ�o>>>>>>>>>CCCllCCC>CCC>>ClC??>>>>?C?ClllC>>>>>>CClClCCllllCCllllCClCCCCllCl?lllllCCClllllCllllllllllllloolllCCllCCClovÇýÿÿÿÿÿÌClllClC>??Clollll??llCClppol?CC?lCllolloollllClolC?>lllC?CCC?lllCl?ClC>ClllolClllCCllllClCCCC?CllllllCC>?>llCllpllC>ClollllCllll?>lllC?Clool???Clll??CClllCCClllC>>lllC>>lll??CC?>C”÷ÿÿñ{?>>CCCÇýÿþ�CCCCCC?>>?lC?CCCCl?>=>=>C>>>>>CC>=>CCll>=C?ClC>=>?===>CllC>CC>==CCCA>==>C=>>=>C=>CCC>=====>==>>>>>C=>==>>=======>=========>==A=$====$$==$======$$$!!=ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY      ! !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿýÿþþÿþÿæÓ86586688586886666666887565555556556566566555665655885856685655565675566688685656566886856656655668556565865676855686656656676558686766558675555668685655856565655686565678856765665866685665888555555566686568678666565575678585855568865555666655566556556565786768655858688755565666586565588558565685566655556756568655885667655686666868558686665666556656558655556586556665865865856656865566558888556866667655666586558568656855565556555676555566866686568558685656758555658886556675565585655656865688586556558586565656585855668585658667558655565556585868686666556566686556666658665858686585666565688658666555656568656568666566566656856656685556856658565555656666756556667565665868656588886565658668666Ó×ÿÿÿÿÿþÿþÿþÿþÿÿÿþÿúóúúóüóüúúúò¬Žm??>C?C?>C??>CCCC?>?lA>>CCCCCC?CCCCCCCCC??CC??CClCClC?ClClClC>CllllCl>?llllCCCCllCllllClllClClCClCllClClllCl>lllCCl?llÇýÿÿÿÿÿÌullClll?lllllClllllllllllllCClllClllllllClllllllllClllllCClllllClll?lllClllllClolClllllCCllllllllCCllllClCCllllllC?l?lplClll?lll?lClll?ClCllCCC?lCCCllllllCCllCCC?ClllC??CClCCClClC�þÿÿÇCCCClCCußÿÿßuCCCC???>ClC>>CCCC>>C??>CC?>>>Cl>=CCCl>=?>>C?>>>ACC=>C>CC==CC==??>?>=>=?>>>==>>>=>>>==>>=>=>=>======A>>>========>C===========C=$===$==========!=====xÿÿÿÿÇxÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y!!q¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿýþþþÿþþÿþþÿýæÓ55666558666565856655666685888565866856565555565858668868558555566565868555656568658566856686658556655686556658655765555666556665556858865568676885655568685565555555865885686855565885556855556565858655865855685586556868565655585666566565658585666555655558566555676555565568656865665676585566855565688866565565585655656865688588555556586565665858555665658586665865567655658588656865656568686655858676665586566558765555865658556565656885656566566566855888567686656565668555865656565568586856587655658665565555566866666655865656666656558586865585555655555556855665655655657655585765656656765856655555666565658565668665586568555586766786656655556865655858688855686855556566865586855855666768665586765ÓÓÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿüúúúúúúúúúüò¬spCCC?CCCCCC?>>ClC>=>ll>CClClllClllllC??CCClllllCC>>CC>>>?C??>>>lll>>??lll?lCCCCCCCCC>>llollC>>>C?CClCCC?lollpoll>llCl?Æýÿÿÿÿÿ×ul>Clol?lllllC?CCllllolllCC?llllllC?l?CC>>llCllClll?lllllCCllC?CllllllllllllClCCllllClC?ClllllllllCllllC?llClCCClCllllllC>C?CllCCll?CC???Cll???>>???lllC>ClllCCClCCC?>C?>>>CCC>Clll�þÿò”llCC?lllzèÿü–ClC>?ClC>ll>>??CC>>ClC>>?CCC>>C>=>>>>=>C>>>>=>ClCCC?>==>=>C?==A>>>=>>C>>>C=>CC>====>=CCC>=>>==>>>=>========>>>==>>============$=A=$$A==A==!$====>==ÌÿÿÿçA==ƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!óÿÿÿÿÿóZ    p¥õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿþÿþþÿýÿæ×6665676885688568656566565686768656656566765658665856856765685665566665686668558686585886576568678676555656668656578676566656656856556685556685665856555565676556565566655656656686556588867566556668566656568665565688866576568685666855665668855568656565555855566566858565558568566665586856878665665656555586655656568586856586855666555655566866566655566556666565655858686568555655855585865558555668565566558665655565666656685686666656558568555555656585665566665676558555566565666566855666555666565676668688855555585565686565657855665658668656655655555686855588686555568585856668586556556868666566566556555558676556675555556555558565555655658585866556565656555855665656886656656555856655586565555676566658Ó×ÿÿÿÿÿÿþÿþÿþÿÿÿþÿþüúúúúúúóüúúòÓ�p???C???C?C>=CCCC?>ClC??CC?ClCCC>?lCCC??Cl>?CCC?CCllC>C?ClCCC?Cll>ClCCClClCllCCCCll?>llCllCClClCllllCCClCllllll?lCllCCÇýÿÿÿÿÿÌull?lllClllll?CllllClllllllCClllllllolClllllCllllllCllolll?ClllllllCllllCClClolCCClllllClllClllllClllll?llCllC?lllllllClll?l>llllllClCllCl?lCClCllC?ClClC>lll?CCCllCC>?lCCCCl>CCCCC�þÿòƒl>C?>CCCCuÌýÌllC>?CC>>CC>>CCC?>>CC>>>>?>C>?>>C>=CC>>C>>>C>>C?=>CC>>>>>=>>>>>>>?==CC==>>>=>>>>>=>===>>>==>=>=>==>==>>=======>=========>=!========$>============!Aüÿÿüu=!==xúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–@óÿÿÿÿÿ÷Y  !qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿýÿýþþþþÿþþÿýæÓ8856586556665665658656555585676567676556555555875865655655686555857656565665565856855555666565658565668665567656855558676665686576555556868658586888555686865556566865586865855666588565586765886558555856655565658658556655866655665665657655686886665558688555665565565656556886566558555568665566656855866556688565766668868665565576865865676678556656556868656666658586656856588665868656885767656655586885765768656556885566656565686555866565565865566668686588688656567685656555556556558665865665685656585866786565686656865856665686858565685667556685685666766855865585566655586656555566566665686568686586866665566666668876558866588685555556886565858657656665566558655656ÓÓÿÿþÿþÿÿÿÿÿÿþÿþÿÿÿüúúóúúüóúúúò¬Žo>ClC>>>>?>>>?C>>CACC>>CC>>>CC?C>>CC?>>?ClC>>CCCClllC>CCClll???llllllC>AllCCCClllllC>Cl?>>?CCllolCCCCllllC>>CC?llCClCCÇýÿÿÿÿÿÌvllCClClpvllCCllCll>>CClllllllCCllCllCCClol>ClllpllllCllllllllllollllllpollCllClllCllpolllC>>ClC???ClCClClClollllllC?>>>>CllllC?CCCClllllC???lCllllCCClCC>CllCllCllC?>>CllCClClllCC›ýÿüžC?lC?>>>>Clƒ˜vC>?C>>?lC>>CCCCC>Cl?=CCll>>CCC?CC>>ClC>CCCAClC>>>>==>>>>>>>>===>?===>>==>?>=>CA====>===CC======CA===>>>>>>==========$======>=$$==!===$!!===!!!=xÿÿÿ–=$!!$@{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;òÿÿÿÿÿóZ!!  =sªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿÿÿÿþÿýÿýÿæÓ656588565656865685565565656565585586565565568685665588685555588688555568588565665865556686866656656855655555867665675555555655555585555556556586658565565656655685565667688656565655856655586565666765666588586556856565676556686568855856566556768655856686565686565565655566556655886556566685855666866588688565656856765565565565667686556566675566586566658568656656858865785866555688856556858556866866765686655666686666558686865666668685865566555868566856555TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTMTTTTTTTTTTTTTTTTTTMTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT76866555676558858658566566656666686688858856656668Ó×ÿÿÿÿÿÿþÿþÿþÿÿÿþÿþüóúúúúóüúúúò¬�p?>CCCCC?CC>>?C>?>>?CC>C>?>?CCCCCC>???CCCCC?CCCCClC>C?ClC>ClCCCClClll>?lClCC?llCClClCClCCClllC?llCClllllllllCCllC?llClÆýÿÿÿÿÿ×ulCClll?lllClllClCCClllllllCClClllClllllClllll?lolClllllCllCllCClllCllllllC>lllllllCllllCCClClCllllCCllllC?llllC?lllCllC?lllll>lllCCll?CllClClCCCCllCCCCC?llCCllCCC>CCCCCCCCC>?ll>>˜÷ÿÿè{CCC?>>CCCCClCACCC>>lC>>CC>>C>?>lC>>CC>>?C>>>C>=?>A>Cl>>>?A=>C?=>CC==>=>=CC=>>>>>==>>=>>>=A=>===>>====C>====>>>>=====>=====>=====$===$=====$=========$$==!=$===ƒÿÿß=====!$=ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Yq¥õÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþÿýýýýþþþþÿýàÓ865565565656776556866658556665555885568685665856656556685568565756568555585656566665558665655565656665568666868665566686665566666668686658666588666655668865666588576566665665865676566855655566886555586585766665865666666566565666866685566668656586686658585586555666566885568568656588585655555668685658566658568666766865658666556655668685665686656566866565886586656665856856565655686566555686658666885658658655865866568586656556665688556556586XXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=6886666866855658666655686685665686865665665556676666655ÓÓþÿþÿþÿÿÿÿÿÿþÿþÿÿÿüüóúúüóúúúúò¬Žo>>>CC?>ClC?>>>CCC>>CCC?CllllCllllCCCClC?>>CllCllC>?lClll>>llll?>>>>C>?lCll?ClC?>CllllClCCllll?>?ll>>???C>llllCl?ClpllÊýÿÿÿÿÿÌlClCll?>?llCCvpllllCCllllCl??lll?>llllllCClCCC>ll>>?llllllllll>>Cl?CllllCl??Clll>llC???ClllllllCClC??lllllllC>>>>AlllCllllolC>>CC>?llC>?ClllllCll?>lllCC?>CC>>>lllC>lllCC?llC>>>CC>tßÿÿÿèyCC>>>CC>?CC>>ClC=>CCCllC=>>>??ClC?>>=>>?>ClC>>C>C>=CC===>>>C>===>=>>>=>CCA>>CCCC===>====>C?C>>===>>=======================>====>C>==>===========$!=!=====A=!=–ÿ÷@!=!!$=$@ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóY      ! =s¬õÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿÿþÿþÿþÿýÿèÓ655656665586856686566685666686656866665665565668665666668666566666555666666856656568666685676556656656886656686656686665686755565665867666665675566656666585688886666865666656766685685556556566666585688566756886686766556768685685866667578566865655568566665888655566865666566658656865586655565856565566566666856665565668656565558586886756565565856665566685665566668666555666658566588558655565566567855668665656688656656668656TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT8566565655656668665588868658656566865568556656558566566Ó×ÿÿÿÿÿÿþÿþÿþÿÿÿþÿþüóúúúóúúúúúòÕŽm>>C>C?>>CCC?>>?CC>?C?>CCCCC>?lCCCCCCCCC>>CClCC?ll?C?>ClC>ClCll>?lCCC??llCC?>llC>llCCCCClCllCClCCllCCCClCCllCCllCClllCÇýÿÿÿÿÿÌuCCCllCClllClolCllCllClCCllCCloC>lClplClCCllllClll?CCllCCllllCCCllllC?llllC?CCCClll?CllCllllllC>?ll?CllCCllCCCCllCCloCCCllll?ClCCCCllCllClCClCClCl?>lCllC?ClClC>llC?ClCCC>???CCC?CCC”÷ÿÿÿçx?C>>llCCC?>>?CCC?>???CC>>??CC=>C?C>>>>>>CCC>>>C>>>C>>>>>lC=>>C=>==>>>C>=>>==>>>>=>===>>>>=>>====>A>==>>======>=A========>===$=A===========!=>=====$$=======!u÷‚$===!===!=‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿóY  !!=qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýþÿýþþþþþþþÿýàÓ6856856556566566655655656565565665865658686867866666656666565555666656865856656567686656865566665655655688886655686668867655685855856688656668656567858665568688568568686566565555656686666566565665665566856556665865565675568666685865686565555655566768568686655666888568658656565886566585666866666886665678668676865655656568666766676866655668666656656668558566865556665565666665556686658688656565556665686588886666656856666656865568TTTTTTTTTTTTTT"TTTT:TTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTT:TTTTT:TTTTT:TTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TTT:TTTTTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTT6666855688858568565568555566656865856666666666865865665568ÓÓÿÿþÿþÿÿÿþÿÿþÿþÿÿÿüúúúúúúúúúúò¬ŽpC>?C>C>=>C?ClC?>>CClCC>>=>>>>>>>>>CCCCCC>lCllC>>llC>>CCC>ClllC>CllC???C>?C?>?C?>CllllClllCllCCl>>CClllCClll?ClllCCC>>ÆýÿÿÿÿÿÌullooplC??>>?C?>CllpolC?llll?Cl??llll?CCllllllCCCl?lllllC>CllllllllC??CCClllloppol??ClllClClllllllllllll?>CClllCClCCC?>?>Cl?Clllll?>?CCCCC>CCCl?CC>>??CllllCC?>>>CC?Cll??CClllC>>???CÇþÿÿÿ÷›ollll?>>>>>CC>>C>>>ClClCCCllA>>>?C?CC>>>>>>>A>>>>>=>C>>C==CCC>>>>>CC>==>CC====>CCC==>>>====>=>==>A=>A===>========$=>=>>========$===!=====!=====>=!===!!=$!$==!===$!===@›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!;òÿÿÿÿÿ÷Y !! !   pªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿþÿþÿþÿýÿèÓ65866556568665555868556866656865866556888666668688688866856868666566555556568866586668665685566566568556666685866866665685666686656856585655656655656566656888686865556555865568556666555855565665555676565666665565658665866885666555656686588658666666586666666665566865656568666868656886855556688656688586686566XTXTXTXTXTXTXTXTXTXTXTXTXTTVTTXTUXTTTXTTXTTTTVTTTTXTTTTUTTTTTTVTTTTTTTUTTTTTUTTTTTTTTXTTUTTTTTTTTTTUTUTTTTTXTTTTTTXTTTXTTVTTTTTTTTTTTTTTTTUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUTTTTTTTTTTXTTXTTXTXTUXTTXTTXTUXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTØ×ÿÿþÿÿÿþÿÿþÿþÿÿþÿþüóúúúúúúóüúòÕŽp??CCC>>>CC>>CC>>?CC>>>C>CCCCC>>>CCC>?CC>>llCl?>C>ll>>ClC>CClCC>>pl>?CC>>CC??CCCl?>llClCClCl>ClC>CllCllClllC??lllCCCCCÇýÿÿÿÿÿÌuClplClCllC>CCCCCllllCl?CllllCClCllC?CCl?llCClllCC?Cllll?CClllC?llllC?CllCllllllllCClllCCClCCCllllCllCCllCl??llCCClC?C?CClllClClCCC?lC>?CCCl??C?llCCC?llACC?CCCCC?CCC?C>>ClllCC?>>>CCCÆýÿÿÿÿç{ClC>>>CCCC?>>>>>CC>CCCCClCCC=>????>>>=CCAl>>>>>>>?>>C=>C?==>>CA>>>C==>A===>==>>>>>===>>=>===>=>>===>==============================$======$$==>==!===!======!===$====u÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY   $qªõÿÿÿþÿÿÿÿÿÿÿÿþþÿýÿýÿýÿýþþþþÿýàÓXXXVXXXXXVXXXXXXXXVXXXVXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXWXXX66586666585658585688666586856655666566868566856856865656666566568656566565556866566686656666865686868568565556855556665568658566666656858668656655685665855588656658666586566565686558666556665666865665666866665655566856665668556868656566586568666576586856656665668565565856XXXXXXTXXXTXXXTXXXTXTXTXXTXXXXTXXTXTXTXTXTXTXTXXXTXTXXTXXTXXXTTXVTXTXTXTXTXTXTXTWTXVTTTXTXTXTVTXTXTXTXTXTXTTXTTXTTTTXTTXTTXTWTTTTXTTXTTTXTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXÓÓþÿÿÿþÿÿÿþÿÿþÿþÿÿÿüüóúúóúüóúúò¬�l=>??=?C>>C>=>>CC>??C>>>?>CCClClC>>?>>CC>ClC>C?CCCCllC>CC?>>>CC>>Cl>CllCClllClllll>ClCllCCC>CCCC>llllCCllCCC>CC>?lllC?�ýÿÿÿÿÿÌl?CCCCCClllllllllCCll?CC?CCClllCllvllllCllll?>lllllolCAllll>llllllClClllllCCCCC?>?ClllllllCCll>?Clool?Cllll?ClllllC>CllllCCC?>>ClllCollllCCC>?CClplC>>>CllCClooplClllCC?Cl>>>>>>?ClllC?ƒõÿÿÿÿüÇCCCCllCC>>CCC>??>>=>>>=>>>>>?CCCCCCCC?>>C==>CC>>>=====>>=>>==CC>=>==>>==>>=====A>===>C>=>=>A========>=>?==>=>>=>======$$=======>=========$!!$$!========$!$!=$$!!!@áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!òÿÿÿÿÿ÷Z! !!  ! $q­õÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþþþýÿýÿÿýÿýÿæÓXTXXTXTXXXXTXXTXTXXXTXXXXXTXXXXTXXWXTXWXTXXXWXTXVXTXXXTXWXTXXXTX5856667666666586655655666586556686656585556866786868676558656686688658666655666866566656885565667686568665666668666866755658866656865685655656666566856568558558586866556666858666576556665655665655885668668868686866655568658565856676868566566566868686656666556686T:"TTTTTTTTT:TTTTTTTTTTTTTTTTTTTT"TTT"T""T"""T"""TTTTTTTTT"TTTT:TT:TT"TT"T:TT"T"T"TTT"T"TT:"T:"M"T"TT:"M"T"TT:"T"TTT:"T0T"TT:"TT:"T:"××ÿÿÿþÿÿþþÿÿþÿÿÿþÿþüóúúúúúúúúúòÕ�m>C>=?C?C>>>>>>??>>>?>>C?>>>CClC>>???CCC>ClCCCCClC>ClC?>?lC>>CC>?CCCC?C??CC?>lCllC???ClCCC>lll?CCClClCllCCl?ClCCClll?CÇýÿÿÿÿÿ×u?ClCll?llCClClllCCllCCllClCCl?C?lolllllllClCCll>CllCCCCllllllC?llClCllllCC?llllClClllClllllllC?CllllllCClCCllllll?CCC>loCClCC>Cll>?llll>CClCCC>lll?C>CClll>llllCClllC?CClC>>>C>A?Cll?>?{èÿÿÿÿÿúÇuCCCCl?=?lC?>>>>>lC>>>>>>>C>>>CC>CC>>>C>>CCC=>C>=>C>==>>>==>CC==>=>>=>>=====>C>====C===C>===>====A>======>========$=========C=======A>!!=$=$$=!$======$$!$$!$!=$ZñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿóY  ! qªùÿÿÿÿÿÿÿÿÿÿÿÿÿýÿýþÿþÿýÿýýÿýþþæÓTTTTTT"TTT:TTTTTTT"TTT"TTT""TTT"TT"T"TT"TT"TTT"TTTT68665556686665565665676865558566656856565585555688856586686656655656585688567666666867868666585866568565655856866565865668556656568666655588566565656665666656566656856656566856665656665556657655688566866585585686856565665676588668658556568685855565666665858665655TTTTTTTTTTTTTTTTTTTTTTTT""""T"""""T"""TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTÓÓÿþÿÿþÿÿÿþÿþÿþÿþÿÿüüóúóúúóúúúò¬�pCC>>CC?CCCCC>=>??>CCC>>?CClC?>>=CCCCCClC>>C?>>>CC>>>?lCClllllllllCllCCClllC>?>AlCClCC?>?CCClCCll?>CCCCllCCllllllCCCllÇýÿÿÿÿÿÌllllll?>?lllCClllllll??lolC?C>llCllCCClCCCCllllC?llC>llllACCllCClllCC?ClCC?>>CllllllCCC?>>?C?llCCCCAC?C>?>llCCClC?lollCllC>>llCCll>lollCClll>>>CoC>ClCllCl>>>C>>>>=>>?CCCCCCllCCll>>CCCC>tÌýÿÿÿÿÿüßx>>C?=>CCClCC>>>>>A>>>CCC==C>==>>=>CC>==>==ClC>=>C>>>==C>==>===?CCC>>CC>>>>A=====>>==>==>===>==CC==>?========>=========$!$==!!$=!!==!========$!!!!==========xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @òÿÿÿÿÿ÷Y    !s¬íÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿýÿþýÿýÿýÿþÿæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT568565556656565885585656666565855685556556556686655666656656865665656566656565858685855585866666565656586866865666656565666566565666658656666665665865666866656566665668866666688856665688668686686668565656666655666665686858656665666658565855556556665655656866865565856655565886686666565TTTTTTTTTTTTTT:"""TTT""TTTTTTTTTTT:T:TTTTTT"TTTTTT"TT"TTTTTT"TTTTTT"TTTTTTTTTTTT"TTTTTTTTTTTTTTTT"TTTT"TTTTTT"TTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTÓ×ÿÿÿþÿÿþÿÿþÿÿÿþÿþÿúóúúúúúúúúúòÓŽmCl>=>A>CC>C>>>>>>=>C?=>CCCClC>>>C>>llCCl?Cl?>>C?>C>>CC>?ClllCClC?ClC????CClC>>llCC?>lC>?lCClC?ClC>CllllCClC?CllCCCCCCÇýÿÿÿÿÿÌuClCClC??CC?ClllCl?Cl??Cll?ll?CllC?Cllll>CCloC?CClCC?Cll>?lllCllllClC?lClC??lllClolCCCCCC?CllCllC?Cll????CCllClC?ClllClCCCCCll>ClCCCllCCClCC?>CllC>l>>ClCC>>ClCCC>>>?ClCC>>CCC?lCCCC>>C?>Clyßýÿÿÿÿÿÿè”CC?>>>lC?CCC>>?C==?C>>>>>>==>>>>CC>>>=>>C>AC>=>>===>>==>=>=>C==>>=>>=>=>A====>===>>==>===>A>==>=>========================$$=$!$========!==!=$==!!!===$$$@ÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Z   ! =}¬ùÿÿÿÿÿÿþÿÿÿÿÿþþþþþÿýÿþÿýþþþþþæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT65565566686565666665685686656656866666668668686666566558666866866865666685566666866656656556665666586665556665566586686665656556666656655666686868667668665856866565655868686656566666566866566668566565565656666686686566666666566666665866668665685866566858686866565686TTTTTT"0TTT:TT"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTÓÓÿþÿÿþÿþÿþÿÿýÿÿþÿÿüúúóúóúúúúúò¬soCC=>llC>>>>>CCCllCllC>?CC>=>>>lCC>ClC>=>>CC>?C>>CCCll>>lC>C>>>>C?>>?>?CCC>ClC?llCl?>?llCC??ll??llC?llC>>CllC>Cl>?>CCCÆýÿÿÿÿÿÌulCClllClllCCCCCClllllll??lol?>lpl??l?C??lClolCllllllllll?llC?CCllC???ClllllCl>>ClCClCllllCCC??CC>?llllllllClC>>AllCC??>?CllCC>lC>>CCC>?ClCC>?C>ClCC?>Cl>>C>CllC?>C??C>?lCC>>>>>?CC?CCC>>C?>>xßýÿÿÿÿÿÿó�uCCCC>=>CC>>C>>CCC>>=CCC>=C>>>=>>>>>C>==>CC>>CC?CCC>>>>CC>>==>AC===>>Cl=>CC>>>===>==>>=========>===========>=========$====>========$==$$==$$=====$!==ZèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;òÿÿÿÿÿ÷Z  q¥õÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿþþþþýÿþÿþÿþÿæÓTTTTTTTTTTTTTTTTTTTTTT6685666665666665686686566666866566666676666565666686865656656886686568568666565685665656668556668666686668566586565686586685686886568868665568566688666668866866686686656656655865686586856868865665665665866866866665656656565868666656865656588656668685865566868688686686"M"""T"TTTT"""TT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:"TTTTÓ×ÿÿÿþÿÿÿþÿÿþÿþÿþÿþüóúúúúúúóúúò¬sp?C==CClC>CCC?>C>ClC>>>>lC=>A?>>lCllACCC>=>>>>lC?C?>ll>>lCC=>C>>?lCCC>>ll>>CCC?CCCCC>ClllC>>?CCC?ClClllCClCl??lC>>CCC?ÇýÿÿÿÿÿÌuCCCClCCClC??ClllClllllCCCll???lol?ClC>llClCllCCCClCll>ClCllCC??Clll?CCCllllC>ClCCCCCllllCC??lC??llllllCColCCCC?>lll>CCCCClCCCClC>>C?>lCllCCC>C?Cl>???>>?CCC??C>>?C>>?>?lC>?>>>>>llCCC>>>CC??>>{ßþÿÿÿÿÿÿüÌxCC>>>CC>>C>>>C=>>=>C>>>>>==>C>=>>>?>C>=>>CCA>CC>>>>>>>==>=>=>===>>CA>>>=>======>A>==========================!==========@>=!$===!==$===!!$======9CÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷[ !   qªõÿÿÿÿÿÿÿÿÿÿÿÿþþÿýÿýÿþÿýþþþþþþæÓ6586666685568658686566866556656656555686586855558886586856856656558665665666666655566866666865668865666856565568656665656566685656656855855668686865666668686655666565566566556656566686866666656566658666566666656586556685656686686668666568688565666568655565685656866586556656666556866866T":TTT"T:TT"T"M"TTTTT  "T"TTT"""ÓÓÿþÿÿþÿþÿÿþÿþÿþÿÿÿüúúóúóúúúúúòÕ�p?C>>>>=>>>>>>>>>?C>>C>>CC>Cll>>>>C>>>?C?ClCC>>CCC?=>lC=>C>>All>>lC?lCColC?lC??>>CllCCC>>>ClllllC?CCC>Cl?CCCCCllllllllÇýÿÿÿÿÿÌllClCCCCllllllClC>C>>ClllCC>ClCll?CllC?ll???>C?lCCllll>>lllC?ClllC?llllllllllC?CCClClllC?Clllll>CCC>>CC>Clol?ClllooC>?lCllll?CCCllC?>ClCCC?C?Cl?ClC>CllCllCC?>>?CCCCCClC>>CCClCCACC>>>>>>?C??>>>CuÌõÿÿÿÿÿÿÿúߘuCC>=>>CCC>A>C>=>?>CCC>>>>==>>?>=>>=>>==>======>=>C>======?>=====>=====>=>=====>==========>=========>======>=$=!!$==$=====$!$$$==$====!!$$=ZÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y  !!!=pªõþÿÿÿÿÿÿÿÿÿÿÿÿþþþýÿýÿýÿþÿþÿþÿæ×TT"TT""M"TT:TT:6656665668668865665666866565865865665566856668665666566865656656586656565555685666868665665655885865665686855556665686855686656556555586566868666568556555665688665i865656666886686656556665566556686668688666666666656565656655588668666566668656685555585866566655665656566868666885668668656656586686665666TT TT"TT"TTTTTTTT"T"TT:T"T:TTT:T"TTTT"TTTTרÿÿÿþÿÿÿþÿþÿÿþÿÿþÿúóúóüóüóúúúò¬Žo?>>>>>>>?>>>>>>>>C>>>>>>>>>llC?>>CC>>>l?>Cl>>>>CC>>>>>>>??>>CC>>>>Clolllll>>CC>?CClCCC>>?Cl?ClllC?C?>CCCCCCllllllCCl?ÆýÿÿÿÿÿÌlCCClCCllCClCCllCCCC>?llCCl?CllCCClllC?llC>?Clllll>ClCl?ClC?CCCllCCllllllllllCC???ClClClC>Clol>?CC?ClC?CllllCCllllllCClCllllClllClC>>?lC>>ll>>CC?C?>CCCllCC>>>>CC>?lCClC?>C?ClC>>CC>>>??>>C>>CC>CCCCƒßúÿÿÿÿÿÿÿüèÆuCCC=CAC>>>>>>>>>>>AC>=>=CC>C>==>C>=>C====>C>>=>=======>======A>===C==>>============>=A==>>=$=====A=!====$$$==!=====$==$!$$$!!==!=====xáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿóY  ! ! =pªõÿÿÿÿþÿÿÿÿÿÿÿþÿþÿþÿýþÿýþþþþþþæÓ"TTTT"TTTTTTT556568665556588586666866865665666566665686686656886686686566665565668686665686556665658665665866886665866665665665565666565686856565585657665586566886665865656865658666665655866655668656866856666686666568666658565556868558666686686586655566666666868686666668668686566658666656566566656555658665566565656655565665658TT  TTTÓÓÿþÿÿþþÿÿþÿþÿÿýÿþÿüüóüóüóüóúúòÕ�o>?>CCCC>CC>>>>>>>C>>?CC>>CCC>>>>?CC>?C>=>CCCCCCCCC???llCCCCClC>CllC>CC>>>C?>llCCC>>?ClllCl?>CCC?CCCCCllC?>?CC?>ll?>?lÇýÿÿÿÿÿÌullllllCC>CllCAllClClC>ClllCClllCCCCCC?llllllllCCC>CC?ClllCClllC?CCCC>?C>CA>CClllCCCCCllC>ClC>llllCCCCllC??>C?>>>CC>?Cl?>>>>>?C?>>?lC>ll?>ll>>CCllCCCCC>>?>?CClll?ClC>>>?C??>ClC?CCClCC?CCC>>>CCC>>??>l›èüÿÿÿÿÿÿÿÿ÷ÌzCCC?C?>>>>ACC>>CC=>>==>>A>=C>==AC===>>C>=C>>>>>>=>CC>==========>>====>=========A===$!=====>=$=>=$==AC====$!$====!=======!===@A‚ÎüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Y ! 7sªõÿÿÿÿÿÿÿþÿÿÿÿÿþþýÿýÿþýÿþÿþÿþÿæÓ:TT"TT"T""TT""5665886686566568558555656656655568685665i685666856858667865685556656565555688656555686668558568665568666868865586666686568666566586665665656566668566566556558665665685686556885865865866868558655588658666656855656866655668556658666566865565666556566655665666566856666655686686866555865856666885556  Ó×ÿÿþÿþÿÿþÿþÿþþÿþÿÿúóúóúúúóúúúò¬�p>>?CCCCACC>>>>>>>C>=CCC>CACC>=>?C>>?ClC>>>CCCCCC>>>>>ClCCC>C??C?Cll>>C>CCC>>Cllll??C>>lC?CCC?C?>?Cl>ClC??>?CClC????llÇýÿÿÿÿÿÌollllll?>lClllCCC>ClC>>llllll>CC>?llCCllClllllCCC?CCC>?lCCCClCll>>llC>>>ClC>>ClCllC??lCC>?CllC?CllC>CllC???C?>>???>?C?>>>Cl?CCC?>>Cl?>CC?>llll>>lC?C>>??>>>>ClCCC>CCC>>>>>CC>CCCCCCllll?CCC>>>=>>>>C>>C>=u–ßúÿÿÿÿÿÿÿÿüá›{uCCCCC>>>>>C>>?C=>C=>=>>==>C==>===>=>C>==>>>>>>>=>===================>>=$===>==$$=>=====$$===$=>=====$$====$!$======!=@C–ßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY            !p­ùÿÿþÿÿÿÿÿÿÿÿÿþþÿþÿýþþÿýþþþþþþæÓ6656566866656586668668665866856665655666866886666556685656666865656656665665855656666568656566666585665555666586656686556568666768686656655855556865666665686565656666566565665655656656666566666665i8556555688656566565668665566656566566868665656666666686556668666855688656865566865668666856768666565658    ÓÓÿþÿÿÿþÿÿþÿÿÿÿþÿþÿüúúúóúóüóúúò¬�p?C==>>====>>>CC>CCC>>C>>>>>?CCCCC=>>>CC>>CC>C>C>CClC>Cl>??>C>CllCC>lC?>>>CCClC?>>?ClC?ClC??CClC>Cl?>CllllCCCC?C??CCllÆüÿÿÿÿÿÌl>>>ClCCClC>>>CCl??ll?ClC>>CllCCClCClClACCCCC?>CllllllllCCCCCCll?Cll??llllClllllCC?>CllllCCllClC?ClCClC?CCC?CC?lCCClllCl?ClCC??C>ClC>ClC>>CCCl?>ClCCCCCClllCll?>?>>CCCCCC?>CC>>>?>>>>>>>>?>CCCCCC>>>>CCC>?>>C{Æñüÿÿÿÿÿÿÿÿýòß›xZtCC>==>>>==>C>>>C>=>>===??>>CC====>=======>>==>>=====>=>=>>====>===>======>=========$$===$==$====$==$=!$===@CZƒÌñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ;òÿÿÿÿÿóZ  qªíÿÿÿþÿÿÿÿÿÿÿÿÿÿýÿýÿþþýÿþÿþÿþÿæÓ5686566666666656558666856566666866666655655556566565566866656866665665666656566686665668658i8666666666565565665866666666555666856655666656668656565866565686666656568666686565566866566655685656666686565686665665566568665i6656866656556565686668566668665685556668665666668665666686665666666655666666666666655666  KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKÓ×ÿÿþÿýÿÿþÿþÿýþÿþÿÿúóúóúúüóüóúò¬Žp?>=>>>>=>=>>>>CCCCC>>>>>=??C?>CC?>>==>>=>?>??>>CClCCC>>>>>C?>CllCCClC?>>?CllC?>>CC?ClClACC?lC??Cl??>ClCCClC?>????CCl?ÆýÿÿÿÿÿÌC>>CCllCC???>??lC??CC>?lC>>ClllCllCllCCCCl>>?>>?lllllllCCCllC?CCClll?>CCClCClllll?>?ClllC??llll??llllCCCl?>CClC?>ClCCllCll>CC>CC>llC>llC>>?>>lC>?C>CC>CllClllC>=?>>?CClllCC>>>>CC>>>>>>>>?CCllll>>>>=>C>>C?>>>==u˜Î÷ýÿÿÿÿÿÿÿÿÿþò߯zZCCClA=>CA>=>=>C===>C>>CC>>=>C>=>>=========A==>=>==>=>===============C>===>======!=====!!!=>=$=!===@BuÂÎ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷Y  !  ! =pªõÿÿÿÿÿÿÿÿÿÿþÿþþýÿýþÿþÿýþþþþþþàÓ6856686686865866666566566665666566565655686866866656656566568566686565666686656655656666566566665656666666665868686568665666866656856568666665655666666666568866665666586666686665666865868556666566656566565656866686686866655666656556668665656866666666668565865686566568866566866566566586566568 KKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKK³KKK³KKKKK³KKKKKKKKKKKKKKKKKKKKKKKKK³KKKKK³KKK³KKK³KKKKKKKKK³KKKKK³KKK³KKK³KKKKKKKKK³KKKKK³KKKKKKK³KKKKKKK³KKKKKKK³KKK³KKK³KKKKKKKKK³KKKKK³KKKKKKK³KKKKKKK³KKKKKKK³KKKKKKK³KKKKKKK³KKK³KKK³KKKKKKKKKKK³KKK³KKKKKKKKKKKKK³KKKK³KKK³KK³KKKKKKKKKKK³KKÓÓÿþÿÿþÿþÿþÿþÿÿþÿþÿüúúúóúóúúúúò¬�o>>>>>>>>>C>>>>=>>>>>>>A>AC>CC?>=>>>CCCCCCC??C?>>C>?ClC>C>CCC>>l>>C>>>C?CC>Cl>?>CClC>??>>ClClCCllCCC>>CC?>CllCCCCCCCCCÇýÿÿÿÿÿ×uClClCCClCllllClC?CllClolCClC?CCCCCClCCCC?CllllCCC>>CCClCCll>>lllCCC??lllC??ClC?>?CCCCCllCCCACC?CCllC>ClC?C?>CCllll?>CCCC>>ClllC>Cll>?ClCCCCCA>CClC??>ll>>>C>CC>>CCC>C>CC>>>?>>Cl>C?>CC>>>>C>>>>>C?>=?CC>>CC>>>>A>>Cu˜Ìèúýÿÿÿÿÿÿÿÿÿþò߯”xCZCCCCC>====>=>>====>>========>A=>===>>==A>=>==========>>========$$=========!=!$=====@=CCZx–ÌñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ@òÿÿÿÿÿ÷Z qªõþÿÿÿþÿþÿÿÿÿÿÿýÿýÿþþþýÿþÿþÿþÿèÓ866568686668686666666686686566668666565686656658666686556566656656565568666656666656666668568686558656566565666856666556665666866666665565556668568666866565565656666666566665865668656665666566656656665666665686666668656868666666668666866568666886565556656686865686866668565666866666656666665568666855iKKKKJKKKJKJKKKJKKKKKKKJKJKJKJKJKJJJKJJJJJJJJJJJJJJJKJJJJHJJHJJJHJJJHJHJHJHJHJHJHHJHHJHHJHHJHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHFHHFTGHHFHGHGHFTFHFTFHGFFHFFFGFFFFF KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFFFGFFGFGGFHGFTFHFTFHFTFHFMFHFTFHFTFHFTFHFTFHFTFHHGHHGHHGGHGHGGÓ×ÿÿþÿÿþÿþÿþÿþþÿþÿÿúóúóúúúúóúóòÕ�o=>C====>CA>>>==CC>>CA=>>>C>>>>>>=>C>CCCAlC>>>>>=CCCCll?CC>>?>>>>>ClC>CCC?>CC>>CCClC>C??C?>CCCllCC???CCCC>CllCllC??CCCÆýÿÿÿÿÿÌuCCllC>>CllCllllC?llCllplClC???CClllllCCCClllllC?>>??>CllCllCCClCCClCCllCl?CCC>?>>?C?>>lCCCC>>CllllCC?CCCCC?>ClC?ll>>ClC>>CllllC?lC>>?llllC?CC>>CC>C>ClCCCC>?ClCCClCC>>>>>>>C?>lC>CCCCCC>>>>>=>=>>>>CCCC=>CCCC>>>==CCCA>Au›Ìèüýÿÿÿÿÿÿÿÿÿÿÿ÷ñßÌÆƒuZCCCA@>A===C======>=============>>>==A=========A==========$=>=====CC@@@CCBZx”ÆÌçóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!;óÿÿÿÿÿóY!     !!!qªõÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþþþÿþþþþþþþýàÓHHJHHHJHHJHHJHHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJJJHJHJHJJJHJ5666666656666556656658665665666856686656686656868656886866686665666868666666666666568656665665666866656566666568656666865568665686866568665i66666685866868666566666866868665656686656665566665666685666586656665656656665656665658656856686666665666656686686558665666866666668686566686688656656686666ººººººººººººººººººººººººººººººººººº¸ººº¸º¸º¸º¸¸º¸º¸¸¸º¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸·¸¸¸·¸·¸····¸··¸·········³······³·K·³·K·K·KKKKKKKKKKKKKKKKJKKKKKKKJKKKKJJKJJJJJJKJJJKJJJJJJJJJJHJJHJHJGHGGGGGFFFFFFFKK³K³K³KKK³K³K³KKK³K³K³K³K³K³K³KKK³KKK³K³KKK³K³K³K³K³K³K³K³K³K³K³K³KKK³K³KKK³KKK³KKKKK³K³K³KKK³K³KKK³KKK³KKKKK³K³K³KKK³K³KKK³K³K³KKK³K³K³KKK³K³K³KKK³KKK³KKKKK³K³K³KKK³K³KKK³K³K³KKK³K³K³KKK³K³K³KKK³K³K³KKK³K³K³KKK³KKK³KKKKK³K³K³K³KKK³KKKKK³K³K³K³K³K³KKK³KKK³KKKKK³K³K³K³K³KKKKKFFFFFFFFGFGFGGGGGHGHHGHHJHJHHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJÓÓÿþÿþÿÿþÿÿÿþÿÿþÿþÿüúóúúóúóüúúò¬Žp>=>>CC>>>C>>>>CC>=>C?=>C?CCCC>?CCCCC?>?C>>>>CCCCC>>>>>=>CC>?CClCl>>?>>CC>>CC??Cl>>>>CCClCCCCCC>>?CC>>CCClC?>ClC?CCC>?ÇýÿÿÿÿÿÌlClCCCCCCCC>CCCClC>>?CCllCC>>CClCCl>>>>C?ClC>CClllClCCl?CCC>CCCCCCCC??C>llC>CCllC>llllClCCCCCCClC>>?CC?CCCl>>llC>ClC>ClC>C?ClCC??>>CC>C>CC>?lC?ClCllCC>>?C>=CC>CC>>?>>>??CCCC>Cll>>>>>>?CCCCC>>>>CCCC>>==>C>=>>>??>>>>>A==CC=?z›Ìá÷üüþþÿÿÿÿÿÿÿÿÿÿýóñßÌ›ƒutZuuZClZCCCCCCCCAAAAA=AAAA===AA@ACCCC@CCC@CBCZCCZCCuZuxƒ–ÆÆÌÎßçò÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿ÷Z !s­íÿÿþÿÿÿÿÿÿÿÿÿÿþÿþÿþþþþÿþÿþÿýÿæÓ³·³·³³·³³··³·³·³·³³³³³·³·¸·³·¸·³·¸·³¸¸·³¸³¸³¸³¸³¸³¸¸¸·¸·¸¸¸¸¸¸¸¸58686666866865668666568666866866666666666665566656868665556866566665665665565866656668586865686656666665656868686666866566568565686565656566665i66686656568565666665655658656665866666656555686556685666566666666866665668656866866665566676666556565566665586865566686656865665656665866855666665ººººººººººººººººººººººººººººººººººººº¸ºº¸º¸º¸ººº¸ºº¸º¸ºº¸¸º¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸··¸·¸·¸···¸···³····³··³·K·³K·³·K³K·K³K·KKKKKKKKKKKKKKKKKKJKJKJKKJKKJKJJ·JJKJJJJKJJJKJJJJJJJJHJHJHGHGGGGFFFFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFGFFGFGGGGGGHGHJGHGJGHJGJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿþþÿþÿýÿþþÿþÿþüóúúúúúúóúóò¬Žm>>>>>>>=AAC>>=>C>=>>>CC>=>CA>>>>>lC>>>C>>>>>>ClC>>?=>>=>>>>?lCCCC>>>>C?CCC>?>CC?>?>>ClCClllClC>>?CC?>ClClC>CCC??Cl>>>ÇüÿÿÿÿÿÌCCClC?CCCC>?C?>llC?>>?>CCCC>>??CCCCC?>>>??lC>>ClllClCll>C>C>>CllCC????ClClCCClllCClllCC>CllllCC?>>>>?lC?CCC??Cl>>>ClCCC?C>>>lA>>>>>CC>>>>>CCl>?llCClll>>CC>CC?>>>>>>=?>>?lllCCllC>>==>CC>>CC?>>>CCllC>==>>>>>>>=>>====>==>C>==>>=>?Cx›Çßñúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿþü÷òñçáßÌÉÆÆÆ�Æ››–––”–›”ƒ‚‚ƒ–›�ÆÆÆÌÌÌÞÏßßááçèñòó÷üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–  @óÿÿÿÿÿ÷Y  !    =ެõÿÿÿÿÿþÿþÿÿÿÿþþþþþþÿþÿýþþþýþýæÓ·³³³·³³³³³³·³³³³¸³³³¸³¸³¸³·¸¸³·¸¸³·¸³³¸³¸³·¸³¸³¸³¸¸³¸¸¸¸¸³¸¸¸¸¸¸6668686666865656666668656668686586666656568666686668666656666655656656656656665865865666565665656566656565658565688686656656666665558666686686668665656666556666666566565686656586666565558665658666668665566566656666i6556686568566656865655556565686666866685586668666666668666666565666666856566566656666ººººººººººººººººººººººººººººººººººº¸ºº¸ºººº¸ºº¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸···¸·¸³¸·³·³·³·³·³·K·³³³³³K³K³³K·KKK·K·K·K·K·K·J·J·KJ·J·KKK·JKJKJ·JJJJJJJKJJJJJJJJJJJJJJJJJHJGJGHGGGGFGFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFFFFGFGGGGGGHGGHGHGJGHHGJHHJHJJHJHJHJJHJJJJJJJJJJJJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿÿÿþÿÿþÿþÿÿþÿÿüóúóóúóúúúúò¬so?C=>>>>>>>>C>=Cl>>>>>C>>>A>>>>C=>CC>>??C>>CC>>>>>Cl?>>CCCC>>??>?CCCCC??>Cl?CCC>>CC?>ll?>??>>>CC?CCC>ClC??>?lC??CC?CC?ÆýÿÿÿÿÿÌl>CC?>CllClCC>ClCCCClCCCCllCCCCClCCClCClCCCCCCCClC>C>CCCCClllCClCCCCC>ClCCC?C?ACC>ClClC>ClC?>>>??CCCCll?CC?CCCCCCC>CCCCClC>ClCCCCCC?C?ll>>CC?Cll>>C>CC>>CCC>>>C>CC?>ClC>>CA>>>=CC??>>CC>>C>>C>>>>>>>>>>?C>>>>>>C>>>>>>CC==>>>>>>>>==?C>===uƒ�ÇÌçñ÷üüüýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ;òÿÿÿÿÿóZ =sªíÿþÿÿÿÿÿÿþÿÿÿÿÿþÿþþþþýÿþÿýÿþÿæÓ³³³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³³³³³³³¸³³³¸³¸³³¸³¸³³³¸³³¸³¸³¸³¸³¸56866i5666686865686868666856666665686666685656866656668866665665665665666685655668666656566566558665665666666686665668656665665665568666686566866568665665666566666556686665556686666586566556856656666666856566668666666865586658686666566865866666668868668655656586556865666655656685666866ººººººººººººººººººººººººººººººººººººººº¸º¸º¸ººº¸º¸ºº¸º¸º¸¸º¸º¸º¸º¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸·¸·¸¸····¸··¸··¸·······³··K··³·³·K³K³K·K·K·KKK·KKK·J·J·J·JKJKJ·JK·J·JKJKJ·JKJJJKJJKJJJJJJJJJJJJJJHJGGGGGGFGGFFFFDKKK³KKK³KKK³KKKKK³KKKKKKKKKKKKKKK³K³KKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKK³K³K³KKKKKKKKK³KKKKKKKKK³K³K³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³K³K³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³K³K³KKKKKKKKK³KKK³K³KKKKKKKKKKKKKKK³KKK³KKK³KKKKKKKKKKK³K³K³DFFFFFGFFGFGGGGHGHGHHGJGHHJHJHHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿÿþÿþÿþþÿþÿþþÿþÿ÷úóüóüóúúóúò¬}p?C==CC>>C>=>CCCC>>>>CC>>AC>>>>C>=>>>>>>>C?C?>>>>=CC>>>C??C>>>>>CllCC>CCCClCCCC>>ll?ClC>>>>>=?lC>>C>CCC>>>CCCCCCCC?>lCÇýÿÿÿÿÿÌCC??>?lllllC??CllCl?lC>CC?CllCCllC>>>ClCCCClCllClCCCCllC>?lllllllC?lC>CllllCC>>??CC>CCC??C?>>>>?>?lllC>?C?ClC>>C?CC?CC??CCC>CCCllC>?>?Cl>>>>CCC>>>CC=>>>>>?>>>>ClC>>>CCCC>>===>>C>>>>>>>CC>>CC>?>>>>>>ClCC>>>>>CC>=C>>C?>=>=CC>CA===>CA=>===ACCCC=Cu{ƒ�ÉÌáñò÷úúüüüüüýýýþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;óÿÿÿÿÿ÷[ !!     =pšõÿÿÿÿþÿÿÿÿÿÿÿþýþþÿþÿþÿýþýÿýþþæÓ³³³³³³³³³³³³³³³³³¸³¸³¸¸³¸³³¸·¸³¸³¸¸¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸668666685668666565686568868686668665866665866686558658568666666865565656666656666658666656666i66665655656655666565565865666686665656666686656686568866656566876665666665656656666855656866668666588565656666555566665865655665865686566666i585666665656565666666565665655666686666656866566665556866766668ºººººººººººººººººººººººººººººººº¸ºººº¸ºººººº¸ººº¸º¸¸º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸·¸···¸¸···¸···³··³··K·K·³³·K³K·K·³···K··KKK·KK·K·J·J·J·J·J·JKKWKJKJKJ·JJJKJKKJJJJJJKJJJJJJJJHJHJGJGHGGGGGFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFGFFGGGGGGGHGHGJGHHJGJHHJHJHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿþÿþÿÿþÿþÿÿþÿÿüóúóóúúóúúúò¬�o?>>=>>>=>C>=>>>>>A>=>C>>>>>>>>>>>CCC>>>C>>>>>CCC>CCA>?CC>?>?C>?>CC>C>>?>CC>>??A>AlCC>>C???C?ClCCCCCC?>ClCCC>>CCClC?CCÇüÿÿÿÿÿ×lCCCC??>ClC?C??lC?C>??CCC?Cll>>Cl?CC>loC?C?C?CCClCCCCCCl>>lCCC>??CCl??lCC>>?>>ClllC>?CCCCCCCC?Cll?>CC>Cll?>ClC>CCllC>CCC?ClC>?>CCCCCCCCC>>C?CC?C>>ClCCCC>>>>>CC?>>CCCCC>>>CCC>>??>?C?CC>>>>>=>>>>CC>=>>>>>=>C>>>>>>>>>>>??>>CC>==>>=>>>>>>>==C====>@===>===>A=ACZuxzƒ”››ÆÆÌÌßßáòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Z qªíÿþÿÿÿþÿÿÿþÿÿÿÿþþþþýþýÿþþþþþþæÓ³·³³³³³·³³³³³³¸³¸³³³³³³¸³³¸³³¸³³³·³³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸³¸¸¸¸66565i66666666666555666565i686866656666556666686666665656666666566668686856666656656666666566666i666555666666666665656686686665656666666666668668668566568666866666656665666886666665i666565i55i66666666565666668i566666666565686665666665586656566866866686866666665668656665866666556866656656666ººººººººººººººººººººººººººººººººº¸ºº¸º¸ººº¸¸¸º¸¸¸º¸º¸¸·¸·º·º·º·º·¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·¸····¸··³·³··³·³³··³³K³K·³³K³K·KKKK·KKK·KKKKKJ·J·JKKKKKJ·JKJKJ·H·JJJJJJJJJJJJJJJJJJJJJJJHJHJHJGHGGGGFFFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEFFFFFFFFGFGFGGGGGGHGHGJGGHGJGHJGJHJJHJHJJJHJJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿÿþÿþþÿþÿþþÿþÿú÷úúúúóúúúóòÕ�p=?=>>>>===>>==>C>====>>=>>>>>CCCCCC>CC>>>>>?>>>C>>>>CCCCC>=?C?>>?>>CCC>CC>>>>>>>>CCC>>?>>?ll?CC?CClC??CC?CC>>>lllllCCÇýÿÿÿÿÿ×uA>?CCC?>CCCCC?????>>>Cll>?CC?>?CCCllloC?ll>>>>CClC>>>Cl?>>>?C>>>?ClllCC>>>??>?Clll??llC?CCClllll?>CC?llCCCCllClllC>CC??ClC>>>CC?>?lllC>>>>C>CC>?>ClCCC>>>>>>?C>>>CCClC>>ACC>>=>>>CCCC>>>=>===>>CCC>>=>=>>>C>CC=>>CC?CC=>ACCC>>==>>>>==C=========>==>=======C>=A>>=>=>==>>====={÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @óÿÿÿÿÿóY    !!! ! $qªõÿÿÿÿÿÿÿÿÿÿÿÿþþþþÿþÿþÿýþþþÿþÿàÓ³³³³³³³³³³³³³³³³³³¸³¸³¸³³³³³³³³¸³¸³¸³³³¸³³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸³¸³6666886566666666665i666666686665665666866686566666866656866666666565666566686666666866566566668666666666686866556566656686666866666656666i66665656666666566666666666665668666686656i65666866666686656686666866686666666666666665i86556666i656666566665666666686668668666665686666686685868666i5666666658ººººººººººººººººººººººººººººººººººººººº¸º¸ººº¸ººº¸¸º¸º¸º¸º¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸¸·¸·¸·¸··¸········³··³··³·K³·K·K·K··KKK·KK·KKKJ·J·KJKKJKKKKKKKJ·J·J·JKJKJKJKJJKJJJJJJJJJJJJGJGHGGGGGGFFFFFF³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKK³KKK³KKK³KKK³KKKKK³KKKKKKKKKKKKKKKKKKKKKKKKK³KKK³KKK³KKK³KKK³KKK³KKK³KKK³KKK³KKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFGFFGFGGGGGGHGHGJGJGHHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓÿþÿþÿþÿþÿÿþÿÿþÿþÿüóúóúóúúóúúò¬�p>=>=>=>>>>CC?=>>>=>>>C>>>>>>A>>>>>>>=>>>>>>CC>>CCCCCC>=>CC=>CCCCCC>CCC>?>C>CC>CCC>CCCC?>C?ClC>?C??CCC>???CCCCCC>>Cl>>ÆýÿÿÿÿÿÎC?CCCCCCCCC?ClCCC?C?CC?llCC>?CCCC?>CCCl?>Cl?>C??C?CC?CCC?C?Cll?>CCC??CC?CCCCC?lCCCC>CCCClCC>>lCCCC>llCC>>CC>>CCCl>>Cl?>C??CC>?lC>CCCCC?C>CCC>>?CC?CC>>??CCCCC>>>>>>>>C>>>lC>>>>CC?>>>>>?CCCC>>>>>>>>>>>AC>>>>=C>==C>==>>>>>>===>>?====>l==>=>C==>C>==>===A>========>===>=======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y!9qªõÿþÿþÿÿþÿÿÿÿÿÿþþÿýþýþýÿþþþþþþæÓ³³³³³³³³³³³³¸³¸³³³³³³¸³³¸¸³¸¸³¸³³¸³¸¸¸³¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸688i66666685666666565666665666866668566666686665i8866566655666666656656666866668666566666868565666666566686i66666666656665566566866568666668666865666868856656566666666666566i5668668656666566866656656886686666686656868656665686566685665i8665566656666668668686866566556655666666668668665668666666655668ººººººººººººººººººººººººººººººº¸ºº¸ººº¸ºººº¸º¸ºº¸º¸º¸¸º·¸¸º·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³·¸·¸·¸·¸····¸·¸··³···³··³·K·K·³K³·K·K··K·KKKKKK·KKK·KKK·KKKJ·KWKKKWKKJKKJKJJJJJKWJJJJJKJJJJJJJJJJHJHJGJGGHGGFGFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKDFFFFFFFGGFGGGGHGHGHGHGHHHGJHJGJHJHJJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿþÿþÿþþÿþþÿýÿÿúóúúóúóúúúóò¬�q?>=?>>>CCCClC==>=>>C>>C>>>CCC>>>>>===C>>>>>ACC?CCCCCC>=>ClC>>CCCCCl>C>>CC?>???>C?>=>>?CCCCClC?????C?>>>>CCCllllC>>CC>ÇüÿÿÿÿÿÌlClCCC>?CCCC?CllC?CC?>>CCC?>Cll?>>>>>CCC>CC>???ll?>Cll???CCCll??Cll?>>>>>>C??CCClC>ll>>lllC>>>>AlCACCCC>>>>>>>>??>CCC>>C?>>?llC>>C>>>=>>>lC?>>>>CC??>>?lll?>CC>>?=>>>>>=>??>>>?lCC=>C>=>>llCC>>C>===>>>CA>A>==>>===>==>C>=CA===CC==>==>CA>>=>>===C==>>===>=====>==>============zóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY  ! !  qªõÿÿÿÿÿÿÿÿÿþÿÿþþþþþÿþÿýþþþþþþÿæÓ³³·³³³³³³³³¸³³³³¸³¸¸³³³¸³³·³³·³¸¸³³³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸³³¸¸¸¸³665686566865655868655666855656666666666568665656666666666i6866566686566668668666655686666668666666566666686865865566666568666666555666656665656656566686655666i66666666656666566665665656668666866656665666656566666658666856656665666666656666566565665656666665665556668655686655556586668656565656666656656568666666566ºººººººººººººººººººººººººººººº¸ºº¸ººººº¸¸º¸º·ºº¸¸¸º¸º¸¸¸º¸¸·º¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸·¸¸·¸···¸¸³··³·³··³·³·³·³·³³³³³K·K·K³KK·K·K·KKKK·KKKKKKK·KKKKKKKKKH·H·JKJJKJKJJJKJJJJJJJJJJJJJJHJHJHHGGGGGGFFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFFFGFGGGGGGHGHGHGJGHJGHHJHJHJHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿÿþÿþÿþÿÿÿþÿþÿþÿüúóóüóúúóúúòÕ�p=>>>>==>==>>>>>>>=>CC=>=>C>>>>>C>>?>>>CCC>>CC>>>>>>>>?>?C>C?>>C>=>C>CCC>>CC??CCC>>?CCC?>?>CCC>?CCC?>>CCC>??CCCCCC>>??ÆýÿÿÿÿÿÌlCCCCC?>CCCCC>ACC>>ClCCC?CCC>ll?CC?CCCCC?ClClC?CCC>?lC>C?C>?ll?CCCCCCC>>CCClCCC>?lCC?>?CCCCCC?CCC>C?>Cl??>>lC>>CCCC??>>?CCCCl?>C>?C??CC?CC>>???>Cl>?>>CC?C?>C>AC>>>lC>>>>C>>>>>CC>>>>>>>>CC>>>=>=?CCC>==>>>>=>C>>>>>>=>>==AC=>>>>=>?==AA>A===C===>=>=A>==>>=>>====>=======>====z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!óÿÿÿÿÿ÷Z    =qªíÿþÿþÿþÿÿÿÿÿÿÿþÿýÿýýÿþÿþþÿþþþæÓ³³³³³³³³³³³³³³³³³³³³¸³³³³¸³¸³¸³³³³¸³³³³¸³¸³¸³¸³¸³¸¸³¸³¸³¸³¸³¸¸³¸8666666556858686666666655656666666865655686565566855566866865666666666655666566668665668666685i68668i6866556565566656666656666686666666666665686666856556866566666656566666i6666566666655666666568666666866665566556666668655566666655655568566666556666566666566656656i65665666566656666866586666658566666665656566668688666566585ºººººººººººººººººººººººººººººººººººººº¸ººº¸ºº¸º¸ºº¸¸¹¸º¸¸¸º¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸·¸·¸¸····¸¸·¸·¸·¸······K··K····³K··K·K·K·KKK·KKKK·KK·J·JKKJKKJ·J·J·JKJKKJKJ·JKJJKJJJKJJJJJJJJJJJHJHHGHGGGGFFGFFFFK³K³KKKKKKK³KKKKK³KKK³KKK³KKK³KKK³KKKKK³KKKKK³KKK³KKK³KKKKKKKKKKKKKKK³KKK³KKKKK³KKKKKKK³KKK³KKK³KKK³KKK³KKKKKKK³KKK³KKK³KKK³KKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKK³KKK³KKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKK³KKK³KKK³KKKKKKK³KKKKKKKKKKK³KKKKK³KKKKK³KKK³KKKKK³K³EEFFFFFGGFGGGGGGHGHGJGHHGJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿýÿþÿþÿþþþÿþÿýÿþüóúúóúóúúúúò¬Žm=?>>==>==>>>=>CCCCCCC>>CCC>>>>>A>>CC>>CCCCCCC>>=>>?CCC>CC>>C=>>>>>>>>>C>>CCC>?ClCCCCC?>C??>C>>CCll?>Cll>>?>>>>>ClC>>?ÇüÿÿÿÿÿÌlC>?CC>??C>>>?>?>>>CllCCCllCCCC>?lllC>Cl>ClllllC?>?CC?>?>?CClCCCC>??CCCClCllllCCC>>CC>>?>>>>>??>>?CC>CCC?>?CC>>ClCC>?>>CllllC>>CCC>>>ClC>==CCC?>CC>>>>??>>CCCC>>>>CllC>=?CCCC>=>CCA>=>>>>>>=?>==>>CCC>==>>>==>CC>CC>==>>==>>>?C>==A>>>CA==>===>======>C===C>=A=======>==>==>===z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY! !  !qªùÿÿÿÿÿÿÿÿþÿÿÿþþþþþþÿýþýþþþþþþæÓ³³³³³³³³³³³³¸³³¸³¸¸³³¸³³¸³³·³³¸³¸¸¸³¸¸¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸56558665666666566665656865656568666665656666666666665666658666666666665666666666566666568665686666686556558566556566568666566566665886685556566555658868865666656686688666666865i5665656666556655668i566666556656666655655566666666565656666656566665866566666i5566686666565866566665568i5656866565666666566865866666668656665665658666655655656666ºººººººººººººººººººººººººººººººº¸ºº¸º¸ºº¸¸º¸ºº¸º¸º¸¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸³¸·¸·¸··¸·¸···¸··³···³···³····K·KK·³·K·K·KK·K·KKK·KK·JKKKK·J·J·JKKJKJ·JJ·H·JJJJJJJJJJKJJJJJJJJJJJJHJGJGHGGGFGFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEFFFFFFFFFGFGGGGHGHGHGHGJHGJHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓÿþÿþÿþÿþÿÿþÿþÿþÿÿüóúóúóúóúóúò¬�o>?==>>>>>=>C>==>>>>>=>=A>>A==>>?>>>>>>>>>A>?>>>>>>>?>>>Cl>>?=>C>?C>>>>CC>>CC>>>>>?>>?>???CC?CC>>?CC>?lC>>ll>>C?ll?>??ÆýÿÿÿÿÿÌlC>>??CC?CC>ClC?C>C>>AClCCC???C?>Cl?C?C>>ClCCCCC>Cll>CCC??CCCCCC>>CCCCCC?>A>ClCC>>CCCCC>?CCCCCC??C????C?CC????>CCC?CCC>?CCCCCC>>CC>?>>lC>?C?Cl>???C>>>CC>>>>>??>?>>C?>>>>C>>>C>C>>>>>>>>>>>>>>>>>>C>>>>=>>C?=>?>==C?==>>=>==>>=>==>=>>>>===>>==>==>==C===>===>==A>===>==>===>==z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿ÷Y !qªõþÿþÿÿþÿÿÿÿÿÿÿÿþÿþþþþþþÿþþþþÿæÓ·³³³³³·³¸³³³³¸³³³³³¸³³¸³³¸¸³¸¸³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸55666666686566656566566565665666i668666668656555665656665668565665666666556558865558656656688668668666665566666666566656656688666655666566665665665668i58666656665666665656665556666566655666666686666665i5656666565566565686868686656565586665856565668665555i65866668656665i6686665666865666666566565566686666666866568586856866668656656666566566655ººººººººººººººººººººººººººº¸ºº¸ºº¸ºº¸º¸ººº¸º¸¸¸º¸¸º¸º¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸·¸·¸·¸·¸³¸·³··³³··³³··³K·³³³³³K³K³KK·K·KKKK·K·KKK·J·J·JKK·JKKWKJ·HKJ·HJJJ·JKJKJJJJJJJJJJJJJJHJJHJGHGGGGGFFFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEFFFFFFGFFGFGGGGGGGHGHGHGJGHHJGJHJGJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿþÿþÿÿþþÿþþÿþÿþúóúúóúúóúúóò¬�m=?>==>C>>>====>=>>=>==>?>>C>===>CA>>C>>==>C>>>C>=>C>CA>lol>>>>C>>>=>>CCCC>=>>>>=>???>>>>??CC?>?>>>C??>?>>ClCCCCCC>ClCÇýÿÿÿÿÿÌlCA>>>C>>>>>CC?CCCC>>CllClC>>>>C>?C>?>>>>Cl>>ll>>llCCCClC>C?>>>C?CCCllllC?>>>CC?>?CC?ClCCClllC?CClCCC>>>CCCllC>>CCC>C>>?>>>>CCC>>>CC>Cll>ClllC>CCClCCC>CC>>=>CCC?>CC>>>>>>>>>CCA>>>>>>?>=>>>>=?ACC>===>=>CCC>==>=>===>>>==>====>>===>====>=>>AC>C====>==>======>>=============>{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿóY  !!$sªõÿÿÿÿþÿÿÿþÿÿÿþþþþÿýÿþÿþþþþÿþþæÓ³³³³³³³³³³³³³³³¸³¸³³³¸³³¸³³³³³³³³³³³³³¸³¸³¸³¸³¸³¸³¸³¸³¸¸³¸¸³¸¸¸¸68666656656656556666655666666665565586666868666i68666665666666666565555666666665656555555668666686665566566565656655i66565566856656665666866666658656665666665666565666i66686566566656565568666566568586656866666665665665655665666656666666666656656666666866568666666666656666658666666655668668666665556556666865686866566666566556666666565666ºººººººººººººººººººººººººººººººººº¸ºº¸ºº¸º¸ººº¸º¸ºº¸º¸º¸º¸º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸³¸¸·¸¸·¸·¸·¸···¸··¸·¸········³··K··K·³·K·³·K·K··KKKKKK·KKK·J·J·JKKKKKJKKKKKKK·JKJJJJJKJKJJJKJJJJJJJJHJJHJGHGGGGGGFFFFF³KKKKKKK³KKKKK³KKKKKKKKK³KKKKKKKKK³KKKKKKK³KKKKKKKKKKK³KKK³KKK³KKK³KKKKKKKKK³KKK³KKK³KKK³KKKKK³KKKKKKKKK³KKK³KKK³KKKKKKKKKKKKK³KKK³KKK³KKK³KKKKKKK³KKKKK³KKK³KKK³KKKKKKKKKKKKK³KKK³KKK³KKK³KKK³KKK³KKK³KKK³KKKKKKK³KKKKK³KKK³KKK³KKKKKKKKK³KKK³KKKKK³KKK³KKKKK³KKKKK³KKKKKKK³KKK³KKKDFFFGFFFFGFGGGGGHGHGJGJGJHHJHHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿþÿþÿþÿþÿþÿþÿÿüóúóúúóüóúúò¬Žo=>>>>=>>>A>=>>>=>>>=>>>>>>>>>>>>>>>>>>>>>CC>=?C>=>C>=>>AC>=>>>C???>?CC=>CC>>Cl?=CCCCC?>??>CCC>CCC>>CC>>CC????C>lC>>AC�ýÿÿÿÿÿÌC>CC??CCC>C?CCClCCC>>lC>>CC>>?>CCCCC?CCCCClC>CCCCC>?CC??>?lCCC?>Cl?>C?CC???>?CCCClCCCCC????C?>??CCC?C>>C??>Cl>>?>CCCC?>C>>?C>ClC>>lC>>CC>>lC>>>>C>Cl>C>>>>>>?C?=>C>>>>>CC>>=>>>CC>>>>>>>>AC>=>>>>>?>>>>>=>>>A>>=>=>>==>>A?=>==A=>=>===>=>>===>=======>=>====>===>===>=======>==z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !óÿÿÿÿÿ÷Y!9qªíÿþÿÿÿþÿÿÿÿÿÿÿþþþýþþþþþþþþþþþæÓ³³³³³³³³³¸³¸³³³³³³³¸³·³³·³¸¸³¸¸³¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸6566566656666566666868665i666566566666686666566686665656666658666666i666656666566665656666666665866i655566666666666666566665666556665856i666656866655665686656556566666655656666666666656685656i5566665686655566666656666666666866666686665686666665666686666866666666685666665565666668666666666666676866656656666ººººººººººººººººººººººººº¸ººº¸ºº¸ºº¸ººº¸ººº¸º¸º¸º¸¸¸¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸··¸··¸¸··¸··³··³··³·K·K·³³³·³·K·K·K·K·KKK·K·K·KKKK·J·JKKKWKKK·J·J·HKJJKJJK·JKJKJJJKJJJJJJJJHJHJHHGJGGGFGFFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFGGFGFGGGGGHGHGHHHGJHHJHHJHJHJJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿþÿþÿþÿþÿþÿþþÿúóúúóúóóúóúò¬�o====>==>C>=>>>=>>=>>>>>>====>>C>=>CCC>>>>C>=>>>=>>>====>C>=>>CCClCCllC==>C>>ClC>CCCC>?CCC>>CCCClC?>ClCCCCC>>?C>>?>>>>ÆýÿÿÿÿÿÌuClllllCCll>>lClCCl??lC>>??>>C>?lC????lllCCC?>>C?C>>>C>>>ClCCClCC?>>?C?>??>>CCCllCCCCC>>>?C?>>C?>>>lCCCC>CCCCCCCCClCC>>?>?CCC>CC=>??>>>>?>C>>>>>=>>lC>>==>?CClC>>>>>>>CCC>=>>?CC?>>>>>>>>CA>>>>>>>>CCCCA>=>>>C>>>=>>>=>>CCA>=>C>=>======A>=========>==>>==>====>C======>>======x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ;óÿÿÿÿÿ÷Z!   pªõÿÿÿþÿÿÿÿþÿÿÿþÿýÿþÿýþþþÿþþþþÿàÓ·³³³³³³³³³³³³¸³¸³¸³³¸³¸¸³¸³³³¸³¸³¸³¸³¸¸³¸¸¸¸³¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸56566666586665666666565686666686i6686556666566865565666665656666666656656666665566556565666666668566666666666666656666865666666666666665665666666666566688666566668666666666i66668666658666566686688666566666886566566666665666656665686865566668656566666666666666666686566i566566566666666666866566656666666686668666666666i666656566665666ººººººººººººººººººººººººººº¸ººº¸ºººº¸ººº·º¸º¸¸º¸¸º¸º¸º·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸·¸·¸·¸··¸···¸³··³·³³·³··³·³·³³K³K³K·K·KKK·K·KKKKKKKK·KKJ·K·JKKKKJKJKKH·J·JJJKJJJJJJJJJJJJJJJJJJJJJJHJGJGGGGGFFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKDFFFFFFFFFFGGGGGGGHGHGHGJGGJGJGJHJHJHJHJJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿþÿþÿþÿþÿþÿþþÿüúóóúóúúóúúò¬�p>===>A>=>>>>==>>>==C>>>=>>>>>>>==>>C>>>>>?C>=>?>?>>>>>>>C>=>C>>>CC=>CC>>?>>>CC?>CCCCCA>CC>>>??CCC???C>>CC??>>>>C>>>CC�üÿÿÿÿÿÌC>CCCCC>?lC>>lC>?C?>>CC>>CC?>?CCC?>CCCCClC>CC>>?CC??CC?>CCCC>???CC>>Cl?>CC>>?>CCC?CCCCC?CCC>>>>?>CClCCC>>ll>>>?>>?CC>??C??CC?>CC>>>?CC>>CC>>CC>>>>CC>>>?>>>lAC>>>=>>>A>CC>>CC>>>=>>>>>>>>>>>>>=>?==>C>=>>>=>=>>>=>>>=>==>>>>==CC>====>>=>>>>====>==>===A=======>===============x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ;òÿÿÿÿÿóZ! !qªíÿþÿÿÿþÿÿÿþÿÿÿýÿýþþþÿþþþþÿþþýèÓ³³³³³³³³³³¸³³³¸³³³¸³³³³³³³¸³¸³³¸³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸³¸³¸³³¸¸¸¸¸¸666686666568566656666665666i66565566856i6666656686i586666666656666565666666666665666656i5556565666666665656566688586566665666686686666666688665656666666568666656i666666566666666666686665666666666666666656666566666688666656666656668666666666666658856666566665656685i565656666666666666856666686566666586666665666658666665566566668566866ºººººººººººººººººººººººººººººº¸ºººº¸ººº¸ººº¸º¸º¸º¸¹¸¸º¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸·¸¸·¸··¸·¸·¸·¸·¸········³··K··³·³·³K··K·K·KK·K·K·K·J·J·JKKKKJ·J·J·J·JKJ·J·JKJKJKJKJKJJJJJJJJJJJHJJHJGGGGGGGFGFFFFFK³KKKKK³KKKKKKKKKKK³KKKKKKKKK³KKK³KKKKK³KKKKKKK³KKK³KKKKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKK³KKKKK³KKKKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKK³KKKKKKK³DFFFFFFFFGGGGGGHGHGJGJGJHHJGJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿþÿþÿþþÿþþþþÿþÿ÷óúúúúóúúóúò¬so==>==>====>>A>>C>==>C>=>>>>>>==>>>=>>>>=>>>>>CCCCC?C>>>>>=>CC>==C>=>>>>CC>>C?>=?l>>C>>lC>>>>=>CC>>C>>>>>>?>>>>CCC>CCCÆýÿÿÿÿÿÌlC>>>>>CCC>>ClC>>>>>ClCCCClCCllCC>?Cll>>C>>>?C?CCCClCCCCCC>>>???C>>>CllCCC>>>>>>>>>CCC?>CC>>>>>>>>CCC>>=>ClC>??CCClCCCC??C?>>>?C>>>CCC>>>>>?CCCCC?>C>>ClC>C>=>>CC>>?CCA>>>CC>=>=>>>>>CC>>>>>>=>=>>>>===>C>>>>===>AC>=>==>==>=>>==>>=>>>==A>===C====>>==>=>=>>===========!======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;óÿÿÿÿÿ÷Y!!  !!=sªõÿÿÿþÿÿÿþÿÿÿÿýýþþþþþþþþþþþþþþæÓ³³³³³³³³¸³³³³³³¸³¸³³³¸³¸¸³³¸³¸³¸³¸³¸³¸³¸¸¸³¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸³¸¸³86668666666566666666666666656586666556686666666866666656666666586565555665666556665666665666866665666666666656666556565658666665666666665666i66i665668666665666668656566866865566665566666656666565666666555665666766856666686566666866665666566666586656866666666656566866666666666666565658666666666665666656656668666866665666666665656666566666ººººººººººººººººººººººººº¸ºº¸ºº¸º¸º¸ºº¸º¸ºº¸ºº¸º¸¸¸º¸º¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸·¸·¸··¸···¸····³··³···³·K·³³·K³·K³K·³K··KK·KKKKKKKKK·KKK·JKK·JKJ·JKWKKKJKJJJJWKJJJJKJJKJJJJJJJJJHJHJGHGGGFGFFFFFFEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFGFGFFGGGGGGGHGHHGHGHJHHJHJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿÿþÿþþÿþÿþÿþÿýÿÿüúóóúóúúóúúò¬so==>>>>===>>>>=>>>=>=>>>>>>>>>>=>>>>==>>>>>C=>>C>C>>>=>>>>>C?=>>>C>>>>>CC>>CC>>>>C>Cl?=CC?>AC>=>lC??>>C?>??C>>?CCC>>CC�ýÿÿÿÿÿÌlC?>>>ClCCC>>C>C>>>CCCCCC>C>>Cl>>>>ClC>Cl>>?C?C?>C?C?>CC?C>>CC>>CCCC>>CCC>CC>>?CCCC??CC>AlC?CCC>>?>CCCC>>CC?>>>>?CCC?Cl>>>>>>C>CCC>>CCC>>CCC>>CCCC>=C>Cl>>>>>>>CC>>?>>>C>>C>>>>>>>>=>>?>=>=>>>>>=>C>>>>>>>==>>>>==CA==>=A>>C====>>=====>=>===>===>=========>>==========$$======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@òÿÿÿÿÿóY =}«íÿþÿÿþÿÿÿþÿÿÿÿþÿþþþÿþþþÿþþþþþæ×³³³³³³¸³³¸³¸³¸³³·³¸¸³³·³³¸³³¸³¸³¸³¸³¸³¸¸³¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6566666556656668666666666556566566665665i666665686655566688656566566666666i56666665656685666668865656586666566668566558558656566656666666656666i666566866656566666686666686666666566665666866666666868866666565666666666568665566668656666666666666566656665665666666666666566568666666665668666665666666666556685666666666668656666ºººººººººººººººº¸ººº¸ººº¸ºº¸ºº¸º¸ººº¸º¸º¸¸º¸¸¹¸¸º·¸º·¸¸¸¸º¸º·¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸·¸··¸··¸·¸³·¸³·³³¸³·³··³·³K·³³³K·K·³KKKKK·KK·K·K·KK·JKKKKK·JKJ·J·JJKJKJJJ·JKJJJKJJJJJJJJJJJJJJHJJGJGJGGGGGFFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKDFFFFFFFFFGFGGGGGGGHGHGHGJGJHGHHJHJHJHJJHJJHJJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿýÿþÿþÿþÿþþÿþÿþÿ÷óúóóúóúúó÷ò¬�o?>CC>>==CCC>>>===>>====>>>>>?>=CC>>=>>>C>=>==>>>===>=C?CC>>>=>=>C>>C==C>=>CC>C>=>CCC>=>?=>CCC>>>>>C>>>>>>CCCC>>ClC?CCÇüÿÿÿÿÿ×ulC>llClCCC?>>?>C>>lCC?CCCCC>ClC>>>?C>>lCC?CCC>>>>>>>>C>C>>CCC>>>CCC>>>???CCC?CllCCCCCC?>>CCClCCC>>?CCCCCC?>>>>?>>>>C??>>>>>CC>=>CCC?>>>>>>===>>Cl>>>CCC==>=>>>C=>CC>>>>=>>>>C>AC>>>>?>==>>>>>>>>>>=>C>===>=>==>===>>C>=>>C>===C>======>===>>====>>=====>>>===>================z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ@óÿÿÿÿÿ÷Y  qªõÿÿÿþÿÿþÿÿÿÿÿþþþþþþþþþþþþþþþþæÓ³³³³³³³³³³³³³³¸³¸³³³³¸³¸³³¸³¸³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸¸¸³¸³¸¸³¸¸¸¸¸¸¸6566666556656666656666656856666656666866666666656665666666666666566686565666666656668666666666666666666665666i66665i668665666666666666566686665666666668665666666866666668666665666658666668658665666666655656666666566686866666666666566666665656665668666666666566566656686686556656665566665i866866668686666586666666566666666666ººººººººººººººººººººººººººººº¸ººº¸ºº¸ººº¸ºº¸º¸º¸¸º¸¸º¸º¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·¸·¸··¸·¸··········K·³··K···³·K··K··K·KKKKKKKKK·KK·J·J·JKKJ·J·J·K·JKJKJ·JKJKJKJJKJJJJJJJJJJHJJHHGGGGGGGFFFFF³KKKKK³KKKKK³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKK³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKK³KKKKK³KKKKKKKKKKKKK³KKKKK³KKKKKKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKK³KKKKKKKKK³KKKKKKKKKKKKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKK³KKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKK³KKKKKKK³KKKKKKKKKKK³KKKFFFGFFFGGFGGGGHGHHGJGJGJGJHHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýÿþÿþÿþÿþÿþÿþþþþÿüúóúúóúóóúúò¬�p>>>>====>C>=>C>>=>>===>A>A>=>>=>>>>=>>>>>>>>=>C>>>>>=>>>l>>>>>>>C>>>>>>>>>Cl>>>>>>>>>>CC>>?C>>>>>>?>>>>>>CCCC>>CC?CCC�üÿÿÿÿÿÎuCC>ClC>>C?CC>>>>?CCC>?CCCCCC>>CC?>C>CCClACC>>CC>>>>C?>CCC?CCC>=?CCC>>>??C?CC?ClCCC>???C??>CC?CCC>>Cl>>CCC?>?>>CC>>CCCC>>>?>>>>>=>C>>>>>>??>>>>C>C>>>C>>>=>>>=>C>>>>>C?==C>>>>>CC=>=>>>>>>>==>>=>>>>>>>>=>>>==>>====C>=>==>>>>=>===>>==>=>===$=C======>=>======================x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–;òÿÿÿÿÿóZ  !!=sªíÿþÿÿþÿÿÿÿþÿÿÿÿþþþÿþÿýÿþþþþþþæÓ³³³³³³³³³³³¸³³·³³¸³³¸³³¸¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸³¸¸¸¸¸¸³¸³¸³¸¸66686656666656666656566666666666656866565655656666656666565686566656666866656666i6665665566566656668656656656666666866666866686666656666668866566866565666565665566665666566665566665666565688656666666566656666668665666656666865656685666656866668668668568666886666656665666656656656656666666666666665665656866565i686566665868666686ººººººººººººººººººº¸ººº¸ºº¸ººº¸ºº¸ººººº¸ººº¸º¸º¸º¸º¸º¸¸·º·¸¸º·¸¸¸¸¸¸¸¸¸¸·¸¸¸¸³¸¸·¸·¸·¸····¸···¸³¸·····³³··³K³·³³K³³·K·K·K·KK·K·K·K·J·KJ·JKKKKKWKKKJKKJJJJJJ·HJJJJKJJKJJJJJJJJJJHJHJHGGHGGGGFFGFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFDFFFFFFGFGFGGGGGGHGHGHGJHHHJHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿÿþÿþÿþÿþþÿþÿþÿþÿ÷óúóóúóúú÷úò¬Žo===>==>>>>==>CC>>>>>>>>>>>>==>>>>>>A>>=>>>>=>>>>>CCC>>=>CC>>=C?>>CC>>>>>==?C>>>=>>>>>>>C?=>?>>CCC>>>CCCCC>>>>==>C?>>?›úÿÿÿÿÿßZ>>>CC>=>>=>CC?>CCCl>>?CCC??l?>>CC>?CC>>CC?>=llCCCCClC?CllCCCC>>CCCCC>?>>CC?>>>C?>>?>>=?CC>CC>>>>>?C>=>?C>>>CCCCCC>Cl>>>>?CC?>>>>>>>>>>CC>>>>CC>>>==>C=>C?>>>>>C>=>=>>>=CCC>==>>C>>C>CCC>AC>>>A>=>A>==>==>>==>>==>>>>==>>=CA>>=>==AC>=>>==C>===CA====>=>===>>==========>C==$$==z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚@óÿÿÿÿÿ÷Y $pªõÿÿÿþÿÿþÿþÿÿÿýýþþþþþþþýþþþþþþæÓ³³³³³³³³³¸³³³¸³¸¸³³¸³³¸³³¸³³¸³¸¸³¸¸³¸³¸³¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸86666856666666656666666686656668666656668665666666666666656666666666666656666666656666i65666666666656556656865666668i666865655666666668666665566666665686i5686566666666865566666656666666566i666566566685665665656666666665666656666668666656656666656666656656866656656566866566666665666668665866666686656866666566665665666666656666ººº¸ººººººº¸ºº¸º¸º¸ººº¸ºº¸ºº¸º¸ººº¸º¸º¸¸º·º¸¸º¸¸º·¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸·¸·¸·¸··¸¸·¸·³¸·³³·³³·³·³··³³³·K·K³K³K·K³KK·KKKKKKKKKK·J·KK·JKKKKKJ·JKJ·J·JKJJJKJKJJJJJJJJJJJJJJHJJHJGHGGGFGFFFFFFFTXXXXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXWXXXXFFFFGFFFFFGFGGGGGGHGHGHGJGHGJGJGJHJHJHJJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓÓýÿþÿþÿþÿþÿþþýÿüÿÿüúóúú÷óúóú÷ò¬Žo>==>==>>==>>=>>A>>===>>=>>===A>>>>>>>C?==A>>C==>>Cl>>>=>>>>>>>>>>C>>>C=>>>>>CC==>>>>CC>>>>>CCC?>>>>CC>C?>C>>>>>>>CC>>”÷ÿÿÿÿÿáu>>C>>>?>>?>CCC>CCCC?C?>?C>Cl>=??CC?C?>>C>>>>>CClC=?l?>>CCCC>>?>CCC?>C??>CCC>>C>??CCC>>>CCC?CC>>?>>CC?>>C>=CACCA>>>CC>>>>>CC>?=>?>>>>>>CC>>?>C>=>>>>>C>=Cl=>>>>?>>>=>>=C>>>>>>=>>>>>C=>>>>>==CC>==C>==>>==>>>>>>==>===>===>A=>====>C===>==>====>>=====>====>============>=====$x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_;òÿÿÿÿÿ÷Z $pªíÿþÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþþýÿþþþþþþæ×³³³³³³³¸³³³¸³³³³³¸³³¸³³¸³³³¸³³³³¸³³¸³¸³¸¸³¸³¸³¸³¸¸¸¸³¸³¸¸¸¸¸¸¸¸¸6666666666666656566565666566668665655666666666856666666686656666666666656566666566666566866656656665686566666666666666666565666586686666565656666666666i6666566666666656666666566666666866665i65i6566666866668666866566865666668666656566666566666668566665656666666666666666666566656556566666656666656686666566666i66866566666665686656i665666666666565666i5i666665656666655665666ºººººººººººººººººººº¸ººº¸ºº¸ºººº¸ºº¸ººº¸ººº¸º¸¸¹¸º¸¸º·º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·····¸··¸··········K··K··³··K·³·K·K·K·K·K·K·K·KJ·J·JKKKWKKJ·JKKWJKJKJKJ·JKJKJKJJJJKJJJJJJJJHJHJGJGGGGFGFFFFFFTXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHFFFFFFGGFGGGGGGHGHGJGHGJHHJGHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþÿþþþÿþþÿþÿþÿþÿóóúóóóúúúóúòÓ�m=========>>>===>>=>=>>==>=>>>?C>>>>==>CC>?CC>===>CC>C?>>C>CC>>>CCC>>CC>>CCC=>>=>CA>?C>C=>>>CCCC>C>>>?>>>?CC>>?>C>?C>>{òÿÿÿÿÿñ{>>>>>>ClCCC>CC>>>>>CCC?>>>C?>>C>ClC>>>>?>ClCCCC?>=?CC>>?C??>>>?C>>ClCC?C>?>>CCCC>>>>>?>>>>>>>>>>>>ClCC>>>>CC>A>>>=>CA>>=CCCC>>CC>?>CCC>>>>C>>>>AC>>CC>>>C>>>>CCCC=>>ACC?>==>>>>==>C=====>>>=>>==A>>=?>====>A>>A>>?>=>>=>======>==C>=>C>======>==$==>>===$========>=========$$$xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü@!óÿÿÿÿÿóY  qªõÿÿÿþÿþÿþÿþÿÿþýþþþþþÿýþþþþþþþæÓ³³³³³¸³³¸³³³³¸³¸³³³¸³³¸³³¸³¸³¸³¸³¸¸³¸¸¸¸³¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸³¸¸¸¸¸³6666568666666556666666656666665666686665666655566656665856668866665666666566665666656686566i666656566866568566666656666666665i65668656565i8666666666686665566666686666865568656566665666666666666666665668666666656666666566666656665i55666655566666665656566556556666866656666666566656666665666566656586666666566666566666666866666565656666666666665666i556656666656686665666658XXXXXXXXXXXXXXXXXXXXXXXXXX^XXbXbXbVbXX^X^XX^XXXXXXXbVbVXXXXXXXXXXXXXXXXXXWXXXXXXXXWXXXXXXXXXXXXXXXXXXXVXXVXXVXVXXXVXVXVXVXVVVVVVVVXVXXX:VVXXXVXTVVXTXUXVVX:XTVVVVXUXXTXTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTXTXTXTXTXTXTXTXTXTXXTXXTXXTXXTXXTXÓÓþÿþÿþÿþÿþÿýÿýÿþþÿüúóúúúóóóúóò¬}j=>===>==>>==>=>=>>=>=C>>===C>>>>=>A>>=>CC>>>>>=>=>>>>?=>>>C>C>=>CC=>lC=>C?>>>>>>AC>C>>>>>>>>>C>C?>>CCC>>>CC>>?C>>C?>>zñÿÿÿÿÿõƒ>C>>C>>>lC>>>?>>>>CC>??>>>CC=>C>CCC>>C?>?=CCClC?>>C>?C>C?>>C?>>C??CCC>>???C???>?C>>>??C>?C=>CC>>CC>CC>CC>?CC>>>>>>>?>C>>>CCC>>C>>C>>>C>>>>>C>>=CC>>C>>C>=>>>>>CC>>CC>>>=>>>C>>>>==>>>>==>A>>=>>=>?==>>>>===>>=>>=>>==>>=>========>>=C===>=========C>=======>=$==>=============x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ!;òÿÿÿÿÿóZ! qªõþþÿÿÿþÿÿÿÿÿÿÿþþþþþþþþþþþþþýÿæ×³³¸³³³³³³¸³¸³³¸³³¸³³¸³³¸¸³¸³¸³¸³¸¸³¸³¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸³¸³¸¸¸6666666566666666666566666666666656656666566665656685668688666856666555665655666665665666566566666666686566566566666666665666566566566666666666566568655566566665655665666666656666665666656666566666668668668656666656666666656666566666566666666665666666666665665656666666665666665666665655668i8668666565656666685656666566656565566i665688666656686565666666666666656666656TTXTTXTTXTTXTTTVTXTXTXTVTXTTTTUTTTTTTVTTTTTTTTTTXTTUTTTTVTUTVTTUTTVTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"T:T"TTTTTTTTTTTTTT"TT"TTTTT"TTTTTT"TTTTTT"TTTTTT"T"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT:TT:TT:TT:TT:TTÓ×ÿþÿþÿþÿýþþÿýÿýÿþÿúóúóóóúúúóúò¬so>>==CC>====>>>===>>=>A>===>CC====>==>>==>>>>>>>>=>>>>=>C>>>>>>=>>>==>>==>>>>>>>=>?CC>>>>C>>=>CCC>>CCCCC>>CC>?CC?>>>>?uèÿÿÿÿÿúƒ>>CCCC>>>>=>>>>>>>>>>>>>>>?>>?lCCC>>>CCCC>>??C>>CC>>>CCCC>>?C>>?CC??C>=>?CCC>>>>>C>CCC>A>C>>lC>>CC?>>CCC>>?CC?>>>>C>>>>=>>=?C>>>A?C>=CA>>CCC>>>??>>==>>>=>A>>>>==CC>===>>>C>=>>>=>>C>>>>>>>>>====>===>>>>>>>=====>>>>>===>C>>=======>==CC====>=>>>>===============$==A========z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷;óÿÿÿÿÿ÷Y !! $sªõÿÿÿþÿÿÿþÿþÿÿþþþÿþÿýÿýþþþþþþþæÓ³³³³³³¸³³³³³³¸³³¸³³¸³³¸³³³³¸³¸³¸³³¸³¸³¸³¸³¸³¸³¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666665i656666686866i6556666686666666656866666665666666666666566666666666666665666566655665666556566656666665i5666666666656665665665666i5665666666666666666566666666666666656566666566665665666666556665665665666666668666866666656666666565666666666666586656566665666666556658i6666665666665686666666866666655666666666i66665565566565666666i86565666666566566666668655i686665666566666TTTTTTTTTTTTTTTTTTT:TTTTTT"T"T"T"TTTTTTTT""T""T"T""""""TT""T":TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTM ÓÓÿþÿþÿþþÿþÿýÿýÿþþÿüúóúúúóóóúúò¬so=>===>>>===>>>>==>==>>>>>>=>>====>>==>>==>A==>C>>>=>>=C?>=>>=>?>==CA=>>=>>>C>>>>>>CC>>>??>>=>>CACC??>CC>>>>CC>C>>>>>Cußÿÿÿÿÿÿ�C??>>>>>C>=>CCA>>>CC=>CC>>>>>ClC>C>?>>CCCC>CC>?=CC>>>CCC??>Cl>?>CC>CC>>>CCC>>CC>>>C?C>C>>>>>Cl?>CC>>?C>>>>?CCC>>>C>C>>>=>>>CC>>C?>>>>CC=>CC>>>C>>?>>=>>>>>>>>>>>=>C>>>>>>C=>>>>>A=>>>>>>=>?C>==>=>==>=>>>>>==>====>>===>>=>>>======>===>>>======C>======>====>============$$==zóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ @óÿÿÿÿÿóY !=sªíÿþÿþÿþÿÿÿþÿÿÿþþýýýýþþþþþþþþþæÓ³³³³³³³¸³³¸³¸³³·³³¸³³¸³³¸³¸³¸³¸³¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸³¸³¸³¸¸¸¸¸¸¸¸66666656666666665656666i86666566666665566565666i6665666556666556666565i8666666i66666666566666665665665655566666666566566666i6665665666i665666655666656656666666665666666666656566556666665656665666i686666666866866665666665666666666556686566566i666566666666686666686666665656666666666666686556666565666566686566656565665666668666666866666666666666656656666666668666665656666TTTTTTTTTTTT"":TT"T"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTÓ×ÿþÿþþÿþÿþÿýÿýþÿþÿóóúóóóúúúóóò¬Žo>>==>===>=====>=>========>==>=>CCC?=>=>===>===AC>>>=>=>===>>=CC>=>lCCA>=C>CC>C>>>==C>>>>>>CCC>=>>>>>>>=>>>>>>>=>CCC>>CÌÿÿÿÿÿÿßu>>>=C?ClCCCCCC?=>lC>>lC>?CCC>>CCCACCCCC>>>>>>?>>CC>>C>>C>>CCCCC=>>CCCCC>>>>>>C>=>?CCClC?>=>?>=>>>>?CC>>>>>>>C>>>>CC>>C>CCCCC>>>>>>>>C>==>>=CCC===>>>>CACC>>>=?>>>=>>>>>>======>CC>====>==>>=>C>>A>>=>>C>>===?>=====>=>======>=>===A>=======>===>================A============x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�@üÿÿÿÿÿó@ !  ! =s¥õÿÿþÿÿÿÿþÿÿÿÿþþþÿýÿýÿýÿýþþþþþæÓ·········³··³··············³··········³···³³·³··³··¸·¸·¸········856666666665886666565665656566666666566666666665586665666565566666566566i56656566656666666i666666566666666666666666666655658i5666666666i666556656566665666566565666865666666566i6666666666566866666656666656566665866566668655666686586688666666666666666665i565666666656686656866666666666666656666666566656665666665666566666565i6565565666666565686656566666666665666665656666666656TTTTTTTTTTTTTTTTTT"TTTTTT"TT"TT"TTTTTTTTTTTTTTTTTTTTTTTT ÓÓÿþÿþÿþþþýÿþÿþÿþþÿüúóúúúóóóúúò¬Žl>>===>==>>===>===>====>=>==>==>>>>>=>>====>===>>A>>===>>=>>C=>>>==CCCC>>>>>C>>>=>>>>>C>=>>CC>>>>>>>>?>>>C>>>>>>>?CC>=A�üÿÿÿÿÿò{>?>>?>CCClC>CC>>>C>>CCl>?CC>=>C?>?CCCCC?>>>>?>>>?C=>C>CC>>>CCC>=CC>>Cl>>>?>>?>>>>C?>?lC>>=>>>=>C>>>C>>C>>>>=>>>>>CCCA>=>lCC>>>>>>>=>C>>=>>>>C>>>=>>A>>>>C=>>>C>>>==>CA>>>=>>>>>C?===>=>===>>>>A>>>>==>>>>>==>>====>>==>====>=>===A=====A======>====$=>===========A==!$=======xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü#Yÿÿÿÿÿÿñ!!!=qªõþÿÿþÿþÿÿÿþÿÿÿþþýþýþýþþþþþþþþæÓXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXbXXbXX65655665665656666656566656666666656665656666566666666666686565566666666556688566i6666686666665666666665665665656666666i666566566566668665666666568666566666656666665566566566656i5665666665665666665666666665666666866665655666666666866656565668866666666566656666666565655668866866i566665565655i6666666656666666666656666566656656665685666566666666666666665566566"T""TTTTTT T"TTTT""TT"TTT""TT""TT"""TTTT""TT""TT"""TTTT""TT""TT"""TTTT""TT""TT""TT""TT""TT""TT"""T" Ó×ÿþþþþÿþÿÿþþþþþÿþÿúó÷óóóúúúóóòÓ�o=>>=>>====>=>>==>CC>>A>=>>>>>==>=>=>>>CC?C>>>>=>>=>=>>>>>CC>=>>>=>>>===>>>CC>>>CC>>>>C>>>=>>>=>>>=>>=>>C>>>>>>CC>>>>>C{ñÿÿÿÿÿþ›CCC>>>?>?C>>=>?>>>CC>?>>>??>=C?>=?CC>=?>>CCCC>>?>>=???C>>CC>>>>=?C>>CC>>>>>>ClCCCC>=>>>>>??CC>>>C>>>>C>=?CCC>>C>=>C>>>=>>=>>>>>>>C>>>>>>CC>=>=>>>>>C>>=>==>>>C>>C>A>>=>>>>==>>=>>>>>>>>?>>>>====A>>>====>=>>>==>==>>>>>===>>===$>>=====>============$==========$$=====$$=====x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá[ÿÿÿÿÿÿñ   p¥õÿÿþÿÿþÿÿþÿÿÿþþþÿýÿýþþþþþþþþþæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT66656666656666665665666656686666656665666665666665666666666i66666565666556686i66666566656i666656665566565666666666565656i66655665666666656666666566666666666666666666656565656656656666656665665665666666666556556i56666666656656656565656666666656665686666i556556566666656i56658665685665666666665566686666566666656666656665666666656666665666666565666568866566665666656666TT""T"TTTTTTTTTTTTT"TTT"TTTTTTTT"TTTTTTTT"TTTTTTTT"TTTTTTTTTTTTTTTT ÓÓÿþÿþÿýÿþýÿþÿþÿþþÿü÷óúúúóóóúúò¬�p==>========>==>=>AA>A>>=>==>>=>=>=>==CC>>>>>>==>>=>=>C=>?CC>>>>C==>>>==>>>C>>=CC>=A>>>>=>>>=>C>>>?>==CC>>>>>=>>CC>C>>CußÿÿÿÿÿÿÎuC>>>>CC>>>>>>>>>>?CC>?=>??C>>C>>>CCC=>>?C>C?>>>>>>?>>>>>>C>>>>>>>>>>>>>>>>CCClCC?>=>>>=>CCCC=>C>?>>>>>>CCC>>>C>=>CCC>>>==>=C>>>=C>>=>C>CC>=C>=>>>>>>===>>=>>>>AA=>C>>>=>CC==>=>>>?>===CC==>>=>>>>=>C>====>=>==>==>==>>===>=>=$=>>===>=====$=======$=====$===================x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„!�ÿÿÿÿÿÿá!  =q¥íÿþÿþÿÿþÿÿþÿÿÿþþýþþþþþþþþþþþþæÓTTT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TT:TTTT:TTTT:TTTTT"TT:TT66666666666656556666656666666656566666656666666666666666656656666566666666668666665i66666656666656686666666666665666665666686666666666566666568666656666665666668665666566656i6665666666565656666666666666666665666668666666i656666666666666668566666i66666655656666666566666666686886666656666666665666666666566666666666656666566666666666666666666566666665666566565566666666666656666T:TTM""TT  TTTTM""TTTTM""TM""TM"TTTTM""TM""TM"TTTTT"TM""TM"TTTTM""TT"TT"TM""TM""TM""TM"T  Ó×ÿþþÿþÿýÿþÿþþþþÿþÿ÷óúóóóúúúóóò¬�q===>>>>>==>>===>=====>>===>A>==>>>>=========C>=>>=>C>>=>>=>=>C>>=?C>=CC>===?>>>C=>CC>>>>CC=>>CC>CC>=>C>=>C>>>>>C>A>>>A>Æýÿÿÿÿÿ÷”CC>CC>>>>>CC>CC>>>>>>>>=>?>>CC>>C>>C>>>>>>>>?>CC???>CC>C>??>>>>?>>>>>?C>>CC>>>>>>>>CC?>CCCC?=>>CCA?CCCC>>>>>>C>>>>=>>>?=>>?C>C>=>>C>=>>=>==CCC>>>>C>=>>>>>lC=>>===>>===>>>===>=>A>=>>=>>====>>=>==>>===>=>=============>====A===========>>====>=====>====================!$$z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò; –ÿÿÿÿÿÿÏ=}ªõÿÿþÿÿþÿÿþÿÿÿþþþþþþþþþþþþþþþþæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT8686666656666666666665656665666686686i6566666666666666566666i666666566665666666666666666i65656666666656666665668666866666666i6656656666666666566666666668666666566666566666666i6666665666656656666668666666666666i565666665566668666666666665666666666666866666566666666656666i5665666666666666666666666666666566666666666666665666565666566666666666i666666566666688656866666666TTT"TT  TTTT""TTTT""TT""TT""TTT""TT""TT""TTTTTT""TT""TTT""TTTTTT""TT""TT""TT""T  ÓÓÿþÿþþýÿýÿþÿþÿþþþÿüóóóúúóóóúúò¬�q==>=>A==>=>===>======>>>===>>>>=>==>>====>>=>>=>>>CC>>>>>>>=>C>>>A>>>AC>>=>C>=>>>=AC>>>=>>>>>C>>CC>>>?>=>>C>>>>?C>>>C>>{òÿÿÿÿÿÿßu>CC>>>>>>CCCC>>CC=>>?>>?>>>C?>AC>>?>>>>>=>CC>C>>CC>>C>A>>>>>>CCC==>>>>C?>>>>>>>>>CCCC>>C>CC>>AC>>>?CCA?A?==>>>>>>>>>>>>>=>C>A>>>=>C>>>==?>>A>>>=C>>>>>>=ACC=>=====>>>====>>>>=>>A=>>>====>=>>>=>>>====>=>>=====>============>==============>=======A=$====>======$======$!$z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ… !ÎÿÿÿÿÿÿÌ  $}ªíþÿÿþÿÿþÿÿþÿÿÿþþþþþþþþþþþþþþþæÓ6656566666665666668666666666i866i666666866666566856666668566566666665665666666666666666i666656666666865666566666666i8556666666668666666666666686656686666666666656666666665666665666566665666666656665666656666866666666666666666866666656666666666665656565i656665656668i66666i56666565656666656666666688886666666665666666666666666665666666666666866656666666i665686i8i66566666"T     ÓÓÿþþÿþÿýÿýþþÿýÿþÿþúóúóóóúúúóóò¬�o===>========>==>=>>>>>==>==>===>===>>>>=>AC===>>>>>====>>>=>>==>=>CC=>>>=>C>==>>=>>C>>==>C>>CA>==>>>>CC>=>?CC>>>>==>>>>tßÿÿÿÿÿÿú–A=>>>>C>>C>>>>Cll>>>C>>?C>=>>>>>CCC>>>>>CCCC>>>C>>==>C?>CCCCC?>C>>CCCCCCC>>?>>>=>>>C>=>=>>>>?C>>>??>>>>>>=?>=>C?>>?>=>>A=>CCC>==>>CC>C==CC>===>=>C>A>>===C==>=>>>>>>>>>>>>>=====A>>>==>>==>>>>==>==>=CC>>>=>>====>>====>=======A======>=====================$$!=====!==$===x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð ! @üÿÿÿÿÿü !q¥õÿÿþÿÿþÿÿÿÿÿÿýþþþþþþþþþþþþþþþæÓ668666566666666665666666666866665i6i6666666668666665666665666666656566666666566666666666656866666565668666665666568i6665666566656665666866666666666i8666666666656666566666666666666666656666666566666666666666666666686666866666i8866668666566566565666666668666666566566666666866566665666656666666666666865666656666655666666666666666666566656666666666666666656665666566666666666566   ÓÓÿþÿýÿýÿýÿþþýÿþþþÿü÷óúóúóóóúúò¬Žo==>=====>====>>====>==>==>>===>>>==A>>>==CC===>>=>C>=>>=>>=>?=>=>=CC>===>=>>=>=>>>>C>===>C>>AC>>>=>>>CC>>>>>>C>>>>>>>>>>›úÿÿÿÿÿÿßu=>CC>>>>>>=>CCCC>>CAC>>C>>>>>>>CC>>>>>>CCAC>>>C>>>=?C>>>CCCCC>>C>>>CCCC>?>>?>>>>>>>>>>>>>>?>>>>?CCC>>>=>>>>>=C>=>CA=>>>>=CCC>>=>>=C?>A>>C>=>=CC=>>>?=>>>==>>==>C>===>>>A>=>====>>>>>==AC==>>>==A==>=>C==>C====>==>>==>========>=>=>====$!=>=======!====$=========$$=======xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿx !�ÿÿÿÿÿÿü‚ !   $pªíÿþÿþÿÿþþþþÿÿÿþþþþþþþþþþþþþþþæ×TTTT""TT""TT""TTT""TT"TT"TT"TT666566666666668i66656666656656666566656656666665656665656666666566665666686566666566666566i66666666666666666666686i66666666666666656i666656656656666666566666666568666686665656665666668656666665666665666686666666666656656666666666666i6666666666666666666i6666666666665666666666666i665665666656666665666666666666666656686666666666666666566666566666666666666866666666       Ó×ÿþþÿýÿýÿþÿþÿýþÿþÿúó÷ó÷óúúúóóò¬�m=========>==========>A>==A>==>===>>>A>>==CC==>A==>C>=>>>A==>>>=>==>==>>>>>CCC>C>>=>>>>>>>C>==>>=>>C>>>>C>>>>>>>>>>>>>>>>tßÿÿÿÿÿÿýÆC>C>>>>>C>=>C?=>>>>>>CC>>>>>CC>>=>CC>?CC>=>>>>>>>=>CC=>C>>>>>>>?>C>>>>>>>>>=>>C>>>>>>>>>>A>>>>>>>>>>>>>>>>=>C>==C>>=>C>>C>>>>=>C>====>>>>=>C=>CC>==>==>>>?C>=>?=====>>>>===>=>=>======>C>======>>====>====>=>A========C=>>===>====>====>$=============$$==$=====$======!=={óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!Ëÿÿÿÿÿÿó;!qªõÿÿþÿþÿþÿÿÿÿÿýþþþþþþþþþþþþþþþæÓTT66666886665666665665666656666568666665665656556686666866666566666666656668656666666666666566665666666666656665666666666i56666868666i6666586666666665686566656666685666566666668666665i6665665666656666566666686666656i6566666666666666666586566666656686666665i86666586565656666666866566666656666666665666666668665665866666666566566i66666656668686668665666566666568656866656566686566656668668666666565668666668       ÓÓÿþÿýÿýÿþþþþýÿþþþÿüóúó÷óóóóúúò¬Žl=====>====>=========>C>==>A>==>==>>=>>>>>>>==>l===C>>>=A>>>>>=>>==>==>C>=>CCCCC>>>=>>>C=>>>==>>>>?CC>==>C=>>>AC>>C>>>>=>>”÷ÿÿÿÿÿÿ÷–C>>==>>>>>C>>>=>?>=>C>>>>>CCC>=>C>C>>C>>>>=>=>C?=>lC>=>>>?>>>C?>>>>>>>>>>>=>CCC=>>>>>=>?>=>>>>>>>>C==CC>>>>A>=>AC>=>C>>>>=>=>>>=>>=>=>CC==C=>C>>=>>>==>=>?>>>=>====>A>===>=>>=====>==>C=============>>======C========>==>==>===$=====C======================$==$!=====!$=z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç;@óÿÿÿÿÿÿá $qªíþÿÿþÿÿÿþÿþÿÿÿþþþþþþþþþþþþþþþæ×"T"TTTT"TTTTTTTTTTT5668686655656666666665565666656666566666665566666666566666666666666866686666686666566656566656656668666666666656i566i6668656656566666665666666656686566686666666666666666666656666i66656i6i66566668666666566685666666566656656566665666666566665668666666566656566566666668566566566665668666565666656668666656666666668566656666566565666566566656666665666666656666i666566666566666666666566566565666566686866    HHHHHHHHGHHHHHGHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHGHHHHHHHHGHHHHHGHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHGHHHHHHHHGHHHHHGHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHHHHH     ÓÓÿþþÿýÿýþþÿþÿýþÿþÿúóóóúóúúúóóò¬Žl=====>=>>==>===>=============>===>===========CC==>>=>===>>C==>>>=>>>==>>>>>=====>A?>>>>>>=>=?C>>>=>>C>>>>==>>>>==>CCC=>?>CßÿÿÿÿÿÿÿñƒC>>>>>>>>>>>>>?C>>>>=>=>C>>C==>CCl>>?>>>>CC>>??=>CC>>>>>>>>C>=>>>>CCCC>>>>>>C>>>C>C>>>?>>=CC>===CC==AC>=>>>>C>>>>>?C>=>=>lC>>=??>=>=>>>=>>CA>=>C>=>>>>=>>>C>==>CA>>>=>=>>ACC==>=>====>==>===>=>======>==>==>============>=>======>==>=========!=====$=========!$=!==$$==xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóY!„ÿÿÿÿÿÿü !  qªõÿÿþÿþÿþÿÿÿÿÿýþþþþþþþþþþþþþþþæÓTTTTTTTi66666666666656565666566665666566i666566666566668666666656666655566665666656665666666666656566666565656686666666686686656666566665665666666686665666666665665656666666666665666656656666656666665656666666i66666656666565666656665666565666666666666665666666665656566665i65666655666666i66866656566665666666i866686665666666666666656666666i666656666566666666666565656566i665666666666666666656666666666656565JJJJKJJJJJJJJJJJJJJJJJJJJJJKJJJJJJJJJJJJJKJJJJJJJJJJJHJJHJJHJHJHJHJHJHJHJHJHJHJHJHHJHHJGHHJHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHFHHHFHGTFHGTFHFHFGGHFHFGFGFFFFFFDFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFEFDFFFFFFGFGFFGFFFFGFGHFGFGFGFGGHFHGFHFHGFHFFHFHFGHFGHFHFTÓÓÿþÿþþýÿþÿýÿýÿþþþÿüóú÷óóóóóú÷ò¬Žo=====>=>===>>========================>=>=====CC==>===>>==>C>=>=>>>>>===>C>>>=>=>>?>CA>>>C=>=>CC>>>=CC>=>>>>=>>>>>=>A>>=AC>ƒóÿÿÿÿÿÿÿèxC>>>>>>>=>>>>>>>?>==>>C?=>>>=>>>CCCC>>>>CC>>>?=>C>CC>>>=>>>>>>>=>CCCCC>C?=>CC>CCC=>>C>>==CC>>==CC>=>C>=>>=>>>>C>>>>>>>CA>C>>C>>>==>>==>>>>>>=>C>=>>>=>>>>>=>=>ACC===>>>>>C>>=====>====>====>==>>====>>==>=======>==>==>A=======>=========A=$======!$=========$==$!==!==x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü‚;ñÿÿÿÿÿÿú_  =sªíÿþÿþÿÿþÿþþÿÿÿþþþþþþþþþþþþþþþæÓ656656666666566i6666666666666656665666666666666666666666686866666556566556656666666866566665656666666666666666666666666566686666566666666666666666666666666i56665665666566686885666i66668i666665666666666568666566566666666656666666666656666666666656666666866i666566566656666566666666666666656666565666666666666666666666i56666666665666665666566666688665666666665666666566666656666566666666668656668665666568566666¸º¸º¸º¸¸¸¸º¸¸¸¸¸º¸º¸º¸¸¸¸º¸¸¸¸¸¸º¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸·¸·¸·¸·¸·¸··¸··¸···¸··············³····³··³³·³K·³K·KK·KKKKKKKKKKKKKKKKKKKKJKKKJKJKKJJJKJJJKJJJKJJJJJJJJJJHJJJHJHJGHGGGFFFFFFEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KEFEFFFFGFGGGGGGHGHGJGHGHHJHHHHJGJHJJHJJHJJJHJJJJJJJJJJJJHJJHJJJHJJJJJJHJJJJJHJJJJJJJJJJHJJ××ÿþþÿþÿýÿýÿýþþþÿþÿóóóóúóúóúóúò¬Žo=>===>===$=====CAA===A>A>====>=>>=>==>>=>=>===>====>>==>==C=>>==>A>>==>====>C>>>>>====>=>==>>>=>>=>C>>>>>>>>>C>>C>>>>>=>>>CÌýÿÿÿÿÿÿÿßxCACCC>=>>>>>>=>>>ACC>C=>>>>>?>>A>>>=>>?l?>>>>=>>>>?=>=>>=>CCl>A?=>=>>A>==>C>==>>=>>==>ACC>C>==>>>>>>>>?>?>>>>C>>>=>>=>>=>=>>A=?>>>>==>>==>>====>C>=>>==>=>>>>>====>==>======C>==>>>=>===>===>>===>>====A>=======>==================$$=!=>=!=====$===$!=======!!====!==x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷– –ÿÿÿÿÿÿÿñ!  !9q¥õÿÿþÿþÿþÿÿþÿÿýþþþþþþþþþþþþþþþæÓ6666666586666666666665665656666566666666666656666655666666656866666656666666865666666656666666656666666566656666666666666666666656666656656668666665666666656656666i666i6656568666566666666686656666666566666i56666666666566666666866586665666666666i666666666566666666666686668666666666666666665666666665666865666566566566666686666666666666665666665866666666665666666656666666666666666666665i6666666666666566ºº¸ºº¸ºººº¸ººººº¸º¸º¸ººº¸º¸ººº¸º¸¸º¸º¸¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸··¸·¸··¸·¸··³·³·³·³·³·³·K·³K³K³³K³K³K³·KKKKKKKKKKKKK·KKKKKKKKKJKKKJKJKJKJKJKJJJKJJJKJJJJJJJJJJJJJJHJJGJGHGGGFGFGFFEEFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFFFGFGGGGGGGHGHGJGJGHHJGJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJJJJJÓÓÿþþþþýÿþþþþÿþþþþÿüóúóóúóóóúóò¬�o====>=========>A>>===>AC=====>>A>=>==CA=>==>==>=>=>>===>>===>=>>=C>>>====>==CC=>AC===>==>>>=>>==>CC>>>>==>>>>>>>CC=?C>=>C>=ußÿÿÿÿÿÿÿÿèƒCCCCC>>=>CC===>>>C>C>>>>=CC>C>>==>C>=CCC>>>>=>>=>A==>>>=>CCCC>>=>>==>>>=>>>>=>>>>>>=>CC>>>>>==>=C>>>C>>CCCC>>>>==>>=>=>C=>>>>CA>>=>>>=>==>====>CC==>>=>>>>>C>========>=>>=>>====C=====>==>=>====CA====>>>=======>=!$==========$$=====$$==$==========!======$!$=======xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð‚  !@óÿÿÿÿÿÿÿÎ! !qªíýÿÿþÿÿþÿþÿÿÿÿþþþþþþþþþþþþþþþæÓ666666665665666866666666656666686666668666656665665666666666665666666666665666666668666666666666566686665666666565666665665666666666666666666866i66665656i6665666566566666665i66i6666665666566666866666665666566656566666666566665656666666666666566685686865666666666666666666668666666566i66665666668666866656666666666566666i6866665668688i6666666i6666665666666656666566668666666685665656666668i66666666656¸¸º¸¸¸º¸¸º¸º¸¸¸º¸¸º¸¸¸¸º¸¸ºº¸¸¸ºº¸º¸¸º¸º¸¸¸º¸º¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸·¸·¸¸···¸··¸·¸·¸··¸·········³····³·³·K··³K·K·K····K·K·KKK·KK·J·J·J·JK·J·J·J·J·JKKJKJJKJJJKJJKJKJJJJJJJHJJHHGGGGGFGFFFFFK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKKKK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKKKK³K³KKK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKKKK³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³K³KKKKFFFFFFFFGFGFGGGGHGHHGHGJGHHJHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿþÿþÿýÿþÿýÿþÿþÿúóó÷úóóúóóúò¬�m==>========>=$====>=>==========>>====C>====>=>=>>>>==>==C>==>>CC====>>>>>>>=>>==>>=>C>>>>=>=>>>==>>==>>=>CC=>>>>>==C>=?CC>==zèÿÿÿÿÿÿÿÿò›C=C>>>>>C>>C>>>>>=>>>C==>C>>==>=>C==>A>=AAC>=>>C>>>>C=>A>>>>>>=>lA>AC>?>>>>>?>?C???A?>=>>>>>C>>>==C>==>>>>===>==>=>>=C==>>=>==>==C>A>=>>C>=>==>==CA===>=>=>>==>>>=>===C>=>==>>===>>=>=====>=>==>================>=========$========$==========$$==$===9=!==!=====!$!x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáZ!Èÿÿÿÿÿÿÿ÷[   =qªõÿÿýÿþÿþÿÿþÿþþþþþþþþþþþþþþþþþæÓ65666666666566666566666666666566866666656668666666666666i6866566666656568666666i566866656665666666666666666666566666666668666666656566656668i66i686665666666666656666666666666666666656666665666656666566566656666666666666666666666665656886666666666666656686666666686(%%8666656666666566656566556665666666656665666666666656666866i666666666565666566666666666665665686666666666666665656666665666ºº¸ºº¸ºº¸º¸º¸ºº¸ºº¸º¸º¸º¸¸¸¸º¸º¸¸¸¸º¸¸¸·º·º¸¸¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸·¸·¸¸··¸¸··¸··¸···³··³···³···³·K··K·K³³·K³K·K·K·K·KKKK·KK·KKKKJ·J·KJ·KKJKKKJKKJ·JKJ·JKJKJKJJJJJJJJJJJJJJJHJGJGHGGGGFFFFFDKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³K³K³K³K³KKKKK³J³K³K³K³KKKKK³K³K³J³K³KKKKJ³K³K³K³K³KKKKK³J³K³J³K³KKKKJ³K³J³K³K³KKKKK³K³K³J³K³³KKKK³K³K³K³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KEFFFGFFFFGFGGGGGGHGHGHGHJGHHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþýÿýÿþþþþþþýþþþÿüú÷óóú÷óúóóò¬Žo==========>======>=>=>====>====>A====CA====>==>==>>==>C>>C====CC>==>=>>>=>>==>====>>C>>=>>>=>>>=>===>====CC>>=>C>==>C>>A>>>>=ƒòÿÿÿÿÿÿÿÿ÷Ìx=>AC>>>>>C>>CA>=>>>>=>=>>>>=>>>C>=>>=>CCC>=>A>>=>>>>=>>>>>>>=>CCA>>CCCC>=>?CCC>>C>C>>>>>>>CC>=>=>C=>>>=>=>=>===>>=>=>=>=>===>==>>CC==>CC=>>===>>>>==>===A>>=>>>>====>=>=========>>=======>=====$=$==========================>>>=!=====>======$==!===$$!==!=$$===$=xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÈ@ „üÿÿÿÿÿÿÿÎ    =}¥íþþÿþÿÿþÿþÿÿÿÿþþþþþþþþþþþþþþýèÓ³³³³³³³³³³³³³³³³³³·³³¸³³¸³¸³¸³¸¸³¸¸³¸¸¸¸¸³¸¸¸¸³¸·¸¸³¸¸³¸¸¸³¸·¸¸¸66666666666656666i56566666666656666665666666665666666666566665666i6665656666666666566666656i6666566666655666666666666666666686666666666666656665656655666566666665666566666686666666666656566666666566668i668666556666i8656566656565686666666656668566666666666665565665% %(( 666666666666666666656666i665i6666668656665666666566666666666566666666666666666656666666666566i666666686666666666566i665656666666¸º¸¸ºº¸¸ºº¸¸º¸¸¸º¸º¸¸º¸º¸¸º¸º¸¸¸¹¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸·¸·¸·¸···¸··¸··¸···¸³¸³·³·³··³³³³·³³K·³³K·K³K·K·K·K·KKK·KKKKKKK·J·J·JKKKJKKWKJ·JKJJKJKJJJJJJJJJJJJJJJJJJJJJJJHHGJGGGFFFFGFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK++++++++++++++++++++++++++1+1+1+1+1+1+1+1+1**********1+1************1************1+111**********1+************1+11*********1+*************1+***********1+K††K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEEEFFFFFGFFGFGGGGGGGHGJGHGJGJGHHJGJHJJHJHJHJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿýþþþÿþÿþÿþÿýÿþúóóúóóóúóóúò¬�o===========>>>========>>>======>==>===>=>====A>===C===>====>=>>==>>=>>A>====>>>>>>>>====>>>==>>>>>=>>>>>>CCC>==>>=>CA==>=>>>>C›÷ÿÿÿÿÿÿÿÿýèÆuC>C>>>>===>>>>>>>>>>>?>>>>?>=CC>>=>C>?>>>CC>>>>C>==>=>>=>>>A?>>==>>>>==>C>>>=>>>>>=>>>>>>C=>=>>>>=>=>>>>=>>=>C>A>>>>>==>>====>=>A==>===>>>>>A====>====>==>>>>===>==>=>==>>>>======>===>=====>========>==>===============================!!$=====!$$=$$$====!$$==x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü΂!  _÷ÿÿÿÿÿÿÿ÷[=q¥õÿÿÿÿþÿþÿÿþÿÿþþþþþþþþþþþþþþþþæÓ³³³³³³³³³¸³³¸³³¸³³¸³³³³³³³³³¸³³³³¸³¸³¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66566565i6566668666566666666666666666665666666666666666666666666666666665666666666666666566566656666666666666666666666656665666668i6666666666666565666566666665666666666565666666566666666666566666656656666666686666666656666665666666666665666666666856%%%%666% %% % %%6666666666666666666666666656666666665666666658666666656666666666666666666666i666666686666666656666666665665666656666i666666666ºº¸º¸¸º¸º¸º¸º¸º¸ºº¸º¸¹¸¸º¸¸¹¸º¸¸¸º¸º¸¸¸º¸º¸º¸º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸·¸··¸··¸·¸···¸···············³·³K·³·³·K·K·K··KK·K·K·KK·J·KK·KKWKKKKJKJ·JJ·JKJKJ·J·JKJKJJKJJJJJJJJJHJJGJGHGGGFGFFFFEKKK³KKKKKKKKKKKKKKK++++++++++++++++++++++++++++++OOOOO0O202020202020202022*ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŒŠŒŠŒŠŠŠŠŠŠŠŠ‡Š‡Œ‡‡Š‡‡‡Š‡‡Š‡‡Š‡Š‡QЇ‡‡‡*‡‡‡‡‡‡‡‡‡‡‡‡4‡‡‡‡‡4‡‡‡4‡4‡‡‡‡‡4‡‡‡‡‡4‡‡4‡4‡4‡4‡2‡4‡44‡44444424*++++++++++++++++++++++++++++++++++++++++++++++++++++++++KKKKKKKKKKKKKK³KKKFEFFFFFFGFGGGGGHGHGHGJGJGJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþÿþÿþÿþþþýþýþþþýÿü÷óóóúóóú÷óòÓŸp============>>>=>==$===AA===>>===>>====>=>===>>====>=========>===>C>=>>>=>====>>>>>>==>==C=====>C>>=>>>=ACCC>==>C==>>>>===>CCAC�÷ÿÿÿÿÿÿÿÿÿüç�xCC>>>>==>>>C>=>>CC>=>CC>C>=CCC>==>>CC>CC?>>>C?=>=>=>>=>>>>A==>=>>>===>>>>>>>>=>>>>=>=>AC>=>===>>=>>=>=>C>=>lC>>>>>>>>>>=>=======>C====>>>C>>==>=========AA====>===>>>=>>=====>===========>>>>=>>==>=>=======>=========$$=======$====!=$$$=>=$$$=!$$$=$==$=!=$$xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÏ‚;YñÿÿÿÿÿÿÿÿÎ!  !   !  q¥íþþþþÿþÿþÿþÿÿÿþþþþþþþþþþþþþþþæÓ³³³³³¸³³¸³³³¸³³·³³¸³¸¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸66666666665666668666665668866666666666566666656566566666666666666566686666666666666665666666566666668868666668666i6666666656566686666666866686666666666666666665666556656686665566866666566666666656665i6666566666666666666566666666666666666666666i66666565666666565%%% 68%% %%% % % 66566666656565666666666566666666666666665666666666i65686566668665686666665656556666666666666666666i666666566666685665668868¸º¸¸º¸º¸¸º¸¸¹¸º¸¸¸¸¸º¸¸¸º¸º¸¸¸º¸º¸¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸··¸······¸··¸··¸··¸³··³··³··³·K·K··K·K·³K·KKK·K·K·KKKKKKKKKKKKKKKKKJ·JKKKKK·J·J·JKJ·HKJJJJJKJKJJJJJJJJJJJJHJHGHGGGGGFGFFFFFKKKKKKKKKKKKKKKKKKK+O‡OOO‡OOOOOOOOOOOOOOOOOOOOOOOOO042O2O22222222222222220*Œ�Œ�Œ�Œ�Œ‹�ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠ‡ŠŠ‡Œ‡Š‡ŠŒ‡Š‡Š‡Š‡Š‡Š‡‡‡‡‡‡‡‡‡‡*‡‡‡‡‡‡‡‡‡‡4‡‡‡‡4‡‡‡‡4‡‡‡‡‡‡4‡‡‡‡44‡‡4‡‡‡4‡4‡4‡4‡4‡4‡44‡4‡444Q4*++++++++++++++++++&+++&++&+++&+&+&+&+&+&+&+&+&+&&+&&+&&+KKKKKKKKKKKKKKKKKKEEFFFFFFFFGFGGGGHGHGHGHGJHHHHHJGJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýþþÿýþþÿþÿþÿýÿþÿúó÷úóó÷÷óó÷ò¬�o=======>===============>=========A>====>======>>>===>>=>>=>>===C==C>====>>=>===A==>>>A=>?CA>>>>>>>>>>>>>===>>==CC>>>=>=AC>=>>==C–òÿÿÿÿÿÿÿÿÿÿüèÌ›xC>>C>C>>>==>=>C>=>C==>>>C>>===?>C>=>=>=>=>>>>>>>>>>>>>>>=>>>>=>>?>=>>>>C>=>A>>>==>=>>=>>A>=>>>=>>>>>>>==>==>>====>>>===>>A>>>==>====>=====>>===>>=>==>>=>===========>=>>=====>>>===================================$=============$$===$==$$====$!=$======!!x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷áÂ;Báÿÿÿÿÿÿÿÿ÷Y  $qªõÿÿÿÿþÿÿþÿÿÿþþýþþþþþþþþþþþþþþæÓ³³³³³³¸³³³¸¸³³¸¸³¸³³·³¸³¸³¸³¸³¸³¸³¸¸¸¸³¸¸¸¸¸¸¸³¸¸¸³¸¸³¸¸¸¸º¸³¸¸º6566656666666666665666i66666666656666666566566666686666656666666566566666666666656666666666666666666666686665686656686666666i8666565666i666666666666566666668666666656656666i6665i8668668866665656666i666665666665865666666666666666666666666666666686666666666(%% % %%%% %%%%%% %%(65666666665666868666665666586666i56666i66i66665666565666666666666666866666666666666666666666665666668666686666666666666666666666¸º¸º¸¸º¸¸º¸¸¸¸º¸º¸º¸¸º¸º¸·¸º¸º¸¸º·º¸º·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸·¸¸¸·¸··¸··¸·³··³³·³·³··³·K·³·³·³³·K³K³³K·KK·KKK·K·K·K·K·J·J·J·KKKKKKJ·JKJKJKJKJJJ·JJJKJJJJJJJJJJJJJJHJJHJGJGGGGGFFFFFGFKKKKKKKKKKKKKKKKKKK+‡O‡O‡O4O‡O4O4OOOOOOOOOOOOOOOO2OOOO2O2422222222222220231ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŒŠŠŠŠŠŒŠŠŠŠŒ‡Œ‡Œ‡‡Š‡Š‡Š‡Š‡‡‡Š‡Š‡‡‡‡‡‡‡*‡‡‡‡‡‡‡‡‡‡‡‡4‡‡‡‡4‡‡‡‡4‡4‡‡‡‡‡44‡‡44‡44444‡444‡44444‡44‡444444*++++++++++++++++&+++&+++&+&+&+&+&+&+&+&+&+&&+&+&+&&+&+&+KKKKKKKKKKKKKKKKKKFFFFFGFGFFGFGGGGGGHGGHGHGJGJGHHJHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýÿýÿþþÿþýÿýþþþþþÿüúóóóúó÷óúóò¬Žo==>=========$======$=====$=====$=>>====A>>====>>====>>==>==>==>>==>>====?==>>==>>>==CC>=ACCC>>>C==>=>>>>===>>>=CCC>>===>>?>=>>==>ƒáÿÿÿÿÿÿÿÿÿÿÿÿúñßÇ�›”{xuxuuuuuuxuuuuuuxuxuuu]uuuxuuuuxuuu]uxuxuuxuxuuxuuu]uxuuuxuxuu]uxuuuxuuxuuxuuu]uuxvxuuuuuuuxuuxuuuuZuxuuu]uxuxuu]txu]uuZuxuuuuuZuu]u]uuZuuxuuu]u]uuuu]utZuZZuu]u]uuu]uu]uxutZZuxuZuuZZ]u]uZCZZ]uZ]uuZ]uZu]uuZZZuZ]ZuZZuuZZZZZZZZ]]uZZZ]uZZZZZZZZZZZZZƒñüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúóñáÏÌ–d@ ! [ÑÿÿÿÿÿÿÿÿÿÈ!!qªíþþþÿþÿþÿþþÿÿÿþþþþþþþþþþþþþþýæ×³³³¸³³³³¸³³³¸³³³³³¸³¸³³³³¸³¸³³¸³¸³¸³¸³¸¸³¸³¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666686666666666666666568666666i6666668666666666656666666665666666566666666666666666666666666666665666665666666666666i6i86656666666666666666666666666666666666668666666666666666666666666i86666i656665666665665666666666666666666686666666666666665666%%%%%% %%% %%%%%%% %% %(66866666666666i666666666666i6566666666656666656666666666666568i666668666656666666566566666666666666666566666666666666666i8¸º¸¸¹¸º¸¸º¸º¸º¸¸¹º¸¸¸º¸¸º¸º¸¸¸¸º¸º¸¸¸º¸¸º¸º¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸·¸¸¸·¸·¸···¸·¸··¸··¸·¸·¸··¸·······³······K³·³·K³³³K·K·KKKKKKKKKK·KK·J·JK·JKKWKKJ·J·JKJ·JKJKJKJKJKJJJKJJJJJJJJJHJJHGJGGGGFGFFFEFEK³KKKKKKK³KKK³KKK³K+2‡2O4O‡O4O‡OO4OOOOOOOOOOOOOOOOO2O2O2222222222222222220*Œ�‹Œ�‹Œ‹�‹ŒŒŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŒŠŠŠŠ‡Œ‡Œ‡Š‡Š‡Š‡Š‡Š‡Š‡Š‡‡Š‡‡‡‡‡‡‡‡‡*‡‡‡‡‡‡‡‡4‡‡‡‡‡‡1‡‡‡‡1‡‡‡‡‡‡1‡‡4‡‡4‡4‡‡4‡4‡4‡4‡4‡44‡444444444‡4*++++0++(++(+&0&+(++&0&+&0&+&0&+&+&+&+&+&&+&+&&&&+&&+K³K³KKK³KKKKKKKKK³DFFFFFFFGFGGGGGGHGHGJGHGJHHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýÿýþþþþþþþÿýþþÿþúóóúóó÷óúóóò¬}m==============$$==============>==A=====>>========>>====>A>>===A>===>>>===>>>>>>==C==>C=====>===>>=>>>>>==>=?>==>>=>==>>>>>>==>>>A>xÞýÿÿÿÿÿÿÿÿÿÿÿÿÿüüú÷ññèñçðñððññèðñððèñèññçðèðèðèñðñðçèððèñèñèñññèñçñèðñðèèñèððèñèñðèñèðèðèñðèñççñðçèðèññèñðñðððñññññèððçñèèðèðèðèðèèðèðèñèñðçèðèððçðèñðèðèðèðèðèñðçççèðèððèðççççèñðèðèðñðèðñèðççççèñççðèðèèèñèðèðççèèðèèðçèðèññçðèçèçèçèèççèðèçèèèèèèèèðççèèççèçèèçèèçèçèáß–ƒ”ƒƒƒƒƒƒƒƒƒƒ‚ƒƒƒƒƒƒƒ‚ƒƒ‚‚ƒƒƒƒ‚‚ƒƒƒƒƒ‚ƒƒƒ‚ƒƒ‚‚ƒƒƒ‚ƒ‚ƒ‚ƒƒƒ‚‚‚‚ƒ‚‚‚‚ƒ‚‚ƒƒ‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚�‚‚‚�‚‚‚‚‚�‚‚‚‚�‚‚‚x�‚‚��x��‚�‚����‚���_�����‚��‚���xdz‚_‚‚���x_‚���_�������_�__‚���x_��x_dx���__��‚��‚xdx��_‚�x__dxdx_��_������__dx��_dx_�__d_ZY@; ‚ñÿÿÿÿÿÿÿÿÿá; !qªõÿÿÿþÿþÿþÿÿÿÿþþþþþþþþþþþþþþýþæÓ³³³³³¸³³³³¸³³³¸³¸³³³¸³¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸³¸¸º¸¸¸68666i6668666656i6i66i6666666666666666666566666668656566666666656666i6656666666666666666666666666666666666666i6565666i6666666666666668666656556666666666666656666i668666656666i66666i88666566666666666666i666i666666666666666665666i886566666666666666665% %% % % % % % % %% % %% %%6666666666666666666666666666666666666666656666666665666i66666666666666566666666656666666656666666666666566666666i66i5666¸º¸¸¸¸º¸º¸º¸¸º¸¸¸º¸º¸¸º¸¸¸º¸º¸¸º¸¸º¸¸º·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸··¸·¸·¸¸··¸··¸··¸·¸··³··³······³·K·K··³·K³K³·K·K·K·K···K·K·K·KKKJ·J·KKKKKKJ·JKKJKKJKJ·JJJJKWJJKJKJJKJJJJJJJJJJHJHGHGGGGFFFFFEKKKKKKKKKKKKKKKKKKK+‡4O‡O‡2‡O4O4OOOOOOOOOOOOOOOOOO2O2O2O2222222222222222031ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŒŠŠŒŠŒŠŒŠŠŠŒ‡Œ‡Œ‡ŠŠ‡‹‡Š‡Š‡Š‡Š‡Š‡Š‡‡‡Š‡‡‡‡‡‡‡‡*‡‡‡‡‡‡‡‡‡‡1‡4‡‡‡‡4‡‡‡‡‡1‡‡‡‡‡4‡‡4‡4‡44‡4‡4‡4‡4‡44‡444‡44444444*+++0+++0+++0&++(+0&+&++&+&++&+&+&+&+&+&+&+&+&+&&+&+&&&+KKKKKKKKKKKKKKKKKKDFFFFFFFFGFGGGGHGHGHGJGHHGJHHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýÿýÿþÿþÿýÿþþþþþýÿüó÷óúóúóóúóò¬Žj$!$========>=$==$=======>A>===>=>?>======>====C=>=======>A====>=====>=====CA>C>==>>==>>>=======>==>A=>C>==>=>>========>>===>=>CC>>=uÆòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò_===!!=$!!!=!!===!!=!!!!!!!!!!!!!!!!!!!=!!!=!!$!!!$!!!!!!!!!!!!!!!!!   Â÷ÿÿÿÿÿÿÿÿÿñY =q¥íýÿþÿþÿþÿþþþÿÿþþþþþþþþþþþþýþýæÓ·³³³³³¸³¸³³³¸³³¸³³¸¸³³³¸³¸³¸³¸³¸¸¸¸¸¸³¸³¸³¸¸¸¸¸¸³¸¸³¸¸¸¸¸¸³¸¸¸¸¸66i668666i6666666666666666i866668866666666666666666i666666666i86i6666666566656666666666666686666666666666666666666666686656656666656i666666666666666566666666656i6666666666666666666666666666665666i6i566666i68i66668666666i66665666i6i666666666(%(65%%%%%%% %%%% %%%% %% %%%%% %%% (666656656i6686666656i66665666666666666665666686656666666666666666665666666666666666666666666666566666666666866666666866668¸¸º¸º¸º·º·º¸¸º¸º¸¸¸º¸¸¹¸¸º·¸·º·º·¸º·º¸¸¸¸¸º·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·¸··¸··¸·¸··³··³·³··³·³·³³·K·³³K³·³K·³K³K·K·K·KKKKKKKKKKKK·KK·JKJ·JKJ·JJ·H·JJ·HKJKJKJJJKJJJJJJJJJJJJJJHJHJGHGGGGGFFFGFEFDKKKKKKKKKKKKKKKKKKK+O‡O4O4O4OOOO4OOOOOOOOOOOOOO2OOO24222222222222222022032*Œ�Œ�‹11**11**1***1*11*111*111111*11*11*11*111*111*11*1111*111‡‡*‡‡*****)***1*****)*****11*******)***)********************44444*+++++(++(++&++&0++&++&0&++&+&+&+&+&+&+&+&+&&+&+&&&++KKKKKKKKKKKKKKKKKKFFFFFFFFGFGFGGGGGGHGHGJGHGJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýþþþþþþÿýþþÿþÿþÿúóóúóóó÷úóóò¬Žo=$====================================>======>>====>==>>===>=>>===>>>>====>>==>=>>===>===?>>==>C>==>>>==>C>=>=>>=>>>>>=>>>>=>>>>>===C{Ì÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ]$=$!$==!===!!$!$!!!!!!$!$!!!!!!!!$$$=!$!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!! !!!!! !!!!!!!!!! �Îüÿÿÿÿÿÿÿÿÿó_  =q¥õÿÿþÿþÿÿþÿÿÿÿþýþþþþþþþþþþýþýþæÓ³³³³¸³³³³³¸³³³¸³³³³³³³¸³³¸³³¸³¸³³³³¸³¸³¸¸³¸¸³¸¸¸¸¸¸¸¸¸³¸³¸¸¸¸³¸¸66i6666666i8666666666666666666666665666666666666666666566666666i6666686666666666666666666668666i66666666666668666666666666666666668666666666666666666666686666666666666686666666566666666i6666666665i666666665666666i686i6666666666666666666866686i66( %%%%%% % %%% % %%% % % %%% % % %%6666ii666566666666666666566i6666i6666666666666666866666666666666666666666666i6665i66666666666i6666666656666666¸º¸¸¸¸º¸º¸¸º¸¸¸º¸º¸º¸¸¸º¸¸º¸º¸¸º¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸·¸¸¸¸¸¸¸¸··¸··¸··¸···¸·¸··¸·¸··········K··³·K·³K··K·KK·K·K·K·K·K·K·KK·J·J·KKKWKKKKKKKJKKJ·JKJJ·JKJJKJKJJJJJJJJJJJJHJJGJGHGGGFGFFFFFKKK³KKKKKKKKKKKKK³K+42‡O4+++++++++++++++++++++++++++++++++++++++++++++++++1Œ‹ŒŒ�1óóðóñðóööõöööñöõöõöõöôìôìëñâðòðòðçðÑñïðáðáïáððñððáðáðð*‡‡*‡‡*ÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÍÑÍÑÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍËÍÖÚËÍÓÍÄÍÄÍÄÍ*44444*++++++0++++++++++0++++++++++++++++++++++++++++++++&&+&&+³KKKKKKKKKKKKK³K³KFFFFFGFFFGFGGGGGGHGJGHGJGJHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþÿþÿýÿþþþþþþþþýÿüúóóúóúóóúóò¬sj===$$$=========>=============>==============>A>===>===>====>==A==>==A=>>>=========>====>>>>===>CC>==>==>=CC>==>CC=>==>===CC>==>>>=====CƒÌúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò]$=!!!=====$$$$!!!!!=$!$$!!!=!$!!!==!!!!$!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!! !!!!!!!!!!!!!! !! ! _Îóÿÿÿÿÿÿÿÿÿÿü„ !=qªíþþÿþÿþÿþÿþÿÿÿþþþþþþþþþþþþýþýæ×³³³³³³³³¸³³¸¸³·³¸·¸³¸³³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666666866i666666666666866666666666i66665656666666i66666666666666666i866666866866666666i666666666666666666666666666656666668i66666666666i66666666666666566i6566666666666666666666665666665666666566666666666ii66666666666565668i866666i566( %%%% %%%% %% % %%%%%% %%%% % %% % 666666668666666666666666666i6566666666666666i666666666866666666666666666666666i666666668666666666866866666666666665¸º¸º¸º¸¸º¸¸¹¸¸º¸¸º¸¸º¸º¸¸º¸¸º·º¸¸¸¸·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸³¸···¸·¸·¸··¸··¸¸·¸······³···³·³·³·³····³³³K·³·K·K·KK·KKKKKKKKKKKK·J·J·JKKKKJ·JKJ·J·JKJKJKJJJKJKJJKJJKJJJJJJJJJHJHGJGGGGGFFFFFFFKKKKKKKKKKKKKKKKKKK+4O4O4+óüüüüþþüüÿüüþþüþþüþþüüüüüüüüüüüüüüüüóóóüóúóúüúúó1�Œ‹ŒŒ1óðóóóóðööúöööñöñöõöõìëöñëëððððóððððððððððððððððððððððð*‡‡*‡‡*ðïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÍÑÐÑÍÍÍÍÍÍÍÍÙÜÍÍØ×ÍÍÍËÍÍ*44444*Í­°ØÍËÍËÄÄÄÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄ×°°ÆÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÁÁ¦+&&+&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFGFGGGHGGHGJGHGJHHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþþþÿýþþÿþþþþþÿþúóóúóóó÷÷óóò¬}j=========!=========>============$=====>====>>=====>===========?=====>>>>>A======>==>>=>===>=>>>>==>>>===>A>=>==AA==>=>>=>CC>=>=>>>=>=?C>u”Ìèüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòx==!!$$!$$!!$$!!!$!!$$=$!=$!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! !! !!!!   !! ! !  #_ËóÿÿÿÿÿÿÿÿÿÿÿüÂ! !q¥õÿÿþÿþÿþÿþÿþÿýýþþþþþþþþþýýþýþæÓ³³³¸³³¸³³³¸³·³¸³¸³³¸³³¸³¸¸³³¸³¸³¸³¸³¸¸¸¸³¸¸¸¸¸¸³¸¸³¸¸³¸¸¸¸¸¸º¸¸¸656666666666666656666566666666666666666865866666666566666666i665i66666656666666666666i6666686665i6656666666666686666666666666666666666656666666668i86666666686666668i86666688666656566666566666666668666666666i666666666666666666566656666656666566656668666668656666655% %%%%%% %%%%% %% %% %% % % %%% %66656666666666566666686666665i66666666666666666668666666668666666666566666666866666566668665i66656666566666666656665666666666º¸¸¸¸¹¸·º¸¸¸¸¸¸¸¸¹¸¸¸¸¸¸·º·¸·º·º·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸·¸·¸···¸··¸·¸··³··³¸·³·³·³·³·³·K·K··K³KK³K³³K·KK³·KKK·K·K·K·KK·J·J·J·J·KJ·KJ·J·JKJKH·JJJKJJJJJKJJJJJJJJJJJJJHJJGJHGGGGGFFGFFFDKKKKKKKKKKKKKKKKKKK+O‡O‡O+üüüþþþþüüüüüþþþþþÿþþüüúüüüúüüüüüüüüüüúüúóúóüüüóú*‹Œ�ŒŒ*óóóòóóóööõöööõöõöõöõöñëëëëðóðóóóðððððððððððððòðððððððð*‡‡*‡‡*ÑïÑðÑïçÑðÑïðÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÍÐÍÐÍÐÍÝÝÍÐÝÍÍÍÍÍÍÍ*44444*ÍØ°ØÍÍÍÍÍÍÍÍÍÍÍÄÍÍÄÍÍÍÄÍÄÍÆ­°°ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÈÇ+&+&&+&+KKKKKKKKKKKKKKKKKKDFFFFGFFFFGGGGGGGGHGHHGHGHGJGJHHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþÿþþýÿþþþþþÿþþüÿü÷óóúóúóóúóò¬�?=======$$=======>=======>==$$==$===$======>A=========>================>>>CA====>===>>==>====>>====>A>==>=>>=>>=>>>>====>A>A=>C>>>=>>===>AACxƒÆá÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñx$=$!$$!!!!==$!===!$$=!!!$=$=!!!!!!$!!!!$!!!!!!!!!!!!!! !!!!!!!!!!! !!!!! !!!!!!!!!!!!!! ! ! !   @‚Èçóÿÿÿÿÿÿÿÿÿÿÿÿó–!!!      q¥íýÿþÿþÿþÿþÿÿÿÿþþþþþþþþþýþþýþýæ×³³³³³³³³³³³³¸³³³³³³³³¸³³³³³¸³¸³³¸³¸³¸³¸³¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸666566666666666666666666666668i6686656668665666666666666666666665656666666856666666666565656666566666666566565i566656866666566566566666666666668i66666i6566i5686666666i6566656666666668666666686666666666666666656666856566i6656666666565666666666666666666666i6666565 % %% %% %%%%% % %%%%%%%% %%( 6666668i66666656856i6665666666688666666666i6565666666666656666666666666666566666666656666656565i666666666666666666666i66656¸¸º¸º¸¸¸º¸º¸º¸º¸º¸¸¸º¸º¸º¸º¸º¸º¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸³¸¸¸¸¸¸·¸·¸·¸·¸··¸···¸·¸·¸····¸·············³··³·K·³K·³³K·K·KKKKKKKKKK·KKKKKKKKJ·JKJ·JKJK·J·JKJ·JKJ·JJJJKJKJJJJJJJJJJJHJHGHGGGGFGFFFFFFK³KKKKK³KKK³KKKKK³K+4O4O‡+üþþþþþþþþþüüþþüþÿüþþüüüüüúüüüüüþüüüóüüóóúóüüüóüó1ŒŒŒ‹Œ1òóóóóóóõî÷îööõöòöõöõöõëòëìðëðóóóðóððòðóððððððððóðòðððð*‡‡*‡‡*ðÑðÑÑÑðÑïÑððÑáïÑÑÑÑÑÑÑÑÑðÑÑÑÑÑÑÑÑÑÍÑÑÑÑÍÍÝÝÑÍßÞÍÐÍÐÍÍ*44444*ÍØ­ØÍÍÍÍËÍÈÍÈÍËÍÍËÍËÍËÍÄÍÄḬ́°×ÄÍÄÍÄÄÄÄÄÄÄÄÄÄÄĦ+&&&&&&+K³KKK³KKK³KKKKKKK³FFFFFFFFFFGGGGGGGHGJGHGJHHJGJHJHJHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþÿýÿýþþþÿþþþþþÿúó÷÷óóóúó÷óò¬�o=======!=============================>>=>=>===========>=>===>>=>=====>=>====>>=>==>>==>C=>====>>=>=====>>==>=>===>===>>C>==>>===>>=>=>>=C>=>=Cuƒ–ÆÌ×ßçñóõó÷÷ò÷÷÷ò÷÷ò÷÷÷÷÷÷òóõ÷÷÷÷÷÷÷÷ò÷õóõ÷÷ò÷÷òó÷÷õóõó÷÷õó÷÷÷÷÷÷÷÷÷òó÷÷÷÷õó÷÷ò÷óõó÷÷õó÷ò÷ó÷÷÷òó÷÷õó÷ò÷ó÷÷÷ò÷÷÷÷÷ò÷ó÷÷ò÷ò÷÷÷÷òóõ÷ó÷òóò÷ò÷òóõó÷òóò÷÷÷ò÷ò÷ò÷òóõóõóòóõó÷òóò÷ó÷ò÷òóòóõóòóòó÷õó÷òóõóòóòóòóõóòó÷óòóõóòóòóòóò÷òóòóòóòóòóòóõóòòóòóòóòóòóòòóòóòóòóòóòçÆ”ƒƒ–”–ƒ–”ƒƒ––ƒƒ––ƒƒ–”––ƒ––ƒ–ƒ…ƒƒ–ƒƒ––ƒ……ƒ–ƒ……ƒƒ…–ƒ‚ƒ…ƒ…ƒ…ƒ…ƒ„‚…‚……ƒ‚…‚ƒ…ƒ‚„‚…ƒ‚‚ƒ‚ƒ‚„‚ƒ„ƒ‚‚…‚‚…‚„‚„‚‚ƒ‚„ƒ‚„‚‚„‚‚‚‚‚‚ƒ…ƒ‚‚‚‚‚‚‚„‚‚„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚�‚‚‚‚�‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚�‚‚‚‚‚‚‚‚‚�‚‚‚‚‚‚��‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚�‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚�‚‚‚‚‚„–ÆÈÎáð÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿá_!   $qªõÿþÿþÿþÿþÿþÿþþýþþþþþþþýþýýþýþæÓ³³³³³¸³³¸³¸³¸³¸¸³¸¸³¸¸³³¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸³¸º³666666666666656i566666666i6656666665665666666566666666666666665666666666665666665665666666666666666656666666i66665666i666666666i6666665666i66666566665666668666666666656666656656i666666566665665665666666565666566866666i5566i6i6666666666666665665666566665656656666666 % % % % %%%%% %%%%% %% % %%% %(66666666666665i666666666666666i86656666866666i666666666i65665i6866666666568i66666666666666565666666666656666666i66666666i66¸º¸¸¸º¸º¸¸¸º¸¸º·º¸º¸º·º¸¸¸·¸¸·º·¸º·¸·º¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸¸¸¸¸¸³¸³¸·¸¸·¸·¸··¸·¸¸··¸·¸···¸···³··³·³·³··K···K·³·K··K·K·K·K··K·K·K·KKK·J·J·KK·JKKKKJ·J·JKKH·JH·JJJJKJKJJJJJKJJJJJJJJHJJGJGHGGGGFFFEFEKKKKKKKKKKKKKKKKKKK+‡4O‡O+þþüÿþþþþþþüþüþüþþþþþüüüüüüþüþüþüþüüüüüüóüüþüüüüü1ŒŒŒŒŒ1óóóóóóóööõöööõöõöõö÷ö÷ìõëëóëóóóóóðòðóðóóóóóóóóóððððððð*‡‡*‡‡*ððððððððððððððððïðÑÑïðïðÑïÑðÑïÑÑÑÑÑÑÑÑÑÑÑÝÝÑÑßÑÑÑÑÑÑÑ*44444*ÍØÝ×ÑÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ×°°ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÌ++&&+&&+KKKKKKKKKKKKKKKKKKFFFFFFFGGFFGGGGHGHGHGHHGHHHHJHHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþýÿýþþþþþþþþþþþýÿüúó÷óú÷ó÷÷óò¬Žo========$====$=========!$====>>==>CAA>=>>=============>>C==CCA>>===>=========>>>>>==>>>>=>======>=======>>>=>>==>=====>>>===>=>>A====>===>>>=A>>>>ZCZ]xxz{x{zx{zz{{{x{{ƒ{{xx{{yx{z{{ƒ{xx{z{z{xz{xx{z{xxz{zxx{{{{xxxxxx{{{{{{xxyx{xx{{{xz{x{{{x{xz{xxzxyƒ{{{xxxxzz{{{xzxxxz{xxxxxxxzxxxxz{{xxx{xxxz{xxxxx{xxzx{zxxxx{{zxxx{zxz{xxxxxxxxxxzz{zxxxzxxxxxxxx{zz{xxxxxxxxxxz{xxxxxxxxxxxzxx_xxxxxxxxxxxxxxxxxx_xx–ñüúú÷ú÷ü÷úúúú÷úú÷ú÷ú÷ú÷úú÷÷÷÷ú÷ü÷÷ü÷÷÷ú÷÷÷÷úú÷ü÷÷÷úú÷ü÷ú÷÷ü÷ú÷÷ú÷ú÷÷ü÷ú÷ú÷ú÷ú÷úúú÷úúú÷ú÷ú÷ú÷÷ü÷÷ú÷ú÷ú÷ú÷ú÷ú÷ú÷÷÷÷ú÷ú÷÷ú÷úú÷úú÷÷÷ú÷ú÷úúú÷÷÷ú÷ú÷ú÷ú÷ú÷úú÷÷÷÷÷÷÷÷÷ó÷÷÷ó÷÷ú÷÷÷÷÷÷ó÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷ú÷÷÷÷÷÷óó÷÷÷ó÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷óú÷÷÷÷÷÷÷÷÷÷ó÷÷÷óü÷÷óüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈY  ! $p¥íÿþÿþÿþÿþÿþÿÿÿþþþþþþþýþýþþýþýæ×·³¸³³³³¸³³³³³·³³¸³³³³¸³¸³¸³³¸³¸³¸¸³¸¸¸³¸¸³¸¸³¸³¸³¸³¸¸³¸¸¸¸¸¸¸¸¸¸6666666565666i5666566666656666i6866666666666656i6856666666666666666666666866556666666665565668666666666666666666i6656686665666566666i656668666666666i656686i6656i6666i566666566566666665666665656i65666666666666666566666666866566566666i6666666666666666665i66665666665% %%% %%%%%%% % % %% %% %%% %% 6(6i86665666666556666665666666666656666685686666656666666666666566565i6666665666668i866666666666666666666566655666i66666656¸¸¸º¸º·º·º·º¸·º¸¸¸¸¸¸¸º¸¸¸¸¸º¸¸¸¸¸º¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸³¸·¸·¸···¸··¸··¸··¸³··³¸··³·³··³·³³³·K³³·³·K·K³K³KK³K·KK·KKKKKKKKKKK·JKKKKKJKKKWKJ·JJKJKJKJKJJJJKJJJJJJJJJJJJJJJJHJJGJHGJGGGFFFFGFFFFKKKKKKKKKKKKKKKKKKK+O‡OO4+þþþþþþþþþþþþüüþüüþþüþüüüüüüüüþþþüüüüüüüüþþüüþüüü1�ŒŒŒŒ1úúóúóóóööýöööõöõëõöõöõöõööðöóóóóóðóðóóðóóóóóóðððóðóðóð1‡‡*‡4*ððððððððððððððððððïðððððððïÑððÑðÑÑðÑÑðÑÑÑÝÝÑÑÑÑÑÑÑÑÑÑ*44444*ÑØÝØÑÑÑÍÐÍÐÍÐÍÐÑÍÐÍÐÍÐÍÐÍÐÍÍÍ®°°ÍÍÍÈÍÍËÍÈÍËÍÈÍÍÄ+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFFGFGGGGGGGGJGGJGHHGJGHHJHJHJHJHJJJHJJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþþÿþÿþÿþþþþþþÿþúóóú÷óóúóóúò¬�o=====================>=======A===>=>========>=======$=>=====>=====>>==>=>=>=>>===>=======>>>>=>A===>>===>>>>===>=>>=>>=>>=>>>===>==>>>=>>=A>=>==CA======>>>===A>=>=A==>>>=>=>=A=>==>>==>===>=>>==>>>===>>==>>A>==>>>=>>==@C>====>=>=CA=>==>C===>>>==>=>C====>=>>==>==>>==>A=>==>=>>====>A===>==============>=====>====$$=>===>=$=============$$>====$==========$=$!=$===$$$=$===!$$$===$=$!$==!!$$$$$!$$!!x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ„;! ! 9qªõþÿþÿþÿþÿþÿþÿþþþþþþþýþýþýýþýþæÓ³³³³³³³³³³³¸³¸³¸³³³¸³³³³³³¸³¸¸³¸³³³³³¸³¸³¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸66i65665665656656665666666566666666666666566666666666666665666665666666666666566656666566666i866666666666666666566666668i6666666666i66666666866656i56666666568i66865666666666666656666666666666i666666666666666666666656666665666666666666666666i56666666i666666665666i(%%% %%%% % %%%%% % % %%%% %%%%(6666666656666666566666566666688666666666666i65666i666666666665666666666666666666866656666666565i6i5686666666666666666656i6666º¸¸º¸¸º¸¸¸º¸º¸º¸¸º¸º¸¸¸º¸º¸¸¸º¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸·¸¸·¸¸·¸··¸··¸··¸·¸·····················³·³·³··K·K·K·K·K·K·K·K·KKK·K·J·K·JKKKKJ·KWKKWKKKJ·J·J·J·JKJKJKJJJJJJJJJJHJJGJGHGGGFGFFFFDK³KKKKKKK³KKKKK³KKK+O4O4O+þþþþþüþþþþþþþüüüþþüþüüþþþþþüüþüþþüóüüüþþüþüüüüüü)ŒŒŒŒŒ+úóúóóóóööõöõöõöõöõö÷öõöõöõóõóóóóóóðóóðóóðóóðóðóðóððóðñ*‡‡*‡‡*ðððòðððððððððððïðððððððððÑðððïðïáÑÑðÑÑÑÑÑÝÝïÑßÑÑÐÑÎÑÑ*44444*ÑØ°ßÑÑÑÑÑÐÍÑÍÑÍÍÍÑÎÍÍÍÐÎÍÍÎÍÍͰ°­ÍÍÍÍÍÍÍÍÄÍÍÍÍÍÄ+&+&&+&+³KKKKKKKKK³KKK³K³KFFFFFFFFFFGFGGGGGHGHHGJHHGJHJHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþÿþþþþþþýÿþþþþýÿü÷óóóúóóúóóò¬�l=$=!$==============$===$$!$==>=$=====$$==>=>==>===>>============>=A=====>==>===$===========AA>>C===>>>ACACA>>=>>>=>>=>>>>>==>=>=====>>>===>=C>>>AC>>>>>>CC>>==l==>========CA=>C>>=====>>>=>C>>>==>>==>>==>=>>>=>=>=>>=====>C>=>==A>=>>===========>>>C>>>====>=>>>====CC=>CC>=A>>>===>>==>==>>==$===>========$$==>=====$$==$===========>>==========$$===$$!========$==$=!====$!=$===!$===$=$=!$$==!$$!!$$!$!xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð–Y !  ! =sªíÿþÿþÿþÿþÿþÿÿÿþþþþþýþýþýþþýþýæÓ³³³³³³¸³³¸³³¸³³·³³¸³¸¸³¸¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666656666666666i6666566666666666866i666666666566665656i6666666666666666666666666666666665i6666i66665666666666666666666566666566666666666666666566665666666i666i666666666666666i66i66666i6666666666666666666666i68668i6666666666656665666686668668666666i66666668655% % %%% % % %% % % % % % % %%%6668656666i6666666666666665666i666666666i68666666666666666666666666666566668566665666666666i66666666666656656666566666i666665¸¸º·¸¸¸¸º¸º·¸¸·º¸º¸·º¸¸¸·º·º·º·º·º·º·º¸¸¸¸¸¸¸¸·¸·¸·¸·¸¸¸¸¸¸³¸·¸·¸··¸··¸·¸··¸··¸··¸·¸··¸···³··³·³·K·K··KK·³KK·KK³·K·K·K·KKKKKKKKJ·KKKKKKKJKK·JKKKJKKKKJKJ·HKJJJJJJJKJJJJJJJJJJJJJJHJHGHGGGGGFGFFFFFKKKKKKKKKKKKKKKKKKK+4O4O‡+üþþþþþþþþþþþþþüþþþüüþþüþÿüþüþüüþüþþüþüþþþüþüüüüó1ŒŒŒŒŒ1üóúóúóóöö÷öýöõöõöõöõö÷öõöõóö÷úóóóóóóóóóóðóóóóóóóóóóóóó1‡‡*‡4*ððóóðóðððððððððððððòðððððððððððððïðïðïðÑïÝÝèïêÑÑáÑïÑÑ*44443*ÑÝÝÝÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑ×°°ÞÍÍÍÍÐÍÍÐÍÍÍÍË×+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFGGGGGGGGHGHGHGJHHGJHJHJHJJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýÿýþþþþþþþþþþþÿþúóúóúóóúóó÷ò¬Žj=!========================================>===C===================>>=>$=A>==>=====>>=$==>>>====>=====A>>>====>=====>===>>==>>===>==>C==>=>==C=>=>>=>==>=>>====>=>=>>>=>C==>>=C=>==>====C>=>=>>>==>>==>>=>>>>=>==>=>>C>====C>==>>>>==>===>>=====>===C=>===>=====>=>=$=>>=>====>>===>==>=>====>============>=====>===================>=$=============$=>==$==$!====$!====$$$=$=====!=!===!!=$$=!$$$$!$$$$==$=xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá‚Y!    !qªõÿþÿþÿþÿþÿþÿÿýýþþþýþýþýþýýþýþæÓ³³³³³³³³³³¸³³¸³¸³¸³³·³³¸³³³¸³¸³¸¸¸³¸¸³¸¸¸¸³¸¸¸³¸¸¸¸¸³¸¸³¸³¸¸¸³¸¸66666666566ii6668666666666i666666656666666666666666666i66665665666666666666666666666666666666i666656666666655666666666666656666666566666666666656i666666i6666666666666686i666i666i666i656666666666666i66i8666666i6566666666566i66666i5i66666i66666666666656666666i666((%%%% % % %% %% %% % % %% %%% %%% 66566666666666i566666666666i6666i666686i666666666i666666666i56666666666i56686566666666666666666665666666666666666566666i666¸¸¸º¸¸¸¸¸·¸¸º·º·¸·º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸³¸¸¸¸·¸¸·¸·¸·¸··¸··¸·³¸·³··³····³·³³K·³·³·³·³³³³·K³³K·KKK·KKKKK·K·K·K·K·KK·KK·J·KJKKWKKKKJKJ·JKJKJ·JKJKJJJJJJJJJJJJJJJJHJGJHGGGGGFFFFFFDKKKKKKKKKKKKKKKKKKK+O‡O4O+þþþþþþþþþþþþþþþþþþþþþþüÿüÿþþüþþüþþþþþþþüüüüþüüüü1ŒŒŒŒŒ1úóüóúóüööýöýö÷öõöõöõöõöõööúöóúóóóðóóóðóóóóóðóóóóóóóóòó*‡‡*‡‡1ððóðóðóóðóðóðóðóðòðððððóððððððððððïðÑððÑðÝÝïðßèðïÑÑïÑ*444431ÑÝÝØðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÑ­°°ÑÍÑÍÑÍÑÐÍÐÍÍÍ­+&&+&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFGFFGFGGGGGGHGHGHGHGJHGJGHHJHJHJJJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýþþþþþÿþÿþþþþþþýÿüóóóó÷÷óóúóò¬Žl$$=$==$========!$==A>============>============>===>=>==>C==>=======>>===CA==>>=>>>=>===>==>=====>=>===========>=>>=>>===>==>AA>=>>>C>=>>======>>===>=>C===>=>=>=A>=CC>>>C>==========>===>====>>>==>>==>>>CC>===>CA>=>>>>>>>==>>>=>===>==>CCCC>=>A>C==>=====>>===>>=$=>=======>===>>>============>>====>=>========================$===$=$$==$$===$=$$=A====!!===$==$===!=$!$!===!!=$!!$=!!!$==!!!==$=======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñË‚@! qªíÿþÿþþÿþÿþÿþÿÿþþþþþýþýþýþþýþýæÓ³³³³³³³³³³³¸³³³³³³¸³¸³¸³³³¸³³³¸³³³¸³¸³¸³¸³¸¸³¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666i5i6666i66666i66656666656666666566666666666666666666656666866i666i865666i6666666665666666565666666666666666666566666666i666656665666i666666666666(%%666666i8668666566i5668666i666i66666i66686866i66666i66566i66666666666666666656866666i666666666666666666i %% %%% % %% % % %%% %% % % %% 5666666666666666666666656i866666566666666i66656666566666866665656666666666666666666i6866666i666i6666666666666666666566i6¸º¸¸¸º¸º¸º¸º¸¸º¸º¸º¸¸º¸¸º¸º¸º¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸¸¸·¸·¸·¸·¸··¸··¸··¸··¸·¸····················K··³·K·K³·K·K··K·KKKKKKKKKJ·KJ·J·JKKKKKKKJ·J·JJKJ·HKJKJKJJKJJKJJKJJJJJJJJJJJHGJGGGGFGFFFFFFKKK³KKK³KKKKKKKKKKK+4O‡OO+þþþüþþþþþþüþþÿüþþþþþüþþþþÿüþþþþüüþþüþþþüüüüüüüüü+ŒŒŒŒŒ1÷üóüóúüöüöö÷öýöõöõëõöõöõöõóöóóóóóúóóðóóóóðóóóóðóóðóðóð1‡‡*‡4*ðóððóððóðððððððððððóðòðððððððððððïÑðÑðÑðÑÝÝðÑêèÑïÑðÑá1P4O44*áØÝßÑÑÑÑÑÑÑÑÍÑÑÑÑÑÐÑÐÑÐÑÎÑÐÑÍÑÍ×°°­ÍÍÑÍÍÍÍÎÍÐÍÍ­+&&&&+&+K³KKKKK³KKKKKKKKK³EEFFFFFFGFGGGGGHGHGJGHHHJGHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþÿþþþþýþþþþþþÿþúóúóúóóúóó÷ò¬Žo==$======$=====$========================!=======>=======C=$=====$=======C>==>A=====A=>===>=====>=======>=====>===>>=======>=>>===>>=>====>>==>>=>=>>==>>=>===>==>=>C>>==>C=>>==>===>=>=?>====>>=>===>=>=>>>====>>>>>===>==>=>======>==>==>==>>==>>===C=====>=====>====A===$==>A===>=======A=====>======>============================$$====$==!=====$====>==!===$!===!===$$!=====!$==!$$!==!$$$==!$$=!!==!!$=xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñÎ…_B;   !! $sªõþþÿþÿþÿþÿþÿÿþýþþýýþýþýþýýþýþæÓ³³³³³³¸³¸³³³³³¸³¸³³³¸³³¸³¸¸³¸¸¸³¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸66666666666666666666666666566666666i5i666666666666566666566666566i6686i66665i66i65666666665666i66666i66568666i5656566666i665666i66666666666666665(%(66665%'%(((((i86i56666666666i66666666i6i666566666i666666666666666566666666666666666666i66666666666686666666666i666%%% %% %%%% % % % % % % %% % 66666i66i66568i6666666665ii6666666666i8i666666666666666666666666666656666666666666666i666666566866656666666666666686666666¸º¸¸º¸·º·¸¸¸¸¸·¸·º·º·¸¸¸·¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·¸···¸·¸·¸··¸·¸··¸··¸··¸····¸·····³³··³·K·K··K³·K·³³³K³·K·K·KKKKK·K·K·K·K·J·KKKKKK·JKJ·JKKJ·J·JJJ·JJJJJWKJKJKJJJJJJJJJJJHJHJHHGGGGGGFFFFEKKKKKKKKKKKKKKKKKKK+O4O4O+þþþþþþþþþþþüþþþþþþþþþþþþþþüÿþþþüþþþþþþþþüüüüóüüü1ŒŒŒŒŒ1üüüüüüüüöýöýöõöõöõöõöõöõö÷úõüóúóóóóóóóóóúóóóóóóóóóóóóó*4‡)‡‡*óóóóðóóðóóðóóðóðóðóððððððððððððððððððððððêÝððãèðððððï*4444P1ïÝÝßáðÑðÑÑÑÑðÑÑÑÑÑÑÑÑÑÑïÑÑÑÑÑÑÑÑ×°°×ÑÑÑÑÑÑÑÑÑÑÍÔ++&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFFFFFGFGGGGGGGHGHHGHGJGJHJHJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþÿþþþþþþþþþýÿü÷óóóúóóú÷óò¬so=!$======!====$!===$$===>==$!===@==$=>>==========>======>====>=======A=======>====>=====>======>>=>=>===>=>=====>=>====>>A=====>>>>======ACC>=========>AC=>>=====>AC====>A==>=>CC>>C?==>>>>>==>>>>==>>=======>=====A>======>=>=>=>>>>CC>C=====>=====>>=>>=>>======>======$=>====$==>====>>>==>>========A=>>===============>=======$======$===$$====!!=!====$$=====$!$=====$==$!!==$$=!$=!=!!==!==!!!!$!ZÉááááááßáßáßááßáááááááßáááááááßáßáááááááßáßááÏáßáßááááßáßáßáßáááßáßáßáßÑßáßÑßááßÑßááßÑßáßáßÏßááßáßÏáßÏáßÑßÏßÏÏÏÑßáßáßÏÏßÑßÏÏÏÏÏßÑßÏÑßáßÑßÏÏÏÏßÏÏÏÏÏÏÏÏÏÏÏßÏÏÏÏÏÏÑßÏÏÏÏáßÏÏÏÏÏÏÏÏÏÑßÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÑßÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏßÏÏÏÏÏÏßÏÏÏÏßÏÏÏÏÏÏÏÏÏÏÏÏßÏÏÏÏÏÏßÏÏÏËÆ–„‚x_Y!  !   =qªõþÿþÿþÿþÿþÿþÿÿþþýþþýþýþýþþýþýæÓ·³¸·³³³³³³¸³¸³³¸³¸¸³³¸³³¸³³¸³¸³¸³¸³¸¸¸³¸³¸¸¸¸¸¸¸¸¸³¸¸³¸¸¸³¸¸¸¸¸¸6686666656666666666666666666666666666666i6665i666666666666666666666666666i866i56666666666566666666i6666666666666656666666566666666666666666666665%%%%665%%%%%%%%%%55666i66666666666566666666666665666566666666i66i666666666666665665666666666666666666866666666666%% % %% % % %%% %% %% % %%%6666666666666666666666666566ii8ii6666666668666666666i6666i656666666666666666666666656668686866666666666666666566666666666666¸¸·º·º·¸¸¸º¸¸¸¸¸º·¸¸¸¸º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸··¸·¸¸¸·¸··¸··¸·¸³¸·³¸·³·¸³¸··³··³³·³³·K·³·K·³³K·³KKK·KK·K·KK·K·KKKKKKKJ·JKKJ·J·JKWKKKKKJKJKJJKJKJJJJKJKJJJJJJJJJJJJJJHJJHJGHGGGGGFFFFFEFFKKKKKKKKKKKKKKKKKKK+4O4O4+þþþþüÿüþþþþþþþþüüþüþþþþüüþþþþüþþüüþþþþþþüþüüüüüü1ŒŒŒŒŒ+üüüüüüüöýîýöö÷öõöõöõëõöõööóö÷óóúóüóóóóóóóóóóóðóóóóóðóó*‡‡*‡4*óðóððóðóóðóðððòóðóðòðóðòðòðòðóðóðððððððððêÝððÝððððÑðÑ*44443*ïßÝßïïðÑïÑðÑÑÑðÑðÑïÑÑðÑÑÑÑÑÑÑÑÑÑÑ­°°ÑÑÑÑÑÑÑÑÑÍÍ­+&&+&&++KKKKKKKKKKKKKKKKKKEFFFFFFGFFGFGGGGGGGHGHGJGHJGHGJHJHJJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þÿþþþþþþþþþþþþþÿýúóóúóóúóóóúò¬�o=$===>=========$=====$==============================>===============>>=====>=====>===>==>==>===C===>===>=>=>=====>==>==>=>>====>C===>=>==>>===?=====>==>==>A===>=C=======>=>=>>A>=>>>===>=>=>===>==>>==>=>====>=>==>====A>==>=======>>==>>====>>===>===>=====C>$=C>=>=======>=>=====>===C======================================$=$=$========!==!$==$===$$$$==$$===!==$==!=$===$$$===!$====!!==9=!$!$!=!$$!==CYCYCZ@ZZZBBZZZCYCBBZZCYBBZZ@BBYBBCZZBBBBYBZ@@BZBBB@@ZBBB@B@BBB@BBB@B@BBB@@@CBBB@@B@@@@@B@@B@@@@@B@@@@@@@@@@@@@@@@@@@@@@@;@@@;@@@@@@@@@;@;;@@@@;;@;;;;@@;;;;;;@@@@;;;;@@;;@@;;@@;;@;@@@;@;@;;@@;;;;;@@@;;@@@@;;;;@@;;@@;;;;@@;;@@@;@;;;;@@@@@;;;;;@@;@;@;;@@!! !     wªõÿþÿþÿþÿþÿþÿÿþýýþýýþýþýþýýþýþæÓ³³³³³³³³³³³³³³¸³³³³³¸³³¸³³³³³³¸³³³¸³³³³¸³¸³¸¸³¸³¸¸³¸¸¸¸¸³¸¸¸¸¸³¸i56666656666666666666666666666666666666666i6656i66666i66666666666i66666666666666666666666666665666666668666566666i666665666666666666666666566655%%%%'6%%'%%'%%%%%%6i666666666656666656666666666666666666666666666i66666666566666666666666666686666666i6i66666666566%%% % %%% %% %% % % %%% % %%%%% %%65(5666666i66666665666666666i866666686i666666666656666666566666665666i666666665666i86666i6666666i566666666566666666666i66º¸º¸º¸¸º¸¸·º¸¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸·¸¸·¸·¸¸·¸·¸·¸··¸··¸·····¸··¸·······¸····³·········³··³····K·³K·K·KKKK·K·K·K·KK·KK·J·J·KKJ·J·J·J·JKKKJKJ·J·JJJKJKJJJKJJJJJJJJJJJHJGHGGGGFGFFFFDK³KKKKKKKKKKK³KKK³K+4O4OO+þþþüÿþÿþþþþþüþüþþþþüþþþüüüþþþþþüþüþþþþþüþüüüüþüý*ŒŒŒŒŒ1üóüüüüüüöúöööõö÷öõöõëõöõöõ÷÷óóóóóóóóóóóóóóóóóóóóðóóðóð*4‡*‡‡*ðóðòðððððóððóðððóðððððððóððððððððððððððððêÝïðßèÑðÑïïÑ*44434*ÑÝÝØÑÑïáÑÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÑÑÞ°°­ÍÑÍÑÍÍÑÍÎÍÔ+&&&+&&+³KKKKK³KKKKKKK³KKKEFFFGFFFFGFGGGGGHGHGJGJGHJGJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþÿþþþþþþþþþþþüÿüúóóú÷óóúóóò¬�j!======!!==$$===========$!$======$==========$===9=$=>==========A>=====$$==>=====>===>======>==>>>=========>=>====A>>====>=>C>===>======A>=====>C>>>=======>>==>>>>=>>====>>>A>=C>==>>=>=====>>>>==>>C>==>=>>==>>>=======>CA>>>>=============>>====?==$=======>=$=>>>====>==C>>=>>==>====>====$====>>====$===========$====$========>========>>>=======>>=======!!$$$==$!!$==!===!!!!!$====$!!$===$!!!$!!!!!!!==$$==!!!!!!!!!!$!!!!!!$!!$!!!!!!!!!! !!!!!!!! !!!!! !!!!!!!!       !  =}ªíþþÿþÿþþÿþÿþÿÿýþýþþýþýþýþþýþýæÓ³³³³¸³³¸³³³³¸³³³¸³³¸³³¸³³¸¸¸³¸³¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6i6666566i66i6666666656i666666666666i6666666i6656i6566i8666666666668666666666666666668i6666665666666666666566656666666666666666666666666666565%%%%%'%%)%%%'%%%%%'%%%%66i66666666666666i6666668665666666666666666i6666666666666666666666666666666666666666666ii66( % %%%%% %% % % %% %% % % % % % %56% (666566666656i666i66666666i65i66666666666566666668656665666666666666666666666566666i666i665665668666i666665666666666¸¸¸¸·¸¸º·º¸¸¸¸¸¸º·º·º·¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸¸¸¸¸¸¸³¸·¸¸·¸·¸·¸¸·¸¸·¸·¸¸··¸¸·¸·¸¸·¸··¸··¸·¸····³·³·³··K··K³·K·³K³K³·K·K·KK··K·KKKKKJ·KKKK·J·JKKJKKKJ·JKKWKJ·HKJ·HJJJKJKJJKJKJJJJKJJJJJHJJHJGGGGGGFFGFFFFKKKKKKKKKKKKKKKKKKK+O4OOO+þþþþÿþÿþþþþþþþþþþþþþþþþþþüþþþþþüüþþþþþþþþþþüþüüü1ŒŒŒŠŒ1úüüüüóüöýööööýöúöõöõöõëõööó÷÷óóóúóúóóóóóóóóóóóúóóóóóóó*‡‡*4‡)óóóóðóóóóðóðóðóðóóóóóðóðððòðóðòððòðððððððÝÝððêâðððððð*43444*ïݰÝïáïÑïïÑÑÑÑÑðÑÑÑÑðïÑÑÑÑÑÑÑÑÑÑÑÑØ°¦ßÑÑÑÑÑÑÑÑЭ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFGGFGFGGGGGHGHGHGJGHHHJHJHJHJJJHJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþþþþþþþþþþþþþþÿóóóúóó÷÷ó÷÷ò¬Žo==$=$==$===$=======$$9===$======================>=======================================>=>=======>=====>=>>====>>==>>====>>===>===>===>=>===>=>>====>>===>==>=>A===>===>>===>>=====>>=>==>>====>A====>C>>===>======>====>====>>=======>======>=>==========>>========>====>===>>=================>====$=$=========$====$$=====!========$!=============$$==!==$$$$=$!=!$=$=$==!==!=$$$=$!$!!=$!$!!$!!!$=!!$!!$!!!$!!!!!$!!$!!!!!!!!!!!!$$!!$=!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!    =sªõÿþÿþþÿþÿþÿþÿþýýþýýþýþýþýýþýþæÓ·³³³³³³³³³¸³³¸³¸³³¸³³¸³³¸³³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸³¸³¸¸¸¸³¸¸¸¸¸³¸³¸¸656666i665666666666666666665665666666666666665666665i6i66668665656666666666666666666i66666666i666666666666666666666666666666666656666i8666(%%('%%'%'%'%%'%%'%%%%'%%%%%6556666i66666666666666666666666566666666666666666666666i6666666666666666666i666666i666666(% % %%%% % % % %% % % %% % % %% % % %% % i6666666666666666656666666666666i666666666656666666666666666666668666666866666566i6666666666666666656666666666i86666i86¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸·¸¸·¸¸¸¸·¸··¸···¸····¸····¸·³·¸³··³·····³·³·K³·K·³·K³·K³³³³³K·KK·KKK·KKKKKK·K·K·KJ·KKJ·KKK·J·JKKWKJKJKJKKJJJ·JJJJJJJJJJJJJJJJJJJHJJHJGHGGGGGFFFFFFDKKKKKKKKKKKKKKKKKKK+4OO4O+þþüÿþÿþÿþþüþþþüþþþþþþþþþþþüþþþþþüþüþþþþþþþüþüüüú1ŒŒŒ‡Œ1üüüüüüüüöüöýö÷öõöõöõëõöõö÷óóóóóúóóóóóóúóúóóóüóúóóóóðóó)4‡*‡‡1óóðóóððóðóðóðððóðððóðóðóðóðððððóðððòðòðððêÝððãèðððððð*44434*ð°ÝÝïÑïïÑÑðÑðÑÑÑðÑðÑÑÑÑðÑÑÑÑÑÑÑÑÑÑÑÔ°°ÐÑÑÐÑÑÑÑÍÔ+&+&&+&+KKKKKKKKKKKKKKKKKKFFFFFFFFFFFGGGGGGGHGHGHGHGJHGJGJHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþþþþþþþýÿüú÷óóúóóúóóòÕ�o=!=!$=!!$=!=$!$==============$=====!=====$=====>C=$=======>======>AA====>=>>>===>=>=>C>==========>=>=>A>==>AA>>==============>=>>>>>====A>=========>=>>==>>====CC>====>>>>=====>=====>A>====>=>===>===>A>====AA>>===>==>>======>>=====A>=C=====A================>>==>C>=====>===>==$$==>========$==>==$========$=>=>==========$!====$!!$==!=$!!!!====!=!!$==!!===>=!!$=====!!=$!!===$!!==!!!==$=$!!!=$!!$======$!!!!!!!!!$=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!! !!!!!!!  !!!!!!!! ! !    !  $qªíþþÿþÿþÿþÿþÿÿÿþþýþþýþýþýþþýþýæÓ³³³³³³³³³³³³³³³³¸³³¸³³³¸³³¸³³³³³³¸³³¸³¸³¸³¸³¸³¸³¸³¸¸³¸¸¸³¸¸¸¸¸¸¸666656666666666666666666666666666i5666666i6666666i6566666666i6666665666666666666665666566666686686666666666666566i66i666666656666666%'%%'%%'%%%'%%%'%%%'(%'%'%%%'%'%%%%%66656666i56666656666666666i666666566666666665656566666666656666666666i6666666666686%% %% %% %% %% % % % % % % % % %% % % %%666665656566666666666666666666i66666666665666666i66666666666666666666666666666565666666666666666666666666666i666i5666i¸¸¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸·¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸·¸··¸·¸·¸¸·¸·¸·¸¸··¸¸···¸··¸··¸·················³··³··K³·K·³K·K·K·K·K·KKKKKKK·J·J·J·JK·JKKJ·JKKKKKKJ·HKJJKJKJKJKJKJJJJJJJJJJJJHJHJGHGGGGFGFFFFFFK³KKK³KKK³KKK³KKKKK+O4OO4+þÿüþÿþÿÿüþüþþþþþþþþþþþþþþþüüþüþüþüüüüüþþþüþüüóüü1ŒŒŒŠŒ1óüóüüóüöö÷öööúöõöõöõöõëõöîüõóóóóóóóóúóóüóóóóóóóóóóóðóð1‡‡*4‡*òðóðóðòðððòððóððòðóððððððððððððððððððððððÝÝððÝððïðÑÑï*43443*ÑݰØÑáÑÑáïÑÑÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ×°¦°ÑÐÍÑÍÍÍÍ­+&&&&&&+K³KKKKKKKKK³KKKKK³EEFFFFFFFFGGGGGGHGHGJGJGJHJGHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþÿýþþþþþþþþþþþþÿ÷óóúóóúóóúóò¬�o$=!$===!=====!==========$$=====!===$============>=====>=$=>=======>>====>>===>=======A===>======>==>=>>====>>=======>====>====>=====>==>>=====>===>=======>====>======>=======>=>====A>====>>=>===>===?=======>====>==>==>====>>=====>>=======>A=$=>===========>=====>>=====>================================================$=$===$=======!===$===$$==$===!!$=====$$==!!=====!$$=$!$!!=$!!$=!!$=!!!!!!$$!$!!!!$!!!!$!!!!!!!!!!!$!!!!!!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!    !    !=s¥õÿþÿþþÿþÿþÿþÿýýýþýýþýþýþýýþýýæÓ³³³³³³³³³¸³³¸³³¸³³³·³³¸³³¸³³¸¸¸¸¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸666666666666656666666666666666666666666i6i6666666666666566666666i665i666668i66666666666i6666666666666666666686666666666666666i666666665%%%%%'%'%'%%%%%%%%'%%%%%%%'%%%'%'%%'%%666666666656666666666665666666666656666656666666666i666666i8656666666i66666666i566( %% % % %% % % % %% % %% %% % 666i6666666i6656665666666566666666i666666666665i666666668i6666666666686666665666i6666666666866666666666666666666666666666¸¸¸¸¸¸¸·º¸¸¸¸¸¸·º·º¸¸¸¸¸¸·¸·¸·¸·¸·¸·¸¸¸¸¸¸¸·¸·¸¸·¸¸¸¸·¸·¸·¸·¸·¸····¸···¸·¸·¸··¸·····³····³··K·K·³K³·K·K³³·K³³K···K·KKKKKK·K·K·KK·JK·KKKK·J·JKKJ·J·H·JKJ·KJKJJJKJJJJKJKJJJJJJJJJHJJHJHHGGGGGGFFFFEKKKKKKKKKKKKKKKKKKK+OO4OO+þþÿüÿüþþþþþþþþþüþþþüþþüÿüþþüþþþþüþüüüþüüüþüüüüüü+ŒŒŠŒŒ+üüüüüüüöýööüöõöõöõöõöõëõöõüõóóóóóóúóúóóúóúóóóóóóóóóóóó*4‡)‡‡*óóóóóðóðóóðóððóóðððððóðòðððððòðððððððððððêÝððâèðððððð*44344*ðÝÝÝïïïïÑïðÑïÑïÑÑÑðÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑØ°°×ÑÑÑÑÑÑÍÔ++&&+&&+KKKKKKKKKKKKKKKKKKEEFFFFGFGFFGGGGGGGHGHGHGHGJHHJHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýþþþþþþþþþþþþþþýÿü÷óóúóóú÷óóò¬so==========$$$===9====$!!=$$=========$=====!$==========A==>=>=========$$===========>====CCA>========>============>>====>==A>========>>====>>===>C==>C==>===>>=>===>>>>>>====>>>=>========CC=>====C===>C==>CC>====>>==============>>>>=========>>===C>>>======CCA==========$===>==>>>====$===================$====>===!$!!=>======>===========$!!!==!==$!!!====$!!!$=!$==!!$$!!!=$!=====!$$$=$!!!!!!$$$!!=!$$!!!!!!!$!$$$$!!!=$$!$!!!!!!!$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !   !! !!q¥íþþÿþÿþÿýÿþÿÿÿýþýþþýþýþýþþýýýæÓ³³·³³³¸³³³¸³³¸³³³¸¸³¸³³·¸³¸³³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸³¸¸66666666666i666666i686666666666666i66666666666666666666666666666666666666i686666i8i6666ii666666666i6666666666i66666666666666666666666'(%%%%%%%%%%'%%%%%%%%%%%%%%%%%'%%%%%%%%6666666666666i6666i66666666666666i666666666666i666666665i66666i6i666666666666i6666666% % % % %%% % % % % % % % %%% % %5666666666i6ii6666666666666i666666i666665666666666666666i66666666666ii6666666666666i6666666668i666665i666666i6i66666666i¸¸·º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸¸³¸¸¸·¸·¸·¸·¸··¸·¸··¸··¸·¸··¸·¸··³¸·³··³··³·³·³·³·³·³·³³K³³K·³³³K·³KK·KKKKKK·K·K·KKKKJ·JKKKKKKKJKJ·JKKJ·HKJKJKJJJKJJJKJJJJJJJJJJJJJJJJHJHJHGJGGGGFFFFFFFDKKKKKKKKKKKKKKKKKKK+O4OOO+þþþþþþþüüþþþþüþþþþþþþþþþþþþüþþþþþüüüþüþüüüüþüüüü1Œ‡ŒŠŠ1üüüüóüüõöýöööýöõöõöõöëëõëöüöüóóóüóóóóóüóóóóóóóóóóóðóóó*‡‡*‡4*óóðóóóðóðóðóðóððóðóðóððððóðóððóððóðððððððÝÝððèðððððïð*43443*ïÝÝßðÑáÑïÑÑÑïáïÑðÑÑÑðÑÑðÑÑÑÑÑÑÑÑÑÑÑÐÑÔ°°ÑÑÐÑÑÍÍ×&&&+&&&+KKKKKKKKKKKKKKKKKKDFFFFFFFFFGFGGGGGGGHGHGHJGHGJGHJGJHJJHJHJHJJHJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×ÿýþþþþþþþþþþþþþþÿúóúóó÷úóó÷úò¬Žo7=!!===$==!====!========$!========================$=========>===========$$=========C====>>>==>==================>========>>==========>=>===>====>=>=>>=====>===>===>==>==>==?==>====>>===>====>=>====>>===>=====>=>=========>==========>=============>=====$=A==>======>====>=====>===============$$=========$===A==$=$$=======$=====!$====>=!$==!$==$$$$==$!=$$$$=!!==$=$$=$$=!==!!!!$!==!!$=!!!==!!!$!!$=!!!!!!!!!!$!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !!!!!!  !!!   !     !=q¥õÿþÿþþþÿþÿþÿÿýýýþýýþýþýþýýýýýèÓ³³³³³³³³³³³³³³³¸³³³³³³¸³³³³¸³³³³¸³¸³¸³³³³³³¸³¸³¸³¸³¸³¸¸³¸¸³¸³¸¸¸6i666i56666666666666666666666666i6666i8666666666666666666666666i66i6666566666666i666666i66666666666i66668666666666666666666666666666666%''%%%%%%%%'%%%'%'%%'%%%'%%%%%%%%%%%%%%66666666666666666666666666666666666i666666i66666i66666666i6i666i66666666i6i6666666666%%%% %%% % % % % % % % (666666666666i6666666666666666666666668i66665666i6666666i666666666666666666i666666666666666666i6666666i6666666666666666666º·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·º¸¸·¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸·¸·¸¸¸·¸¸¸·¸·¸·¸·¸·¸·¸··¸··¸·¸·¸¸··¸·¸·¸··¸··············³··³···K·K·K···K··KKKKKKK·K·KK·K·J·J·J··JKKWKKJ·KKJ·J·JKJKJ·JWKKJKJJJKJJJJJJJJJJJHJHGGGGGFGFFFFFFKKKKKKKKKKKKKKKKK³K+4OOOO+þþþþþüþþüþüþþüþþþþþþþþþÿþþüþüþþüüþüþþüüüóüüüüüüú1ŒŒŠŠŠ1üóüóüóüööîöýö÷öõöõëõìõëëöõü÷úúúóóóóóóóóóóóóóóóóóðóðóðó*4‡*‡‡*óðóðóðððððòðððððððððððóðððððððððððððïððððÝÝððððïðïÑÑÑ*344331ÑßÝàÑïïÑïáïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÞ¦°­ÍÑÍÍÐÎÍ+&&&&&&+³KKKKK³KKKKKKKKK³KEGFGFFFGGFGGGGGHGHGJGHJGHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþþþþþþþüÿüóóóúóóóúóóò¬so!$=!==========$!$=$!==========$$======$======!$==!==$======$===============>=================>========>===>>=>AA=>=>=>==========>=>=>===>>===>=>A>==>========>C>=>===$===>C===============>====>>==>=CA========>>>A====>==>=>>=>C>======>===>======>>>====>==>=====$=======A=$==$==$=================$=======$==============$$!!$!$$$$====$======!!$$=====$$!======$===!=!!==!!$!!$==$!$===!!!!$$!==$=!!!!!!!$!$==!!!$!!!!!=$!!!$!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   !  ! =s¥íþþÿþÿþÿþÿþþÿÿþþýþþýþýþýþýýýýæÓ³³³³³³³³³³³¸³³³³¸¸³¸³³¸³¸¸³³³¸³¸³¸³¸³¸³¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666i6666666666666666666666666666i66666i66666666666666666666666666666666666666666866666666i66i666i66i66i66i6666666666666666666('%%%%%%%%'%(%%%%'%%&%%%%%%'%%%%%%%%%%%%(666666666i66666666666666666666666666666i5i6666666666i666i6666i6666666666i6666666 %%% %% % % % % % ((666666666666666656666666666666666666666i6i66666i6666666666666i666666666668i6i666666666666666666666i66666666666666666666¸¸·º¸¸·¸¸¸¸¸·¸¸¸·¸¸¸·¸¸¸¸¸¸¸·¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸¸¸¸·¸···¸···¸¸··¸·······¸·······³··³···³·³··K··K·³·K·K··³K·K·KKKK·K·K·K·KKK·KKKKKK·JKKJKJ·JKKKKJJ·JKH·HJJ·HJJKJJJJJKJJJJJJJJJHJHJGHGHGGGGFFGFFDKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþüþþþüüþþüþþþþþþþþþþþüþþþþþüþþþþþþþüüüþüüüüüü1ŒŠŠŠŒ1óüüüüüüööúööö÷öõöõëöëõëõëöüîüóüóóúóóóóóóóóóóóóðóóóóóóó*‡‡)‡4)óóóóóóóðóðóóðóðóóðóðóððððóðððòðððððððððððÝÝððèððððððï134443*ðÝÝßððïðÑïÑðÑðïÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑØ°¦ØÑÑÑÑÍÍ+&+&&&&+KKKKKKKKKKKKKKKKKKDFFGFFFGFGFGGGGHGHGHGHGHHHGJHJHJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþþþþþþÿ÷óúóó÷úóóó÷ò¬Žo=!$$$===$======$===!======$$===$$=$$===========$$=$=========$====$==$======>===>===$=================>=>======>>====>>==========>===A==>==>=====>======>=>=$=C=====>=$===>===>===========>>====>>===>>>===========>==>==>>===>==>==$>>==>>===>======>========$==========>=$>===$!=======>===$=>===$==========================!==$!$======$$$!===$!$!===$==$!$$!=====$=!=!$!!==!!!$$=!$!=$=!!$!$=$!!=$!$$!!!$!!$$!$$!!!!!!!!!$$!!!!!!!!!!!!!!!!!!! ! !!!! !!!!!! !!!!!!! ! !!       =s¥õÿþÿþþþþþÿþÿÿýýýþýýþýþýþýýýýýæÓ³³·³³³³¸³³¸³³¸³¸³³¸³³¸³³·³¸³¸¸³³³³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸³6i666666566666666666666666666666666i8666666666666666666666666666666666666i6666666i6666666i66666666i666666666666668i66666666666i666666%%(%%%%%%%% %%'&%%%%'%%%%%% %%%%%%'%%%'%%%(566666666666666i6666666666666666666666666666666i6666666666666666666666686666666666% % % % % % % % % % % %% 66666i6666666i66i6i6666666666666666666666668666666666666666666666666i8666666666666666666666666666666666666666666666¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸·¸¸¸¸¸¸¸·¸¸¸·¸··¸¸·¸··¸·¸·¸·¸·¸·¸···¸·¸¸·¸·³··³··³·³··³·³··³·K·K³³K³³³K³·K³K³K·K·KK·K·KKKKKKK·KKK·J·J·JKKWKKKKJ·JKJ·JKJKJKJKJJJKJJJJJJJJJJJJJJJJJJJHJJGJGGGGGGFFFFFFKKKKKKKKKKKKKKKKKKK+4OOOO+þþþþþüþüþüüüþüþþþþþþþþþþþþüüþþþþüþüþþüüüþüüüþüüü1ŠŒŠŠŠ1üüóüüüüööööüöúöõëöëõëõëõö÷óöüóóüóóüóúóüóóóóðóóóóðóðóðó*4‡*‡‡1ðóóðóðóðóðóððóðóðððððóðòðððóðððóðððððððððÝÝðïãèððððÑð*43434*ïÝÝßðÑðÑðïÑïÑÑÑçÑÑÑðÑÑÑÑÑÑÑÑÑÎÑÑÑÑÑÑÑÑѦ°°ÌÑÍÑÍ×+&&&&&&+KKKKKKKKKKKKKKKKKKFFFEFGFFFFFGFGGGGGGHGHGJGHGJHGJGHHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþþþþþýÿü÷óóúóóúóúóò¬�o!!===!!!=$$!=$!$=$!===!===========$$====!!$====$=$$========$$==========>=A===>=====>==$==============>=>====>===>====A>>A=====>>>==========>=======>>>=>===C===>>=>>=>=>A=$=>==>=A>=A=======A=>=======>>>=>===CC>=>====>===A=======>>=$=>>=>====>==$=>====>======>C>$===!$=======>=$==>A===$====$$$================!$$=======>========$!!=!=!=$=$=$$====!!$$$$=!$=!$!!$===$=!!==!!$!!$!!$$====!!$!!!$=!!$$!!!!!!!!!!!$==!!!!!!!!!!! !!!!!!$!!! !!!!!!!!!! !!!!!!!!!  !! !     !!  ! =q¥íþþÿþÿÿÿþÿþþÿÿýþýþþýþýþýýþýýýæÓ³³³³³³³³³³³³³³³³³³³¸³³¸³¸³³³³³¸³¸³³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸³¸¸³³¸¸¸6666666566i66666666666666666i666666666i66666668666i6666666666666666666666666666666i666666i66666666666666666666666666666666i666666666%%'((%%%%%%%%%%%'%%%%%&%%%%%%%%%%%% %%%%%&%%(i66666666i666i6666666666666666668i6i6666i666666666i6666666666666666666i6i6666i666 % % % % % % % %% % % % % 66666666666i6666666666i66666666666i6i66ii68i666666666666666666i666i66666666666i666666666666666666666666666666666666666¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸¸¸·¸¸¸·¸¸¸·¸·¸¸·¸·¸·¸···¸·¸·¸·¸·¸····¸·¸·¸··¸·¸···············K··³··³·³·KK·K³K·K·KKK·K·K·KKKKKKKK·J·J·KKKJK·JKKWKJ·JJKJKJ·JKJKJKJKJJJJJJJJJJJJJJJHJHGJGGGGFGFFFFFFK³KKK³KKKKK³KKKKKKK+OOOOO+þþþþþüüüüüüüüþüþþüþüþüþþþüþüþþüüþüþþüüüüüüüüüþüü+ŠŠŠŠ‡1üóüüóüóõöýöõöýöõöõëõëëöõëîüõúóúóóóúóóüóóóóóóóóðóððóððð*‡‡*‡4*ððððððððóððòððóððóðóððððóðððððððððððððððïÝÝððÝèïðÑÑðÑ*44343*ÑÝÝÝÑïÑáïÑÑáïÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÍÑÍÑͰ¦ÔÍÍÍÍÔ+&&&&&&+K³KKKKKKKKK³KKK³K³EFFFFFGGFGGGGGGHGHGJGHHJGHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþþþþþþÿ÷óóúó÷÷óóóóò¬�m=!$!$$!$$$$!==!$$$$==!$!===============$$!$======$!===========!=C===@======>======>========$=====$===========>===>===>>=========>=>=========================>=====>=>C>==C=====A>=>========>>>C=======>=A==>>==>C=======>====>===>==========>>===========>===>====>A>=========$=====!=A======$===========$======$$==$==$==!======>=$!$==$==!$$==!=!=!===$!!==$=$!!!==$=!$==$!$!$!$$$$!!!=!$!==!=!!!$!!!!=!!$!!!!!!!!!!!!$!!!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !!!!     !! $s¥õÿþÿþþþþþÿþÿÿýýýþýýþýþýýýýýýþæÓ³³³³³³³³³³³³³³³³³¸³·³³¸³³¸³¸³³³¸³¸³¸³³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸66566666666666666666666666i66666666666i666686666666666666666666666665666i6666666566666666666666666666666666666i666666666666i66666666%%%(%%%%'%%%&%% %% '%&%%%&%%%&%&%%%%% %%%%%%%6666666666i66666686i666666666i6666666666668i6666i5666i66666666i6666666i86666666666 % % % % % % % % % % %%56666666666666666666i666666666666666666666666666i66666666665i666666666i666666666i6666665666656666i666i666666666666666¸·¸·¸·¸·¸·¸·¸·¸·¸·¸·¸·¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸·¸·¸¸³¸¸·¸¸·¸¸·¸·····¸···¸·¸······¸···³·········³·³K³·³·K·³K³K·····K··KKK·KKKKKKK·K·KK·KKJ·KKKJ·J·JKKKKKKKJK·J·JJJJJJJKJJJJKKJKJJJJJJJJJHJHJHGGGGFGFFFFFDKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþþþüüüüüüþþþþþüþþþüþüþþþþþþþüþþþþüüüüüüüüüüþü1ŠŠŒ‡Œ+üüüüüóüööîöýö÷öõöõëìëõìõööóöóüüóüóúóóóóóóóóóóóóóóóðóóó)4‡*‡‡*óóðóóóðóóðóððóóóðððððóðððððòðððððððððððððÝÝðïãèðððððð*43434*ïÝÝÝððïðïðïïÑïïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÏÑÑÑÑÑÑ×°¦ÞÑÑÍ­+&+&&&&+KKKKKKKKKKKKKKKKKKFFFFFGFFFFGFGGGGHGHGHGHHGHJGJHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþþþþþþþýÿüúóóúóóú÷úóò¬ŽC==========$$$=======!==========!!====!====$===========$=======$$==$$==$=$$===$=======!=======>================>=$=====$===>==============>A===>=====>>======C===>========>===>=A>====>>A====================>>=======>================>=============>=$$=>===================$==>===$=>========$$=>=>==$!$$$=$==$$====$======$$!==$$========$!========$=$$===!$!$!!$!$$!$=$!!=$=$!$=!!!!!!==!!!$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!! !!! !!!!       =p¥íþþÿþÿþÿþÿþþÿÿþþýþþýþýýýýþýýýæÓ·³³³·³³³³³¸³³¸³¸³³¸³¸³³¸³³¸³¸¸³¸³³¸¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸³¸¸¸¸¸¸66666666666i666666666666666666666666i6666666i666666666566666666666i666666656666665666666i666i666666666666i66566666666666666666i6665(%%%' %%%%%%%%%%%%%%%%%%%%%% %%%%% %%%&% %%((66666666666666666i666666666665i566666i66666566666666i666i666i66666i6666566i66666666 % % % % % % % % % %%666666666666i8i66666656i666656666856666i666666666666666666666666666i66i6666666666i666666666i66666i666666666666666i6i66i·¸¸¸·¸¸¸¸¸¸¸·¸¸¸¸¸¸¸·¸¸¸¸¸¸¸¸¸·¸¸¸·¸¸·¸·¸·¸·¸··¸¸········¸·¸···¸¸·¸·¸·¸¸·³·³·³·³·³··³·³··K³³³³K·³³K³K·K³KKK·KKKK·K·K·K·K·KKKK·JKKKKJKKKKKKJ·J·HKJKJJWJJJKJ·JKJJJJJJJJJJJJJJJJJHJJHJGHGGGGGFFFGFEFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþþþþüþüþþþþþüþüüþþþüþüüüþþþüþþüþþüþüóüüüüüþüþ1ЇŒŠ‡1üüüüóüóööõöúöúöõöõöõëõëöööúöóúóóóóóüóüóóúóóóóóóðóóóðóó1‡‡*44*óðóðððóðóððóóððððóðóðððóðóðððóðóððòððððððÝÝððÝððððïðÑ133434*ÑÝÝßïÑðÑÑïÑÑïÑáïÑðÑðÑðÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÐÑÐÑ­°¦ÞÐÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFGFFGFGGGGGGGHGHGJGHJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ÿþþþþþþþþþþþþþýþÿóóóúóóúóóó÷ò¬sj======$=$!==$!=!====!=====$====!====!=!===$===$======$$=====$=======$=============$===!=>==========>========>A=====>====================A>===>>====>=====>>=====A===$=====>===C>====>========>===========$=>================A==>=====A=====$======>=============>======================$===!==!=========!====!$$!=====$=====!$=$=!==!!$====$!========!======9!=!!$$!!!$!$$!!$=$$!!!!=$!!!=!!!$!!!!!!!$!$!!$$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!  !! !!!!!!!!!!!!!!!!!! !!  !     $qªõþÿýÿýÿýþþÿþÿýýýþýýþýýýýýþýýýæÓ³³³³³³³³³³³³³³³³³³³¸³³¸³³³³³³³³³³¸³³³³¸³¸³¸³³³³³³³¸³¸³¸³¸¸³¸³¸³¸66666666666i66i6666665666666666666i6666666666i66666i666665i6ii86666666666666656666666666666666668666666i6666666666666666666i66666665'%%%&%%'%%%%%%&%%&%%%%%%% & & %%&%%%&%%%%% %66666i6666666666666666666666666666i6666i86666666666i666i5666666666866i6666i6666i6i6i6 % % % % % % % % (6666666666666666666666i6666666i66i6666666666666666666666666i66666666i6666i666666666i666666i6i6666566666666666i666666i6·¸·¸¸¸¸¸·¸¸¸¸¸·¸·¸·¸¸¸¸¸·¸·¸·¸·¸·¸¸¸·¸·¸¸·¸¸·¸·¸··¸·¸·¸·¸·¸·¸·¸····¸······················K··³··³·K··³·K···KK·K·KKKKKKKKK·KKK·K·J·J·KKWKJ·JKJKK·J·KKJ·JKJKJJKJKJKJJKJJJJJJJJJJJJJJHJGHGGGGFGFFFFEKKKKKKK³KKKKKKK³KK³+OOOOO+þþþþþþþþþþþþþþþüüþþüþþüüüüüþüþüþüþüüüüüüüüüüüüüü*ŒŠŠŠŒ1óüüüüóüööõöõöõöõöõëõëöëõöõó÷óóüóüóóóóóóóóðóóðóóóóðóóóó*4‡*4‡1ððððóððòðððððóðòððððóðððððóððððððððððððïðÝÝïðßèïðÑÑïá*34343*ïØÝßáÑïáïáïáÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÏÑÑÐÏÑÍÑÍÍÞ¦°ÔÍÍ­+&&&&&&+³KKKKK³KKKKKKKKK³KFFFFFFFFFFGFGGGGGHGJGHJGHJGHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþþþþþýýýÿüúóóúóóúóúóò¬�o==!$!!==$$===!!$======$!!=$!$$!$==$$=================$=!====$>======>===>=$=====$===>==========>===============$==A>=$==>A>===>==============C=====>C===$=====>>====!=====>=======>==>>====>=====>===>>======$==>==========>=====>>===A==============>>=$=====$==========>AA=======$=====>=======A==$=$$============!$!$==$$$==========!!$!=$$$$!!$!!!=!!!!$$$==!$==!==$=$!$==!!!==$$!!!!$!!$$!!!!$!!$$!!!!!!!!==!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !$!!!!!!!!!!!!!  !  !!!!!! !   =}ªíþþÿýÿýÿþÿþÿÿÿýþýþþýýýþýýýþýýæÓ³³³³³³³³³³³³¸³³¸³¸³³³³³¸³¸¸³¸³¸¸³³¸¸¸³¸³¸³¸³¸¸¸¸¸¸¸¸³¸¸¸¸¸¸¸¸¸¸¸665i6666666665666666666666i5i8666i66666i66666666i66666666666666i666666i566666i666666i66566666666666668i6666666i6666656i66666666i65'%%%%%% %%%%%%%%%&%%%& &%&%%%% %&% %% %%%%%%66666666i6666666666666666666666666666666ii6666666666566666i666i66i66666666i665666%% % % % % 666686566566666i66i66666666666i66666666566i6666666666656666666666i6666666666i6666666666i6666666i666i6i666666666686i6i666¸¸¸¸¸·¸·¸¸¸¸¸·¸¸¸¸¸¸¸·¸·¸·¸·¸¸¸¸¸¸·¸¸¸·¸·¸·¸·¸¸·¸¸¸··¸·¸···¸···¸·¸····¸··¸³···³·······³·³·³³K·K·³K···K···K³K··KKK··K·K·K·KKK·JKKK·JKKKKKKKKJ·J·JJ·HJKJKJKJKJJJJJJJKJJKJJJJJJJJJJHJHHJGGGGFGFFFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþþþþþþþþþþþüþþþþþþþþüüüþþüþþüüþüþüþüüþüþüüüüþ1‡Œ‡Š‡1üüüóüüüööööööýëõëööõöëëõööúõ÷úóóóóóüóóóóóóóóóóóóðóóóðó*‡‡)‡‡*óóóððóðóðóðóðóððóðððððóðððððòððððððððððððÝÝððÝâðððððð1P3434*ðÝÝßðïðÑïÑÑïïÑïÑáÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÑÑÑÑÑÑØ¦°­Í­+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFFFGFGFGGGGGHGHGHHGHJHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþþýþþýÿ÷óóúóóúóóó÷ò¬Žo==$!!!$$=====!$=!=$!$=$!$$$=$=!$==$!=$==>=========A=$==$!===$$=>=$=======>=======$=>=========>==>==========>============$=>=========>===C====>==$=C>=>=>========>====$=====C=$==============>========>=======$=====$=$==>=====$$=>==>====>=======$===>>A===$===$$====$====A======$$==$$==============$===$==========!$$$$=!=!===!$======!$!!!==!$=$=!=$!!!!=$$=!!=!!$=!$=!!$!!==!$=!$$!!!!$=$!!!$!$=!!!!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!! !! !!   !!  !        !  =sªõÿþÿþþÿþÿýþÿþþýýþýýýýýýýýþýýýæÓ·³³³·³³³³³³³³³³³³³¸³¸³¸³·³³¸³³·³³¸³³³³³¸³¸³¸³¸¸³¸¸¸¸³¸¸³³¸³¸¸³¸³656665666666665666666666666666666i6666656666665666666666666666666i866666666666666666i666666i66666666666666666i8666666666666666666666%%% %%%%%% %% %%%%%%%%%% %% %%%%%%% % %%%& %%5666i666i6i66666666666666i66666i666668666666666666i66i666666666666666666666655666( % % %  %666i65666666666i6666565666666i666666i5666666666666666666666666i6666666666i666i6666666i5666666i66i66666666666i6666666666¸···¸·¸¸¸¸·¸¸¸·¸·¸·¸·¸¸¸¸¸·¸¸·¸··¸··¸·¸·¸¸··¸··¸····¸···¸¸···¸··¸·³··³··³·³·³··³·³·K·³K·K³³³³³³³³K³K³K·KK·KKKKK·KKKKKKKKK·KKK·J·JKK·JKKJKKWKKJ·JKJKKJKJJJJJJ·JJJJJJJJJJJJJJJJJJHJHJHGGGGGGFGFGFFFKKKKKKKKKKKKKKKKKKK+OOOOO+üþþþüþþþþüþþþþüüþþþþþüþþüþüüþüüþþüþüüüüüüüüþüüüü1ŒŒ‡Œ‡+üüüüüóüõöõöööõöõöõëõöõëõöõúóúóüóüóóóóóóóóóóóóðóóóóóóóó*4‡*2‡*ðóóðóððóððóðóðóððóðóððððóððððóðððððòðððððêÝðÑãèððÑðÑï*34343*ïÝÝÝÑðÑÑïáïÑÑïÑïïÑðÑÑÑÑÑÑÑÑÑÑÑÐÑÏÐÑÐÐÐÑÑÑÑদ×Ô+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFGFGFFFGGGGGGGHGHGJGHGJGHJGJHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþþýþýýüÿüúóó÷÷óóú÷óòÕ�l!$!!====!$!!!=============!=====$==$=!==!$$!$==!==$$==$=======$=====$=====$============$===============================>==$=>===>=>==============================>==>==$=>=$=>====>==>A==A==$=>======>=>========$==>==>A===>====$================$=========C=============$======$======$!$====!$$$$===========$==========!=!==$==$!$=======!!=!==$!$$=$!=!=!!===$!!$==!===!!$!!$=$!!$=!!!!!$!=$!!$!$$!!!!!!!!!!!!!!==!!!!!!!!!!!!!!!!!!!!!! !!!!!! !!!$!!!!!! !!!!!q¥íþýÿþÿþþýÿþÿÿÿþþýþýýþýþýýýýýýæÓ³³³³³³³³³³³³³³³¸³³³³³³³³¸³³³³¸³¸³³³¸³¸³³¸³¸³¸³³³¸³¸³¸³¸³¸¸³¸³¸³¸6i6666666666i6i66666i6666666666i6668i6666i6666i6i66666666i66i66666666666666666i66666666666i66666666i66666666666ii666666i666666666666(i5%%% %&% &% %%% &%% %%% % %% % %%% % %%%%86666666i86666666i66i666i6666666666i668666666i66666666666666666666i6i6666666ii566i % % % %  % % 666666666666666666666666666665666666i66ii666666666666i666i6i66i666i66666i66666i6i6666666i66666666i6666666666666i6i66666i6¸¸·º·¸·¸¸¸¸¸··¸¸¸¸¸¸¸·¸·¸·¸·¸¸·¸¸·¸·¸·¸¸··¸·¸·¸··¸¸···¸····¸¸·¸···¸·¸···¸·················³··K³·K··³··³·KK···K·KKK·K·K·K·KKK·KKK·J·KKJ·J·JKKKJ·JKKKJ·JKJ·J·JJJKJKJJJJJJJJJJJJJJJJHJGJGGGGGGFFFFFFD³KK³KKKKKKK³KKKKKKK+OOOOO+þþþþÿüþþþüþþþüþüþþþþþüþþþþüþüüüþüþüüüüüüüüóüüüüó1‡Œ‡ŠŒ1üüüüóüüööõöööõëõöõöõëõëöëöóúóóóóóóóóóóóóóóóóóóóóðóðóðó*‡4*‡4*óðóðóðóððóððððððóððððððððððððððððððððððððÝÝððÝÑÑÑðÑáï*43334*ÑݰØÑÑðÑïÑÑÑÑÑáÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÐÑÑÑÏÑÑÍÑÍÍͦ°¨Ô+&&&&&&+K³KKK³KKKKK³KKKKK³EFFFFFFFFGGGGGGHGHGJGHGJHHHJHHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþýþýþþÿþúóóúóóúóóó÷ò¬�?$!!$!$==!!$$$!!===$!======!=!=!$==!==!!====$!!!===!$!$=$==!=A==$!=!===$$==!$$==$===============!$=========!==$$==================>>>>=$==========$==$$=====>=======C=====$==========A=>=>=========>=$===>>=>=>==>============>>===$=============>=$===$==================$!===$=>==$==A==!$$!==$$$$$$$==>>==$$=$!$=======$!==!==$$!!$$$===$!$====!$=$=!==$$!!!!!==!==!!==!==$$!!!!!!!!$!!!$$!$!!!!!!!!!=!!$===$!!!$$!!!!$==!!!!!!!!!!$!!!! ! !!!!!!!!!!!!!!!!!!! !!!!!  !   !   !!    ! ! ! !sªõÿþÿýþÿþÿýÿþÿýýýþýýýýýýýýþýýýæÓ³³³³³³³³³³³³³³³³³³³³¸³¸¸³³¸³¸³³³¸³¸¸³³¸³¸³³¸³¸³¸³¸³¸¸¸³¸¸¸¸¸¸¸¸¸66i6666666666666ii6666i6i666666666i6666666666666666666666666666666i66666i666i6666i66666i66666i66666666666666666i6666666666666666666i(66(%&%%&%% &% &% % % % %& %% %% %%&%%%((5(6666666666666666666666666i6666666i6666ii6i66666666i6666i666666i6666666i6666i666 % % %  % %66i6i666666666i8666666666666i6i66i666i66666666i66i666666666666i66666i666666i6i6i66666i6i6i66i66666666i6666666666666666i66¸·¸·¸·¸·¸·¸·¸¸¸·¸·¸··¸·¸¸¸¸¸·¸¸·¸·¸¸·¸··¸¸·¸···¸···¸·¸·¸¸·¸··¸··¸·······³···³·····K·³·³··K·K³·K³³·K·K·K···KKK·K·KKKKKKKKK·KKJ·KKKJK·J·JKKKKJ·JKKWKJKJKJJJJJJKJJKJJKJJKJJJJJJJHJJHJHJGHGGGFGFFFFFEKKKKKKKKKKKKKKKKKKK+OOOOO+þþþüÿÿþþþþþþþþüþþþþþþþþþþþþþþþþüþüþüþüþüüüüüüüüü1ŠŠ‡Œ‡1üüüüüüüööõöööõöõöõöõöõëõö÷úóóúóüóóóóóóóóóóóóóóóóóóóóóó*4‡*4‡*óóóóóóóóðóðòóðòððððóððòðòððòððððóððððððððÝÝððßèðïðððð*3O343*ðÝÝÝðÑïïáÑÑïïÑïÑÑÑÑÑïÑÑÑÑÑÑÑÑÑÐÑÑÏÐÐÑÐÑÑÑÑÑÑØ¦°¦+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFFGGGGGGGHGJGHGHGJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþþþþýþýþýýüÿü÷óóú÷óúóúóò¬s?===$$!!==!=====$$!!!!$$$!!======!$===$===$$===$===========!=>===$=====!==============$===A=====$=======$=========!====================$=C>========A====A=A=========>===>=========>=====$=$=>=========>==$===========>===========>=====$==>======$$=====$=====$=>=$=======$===!$=====!=====>======!========$$!$==$!$$$$==$===$$$==$$$====!=!=$!!$!$$$===!$!!===!!!$$!=$!!$$$$!!$!=$!$$!!!$$$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!!!!!!!!!   !  =q¥íþþþþÿýÿþÿþþÿÿýþýýþýþýþýýýýýýæÓ³³·³³³³³³·³³³¸³³¸³¸³³³³³¸³³·³¸¸³³¸³³¸³¸³³¸¸³¸³¸³¸³¸³¸³¸¸³¸¸¸¸¸¸¸66666i6666666666666i66686666i666i66666666i66666i66666666i666666666666666666i66i666i6666666666i6i6666666666i66666i66666i6i6666666i666'%% & % %%% %%% %%% % % %&% % %%&%% %% %%% %%5'%%666666666666666666i6666666666i6i666i66666666666666666666666i66866666i66656666% % %  % % 6666i66i6666666i6666666i66666i6i6666666i6i6656666666666666i66666666666666666666666i66666666666666i666666i666i666i66666666··¸·¸·¸··¸·¸··¸·¸··¸¸·¸·¸··¸··¸·¸·¸··¸·¸·····¸·¸·¸··¸······¸³·¸³··³··³···³³··³·³·³³·K·³K··³³³KK·K³K·K·KKKKK·KKKKK·K·K·KKKKJ··J·JK·KJKJ·J·JKK·H·HKJJJ·HKJKJJKJJJJJJJJJJJJJJJJJJHJHJHGHGGGGGFFFGFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþÿþþÿÿüþþüþþþþþþþþþþÿþþþþüþüþüþüüüþüüüüüüóüüü+‡ŠŠ‡Š1üüóüüóóöööööëõöõöõöõöõìõëîüõóóóóóóóóóüóúóóóóóóóóóóðóóð*‡4*‡4*óóóóððóððððððóððóðóððòðððóðððóðòðððóðððððÝÝððÝðÑðÑðïð*34334*ïݰÝÑÑÑÑÑïïÑáïïÑðÑÑÑáïÑðÑÑÑÑÑÑÑÐÐÑÑÑÐÑÏÑÐÐÑÐÍÔ¦°(&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFFGFGGGGGGGHGHGHGJGJGHHJGJHJJHJHJHJJHJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþþþýþýýýÿþúó÷÷óó÷óóóóò¬so$!9!!!$====!=!=!!$$=$!!!======$!===============$!$=>===A===!=$$$===>>===!=>==========$=A>>A>>>=================================$=>=====>>=======>=====>C>==$=>>=A======>>>==>=$>>=$=$=$===$=>>=========$$=======>======>==$======>=$!=$=====A==$!=>====$========$==!!=============!=!===>A====$!$==!==$=!=$!!=$!$$=$!!$!!==!=!$!!$!$====$$!==!!$======!!$==!!!$=$!!!!!!!=!!!$!!=$!=!!!!=!!!!$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!!!!!!!  !!! !!!!    !qšõþÿþÿýÿýþþÿþÿýýýýýýýýýýýýýýýýæÓ³³³³³³³³³³³³³³³³³³³³³¸³¸³³¸³¸³³³¸³³³¸³³³³¸³³¸³³¸³¸³¸³¸³¸³³³³¸³¸³666666666666666666666i66i66666i666666666666666666i66i66666i66666666i66666666666666666666i666666i666i66i666i66666666i666i66666666666%%%&%% %%% %%%&% %%% % % % & &%& %% % % %%% %% % (i6666i6i6666i6666666666i6i666666666i6666i666666i666666i6666i6666666666666665%% %    % 66666666i6666666666666666666666666666666i66666666i6666666666666i666666i6666666666666i6666666666i6666666i666666666666i6666¸¸·¸·¸¸¸·¸·¸¸¸·¸·¸¸··¸·¸··¸·¸¸·¸·¸·¸··¸··¸¸·¸·¸·¸··¸··¸¸·¸··¸·····¸·¸·¸···················K³··³·³·³··K··K·K·K·K·KKKKKKK·K·KKJ·KKJ·J·KKJKKWKJKKJ·J·JKJ·JKJ·KJJKJKJJJKJJJJJJJJJJJJJJJGJGHGGGFGFFFFDKKKKKKK³KKKKK³KKK³K+OOOOO+ÿþþüÿÿÿþÿþþþþþþþüþþþþþüþþüþþþüþóüüüüþüþþóüüüüüóü1Œ‡‡Š‡+üüóóóóúööõöööõöõöõöõëõö÷öõóõóúóóóóóóóóóúóóðóóóóóóóóðóó*‡‡*4‡*ðóðóðóðððóðóðððóððððððððððððððððïðððððÑïÑê°ïÑèÑðÑðïÑÑ*433431ÑÝÝØïïáïÑÑÑïïáÑÑÑÑÑÑÑÑÑÑÑÑÑÐÏÐÑÏÑÐÐÑÐÑÍÑÍÑÍÐÍɰ¦+&&&&&&+³KKKKKKKKKKKKKKK³KFFDFFFFFGGFGGGGHGHGHGJGJHJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþþýýþýþýýüÿüúó÷óúóú÷úóò¬�o!!$$==!!!===!=!======$!=$!==$$$$==$!!$=$!!====!====>=!=====!=====$!=$$======!===========!===============!=>>>>===========$=========!==================================$=====>======$=====>===>===$============>==$=====================AA=======$===$=======$===$$>===$!=====!=!$====!=$$==!$=======$$=====!=======$===$!=========$!!==!==!!==$!$!$!!==$$!!$==!$$!!$=$$=!!=$!$=!!$!!!!=$=!!!!$!!!$!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !!!! =q¥íÿýÿýÿýÿþÿþÿÿÿþýýýþýþýýýýýýýýæÓ³³³³³³³³³³³³³³³³³¸³³¸³³³³¸³³·³³¸³³¸³³¸¸³¸³¸³¸³¸³¸³¸³¸³¸³¸¸¸¸¸¸¸¸666666666i6666i6i6666i666666i6666666666666666666666666666i66i66666666i6i6666666666666ii666666i66666666666i6i666666i6i8666i66i6666665%%&%% % &% % % %%& % %&%%&% %% &% %&%%% % %5666666666666666i6666666666i6i666666666666666i666i6i6666666i6666666i666i6666% % %    % %566666i66666i6i66666666666666666666i6666i66i6666666666666i6665i6i66666666566i6666666666i6i66666666666666666i66666666666i6·¸·¸·¸·¸·¸¸···¸·¸·¸¸¸·¸·¸¸¸··¸¸·¸·¸·¸·¸·¸····¸···¸··¸·····¸··¸··¸···········³·³·³·K··K·K·³·³K³·³·KK·K·K·K·KKKKK·KK·K·K·JKKKK·KJKKKKKJKK·JKKKKKKKJKJKJJJJ·HJJJJJJJKKJJKJJJJJJJJJHJHJHGGGGGGGFFFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+ÿþþþþþþÿþÿþþþþþþþþþüþþþþþþþþþþþüüüþþþüþþüþüüüüüü1‡ŒŠ‡Š1üüüüóüóööööööõöúöõëöëõëöëöüöóóóúóóóóóüóúóüóúóóóóóóóóóó'‡4*‡4*óóóóóóóóðóðóððóóðóðóðóðóðððððððððððððððððÝÝðððððððððï*34334*ðÝÝØïÑÑïÑïÑáïÑïïðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÏÑÑÑÑÑÑÑÑÐצ+&&&&&&+KKKKKKKKKKKKKKKKKKDFFGFFFFFGFGGGGGGHGHHGJGHHJGHJGJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþþþýþþýþýþþþÿóóóú÷óóóóó÷ò¬Žj!!=!==!!!=====!$====!!==!!!$!=====$!!$$!==!!$=======$$=$!$$=>==!$$$=====$!==$$==$=>=$$$!$!=====$==>>===>A>==========>$$===========$$$!===>=========$!!===$===>=!========9=>=======>>=>==$====$==A>==>=$!$============A>>=>A>=====!==A==>>>=>=====$$==$$=$!!$===$=====$===$!!$!=>=$==!$=!!====A=$!$===========$!===$$=$=!=$!$=$!!=====!!!!==$!=!$!!!$=$!!$=!!!!!=$$!!!!==!!!!!!$!$!!!!!$=!!!!!!!$!!$!!!!!!!!$!!!!!!! !!!!!!$!!!!!!!!!!!!!!!!!!!!!!! ! !!!!   !! !    !       !       !! !!! =sªíþþþþþÿýÿýþÿþýýýýýþýýýýýýýýýýæÓ³·³³³³·³³³³·³³³³³³³³³³¸³¸³·¸³¸¸³³¸³³¸³³¸³¸³³¸³¸³³¸³¸³¸³¸¸³¸¸¸¸³¸666666i66i8i66i86i6666666666ii6666666666666666666i666i666666666666666666i666666666i6i666665666666666i6i6i66666666i6666i666666666i666 %%%% %% %&%%%&% % %%%%% % &% % & &% %%%% %6666666i6666666666666666i6666666666666666666i666i66ii6666666666666666i665666 % % %    % % %66666i66666i6i666i666666666i666666i6666666666666i66666666666666i6666666i6i6666666666666666666666666i66666666666666i6i6666¸···¸·¸·¸··¸·¸·¸···¸··¸·····¸····¸···¸··¸·¸¸··¸·¸··¸··¸¸·¸·····³···³····³··³·³·K·³·K³³³³K³³³·K³K·K·KK·KK·KK·K·K·KKKKKKKK·J·JK·J·KWKKKWJKKJ·H·H·JJKH·J·JJJKJKJJJJJJJJJJJJJJJJJJJHJHJGHGGGFGFGFFFFEKKKKKKKKKKKKKKKKKKK+OOOOO+ÿþÿþþÿþÿþÿþþþþþþþüþþþþþþþþþþþþþüþüþþþþþüüüüüüüüü1Ї‡Š‡1üüüóüóúööõöööýöõëöìõëõìõî÷óö÷óóóóóóóóóüóóóúðóóóóóóóóóó144*4‡'óððóóóóðóðóððóððóðððððððððóððððððððððððððÝÝððèðððððïÑ*433O3*ðØÝßïÑïáÑïïÑïáÑïÑÑðÑÑÑðÑÑÑÑÑÑÑÐÐÑÐÑÐÑÐÐÑÐÐÐÑÑÍÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFGFFFGFGGGGGGHGGHGHGHGJGHHJHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþþþýþýýþýþýýýÿüúóóóúóú÷÷óò¬�l=$!$$$$$==!!$$!===!!$===$$$==!$$==$=====$!===$==$===!===$=======$====$====$!=======!$======$===$$$$=$===========================!========================>===========>=!======================$=======A=======>===============================$===============$>===$!======$=====$$=======!==$!===!!=$$=====!!=====$!=====$!=$===!==!!!!=$$!!===!!!$$!!===!==$!!!$=!!$$$!!!!$$$$!$$!!!!=$!$!!!$!!!!!!!!!=!!!!!!!!!!!!!!!!!!! !!!!! !!!!!! !   !!!!!!      !!q¥íÿþÿþÿýÿýÿþÿÿÿýýýýýýýýýýýýýýýæÓK³³³³³³³³³³³³³³³³³³¸³³³³³³¸³³³³³³³¸³³¸³³³³¸³³³³¸³³¸³¸³³³³¸³³¸³¸³6666i66666666i6i666i6i6i666i6666ii666666i66666i6i6i666666666666666666666i6i666ii666i666i6666666i6666666666i6i666666666666i66666666i6 % %% %%% % % %& &% %& & % % % % % %&6i666666i6666666666666666i66666i6i6i66i6666i6i66666666666666i6666i66666666665%%% % %    % % 666i66666666666666i6666i666i666i666666ii66666666666666666666666666666666666666666i66666i6666i666666i666666666666i6i66666i66¸·¸·¸··¸·¸··¸·¸··¸¸··¸·¸¸¸·¸·¸·¸···¸¸··¸·¸···¸···¸··¸·····¸·¸··¸··¸···¸··³···············³·K·³·K·K·K·K·K·KKKK·KKKK·K·K·K·KK·KKKKJ·KKJKKKKKKKJ·JKKWKJKHJJ·JKJJKJKJJJJJKJJJJJJJJJJHJHJGJGGGGFGFFFFFFK³KKK³KKKKKKKKKKKKK+OOOOO+ÿüþþüÿþÿþþþþþþþþüþüüüþþþþÿþþþþüüüþþüüþüüüüüüüóüü+‡Š‡Œ‡*úüüüóóóööõööö÷öõëõëõëöëõëöúëóóóóóóóóóóóóüóóóóóóóóóóóðó*‡4*‡41ñððóðóðóðððòðððòððóððòððððððððððððïððððïÑÝÝèïßâïÑÑÑÑð*34333*ÑÝÝØÑÑáÑïÑÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÍÑÍÑÍÎÑÍÎÑÍÍÍÐÇ+&&&&&&+K³KKK³KKK³KKK³KKK³EFFFFFFFGFGGGGGGHGHGJGHGJHHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþþýþýþþýþýþýýÿ÷óóúóóúóóóúò¬Žj==$==!$==$!!!$===!!===$==$$=$==!!===$==$!$===!!$!!$========!!>>=>==!======$==>=!!!====$!!=$==$=!$!$$!!==$=======$$=====>>=====!$===>>======$=======>=$>>====$==>=====$$==>=====>>=$!$$========>=>=========>A==C>=====$!!!$=!!$=====$$!====$=$=============>=!=>==$$==$$==$!=========!==!!$$$=!$!$$$!===$$$======$!!=A======!!!$=!!$!$!$=!!==!$==!!!==!$!!!$$=!!!!!!!!!!$!!=!=!!=$$$==!$==!$!!!!!!!$=$!!! !!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! !!!!!!!          !  !  !    !pªõþþþþþþþÿýþÿþýýýýýþýþýýýýýýýýà׳³³³³³³³³³³³³³³³³³³³³³¸³³³³³¸³¸·¸³¸³³¸³¸¸³³¸³¸¸¸³¸³¸³¸¸¸³¸¸¸³¸¸¸666666666i66666i6666666i6666i666666i666666i666666666i8i66666666666i66i6666666666i6666666i66666666666i66i6i6666i6666666666666666666i6% % % %% %%& %&% &% % % % % % % & &% % %& %% %6666i6666666i6i6666666i6666i666666i6666666666i66666666666i6i6666666i66i66i66 %      i666666666666i6i6i66i66666666666666i66666i6665i6666666666i666666666666666666666i6666666i6i66i6666i66i6666666666666i6i66i666666·¸··¸·¸·¸·¸·¸¸·¸·¸·¸¸·¸···¸·¸·¸·¸¸····¸···¸·¸·¸·¸··¸···¸¸···············³·³·³·³·K·³·K·K·K·³·K·³·K·K·K··K··K·KK·K·KKKKKKKKKK·J·J·KJKKK·JKKWJKKKKKJKJKJKKJJJJJJJJJKJJKJJJJJJJJJJHJJHJGHGGGGFGFFFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+üÿþþþÿþÿÿüÿþþüþþþþþþüþþþþüÿþþþþþüþþþþüüüþüüüþüüü1ЇЇŠ1üüóüúúüööýöõöõëõëöëõëõöõö÷óöóóóóóóóóóüóóóóóóóóóóóóóóóó*4‡*441ðóóóóóóóóóóððóðóððððððóððòðððóðððððððððððÝÝððãèððððÑï*43343*ïÝÝØÑïïÑÑÑáÑïÑáÑðÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍ­+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFGFGFGGGGHGHGHGJGHJGJHHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþþýþýþýýþýþýýüÿüúóóúóó÷úóóò¬ŽC!=!!$$=!$$!$!==$$$$!$$!!=$!$===!!$=!===!!=$===$$==!====$==!===$!====$=======!==$$===================>>=$=================$===========A=!=============$$A>=$===$===$=======>===$==================================$===>========================$=$=====$=====$===$===================$!===$===========$!==$$==$$$=$$$!==$!!$!!==$$$$$=$$$=$!$=$==!!$$!=$!!!$!=$!!!$$$!$!!!$$!!!!!!$!!!!!!!!$!!!!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! !!!!!!!!    !=q¥íÿþÿþÿþÿýÿþÿÿÿýýýýýýýýýýýýýýýæÓ³³·³³³·³³³³³³·³¸³³³³¸³³³¸³¸³³¸³³¸³³¸³³·³³¸³¸³³³³¸³¸³¸³¸¸³¸³¸³¸³¸6666666i66666i666ii66666i666i6i66i566656666666666i666i66666666666666i666666666i66i666666666666666666666666666666i66666i6i6i66666668%% % %% % % & % % & % %% % %%&&%%56i66ii6i66666666666666i6666666i6666i6666666i666666i66i66666666i66666i666i665( % %       i6666666i666666666666666i666666i6666666666656666666666666666666i66666666666666666666i6666666666666666i6i66i6666666i66666i66666···¸··¸····¸····¸······¸·¸··¸··¸··¸·¸···¸··¸···¸·¸···¸···¸·¸···³·³·³·³·³·³·³·K·³·³K·³³³³³K·K·K·K³K·KK·KKKKK·KKKKKKK·K·J·KKKJ·JKKJ·J·JKJ·JKKKJ·HKJJKJ·JJJJKJKJJJJJJJJJJJJJJJJJJJHJHJGGGGGGGFFFGFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþÿÿÿþÿüþþþüþþþþüüþþþþþþþþÿüþþþþþþþüþüüüþüþüüþü1‡Š‡Š‡1óóóóóüó÷öîöúöõöëìõëöëõëööîüë÷óóúóóóðóóóóóóóóóóóóóóóðóð144*4‡1óððóóðóóóððóðóóðóðóðóðððòððóððððòððððððððÝÝððÝÑðïÑðÑÑ13O334*ÑݰÝÑáÑïÑðÑïÑïÑïÑÑðÑðÑðÑÑÑÑÑÑÑÑÐÐÐÐÐÐÑÐÐÑÑÐÑÐÎÍÔ&&&&&&&+KKKKKKKKKKKKKKKKKKFEFFFFFFFFGFGGGGGGHGHGJGHGJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþþýþýþýþþýþýýýÿþúóóúóóúóó÷úò¬}?9=!!!!!!!!$=!!!=!!==!$!$==!!==!!$!$=!!====$=======$=!======!!==!!!!=$!===$!!==$====>$$==>===========$==>==$====!$=>=$!$==$!!$=>===========$======>>==>=$=C======$$>=$=====$$====!!===>==!$=A=>===$=====!======!$$!$!!=>>>=========$==$!$==$$==!!$$==>====$$=!!===!!=>C>=====$!==$==$!$!!!=$===!=$========!!!!===!!!!!$$!!!!!!$$!!!$==!!!!!==$==!$=$!!!!$!!!!$=$!===$!====!=$!!==$!!!!!!==!!!!!!!!!$!!! !!!! !!!!!!!!!!!!!!!!$! ! !!!! !!!!! !!!!!!!!! !    !!  !    !  !  !!=}ªíþþþþþþþÿýþÿþýýýýþýýýýýýýýýýýæÓ³³³³K³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³¸³³¸³¸³³³³³¸³¸³¸³¸³³³³³³¸³³³¸³6666666i6i66i66i66666666666666666666i6666666i66666i66i666666i66i6i66666666666666666i6666666ii66i6i6i66666666666i6i66666i66666666666i%&%% & % %% % %&% & & & % % && % & &% &%%6666666i666i6666i66666666i6i66i6ii6666ii6666i666666666i66i66666i6i6666i66( (% %       666666666i66i66666666666666666666666i66666i666i66i6ii6i66ii6666666666666666i666666666666i6i666i6666666i666666i666i6666i666666¸·¸··¸··¸¸··¸·¸··¸¸·¸¸··¸·¸··¸···¸···¸·¸·¸··¸¸································K···³··K··³·³·³·K··K·K·K·K··KKK·K·K·KKKK·J·K·KKK·KKJKJ·JKKKJ·JKJ·JK·JKJKKJKJJJKJKJJKJJKJJJJJJJJJHJJJGJHHGGGGFGFFFGDKKKKKKK³KKKKK³KKK³K+OOOOO+þüþþþÿþþþþþüþüþüþüþüþüüþüÿüÿþþþþüþþüüüüþüþüüüüüü1ЇЇŠ+üóüóúóüööõööëõëõëõëõìõëõöõóîóóóóðóóóóóóóóóðóóóóóóðóððð*4‡*‡31ðòðððóðóðóóðððððððððððóðððððððððððïðÑïÑïðÝÝÑðØèÑÑÑïïá*333331ÑÝÝØïïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÏÐÑÑÎÑÎÑÍÎÑÍÍÑÍÍÍÍ­+&&&&&&+³KKKKKKKKKKKKK³KKKEFFFFFGFFFGFGGGGGGHGJGHGJGJHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþþþþýþýþýýþýýýýüÿü÷óóúóóú÷óóò¬�j=$!!=$$$!$=$$$=$!!$===!!$==!!$$$$!===!=$!!==$!==$!$!===$$$=$$C===!===$!=$====!!====$$=========!=$===$$======$$====$$===============$===================$$=====$=====!=C===================>======================$=======!=>===========>=$========$=======$=$=>===!!====!!==$====!========!$==!==$=$========$$$$=======!$$==$!$==!$=$!$===$=$!!$$$!$!$!!==$!!=!=!$!!$!!$!!=$!!!!!!!!!!!!$!$!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!    !    !=s¥õþÿþÿþÿþýÿþÿÿÿýýýýýýýýýýýýýýýàÓ³K³³³³³³³³³³³³³³³³³³³³³¸³³¸³³¸³¸¸³·³³·³³³¸³¸³³¸³³¸³¸¸¸³¸¸¸³¸³¸³¸666i66666ii666666ii6i6ii5i6i666i666ii666666666666666i666i66i66i6i66i666i6i66666i6666i6i6ii6666i6i666i66i66666666i66666i66666i666i6666 %% %%&% & % % & % %% & & & % %& & % %&%& i6666i66666i666666i666666666i6666i6i666666666666666i66i666666666i6666666%(      666i6666i666i6i66666666i666i66ii66i6i6i6i66i666666i666i666666i666i6666i66i6666666i666i666666666666i6ii666i66i6666666666666i···¸··¸····¸·¸·¸·······¸···¸··¸·¸··¸¸·¸···¸···¸·¸··¸·¸·¸······³··³······K·³·K···K···K··K·K·K·KK·K·K·KKK·KK·K··KKKKKK·KK·KJ·JKKJKK·J·J·J·J·J·J·JJJKHJJJWJJKWKJKJJKJJJJJJJJJJJJJJHJHJHGJGGGFGFFFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+ÿþÿÿþþþüþþþþþþüþüþüüþþþþþþÿüÿüþþþþþüþüüþþüüüóüüü+‡Š‡‡‡1úóóüóüüööööõöõöõöõöõëööõööúöóóóóóóóóóóóóóóúóóóðóóóóóóó1‡2*4‡*óðóóóóóóóðóðóðóðóðòóðóðððððððððððððððððððÝÝððÝèïðððïð10Q333*ðÝÝßÑÑáïÑÑÑÑÑïÑÑïÑÑÑÑÑÑÑÑÑÑÏÑÐÑÐÏÑÑÐÑÑÑÑÑÑÑÑÑÑÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFFFGGGFGGGHGGHGJGHGJHHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýþýþýþþýýýýýþÿ÷ó÷úóóúóóúóò¬Ÿo!!!====!!!===!$$===$!!!!$==!$=!!!!!$===!$!=>A=!$=$$=====$==========!$===$===$$!!=========!$!!$==$$$===$======$====!$=CA=$==$$========!======!!$!==!====$===>==>=======>=========$=$!=$============$==$$!$====$!=>=====!$==========$==!=$$==>==C==!!=>==$=!!=$$====$$=$!!$!==!==$========!$!$======!!==$$====!!!$$$$!=!!!!!$==$$==!!!$!=!$===$$==!!==!$!!=!!!!!$!!=$!!!!!!! !!!!!!$=!!!!!!!!!!!!!!!!!!!!! !!! !!! !  !!!!! !!! !! !!     !   !!  !  !!!  =}ªíÿýþþþþÿþÿýÿþýýýýýýýýýýýýýýýýèÓ³·³·³·³·³³³³³³³³³³¸³³³¸³³³³³³³³³·³¸³¸¸³¸¸³¸³¸³³¸¸³³³¸³³³¸³¸³¸³¸³i6666i66ii666666i66666666666666666i666ii666666666666666666666666666i6i6666i666666i666666666i6666666666i6i66i666666i6ii66i6666666666i65% %% % % % &&& & % % % % % % % %6i6i66i66i66i6ii666i66i6i66i666i66i6666i6i6i6666i6i6666ii6666i6i6666666655(        ( % 6666666ii66ii66666i6i6i6i666i66666666i666666i66i6666i666666i66666666i666i66666ii6666i6i6ii6ii6i6i66666i6666i666i666666666i6¸·¸··¸··¸·¸···¸··¸·¸¸·¸··¸··¸··¸··¸··¸··¸³··³···³··³···³··³·³·³·³··³·³·³·K³³·³³³³³K³³³³··K··K·KKKK·K·KK·KKKKK·K·K·KKKKKJ·KK·J·KKJKKJ·JKJKJKJKJKWKJKJKKJKJJJJJJJJJJJJJJJJJJJJJJHJJGJGHGGGGGFGFFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþþþþþþþþþþüüüüüþüþüüþþþþüÿþþþþüþþüüüþþþüüüüüüü1‡Š‡ŠŠ1üüüóüóüööõöööõöõöõëõëõëõëõóõóóóóóðóóóóóóúóóóóóóðóðóóóð*4‡*‡31ðóððóðóóðóðóðóððððððððòðóððòððððóððððððððÝÝððØèÑðïððá*33333*ðØÝßïïÑÑðÑðÑïáÑðÑÑðÑÑÑÑÑÑÑÑÑÐÑÑÑÐÐÑÑÐÐÑÑÐÑÑÑÑÍÍ­+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFGFFFFGGGGGGGGHGHHGHGHGJGJHHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýþþýþýþýýýýýýýüÿüúóóúóóúóó÷ò¬�o!!$!!!!!=$$$!!!$$=$!!!!=$!$$==$=$$$!$===$$=$$$$=$=$!$=$$===!=!====!=======$$=!===$=!=========$=======$===$=====$$=================!============A=$$=============!===========$=======$===$$======$$=====$===============$==========!===========!================$$==$!======$!=====$====$!!====!!====!!$$!!$$$!=====$!$$!====$!$!==$=$!!!!$$$$=$!!!==!!!$=!!!=!!!!!!=!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!! !!!!  !!!!!!  !!!!!!!!    ! qªíýÿþÿþþþþþþþÿÿýþýýýýýýýýýýýýýàÓ·K³K³K³³³³³³³³³³³³³³³³³³³³¸³³³¸³³¸³³³³³³³³³³³¸³³³³¸³³³¸³³³³¸³³³³666i6i6i6666i66666i6666666666666i66666666i6i666i6666iii66i666i666i6i666iii66i666i66666i66666i666i66i6666666666ii666i666i666i66ii6666i6 %% % %& % & & & & & % & & %% %% %%6666666i6i6666666i666i666i66666ii66i6i66i66ii6666666i66i6i6i6666666i66666(         (% 6666iii666666666i666666i666i66i6i6ii6ii6666i666i6666666666i6666i66ii666i6iii66666i6i66666666i66i666i6666i66666i66i666666666···¸··¸··¸··¸··¸··¸····¸··¸··¸···¸··¸··¸···¸·¸···¸··¸···················³·³·K··K··³··K··³·³K·K·K···K·K·KK·K·KKKKKKK·K·K·J·J·JK·J·J·J·JK·J·J·JKKJKJ·JKJ·JKJKJJKJJKJJKJJJJJJJJJJJHJJHJGGGGGGGFFFGFFFK³KKKKKKKKKKKKKKKKK+OOOO2+þþÿþþþþþþþþüüþüþüüþüþüþþþþþþþüþüüüüüüüþþüüüüóüóü1Ї‡Š‡1óóóüóóúõööööëõöõöõëööõëöööóóóóóóóóóóóóóóóóóóóóóóðóðððð1‡4*4‡*ñððððóðóðððððððòðóðóðóïðððððððððððððïðïÑðÝÝÑÑÝÑïÑÑÑÑï133333*ÑØÝØÑÑÑïÑÑÑÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÐÐÍÑÍÑÎÑÍÍÑÍÍÍÍÍÍÍÍѦ+&&&&&&+K³KKKKK³KKK³KKKKK³DFFFFFFFFGGGGGGGHGJGHGJHHJGJHJHJHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýþýþýýýýýýþýþÿóóó÷óóúóóúóò¬Žo===!!$==!!=$!==!!!$!!!!!!$!$======!=$====$!!=$!!!=!!==$===$$$!==$$!!==!$$========$===!$===!=======>=!!==>=====$==A=======$$===$======$$!=$$==!!$==!$=$======!====$$!!====>=!======A=$$>CA===$$=!$========>A>=====$!!============!====!=========!!!!====$!=>====$====!!==$==$$====$=$!=$$!$!$$!!$$==$$!$====!!!=$===!==>=$!!=!!!=!$!!==!!!!!!!$==$!!$!!!!!!!!!=$!!=!$!!!!===!!!!!!!!!!!!!!! !!$!!!!!!!!!!!!! !!!!!!!!!!!! ! !!!!!       ! !  ! !   =p¥õþþþýÿþÿþÿþÿÿýýýýýýýýýýýýýýýýæÓ³³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³³³¸³³¸³¸¸³¸·¸³¸³¸³¸³¸³³¸³¸¸¸³¸³¸¸¸ii666i6i66i6666i6666i6ii6666ii6i6i6i6i66666i66666i6666i6666666i66666i66666666ii666i666i6i66i66666666666666i6i66666ii6666666666i6666666 & &% % & % & % & % % % %& % %66666666666666666i6i666666666i6666666666i6i6i66i66666i66i6i6666666666i6i6%           i6666666666i666i66666i66i6i6i6iiii66666666i6666666i666666i66666666i66666666666i6665iii66i666i666i666666666666666i6666i6i66i¸·¸··¸··¸··¸··¸··¸··¸·¸··¸··¸·¸·¸··¸··¸·¸·¸···¸······¸···¸·····³··³········³·³··K··K···K·³K·³³··KKK·K·K·K·K·KK·K·KKKKK·J·JKKJ·JKJKJKJ·JKJKJ·JKJ·JKJKJJJKJJJJJJKJJKJJKJJJJJJJJHJJHJGJGHGGGFGFFFFFDKKKKKKKKKKKKKKKKKKK+OOO2O+üÿþþþþþþüþüüþþþþþþüüþüþþþþþþþþþþþþüüüþþþüüüóüüüü1‡Š‡‡Š1üüüóüóüööõöëöõöõëõëõëõöõëõóóóóóóóóóóóóóóóóóóðóóóóðóóðó*‡4*‡21ðóðóóðóóóóðóòðóððððóðððððððððððððððððððððÝÝððÝèðððïðï*333331ÑÝÝØÑïÑÑÑÑáÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍ­+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFFGGGGHGHGHGHHGHHHHJHHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýþþýþýýýýþýýýýüÿüóúóúóóú÷óóò¬Žl!!!$!!$!!=!!=$!!$$=!$$$$$$$$$=!!$$$$!!$$====!!$!===$$==!$!=$=!===$==!==!==$==!=$=====!===!=!=====!=========!=$===$!==========$!=========!=========$===$====$=====!=============!=A=!=====$$=============$=========$=============$=$$==$$====$=====>=$====$!=!=========!!=====!===!===!=!$====!$=$$!=====$!!$!=!$=!$$!==!!!!=!==$!$!!=$!=!=$=!!$!!$$!!!!$$!!=!!!=!!!!$$!!!!$!!!!!!!!!$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!   !!!!!!    !  $q¥íþÿþþþþþþýÿýÿÿýýýýýýýýýýýýýýýæÓ³³·³·³³·³·³³³³³³·³³³³·³³³³¸³¸³¸³³¸³³¸³³¸³³·³³¸³³³¸³¸³¸³³³¸³³³³¸³6i666i6i6i6ii66666i666i6666ii6666666i66666666666666i6666i6i6ii6i66i66666i6666i66ii6i66666i66666666i6666iiiii66i66i66666ii6i6666i666666%%%&% % & & & & & & & & %&% %&66666i66i66i666i6i6i6666i6666i666666666666666666666i66666666666666666i665 % %%        ( 66666iii66i6i6i666666i6i6i666666666666i66i66i666i666ii6666i666666i66666666666i666i66i666i66i666i6666i6666i66i666666i666666i···¸··¸··¸··¸··¸··¸··¸·¸·³¸·³¸·³·¸··¸·····³····³··³··³···³··³³³³³³·³·K³·K³·³·K·³³³K·³³KK³K·KKK³KK·KKK·KKK·KKKKKKKKK·J·JKKKKK·KKJ·J·J·JJ·J·H·HKJJKJKJJJJJJJKJJJJJJJJJJJJJJJJJJJHJHGJGHGGGGGFFFGFFFFKKKKKKKKKKKKKKKKKKK+OOOOO+þþþüþþþþþüþüþþþþþþüþüþþþþþþþþþþüþüüüþüþþüüüüóüüü+‡Š‡‡‡1üóüóüüóööööööõëõëööõöõìõöëúõóóóóóóóóóóóóóóóóóóóóóóðóðó*2‡*4‡1óðóðóóóðóððððððððóóððóððððððóðòððððððððððÝÝððÝâïÑðÑÑá133333*áݰÝÑáïÑðÑïïÑáïÑðÑÑÑÑÑÑÑÑÑÑÑÑÐÏÑÑÑÐÐÑÐÑÐÑÑÑÑÍÍÍÔ&&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFGGFGGGGGGGGJGGJGHHGJGHHJHJHJHJHJJJHJJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýþýýýýýþýýýýþÿúóóóóúóóóúóò¬�?$$!!!==!!$!!===!!======!===!!!!=!!$====!!!==$!=$!=!!$$==!=$!!!!$!$$!=====$!$!$$$=========$!$$$======!!===!=$$======$$$=====$$$$======$=====!=>===>===!!==!$===========$=!====!!$=$=A=!!$==========!$====$=======$!$!==>==!!$==!==>=====!$$=$=>C==!$=!$=!!!===!=$$$$!===$==!$==$===!==$=====!!!$!$==$!$===!!!$!!$=$!!!====$=!!!!!=!!======!!!!!!!!!!!=$!!$$!!!=!!!!!!!$!!!!!!==!!!!!!!!!=$!!!!!!!!!!!!! !!!!!!!!!!!!! !!!!!!! !! !!   !    !  ! !!! q¥õþþþÿþþÿþÿýÿÿýýýýýýýýýýýýýýýýàÓ³³K³³K³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³¸³³³¸³³³³³³³³¸³³¸¸³³³666ii6666i6666i66ii66i6i6i66666666i666i6i6i6i666i66i66666i66666i66i666i666i66666iii66i66666i6i66i66iii6i6i66ii6i566666666i6i66i66ii6i % %&% &%&& & % & & & & & && % %% (ii6i6666i6i6666i6i66i6666i66i66i666i6i66i6i66666666i66666666iiii6ii6666666(%        i55666i66666i66666i6ii66666666i66666666ii666i666i666666i6i66666666i666i6i66i666666666666666666i6666i666666i66i66666i66666i6i6i¸·¸··¸··¸··¸··¸··¸·¸··¸··¸·¸···¸··¸··¸···¸··¸·········¸·················³·K·³··K··³···³···K·K·K·K···KK·K·KKK·K·K·KK·KK·KK·JKKWKKJ·JKKKKJKJKKK·JKJKJ·J·JKJKJJKJJKJJJJJJJJJJJJJJJHJJJGJGGGGGGFFFFFEK³KKK³KKK³KKK³KKK³K+OOO2O+þþþþþþþþþþüþþüÿþþþþüþüþüþþþþþþüüüþüþüþþüüüüóüóüü1‡‡Š‡Š1óüóóóóúööõöööõöõìõëõëõëõëöóëóóóóðóóóóóóðóóóóóóðóðóðððó*‡4*‡31ðòðððððóðóðóðóðòðððððððððððððððððððððïðÑïÝÝÑïßèÑðÑïïÑ*333301ÑÔ°ØïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÐÑÑÑÑÍÑÎÑÍÍÑÍÍÍÍÍÐÍÍ­+&&&&&&+³KKKKKKKKKKKKK³KKKFFDFFFFFFGFGGGGGHGHHGJHHGJHJHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþýþþýýýþýýýýýýýüÿüóú÷÷ó÷÷÷óóò¬Ž?==!!!!!!$=!!$=$!!$!!!=$!!=!!==!!=!$=$!$$$!===$$==!!====!=!$==$=!=$$==$$==$!====$!===========!$====!=====$$$====!======$=$!=========$=====$=============$!===>$==!=======!=========>@A@=@=@=@=====$=====$==$!=====$$$=====$===!$=====!=$===>9==!=====$=$===!======$===$===$!==$$===!===!=$$=$!$$$$====$$!==$!$=!!=$$$$!=!$!$!==!!==!!!!!!=$!!!!=$!!!$!$$$!!!!!$!$!!=!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!! !! !! !!!!   !     ! qªíþþþþþþþþþþýÿÿýýýýýýýýýýýýýýýæÓK³³³³·K³³³³³³³³³³³³³³³³³³³³³³³³³¸³¸³¸³¸³³¸³³¸³³³¸³¸¸³¸¸³¸³³¸³³¸³66iii6iii6i6i66iii6i6ii6666iii6ii6i66666666i6i66i6iiiiii66i666i6i6i6i666ii6666i666666i6iiii6ii66i666i66666666666666666i6666i6i66i6666( % & & &%  & %& & % % &66666ii66iiii666i666666i6666i6666iii666666666ii6ii6666666666i6666666i66ii666i6         6i6666i66i666iii66i666666i6666i6i6i66i666i6666i6i66i6i6ii66i66666ii666666666i666ii6666i6i666i66666i6666i66i66i66666i6i6iii6i666···¸··¸··¸··¸··¸··¸··¸··¸···¸·¸·¸··¸····¸·····¸················³···³······³·K·³··K·K·KK·³K·K·KK·KKKK·K··J·K·KKKKKK·J·KKJKKKKKKKKKKKJ·JWKK·JKJKJ·JJJJJJJJJKJKJJJKJJJKJJJJJJJJJJHJHJHHGGHGGGFGFFFFFFKKKKKKKKKKKKKKKKKKK+O2OOO+þþþþþþüþþþþþþþþþüþþþþþüþþþþþþþüþüþþüþþüþüüüüüüüü1Ї‡‡‡*üüóüüüüööõöööõöõö÷öõöõöõööóë÷óóóóóóóóóóóúóðóðóóóóóóóóó*4‡*4‡1óóóóóóóóóðóððóððóóðóððððððððòððóðððððððððÝÝèðâïððððïð*333331áݰÝÑÑïÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÐÑÑÐÑÑÐÑÑÑÑÑÑÑÑÑÑÍÍ×+&&&&&&+KKKKKKKKKKKKKKKKKKFDFGFFFFGGFGGGGGGHGHGHGJHHGJHJHJHJJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýýýýýýýýýýýýýÿóóóóúóóúóúóò¬Ž?==!!$$$!!!$==!!$!!$=!!!$=$!!!!=$!$=!$!!!!$=$!!==!===!===!!$=!$$!$========!!$!====$======!$!!$$$==$!!!$=====$!$$$=$===!$==$==$!$$$$==!!======$$!====$=$====>>=========AAC_ƒÈßñüüýÿÿÿÿÿü÷òßÌ–u@========$$==>====$!=============>===>====$!!==!===!!!$!$=====C=!!$!!==$!==$!!!===!!$!!!$!$=$=!!!!!===$=!!$$$!!==$!$==!!===!$!!!!!$==!!=!!!!$==!$!!$==$!!!!!=!$!!===!!$!!!!!$!!!!!!!!!!!$!!! !!! !!!   !!!!!!!!!!! !  !!! ! !        ! !!  !!q¬íÿþÿþÿþÿþÿþÿÿýýýýýýýýýýýýýýýýæÓ³³³K·³·³³·³³³³·³³³³·³³³³³³³¸³³¸³³³³³³¸³³¸³³¸³³¸¸³·³³¸³³³³³¸³³¸³¸66666666i666i6i6i6666666ii66ii6ii6666i66i6i66i6i6666666666666i6i66666ii66ii6i66666ii66i666i6666iii6i66666666666ii66i666i66i666i666i6ii6i(& & & & & &  % & % %66666666666666i6666666i6ii666i6666666666666i66666666666ii66666666ii6i6i66666666            666i666i666666666i666i6i6i66666i66i6i66i6666ii6i6i6666i6ii6i6i6iii6i6666iii6666666i66iii6i66i66i6i6i666666ii6ii6i66i666i666i666·¸···¸³··³··³···¸·······³¸¸³··³···³·¸³···³·³·³·³·³·³·³·³·³·³³³³·K³³³K·³K³K³³³³K³·³·K·K·KKK·K·KKK·K·KKKK·KKKKK·K·KKJ·J·KK·J·JKKKWKKWKKJKJKH·H·HKH·JKJJJKJJJJJJJJJJJJJJJJJJJJJHJJHJGJGHGGGFGFGFFFFDKKKKKKKKKKKKKKKKKKK+OOOO2+þþþþþþþþþüþüÿþüÿþþþþþþþþþüÿþþþþüþüþþþþþüüóüóüüüü1‡‡‡‡‡1üóüóüüüööööööõöõöõöõöõöõëõóëóóóóóóóóóóóóóóóóóóðóóðóðóó*‡4*‡3*ððóðóðóðóððóððððððóððóððððóððòðððððððððððÝÝïðððïððÑðï*333331áݰØÑðÑðÑÑïÑðÑðÑÑÑÑÑÑÑÑÎÑÑÐÑÑÑÑÏÐÑÑÑÐÑÑÑÑÑÑÑÍÍÐÍ+&&&&&&+KKKKKKKKKKKKKKKKKKFGFFGFFFFGFGGGGGGHGHGHGHGJHGJGHHJHJHJJJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýþýýþýþýýýýýýýüÿüóúóóúóóóóóò¬s?==!!$$$!!$!!!!$!$!$$$!$!!!==!$!!=!==!=!=!==!==$!=!$=$$==!====!!==$=!==$$$==$==!!!==$$$=!===9===!$========$$==$!=======$=!=====$=====$=>=$=====$$====$$=======$=$===@zÇðýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüçÆxC=!=========!===============$$=$>===!$===$$==!=!=====$=$====!$==$==$=!=$=$=!==$!==$!===!!$!$=$$$$$!=!==$!!=!!=$$=!$=$$=!!!=!!$$!=$!!!=!$$!!$$!!!$=!!$!!!!!!!!!!!!$!!!!!=$ !!!!!!!!!!!!!!!!!!!!!!!!  !!!! ! !!! !!!!!!!!!!  ! !   !!qªíþþþþþþþþþþýÿÿýýýýýýýýýýýýýýýæÓK³³³³³³³K³³³³³³³³³³³³³³³³³³³³³³³¸³¸³³³¸³³¸³³¸³³³³¸³³³¸³¸¸³³³¸³³³ii6i6i6i66ii66i6ii6i66i66666666i6i6i6i6i6666666666iii6i66i6i6i66i6i66i6i6i66i666i66666i6iii6ii6ii66i6i66666666666666ii66ii666666666666i6% % % & & %& &  & % & & & & & & %(666666666666i66i666i6666i666666i6666666666666666666i6i66i66iiii66i66i6i66i66666         6i66i6666i6666i6666i6666i6i66i6i66i6666i66666666i66666iii6i6i66666i6666i6666666ii6i666i666i66i66i6i6i6666i6ii6i66666i6i66i666i·······¸·¸·¸···¸·¸·¸···¸····¸··¸·¸·¸··¸·¸································³···K·³·K·³·³·³·K·K·K···KK·K·KK·K·K·KKKKK·KKKKJKKKKKJKKKKKKKKKKKKKKJKJ·JKJK·JJKJ·JJJKJJJKJJJJJJJJJJJJHJHJHHGJGGGGGFFFFFFFKKKKK³KKKKKKKKKKKKK+OO2OO+üüþþþþþþüþþþþÿüÿüþþþüþþþþþþþþüþüüþüþüþþüüüüóüüüü+‡Š‡‡‡1üüüüüóóööõöööõöõöõöõöõöõöëóë÷óóóóóóóóóóóóóóðóóóðóððóðó*4‡*44*ðóððóðóððððððòðóðððòððððððððððððððððððððïÝÝèÑèÑÑÑÑðÑÑ1333331áØÝØáÑÑÑÑÑáÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÏÐÐÑÑÍÑÍÑÍÍÍÍÍÍÍÍÑÍÍ&&&&&&&+K³KKK³KKKKK³KKKKK³DFFFFFFFGFGGGGGHGHGJGHHHJGHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þþýýýýýýýýýýýýýýÿúóó÷úóóú÷úóò¬sl==!!$!!===$!$$=!!!=!$===!$==$==$$$!!!!!===!!!!!$$!=!!!$!$=$==$===!=!$=!===!$!!!$=$=9!!$==========!$!!!$$======!$======!!$$=>A>==!=====!=====$$=!=====!!!=!==@ƒßýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌx@===!!!$!=========!!$=!!!!!!=$$====!=$$=========!!=$=$!======!!$$!$==$!$$==$!=$$==!$====!!$$!!!$!!!!=$!==!$!$=!!!$!!!$=$!$=$!!!!!!$=!!==!$!$=!!$!!=$!!!$!!!=!!!!!!!$=$!$=!!!!!!!!!$!!!!!!!!!!!!!! !!!! !!!! !!!!!!!!!! !!!!!!!!  !!!       !! !      !pªíþþþþÿþÿþÿþÿÿýýýýýýýýýýýýýýýýàÓ³³³K³³K³³³³³³K³³³³³³³³³³³³³³³³¸³³³³³³³³³³³³³·³¸·¸³¸³³·³³·³¸³³³¸³6i66666666666666i6i666iii666666666ii6666666666i6i666i66i6i66ii666ii666i66i6i6i666666i666666i666666i66666666666666i6iiiii6666ii6i66ii6i6i &  & &  %& & %66iii66i6i66666i66ii6i6i6ii6i66i66666i66666i66ii6666666666i6666i666666666i666i66            66i66i6ii666i6666i6i666i666i6i66i666i6666ii6iiii666i6i66666i6666i6ii66i6ii6ii6i6666i6666i66i666i6i6i666666i66666i66i6i666i6i6i··¸·····¸····¸····¸··¸·····¸·¸······¸·····································K·³·K·³·K·³K·K·K·K·KK·K··KK·KKKKKKK·K·K·J·J·K·KWKJ·KKKJKJ·J·JKJWKJ·JKH·JKJJKJJJJJKJJKJJJJJJJJJJJJJJHJJJHJGHGGGGGFGFFFFFFKKKKKKKKKKKKKKKKKKK+2OOO2+üþþþþþüþþþþþÿüÿþþþþþþþþþþþþþþüüþüþþüüþþþüüüüüóüü1‡‡‡‡‡+üüüüóüüööööööõöõöõöõöõëõëöóëóóóóóóóóóóóóðóóóðóóóðóóóóó*‡4*‡4*óóóóóóóðóðóóððóðóðóððððððððððòðððððððððððÜÚððßèðïðððð*333301Ñß°ßÑïáÑïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÑÐÑÑÑÑÑÑÑÑÑÑÑÑÑÍÍ×+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFGFFGFGGGGGGGHGHHGHGJGJHJHJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓþýýþýþýýýýýýýýýüÿüú÷óóú÷óóóóò¬Žj!!==!!!!$!!!!$==!!!!!=$!!==!==$$!!!!$=!$$$$!==$!$$$!$!!$$$$$$==!!=$!$=$$$$!$$=!==$=====$$$$$!======$===$$=======9===!========$$====$!=======!$====!=!!=====!====]Ìúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Æu==$=====$===!$==!$!=$====$!===$!=$=====!$!=!=====!!=$=$!===!!$!=$==$!==$!==$$!$=!$$$=$!$$$!$$!==$!$!==!!!=$!$$!!$=$!!!!!!=!=!!!$!!!!!!!!!=$!!!!!!!!!!!!!!!!!!!=!!!!!!!!!!!!!$!!!!!!!!$!!!!!!!!!!!!!!!!!!  !!!!! !!!! !!!!!!!!    !   =qªõþÿþþýþþþþþýÿÿýýýýýýýýýýýýýýýæÓ³³³·K³·³·³·³·³³·³³³³³³³³·³³³³³³³³³³¸³¸³¸³¸³¸³¸³³·³³¸¸³¸¸³¸³¸¸³³³i6i6666ii6ii6666i666666666i666i666i66i6i6i6666i6i6i6666666666i6i666i666i666i6ii6i66i66i6iiii6666i6i66i666i66i6666666i6666i6i6666i6666(5% 5( & & &&& & & & && & &6i66iiii6i66i6i6ii66iii6666i6i6i666i66i6ii6i66666666i66i666ii6i6ii6666i6i6ii6666(         6665 i6ii66ii6666i666i6666i6i66666666i6ii66ii6666666iii6ii6ii6i66iii6i6i66i6i66666666i666666i66ii6i6i666666666i66i6iii66i666i6i666i········³···³·····³··³··³·³··³·····³·····³·³·³·³·³·³·³·³·³·³·K³K³·K³·KKK³K·³KK·K³K³KK·KK·KKKKK·KKKKKK·KK·K·K·KKJ·JKKKKJJ·JKKKJKWK·J·HKJKKJJKJJJKJJJJJKJJJKJJJJJJJJJJJJJJJJJJJJHJGJGJGGGGGFGFFFFFFKKKKKKKKKKKKKKKKKKK+OO2O2+þüüþüþþüþþþÿþÿüþþþþþþþþþþÿüþþüþüþþþþüþþüüüüüüüüü1‡‡‡‡‡1üüóóüóüööõöööõöúöõöõöõöõööóö÷óóóóóóóóóóóóóóóóóóóóóðóóð12‡*44*óóðóóðóððòðððóððððóðóðððòðððððóððððððððððÝÝððÝðÑðïÑðÑ103333*çÝØßáÑïïÑïÑáïïÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÐÑÏÑÐÐÐÏÑÐÑÑÑÑÍÍÍÎÔ+&&&&&&+KKKKKKKKKKKKKKKKKKEEFFFFFFFGGFGGGGGGGHGHGJGHJGHGJHJHJJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýýýýýýýýýýýýýýýÿ÷óóúóóóúóúóò¬}?!!!!!!!!!!!!=!!!!!=!!!!!======$!!!!$==!!!======A=====9$$$$!!=====$=!!$==$=$!!$$====!===!==$!=======!!==>=$!=!!!!$===$!!$==$!===!=!!$=====$=====>==>CxßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÌx@======!!$!========$>>====$=!$!$====!$===$!=$=!$!!$$!$=$===$$!=====!!!=!=!!$==!!======!!$==!!=$$!!!$!$$!!$!!!!=$=!$!$=$$=$!$!!!==$!!!!$!$=!$=!!$!!!!=$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  !  !!!!!!! !!!!!!!!!!!! !!!!! !!! !!!   !   ! !!  !!!!!!!!!!   !!! !!!! !!  !!!!  ! ! $q¥íþþþþÿýÿþÿþÿÿýýýýýýýýýýýýýýýýæÓ³³K³³³³K³K³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³³¸³¸³³³³³³³³³³³³¸³66666i6666iii666666666i6i6666ii6iii6666666i66i6666666666i6i6i6i66i66i666i6i6i66ii66ii66i66666ii666666ii6i66666i6iii6666i6i66i6666i66i% (666ii6 &  &   & & & & % & (6i6556666ii666i666666666i6i6666666666666666i6i6ii6i6i6i66i66i6i66666666666ii6ii665         666666i666666666ii66i6i666666i66i66666ii6i66666666i66666666ii666i66666iii6i66666i6666i6666ii66i66i6ii6ii66i6i6666666i6666i6i666i6666···¸··¸···¸··¸··¸······¸··········¸······························³······³····³·³··K···K·³·····KK·K·KKK·KKKKKKK·KKK·KK·KKKK·J·KKKJKKJ·KKJKK·JKJ·JJ·J·JJJKJJJKJJJJJKJJJJJJJJJJJHJJHJHJGHGGGGFFFFFGEK³KKKKKKKKK³KKKKK³K+OO2O2+üþüþüþüþþüÿüÿþþþþüþþþþÿþþþþüþüüþüþüüþþþþüüóüóüüó1‡‡‡‡‡1üóóúóúóööööööúöõöõöõëõëõëõóëóóóóóóóóóóóðóðóðóðóððóðóóó*‡4*431ððóðóððóðððóðððóðòðððððððððððïðððïððÑïÑïÑÝÝÑðØèðÑÑðïç*333331ÑØ°ØïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÐÑÏÐÑÑÐÑÍÑÎÍÑÍÍÑÍÍÍÍÐÐͦ+&&&&&&+³KKKKKKKKK³KKK³KKKEFFFFFFGFFGFGGGGGHGHGJGJGHJGJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýþýýýýýýýýýýýüÿü÷óó÷÷÷ó÷óóò¬Žl!!!!!!$$!!!!!!!!!$!!$!!!!!!=$!!!!$=!!!$!!$$!!$=!$!$$!==!===!$$!$$=$$$$!$=!=!==$!$!=$$==$$!=!=$===!==$$$====!=======!====$$$=$!===!===$===!===!======$===$=$=@xáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÌxA=$=====$$$!$===!=====$!=$===!=====!!===$=$==!!=$$=!!==!!==$=!=!=$$=!$$!$$!!$$$!$!9$$=!!==!==!$$!$$!!!!!$!!!!$!!!!$!$!!=!!!$!!!$$!!!!!!!!=!!!!!!!!!$!!!!!!=$!!!!!!!!!!! !!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!! _„„„„„„„…„„„……„„……„„„„„„„„…•„„…„………„„………„„„…„„„……„„„„„„„„„„„„„„„„„„„‚„„„„„„„…„„„„„„„‚„–‚_„„…„„„„„„‚„„„„„„„„„„„„„…„…„_9Y‚‚„„…„„„……„„„„„„………„„„„„„„„„Y  ! !$q¥íþþþþýþýþþþýÿÿýýýýýýýýýýýýýýýæÓK³³³K³³³³³³³·K³³³³³³³³³³³³³³³³³³³³³¸³³³¸³³¸³³³³³³³¸³³¸³³¸³¸·¸³·³666i6666i66i66ii66i6666ii666i6i66i6666666i66i6666i6iii6i6i6666666666i6i666666i6666i6666i66i6i66666666666i66ii6ii66iiiiii6i666ii6666i66(i6666i &  & &  && % % ii666666i6666ii6i666666i66i66i66iii6666666i66i666i66666666i6i6666666i6ii6i66i666i66        i66i66ii6i666i6iii6666ii6i6i666666666666i6i6666i6i6i66i66ii6i666666i6i666i6666ii666666iii6666i66666ii66i66666666666i6666i6i6i66ii6i66i······················¸··¸···¸·············³················K·K·K··K···K··K··KK·KK··K··K·K·K·KK··KKKK·KKK·K·K·KKK·JKK·JK·JKJ·JKKKKJ·JJKJ·JJJKKJJKJJJJKWKJKJJJKJJKJJJJJJJJJJJJJHJHJHGJGGGGGFGFGFFFKKKKKKKKKKKKKKKKKKK+O242O+þüþþþþþþþþþÿþþþþþþþþþþþüþþþþüüþüüþþþüþþþüóüüüüüü1Q‡‡‡‡1óüóüóóüõöõöõöõöúöõöõööëõöëúë÷óóóóóðóóóóóóóóóóóóóóóóóóó*2‡*44*óóóóðóðóððóðóðóððóðóðððððððððððððððððððððÝÝððÝèïððððð*333331ðݰÝÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÐÑÑÑÑÑÑÑÑÑÑÑÑÍÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFFFGFGFGGGGGHGHGHGJGHHHJHJHJHJJJHJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýýþýýýýýýýýýýýýÿ÷óúó÷óúóóúóò¬Ž?!!!$!$=====!!$==!$$!!$$==!$==$!!!$!$$$!!$$=======$!!$!!!!$!!!======!!!$=$!$=$!!$=$==!$$===!!$=$===!!!!$!!!!$====$$$==============$!!==$==$!$!===!=!=BÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÆC!!!$$!!!=====!!==!!$===!!!$$!$$====!====!!=====!$=$!==$$!!!!======$==$!==!!!!$$==$!$$!$$!!====!!$!======!$!!!$===!!!$$!!!!!!!===!!!!!!!!!!!!!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !!!!!!!!!!!!!Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó� ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ     !p¥õþÿþÿþÿþÿýþÿÿýýýýýýýýýýýýýýýýàÓ³·³³³³K·³K³·³·³·³³³³·³³³³³³³·³³³¸³³³³³¸³³³³³¸³¸³¸³³³¸³³¸³³·³³¸³¸666666i666i6i6ii66666ii6i6i66ii666i66i66i6i66i66i6i6i6i6666666i66i6i6i666iiii6ii666i6i6666i66i66666ii66ii666i6i66i6i66666i666i6666i6i6666ii66& & & && &   & & & & & & & %666666i6i66666ii66ii666i6666i6666i66666i6i666666666i66i666i6666i666666666i66i666666i5  (       6666666i66i6666i6666i66i6i66i66666666ii666ii666i6ii6i66666666666ii66666666ii666i66i666i6iii66666i6i66i6ii6i666i66i666i666666ii666i6666·························³·³·³·³·³·³·³·³·³³³·³³³·³K·³K·³K·K³³³³·³K³³³K³³³³K·K³K·K·KKKK·KKKKK·KKKK·K·K·K·KKKKKKKKKKK·JKKKJ·KJKKJ·J·J·JKJKH·J·JJJWKJJJJJJJJJKJJJJJJJJJJJJJJJJJJHJGJGJHGGGGFGGFFFFEDKKKKKKKKKKKKKKKKKKK+2O2O2+üþþþþþþþþüÿþÿþþþþüþþþþþþþþüüþüþþþþþþüþþþüüüüóüüü1‡‡‡‡‡1óúóóúóúîöööõöúöõöõöõëõöõëöóëóóóðóóóóóóóðóóðóðóóðóóðóòó*44*44*óðóðóðóðððóðððóóðððððóðððððððððððððððððïðÝÝðïÚèððïðÑï*33330*ÑÔÝØÑïáÑðÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÑÑÑÑÐÑÑÑÑÑÍÍÐÞ¦+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFFFFFGGGGGGGHGHGHGHGJHGJGJHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýýýýýýýýýýýýýýÿüóóóúóóú÷óóò¬Ž?!$!!!!!!$!!!=!!=!!!$$$$!!$!!===!!=!$!!$!!!=!$$!=@=$$!!==!$!!$=$!$=!$$$$$!!==$!===!!!$$$!$==!===!==!=$$$!===!$$$$====!=!=!=========$$=!=$$==$===$=======@ƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñƒ@=!$==$$$====$!$=!!$!===$$$===$====$$!$$!$$!$$==!==$$!$=$$$$!$=$===!!$$==$!=!!!!==!!$$!$==!$!$=!!$$!!!==$$!!!=!!!!!!!$$$$!$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!! !!!!!!!!!!!!!!!! !!! !! !!!!!!Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!   áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!   =q¥íþýþþþýþýÿþýÿÿýýýýýýýýýýýýýýýæÓ³K³K³³³³³·K³³K³³³K³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³³¸³¸³³¸³³³¸³¸³³³³666iiii6i66i6i6i6i6i6i6i66i6ii6666i666ii666ii6666i6666666iii6666i66i66i666i6i66i666i6666i6i6666666i6iii666i6666i6i66iii6i6i66i666iii666ii6666      & & & & & 6i5666i666i6iii6i6i66i6iii666666i6i66i666666i666i66ii666666i6666ii66i6666i6ii6i66666ii  66       i66iiii66666i66i66666iiiii6ii6666i66i666i66i6i6i66ii6iiiii6ii6ii6i66i6666ii6i6i6666i666666iii6iii6i6i6iii6iii6i666ii666i6i6i66ii6ii666············································³···············K··K··³··³··········³·³K····K·K·KKK·KKKKKKKKKK·J·K·J·J·J·JK·J·JK·JKWKKJKJKKJ·JKJKKJKJKJ·JKJJJJJJJJKJJJJJJJJJJJJJJJJJHJHGJGHGGGFGFFFFFFKKK³KKK³KKK³KKK³KKK+O2O22+þüþþüþþþþÿþÿüþþþüüüüþþþþþþþþþþþüþþþþüüþüüüüóüóóü+‡‡‡‡‡1úóúóüóóööõöúöõöõöõöõöõëõöëóõóóóóóóóóóóóóóóóðóðóððóóóóð144*44*ðóðóðóððóðððóððððòðóððððððïððððïðÑðÑðÑïÑÑÝÝèïÝÑÑÑÑÑðÑ*33333*çØ°ßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÐÍÑÍÍÍÑÍÑÍÍÍÍÍÍÑͦ¦+&&&&&&+K³KKK³KKKKKKKKKKK³FFFFFFFFGFGGGGGGHGHGJGJGJHJGHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýýýýýýýýýýýýýýýÿ÷óúóó÷úóóúóò¬}?==!!=!!!!!!$!$!!!!=$!!==!!$=$!$!===$$$$!!!!$!!$=$$$$=!!!===!!!!!$!$==!$=!==========!!=!$=@===!!!!================$!!!!=!====$$$==!!$$$!$!==ZßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÏu=======!======$!$========!$$=!=!!!$===!!$!$!==!$==!!$!$$=$!==!!!!!$==!==$!$$$===$$=$!!!!!!!!$$$!!=!!!$$!!!$!!!!!!!!!!!==!!!!!!!!$$!!!!!!!!!$!!!!!!!!!!!$$!!!!!!!!!!!!!!!! !!!!!! !!!!! !!!!!Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ! ÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !  qªíþþþþþÿþþþþÿÿýüýýýýýýýýýýýýýýæÓ³³³³³³K³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³³³³³³³³³³¸³¸³³¸³¸¸6i66i6i6ii666i6666i6666i6i6ii6ii66i6i6i6i6i6ii666666i6ii66iii666ii6i66666ii66i6i6666ii66ii66i6i666i666i66ii666666666ii66i6ii66i6iii6iii66i6ii ii &  & &   &  & & & & 566566iii6ii6ii66ii66i6iii66i6i66i66666i6i6i66i6ii6ii66ii6i66i6i6i6i666666ii6i6ii6666i6i%%5       66i66i6i66ii66666666i6ii666i66i6i6i666iiii6iii66ii6i66ii6666666666666iii66i66i66ii666ii66666666ii6iii6i6i6i6ii66666iiii66i6iii6666ii6i6···········································³·················³··K··K··K·K·K···K·K·K··K·K···K·KK·K·K·K·K·KKK·KKKKK·KKKKKKJ·KJKKKKJ·J·J·JKJ·JKJKJKKJJJJJKJJKJJKJJJJJJJJJJJJJJJJHJHJHJGHGGGGFGFFFFGEKKKKKKKKKKKKKKKKKKK+2O2O2+üüþþþþüÿüÿþÿþþþþþüüþþþþþþÿþþþþþþþþþþþüüþþüüüüóüü1‡‡‡‡Q1üüüüóúüööööööõöúöõöõìõöõëöóõóóóóóðóóóóóóðóóóóóóóóóóóóó*‡4*44*óóóóóóóóóóóðóóóóóððððððððððððððððððððððððÝÝððÝèðððððð*33333*ïØÝßÑðÑÑÑÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÔ°¦+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFGFFFGFFGGGGGGGHGHGHGHGJHHJHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýþýýýýýýýýýýýýýüÿü÷óóúóóú÷óóò¬Žj!=!!!!!!!!$!=$!!!$!!!!$!!!!!!!$!$!$=$!$!!!$$!!!!!$$!!!===!$!$===$!=$$!!$=$!=$!==$===$==!!====$$=$$$$=========!=====$$!$==$$!$===$===$$=$$$!=$====z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüüü÷óòñò÷üüýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòƒ@======!=====$!!==$$====$$===!$!!==!$=$!$!!!!!$==!$!!!!==$$=!=!=!$=$$=$$!$$!$!==!=$!$!!!!$$$$!!!!$!$!!!!$!!!=$!!!!!=$!$!!!!!!!!!!!!!$!!$!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !!!!!! !!  ! !!!!!  ! !! Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!  !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   !qªõþþþþþþýÿþþýÿÿýýýýýýýýýýýýýýýæÓK³³K³³·K³³³K·K·³³·³³·³³³³·³³³·³³³·³³³³³³³³³³³¸³¸³¸³¸³¸³³³³¸³³³·³66i666666i66i666i66i666ii666666ii6i6666ii6666666666i6666i66i666666i6i6iii6666i66i6i6666iiiiii66ii666iii66iii6i66666i666666i6i66ii66i666i666ii666i66  &    &  & & (5666666i6ii6i66i6iii6ii6i66ii66i6ii6ii6i66i66i666666i6666i666i6666i6iiii6i6666ii6i6ii66      6i66i6666i6ii6666i6i6i66i66iii66666ii66i66i6666i6i6ii6i6666i66i6ii6iiii6666ii6666i6i6iii666i66666ii66ii66i6i66i666i66i6ii666iii666iii6iii······³·³·³·³·³·········³·³·³·³··³·³··³··³K·³³·K³·KK·KK·KK·K·³K·³³K³³K·K·³K·KK·KK·KKK·KKKKKK·KKKKKKKKKKKKK·KKK·J·JKKJ·J·J·JKWKKKKJ·JJJJJKJJJ·H·JJJKJKJJKJJJJJJJJJJJJJJJJJJJJHJHJGJGHGHGGGGFFFGFEFEKKKKKKKKKKKKKKKKKKK+O2222+þþþþþþþþÿþÿüþüþþþüüüüþþþþþþþþþþþþþþþþþþüüþüüüüóó1‡‡‡‡‡1üüóüóüóööúöööúöúöõöõëöëõëëóóóóóóóóóóóóúóóóóóóðóóóðóðóó*24*44*ððóðóðóðóðóðóðóðóððóðóðððððððððððððððððððÝÝððÝâïðððïÑ133333*ÑØÝØáïÑáïÑÑÑÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÐÏÑÐÑÑÐÑÐÐÑÑÑÑÍצ¦¨+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFFGFFGFGGGGGGGHGHGHJGHGJGHJGJHJJHJHJHJJHJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×þýýýýýýýýýýýýýýýÿóó÷úóó÷óó÷úò¬s?!!!!!!!$$!!!!!!!!==$!!$!!!!$!!$!$!!$=!!!$=$!==$!!$$=!!=$!!!=!==$!!$========!!====$$!!!=$!!!$!!!$==!$===$!!!!!!!!$!!!!!======$$!!!$=====$!$=!=====@Æýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü÷߯ƒxC=====$$=CxƒÆß÷üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÉZ=$===!!!!!$======!!$!$!$!$!$$===!$=========$==$=======!!==$!!$$!$$$!!!!=!!!!==$!!!$!!$$!!!!!$!$$!!$==$!!!!!!$!!=!!!!!!!$!!!!!!!!$!!!!!!!!!=!!!$$!!!!!!! !!!!!!!!!!!!!! !!!!!!!!!!  !!!!!!Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóxÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ =}¬íþþþþþþþþþþÿÿüýýýýýýýýýýýýýýýàÓ³·³³³K³³³³K·³³³³³³K³³³³³K³³³³³³³³³³³³³³³³³³³¸³³³³³³³³³³¸³¸³³³¸³¸i666i66i6i66i6i66666i6iiii6ii6i6iiii6i66i66666i6ii6ii6i6666666i666ii66i6ii666i6i66i66i666iii6i6ii6ii6666i66i666ii66666i66i666i6ii66ii6i6666iii666ii  &    & &  && % 6ii666i6i66666ii6i6i666i666i6ii6666i6666i66i666i6666i6ii6i66i66i6ii66i666i6ii6ii6i6666i66i     i66ii6i6i666i6ii66i6i66i666i6i6i6iiii6i6ii6666i6666i66ii66i6i6i666i666666iii66ii66i66i66i6i6i666666666ii66i666666ii666666i66i66i6i66i6i6ii····························································³··K··³·····K·····K······K·K··K·K·K·K·K·K·K·KKK·JKKKK·KK·JKKJKKKKKWKKJKKK·JKJ·JJKJKJ·JJJKJJJJKJKJJJJJJJJJJJJJJJJJJJHJHJGJGGGGFGFFFFFEKKKKKKKKKKKKKKK³K³K+22O22+ÿþþþþþþþþÿþþþüþþüþüüüüüüüüþüþüþþþþþþþþüþüóüüüóóú1‡‡‡‡‡+üüüóüóüööööööýöõöõöõëõëëëëóòóóóóóóðóóóóóóóðóóóðóóóóóóð*Q4*431òðððððððððððððððððððððððððððïððððððððððÑïÝÝÑïØâïÑïÑïá*33333*ÑݰØÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÑÑÐÑÍÑÍÑÍÍÍÍÍÎÍÍÍÍÍЦ¨¦­+&&&&&&+³KKKKKKKKKKKKKKK³KFFFFFFFFFFGFGGGGGHGHGJGHJGHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýýýýýýýýýýýýüüÿüúóóóú÷óúóóò¬s?!!!!!!!!$!!!!=!!=!!!!$!$!$$!!!!$!!!!$=!!=!$=!!!!!=!=$!$!!!$==$!$$====$$===!!=$!$=$!$!$$!$$!$!$=!!==!!==!!!!$=$=$$$!$!$$===$$$$$!!=====!$==$====CÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüèÆx@$!!!=$==!!==@===!==xÆèúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßx===$$$=$$==!==!==!=$!$!$!$=!=====!$$!=!!=$!!$!!=!====$=!$$!!!$==!$=$!===$!!!$=$!$$!!==$!!!$!$$!$$!!!=!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!=!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !  !!! !!!! !!  Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿód ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  !!  =}ªíþþÿýÿþÿþþþýÿÿýýýýýýýýýýýýýýýæÓ³³K³³³³K³³³³·K³K³³·K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³¸³³³³³³³¸³³³³666i666i66666i666i6i6i6i666i6666iii6i66i6i666666i6666ii66iiiii6i6i666i6i66i66666i66i66i6i66i6i6i6ii6666i666i6i66i66i6666i66ii66iii6i66i666i66ii6ii66 & D     &( 6i6i6i6i6ii66i666i666iiiii6i666i6i66i6ii6ii66i66i66666i6i6666i666ii666666i6i6i6ii6i66iiii6i66i     6666666i6i6iiiii66i6ii66i66666666i6i66666ii66i666666iiii6iii6i6i6ii66ii6666i6i6iii6i66i6i6i666ii6666iiii6i666i6iii66i6666666666iiiii6ii66i66······························································K··³··K·K····K·K·K·K·KK·K·KK·KKKKKKKKKKKKKKKKK·K·J·JKKJKK·J·J·JKKKKK·JWKJKKJKJKKJKJJJKJKJKJJJJJJJJJJJJJJJJJJJHJJHJHJGJGGHGGGFFGFFFDKKKKKKKKKKKKKKKKKKK+04222+ÿþÿüÿüÿþþÿüþþþüþþþþþüüþüüþüüüþüüüþþþþþþþþþüüüüüó1Q‡‡‡‡1üüüüüüüööõöööõöýöõöõëõëõìëóë÷óóóóóóóóóóóóóóóóóóóóóóðóó*44*441ðóðòðóðòðóðóóðóðóòóðóððððððððððððððððððððÝÝððßèðððððð103333*ÑݰØÑÑÑÑÑÑÑÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑצ¦­­+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFGFGGGGHGHGHGHGHHHGJHJHJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýýýýýýýýýýýýýýþÿóóóúóóóúóó÷ò¬�m!$!!$$!!!!!!$$=!!!!!!!!$$!==$$!!!!$!!$=!!!!!!=!$$$$!!!=$$==$!!$!=!$!$=!!!$$=$!!$!$=!=!$$===!$=!!$==!=$!!$$$=!$$$$$=$!!===!======!!!!$$$==$!!$=ZáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýòÆZ==$$$==$===$$====!$!!!$=_Æñýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ�=!!===!!===$!!!===$$===!===!!!!==!$$===$!$===$!!!!!====$$!!!!!!!!!=!$!!!!!!=!!!!!!!!!!===$!!!!==!!!==!!!!!!!!!!!!!!!==$!!!!!!$!!$!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  !!!!!!!! !! !!!!!  !Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   q¥íþþþþýþýþþþÿÿýüýýýýýýýýýýýýýýæÓ³³³³K³³³³K³³K³³³³K·³³·³³³³·³³³·³³³³³³³³³³³³·³³³¸³³³³³¸³³¸³¸³³¸³¸6i666iii6i6666ii66ii6666iii6i666ii6i6iii66666i66ii66ii6ii6ii6i6i66ii6i6666ii6666666i66ii666iii66i666i66i6i6666iiiiii6i6i6i6666ii6i6i6666iii6i6i66666EDDD     & & i& i66i6i6ii6i66ii6ii66ii666666i6i6i666666666i666i666ii66ii6666i6i666ii6i6ii6666iii666i6ii6i666iii5    66ii6i66666iiii6iiiii66ii6i6666i66i66ii6iii6i66i6i66i6i6666i6i6i66iii6i66i6i66666666ii66i66ii6666666i666i66ii6i66i6i666ii66iii6666ii6i6ii6666·····³··³·³·³··³·³··K·³·³·³·³·K··³··K··K·K·³K·KK·KK·KK·K·K·³K³³³K·K·K·K·K·K··K·KKKKK·KK·KKK·K·K·K·K·K·KK·J·JKJ·J·J·J·JKJKKJKKKKJJJKJKJKWJJJJJJJJJJKJJJJJJJKJJJJJJJJJJJJJJJJJJHJHJGJGHGGGFGFFFFFFFFKKKKKKKKKKKKKKKKKKK+O2222+þÿþÿüÿþÿüÿþþþüüþþþþþþþüþüþþþüüüüüüüüüüþüþüþüüüúü1‡‡‡‡‡1üüüüüóüööööööúöõöõëõìõëöëíóëóóóóóðóðóóúóóóóóðóóóðóóóóð*44*Q31óðóðóðóðððððððóðððððððóððððððððððððððððððÝÝððâðÑðÑðÑð1333331Ñ­°ÝðÑðÑðÑÑÑÑÑðÑðÑÑÑÑÑÑÑÑÐÑÑÏÐÐÑÑÑÑÑÑÑÑÍÑÍר¦ÔÍ×+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFGFGGGGGGHGHGJGHGJHGJGHHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýýýýýýýýýüÿüú÷óóúóóóúóò¬�?!=!!!9!!!!!!!!!!!!!!!!=!$!=!!!!!!=!!!$!!$!!$!$!!$!!!=$!=$=$!!!!==!===!=!!$$!$=!$$!!!!!==$!$=!!!$$$$$!!=!==!==!==$!==$$======$!=$!!====!!=Zçÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñ–@$==$$!==!!===!!==$$!$$!$!$===C›èüÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷…=$=$$=!==$$$!$=!$=$!!=$===$!$!!!=$!!==!!=$!$!=$!!!==!!!=$$!!!!$!!!!!!!!!===!!!!$!!$!!!!!!!$=!!$!!!$!!!!!$!!!!!$!!$!!!!!!!!!$! !!!!!!!$!!!!!$!! !!!!!!!!!!!!!!!!!!!!!!!! ! !!!  ! !!!!!!!! ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóx   ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !   qªõþþþþþþýÿþþýÿÿýýýýýýýýýýýýýýýæÓK³³K³·K³³³³³³·K³³³³³³³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³i66i6666i66666666ii66ii6i66666i6i6ii6i66iii6iiii6i6i666i66i6i6ii666i6i666iii6i6i6i6i66ii6i6i66i6666666i66666i6iiii6ii66i6iiiiiii66iii666i6i6i6666iiiEEDED & & E6  & i6 6i6i66ii6i666i666666ii6i6666i66ii6666666i666666i6i66i6666i6ii6i6666i66ii6666ii666i666ii6i6i666iii6666i  666ii666ii666i6i6i666i66ii6ii66666666iiiii6666i66i6i66iii666666i66iiii6666i6i6i6ii6ii6i66666666iii6i6i666i666666iii6i6ii666i6666666iii6iiii6i6i································································K·········K··K·K·K···K·K·K·K·KKKKKKKKKKKKK·KK·J·J·J·JKK·J·J·JKWK·KK·JKKKKK·J·J·J·JKJJKJKJKJJJJJJJJJJJJJJJJJJJJHJHJHHGJGGGGFGFFFFEK³KKK³KKKKK³KKKKKKK+2O222+ÿÿþÿþÿþþþþþüüüüüüþþüþþþþþþþþüüüüóüüüüüüüüüüüüüüó1‡‡‡‡‡*óüóóóüóööúöööööõöõöõöëëõëöóëòóóóóóóðóðóóóóóóóóóðóóóððð134*44*ðóðóðððóðóððððððððððððððððððïððïðïðïððïÑïÝÝèÑïÑïÑáïÑÑ*33333*áÔ°ØÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÏÍÑÍÎÍÍÍÍÍÍÍÍÑÍͦ°¦ÉÍÍ+&&&&&&+K³KKKKK³KKK³KKKKK³EEFFFFFFGFGGGGGGHGHGJGHHJGHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýýýýýýýýýýýýýýýÿóóó÷úóóúóóóò¬so=!!!!!!!!!!$!!!$!!$$$!!!!!!!!$!===!!!!!!==!=!!$=$$=!!!!!!!=$!$!!!=$!=$!$!!$$====$!===!!==!====$$$====$$=====$!!===$=!!!$==!==!$=====$!$=$Zñÿÿÿÿÿÿÿÿÿÿÿÿÿÿò–=$=!==$!$!$=$!==$!==!!==$==$!!!==@…èýÿÿÿÿÿÿÿÿÿÿÿÿÿñx!!!!!=$$=!$$$!!==!!$=$!===$!===$=!!$===$!!=$==!!$=!========$$$$$$!!!!$=!$$!!===$$==$!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!$=!!!!!!!!!!!!!!!!!!!!! !!!!!!! ! !!!!!!!!!!Ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    =sªíþþþþþþÿüþþÿÿüýýýýýýýýýýýýýýýàÓ³³K·³³³³³K·K³³³³³K³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³¸³³i6i66666i666i6ii6i666ii666ii6i6i66666666i6ii6666i6ii6666iii666ii6666666666666666i6666i6i6i66i66ii66iii6i666i666666666666ii66iii6i66666666666i6i66666EGD 6ji6 66i& 6i666i6i6ii6ii66i666i666666i666666i6iii6666iii6ii6666i6i6i666i6i6ii6666i6i666ii666i66i666666666i6i6i66 6iiii6i6ii6666666i6i6i666ii666ii666i666ii66666i666i6ii666666666ii6666ii666666iii6i6ii6i66666iii6666i6i666666i66ii6666iii6iiiii6666iii6i666666666···························································K·K·³·K···K·K·K··K·KKKKK·KKK·J·K··K·K·K·K·K·KKKKJ·J·J·KKKKWJKJ·JKKKJKJKJJ·JKJJJKJJJJJJJWKJWKJJJJJJKJJJJJJJJJJJJJJJHJHJHJGHGGGGFGGFFFFDKKKKKKKKKKKKKKKKKKK+22222+þÿþÿþÿÿþÿþþþþüþüþüüþþþþþþþþþþþüüüóüüüüüóüüüüóüüü*‡‡‡‡‡1üóüóüóüööööööõöõöõëõëõìõëë÷ëóóóóóóóóóóóóóóóóóóóóóóóóóñ144*44*óðóðóóóóóðððòðòðððððòððððððððððððððððððððÝÝððèÑðïððÑï*333301ÑݰØÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÔ°¦ÞÍÍÍ+&&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFGFFFGFGGGGHGHGHGHHGHJGJHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýýýýýýýýýýýýüüÿüóúóóú÷ó÷úóò¬Žo!!!!$$!!!!!!=$!!!!!!$!!!!$!!$!!!==$!$$!!!!$!!!!!=!!=!!!==!!$!!!!!!!$$!=$=$!!==$==$!==$!!=$!!===$!!$!===$==!=$=$===!==$!$!======!$!!====!$=ZçÿÿÿÿÿÿÿÿÿÿÿÿÿúÆ@===$!$=$!$!==$===!==!!$!$!==$$!!$==!@ÆòÿÿÿÿÿÿÿÿÿÿÿúÆ@$!$$!!!!==!$=$$!!===!==!$==$!$==$!!$$!!=!!=$!==!!=$!==$!!==$====!!!!$$!!$=$!!$$!$9!==$$$!!!!!$!!!!!!=$!!!!!!!!!=!!!!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!  !!!! ! !Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      =}ªíþþþþþþýÿþþýÿÿýýýýýýýýýýýýýýýæÓ·K³K³³K³³³³·K³³K³³³³³·³·³·³·³³³³·³³³·³³³³³·³³³³³·³³³¸³³³³³³¸³³³³i66666i6i66666ii66i66i6i6i66i66ii66i6i666iiiii6i6666i6i6i6i66i66i6666i6i66i6ii666666666ii6i6i66i66iii666iii66ii6i66666i66ii6i6666iiii6666666i6i6ii6iEDD66ii8i6i &6i6665666iiiii66i6i6iiii666i66i6i6iiii66ii6ii66i666i66i666i6iiiii66iiiii66666i6iiiiiiii6i66ii6ii66i66i6ii666D66666666i6iii6i666i66666666i6i6iiii6i6ii666i6i666iii6i6i6666i6666i6i66i66i6i66i66666666ii6iii6iiii6i66ii66ii66666i6i6i66iiii6ii666iii666ii66666i³··K··K··K·K··K··K·K··K·K·K³·KK·KK·KK·K³·KKK³KK·K·K·K·KKK·KK·K·KK·KKKK·KK·KK·KK··K·KKK·K·KKKKKKKKKKKKKJ·J·KKK·JKJKKKKKKKKKJJ·H·JKJ·JJKJ·JJJ·HKJKJKJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJGJGHGGGGGFFFFFFFFKKKKKKKKKKKKKKKKKKK+22222+ÿüÿþÿþÿüÿüþþüþüüüþüüüþüþþüþþþþüüüüüüüóüüüüüüüüüü1‡‡‡‡‡*óóúóóüóööõöööõöõöõöõöõööëöóöóóóóóóóðóóðóóóóóóóóóóðóðóð1P4*44*ðððððððóðóðóðððóðóðóððððòððððððððïððïððððݰðïÝðÑðÑðÑð*3333M*ðØÝØáïÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÑÑÑÑÑÑÑÑÑ̦¦­ÍÐÍ×+&&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFFFFFGFGGGGGGGHGHGJGHJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýýýýýýýýýýýýýýýÿ÷óóó÷óóúóó÷òÓ�o!!!!$!!!!!!!!!!!!$$!!!!!$!!!!!!!!!!!!$!!$!$$!!$$==!!$@=!$!!=!!$$=$$=!!===!!!!===!!!$!!$$!$=$!$!!==$=!=!!$$$$=!!!$$!!!$$=$!!$!==!=$!!!Zßÿÿÿÿÿÿÿÿÿÿÿÿÿçu!=$$==!$!$==!$=$!!=!$===!$===!!=====$$!$==uÎüÿÿÿÿÿÿÿÿ÷›@====$$=$$==$!!====$!===!!$=!!$!!!=!==$$$=!==!!==!==!!!!!!!!!!!!=!$=!!!!!!!!!=!!!!!!!$!!$!!!$$!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!@ZZ[Z@!! !!!!!!!!!!!!! !!! !!!!! Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ =qšíþþþþþþþþþþÿÿýüýýýýýýýýýýýýýýæÓ³³K·³K³³K·³³³³³³³³K³K³³K³K³K³³³K³³³³³³³³³³³³³³³³³³³³³³³³³¸³³³³³³6ii666666666i6666i6iii6i66i6666iii6i6i6i6i6i66i6iii6i666ii66iiiiii6i6666i6666i6i6i66i6i6i66ii6i66i6666i66i6i6ii66666iii6i6i66i6ii6i66iii6ii666iiiii66EGEiiiEE8iii656666ii6ii6i66i6iii66i666i6i6iiii666ii666i6666i6i666iiii6i6666ii6i6ii66iii66i66ii6iiiiii666iiiii66i6i66i666i6i6D66i66i66iiiiiiiiii6i6ii6ii6666666666i66i6i6ii6ii666i666iii6ii666666i6i66666ii666i66i6i6i6iiiiii66iii6iii666i66i6i666iiiiii66i6iii66i66i6iiii66i6··········································³··³··³··³·······³·³·³·³····K··K··K·KKKK··K·KK·K·KK·K·K·KK·KK·JK·KKKK·K·J·KKJ·J·KKKJ·J·J·KKJKJKKJJ·JJKJJJKJKJJJJKJJJJJJJJJJJJJJJJJHJJJHJGJGHGGGFGFGFFFEKKKKKKKKKKKKKKKKK³K+22222+þþÿþÿÿüÿþþþþþþþþþüþüüüüüüüüüþþüüüüüüüüüóüüóüüüóü*‡‡‡‡‡1úóüóüóúööööööõöõöõöõëõëõëõóëñóóóðóóóðóððóóóðóóóóóóóððð*44*4Q1ðóðóðòðððððððððððððððððððððïððïðïÑÑïÑÑÑÑÑÝÝÑÑØáðÑïÑÑÑ*333331ÑÜÔßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÍÑÍÍÑÍÍÍÍÍÍÍͦ¨¦ÐÍÍͦ+&&&&&&+³KKK³KKKKKKKKK³KKKEFFFFFFGFGFGGGGGHGJGHJGHJGHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýýýýýýýýýüÿüúóúóú÷óóúóé¬�l!$!!$!!!!!!!!$!==$$!!$$!!!!!!!!!!!!!!!!!$=$!$$==$$!!$$$!$==!!!!==$$$==$!!!=$!=$!!=$$!$!!!==!!$!!!==!==$!!!=!$!!!$$$!!!!$=$!!!!$@ÎÿÿÿÿÿÿÿÿÿÿÿÿüÌ@==!=$!==!===!$!=$!$!====!=$$!!====!$$===!@–òÿÿÿÿÿÿòƒ===$=!!$==!!$==!!==!!====!!$$!!$!====!!==!$!!!!!=!!!!!$$!!$$!!!!!=!$=$!!!!!!$!!!!!!!!!!$$!!$!!!=!$!!$!!!!!$!!!!!!!!!!!!=!!!!!!$!!!!!!!! !$!!!!!!!!!@zÎóýÿ÷á–@! !!!!!!!!!!!!! !!!!!! !!!! Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_!ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ !! p¥íþþþþþþþþþþýÿþýýýýýýýýýýýýýýýàÓ³³³³·K³³³³K³³K³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³66ii66iii6i6iii666ii66i6ii666iii6666666i66iiiii6ii666666i66ii6i66i6ii666666i66iii6666666666i6iii66iii666ii6ii6i6i6i66ii6i6ii66i6i66i6ii6ii6iii6666666DDD666E66i666iii6666i66i6666ii6i6666i6i6i6666iii6i6666ii6iiii666i66666666i6ii66ii66ii6ii6i6ii6i66ii6666iii6i6i66666i6666iii6D i666i66iii66666ii6i66i6iiii666i66i6666iiii6i66i6i6ii6i666ii6i6iii66666i666666ii666i6i6i6iii6666i6i66ii6666ii6i66iii6iii6666666i6ii6666ii6666ii6i············································K··³··K··K·K·³·KK·K·KK·KK··K··K·KK·K·K·K·J·K·J·K·KKKKKK·KJ·KKKKKJK·JKJKJKJ·JKWKJK·JJKJJKWKJ·JKJJJKJJKJKJKJJKJJJJJJJJJJJJJJJJJJJJJHJHJHJGHGGGGGFFFFFEFEKKKKKKKKKKKKKKKKKKK+22222+þÿüÿþþÿýÿüþþþþüþþþþþüþþüþüüüþþþüüóüüüüóüüüüüüüüü14‡‡‡4*óúóóóóóöëöëööõëõöõöõöõöõöëúöóóóóóóóóóóóóóóóóóóóðóóóóóó134*44*ñóðððððóóðóððòðððððððððððððððððððððððððððݰððÝèïðÑðïð133333*ÑØÝØïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÑÑÑÑÑÑÑÔ¦°ÞÍÑÍÐÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFGFGFGFGGGGGHGHGHHGHJHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýýýýýýýýýýÿóóóóóóó÷÷óóò¬�o!!!!!!!!!!!!!!!!!!!!!$$!!!!!!!!!!$!$!!!$!$$=!!!!!!!!!====!==!!$!!!!!!!=!!$=!!!!=$!$$!!===$===!!$!!==!$$=!!!=$$$$$!$=====!$====!!=====@Éþÿÿÿÿÿÿÿÿÿÿÿ÷–!!!!==!!$$=$$==!==$===$!!$!!$=$=!$!$$!==$$!!$===záþÿÿÿè‚!!==!!!==!!$!!!!==!$!!$!$$!$$=$$!!!!$=$!$!!=$!!!!!$=!$$!=====!!!!$!!$!$$!!!$!!!!!!!$$$!!!!$!=!!!!!=!!!!!!=!!!!!!!$!!!!!!!!!!!!!!!!!! !$!!!!!!!!!@ÆüÿÿÿÿÿÿýÎY!  !!!!!!!!!!! !Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  qªíþþþþþþþþþþÿÿþýýýýýýýýýýýýýýýæÓK³K³K³³³K³³³³³³³³K·³K³K³³³·³·³³·³³³³·³³³·³³³·³³³³³³³³³³³·³³³³³³³i66i666i6ii6ii66ii6666i6i6i6iii6iiiiii66iii66i6i66ii6iii6i6i66666iiii6i6i66i6i6iii6i6i666i6ii66i6i6666ii6ii6iii6i666666i66i6i66ii6i666iiiiii666i6i66iEEDDi66i6i66i666iii6666i6ii6i666ii6iii6ii66i6ii6ii66ii666i6i66666i66i6i6iii6i66i6i6i6i66i6ii6iii666i6iiii6ii6iii6iiiii66i66Dii6i6ii6ii6666iiiii6666iii666ii6i6i6iii666666ii66i66i666ii6666iii6i6iii666iii6iii6i6i6i66i66i6i66i6i666i6i6i66iiiii6i66i6iii66i666ii6ii6i6iii666·K··K··K··K·KK·K··K··K··KK·KK·³K·KK·KK·K·³K³·K³KK³³³³K·K³K·K·K³·K··KKK·KKKK·K·K·KKKKK·K·K·KKKK·K·KJ·J·J·J·KKKJ·J·J·J·JKKKJ·JJJ·J·JKJKJJJJJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJGJHHGGGGFGFFFFFFEKKKKKKKKKKKKKKKKKKK+22222+þþþþÿÿüÿþþþþþþþþþüþþþþüüüüþüþþüüüüüüüóüóüóüüüüúü*‡4‡‡‡1óúóüóúúëööööëõöõöõöõëõëõëöóëóóðóðóóðóóóóóóðóóóóóóðóóóó*44*421óððóðòðððððóððóðòðððððððððððððððððððïðÑðÑÝÝÑïØèðÑðÑðá*333331ÑݰØÑÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÐÑÏÐÑÐÑÑÑÑÑÑÑÑÞ¦£ÔÑÎÐÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFFFGGGGGGGHGHGJGHGJGHJGJHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýýýýýýýýýýýýüüÿüóú÷úóúóóú÷ò¬ŽC!!!!!=!$!!!!!!!!!$!!!!!!!$!!!!!==$!!!!!!!!!!!$!!!$=!!==!=!!$!!!=!!==!!!=!!=!!$!===!!==$!!!!!!=!!!$!!==$!!!!!==$!!$==$!!!$====–üÿÿÿÿÿÿÿÿÿÿÿóx$$=!$!$!$======$$!!==$!$!!$!$$!==$!!!!!==$=$!!==$ZÌüÿáx$!!!!=$===!!!!$$$!!!!!=$!$=$!$=!==!!!!!!=!!$$!!!!!$$$!!=!!==$!!!!$!$$$!!!!!!!!!!!!$$=!!$9!!!!!!!!!!!!!!!!!!!!!!!$!$!!!!!!!! !!!!!$$!!!!! @Æÿÿÿÿÿÿÿÿÿÿá@!!! !!!!!!!!!!! ! !!Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_  ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!!    $p¥íþþþþþþþþþþüÿÿýýýýýýýýýýýýýýýæÓ·K³K³³K·³K³K³³K³³³³³³³·K³K³K³K³³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³666i6ii666i666iiii6i6i6666i6i6666666i6i6666i66ii66i6i66iii6i66i666iii6iii66ii66i66iii6i6ii6ii66ii6666i66i666i6i6666i6iii666i66ii6iiii66666ii6ii6i6666EGDD6i6i6i6ii66i66666iiii6i66iii6ii66iii666666iii6iii6i6i66i6i66i6i6ii66ii6ii666ii66iii66iii66i66i66666i6iiii6iiii6i666ii6iD i6i6666i6ii6ii6ii6i6iii6i66i66666ii66i6i6ii666ii6i6iii66ii66i6i666i66iiii6i6i6i6i666i6666ii66i6i66ii6666iiiii66666i6666666666iiiii66i66i66666ii6·········································K··³···············³·³·³K····K··K·K·KK·KK··K·K·JKK·K·KKKK·J·KK·J·J·J·JKKKKKJ·J·J·JK·J·JKJ·JJ·JK·J·JKJKJKJJKJKJJKJJKJJJJJJJJJJJJJJJJJJJHJHJGHGGGGGFGFGFFFFK³KKK³KKK³KKK³KKKKK+02222+þþÿþÿüÿüþÿüþþþþþþþüþüüþüüüüüüüþüüüüóóóóüüüüóüóüü1‡‡‡‡4*úóúóóúóöëöëõëõöõöõëõöõëõëëóëòóóóóóóðóóðóóóóóóðóóóóðóóð134*4Q*ððóðððóðòððððððððððððððððððððïðïðÑÑÑÑÑðÑðݰïÑÝÑÑïÑðÑï10333M*áÔÝÔÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÍÑÍÍÍÍÍÍÍͦ°¦ÍÍÍÍÍͦ+&&&&&&+K³KKKKKKKKK³KKKKK³EEFFFFFFFFGGGGGGHGHGJGHGJHHHJHHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýýýýýýýýýýýýýýýÿ÷óóóó÷ó÷úóóò¬s?!!!!!!!!!!!!$!!!!!!!!!!!!!!!$!!!!!$!$!!$!!!!$$!!!$!!$!!!$!!!!!$$$$!$$!==!!=$!!$!!$$=$$=!!=!==!!=$$$==!$$!==$!$=!$$$$!$==!=!!$=!=!$!!xóÿÿÿÿÿÿÿÿÿÿÿñx$!$=!!$!$!=!!=!!$$$!==$!====$=$$$===$$====$=$$!=!!==@ÆÌ]!$==!=!$$!!$====!$!====$!!!!=!!!$=!!==!$=!$$==!!=$$=!$!!!!$!!=!!$!!!!$!!!!$$!$!$!$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!!!!!! !!!!!!!�üÿÿÿÿÿÿÿÿÿÿýÆ!!!!!!!!!!!!!! Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_!ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  ! =sªíþþþþþþþþþþÿÿüýýýýýýýýýýýýýýýàÓ³³³³³K·³³K·³³K·³³K³³K·³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³i666i66i6i666i66iiii6i6i66i66i6iii666iiiii66i666iiiiiii6666i66ii6i6i66666i6i666i6i666ii66iii6ii66ii66i66i6ii66i66666i666i66i666iiii666i66iii6i6i66i66DDDDDi6i666i66ii666666i66i6iiii666ii6i6iii666i6ii66ii666i66i6i66ii6iiiiiiii66ii66i6i666iii6ii666i6ii6ii666ii66i666ii6iii66iiD66ii6i6iiiii666iii6666iiiii6i6i666iiii66i6iii6iiii66i66666i6i666i66i666666i666i6iiii6i6i6666666i66i66i66ii66i66iiii666i666i6i6ii66ii66i6i6ii6ii6··K·······································K···K·K·K·K···K·K·KKK·K··K···K·K·K·K·K·K·J·K·K··KKKKK·KKKKKKKKKKKKJK·J·J·JKKJKJKKJKJ·JKJ·JKJJJJJJJKJWKJKWJJKJJJJJJJJJJJJJJJJJJJJJJHJHJHJGHGHGGGFGFFFFFDKKKKKKKKKKKKKKKKKK³+22222+þþþþþÿþþÿüÿþþþþþþþþþþþþþþþþüüþþóüüüüóüüüüüüüüüüú*‡1‡‡‡1óüóóüóúëööööëõöõöõöõëõëõëëóëóóóóðóóóóóóðóóðóóóóðóóóóóó*44*321óðóòðóðððóððòððððððððððððððððððððððððððððÝÝððØèÑïððÑð*333001ïܰØÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÑÑÑÑÑÑÑÑÑÑÔ°¦ÞÑÐÑÍÑÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKEEFFFFGFGFFGGGGGGGHGJGHGHGJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýýýýýýýýýüÿüóúóúó÷óóúóò¬s?!!$!!!!!!!!!!!!!$!!!$!!!$!$$$=!!===!!!!$$!$!!!!!!!$!!!!!!$!!!=!!$==!=!!==$=$!!==$!!!!!==$!!$!!!==$==!==$!!!!!!$=$!!$$!!===!!!$@áÿÿÿÿÿÿÿÿÿÿÿñZ=!!=$!!==!=!=$!!======$=$$$=!$==!!=!$$=======$!!$=$=$=$!==$=$=$!$====$!$$===$!$!!!!!$!$=!$==$!!!==$=$!$!=!!=!!!!!!!!!!!$=$!!!$!!!!$!!!!!!!=$$$$!!!!!!!!$=$!!!!!!!!!!!!!!!!!! !!!!! !!!!!!!!!!!!!!!@ßÿÿÿÿÿÿÿÿÿÿÿÿñ_!!!!!!!! !!!! ! ! Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!! !!!qªíþþþþþþþþþþýÿÿýýýýýýýýýýýýýýýæÓK·K·K³K³³³K³³³K³·³K³³³K³³·K³³K·³³·³·³³·³³³·³³³³³·³³³³³³³·³³³³³³³6iiii6666iii666i6i66iii66iii6i66iii6i6ii6i666ii6i66ii66666i66i6ii6i6ii6ii6ii666ii6iii666i66ii6666i6i6666i666i6i66i666iii6666666ii66ii66ii66i6i66i6666DEDDD8666iiiiii6ii66i6i666iii6i66i66iiiii6iiii66i6iii66ii6i666666iii6ii666i6666iiii6ii6i66ii6i66ii6i66i6ii66iii6i66ii6i6i666iiDi6i6i6ii66iii66ii6ii6i6i6i6iii666ii66i6i6666i6i6i6i6i6i66ii6ii66iiii6i6i6i6iii6iiiiiii6666ii6i6i6ii66iii66i666ii666iiii66i6ii66i666i666i66i6i666·····K·K··K·KK·K·K·K·K·K·K·K·K·K·K·K·K·K·K··K·K·K·K·K·KK·K·K·K··KKKKKKKK·KK·K·KK·KK·KKKK·KKK·J·KJ·J·J·JKKKKJ·J·JKJKKJ·J·J·H·J·JJJKJKJ·JJJ·JKJJJJJJJKJJJJJJJJJJJJJJJJJJJJJHJJHJHJHGJGHGGGGGFFGFFFFFKKKKKKKKKKKKKKKKKKK+22222+þþþþÿþþÿþÿüþüþþþþþþþþüþþþþüþüþüüüüüóüóüóüüóüüüüü1‡‡‡‡4*óóóüóóóöëöëõëööõöõëõëöìõëëóòóóóóóóóóðóóóóóóóóóðóóóðóðó*44*4Q*ðóðóðððóðððóðððððððððððððððððððððððïððððÑÝÝÑðÝÑïðÑïÑð*33M33*áØÔàÑáïÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÏÑÐÑÑÑÑÑ̦¦­ÑÍÑÍÍÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFFFGFGFGGGGGGGHGHGHGJGJGHHJGJHJJHJHJHJJHJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýýýýýýýýüýÿ÷óó÷ó÷úúóó÷ò¬Ž?!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!$$!!!!$=!$!!=!!=!!!!$!!!$!!!=!!!$$!!!$$!!!!$===!!!!$=!$$$!!!!!!$=$$=!!!!$!$=$!$=$!=!===Ìþÿÿÿÿÿÿÿÿÿÿò]$$!$$$$!=!$$!$!$!$=$!!!!!$!!=$!==!$$$=$$$!!!!==!==$!!===$!!!$!$=!!$!!!!!=!!!!$=$$!!$=!!!$$!!!$!=!!!!$$!==!!$!!$$$$$!!$!!!$==!!$!!$!!!$=!!!!!!!!!!!!!$!!!!!!!!!!!!!!!$!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!Zóÿÿÿÿÿÿÿÿÿÿÿÿú‚!!! !!! !Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!qªíþþþþþþþþþþÿÿýüýýýýýýýýýýýýýýæÓ³K·K³K·K·K³K·K³³³K·³³³³³³K³³³³³³³³K³K³³K³K³³³³³³³³³³³³³³³³³³³³³³iii66i66iii6i6i666i6iiiiiiii666666i6ii666ii6666i6i6ii66i6i6i6i666i6666iii6i6ii6i666ii66i66666i6666ii6iiii666i66i6i666ii6i66666666ii6iiii666i6ii6i666iDEDD$i66iiii6i6iii6ii6ii66ii6i66ii666666i66iiii6i666i6i6ii6i666ii6666666i6i6ii66i66i6iiii6i6i666i66666i6i6i6i666i66ii6i6i666ii6DDD6666i66i6iiii6ii666i6iii66ii666i666ii66i6i66i66i6ii66iii6iiii666666iiiiii6ii6666ii66666iiii666i666666666i6ii6i6i6i66i6ii6iiii6ii6i6ii6i666i6iii6························K·³···K···········K··········K·····K·K·K····K·K·K·K·K·K··KK·K·KKK·KK·K·J·KK·J·KK·KK·JKKK·J·J·JKKJKKKJ·J·KKJKJKJ·JJJJJKJKJKJJKJJKJJJJJJJJJJJJJJJJJJJJJHJJHJGJGHGGGFGFFFFFEKKKKKKKKKKKKKKK³KKK+22222+üþþüÿþþþþþþþþþþüþþþþþþþüüüþüüþüüüóóóóüóüüüüóüóüú*‡‡‡‡‡1úúóóüóúöëöëööõöõöõöõëõëëëëóóóóðóóóóóóðóóðóððóóóóóóóðóð*44*341òðððóðððóððððððððïððððððððððððððïðïÑÑïÑÑÑݰïÑØèÑÑðÑðÑ*303331ÑØÝØÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÑÍÑÍÑÍÍÑÍÍÍÞ¦°¦ÍÐÎÍÐÍÍÍ­+&&&&&&+³KKK³KKK³KKKKKKK³KEGFGFFFFGFGGGGHGHGHGJGJHJHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýýýýýýýýýýýýüüÿüóúó÷óóóú÷óò¬Ž?!!!!!!! !!$$$$!!!!!!!!!!!!=!!!!!!!!!$=!!!$$==$!!=$!=!!!$!$!!!$!$!!!!!=$!==!$$$!!!==!!!!$!=!!!$$!!$=$!!$$!!!=!=$!!!!=$=$$z÷ÿÿÿÿÿÿÿÿÿÿó_=!!$$!!!!!==!$!!!$$!!!==!=!!$=!!!!$=====!!!!!=====!!!!$$$!!!=!!!=!=$!=$$!!!$$!!!==$$!!$$!$$!=!$!==!=!$!!!=!!!==$===!!$!!!!===$!!$$$$!==!!!!!!!!!!!!!!!=!!!!!!!$!!!!!!!!!!!!!!!!!!$ !!!!!!!!!!!!!!!!!!!! !!![ýÿÿÿÿÿÿÿÿÿÿÿÿþÆ! !! !!!!!!Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ! ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!   ! !!!sªíþþþþþþþþþýýÿþýýýýýýýýýýýýýýýæÓ³³³K³³³³³³³³³·K³³³³K³K³K³³·K³K³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³i66ii6i66666i6666iiiii66ii66i66i6666i666i66i6i6i6i6i6i6i66i66i66666i66i6ii6iiii6666ii66ii66i66ii6iiii6i6iii66666iii666i6666i66iiiii6i6ii66666ii66i6i6DDD666ii66i6666666i6i6iii6ii66i6i6iiii66i6i6ii6i6666iii66666i6iii6ii6ii6i6iiii6ii66666ii6i66ii66ii6i66i6666ii666ii66i6ii666i6iDDD6iii66iii6i6iii666ii6ii66i666666ii6iiii66iii6i6i6666i66ii66i6ii66i6iii6ii6ii6i6iii6ii6i66ii66iiii6ii6iii66iii6i6i66ii6i66iii6ii6iiiii6iii6iiiii6·······K··················³·K··K···K·······K····K··K···K··K···K·K·K·K·K·K·K·KKK·JK·KKKK·KKKKKKK·J·J·JKKJKKJ·J·JKWKKJ·JKWKKKJKKKJJJKWKJ·HKJKJKJKJKJKJJJKJJJJJJJJJJJJJJJJJJJJHJJHJHHJGHGGHGGFFFFFFFFKKKKKKKKKKKKKKKKKKK+22222+þþÿþÿþÿÿþÿþþþþþþþþüþþþþþþüþüþüüüüüóüüóüüüüóüüüüü14‡4‡4*óóüóúóóöëööööúöõöõëööõëöëëóõóðóóóðóóóóóóóóóóóóóðóóóóðó*43*43*óðóðóððóððòððððððððððððððððððððððððððððððÝÝðïÝèïððïðÑ13333M*áØ¨ßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÑÑÑÑÑÔ¦¦ßÑÑÑÍÑÍÐͦ+&&&&&&+KKKKKKKKKKKKKKKKKKDEFGFFFGFGFGGGGGGHGHHGJGHHJGHJGJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×þýýýýýýýýýýýýüýýÿúóó÷úóúóóóúò¬s?!!!!!!!!!!!!!!!!!!!!!!!!$!!!!=!!!!$$!!!!!!!=$!!!!!!!!=$!!!$=!$!!$!!$!$!!!$$!!$!!!!!!$!!!!$!$$!!==!$=!!!!$==!!==!$$==!$!==$$$!!!!@áÿÿÿÿÿÿÿÿÿÿüz=!!$=$$$$$=!==$!$$!!$=!$$$!$==!!===!!=!!$!!$!=!!!!=!=$!$===!!!!$!!!!=!!!$!!$$!$$!!!!!$===!!!=$!!!!!==!!!=$!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ!!!!!!! !!!!! !!ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ =pªíþþþþþþþþþþÿþÿýýýýýýýýýýýýýýýàÓK·K·K³K³K³K³K³³³³K³³³³³³³³K³·³³³³K³³³·³·³·³³³K·³³³·³³³·³³³·³³³³³6iiiii6i6ii666i6i66ii6ii6ii6i66i666ii6iiiii6iii66i6i666iiii6iiiii66ii6666666666i6ii6ii6iii66iii66i666ii6i6iiiii6iiii666i6iii6i66i66ii66iii6i66i6i6i66GGEDDii6iii6ii6i6ii6i666i6i666i66ii6iiiiii6i66i666iiiii6iiii6i6ii66i66i6i66666ii6i6ii6666666i6i66i6i6ii66i66iii66i6i66666iiii66iDi666i66ii66iii6i6i6666iii66i6ii6i666ii6ii6ii6i6666i6i666ii6i6ii6i666i66i66666i666ii6i6i666i6i66i6i6iiiii6ii666i6i66i666i66ii66i6ii6i6iii6i6ii6iiK·J·K·K··K··K·K·K··J·KK·K·K··K·KKK·KKK·KKK·K·KK·K·KK·KK·KK·KK·K·KKKKK·KK·KK·K·KKKKKK·KKK·J·KKKKJ·JKKK·J·J·JKJKKKKKKJKKJKJWJ·JH·J·JJJJJJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJGJGHGGGGFGFGFFFFDKKKKKKKKKKKKKKKKKKK+22222+üÿþÿþþüÿüþþþþþþþþþþþþþþþþþüüüþüüóüóüóüüüüüüóüüúü*‡‡‡‡‡1úúóüóúúööõöööõöõöõöõëöìõëëóëóóóóóóóóóóðóðóóðóóóóðóðóóó*44*431ðóðóðóðððððòððððððððððððððððððððððððððððïݰÑðÞèÑðÑðïá*M33001ïݰØÑÑÑÑðÑÑðÑÑÑÑÑÑÑÑÑÑÑÏÑÏÐÑÏÐÑÑÑÐʰ¦ØÍÑÍÑÐÍÍÍÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFGFFFFFGFGGGGGGHGGHGHGHGJGHHJHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýýýýýýüýüüþüó÷óóóóóúóóò¬s?!!!!!!!!!!!!!!!!!!=!!$$!!!!!$!!!=!!!!!!$!!=!!!$!!==$$!$!=!!$$!!!!!=!!!$=$!!$!!!$!!$!=!$$!!!=!!!!!$!!!!==!=!===!!!!==$!!!!–üÿÿÿÿÿÿÿÿÿÿ–=$$!!!!===$==!!==$!!$!!=$!!$$!!$$$$==!!!!!!$$$==$!=!!!=$=!$$!!!!!!!$!$!!!$!!!!$!!=!$!==!!!!$=!!$$!=!$=!!!!!==!$!!=!!!!!!!!!!!!!!=$!!!$$!!!!!!!!!!!!!!!!!!$!$!!!!!!!!!!!!!!!!!! !!!!!!!!!!!  !!!!!Z÷ÿÿÿÿÿÿÿÿÿÿÿÿú–!!!!!  !!!!Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !   !p¥íþþþþþþþþþþýÿýýýýýýýýýýýýýýýýæÓ·KK·K·K³K·K·KK³K·K³K³³·K³³³³³·K³³³·K³K³³K³³³³³K³³³³³³³³³³³³³³³³³ii666666i66ii6i6iii6i6i6iiii6i6i6i6iii66666ii6i66i666iii66i6i66ii6iii6i66i6i6iiii6i666666i6ii66i6i6iii6iiiiii66i66iii6i6i66ii6ii6i6i6iii6i6ii6666i6i6FDIED!666i6666666ii666i6i6iiii666iiii6ii66ii66i6i666666iiiii6666iii6ii6iiii666ii6ii666i66i6i6i66iii6i6ii6ii6666i6ii66666i6i66666i 6i6ii6ii6666i6iii6ii66ii6ii6i66ii66i6iii6i6ii6i6iiii6iiii6i6iii66666ii666iiiii6i66666i6iii66ii6i66666iii6i66i6iiii6i6i6i66ii6i6i6i6ii6iii66ii6i6·························K···············K···K·K·K··K·K·K·K·K·K·KK·K·K·K··KKKKK·K·K·KKK·KKKKKK·KKK·J·J·J·JKK·J·JKJ·J·J·J·KKKJ·JKJKJ·JKJKJKJJWKJJKJJJKJJJJJJKJJJJJJJJJJJJJJJJJHJHJHJHGJGGGGFGFFFFFFK³KKKKK³KKKKK³KKKKK+22222+ÿÿþþþÿÿþþþþþþüþþþþüüþþþüüþüüüüüóüóóüóüüüóóóüüüóü14‡4‡11úóóúóóóööõöööõöõëõëõìëëõëëóëòóóóðóóóóóóóóóóóóóðóóðóðóð133*441ñððððððòðóððððððððððððïðððððððïððïÑÑïÑÑÑÑÝÝÑðèÑïÑïÑÑÑ103M33*Ѩ°ØÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÎÑÑÑÍÑÍÑÍÍÑÍͦ¦°ÍÍÍÍÍÍÎÍÐÍœ+&&&&&&+K³KKKKKKKKKKK³KKK³DFFFFFFFGFGGGGGGHGHGJGHGJHHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýýýýýüýüýýÿúó÷úóúóúó÷÷ò¬}?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!=!!!!!!!!!!!!!!!!!!!!!==!!!$!$!!!!=$!!!!$!=$!!!=!!!$!!$!$$$$$!!!$==!$$=$!!!$$!ZñÿÿÿÿÿÿÿÿÿÿÌ=!==!$!!$$!!=$!=!!$$=!$==!$==!$==!!=!!$!!$!$$!!=!!!$$!!=$!!!!!$!!$=$$$$$$!$!!$=$$!=$$$!!!!!!$=$!!$!!==!!!!=!!!!$!!=!!$!$!$!!$!!!!!=!!!!!==!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !@áÿÿÿÿÿÿÿÿÿÿÿÿñ_!! !! !  !!ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ =qªíþþþþþþþþþþÿþÿüýýýýýýýýýýýýýýàÓK·³K·³³³³³³³³³³³³³³³³³K³³³K³³K³³³K³³³³³K·³³K³K¸³³³³³³K³³³³³³³³³³6iiiiiii6i66i66i66i6ii666i66iii666i6666i6iii66i66i6i66iii6i6ii6ii6i6i6i666iiii66iiiiii66iii6ii6ii6i66i66ii6i6i6iii6i6i6iiiiii6iiii6i6i66iiiiiii6i6i66DGE666i6ii6666iiiii66ii666ii6i6iiii6i6i6iiiiiii6iii6ii6ii6iii666i66i6666i6ii66666ii666666ii6i6i6i6i6i6iiiiii66666i6ii6ii6666i6DD6ii6ii66iiiii6i6i6666iii66666i6ii666i66i666i6i6i66i6i66iii6666666ii6ii66666i6ii6i666ii6i66ii6iiiii666ii6ii6666666i66ii66ii6i6ii6i6ii6i66iiiiiii6········K·····K············K··K··K··K··K··K·K·K··K·K·K·K·K·KK·K·K·K·K··J·K·K··KKKKKK·KKK·KK·KJ·KKKKKKKKKKKWKJKJ·JKKJ·JKKKJ·JKJ·JKJJ·JJKJWKJKJKJKJJKJJJKJJJJJJJJJJJJJJJJJJJJJHJJHJHHGHGGGGFGFFFFFEKKKKKKKKKKKKKKKKKKK+22222+þüÿþþÿþþþþþþþþþþþþþüüþþüþüþüþüüüóüóüóüüüüüóüüüüü*‡‡‡‡Q1óüüóúüúööööëöõöõìöëõëõëõëöóëóðóóóðóðóóóóóóðóóóóóóóóóóó*34*3P1óóðóðóðððððððððððððððððððððððððððððððððððÝÝðððáðïðïðç*330M3*ïݰØÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÔ°¦ÞÑÑÑÑÑÐÑÍÍÍÍ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFGFFGFGGGGHGHGHGJGHJGJHHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýýýýýýýýüýüýüüþüúóóúóóóúóóò¬�?!!!! !!!!!$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!=$!!==!!!!!!!$=!$=!$=$!!$$!$!!!$!!=!!!!!!!$$!!=$!!!!!$!ÆýÿÿÿÿÿÿÿÿÿñB!=!=!!$!$=!!=!$!!!$!!=$!!$$========!!!!!!!$=!!!!!$!!=!!!$=$!!!!=$!=====!=!!!$!!==$$==!!$$!!!!===!!!!$!==!!!!!$!$$!=$!$!!$!!!!$!!!!=$$$!!!$=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!…ýÿÿÿÿÿÿÿÿÿÿÿÌ@! ! !!!!!!!!! !! Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! !! !$}ªíýþþþþþþþþþýÿþýýýýýýýýýýýýýýýæÓK·K³·K³K·K³K³³·K³K³·K³³·K³³³³·K³³³³K³³³³K³³·³·³³·³·³·³³·³³³·³³³³i66ii66iiiii6i6ii66i6ii6i6i6i666i6i6iii6i666i6i6i6ii6i666i666ii666ii6i6ii6iiii66i6i66i66666ii6ii66i6ii6ii6666666ii6iiii66i66i6i66666ii6i66i666ii6i6iiDDDi6iiiiii6i6ii6i6ii666i6ii666ii6i6i6ii666ii66iiiii6666i6i666ii666i66i666666ii6ii6ii666i66i666i666666ii6i6iii6i66iii66i66i666D i6i6i66i6i6666i66i6ii6i66iii6i6i6ii6ii6i6ii666666i6iiii6ii6666i6iii66666i6ii6i66ii6666i6i6i6i6i66ii6i66iii6i6iiii66iiiiiiiiiii6i66i66ii6i666iiiiK·K·J·K·K·KK·J·K·K·K·K·K·K··K·K·K·KK·KK·K··K·KK·KKK·K·KK·K·K·KKKKK·KKKKK·KKK·KKK·KKKKKKKKKJKJ·JKKKJ·J·JKKKKKKK·JKKWKKKJKJKJKJJJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHHJGHGJGGGGGGFFFGFFDKKKKKKKKKKKKKKKKKKK+22222+þþþþÿüþþþþþþþþþþþþþüþüüþüüóüüüüóóóüóüóüüóóüóüüüü1‡4‡‡‡*óóóóóóóööõööëõëöëõëöëõëöëöóëòóóóóóóóóóðóóóóóóðóóóðóóðó*43*43*ððððóðððóððððððððððððððððððððððððððððïððïݰðïßðÑïÑïÑï*3M330*áÔ°ÝÑïáÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÑÑÑÑ̦¦­ÐÍÑÍÍÍÑÍÍÐÎÍ+&&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFFFFGGFGGGGGGHGHGJGHGJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýýýüýüýüýýÿúóóúóóúóó÷÷ò¬Ž?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!=!!$!!!!!!$!!!!!!!!$$!!!!!!!!!!!$$!$!!=!!!$$$!$!!!$!$$$!!!$$!$$!$!!!!$=!!!$$$!Bñÿÿÿÿÿÿÿÿÿý‚=!=!$!$!!$!!!$!!=$!$=$!!!!=$!!!$!$!!!!$$$!!$$!$$==$$!!!!=!!==$!!=!!!!!!!!==!!!$!!$!!!=!!$!!!!!$!!!$!!!$=!!$$!!!=!!!$!!!!$$!!!!!!$!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!@ÎÿÿÿÿÿÿÿÿÿÿçZ   ! ! !!–ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏßÑßÏÏÏñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷áÏÏÏÏÏÏÏÏßááÏÏÏÏÏÏÏÏÏÏÏÏÏßÏÏÎ !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ q¥íþþþþþþþþþþÿþþýýýýýýýýýýýýýýýàÓKKKKK·K³K·K³K³KK·K·K³K³³³³³K³³³³K³³³³³K·³³³K·³³K³K³K³K³³³K³³³K³³66i66ii6i6ii6ii6ii6ii66i6iiii66iiiii6i6ii6ii6i6ii66i66iiiiiii6ii66i6ii6iii6i6ii6666iii666i66ii6i6i666iiiiii6iiii66iii66iiiii6i6i6ii6i666ii6i6i6ii6i6i5EDED i6666i66i6iii6iii6ii66666i66i6ii666iiii6i6i6666i6i6i66666i6i6i666i6ii6i6iii6i6iiiii6i666i6i6iiiii666i66ii6i6ii6i6ii6i66iiiiDi66ii666i6i6i6iiii6i6i6ii6iii666i6666i6iii6i6iii66ii6ii6i66i6ii66i6i66ii6ii6i66iiiiii66i6i666ii6iii6i6ii66i6i666i6666i6i6666i66ii6ii6i6i666iii66·······K··················K····K·K·····K·K·K·K·K·K·K·K·K·K·K·K···KK·K·KKK·KKKK·KKK·KK·KK·K·K·J·K·J·JK·J·JK·JKJKKKKKJ·J·J·J·J·KWK·J·J·KJKJKJKJKJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJHGHGGGFGFFFFFFFKKK³KKK³KKKKKKKKK³K+22222+þþÿþþþþþüÿþþþþþþþüüþüüóüüüüüüüóüüóüóóüüóóüóóóóóü*‡‡4‡‡1üóüóüóúööööëöõëõëõëõöõöõöõóëóóóðóóóðóóóóóðóóóóðóðóðóðð*34*331òðòððóðððððððððððððððïððïððððïðÑðÑïÑïÑÑÑÑÝÝðÑÝÑïáÑïáÑ*30403*ÑݰØÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÐÑÑÍÑÍÍÐÞ¦°¦ÍÐÍÍÍÑÍÍÍÍÍÍÇ+&&&&&&+³KKKKK³KKKKKKKKKKKFFFFFFFGFFGFGGGGGGHGJGHGJGJHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýýüýüýüýüüþü÷óóú÷óóúóóò¬Žl!!!!!!!!!=!!! !!!!!!$!!!$$!!$!! !!!$!!!!!$$!!!!!!=$!!!!=!!$$=!!$!=$$$!!$!$!!!!$!$$!!!!!!!!!=!!!!$$=!!!$$!!====$!$$$!!!!!===!›üÿÿÿÿÿÿÿÿÿÎ@$!!$=$$=!==$!=!!$!!!$=!!=!!$=$!!!!!=$$!!$$!!$!!===!!!!!$!!==$!!==!!!!==!=$!!!!!$$$!!=!!!!!!$$!!!!=!$$!!!!!!!!!!!=!!!!!$$!!!!!!!!=!!!!!!!!!!!$!$!!!$!!!!!!!!!!!!!!!!!!!! !! !!!! !! !!!!Záüÿÿÿÿÿÿÿç‚   !! !  !!  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!  !  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !    p¥íýýþþþþþþþýþÿþýýýýýýýýýýýýýýýæÔK·K³³K·K³K³·K³³³³³³³³·K³³K³³³K³³³·K³K³³³K³³³K³³³³³³³³·K³³³³³³³³³i66iiiii66i6iii6i66ii6666666ii6i6666i6i666i6ii66ii66i66666666666iii666iii6ii6666iiii66iiii6666ii6666iii6ii6iii6iiii6i6i66i66ii6ii6ii66iii666ii666iii66EDD6iiiii66i6ii66i66i6i666i6i6i6i666iii6i666i6i6ii66i666ii6i66ii6i6i6i6iii666iiii666i6iiii666i6i6666iiii6666iiii6ii666i6i666iiDD 6iii6i6iii6ii6i666ii66i6ii6iii6666i6i6i666666ii6iii6ii66iiii666i66ii66ii6i6ii6i666666i6ii666i6iii6ii6ii66iiii6i666i6i66i66i666iii6i66ii6i6ii6i66·········K··K·K··J··K·K··K···K··K·K·K·K·K·K·K·K·K·K·K·K·K·K·KK·KK·KKK·KK·J·K·KKKKK·J·J·J·KJKKKKKKKJ·JKJ·J·JKJ·J·JKKJ·JKJ·JJKJKKJJKJJJJJJKJKJKJJKJJKJJJJJJJKJJJJJJJJJJJJJJHJJJHHJHJHGJGGGGGFFGFFFF³KKKKKKKKKKKKKKKKKK+02222+þþþþþÿüÿþÿüþþþþþþþþþüþüüüüüüóüóüóüüüüüüüóüóüóüüü14‡‡‡4*óüúóóüóöööööëõöõëöëõëööõöëúëòóóóóóðóóóóðóóóóðóóóóóóóóó133*431ñððóðððððððððððððððððððððððððððððððððððððÝÝèïÝèïÑïÑïï133T33*ÑØ°ßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÏÑÐÑÑÑÑ­°¦ÞÑÑÑÑÑÑÍÑÍÍÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFGFGFGGGHGGHGJGHGJHHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýýüýüýüýüýýÿúóúóóóúóó÷úò¬s?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!$$$!!!!!!!!$!$!!!!!$!!!!!$!!$!!!!!$$$=!!$!!!!!!!!!!$!$!$$$!@çÿÿÿÿÿÿÿÿÿú]==!!!!!!$$=!!$$!$$!!!!!$$!$!!!!!!$!$$!$!$!$!!$!$=!!$!$!$$!!!!!!$$!$!!!!$$!!$$!!$$!$!!!!!!$!!!$!!!!!!!!!!!$=!!!!!!!!!!!!!!$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!!!  !!!!!! @Æñ÷üÿ÷ñËZ! ! !!!!! ‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóxÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !qªíþþýþþþþþþþÿÿþýýýýýýýýýýýýýýýàÓ·K·K·K·³K·³K·K·KK³³KK³³³K·³³³³³³K³³³³·³³³³K·³³³K·³³³·³³·³³³·³·³·i6666ii6i66i6i6iii666i6iiii6i6ii6i6i66iii66666666iii66i66ii6iiii6i6i6iii6i6i66i66i6iiii666i66i6ii66iiiii6i6i6i6i6i666ii6ii6ii6i6ii6i6i666ii66i66i6i666EGDD6i6i6i6i6i6iii6i6i66ii6i66i666666i6ii6i6ii6iii6iii66iiii6i6ii6iii666iii6ii6i6ii666iii66i6ii6iiii6i666666iii66i66iiiii6ii6i6D66ii6i6ii66i666ii6ii66ii666i6i6i666ii6ii6ii666i66iii6iiiiii66iii6ii6i66i66i6i6iii6666ii66i6i6i6ii6i6i6i6i66ii66iiii6666666iiiii666iii6i6ii6iiii6·K·K·K·K·K·K·K·KK·KK·K·KK·K·K·KK·K·K·K·K·KK··KKK·KKK·KK·KKK·KK·KKK·KK·K·K·J·KK·KKJ·J·J·J·KKKKKJ·JKKJ·JKKJ·J·J·J·J·JJ·H·JJJ·JJKJKJJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJGJHGHGGGGFGFFFFFFFFKKKKKKKKKKKKKKKKKKK+22222+üÿþþüÿþüþþþþþþþþþþþüþüþüóüüüüóüóüóóüüüüóüóóüóóóü*‡‡‡‡‡1úóüóúóúööõöööõëõìõöõöõëõëöóëóóðóóóóóðóóóðóóóóðóóðóóðóð*34*3P1ðòððððóððððððððððððððððððððððððððððððÑðïðݰïðØèÑðïáÑá*M30M31ÑØÝØÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÑÐ×°¦×ÑÑÍÑÍÍÍÎÍÍÑÍÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFFFGGGGGGGGHGHHGHGHGJGJHHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýýýýýýüýüýüýüüÿüóóóúóóú÷óóò¬ŽC!!!$$!!!!!!!!!!!!!!!! !! !!$$!!!!!!$$!!!!!!!!!$!!!!!!=!=!!!!!!!!=!!!$!$=!!!=!!!!!==!===!!!!!!$!!!!!!=$$=!$!$‚úÿÿÿÿÿÿÿÿÿÆ=!$!!=!=!!!!!!$!!!$!$!!$!$=!!$!==!$$!$!$!=!$$!!!!!!!$!!!$$!!$!!$$$$$!!!!!!!$!!$=!!!!!!=$!$$!!@Zxxƒ‚ƒ‚‚x_ZY@=!!!=$!$$!!!!!!$!!!$!!===$!!!!!!$!!!!!!!!!!!!!!!!!!!!!  ! !!!!!!!!!!!!!!!!!!!!!!! !!!!!Z‚ÂÆ…_! !!! !!! !  !_ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! !  !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó�   ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      pªíýýþþþþþþýýýÿþýýýýýýýýýýýýýýýæÓK·K·K·KKKKKKK³K·K·K³³K³K³K³K³³K³³³K³³K³K³³³³³K³³³³K³³K³³³K³K³K³³66i66ii6i66ii6i6i66ii6iii6ii6i6iiiiii6iiii6i6ii66i6666iiiiiii6iiii666666i66i6i666ii6i66ii6i6iii6666666ii6i6i6666iiiiiii6i666ii666i66ii6i66666i6i66ii66GFDiiiiiii666ii6i6i6i6i6ii6ii6i6ii6ii66i6i666666i66i6i666i6iii6iiii6i66i66i6iii6i66ii6iiii6iiii6666i666i6i66ii666iii66i66iii6iDi6ii66666ii6666666i6i66iiiiii6iiii66i66i6i66i666ii6ii6i6ii66ii6i6666i6i6i66666ii6iiiii666iiiii666i6i6ii6ii66i6iii6i6i6i6i666ii6666666666i66ii66i·······K····K····K·····K·K·K·K·····K··K·K····J···K···K·K·K·KKK·KK·K·KKK·J·K·J·KKK·KKKKKK·J·KJ·J·J·J·KKKJ·JKKJKJKJ·J·JKKJK·H·J·JJ·JJJJKJKJKJKJKJJKJJJJKJJJJJJJJJJJJJJJJJJJJJJHJHJHJHJGGGGGGFGFFFFFKKK³KKKKKKKKK³KKK³K+22220+þþþþþþþþþþþþþþþþþþþþüüóüüüóüóüóüóüóüüüóóóüóóóúóú14‡1‡‡*óóóóóüóôöööööõöëöõëõìõëöëëóëñóðóóóóóóóóóóóóðóðóððððóðð133*43*ðððððòðððððððððððððïððïðÑïÑðððïÑÑïÑÑÑðÑÑÑݰïÑÝÑïÑÑïÑï10030U*ÑØ­ØÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÍÑÍÑÍÍÑͰ¦­ÍÍÍÍÍÐÍÎÐÐÍÍÍͦ&&&&&&&+K³KKKKKKKKK³KKK³K³DFFFFFFGFGGGGGGGHGJGHGJHHJGJHJHJHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýýüüýüýüýüýýÿ÷óúóó÷úóóúóò¬Žl!! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!=!!!!!!!!!!!!!!!!!!!!!!!!!$=!!!!!$!!!!!!!!$!!=!!!$!!!$!!!!$$!!!$!$!!!$!!Ìÿÿÿÿÿÿÿÿÿú]$!!$$!!!!$$!!$=$$$!!$$!$$!!$!$$!!==!!!!=!$!$$$!!!!$$=!$!$!$!$!!$$=$!$!!!!$$$=$$!!!!==!!!!!!!!!!!=!!!$Z_ƒÅÌáñ÷úüýüü÷óèÏÆ–‚Z@!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!! !!!!! ! !! !!!! !!! !!! !!! _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  sªíþþýýþþþþþþþÿþýýýýýýýýýýýýýýýàÓ·K·K·K·³·····K·K³³³³K·³³³K·³K·³³³K³³³³³³³³K³³³³³K³³³³³³³K·³³³³³³6iii6ii6666iii66i6iii6i6i6666ii666i6ii66i6ii6ii6iiiiii6i66iiiii6666i66iiii66666ii6ii666iii6ii6iii66i6iiiii666i66iiii6i6i6i6i6iii6iii6i66ii6i6ii6iiiii6DDDDi6iiii6ii6666ii6i6i666666iii6i6iii6i6iii66i6i6ii6ii6i6i6i6i66i6i6iiiiiiiii666i6i66ii6ii6i6i66ii6i6ii6iiiiiii6ii6ii6i6666i66D!66ii6ii66i6ii6i66ii66ii6i66i6i6i6i6ii6ii6i6i66ii6ii6666ii6ii6i6iii666i66666i6i6iiii6iii666i66i666i6i66666ii66i6666666i666iii6ii66i66iiii6iii66i6·K·J··K··K·K··K·K·K·K·K·K··K·K·K·K·K·K·K··J···K·K·K·J·K·J·K·K·K·J·K·K·K·KKKKK·K·J·J·K·J·J·JK·J·J·J·JKJ·J·J·J·J·JKJKJ·J·JKJKJJKJJJKJKWJKJWJJJJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJHHHGHGGGFGGFFFFFDKKKKKKKKKKKKKKKKKKK+22222+þþüüþþüþþþþþþþþþþþþþþüüüüüüüüüüüüóüüüüüüóüóüüúóó1‡‡‡‡41üóüúóóúööõöööõëõëõöõëöëõëëóëóóóóðóóóóðóóðóóóðóóðóóóóóó134*431óðóððððððððððððððððððððððððððððððððððððððÝÝððØèðÑðÑïá*03M301áØ°ØÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÑÐÑÑÑÑÑѦ°¦ÑÑÑÑÑÑÑÐÑÍÑÍÍÍËÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFGFFFGFFGGGGHGHGHGHHGHHHHJHHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýýüýýüýüýüýüüÿüóóú÷óó÷óóóò¬}?!!!!! ! !!!!!!!!!!!!! !!!!$!!!!!!!!!!==$!!!!=!!!!!!!$=!!!!!!!!!!!!!!!!!!!!!$!!!!!$!!!!!$!$!$!!===$!!!!!!!$@ñÿÿÿÿÿÿÿÿÿÌ@$=!!==!!!$=!$=$==$$=$==$$!$$$!!!==$!$!!!$!===$!$!=$$!!$!!!!==!!!=$$=!!!!===!!!=$$=!!$!$==!$$!!Ax›Îñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷èÈ‚Z!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!=!!!!! !!!!!!!!@_x‚‚�__@!!!!!!!!!      ! ! ! _ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ!  ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   ! !!!$sªíýýþþþþþþþþýÿþýýýýýýýýýýýýýýýæÓKKK·KK·KK·K·K·K·³K·K³³K³³³³³³³K³³·K³·K³·K³³K³K³³³·K³K³K³³³³³³³K³66666i6i6iiiii66i6i6ii6i6i66ii66i6ii66i6iiii666i6i6iii666i6iiii6iii666666iii6iiiii666i666iiii6i66i666iiiiiiiiiii6ii6i6i666i6i6i66iii66ii6i6ii666ii6i6iDEDDii6i6iiiiiii6i6ii66i6iiii666i66i66iii6iiiii666i66666i6i6ii6i6iii666ii6iiiii666i6iii66iii6i66i6iiiii66i6i6iii6ii6666666ii6i6DDi6i6i66i6i6i6iiiii6ii6iiii666i6i666iiii666ii666iii6i6i6ii66ii6666666iii6ii6i66ii6i6i6i6ii6i666iii66i66666ii66i66iiiii6i6i666i666i66666i6ii66ii66K·K·KK·K·K·K·J·K·K·K·J·K·KK·K·K·KKK·KK·KKK·K·JKKK·JK·KKK·KK·KK·J·J·KKJ·KKK·J·JKKKKKKKJKKKKKKJ·JKKKKJKKWKKJKJ·J·JJ·JKKHJJJ·HJJ·JJKWKJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHGJGGHGGGGGFFFFFFFKKKKKKKKKKKKKKKKKKK+22022+þþþüþüþüþþþþüþþþþþþüþüüüüüüüóüüóüüüüüóóüüüüóüüóú14‡‡2‡1óóóóóüóööööõëõöõëöëõëõëõêöóëóóóðóóóóóóóóóóóððóðóðóðóðó*33*341ñðððóðóðððððððððððððððððððððððððïðïðÑðÑðÑÝÝÑðÝèÑðÑïÑï13U030*áÔ°ØáÑïÑÑðÑÑÑÑÑÑÑÑÑÐÑÐÑÐÐÐÑÐÒ°¦ØÑÐÑÐÑÍÍÑÍÍÍÍÑÍЦ+&&&&&&+KKKKKKKKKKKKKKKKKKEEFFFFFGFFGFGGGGGGGGJGGJGHHGJGHHJHJHJHJHJJJHJJJJJJJJJJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJÓ×ýýýýüýüüýüýüýüýýÿ÷óúóóúó÷úóúò¬sj!!!!!!!!! !!! !!!!! $!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!$!!!!$!!$$!!!!$$$!!!!!!!!!!!!$!$!!$!!!!$!!!!=!ƒúÿÿÿÿÿÿÿÿý]!!!$!!!!$!$=!!!!=!!$!$!!$!$!!!!$!!!$=!$!$!!$!!!!!!!$$!!!!$!=$!!$!!!!!$!!!!!!!$!!$!$=!!!!!!@ƒÌóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáÅ_=!!!!!!!=!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!! !!!!!!! !!!@‚ÅÎñóúü÷óñΖ_;!!!!!!!!! !!!!!!!! ! !! �ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!!  $q¥íþþýýýþþþþþÿþþýýýýýýýýýýýýýýýàÓK·K·KKKK·KKK·KK·KK³K³K³K·K³K³K³K·K³³K³³³³³³³³³³³K³³³³³³³³K³³K³³³i6ii6ii666ii66666ii6ii6ii6i6i6ii6i666ii666iiii6iii6i666i666ii6ii666ii6ii66i6i6666i6i6ii6i6i6i66iiii66i6iiii6i6iiiiii666ii6i666iii6i666i6i6i666i6ii6i66EDDF6i6iii6666666ii66i6iiiii6i6ii6iii6ii6i6i66i66i66iiiii6i6i66i66666ii66ii6ii6ii6i6iii66i66i6i6ii6iii6i6i6i6i66i6ii6i666iii6iiD6i66iii6ii6i6666iii66i666ii6i66ii66iiiii66i6iii6iii6i66iiiiiiii66666ii666iii66ii6ii66i6i66i6ii666ii6ii6i666i6i6ii6666iii6i666i666ii666ii66i666ii·K·K··K·K·K···K·K·K···K·K·K·K·K···K·K·K·K·K·K··K···K···K·K·K·K··K·KK·KK·KKKKK·K·KKK·K·K·K·J·KK·J·J·KKKKJ·J·JKJ·J·J·KKK·JKJ·JKJKKJJJKJKJJJJKJKJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJHHJGHGGGFGGFFFGEKKKKKKKKKKKKK³KKK³K+22222+þþüþüþüüþüþüþþþþþþþþüüüüüóüüüóüüóüüóóóóóüóüüóóüó1‡4‡‡41úóüóóóóööööõöõöõìõëõëëìëëëóóòóóóóóóóóóðóóðóóðððððððððð*34*Q01ðòððððððððððððððððïðððððððïðÑïÑïÑÑÑÑðÑÑðÑÝÝïÑÝÑÑïáÑïá*304031ÑݰØÑÑÑÑÑÑÑÑÑÑÑÑÍÑÑÍÑÍÑÎÍÑÍÞ°¦ÔÍÍÎÍÍÍÐÍÍÍÑÍÍÍÍͦ+&&&&&&+³KKKKK³KKKKKKKKK³KEEFFFFFFFFGFGGGGGHGHHGJHHGJHJHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýüýüýýüýüýüýüüÿüóóúóóúóóóóò¬}?!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!=!$$!=!==!!!!!!!$=$$$!$===$$!!!!!!!$$!!$=!!!!!$!!==!$!Ìÿÿÿÿÿÿÿÿÿá@=!!!=$=!!!!!!!!!!!!!$!!!!!!!$!!=$!!!!!!!!!!!$$=$$!!!!$!!!!!$!!!!!$!$!$!!!!!$$@‚ÌúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÆ_!!!!!!$!!!!!!!!!!$!!!!!!!!!!!!!!!!!!B!!!!!!! !!!�ÌúÿÿÿÿÿÿÿÿÿÿÿóÆ_!!!!!!!!!!!! !!!!!!! ! !!!!�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    =s¥íýýþþþýþþþýýÿþýýýýýýýýýýýýýýýæÓ·K·K···K·K³³K³³K³³³³·K³³³³K³·K³³³³³³·K³³K³·K³·K³³³³K³·K³³³³³·K³³6i666i6666i6i66ii666i6iiiiii6666666iiiii66iii6i66i666i66iiiiiii6iiii6i6ii6i666i66666i6666i6ii6i6i6iiii6iii66i66iii66666i666iiiii6i66i6i66iii66iii6i666EDDD666iii6iiii666666iii66ii66i6666ii6i6iii66iiiii6ii666ii666iii6iiii6i6i6ii6ii666666i6iii6ii6ii66666i6i666i6i6i666i66iii666iiDi6i6i66i66666iiiii6i6i6ii6i6iii6iii6ii66iiii6i6666i66i6i6i666iiiii66ii6i6i6iiii6ii6iiii6i66666i6iiii6iiii6ii6i6666i6iiiii6ii6i6iiiiii6666i6iii6iK·K·K··K·K·K···K·K·K·K·K·K·K·K·J·K·J·K·K·K·J·KK·K·J·KKKK·KKK·KKKK·KK·KKKKKK·KKKKKJ·JKJ·JJKJKJKJKKJKJKJ·J·JKKKWKKJKJKWKJKJ·JKJKJJJKJJKJJKJKJJJKHJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJHJHJGHGGHGGFFFFGFFKKKKKKKKKKKKKKKKKKK+22220+þþþüüüþþüþüþþþþÿüþþþþüüüóüüüüüüüüüüüóüüüüüüüüüóü14‡4‡‡*óúóóóóúööõöõëõöõöõëöëõëöëëóóóóóðóóðóóðóóóóóóóóóðóòóðóó133*341ñððððòððòððððððððððððððððððððððððððððïðÑðݰðïÝèÑðÑðÑÑ103030*áØÔßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÔ¦°ÞÑÑÑÑÑÑÑÑÍÑÍÑÍÍÍÍ­+&&&&&&+KKKKKKKKKKKKKKKKKKEFFFFGFFGFGGGGGGHGHGHGJHHGJHJHJHJJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýüýüýüüýüýüýüýýþúóúóóúóóúóúò¬Ž?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!$!!!!!!$$!!!$=!!==ðÿÿÿÿÿÿÿÿÿ–=!=$!!!$!!!=!!$!$$!=$!!!!!!$!!!$!$!!!!!!$!!!!!!!$!!$!!!!!!!!$!!!!!!!!!!!!!=!!!!!!!=!!!!!!!=xËúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç–B!!!!!!!!!!!!!!!!!!!!!;[‚‚x�‚‚�xZ!!!!!!!!@�ÅÎ�!!!!!!!!!!!YÆ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò–;!! !! !!!Yxdxxxx��Z! !!Y��x��_dx�d@!!!!![____�____�!! _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  =q¥íþþýýýþþþþþÿþþýýýýýýýýýýýýýýüàÓK·KKK·K·K·K·K·K·K·K·K³K·KKK·³³K·³K³³³³³K·³³³³³³³³K³³³³³³K³³K³³³³i6i66iii666ii66ii66i6iii66i6ii6666ii6iii6i66i66iii66iiii666i6i6i66i666i6i66iiii6i6ii666i6i666i666666ii6i6i666iii6ii6i66iii66ii6ii6i6i66i666i66i6ii6ii6EDDDii6i6i6i6iiii66666i66i666i66ii6ii666iii66666i66iii66i66i6ii6666i666i6iiii6ii6ii6666i6ii66iiiiii6i66i6ii66iiiiii6i66i66ii66DD66ii666ii66ii6iii6ii6ii6i6ii6ii66ii66ii666i6iii6ii66i66i6iiiii6i6ii6i66i6666ii6iiii6i6ii6i6iiii666ii66666iii6ii6i66i6iii6iiii6i666i6iiii666ii6ii·K·K·KK·K·KKKKK·K·K·K·K·K·J··KK·KKK·K·J·K·K·K·KKK·KK·KKKK·KKKK·KKKKKJ·KK·KKKK·J·KKK·KKJ·KK·J·WKKKKWKKKJKJKKKJKH·KJKJKJKJJJJJJJKJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJGJGHGGGGFGFGFFFGFKKKKKKKKKKKKKKKKKKK+22202+üþüþüþüþþüþþþÿüÿþþþþüüüüüüüüüüüüüüüóüüóüüüüüüóüó144‡441úóüóúóüööööööõëõëõìõëëëëëëóõðóóóóóóóóóóóðóðóððóððóðóðó*34*431ðóðóððóððóðóðððððððððððððððððððððïððÑðÑðïÝÝÑðØèÑïÑïïá*303031ÑØÝØÑÑðÑÑÑÑÑÑÑÑÑÏÐÑÐÐÐÐÑÑÐØ¦°×ÑÐÑÑÑÍÑÍÍÑÐÍÍÑÍÐͦ+&&&&&&+KKKKKKKKKKKKKKKKKKFDFFFFFFFFFGFGGGGGGHGHGHGHGJHGJGHHJHJHJJJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýüýüýüýýüýüýüýüüÿüóóú÷óóúóóóòÕ�l!!! !!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!=$!!!!!!!!$!!!!!!$$!!!!!$!!$!!!!!!!!!!$$!!!!!$=!!$!!!!!!=$!!!!]óÿÿÿÿÿÿÿÿúZ=!!!!!=!!=!!!!$!!$!======!!!!!!=$!!!!!!!!!$$!!!!!!!!!$!!!!!!!!!!$!!!!!!!!!!$!!B–ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÎx$!!!!!!!!!!!!!!!!$]Ï÷÷÷÷÷÷÷óÆ@!@‚Ìóÿÿá@!!!!!!!!!ZÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ@!!!!! !!@Æó÷÷óóóó÷Î@!–ñ÷ó÷ó÷ó÷÷÷ÎY!! –ñ÷óóóóóóóóá; _ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó…@@;;;@@@@;;;;@;;;;@@@@@@;;;;@;ÈýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ ! !=qªíýýþþþýýþþýýÿþýýýýýýýýýýýýýüýæÔK·K·KKK·K·K·KKK·KKKK·KK·K·K³K³K³K·KK³K³K³K³³K³K³³³·K³K³³³³³³³³K³66iiii6i6ii66i66i666ii6i6ii6iii666iiii6iiiii6iiiii666ii6iii666666iiiiii66i6iii66i6666666ii6ii6iiii66666ii6i66iii66i6i6i666i66i6i66i6iiii6i6iii66i6ii66DEDDDi6666i66i6i66i6ii6i6i666iiiiiiii6i66iii6i6iiii6666i66666ii6i66i666ii6i66ii6i6i6i66ii66i6i66i6ii666ii66i66i6ii6ii66iii6666i 6iii6ii66iii6i6i6i6iii6ii6i66666ii666i66i6i6i66ii66i6i6i6ii66i6ii6i6i6iiii6i66i6i6ii66i666ii6ii6ii66i6iii6iiii666iii6i6i666i666iii6i6i66ii6i66i6K···K··K·J····K·K·K··K·K·K···J·K·K·K·K·K·K·KK·KK··J··KK·K·J·K·KKK·K·K·KK·JK·J·KKKK·JKKK·KJK·JKKKJ·JKKJ·K·J·J·J·JKJ·KKKJ·H·J·J·JJJJJKJJKJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHHHGJGGGGFGFFFFFFK³KKK³KKK³KKKKKKKKK+22032+þüþþüüüüþþüþþþþþüüüþüüóüüþüüóüüóüóüüóüüüóüüüóüóü1Q‡‡‡‡1óóóóúüóööõöëöõìõöëö÷ëëìëêöóëóóóóðóðóðóóðóðóðóðððóðððòð133*3Q*ñððððððððððððððððððððððððïðïÑïÑïÑÑïÑðÑÑðÑݰïÑØÑïÑïÑáï*03040*ÑØ­ßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÍÑÎÑÍצ°¦ÐÍÍÍÍÍÍÍÍÑÍÍÎÐÍÍÍÍÇ(&&&&&&+K³KKK³KKKKK³KKKKK³EFFFFFFFGGGGGGGHGHGJGHHHJGHHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýüýüýüüýüýüýüýüÿúóúóó÷úóóúóò¬�o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!$!!$=!!!!=!!!!!–üÿÿÿÿÿÿÿÿáC!!!!!!!$!$$!!!=!!$!!!!!!!$!!!$!=!!!!!!!!!!!!!!$!!!!!$!!!!$$$!!!!!$!!!$!!!!!$!!!!!!!!$!!!ZÉüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñƒ@!!!!!!! !!!!!!!!!xñÿÿÿÿÿÿÿÿÌ@!!#‚Ìüÿÿÿÿü–9!!!!!![áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ! !!!!!!@Îÿÿÿÿÿÿÿÿð@ZáÿÿÿÿÿÿÿÿÿÿÈ@_óÿÿÿÿÿÿÿÿÿÿ  �ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ  !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýðÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!qªíýþýýýþþýþþÿÿýýýýýýýýýýýýýüýüàÓKKK·K·K·K·K·K··K³·³·K·³K·³³³³K·³³³³³³³³³³K³K³³³³³K³³³³³³K³K³K³³³i66iii66i6i666ii6i66i66ii66i66i6i666ii6i66ii66ii6i666i66i6ii6i66iiii666666i6ii6iii666iiiiii6i6666i6iii66666ii66ii6i66i6ii666i6i6666i6iii6i66i6ii6iiii6GEDD6ii6i66i6iii6ii666iiii6ii6i6i6ii66i66ii66i666iiii66ii6ii66iiiiii6i6i666i66i6666i66iii6i6i666ii66i666666i66666i66666666i6i6D6i6ii666i66666i66i6iii66i66666iii6i6i666i6ii6iii66i6iii6iiii6iiiiii6ii6iiii6i66iiiiii6iii6i6iii66i6ii6iii6666ii666iiiii6ii66i66iiii66i6i6i66ii66K·K·K·K···K·K·K·K·K·K·K·K·J···K·K·K·K·K·J·K·KK·J·J·K·KK·KK·KKKK·JKJ·KKKJ·KKJ·J·J·JKK·JKKJ·KKJ·JKKKJ·J·JKJKKJKKJ·KJKH·JKJJJJJJWKJKKWJKJJKJJKJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHHJGHGGGGFGFFFFFDKKKKKKKKKKKKKKKKKKK+02202+üþþþüþþþþüþþüüüüþüüüþüüüþüþüüüüüüüüüüüüüüüüüüüüó*4‡‡441óüüüüüúöööëöëõöõë÷ìîëõëëëëóëóóóóóóóóóóóóóóðóóðóóóóðóóó134*401ðððóðóððòððððððððððððððððððððððððððððððððÝÝðïèðÑðÑïïÑ*03030*ÑݰØÑÑÑÑÑÑÑÑÑÑÐÐÑÐÑÑÑÑÑÑÑÔ°¦ÐÑÑÑÑÑÑÑÍÑÑÍÑÍÑÍÍÍÍ×+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFGFFFGFGGGGGGGHGHHGHGJGJHJHJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýüýüýüýýüýüýüýüüÿü÷óóúóóú÷óóò¬Žl!!!!!!!!! !!!!!!!!!!!!!!!!!!!$!!! !!!!!!!!!!!!!!!!!!!!!!=!!!!=!!!!!!!!!!!!!!!!!$!!$!!!!!!!!$!!!$=!!!$!!ÉýÿÿÿÿÿÿÿÿÆ@!=!$$!$!!!!!!!!!!!!!=$=!=!$!!$$!!$=====!!!!!!$!!!!!!$=!!!!=!!!!$=$!!!$=$!!!!!$$!!xßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÆ@!!!!!!!!!!!!!!_ñÿÿÿÿÿÿÿÿÎ@!!ZÆóÿÿÿÿÿÿÿñZ!!!!!!!!!ZáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ! !!!@ÎÿÿÿÿÿÿÿÿçY!!!!‚óÿÿÿÿÿÿÿÿÿú…!!!;áÿÿÿÿÿÿÿÿÿÿÑ!!!dýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !   !  =sªíýýþþþýýþýýüÿþýýýýýýýýýýýýýüýæÓ·K·KKK·KK·KK·K·K·K·K³·K·³K³K·K³K³K³K³·K³³³³·K³·K³³³³·K³³³³³³·K³³ii6iiii6iii66ii6ii66i6666iii66i6i6i66iii666666i6i66i6i66ii66ii6ii6ii6i6ii6i6i6i6666i6i6i66ii6i6iiii66i6iiiii666ii6iiii6i6i6iiii66i666ii6iiiii6ii6iii66EEDD6ii6i6i6i6iii666ii66ii666i6i6i66ii66iiiii66iii66i66666i6i66666i6iiiii6iiii6i6iiii6ii6i66iiiiiii6666iiiii666iiii66iii66iii6DD6i6i6i66iii6iiii6666i6ii6iii6i6i666i6ii6ii666ii6ii666666ii66iiii6i6i66i66i66i6i66ii6iiii6iiii66iiii666i6i6iii66iiii666ii6iiii6ii6i666i6i6ii6iiiiK··J·K·K·K·J·KK·KK·KKK·KK·K·KKKKK·KK·KK·K·KKK·K·K·KJ·KKKKKKKK·J·K··KJK·KKKJ·J·JKKKKK·JKK·JKJ·JKKWKKKJ·HKJ·H·JKJ·HKJKJJJKJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJHJHJGJGHHGGGGGGFFFGFFFFKKKKKKKKKKKKKKKKKKK+22220+üþþþþþþþüþþþüüüüüþþþüüüþüþüüüüüüüüüóüüüüüüóüüóüó1‡2‡‡41÷üüüóóóööööëöõëööõëõìëëõêëóëóóóóóóóóóóóðóóóðóóðóððóðóð*43*341ñòðððððóððòðððððòðððððððððððððððððÑððððÑðݰðïÑÑïÑïÑÑá1303+3*ç­°ÝÑðÑÑðÑÑÑÑÑÑÑÑÏÑÐÐÑÐÐ×°¦ØÑÍÑÍÑÍÑÍÑÍÍÑÍÑÍÍÐÎÍÍ&&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFFFGFGFGGGGGGGHGHGJGHJGHGJHJHJJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýüýüýüüýüýüýüýüÿóóóúóó÷óóúóò¬Ž?!!!!!!!!!!!!!!!!!!!!!! !! !!!$!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!áÿÿÿÿÿÿÿÿÿz!$!!!!!!$!!!!!$!!!!!!!!!!$!!!!!!=$!!!!$!!!!!!!!!!!$!!!!!!!!!!$!!!$!!!!!!!!!!!!!!!!=!xçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆB!!!! !!!!!!!!!!_ñÿÿÿÿÿÿÿÿÌ@=‚ßüÿÿÿÿÿÿÿÿÿÆ=!!!!!!!Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüx !!!@Îÿÿÿÿÿÿÿÿð@!;Æýÿÿÿÿÿÿÿÿÿñ_ !Èþÿÿÿÿÿÿÿÿÿ÷Y xþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ  !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!q¥íýýýýýþþýþþÿþþüýýýýýýýýýýüüýüàÓKK·K·KKKKKKK·KKKKKKKKK³KK³K·K·K³K³K³K³K·K³K³K³K³³K³K³³³K·³K·³³³Kiiiiiii666666666i6iiii6ii666i66i6666666iii6i666i6ii666i66i66i666i66iiii6ii6iii6iiiiii6ii6ii66i6i6iiii6666i666i6i66iiiiii6666iii6i66i6ii6i6i66i6666666iEDEDDi6i6i6i6666iii66i6iii6i666i6iii6ii6i6i6i666iiii6i6iiii6ii6666i6i666i6ii6i66i6i66ii66866i6i66ii66iiii6iii66i6iiiiii66i66i66D6ii666ii6i666i86iiii6‰ii666iii66i6i6i6iii666666i666ii6i6i6i666i6ii6iiiii66i6i66ii6ii66i66i66iiiiii666666i6i66ii6i6i6i6ii66ii6666666i66i6i6ii66i6·K···K·K·K·K·K·K·K···K·K·K·K···K·K·K·K·J·K·KKKKKK·J·K·J··K·KK·KKKKK·KK·K·J·K·J·K·JKKJ·KJK·JKKKKKKJ·JKKKWKKJ·J·JKKWJ·JKWJ·J·JKJKJKJJKJKJKJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJJHJHJGJGHGGGFGFFFFFEKKKKKKKKKKKKK³KKK³K+20202+üüþüþþþüüþþüüüüüüþþüóüüþüüüóüóüüóüüüóüóüüüóüóüúó*‡‡4‡41óóüóüóúöëöëöëõöõëõë÷ëëëëëëóëñóóóóóóóóðóððððóððóððóðððð*43*4M1ððóðóðððððððððððððððððððïððÑïÑïÑïÑðÑðïÑðÑÝÝÑïßáÑïáïïá*03030*Ѱ°ØÑÑÑÑÑÑÑÑÑÐÑÑÍÑÍÑÍÑÍ×°¦ÔÍÍÍÍÍÍÐÍÎÍÍÐÍÐÍÍÍÍÍÍÍ+&&&&&&+³KKKKKKKKKKK³KKK³KDFFFFGFFFGFGGGGGHGHGJGJGHJGJHJHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓüüýüýüýýüýüýüýüüÿüú÷óóúóú÷óóò¬Ž?! !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!$!!!!!!==!!!!!!$!!!$!!!!!!!!!!!!!$$$!!!$=!!!!!!!!!!!@ñÿÿÿÿÿÿÿÿüZ!!$!=!!!!!!!!!$!!==!!$!=!!!!!$!!!!$!!!!!!$=!!!!!!!!!!!!$$$!$!!!!!$!!!!!!!!!‚ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ñçÏÏÎÎÎáçòüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÌB!!!!!!!!!!!_ñÿÿÿÿÿÿÿÿÌZ…ñÿÿÿÿÿÿÿÿÿÿÿ÷_!!!!!!!‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ;!! !!!@ÎÿÿÿÿÿÿÿÿñB  YáÿÿÿÿÿÿÿÿÿÿÎB ‚üÿÿÿÿÿÿÿÿÿÿ–!!!!_þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ! !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!   7p¥õýýýþþýýþýýýÿýýýýýýýýýýýüýýüýæÓ·KKKK··K···K·K···K·K··K³·K³K³K³³³·K³³³³³³·K³³³³·K³³³K³³³³³³³K³³³ii6i666i6iiiiiiii6i6i6i6iii66666i6ii66iii66i66ii66i666ii6i6ii66i6iii6i6ii66i6iii66666iiii6i666i666i666i66i6ii66ii6i6i6iiii6iiiii6i6ii666ii66ii6i6i66ii8EDDEi66i6i66i6666Š666ii666666i66EGDDi666i6i6666ii66i‰6i66i86½ii666‰i<66666i6656<½i666i6i566½5iˆŠ‰6ˆ666Q‰66666‰6‰6‰5ˆŠ6i66666ii6ˆ666i6666Q6666Ni6i6ii6i68i5iii6iii666i66i66iiiN68iiii86iiiii66ii6i6iiKK·K·J·J·KK·K·KKKK·KK·K·KK·K·K·KK·KKKKKKK·KKK·J·K·J·J·J·J·KKKKKJ·KJ·KKJKKKJ·KKKKKJ·JKKKWKKKKJ·J·JKWKKJKJKJH·JJKJKJJKJKJJKJKJJJJJJJJJJKHKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJJHJHJGJGHGGGGFGFGFFFFFKKKKKKKKKKKKKKKKKKK+20220+üüüüþþþüþþüüüüüüþþþþüüþüþüüüüüóüüüüüüþüüüóüóóüüó1‡4‡441óüüüóúúëöëöööõöõöõöõëöëõêëóë÷ðóóóóóóóóðóððóððóððóðóððñ143*O31ðóðóðóðóðòðððððððóðððððððððððððïððïðððÑðÑÝÝÑÑØèÑïïÑïá*33030*Ñ­°ØÑïÑÑÑÑÑÑÏÐÑÑÑÑÐÑÏÐÔ°¦×ÐÑÑÍÑÍÑÍÑÍÍÍÍÍÎÍÍÐÎÍЦ+&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFFGFFFFGGGGGGGHGHGHGHGJHGJGJHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýýýüýüýýüýüýüýüüÿüóú÷ó÷úóúóóò¬�l!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!x÷ÿÿÿÿÿÿÿÿß@!!$!!$!!!$!!!!!!!$$!!!!!!!!!!!=!!==!!!!!!!!!!=$$$=$$!!!!!!!!!!$!!!!!!!!!!!xçÿÿÿÿÿÿÿÿÿÿÿÿÿüçÆx@!!!!!=$!!=ZƒÌóÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ@!!!!!!!!!!!!!!xñÿÿÿÿÿÿÿÿüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿü‚!!!!‚üÿÿÿÿÿÿÿÿÿÿóÎÆ–ÈÎüÿÿÿÿÿÿÿÿÿÿð ! !!!!!@ÎÿÿÿÿÿÿÿÿðB !!!!Âüÿÿÿÿÿÿÿÿÿ÷d! !ÎÿÿÿÿÿÿÿÿÿÿóY !dýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! ! !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍ!!qªíýýýýþýýþýýýÿýýýýýýýýýüýüýýüýæÓ·KKKK·KKKK·KKK·KKK·KKKKKK·KK·KK·K·K·KK·K·K³K·K³K³K·K³³K³K³K³K³K³iii6i66i66ii66i6i6iiiii6iii6666i6ii66iii6iii666i66ii66ii6i66i66i6iii66iiii6ii6ii6iiiiiii66iiiii6ii6iiii66iii6i6ii8iii6ii6ii6666i66666866‡‰j¿6ˆ66ˆˆˆ28ii<<666ˆˆˆˆˆˆˆ0iiiNˆ66ˆˆˆ666ˆ6655Sˆˆ6ˆˆ5Nˆii56ˆNˆ66ˆˆSS666iˆˆ>ˆˆ6iN<<5i6Q6ˆ<ˆ5i66ˆNˆi66i<6i>66ˆi<6i6i666i66i6iiiˆ6QNiK··J·K···K·K·K·J···J·K·J·K·J·K·J·KK··K··KKK·K·KKKKK·KK·J·KK·K·K·KK·J·K·KK·K·JKK·J·KKKJ·JKKJ·J·JKKJ·JKK·J·J·JKKWKKJ·JJJKJKJWKJKJKWKJKJJJJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHJGHGGGGGFGFFFFFDK³KKK³KKKKK³KKKKKKK+22202+üüüüþþüüþþüüóüüüüüþüüüüüüüüüüüóüóüüóüþüóóüóóóóóú144‡‡41óúóóóóúôöööööõöõöõöõöõìëëëóëóóóóðóóóðððððóððððóðððððóð10Q*331ñðððððððððððððððððððïððïðïðÑðÑÑÑÑïÑðÑÑðÑïݰÑðÝÑÑïÑáÑï*00+00*ÑÚ°ØÑÑÑÑÑÑÑÑÑÑÍÑÍÑÍÍÑ̦°­ÐÍÍÍÍÍÍÍÍÍÍÑÍÐÎÐÐÐÍÍÍͦ+&&&&&&+K³KKKKKKKKKKKKKKK³DFFFFFFFFGGGGGGHGHGJGJGJHJGHJHJHJHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýüüýüýüüýüýüýüýýþúóóóúóó÷ó÷úò¬Ž?!!!!!!!!!!!!! !!!!!!!!  !!!!!!!!!!!! !!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!…üÿÿÿÿÿÿÿÿË@!!!!!!!$!!!!$!!!!!!$!!!!!!!!$!!$!!$!!=!!!$!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Záÿÿÿÿÿÿÿÿÿÿÿÿÿñ–Z=!!!!!=!!!!=!9‚Ìúÿÿÿÿÿÿÿÿÿÿÿÿü–$!!!!!! !!_ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ@!!!!!!áÿÿÿÿÿÿÿÿÿÿßx@!;–ñÿÿÿÿÿÿÿÿÿü@ !@Îÿÿÿÿÿÿÿÿç@!@ÎÿÿÿÿÿÿÿÿÿÿáY!–üÿÿÿÿÿÿÿÿÿþ‚_þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    ! !qªíýýýýýþþýýþþÿýýýýýýýýüýüýüüýüàÓKK·KK·KK·KK·K·K·K·K·K····K·K·³K·K·³K·³³³³³K·³³³³³³³³³³³³K·³³K·³³i66666i6iii6ii66iiiii66i6i66iiii6iiii6i6i6666ii6iii6iii66ii6i6i666iiii6ii6i6iii6666i666i6>ii666i666i6Ši6‡666iii6666i66i6iiii66¿6i½66666¿¿i6‰6ˆiNˆˆ<ˆˆSNˆˆN666ˆj8ˆ6iNˆˆ6ˆ66ˆSSˆˆˆNˆˆˆNiNN6ˆˆNSˆ5iˆSˆˆ=825SS!!!! !!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!$!!=$!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!$!!!!!!$$$–üÿÿÿÿÿÿÿÿ–=!!!!!!!!!=!!!!!!$!!!!!=$!!!!==!!!!!!!!!!!!!!!!!!!!!!$!!!!!!$!$!$!!!!!!!@ÌýÿÿÿÿÿÿÿÿÿÿÿüÌ_!!!!!$!!!!!!!!!!@–çÿÿÿÿÿÿÿÿÿÿÿÿó‚!!!!!!!!!!!xñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñΖ@!!!@óÿÿÿÿÿÿÿÿÿÏY!!!!_üÿÿÿÿÿÿÿÿý‚!!!!@Îÿÿÿÿÿÿÿÿð@!!_ñÿÿÿÿÿÿÿÿÿÿÈ;_óÿÿÿÿÿÿÿÿÿÿË! _þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ# áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  !p¥íýþýýýýýþþýýÿýýýýýýýüýüýüýýüýàÖKK·KKKKKK·KK··K··KK·KK·KK·K·K·K·K·K·KKK·K³·³K³K³K·K³KK³³³³³³³K³³6iii666ii666ii6ii6666iii6i6iii6ii6666iii66i6ii66i6iiii66i6ii666i6i666ii666ii66i666ii66Ài‡Àiiiii6i6i666½66¿Q6666¿¿56iii8666¿‡¿¿¿½¿¿¿666‰<6½ˆ‡665ˆŠ½i‰‰6EDDDDF½,,,,, ,NQi‰65‰ˆ½ˆ‰ˆ‰ˆˆ‰½ˆ‰‰‰ˆˆˆˆ‰ˆ½‰ˆˆˆ8‡‰ˆˆˆˆ½ˆ½ˆ½ˆˆˆˆˆˆˆ½ˆ½ˆˆˆˆiˆ‰ˆˆˆO‰‰ˆˆ½ˆˆ<ˆˆˆˆˆˆˆSˆˆˆ½ˆˆˆˆˆˆˆˆ5ˆSS2ˆNˆSˆˆˆˆˆˆˆˆDDLˆNNˆˆˆˆˆˆˆˆˆˆˆSˆˆˆSˆNˆ66ˆ6ˆˆˆˆSˆNˆˆˆˆˆ6ˆNˆˆi2ˆˆˆ!‰ˆN<ˆNˆNˆˆˆˆˆˆˆNˆiˆSˆˆNiˆNˆˆˆSˆSNˆSˆˆˆ54NˆˆˆQNiSˆ6SN‡NˆN6NN2ˆNNˆ<ˆ63$6ˆˆNˆOˆ!!  !!!! !!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!$!!!!!!!!!$!!!!!!!!!!!!!Æüÿÿÿÿÿÿÿÿ‚!!!!!$!!!!!!$!!=$!!!!!!!!!!!!!!!=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!_ñÿÿÿÿÿÿÿÿÿÿÿñ‚!!!!!!!!!!$!!=!!!!!!!!=@ÆüÿÿÿÿÿÿÿÿÿÿþÈ!!!!!!!!!!_ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌ‚@!!! !!!–üÿÿÿÿÿÿÿÿÆ!!!!YÿÿÿÿÿÿÿÿÿÈ!! !@Îÿÿÿÿÿÿÿÿð@  ;Ëÿÿÿÿÿÿÿÿÿÿñ[!  Èýÿÿÿÿÿÿÿÿÿü‚  xþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ; ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! =qªíýýþýýýýþþýýÿýýýýýýýüýüýüýýüüæÔK·KKKKKKK·KKK·K·KK···K···K·K···K·K···³·K··K³·K³³³³³³³³·K³³·K³³³³6666iii6iiiii6ii66iii6ii6666666i6ii6ii6666i6ii6i6iii666i6666‡66ii6i6i6665i<нii6<½À¿¿¿À6¿Š¿½¿½½½66½<‰½ŠP¿‰‰½½½¿¿½¿¿<½½‰‰‰‰ˆ½½‰½‰ˆ½½‰‰‰‰<ˆ½‰½ˆ½ˆˆ‰ˆIFDDD,, ‰‰‰‰‰‰‰‰‡ˆ½ˆˆˆˆ‰ˆ‰ˆ½‰ˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ½Sˆˆˆ½ˆˆˆ<ˆˆˆˆˆˆSˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSSˆˆˆˆˆˆSˆˆˆˆSˆˆˆˆˆˆˆˆSSSˆSˆˆDNˆN6ˆNˆˆˆ3ˆˆˆSˆˆˆˆˆSNSNˆSˆSˆˆSSˆNˆSˆˆˆˆˆˆSSSˆSSSSSSˆˆˆNSSˆˆˆNˆˆNSNˆNSNNˆNNSNˆS8ˆˆˆNˆSSˆSNNNNNNˆSSNSNSSˆNSNNN<ˆSNˆNNSN6iSˆ6NˆNNNNLSNNSSSNSSSNKKK·J·K·K·J·J·K·KK·J·K·J·J·K·J·J·JKJ·J·J·KKK·KKJ·J·J·KKKKJ·JKKKKKJ·J·JK·KKKJKJKJKJ·JKJ·JKKWKKJJKJKKKKKJ·HKJJ·HJ·JJKJJJKJKJKJJKJ·JKJJJKJJJJJKJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJHJHJHJHHJGHGGHGGFFFFGFEEKKKKKKKKKKKKKKKKKKK+20204+üüþþþþþþþüþüüþþþþþüþüþüþüþüüóüüüüüüþüüüüüüüüüóüü13‡4‡4*óúóúóüóööööõöõëöìõëöëõëëëëóòóóóóðóóóðóóðóðóóóóóóóóððóó134*331ñðóððòððððððððððóððððððððððððððððïððððððïÝÝðïÝÑÑïÑðÑï*03003*Ñ­°ØÑÑÑÑÑÑÑÑÑÏÑÑÑÑÑ­°¦ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÍÑÍÐÍÍÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFFFFFGFGGGGHGHGHGHGHHHGJHJHJHJJHJHJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýüüýüýüýüýúýüýýÿúóóó÷óúóúóúò¬s> !!!!  ! !! !!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Æÿÿÿÿÿÿÿÿÿz!!!!$!!!!!$!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!@Îÿÿÿÿÿÿÿÿÿÿÿçx!!!!!!!!!!!!!!!!!!!!$!!!!@Æüÿÿÿÿÿÿÿÿÿÿ÷‚!! !!! !!_òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç…@!!!!!ÈÿÿÿÿÿÿÿÿÿZ !!÷ÿÿÿÿÿÿÿÿÈ!@Îÿÿÿÿÿÿÿÿç@ ![ðÿÿÿÿÿÿÿÿÿÿÎ;‚üÿÿÿÿÿÿÿÿÿÿÈ!!‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! !q¥íýýýýýþýýýþþÿýýýýýüüýüýüýüüýýàÓKKK·K·K·KKKK·KKK··JKK··KK···K·K·K·KK·K·K·K·K··K·KKK·K³K·K·K³K·K³iii66ii666i6ii666i6ii666i666i66i85i6iiiiÀi6¿666i66ii‰Q6iÀ‹Q¿Àii6À6666¿ÀQ‡½66i6>½ˆ½Q½‡Œ¿½½½‰¿½‰‰‰Q‰‰‰‰½¿½½½¿½<½‰½½½½‰ˆ½ˆˆ½½‰‰‰½ˆˆ½½ˆˆˆ½‰‰½ˆ‰½ˆˆ‰½NGDD,,LS½ˆ½ˆˆˆ½ˆˆˆˆˆ‰ˆˆ½ˆˆ½½ˆˆS½ˆˆˆˆˆˆˆˆˆ½ˆ½ˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆSˆˆNˆˆSˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆSˆSˆˆˆˆˆSˆSˆˆˆSSNSˆˆˆSˆˆSSSˆˆSDLˆˆNSˆˆˆˆ<ˆˆˆˆSNˆˆNˆˆSˆˆˆˆˆˆSSˆˆˆNˆˆˆSSNˆNˆSSNˆˆˆSˆSˆNSNNSˆˆSSˆSˆNSˆˆSSNSNNˆNNˆˆNNˆˆˆSSSˆˆˆSNSNNˆˆˆNSNNNSSNNNNˆSNNˆNNNNˆ!ˆSNNNNˆNNNˆNˆSˆNNSSNN·J·KKKKJ·J·J·J·KJ·J·J·J·K·J·J·J·K·J·KK·J·KJ·J·KKJ·JKKJKKKKKKKKWKKKJKKKJKJ·J·J·J·KKJ·KKKKKKKKJ·J·JWKJJKJKWKJJKJJJJJKWKJJJJJJJJJJJJHKJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJHJJJHJHJJHJHJGJGHGGGGFGFGFFFFKKKKKKKKKKKKKKKKKKK+03030+üüþþüþþþþüþüþþüþþüüþüþüþþüüüüüüþüóüüóüüüüüüüóüó÷1‡4‡441üóóúóóúöëöëõëõëõëöêõìëìëëëóóóðóóóóðóóóðóðóððóóóóðóððóñ133*301ðððóððóððððóðððððððððððððððððððïðÑðÑðÑïÑïݰÑðØèÑÑïïáÑ*330+0*ÑݰØÑÑÑÑÑÐÐÑÐÐÑÑÐÑØ¦°ÞÑÐÑÑÑÑÑÑÑÑÍÑÍÍÍÑÍÐÍÍÍÐÐÍÍÔ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFFFGFFFFFGFGGGGGGHGHGJGHGJHGJGHHJHJHJJHJJHJJJHJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJÓÓýüýýüýüýüýüýúýúüÿüóúóúóóúóóóò¬s?!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Èýÿÿÿÿÿÿÿÿx!!!!!!$!!$!!!!!!!!!!!!!$!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!ƒúÿÿÿÿÿÿÿÿÿÿñx=!!!!!!!!! !!!!!!=!!=ÆýÿÿÿÿÿÿÿÿÿÿÏ@!!! !!!_ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ_!!!!! !Æÿÿÿÿÿÿÿÿÿ@!!!!Îÿÿÿÿÿÿÿò…!;Îÿÿÿÿÿÿÿÿð@ ! !!–÷ÿÿÿÿÿÿÿÿÿýÂ;Zñÿÿÿÿÿÿÿÿÿÿç@!  _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ;  !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    q¥íýýýýýýýýþýýÿýýýýüýýüýüýüýýüüæÕK·KKKKKKK·KKK·KKK·K·KKKKKKKKKKKKKKKKKKKK·KK·KK·K·K³K·KK³K³KK³K³Ki6666i6666iiii6ii666i6iii66ii6À6<¿<66i66i¿6iÀii6i6iŠŠÀ6À¿6‰½¿6iˆ65½½¿¿¿¿‰½½¿½½¿½½½½½¿‰¿½‰‰½½½‰½¿½½‰‰‰‰½‰‰½½8‰<½½½½½½½½½‰‰‰‰½‰½‰‰‰½‰ˆ½ˆˆˆ½ˆˆ½ˆˆ½‰½ˆˆˆLIDDLˆˆ½ˆ½‰‰ˆˆˆˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆ½ˆˆˆ½ˆˆˆˆ½ˆˆˆˆˆ‰ˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSˆˆˆˆˆˆˆˆNˆˆSSˆˆSˆˆˆˆˆˆSSSSSDDDLSSSˆˆˆˆˆˆˆˆNˆSSSˆˆSSˆˆSˆˆSˆˆˆSSSˆSSˆNSSSˆˆˆˆNSˆSˆSˆSNSˆNSNˆˆSNNˆˆˆNˆˆSSSNˆNSNˆˆˆSNˆˆˆˆNˆSSˆSNNSNNSSNSNˆNNSSNNˆNNSNNˆSNNNNNSNSNSSNNNSNNSS$ˆNSNSNN³J·K·J·K·K·KKK·KKK·K·K·KKJ·K·K·KKK·J··J·KKKKKKK·KK·KK·K·KK·J·J·KKK·K·J·KK·J·JKKJKWKKJKWKJ·JKKJKKKKKJ·JKKJKJ·J·JKJ·JJJKJKWKJKJKJKJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHGJGGGGFGFFGFFDK³KKKKKKKKK³KKK³KKK+20202+üüüüþþþþþþüþüþþþüüüüþüþüüüüóüüüüüüóóóóüüüóüóóóúó1P44‡41óóúóúóúööëëõìöëõëõëëëëëëëìóñóðóóóðóðððððððóðóððóðððóðð103*33*òòððððððððððððððÑððððððïðÑïÑïÑÑÑÑðÑðÑïÑðÑݰïÑÝßÑðÑÑÑÑ100+00*ÏØ­ØÑÑÑÑÑÑÑÏÑÍÑÍÑצ°ÔÍÍÑÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÎÐÍÍÍÍÍͦ'&&&&&&+K³KKK³KKKKKKK³KKK³DFFFFGFGGGGGGGGHGHGJGHHJGHHJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýüüýüýüýüýüýüýüÿóóó÷óóúóóúóò¬}?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Èýÿÿÿÿÿÿÿÿx!!!!!!!$$!!!!!!!!!!!!!!!!!!$!!!$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!;áÿÿÿÿÿÿÿÿÿÿóx9!!!!$!!!! !!!!! !!!!!!!!!@Èÿÿÿÿÿÿÿÿÿÿ÷ƒ!! !!!!!_ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌZ!!!!!ÈýÿÿÿÿÿÿÿÿZ!! !!–ÿÿÿÿýáÆ_@!!!!@Ìÿÿÿÿÿÿÿÿç@!!!;Ëÿÿÿÿÿÿÿÿÿÿ÷‚ ;Îÿÿÿÿÿÿÿÿÿÿü_ _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !    !pªéýýýýýþýýýþþÿýýýüýúýýüýüýüüýýàÓKKKK·K·K·KKK·KKK·KK·KK··K···K···K···K··K·K·K·³K³³³K·K·³K·³³³K·³³i6666ii6i66iii6Ši6i6j8À<6i666½Š‰iÀ¿À6¿6i<À6666½¿5<½6½À¿½<¿½½¿¿¿½½¿½½‰¿¿¿¿½‰‰‰¿½½‰‰‰½¿ˆ½‰½½ˆ½ˆ½‰½½½½‰‰‰‰‰‰ˆ½½½‰½½‰½½‰=‰‰‰½‰ˆ½ˆ½½ˆ½ˆˆ½ˆ½ˆ½½ˆ‰½ˆ½ˆˆˆ½ˆˆˆˆLDDDLˆˆˆˆ½ˆ‰ˆ½½ˆˆˆˆ½ˆˆˆˆˆ½ˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆ½ˆˆˆˆˆNˆˆSˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆSˆˆˆˆˆˆˆSNˆˆˆSSSSSLLLLSˆNSSSˆˆˆˆˆˆˆSSSSˆˆNSNˆˆˆˆSSSSSˆNˆˆˆSˆˆNNˆˆˆˆˆNNSˆSˆNNNˆˆNSNSSSNNNSSSˆˆSSSNNSNNˆˆNˆSNˆˆNNSSSSˆNNˆSSˆNNSSˆNNNNNSˆNSNNSˆNNNNNNSNNSSNNNSNSSSSNˆSNNNNJ·KK··J·J·KK·J·J·KKJ·JKK·J·JKJKKK·J·JKKKK·KK·KKJ·JKKJKJKJKJKKKJKKJKJKJKJKJKKKWKKKKKKKKKKKJ·J·J·JKJJ·H·JJ·JJJJJJJJJJKJJKJJKJWKJJKJWKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHHGHGGGGFGFFFEFFKKKKKKKKKKKKKKKKKKK+04020+üüüþþþþþþþüþþþþþþþüüüþüüóüüüüüüüüüüüóüüüüþóüóüóü*‡4‡4Q1óúóóóúóöëöëëëëëõëöëõêõêõêëóëòóóðóóóóóóóóðóðóðóóóóóðóð÷*43*331ðððóðòððððòððððððððððððððððððððððððððÑðÑð­ÝÑðØÑÑÑÑïÑç*00+30*ÑØÔØÑÑÑÑÑÑÑÐÑÑÑÑѰ¦°ÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÑÑÑÐÑÍÍÎÍÍÍͦ+&&&&&&+KKKKKKKKKKKKKKKKKKFFFGFFFFFGFGGGGHGHGHGHHGHJGJHJHJHJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓüüüýüýüýüýúýüýüúÿüóúóúóóú÷óóò¬Ž?!!!!! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Æüÿÿÿÿÿÿÿÿ‚!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!ƒ÷ÿÿÿÿÿÿÿÿÿü–9!!!!!!!!!!!!!!!!!!! !!!!@ßÿÿÿÿÿÿÿÿÿÿá@ !! _ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿáZ!! !!!!!!–üÿÿÿÿÿÿÿÿ–!! !ZÿÿóÎ…Y! !!;Îÿÿÿÿÿÿÿÿð@YçÿÿÿÿÿÿÿÿÿÿáY Âüÿÿÿÿÿÿÿÿÿÿ  _ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!! !!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  !pªíýýýýýþýýýýýÿþýüýýýüüýüýüýýüüæÓ·K·KKKKKKK·KKK·KK·KK·KK·KKKK·KKK·K·KK·K··K·K·K·K·K·K·K·K·K·K³·K³À6i6ii<6ÀiiiiŠ5\6¿‡86ˆ<ŠÀ½ˆŒ¶‰¹»»c‰À½¿½5¿¿ˆ½¿½¿¿½¿¿¿½¿¿¿½i‰‰¿¿½8½¿½½½¿‰½¿½½‰‰‰½½‰¿‰½½‰ˆ½½½‰½½ˆˆ½‰½½½½½‰‰‰‰ˆ½½½½½‰ˆˆ½ˆ½ˆ½ˆˆ½ˆ½½‰½‰ˆ½ˆˆ½ˆˆˆˆˆˆ½ˆ½ˆˆ½ˆˆˆˆˆNDDDDSˆˆˆ‰‰ˆˆˆˆ‰ˆˆˆˆˆ½ˆˆˆ½ˆˆ½ˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆSˆˆSˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSSˆNSSˆNSˆˆˆˆSˆˆˆNSNSSSSSˆSˆSSˆˆˆˆˆNˆˆˆˆSSˆˆˆSNˆˆSˆˆˆNSNNˆˆSˆNˆˆNˆˆSSˆˆNNSNSSSˆNˆˆNNSˆSSSNNNSSSˆNSSSNSNSNˆˆˆSSNNNNSSSNNNNˆSˆˆNNˆNNSNNNˆNNSSSNNSNNSNNSNNNNSNNNNNSNˆNNNSSSNSSKKJKJKK·J·J·J·JKK·J·JKKKK·JKKK·J·J·JKK·JKKJKJKJ·JKK·J·J·J·KKWKKKKWKK·J·J·KKKKKKKKJKJ·JJKJ·HKJJJJJKJJKJJJJJKJKJKJ·JKJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJHJGHGJGGGGGGFFFFFFFDKKKKKKKKKKKKKKKKKKK+20304+üüüþþþþþþþüþþþþþþþþþþüüüüüüüüüóüüüüüüóüüóüóóüóüó14‡4‡4*úóúóóóüëöëëëêõêöìõëöëëëëêëóêòóóóóóðóðóðóððóðóðóðóðóððó133*331ñóðððððóðòððððððððððððððððððððïððïðÑðÑáïÑݰïÑàÑðÑïáïÑ*03000*ÑØ°×ÑïÑÑÑÑÑÐÑÐÐШ°¦ÞÐÑÐÑÑÑÑÑÑÑÑÑÍÑÍÍÍÍÍÍÍÑÍÐÐÍÍÌ+&&&&&&+KKKKKKKKKKKKKKKKKKDFFGFFFFFGFGGGGGGGHGHGJGHJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýýüüýüýúýúýüýúýüÿúóó÷ó÷úóó÷úò¬s? ! !! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!Åüÿÿÿÿÿÿÿÿƒ!!!!!!!!!!!!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$! !!!!!!!!$$!!!!!@ßÿÿÿÿÿÿÿÿÿÿÌ@!!!!!!!!! !!!!!!!!!!!!!xóÿÿÿÿÿÿÿÿÿ÷‚! ! !xñÿÿÿÿÿÿÿÿÿÿÿÿÿç_!  !!! !‚üÿÿÿÿÿÿÿÿð@!!!!;çÆ_@!@Îÿÿÿÿÿÿÿÿç@‚óÿÿÿÿÿÿÿÿÿÿÈ;xóÿÿÿÿÿÿÿÿÿÿÏ;!‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ !ÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  ! !qªíýýýýýýýýýýþÿýüýüüýýýüýüýüüýýàÓKKJ·J·K·K·KKK·KKK·KK·KK·KK·KKK·KKKK·K·KKKKKKKK·KKK·KK·KKKK·KKK·K6i¿6i6ÀŠi86i5À¿½¹cc¶»¶»º»º¶º¶º¶º¼º»‰¿¿½½¿¿¿¿½¿¿¿¿½¿¿½‰½¿<½½‰<½½½½½½½½½½½½½ˆ‰‰‰‰½‰‰‰½½ˆ½‰½½ˆ½½½ˆˆ½‰½ˆ½ˆ½ˆ½ˆ½ˆ½½½ˆ½ˆˆ½ˆ½ˆ½‰½ˆ½‰½‰½½ˆ½½ˆˆˆˆˆˆ½ˆˆ½ˆ½ˆˆˆ½ˆˆˆˆˆSSˆˆSˆˆˆˆ½ˆˆˆˆˆˆ½‰ˆ‰ˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆ‰ˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆNˆˆˆ‰ˆˆˆSSˆSˆˆˆˆSSˆˆ‰ˆˆˆˆˆˆNˆSSˆSˆˆˆˆˆˆˆSˆˆˆˆNSSSNSSSSSSˆˆSˆˆSNˆˆˆSˆˆSˆNSˆˆˆNSˆˆSˆSNˆSSSSˆSSˆSSˆSNNSNSSSNSSˆSNNˆˆNNˆSNNSNˆNSNSSNNNSNˆSSSNNSNNNNˆSNSˆSˆSˆNSSNNNNNNˆNSSNSSNSSNNNNSNNNSNNSNSˆNSNSNNSSNNNKK·K·KKJ·J·KKK·KKJ·J·K·K·J·KKKKK·KJ·JKK··J··K·KK·JKKJ·J·J·KKJ·KKK·J·J·JKKW·JKJ·J·J·J·KKKJ·J·J·K·J·JK·J·J·JKWJJJJJJJKJKJJKJKJKJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHGHGGGFGGFFFFFKKKKK³KKKKKKKKKKK³K+03020+úüþüþþþþüüþþüþþþþüþþþüüüüüüüüóüóüüóüóüóóüüóóüóúó*‡4‡421óóóóóóóöëöëëëìëõëõëõêëêëëãóêðóðóóððððððððòðððóðóððððóñ133*301ððððððððïðððððððððïððÑïÑðÑïÑÑïÑÑÑÑÑïÑïïáÑݰÑïÑÑÑÑÑÑÑÑ*30+30*ÑÔ°×ÑÑÑÑÐÐÑÏÑÑÎÞ°¦ÔÎÍÍÑÍÍÍÍÍÍÍÍÍÍÍÑÍÐÎÐÍÍÍÍÍÍÍÍÍ+&&&&&&+³KKKKKKKKKKKKK³KKKFFFFFFFGFFGFGGGGGHGJGHJGHJGHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓýüüýüýüýýýüýüüüüþüóúóúóóóúóóò¬sC! !!!  ! !!!!! !!!!!!!!!!!!!$! !!!!!!!!!!!!!!$$!!!!!!!!!!!! !!!!!!!!!!!!!–üÿÿÿÿÿÿÿÿ–=!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!! !!=!!!!!!!!!!!!_óÿÿÿÿÿÿÿÿÿò_!!!!!!!!!!$!!!!!!!!!!$!!!!!9–ÿÿÿÿÿÿÿÿÿÿÎ! !!!!!!xñÿÿÿÿÿÿÿÿÿÿÿÿò‚!!!!!!!!!! !!Y÷ÿÿÿÿÿÿÿÿÿÈ!!Y! !! !@Îÿÿÿÿÿÿÿÿð@!Æýÿÿÿÿÿÿÿÿÿü‚ @áÿÿÿÿÿÿÿÿÿÿ÷[!xýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! ! =sªíýýýýýýþýýýþþÿýüýýüüüýüýüýýüüàÖK·KK·KKKKKK·KKK·KKKKKKKK·K·K·K···K·K·K·K·K···K³·K·K·K·K··K³·³³K³6<6Ài<<½66iiÀÀ‰‚ccc¸¼º¼¼¼¼¼¼¼¼¼¶¼¼¾½½½¿½½½½½½½¿6½½½¿½‰½½½½¿½½½½‰½½‰½‰½‰½½‰ˆ½½½‰½‰‰‰½½‰ˆ½½½½ˆ½½ˆ½½½½½ˆ½ˆˆˆ½½ˆ½ˆˆ½½ˆˆ½ˆˆˆˆˆˆ½ˆ½ˆ½ˆ½ˆˆ½ˆˆˆ‰½ˆ½½‰½ˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆSSˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆSˆˆˆˆˆSˆˆNˆˆˆˆˆˆˆˆˆNSˆSSSSSˆˆˆˆˆˆˆˆSˆˆSSSˆˆSˆˆˆˆˆNSSSˆˆˆSSSˆˆSNNˆˆNSSSNˆSˆSˆSSSˆˆSNSNˆSNSˆˆNˆSˆˆSNˆNSNSSNˆˆNNNˆSNSSNSSSNNSˆSSNSSNSˆˆˆNSNSNNSˆSSNNNˆNNSNSNNNNˆSNˆSSNNˆNNNSNSNSSSSSNNNSSSNNNNNˆNNNNSNNNNNNSNSNNNS·JKKJ·J·KKKKK·J·J·KKK·JKJ·KKK·K·JK·J·J·JKKKJJKKJ·KKK·JKKKJKKKKJKKJKKJKKKWKKKJ·JKJ·JKJKWKKKKJJ·HJKJ·HJJJKJJJKJKKWKJKWKJKJKJJKJJJKJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJHJHGJGGGGGFFFFFFFFKKKKKKKKKKKKKKKKKKK+20303+üüüþþþþþþþþþþþþþþþþþþüüóüüóüüüüüüüüüüóüüóüóüóüóü12‡4‡41óóóóóóóëöëëìêöëëëëëõêëêìêëóãóóóóóóóóóóóóðóðóðóóóðóóðóó+33*33*òðòðððððððððððððððððððððððððððððððïÑðÑïÑïݰïáèÑïÑïÑáÑ*00+<0*Ñ­°­ÑÑÑÑÑÑÑÐÐÐѰ¦°ÑÐÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÍÑÍÐÍÍÍÍÍËÍ&&&&&&&+KKKKKKKKKKKKKKKKKKEEFFFFFFGFGFGGGGGHGHGHHGHJHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×üýüüýüýúüüýúýúýüÿúóóóó÷÷÷óó÷ò¬}?!! !!! !! !!! !!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!$!!!!!!!!!!!!!!!!!!!!!!!=!!…üÿÿÿÿÿÿÿÿÆ@!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!$! !!!!!!!!!! Æýÿÿÿÿÿÿÿÿÿ–=!!!!!$!!!!! !!!!!!!!!!!!!!!!YçÿÿÿÿÿÿÿÿÿñZ!!!!!!_ñÿÿÿÿÿÿÿÿÿÿÿýÆ=!!!!!!!!çÿÿÿÿÿÿÿÿÿüÆ= !!   !@Îÿÿÿÿÿÿÿÿç@!Báÿÿÿÿÿÿÿÿÿÿñ‚Ëþÿÿÿÿÿÿÿÿÿÿ„ ! dþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   !=}ªíýýýýýýýýýýþÿýüýüüýýýüýüýüüýýàÓKKKKKK·K·K·KKK·KKK·K·K·K·KKKK·K·JK·KKKK·K·K·K·K·K·K·KK·KK·KK·K·Ki¿½¿68½½½ÀŒ66!!!! !!!!!!!!!!!!!!!! ! !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!$ !!!!! !!!!!!ÎÿÿÿÿÿÿÿÿÿÌ@!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!  !!!!!!!!! !!!! !!!!!!‚÷ÿÿÿÿÿÿÿÿá@! !!!!!!!!!!!!!! !!!!!!_ÿÿÿÿÿÿÿÿÿá!!!_ñÿÿÿÿÿÿÿÿñ_!!!!! !!! @Âüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ�!@Îÿÿÿÿÿÿÿÿð;!Ëÿÿÿÿÿÿÿÿÿÿÿü_ _ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ;   áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !q¥íýýýýýýýýýýýÿþýüýýýúüýýýýúýüýàÖKKKJ·J·J·J·J·J·KJ·KKKKKKKK·KKKKKK·K·K·K·KKKKKK·K·K·KK·KKK·KK·KKK½½½½ˆ½½½ˆ½ˆ½ˆˆ½‰½½ˆ½ˆˆ½½ˆ½ˆ½ˆ½½½ˆ½½½½ˆˆˆ½½ˆˆˆˆ½‰ˆˆˆˆˆˆˆ½ˆˆ½‰ˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ½ˆ½ˆ‰SS‰Sˆˆ½ˆˆˆˆˆSSSˆˆSˆˆˆˆSˆˆˆˆSSˆSˆˆˆˆˆˆˆˆˆˆSˆˆˆNˆˆˆSSSˆˆˆˆˆNˆˆˆˆˆˆˆSˆˆˆSˆˆˆˆSNSˆˆNˆSˆˆˆNSNSˆˆNˆNˆˆˆNˆSSSSˆˆˆˆNSNSNNSSNNSNNNSˆˆSˆSˆNNˆNNˆˆˆSˆNNNNNNSNNˆNSNNˆˆNNNˆNSSSNSNSSSSNSˆNNNSSNNNNSNNSNNSNSSNSSNSSNNSSSNNNSSNNNNSSNNNNNSNSNNˆNNSNNNNNSNNNNNNNNNNNNNNNNNNSNNSNNNNNNNSSNNNLLNNNNLNNNNLNNNNLNNLNNNNNNNNNNLNNNLNNNLLNLNNNNLNNNLNNNNNNNNNNNNNLNNNLNLM·KKKKKKKKKKKJKWKKKKK·J·JKKKJKJ·JKJ·J·J·JKJ·J·HKKJKJJ·H·JJJKJJ·HJ·H·JJJJ·JKWKJJJJJJWJKJKJJJJJKJJKJJJKJJJKJJKJJJJJJJJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJJHJHHHHGJGGGGGGFFFGFFFFKKKKKKKKKKKKKKKKKKK+03000*üüþþþþþþüþüüüüüüüüüüóüüóüüüüüüüóüóüüüüóóóóóóüóúó1P‡44Q*óúóúóüóöööëõëõìëëëêõêëêõêìòòóóóóóóðóðóððóðóðððóððòððòð103*331ñðððððððððððððððððððððÑððïÑðïÑðÑðÑïÑÑðÑðÑݰïÑáÑáÑáÑÑï*03+0**ÑÚ­ØÑÑÑÑÔ°¦ÞÑÐÑÍÑÑÑÐÑÍÑÍÐÍÐÍÍÍÐÍÐÍÎÍÍÍÎÍÍÍÎÐÎÍËÍ+&&&&&&+KKKKKKKKKKKKKKKKKKEEFFFFFFGFGFGGGGGGHGHGJGHGJGHGJHJHJHJHJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýúýúýüüüýúýüüýúýþúó÷óóúóóúóóò¬s? !!!  !!!!!! !!! !!!! !! !!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!›üÿÿÿÿÿÿÿÿúZ! !!!!!!!!!!!!!!!!$!!!!!! !!!!!!!!!!!! ! !! !!!…úÿÿÿÿÿÿÿÿÎ@!! ! !!!!!!!!!!!!!  !! !Zÿÿÿÿÿÿÿÿÿá! _ñÿÿÿÿÿÿÿÿáZ!!!!_áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó–@Îÿÿÿÿÿÿÿÿç@!!Zñÿÿÿÿÿÿÿÿÿÿà ‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! !!  sªíýýýýýýýýýýþÿýüýüüüýýýúýúýüýúæÓKKJ·JKKKKKJ·JKKJ·J·J·J·J·J·J·J·K·KKKKKKKK·K·K·KKKKKKK·KK·KKK·KK·‰½½½½ˆ½½ˆ½ˆ½½ˆˆ‰ˆˆ½ˆˆˆ½ˆ½ˆ½ˆˆ½½ˆ½ˆ½ˆ½ˆˆˆˆˆ‰ˆˆ½ˆˆˆˆˆˆˆˆˆ½ˆˆˆ½½ˆˆˆˆˆˆˆ½ˆˆˆˆˆSˆˆˆˆˆˆˆˆSˆˆˆ½ˆˆ½SˆˆˆˆˆˆˆˆˆˆˆSSSSˆˆˆˆˆˆSˆˆˆˆˆˆˆSSSˆˆˆˆˆˆˆˆSˆˆˆˆˆSˆˆSNˆSSˆSSNˆSSˆˆSˆˆˆˆSˆˆˆˆSSSˆNSSNˆˆSˆNSSNˆˆˆˆNSˆˆSSSSSNˆˆˆˆNSNSNSNSNSNSNNNSˆˆˆˆNNˆˆNNˆSSSNSNNNNNSNSSˆNNˆSˆSNNNNNSSSˆNˆˆSNNSSSNNSNNNSNNSNNNˆNNˆNNSSˆNNˆNSSNNNNNNNNSNNNNNNNNNSNNNˆNNNNNNNSSNNNNNNNNNNNLNLNNNˆNSNNLNNNNNNNNNNNLLNLNNLNNNLNSNNNNLNLLNNNNNNNNNNNNNNLNNLLNLLNLLLNNNNNLNNNNNNNNNNLLNLLNLcKKJ·J·J·J·JKKKKKJ·JKJKJ·J·J·JKKWKKJ·JKJ·J·JKJ·J·J·KJ·JKK·J·KJ·KKKKJ·J·KJKKJK·J·KKJKJ·JKJ·JKJKJKJKJKJWKJKJKJJKJKJKJKJKJJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHJHJHGHGGGFGFFFFFEKKKKK³KKK³KKKKKKKKK+00400+üþüþþþþþüüüüüüüüóüüüüüüóóüóóüüüóóóóüüüóüüóüóóóúó*444421óúóúóóúöëöëëëõëëëëëëêìêëêëêêêããêãêêêêêêêêêêêêêêêêÝëÝãÝ*33*301ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݰݰÝݰÝݰݰݰݰݰ°Ý°Ý°°°°°°°°®*000+0*°°°°°°°°°¦°°¦°¦°¦°¦°¦°¦°¦¦¦¨¦¦¦¦¦¨¦¦¨¦¨¦¦¨¦¦¦¦¦¦+&&&&&&+³KKKKKKKKKKK³KKK³KEFFFFFGFFFGFGGGGGGHGJGHGJGJHHJHJHJHJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓüýüüüýúýúýúýúüüüÿü÷óúóóúóóúóò¬s?! !!!! !! !!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !Zóÿÿÿÿÿÿÿÿÿ–!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!! !!!! !!!–üÿÿÿÿÿÿÿÿÌ@!!!!!!!!!!!!!!!!!!!!! !!!!!Züÿÿÿÿÿÿÿÿá!!!!!!_ñÿÿÿÿÿÿÿÿÑB!!!!!!!!!!  !@…óÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ!;Îÿÿÿÿÿÿÿÿç;_óÿÿÿÿÿÿÿÿÿÿÈ! xýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   7p¥íýýýýýýýýýýýÿþýüýýýúýüýüýüýüýàÓ·K·J·KJ·K·KKK·K·J·JK·K·K·KK·K·KKKK·K·K·KKKKKKK·K·K··KKKKK·KKKKKK½‰½½‰‰‰‰½‰½‰‰ˆˆ½‰½ˆ½ˆˆ½ˆ‰‰½ˆ½½ˆ½ˆˆ½ˆ½ˆˆˆˆˆˆˆ½ˆˆˆ½ˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆ½ˆ½ˆˆˆˆˆˆSˆˆSˆSˆˆSˆˆˆˆˆˆˆSˆˆˆSˆˆˆˆˆˆˆSˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆˆSˆˆSˆˆˆˆSSˆˆˆSˆSSˆNˆˆˆSˆˆˆˆSˆˆˆSSSNSNˆNˆˆNˆˆSNSSNˆSˆSNˆˆSSNSSSˆˆˆNSSSNˆNNˆNNSSNSNˆˆSNˆSNNSNNˆNNSNSNNNSNˆNSSˆSNSSSSˆSNNNNNSNSNSˆSNNˆNSSNˆNNNNˆNNNNNNSNNSNSSNNNSNNNNNNNNNNNNNSNNNNNNSSNNNNNNNNNNNSNNNNNLNNNNLNNNNLLNNNNSNLNNNLNNNSNNNLNNLNNNNNNNNNNNNNNLLNNNLNNNSNLNNLNNNNLNNNNLNLNNLNNNNNNNLLNNLNLL,L,LMcÁK·KKJ·JKJKKJ·JKKJ·J·J·J·JKKJ·JKKKKKKJ·J·JKKJ·JKJKKJKKKJ·JKJKJJKJWKJJKJKH·JKJKJJKHKJJJJJKJJJJJWJJJKJJKJJJJJWKJKWJJJJKJJKJKJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHJHJHJGHGHGGGGFFGFFFFFKKKKKKKKKKKKKKKKKKK+033+0*üüüóþþüüüóóóóóóóóóóóóóóóóóóóóóðóóóóóóóóóóóóñóðóó13444Q*òððóðóðöëëëëìëëëëèëêêêëêêßßßßßàÞàÞàÞØßàÞàÞØàßßßàÞàØ××Þ*33*33*Ø×Þ×××××Þ××××××××××××××ÌÇ××Ç××Ç×ÇÇÇÇÇ×ÇÇÇÇÇÇÇÇÇÇÇÇÇÇœ*0*03(*™­¦¦–œ™°¦¦™†œ™™†œ†œ†œœœ††††œ††††††††††††††††r††pM&&&&&&+KKKKKKKKKKKKKKKKKKEFFFFFFFGFGFGGGHGGHGJGHGJHHJGJHJHJHJJHJJJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJÓ×ýüüüüüüýüýüýýúýüþúóúóóúóóúóóò¬}?!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!Îÿÿÿÿÿÿÿÿÿò;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   !!!!…úÿÿÿÿÿÿÿÿÌ@!!!!!!  !!!!!!!!!!!!!!!!!!Zþÿÿÿÿÿÿÿÿç=!!!!_ñÿÿÿÿÿÿÿÿÌ@ ! !!!!!YÆüÿÿÿÿÿÿÿÿÿÿÿÿÿü‚!!@Îÿÿÿÿÿÿÿÿð@! Îÿÿÿÿÿÿÿÿÿÿÿü_    �ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ    áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      !=qªéýýýýýýýýýýþÿýüýüüýýýûýüüýüýúæÓKJJKKKKKJ·J·J·JKKK·J·JKJKK·KKKK·J·KKKKKKK·K·K·KKKKKKKK·K·KKK·K·Kˆ½ˆ‰‰ˆ‰‰ˆˆ½½ˆˆ½ˆ½ˆ‰½ˆˆˆˆ½ˆ½ˆˆˆ½ˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSSˆˆˆˆˆˆ‰ˆˆˆˆSSˆˆˆˆSˆˆˆSˆˆˆSSˆˆSˆˆˆˆˆˆSˆˆˆˆSSSSSSˆˆˆˆˆNˆˆSSˆˆSSˆˆˆSˆˆSSSˆˆSˆˆSˆˆSSˆˆNSSNSSSSSNˆSSNˆSNSSSNˆˆNSSSSSSSˆˆSˆNSSˆSNSNNNNNSSNNNSˆNNSNNSSNNSNSSNNˆNNSNNNNSSˆNNNNNSNNNNNNNNNNNSNNNNNˆNNNSNSNˆNNNNNˆNSNNSNNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSNSNNNNNNNNLNLLNNNNNNNNNNNLNNNNNLNNNLNNNLNNNNNNNNNLNNNNNLNLNLNNNNNNLLNNLNNNLLNNNNNLLLLNNLNLNNLNNNLLLNLNL\hÄÁKJKKKJ·J·J·J·J·JKJKJ·JKKKWKKJ·KJKKWKKKJKKWKJ·JJ·JJJWJJJWJJKWKJKJKKJ·JJJJJJJKJKJWKJKJKJKJKJKJKJKJKJJKJJKJJKJJJJJKJJHKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJHJJHJJHJHJHHGJGHGGGFGFFFFFFEKKKKKKKKKKKKKKKKKKK+30000+üüüüþþþþúúóóóóóúóúóóóóóóóðóòóóóóóóóóóóóóóóóóðòñð*444441òðòðòððöööëöëëëêëëêëêêêââàâßßßÞàâßàÞàßâßàÞàÞßàâÞàÞÞ×Þ×133*33+Þ××ÞÊ×É×××ÉÊ×ÉÊ×É×ÉÊ×É×ÇÊ×ÇÉÇמÇ×ǞמÇ×ǞǞ×ÇÇÇÇÇÇÇÇž*000+01œ¦°Çœ™¦¦°™™™™œ–™†™†™™›™œœ™†œ††œ††œ††††††††††††‚†&&&&&&&+KKKKKKKKKKKKKKKKKKDFFFFGFFFFGGGGGGGGHGHHGHGHGJGJHHJHJHJJHJJHJJJJJHJJJHJJJHJJJHJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJÓÓúýüýüüüüúüûúüüüüÿüóóúóóúóóúóò¬Ž? !   !!!!!!!!!!!!!!!!  !!!!!!!!! !!!!! !!!!!!!!!!! !!!!!!!!!!!!…üÿÿÿÿÿÿÿÿÿ„!$!!!!!! !!!!!!!!! !!!!!!! !!!!! !!!!!!!!!!!!!!ƒ÷ÿÿÿÿÿÿÿÿÎ@!!!!!!!!!  !!!!!!!!!!!!!!Yÿÿÿÿÿÿÿÿÿá !!_ñÿÿÿÿÿÿÿÿÌ@!  !!  9_áÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_!;ÎÿÿÿÿÿÿÿÿçY‚óÿÿÿÿÿÿÿÿÿÿÿÿÎ;�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó�ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! ! 9qšíýýýýýýýýýýýÿþýüýûüüüüüüýüýüýàÖJ·KK·JKKKKKKKKKKKKJKKKK·J·JKKKKKK·J·J·KKKKKKKKK·K·K·KKKKK·KKKKKKˆ½ˆˆˆˆ½ˆ½ˆˆ½ˆˆˆ½ˆ½½ˆˆ½ˆ½ˆˆˆˆ½ˆ½ˆˆ½ˆˆˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆ½ˆSˆˆˆˆˆ½½ˆˆˆˆˆˆˆˆˆˆˆSˆˆˆSˆˆˆSˆˆˆˆSˆˆSˆˆˆˆˆˆSˆSˆˆˆSˆˆˆˆˆˆˆSSSNSSSSSSˆSSSˆSSSSˆˆSSSˆSSSˆˆˆˆSNˆSˆˆˆNNˆˆˆNˆˆNSSNSˆSˆNNˆˆˆNSNSNSNNNSˆSNSNNSSˆNNˆSNNSNNˆSNNˆNNSSNSNSSNSNSNNNSˆNˆNNNSSSNNNˆSSSSNNNNNNNNNNNSNNNNNNNNSNSNNSNNNSNSSNNNNSNNNNNNNNNˆNNNNLNNNNNNSNNNNNNNNNNNNNLNNNNNNNNNNNNNNNNNNNNNNLNNLLNNNNLNNLNNNNNNLNLNNNLNNNNNNNLLLLLLLLLLNLLLNLLLLNNLLLNLLLNNNNLLNNNLNLLNLNLNNLNLLLLMcÁÄÄÄX\^X^X^X^X^X^X^X^bbX^X^X^XXbX^Xb^XXbX^bbYXXbVXV^VbXbXX^XXX^XXX^XXV^VXXX^XXX^VXVbXXVXVXVYXXVXXXXVXVXVXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXTXXTXTXTXTXTXTXTXTTXTTTXTTXTTTTTTTTTTTTTTTTTKKKK³KKK³KKK³KKK³KK+003+<+üüüüþüþóüóúóúóúóúóúóúó÷÷óóóóóòóòòòñóñóóóóòòðòððò134444*ðñðõðòðöëëöìëëëìêëëêìêâàâèâßßàßßâßâàâßâßâàâßßâßßßßÞØÞß*03*33*××××Þ××Ê×Ê××××É×××××××Ê×מ×Ç×ÇÇÊÇÒÇÇÇÇœ×ÇÇÇÇÇÊÇǞǙÇÇ*0*0*0*Ò¦°¦™™°°¨…œÇ™™™™œ™™†™†™™™†™†™††™†™†™††œ†††††††††+&&&&&&+KK³KKK³KKK³KKK³KKKTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTXTTTTTXTTTXTTTXTTXTXTTXTTXTXTTXTXTXTXTXTXTXTXXTXTÓ×ýüýúýúýüüýüüüüúýþúóúóóúóóúóóò¬Ž?!!  !!!!!!!! !!!  !!!!!!!!!! !!!! !!!!!!!!!!!!! !!!!!!!!@ñÿÿÿÿÿÿÿÿÿñ@!!!!!!!!!!! !!!!!!!!!!!!!!!!!! !!!  !!!‚÷ÿÿÿÿÿÿÿÿá@!!!!!!!!!!!!!!!!!!!_ÿÿÿÿÿÿÿÿÿÏ!!![ñÿÿÿÿÿÿÿÿÌ; !!!  !!! BÅüÿÿÿÿÿÿÿÿÿÿÿÿñ#!!Îÿÿÿÿÿÿÿÿç@;Ñÿÿÿÿÿÿÿÿÿÿÿÿÿý� !!‚þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ; !!! !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóx ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ ! p¢éýýýýýýýýýýýÿýüýüüýýýýýýüýúýúæÓX^X^X^X^X^X^X^X^X^X^X^XXXXX^X^X^XXX^XX^X^X^X^XXXX^XXX^X^XXX^X^XXˆ½ˆˆˆˆ½ˆ½ˆˆˆ½ˆ½ˆˆ‰ˆˆˆˆ½ˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆ‰ˆˆˆˆˆˆˆˆˆˆSˆˆSˆSˆˆSˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆSSSˆˆˆSˆˆSˆˆˆˆˆˆSˆˆSˆˆˆˆˆˆˆˆˆˆNSˆSˆSSSNSSˆˆSˆSNNˆˆˆˆSSˆˆˆˆSSˆˆNNˆSˆSˆNSNˆNSˆSNSSNNSSˆˆˆˆSSSˆNSNNSSNNNSSNSˆNSSSSSˆNSNNSSˆSNNˆNˆSSNNNNNNNSˆNNSNNSNNSNNSSSNSNSNSNNNNNNNNNNNNNNNSNNNNSNNNNSNNNNNNNNNSNNNNNNNNNSNNNNLNNNNSNNNNNNNNLNLNLNLNNNNNNNNNNNNNLNLLNNNNNLNNNNNLNLNNLNNNLNNNLNNLNNLNNNNNNNNNNLLNNLNNLNLLNNLNLLLNNNNNLNNNNLNNNLLNNLNNLLLNLNNLLL,LNbgÁÄÄÄÁXXXXXXTXXXTXXXXXVXVXXXXXXXXXXVXXVXXXVXVXWXXXXXXXXXVXXXXXXXXXXXXXXXXXXVXXXVXTXXXTXXXXXTXTXTXTXTXTXTXTXTXTXTXTXTXTTUTUTTTTTUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTVTTTXTTVTTTXTVTTTTTTTTTTXXXXXXXXXXXXXXXXXXXX+*0000+üüüóüüúú÷ó÷úú÷óú÷óú÷÷÷÷ú÷óòòóòóóóóóñòòóñòóóòñóðñ1444431èðððððòìëëöëëëëèìêëêãàßâßââââßàßßâßÞßâàâÞâßàßßßßàÞÞàØ×*33*331×Þ×ÞÞ×Þ×××ÒÞ××××Ê×Ò×Ò××Ê×ÒÇÊÇž×ÇÇÊÇžÇÇÊÇלǞǞǞǞǙž*+0(0++™°°¨Ç¦°¦™Ç™™Ç™™™Ç™™œ™†™™†™™†œ™œ††œ††™††™†††††††+&&&&&&+XXXXXXXXXXXXXXXXXXXTTTTTTTTTTTTTTTTTTTTTXUTTVTXTTTXTVTTTVTTTXTTVTTTTVTTVTTTTVTTTTTTTTTTTTTTTTTUTT×Õúýüüüýúýúüüýúýüúÿüóóúóóúóó÷÷ò¬}?!!!!! !! !! !! !!!!!!!! !!!!!!!! !!!! ! !!!!!!!!!!!!ÈýÿÿÿÿÿÿÿÿÿÆ!!!! !!!! !!!!!!!!!!!!!!!!!!!!!!! ! !!!!!  !!!!!!!_óÿÿÿÿÿÿÿÿòY!!!!!!!!!!!!!!!!!!!!‚ÿÿÿÿÿÿÿÿÿÎ!!_ñÿÿÿÿÿÿÿÿÍ!! !!!!! !!_áÿÿÿÿÿÿÿÿÿÿÿÿÈ!;Îÿÿÿÿÿÿÿÿð@ –üÿÿÿÿÿÿÿÿÿÿÿÿÿÿð@!‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9 !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!q¥íýýýýýýýýýýýÿþýüýýúüüüüúýüýýýàÓXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX‰‰ˆˆˆ½ˆˆˆˆˆ½ˆ½ˆˆˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆ½ˆˆˆˆˆSˆˆˆ½‰ˆˆ‰ˆˆˆˆˆˆˆSˆˆNˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆNˆˆˆˆˆSSˆNˆNˆˆˆˆˆSSˆˆSˆˆˆˆˆˆSˆSˆˆˆˆNSNˆˆNˆˆSSSNNˆˆSNˆˆSNSSSˆˆSˆSNSNNSSˆˆSˆSNˆNNˆˆSSNNNNˆˆˆSSNSNNNNSSˆNSNNNSSNNNSSSSSSNNSNSSSSNNSNSSSˆˆNNNNSNNSSSSNNSNNSSSNSNNSNSNSNNNNSSNNSNNNNNSNNNNNNNNNNNSNSNNNNNLNNSNNNNNNNNNNNNNLNNNNNNNSNNLNNNNLNNNLNNLNNNNNNNNNNNLNNNNNLNLNNNSNLLNLNLNNNNNLLNNLNNNNNNLNNNLNNLNLNNLNNLLNLLNNLNLNLLLLLNLNNLLLLLLLNNLNLLNLLLNLLLM\hÁÄÄÄÄÄTTTTTTTTT"TT:"TT"T"TT"T"TT"T"TT"T"T"T"T""T"T"T"T""TT""""""""""""":::"0"T::"T:T:T:T"TTXXXXXXXXXXXXXXXXXXX+03030*ýüüüúúóóóóó÷÷úó÷ú÷ú÷ú÷ú÷úóóóòúó÷òòóóóòòðòóòòóñòð1P4444*ðèóòðíñëöëëöëëêëãëêêàâÞßâàâââââßßßßàßßâßâââßßßߨߨßÞߨ133*331ß×ß×ß×ÞØÞÒ×ÞØ×Ò×Ì×××Ç××Ç××Ç×××Ò××Ç×Ç­ÇžÇ×Ç×Ç×ÇÇÊÇÇÇÇ™*0+0*0*Ǧ°­¦°°™™™™™™™™Ç™™™™™™†™™†™™†™™†™†™†œ††™††††††††+&&&&&&+XXXXXXXXXXXXXXXXXXX"T""T"T:T:T:"T"Ö×ýüüüýúýüýúýúýúûüÿúóúóóúóóúóóò¬s>! !!!!!!!!!!! !!!!!!!!!!!  !!!!!!!! !!!!!!! !!!!!!!!!!Zóÿÿÿÿÿÿÿÿÿ÷Z!!!! ! !!!!!!!!!!!!!!!!!!!!! !!!  !! ! !!!!!!!ZñÿÿÿÿÿÿÿÿüZ!!!! !!!! !!!!!!!#ÅÿÿÿÿÿÿÿÿüÆ _ñÿÿÿÿÿÿÿÿË!!!!!!!! !!!!!!!;Æÿÿÿÿÿÿÿÿÿÿÿ÷B!;Ìÿÿÿÿÿÿÿÿç;Yðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…! ! �ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! !  !Ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      !qªíýýýýýýýýýýýÿýüýüýýýýüýýüýúüüæÓTTT"T:T"TTT"TTTTTTTTTTTTTTTTTT:"TTTTTT:TT"TTTTTTT:TTTTTTTTTTTTTT½ˆ½ˆˆ½ˆ‰ˆˆˆˆˆˆˆ½½ˆˆˆˆˆ½ˆˆ½ˆˆˆˆˆ½SˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆSSˆˆNˆSˆˆˆˆˆˆSˆˆˆˆˆˆSˆˆSˆˆNSˆSSˆSˆSSSSSˆˆˆˆˆNˆˆSSNNNSNNˆˆSˆNˆˆˆSSˆSSNSˆˆNNˆNSˆNSNSˆSˆˆˆSˆNSSSNSNSNNSNNSNSˆNSSNSSNSNNSSNNNNSNNSSSNNNNNNNSSSNSNNNSSNSNNSSNNSNNSNNNNNNNNNNSNSNNNSNNNNNNNNNNSNNNSNSNNNNNNNNNNLNNNNNNNNSNNNNNNNNNNNLNNNNNNLNNNNNNNLNNNNNNNLNNLNNNNSNNLLLN,NLNNNNLNLLNNLNLLNNLNNLLNLLNLNLNLLLLNLNLLNNLNLLLLLLNNLLLNNLNLNLLLLNNLLLLMcÄÄÄÄÄÄÄÄT:T"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT""0"""""TTT"TTT TT"TTTTTTTTTTTTTTT"*00+00+üüúüúúú÷÷ú÷÷ó÷úó÷ú÷úúúúúú÷óò÷ó÷óóòóóóóòóñóñóñòóõ*4444P1ðððõððòëìëöëìëëêìêãßÞßàâàáèëèâãââãßâßßàââãßßߨàßߨßߨÞ133*33+ØßØßߨ××ÞØÞØÞ××ÞØ×Ê×Êל×Òרœ××ÇÒ×ÒÇÊ×ÇלÇÇÒÇל×ÇÇמÇÇ**0+0+*ǰ°¦°¨­™™ÇÇ™™™™™™™Ç™™™™™™œ†™™™™™™†™™™™œ††œ††††††+&&&&&&+TTTTTTTTTTTTT"TTT"TÓÓüüûüüýúüüüüüüüüüþüóóúóóúóóúóò¬s>!!!!!!! !! !!!!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!ÈþÿÿÿÿÿÿÿÿÿÎ!!!!! !!!!!! !!!!!!! !!!!!!!!!!! !! !!!!! !!9çÿÿÿÿÿÿÿÿÿx! !!!! !!!!!!!!!!!!!!!!@ßÿÿÿÿÿÿÿÿü–!!  _ñÿÿÿÿÿÿÿÿÍ!!!!‚ýÿÿÿÿÿÿÿÿÿÿÌ;Îÿÿÿÿÿÿÿÿð@ÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóY   _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ; áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_!ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !  !=qªíýýýýýýýýýýýÿþýüûýúýúýüüûüýýüàÓTTTT"TTT"TTTT":T"T"T:T"T:T:T"TTTTT"TT"TTTTTT:TT"TT"T:T"TT":T"T:Tˆˆˆˆˆˆˆˆˆˆˆˆ½ˆˆ‰ˆˆ½ˆˆ½Sˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆ½ˆˆˆˆˆˆSSˆˆˆSˆˆSˆˆˆˆ‰ˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSSSSSˆˆˆˆSˆNˆˆˆNˆˆˆˆˆNˆˆNˆˆNSˆNˆˆˆSˆˆNSNˆSSSˆˆNNˆˆSSˆˆˆˆNSˆNˆSˆSNNˆSNSNNˆSSNSNNNSSˆSSNNNNNNNSNSNˆSNNSSSSSNSNNNˆSNSNNˆNNˆNSSSSNNSNNNNNNˆSNNSNSSNNNSNˆSNNSNNNNNNNSNNNNNNNNNNNNSNNLNNNNNSNNNNNNNNSNNLNNNNNNNNNNNNNNNNNNNNLNNNLLNNLNNNLNNNNNNNNNLNNNLNNNNNLNNLNNNNLNLLLNLNNNNNNLNNNLNNNNNLNNLNNLLNLLNNLNNLLNNLLNNLLLLNLLNNNNLLLLNLLNLLNLLLLLchÄÄÁÄÄÄÄÄÄTT"TTTTTTTTTTTTTTTTTTT""""""""TTTTTTTTTTTTTTT:TT:TT:TT"TT+00303+ý÷üúúúóúú÷úó÷÷÷ú÷úúúúúúúúó÷÷ó÷÷÷òúò÷÷òóòóòóñóòð÷*44444*òñèóðòðëëëëöëëëìêêàßàßßââââèëèâöââàãââßãßâàãàßßߨߨßàØ*03*33*à×ßߨר×Êß×ßרÞÊ×Þ×××ר×××××××Ê×××Ç­×ל××Ç­Ç×ÊÇ­žÇ­Çž+0+0*0*Ǧ°°°¦™ÇÇ™ÇǙǙ™Ç™™Ç™™™™™™™™™™™™™†™™™™†™††™™††††+&&&&&&+T:T"TT"TT"TTTTTTTTT××ýüüüýúýûüüúýúüúýÿúóúóóúóóúóóò¬s?!! ! !!!!!! !!!!!! !!!!! !!!!!!!!!!!!!!!!!!!! !! Z÷ÿÿÿÿÿÿÿÿÿÿ–!! !!!!!!!!!!!! !!!!!!!!!!!!!!!!!! !!!!ÏÿÿÿÿÿÿÿÿÿÆ@ !!!!!!!!!!!!!!!!!! !!!Y÷ÿÿÿÿÿÿÿÿóx!!! !_ñÿÿÿÿÿÿÿÿÌ9 !!!!_üÿÿÿÿÿÿÿÿÿó! ;Ëÿÿÿÿÿÿÿÿç;!_óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!   áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_!!  ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ       =}ªíýýýýýýýýýýýÿýüûüüýüýüýüüýüüýàÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTˆ½½ˆˆˆ½ˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSSˆˆˆSSSSSSˆˆSˆˆˆˆˆSSˆˆˆˆˆˆˆˆSˆˆˆSˆˆˆˆNˆˆSSˆˆˆˆSSSSSSSSˆˆSSNSˆˆSNˆˆˆˆˆSˆˆˆSˆˆSSSSˆNˆˆSSˆˆˆNSˆNˆSNˆˆˆˆNSSˆSSˆSNˆSˆNˆSSNˆSˆSSNNSSNNNSSNNNNNNNNSNSNSSSNNNˆNNˆNSˆNNSNNSNSNNNNNNSNNSNNNNNNNNNSNNNNNSNNNNSNSNNNNNNNNNNNSNSNNNNSNNNNNNNNSNNNNNSNNNNNNNNNNNNNNNNNNLNLLNLLLNNNLLLLLLNNLNNNNNLLNNLNNNNNLLNNLNLNNLNNLLNNNNLLNLLNLLNNLLLLNNNLLNNNNLLNNLLNLLLLNLNNLNLNLLLNLNLLNNNNLLLNLLNLLNLLLLLLLLMchÄÄÄÄÄÄÄÄÄÄTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTT:+0+300+üüúúú÷ú÷÷óò÷óóóúúóúóóúóú÷÷÷÷÷÷ó÷ó÷úú÷óòóòóóó÷óóò*444441ðòððòðòëëëöëëëëêãßßßßßâÞñâèëââãâââêâàâêßßßßßßÙߨßߨß×à*33*33*ØßØß×Þ×ß×ߨÒß×ߨÊ×Òר×Ê×Ê×Ê×Ò××ל××Ç­ÇÊ×ÇÒÇ×ÇÇ×ÇÒÇžÔÇ*+0+0+*™­°°¦­ÇÇÇ™™ÇǙǙ™Ç™™™Ç™™™™™™™™™™™™™™†™†œ†™††™†††+&&&&&&&TTTTTTTTTTÓÓüüýúüüüüýúýúýüüüþüóóúóóú÷ó÷÷ò¬�? !!!  ! !   ! ! !!!!  !!!!!!!!!!!!!! !!!!!!! !!!!!!!!Èþÿÿÿÿÿÿÿÿÿü_!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!Èýÿÿÿÿÿÿÿÿç@!!!!!!!!!!!!! ! !�ÿÿÿÿÿÿÿÿÿñY_ñÿÿÿÿÿÿÿÿÌ;! !! xÿÿÿÿÿÿÿÿÿýd;Îÿÿÿÿÿÿÿÿç@!Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü_ !_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ =s¥íýýýýýýýýýýýÿþýýüýüýüýüüýüúýüæÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT‰‰ˆˆˆ½ˆˆˆˆˆˆˆˆ½ˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSˆˆˆˆˆSˆˆSˆˆˆˆSˆˆˆˆSSSˆSSSˆˆSSˆSSˆNˆˆˆSSSSSSˆSˆˆSSSNSSˆSNSNSSˆˆˆSˆˆSˆˆˆˆˆˆˆNˆSSNSNSˆˆSˆˆˆNSˆSSNNSˆNˆSˆNSˆˆSSSSSSNSNNNSˆSNNNNSNNNNNSNˆNNNSNSSSSNNSNNNNNNNNNSSNNNNNNNSˆSNNNNNNNSSNNNNNNNNNNNNNNNSNNNSNSNNSˆNSNSNNNNNNNNNSNSNNNNNNNNNNNSNNNNNSNNNNNNNNNNNNNNNNNNNNLNNNNNNLNNLNNNNLLNNNLNLNLLLNNLNNLLNLNNNLLLLLLNLNNLLLLLLNLLLLLLNNLLNNLNNNNNNLLNNLLLLLNLLNNNLLNLLLLLN,NLLLLNNNLLLLLLLNLLL\gÄÄÄÄÄÄÄÄÄÄÄÄTTTTTTTTTTTTTTTTTTTTTTTTTT""TTTTTTTTTTT+0330++üüüüúó÷óó÷÷òóú÷÷úó÷ó÷÷ó÷ó÷ó÷òú÷÷ò÷÷úóóòòóòòñóòòò*44434*òðóòòðñëëëìëöìëêàâßßßàãâêâââëñèëâëâêâêâàãßàãßàÝߨߨØßØ*33*33*ߨØßØØØØß×ß×רØß×ר×××××ר×××××ÊØ××Ê××××­Ç××­×Ò×­ÇÇǨ0++0*+*ǰ°°­™Ç™­ÇÇÇ™™™Ç™ÇǙǙ™™™™™™™†™™™™™™™††œ™†œ††™††+&&&&&&+TTTTTTTTTTTTÓ×ýúüýûüüüüüüüüúûüÿúóúóóúóó÷óóòÓ�?!!!!!!  !!!! ! !! !!!!   !!! !!!! !! !!!!!!!!!!Bñÿÿÿÿÿÿÿÿÿÿò@!! !!!!!!!!!!!!!!! ! ! !!!!   ! !!!!!‚÷ÿÿÿÿÿÿÿÿÿ_!!!!!!!!!!!!!;Ìÿÿÿÿÿÿÿÿÿá![ñÿÿÿÿÿÿÿÿÌ;!!! !!!!!! !! ËÿÿÿÿÿÿÿÿÿÌ;Îÿÿÿÿÿÿÿÿç@!„üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ9  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ ! !    ! =qšíüýýýýýýýýýýÿýüüýüýüýúýûüýýüýàÓTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT½ˆ½ˆ½ˆSˆˆˆˆˆ½ˆˆˆˆˆˆˆ½ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSˆˆSSˆˆˆSSˆˆˆSˆˆˆˆˆˆSSSNˆNSˆSSˆˆSSSˆSˆˆˆˆˆNNNSˆˆˆNˆSSˆˆˆSSSNSˆSNSˆˆˆNˆˆSˆˆˆSˆNˆSSNSˆSNˆˆˆˆˆˆSˆˆNSSNSNˆSSNSNNSSSSNNNSSSNSSNNNSNSˆNSNNNSˆNNNNSSNSNNNNˆNNNNNNNNNNNNNNNSNNNSSNNNNNNSSNNNNNNSNNNNNNNNNSSSNSSNSNNNNNNNNNNNNNNSNSNNNSNLNLNNNNNNLNNNNNNNNNNNNLLNNNNLNLNNLLNLLNNNLLNNNLNLNNNNLLLLNLLNLLLNLLLNLNNNNNLLLLNNNLNNLNNNLLLLLNLLLNNNLNNLNLNLNLNLLLLNLLNNNNLNLNN,LLLLLNLLLLLLLLNLLLLLL.MLchÄÄÄÄÄÄÄÄÄÄÄÄÄTTTTTTTTTTTTTTTTTTTTTTTTTT"++0000+úúúüüú÷÷óòó÷óúúó÷÷÷÷÷úò÷ú÷÷óú÷÷óú÷ú÷óòóóòóòó÷÷óò*444431ðòñóòðòëëëêöëëèããêêããêêêãëâêâãëãìããöãêêãßêßêãêãÝÝÝÝÝÝÝ*33*M3*ÝÝÝÝÝÝÝØßÒÝÝÝÝÝÝÝݰÝÝ×××­Ýݰݰݰݰ­×Ò×­°­°°°­°­°­­Çצ*0++0+*°°°°£ÇǦ¦°¦°¦°¦¨¦¦¦Ç™¨¦¨¦¨¦¨¦¨¦¨™™™™¨¦¦¦¦¦¦¦¦¦™†+&&&&&&+TTTTTTTTTTÓÓüýüüüýúüüúýúüüüüþüóó÷÷óóúóú÷鬎?!!  !! !!! !!!!!!!!!!!! !!!!!!!!!!!!! !!!!!„üÿÿÿÿÿÿÿÿÿÿá;!!! ! !!!!!! !!!!  !!!! !  !!!!!!!!!YñÿÿÿÿÿÿÿÿÿÈ@!! !!!! !!! ! !!!ZüÿÿÿÿÿÿÿÿüÆ !!_ñÿÿÿÿÿÿÿÿÎ$!!;ÿÿÿÿÿÿÿÿÿñ;Îÿÿÿÿÿÿÿÿð@@áÿÿÿÿÿÿÿÿÿÿ–çÿÿÿÿÿÿÿÿÿÿ‚‚þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! !   =s¥íýýýýýýýýýüýÿýýýüýúýüýüüýüúýüàÓˆ½ˆSˆˆˆˆˆˆSˆˆSˆˆˆˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆSSˆˆSˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆSSˆSSˆˆSSSˆSˆSSˆˆˆˆˆSˆSˆˆˆˆˆˆSSˆNˆˆSNSNSNSˆˆˆˆSˆSSˆNSNSSSSSˆNNSNˆˆSˆNNSNNˆNNNˆNNSNSSNNSSSNSSNSNNNSNSNˆNNSSNNSNNSˆNNNˆSSNˆNSˆNNNSNNNNNSNNNNSNNNNSNSSNNNNNSSNNˆNNNNNNNLNNNNNNNNNNNNNNNNNNNNNNNNNNNNSNNNNNLNNLNLNNLNNNNNLNNNNLNLNLNLNLNNNLNNNLLNLNNNLNLNNNNNNLNLNLNLLNLLLNLLLNLNNLNLNNLLLLNNNNLNLLNLNNLLLLLLLNLNLLLLLNLLLLLLLLLLLLLLNLNLLLLLNLLLLLLLLLLLLLLLLLLLLLMhÁÄÄÄÄÄÄÁÄÄÄÄÄÁÄT0"TT:TTTTTTTT TTTTTTT+003+3+úúüúüüúúúú÷úúúóúó÷ó÷÷÷÷ó÷òú÷úúò÷÷úòóñ÷ð÷óòóòòóòó*43443*òôòððòðöëìëëëèâêëêãêêêãêêêâãèêêëëãöãêãêãàâßêÝãÝêÝÝÝãÝÝ*3M*33*ÝÝÝÝÝÝÝרßÝÝÝÝÝÝÝÝ­Ý­Ø×ÒÝ­Ýݰݭݰݭ×××­°­°Ý°­°°­­Ç­ž­*+0*++*°¦°¦Ç­Ç¦¨¦°¦¨¦°¨£¦™Ç™™¦¨¦¦¦¨¦¦¦¨™™†¨¦¦¨r¦¨r¨¦¨r†+&&&&&&+TTTTTT  Ó×ýúýúýüüúýüúýúýúýÿúóúóóúóó÷óóò¬ŽC!!!!!!!!!!!!!!!!! ! !!!!!!!!!!!!!! !!!! !ÑÿÿÿÿÿÿÿÿÿÿÿÎ!!!!!!!! !!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!Ïÿÿÿÿÿÿÿÿÿü]!!!!!!!!!!! !!!@Æÿÿÿÿÿÿÿÿÿó_ !!!![ðÿÿÿÿÿÿÿÿË!!!!! !!!!Y–Ï–!! çÿÿÿÿÿÿÿÿú;Îÿÿÿÿÿÿÿÿç@ ÂüÿÿÿÿÿÿÿÿÿÎ@‚óÿÿÿÿÿÿÿÿÿñ;   xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   !!q¥éüüýýýýýýýýýÿýüüýúýüýúýýúýýüýàÓˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSˆˆˆˆSˆSˆˆˆˆˆSˆˆˆˆSˆˆSˆˆˆSˆˆˆSSˆNˆˆNˆSSˆˆSˆSSˆˆNSˆˆˆˆˆSˆSˆˆˆSSˆˆNSˆNSSSSNNSSSSˆSNˆˆNSSSSˆˆNSSˆˆˆNNSSˆNNSSNSˆNˆˆSNSSNSˆNSNSNNSˆNNSNSNSNNNNNNSNSNNSSNSSNNSSNNNSNNNNSNNNNNNSNNNNNSNNSNNSSNNNNNSNNSNLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNLNNNNNLNNNLNNNNNNNLNNLNNNLNNNNNLNLNLNNNLNNNNLNNLNNNNLNNLLNLNNLNLLNNLNLLNNNLLNLNNNLNLNLLLNLLLLLLLLLLLLLLLLLLLNLLNLLNLLLLNLLLLLLLL.LLLLLLNLLLLLLLLLLL\gÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄ:TTTTT"TT0T:T"T"TTTTTTT(30000+üüúúóúúúúúúúúúó÷÷úúóú÷ó÷óò÷÷÷÷÷òóúó÷òóòòó÷óòóò÷÷*44434*òñóòõðòëëëëèâèââàâàâßßàââëâèêâãâãââêàêßâêßßßàßßßßßàߨß*33*331ÞØØßØ×ØßØ×רררÒררר××Ò×Ê×Ò××Ê××­ÇÒ×Ç×Ò×ÇÇ××Ç­ÇÇÔÇ*0++++*°°¦Ç­™ÇÇÇÇ™™Ç™™™™™™™™™™™™™™™™™™™™™™™†™†¦††¦†††œ†+&&&&&&+TTTTTTTÓÓýüüüüüûüüúýúýúüüþüóóú÷óóúóúóò¬Žl !!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!!! !!!!!!!YóÿÿÿÿÿÿÿÿÿÿÿÎ!!! !  ! !!! !!!! !!!!! !! !!!!!!!!–úÿÿÿÿÿÿÿÿÿÌ@  !!!!! !!!Zúÿÿÿÿÿÿÿÿÿá!!!_ñÿÿÿÿÿÿÿÿÌ#!!Y…ÎóüüÿÎ!!Æÿÿÿÿÿÿÿÿü!;Îÿÿÿÿÿÿÿÿð;[ðÿÿÿÿÿÿÿÿÿü_ !ÎÿÿÿÿÿÿÿÿÿÿÂ!_ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ!  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    pªíýýýýýýýýýýýÿþúýüýüûýüýüüýúýüæÓTT"T:T:TTT"T:TTT"T:TTT"TT0T"T"MT"TˆˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSˆSˆSˆˆNˆˆˆˆˆˆˆˆˆˆˆˆˆNSˆˆˆˆSˆSSSSˆˆˆˆSNˆˆNNˆSSˆˆˆˆSˆNˆSˆNSˆˆSSSNSSSNNSSNNSSˆSSSSˆˆˆNNNSNNSSSNSNNSNNNNNSSSSNNˆSNSSSNSSNˆNNSNSSNNNNSNSNSSNNSNSSNNNSSNNNNNNNNNNSNNNNNSNSNNNNNNNNNNNSNSNNNNNNNNNNNLNNNNNLNNNNNNNNNNNNNNNLNNNNNNNNNNLNNLLNNNNNNNNNNLNNNNNNNNNNNLLNNLLLNLNLNNLLNLNNLNLNNLLNLLNLLNLNLLLLNLLNLLLN,LNLLNLLNLNLLLNLLNLNLLLLLLLLLLLLLLNLLLLLLNLLLLLLLLLLLLLLL,LLLLLLLLLLLLLLMdÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ""""TTTTT:TT: TTT+0303++üüüúúúúúúúúúúóó÷úúúúó÷ó÷ñ÷ó÷úòó÷ú÷÷òúó÷ò÷ò÷÷ò÷òó+44443*òðóòòðòëëêëëëêêãëãêãêêããêëãêãëëãëãëãêãêãêÝêêÝãêÝãÝãÝãÝ*33*33*ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ­Ý­ÝÝÝÝ­Ý­ÝÝ­Ý­°­­­Ý°­­°­­°­­­°­¦­¦¨1++0++*°¦¦­¨¦¦£¦£¦¨¦¦¨¦¨¦¨¦¨¦¨¦¨¦¨¦¨¦¨¦¨¦¦¨¦¦¦¨¦¦¦¨r¦¦¦&&&&&&&+TTÓÓüüúýúüüüúýúýúýúýÿúóúóó÷úóóóúò¬s?!! !! !!!!!! !!!!!!!!!!! !!!!!! !!!!!!!!!!! !‚üÿÿÿÿÿÿÿÿÿÿÿÌ! !!!!! !!!!!!!!!!_‚@! !@ñÿÿÿÿÿÿÿÿÿý_!!! ! !!!!!!!!#ÎÿÿÿÿÿÿÿÿÿüÆ  !![ñÿÿÿÿÿÿÿÿË!!!!ÈñüüÿÿÿÿÿÎ !!!‚ÿÿÿÿÿÿÿÿüY!;Ìÿÿÿÿÿÿÿÿç@ !ËÿÿÿÿÿÿÿÿÿÿË@ ZóÿÿÿÿÿÿÿÿÿüB  !dþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóx  ÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    ! !p¥éüüüýýýýýýýýÿýýüýüýüüýúýûüýüûàÓ"""ˆˆˆˆˆˆˆSSˆˆSSSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSˆSˆˆˆˆNSNSSSˆˆˆSˆˆˆˆSSSˆSˆNSˆNNSNSˆˆˆNNNˆSNNNNNˆSSˆˆˆˆSˆNˆˆNˆSˆSSˆSSSSSSSˆSNNSSNSˆˆNSNSSNSSNNNNˆSˆNNSNNSNNNNNSSSNSNSNSSSˆNSSNNNNSNNˆNSNNNNNNNNSNNSNNNNNNNSNNNNNNNNNNNNNNNNNNLNNNNNNNSNNNNNSLSNNNNNNNNNNNNNNLNNLNNNNNNNNNNNNLNLLNNNNLNLLNNLLLLNNNLNLNNNNNLNNLNNLLNNLNNNLLLLLLLNNLNNLNLLNLLNLLLLLLLLNNLLLLLLLLLLLNLLLNLLLNLLNLNLLLLNLLLLNLLLLLLLLLLLLLLLLNLLL,L,LNLLLLLL,LLL,,LLLLLLLLLLLbcÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄT:TT""TT0T "T:TT"00+3000+úüüüóúúúúúúúú÷÷óúúú÷÷÷÷÷÷÷÷ó÷÷÷óúòúó÷òóóòóóó÷ñòò*43434*óòòóòðñëëëëëëãìãããêãöãìãêìãöãêãìããããêêêãÝãêãêÝÝêÝãÝêÝÝ*33*03*ÝÝÝÝÝÝÝÝÝÝÝÝݰÝݰݰÝݰݰݰ°Ý°Ý°Ý°°Ý°°Ý°°°°°°°°°°°°°°°*+++++1°°°¦°°°°¨°£°¦°¦¦°¦°¦¨¦¦¦¨¦¦¦¦¦¦¦¦¨¦¦¨¦¦¨¦¨¦£¦¨¦¦+&&&&&&+TTT:T: Ó×ûýüüüüüûüüüüüüúüþü÷óóúóóóúóóò¬s?   !!!! !!!!! !!!! ! !!!!!!!!!  !!!!!Æÿÿÿÿÿÿÿÿÿÿÿÿß@!!!!!!!!!  !! !!!!!!! !!–óüÆ@!!!!!Èþÿÿÿÿÿÿÿÿÿñ@! !!!! !!!‚ÿÿÿÿÿÿÿÿÿÿòZ!!_ñÿÿÿÿÿÿÿÿË;!! !ðÿÿÿÿÿÿÿÿð!‚ÿÿÿÿÿÿÿÿüB;Îÿÿÿÿÿÿÿÿç;xóÿÿÿÿÿÿÿÿÿó_ÆýÿÿÿÿÿÿÿÿÿË xþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!  q¥íýýýüýýýýýüýÿýüýüýüüûüýüüýüýüæÓT"MTTT"MTT"MTT"T"TTTˆˆˆˆˆˆNSˆˆˆSˆˆSˆˆˆˆˆˆˆˆˆˆˆSSSSˆSSSSˆˆˆˆˆSˆˆSSSNSˆˆSˆˆˆNSˆˆSˆSSSˆSNSNSSˆNSSNNˆNSˆNSNSˆSSˆˆSˆSSSSˆˆNNSNNNNNˆNNNNSˆSSˆˆNNSNSNNNNNNNSSNNNSNNNSNNNNNSNSNNˆNNSNNNNNNNNNNNNSNNSNNSNNNNNSNNSNˆNNSNNSNNNNNNNNNNSNLNNLNNNNNNNNNNNSNNSNNNNNSNNNNNLNNNNLNNNLNNNNNNNLNNLNLNLLNNNNLNLLNNNLLNNNNNNLNLLNNLLLLLLLLLNLNLNLLLNLLLLLNNLNNNLLNLLNLLLNLLLLLLLLLLLLLL.L.LLLLNLNNLLLLLLLNLLLLLLLLLLLL.LLLLLNLLLLLLL,LLL,LLLLL.L,LLL,LL,LLLLL.LLMc¾ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÁT"TTTTTT"TTTT:000+03+üúüþýüüúúóúúúúòúúúúúúóúúúú÷÷÷òú÷÷÷ó÷÷÷ò÷òòð÷òóóò*44344*òóòóðóòòëëëìêëêôêöãöããêìêëëêãêìëãëãìãêãêêêêêêãêãêÝãÝãÝ*3M*3M*ÝêÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ­ÝÝÝÝ­Ý­ÝÝÝ­ÝÝ­Ý­Ý­­Ý­­­­­­­°Ô¨10++++*°­¦­¦­¨­¦¦°¨­¦¨°¦¨¦£¨£¦¨£¦¦¨¦¨¦¨¦¨£¦¨¦¦£¦¦£¨¦¦r¦+&&&&&&+::"T  ÓÓüüúýúýúüüúýúúüúüÿúó÷úóóúóó÷úò¬s? !!! !!!!!!!! !! !! !!!!!!!!!!!! !!!!!!!!!!9áÿÿÿÿÿÿÿÿÿÿÿÿá;!! !!!!!!!! !!! !!!!!@ÆüÿÿÿÌ@!! !!! !!YóÿÿÿÿÿÿÿÿÿÿÎ@  !! !!!ZüÿÿÿÿÿÿÿÿÿÿÈ!![ñÿÿÿÿÿÿÿÿË9! !!!!! !ñÿÿÿÿÿÿÿÿü; Âÿÿÿÿÿÿÿÿü;  ;Îÿÿÿÿÿÿÿÿð@!Îÿÿÿÿÿÿÿÿÿÿ– ;ñÿÿÿÿÿÿÿÿÿÿY _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!!! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ         =qªéüüüýýýýýýýýÿýüüýúýüüýüýýüûüýàÓ"TTT"TT"TTTTTTTˆSˆˆˆSˆˆˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆSSˆNSSSSSSSSˆˆˆˆSNSˆˆˆSSˆSˆNˆSˆˆˆˆNˆˆSNSSˆNNNSˆSSSˆNNˆNSSSNSNˆSNˆˆSNSSˆNNˆNSˆNNNNSSNNNNNˆˆSNNNNSNSNNNNNSNNSSNNNNˆSNSSSNSNˆSNNNSNNNNNNNNNNNNNSSNNNLNSNNNNNNNNNNNNNSLNSNLNNNLNNNNNNNNNNNNLNNLNNNNNNNNNNNNNLNLNNLLLLNNLLLNSNNSLNLNLNNLLLNLNNLNNNLNLNNLNNNLNLNNLNLNNLLLNLLLLLLLLNNNNLLLNLNLLNLLLLLLNNNLNNLLLLLLLLLNLLLLLLLLLLLLLLLLLLNLLLNLLLLLLLLL,LLL,.LLLNLLLLLLLLLL,,L,LL,L.L,LLLL,LLLLLLL.L,LMcÁÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄT"TTT TT":"0*30300+úúüüþüüüúúúúúóóóóúúúúúúúúúó÷ó÷÷÷÷ó÷ó÷óóóó÷òòóòòò*34434*óòñðóñòðòðóèðèòâòâðâòçðâñðòðâðâðâðâðâòâðâçâââðèâââïàÑè*33*03*ßáßâáÞáÞÑÞÑÞÑÞÑÞÎÞÑÞÞÎÞÍ×Ñ×ÍÞÎßÉ×Ñ×ÎÞÞÉÌÉÞÍ×Í×Í×Í×Í×É*++++++ÍÌÉÄÉË×ÄÌÆÉÆÌÉÃÇÆËÆÇÆÇÆÄÆÄ™ÄÆÇÃÇÆÇ–Æ––™ÆÅ–Æ–Ä™–+&&&&&&+TTT  ÓÓüüüüüüüýúýúüýúüüþü÷óóúóóú÷óóò¬}?   ! !! !!!!!!!!!!!!!!! !!!!!!! !Bñÿÿÿÿÿÿÿÿÿÿÿÿ÷_!! ! !!!! !!!!!!ZßÿÿÿÿÿÿÏY!!!!!ÈÿÿÿÿÿÿÿÿÿÿÿÆ$ !  ! !Yñÿÿÿÿÿÿÿÿÿÿó[ _ñÿÿÿÿÿÿÿÿÌ#!ðÿÿÿÿÿÿÿÿÿYÏÿÿÿÿÿÿÿÿü;Îÿÿÿÿÿÿÿÿç@ „üÿÿÿÿÿÿÿÿÿáY –üÿÿÿÿÿÿÿÿÿá!  �ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ!   áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_!!ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! =s¥íýýýüüýýýýýýÿþúýúýüýýúýúüýüüüàÓTTTTTSˆˆˆSˆˆˆˆˆSˆSSSˆˆˆˆˆˆSSˆˆSNSNSSˆSSSˆˆˆˆSˆSNˆˆˆSNNNSSˆˆˆˆˆˆSSˆˆSSNˆSNSSNSˆNNˆSSSNNNNSˆˆSNSNNNNNNNNNSNNNNNˆSNNNNˆˆNˆSSNˆNNNSNNNNNNNSSSNNNˆSNNSNNNNNSNNNNNNNNNLNNNNNNNNNNNNSNNNNNNNNNNNNNNˆNSNNNNNNNNNNLNLNNNLNNNNLNLLNNNNNNNNLLNNNNLNNLLNLNNNLLLNNLNNNNNNLNLLNNLLNLNLNLLNNNNLNLLLLNNLNLNLLNNLLLLLNLLLNLNLLNLLNNLLLLLLNNNLNLLLLLLLLLLLLLLLLNLLLLLL.LLLLNLLLLLLL,LLLLLLL,L,LLLL,,LLL,LNLLLL,L.,LL,,L,LLL,LLLLL,L,,,,L.L.L\hÄÄÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄTTTTTT   """0003+0*üúúüüþýýüúúúúúúúúúóúúúúüúúú÷÷÷ó÷ò÷÷÷ó÷òò÷òòóòòóò133443***11***1*1*11+1+1+1*1+1*11+110*1+10*1+1+1+1+1*1+1*1+1**33*33**1+1+1+1*1*+0**1+1+*+1*10*1++1+1+1+1+1+1*0**+******+1*+++++*ÌÈÉÌÈÄÉÉÈ×ÄÉÈ×ÉÍ™ÍÇÍ™ÄÇÃ™ÆÆÆ™ÄÆÄ™ÄÇÆ™ÄÅÃ™ÄÆ–ÄÅÆ–&&&&&&+""TM"T  ÓÓýüúüúüúüüúýúüüúýÿúóúóó÷úóóúóò¬Ž?!!!!!!!! !!!!!!!!!!!! !! !!!!!! !!!!!ZóÿÿÿÿÿÿÿÿÿÿÿÿýÅ!! !!!!!!!!!!!!!!!„óÿÿÿÿÿÿÿÿß[!! Yñÿÿÿÿÿÿÿÿÿÿþ…!!!!!!!!!!!!! !!YðÿÿÿÿÿÿÿÿÿÿýÈ! [ñÿÿÿÿÿÿÿÿË!!ßÿÿÿÿÿÿÿÿÿ–!! !üÿÿÿÿÿÿÿÿó ;Îÿÿÿÿÿÿÿÿç;!@áÿÿÿÿÿÿÿÿÿþ‚ áÿÿÿÿÿÿÿÿÿÿ‚! !! !!‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!     áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóx !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!   !! !=}¥éüüüýýüýýýýýÿýüýýüýúýüýýûüýúýàÓTTTTTTTTTT:TˆˆˆSSˆˆˆˆˆSSSSSˆSˆSSˆˆSSSˆˆNSNSSSˆNˆˆˆSSSˆˆˆˆˆˆSNSSSSNˆNˆˆˆNNˆNˆˆSˆNNSSˆNˆNSˆNSNSNNNSSSNNNˆSSSNSNˆNNNNNNSˆNNˆNSNNSNSSSSNNˆNNNNSNSSNNNNSNSNNNNNNSNSNNSNSNNSNNNNNNNNNNNˆNNNNNSSNNLNNNNNNNNNSNNNNNNNNNLNNNNNNNNNLLNLLLNNNNNLNNNNLLLNNNNLLNLNNNNNNNNNNNNNLNLNNLLLNLNNNNLLNNLNLLLLLLNNLLNLNLLLNNLLLLLLNLLNNLLLLNLNNLLLLLLLLLLNNLLNLLLLLLLLL,NLLLLLL.L,L,LLLLLLLLLL.L...LL,L,LLLLLLLLLLL,LLLL,.LL,,LLLLLL,,L.LLL.,.,LLLL,McÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄ TTTTT"0(30300+þüúúüüüýüüüúúúúúóúúúúúúóúúúóúòúò÷÷ò÷÷÷÷÷ó÷òòóòðò*34434343334333333033333P0333\03333333333333333333303330333333M3*303M3030303030030000000000000000000000000000+0+0+0++0++++++++++ÉÌÉÆ×ÈÌÃׯÆ×ÄÆ×ÃׯɯÉÄÌÆÄÆÄ™ÆÄƙęęęÆÄ›ÄÅÆÅÅ–+&&&&&&+TTT""  ÓÓýúýúýüüüûüüúýúúüþüóóóúóó÷óóóò¬Ž?!! !  ! !!!! !!  !!!!  !! !!!!!!!_úÿÿÿÿÿÿÿÿÿÿÿÿÿçZ !!!!!! !!!!!! !!!ZÎýÿÿÿÿÿÿÿÿÿÿñ_!!! !!–üÿÿÿÿÿÿÿÿÿÿÿÂ!!!  !!! !!@ñÿÿÿÿÿÿÿÿÿÿÿñ@ _ñÿÿÿÿÿÿÿÿË!Âüÿÿÿÿÿÿÿÿó! –ÿÿÿÿÿÿÿÿÿÎ  ;Îÿÿÿÿÿÿÿÿð;ÂýÿÿÿÿÿÿÿÿÿÎ;_÷ÿÿÿÿÿÿÿÿÿó@ dýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!  !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    =q¥íýýýüüýýýýüýÿýüýúýúýüûüüüûüüüæ×T::TT:TT:TT"ˆˆˆˆˆˆNˆˆSSSSSSˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆNSSSNˆˆSˆˆNSˆˆNSNNˆSˆNSNˆNˆSNˆSNNˆSNNˆSˆNSˆNNSNNNNNNSNNNSSSSSSSNNNNˆSNNNSNNNˆSSSNNNNˆNSNNSNNNNSNˆSSNNNSNNNNNNNNNNNNSNNSNNNNˆNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNNNNNNNNNNNLNLNNLLNNLNLNNNNNNNNLLNNNLLNNLLNNNNNLNLNLNNNLNNLLLLNLNNNLNLLLNLLLLLLNLNNLLLNLLNLLNLNLLLLLNLLLNLLNLLLLLLLLLLLLLLLLLLLLNLLLLLNLLLLLL,LLL,LLLLLLL,LLLLL,LLLL,,LL.,LLLLL,L,LLLLL,N.,,,,L.LLL,LL,,L,,,.,,L,LXcÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ  TTT003+03+ýüüúüüüþüüúüúúúúó÷úóúúúúúúúúóú÷óòóúòúó÷ó÷ò÷óòòõð13343443434343433433334333Q333333333333333333333333333M333M33330*3M030M3030U00303030303003000303003030*00+0*0*0++0+++++++++++++1ÉÍÈ×ÄÇÄ×ÄÉÄÆÉÆÄׯÉÄÆÄÌ›ÆÄÆ™ÄÆÂÆÆÅÆÄÆÄÆ™ÄÆ›Ã†Æ–Ȇ+&&&&&&+TTT   Ó×üüüýúûüúüüúüúýúýÿúóúóó÷úóúóúòÓ�?!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!!!!!! !!!!_üÿÿÿÿÿÿÿÿÿÿÿÿÿüÉ@!!!! !!!!!!!!@Æúÿÿÿÿÿÿÿÿÿÿÿÿÿñ_!!!!!!;áÿÿÿÿÿÿÿÿÿÿÿÿÉ@ !! !! _óÿÿÿÿÿÿÿÿÿÿÿü‚ ![ñÿÿÿÿÿÿÿÿË!!!!!_÷ÿÿÿÿÿÿÿÿÿ‚;üÿÿÿÿÿÿÿÿý‚@Îÿÿÿÿÿÿÿÿç@! _ñÿÿÿÿÿÿÿÿÿú_! Îÿÿÿÿÿÿÿÿÿÿ   xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_  ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    !  !!q¥éüüüýýüüýýýýÿýüüýýýúýüýüýüüýúàÓˆSSˆSNSNˆˆˆSSˆNˆNˆˆNNˆNˆSˆSˆSˆˆˆSSNSˆSˆˆˆˆNNNSˆˆNSSˆSSNSNNNNˆSˆNNˆSNNˆSˆSSSNNNNSNNNNNNSNSˆˆNSSSNNNNSˆNNSˆNNSSNNNNSSNSSNSNNNNNNSSSNNNNLNNNNNNNNNNNNSNNNNSNNNNNNNNNNNNSNSNNNNNNNNNLNNNNNLNNLNNNNNNNNNLNNNNNNNNNLLNLLLLLNNLNNNLNNNLLLNNNLLNNNLNNNLLLLNNLNLLNLLLLNNNNLLLLLLLNNLLLNLNLLNLLNLNLLLLLLLN,N,LLLLLLN,LLLLLLLLNLLLLL,LLLLLLLLLLLLLLLLLLLL,L,,,,,LL,LLLLLLL,,,LNLL,LLLLLLLL,,LLLLL,LL,LL,LLLL,,L,,,,,LL.,L,.Mc¾ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄ *00300++++++++++++++-++-+++-+-++-++++++++++++++++++++0+*3434434343434334334333343333333333333333333333333M333333333M3M3*303033030303003+300+0+300+30+0+300+0000*0(0+0++0++0++++++++++0*+0+&0&00&0++++++0++++0++0+++++0++++++0++&&&&&&+ ÓÓüûúüüüüüýúüúüüúüþüóóú÷óóóóóóò¬Ž?! !! !!  !!! !!!!!!!!!!!!!! !_úÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÅ#  !!! !!!@ÂòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ@!!!YòÿÿÿÿÿÿÿÿÿÿÿÿðY!!!!!!!–üÿÿÿÿÿÿÿÿÿÿÿÿË!  !_ñÿÿÿÿÿÿÿÿË!!! ñÿÿÿÿÿÿÿÿÿüY!ñÿÿÿÿÿÿÿÿÿü;;Îÿÿÿÿÿÿÿÿð@!ÌÿÿÿÿÿÿÿÿÿÿÃ! @óÿÿÿÿÿÿÿÿÿü@ _ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_  ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ ! =q¥ëýýýüüýýüýýýÿýýýúüüýüýúýúýúüýæÓˆˆˆˆSNSˆˆSˆˆSNSSˆˆNˆˆˆˆˆˆNˆSˆSˆSSNSNSˆˆNSSˆNSSˆˆNSˆSˆSNˆNSNSSSSNˆˆSNˆNNNSNˆNNNNNNNNNˆNSˆNNSNNSˆNNNNNSSNNNNSNSSNNNSSNNNˆNNNNNNSNNNNNNNNNNNSNNNNNNNSNNNNNNNNSNNNSNNNLNNNNNNNNLNNNNNNNNNNNNNLLNNNNNLNNNNNLNNNNLLLLLLNNNNNLNLNNNLNNNLLLLNNLNLNLNLNLLLNNLNNNNLLNLLNNLNLNLLLLNLLLNLLLLLLLLNLLNLLNLNLLNLLLLLNLLNLLLLLLNLLLLLLLLLL,LLLLLLLLLLL,LLLLL,,,,L,LLLLLL,LLL,LNL,L,,NLLL,L,LLLL,LLL.,LL.L,,,,LL.L,L,,.,L,,,,,.,\bÁÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÁ    +003+03000000000000000000000000000000000000000000000000*43434434343O33433333433333333333333333333333333M333M333M3330<3M*0300Q0300303303+30+30003+0003+003+0*0*00*0*0++0+++++++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+    ÓÓýüüüúüüúúüúýúûüüÿúóúóóúóú÷úóò¬s?! !!!!! !!!!!!!!! !!!!!!!!!!!!! !Z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ@!!!!!!!!!!!!YÈ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÂ!!!!!‚üÿÿÿÿÿÿÿÿÿÿÿÿü–!!!!! !! !Zðÿÿÿÿÿÿÿÿÿÿÿÿÿá!!!_ñÿÿÿÿÿÿÿÿÌ;Èÿÿÿÿÿÿÿÿÿÿ÷_ ;ñÿÿÿÿÿÿÿÿÿÿá;Îÿÿÿÿÿÿÿÿç@ ‚÷ÿÿÿÿÿÿÿÿÿñ[ÆýÿÿÿÿÿÿÿÿÿÎ!  ! dþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ9!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ   =}ªéüüüýýüüýýýýÿýúýüýûüýúýýüýýûüàÓNNSˆSˆSˆˆˆˆSSˆNSNˆˆSNNSˆˆˆNSSˆˆˆˆNSNˆˆNˆNNNNNSSˆˆˆNˆNSSˆNNSˆNNNNNSSˆNˆNNNSNSNNNNNSNSSNNNNNSSNSNSSNNNSSSNNˆNNSNNNNNNNNSNˆNSNNNNNNNNSNNNNSNSNNNNNNNNNNNNNSSNLNNNSNNNNNNNNNNNLLLNNNNNNNLNNNNLNNLNLNNNNNNNNLLNLNLLNLNNLNNNLLLNNNLNLNNLNLNNNLLNLNNNLNLLLLLNLNNNLLLLLLLLNLLLLLNNLLLLLLLNLLLLLNNLLLLLNNLLLLLNLLLL,,LLLLLLLLLLLL.LLLLLLLLLLLLLL,LL,L,L.,LLLL.LL,LLLL,L,LL,L,L.L,LLLL.L,L,,,,LL,LLL,L,,,,,,LL,,,LLLL.,LchÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ  +3030+0300030003000003003000300300030003000300303030+20*34344343434334334333333333333333333333333333333333333333M33M303*:40303330030+0000000+30+33+0<+30+300(30+0+0+*0++0+++++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+  ÓÓüüúýüýúüýúüüüüúúþüóóúóó÷óóó÷ò¬�l  !! !!!  !!!  !!!!!!Bóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð…!!!!!!!!;–çýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷‚!!!!!!Æýÿÿÿÿÿÿÿÿÿÿÿÿÿó„!!!!YÎüÿÿÿÿÿÿÿÿÿÿÿÿÿóY  [ñÿÿÿÿÿÿÿÿÌ9!@óÿÿÿÿÿÿÿÿÿÿÿÈ; !Âüÿÿÿÿÿÿÿÿÿÿü[;Îÿÿÿÿÿÿÿÿð;;Ïÿÿÿÿÿÿÿÿÿÿ– !ñÿÿÿÿÿÿÿÿÿÿ[  _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ;! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      =s¥íýýýüüýýüüüýÿþýúýüüýüýýúýúüüüæ×NSSNNSSNNˆˆSSNNSˆSSSNˆˆˆˆˆNNSˆSˆˆSSSˆSSˆSSNSSNSSNSSSSNˆSSNNSSNSSNNNNNNˆSNSNNNNNˆNSSSSNNˆSˆSSNNSSSNNNNSSNNNNNSNSNNNNNˆNNNSNSNNNNNLNNNNNNNNNSNNNLNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNLNNNNLNLNLLLNNNNNLLNNNLNNNNLNNNNNNNLNNNLNLLNNLLNLLLNNLLLLLNLLLNLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLNLNLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL,LLL.,LLLL,LLLL.L,,LLLLLLLL,LLLLLLL,LLL,LL,LL,,L,,,L.L,.,.L.,L.L,,,L,,,,,,,L,,,L,,RcÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄ +000+00003+003+003+30+03+03+0+0+03+00*00+03+0*0+0(0+0+0*434344343O33433333433433333333333333333333333M333M333M333M330<0*03030:0033+03303+33+0<+00+0000003(0+00(0*0++0+++++++++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+     Ó×üúýúûúüúúýúúüúüüÿúóúóóúóúóúóò¬�?!!!!!!!!!!!!  !! !!!!!!!! ! !! @áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýñÈ�@!!!!@xÈñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ_!!! !!!Ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ËZ!#…çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_!_ñÿÿÿÿÿÿÿÿË;!Æýÿÿÿÿÿÿÿÿÿÿÿüç‚‚ÂÏüÿÿÿÿÿÿÿÿÿÿÿÿá;Îÿÿÿÿÿÿÿÿç@–üÿÿÿÿÿÿÿÿÿáY„üÿÿÿÿÿÿÿÿÿð!  !!�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ!!ÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóxÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ      p’éüüüýýüüýýýýÿýúýüýûüýúúýúýûüüàÓˆSˆNSSSSNSˆˆSNSSˆSNˆSˆSˆˆˆˆNˆSSNNˆSSNSNNˆˆNNˆNSNNSSSSNSSSSNNNSSNSSˆNSNSˆNNSSNSNSSNSSSNNNSSSSSNNNSSNNNNSNSNSNNSSNNNNNSNNSNNNNNNNNNNNLNNNLNNNNLNNNNNNNNNSNNNLNNNNNNNNNNLNNNNNLNNLNNNNNNLNNNNLNLNNLNNNNNNNNLLNNNLLNNLLNNLLNNNNNNLNLNLLNLLNLLNLLNNNLLLLNNLLNNLLLLLLLLL.LLL,LLLLLLLLLLLLLLLLLLLLLNLL,LLLLLLLLLLLLLLLLLLLLL,LLLLLLL,N,,L.LLLLL,,LLLLL.L,LLL,,.LLLLL,L,L,,L,L,L,LL,L.L,,,,L.,,.L,L,,,,L,.,,,,,,,,LWdÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÄÄÄ++30330*00+3000+300+30+00+00303000+300030+300000303(300********************************************************************************************************************************&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+  ÓÓûüüüüüûüüüúýúüúúþüóóúóó÷óóó÷ò¬�? !! !!!  !! !!!!ÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñÏÈÆÂ–––ÅÈÎñúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÈ@!!!!! ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáÆ…_[ZZZdÂÎóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü�_ñÿÿÿÿÿÿÿÿÍ!! ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüY;Îÿÿÿÿÿÿÿÿç@ Yáÿÿÿÿÿÿÿÿÿü‚ áÿÿÿÿÿÿÿÿÿÿ„ !_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ     !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ !  !    $qšëýýýüüýýüüüýÿýýúýüüûüýýüüüüýüàÓˆˆNˆSNNNSNSNNSˆˆˆSNˆˆNNˆSˆNNSˆˆNNSSSNNSNSNNNNSNˆSNSSNNˆSˆNNNSSSSNSSNSSSSSNNˆSSNNNSNSSNNNNSSSNNˆNNNNNNSNNNNNNNˆNSLNNNNNNNNNNLNNNNNNNNNNLNLNNNNNNNNNLNNNNNNSNLNNNNLNNNNNNLNLLLNLNNNLNNLNNNNLLNLNNNNNNLNNNNNNLNNNNLNLNNNLLLLNNLNNLNLLNLLNLLLLLNLLNLLLLNL,LLLLLLLLLNNLLLLLLLLLLLLL.NLLLLLLLLNLL,LLLLLLLLLL.LLL,,L,.L.LLLLLLLL.,L,LLLLLLL.LLLLLLL.L.,LL,LLL,,,L.LLLLL,,L,,L,,.,,.LL.L,,,L,,,,,,,,,.,L,L,L,,,,,McÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄ   +000+0+00030+03+003+00033+<03+03+03003+03+0(03+*0+00+0*+00+        +&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+   Ó×üüüúüúüüúúýúüúýüÿúóúóóúóúóúóò¬s> !!!!!!!!!!!!!!!!!!!! !!!! !!! _úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó‚!! !!!!!!!! !!!Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_!!!![ñÿÿÿÿÿÿÿÿÌ!! _üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„;ÎÿÿÿÿÿÿÿÿðBÆÿÿÿÿÿÿÿÿÿÿË!_úÿÿÿÿÿÿÿÿÿ÷;!  �ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà   áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  ! =}ªéüüüýýüüýýýýÿýüýüýüüýúüúýúýüúæÓSNˆˆSˆNSNNˆNSNNˆSNˆNˆˆNSSNNNNSSSSNSSˆNˆNSNˆNNˆSNSNˆSSNSSNNNNNNNSSSSSSˆSNSSNNNNNˆNNNNˆNNNNSˆNSNˆNSNNNSNNNNNNNNSNNNLNLNNNNNLNNNNNNNNNNNNLNNLLNLNNNNNNNNNLNNNNLNNNNNLNNNLNNNNNLLNN,NLNNLLNNLLLLNN,NNNNNNNNLNNLLLLLNLLLLNNLNLNNNLNNNNLLLNLLLLNLLLNLNLL,LLNLLLLLLLLLLLLLNLL,.L,LL,.LLLLLLLL,LLLLLLLLLL,LLL,LLL,L,,LL,L,LL.LLLL,,,LL,LLLL.LLLLLL,,,,,L,,L,LL..,.L,.L.LLL,,L,,,,L,,,L,L,,,,,L,L,,,,.,,.,,,.,,,LMcÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÁÄÄÄÄÄÄÄÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhgddfhhdhhddhhhhhdhhhhchhhdchhdhcgfhhdhghcdhchdhgcchchhcghchhchccdhchchcchccchchccccccchcccccchccccccccchcccccccccccccccccccccccccccccdccgfcccgcccccccdcccccXcc*0+3300<+30+30<+3000<0+000+0+30+30(30+300003000000+30+00+0+       +&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+XcXcccccbcccccccccccccccccccccccchchcccchccccccccchcccccdccccccccchcccccccccccccccccccccccccÓÓýúýüúüüúüüúýúûúúþüóóúóó÷ó÷óóò¬Ž?!!!!!!!   !!!!!   !! 9ÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÌ@ ! !!Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó[ ! [ñÿÿÿÿÿÿÿÿÎ;–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË@ÎÿÿÿÿÿÿÿÿçB_òÿÿÿÿÿÿÿÿÿó_  ÎÿÿÿÿÿÿÿÿÿÿÆ!! �ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ     áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóxÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  !   !!!s¬íüýýüüýýüüüüÿýýüúýúýüüûýúýúýüàÓchddhchhfhhhgddghhhghdhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhSSSˆˆNˆNNSNSSNˆSˆNNˆSNSNNNNSNNNNSˆNNSNNNNSNSSNˆNNNNˆSNSSNNNNNˆSNSSSNNSSNNSNNNNSNNNSSSSNNSNSNNNSNNSNNNNNLNNNNNNNNSNLNNNNNNNNNLNNNNNNNNNNNLNNNNLNNNNLNNLNLLLLLNLNLNNLLNLLLNNLNNLNNLNLNNLNNLLNLNNNLNNN,LNNNLLN,LLNNLLNLNNLLLNLNL,NLLNLLLNLLLLLLLLLLLL,LLLNLLLL,LLLLLLLLLLLL,LL.L,LLLL,LLLL,L,,,L,LLLL,,L,,,LLLLL,LL,L,LL,LL,,.,LLL,L.L,,L..,L.,.,LL,,L,L.,,,LLL,,L.,L,,LL,,,,.,L,,,,.,,,,L,,,,,,,,,.,,.,,M\hÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÁÄÄÄÁÄÄÁÁÄÁÄÁÁÁÁÁÄÁÄÁÄÁÄÁÄÄÁÁÁÄÄÁÁÄÁÁÁÄÁÁÄÁÄÁÁÁÁÄÁÁÁÁÄÁÁÁÁÁÁÁÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁhÁÁÁhÁhÁÁhÁh&0++((++++(++(+++(++*(++++++++(++(+0(++(+*++(*(*+*(+++++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++cÁÁhÁhÁÁhhhhhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁÁ¹ÃhÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁ×Óúüúúüúýüúûüúüüüüÿú÷÷óóúóúó÷úòÓŽ? ! !!!!!!!!!! !!!!!!!!  !!! [óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç_ !!!!–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ@!!!_ñÿÿÿÿÿÿÿÿË!Ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá ;Îÿÿÿÿÿÿÿÿç@!ËÿÿÿÿÿÿÿÿÿÿÂ! ;óÿÿÿÿÿÿÿÿÿÿ@!�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ !áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!     $q¥õýüüýýüüýýýýÿýúýýüýúýüüüüüüüúàÓÄÁÄÁÁÁÁÄÁÁÁÁÁÄÁÄÁÁÄÁÁÄÁÁÁÁÄÁÄÁÁÁÄÁÄÁÄÁÄÄÄÁÄÄÄÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÁÁÄĈˆˆSNˆNNSNNNSSNˆSSSNNNSSNSNNSNˆSSSNNNNNˆNSSNSˆNSNSNNNSSSNNNSNSSNNSSNNNSNNNNSNNNNNNNNNNSNˆNNNSNNSNNNNNNNNNLNNNLSNNNLNNNNNNNNNNNNNNNNNNNNLNLLLNNNNNNNLLNNNLNLLLNNNNNNLLLNLNNNNNNNNLNLLNNNNNLLLLNLNLNNNLLNLLLNNLLLLLLLLLNNLNNLNLNLNLLLLLLLLL.LLLLLNNLLLLLLLLLLLLLLLNLLLLLL,L,,LLN,LLLLL,LLL,L,L,LLLLLLL,.,LLLL,LLLL,L,,LLN,L,.,,.L,.LLL,,L.,,,L,L.,,,,,.LLLLL,LLL,,L,,,,,,,,,,,,,.,L,,,,.,,,L,,,,.,.,.,,MbÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÁÄÄÁÄÄÄÄÄÁÄÁÄÁÄÁÄÄÁÄÁÄÄÁÄÁÄÄÁÄÁÄÄÄÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÁÁÄÄÁÁÁÁÄÁÄÁÄÁÁÁÁÁÁÄÁÄÁÁÄÁÄÁÄÁÁÄÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁhÁhhÁÁhÁÁhÁhÁhÁÁhÁÁÁÁ•ÁÁÁÁÁ•ÁÁÁ„Áh•hÁÁ•ÁÁÁÁ•Á•ÁÁ„ÁÁÁÁÁÁ�Á„ÁÁÁ„•ÁÁÁÁ•ÁÁÁh•ÁÁ•ÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁhÁhÁhÁÁhÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁhhÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁhhÁÁhÁÁhÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁ•ÁÁÁÁÁÁhÁhhÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÓÓúúüýúýúúüüúüúúúúþüó÷óúóóóúóóòÕs?!!!  !! !!!!!!!!!!!!!!!!–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó‚!ZóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ! [ñÿÿÿÿÿÿÿÿÍ! –þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ;Îÿÿÿÿÿÿÿÿð@‚üÿÿÿÿÿÿÿÿÿçY!ÂýÿÿÿÿÿÿÿÿÿÑ!‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_  !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ  !      =q¬õüüýüüýýüüüýÿýüüüûüýúüýúýüûýúà×ÁÁÁÄÁÁÄÁÄÁÄÁÁÁÄÁÄÁÁÁÄÁÄÄÄÄÁÁÄÄÄÁÄÁÄÄÁÄÁÁÄÁÄÄÁÄÄÁÄÁÄÁÄÁÄÄÁÄÁÄÄÄÁÄSˆNNNSSSNˆNSNSSNSNNNSˆNSSSNNSNNSˆSNNNNNSSNˆNNSNSSNNNNNSNNSNNNNSNNSSNNNSNNNNNNNNNNNNNNˆNNNNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNNNNNLNNNNLNNLLNNNNLLNNNNLNNNLNLNNNNNLLLNNNLNNLNLLNLNLLLNNLLLLLLNNLNNLLLNNLLNLLLLLLLLLNLNLNLNLLNLLLNLLLLL.LLL.L,LL...,LLLLLLLLL,LLLLL,LLLL,LL,,LLLL,,,LLLLLLL,L,L.LLL,,,LLL,LLLL,LL,L,,,LL,L,.,.LL,L.,L,L,,LL,,,,,L,.,.LL,L,L,,,L,.,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,.,,\cÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÁÄÄÁÄÁÄÄÁÄÄÄÄÄÄÄÁÄÄÁÄÄÄÁÁÄÁÄÁÄÄÁÄÄÁÁÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÁÄÁÁÄÁÄÁÁľÁÄÁľÄÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁľÁÁÁÄÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁľÁÁÁÄÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁÁ�ÁÁhÁhhÁhÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁÁÁhÁÁÁhÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁhÁÁÁÁÁhÁÁÁhÁhhÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁÁÁhhÁÁÁÁhÁÁÁÁÁÁhhÁÁÁhÁhÁhÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁhhÁhÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁÁÁhÁÁhÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁÁhÁhhÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁÁÁhhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhhÁhÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁÁhhhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhhÊÓ÷ýúúüúüüúúüúýüüüþü÷ú÷ó÷÷÷óóúòÙ�?!!! !!!!!!     !!! !!!!!!!!Âüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò‚!!!! !!!!!!!!!!!;Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú‚ !!!!!  _ðÿÿÿÿÿÿÿÿÌ!!!‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–9Îÿÿÿÿÿÿÿÿç; ;Ïÿÿÿÿÿÿÿÿÿÿ„ñÿÿÿÿÿÿÿÿÿÿ[! ‚þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ    !!!=�¬õüýüýýüüýýýýþýüýúüüüüýúýúýüüúàÓÁÁÁÁÁÄÁÄÁÁÁÄÁÄÁÁÁÁÄÄÁÄÁÁÁÄÁÄÁÁÄÄÁÄÁÄÁÄÁÄÄÄÄÁÄÁÄÄÄÄÁÄÁÄÄÁÄÄÁÄÄÁÄÁNNˆNSˆSSSSNNNSSNNNNNSˆSSSNSNˆNSSNNNNSNNSSNNˆNSNNNNNˆNNNSNNNSNNSSNNNSNNNSSNSNNNNNLNNNSNNNSNNNNNNNNNNLLNNNNNNNLNNLLNNNNNNNNNNNLNLLLNLNLNNNNNNLLNNLLLLNNNNNNNLNNNLNNLLLLNLLNLLNNNLNNLNNLLNLLNLNLLNLLLLNNL,NLLLLLLLLLLLLNNLLLNLNLLLLLNL,LLLLLLLLLLLL,LNLNLLLLLLL,L,,L,LLLLLLLL,L,.L,,.,LLLLLLL,,N,LLL,,,L,,.L,,L,L,,L,LL.,L,,L,L,,L,,,,LL.,L,,,L,,,,,,,L,L,,,L,L,,,,,L,,,,,,.,,,,,,,,,,,,.,,,,,,,,,,,MWhÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÁÄÁÄÄÄÄÁÄÄÁÄÁÄÄÄÄÁÄÁÄÄÁÄÁÄÄÄÁÄÄÄÁÄÁÄÄÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÁÁÄÄÁÁÁÄÁÁÁÁÁÄÄÄÁÁÄÁÁÁÁÄÁÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÄÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁhÁhÁhhÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhhÁhÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁÁhÁÁhhÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhhÁhÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁÁhÁÁhhÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhhÁhÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÊÔ÷úüýúüúýúýúüúúúúÿüóóóóúó÷óú÷òÙ�j!!!!!! !!!!!!!!! !!!!!‚óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð_!!   !!!!!![ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË9!!ZñÿÿÿÿÿÿÿÿË9! YÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñY  ;Ìÿÿÿÿÿÿÿÿç; –ýÿÿÿÿÿÿÿÿÿÏ@ ‚üÿÿÿÿÿÿÿÿÿó!    ‚þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ! ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó�! !ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ     !!!?�Öúýüýüüýýüüüýÿýûüýýüüûüüüüýúý÷àÊÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÁÄÁÄÁÄÄÁÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÄÁÄNNNSSSSSSNNSNNNNNNSNSSSSNSNSSNNSNNSSNNSNSNNNNNNˆNNNNNNˆNNNNNSNNNNNNNNNNNNNNNNLNNNNLNNNNNNSNSNNNSNNNLNNNLLNNNLNNNNNNNSNNLNNNNNNNNLLLNNNNNNLNNLLLLLNLLNNNNNLLNNLLNLLLNLLLNNLLLLLLNLLLLLNLLLLLNLLLLLLLLLLLLNLLLLLLLLLLLLLLLLNLLN,LNLL,L,LL.,NLL,L.LLLLLLLLLLLLLLLLL,,,LLLLLL,L,,.,,,,.,LLLL,L,LL,,L,,.L,.L,L,.,,,LL,,,,,,L,.,LL,.,,,L,,,,,,L,L,,,,,,,,,,,,,.,L,,,,.,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,0\¾ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÁÄÄÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁľÄÁÄÁÄÁÁÄÄÁÁÄÁÄľÁ¾ÁÁÁÁÁÄÁÁÁľÁÄÁÁÁÄÁÁÄÄÁÁÁÄÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁhhhÁÁÁÁhÁÁÁÁÁÁÁhÁhhhhÁÁhÁÁhÁhÁÁÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁhhÁÁÁhÁhÁÁÁÁhÁÁhhhÁÁÁhhhÁhÁÁhÁÁÁÁÁÁÁhÁhÁhÁhÁhhhÁhÁÁÁÁhhhÁhÁÁhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁhhhÁÁÁÁhÁÁÁÁÁÁÁhÁhhhhÁÁhÁhÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁhhÁÁÁhÁhÁÁÁÁhÁÁhhhÁÁÁhhhÁhÁÁhÁÁÁÁÁÁÁhÁhÁhÁhÁhhhÁhÁÁÁÁhhhÁhÁÁhhÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁhhhÁÁÁÁhÁÁÁÁÁÁÁhÁhhhhÁÁhÁÁhÁhÁÁÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁhhÁÁÁhÁhÁÁÁÁhÁÁhhhÁÁÁhhhÁhÁÁhÁÁÁÁÁÁÁhÁhÁhhÁhhhhÁhÁÁÁÁhhhÁhÁÁhhÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁhhhÁÁÇ×õüûüüúûúýúúûüüúýýüúúóúóóú÷óóóæŸq!!!!!!!! !!!!!!! ! YÆúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòÂ@!!!!!!�ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÌ;!_ñÿÿÿÿÿÿÿÿË;Yçÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷� ;Íÿÿÿÿÿÿÿÿç@Zðÿÿÿÿÿÿÿÿÿú‚ áÿÿÿÿÿÿÿÿÿÿ–  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ! ! áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_  ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ!   ! 7}¬úüýüýüüüýýýþÿüüüüüúýüüýúýúýú÷ÚÊÁÄÁÁÁÁÁÁÁľÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÄÁÁÄÄÄÁÄÄÁÄÄÄÁÄÄÁÄÁÄÄÁÄÁÄÄÄÁÄÄÄÄÁÄÁÄÄÁNSNNSNSSSNSSNNNNNNNNSSNSSNNˆNNSNNNNSNNSˆNNNNNNNNˆNNNNSNNNNNNNSNNNNNNSNSNSNNNNNNNNNNNNNNNNSNNNSNNNNNNLNNNNLNLNLNNNNNNNLNNNNLNNNLNNNNNNLNNNLNNLLLLLLNLNLLNNLNLNLNLLNLNNLNNLNLNLLLNNLLLLNLLLLLLNNLLLLLNLLNLLNLL,LNLLLLLLLLLLLLLLNLLNLLL,LLLL,L,L.LLLLLLLL,LLL,LLLLLLLL.L.LLLLLL,.,L,,L,LL,LL,LLL,L,,L,LL,LL,.,,L,,LL.,L,L,,,,,,L,L,,,,,.,,.,,,,,,L,,,,,,,,,,.,,..,,,,,,,,,,,,,,,,,,,L,.,,,,,,,,,,,LcÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÁÄÄÁÄÄÄÄÁÄÄÁÄÁÄÄÄÄÄÄÄÁÄÁÄÁÄÁÄÄÄÄÄÁÄÁÄÁÄÁÄÄÁÄÄÁÄÁÄÄÄÁÄÄÁÄÁÄÁÄÁÄÁÁÁÄÁÄÁÁÄÁÄÁÁÁÁÄÁÁÁÁÄÁÄÁÁÄÁÁÄÁÁÁÄÁÁÁÁ¾ÁÄÁÁÁÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁhÁÁÁÁÁÁhÁhÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁhÁhhÁhhÁÁÁÁhhÁhÁÁÁÁÁÁÁÁhÁhÁhÁhÁhhÁÁÁÁhÁhÁhÁhÁhhhhÁhÁhÁÁÁhÁÁÁÁÁhhÁÁÁÁÁhÁhhÁhhhhhhÁÁÁÁhÁhhhhÁÁÁhhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁhÁhhÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁÁhÁhÁhÁhÁhhÁÁÁÁhÁhÁhÁhÁhhhhÁhÁhÁÁÁhÁÁÁÁÁhhÁÁÁÁÁhÁhhÁhhhhhhÁÁÁÁhÁhhhhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁhÁhhÁhhÁÁÁÁhhÁhÁÁÁÁÁÁÁÁhÁhÁhÁhÁhhÁÁÁÁhÁhÁhÁhÁhhhhÁhÁhÁÁÁhÁÁÁÁÁhhÁÁÁÁÁhÁhhÁhÁhhhhÁÁÁÁhÁhhhhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁ¹ÇÓõüüûúüüüúúüüúúúúýþóóóóúóóúóúòæ’q!!! !!!! !!!! !  !!!!!!!ZÆçþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüá–B! !! !!_Ïýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Æ; !_ñÿÿÿÿÿÿÿÿË! !   @–çþÿÿÿÿÿÿÿñÆ@  !  ;Ìÿÿÿÿÿÿÿÿá@! !ÂÿÿÿÿÿÿÿÿÿÿÈ!Y÷ÿÿÿÿÿÿÿÿÿü!   xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ ! !    áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ ! !   ! !     =ެúýüýüüýýüüüýþýýüüûüýúýúýýüüýõßÊÄÁÁÁÁÁÁÁÄÁÁ¾ÄÁÁÄÁÄÁÄÁÄÄÁÁÄÁÄÁÄÁÁÄÁÁÄÄÁÄÁÄÄÄÄÄÁÄÄÁÄÁÄÄÁÄÄÄÁÄÄÁÄÁÄNˆSSSSSNNSNNNNNNNNNNSSSNSSNNNNSNNNNˆSNNSSNSNNNNNNNNNNSNNNNNNˆNNNNNNNNNNNNNNNNLNSNNNNLNNNNNNNLNNNSNNNLNLNNNNLLNNNNNNNNNLLNNLLNNNLNNNLLNNLNNLLLLNLNLLLNNNLNNLLLLNLLLLNNLLNNLNLLLLLLLLLLNLLLLLLNLLLLLLLLNLLNLLLLLLLLLLL,LL,LNLN,LLLLLLLLL,LLLL,,LL.LLLLLL,,LL,L.L,L,LLL.L.,LL,,,,.,,L,,LLL,LL,,,,L,.,,LL,,LL,L,,,,,,L,,,LL,,,,.L,.,,,,,.,L,,L,,,,,,.,,,,,.,,.,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,0\ÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÁÄÁÄÁÄÁÁÁÄÁÄÄÄÁÄÁÁÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁľÁÄÁÁÄÁÄÁÁÁÁÄÁÄÁÁÄÁÁÁÁÄÁÄÁÁÁÄÁÄÁÁÁÁÄÁÁÁÁÁÄÁÁÁÁÁÄÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁhhÁÁÁÁÁÁÁhÁhÁÁÁÁhÁÁhhÁÁÁhÁÁÁhhÁÁhÁhÁhhÁÁÁhÁhhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁhÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁhÁÁÁÁÁhhhhhhÁÁhÁhhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁhhhÁÁhhhhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhhÁÁÁhÁÁÁhhÁÁhÁhÁhhÁÁÁhÁhhÁÁÁÁÁhÁÁÁÁhÁÁÁhÁhhÁhÁÁhÁÁÁhÁhÁhÁhÁhÁhÁÁhÁÁÁÁÁhhhhhhÁÁhÁhhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁhhhÁÁhhhhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhhÁÁÁhÁÁÁhhÁÁhÁhÁhhÁÁÁhÁhhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁhÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁhÁÁÁÁÁhhhhhhÁÁhÁhhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁhhhÁÁhhhhÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhhÁÁÁhÁÁÁhhÁÁhÁhÁhhÊÕòúüüüúûúüüúúúüúýþüúóúóó÷úóó÷óæ�q  ! ! !! !!!!!!!!!!!!!!Z–ÎçúÿÿÿÿÿÿÿÿÿÿÿÿúðÌ–Y!!!!!! !!    !‚ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÈZ!!!YYYZZZ[ZZ@ @__@! @YZYYZYZ_Y  @ZYZ[ZYZ[ZY! YZZZZ[ZZYZY!! ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !Ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð_ÂüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË    ?�ÕýüýúýüüüýýýþÿüúûüüüüüýüüúûüúõàÇÁÁÄÁÄÁÁÁÁÄÄÄÁÁÄÁÄÁÄÁÄÁÁÄÁÁÄÁÄÁÄÄÁÄÄÁÄÁÄÁÄÁÄÄÄÁÄÁÄÄÄÄÁÄÄÁÄÁÄÁÄÄÄÁNNˆNNSSSNˆNNNNSNSSSNNNSSNSSNNNNNNNNNSNNNˆNSNNNNNNNNNNLNNNNNNNNNNNNNNSNNNNNNNNSNNSNNLNNNNSNNNNNNNNNNNNNLLNNNNNNNLLNLNNLLLLNNNLLLLLNNLNNNNLNLNLLLLLNNNLLNNLNNLLLNLLLNLNLLLLNNLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLL.LLLLNLNLLLLLLLLLLL,LLLLLLL,,LLLLLL.L,LL,LL,,,LLLL,L,,,..L,.LL,L,L,,L,.,L,,,LL,L.,,,L,,,L,L,,,LLL,L,.,,,,,,,,,.,,,,,,,,,,,,,,L,,,,,.,,.,,,,,,,.,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,cÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÄÄÁÄÁÄÄÄÁÄÁÁÄÄÁÄÄÁÄÁÄÄÁÄÄÁÄÄÁÄÁÄÁÁÁÄÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÁÄÁÄÄÁÁÄÁÄÄÁÄÁ¾ÄÄÁÁÁÁÁÁÁÁÄÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhhhÁÁÁhÁÁhÁÁÁhhhÁÁhÁhÁhÁhhÁÁÁÁhÁÁÁÁÁÁhÁÁhhÁhhhÁÁÁÁÁhhhÁhÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁhhÁhhhÁhÁhhÁhhÁÁhÁhÁÁhÁhhÁhhÁhÁÁÁhÁhÁÁhÁhhhÁÁÁhÁÁhÁÁÁhhhÁÁhÁhÁhÁhhÁÁÁÁhÁÁÁÁÁÁhÁÁhÁhÁhhÁÁÁÁÁhhÁÁhÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁhhÁhhhÁhÁhhÁhhÁÁhÁhÁÁhÁhhÁhhÁhÁÁÁhÁhÁÁhÁhhhÁÁÁhÁÁhÁÁÁhhhÁÁhÁhÁhÁhhÁÁÁÁhÁÁÁÁÁÁhÁÁhhÁhhhÁÁÁÁÁhhhÁhÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁhhÁhhhÁhÁhhÁhhÁÁhÁhÁÁhÁhhÁhhÁhÁÁÁhÁhÁÁhÁhhhÁÁÁhÁÁhÁÁÁhhhÁÁhÁÆÓëüúúúüüüúýúýúúúüüÿóóóú÷óóúóúóæ�q    !!!!!  ! !!!!!!! @BY__x_ZB;!!!! ! !!!!!!!!!! @xÂÎçñóú÷òðáË…[             !!           !    !        ! !!! !!! !m�ÓüýüýüýüýüüüþþýüýúýúýúüúýüüýüõÚÌÁÁÁÄÁÄÁÄÁÁÁÄÁÄÁÁÁ¾ÄÁÄÁÄÁÄÄÁÄÁÄÁÁÄÁÁÄÁÄÁÄÁÄÄÁÄÄÄÄÄÄÄÁÄÁÄÄÁÄÁÄÁÄÁÄNSNNSNNSNNSNNNNNNNNNSNSNNNNNNNNNNNNNNNNNNSNNNNSNNNNNNNLNNNNNNNNLNNNNLNNNSNNNNNNNNNNNLLNNNNNSNLLNNNLNNNLLNNNNNNLLLNNNNLNLNNNNLLNLNLLNLNLNLLNLLLLNLNLLNLNLLLLLLLLLLLLL,LLLNN,LLNLLLNLLL,LLLLNLLLLL.LLLLLLLLLLLLNLLLLL.,,LLLLLLL,,LLL,LLL,,LLLL.L.,,LLLL,L,LL.L,,,LL,.,L,,,,,L,,,,L,L,.L,L,,,L,,,,,,,,,,,.,,L,,,,,.,.,,.,,,,,,.,,,,,,,,,,,,,,,,.,,,,.,,,,.,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,bÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÁÁÄÁÄÁÄÄÁÄÄÄÁÄÁÄÄÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÄÁÄÄÁÁÄÁÄÁľÄÁÄÁÁÄÁÄÁÄÁÁÁÁÄÁÁÄÁÁÁÁÁÄÁÁÄÁÁÁÄÁÁÄÁÁÄÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁhhÁÁhhÁhÁÁÁhÁhÁhhÁhhÁhÁÁhÁhhÁÁhÁÁhÁhhÁÁÁÁhhÁÁhÁÁÁÁÁhhÁÁhÁÁhhhÁÁÁhhÁhÁhÁhhhÁhhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhhÁhhÁhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁhhÁÁhhÁhÁÁÁhÁhÁhhÁhhÁhÁÁhÁhhÁÁhÁÁhÁhhÁÁÁÁhhÁÁhÁhÁÁÁhhÁÁhÁÁhhhÁÁÁhhÁhÁhÁhhhÁhhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhhÁhhÁhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁhhÁÁhhÁhÁÁÁhÁhÁhhÁhhÁhÁÁhÁhhÁÁhÁÁhÁhhÁÁÁÁhhÁÁhÁÁÁÁÁhhÁÁhÁÁhhhÁÁÁhhÁhÁhÁhhhÁhhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhhÁhhÁhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁhhÁÁhhÁhÁÁÁhÁhÁhhÁhhÁhÁÁÆÓèüüüüúúúúúúúúûüúýÿó÷÷óóúóó÷ó÷ç’q!!!!! !! !! !!!!!! !!!!!! !!     !  l’ÙúýüüýüýüýýýÿþüüüüýüüýûýúýúüüõÙÊÁÄÁÁÁÁÁÄÁÄÁÁÁÁÄÁÁÄÁÄÁÄÁÄÁÁÄÁÄÁÁÄÁÄÄÄÁÄÄÁÄÁÄÁÄÁÁÁÁÄÁÄÄÁÄÄÁÄÄÄÁÄÄÁNNNNNNNNNSNNNNNNSSNNˆNNNNNSNNNNNNNNNNSNSNNNNNSNNSNNNNNNNNNNNNNNLNNLNNNNNNNNNNNNLNNNNNLLNNNNNNLLLNLLNNNNNLLNLNNNNNLNLNLLLNNNNNLLNNLLLLLLLLLNLLLLLLLLLLNLLLLLNLL,LLNLLLNLLNLLLLLLNLLLLLNLLLLLLL.L,LLLLL,LLNLLLLLL,LLL,L,,LLLLLLL,,L,,,LLLL,,,,LLLLL,LL,,,,,L.LL,,L,,,,,.,L,L,.,,,,,.,,L,,L,,,...,,,L,,,,.,.,,,L,.,,,,,,,,,,,,,,,,,,,,,,,,L,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ThÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÄÁÄÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÁÄÁÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁ¾ÄÁÁÁÄÁÁÄÁÁÁÁÁÁÁÄÁÁÁÁÁÁ¾ÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁhhhhhÁÁhÁhÁÁhÁÁÁhÁÁhhÁhhhÁhÁÁÁÁÁhÁÁhÁÁhÁhhhÁÁhÁhÁÁÁÁÁÁhÁÁhhhÁÁhÁhÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhhÁhÁhÁÁhÁÁÁÁÁhhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁhhhhhÁÁhÁhÁÁhÁÁÁhÁÁhhÁhhhÁhÁÁÁÁÁhÁÁhÁÁhÁhhhÁÁhÁhÁÁÁÁÁÁhÁÁhhhÁÁhÁhÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhhÁhÁhÁÁhÁÁÁÁÁhhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁhhhhhÁÁhÁhÁÁhÁÁÁhÁÁhhÁhhhÁhÁÁÁÁÁhÁÁhÁÁhÁhhhÁÁhÁhÁÁÁÁÁÁhÁÁhhhÁÁhÁhÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhhÁhÁhÁÁhÁÁÁÁÁhhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁÆÓèúúúûüüüüýúüúüúúúÿóóóú÷óóúóúóéšs= ! !!    !!! ! !!!!  ! !!!! !!!! !!!!!!!!   !! !   !!  !   !!        !!    !!!!  ! !  q¢äýüüýüýüýüüúÿþýúüüüûüüüúüûüýúòÚÆÁÁÁÁÁÄÁÁÁÄÁÄÁÁÄÁÄÁÁÁÄÁÄÁÄÁÁÄÁÄÄÁÄÁÁÄÄÁÄÁÄÄÄÁÄÁÄÄÄÁÄÁÄÁÄÄÁÄÁÄÄÁÄÁNNSNNNNNNNNNNNNNNNNSNNNSNNNNNSNNNNNNNNNNNSSNNNNNSNNNNSNNNLNNNNLNNNNNNNLNNSNNLNNNLLNNNLLNNNNNNNNLLNLLNNNLLNNLLNNNNLNNNLLLLNLNNLNLLLLLLNLLLNLLLLNLLLNNNLLNLLLLNLLLL,LLLLLNLLNLLLNLLNLLNLLLLLLLLL,LL..L.LL,LLNL,LLL,,NLL,LLLLLLLLL,,L,LLLL,,LL,L..LL,L,,L,L,,L,LLL,L,.,.,.,,.,,.,L.,,L,L,.,,,,,,,,,,,,,,.,,,.,,,,,.,L,,L,.,,,,,.,,,,,,,.,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,0cÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÁÄÁÄÁÄÄÁhcccccccccXcXXXbXbXXXXXXXWXXWTXWXWXWXXXXXXXXWXXXXXXWXWXWXXWXWXWXXWXXWWXWXXWXWXWXXXXXXXWXWXXXXXXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhÁÁhÁÁhÁÁÁÁhhÁhÁÁÁhhÁÁhÁÁhÁÁhhhÁÁhÁhhÁÁÁhÁhÁÁhÁhÁhÁhÁhhÁÁhhhÁÁÁhhÁhÁhÁÁÁÁÁhÁÁÁhÁhhhÁÁÁhhhÁhÁÁÁÁÁÁhÁÁhhÁÁhÁhhÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁÁhhÁhÁÁÁhhÁÁhÁÁhÁÁhhhÁÁhÁhhÁÁÁhÁhÁÁhÁhÁhÁhÁhhÁÁhhhÁÁÁhhÁhÁhÁÁÁÁÁhÁÁÁhÁhhhÁÁÁhhhÁhÁÁÁÁÁÁhÁÁhhÁÁhÁhhÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁÁhhÁhÁÁÁhhÁÁhÁÁhÁÁhhhÁÁhÁhhÁÁÁhÁhÁÁhÁhÁhÁhÁhhÁÁhhhÁÁÁhhÁhÁhÁÁÁÁÁhÁÁÁhÁhhhÁÁÁhhhÁhÁÁÁÁÁÁhÁÁhhÁÁhÁhhÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁÁhhÁhÁÁÁhhÁÁhÁÁhÁÁhhhÁÁ–׿üýüüúúúúúúûüúúýýÿ÷÷óóóúóó÷óóò¬}? !!!!!! !!!!!  !!      !}ªèüýüüýüýüýüýÿýüüýûüüüüüýûüüúýëÙÆÁÄÁÄÁÁÁÄÁÁÄÁÄÁÁÄÁÄÁÄÁÁÁÄÁÄÁÄÁÁÁÄÁÄÄÁÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÄÄÁÄÁÄÁÄÁÄÁÄÄNNSNˆNNNNNNSSNSSNNNNˆNNNNNNNSNNNNNLSNNNNNNNNNNNNNNNNNNNNLNNNNNNLNNNNNSNNNNNNLNLNNLNLNNLNNNNNNNLLNNNLLNNNLLNLNNLNNLLNLLNNLLNLNNLLNLNNNLLLNLLNLLLNLLLLNLLLLLLLNLNLLLLNLLLLNLLLLLNLLLLLLLLL,,LLLLL,LLL,LLLLLLLL,L,LL,L,LL,LLLL.LL,,LLL,,LL.,L,L,,LL,,,L,,,L.,.LL,,.,,L,L,,,.,,L,,,L,,,L,.,..,,L,.,,,,,,,,,,.,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,.,,,,,.,,,,,,,,,,,,,,,,,,,,WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄccXhchchccccccccccXccXcXcXXXcXXcXXcXXXXcXXXXcXXXcXXXXcXXcXcXXXXcXXcXXXcXcXXcXXcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXThÁÁhÁÁhÁÁÁÁhhÁhhÁhhÁÁhÁÁhÁÁhÁÁÁÁhhÁÁÁhhhhÁhÁÁhÁhhÁÁÁÁhhÁhÁÁhhÁhÁÁÁÁÁÁhhhhÁÁhÁhÁÁÁhÁhhÁÁhÁÁÁhhÁÁhhÁÁhÁhhhÁhÁÁhÁhhhhÁhÁhÁÁhhÁÁÁÁÁÁhÁÁhÁhÁhÁÁÁhhÁhhÁhhÁÁhÁÁhÁÁhÁÁÁÁhhÁÁÁhhhhÁhÁÁhÁhhÁÁÁÁhhÁhÁÁhhÁhÁÁÁÁÁÁhhhhÁÁhÁhÁÁÁhÁhhÁÁhÁÁÁhhÁÁhhÁÁhÁhhhÁhÁÁhÁhhhhÁhÁhÁÁhhÁÁÁÁÁÁhÁÁhÁhÁhÁÁÁhhÁhhÁhhÁÁhÁÁhÁÁhÁÁÁÁhhÁÁÁhhhhÁhÁÁhÁhhÁÁÁÁhhÁhÁÁhhÁhÁÁÁÁÁÁhhhhÁÁhÁhÁÁÁhÁhhÁÁhÁÁÁhhÁÁhhÁÁhÁhhhÁhÁÁhÁhhhhÁhÁhÁÁhhÁÁÁÁÁÁhÁÁhÁhÁhÁÁÁhhÁhhÁhhÁÁhÁÁhÁÁhÁÁÁÁ•ÓÚúúúúüüýúüúüûúúú÷ÿüúóú÷óóúóúóòÓsl!!      !!! !!!!!!!!!!!!! !!  !!!!  !!!    !     !!       !        !!      !=ެõüüüýúýüýüüüÿýýúüüüüüûúüüüûüüèÙÆÁÁÁÁÄÁÁÄÁľÄÁÄÁÁľÄÁÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÄÁÄÁÁÁÄÁÄÁÄÁÄÁÄÁÁNNNˆNSNNSNNNNNNNNNNSNSNNNSNNNNNNNLNNNNNSNNNSNNNLSNNNNNNNNLLNNNNNNNNNNNNNNNNNNLNNLNNNNNNLLNNNNNNNNNNNLNNLLLNLNLLLNLLLLLNNLNLNLLLLLLNLNLLLN,LLLLNLNLLLNNLLLLLLLNLL.L,LLLLLLLLLNLL,LLL,LLLLL,,NLLLL,LLLLLLLLLLLL,LL,LLLL.,,,LLL..LLLL.,,,L,,,L,,L,,L,,L,.LL,L,,,,.,,,.LL,,L,,,,,.,,,,,,.,,,,,,,,,,,,,,.,,.,,,.,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,cÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÁhXÁhhhhchchcchcccccXcXcXXXXcXXXcXXcXXXXcXXcXXXXcXXXcXXXXcXXcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXTXXXTXXXcXÁhÁÁÁÁhhÁhÁhÁÁhÁÁhhÁÁhhÁhÁÁhÁÁhhhÁÁÁhÁhhÁhÁhhÁhhhÁÁhÁhhÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁÁÁhÁÁhÁÁÁÁÁhÁhÁhhhÁÁÁÁhÁhÁÁÁÁÁÁÁÁhhÁhÁÁhhÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁhÁhhÁÁÁhÁÁhhÁÁhhÁhÁÁhÁÁhhhÁÁÁhÁhhÁhÁhhÁhhhÁÁhÁhhÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁÁÁhÁÁhÁÁÁÁÁhÁhÁhhhÁÁÁÁhÁhÁÁÁÁÁÁÁÁhhÁhÁÁhhÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁhÁhhÁÁÁhÁÁhhÁÁhhÁhÁÁhÁÁhhhÁÁÁhÁhhÁhÁhhÁhhhÁÁhÁhhÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁÁÁhÁÁhÁÁÁÁÁhÁhÁhhhÁÁÁÁhÁhÁÁÁÁÁÁÁÁhhÁhÁÁhhÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁhÁhhÁÁÁhÁÁhhÁÁhhÁhÁÁhÁÁhh××üüüüúûúúúúúüúüúýýüóóóó÷úóóó÷óÙŸp!! !  !!!!!  ! !    ! ! !=�¬úúýúýüüýüýüýÿüüüýúýúýüüýúýüüúæÓÆÄÁÁÁÁÁÁÁÄÁÄÁÁÁÁÄÁÄÁÁÄÁÁÄÁÁÄÁÄÄÄÄÁÄÁÄÁÄÄÁÁÄÁÄÄÁÁÄÁÄÄÁÄÄÄÁÄÁÄÄÄÁÄÄNNNNNNNNNNNNSNNNNNNNNNNNSNNNSNNLNNLNNSNNNNNNNNNNNNNNNNNNLLNNNNNNLNNNNNLNNNLLNNNNNLNNNLNNLLNLNNNLLNNNLNLLNLLLLNNLNLLNLL,NLLNLNLLL,LLLLLLLLLLLLLLLLLLLLLLLNLLLNLL.LL,LLLNLLLLLLLLLLLLN,LLL,,LL.LLLLLLLLL,L,LL,L,LLL,LLL,LL,,L.LLL,,LLL.,,,.,,.,LL,L.,,L,,,,,LL,.,,,,,,,,,,,,.,,,,,.,,.,,,,.,,,L,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LcÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÁÁcXccccccccccccccccXXXcXXXXbXXXbXXbXbXbXbXbXXXbXXXXbXXXXXXXXXXXXXXXXXXXbXbXXXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWXTXXXXTXXXTXXXXXXXTXXXTXXXXXXWXÁÁhhhÁÁÁhhÁÁhÁÁhhÁhhÁhhÁhhhhhÁhÁÁhÁhhÁÁhhÁÁÁÁÁhhhhhhÁÁhÁhÁhÁhÁhhÁÁhÁÁhÁhhhhhÁhhÁhhÁhhhhhhÁhÁhÁÁÁhhÁÁhÁhhhÁÁÁhhÁÁÁhhhÁhÁhÁhÁÁhhÁhÁÁhhhÁÁhhhÁhhÁÁhhÁhhÁhhÁhhhhhÁhÁÁhÁhhÁÁhhÁÁÁÁÁhhhhhhÁÁhÁhÁhÁhÁhhÁÁhÁÁhÁhhhhhÁhhÁhhÁhhhhhhÁhÁhÁÁÁhhÁÁhÁhhhÁÁÁhhÁhÁhhhÁhÁhÁhÁÁhhÁhÁÁhhhÁÁhhhÁhhÁÁhhÁhhÁhhÁhhhhhÁhÁÁhÁhhÁÁhhÁÁÁÁÁhhhhhhÁÁhÁhÁhÁhÁhhÁÁhÁÁhÁhhhhhÁhhÁhhÁhhhhhhÁhÁhÁÁÁhhÁÁhÁhhhÁÁÁhhÁhÁhhhÁhÁhÁhÁÁhhÁhÁÁhhhÁÁhhhÁhhÁÁhhÁhhÁhhÁhhhhhÁhÁÓÓ÷úúúüúýúýúüúûúúüþüóúóúóóúóúó÷æ q!!  !!  !!!!!   !! !!!   !!!!  !! !!!!  !!        !!  ! !      !!!!!    ! ?Ÿ¬üýüýüýýüýüüþþýúýúýúýüüûúýüúýúàÓÃÁÁÄÁÁÄÁÁÁÁÁÄÁÁÁ¾ÄÁÁÄÁÄÁÄÁÄÁÄÁÁÁÁÄÄÁÄÄÁÄÄÄÁÄÁÁÄÄÄÁÄÁÄÁÁÄÁÄÄÁÁÄÁÄÁNNNNNSNNNNNNNNNSNNNNNNSNNNNNNNNNNNNLNNNNNNLNNNNNNNNNNNNNNLNNNLNNNNNNNNLLNNNLNNLNNNLLLNLNNLLLNLNLLLNNNLLLLLLLLNLLNLLNLLNLNNLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLL.LL,LLLLLLLLLLLLLLLLLLLLL,,LL,LLLL.LLL,,,LL,LL,LLL,,,,LLL,,,,L.,,,LLL,.,.,.,,,,,L,,L,,,.,L,,,,.,,,,,.,,,,,,,,,.,,,,,,,L,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,cÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÁÄÄÁXXXXXWXXTXXWXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXWXXXXTXWXTXWXTXXTXWXTXTXXXXXTXXXXTXXXTXWXTXXXTXXXTXUXXTÁÁÁhÁÁÁhÁÁhÁhhÁÁhhhÁÁhÁÁÁhhÁhÁÁhÁÁhÁhhÁÁhÁÁÁÁÁÁhÁhhÁhÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁhhhÁhÁÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁhÁhÁhhÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁhhÁÁhhhÁÁhÁÁhÁhÁhhÁhÁhhhÁhÁhÁhÁÁhÁÁhhhhhÁhÁhhÁhhÁhhhÁÁÁÁhÁÁhhÁhhhhÁhhÁhhhÁhhhhhhhÁÁÁhÁÁhhÁÁhhÁhÁhÁÁÁhhhhhhhÁhhÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁhhÁÁhhhÁÁhÁÁhÁhÁhhÁhÁhhhÁhÁhÁhÁÁhÁÁhhhhhÁhÁhhÁhhÁhhhÁÁÁÁhÁÁhhÁhhhhÁhhÁhhhÁhhhhhhhÁÁÁhÁÁhhÁÁhhÁhÁhÁÁÁhhhhhhhÁhhÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁhhÁÁhhhÁÁhÁÁhÁhÁhhÁhÇ×õüýüúúúúúúûúüúúúüÿóó÷óóúóóó÷óè’q9  !!!! ! ! !!    !o’Úüüüüýüüýúýüþÿüüýüýüúýúýüüûýú÷àʾÁÁÁÄÁľÄÁÄÁÄÄÁÄÁÁÄÁľÄÁÄÁÄÁÄÁÄÄÁÁÄÁÁÄÁÁÄÁÄÄÄÄÁÄÄÁÄÁÄÄÁÄÁÄÄÄÁÄÁÄNNNNNNNLNNNNNNNNNNLNNNNNNNNNNNNNLNNLNNNNNNNNNNNLNNLLNNNNNLNNNLLNNNNNLNNLLNNNLNNLNNLLNNLLNNLLLNNLLLNLNLLNNNLLLLLLNLLLNLNNLLNLLLLLLL,LLLLL.LLLLLLLLL,LLLLLLLLL,LLL,LL,LLLLLL,,LLL,LL,,.LLLL,L.L,,LL.LL,L,L,,LL,,L,.L,L,L,,L.,,,,L,,,L,L,,,L,,,,,L,L,,,,,L.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,McÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄXhhÁhÁhhhhhhhhÁhÁhhhÁhÁhÁÁhÁhÁhhhÁhhhhÁhÁhhÁhhhhhhÁÁhÁhhhhhÁhÁhhhÁhÁhhÁhhhÁhhÁÁhhÁh„Áh„hhhhhhhhhÁhhÁhÁhhhhhhhhÁhhÁhhÁh„hÁÁhÁhÁhhhÁhhhhÁhÁhhÁhhhhhhÁÁhÁhhhhhÁhÁhhÁhÁhÁhÁhhÁhXhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchÁhhÁhÁÁÁhÁhÁhÁÁhhÁhÁhÁhhÁÁÁhhÁhÁhÁhÁhÁÁÁhhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁhhhÁhhhhhÁhÁhÁÁhÁhÁhÁÁÁhÁÁhÁhhÁhhhÁhhÁhhÁÁhhÁhhÁhhÁÁÁÁhhÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁhÁÁÁhÁhÁhÁÁhhÁhÁhÁhhÁÁÁhhÁhÁhÁhÁhÁÁÁhhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁhhhÁhhhhhÁhÁhÁÁhÁhÁhÁÁÁhÁÁhÁhhÁhhhÁhhÁhhÁÁhhÁhhÁhhÁÁÁÁhhÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁhÁÁÁhÁhÁhÁÁhhÁhÁhÁhhÁÁÁhhÁhÁhÁhÁhÁÁÁ�ÆÓèúúûúýúýúüúúúúúúüÿóúóúóóúóúóóéšs> !!  !!!! !!! !!!!!!!!   !!!!!!   !!!    !!  !   !!           !  ! =q’æüüüüüúýüüýüþýýúüúüûýúýúýúüüüõÙÌÂÁÄÁÁÁÁÁÄÁÄÁÁÁÁÄÁÄÁÁÄÁÁ¾ÄÁÄÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÄÄÄÁÄÁÄÁÄÁÁÄÁÄÁLNNLNNNNNNLNNNNLNNNNNNLNNLSNNNNNNLNNLLNNLNNNLNNNLNNLLNLNNLLNLNNLNNNNNLLNLLNNLLNLLNLLNNNLNLLLNLLLLNLNLLLLLLLLLLLNLLLLNLNLLLLLLLLL,LL,NLL,LLL,NLLLLNLLLLLLL,LLLL,L,,LL,,LL.,LN,LLL,LLL,,,LL,,L,L,,LLLLL,,L,,L,,,,.,.,,LLL,L,,L,L,,,L,,,,,,.L,L,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MchhÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁXhÁhÁhhÁhhhhÁhhÁhÁhÁhÁÁÁhÁhÁhÁhÁÁhÁhÁhhÁhhÁhÁhhÁhÁhhhhÁhhÁhhhhhÁhÁÁhÁhhÁhÁhÁhhhÁhhÁÁhÁhhhÁhÁhhÁhhhÁhÁhhÁhhhhÁhhÁhÁhÁhÁÁÁhÁhÁhÁhÁÁhÁhÁhhÁhhÁhÁhhÁhÁhhÁhhÁhÁhhhhhÁhÁhÁhÁhhÁhÁXWWXWXWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMM0M0MM-L-MTMM-M000M00000M-0M0M00,,,0,0XhÁÁhhÁhÁÁÁÁhÁÁhhÁhhÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁhÁÁhÁÁÁÁhÁhhhhhhÁhhhÁÁÁÁhhÁÁhhhhhhÁÁÁÁhÁÁhhÁhÁhÁÁhhÁÁhÁÁhhÁÁÁÁhÁhÁÁhhÁhÁhÁhhÁhhhhhÁÁhÁhÁÁÁhÁÁhhÁhÁÁÁÁhÁÁhhÁhhÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁhÁÁhÁÁÁÁhÁhhhhhhÁhhhÁÁÁÁhhÁÁhhhhhhÁÁÁÁhÁÁhhÁhÁhÁÁhhÁÁhÁÁhhÁÁÁÁhÁhÁÁhhÁhÁhÁhhÁhhhhhÁÁhÁhÁÁÁhÁÁhhÁhÁÁÁÁhÁÁhhÁhhÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁhÁÁ¹Æ×èüüúüúúúúûúúüúûüüÿóó÷óóúóó÷óúòÕŽj  !!!!   ! !     !!   =ŽªòüýúýüýüýýüýÿþüüýýûüüüúýúýûüüõÙÆÂÁÁÄÁÄÁÁÁÁÁÁÁÄÄÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÁÄÁÄÁÄÄÁÄÁÄNLNNNNNNNNSNNNNNNNNLNNNNNNNNLNNNNNNLNLLNNLNNNLNNNNNLNLLNNLLNLLNNLLNNNNLLNLLNLLNNLLLNNNLNLNLLLLLLLNLLLLLLNLNLNLLNLLLLLLLNLLLLLLLL,LLLL.LLLLLLLLLLL,L.L.L.LLLLLLLLNLLL,,.L,L,L,,LLLLL,L,,LL.,,.,L,,,,.L,,,L,,LL,L,,,,L,L,L,,,,.,,,,LL,,.,,.,,,,,.,L,,,.,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MM\XXWbb\XW\WWWWXWWWXXWWWXÁhhhÁhhÁhhÁhÁhÁÁhÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhÁhhÁhhÁhÁhhÁhhÁhÁhhhhÁhÁhÁhÁhÁhÁÁhÁhhhhÁhhhhÁhhhÁhhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhhÁhÁhhÁhÁhhhhÁhÁhhÁhhÁX,,chÁhÁÁhÁhÁÁhhÁhÁhhÁhhÁÁhhÁÁhhhÁÁÁÁhÁhÁhÁhhÁÁÁhÁÁhhhhÁhhhhÁhÁhÁhÁÁhhhhÁÁhÁhÁhÁÁhÁÁhhÁhhhÁhÁhhÁhhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhhÁhÁÁhhÁhÁÁhÁÁhÁhÁhÁhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhcccccccccccccccccccccccccccccccccccccccccccccccccccccccccc„Óàúúüúûúüúüúúúüúúúþüúóúóóúóúóóóà�o     !  !! !! !!!!!!! !           !! ! !!     !!!!!  !  !! =�ÓûúüýüýúýüüúüÿþúýúüüúýûýüüüüýúèׯÁÄÁÁÁÁÁÄÁÁÄÁÁ¾ÁÁÄÁÁÁÄÁÁÁÄÁÄÁÄÁÄÁÄÁÄÁÁÄÄÁÄÄÄÁÄÁÄÁÄÁÄÄÁÄÄÄÄÁÄÁÁÄÁÁÄNNNLLLNLNNNNNNLNNNNNLNNNNNNNLNNNNNNNLLNNLLNLNLLNNNNNNNLLLNNNNLLNLLLNNNLNLLLLNLNLNLLLNLNLLLLLLNLLLLLLLLLLLNLLNLLLLLLLNLLNLLL.LLLLLL,L,,L,LLLN,LL,LL,L,,LL.LLL,LLL,LLL,.LL,L,LL,LLL.,LLL,,,,L,L,,.,,,.LL,,L,,,,,.L,.,,L,L,,.,,,,L,,,,,,,,,,,.,L,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,XhhÁhÁhhhÁhÁhÁÁhÁÁhÁhhÁhÁÁÁhhhhÁhhÁhhÁhÁhhÁhhhhÁhÁÁhÁhÁhhhhhhhhhhÁhÁhÁhhÁhÁÁhÁhÁhhÁhÁhhhhÁhhhhhÁhhhÁhÁhhhÁhÁhhÁÁhÁhÁhÁhÁhÁÁhhhhÁhhÁhhÁhÁhhÁhhhhÁhÁÁhÁhhÁhhhhÁhhhÁhhÁhÁhhhhÁX,,,,,,,,"dÁÁÁhhÁÁÁhÁhÁhÁhÁÁhÁhhÁhhÁhÁÁhhÁÁhhhhhÁhhÁhhÁhhÁhhÁhhÁÁhÁhÁhhÁhhÁÁhÁÁÁÁÁhhÁÁhhÁhÁÁÁÁhÁÁhhhhÁhÁÁhhÁÁhhhhÁhÁhÁhÁhÁhÁhÁhÁhÁhhhÁhhhÁhÁÁÁhhhcXWXWXWXWWXWXWWWWWXWTWWWWMMMMMMMMMMMMTMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0MM0M-M0T0LMT"L"--0M-000LMM00M-M00M0F0M0000M00F,MÓÚúúûüúüúúúúúûúúúüþüóóóúóó÷óóúóè�q!  !!!  !! j�ÖüüýüüüüüýüýþþýüüüûüüúüúýúýúúüèÓÂhhhh¾hhhhhhh¹•hhhhh¹•hh¹•hÁhhhhhhhhh¾hhhhhhhÁhÁhÁhhÁhhhhhhhÁ¾hÁ¾hNNNNNNNLNNNNNLNNLNNNLLNNNNNNLLNNNNNNLLNLNNNLLNLLNNNLNNNLLLNLNLLLNLNNLNNLNLLLLLLNLNLLLNLNLLNLLLLLLNLLLLLLLLLLLNLLLLLLLLLLLNLLLLLLLLLLLL,LLLL,L,LL,LLL,LLLLLLL,,LLL.LL,,,L,LL,,,,,.LL,,LL,.,L,L.,,LL,.LL.,,.,,L,,,L,,,,L,.,,,L,,,,,L,,,,,,,,,,.,,,,,,,,,,.,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhÁhhÁÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhÁhhÁhÁhÁhÁhÁhhÁhhÁhhÁhhÁhhÁhhÁhÁhÁhhÁhhÁhÁhÁhhÁhhÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhhhÁhhÁÁhÁhÁhhÁhÁÁhÁhÁhhÁhÁhhÁhÁhÁhÁhÁhÁhÁhhhhÁhhÁhhÁhhÁhhÁhÁhhÁhhÁhhÁhÁhhÁhX,,,,,,,WhhÁhhÁÁhÁhÁÁhÁhÁÁhÁhÁhÁhÁhÁhhÁhÁÁhÁhÁhhÁhhÁhhÁhhhÁhÁhhÁÁhhÁhhhÁhhÁhÁhhÁhÁhÁÁÁÁhÁhhÁÁhÁÁhhÁÁhÁhhÁhÁhÁhhhhhhhhhhhÁhÁhÁhÁhhhhÁhhÁÁhÁhÁhhÁÁdÊÓúüúúüûúûúüúúüúúúüÿú÷÷óóúóú÷óóéšs= !  !!!! !!!! !! !!! !!!!! !         !!   !!! !  !!! =qšæúüüüüýúýúýüþÿüüûüüýûýûýúýúüýúàÓeMRM\MRMMRMM\RMMRMR\RMRUMRMMMMMTMMRM\MMRMTRMMMMMMRMRMRMMMR\WMMRMMMNNNNNNLLNNNNLNLNNNLNNNNNNNNNNLNNNLNNNLNNLNNLNNLNNNLLNLNLNLNNNNLLNNLNLNLNLLLLLLNLNLLLLNNLLLLLNLLLNLLLLLLL,L,LLLLL,LLLLLLLLLLLLLLNLL,LLL,,LLLLL,,LLL,LLL,LLLL.,,L.L,L.,,.L,LL,LL,L,L,,,.,,.,LLL,,,.L,.L.LL,,.,,,.,.,.,,,,.,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhhÁhhÁhhhhhhÁhhÁhhÁhhÁhhhhhhhhhÁhÁhÁhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhÁhhÁhhhhhÁhÁhhhhhhhhÁhhhhhÁhÁhhhÁhhÁhhÁhhhÁhhhhhÁhhhhÁhÁhhÁhhhhhÁhÁhÁhhhhhh„¹•hhÁhhhÁhhÁhhhhh„¹•hÁhhÁhhhhÁX,,,,,,,,,,,,,,ghhhhÁÁhhhÁhÁÁhÁhÁhhÁÁhÁhÁhhÁhÁhhhÁhÁhÁhhÁÁhÁhhÁhÁhÁhhhÁÁÁÁhÁÁhÁÁhhÁhÁhÁhhÁhhÁhÁhÁÁhÁÁÁhhhÁÁhhhÁÁÁhhÁhhÁÁhÁhhhhÁÁhhÁhÁhÁhÁhhÁhhÁhhhhhÁÁhhW,–Óõúüúúúüúüúúúúúúúýÿóóóúóóóóó÷÷òÙ�m!  ! !!    !   ! =�ªõüýúýúüüüýüýþþúýüüúüüüüüúýüúú÷àÆPLLLLLLLL,LLLLLLL,LLLNLLLLLLLLL,LLL,LL,LLLLNNLL,-LLELNLNNNNNNLNNLNNNNNNNLNLLNNNNLNNNNNNNNNLLNNNLNLNNLNNNNLLNLLLLNNLNLLLNLNLNNNLLLNNLNLNLL,NLLLNLLLLLLNNLL.L.LLNLL,LL,LLLLLLLL,,L.LLLLLLLLLLL,,LL,LLLLL,L,.L,LL.L,,LLLLL.LL,,,LL,,,,L,,LL,.,L,,,,LLL,,,,,L,,L,.,,,.,.,,,,,,L,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XÁhÁhhhhhhhhhÁhhÁhhÁhhÁÁhÁ•¹„hhhÁhÁhÁhh¹„hÁÁhÁhÁhhhhhhÁhhÁhhhhhÁhÁhhÁ„hÁhhÁhÁhhhhÁhÁhhùhÁhhhÁhÁhhÁhhhhhhhhhÁhhÁhhhÁhÁhÁhhhhhhhÁhÁhÁhhhhùÁ•hhÁhhÁhhhhÁ•¹h•¹¾�ÁhÁhhùhÁhÁhX,,,,,,,,,,,,,,MhhhhÁhÁhÁhhÁhÁÁhhhÁhÁhhhÁhhhÁhhÁhhhhÁÁhÁÁhhÁhÁhhhhÁhÁÁhÁÁhhÁÁÁÁÁhÁhhÁÁhhÁhÁhhÁhÁhhÁhÁhhhÁÁhÁhhhhhÁhhhÁÁÁÁÁhÁhÁÁÁhhÁhhhÁhhÁhhÁhÁÁhhÁhÁhhÁhh,,,aÓèúúýúúúúúûúüûúúúúþü÷óóú÷úóúóúóà p! !  !! !!! !!         !  ! !!       ?�¬üûüýüýüýüüúýÿýýúüûýúýúýúüüûýüõÚ•P,,LLDMLL,LLLLLLLLLLNLLL,LNLLLLLLLLLLLLLL,LLLLLLLLLLLLLL.LNNNNNNNLNNLLNNNNNNNNNNNNNLNLLLNNNNLLLLLLLNNNLNNNLNNLLNNLNNLNLNLLLLLNLLNLNLLLLNLLL,LLLLLNNLLLL,LLLLNLLLLLLLLLLLLL,LLLLLLL,LLL,L,L.,LLLL,,LL,,,LL.LLLLL.L,L,L,.,L..,,,,,,,,LLL,LLL,LL,,.,.L,.,L,,,,,,,,,,,L,,,,,,.,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhhhÁh„¹•¹•hhhhhhhhhÁhhÁhhh•¾hÁhÁhÁhÁhhh�Á¹•hhhhÁh„¹•¹•hÁhhhhÁhhhhÁhhÁ¹•hhhhhhhÁhhÁhhhhhÁ•hÁh„¹•Áh¹•ÁhhhÁhhhhhhhhhhÁhhÁhhhhhÁhh„ÁhÁhhhhh�¹•�¹•hhÁhhhÁhhhh•�¹Ã„¹•hhÁhÁ•�Á¹•W,,,,,,,,,,,,,,,,,,chhhÁhÁhÁhÁÁhhhhhÁhhÁhhhhÁhhhhhÁhÁhhhÁÁÁÁhÁhhhÁhÁhÁhÁhÁÁhÁhhhhÁhÁÁÁÁhÁÁÁÁhhhÁÁhÁhÁÁhÁhhÁhÁhÁhhÁÁhÁhhhÁÁhhÁhÁhÁhÁhÁÁhhÁÁÁhhÁÁhÁhÁhhhhÁhÁhÁhhM,,,,,,MÓàúûúúúûüúúüúúúúûúýüúóúóóó÷óó÷óèšs=  !!!!!!     !     p’ÙüüüüúüüüüýüýþýúýûüüüúýúýúýüúúèÓeL,L,LL,LLL,LLLLL,LLLLLL,,DLLLLLLL,LLL,LLLLLLLLLN,LLLLLL.LLNNNLNLNNLLLNLNNNNLNNLNLLNNNNNNLNLLLLLLLLNNLLLNNLLLLLNLLNLLNLLLLLLLLL,NLN,LLNLNLNLL,LLLLLLLLLLL,LL.LLLLL,LL,,.LL,LLLLLLL,.LLL,,,LLLL,L,LL,L,L,LL.L,LL,L,,,.,,.L.,.,,.,,,,,L,,,LL,,,,.,,,.,,,,,,,,,L,,,L,,,,,L,,,,,.,,.,,,,,,,,,,,,L,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XÁhhÁh¾Á�•hhhÁhhhÁhhhhhÁhhhhhhhÁhhhhÁh•¹Á¾•hhhhÁ•¹�Á••hÁh•¹„hhhhhh¹„¾••¹•¹„Áhhhhhhh•¹Á�hh•¹h¾•hÁ�•hÁÁhÁhhhÁhhhÁÁhhhhhÁhh•¹h•¹�Á¹hhhÁ•¹•¹•Á�h•¹Á„¾hÁhhÁhÁ•¹•h¾�hÁhÁhhhÁ¹•hhX,,,,,,,,,chÁhÁhhÁhÁÁÁÁhhhÁhÁhÁÁhhÁÁÁhhhhÁhhhÁÁÁÁÁÁÁÁÁÁhhhhÁÁÁhhhhÁhÁÁÁhhÁÁhÁÁÁhhÁhhhhhÁÁÁÁÁÁÁhÁÁÁhhÁhhÁÁhÁÁhÁÁhhhÁhhhÁhhhÁhhÁÁhÁhÁÁhhÁhÁhÁhÁhÁhhÁhÁhX,,ÓØúúúüúúúúúúúúúúúüüÿó÷óóúóúóúó÷òÕŽj !!     !!  !    !         !!      !  !  ! 7ŽšõüüúýüûüüüüüþÿüüüüüüûýúýúýúúýúàÓ\,,,,LLLL,,L,,LLLL.LLL,,LLLLL,,LLL,LLLLLLLLLLLLLLLLLLL,LLLL.LNNNNNNNLLNNNNLNNNLLLLLLLNLNLNLLNLLLLLLNLLLLLLLLNLLLLLNLLLLLLNLLLLNLLLLLLNLLLNLLLLLLLLLLLLLLLLL,LLL,LLLLLLL,LL,,LLL,LL.LLLL,LL,L,LL.L.LL,,LL,L,,L.,,,,,,.,.,,L,.,,,.,,,,,,L,,,,,L,,,,,L,.,,,,.,,,,,,,,,,,.,,,,,,,.,,,,,,,,,,,,LD,L,D,DL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhhÁÁh„¹•¹•hhhhhhhhhÁhhhh¹•ÁhhhhhÁhhhhh•„Á¹•hh¹•h•¹•hhhhhh�¾¹•hhÁ�¹•hh¹•�•�¾¹•¹•hh¹•ÁhÁ¹•hh•hhhh¹Á¹•Áhhhhhhhhhhhhhhhhhhhhh•Áh•¹••Áhh¹•�Á•h¹•¹•�¹•¹•hhhhhhh�¹•h¹•ÁhhÁhh•h•hX,,,,,,,,,,,,XhÁÁhhhhhhhhÁhÁhÁhÁhhhÁÁÁhÁhÁÁhÁhhÁÁÁhhhhhhhhhÁhÁÁhÁhÁhÁhÁhhhhhhhhÁhÁÁÁhhÁhÁÁhhhhÁÁhÁhÁhhÁhhhÁhhhhhhÁhÁhhÁhhhÁhÁhhÁhhhhÁhhÁhÁhhhhhÁÁhhhhhhhÁc0,,,–Óõúüúúúüúúúûúûúúúüÿ÷ó÷úóóó÷ó÷óóâ’p9    ! ! !  !  ! !!!C�Õüüúýüýüüýúýüÿýúûüúýúüüüüüúýúýõà�R,,,LLLLL,L,LLL.L,L.,,LLLLLL,L,LLL,LLLLLLL,LLLLLLLLLLLLLLLLLLL.NNNLNNNNLNLNLLLNLLLLLNLLLLLLNNLNLNLNLLLLLNLLL,NLLLLNLLNLLLLLLLLL,LLLLLNLLLL,LLNLLLLLL,LLLLL,LLLLLLLL,LL,,LL,,L,,LL,L.LL,LL,L,,,LLL,,LL,,,LL,,L,,.,,.,,.,,.,.,L,L,.,,.,L,,L,,,,,,,,,,,,,,.,,,,,,,,,,,,,,L,,,,,,,,.,.,,,,,,LD,LL,DL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhÁhhÁh•�hhhhÁhÁhhhhh•¹�••¹hhhhhhhhh•¹Á�¹�•¹�•hÁh•Á¹h•¹Á•¹„•hh•¹Á�„¾••¹�¹•¹„•�•¹�•hhhÁ•hhhh•¹hh•••ÁhhÁhhhhhÁhhhùh•¹h•¹�hhhhh•hh•¹�•hhÁ¹h••h•¹•Á•hÁh•¹hh•¹•hh•hhhhÁhhhhhhhX,,,,,,,,,chhÁhÁhÁhhhhhÁhÁhhhhhhÁhÁhhÁhhÁhhÁhhhÁhhhhhhhhÁhhÁhhhhhÁhhÁhhhhhhhÁhhÁhÁhhÁÁhÁhÁhÁhÁhÁhhÁÁÁhhÁÁÁÁhhÁhÁhhhhhhhhhÁhhhÁhhhhÁhhÁhÁÁhÁhhÁhÁhÁhhh•¹X,,,,,^Óèúûúûúúüûúúúúúúúúþüúóóúóúó÷úóúèª�?!   !!   !    ! !!     !9Ž¥æúüüüúüüûüüüüÿýüüûýúýúýúýúýúýúõÙ�OL,,,,,,,LLLL,,.L.LL,LLL,,LLLL,LLLLLLLL,,L,,LLL,L,,LL,LLLLLLL,LL,.LNLNNNNLLNNNLNNLLNNLLLLLNLLLNLNLLLLNLLLLNNNNLLLLLLLLNLLLLLLLLLLL.LLLLLLLLLNLLLLLLLLLLLLLLLL.LLLL.LLLLL,LLL,LL,,L,LLL,,,LL,,,L,L.,,,LLL.,,LL,,.L,,.L,,,,,.,.,,L,.,,,,L,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LD²D,D,DL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhhÁhhÁ¹•¹•hhhhhhhhÁhhh•¹•h•hhÁhhÁhÁhh•¹••¹••¹•hhhh�Áhh•hh•¹•hhh•h¹•¹•h•�¹•�¹•¹••¹•hhhhhhh¹•h•hhhhhÁhhÁhÁhhhhhhhh•�¹•�¹•Á¹•hhhhhhh•Á¹•h••hhhhh�¹•hhhhh•�¹••hhhhhhh¹Âhh¹•h¹V,,,,,,,,,,,McÁÁhÁhÁÁÁhÁhÁhhhhÁhÁÁhhÁhhhhhÁhÁhÁhhhhÁhhhhhÁhhÁhÁÁhhhhhÁhhhhÁÁhÁhhÁhhhhhhÁhÁhhhhhÁhÁhhÁhhhhÁhÁhÁhÁhÁÁhÁhÁhÁhÁÁhhÁhÁhhÁhÁhhhÁhhÁhÁÁhÁhÁÁÁhÁhhc,,,,,0ÓÚüúúüúúúúúúúúúúúúýÿóóúóó÷óúó÷óóÙŸo !   !  ! !    ! !  ! ?¢¬õüüúýüýúüüüýþþüúýüüüýúýúûüúýúüèÓeLL,,L,L,L,L,L,,LL.,L,,L,,L,,,LLLLLLLLL,LLLLLL,,L,LLL,,LL.LLLL.LL.LNLNNLLLNNLNLNNLLNNLLLLLLNLLNNLLNNNNNLLLLLLNNLNL.LLLLLLNLLL.L..LLL.NLLLLLLLLLLLLLLLLLL,LL.L.L.L,,LLLL,LLLL,L,.,L,,LLL,L,L.,L,,LL,,,,L,,,L,.,L,L,,.L,,,,,,,,.,.,,,.,.,,,,,.,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,LD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhh•h•hhhhhhhhhhhhh•hhhhhhhhhh•¹hhÁ•hhh•¹�h•¹h•¹hhhh•¹�h•¹hh•¹�•hhh•¹Á„¾Á�h•¹�hhhhh•¹�•hh•¹•¹hhhhhhhhh•¹„¾hhÁ•¹••¹•hh•h•¹h•¹h•¹h•hÁhh•¹hh•¹•hh•¹hh•¹•hh•¹h•¹hÁ�•¹�•hh•hX,,,,,,,,,,WhÁhhhÁÁhhhhÁhÁhhÁhÁÁhÁÁÁhÁÁÁhhÁÁÁÁÁÁhhhÁÁhhhÁhhhÁÁhÁÁhÁhhÁhÁÁÁÁÁÁhhhÁhÁhhÁhÁhhhhhhÁhhhhhhÁhhÁhhhÁÁÁhhhÁhÁÁhhÁhhhÁhÁhhÁhhÁÁhhÁhhhÁÁhhhÁÁhhÁhhÁhM,,,,Ê×÷úúúüúûúúûúúúúúúúÿú÷óóúó÷óúóúóæ’q= !          !     ! !     !    !  ! m’Úüüûüüúüýüýüüþÿûüüúüûúüüüüûüúý÷àÊ\,,,,,,L,L,L,L,.,,LL,L,,,L,LLL,L,,L,,LLLL,,LLL,L.,,LL,LLL..LL,,LL,LLNNLLNLLNLNLNLNLNLNNLNNLLLLLLNLLLNLNLLLLLLLNLLNLNLLLLLLLLLLLL.LL.L.L.LL,LLLLL.LLLLLL,LL,L.LL,LL.L,LL,L,,LLLL,,.L,L,LL,,LL,,,.LL,,LL,L.,,L,,L,,.,,L,L,,.,,,,,,,,,,.,L,,.,,,,L,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,LL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhh�¹•¹•hhhhh¹•hhÁhhhhhhhhhhh¹•hhhhh•�¹•hhhhh•¹•h•hh•hhhhh•¹•h•hhh•¹•hhhh•hhhÁ¹•h•¹•h¹•hh•¹•hhh�•�Áh¹•hhhhhh�¹•hhhh�¹•�Áhhhhh•hh•hh•hhhhh¹•�Áhh•hhhh•�¹•�¹•hh•hh•hh¹•�¹•hhhX,,,,,,,,,,,,,,,chhhhhÁhhÁhÁhhhÁhÁÁÁhhÁhÁhÁhÁhÁhhhhÁhÁhhhÁhhÁÁÁhhÁhhhÁhhhÁhÁhÁhhÁhhÁhÁhhhÁhhhÁhhÁhhhhhhÁÁhhÁhÁhhhhhhhÁhhÁhhÁÁÁhhhÁÁhhhÁÁhhÁÁhhhÁhhhhhÁÁhhhÁÁhhhc,,,,,,,,,,–Õõúúúúúúúúúúúúúúúúýüó÷÷ó÷óúóóó÷ò¬Ž?!!    !  !      =s¥èúüüüüüüüúüúþÿüüúýýûüüýúúýüúýúõà�O,,,,,,,LL,,L,L,,.L,L,,L,L,,LLL,LL,,,LL,,,LLLLL,,,L,L,LLLLL..,LL.L,LNNLLNLLNLLNLLNLLNLLLLLNNLLLLLLLNLNLLLLLLL,LNLLLNLL.LLLLLLLL.LL.L,LLLLLLLLLLL,,LLL.LL.L,,LLL,.LL,L,LL,.,,.L,L,,,LL,,,L,,,,.,L,L,,LL,,.,,,.,.,,,.,,,,L,,.,,,,,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XÁ¾„•�h•¹•¹�••¹hhhhh•¹•¹h•¹�•h•¹hhh•¹•h•¹hh•¹�hhhhhhh•¹hh¾�hh•¹h•¹�hhhhhhhhhh•hhh•hh•hh•¹�•¹h•¹•¹hh•hhÁhhh•¹••¹hh•¹••¹hhhhhhhhhhhhhhhhhh••¹hhhhhhhh•¹••¹•hhhhhhhhh••¹•h•¹hhX,,,,,,,MchhhÁhhÁÁÁÁÁhÁhhÁhhhhhhhhÁhhhÁhÁhhhhÁhÁÁhhÁhhhhÁhÁhÁÁhÁhhhÁÁhhhhhÁhÁhhÁhÁhÁhhhÁÁhÁhhÁhÁhhÁÁhhÁÁÁhhhhÁhhÁhhhhÁhhhhhhÁhhhhhÁhhÁhhhÁhhhÁhhÁÁÁÁhÁhhgM,,,\Óæúüûúúúûúúúúúúúúúüÿúóúóúóó÷÷÷óóà’q= !    !     !  !!     o¢ÕúýúüúýúýúýýüþþýûýúüüýúýúýúúüúýñÙ“L,,,,L,,,,,,L,,L,,,L,LLLL,,,,LL,,,,L,,LLL,,,LL,L,L,LLL,L.L,L,LLLLLLLNLNNNLNLLNLLNLLNLLNLNLLNLLLLLNNNN,LLLLLLLLLLLNLLLLL.LLL,LLLLLLL,LL.L,LLL,LLLLLLLLL.LLL,.,LLL.,,,.,,,.,.,LLL,,,L,LL,LL,.,L,,,L,,,,,,LL,.,,.,,L,,.,L,,,.,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,D,DDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhh¹•¹•hh•h¹•h•�¹•h¹•�••hh•¹hhh•�¹•hh•hh•�¹••¹•hh¹•hhh••hhÁhhh•hh•¹•h¹•¹•hhhhhhhhhhhhhhh•¹•�¹•�¾•hhhhhhhh¹•�¹••hhh•hh•hhh¹•¹hhhh¹•h¹•¹•¹�h•hhhh¹•¹•hhhh�¹•h¹•h¹•hhhh•h¹••�X,,,,,,,,,,\hhÁhhÁhhÁhÁhhhÁhÁÁhÁÁhhhÁhÁÁhÁhhÁÁhhhÁhÁÁhhhhÁhhhhhhhhhhhÁhÁhhÁhhhÁhÁhhhhÁhÁÁhÁhhhÁÁÁhhÁhhhÁhhhÁÁhÁÁhhÁhhhÁÁhhÁhÁhhhÁhhhhhhhÁÁÁÁhhÁhhÁhhÁhÁhhÁhhX,,,,,0ÓÙúúúúúúúúúúúúúúúúüþúóóóó÷úóúóúóè¬�?  !          !! =�ªèüüüûüüüüüüüýþþüüüüûüúüúýúýýûüúæÓ\L,,,,,,,,,.,,L,L,,L,L,,,L,,,,,LL,L,,,,,,,,L,LLL,,LL,LL,,LLLL,,L.LL,LLLLNLNLLNLNLLLLNNN,LLNNNLLL.NN,NLLLNLLLLLLLLLLLLLLLLLL,LLL,LL..LLLLLL,LLLLL.L,LLL.L,.LL,,LL,,L,.,,L,,L,,,.L,L,LL,L,,,.,,,..,L,L,.,,,,,,,,,,,,,.,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DLL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhÁ�hhhhhh•hh•¹•hh•h•¹ghh•_c_h•¹•hhhhhh•¹•hh•hhh••¹hh•¹hhhhhhhhhh•hh••�•¹h•¹h•¹h•¹h•¹hhh•h¹••¹hh•¹hh•¹�h••¹•h•¹hhhhhhhh••h•h•¹�•hh••h••¹hhhhhh••�hhhh•¹•hh•hh•h•¹hhhh•h•¹hX,,,,,,,,chÁhÁhhhhhhhÁhÁhÁhÁhhÁÁhÁÁhhhÁhhhhÁhhhhÁhhÁhÁÁhÁhhhhhhhhÁhhhÁÁhhÁhhhhhhhÁhhhÁhhhÁÁhÁhhÁhhÁhhÁhhhÁhÁÁÁhhhÁÁhÁhhÁhÁhÁhhÁÁÁhÁhhhhÁhÁhÁhÁhhhhhhhÁ•¹ÁÁgM,,�Óõúúûúûúúúúúúúúúúúüþóúóúóóóó÷ó÷óæ’q!      !!!      !        !o¢ÕúúüüüúýúýúýúýÿýúýúüüüüûúýúúúüüõàÆ\,,,,,,,,,,.,,,,L,,.,.L,,,L,.,,,,L,,,L,.,,L,,,LL,L,LLLL,L,,,,,L.L.L,LNLLNLNLLLLLLLLLNLNLLLN,NLLLLLLLLLNLLL,LN,LLL.LLLLLLLLLL,LLL,LLLLL,LLLLL.L.LL.,,LLL.L,,L,.,,,L,,,LLL,.,,,L,LLL,L,,,,,L,,,,L,,.,,,,,,,L,.,,.,,,,,,.,,,,.,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDD,DDDDD,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhh¹•hhhhhhhhh•hhhhhh_@$$$$>Y‚hhhhhhhh�¹•hhh¹•h•hhhhhhhhhhh¹•hhhhh¹•h•hh•hh•hh•hh•�¹•hhhhh•hhh•�¹••¹•¹•hhhh•hhh¹•ZYYYYYBYCYZYZ_YYYYh•_=@>hhh¹•¹•hhhh•h=$hhh•�¹•¹•hh„X,,,Mg¹ÂÁÁhÁÁÁÁhÁhhhÁhÁhhhhÁhhÁhÁhhhhhÁhhhÁhÁhÁhÁÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁÁÁhÁhÁÁhÁÁhÁhÁhÁhhhÁhÁhhhÁÁÁhÁhÁhÁhhÁhhhÁÁhhÁÁhhÁhhÁÁhhÁÁhÁhÁÁhÁhhhhÁÁÁhÁÁÁÁhÁhÁh•ÁhW\Óàúúúüúúúúúúúúúúúúýÿúóóó÷úóúóúóó謎?  !      ! ! !       !! =�’éúüúýúüúýúüüüþþúýúýúýúûüüúýüýúûèÚ�/,,,.,,L,,,,,.,,,,,,L,,.,L,,,,,,,,,,,L,L,,,,,.,LLL,L.,,,,L,,L,LL,L,,LN.LLN,NLNLLLLLLLLLLLLLLLLLLLL.LLLLLNLLLLL,.LLLLLLLLL,LLLLL,LLLLLLL,,L,.L.L.L.,,LLL,,L,LL,,,,L.,,,L,L,L.,,LL,,L,,.,.,,,,,,,,,,,,.,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,DDIDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhh•h•¹•¹hhhhhhh•¹hh_$$$=hhhhh•¹•hhhhhhhhhhhhhhhh•¹�••¹h•¹•hhhhhhhhhhhhhhh•¹•hhhhhhhhhhh¹•h„¾�hhhhhhh•¹�•hh$$!$$$$hhY_hhh•hhhhhhhh@$hh•¹h•hhh�¹hX,,,b�hÁÁhÁhhhhÁhhÁhhÁhhÁhÁhÁhhhhÁhhÁÁhÁhhhhhÁhÁhhhhhÁhhÁÁhÁhhÁhÁÁhÁhÁÁÁhÁÁhÁhÁhhÁÁhhhhhhhÁhÁhhÁhÁÁhhhhhhhÁÁhhhÁhhhhÁhhhÁhhhhhÁhÁhhhÁhhÁÁhÁhhhhÁhhhhÁhhg,0ÊÚ÷úúúúúúúúúúúúúúúúüüóú÷óóúóóóú÷óÙ’}!!  !!  !!!   !    ! !! o�¬úýúüüüûüúýúüýÿýýúýúýúüüýúüúûúüúàÓ\,,,.,,,,,,,,,,,L,,,,,,L,,,,,L,,,,L.,,,L,L,LL,,L.L,LL,L,LL,,L,LL,,L.,LLL.LLLNNLLLLNLLLLNLLLNLLLLLNLL.LLLLL,LLLL,,LLLLLLLLLLLLLLL,,L.LLLL,LLLL.,,L,L,L,L,L,.,,,,.,,,L,.L,,LLL,,,,,LL,,L,,,,,,.,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhh�••hhhhhhhhf>$$$[hhhgh•hhhhhhhhh¹•hhhhhhhhh¹•�¹•�¹•ghh¹•h¹•h¹•h¹•hhhhhhhhhh¹hhh�¹•¹•¹•hhhhhhh•¹hh$$$$‚hYchhhhhhh¹•hhh>$hhhh•hhhhhh�X,,,,,,,Ldh¹•hÁÁÁÁhhhÁhÁhhÁÁhÁhhÁhÁhhÁhÁÁhÁhhhÁhhhhÁhhhhhhhhhÁhÁhhhÁÁhhhhhhhÁhhhhÁhÁÁhhhÁhÁhhÁÁhhÁhhÁhÁhhhhÁhhÁÁhÁÁÁhhÁhhhÁÁÁhÁhÁÁhÁÁhhÁhÁÁhhhÁÁÁÁhhhÁhhhhÁÁhM ,“Óèýúúúúúúúúúúúúúúúýÿ÷óóúóó÷÷÷óó÷謠?      !  !  !            =}’æüúüúúýüüüüüüþÿúýüúýúýúýúýúýüüûõÚ—M,,,,,L,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,L,,L,L,,,,,LL,,,,,,,,LL,,,LLL,,LLLLL.L,LLLLLLLLLL,LLLLLLLLLLLLLLLLLLLL.L,,LL.LLL,LLLL..LLLL,.LL,,LLL,L.L,,LL,,,,,L,LLL,L,,L,,,,,,,,,,L.,,,,,,.,,,,,,.,,,.,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDLD,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Thhhhhh¹hhhhhhhhhh_!@Y_c_[@$@hhhhhhhhhhhhhh�•hhhhhhhhhh•hh••¹•hhh•hhh•hh•hh•hhhhhhhh•¹••hhhh•hh•hhhhhhhhhh•hhh@_@[>@$@>YZYZhhZ$_hhhhh•hhhhhh$hhhhhhhhhhhhX,,,,,MhÁhhhhhhÁÁhhhhÁhÁhhÁhhÁhÁhÁhÁhhÁhhÁhhhÁhÁhhhhÁÁhhÁhhhhÁÁhhhhÁhhÁhhhÁhhhhhÁhhÁhhhhhÁhhhhÁhhhhÁhhÁhhÁhhhÁhÁhhhhhÁhhhhhÁhhhhÁhhhÁhÁhÁhhhhhhhÁh•¹ÁhÁhhhhX UÓàúúúúúúúúúúúúúúúúúþüúóó÷óúó÷óúúóà¢s=   !!!      ! !o¢ÕúúüûüüüúýúýúýþýýúúýúýúüúûúýúúüüèÙ�-,,,,,,,,,,L,,,,L,,,,,,,,,L,,,.,,,,,,,,,,.,L.,,.,.LL,,L,,.,L,.,LLL,,,LLLNLLLLLLLLLLLLLLLL.LLL,LLNLLL.,L,LLLLL.L,LL,LLLLLLLLLL.LL,,LL.,.,,,L,L.,,LL,,L,.,,,,,,,L,,,,.,.,,,,,,,,,,,L,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,DDDDDDDDDD,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhh�¹•hhhhhh_$>hd¹hhhhhh_X„hghdhhhhhhhhhhh¹•hhhhhhhhhhhhhhh�¹•hhhhhhhhhhhhhhhhhhhhB$>hhhhhhhhhhhhhhhhhhhhhhhhhhhdhh>$hhhhhhhhhB$chhhhhhhhhhhh@hhhhhh¹•hhhhX,,,c„hÁhhhhÁhhÁhhhhhhhhhhhÁhhhhhhÁhÁhhhÁhhÁhhÁhhÁhhÁhhÁÁhhhÁhhhhhhhhhhhhhhhÁÁhhhÁhhÁhhhÁhhhÁhÁhÁhÁhÁhhhÁhÁhhhhhhhhhÁhÁhhÁhhhÁhÁhhhhhhÁhÁhÁhÁhhÁhh•Áhhhhhc0 Ê×õúúúúúúúúúúúúúúúúüÿóóúóúóóú÷óóóòÓ�m!  ! !  !     !   !  !=Žªèúüúüüúúüüüúýýÿüüüýúýúýúýüüúýüû÷àÊ\,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,L,,,,.,,,L,,,,.LL.,.,,LNLLL,.LLLLLLLLL.L,LL,LLLLL.L,LL,LLLLL.LL,,,,,LLL.L,,L,,L,L,,L,L,.,LLL,LL,.LL,,L.,,L,L,,,,,,,,,,.,,,,,,,.,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Whhhhhhhhhhhhhhhd$chhhfhhhhhhhghhhdhhhchhchhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhh_$Chhhhhhhhhhhhhhhhhhhhhdhhdhhhd@hhhhhhchhZ$[hhhhhhhhhhhh>$hhhhhhhhhhhhX,,,0chÁhÁÁhÁhhhhÁhhhhhhÁhhhhÁhÁhhhhÁhÁhÁhÁÁhhhÁhhÁhhhÁhhÁÁhhhhÁhhÁhhÁhÁhÁhÁhhÁÁhhÁhÁÁhhhhhhÁhhhhhhhÁhÁhhhhhhÁÁÁhÁhÁÁhhhÁhhÁhhhhÁhhhÁhhhÁhÁhÁh•¹hÁhhhhh•¹•¹W  , fÓèúúúúúúúúúúúúúúúúüýüúóóóúóóóú÷÷óâ’}>!   !  !  !  !!$q’ÚúýúüüúüüúýúüüþýúüûúýúýúúüûúüüúüõÙ“M,,,,,,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LL,.,,,,,,.,L.L.,LL,LLLLLL,LLLLLLLL,LL,,L,L,LLLL.L,L,L.L.LL.LL,LL,LLLLL,,,,.,,,,,,.,L,,,LL,LL.,L.,,,L,.L,,,,,,,,,,,.,,L,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDDDDL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhchhhhhhhhhh$hhhhhhhhdhdhhhhhhghhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhchhhhC$Y¹hhhchhhhhhhhhhhhhghhhhhhhhhd>hhhhhchhhC$xhhhhhhhhhhhd@hhhhhhhhhhhhX,WhhhhhhÁhhhhhhÁhÁÁhhhhhhhhhhÁhÁhhhhÁhhÁhhhhhhÁhhhhhÁhhÁhhhhÁhhÁhhÁhhÁhÁhÁhhhÁhhhhhhÁhÁhhÁhhÁÁhhhÁhhÁhhhhhhÁhhhÁhÁÁhÁhÁhÁhhÁhÁÁhÁhÁhÁhhhÁhhhh•�Á¹•Áh¹•�•c0      0ÔÚúúúúúúúúúúúúúúúúúüþ÷óúóó÷úó÷óóúòÕ�q !        !     ! ! ! ! !         l�¬òúúüúûüúýúüüýþÿüüýüüúýúýüûüüûüüúèÓ`,,,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,,,,.,,,,,,,,,,,L,,,,,.L,LLLLL,L.LLLLLLLL.L.,,L,LLLLLLLLLL,LLL.L,,L,,,LLL,,LLL,L,,,,,,,,,LLL,,L,.LL,,.,L,,L,,,,,,,,,,.,,.,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhchhhhfhhhh•¹C$$>gdhhhhdhhghhhhdhhhdhhhhhhchchhhhghhhchchhhhhhhhchchghhhhhchghhhhhhhhhhg„$8hfhhhhhhhchhhhhhhhhdhhhghhhhg„$hhhhhhhghY$[dhchhhhhchdh>$hhhhgfhdhhhhX,,,,,,c¹Á„¾hhhÁhhÁhhhÁhÁhÁhÁhÁhhhhhÁhhÁhhhÁhhÁÁhhhhhhhÁhhhÁhhÁhhÁhhÁhÁhhhhÁÁhÁhhhhÁhhhhhhhÁhhÁhhÁhÁhhhhhÁhhhÁhhÁhhhÁhÁhhhhÁhÁÁhhhhhhhhhhÁhhhhhhhh•¹•ÁhÁ•ÁÁ•¹hhM    , �×õúúúúúúúúúúúúúúúúúÿüúóóúóóúóúóúóç¬�l     !   !  =s’æúüýúüüúüúüýúüþýýúúýúýúúüúüúüüúüõàžP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,.,,,,,,,,,,,,,,,,,,,,.,.,L.,,,,L,,L,L,LL,LLLLLL,LLL,L,.LL,LL,LLLLLLLL.LLL,.LL,L,,L,L,L,,LLL,L,.,.,,L,,,,LL,,,L,,,,,,,,,.,L,,,.,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIDDDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhgghghhhhchhhhhhhchhhghhhhhhhhghhhchhhhchhdhhchhhchhhhhhhhhhdhchhhghhhhchhghhgghhhghdhhhhhhhchhhchhhhhhhhhhhhhhhdhh>$$hdhhhhchgYchdhhhchhhhgh>hhhhhghgdhhhW,,,,McÁ•h¹•hÁhhhÁhÁhhÁhhhhhÁhÁÁhÁhhÁhÁhÁhhhhhhhhÁhÁhhhÁhhhhhhÁhÁhhhhÁhhhhhhÁhÁhhhÁhhhÁhhÁhÁhÁhÁhÁhhhÁhÁhhÁhÁhÁhhhÁhhhhÁhhhÁhÁhÁhÁÁhhhhÁÁhhhÁhhh¹ÁhÁhÁhhhhhhÁ�c^Óàúúúúúúúúúúúúúúúúúüþóóúóóúóó÷÷óó÷à’s=     !   !!     ! !     !!!o�Õúúúúüúûüúýúúüþÿüüüýúýúýüûüúýúûüúë×�/,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,.,,,,,,,,,,,,,,,,,,,,.,,,,,,,,L,L,LL,,LLLLLLNLLL,L,,L,L,LL,,L.L.LL.L,.LL,LL,.,,L,L,,,,L,LL,,L,.,.,,,,,,,,,,,,,,,,,,,,,,,.,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,D,DD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhdhdhhhh_$Zhhhhghhhhhhhhhhhhhhhdhhchhhchhhhhghhhhhhhhhhhhhhhhchhhhhhdhhdhhhhdhdhdhghdhdhhhhhhhhhchhhhhhhhhhhhhhdhhhhh>hhghhhhhhC$[hhhhhhchhhdd@hdhhhhdhghhhX,,,,Whhh•hhÁhÁhhhÁhÁhÁhhhhhhÁhhhÁhhÁhhÁhÁhÁhÁhhhhhhÁhÁhÁhhhÁhÁÁhÁÁhhhÁhÁhhhhhhhÁhhhÁhhÁhhhhÁhhhhhhhhÁhhhÁhhhhhhhÁhhhhhÁÁhhÁhÁhhhhÁhÁhÁhhhhhÁ�Á••hÁhÁhÁhhh•¹•¹cM -�×õúúúúúúúúúúúúúúúúüþüóóú÷óóúóúóúóòÓ�p$   ! !   !         !jŽšéúüüüúüüúüúüüýþýúüûúýúúüúüúýüüüú÷àÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,.,,,,.,L,.,,,N,L,NL.,L.L,L,LL,,.,L,,.LL,,LL,L.L.LL.,,,,,LLL,,LL,.,,,,,,,,.,,L,.,,,,,.,.,,,,,,,,,,,.,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhfghhdhhh8chdhhdhdhhhdhdhchchhhhhhhhhch_B_B__hhhchchBBB_hh[B$j@�hhhhghgh[CYB_chhhghdZBY_hhhh[c_c‚hhchhc_c[hhhhhhhdghh>@hhhhdhhdhB_hhchhhhhhghh>$hhhhhdhhdhhdX,,,,,,chhÁhhhhÁhÁhhhÁhhÁhÁhÁÁhhÁhÁhhÁhhhÁhhÁhhhhhhÁhÁhhÁhÁhhÁhhhÁhhhÁhÁhÁhÁhÁhhhÁhhhhÁhÁhÁhhhhhhhhhhhhhhhhÁÁhÁhhhÁhhhhhhhhhhÁÁhÁhhÁhhÁhhhÁhh¹•Á¹ÁhhhÁhÁhÁhÁ¹••Á•^,,, ,,,`Óàúúúúúúúúúúúúúúúúúüÿúóóóúóó÷ó÷óó÷èš�m     !!!   !   !    ! =Ž’æúúúúúüúûüúýúýýÿüüüüüúýüûüûýúûúýúëÙ“-,,,,,,,,,,,,,,,,,,,.,,,,,.,.,,,,,,,,,,,.,.,,,,,,.,,,,,,,,L,,LLLLL,,L,,,L,,,LL,.,,,LLL,,LL,,,.L.L.L,,,LLLL,LL,,LL,,,,L,L,,,,,,,,,,,,,,L,,,,,,,,,,,,,L,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DD,,,,,,,,,,,,,,,,,,,,,,,,,,,Thhhhghdhghhdg$>hhhhhhhghghhhhhhhhhghhchhh‚@$Bhhhhh@‚@hhchch�@>hchh_Bhhhh_$_hhhcchdhhghhhhh@>hdhhhhhghZchhhhhhchhdhh>hchhghhghhghX,,MdhhhÁhÁÁhÁhhÁhhhÁhhhhÁhhÁhÁhhÁhhhhhhÁhÁhhÁhÁhÁhhÁÁhÁhÁÁhÁhhÁhhÁhhhhÁhÁhÁhhÁÁhhhhÁhhhhhhhhhÁhÁhÁhhÁhhhhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁ•ÁÁ•ÁhhÁhhÁhhhh•ÁhhÁhg0,0�Úõúúúúúúúúúúúúúúúúúüüú÷÷óóúóúó÷úó÷â’}?   !   !   ! !=q‘Úúúýúüýúüüúüúüýþýýúüûúüúüüúüúüüüü÷àÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,,,,,.,,,L,L,L,,LL,,NL,,.,L,,L,L,,,.L.,,,,.L,,,.,LL,,,,.,L,L,,L,,L,,,,,,,,,.,,,,,.,,,,,,,,,.,,,,,,,,,,,,L,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Xhhhhhhhhdhhh[Chhhhhchhdhdhgdhdhghdhhhhd_$$>fhch>@@hhhhhd@chdhcCghchh>$>hdh>_hhghhdhhgdh>>hhdhchhhc_hhhgdhdhhhdhT,,,, ,bhhh¹•ÁhÁhÁhhhhhÁhhÁhÁhÁhhhhhhhhhÁhÁhhhhÁhhÁhhhhhhÁhhÁhÁhÁhhhhhhÁhÁhhhÁhhÁhÁhhÁhhÁhÁhÁhÁÁhÁhhhhhÁhhÁhÁhhhÁhÁÁhhÁhhÁÁhhhhhÁhÁhhhhhÁÁhhhÁhÁhÁhhhhhÁhÁhhhhÁhhhhW ,,, ^Óàúúúúúúúúúúúúúúúúúüÿüóóúóó÷ó÷ó÷óóòÙ’q= !       !   !!        !   ! !  o�¬òúüúúûúüúúýúýüþþüúüûüüûüúýüúýúûüúëÙ“0,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,.,,.,,,,LLL,LL.,LLLL,,L,.L,LLLL,L,,,,.,L,L,,,L,,L.,,.,.,L,,.,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD,,,,D,,,,,,,,,,,,,,,,,,,,,,,,WhghdghdggdghY_hhchdhhghdghdhgghdhhhhch_>___C$>ghh$$�hchch__c_>[hhgh_BhhhhdhCgC>dhhdhhgdhdhf>>chghhhchhCchhghdhdghghX,c¹••hhhhhÁhÁÁhhÁhhhÁhÁhhÁhhÁhÁhhhhhÁhhhhhÁÁhÁhÁhÁhhhhhhhhhhÁÁhÁhhÁhÁÁhhhÁhhÁhÁhÁhhÁhÁhhÁÁhÁhÁÁhhÁhÁhhhÁhhhÁhhhhhÁhhÁhÁhhÁhhÁhhhhhhh•hhhhhÁhÁ„¾hhhhhùhhhÁh•¹e ,  ,0žÙõúúúúúúúúúúúúúúúúúüüú÷óóúóúóúó÷úúòÓ p=!     !!  !j�šéúüúúüúüúúýúúúýÿýúýúüúüüúýúûüüüüü÷àÊ\,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,.,,,,,,,,,,,,.,,,,,,.,..,LLLLLL,,LLL,,LL,,.,L,,,,,,,,L,L,L,,,,,L,,,,,,,,,,,,,,.,,,,,,,,,.,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD²IIID,,,D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,XddghdhghdhhhB$[hhhghghdhghghgdhdhghchhd_hdhghhCCgdChhhhdhghhB_hhdhchhchd�$Zhggdhd[_hhhchgddhghhg>@hhdhhchhhBhhchdhhhgdhcX,Mhh•ÁhhhhhhhhÁhhhhhhÁhhÁhhhÁhhhÁhÁhhhhhhhÁhÁÁhÁhhhhhhhÁhhhÁÁhÁhÁhhhhhhhhhhÁhhhhÁhÁhhhhÁhhhhÁÁhhhhhhÁhhÁhÁhÁhÁhhÁhhÁhhhÁhÁhhhÁÁhhhh¹•Áh¹•hhhhhÁ¹•hÁhhhh•Áhh¹Á„hM `Óæ÷úúúúúúúúúúúúúúú÷üþüóúóó÷ó÷ó÷óúóóè¬�q=! !!  !    !    !    !   !  ! ?�¥æúúúýúúüúüüúüüýÿýúüüüûüúýúüüüúýúúúëÙ“M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,.,.,,,,,,L,L.LL,,,,.,L,.,,L,,L.,,L,L,L,.,,,,.,.,,,,,,,,,,,,.,,.,,,,,.,,,,,,.,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DIID,,D,,,,,,²D,,,,,,,,,,,,,,,,,,,,,,,,,,,XhhdghddghdgfZ[hchdhdghhdgdhdhghchghhh__chdhdggh>hh_ghdhghdhch>Zhdhdhhdhhh_Bhhdhdhh>[hchhdhghhdhdh>>dghchhhhhY__c__c__c__c_>chhgghghdhhhX,XhhhhÁ•¹ÁhhhhhÁhhhÁhÁhÁhhhhhhhhhhhÁhÁÁhhhhhhhÁhÁhÁhÁhÁhhÁhhhhhhÁhÁhhhhhhhÁhhÁhhhhhhÁhhhhhhhhhÁhÁhhhhhÁhhÁhÁhhÁhhÁhÁhhhhÁhÁhhhhù•ÁhhhÁ•¹Áhhhh•ÁhhhÁhÁ�Á¹•Á�hhhX,  0ÇÙõúúúúúúúúúúùúúú÷úúüþüóóúóúóúúó÷ó÷ó⚎o   !  !       ?Ž¢äúúúúúúüûúúúüúüýþüýúýúüúýúýüûúýúüý÷æÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,LL.,,L,,,.,,,,L,.L,,,,,L,L,,,.,,L,,.,,,,,,,,,,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DDDDDDDDD,,DD,DD,,,,,,,,,,,,,,,,,,Xedhdhhhghgdh_Zhhhghhdhghhdhghdhhgdhch>dhhhhhdhgc_dCghggdhdhghh]>_hhghchggccCghghghch>hfhghghdhchhhd>jhdhhhchchC_hhhdhhdhhghh>hhchdhchghdgW  cÁhhhh¹••Áh•¹Á•ÁhhhÁhÁhhhhÁÁhhhÁhhÁhhÁhhhÁhhhhhÁhhhhhÁhÁhÁhÁhhhÁhhhhÁhhÁÁhhÁhÁhÁhÁhÁhhhhÁhhhhhÁhhÁhhhhhhÁhhhhÁhhÁÁhÁhhhhÁhhhhhhhÁ•hhhhh�ÁÁhh¹ÁhÁhhÁhhÁ¹•�hÁ¹•hc0      aÓæ÷úúúúúúúúúúúú÷ú÷÷úþüúóó÷óóóóóóúó÷óàšŽl !       !    ! !   !      !  !  !>}¢ä÷úúúýúýúúüúýúüýÿýüúüúýúýúýúûüüúýúúëÙ–0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.L,L,,.,,,L,L,.,L.,,.,,,L,,.,,.,,.,,,,,,,,,,,,L,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD²IDDIID,,DDD,DDD,D,,,,,,,,,,,,,,,,,,,,,,Xhgghgdgdhdhh_>hdgdgdghdhghchdhchdhhhhBhchgdghdhh>Bh_hdhdhghchchc>>[dhhdhh_Bhchdhdhh_cgghdgdgghhchdhj>ghchghhhc_chdghchghdhdf>chhghdhhdghdX,ThÁ•¹�•hhhhÁ•ÁhhÁÁhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhÁÁhhhÁhhhÁhhhhÁhhhhhÁhÁhhhhhhhhhhhhÁhhhhÁhhhhÁhÁhÁhhhhhhhhhhÁhhhhhhÁh•¹•¹h•¹Á�ÁhÁ¹hh•¹•¹�Á••ÁhhÁh•¹h••¹hÁ•h•¹hX    0Ç×õúúúúúúúúúúúúú÷úúúúþüúóúóú÷÷ú÷óúó÷òÙ¥Žl     !     ?s’Õúúúúúúúúúüûúúúýþýýúýúýúýúýúüüûúýúý÷àÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,L,,,L,L,,,,,,,,LL,,,,,,,.,,,.,,,,.,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DII²I²IIDDDDDDDDDDDID,,,,,,,,,,,,,,,,,,,Xdgdhdhhchhghdchdhhhdhghdhchghhhghccc_chghghghgh>Cg>hghghgdhhhhhh__hghc_Zhhhghghcc>>hhdhghhdhdhhhgh>>fdhghcchgY_hghdhghdhdhg>hhchdhgghdhgX,Xhhhh•¹•hhhhhhhÁhÁhhhhhhÁhÁÁhhhhhhhhÁhhhhÁhhÁhÁhhhhÁhhhhhhhhhhhÁhhhÁÁÁhhhÁhhhhÁÁhhhÁÁhÁhhhhhhÁhhhhhhhhhÁÁhhhhhÁÁhhhhÁhhhh•�Áhh•h¹Âh�Á•¹•h•h•¹�¹Áhhhhh•hhÁ•hÁhhh•c               ^Óà÷úúúúúúúúúù÷÷ú÷÷÷úüþüóó÷óóó÷ó÷ó÷óúóÙ¥Ž?!!  !  !!    ! !    ! !  !!      ! =q’Óõúúúúüúúûüúúüúýþþüúüúýúüúýúýúûüüúý÷ëד0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,LL,,,L,L,.L,.,,,,,,.,,,,,,,,,,,.,.,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²I²I²I²I²²I²ID²I²DD²DIDDID,,,,,,,,,,,,,,,,XghcdhchdhgdhgC>ghgdghhdghchdcgdgdhhh_Bhdhdhchcdf>Bh>hdhdhdhchchchhc>cdhh_BchchchchC[hdhddghgghchdd>>ghhdhhhchC_dhchhcggghdh>chhchdhdhdhdX 0cÁhhh•f¹hùhÁhhhÁhhÁÁÁhÁhhhÁhÁhhÁhhhhhÁhÁhhhhÁhÁhhhhÁhÁÁhÁhhÁÁhhhhhhhÁhhhhhÁhhÁhÁhhhhhÁhhÁhhÁÁhhhÁhhhhÁÁhÁhhÁhÁhÁhhh•¹hÁ•¹hh¹h••¹•¹�hhhhÁ¹�Á„•hhÁhÁhÁhÁhhhÁhh•¹„M        –Óèúúúúùúúúú÷úú÷úúú÷úüþúúóú÷úóúó÷úó÷÷òÙ’s?  !!    ?s�¬òúúúúúûúüúúüúúüýÿýúýúýúýúýúýúüüûúüüõÙ�U,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,L,,,,,,,,L,.,L,,,,,.,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,I²I²I´²²I´I²²I²²DI²I²I²²IDDDDII,,,,,,,,,,,,,,,,,,,,,,,,Xhchhchchdhghhc_hdhdhchdhhchgchhdhcccCghgghchhhc_c>fhcchhghhhghdhhfh_Chgd[Chghcchh[hchcchhdhdhghh>>hcdhdcchc__hhhchdhdhghd>hhccchgdhgghX WhhhhhhÁh•hh•hhhhhhÁhhhÁhhhhhhhÁhhhÁhhhhÁhhhÁhhhhÁhhhhhÁhhhhhÁÁhhhhhhÁhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhÁhhÁhÁhhhhhhhhhhÁh¹Á�Á�¹••hhh•hh�¾•h•Áhhh••h¹�¹•hÁhhhÁhhhhhhhÁh•c           VÓÙõúúúúúúú÷ú÷÷ú÷÷÷ú÷úýüúóóóóó÷óúó÷óóúòÙ’}?     !  ! !!!   !   !       !  ! !   ?Ž¢¬òúúúúúýúúúúûúüüýÿüúýúýúýúýúûüüúûüüû÷æÓe-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,L.,L,,,,,.,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,I²I²²²²I²²²´I²²²I²III²I²²²I²I²D,,,,,,,,,,,,,,,,,,,,,,,,XcdhcghdghdhchhY[hghdhhghchhdhchcghhhhhdhdhhchZ_h>hdhhcgchchdhgghghghh>dhh_Bhchchhc>>>hhchcdhgghdfdj>chghchhchB_cgdhghchchdhjchhhhchcdhdeX, XhhhÁhÁhhÁhhhh•¹hhÁhhhÁhÁhhhhÁhhÁhhÁhhhhhhhhhhhhhhÁhhhhhÁhÁhhhhhÁhÁhhhhÁhhhhÁhhÁhhhhÁhÁhhhhhhhhhhÁÁhhhhhhhhÁhhhhÁ¹••Áhhh•h�¹�hhÁh¹hhÁhÁh•Á¹hh•h•hhÁ•¹hÁh•¹hhhhÁhÁ¹cM    fÓæõúúúúú÷ú÷úú÷úúú÷ú÷üþüúúóúóúóóúóúóó÷òÙ¥�o!        ! !      ?Ž’ÕéúúúúúúúüúúüúúúýþýûüúýúüúûúüüüûüüúüüèÙ–M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,L,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DII²IDI²²I²²I²²²²²²²²²²²²²²²²²²²I²²I´IIDD,D,,,,,,,,,,,,,,,,Xhchchchdhgghchc_chchchchchch[>chdchBjgdcchccc>hd>fchchccchhhchBhcgchcChgd[_chchchB>h[hchchchchggh>jhchchgchcCj_hchcchchhdhg>hhchchccchdhXMchhÁh¹•hhhhhhhhh••¹•hhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhhhhÁhhhhhÁhhhhhhhhhhhÁhhhÁhhhhÁhhhhhhhhhÁhhÁhhÁhhÁhhÁhhhhhÁhhÁhÁ•hhhh¹•h¹ÂhÁ¾hh„�Á¹•hhhh•h�¹•¹•hhhh•hhhh••¹•hhh•�X             0ÇÙòúúúú÷ú÷ú÷÷ú÷÷÷÷÷÷÷üþüóóóúóó÷ó÷óúó÷óòäš�m  !          !!                ?}¢ÕòúúúúûúûúúúúúúûýþþüüúýúýúýüüúýúüüúüúõàÇ\-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,,.,,.L,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DII²²I²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²I²DDD,,,,,,,,,,,,,,,,,,,,,,,Xchchcchghcccghc‚>[chhchhch_C[hhc‚jcchcc_[eh>chchcchccchhB>[hchcj>chh_>Bhchch_cc_chchcchchdgf>>chchhdhgh_[hcchchdgghdhjhchchcchchcdXX•¹Á�••¹h•¹hhhhh•¹�•¹hhhhhÁÁhhhhhhhhhhÁhhhhhhhÁhhhhÁhhhÁhhÁhhÁhÁhhhÁhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁhÁhhhÁhhhhhhhhÁh•¹hhh••¹�•¹„h•¹•¹Á•h•¹hh•¹hÁ�h•¹hhhhhhhhhÁ•hhhh•¹hh    \ÓÚõúú÷ú÷ú÷úú÷úú÷ú÷ú÷úüþüú÷óóúóúóóó÷úóúòäš�p=   !    ! js’ÚõúúúúúúúúúúûúüúüýÿüýúüúýúýúýúýúüûúüýúèÙ‚-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD²²I²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²I²²²IID²I²²ID,,L,,,,,,,,,,,,,Xhchchdhchccdhdccc>>[__[C>>chch_>>>jhhdjcchcchchchc>>>ChchZjZfhchc>__ccC>hccchchcchcjhchcchchcZ‚cchchchdhdhg>jchchcchchchcX  , 0bÁh•¹•¹••hÁ•�¹•¹•hÁh�Á•hÁhhhhhÁhhhhhhhhhhÁhhÁhhÁhÁhhhÁhhÁhhhÁhhhhhhhhhÁhhhhÁhhhhÁhhhÁhhhhhÁhhhhhhÁhhhhhÁhÁhÁhhÁhhhhÁ•hh¹•hÁhÁ�¾¹•Á•�¹•hÁ•hÁh•hh¹•hÁ•¹•hhÁhhhhhhh¹•h•hW       ”Ùè÷úú÷ú÷ú÷÷ú÷÷÷÷÷÷÷÷úüþüóóúóó÷óú÷ó÷÷óóóàª�q?  ! ! !    !       !       !! ! $o}‘ÙúúúúúúúúúúûúúüúýþÿüúúýúýúüúýúýúýúüüûúõÚ�M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,²I²DD²I²²²I²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²I²²I²IDD,,,,,,,,,,,,,,,,,,,Wchchghchccchchhhhcj>ccchch_Cchch>chhhhccchch_jccch_Ychchj>chchcj_hchchcdhhcj>dhhchchhc__chchghdhghcf>jhchchhccchchX,MhhÁ•¹�hÁhh•¹••Áhh•¹ÁhhhhhÁhhhhhhhhÁhhÁhhhhhhhhÁhhhÁhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhÁhÁhhhhhÁhhhhhhhhhhhhhhhh•Áhhh•¹Á„h•¹Á•hhhÁhhhhh•Áh•¹�Áhhh•¹Á•¹•¹�•hhhhhc      MÇÙõ÷÷ú÷ú÷úú÷ú÷ú÷ú÷ú÷÷úüüüóóúóúóóúóúóú÷óó謒}l! !      !!>q�šäúúúúúúúúúúúúúúúüýþüýúýúýúüûüúûúýúýúüü÷æÊ`-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD²D²²I²²²²²²²²²²²²²²²´²²´²²²²´²²´²²²²²²²²²²²²I²²²²I²²²²,,,,,,,,,,,,,,,,,,,,Xccchcchchchcchchccc_jjj_chdhchch[jjj_hchchjhcdccccdchcc‚>jj>cchcc_j_ccc_j_cccch_jchchchcchcjhfchchchcBk_hchgchghchhcjhcchcccccchcW,Xhhhhh•¹•hh¹•hhhhhhh•hÁhhhhhÁhÁhÁhÁhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhÁhhhÁhhhhÁhÁhÁhhÁhhhhhhhhÁhhÁhÁhÁhhhhhÁÁhhhhhhhhÁhh�¹•hh¹•ÁhÁhÁ•�Á¹•hhhhhhhh¹•h¹•hhh•¹•Áhhh•hÁhÁ•Á¹ÁhhhhM         aÓàõú÷ú÷ú÷÷ú÷÷÷÷÷÷÷÷ú÷úýüüóó÷óó÷ó÷óó÷ó÷ó÷èÓ¢Ÿp=  !  ! ! !! !     !  !! !o��¬æúúúúúúúúúúúúúúúûýÿýúüüúýúýúüúýüüúüúýú÷ëד0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D²I²IDD´I²²²²²²²²²²²²²´²²´²´²´²´²´²²´²´²²´²²²²²²²²²²²²²²I²²I,,,,,,,,,,,,,Xhchhchccchcchchhhhchc_jjjC[hchhchchchchcx>_C_[hhchchcB_C_ccchcchccchccc‚_>jZC_hchccccj>>_chhB_C_Cdchgcch_C_>_hcchchcchj_C_chcchcdhc__YCcchchchdhdhcc_>_CcchcchchccccX  chhhÁÁ�•¹�•hhhhhhÁhhhÁhhhhhhhhhÁhhhhhÁhhÁhhhÁhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhÁhhÁhhhÁhhhhÁhhhhÁhhhÁhhhhhhhhhhhhhhh•¹•hhh•hhhÁhh•¹Á•hhh¹h•¹�•hh•hhhÁh•hÁhhhhhhhhhÁ�•hhhÁhX      0“Óè÷ú÷ú÷ú÷÷ú÷ú÷ú÷ú÷÷÷÷úþüúúóúóúóúóúóúóúóóòàª�q=      !  !=p�’ÚòúúúúúúúúúúúúúûúüüÿýüüûúýúýúýúüüûúüýúýûñÙ�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD²IID²²²²²²²²²²²²²²´²´²´²´´²´²´²´´²²´²´²´²´²²´²²²²²²²²²²²²²²L,,,,,,,,,,,,,,Xchchccchcccccchccchcccccc‚__chcchcccchchchchchchchchcghcccccchcgcdcchccgcccdchchchgcccccgccchcdcchchgcggcccccchgchccccccchcccccchccgchcchchchchchchchchchchcchcgcchcccchccX      M„¹•hhhÁ¹•h¹•hhhh¹•ÁhhhhhÁhhh¹•hhÁhhÁhhhÁhÁhhÁhhÁhhÁhhhhÁhhhhÁhhhhÁhhÁhhhhhhhÁhhÁhhhhhhÁhhhhhhÁhÁhhhÁhhhhhÁhhhÁhhhÁ•Áhh¹•hhhhÁhh�ÁhhhhhÁ�¹•¹•hhhhhhÁhhhhhÁhhhhhhhÁ¹•Áhhhc0               M�Ùè÷ú÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷úþüúóó÷óó÷ó÷ó÷óóúóóó笒}p= !!!!       !  ! !!   ! !!  ?p�’æùúúúúúúúúúúúúúúúúýÿýúúúüüúýúüûüûüüüûúüúõàÇ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DII²I²²²²²²²²²²´²´²´²²´²´²²´´²²´²´´´²²´²´²´²´²²²´²²²²²²²²²²ID,,,,,,,,,,,,ThccchchchchhcccchccchchdcccchchccchccccccchcccccchchhcccchcgcccchchchchhdchchchchccchchcdchcchcchcchcchchchcchcchccchchccccchchccchcccchchcchcccchchccchccccccchchcchhhchcX,      X•ÁhhhhÁ�h•hhù�••Á¹hhÁhÁhh••hhhhhhhhhhhhhÁhÁhhhhhhhhÁhhhÁÁhhhhhhhhhhÁÁhhhhhÁhhhhhÁhÁhhÁhhÁhhhhhhÁhhhÁhhhhhhhhhhhhh•¹•Áhhhhhhh•¹Áh¹�h•¹•h••¹Áh•¹hÁhhhÁhÁhhhhhhhh•hhhh•¹hW         VÊÚõ÷ú÷ú÷÷ú÷ú÷ú÷÷÷÷÷÷÷÷üþýúúóúóúóúóúóú÷óúó÷èÙ’�sl!      ! !!  !   >q�ŸÕèúúúúúúúúúúúúúúúúüýþýúýüýüûüúýúüúüûúüüüý÷àÓf0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD²²²²I´²²²²²²´²´²´²´²´´²´´²´²´´´´²´²´´´´²²´²²´´²´²²²²²²²²I´D,,,,,,,XccchcccccccccchhccccccchcchcccccgcccgcchhchccchchcccccchccghcchcccchchccccccccchcccfccchccchcchccccchccccccdccccccchccchchcccgccgcccchccchhccchccchchccchcchcchcccchchchccX     0c¹•hhhhhh¹•Áhhh•¹•hÁ•Áhhhhhh¹•hÁhhhhÁÁhhhhhhhhhhhhÁhhhÁhhhhÁhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhÁhhÁhÁhhhÁhÁhhhhhh�Áhhhhh¹•h•hhh•¹•h•hhÁh•hhh•�Á¹Áhhhhhhh¹•ÁhhhhÁhhh•c                 aÓàõ÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýüúóóúóóó÷ó÷óó÷ó÷óóò謒�q?!    !       !!!!        !     =ps�ªàòúúúúúúúúúúúúúúúúûýÿýüüúûúúüúýúýúýúüüúýúúèד0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDDD²II²²D²´²´²´²´²´²´´²´´´´²´²´´´´²´²´´´´´²²´²´²²´²²²²²²²ID,,,,,,,,,,,,,,,,,XhcccchcchcchccccccchchcchcccchccdcgcdcccchchhcccchchgchcchcccccchccchcchchchcchcdcgdgchcchcchhchchcccccgdcgchchchcccchcchchcchcdcchcccccchchgccchcccccchcchccccchcchcchcccX          Th�Á¹•hhh•hhhÁh•hhhÁhÁhhhhhÁ•ÁhhÁhÁhhhhhÁhhhhÁhhhhhhhhhhhhhhhhÁhhÁhhhhÁhÁhÁhÁÁhÁhhhÁhÁhhÁhhhhhhÁhhhhhhÁhhhhÁhhhÁhÁhh•¹•¹hùÁ�•hÁhhhÁ¾�hhhhhhhÁhhh•¹ÁhÁhhh•¹Á•ÁhhÁ¹hhhhhhhhhM             “׿÷÷ú÷÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷üýþü÷ó÷úóúóúóúóúóúúóóòæª�so=!        !js�’ÙéúúúúúúúúúúúúúúúúúúýÿüüýúüüüýúýúýúýúüýúýúúôÙ�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIDD²²DD²I²DD´²´²´´´´´´²´´²´²´´´²´²´´´´´²´²´´´´²²´²²´²²²²²²²²DD,,,D,,,,,,XcchccccccccccchcchccccchccchccchccdcchcccccchcchcchchccchcccdgcdcchcccccccccchccccccchccccdcccccccchcdcccgccccccccchccchcccccccdcgccchchcccchcchcchchchcchccchcccchccccchcX   Xhh¹•Á�Á¹•hhhhhhhhhhÁhhhÁhhhhhhÁhhhhhhhhÁhÁhhhhhÁhhÁhhÁhhhÁhÁhhhhhhhÁhhhhhÁhhhhhhÁhhhhÁhÁhhhhhhÁhhhhÁhhÁhÁhhhhhhhhhh¹•�Á•hÁ•¹Á¹hÁhhhhÁÁÁhhhhhhhh¹•h•Áhh•Áhh•hh�Áh••�¹•¹•Áhhc                 0žÙè÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþüóóó÷óóó÷ó÷ó÷óó÷ó÷óèÕ’}sp? !      !    ! !! !!  ! !! !      !! !?pŽ�ÕæúúúúúúúúúúúúúúúúúúýþÿüüúúýúýúûüúýúýúýúúýúýõàÇ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²I²²,DDDDD´´´´´´²´²´´´²´´´´´²´´´²´²´²´´´´²´²´´²´´²´²´²²²²²²²D,,,,,,,XccchccgcdechcccccccchccchccchcccgccgccchccccccccccchccdcchcdcccgccchcchcchcchccgcgdcccchcchchccchccccgcdcchcchcchccchcccccgdcgcdccchccchcdccchccccchcccccchccccgccccchccccX      0cÁ••¹•¹•hhÁ•¹•Á¹hÁhhhhhhÁ¾hhÁhÁhhÁhhÁhhÁhhhÁhhhhhÁhhhhhhhhhÁhhhhhhhÁhhÁhhhhhhhÁhhÁhÁhhhhhhhÁhÁhhÁhhhhhhÁhhhÁhhhÁ•¹�•hÁhhhhh••ÁhhhÁhhhh•¹hhÁhhhÁ•hÁhhhhhhÁhhh¹Á•¹ÁhhÁ�hÁhhhg0                  VÇÚôú÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþüóúóúóúóúóúó÷úó÷óóóò⬒�Žp?   ! !!  ! !   $jŽ��¬æòú÷úúúúúúúúúúúúúúúúúýÿüýúýüúýúüüûüúýúýúýüûú÷àÓf-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,DDD,DDDDDD´²´²´´²´´´´´´´´´´´´´´´´´´²´´²´´´²´´²´²´²´²²²²²IDD,,,,,,,,,XcchcccdcdcdccchchcchcccccccgccchccdccdchhchcchccchhcccgccccgcdcccdcccccccccccchccccdcgcccccccchcccchcccgcdccccccccchccchccdcccdcgcdccchcccgcdcccchhccchcccccchcdcchccccchcX     Xhhhhh�•h•hhhh�¹•Á•hhÁhhhhÁ„¹•ÁhhÁhhÁhhÁhhÁhhhhhhhhhhhhÁhhÁÁhÁhhhhÁhhÁhhhhhhhhhhhhhhhÁhhÁhÁhhhhhhhÁhhhhhhÁhhhÁhhhÁh•¹•hÁhhhhhhhhÁhhhhÁhhh•hhhh¹•hÁhhhÁhhhhÁhhhÁ•hÁ�ÁÁhhÁhhÁhhX                        aÓÚò÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþü÷óóúóó÷ó÷óúóóú÷úóúóòçÕš�Žo?!  ! !     !   ! !!  !=pq�’¬æéú÷úú÷úúúúúúúúúúúúúúýÿýýúúýúûüúýúûüüúúýúüúûü÷æÓ“0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,²DD²,DDDD,D,DI²´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´²´´´²²´²²´²²²²²DD,,,,,,,,, XccccdcgcgcchcccchccchchccdcchcccccgcgcchccccchhchcccgcccgdcccgcdcgcchchcchchcccdcgcgcdcchcchcccchcccgcdcccchcchchccccccchcchccgcccchccchcdccchhchcchcccccchcccdcccccchccccX       chh•¹•¹hhhhh•¹•h�Á¹hhhÁhh¹�Á•¹hhhhhhhhhhhhhÁhhÁhhhhÁhhhhhhhÁhÁhhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhÁhhhhhhÁhhÁhhhhhhÁhÁhhhh•hhhhhhhhÁhhhÁhhhhhhhhh•¹••hhhÁhhhh•¹•Á¹hÁhhh•¹hhhhhhhhÁhhh                   fÓàõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþþúóóúóúóúóóú÷óóóúó÷ó÷òèÕ’�Žso>   !! !   !!    !=lqs�ŸÕæòúú÷ú÷÷úúúúúúúúúúúúúúýþýüýúýúüüúýúüüüûüýúýúüü÷è×�M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,DD,D,,DD´´´´´´´²´´´´´´´´´´´´´´´´´´´´´´´´²´´´´²´²´²²´²²²²²²²IDDD,,,,,,,XcchccgccccdccchccccccccccgccccchcccdccccccgcccccccccdcdcccgcdcdcgccccccccccccchcccdccdcgcccccchcccchccgcchcccccccchcchccccccccccddccccgccgcdcccccccccchcchccchccdgcchccchcX         Mchhhh�Á�Áh¹•¹Á•hhh•Á•¹•hh�¹•�Áh•�¹•ÁhhÁhhÁhhhhhhhhhÁÁhÁhhhÁhhÁhhÁhhhhhhÁhhhhÁÁhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhhhhhÁhhh¹•¹ÂhhhÁhhhhhhhhhhhhh•ÁhhhhhÁh¹Á•hh••hÁhhhh•ÁhhÁhhÁhhhhW                     0‚Óàõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýþüóó÷óóó÷úóóúóúóóóúóúóòèÙ¬’�sp?=!    !      ! ! !   !!    Cps��šÕæò÷ú÷÷ú÷úú÷÷úúúùúúúúúúúþÿýýüúüúýúûüúýúûüüúüúûüû÷èØ�M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,D,D,,D²´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´´´´´²´²´²²²²²²²I²²II,,,,,XcccdccdcgcchccccchcchcccdccchcccddcchcgcdcchccchcchccgcgcchcgcgccccchcchccchccccdccgcdccchchcccchcccdccccccchcchcccccccdcgdcgdcgcgfcdccdccgcgccchcchcccccchccccgccccchccccX       XhhhÁ•¹hhh•Á¾�hhhhhh•h•¹•¹•hÁ¹hÁ¹•hhhhÁhhhÁhhhhÁhhhÁhhÁÁÁhÁhhhhhhhhhhhhhhhhhhhhÁhhhÁhÁhhhhÁhhhhhhhhhhhhhhhhhhh•¹•¹hh•¹•h•�hhhhhhÁ•hhÁh•¹•¹hÁhhhhhhh¹••hhhhhhh•¹ÁhhhhhhÁhhhhhhhhc                     0“×àõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþüúúóú÷óóú÷óóóúóú÷óóúóóóèæÕš��sspC=  !   ! !>opq��’¬æèõ÷ú÷÷ú÷÷ú÷÷úú÷úúúúúúúúúÿþýúüúýúýúüüúýúüüûúýúüüýúèÙ�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDI´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´´´²´²´²´²²´²²²²²²²²I²ID,,,XcchccgcccdcccchcccccccchccdgccchcccdccccgccccchccccccdcccdccccccdccccccccchccchcgccccgcgcccccchcccchccgchcchcccccchchccgcccccdccccgcgccccgccccdgcccccchchccchccccdcccccchcX               XÁhhhÁhÁ•ÁhhÁhh¹•hÁhhhhh•Á�¹•h•�Á•hhh¹•hhhhhhhhhhhhhÁhhhhhhhhhÁhhhÁhÁhÁhÁhhhÁhhhhÁhhhhÁhhhhÁhhÁhÁÁhhÁhÁhhhhÁhhhh•Á••¹Áh•h¹•¹•hh¹•Áh¹•ÁhÁ•Á•hÁhhhhhÁ•hhhhhÁhh¹•h•Áhhhhhhhh¹•¹•hhhM                  0–׿÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üþüúóóóúóóó÷úóóúóó÷úó÷úó÷óòèæÓ’�ŸŽqpj>=! !  !! !! !     !   =>lpqs  ’¬äèò÷ú÷ú÷÷ú÷÷ú÷úú÷÷úúúúúúúúýþþýúüýüúýúýúûüúýúûüüüüûúúëÙ�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,,,D,´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´²´´´´²´²´²²²²²²²´²I,,,,,XccccccddcgchcccchccchcccgccchccccgcccccccccccccchccgccdcgcdcgcdcgcccchchccccccccccddccdccccccccchccccdccccccccchcccccdccgchccgcdcccccccdccccgcccchchccccchccchcgccccchccccX            Mh•¹hhhÁhhhhhhÁ•hhhÁhhhhh•¹•h•¹•¹h•¹••hh¾hhhÁhÁhhÁhhÁhhhÁhhÁhhÁhÁhhÁhhhhÁhhhÁhhÁhÁhÁhÁhÁhhhhÁhhhÁhhhhhÁhhÁhhhhhhhhhÁ��Áhh•Á�„¾••hhh•hhhÁhhhhhhÁ•¹hhÁhhhhh•¹�•hhh•¹•¹�h•¹•Á�•ÁhhhhX                      0–׿÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýþüúóóúóúóóú÷óóúóó÷óóúó÷úóóòèæÙ¬’�ŽŽ}ssp??>===!!!!   !    !!!!!! !! !!!! !!! !!!==?lpwqqŽŽ�‘¬Ùæèòõ÷÷÷÷÷÷ú÷÷ú÷÷ú÷÷úú÷÷úúúúúýÿýýüúýúúýúýúüýúýúüüüúýúüúõÙž\-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD´´²´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´²´²´²´²²²²²I²´²,,,,,XcchccdcgccccccccccccccchccchccchcccdccccccccccchccccdcccccgccdcgccccccccccccchcchccgcgccdcchcchccccgccgcdcgccccccccccgcdcccccccgcccdcccccccccccgccccccchccccccccdccccccchcX       chhh•ÁhhhÁh¹•hhhhhhhÁhÁhhhh•hhhh•�¹•hÁhhÁ„¹•hÁhhÁhhhhhhÁhhhhhÁhÁhhÁhÁhhhhÁhÁhÁhhhhhhhhhhhÁhhhÁhhÁÁhhhÁÁhhhhhÁhh¹•h¹•¹Áh¹•hh¹•h¹„Áhh¹•ÁhhÁhhhhhhhh••hÁhÁhh¹••¹•hhhh�•hÁ¹•Áhh¹•¾„¹Âc                      V�Úæ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþüüóó÷óóúóó÷÷óóúóúó÷úóó÷ó÷óóóòèæÙ¬¥’���Ÿ’Ž}sppppppppppps}qqopppppppppppppq}q}}qwsssqs}qppsq}qpqpqppqqqpqq}}}pppppppqqp}}}qppp}qpppqqppqw}ppp}}popp}}pqsqpmp}}}}qpq}qq}}}qppq}}qppqsppppqppqps}}ppqpqwqpqpppppq}qpps}w}qpqppppqs}pmpqq}}qqpppqoopppoppsqq}qpps}}}}qp}qpsq}qpp}qqqppq}qqqqpppqqq}}}qpqqpq}}qppqpppqsqqpppoopqppoppqqpq}qppq}wooppqq}qppoppqpq}}qpppppq}qpp}pqps}}}ppppsqpqqqqpqppqqpqpppppsqqpqqspqw}}ppppqppp}}qqs}ppqpppps}spp}}qppqpppppspq}}}w}}pqq}qpopppppq}}ss}}qqpppswpq}}q}}qqppqqpqpppqqppq}}}pppqqpppq}sppssppnwŽ}}}}qqppppq}pqŽpq}ppmq}qppp}}}}}ppqsq}}qpqwŽ}}qppppppppppppqwqppppppopppppppp}qq}qqws}qqwsppqwq}qqpqppqqqqpqq}Žwopqppppsqp}Ž}qppq}pqppqppqp}sppq}spppq}qqqqppmp}}}}qp}wqq}}qqpp}}}sqs}ŽsŽ���’¬Õææéò÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷úú÷÷úúúúúúÿþüüúúýúýûüúûüúúýúüûüúýúý÷õÚÇ^,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,D²D´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´´´´²²´²²²²²²²I²IID,,,,XcccccgcccccccchccccccccchcccdcccccccccccchccccccccccgccccccdcgccdccccccchccccccccdcccdccgccccccccdccccccccccccecccccccgcchcdgccccccccccccdcccccdcccchcccccchcdccccccccccccX         0chhhÁhhhhÁ•hhhhhÁhhhhhhÁhhhhhhh•¹•hhhh•Á¹•hhhhhÁhÁhhhhhhhÁhhhhÁhhhhhhÁhhÁhhÁhhÁhhhÁhhhÁhhÁhhÁhhhhÁhÁhhhhhhÁhh••hh•h•hh••¹h•hhÁ•¹hÁ•hÁhhhhùhhhhhÁ¹hhhhhÁ•hhhh•¹•¹•¹hh•hÁhh•h•¹�hhhW                 \�×èõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýþüúóú÷óóúóúóúóóóúó÷óúóúóú÷÷óóóòñéèææÙÕ¬ª¥’’Ÿ�ŸŸ�� �Ÿ��ŸŸŸ�Ÿ �Ÿ�Ÿ�Ÿ �Ÿ�� � � ��Ÿ �Ÿ� �� �Ÿ �Ÿ �Ÿ� �Ÿ  �    ŸŸ�Ÿ��� �Ÿ      �ŸŸŸ � � ��Ÿ  �Ÿ  Ÿ�Ÿ�Ÿ Ÿ�Ÿ�Ÿ��ŸŸŸ  �Ÿ  �ŸŸ   �     �ŸŸ � � � � �   �Ÿ��  �Ÿ � � � �Ÿ�Ÿ Ÿ Ÿ �Ÿ�� � �Ÿ��ŸŸ�  �Ÿ� ���Ÿ�Ÿ��Ÿ� � � �Ÿ    �Ÿ � �Ÿ ŸŸ�Ÿ � Ÿ �  �Ÿ �Ÿ��       � Ÿ��   � �Ÿ�   �Ÿ��Ÿ� �Ÿ��Ÿ�Ÿ�Ÿ�Ÿ Ÿ��  �Ÿ� �   �Ÿ��Ÿ�Ÿ� ¢�Ÿ�Ÿ �  �Ÿ�  ��Ÿ   �Ÿ�ŸŸ  �Ÿ Ÿ � � �   Ÿ�Ÿ�  � �   �   Ÿ ��ŸŸŸ�Ÿ   �  Ÿ Ÿ �Ÿ  �Ÿ�   Ÿ �Ÿ��Ÿ�  � ¢    �Ÿ�Ÿ ŸŸ�Ÿ �Ÿ�   �    Ÿ� � �Ÿ       �Ÿ�Ÿ ��Ÿ� �Ÿ��     �  Ÿ��Ÿ�  �ŸŸŸ�� ’      Ÿ���  �Ÿ¢Ÿ  �Ÿ��ŸŸŸ�Ÿ     �Ÿ� �  Ÿ � ’  Ÿ�Ÿ�Ÿ�Ÿ�Ÿ�Ÿ��   Ÿ� �Ÿ�ŸŸ�ŸŸŸ�Ÿ��ŸŸ  � �  �  �Ÿ�  � � � � �ŸŸ �  ¢ Ÿ��Ÿ��� �ŸŸ’  �Ÿ�  � �  Ÿ� � �Ÿ�Ÿ ��Ÿ�� ��  ��ŸŸŸŸ Ÿ�Ÿ  �   � �  ¢’’¢¥ª¬Õäæèèèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ú÷÷úú÷÷úúþþýýúýüýúüúüúüüûýýúýúüûüúýúõÙÊ`-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,I²´´´´´´´´´´´´´´´´´´´´´´¼´´´´´´´´´´´´´´´´´´´´´²´²´´´²²I²²DD²D,,Xcchccccc cccccX               ThhhÁhhÁhhhÁhhhhhhÁh¹•hhh¹•hh¹•hhhÁ�ÁhhÁhÁ•hhhhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhÁhÁhÁhhhhhhhhhhÁhhhhhhhh�ÁhÁhhÁh•�¹•hhÁhhhÁ•�¹•hhÁ•hhhhhhhhhhhhh•Á•Á•hÁhÁhhhhh•¹•hc                V�׿õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷üþþüóó÷úóóó÷óóúóó÷óúóó÷ó÷óó÷úúóúóóóóòòòèèèèèèèæææèææææèèèæææææææææèæææèæèèæèèèèèèèèèæèæèèèèèèæèæéæèèèèèèèèæèæææèæèèèéèèèèèæèèèèæéèèèèèèèæéæèéæèèèéèèéèéèééèéèèééèéèééèéèéééèéèéééèéééééééééééééééíéééééééíéíéíéíééééééééííííííííííííííííííííííííííííõíõííííõõõíõíõõíõõíõíõíõõõíõõõõõõõíõíùõõõõõõõõõõõíùõõõíùíõõõõõõùíùíùõùíùõõùõùõõõõõùùõõùíùõùõõùùõùùõùùùùùùùùùõùùõùùùùõùùùõùùùùùùõùùùùõùùùùùùùùùùùùùùùùùùøùùùùùùùùùùùùùùùùùõùùùùõùõùùõùùùùùùõùõùùõùùõùùõùùõùõõùùõõõõõíùíùõõùõõõùõõõõíùíõõõõõõõõõõíõõõõíõíùíõõííùíõíõíõíõííííõííõííííííííííííííííííííííííííííííííííííéííííííííéííííéëéíëééëéíéééííéèíèííëééæéæééæíèëéíèéèëéèíèëèèëèéæéèèíèéæéæèèëèèèèèæèæëææêèææéæèæææææææææææææææææææææææææææææææææææææææææææææææææææææèèèèéèòòòó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ú÷÷úúþÿþýüúýúûüüúýúýúûüúúüúýúüúý÷ëÙÇ`-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,´´D´´I´´´´´´´´´´´´´´¼´´¼´´¼´´´´´¼´´´´´´´´´´´´´´´²I²´´´²´´²´´²´IDI²D,,,XccccddcccccccW                XhhhhhhhhhhhÁ•¹Á•¹�••¹Á�••¹�••¹h•¹•¹hhhhhhhhhhÁhhhhhhhhhÁhhhhÁhhhÁhÁhhhÁhhhhÁhÁhhhhÁhhhÁhhhhhhÁhhhhhhhhhhÁhh•¹hhÁhÁhhhÁ•¹ÁhhÁhhh•¹•hhhhhhhÁ¹Á•hÁ�hh•¹hÁ•¹•¹�hhhhhhhhhhhhhhhh•¹Á�h•¹„M                       U�×àõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷÷úüÿüüóó÷úóúóúóóúóúó÷÷úóúóúóó÷óóúóú÷úó÷óúóú÷÷óúóúúóúóúó÷úóúóúóúóúóúóúóú÷÷óú÷÷úó÷÷÷÷óú÷úó÷÷÷÷÷ú÷ó÷ó÷÷óó÷÷÷óúóúúúúúú÷úó÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüüúüúüúúúúüúüüúüüüúüúúúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýüýýüüýüýýýýýýþýýþþýþþüýþýþþþþýüýþþþýþþýþþþþþþþþþþþþþþþþþÿþþþþþþþþþþþþþþÿþÿþþÿþÿþÿþÿþþþÿþÿþþþÿþÿþþÿþÿÿÿÿÿþÿÿþÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿÿþÿÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþþþþÿþþþþþÿþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþþþþþþýýýýýýüýüýýüüýüüüüüüüüüüüüüüüüüüüüúüúúúúúúúúúúúüûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúùúú÷÷ùóùúõúõúõõúõóõóõòúòõóõ÷÷÷õúõ÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷úúýÿþýüüûüüüüûúüûúýüüúüüûüúýúýúèÙÇ`-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,²´´´´´´´´´´´´´´¼´´¼´´´´´´´´´´´´I´´´´´´´´´´´´´´´´´´´´´´²´´I²´D²´D,,,,,,,XccccgccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX            0ghÁhhh¹•hhhhhÁh•ÁhÁ¾Áh•¹•¹•ÁhÁh•hhÁh•hÁhhhhh¹•ÁhÁhhhÁhhÁhÁhhhhhhhhhhhhhhhhÁÁhhhÁhÁhhÁhhhÁhhÁhhhhhhhhhÁhhÁhhhhh•�¹•hhhhhhh•hhhhh¹Á�Á�¹•¹•hhh�•Áh¹Á¹ÂhÁ•�¹•�•ÁhÁ¹•hhÁhhhÁhhhhh¹•Á•Á¹•�c               U–×àò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷úýþüüóó÷óóó÷úóóó÷óúóó÷úóó÷óúó÷úóóó÷óúó÷óóóúóúóó÷óúó÷ó÷ó÷ó÷ó÷ó÷ó÷÷óúóóóúóóó÷÷óúóóúóó÷÷óúóóúóó÷ú÷ó÷÷úóóóúó÷úóóó÷óóóúóúóúóúóúóúóúúóúúúúúúúúúúúúúúúúüúúúúúüüüüúüüúúüúüúüüüüüüüúüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüýüýüüüþüýüýüüýüýýýüþüýüþýþýýýüþþþüþþþüþþüÿüÿüÿüþþÿüþþþþÿýþþÿþÿþÿÿþÿþÿþÿþÿýþÿþÿþÿþÿþÿþÿÿþÿþÿÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿÿÿÿþÿþÿþÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿþÿþÿþÿþþþþÿþþþþþþþÿþþþþþþþþþþþþþþþþýýþþþýþþýýýýýýýýýýýüýýýýýýýýüýüüýýüýýüýüþüýüýüýüüüüüüúýüüüüýüýüýûüýúýüüúýúúüüüúýúúýúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúùúúõ÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷õõ÷óò÷óòõ÷÷÷õóòó÷óõóóõ÷óõóõóõóõóò÷õó÷ò÷÷õó÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úýÿþýúüúýüüüúüüüûüüúûüüûüüúýúý÷èÚ�\-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D´´²´´´´´´´´´´´´´´´´²´¼´´´´´´D,´´D,D´´¼´´´´´´´´´´´´´´´´DI²´D,,,,, XcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX                 Xhh•¹••hhÁ•¹hhhhÁ•¹„hh•¹�hhhhhh•¹�hhhhhhh•¹•ÁhÁhhhÁhhhhÁhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁh•¹hh•¹•hhhhÁhhhhhÁ•¹�•h•¹Áh•�hhÁ•¹•¹h•Á•hhh•¹•h•¹hhh••¹hhhhhhhh•¹•ÁhÁhh•h•¹c0                         M”Óàõ÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷õ÷õ÷÷óõ÷÷÷úüÿüüóúóúóóóú÷úó÷óúóóóúóúó÷óóú÷úó÷óúóúóú÷ó÷óúóúóúóúóúóúóúóúóúóóúóúóú÷÷úóúóú÷ó÷óúóúó÷óóú÷óúóóóúóóóúóú÷÷ó÷óúúóúúóúóúúóúóúóúúúóúúóúóúóúóúúúúúúúúúúúúúúúúúúúüóüúúúüúüúúüúüúüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüýüüþüüýüþüþüþüüýþüþüþüþüþüþþüþüþüþüÿüþþþüþýþþþþþþþÿþþþþþþþþþüþüþþþþýÿüÿüÿþþþýÿüÿüÿþÿþþÿþÿýÿþÿþÿþÿÿþÿþÿþÿþÿÿÿþÿþÿÿÿÿÿÿþÿþÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþþþÿþþþþþþÿþÿþþþþþÿþÿþþþþþþþþþþþþþþþþþþýþþýýýþýýýýýýýýýýýýýýýýýýýýýýýüýýüüýüüýüýüýüýüýüýúýüûýüüüýúüúýúúüüûúüúúúüûúýúúûúúúûúúûúúúúüûúúúúúúúúúúúúúúúúúúúúúúúùúúú÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷÷õóõóõóõóõ÷ó÷õ÷÷õ÷÷õ÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úýÿþýýúýûüûúýúýúúüüýúüüúüüûúüúý÷è×�\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,ID´´D´´´´´´´´¼´´´´´´¼DD´´´´´¼²,DDD´´´´DD´´²D´´´´´´IDIDD,,,,,,,,XccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX             chhhh•hhhhÁh••hhhhh•h¹•hh•¹•hhhhh•hhhhhhhhh•hhÁhhhhhhhÁhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhh¹•h•�¹•�¹•hhhhhh¹•hhh•¹•hhh•h¹•hhÁh•hhhhhhhhhh�hhh•hhhhh•hhhhh¹•hh•hhÁhhh¹•h•X               0“ÓÙñ÷÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷÷÷÷÷õó÷õ÷÷÷úüÿüúóó÷÷úóóó÷óúóóúó÷óó÷óúó÷óó÷óúó÷óúóóúóúóó÷÷óó÷ó÷ó÷óúó÷óúó÷÷÷óúóóóúóóóóó÷óúó÷ó÷óúóóó÷óóú÷÷úóúó÷óóóúóúóúóúóúóúóúúóúúúóúóúúúúúúúúúúúúúóúúúúúúúúúúüúúúúúüúúúüúúúúüúúúúúüúüüúúüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüþüþüüýüüþüüýüýüýüþþüþüþþüþüþþþþüþþþþþþüþþüþþþþþþþþþþþþþþþþþþþþþÿþÿþþÿþþþÿýÿüÿþÿþÿþÿþÿýÿþþÿþÿþÿþÿþÿþÿþÿþÿÿÿþÿÿþÿþÿÿÿþÿþÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿþÿýþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþýýþþþýýýýýýýýýýýýýýýýýýýýýýýüýüüýýüýýüýüýüýúýüýúýüüüüüýúüüýüúüüýúüüüüüüûüüúüüüüúýúüúüúûüúúúúûúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷õ÷÷÷÷÷÷õóõ÷óõóõóõóõ÷õóõ÷÷ó÷÷÷÷õ÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýÿýýüúýüüüüüüúýúýüûüúüûüüûüüüûü÷æÓ�U,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D²´´´´DD´´´´´´´´´´DD´´´²´I´´DD,DD,D´´´´,I´´´´²´DDDD,,,,,, XccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX                   MchhhÁhhhhÁh¹hhhhh•¹�ÁhhhhhÁhhhhhhhhh•¹•¹hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhÁhhhhÁhhhÁhhhhhhÁh•¹�•h•¹Á•hhÁhhhh•¹�•ÁhhhÁ�hhhhhÁ�hhhÁhhhhhhhhhhÁ•¹hhhÁhhhhhhhh•¹••hhhhhhhhhh•hh•¹c                       0fÓÚè÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óõ÷÷÷õ÷óõ÷÷õ÷úüÿþüúóóóú÷úóóóúóóúóúó÷óúóúóúóóúóóóúó÷ó÷÷÷óúó÷úóúóúó÷óúóóúóóúó÷óúóóúóúóúúó÷÷óúó÷ó÷úóúóúóóóó÷ó÷ó÷ú÷óúóúóúóúóúóóúóúóúóúúúúóúóúóúóúúúúúúúúúúúúúúüúóüúúúúúúüúúüúüúúüúüüúüúúüüüúüúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüüüüüþüþüüþüüþüþüüþüþüþüþüþüþüþþþþüþþþüþþþüþþþþþþþþþþþþþþþþþþþþüþþþþüÿþþüÿüÿþþþþþþÿþþþÿþÿþþÿþÿþÿþÿþÿþÿÿþþÿþÿþÿÿþÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿÿÿÿþÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþþÿþÿþþþþþþþýÿþÿþþþþÿþÿþþÿþÿþþþþþþþþþþþþþþþþýýýþýýýýýýýýýýýýýýýýýýýýýýýüýýüüýüüýüýüýüýúýüýúýüýúýúýúýúüýúýúüýúüúúüüúúüúúúúúúüúûúüúúüûúúúúúûúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷ú÷÷÷÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óõóõóõ÷÷õóõóõó÷õ÷÷òó÷óõ÷õóõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ýýÿþýýüûüýúýúýúýúýúüúüúýúüýúüúúüüõàÓ�M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD´´´´´DI´´´´´´´D´I´´DD,²´DDDD,DD´´D´D,,,,,XccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX             WhhhhhÁhhhhhh•Áhhhhh•¹•hhhhh•hh¹Âhhhhhh•Á••¹•hh�Á¹•¹•h¹•hh¾„¹•hhhhhhhhhhÁhhÁhhhhÁhhhhhhhÁhhhhhhhÁhhhhÁhh•¹•hh•h¹•hhhÁhhh•¹•Áhhhh¹•hhhhÁ¹•hhhhhÁhhhhh¾h¹••hhh¹•h¹Âhhhhh•hÁhh¹•hh�ÁhhhhhhhW                       aÓÙèõ÷÷÷÷÷÷÷õ÷÷õ÷÷õ÷óõó÷÷õ÷÷÷ó÷õ÷÷üýÿüüóóóó÷úóó÷úóó÷óú÷ó÷óúóóúóóú÷óóóúóóúó÷úó÷ó÷úó÷óúóúó÷óúóúó÷óúó÷óóúóóóúóúóóú÷ó÷úóóóóúóúóúóúóóóó÷óóúóúóúóúúóúóúóúóúóúóúúúúúúúúóúúúúúúúúúúúúúúúúúüúüúúúüúúüúüúüúúüúüüüúúüúüüüüüüüüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüþüüüþüüüüüþüüþüýýýýýüþüþýþýþýþýþýýýþþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþþþþÿüÿüÿþþþÿþÿþþÿþþþþþÿþÿþÿþÿþÿþÿüÿÿÿÿÿþÿþÿÿÿÿþÿýÿþÿþÿÿÿþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿþÿÿþÿþÿÿþÿÿÿþÿÿÿþÿÿþÿþÿþÿþÿþÿþÿþþÿþÿÿÿþÿþÿþþþÿþþþþýþþþþýþþþþþþþþþþþþþþþýþþþýþýýýýýýýýýýýýýýýýýýýýýýýüüýýüýýüýüýüýüýüýüüüýúýüüüýúýúüüúýúüüúýüúúüüûüüüüüúúüúüúúúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúúúúú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷õ÷÷÷÷÷÷óõó÷÷õóõò÷ò÷÷õ÷õóõó÷÷÷÷õ÷õ÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýÿþþýýüüúýúüüúýúüúýúýúýúýúýúúüûüýúõÚ×–M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD´´´´´´´´´´´´´´´I²´´´,DDDD,DD´DDD,DDDD,,,  WccccccccccccccccccccccccccccccccccccccccccccccccccccccccccXcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccXcccccccccccccccX          chhÁhh•¹hhÁhhhhÁhÁhh•hhhhhÁ•¹h•hhh•¹hhhÁh¹�Á•¹Á„Á�•hh••Á¹„hÁ•¹hhhh•¹hhhÁhhhhÁÁhhhhÁhhÁhÁhÁhhhhÁhÁhÁhhhhh•hhhhh•hhhhhhh•¹�hhhÁhh•hhhÁhh•hhhÁhhhhÁh¹„h•hhhhÁ•hh•hhhhhhhhÁh�•ÁhÁÁ¹•¹hhhhhÁc                                   \ž×àò÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷òõ÷òóõ÷ó÷úüþÿüúúóóóúóóóúó÷óóúó÷óóúóóúóó÷úóóú÷óúóóúóúóóúó÷óóóúó÷óóóúóóóúóú÷óóú÷óóóú÷óóúóóóú÷÷÷ó÷óó÷ó÷ú÷úóú÷óúóúóúóóúóúúúóúúóúúúóúóúóúúúúóüóúúúúúúúúúúüúúúúúúüúúüúúüúüúúüúüúúüüüüúüúúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüüþüüþüýüýüüüþüþüþüþüþüþýþýþüþüþþþüþþþþþþüþþþþþþþþþþþþþþþþþþþþþþþþþüÿþÿþÿþþþþþþÿþÿþÿþþþþÿþÿþÿþÿþÿÿþþþþÿÿÿÿüÿýÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿÿÿþÿÿÿÿþÿÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþþþýÿþþÿþÿþþþÿþÿþÿþþþÿþþþþþþþþþþþþþþþþýýýþüÿýþýýýýýýýýýýýýýýýýýýýýýýüüýüüýüýüýüýüýüýüýüüüýúýúýüüýúüüüýúüüûüüüúüúúúûúýúúüûúýúúúúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷ú÷÷÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õ÷õ÷÷õ÷õóõóõóõóõ÷ò÷÷÷õ÷õ÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ýþÿþýýýüúüûýüüýûýüüûüüûúýúüûúýúýúüû÷èÙÊ�0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D´²´´´´´´´´´´´¼´´´²,´ID,D´I,D,,,, XccccccccccccccccccccccccccccccccccccccccccccccccXcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccXcccccccccccccccccccccccccW             MchhhÁhhh••Áhhhhhhhhhhhhh¹Ãghh•hhhhhhÁ•hhÁhÁ•¹•�¾h¹•ÁhÁhhh•¾hhh••¹•¹•••hhhhhhhhhhÁhÁhhhÁhhhÁhhhhhhÁhÁh¾ÁhhÁhh¹•hÁhhh�¹•hh•¹•hhÁhhhhhhÁhhhhhÁhhhhhhhh�¾hhhhÁhhhhhhhhhhÁ¹•hÁhÁ¹•hh•h••ÁhÁhhhM                      U›×Úè÷÷÷÷÷÷õ÷õ÷õóõ÷õ÷÷÷õó÷óõ÷õóõ÷õó÷÷üýÿüüüóó÷úóó÷óúó÷óú÷úóóúóóúó÷úóóóúóó÷óóó÷úóóú÷úóó÷óúóúóóú÷óóóóúóóó÷úóóóúó÷óúóóóúóúó÷úóúóóóó÷óóúóúóúóúúóúó÷óúóúóúóúúúúúúúúóúúúúúúúúóüúúúúúúúúüúüúúúúúüúüúüúüúüúüüúúúüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüýüüüþüüüüüüþüýüüþüþüþýýýýþýýþüþýýþüþþþþýþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþþþþþÿþÿþÿþþþÿþÿþÿþþÿþþþÿþÿüÿÿÿÿÿþþÿþÿÿÿýÿüÿþÿþÿÿÿÿþÿþÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿþÿþÿÿþþÿþÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿýÿþþþþþÿþþþþþýþþþþþþþþþþþþþþþþþþþþþþþýþýýýýýþýýýýýýýýýýýýýýýýýýüýýüýýüýüýüýúýüýüýúýüüüýüýúýúüüýúüúýúýüúüúüúýüýüúüúúúüúúúúûúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷ó÷ó÷÷õó÷÷÷óõó÷ò÷òó÷õóõóõó÷÷õó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýýÿþþýüüüüüüýüüúûüüüúûüüúüüúýúüüúýúýú÷àØÇ\-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI´´´´´´²D´´´´´´´´´´´,DDDD,D,,D,,,  XccXccXcccccccccccccccccccccccccccccccccccccccccXccccccccccccccccccccccccccccccccccccccXcccccccccccXccXcccccccccccccccccccccccccccccccccccccccccXcccccccccccccccccccccccccbX                   Xhhhhhh•¹ghhÁhhhh•¹•¹•¹�•hhhhhhhhhhhhhhhhhhhh•¹hÁ�•¹hhhhhh•¹�hhhh•�•¹hhhhhhhhhhÁhhhhhhhhÁhhhÁhhhhhh•¹„•¹hhhh•hhhh•¹Áhhhhh•hhhhhhhhhhhhhhhhhhù•¹�h•¹•¹hhhhhhhhhhhhhh�•hh•¹„hhhhhhhhhhhhhhhX                           0fÓÙèò÷õ÷÷÷÷÷ó÷÷÷óõóõóõ÷õ÷÷òóõ÷ò÷÷õ÷÷÷úüüþÿþüúúóúóóúó÷óóóúóó÷÷óúóó÷úóóóúóúóúóóú÷óóóúóúó÷óóú÷óóúóú÷óúóúóóóúóóúó÷óóú÷óóóúóóóó÷úóúóú÷óóóúóúóó÷÷óü÷úúóúüóúóúóúóúúúúúúóúúúúúúúúúüóüúúúúúúüúüúúüúúüúüúúüúüüüüúüúüúüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüþüüþüüüýüþüüýüýüýüüüþüýýýýýýýþýýýýþüþþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþþþþþþÿþþÿþþþÿþÿþÿÿþÿþÿþÿüÿýÿþÿÿþÿýÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþþÿþþþþþþþþþþþþþþþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüýüýüýüýúýúýüýúýüýúýüüüýúýúýúýúýúúýúýúüúúúúüúýúüûúýúüúúúúüûúúûúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷ú÷ú÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õ÷õ÷ó÷õóõ÷õó÷õ÷õ÷õóõ÷÷÷÷÷õó÷õ÷÷õ÷÷÷õ÷÷÷÷÷üýþÿþþýýüüúýúýúýúúýüüýúüüüûúýúýúýúýúýúüúõÚÓ–U,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD´´´´´D´´´DDD´²D,DDD,,D,, ,XcccccccccccccccccccccccccccccccccccccXccXccccccccXcccccccXccXccccccccccXccXccXcccccccccccccccccccccccccccccccccccccccccccccccccccccccXccXccccccccXcccccccXccXccccccccccXccX              chÁhhhhhÁ„Áhhhh¾„¹•�•h•Á¹•hhhhh¹•¹ÂhhhhÁhhhhhhhÁhhÁh•hh¹•¹•Á„¾Áhhh¹•h•hhhÁhÁhhhÁhÁhhhÁhhhhhhhhhhhhhhh•¹••hh¹•hÁhhhh•ÁhhhhhhÁhhhhÁh¹ÃhhhhÁhÁhhh�•hÁ¹•h••Áh¹•hhhh¹•¹Âh¹•¹Áhh�¹•hhÁh¹Á�¹•¹•hhc                                     ^ž×àñ÷÷÷õ÷÷÷õ÷õ÷÷÷÷õóò÷ò÷÷õóò÷òõó÷õ÷õ÷÷úúüýÿþþüüúóóú÷úóó÷úóóúóóúóóúóúó÷óóó÷úóóúóúóóó÷óúóóóúóóúóó÷óóó÷úóóúóó÷úóúóóúóúóóú÷úóóúóóóó÷úúóúóúúóú÷÷óóúúóóúóüóüóúúúóúúóúúúúúúúúúúóüúúúúüúüóüúúúúüúüúúüúüúúüúúüúüúüúüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüþüýüüüþüýýýüþýþýýþýüþüþüþþýþüþþýþþþþþýþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþþþþþÿþÿþÿþþþÿþþÿþþÿþþÿþþþÿþÿÿÿþÿÿÿþÿÿÿÿýÿþÿÿþÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿÿþÿÿÿþÿþÿÿþÿÿþÿþÿþÿþÿþþÿþÿþÿþþþþþþþþþþþþþþþþþþþýþþþþþþþþþþþþþþþþþþþþþýþþþýýþýýýýýýýýýýýýýýýýýýýýýýüýýüýüýüýüýýýüýüýüûüüüüúýúýúýúýúýúüýúüúýúýúýúýúüúúúüúúûúúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷ú÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õó÷÷ò÷÷õóò÷óõ÷òóõ÷õ÷÷÷÷÷÷÷÷÷÷÷÷úüýÿÿýþýüüýüüüýüüýúýúýýúûüúýúûüüüúüúýúýúýúý÷ë×Ê‚0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D´´DD,D²I,,DD,,,,    XcccccccccccccccXccccccccccccccccccccccXcccccXccccccccccXccXccccccccccccccXcccccccccccccccccccccccccccccccccccccXccccccccccccccccccccccXcccccXccccccccccXccXcccccccccccccccX                 MhÁhÁhhhhhhhhhhÁhÁ•¹hhhh•Á•¹•¹�•h�hh•¹•¹�hÁhh•¹„hhÁh•¹�•�h•¹hhhhÁh•hhhhhhÁhhhÁhhhhhÁhhhhhhhhhÁhhhhÁ•¹�hh•¹••hhhhhhhhhh•¹•¹hhhhhÁh�•hÁhhhhhhhhhhÁhÁ•hhhhh•Áhh•¹••h�h�Áh•�•¹Á•hh•¹�•ÁhÁ�•hhhhhW                        U–×Úèõ÷÷óõ÷óõóõóõ÷óõ÷óõóõóõ÷÷÷óõó÷ó÷÷÷õ÷÷÷÷úüþüÿÿÿþüüúúúóúóóúóó÷÷ó÷óóúóú÷óóú÷óóóúóúó÷óóúóóú÷óóúóúóúóóúóóú÷óó÷ó÷÷óóó÷÷óóóú÷ó÷úóúóóóúóúóóóúóúúúúóúúóúóúóúúóüóúúúúúúúóúúúúüúóüóüóúúüúúúüúúúüúüúúüúüüúüüüúüüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüþüüüüüþüüüüýüýüüýüüþüüýüýüýýþýþýýýüþþþüþþüýþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþþþþþþþÿþþÿþþÿþþþÿþþÿþÿþÿüÿþÿüÿþÿüÿýÿÿÿÿþÿÿÿÿÿþÿÿÿþÿþÿþÿÿþÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþþÿþÿÿÿÿÿþÿþÿþÿþÿþÿýÿþÿþÿþþþþþþþþþþþþþþþþþýþýýýþýþýýýýýýýýýýýýýýýýýýýýýüýüüýüýüýüýüüüýüýüüüüüûýýüýüüüüüüüüýúýúüúüúýúüúüúýúüúýúüúúüúúúýúúûúúúúúúúúúúúúúúúúúúúúúúú÷÷÷ú÷ú÷ú÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷÷÷÷õ÷÷÷òóõ÷õ÷õóõ÷÷ò÷óõ÷÷÷÷úüýýÿÿÿþýýýýýüýüüúýúüúýúüýúýúüýúüüüüüûúüýúüûúüûú÷à×Ç\-,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD´DDDDDD,,,,,,,XccccccccXcccXcccccXcccccccccccccccccXccXcccXccccccccccccXccXcccccccXcccXccXccccccccccccXccccccccccccccccXcccXcccccXcccccccccccccccccXccXcccXccccccccccccXccXcccccccXcccXccX           cdhhhÁhhhhhhhhhhhhhhhÁhhhhhh�•„¹•h¹•h�Á•„¾Áhhhh•�¹•¹Á�h¹•¹�h�Áhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhÁhhhhÁhh¹••¹•hhhhhÁhhhhhhhhhh�••hhhhhÁh¹•gÁhhhhhhhhhhhhhhhÁhh¹hhhhh•hhh¹•¹•h¹•h•hhhhh•¹•hÁhh¹•hhhc                                   0‚ÓÙàòõ÷÷÷÷÷÷÷÷÷ò÷óõ÷ò÷óõóõóõ÷÷õ÷õ÷õ÷÷÷÷÷÷÷÷÷÷÷÷úüüþÿÿÿÿÿÿÿþÿþÿþÿþÿþþÿþþÿÿüÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿÿþÿþÿÿþÿþÿþÿþÿþÿÿþÿÿþþÿüÿþÿÿþÿþÿþþÿþþÿþþÿþþÿþÿþþÿþþþÿþþÿþÿþþÿþÿþÿþþÿþþÿþÿþþÿþÿþþÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿÿÿÿÿÿÿþÿþÿþÿÿþÿÿþÿÿÿÿþÿÿþÿþÿÿþÿÿÿþÿþÿþÿÿÿÿÿÿþÿÿÿÿÿÿþÿþÿþÿþþþþþþþþþþþþþþÿÿÿþÿþÿþÿþÿþÿþÿÿþÿþÿþÿþÿþÿýÿýÿýþþþþþþþþþþþþþþþýýÿýþþþþþþþþþþþþÿÿþÿÿÿÿÿÿþþþýüüúýüüüúüüüúýüüýûýüýûýúýýûüüûüúúüüüûúýúüüúúèÚÓ�M,,,,,,,,,,LXcbccRKRLM,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDD,,,D,,,, , WcccccccccXcccccccXccccccccccccccXccXcccccccccXccccccccccccccccccXccccccccXccccccccccccXccccXcccccccccccccXcccccccXccccccccccccccXccXcccccccccXccccccccccccccccccXcccccccXcX         chhhhhhÁhhhhhhhhhhhhhhhhhhhÁ•¹�hh•h¹•¹�¹hhhhÁh•¹h•�•¹„ÁhhÁhhhhhhh¹hh�•hhhhhhhhhhhhhhÁhhÁhhhhhhh¹�h•hh•hhhhhhhhhh•¹hhh•¹•¹Áh•¹hhhh�hhhhhÁhhhhh•¹hhhhhhhh•�hhÁhhhhh•hh•¹�hh•¹hÁhhh•hhhhhÁhhÁhhhM                        \�ÓÙèòõóõóõ÷õ÷÷õõóõ÷õ÷ò÷ò÷óõ÷÷÷÷÷óõóõóõ÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷úúúüúüúüúüüúüüúüüúúüüúüüüüüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüüüüþþüüþüþüüþüþüþþüþþþþüþþüþþþüþþþþþþþþþþüþþþþüþþþþþþþþþþþþþþþüÿþþþþþþüÿþüÿüþþþþþüÿüÿüþüÿüÿüÿþþþþþþþþþþþþþþþþÿüÿþÿþÿþÿüÿþÿþþÿþÿþþÿþþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿþÿþÿþÿþÿþþþÿþÿþÿþÿþþþþþÿþÿþÿþÿþþþþþþýÿþÿþÿþþÿýÿþþþþþÿþþÿþÿþþÿýþýÿýÿþÿþþþþþýÿýýýýþýÿþÿþþþþþÿþÿþÿþÿþÿþÿþýýýþþþþþþþþþþþþýþýþýþýýýýýþýþýþþþþþþþþþþþþþþþþþþýþþþþþýÿþýþýýýüýýüüüüüüýýüýýýüüüûýüýúýüüûüüüüûúüýúýúüüüüûüýúüúüýúüûúõà×Êf0,,,,,,,,,0XXXXcXh¹¶¶»¶»¶»»»»·¶¹µRJRKM0L0M,,,,,,,,,,,,,,,,,,,,,,,D²D,,,,,,,,,,  XcccccXcccccXcXcXcXYXccccccccXcccccccXcXccXcccXcXccYccXcccXXccccccXcccccccccccXcccccXccccXcccXccccccccXcccccXcXcXcccXccccccccXcccccccXcXccXcccXcXcccccXcccXcX$ccccXcccccccXX             Xh„¹•hhhhhhhhhhÁhh¹•hhhhhhhhh¹•�Á¹•Áhh•h•�¹•hh¹•h•h¹•h�¾hhhÁhhhhÁhh•hh¹•hhh¹•¹•hhhhhhhhhhhhhhhhh•„¾¹•hhhhh¹•hh¹•h¹••�¹•h�Áh•hh••¹•h¹•hhhhhhhhhhh•�¹•hhhhhh¹•hhhh¹•hÁhhh•¹•hh•hhh¹•hhhhhhhhhÁhhc                                  0‚ÊÓàè÷÷õ÷ó÷óõóóõóò÷ò÷õ÷÷õó÷õóõóõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷ú÷÷ú÷÷úú÷÷ú÷ú÷÷úú÷úúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüþüýýüüýýýüþüýüþýýüýþþýýüýüüüÿüÿüÿüÿüÿüÿþþÿüþþþüÿüÿüÿüÿüþÿüÿüÿþÿþÿüÿþÿþþÿþÿþÿþÿüÿüÿüÿüÿüÿüÿüÿýÿÿýÿþÿþÿþÿÿýÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿþÿÿþÿþÿþÿþÿþþÿþÿÿþþÿþÿÿþÿÿþþþþÿþÿýþþþþþþþþþþþþþþþþþþÿþþÿýþÿýþÿþÿýÿýÿýÿýþþÿþÿýþþþþþþÿþÿþÿþþþþþÿýþÿþÿþÿþþþþþþþþþþýþþþþþþþþþþýþþýþþþýþýþýýþýýýýýýýþþýþýýýýýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüýüüüüýüýýüýüýüýüýúýüüýüüüýûýüüüúýúýúüüüüüüüýúýúýúýúúüüúýúýúúüú÷æ×Ó–M,,,,,,,,,MbcXbXXXcc¹¶¶¶¶¶¶¶¶¶¶¶¶»¶»¶»¶»»»»»»¾T,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,,,,, , XcccXcccXccccXccb$$$@cccXcccccccXcccccccccccXcc@$cccX$$XcX@$XcccXcccXccccccccXcXccccXcXcccccXcccXccccXcXcccXccccccXcccccccXcccccccccccXcccccXccXcXccYcccXccccccXccX            c¹�hhhhÁhhhhhhhh••hhhÁhhhhhÁ�•¹•hÁhÁhhh•¹••¹�•hhÁh•h•¹„ÁhhhhhÁhÁh•¹hÁ•h•¹•Á�•hhÁhhhhhhhhhhhhhh•¹h¾„h•¹•¹�••¹�•Áh•h•¹•h•¹h•¹hhhhÁhh•hhhhÁhhh•¹hh•¹•hhhÁhhh„hÁ•¹�•hÁhÁhhÁ�hhhh•¹�•Áh¹hhhhÁhhhhÁhc                              :–Ó×àñ÷÷õò÷ò÷õóõ÷÷÷õóóõ÷÷õ÷÷÷÷÷÷÷õ÷õ÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷÷÷÷÷ú÷÷ú÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúúúúúúúúúúúüúúüúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüþüüþüüýüýýýýýýýýüþüýýýýýýýýþþýýýýýýýýýþþýÿþýüýýþýþþþþþþüþþþþþþþþþþþþþþýÿüÿüÿüÿüÿýÿþüÿþÿüÿüÿüÿþÿýÿÿþÿþÿÿþÿÿÿþÿýÿÿþÿÿþÿÿýÿÿþÿÿþÿþÿÿþÿþÿþÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿþþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþþýÿýÿýÿþÿþÿþþÿþÿþÿþÿþþþþþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþþýþþýýþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýýýýýýýýýýüýýýýüýüüýüýüýüûüýüüýüüûýüüüýúýüýüýüüýüûüüûúýúýúýúüüûúýúüûüýûèÚÓÇ\-,,,,,,,,,,,XXXXXXXcXch¶¶µ·µ¶¶·µ¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶»c,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , XccccXccccccXcXc$@XcbY@ccccXccXcXccXccccXcXcccX@$YcXccc@$bY@$c@Yb@XccccXccXcccccccXcXccXcc=XcXccccXccccccXcXccXccXcXcccccXccXcXccXccccXcXcccXccXcccccXcXcY$XcccccccccccXX        0c„•¹•ÁhhhhhhÁhhhhh¹•hhhhhhhhh¹•hhhhhhÁhhh•hh•¹•hhhhhhh�¹•Áhhhhhhhhh•hÁhhhhhh¹•hh¹•hhhÁhhhÁhhÁhhh•hhh¹•h•h¹•h•¹•hÁhhhhÁhh•hh•hhhh�¹•hhÁhhhhhhh•�¹•h•hh¹•hhh¹hhh•¹•hhhhÁhh¹•h¹•h•¹•hhh•h¹•hÁhhhhhX                        0^ž×Ùèò÷÷õ÷÷óõóõóò÷÷õ÷÷õóõ÷õ÷÷õó÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷úú÷úú÷úúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúûúýúúýúúúûüúýúúüúüüúüüüúüüúüúüúúüúüüúüüúüüüüüüüüüüüüüüüüüýüýüýüýüýüýüüýüýüýýüýýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþýýþýüþþþþþþþþþþþþþÿýÿýÿýÿýÿýÿýþÿþÿýþþþþþÿýÿýÿþÿþþÿþÿþÿýÿþÿþþÿýÿþþÿþÿýÿþÿÿýÿÿþÿþÿÿÿýÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿþÿþÿÿÿþÿþÿþÿþÿþÿþþÿÿþÿýþÿþÿþÿÿþþþþÿþÿýÿýþþþþþþþþþþþþþýþÿþÿþÿþÿþÿþÿÿýÿýÿýÿýÿýþþÿýýÿýÿýÿþÿþÿþþþþþþÿýÿýþþþþÿþÿþÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþýþýýýýþýýþþýþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüüüüüüüüüüýüüüüýüýýüýüýüûüýüýûüýúýüûüüüüüûüúüúýúûüüûüüüýúýúýúûüüúýúüúõà×Óf0,,,,,,,,,,,McXbXbbXXXchº¶µ¶µKµ¶³KL³Jµ³K¶µ¸¶¶¶¶¶¹\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,  VcXcccXcXccXcXc@ccXcc@$XccccXccXccXccXccccccXccYccXccYXXcbY$@ccb$@ccccccXccccccccXcXcY@cX@XcccXccccXcXcc@@ccXccXccXcXccccXccXccXccXccccccXcccXccXccccccXYccXcXccccccccX             Wh¾�hhhhhhÁhhhhhhh•hhh¾hhÁhhh•hÁhhhhhhhÁhhg•¹�hhhhhhhh¹•hhhhhhhhhhhhÁhh•¹�hh••¹�•hhhhhhhÁhhhhhhhÁhhh•hhhh•h•¹�hhhhhhhhhhhhhh•¹h•¹•hhhhhhhhÁhh•¹•hh•¹�hh•¹�•hhhhÁhhhhhhhÁ•hh•h•¹�hhhhhh•hhhhhhhhÁd                                     0‚ÓÓÚèòóõòõó÷ò÷õóõóõó÷÷÷÷óõó÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷÷ú÷÷ú÷÷ú÷÷ú÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúüûúúúüûúúúüúúúüûúýúüúüüüüýúýúüüüüúýúýúýüýüýüýüýýüýüýüýüýüýüýýüýüýüüýüüýýýýýýýýýýýýýýýýýýýýýýýýýýþýýýýýþþýþþýýþþþþþþþþþþþýþýþýþýþþþþþÿýþýÿþÿþÿþýÿýÿþþÿþÿþþþþþþÿþÿþÿþÿþÿÿþÿþÿþÿýÿÿþÿþÿþÿýÿÿÿÿþÿýÿþÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþþþþýÿýÿýÿþþÿþÿýÿþÿþþýÿþþþþþþÿþÿþþýÿýÿþÿþþýþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþþýþþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýýýýýýýýýýüýýýýüýüüýüýüýüýúýüüýüýüýüúýúýüüýýûýýüüúüüýúûüüúýúüüüûüüúõæ×Ó�U,,,,,,XXXXXXbcXcXc¹µ¶Kµ GµKµµ³µµµ¶µµ³¶µ¶¶¶¶¶¹,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , XbcXcccXcXccXcX=@cccXcX$A@YccYYcc@@YcX_@Y@YccXcYX@@YXcY$bcXc$@$YXcc@=ccccXYY@@YccXcY@@YY$$Yc@XcX@Y@ccYYY@YX=XcX@@YcXXXXcX@@XcXcY@@Xc@Y@@Y@cXX@ccY@@XcccX@@@$XcXccXcXccccXX        chhh¹•hhhhhhÁhhh¹�¹•hhh„¹•hhhhhhhhh�hÁhhhhhhh•hÁhÁhhhÁhhhhhhh¹•hhhhhhhhhh•¹•hhh•¹•hh¹•¹•hÁhhÁhh¹•ÁhhhhhhhhhhÁ•¹•hhÁhhh�¹•h¹•hhÁ•h•hhhhhhhhhhÁhh•hhhh•h¹•h•¹•hhhhhhh¹�ÁhhhhhhhhhÁ•ÁhhhÁhhhhhhhÁhhhW                            U�ÓÓÙèò÷÷÷õ÷õó÷÷õ÷÷õ÷õóõ÷÷õ÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷úú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúûüúúüúúüúúúüúýúúüüüúýüüúüüüüúýúýúýúüúýúýúýüüüýýúýúýúýüüüüýüýüýüýüýüýüüýüýüýýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþþþýýþýýþþþþþþþþþþþþþþþþþÿýÿþþÿþþþþÿýÿýþþþÿýÿýþþþÿþþÿþÿÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþþÿþÿþÿÿÿþÿþþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿÿþÿþÿþÿÿÿÿÿþÿþÿþþÿÿÿþÿþÿÿÿþÿþÿýÿÿþÿþþÿþÿÿÿþÿþÿþþþþþþþþþýþÿþÿþþÿþÿþþÿþÿÿÿýÿýÿýÿþÿþþÿýþþÿýÿýþþÿþÿþþþþþþÿýþýþþþþÿþÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýþýýþþýþþýýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýýüüüüüüüüüüýüüúýûüýúüýúýúýüýüýúýúýúüüýüýúýúüúüüúýúýûüüüüüúýúýúûüüúõàØÓž\,,,,,,,,,,XXbXXcXXXbcc¹¶µµKµµKµ³µµµ³µµKµµGKµFµ¶¶¶»M,,,,,,,,,,,,,,,,,,    XXccXcXccXcXcXc$YccXcXc$@Y$cY$XX!@$$c@$=XcXcbY$$@B$$cYcXXc@XccX@$cXccc@$$@$=cX@$@$@$Yb$Yc$=@$@c@$=$Y$$YXB$@@cXccXc$=@YXc@$@@X$=YX$Xc=@c@$@@XXY$$$cXccXcXccXcccW            ch„•hhhhhhhhhh•Á�„Áhh•¹�hhhhhhhh•¹•¹hh•¹•¹hhhhhhhhhhhhhhh•¹�••¹„¾hh¹hhhh•hhÁ¹�h•¹�••ÁhÁhhhhh••hhhhÁh•¹•¹hhhhhhhhh•¹•¹•hh•hÁhhhhhh•¹hhhhhhhhhhhhhhÁhh•h•¹�hhhhh•¹�••¹h•¹hhhhhhhhhhhhhhh•¹„¾hhhhhhc                                       U–ÓÓÙèòò÷òó÷õ÷óõ÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷ú÷÷ú÷ú÷ú÷÷ú÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúüúúúûúúúúüúüûúúúüúúúüúûúüúüúúüúýúüúýúýúýúüüýúýúüüýüüýúýýúýúýüýüýüýüýüýýüýüýüüýüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýýýþþýþþþþþþþþþþþþþþþþþþþýþþþþþþþÿþþþýÿþÿþýÿýÿþÿþÿþÿýÿþýÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿÿÿþÿþÿþÿÿÿÿþÿþÿþÿÿÿþÿþÿÿþÿþÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿþþÿÿþÿþÿþÿÿþÿÿþÿþýÿþÿþÿþÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿþþþýýÿýÿýÿþþÿþýÿþÿþýÿýÿþþþþþþþÿýÿþþþýÿþþþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþþþýþþýýþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýýýýýýýýýýüýýýüüýüýýüýýýúýúýúýüýüýûüüûüüýüýüüûýúüüüúýúýúýúýúüüúõà×Óž\0,,cXXbcXbcXcXc¹µµµµµµµµµµ¶µ¶µ¶µ¶µ¶µ¶µ¶µ¶¶b,,,,,,,,,,,,,,,,,,,,,,,,,,,       XcXcXccXcXcXccX@XXcXcX@X$Y@$c@cXXX@$YccXcXcY@cbcYY$XcXc$@$YXXc$@XcXcX@$bcYYXXcX$@@$ccY@ccYX@$cX$@@cX=$bcXcXccX@YccXYbc$@$@cXc=@Y$XXYcX>@c=@Xc@XcXcXXXcXcXcXX            Xhhh¹•Áh¹•¹•hhh¹•h¹•¹•hh•¹•hh¾„¹•hh•h•hhh•�Á•¹•hhhhhhhhÁhhhh•¹•h�¹•hhh•�¹•hhhh�ÁÁhh•¹•ghhhhhhhhh¹•hhhhhh•�Á•hhhhhhhhh�•h•¹•hhhhÁhhhhh•Á•¹•¹•hh¹•h¹•hhhhhhh•¹•hhhhh•¹•h•hh••¹•hhhhhhhhhhÁhh�¹•hÁhhhhM                                   U–ÓÓÙèò÷÷õóõ÷÷óõ÷õ÷÷õ÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷ú÷÷÷ú÷úú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúúüúúýúûúüúúüúýúüüûüüüüúýúýüûüüüúýüüúýúýúýúýúýýúüüýüüüýýýýüýúýüýüýüýüüýüýüýýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþýýþýþþþþþþþþþþþþþþþþþþÿýÿþþþÿþþþÿþÿýþþÿýÿþþÿýþþþþÿýþÿþÿþþÿýÿþÿþÿþÿþÿþÿþÿÿþþþÿÿÿþÿÿþÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿÿÿÿþÿýÿþÿþÿÿþÿþÿÿÿþÿÿÿþÿþþÿÿþÿÿþÿÿþÿþÿþÿþþþþþþþÿþÿþÿþÿþþþþþÿþÿÿÿýÿýÿýþþþþÿýþþÿýÿýþÿþÿþÿþÿýÿýþþÿþþþþÿþÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýþýýýýþýýþþýþýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýüüüüüüüüüüýûüýüýüýüüýúüúýýýýýûýúýúüüüüüýúýúýúüüüûýúýúýúýúýúüúõàÓÓž\,,,,,,,,cXXcXcXXcXcX¾µµµµµµµµµµµµµµµµ¶µ¶µµµ¶µµµ¶h,,,,,,,,,,,,,,,,,,,,,,,,,,, ,    XXcXcXXcXcXccXc@$cXXcbYXc@$Xb@$$YB$XcXcXcXX$YXcc$YXYXcXY$@ccX@Xcccc@ccc$YY$cbc$B@$cXX$$$$c@>Xc=@Y$XcX$$cXcXccY$@XY$$YYXcXY@cY$YX$@cbYXccXcXcXcXcXcX          X•¹�hhh••h•¹•h•hhÁ��hhhh••¹h•¹�hhhhhhhhhÁ¹hÁ�h•¹hhhhhhhhhÁh•hÁ•¹•hhÁh•¹Á•¹hh•¹hhhh•hhhhhhhh•¹„¾�•¹hùhh•¹hhhhhhhhÁhh•¹•¹�hhhhhhhhhhhhhhh•h•¹••hh•Áhh•¹hhh¾�•¹hhh•¹�hh•¹�Á¹�Áhhhhhhhhhhh•¹Á•hhÁhÁhhhX                                  M–ÓÓÙàñõ÷÷÷õ÷÷÷÷÷÷÷õ÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷ú÷÷ú÷ú÷ú÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúýúúúúúúüúýúúúúüúüúúüúúúúüúüúüüúýúýúýúüüýúýüüýüüüüýúüüýýüüüúýüýüýüýüýüýýüýüýüüýýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýýýýýþþýþþþþþþþþþþþþþþþþþþþýþþþþÿþþÿþþþýÿþÿýÿþþÿýÿÿÿþÿýÿþÿþÿþÿýÿþÿþÿþÿþÿþÿþÿþÿÿÿÿþÿþÿÿþÿÿÿþÿþÿþÿÿÿþÿþÿþÿÿÿþÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿþÿþÿÿþÿÿÿþþÿÿþþÿþÿÿÿþþÿþþÿþþÿþÿþÿþÿÿÿÿþÿþÿþÿþÿþÿþÿÿþÿýÿþýýÿýÿýÿþÿþÿýÿýÿýÿýÿþþþþþýÿýþýÿþþþþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýþþþþýþþýýþýýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýýýýýýýýûýüüýúýüýüüûüýýýúüúüüýúýüüýúýúýúýúýúýúýúýúýúýúýúýúúèÚÓÓ�\-,,,,,,,cXcXXXcXcXcc¾»»»»¶¶¶µµµµµµµµµµµµµ¶µµµµ¶µ�,,,,,,,,,,,,,,,,,     XcXcXccXXXcXccXX=@bcXY$@ccY$Xc@$YbXXc@$cXcXXXcXB$cX@$Yc@$Yb$$X@Yb@XcXcXc@$XcYXXYcX@@cXY@XbYXb@$XX@@@$cbYcY$XccccXYc@bX@XXYXYcXcXXbX$@bcYcX@Xc@bXcXcXbcXcXccX                Mhhh•¹•hhhhÁh�¹•hhh¹Á¹•hhhhh•hh•¹Âhhh¹Á•¹•�Áhh¹•h•�¹•¹•h•¹•hh¹•hÁ�¾„¹•hh•hhÁ•¹••hhhhhhhhhhhhhh�¹•¹•�hh•�¹••hhhhhh�¹•hhhhh•¹•hÁhhhhhhhhh¹•hhÁh�¹•hhhhh¹•h•¹•h¹••h�Áh•¹•Áh•¹••¹•h¹•¹•¹•¹•¹•h•h¹•hhÁhhhc                                :”ÊÓ×Ùèòò÷÷÷÷õóõ÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷ú÷ú÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûüúúúúûüúûúüúúýúýúüúüüúýüýýúýúýúüüüüúýúýúýúüüýúüüýúýüüýýúüýúýýüýüýüýüýüýüüýüýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþýýþþþþþþþþþþþþþþþþþþÿþÿþþÿýþþþþþþÿþÿýþþþÿþÿþþþþþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿþÿþþÿÿÿþÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿþÿþÿþÿþÿÿÿþÿýÿÿÿþÿþÿþþÿÿÿþÿÿþÿþÿþÿÿÿþÿÿþÿþÿþÿþÿþþþþÿþÿþþÿþþþÿþþþÿýÿýÿþÿýÿýÿþþþþþÿýÿýþþþþþþþÿþÿýþÿýþþþþÿþÿþþþÿýþþþþþþþþþþþþþþþþþþþþþþþþþþýþýýþýþýýýýþýýþþýýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüýüýýüüüüüüüüüüýýýüüýüýúýüüüýýýýýûüýüûüüýüýúýúýúýúýúýúýûüüüúúõàÓÓÓ�\,,,,,,,,,,XcXcXbbcXcchhÁÁÁÁÁÁÄÁÁÄÁÁ»¾»»»¶»¶¶¶¶µµµ¶h,,,,,,,,,,,,,,,,,,  XXcXXcXcXcXccXccY$$$@cXcX$@cXX$$>XA=XcXbXcXcX$@cXc$YbX@YXcXXXc@$@cX@$$@@$cb$Yc$@cA@Xc@A$cX$$cXcXcY$$@Xb@$Y$YXcXbY=XcbY$$XcY$cXcXcXcXcbXXcX          XhhÁ•hhhhhh•¹•h•¹••h•hhhhhh•¹„¾�h•¹�•hh•hhhÁh•hh•¹„•�•¹h•hhÁhhh•¹•¹�hhhhh•¹�hhhhhhhhhhhhhhh•¹•h•h•¹hh•¹•hhhhÁhù•h•¹hhhhh�hhhhÁhhhh¹•hhhhhhÁ�•¹hhhh•hhhhhh•h•¹Á¹hh•hh•¹�hhÁhh••�•h•h•�hhhhÁhhhhhhÁhhW                                          0`žÓÓ×àèòõó÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷ú÷÷ú÷ú÷ú÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúüúûúúüúúúüúüúûúúúúüúüûúýúúúúýúüüúýúüûüüüüüüýüûüüýüüýúýüüüýýüýüüýüýüýüýüýüýýüýüýüýýýýýýýýýýýýýýýýýýýýýýýýþýþýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþÿýÿþÿþþýÿþÿþÿþþÿþÿÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþÿÿÿþþÿþÿþÿÿþÿþÿþÿÿÿþÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿÿÿÿþÿþÿþÿÿþÿþÿýÿþÿþþÿþÿþÿþÿþÿÿÿþÿþþÿþÿþÿþÿþÿþýÿýÿýÿýÿýÿýÿþÿþÿýÿýÿþÿþÿþÿþþþýÿýÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþþýþýþþþþýþþýýýýýþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýüýüüýýýýýýýýýýüüüýýüýüýüýúýúüúüüüüüüüýúüúüýüýúýúýúýüüüüúýõæ×ÓÓÓ“M,,,,,,cXXcXccXccchÁÁÁÁÄÁÁÁÁÄÁÄÁÁÄÁÁÁÁÁÄÁÁÄÁÁľg,,,,,,,,,,,,,,,,,,,,,,     XXXcXbcXcXcXcccXccYYYXcXcXbYXbXXbYYXXcXYdXbXcXXbcXYYcXXcbcYYXbXcXYYbXcXcXcb@$XYXcXcXYYYXYXYcXYXbcYYXXcXYcXb[bXccXYYcXXccXXXYXXXXXXYYcbYcccXXXYcXcXcYYcXXcXYYXYXcXcXcXXcXcXcX                     chhhhhhhhÁhhh�¹•hhhÁhhhhhhh¹•hh¹•¹••¹•hhhhhhÁhhhhh�¹•¹••hhhhÁhhhÁh•hÁhhhhhh•¹•hhhhhhhhhhhhhhh�Áhhhh�¹•h�¹•h¹•Áhh�¹•h•hhhhh¹hhhhhhh¾hh�hhhÁhhhh¹••hhÁhhhhhhhhhhh•h•h¹•hhh•hhhÁhhh¹•¹•hh¹•¹•hhÁhhhÁhhhhc                                       U‚ÊÓÓÙàòõ÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷÷÷÷ú÷ú÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúúúüúúúúûúüúúüüúýúûüúüúúüýüýúüúûüüüûüüúýúýúüüüüüüüûüüüýûýüüýüýýüýüýüýüýüýüüýüýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýÿýþþþþþýþþþþþþþþþþþþþþþþþÿþþþþÿþÿþþÿýþþþÿþÿýþþþþþÿþþýþþÿþÿþÿýÿþÿþÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿÿÿÿÿÿÿþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿÿÿþÿÿÿþÿÿÿÿþÿÿÿÿÿÿþÿÿþÿþÿþÿþÿþÿÿþÿþÿÿÿþÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿþÿýÿýþÿþÿþÿýÿþÿþÿþÿþÿþþÿýÿýÿýÿýÿýþþþþÿýþþþþþþþþÿýÿýýþýþþþþþþÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýþýþýýýýþýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüýüýýüüüüüüüüüüûýüüüýúýúýúýýýûýýýüüûüüüüýýûüüúýúýûýúûüú÷ëÙÓÓÓ–\,,,,,,,McXcXcXcXcc¹¶µ¶¹¶¹¹¾»¹ÁÁÁÁÁÁÁÄÁÄÁÁÄÁÁÄÁ¾J,,,,,,,,,,,,,,,,,,,       XXcXXcbXXcXccXccXcXcccXcXcXXXcbXXXXbcXcccXcXbXcXbccXcbcXXXcbXXXXbXcXcXcbXXcA$cXXcXcbccbcXcXcXccXcXbXcXcXXccXcccXcXccXccXXcXXbcXbXbbXXXcXcXcbXXXXXccXcXcXbcXbXbXXXXcbcXcXXcXX         Thh•¹hhhhhhÁ•¹•hhhhhhhhhhhh�•¹�•Áh•¹�h•¹hhhhh•¹�Á¹Á�•hÁhhhhhhhhhhhhhhhhhÁh•¹�Áhhhhh•¹hhÁhhhhhhÁ¹hh•¹•h•¹•hh•Áh•¹h•hhhhhhhÁ••hhh•¹„hh•¹hhhhhÁhh•hhhhhhhhhhhhhhhhhÁhh•hhh•¹hhhh•¹•Á�h•¹�Á•hhhhhhhhhhhhhh„M                                  \–ÓÓÓ×àèòõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ú÷ú÷ú÷ú÷ú÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúúúûúýúüúúüúúúüúüüúýúüüúúúúüüüüúüüüýúüüüüýúýúýüüüüüüýüüüüýúýüüýüýüýüýüýüýýüýüýýýýýýýýýýýýýýýýýýýýýýýýýýþýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþýÿþþýþþþþþþÿþÿþýÿþÿþÿÿþÿþÿÿþÿþÿþþÿþÿþÿþÿþÿþÿþÿþÿþþÿÿÿþÿÿþÿþÿþÿþÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿþÿÿþÿþÿÿþÿþÿÿþÿþÿÿþÿÿþÿþÿþÿÿþÿÿþÿþÿþÿþÿþÿýÿþÿþÿþÿþÿþÿþþþþþþþÿþÿýÿýÿýÿþýÿýÿÿýÿýÿþÿþÿþÿþÿýþþýÿýÿþÿþÿþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýþþýþýþþþþýþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýýüýüýüüýýýýýýýýýýüüýúýúýýýýüûüüýúýúýüüýúýúüüüüûýúýüüüúõæÚÓÓÓ�^-,,,,XcXcXcXcchµµµµµµµµµµµµµµµµ¶µ¶»º»¹»¾¹ÁÁ¾0,,,,,,,,,,,,,,,,,,,,,,,,, ,       XXXcXcXcXbcXcXcXcXcXcXcXXbXcXbcXXbcXXcXcXcXXbXXcXXXcbcXXXbXcXXbcXcXcXcXXcXb@=XcXbcXcXcXXXcXXcXXcXcXcXcbcXXXcXcXcXcXccXXcXbcXXXcXXXcXXcXcXcXXXXcXcXXcXcXcXXcXXXXcXcXcXcXcXXcX               chhhh•�¹Á•hh¹•�¾hhhhhhÁhhhÁhhhhh¹•hhh•¹••�¹•hhh•¹••hh¹•hhhhhhhhhhhhhhhhh¹•hh•h¹•hhhhh•�¹•hhÁhhhÁ•hhh•hhh�¹Áhhhhh•hhhhhh¹•hÁhhhhhh•¹•hh•�Áhhhhhhhhh¹•hhÁhhhÁhhhhhhhhhhhh¹••hhhhh•h¹•¹f•¹•hhhhhhhhhhhhhhhX                                ^�ÓÓÓÓÙàèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷÷ú÷ú÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúûúüúüúúüúúúúûüúûüúýúüúúüúýúûüüüýúúüüüüúüüüýúýüúýüýüúýüüüýüýüýüýüüýüüýüýüýüýüýüüýüýýýýýýýýýýýýýýýýýýýýýýýýýýýþýýÿüþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþÿþÿýþþþÿýþþÿýþþþÿýþþÿþÿþÿþþÿþÿþÿþÿþÿþÿÿþÿÿÿþþÿÿþÿÿþÿÿÿÿÿþÿÿþÿÿÿþÿÿþÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿþÿÿÿÿþÿÿÿÿÿÿþÿÿþÿþÿþÿÿÿþÿÿÿþÿþÿÿþÿÿþÿÿþÿþþÿþÿÿþÿþÿþþþÿþÿþÿþÿÿþÿþÿþÿýÿýÿýÿþÿþÿÿþÿþÿýþÿýÿýÿýþÿýÿýýÿýþþþþþþþþþþþÿþÿýþþþþþþþþÿýþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýþýýþýþýýýýþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüüýüýüýýüüüüüüúýúüýüüýýýüúüúýüýüüýüýúýúýüýüûüüüüüüúõæÚÓÓÓÓÇf0,,,,,,,,,,0cccXccchºµµµµµµµ¼µµµ¼µµµµµµµµµµµµµµµµh,,,,,,,,,,,,,,,,,,,,,,,,,,,  ,          XcbXcXXXcXXcXcXcXcXcXcbcXXXcXcXXcXXXXcXcXcXXbXbXXcXXcXbXcXcXcXXXcXcXcbXcXcXcbcXXcXcXcbXcbXcbXcXcXXXXcXXXbXcXcXcXcXcXcXcbXXXcbcXcbXXXcXcXcXXbXbXcbXXXcXXXXXcXcbXXcXcXcbXbXcXX       0cÁhh•¹•hhhh••¹„hhhhhhhhÁhhhhhhh•hhhhhhh�¹•hhhh•hh•¹�hhhhhhhhhhhhhhhh•¹•hhhhhh•hhhhhg•¹•hhhÁhhhhhhhhhhhhÁ•hhÁhhhhhÁhhh�•hhhhhh¹„¾�hh•¹•¹•¹•¹•¹•¹�•hhhhhÁhhhhhhhhhhhhhh•hhhhhhhhhh••¹�hhhhhhhhhh•¹•¹h•¹hd0                            UfžÓÓÓÓÙàèèõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷ú÷÷ú÷ú÷ú÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúúüúúúúúúúúúýúüúúüúúüúüúüüûúúüüüúûúüýúýúýüüúýúýúýüüýúýýüýúýüýúýüýüýýüüýüýüýüýüýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýþýýýýýýþýýýýþþþþþþþþþþþþþþþþþþþþÿþÿþþÿýþþþþþþþÿþÿþÿþÿýÿÿþÿýÿÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿÿþþÿÿÿþÿÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿþÿþÿÿþÿþÿÿÿþÿþÿþÿÿþÿþÿÿÿÿýÿÿþÿþÿÿþÿþÿþÿþÿýÿþÿþÿþÿþÿþÿþþþþþýÿþþÿþÿýÿþýÿþÿþýÿýÿþþÿþÿþÿþÿýÿýÿýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýþýþþýþýþþþþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüýüýýüýüýüüýýýýýýýüýýüýýúýúýýýýüüýúýüûüýúüüúúüüýúõëèÚÓÓÓÓÊ“\0,,,,,,,ccccc‚¶µµµ¶¶µ¶µµµµµµµµµµµµµµµµµµ¼µµ¾,,,,,,,,,,,,,,, ,      XXXXbXbXbXXbcXXXXXcXXXXXbXcbcXcXbXbbcXcXcXbXcXXbXbXXXXXcXXXcXXXbXXbXXXXbcXbXcXXcXXcXXXXXcXXcXXbXcXbXbXXbXXXXcXXXbXXcXXXXXbbcXcXcXXXbXcXcXcXbcXXbXXbXbXbXcbXcXXXbXXbXXXXcXbXX                  XdhÁhhhÁ•hhh¹•hh�¹•¹•¹•hhhÁhhÁhhhhhhhhhh¹••hhh¹•hhhh„¾hhhhhhhhhhhhhÁ¹•h�hhhhhhhhhhÁhhhhh•hhhhhhhhhh¹•ÁhÁhhhÁhhhhhhhhhh¹Á¹•hhhhhh�¹•ÁhhhÁ•h•�•h•h•„¹•hh¹•hhÁhhÁhhhhhh¹•hhhhhh¹•hhhhhhh•hhhhhhhhhhhh•Á•hh•hX                                            \‚ÊÓÓÓÓÓÓÙàèèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúüúúúúúûüúúúúúûúüüüúúúüüüúüüúüúúýüúýúüüúýúüüúüúýüúýüüýúýüüüýüýüýüýüýüýüüüüüüüüüüüüýýýýýýýýýýýýýýýýýýýýýýýýýýþþýýýýýýýýþþþþþþþþþþþþþþýþþþþþþÿþþÿþþþþþþþþÿýþþþÿýþþþþþþþÿþÿþÿþÿþÿþÿþÿþþÿÿþÿýÿþÿþÿþÿþÿÿþÿþÿþÿÿþÿþÿþÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿþÿÿþÿÿÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿýþÿÿÿþÿþÿÿþÿþÿþÿÿÿþÿþÿþÿþþþÿþþÿýÿþþÿþÿþÿþÿýÿýþþþþþþþþÿýÿþÿÿþÿýÿþÿýþÿýþÿýþýÿýÿýýÿýþþýþýþýþýýýþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüúýúýúýýüýüýüüýüýüýýüüúûüúýúýüúüüüüýúýúúýúüýúûüüúýú÷õëæÚ×ÓÓÓÓÓÊ”\0,,,,,,,0XcM³,IN¼»¶¶µ»»¶¶µ¶¶¶»¶»»Í»»¶¶µµµ¹M,,,,,,,,,,,,,,        XXbXXbXXbXcXbXbbXbXbcXbXcXXcXcXcXXXXXcXcbXcXcXcXXbXcbXcXXcXXcbXcbXXXbXXcbXXcXXcbXcXcXXcXXbXXbXcXbXXXXbXXcbXcXbXbXbXbXcbXcXcXcXcXbXbXcXcXcXXcXcbXbXXXXcXcXXcXcXXcbXbXbXcXXcXX              cÁhhÁhhhhÁh•Áh¾Áh•Á�•hhhhhhhÁhhhhhh•¹•h•h•¹hh•ÁhhhhhhÁhÁhhÁhhhÁhù••hÁ¹hhhhhhÁhhhhhhhhh•¹hhhhhh•¹••f¹hhhÁhhhhh•¹hhhh•Á••hh¹hh•¹•hÁhÁhhhhÁ•¹ÁhhÁ¹�•¹�•hhhhhhÁh•¹�hh•h•¹h•¹••hhÁhhhhhhÁhÁhhÁhhhÁhÁhhhhhÁhhd                                        0Va–�ÓÓÓÓÓÓÓÓ×ÙÚÚàààèèëèèëèèëèèëèèëèëèëèèëèëèèèëèèèèèèèèèèèèèèëèëèëèëèëèëèëèèëèëèëèèëèëèëñèèëõèëôèíèèëèõèëèëèëèëíèëèèõèëíèëèõèëííèíèëñèíèõèíèíèëèõèíñíñíñëõíõõõõõõõõõèõèõñõñõòõñõõôõõôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ÷õõ÷õõ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õ÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôõõõõõõõõõõõõôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôõõõëõõõõôõõõõõõõõõõõôõõôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôõõõôõõõôõõôõõôõñõñõèõèõèõèõôôôíñëíñëõõõõõôôôôëôëôëôëôôèëèëèëíèëèëèèëííñíèëõèëõèëèëèõèíèëèèæààÚÚÚ×ÓÓÓÓÓÓÓÊ–f\M,,,,,,,LJNMµ·µ¶»¶»»»»¶µµ¶¹M,,,,,,,,,,,,,,,,,,               XXXbXXbcXXbXXXbXXbXXXXbXXbcXcXbXbXbbXbcXXcXcXcbXbXXbXcXXbXcbXcXXXXbXbXbXXXcXbcXcXXcXbcXbXbcXbXXXbXbXbXXbXXcXXbXXXXXbXXXXbXcXcXbcXXXbXcXbXbcXcXXXXbXcbXcbXcXcXcbXXXXbXbXbXbcX             TchhhhÁhhhh¹•hhÁhhhhh¹•hh¹•hh¾„¹•¹•hhÁ�¹•hÁh•hhhhÁhÁhhhÁhÁhhhhhhhhÁ�¹•h�Á•¹ÁhÁhhh¹•hhhhÁhh•hh¹•¹•h�¹Áh•hhhÁhhhhhh••ÁhÁhhhhhhh•�¹•�¾hhhÁhhhh¹•h•Áhh•¹••¹•hhh¹•hhhh•¹•hÁhh•hÁ�¹•hh¹ÃhÁhhhÁhÁhhhhhhhhÁhhhhhÁhhW                                   0T^‚�ÊÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓ×ÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓ×Ó×Ó××ÓÓ×ÓÓØÓÔÓÔÓÔÓÔÓÓÔÓÓÓÓÔÓÓÓÓÓÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ×ÓÓ×ÓÓÓ×Ó×ÓÓ×ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÊÓÓÊ�“`U0,,,,,,,,,K2,,,,,,,,,,,         XXbXXXXXXbXbXbXXXXbXbXbXXcbXbXcXbXXXcXXbXXcbXXXbXXXbXXcXXcXXcbXbbXXbXXbXbXbXXXXXcXbXXXbXXXXXcbXbXXXbXbXbXbXXXXbXbbXbXbbXXXXbXcXbXbXXbXbXXcbXXbXbXbXXXbXXcXXXcbXXbXbXXXXXXXXX                   Xhhhhhh•¹�•hhhhhhh•¹�•¹�•h¹„hhh•�hÁhhhÁhhhhhhhhhhhhhhhhh•¹„¾hÁhh•¹•h•¹•¹•hÁhhhh••hh•¹hhhh•¹�••�•¹¾„•hÁhhhhhhhhhh•¹hhhhhhhhhh•¹••¹hhhhhhhhh•hhhhhh�h•¹�hhhh•h•¹•¹„hÁhhhÁhh•¹•hh•hhhhhhhhhhhhÁhÁhhhh•¹•¹hhhhÁc                                              00UVV\^^^^^`^^^^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^`^^^^^^`^^^^^^`^^^^^^^^^^^^^`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``^`^^^^^^^^^^^^^`^^^^^^^^^`^^^^^^^^^^^f–Â›ÆÆÆÆÆÇÆÌÌÌÌÉÌÌÌÌÌÌÌÌÌÌÌÌÌÌÎ×Î×Þ×ßßßßßßßßßæßßßàâàßàáâèèèßèßßßßßßßßÎÌ×ÌÌÌÌÌÌÉÈÇÆÆÆÆÆÆÆÆÂ–––––––…–‚‚‚‚‚‚‚‚‚�‚_‚‚x‚_zdz_‚_‚x‚‚‚‚^^^^^^^^^^^^^^^^^^^`^^`^^``````````^^`^`^^^^^^``^`^^^`````^````^```^^```^`^^^`^``^^`^^^``^^``^^^^^^^^^^^^^^^^^`^`^``^``^^^`^^^^^^^`^^^^^^^`^^`^`````^^``^^```^```^`^^^`^`^^^^`^^^`^^^`````^````````^``````^`^`^``^``^^````````````^`^``^^^``^`````````^`^```````e`````^\VUM000,,,,,,,,,,,,,,,,,,,,,,,      XXXXbbbXbXXXbXXbbXbXXXXbXXXcXXXbXXbXbXXcXbXXcXbXXbXXcXbXcbXXbXXXXXXbXbXXXbXXcbXbXcXbXbXbXbXbXXXXbXXXXXbXXXbXbXbXXXXXbXXXbcXbcXXbXXbXcXXcXXXXcXbXXXbXbcXbXbXbXXXbXbXXbbbXbXbX           cghhhhhhh•¹•hhÁhhhhhÁhÁ•¹•h�¾¹•Áh¹•hhhhhhÁhÁhhhhhhh¹•hhÁhh�¹•hhhhh�Áhh•hÁhhÁhhhh¹•hÁh••¹•¹•„¹•¹�¹•hhÁhhhhhÁhhÁÁh¹•�¾„¹•h¹•hh¹•�¹•hhhhhhhhhhhhhÁhh¹•¹•hÁ¹•hhhhh�Á•hhhhhhhhÁhÁ�¹hhhhhhhhhÁhhhhhhhh�¹•Á�••�Á¹•hM                                                      \chhh•ÁÁÄÄÄÍÄÄÄÍÄÄÄÍÍÄÑÍÐÍÍÍÍÑÑðððïðððÑòððóððóóóóóðóðóúóóúúóòóðÑÑÑÑÑÍÑÑÐÍÍÍÄÄÁÃÄÄÁÁhhhfcccccXbXXXTTT ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,       XXbXXcXbXbXbXXbXXXXbXbXXbXbXbXbXXXXXbXbXXbXXXbXXXbXbXXbXXbXXcbXbbXbXXXbXbXXbXXbXcXbXXXcXcbXcbXbXXbXbbcXXbXXbXXXbXbXbXXbXXbXXbXXbXXXXbXbXbbXbXbXXbXXbXXXXXbXXcXbXXXXXXXXbXXXX                    McÁhhhh•Á¹�•¹hhhhh•¹„hhhh•Á¹„•hhh•hhÁhh•hhhhhhhÁ•¹••hhhÁg¹•h•¹Á•¹•¹hh•¹�hÁhhhhh•hhhÁhhh•�h¾Á�h••hhh•¹�Á¹hÁhhhh•ÁhhhÁhhh•ÁhÁ••¹„hhÁhhhhhùh•¹h•¹•Á�•hh••hhÁhh•¹hhhhhÁhhhhh•¹h•hÁh•¹„¾hhÁhÁhhh•¹Á¾„h•¹�¹•¹•ÁhhX                                                                                                                                    bhghhÁÁÁÄÄÍÄÍÄÍÍÄÍÍÍÍÍÍÍÍÑÑÍÍÑÑÑÑÑÑÑÑðððððððððððóóóóóóúóóóóóóðóððçðÑÑÍÑÍÍÍÍÍÄÄÄÄÁÁÁhhhhhhcccbXXXTTTTTT             ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,        XXXXbXXXXXbXXXXbXbXbXXbXXbXXXbXXbXXbXbXXbXXbXXbXbXbXbXXbXXbXbXXXXbXXbXXbXXbXbXXbXbXXbXXbXXXXXXXbXXbXXXXbXbXXbXbXXXbXXbXbXXbXXbXXXXbXXXXXXXXbXXXbXbXXbXbXbXbXbXbXbbbbXbXXbXXX          bhhhhhhhhh•¹••hh¹•Áh•Áhhhhhh•¹•hhhhhhhÁh¹•¹•Á¹•hhh�¹•hhhhhÁ�¾hh•Áh•h•hÁh•¹•Áhh•¹•hhh¹•hhhÁ¹•h¹•¹�¹Á•¹•h•h••¹•hhhhhhÁhÁhhhhÁhhhh�¾hhhhhhhhh•hh•hh�hÁ¹•Áhhhhhhh¹••h¹•hhhÁhh¹•hÁ•hhhhh•h¹•hhhÁhhhh•Áh¹•h„Á¾„h•Áhc                                                                       bchhhÁÁÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÑÑÑÑÍðÑÑÑÑÑðïóóðððóððóóóóúóóóóóðóóðóðððÑÑðÍÍÑÍÍÍÍÄÄÄÄÄÄÁhÁÁhhhccccXXXXTXXTTTT       ,,,,,,,,,,,,,,,,,,,,,,,,,,,,           XbXcXbXbXbXXbbXXbXXXXbXXbXXXbXXbXXbXXXXbXXbXbXXbXXXXXbXXbXXbXXbbXXXbXXbXXbXXXXbXXXXbXcXXXbXbbXbXbXXcbXbXXbXXXbXbXbXXXXXXXbXXbXXbXbXbXbbbbXbXbXbXXbXXXbXbXXXXXbXXXXXXXbXXbXXX                  c•¹„hhhhhÁ•hhhÁ•hhhÁ¹hÁhhh•¹�h•¹hhÁhhhh•Á•hh••¹•Á¹•hÁhhhh•¹ÁhhÁhhhhhhhhh•hhh•¹�hhhh••¹hÁ¾„hh••h•hù�hhhhÁ¹�hÁh•¹„hhhÁhÁhhhhhhÁ¹„hhhhhhhhhÁhhhhùh¾„ÁhhÁ•¹•¹�•hhh•hÁhh•¹•ÁhhhhhhhÁ•¹„Áhhhh•¹ÁhhÁhÁ�•¹•¹hhhh•¹hhW                                                                                                                Xhhh•¹ÄÍÄÍÄÄÍÍÍÍÑÑÑÍÑÑÍÍÑÑÍÍÑÍÑðÑïððððððÑðïòðóóóóððóüüóüýüóóóðòóððÑÑðÑÍÍÍÍÍÍÍÄÄÄÁÁÁÁhhhhchccccbXXXTTT                ,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,       XXXbXXbXbXXbXXbXXbXbXXXbXbXbXbXXXXbXXbXbXXbXXXXXXXbXbXbXXbXXbXXXXbXXbXXbXXbXbXXbcbXbXXbXbXbXXXXXXbXXXXXbXXbXXXXXbXXbXXbbXXbXXbXXXXXXXXXXXXXXXXXXXXbXXXXXbXbbXXbXbXbXbXbXXbXX      Thhh•¹•¹•hhÁhÁhÁhÁhhh••h�Á¹•h•¹•h•�¹Á•¹•hhhhÁhÁhÁh•h•hhh¹•¹Á•Áhhhhhhhh¹•¹•hhhhÁ•¹•h¹•hh•hÁhÁ¹•h¹•¾hh�ÁhÁhhÁ•¹•Áhh�¾¹•hÁhhhhhhhh•�Á¹•hh•¹•hhÁhÁhÁhÁ„¹•hhh¹•�Á•¹•hhhhhÁhhh•h�¹Á•ÁhÁhhh�hh�¹•hÁ•Áhhhhhhh��Á•¹•¹••Ác                                                                                               cghhÁÁÄÄÄÍÍÍÍÑÍÍÍÍÑÑÑÑÏÑÑÍÑÍÑÑÑÑÑððÑðððóðððóóðòðóóóóóóóúúüóðóðððððÑÑÑÍÍÍÍÍÄÍÄÄÄÁÁÄÄÁhhhhccccccXXXXTTTT             ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,  ,,,            XbXXXbXXXXXbXXbXXXbXbXbXXXbXXXXXbXXXXXXXXbXbXXXXXbXbXXXXbXXbXXbXbXXbXbXbXXXbXbXXXXXXXbXbXXXXXbbbXbXbXbXXXXXbbbXbXXbXXbXXbXXbXXXbXbXXXTTTXbXbXXXXXXXbbbXXXXXXbXXbXXXbXXXbXXXX               X•¹�Á•�ÁhhÁhÁhhhh•¹Á�¹•¹Á•hhÁ�h•¹Á�„h•hÁhhhhhhÁhhhhhhÁ�••�•hhh•¹hhhhÁ•Á�h•¹hÁhh•hh•hhhhÁ•¹�•hhhhhh•¹hh•¹•hh•hhhÁ¹„•hhhhÁhÁhhhhhÁ¹••¹Áh••¹hÁhÁhh•¹�•Á¹hÁ�ùhhÁh•¹hÁh•¹hhÁh¾•hhhÁh•¹•¹�Á¹•hhhhhhhhhh•¹Á¹Áh¾�hhÁhÁ„M                                                                               0bchÁÁÄÄÄÍÑÍÍÑÑÑÍÍÑÍÑðÑÐÑÑÍÍÑÑðÑÑÑÑÑÑððóðððóððóðóðóüúóóüóóóðóóóðïðÑÑÑÑÑÍÑÍÍÄÄÄÄÄÁÄÁÁÁÁÁhhhccccXXXXXVTTTT                  ,, ,,,,,,,,,,,,,,,,,,,,,,,,,,            XXXXbXbXXXXXXbXbXXXXXbXXbXXbXbXXXXXbXbbXbXXXXXXXXXXXbXbXXXXbXbXXXbXXXXXXbXXXXXbXbbXbXbXXXXbbXXXXXXXXbXbXXXXXXXXXbXXbXXbXXbXXbXXXXTXXXbXXXXbXXXXXXbXbXXbXXbXXXbXbXbXbX        chhÁ•¹Á¹Âhhhhhh¹•¹••hÁh•�¹•hhÁ¹•h•Á¹ÁhhhÁh¹•¹•hÁhhh¹ÁhÁh¾¹„¹•hhh••¹•hÁhhÁ¹••hhhhhhhhhhhÁhh•¹•hÁhhh¹••hhh�¹•Áhhhh•�¹•hhhÁhhhhh¹•hh•hÁ•hÁ¹Ã�¾„¹•hhh�¹•�Áhhhh•hhÁhh•�Á¹••hhÁhhhhhhÁhh•hÁÁÁhÁhhhhhhÁhhhh•Á•hÁhÁhhhhhc                                                                                                          chÁÁÃÄÄËÍÍÑÑÍÍÍðÑðÑÍÑÍÑÑÑÑÑÑðáÑÑðÑðððððïððóðóóðúóúóóóóüóóóüóóððòðóðÑÑÍÑÑÍÍÍÍÄÄÄÁÄÄÁÁhhhhhcccccXcXXXTTTT           ,,,,,,,,,,,,,,,,,,,,,,,    XXXXXXXXXXXXbXXTFFTXbXbXXbXXbbXbXXXXbXXXXbXXXbbbXXbXbXXbXXXXXXbXbbXbXXbbbbXXXXXbXbXXXXXXXXXXXXXXbXXbXXXXXbXbXbXXXTF"bXbXXXXbXXXXbXbXbXXbXXXbXXXXXXbXbXXXXXXXX                XhhÁhh••hh•¹hhh••�hhhÁh•¹•h•¹h•hÁ¹h•hhhhh•Á�•hhh•¹�•Áhh•¹„¾�hÁhh•¹�Áhh•¹h•hÁh•¹h•¹h•¹hÁhh•¹�hhÁhh•Á�hÁhù•hh•¹•¹•¹•hhÁhÁhh•¹••ÁhhhhÁhhÁ�hh•¹�•¹h•¹••¹Á•¹hhhhhhhhÁ•¹•hhhhh•¹h•¹hhhhhhÁhhhhh•¹hÁhhhhhÁhhhhhhhÁhhhhhc                                                                                         0chÁ¾ÄÄÄÍÍÑÑÑÑÑÑÑðÑÑÑÑÑÑÑÑÑÑÑÑðÑðÑððððððáóðððóóðóóúóðóóüüóóóóóðóððððÑÑÑÍÑÍÍÍÄÄÄÁÄÁÁÁÁÁhhhhchccccXXXXXTT          ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,       FFFFHEXbXXbXbXXXbXbXXXbbXXXXXFFTbXXXXXXXXXXXXbXXXXXXXXXbXXXXXXXbXbXbXXTTTTbXXXbXXXXXbXXXbTFEVXXXXXXXbTF"TTXXTTTTTT"FTbXXXXX         bhhhhhhhhhhh••¹•h¹•¹•hhhhÁ�¹••hhh•�¹•hhh¹•hh¹•hhhÁ•¹•hhhÁ•¹•¹•hhÁh•¹•h¹••hhhÁhh•hhÁ�¹••¹•hh•¹•hhÁhÁh¹•hgÁ�ÁÁhhÁ•h•h�¹Á•hhhhh•hhhhhhhhhhh¹•hh•¹••hh•hh•hh•Áh¹•hhhh¹•h�¹•h¹•h•hh••¹Á•¹•hhhÁhhh••¹•ÁhhhhhhÁhh„¹Á•¹•hhX                                                                                                          b¹•ÄÁÄÍÄÍÑÑÑÑÑÑÑÑÑÑÑðÑðÑðÑÑÑÑÑÑðÑóðððïððòððóóðóóóóóðúüüóóüóóóððððïðÑðÑÑÍÍÍÄÄÄÄÄÄÄÁÁÁÄÁ¹hfghhbXcbXXXTTTTT      ,,,,,,,,,,,,,,,,,,,,,,,,             ETXXXXTFETbXXXbXXXFTTXXbbbbXXXbXXbXbXbXXXXbXbXXXXTFE"bXXXXbXbXXbXTFTXXXXbXTTXX           0chhhhhhhhh•¹Á�hhh•hÁ•¹•¹„¾„h•¹h•¹Á••¹Á�•hhh•h•¹hhÁ�h•¹•¹�h•h•¹hhh•ÁhÁ•ÁhÁhhÁhhhhhÁh•Á•ÁhhhÁ•hh•¹hhh•hhhhhÁhhhÁhhÁ¹•hÁhhhhÁhhhh•¹hhhhhhh•h•¹•ÁhhhhhhÁhhhhh••hh¾hh•Á•¹•Áh•hhhh•¹h•�Á•hhhhhhhhhh•hhhhÁhÁhÁh¹•Áh�•¹hÁd                                                                                           MeÁÄÁÄÄÍÍÑððÑÑðÑÑÑÑÑÑðÑÑÑÑÑÑðÑÑðððÑðððððððóòððóóóóóóóóóüüóóóóðòðððáÑÑÑÍÍÍÑÍÍÍÄÄÄÄÄÄù••hhgcccccXXXXXXTT:TT"                 , ,,,,,,,,,,,,,,,,,,,,,                   FTTFTTXXbXXXXbXXbXXXXXbXXbTFXbXXXXXXbTTXXXXXT           bhÁhhÁh¹•¹•¹•�Á¹•ÁhhhÁh��¾„¹�¹Á•hh•ÁhÁ•¹•ÁhhhhÁh•�¹•Áhhh•hÁhhhh•�¹•hhÁhhhhÁh¹•h¹•hhÁhhhÁhhÁhhhhhh•�¹•hhhhhhhhhhÁhh•hhhhhh¹•¹•h¹•h•�¹•Áh¹•hhh�¹•hhÁ¹•hÁh¹•hh¹•hÁ„¹•hÁhÁ�¹•Áhhh¹••h¹•¹Áhhhh•¹•hh¹•hhh¹•ÁhhhhÁ�¾„¹•h•hhW                                                                                                         cÁÄÁÄÄÍÍÑðððóðÑÑÑðÑÑðÑÑÑÑÑðÑÑððÑóÑÑòóðððóóóðóðóóóüüóóóóüúóüóððóððïïÑÍÍÍÍÍÍÍÄÄÍÄÄÄÁÁÁ•hhhccdccXXXXXTXTXTT                     ,,,,,,,,,,,,,,,,,,, ,,                 FTTTXXXXXXXXXXXXXTFTXXXXXTXXXTF               chhÁ¹�••h•�•¹„ÁhhhÁh•¹Á¹Áh¾•Á�hhhhh•¹�h•¹hÁ¹hhh•¹•hhhhhhhhh•¹�Á¹„hhhhhÁ•¹Á�•hh•hhhhhhhÁhhÁhh•¹hh•¹•hh•¹hÁhhhhhhhÁhhhÁ•¹••h•hh•hh•¹•Á¹�•hhh•¹•hÁhh•Áhh•Áhhh•hÁ•¹�hhhh•¹•hhhÁ•Á�hh•h•hhh•¹h•hhh•Á•¹�••¹hù�Á¹•¹�hhhhhÁc                                                                                          McÁÁÄÄÍÍÑÑÑÑÑÑððÑÑÑðÑðÑðððÑÑðÑÑïÑððÑïÑððïóðóðóóðóðððóóðóóóóúóóðóóððáÑÑÑðÍÍÍÍÍÍÄÄÄÁĹhhhhhhgccccXXTXXTT"TT                  ,  ,,,,,,,,,,,,,,,,,  ,                    MdÁhÁ•„¹Áhh¹•Á�¾hhÁhÁhh•Á•hÁhhÁ¹•hhh¹•hÁhh•�Á•ÁhÁh�¹•h¹•hhhhhhÁÁ�Á¾hh¹•hhh•¹Á¹•hhhhÁhhhhhhhhh¹Á•�¹•�Á¹•h•hÁhÁh¹•hhhhhhhÁ�¹•hhhhhhhhÁ•h•¹Á�¹•hÁ•hhhÁhÁhhhÁhhÁhhÁh•¹•h¹•h•hhh¹ÁhÁ¹Áhhhhhhhh•hhhhÁhhÁ•¹•h�hh•¹•Á•�Áhh¹Á•hM                                                                                        gÁÁÄÄÍÍÐÑÑÑÑðÑððÑðÑÑÑðÑÑÑÑÑÑÑÑÑðÑðððïððóðððóðóðóóóóóóóóüóóóóóðóððïÑÑÑÑÑÍÍÍÍÍÄÄÄÁÄÁÁÁ•hhhhcccccXXXXXTTTTT                     ,,,,,,,,,,,,,,,,                              XhÁh•¹•hhÁ�h•¹hÁhhhhhhhÁhhÁ•¹h••¹hh•hhhh•¹•¹hhÁ•¹Á•ÁhÁh•¹hhhhhh•¹•¹�••¹hh•h••hh•¹hhhhÁh•¹hÁ•Á�•¹••¹h•hhhhÁhh•ÁhÁh•¹hhh•¹•hÁh•¹hÁhÁhhhh••¹•hhh•¹ÁhhhhhhhÁhhÁhhhhh•hh•hhhhhh••h•Á•hÁhÁhÁhhhh•¹hhhhhhhh•¹hhh•hh•¹•¹••hhhhX                                                                                          0hÁÁÄÍÍÍÑÑðÑðððÑððÑðÑÑðÑÑðÑÑÑÑÑÑÑÑÑïðáÑóððððððððüóüüóúüþüþüóóððóððÑÑÑÑÑÑÍÍÍÄÍÄÄÍÄÁÁÁÄÁÁÁhcdccbbcbXXXVTTTTTTT"                         ,,,,,,,,,,,                             chhÁhh�¾„¾h¹•h•hhh¹•¹•hhhhhhÁ•hhh•hhhhhÁhh�Á•hhhÁ•hÁhhÁhh•�Á¹•hhhÁ•„Á¹••hhhÁhhhhÁ•�¹•¹•Áh•hhhh¹•�¹Á•hÁhhh¹•h¹•hhhhh••¹•h•hhhhÁ•hhhÁhhhhhhÁ•hhhh•hh¹•hhhhhhh¹Âh¹•hhhhhhhÁh¹•¾¹•hhÁhhÁhhÁh¹•hÁ•�¹•¹Á•hÁh•�¹•hÁhhh•ÁhhhhÁc                                                                                                     gÁÄÄÄÍÍÍÑðððððÑÑððÑðÑðÑÑðÍÑÑÑðððððððððððóðóðóóðóóóóðóóüóóóóóðóððððÑÑÑÑÑÍÍÑÍÄÄÄÄÄÄÁÁÁÁhhhhhccccbXXXXXTTTTTT                 ,,,,,,,,,,,,,,,,,,, ,                        Mchh•¹•¹•¹„•hhhhhÁ••�hhÁhhÁhÁhhhhhhÁhhhh•¹•¹h•¹hhhhhhhhh•¹•¹••¹hhh•¹ÁhÁh•¹hhh•¹hh•¹•Á•hhhhÁh•¹�ùh•hhh•¹••hh•hhhhhhhhhÁhhh•¹hhh•¹h•¹Á•¹hhh•¹hhhhhÁ•hhhhÁhhÁ•Á�••¹hhÁ•¹hhh••¹„hhh•¹h•¹•¹�•hhh•¹„Á�„hhÁhÁ¹•hhhhhhhhhhÁhÁhhW                                                                                               gÁÁÄÍÄÍÑÑóÑððÑððÑððððÑÑÑÑÑÑÑÑÑðððáðððóóððððóóóðóóóóóóóóóóóóðòððððððÑÑÍÍÍÍÍÍÍÍÄÄÄÄÁÁÁÁhhhhchcccbXXXTXTTTTTTTT"                 ,,,,,,,,,,,,,,                             chh„¹Á•h•h�¹•hhh¹•hh¹•¹•hhhhhÁhh¹•hÁ¹Ãh¾hhÁh•hh•�hhhhhhhhh�ÁhhhÁ•hhh��¹•¾„�Áhhh•�¹•h�¹•hÁhh¹•h•hhÁ•hhh¹•�Á¹•ÁhhhhhhhhÁhÁhÁhh•�¹•h•hh•hÁ•�¹•h•hh¹•hhhhh¹•hhhhhÁ¹�h•�Á¹Á••¹•¾h•hhhhh•hh�•„¹•hh¹•�Á¹•¹•hhh�Á•¹•hh¹•hhhhhhhÁc                                                                                                           MgÁÄÄÍÍÑÑÑðÑÑððððÑðÑÑÑÑðÑÑÑðððÑÑÑÑÑïòðððÑððððòóðóóóóüóóóüóóóóóóóðððÑÑÑÑÑÑÑÄÍÍÄÄÄÁÁÁÁÁhhÁhhccccbXbXXXTTXTTTTTTT                   ,,,,,,,,,,,,, ,,,,                              cÁ¹•hhhh•¹•h•¹••hhÁh•hÁhh•¹hhhÁ•hhh•ÁhhhhÁhhhhÁ¹hÁhhh¾hhÁhÁ•¹�hh•¹•¹•h•¹•¹Áhhh•¹�h•¹•hhÁhÁ•hh•¹�hhhhh••¹h•hhhh•¹•¹ÁhhhhhhÁh•¹•hÁhhhhhh•¹•hh•¹••hhh¹�•Á•¹•¹„¾�Á•¹•¹•ÁhhhhÁh•¹hÁhhÁh•¹•¹�ÁhÁ••¹h•¾�hhh•¹hh•Á¹�••¹•¹hhhhhhhT                                                                                                 0gÁÄÄÄÍÍÑÑðððóÑðÑÑóðÑÑÑðÑÑÑÑðÑðÑððÑïðóððððòðóðóðúðóóóóóüüóóóóððòððÑðÑÑÑÑÍÍÍÍÄÄÄÄÄÄÄÁÁÁhhhhhcccbbXXXTXTTTTT               ,,,,,,,,,,,,,,,,,                                Xhhh•hhhÁhh�¾hh�¹•hhÁhhhhh¹Â�ÁhhÁhhhhhhÁhhhhÁhhhÁ•h¹•hh„Á¹•hhh•¹•Áh•h�¹•hh•hÁhh¹••¹•Á�ÁhhhÁhhhhh•¹•hh¹•hh•ÁhhhhhhÁ•Á•h¹•hhÁhhh�¹Áhh¹•h¹•Á�¹•hh�¹•hhhÁ•¹•hh�Á•¹•¹Á�¹•h•hÁhhhhÁh•hÁhhhhhh�ÁÁhhhhh•hÁh¹•h¹••h¹•Á•¹•h�••Á�Á¹•ÁX                                                                                                     hÁÁÍÍÄÍÍÑðóÑÑÑÑÑÑðïÑðððÑððÑÑÑÑððÑðððóÑðóóóóóðððóóóóóóüüüüóüüóðððÑÑððÑÑÑÍÍÍÄÄÍÄÄÄÄÄÁÁÁhhhhchccbbbXXXTTTT"TT:T                      ,,,,,,,,,,,                                     XhhhhÁh•¹•¹„hÁÁh•¹hhhh•¹�•hÁhhhhh•¹hhhhhhhhh•¹•hhh•hh•¹h•hhhhh•hhhÁ•¹•hhhhhhh•Áhhh•¹•¹hhhhh•¹h•¹�•¹�•hhhÁh•¹h•¹�hhhhh••¹hhÁhÁÁ•Áh••¹�Áh•¹•h•¹Á„h•¹h•¹�hh•¹hÁ•h••¹•hhhhhhhhhhhhhhhhhhh•¹hhhhhhhh•¹„Áhh•hhh••¹�hÁhÁ¹�¹•¹•hhhh                                                                                                  MgÁÄÄÄÍÍÑÑðððððððÑðÑðÑÑÍÑðÑðÑÑÑÑóÑððððððððððóóóóóóóóóóóóóóüóóóðððððÑÑÑÑÑÍÍÍÍÍÄÍÄÁÄÁÁÁÁhhhchcccbXXXXXXTTT"TTTT                  , ,,,,,,,,,,,,,,,,,,                                        chhhhhhÁh•h�¹•Áhhh•Áhh¹•Á¹•hhhhh¹•hÁ•¹•hhhhhhh•h¹•hhhhh•hhhhÁhhhhhhhh�¾„¹ÂhhhÁhh�¹•hh••Áhh¹•h•hh•¹••Á¹•hhhhh•hhÁÁhhhhhhh•ÁhhhhÁhhÁhh•hÁÁh�¹•h•Á¹•h•Áh•¹•Áh•hhhhhh•hÁhhhhhhhhhhhh¹•¹•h¹••hhhhÁh¹•h�¾„¹•hhhÁhh•Áhhhh•h•h•ÁhhhX                                                                                                          gÁÄÄÍÍÍÑÑðÑðÑðððÑðÑÑðÑÑÑðÑÑÑÑððððÑðòïððððóðòðóóóóóóóóóóüóóüðóðððððÑÑÑÑÍÍÑÑÍÄÄÄÄÄÄÁÁÁhÁhhhhccbcXbXXTXTTTTTTT"                ,,,,,,,,,,,,,,,,,,, ,                                             XhÁhhhhhhhÁÁhhhhÁhh•¹�•Áh•hhh•¹•Áhhh•ÁhhÁhÁhhÁhÁ••¹hhhÁhh•¹h•¹hÁhÁh•¹•¹„¾�Á¹hh•¹Á•ÁhÁhhÁh•Áhhhhh•h•¹h•hh•¹hhÁ¹�hh•¹•¹hhhhhhhÁhhhhhh•¹hhhhÁÁhg•¹�Áhhhhh•Áhhh•¹hhhÁhhhhÁhhÁhùhÁ•ÁÁ�•hhhÁhh•¹•¹�••¹Áh¹�hhhhhÁh•¹hhÁhÁhÁhhÁhhhÁc-                                                                                                  MhÁÄÄÍÍÍÑðÑÑðððððÑÑðÑððððÑÑÑÑÑÑÑðÑïðïÑðóððððððóððóóóóóóóüóóóóóóððððÑðÑÑÍÍÍÍÍÍÍÄÄÄÁÄÁÁÁhchhcccccbbXXXVTT:TT:TTTT                   , ,, ,,,,,,,,,,,,,,,,,,  ,                                                                XhhhÁh¾„¹ÁhhÁhhhhhhhh•Áhhhhhh¹•Á�ÁhhhhhhhhÁhhhÁhhÁh•hhhhh¹••hh•Áhhhhh�Á�¹•hÁ�•¹•Á�¹•hhÁhhhhÁhhh¹•hhh•hhhhh•�¹••¹•Áh�•Á•¹•h¹•hhhhhhhhÁ•hhhÁhhÁhh•¹•hhhhÁhhhhhh•�Á¹•hhhh¹•hhÁh•hÁhhÁ¹•hhhhhhh•�Á¹Á••hh•¾„¹•¹•Áhh•hÁhhhhhÁhhhhhhT                                                                                 gÁÄÄÍÄÑÑÑÑðððððÑÑÑðððÑÑðÍðÑÑÑÑïáïððÑóðððððóðóóóóóóóúóóüüóóóóðóððððÑÑÑÑÑÑÍÍÍÄÄÄÄÄÁÁÁÁÁÁhhhchccbbXXXTTXTTTTT                 ,,,,,,,,,,,,,,   ,                                                               c•¹„h•¹�•hhÁhhhhhhÁhhÁhhh•¹�•h•¹hÁhh•¹„¾hhùhhÁhhhhhhhhh•hhhhhhhhhÁ¹•¹hÁhhh•¹�hh¾„hhhh•¹hÁh•¹�•hhhhhh•¹hh•¹•h�ÁhhhÁ¹hh•hÁ•hÁhh•¹•¹hhhhhhhh•Á¹„¾�•¹ÁhhÁhh•¹h•¹•¹•hÁ•¹�••¹hhÁhhhÁhh•hhhhhhhh•¹h•hhhhÁh•¹•Á�hhhhhhhhhhhhh•¹hÁhhÁd                                                                                                  MgÄÁÄÍÍÑÑÑððððððÑÑÑÑðÑÑÑðÑÑÑÑÑÑïÑñïïðóðððððóðóðóüóðóüóóüüüóðóóðóððÑðÑÑÑÑÍÍÍÍÍÄÄÄÄÄÄÁÁÁÁhhhcdccbXbXXXTTXTT:TTT                         , ,,,,,,,,,,,,                                                                       Xhhh�¾¹•Á¹Á•hhÁh�¹•¹Á•¹•hhhh•¹•hh•hÁhhhÁ�¹•ÁhÁ•hhhhhhh¹•Áhhhhh¹•hhhhÁ•�Á•Áhh¹•„¾Áhh¹•hhhh•Áhhh•Á¹•h¹•h¹••�¹•h•¹•Áhhh•Á•hhhÁhhhh¹•�••�¹•hÁ¹Áhh�Á¹•¹••Áhhhhhh•hh�¾„hhÁh•¹Á�Á•ÁhÁh¹•hhhhh¹•Áh¹•h•hhhhhhÁhhh�Á¹•hhhhÁhh¹•hh¹••Áhhhh                                                                                  hÄÄÍÄÄÍÑÑðððððÑðÑóðÑÑÑÑÑÑÑÑðÑðÑÑðïðÑðððððóðóóóóóðóóóóüüóóóóúóóðððÑÑÑÑÑÑÍÍÍÄÄÍÄÄÄÁÁÁÁÁhhhcdcccbXXXXXXTTTTTT              ,,,,,,,,,,                                                                          chÁ¹•Á„h•hhhhÁhÁÁ•�•hÁh•¹h•¹�ÁhhÁhhhhÁ•¹•hÁ�ÁhÁ•¹Á•¹�•Á•¹•Á¹�••¹hhÁhÁ¹hhhÁ�•hhÁÁhh••¹ÁhhhÁhhhhÁ•hÁ•hh•h•¹„Á•¹�hhhÁhhÁ•¹hhÁ•¹hÁ••¹Á•¹•Áhh••h•¹Á••hhhhhÁhhhhh•¹Â¹hÁhhhhÁ•hhhÁhÁ•ÁhhÁhhÁ�¹�•ÁhhhhhhhÁhÁh•¹•ÁhhhhÁ•¹••ÁhÁ•hhÁ•¹hhhX                                                                                              gÁÄÄÍÍÍÑÑððððÑððÑðÑÑÑÑÑÑðÑÑðÍðÑÑðáðððððððððóóóóðóóóóóüüóóüúðóðððððÑðÑÑÍÍÍÍÍÄÄÄÄÁÄÁÁÁhhÁhhgcccbcXXXVXTTT"TT                            ,, ,,,,,,,,,,,,,,,                                                             TdÁh•h�¹ÁhÁhÁh¹•hÁhh¹•hhhÁ•hÁ•Á¹Áhhhhhhhh•hh¹•¹•hh•Áh•¹•hÁh�Á•Á¹••�¹ÃhÁÁ•hhÁ¹•¾hhhhÁhÁhÁhÁhhh¹•¹•hhhhÁhhhh�¾hÁ„ÁÁ¹•ÁhhhÁ•hhhÁ•�¹•hhÁhh�¹ÁhÁhÁh•hhÁhhh¹•hhÁ¹•ÁhÁ�Á•¹•hhhhh¹•hhhhhh�¹Á•hhhhÁ¹•hhÁhÁh¹•ÁhÁÁh•hÁhhÁ¹•h�ÁhÁhÁhÁhhh•�Ác                                                                                    0gÁÁÄÄÍÍÑðððððÑððÑÑÑðÑÑðÑóÑÑðÐÑðÑððïððÑðóóððððóóðóüóóóüóüóóóððóððÑïáïÑðÑÍÍÄÄÍÍÄÁÄÁÁÄÁÁÁhhhchccbcbbXXTTTTTT:T                   ,,,,,,,,,,,,,                                                                     bhÁhhÁÁ�hÁhÁ�•hhÁhÁ•hÁhhhhÁhhhÁ�ùÁ„¾hhhhhh•Á�hhÁhÁ•¹�hhhÁ¹Á•¹••¹ÁÁhhÁhhÁ¹•ÁhhÁhhÁhhÁ�ÁhhhÁ•Á•�hÁ•¹hhhhÁ¹Áhh•¹�Á•hÁhÁhhhhÁhÁhÁ„hhÁÁhÁ¾„•hÁhÁhhhhÁhÁ�•Á•¹�•Áhh•¹hÁ••¹hhhh•hhhhh•¹Á•Áh•¹hh•ÁhÁh•¹Á�•ÁhhÁhhÁhhÁh•Á•¹ÁhhÁhÁhhhÁ•Á¹hÁÁ\                                                                                        MhÄÄÄÄÍÍÍðððÑÑÑððÑðÑððÑÑÑðÑÑÑÑðÑïððððÑððóððóðóðóóüóóðóóóüóóüóóóðóððÑÑÑÑÍÑÍÍÍÍÄÄÄÄÄÄÁÁÁhhhdhcccbXXXXXTTTTTTTTTTT"                        ,  ,,,,,,,,,,,,,,                                                            c¹•hÁhÁÁ¹•hh¹•¹ÁhhhhÁhhhÁhÁhÁhhÁhÁ•h¹•h¹•h¹Áhh¹•hÁhhÁ•Á¹•hÁ•Áhh�Á•hÁh�¹Ãh�•hhÁhhhhhhh¹Á•¹•hÁhÁ¹ÁhÁhÁ•ÁhÁ••h¹•h�Á¹•hÁhhhhÁhhhÁhh¹Á�¹•ÁhÁÁ¹•hhhhhÁhhh¹Á¹•hÁÁÁhÁhhÁ•¾¹••h�¹•hhÁh¹•h•ÁhhÁhÁ•¹•ÁhÁhh•Á¹•ÁhhhÁhhhhhÁhhh•hhhhÁhhhhÁhÁ•Áhc                                                                                                   hÄÄÄÍÍÍÑÑðÑððÑðÑÑðððÑÑÑÑðÑÑÑÑÑðáððððÑóðóððððòðóðóóóóóóüüóóóóóðóððÑÑÑÑÑÍÑÍÍÍÍÄÄÄÁÄÄÁÁÁhhchhcccbXXXXTTTVTTTTT                      ,,,,,,,,,,,,,,,                                                                      Xhhhhhhh•hhh•h•ÁhhhhÁhÁhÁhhhhhhÁhÁhh•hh•hh••hÁ•hhhhhhhh•hÁhÁhhùÁhh•¹Á•hhÁ•¹Á„h•¹hhh•Á„h•hhhÁh•ÁhÁhÁhÁhÁhhh•hhÁ¹•hÁ•¹•¹hhhhhhhhÁ�Á•hhh•¹�hhh•¹hÁhhh••hÁhÁhhhhhhÁhÁ„•¹•¹•hh•¹•Áhhhhhhh•¹�hÁhÁhhÁhÁ•hhhÁhhhùhÁhhhhhhhhÁhh•¹hhÁhhhhÁhM                                                                           McÁÁÄÍÍÍÑðÑÑÑðððððððÑððÑÑððÑÑðÑÑïðððððòðóòðóðóóóóóóóüüóüþüóóóóóðððÑÑðÑÑÑÍÍÍÍÍÄÄÄÁÄÁÁÁhhhhcghcccXXXXXXTTTTTT"T                      ,,,,,,,,,,,,                                                                            XhhhhhhhhhhÁÁhÁhÁhÁÁhhÁhh¹•hhhhhhÁhhÁhhhÁhÁhÁhÁhÁhhh¹•hhÁhhhhhhhÁ•¹•hÁ•Áhh¹•�¹•¹••�Á¹•h¹•hhÁhÁhhhhhÁhhhhhÁh¹ÁhÁh•hhÁh�Á••¹•Áhhhhh¹•hhhhh•¹•ÁÁhÁ•ÁhÁÁhhÁhhhhhhh¹•hÁhhÁ��¾ÁhÁhÁ�ÁhÁh¹•¹•h•ÁhhhhhhhÁhhhhÁhÁhhh•�¹•¹•hhÁhhhhhh•ÁhÁhhhhhc                                                                                      0hÁÄÄÍÄÍÑÑððððððððÑÑððÑïÑðÍÑÑðÑÑÑðððÑððððððððóóóóóðóóóóóóüüóðóóðððÑððÑÍÍÍÍÍÍÍÄÄÄÄÁÄÁÁÁhhhhcccccXbXXXTTTTTTTTT                         ,,,,,,,,                                                                            chhùhhhhhhÁhhhÁhÁÁhh•¹�•h•¹ÁhhhhÁhhhhÁhÁÁhÁhhÁh•¹�••¹hÁhÁÁhÁh•¹�ÁhÁ•¹�¹•Á•¹•¾�•¹Á¹•hÁ�hhÁÁhÁhhhhhh•Á¹hhÁh••hÁhhÁhh•¹hhh•hÁhÁhh•ÁhhÁhhhh•hhÁhhhÁhÁÁhhhhhhhhhÁ•hhhÁ•¹•¹ÁhÁÁhÁ•¹Áhh••hh•¹ÁhÁ¹ÁhhhhÁhÁh•¹hhÁ•¹•h•hhÁ•¹hÁhhhÁÁhÁhhhhhhc-                                                                                   MhÁÁÄÍÍÍÍðÑðððÑÑðÑÑðÑðÑÑÑÑÑÑÑðÑÑÑÑðððÑððððóòððóóðóóóóóóóóüüóóóóóðððÑðÑÑÍÍÍÍÄÍÄÄÄÄÁÄÄÁÁÁhhhdcccccbXXTXTTTTT:T                       ,,,,,,,,,,                                                                              X„Á¹•h•�Á¹Ãh¹•ÁhhÁhÁhÁhhÁÁhhÁ•ÁhhÁhhÁhh¹ÂhhÁhÁhhÁhh•¹•hÁhÁhhÁhÁÁh•¹•hÁh•hÁ�¹••hÁ¹••�Á•hÁ¹•hÁhhhh¹ÃhÁhhh••¹•hÁhhhhhÁh¹••h¹•hÁhhÁhÁhÁhhhh¹ÃhÁhhhÁhhÁhÁhÁhhÁhh•Á¹ÁhhÁhhÁ�•„ÁhhÁhÁh•ÁhhhhhhÁhÁhhÁ•ÁÁh¹•hhÁhh•ÁhhÁ�¹Áhhh¹•••Áh¹•Áhhhh¹ÃhÁhX                                                                                     gÁÁÄÄÍÍÑÑððððÑðððÑÑððÑÑÑððÑÑÑðÑÑÑððÑððððóóðóððóðóóóóóóóóóóóóððððððÑÑÑÍÍÑÍÍÄÄÍÄÄÁÁÁÁÁÁhhhhgccccbXXXXXTTTT:"TT"M                         ,  ,,,,,,,,,,,,,                                                       chÁ�Á¹•¹•hh•hhhÁhhhhÁhhhÁhhhhhhhÁhh•¹�•hhhhhÁ¹hhÁhÁhÁhhhÁhÁhhÁhÁh•hÁhhÁhhÁÁ�hÁh—¹�¹ÁhÁh•hÁ•¹•¹�•hhÁhÁhhhÁhÁhhÁhhÁh•ÁhhÁ•hÁ•¹hhhÁhh•¹Á�•hhhhhhhhÁhhhhÁhhhÁ•¹h••hhÁh•¹•¹�¹hhhhÁhhhÁhÁhÁhhhÁhÁhhÁ�Á•hhÁhhÁhhhÁhÁÁ�ÁhÁ�ùÁhh•Áhh•¹�•hhÁhÁd                                                                                                MgÁÄÄÄÍÍÑÑðððÑðÑðÑðÑÑÑÑÑÑðÑÑÑÑðððÑððððððòðððóóóóóóóüóóóüóóóúóóóðððÑÑÑÑÑÑÍÍÍÍÍÄÄÄÄÄÁÁÁÁhhhhhccccXXXXXXTTT"TT"MT""                    ,,,,,,,,,,,,                                                         MchhÁh�¾Á•ÁhhÁhhhÁhhhhhÁhhhhhhÁhÁhÁÁhh•¹•hÁhhhÁÃ�¹Á•ÁhhhhhhhhhhhhhhhhÁhhhhhh¹•¹•hÁ•�ÁÁh¹•Áhhh�•„¹•hhhhhhhÁhhhhhhÁhhhhÁhÁhhhhh•Áh¹•hhÁ•¹•ÁhÁhhÁ¹•hÁh¹•hhÁh¹•h•h¾hÁhÁÁh�¾•¹•Á•¹•ÁÁhhÁhÁhhhhhhhhhh¹•¹•hhÁhhhh¹•hhhh¹ÁhhhÁ�¾„Áhhhhh•¹•hhhhhW                                                                              0gÁÄÄÍÍÍÑÑððÑÑððððððÑÑÑðÑÑÑÑÑÑÑðóÑðððóðððïðóóóóóðóóüóóóüóúóüóóóððððÑÑÑÑÑÑÍÍÍÄÄÄÄÄÄÁÁÁÁhhhhhcccXXXXXXTTTTTTMT:T"T                  ,,,,,,,,,,,,                                                                            Xhhh•¹„hhhhhhh•¹„¾hhhhÁhhhùhÁhhhÁÁh•¹�hh•¹�h•¹�h•hÁhhhhÁhhhÁhÁ•¹hÁhhhÁhhh•Áh•hhh•¹hhh•Áhh•¹•¹Á�hÁhÁ„Á¾hhhhhÁhh•¹ÁhhhhhhÁÁhÁhhÁ••¹•¹�h•¹hh•¹�•h•¹�•h•¹Á�•hÁhhÁhhhÁÁ•¹„h•h•¹�hh•¹hhhÁ•¹hhÁhhhÁ•ÁÁ�hÁ•¹�Á¹�•hÁhhh••hh•¹•¹Áh•¹h•¹Á�hÁhÁhÁhc                                                                                        MhÁÄÄÍÍÍÑðÑðððððÑððÑÑðÑÑÑÑÑÑðÍïÑÑÑðïðÑðóóðóðóïóóðóóóóúóüüóóüðóðððððÑðÑÍÑÍÍÍÍÍÄÄÄÄÄÄÁÁÁhhhhdccccccXXTXTTTTT""TT                           ,,,,,,,,,,,                                                              dhhhhhh¾„Á¹•h¹•h�¹•hÁÁhÁhhÁh•�¹•hÁhhhÁ•Á¹•h•¹•h•Á¹•ÁhÁhh�Á¹•hÁhhÁ•hÁhhÁhh¹•hÁhÁhh¹••hhhhÁhhh�Á�Á¹•ÁhÁ¹Á„¹•h�¹ÁÁhh•�¹•ÁhhÁhÁhhÁhhhh�•„¾¹••Áhh•¹•hh•¹•hÁ•Á¹•¾„¹•¹•hÁhhhÁ�Á¹•h•¹•hhÁ•¹ÁhÁ••¹Á•hhÁhhÁ¹•Áh•Á•„¹•hÁhÁhhhhhh•h•Áhh•hh•Á¹•ÁhÁhÁh                                                                                   0hÁÄÄÍÍÍÑðÑððÑððÑððÑÑðÑÑÑÑðÑÑÑÑÑðððððððóðóððððóððóóóóóüóüüüüóððððóðÑÑÑÑÑÍÍÍÄÄÄÄÄÄÁÁÁÁhhÁhcccccXcXXXXTXTTT:TT                    ,,,,,,,,,,                                                                                        MhhÁhhÁ•¹h•¹�Áh•¹•hÁhhhÁ¾hhh•¹ÁÁhhhhÁÁ¹Á�„¾•ÁhÁhÁ•hÁh¾Â¹Áh•hÁhÁhhhhùhhhÁÁhhhÁhhÁ•hhhÁhÁhhh•¹Á¹Á•Á•¹•Á�Á�Á•¹••Áhh•¹•hhhhÁhÁhhhhhÁ•¹Á¹•Áhhh•¹�Áhh•¹�ÁhhhÁ••¹hh•ÁÁhhhhÁùÁ�„¾•ÁhÁhÁh•ÁhÁÁhÁ•hhÁhÁhh•hÁhh•¹ÁÁhhhÁhhÁ•¹hhÁhÁ¹hhhhÁhÁ•ÁhhÁhÁÁhX                                                                                  MhÁÁÄÄÍÑÑÑððÑððÑðÑðÑððÑððÑÑÑÑðÑÑððððððòððððóðóóóóóóóóóóóóüóúóóððððððÑÑÍÑÑÍÍÍÍÍÄÄÄÄÁÁÁhhhhhhcccbXXXXXTTT""TTTTTT                          ,,,,,,                                                            bhÁhÁhhhÁ•hÁ•h¾ÁhÁ•hÁhÁhh„Á¹Á�•Áhh¹•hh••Á¹Á¹Á•¾ÁhÁhhhhhÁ•Áh¹ÁhhhhhÁhhÁ•¹Ã�¹ÃhhÁhÁhÁhhhÁhhÁhÁÁ••Áhhhhh�¹Á¹•ÁhÁhhhÁhh�¹•hhÁhÁhhÁ¹•¹•Áh•�¹•ÁhhÁ•¹•ÁhÁ•¹Á�ÁhhhÁ•ÁhhÁhh¹•hhh•Á¹Á¹Á•ÁhhÁhhhhhÁhÁhhÁhhhhhÁhhÁhhÁ•hÁhhÁhÁ¹••�¹Á•hÁ•ÁÁhhÁhhhhhÁhhhc                                                                                 gÁÁÄÍÍÑÑÑðÑðððððÑÑðÑðÑÑÑÑÑÑððÑðáðððÑðððóððóðòðóóóóóúóóóóóóóóóðóðððïÑÑÑÑÍÍÍÍÄÄÄÄÄÄÁÁÁÁÁhhhcccccXcXXXTVTTMTT                          ,,,,,,,,                                                                                   0cÁhhÁhhhhhÁhÁ„ÁhÁhÁÁhÁ•Á¹Á•Á•¹Á•ÁÁhhhhhÁ•Á•hhÁhhÁhÁhÁhÁhÁ•Á•hÁ¾hÁhhhÁ¾�hÁ�hhÁÁhÁhhhhÁ•¹hhhÁhhÁhhhhhÁ¾„•ÁhhhÁh•Á¹hhÁÁhÁhhÁhhÁ•Á•�hÁ•¹Á•hhhhÁhÁ•Á¹Á�ÁùÁhÁhÁhÁhhÁhÁÁhhhhhÁ•Á•hhÁhhÁhÁhÁhÁhÁhÁhhÁhhÁhhhÁhhhÁhhhÁÁhÁ•h•¹Á•hhhhÁhhÁhhh•¹hhhÁhhhW                                                                                                  hÁÄÄÍÍÍÑÑðÑðÑðððÑÑÑðÑðÑÑÑÑÑððÑïïÑððÑÑðððððððóóóóóóóüóóüóóóüóóóððððÑÑÑÍÑÍÍÍÍÍÄÄÄÄÄÁÁÄÁhhhhhhcccbXXXXTXT""TTTTT                              ,  ,,,,,,,,,                                                                 ThhhÁhÁh¹•hhÁhh¹Á�¹•hÁhhhÁ•hÁhh�ÁhÁ•hÁhÁhhhÁhhhhÁhÁhhhÁhhÁhhhhÁÁ„ÁÁhhÁh„Á¹ÁÁhhÁÁhhh¹•hÁh••¹ÁhhhhhhhÁÁÁhÁhhÁhhhhÁÁ•ÁhÁÁhhhÁÁhhhÁÁÁÁ¹•Á•ÁhhhhhÁhhhÁ•h¹•Á•h¹ÂhhÁhhhÁhÁ•hÁhÁhhhÁhhhhÁhÁhhhÁhhÁhhhhÁÁhÁÁh¹Á•¹ÁhÁhh¾ÁÁhhhhh•ÁhhhhÁhh¹•h¹•ÁÁÁ•¹Á•¹c                                                                             MgÄÄÍÍÍÍÍÑðððÑðððððððÑÑÑÑðÑÑÑÑÑðÑÑðÑððòððóóðóóóóðóóóóóüüóüóüðóðððððÑðÑÑÍÍÍÍÍÄÄÄÄÄÁÁÁÁÁhhhccccXcbbXXXTTTTTTT:"                    ,,,,,,MMM0-M0MLM0LM000-M-M0MLM-M-M-M0LM-M0-M0-M-M0LMMLM0-M00-M-M00-M0MLM-M000000000LM000MLM000-M000-M0000-M0-M-M000000-M0MLM000-M-M00000-M0-M00000000-M0000000000000000MM000-M00000M00-M00000-M00-M00000000000000000000M00000000000000M000000000000000-000000000000000-M00000MM0000M00M00000M000000000M00M00M000M000M00M00MM000MMM00M00M0M0000000000000M000000M00-M0000M00M0000-000M0000-00M0000MchÁÁhÁÁ�„¾•Á¹•Áh•Áhhhhhhhhhh•¹ÁÁhÁhhÁ•¹hhhÁhÁhÁhhÁhhÁÁhhÁhÁhÁhÁ¹ÁhÁhÁ•¹Á••hÁÁhhÁh•ÁhhhÁhhÁ•hÁhÁhhÁÁhhhÁhh¹hhÁhhhhhhÁhÁhhÁhÁÁhÁhh•ÁÁhÁ•¹hÁhÁhhÁhhÁ•hhhh•hhhhhhÁÁhÁhhÁh•¹hhÁhÁhÁhhÁhhÁÁhhÁhÁhÁhÁhÁhÁ•Áh•ÁhhhÁÁhhÁhhÁhhhÁhhÁhhÁ•Áh•ÁÁhhÁÁÁ�Á„hX000M0M00M000-0--0000-M0000M0000-0000M000M0-000M00M0M0M00-M0000-M0-M0M0000MM0M0MM00-0000000000000M0-0M0000000M00000M0MhÁÄÄÄÍÑÑðÑððÑÑðððÑðððÑðÑÑðÑÑÑðÑÑððððïðððïòðóóóóðóóðóóóóüóóóóóóððððÑÑÑÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁhhhhhhccXXbXTXXTTTTT"TT0M00000000MM0000M00000000M000MM00000000000000-000000000000000-M000000M000000000000000000000000-M0000-M000000-M00000000-M00000000000000000MM000-M00000M0-M-M000000000LM00MLM000-M000-M0000-M0-M-M000000-M0MLM000-M-M00000-M0-M0000000000-M-M00-M-M000000-M0-M0LMMLM-M-M00-M-M-M-M-M0MLM-M-M-M-M0MLM-MMLM0LM-M-M-MMLM-M-M-M-M0LM-M00LM00LMMLM0MLMÁhh„¾ÁÁ¾hÁ„ÁÁÁÁh¹„ÁÁÁ¾hhÁÁÁhÁÁhÁÁ„ÁÁh¾Áh¾¹ÁhÁÁÁ„¹•ÁÁÁÁ¾ÁÁhhhÁh¾Áh¾hÁÁhÁ¾ÁÁÁ¹ÁhÁÁhÁÁh¹Áh„Á¹Á¹ÁÁh¹ÁhÁhÁ¹ÁÁh¾Áhhh¾ÁÁ¹Á¹ÁhÁ¾„ÁhÁ¹ÁÁÁh¾hhÁÁÁh¹ÁÁÁÁ¾¹Á¹•¹ÁÁÁhh¾ÁÁ¹ÁÁhÁÁÁÁÁhÁÁhÁhÁhÁÁÁhÁhÁÁÁh¾ÁÁhÁhÁhÁÁÁÁhÁÁh¾ÁÁÁÁhÁhÁÁh¾ÁhhÁh¾¹ÁÁ¹ÁÁh¹ÁhÁ¹ÁhÁÁhÁÁ¹•¹ÁÁÁhÁ¹•¹•¾Á¹ÁÁhÁÁÁhÁÁÁÁÁÁÁ¹ÁÁÁÁÁÁÁ¹•¾ÁÁÁ¹•¾ÁÁ¹ÁÁÁÁÁÁÁÁ¹ÂÁhÁhÁ¹ÁÁhhÁ¹ÁhÁÁÁÁÁÁ¹•¾¹ÁÁÁÁhÁÁh¾ÁÁÁhÁÁ¹ÁÁÁÁÁ„¹ÂhÁhÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁ„¹•ÁÁÁhÁ¹•ÁÁÁÁ¹Áh¹ÁÁÁhÁh„ÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁ¹•¾ÁÁ¹ÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁ¹ÁÁÁÁÁÁÁhÁÁÁhÁÁ„ÁÁÁÁ¹ÁÁÁÁÁ„ÁhÁÁ¹ÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁ¹Â¹ÂhÁÁÁÁÁÁÁ¹ÁÁÁÁÁÁhÁÁÁÁhÁ„¹Â¾ÁhÁ¹•ÁÁÂÁÁÁÁÁÁ¹ÂÁÁ„ÁÁÁÁ¹ÁÁÁhÁÁÁÁÁÁÁ¹ÂÁÁÁ„ÁÁÁÁÁÁÁ¹ÂÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁÁ¹ÂÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁÁ¹•ÁÁÁÁÁÁÁÁÁ„ÁÁÁhÁÁ¹Á„ÁÁÁhÁÁÁÁÁ¹Á„¹ÂÁÁÁÁÁÁÁÁÁÁhhhÁÁÁhÁ•ÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁ•¹•ÁÁhhÁ•ÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁÁhÁÁÁÁÁ•ÁÁhÁÁ�ÁÁhÁhhÁÁÁhÁÁhÁÁhÁhÁhÁÁhÁÁhhhÁÁÁhÁhhÁÁ�Á¹ÁÁhÁhÁhÁhhÁÁhÁhÁÁÁÁÁÁhhhÁÁÁhÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhhhÁÁh¹Á�ÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁÁhÁÁÁÁÁhÁÁhÁÁhÁÁhÁh„ÁÁÁhÁÁhÁÁhÁhÁhÁÁhÁÁhhhÁÁÁhÁ¹•ÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁ¹Ãh¹ÂÁÁÁÁ„ÁÁÁ¹ÃÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÂÁÁÁÁÁÁÁÁÁÁÁ¹ÂÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁÁ„¹•ÁÁÁÁÁÁ„ÁÁÁÁÁÁ¹ÂÁÁÁÁÁ„ÁÁÂÁhÁÁÁÁÁÁÁÁÁÁÂÁÁÁ„ÁÁÁÁÁÁÁÁÁÁÂÁÁÁ¹¹ÂÁÁÁÁhÁÁÁÂÁÁÁÁÁ„¹•ÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁÁÁÁÂÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁÁÁ¹•ÁÁÁÁÁÁÁÁÁÁÁ„Á¹ÂÁÁ„ÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁ„¹•ÁÁÂÁÁ„ÁÁ¹ÂÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁ¹ÂÁÁÁÁÁÁÁ„ÁÁÁÁÁÁÁÁ¹¹ÂÁÁÁÁÁÁ„¹ÂÁÁ„ÁÁÁÁÁÁÁ„Á„ÁÁÁÁÁÁ„¹ÂÁÁhÁÁhÁhÁ¹ÁhÁhÁÁ¹ÁhÁÁÁÂÁÁÁÁÁÁÁÁ¹•„ÁÁÁÁÁ„ÁÁÁÁÁÁhÁÁÁÁ¹ÂÁÁÁ„ÁÁÁÁÁÁÁ¹ÂÁÁÁÁÁÁÁÁ¹Á„ÁÁÁÁÁÁÁ¹ÁÁÁÁÁÁÁ„ÁÁhÁÁÁÄÍÍÑÑðÑððððÑÑðÑÑÑÑÑðÑðÑðÑÑðÑÑñðÑòÑððððóðóóððóóóóóóóóüüóóóóðóðððÑÑÑÑÍÑÍÍÍÍÄÄÄÄÁÁÁÁÁÁÁhhcchc^XXXXXTXTTTThÁÁÁ„Á¹ÁhÁÁ¹ÁÁÁ¹ÁhÁhÁÁÁÁÁÁÁhÁ¹ÁÁÁhÁ¹•ÁhÁÁ¹ÁhhÁÁÁhÁh„ÁÁÁÁÁÁÁÁÁÁÁ¹•¹ÁÁÁÁ¹•¾ÁÁ¹ÁÁÁÁÁÁÁÁ¹ÂÁhÁhÁ¹ÁÁhhÁ¹ÁhÁÁÁÁÁÁ¹•¾¹ÁÁÁÁhÁÁh¾ÁÁÁhÁÁ¹ÁÁÁÁÁhÁÁ¹ÁhÁÁhÁÁh¹ÁhÁhÁÁÁÁÁÁÁ¹•¹ÁÁÁ¹ÁhÁ¹ÁÁh¾¹ÁhÁÁÁh¾¹•¹ÁÁh¹ÁÁÁÁÁ¹Áh¹ÁÁÁÁhh¾ÁÁ¹ÁÁhÁÁÁÁÁ¹ÁÁhÁhÁhÁÁÁhÁhÁÁÁh¾ÁÁhÁhÁhÁÁÁÁhÁÁh¾ÁÁÁÁ¹ÁhÁÁhÁÁhhÁh„¹ÁÁ¹ÁÁh¹ÁhÁhÁ¹ÁÁh¾Áhhh¾ÁÁ¹Á¹ÁhÁ¾„ÁhÁ¹ÁÁÁh¾hhÁÁÁh¹ÁÁÁÁ¾¹Á¹•¾ÁÁÁ¹•ÁÁÁh¾ÁhÁÁ¾ÁÁ¹ÁÁhÁh¾¹ÁÁÁ„¾hÁÁÁÁÁ¾Á¹Á�ÁhÁÁhÁ¹ÁÁhÁÁÁÁÁÁhÁÁh¹ÂÁhÁhÁ„ÁÁÁhÁÁhÁÁhhÁhÁÁÁhÁÁhhhÁÁÁhÁ¹•ÁÁhÁhÁ„¹ÁhÁhÁÁÁÁ„ÁhÁ¹ÁhhÁÁÁÁÁÁhÁhhÁhÁhhÁhÁÁ¹hÁ•¹Á„Á•ÁÁÁh¾„ÁhÁhÁhhÁÁÁÁhÁÁÁ•¹„ÁhÁhÁhÁÁÁ„ÁÁÁÁhÁhÁÁÁhhÁÁ•ÁÁÁ�ÁhÁÁhÁ�ÁhÁ„ÁhÁÁÁÁhÁ•ÁÁhÁhÁÁÁÁÁ„hhhÁÁÁÁhÁhÁÁhÁhhÂÁÁÁÁÁhÁ¹„ÁhÁ•hÁhÁÁhhÁhhÁhÁhÁÁÁhÁhÁhÁhÁ¹„ÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁÁhÁhÁÁÁhÁhÁÁÁ¹•ÁÁ•ÁÁÁ•ÁhÁÁ„ÁhÁhÁ¹Á�ÁÁÁÁhÁ•ÁÁÁhÁ„ÁÁÁhhhhhÁÁÁÁhÁÁ•ÁhÁhhÁÁÁÁÁÁhÁ„hÁhÁh„ÁhÁÁ¹hÁ•hÁhÁhÁÁÁhÁhÁÁ�ÁÁhhÁÁÁÁhÁÂÁhhÁhÁhÁÁhÁhÁÁ•ÁÁÁhÁhÁÁÁhhÁÁhÁÁÁhÁhÁÁhÁhÁhÁhÁ�ÁÁÁÁhÁ•ÁÁhhÁÁÁÁÁÁ�hhhÁ¹ÁÁÁÁÁhÁ¹Á„hÁÁÁÁÁÁ„Á•hÁhÁ•hÁÁhÁhhÁhhÁhÁhÁÁÁhÁhÁÁ„ÁhhhÁÁÁÁhÁÁÁ•¹ÁÁhÁ•Á„ÁÁ„Á¹ÁÁÁ•ÁhÁÁÁhhÁÁhÁÁÁhÁhÁÁ••¹ÁhÁhÁhÁÁÁÁhÁhÁÁhhÁÁÁÁÁÁhhhhÁÁÁ¹ÁÁhÁh¹„ÁÁÁÁÁÁ¹Áh•ÁhÁhÁhÁhÁhhÁ�hÁhÁ¹ÁÁÁÁÁhÁÁhÁhhhÁÁÁÁ¹ÁÁÁ„hÁÁhÁ•ÁhÁÁ„ÁhÁÁÁhÁhÁÁÁ•¹ÁÁhÁÁÁhÁ„ÁÁ„ÁhÁhÁhÁhÁÁÁÁhÁ„ÁÁ•¹ÁÁÁhÁÁ•¹h•ÁÁÁÁhÁÁhÁhÁhhÁÁÁÁÁÁÁhÁhÁhÁhhÁhÁÁhhÁhhÁhÁhÁÁÁÁÁhÁhÁÁhhhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhÁÁhÁÁ•¹ÁÁhÁhhÁÁhÁÁÁhÁÁhÁhÁhÁhÁhÁhÁÁhÁÁÁhÁÁ•hÁÁÂÁÁhhhÁhÁÁÁÁhÁÁhÁÁÁhhÁÁÁÁÁÁÁhÁhÁhÁhhÁhÁÁhhÁhhÁhÁhÁÁÁÁÁ•ÁhÁÁhhhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhÁÁhÁÁhhÁÁhÁ•¹ÁÁhÁÁÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁhÁ•ÁÁhhÁÁÁÁ¹h„ÁhÁÁÁÁÁÁÁhÁh¹�ÁÁÁÁÁÁh¹hÁhÁ•ÁhÁhÁhh¹„ÁhÁhÁÁÁhÁhÁÁ¹Á„•¹ÁÁÁÁhÁÁ¹„ÁÁ�Á¹Á„ÁÁÁÁhÁÁ¹ÁhÁÁÁhhÁÁhÁÁÁhÁhÁÁhÁhÁ„ÁhÁ�ÁÁÁÁ„ÁhÁÁ¹hÁÁÁÁÁh•¹hhÁÁÁÁ¹ÁÁ¹Á„ÁÁhÁÁÁÁÁÁhÁhh¾„ÁhhÁhÁÁhhÁhhÁ�Á•ÁÁÁhÁ„ÁÁhÁ•¹„ÁÁÁÁhÁÁÁ¹„Á¹ÁhÁÁhÁÁ„ÁhÁÁÁhÁhÁÁÁhhÁÁ„ÁÁÁhÁhÁÁhÁhÁ„ÁhÁ•ÁÁÁÁ„ÁhÁ–¹–¹ÁÁÁÁÁh•¹ÁhÁÁÁ„ÁÁ¹ÁhÁÁhÁÁÁÁÁ¹ÁhhÁ¹Á�ÁhÁh¹hhÁ„ÁhÁhÁÁÁ„Á¹ÁhÁhÁ„hÁÁ„ÁhÁÁÁ„hÁÁ¹ÁhÁÁÁÁhÁ•ÁÁÁhhÁÁ„Á¹•ÁÁ¹ÁÁÁhÁhÁÁhÁ¹ÁhÁhÁhÁÁÁÁhÁhÁÁ¹„ÁÁÁÁÁ¹Á„Á�ÁÁ„Á¹ÁÁhÁhÁhhÁÁÁÁÁÁh¹hÁ¹ÁhhÁhÁ¹„ÁhhÁhÁ¹ÁÁÁ„ÁhÁÁhÁhhhÁÁÁÁ„ùÁhhhÁ¹„ÁÁhÁhÁ•¹ÁÁÁhhÁÄÁÄÍÍÍÍðÑðððððÑðÑðÑÑðÑÑÑÑÑÑÑððÑïÑðóððððððððóððóóóóóóóóüóóóóóðóðððÑÑððÍÑÍÍÄÍÄÄÄÄÁÄÁÁhhhhcccccbbXXXTTTTTT"TTT„hÁÁÁ•hÁÁhÁÁÁ•ÁhÁÁhÁhÁhÁhÁhÁÁÁÁhÁ•ÁÁ•¹ÁÁÁÁÁÁhhhhÁ¹ÁÁ¹ÁÁhÁhÁ¹„ÁÁÁÁÁ–¹Á„hÁhÁh„ÁhÁÁ¹hÁ•hÁhÁhÁÁÁhÁhÁÁhÁÁhhÁÁÁÁhÁÂÁhhÁhÁhÁÁhÁhÁÁ•ÁÁÁhÁhÁÁÁ„hÁÁhÁÁÁ�ÁhÁÁhÁhÁhÁhÁ•ÁÁÁÁhÁhÁÁ„ÁhÁÁÁÁÁhhhhÁÁÁÁ�Á•ÁÁhÁhhÁÁÁÁÁÁhÁ¹„ÁhÁ•hÁhÁÁhhÁ„hÁhÁhÁÁÁhÁhÁhÁhÁ¹„ÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁÁhÁhÁÁÁhÁhÁÁÁ¹„ÁÁ•ÁÁÁ�ÁhÁÁhÁ�ÁhÁ„ÁhÁÁÁÁhÁ•ÁÁhÁhÁÁÁÁÁ„hhhÁÁÁÁhÁhÁÁhÁhhÂÁÁÁÁÁhÁhhÁhÁ•¹ÁhÁÁ•¹„ÁhÁhÁhÂÁÁ„Á¹ÁÁhÁhhhÁÁÁùÁhÁhhÁÁhÁhÁhÁÁhÁhÁÁÁ�ÁhÁÁhÁhÁÁhÁÁÁhÁhÁÁÁhÁhhÁhÁhÁÁÁÁhÁ•ÁÁhhÁÁÁÁÁÁhhÁhhÁÁÁhÁÁ¹ÁÁÁÁhÁÁÁÁhÁÁhÁhÁhhhÁhÁÁhÁ•hÁh•hÁ¹•ÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhhÁhhÁhÁhÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁh¹ÃÁÁhÁÁ¹ÃhÁ¹ÁhhÁhÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁhÁÁhÁÁÁÁhÁÁÁ„ÁÁÁhÁ•Á¹•hÁhÁÁhÁhÁhÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhhÁhÁhÁhÁÁhÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhÁhÁhÁÁhÁhÁ•ÁhhÁhÁhÁhÁÁ„ÁÁÁÁÁÁÁhhhhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁ¹Á„¹•ÁhÁÁhÁ•ÁhÁhÁhÁhÁÁÁhÁÁhÁÁ¹ÁhÁhÁ„ÁÁhhhÁhÁhÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhÁÁÁhÁÁhÁhÁhÁ¹•ÁhÁhÁhÁÁhÁÁÁÁÁÁ„Á¹•hÁÁÁhÁÁhÁÁÁÁ¹ÁÁÁÁÁÁÁ¹ÁhÁhhhÁhhÁhÁhÁhÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhhÁ�¹ÁhÁhÁ¹ÁhÁÁ•ÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁhÁÁ•ÁhÁhÁhhÁ„ÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁhÁÁhÁÁÁÁ�ÁÁÁÁhÁÁ•ÁhÁhhhÁhhÁhÁÁhÁ¹•ÁhÁ•ÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁ„¹•ÁhhÁhÁhÁhÁ¹ÁÁhÁÁÁhÁÁÁhÁÁÁÁ„ÁÁhÁhÁ¹ÁÁÁÁhÁhÁhÁhhÁhÁhÁ¹ÁÁ„ÁÁÁÁÁÁhÁ•hhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁhhÁhÁÁhÁhÁhÁhhÁhhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhhÁhhÁÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁÁhÁhÁÁhhÁÁÁhÁÁhÁhÁhÁhhÁhhÁÁhÁÁhÁÁÁÁÁÁÁh„¹•ÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁÁhÁÁhÁhhÁhÁÁhÁhÁhÁhhÁhhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhhÁhhÁÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁÁ�Á¹ÁÁhhÁÁÁhÁÁhÁhÁhÁhhÁhÁhÁhÁÁhÁÁhÁÁÁÁ„¹•hÁÁÁhÁhÁÁÁÁÁ•ÁÁÁÁ�ÁÁhÁ�Á¹•hÁhhÁhÁhÁhÁ�ÁhÁhÁÁÁhÁÁhÁÁÁ¹ÁÁ•ÁhÁÁhhhÁ�¹ÂhÁ•ÁhÁhÁÁÁhÁÁ•ÁÁÁhÁÁÁÁhÁÁÁhhÁhÁÁÁÁhÁ¹ÁhÁ¹•ÁhÁ¹Á„ÁÁ•ÁÁhÁÁÁÁh•„hÁÁÁ�Á•ÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁ¹•¹Á„ÁÁhÁhÁhÁhÁ¹ÁhÁÁÁhÁÁ¹ÁÁÁhÁÁ¹Á•ÁÁhh„Á�Á•ÁhÁhÁÁ¹ÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhÁhÁÁÁÁhÁ¹ÁhÁhhÁhÁ¹ÁhÁÁ�ÁÁÁÁÁÁhÁh•ÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁhÁÁ�Á¹Ã�Á„Á¹•ÁhÁÁ•h¹•ÁhÁhÁÁÁhÁÁ•ÁÁÁhÁÁ¹Á�ÁÁhhhÁhhÁ•ÁhÁhÁhÁÁÁhÁÁhÁÁÁÁÁÁÁhÁ•ÁÁhhÁ„ÁÁÁÁ•ÁhÁhÁhhÁhÁhÁhÁÁ•ÁÁÁÁÁÁ•hhh¹ÁÁÁhÁ•ÁÁÁÁÁhÁÁÁÁhÁÁhÁ�Á•„�ÁhÁÁhÁhÁhÁhÁhÁ•ÁÁÁ¹ÁÁhÁÁÁhÁÁhÁhÁ¾Á•hÁhhÁ•ÁhÁÁÁhÁÁ•ÁÁÁhÁÄÁÄÍÍÍÑÑÑðððÑððÑðÑÑðÑÑÑðÍÑÑÑðÑÑÑðððóïðóððóðòóóóóóüüóúüüóóóóðóðððððÑÑÑÑÍÍÍÄÍÄÄÄÄÄÁÁÁhhhhchccccbbXXXTTTTT:TTTM"ThÁÁÁhÁÁÁÁhÁÁÁhhÁÁÁhÁÁhÁhÁhÁh„ÁhÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁ•ÁÁhÁÁÁÁ•ÁÁÁÁ�ÁÁ•Á¹Á•hhÁhÁÁhÁ•ÁhÁhÁhÁhÁÁÁhÁÁhÁÁhÁhÁhÁ„ÁÁhhhÁhÁhÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁ¹ÃÁÁÁÁÁhÁhÁhÁhhÁhÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁ„ÁÁhÁÁÁÁhÁÁÁ�ÁÁÁhÁ�Á¹•hÁhÁÁhÁhÁhÁhÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhhhÁhÁhÁhÁÁhÁhÁÁhÁÁÁhÁÁÁhÁÁÁ�ÁhÁÁh¹ÃÁÁhÁÁ¹ÃhÁ¹ÁhhÁhÁhÁhÁÁhÁÁÁÁÁÁhÁhhhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁhÁhhhÁ•ÁÁhÁhÁ�ÁhÁhÁhÁÁÁhÁÁ„ÁÁÁhÁÁhÁhÁÁÁhhÁh�ÁhÁhÁhÁhÁÁÁhÁÁ¹ÁÁÁÁhÁÁhÁhÁÁhhÁhÁhÁÁÁhhÁhÁhÁhÁhÁÁhÁÁhÁÁÁÁÁÁhÁhhhÁ¹Á•¹�•Á„ÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁhÁhÁÁhÁhÁÁÁÁhÁÁ¹ÁhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁhÁ„ÁÁÁhÁÁhÁÁhÁÁ•ÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhhÁhÁhÁhÁÁhÁÁhÁÁÁhÁÁhÁÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhÁhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁhÁ„ÁÁhÁÁhhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁhÁhÁhhhÁhÁhÁÁÁhÁhÁÁÁ•ÁÁ�ÁÁÁhÁhÁhÁhÁhÁhÁÁhhÁÁhÁhÁ•ÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁÁÁhÁhÁÁhÁÁhhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁhÁhhhÁ�Á•ÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁhÁhÁÁhhÁÁhÁhÁhÁÁÁhhÁÁÁÁÁÁÁÁÁÂÁÁÁÁÁ•ÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁhhhÁhÁ¹ÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁhÁÁ•ÁhhÁÁhhÁÁhÁhÁhÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁhÁÁhÁÁÁ•ÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁ�ÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁhhhÁhÁhÁÁhÁhÁÁÁÁhÁÁhÁÁÁhÁhÁhÁhhÁhÁÁÁhhÁÁhÁhhÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁhÁhÁhhÁhÁÁhÁÁhÁhÁÁÁÁhÁÁhÁÁÁhÁhÁhÁhhÁhÁÁÁhhÁÁhÁhhÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁ•ÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhhÁhÁhÁhÁÁÁ¹ÁhÁÁÁ¹ÁÁhÁÁhÁÁÁhÁÁh¹ÁhÁhÁhÁÁhÁhÁ•ÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhhÁÁÁhÁÁhÁÁ•ÁÁ•ÁÁÁÁhÁ•ÁÁhÁÁÁhÁÁÁÁÁÁÁ¾hÁhÁÁhhÁhÁhÁhÁÁÁhÁhÁÁÁhÁÁ•ÁÁÁhÁhhÁÁhÁhÁ•ÁhÁhÁÁhÁ•ÁhÁÁÁÁ•ÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁ•ÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁhhÁÁÁhÁÁhÁÁ•ÁÁhÁÁÁÁhÁ•ÁÁhÁÁÁÁhÁÁÁÁÁÁÁhhhÁÁ¹hÁ•ÁhÁhÁÁÁÁÁhÁÁÁ•ÁÁhÁÁ�ÁÁÁhÁhÁ�ÁÁhÁÁhhÁÁhÁhhÁÁÁÁh•ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁ•ÁhÁÁhhÁhÁhÁhÁÁÁÁÁhÁÁÁhÁÁ¹ÁÁÁhÁhÁhÁhÁhÁhÁÁhhÁÁ•ÁhÁhÁÁÁhhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁhÁÁÁÁÄÄÄÍÑÑÑððððÑÑðÑðÑððÑÑÑðÑÑÑÑÑðÑÑðïððððóóóóðóóóóðóóóóóüüüüúóóðððððÑÑÑÍÍÍÍÍÍÄÍÄÄÄÄÁÁÁÁhhhhhhcccbXXXVXTTTTTTTT"hÁhÁhÁÁhÁÁhhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁ„ÁhÁÁÁÁÁÁÁ•ÁÁhÁ„hhÁhÁhÁÁÁÁÁhÁÁÁ•ÁÁhÁÁÁhÁhÁhÁhÁhÁhÁÁhhÁÁhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁ„hÁÁ¹hÁhÁhÁhÁÁhÁÁhÁÁùÁÁhÁÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhÁhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁhÁ�ÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁ•ÁÁÁÁhÁhÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhhÁhÁhÁhÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁhÁhÁ•¹hÁhÁÁhhÁÁhÁhÁhÁÁÁhhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁcXc^cXdcXcXcXcXcXcXcXcXcXcXXcXcXcXcXcXcXcXcXcbc^cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXccXcXcXcXcXcXccXccXcXcXcXcXXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXccXcXcXcXccXcXcXcXcXcXcXccXcXXXcXcXXcXcXcXcXcXcXcXcXcXccXcXcXcXcbcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXccXcXcXcXccXcXcXcXcXcXcXccXcXcXcXcXXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXccXcXcXcXcXcXcXcXccXcXcXcXc^ccXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXccXcXcXXcXXcXcXcXccXcXcXcXccXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXccXcXcXcXcXccXcXccXcXXcXcXXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXccXcXcXcXcXcXcXccXcXcXcXcXXcXcXcXcXcXcXcXcXcXcebcXcbc^cXcXcXcXcXcXc\dXcXcXcXcXcXcXc\cXcXcXcXcXcXcXcXcXcXcXcXcXcXXcXcXcXccXcXcXcXcXcXcXcXcXcXccXccXcXcXcXcXXcXcbcXcXcXcXcXcXcXccXcXcXcXcXcXcXccXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXXcXccXXcXfXcXcXcXcXcXcXcXcXcXcXcbcXcXcXcbcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXccXcXccXcXcXcXcXcXcXcXcXcXc\cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcchÁÁÄÍÑÍÑÑðÑÑððððÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑððððÑóðóðððóóðóóðóóóóóóüüóóóóóððððÑÑÑÍÑÑÍÍÍÄÄÄÄÄÁÁÁÁÁhhhhhcccbXXXXXTTTTTTTTTcXcXcXcXcXccXcXcXccXcXcXcXcXcXccXccXcXcXcXcXXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXcXcXXcXcXcXc\dXcXcXcXccXcXcXcXc^cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcbcXcXccXcXcXccXcXcXcXcXcXccXccXcXcXcXcXXcXcXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcc^cXcXcXcXcXcXcXcXccXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXccXcXcXccXcXcXcXcXcXccXccXcXcXcXcXcXcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcÁÁÄÄÍÍÍÑÑððÑðððÑðÑððÑÑðÑÑÑðÑðÑÑÑðððÑððððððïóóóóóðóóüóóóóóóóóóóððððÑÑÑÑÍÑÍÍÍÄÍÄÄÄÄÁÄÁÁhhchchcccXXXXXXVT"TTTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXchÁÁÄÄÍÑÍðÑÑððððððÑÑÑðÑÑðÑðÑÑðÑðÑðððððððððððóðóóðóóóüóóóóóóóóðððððÑðÑÑÑÑÍÍÄÍÍÄÍÄÄÄÁÁÄÁÁhhchccccccXXTXTTTTTTTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXXXXbXXbXXXXXXXXbXXXbXXXbXXXXbXbXbXXbXXXXXXXbXXXXXXXXbXXbXXbXbXbXbXbXbXXbXbXbXbXXbXXXbXbXbXbXbXbXbXbXXbXXXXXXXXbXXXXXXbXXbXXXXbXbXbXbXXXbXbXbXbXbXbXbXbXbXbXbXXXbXXXbXXXbXXXXbXXXXXXXbXXXXXbXbXXbXXbXbXXXbXXXXXXXXbXXbXbXXbXXbXXXXbXXXbXXXXXbXXbXXbXbXbXbXbXbXbXbXbXXXbXXbXXbXXXXXXXbXbXbXbXbXXXXbXXXbXXbXXXXbXXXXXXXbXXbXXXbXXXbXXXXXXXbXXbXXXbXXbXXXbXXXbXXbXXXXbXXbXXXXXXXXbXbXXXXXXXbXbXbXbXbXXbXXXXXbXbXXXXbXXXXbXXXbXbXbXXXbXXXbXXXbXXbXXXXXXXXbXXXXbXXXbXXXbXXbXbXbXbXbXXXbXbXbXbXXXbXXbXXbXXXbXXXXXXXbXXXXXXXXbXbXbXbXbXbXbXXbXXXXXbXXbXbXbXbXbXXXbXXXXXXbXXbXbXbXbXbXbXbXbXbXXbXXXbXbXXXbXbXbXXbXbXbXbXXXbXXXXXbXXXbXbXXXbXXbXXXbXXXXXXbXbXXbXXbXXbXbXbXbXXXbXXXXXXXbXXbXXbXbXXbXXXXXbXbXXbXbXXXbXbXbXbXXXXbXXXXXbXXbXXXbXXXbXXXbXXbXXXbXXXXXXXbXXXbXXXbXXXXXbXXXXXbXbXXXXX^XXXbXXbXXXXXXXXXXXXXXbXbXbXXbXbXbXXbXXXXXbXbXXbXbXbXbXbXbXbXXXXbXXXXXbXXbXXXbXXXbXXXbXXXbXXbXXXXbXXXbXbXXbXXbXXXbXXXXXXXbXXXXXXXXXXXbXXXXbXbXbXbXbXbXbXXbXXXbXXbXbXbXXbXbXXXbXXXbXXbXXXXbXXXXXbXbXbXbXXXbXXXXXbXXbXXXXXXXXXXbXbXbXbXbXXXbXXbXbXXbXXXXXXXXbXXXbXXbXXXXbXXXbXXbXbXXbXXXbXbXbXbXXXXXXbXbXbXbXXXXXXXbXXXbXXbXXbXXXXXbXXXXXbXbXbXbXbXbXbXbXbXbXbXXXbXXXbXXXbXXXXXbXXXbXXXXXXbXbXXXbXXXXXXXXXXXXXbXXbXXXbXXXXXXXXbXXXXXXbXXXXXXXbXXXXXbXXXXXXXXXXXXXbXXXXXXbXXbXbXbXXXbXbXbXbXbXbXXXbXXXbXXXXXXXXXXbXXbXXXXXXXXbXXXXXXXXXXXXXXbXbXXbXXXbXXXXbXbXXbXbXbXbXXbXbXbXXbXbXbXXbXbXbXbXbXXXXXXbXXbXbXXXbXbXXXXXX^¹ÂÄÍÄÍÍÑðÑððððððÑÑÑðððÑÑÑðÑÑÑÑðÑðÑððÑððïóðóúðóóóóóóóóóóüóóóóóóóððððÑÑÑÑÍÍÍÍÍÍÄÁÄÁÄÁÁÁhhhhhccXccXXXXXXTTT:TT:XXbXXbXbXbXXXbXbXXbXXXbXXbXXXbXXXXXXXXXbXXXXXXXXbXXbXXbXbXXbXXXbXXXXXXXbXXXbXXbXbXbXbXXXXbXXbXbXXbXXbXXXXXXXXbXXbXXXbXXXbXXXXXXXXXXXXXXXXXXXbXXbXXXbXXXXXXbXXXbXXXXXXbXbXbXXXbXXXXbXXXXbXbXbXXbXbXXXbXXXXbXXbXbXbXbXbXXXbXXXbXXXbXXXXbXXXXXXXbXXXXXbXXXbXbXbXbXbXXXbXXbXXbXbXbXbXbXbXbXbXbXbXXbXXXXXXXXbXXXXXXbXXbXXXXbXXbXbXXbXbXbXbXXbXXbXbXXXbXXXXXbXXXbXbXbXbXbXXXbXXXbXbXXXbXXXbXXbXbXXbXXbXbXbXbXbXXXbXXXbXXbXXbXbXbXXXbXXXXXXXbXXXXXXXXXXXXbbXbXbXbXXXXXXXXXXXbXXbXXXbXbXbXXbXXXXXXbXXXXXbXXXXXXXXXbXXbXXbXXXXXXbXXXbXXXXbXXXXXXbXbXbXbXXXbXXXXXbXXXbXXbXXbXXbXXbXbXXbXXXXXXXXXXXXXXXbXbXbXXXXXXXbXXXbXXXbXXXbXbXXXXXXXXXXXXbXXXXXbXXXbXXbbXXXXbXbXbXXXXXbXbXbXbXbXXXXbXXbXbXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXbXXXXXXbXbXbXbXXbXXbbXbXbXXXbXXXbXXbXXXbXXXbXbXbXXXXbXXcXXbXbXXXXXXXXXXXXbXXXXXXXXXXXbXXbXbXbXbXbXXXbXXXXXXXXbXXbXXXXbXXbXbXXbXXXXXXXXXXXbXXbXXXXbXXbXXXbXbXXbXXXXbXXXXXXXXXXXXXXXXXXbXXXbXXbXXXbXbXbXbXXbXXXbXXXbXbXbXXXXXXbXbXbXXXXXXXXXXXXbXXbXXbXXXXXbXXXbXbXXXXbXXXbXXXbXXXXXXXXXXXbXXXbXXXbXXbXXXbXXbXXXbXXXXXXXXXbXXXbXXbXXXXbXXXbXXXbXXXXXXXbXXbXXbXbXXXbXXXXXXXXXXXXXXXbXbXXXXXXXXXbXXXXbXXXbXXbXXXXXbXXbXXbXXXXXXbXXXXbXXXbXbXXXbXbXXbXXXXbXXXbXXXbXXXXbXXbXXXXXXXXXXXbXXbXXXXbXXXbXbXbXXXbXXXXbXXbXXXXXXbXXXXXXXXbXXXXbXXXXbXXXXXbXXXbXXbXbXXXXXbXXXXbXXXbXbXXbXXXbXXXbXXXbXXbXXXbXXXXbXXbXXXXXXXXXXXbXXbXXXXbXXXbXXbXbXXXXXXXXXXXbXXbXXbXXbXbXXXXXXXXXXXXXXbXXbXXXXXbXXbXbXbXXbXXbXbXXXbXXXXXXXXXXXbXXXXXbXXXXXbXXbXbXbXbbXbXbXbXXbXXbXXbXXXXbXXXXXXbXbXbXXbXbXbXXXXbXXbXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXXbXbXXXbXXXbXXXbXXbXXbXbXXXXXbXbbXbXXXbbXXXbXXXbXXXbXXXbXXXbXXbXbXbXXXXXXXXbXXXXXXXXXXXXXXbXXXbXXXXbXbXbXXbXXXbXXXXXXXXXXXXbXXXXXbXbXXXXbXbXXXXbXXbXXXXbXXXXXXbXXbXbXXbXXXXbXXXbXbXbXXXbXXXbXXbXbXbXXXXbXbXbXXbXXXXXXXXbXXbXXbXbXXXbXXbXXXbXXXbXbXbXbXbbXXXXXXbXXXXXXbXbXXXXXbXXXXXXXbXXXXXXXbXbXXbXXXbXXbXbXbXXXbXXXXchÄÄÄÍÍÍÑÑðððÑÑððÑÑððÑÑÑðÑðÑÑÑððÑððððððððóòóóóðóðóóóóóóóüóóóóóóðððÑÑÑÑÑÍÍÑÍÍÄÍÄÄÄÁÁÁÁhhÁhhcccccXXXXTTTTTT"TTTTXXXXbXXbXXbXbXXXXbXbXbXbXbXbXbXXXbXXbXXbXbXXbXXXXbXXXbXXXXXXXbXXXXXXXbXXXbXXXbXXbXXXbXXbXXXXXXXbXbXXXXXXbXXcXXbXbXXXXXXXXXXXXbXXXbXXbXXXbXbXXXXXXXXXXXXXbXXXbXXXXbXXbXXXXXXXbXXXXXXXXbXXXXXXbXbXXbXXbXXbXbXbXXbXXXbXXbXXXXXXXXXXXXXbXXXXXbXXXbXXbbXXbXbXXbXXXXXXbXXXXbXbXbXXXbXXXbXXXXXbXXXbXXbXXbXXbXXbXbXXbXXXXXXXXXXXbXXXbXbXXXXXXXXbXbXXbXbXbXbbXbXbXbXXXXXXXXbXbXbXbXXXXXXbXXXXbXbXXbXbXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXbXXXXbXbXXbXXXbbXXbXXbXbXXXbXXbXXXXbXXXbXXXXXXXbXbXbXXXbXXXXXXXbXbXbXbXXXbXXXXXXbXbXXXXXXXXXXbXbXbXbXbXbXXXbXXXXXXXbXXXXXXbXbXXbXXbXbXXXXXbXXXbXbXXXbXbXbXbXbXbXXXXbXXbXXbXXbXXbXXbXXXXbXXXXXXXbXbXXXXbXXbXbXXXXXbXXXXbXbXXbXXXXXXbXbXbXbXXXXXXXXXbXXbXXXXXbXbXXXXXXbXXbXXbXXXXXXXXXXbXXbXbXbXbXXXbXXXXXXXXXXXXbXXbXXXXXXbXXXXbXbXXbXXXbXXbXbXXbXXbXXXXXXXbXXbXXXXXXbXXbXXXbXXXXXXXXXXXXXXbXXXXXXXbXXXbXXbXXbXXXXXbXXbXbXXXXXbXbXXbXXbXbXXbXbXXbXXbXXXXbXXXXXXbXXXbXXXbXXXXXXXXbXXXXXbXbXbbXbXXXXXXbXbXbXXXbXXXXXXXXbXbXXXXXXXXXXbXXXXXXbXXXXXXbXXbXbXXXXXXXXbXXXbXXXXXbXXbXbXbXbXXbXbXXXXXXXXXbXbXXXbXXXXXXXXXbXbXXXXXXbXXXXXbXXXbXbXbXbXXXbXXXXXXXbXXbXbXXXXbXXXXXXXXXXXXbXXXXXbXXbXXbXXXXXbXXXXXXXXXXbXbXXbXXXbXXXXbXXXbXXXbXXXXXXXbXXbXXbXXXXXXbXbXXXbXbXXbXXXbXXbXbXXXXXbXXbXXXXbXXXXbXXXbXXbXXXXXXXbXXXXXbXXbXXXXXXXXXXbXXXXXXXXXbXbXbXXbXXXXXXbXXXXbXXXbXXXXXXXbXbXXXbXXXXXXbXbXXXXXXXbXXXXXbXXbXbXXbXXXXXXXXbXXXbXXbXbXXbXXbXXXXXXbXbXbXXXXXbXXXbXXXbXXbXXXXXbXbXXbXbXXXXXbXXXXbXbXXbXbXXXbXXXbXXXXXbXXXXXbXXXXXXbXbXXbXXbXXXXbXXXXXbXXXXXXXXbXXXbXXbXXbXXbXbXXbXXXXbXbXXXbXbXXbXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXbXbXXXXXXXXbXbXXbXXXXXXXXbXXbXbXXXXbXbXXbXXbXXXbXXXbXXbXbXXXXXXbXXXXXXXXXXXbXXXbXbXXbXXbXbXXXbXXXXXXXbXXbXXXbXXbXXbXXbXXXXbXbXXXXXXXbXXXbXXbXbXXXbXXbXXXXXXbXXbXXXXXbXXXXXXbXXXXXXXXXbXXXXXXXXXbXXXXXXXbXXXXXbXXXXXbXXXXXXXbXbXXbXbXXXXXXXXbXXbXbXbXXXbXXXbXXbXXXXXXXbXXbXXbXXbXXbXbXXchÁÄÄÄÍÍÑðÑðððÑðÑððððÑÑÑÑÑÑÑðÍðÑÑÑðððÑðÑððððóðóóðóóóóóóóüüóúóóóððððÑðÑÑÑÍÍÍÄÍÄÄÄÄÄÁÁÁÁhhhhhhcccXbXXXXTTTTT"XbXXbXXXXbXXXXXbXXXbXXbXXXXXbXXbXXXXXXXXXXbXXXbXXXXXXXXXXXbXXXbXXbXbXXbXXXXbXbXXbXbXXXbXXXbXbXXXXXXbXXbXXXXXXbXXXXbXbXXbXXbXXbXbXXbXXbbXXXbXbXXbXXbXXbXXXXXXXXXbXXXXXXXbbXXXXXXXbXXbXXXXbXXbXXXbXXXXXXXXbXXbXXbXbXXbXXXXbXbXXbXXbXXbXXbXXXXbXXXXXXXXbXXbXXbXXbXXXXbXbXXXXXbXXXXXXbXbXbXbXbXbXXXbXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXbXXbXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXbXXXXXXXXXXbXXbXbXXXXbXXXbXbXXXXXXXXXXbXXbXXXXbbXXXXXXbXXbXbXXXXXXXXXXXbXXXXbXXXXbXXXXXXbXXbbVXXbXbbXXbXbXXXXbXXXbXXXbXXXXXbXXbXXXbXbXXXXXXXXXbXXXbXXXbXXXXbXXXbXXXXbXXXbXXXbXXXXXXbXXbXXXXbXXXbXXXXXXXbXXXbXXXbXbXbXXXXXXXbXXXXbXXbXXXbXbXbXXXXXXXXbXXbXXbXbXXbXXXXbXXXbXXbXXbbXXXXXXXXbXXbXXbXXXbXbXXXbXXXbXXXXXbXXbXbXXXXXXXbXXbXXXbXbXXXXXbXXXbXXXXXXXXXXXXXXXbXbXXbXXXbXXbXXXXbXXXbXXXbXXbbXbXXbXXXXXbXbXXbXXbXXXXXbXXXbXXbXXXXXXXXXbXXXbXXXXbXXXbXXXbXXXXbXXXXXXXbXbXXbXXbXbXXbXXbXXXbXXXbXbXbXbXXXXbXbXXXXXXXXXXbXXXbXXbXXXXXbXbXXbXbXbXbXXXbXXXbXbXXbXXXXXXbXXbXbXXXXbXXXXbXXXbXXXbXXXbXXXXbXXbbXXXbXXXbXXXXXbXXbXXbXXXbXXXbXXXXbXXXXXXXXXXXXXXbXXbXbXXXbXXXbXXbXXXXXXXbXXXbXXXbXXXXbXXXXbXbXXXbXXXXbXbXbXbXbXXXbXXbXXXXbXXbXXXbXXbXXXbXbXXbXXbXXXXbXXbXXXXbXXXXXXXbXXXbXXXXbXXbXXXXXXXbXXXXbXXXXXXXXXXXbXbbXXXXbXXbXXbXXbXbXXbXbXXXbXbXbXXbXXXXXbXXbXXbXXXXbXXbXXbXXXbXbXXXXXbXbXXbXXbXXXXbXbXbXXXbXXXbXXXbXXXbXXXbXXbXXXXXXXXXbXXXXXbXXXbbXXbXbXXXXXbXXXXbXXbXbXXbXXXbXXbXXXXbXXXXXXbXXXXXXXXXXbXXbXbXXbXXbXbXXXXXbXXXXXbXbXXXXXXbXXXXbXbXbXbXXXXbXXbXbXXXXXXXbXXXXXbXXXXbXXbXXXXXXbXXXXXXXXbXbXXbXXbXXbXbXXbXXXXXXXbXXXbXXXXbXXXbXXXbXXbXXXXbXXXbXXXXXXbXbXXXXbXXXXXXbXXXbXXXbXXXXXbXbXXXXbXXXXbXbXXXbXXXXbXXXbXXbXXXXXXbXXbXXXXXXXbXXXXXXXXXbXXbXXXXXXbbXXbXXXbXbXXXXbXbXXbXXXXbXXXXbXbXbXXbXbXXXXXXXbXbXbXXbXXbXXbXXXXXbXXbXXXXXXXbXXbXbXXbXXbXXXbXXXbXXXXbXXbXbXXXXXXXXXXbXXXXbXXbXXXbXbXXbXXXbXXbXXbXXXXXXchÁÄÄÍÍÑÑÑÑðððÑðÑðððÑÑðÑÑÑÑÑðÑÑÑÑÑðððÑðððóððóðóðóóóóóóúóóüóüóóððððÑððÑÍÍÑÍÍÄÍÄÄÄÄÁÁÁÁÁÁhhcccccXcXXXXTTTTTTTTTXXXbXXbXbXbXXbXXXXbXXXXbXbbXXbXXXXbXXbXXXXXXbXXXXXbXXXXbXXbXbXXXXXXbXXXXXXbXXXbXXbXbXXXXXbXXXXbXXXXXXXbXXbXXXbXbXXXXXbXXXXbXXXXbXXXXXXXXbXXXXXXXXbXXbXXXbXbXbXXbXXbXXbXXXXbXXXbXXXXXXbXXXXbXXbXXXXbXXbXXXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXbXXXXXXXXXXXbXXXXXbXXXXXXXXXbXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXÁÄÁÄÍÍÑÑÑÑððÑðÑðÑÑÑÑÑðÑÑÑÑÑÑðÑðððÑððððóðóððóóóóóðóüüóúóüüóóðóóóððððÑÑÑÍÍÍÍÍÄÍÄÄÄÄÁÁÁÁÁhhhccccccXXXXVTTTT::TT"TXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXchÁÄÄÄÍÑÑÑððÑðððÑÑÑððÍðÑÑðÑÑÑðÑÑÑðððóðððððòðóðóðóðóóóüóóüóóóóððððððÑÑÑÑÍÍÍÍÍÍÄÄÁÄÁÁÁÁÁhhhchcccXXXXXXTTTT"TTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXTXXXTXXXTXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXVXTXXXXXXXXXXTXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXTXXXXXXTXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXTXTXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXTXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXTXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXTXXXXXXXXXTXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXTXXXXXXTXXXXXXXXXTXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXTXXXXXXXXTXXXXXXXXXXXXXXXXXXXXTXXTXXXXXXXXXXXTXXXTXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXTXXXXXXXXXXXXXTXXXWXTXXXXXXXXXXTXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXVXXXTXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXTXXXXXXXTXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXTXXXVXXXXXXXXXXXXXTXXXXXXXTXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXTXXTXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXTXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWXTXXXXXXXXXXXXXXXXXTchÄÁÍÄÍÍÑððððððððÑðððÑÑððÑÑÑÑððÑðÑððððððððóðóðóðóóðóóóóüóóóóüóððððÑÑðÑÑÑÍÍÍÍÍÍÄÄÄÁÄÁÁhhhhhhhccccXXXXTXTTTMM"TT"WTXXXXXXXXXXXXXXXXXXXTXXXXXXXWXTXXXXXXXXTXXXXXXXXXXXXTXXVXTXVXTXXXTXXTXXXTXXTXXXTXXTXTXXXXXTXXXXXXXTXXXXXXTXXXTXTXTXXTXXTXXTXTXTXXTXXTXVXXTXWXTXTXTXTXXTXXXTXTXTXTXTXTXXXTXXTXXTXVXTXXTXXTXXTXXTXXTXTXXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXXWXTXXTXTXXTXXUXTXXTXTXWXTXWXTXXTXVXTXXWXTXWXTXWXTXWXTXXTXTXTXTXTXXTXXTXVXXXXXTXTXXTXXXXTXXXTXXTXXTXTXTXTXTXXTXXTXXTXTXTXXTXWXTXXWXTXWXTXXTXWXTXTXTXTXTXTXTXTXTXWXTXWXTXXTXXWXTXWXTXWXTXTXTXWXXTXXXXWXTXXTXXTXTXTXTXTXTXTXTXXXXTXXTXTXTXTXTXXXXXXXXXXXXTXTXTXTXTXTXXXXXTXXTXXTXTXXTXTXTXXTXXXXXTXXTXTXTXXXTXTXTXTXTXWXXXXTXTXTXTXXTXTXXTXWXTXXTXXXXXTXTXTXTXTXTXUXTXTXTXXXTXTXTXXTXTXTXTXTXTXTXTXUXTXTXXXTXTXTXTXTXXTXTXTXTXTXXTXTXXXXXXXTXXTXXXTXTXXTXXXXTXTXTXTXTXWXTXXTXTXTXXTXXXXXTXTXTXXXTXTXXTXTXTXTXTXTXTXTXTXTXXXXXTXTXTXTXTXTXTXTXVXTXTXTXTXTXXXTXTXTXXTXVXTXXXXTXXTXTXXXXTXTXTXTXTXTXTXTXTXTXVXTXTXWXTXXXVXTXTXVXXXTXTXTXTXTXXTXTXXTXXXXXTXTXXXXXTXTXXTXTXXTXTXTXTXTXTXTXUXXXXXTXTXXXTXTXTXTXXXTXTXXXTXTXXTXTXTXTXTXTXXTXTXXTXXXXXTXXTXTXTXXXXXTXTXXXXTXTXTXXXXXTXTXTXTXTXXXXTXTXTXTXXTXUXTXTXTXTXTXTXWXTXTXTXTXTXTXTXUXTXTXTXTXVXTXTXXXXTXTXTXTXTXVXTXTXWXTXTXTXTXTXTXTXTXXXXXTXTXTXTXTXTXTXXXXTXTXTXXXXTXTXXTXTXUXXTXTXTXXXXXXXTXTXTXWXXXXXXXXXXXTXTXTXTXTXTXTXTXTXTXTXVXTXTXTXTXXTXXTXWXTXXTXXTXXTXTXTXTXTXXXTXTXTXVXTXTXTXTXTXTXTXTXTXXTXTXXTXXTXTXTXWXXXXXXXTXTXTXTXTXTXXXTXXXXXTXTXUXTXXXXTXTXTXXXXTXTXTXTXTXTXTXXTXXTXTXTXTXXTXTXTXTXTXTXTXTXTXTXTXTXXXXXTXTXTXXTXTXTXTXTXTXTXTXWXTXTXXXXXTXTXXTXTXXTXTXVXTXTXTXTXTXXXXXTXXXXXXXTXTXTXTXTXTXTXTXTXXTXVXTXXTXUXTXXXXTXTXVXTXTXTXWXXTXTXTXTXXXXXTXXXTXTXXXXXTXTXTXTXTXTXXXTXXTXTXXTXTXTXTXTXTXXXTXXTXTXTXXTXTXTXXXTXXTXXXXXXXXTXWXTXWXXTXXTXXTXVXTXTXTXXXXTXTXTXTXXXXXTXTXTXXTXTXTXTXTXTXTXVXXXTXTXTXTXXXTXTXTXTXVXTXTXTXTXTXTXTXXTXXTXTXXXTXXXXXXXXTXVXTXTXXXTXTXXTXTXTXTXXTXXTXXXXXTXXTXTXXTXXXTXTXTXXXXTXTXUXTXTXTXTXTXTXTXTXVXTXTXTXXXXXTXTXTXTXTXTXTXXXXhÁÁÄÍÑÍÍÑðÑðððÑððððÑððððÑÑÑÑÑÑðÑÑððððððððððóóóóóóóóüóóóóüüüóóóóððÑÑÑÑÍÍÍÍÍÍÄÄÄÄÁÁÁÁÁhhÁhhcccXcXXXXXTTTT"T"TTTTMXXXXTXTXTXTXTXTXXTXTXXXXTXTXTXXXXXTXTTXTXXVXTXTXTXTXTXXXXTXXXXXXVXXXXXXXTXXXXXXTXXXXXXXVTXTXXXTXTXTXXXTXTXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXTXXXXXXXXXXXTXXXXXXXXXXXXXXTXXXXXVXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXTXXXXTXXXTXXXTXXXXXXXXXXXXXXXXXXXXTXTXXXXXXXXXXTXXXTXXXXXXXXXXXXXXXXXXXXXXXWXXXXXXXXXXTXXXXTXXXXXXXXXXTXXXXXXXXXXXXTXXTXXXTXTXXXTXXTXXTXTXXTXXTXTXTXXXTTXTXTXTXTXXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTWTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTWTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTWTXTXTXTXTXTXTXTXTXTTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTTXTXTTTTXTXTTXTTXTXTXTTXTXTTXTXTTXTTXTTXTTXTXTXTTXTTXTTXTXTTXTXTXTTXTTXTXTXTXTTXTTXTTXTXTTXTXTXTTXTXTTXTTXTXTTTXTTXTTXXÁÁÁÄÍÍÍÑÑðððÑðÑÑðÑðÑÑðÑÑÑÑÑÑÑððÑÑðÑÑóðððððóðóðóóóóóüóúóóüóóóóóððððÑðÑÑÍÍÍÄÍÍÄÄÄÄÄÁÁÁÁÁÁchhccccXbXXXXTT"T"TTT""XTTXTXTXTXTXTXTTTTTXTTXTXTTTTXTXTTXTTXTTXTXTTXTTXTTXTTXTXTTXTTXTTXTXTTXTXTTXTTXTTVTXTXTTXTTXTTTXTXTTXTXTXTTXTXTTXTTVTXTTXTXTTXTTXTXTTXTXXTTXTXTTTTXTXTTXTXTTXTTXTTXTTTTTXTXTTXTTXTTXTTXTXTTXTTXTTXTXTTXTXTTXTTXTTXTXTXTTTXTTXTTXTXTTXTXTXTTXTXTTXTTXTXTTTXTTXTTXTXTTXTXTXTTXTXTTTXTXTTXTTXTTXTTXTTXTTTTTTTTTTTTTXTTTTTTXTTTTTTTXTTTTXTTTTTTTTTTTTTTTXTTTTTTTTTTTTTTXTTXTTTTTTTTTTTTTTTTTTTTTXTTXTTXTTTXTXTTTXTTXTTXTXTTXTTXTXTXTTTXTTXTTTXTXTTXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXÁÄÂÄÄÍÍÑÑðððÑðÑÑðÑÑðÑðÑÍðÑÑÑÍðððÑððÑóððóðòððóóðóóóðóóóóúóóóóóðððóÑÑððÑÑÍÍÍÄÄÄÄÄÄÁÁÄÄÁÁhhccccccbbXTXTXTTTM"T"XXXXXXXXXXXXXXXXXXXXXXXXXXX^XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXWXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhhhhchhdhhhhhhchhdhhhdhhhhhhhfhhhdhhhdhdhhhhcfhhhdhchdhhhfhdhhhhchhhchhhchhdhhhdhdhhhdhhhhhhchhchhgfhhhdhdhhhfhhhchhgfhhhdhhhhhdhhhhdhhhfhhhfhhhchhhhdhhdhhhhhdhhhfhhhchhhhchhhhfhchdhhhfhhhfhhhhhhhfhhhfhhhdhhhfhhhfhhhdhfhgfhhdhhhhhfhhhfhhhhhhdhhhchhchdhhhfhhhhhchhhchhhhhchhdhhhdhhhhhhhhhhhfhhhdhhhhhhcdhhhhchchhdhhhhhdhhchhhchhhchhdhhhdhhhhhdhhhfhhchhchhchhdhhhdhhhfhhhchhhdhhhdhhhhhhhhhdhhdhdhhhdhhhchhhdhhhhhdhhhfhhhdhhhchhfhhdhhhfhchdhhhhhfhhhhhhhhhfhhhdhdhhhfhhhdhhhhhfhhhchhgfhhhhhfhhhfhhhhhhchhhchhchdhhhchhhhhchhchhdhhhgfhhhdhhhhhhhdhhhfhhhfhhhdhhhhcfhhhhchchhdhhhfhhhhgfhhchhhchhhhfhhhhhdhhhfhhhhchhchhhdhhhdhhhfhhhdhhdhgfhhhfhhhhhhhhhdhhfhhhfhdhhhchhhchhhhhdhhhdhhhfhhhchhfhhdhhhhchchhfhhhdhdhhhfhhhdhdhhhhhhhfhdhhhhhhhfhhhdhhchhhhhhdhhhfhhhhhhchhhchhchdhhhdhhhhhchhchhhhhhchhhhdhhhhhhhhhhhhhhhfhhhdhhhhcdhhhhchchhdhdhdhhhhchhhchhhchhdhhhdhhhdhhhhhdhhdhhdhhchhdhhhfhhhfhhhchhhdhhhfhhhhhhhhhdhhhhdhhhhhchhdhhchhhhhdhfhdhhhfhhhchhhhchhhhhchchhdhhhfhhhfhhhdhhhfhhhfhhhdhhhfhhhfhhhdhhdhhdhfhhhhhfhhhhhhhhchhhchhchdhhhchhhhhchhchhhhhhchhfhhhdhfhhhdhhhdhhhdhhhdhhhhcdhhhhchchhdhhhdhhhchchhchhhchhfhhhfhhhdhhhfhhhhchhchhhdhhhdhhhdhgfhhchhchhhchchhhchdhhchgfhhhchhchchhhcchhdehchgfhhchhchhdhchhhchdhhchgfhhhhchgfhhhhchhchdhdhchhhhchchhchhchhhfhchhhhdhhhchhdhhfhhhdhdehchchgfhhhdhchhhdhdhhhfhhhchhhhcchhhfhchchhhdhhchhchfhhhchhfhhdhchchgfhchdhhdhhhchhhhdhdhhhhhhÁÄÄÄÍÑÑÑÑðÑÑððððÑÑÑÑðÑððÑÑÑÑóÑðÑïðÑððïóððóóóðóóóóóüóüóüúóóóóóððððÑÑÑÍÑÑÑÍÍÍÍÄÄÄÁÄÁÁhhhÁhhcccXbbbXXTTTT"TTTcdhhgfhhhfhchchhhhhhhchhdghggfhchgfhhfhhchchchfhchhfhchcdhhchhchchdghchchchghchhhdhhchchdhhhchhchchdhchhhchchhfhchcchdhhgdghchhchddhhdhhhchchdhhhchdhfhhchhchhhchchgfhhhchchchdgcdhchchcdhhchhhchchghcgdhchgfhchchhchchcchchchhhchddhchchchchdhhchcchdhhchdgdhdhchdhhddhhchdhchhhchdhhchhchhhcchchchchchhfhchhhhchhhhchchhhhhhchchhchchhhhfhhcfhchhhchccdhfhchhhhcdhdhchdhdhchchchchfhhhhcfhchhchchchdhchchfhchdhchchhhgfhchcchhcfhfhdhfhchchhchÁhÁÁÁÁhÁÁÁ•¹•ÁÁÁÁÁÁÁhÁÁÁ„hÁÁ•¹ÁÁ•ÁÁÁhhÁÁÁ•¹ÁÁÁÁÁ¹ÁÁÁÁÁÁÁ„¾ÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁ•h¹•ÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁ„¾ÁhÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁhÁÁ¾ÁhÁÁ¾ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁ„¾ÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁ„¾Á¾ÁÁhÁhÁÁhÁhÁhÁÁ¹•ÁÁÁÁ„¾ÁÁ¹ÁÁÁ„¾hÁÁÁÁÁÁ¾hÁ„¾ÁÁÁ¹•ÁÁ¹•ÁhÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁhÁÁÁÁ„¾ÁÁÁÁÁÁÁ„¾ÁÁ„hÁÁÁ„¾ÁÁÁÁÁÁhÁÁÁ„¾ÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁ„¾hÁÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁ„¹ÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁ„¾ÁhÁÁÁÁÁÁÁÁhÁÁhÁhÁÁ„h¾ÁÁÁhÁÁÁÁ„¾ÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁ¹•ÁÁÁhÁÁÁÁÁÁ¾ÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁh„¾Á„h¾hÁhÁÁÁÁÁÁhÁÁÁhÁÁÁ•¹•ÁhÁÁÁÁÁÁÁhÁhÁÁÁÁÁ¹ÁÁÁ„¾hÁÁÁÁÁÁÁÁhÁÁhÁ„ÁÁÁh•¹ÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁ¹ÁÁhÁÁÁÁhÁÁÁÁÁ¹•ÁÁÁÁÁÁÁÁÁÁ¾hÁÁÁÁhÁhÁhÁÁÁÁÁ¹ÁÁÁhÁÁÁÁÁ„¾ÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁ„¾ÁÁ¹•ÁÁÁÁÁÁÁÁhÁ¾hÁhÁÁ•h¹ÁÁÁhÁ¹•Á¾ÁÁÁÁÁÁÁÁÁÁÁÁ•h¾ÁÁ„¾ÁÁ„¾ÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁ¹•ÁÁÁhÁhÁÁhÁhÁhÁ•¹•Á¹•Á¾ÁÁÁ•¹•Á¹ÁhÁhÁÁÁÁÁhÁ„¾ÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁh„¾ÁÁhÁÁÁÁ•¹•ÁÁÁÁhÁÁÁhÁÁhÁÁ•¹•Á¹•ÁÁ¾hÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁ„¾hÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁ¹ÁÁhÁÁÁÁÁÁÁÁhÁ¾hÁ•¹•ÁhÁÁÁÁhÁÁÁÁÁ„¾ÁÁÁÁÁÁÁÁÁÁ•h¾ÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁ„¾Á¹•¹ÁÁ•hhÁhhÁ¹•ÁÁ¹•ÁÁÁhÁÁÁ¹ÁÁÁhÁÁÁ¾ÁÁÁhÁÁÁhÁÁhÁhÁ„¾hÁÁÁÁhÁÁÁÁhÁÁhhÁÁÁÁhÁÁÁÁhÁhÁÁ„¾ÁÁÁÁhÁÁhÁÁÁÁhÁÁÁÁ„¾ÁÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁ„¾hÁÁÁÁÁhhÁhhÁÁÁÁÁÁÁ¹ÁÁhÁÁÁÁ¹ÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁhÁhÁÁÁhÁÁÁÁhÁÁhhÁÁÁÁhÁÁÁÁhhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhhÁhhÁhhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁ¹ÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁhÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁÁhhÁ¹ÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁÁ¾ÁÁÁÁÁÁÁÁÁhÁÁhÁÁhhÁhhÁhÁÁÁhÁ•¹h�ÄÁÄÄÑÑÑÑÑððÑóðððÑÑðÑÑÑðÑÑÑÑÑðÑÑðÑðáïððóððóðóðóóðóóüóóüüóóóðóððððïðÑÑÍÑÍÍÍÍÄÄÄÄÄÄÁÁÁÁhhhhhcccXbbXXXTTTTTTThÁhÁÁÁÁhÁh¾hÁÁhÁÁhÁ•¹•ÁhhÁhÁhÁhhÁhÁhÁhÁhhÁÁhhÁÁÁÁhÁÁÁÁhhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁhhÁÁÁÁhÁÁhÁhÁhÁhÁhhÁÁhÁÁÁÁÁÁhÁÁÁhhÁhÁÁhhhhhÁhÁÁÁhÁÁÁhÁÁhÁÁhÁhÁÁÁhÁhÁhhÁÁÁhÁhhÁhÁhÁhhÁhÁhÁhÁhhÁÁhhÁÁhÁhÁhÁÁhhhhÁhÁÁÁÁhhÁhÁÁhhÁhÁhÁhhÁÁhhÁÁhÁÁhhhÁhhhÁÁhÁÁÁhÁÁhÁÁÁhhhÁhÁhhhhhhÁhÁhÁhÁhÁhÁhÁÁhÁhhÁhÁhÁhÁhÁÁÁhhÁhÁhhÁhhhÁÁÁhÁhÁhhhÁhhÁÁhÁhÁhÁ•hhhhÁhÁÁÁÁÁhÁÁÁÁhhÁh¾hÁhÁhÁÁhÁhhÁÁhhhÁhhhÁ•ÁhÁÁhÁhÁÁÁÁhhÁhÁÁhhhhhhÁÁhÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁÁÁhhÁhÁhÁhÁhhÁhÁhÁhÁhhhÁhhÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁ•ÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁ•ÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁ¾ÁÁÁÁÁÁÁÁÁÁÁ¾ÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁ¾ÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁ¾ÁÁÁÁÁ•ÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁ¾ÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁhÁh¾ÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁ•ÁÁÁhÁÁÁÁÁÁÁ•ÁÁhÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁÁÁhÁÁÁhÁÁhÁÁ¾ÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁhÁÁÁÁÁÁÁhÁhÁhhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁhÁÁhÁhÁÁhhÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhÁhÁÁÁhÁÁhÁÁÁhÁhÁÁÁÁh•ÁÁhÁhÁÁÁhÁÁÁÁhÁÁhÁÁhÁhÁÁÁÁhÁÁhÁÁhÁÁÁÁhÁhÁhhÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhhÁhÁÁhÁ•¹ÁÁÄÄÍÍÍÑÑÑóðïïÑÑðÑðÑÑÑÑÑÑÑÑÑÑÑÑÑðððððððððóððóóóóóóóóóóóüüóóóóóðððáðÑðÑÍÍÍÍÍÍÄÄÄÄÄÄÁÁhhhhcccccbbXXXXTXTTTTTTTThÁhÁhÁhÁÁhÁhhÁÁÁhhÁÁhhÁhÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁhÁÁhÁÁÁhÁhhÁÁÁhhÁÁhÁhÁÁÁhÁhÁÁÁhÁhÁhÁÁhÁhÁÁÁhÁhÁhÁhÁÁhÁhhÁhhÁhÁhÁhÁhÁÁhhÁhÁÁhÁhhhÁhÁhÁhhÁhhhÁhhÁhhÁhhÁÁÁhÁhÁhhÁhhÁhÁÁhÁhÁÁhÁhhÁÁhÁhÁhÁhÁhÁhÁÁhÁhÁhÁhÁhÁhÁhhÁÁÁhÁhhhÁhÁhÁhÁÁhhÁhhÁÁhÁÁhÁhhÁhhhÁÁhÁÁhhÁhÁhÁÁhÁhÁhhhÁhÁhÁhÁhÁhhÁhÁhÁhÁhhÁhÁhhhÁhhÁhÁhÁÁhÁhÁÁhÁhhhÁÁhÁhÁhÁhÁhÁhÁÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhhhÁhÁhÁÁhÁhhÁhhÁÁhÁÁhÁhhÁhhhÁÁhÁhÁhhÁhÁhÁhÁhÁhhhhÁhÁhÁhhÁhhÁÁhhÁhÁhhÁhÁhhhÁhhÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁhhÁhÁÁÁÁÁhhÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁhÁÁÁhÁÁÁhÁÁhhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁhÁhhÁÁÁÁhÁhÁÁhÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁ•ÁhhÁÁÁÁhÁhÁÁhÁÁhÁhÁhÁÁhhÁhÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁÁhÁhÁhÁÁhÁÁÁhÁÁÁhÁhhhhÁÁÁhhÁÁhhÁÁÁhhÁhÁÁhÁÁÁÁÁÁhÁhhÁhÁhhÁhhhÁÁhÁhhhÁÁ•ÁÁhhÁhhÁhhhÁhÁÁhÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhhÁhÁÁhÁÁÁhÁÁhÁÁhhÁhhhÁÁÁhhÁÁhhÁÁÁhhÁhÁÁhÁhÁÁÁÁhhÁhhÁhÁhÁhÁÃÁÄÍÍÍÑðÑðððáïÑðÑÑððÑÑÑÑÑÑÑÑÑððÑððððððóðòðóðóóðóóóóóóüóóóüóóðððððïÑÑÑÍÑÍÍÄÄÄÄÄÄÁÁÁÁÁÁhhchcccbXXXXXTTTTTTTTT¹•hÁhÁÁhhhÁÁhÁÁhhÁhhhÁhhÁhÁhhÁhÁÁhÁÁhhÁÁÁÁhÁÁhhÁÁhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁhhÁhÁhÁhÁhÁÁhÁhÁhÁhhhÁhhÁÁÁhhÁÁhhÁÁhÁhhhÁhÁhÁÁhÁÁÁhhhhhÁhhÁhÁhÁhÁÁhhhÁhhÁÁhhÁhhhÁhhÁhÁhhÁhÁÁhÁÁhÁhÁÁhÁÁÁÁhÁÁhhÁhÁhÁhÁhÁhÁhÁÁhÁÁÁhÁhhÁhÁhÁhÁÁhÁhÁhÁhhhÁhhÁÁÁhhÁÁhhÁÁhhhÁhÁhÁhÁÁÁÁhÁhhhhhÁhhhÁhhÁhÁhÁhhÁhhÁÁhhÁhhhÁhhÁhÁhhhÁÁÁhÁÁhÁhÁÁhÁÁÁÁhÁÁhhÁhÁhÁhÁhÁhhÁÁÁhÁÁÁhÁhhÁhhÁhÁhÁÁhhÁhÁhhhÁhhÁÁÁhhÁÁhhÁÁhÁhhÁhÁhÁhÁÁÁhÁhhhhhhhhhhhhÁhhÁhhhÁhhÁhhhÁhhhÁhhhhÁhhÁhhÁhÁhhhÁÁhÁÁhÁhhhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁÁÁhÁÁhÁÁÁhÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁÁhhÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁhÁÁÁÁÁhhÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁÁhÁÁÁÁÁhÁhÁhÁÁhÁÁhÁhÁhÁÁhÁÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhhÁÁÁhhÁhÁÁhÁÁhÁhÁÁÁhhÁhÁÁhÁÁhÁÁÁÁÁÁhÁhhhÁhÁhÁhÁÁhÁÁÁhÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁhÁhÁÁhÁhhÁhÁÁhÁhÁhÁÁhÁÁÁhÁÁhhÁÁÁhÁhhÁÁhÁÁhÁhÁÁhÁhÁhÁÁhÁÁÁhÁhÁÁÁhÁhhhÁhÁÁhhÁhÁhÁÁhÁhÁÁhÁhÁÁÁÁhÁhÁÁÁÁhÁhhÁhÁhhÁÁÁÁÁhÁÁhÁÁÁÁÁÁhhÁhÁhÁhhÁÁhhhÁhÁhÁhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhÁhÁhÁÁhÁÁhÁhÁÁhhÁhÁÁhÁÁÁÁÄÄÍÍÑÑÑðÑððððÑðÑÑðððÑÑðÑÑÍÑÑðððÑÑÑððððóððððóóóðóóóüóüüúóóóóðððððÑÑÑÑÍÍÍÍÍÄÄÍÄÄÄÁÁÁhÁhhhhcccbcXXXTVTTTTTTTTT::hhhÁÁhÁhhÁhhÁhhhÁhÁhÁhhÁÁhÁhÁhhÁhÁhÁÁhÁhÁhÁÁhÁhhhÁhhÁhÁÁÁhÁhÁhhÁÁÁÁhhÁhhhÁhhhÁhhhÁhÁhÁhhhÁhÁÁhhÁhÁhÁhhÁhÁhÁhhÁÁÁhÁhÁhÁhÁhhÁhhÁÁhÁhhÁÁhÁhÁhhhÁhhhÁhÁhÁhhÁhÁhhÁhÁhhÁÁhÁhÁÁhÁÁhÁhhhhÁhhÁhÁÁÁhÁÁhhÁÁhÁÁhhÁhhÁÁhhhÁhhhhhÁhÁhÁhÁhÁÁhhÁhÁhÁhhÁhÁhÁhhhÁhÁhÁhhÁhÁhhÁhhÁhÁÁhhÁhÁÁhhÁhhhÁhhÁhÁhÁhhÁÁhhÁhÁhhhhÁhÁhhÁhÁÁhÁhhhhÁhhÁhÁhÁhhÁhhhÁhÁÁhhhhhhÁhhhhhhhhÁhhÁhhhÁhhÁhhÁhhÁhhhÁhÁhhhhÁhÁhÁhhhÁÁhhhÁhhÁhhÁhhÁhÁÁhhhhhhhhhÁhhÁhhhÁhÁhhÁhhÁhÁÁhÁhÁhÁhÁhÁhhhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhÁhÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁhÁÁhÁÁÁhhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁhÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁhÁÁhhÁÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁhÁÁÁhÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁhhÁhhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁhÁÁhhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁÁhÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhhÁÁhhhhÁhÁÁhÁÁÁÁhÁÁhÁhÁÁhÁÁhhÁÁhÁÁÁhÁÁÁÁhhhÁÁhÁÁÁÁÁÁÁhhhÁÁÁÁÁhhÁÁÁÁhhÁÁÁÁhÁÁhhhÁÁÁhhhÁÁÁhÁhÁÁhÁÁhÁhÁÁhÁÁÁhÁhhÁÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhhÁhÁhhÁhÁhÁÁhÁhÁÁhÁhÁÁÁhÁÁÁhhÁÁhÁÁhÁÁÁÁÁhhhÁhÁÁÁÁÁÁÁÁhhhÁÁÁÁÁhÁhÁÁhÁhÁÁÁÁhÁhÁhhÁhÁhÁhÁhÁhÁÁÁÁhÁhÁÁhÁÁhÁhÁhÁhhÁÁÁhÁhÁÁhÁhÁÁhÁÁhÁhhÁhÁhhÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁhÁhhÁhÁhÁhÁÁhÁÁhhhÁÁhÁhÁÁÁÁhhhhÁÁÁhÁhhÁhÁhÁhhÁÁÁhhÁhhhÁhÁhhhÁhÁhÁÁÄÄÄÍÍÑÑðððÑðÑððÑðÑÑÑÑÑðÑðÑððÑðÑÑóÑððóðóðóóóðóðóóóóóóóóüüóóðóðòðïÑÑÑÍÑÍÍÍÍÍÍÄÄÄÄÄÁhhhhhhcccccbXXXXXXTTTTTT:hÁÁhÁÁÁÁhhhÁhhÁÁhhhÁhÁÁhÁhhÁÁhÁhÁÁhÁhÁhÁhÁhhÁhhhÁhÁhÁÁhÁÁÁhÁhÁÁhÁhÁhhÁhÁhÁhÁÁhÁÁhhhÁhÁÁÁÁÁÁhÁhhhÁhÁhÁhhÁÁhhÁhhÁhÁhÁhhhhÁhÁhhÁhhÁÁÁhÁhÁhÁhÁhÁhhÁÁhhhÁhÁÁhÁhhÁhhhÁÁhhÁhhhhhÁhÁhhhhÁÁÁhhÁhÁÁÁhhÁhÁhÁÁÁhhÁhhÁhÁhÁhÁhhhhÁhhÁhÁhÁhÁhhhÁhÁhÁhhÁhÁhhÁhhÁhhhÁhhhhÁÁhhÁhhÁhÁhÁhhÁhhhhÁhhhÁhhhhhÁhÁhhhhÁhÁhÁÁhÁhhÁhhhhhhhhhÁhÁhhÁhÁhÁhhhÁÁhÁhÁhhÁhhÁhhÁhÁÁhhhhÁhhÁhÁhÁÁhhhhÁhhÁhhhÁhhhÁhhhÁhhhÁhhhÁhÁhhhhhÁhÁhÁhhhÁhÁhhhhhÁhhhhhÁhÁhhhÁhhhhÁhhÁhhhhhhhhhhhhÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁhÁÁhÁhÁhÁhÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁhÁhhÁÁÁhÁÁÁhÁhÁÁhÁÁhÁÁhÁhÁhÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhÁÁhhÁÁhhÁÁÁhÁhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁhhÁÁÁhÁÁhÁÁÁhhÁÁhÁhÁÁhÁhhÁhÁhhÁhhÁhhhÁhÁhÁÁÁÁhÁhÁÁÁÁÁhhÁÁhÁÁhÁÁhÁÁhÁhÁhÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhhhÁhÁÁhÁÁÁhÁhÁÁhÁÁÁhhhÁÁhhÁÁÁhhÁhÁhÁhhÁÁhhÁhÁhÁhÁhhÁÁhhÁhÁhhhÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁhÁÁhÁhÁhÁÁÁÁhÁhhÁÁhÁÁÁhÁÁÁhÁÁhÁÁhÁhÁhÁÁhÁÁhÁhÁÁhhhÁhÁhÁÁhÁÁhhÁÁhÁÁhÁhhÁÁhhÁÁÁhhÁhÁhÁhhÁÁhÁhÁÁhÁhhÁhÁhÁhhhÁhhhÁhÁhÁÁÁÁhÁhÁÁÁÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁhÁhhÁhhÁhÁÁhÁÁhÁhÁhÁhÁhÁhÁhhhÁhÁhÁÁhhhÁhÁhÁhÁhÁhhÁÁhÁhÁhÁhÁÁhhÁÁÁhÁhhÁhÁhhhÁhhÁhÁhÁhÁhÁhhhhÁhhhhhÁhÁhÁÁhÁhÁhÁÁhÁhÁhhÁÁhÁhhÁhÁÁÁhÁhhhÁhhÁÁÁÁÁÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁÁÄÄÄÍÍÑÑðÑððÑðððÑðÑððÑÑÑÑÑÑÑðÑððððÑðððïððóóðóóóóóóðúóóóüóóóóóððððÑÑÑÑÑÍÍÍÍÍÄÄÁÄÄÁÁÁÁÁhhchccccbbXTXXTTTTT"hÁÁhhhhhÁÁÁhÁhÁhhÁÁhhÁÁhhÁhÁhÁhÁÁhhhÁhÁhhhÁÁhhÁhÁhhÁhhÁhhhhhhhhhhÁhÁhhÁÁhhhÁhÁÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁhhÁhÁhÁÁhÁhÁhÁhÁhÁhhÁhhÁhhhÁhÁhhÁhhhhhhhÁhÁhÁhhhÁhÁhÁhhÁhÁhhÁÁhhhhhÁhhhhÁhhhÁhÁhÁhhhÁhhhhhhhhhhhhÁhhÁÁhhhhÁÁhÁÁhhhÁhÁhhÁhhÁhÁhhhhhhhhÁhÁhÁhÁhÁhÁhÁhhÁhhÁhhhÁhÁhhÁhhhhhÁhÁhÁhÁhhhÁhhhÁhhÁhÁhhhÁhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhÁhhhhÁhhhÁhÁhhÁhÁhÁhÁhhÁhÁhÁhÁhhÁhhÁhhhhÁhhhÁhÁhÁhÁhÁhhÁhhÁhhùhhÁhhhhÁhhhhhhÁhÁùÁ„¾hÁhÁhÁhhhÁhhhÁÁhhhhhÁhhhhhÁhhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁhÁÁÁhhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhÁhÁÁhÁhhÁhÁhÁhhÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁhÁhhÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁhÁhÁhÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁhÁhÁÁÁhÁhhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁhhhÁÁÁhÁhÁÁÁÁhhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁhhÁÁÁÁhÁhÁhÁÁÁÁhÁÁhÁÁÁhhÁÁhhÁÁhÁhhhhÁhÁhÁhhÁÁhÁÁhÁÁhÁÁÁÁÁhhÁhhhÁhhÁÁÁÁhÁÁhhÁhhÁhhÁÁhhÁhÁhÁÁhÁÁÁÁhhÁhÁhhhÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁhÁhÁÁÁhÁÁhÁhÁÁÁÁÁhÁÁhhhÁÁhhhÁhÁhÁÁÁhhÁÁÁhÁÁÁhÁÁÁÁhÁhhhÁhhÁhhÁÁÁÁhÁÁhÁhhhÁhhÁhÁhhÁÁhÁhhÁhÁÁhhÁÁhÁhhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁhÁhÁÁÁÁhÁhÁÁhÁÁhhÁÁhÁhÁÁhÁÁhhhÁÁhhhÁhhhÁhÁhhÁÁhÁhÁÁhhÁÁÁhÁhhÁhhhÁhhÁhÁÁhÁhÁhÁhhhÁhÁhhhhhÁhÁhhhÁhÁhhhÁhÁhhÁhÁÁÁhÁÁÁÁÁhÁhÁhÁhÁhÁhÁhhhhÁÁhhhÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁhhhÁhÁhhhhhhÁhÁhhÁÁhÁÁhÁhhÁÁÁhÁhhhhÁhhhhÁhÁhÁÁhhhÁhhÁhhÁhÁhhÁhÁÁhhhÁhÁhhÁhÁhhhhhÁhÁÁhÁÁÁÁhÁhÁhÁhÁhÁhÁhhÁÁÄÄÍÍÑÑÑðÑðÑðÑÑÑððÑÑðÑÑðÑÑÑÑÑÑðÑÑÑððððððóðóðúóóðóóóóüóüüóðóóðóððÑÑðÑÑÑÍÍÍÍÄÄÄÄÁÄÁÁÄÁhhhhccccXXbXXXTTTTT:T:TTM"hhhÁÁhÁhhÁhÁhÁhÁhÁhhÁhÁhhÁhhhhÁhhhhhhhÁhÁhhhÁhÁhhÁhhÁhÁhÁhhhhhhhhhÁhÁhÁhÁhhhhhhÁhÁhhhhhÁhhÁhhÁÁhhhhÁhhhhhhÁhÁhÁÁhÁhhÁhÁhÁhÁhhhÁhhhhÁhÁhhhÁhÁhÁhhÁhhhÁÁhhhÁhhhÁhhhhhhhhÁhÁhhÁhhÁhhÁhÁhÁhhhhhhhhhhhhÁhÁhÁhhhÁhhhhhhÁhhhhhÁhhÁhhÁhÁhhhÁhhhhhhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhÁhhhhÁhÁhhhÁhhÁhÁhhÁhhÁÁhhhÁhhhÁhÁhhhhhhÁhÁhhhÁhÁhhÁhhÁhÁhhhhhhhhhhhÁhÁhÁhÁh„¹•hhÁhÁhhhhhhhhÁhhÁhÁhh¹•hhhhhhÁhÁhÁhÁhÁhÁhhÁhhÁ•�¹ÃhhÁhÁhÁhÁhhÁhhÁ•hÁ¹•hÁhhhhÁ¹•h¹•hhhhhh¹•ÁhhÁhÁhhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁhÁhÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁhÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁÁhhÁhÁÁhÁhÁÁÁÁÁhhÁÁhÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁÁhÁhÁhÁhÁhÁÁÁÁhhÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhhÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁhÁhÁÁÁhÁhÁÁhhÁhÁÁÁÁhÁhÁÁhÁÁhÁÁÁhÁhÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁhÁhÁhÁhÁhÁÁÁÁhhÁÁhÁhÁÁÁÁÁÁÁÁhhÁÁÁÁhÁÁÁhÁhÁÁhhÁÁÁhÁhÁÁÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁÁhÁÁhÁhÁhÁÁhhÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁÁhÁhÁÁhÁhhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁÁhhÁhÁÁhÁÁhÁhhÁÁhhÁÁhhÁhÁÁhÁÁhÁÁhhÁÁhÁÁhÁÁÁhÁÁhÁhÁhhÁÁhÁhhÁÁÁÁhÁhÁhÁhÁhÁÁÁhÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁÁhhÁhÁÁÁhÁhÁhhÁhhÁÁhÁhÁhÁhÁhÁhÁÁÁÁÁÁhÁhÁhÁhÁÁhÁhhÁÁhhÁhÁhÁhÁÁhÁÁhÁÁhhÁÁÁÁÁhÁÁÁhÁhÁÁhhÁhÁÁhÁhhÁÁÁÁhhÁhÁÁhÁhÁhÁÁhÁhÁÁhÁÁhÁhÁÁhÁhÁÁÁhhÁhÁÁÁhÁhhÁhhÁhÁhÁhÁhhÁhÁhÁhÁÁÁÁhÁhhÁhÁhÁhÁÁhhhÁhÁhÁÁhhÁhÁÁhÁÁhÁÁhhÁhÁhÁhÁhÁhhÁhhÁhhhÁÁhhhhÁhÁÁhhhÁhÁhÁhhÁhÁhÁhÁhÁÁhÁhhÁhÁhÁhÁÁhÁhhÁhÁhhhhhhhhhÁÁhÁhhhÁhhhhÁhÁhÁÁÁhhÁhÁhhhÁÁhhhhÁhhÁÁhhhhÁÁhÁÁhÁÁhhÁhÁÁhhÁÁÁhhÁhÁhhhhÁÁhhhhÁÁhÁhhhhhÁÁhhÁÁhÁhhÁÁhhÁÁhÁhÁhÁhÁhÁÁhhhhÁÁÁhhhhhhÁhÁhÁhÁhhhÁhhÁhÁhÁÁÁÁÁhhÁhÁhhÁhÁhhhÁÁhhÁÁhhhhÁÁhÁhÁhÁhhhÁhÁÁhÁhÁhhÁhhÁhhhÁÁhhhhÁÁhÁhÁhÁhÁhÁhhÁÁhÁhÁhhhÁÁÁhÁhÁhÁhÁÁhÁhhhÁhÁhhhhhhÁhhÁhhÁhhÁhhÁÁÄÄÄÍÍÑðÑðÑðððÑÑðÑðÑððÑÑÑÑðÑðÑððÑÑóððððóðóóóððóðóóüóóóóóüóüóððððððÑÑÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁÁhhhhccccXXXXXXXTT:TM"ThÁhhÁhÁhÁhÁhhÁhÁhhhÁÁhhhÁhhhhÁhhhhÁÁhÁhhhÁhÁhhÁhÁhÁhÁhhÁhhhÁhhhÁhhhhhÁhÁhhhÁhhÁhhhÁhÁhhÁhhÁhÁhhhÁhÁhhÁhÁhhhÁhÁhhhhhhhhhhÁhhÁhhhhhhhhÁhhÁhÁhhhhhÁhhÁhÁhhhÁhhhhÁhhhÁhÁhÁhhhÁhhhÁhÁhhÁhÁhhhÁhhhÁhhÁhhhhhÁhÁhhhhhhÁhhÁhÁhhhhÁhhhÁhhhÁhÁhÁhÁhhhhhÁhÁhhhhhÁhhhÁhhÁhhhhhhhhÁÁhÁhÁhhhÁhÁÁhÁhÁhhhÁ•hhhÁhhhhÁÁhÁhhÁÁhhÁhhÁhhÁhhùhÁÁhhÁhÁhhhhhhhÁ•¹¾�hhÁhhhÁhÁ•¹hÁh•¹hÁh•¹••ÁhhÁÁhhhhhhÁhhhhh•¹hhhÁh•¹•hhhhhhhÁhhÁhÁhhhhÁh•hhù•¹�Á•hh•Á•¹•¹Á••ÁhhÁhhhÁhÁhÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁhÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁÁhÁhÁÁhÁÁhÁÁhhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁÁhÁhÁhÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁÁhÁhÁhÁhÁhÁÁhhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁÁhhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁhÁhÁhÁÁÁhÁÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁhhÁhÁÁÁÁhÁhÁhÁÁÁhÁÁhhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁhÁhhÁhÁÁhÁÁhhÁÁhÁhÁÁÁÁhÁhÁhhhÁhÁhÁhÁÁhÁhÁhÁhÁÁÁÁÁhÁhhÁÁÁhÁÁÁhÁÁhhÁÁhhÁÁÁÁÁÁÁhÁÁhhÁhÁÁÁÁhÁhhÁhÁÁhhÁhhhÁhÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhhhÁhhÁhÁÁÁhÁÁhÁhÁÁhhÁÁÁhÁhÁhÁhhÁhÁhÁhÁÁhÁhÁhÁhÁÁÁÁhÁhÁhhÁÁhÁÁÁhÁÁhhÁÁhhÁÁÁÁÁhÁhÁÁhhÁhÁÁÁÁhÁhhÁhÁÁhhÁhhhÁÁhÁÁhÁhÁhÁÁhÁÁÁhÁÁÁÁhÁÁhhhÁhÁhÁhÁhÁÁÁhÁhÁÁhhÁÁÁÁhÁhhÁhhÁhÁhÁhÁÁhÁhÁhhhÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁhÁhhÁÁhhÁhÁÁhÁÁhÁÁhhÁhhÁÁÁhhhÁhhhÁhhÁhhhÁhÁhÁhÁhÁÁÁhÁÁÁhÁÁÁhÁhÁÁhÁhhÁhhÁhÁhhÁÁhhÁhÁhhÁÁÁhÁhÁhÁhhÁhÁhÁhÁhÁhhhhÁhhÁÁÁhÁhÁhhÁÁhÁÁhÁhÁhhÁÁhhÁÁÁÁhÁÁhhÁhhÁhhÁÁÁhÁhhÁhhÁhhÁhhhÁhÁhÁÁhÁÁhÁhÁhÁhÁÁÁhÁhÁÁhhhhhhhÁÁÁhhÁÁhhÁhÁhhÁhÁÁhhÁhÁhhhhÁhÁhÁhÁhhhhhhÁÁhÁÁÁhÁhhÁhÁhÁÁhÁÁhhÁÁhhÁÁÁÁhÁhÁhÁhhhÁhÁÁÁhÁhhÁhhÁhhÁhhhÁÁhÁhÁhÁhÁhÁhÁhÁhÁÁÁhÁhÁhhhhhhhÁÁÁhhÁÁhhÁhÁhhÁÁhÁhÁhhÁhhÁhÁhÁhÁÁhÁhhhÁhhÁhÁhÁhÁhhÁÁhÁhÁhÁÁhhÁhhhÁhÁhhÁhÁhÁhhhÁhÁÁhhhhhhhhÁhhhhhhhÁÁÄÄÄÑÍÑÑÑððððÑÑððÑðÑðÑðÑÍÑðÑðÑððððòïððóðððóðóóóóóóüóóóóüüóóóóðïððÑïÑÑÍÍÍÍÄÄÄÄÄÄÄÁÁÁÁÁhhhccccXXbXXTTTTTTT""TTT"hhhhhÁhÁhhÁhhhÁhhÁhÁhhhÁhhhhÁhhhÁhhhÁhhhÁhhhhÁhÁhhhÁhÁhhhÁhÁhhÁhhhhhhhhhÁhÁ„Á¹•hhÁhÁhhÁhÁhhhÁhhhÁhÁÁhhÁhhÁhhÁhhÁÁhhhÁhhhhÁhÁhhÁhÁhÁhhÁhÁÁhÁhÁhÁhhÁhÁhhhÁhhhÁÁhhhÁhÁhÁhhhÁÁhhhÁhÁÁhhhhhhhÁhÁhÁhÁhhhÁhhhhhÁhÁÁÁhÁhhÁ¹•ÁhÁ¹•ÁhhÁhhÁhÁhÁhÁhhÁhÁhhhhÁhÁhhhhhhhÁhhhhhhhÁhhhÁhhÁhÁhÁhÁhhÁhÁhhhÁ¹•¹•¹•hhÁhhhÁhhhhhhhhhÁhÁhÁhhhh•�¹•hhhhÁhÁhhÁhhhÁ•ÁÁhh¹•hÁhhÁh••¹Á••hÁhhÁhhÁhÁhhhÁhhÁhhÁhÁhhh••¹•hhh�¹•hhÁhhhhhhÁhÁhhÁhhhhÁhh�•„¾¹•hhhhhÁ•�¹ÁhhhhÁhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁhÁhÁÁÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁhÁhÁhÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁhÁhÁhÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁhÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁhÁhÁhÁhÁÁhÁÁhhÁÁÁhÁhhÁÁhÁÁÁhhÁÁÁhÁÁhÁÁÁÁhÁhÁÁhhÁhÁÁÁhÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁÁhÁÁhhÁhÁhÁÁÁÁhÁhhÁÁhÁÁhÁÁhÁhÁÁÁhÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁÁhÁÁÁhÁhÁÁhhÁÁÁhhÁhÁÁÁhÁÁhÁÁhÁhhÁhÁÁÁhÁhÁhÁhhÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁÁhÁhÁÁhÁhÁhÁhÁÁÁhÁhhhÁhÁhÁÁhÁÁhÁÁÁhÁÁhÁhÁhÁÁÁÁÁhÁÁÁÁÁhhÁhÁhÁhÁÁÁhÁhÁhÁhÁhhÁÁÁhhÁhÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁhÁhÁhÁhhÁÁhÁÁhÁÁhÁhÁhÁhÁÁÁhÁhÁÁhhÁhÁhhhhÁhÁÁhhÁhhhÁhÁhÁÁhhÁhhÁhÁhÁhhÁhhhÁÁÁÁhÁÁhÁÁhhÁhÁÁhhÁÁhhÁhÁhÁhÁhhÁhÁhÁhhÁÁhÁhÁhÁhÁhhhhÁÁhÁhÁhhÁÁhhÁhhÁÁhÁhÁhÁÁhhÁhÁÁhÁhÁÁhhÁÁhhÁhhhÁÁÁhhÁhÁhÁhhÁhÁhhÁhÁhÁhÁÁhhÁhhÁhÁÁÁhÁhÁÁhÁhhÁÁÁhhÁÁhhÁhÁhÁhÁhhÁhÁhhhÁhÁhhÁÁhhÁÁhhhÁhÁhÁhÁhhÁhhhhÁhÁÁhÁhÁhÁhÁhÁhÁÁhÁhÁÁhhÁhÁhhÁhhÁÁÁhhÁhhhÁhhÁhÁhÁhhÁhÁhÁÁhhÁhhÁhÁÁÁÁÁhÁÁÁhÁhhÁÁhhhÁhhÁhÁhÁhÁhhÁhÁhÁhhÁÁhhÁÁhhÁÁhhÁhhÁhÁhÁhhÁhhhÁhÁhÁhÁhhÁhÁhhÁhÁhÁhÁhÁhhhÁhhhhhhÁÁÁhhÁhhhÁhhÁhÁhÁhhhÁÁhhÁhhhhhÁhÁhÁhÁhÁhÁhhhÁhÁhÁhÁhhÁhhhhÁhhhhÁhhhhhhÁhÁhÁhhhÁhhÁhhÁhÁhÁhhÁh•¹Á�ÁhÁhhÁÁÄÍÄÍÍÑÑÑÑððððððÑÑðÑÑÑÑÑÑðÑÑðÑÑÑÑðïÑðóððððóððóóóóóóóóóóóðóððððððÑÑÑÍÍÑÍÑÍÍÍÍÄÁÄÁÄÁÁÁhhhhhchcccXXXXVTTTTTTTTÁhhÁhÁhhhÁhÁhÁhhÁhÁhÁhhhhÁhhÁÁhhÁhhhÁhÁhhÁhÁhhÁhÁhÁhhhhhhhÁhÁÁÁhÁÁÁÁhhÁhh¹h•ÁhhhhÁhhÁhhhÁÁhhÁhhhÁhÁhÁhhhÁhhhhhÁhÁhÁhÁÁhhhÁhhÁhhÁhÁhÁhhhÁhÁÁhÁhhÁhÁhÁhhÁhhhhÁhhÁhhhhhÁhhÁhÁhhhhÁhhÁhhhhhhhhhÁhÁhÁhÁhhÁhhÁhhhhÁ•¹�••¹�Á•hhhÁhhhhhÁhhhÁhhhhÁhhÁhhhÁhhhhhÁhÁhhhhÁhhÁÁhhÁhhhÁhÁhhÁhhÁhhùh•Á��h•Á•¹•hhhhhÁhhÁhÁhhÁhÁhhÁhhh•¹•ÁhhÁhÁhÁhÁhhhhhhhhh•ÁhhhhhhhÁh•hhhh•¹�hhÁhhÁhhhhÁhhhhhhùhhhhh•¹h•¹•ÁhhÁhÁhhÁhhhhhÁhhhÁhh•¹ÁÁ¹�„•¹hÁhhhhhÁ�h•¹hÁhhhhhÁhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁhÁÁÁÁÁÁhhÁÁhÁÁÁhÁÁÁhÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁhÁÁhhÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁhÁÁhÁÁhhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁhÁÁÁhhÁÁÁÁÁhÁÁhÁhÁÁÁÁÁhÁÁhÁÁhÁÁhÁhÁhÁÁÁÁÁhÁÁhÁÁhÁhÁÁhÁhÁÁÁhÁÁhÁÁÁÁÁÁhÁÁhÁhÁÁÁhÁÁhÁÁhÁhÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁhhÁhÁÁhhÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁhÁhÁhhÁÁhÁÁhhÁÁhÁhÁÁhÁÁhÁhÁÁhÁhÁhhÁhÁhÁÁÁhÁÁÁhÁÁhhÁhÁÁÁhÁÁÁÁhhÁÁÁÁÁhÁhÁhÁÁÁÁÁhÁÁhhÁÁhÁhÁhhÁhÁÁÁÁhÁÁÁhÁÁhhÁÁhhÁhÁÁÁhhÁhÁÁÁÁhÁÁÁhÁhÁÁÁhhÁÁÁhÁhhÁÁhÁhÁÁhÁÁhÁhÁhÁhÁhhhÁhÁhÁÁhÁÁÁÁhÁhÁhÁhÁhÁÁhÁÁÁhhÁÁÁhÁhÁhÁhÁhÁÁÁhÁÁhhhÁhÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁhhÁhÁhÁhÁhÁhÁhÁhÁÁÁhÁhÁÁhÁhÁÁhÁhÁhÁÁhhÁÁhÁÁhÁhÁÁhÁhÁÁhÁhÁhhÁhÁhÁÁÁhÁÁhÁÁhhhÁhÁhÁhhÁÁhhhhÁhÁÁhhÁhhÁhÁhÁhÁÁhhhÁhhÁhÁhÁhhÁÁÁhÁÁhÁÁÁhhÁhhhÁhÁhÁhhÁhhÁÁhÁhÁÁhÁhÁhÁhhÁÁhÁhhhÁÁhÁhÁhhÁhÁhÁhÁhÁhÁhhÁhhhÁÁÁhÁÁhÁÁhhÁÁhÁhÁhhÁÁÁhhÁÁhÁÁhÁhhÁÁhÁhÁhhÁhhhÁhhÁhhhÁhhÁÁhÁhÁhÁÁÁhhÁÁhhÁhhÁÁhÁhhhÁhÁhÁÁhÁhhÁhÁhhÁÁhÁÁhhÁÁhÁhÁhhÁÁhÁhhÁhÁhhhÁhhÁhhÁhÁÁhÁÁhhhhÁhÁhÁhÁhÁhhhÁhÁhÁhhhÁhÁhÁhÁhÁhÁhhÁhhÁhhhÁhhÁÁÁhÁÁhÁÁhhhÁhhhÁhÁhÁhhÁhhÁhÁhÁhÁhÁhhÁÁhhÁÁhÁhhhhÁhÁhÁhhÁhÁhÁhÁhÁhhhÁÁhhhÁhÁhÁhÁÁhhhhÁhÁhÁhhÁhÁhhhÁhÁhhhhhhÁhÁhÁhÁhhhhÁhhÁhhhÁhhÁÁhhhÁhÁhÁhhÁhhhÁhhÁhhhÁhhhÁÁhhÁhÁhhhhÁhhÁhÁhÁhhhÁhÁhÁhhÁhhhÁhhhÁhhhhÁhhÁhÁhÁhÁhÁhhhhÁhhÁhhhÁhÁhhhÁhÁhhhÁhÁÁhÁhÁhhÁhhhÁhhÁhhhhhhÁhÁhÁhhhÁhhhhÁhhÁhhhhhhÁhhÁhÁhhÁhhhhhhÁhÁÁhh•Á¹•¹ÂhÁÁÄÄÄÍÍÑðððððÑððððððÑÑðÑÑÑÑÑðÑððÑððððòðððóðóðóóóóóóóóóóóúóüóóóððððÑáÑÑÍÑÍÍÄÄÄÄÄÄÄÁÁÁÁhhhcccccccXXXTXTT:TTTTThhÁhhhÁhhÁÁhhhÁhhhhÁhhÁh•ÁhÁhÁhÁhhhÁhhhÁhÁhÁhhÁhÁhhÁhhhhÁhhÁhÁhÁhhhhhhÁÁhhh•hhÁhÁhhÁhÁÁhhhhÁhhhhÁhhhhhhhÁÁhhÁÁhhhhhhÁhhhÁhhÁhhhÁhhhÁhhhÁhhhhhhÁhÁhhÁhhhhÁhhÁhÁhÁhhhhhhhÁhhÁhÁhÁhÁhhÁhÁhhhÁhÁhÁhhhhhhhhhÁhhhhhhhÁ•¹•Á„¾Áhhh¹•h¹•hhÁhhhÁhhÁhhhhhÁhhhhÁÁhhÁhhÁhÁhhÁhhhhhhhÁhhhhhhhhhhhhh•hhh¹ÁÁhhÁh�¹•hhhhÁhhhÁhhhhÁhhÁhhhh�¹•ÁhhhhhhhhhhhÁhhhhhhhÁhhhÁhhÁhhhhÁhh•¹•hÁhhhhhhhÁhhÁhhhh•�¹•hhh•hÁ•hhhhhhÁhhÁhhhÁhhhÁh¹•hh•hh•¹�¹•�¹•¹•hhh¹•h•�¹•ÁhhhhÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁhÁÁhhÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁhÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhhÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁhhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁhÁhÁhÁÁhÁÁÁhÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁÁÁhÁhÁÁhhÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁhÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁÁhhÁÁhÁÁÁÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁhÁÁhhÁÁhÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁhÁhÁÁÁhÁÁhÁÁhÁhÁhhÁhÁÁÁhhÁÁhÁhÁhÁÁÁhÁhÁhÁÁÁhÁÁhÁÁhhÁÁÁÁÁhÁhhhÁÁÁÁhÁÁhÁÁhÁÁhÁÁhhÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁhÁÁhÁhÁÁhhÁÁÁhÁhÁhÁhhÁÁhÁÁÁhÁhÁhÁÁhÁhÁÁÁhÁhÁhÁhhÁhÁÁÁhhÁÁhÁhÁhÁÁÁhhhÁhÁÁhÁÁhÁÁÁhhhÁÁhÁhÁhhhhÁÁÁÁhÁÁhÁÁhÁhÁÁhhÁhÁÁÁÁÁÁÁÁhÁhÁÁÁhÁÁhÁÁhÁhÁÁhhÁÁÁhÁÁhhÁhhÁÁhÁÁÁhÁhÁhÁÁÁhhÁÁÁhÁhÁhÁhhÁhÁÁhhhÁhÁhhÁhÁhÁhhÁhhhÁhÁhÁhÁÁhhhÁÁhÁhÁhhhhÁÁÁÁhÁhhÁhhÁhhÁhhhÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁhÁhÁhhÁhhhÁÁÁhÁhÁhÁhhÁÁhÁÁÁhÁÁhÁÁhÁhÁÁÁhhÁÁhhÁhhÁhÁÁhhhÁhÁhhÁhÁhÁhhÁÁhhÁhÁhÁhÁÁhhÁÁhÁÁhÁhhhÁhÁÁÁhÁhhÁhhÁhhÁhÁhÁhÁÁhÁhÁÁhÁhÁhÁhÁÁhhÁhÁhÁhhÁhÁhhÁhÁhÁhhÁÁhhÁÁhÁÁhhÁhÁhhÁÁhhÁhhhÁhhÁhÁÁhÁhÁhhhhÁhÁhÁhhÁhhhÁÁhÁhhÁÁhhhÁÁhÁhÁhhhÁhÁÁhhÁhhÁhhÁhhÁhÁhÁhÁhÁÁhÁÁhÁhÁÁhhÁÁhhÁhÁhhÁhhÁÁhÁhÁhhÁhhÁÁhÁhÁhÁÁhhÁhÁhhÁÁhhhÁhhÁhhÁhhÁhhhÁhhhhhhÁhÁhhÁhhhÁhhÁhÁhÁhhÁhÁhÁhÁhhhhÁhÁhhÁhÁhhhÁhhÁhhÁhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhÁhhÁhhhhÁhhÁhhhhhhÁhhÁhÁhhÁÁhÁhÁhÁhÁhhÁhhhÁhhÁhhÁhhhÁhhhhÁhhhÁhhÁhhhÁhhÁÁhhÁhhhÁhÁhÁhhhhÁhhÁhhÁhhÁhÁhhhÁhhhhÁhÁhÁhÁhhÁhÁhhhhÁhÁhÁhhÁhhhÁhhhhÁhhhhhÁhhÁhÁhhÁhhÁhÁhÁhÁhÁÁhhhÁhhÁhhÁhhhÁhhÁhÁhÁhÁhhÁhhhÁhÁhÁhhÁhhhhhÁhÁhhÁhhhhÁhhÁh••�ÁhhÁÄÁÄÄÍÍÍÑðððððÑÑðÑðÑÑððÑÑÑÑÑðÑððïçðÑóððððòóóóóóóðóüóóüóüüóüóóðððððïÑÑÑÑÍÍÍÍÄÄÄÄÁÄÄÁÁhhÁhchcccbbXXXXTTTTTT"TThÁhÁhhhÁhÁhhÁhhÁÁhÁhh•¹hÁhhÁhhÁhhhÁhÁhÁhhhhhhÁhhhhÁhÁhhhhÁhhhhÁhÁhhhÁhhhhhÁhhhhÁÁhhhhhhÁhhhhÁhhÁhhÁÁhÁhhhhhÁhhhhÁhhhhhÁhhÁhhhhÁhhÁhhhhÁhhÁhhÁhhÁhhÁhÁhÁhhhhhÁhÁh•¹hÁhhÁhhhhhhÁhhhhÁhhÁhhÁhhhhhÁhhhhhÁhhhÁhÁhhhÁhh•¹h•¹hÁ••hÁ•hÁhhhÁhhhÁhhhÁhÁhhÁhhhhhÁhhÁhhhhhÁhhÁhhhhhhÁhhhhhhhhhhhhhhÁ•hhhhh•¹•hÁhhhhhhhhhhhhhhÁh•¹h•¹•hhhhÁhhhhhhhh•¹•¹hhh•¹�hh•¹hhhÁh•¹hh•Áhh•¹hhÁÁhhhhh•¹hhh•¹•ÁhhhhhhhhhÁhhhhhhhÁhhÁ•¹•¹�•hhhh•¹�h••¹�Á�•hhhh•hh•¹•hhhÁhhhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁhÁhÁÁhÁÁÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁhÁhÁÁhÁhÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁhÁhÁÁÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁÁÁhÁhhÁhÁhÁÁÁÁhÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁhÁhÁÁhÁÁhhÁÁÁÁÁÁhhÁÁhÁhhhÁhhhÁhhÁÁÁhÁhÁÁÁhÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁÁhÁhÁhÁhhÁhÁÁhÁÁÁÁÁÁhÁhÁhÁÁÁÁÁÁhÁÁhÁÁhÁÁhÁÁhÁÁÁhÁÁhÁhÁÁÁhÁhÁhÁÁhÁÁÁhÁhÁhÁÁÁhhÁÁÁÁÁÁhhÁÁhÁhhhÁhhhÁhÁhÁÁhÁhÁhÁhÁhÁÁÁÁÁÁhÁhÁhÁhÁÁhÁhÁhÁhhÁhhÁhÁÁhÁÁÁÁÁÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁhhÁÁÁhÁhhÁÁhÁÁÁÁhhÁÁÁhÁhÁÁÁÁÁÁÁhhÁÁhÁhhhÁhhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁhÁhÁhÁhÁhhÁhÁhhÁhhÁhhÁhÁhÁÁÁÁÁhÁhhÁhhÁÁÁÁÁhÁhhÁhhhÁhÁÁhÁhÁhhÁhÁhÁhÁhÁhhhÁÁhÁÁÁhhhÁhÁÁhhÁÁÁhÁÁhhhÁhÁÁhhhÁhhhhÁhÁhÁhhÁhÁhÁhhÁÁhÁÁhÁÁhÁhhÁhhhÁhÁhhÁhÁhhhÁhÁhÁÁÁÁÁhÁhÁhÁhÁÁÁÁhÁhÁhÁhhÁhÁÁÁhÁhÁhhÁhÁhÁhÁhÁhhhÁÁhÁhÁhhÁhÁhÁÁhÁhÁÁÁhÁhhÁhÁÁhhhÁhhÁhhhÁhÁhhhÁhÁhhhhÁÁhÁÁhÁhÁhhÁhhhÁÁhhhÁhhÁhhÁhÁhÁÁhÁÁhhÁhÁhÁhÁÁhÁhÁhhÁhÁhÁhÁÁhÁhÁhhÁhÁhÁhÁhÁhhhÁÁhÁhÁhhhÁhÁhÁhhÁÁÁÁhÁhhÁÁhÁhhhÁhhhhhhÁhÁhhÁhÁhhÁhÁhÁhÁÁhÁhÁhhhÁhhÁhÁhhÁhhÁhhhÁhhÁhÁhÁhhÁhhÁhÁÁhÁhhÁhhÁhhhhhhÁhhÁhhhÁhhÁhhÁhÁhhhÁhhhÁhÁhhhÁÁhÁhhÁhÁÁhÁhhÁhhÁhhhhhhhÁhhÁhÁhhÁhÁhhhhhÁhÁÁhÁhhÁhhhhhhÁhÁhhÁhhhhhÁÁhhÁhÁhÁhhhhhÁhhÁÁhhhhÁhhÁhhÁhhÁhÁhÁhhÁhÁhhÁhÁhhhhÁhhÁhÁhhhhÁhhÁhhÁhÁhÁhhhÁhhÁhhhÁhÁhhhhÁhhhhhhÁhÁhhhÁÁhÁhÁhÁhhhÁhhhÁhÁhhÁhhÁhhhÁÁhhÁhÁÁhhhhÁhhÁhÁhhhÁhÁhÁhÁÁhhÁhÁhÁÁhÁhhÁhÁÁhÁhhhÁhhÁhÁhhhhÁhhÁhhhÁhÁhÁhhÁhÁÁhhhhhhhhhhÁhhhhÁhÁhÁhhhÁÁhÁhÁÁÁhhhÁhhhÁhÁhhÁhhh¹•¹ÁhhÁÄÄÍÍÑÑÑóðïÑððÑÑðÑÑÑÑÑÑÑÑÍððÑÑðÑððïóðððóððððóðüóóóóúóóüóóóóóóóóððÑÑÑÑÍÍÑÍÍÄÄÍÍÄÄÄÁÁÁÁhhhhccccXXXTXXXT"TTTTThhÁhÁhÁhhhhÁhÁhhÁhhhh¹••hhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhÁhhhÁhhhhhhÁhhÁhhh�¹Á�¹•hhhhhhhhhÁhÁhhhhhhhhhÁhhÁhhÁhhhh¹•hhÁhÁhhhÁhhhhhhÁhhÁhhÁhhhhÁhhhhÁhhhhhhÁhhhhhhÁhhh••¹•hhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhh¹•hhhh�¹••hÁ¹•hhhhÁh¹•hhÁhÁhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhÁhÁÁh¾„¹•¹•¹•Á¹•¹•hhhhhhhh¹•h•h¹•h¹•hhhhhhhhhhhhhhÁ�¹••hhh¹•h¹•¹•¹Ãhh•h••¹•h•¹•¹••�¹•Áhh•�¹•hhhh••¹•hhhhh¹••�¹•h�¹•h¹•h¹•hhhhÁhhhhhhhhhhh�•„¹Á�¹•hh•¹Áh�Áh¹•¹•h¹•hhhh�¹•hhhhhÁhÁÁhÁÁÁÁhhÁÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁhÁhÁhÁÁhÁhÁÁÁÁhÁÁÁÁhÁhÁhÁÁÁÁÁhÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁhÁhÁÁÁÁÁÁhÁhÁÁhÁhÁhÁÁÁhÁÁÁÁÁÁÁhÁhÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁhÁÁhÁÁÁÁÁÁhhÁÁÁhÁhÁÁhÁhÁhÁÁÁÁhhÁÁÁhhÁ¾hÁÁÁhÁhhhÁÁÁÁhÁÁhÁÁhÁhÁÁÁhhÁÁÁÁÁÁhÁhÁÁhhÁhÁhÁÁhÁÁÁÁÁhÁhÁhÁhÁÁÁÁhÁÁhhÁÁÁÁhÁÁÁhhÁÁhhÁÁÁhÁhÁÁhÁÁÁhÁhÁhÁhÁhÁÁhÁhÁÁhÁhÁhÁÁÁÁhhÁÁÁhhÁhhÁÁÁhÁhÁhÁÁhÁhÁÁhÁhÁhÁhÁÁhhÁÁÁÁhÁhÁhÁhÁhÁhÁhÁÁhÁÁhÁÁhÁhhhÁhÁhÁÁhÁhÁhÁhÁÁhÁÁÁhhÁÁhhÁÁÁhÁhÁÁhÁÁÁhÁhÁhÁhÁhÁÁÁhÁhÁÁhÁhhÁÁhÁhhÁÁÁhhÁhhÁÁÁhÁhhÁhÁÁÁhÁÁÁhÁÁhÁhÁÁhÁhÁÁhÁÁhÁhÁhÁhÁhÁhÁÁhÁhÁhÁhÁhhÁhhÁÁhÁÁhÁhhÁÁhÁhÁÁhhÁhÁhhÁhÁhÁhhÁÁhÁhÁhÁhÁhhhÁÁhÁhhÁhÁhhhhÁÁhÁhÁhÁÁhhhhhÁhÁhÁhÁhhÁÁhhÁÁhÁhÁhÁhÁÁhhÁhÁhÁhhhÁhÁhhÁhÁhhÁhÁhÁÁhÁhÁhÁhhÁhÁÁhÁhÁhhÁÁÁÁhÁÁhhhÁhÁhÁÁhhhÁÁhÁhÁhÁÁhÁhhhÁÁhÁhhÁÁhÁhhhhÁÁhÁhÁhÁhhhhhÁhÁÁhhhhÁÁhÁhÁÁhÁhÁhhÁhÁhhhÁÁhÁhhhÁhÁhhhhÁhÁhÁhÁhÁhÁhhÁhhhÁhÁÁhÁhÁhÁhÁÁÁhÁÁhhhÁhÁhÁÁhÁhÁÁhÁhÁhÁhÁÁhhhÁhhÁhhÁhÁhhhhhÁhÁhÁhÁhhhhhhhÁÁÁhhhhhÁhÁhÁhÁhÁhÁhÁhÁhhÁÁhÁhÁhhÁhÁhhÁhhÁhÁhÁhÁhhÁhhhhhhÁhhÁhhÁhhÁhÁhÁhÁhhhhÁhhhÁÁhhÁhÁhhÁhhhhÁhhhhÁhhhhhhÁhÁhhhhÁhÁhhÁÁhhhhhhhÁhÁhhhhhÁÁhhhÁhhÁhhhhÁhhhhhÁhÁhhhhÁhhhhÁhhÁhÁhÁhÁhÁhhhhhhhÁhÁhÁhhhhÁhÁhhÁhhhÁÁhhhÁhhhhhÁhhÁhÁhhÁhhhhÁhÁhhhhÁhhhhhhhÁhhhhÁÁhhhhhhÁhÁhhhhÁhÁhhÁhhhÁhhÁhÁhhhhhÁhÁhhhhhÁhhhhÁhÁÁhhÁÁhÁhhhhhhhhhÁhhÁhhÁhÁhÁhhÁhhhhÁhhhÁhhhhhÁhhÁhÁhÁhÁhhhÁhÁhhhhhÁhhhhhÁÁhhÁhÁhhhhhhhÁhÁhhhhhÁhÁhhÁhhÁÁhhÁhhhÁhhÁhÁhhhhhÁhhhhhÁhÁhhhÁhÁhhhhhhhhhhÁhÁÁhhhhÁhhhÁhhhÁÁhhhÁhhhhhÁhhÁhhhhÁÁhhhÁhhhhhÁhhhhhhhhÁhhhÁhhhÁhhhÁhhÁhhhÁhÁhhhÁhhhhh•¹�Á„¾�hÁÁÁÄÄÍÍÍÑÑðððððÑÑÑðððÑÑÑðÑÑÑðÑÑÑðÑðïððððïóðóðóóúðóóóóóóüóóóóóðóððððÑÑÑÑÍÍÍÍÍÄÄÍÄÄÁÁÁÁÁhhhchccccXcXXTXTTTTTThhhÁhhhhÁhhhhhÁhhÁh•ÁhhÁ•¹hhhhhÁÁhÁhÁhÁhÁhÁhhhÁÁhhÁhhhhÁhhhhhÁhhÁhÁhhhÁ•¹••¹•hhhhhÁhhÁhhhÁhhhÁhhhhhhhhÁhhhhhh•Á•¹hhhhhhhhhhù•¹„hhÁÁhhÁhhhhhÁhhhhÁhhÁhhhhÁhhhhhhhhh•hhhÁhhÁhhhhÁhhÁhhhÁhÁhhhhhhhhhÁhhÁhhh•¹••hhhh•¹•hhh¾�Á•¹h•¹�•hhhhhÁhhÁhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhh•¹�•�••¹�•Á•h•¹hhh•¹�•hhhh•hh•h•¹•¹Á•¹Á„¾hhÁhÁh•hh•¹•Áhh••�•�hhhhhhhh•¹•h•�h•¹••¹hh•¹hh•¹hh•¹�hh¹•h•h•¹•h•¹•hh•hh•hh•¹„¾hhÁÁhhhhhh•¹•¹••¹•hhhh•h•¹hh•Á�hh•h•¹h•¹•hÁhhÁhhhÁÁÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁhÁhÁÁhÁhÁÁÁÁhÁÁhÁÁÁhhÁÁÁÁÁÁhhhÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁhÁhÁÁÁhhÁÁhÁÁÁhÁÁÁÁÁÁÁhÁhhÁÁÁÁÁhÁÁÁhÁhÁÁhhÁÁhÁhÁÁÁÁÁÁhÁÁhÁhÁÁhÁhÁhÁhÁÁÁhhÁhÁhÁhÁÁhÁhhÁÁhhÁÁhÁÁÁhhÁÁÁÁÁhÁhhÁÁÁhÁhÁhÁhÁhÁhÁÁÁÁhÁhÁhÁhÁÁÁhhÁÁhÁÁÁhÁÁhÁÁÁÁhÁhhÁhÁÁhÁÁÁhÁÁhÁhÁhÁÁhÁÁÁÁÁhÁÁhÁÁhÁhÁhÁhÁhÁhÁÁÁÁhhÁhÁÁhÁhÁhÁhÁhÁhhÁÁhÁÁÁhhÁhÁÁÁhÁhhÁÁÁhÁhÁhÁhÁhhÁÁÁÁÁhÁÁÁhhÁhÁhÁhÁÁhÁhÁhÁÁÁhÁÁÁhÁhhÁÁÁÁhÁhÁÁhÁhÁÁhhÁÁhÁÁÁÁÁÁÁÁhÁÁhhhÁhÁhÁhÁhÁhÁhhhhÁhÁhÁhÁhÁhhÁÁhhÁhÁhÁÁhhÁhÁÁhÁhhhÁÁÁhÁhÁhÁhÁhhÁhÁÁhhÁhhÁhhÁÁhÁhÁÁÁhÁÁhhÁÁhÁÁhhhhhÁhÁhÁhÁhÁhhÁÁhhhÁhÁhÁhÁÁÁhÁhÁÁhhÁhÁhÁhÁhhÁÁhhhhhhÁhÁhÁÁhhhhÁÁhhÁhÁÁÁÁhhÁhÁÁÁhÁhhÁÁÁhÁhÁhÁhÁhhÁÁÁÁhhhÁhhhhÁÁhÁhÁhÁÁÁÁhhÁÁhÁÁhhÁhhhhÁhÁhÁÁhhÁhÁhhhhÁhÁhÁÁÁhÁÁhÁhhhÁhÁhÁhhÁhÁhÁhhhhhÁhÁhÁÁhhhhÁÁhhhÁhÁÁÁhhÁÁhÁÁhÁhhÁhÁhÁhÁhÁhÁhhÁÁÁhÁhhÁhÁhhÁhÁhÁhÁhÁhÁhhÁhÁÁÁÁhhhhhhÁÁhÁhÁhÁhÁÁhÁhhÁhÁhÁÁÁÁhÁhÁhhhÁhÁhÁhhhhhÁhhhhhhÁhhhÁhhhhhhÁhhÁhhÁÁÁhhhÁhÁÁhÁhhÁhÁhÁhhÁhhÁhhhÁhÁhhhÁhhhhÁhÁhhÁhÁhÁhÁhÁhÁhÁhÁhhhhhÁhÁhhÁhhhÁhÁhhhÁhhÁhÁÁhÁhÁhÁhhhÁhhÁhhhhhÁhhhhhÁÁhhÁhÁhhhhhÁhhhÁhÁhÁhhhÁhÁhhÁhhÁhÁhÁhhÁhhÁhhhÁhÁhhhÁhhhÁhÁhÁhÁhÁhhÁhhhÁhÁhhÁhhhhhÁhÁhhÁhÁÁhÁhÁhhÁhhÁhÁhÁhÁhhÁhhhhhhÁhhÁhÁÁhÁhhÁhÁhhhÁhÁhhhhÁhÁhÁhÁhÁhhhÁÁhÁhÁhhÁhÁhhÁhÁhhÁhhhÁhÁhhÁÁhhhhhÁhhhÁhÁhhÁhhÁhÁhÁhhhhhhhÁhÁhhÁhÁhÁhÁÁhÁhÁhÁhÁhÁhÁhÁÁhhhÁhhÁhhhÁhÁhhhhhhÁhhhÁÁhhÁhhÁhhhhhÁhÁÁhhÁhÁÁhÁhhÁÁhhhÁhhÁhhÁhhÁhÁhhhhÁhhhhÁhhhhÁhhÁhÁhhÁhhÁhÁhhhÁhÁhÁhhÁhhhhÁÁhhhÁhhÁhÁhÁhÁhÁÁhhhÁhhhhhhhÁhhhhhhhÁhhhÁhhhhhhÁhÁÁhhÁhÁÁhhÁhÁhhÁhhhÁhhÁhhhÁhhhhhÁhhÁhÁÁhhh•¹ÁhhÁhÁÁÄÄÄÑÑÑðÑððððÑððððððÑðÑðÍÑðÍðððÑÑðððððÑóððððóððóüóðóüüóóóóóóóóðïÑÑÑÑÑÑÍÍÄÍÍÍÄÄÄÄÁÁÁhhhhhcccdcXXXXTTTVTTTTTTTTThÁhhhhhÁhhhhhhhhhhhhhÁhhhhÁ•¹•¹•hhhhhhhhhÁhhhÁhhhhhhhÁhhhhhÁhhhhhhhhhhhhh•hh•hhhhhhhhhhhhhhÁhhhhÁhhhhhhhhÁhh¾hhh�ÁÁ•¹•h¹•hhhh�•�¾ÁhÁhhhhhÁhÁhhhhhhhhhhÁhhhhhhhhhh¹•hhhhhhÁhÁhhÁhhhhhhhÁhhhhhÁhhÁhhhhhhhhhhh•hhhhh¹•�¾hhh„¹•Á•Áh•¹•hh¹•hhhhhhhhhhhhhÁhhÁhhhhhhÁhhhÁhÁhhhhhÁÁ¹•¹•�¹•hhhhÁ•¹•h•¹•hhhhhhhhhh•�ÁÁh•�¹•h¹•hhh¹•hhh•hhh¹•¹•¹•hhh¹•hhhhh¹•¹•hhhh•hÁh•�¹••�¹•h•¹•h�¹•hhh�¹•hÁ•hhhhhhhhh�¹•hhhhhÁhh¹•h�¾„¾h•hhh¹•hhh•hhhh¹•hhhh•hh•hhhhhhhÁhÁÁhÁhÁhÁÁÁhÁhÁhÁhÁÁÁÁÁÁÁhÁhÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁÁhÁhhÁÁhhÁhÁÁhÁhhÁÁÁÁhhÁhÁhhÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁÁhÁhÁÁhhhÁhÁhÁÁhÁÁÁhÁhÁÁÁhÁÁhhÁhÁÁhÁÁhÁhÁhÁÁhÁÁÁÁhÁhÁhÁÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhÁÁhÁÁhÁhhÁhÁhhÁhÁÁÁhhÁÁÁÁhÁhÁÁhhhÁhÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁhhÁhÁhhhÁÁÁhÁÁhÁhÁÁhhÁhÁhÁhÁÁÁhÁhÁhÁhÁÁhÁÁhÁhÁhÁhÁÁÁhÁÁÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhÁhÁhÁhÁhhhhÁhhÁÁhÁhhhhÁÁhÁhhhhhhhÁhÁÁhÁhÁÁÁhÁÁhhÁÁhÁhhÁÁhhhÁhhÁhÁÁhÁhhÁhÁhÁhÁhÁhhhÁÁhhÁhÁhÁhÁhÁhÁÁhÁhhÁhhÁhÁhÁhÁhÁhÁhÁhhÁhhÁhhÁhÁÁhÁÁhÁhhhhÁhhÁÁhÁhÁhhÁhÁÁhhÁhhhhÁhÁÁhhÁhÁÁhÁÁhhÁÁhÁhhÁhhhhÁhhhÁhÁhÁhÁhÁhÁhÁhÁhhhÁhÁhhÁhÁhÁhhÁhÁÁÁhÁhÁhhÁÁhÁhÁhÁhÁhÁhÁhhÁhhÁhhÁhÁÁhÁÁhÁhhhhÁhhhÁhÁhhhÁhÁhÁhÁhÁhhhÁhÁÁhÁhÁhÁhÁÁhhÁÁhÁhhÁhhhhÁhhhhÁÁhÁhhÁhÁÁhhÁhhhhÁhÁhÁÁhÁhÁhhÁhÁÁÁhÁhhÁhÁÁhÁhÁhÁhÁhÁhÁhÁhÁhhhhÁhhÁÁhÁhhhhhÁhhhhÁhÁhhhhhÁhÁhhhhhhhhÁhÁhÁhhÁhÁhÁhhÁhÁhhhÁhhhhhhhÁhÁhÁhhhhhhÁhhÁhhhhÁhÁhÁhhhÁhhhhÁhÁÁhhhhhhÁhÁhÁhÁhÁhÁhhÁhhÁhhhhhÁhhÁhhÁhhÁhhÁhhhÁhhÁhhhÁhÁhÁhhhhhhhÁhÁhhhÁhhÁhhÁhhhÁhÁhhÁhhhhhhhÁÁÁhÁhhhÁhÁhhhÁhhhÁhÁhhÁhhÁhhhÁhhÁhÁhhÁhhhhhÁhÁhÁhhÁhÁÁÁhhÁhhÁhÁhhhÁhhÁhhhhhhhhhÁhhÁhhhÁhÁhÁhhÁhhhhÁhhÁhhÁhhÁhhÁhhÁhÁhhhÁhhhhhhhÁhÁhhÁhÁhhÁhhhÁhhhhhÁhhÁhhÁhÁhÁhhÁhÁhhhhhhhhÁhÁhÁhhÁhÁhÁhhÁhhÁÁÁhhÁhÁhÁhhÁhhhhhhhhÁhhÁhhhÁhÁhhhhhhhÁhhÁhhhhhÁÁhÁhhhhÁhhhhÁhhhhhhhhÁhÁhhhhhÁhhhÁhhhhhhhhÁÁhÁhÁhhhhÁhÁhhhhhhÁhhÁhÁhhhhÁhhÁhhÁhhÁhÁhhhÁhÁhhhhhÁÁhhhÁÁhhhhhÁhhÁhÁhhhhÁhÁhÁÁhhhhÁhhhÁhÁhhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhÁhhhhhhhhhhhhÁhÁÁhÁhÁhhÁhhhÁhhhhhÁhhhÁhhhhhhÁhhhhhhhÁÁhÁhhhhÁhhÁhÁhhhhhhÁhhÁhhhhhhh•ÁhÁhhhÁÁÄÄÍÍÍÑÑÑðÑððÑÑÑÑÑÑÑÑÑÑðÑÑÑÑðÑÑððÑððððïóóðóóóóóóóóóóóóóüóóóððóððððÑÑÑÑÍÍÍÍÄÄÄÄÄÁÁÁÁÁhhhhhhcccXccXXXTTTT:ThhhhÁhhhhÁÁhÁhhh•¹hhhhhhhÁ�Á�•hhhhÁhhhhhhÁhhÁhhhhÁhhhhhhhhhhhhÁhhh•¹•¹hhhhhh•¹•¹hhhhhhÁhhhh•¹Áhhh•¹•¹•¹hhhÁ„hh•¹Áh„¾�h•h•¹„¾Á¹•¹hhhhhhhhhhhhÁhhÁhhÁhhhhhhù•¹•¹�•hÁ•¹hhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhhh•¹hh••¹h•¹„¾hhhhhh•h•¹�•hhhhhhÁhhhhhÁhÁhhhhhhhhÁhhhhhhhhhhhhh•hÁh•¹••¹•¹�hh•hÁ¹�h•¹•¹h•¹hhh•¹hhh•¹•hh•hhhh•hhhhhhhh•h„¾�h•¹�•hhhhh•h•�hhhhhhhhh•¹•h•¹•h•¹�h•¹•hh•¹¾„Áhh•¹h•¹h•¹h•¹•hhh•¹h•¹�••¹•¹hhhh•¹�•hhhhhhhhh••¹hhhhhhhh•¹hhÁhhÁÁhÁÁÁhhÁÁÁÁÁhÁhÁhÁÁhÁÁhÁÁÁÁÁÁhÁhÁÁhÁhÁhÁÁhÁhhÁÁÁhÁhhhÁhÁÁhÁhhÁÁÁhhhÁÁhÁhÁhhÁhÁhÁÁhÁhÁÁhÁhhhÁÁhÁhÁÁhhÁÁhÁhhÁÁhÁÁhÁÁhÁÁhÁhÁhÁhÁhhÁÁÁhÁÁhÁÁÁhÁhÁhÁÁhÁhhÁÁÁhÁÁÁhÁhÁhÁhÁhÁhÁhÁhÁhhÁÁÁÁhhhhÁhÁÁhÁhhÁhÁhhÁhÁÁhÁÁhhÁhÁhÁhhÁhÁhÁhhhhÁhhhhÁÁhhÁÁhhhhÁÁhÁhhÁÁhÁhÁhhÁhhÁhhÁhÁhÁhÁhhÁÁhÁhÁhÁÁhÁhhÁÁhÁhÁhÁhhÁhhÁhhÁhhÁÁhhÁhÁhÁÁhhhhÁhhÁhÁhhÁÁhhhhÁhÁhÁÁhhÁhÁhÁhhÁhÁhÁhÁhhÁÁhhhÁhhhÁÁhhhhÁÁhÁhhÁÁhÁhÁhhÁhhÁhÁhÁÁhÁhÁhhÁÁhÁÁhhÁÁhÁhÁhÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhhÁhÁÁhÁhhhhhÁhÁhÁhhÁhÁhhhÁhÁhÁÁhhÁhÁhÁhhÁhhÁhÁhhhÁÁhhhÁhÁhhÁhhhhÁÁhÁhÁhÁhÁhhÁhÁhhÁhhÁhÁhÁhÁhhÁhÁhÁhhÁÁhÁhÁhÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhhhhÁhÁhhhhhhÁhÁhÁhhÁhÁhhhÁhÁhÁÁhhÁhhÁhÁhhhhÁhÁhhhÁÁhhhÁhhhhÁhhhhhÁhhÁhÁhhÁhhÁhhhhÁhhhÁhhhÁhhhÁhÁhÁhhÁhhhÁhhÁhÁhÁhÁhhÁhhÁhhÁhhÁhhhhhhÁÁhhÁhhhhÁhhhÁhhÁhhhhÁhhÁhÁhhhÁhhhÁhhÁhÁhhhhhÁhhhhÁhhhhÁhhhhÁhhhÁhhÁhhÁhhÁhhhÁhhhÁÁhhÁhhhÁhhÁhhhÁÁhhÁhÁhÁhÁhÁhÁhhÁhhÁhÁhhÁhhhÁhhÁÁhhhhhhhhÁhhhhÁÁhhhhÁhÁÁhÁhhhhÁhhhhÁhÁhhhhhhÁhhhhÁhÁhÁhhhhhÁhÁhÁhhÁhhÁhhÁhhhÁhhhÁhÁhÁhhhÁhÁhÁhÁÁhÁhÁhhÁhÁhÁhhÁhhÁhhhhhhhÁÁhhÁhÁÁÁhÁhhhÁhhÁhÁhhÁÁhhÁhÁhhÁhÁhhhÁhhÁhhÁhhÁhhhhhÁhhhhhhÁhhÁhÁhhhÁhhhhÁhhhÁÁhhÁhhÁÁhhÁhÁhhhhhÁhhÁhhhhÁhhÁhÁhÁhÁhhÁhhhÁhhhhÁhhÁhhhhhhÁhhhhhÁhhhÁhÁhhhÁhÁhhhhhhhÁhhhhÁhhÁhhhhÁhhhÁhhÁhÁhÁhhhhÁhhÁhhÁhhhhhhhhhhhhhhÁÁhhhhÁhhhÁhhÁhhhÁhÁhÁhhhhhÁhhÁhhhÁhhÁhhhhhhhÁhhhhhhÁhÁhhhhhÁhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhÁÁhhÁhÁhÁhhhhhhhÁhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhhhhhÁhhhhhÁhhhÁhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhh¹•¹•hhhhhÁÁÁÍÄÍÑÑÑÑðððÑÑðÑÑðÑÑðÑÑÑðÑÑÑÑÑðÑðððððððóððóóóóðúóóóóüóóüüóððóóðððÑðÑÑÍÑÑÄÄÍÄÄÄÄÁÁÄÁÁÁhhhccccbbXXXXXXTTTTThhhhhhhhhhhhhÁhÁhh••¹•h¾„¹•¹•¹•hhhhhhÁhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhh•�Á•Áh¹•hh�••�¹•hhhhhhÁhh••¹•hh•�Á••�¹•h¹•hh•hhh¹•¹•hh�¹•„�¾•„¹•hh¹•ÁhÁhhÁhhhhhhhhhhhhh�•�Á•¹•hhh•�¹•hhhhhhhhhÁhhÁhhhhhÁhhhhhhhhh¹•h•�¹•¹••�¹•h•hh•h¹•hhhhhhhh•¹•hhh¾„¹•h¹•¹•hhhhhhhhÁhhhhhhÁhhhhhÁhhhhhÁhh�¹•h�¾Áhhhhh•Áhh�••hh••¹•h•hhhh�¹•hhhhhhhhh¹•h¹•¹•hh¹•¹••¹•hhhhhhh¹•¹•hhhhh¹•hh�¹•hhhh•¹•h�¹•hh•hh¹•hh•hh•hh•hh•hhhhh•hh•¹•hh••hhhhh•¹•hhhhh¹•hhhh•hh¹•h¹•hh••hhhÁhÁhÁhÁhÁhÁÁhÁhÁhÁÁhÁhÁÁÁhÁhÁhÁhÁÁÁÁhÁÁhhÁÁhÁhhhÁÁÁhÁhÁÁÁÁÁhÁhhÁhÁÁhÁÁÁÁÁhÁhhÁhÁhÁhÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁhhÁÁhhhÁhhÁÁhÁhhÁhÁhÁhÁhÁhÁhÁhhhhÁhhhhÁÁhhÁÁhÁÁhÁhÁhÁhhÁhhÁhÁÁÁhÁhÁhÁhÁhÁhhhÁ„ÁhÁhÁÁhÁÁhÁhhÁhÁhhÁÁhÁÁhÁhhÁhÁhÁhÁhÁÁhhÁÁÁhÁÁÁhhÁhhhhÁÁhhhhÁhÁhÁhhÁhhÁhhÁhÁhÁhÁhÁhÁÁhhhhÁÁhhÁÁhÁÁhÁÁhÁÁhhÁhhÁhÁÁhÁÁhÁhhhÁhÁhhÁhÁÁhhÁhÁÁhÁhÁhhÁhÁhhÁÁÁhÁhÁhhÁÁhhÁhÁhÁÁhÁhÁhÁhÁÁhhÁhhhÁÁhhhhhÁhÁhÁhhÁhhÁhhÁhhÁhÁhhÁhhÁhhhhÁÁhÁhÁhÁÁhÁhÁÁhÁhÁhhÁhÁÁhÁÁhÁhhhÁhhhhhÁÁhÁhhÁhÁhÁhÁhhÁhÁhhÁÁÁhÁhÁhhÁhhÁhÁhÁÁhÁhÁÁhÁhÁÁhhÁhhhÁÁhhÁhhhhÁhÁhhÁhÁhÁhhhhÁhÁhhhhhÁhhhÁhÁhhÁhÁhÁhhhhÁhÁhhhhÁhÁÁhÁhhÁhhÁhhÁhhhÁÁhÁhhÁhÁhÁhÁhhhhÁhhhÁhÁhhÁhhhÁhhhhÁhÁÁhhhÁhhÁhÁhhÁhhhhÁhhhhhhÁhhhhÁhhhhhÁhhhhhÁhhhhhÁhhhhhÁhhÁhÁhÁhhÁhÁhhhhhhÁhÁÁhÁhhÁhhÁhhhhhhÁhÁhhhÁhÁhÁhhhhhhÁhhÁhÁhÁÁÁhhhÁhÁhhÁhÁhhÁhÁhhÁÁhhÁÁhhhhÁhhhhhhÁÁhÁhhÁhhhhÁhhhhhÁhhhhhÁhhhhÁhhÁhÁÁhÁhhhhÁhhÁhhhÁhhÁhÁhhÁÁhÁhhÁhhhÁhÁhÁhÁhÁhÁhÁhhhhÁhhÁhÁhÁhÁhhÁÁhÁhÁhÁhÁhÁhÁhhÁÁhhÁhhhÁhÁhhhhhhÁhhÁhhÁhhhhÁhhhhÁhhhhhhÁhÁhhÁhhhhhÁhÁhÁhhÁhhÁhhhÁhÁÁhÁÁÁhhhÁhhhhhhÁhÁhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhÁhÁhÁÁhÁhhhhhÁhhhhhhhÁhhhhÁhhhhhhhhhÁhhhhhÁhhhhhÁhhÁhÁhhÁhÁhÁhhhhhÁhhhÁhÁhhÁhhhÁÁhhhhhhÁhhhhÁhhÁhhhhhhhhhhhÁhÁhhÁhhÁhhhÁhÁhÁhhhhÁhhhÁhhhhÁhhhhhhhhhhhÁÁhhhÁhhÁhhhhÁhhhhhhhÁÁhhhÁhÁhhhÁhÁhÁhhhÁhhhhhhhhhÁÁhhÁhhhÁhhhhhhhÁhhhhÁhhhÁhhhhhhÁhhhhÁhhhhhhhhhhhhhÁhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhÁhhhhÁhÁÁhhhhhhhhÁhÁhÁhhhÁhhhhÁhhÁhhhhhhhhÁhÁhhhhh•¹•¹�Á••�hhhhhhhÁÁÄÄÍÍÑÍððóðóððÑðÑððÑÑÑÑÑÑÑðÑðÑðÑÑððððððððððóóððóúóóóóúüóóóóóóðïÑÑÑÑÑÑÑÑÍÍÍÄÍÄÄÄÄÁÁÁÁhhÁhhccXcXXXXTTTTTTTTTTThhhhÁhhhhhhhhhhh•¹h•hhÁhh•�hh•¹hhÁhhhhÁhhhhhhhÁhhhhhÁhÁhhhhhhhh•¹hh•¹hÁhh•hh•¹•¹Á•Áhhhhhhhhhhh•hÁh•¹•¹�¹•hh•hhhhhhh••hh•¹Á�„¾¹h•¹�•¹••hhhhhhhhhhhhhÁhhhhhh¹•¹hh�•¹hh•¹••¹hhhhhhhhhhhhhhhÁhhhÁhh•¹•¹�•hh•¹h•hh•¹•hhhhhhh•h•¹•¹•¹hh•h•¹h•¹h•hhÁ�•hhhhÁhhhhhhhhhhhhhhhhhhhhhhhhh•¹••¹hhhhhhhhhh•¹•¹hhh•¹�hhhhhh•¹••¹h•¹•¹•¹�•hh••�hhh•Á�hhh•¹•¹•¹hh•Á�h•¹•¹�•hhhh•hh•¹„¾�h•¹•hhh•¹�•hhhhhhhhhhhhhh•¹hhhh•¹�hhhhhh•¹hhhh•¹hhhh•hhhhh•¹••hh•hhh•¹hhhhhÁhÁhhÁÁhÁhÁhÁÁhÁÁhÁÁÁhÁhÁhhÁhÁÁhÁhhÁhÁÁhhÁhhÁhhÁhhÁÁÁhÁhÁhÁhÁhhhÁhÁÁhÁhhÁÁÁhhÁhÁhÁhÁÁhÁhhÁÁhÁhÁhhÁhÁhhÁÁÁhhÁhhhÁhhÁhÁhÁhhÁhhhhÁhÁhÁhhÁÁhÁhhhÁhhÁÁhÁhÁÁÁhÁhhÁhÁhÁhÁhÁhÁhhhÁhhÁhhÁÁhÁhÁhÁhÁhhÁÁhhhhÁhÁhÁhÁhÁÁhhÁhhÁÁhÁÁhÁhhÁhhÁhÁhÁhÁÁhhÁÁÁhhÁhhhÁhhÁhÁhÁhhÁhhhhÁhhhhhhÁhÁhÁhhÁhhÁhÁhÁhÁhÁhÁhÁhhÁhÁhÁhÁhÁhÁhhhÁhhÁhhÁhÁhÁhÁhÁhÁhhhÁÁhÁhhÁhhÁhhhhÁhÁhÁhÁhÁhhÁÁhÁhÁhhÁÁhhhÁÁÁhhhhÁhhÁhÁhÁhÁhhÁhhhhÁhÁhhhhÁhÁhÁhhÁhhÁhÁhÁhÁÁhÁhhÁhhÁhÁhhÁhhÁhhÁhhÁhhhÁhhÁhhÁhÁhhhÁhhhhÁhÁhhÁhhÁhhhÁhhÁhhÁhÁhhhÁhhÁhÁhhhÁhÁhÁhÁhhhÁhhhÁhÁhhhhhhÁhhhhhÁhhhhhhÁhhÁhhÁhhhÁhhÁhÁhhhÁhÁhhÁhÁhhÁhhÁhhÁhhÁhhhÁhhÁhhhhÁhhhÁhhhhÁhÁhhhhhÁhhhhhhÁhhÁhhÁhhÁhhhÁhhhhÁhÁhÁhÁhÁhhhhhÁhhhhÁhhhÁhhhhÁÁhhÁhhhÁhhÁhhÁhhhÁhhÁhÁhhÁhÁhhhÁhÁhhÁhhÁhhÁhÁhÁhhÁhhÁhhÁhÁhhhÁhÁhhÁhhÁhhhhÁhhÁhhhhÁhÁhÁhhhÁhhhÁhhhhÁhhÁÁhÁhÁhhhhhÁhÁhhÁhhhÁhhhhÁÁhhÁhhÁÁhhÁhhÁhhhÁhhÁhÁhÁhÁÁhhÁÁhÁhhÁhhÁhhÁhhhhhhÁhhÁhhhhhhÁhhÁhhhhhhÁhhhhhÁhhhhhhÁhhÁhhhhhÁhhÁhhhhÁhhhhÁhhhhhhhhhhhhÁÁhÁhÁhÁhhÁhhÁhhhÁhhhhhhhÁhhÁhhhÁhÁhhhhhhhÁhhÁhhhhÁhhÁhhhhhhÁhhÁhhhhhÁhhÁhhhhÁhhÁhhhhÁhÁhhhhhÁÁhhÁhhhhÁhhhÁhhhÁhhÁhhÁhhhhhhhÁhÁhhhhhhÁhhhhhhhhhhÁhhhhhhhÁhhhÁhhhhhÁhhÁhhhhÁhÁhÁÁhÁhhhhhhhÁhÁhhhÁhhhhÁÁhhÁhhhhÁhÁhhhÁhÁhhhhhhhhhhhÁhhÁhÁhhhÁhhhhhhhhÁhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhÁhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhhÁhhhhhhhhhhhhÁhÁhhhÁhhhÁhÁhhhÁhhÁhÁhhÁhhhhhhhhÁhhhÁhhÁhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhh•�ÁÁhh¹•¹•h¹•hÁÄÄÄÍÄÑÑÑÑððÑððððÑÑðÍððÑðÍÑÑÑððððÑðððððóððóðóðóóóóóóóóóüüóóóóóðñðÑðÑÑÍÑÍÍÍÄÍÄÄÄÄÄÁÁÁhÁhhhchcccXXXXTXTTTT"ThhhhhhhÁhhhhÁhhhhh�¹•hhÁhh¹•¹•h•hhhhhhhhhhhhÁhhhhhhhhhhhhhhhhh¹•h•�¹•�¹•h¹•hhh�h•h¹•h¹•hhÁhhhh¹•hhhhh•h•h�¹•hhh¹•hh¹•hhhhh•¹•h•hh�¹•hhhhhhhhhhhhhhhhhhh�¹•h•h•h¹•h•hhh�¹••h•¹•¹•¹•hhhhhhhhhhhhhhh•�Á¹•hhh•hhhhhh�¹•h¹•h¹•hh�•h•h�¹•hh•hh•hhhhh¹•hhhhhhhÁhhhhÁhhÁhhhÁhhhhh¹•hhhh•hh•hhhhhhhhhhhh•h�¹•h„¾¹•h¹hhh•hh•hh•�¾•„¹•hhh¹•¹•hhh¹•hhh�•h••�¹�¹•¹•�•„¹•hhhhhhhh�¹•¹•h�¾hh¹•hh¹•h¹•h¹•h¹•h¹•hh••¹•¹••¹•hhh¹•h•hhhhh•hhhhhhh¹•¹•hhhhhhhh¹f•hhhÁhÁhÁhÁhÁhhhÁhÁhÁhhhÁhÁÁhhhÁhÁhhÁhÁÁÁhÁhÁÁhÁhhÁÁhÁhhÁhÁhÁhÁhÁÁÁhÁhhÁhÁhhÁÁhÁÁÁhÁÁhÁhÁhhhÁhhhhhÁhÁÁhÁhÁhhÁhÁhÁÁhÁhÁÁhhÁhÁÁhhÁÁhÁhÁhÁhÁhÁhhhÁhÁhÁhÁhhhÁÁhÁhhhÁhÁhÁhÁhÁÁhhÁÁÁhÁhhhÁhhhhÁÁhÁhÁhÁhÁÁhÁhÁhÁÁhÁhÁÁhÁÁhÁÁhÁhÁhhhÁhhÁhhÁhÁhhhhÁhÁhÁhÁhÁhÁhÁÁhhÁhÁÁhhÁhÁhÁhÁhÁÁhÁhhÁhhÁhÁhÁhhÁhÁhÁhhhÁhÁÁhÁhÁhÁhhÁÁhhÁhhhÁhhÁhÁhÁhÁhÁhÁhÁhÁhhÁhÁhhÁÁhÁhÁhhÁhhhÁhhhÁhhhhhhÁhÁhhhÁhÁhhÁhhÁhhÁhÁhhhÁhÁhhhÁhÁhhÁhÁhhhhhhhhhhÁhÁhhhhÁhÁhhhÁhhÁhhhÁÁhhhÁhÁhÁhhhÁhhhhÁhÁhhhÁhÁhÁhÁhhÁhÁhhÁÁhÁhÁhhÁhhhhhhhÁhhhhhhÁhÁhhÁhhhÁhÁhÁhhÁhÁhhhÁhÁÁhhÁhhÁhÁÁhÁhhÁhhhhhhhÁhÁhhhhÁhÁhhhÁhhÁhhÁhÁhhÁhÁhhÁhhhÁhÁhÁhÁhÁhhhÁhÁÁhÁhhhÁhhÁhÁhÁhÁhÁhhÁhhhhhÁhhhhhÁÁÁhhhÁhhhÁhÁhhÁÁhÁhÁÁhÁhÁÁhÁÁhhÁhhÁhÁhhÁÁhhhhhhÁhÁhhhhÁhÁhhhÁÁhÁhhhhÁÁhÁhÁhhÁhhhÁhhhÁhÁhhhÁhÁhhÁhÁhÁhÁhhÁhÁhhÁhhÁhhhhhhhÁhhhhhhÁhÁhhhÁhhhhÁhhhÁhhhÁhhhÁÁhÁhhÁhhhhhÁhÁhhhhhhÁhhhhhÁhhhhhhÁhhhhhhÁhhhÁhÁhhhÁhhhhhhÁhhhÁhhÁhhhhhhÁhhhÁhhÁhhÁÁhÁhÁhhÁhhhhhhhÁÁhhÁhhÁhÁhhhÁhhÁhÁÁhÁhÁhhÁhhhhhhÁhhhhhhhÁhhÁhhhhhhÁhhÁhhÁhÁhÁhhÁhhhÁhhhhhÁhhÁhhhÁhhÁhhhhhhhÁhhhÁhhhhhhhÁhhhhÁhÁhÁhhhhhÁÁhhhhhhhÁhhhhhhÁhhhhhÁhhÁhhÁÁhÁÁhÁhhhhhÁhÁhhÁÁhhÁhhhhhhhhÁhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhÁhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhÁÁhhhhhhÁhhhhhÁÁhhhhhÁhhhÁhhhÁhhhhÁhhhÁhhhhhhÁÁhhhhhhhhhhhhhÁhÁÁhhhhhhhhhÁÁhhhhhhhhhÁhhhhhÁhhÁhÁhhhhhhÁhhhhhhhhhhhhhhhÁhhhhÁhÁhhÁhhhhhhhÁhhhhÁÁhhhhhhhhhhÁhhhÁhhhhhÁhhÁhhhhhhÁhÁhhhhhhhhhhhhhhÁhÁhhhhhhhhÁhÁhhhhhhhhÁ•¹hh•¹hh•¹�•Áhh•hÁhhÄÄÄÄÍÍÍÑÑððÑðÑððÑðÑÑððÑðÑðÑÑÑðÑóðÑðððóðóòóðóðóðóðóüüóóüüóóóðóðóðððÑÍÍÍÍÍÍÍÄÍÄÄÄÄÁÁhhhhhchcccccXXXXXXTTTTTTTThÁhhhhhhÁhhhhhÁh•¹•hhhhhh•Á�hhhhhhÁhhhhhÁhhhhhhhÁhhhhhhÁhh•¹�•hh•¹�•¹•hh•hh•¹•¹hh•hh•hhhhhhhh•h•¹hhhhh•¹¾„h•¹�•hhh•hhhh•¹�hhhhh•¹•hhhh•¹hhhhÁhhÁhhh•¹•¹•hhhhhh•hh•¹h•¹•hhhhh•Á�•h•¹h•¹•¹„¾hh•¹hh•¹Á�•¹hhhhhhhh•¹•hh•hh•h•¹•¹h•¹h•hhhhhh•¹hhhh••¹hhhhhhhhhhhhhhhhhhhhh•¹�•hhhhhhhhhhhhhhhhhhhhhh•¹•h•¹h•hh•hhhhhhhhh•¹hhh�h•¹�h•hhhhh•hh•¹•¹•¹•¹„¾„•h•¹�¹�hh•¹hhh•¹¾„•hh•¹„hh•hhÁ�hh•hh•hh•hh•hhh•¹��h•¹�h•¹•hhhhhhhhhhhhhhhh•Á��hhhh¹h•¹•Á�hhhhhÁÁhÁÁÁÁÁhhhÁhÁhhhÁhÁhÁhÁÁÁhhÁÁÁhÁhhhÁÁhhÁhÁhÁÁhhÁhÁÁhÁhÁhÁhÁhhÁÁhÁhhÁhÁhÁhÁhÁhÁhhhhhhhÁhÁÁhhÁhhÁhÁhhÁhÁhÁhÁhÁÁhÁhhhhÁhhÁhÁÁhhÁhÁÁÁhÁÁhÁÁhhhÁhÁhhhÁhÁhhÁhÁÁhhÁhÁhÁhÁhÁÁhhÁhÁhÁÁhhhÁhÁhÁhÁÁhÁhhÁhÁhÁhhhhÁhÁÁhÁhÁÁhhhhhhhÁhÁÁhhÁhhÁhÁÁhÁhÁhhhÁhÁÁhhhhhhÁhhhÁÁhÁhÁhÁÁhÁhÁhÁÁhhhhÁhÁhhÁhhÁhÁhÁÁhhÁhÁhhÁhhÁhhhÁhÁhÁhhhÁhhÁhÁhÁhÁhhhÁhÁhÁhhhhÁhÁhÁhÁÁhÁhhhhhhÁhhÁhhÁhhhÁhhhÁhhhhhÁhÁhhÁhhhhÁhhÁhÁhÁhÁhÁÁhhÁÁhÁÁhhhhÁhÁhhÁhÁhhhÁÁhhhÁÁhÁhhhhÁÁhhÁhÁhÁhhÁÁhhÁhhÁhÁhhhhhhÁhÁhhhhÁhhÁhÁhÁhÁhhhhhhhhhÁhhÁhhhÁhhhhÁhhhhhÁhÁhÁhhhhÁhhhÁÁhhÁÁhÁhÁhÁÁhÁhÁhÁhÁhÁhhÁhÁhhÁhÁÁhhÁÁhÁhhhhÁhÁhÁhÁhÁhhhÁhhÁhhÁhÁhhÁhÁhÁhÁhhÁhÁhÁhhhÁÁhÁhhÁhhhhhhÁhhÁÁhhÁhÁhhÁhhhhhÁhÁhhhhhhhhhhhÁhhÁhÁhÁhhÁhÁhÁhhhhÁÁhhhhhÁÁhhÁhÁhhhÁhhÁhhhÁhhhhÁhhÁhhÁhhÁhhhhÁhhhhhhhhhhhhhhÁhÁhhÁhÁhhÁhhÁhhhhhÁhÁhhhhhÁhhhÁhhhhÁhÁhhhhhhhhhhhÁhhÁhÁhÁhhhhÁhÁhhÁhhÁhÁhhhhÁhÁhhÁhhhÁhÁhhÁhhÁhhhhÁhÁhÁhÁhhhhhhÁhhhÁhÁhhÁhhhhhhÁhhÁhhhÁhhhhhhhhhhhÁhhhhhhhhhÁhÁhhhhÁhhÁhhhhÁhhÁhhÁhhhhÁhhhÁhhÁhÁhhhhhhhÁhhhhhhhhhÁhhhÁhÁhhhhhhhhhhhhhhhhÁhhhhhhÁhÁhÁhhÁhhhhhhÁhhhhÁhÁÁhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhÁhhhhhhÁhÁhhhÁÁhhhhhhÁhhhhÁhhhÁhhhhhhÁhÁhÁhhhhÁhhhhhÁhhÁhhhhÁhhhhÁhhhhhÁhhhhhhhhhÁhhhhÁhÁhhhhhÁhhhhhhhhÁhhhÁhÁhhhÁhhhÁhÁhhhhhhhhhhhÁhhhÁhhhÁhhÁhhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhhhÁhÁhhhhhhhhhhhÁhhhÁhhhÁhhÁhhhhÁhhhhhhhhhÁÁhhhÁhhhÁhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhh•�¹••hhh•¹•hÁhhhhhÁÁÄÄÍÑÑðÑðððððÑðÑÑÑÑÑðÑððÑÑÑððÑðÑðððððÑðòïðóóóóóóðóóóóüóóóóðóðïðððÑðÑÑÍÍÍÍÍÄÄÄÄÁÁÄÁÁhhhcccccXXbXXTTT"TTTTTTThhhhhhhhhhhhhhhhhh•hhhhhhhhhÁ¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹•h¹••¹•�¹•hhhhh�Á•hhhhhhhh¹•hhh¹•hh•�¹•hhh•h¹•h•¹•hh¹•hh¹•h•¹•hhh¹••hhhh¹••�¹•hhhhhh¹•h•�Áhhhhhhhhhhhhhh•hhhhhhhh¹•hh•hh•�¾„hhhh•�¹•h„¹••hhh¹•¹•¹••hhhhhhhhhh•hhh•hhhh¹•hhh•�¹•hhh•h�hhhÁhhhÁhhhhhhhhhhhh•¹•hhÁhhhhhhhhh„¹•¹•h¹•hhh�¹hh•hhhhhh�¹•¹•h¹•h•h¹•¹hh•¹•hhhhhhhhhh•hh�h�¾„¹�¹•h•¹•Á¹•h•hhhh•h¹•hhh�¾¹•hhhh¹•hhhhhhhhhhhhh¹f•h¹•h•¹•hhhhhhhhhhhhhhhhhh¹•h¹Áhhh••hh�hh¹•hhhÁhÁhÁhÁhÁÁhhÁhÁhÁhÁÁÁhhÁhÁhÁhÁhÁhhÁhhhÁhhÁhÁhÁhÁhÁhÁhhÁhÁhÁhhhhÁhhÁhhhÁÁhÁhÁhÁhÁhhhÁÁhhÁhhÁhhhÁhhÁhÁÁhhÁhÁhÁÁhhÁhÁhÁhhÁhÁhÁhÁhhÁÁhhÁÁhÁhÁÁhhÁhÁhÁhÁhÁhhÁhÁhÁhÁhhhÁhhhhÁhhhÁhhÁhhÁhÁhÁhhhhhÁhhhhÁhhÁhhhÁhÁhhhÁhhÁhhhÁÁhhÁhhÁhhhÁhhÁhÁhhhhÁÁhhÁhhÁhÁhÁhhhÁhhÁhhhhhÁhhhÁhhÁÁhhÁhÁhhÁÁhÁÁhhÁhhÁhhÁhÁhhhhhhÁhhhÁhhÁhhhhÁhÁhhhÁhÁhhhhÁhhÁhhhÁhÁhhhÁhÁhhhhhÁhhÁhhÁhhhÁhhÁhÁhhÁÁhÁhhÁhhhhÁhÁhhÁhhhÁhhhÁhÁhhÁhhÁÁÁhhÁhÁhhÁhÁhÁhhhhhÁhhÁhÁhÁhhhÁhhhhÁhhÁhhhÁÁÁhÁhhÁhÁhÁhhÁhhÁhhhÁhÁhhhÁhÁhhhÁhÁhhÁhhÁhÁhÁhÁÁhÁhhÁhÁhÁhÁhÁhhÁhÁhÁhÁhhÁhhhÁhÁhhhÁÁhÁÁhhÁhÁhhhÁhhÁhhÁhÁhhhhhhhÁhhhÁhhhhhhÁÁhhhhÁhhÁhhhhÁhhhhhhhhhhhÁhhÁhhhhÁhhhhÁhÁÁhhÁhhhhhhhÁhÁhhhÁhÁhhÁhhÁhhhÁhÁÁhhhÁhhhhÁhhhhÁhhhÁÁhhÁhÁhhÁhÁhhhhÁhhhÁhhhÁhhhhÁhhÁhÁhhÁhhhhÁhÁhhhhhÁÁhhhÁhhhhhÁhÁhhhhhhÁhhhhÁÁhÁhÁhhhhÁhhhhhÁhhhhÁhhÁhhÁhhÁhÁhhhÁhÁhhhhhhÁhhÁhhhhÁhhÁhhhhhÁhÁhhhhhÁhhhÁhhhhhhhÁhhhhÁhhhhhÁhÁhhhhhhhÁhhhhhhhÁhhhhhhhÁhhÁÁhhÁhhÁhÁhhhhhhhhÁhhhÁhhhhÁhhÁhhhhhhhhhhhhhhÁhhhhÁhÁhÁhhhÁhhhhÁhhhhÁhÁÁhhhhÁhhhhÁhhhÁhhÁÁhhhhhhhhhhÁÁhhhhhhhhhhhhhÁhhhhhÁhhhhhhhÁhhhhhhhÁhhÁhhÁhhhhÁhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhÁhhhÁhhhÁÁhÁhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhÁhhhhhhhÁhÁhhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhhhhÁhhhhÁhhhÁhhhÁhhhhÁhhhÁhhÁÁhhhhÁhhÁhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhÁhhÁhhhhÁhhhhhÁÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhÁhhhhhhhhh•¹•¹hh•¹•hhhh•¹�hh•¹hhhhÁÁÄÄÄÍÍÑðÑÑððÑððÑÑÑÑðÑÑÑðÑÑÑÑáïððÑðÑóððóðóðððóóóóóóóóóóüüüðóóðóðïððÑÑÑÍÍÍÍÍÍÄÄÄÄÁÄÁÁÁhhhhhccccXbXXXXTTTTT:ThhhhÁhhhhÁhhh•¹hhh•¹hh•¹hhhh••¹hhhhhhÁhhhÁhhhÁhhhhhÁhhhhh•¹h•hh•hhh•¹„hh•¹h•¹hh•¹hhh•¹�•h•¹�•hhh•¹••¹hhhh••¹�h•¹�•hhh•hhh•f¹hh•hhh•¹�•hhh•hhhhhh�•hh•¹hhhh•¹•¹hhhhhhhh•¹•¹hhhh•hhhhh•¹•¹hhhhh•¹•hh¾�hhh¹�••h•�hh•¹hh•¹hhhhhhhhhh•¹�••¹hh•¹•hhhh•¹•¹hhhhhhhhhhhhhhhhh•¹„hhhhhhhhh¹•¹•¹¾�••hh••¹h•¹•hhhhhhhh•¹•h•hh•hhhh•h•hh¾�hhhhh•¹hhhhhh•¹•¹•¹�•hh•¹�„¾�hhhhhhhhh•hhh•¹Á„hhhhh•hhhhh•¹hhhh•¹•Á�hhhhh•hhhhhhhhhhhhhhh¹•¹hh•hhÁ�hhhhh•¹•¹h•h•¹hhhÁhÁhhhÁÁhÁhÁhhÁhÁhÁhÁhhhÁÁÁhhhÁhÁhhhÁhhhhÁhhhÁhÁhÁhhhhhhÁhÁhÁhhÁhhÁhhhhÁhhhÁhÁhÁhhhhhÁhÁhhÁhhhÁhhÁhÁhÁhhÁhÁhhhhÁhÁhÁhÁhhhÁhÁhÁhÁhÁhhhhÁhÁhhhhhhhÁhÁhÁhhhhÁhÁhhÁhhÁhhÁhhhhhÁhhÁhÁ¹Á•¹•ÁhhÁhÁhhÁhÁhhÁhhhÁhÁhhhÁhhhhhÁhhhÁhhhÁhhhÁhhÁhÁhÁhÁhÁhhhhhÁhÁhÁhÁhhhhÁÁhÁhhÁhÁhhhhÁhÁhhhhhhhÁhÁhhhhÁhÁhhhÁhhÁhhÁhhhhhÁhhÁhÁhÁhhhÁhhÁhÁhÁhhÁhhÁhhhhÁhhhhÁhhÁhÁÁhhhÁhhhÁhhÁÁhhÁhÁhhhÁhÁhÁhhÁÁhhÁhÁhhhÁhÁÁhhhhÁhÁhhhÁhÁhhhhhhhÁhÁhÁhhhÁhÁhhhÁhhÁhÁhÁhÁhhÁhÁÁhÁhÁhhhhhhÁhÁhhhhhhhÁhÁhhhhhhhÁhhhÁhÁhhÁhhhhhÁhhhhhhhÁhhhhÁÁhhhhhÁhhhhhÁhhhhÁhÁhhhÁhhhhhhhÁhhhhhhÁhÁhÁÁhhhhÁhhhÁÁhhÁhhhÁhhhhhhhhhÁhhÁhhhhhÁhhhhhhhhhÁhhhhÁhhhÁhÁhhÁhhhhhÁhhhÁhhhÁhhhhhÁhhÁhÁhhhhhhhÁhhÁhhhhhÁhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhÁhhhhhhhhhÁhhhhÁhhÁhhhhhhÁhhÁÁhhhhhÁhhhÁhhhhhhhhhÁhhhÁhhhÁhÁhhÁÁhhÁhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhÁhhhhhhÁhÁhÁhhhhhÁhhhhhÁhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhÁhhhÁhhÁhhhÁhhhhhÁhhhÁhÁhhhhÁhhhÁhhÁhhÁhhhhhhhhhÁhÁhhhhhhhhhhhhhÁhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhhÁhhÁhhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhhhhÁhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhÁhhhhÁhhÁhhhhhhÁhhÁhhÁhhhhhhÁhhÁhhhhhÁhhhhhhhhhhhhÁhhÁhhhÁhhhhÁhhhhhhhhhhhhÁhhhÁhhhhhÁhhÁhhÁhh•�Á•¹•�¹•h¹•h•¹•hh•�¹•ÁÄÄÄÍÍÑÑÑÑóððÑðóðÑðÑððÑÑðÍÑðÑÑÑÑÑÑðÑðÑððððóóððóóúóðóüüóüóóóóóðóðÑÑÑÑÑÑÑÍÍÍÍÄÄÄÄÄÄÁÁÁhhhhhcccccXXXXXXXTTTTTThhhhhhhhhhhhhhh•�¹•h•�¹••�¹•hhh•h�¹•hhhhhhhhhhhhhhhhhhÁhhhh•hhhhhhhhh•hhhh•hh•hhh•�¹hh•¹hhh•¹•hh¹•hhhh•¹hhhh„¾¹•h¹•hhhhhh¹•h•�¹•hhhh•h¹•hhhhhhhhh¹•hhh•hhhhh•h•�¹•hhhhhhh••�¹•hhhh¹•hh•h•hhhh¹•�¹•hh¹•hhhh¹•h¹•¹•h•hhh•�hhhhhh�¹•h•¹•h•hhh�¹•h¹•hh•hhhhhhhhhhhÁhhhhhhh�¾hhhhhhhhh�•�•„¹•¹•hhhh•hh•hhhhhhhh¹••hhhhhhhhhhhhhhh„¹•¹•hhh•�¹•hhhh•hh•h¹•hhh•¹hh¹•hh¹hhhhhhhhhhhhhhhhhhhhhhhhh•�¹hhh•hh¹hhhhhhhhhhhhhhhhhÁhh•�••�¹•hhh¹•hhhhh�h•hhhh•�hÁhÁhÁhÁhÁhÁhÁhÁhhhhhhÁhhhhÁhÁhÁhhhÁhÁhhhhhhÁÁhÁhhÁhÁhÁhÁhÁhÁhÁhhhÁhhÁhÁhhÁhhhÁhÁhhhÁhÁhhÁhÁhÁhhhhÁhhÁhhÁhÁhhÁhhhhhÁhÁhhÁhhÁÁhÁhhÁhÁhÁhÁhhÁÁÁhhÁhhhhhhhhhÁhÁhhÁhÁhhÁhÁh•¹hhhh¹•—¹�ÁÁhhhÁhÁhÁhhhhhÁÁhÁhhÁhhÁhhÁhÁhhÁhÁhhÁhhÁhÁhÁhhhhhÁhhhÁhÁhÁhhhhhÁhÁhhÁhÁhÁhÁhhhÁhhhÁhhÁhÁhhÁhÁhhhhÁhhhhhÁhÁhÁhhhÁhÁhhÁhhÁhÁhhÁhhÁÁhhÁhÁhhÁhÁhhhÁÁÁhhhÁÁhÁhhÁhÁhhÁhÁhÁÁhhhÁhhhhhhÁhÁhhhhhÁhhhhhhhÁhhhhhhÁhÁhÁhhhhÁhhÁhhÁhÁhÁhÁhhhhhhÁhhhhhhÁhÁhhÁhhÁhhhhhhÁhhÁhhhhÁhhÁhÁhhhÁhhhhÁhÁhhÁhÁÁhhhhhÁhhhhhÁhÁÁhhÁhhhhhÁhhÁhhhÁhÁhhhhhhÁhÁhhhÁhhhÁhhhhhÁhhhÁhhhhÁÁhhÁhhhhhhhhhhhhÁhhÁhhÁhhÁhhhÁhÁhhhÁÁhhhÁhhÁhÁhhÁhhhhÁhhÁÁhhhhÁhhhhhÁhhÁhhhhÁhhhÁhhhhhÁhÁhhhhhÁhhhÁhhÁhÁhhhhÁhhhÁhhhhhÁhÁhÁhhhÁhhhhÁÁhhhhhhhhhÁhhÁhhhÁÁhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhÁhhhhhhÁhÁhhhhhhhÁÁhhÁhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhÁhhhhhÁhÁhhhhhhhhÁhhÁhhhhhhhhhhhhhhhÁhhÁhÁhhhÁhhhÁhhhhhhhhhhhhhhÁhhÁhhhhÁhÁhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhÁhhhhhÁÁhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhÁhhhhhÁhhhhhhhÁhhhhhÁhhÁhhhhhÁhhhhhhÁhÁÁhhhhhhhhhhhhÁÁhhhhhhhhhhhÁhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhÁhhhhhhÁhhhÁhhhhhhhhhÁhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhÁhhÁhhhÁhhÁhhhhhhÁhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhÁhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhh•¹•hh•hhh•hhh•¹•hhÁÁÁÄÄÍÍÑïÑðððÑÑÑÑÑÑðÑðÑÑðÑÑÑÐÑïððððÑóððóóððóðóðóóóóüóúóóüóóóðóóððððÑÑÑÍÍÍÍÍÄÍÄÄÄÄÁÁÁÁhhhhhhcccbXXXVTTTTTTTThhhhhhhhhh•¹hhhhhhh•¹•h•¹•hhh•¹•¹•hhhhhhhhÁhhhhhÁhhhhh•¹hhhh•¹h•¹hhhhhhhhhhhhhhh•¹•hh•hhh•¹�hhh•hhhh•¹��h•¹hhÁ�h•hhhhhhh•hh•¹•hhhhh•¹�hhhhhhhhhhh•¹hhhh•¹hhhh•¹•hhh•¹hhhh�¹••¹•¹�•hhhhhh•¹hh••¹•hhh•hhhhh••¹�•hhhhhhh•¹h¹•¹•¹Áh•¹•hhhhhh•¹•hh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hh¹•hhhhhhhhhhhh•¹„¾hhh•hhhhhhh•¹hhhhhh•¹�hh•hhh•¹h„hhhhhhhhhh•hhhh�hh•h•¹�•h•¹•¹hhhhhhhhhhh•¹hhhhhhg•¹•hhhhhh•hhhhhhhhhhhhhhhhhhhhhhhh¹„hhhh•hh•¹h•¹hhhhhh•¹hhhÁhÁhhhÁhÁhhhÁhhhhhhÁhÁhhhhÁhÁhÁhhhÁhhhÁhhÁhhhhÁhhÁhÁhÁhhÁhhhhhhhÁÁhhhhÁhÁhhhhÁhhhÁhÁhÁhhÁhÁhÁhÁhÁhhhhÁhÁhÁhhÁhÁhÁhhÁhhÁÁhhhhhhhhÁhÁhhhÁhÁhhÁhÁhhhhhÁhÁhhhÁhÁhÁhhhhÁhhhÁ••Áhhh�¹••ÁhÁhÁhhÁhÁhhÁhhhÁhhhÁhÁhÁhhhÁhÁhhhhhÁhhÁhÁhÁhÁhÁhÁhhÁhÁhÁhhÁhÁhÁÁhÁhhÁhhhhhhÁÁhhÁhÁhhÁhhÁhhÁÁhhhhhhhÁhhhhhhÁhhhÁhhÁhhhhhÁhhhhÁhhÁhÁhÁÁhÁhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhhÁhÁhÁhÁhhÁhhhhhhhhhhhÁhhhÁhhÁhÁÁhhhhhhhhÁhhhhhhÁhÁhÁÁhhÁhhÁhhÁhhhÁÁhÁÁhhhhhÁhhhhhhÁhhhhhhhÁhhhhÁhÁhÁhhhÁhhÁhhhhhhhÁhhhÁhhhhÁhhhhhÁhhÁhÁhhhhÁhhhhhhhhhÁÁhhÁÁhhhhÁhhhhhhhhhhhÁhhhÁhÁhhÁhhÁhhhhhÁhhhhÁhÁhhhhhhÁhhhhhhhÁhhhhhhÁhhhhÁhhÁhhhÁhhhhhhhhhhhhhÁhÁhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhÁhhhhhÁÁhhhhÁÁhhÁhhhhÁhhhÁhhÁhhÁhhhhhÁhhhÁhhhhhhÁÁhhhhhhÁÁhhhhhhÁhhhhhhhhhhhhÁhhhhhhÁhhhhÁhhÁhhhhhhhhhhhhÁhhÁhÁhhÁhhhhhÁhhhhhhhÁhÁhhhhÁhhhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhÁhÁhhhhhhhhhÁhhhhÁhhhhhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhÁhhÁhhhhhhhÁhhhhhhhhhÁhhhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhÁÁhhhhhÁhÁhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhÁhÁhhÁhhhhhhhhÁhhhhhhÁhhhhhhhhÁhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhÁhhhhhÁhhhÁhhÁhhhhÁhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhÁhhhhhhhh•hhhh•hhhhhhhhhh¹•h�h¹ÃÄÍÍÄÍÑððÑÑÑÑÑðÑðÑðÑÑÑÑÑÑÑÑÑÑðððÑÑðððóððððóðóóððóðóóüóüóóóðóðððððÑðÑÍÑÑÑÄÍÄÍÄÄÄÁÁÁÁÁhÁhhhchccXXbXXTTTTTTTThhhhhhhhhhhh•�¹•hhhhh�¹•hh•hhhh�•h•¹•hhhhhhhhhhhhhhhhhhh•�¹•¹••hh•hhhhhhhhhh¹•h¹•hh•hhhhhhh•¹•hhhhhhhh•¹•¹••hhh¹hhhh¹•h¹•hhhhhhhh¹hhh•¹•hhhhhhhhhhh•hhh¹••�¹•hhh•hh¹••hhhh¹•hhh�Á¹•hh¹hhhh•�¹•h�¹hhhhhhhhhhh�¹•hhhhhhhh•f�•h•hhhhhhhhhhhhh•hhhhhhhhhhhhhhÁhhhhhhhhhhhhh¹•hhhhhhhhhh�hh�¹•hhhhhhhhhhh•hhhhhhhhhhhhhh•�¹hhh¹••h¹•hhhhhh�¹•ghhhhhhhhhhhhh¹hhhhh•¹hhh�••hhhhhhh�¹hhh•hhhhhhhh�¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�¾hhhhhhhh•hhh�¹•hh¹f•hÁhÁhÁhhhÁhÁhhhhÁhhhhÁhÁhÁhÁhhhhhÁhhhhÁÁÁhÁhhÁhhhÁhhÁhÁhhÁhÁhÁÁhhÁhhÁhÁhhhhÁhhhÁhÁÁhhhhhÁhÁÁhÁÁhÁhhÁÁhÁhÁhhhÁÁhhÁÁhhÁhhÁhhhhhhhÁhÁhÁhÁhhÁÁhhhhhhÁhÁhhhÁÁhÁhhhhhhÁÁhhhhhÁ•¹Áhh•¹•hÁhhhhÁhhhhÁhhhhhÁhhhÁhhhhÁhÁhÁhhhÁÁhhÁÁhÁhhhÁhÁhÁhhÁhÁhhhhhhÁhÁhhhhÁhhÁÁhhÁhhhÁhhÁhhÁhhÁhÁhhhhhhhÁhhhÁÁÁhhÁhhhhÁhhhhhhÁhÁhhÁhhhhÁhÁhhhÁhhhhhÁhÁhÁhhhÁhhhhÁhÁhÁhhhÁhÁhhÁhhÁhhhÁÁhhhhÁhÁhÁhhhhÁhhÁhÁhÁhhÁhhhhhÁhhÁhÁhÁhhhhÁhhhhhhhhhhhhÁhÁhhhhhhhÁhhhhhhÁhÁhhhÁhhhÁhhÁhÁhhhhÁÁhhÁhÁhhhhhÁhhÁhÁhÁhhhÁhhhÁhhÁhhhhhÁÁhhÁhhÁhhhÁhhÁhhhhhhhhhhhhÁhhÁhhÁÁhhhÁhhhhhhhhhhhÁhhhhhÁÁhhhhhhhÁhhhhÁhhÁhhhÁhhhhhhhhÁhhhhhhÁhhhÁÁhhhhÁhhÁhhhhÁhhÁÁhhÁhhÁhhhhÁÁhÁhhÁÁhÁhÁhhÁhÁhhhhhhÁÁhhhhhÁhhhhhhhÁhhÁhÁhhhÁhhhhhhhhÁhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhÁhÁhhhhhhhÁhÁhÁhhhhÁÁhhhhhhhÁhhÁhhhhhhÁhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhÁhÁhÁhhhhhhÁÁhhhhhhÁÁhhhhÁhhÁhhhhÁhhhhhÁhhhhÁhhhhhhhhÁhhhÁhhÁhhÁhhhhhhhÁhÁhhÁhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhÁhhhÁhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhhhhÁhhhhÁhhhhhhhhhÁhhhhhhÁhhhhhhhhhh•¹hhhhhhhhhhh•¹•¹hhh•h•¹Á�ÁÁÁÄÍÍÍÑÑÑðóððóðððððÑÑÑÑððÑÑáÑÑÑððððïóððððóóóððóóóóúóóóüóóüóóóðððÑÑÑÑÍÍÑÍÍÍÍÍÍÄÄÄÁÁÁÁÁhccccccXXbXTXUTTTTT:TTThhhhhhhhhhh•¹•hhhhh•¹•hhhhhh•¹•¹•¹�hhhhhhhhhhhhhhhÁhhhh•¹h•�hhhhhhhhhhhhhÁh•hh•hhhhhhhhhhhhhhhhhhhhhh•h•�hhhh•hh•¹�•hh•hhhhhh•¹�•hhhh�hhhh•¹hhhhhhh•¹�••¹hhhhh•¹hh•hhhhhh•hhhh¹„h•¹�•�hhh•¹•hhh•hhhhhhhhhhh¹•hhhhhhhhh¹•¹hhhhhhhhhhhh•¹hhhh•¹hhf¹•¹•hhhhhhhhhhhhhhhhh••hhhhhhhhhh•¹hhh•hhhhhhhhhhhhhhhhhhhhhhhhhhh•¹h•hh•hhh•hhhhhhh•hhhhhhhhhhhhhhhh•hhhhhhhhhh•¹hhhhhhh•¹•hhhhhhhhhhhhh•hh•¹hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhh•hhhÁhhhhhÁhhhhhhÁhhhÁhÁÁhÁhhÁhhhhhhÁhÁhÁhhÁhÁhhhÁÁhÁhÁhhÁhÁhhhhhhÁhhhÁÁhÁhÁhhÁhÁÁhÁhhhhhhÁhÁÁhhhhhhhhhhÁhÁhhhhhhhhÁhÁhhhÁhÁhhhÁhhÁÁhhhhhhÁhhhÁhhÁhhÁÁhÁhÁhhhhhhÁhhhhÁhhhhÁhÁh�¾„¹•Á�Á¹•h¹•Áh¹•¹•hÁhhhÁhÁhÁhhhhÁhhhhÁhhhhhhhhhhhÁhhhhhhhÁhÁhhhhhhhhhÁhhhhhÁhhhhhhhhÁhhÁhhhhhhhhhhÁhhhhÁhhÁhÁhÁhhhhhhÁÁhhÁhÁhÁhÁhhhhÁhhhhhhÁhhhhhÁhhhhhhÁhhÁhÁhhhÁhhhÁhÁhhhÁhhÁhÁhÁhhhhhhÁhhÁhhhÁhhhhÁÁhhhhÁhhhhhhhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhÁhÁhhhÁhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhÁhÁhhhhhhhÁhhhhÁhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhÁhÁhhÁhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhÁhhhhhhhhhhhÁhhhhÁhhhhhhhÁÁhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhhÁhhhÁhhÁhhhhÁÁhhhhhhhÁhhhÁÁhhÁhhÁhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhÁhhhÁhhhhhhhhhhÁÁhhhhhhhhhÁhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhÁhhÁhhhhhhhhÁhhÁhhhhhÁhhhhhhhhhÁhhhhhhhhhhhÁhhhhÁhhhhhhhhhhÁhhÁhhhhhÁhhhhhhÁhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhÁhhhhhhhhÁhhÁhhhhhhhhhhÁhhhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhh•�¹hhhhhhh¹•h�••hh¹•hh�hÁÁÄÄÄÍÑÑÑÑðððÑðÑðÑÑðÑÑððÑÑÑÑÑïÑððððððððððððóðóóóóðóüóüúóóúóóóóðððÑÑðÑÑÍÑÍÍÍÄÄÄÄÁÁÁÄÁÁÁhhhhcccccXXXXXTTTTTTThhhhhhhÁhh¹hh�¹•hhhhh•hhhhhhhhh•hh•hhhhhhhhhhhhhhhhhhhhhh•h¹•¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹•¹•hhhhhhhh•¹•hhhhhh¹•hh•¹•hhhh¹•hhhh•�¹•hhhhh•¹•h•hhhhhh•hhhhhhhhhhhhhh�¾hhhh¹•¹hhh�¹•hhhhhhhhhhhhhh�hhhhhhhhhhh•h�¹hhhhhhhhh¹••hhhhh•�¹•h•hhhÁhhhhhhhhhhhhhhhh¹•hhhhhhhhhh•hh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�Áhh¹•¹•h�hhhhhhhhhhh¹•hhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhÁhÁhhhhhÁhhhhhhÁÁhhÁhhhÁÁhhhÁhhhhÁhhhÁhÁhhhhÁhhÁhhhhhhÁhhhÁÁhhhÁhhhhÁhhÁhÁhhhhhÁhhhÁhÁhhhÁhhÁhhhÁhhhÁhÁhÁhhhhÁhhhhhhÁhhÁhÁhhhhÁhÁhhhhhhhÁhhÁhÁhhÁhÁhhÁhÁhhh•¹Á•¹�Á•¹h•hÁ••¹•Á�•hhh•¹hhhÁhhhÁhhÁhhhhhhhhÁhhhhÁhhÁhhhÁhhhhhÁÁhÁhÁhhhhhhhhhÁhhhhÁhhÁhhhhhhhhhÁhhhhÁhhhhhÁhÁhhhhhhhhÁhhhhhhÁhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhÁhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhÁhÁhhhÁhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhÁhÁhhhÁhhÁhhhhhhÁhhhhhhÁhhhhhhhhÁhhhhÁhhÁhhhhhhhhhÁhhÁhhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhÁhhhhhÁhhhhÁhhÁÁhhhÁhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhÁhhhhhÁhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhh•¹hh•hhhhhh•hhÁ¹�¹�•hhhhhhÁÄÄÄÍÑÐÍÑððÑòÑÑððÑÍÑðÑÑÑÑÑðððÑÑðÑðððóðððóðóóððóóóóóóüóóóüüóðóóðððððÑÑÑÑÑÑÍÍÍÍÄÁÄÁÁÁhhÁhhhhcbccXXXXXXXTTTTTTTTThhhhhh•¹�•hh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hh•hhhhhhhhhhhh•hh¹hhhh•hhhhhhhhhh••¹hhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•h•hh�¹•hhhhhhhhhhhh�hhhhhhhhhhhhhhhh¾„hhhhh•¹�h•hhhhhhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hh•h•hhhhhhhhhhh¹•hh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁÁhhhÁhhhhhhÁhÁhhhhhÁÁhhhhÁhhhÁhhhhhhÁhhÁhÁhhhhhhÁhÁhÁhhÁhhhÁhhhÁhhhÁhhhhhhhhÁhhhhhÁhhÁhhhÁhhÁhhÁhhhhhhÁhÁhhhÁhhhÁhhÁhhÁhhhhhhÁhhhhhÁÁhhhhhÁÁhÁhÁhhhhhÁhhhÁhhhhhÁhhhh•hh•¹Áh•h¹•hÁh�¾Á¹•Áh¹•Á•¹•hh¾„ÁhhhhhhÁhhhhhhÁhhhhhhhhÁhhÁhhhhhhhhÁhhÁhhÁhÁhhhÁÁhhÁhhhhhhhhhÁhhhhhÁhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhÁhÁhhÁhÁhhÁhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhÁhhhhhhhhhÁhhhhhÁhhÁhhhhhhÁhhÁhhÁhÁhhhhÁhhhhhhhhhhhhÁhÁhhÁhhÁhhhhhhÁhhÁhhhhÁhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhÁhÁhhhhÁhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhÁhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhÁhhhhÁhhhhhhhhÁhhhhÁhhhÁhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhhhhÁhhhhhÁhhhhhhhhhÁhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhÁhhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhh•hhhhhhhhhhhhh„¾„¹hhhhhhhÁÁÄÄÍÈÑðóÑðððððÑÑðÑóÑððÑÐÑÑÑÑððÑððÑððÑðóððððúóóóóúðóóüóüóüóóóïððÑðÑÑÑÍÍÍÄÍÄÄÄÄÄÄÁÄÁÁhhhhccccccXXXTXTTTT:TT:Thhhhhhhh•¹•hhhhhhhhhhhhhhhhhhhhhhhhhhh¹•hh¾„hhhhhhhhhhhhhhhh•¹hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhh•�¹•hhhhhhhhhhhhhh•�¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhh•h¹•ghhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhÁhÁhhÁhhhÁhhhhhhÁhhÁÁhhhhhÁhhhhhhhÁhÁÁhhÁhhÁhhÁhhhÁhhÁhhhhhhhhhhÁhhhhÁÁhÁhhhhÁhhhhhhhhhÁhÁhÁhÁhÁhhhhhhhhhhhhhÁhÁhhÁhhhÁhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁh•¹�h•hhh•hhh•¹„h•hhh•hhh•hhÁ•¹•¹hhÁhhhhÁhÁhhÁhhÁhÁhhhhhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhÁÁhhÁhhhhhhhÁhhÁhhhhhhhhhhÁhhhhhÁhhÁhhÁhhÁhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁÁhhÁhhÁhÁhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhÁhÁhhhhhhhÁhhhhÁhhhhhhhhhhhhÁhhhhÁhhÁhÁhhhhÁhhhÁhhÁhhÁhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhÁhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhÁhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹•¹hhhhhhhhhhhhhhhhhhhhhhhh¹•hhhhhhhÁÁÄÄÄÍÍÑððÑððððÑðÑÑÑðÑðÑÐáÑðÍðÑðÑÑððÑððððððóðóóðóóóóóüüóüóüðóòðððÑðÑÑÑÍÍÍÍÍÄÄÄÄÄÄÁÁÁhhhhhhhcccXXXXXTTTT:TcÁhhhhhhhhhhhhhhhhh•¹hhhhhhhhhhhhh•¹�•hh„¹hhhhhhhhhhhhhhhhhh•�hhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh„hhhhhhhh•¹hhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhh�•hhhhhhhhhhhhhhhhhhhhhhhhchhhÁhhhhhhhÁÁhhhhhÁhÁhhÁhhhhhhhhhhÁhhhhhÁhhhÁÁhhhhhhhhhhÁhhÁhhhhhhhhhhhÁhhhhÁhhhhÁhhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhhhhhhhÁhhhhhhÁÁhhhhhhhhhhhÁhhhhhhÁhhhhh¹•hh•¹•hhhhÁhh¹•Á�¹Áhhhhh�¹•hhhhh••�¹•h¹•hhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhÁhhhhhhhhÁhhÁhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhÁhÁhhhhhhhhhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhÁhÁhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhÁhhhhÁhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�••�¹•hhhhhhhhhhhhhhhhhhhhh�hhhhhhhÁÁÄÄÄÍÑÐÑÑïÑÑðÑððÑÑððÑÑðÑððïÎÐïáðÑððÑððóóðóóóðúóüóóóóóüóóóóððóóóðððÑÍÍÍÍÑÍÄÄÍÄÄÄÄÄÁhhÁhhccccccXbXXXXTTTTTTTTTTThhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhh•�¹•hhhh�¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhchhhhhhedhhhhhhhhhhhhhhhÁhÁhhÁhhhhhhhhhhhÁhÁhÁhhhhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhÁhÁhhhÁhhhhÁhhhhÁhÁhhhhhhhhhhhhhhhhhÁÁhhhÁhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhÁhhhÁh•¹h•¹h•¹�•hh•¹�hh•¹hhhh•h•¹Á�•¹h•¹¾„h•¹hh•¹�¹•hh•ÁhhhÁhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhÁhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhÁhhÁhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhhÁhhhÁhhhhhhhhhÁhhhhÁhhhhhhÁhhhhhhhhhhhÁhhÁhhhhhhÁhhhhhhÁhhhhhÁhhhhÁhhhhÁhhhÁhhhhhÁhhhhÁhhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhÁhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhÁhhÁhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhÁhhhÁhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhh•¹�¹•¹„hhhhhh•¹hhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÄÍÑÑðÑðððððÑðÑðÑïðÑÑÍïÑÑððÑÑðððïòððððóóïðóóðóóóóüóóóüúúóóóððððÑÑÑÑÑÑÍÍÍÍÍÄÄÄÁÁÁÁÁhhhhcccccbXXXXTTTTTTTThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhghhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhdhhhhhhhchhhhhchhdhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhÁhhhÁhhhÁhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhÁÁhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhÁhÁÁhhhhhhÁhhhhhhhhhhhh•Áh•�¹•¹•hhh•Á¹•h•�¹•hhhh•h¹•Á•h•h¹•Á•hhh•�¾„¹•hhhhhhhhÁhÁhhÁhÁhhhhhhhhhÁhhhhÁhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhÁhhÁhhhhhÁhhhhÁhhÁhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhÁhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhÁhhhhhÁhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhÁhhÁhhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhh•hh�hhhhhhhhh•�¹•hhhhhhhhhhhhhhhhhhhhÁÁÍÍÍÑáðððÑÑÑðððÑðÑÑÑÑÑÍÑÑÍÑðÑïÑóððððòððóððóððóóððóóóóóóüóðóððïððÑððÍÑÑÍÍÍÍÄÄÄÄÄÄÁÁÁhhhhhccccXXXXTUXT"TTT"TTchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhdhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhchhhhchhhhhhhhhhhhhhhhdhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhÁhhhhÁhhhhhÁhhhhhhhhÁhhhhhhhhÁhhhhhhhhhÁÁhhhhhhhhhhhhhÁhhhhÁhÁhhhhÁhhhhÁhhÁhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhh•¹hhhhh•¹Á�••¹h•¹h•hh•¹••¹hhhhh•hhhhhh•hh•¹hh•¹•¹�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhÁhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhÁhhhhhhhhhhhhhÁhhhhhÁhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhÁhhhhhÁhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhhhhhhhhh¹„hhhhhhhhhhhhhhhhhhhhhÁÄÄÄÍÄÍÐÐÑððóðÑÑðÑðÑððððððÑÑÑÑÑóïÑðððððóóïðóðóóóðóóüóóóüüüóóðóððððÑÑÑÑÑÑÑÍÄÍÄÄÄÁÁÁÁÁhÁhhchcccXbbXXXXTTTTTTTTT:hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhghhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhchhhhhhdghhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhÁhhhÁhhhhhhhhhhhÁhhÁhhhÁÁhhhhhhhhhhhÁhhhhhhhhhhÁhhÁhhÁhhhhhhÁhhÁhhÁhhhhÁhhÁhhhÁhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhh¹••�¹•¹•h•h¹•h•hh•hhhhh�¹••hhhhhhhhhhhhhhhh•hhhh•„¾¹•¹•¹•hhÁhhhÁhhhhhhÁhhÁhhÁhhhÁhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhÁhhhhhÁhhhhÁhhhhhhhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhfhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÍÍÍÑÑðððððÑÑóÑÑÑÑðÑáÑÑÑïÍÑÑðððïðððððòðóóðóóðóóóóóóóóüüóóóðððððÑÑÑÑÑÍÍÍÍÄÄÄÄÁÁÄÁÁhhÁhcchcccXbXXTTTTT0"TTTchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhchhhhhhhhfhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhghhchhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhÁhhhÁhhhh•¹•¹�•h•¹„•�hhhh•hhhhhhh•¹h•¹•hh•¹hhhhh¹•¹•¹hhhhhhhhh•¹�„•¾�•hhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÍÑÑððóðððððððÑððÑÐðÑÑÑðÑðÑÑÑððÑððóïðóóðóðóðüóóóóóóóóóóóðððÑððððÑÍÍÍÍÍÍÍÍÍÄÍÄÄÁÁÁhhhhhcccccXXXXXTTTTTTTchhhhhhhhhhhhhhhhhhhhhhfhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhÁhhhhÁhhÁÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhÁhhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhh¾hh•�Á¹•gh�¹•¹•hhhhhhh¹•h¹••hh•hhhh•�¹•h„h�•h••¹hhh¹•¹•hh¾¹•h¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhhÁhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhÁÁÄÄÍÍÍÑÑÑïÑÑðÑðÑÑÑÑóÑðÑÍÑÑðÍðÑóÑÑðÑððððððòðóóóóðóóóüüüþüóóóóóðóððÑÑÑÍÑÑÍÍÄÄÄÄÁÄÁÁÁÁÁhhhhccccXXcXXXTTTTTTTThhchhhhhhhhhhhhhhhhhhhhghhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhchhhhhhhhhhhhchchhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghdhhhhhhhhhhgdhchhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhchhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhghhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhhhÁhhhhhÁhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhh•¹„hh•¹h�h•¹Á�•hhhhhhhhh•hh•hhhhh•¹hh•¹•hhhh•¹hhh�•¹�••�hg„h„•¹„hhhhhhÁhhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhÁhhhhÁhhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÄÍÍÑÑÑðÑððÑïððÑÑÑñïïÍðÑÑðÑÑðÑðÑðððïòðððóððóóóóúóüüóüüóóóóóóðððÑÑÍÑÑÍÍÍÍÍÄÄÁÄÄÁÁÁÁhhhhcccccbXXTTTXTTTTTThhhhhhhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhh•¹•hh„h¹•hhh¹•hhhhhh¹•hhhhhhhh¹•h•hhh•hhh¹•h•hhhhh•h¹•¹•¹•¹�¹•�¹•hh¹•hhhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhghhhhhhhÁÄÍÍÍÍÍðððððÑÑÑÑðÑÑÑÑÑÑÑÑïáÑÑÑóðððóðÑóóïóðóðòóóóðúóóðóüóóóóðððïðÑÑðÑÑÑÍÍÍÍÄÄÄÄÍÄÁÁÁÁhhhchhccXbXbbXXTTTTTTTTThhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhchhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchghhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhÁhhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhh¾�hh•¹h•hh•h•hhhh•¹�•hhhhh•¹hh•hg•¹hhh•¹�•hhhhhhhhhhh•h•¹�hÁ�•¹••¹�•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhchhhhhhhhhhÁÁÄÄÄÍÍÑÑðððððððÑðÑððÑÑÑïÑÑïÑÑðÑÑððððððòïðóóðóóóóóóóóóüüúóóóóðóððððÑÑÍÑÑÍÍÍÄÄÄÄÁÄÄÁÁÁhhhhcccccbXXVXTTTTTT:TTchhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhehhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhÁhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhÁhhÁhhhhhhhhhhh¹•hhhhhhh¹•hhhhhh•¹•hhh¹•h•�¹•hhh•�¹•h•¹•hhhh¹•hhhhhhhh•hhh¹•�¹•hh¹hhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÄÍÍÑðÑððÑððóððððóðððÑðÑÍÍÑÑðÑÑÑðððóïïÑððóóóóðóüóóóüóóóóóóóóóðïðÑÑÍÍÍÍÍÍÍÄÄÍÄÄÁÄÁÁÁhhhhdgcccXXXTXXXTTTTT:TTTTThhhhhhhhhhhhhhhhhhhhhchhdhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhhhhhhhfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhchhchdhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhdhhhchhhhhhhhhhdhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhhchhhhhhhhhhhhhhhehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhfghhhhhhchhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹�hhh¹hhhh•hh•¹�•hh•¹hhhh•¹h„h•¹�hhhhh•hhhhhhhhhhhhh•hhhhhh•h�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhchhhhhhhhhhhhÁÁÄÄÄÄÑÑÑÑÑðÑðÑÑÑÑðÑÑÍÑðÑÑðððÑÑðððððïïðóóðóðððóóóóðóóóóüüüüóðððððððððÑÑÍÍÄÍÍÄÄÄÄÁÄÁÁÁÁhchchcccbbXXXTTTT:TTTchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhchhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhÁhhhhhhhÁhhhhÁhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhh�h•hhhh•hhhhhhhh•¹•ghhhhhhhh�¹•¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹hhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhchhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhÁÁÄÍÄÍÑÑÑÑðððÑÑðÑðÑÑðÑÑðÍÑÑðÑÑÑðÑððÑñððóðððóðóóðóóóóóóüüüóóóóðóððÑÑÑÑÑÍÑÍÍÄÄÍÍÄÄÄÁÁÁÁhhhghchcXbbXXTTUTTTTchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhdhhdhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhdghhhhhhhhhhchhhhhhhhdhhchhhhhhhhhhchhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•¹hhhhhhhhhhhhhhhh�hhhhhhhhh¹�Á�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh••hhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhchhhhhhhhhhhhhhhhhhchhhhhhhhchhhhÁÄÄÍÍÑÑððððóððÑÑÑÑÑÑÑÑðÑðÎÑÑÑÑóÑÑðÑÑóðóðóðóóóðóððóóóóóóüóóðòðððððÑÑÑÑÑÑÑÍÍÍÄÍÄÄÄÁÁÁÁÁhhhhcccbbXXXXXTXTTT"T:hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhghhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhghhdhhhhdhhhhhhhhhhhhhghhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh¹••hhhhhhhhhhhhhhhhhhhhhhhhhhhh¹•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhchhhhhhhchhhhhhchhhchhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhh¾ÂÄÄÄÄÍÑÑÑððððÑððÑðÑðÑðÑÑÑïÑðÑðððÑïóÑððððððóóðóóóóóüóüóóüóóóóóóððÑðÑÑÑÍÑÍÍÍÍÄÄÄÄÁÁÁÁÁÁhhhccccbbXXXTTTT"TTT"TM"hhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhdhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhchhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhchhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhÁÁÄÄÄÍÍÍÑððððÑððÑÑÑÑðÑðÑÑÑðïóÑðÑðÑÑòððððóóðóóóððóóðüüóüóüóóóðóóðÑÑðÑÑÍÍÑÍÍÍÍÍÄÄÁÁÁÄÁÁhhhhcccbccXXVXXTTTTTT"TThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhchhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhdhhhhghhghhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhchhchhhhchhhhhhhhhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhÁÁÄÍÍÑÑÑÑððÑÑÑÑððÑðÑððÑÑÑÑÑÑÑÑÑðððððÑðóððïðóðóüóúðóúóüüóüóóóððððóòððÑÑÍÍÍÍÄÄÄÁÄÄÄÁÁÄÁhhhchchcbXXXXTXXTTTTMTThhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhÁÁÄÄÍÍÑÑÑÑððððÑÑððÑððÑÑÑðÑÑÑÑðÑðÑðððÑðððóððððóóóóóúðóóóüúóóóóððïðððÑÑÍÑÍÍÍÍÍÄÄÄÄÁÁÁÁÁhhhhchcccXXXXXTTTTT""TchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÄÄÄÄÄÍÍðÑÑðóðÑðððððïððÑðÑÑÑÍÑÑÑÑÑðÑððóðððóðððúóóóóðóóúóóóóóóóóððÑÑÑÑÑÑÍÍÍÍÄÄÍÄÄÄÄÁÁhhhhchccbXccXXXTTTTTTTTTTT"TTT:"Thhhhchhhhhhhhhhchhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhh•¹ÁÄÄÄÑÍÑððððÑïçðÑÑïÑÑðÑÑÑÑÑðÑÑððððððððððóóðóðóðóóóóóóüüóóóðóðòóðïðÑÑÑÑÑÍÍÍÍÄÍÄÄÁÁÁÁÁÁÁhhchccccXXXXXTVTTT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhdehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhchhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhÃÄÄÄÍÍÑðððÑðÑððÑððÑÑÑÑÑÑÑÑÑÑÑðÑðÑððððððòðóððóðüóóóóóüóóóüóóóóóððÑÑðÑÑÍÍÍÍÄÍÄÄÄÄÁÁÁÁÁhhhhcccccbXXXXTTXTTTTThhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhchhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhÁÁÄÄÄÍÍÑÑÑÑðððððÑÑððÑÑðÑÑÑÑÑððÑðóððóðÑðïððóðóóðóðóóüóóüüüüóóððóððððððÑÑÍÑÍÍÍÄÄÄÄÄÄÁÁhhhhhhcccbXcXXXTTXTTTT0TchhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhhhhhhhhchhhhhhhhhhhhhchhhhhhhchhhhhhhhhhhhhhhhhhCorsixTH-0.70.0/CorsixTH/Bitmap/mainmenu1080.pal000066400000000000000000000014001522247547500210500ustar00rootroot00000000000000                                               ! $ ! " '#$' *( #&'!$"%(),*, "%#$) "(#)%  + - *!.$.!" &""!&$'!*"-%.")#+$*%-#/$0"0$2%4#/&1&6&1'3'7(2(7)1)4)8+:)9,:&",,.!%#),2 #, !&0)5!!! #'!$'%%% #("%) &-$'*$'+"(.&(+%)-***(*-*,.--+--- '0"*1!*4!+3",4$*1$+4&,2%-5 +7!,8$-8(+/*-2).4,.1+/3(/8'/6'/9*05.02-15.37*09-3:,3;.48,4;11/111025246566/37159/5<56837;37;68969<99::;<;;‚^AŒdB˜kC�pH†lW‘nQ‹r\–tX nC§vJ²}L¬|P±~P�n`ˆuf”{g�|p�~q¤w`/ƒGŠk¡~F�ZJ¥[P”a}‚i®€E·‚M¬�[¹„R¼‘WŠ„lš�kŠˆv™…uŸ’w¨†gµˆk»”h¦‹u°Žr«’z·•wÀŽLÁ�NÄ‹VÌ‘ZÒ–]ÀŽ`Æ™fÙ›aÅ›tПràŸcÉ¡lÝ eȦyÔ¤}ã¤fë°næ§rë²q™<<ˆ²"U³8f¹AA†DD•bbŒKK§^p±$$̳Œr„€˜Õ¦„„„œŽƒž�…––– Ž�¥•‰¶˜ƒ«œ’°ž�¼¡‰®¡˜¸¥—©©©¶ª¢¼²«­µµ¸¸¸ÂŸ‚È©ŠÔ¬‡Î°‡Ó³ŠÈ©’Ñ®‘̲™Ö¶—஀᳇ᶒÀ® Éµ¨Ô¼¥Ç¼²Ð¿°á¿ ÙÀŸåÀ�ØÂ¬Ìº×ǶÞмæÄ©éÍ·ðϱâѼðѲ½ÅÅÇÇÇ×ÌÃÛÒÊÛÚØàÏÀå×ÈóØÀâÜÕðßÐíàÎæáÜñæÛëèåñíéóðíýýýhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÍÑïððïïïÑÑïïððððòòòó÷úú÷òðïïÑÐÍÄÄÄÁhhdcbXUTTTTdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÄÄÍÑïïïðïïÑÑÑÑïðððòñóóóú÷óóððÑÑÍÍÄÄÄÁhhdcbXUTTT"""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÐïðïïïïïÑÑÑïðððððó÷óóúúóòððïÐÍÍÄÄÁÁhhdcbXXU""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÐïððïÑÑïÑÑÑïïððñðóòòóóú÷òððÑÑÐÍÄÄÁÁÁhdcbXXT""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÐÑïïïïÑÑÑÑÑïïððððòóóóóú÷óððÑÑÍÍÍÄÄÁhhgcbXX:"TdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÍÐïðïïïïÑÑÑÑïïðððòòóóó÷úóóððÑÐÍÍÄÄÄÁhhgcbXXT"TdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÍïïïïÑÑïÑÑïïïïððñòóóóúúóóððÑÑÐÍÄÄÁÁhhdcbXUTT"TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÍïððïïÑïÑïÑïïïððòòóóóóúóóððÑÑÍÍÄÄÄÁhhdcbXUTTTdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÍÐÑðïïïÑïïÑÑïïððñòòóóóóúúòððÑÑÐÍÍÄÁÁhhdcbXXTTTghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÐÑïïïïïïÑïÑïïððñòòóóó÷óóòòðÑÐÐÍÄÄÄÁhhdcbXXTT""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÍïïðïÑïïÑÑÑïïððññòóóó÷úúóñïÑÑÍÍÄÄÁÁhhdcbXXT""""""ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÐÑðððïïÑïÑÑïððñðòòòó÷÷÷÷óðïÑÐÐÍÍÄÁÁÁhdcbXXT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÂÍÐÑïïïÑïÑÑÑÑïïðððñòòóóúúóòñïïÐÐÍÄÄÁÁhhgdbXXTTThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÑïïïÑÑÑïÑÑïïððððòóóóóúóóñïÑÑÍÍÄÄÁÁhhdcbXXT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÄÄÍÑðïïïÑïïÑÑïïððñòñóó÷óúóòððÑÐÍÍÄÄÁÁhhdcbXXT"""ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhÁhhhhÁhhhhÁÁÁhhÁÁhhhÁhhhhhhhhhhhhhhhÁhÁÁhÁhhhÁÁhÁhhhhhhhÁhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÐïððïïÑÑÑÑÑïïððññóòóó÷úóóòïïÑÐÍÄÄÁÁhhgcbXXU""ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁÁhhhÁÁÁhhhÁhhhÁÁÁÁÁÁÁÁhhhÁhÁÁÁhhhÁhÁÁÁhÁhÁÁhhhÁÁhhhhhhÁÁÁÁÁhhhÁhhÁÁhhhhÁÁhÁhhÁÁhhhhhhhhhhhÁhÁhhhhhhÁÁhhhhÁhÁÁhÁhhÁÁhhhhhhhhÁÁhhhÁhÁÁhhhÁhhhhhÁhhhÁÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁÁhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhÁhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÐÑïïÑïÑÑïÑÑïïððòðóóóó÷óóòñðÑÑÍÍÄÄÁÁhhgcbbXTTThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁhhÁhhhhhÁÁÁÁÁÁÁÁÁhÁhÁhhhÁÁÁÁÁÁhÁÁÁÁÁÁhhÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁhhhhhhhhhhÁÁÁhhhhhÁhhhhhÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁhhÁhhhhhÁhhhhhÁÁhhhhÁhhhhÁhÁÁÁhÁÁÁhhhhhhhÁÁÁhhhhhhhhhhhÁhhÁÁhhhhhhhÁhhhÁhÁhhhÁhhhhÁhÁhhhÁhhhhhhhhhhhhÁhhÁhhhhÁÁhÁÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÍÐïðïÑïÑÑÑÑïïðððñðòóóó÷÷óóòðÑÑÍÍÄÄÄÁÁhdcbXX:T"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁhÁhhÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhhÁÁÁhÁÁÁÁhhhÁÁÁÁhhÁÁhhhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁhhÁÁÁhÁÁÁÁhhhhÁÁhhÁÁhÁhhÁÁhhÁÁÁhhhhhhÁhhhhhÁÁhÁhhÁÁhhÁhhhhÁÁhhhhÁhÁhÁÁhhhhhhhhhhhÁÁhÁhhÁhÁhhhhhhhÁhÁÁhhhhhÁÁhhhhhhhhÁhhhÁÁÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhÁhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍïððïðïÑÑÑïïïðððòóóóóó÷óóððÑÑÐÍÄÄÄÁhhdcbXXTT""ThhhhÁhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhhÁhhÁÁÁÁhÁÁÁÁhhÁÁhhÁÁÁÁÁÁÁÁhhÁÁÁÁhÁhhÁÁhhhhhÁÁÁÁÁÁÁÁÁÁÁhhhÁhÁÁÁÁÁÁÁÁÁhhhhhhhÁÁhhÁÁÁÁÁhÁhÁÁÁÁhhÁhhhhhhhhhÁÁÁhhÁhÁhhhÁhhÁÁÁhhÁhÁhhhhÁhhhhhÁÁhhÁÁhÁÁÁÁhhhÁÁhhhÁhhhhhÁÁÁÁÁhÁhhhhhhhhhhhÁÁhÁhhhhÁhhhhÁhhhhÁhhÁhÁÁhhhhhhhhhhhhÁÁÄÍÑïðïïïïÑïïïïððñòòòó÷óóóòððÑÑÐÍÄÄÁÁÁhdcbXXUT"""ThhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhhÁhhhhhhhÁhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhhÁÁÁÁÁÁÁÁÁhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁhhÁhÁhÁÁhÁÁhhhhÁÁÁhÁÁÁhhÁÁhÁhÁÁÁÁÁÁÁÁhhÁhhhÁhhhÁÁhhÁÁÁhhÁhhhhÁhÁÁÁÁhhhhÁhÁhÁÁÁhhhÁhÁhhhhhÁÁÁÁhhhhhÁÁÁÄÐïïïïïÑÑïÑÑïïðððòóóóóóú÷òððÑÑÍÍÄÄÄÁhhccbXXTTThhhhÁhhhhÁhhhÁhhhhhÁhhhhÁhhhhÁhÁhhhhhhhhÁÁhhhhhhÁÁÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁhhhÁÁÁÁhhhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhhhhÁÁÄÐïïðïïïÑïÑÑïïððñðòóóóúúóóððÑÐÍÍÄÄÄÁÁhdcbXXTT"ThÁÁhhÁhhhhhÁhhÁÁhÁÁÁhhhÁÁhhÁÁÁhhhhÁhÁhhhÁhÁÁhhÁhhÁÁhÁhhhÁÁÁÁhhhhhhhhÁhÁÁÁhhÁÁhhhÁÁÁhhÁÁhhhhhhhhÁhÁhhÁhÁÁhhhÁÁhhhhÁhhhhhÁhhhhhhhhhÁhhÁÁhhhhhhhÁÁÁhhhhhhhÁhÁhhhhhhÁhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhhhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhÁÍÐÑðïïïïÑÑÑÑïððððñòóóó÷úóóððÑÐÍÍÄÄÄÁhhdcbXUTTTgÁÁÁhhÁhÁhhhhhÁÁhÁÁÁÁÁhÁÁhÁÁÁhÁhÁhÁÁÁhhhhÁÁhhÁÁhhhÁhhhhÁhhhhhhhÁhhhhÁÁÁÁÁhhhÁhhhÁhhÁÁÁhÁhhhhÁÁhhhhhhhhÁÁhhhÁÁhhhhhhhhhhhhhhhhhhhÁhhÁÁÁhÁhÁhÁhÁÁhhhhhÁÁhhhhÁÁhhhÁÁhhhdccddcccddcdccccccdcdcdccccdccddcdccdcccccccccdddcccccdcdcccdcccccdddccccccdcccddccddcdcccccddcccccccccccdcdcdcccdcccdddccddcdcccccccccdccccccccdcccccddccccccccdccdcccccccdccdccccddddcdccccddcccdcccdccccdcccddcccccccddccddddccccccddccccddccccccccccccdccccccccccccdccccccccccccccccdcdcccccccccccdcccccccddccccccccccdccccccccccccccccddcccccccccccccccdcccccccccccddcccccccccccccccccccccccdccddcccccccddcccccdccccccccccccccgÄÄÍÑðïïïïÑïÑÑïïïðññòòóóóúóóððïÑÍÍÄÄÁÁÁhdcbXUT""bcccccccccccccccccccdccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXVXXXXXXXXVXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXVXVXXWXXUXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXWXXXXXVXVXXXXXVXXXXXXXXXVXXVXXXXXXXXVXXVXXVXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXVXXXXXXXXXXVXXXXXXXXXVXXVXXXXXXXVXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXVXVXXVXXVXXXXVXXVXVXXVXXWXXUXXXVXXXXXXXXXXXXXXXVVXXXXXXVXXXUUVUXXXXUXXXXXUXXXcÁÍÍïðïïïïïÑÑÑïïðððòòóó÷óú÷óðïïÑÍÍÄÄÁÁÁhgcbXXTT"WXXVXXUUVXXXXXXVUUXXXXXXXXXXXXXXXXXXXXXVXXXUXXXXXXXVXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXVXXXXXXXXXUUUUUVUUXUUVVVXUUUUUXXUUUUUUXXUUUUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcÁÍÐïððïïïïÑÑïïðððððóòó÷÷÷óòðïïÑÍÍÄÄÁÁhhgcbXUTT"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXdÁÍÐÑðïïïÑÑÑïÑÑïïðððóòó÷óúúóððïÐÍÍÄÄÁÁÁhdcbXVT"""XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXbXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXgÄÍÍïððïÑïÑÑÑÑïïïððòòóóóóúóóððÑÑÍÍÍÄÁÁhhgcbXXU"""XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbgÁÍÐïïððïïÑÑÑïïðððððóóó÷óóóòððÑÑÍÍÄÄÁÁhhgcbXXT""XXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXggghghghhghhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhgggggghhhhhgggghgghhhhghghhhhhhhhhhhhghhhhhhhhghhghhhhhhhghgghhhghhhghhggghhhhhhhghhghhhhhhhhhhhhghghhhhhgghhhhhhhhhgghhhhhhhhggggghghgghhhhhghhhghhhhhhhhhhhhhhhhgghhhhhhgghgghhhhhhhhghhhggghhhhghhhhhhhhhhhhhhhhghghhhhhhhghhhhhgghghhhhhhghhghhgghghhhhhhhhhhhghhhhhghhhghghhhghhhhhhhhhghghhghhhhhhhhhggghghgghhhhhhhhhghhhhhhhhhhhhhhhhgghhhhhhhghhghhhhhhhhggggghhhhghghhhhhhhhhhhhÁÍÐïïïïïïÑÑÑÑÑïððòòòóó÷÷ú÷óððÑÐÍÍÄÄÁÁhhgcbXXTT""TdghhghghhhhhhghhhhhhhhhhggghhhhhgggghghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhghhhhhhhhhhhhgggggghhhhhhhhhhhhghhhhhghhghhhhhhhgghhhhhhhghghhhhhhgghhhghghhhhghhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁhÁhhhhhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÄÍÐÑððïïÑÑÑÑÑÑïððððòòó÷÷úóóððÑÑÍÍÄÄÁÁhhdcbXXT""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhUUT:UUUUUU:::TTUUTUUUU:TUUUUTU:T::U::U:U:U:TTU:UTT:U:UUUUU:UTTT:U:U:TT::UUU:T:U:TTU:TTTTT::UU:UTUUUUTT:WhÁÁhhhhÁhhhÁÁhÁÁhhhÁhhhÁÁÁhÁÁÁÁhÁÁÁÁhhhÁÁhhhÁhhhhhÁÁhhhÁÁÁÁhhhhhÁÁÁÁhhhÁÁhhÁhhhhhhhhÁhhÁhhhÁÁhhhhhhhÁÁhhcUTTTTTT:UTTTTTTTTTTTTTTTTTT:UTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUTTTTTTTTTTUTTTTT:TTTTTTTUTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTUTTTT:TTTTTTTTTTU:TTTTTTTTTTTTTTTTU:TT::::TUTTTTU:TT:UUTTTTTTTU:TUTTTTU:U::T:UUUU:T:bÁÍÐïðïðïïÑïÑÑÑïððððóóóó÷úóóððïÑÍÍÄÄÁÁÁhdcbXXT"":UU:UT:UU::U:UU:UUUUUU:U:UUUTUUUUUUUU:UUUUUUUU:UUUUUUUU:UU:UUUU:UUUUUUUUUUUUUUU:U:UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU   bhhhhÁÁhhhÁhÁhÁhhhÁÁhhÁhhÁhhhhhhÁhÁhhhhhhhhhÁhhhhÁhhhhÁÁhhhhhhÁhÁÁhhÁhhÁhhÁÁhÁhhhhhhhhhhhÁhÁÁhhhhhhhhhhg:                              XÁÍÐïïðïÑïïÑÑïïðïðððòóóóóó÷óððÑÐÍÍÄÄÁÁhhgcbXU:T"      UhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁÁÁhhhhhhhhÁhhhhhhÁhhhhhÁhhhhÁhhhhhhÁÁÁhhhhhh•Áhhhhhhhhhhhhhc                                        XÁÍÐïïðïïïÑÑÑÑïðððñðòòóó÷úúòððÑÑÐÍÄÄÁÁhhdcbXUTT"    dhhhhhhhhhhhhhÁÁhhhhhhÁhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhX                                     XÁÄÍïðïðïÑÑÑÑÑïïðððòóóóó÷ú÷óððÑÑÐÍÄÄÄÁhhdcbXVT"""T    XhhhhhhÁÁhhhhhhhhhÁhhhhhhhhÁÁhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhÁÁÁhhhhhhhhhhÁhhhhhgM                              XÁÄÍïðïðïïÑÑÑïÑïðððñòóóóóóóóððïÑÍÍÄÄÁÁhhdcbXXTT"     TghhhhÁÁhhhhhhhÁhhhÁÁhhhhÁhhhhhÁÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhÁÁhhhhhÁÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhb                                XÁÍÍïïðïïïÑïÑïïðððððòóóóóúóóðïïÐÍÍÄÄÄÁhhgcbXXT"    chÁhhhhhhhhhhÁÁhhhhhhhhhhhÁÁhhhhhhhhhhÁhÁhhÁhhhhhÁhhhhhÁhhÁhhÁhhhhhhÁhhÁhhhhhhÁÁhhÁÁhhhhhhhhhhÁhhÁhh:                             XÄÄÍïïïïÑïÑïÑÑïðïðððòóóóóúóóòïÑÑÍÍÄÄÄÁhhgcbXUT"""  XhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhhÁhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhÁÁhhhhhÁÁhÁhc                              XÁÄÍïððïÑÑÑïïÑÑçðððñóóóóúúóòðïÑÑÍÍÄÄÁÁhhdcbXXT"     TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhW                          XÁÄÐÑððïïïÑÑÑÑïððððòóóóóúúóòñïÑÑÍÍÄÄÁÁÁhdcbXX:""       chhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhd                         XÁÍÍïïððïïïïÑÑïïððððòóóóóúóóððïÑÍÍÄÄÁÁhhdcbXXT"  WhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhX                      XÁÍÍïðïïïÑïïÑÑïïððñòòòóóúúúóðïïÑÍÍÄÄÄÁhhgcbXVT""MghhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhgM                        XÁÍÐïïðïïÑïÑÑïïïððððóòóóó÷óóððÑÑÐÍÄÄÁÁhhgcbXVT""" -bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhb                  XÁÍÍïïïïïïÑÑÑÑïððððððòóóúúóòððÑÑÍÍÄÄÁÁÁhdcbXXTTTTTTTTTTTTTUhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhU                 WÁÄÍÑïïïïÑÑÑÑÑïïððððòòóóóúóòòðÑÑÐÍÄÄÁÁhhdcbXXTTTTTTTUUTTTXXXXXXXXXXUTTXXXXTXXXTghhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁÁhhhhhhhhhhhhhd                  WÁÄÍÑïïÑÑÑÑÑïÑïðððñòòóóó÷úóòððÑÐÍÍÄÄÄÁÁhdcbXXTTTXTTTWXXXXXXXXXXXXUXXXXXXXXXbXXXXXXXXXXXXXXXXXXTTXWTTXXXXWXXXXXXXXXT -bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhW      UhÂÄÍÑÑÑÑÑÑÑÑÑÑïððññòò÷óúúóóððïÑÐÍÄÄÁÁhhgcbXXT"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXbXXT Thhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhÁg       UgÁÄÍÍÐÐÐÑÑÑÐÑÑïïðððòòóóóúóóððÑÐÍÍÄÄÄÁhhccbXTTXXXXXXXbXXXXXXXXXXXXXXbXXXXXXXXbXXXXXbXXbXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXTdhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb-    TghÁÄÍÍÍÐÍÍÐÐÑÑÑïðððñòóóó÷óóñðÑÐÍÍÄÄÁÁhhccXXTTXXXXXXXbbXXXbbXbXXXbbbXbXXXXXXbbbXbXXbXXXXXXXXXXXXXbXXXXXXbXXXbXXXXXXXXXTXhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhh:     ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::bh•ÂÄËËËËÍÎÍÍÏÏááççðçñòòòòòñçÑÑÏÍÍÈÆÃÁ•„fdacbXXXYVV@@;@YV::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::0-XXbXXXXbbbbXbbbbbXXbbbbbXXXXXbbbbbbXbbXXXXXXXXXXXXbbbbXbbbbXXXbbbbbXXXXbTTdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhc    :Y_‚–�ÉÊÊÌÌÌÌÌÌÌÌÌÌ×ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÞÌÌÌÌÞÌÌÌÞÌÞÞÌÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÙßààââââââââââââèèèèèèèèèèèèèèèâââââââââßßßßßßßßßßßÞßÞßßßÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÌÌÉÉÉ�…�[V:XbbbbbbbbbbXbbbbbbXbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbXbbbbbbXbXbbXbbbbbTchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhW "V‚—ÉÙâèñòòòòò÷÷ò÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúûúúûúúûûûûûûûûüüüüüüüüüüüüüüýýýýýýýýýüýüýýýýýýýýþýýþýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþýýýýýýüüýüüýýýýüüüüýüüüüýýýýýýýýýýüüüüüüüüüüüüüüüüûüüüüüüûûûûûûûûûûûûûûûûûúûûúúúúúúúúúúúú÷÷÷÷òñâÞÉ–�VbbbbbbbXbbXbbbbbXbbbbbbXbbbbbXYbbbbbbbbbbbbbbbbbbbXXbXXbbbXXbbbbbXXbbbbbT Xhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhc   -^„Éßèñò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúüúüüüüüüüüüüüüüüüüüüüýýüýüüüýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüúòè߯‚VbbbbYYYbXXY@YYbbbbYYbXYYYBYbXXBYbYBBYXYYYXXYYbYYbbYYXYBYYbYXXYYXYBYbbbbbTMghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhX:f�Þèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúüüúüüüüüüüüüüüüüüüüüüüýüýýýüýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþÿþþÿþÿÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüú÷èÞÅa:bbbYXbBY@Y@@YBXbbYYXYYbYBbYYbbYYYYX@BX@@BYYY@XYYbbY@XB@BYXBYY@BYYYYbbbbbT-bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhgT V„Ìâñ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷úúúúúúúúúúúúúúúúúúúúüúúüüüüüüüüüüüüüüüüüüüüüüüýýýüýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþÿþÿÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüúòâÉ�:-bbbYbbYY[YXYYYYbbYBYYYbY@bY[cbYYbXY@@XYYY[YY@YYYbbXYbYYYYYXY[YYbY@YbbbcbTUghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb--V…Êâò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüýüüüýýýýýýýýýýýýýýýýþýþþþþþþþþþþþþþþþþþþþþþþÿþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþþþÿþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü÷âÊ‚:cbbYXYYbccbbbcbcbXYbbYXY@YYbcbbcccbbbbbbccbbbbbbbbcccbbbcccbcbbccYXbbccbT dhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhT:�Ìèòõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüýüüýýüüüüýýýýýýýýýýýýýþýýþþþþþþþþþþþþþþþþþþþþþþþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüüüüüüüüüüüüüüüüüüüü÷èÉ^0ccbbXXbccccccbccbbbbbbbbbbbcccccccbbcbccccccbbcccccccccbbccbbccbbbbcbccbT-bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhcV�ßò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüýüýýýüüýüýýýýýýýýýýýýþýþþýþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþþýþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüúõß–V-cccccccccccccbccccccccccccccbbcccccccccccccccccccccccccbbcccccccbbccccccT UhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhX"‚Þè÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüýüýýýýýýýüüýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþþÿþþþÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþþþþýýýþþþþýþþþýýþþþýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüýýüüüüüüüüüüüüüüüüüúéÌa,ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT chhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhgVÅßô÷÷÷÷÷÷÷÷÷÷÷÷÷úüüüúúúú÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷óó÷÷÷÷÷ó÷÷÷÷ó÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿÿþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýüüýýüüüüüüüüüüüüüüúúüüüüúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷úúúüüýýýüüüüüüüüüüüüü÷ß…:ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT-Xhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb-^Êèò÷÷÷÷÷÷÷÷÷÷÷úüüüúó÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷ó÷÷÷÷óóóó÷óó÷÷÷÷ó÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþÿÿþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüúüúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ò÷÷÷÷÷÷÷÷÷÷÷÷÷úüýýüüüüüüüüüüüüúèÆVccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT:ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhgTaÞô÷÷÷÷÷÷÷÷÷÷÷úüüú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷ó÷÷÷÷÷÷óóó÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýýýýþýþþþþþþþþþþþþþþþþþþþþþþþÿþÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýüüüýüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüýýüüüüüüüüüüüúôÉ^-cbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccTchhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhb‚Þò÷÷÷÷÷÷÷÷÷÷úúüú÷÷÷÷÷ó÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úú÷úúúúúúúúúúúúúúúúúüúüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþþþþþþþþþþþþþþþþþþþýýþýýýýýýýýýýýüüüýüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüýüüüüüüüüüüüòÌ^-X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@bcT XhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁÁhhhhhhVM„ßò÷÷÷÷÷÷÷÷÷úüüú÷óóó÷÷÷÷÷÷÷óòòññéèéñèñèèèñéñññññôñèñôéñééñññññéñôôôôòôôñôôôôôôòôôõòõôôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ÷÷÷÷÷÷÷÷÷ú÷÷úúú÷÷ùúûúøúûûûûøøøûûûûûûüûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûøûûøûûøûøø÷úø÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõòòõôôôôôôôôôôôôôôôôôòôôôôôôôñèéèèèèèééèèèèèéééèééèèééôòò÷÷÷÷÷÷÷÷÷÷÷úüüýüüüüüüüüüü÷Þa-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT:ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhg“âõ÷÷÷÷÷÷÷÷÷úüú÷÷÷÷óó÷÷÷÷òèß×Êž™������������������†�������������������†��������†������††�������†�††������������������˜���������††��������†���†��™����˜��™���������������˜�˜��˜˜˜���˜˜˜��††�˜™���������������������†��������������†�������������������†�†��������������������������������������™žÊÙàèò÷÷÷÷÷÷÷÷úúüýýüüüüüüüüü÷Þ^-,,,cccdcccddddccccccdccccdcccccdcccccdcccdccdccccccdcccccccccccccccdcdcccccT chhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhX‚ß÷÷÷÷÷÷÷÷÷÷üú÷÷ó÷÷ó÷÷òòâÓž†uC>=$!!! ! ! ! !!!!!!!!! !! !! ! ! ! !!! !!! !!! ! ! ! !! ! !! ! ! !!! ! ! !!!!!! ! ! !!! !! ! !!! ! ! !!! ! !!! !! ! !!!!! !!!! ! ! ! !!!!! !!!! !!!!! ! !!!! !! !!!!!!!!! !! !! !! !!! ! !! !! !!!!!! !! !! !!! ! ! ! ! !!!!!! !!!$=Alv�žÙèò÷÷÷úú÷úúúüýüüüüüüüüü÷Þ^-cccdcdcccddcdcccccccccdccccdccccccdccddccdccccccccccccdcdcdccccccddcccccU WhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhgMaÙõ÷÷÷÷÷÷÷÷úüú÷ó÷÷ó÷÷òèÙœyC=!!=l}žàò÷úúúúúúúüýüüüüüüüüü÷ÌbdccdcddccddcccgccccdcccdccddcdcccccccdccccccccdcdccdcccdddcdcddccddcccccUghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb-^Þõ÷÷÷÷÷÷÷÷üüú÷ó÷ó÷÷òèטo= !>uœÙô÷úúúúúúüýýüüüüüüüüõÉVdccdcccdcccccccddddgcccccddccccdccddddccccccccdcccdcccdcdddddcdddddccdccU-bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhÁhhhhhÁhhhhhhhhhhUVÉô÷÷÷÷÷÷÷÷üü÷÷÷÷÷÷óòÙ†l$ =uœà÷úúúúúúüýýüüüüüüüüô—:ddcdccddcdcdcccdccdddcddcddggcdddcddcdddddddcddddddddcdccdddcgdddccdddgdUUhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhcÅè÷÷÷÷÷÷÷÷úü÷÷ó÷÷÷òâžv==wÒéúúúúúúüýýüüüüüüüúâ“,dddgg^ZZCBZ^dggd_]Z[ddd[_ddddd^]Z[adcZ[d_]_dd_[^ddddZ_ddda]_ggggd[[dddccVghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhW‚â÷ú÷÷÷÷÷÷úü÷÷÷ó÷÷ñÙ†>  C™â÷úúúúúüýýüüüüüüü÷ß^-,,,ddgd[>AZBA>Zdd]>>A>CadZddddaAA>AadAZddAA^cCAcdgdc>[dgg^?[dgggdBCdgdddV-bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhgXÞòú÷÷÷÷÷÷üü÷÷ó÷÷÷ñÒv$>{×õúúúúúüýüüüüüüüüõÉ:,,,,,gdg[A_dddd[[d_Z^dcAC^Zddddg[^d_>_d?Zdg_>ZZ>_gdgga>[ggg^>[dgdggZAdgddgVUhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhb-Åôúúúúú÷÷úü÷ó÷÷÷÷èžl!!vÓòúúúúúüýüüüüüüüüè„0,,,,ggd>AdghgggddgZ>aggg[>[Zggggggd_B>^d>BgddZZgdgggd>[dgg^>[gggggC>dggggVchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhT-�à÷úúú÷÷úúüúóó÷÷óèœC !uÒòúúúúúüýüüüüüüü÷Þ\,,,hg[^ghgggghgg[Adggga>_ZghghhaA>A[dd>Bggg^>�hggghd>[ggg^>[ggggdB>dgghgVWhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhhhÁhcUÊ÷úúúú÷÷úüú÷÷÷÷óèžA  oÒõúúúúúýýüüüüüüüôÅM,,,,hdZAdggggghggh_>_hgg[A_>^ghggZ>_dggd>BgggZ[gghhhd>[ghhd>ZddaddA>dghggVThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhÁhhhhhhhU-„èúúúúúúúüú÷÷÷÷÷ñžC!uØõúúúúüýýüüüüûüúß^-,,,ghZAdhhhgggghhdCA[_[>ZdA[dggZ>__agdABgg_>ZZA^hgghd>[ghhd>>>>>dghggVcÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhÁhhhhÁhhhhhhÁhhhhhhg0UÌ÷úúúúúúúü÷÷÷÷÷òÊl   vÙ÷úúüüüýüüüüüüúòÅM,,,hh[>dhhhhhhhhhhfZAAA]hdAZZ>ZhhdZAA[gdZZhdZZfdZZghhhd>_hhha>Zdd_daAAdhhhhVXhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhb-„èúúúúúúúüú÷÷÷÷òÙv !†èúúüüüýýüüüüüüúß^-,,,hh�[hhhhhhhhhhhgdddhhhdhhddhhhhddghhddhhddhhhdhhhhd>_hhha>[hhhhdZAhhhghVMghhhhhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁÁhÁhhhgT:Ê÷úúúúúúüü÷÷ó÷óâ†$>œôúüüüüýüüüüüüüò—M,,,hhhZ>^hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdZ_hhhhhhhhhhhhd>[hhha>[hhhhhZBhhhhhV-chhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhÁÁhhhhhhhhhÁhhhhb-�èúúúúúúúüúó÷÷óñžAl×÷üüüüýýüüüüüüúÞ\,,,hhhdA=[dghd^dhhhhhhhhhhhhhhhhhhhhhhhh[_hhhhhhhhhhdd_>[ddgd>[hhhhhBBhhhhhVWhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhgUÆòúúúúúúüü÷÷ó÷÷Ùu !†èüüüüüýüüüüüüüñ“-,,hhhhdZ>@YB@=[hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdBB>==@B[d=[hhhhhBBhhhhhVMghÁÁhhhhhhÁhhhÁhhhhhhhhhhhÁhhhhhhÁhhhhhhhÁhhhÁÁhhhÁÁhÁhhhhhÁÁhhhhcVÞ÷úúúúúúüú÷÷÷÷è™$CÒ÷üüüüýýüüüüüü÷ÉU,,hhhhhha[YY[ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhf_[[[[_[ad[dhhhhh_[hhhhhV-bhÁÁÁhhhhhÁhhhhhhhhhhhhhÁÁÁÁÁÁÁÁhhÁhhhhÁhÁhhhÁhhhhhÁhÁhhhhÁÁÁhhhÁb„èúúúúúúüü÷÷÷÷ò×t!}æüüüüüýüüüüüüúß`,,hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhVUhhhÁÁhhÁhhhhhhhhÁÁhhhhhhhhÁhhhhhÁhhhhhhhhÁÁhhhhhhhhhhhhÁhhhhÁÁhgMÇ÷úúúúúúüú÷÷÷÷ñ˜$CÒ÷üüüüýýüüüüüüò•/,hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhVdhhhhhhÁÁhÁÁhÁhÁhhhhhhÁhhÁÁÁÁhhhhhhhhhhhhÁhhhhÁÁhhÁhhhhhhhhÁhÁhb-Vßúúúúúúúü÷÷÷÷÷Ùt }èüüüüüýüüüüüü÷ÉM,hhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhV-bhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhÁhÁÁhÁÁhhhhÁhhÁhhhhhÁhhhhhhhhhhh:aèúúúúúúúü÷÷÷÷ñž=lÙúüüüüýüüüüüüúß\,hhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhV,UhhhhÁhhÁhhÁÁhhhÁÁÁÁhhhÁhhhÁhÁÁÁhhhÁÁÁÁÁhhÁhhÁhhhhÁÁhÁhhhhhhhhc-—òúúúúúúüúó÷÷÷â{!$™õüüüüýýüüüüüüèf.hhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhh„hhhhhhhhhhÁhhVchÁhhhÁhhhhhhhhhÁÁÁÁhhhÁhÁÁÁÁhÁÁhÁÁhÁÁÁhÁhhÁhhÁhhÁhhÁhhhÁhhhhX:É÷úúúúúúüú÷óóó×l yæüüüüýýüüüüüüôÂMhhhÁÁhÁÁhhhhÁÁhhhhÁÁhhhhhhÁhhhhÁhÁhhhhhhhÁhhhÁhÁÁÁÁhhhhÁhhhhhÁhhhhhhhÁhhXXhÁÁÁÁÁhhhÁhÁhÁÁhhhhhhhhÁhhhhhÁÁhhÁÁÁÁÁhhhhÁhhhhhhhÁhhhhÁÁÁhhXUUUUUUUUUUUUUUUUUUUUUUUUUUUUU:UU:T::TT:TT:TT:::::MMMMMMMMMMMMMMMMMMbÞúúúúúúüü÷ó÷÷òœ= CÙúüüüýýüüüüüü÷ÌdhhhÁhhÁÁhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhÁÁhÁhhhhÁhhhhhhhhhhhhhhhbXXXXUUUUUUUUUUUUUUUWUUUU:::::::::::::::T::TTTTTTTTTVhhÁÁÁÁhhhhÁÁÁÁÁhhÁÁÁÁhhhhhÁhhhhhÁÁÁÁÁhhhhÁÁÁÁÁÁhhÁÁhhÁÁÁÁÁhÁhhhhhhhhhhhhhhhhhhhghhhhhhhghhhhhhhhhhhhhhhhhhhggghghhhgghhhgghhhhhghggh•âúúúúúúüü÷ó÷óè�!=ž÷üüüüýüüüüüüúÞÂcccccccccccccccccbbcbbbcbccccccccccbbbbcccbbbccbccbcbbbbbbbbbcbbbbbcbbbbchhÁhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁÁÁÁhhÁÁÁÁhÁÁhhÁÁhÁÁÁÁÁÁhhÁhhÁÁÁÁÁÁhhhhhhhhhÁhÁÁhÁÁÁhhhÁÁÁÁÁÁÁÁÁÁhhhÁhhÁÁhhÁÁÁÁÁhhhÁhhÁhÁÁÁhhhhhhhhhÁÁÁhÁhÁÁÁhhhÁhhÁÁÁÁhÁÁÁÁhÁÁÁhÁÆèüúúúúúüü÷óó÷àv   !�õüüüüýýüüüüüúâÂgdccccbbbbXbbbXbbXbXXXbXbXbXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXgÁÁÁÁhÁÁhÁÁhhÁhÁÁhÁÁhhÁÁhÁÁÁÁÁÁhÁhÁÁhÁÁhÁÁÁÁhhÁÁÁhhÁÁÁÁÁÁÁhÁÁhhÁÁhÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁhÁhhÁÁÁhÁhhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhhhÁÁÁÁÁÁhÁÁhÁÁhhhÁÁhÁÉôúüúúúúüú÷óóóÙt     wñüüüüýýüüüüüüèÆÁÁÁhhhhhhhhhhhhhhhghhhhhhhhgghghgggggggggggggggdggggggggggggggggggggggghÁÁÁÁÁhÁÁÁÁhhhÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁhhÁÁÁÁhhÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁhhÁÁÁÁÁÁhhhÁÁÁÁÁhhÁhÁÁÁÁÁhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁÁhÁhÁÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhhhÁÉ÷üúúúúúýú÷óóóÊA       ! uàüüüüþþüüüüüüéÆÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÁÁÄÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhhÁhÁhÁÁÁÁÁÁÁÁhÁÁhhÁhhÁÁÁÁhhÁÁÁÁÁÁÁhhÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁhhÁÁÁÁÁÁÁhhÁÁÁÁhÁÁÁÁÁÁhhÁÁÁÁÁhÁhÁÁÁhÁhÁhhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhhÁÁÁÁhÁÁhhÁÁÁÁÁÁÁhÁhhhÁhÁhÁhÁÁÁÁÁhÁÁÁhÁhÁÁÌ÷úüüüúúý÷÷óóòž=   !@[‚ÃÆÈÈÆÂ‚Y;       ;�ÂËáççÏËÁ[##YYY@ #@YY;  @YYY#@YYYY  YYYY@@ÁÁÁÁÁÁÁÁÁÁÁÁd [ÁÁÁÁÁÁÁÁÁÁÁÁ[ aÁÂÁÁÁÁÁÁÁÁÁÁY CÙüüüüýþüüüüüüéÉÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÁÄÄÄÁÄÄÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhhhÁÁÁÁÁÁÁÁÁÁÁhhhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhhhhÁÁÁÁÁÁÁÁÁhhhhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁÁhhhhhÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÞ÷üüüüúúüó÷óóòž$       Y„ÎñúýÿÿÿÿÿþýúçÈf; YÂçüþÿÿÿÿÿÿþúá…;  Ãóúúç@YÂáóúúò΂#Yçúúó– ;Îóúúó„  •óúúóÍ!„üÿÿÿÿÿÿÿÿÿÿÿá# ÈþÿÿÿÿÿÿÿÿÿÿþÈ #ÏþÿÿÿÿÿÿÿÿÿÿþÃA×üüüüýýüüüüüüòÉÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÞ÷üüüüüüý÷÷÷óòœ!        YÆñüÿÿÿÿÿÿÿÿÿÿÿÿÿþüç•@ !  9…ñþÿÿÿÿÿÿÿÿÿÿÿÿýá�!  ËÿÿÿóY „ñþÿÿÿÿÿÿüÎY[÷ÿÿþÈ  ÂýÿÿÿñYYñÿÿÿý• …ýÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆAÓüýüýýþüüüüüüòÉÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhhhhhÁÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhgbbbcbcccbbccc^cbccccbcccbcc^ccbbbbbXbbbXXXbbbbbbbbbXbbbbbXXXbXbbbbbbbbbXbbbbbbbbbXXbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccbbbccghhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhÁÙúüüüüüúü÷ó÷óñ˜!       ! ;Âòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþç„#;ÈüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÂ# ËÿÿÿóY •÷ÿÿÿÿÿÿÿÿÿþç[[÷ÿÿþÈ @áÿÿÿþÈ #ËþÿÿÿÑ#…ýÿÿÿÿÿÿÿÿÿÿÿç# ËÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òúüüüýþüüüüüü÷ÉÄÄÄÄÄÄcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWXXXXXXXXXXXXXUXUUXXXXUUXXUUUUUUUTUTTTTUTUTTTTTTT0000020+00022000000000000++&&&&&&&&++&&&&(&&++&(+&&&&&&&&&&&&&&(&&&&&&&&&&&&&&&+++&&&&&&&&&&&&&&&&&&&&&&&&-TTTTTTTTTTTTUTTXTTUTUUXUUUUUTUUTUUUUUUUU[×úüüüüüüü÷ó÷÷ñ�!         [ÏýÿÿÿÿÿÿÿþýüüúüþÿÿÿÿÿÿÿÿúÍY   @ÎýÿÿÿÿÿÿýúúúüþÿÿÿÿÿÿüÆ9!ËÿÿÿóY�÷ÿÿÿÿÿÿÿÿÿÿÿÿÏ;[÷ÿÿþÈ ‚üÿÿÿò_�óÿÿÿú�…þÿÿÿÿÿÿÿÿÿÿÿç# ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òúýýýýþüüüüüü÷ÅÄÄÄÄÄÄX000000000000000000000000022O222222222222222222222222222222222202++000++++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&-@×úüüüüüüü÷ó÷÷ñ�!           ‚òþÿÿÿÿÿþòÏÆ„�__�•Èá÷þÿÿÿÿÿþç�   ;ÎýÿÿÿÿþòË„[YY_ÁÏ÷þÿÿÿÿü  ËÿÿÿóY;áÿÿÿÿüçËÎòþÿÿÿýÂ[÷ÿÿþÈ #ÎþÿÿþÎ#;ÏÿÿÿþÍ •þÿÿÿÿÿÿÿÿÿÿÿç; ÈþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òúýýýýþüüüüüü÷ÅÄÄÄÄÄÁU 002Ubbbbbb\bbbbbb\\\\\\\\3444343333333333333333333333222202020000000000++00++++++*U::::3:U::3:::33:3:::+&&-Y×úüüüüüüüó÷óóñ�!       „÷ÿÿÿÿÿýá•Y!   9[Âçýÿÿÿÿÿò‚! !ÃüÿÿÿÿóÈY!   !_Îúÿÿÿÿú„  ËÿÿÿóY‚úÿÿÿó•# YÎþÿÿÿç;[÷ÿÿþÈ _óÿÿÿü„„üÿÿÿò[„ýÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òúüüýýþüüüüüü÷ÅÄÄÄÄÄÄX20Äó÷ú÷÷óóóóóóóòòòòññññáe44333333333333333333333333322332P2220000M000000000+++++\ÆÆÆÆÆÆÆÆÃÃÂÂÂÂÂÂÅ––U&&VÞúüüüüüüüó÷÷óñ˜!        !     !…úÿÿÿÿþð„;   BÂñþÿÿÿú–  !�÷ÿÿÿÿò‚9  9Â÷ÿÿÿÿðY  ËÿÿÿóY  ÆþÿÿþÆ ;áÿÿÿú_[÷ÿÿþÈ   Æþÿÿÿá@@çÿÿÿþà •þÿÿÿÿÿÿÿÿÿÿÿç; ËÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òúýýýýþüüüüüü÷ÅÄÄÄÄÄÁX002Äúüüúú÷÷úúúú÷÷÷÷÷÷óòòçe4\ÍÐÏÍÎÎÎÎÎÌÎÎÎÌÌÌÎÌÌÌÌÌËÈ\23ÃÉÉÉÈÆÆÆÆ�Æ�Å��Æ�——Å———“2+\ÊÊÊÊÊÊÊÊÇÇÇÇÇÇÇž�ž��›<&&-VÞúüüüüüüü÷÷÷óñ�!            �óÿÿÿÿüËY    !  [Îýÿ÷Â9  ;Ïþÿÿÿò�    …÷ÿÿÿþÆ  ËÿÿÿóY  #áÿÿÿúY„ýÿÿþÁ[÷ÿÿþÈ Yðÿÿÿý Ãþÿÿÿð@•þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òúýýýýþüüüüüü÷ÅÄÄÄÄÄÁX"020Äüúúúúú÷úú÷÷÷÷÷÷÷÷óóòçe4\çòòíëëêêêêêëêêêêêããããããØ`2<ÓÝÝÝÝÝÝÝÜÝÜÜÖÜÛÛÛÛ­Û°°°š:+]°¨°¨¦¨¦¦¨¥££££ªª¥£££¢Z&&""V×úüüüüüüü÷÷óóñ�!        ! !ZðÿÿÿÿúÆ;  !  !  @Ãá„! !�úÿÿÿú„   !ÆþÿÿÿñY!ËÿÿÿóY#Ïýþÿð;_úÿÿþÂ[÷ÿÿþÈ  –üÿÿÿò[[òÿÿÿü„„þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òúýýýýþüüüüüü÷ÅÄÄÄÄÄÄX"""""000Äúúúúúú÷÷÷÷÷÷÷÷÷óòóóòðe4\çòñëëëæêãæãêæêêêãäàääääØ`2<ÒÝÝÚÚÝÝÝÔÖØÔÔÔÔÔÓ­­­­­¬›3+Z«¨§¨¨¨ª¥šš¥¥¥¥šš¥¤¢¤¤<&&0""""V×úüüüüüüü÷÷óóñ�!    !  ! ! ! ;ÎþÿÿÿüÂ9  !! !@!! !ËþÿÿþÎ; !    @çÿÿÿý• 9ËÿÿÿóY   Y…ËçË ‚üÿÿþÂ[÷ÿÿþÈ ;ÑÿÿÿþËËþÿÿÿÏ;„þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òúýýýýþüüüüüü÷ÅÁÄÄÄÄÄX"""""T""TT"000Äúü÷÷÷÷÷÷÷÷÷÷÷÷÷÷óòòóðe4\çòñëëëëãààêææêêêêäàääÚÚØ`2<ÊÚÚÙÙÚÚÚÔ×רÔÔÔÓÓÓ­­­­Ò›:+Z¨°§§§§§šžššššš™™¤¤š¤�:&&0""""T"""V×úüüüüüüüó÷ó÷ñ�!      ! ! ! ! !„úÿÿÿýÆ9 ! !! !!  !  @çÿÿÿú_ ! !   •ýÿÿÿÎ9!ËÿÿÿóY  ;; 9Îÿÿÿü�[÷ÿÿþÈ ‚úÿÿÿüýÿÿÿ÷�…ýÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Çúýýýýþýüüüüü÷ÅPgÄÄÄÄX"TTT"""TTT"""TTTTTTTT:02Äúú÷÷÷÷÷úúú÷÷÷÷÷÷òòòòñe4\áññëëëëêàßââèææàâàààßÙÙ×`2<ÊÙ××ÙÙ××××Ó×Ó×ÓÊÓÊÊÊÊÒÒ–30V¨°¨žžœœœœ™™™™™™™˜˜˜††:&&0TTTTTTTTVÞúüüüüüüü÷÷ó÷ñ�!         ! !!   ! ! !@çÿÿÿþÏ@!!!!! ! ! ! ! !! !!_÷ÿÿÿá;  !!! Yòÿÿÿç@ !ËÿÿÿóY#Äýÿÿÿñ@[÷ÿÿþÈ #ÎþÿÿÿÿÿÿþË •þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË  #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþüüüüüü÷ÅL/bÁÄÄXTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT""T"""T""""T""""""""""WXXXXXXX:00Äüúúó÷÷÷÷÷ú÷óóóóóòòòòçe4\ÑññëëëëêêàßâââßßßââßßßÙ×`2QÉÙÙ×Ó××××ÓÓÓÊÊÊÊÒÇÊÊÇÇÇ”3+V¨¨¨šœ™™™™™™˜™™˜˜˜˜†††:&&MXXXXXXXX"""""""""""Y×úüüüüüüü÷÷óóñ�!   ! ! ! ! !! !!  ! ! !! !…üÿÿÿò[!! ! !!!!!!!! !!! ! !!!!‚üÿÿÿË!  !  ;áÿÿÿóY !ËÿÿÿóY    YËýÿÿÿþÆ [÷ÿÿþÈ [òÿÿÿÿÿÿòY…ýÿÿÿÿÿÿÿÿÿÿÿç; ÈþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþýýüüüü÷ÅNL.WhÁXWW···WWK··W··WWWWWWJWWWWWWWJW·WWWWWWJJJJJJJHJJJJJHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHFFFJKKKKKKKH00Äüýüú÷ó÷÷óóóóóóóóóóóòçe4\ÑññíëëëëëêââßßßßßßßßßßÙÌ`23É×××××Ó×ÓÓÊÊÊÊÊÊÇÊÇÇÇÇÇ”:+<ª¨¥¦œ™œ™™˜™˜˜˜˜††††††:&&MKKKKKKKJFFFGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHXÞúüüüüüüüóó÷÷ñ�$ !!  !   !!! !! !! !!!!!!!!!! ! @ÏÿÿÿþÂ9!!! ! !!!!!!!!! !!!!! ! !!…üÿÿþÂ! !! ! ! !Ïÿÿÿú[ !ËÿÿÿóY    9„ðþÿÿÿÿçY[÷ÿÿþÈ  Ãþÿÿÿÿþ …ýÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþýüüüüü÷ÆNNLLMbJKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHGGGFFFFJKKKKKKKJ20Äüýýüúúúúúú÷úúóóúúúóóðe4eðóòöëëëëëêêææèèææâææææàÙ`2UÌßÙßÙÙÙÙÙÙÙÙÙÙÙ×××ÓÓÓ×Ó›:0\¨­Ó°¨ÒÒÒÒÒÇžžžžžžžžœœV&&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞúüüüüüüü÷÷óóñ�!    !    !!  ! !!!!! !! !!! !!!! !_÷ÿÿÿñY!!!!!!!!!!! !!!!!!!!!!! ! !!–ýÿÿþ–!!!!!!!!!!! ! !Îÿÿÿú_ 9Ëÿÿÿó[     _Îúÿÿÿÿÿñ_ [÷ÿÿþÈ Yñÿÿÿÿñ@•þÿÿÿÿÿÿÿÿÿÿÿç# ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþýüüýüü÷ÃNNNNL.JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJKJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ20Äýýýüüüüüüüüüüúúüüüú÷òe4eðóóööëëëëëëëôõòôñòñéééñçe2QÏçççâââççââââçâàßßÚÚÙßßÈU0^ÔØÏØ°×ÙÞÞ×××ÌÎÎÌ××ÌÎÉV&&MKKKKKKKJFFFFFGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞúüüüüüüü÷óó÷ñ�!    !  ! ! !  !! ! !!!!!! !!!!!!!ÂþÿÿþÈ9 !! !!!!!!! !!!!!!! !!!!! !!!!!!!–üÿÿþÂ! !!!! ! ! ! !!Ïÿÿÿú_ !Ëÿÿÿú�   ;Âòþÿÿÿÿþç� [÷ÿÿþÈ [óÿÿÿÿò[•þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË# ;ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþýýüýüü÷ÃNNNNNNJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHGGGFFFFJKKKKKKKJ22Äýýýýýýüüüüüüüüüüüúúúòe4eðóóöööëëëëëôòòòòòòòññññçe2QÏðñççççððççççðçáááÙßàááËU0\ØÙÑÏØ­ÞÏÑÏÏÏÏÍÍÎÎÎÎÍÌ[&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞúüüüüüüüóó÷÷ñ�!   ! !!!! ! ! !!!! !!!!! ! !! !!!!!!!!9Îÿÿÿú�!!!!!!!!!!!!! ! !!!!!!!!!!!!!!!!‚üÿÿþÈ!!!! !!! !!! 9áÿÿÿóY 9Ëÿÿÿþ–!  ;ËüÿÿÿÿÿúËY  [÷ÿÿþÈ ;ÎþÿÿÿÿþÏ;•þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿÿñËËËËËËËËËËËËËòÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþýýüüüü÷ÃNNNNNNJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ22Äýþýýýüüüüüüüüüüúúüüúòe4eð÷óíöëëëëëëíòóóòòòòòðññçe2QÑðððððððððððððïïïïàßßÑÑÄU0\ÙÙÑÑÏÔÙÑÐÐÐÐÐÐÐÐÍÍÍÍÌ[&&MKKKKKKKJFFFFFGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞúüüüüüüüó÷óóñ�!    !  ! ! ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!@çÿÿÿòB!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!_úÿÿÿá@!!!!!! ! !!!! !!!YòÿÿÿçB! 9ËÿÿÿÿÏ;  #Æýÿÿÿÿýá‚9[÷ÿÿþÈ  Âüÿÿÿÿÿÿü– •þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþýüýýüü÷ÃNNNNNNJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýþþþýýýýüüüüüüüúúúüúòe4eðóóíöëëëëëêéôóòòòòóóòòñïe2QÑðððððððððððïïïïïïàßßÑÑÄU0\ØÙÑÑÑßÛÏÑÑÐÐÐÐÐÐÍÍÍÍË[&&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞúüüüüüüü÷÷ó÷ñ�$  ! !! ! !!!! !! !!! ! !! !!!!! !!!!!!!!!!!!Zóÿÿÿá9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Bñÿÿÿú�!!!!!!!!!!! !!!!!„üÿÿÿÎ9!!9Ëÿÿÿÿó� !  _óÿÿÿÿòÂ@  [÷ÿÿþÈ �òÿÿÿÿÿÿÿÿó_•þÿÿÿÿÿÿÿÿÿÿÿç# ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=Çûýýýýþýýüüýü÷ÃNNNNNNJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äüþþýþþþýýüüüüüüüúúúúòe‡Œðóóíëëëëëëêíôóóòòòðòóòððg2QÑðððððððððððïïïÑïïàßáÑÑÄU0\ÔÙÑÑÑÑØÔÏÑÐÐÐÐÐÐÐÍÍÍË\&&MKKKKKKKJFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞúüüüüüüüó÷÷÷ñ�!   !   ! !! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!_úÿÿÿÈ9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9ËþÿÿþË;!!!!!!!!!!!!!!!!@áÿÿÿþÂ!!!9ËÿÿÿÿþÏ@  ! !Æþÿÿÿç�! 9!   [÷ÿÿþÈ @áÿÿÿÿñòÿÿÿÿÏ;…ýÿÿÿÿÿÿÿÿÿÿÿç# ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþýüýýüü÷ÃSSNSSNJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHGGGFFFFJKKKKKKKJ22Äüþþýýþþýýüüüüúüüúúúúòe‡Œðó÷öëëëëëëëíôóóòòòññòòððe2QÑððððððððððððïïïïÑàßáÑÑÄU0\×ÙÑÑÑÑÏÔ×ÐÐÐÐÐÐÐÍÍÍÍË\&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüüüüüüüüó÷÷÷ñ�$  ! ! !!!!!! !! !!!!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!‚úÿÿÿÃ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!‚úÿÿÿú‚!!!! !!!!!!!!9Ãýÿÿÿò[!!9ËÿÿÿÿÿüÆ; ! 9Ïÿÿÿ÷�!;ËÈ_9[÷ÿÿþÈ  Ãýÿÿÿó‚„úÿÿÿýà …þÿÿÿÿÿÿÿÿÿÿÿç; ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþýüýýüü÷ÃNSRSSNJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHGGGFFFFJKKKKKKKJ22Äüýþýýþýýýýüüüüüúúüüúòe4eð÷÷ööëíëëëëíóóóòòòñòóòòçe2QÑððððððððððððïïïïïàâáÑÑÄU0\×ÙÑÑÑÑÑÞ­ÞÐÐÐÐÐÐÍÍÍÍË^&&MKKKKKKKJFFFFFGGGGHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJXÞûüýüüüüüó÷÷óñ�$ !! ! !! !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!‚üÿÿþÂ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!@áÿÿÿÿñ_!!!!!!!!!!!!9„÷ÿÿÿþÈ9!9ËÿÿÿÿÿÿúÃ;  ;çÿÿÿñ9  [úþ÷ÎY [÷ÿÿþÈ  �÷ÿÿÿýà #Èþÿÿÿó�„þÿÿÿÿÿÿÿÿÿÿÿç; ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýýþýýüüýý÷ÃOSRRQPJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äüþþýüýþýýüýüúüüýüüüúòe‡Œðú÷öööõëöíëôòóóóòðòòóóñçe2QÑððððððððððððïïïïïàââÑïÄU2e×ÙÑÑÑÑÑÑÞÔÏÑÐÐÐÐÐÍÍÍÌ[&&MKKKKKKKJFFFFFGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýüüüüýüó÷÷óñ�$ !!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!‚üÿÿþÂ!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!‚úÿÿÿÿç�9!!!!!!!!!!;…óÿÿÿÿñ[!!!!9Ëÿÿÿÿÿÿÿü΂@!;çÿÿÿòY –ýÿÿü‚ [÷ÿÿþÈ YáÿÿÿþÏ;@áÿÿÿÿá@…ýÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýþþýýýýüü÷Ã>J³KKK³³K³³KKK³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJHJHGGGFFFFJKKKKKKKJ22Äüýþýýüüýýüüüüúüüüúúúòe4Œðú÷öööõöööëíòóóóóòðòòòðïe2QÑðððððððððððððïðïïâßâïïÍU0\ØÙÑÑÑÑÑÑÑÞ­ÞÐÐÐÐÍÍÍÍË^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýüüüýüü÷÷÷óñ�$  ! ! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![÷ÿÿÿÎ9!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!!!!!!!!BÎþÿÿÿÿýçÃ�ZYZ[‚ÈñþÿÿÿÿüÆ;!!!!!9Ëÿÿÿþüÿÿÿÿÿü„! !„üÿÿÿýðáòþÿÿÿðY   [÷ÿÿþÈ ‚÷ÿÿÿú•  Âýÿÿÿú‚„ýÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ=Òûýýýýþýýýýýý÷Ã666ii8J³³³³KK³³K³³³KK³³KK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJJJJJJJJJJJJJHHGGGFFFFJKKKKKKKJ22Äýþþýýüüýýüýüüüüüüüúúòe‡Œðú÷öööõöííëôòóóóóòòòòðòðe2QÑððððððððððððððïðïââáïïËU2eØÙÑÑÑÑÑÑÐÑ×ÓÎÐÐÐÐÐÍÍÍ\&&MKKKKKKKJFFFFGGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüüýýýüüüó÷÷óñ�$!! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Bòÿÿÿð@!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ZÏþÿÿÿÿÿþúòñòòúþÿÿÿÿÿüÈ@!!!!!!9ËÿÿÿóÆòþÿÿÿá@!!!@ÏÿÿÿÿÿÿÿÿÿÿþÃ! [÷ÿÿþÈ  YçÿÿÿþË#;ÎþÿÿÿçY„ýÿÿÿÿÿÿÿÿÿÿÿç; ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýþþýýýýýü÷Ãii6ii8J·³³³³³³K³³³·³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJJJJJHHGGGFFFJKKKKKKKJ22Äýýýýýýýýýüüýüüüüüüüüóe‡Œðúúöööõõëëëõõóóóóóòòòòòñg2QÑððððððððððððððïðïââçïïÍU2eÙßÑÑÑÑÑÑÑÑÑÓ×ÐÐÐÐÍÍÍË^&&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýüüüýüü÷÷÷óñ�=!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!$$!;áÿÿÿ÷_!!!!!!!!!!!!$$!!!!!$!!!!!!!!!!!!!!!$!!!!YÎüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Æ@!!!!!!!9Ëýþþò[�Ïüþ÷‚ !! _ñÿÿÿÿÿÿÿÿþÏ@ ! [òþþýÆ!9ÆüþþþçYYçþþþüÆ …þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿÿúòñññññññññññòüÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãi666i8J³³³³³³³³³³³³³KKK³³³³³³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ22Äýýýýýþþþýüüüüüüúúüüúòe‡Œðó÷ööíõöííëôóóóóóóóòòòòðg2QÑððððððððððððððïïïâáâïïËQ2e×ßÑÑÑÑÑÑÑÑÑÞ­ÞÐÐÐÍÐÍÌ^&&MKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýüýü÷÷óóñ�$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!$$9ÈþÿÿýÂ$!!$$!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!@Âñþÿÿÿÿÿÿÿÿÿÿÿÿýá‚;!!!!!!!!!�ÈÈÈ–;!@„ÎÃ;!!! !_áüÿÿÿÿÿúËY ! ;ÂÈÈÆ_ !…ÈÈÈÆ_  _ÆÈÈÆ„ „þÿÿÿÿÿÿÿÿÿÿÿç; ËÿÿÿÿÿÿÿÿÿÿÿþÎY@@@@@@@@@@@YáÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýþþþýýýýýý÷Ã6iiii7J³³³³³³³³³³³³K³KK³³³³K³³KK³³KKKKKKKKKKKKKKKKKKKKKKKKKJKKKJJJJJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ22Äýýýþþýþþýüüüüüüúúúúúòe‡Œðó÷ööíõíííëôòóóóóóóòòñòðg2QÑðððððððððððððïïïïâââïÑÍU2eØÙÑÑÑÑÑÑÑÑÐÑ×ÔÏÐÐÐÍÍÌ[&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýüýü÷÷÷óñ�$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!!!!!!!!!‚üÿÿÿá@!!!$!!$!!!!!!!$!!!!!!!!!!!!$!!!!!!!!!!!!!9[ÃñüþÿÿÿÿÿÿþúçÂY!!!!!!!!!!!!9999!!!!99!!!!!!!!@…Ïðñç΂;! !! !   …þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýþþþþýýýýýý÷Ã66iii8K³··³·³³³³³³³³³³³³³³³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJHHGGGFFFFJKKKKKKKJ22Äýýýþþþþþýüüüúúúüüúú÷òe‡Œð÷úöööõööõëôòòóóóóòóòòòñe2QÑðððððððððððððïïïïâââïÑËU2eÙÙÑÑÑÑÑÑÑÑÑÑÏÔ×ÐÐÐÍÍË^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýüýüüóó÷óñ�$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!$$$!!!!!!$!!Yðÿÿÿú‚!!!$$!!!!!!!$!$$$!!$$!!!!!!!!$!$$!!!!$!!!!!9Y‚ÃÎáçáÏÎÃ�@$!!!!!!!$!!!!!!!!!! !!!!!!!! !!!9BB@9! !! !@�„[9  „ýÿÿÿÿÿÿÿÿÿÿÿç; ËÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ã6ii6i8J···³·····³···³³³³³³³³³³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJKJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýþþþþþþýýüüüúúúúüúú÷óe‡Œð÷úööëõííööõòóóóóóóóóóóðg2QÑððððððððððððððððïàââïÑÍQ3eÙßÑÑÑÑÑÑÑÑÑÐÐÏ­ÞÐÐÍÍË^&&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýüýü÷óó÷ñ�$! !!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!!!!!!!!!!!!$$!!$$!!!!!9ÈþÿÿþáB!$$$!!$!$!!!!$!!$$!!!$$!!!!$!!$!!!!!!!!!!!!!!$=@@@@9$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!! !_áüüòÆ9    #[___________Æþÿÿÿÿÿÿÿÿÿÿÿñ�___________Y  ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãiiiii8J···········³³³³³³³³³³K³³³³³³K³³³K³KKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ22Äýþþþþþþþýýýüüúúúúüúüóe‡Œðúúöööõííííõòóóóóóóóóóóðg2QÑðòðððððððððððððïïââçïïÍQ2eØÙÑÑÑÑÑÑÑÑÑÑÑÑ×­ÏÐÐÍË\&&MKKKKKKKJFFFFFGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷óóóñ�$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!$!!!$!$$!!!!$!!!!!!!$!!_òÿÿÿýÂ9$!$$!!!$!!$$$$$!!!$!$$$!$!$$$$$$!$!$$$!!!$$!!$!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! ! ! @Ïÿÿÿÿú„   „óüüüüüüüüüüüýÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüüüç# ÈþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãiii6i8J········³³³··³·³³³³³³³³³³³³³KK³³³KKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJHGGGFFFFJKKKKKKKJ22Äþþþþþþþþýþýýüüúúúüúüóe‡eñú÷öööõööíëô÷óóóóóóóóòòñe2QÑññððððððððððððððïââáçïÍQ3eÙÙÑÑÑÑÑÑÑÑÑÑÑÑÏÓÓÐÐÍË^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷óóóñ�$!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!$!!!!!!$!!!!!!$!!$!!!$$$$$!$$!9Èþÿÿÿó‚$!$$$!$!!!$$$$$$$!!!$$!$$$$$!$!!!!!$$!!!$!!$!$$!$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !! [÷ÿÿÿÿþË!   Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãi666i8K····³³··³·³³·³··³···³··³³³³³KKK³³KKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýÿþþþýþþþýýýüüúúúüüü󾇌ðúúöööõöõöëôóóóóóóóóóóóñe2QÑñðñððððððððððððïðàââïïÍQ3e×ßÑÑÑÑÑÑÑÑÑÑÑÑÑÞ­ÞÐÍÌ^&&MKKKKKKKJFFFFGGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýüó÷÷óñ�$!!!!!!!!!!!!!!!!!!!!!$!!$!!!!!!!!!!!!$$$!!$$!!$$$!!$$$!!$$$$$[ðÿÿÿÿñ_$$$$$!$!$!!!$!$$$$$!!$$$$$!!$$$!!$!!$$!$!!!$$$!$$!!!$$!!!!$!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! [úÿÿÿÿþË!    Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãiii6i8K··················³·³·³··³³·³³³³K³³KK³³KKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJGGGFFFFJKKKKKKKJ22Äýþþþþþþþþýýýýüüúúüüüóe‡Œð÷÷ööëõöõõíô÷óóóóóóóóóóòe2QÑññðñððððððððððïïðàââïïÍQ2eØÙÑÑÑÑÑÑÑÑÑÑÑÐÐÐÞ­ÏÍÎ^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷÷ñ�$!!!!!!!!!!!!!!!$!$$!!!!!!!!!!!!!!!$$$$$$$!!$$!!$$$$$$!!$$$$$!$„úÿÿÿÿç�9$!$$$$$$$$$$$$$$==$$=_Â[$$$$$=$$$$!!!!$$$!$$$!$$!!!!!!!!$!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!  !!@áÿÿÿÿü…! !    Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ËÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ =Òûþþþþÿýýýýýý÷Ã6ii6i8K····················³···³·³³³K³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýþþþþþþýýýüüýüüüúüüüóe‡Œð÷÷öööõööõöõ÷óóóóóóóóóóòe2QÑððððððððððððððïïïâââðïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÐÐÏÓ×ÍÌ^&&MKKKKKKKJFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷óó÷ñ�=!!!!!!!!!!!!!!!!!!!!$!!!!!$$$$$!!!$!$!$$$$=$$!!$$$$$$$$$=$$$$$@Æýÿÿÿÿñ„=$!$$$$$=$$$$$$$$$$@…ñýá_=$$$!$!$$$!$$$$$!$$!!!!$!!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!�ñþþúË@      Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãi6i668K··················³³³··³³³³³³³³³³³KK³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äþÿþþþýýýýýýýýüüüüüüü󾇌ð÷úöööõöõõëõ÷óóóóóóóóóòñe2QÑðððñðððððððððððïïàâçïïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÐÑÐÐÐÏ­ÌË^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýüó÷÷÷ñ˜=!!!!!!!!$!!!!!!!!!!!!!$$!$!$!$$$!$$!$$$$$!$!$$$$$$$$!$$!$$$$$$$@ÎþÿÿÿÿúÈZ$$$$!$$$=$$$$$$=_Ëúÿÿþç�=$$$$$$$=$!$!$$$$$!$$$!$!!$$$$$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!![–Â�;! !! !  !  Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ã6iii67K························³·³³³··³··KK³K³K³KKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ22Äþþþþþüýýýýýþüüüüüýüüóe‡Œòúúöööõöõíëõòóóóóóóóóóóñe2QÑòñòððñðððððððððððââçïïÍQ3eØÙÑïÑÑÑÑÑÑÑÑÑÐÐÐÐÐÌ­Ì\&&MKKKKKKKJFFFFGGGGGHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷óóóñ�=!!!!!!!!!!!!!!!$$!!!$$!$!$!$!!$!$$$!!$$$$$$!$!$$$$=$$=$$$==$$$=$YÎþÿÿÿÿþñÂZ=$$$$$$$$$$@]Èòþÿÿÿÿú–$$$$!$$$$=$$$$$$$$$$!$$$$$$$$!!$$$!$$$$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !      Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òüþþþþÿýýýýýý÷Ãii6i68K···························³······³³³³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýþþþþýýýüýýýýýýþýýüüòe‡Œóüüöööùöõõëô÷óóóóóóóóóòñe2QÑðñððòòðñðððððððððâççððÍQ3eÙÙÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÐÐÓ¨]&&MKKKKKKKJEFFFFGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷ó÷óñ�=!!!!!$!!!!!$$$!!!$$!$!$!!$$$$!$$$$$$$!$$$$$!$$$$!$$$$$$===$$$$$$$ZÎýÿÿÿÿÿýñΖ_BB@@BZ�ÂÎòþÿÿÿÿÿúÈB$$$=$$$$$$$$$$$$=$$$$$!$$$!!$!$$!$!!!$!!$$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! ! !   Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ËþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãii6ii8K···························³³³³³··³·³³³³³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýýþþþþþüýþþþþýþþýýüúòe‡Œòúúöööùööõëõóóóóóóóóóóóòe2QçóòóòñòðððððððððððâââðïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÐϨ]&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷óñ�=!!!!!!!!!!!$!!!!!$$$$!!$!$$$$$$$$$$!$=$$$$!$==$$=$$==$$$$$$$==$$$$BÆ÷ÿÿÿÿÿÿÿýúòñççðòúþÿÿÿÿÿÿþò–B=$==$=$==$$$$=$$$$$=$$$$$$!$$$$!$$$$!!!$$!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !     Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ËþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òüþþþþÿýýýýýý÷Ã666667K··················³³······³·³³³³·³³³K³³³³KKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJO3Äýýþþþþþýþþþýýýþýýüüúóe‡Œð÷÷öööùööõöõ÷óóóóóóòóóóñe2QÑòòðððòñððððððððððâââðïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÐÍÊ]&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷óñ�=!!!!$$!!!$!$$$!$!$!$$$=$$$!$$$$$$$$$$$$$$$$$==$$=$$==$$$$$===$$$$$=@‚çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÎ_=$$=$$$$==$$$$$$$$$=!$!$$$$$$$$$$!!$$$$!!$$!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!  !   –ýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþò; ÈýþþþþþþþþþþýÈ #ÏþþþþþþþþþþþþÃ=Òûþþþþÿýýýýýý÷Ã666668K···························³³·³³³³³³³³³³K³KKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJGGGFFFFJKKKKKKKJO3Äýýþþþþþýþþþþýýýýýüüü󾇌òúúöööõööõöõõóóóóóóóóóóòe2QÑòòñððððñðððððððððâçâïïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÍÌ[&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷óñ�=!!!!!!!$!!!$!!$$$!!$$!$=$=$$$$$$=$$$$$$$$==$=$$==$==$$!$=$====$$=====ZÆñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüá…A=$$$======$$=$$=$=$$$!$$=$$$$$$$$$$$$$$$$!!$!!$!!!$$!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !    YÂÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÃÕ [ÃÆÆÆÆÆÆÆÆÆÆÃ[ �ÃÆÆÆÆÆÆÆÆÆÆÃ[ =Òûþþþþþýýýýýý÷Ã666668K·································³³³³³³³K³³KKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHHGGGFFFJKKKKKKKJOOÄýþýýþþþþþþþþýýýýýüüü󾇌òüúöööõööõöõ÷óóóóóóóóòòòe2QçóóòðññðñðððððððððâççïïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÍb&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷óñ�=$!$$!$$!!$!$$$$!$$$!$!$$!$$$$$$$$$$$$$=$$$====$$====$==$===$===$==$$=$=ZÂçúýÿÿÿÿÿÿÿÿÿÿýóÏ…B=====$$$$$$=$$==$==$$$$$=$$$=$$$$$$$$$$$$$!$!$!$!$!!$$!!!!!$$!$!!!!!!!!!!!!!!!$!!!!!!!!!! !!!! !!  !          =Òüþþþþÿýýýýýý÷Ã666667K·······¸························³³³³·³³³³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJHHGGGFFFJKKKKKKKJOOÄýþýýýþþþýýýþþýýýþüüü󾇌òúúöööõöõõöõõóóóóóóóóóòñeOQáòòóòñððððððððððððââçðïÍQ3eØÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÍb&&MKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýüóó÷óñ�=!!$$$$!!$!!$$$$$!!$$$!$$$$$$$==$$$$$$$==$$$=$$$=$$===$===$$==============BxÂËáñ÷úúòñáÈ…_=$===$==========$$$=$$$===$$$$$$$$$$!$$$$$!$$$$$$$$$$$$!!!$!!$!!$$!!$!!!!!!!!!!!!!!!!!!!!!!! !!! ! !     =Òüþþþþþýýýýýý÷Ã666668K···························³····³··³·³³³K³³K³K³KKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþýýþþýýýþþþýýýýýüú󾇌ò÷úöööõíöõöõ÷óóóóóóóóóòðeOQÑñòòñðððñðððððððððâââðïÍQ3eÙÙÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÐÌ^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýüóóóóñ�=$!!$$$$$$$$$$$$$$=$$$$$=$$$$$$$$$$$$$$==$=$$$===$=$$=============$====$======BBZZZZB@===========$$$==$$====$$==$$=$=$$$$$$=$$==$$=$$$$$$$!$!$!$$$!!$$$$$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!! !!!! ! !!!   =Òüþþþþÿýýýýýý÷Ã666667K·········¸·····················³³³³³³³··³³³³³³KKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþþýýüýýýþþþýýüýýüü󾇌òúúöööõöíõöõóóóóóóóóóòòðeOQÑðòóòñððððððððððððâââïïÍQ3eàßÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÐÐÌ^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþýýýýüóó÷óñ�=$!$$$$$!!$!$$$$$$$$$$$$=$=$=$$$=$$$============$==============$==$=$===$====================================$$$=====$=====$==$==$$$$$$$=$$$$=$$$$!!$$$!!!!!$$!!!!!!$!!!!$!!!!!!!!!!!!!!!!!!! !! !    =Òûþþþþÿýýýýýý÷Ã666668K··¸···¸·····························³³³³³³³³K³KKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄþþþþþýýýýýþþþþýýýýüü󾊌ð÷úùööõööööõ÷óóóóóóóóóóñe2QÑòóóòòòðñðððððððððâçâïïÍQ3eàßÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÐÎ^&&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþýýýýýü÷÷÷÷ñ˜=!$$!$$$$=$$!$$$$$!$$=$$=$$$=$=====$=$=======$==$===================$========================$$=================$==$==$=$=$$$=$===$$==$$$$$!$$$!$$$$$!$$$$$$!$!!$!!$!!!!!!!!!!!!!!!!!!!!!!!!!! ! !  !    =Òüþþþþþýýýýýý÷Ã666667K·····¸·¸····¸·······················³³³³³³³³³KKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýþÿþþýþýýþþþþýýýýüüü󾊌òúúùööõëííöõ÷óóóóóóóóóóñeOQÑòóóòñððððððððððððâââïïÍQ3eàÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÎ^&&MKKKKKKKJFFFFFGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþýýüóó÷÷ñ�>$$$$!$$$$$$$$$$$=$$==$$===$$$=$=====$======================================================================================$=$=====$$$$$$$$$$$$$$$$$$$$$$!!!$!$!!$$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !  !     =Òüþþþþÿýýýýýý÷Ã666667K·¸···¸¸··¸··¸····¸···················³³³³³³K³KKK³KKKKKKKKKKKKKKKKKJKJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþÿþþþþýýþþþþüýýýüüü󾊌óúúöööùëëíëõ÷óóóóóóóóóóòeOQÑòóòññðñððððððððððââððïÍQ3eàßÑÑÑïÑÑÑÑÑÑÑÑÑÐÑÑÐÐÌ[&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþýýüó÷÷÷ñ�>$$$$$$$$$=$$$$$$$$$$$$$$======$==$======$==$==========================================================================$$=====$$==$$==$==$$==$$$$$$$$=$!$$$$!!$!$!!!$$!!!$$!!!!!!!!!!!!!!!! !! !!!!!    =Òüþþþþÿýýýýýý÷Ã666667K·¸¸¸¸··¸¸¸¸¸¸······¸················³·³³³³³·³³KKKKKKKKKKKKKKKKKKJKKKJJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýþþÿþýþþþþþþýüüüýüüü󾊌òúúöööõööõöõ÷óóó÷÷óóóóóò¾OQçóòòðððññðððððððððâççïïÍQ3eààÑÑÑçÑÑÑÑÑÑÑÑÑÑÑÑÐέ]&&MKKKKKKKJFFFFFGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþýþþü÷÷÷óñ�=$$$==$$$$$$=$$=$$$========================================================>============================================$=$$======$=$$=$$$$$=$$$$=$$$$$$$$!$$!$!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!  ! !    =Òüþþþÿþýýýýýý÷Ã666667··¸¸¸¸¸¸¸¸¸¸¸¸¸··¸¸·····················³³³³³³³³K³KKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþþþýýþþþþýýýýüüüüü󾊌óüüùööõöõõíõ÷óóóóóóóóóóòeOQçóòòññððððððððñðððâââçïÍQ3eààÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÓ¨]&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþýþüó÷÷÷ñ�=$$$$$$$$$$$=$$====$$=======$===================================================================================================$$===$=$$$=$$$=$$=$$$$$$=$!$$$$!$$$!!!$!$!$!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! !   =Òüþþþþÿþýýýýý÷Ã666667K¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸¸·¸¸¸··¸··············³³³³³··³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþþþþýþýýüýýýýýüüüü󾊌óüüùööõöõííù÷úóóóóóóóóóñe4QÑññðòñððððððððððððâââçïÍQ4eàßïïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÞ­Ó^&&MKKKKKKKJFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþüó÷÷÷ñ˜>$$$=$$=$=$$$$$=$================================================>>===============================================================$======$$$$$$==$$$=$$$$!$$$$$$$$$$!$$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!!    >Òüþþþþÿþýýýýý÷Ã666668K¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·················³³³³³³³³³K³KKKKKKKKKKKKKKKJJJKJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýþýýýþýýýýýýýýýýüüüü󾊌óüúöùùùöííöõ÷úóóóóóóóóòñ¾4QÑññòðñððððððððððððâçèðïÍQ4eÙâïïïÑÑÑÑÑÑÑÑÑÑÑÑÏÔ×Ì^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþþó÷÷÷ñ�>=$$$$$==$=$==$=$=================================================>===========>=====================================================$=$$==$==$===$$$$===$$$$$!$$$$!$$$!!!$!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! !!    =Òüþþþÿÿþýþýýý÷Ã666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸················³·³³³³³³³³³KKKKKKKKKKKKKKKKKKJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþýüüýýýýþýýþýýýüüüü󾊌òüúùøøùöííöõ÷÷óú÷óóóóòòðe4QÑññòðñòñððððððððððâçèðïÍQ4eàâïïïÑÑÑÑÑÑÑÑÑÑÑÑØÔÎÎ^&&MKKKKKKKJFFFFFGGGGHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþþó÷÷óñ�>$$$$$$$$=========$===$====$========================>>===>========>==>===>====>=====>=======>======================>=====================$======$=$$$=$==$$$$$$$$$$$$$!!!$$!!!$!!!!!!!!$!!!!!!!!!!!!!!!!! !!!    =ÒüþÿþþÿþþýþýýúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸···············³³³·³³³³KKKKKKKKKKKKKKKKKKJKJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýýýýýýþþþþþýýýýýýüüü󾊌óüüùùöùööíëùù÷óóóóóóóóóò¾4QçóóòññðððñððððððððâççððÍQ4eàâïïïÑÑÑÑÑÑÑÑÑÑÑÞÔÞÐÍ\&&MKKKKKKKJFFFFFGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþüó÷÷óñ�>$=====$$============$$==========================>==>===========>=====>====>=========>=>>====>====>==========================================$$$==$$=$$===$$==$$$$$!$$$$$!!$!$$!!!!!$!!!!!!!!!!!!!!!!! !! !!   =Òüþþþþþýýþýþý÷Ã666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·····¸········³³³³³³³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþýýþýþþþþýýýýüýýýü󾌌óüüøøøùööõëù÷óóóó÷óóóóóò¾4QçóòñòññððñððððððððâççððÍQ4eààïÑÑïÑÑïïÑÑÑÑÑÏÔÙÑÐÎ^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþýóó÷óñ�>====$====$$===========================>>=============>=========>=======>>>==>>===>>==>>>=>==>======>>======>====>========================$=========$$==$$$$$$$$$$$$$$$$$$!!!$!$$!!!$!!!!$!!!!!!!!!!!!!!!!!  ! !  !    =Òüþþþþÿýþýþýý÷Ã666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··············³···³³³³³KKKKKKKKKKKKKKKKKKJJJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýþÿþþþýþþþþýþýýýþþýü󾌌óüüøøøùööõöõ÷óóóó÷óóóóóò¾4QçòññòññòòññðððððððâçèððÍQ4eÚàïÑÑÑÑÑÑÑÑÑÑÑÑÙØÑÑÐÎ^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþý÷ó÷÷ñ˜>$=$=$$=========================>>====>=====>>=>>========>>=>==========>==>========>==>=>>=>>===>==>================>===========================$==$$$==$=$$==$$=$$$=$$$!$$$!$!!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!     =ÒüþÿþþÿþþýþýýúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸················³³³³K³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJJHGGFFFFJKKKKKKKJO4Äýþþþþþýýýþýþþýýþþýýü󾌾óüüøøöõööõöõ÷óóóóóóóóóóò¾4QÑòòòòðñòñðððððððððèçèðïÍQ4eßßïÑÑÑÑÑÑÑÑÑÑÑßÔÏÑÑÑÎ^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþüóóóóñ�>==$===========================================>==>===>==>===>=>=======>===>>>>=>==>===>=>=>>===>>>===============>====>>================================$=$$$$$$$=$$!$$$$$$$!!$B[___[_______[[_[_[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[Y[[[[Y[[YZYYYYY[YY[YYYYYY[[YYYYY[Y[YYYYYYYYYYYYY[[YYYY[YY@;# =ÒüþþþþÿþýþýþþúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·················³³³³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJHGGGFFFJKKKKKKKJ44Äýþþþýþþþþþþþþýýýþüüü󾌾òüüøøøùööõöõ÷óóóóóóóóóóò¾4QçòòòñññðñðððððððððâçâçïÍQ4eàßÑÑÑÑÑÑÑÑÑÑÑÏÔ×ÑÐÐÐÎ^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþü÷÷ó÷ñ�>=================================>===============>======>===>>====>>==>>>=>==>>>>>=>>=>=====>>==>>=>>>>=======>=============>======================$=====$==$$==$=$$$$$!$$$$$$=Æò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷ó÷ó÷÷÷÷÷÷óó÷÷÷÷÷÷ó÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òñðáÈ‚Y =ÒýÿþÿÿÿþþýþýýúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸····¸¸·······³·³³³³³³KKKKKKKKKKKKKKKKKKJJJJJJJJJJHGGFFFFJKKKKKKKJ44Äýþþþþýþýýýþýýýýýýýýü󾌾ò÷÷öøùõööõöõ÷óóóóóóóóóóñ�4QÑòñððððððððððððïïïàâáÑÑÄQ4eÙàÑÑÑÑÑÑÑÑÑÑÐØÔÎÍÍÍÍË\&&MKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞýþþþþþþü÷÷óóñ�>$==============================>=======>====>>====>=>=>==>>==>>>>=>>=>>>>>>>>>==>=>>=>>>>>==>>>>>>>>==>>==>>>====>=>=>>>=================================$$=$==$$$==$$$$$$$$$$@ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüòÆ[ =ÒýþÿþÿÿþþþýþþúÃ666667·¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·····¸···········³³³³³³KKKKKKKKKKKKKKKKJJJJJJJJJJJHGGFFFFJKKKKKKKJ44Äýþþþýýýþýüýüüýüüüüüü󾌌ñ÷óöùöõíõõöõõóóòòóóóòñððe4QÐðððððððïððïïïÑÑÑÑàáÑÑÑÄQ4eÙßÑÐÍÐÐÐÍÍÍÍÞÔÎÍÍÍÍÍÈ\&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþý÷÷÷÷ñ�>==========================>======>=====>>>=>=>>==>>>>>====>>>>AtZ]xzxzzzzzxzzzzzzzzzzzxzzzzzzxzzzxxxzzzzxzzzzzxzzzzzxzxxzxxzxzxxzxxxxxxxxxzxx__xxxxxx__x�x____xx___xx__________ÏüþþþþþþþþþþþþþþþþýýþþþþþýþþýþýþþþþþþþþþþþþþþýþþþýýþýþþýýýþþþýýþýþþýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþýþþÿÿÿÿÿþòÃ;=ÒýÿþÿÿÿþþþýþþúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·················³³³³³KKKKKKKKKKKKKKKKJKJJJJJJJJJJHGGFFFFJKKKKKKKJ44Äüýýýüýýýüüüüüüüüú÷úüò¾ŒŒðóóõööõööôëéòóòððððððððïe4QÐïïðïïÑÑÑÑÑÑÑÑÐÐÐÐÙÏÞÍÍÄQ4e××ÍÍÍÍÍÍÍÍÍË­ÊÄÄÄÄÄÄÆV&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþý÷÷÷÷ñ�>===============================>====>>>===>>=>>>=>==>>>>>>=At…Ìçòò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óÏÂÂÂÂÂÅÂÂÂÅ–––––––––––––––––––…––––…––…–––………………–……………………………………–…………………………………•………………•–ÂÈÎçúþÿÿÿýÎY=ÒýÿþÿÿÿþþþþýýúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸······¸·······³·³³³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJHGGFFFFJKKKKKKKJO4eÍÐÐÐÐÐÐÐÐÐÐÐÐÐÐÍÍÍÍÍËeŒŒÐðçèèæâææààßÑáÑÐÑÐÐÐÑÐÐÍŒ4‡ÄÍÍÍÍÍÍÍÍÍÍÍÄÄÍÄÄÄÉÈÈÄÄÁQ4Qƒ”•hhhhhhhh“†fgggggca<+&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþüóó÷óñ�>=============================>>>=======>=>>>=>>=>>=>>?>>>=]ÈñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ@$=$=$$$$$$$$$!$$!!!!!!!!!!!!!!!!!!!!!!! ! ! !    ;�Î÷þÿÿþÏ@=ÒýÿþÿÿÿþþþþþþúÃ666667·¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸············³³·³³³³³³³KKKKKKKKKKKKKKJJJJJJJJJJJHGGFFFFJKKKKKKKJ444O4OOOOOOOOO2222222222ŠŒŒŒee���eeeeeeeeŒŒŒŠŒŠŒŠŠŠ‡4‡ŠŠŠŠŠŠŠŠŠQŠŠŠQQQQQ\\\QQQ44*+++++++++++++++++++++&+&MKKKKKKKJFFFFFGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþýóó÷÷ñ�>==========>=============>=>==>==>>=>=>===>>>>>>>===>>=>>A–ñþÿÿÿÿþþþþþýýþþýþýýýþþýýýýþýþýýýýýýþýýýþýýýýýýþýþþýýýýýýýýýýþýýýýþýýýýýýýýýýýýýýþýýýýýýýýýýýýýýýýþýýýýýýýýýýýýýýýýýýüÎ_____[__[[[[[[[_[[[[[[_[[[[[[[[[[ZZZZZZZ[[ZZZZZZZZZZYZYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@; #�áþÿÿþÎ#=ÒýÿþÿÿÿþþþþþþúÃ666667·º¸ºº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·············³³³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJHGGFFFFJKKKKKKKJO444OOOOOOOOOOO222222222ŠŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠŠŠŠŠŠ‡‡‡‡‡4‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡444444444444*+++++++++++++++++++++&++MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþýóó÷÷ñ�>=================>======>>=>>>=>=>>>>>>>>>>>>=>>>>>>>>>CÆúÿÿÿþúáÌÆÅÅ–ÅÅÅÅ–ÅÅ–ÅÅÅ––››Å›Å–Å–Å–›–ÅÅÅÅ––––››ÅÅÅ›–––––ÅÅ––ÅÅ––––Å––––––––––––ÅÅ––––––––––––––––––––––––––––––––…––––Î÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óñçË„Y  @Îýÿÿý =ÒýÿþÿÿÿþþþþþþúÃ665667·ºº¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸············³³³³³³³³KKKKKKKKKKKKKKKKJJJJJJJJJJHHGFFFFJKKKKKKKJHHHHHHHHHHHHM///MMMMMMMMQ\QQQQQQQQQQQQQQQQQQQQ4Q4444OOOOOOOOOOOOOOOOOOOOOOOOOOOO2VTHHHHHHHHHHHHHHHHHHHHHHJKKKKKKKJFFFFFGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþý÷óó÷ñ™>=====>===>=========>=======>>>>==>>>>=>>>>>>>>?>>>>>>>CÈüÿÿþòÉzt>>A>>A>A>>?>>????>A>>>>>A>>>=>A>>A>>A>>>>>>>>>A>>>>==>>>=>>>>=====>===>=>>======>=======================$$$==$@ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñÂ@;ÎþÿÿñY=ÒýÿÿÿÿÿþþþþþþúÃ666667·ºººº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸···········³³³³³³³³³KKKKKKKKKKKKKKKJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþþ÷ó÷÷ñ˜>=============>=>>===>>=>>=>>=>>>>>==>>>>>=>===?>>>>>>AÃúÿÿüÏxCA>>>>>>>>>>>>>>??>A>>>>>>>?>?>>??>?>>>?>>A>>>>=>>>>>>==>>>>>>=>===>=>>=>>================================$=$$$==@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá_ YçÿÿþÂ>ÒýþÿÿÿÿþþþþþþúÃ666667K¸¸¸¸¸¸¸¸··¸¸··¸·¸·····¸··············K³KKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJHHHHGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFFGGGGGHHHHHHHHHHHHHHHHHHHHHHHHJHJJHXÞüþþþþþþþóóó÷ñ�>======>==>===>=====>====>>>>>==>>>>>=>>>>>>?>>>>>>>>A‚óÿÿüÉt?>>>>>>?>>>>>>>>?>>>A>>>??>>AA>A>>>>>A?>>>>>>>>>>>>>>>>>>>>>==>>>=>>>>===>=>=>======>==>===================$===$==@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ�„üÿÿç#=ÒþÿÿÿÿÿþþþþþþúÅ656667"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHVÞüþþþþþþþ÷ó÷÷ñ�>===================?=>==>>>>>=>>>>>>>>>>>>>?>>>>>>?>tÏÿÿýËt>>>>>>>>>>?>>??>>?>>??>>>>>>??>>?>?>>>>?=>>>>>>>A>>>?A>>=>>>>>>>>>>>>>>>>>>====================================$$==@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ[;áÿÿó[=ÒþÿÿÿÿÿþþþþþþúÅ656667"VÞüþþþþþþþ÷÷÷÷ñ�>========>====>>>>>>>>>>>>>>=>>=>>>>>>>>>>>>>?>>A>>>A–úÿÿá]A>>>??>???>A?AA>?A>?>??A??AAA?>>>>>>>>>>>??>>>>>>>>>>?>>>>>?>>>>>>>>>>==>>==>>==>=====>=>========================$==@ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÏ#…þÿþ•=ÒþþÿþÿÿþþþþþþúÅ666667"YÞüþþþþþþýóó÷÷ñ�>=======>>==>==>>=>>>>>>>>>>>>>>>>>>>?>>>?AA>?>>?>>>CÏÿÿúƒ?>>?A?C>>>?>>??>>>???>>?????>???>>>A?>AA>?>??>>>>>>>>>?>>?>>>>>A>>=>>=>>>>>==>>>==>>=>=>>============================@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü„Y÷ÿþÈ =ÒýÿÿÿÿÿþþþþþþúÅ666657""YÞüþþþþþþþ÷÷÷÷ñ™>>======>>>=>>>>>>>>>>>>>A>>>>>>>A>?>>>>>AAA>A>>>??>xòÿþÏt??>>>>>?>>??A??>>??>>?>>?>>>>>>A???>>>C?>?>???A>>A>>>A>>A>>>=A>>>=>>>>>>>>>>>>>>>==>>>==>===>>=======================@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç;;çÿÿÎ =ÒþÿÿÿÿÿþþþþþþúÅ66565""""""VÞýþþþþþþþ÷÷÷÷ñ�?=======>==>>>>>>>>>=>>=>>>>>>?>>?>>>AA>?A>>>>>>>>?A–üÿü–?>?C??>?????>??C?>??>???>??A???>>?????>>A>>>?>A>>>?>>??>>>>>>>A>>>>>>>>>>>>>>?>>>=>>>>>>>=>==>=====>==================>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_#áÿÿÏ#=ÒþÿÿÿÿÿþþþþþþúÅ656667TTTTTTTTTUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"TTT"TTTTT"TTT"TTTTT"""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTTT"TTTTTTTTTTTTTTTTTTTTTTTTTTXÞýÿþþþþþþ÷÷÷÷ñ�?=>==>>==>>>>>>>>>>>>>>>>>>>>>A>>>>>??>>>?????>???>?Éþÿóx??????>?>?>??C??C??????C?????C>??A>?C??>CA???>??>A?>>??>A>?>?A?>>>>>>>>>>>>>>>>>>>>===>>>>==>>==>=====>===>===========>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ ÎÿÿÏ#=ÒþÿÿÿÿÿþþþþþþúÃ666667X¸¸¸¸¸¸¸¸¹·¹¹¹¹¹¹¹¹¹¹bbbbbbXXXXXXWXXXWXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWTWTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTWTTWTWTWTTTWTXÞüþþþþþþþ÷÷÷÷ñ�?=>=>==>=>>=>>>>>??>>>A>>>?>???>?>>>??>>>C?>????>A?CÎþÿçtAA???>>??>?????>??CC?????????C?????>?????>?C?>?A>>A>>C>?>>?>?>>>>>?>>?>>>>>>>>>>=>>>>>>>=>>>>======>>======>==========>ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÆ556667·ººººººººººººººººººº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··········³³³³³³K³KKKKKKKKKKKKKJKJJJJJJJJJJHGGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿÿþþþþ÷÷÷÷ñ˜?==>>>>>>>>>=>>>>>>>>>?>>?>>A?>>>A>>>>A>???>A???>>?CÏÿÿát??>??????CCC?C?????C???CC??CC??????????????????????>??>>>>??>?>>>AA>>?>>>>A>>>>>>>>>>>>=>>>=>>>>>==>=>===>============>ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ ÎÿÿÏ#=ÒþÿÿÿÿÿþþþþþþúÃ666667·ººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·········³³³³³³³K³KKKKKKKKKKKKKKKJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿþþþþþ÷÷÷÷ñ�CA>=?>>>>=>>>>>>>>>>>>>>??>>A>>>>??>??>A?>A?>>>C??CtáÿÿátCCC??>?CCCC?C>?CC????????????>???CC????CC??C???>??C?>>>???>>>>???C>>>???>>>>A>>>>>>>>>>=>>>=>>>>=====>================>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=ÒþÿÿÿÿÿþþþþþþúÃ656657·ºººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸···¸·······³³³³³K³KKKKKKKKKKKKKJJJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿþþþþþ÷÷ú÷ñ�?=>=>>>>>>>>>>>>>>?>??>>>>>>>A??????????>>C??A??>??táÿÿát??C?C???C?C?C?CCC???CC???????CC?>??CC?C>>>CC?????CC?????>????????A>??A>>????>>>A>>>>>>>>>>>>>>>>=>>===>===============>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÆ666657·ººººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸········³³³³³³³KKKKKKKKKKKKKKKJKJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFGGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿÿþÿþýú÷÷úñ�A=>>>>>>>>>>>>>>?>>>>>>=>?>????>?AC??????CC????????táÿÿátCC??CCC?C??>?C?CCC??????CCCC?CC??CCCC??C??C???C??C?>>?C?????C?A??>>?C>>>>?>>?>>>>A>>>>>>>>>>>=>>=>>=========>===>=====AÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑ# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÃ57556$·ºººººººººººººººººººº¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸···········³³³³³³³KK³KKKKKKKKKKKJJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞþÿþÿþÿþþú÷÷úñ�C>>>>>>>A>>?>>>A>>??>>>??C>>>>>????????????C?C?C?CCCáÿÿát????????CCC??CC??lCCCC??CCC?CCC?CC?CC??C??C???C??C?>?C????C?CC????>A?>??>>???A>>>>>>?>>>>>>>>=>>=>=>>>=>>=======>=====AÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÆ566667·ººººººººººººººººººº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·········³³³³³³³³³KKKKKKKKKKKKKKJJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞþÿþÿÿþþþúúúúñ™C>==>A>>??>?>>A>>????>??>???????????????C?CC????CC?CáÿÿátC????C?CCCCCC?CCCCCC?CC??lCCC??CCCCC??C??????>???C??CC??????????>?C???>C>>?>??>>>C>>>?>>>>>>>=>>>>>>>A>======>>>======>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÃ555557·ºººººººººººººººººº¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸······³³³³³³³KKKKKKKKKKKKKKJJJJJJJJJJJJHGGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞþþþÿþÿÿþúú÷úñ™C>>>>>>>=>>>>??>>>>?????>?>???C???>?????CCCCC??CCCClâÿÿátCCCCCC???C?CC?CCCC??CCCC?CCCCC???CCCCCCCCCCCC?CCCCC?C??C?C????????C??>>??AC>?>??>?>>>>>>>A>>?>>A>>>>=>====>==AABCBZZZZ_áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÃ55665$·ººººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··········³³³³³³³³KKKKKKKKKKKKKJJJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞþÿÿÿÿÿþþ÷÷÷úñ�C>A>>>AA>>>>>A>?>?>A?>??C?>??C??C???CC???CCCCCC??CCtâÿÿát?ClCCCC?CCCCCC?CCCCCCCCCCCCCCCC???CCCCC??CCCCCC?CCCCCC?C?CC??C?????>>???CA?>????A>>>>>>?>>>>>>A>?A>>AAC]z„–ÃÈÎÏÏáááçñò÷ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=ÒþÿÿÿÿÿþþþþþþúÃ55566·ºººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··········³³³³³³³KKKKKKKKKKKKKJJJJJJJJJJJJJHGGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿÿÿÿþý÷úúúñ�C>A>?A>>>>?AA>??>?>A???>?A??C????????CCCC????CC?CCCtáÿÿátCCCCCCC?CCC?CCC??CCClCCCCCCCC?CCCCCCCCCC???CCCCC?CCC??C??????CCCC????A?>????C?>>?C?>??>>>>>>>>>AZ]ƒÅÈÏçò÷ú÷÷÷óòñçáÏÏÏÏÏÏÏÎÏááççççñòóúúüüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÓþÿÿÿÿÿþþþþþþúÃ566657JKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJHJHHHHHHHHHHHHHHHHHHHHHHHHHGGHHHGGGGGGFGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFFGGHHHHHHHHHHHHGHHHHHHHHHHHHHHHHXÞþÿÿÿÿÿþþ÷úúúñ™C>>>?>>?A>>??>>??CCA???C?????????C?CC??CCCC??CCCCCCtâÿÿátC?CCClCCClC?CCCCCClCCCCCCCCCCClCCC?CCCCCCCCCCC?CCl?C?ClCC?CCCCCCCCC?C?C?????C??????>???>??>Cx”ÆÎð÷úú÷òñáÎȃx]]ZZBAAAAAAAAAAABBBZZZZ]_�‚„–ÆËÏñóüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#9Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÃ55565"HJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHVÞþÿÿÿÿþÿþúúúúñ™C>>=>>???>>>???>??????CCC??CCCC??CC??CCCCCCC?lCCCCCtáÿÿáCCCC??CClCCCCCCCCCCCClllCCCCClClCClC?ClCllCCCCC?CCClCCCC?CCC?CC?CCCClC???CC????>>>?C??>?CtzÆáòüüúòçÎÃ]ZC?A>=>>?=====>=>=====================@BZ�ÂÎç÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÅ55875"YÞþÿÿÿÿþþþúúúúñ™C???>>>?>????>?????CCC??CCCCCCCC??CC??CCCCCCCC??CCCtâÿÿátllCCCCCCCClCCClClllCCCCCCClCCCCCCllCCCClClCCCCC?CCCCCCC?CCC?CCCCC???CC?C????CCCCC?>??tƒËçúýüñÏÅzttCA?>>A>>>>==>>>>>>>=======================$==$==B]–Ïòýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=ÓþÿÿÿÿÿþþþþþþúÅ55665"YÞþÿÿÿÿþÿþúúúúñ™C>A>A>>?????C?????C??C???????CCCCC?CCCC?ClCCCCCCCCltâÿÿátCCClClCCCCCCCClClCCCClCClCClClllCCCCClClCCCCClCCllCCCCCCC?CCC?CCCCCC??CCC??C?C?>>??]ÆçúýúçÉ”]C??>>??>>>>>>>>>>>>>======>====================$==$$$$===Z–áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#  =ÒþÿÿÿÿÿþþþþþþúÅ55565""""""""""""""""""""""""""YÞþÿÿÿÿÿÿþúúúúñ˜C>??????C?????CCC??????C?CC?CC?CCCCCC?CCCCCClCCCCCCtâÿÿátCCCCCCCllCCCCCCCCClCllllCCClCCllCCCCClCCCCClClCCClC?CCCC?CCCC?CC?CC?CC???C???CC??uÆñýþóÌ‚tC????A>?>>>>>>>>>?>?>>>>>>>>A>>===>>======================$$==B„çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=ÒþÿÿÿÿÿþþþþþþúÅ57555"TTTTTT"T"TT"TT""T"""""""""""""""TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTXÞþÿÿÿÿÿÿþúúúúñ™CA???A>??>??C???CCC??C?C?CCCCCCCCCCCCCCCCCCCClCCCCCtâÿÿátlCCCClClClCCCllllClCCCClllllCClCClllCCClCClCCCCllCCCCCCCCllCC?ClCCCCCC?CCC??CCCCƒñýüçÈx??????>>A>>>>>?>>?>>>>>>>=>>>>>>>=>=>==============$=$===$$$$$$$$$$ZÎýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÓþÿÿÿÿÿþþþÿþþúÅ555777;XVUVVXXU:V@VTV:#:VT:VTTT@YT::T:;T:##:TT####:TT#:T#TTT####TT#T#T##TTTTTTTTT###TT#"""""""T""T""""T"TT""T"""T""TT"T""""T""T""T""""T"TT""T"""T""TT"T""""T""T""T""""T"TT""T"""T""TT"T""""T""T""T""""T"TT""T"""T""TT"TTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYXXX[Þþÿÿÿÿÿÿþúúúúñ™C?>A?????>??C?????CC?CC?C?CCCCC?CCClClCCCCCllCCCCCClâÿÿátlCClllClCCClClllllClllllCllllCllClCCllCClClllCCllCCCCCCCCllCCCCl?ClCClCCC?CC??l›÷þò›tCC??A????C>????A?>>>>=>>>>?>=>===>>=>>=====================$$=$====$$$BËþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿþþþþþþú�55556577777777777777777777777777777777777777877777777777777$77$77777777$77777777777779TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT97777777$77$$77$7$777=77787$777$7=7$7CÞþÿÿÿÿÿÿþúúúúñ™C?????????????CCC??CCC?CCClCCC?CCCCClCCClCCCCCCCClltâÿÿátlCCClllllClCCCllCllCCClCllClCCllCllllClllClCllCCCCCCllCCCCCCCCCCCCCCCCCCCCCC?Cƒ÷ýÎyCC??C???C?CC??>>??>?>>>?A>>>>>>>>>>>=>>>==>>================$===$===„=$=�úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿþþþþþþú�5555556755555555555655555755577555575557855555775555755555555555555555555555555755555555555$############;;########################################################################;###########;########;###############=55655555585557555555555555557555555555CÙþÿÿÿÿÿÿþúúúúñ˜CC?????????CCC??CC?CCCCCCCCCCCCClCCClCCClClCClCCCCltâÿÿátlllllllClllClCllCllllCllllllllllClllllClClCClllCClCCClCCClCllCCCCCCCClCCCCCCCCÌýÞt??lytC????A?CC?A???>???>?A>>>>>?>>>>>>>>======>>================$$==@áñ_$BËþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿþþþþþþú›5555578555555555555555555555755555555755775555575575556555555557756555555555555555555575555557755575555557755575575755555557755555555575555555555755555555555555577555577557557755775755555555555556755777555755555555555556555557755755555555555555556575555555CÙþÿÿÿÿÿÿþúúúúñ˜CC????C?CCCCCCCC?CCCCCC?CC?ClCClCCCCCCllCCCCCClllCCtâÿÿátllllCCllllCllllCCllllCllClCllllllllllCClllllCllClllCCCCClCCCCCCCClClCCCCC?CCCtßú–CCtÈá{C????CC??A???>>???>???>>>>>>>>>>>A>==>>==>=====>================ÎþÏ[Ëýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿþþþþþþú�5555555555755555555555555555555555555555557555575565557555555555555555555555555555555555555555577555655555555557555555555677755775555555555557555555557555565555555655575555575555555555755555555755665555555555555555555555555555555557555555555557555555586CÙþÿÿÿÿÿÿþúúúúñ™C????CC?C??CC??CCC?CCCCClCCClCCCCCCllllllCllllllllCuâÿÿátllCllllllllllllllllllClCllllCllllllllCllllllCClllClllCllllCllCCCCllCCCClC?CCClÞýÌlC›÷átC??C?CCA???>?ACC>??>?>A?>?>??>>>>>>>>>==>==>>===================„üþòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿþþþþþþú›5555555555555755555555555555555555555555755557555555555555555555555555555657555755555555555767555755555555555555575555555555555775556555555555555555555755555555555555555555555775555555755555555555555555555555555555555555555555555555565575555578557CÙþÿÿÿÿÿÿþúúúúñ™C?>?CC??CCCCCC?CCCCCCCCCCCCCCClCCClllCClCCllCCllllCuâÿÿátlllllllllllllllllllCCllllllllllllllllllllCClllllllClllClClClClCCCCCCCCCCCCCCCC–ü÷�zçýÆCCCC?C??C?>CC>?C?A?>A>??A>>>>>>>=>>==>>====>>======>============$Zñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿþþþþþþú›55555555557555555555555555755755555555555555555755555555575555555555557555555555555555555555555555755555555555555555555555555555555555555555555555575555555557555555555555555555555555767555555555555555555555575555555555555555555555555555556555CÙþÿÿÿÿÿÿþúúúúñ™lCCCCCCCCCC??CCCCCCCllCCCClllCCClCCClllCClllllClllltâÿÿáulollClllllllllClllllllllllClllllllllClllllCCllllllllllCCllClllCCCllCClCCClllCCtÞýýúþü”CCCCCC??C????AC>>??>>>>>>A?>>>>>>?>=>>==>>====>===>>=============Bçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿþþÿþþþú›7555757755555555555555555555555555555555555555555555555555755555555555555555555555555555555555555555555555555655555755555555555555555555555555555755555555555555755555555755555555555555655555555555555555755555555555555555555555555555555555555CÞþÿÿÿÿÿÿþúúúúñ™CC?CCC?CCCCCCCCCCCCClCCClClCCCllllllllllllllllClllluâÿÿáuCllollllllllllllllllllllllllClllllllllllllllllllllllllCllllCllllCCllCCCCCCCCClCyÞüÿÿózCC?CCCCCCC??C????C?????>>??A>>?A?A>>>>>>>>=>>>>==================]óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿþþÿþþþú›5555555555555755555555555555555555755555555555555555555755555555555755555555555555555755755555555555555555555575555555755575555555555555555555555555555555557555557555557555555557555555555555555555555555555555575555555555555555555555755CÞþÿÿÿÿÿÿþúúúúñ˜C??C??C?CCCCCCCCCCCCCCCCCllCCCCllCCClCllCCClllllllluâÿÿáuCllCCllllolooolllllloooolllllllllllllllllllllllllllllllClCClCllllllllCCCllCCClCCtÆúÿòuCCC??CCCC??lC??CCC??AC?A>>A>?>>>>>>?>>>>=>>>=>>==>===============Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿþþþþþú›55555555555555555555555555555755555557555555575557555555555555555555555555755555555555775555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555565755555555755555555555555555775555555555555555555555575CÞþÿÿÿÿÿÿþúúúúñ™l?>C?CCCCCCCCCCCCClCClCllCCllCllllCllCClllllolllllluâÿÿáullllllllllllllllllllllllClllollllllolllllllllllllllllllllllllllllllCCllCCClCCllCCtÉþ÷{CCCC?lCC???CCC?C?C??>>?A???>?A>?>>>>>>>>>>>>==>====>============Zçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿþÿþþþþú›5555555555555555555555555555555555555555555555555555555555555555555555555575555555555575755575555555555555555555555555555555555555555575555555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúñ™C?CCCCC?CCCCCCCCCCCCCllCClClllClCllllllllllllllCllluâÿÿáullllllolllllloollolllllllllllllolllollllllllllllllllllllollllllllllllllllllCClClllyñýÉlCCCCCCCC???CC???C??C????C??>>?A?>>>>>>>>>>>=>>>==>=>==========>Æýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Òþÿÿÿÿÿþÿÿþþþú›5555555557555555555555555755555555555555555555555555555555555555555557755555555555575555555555555555555555555555555555555555555555555555555555555555555555555555555555555555755555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúñšlCCCCCCCCClCCCCClClllllClCClCllllllllllollllllllllluâÿÿáullllllllllllollllollollllollolllllllllllllllllllllllllllllllClllllllCClClCClClCClCCÆýò{CCCCC?ClCCC????CC??C??>>????A?A?>>>>>>>>>>>>>>>=>==>=>========xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Óþÿÿÿÿÿÿþÿþÿþú�555555555555555555555555577557875555555555555555555555755555555555555555555555555555555555555555555555555555555555555555555555555555555755555575555555555555555565555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþúúúúñšlCCCCCClllCClCCClCllCllllCllClllllllllllolllllllllluâÿÿáullllllllllllllolloloollllollllllllllllllllllllllllllllllolClCllllllllClllClllllCClluçþÞtCCCCCCCC?CCCCCC?C?????A?????>>>>?>>>>>>>>=>>>>=>=>>=========BÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Óþÿÿÿÿÿÿþþÿþþú›55555555555555555555557?vC555555555557555555555555555555555555555555555557555555555555555555555555555555555555555555555555555575755555555555555555555555555555555775555555555555555557555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþúúúúô™lCCCCCCCCCClCCllClllClllllllllllllllllllolllllolllluâÿÿáullllllollolllllllollllooloolllllllllllllllllllllllllllllllollllllllllllllllCllClllCl›úú–lCCCCCCC?ClC?CCCCCCCCCC?????>?????>=>>>A?>>>>>>>==>=========…üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿþþÿþÿû�55555555555555555755557CyC5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúô™lCCCCCCCCCClllCllClllllllllllllloollllllllllllolllouâÿÿáulllllloolollllolllllllooolllloloolllolllllloolllllloolllllllllllllllllllllllClCCCllluÞþñyllCCCCCCCClCCCC?CC??>?????????>>?AA?>>>>?>>>=>>>>==>======Zçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿþþÿþÿû�55555555555555555555555555578755555555555555555555555555555555555555555555555555555555555555555555555555555555755555555555555555555555555555555555555555555555555555555555555555555557555555555555555CÙþÿÿÿÿÿÿþúúúúñ™lCClllCClCCCllClllllllllCllllllllllolllllllllolollluâÿÿáuoooooooolooololloololllolllollooolllollllllllollllllollloolllllllllllllllCllllllllCClzñýÌtCCCClCCC?CCClCCCCCC??C???>??A>>>>>>>>>>>?>>>=>==>>=>=>>=>Æþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿþþÿþÿû�5555555555555555555555555577555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555575555555555555555555555555CÙþÿÿÿÿÿÿþúúúúñšlCCCCCCCllllllCllllllllllllllllllllloooollllllllllluâÿÿáullloollolloolooooolooooooooooolooolollooolollloollllllllollollllllllllllllClllllllllll�üú›CClCCCCC?C??C?CC?C???AACC??CC???>?>>>>?>>>>>>>=>>>======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿþþÿþþú�5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúñ™lClCCllllCllllClllllllllolllllllolllllloolololllloluâÿÿáuloolllloololllooooopoooolloollooolooolooloollollollloolllloolllllllllllCllllllllCClllluÞþñylClCCCCCCCCCC????CC?C?????>????>C?>>>?>>??>>=A====>>>>BÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Óþÿÿÿÿÿÿÿÿþÿþú�5575555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúô™lCCllllllClllllllllllllllllollllllollllollllolooooouâÿÿáulopolloooolooooooooooololooooollllloolloooooopooloolollolololllllolllllllllllllllllllCC{ñþÌtCCllCCClCCClCCC?CC??CCCC??????>?>>>>>>A>>>>>>========–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá# =Óþÿÿÿÿÿÿþþÿþÿú›5555555555555555555555555555555555555555575555555555555555755555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúô™olClCllllClllCllllllllllllllolllllolooololooolllloouâÿÿáuoooooloooooooloolooooloooolooooooolloooollooloololoololllolollolllllllollolllllllCllllCl›úú–lllllClCCCCCCCC?C?CCCCC??C?>?C?A?AAA>A>>>>>>>>>>>=>>_òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿþþÿþÿû�555555557555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555575555555555555555555557555555555555555555CÙþÿÿÿÿÿÿþúúúúò™lCllllllCllClCllllllllllllllllllolloolllloooooopooouçÿÿáuloooooooloooloollpoooopoooopoolooopoooooooooolooloooooolooolllllolllollllllllllllllllllluÌþñylCCCCCCllCCCCCCCCCC?CCC?CC????????>>?>>>>>=?>>>>>=CÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿþÿÿû�5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüúúúò™llllllllllllllllllllllllolllllloololllllooololooooouâÿÿáuooooooooloooooooopoooooooooooooooooooloooooooopplolooooooloolooloolllolllllllllllllllllllyñýÌollClCCCCCCCCCCC?CC????CCCC??????A?>A>>AA>>>?>A>>>…úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿÿÿÿú›555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüúüüô™olCllllllllllllllololllololllllloollllooooooolooooovâÿÿáuoooooloooooopopoopooplopoopoopoooopooooooolooooooplooooolloolloollloolllloloolllllllllllll˜úú›llCllCCClCCCCCCCCCCCCCCCC?CC?CC????>>C?>>A>>>>>>táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Óþÿÿÿÿÿÿÿÿÿÿþú›55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüúüüòšolClllCllllllllllllllllolooloooooollooolooooooooooouâÿÿáuoooooopopooppopoppooppppooooooooooooooopoolooooloolpoolloolloooolooolllllooooolllllllllllloÌýñyClllCClllCllCllCCCCC???C?CC?C>??>??AC?>>?>>>>>AÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿþÿÿÿú�55555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555555555555555555555575555555555555555555555555555555555555555555555555555555555?Þþÿÿÿÿÿÿþúúüüò™llllllllllllllllllllollllllooopoooolooooooooolooooovçÿÿávpooppooooopooopopooopoppooooopoooooooloooooopooooooooooopoooopolollolloolllllllllllllllllllyçýÌulllllllCllCCCl?CCCC?CCCC?C?>?????>>A?A>>>A>>>xòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿþú�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555?ÞþÿÿÿÿÿÿþüüüüòšolllllllllllCllollolloollololloooooooooollllooooooouâÿÿáuopooppppppppooopopppoppooopoopopppoppoooopoooopopoopoooooopololooollolooloollollolllllllllll”÷ú–CClClCCCClCCCCClCCCCC?CCC????C????????>>?A>>CÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿú›55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555?ÞþÿÿÿÿÿÿþüüüüòšollClllllllllolllllllololllooolooopoooloooooooppooovçÿÿávopppooppooopppopopppoopopppopoppppppopppopoooopoopooooooooooopolopooolollollllolollollllollllÉüñyllCCllCllCClCCCCCClCCCCC?????CCA???????>>?A–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿþÿÿü�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555755555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüúüüòšlllllllollllllllollllooloooolooolooopooopopooooopoovèÿÿávooppoopoopoppooppooopppppoppoppppoppoppppoppppooopppopoppoooooooolopoolooooollllllllllllllooluáýÌtlllllCCllCCCCCCCCCCCC?CC?CC?CC??>?CC??>?>]çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿÿÿÿý�5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšolllllllllllllllloolllooooooooopoooooooooopopoooopouâÿÿávppppooppoppppppppppppppppppopopppoopppoppppoopppopooopoooopooooopooooppooolllpolllllloloolllll”÷ú›lllllllllllCllClCCCClCCCCCCC????????>?>?AÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿþþÿý�55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüüüüò™ollllllllllllllloooloolooooooooopooooopooopopooopppvâÿÿávppopppoppppppvppoopppppppppoppppooppppppooppppoooooppooopoooppppooopoooollooloolllooloollllolloÉüñyllllllCClCCClllCCCCCCC?CCCC???A?C??A???zòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Óþÿÿÿÿÿÿÿÿÿÿÿý�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüòšollolllolllolllooloooooooloooooopooopoooppooppppoppwèÿÿávppppppppppppppppppvpopoooopppppvppppppppppppppoppppoopppooooopoooooooooloooolllollllollllolllllyçþÞulllllllCllCCClCCCCCC??CC?CCCC??C????>tÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555557555AÞþÿÿÿÿÿÿþüüüüòšoollloolllolooolllooooooooooppooopoooopppppppoppppovèÿÿâvpppppppvpppoovvppppoppppppppppppppppppopopppppppoppopooopppooooopoolopoooooloooololoollllollllll›úú–oCllllllCCllCCCCCClCCCCCCCC?CCCCC>???–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Êþÿÿÿÿÿÿÿÿÿÿÿü�55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšoolllllllllloooloolooollopoooopoopppooppooppooppppovèÿÿâvpppppopvvpppppppppvppppppppppppppppppppppoppoppppppppppoppppooppppooopopooooooooooollollooollloluÎþçyllllllllClCClCCClClCCCCCC??C?????>?táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšolllllllllolooooooooooooopoooopoopppppppoppopppppppvçÿÿâwpppppoppvpppppppppppvpppppppppppppppppppppppopppppoppoppppppppppoopppoooooooooooooooooolollllllol{òþÉoolllCllllllllCClCClClCCC?CCC?????CÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüüüüõšollllolllloooolooooopoooopooopoooppoppppppppppvppppvçÿÿâvppopvppppppppppvpppvpvpvpppppvpppppppppppppppppopppppppopvooppppppoopopooooooooooololoolllllllooll�ý÷ƒollllllllCllllCCCClCCCCCCCC?CC???yñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555555555555555555555555555555555?ÞþÿÿÿÿÿÿþüüüüõšololloololoolooppoooooppoppppppppppppppppopppppppppwèÿÿâvppvppppppppppvpppppvpvvpppvvvvpvvppppppvppppppppppppppppppppopooooppppopoooooolooooolloollollllolluáþáulllllllllCCCllCCCCCCCCCC???C???CÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá# =Òþÿÿÿÿÿÿÿÿÿÿÿü�55555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšololooloooooooooooloooooooppooopppppopppppvpoopppppvèÿÿáwpppppppvppvppvppppppvpppvvpppvopvpvvpvppppppppppvpppppvpopppopoppoppoppooppoooopooppoooooloolllllol”÷þÆlllllllllllllCClClClCCCCCCCC??Czòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿû�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüüüüõšollllpooooolooooopopoppoppoppoopoopoppoopppppovppppwèÿÿávpppvpppvppppppvvpvvpppppvpppvvvpvpvppvppvppppppopvvpppvppvppppppooooppoppppoopoooooooooooopoolooolloÌþò{llolllCllCllllCClCCCCCCCCC???tÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555555555555555555555555555555555555555555555?Þþÿÿÿÿÿÿþüüüüô™olloooloopoploopppooooooopppoppppppppppppvppvpvppvpvèÿÿâwpvvvpvvvppvvvppvvpvpvvvpppppvvvvppppppvpppvppvppppppppppvppppppppppppppoooooppoopoooooooollllloolollyòþÞolllllllCClllllCClCCCCClCCCCCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿÿÿÿÿÿÿý�5555555555555555555555555555555555555555555555555555557555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšollooooooolpoppoooooppopppooopoppppppppppvvppppppppvâÿÿâwpvvppppppvvppppvpvpppvvvvpvppvvppppvvvppvvpppppvvppppppvpppppvppppppopppppoopppoppopoopooollololllollÅüü–olllllllllllllllClCllCC?CCCtÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿû�5555555575555555555555555555555555555555555555555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüò™oooooooooooooopoppppppopppppppppopvvvpppvpppvvvpppvwèÿÿâwvvvpvvvvvvvv|vvvpvvppvpppvvpvvvppppvvppvpvvpvvvvvppvppppvppppvpppppppvpppopppppopppooopoopolooooololluáþçuollllllllClCCClClCCCCCCCCC”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüòšoooloooooooopppoopopppppoppvpppppppppvvpvvpppppvpppwèÿÿâwvvvvpppvv|vvvppvvvvvvvvvpvvv|pvvvvvvvvpvpvvvvpppppppppvpvppppppopppppppppppopopoppoopopoopooolollooloo”üý�llllllllllllClllllCCCCCCCtÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿÿÿÿÿÿÿü�55555555555575555555555555555555555555555555555AÙþÿÿÿÿÿÿþüüüüòšoolooooooopoppppppppppppppppppvvpppppvpvppvvvppvpvvvèÿÿâwvvvvvvvppvv|vvpvvvvvvvvvvvvvvvvvppvpvvpvvvppppvppvvpvvvppppvvpppvppppppppppppppoppopoopoooooooooooollouÞþñyolClllllllllllllCCCCCCCC–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿÿÿÿÿÿÿü�555555555555555555555555555555555555555555?Þþÿÿÿÿÿÿþüüüüõšpoooooooooppoopppoooopvpoppopvpppppvppppppppvpvppvvwèÿÿâwpp|v|vvpvvvvvvpp|v|vvvvvpvvvvvvvvvvppvpp|vvppvvppvppvvvvvvpppppvpvpppppppppooppopoopppppoooooooooooloooƒúý�olllolllllllllClCClllCCtÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá# =Òþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüõ™pooooooooooppopppoppppppppppppppppvpppvpppvpvpvvvvvwèÿÿâwvvvpvvvvvvvvvvvv||vvvwvvvvvwv|pv||vvvvvvvv|vvvvppvvvvvvvvvppppvvopvppvpppppopppppppopppoooooooooolooolooÏþáuollllllllllllllllllllC{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿü�55555555555555555555555555AÞþÿÿÿÿÿÿþüüüüòšpopoopppoooooooopoppppppppppppvpppvvpvvppvpvvv|vpvvwèÿÿâwvvvvppvvvvw|||vvvv||vvvv|vwvvv||vwvvpvvvvpvwvpvvvvvvvvvvvvvpvpvvvvwvvppvvpppppppppoooopppppooopooloollooƒü÷{ooollllllCllllllllCClC�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Óþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüò™ppooooooopppopppppppppvvvpvppppvvvvvpvvvpvvpppvvvvvwèÿÿâw|vvvvvv|vwvvvvvv||vvvvvvvvvv|vvvv|vvvvv||||v|wvpvw|pvvvvwv|vwvpvvvvvvvvvvpvvvvvpvvvpvvppppppppoopooppuooußþÆoooolllllllllllClCCCllÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá# =Òþÿÿÿÿÿÿÿÿÿÿÿý�5555555555755555555555555555555555555CÙþÿÿÿÿÿÿþüüüüõšppoopoopppppppppppppppvppppvvppppvvpvvvvppv|vvpvvvvwèÿÿâwvvvw|vvwv|vw|w|vvvvvvvvw|vvv|ww|vvvvwwwww|wwwwwvvvwvwwwvvvwwvvwwvwvvwwvvvvvwvwwvvwvpvvvvvpppppoupuoppopop›üÏooolloololllllllllClluáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�5555555555555555555555AÞþÿÿÿÿÿÿþüüüüòšpooloooppppppppoppppppvvvvpvpppvpvvpvvpv||vvv|||vvvwèÿÿâwvv||v|vv|wvvvvvvvvw|wwwvww|wvwwwww}wwwwwwvvwwwwww}}}www}wwwwwwwvwwvwwwwvvwvvvvvvvvwvvwvvvvvvvvvvvvvupopuu{÷ñuoppoooolllllllllllCluñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�555555CÞþÿÿÿÿÿÿþüüüüòšpppopopppoopppvpvppppppppppvpvvpvv|vvvvv||v|vvvpvv|wèÿÿâwwvvvvw|||vv|wwwwwwwwvw}}}}wwww}www}wwwwww}w}w}}}w}www}ww}}wwwwwwwwwwwwwwvvwvvvvvvvvvwwvvvvvvvvvvvvppwpvuuyñò{uuuuuooouolooolllllltñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�555555555555AÞþÿÿÿÿÿÿþüüüüòšpppoopppoopppopppppvpppppvvv|vvvwvvvp|wvvv|vp|vvv|vwèÿÿâw|v|wwvv|vwvwwwwwwwwwww}}}ww}}www}w}w}}w}}}}}}ww}}ww}}w}}wwww}ww}ww}www}}w}wvwwwwwwvvwwvvvvvvvvvvvpvvuvvpvyç÷†vupvvuuoopooooloollluçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�5555555AÞþÿÿÿÿÿÿþüüüüòšpppoppopppppvppppppvppvppvvvvvvvvppvvvvvvvvvv|v|vv|wèÿÿçw|www}ww}w}w}w}w}w}}}}}}w}}w}}}}}}}}}w}}}w}}}}}w}www}wwwwwww}ww}wwwwwwwww}wwvwvwwwwvwvvwvwvvwvvvvvvvvvvvvvç÷†vvuuuuuuuuuuuuuuuuoouáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�555555AÞþÿÿÿÿÿÿþüüüüò™ppppppppppppvpppvppvppvpvvpvvpvpvvvpwvvvvvvv||vwww|wèÿÿè}wwwwwww}}}}}ww}}w}w}}}}}}w}}}}w}}}}}}}}w}}w}}w}}}ww}w}}w}}}}wwwwwwwwwww}wwwwwwvwwwwvwwvvvvvvvvvvvpwvvvvwñò{vvuuvvuupuuvpuuuuuouuÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�555555?Þþÿÿÿÿÿÿþüüüüòšppopppppppvpvvpppppvvppvppvvvpvvvv|v|vvvvvvvw||vvw|}èÿÿâw}}w}}}w}}}}w}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}}}www}}}}}}}w}}ww}www}wwww}wwwww}wwwvwwwvwwwwwvvvvwvvvvvvpvpv†÷èvvvvvvvpupuuupuuuouuuu›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�55AÞþÿÿÿÿÿÿþüüüüòšvpppvppppppppppvpvvpvppvvvvpvvq|vv||v|vvw}|vwwwvwww}èÿÿâ}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}}w}w}w}ww}}ww}wwwwwwvwwwvwwwwvvwvwvwvvwvvvvvvvÊýÌvvpvvuupvuuuuuupuuuuuuyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüüòšppppppppvppppppvvpppvvvvvvpvv|vvpvv|wvww}wwwwwww}}wèÿÿè}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}w}}}}w}}}}w}}}}}}w}}}}}}ww}}wwwwww}wwwwwwwwwwwwwvwwvvvvvvvvvvv˜òú”pvvvuuvvuppuupuouuuuupuÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�5AÞþÿÿÿÿÿÿþüüüüòšpppppppppppppppppvvvpvvvvvvvv||wvwwvww}ww}w}w}}}w}wèÿÿâ}}}w}}w}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}w}}w}}wwwwww}wwwwwwwwwwwwwwwwwvvwwwwvvwwvwvvvvv˜ñþßwvvvvvpvvpuuuuvuuuuuuuuu{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÙþÿÿÿÿÿÿþüüüüòšpppvppppvvvpvppvvvpvpvvpvvvwwvvwwwwww}w}www}}}ww}}èÿÿè€}}}w}}}w}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}wwww}}}ww}}}}ww}wwwwwwwwvwwwvvwwvvwvvwwwvwwww†Êòÿ÷˜vpvvpuupuvvppuvpupuuoouu{ßò÷÷úþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüü÷šppppppppvppvvvvpvvppvvvvwvvwwwwwwwww}}ww}}}}}}}w}}�ñÿÿè}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}}}}}}}}}}}}}w}}}}}}}www}w}}ww}wwwwwwwwvwvwwwvwwv{˜œÊßòþþ÷�vvvvvvvvvvvpvvuuuuupupouuvyy{ƒ”Ìýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#>Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüüò™vpppppppppv|vvvvp|vvvvwvww}w}ww}}}}www}w}}}}}}}}}wèÿÿè}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}www}ww}wwwwwwwwvvvvwwwwv†â÷úüüúòá�wvvvvvpvvppvpvuuvppuuuuuuoououtuƒ÷úþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÙþÿÿÿÿÿÿþüüüü÷švppppppppppwvppvv||wvwwwww}wwwwwww}}}ww}}}}}}}}}}�èÿÿè�}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}w}}w}w}}}w}}wwwww}wwwwwwvwwvvwv˜úúâÌž˜{wvvvvppvvvvpvvuvpppuuppuuuuuuuuuoo{òÞñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüü÷špppppppvvppvvvvvwvwwww}wwwww}}w}}w}www}}}}}ww}}}}�èÿÿâ�}}}}}}}}}€}}}}}}}}}}}}}}}}}}}}}}}}}}w}}w}}}}}}www}}w}}}}}wwwwwww}wwwww˜úâ{wwvvvvvvvvvvvvvpvvvvvpvupuuuppouuuuuuuyñÉßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüü÷švpppvpvvvv|vvwwvvww}wwww}}ww}}ww}}}}}}}}w}}}w}èÿÿâ}}}}}}}}}}}}}}}}}}}}}}}w}}}}}}}}}ww}}}ww}}}}w}}}}www}wwwvwwwwww˜÷ÌwvvwvvvvvvvvvvpvvvvvvpuvppupuuuuuuuuoouyçÇÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüýý÷™ppvvpvvvvvwwvw}}wwwww}ww}www}}}}}ww}}}}}}}}}}}}}}}èÿÿè}}}}}}}}€}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}wwwww}w}wwwwvv}www˜òÊwvvvvvvvvwvvvvvvvvvpvvpvpppuupuouuuuuuuyç�Æþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýüýõšvpvvvvvvvvvwwwww}ww}wwww}}ww}}}}}}}}}}}}}}}}}}}}}�ñÿÿè�}}}€}}€}}}}}}}}}}}}}}}}w}}}ww}}ww}www}wwwwwwwwwww˜òÊwwvvvwvvwvvvvvvvvpvvvppuvpppuuuuuuuuouoyá�›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷švvvvvvvwwwww}wwwww}}ww}w}}}}}w}}}}}}}}}}}}}èÿÿè�}}€}€€}}}}}}}}}}w}}}w}}wwwwww}}w}}w}}wwwwwwwwv†òÊwwwvvvvvvvvvvvvpvvvvvpvppupouuuuppopuuuuÏ�”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷šwvwvw}wwvwww}}ww}ww}}w}}w}}}w}}}}w}}}}}}}}}}}}€èÿÿè�}}}€€}}}€€€}}}}}}}}}}}}}}}}w}w}}}}}}}}}www}}}vwwwwwv˜ñÊwvwvvwvvvwvvvvvpvvppvvvpvuvpupvuuuuuuuuuÞǃúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá9 Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷šwvvwvwww}wwwwwww}ww}ww}w}}}}}ww}}}}}}}}}}}èÿÿè�}}}}€}}}}€}}}}}}}}}}}}}}}w}}}}ww}}}}}ww}wwww}www†òÊvwwwwvwwvvvvvvvvvvpvvvpvvpvupvuuuppuoupuÞÉ{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá9#Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷žwvwwvwww}}}}}www}}w}}}}w}}}w}}}}}}}}}}}}}�ñÿÿè�}}€€€€€}}}}}}}}}}}}}}}}}w}}}}w}wwww}w}}wwwvvw†ñÊwwwwwwvvvvwwvvvvvvvvvpvvvpvvvvuuuppuuuuuÞɆ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá; Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿÿÿÿÿÿþýýýý÷šwv}wwwwww}wwwwwww}w}}}}}}}}}}}}}w}}}}}}}}�ñÿÿè�€}€€€€€€€}€}}}}}}}}}}w}}}}}}}ww}}}}}}}wwwwwwww†ñÊwwvwvwwvvvvwvvvvwvvvvvvvupvvppvuupupppupÞÉ{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷š}wwvwww}}wwww}w}}}}}}ww}}}}}}}}}}}}}}}}}}€}€�èÿÿè�€€€€€€€€€€€€€�€€€€€}}€€}}€}}}}}}}}w}}}}}}w}}}}wwww}}}w}}ww�ñ×}wwvvwwwvvvvvvvvvvvvvvvppppvvupuuuuuupuoÌÌ{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;#Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷žwwwwwwww}ww}w}}}}}ww}}w}}}}}}}}}}}}}}}}}}}€éÿÿè�€€€€€€€€€�€€€€€€€€€€}}}}}}}}}}}}}}}}}}}}}}www}ww}}www†ñÊ}vwwwwvwwwvwvvvvvvvvvvvvvvpvpvpuuuuuuupuÉÞ{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞýÿÿÿÿÿÿþýýýý÷§www}wwwwww}w}ww}}}}w}}w}}}}}}}}}}}}}}€}}}}‘éÿÿè�€�}€€€€€€€€€€€€€€€€€€€}}}€}}}}}}}}}}}}w}}}}}}}w}}ww}}}ww�ñ×wwvwwwwvvwvvvvvvvvvvvvvvvvppupupvpuuuuupÌÞyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷§wvvwvwww}}ww}ww}}}}}}}}}}}}}}}}}}}}}}�ñÿÿè�€€€€€€€€€€€�€€€€€€€€€€€€€€€}€}}}}}}}w}}}}}}}}}}}}}}}}}}ww}}�ñ×}wvwwwwvvwwwwvwvvwvvvvvvpvvvvvvppvupuuuuÉÞyñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÈçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷šwvwwwwww}}ww}ww}}}w}}}}}}}}}}}}}}}}}€€�ñÿÿè�€€€€€€‘€€€�€€€€€€€€€�€€€€€€€}€}}}}}}}}}}}}}}}}ww}}}wwww}ñÞw}wwwwwwvvvvvvwwvwvvvvppvpvvppupuuupuupuÇßyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎztƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá; >Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷šww}www}}ww}}}}}}}}}}}}}}ww}}}}}}€€€€éÿÿè�€€€€€�€€€€€€€€‘€€€€€€€€€€€€€€€€€€€€€€€€}}}}€}}}}}}}}}}}}}}}}w}}}wwww}ñÞ}wwwvvwwvwvvvwvwvvvvvvvvppvppuuvvvpppouu�áyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá”ulltÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá99Îÿÿá#=Òýÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷žwww}ww}ww}w}}}}}}}}}}}}}}}}}}}}€}}€€€�ñÿÿè‘€€€�€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€}}}}}}}}}}}}}ww}}w}w}}wwñÞ}wwwwwwwwwwvwwvwvvvvvvvvvpvvvvpvvupupouu�áyáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÆyltCltußþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿÿÿÿÿÿþýýýý÷šw}w}}wwwww}}w}}ww}}}}}}}}}}}}}}€€~€€�€€€‘éÿÿè‘€€€€�€€�€€€€‘€€€€€€€€€€€��€€€€€€€�€€€€€�€€€}€€€×àÒ�€}}}}}}w}}}}ww}}w}wñÞwwwvvwwwwwvvvvvwwwvvvvvvvvvvvvvppvpuopvp�áyáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáƒtlllltttƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿþÿÿÿÿþýþýý÷žw}w}}}}}}}}}w}}}}}}}}}}}}}}}€€}€€€€€€€€éÿÿè�€�‘€€€€‘€€€€€€€€�€�€€�€€€‘€�€€€€€€€€€€€€€€€€}}ÒüþýòÙ™}}}}}}}}}}}}}w}}}}wñßwwwwwwwwwwwwwvvvvwvvvvvvvpvvvpvpuvppppuu›áyáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþò�yttllllCCClÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#9Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþþÿÿÿÿÿþýþþý÷§ww}}}ww}}w}}}}}}}}}}}}}}€€}€€€€€€�ñÿÿè‘‘€}€€€‘�€€‘��€�€€€��€�€€��€€€€‘�€€�€€‘€€€€€€€€€€€€}€€™òþñõþþ÷àš}}}}}}}w}}}w}}}}ñß}wwwwwwvwwwvwvvwvvvvwwvvvpvvvvpppvvvpuvp”á{ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÎ{ttltllllClCltÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþþÿÿÿÿÿþýýþþ÷§}}}ww}}}}}ww}}}}}}}}}}}}}}}€€~}}€€€€�‘éÿÿè‘€€€€€�€�€€�€€€�‘€�‘€€�‘‘€€€€‘€€€€‘�‘€�€€‘€€€€€€€€€€€}€Ùþ÷™™Òèúþúßœ}}}}}}}w}}}w}}}�ñß}}}wwwwwwvvwwvvwvwvvvvvvvvvvvvvuuvupvuuu†á†Þÿÿÿÿÿÿÿÿÿÿÿÿþñ›uoltltlCtllllllzòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá9#Îÿÿá;=Óþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿþÿÿÿÿþýþþþ÷§}w}ww}ww}}}}}}}}}}€}}}}}€€€€€€€€€€€éÿÿè‘€€€�€€€�€€€€€�€€€€€‘€€�€�€€€‘‘�€€‘‘‘€€€€€‘€€€€€€€€€€€€€�€€}€žúýÓ}žßúþúâœ}}}}w}}}}w}}wwñß}wwwwwwwwwwwwwvwvwvvvvvvvvvvvpvvvppuuuvp†áƒÞÿÿÿÿÿÿÿÿÿÿÿúÌ{ottltouttlClllCCC�üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;!Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿþÿÿÿÿþýþþý÷šwww}}}}w}}}}}}}}}}}}}}}}}€€��€€€‘€€‘€€�ñÿÿè‘€€€€€€�€€€€‘‘€€‘€‘‘‘€€‘‘‘�‘€€‘‘�€€‘�€�€€‘€€€€�€€€€€€€€€€€€€}€€�âþñ�}}€žàúýûâž}}}}w}}}}ñß}w}}w}wv}wwvvwvvwwwvvvvpvvvpvvvvvpvpppvp{á”Þÿÿÿÿÿÿÿÿÿýç”uototlCllllltollllltßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá9#Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿþþÿÿþýþýý÷žww}}w}}ww}}}}}}}}}}}}€}}}}}€€€€€€€€€€€€€€‘éÿÿè‘€‘‘‘‘€�‘�€��€€€‘‘‘‘€€‘‘��‘€‘€‘€�‘€€€€€‘€‘€�‘€�€�€€‘€€€€€€€€€ÒüûÒ}€}}œßúþüâž}}}}}}w}}wñß}wwww}}wwwwwwwvvwvvvvvvvvvvvvvvvvvvppupuyá˜ÞÿÿÿÿÿÿÿÿóÉytooooltlttlloltClllCCƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;#Îÿÿá; =Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞýÿþÿþÿÿþýþþþ÷§w}www}}}w}}}}}}}}}}}}}}€}€€€€€€��€€€€�ñÿÿè‘€‘‘‘€�‘‘‘€��€‘€€‘€��‘‘‘€€‘€€€‘���‘‘‘‘€€€�‘€€‘‘‘€€€�€€€€€‘€�ñþâ‘€€}€}€}™âúþüâž}}}}w}}wñâ}wwwwww}ww}}wvvwvwvwwvvvvvvvvvvvvvvpvvvpyâ›ÞÿÿÿÿÿÿüáƒooololltttullttltCltlCltÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;=Òýÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿþÿÿþÿþþþþþ÷š}}}}}}}}}}}}}}}}}}€}}€€€€€€€€€€€€€‘€€€€‘éÿÿè‘€€€����‘‘€€‘�€�‘‘‘‘‘‘‘€€‘�€�‘‘�€€€€‘‘�‘€€‘�€€€�€‘€€‘€€€€€€€€‘Òýúš€}€€}žßúþüâœ}}}}}ñâ}w}w}wwwwwww}www{›ÊÞÞÌdžvvvvvvvvppppupuuyâÇßÿÿÿÿþñ�yoloutotoltllllltlllltCllCuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;=Òþÿÿþÿÿÿÿÿÿÿÿý�BÞþþÿÿÿþÿþþþþþ÷š}}}}}}}}}}}}}}}}}}}}}}€€€€€€€€�€€€€€�€‘�‘éÿÿè‘�€‘‘�€€‘‘‘€‘‘‘�‘‘‘‘‘�‘‘‘‘€�‘‘‘‘�‘‘‘‘€‘‘‘‘‘‘€‘�€€€€‘€€‘€€€€€€�ôþ߀€€€}}}}€œàúþûâž}}}}ñâ}ww}}wwwwvwww�Êçñâßßñòñ̆vvvvvvvpvvppppwßÊáÿÿÿúÌ{uououtttolllotltltllllllClClƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá; =Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞýþÿÿþÿÿþþþþþ÷š}ww}}}}}}}}}}}}}}}}}€��€€€€‘€�€��‘€‘éÿÿè‘‘‘‘‘‘‘‘‘‘‘‘�‘‘€�‘‘‘€‘‘‘��‘‘‘‘‘‘‘‘€‘€€€€‘€€€€‘‘‘€‘‘€€€€‘€€€�€€‘×þ÷™€€}€}}}œâúþûßœ}}w�ñâ}wwwwwwwwvwwœâçÞÊÊÊž†˜Ìñâ˜vvvvvvvvpppvpuÞáñÿýç›uoopuuoluooollltlllllltllllllltÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞüþÿÿþÿþþþþþþ÷š}}w}}}w}}}}}}}}}}€€€€€€€€€‘�‘€€‘€�€€‘éÿÿè‘€�‘‘‘‘��‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘€‘‘‘�‘€‘‘‘��‘‘‘��‘€�€‘‘€€€€�€‘€€€€¤õþ×€€€€}}}}}}œâúþúâœ}�òèw}}www}}wwwœçß×èòññòèÇ}˜ßç˜vvvvpvvvuppvvÌüý÷ÉyouoouooooulooluolltllllllllCCClCuçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá; =Òþÿÿÿÿÿÿÿÿÿÿÿý›BÞþþÿþþþÿþþþþþ÷§}}w}}}}}}}}}}€€�€�‘€€€€€€€€€€‘€‘‘‘éÿÿè�€‘€€‘�€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘’‘�‘‘�‘‘‘�€‘��‘‘�€‘€€‘‘€€€€€×þõ™€€€€�}}}}}}�žßúþúßÇúè}wwwww}}ww�âßÞòÞ›††˜ÌñÌw†á߆vpvvvppuvupu˜çÞ”upouooooooototoltoolutllllllClCCClCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@ ! =Òþÿÿþÿÿÿÿÿÿÿÿý›AÞþþþþþÿþþþþþþ÷š}w}}}}}}}}}}}}€€€€€�€€€€€�€€€€‘€�€‘‘‘€€‘éÿÿ褑‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘�‘�€€€�‘‘‘‘‘‘�‘�€‘‘�€�€�€�‘‘€€€€‘€€š÷ýÒ€‘€€€}}}}}}}}žâúýüþâ}}}}}}wwwwwÊâ×ñÊwvwwwwÇçœw˜èÇvvvvvppvvvvpuyvpoovuopuuouuoolooltllltotlClttlCllCClÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!  >Òýþÿþÿÿÿÿÿÿÿÿý›AÞýþþþþÿþþþþþþ÷§}}}}}}}}}}}}}}€€€€€€€€€€�€€€€‘‘€€‘‘‘‘€‘éÿÿè‘‘‘‘�‘�‘‘‘�‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘��‘�‘‘‘€€�‘‘€‘€‘‘‘€‘Ùþô¤‘€€€~€€}€}}}}œÞ÷ýÙ}}}}}}}}w�ñÞèÙ}wvwvvwwÞßwwÞá{vvvvvvpvppuvvoopouuuuuppouoooooutllltllCllllCClllllyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!! =Òþÿþÿÿÿÿÿÿÿÿÿý›BÞþÿþþþþÿþþþþþ÷š}}}}}}w}}}}}}}}€€€}€€€€€€€€€€€‘‘‘�€‘‘‘‘‘‘�‘‘¤ôÿÿè‘‘�‘‘‘€‘¡‘�‘‘‘‘‘‘‘�‘‘€‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘€‘€€�‘�€‘€š÷ýÒ€€€€€€€€€€€€}}}}}}}}}}}�Ò™}}}}wwww}}œò×ò™ww˜Çwwvœâ†w�ñ˜vvpvvvppvvoppopuuopooooolluoluoollloulllllttlllCCCCC–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!! ! =Òýþÿþÿÿÿÿÿÿÿÿý›AÞýþþþþþþþþþþþ÷šw}}}}}}}}}}}}}}€€€€~€€€�€€€‘‘‘‘‘€‘‘‘�‘‘�‘éÿÿè‘‘�‘‘‘‘‘¤‘‘‘‘‘‘��‘�‘‘‘¡‘‘‘‘‘‘‘�‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘�‘�€Ùþ耀€€€€€€€€€€}}}}}}}}}}}}}}}w}}w}}}}ÌñßèwèüÉwvw˜è˜w˜è�vvvvvvvppuupupvopuoupuopooooolllttoltolllttllCltCClCtÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! ! =Òýþÿþÿÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷š}}}}}}}}}}}}}€}}}}€€€€�€€€‘�‘€�‘€€‘€‘‘‘�‘‘�‘éÿÿè‘‘��‘‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘�€‘‘‘�€žúû§€�€€€€�€€€€€€€}}}}}}}}}}ww}w}}w}Ùââè}w}ßòžvww›è˜v�èÇvvvvvpvvvvvpppppuuuppoopuoooollllotolllltlllllClClCClzòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! ! ! =Òýþÿþþÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷¥}}}}}}}}}}}}}€€€€�€€€‘€€€‘€€‘‘€€€‘‘‘‘‘��‘‘‘éÿÿè‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘¡‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘€‘‘‘€‘�‘‘‘‘‘‘€€‘‘‘æþà‘€€€€‘€€€€€€€€€€€}}}}}}}}}ww}}}}www}wÙàÞñ�vw}†wvwwÊâ†v�èžvvvvvvvvvpvvvvpuuuupuuooopooloooollolltlllCCllllllCllCÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!! =Òýþÿþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷š}}}}}}}}}}€€€€‘€€€€€‘€�€€�‘�€‘‘��‘‘‘�‘‘‘éÿÿ褑‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘¡¡‘¡‘¡‘‘‘‘‘¡‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘��‘‘€‘‘‘§úú§�€€€€‘‘€‘€€€€€€€€‘~}}}}}}}}}w}}}}}}ww}wÌèžõžwwwvwww†âÞww˜â˜vvvvvvvvvuppppuovoppooopoputoooooolooolllClCCllCCClClCtÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!! !!! =Òýÿþþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷ž}}}}}}}}}}}€€€€€€€€‘‘‘�€�‘‘�‘‘‘‘‘‘€‘‘‘¡¤éÿÿ褑‘‘‘‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘àþÙ‘€€‘�€€€€�€€€€€€}}}}}}}}}}}}w}wwÇò™èâ�wwwww}×ñœwvÇâ†vvvvvvvvppvvvpppvpooooouoouooooootlllollllllllCCCClCCCCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!! ! ! =Òýþÿþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷ž}}}}}}}}}}€}}€€€€€€€€€‘€€~‘‘€‘€‘���‘‘‘‘‘‘‘‘‘‘éÿÿè’‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘�‘‘’‘‘‘‘‘�¡‘‘‘‘‘‘šú÷š‘€��‘�€��€�€€‘€€€€€}}}}}}}}}w}}}}}}˜ñÊÇò✆}†œßòÌwv}ßÞwvppvvvvvpvvvpppvupuppuououuooooolollloltlllllllllllCClllÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!! =Òýþÿþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷§}}}}}}}}}}}€€~€€�€€€€‘€€�€‘�‘‘€�‘‘‘‘‘‘‘‘‘‘‘‘‘éÿÿ餑‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘’‘‘‘‘‘‘‘‘‘‘‘‘‘àýà‘‘�€‘‘‘�‘‘‘‘‘�€€€€}}}}}}}w}}}}}}}}}}Þè˜Çè÷òñòúúÞ{wwÇèœwwvvvvvvvvpvppvvvpoupppuppuououlooollollllllClCllClllCCCCtçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! !!! =Òýÿþþÿÿÿÿÿÿÿÿý›BÞüþþþþþþþþþþþ÷§}}}}}}}}}€€}€€€€€€~€€‘‘�€‘‘‘‘�€‘‘‘‘‘‘‘‘‘‘’éÿÿ餑¡‘‘¡‘‘¡‘‘‘¡¡‘¡‘‘‘‘¡¡‘‘‘‘‘‘¡‘¡‘‘‘‘¡‘‘¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘§û÷š‘�‘�‘�€�€€€€‘�€€€€€€€€}}}}}}}}}}w}www™èâ˜�×òýôú×{wwœèÌwvvvvvvvpvvvvvvppopuoouuooooouooooloolollllllllllCllCCCCCCCƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!! !  =Òýÿþÿþÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷§}}}}}}}}}€~}}€€}€€€~€€�€‘€‘��~�€‘‘‘‘‘‘‘�‘‘‘‘‘¡‘‘‘éÿÿ褑‘‘‘‘¡‘‘‘¡‘‘¡¡‘¡‘‘‘‘¡¡‘‘¡¤‘‘‘¡‘‘¡¡‘¡‘’‘‘¡‘‘‘‘‘¡‘‘‘‘¡‘‘‘àýÙ‘€‘‘���€€€€€€€€€€‘�€��€€€}}}}}}}}}}}}}}w}}žñèœÊòžß�w†Êè߆vvvvvvvvvvvvvpvvvupvuppuopppouuoooooollllllCltlllllClCClCCCtÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!! !  =Òýÿþþþÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷§}}}}}}}}€~€€€€€��‘�‘‘‘€‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘¡‘‘éÿÿ褡‘‘¡¡‘¡‘‘¡‘‘¡‘‘¡¡¡¡¡‘¡‘‘¡¡¡¡¡‘¡¡‘¡¤¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘¡§ûõ¤‘‘‘‘��‘‘€€‘‘‘€€‘€€€€€€€€€€€}€}}}}}}}}}}}}}}}}}}}œèõâßôœßÊÞèòÙ†vvvvvvvvvvvppppvppvuppuoooooooooooouoolollllllCClCCllCCClCCCCxñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!$!!!!!  =Òýÿþþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷§}}}}}€}€€€~~€€‘€€€€‘���€€‘‘‘�‘€�‘‘‘‘�‘¡‘‘‘‘¡éÿÿè’‘‘¡‘‘¡¡¡‘‘¡¡¡‘¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡‘‘¡‘‘¡‘‘¡‘‘¡¡‘‘‘‘‘‘‘‘‘àýØ‘‘�‘‘‘‘�‘‘‘€‘€€€‘€€�€€€€€€}€€}}}}}}}}}}}}}}}}}w�×ôú÷œòúòß�wwwvvvwvvvvvvvvvvvpppppvpppoooooooolololotttllllllllllCClCCCCCCCÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!!!!!!! =Òýþþþÿÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷§}}}}}€}}}}�~€€€€€�~��‘‘‘��‘‘�‘€‘‘‘‘‘‘‘‘‘’¡‘‘‘‘éÿÿ褑‘¡¡‘‘‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡‘¡‘‘‘¡¡‘‘¡‘‘‘‘‘¡¡‘‘‘‘¡¡‘‘§÷ô¤‘‘�‘‘‘‘‘‘‘‘€‘€‘€€€€�€€€€€}}}}}}}}}}}}}}w}}}�×ñœèטwwwwwvvvvvvvvvvvvvvvpvpvvppoupopoptooloooltllllllllCClllCCllCCCCCC]ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!!  =Òýþþþþÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷§}}}€€~�€€�€€‘€€‘€€‘‘‘�‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘¡¤éÿÿè’‘‘¡¡‘¡¡¡‘¡¡¡‘¡¡‘¡¡¡‘¡‘¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘¡¡‘àüÓ‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘€‘€€€€€€€€}}}}}}}}}}}}}}}}}}wwwžèœâœwvvvvvvwvvvvvvwvvppvppvvpppupupoopooouoolollloltlltllllllllCCCCCC?CCÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!! ! ! =Òýþþþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷ž}}}€€€€€€‘€€��‘~€‘€‘€‘‘‘‘‘‘‘‘�‘‘‘‘‘¡‘‘‘‘¡¤éÿÿ褑¡‘‘‘¡¡‘¡¡¡‘¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡‘¡‘¡¡‘‘¡¡¡¡‘‘¡¡‘‘¡‘‘¡¡‘¡‘§õñ¤‘‘‘‘‘‘‘‘‘‘‘�€‘‘€€€�€‘€��€€€€€€€}}}}}}}}}}}}}}}}}wwwžèœâœwwwwvvvwwvvvvvvvvvvvvpuvpuvpopvoopuoooooooolollolllllollCClCCClCCCCCtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!! ! !! ! =Òýþþþþÿÿÿÿÿÿÿý›  @Þüþþþþþþþþþþþúš}}}}~}~€€€��€€�‘€€�‘‘‘�‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¡¡‘¤éÿÿé’‘¡‘‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡‘‘¡¡‘¡¡¡¡‘‘¡¡‘¡¡¡¡¡‘¡‘‘‘‘‘¤¡‘¡àúÓ¡‘‘‘‘‘‘€�‘‘‘€‘‘‘‘‘‘‘‘€€‘€€€‘€€€€�€}}}}}}}}}}}}}}}wžèžâžww}w}wvvwvvvvvvvppvvvvpppppppppoooulooooollooolllltlClllCllCCCCCCCCCCÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!! ! ! =Òüþþþþÿÿÿÿÿÿÿý›  @Þüþþþþþþþþþþþ÷§}}}}}~€€€€��€€~€€€‘‘€€€‘‘�‘‘€‘‘‘‘¡¡‘‘‘‘‘‘‘¡‘‘¡‘¤ôÿÿé¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡‘‘¡¤¡¡‘‘¡¡¡¡¡‘‘‘‘§õ餑¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘€€€�€€€�€‘€�~}€}}}}}}}}}}}}}}}}}}}žèžâžwwwvwwwvwvvvwvvvvvvvpvppppoopuouuuoooooooloutolllllllllllClCCCCCCCCCzáýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! !!! ! =Òüþþþÿÿÿÿÿÿÿÿý›   @Þüþþþþþþþþþþþ÷§~}€}}€~~�€‘‘�€€€€�‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘¡¡¤íÿÿ颡¡¡‘¡¡¡‘¡¡¡¡‘¡¡¡¡‘¡¡¡¡¡‘¡¡¤¡‘‘‘¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘‘‘‘‘¤ÙúÓ¡‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘€��‘€€€‘€€€€}}}}}}w}w}}w}}žèžâžwwvvwwvvwwwvvvvvvvvpvppvpvppppooooooooollouolooltlllllllllCClCCCCCtÆñòßñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! !!!! !! =Òüþþþþÿÿÿÿÿÿÿý›  @Þüþþþþþþÿþþþþú§}}}€}€}€€�€€�‘��€���€€�‘‘‘‘€‘‘‘‘‘‘‘‘‘¡¡¡‘¡‘¡¡¡¤ôÿÿ餑‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡‘¡¡šõô¤‘‘‘¡‘‘¡‘‘¤‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€€��€€€}}}}}}}}}}}}}}}w}}w}wœèžâžw}wvvvwwvwwvvvvvvvvpvpvvvpppppppooopoouoltooollllllllllCClCClCCClƒÏòáËñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@9!!!!!!! !  =Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþþþ÷§}}}}~€€~�€€€���‘‘€‘��‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡¡‘¤íÿÿ餡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡ØúØ‘‘¡¡‘‘‘‘‘‘‘‘�‘‘‘‘€‘¡‘€‘‘‘€�‘‘�~�‘€€€}}}}}}}}}}}}}w}w}wœèžâž}wwwwwvvvvvvvvvvvvvvpvpppppppoppovoooooollololloollllllClllllCCuÆçáÈÏúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!! !!! ! ! ! =Òýþþþþÿÿÿÿÿÿÿý›      @Þüþþþþþþþþþþþú§}}}€€}~€€�€�€~~~‘�€~‘�‘�€�‘‘‘‘‘�‘‘‘‘‘‘¡‘‘‘‘‘¡‘‘¡¡¤éÿÿ褡¡¡¡¡¡¡¡¢¡¢¢¡¢¡¡¡¡¡¡¡¡¢¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡‘¤íô¤‘‘‘‘‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘€‘€‘€€�€€€}€€}}}}}}}}}}}}}w}œèžâžww}wwwvvvvvvvvvvvvvpvvppvvppppppopopoooooolllllollCllllClCClllƒÞçÌÉñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@@Îÿÿá@!!!! !!!! ! =Òýþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþþþ÷§}€€€€~}€€�‘‘�€‘‘€��‘‘‘��‘‘‘¡‘‘‘‘‘‘¡‘¡¡‘¡¡‘¡‘¡éÿÿé¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¢¡¡‘¡¡¡¡¡¡‘¡‘¬ùØ¡¡‘‘¡‘¡‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘‘€�€‘€€€€€€~€}€}}€}}}}}}}}}}}w}}™èžâž}}wwwwvvwvvvwvvvvwvvvvppvvpppppuoooooooooooolllllllllllClllCuÆáÞÆáüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!! ! ! =Òüþÿþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþþþú§}}}}~��~€���€€‘€‘‘‘€�‘‘¡‘�‘‘‘‘‘‘‘‘‘‘¡‘¡¡¡¡¡¡¡¡¢ôÿÿí¢¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¡¢¡¡¢¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ùø¬¡‘¡¡¡‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘�€�‘€€€�€€€€€€}€}}}}}}}}w}}}}™éžâžwwwvwwwwvvvvwvvvvvvvvvpvvvppooppppouooooouololoollllCllllCt”Þ߯Èòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!! ! ! !  =Òüþþþþÿÿÿÿÿÿÿý›       @Þüþþþþþþþþþþþú§}}€~€€‘€€€�€�‘‘��‘‘‘‘‘‘‘‘‘‘‘¡‘‘¡¡‘‘¡‘‘‘¡¡¡¡¡¡¤ôÿÿ颡¡¢¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¢¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡‘¡¡¡¡‘¡Úýùؤ¡¡¡‘¡‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘�‘‘€€�€�€‘€€€€€€€€€€}}}}}}w}}w}™èžâÇww}wvvwwvvvwvvwpvvvvvvpvpppvppppopoooouoloolollllllllllllxÈáÌÅçýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!! !! ! =Òüþþþþÿÿÿÿÿÿÿý›      @Þüþþþþþþþþþÿþú§€}€€€€€~�€‘�‘���‘�‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡éÿÿ褢¡¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¥æýý鬒¡‘¡‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘€��‘€€‘€€€€€}}}}}}}}}}}}ww}™èžâÊwwwwvwwvwwvwvvvvvvvvvvvvvppppppoopoooopoooolollolllllllt›ÞÞÅÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!! !!! =Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþÿþ÷§~~€€~€~€€€€‘€€�‘��‘€‘‘‘€�‘¡‘‘‘‘‘‘‘‘‘¡¡¡¡¡‘‘¡¡¡¡¡¡éÿÿ餡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¤Øõýû模‘¤‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘��‘€‘‘€��€�€€€€�€}€}€}}}}}}}}}}}}™èžâÊww}ww|www|vvvvvvvvvvpvvppvopvvooooooooopooololoollollo{ÌáÉ�çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!   =Òýþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþÿþú§}~~~€€€~~€€€€€€��€‘�‘�‘‘‘‘‘‘‘‘‘‘¡¡¡¡‘¡¡‘¡‘¡¡¡¡¡¡¢íÿÿí¢¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¤¡¡¢¢¡¢¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¤¨àûþùॡ‘¡‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘�~€‘€‘€€�‘‘€�€€}€€€}}}}}}}}}w™ñÇâÊ}}w}wwwww|vvvwvvvvvvvvvpppvppvpoouppoloooopolltlllllu�ßÎÅÞúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!! !  =Òüþþþþÿÿÿÿÿÿÿý›      @Þüþþþþþþÿþþÿþú§~}}}€€€��€‘€€‘‘�€~€‘‘‘��‘‘¡¡‘¡‘‘‘¡‘¡‘‘‘¡‘‘¡¡¡¡¡¡¡¤íÿÿí¢¢¢¡¡¡¡¡¡¢¢¡¡¡¢¢¡¢¢¢¡¡¡¡¡¢¡¡¢¢¡¢¡¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡‘‘¡§æüþõؤ¡¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘�€‘‘‘€€~€€€~€}€~}}}}}}}}}}}™ôÇâÓw}www}wwv|wwvwvvvvvvppvvvvvvoopuoopooooooloooloolloƒÌßÇÉòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!! ! !  >Òüþþþþÿÿÿÿÿÿÿû›    @Þüþþþþþþÿþþþþú§~~}€~€~~€~‘�~€���‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘¡‘‘‘¡¡¡¡¡‘¡¡¡¡¡¡¢íÿÿí¢¡¡¡¡£¢¡¢¡¡¡¡¡¡¡¡¢¡¢¢¡¡¢¢¢¢¡¢¡¡¢¢¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¤­íüýõÓ¤‘‘‘¡‘‘‘‘‘�‘¡‘‘‘‘‘‘€‘�€~€€€€€€�€€}}}}}}}}}}}}ww}™ñÇâ×w}w}w}wwwwwwvwwvwvvvvvvvppppoppoooupoooooloooololu�ßÌ�ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!! !!! =Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþÿþÿúž~~€€~€€€�‘��‘�‘��‘‘‘‘¡‘‘‘‘‘‘‘‘¡¡¡‘¡‘¡¡¡‘¡¡¡¡¡¡¡‘¤íÿÿí¢¡¡¢¡¢£¢¡¡¡¡¢£¢¡¡¡¡¡¢¡¡¢¢¢¢¢¢¡¡¡¢¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡¢¡¡‘‘¡¡¡¡‘¤Ôõþý鬤‘¡¡‘‘‘¡¡‘‘‘‘€‘‘~�‘‘�€€�€€€}€€€}}}}}}}}w}ww}™ôÒè×}wwwvwvwwvwvvvwvvvvvpvvvpppppvppooppooouoolloooo”ÌÞ�Ì÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!! !! !   >Òüþþþþÿÿÿÿÿÿÿý› @Þüþþþþþþÿþþÿÿú§~~}€}~€€‘€~�~~€‘‘��‘‘‘‘‘‘‘‘¡‘‘�‘¡‘¡‘¡‘¡¡¡‘¡¡‘¡¡¡¡¡£íÿÿ颡¢¡¡¡¢¡¡¢¡¡¢¢¢¢¢¡¢¡¡¢£¡¡¡¡¡¢¢¡¢¡¡¢¢¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ùøþýè§‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€�€€�‘‘€€€~}}}}}}}}}™òÊâÙ}wvvwww}wwvvwvvvvvvvvvvppvpoppooppoppppupoooooy�ÞÉÇñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!! !!! !   >Òüþþþþÿÿÿÿÿÿÿý› @Þüþþþþþþÿþþþÿú§~~~~~~~~€€��~�€����‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡¡¤ôÿÿ颢¢¡¢¢¢¢¢£¢¡¡¡¢¢¡¡£¢¡¢££¢¢¡¡¢¢¡¢¢¡¡¡¢¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡§ä÷þûà§‘‘‘‘‘‘‘‘‘‘‘€‘€‘‘€€�‘�€‘€€€€€}}}}}}}}}w™òÊâÞw}ww}wvwwvvvvvvvvvvvvpvppvppppppooooopoolooooƒÌÌÇáüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@@Îÿÿá@!!!9!!!!!  >Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþÿÿú§~€€~~~€€�~�‘~‘�‘‘��‘‘¡‘¡¡‘‘‘¡‘¡¡¡‘¡‘¡¡¡‘‘¡¡‘¡¡¡¡¡¡¢íÿÿ룢¢¡¡¡¡¡¢¡¢¡¢¡¢¢¡¡¡¡¡¢¢¢¢¢¢¢¡¢¢¢££¢¢¡¢¡¡¢¡¢¡¡¡¡¡¢¢¡¡¡¡¡¡¡‘¡¡‘¡‘¡§àúþ÷Ù¤¡‘‘‘‘‘‘‘‘�‘€‘‘�€€‘�€�€€~}€}}}}}}}}}}™òÊçÙ}}}w}wwvwwvwvwwvvvvvvvpvvvvvppvpvppoopooooop”Ç�Ì÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!! !! ! ! >Òüþþþþÿÿÿÿÿÿÿý›@Þüýýþþþþÿÿþÿÿú§~�~~�€�~~~�����€��‘‘‘‘¡‘‘¡‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£íÿÿí¢¡¡¡¡¡¢¢¢¢¢£¡¢¢¢¢¢¡¢¢¢¢¢¢¡¢¢¢¢¢¢¢¢¢¢¡¢¢¢¡¡¢¢¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘‘‘§èüþõؤ‘‘‘‘‘��‘‘‘�‘�~€€‘€€€€€~~€€~}}}}}}}}}}}™õ×âÙwwwwww}}wvvwvvw|vvvvvvvvvpppppppvoppooooooou˜Ìòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!!! !  =Òüþþþþÿÿÿÿÿÿÿý›   @Þüýýþþþþÿþþÿÿú§~~~€�����~~�‘�‘‘��‘�‘‘‘‘‘‘¡‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¤¢íÿÿí£¢¢¡¢¢£¢¡¢¡¢¢££¢¢¢¡¢£¡¢¢¢¡¢£¢¢¢¢¢¢¢¢¡¢¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡¬ëýýô­’‘‘‘‘�‘‘‘�€�‘€€~‘€€€€€€€}}}}}}}}}™ò×èÞ}}wwwwwwwwwvvvvvvvvvpvvvvvvpppvpopppoopoooo”ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!! !! !   >Òüþþþþÿÿÿÿÿÿÿý›  @×üýþýþþþÿÿþÿÿú§~~~~�~€��€�€€��‘‘�‘‘�‘‘‘¡‘‘‘�‘‘¡‘‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢ôÿÿ룢¢¡¢¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢£¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡£¢¢¢¢¢¡¡£¡¡¡¢¡¡¡¡¡¡¡¢¢¡¡¡¡‘‘‘¤Òéýûæ§‘‘‘‘‘‘‘‘‘�‘€�‘€€�€€€€}€}}}}}}}}}�ò×âß}}ww}wwwwwwwwwvvwvvvvvppvppoopvpopopppvpoooyÌüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!! !! !!    >Òüþþþþÿÿþÿÿÿÿý› @Þüýýýýýþÿÿÿÿÿú§€~~~�~€~�����‘‘€‘�‘‘‘‘‘‘‘¡‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¢ôÿÿí¢¡¢¢¢¢¢¢¢¢¢¢¢¢¢£¢¢£¢£¢¢¢££¢¢£¡¢¢¢¢¢¢¢¢¡¡¢¢¢¢¡¢¡¡¢¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¤ÓõýúÙ¤‘‘‘‘‘‘‘�‘�€€~��€�€€€}}}}}}}�ò×âà}}ww}|wwvvwvwwvvwvvvvvvvvvvppppopppupoopolpouÅñýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç;9Îÿÿá@!!!!!!!!!!!   >Òüþþþþÿþÿÿÿÿÿý›@×üýþýýýþÿÿþÿÿú§€~~€~€€‘��‘�~���‘�‘‘¡‘‘‘‘¡‘¡¡‘¡¡‘‘¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¢íÿÿ릣£¡¡£££¢£¢¢£££¢¢¢¢¢££¢¢¢¢¢¡£¢¡¢¢¢¢¢¢¢¡¡¡¡¢¢¢¡¡¢¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡‘¡¡‘‘¤Ø÷ý襑‘‘‘�‘‘‘‘‘‘€€����€€€€}€~}€~}}}}}}�õ×àß}}w}}ww}wvwvvvvvvwvvvvwvvpvvvpppppoppopoooooooyÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!! !!!! ! !    !=Òüþþþþÿþþþÿÿÿü› @Þüýýýýýþÿÿÿÿÿø§€~~€‘‘€‘~�~€€���‘��‘�‘‘‘‘‘¡¡¡¡¡¡‘¡¡¡¡‘¡¢¡¡¡¡¡¢¡¡¡¡£íÿÿ룢¢¢¡¡¢¢¢¢¢¢¢¢¢¢¢££¢¢££££¢¢££¢¢¢¢¢£¢¢¢¢¢£¡¡¢¢¢¢¢¢¢¡¡¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡‘‘‘‘¤æÿþØ‘¡‘‘‘�‘�€�������€€€€€}}}}}}}}}}�òÙßà}www}wwwwwvvvvvvvvvvvvwppvvvvvppppppooooouuloolo{Éòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!9!!!!!!! !!    =Òüþþþþÿþþþÿÿÿý› @Þüýýýþýþÿÿÿÿÿú§~~€�~��~��~~~‘‘€��¡‘‘‘‘‘¡¡‘¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡‘¡¢¡¢¡¡¡¢¢íÿÿ룣¢££¡¢££¢£¢¢££¢££¢¢£¢¢££¢¢¢¢£¢££¢¢¢¢¢££¢¢£¢¢¢¢¡¡¡¡¡¡¢¡¡¡¡¢¡¡¡¢¡¡¢¡¡¡‘‘‘‘¤àýý褑‘�‘‘€�‘‘‘‘€‘€€€€€€€€€}€}}}}}}}}}�òÙÙàw}}wwwwvwwwwvvvvwvvvpvvvvpvppppvvopppopoouollollt{Îúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç;;Îÿÿá@!!!!!! !!! !     >Òüþþþþÿþÿÿþÿÿý› @Þüýýýýýþÿþÿþÿú§}~�~~~~~�‘‘‘‘‘‘‘‘¡‘‘‘‘�¡¡‘‘‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¢¢ôÿÿ룡¡¢¢¢¡¢£££¢¢¢¢¢¢¢¢¢¦££¢¢¢¢£¦¢£¢¢¢£¢¢¢¢¢¢£¢¡¢¢¡¢¢¢£¢¢¢¢¡¢¢¡¢¢‘¡¢‘¡¡‘‘‘‘¡§ôþûؤ‘‘‘‘‘‘‘‘‘���€€�€~€�€€€€€}}}}}}}}�òßÙßwww}wwwwvwvwwvvvvvppvvvvvpvppppppoopppoopooolooolloƒÏúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!! !!  ! ! >Òüþþþþÿþþþÿþÿû› @Þüýýýýýþÿÿÿÿÿú§}~~~~~~~�‘�~‘‘‘��‘‘‘‘‘�‘‘‘‘¡‘‘¡¡¢¡¡¡¡¡¡¡¢¡¡¢¢¢¢¡¡¡¡¢íÿÿí£¢¢¢££¢££¢¢¢££¢£££¦££££¢£££££££¢£¢¢¢£¢££¢¢¢¢¢¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡‘¡¡¤ÙúþõÒ¡‘‘‘¡‘‘‘‘‘�€€€€�‘€€€€~~�}€€}}}~}}}}�òàÙâ}}}wwwwwwvwwwvvvvvvvvvvvvpppppvvpopppoouoopooloooololt”áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@@Îÿÿá@!!!!!!!! ! !!!!     =Òüþþþþÿÿþþÿþÿú›@Þüýýýýýþÿÿÿÿÿú§��~~€€~‘‘���‘�‘‘�‘‘‘¡¡‘¡‘¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢£íÿÿí£¢¢¢¢¢¢¢¢¢¢¢£££¢¢¢£¢¢£¦££££¢¢¢¢¡££¢¢£¢£¢¢¢£¢¢¢¡¢¢¢¢£¡¢¡¡¡¡¡¡¡¢¡¡¡¡¢¡¡§èýýॡ‘‘‘‘‘‘�€‘‘‘‘€‘‘�€€€‘€€€}}€€}}}}}�òà×â}}}w}}}wwwwvvvwwvvvvvvvvppvoppppopppoluoloopollooolloou›çüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!!! !     >Òüþþþþÿþþÿþÿþú› @Þúýýýýýþÿÿÿÿÿú§~~~~�~�‘������‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¡££íÿÿ룣£¢¢¢£££¢¢¢£¢£££¢££££¢¡£¦££¢¢£¢£¢£££¢¢¢¢££¢¢£¢¢¢¢¡¡¡¢¡¡¢¡¡¡¢¡‘¡¡¡‘¤ÙúþõÓ¡¡‘¡‘‘‘‘‘‘‘‘€‘‘‘�~~€��€~€~€}~€}}}}}}}}�òàÓæ†w}}w}w}wwwwwvvvwvvvvvvpvvvpppvoppppopoopooooooollllllllluÅçþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!! ! !!        >Òûþþþþÿþþÿþÿþú›  @Þüýýýýýþÿÿÿÿÿú§���~‘�€~����‘��‘‘�‘‘‘‘‘‘‘¡‘¡¡¡¡‘¡‘¡¡¡¡¢¢¡¢¢¢¡¢¢£¢¢£íÿÿí£¢¢£¢££££¢£¦£££££¢£¢££££££¢££¢££¢££¢£¢¢¢¢¢£¢¢£¢¢£¢¢¡¢¢¡¡¡¡¡¡¡¡‘¢¡¤­íþü楑¡¡‘¡¡¡‘‘‘‘‘‘�€‘�‘‘€€~~€€�€�€~~~}}}}}}}}}�ôâÊè�wwww}}wwww|wwvvvvvvvvvvpvvvvvvpvppppoooooolllloolollllllllyÅñýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!! !! !! !      >Òüþþþþÿþþÿþÿþú›@Þúýýýýýþÿÿÿÿÿú§€~~~�‘�~�~~‘¡‘‘¡‘‘¡‘‘‘¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢¢¢¢¢íÿÿí¢¢£¢¢£¢£££££¢¢££££££¢£££££¢££¢££££¢¢¢££¢£¢£¢¡¢¢¢¢¢¢££¢¢¢¢¢¢¡¢¡¡¢¥ÚûþùÔ¤¡¡‘¡¡¡¡‘‘‘‘‘‘‘‘‘‘‘€€‘‘€~��~€€~€€~}}}}}}}}�ñâÊè�}}}w}w|ww||wwvv|vvvvpvvvvvppvvppopopoppooooooolllllllllllClCyÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!!!! ! !       >Òûþþþþÿþþþþÿþú›   @Þúýýýýýþÿÿÿÿÿú§€€�€‘��‘���‘‘‘‘‘‘¡¡‘‘‘¡¡‘¡¡¡‘¡‘¡¢¡¡¡¢¡¡¡¡¡¢¢¢¢¢¢¢¢£íÿÿ룢¢¢££¢££££££¢£££¦££¢£¦££¦£¦£¢¢¢££¢¢££££££££¢¢¢¢¢¢¡¢¢¢¢¢¡¢¢¡¢¡¡­õþýæ§¡¡¡‘‘‘¡¡¡¡‘‘‘‘‘‘‘‘‘‘€€‘‘€€~�€~}}}}}}�ñèÒñ�}}w}}w}}}wwwwwvvvvwvvvpvvvpvvpppppppooooopooootllollllllllCCllxÉòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@ !!!! !! !!      >Òûþþþþÿþþþþþÿû› @×üüýýýýþÿÿÿÿÿø§~�~~~�~~����‘‘‘‘�‘‘¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢¡¡¡¢¢¢¡¢£íÿÿ릣¢£¢£¢¢£¢£££££££¦£¦£££¢£¦£££££¢£¦£££¢¢£¢££¢¢¢¢¢£¢¢¡¢¡¡¢¢¡¡¡¡¥äûÿ÷ؤ¡¡¡¡¡¡‘‘‘‘‘‘‘‘‘‘‘¡‘�‘‘��‘���€~€�}}}}}}}èèÇò˜ww}ww}ww|wvvwwww|vwvvvvpvppppvpppppppoooooolooolllollllllllCClCCxËòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!! ! !      >Òûþþþþÿþþþþþÿû›  @Ìúýýýýýþÿÿÿÿÿú§�~€~~~~�‘~‘‘��‘‘‘‘‘‘¡¡‘¡¡‘¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¢¡¢¡¡¢¡¢££íÿÿ룢¢£¢¢¦£¢££££££¦¦££¦££¦¦££¢£££¦£££££££¢££¢¢££¢¢¢£¢¢¢¢¡¡¢¢¡¢¢­ôþýè§¡¡¢¡¡¡¡¡‘¡‘‘‘‘‘‘‘‘‘‘‘�‘‘�‘‘‘€�‘�~~�~~€}}}}}}}}}èèÒò˜w}w}}}ww}wvv|wwwvvvvvvvvvvppvvppoppoooooooolooollolllllllCClCCClCC{Î÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;;Îÿÿá@!!!!! !!       >Òüþþþþÿþþþþþþú›@Þüüýýýýýÿÿÿÿÿû§�~�‘�€~~��~‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢¡¡¢£¢¢£¢¢¢¢íÿÿ룣¢£££¦££¢£££££££¦£££¢£££££¢£¦¦¢££¦£££¢¢¦£££¢¢£¢¢¢¢¢¢¡¡¢¡¡¥äûþøÚ¤¡¡¡¡¡‘¡‘‘‘¡¡¡¡¡¡‘‘¡‘‘‘‘‘‘‘��‘�€�~€~~�~}}€}}}}èèÒõ™}}}w}w|w}w}|wvvvvvvvvvvpvvvppppvpopppooooopollooltllllClllolllClCCClƒÏýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!! !       >Òüþþþþÿþþþþþþú›@Þúüýýýýýÿÿÿÿÿû§€~~��������‘‘‘‘‘‘¡¡¡¡‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢£¢¢£¢£¢££íÿÿ릢¢¢££¢£¦¦££££££¦£¢£¦£¦¦¦£¦£££¦£¦££¢£££¢££££¢££££¢££¢¢¢¢£­ôþþ訢¡¡¡¢¡‘‘¡‘¡¡¡¡‘‘¡¡‘‘‘‘�‘‘‘��~��€€‘‘€€€€€€}}}}}}}âèžò™}}w}w}w||||||vwvwvvvvvvvvpvppopoppopppoooooooooollllllllCClllCCCCCCCCz÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!! !       >Òûþþþþÿþþþþþþú› @×úýýýýýýÿÿÿÿÿû§€€~~‘‘��‘‘‘‘‘‘�‘‘¡¡‘‘‘‘‘¡¡¡‘¡¡¡‘¡¡¡¡¡¢¢¢¢¡¢¢¢¢¢¢¢¢¢£íÿÿ릣£¢££¢£££¢£££¦£££¦¦££¦£££££££££££¦£¢££¦£¢£££££¢£¢£¢¢¢¡¥ÝûþúÚ¥¢¡¡¡¡¡¡¢‘¡‘¡¡¡¡‘¡‘¡‘�‘¡‘‘‘‘��‘‘�€€€€~�~~€€€€}}}}âèœñž}}w}|}wwww|wwwvvvvvvpvvpppppppppvpppppppooollollollollllCCClllCCCCCCCÉþ÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!! !      >Òüþþþþÿþþþþþþú› @Þúüýýýýþÿÿÿÿÿú§~€‘������‘¡‘�‘‘‘�‘‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¢¡¡££¢£¦íÿÿ릣£¢£££¦£¦£££¦£¦¦¦££££¦££££££¦¦£££££££¢¦£££¢¢¢¢¢¢¢¢£¢¢­ëþþë­¡¢¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡¡‘‘‘‘‘‘‘‘‘�~~��~€€�~~€~€}}}}ßñœñž}}}ww}wwwwvw|wwwvvpvvvvvvppppvpppoppooooooooollllllollollllllClCCllCxòúÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@@Îÿÿá@!!!!!!!! !      =Òûþþþýÿþþþþþþú› @×úüüýýüþÿÿÿÿÿû§~~~~~�‘����‘�‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¢¡¡¢¢¢¢¡¡¢¢¢¢¦íÿÿ릣¦£££¢££¦£££¦£¦¦£££¦¦¦£¦¦¦¦££¦£¦£££¦£££¢£¦££££¢£££¢£ÚûÿûÚ¥¢¡¢¢¢¡¡¢¡¡¡¡¢¢¡¡‘‘¡¡¡‘¡‘‘‘�‘‘‘‘‘‘~������~~~}~~}}}}}}ßñœñÇ|}}ww}||}|ww|v|wvvvvvwvvvvpppppppopooopopoololllolllllllllllCllCCCCCÃúÏçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!! !!!!!!        >Òûþýýþÿþþþþþþú›  @Þúüüýýüýÿÿÿÿÿú§~�~�������‘‘‘‘‘‘‘‘¡‘¡¡‘¡‘¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¢£¢¡¡¢££¢£íÿÿ릣£££££¦¦¦£¦£££¦¦££¦¦£¦£¦¦¦¦££££¦¦¦£££££¢£¢££££¢£¢¢¥äþþô­¢¡¡¡¢¢¡¡¡¡¡¡¡‘¡¡¡‘¡‘¡¡‘‘‘¡‘‘‘‘‘�‘‘‘‘����€�~~€�€}}}~}}Ùñ™ôÓ}w}}}}wwv|}wvvvw|vvvpvvvvvvvppppvpvpoooooooooollolllllllClClClCCCCCtçòÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!! !!!!       >Òûþýýþÿþþþþþþú›@×úüýüüüýÿÿÿÿÿû§�~�~‘��~‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡¡¡¡¡¡¢¡¢¡¡¡¡¢¢¡¡¢¢¡¢¢¢¢£££££íÿÿ릢¢¢£££££££¦¦¦£¦¦¦£¦¦£¦£¦¦£££¦¦¦££££¦£££££££¢££££¢£êþýꨣ¢¡¡¢¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘‘¡¡‘‘¡‘‘‘‘‘‘��‘��~�~~~~€€€}}~}}}Ùé™ô×}w}w|}}wwww|wvv||vvvvvpvvvvvvppppoopppooooooooolllllllllClllllCCCClÅ÷Èáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!! ! !!      =Òûýþþþÿþþþþþþú›@×úüüüýüþÿÿÿÿÿû§�~~~~‘‘�‘‘‘‘�‘‘¡‘‘¡‘¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¢¢¢¢¡¡¢¢¢¢¢£¢££íÿÿ릣£££¦¦¦£££¦¦¦¦¦¦££¦£¦¦¦¦¦¦¦£¦¦£¦££¦¦££££££¦££¢¢¢£ªõþ䣣£¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘¡‘‘‘‘�‘�‘���‘�~~�€~}€~~~}}}}}}}Ùè™ôÞ}|}}w}ww}ww||vvwwvvvvvvvvpppppppppooopooopoooooooolllllllllCCCCClCtççÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!! !! !!! !       =Òûþýýþÿþþþþþþú›  @×úüüüüüþÿÿÿÿÿû§��~~~������‘�‘¡¡‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢¡¡¢¢¢¢¢¢¢£¢¡¢¦íÿÿ뫦££££¦¦¦££¦¦££¦¦©¦¦¦£££¦¦¦¦££¦££¦¦¦£££££££££££££££êý䣢¡¢¢¢¡¢¡¢¡¢¡¡¡¡¡‘¡¡¡¡‘¡‘¡¡‘‘‘‘‘‘‘‘‘�‘��~~~~€~�~€~~~€~}}~}}}}Ùæ�éß}}}w}}|www|}wwwv|vvpvpppvppvpppppppooooooooollloollllolllCClClCCCÅòÅçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!! !        >Òûýþþþÿþþþþþþú› @Þúüüüüüýÿÿÿÿÿû§~~��~~�‘�‘�‘�‘�‘�‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¢£¢¢¢¢£¢¢£¦íÿÿ릣£¦£¦¦£¦¦££¦¦£¦¦¦¦¦¦££¦¦£¦¦¦¦¦££¦¦££¦¦£¢££££££££¢¢¨ûø¨¢¢¢¢¢¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘‘‘¡�‘‘~‘��~���‘�‘~~��~~}~}}}}}ßâ�éñ�}}}}wwwww|vwwvvv|vvvvv|pvvpppppppppoooopopoooollollllllllllCClCCtáßÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!!!         >Òûýþþýþþþþþþþú›   @×úüüüüüýÿÿÿÿÿú§~~~~~‘‘‘�‘‘‘‘‘‘¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¡¡¡¢¡¢¢¢¢£¢¢¢£¦ëÿÿ릣¦£££¦¦¦£««¦£¦£¦¦¦¦¦¦¦¦¦¦££¦¦£¦£¦¦£¦¦£££¦££¦¦££¢¢¢£ãþ꣢¢¢¡¢¡¢¢¡¢¡¡¡¡¢¡‘¡¡¡¡¡‘‘‘‘‘‘‘‘¡¡‘‘‘�‘‘‘��~��~€�~~~~}}}}}}žòÙßúÙ™}}|vv|wwwvvvvvvvvpvvvpvvvpppppoooopooooololloollllollCllClllCCÅñÅçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;;Îÿÿá@!!!!!! !!       >Òûþýýýþþþþþþþú›  @Þúüüüüüýÿÿÿÿÿû§~~~����‘‘‘�‘‘‘‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢£¢¡¢¢¢¢¢¢£¢£££¢£íÿÿ릦£¦££¦¦¦££¦¦¦¦£¦¦¦¦¦¦¦¦¦¦¦¦£¦¦¦¦££¦¦££¦£££££¢££££¢£¨ùûÔ¢¢¡¡¢¢¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡‘‘‘‘‘‘‘�‘�~��~~~�~�€~€}~}�×ñè™}™â÷òßž�}}}}vwvw}w|vwvwvpvvvvppppppppooooooopoloolllllllllllllllClluáÞ�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!! !! !       =Òûýþýýÿþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§�~~�‘�~~�‘‘�‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¢¡¡¡¢¡¢¢¢¢¢¢¢£¢£££¢££«íÿÿ릣£¦£¦££¦¦£¦¦¦«¦¦¦¦¦¦«¦¦¦¦«¦£¦¦¦¦£¦¦££¦¦£¦¦££££¢£££££Úýí¦£¡¡£¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡‘‘‘�‘‘‘���~~~~~~�~~€}}€žâòà˜}}}žÙñòèÓ�}wwwwvvwwvwvvwwvpvppppppooppoooooooolollllllllllllClllCCC–ç”ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!!! !!         =Òûþþýýþþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§�~�~‘���~‘‘�‘‘‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¡¢¢¡¢¢¡¡¡¢¢¢££¢¢¢£¦íÿÿ릦¦££«¦¦«¦¦«¦¦¦©¦««¦¦¦¦£¦¦©©¦¦£££¦¦¦¦£¦¦££¦£££££¢¢£¢¡ªõýÚ¢£¢¢¡¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘¡‘‘‘�‘�‘����~��~�~~�‘~~€}}~€€šàôèÇ�™šžÒž™��žàòôÙ™}wwwvvwvvvpvvvpvppppppppppoooooooooooloolllllllllllllCtßÌÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!! !         >Òûýýýýÿþþþþþþú›    @×úüüüüüýÿÿÿÿÿü§��~‘~�‘‘�‘‘‘‘‘‘¡¡¡‘¡¡¡¡¡‘¡¡¢¡¡¢¡¡¢¡¡¡¡¢¢¢¢¦¢¢¢¢¢£££¦íÿÿ릣¦£¦¦¦£¦¦£¦«¦¦©««¦¦©¦©¦¦«¦¦£©¦«¦¦¦¦¦£¦¦¦¦££¦£¦¦£££££¢Ôýø¨¢¢¡¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘��~‘‘‘�~�~~€€~�×ñèÊ�žàò÷÷ú÷÷ñÙž�™×èôßœwww||vvwvvvpvpvpvppppppooooooolooooloollllllllCClCll›ç”ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!!        >Òûýýýýÿþþþþþþú›    @×úüüüüüýÿÿÿÿÿü§‘~��~��‘‘‘‘�~�‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢££¢££¡¢££££¢£íÿÿ릦¦£¦£¦¦¦¦¦«©¦¦¦¦¦¦©©©©«©«¦¦¦©¦¦¦¦¦¦£¦¦¦£¦¦£££¦£££¢£¢¢£ëþ棢¢¢¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡‘¡‘‘¡‘‘¡�‘‘‘‘‘~~~€~~€~}~§èò×™žâ÷÷è×ÒÇÒÙèõõæÊ˜�ÓñòߘwvvvvvvvvpvvvpvpvvvpppooooooooloollloolllllllCCClußÉÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!!!!          =Òûþýýýþþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§�~~‘���~�‘�‘‘¡¡¡¡‘¡¡‘¡¡¡‘¡¡¢¡¡¡¡¢¢¡¡¢¢¡¡¢¢¢£¢¢¢££££¦íÿÿí¦£££££¦¦¦¦¦«¦¦©¦¦«¦¦©©«¦¦¦¦¦«¦«¦¦¦¦¦£££¦£££¦£££££££££££­ûûÔ¢¢¢¢¡¡¡¡¢¡¡¡¡¢¡‘¡¡¡‘¡¡‘¡‘‘¡¡‘‘‘‘�‘�~��‘€��~�~€~�×õè§™Ùõòßž}}}}™Óè÷ñ×™�ÊôòÌ�|vvvvvpvvpppvpppppoppppopololololllolllolllllCl›ß”òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!!       =Òûýýýýþþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§~~~~��~�‘‘‘‘‘¡‘‘‘¡¡‘‘¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¢¢¢¢¢£££££££¢£¦¦íÿÿí«¦££¦¦¦¦¦¦¦¦¦¦©«©©©¦«¦¦¦¦¦«¦®©¦¦¦¦¦¦¦¦¦¦£££¦£££¢££££££££ãþí£¢¢¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘‘‘‘‘�‘‘‘���‘€�‘�~~€�~€™æõÙ™Óô÷ß™}}}}}}}}}}�žáòôÙ™œß÷èžwv|vvppvpvvvpppppppopopoloooolllllllllllllCCCuÞÆÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!! !        >Òûýýýýþþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§���~�‘‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢£¢¢¢¢¢¢¢£££££¦íÿÿë«££¦©¦©¦©¦«¦«©¦©«©«©©¦««¦««¦«©¦¦¦¦¦¦¦¦¦¦¦£¦¦£££££££¢£¢¢¢¨õþÝ¡¢¡¡¡¢¢¢¡¡¡¡¡¡¡¡‘‘¡‘¡¡‘‘‘�‘‘‘‘‘~�~�~~‘�~~€€§éôÒšà÷èž}}}}}}}}}}}w}œÞõòטÇñ÷ÊwwwvvvpvvvpppppppoooooloooooollooolllllllCCl›ß”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!! !    =Òûýýýýþþþþþþþú›    @×úüüüüüýÿÿÿÿÿû§��~��~‘‘���‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¢¢£¢¢¢¢¢£¢¢££££¦íÿÿ뫦£¦¦¦¦£¦¦©¦¦©¦©®¦¦©«®©¦©©¦¦¦¦¦©©«¦¦££¦¦¦££¦¦£££££££¢¢¢¢¢Øýùª¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘����‘�‘‘�~~~€�Òõô§Óò÷Ù�}~}}}}}}}|}}w|w|w}™ßòñÊœß÷Ù†vvvvvpppvpopppppopoooooloooollllllllllCCluÞ�Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!      =Òûýýýýþþþþþþþú›  @Ìúüüüüüýÿÿÿÿÿû§��~‘‘����‘¡¡‘‘¡¡‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢¢¢¢¢££¢£¢¢£££¦íÿÿí«¦¦¦£¦¦¦¦¦¦««©«¦¦¦¦®®®®©©«¦«©©««¦¦«¦££¦¦«££££££¦£¦¦£¢¢¢££¦ëþ࣢¡¢¢¡¢¢¡¡¡¡‘¡¡‘¡¡¡¡‘‘‘‘‘‘�‘‘¡‘�€~���~~~€§õé§Ù÷ñž~}}}}|}}}}}}w|w}}|w|}žâ÷èÇÞ÷â†vvvppvpppppppppooppopoooooolllllllllllll›Ì–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!!!!      =Òûýýýýþýþþþþþú›  @Ìúüüüüüýÿÿÿÿÿû§~~~~~�‘‘�‘‘��‘‘‘‘¡¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¢¢£¢¢£££££¢££££¦íÿÿ릦£¦¦£¦¦¦¦«©«©©©©«¦««©©©¦®©©¦¦¦«¦£¦©¦¦££¦¦£¦£¦£¦££¦££¢££¢¢­ûû­£¢¡¢¢¢¢¡¡¡¡¡¡¡‘¡¡‘¡‘¡¡¡¡‘‘‘�‘‘�‘��~~�~�§òôÒèú♀~~}}}}}}}|}}}w}}w}}||}Êô÷âñþâ†pvvvvvvpopppopoppppoolllllllllllllllCCuÞ›Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!! ! !!      =Òûýýýýþýþþþþþú›     @×úüüüüüýÿÿÿÿÿü§~���‘�����‘‘¡¡‘‘‘¡‘‘¡‘¡¡¡¡¡¡¡¢¢¡¡¢¡¢¢¢¢¡¢¢¢£¢¦££££¦¦íÿÿ뫦¦¦¦¦¦¦«¦©¦¦©©««©®©©©©«©®©©©©««¦¦¦«¦¦©¦££¦¦££££££¦£¦¢££££¢æþí¥¢¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘¡‘‘�‘‘‘‘‘‘�‘���‘~~‘èýÙô÷×�~}}}}}}}}}||}}}|wwv||vwvv˜ßúþÿþç˜vvpppvvoppppppooooooollolllololllllll�Ì›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!! ! !         =Òûýýýýþýýþþþþú›    @×úüüüüüýÿÿÿÿÿü§����‘‘‘��‘‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¢¢¢£¢¢££££¢¢££££¦íÿÿ릣¦¦¦¦©©¦¦«¦©«¦©®®®©«©®«¦©«®¦«©«¦©©©¦£¦¦¦¦¦£££££££££££¢¢¢¢¢¨ùýØ¢¢¡¢¡¡¡¡¡¡¢¡¡¡¡‘‘‘‘¡¡‘�¡‘‘‘���‘‘��€�€žüÿûõÒ€}}}}}}}}}}}}ww|w}||vvw}wwww�çúÿÿòÇw|vvppppppppppopoooooolllolllllllllyÞ›áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!     =Òûýýýýþýþýýþþú›    @×úüüüüüýÿÿÿÿÿü§‘�~�‘‘‘‘�‘‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¢¢¢¢¡¡¢¢¢¢¢¡¢£££££¢£¦£¦¦íÿÿ뫦¦£¦¦«¦¦««©®©®®©©®®®©®©©®©©«¦¦¦¦£¦¦«¦¦¦¦££¦¦££¦£¢££¢£¢£££¢¢Øþõ¥¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘‘‘‘‘�‘‘�����€��èÿý蚀}}~}}}}}}}}}}}}||}}w|w||wvwvw}�èÿÿüâœwvpvvpoppoppooooloooolllollllllllÆÌ�üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!! !         =Òûýýýýþýýýýýþú–      @×úüüüüüýÿÿÿÿÿü§��~���‘‘‘‘�‘‘‘‘¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¢¢¢¢¢£¢¢£¢££££££££¦íÿÿ뫦«¦¦©©«¦©©©«©®©©©®©®©©©®®«¦«©©«©¦©¦¦©©¦¦¦££¦¦¦£££¦£¢¢¢£¢¢£££íþ䢢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡‘‘��‘¡‘~~�~~€Óýüב€€~~~}}}}}}}w}}}ww|w}}|w|ww|v|wv†çÿÿÿüç�wpppppppppoooooooololllllllCClyÏ›áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!! !      =Òûýýýýþýýýýýþú–    @×úüüüüüýÿÿÿÿÿü§���‘����‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¡¡¢¢¢¢£££¦££££££¦íÿÿí¦¦¦©£¦¦¦©®¦©©©«®¦©®©«®©¦©®®©®©¦«©©©©©©¦¦£¦¦¦££££££¦£££¢¢£¢¢¢¢Ûûû­¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘���‘‘‘��€‘Óúÿæ‘�€~}}}}}}}}}}}}}w}www|vwvv|||vvvvvÇþÿÿÿÿýè�wpopopooooopolooolllllllllllÉÞÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!! !! !        =Òûýýýýþýýýýþýú›   @×úüüüüüýÿÿÿÿÿü§‘~~�‘�‘€‘‘‘‘‘¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡¢¢¡¢¡¢¡¡¢£¢¢£££££££¢£££¦íÿÿ릦£¦¦©«©¦©©¦©©©©©®®®«©©©«©®©®©«©©¦®©©¦«¦¦¦¦¦¦££¦£££££££¢£¢¢¢¢£ãþí¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘€‘§ÙúÿþÙ�~~€~}~~~}}}}}}}}}}}}}ww|||w|vvwwwvvwvœüÿÿÿÿÿÿýè�yvpopoooooooollllllolllll{Ï›çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;;Îÿÿá@!!!!!!      =Òûýýýýþýýýýýýú›        @×úüüüüüýÿÿÿÿÿü§~�‘�‘‘‘‘�‘¡‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¡¢£¢¢¢¢££¢££££¦¦¦íÿÿ뫦¦¦¦«¦©©¦®®®««©®©©©«®®®©©©«®©©««««¦«¦¦©¦¦¦¦¦¦¦£££¢££¢££¢¢¢¡¢¡§ùþÚ¢¡¡¡¡¡¡¡‘¡¡¡‘‘‘¡¡‘‘¡‘‘‘��‘~‘šÙÚÙüÿþÓ~~~~}}}}~}}}}}}}}}}}w}}}}w}}wvw|vv|wwwv†÷úÿÿÿÿÿÿÿýç�yoopoooooooolllllllllClÉÞÉýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!! !!! ! !   =Òûýýýýþýýýýýýú›       @×úüüüüüýÿÿÿÿÿü§��‘�‘�‘‘‘‘‘‘‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¢¢¢¢¢¢¢¡¢££¢¢££££¦££íÿÿ뫦¦¦¦¦¦¦¦©©©©®®®©®®®®®®®®®©«««©«©«¦¦«¦££¦£¦££¦££££££¦££¢¢¢¢¢¢¡¡Úþø¨¡¢¡¢¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘�‘‘‘�‘¤ÓæÙÓõÿÿþ×~~}~�}}}~}}}}}}}w}}|}}||w}w||}w|v|vvv{ñÞüÿÿÿÿÿÿÿÿýç�vpopololoolollllllll{á�ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!! !! !  =Òûýýýýþýýýýýý÷›          @Ìúüüüüüýÿÿÿÿÿü§�~��‘‘�‘���‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¡¢¢¢££¢¢¢¢£££¦¦££££¦ëÿÿ릫«¦¦©©«¦¦¦©¦®®««®®®®«®©©®©©©¦¦«¦¦©©¦¦«¦££¦£££££££¦££¢¢¢¢¢¢¢¢¢¢£íþ꣡¡¡¢¡¡¡¡¡¡¡‘‘¡¡¡‘¡‘‘‘‘‘§æàÒÚûÿÿÿþ×€�~~�~}~~}}~}}}}}}}||}w|wwwvv|}vvvvvp{á�òÿÿÿÿÿÿÿÿÿÿüç›vooloooooollllllltÌÞÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!! !  =Òûýýýýþýýýýýý÷›       @Þúüüüüüýÿÿÿÿÿü§~~�~���‘‘‘‘‘‘¡‘‘¡¡¡¡¡¡¡‘¡¢¡¡¢¡¡¡¢¢£¡¢¢£¢£¢££¢££££££¦íÿÿí«¦£¦¦¦©¦¦®®®©©®®®®©®®®®®©©®®©®®®«©©¦¦«©¦©¦££¦¦£¦¦££££££££¢££¢¢¡¢­ûüÔ¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘‘‘¡‘‘‘šÙæØÓéþþÿÿÿþÙ€~~~~}~€}}}}}}}}|w|}}}||||www|}vv|w|||vv{ßœáÿÿÿÿÿÿÿÿÿÿÿÿüá›voolloloollllll{çÇòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@=Îÿÿá@!!! !!! !    =Òûýýýýþýýýýýý÷›                  @Ìúüüüüüýÿÿÿÿÿü§~~~‘¡��‘‘‘‘‘‘¡¡‘‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¢¢¢££££££¢£¦¦¦íÿÿë««¦«¦¦«©©©©©¦¦©®©®®®®®®®®®®®®©©©©««¦¦¦¦¦¦¦¦¦£¦££¦£££¢¢£££¢¢¢¢¡¡¡£àþõ¥¡¡¡¡¡¡¢¡‘‘‘‘¡¡‘¡‘�¤ÓèàÒàûþòÓõÿÿÿà‘~~�~~}~~~}}}}~}}||}}}}}|||w|}w||vvvvvvv}Þ™Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿüá”ulooooloollltÎáÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! !! ! ! ! =Òûýýýýþýýýýýý÷›                     @×úüüüüüýÿÿÿÿÿü§‘���¡‘��‘‘�‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¢¡¢¡¢¢¢¢¢¢¢¢¢¢£££¢£££¢£¦¦«íÿÿ뫦¦¦©¦©«¦«««©®®®®®®®®©®®®®©©©©««¦©®«¦¦¦¦¦¦«££¦¦£££££££¢¢¢¢£¡¢¢¢¡¡¥õþÚ¢¡¡¢¡¡‘‘‘¡¡¡‘¡‘‘¡§æéØÓõþûÙ¤‘æÿÿÿâ€~~}}~~}}}}}}}}}}}}}}ww|}||vv|vvv||vpwߘÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß›vllllollll–ñÉ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!! !      =Òûýýýýþýýýýýý÷–                  @×úúüüüüýÿÿÿÿÿü§�����‘‘‘‘‘‘‘¡‘‘¡¡‘‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¢¢£¢£¢¢££¢£¦£££££¦íÿÿ뫦«¦¦¦«¦¦©©««®©©®®®®®®®®®®®®®«¦©©©©¦£©¦¦¦¦«¦¦£££¦£¦££¢££¢¢£¢¡¢¢¢¢¢Ôýû¬¡¡¡¢¡¡¡¡¡¡‘¡‘¡¤ÙôàÒâýýé§‘��Òýÿÿè~~~~}}}}}}}}|}}}}}}|w}}|wv|vv|v|vvvwß›�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüá”uolllllyáçßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!! ! !   =Òûýýýýþýýýýýý÷›                                 ;×÷úüüüüýÿÿÿÿÿü§��‘��‘‘‘‘‘‘‘¡‘�¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¢¢¡¡¡¢¢¢£¢¢¢¢£££££££¢¦ëÿÿ뫦«¦¦¦¦©¦©«®©©©®®®®®©©®®©©®©®©««¦¦¦¦©¦¦¦¦£££££££££££££¢¢£¢¢£¢¢¢¡¢¢¥ëþ餡¡¡‘¡¡¡¡¡¡¡¤ÔéíØØ÷þ÷ؤ‘~��‘Ùýÿ耀~~~~€}}}}}}}}}|}}||}|v}|||vwvvpvvvvßœ˜üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”ullllÆ÷Þ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!! !   =Òûýýýýþýýýýýý÷–                                               ;×úúüüüüýÿÿÿÿÿü§~����~�¡‘�‘‘�‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢££££¢££¢£££¦£¦íÿÿ릦¦¦«¦«©¦©©«¦©«©©®®®®©®®®®®«©©©®©¦¦¦«¦¦©¦¦¦¦¦¦££££££¢¢££££¢£¢¢¢¢¡¢¢¨ûýÔ¡¢¡¡¡¡¡¡¡‘§æõæÓéýüæš�~‘�~��‘Ùþñ‘~€€~~}}~}}~}}}}}}}|}|}|||||}v||vvvvvpvvÞ�˜üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”ulyñòâþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!! !   =Òûýýýýþýýýýýý÷–                                           ;Ìúúüüúüýÿÿÿÿÿü§��~~‘�‘‘~‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢£¢£¢£££¢££¦¢££££¦íÿÿ뫦¦¦«¦¦«©©««©©©©«©©®®®®®®©©©®®©©®©«¦«¦©¦¦¦¦¦¦¦££¦££¢£¢£¢¢¢£££¢¢¢¡¡¡¢äþõ¥¡¡¡¡¡¡¡¤ØôíØàüþôÒ‘‘�‘~���~~šúô‘~~~~~}}€~}}}}}}}}}|}||ww||vw||vvwvvvvÞ�†üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáÆÞüçüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@! !!! !  =Òúýýýýþýýýýýý÷›                                              ;Þ÷úúúüüýÿÿÿÿÿü¨����‘��‘‘¡‘‘¡‘‘‘‘¡‘¡¡¡¡¡¡¡¢¢¡¡¡¢¡¡¢¢¡£¢¢¢£¢¦£££££££¦íÿÿ릦£¦¦¦¦«¦«®«©®©©©®®®®®©®©¦©©®©¦©®«««¦¦¦¦£«¦¦¦£££¦£¦£££¢£¢¢£¢¢¢¢¡¡¢¡¡¥õþ㢡¡‘¡¡§èõàÚõþûऑ���‘������¤õô�€~~~}}}}}}}}}}}}|}}}}||||||||vvwvvvvÞdžúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!     =Òûýýýýþýýýýýý÷–                                                   ;Ìúúúúúüýÿÿÿÿÿü§��‘��~‘‘‘¡‘‘¡‘‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢£££¢£¢£££££¦«íÿÿ릦¦¦¦¦¦¦¦©¦«©®©©®®®©®«¦©©®®©©©©¦¦©¦¦¦¦££¦¦¦£¦¦££££££££¢£¢£¢¢¢¢¡¢¡¢¢¡¢Øþû­¡¡¡¥àõõäéþþé§¡�‘‘�����‘~~�‘ôõ�~~~~}~}}}}}}}}}}}}}}}}}||||v|v|vv||vpvvÞÊ{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!! !  =Òúýýýýþýýýýýý÷–                                                  ;Ìúúüúüüýÿÿÿÿÿü§‘�‘�~�‘‘�‘‘�¡¡¡‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¢¡¢¢¢¢£¢¡¢£¢£¢££££¦íÿÿ뫦©©¦¦¦©«¦©©©©¦«©®©¦®©©©®¦©©¦¦¦¦©«¦«¦««¦££¦££¦££££££¦£¢¢¢¢¢¢¢¢¡¢¡¢¢¢¡¤æþô¥¥ØõûéëýþøÚ¤‘‘‘‘‘‘�����~~�‘èõ¤~�~~~}}}~~}}}}}}}w||}w|}|||}|vvvvvpvvpÞ×{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!! ! ! =Òúýýýýþýüüýýý÷›                                                 ;Þ÷úúúúüüÿÿÿÿÿü§~~��‘�‘�‘‘�‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡££¢¢¢¢¢¢¢¢¡¢¢£££££¢¦íÿÿë«©¦¦¦©©««©®©«©©©¦©©¦®®¦©®«©®«««®¦¦©¦¦¦¦¦¦¦£££¦¦££££££££££¢£¢¢¢¢£¢¢¢¡¡¡¨ûþí÷þüõûþüæ§¡¡¡‘‘�‘‘��~‘~�~�‘æõ�~~~€}}}}}}}}}}}}}w}}}|}||vw|||vvvv|vppÌÌwòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! ! !!!!!  >Òûýýýýþýüüýýý÷–                                          ;Ì÷úüúúüüÿÿÿÿÿü§‘��~��‘‘�‘‘�‘‘‘‘¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¡¡¢¡¢¢¢£¢££¢¢£££££¦¦«íÿÿ릦£¦««¦¦¦¦¦¦©¦««®©®©©©«©©¦«¦®©¦®©©¦£¦¦¦¦««£¦£¢£¦¦££££¢£¢¡¡¢¢£¢¡¢¢¡¢¡¡¡¢äþÿÿÿýþû謡‘‘¡‘‘�‘‘��~�‘�~~~‘àõ™~~~~}}}}}}}}}|}|}w|||w}}w|||w|vvvvpppÌÞwñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!     =Òúýýýýþýýýýýý÷›                            B@       ;×÷úüúúüüÿÿÿÿÿü§�~��‘‘‘‘‘‘‘‘¡¡¡‘¡¡‘‘¡¡¡¢¡¡¡‘¡¡¢¢¢¡¡¢¢¡¢¢¢£££¢£££¢¢£¦ëÿÿ뫦¦©¦¦¦¦¦©¦©«¦¦««©«¦®®©©®©©¦©©¦¦¦¦«¦«££££¦¦££££££¢££££¢£¢¢¢¡¢¡¢¡¡¡¢¢¡¡¡¥æõõõé৤¡¡‘‘¡¡‘‘‘‘‘‘‘��~€~�€Ù÷™~}}}}}}}}}}}}}}}}}}}|vvv||vvv|vpvÊßwñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!! !! ! =Òûýýýýþýüüüýý÷›                          !      ;×÷úúúúúüÿÿÿÿÿû§~�~��~�‘‘�‘�¡�‘¡¡¡‘¡‘¡‘¡¢¡¢¢¢¡¡¡¡¢¢¡¡¢¢¢¢¢¢££££££££«íÿÿ릦¦¦¦¦¦¦¦©©¦©©««¦©®©©¦¦¦««©«©«««©¦¦¦«©¦££¦¦££¦££¢¢¦£¢£¢£¢¡¢¡¢¡¢¡¢¢¡¡¡¡¡¡¢¢¥¤¡¡‘¡‘¡‘‘‘‘�‘‘‘�‘‘���‘~~�Ù÷¤~~~~~}}}}}}}}}}}}}}}}}|||v|vvv|vvvvvvwÇâwçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!! !  =Òúýüüýþýýýýüý÷›                                    ;×÷úúúúúüÿÿÿÿÿû§‘��‘‘�‘‘�‘‘‘¡¡¡¡‘‘‘¡‘¡‘¡¡¡¡¡¢¢¢¡¡¡¡¡¡¡¡¢¢¡¢£££££££¦¦ëÿÿ릦¦¦¦¦«¦¦¦¦¦¦©¦¦¦¦©¦©«««©««¦¦©¦¦©¦«¦¦¦¦¦¦¦£££££££££££££¢¢¢¢¢¢¡¡¡¢¡¢¢¡¡¡¡¡¡¡‘‘¡‘¡‘¡‘‘‘‘��‘‘‘‘~�‘€‘��€Óõš~~}~}~}}}}}}w||||}}}||wwvwvvvvvvvÇçwâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! !! ! =Òûýüüýþüýýýüý÷–                        ;Ì÷úúúúúüÿÿÿÿÿü§‘�~�‘�‘��‘‘‘‘‘‘¡‘‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢££¢¢£¢£¢££££¦ëÿÿ릦¦££¦¦«©¦¦©¦©««©©©©©©«©©¦«¦«¦£¦©¦¦¦©¦£¦¦¦¦£¦£££¦£¢£¢¢£¢¢¢£¡¢¢¢¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘‘‘‘��‘~�‘���~~Ó÷™~~~~~}}}}}}}}}}}}}}}}|||}}|vvvpv|v|ppžçyßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;!!!!! !   =Òûýýýýþýüüüýü÷–                      ;Þ÷úúúúúüÿÿÿÿÿü§��~�‘�‘‘‘‘‘‘‘‘‘‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢¢¢¢¢¢¢£££££¦íÿÿ릣¦¦£¦¦¦«¦¦¦¦©©«¦«¦¦¦«¦¦©¦¦¦©¦¦©¦¦¦¦¦¦£¦£££¦¦££££¦££¢¢¢¢¢¢£¢£¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘�‘‘‘‘‘‘‘��‘‘‘€�~~~Òú™~~~€~}}}}}}}}}}}}}}}w}}|www}v||vv|vvvvv�ç{ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! ! !     =Òúüüüýþýüüýüý÷–               ;Þ÷úúúúúüÿÿÿÿÿû§�~����‘‘�‘‘�‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¢¢¢¡¡¢¢¢¢¢¢¢¢¢¢££¢££¦íÿÿ릦¦£¦¦¦£¦«¦££¦¦«¦¦«««««««¦«¦«¦¦¦¦¦¦¦¦¦£¦££¦££££¦£££¢¢£¢¢¢¢£¢¢¡¡¢¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘‘‘‘‘‘‘‘‘‘��~�~~~Ò÷™~}}}}}}}}}}}||www}}w|||v||vvvvvv|œñ{Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!  =Òúýýýýþüüüüýü÷–           ;×÷úúúúúüÿÿÿÿÿû§�~��~�‘�‘‘�‘‘‘‘‘¡‘‘¡¡¡¡¡¡¡¡¡¢¡¡¡¢¡¢¡¢¢¢£¢£¢££¢£££££¦íÿÿ릦¦¦££¦¦¦©¦¦¦«¦¦¦¦©©¦«¦¦©«¦©«¦¦¦¦£¦£££¢¦¦£¦£££££££¢¢¢£££¢¢¢¡£¢¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡�‘�‘�‘��‘‘���~~�~ž÷™~~~~~~}}}}}}}}}}}}}|w|||||w|v|w|vvvpv›è†Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;!!!!!  =Òúýýýýþüüüüýü÷–              ;×÷úúúúúüÿÿÿÿÿü§�����~�‘��‘‘‘‘¡‘¡¡‘‘¢¡‘‘¡¡¡¡¡¢¢¡¡¢¡¢¢¡¡£¢¢¢¢¡¢£¢£££¦íÿÿë«££¦¦£¦¦£¦¦¦¦©¦¦¦¦«¦¦¦¦¦©¦£©¦¦©¦¦¦£¦¦¦¦¦¦¢£££££¢££¢¢£££¢£¢¢¢¢¢¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘�‘����‘�~�~�~žõ§~}~~}}}}}|}}}|||}w|||||vvvv|vvvvp˜ñ†Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá; !!   =Òúüüüýþüüüüüý÷›      ;Ì÷úúúúúúÿÿÿÿÿü§~~�~‘��‘‘‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¡¢¡¡¢¢¡¡¢¢¡£££¦££¦íÿÿ릣££££¦¦¦¦¦£¦¦¦«£¦¦¦£«¦©¦«¦¦¦¦£¦¦¦££¦¦££££¦¦£££££¦£¢£¢¢¢¢¡¢¢¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘¡¡¡¡¡¡¡‘¡¡‘‘‘‘‘‘~���~~�~€šõ§~~~}~}}}~}}}}}}}|}|}w||}||||vvv||vvvv˜ò˜Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! !   =Òúýýüýþüüüüüü÷›   ;Þ÷úúúúúüÿÿÿÿÿû§�~~��‘‘����‘¡‘‘‘¡¡‘¡¡¡¡¡¡¢¡¡¡¡¢¡¡¢¢¡¢¢¢£££¢£££££££¢¦íÿÿ릣££¦¦££¦¦£¦©¦¦©¦¦¦«¦¦¦¦££¦¦«¦¦¦¦£¦¦¦£¦¦¦££¦¦¢¢££££¢££¢¢¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡‘¡‘‘‘‘‘‘���‘¡‘��~��‘€�šôÒ~~~~}}}~~}}~}s}}ww||}||v|w|||v||vv|vpvvp˜÷�Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! !! =Çúüýýýþüüüüüü÷–    ;Þ÷úúúúúúÿÿÿÿÿû§~~~�~~�‘�‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¡¢£¢¢¢£¢¢£íÿÿ릣¦££££££¦¦¦¦£¦¦«¦¦£¦¦¦¦¦¦¦«£¦¦£¦¦¦¦¦£¦£££¦££££££¢¢¢¢¢¢¢££¢¢¢¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘‘¡¡¡‘‘‘‘���‘�‘�~‘~~~~™õÓ€�~~}}}~}}}}}}w}}}w|}|w}}||w||vvvvvpvpp˜÷ÇÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! =Òúüüüýþüüüüüü÷›   ;Þ÷úúúúúüÿÿÿÿÿû§�~~��€~‘��‘�‘‘‘‘‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢£¢¢¢¢££¢¢¦íÿÿ릣££¦££¦£¦«££¦¦«¦££¦¦£¦¦¦¦£¦¦¦¦¦¦¦££££¢£¦££££££££¢¢¢¢££¡¢¡¢¢¡¢¢¢¢¡¡¡¡¢¡¡¡¡¡¡‘¡¡¡¡‘�‘‘‘‘‘‘�����~�~€~~¤ò×~~}~}}}}}}}}}}}ww}w|}w||||||vvvvvvpp†÷×Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!    >Òúüüüýþüüüüüü÷–   ;×÷úúúúúúÿÿÿÿÿû§�������‘‘�‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¢¢¢¢£¢££¢¦ëÿÿ룣£££¦££££¦£¦«¦¦¦¦¦¦¦¦©£¦¦££¦£££¦££¦££££££¦££¢££¢¢¢¢¢¢¢¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡‘‘¡‘‘¡‘‘¡‘‘‘‘��‘�~�‘‘�€�~‘òÙ~}~}}}}}}s}}}}|}}ww|||w|||vv||vvppvv†úßÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!  !! =Çúüüüýþüüüüüü÷– ;Ì÷úúúúúúþÿÿÿÿû§~~~~�������‘‘‘‘‘‘‘‘‘¡‘‘¡¡¡¡‘¡¡¡¡¢¢¡¢¢¢¡¡¡¢¡¡¢££¢£££¦ëÿÿí¦¦££££££££¦¦£¦¦¦¦¦¦«£¦¦¦¦¦¦¦¦¦££¦¦££¦¦¦£££¦£££¢£££¡¢¢¢¢¢¢¢¢£¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡¡¡¡‘‘‘‘‘¡‘‘�‘�~~��~�‘~~~‘õæ€~€}}}}}}}}}}}}w}}}}}��˜˜˜œžÇÊÞâý÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!  =Çúüüüýþüüüüüü÷– ;Ì÷úúúúúúþÿÿÿÿû§�~�������‘‘�‘‘‘‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¢¡¡¢£¢¢£££¦íÿÿí¦£££££££¦¦¦££¦¦¦¦££¦££££££¦¦£¦£¦¦££¢£¦£££££££¢¢¢¢£¢¢£¢¡¢¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘‘��‘�‘‘��~~~�~€~‘õôžšž§žžžÇÒÒÊÊÒÓ×××Ùßßààâèèñéôòõ÷÷÷úüýýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!   =Çúüüüüþüüüüüü÷– ;×÷úúúúúúþÿÿÿÿû§�~�~�~��‘���‘‘‘‘‘¡‘‘¡¡‘¡¡‘¡¡¡¢¡¡¡¡¡¡¡¢¢¢¢¢¢¢££¢¢£¢¢£íÿÿ릣££££££££¦££¦¦¦££¦££¦¦£¦¦¦¦££¦£¦££££££££¢¢¢£££¢¢¢£¡£¢¢¡¢£¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘¡¡‘‘¡¡�‘‘��‘�~~�~~~~~€æõèèèééééôôôôôôôõòõûþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! ! !   =Çúüüüüþüüüüüü÷– ;Þ÷úúúúúúþÿÿÿÿû§~~�~�~�‘��‘�‘‘‘‘‘¡‘‘¡¡‘¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¡¢¡¢¢¢¢¢¢£¢¢£íÿÿí££££££¢££££££££¦£££££¦¦£¦¦£¦££¦£££££¦£££££¢£¢¢££¢¢£¢¢¢¢¡¢¢¢¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡‘‘‘‘‘�‘‘~~�‘��‘�~~~~€¤šš§ššš™™™™™™™™˜˜˜™èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!   =Òúüüüüþüüüüüü÷– ;Þ÷úúúúúúþÿÿÿÿû§~�‘�~�����‘‘�‘‘‘‘‘‘‘‘‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¢¡¢¢¢¢£¦íÿÿí£££££¦£££££¦£££¦¦££¦£¦¦¦¦££££¦£££££££££¢£££¢¢£££¢¢¢¢¢¢¢¢¢¡¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘‘‘‘�‘‘���‘‘~~��~€~~~~~~}~~}}}}}}}ww}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!! !  =Òúüüüüþüüüüüü÷– ;×÷úúúúúúþÿÿÿÿû§~~����~€‘‘‘¡‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¢¡¢¡¢¡¡¡¡¢¡¡¢¢¡¢¢¢¢¢££íÿÿ룣¦££££££££¦££££¦¦£¦£££££¦££¦££££¦£¢£¦££££££¢¢£££¢¢¢¢¢¡¡¡¢¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡‘‘‘‘‘���~�~~€~~€‘�~~~~~}}~}}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!   =Òúüüüýþüüüüüü÷– ;Ì÷úúúúúúþÿÿÿÿû§~~��‘�����~�‘‘‘‘‘‘‘¡¡¡¡¡‘¡‘¡¡¡¡¡¢¡¡¡¡¡¡¢¢¢¢¢¢££¢¢¢¢¦íÿÿ룢££££¦£££££¦££££££££¦£¢££££¦££££££££££¢¢£¢££¢¢¢¢¡¢££¢¢¡¡¢¢¡¢¢¢¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘‘¡‘‘���‘‘‘�‘��~�~��~~~�€~}}}}}}}}}w}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!   =Òúüüüüþüüüüüü÷› ;Þ÷úúúúúúþÿÿÿÿû§���~��~��‘€�‘‘�¡¡¡¡¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¢¡¢¢¢¢¢¢ëÿÿí¦£¢£££££££¢¢£££¦££¦£¢££££££££¢¦£¢££¦£¢¡£££¢¢¢£¢¢¢¢¢¢¡¢¢¡¡¢¡¡¡¡¢¡¡¡¡‘¡¡¡¡‘¡‘¡¡‘‘‘¡‘�‘‘‘��~‘‘�€�~~���~~}}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Ïÿÿá;!!!! =Çúüüüüþüüüüüü÷– ;Þ÷úúúúúúþÿÿÿÿú§~�~~���‘�‘‘~���‘¡‘¡‘‘‘‘‘¡‘¡¡‘¡¢¡¡¡¡¡¡¡¡¡¢¡¢¢¡¢¢¢¢¢¢êÿÿõ¦£¢£££¢££££££££¦£££££££££¦££££¦£¢££¢¢£¢£¢¢£¢¢¢¢£¢¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡‘‘¡‘‘‘�‘‘‘‘��~~�~~~~~}~~~~}~~~}}}}}}|}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ9@çÿÿÏ;!    =Çúüüüüþüüüüüü÷–  ;Þ÷úúúúúúþÿÿÿÿú§~€€~€���‘��‘�‘��‘‘‘‘¡‘¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¡¢£¢¢¢¢äþÿù¨¢¢£££¢£¢£¢£££££¦£¢£££¦£££¢££££¢£¦£¢£££¢¡¢££¢¢¢¢¢¢¢¢¢¢¡¢¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘�‘��‘�‘‘�~~�~�~�~~~~~~~~}}~}}}}}}}w}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÈ9@ðÿÿÎ9!!  =Ç÷üüüüþüüüüüü÷– ;Þ÷úúúúúúþÿÿÿÿû§~~~~~�~~~~�‘�‘‘‘‘‘¡�‘¡‘‘‘¡¡¡¡¡¡‘¡¡¢¡¢¡¡¡¡¡¢¡¢¢¡¢¢¢¢¡ØþÿýÔ¢¢££¢££££££££££££££££££¢££££££££¢£¢£¢¢¢¢¢¢¢£¢¡¢¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘�¡¡¡‘‘‘‘�����‘‘����~~~~�~~~~}}}}}}}}}}}}}|}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý„![óÿþÆ! !  =Çúüüüüþüüüüüü÷–   ;×÷÷úúúúúþÿÿÿÿû§~�€~~€€~~~�����‘�‘‘�‘‘‘¡‘‘¡‘¡¡‘¡¡¡¡¡¡¡¡¢¢¢¢¡¢¢¡¢¢¢¢¢¨ûÿþ䢢¢£¢¢¢£££££¢££££££¢¢££££££¢££££¢¢¢¢¢¢££¢£¢¢¢¢¢¢¡¡¢¢¢¡¢¢¡¡¢¡‘¡¡¡¡‘¡¡‘¡‘¡¡‘¡‘���‘‘‘‘�‘‘�~‘‘��~~~~~~~�~}~~~}}}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòZ!…þÿü„! ! ! =Òúüüüüþüüüüüüõ–  ;×÷ú÷úú÷úþÿÿÿÿû§~~~~���€~�‘‘��‘��‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢£¢¢¡¢£íÿÿ÷¨¢¢£¢££££¢£¢£££¢¢¢£¢¢££££££¢¢¢¢££¢££¢££¢££¢¢£¢¡¢¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡‘¡‘‘‘‘‘‘‘�‘������~~~�~€~~~~~~~}}~}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþË99ÎÿÿòY!! !   =Ç÷üüüüýüüüüüü÷–   ;×÷ú÷úúúúþÿÿÿÿû§~~~~~~�‘�‘‘�~�¡�‘‘��‘‘¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¡¢¡¢¢ãþÿþ㣢¢££¢£¢¢£££¢££¢¢£¢£££¢£¢£¢££¢¢££££¢£££££¢¢¢¢¡¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘‘�¡‘‘�‘����‘~�€€~~~~~~~~}~}}}}}w}}}|}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò[!_óÿÿÎ9 !   =Ò÷üüüüýüüüüüüõ–            ;×÷÷ú÷÷úúþÿÿÿÿø§~�~}��‘���~~~���‘��‘‘‘‘‘‘¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¢¡¢¡¨õÿÿûÜ£¢£¢¢¢¢¢¢¢£¢¢¢££¢¢£¢¢££¢¢¢££¢£££¢¢¢¢¢¢¢¢¢¡¢¡¢¡¢¢¢¢¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘‘¡‘‘�‘����‘���~�~~~~~}}}}}}}}}}}}www}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú–!9Èþÿü„ !   =Òúüüüüýüüüüüüõ–     ;Ìò÷ú÷÷úúþÿÿÿÿû§~~~~~~€~~‘~��~�‘‘‘‘‘¡‘¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¢¡¢Ôýÿÿù­¢¢¢¢¢¢¢£¢££¢££££¢¢¢¢££¢¢¢¢¢¢£¢¢¢£¢¢¢¢¢¡¢¡¢¡¢¡¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘‘¡‘‘‘‘��~‘~~~�~�~~~~~€~~~~}}~}}}}}}}|}|}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÈ;!�óÿÿÏ;!! !!  !=Ò÷üüüüýúüüüüüõ–        ;Ìò÷÷÷÷÷úþÿÿÿÿû§}~~~€�~��������‘�¡‘‘¡¡‘‘‘‘‘‘¡¡‘‘¡‘¡¡¡‘¡¢¢¡¡¡¢¡¡¢¢¡¡¡¢¤æþÿÿøÔ¢¡££¢££¢¢¢¢££¢££¢£¢¢¢¢¦££¢£££¢¢¡¡¢¡¡¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘¡‘‘¡‘‘�‘‘‘�‘����€‘‘�~~~~€}~~~}}}}}}}}}}}w}|}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ@!Yçÿÿú‚! !!! !   =žúüüüüýúúüüúüõ–         ;×õ÷÷÷÷÷úþÿÿÿÿû§~~�~�~~~~��~‘‘‘����‘�‘¡¡‘‘‘¡‘¡‘¡‘¡‘¡¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¢¨íÿÿÿûê­££¢¢¢¢¢¢¢¢¢¢¢£¢£¢¢¢¢¢¢¢¡¢££¢¢¡¢¢¢¢¢¡¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡¡‘‘‘‘‘‘‘‘‘‘��~����€��€~~~~~}}}~}}}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñ…9!BÎþÿþË9!!!!  >Ò÷üüüüýúúúúüüõ–        ;×õ÷÷÷÷÷úþÿÿÿÿû§�~�~~~~�‘‘������‘¡‘‘�‘‘‘‘¡¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢¡¡¢¡¢¢¨éþÿÿÿûëÝ­¨¥¦££¦¦£¥¦¦£¥£££¦¥¥¦£¦¥¥««¦¥¥¥¦£¥¥¥¥¥¥¥¥¥£¥¥¤¥¥¥¥¤¥¥¤¤¥¥¤¤¤¤¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤‘��¤¤�����������������������âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ÷áÃY!!ZÏþÿþáY!!!!   =Ò÷üüüüýúüúúüüõ–           ;Ì÷÷÷÷÷÷úþÿÿÿÿú§~~~~~~~~~~~~�‘‘~~�€‘¡‘�‘�‘‘‘¡¡‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¡¡¥ãýÿÿÿÿÿýûøùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùõ÷÷ùõõõõõ÷÷÷õ÷÷õõõõõõõõõõõõõõõõõõõõõõõõõõòõõõâÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÌÌÞÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÉÉÌÉËÉÉÉÈÈÈÈÈÉÉÉÈÈÈÈÈÈÈÈÉÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÆÈÆÈÈÆÂ‚[@9!;„çþÿÿñ_!!!!!!!!   =Ç÷üüüüýúúúúúúõ–                       ;Ìò÷÷÷÷÷úþÿÿÿÿúž~~�~~~~~~�~~‘~~���‘‘��‘‘‘‘¡‘‘‘¡‘¡¡¡‘¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¢¡¢¢¡¢¥Ôõþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâw||wvw||||vvvvvvppvpppvpppppooppooooooooolllolollllClllClCCCCCCC?C?CCA??>??>A>A>A>>===>=====>=========$==$$$$!$9@�Îúÿÿÿñ�! !! !!   =Ò÷üüüüýúúúúúúõ–                        ;Êò÷÷÷÷÷úþÿÿÿÿû§~~€€~~�~~�‘���‘‘‘�‘¡‘‘‘¡‘¡¡¡¡¡¡¡‘¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¢£¡¡¡¢¥Öéûþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþþþþþÿÿþþâ�††���††††††††††{{††{{{†{{{{{y{{{y{yyy{yyyyyyyyyyyyyyxyyxu]xxxxxx]u]]]]]]]]]t]tt]]]]]]]]ZZZZZZZZZZZZZZZZZYYZY_�‚Æçúÿÿÿþá[!!!! !!     =Òúüüüüýúúúúúúõ–              #Éò÷÷÷÷÷úþÿÿÿÿü§~~~~��‘€~~��€�����‘�‘‘‘‘‘¡‘‘‘¡‘‘‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢¢¡¢¢¢¨ÔÚäãææäãææææãääææææàææàææææææææææææàããæààààæàààààààààààààààààààààààààààààßàßßàààßàßàÙßàÙßàÙÙßßÙßÙÙÙÙÞÙÙÙÙÙÙÞÞÞÞÞâõ÷õ÷ò÷÷÷÷÷÷÷ò÷÷÷òò÷÷òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòñòòòññññòóüüþÿÿÿÿ÷ËY!!!!!!! !  >Óúüüüüýúúúúúúò”                         Çò÷ó÷÷÷úþÿÿÿÿýÒ~~~}��~~~~~~�~�~~���‘‘‘‘‘¡‘�‘‘‘¡‘¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¡¢¢¡¡¡¡¢¢£¢¢£¡¢£¢¢¢¢¢¢¢¢¡¢¡¢¢¢¢¢¢¢¢¢¢¡¢¢¢¢¡¢¡¢¡¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘€€��‘��€€€€€€€€€€}}}}}}}}}}}ww}âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþúÏ_9!!!!!!!!!   C×úüüüüüúúúúúúòƒ                             �ñ÷÷ó÷÷úþÿÿÿÿüÓ}~~~~~~�~~~~€‘‘�‘�‘‘‘����‘¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¡¡¢¡¡¡¢¢¡¢¢¢¡¡¢¡¡¡¢¡¡¢¡¢¡¡¡¢¢¢¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡‘¡¡¡‘‘‘‘‘¡¡‘��‘‘‘‘��~‘��~~~��~~~~€~~~~}}}}|}}}}}}w}ww||w}àþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýúçÈ�;!!!!!!!! ! !!  CÙüüüüüüúúúúúúéƒ                                �ñ÷ó÷÷÷÷þÿÿÿþþÙ~~~~~~~~~~~~��~‘�‘�‘�‘¡‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢¡¡¡¡¢¡¡¢¢¡¢¡¢¡¡¢¢¡¡¡¢¢¡¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘�‘‘‘‘�‘��‘���~�~~��€~€~~~~}}}}}}}}}}}}}}w}w||ww}žßßßßßßßßßßßßÞÞÞßßÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞßÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÎÎÞÞÞÎÞÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎËÎÎÎÎËËËËËËËËËËËËËËËËËËËËËÈ„[@9!!!!!!!!   ! tàüüüüüüúúúúúúèz                                       ”ñ÷÷÷÷ó÷þÿÿÿÿþæ‘}}~~��~��~~���‘‘‘�~‘‘‘¡‘����‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¡¢¢¡¡££¢¡¢¡¡¡¢¢¡¡¡¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘¡��‘‘‘‘�~~~~€�~~~~}}}~}}}}}}}}}}w}|}|}}|wwwwwwwvvwwvvvvvvvpvwvppovvpopoooooooopoooolllllllllllCCClCCCCCClC?CCA?CC????>>A??A>>======>>==========9$$=$9!$!!!!!!!!!!!!!!! ! !!  yèüüüüýüúúúúúúâ_                                   zâ÷÷÷÷÷óüÿÿÿÿþí‘}}~~€~~~~~�~�€~��‘‘‘‘‘�‘‘‘‘‘‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘‘‘‘‘‘‘¡‘‘¡‘‘‘�‘��‘��‘~~�‘�~~~~~~}~€}~€}}}~}}}}}}}}}}|}||w||||||v|vvwvvvvvpvvp|vvppoppppopooooololllllllllllllllCCCCClCCCClC??C??C??>>>>>>>>>=>>=================$$$$$$$!!!!!!!!!!!!!!!!! !  †òüüüüýüúúúúú÷ßY                                              ]ßó÷ó÷÷÷üÿþÿÿþ÷š}}~€}~~~~����~~���‘‘‘‘�‘‘‘‘‘‘�‘‘¡‘‘‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡¢¡¡¢¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡‘¡¡‘¡‘¡¡‘‘‘‘‘¡‘‘��‘�‘‘�‘�����€~~�~€~~~~~~~}}}}}w}}}}|}}}}}}}w||w}}|wwvvvpppvvpvppvpvppppppooopooooolooolllCllllllCllCClllCCCCC?C?A?>????>>>>>>>>>>===================$$$$$$$$!!!!!!!!!!!!!!! ! !! =ž÷üüüüýúúúúúú÷Þ;                                               YÞóóó÷÷÷úþÿÿþþý¬~~€~€~~~~~~~~€�~~���~‘~‘���‘‘‘‘¡‘‘‘¡¡‘‘‘¡‘‘¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¡¢¡¡¡¡¢¢¢¢¡¡¡¡¡¡¢¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡�‘¡‘‘‘����‘‘�‘‘�€��~~�~~~~~~�€~~~~}~}}}}}}}}}}|w||w|}||||vwvvvvvvvvvppppppooppoopopopooololollllollllllCllClCCCCCCCCCCl?????>>>>>>>>>>>=>===>=========$$$=$$$$$$$$!$!$!!!!!!!!!!!!!! !   lØúüüüüýúúúúúú÷É#                                       ;Êòóó÷÷÷÷þÿþþÿýà€~~~~~~~~~~~~���~�‘��~€��‘‘‘�‘‘‘‘‘‘‘¡¡¡¡‘¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘‘¡‘‘¡‘‘‘¡¡¡¡‘‘�����~�‘‘‘�~~��~~��~~}}}}}}}}}}}}}}}}w}w}}}}}||||vw|||wvvvvpvvvvppvppoopppppoooopolllolloolllllllllCCClCCCCCCC?C??????A??>>>>>>==>=>>========$====$$$$=$$$$!!$$$!!!!!!!!! !!   wæüüüüüüúúúúúúñ–                                       ›ñ÷ó÷÷÷÷üÿþþÿþô‘}}~~~~~~~~��~~�‘‘����‘‘�‘‘‘‘‘‘‘‘‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¢¡¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡‘‘¡¡¡¡¡‘¡¡¡¡‘¡¡‘‘‘‘‘¡¡‘‘‘‘‘‘‘~�‘���~~€€~~~~~~~~}}}}}}}}}||}|}w||||||||w||vvvw|vvvpvppppppppppppopoooloplllloolllllllllCCCCCCClCC???C????A???>>>>>>=>>>>===================$$$$$$!!!!!$!!!!!!!!!!!! ! $˜òüüüüýüúúúúúúè�                                               zâ÷÷óó÷óüþÿþþÿû§~}~~~€€~~~~€~��������‘¡‘���‘‘‘‘‘¡‘‘¡‘‘‘¡¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¢¡¢¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘‘‘‘¡¡¡‘‘‘‘¡‘¡‘¡¡‘‘‘‘‘‘‘��‘‘���~~��~~~~~~~}~}}~}}}}}}}}}}w}}}}|||||||||||wvvwvvpvvvppppppppppoppoopoolololooollollllllllClllCCCCCC???CC??>?>>>>>=>>>>>>>==>=============$$$$$$!$!!$$!!!!!!!!!!!!!!!  C×úüüüüýúúúúúú÷ÙY                                                   Yß÷÷÷÷÷÷÷þÿþþþýà‘~~}}€~~~�~~~~~���~~�����‘‘‘‘�‘‘‘‘‘‘‘¡‘‘‘¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘¡‘‘‘‘‘‘‘‘¡‘¡‘‘‘‘‘‘��‘�‘�~�����€~~~~~~~}~~~}}}}}}}}}}}}w|}}w||}}vvvv|vvvvvpvvpvvvpvpvppoppoooooppoooolllllllllllllllllCCCCCCCCCC????A???A>A>>>>>>===>===>=============$$$$!$$$!$!!!!!!!!!!!!!!!!!  !  {èüüüüüüúúúúúú÷É#                                                     #Çò÷ó÷óó÷üÿþþþþõ§€}~~~~~~�€~~~~~�~�~~~~�‘‘¡‘‘�‘¡‘‘‘‘¡‘‘¡‘‘¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡‘‘¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡‘¡¡¡‘¡‘�‘‘‘�‘‘��‘��~~~~�~~~��~�~��~}}}}}}}}}}}}}}}}}w}}||||||w||vvvvpvpvvvpppvppppoppppoooooopoololllllllllllllllCCCC?CCCCCC??C???>???>>=>=>=>================$==$$$$$$$!!!!!!!!!!!!!!!!!!     >Ç÷üüüüýüúúúúúúô–                                              ”è÷÷÷óóóúþþþþþýÚ‘}~~~~~~~~~�€~~~~~�~�‘�‘‘���‘�‘‘�‘‘‘‘‘‘¡¡¡¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡¡‘‘¡‘‘‘¡‘‘‘~‘‘��‘~��~~��~~~��~€�~~~~~}}}}}}}}}}}}}}}}}}wwww}}w|}||wv|vvvvvvvppppvppppopopppooooopoolololllllllllllCClCCC?CCCCC?????A??A>>?>>>>>>>=============$=$==$$$$$$$$!!$$!!!!!!!!!!!!!    wâüüüüüýúúúúúúúâ_                                                         [ßó÷÷÷ó÷÷ýþþþþþõš}}~}~��~~€�~~���~�������‘�‘‘‘‘‘‘‘‘�‘¡¡¡‘‘‘¡‘¡‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘‘‘�‘‘¡¡‘‘�‘¡��‘�‘‘‘‘��~~~��~~~~~~~}~}}}}}}}}}}}}}}}}|w||ww||||vvwvv|v|vvvv|vvvvpppppppppppoooloooolllllllllllllCCCllCCCCCCCC?CC?????>>??>>>>>A>>>>==>=============$=$$$$$$!!$!!!!!!!!!!!!!!!! !!  A§÷üüüüüüúúúúúúòÊ;                                             #Çò÷÷ó÷÷óúþþþþþýà‘~~}}~~~~�‘~��~��‘��‘����‘�‘‘‘‘‘‘�‘¡¡¡‘‘¡‘‘‘¡¡‘¡¡¡‘‘‘‘¡¢¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘‘¡¡‘��‘‘‘‘�‘‘‘‘�‘‘~�‘��‘���~��€~~~~~~~€~~}}~}}}}}}}}}}}|}w}}wv|vv||v||vvv|vpvpppppppppppoppooopooooolololllllllllCCCllCllCCCCCC???????>>>A>>>>>?>=>>==>>=>===========$$$$$$$!$$!!!!!!$!!! ! !! !      {âüüüüüýúúúúúúúñ”                                                         zâóóó÷÷ó÷þþþþþþ÷¬~~~~~~€~~~€���€~�€‘‘~~~��~��‘‘‘‘¡‘�‘‘‘‘‘‘‘¡¡¡¡¡‘‘¡‘‘¡¡¡¡¡¡¡¡‘¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡¡¡‘‘‘¡¡‘‘�‘¡¡¡¡‘‘�‘‘‘¡‘‘���~�~��~�~�~~~~~~~~~~}~~~}}~}}}}}}}}}||}w||||www|wvvwwvvvvvvppppppppppvppppppoooooollolollllllCCCllllCCllCCC?CCCC??????????>>>=>>>>===>>==============$$$!!$$$!$$$!!!!!!!!!!! ! ! lÓ÷üüüüüüú÷÷úúú÷ßZ                                                    @Ìòó÷÷÷ó÷üþþþþþýè¤}}}}~~~~~~~€~~~��~�‘~�‘�‘‘‘���‘‘‘‘‘¡‘‘‘‘‘‘¡¡‘¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘¡¡‘¡‘�‘‘‘‘‘‘‘‘���‘��€‘���~~~~~�~~~~}~~}}}}}}}}}|}}}}}||w|||w|||vvv||vvp|vpvvpvvppppoppppooopooollooollooollllllllClCCCCCC??CCCC>?>>?>>??>>>>>=>>>===>============$$=$$$$$!!!!!!!!!!!!!!!!! !    =˜ôüüüûüýúúúúúúúò�                                                                ƒèó÷÷ó÷÷÷ýþþþþþüÚ‘}}~~~~~~~€~~~~~~�~€‘�€�������‘‘���‘�‘¡¡¡‘‘‘‘‘¡¡‘‘¡¡¡¡‘¡¡¡¡‘‘¡¡¡‘‘¡¡¡¡‘¡¡‘¡‘¡‘¡¡¡¡‘¡¡¡‘¡¡¡¡‘¡‘‘‘‘¡‘‘¡��‘‘‘‘��‘~~~�‘~‘�~~�~~~~�~~~~~~~~}~}}}}}}}}}w}}w}}}}}||vwv||||wv|vvpvvvvvvvpppppppppopopoppooooooooolllllllCCCCCllCCCCC?CCCCC???>CA????A>>>>>>=>====>========$$=$$$$$!$$$$!!!!!!!!!!!!!!!!!!! !{æúüüüüýü÷÷÷÷÷ú÷à_                                                         BÌò÷óó÷ó÷úþþþþþþ÷Ò~~}~}~~}}}~~~�~��~����~‘‘�‘‘‘¡‘‘‘�‘¡‘‘‘�‘¡‘¡‘‘‘‘‘‘¡¡‘¡‘¡¡‘‘‘¡¡¡¡¡¡‘‘¡‘‘‘¡¡‘¡‘¡¡¡¡‘¡‘‘‘‘‘‘‘‘�‘¡¡‘‘¡¡‘‘‘�‘�¡‘~��~��~�~~��€~€~~~~~~~}}}}}|}}}}|}}w}}|w||}|}v||v|vvw|wvvppvpvvpppppppppppopooopollllllollollllllllllCCCCCCC?????CC?A?>?>>>>>>>===>====>=============$$=$$$$!!!!$!!!!!!!!!!! ! !   uÙ÷üüüüüýú÷÷÷÷÷÷ôÇ#                                                       ”è÷÷ó÷÷÷÷üþþþþþýò§€}}}~~~€~~~~~€~~~��~���~~‘�‘~�‘���‘�‘‘‘‘‘�‘‘‘‘¡‘‘¡‘‘‘¡‘¡‘‘‘¡¡‘‘¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘‘‘¡¡‘�‘¡‘‘‘‘‘‘‘‘����‘�‘�‘~~����~~~~~~�~~~}~~}}}}}}}}}}}}|}}|w}|w|ww|||v||vvvv|vvvvpvvpppppppoppppppoopoooooooooollllllClllCCllCCCCCCCCC???CC??>>>>>>>>>>>>>================$==$$$$!!$!!!!!!!$!!!!!!!!!!  !   lÒ÷üüüüüýú÷÷÷÷÷ú÷à_                                                             @Ìò÷ó÷÷ó÷÷ýþþþþþýô§~}}}~~~~~€��~~~����~����~��‘�‘‘‘‘‘‘�‘‘‘‘‘‘‘¡‘¡‘¡‘‘‘¡‘‘¡‘¡‘¡‘‘¡‘‘¡¡‘¡¡‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘�¡¡‘�‘¡‘‘‘‘‘����~~�‘��‘��~~�~~~�~€~~€~~~}~~}}}}~~}}}}}}}}||}}|w|||||w|v|wvv||v|vvpvvpppvpppppppppooopoooololloollllllllClCCllCClCCCCCCCC????C?>>>>>>A>>=>>>====>=======$====$$$$$$$$!$!!!!!!!!!!!! !! !  lÇòüüüüüýü÷÷÷÷÷÷÷ñ�#                                                       ‚âó÷÷÷÷ó÷úýþþþþþýô§€~~~€~~~~~��€~~~��~‘����‘‘��‘‘����‘‘¡‘�‘‘‘‘‘¡‘‘¡‘‘¡¡¡¡¡¡‘¡‘‘¡‘¡¡¡¡¡¡‘¡‘‘‘‘‘¡‘‘‘‘¡‘‘‘‘‘�‘‘‘‘‘‘‘‘���‘�~~~‘��~~���~~~�~€~�€~~}}}}}}}}}}}}}}}}}}}|}}||v|||||||||vvvvvppvpppvpppppppoooooolloololllllollllllCllllCCCCCCC????C???>?????>>>>>>==>==================$$$$$$!!!!!!!!!!!!!!!!!! !!!!   lžôüüüüüüü÷÷÷÷÷÷÷òÞ[                                                         #Çñ÷÷÷óó÷÷üþþþþþþýô§�~}€~€~~~~€�~~€��~��~�‘����¡�‘‘‘‘‘‘�‘‘‘�‘‘‘�‘‘‘‘‘¡‘‘¡¡‘‘¡¡¡‘‘¡¡¡‘‘‘‘¡¡�‘¡¡‘‘‘‘‘‘‘¡‘�‘‘�‘‘‘‘‘‘‘‘��~~�~�€���~~~~€~~~~~~~~~~}}}~}}}}}}}}}}w}}}}}|}||v||v}|vv|pvvvvvppvvppppppoppooppoooooollllllllolllllllllllCCCCCCC?CC???>??A?A?>>>>>>>==>>==============$$=$$$$$$!$$$!!!!!!!!!!!!!! !! !   !oÒõüüüüüüüú÷÷÷÷÷÷÷è–                                                         [Þ÷óó÷÷ó÷÷üþþþþþþüòÓ‘~}}}~}~€~~€~~~��~‘~~~~�‘��‘�‘�‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡‘‘‘‘�‘‘¡¡�‘‘‘‘‘�‘‘�‘‘�¡‘‘¡‘‘‘¡‘�‘‘�‘‘‘‘‘¡‘¡‘‘‘‘��‘‘��‘�‘~~�~�~~��~~~~~~~~~~~}}~}}}}}}}}}}|}|}||||||w}wvwv||vvvvvpppvvvppppppoppoopooooooooollllolllllllllCCCCCCCCCC?CC?>??>C??>>??>>>>>>>=>>==============$$$$$=$$$!$!$!!!!!!!!!!!!!!!!! $wÓõüüüûüüýú÷÷÷÷÷÷÷ôÊ@                                                             ƒâ÷ó÷ó÷ó÷÷üþþþýýýý÷Ù¤}~~~~~~~~�~~~�~�~���‘‘��~�~‘‘~�‘‘‘‘‘��¡��‘‘��¡‘‘‘�‘‘‘‘‘‘¡‘‘‘‘¡¡‘‘‘‘‘�‘¡‘‘��‘‘¡‘‘‘��‘‘¡‘�‘������‘����~~~�~~~~~~~~~~}~~~}~}}}}}}}}}}}}}|}ww|}||}|v||}|wvvwv|vvvvvvpppppppppppoopppoppoooolooolllllllllllllCCClCC?CC?C?????A?>>>>A>>>=>=>>==>====>=========$=$=$$!$!!!!!$!!!!!!!!!!!!!!!!    >�à÷üüüüüüýú÷÷÷÷÷÷÷òßx                                                        ;Çñó÷ó÷÷÷÷÷üþþþýýýýúæ§€~~~~~~~€~~��~~��‘�‘�����‘~‘‘‘��‘�‘‘‘�‘‘‘‘~‘‘‘¡‘¡‘�‘‘‘¡‘‘¡‘‘‘‘¡‘‘‘‘�‘‘��‘��‘¡�‘����‘‘��~��~‘��~��€€���~�~}~}~~~}~}}}}}}}w}}}}}}|}|}w}||||vv|vv|||vvpvpvpvpppppppppopoppoopoopoooollllllllllllllllllllCClCCCCC?C?>?A???>>>>>>>>>==>>===========$====$=$$$$$$!$!!!!!!!!!!!!!! !!   =vžèúüüüüüüýú÷÷÷÷÷÷÷÷â”                                                       YÌò÷ó÷ó÷ó÷úüþþýýýýýüõÙ¤€~~}~~~~~~~~~~~~€���~�‘‘~�‘‘�����‘‘�‘‘�‘‘��‘‘‘‘‘‘‘�‘‘‘‘‘¡‘‘¡‘���‘‘��‘‘‘‘‘‘‘�����‘�‘‘‘‘‘�‘‘‘�~~€‘�~~~~��~~~�€~~~~~~}}}}}}}}}}}}}}}}}}|}}}|}}|w}|||||ww|vvvpvvvvpppppppppppppppopoopolololooolllllllllllllllCCCCCC??CCC??C?>>??>?>???>>=>>>=>=========$=$===$$==$$$$$!!!!!!!!!!!!!! !!!!   $t™à÷üüüüüüüýú÷÷÷÷÷÷÷÷è�;                                                               xßòó÷÷÷óóó÷üþýýýýýýýúéÓ¤‘~~~~�~~~~~~~~~~~~‘~�~���‘~��‘�‘��‘‘‘‘‘�‘�‘��‘‘‘‘‘‘�‘‘‘���‘¡‘‘‘�‘‘‘‘�‘���‘��‘‘����‘�~��‘�~‘�~�‘�~~~~~�€€�~~}~~~}~}~}}}}}}}}|}}}}}}}}}}|}||}w|w||vv|vvvv|vvwppppvvpppppppppoooopoooollllllllollllllCllCCCClCCCC?C???CC?>??>>>A?>>>>=>>>==============$==$=$$$$$$$$!!!!!!!!!!!!!! ! !  =t˜×òúüüüüüüüýú÷÷÷÷÷÷÷÷ñÊY                                                         ‚ßò÷÷ó÷ó÷ó÷üýýýýýýýýýúéÙ§‘�~~€~~~‘‘‘€~~€~~~~~~�~€‘€�‘���‘�‘�‘��‘‘‘‘‘�‘�‘¡�‘��‘‘�‘‘‘�‘��‘‘‘‘�‘‘¡‘�‘‘�‘‘‘~~�~~�‘��€~~�~�~~�€~~~~~~~}~~~}}}}}}}}}}}}}}}}|}|w}}||||}||vvv|vvv|vpvpppvpvppppvppppopppoopolooollllollllllllllllCCCCCCCCCCC?CC??C?>?>>>>=>>>>>>=>=>>===>=========$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!   $CwžÙòúüüüüüüüüüú÷÷÷÷÷÷÷÷òÞ_                                                           ƒâò÷óóóó÷÷óúýþýýýýýýýýúõæÓš‘��~~~~~~~��~~~����~~����~��‘‘���‘‘�‘¡‘‘¡~�‘‘~‘‘‘‘‘�‘‘��‘‘‘‘‘��‘‘‘���‘�������~‘���������~‘�~�~€~~~~~}}~~}}€~}}}}}}}}}|}}}}|}|}|}}|}||||v||v|vvvvvvpvpvppppppvpppppppppopoooolooollooloolllllllCCllCCClCCCCCC?CCCC????>>?>>?>>?>>>>===================$$=$$$$$$$$$$$!$$$$$!!! !!! !  !$=?t{™×æ÷úüüüüüüüüýüú÷÷÷÷÷÷÷÷òÙ�                                        #–â÷÷÷óó÷÷óóúüýýýýýýýýýüüúõèà×Òššš¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤‘¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤’¤�’����’�™¤�¤�����™¤™’’™¤™��™����’�’��™™��˜˜™˜��˜�������™������˜™�����������������������������������������††††��†††††���†�{†}{†{{{}{{†{{{{}}ww}}}{{}}{}}�˜œÒ×àé÷úüüüüüüüüüüüú÷÷÷÷÷÷÷÷÷òß�                                                        #–âòó÷÷÷÷ó÷÷÷úýþýýüýüüýüüüüüú÷õòòôôéññôéôééññééñññéèèèèèèèèèèèèèèèèèèèèèèèèèèæèèèæèèèèèèèèèèèèèèèèèèèèèèèèèèèèèééññññññéééñôééñôôôòôôñôôôôôôôôòôòòôõõõõõõõõõõõõõõõõõõõõõòõõõ÷õ÷õõ÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ù÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õ÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôôôôôõôòòôôòôòôõòõ÷úüüüüüüüüüüüüýüú÷÷÷÷÷÷÷÷÷òÙz                                                     #”ßò÷÷ó÷÷ó÷ó÷úüýýýüýýüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüýýüýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþýýýþýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüýüú÷÷÷÷÷÷÷÷÷÷òÞ�                                ‚ßò÷ó÷÷÷óó÷÷÷÷üýýýüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüýüüüýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþÿþÿþþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüýýüú÷÷÷÷÷÷÷÷÷÷÷ôÌ_                                 �Ìñ÷÷÷÷÷÷÷÷ó÷÷÷úýýýýüüüüüüüüüüüúúüúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüýüüüýýýýýýýýýýýýþþþþþþþþþþþþþþþþÿþþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüýýüú÷÷÷÷÷÷÷÷÷÷÷÷èÇ[                                  ZÇè÷÷÷÷÷óóó÷÷÷÷÷úüýýýýüüüüüüüüüúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúüúüúüüüúüüüüüüüüüýüýýýýýýýýýýýýýýýýýþýþþþþþþþþþþþþþþþÿþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþÿþÿÿþþþþþþÿþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüüýüüüüüýüýýýýüú÷÷÷÷÷÷÷÷÷÷÷÷õòß›@                               ;”ßñ÷÷÷ó÷ó÷÷÷ó÷÷÷÷úúüüýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿþÿþÿÿÿÿÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýýýýýýýýýüüúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñׂ                      _Éçò÷ó÷÷÷÷óó÷÷÷÷÷÷÷÷÷úúüüüüüüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýýýýýýýýýýýýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþþýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òß�Z                 ;ƒÞèò÷÷÷÷óó÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýýþýýýþþþýþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýüýüýüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèÊx#              Z›Þñòóó÷óóóó÷ó÷÷÷÷÷÷÷÷÷úú÷úúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýüýüýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýüýüýýýüüüüüüüüüüüüüüüüüüüúüúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèÌ”@              Y›Þèò÷÷÷óó÷ó÷÷÷÷÷÷÷ú÷÷úú÷úúúúúúúúúúúúúúúúúúúüúúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýüýýýýýýýýýýýýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿÿþþþÿþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýüýüüüýüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òẫ@          Y”Êâñ÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúüúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþýþþýýýýýýýýýýýýýýüýýýýýýüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷õèßÇ‚;          ;_›Ìáñòò÷÷÷÷÷÷÷÷÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýýýýýþýýýþýýþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýüýýýýýýüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷÷òòèßÊ–[#           @_ƒÇÙâèèò÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúüúúúúúúúüúúúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýýýýýýýýýýýýýþþþþýýþþþþýþþÿþÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþþþÿÿþþþþýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷õôèâßÞ�ƒ[;    ;]ƒ–�ÊÊÌÞÞÞÞÞÞÞßÞÞßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßâßââââââââââââââââââââââââââââââââââââââââââââââââââçâèèèèñññññññññññññññññññññññññññññèèèèèèçèèèèççççèçççççççççâççççççççççâçâââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââßßßßßßßßßßßßßßßßßßßßßßßßßÙßßÞßÞÞÞÞÞÞÞÌÊÇ�–‚Z#    ##;;@YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYa•ÃÈÎËËËÈËÍÈÈËÍÍÍÎÏÏÏÏÏÑÑÑÑÑÏÎÍËÈÕ•„‚f��a[[[[[[[[[[[[YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@;;##                   XhÁÁÄÄÄÍÍÄÄÄÄÄÍÍÍÍÍÐÐÐÑÑïïÑÑÐÍÍÄÄÄÁhhgccbXXTT"            UhhÁÄÄÄÄÄÄÄÄÄÄÄÍÄÍÍÍÍÐÑÑÑïÑÐÍÍÍÄÄÁÁhhgccXXUTT        TghÁÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÐÐÑÑÑÑïïÐÍÍÍÄÄÄÁÁhgcbXXUTT      UhhÁÄÄÄÄÄÄÄÄÄÄÍÄÍÍÐÑÑÑïïððïïÑÐÍÍÄÄÁÁhhccbXXTT   TghÁÄÄÄÄÄÄÄÄÄÄÍÍÐÐÑÑïïððñòððïÑÍÍÍÄÄÁÁhdccXXTT VhÁÁÄÍÄÄÍÍÍÍÍÍÐÑÑïïððñòòóóññïïÑÍÍÄÄÄÁÁhdcbXWTT     WhÁÃÍÍÍÍÍÍÍÐÐÑÑÑÑïïðòòóòòóòòðïÑÍÍÍÄÄÁÁhhccXXUT  WhÁÄÍÐÐÑÑÑÐÐÑÑÑïïððñòòóóó÷óòððÑÑÍÍÄÄÁÁhhccbXUT"  XÁÄÍÐÑÑÑÑÑÑÑÑïïðððððòðóóóúóòððïÑÍÍÍÄÄÁhhdcXXTTT  XÁÄÍÑïïÑÑïÑÑÑÑïïïðñòòóóóóúóóððïÐÍÍÄÄÄÁÁhdcbXUTT   XÁÄÍÑïïïïïÑÑïÑïïððñóòóóóóúóóððÑÑÍÍÄÄÁÁhhgcbXXTT""  XÁÄÍÑðïïïïÑÑÑïïïððððñóóó÷úóòðïÑÑÐÍÄÄÄÁÁhdcbXXTT    XÁÄÍÑðïïïÑÑÑÑÑïðððòòòóó÷ú÷óòñïÑÑÍÍÄÄÁÁhgccbXUTT" Y# XÁÄÍïðïïÑÑÑÑÑÑïïððòðñòóó÷úúòððÑÑÐÍÄÄÁÁhhccbXTTTT ; XÁÍÍïïðïÑïÑïïïïððððòóóóóúó÷òððÑÐÍÍÄÄÁÁÁhdcbXXT""   XÄÍÍïðïïÑÑÑÑÑÑïððððòòóóó÷óóòððÑÐÐÍÄÄÄÁÁhdcbXXTT"  XÁÍÍïðïïÑÑÑÑÑÑïïðððòñòó÷óúóóðïÑÑÍÍÍÄÄÁhhdcbXXTT XÁÍÐïðïïïïÑÑÑÑïïðððòòòó÷÷÷óóððïÐÍÍÄÄÁÁhhgcbXXTT"    XÁÍÍÑïððïïÑÑÑÑðïðððòóóóóúú÷òððÑÑÍÍÄÄÁÁhhgcbXXTT"""  XÁÍÍÑððïïÑÑÑÑïÑïððððòóóóúú÷òððÑÑÍÍÍÄÁÁhhdcbXXTT" XÁÍÐïðïïÑïÑÑÑÑÑïððòðòóó÷óúóóñðÑÐÐÍÍÄÄÁhhdcbXXTT"""  XÁÍÐÑððïïÑïÑÑÑïïðððòòóóó÷÷÷óñðÑÑÍÍÄÄÄÁhhdcbXXTT" XÁÄÐÑðïïïÑÑÑÑÑïððððòóóóóóúóóððÑÑÍÍÄÄÁÁhhdcbXXTT"""  XÁÄÍïðïïïÑÑÑÑïïïððððóóóó÷úóóððÑÐÍÍÄÄÁÁhhdcbXUTT XÁÍÐïðððïÑïïÑÑïïððñòòòóóóúóòððïÑÍÍÄÄÁÁhhdcbXXTT  XÁÄÐïðïïïïïÑÑïïïïðñòòòóóóúóóñðïÑÍÍÄÄÁÁhhgcbXXUT XÁÍÐïðïïïïÑÑÑÑïïðððòóòóó÷úóóñðÑÑÍÍÍÄÁÁhhgcbXXTT"  XÁÍÐïððïïÑÑÑÑïïïðððòòóóóó÷óóñðÑÑÍÍÄÄÁÁhhgcbXXTT XÁÍÍïðïðÑÑïÑÑïïïðððñòóó÷ú÷óòñðÑÑÍÍÄÄÁÁÁhccbXUU"  XÁÄÍïððïðïïÑÑÑïïððñòòóóúúúóóñðïÐÍÍÄÄÁÁhhgcbXUTT" CorsixTH-0.70.0/CorsixTH/Bitmap/mainmenu480.dat000066400000000000000000011300001522247547500207670ustar00rootroot00000000000000 XÁÄÍïððïðïïÑÑÑïïððñòòóóúúúóóñðïÐÍÍÄÄÁÁhhgcbXUTT" XÁÍÍïðïðÑÑïÑÑïïïðððñòóó÷ú÷óòñðÑÑÍÍÄÄÁÁÁhccbXUU"  XÁÍÐïððïïÑÑÑÑïïïðððòòóóóó÷óóñðÑÑÍÍÄÄÁÁhhgcbXXTT XÁÍÐïðïïïïÑÑÑÑïïðððòóòóó÷úóóñðÑÑÍÍÍÄÁÁhhgcbXXTT"  XÁÄÐïðïïïïïÑÑïïïïðñòòòóóóúóóñðïÑÍÍÄÄÁÁhhgcbXXUT XÁÍÐïðððïÑïïÑÑïïððñòòòóóóúóòððïÑÍÍÄÄÁÁhhdcbXXTT  XÁÄÍïðïïïÑÑÑÑïïïððððóóóó÷úóóððÑÐÍÍÄÄÁÁhhdcbXUTT XÁÄÐÑðïïïÑÑÑÑÑïððððòóóóóóúóóððÑÑÍÍÄÄÁÁhhdcbXXTT"""  XÁÍÐÑððïïÑïÑÑÑïïðððòòóóó÷÷÷óñðÑÑÍÍÄÄÄÁhhdcbXXTT" XÁÍÐïðïïÑïÑÑÑÑÑïððòðòóó÷óúóóñðÑÐÐÍÍÄÄÁhhdcbXXTT""" XÁÍÍÑððïïÑÑÑÑïÑïððððòóóóúú÷òððÑÑÍÍÍÄÁÁhhdcbXXTT"    XÁÍÍÑïððïïÑÑÑÑðïðððòóóóóúú÷òððÑÑÍÍÄÄÁÁhhgcbXXTT"""  XÁÍÐïðïïïïÑÑÑÑïïðððòòòó÷÷÷óóððïÐÍÍÄÄÁÁhhgcbXXTT"  XÁÍÍïðïïÑÑÑÑÑÑïïðððòñòó÷óúóóðïÑÑÍÍÍÄÄÁhhdcbXXTT  XÄÍÍïðïïÑÑÑÑÑÑïððððòòóóó÷óóòððÑÐÐÍÄÄÄÁÁhdcbXXTT" ; XÁÍÍïïðïÑïÑïïïïððððòóóóóúó÷òððÑÐÍÍÄÄÁÁÁhdcbXXT""  Y# XÁÄÍïðïïÑÑÑÑÑÑïïððòðñòóó÷úúòððÑÑÐÍÄÄÁÁhhccbXTTTT    XÁÄÍÑðïïïÑÑÑÑÑïðððòòòóó÷ú÷óòñïÑÑÍÍÄÄÁÁhgccbXUTT"  XÁÄÍÑðïïïïÑÑÑïïïððððñóóó÷úóòðïÑÑÐÍÄÄÄÁÁhdcbXXTT   XÁÄÍÑïïïïïÑÑïÑïïððñóòóóóóúóóððÑÑÍÍÄÄÁÁhhgcbXXTT""  XÁÄÍÑïïÑÑïÑÑÑÑïïïðñòòóóóóúóóððïÐÍÍÄÄÄÁÁhdcbXUTT  XÁÄÍÐÑÑÑÑÑÑÑÑïïðððððòðóóóúóòððïÑÍÍÍÄÄÁhhdcXXTTT  WhÁÄÍÐÐÑÑÑÐÐÑÑÑïïððñòòóóó÷óòððÑÑÍÍÄÄÁÁhhccbXUT"    WhÁÃÍÍÍÍÍÍÍÐÐÑÑÑÑïïðòòóòòóòòðïÑÍÍÍÄÄÁÁhhccXXUT VhÁÁÄÍÄÄÍÍÍÍÍÍÐÑÑïïððñòòóóññïïÑÍÍÄÄÄÁÁhdcbXWTT   TghÁÄÄÄÄÄÄÄÄÄÄÍÍÐÐÑÑïïððñòððïÑÍÍÍÄÄÁÁhdccXXTT     UhhÁÄÄÄÄÄÄÄÄÄÄÍÄÍÍÐÑÑÑïïððïïÑÐÍÍÄÄÁÁhhccbXXTT       TghÁÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÐÐÑÑÑÑïïÐÍÍÍÄÄÄÁÁhgcbXXUTT        UhhÁÄÄÄÄÄÄÄÄÄÄÄÍÄÍÍÍÍÐÑÑÑïÑÐÍÍÍÄÄÁÁhhgccXXUTT                     XhÁÁÄÄÄÍÍÄÄÄÄÄÍÍÍÍÍÐÐÐÑÑïïÑÑÐÍÍÄÄÄÁhhgccbXXTT"         ##;;@YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYa•ÃÈÎËËËÈËÍÈÈËÍÍÍÎÏÏÏÏÏÑÑÑÑÑÏÎÍËÈÕ•„‚f��a[[[[[[[[[[[[YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@;;##     ;]ƒ–�ÊÊÌÞÞÞÞÞÞÞßÞÞßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßâßââââââââââââââââââââââââââââââââââââââââââââââââââçâèèèèñññññññññññññññññññññññññññññèèèèèèçèèèèççççèçççççççççâççççççççççâçâââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââßßßßßßßßßßßßßßßßßßßßßßßßßÙßßÞßÞÞÞÞÞÞÞÌÊÇ�–‚Z#           @_ƒÇÙâèèò÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúüúúúúúúúüúúúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýýýýýýýýýýýýýþþþþýýþþþþýþþÿþÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþþþÿÿþþþþýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷õôèâßÞ�ƒ[;         ;_›Ìáñòò÷÷÷÷÷÷÷÷÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýýýýýþýýýþýýþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýüýýýýýýüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷÷òòèßÊ–[#           Y”Êâñ÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúüúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþýþþýýýýýýýýýýýýýýüýýýýýýüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷õèßÇ‚;             Y›Þèò÷÷÷óó÷ó÷÷÷÷÷÷÷ú÷÷úú÷úúúúúúúúúúúúúúúúúúúüúúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýüýýýýýýýýýýýýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿÿþþþÿþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýüýüüüýüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òẫ@           Z›Þñòóó÷óóóó÷ó÷÷÷÷÷÷÷÷÷úú÷úúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýüýüýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýüýüýýýüüüüüüüüüüüüüüüüüüüúüúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèÌ”@                 ;ƒÞèò÷÷÷÷óó÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýýþýýýþþþýþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýüýüýüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèÊx#                      _Éçò÷ó÷÷÷÷óó÷÷÷÷÷÷÷÷÷úúüüüüüüüüüüüüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýýýýýýýýýýýýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþþýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òß�Z                               ;”ßñ÷÷÷ó÷ó÷÷÷ó÷÷÷÷úúüüýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿþÿþÿÿÿÿÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýýýýýýýýýüüúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñׂ                                    ZÇè÷÷÷÷÷óóó÷÷÷÷÷úüýýýýüüüüüüüüüúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúüúüúüüüúüüüüüüüüüýüýýýýýýýýýýýýýýýýýþýþþþþþþþþþþþþþþþÿþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþÿþÿÿþþþþþþÿþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüüýüüüüüýüýýýýüú÷÷÷÷÷÷÷÷÷÷÷÷õòß›@                                  �Ìñ÷÷÷÷÷÷÷÷ó÷÷÷úýýýýüüüüüüüüüüüúúüúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüýüüüýýýýýýýýýýýýþþþþþþþþþþþþþþþþÿþþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüýýüú÷÷÷÷÷÷÷÷÷÷÷÷èÇ[                               ‚ßò÷ó÷÷÷óó÷÷÷÷üýýýüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüýüüüýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþÿþÿþþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüýýüú÷÷÷÷÷÷÷÷÷÷÷ôÌ_                                                    #”ßò÷÷ó÷÷ó÷ó÷úüýýýüýýüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüýýüýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþýýýþýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüýüú÷÷÷÷÷÷÷÷÷÷òÞ�                                                         #–âòó÷÷÷÷ó÷÷÷úýþýýüýüüýüüüüüú÷õòòôôéññôéôééññééñññéèèèèèèèèèèèèèèèèèèèèèèèèèèæèèèæèèèèèèèèèèèèèèèèèèèèèèèèèèèèèééññññññéééñôééñôôôòôôñôôôôôôôôòôòòôõõõõõõõõõõõõõõõõõõõõõòõõõ÷õ÷õõ÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ù÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õ÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôôôôôõôòòôôòôòôõòõ÷úüüüüüüüüüüüüýüú÷÷÷÷÷÷÷÷÷òÙz                                        #–â÷÷÷óó÷÷óóúüýýýýýýýýýüüúõèà×Òššš¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤‘¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤’¤�’����’�™¤�¤�����™¤™’’™¤™��™����’�’��™™��˜˜™˜��˜�������™������˜™�����������������������������������������††††��†††††���†�{†}{†{{{}{{†{{{{}}ww}}}{{}}{}}�˜œÒ×àé÷úüüüüüüüüüüüú÷÷÷÷÷÷÷÷÷òß�                                                        ƒâò÷óóóó÷÷óúýþýýýýýýýýúõæÓš‘��~~~~~~~��~~~����~~����~��‘‘���‘‘�‘¡‘‘¡~�‘‘~‘‘‘‘‘�‘‘��‘‘‘‘‘��‘‘‘���‘�������~‘���������~‘�~�~€~~~~~}}~~}}€~}}}}}}}}}|}}}}|}|}|}}|}||||v||v|vvvvvvpvpvppppppvpppppppppopoooolooollooloolllllllCCllCCClCCCCCC?CCCC????>>?>>?>>?>>>>===================$$=$$$$$$$$$$$!$$$$$!!! !!! !  !$=?t{™×æ÷úüüüüüüüüýüú÷÷÷÷÷÷÷÷òÙ�                                                         ‚ßò÷÷ó÷ó÷ó÷üýýýýýýýýýúéÙ§‘�~~€~~~‘‘‘€~~€~~~~~~�~€‘€�‘���‘�‘�‘��‘‘‘‘‘�‘�‘¡�‘��‘‘�‘‘‘�‘��‘‘‘‘�‘‘¡‘�‘‘�‘‘‘~~�~~�‘��€~~�~�~~�€~~~~~~~}~~~}}}}}}}}}}}}}}}}|}|w}}||||}||vvv|vvv|vpvpppvpvppppvppppopppoopolooollllollllllllllllCCCCCCCCCCC?CC??C?>?>>>>=>>>>>>=>=>>===>=========$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!   $CwžÙòúüüüüüüüüüú÷÷÷÷÷÷÷÷òÞ_                                                                xßòó÷÷÷óóó÷üþýýýýýýýúéÓ¤‘~~~~�~~~~~~~~~~~~‘~�~���‘~��‘�‘��‘‘‘‘‘�‘�‘��‘‘‘‘‘‘�‘‘‘���‘¡‘‘‘�‘‘‘‘�‘���‘��‘‘����‘�~��‘�~‘�~�‘�~~~~~�€€�~~}~~~}~}~}}}}}}}}|}}}}}}}}}}|}||}w|w||vv|vvvv|vvwppppvvpppppppppoooopoooollllllllollllllCllCCCClCCCC?C???CC?>??>>>A?>>>>=>>>==============$==$=$$$$$$$$!!!!!!!!!!!!!! ! !  =t˜×òúüüüüüüüýú÷÷÷÷÷÷÷÷ñÊY                                                       YÌò÷ó÷ó÷ó÷úüþþýýýýýüõÙ¤€~~}~~~~~~~~~~~~€���~�‘‘~�‘‘�����‘‘�‘‘�‘‘��‘‘‘‘‘‘‘�‘‘‘‘‘¡‘‘¡‘���‘‘��‘‘‘‘‘‘‘�����‘�‘‘‘‘‘�‘‘‘�~~€‘�~~~~��~~~�€~~~~~~}}}}}}}}}}}}}}}}}}|}}}|}}|w}|||||ww|vvvpvvvvpppppppppppppppopoopolololooolllllllllllllllCCCCCC??CCC??C?>>??>?>???>>=>>>=>=========$=$===$$==$$$$$!!!!!!!!!!!!!! !!!!   $t™à÷üüüüüüüýú÷÷÷÷÷÷÷÷è�;                                                         ;Çñó÷ó÷÷÷÷÷üþþþýýýýúæ§€~~~~~~~€~~��~~��‘�‘�����‘~‘‘‘��‘�‘‘‘�‘‘‘‘~‘‘‘¡‘¡‘�‘‘‘¡‘‘¡‘‘‘‘¡‘‘‘‘�‘‘��‘��‘¡�‘����‘‘��~��~‘��~��€€���~�~}~}~~~}~}}}}}}}w}}}}}}|}|}w}||||vv|vv|||vvpvpvpvpppppppppopoppoopoopoooollllllllllllllllllllCClCCCCC?C?>?A???>>>>>>>>>==>>===========$====$=$$$$$$!$!!!!!!!!!!!!!! !!   =vžèúüüüüüüýú÷÷÷÷÷÷÷÷â”                                                             ƒâ÷ó÷ó÷ó÷÷üþþþýýýý÷Ù¤}~~~~~~~~�~~~�~�~���‘‘��~�~‘‘~�‘‘‘‘‘��¡��‘‘��¡‘‘‘�‘‘‘‘‘‘¡‘‘‘‘¡¡‘‘‘‘‘�‘¡‘‘��‘‘¡‘‘‘��‘‘¡‘�‘������‘����~~~�~~~~~~~~~~}~~~}~}}}}}}}}}}}}}|}ww|}||}|v||}|wvvwv|vvvvvvpppppppppppoopppoppoooolooolllllllllllllCCClCC?CC?C?????A?>>>>A>>>=>=>>==>====>=========$=$=$$!$!!!!!$!!!!!!!!!!!!!!!!    >�à÷üüüüüüýú÷÷÷÷÷÷÷òßx                                                           [Þ÷óó÷÷ó÷÷üþþþþþþüòÓ‘~}}}~}~€~~€~~~��~‘~~~~�‘��‘�‘�‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡‘‘‘‘�‘‘¡¡�‘‘‘‘‘�‘‘�‘‘�¡‘‘¡‘‘‘¡‘�‘‘�‘‘‘‘‘¡‘¡‘‘‘‘��‘‘��‘�‘~~�~�~~��~~~~~~~~~~~}}~}}}}}}}}}}|}|}||||||w}wvwv||vvvvvpppvvvppppppoppoopooooooooollllolllllllllCCCCCCCCCC?CC?>??>C??>>??>>>>>>>=>>==============$$$$$=$$$!$!$!!!!!!!!!!!!!!!!! $wÓõüüüûüüýú÷÷÷÷÷÷÷ôÊ@                                                         #Çñ÷÷÷óó÷÷üþþþþþþýô§�~}€~€~~~~€�~~€��~��~�‘����¡�‘‘‘‘‘‘�‘‘‘�‘‘‘�‘‘‘‘‘¡‘‘¡¡‘‘¡¡¡‘‘¡¡¡‘‘‘‘¡¡�‘¡¡‘‘‘‘‘‘‘¡‘�‘‘�‘‘‘‘‘‘‘‘��~~�~�€���~~~~€~~~~~~~~~~}}}~}}}}}}}}}}w}}}}}|}||v||v}|vv|pvvvvvppvvppppppoppooppoooooollllllllolllllllllllCCCCCCC?CC???>??A?A?>>>>>>>==>>==============$$=$$$$$$!$$$!!!!!!!!!!!!!! !! !   !oÒõüüüüüüüú÷÷÷÷÷÷÷è–                                                       ‚âó÷÷÷÷ó÷úýþþþþþýô§€~~~€~~~~~��€~~~��~‘����‘‘��‘‘����‘‘¡‘�‘‘‘‘‘¡‘‘¡‘‘¡¡¡¡¡¡‘¡‘‘¡‘¡¡¡¡¡¡‘¡‘‘‘‘‘¡‘‘‘‘¡‘‘‘‘‘�‘‘‘‘‘‘‘‘���‘�~~~‘��~~���~~~�~€~�€~~}}}}}}}}}}}}}}}}}}}|}}||v|||||||||vvvvvppvpppvpppppppoooooolloololllllollllllCllllCCCCCCC????C???>?????>>>>>>==>==================$$$$$$!!!!!!!!!!!!!!!!!! !!!!   lžôüüüüüüü÷÷÷÷÷÷÷òÞ[                                                             @Ìò÷ó÷÷ó÷÷ýþþþþþýô§~}}}~~~~~€��~~~����~����~��‘�‘‘‘‘‘‘�‘‘‘‘‘‘‘¡‘¡‘¡‘‘‘¡‘‘¡‘¡‘¡‘‘¡‘‘¡¡‘¡¡‘‘‘‘¡‘‘‘¡‘‘‘‘‘‘�¡¡‘�‘¡‘‘‘‘‘����~~�‘��‘��~~�~~~�~€~~€~~~}~~}}}}~~}}}}}}}}||}}|w|||||w|v|wvv||v|vvpvvpppvpppppppppooopoooololloollllllllClCCllCClCCCCCCCC????C?>>>>>>A>>=>>>====>=======$====$$$$$$$$!$!!!!!!!!!!!! !! !  lÇòüüüüüýü÷÷÷÷÷÷÷ñ�#                                                      ”è÷÷ó÷÷÷÷üþþþþþýò§€}}}~~~€~~~~~€~~~��~���~~‘�‘~�‘���‘�‘‘‘‘‘�‘‘‘‘¡‘‘¡‘‘‘¡‘¡‘‘‘¡¡‘‘¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘‘‘¡¡‘�‘¡‘‘‘‘‘‘‘‘����‘�‘�‘~~����~~~~~~�~~~}~~}}}}}}}}}}}}|}}|w}|w|ww|||v||vvvv|vvvvpvvpppppppoppppppoopoooooooooollllllClllCCllCCCCCCCCC???CC??>>>>>>>>>>>>>================$==$$$$!!$!!!!!!!$!!!!!!!!!!  !   lÒ÷üüüüüýú÷÷÷÷÷ú÷à_                                                         BÌò÷óó÷ó÷úþþþþþþ÷Ò~~}~}~~}}}~~~�~��~����~‘‘�‘‘‘¡‘‘‘�‘¡‘‘‘�‘¡‘¡‘‘‘‘‘‘¡¡‘¡‘¡¡‘‘‘¡¡¡¡¡¡‘‘¡‘‘‘¡¡‘¡‘¡¡¡¡‘¡‘‘‘‘‘‘‘‘�‘¡¡‘‘¡¡‘‘‘�‘�¡‘~��~��~�~~��€~€~~~~~~~}}}}}|}}}}|}}w}}|w||}|}v||v|vvw|wvvppvpvvpppppppppppopooopollllllollollllllllllCCCCCCC?????CC?A?>?>>>>>>>===>====>=============$$=$$$$!!!!$!!!!!!!!!!! ! !   uÙ÷üüüüüýú÷÷÷÷÷÷ôÇ#                                                                 ƒèó÷÷ó÷÷÷ýþþþþþüÚ‘}}~~~~~~~€~~~~~~�~€‘�€�������‘‘���‘�‘¡¡¡‘‘‘‘‘¡¡‘‘¡¡¡¡‘¡¡¡¡‘‘¡¡¡‘‘¡¡¡¡‘¡¡‘¡‘¡‘¡¡¡¡‘¡¡¡‘¡¡¡¡‘¡‘‘‘‘¡‘‘¡��‘‘‘‘��‘~~~�‘~‘�~~�~~~~�~~~~~~~~}~}}}}}}}}}w}}w}}}}}||vwv||||wv|vvpvvvvvvvpppppppppopopoppooooooooolllllllCCCCCllCCCCC?CCCCC???>CA????A>>>>>>=>====>========$$=$$$$$!$$$$!!!!!!!!!!!!!!!!!!! !{æúüüüüýü÷÷÷÷÷ú÷à_                                                    @Ìòó÷÷÷ó÷üþþþþþýè¤}}}}~~~~~~~€~~~��~�‘~�‘�‘‘‘���‘‘‘‘‘¡‘‘‘‘‘‘¡¡‘¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘¡¡‘¡‘�‘‘‘‘‘‘‘‘���‘��€‘���~~~~~�~~~~}~~}}}}}}}}}|}}}}}||w|||w|||vvv||vvp|vpvvpvvppppoppppooopooollooollooollllllllClCCCCCC??CCCC>?>>?>>??>>>>>=>>>===>============$$=$$$$$!!!!!!!!!!!!!!!!! !    =˜ôüüüûüýúúúúúúúò�                                                          zâóóó÷÷ó÷þþþþþþ÷¬~~~~~~€~~~€���€~�€‘‘~~~��~��‘‘‘‘¡‘�‘‘‘‘‘‘‘¡¡¡¡¡‘‘¡‘‘¡¡¡¡¡¡¡¡‘¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡¡¡‘‘‘¡¡‘‘�‘¡¡¡¡‘‘�‘‘‘¡‘‘���~�~��~�~�~~~~~~~~~~}~~~}}~}}}}}}}}}||}w||||www|wvvwwvvvvvvppppppppppvppppppoooooollolollllllCCCllllCCllCCC?CCCC??????????>>>=>>>>===>>==============$$$!!$$$!$$$!!!!!!!!!!! ! ! lÓ÷üüüüüüú÷÷úúú÷ßZ                                              #Çò÷÷ó÷÷óúþþþþþýà‘~~}}~~~~�‘~��~��‘��‘����‘�‘‘‘‘‘‘�‘¡¡¡‘‘¡‘‘‘¡¡‘¡¡¡‘‘‘‘¡¢¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘‘¡¡‘��‘‘‘‘�‘‘‘‘�‘‘~�‘��‘���~��€~~~~~~~€~~}}~}}}}}}}}}}}|}w}}wv|vv||v||vvv|vpvpppppppppppoppooopooooolololllllllllCCCllCllCCCCCC???????>>>A>>>>>?>=>>==>>=>===========$$$$$$$!$$!!!!!!$!!! ! !! !      {âüüüüüýúúúúúúúñ”                                                         [ßó÷÷÷ó÷÷ýþþþþþõš}}~}~��~~€�~~���~�������‘�‘‘‘‘‘‘‘‘�‘¡¡¡‘‘‘¡‘¡‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘‘‘�‘‘¡¡‘‘�‘¡��‘�‘‘‘‘��~~~��~~~~~~~}~}}}}}}}}}}}}}}}}|w||ww||||vvwvv|v|vvvv|vvvvpppppppppppoooloooolllllllllllllCCCllCCCCCCCC?CC?????>>??>>>>>A>>>>==>=============$=$$$$$$!!$!!!!!!!!!!!!!!!! !!  A§÷üüüüüüúúúúúúòÊ;                                               ”è÷÷÷óóóúþþþþþýÚ‘}~~~~~~~~~�€~~~~~�~�‘�‘‘���‘�‘‘�‘‘‘‘‘‘¡¡¡¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡¡‘‘¡‘‘‘¡‘‘‘~‘‘��‘~��~~��~~~��~€�~~~~~}}}}}}}}}}}}}}}}}}wwww}}w|}||wv|vvvvvvvppppvppppopopppooooopoolololllllllllllCClCCC?CCCCC?????A??A>>?>>>>>>>=============$=$==$$$$$$$$!!$$!!!!!!!!!!!!!    wâüüüüüýúúúúúúúâ_                                                     #Çò÷ó÷óó÷üÿþþþþõ§€}~~~~~~�€~~~~~�~�~~~~�‘‘¡‘‘�‘¡‘‘‘‘¡‘‘¡‘‘¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡‘‘¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡‘¡¡¡‘¡‘�‘‘‘�‘‘��‘��~~~~�~~~��~�~��~}}}}}}}}}}}}}}}}}w}}||||||w||vvvvpvpvvvpppvppppoppppoooooopoololllllllllllllllCCCC?CCCCCC??C???>???>>=>=>=>================$==$$$$$$$!!!!!!!!!!!!!!!!!!     >Ç÷üüüüýüúúúúúúô–                                                   Yß÷÷÷÷÷÷÷þÿþþþýà‘~~}}€~~~�~~~~~���~~�����‘‘‘‘�‘‘‘‘‘‘‘¡‘‘‘¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘¡‘‘‘‘‘‘‘‘¡‘¡‘‘‘‘‘‘��‘�‘�~�����€~~~~~~~}~~~}}}}}}}}}}}}w|}}w||}}vvvv|vvvvvpvvpvvvpvpvppoppoooooppoooolllllllllllllllllCCCCCCCCCC????A???A>A>>>>>>===>===>=============$$$$!$$$!$!!!!!!!!!!!!!!!!!  !  {èüüüüüüúúúúúú÷É#                                               zâ÷÷óó÷óüþÿþþÿû§~}~~~€€~~~~€~��������‘¡‘���‘‘‘‘‘¡‘‘¡‘‘‘¡¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¢¡¢¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘‘‘‘¡¡¡‘‘‘‘¡‘¡‘¡¡‘‘‘‘‘‘‘��‘‘���~~��~~~~~~~}~}}~}}}}}}}}}}w}}}}|||||||||||wvvwvvpvvvppppppppppoppoopoolololooollollllllllClllCCCCCC???CC??>?>>>>>=>>>>>>>==>=============$$$$$$!$!!$$!!!!!!!!!!!!!!!  C×úüüüüýúúúúúú÷ÙY                                        ›ñ÷ó÷÷÷÷üÿþþÿþô‘}}~~~~~~~~��~~�‘‘����‘‘�‘‘‘‘‘‘‘‘‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¢¡¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡‘‘¡¡¡¡¡‘¡¡¡¡‘¡¡‘‘‘‘‘¡¡‘‘‘‘‘‘‘~�‘���~~€€~~~~~~~~}}}}}}}}}||}|}w||||||||w||vvvw|vvvpvppppppppppppopoooloplllloolllllllllCCCCCCClCC???C????A???>>>>>>=>>>>===================$$$$$$!!!!!$!!!!!!!!!!!! ! $˜òüüüüýüúúúúúúè�                                       ;Êòóó÷÷÷÷þÿþþÿýà€~~~~~~~~~~~~���~�‘��~€��‘‘‘�‘‘‘‘‘‘‘¡¡¡¡‘¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘‘¡‘‘¡‘‘‘¡¡¡¡‘‘�����~�‘‘‘�~~��~~��~~}}}}}}}}}}}}}}}}w}w}}}}}||||vw|||wvvvvpvvvvppvppoopppppoooopolllolloolllllllllCCClCCCCCCC?C??????A??>>>>>>==>=>>========$====$$$$=$$$$!!$$$!!!!!!!!! !!   wæüüüüüüúúúúúúñ–                                               YÞóóó÷÷÷úþÿÿþþý¬~~€~€~~~~~~~~€�~~���~‘~‘���‘‘‘‘¡‘‘‘¡¡‘‘‘¡‘‘¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¡¢¡¡¡¡¢¢¢¢¡¡¡¡¡¡¢¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡�‘¡‘‘‘����‘‘�‘‘�€��~~�~~~~~~�€~~~~}~}}}}}}}}}}|w||w|}||||vwvvvvvvvvvppppppooppoopopopooololollllollllllCllClCCCCCCCCCCl?????>>>>>>>>>>>=>===>=========$$$=$$$$$$$$!$!$!!!!!!!!!!!!!! !   lØúüüüüýúúúúúú÷É#                                              ]ßó÷ó÷÷÷üÿþÿÿþ÷š}}~€}~~~~����~~���‘‘‘‘�‘‘‘‘‘‘�‘‘¡‘‘‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡¢¡¡¢¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡‘¡¡‘¡‘¡¡‘‘‘‘‘¡‘‘��‘�‘‘�‘�����€~~�~€~~~~~~~}}}}}w}}}}|}}}}}}}w||w}}|wwvvvpppvvpvppvpvppppppooopooooolooolllCllllllCllCClllCCCCC?C?A?>????>>>>>>>>>>===================$$$$$$$$!!!!!!!!!!!!!!! ! !! =ž÷üüüüýúúúúúú÷Þ;                                   zâ÷÷÷÷÷óüÿÿÿÿþí‘}}~~€~~~~~�~�€~��‘‘‘‘‘�‘‘‘‘‘‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘‘‘‘‘‘‘¡‘‘¡‘‘‘�‘��‘��‘~~�‘�~~~~~~}~€}~€}}}~}}}}}}}}}}|}||w||||||v|vvwvvvvvpvvp|vvppoppppopooooololllllllllllllllCCCCClCCCClC??C??C??>>>>>>>>>=>>=================$$$$$$$!!!!!!!!!!!!!!!!! !  †òüüüüýüúúúúú÷ßY                                       ”ñ÷÷÷÷ó÷þÿÿÿÿþæ‘}}~~��~��~~���‘‘‘�~‘‘‘¡‘����‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¡¢¢¡¡££¢¡¢¡¡¡¢¢¡¡¡¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘¡��‘‘‘‘�~~~~€�~~~~}}}~}}}}}}}}}}w}|}|}}|wwwwwwwvvwwvvvvvvvpvwvppovvpopoooooooopoooolllllllllllCCClCCCCCClC?CCA?CC????>>A??A>>======>>==========9$$=$9!$!!!!!!!!!!!!!!! ! !!  yèüüüüýüúúúúúúâ_                                �ñ÷ó÷÷÷÷þÿÿÿþþÙ~~~~~~~~~~~~��~‘�‘�‘�‘¡‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢¡¡¡¡¢¡¡¢¢¡¢¡¢¡¡¢¢¡¡¡¢¢¡¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘�‘‘‘‘�‘��‘���~�~~��€~€~~~~}}}}}}}}}}}}}}w}w||ww}žßßßßßßßßßßßßÞÞÞßßÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞßÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÎÎÞÞÞÎÞÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎËÎÎÎÎËËËËËËËËËËËËËËËËËËËËËÈ„[@9!!!!!!!!   ! tàüüüüüüúúúúúúèz                             �ñ÷÷ó÷÷úþÿÿÿÿüÓ}~~~~~~�~~~~€‘‘�‘�‘‘‘����‘¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¡¡¢¡¡¡¢¢¡¢¢¢¡¡¢¡¡¡¢¡¡¢¡¢¡¡¡¢¢¢¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡‘¡¡¡‘‘‘‘‘¡¡‘��‘‘‘‘��~‘��~~~��~~~~€~~~~}}}}|}}}}}}w}ww||w}àþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýúçÈ�;!!!!!!!! ! !!  CÙüüüüüüúúúúúúéƒ                         Çò÷ó÷÷÷úþÿÿÿÿýÒ~~~}��~~~~~~�~�~~���‘‘‘‘‘¡‘�‘‘‘¡‘¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¡¢¢¡¡¡¡¢¢£¢¢£¡¢£¢¢¢¢¢¢¢¢¡¢¡¢¢¢¢¢¢¢¢¢¢¡¢¢¢¢¡¢¡¢¡¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘€€��‘��€€€€€€€€€€}}}}}}}}}}}ww}âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþúÏ_9!!!!!!!!!   C×úüüüüüúúúúúúòƒ              #Éò÷÷÷÷÷úþÿÿÿÿü§~~~~��‘€~~��€�����‘�‘‘‘‘‘¡‘‘‘¡‘‘‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢¢¡¢¢¢¨ÔÚäãææäãææææãääææææàææàææææææææææææàããæààààæàààààààààààààààààààààààààààààßàßßàààßàßàÙßàÙßàÙÙßßÙßÙÙÙÙÞÙÙÙÙÙÙÞÞÞÞÞâõ÷õ÷ò÷÷÷÷÷÷÷ò÷÷÷òò÷÷òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòñòòòññññòóüüþÿÿÿÿ÷ËY!!!!!!! !  >Óúüüüüýúúúúúúò”                        ;Êò÷÷÷÷÷úþÿÿÿÿû§~~€€~~�~~�‘���‘‘‘�‘¡‘‘‘¡‘¡¡¡¡¡¡¡‘¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¢£¡¡¡¢¥Öéûþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþþþþþÿÿþþâ�††���††††††††††{{††{{{†{{{{{y{{{y{yyy{yyyyyyyyyyyyyyxyyxu]xxxxxx]u]]]]]]]]]t]tt]]]]]]]]ZZZZZZZZZZZZZZZZZYYZY_�‚Æçúÿÿÿþá[!!!! !!     =Òúüüüüýúúúúúúõ–                       ;Ìò÷÷÷÷÷úþÿÿÿÿúž~~�~~~~~~�~~‘~~���‘‘��‘‘‘‘¡‘‘‘¡‘¡¡¡‘¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¢¡¢¢¡¢¥Ôõþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâw||wvw||||vvvvvvppvpppvpppppooppooooooooolllolollllClllClCCCCCCC?C?CCA??>??>A>A>A>>===>=====>=========$==$$$$!$9@�Îúÿÿÿñ�! !! !!   =Ò÷üüüüýúúúúúúõ–           ;Ì÷÷÷÷÷÷úþÿÿÿÿú§~~~~~~~~~~~~�‘‘~~�€‘¡‘�‘�‘‘‘¡¡‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¡¡¥ãýÿÿÿÿÿýûøùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùõ÷÷ùõõõõõ÷÷÷õ÷÷õõõõõõõõõõõõõõõõõõõõõõõõõõòõõõâÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÌÌÞÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÉÉÌÉËÉÉÉÈÈÈÈÈÉÉÉÈÈÈÈÈÈÈÈÉÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÆÈÆÈÈÆÂ‚[@9!;„çþÿÿñ_!!!!!!!!   =Ç÷üüüüýúúúúúúõ–        ;×õ÷÷÷÷÷úþÿÿÿÿû§�~�~~~~�‘‘������‘¡‘‘�‘‘‘‘¡¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢¡¡¢¡¢¢¨éþÿÿÿûëÝ­¨¥¦££¦¦£¥¦¦£¥£££¦¥¥¦£¦¥¥««¦¥¥¥¦£¥¥¥¥¥¥¥¥¥£¥¥¤¥¥¥¥¤¥¥¤¤¥¥¤¤¤¤¥¥¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤‘��¤¤�����������������������âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ÷áÃY!!ZÏþÿþáY!!!!   =Ò÷üüüüýúüúúüüõ–         ;×õ÷÷÷÷÷úþÿÿÿÿû§~~�~�~~~~��~‘‘‘����‘�‘¡¡‘‘‘¡‘¡‘¡‘¡‘¡¡¡¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¢¨íÿÿÿûê­££¢¢¢¢¢¢¢¢¢¢¢£¢£¢¢¢¢¢¢¢¡¢££¢¢¡¢¢¢¢¢¡¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡¡‘‘‘‘‘‘‘‘‘‘��~����€��€~~~~~}}}~}}}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñ…9!BÎþÿþË9!!!!  >Ò÷üüüüýúúúúüüõ–        ;Ìò÷÷÷÷÷úþÿÿÿÿû§}~~~€�~��������‘�¡‘‘¡¡‘‘‘‘‘‘¡¡‘‘¡‘¡¡¡‘¡¢¢¡¡¡¢¡¡¢¢¡¡¡¢¤æþÿÿøÔ¢¡££¢££¢¢¢¢££¢££¢£¢¢¢¢¦££¢£££¢¢¡¡¢¡¡¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘¡‘‘¡‘‘�‘‘‘�‘����€‘‘�~~~~€}~~~}}}}}}}}}}}w}|}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ@!Yçÿÿú‚! !!! !   =žúüüüüýúúüüúüõ–     ;Ìò÷ú÷÷úúþÿÿÿÿû§~~~~~~€~~‘~��~�‘‘‘‘‘¡‘¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¢¡¢Ôýÿÿù­¢¢¢¢¢¢¢£¢££¢££££¢¢¢¢££¢¢¢¢¢¢£¢¢¢£¢¢¢¢¢¡¢¡¢¡¢¡¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘‘¡‘‘‘‘��~‘~~~�~�~~~~~€~~~~}}~}}}}}}}|}|}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÈ;!�óÿÿÏ;!! !!  !=Ò÷üüüüýúüüüüüõ–            ;×÷÷ú÷÷úúþÿÿÿÿø§~�~}��‘���~~~���‘��‘‘‘‘‘‘¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¢¡¢¡¨õÿÿûÜ£¢£¢¢¢¢¢¢¢£¢¢¢££¢¢£¢¢££¢¢¢££¢£££¢¢¢¢¢¢¢¢¢¡¢¡¢¡¢¢¢¢¡¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘‘¡‘‘�‘����‘���~�~~~~~}}}}}}}}}}}}www}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú–!9Èþÿü„ !   =Òúüüüüýüüüüüüõ–   ;×÷ú÷úúúúþÿÿÿÿû§~~~~~~�‘�‘‘�~�¡�‘‘��‘‘¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¡¢¡¢¢ãþÿþ㣢¢££¢£¢¢£££¢££¢¢£¢£££¢£¢£¢££¢¢££££¢£££££¢¢¢¢¡¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘‘�¡‘‘�‘����‘~�€€~~~~~~~~}~}}}}}w}}}|}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò[!_óÿÿÎ9 !   =Ò÷üüüüýüüüüüüõ–  ;×÷ú÷úú÷úþÿÿÿÿû§~~~~���€~�‘‘��‘��‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢£¢¢¡¢£íÿÿ÷¨¢¢£¢££££¢£¢£££¢¢¢£¢¢££££££¢¢¢¢££¢££¢££¢££¢¢£¢¡¢¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡‘¡‘‘‘‘‘‘‘�‘������~~~�~€~~~~~~~}}~}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþË99ÎÿÿòY!! !   =Ç÷üüüüýüüüüüü÷–   ;×÷÷úúúúúþÿÿÿÿû§~�€~~€€~~~�����‘�‘‘�‘‘‘¡‘‘¡‘¡¡‘¡¡¡¡¡¡¡¡¢¢¢¢¡¢¢¡¢¢¢¢¢¨ûÿþ䢢¢£¢¢¢£££££¢££££££¢¢££££££¢££££¢¢¢¢¢¢££¢£¢¢¢¢¢¢¡¡¢¢¢¡¢¢¡¡¢¡‘¡¡¡¡‘¡¡‘¡‘¡¡‘¡‘���‘‘‘‘�‘‘�~‘‘��~~~~~~~�~}~~~}}}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòZ!…þÿü„! ! ! =Òúüüüüþüüüüüüõ– ;Þ÷úúúúúúþÿÿÿÿû§~~~~~�~~~~�‘�‘‘‘‘‘¡�‘¡‘‘‘¡¡¡¡¡¡‘¡¡¢¡¢¡¡¡¡¡¢¡¢¢¡¢¢¢¢¡ØþÿýÔ¢¢££¢££££££££££££££££££¢££££££££¢£¢£¢¢¢¢¢¢¢£¢¡¢¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘�¡¡¡‘‘‘‘�����‘‘����~~~~�~~~~}}}}}}}}}}}}}|}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý„![óÿþÆ! !  =Çúüüüüþüüüüüü÷–  ;Þ÷úúúúúúþÿÿÿÿú§~€€~€���‘��‘�‘��‘‘‘‘¡‘¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¡¢£¢¢¢¢äþÿù¨¢¢£££¢£¢£¢£££££¦£¢£££¦£££¢££££¢£¦£¢£££¢¡¢££¢¢¢¢¢¢¢¢¢¢¡¢¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘�‘��‘�‘‘�~~�~�~�~~~~~~~~}}~}}}}}}}w}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÈ9@ðÿÿÎ9!!  =Ç÷üüüüþüüüüüü÷– ;Þ÷úúúúúúþÿÿÿÿú§~�~~���‘�‘‘~���‘¡‘¡‘‘‘‘‘¡‘¡¡‘¡¢¡¡¡¡¡¡¡¡¡¢¡¢¢¡¢¢¢¢¢¢êÿÿõ¦£¢£££¢££££££££¦£££££££££¦££££¦£¢££¢¢£¢£¢¢£¢¢¢¢£¢¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡‘‘¡‘‘‘�‘‘‘‘��~~�~~~~~}~~~~}~~~}}}}}}|}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ9@çÿÿÏ;!    =Çúüüüüþüüüüüü÷– ;Þ÷úúúúúúþÿÿÿÿû§���~��~��‘€�‘‘�¡¡¡¡¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¢¡¢¢¢¢¢¢ëÿÿí¦£¢£££££££¢¢£££¦££¦£¢££££££££¢¦£¢££¦£¢¡£££¢¢¢£¢¢¢¢¢¢¡¢¢¡¡¢¡¡¡¡¢¡¡¡¡‘¡¡¡¡‘¡‘¡¡‘‘‘¡‘�‘‘‘��~‘‘�€�~~���~~}}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Ïÿÿá;!!!! =Çúüüüüþüüüüüü÷– ;Ì÷úúúúúúþÿÿÿÿû§~~��‘�����~�‘‘‘‘‘‘‘¡¡¡¡¡‘¡‘¡¡¡¡¡¢¡¡¡¡¡¡¢¢¢¢¢¢££¢¢¢¢¦íÿÿ룢££££¦£££££¦££££££££¦£¢££££¦££££££££££¢¢£¢££¢¢¢¢¡¢££¢¢¡¡¢¢¡¢¢¢¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘‘¡‘‘���‘‘‘�‘��~�~��~~~�€~}}}}}}}}}w}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!   =Òúüüüüþüüüüüü÷› ;×÷úúúúúúþÿÿÿÿû§~~����~€‘‘‘¡‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¢¡¢¡¢¡¡¡¡¢¡¡¢¢¡¢¢¢¢¢££íÿÿ룣¦££££££££¦££££¦¦£¦£££££¦££¦££££¦£¢£¦££££££¢¢£££¢¢¢¢¢¡¡¡¢¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡‘‘‘‘‘���~�~~€~~€‘�~~~~~}}~}}}}}}}}}}}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!   =Òúüüüýþüüüüüü÷– ;Þ÷úúúúúúþÿÿÿÿû§~�‘�~�����‘‘�‘‘‘‘‘‘‘‘‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¢¡¢¢¢¢£¦íÿÿí£££££¦£££££¦£££¦¦££¦£¦¦¦¦££££¦£££££££££¢£££¢¢£££¢¢¢¢¢¢¢¢¢¡¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘‘‘‘�‘‘���‘‘~~��~€~~~~~~}~~}}}}}}}ww}âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!! !  =Òúüüüüþüüüüüü÷– ;Þ÷úúúúúúþÿÿÿÿû§~~�~�~�‘��‘�‘‘‘‘‘¡‘‘¡¡‘¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¡¢¡¢¢¢¢¢¢£¢¢£íÿÿí££££££¢££££££££¦£££££¦¦£¦¦£¦££¦£££££¦£££££¢£¢¢££¢¢£¢¢¢¢¡¢¢¢¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡‘‘‘‘‘�‘‘~~�‘��‘�~~~~€¤šš§ššš™™™™™™™™˜˜˜™èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!   =Òúüüüüþüüüüüü÷– ;×÷úúúúúúþÿÿÿÿû§�~�~�~��‘���‘‘‘‘‘¡‘‘¡¡‘¡¡‘¡¡¡¢¡¡¡¡¡¡¡¢¢¢¢¢¢¢££¢¢£¢¢£íÿÿ릣££££££££¦££¦¦¦££¦££¦¦£¦¦¦¦££¦£¦££££££££¢¢¢£££¢¢¢£¡£¢¢¡¢£¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘¡¡‘‘¡¡�‘‘��‘�~~�~~~~~€æõèèèééééôôôôôôôõòõûþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! ! !   =Çúüüüüþüüüüüü÷– ;Ì÷úúúúúúþÿÿÿÿû§�~�������‘‘�‘‘‘‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¢¡¡¢£¢¢£££¦íÿÿí¦£££££££¦¦¦££¦¦¦¦££¦££££££¦¦£¦£¦¦££¢£¦£££££££¢¢¢¢£¢¢£¢¡¢¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘‘��‘�‘‘��~~~�~€~‘õôžšž§žžžÇÒÒÊÊÒÓ×××Ùßßààâèèñéôòõ÷÷÷úüýýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!   =Çúüüüüþüüüüüü÷– ;Ì÷úúúúúúþÿÿÿÿû§~~~~�������‘‘‘‘‘‘‘‘‘¡‘‘¡¡¡¡‘¡¡¡¡¢¢¡¢¢¢¡¡¡¢¡¡¢££¢£££¦ëÿÿí¦¦££££££££¦¦£¦¦¦¦¦¦«£¦¦¦¦¦¦¦¦¦££¦¦££¦¦¦£££¦£££¢£££¡¢¢¢¢¢¢¢¢£¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡¡¡¡‘‘‘‘‘¡‘‘�‘�~~��~�‘~~~‘õæ€~€}}}}}}}}}}}}w}}}}}��˜˜˜œžÇÊÞâý÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!  =Çúüüüýþüüüüüü÷–   ;×÷úúúúúúÿÿÿÿÿû§�������‘‘�‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¢¢¢¢£¢££¢¦ëÿÿ룣£££¦££££¦£¦«¦¦¦¦¦¦¦¦©£¦¦££¦£££¦££¦££££££¦££¢££¢¢¢¢¢¢¢¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡‘‘¡‘‘¡‘‘¡‘‘‘‘��‘�~�‘‘�€�~‘òÙ~}~}}}}}}s}}}}|}}ww|||w|||vv||vvppvv†úßÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!  !! =Çúüüüýþüüüüüü÷–   ;Þ÷úúúúúüÿÿÿÿÿû§�~~��€~‘��‘�‘‘‘‘‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢£¢¢¢¢££¢¢¦íÿÿ릣££¦££¦£¦«££¦¦«¦££¦¦£¦¦¦¦£¦¦¦¦¦¦¦££££¢£¦££££££££¢¢¢¢££¡¢¡¢¢¡¢¢¢¢¡¡¡¡¢¡¡¡¡¡¡‘¡¡¡¡‘�‘‘‘‘‘‘�����~�~€~~¤ò×~~}~}}}}}}}}}}}ww}w|}w||||||vvvvvvpp†÷×Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!    >Òúüüüýþüüüüüü÷–    ;Þ÷úúúúúúÿÿÿÿÿû§~~~�~~�‘�‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¡¢£¢¢¢£¢¢£íÿÿ릣¦££££££¦¦¦¦£¦¦«¦¦£¦¦¦¦¦¦¦«£¦¦£¦¦¦¦¦£¦£££¦££££££¢¢¢¢¢¢¢££¢¢¢¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘‘¡¡¡‘‘‘‘���‘�‘�~‘~~~~™õÓ€�~~}}}~}}}}}}w}}}w|}|w}}||w||vvvvvpvpp˜÷ÇÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! =Òúüüüýþüüüüüü÷›   ;Þ÷úúúúúüÿÿÿÿÿû§�~~��‘‘����‘¡‘‘‘¡¡‘¡¡¡¡¡¡¢¡¡¡¡¢¡¡¢¢¡¢¢¢£££¢£££££££¢¦íÿÿ릣££¦¦££¦¦£¦©¦¦©¦¦¦«¦¦¦¦££¦¦«¦¦¦¦£¦¦¦£¦¦¦££¦¦¢¢££££¢££¢¢¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡‘¡‘‘‘‘‘‘���‘¡‘��~��‘€�šôÒ~~~~}}}~~}}~}s}}ww||}||v|w|||v||vv|vpvvp˜÷�Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! !! =Çúüýýýþüüüüüü÷–      ;Ì÷úúúúúúÿÿÿÿÿü§~~�~‘��‘‘‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¡¢¡¡¢¢¡¡¢¢¡£££¦££¦íÿÿ릣££££¦¦¦¦¦£¦¦¦«£¦¦¦£«¦©¦«¦¦¦¦£¦¦¦££¦¦££££¦¦£££££¦£¢£¢¢¢¢¡¢¢¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘¡¡¡¡¡¡¡‘¡¡‘‘‘‘‘‘~���~~�~€šõ§~~~}~}}}~}}}}}}}|}|}w||}||||vvv||vvvv˜ò˜Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! !   =Òúýýüýþüüüüüü÷›              ;×÷úúúúúüÿÿÿÿÿü§�����~�‘��‘‘‘‘¡‘¡¡‘‘¢¡‘‘¡¡¡¡¡¢¢¡¡¢¡¢¢¡¡£¢¢¢¢¡¢£¢£££¦íÿÿë«££¦¦£¦¦£¦¦¦¦©¦¦¦¦«¦¦¦¦¦©¦£©¦¦©¦¦¦£¦¦¦¦¦¦¢£££££¢££¢¢£££¢£¢¢¢¢¢¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘�‘����‘�~�~�~žõ§~}~~}}}}}|}}}|||}w|||||vvvv|vvvvp˜ñ†Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá; !!   =Òúüüüýþüüüüüý÷›           ;×÷úúúúúüÿÿÿÿÿû§�~��~�‘�‘‘�‘‘‘‘‘¡‘‘¡¡¡¡¡¡¡¡¡¢¡¡¡¢¡¢¡¢¢¢£¢£¢££¢£££££¦íÿÿ릦¦¦££¦¦¦©¦¦¦«¦¦¦¦©©¦«¦¦©«¦©«¦¦¦¦£¦£££¢¦¦£¦£££££££¢¢¢£££¢¢¢¡£¢¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡�‘�‘�‘��‘‘���~~�~ž÷™~~~~~~}}}}}}}}}}}}}|w|||||w|v|w|vvvpv›è†Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;!!!!!  =Òúýýýýþüüüüýü÷–               ;Þ÷úúúúúüÿÿÿÿÿû§�~����‘‘�‘‘�‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¢¢¢¡¡¢¢¢¢¢¢¢¢¢¢££¢££¦íÿÿ릦¦£¦¦¦£¦«¦££¦¦«¦¦«««««««¦«¦«¦¦¦¦¦¦¦¦¦£¦££¦££££¦£££¢¢£¢¢¢¢£¢¢¡¡¢¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘‘‘‘‘‘‘‘‘‘��~�~~~Ò÷™~}}}}}}}}}}}||www}}w|||v||vvvvvv|œñ{Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!  =Òúýýýýþüüüüýü÷–                      ;Þ÷úúúúúüÿÿÿÿÿü§��~�‘�‘‘‘‘‘‘‘‘‘‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢¢¢¢¢¢¢£££££¦íÿÿ릣¦¦£¦¦¦«¦¦¦¦©©«¦«¦¦¦«¦¦©¦¦¦©¦¦©¦¦¦¦¦¦£¦£££¦¦££££¦££¢¢¢¢¢¢£¢£¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘�‘‘‘‘‘‘‘��‘‘‘€�~~~Òú™~~~€~}}}}}}}}}}}}}}}w}}|www}v||vv|vvvvv�ç{ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! ! !     =Òúüüüýþýüüýüý÷–                        ;Ì÷úúúúúüÿÿÿÿÿü§‘�~�‘�‘��‘‘‘‘‘‘¡‘‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢££¢¢£¢£¢££££¦ëÿÿ릦¦££¦¦«©¦¦©¦©««©©©©©©«©©¦«¦«¦£¦©¦¦¦©¦£¦¦¦¦£¦£££¦£¢£¢¢£¢¢¢£¡¢¢¢¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘‘‘‘��‘~�‘���~~Ó÷™~~~~~}}}}}}}}}}}}}}}}|||}}|vvvpv|v|ppžçyßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;!!!!! !   =Òûýýýýþýüüüýü÷–                                    ;×÷úúúúúüÿÿÿÿÿû§‘��‘‘�‘‘�‘‘‘¡¡¡¡‘‘‘¡‘¡‘¡¡¡¡¡¢¢¢¡¡¡¡¡¡¡¡¢¢¡¢£££££££¦¦ëÿÿ릦¦¦¦¦«¦¦¦¦¦¦©¦¦¦¦©¦©«««©««¦¦©¦¦©¦«¦¦¦¦¦¦¦£££££££££££££¢¢¢¢¢¢¡¡¡¢¡¢¢¡¡¡¡¡¡¡‘‘¡‘¡‘¡‘‘‘‘��‘‘‘‘~�‘€‘��€Óõš~~}~}~}}}}}}w||||}}}||wwvwvvvvvvvÇçwâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! !! ! =Òûýüüýþüýýýüý÷–                          !      ;×÷úúúúúüÿÿÿÿÿû§~�~��~�‘‘�‘�¡�‘¡¡¡‘¡‘¡‘¡¢¡¢¢¢¡¡¡¡¢¢¡¡¢¢¢¢¢¢££££££££«íÿÿ릦¦¦¦¦¦¦¦©©¦©©««¦©®©©¦¦¦««©«©«««©¦¦¦«©¦££¦¦££¦££¢¢¦£¢£¢£¢¡¢¡¢¡¢¡¢¢¡¡¡¡¡¡¢¢¥¤¡¡‘¡‘¡‘‘‘‘�‘‘‘�‘‘���‘~~�Ù÷¤~~~~~}}}}}}}}}}}}}}}}}|||v|vvv|vvvvvvwÇâwçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!! !  =Òúýüüýþýýýýüý÷›                            B@       ;×÷úüúúüüÿÿÿÿÿü§�~��‘‘‘‘‘‘‘‘¡¡¡‘¡¡‘‘¡¡¡¢¡¡¡‘¡¡¢¢¢¡¡¢¢¡¢¢¢£££¢£££¢¢£¦ëÿÿ뫦¦©¦¦¦¦¦©¦©«¦¦««©«¦®®©©®©©¦©©¦¦¦¦«¦«££££¦¦££££££¢££££¢£¢¢¢¡¢¡¢¡¡¡¢¢¡¡¡¥æõõõé৤¡¡‘‘¡¡‘‘‘‘‘‘‘��~€~�€Ù÷™~}}}}}}}}}}}}}}}}}}}|vvv||vvv|vpvÊßwñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!! !! ! =Òûýýýýþýüüüýý÷›                                          ;Ì÷úüúúüüÿÿÿÿÿü§‘��~��‘‘�‘‘�‘‘‘‘¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¡¡¢¡¢¢¢£¢££¢¢£££££¦¦«íÿÿ릦£¦««¦¦¦¦¦¦©¦««®©®©©©«©©¦«¦®©¦®©©¦£¦¦¦¦««£¦£¢£¦¦££££¢£¢¡¡¢¢£¢¡¢¢¡¢¡¡¡¢äþÿÿÿýþû謡‘‘¡‘‘�‘‘��~�‘�~~~‘àõ™~~~~}}}}}}}}}|}|}w|||w}}w|||w|vvvvpppÌÞwñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!     =Òúýýýýþýýýýýý÷›                                                 ;Þ÷úúúúüüÿÿÿÿÿü§~~��‘�‘�‘‘�‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡££¢¢¢¢¢¢¢¢¡¢¢£££££¢¦íÿÿë«©¦¦¦©©««©®©«©©©¦©©¦®®¦©®«©®«««®¦¦©¦¦¦¦¦¦¦£££¦¦££££££££££¢£¢¢¢¢£¢¢¢¡¡¡¨ûþí÷þüõûþüæ§¡¡¡‘‘�‘‘��~‘~�~�‘æõ�~~~€}}}}}}}}}}}}}w}}}|}||vw|||vvvv|vppÌÌwòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! ! !!!!!  >Òûýýýýþýüüýýý÷–                                                  ;Ìúúüúüüýÿÿÿÿÿü§‘�‘�~�‘‘�‘‘�¡¡¡‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¢¡¢¢¢¢£¢¡¢£¢£¢££££¦íÿÿ뫦©©¦¦¦©«¦©©©©¦«©®©¦®©©©®¦©©¦¦¦¦©«¦«¦««¦££¦££¦££££££¦£¢¢¢¢¢¢¢¢¡¢¡¢¢¢¡¤æþô¥¥ØõûéëýþøÚ¤‘‘‘‘‘‘�����~~�‘èõ¤~�~~~}}}~~}}}}}}}w||}w|}|||}|vvvvvpvvpÞ×{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!! ! ! =Òúýýýýþýüüýýý÷›                                                   ;Ìúúúúúüýÿÿÿÿÿü§��‘��~‘‘‘¡‘‘¡‘‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢£££¢£¢£££££¦«íÿÿ릦¦¦¦¦¦¦¦©¦«©®©©®®®©®«¦©©®®©©©©¦¦©¦¦¦¦££¦¦¦£¦¦££££££££¢£¢£¢¢¢¢¡¢¡¢¢¡¢Øþû­¡¡¡¥àõõäéþþé§¡�‘‘�����‘~~�‘ôõ�~~~~}~}}}}}}}}}}}}}}}}}||||v|v|vv||vpvvÞÊ{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!! !  =Òúýýýýþýýýýýý÷–                                              ;Þ÷úúúüüýÿÿÿÿÿü¨����‘��‘‘¡‘‘¡‘‘‘‘¡‘¡¡¡¡¡¡¡¢¢¡¡¡¢¡¡¢¢¡£¢¢¢£¢¦£££££££¦íÿÿ릦£¦¦¦¦«¦«®«©®©©©®®®®®©®©¦©©®©¦©®«««¦¦¦¦£«¦¦¦£££¦£¦£££¢£¢¢£¢¢¢¢¡¡¢¡¡¥õþ㢡¡‘¡¡§èõàÚõþûऑ���‘������¤õô�€~~~}}}}}}}}}}}}|}}}}||||||||vvwvvvvÞdžúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!     =Òûýýýýþýýýýýý÷–                                           ;Ìúúüüúüýÿÿÿÿÿü§��~~‘�‘‘~‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢£¢£¢£££¢££¦¢££££¦íÿÿ뫦¦¦«¦¦«©©««©©©©«©©®®®®®®©©©®®©©®©«¦«¦©¦¦¦¦¦¦¦££¦££¢£¢£¢¢¢£££¢¢¢¡¡¡¢äþõ¥¡¡¡¡¡¡¡¤ØôíØàüþôÒ‘‘�‘~���~~šúô‘~~~~~}}€~}}}}}}}}}|}||ww||vw||vvwvvvvÞ�†üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáÆÞüçüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@! !!! !  =Òúýýýýþýýýýýý÷›                                               ;×úúüüüüýÿÿÿÿÿü§~����~�¡‘�‘‘�‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢££££¢££¢£££¦£¦íÿÿ릦¦¦«¦«©¦©©«¦©«©©®®®®©®®®®®«©©©®©¦¦¦«¦¦©¦¦¦¦¦¦££££££¢¢££££¢£¢¢¢¢¡¢¢¨ûýÔ¡¢¡¡¡¡¡¡¡‘§æõæÓéýüæš�~‘�~��‘Ùþñ‘~€€~~}}~}}~}}}}}}}|}|}|||||}v||vvvvvpvvÞ�˜üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”ulyñòâþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!! !   =Òûýýýýþýýýýýý÷–                                 ;×÷úüüüüýÿÿÿÿÿü§��‘��‘‘‘‘‘‘‘¡‘�¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¢¢¡¡¡¢¢¢£¢¢¢¢£££££££¢¦ëÿÿ뫦«¦¦¦¦©¦©«®©©©®®®®®©©®®©©®©®©««¦¦¦¦©¦¦¦¦£££££££££££££¢¢£¢¢£¢¢¢¡¢¢¥ëþ餡¡¡‘¡¡¡¡¡¡¡¤ÔéíØØ÷þ÷ؤ‘~��‘Ùýÿ耀~~~~€}}}}}}}}}|}}||}|v}|||vwvvpvvvvßœ˜üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”ullllÆ÷Þ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!! !   =Òûýýýýþýýýýýý÷–                  @×úúüüüüýÿÿÿÿÿü§�����‘‘‘‘‘‘‘¡‘‘¡¡‘‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¢¢£¢£¢¢££¢£¦£££££¦íÿÿ뫦«¦¦¦«¦¦©©««®©©®®®®®®®®®®®®®«¦©©©©¦£©¦¦¦¦«¦¦£££¦£¦££¢££¢¢£¢¡¢¢¢¢¢Ôýû¬¡¡¡¢¡¡¡¡¡¡‘¡‘¡¤ÙôàÒâýýé§‘��Òýÿÿè~~~~}}}}}}}}|}}}}}}|w}}|wv|vv|v|vvvwß›�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüá”uolllllyáçßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!! ! !   =Òûýýýýþýýýýýý÷›                     @×úüüüüüýÿÿÿÿÿü§‘���¡‘��‘‘�‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¢¡¢¡¢¢¢¢¢¢¢¢¢¢£££¢£££¢£¦¦«íÿÿ뫦¦¦©¦©«¦«««©®®®®®®®®©®®®®©©©©««¦©®«¦¦¦¦¦¦«££¦¦£££££££¢¢¢¢£¡¢¢¢¡¡¥õþÚ¢¡¡¢¡¡‘‘‘¡¡¡‘¡‘‘¡§æéØÓõþûÙ¤‘æÿÿÿâ€~~}}~~}}}}}}}}}}}}}}ww|}||vv|vvv||vpwߘÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß›vllllollll–ñÉ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!! !      =Òûýýýýþýýýýýý÷–                  @Ìúüüüüüýÿÿÿÿÿü§~~~‘¡��‘‘‘‘‘‘¡¡‘‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¢¢¢££££££¢£¦¦¦íÿÿë««¦«¦¦«©©©©©¦¦©®©®®®®®®®®®®®®©©©©««¦¦¦¦¦¦¦¦¦£¦££¦£££¢¢£££¢¢¢¢¡¡¡£àþõ¥¡¡¡¡¡¡¢¡‘‘‘‘¡¡‘¡‘�¤ÓèàÒàûþòÓõÿÿÿà‘~~�~~}~~~}}}}~}}||}}}}}|||w|}w||vvvvvvv}Þ™Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿüá”ulooooloollltÎáÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@! !! ! ! ! =Òûýýýýþýýýýýý÷›       @Þúüüüüüýÿÿÿÿÿü§~~�~���‘‘‘‘‘‘¡‘‘¡¡¡¡¡¡¡‘¡¢¡¡¢¡¡¡¢¢£¡¢¢£¢£¢££¢££££££¦íÿÿí«¦£¦¦¦©¦¦®®®©©®®®®©®®®®®©©®®©®®®«©©¦¦«©¦©¦££¦¦£¦¦££££££££¢££¢¢¡¢­ûüÔ¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘‘‘¡‘‘‘šÙæØÓéþþÿÿÿþÙ€~~~~}~€}}}}}}}}|w|}}}||||www|}vv|w|||vv{ßœáÿÿÿÿÿÿÿÿÿÿÿÿüá›voolloloollllll{çÇòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@=Îÿÿá@!!! !!! !    =Òûýýýýþýýýýýý÷›          @Ìúüüüüüýÿÿÿÿÿü§�~��‘‘�‘���‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¡¢¢¢££¢¢¢¢£££¦¦££££¦ëÿÿ릫«¦¦©©«¦¦¦©¦®®««®®®®«®©©®©©©¦¦«¦¦©©¦¦«¦££¦£££££££¦££¢¢¢¢¢¢¢¢¢¢£íþ꣡¡¡¢¡¡¡¡¡¡¡‘‘¡¡¡‘¡‘‘‘‘‘§æàÒÚûÿÿÿþ×€�~~�~}~~}}~}}}}}}}||}w|wwwvv|}vvvvvp{á�òÿÿÿÿÿÿÿÿÿÿüç›vooloooooollllllltÌÞÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!! !  =Òûýýýýþýýýýýý÷›       @×úüüüüüýÿÿÿÿÿü§��‘�‘�‘‘‘‘‘‘‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¢¢¢¢¢¢¢¡¢££¢¢££££¦££íÿÿ뫦¦¦¦¦¦¦¦©©©©®®®©®®®®®®®®®©«««©«©«¦¦«¦££¦£¦££¦££££££¦££¢¢¢¢¢¢¡¡Úþø¨¡¢¡¢¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘�‘‘‘�‘¤ÓæÙÓõÿÿþ×~~}~�}}}~}}}}}}}w}}|}}||w}w||}w|v|vvv{ñÞüÿÿÿÿÿÿÿÿýç�vpopololoolollllllll{á�ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!! !! !  =Òûýýýýþýýýýýý÷›        @×úüüüüüýÿÿÿÿÿü§~�‘�‘‘‘‘�‘¡‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¡¢£¢¢¢¢££¢££££¦¦¦íÿÿ뫦¦¦¦«¦©©¦®®®««©®©©©«®®®©©©«®©©««««¦«¦¦©¦¦¦¦¦¦¦£££¢££¢££¢¢¢¡¢¡§ùþÚ¢¡¡¡¡¡¡¡‘¡¡¡‘‘‘¡¡‘‘¡‘‘‘��‘~‘šÙÚÙüÿþÓ~~~~}}}}~}}}}}}}}}}}w}}}}w}}wvw|vv|wwwv†÷úÿÿÿÿÿÿÿýç�yoopoooooooolllllllllClÉÞÉýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!! !!! ! !   =Òûýýýýþýýýýýýú›   @×úüüüüüýÿÿÿÿÿü§‘~~�‘�‘€‘‘‘‘‘¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡¢¢¡¢¡¢¡¡¢£¢¢£££££££¢£££¦íÿÿ릦£¦¦©«©¦©©¦©©©©©®®®«©©©«©®©®©«©©¦®©©¦«¦¦¦¦¦¦££¦£££££££¢£¢¢¢¢£ãþí¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘€‘§ÙúÿþÙ�~~€~}~~~}}}}}}}}}}}}}ww|||w|vvwwwvvwvœüÿÿÿÿÿÿýè�yvpopoooooooollllllolllll{Ï›çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;;Îÿÿá@!!!!!!      =Òûýýýýþýýýýýýú›    @×úüüüüüýÿÿÿÿÿü§���‘����‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¡¡¢¢¢¢£££¦££££££¦íÿÿí¦¦¦©£¦¦¦©®¦©©©«®¦©®©«®©¦©®®©®©¦«©©©©©©¦¦£¦¦¦££££££¦£££¢¢£¢¢¢¢Ûûû­¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘���‘‘‘��€‘Óúÿæ‘�€~}}}}}}}}}}}}}w}www|vwvv|||vvvvvÇþÿÿÿÿýè�wpopopooooopolooolllllllllllÉÞÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!! !! !        =Òûýýýýþýýýýþýú›      @×úüüüüüýÿÿÿÿÿü§��~���‘‘‘‘�‘‘‘‘¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¢¢¢¢¢£¢¢£¢££££££££¦íÿÿ뫦«¦¦©©«¦©©©«©®©©©®©®©©©®®«¦«©©«©¦©¦¦©©¦¦¦££¦¦¦£££¦£¢¢¢£¢¢£££íþ䢢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘¡‘‘��‘¡‘~~�~~€Óýüב€€~~~}}}}}}}w}}}ww|w}}|w|ww|v|wv†çÿÿÿüç�wpppppppppoooooooololllllllCClyÏ›áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!! !      =Òûýýýýþýýýýýþú–    @×úüüüüüýÿÿÿÿÿü§‘�~�‘‘‘‘�‘‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡¡¡¡¢¢¢¢¡¡¢¢¢¢¢¡¢£££££¢£¦£¦¦íÿÿ뫦¦£¦¦«¦¦««©®©®®©©®®®©®©©®©©«¦¦¦¦£¦¦«¦¦¦¦££¦¦££¦£¢££¢£¢£££¢¢Øþõ¥¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘‘‘‘‘�‘‘�����€��èÿý蚀}}~}}}}}}}}}}}}||}}w|w||wvwvw}�èÿÿüâœwvpvvpoppoppooooloooolllollllllllÆÌ�üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!! !         =Òûýýýýþýýýýýþú–    @×úüüüüüýÿÿÿÿÿü§����‘‘‘��‘‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¢¢¢£¢¢££££¢¢££££¦íÿÿ릣¦¦¦¦©©¦¦«¦©«¦©®®®©«©®«¦©«®¦«©«¦©©©¦£¦¦¦¦¦£££££££££££¢¢¢¢¢¨ùýØ¢¢¡¢¡¡¡¡¡¡¢¡¡¡¡‘‘‘‘¡¡‘�¡‘‘‘���‘‘��€�€žüÿûõÒ€}}}}}}}}}}}}ww|w}||vvw}wwww�çúÿÿòÇw|vvppppppppppopoooooolllolllllllllyÞ›áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!     =Òûýýýýþýþýýþþú›     @×úüüüüüýÿÿÿÿÿü§~���‘�����‘‘¡¡‘‘‘¡‘‘¡‘¡¡¡¡¡¡¡¢¢¡¡¢¡¢¢¢¢¡¢¢¢£¢¦££££¦¦íÿÿ뫦¦¦¦¦¦¦«¦©¦¦©©««©®©©©©«©®©©©©««¦¦¦«¦¦©¦££¦¦££££££¦£¦¢££££¢æþí¥¢¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡‘¡‘‘�‘‘‘‘‘‘�‘���‘~~‘èýÙô÷×�~}}}}}}}}}||}}}|wwv||vwvv˜ßúþÿþç˜vvpppvvoppppppooooooollolllololllllll�Ì›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!! ! !         =Òûýýýýþýýþþþþú›  @Ìúüüüüüýÿÿÿÿÿû§~~~~~�‘‘�‘‘��‘‘‘‘¡¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¢¢£¢¢£££££¢££££¦íÿÿ릦£¦¦£¦¦¦¦«©«©©©©«¦««©©©¦®©©¦¦¦«¦£¦©¦¦££¦¦£¦£¦£¦££¦££¢££¢¢­ûû­£¢¡¢¢¢¢¡¡¡¡¡¡¡‘¡¡‘¡‘¡¡¡¡‘‘‘�‘‘�‘��~~�~�§òôÒèú♀~~}}}}}}}|}}}w}}w}}||}Êô÷âñþâ†pvvvvvvpopppopoppppoolllllllllllllllCCuÞ›Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!! ! !!      =Òûýýýýþýþþþþþú›  @Ìúüüüüüýÿÿÿÿÿû§��~‘‘����‘¡¡‘‘¡¡‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢¢¢¢¢££¢£¢¢£££¦íÿÿí«¦¦¦£¦¦¦¦¦¦««©«¦¦¦¦®®®®©©«¦«©©««¦¦«¦££¦¦«££££££¦£¦¦£¢¢¢££¦ëþ࣢¡¢¢¡¢¢¡¡¡¡‘¡¡‘¡¡¡¡‘‘‘‘‘‘�‘‘¡‘�€~���~~~€§õé§Ù÷ñž~}}}}|}}}}}}w|w}}|w|}žâ÷èÇÞ÷â†vvvppvpppppppppooppopoooooolllllllllllll›Ì–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!!!!!!      =Òûýýýýþýþþþþþú›    @×úüüüüüýÿÿÿÿÿû§��~��~‘‘���‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¢¢£¢¢¢¢¢£¢¢££££¦íÿÿ뫦£¦¦¦¦£¦¦©¦¦©¦©®¦¦©«®©¦©©¦¦¦¦¦©©«¦¦££¦¦¦££¦¦£££££££¢¢¢¢¢Øýùª¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘����‘�‘‘�~~~€�Òõô§Óò÷Ù�}~}}}}}}}|}}w|w|w}™ßòñÊœß÷Ù†vvvvvpppvpopppppopoooooloooollllllllllCCluÞ�Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!      =Òûýýýýþþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§���~�‘‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢£¢¢¢¢¢¢¢£££££¦íÿÿë«££¦©¦©¦©¦«¦«©¦©«©«©©¦««¦««¦«©¦¦¦¦¦¦¦¦¦¦¦£¦¦£££££££¢£¢¢¢¨õþÝ¡¢¡¡¡¢¢¢¡¡¡¡¡¡¡¡‘‘¡‘¡¡‘‘‘�‘‘‘‘‘~�~�~~‘�~~€€§éôÒšà÷èž}}}}}}}}}}}w}œÞõòטÇñ÷ÊwwwvvvpvvvpppppppoooooloooooollooolllllllCCl›ß”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!! !    =Òûýýýýþþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§~~~~��~�‘‘‘‘‘¡‘‘‘¡¡‘‘¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¢¢¢¢¢£££££££¢£¦¦íÿÿí«¦££¦¦¦¦¦¦¦¦¦¦©«©©©¦«¦¦¦¦¦«¦®©¦¦¦¦¦¦¦¦¦¦£££¦£££¢££££££££ãþí£¢¢¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘‘‘‘‘�‘‘‘���‘€�‘�~~€�~€™æõÙ™Óô÷ß™}}}}}}}}}}�žáòôÙ™œß÷èžwv|vvppvpvvvpppppppopopoloooolllllllllllllCCCuÞÆÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!! !        >Òûýýýýþþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§�~~‘���~�‘�‘‘¡¡¡¡‘¡¡‘¡¡¡‘¡¡¢¡¡¡¡¢¢¡¡¢¢¡¡¢¢¢£¢¢¢££££¦íÿÿí¦£££££¦¦¦¦¦«¦¦©¦¦«¦¦©©«¦¦¦¦¦«¦«¦¦¦¦¦£££¦£££¦£££££££££££­ûûÔ¢¢¢¢¡¡¡¡¢¡¡¡¡¢¡‘¡¡¡‘¡¡‘¡‘‘¡¡‘‘‘‘�‘�~��‘€��~�~€~�×õè§™Ùõòßž}}}}™Óè÷ñ×™�ÊôòÌ�|vvvvvpvvpppvpppppoppppopololololllolllolllllCl›ß”òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!!       =Òûýýýýþþþþþþþú›    @×úüüüüüýÿÿÿÿÿü§‘~��~��‘‘‘‘�~�‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢££¢££¡¢££££¢£íÿÿ릦¦£¦£¦¦¦¦¦«©¦¦¦¦¦¦©©©©«©«¦¦¦©¦¦¦¦¦¦£¦¦¦£¦¦£££¦£££¢£¢¢£ëþ棢¢¢¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡‘¡‘‘¡‘‘¡�‘‘‘‘‘~~~€~~€~}~§èò×™žâ÷÷è×ÒÇÒÙèõõæÊ˜�ÓñòߘwvvvvvvvvpvvvpvpvvvpppooooooooloollloolllllllCCClußÉÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!!!!          =Òûþýýýþþþþþþþú›    @×úüüüüüýÿÿÿÿÿü§��~‘~�‘‘�‘‘‘‘‘‘¡¡¡‘¡¡¡¡¡‘¡¡¢¡¡¢¡¡¢¡¡¡¡¢¢¢¢¦¢¢¢¢¢£££¦íÿÿ릣¦£¦¦¦£¦¦£¦«¦¦©««¦¦©¦©¦¦«¦¦£©¦«¦¦¦¦¦£¦¦¦¦££¦£¦¦£££££¢Ôýø¨¢¢¡¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘��~‘‘‘�~�~~€€~�×ñèÊ�žàò÷÷ú÷÷ñÙž�™×èôßœwww||vvwvvvpvpvpvppppppooooooolooooloollllllllCClCll›ç”ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!!        >Òûýýýýÿþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§�~�~‘���~‘‘�‘‘‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¡¢¢¡¢¢¡¡¡¢¢¢££¢¢¢£¦íÿÿ릦¦££«¦¦«¦¦«¦¦¦©¦««¦¦¦¦£¦¦©©¦¦£££¦¦¦¦£¦¦££¦£££££¢¢£¢¡ªõýÚ¢£¢¢¡¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘¡‘‘‘�‘�‘����~��~�~~�‘~~€}}~€€šàôèÇ�™šžÒž™��žàòôÙ™}wwwvvwvvvpvvvpvppppppppppoooooooooooloolllllllllllllCtßÌÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!! !         >Òûýýýýÿþþþþþþú›   @×úüüüüüýÿÿÿÿÿû§�~~�‘�~~�‘‘�‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡¢¡¡¡¢¡¢¢¢¢¢¢¢£¢£££¢££«íÿÿ릣£¦£¦££¦¦£¦¦¦«¦¦¦¦¦¦«¦¦¦¦«¦£¦¦¦¦£¦¦££¦¦£¦¦££££¢£££££Úýí¦£¡¡£¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡‘‘‘�‘‘‘���~~~~~~�~~€}}€žâòà˜}}}žÙñòèÓ�}wwwwvvwwvwvvwwvpvppppppooppoooooooolollllllllllllClllCCC–ç”ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!!!! !!         =Òûþþýýþþþþþþþú›  @Þúüüüüüýÿÿÿÿÿû§~~~����‘‘‘�‘‘‘‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢£¢¡¢¢¢¢¢¢£¢£££¢£íÿÿ릦£¦££¦¦¦££¦¦¦¦£¦¦¦¦¦¦¦¦¦¦¦¦£¦¦¦¦££¦¦££¦£££££¢££££¢£¨ùûÔ¢¢¡¡¢¢¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡‘‘‘‘‘‘‘�‘�~��~~~�~�€~€}~}�×ñè™}™â÷òßž�}}}}vwvw}w|vwvwvpvvvvppppppppooooooopoloolllllllllllllllClluáÞ�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!! !! !       =Òûýþýýÿþþþþþþú›   @×úüüüüüýÿÿÿÿÿú§~~~~~‘‘‘�‘‘‘‘‘‘¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¡¡¡¢¡¢¢¢¢£¢¢¢£¦ëÿÿ릣¦£££¦¦¦£««¦£¦£¦¦¦¦¦¦¦¦¦¦££¦¦£¦£¦¦£¦¦£££¦££¦¦££¢¢¢£ãþ꣢¢¢¡¢¡¢¢¡¢¡¡¡¡¢¡‘¡¡¡¡¡‘‘‘‘‘‘‘‘¡¡‘‘‘�‘‘‘��~��~€�~~~~}}}}}}žòÙßúÙ™}}|vv|wwwvvvvvvvvpvvvpvvvpppppoooopooooololloollllollCllClllCCÅñÅçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;;Îÿÿá@!!!!!! !!       >Òûþýýýþþþþþþþú› @Þúüüüüüýÿÿÿÿÿû§~~��~~�‘�‘�‘�‘�‘�‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¢£¢¢¢¢£¢¢£¦íÿÿ릣£¦£¦¦£¦¦££¦¦£¦¦¦¦¦¦££¦¦£¦¦¦¦¦££¦¦££¦¦£¢££££££££¢¢¨ûø¨¢¢¢¢¢¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘‘‘¡�‘‘~‘��~���‘�‘~~��~~}~}}}}}ßâ�éñ�}}}}wwwww|vwwvvv|vvvvv|pvvpppppppppoooopopoooollollllllllllCClCCtáßÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!!!         >Òûýþþýþþþþþþþú›  @×úüüüüüþÿÿÿÿÿû§��~~~������‘�‘¡¡‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢¡¡¢¢¢¢¢¢¢£¢¡¢¦íÿÿ뫦££££¦¦¦££¦¦££¦¦©¦¦¦£££¦¦¦¦££¦££¦¦¦£££££££££££££££êý䣢¡¢¢¢¡¢¡¢¡¢¡¡¡¡¡‘¡¡¡¡‘¡‘¡¡‘‘‘‘‘‘‘‘‘�‘��~~~~€~�~€~~~€~}}~}}}}Ùæ�éß}}}w}}|www|}wwwv|vvpvpppvppvpppppppooooooooollloollllolllCClClCCCÅòÅçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!! !        >Òûýþþþÿþþþþþþú›@×úüüüýüþÿÿÿÿÿû§�~~~~‘‘�‘‘‘‘�‘‘¡‘‘¡‘¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¢¢¢¢¡¡¢¢¢¢¢£¢££íÿÿ릣£££¦¦¦£££¦¦¦¦¦¦££¦£¦¦¦¦¦¦¦£¦¦£¦££¦¦££££££¦££¢¢¢£ªõþ䣣£¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘¡‘‘‘‘�‘�‘���‘�~~�€~}€~~~}}}}}}}Ùè™ôÞ}|}}w}ww}ww||vvwwvvvvvvvvpppppppppooopooopoooooooolllllllllCCCCClCtççÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!! !! !!! !       =Òûþýýþÿþþþþþþú›@×úüýüüüýÿÿÿÿÿû§�~�~‘��~‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡¡¡¡¡¡¢¡¢¡¡¡¡¢¢¡¡¢¢¡¢¢¢¢£££££íÿÿ릢¢¢£££££££¦¦¦£¦¦¦£¦¦£¦£¦¦£££¦¦¦££££¦£££££££¢££££¢£êþýꨣ¢¡¡¢¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘‘¡¡‘‘¡‘‘‘‘‘‘��‘��~�~~~~€€€}}~}}}Ùé™ô×}w}w|}}wwww|wvv||vvvvvpvvvvvvppppoopppooooooooolllllllllClllllCCCClÅ÷Èáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!! ! !!      =Òûýþþþÿþþþþþþú›  @Þúüüýýüýÿÿÿÿÿú§~�~�������‘‘‘‘‘‘‘‘¡‘¡¡‘¡‘¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¢£¢¡¡¢££¢£íÿÿ릣£££££¦¦¦£¦£££¦¦££¦¦£¦£¦¦¦¦££££¦¦¦£££££¢£¢££££¢£¢¢¥äþþô­¢¡¡¡¢¢¡¡¡¡¡¡¡‘¡¡¡‘¡‘¡¡‘‘‘¡‘‘‘‘‘�‘‘‘‘����€�~~€�€}}}~}}Ùñ™ôÓ}w}}}}wwv|}wvvvw|vvvpvvvvvvvppppvpvpoooooooooollolllllllClClClCCCCCtçòÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!! !!!!       >Òûþýýþÿþþþþþþú› @×úüüýýüþÿÿÿÿÿû§~~~~~�‘����‘�‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¢¡¡¢¢¢¢¡¡¢¢¢¢¦íÿÿ릣¦£££¢££¦£££¦£¦¦£££¦¦¦£¦¦¦¦££¦£¦£££¦£££¢£¦££££¢£££¢£ÚûÿûÚ¥¢¡¢¢¢¡¡¢¡¡¡¡¢¢¡¡‘‘¡¡¡‘¡‘‘‘�‘‘‘‘‘‘~������~~~}~~}}}}}}ßñœñÇ|}}ww}||}|ww|v|wvvvvvwvvvvpppppppopooopopoololllolllllllllllCllCCCCCÃúÏçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!! !!!!!!        >Òûþýýþÿþþþþþþú› @Þúüýýýýþÿÿÿÿÿú§~€‘������‘¡‘�‘‘‘�‘‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¢¡¡££¢£¦íÿÿ릣£¢£££¦£¦£££¦£¦¦¦££££¦££££££¦¦£££££££¢¦£££¢¢¢¢¢¢¢¢£¢¢­ëþþë­¡¢¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡¡‘‘‘‘‘‘‘‘‘�~~��~€€�~~€~€}}}}ßñœñž}}}ww}wwwwvw|wwwvvpvvvvvvppppvpppoppooooooooollllllollollllllClCCllCxòúÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@@Îÿÿá@!!!!!!!! !      =Òûþþþýÿþþþþþþú› @×úýýýýýýÿÿÿÿÿû§€€~~‘‘��‘‘‘‘‘‘�‘‘¡¡‘‘‘‘‘¡¡¡‘¡¡¡‘¡¡¡¡¡¢¢¢¢¡¢¢¢¢¢¢¢¢¢£íÿÿ릣£¢££¢£££¢£££¦£££¦¦££¦£££££££££££¦£¢££¦£¢£££££¢£¢£¢¢¢¡¥ÝûþúÚ¥¢¡¡¡¡¡¡¢‘¡‘¡¡¡¡‘¡‘¡‘�‘¡‘‘‘‘��‘‘�€€€€~�~~€€€€}}}}âèœñž}}w}|}wwww|wwwvvvvvvpvvpppppppppvpppppppooollollollollllCCClllCCCCCCCÉþ÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!! !      >Òüþþþþÿþþþþþþú›@Þúüýýýýýÿÿÿÿÿû§€~~��������‘‘‘‘‘‘¡¡¡¡‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢£¢¢£¢£¢££íÿÿ릢¢¢££¢£¦¦££££££¦£¢£¦£¦¦¦£¦£££¦£¦££¢£££¢££££¢££££¢££¢¢¢¢£­ôþþ訢¡¡¡¢¡‘‘¡‘¡¡¡¡‘‘¡¡‘‘‘‘�‘‘‘��~��€€‘‘€€€€€€}}}}}}}âèžò™}}w}w}w||||||vwvwvvvvvvvvpvppopoppopppoooooooooollllllllCClllCCCCCCCCz÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!! !       >Òûþþþþÿþþþþþþú›@Þüüýýýýýÿÿÿÿÿû§�~�‘�€~~��~‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢¡¡¢£¢¢£¢¢¢¢íÿÿ룣¢£££¦££¢£££££££¦£££¢£££££¢£¦¦¢££¦£££¢¢¦£££¢¢£¢¢¢¢¢¢¡¡¢¡¡¥äûþøÚ¤¡¡¡¡¡‘¡‘‘‘¡¡¡¡¡¡‘‘¡‘‘‘‘‘‘‘��‘�€�~€~~�~}}€}}}}èèÒõ™}}}w}w|w}w}|wvvvvvvvvvvpvvvppppvpopppooooopollooltllllClllolllClCCClƒÏýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!! !       >Òüþþþþÿþþþþþþú›  @Ìúýýýýýþÿÿÿÿÿú§�~€~~~~�‘~‘‘��‘‘‘‘‘‘¡¡‘¡¡‘¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¢¡¢¡¡¢¡¢££íÿÿ룢¢£¢¢¦£¢££££££¦¦££¦££¦¦££¢£££¦£££££££¢££¢¢££¢¢¢£¢¢¢¢¡¡¢¢¡¢¢­ôþýè§¡¡¢¡¡¡¡¡‘¡‘‘‘‘‘‘‘‘‘‘‘�‘‘�‘‘‘€�‘�~~�~~€}}}}}}}}}èèÒò˜w}w}}}ww}wvv|wwwvvvvvvvvvvppvvppoppoooooooolooollolllllllCClCCClCC{Î÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;;Îÿÿá@!!!!! !!       >Òüþþþþÿþþþþþþú› @×üüýýýýþÿÿÿÿÿø§~�~~~�~~����‘‘‘‘�‘‘¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢¡¡¡¢¢¢¡¢£íÿÿ릣¢£¢£¢¢£¢£££££££¦£¦£££¢£¦£££££¢£¦£££¢¢£¢££¢¢¢¢¢£¢¢¡¢¡¡¢¢¡¡¡¡¥äûÿ÷ؤ¡¡¡¡¡¡‘‘‘‘‘‘‘‘‘‘‘¡‘�‘‘��‘���€~€�}}}}}}}èèÇò˜ww}ww}ww|wvvwwww|vwvvvvpvppppvpppppppoooooolooolllollllllllCClCCxËòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!!! ! !      >Òûþþþþÿþþþþþÿû›   @Þúýýýýýþÿÿÿÿÿú§€€�€‘��‘���‘‘‘‘‘‘¡¡‘‘‘¡¡‘¡¡¡‘¡‘¡¢¡¡¡¢¡¡¡¡¡¢¢¢¢¢¢¢¢£íÿÿ룢¢¢££¢££££££¢£££¦££¢£¦££¦£¦£¢¢¢££¢¢££££££££¢¢¢¢¢¢¡¢¢¢¢¢¡¢¢¡¢¡¡­õþýæ§¡¡¡‘‘‘¡¡¡¡‘‘‘‘‘‘‘‘‘‘€€‘‘€€~�€~}}}}}}�ñèÒñ�}}w}}w}}}wwwwwvvvvwvvvpvvvpvvpppppppooooopooootllollllllllCCllxÉòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@ !!!! !! !!      >Òûþþþþÿþþþþþÿû›@Þúýýýýýþÿÿÿÿÿú§€~~~�‘�~�~~‘¡‘‘¡‘‘¡‘‘‘¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢¢¢¢¢íÿÿí¢¢£¢¢£¢£££££¢¢££££££¢£££££¢££¢££££¢¢¢££¢£¢£¢¡¢¢¢¢¢¢££¢¢¢¢¢¢¡¢¡¡¢¥ÚûþùÔ¤¡¡‘¡¡¡¡‘‘‘‘‘‘‘‘‘‘‘€€‘‘€~��~€€~€€~}}}}}}}}�ñâÊè�}}}w}w|ww||wwvv|vvvvpvvvvvppvvppopopoppooooooolllllllllllClCyÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!!!! ! !       >Òûþþþþÿþþþþÿþú›  @Þüýýýýýþÿÿÿÿÿú§���~‘�€~����‘��‘‘�‘‘‘‘‘‘‘¡‘¡¡¡¡‘¡‘¡¡¡¡¢¢¡¢¢¢¡¢¢£¢¢£íÿÿí£¢¢£¢££££¢£¦£££££¢£¢££££££¢££¢££¢££¢£¢¢¢¢¢£¢¢£¢¢£¢¢¡¢¢¡¡¡¡¡¡¡¡‘¢¡¤­íþü楑¡¡‘¡¡¡‘‘‘‘‘‘�€‘�‘‘€€~~€€�€�€~~~}}}}}}}}}�ôâÊè�wwww}}wwww|wwvvvvvvvvvvpvvvvvvpvppppoooooolllloolollllllllyÅñýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!! !! !! !      >Òüþþþþÿþþÿþÿþú› @Þúýýýýýþÿÿÿÿÿú§~~~~�~�‘������‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¡££íÿÿ룣£¢¢¢£££¢¢¢£¢£££¢££££¢¡£¦££¢¢£¢£¢£££¢¢¢¢££¢¢£¢¢¢¢¡¡¡¢¡¡¢¡¡¡¢¡‘¡¡¡‘¤ÙúþõÓ¡¡‘¡‘‘‘‘‘‘‘‘€‘‘‘�~~€��€~€~€}~€}}}}}}}}�òàÓæ†w}}w}w}wwwwwvvvwvvvvvvpvvvpppvoppppopoopooooooollllllllluÅçþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!! ! !!        >Òûþþþþÿþþÿþÿþú›@Þüýýýýýþÿÿÿÿÿú§��~~€€~‘‘���‘�‘‘�‘‘‘¡¡‘¡‘¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢£íÿÿí£¢¢¢¢¢¢¢¢¢¢¢£££¢¢¢£¢¢£¦££££¢¢¢¢¡££¢¢£¢£¢¢¢£¢¢¢¡¢¢¢¢£¡¢¡¡¡¡¡¡¡¢¡¡¡¡¢¡¡§èýýॡ‘‘‘‘‘‘�€‘‘‘‘€‘‘�€€€‘€€€}}€€}}}}}�òà×â}}}w}}}wwwwvvvwwvvvvvvvvppvoppppopppoluoloopollooolloou›çüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!!!! !     >Òüþþþþÿþþÿþÿþú› @Þüýýýýýþÿÿÿÿÿú§}~~~~~~~�‘�~‘‘‘��‘‘‘‘‘�‘‘‘‘¡‘‘¡¡¢¡¡¡¡¡¡¡¢¡¡¢¢¢¢¡¡¡¡¢íÿÿí£¢¢¢££¢££¢¢¢££¢£££¦££££¢£££££££¢£¢¢¢£¢££¢¢¢¢¢¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡‘¡¡¤ÙúþõÒ¡‘‘‘¡‘‘‘‘‘�€€€€�‘€€€€~~�}€€}}}~}}}}�òàÙâ}}}wwwwwwvwwwvvvvvvvvvvvvpppppvvpopppoouoopooloooololt”áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@@Îÿÿá@!!!!!!!! ! !!!!     =Òüþþþþÿÿþþÿþÿú› @Þüýýýýýþÿþÿþÿú§}~�~~~~~�‘‘‘‘‘‘‘‘¡‘‘‘‘�¡¡‘‘‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¢¢ôÿÿ룡¡¢¢¢¡¢£££¢¢¢¢¢¢¢¢¢¦££¢¢¢¢£¦¢£¢¢¢£¢¢¢¢¢¢£¢¡¢¢¡¢¢¢£¢¢¢¢¡¢¢¡¢¢‘¡¢‘¡¡‘‘‘‘¡§ôþûؤ‘‘‘‘‘‘‘‘‘���€€�€~€�€€€€€}}}}}}}}�òßÙßwww}wwwwvwvwwvvvvvppvvvvvpvppppppoopppoopooolooolloƒÏúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!! !!  ! ! >Òüþþþþÿþþþÿþÿû› @Þüýýýþýþÿÿÿÿÿú§~~€�~��~��~~~‘‘€��¡‘‘‘‘‘¡¡‘¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡‘¡¢¡¢¡¡¡¢¢íÿÿ룣¢££¡¢££¢£¢¢££¢££¢¢£¢¢££¢¢¢¢£¢££¢¢¢¢¢££¢¢£¢¢¢¢¡¡¡¡¡¡¢¡¡¡¡¢¡¡¡¢¡¡¢¡¡¡‘‘‘‘¤àýý褑‘�‘‘€�‘‘‘‘€‘€€€€€€€€€}€}}}}}}}}}�òÙÙàw}}wwwwvwwwwvvvvwvvvpvvvvpvppppvvopppopoouollollt{Îúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç;;Îÿÿá@!!!!!! !!! !     >Òüþþþþÿþÿÿþÿÿý› @Þüýýýýýþÿÿÿÿÿø§€~~€‘‘€‘~�~€€���‘��‘�‘‘‘‘‘¡¡¡¡¡¡‘¡¡¡¡‘¡¢¡¡¡¡¡¢¡¡¡¡£íÿÿ룢¢¢¡¡¢¢¢¢¢¢¢¢¢¢¢££¢¢££££¢¢££¢¢¢¢¢£¢¢¢¢¢£¡¡¢¢¢¢¢¢¢¡¡¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡‘‘¡‘‘‘‘¤æÿþØ‘¡‘‘‘�‘�€�������€€€€€}}}}}}}}}}�òÙßà}www}wwwwwvvvvvvvvvvvvwppvvvvvppppppooooouuloolo{Éòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!9!!!!!!! !!    =Òüþþþþÿþþþÿÿÿý›@×üýþýýýþÿÿþÿÿú§€~~€~€€‘��‘�~���‘�‘‘¡‘‘‘‘¡‘¡¡‘¡¡‘‘¡¡¡¡¡¡¡¡¡¢¡¡¡¢¢¢¢íÿÿ릣£¡¡£££¢£¢¢£££¢¢¢¢¢££¢¢¢¢¢¡£¢¡¢¢¢¢¢¢¢¡¡¡¡¢¢¢¡¡¢¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡‘¡¡‘‘¤Ø÷ý襑‘‘‘�‘‘‘‘‘‘€€����€€€€}€~}€~}}}}}}�õ×àß}}w}}ww}wvwvvvvvvwvvvvwvvpvvvpppppoppopoooooooyÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!! !!!! ! !    !=Òüþþþþÿþþþÿÿÿü› @Þüýýýýýþÿÿÿÿÿú§€~~~�~€~�����‘‘€‘�‘‘‘‘‘‘‘¡‘‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¢ôÿÿí¢¡¢¢¢¢¢¢¢¢¢¢¢¢¢£¢¢£¢£¢¢¢££¢¢£¡¢¢¢¢¢¢¢¢¡¡¢¢¢¢¡¢¡¡¢¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¤ÓõýúÙ¤‘‘‘‘‘‘‘�‘�€€~��€�€€€}}}}}}}�ò×âà}}ww}|wwvvwvwwvvwvvvvvvvvvvppppopppupoopolpouÅñýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç;9Îÿÿá@!!!!!!!!!!!   >Òüþþþþÿþÿÿÿÿÿý›  @×üýþýþþþÿÿþÿÿú§~~~~�~€��€�€€��‘‘�‘‘�‘‘‘¡‘‘‘�‘‘¡‘‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢ôÿÿ룢¢¡¢¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢£¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡£¢¢¢¢¢¡¡£¡¡¡¢¡¡¡¡¡¡¡¢¢¡¡¡¡‘‘‘¤Òéýûæ§‘‘‘‘‘‘‘‘‘�‘€�‘€€�€€€€}€}}}}}}}}}�ò×âß}}ww}wwwwwwwwwvvwvvvvvppvppoopvpopopppvpoooyÌüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!! !! !!    >Òüþþþþÿÿþÿÿÿÿý›   @Þüýýþþþþÿþþÿÿú§~~~€�����~~�‘�‘‘��‘�‘‘‘‘‘‘¡‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¤¢íÿÿí£¢¢¡¢¢£¢¡¢¡¢¢££¢¢¢¡¢£¡¢¢¢¡¢£¢¢¢¢¢¢¢¢¡¢¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡¬ëýýô­’‘‘‘‘�‘‘‘�€�‘€€~‘€€€€€€€}}}}}}}}}™ò×èÞ}}wwwwwwwwwvvvvvvvvvpvvvvvvpppvpopppoopoooo”ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá@!!!!!! !! !   >Òüþþþþÿÿÿÿÿÿÿý›@Þüýýþþþþÿÿþÿÿú§~�~~�€�~~~�����€��‘‘‘‘¡‘‘¡‘‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£íÿÿí¢¡¡¡¡¡¢¢¢¢¢£¡¢¢¢¢¢¡¢¢¢¢¢¢¡¢¢¢¢¢¢¢¢¢¢¡¢¢¢¡¡¢¢¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡‘‘‘§èüþõؤ‘‘‘‘‘��‘‘‘�‘�~€€‘€€€€€~~€€~}}}}}}}}}}}™õ×âÙwwwwww}}wvvwvvw|vvvvvvvvvpppppppvoppooooooou˜Ìòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!!! !  =Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþÿÿú§~€€~~~€€�~�‘~‘�‘‘��‘‘¡‘¡¡‘‘‘¡‘¡¡¡‘¡‘¡¡¡‘‘¡¡‘¡¡¡¡¡¡¢íÿÿ룢¢¡¡¡¡¡¢¡¢¡¢¡¢¢¡¡¡¡¡¢¢¢¢¢¢¢¡¢¢¢££¢¢¡¢¡¡¢¡¢¡¡¡¡¡¢¢¡¡¡¡¡¡¡‘¡¡‘¡‘¡§àúþ÷Ù¤¡‘‘‘‘‘‘‘‘�‘€‘‘�€€‘�€�€€~}€}}}}}}}}}}™òÊçÙ}}}w}wwvwwvwvwwvvvvvvvpvvvvvppvpvppoopooooop”Ç�Ì÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!! !! ! ! >Òüþþþþÿÿÿÿÿÿÿý› @Þüþþþþþþÿþþþÿú§~~~~~~~~€€��~�€����‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡¡¤ôÿÿ颢¢¡¢¢¢¢¢£¢¡¡¡¢¢¡¡£¢¡¢££¢¢¡¡¢¢¡¢¢¡¡¡¢¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡§ä÷þûà§‘‘‘‘‘‘‘‘‘‘‘€‘€‘‘€€�‘�€‘€€€€€}}}}}}}}}w™òÊâÞw}ww}wvwwvvvvvvvvvvvvpvppvppppppooooopoolooooƒÌÌÇáüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@@Îÿÿá@!!!9!!!!!  >Òüþþþþÿÿÿÿÿÿÿý› @Þüþþþþþþÿþþÿÿú§~~}€}~€€‘€~�~~€‘‘��‘‘‘‘‘‘‘‘¡‘‘�‘¡‘¡‘¡‘¡¡¡‘¡¡‘¡¡¡¡¡£íÿÿ颡¢¡¡¡¢¡¡¢¡¡¢¢¢¢¢¡¢¡¡¢£¡¡¡¡¡¢¢¡¢¡¡¢¢¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ùøþýè§‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€�€€�‘‘€€€~}}}}}}}}}™òÊâÙ}wvvwww}wwvvwvvvvvvvvvvppvpoppooppoppppupoooooy�ÞÉÇñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!! !!! !   >Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþÿþÿúž~~€€~€€€�‘��‘�‘��‘‘‘‘¡‘‘‘‘‘‘‘‘¡¡¡‘¡‘¡¡¡‘¡¡¡¡¡¡¡‘¤íÿÿí¢¡¡¢¡¢£¢¡¡¡¡¢£¢¡¡¡¡¡¢¡¡¢¢¢¢¢¢¡¡¡¢¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡¢¡¡‘‘¡¡¡¡‘¤Ôõþý鬤‘¡¡‘‘‘¡¡‘‘‘‘€‘‘~�‘‘�€€�€€€}€€€}}}}}}}}w}ww}™ôÒè×}wwwvwvwwvwvvvwvvvvvpvvvpppppvppooppooouoolloooo”ÌÞ�Ì÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!!!!!! !! !   >Òüþþþþÿÿÿÿÿÿÿý›    @Þüþþþþþþÿþþþþú§~~}€~€~~€~‘�~€���‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘¡‘‘‘¡¡¡¡¡‘¡¡¡¡¡¡¢íÿÿí¢¡¡¡¡£¢¡¢¡¡¡¡¡¡¡¡¢¡¢¢¡¡¢¢¢¢¡¢¡¡¢¢¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¤­íüýõÓ¤‘‘‘¡‘‘‘‘‘�‘¡‘‘‘‘‘‘€‘�€~€€€€€€�€€}}}}}}}}}}}}ww}™ñÇâ×w}w}w}wwwwwwvwwvwvvvvvvvppppoppoooupoooooloooololu�ßÌ�ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!! !!! =Òüþþþþÿÿÿÿÿÿÿý›      @Þüþþþþþþÿþþÿþú§~}}}€€€��€‘€€‘‘�€~€‘‘‘��‘‘¡¡‘¡‘‘‘¡‘¡‘‘‘¡‘‘¡¡¡¡¡¡¡¤íÿÿí¢¢¢¡¡¡¡¡¡¢¢¡¡¡¢¢¡¢¢¢¡¡¡¡¡¢¡¡¢¢¡¢¡¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡‘‘¡§æüþõؤ¡¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘�€‘‘‘€€~€€€~€}€~}}}}}}}}}}}™ôÇâÓw}www}wwv|wwvwvvvvvvppvvvvvvoopuoopooooooloooloolloƒÌßÇÉòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!! ! !  >Òüþþþþÿÿÿÿÿÿÿû›   @Þüþþþþþþÿþþÿþú§}~~~€€€~~€€€€€€��€‘�‘�‘‘‘‘‘‘‘‘‘‘¡¡¡¡‘¡¡‘¡‘¡¡¡¡¡¡¢íÿÿí¢¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¤¡¡¢¢¡¢¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¤¨àûþùॡ‘¡‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘�~€‘€‘€€�‘‘€�€€}€€€}}}}}}}}}w™ñÇâÊ}}w}wwwww|vvvwvvvvvvvvvpppvppvpoouppoloooopolltlllllu�ßÎÅÞúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!! !  =Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþÿþ÷§~~€€~€~€€€€‘€€�‘��‘€‘‘‘€�‘¡‘‘‘‘‘‘‘‘‘¡¡¡¡¡‘‘¡¡¡¡¡¡éÿÿ餡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¤Øõýû模‘¤‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘��‘€‘‘€��€�€€€€�€}€}€}}}}}}}}}}}}™èžâÊww}ww|www|vvvvvvvvvvpvvppvopvvooooooooopooololoollollo{ÌáÉ�çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!   =Òýþþþþÿÿÿÿÿÿÿý›      @Þüþþþþþþþþþÿþú§€}€€€€€~�€‘�‘���‘�‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡‘‘‘‘¡‘‘‘¡¡¡¡¡¡¡éÿÿ褢¡¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¥æýý鬒¡‘¡‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘€��‘€€‘€€€€€}}}}}}}}}}}}ww}™èžâÊwwwwvwwvwwvwvvvvvvvvvvvvvppppppoopoooopoooolollolllllllt›ÞÞÅÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!! !!! =Òüþþþþÿÿÿÿÿÿÿý›       @Þüþþþþþþþþþþþú§}}€~€€‘€€€�€�‘‘��‘‘‘‘‘‘‘‘‘‘‘¡‘‘¡¡‘‘¡‘‘‘¡¡¡¡¡¡¤ôÿÿ颡¡¢¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¢¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡‘¡¡¡¡‘¡Úýùؤ¡¡¡‘¡‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘�‘‘€€�€�€‘€€€€€€€€€€}}}}}}w}}w}™èžâÇww}wvvwwvvvwvvwpvvvvvvpvpppvppppopoooouoloolollllllllllllxÈáÌÅçýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!!! !! ! =Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþþþú§}}}}~��~€���€€‘€‘‘‘€�‘‘¡‘�‘‘‘‘‘‘‘‘‘‘¡‘¡¡¡¡¡¡¡¡¢ôÿÿí¢¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¡¢¡¡¢¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ùø¬¡‘¡¡¡‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘�€�‘€€€�€€€€€€}€}}}}}}}}w}}}}™éžâžwwwvwwwwvvvvwvvvvvvvvvpvvvppooppppouooooouololoollllCllllCt”Þ߯Èòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!! ! ! !  =Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþþþ÷§}€€€€~}€€�‘‘�€‘‘€��‘‘‘��‘‘‘¡‘‘‘‘‘‘¡‘¡¡‘¡¡‘¡‘¡éÿÿé¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¢¡¡‘¡¡¡¡¡¡‘¡‘¬ùØ¡¡‘‘¡‘¡‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘‘€�€‘€€€€€€~€}€}}€}}}}}}}}}}}w}}™èžâž}}wwwwvvwvvvwvvvvwvvvvppvvpppppuoooooooooooolllllllllllClllCuÆáÞÆáüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!! ! ! =Òüþÿþþÿÿÿÿÿÿÿý›      @Þüþþþþþþþþþþþú§}}}€€}~€€�€�€~~~‘�€~‘�‘�€�‘‘‘‘‘�‘‘‘‘‘‘¡‘‘‘‘‘¡‘‘¡¡¤éÿÿ褡¡¡¡¡¡¡¡¢¡¢¢¡¢¡¡¡¡¡¡¡¡¢¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡‘¤íô¤‘‘‘‘‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘€‘€‘€€�€€€}€€}}}}}}}}}}}}}w}œèžâžww}wwwvvvvvvvvvvvvvpvvppvvppppppopopoooooolllllollCllllClCClllƒÞçÌÉñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@@Îÿÿá@!!!! !!!! ! =Òýþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþÿþþþþ÷§}}}}~€€~�€€€���‘‘€‘��‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡¡‘¤íÿÿ餡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡ØúØ‘‘¡¡‘‘‘‘‘‘‘‘�‘‘‘‘€‘¡‘€‘‘‘€�‘‘�~�‘€€€}}}}}}}}}}}}}w}w}wœèžâž}wwwwwvvvvvvvvvvvvvvpvpppppppoppovoooooollololloollllllClllllCCuÆçáÈÏúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!! !!! ! ! ! =Òýþþþþÿÿÿÿÿÿÿý›  @Þüþþþþþþÿþþþþú§}}}€}€}€€�€€�‘��€���€€�‘‘‘‘€‘‘‘‘‘‘‘‘‘¡¡¡‘¡‘¡¡¡¤ôÿÿ餑‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡‘¡¡šõô¤‘‘‘¡‘‘¡‘‘¤‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘€€��€€€}}}}}}}}}}}}}}}w}}w}wœèžâžw}wvvvwwvwwvvvvvvvvpvpvvvpppppppooopoouoltooollllllllllCClCClCCClƒÏòáËñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@9!!!!!!! !  =Òüþþþþÿÿÿÿÿÿÿý›   @Þüþþþþþþþþþþþ÷§~}€}}€~~�€‘‘�€€€€�‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘¡¡¤íÿÿ颡¡¡‘¡¡¡‘¡¡¡¡‘¡¡¡¡‘¡¡¡¡¡‘¡¡¤¡‘‘‘¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘‘‘‘‘¤ÙúÓ¡‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘€��‘€€€‘€€€€}}}}}}w}w}}w}}žèžâžwwvvwwvvwwwvvvvvvvvpvppvpvppppooooooooollouolooltlllllllllCClCCCCCtÆñòßñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! !!!! !! =Òüþþþþÿÿÿÿÿÿÿý›  @Þüþþþþþþþþþþþ÷§}}}}}~€€€€��€€~€€€‘‘€€€‘‘�‘‘€‘‘‘‘¡¡‘‘‘‘‘‘‘¡‘‘¡‘¤ôÿÿé¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡‘‘¡¤¡¡‘‘¡¡¡¡¡‘‘‘‘§õ餑¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘€€€�€€€�€‘€�~}€}}}}}}}}}}}}}}}}}}}žèžâžwwwvwwwvwvvvwvvvvvvvpvppppoopuouuuoooooooloutolllllllllllClCCCCCCCCCzáýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! !!! ! =Òüþþþÿÿÿÿÿÿÿÿý›  @Þüþþþþþþþþþþþúš}}}}~}~€€€��€€�‘€€�‘‘‘�‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¡¡‘¤éÿÿé’‘¡‘‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡‘‘¡¡‘¡¡¡¡‘‘¡¡‘¡¡¡¡¡‘¡‘‘‘‘‘¤¡‘¡àúÓ¡‘‘‘‘‘‘€�‘‘‘€‘‘‘‘‘‘‘‘€€‘€€€‘€€€€�€}}}}}}}}}}}}}}}wžèžâžww}w}wvvwvvvvvvvppvvvvpppppppppoooulooooollooolllltlClllCllCCCCCCCCCCÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!! ! ! =Òüþþþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷ž}}}€€€€€€‘€€��‘~€‘€‘€‘‘‘‘‘‘‘‘�‘‘‘‘‘¡‘‘‘‘¡¤éÿÿ褑¡‘‘‘¡¡‘¡¡¡‘¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡‘¡‘¡¡‘‘¡¡¡¡‘‘¡¡‘‘¡‘‘¡¡‘¡‘§õñ¤‘‘‘‘‘‘‘‘‘‘‘�€‘‘€€€�€‘€��€€€€€€€}}}}}}}}}}}}}}}}}wwwžèœâœwwwwvvvwwvvvvvvvvvvvvpuvpuvpopvoopuoooooooolollolllllollCClCCClCCCCCtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!! ! !! ! =Òýþþþþÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷§}}}€€~�€€�€€‘€€‘€€‘‘‘�‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘¡¤éÿÿè’‘‘¡¡‘¡¡¡‘¡¡¡‘¡¡‘¡¡¡‘¡‘¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘¡¡‘àüÓ‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘€‘€€€€€€€€}}}}}}}}}}}}}}}}}}wwwžèœâœwvvvvvvwvvvvvvwvvppvppvvpppupupoopooouoolollloltlltllllllllCCCCCC?CCÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!! ! ! =Òýþþþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷§}}}}}€}}}}�~€€€€€�~��‘‘‘��‘‘�‘€‘‘‘‘‘‘‘‘‘’¡‘‘‘‘éÿÿ褑‘¡¡‘‘‘‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡‘¡‘‘‘¡¡‘‘¡‘‘‘‘‘¡¡‘‘‘‘¡¡‘‘§÷ô¤‘‘�‘‘‘‘‘‘‘‘€‘€‘€€€€�€€€€€}}}}}}}}}}}}}}w}}}�×ñœèטwwwwwvvvvvvvvvvvvvvvpvpvvppoupopoptooloooltllllllllCClllCCllCCCCCC]ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!!  =Òýþþþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷§}}}}}€}€€€~~€€‘€€€€‘���€€‘‘‘�‘€�‘‘‘‘�‘¡‘‘‘‘¡éÿÿè’‘‘¡‘‘¡¡¡‘‘¡¡¡‘¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡‘‘¡‘‘¡‘‘¡‘‘¡¡‘‘‘‘‘‘‘‘‘àýØ‘‘�‘‘‘‘�‘‘‘€‘€€€‘€€�€€€€€€}€€}}}}}}}}}}}}}}}}}w�×ôú÷œòúòß�wwwvvvwvvvvvvvvvvvpppppvpppoooooooolololotttllllllllllCClCCCCCCCÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá@!!!!!!!!!!! =Òýþþþÿÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷§}}}}}}}}€~€€€€€��‘�‘‘‘€‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘¡‘‘éÿÿ褡‘‘¡¡‘¡‘‘¡‘‘¡‘‘¡¡¡¡¡‘¡‘‘¡¡¡¡¡‘¡¡‘¡¤¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘¡§ûõ¤‘‘‘‘��‘‘€€‘‘‘€€‘€€€€€€€€€€€}€}}}}}}}}}}}}}}}}}}}œèõâßôœßÊÞèòÙ†vvvvvvvvvvvppppvppvuppuoooooooooooouoolollllllCClCCllCCClCCCCxñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!$!!!!!  =Òýÿþþþÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷§}}}}}}}}}€~}}€€}€€€~€€�€‘€‘��~�€‘‘‘‘‘‘‘�‘‘‘‘‘¡‘‘‘éÿÿ褑‘‘‘‘¡‘‘‘¡‘‘¡¡‘¡‘‘‘‘¡¡‘‘¡¤‘‘‘¡‘‘¡¡‘¡‘’‘‘¡‘‘‘‘‘¡‘‘‘‘¡‘‘‘àýÙ‘€‘‘���€€€€€€€€€€‘�€��€€€}}}}}}}}}}}}}}w}}žñèœÊòžß�w†Êè߆vvvvvvvvvvvvvpvvvupvuppuopppouuoooooollllllCltlllllClCClCCCtÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!! !  =Òýÿþþþÿÿÿÿÿÿÿý›BÞüþþþþþþþþþþþ÷§}}}}}}}}}€€}€€€€€€~€€‘‘�€‘‘‘‘�€‘‘‘‘‘‘‘‘‘‘’éÿÿ餑¡‘‘¡‘‘¡‘‘‘¡¡‘¡‘‘‘‘¡¡‘‘‘‘‘‘¡‘¡‘‘‘‘¡‘‘¡‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘§û÷š‘�‘�‘�€�€€€€‘�€€€€€€€€}}}}}}}}}}w}www™èâ˜�×òýôú×{wwœèÌwvvvvvvvpvvvvvvppopuoouuooooouooooloolollllllllllCllCCCCCCCƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!! !  =Òýÿþÿþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷§}}}}}}}}}}}€€~€€�€€€€‘€€�€‘�‘‘€�‘‘‘‘‘‘‘‘‘‘‘‘‘éÿÿ餑‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘’‘‘‘‘‘‘‘‘‘‘‘‘‘àýà‘‘�€‘‘‘�‘‘‘‘‘�€€€€}}}}}}}w}}}}}}}}}}Þè˜Çè÷òñòúúÞ{wwÇèœwwvvvvvvvvpvppvvvpoupppuppuououlooollollllllClCllClllCCCCtçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! !!! =Òýÿþþÿÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷ž}}}}}}}}}}€}}€€€€€€€€€‘€€~‘‘€‘€‘���‘‘‘‘‘‘‘‘‘‘éÿÿè’‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘�‘‘’‘‘‘‘‘�¡‘‘‘‘‘‘šú÷š‘€��‘�€��€�€€‘€€€€€}}}}}}}}}w}}}}}}˜ñÊÇò✆}†œßòÌwv}ßÞwvppvvvvvpvvvpppvupuppuououuooooolollloltlllllllllllCClllÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!!!!! =Òýþÿþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷ž}}}}}}}}}}}€€€€€€€€‘‘‘�€�‘‘�‘‘‘‘‘‘€‘‘‘¡¤éÿÿ褑‘‘‘‘‘‘¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘àþÙ‘€€‘�€€€€�€€€€€€}}}}}}}}}}}}w}wwÇò™èâ�wwwww}×ñœwvÇâ†vvvvvvvvppvvvpppvpooooouoouooooootlllollllllllCCCClCCCCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!! ! ! =Òýþÿþþÿÿÿÿÿÿÿý›@Þüþþþþþþþþþþþ÷š}}}}}}}}}}€€€€‘€€€€€‘€�€€�‘�€‘‘��‘‘‘�‘‘‘éÿÿ褑‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘¡¡‘¡‘¡‘‘‘‘‘¡‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘��‘‘€‘‘‘§úú§�€€€€‘‘€‘€€€€€€€€‘~}}}}}}}}}w}}}}}}ww}wÌèžõžwwwvwww†âÞww˜â˜vvvvvvvvvuppppuovoppooopoputoooooolooolllClCCllCCClClCtÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@;Îÿÿá@!!! !!! =Òýÿþþþÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷¥}}}}}}}}}}}}}€€€€�€€€‘€€€‘€€‘‘€€€‘‘‘‘‘��‘‘‘éÿÿè‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘¡‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘€‘‘‘€‘�‘‘‘‘‘‘€€‘‘‘æþà‘€€€€‘€€€€€€€€€€€}}}}}}}}}ww}}}}www}wÙàÞñ�vw}†wvwwÊâ†v�èžvvvvvvvvvpvvvvpuuuupuuooopooloooollolltlllCCllllllCllCÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!!!!!!!! =Òýþÿþþÿÿÿÿÿÿÿý›AÞüþþþþþþþþþþþ÷š}}}}}}}}}}}}}€}}}}€€€€�€€€‘�‘€�‘€€‘€‘‘‘�‘‘�‘éÿÿè‘‘��‘‘¡‘€‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘�€‘‘‘�€žúû§€�€€€€�€€€€€€€}}}}}}}}}}ww}w}}w}Ùââè}w}ßòžvww›è˜v�èÇvvvvvpvvvvvpppppuuuppoopuoooollllotolllltlllllClClCClzòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! ! ! =Òýþÿþþÿÿÿÿÿÿÿý›AÞýþþþþþþþþþþþ÷šw}}}}}}}}}}}}}}€€€€~€€€�€€€‘‘‘‘‘€‘‘‘�‘‘�‘éÿÿè‘‘�‘‘‘‘‘¤‘‘‘‘‘‘��‘�‘‘‘¡‘‘‘‘‘‘‘�‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘�‘�€Ùþ耀€€€€€€€€€€}}}}}}}}}}}}}}}w}}w}}}}ÌñßèwèüÉwvw˜è˜w˜è�vvvvvvvppuupupvopuoupuopooooolllttoltolllttllCltCClCtÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!!! ! =Òýþÿþÿÿÿÿÿÿÿÿý›BÞþÿþþþþÿþþþþþ÷š}}}}}}w}}}}}}}}€€€}€€€€€€€€€€€‘‘‘�€‘‘‘‘‘‘�‘‘¤ôÿÿè‘‘�‘‘‘€‘¡‘�‘‘‘‘‘‘‘�‘‘€‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘€‘€€�‘�€‘€š÷ýÒ€€€€€€€€€€€€}}}}}}}}}}}�Ò™}}}}wwww}}œò×ò™ww˜Çwwvœâ†w�ñ˜vvpvvvppvvoppopuuopooooolluoluoollloulllllttlllCCCCC–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!! ! =Òýþÿþÿÿÿÿÿÿÿÿý›AÞýþþþþÿþþþþþþ÷§}}}}}}}}}}}}}}€€€€€€€€€€�€€€€‘‘€€‘‘‘‘€‘éÿÿè‘‘‘‘�‘�‘‘‘�‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘��‘�‘‘‘€€�‘‘€‘€‘‘‘€‘Ùþô¤‘€€€~€€}€}}}}œÞ÷ýÙ}}}}}}}}w�ñÞèÙ}wvwvvwwÞßwwÞá{vvvvvvpvppuvvoopouuuuuppouoooooutllltllCllllCClllllyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@9Îÿÿá@!! =Òþÿþÿÿÿÿÿÿÿÿÿý›AÞþþþþþÿþþþþþþ÷š}w}}}}}}}}}}}}€€€€€�€€€€€�€€€€‘€�€‘‘‘€€‘éÿÿ褑‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘�‘�€€€�‘‘‘‘‘‘�‘�€‘‘�€�€�€�‘‘€€€€‘€€š÷ýÒ€‘€€€}}}}}}}}žâúýüþâ}}}}}}wwwwwÊâ×ñÊwvwwwwÇçœw˜èÇvvvvvppvvvvpuyvpoovuopuuouuoolooltllltotlClttlCllCClÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@!  >Òýþÿþÿÿÿÿÿÿÿÿý›BÞþþÿþþþÿþþþþþ÷§}}w}}}}}}}}}}€€�€�‘€€€€€€€€€€‘€‘‘‘éÿÿè�€‘€€‘�€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘’‘�‘‘�‘‘‘�€‘��‘‘�€‘€€‘‘€€€€€×þõ™€€€€�}}}}}}�žßúþúßÇúè}wwwww}}ww�âßÞòÞ›††˜ÌñÌw†á߆vpvvvppuvupu˜çÞ”upouooooooototoltoolutllllllClCCClCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@;Îÿÿá@ ! =Òþÿÿþÿÿÿÿÿÿÿÿý›AÞüþÿÿþÿþþþþþþ÷š}}w}}}w}}}}}}}}}}€€€€€€€€€‘�‘€€‘€�€€‘éÿÿè‘€�‘‘‘‘��‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘€‘‘‘�‘€‘‘‘��‘‘‘��‘€�€‘‘€€€€�€‘€€€€¤õþ×€€€€}}}}}}œâúþúâœ}�òèw}}www}}wwwœçß×èòññòèÇ}˜ßç˜vvvvpvvvuppvvÌüý÷ÉyouoouooooulooluolltllllllllCCClCuçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá; =Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞýþÿÿþÿÿþþþþþ÷š}ww}}}}}}}}}}}}}}}}}€��€€€€‘€�€��‘€‘éÿÿè‘‘‘‘‘‘‘‘‘‘‘‘�‘‘€�‘‘‘€‘‘‘��‘‘‘‘‘‘‘‘€‘€€€€‘€€€€‘‘‘€‘‘€€€€‘€€€�€€‘×þ÷™€€}€}}}œâúþûßœ}}w�ñâ}wwwwwwwwvwwœâçÞÊÊÊž†˜Ìñâ˜vvvvvvvvpppvpuÞáñÿýç›uoopuuoluooollltlllllltllllllltÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@9Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý›BÞþþÿÿÿþÿþþþþþ÷š}}}}}}}}}}}}}}}}}}}}}}€€€€€€€€�€€€€€�€‘�‘éÿÿè‘�€‘‘�€€‘‘‘€‘‘‘�‘‘‘‘‘�‘‘‘‘€�‘‘‘‘�‘‘‘‘€‘‘‘‘‘‘€‘�€€€€‘€€‘€€€€€€�ôþ߀€€€}}}}€œàúþûâž}}}}ñâ}ww}}wwwwvwww�Êçñâßßñòñ̆vvvvvvvpvvppppwßÊáÿÿÿúÌ{uououtttolllotltltllllllClClƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá; =Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿþÿÿþÿþþþþþ÷š}}}}}}}}}}}}}}}}}}€}}€€€€€€€€€€€€€‘€€€€‘éÿÿè‘€€€����‘‘€€‘�€�‘‘‘‘‘‘‘€€‘�€�‘‘�€€€€‘‘�‘€€‘�€€€�€‘€€‘€€€€€€€€‘Òýúš€}€€}žßúþüâœ}}}}}ñâ}w}w}wwwwwww}www{›ÊÞÞÌdžvvvvvvvvppppupuuyâÇßÿÿÿÿþñ�yoloutotoltllllltlllltCllCuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;=Òþÿÿþÿÿÿÿÿÿÿÿý�AÞýÿþÿþÿÿþýþþþ÷§w}www}}}w}}}}}}}}}}}}}}€}€€€€€€��€€€€�ñÿÿè‘€‘‘‘€�‘‘‘€��€‘€€‘€��‘‘‘€€‘€€€‘���‘‘‘‘€€€�‘€€‘‘‘€€€�€€€€€‘€�ñþâ‘€€}€}€}™âúþüâž}}}}w}}wñâ}wwwwww}ww}}wvvwvwvwwvvvvvvvvvvvvvvpvvvpyâ›ÞÿÿÿÿÿÿüáƒooololltttullttltCltlCltÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;=Òýÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿþþÿÿþýþýý÷žww}}w}}ww}}}}}}}}}}}}€}}}}}€€€€€€€€€€€€€€‘éÿÿè‘€‘‘‘‘€�‘�€��€€€‘‘‘‘€€‘‘��‘€‘€‘€�‘€€€€€‘€‘€�‘€�€�€€‘€€€€€€€€€ÒüûÒ}€}}œßúþüâž}}}}}}w}}wñß}wwww}}wwwwwwwvvwvvvvvvvvvvvvvvvvvvppupuyá˜ÞÿÿÿÿÿÿÿÿóÉytooooltlttlloltClllCCƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;#Îÿÿá; =Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿþÿÿÿÿþýþþý÷šwww}}}}w}}}}}}}}}}}}}}}}}€€��€€€‘€€‘€€�ñÿÿè‘€€€€€€�€€€€‘‘€€‘€‘‘‘€€‘‘‘�‘€€‘‘�€€‘�€�€€‘€€€€�€€€€€€€€€€€€€}€€�âþñ�}}€žàúýûâž}}}}w}}}}ñß}w}}w}wv}wwvvwvvwwwvvvvpvvvpvvvvvpvpppvp{á”Þÿÿÿÿÿÿÿÿÿýç”uototlCllllltollllltßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá9#Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿþÿÿÿÿþýþþþ÷§}w}ww}ww}}}}}}}}}}€}}}}}€€€€€€€€€€€éÿÿè‘€€€�€€€�€€€€€�€€€€€‘€€�€�€€€‘‘�€€‘‘‘€€€€€‘€€€€€€€€€€€€€�€€}€žúýÓ}žßúþúâœ}}}}w}}}}w}}wwñß}wwwwwwwwwwwwwvwvwvvvvvvvvvvvpvvvppuuuvp†áƒÞÿÿÿÿÿÿÿÿÿÿÿúÌ{ottltouttlClllCCC�üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;!Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþþÿÿÿÿÿþýýþþ÷§}}}ww}}}}}ww}}}}}}}}}}}}}}}€€~}}€€€€�‘éÿÿè‘€€€€€�€�€€�€€€�‘€�‘€€�‘‘€€€€‘€€€€‘�‘€�€€‘€€€€€€€€€€€}€Ùþ÷™™Òèúþúßœ}}}}}}}w}}}w}}}�ñß}}}wwwwwwvvwwvvwvwvvvvvvvvvvvvvuuvupvuuu†á†Þÿÿÿÿÿÿÿÿÿÿÿÿþñ›uoltltlCtllllllzòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá9#Îÿÿá;=Óþÿÿÿÿÿÿÿÿÿÿÿý›AÞþþÿÿÿÿÿþýþþý÷§ww}}}ww}}w}}}}}}}}}}}}}}€€}€€€€€€�ñÿÿè‘‘€}€€€‘�€€‘��€�€€€��€�€€��€€€€‘�€€�€€‘€€€€€€€€€€€€}€€™òþñõþþ÷àš}}}}}}}w}}}w}}}}ñß}wwwwwwvwwwvwvvwvvvvwwvvvpvvvvpppvvvpuvp”á{ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÎ{ttltllllClCltÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;9Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿþÿÿÿÿþýþýý÷žw}w}}}}}}}}}w}}}}}}}}}}}}}}}€€}€€€€€€€€éÿÿè�€�‘€€€€‘€€€€€€€€�€�€€�€€€‘€�€€€€€€€€€€€€€€€€}}ÒüþýòÙ™}}}}}}}}}}}}}w}}}}wñßwwwwwwwwwwwwwvvvvwvvvvvvvpvvvpvpuvppppuu›áyáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþò�yttllllCCClÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#9Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷šw}w}}wwwww}}w}}ww}}}}}}}}}}}}}}€€~€€�€€€‘éÿÿè‘€€€€�€€�€€€€‘€€€€€€€€€€€��€€€€€€€�€€€€€�€€€}€€€×àÒ�€}}}}}}w}}}}ww}}w}wñÞwwwvvwwwwwvvvvvwwwvvvvvvvvvvvvvppvpuopvp�áyáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáƒtlllltttƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿÿÿÿÿÿþýýýý÷žwww}ww}ww}w}}}}}}}}}}}}}}}}}}}}€}}€€€�ñÿÿè‘€€€�€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€}}}}}}}}}}}}}ww}}w}w}}wwñÞ}wwwwwwwwwwvwwvwvvvvvvvvvpvvvvpvvupupouu�áyáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÆyltCltußþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿÿÿÿÿÿþýýýý÷šww}www}}ww}}}}}}}}}}}}}}ww}}}}}}€€€€éÿÿè�€€€€€�€€€€€€€€‘€€€€€€€€€€€€€€€€€€€€€€€€}}}}€}}}}}}}}}}}}}}}}w}}}wwww}ñÞ}wwwvvwwvwvvvwvwvvvvvvvvppvppuuvvvpppouu�áyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá”ulltÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá99Îÿÿá#=Òýÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷šwvwwwwww}}ww}ww}}}w}}}}}}}}}}}}}}}}}€€�ñÿÿè�€€€€€€‘€€€�€€€€€€€€€�€€€€€€€}€}}}}}}}}}}}}}}}}ww}}}wwww}ñÞw}wwwwwwvvvvvvwwvwvvvvppvpvvppupuuupuupuÇßyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎztƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá; >Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷§wvvwvwww}}ww}ww}}}}}}}}}}}}}}}}}}}}}}�ñÿÿè�€€€€€€€€€€€�€€€€€€€€€€€€€€€}€}}}}}}}w}}}}}}}}}}}}}}}}}}ww}}�ñ×}wvwwwwvvwwwwvwvvwvvvvvvpvvvvvvppvupuuuuÉÞyñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÈçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞýÿÿÿÿÿÿþýýýý÷§www}wwwwww}w}ww}}}}w}}w}}}}}}}}}}}}}}€}}}}‘éÿÿè�€�}€€€€€€€€€€€€€€€€€€€}}}€}}}}}}}}}}}}w}}}}}}}w}}ww}}}ww�ñ×wwvwwwwvvwvvvvvvvvvvvvvvvvppupupvpuuuuupÌÞyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷žwwwwwwww}ww}w}}}}}ww}}w}}}}}}}}}}}}}}}}}}}€éÿÿè�€€€€€€€€€�€€€€€€€€€€}}}}}}}}}}}}}}}}}}}}}}www}ww}}www†ñÊ}vwwwwvwwwvwvvvvvvvvvvvvvvpvpvpuuuuuuupuÉÞ{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷š}wwvwww}}wwww}w}}}}}}ww}}}}}}}}}}}}}}}}}}€}€�èÿÿè�€€€€€€€€€€€€€�€€€€€}}€€}}€}}}}}}}}w}}}}}}w}}}}wwww}}}w}}ww�ñ×}wwvvwwwvvvvvvvvvvvvvvvppppvvupuuuuuupuoÌÌ{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá;#Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷šwv}wwwwww}wwwwwww}w}}}}}}}}}}}}}w}}}}}}}}�ñÿÿè�€}€€€€€€€}€}}}}}}}}}}w}}}}}}}ww}}}}}}}wwwwwwww†ñÊwwvwvwwvvvvwvvvvwvvvvvvvupvvppvuupupppupÞÉ{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷žwvwwvwww}}}}}www}}w}}}}w}}}w}}}}}}}}}}}}}�ñÿÿè�}}€€€€€}}}}}}}}}}}}}}}}}w}}}}w}wwww}w}}wwwvvw†ñÊwwwwwwvvvvwwvvvvvvvvvpvvvpvvvvuuuppuuuuuÞɆ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá; Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý›AÞþÿÿÿÿÿÿþýýýý÷šwvvwvwww}wwwwwww}ww}ww}w}}}}}ww}}}}}}}}}}}èÿÿè�}}}}€}}}}€}}}}}}}}}}}}}}}w}}}}ww}}}}}ww}wwww}www†òÊvwwwwvwwvvvvvvvvvvpvvvpvvpvupvuuuppuoupuÞÉ{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá9#Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷šwvwvw}wwvwww}}ww}ww}}w}}w}}}w}}}}w}}}}}}}}}}}}€èÿÿè�}}}€€}}}€€€}}}}}}}}}}}}}}}}w}w}}}}}}}}}www}}}vwwwwwv˜ñÊwvwvvwvvvwvvvvvpvvppvvvpvuvpupvuuuuuuuuuÞǃúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá9 Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýýý÷švvvvvvvwwwww}wwwww}}ww}w}}}}}w}}}}}}}}}}}}}èÿÿè�}}€}€€}}}}}}}}}}w}}}w}}wwwwww}}w}}w}}wwwwwwwwv†òÊwwwvvvvvvvvvvvvpvvvvvpvppupouuuuppopuuuuÏ�”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþýýüýõšvpvvvvvvvvvwwwww}ww}wwww}}ww}}}}}}}}}}}}}}}}}}}}}�ñÿÿè�}}}€}}€}}}}}}}}}}}}}}}}w}}}ww}}ww}www}wwwwwwwwwww˜òÊwwvvvwvvwvvvvvvvvpvvvppuvpppuuuuuuuuouoyá�›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüýý÷™ppvvpvvvvvwwvw}}wwwww}ww}www}}}}}ww}}}}}}}}}}}}}}}èÿÿè}}}}}}}}€}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}wwwww}w}wwwwvv}www˜òÊwvvvvvvvvwvvvvvvvvvpvvpvpppuupuouuuuuuuyç�Æþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüü÷švpppvpvvvv|vvwwvvww}wwww}}ww}}ww}}}}}}}}w}}}w}èÿÿâ}}}}}}}}}}}}}}}}}}}}}}}w}}}}}}}}}ww}}}ww}}}}w}}}}www}wwwvwwwwww˜÷ÌwvvwvvvvvvvvvvpvvvvvvpuvppupuuuuuuuuoouyçÇÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüü÷špppppppvvppvvvvvwvwwww}wwwww}}w}}w}www}}}}}ww}}}}�èÿÿâ�}}}}}}}}}€}}}}}}}}}}}}}}}}}}}}}}}}}}w}}w}}}}}}www}}w}}}}}wwwwwww}wwwww˜úâ{wwvvvvvvvvvvvvvpvvvvvpvupuuuppouuuuuuuyñÉßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÙþÿÿÿÿÿÿþüüüü÷švppppppppppwvppvv||wvwwwww}wwwwwww}}}ww}}}}}}}}}}�èÿÿè�}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}w}}w}w}}}w}}wwwww}wwwwwwvwwvvwv˜úúâÌž˜{wvvvvppvvvvpvvuvpppuuppuuuuuuuuuoo{òÞñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüüò™vpppppppppv|vvvvp|vvvvwvww}w}ww}}}}www}w}}}}}}}}}wèÿÿè}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}www}ww}wwwwwwwwvvvvwwwwv†â÷úüüúòá�wvvvvvpvvppvpvuuvppuuuuuuoououtuƒ÷úþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüü÷šppppppppvppvvvvpvvppvvvvwvvwwwwwwwww}}ww}}}}}}}w}}�ñÿÿè}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}}}}}}}}}}}}}w}}}}}}}www}w}}ww}wwwwwwwwvwvwwwvwwv{˜œÊßòþþ÷�vvvvvvvvvvvpvvuuuuupupouuvyy{ƒ”Ìýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#>Òþÿÿÿÿÿÿÿÿÿÿÿý�AÙþÿÿÿÿÿÿþüüüüòšpppvppppvvvpvppvvvpvpvvpvvvwwvvwwwwww}w}www}}}ww}}èÿÿè€}}}w}}}w}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}wwww}}}ww}}}}ww}wwwwwwwwvwwwvvwwvvwvvwwwvwwww†Êòÿ÷˜vpvvpuupuvvppuvpupuuoouu{ßò÷÷úþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿÿÿÿý�5AÞþÿÿÿÿÿÿþüüüüòšpppppppppppppppppvvvpvvvvvvvv||wvwwvww}ww}w}w}}}w}wèÿÿâ}}}w}}w}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}w}}w}}wwwwww}wwwwwwwwwwwwwwwwwvvwwwwvvwwvwvvvvv˜ñþßwvvvvvpvvpuuuuvuuuuuuuuu{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿÿÿÿý�AÞþÿÿÿÿÿÿþüüüüòšppppppppvppppppvvpppvvvvvvpvv|vvpvv|wvww}wwwwwww}}wèÿÿè}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}w}}}}w}}}}w}}}}}}w}}}}}}ww}}wwwwww}wwwwwwwwwwwwwvwwvvvvvvvvvvv˜òú”pvvvuuvvuppuupuouuuuupuÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�55AÞþÿÿÿÿÿÿþüüüüòšvpppvppppppppppvpvvpvppvvvvpvvq|vv||v|vvw}|vwwwvwww}èÿÿâ}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}}w}w}w}ww}}ww}wwwwwwvwwwvwwwwvvwvwvwvvwvvvvvvvÊýÌvvpvvuupvuuuuuupuuuuuuyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�555555?Þþÿÿÿÿÿÿþüüüüòšppopppppppvpvvpppppvvppvppvvvpvvvv|v|vvvvvvvw||vvw|}èÿÿâw}}w}}}w}}}}w}}}}}}}}}}}}}}}}}}}}}}}}}w}}}}}}}www}}}}}}}w}}ww}www}wwww}wwwww}wwwvwwwvwwwwwvvvvwvvvvvvpvpv†÷èvvvvvvvpupuuupuuuouuuu›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#!Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�555555AÞþÿÿÿÿÿÿþüüüüò™ppppppppppppvpppvppvppvpvvpvvpvpvvvpwvvvvvvv||vwww|wèÿÿè}wwwwwww}}}}}ww}}w}w}}}}}}w}}}}w}}}}}}}}w}}w}}w}}}ww}w}}w}}}}wwwwwwwwwww}wwwwwwvwwwwvwwvvvvvvvvvvvpwvvvvwñò{vvuuvvuupuuvpuuuuuouuÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�5555555AÞþÿÿÿÿÿÿþüüüüòšpppoppopppppvppppppvppvppvvvvvvvvppvvvvvvvvvv|v|vv|wèÿÿçw|www}ww}w}w}w}w}w}}}}}}w}}w}}}}}}}}}w}}}w}}}}}w}www}wwwwwww}ww}wwwwwwwww}wwvwvwwwwvwvvwvwvvwvvvvvvvvvvvvvç÷†vvuuuuuuuuuuuuuuuuoouáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�555555555555AÞþÿÿÿÿÿÿþüüüüòšpppoopppoopppopppppvpppppvvv|vvvwvvvp|wvvv|vp|vvv|vwèÿÿâw|v|wwvv|vwvwwwwwwwwwww}}}ww}}www}w}w}}w}}}}}}ww}}ww}}w}}wwww}ww}ww}www}}w}wvwwwwwwvvwwvvvvvvvvvvvpvvuvvpvyç÷†vupvvuuoopooooloollluçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�555555CÞþÿÿÿÿÿÿþüüüüòšpppopopppoopppvpvppppppppppvpvvpvv|vvvvv||v|vvvpvv|wèÿÿâwwvvvvw|||vv|wwwwwwwwvw}}}}wwww}www}wwwwww}w}w}}}w}www}ww}}wwwwwwwwwwwwwwvvwvvvvvvvvvwwvvvvvvvvvvvvppwpvuuyñò{uuuuuooouolooolllllltñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�5555555555555555555555AÞþÿÿÿÿÿÿþüüüüòšpooloooppppppppoppppppvvvvpvpppvpvvpvvpv||vvv|||vvvwèÿÿâwvv||v|vv|wvvvvvvvvw|wwwvww|wvwwwww}wwwwwwvvwwwwww}}}www}wwwwwwwvwwvwwwwvvwvvvvvvvvwvvwvvvvvvvvvvvvvupopuu{÷ñuoppoooolllllllllllCluñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�5555555555755555555555555555555555555CÙþÿÿÿÿÿÿþüüüüõšppoopoopppppppppppppppvppppvvppppvvpvvvvppv|vvpvvvvwèÿÿâwvvvw|vvwv|vw|w|vvvvvvvvw|vvv|ww|vvvvwwwww|wwwwwvvvwvwwwvvvwwvvwwvwvvwwvvvvvwvwwvvwvpvvvvvpppppoupuoppopop›üÏooolloololllllllllClluáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüò™ppooooooopppopppppppppvvvpvppppvvvvvpvvvpvvpppvvvvvwèÿÿâw|vvvvvv|vwvvvvvv||vvvvvvvvvv|vvvv|vvvvv||||v|wvpvw|pvvvvwv|vwvpvvvvvvvvvvpvvvvvpvvvpvvppppppppoopooppuooußþÆoooolllllllllllClCCCllÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá# =Òþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555AÞþÿÿÿÿÿÿþüüüüòšpopoopppoooooooopoppppppppppppvpppvvpvvppvpvvv|vpvvwèÿÿâwvvvvppvvvvw|||vvvv||vvvv|vwvvv||vwvvpvvvvpvwvpvvvvvvvvvvvvvpvpvvvvwvvppvvpppppppppoooopppppooopooloollooƒü÷{ooollllllCllllllllCClC�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Óþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüõ™pooooooooooppopppoppppppppppppppppvpppvpppvpvpvvvvvwèÿÿâwvvvpvvvvvvvvvvvv||vvvwvvvvvwv|pv||vvvvvvvv|vvvvppvvvvvvvvvppppvvopvppvpppppopppppppopppoooooooooolooolooÏþáuollllllllllllllllllllC{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿü�555555555555555555555555555555555555555555?Þþÿÿÿÿÿÿþüüüüõšpoooooooooppoopppoooopvpoppopvpppppvppppppppvpvppvvwèÿÿâwpp|v|vvpvvvvvvpp|v|vvvvvpvvvvvvvvvvppvpp|vvppvvppvppvvvvvvpppppvpvpppppppppooppopoopppppoooooooooooloooƒúý�olllolllllllllClCClllCCtÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá# =Òþÿÿÿÿÿÿÿÿÿÿÿý�55555555555575555555555555555555555555555555555AÙþÿÿÿÿÿÿþüüüüòšoolooooooopoppppppppppppppppppvvpppppvpvppvvvppvpvvvèÿÿâwvvvvvvvppvv|vvpvvvvvvvvvvvvvvvvvppvpvvpvvvppppvppvvpvvvppppvvpppvppppppppppppppoppopoopoooooooooooollouÞþñyolClllllllllllllCCCCCCCC–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿÿÿÿÿÿÿü�55555555555555555555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüòšoooloooooooopppoopopppppoppvpppppppppvvpvvpppppvpppwèÿÿâwvvvvpppvv|vvvppvvvvvvvvvpvvv|pvvvvvvvvpvpvvvvpppppppppvpvppppppopppppppppppopopoppoopopoopooolollooloo”üý�llllllllllllClllllCCCCCCCtÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿÿÿÿÿÿÿü�5555555575555555555555555555555555555555555555555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüò™oooooooooooooopoppppppopppppppppopvvvpppvpppvvvpppvwèÿÿâwvvvpvvvvvvvv|vvvpvvppvpppvvpvvvppppvvppvpvvpvvvvvppvppppvppppvpppppppvpppopppppopppooopoopolooooololluáþçuollllllllClCCClClCCCCCCCCC”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿÿÿÿÿÿÿý�5555555555555555555555555555555555555555555555555555557555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšollooooooolpoppoooooppopppooopoppppppppppvvppppppppvâÿÿâwpvvppppppvvppppvpvpppvvvvpvppvvppppvvvppvvpppppvvppppppvpppppvppppppopppppoopppoppopoopooollololllollÅüü–olllllllllllllllClCllCC?CCCtÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿû�55555555555555555555555555555555555555555555555555555555555555555555555555555555555555?Þþÿÿÿÿÿÿþüüüüô™olloooloopoploopppooooooopppoppppppppppppvppvpvppvpvèÿÿâwpvvvpvvvppvvvppvvpvpvvvpppppvvvvppppppvpppvppvppppppppppvppppppppppppppoooooppoopoooooooollllloolollyòþÞolllllllCClllllCClCCCCClCCCCCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿÿÿÿÿÿÿý�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüüüüõšollllpooooolooooopopoppoppoppoopoopoppoopppppovppppwèÿÿávpppvpppvppppppvvpvvpppppvpppvvvpvpvppvppvppppppopvvpppvppvppppppooooppoppppoopoooooooooooopoolooolloÌþò{llolllCllCllllCClCCCCCCCCC???tÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšololooloooooooooooloooooooppooopppppopppppvpoopppppvèÿÿáwpppppppvppvppvppppppvpppvvpppvopvpvvpvppppppppppvpppppvpopppopoppoppoppooppoooopooppoooooloolllllol”÷þÆlllllllllllllCClClClCCCCCCCC??Czòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿû�55555555555555555555555555555555555555555555555555555555555555555555555555?ÞþÿÿÿÿÿÿþüüüüõšololloololoolooppoooooppoppppppppppppppppopppppppppwèÿÿâvppvppppppppppvpppppvpvvpppvvvvpvvppppppvppppppppppppppppppppopooooppppopoooooolooooolloollollllolluáþáulllllllllCCCllCCCCCCCCCC???C???CÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá# =Òþÿÿÿÿÿÿÿÿÿÿÿü�55555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüüüüõšollllolllloooolooooopoooopooopoooppoppppppppppvppppvçÿÿâvppopvppppppppppvpppvpvpvpppppvpppppppppppppppppopppppppopvooppppppoopopooooooooooololoolllllllooll�ý÷ƒollllllllCllllCCCClCCCCCCCC?CC???yñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšolllllllllolooooooooooooopoooopoopppppppoppopppppppvçÿÿâwpppppoppvpppppppppppvpppppppppppppppppppppppopppppoppoppppppppppoopppoooooooooooooooooolollllllol{òþÉoolllCllllllllCClCClClCCC?CCC?????CÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšoolllllllllloooloolooollopoooopoopppooppooppooppppovèÿÿâvpppppopvvpppppppppvppppppppppppppppppppppoppoppppppppppoppppooppppooopopooooooooooollollooollloluÎþçyllllllllClCClCCClClCCCCCC??C?????>?táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿÿý�5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555557555AÞþÿÿÿÿÿÿþüüüüòšoollloolllolooolllooooooooooppooopoooopppppppoppppovèÿÿâvpppppppvpppoovvppppoppppppppppppppppppopopppppppoppopooopppooooopoolopoooooloooololoollllollllll›úú–oCllllllCCllCCCCCClCCCCCCCC?CCCCC>???–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Êþÿÿÿÿÿÿÿÿÿÿÿü�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555AÞþÿÿÿÿÿÿþüüüüòšollolllolllolllooloooooooloooooopooopoooppooppppoppwèÿÿávppppppppppppppppppvpopoooopppppvppppppppppppppoppppoopppooooopoooooooooloooolllollllollllolllllyçþÞulllllllCllCCClCCCCCC??CC?CCCC??C????>tÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Òþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüüüüò™ollllllllllllllloooloolooooooooopooooopooopopooopppvâÿÿávppopppoppppppvppoopppppppppoppppooppppppooppppoooooppooopoooppppooopoooollooloolllooloollllolloÉüñyllllllCClCCClllCCCCCCC?CCCC???A?C??A???zòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Óþÿÿÿÿÿÿÿÿÿÿÿý�5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüüüüòšolllllllllllllllloolllooooooooopoooooooooopopoooopouâÿÿávppppooppoppppppppppppppppppopopppoopppoppppoopppopooopoooopooooopooooppooolllpolllllloloolllll”÷ú›lllllllllllCllClCCCClCCCCCCC????????>?>?AÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿþþÿý�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555755555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüúüüòšlllllllollllllllollllooloooolooolooopooopopooooopoovèÿÿávooppoopoopoppooppooopppppoppoppppoppoppppoppppooopppopoppoooooooolopoolooooollllllllllllllooluáýÌtlllllCCllCCCCCCCCCCCC?CC?CC?CC??>?CC??>?>]çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿÿÿÿý�55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555?ÞþÿÿÿÿÿÿþüüüüòšollClllllllllolllllllololllooolooopoooloooooooppooovçÿÿávopppooppooopppopopppoopopppopoppppppopppopoooopoopooooooooooopolopooolollollllolollollllollllÉüñyllCCllCllCClCCCCCClCCCCC?????CCA???????>>?A–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿþÿÿü�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555?ÞþÿÿÿÿÿÿþüüüüòšolllllllllllCllollolloollololloooooooooollllooooooouâÿÿáuopooppppppppooopopppoppooopoopopppoppoooopoooopopoopoooooopololooollolooloollollolllllllllll”÷ú–CClClCCCClCCCCClCCCCC?CCC????C????????>>?A>>CÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿÿÿÿÿÿú›55555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555555555555555555555575555555555555555555555555555555555555555555555555555555555?Þþÿÿÿÿÿÿþúúüüò™llllllllllllllllllllollllllooopoooolooooooooolooooovçÿÿávpooppooooopooopopooopoppooooopoooooooloooooopooooooooooopoooopolollolloolllllllllllllllllllyçýÌulllllllCllCCCl?CCCC?CCCC?C?>?????>>A?A>>>A>>>xòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿÿÿÿþú�55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüúüüòšolClllCllllllllllllllllolooloooooollooolooooooooooouâÿÿáuoooooopopooppopoppooppppooooooooooooooopoolooooloolpoolloolloooolooolllllooooolllllllllllloÌýñyClllCClllCllCllCCCCC???C?CC?C>??>??AC?>>?>>>>>AÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿÿþÿÿÿú�555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþüúüüô™olCllllllllllllllololllololllllloollllooooooolooooovâÿÿáuoooooloooooopopoopooplopoopoopoooopooooooolooooooplooooolloolloollloolllloloolllllllllllll˜úú›llCllCCClCCCCCCCCCCCCCCCC?CC?CC????>>C?>>A>>>>>>táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Óþÿÿÿÿÿÿÿÿÿÿþú›5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþüúúúò™llllllllllllllllllllllllolllllloololllllooololooooouâÿÿáuooooooooloooooooopoooooooooooooooooooloooooooopplolooooooloolooloolllolllllllllllllllllllyñýÌollClCCCCCCCCCCC?CC????CCCC??????A?>A>>AA>>>?>A>>>…úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿÿÿÿú›555555557555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555575555555555555555555557555555555555555555CÙþÿÿÿÿÿÿþúúúúò™lCllllllCllClCllllllllllllllllllolloolllloooooopooouçÿÿáuloooooooloooloollpoooopoooopoolooopoooooooooolooloooooolooolllllolllollllllllllllllllllluÌþñylCCCCCCllCCCCCCCCCC?CCC?CC????????>>?>>>>>=?>>>>>=CÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿÿÿþÿÿû�5555555555555555555555555555555555555555575555555555555555755555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúô™olClCllllClllCllllllllllllllolllllolooololooolllloouâÿÿáuoooooloooooooloolooooloooolooooooolloooollooloololoololllolollolllllllollolllllllCllllCl›úú–lllllClCCCCCCCC?C?CCCCC??C?>?C?A?AAA>A>>>>>>>>>>>=>>_òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿÿþþÿþÿû�5575555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúô™lCCllllllClllllllllllllllllollllllollllollllolooooouâÿÿáulopolloooolooooooooooololooooollllloolloooooopooloolollolololllllolllllllllllllllllllCC{ñþÌtCCllCCClCCClCCC?CC??CCCC??????>?>>>>>>A>>>>>>========–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá# =Óþÿÿÿÿÿÿþþÿþÿú›5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúñ™lClCCllllCllllClllllllllolllllllolllllloolololllloluâÿÿáuloolllloololllooooopoooolloollooolooolooloollollollloolllloolllllllllllCllllllllCClllluÞþñylClCCCCCCCCCC????CC?C?????>????>C?>>>?>>??>>=A====>>>>BÏþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Óþÿÿÿÿÿÿÿÿþÿþú�5555555555555555555555555577555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555575555555555555555555555555CÙþÿÿÿÿÿÿþúúúúñšlCCCCCCCllllllCllllllllllllllllllllloooollllllllllluâÿÿáullloollolloolooooolooooooooooolooolollooolollloollllllllollollllllllllllllClllllllllll�üú›CClCCCCC?C??C?CC?C???AACC??CC???>?>>>>?>>>>>>>=>>>======z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿþþÿþþú�55555555555555555555555555578755555555555555555555555555555555555555555555555555555555555555555555555555555555755555555555555555555555555555555555555555555555555555555555555555555557555555555555555CÙþÿÿÿÿÿÿþúúúúñ™lCClllCClCCCllClllllllllCllllllllllolllllllllolollluâÿÿáuoooooooolooololloololllolllollooolllollllllllollllllollloolllllllllllllllCllllllllCClzñýÌtCCCClCCC?CCClCCCCCC??C???>??A>>>>>>>>>>>?>>>=>==>>=>=>>=>Æþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿþþÿþÿû�55555555555555555755557CyC5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúô™lCCCCCCCCCClllCllClllllllllllllloollllllllllllolllouâÿÿáulllllloolollllolllllllooolllloloolllolllllloolllllloolllllllllllllllllllllllClCCCllluÞþñyllCCCCCCCClCCCC?CC??>?????????>>?AA?>>>>?>>>=>>>>==>======Zçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿþþÿþÿû�55555555555555555555557?vC555555555557555555555555555555555555555555555557555555555555555555555555555555555555555555555555555575755555555555555555555555555555555775555555555555555557555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþúúúúô™lCCCCCCCCCClCCllClllClllllllllllllllllllolllllolllluâÿÿáullllllollolllllllollllooloolllllllllllllllllllllllllllllllollllllllllllllllCllClllCl›úú–lCCCCCCC?ClC?CCCCCCCCCC?????>?????>=>>>A?>>>>>>>==>=========…üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿÿþþÿþÿû�555555555555555555555555577557875555555555555555555555755555555555555555555555555555555555555555555555555555555555555555555555555555555755555575555555555555555565555555555555555555555555555555555555555555555555555555555555555555CÞþÿÿÿÿÿÿþúúúúñšlCCCCCClllCClCCClCllCllllCllClllllllllllolllllllllluâÿÿáullllllllllllllolloloollllollllllllllllllllllllllllllllllolClCllllllllClllClllllCClluçþÞtCCCCCCCC?CCCCCC?C?????A?????>>>>?>>>>>>>>=>>>>=>=>>=========BÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Óþÿÿÿÿÿÿþþÿþþú›5555555557555555555555555755555555555555555555555555555555555555555557755555555555575555555555555555555555555555555555555555555555555555555555555555555555555555555555555555755555555555555555555555555555555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúñšlCCCCCCCCClCCCCClClllllClCClCllllllllllollllllllllluâÿÿáullllllllllllollllollollllollolllllllllllllllllllllllllllllllClllllllCClClCClClCClCCÆýò{CCCCC?ClCCC????CC??C??>>????A?A?>>>>>>>>>>>>>>>=>==>=>========xóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Óþÿÿÿÿÿÿþÿþÿþú�5555555555555555555555555555555555555555555555555555555555555555555555555575555555555575755575555555555555555555555555555555555555555575555555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555555CÙþÿÿÿÿÿÿþúúúúñ™C?CCCCC?CCCCCCCCCCCCCllCClClllClCllllllllllllllCllluâÿÿáullllllolllllloollolllllllllllllolllollllllllllllllllllllollllllllllllllllllCClClllyñýÉlCCCCCCCC???CC???C??C????C??>>?A?>>>>>>>>>>>=>>>==>=>==========>Æýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=Òþÿÿÿÿÿþÿÿþþþú›55555555555555555555555555555755555557555555575557555555555555555555555555755555555555775555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555565755555555755555555555555555775555555555555555555555575CÞþÿÿÿÿÿÿþúúúúñ™l?>C?CCCCCCCCCCCCClCClCllCCllCllllCllCClllllolllllluâÿÿáullllllllllllllllllllllllClllollllllolllllllllllllllllllllllllllllllCCllCCClCCllCCtÉþ÷{CCCC?lCC???CCC?C?C??>>?A???>?A>?>>>>>>>>>>>>==>====>============Zçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿþÿþþþþú›5555555555555755555555555555555555755555555555555555555755555555555755555555555555555755755555555555555555555575555555755575555555555555555555555555555555557555557555557555555557555555555555555555555555555555575555555555555555555555755CÞþÿÿÿÿÿÿþúúúúñ˜C??C??C?CCCCCCCCCCCCCCCCCllCCCCllCCClCllCCClllllllluâÿÿáuCllCCllllolooolllllloooolllllllllllllllllllllllllllllllClCClCllllllllCCCllCCClCCtÆúÿòuCCC??CCCC??lC??CCC??AC?A>>A>?>>>>>>?>>>>=>>>=>>==>===============Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿÿþþþþþú›7555757755555555555555555555555555555555555555555555555555755555555555555555555555555555555555555555555555555655555755555555555555555555555555555755555555555555755555555755555555555555655555555555555555755555555555555555555555555555555555555CÞþÿÿÿÿÿÿþúúúúñ™CC?CCC?CCCCCCCCCCCCClCCClClCCCllllllllllllllllClllluâÿÿáuCllollllllllllllllllllllllllClllllllllllllllllllllllllCllllCllllCCllCCCCCCCCClCyÞüÿÿózCC?CCCCCCC??C????C?????>>??A>>?A?A>>>>>>>>=>>>>==================]óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿþþÿþþþú›55555555557555555555555555755755555555555555555755555555575555555555557555555555555555555555555555755555555555555555555555555555555555555555555555575555555557555555555555555555555555767555555555555555555555575555555555555555555555555555556555CÙþÿÿÿÿÿÿþúúúúñ™lCCCCCCCCCC??CCCCCCCllCCCClllCCClCCClllCClllllClllltâÿÿáulollClllllllllClllllllllllClllllllllClllllCCllllllllllCCllClllCCCllCClCCClllCCtÞýýúþü”CCCCCC??C????AC>>??>>>>>>A?>>>>>>?>=>>==>>====>===>>=============Bçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿþþÿþþþú›5555555555555755555555555555555555555555755557555555555555555555555555555657555755555555555767555755555555555555575555555555555775556555555555555555555755555555555555555555555775555555755555555555555555555555555555555555555555555555565575555578557CÙþÿÿÿÿÿÿþúúúúñ™C?>?CC??CCCCCC?CCCCCCCCCCCCCCClCCClllCClCCllCCllllCuâÿÿátlllllllllllllllllllCCllllllllllllllllllllCClllllllClllClClClClCCCCCCCCCCCCCCCC–ü÷�zçýÆCCCC?C??C?>CC>?C?A?>A>??A>>>>>>>=>>==>>====>>======>============$Zñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Òþÿÿÿÿÿþþþþþþú›5555555555755555555555555555555555555555557555575565557555555555555555555555555555555555555555577555655555555557555555555677755775555555555557555555557555565555555655575555575555555555755555555755665555555555555555555555555555555557555555555557555555586CÙþÿÿÿÿÿÿþúúúúñ™C????CC?C??CC??CCC?CCCCClCCClCCCCCCllllllCllllllllCuâÿÿátllCllllllllllllllllllClCllllCllllllllCllllllCClllClllCllllCllCCCCllCCCClC?CCClÞýÌlC›÷átC??C?CCA???>?ACC>??>?>A?>?>??>>>>>>>>>==>==>>===================„üþòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿþþþþþþú›5555578555555555555555555555755555555755775555575575556555555557756555555555555555555575555557755575555557755575575755555557755555555575555555555755555555555555577555577557557755775755555555555556755777555755555555555556555557755755555555555555556575555555CÙþÿÿÿÿÿÿþúúúúñ˜CC????C?CCCCCCCC?CCCCCC?CC?ClCClCCCCCCllCCCCCClllCCtâÿÿátllllCCllllCllllCCllllCllClCllllllllllCClllllCllClllCCCCClCCCCCCCClClCCCCC?CCCtßú–CCtÈá{C????CC??A???>>???>???>>>>>>>>>>>A>==>>==>=====>================ÎþÏ[Ëýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Êþÿÿÿÿÿþþþþþþú�5555556755555555555655555755577555575557855555775555755555555555555555555555555755555555555$############;;########################################################################;###########;########;###############=55655555585557555555555555557555555555CÙþÿÿÿÿÿÿþúúúúñ˜CC?????????CCC??CC?CCCCCCCCCCCCClCCClCCClClCClCCCCltâÿÿátlllllllClllClCllCllllCllllllllllClllllClClCClllCClCCClCCClCllCCCCCCCClCCCCCCCCÌýÞt??lytC????A?CC?A???>???>?A>>>>>?>>>>>>>>======>>================$$==@áñ_$BËþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿþþþþþþú›55556577777777777777777777777777777777777777877777777777777$77$77777777$77777777777779TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT97777777$77$$77$7$777=77787$777$7=7$7CÞþÿÿÿÿÿÿþúúúúñ™C?????????????CCC??CCC?CCClCCC?CCCCClCCClCCCCCCCClltâÿÿátlCCClllllClCCCllCllCCClCllClCCllCllllClllClCllCCCCCCllCCCCCCCCCCCCCCCCCCCCCC?Cƒ÷ýÎyCC??C???C?CC??>>??>?>>>?A>>>>>>>>>>>=>>>==>>================$===$===„=$=�úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=Òþÿÿÿÿÿþþþþþþú�555777;XVUVVXXU:V@VTV:#:VT:VTTT@YT::T:;T:##:TT####:TT#:T#TTT####TT#T#T##TTTTTTTTT###TT#"""""""T""T""""T"TT""T"""T""TT"T""""T""T""T""""T"TT""T"""T""TT"T""""T""T""T""""T"TT""T"""T""TT"T""""T""T""T""""T"TT""T"""T""TT"TTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYXXX[Þþÿÿÿÿÿÿþúúúúñ™C?>A?????>??C?????CC?CC?C?CCCCC?CCClClCCCCCllCCCCCClâÿÿátlCClllClCCClClllllClllllCllllCllClCCllCClClllCCllCCCCCCCCllCCCCl?ClCClCCC?CC??l›÷þò›tCC??A????C>????A?>>>>=>>>>?>=>===>>=>>=====================$$=$====$$$BËþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=Óþÿÿÿÿÿþþþþþþú�57555"TTTTTT"T"TT"TT""T"""""""""""""""TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTXÞþÿÿÿÿÿÿþúúúúñ™CA???A>??>??C???CCC??C?C?CCCCCCCCCCCCCCCCCCCClCCCCCtâÿÿátlCCCClClClCCCllllClCCCClllllCClCClllCCClCClCCCCllCCCCCCCCllCC?ClCCCCCC?CCC??CCCCƒñýüçÈx??????>>A>>>>>?>>?>>>>>>>=>>>>>>>=>=>==============$=$===$$$$$$$$$$ZÎýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÓþÿÿÿÿÿþþþÿþþúÅ55565""""""""""""""""""""""""""YÞþÿÿÿÿÿÿþúúúúñ˜C>??????C?????CCC??????C?CC?CC?CCCCCC?CCCCCClCCCCCCtâÿÿátCCCCCCCllCCCCCCCCClCllllCCClCCllCCCCClCCCCClClCCClC?CCCC?CCCC?CC?CC?CC???C???CC??uÆñýþóÌ‚tC????A>?>>>>>>>>>?>?>>>>>>>>A>>===>>======================$$==B„çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=ÒþÿÿÿÿÿþþþþþþúÅ55665"YÞþÿÿÿÿþÿþúúúúñ™C>A>A>>?????C?????C??C???????CCCCC?CCCC?ClCCCCCCCCltâÿÿátCCClClCCCCCCCClClCCCClCClCClClllCCCCClClCCCCClCCllCCCCCCC?CCC?CCCCCC??CCC??C?C?>>??]ÆçúýúçÉ”]C??>>??>>>>>>>>>>>>>======>====================$==$$$$===Z–áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#  =ÒþÿÿÿÿÿþþþþþþúÅ55875"YÞþÿÿÿÿþþþúúúúñ™C???>>>?>????>?????CCC??CCCCCCCC??CC??CCCCCCCC??CCCtâÿÿátllCCCCCCCClCCClClllCCCCCCClCCCCCCllCCCClClCCCCC?CCCCCCC?CCC?CCCCC???CC?C????CCCCC?>??tƒËçúýüñÏÅzttCA?>>A>>>>==>>>>>>>=======================$==$==B]–Ïòýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=ÓþÿÿÿÿÿþþþþþþúÅ55565"HJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHVÞþÿÿÿÿþÿþúúúúñ™C>>=>>???>>>???>??????CCC??CCCC??CC??CCCCCCC?lCCCCCtáÿÿáCCCC??CClCCCCCCCCCCCClllCCCCClClCClC?ClCllCCCCC?CCClCCCC?CCC?CC?CCCClC???CC????>>>?C??>?CtzÆáòüüúòçÎÃ]ZC?A>=>>?=====>=>=====================@BZ�ÂÎç÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá##Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÅ566657JKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJHJHHHHHHHHHHHHHHHHHHHHHHHHHGGHHHGGGGGGFGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFFGGHHHHHHHHHHHHGHHHHHHHHHHHHHHHHXÞþÿÿÿÿÿþþ÷úúúñ™C>>>?>>?A>>??>>??CCA???C?????????C?CC??CCCC??CCCCCCtâÿÿátC?CCClCCClC?CCCCCClCCCCCCCCCCClCCC?CCCCCCCCCCC?CCl?C?ClCC?CCCCCCCCC?C?C?????C??????>???>??>Cx”ÆÎð÷úú÷òñáÎȃx]]ZZBAAAAAAAAAAABBBZZZZ]_�‚„–ÆËÏñóüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá#9Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÃ55566·ºººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··········³³³³³³³KKKKKKKKKKKKKJJJJJJJJJJJJJHGGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿÿÿÿþý÷úúúñ�C>A>?A>>>>?AA>??>?>A???>?A??C????????CCCC????CC?CCCtáÿÿátCCCCCCC?CCC?CCC??CCClCCCCCCCC?CCCCCCCCCC???CCCCC?CCC??C??????CCCC????A?>????C?>>?C?>??>>>>>>>>>AZ]ƒÅÈÏçò÷ú÷÷÷óòñçáÏÏÏÏÏÏÏÎÏááççççñòóúúüüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÓþÿÿÿÿÿþþþþþþúÃ55665$·ººººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··········³³³³³³³³KKKKKKKKKKKKKJJJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞþÿÿÿÿÿþþ÷÷÷úñ�C>A>>>AA>>>>>A>?>?>A?>??C?>??C??C???CC???CCCCCC??CCtâÿÿát?ClCCCC?CCCCCC?CCCCCCCCCCCCCCCC???CCCCC??CCCCCC?CCCCCC?C?CC??C?????>>???CA?>????A>>>>>>?>>>>>>A>?A>>AAC]z„–ÃÈÎÏÏáááçñò÷ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá;=ÒþÿÿÿÿÿþþþþþþúÃ555557·ºººººººººººººººººº¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸······³³³³³³³KKKKKKKKKKKKKKJJJJJJJJJJJJHGGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞþþþÿþÿÿþúú÷úñ™C>>>>>>>=>>>>??>>>>?????>?>???C???>?????CCCCC??CCCClâÿÿátCCCCCC???C?CC?CCCC??CCCC?CCCCC???CCCCCCCCCCCC?CCCCC?C??C?C????????C??>>??AC>?>??>?>>>>>>>A>>?>>A>>>>=>====>==AABCBZZZZ_áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÃ566667·ººººººººººººººººººº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·········³³³³³³³³³KKKKKKKKKKKKKKJJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞþÿþÿÿþþþúúúúñ™C>==>A>>??>?>>A>>????>??>???????????????C?CC????CC?CáÿÿátC????C?CCCCCC?CCCCCC?CC??lCCC??CCCCC??C??????>???C??CC??????????>?C???>C>>?>??>>>C>>>?>>>>>>>=>>>>>>>A>======>>>======>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÃ57556$·ºººººººººººººººººººº¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸···········³³³³³³³KK³KKKKKKKKKKKJJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞþÿþÿþÿþþú÷÷úñ�C>>>>>>>A>>?>>>A>>??>>>??C>>>>>????????????C?C?C?CCCáÿÿát????????CCC??CC??lCCCC??CCC?CCC?CC?CC??C??C???C??C?>?C????C?CC????>A?>??>>???A>>>>>>?>>>>>>>>=>>=>=>>>=>>=======>=====AÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÆ666657·ººººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸········³³³³³³³KKKKKKKKKKKKKKKJKJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFGGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿÿþÿþýú÷÷úñ�A=>>>>>>>>>>>>>>?>>>>>>=>?>????>?AC??????CC????????táÿÿátCC??CCC?C??>?C?CCC??????CCCC?CC??CCCC??C??C???C??C?>>?C?????C?A??>>?C>>>>?>>?>>>>A>>>>>>>>>>>=>>=>>=========>===>=====AÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑ# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÃ656657·ºººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸···¸·······³³³³³K³KKKKKKKKKKKKKJJJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿþþþþþ÷÷ú÷ñ�?=>=>>>>>>>>>>>>>>?>??>>>>>>>A??????????>>C??A??>??táÿÿát??C?C???C?C?C?CCC???CC???????CC?>??CC?C>>>CC?????CC?????>????????A>??A>>????>>>A>>>>>>>>>>>>>>>>=>>===>===============>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÆ666667·ººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·········³³³³³³³K³KKKKKKKKKKKKKKKJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿþþþþþ÷÷÷÷ñ�CA>=?>>>>=>>>>>>>>>>>>>>??>>A>>>>??>??>A?>A?>>>C??CtáÿÿátCCC??>?CCCC?C>?CC????????????>???CC????CC??C???>??C?>>>???>>>>???C>>>???>>>>A>>>>>>>>>>=>>>=>>>>=====>================>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá# ÎÿÿÏ#=ÒþÿÿÿÿÿþþþþþþúÃ556667·ººººººººººººººººººº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··········³³³³³³K³KKKKKKKKKKKKKJKJJJJJJJJJJHGGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞþþÿÿþþþþ÷÷÷÷ñ˜?==>>>>>>>>>=>>>>>>>>>?>>?>>A?>>>A>>>>A>???>A???>>?CÏÿÿát??>??????CCC?C?????C???CC??CC??????????????????????>??>>>>??>?>>>AA>>?>>>>A>>>>>>>>>>>>=>>>=>>>>>==>=>===>============>ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ ÎÿÿÏ#=ÒþÿÿÿÿÿþþþþþþúÃ666667X¸¸¸¸¸¸¸¸¹·¹¹¹¹¹¹¹¹¹¹bbbbbbXXXXXXWXXXWXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWTWTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTWTTWTWTWTTTWTXÞüþþþþþþþ÷÷÷÷ñ�?=>=>==>=>>=>>>>>??>>>A>>>?>???>?>>>??>>>C?>????>A?CÎþÿçtAA???>>??>?????>??CC?????????C?????>?????>?C?>?A>>A>>C>?>>?>?>>>>>?>>?>>>>>>>>>>=>>>>>>>=>>>>======>>======>==========>ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË Îÿÿá#=ÒþÿÿÿÿÿþþþþþþúÆ656667TTTTTTTTTUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"TTT"TTTTT"TTT"TTTTT"""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTT"""TTT""TTT""TTTT"TTTTTTTTTTTTTTTTTTTTTTTTTTXÞýÿþþþþþþ÷÷÷÷ñ�?=>==>>==>>>>>>>>>>>>>>>>>>>>>A>>>>>??>>>?????>???>?Éþÿóx??????>?>?>??C??C??????C?????C>??A>?C??>CA???>??>A?>>??>A>?>?A?>>>>>>>>>>>>>>>>>>>>===>>>>==>>==>=====>===>===========>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ ÎÿÿÏ#=ÒþÿÿÿÿÿþþþþþþúÃ66565""""""VÞýþþþþþþþ÷÷÷÷ñ�?=======>==>>>>>>>>>=>>=>>>>>>?>>?>>>AA>?A>>>>>>>>?A–üÿü–?>?C??>?????>??C?>??>???>??A???>>?????>>A>>>?>A>>>?>>??>>>>>>>A>>>>>>>>>>>>>>?>>>=>>>>>>>=>==>=====>==================>Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_#áÿÿÏ#=ÒþÿÿÿÿÿþþþþþþúÅ666657""YÞüþþþþþþþ÷÷÷÷ñ™>>======>>>=>>>>>>>>>>>>>A>>>>>>>A>?>>>>>AAA>A>>>??>xòÿþÏt??>>>>>?>>??A??>>??>>?>>?>>>>>>A???>>>C?>?>???A>>A>>>A>>A>>>=A>>>=>>>>>>>>>>>>>>>==>>>==>===>>=======================@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç;;çÿÿÎ =ÒþÿÿÿÿÿþþþþþþúÅ666667"YÞüþþþþþþýóó÷÷ñ�>=======>>==>==>>=>>>>>>>>>>>>>>>>>>>?>>>?AA>?>>?>>>CÏÿÿúƒ?>>?A?C>>>?>>??>>>???>>?????>???>>>A?>AA>?>??>>>>>>>>>?>>?>>>>>A>>=>>=>>>>>==>>>==>>=>=>>============================@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü„Y÷ÿþÈ =ÒýÿÿÿÿÿþþþþþþúÅ656667"VÞüþþþþþþþ÷÷÷÷ñ�>========>====>>>>>>>>>>>>>>=>>=>>>>>>>>>>>>>?>>A>>>A–úÿÿá]A>>>??>???>A?AA>?A>?>??A??AAA?>>>>>>>>>>>??>>>>>>>>>>?>>>>>?>>>>>>>>>>==>>==>>==>=====>=>========================$==@ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÏ#…þÿþ•=ÒþþÿþÿÿþþþþþþúÅ656667"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHVÞüþþþþþþþ÷ó÷÷ñ�>===================?=>==>>>>>=>>>>>>>>>>>>>?>>>>>>?>tÏÿÿýËt>>>>>>>>>>?>>??>>?>>??>>>>>>??>>?>?>>>>?=>>>>>>>A>>>?A>>=>>>>>>>>>>>>>>>>>>====================================$$==@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ[;áÿÿó[=ÒþÿÿÿÿÿþþþþþþúÅ666667K¸¸¸¸¸¸¸¸··¸¸··¸·¸·····¸··············K³KKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJHHHHGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFFGGGGGHHHHHHHHHHHHHHHHHHHHHHHHJHJJHXÞüþþþþþþþóóó÷ñ�>======>==>===>=====>====>>>>>==>>>>>=>>>>>>?>>>>>>>>A‚óÿÿüÉt?>>>>>>?>>>>>>>>?>>>A>>>??>>AA>A>>>>>A?>>>>>>>>>>>>>>>>>>>>>==>>>=>>>>===>=>=>======>==>===================$===$==@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ�„üÿÿç#=ÒþÿÿÿÿÿþþþþþþúÅ666667·ºººº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸···········³³³³³³³³³KKKKKKKKKKKKKKKJJJJJJJJJJHGGGFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþþ÷ó÷÷ñ˜>=============>=>>===>>=>>=>>=>>>>>==>>>>>=>===?>>>>>>AÃúÿÿüÏxCA>>>>>>>>>>>>>>??>A>>>>>>>?>?>>??>?>>>?>>A>>>>=>>>>>>==>>>>>>=>===>=>>=>>================================$=$$$==@Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá_ YçÿÿþÂ>ÒýþÿÿÿÿþþþþþþúÃ665667·ºº¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸············³³³³³³³³KKKKKKKKKKKKKKKKJJJJJJJJJJHHGFFFFJKKKKKKKJHHHHHHHHHHHHM///MMMMMMMMQ\QQQQQQQQQQQQQQQQQQQQ4Q4444OOOOOOOOOOOOOOOOOOOOOOOOOOOO2VTHHHHHHHHHHHHHHHHHHHHHHJKKKKKKKJFFFFFGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþý÷óó÷ñ™>=====>===>=========>=======>>>>==>>>>=>>>>>>>>?>>>>>>>CÈüÿÿþòÉzt>>A>>A>A>>?>>????>A>>>>>A>>>=>A>>A>>A>>>>>>>>>A>>>>==>>>=>>>>=====>===>=>>======>=======================$$$==$@ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñÂ@;ÎþÿÿñY=ÒýÿÿÿÿÿþþþþþþúÃ666667·º¸ºº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·············³³³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJHGGFFFFJKKKKKKKJO444OOOOOOOOOOO222222222ŠŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠŠŠŠŠŠ‡‡‡‡‡4‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡444444444444*+++++++++++++++++++++&++MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþýóó÷÷ñ�>=================>======>>=>>>=>=>>>>>>>>>>>>=>>>>>>>>>CÆúÿÿÿþúáÌÆÅÅ–ÅÅÅÅ–ÅÅ–ÅÅÅ––››Å›Å–Å–Å–›–ÅÅÅÅ––––››ÅÅÅ›–––––ÅÅ––ÅÅ––––Å––––––––––––ÅÅ––––––––––––––––––––––––––––––––…––––Î÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óñçË„Y  @Îýÿÿý =ÒýÿþÿÿÿþþþþþþúÃ666667·¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸············³³·³³³³³³³KKKKKKKKKKKKKKJJJJJJJJJJJHGGFFFFJKKKKKKKJ444O4OOOOOOOOO2222222222ŠŒŒŒee���eeeeeeeeŒŒŒŠŒŠŒŠŠŠ‡4‡ŠŠŠŠŠŠŠŠŠQŠŠŠQQQQQ\\\QQQ44*+++++++++++++++++++++&+&MKKKKKKKJFFFFFGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþýóó÷÷ñ�>==========>=============>=>==>==>>=>=>===>>>>>>>===>>=>>A–ñþÿÿÿÿþþþþþýýþþýþýýýþþýýýýþýþýýýýýýþýýýþýýýýýýþýþþýýýýýýýýýýþýýýýþýýýýýýýýýýýýýýþýýýýýýýýýýýýýýýýþýýýýýýýýýýýýýýýýýýüÎ_____[__[[[[[[[_[[[[[[_[[[[[[[[[[ZZZZZZZ[[ZZZZZZZZZZYZYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@; #�áþÿÿþÎ#=ÒýÿþÿÿÿþþþþþþúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸······¸·······³·³³³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJHGGFFFFJKKKKKKKJO4eÍÐÐÐÐÐÐÐÐÐÐÐÐÐÐÍÍÍÍÍËeŒŒÐðçèèæâææààßÑáÑÐÑÐÐÐÑÐÐÍŒ4‡ÄÍÍÍÍÍÍÍÍÍÍÍÄÄÍÄÄÄÉÈÈÄÄÁQ4Qƒ”•hhhhhhhh“†fgggggca<+&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþüóó÷óñ�>=============================>>>=======>=>>>=>>=>>=>>?>>>=]ÈñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ@$=$=$$$$$$$$$!$$!!!!!!!!!!!!!!!!!!!!!!! ! ! !    ;�Î÷þÿÿþÏ@=ÒýÿþÿÿÿþþþþþþúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·················³³³³³KKKKKKKKKKKKKKKKJKJJJJJJJJJJHGGFFFFJKKKKKKKJ44Äüýýýüýýýüüüüüüüüú÷úüò¾ŒŒðóóõööõööôëéòóòððððððððïe4QÐïïðïïÑÑÑÑÑÑÑÑÐÐÐÐÙÏÞÍÍÄQ4e××ÍÍÍÍÍÍÍÍÍË­ÊÄÄÄÄÄÄÆV&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþý÷÷÷÷ñ�>===============================>====>>>===>>=>>>=>==>>>>>>=At…Ìçòò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óÏÂÂÂÂÂÅÂÂÂÅ–––––––––––––––––––…––––…––…–––………………–……………………………………–…………………………………•………………•–ÂÈÎçúþÿÿÿýÎY=ÒýÿþÿÿÿþþþþýýúÃ666667·¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·····¸···········³³³³³³KKKKKKKKKKKKKKKKJJJJJJJJJJJHGGFFFFJKKKKKKKJ44Äýþþþýýýþýüýüüýüüüüüü󾌌ñ÷óöùöõíõõöõõóóòòóóóòñððe4QÐðððððððïððïïïÑÑÑÑàáÑÑÑÄQ4eÙßÑÐÍÐÐÐÍÍÍÍÞÔÎÍÍÍÍÍÈ\&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþý÷÷÷÷ñ�>==========================>======>=====>>>=>=>>==>>>>>====>>>>AtZ]xzxzzzzzxzzzzzzzzzzzxzzzzzzxzzzxxxzzzzxzzzzzxzzzzzxzxxzxxzxzxxzxxxxxxxxxzxx__xxxxxx__x�x____xx___xx__________ÏüþþþþþþþþþþþþþþþþýýþþþþþýþþýþýþþþþþþþþþþþþþþýþþþýýþýþþýýýþþþýýþýþþýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþýþþÿÿÿÿÿþòÃ;=ÒýÿþÿÿÿþþþýþþúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸····¸¸·······³·³³³³³³KKKKKKKKKKKKKKKKKKJJJJJJJJJJHGGFFFFJKKKKKKKJ44Äýþþþþýþýýýþýýýýýýýýü󾌾ò÷÷öøùõööõöõ÷óóóóóóóóóóñ�4QÑòñððððððððððððïïïàâáÑÑÄQ4eÙàÑÑÑÑÑÑÑÑÑÑÐØÔÎÍÍÍÍË\&&MKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞýþþþþþþü÷÷óóñ�>$==============================>=======>====>>====>=>=>==>>==>>>>=>>=>>>>>>>>>==>=>>=>>>>>==>>>>>>>>==>>==>>>====>=>=>>>=================================$$=$==$$$==$$$$$$$$$$@ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüòÆ[ =ÒýþÿþÿÿþþþýþþúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·················³³³³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJHGGGFFFJKKKKKKKJ44Äýþþþýþþþþþþþþýýýþüüü󾌾òüüøøøùööõöõ÷óóóóóóóóóóò¾4QçòòòñññðñðððððððððâçâçïÍQ4eàßÑÑÑÑÑÑÑÑÑÑÑÏÔ×ÑÐÐÐÎ^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþü÷÷ó÷ñ�>=================================>===============>======>===>>====>>==>>>=>==>>>>>=>>=>=====>>==>>=>>>>=======>=============>======================$=====$==$$==$=$$$$$!$$$$$$=Æò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷ó÷ó÷÷÷÷÷÷óó÷÷÷÷÷÷ó÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òñðáÈ‚Y =ÒýÿþÿÿÿþþýþýýúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸················³³³³K³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJJHGGFFFFJKKKKKKKJO4Äýþþþþþýýýþýþþýýþþýýü󾌾óüüøøöõööõöõ÷óóóóóóóóóóò¾4QÑòòòòðñòñðððððððððèçèðïÍQ4eßßïÑÑÑÑÑÑÑÑÑÑÑßÔÏÑÑÑÎ^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþüóóóóñ�>==$===========================================>==>===>==>===>=>=======>===>>>>=>==>===>=>=>>===>>>===============>====>>================================$=$$$$$$$=$$!$$$$$$$!!$B[___[_______[[_[_[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[Y[[[[Y[[YZYYYYY[YY[YYYYYY[[YYYYY[Y[YYYYYYYYYYYYY[[YYYY[YY@;# =ÒüþþþþÿþýþýþþúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··············³···³³³³³KKKKKKKKKKKKKKKKKKJJJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýþÿþþþýþþþþýþýýýþþýü󾌌óüüøøøùööõöõ÷óóóó÷óóóóóò¾4QçòññòññòòññðððððððâçèððÍQ4eÚàïÑÑÑÑÑÑÑÑÑÑÑÑÙØÑÑÐÎ^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþý÷ó÷÷ñ˜>$=$=$$=========================>>====>=====>>=>>========>>=>==========>==>========>==>=>>=>>===>==>================>===========================$==$$$==$=$$==$$=$$$=$$$!$$$!$!!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!     =ÒüþÿþþÿþþýþýýúÃ666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·····¸········³³³³³³³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþýýþýþþþþýýýýüýýýü󾌌óüüøøøùööõëù÷óóóó÷óóóóóò¾4QçóòñòññððñððððððððâççððÍQ4eààïÑÑïÑÑïïÑÑÑÑÑÏÔÙÑÐÎ^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþýóó÷óñ�>====$====$$===========================>>=============>=========>=======>>>==>>===>>==>>>=>==>======>>======>====>========================$=========$$==$$$$$$$$$$$$$$$$$$!!!$!$$!!!$!!!!$!!!!!!!!!!!!!!!!!  ! !  !    =Òüþþþþÿýþýþýý÷Ã666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸···············³³³·³³³³KKKKKKKKKKKKKKKKKKJKJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýýýýýýþþþþþýýýýýýüüü󾊌óüüùùöùööíëùù÷óóóóóóóóóò¾4QçóóòññðððñððððððððâççððÍQ4eàâïïïÑÑÑÑÑÑÑÑÑÑÑÞÔÞÐÍ\&&MKKKKKKKJFFFFFGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþüó÷÷óñ�>$=====$$============$$==========================>==>===========>=====>====>=========>=>>====>====>==========================================$$$==$$=$$===$$==$$$$$!$$$$$!!$!$$!!!!!$!!!!!!!!!!!!!!!!! !! !!   =Òüþþþþþýýþýþý÷Ã666667·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸················³·³³³³³³³³³KKKKKKKKKKKKKKKKKKJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþýüüýýýýþýýþýýýüüüü󾊌òüúùøøùöííöõ÷÷óú÷óóóóòòðe4QÑññòðñòñððððððððððâçèðïÍQ4eàâïïïÑÑÑÑÑÑÑÑÑÑÑÑØÔÎÎ^&&MKKKKKKKJFFFFFGGGGHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþþó÷÷óñ�>$$$$$$$$=========$===$====$========================>>===>========>==>===>====>=====>=======>======================>=====================$======$=$$$=$==$$$$$$$$$$$$$!!!$$!!!$!!!!!!!!$!!!!!!!!!!!!!!!!! !!!    =ÒüþÿþþÿþþýþýýúÃ666668K¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·················³³³³³³³³³K³KKKKKKKKKKKKKKKJJJKJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýþýýýþýýýýýýýýýýüüüü󾊌óüúöùùùöííöõ÷úóóóóóóóóòñ¾4QÑññòðñððððððððððððâçèðïÍQ4eÙâïïïÑÑÑÑÑÑÑÑÑÑÑÑÏÔ×Ì^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþþó÷÷÷ñ�>=$$$$$==$=$==$=$=================================================>===========>=====================================================$=$$==$==$===$$$$===$$$$$!$$$$!$$$!!!$!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! !!    =Òüþþþÿÿþýþýýý÷Ã666667K¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸¸·¸¸¸··¸··············³³³³³··³³³KKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþþþþýþýýüýýýýýüüüü󾊌óüüùööõöõííù÷úóóóóóóóóóñe4QÑññðòñððððððððððððâââçïÍQ4eàßïïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÞ­Ó^&&MKKKKKKKJFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþþþüó÷÷÷ñ˜>$$$=$$=$=$$$$$=$================================================>>===============================================================$======$$$$$$==$$$=$$$$!$$$$$$$$$$!$$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!!    >Òüþþþþÿþýýýýý÷Ã666667··¸¸¸¸¸¸¸¸¸¸¸¸¸··¸¸·····················³³³³³³³³K³KKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþþþýýþþþþýýýýüüüüü󾊌óüüùööõöõõíõ÷óóóóóóóóóóòeOQçóòòññððððððððñðððâââçïÍQ3eààÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÓ¨]&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþýþüó÷÷÷ñ�=$$$$$$$$$$$=$$====$$=======$===================================================================================================$$===$=$$$=$$$=$$=$$$$$$=$!$$$$!$$$!!!$!$!$!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! !   =Òüþþþþÿþýýýýý÷Ã666667K·¸¸¸¸··¸¸¸¸¸¸······¸················³·³³³³³·³³KKKKKKKKKKKKKKKKKKJKKKJJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýþþÿþýþþþþþþýüüüýüüü󾊌òúúöööõööõöõ÷óóó÷÷óóóóóò¾OQçóòòðððññðððððððððâççïïÍQ3eààÑÑÑçÑÑÑÑÑÑÑÑÑÑÑÑÐέ]&&MKKKKKKKJFFFFFGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþýþþü÷÷÷óñ�=$$$==$$$$$$=$$=$$$========================================================>============================================$=$$======$=$$=$$$$$=$$$$=$$$$$$$$!$$!$!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!  ! !    =Òüþþþÿþýýýýýý÷Ã666667K·¸···¸¸··¸··¸····¸···················³³³³³³K³KKK³KKKKKKKKKKKKKKKKKJKJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþÿþþþþýýþþþþüýýýüüü󾊌óúúöööùëëíëõ÷óóóóóóóóóóòeOQÑòóòññðñððððððððððââððïÍQ3eàßÑÑÑïÑÑÑÑÑÑÑÑÑÐÑÑÐÐÌ[&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþýýüó÷÷÷ñ�>$$$$$$$$$=$$$$$$$$$$$$$$======$==$======$==$==========================================================================$$=====$$==$$==$==$$==$$$$$$$$=$!$$$$!!$!$!!!$$!!!$$!!!!!!!!!!!!!!!! !! !!!!!    =Òüþþþþÿýýýýýý÷Ã666667K·····¸·¸····¸·······················³³³³³³³³³KKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄýþÿþþýþýýþþþþýýýýüüü󾊌òúúùööõëííöõ÷óóóóóóóóóóñeOQÑòóóòñððððððððððððâââïïÍQ3eàÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÎ^&&MKKKKKKKJFFFFFGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþþþýýüóó÷÷ñ�>$$$$!$$$$$$$$$$$=$$==$$===$$$=$=====$======================================================================================$=$=====$$$$$$$$$$$$$$$$$$$$$$!!!$!$!!$$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !  !     =Òüþþþþÿýýýýýý÷Ã666668K··¸···¸·····························³³³³³³³³K³KKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJHGGFFFFJKKKKKKKJOOÄþþþþþýýýýýþþþþýýýýüü󾊌ð÷úùööõööööõ÷óóóóóóóóóóñe2QÑòóóòòòðñðððððððððâçâïïÍQ3eàßÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÐÎ^&&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþýýýýýü÷÷÷÷ñ˜=!$$!$$$$=$$!$$$$$!$$=$$=$$$=$=====$=$=======$==$===================$========================$$=================$==$==$=$=$$$=$===$$==$$$$$!$$$!$$$$$!$$$$$$!$!!$!!$!!!!!!!!!!!!!!!!!!!!!!!!!! ! !  !    =Òüþþþþþýýýýýý÷Ã666667K·········¸·····················³³³³³³³··³³³³³³KKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþþýýüýýýþþþýýüýýüü󾇌òúúöööõöíõöõóóóóóóóóóòòðeOQÑðòóòñððððððððððððâââïïÍQ3eàßÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÐÐÌ^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüþþýýýýüóó÷óñ�=$!$$$$$!!$!$$$$$$$$$$$$=$=$=$$$=$$$============$==============$==$=$===$====================================$$$=====$=====$==$==$$$$$$$=$$$$=$$$$!!$$$!!!!!$$!!!!!!$!!!!$!!!!!!!!!!!!!!!!!!! !! !    =Òûþþþþÿýýýýýý÷Ã666668K···························³····³··³·³³³K³³K³K³KKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJHGGGFFFJKKKKKKKJOOÄýþþýýþþýýýþþþýýýýýüú󾇌ò÷úöööõíöõöõ÷óóóóóóóóóòðeOQÑñòòñðððñðððððððððâââðïÍQ3eÙÙÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÐÌ^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýüóóóóñ�=$!!$$$$$$$$$$$$$$=$$$$$=$$$$$$$$$$$$$$==$=$$$===$=$$=============$====$======BBZZZZB@===========$$$==$$====$$==$$=$=$$$$$$=$$==$$=$$$$$$$!$!$!$$$!!$$$$$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!! !!!! ! !!!   =Òüþþþþÿýýýýýý÷Ã666667K·······¸························³³³³·³³³³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJHHGGGFFFJKKKKKKKJOOÄýþýýýþþþýýýþþýýýþüüü󾇌òúúöööõöõõöõõóóóóóóóóóòñeOQáòòóòñððððððððððððââçðïÍQ3eØÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÍb&&MKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýüóó÷óñ�=!!$$$$!!$!!$$$$$!!$$$!$$$$$$$==$$$$$$$==$$$=$$$=$$===$===$$==============BxÂËáñ÷úúòñáÈ…_=$===$==========$$$=$$$===$$$$$$$$$$!$$$$$!$$$$$$$$$$$$!!!$!!$!!$$!!$!!!!!!!!!!!!!!!!!!!!!!! !!! ! !     =Òüþþþþþýýýýýý÷Ã666668K·································³³³³³³³K³³KKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHHGGGFFFJKKKKKKKJOOÄýþýýþþþþþþþþýýýýýüüü󾇌òüúöööõööõöõ÷óóóóóóóóòòòe2QçóóòðññðñðððððððððâççïïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÍb&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷óñ�=$!$$!$$!!$!$$$$!$$$!$!$$!$$$$$$$$$$$$$=$$$====$$====$==$===$===$==$$=$=ZÂçúýÿÿÿÿÿÿÿÿÿÿýóÏ…B=====$$$$$$=$$==$==$$$$$=$$$=$$$$$$$$$$$$$!$!$!$!$!!$$!!!!!$$!$!!!!!!!!!!!!!!!$!!!!!!!!!! !!!! !!  !          =Òüþþþþÿýýýýýý÷Ã666668K···························³³·³³³³³³³³³³K³KKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJGGGFFFFJKKKKKKKJO3Äýýþþþþþýþþþþýýýýýüüü󾇌òúúöööõööõöõõóóóóóóóóóóòe2QÑòòñððððñðððððððððâçâïïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÍÌ[&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷óñ�=!!!!!!!$!!!$!!$$$!!$$!$=$=$$$$$$=$$$$$$$$==$=$$==$==$$!$=$====$$=====ZÆñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüá…A=$$$======$$=$$=$=$$$!$$=$$$$$$$$$$$$$$$$!!$!!$!!!$$!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !    YÂÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÃÕ [ÃÆÆÆÆÆÆÆÆÆÆÃ[ �ÃÆÆÆÆÆÆÆÆÆÆÃ[ =Òûþþþþþýýýýýý÷Ã666667K··················³³······³·³³³³·³³³K³³³³KKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJO3Äýýþþþþþýþþþýýýþýýüüúóe‡Œð÷÷öööùööõöõ÷óóóóóóòóóóñe2QÑòòðððòñððððððððððâââðïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÐÍÊ]&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷óñ�=!!!!$$!!!$!$$$!$!$!$$$=$$$!$$$$$$$$$$$$$$$$$==$$=$$==$$$$$===$$$$$=@‚çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÎ_=$$=$$$$==$$$$$$$$$=!$!$$$$$$$$$$!!$$$$!!$$!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!  !   –ýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþò; ÈýþþþþþþþþþþýÈ #ÏþþþþþþþþþþþþÃ=Òûþþþþÿýýýýýý÷Ãii6ii8K···························³³³³³··³·³³³³³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýýþþþþþüýþþþþýþþýýüúòe‡Œòúúöööùööõëõóóóóóóóóóóóòe2QçóòóòñòðððððððððððâââðïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÐϨ]&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷óñ�=!!!!!!!!!!!$!!!!!$$$$!!$!$$$$$$$$$$!$=$$$$!$==$$=$$==$$$$$$$==$$$$BÆ÷ÿÿÿÿÿÿÿýúòñççðòúþÿÿÿÿÿÿþò–B=$==$=$==$$$$=$$$$$=$$$$$$!$$$$!$$$$!!!$$!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !     Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ËþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òüþþþþÿýýýýýý÷Ãii6i68K···························³······³³³³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýþþþþýýýüýýýýýýþýýüüòe‡Œóüüöööùöõõëô÷óóóóóóóóóòñe2QÑðñððòòðñðððððððððâççððÍQ3eÙÙÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÐÐÓ¨]&&MKKKKKKKJEFFFFGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷ó÷óñ�=!!!!!$!!!!!$$$!!!$$!$!$!!$$$$!$$$$$$$!$$$$$!$$$$!$$$$$$===$$$$$$$ZÎýÿÿÿÿÿýñΖ_BB@@BZ�ÂÎòþÿÿÿÿÿúÈB$$$=$$$$$$$$$$$$=$$$$$!$$$!!$!$$!$!!!$!!$$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! ! !   Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ËþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ã6iii67K························³·³³³··³··KK³K³K³KKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ22Äþþþþþüýýýýýþüüüüüýüüóe‡Œòúúöööõöõíëõòóóóóóóóóóóñe2QÑòñòððñðððððððððððââçïïÍQ3eØÙÑïÑÑÑÑÑÑÑÑÑÐÐÐÐÐÌ­Ì\&&MKKKKKKKJFFFFGGGGGHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷óóóñ�=!!!!!!!!!!!!!!!$$!!!$$!$!$!$!!$!$$$!!$$$$$$!$!$$$$=$$=$$$==$$$=$YÎþÿÿÿÿþñÂZ=$$$$$$$$$$@]Èòþÿÿÿÿú–$$$$!$$$$=$$$$$$$$$$!$$$$$$$$!!$$$!$$$$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !      Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òüþþþþÿýýýýýý÷Ãi6i668K··················³³³··³³³³³³³³³³³KK³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äþÿþþþýýýýýýýýüüüüüüü󾇌ð÷úöööõöõõëõ÷óóóóóóóóóòñe2QÑðððñðððððððððððïïàâçïïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÐÑÐÐÐÏ­ÌË^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýüó÷÷÷ñ˜=!!!!!!!!$!!!!!!!!!!!!!$$!$!$!$$$!$$!$$$$$!$!$$$$$$$$!$$!$$$$$$$@ÎþÿÿÿÿúÈZ$$$$!$$$=$$$$$$=_Ëúÿÿþç�=$$$$$$$=$!$!$$$$$!$$$!$!!$$$$$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!![–Â�;! !! !  !  Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ã6ii6i8K····················³···³·³³³K³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýþþþþþþýýýüüýüüüúüüüóe‡Œð÷÷öööõööõöõ÷óóóóóóóóóóòe2QÑððððððððððððððïïïâââðïÍQ3eÙßÑÑÑÑÑÑÑÑÑÑÑÑÐÐÏÓ×ÍÌ^&&MKKKKKKKJFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷óó÷ñ�=!!!!!!!!!!!!!!!!!!!!$!!!!!$$$$$!!!$!$!$$$$=$$!!$$$$$$$$$=$$$$$@Æýÿÿÿÿñ„=$!$$$$$=$$$$$$$$$$@…ñýá_=$$$!$!$$$!$$$$$!$$!!!!$!!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!�ñþþúË@      Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãiii6i8K··················³·³·³··³³·³³³³K³³KK³³KKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJGGGFFFFJKKKKKKKJ22Äýþþþþþþþþýýýýüüúúüüüóe‡Œð÷÷ööëõöõõíô÷óóóóóóóóóóòe2QÑññðñððððððððððïïðàââïïÍQ2eØÙÑÑÑÑÑÑÑÑÑÑÑÐÐÐÞ­ÏÍÎ^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷÷÷÷ñ�$!!!!!!!!!!!!!!!$!$$!!!!!!!!!!!!!!!$$$$$$$!!$$!!$$$$$$!!$$$$$!$„úÿÿÿÿç�9$!$$$$$$$$$$$$$$==$$=_Â[$$$$$=$$$$!!!!$$$!$$$!$$!!!!!!!!$!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!  !!@áÿÿÿÿü…! !    Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ËÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ =Òûþþþþÿýýýýýý÷Ãi666i8K····³³··³·³³·³··³···³··³³³³³KKK³³KKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýÿþþþýþþþýýýüüúúúüüü󾇌ðúúöööõöõöëôóóóóóóóóóóóñe2QÑñðñððððððððððððïðàââïïÍQ3e×ßÑÑÑÑÑÑÑÑÑÑÑÑÑÞ­ÞÐÍÌ^&&MKKKKKKKJFFFFGGGGGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýüó÷÷óñ�$!!!!!!!!!!!!!!!!!!!!!$!!$!!!!!!!!!!!!$$$!!$$!!$$$!!$$$!!$$$$$[ðÿÿÿÿñ_$$$$$!$!$!!!$!$$$$$!!$$$$$!!$$$!!$!!$$!$!!!$$$!$$!!!$$!!!!$!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! [úÿÿÿÿþË!    Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãiii6i8J········³³³··³·³³³³³³³³³³³³³KK³³³KKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJHGGGFFFFJKKKKKKKJ22Äþþþþþþþþýþýýüüúúúüúüóe‡eñú÷öööõööíëô÷óóóóóóóóòòñe2QÑññððððððððððððððïââáçïÍQ3eÙÙÑÑÑÑÑÑÑÑÑÑÑÑÏÓÓÐÐÍË^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷óóóñ�$!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!$!!!!!!$!!!!!!$!!$!!!$$$$$!$$!9Èþÿÿÿó‚$!$$$!$!!!$$$$$$$!!!$$!$$$$$!$!!!!!$$!!!$!!$!$$!$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !! [÷ÿÿÿÿþË!   Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó; ÈþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ãiiiii8J···········³³³³³³³³³³K³³³³³³K³³³K³KKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ22Äýþþþþþþþýýýüüúúúúüúüóe‡Œðúúöööõííííõòóóóóóóóóóóðg2QÑðòðððððððððððððïïââçïïÍQ2eØÙÑÑÑÑÑÑÑÑÑÑÑÑ×­ÏÐÐÍË\&&MKKKKKKKJFFFFFGGGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýýýü÷óóóñ�$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!$!!!$!$$!!!!$!!!!!!!$!!_òÿÿÿýÂ9$!$$!!!$!!$$$$$!!!$!$$$!$!$$$$$$!$!$$$!!!$$!!$!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! ! ! @Ïÿÿÿÿú„   „óüüüüüüüüüüüýÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüüüç# ÈþÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ã6ii6i8J···³·····³···³³³³³³³³³³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJKJJJJJJJJJJJJJJJJJHHGGFFFFJKKKKKKKJ22Äýþþþþþþýýüüüúúúúüúú÷óe‡Œð÷úööëõííööõòóóóóóóóóóóðg2QÑððððððððððððððððïàââïÑÍQ3eÙßÑÑÑÑÑÑÑÑÑÐÐÏ­ÞÐÐÍÍË^&&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýüýü÷óó÷ñ�$! !!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!!!!!!!!!!!!$$!!$$!!!!!9ÈþÿÿþáB!$$$!!$!$!!!!$!!$$!!!$$!!!!$!!$!!!!!!!!!!!!!!$=@@@@9$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!! !_áüüòÆ9    #[___________Æþÿÿÿÿÿÿÿÿÿÿÿñ�___________Y  ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ã66iii8K³··³·³³³³³³³³³³³³³³³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJHHGGGFFFFJKKKKKKKJ22Äýýýþþþþþýüüüúúúüüúú÷òe‡Œð÷úöööõööõëôòòóóóóòóòòòñe2QÑðððððððððððððïïïïâââïÑËU2eÙÙÑÑÑÑÑÑÑÑÑÑÏÔ×ÐÐÐÍÍË^&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýüýüüóó÷óñ�$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!$$$!!!!!!$!!Yðÿÿÿú‚!!!$$!!!!!!!$!$$$!!$$!!!!!!!!$!$$!!!!$!!!!!9Y‚ÃÎáçáÏÎÃ�@$!!!!!!!$!!!!!!!!!! !!!!!!!! !!!9BB@9! !! !@�„[9  „ýÿÿÿÿÿÿÿÿÿÿÿç; ËÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ã6iiii7J³³³³³³³³³³³³K³KK³³³³K³³KK³³KKKKKKKKKKKKKKKKKKKKKKKKKJKKKJJJJJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ22Äýýýþþýþþýüüüüüüúúúúúòe‡Œðó÷ööíõíííëôòóóóóóóòòñòðg2QÑðððððððððððððïïïïâââïÑÍU2eØÙÑÑÑÑÑÑÑÑÐÑ×ÔÏÐÐÐÍÍÌ[&&MKKKKKKKJFFFFFGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýüýü÷÷÷óñ�$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!!!!!!!!!‚üÿÿÿá@!!!$!!$!!!!!!!$!!!!!!!!!!!!$!!!!!!!!!!!!!9[ÃñüþÿÿÿÿÿÿþúçÂY!!!!!!!!!!!!9999!!!!99!!!!!!!!@…Ïðñç΂;! !! !   …þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿþË #ÏÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýþþþþýýýýýý÷Ãi666i8J³³³³³³³³³³³³³KKK³³³³³³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJHHHGGFFFFJKKKKKKKJ22Äýýýýýþþþýüüüüüüúúüüúòe‡Œðó÷ööíõöííëôóóóóóóóòòòòðg2QÑððððððððððððððïïïâáâïïËQ2e×ßÑÑÑÑÑÑÑÑÑÞ­ÞÐÐÐÍÐÍÌ^&&MKKKKKKKJFFFFFGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýýýýüýü÷÷óóñ�$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!$$9ÈþÿÿýÂ$!!$$!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!@Âñþÿÿÿÿÿÿÿÿÿÿÿÿýá‚;!!!!!!!!!�ÈÈÈ–;!@„ÎÃ;!!! !_áüÿÿÿÿÿúËY ! ;ÂÈÈÆ_ !…ÈÈÈÆ_  _ÆÈÈÆ„ „þÿÿÿÿÿÿÿÿÿÿÿç; ËÿÿÿÿÿÿÿÿÿÿÿþÎY@@@@@@@@@@@YáÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýþþþýýýýýý÷Ãii6ii8J·³³³³³³K³³³·³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJJJJJHHGGGFFFJKKKKKKKJ22Äýýýýýýýýýüüýüüüüüüüüóe‡Œðúúöööõõëëëõõóóóóóòòòòòñg2QÑððððððððððððððïðïââçïïÍU2eÙßÑÑÑÑÑÑÑÑÑÓ×ÐÐÐÐÍÍÍË^&&MKKKKKKKJFFFFGGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýüüüýüü÷÷÷óñ�=!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!$$!;áÿÿÿ÷_!!!!!!!!!!!!$$!!!!!$!!!!!!!!!!!!!!!$!!!!YÎüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Æ@!!!!!!!9Ëýþþò[�Ïüþ÷‚ !! _ñÿÿÿÿÿÿÿÿþÏ@ ! [òþþýÆ!9ÆüþþþçYYçþþþüÆ …þÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿÿúòñññññññññññòüÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûþþþþþýýýýýý÷Ã666ii8J³³³³KK³³K³³³KK³³KK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJJJJJJJJJJJJJHHGGGFFFFJKKKKKKKJ22Äýþþýýüüýýüýüüüüüüüúúòe‡Œðú÷öööõöííëôòóóóóòòòòðòðe2QÑððððððððððððððïðïââáïïËU2eØÙÑÑÑÑÑÑÐÑ×ÓÎÐÐÐÐÐÍÍÍ\&&MKKKKKKKJFFFFGGGGGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJXÞüüýýýüüüó÷÷óñ�$!! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Bòÿÿÿð@!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ZÏþÿÿÿÿÿþúòñòòúþÿÿÿÿÿüÈ@!!!!!!9ËÿÿÿóÆòþÿÿÿá@!!!@ÏÿÿÿÿÿÿÿÿÿÿþÃ! [÷ÿÿþÈ  YçÿÿÿþË#;ÎþÿÿÿçY„ýÿÿÿÿÿÿÿÿÿÿÿç; ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ=Òûýýýþþýýýýýü÷Ãii68>>J³KKK³³K³³KKK³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJHJHGGGFFFFJKKKKKKKJ22Äüýþýýüüýýüüüüúüüüúúúòe4Œðú÷öööõöööëíòóóóóòðòòòðïe2QÑðððððððððððððïðïïâßâïïÍU0\ØÙÑÑÑÑÑÑÑÞ­ÞÐÐÐÐÍÍÍÍË^&&MKKKKKKKJFFFFFGGGGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJXÞüýüüüýüü÷÷÷óñ�$  ! ! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![÷ÿÿÿÎ9!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!!!!!!!!BÎþÿÿÿÿýçÃ�ZYZ[‚ÈñþÿÿÿÿüÆ;!!!!!9Ëÿÿÿþüÿÿÿÿÿü„! !„üÿÿÿýðáòþÿÿÿðY   [÷ÿÿþÈ ‚÷ÿÿÿú•  Âýÿÿÿú‚„ýÿÿÿÿÿÿÿÿÿÿÿç; ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ=Òûýýýýþýýýýýý÷Ã@YB@=[hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdBB>==@B[d=[hhhhhBBhhhhhVMghÁÁhhhhhhÁhhhÁhhhhhhhhhhhÁhhhhhhÁhhhhhhhÁhhhÁÁhhhÁÁhÁhhhhhÁÁhhhhcVÞ÷úúúúúúüú÷÷÷÷è™$CÒ÷üüüüýýüüüüüü÷ÉU,,hhhdA=[dghd^dhhhhhhhhhhhhhhhhhhhhhhhh[_hhhhhhhhhhdd_>[ddgd>[hhhhhBBhhhhhVWhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhgUÆòúúúúúúüü÷÷ó÷÷Ùu !†èüüüüüýüüüüüüüñ“-,,hhhZ>^hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdZ_hhhhhhhhhhhhd>[hhha>[hhhhhZBhhhhhV-chhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhÁÁhhhhhhhhhÁhhhhb-�èúúúúúúúüúó÷÷óñžAl×÷üüüüýýüüüüüüúÞ\,,,hh�[hhhhhhhhhhhgdddhhhdhhddhhhhddghhddhhddhhhdhhhhd>_hhha>[hhhhdZAhhhghVMghhhhhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁÁhÁhhhgT:Ê÷úúúúúúüü÷÷ó÷óâ†$>œôúüüüüýüüüüüüüò—M,,,hh[>dhhhhhhhhhhfZAAA]hdAZZ>ZhhdZAA[gdZZhdZZfdZZghhhd>_hhha>Zdd_daAAdhhhhVXhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhb-„èúúúúúúúüú÷÷÷÷òÙv !†èúúüüüýýüüüüüüúß^-,,,ghZAdhhhgggghhdCA[_[>ZdA[dggZ>__agdABgg_>ZZA^hgghd>[ghhd>>>>>dghggVcÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhÁhhhhÁhhhhhhÁhhhhhhg0UÌ÷úúúúúúúü÷÷÷÷÷òÊl   vÙ÷úúüüüýüüüüüüúòÅM,,,hdZAdggggghggh_>_hgg[A_>^ghggZ>_dggd>BgggZ[gghhhd>[ghhd>ZddaddA>dghggVThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhÁhhhhhhhU-„èúúúúúúúüú÷÷÷÷÷ñžC!uØõúúúúüýýüüüüûüúß^-,,,hg[^ghgggghgg[Adggga>_ZghghhaA>A[dd>Bggg^>�hggghd>[ggg^>[ggggdB>dgghgVWhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhhhÁhcUÊ÷úúúú÷÷úüú÷÷÷÷óèžA  oÒõúúúúúýýüüüüüüüôÅM,,,,ggd>AdghgggddgZ>aggg[>[Zggggggd_B>^d>BgddZZgdgggd>[dgg^>[gggggC>dggggVchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhT-�à÷úúú÷÷úúüúóó÷÷óèœC !uÒòúúúúúüýüüüüüüü÷Þ\,,,gdg[A_dddd[[d_Z^dcAC^Zddddg[^d_>_d?Zdg_>ZZ>_gdgga>[ggg^>[dgdggZAdgddgVUhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhb-Åôúúúúú÷÷úü÷ó÷÷÷÷èžl!!vÓòúúúúúüýüüüüüüüüè„0,,,,ddgd[>AZBA>Zdd]>>A>CadZddddaAA>AadAZddAA^cCAcdgdc>[dgg^?[dgggdBCdgdddV-bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhgXÞòú÷÷÷÷÷÷üü÷÷ó÷÷÷ñÒv$>{×õúúúúúüýüüüüüüüüõÉ:,,,,,dddgg^ZZCBZ^dggd_]Z[ddd[_ddddd^]Z[adcZ[d_]_dd_[^ddddZ_ddda]_ggggd[[dddccVghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhW‚â÷ú÷÷÷÷÷÷úü÷÷÷ó÷÷ñÙ†>  C™â÷úúúúúüýýüüüüüüü÷ß^-,,,ddcdccddcdcdcccdccdddcddcddggcdddcddcdddddddcddddddddcdccdddcgdddccdddgdUUhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhcÅè÷÷÷÷÷÷÷÷úü÷÷ó÷÷÷òâžv==wÒéúúúúúúüýýüüüüüüüúâ“,dccdcccdcccccccddddgcccccddccccdccddddccccccccdcccdcccdcdddddcdddddccdccU-bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhÁhhhhhÁhhhhhhhhhhUVÉô÷÷÷÷÷÷÷÷üü÷÷÷÷÷÷óòÙ†l$ =uœà÷úúúúúúüýýüüüüüüüüô—:dccdcddccddcccgccccdcccdccddcdcccccccdccccccccdcdccdcccdddcdcddccddcccccUghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb-^Þõ÷÷÷÷÷÷÷÷üüú÷ó÷ó÷÷òèטo= !>uœÙô÷úúúúúúüýýüüüüüüüüõÉVcccdcdcccddcdcccccccccdccccdccccccdccddccdccccccccccccdcdcdccccccddcccccU WhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhgMaÙõ÷÷÷÷÷÷÷÷úüú÷ó÷÷ó÷÷òèÙœyC=!!=l}žàò÷úúúúúúúüýüüüüüüüüü÷ÌbcccdcccddddccccccdccccdcccccdcccccdcccdccdccccccdcccccccccccccccdcdcccccT chhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhX‚ß÷÷÷÷÷÷÷÷÷÷üú÷÷ó÷÷ó÷÷òòâÓž†uC>=$!!! ! ! ! !!!!!!!!! !! !! ! ! ! !!! !!! !!! ! ! ! !! ! !! ! ! !!! ! ! !!!!!! ! ! !!! !! ! !!! ! ! !!! ! !!! !! ! !!!!! !!!! ! ! ! !!!!! !!!! !!!!! ! !!!! !! !!!!!!!!! !! !! !! !!! ! !! !! !!!!!! !! !! !!! ! ! ! ! !!!!!! !!!$=Alv�žÙèò÷÷÷úú÷úúúüýüüüüüüüüü÷Þ^-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT:ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhg“âõ÷÷÷÷÷÷÷÷÷úüú÷÷÷÷óó÷÷÷÷òèß×Êž™������������������†�������������������†��������†������††�������†�††������������������˜���������††��������†���†��™����˜��™���������������˜�˜��˜˜˜���˜˜˜��††�˜™���������������������†��������������†�������������������†�†��������������������������������������™žÊÙàèò÷÷÷÷÷÷÷÷úúüýýüüüüüüüüü÷Þ^-,,,X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@bcT XhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁÁhhhhhhVM„ßò÷÷÷÷÷÷÷÷÷úüüú÷óóó÷÷÷÷÷÷÷óòòññéèéñèñèèèñéñññññôñèñôéñééñññññéñôôôôòôôñôôôôôôòôôõòõôôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ÷÷÷÷÷÷÷÷÷ú÷÷úúú÷÷ùúûúøúûûûûøøøûûûûûûüûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûøûûøûûøûøø÷úø÷ú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõòòõôôôôôôôôôôôôôôôôôòôôôôôôôñèéèèèèèééèèèèèéééèééèèééôòò÷÷÷÷÷÷÷÷÷÷÷úüüýüüüüüüüüüü÷Þa-cbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccTchhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhb‚Þò÷÷÷÷÷÷÷÷÷÷úúüú÷÷÷÷÷ó÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úú÷úúúúúúúúúúúúúúúúúüúüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþþþþþþþþþþþþþþþþþþþýýþýýýýýýýýýýýüüüýüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüýüüüüüüüüüüüòÌ^-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT:ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhgTaÞô÷÷÷÷÷÷÷÷÷÷÷úüüú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷ó÷÷÷÷÷÷óóó÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýýýýþýþþþþþþþþþþþþþþþþþþþþþþþÿþÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýüüüýüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüýýüüüüüüüüüüüúôÉ^-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT-Xhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb-^Êèò÷÷÷÷÷÷÷÷÷÷÷úüüüúó÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷ó÷÷÷÷óóóó÷óó÷÷÷÷ó÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿþÿÿþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüúüúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ò÷÷÷÷÷÷÷÷÷÷÷÷÷úüýýüüüüüüüüüüüüúèÆVccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT chhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhgVÅßô÷÷÷÷÷÷÷÷÷÷÷÷÷úüüüúúúú÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷óó÷÷÷÷÷ó÷÷÷÷ó÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿÿþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýüüýýüüüüüüüüüüüüüüúúüüüüúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷úúúüüýýýüüüüüüüüüüüüü÷ß…:cccccccccccccbccccccccccccccbbcccccccccccccccccccccccccbbcccccccbbccccccT UhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhX"‚Þè÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüýüýýýýýýýüüýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþþÿþþþÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþþþþýýýþþþþýþþþýýþþþýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüýýüüüüüüüüüüüüüüüüüúéÌa,ccbbXXbccccccbccbbbbbbbbbbbcccccccbbcbccccccbbcccccccccbbccbbccbbbbcbccbT-bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhcV�ßò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüýüýýýüüýüýýýýýýýýýýýýþýþþýþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþþýþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüúõß–V-cbbYXYYbccbbbcbcbXYbbYXY@YYbcbbcccbbbbbbccbbbbbbbbcccbbbcccbcbbccYXbbccbT dhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhT:�Ìèòõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüýüüýýüüüüýýýýýýýýýýýýýþýýþþþþþþþþþþþþþþþþþþþþþþþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüüüüüüüüüüüüüüüüüüüü÷èÉ^0bbbYbbYY[YXYYYYbbYBYYYbY@bY[cbYYbXY@@XYYY[YY@YYYbbXYbYYYYYXY[YYbY@YbbbcbTUghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb--V…Êâò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúüüüüüüüüüüüüüüüüüüüüüýüüüýýýýýýýýýýýýýýýýþýþþþþþþþþþþþþþþþþþþþþþþÿþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþþþÿþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü÷âÊ‚:bbbYXbBY@Y@@YBXbbYYXYYbYBbYYbbYYYYX@BX@@BYYY@XYYbbY@XB@BYXBYY@BYYYYbbbbbT-bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhgT V„Ìâñ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷úúúúúúúúúúúúúúúúúúúúüúúüüüüüüüüüüüüüüüüüüüüüüüýýýüýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþÿþÿÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüúòâÉ�:-bbbbYYYbXXY@YYbbbbYYbXYYYBYbXXBYbYBBYXYYYXXYYbYYbbYYXYBYYbYXXYYXYBYbbbbbTMghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhX:f�Þèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúüüúüüüüüüüüüüüüüüüüüüüýüýýýüýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþÿþþÿþÿÿþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüú÷èÞÅa:bbbbbbbXbbXbbbbbXbbbbbbXbbbbbXYbbbbbbbbbbbbbbbbbbbXXbXXbbbXXbbbbbXXbbbbbT Xhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhc   -^„Éßèñò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúüúüüüüüüüüüüüüüüüüüüüýýüýüüüýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüúòè߯‚VXbbbbbbbbbbXbbbbbbXbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbXbbbbbbXbXbbXbbbbbTchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhW "V‚—ÉÙâèñòòòòò÷÷ò÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúûúúûúúûûûûûûûûüüüüüüüüüüüüüüýýýýýýýýýüýüýýýýýýýýþýýþýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþýýýýýýüüýüüýýýýüüüüýüüüüýýýýýýýýýýüüüüüüüüüüüüüüüüûüüüüüüûûûûûûûûûûûûûûûûûúûûúúúúúúúúúúúú÷÷÷÷òñâÞÉ–�VXXbXXXXbbbbXbbbbbXXbbbbbXXXXXbbbbbbXbbXXXXXXXXXXXXbbbbXbbbbXXXbbbbbXXXXbTTdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhc    :Y_‚–�ÉÊÊÌÌÌÌÌÌÌÌÌÌ×ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÞÌÌÌÌÞÌÌÌÞÌÞÞÌÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÙßààââââââââââââèèèèèèèèèèèèèèèâââââââââßßßßßßßßßßßÞßÞßßßÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÌÌÉÉÉ�…�[V:XXXXXXXbbXXXbbXbXXXbbbXbXXXXXXbbbXbXXbXXXXXXXXXXXXXbXXXXXXbXXXbXXXXXXXXXTXhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhh:     ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::bh•ÂÄËËËËÍÎÍÍÏÏááççðçñòòòòòñçÑÑÏÍÍÈÆÃÁ•„fdacbXXXYVV@@;@YV::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::0-XXXXXXXbXXXXXXXXXXXXXXbXXXXXXXXbXXXXXbXXbXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXTdhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb-    TghÁÄÍÍÍÐÍÍÐÐÑÑÑïðððñòóóó÷óóñðÑÐÍÍÄÄÁÁhhccXXTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXbXXT Thhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhÁg       UgÁÄÍÍÐÐÐÑÑÑÐÑÑïïðððòòóóóúóóððÑÐÍÍÄÄÄÁhhccbXTTTXTTTWXXXXXXXXXXXXUXXXXXXXXXbXXXXXXXXXXXXXXXXXXTTXWTTXXXXWXXXXXXXXXT -bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhW      UhÂÄÍÑÑÑÑÑÑÑÑÑÑïððññòò÷óúúóóððïÑÐÍÄÄÁÁhhgcbXXT"TTTTTUUTTTXXXXXXXXXXUTTXXXXTXXXTghhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁÁhhhhhhhhhhhhhd                  WÁÄÍÑïïÑÑÑÑÑïÑïðððñòòóóó÷úóòððÑÐÍÍÄÄÄÁÁhdcbXXTTTTTTTTTTTTTUhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhU                 WÁÄÍÑïïïïÑÑÑÑÑïïððððòòóóóúóòòðÑÑÐÍÄÄÁÁhhdcbXXTT -bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhb                  XÁÍÍïïïïïïÑÑÑÑïððððððòóóúúóòððÑÑÍÍÄÄÁÁÁhdcbXXTTMghhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhgM                        XÁÍÐïïðïïÑïÑÑïïïððððóòóóó÷óóððÑÑÐÍÄÄÁÁhhgcbXVT"""  WhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhX                      XÁÍÍïðïïïÑïïÑÑïïððñòòòóóúúúóðïïÑÍÍÄÄÄÁhhgcbXVT""       chhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhd                         XÁÍÍïïððïïïïÑÑïïððððòóóóóúóóððïÑÍÍÄÄÁÁhhdcbXXT"     TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhW                          XÁÄÐÑððïïïÑÑÑÑïððððòóóóóúúóòñïÑÑÍÍÄÄÁÁÁhdcbXX:""  XhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhÁhhÁhhhhhhhhÁhhhhhhhhhÁhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhÁÁhhhhhÁÁhÁhc                              XÁÄÍïððïÑÑÑïïÑÑçðððñóóóóúúóòðïÑÑÍÍÄÄÁÁhhdcbXXT"    chÁhhhhhhhhhhÁÁhhhhhhhhhhhÁÁhhhhhhhhhhÁhÁhhÁhhhhhÁhhhhhÁhhÁhhÁhhhhhhÁhhÁhhhhhhÁÁhhÁÁhhhhhhhhhhÁhhÁhh:                             XÄÄÍïïïïÑïÑïÑÑïðïðððòóóóóúóóòïÑÑÍÍÄÄÄÁhhgcbXUT"""     TghhhhÁÁhhhhhhhÁhhhÁÁhhhhÁhhhhhÁÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhÁÁhhhhhÁÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhb                                XÁÍÍïïðïïïÑïÑïïðððððòóóóóúóóðïïÐÍÍÄÄÄÁhhgcbXXT"    XhhhhhhÁÁhhhhhhhhhÁhhhhhhhhÁÁhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhÁhhÁhhhhhhÁÁÁhhhhhhhhhhÁhhhhhgM                              XÁÄÍïðïðïïÑÑÑïÑïðððñòóóóóóóóððïÑÍÍÄÄÁÁhhdcbXXTT"    dhhhhhhhhhhhhhÁÁhhhhhhÁhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhX                                     XÁÄÍïðïðïÑÑÑÑÑïïðððòóóóó÷ú÷óððÑÑÐÍÄÄÄÁhhdcbXVT"""T      UhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁÁÁhhhhhhhhÁhhhhhhÁhhhhhÁhhhhÁhhhhhhÁÁÁhhhhhh•Áhhhhhhhhhhhhhc                                        XÁÍÐïïðïïïÑÑÑÑïðððñðòòóó÷úúòððÑÑÐÍÄÄÁÁhhdcbXUTT"   bhhhhÁÁhhhÁhÁhÁhhhÁÁhhÁhhÁhhhhhhÁhÁhhhhhhhhhÁhhhhÁhhhhÁÁhhhhhhÁhÁÁhhÁhhÁhhÁÁhÁhhhhhhhhhhhÁhÁÁhhhhhhhhhhg:                              XÁÍÐïïðïÑïïÑÑïïðïðððòóóóóó÷óððÑÐÍÍÄÄÁÁhhgcbXU:T"UUT:UUUUUU:::TTUUTUUUU:TUUUUTU:T::U::U:U:U:TTU:UTT:U:UUUUU:UTTT:U:U:TT::UUU:T:U:TTU:TTTTT::UU:UTUUUUTT:WhÁÁhhhhÁhhhÁÁhÁÁhhhÁhhhÁÁÁhÁÁÁÁhÁÁÁÁhhhÁÁhhhÁhhhhhÁÁhhhÁÁÁÁhhhhhÁÁÁÁhhhÁÁhhÁhhhhhhhhÁhhÁhhhÁÁhhhhhhhÁÁhhcUTTTTTT:UTTTTTTTTTTTTTTTTTT:UTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUTTTTTTTTTTUTTTTT:TTTTTTTUTTTTTTTTTTTTTTTTTTTTTTT:TTTTTTTTTTTTTTTTTTUTTTT:TTTTTTTTTTU:TTTTTTTTTTTTTTTTU:TT::::TUTTTTU:TT:UUTTTTTTTU:TUTTTTU:U::T:UUUU:T:bÁÍÐïðïðïïÑïÑÑÑïððððóóóó÷úóóððïÑÍÍÄÄÁÁÁhdcbXXT"":UU:UT:UU::U:UU:UUUUUU:U:UUUTUUUUUUUU:UUUUUUUU:UUUUUUUU:UU:UUUU:UUUUUUUUUUUUUUU:U:UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁhÁhhhhhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÄÍÐÑððïïÑÑÑÑÑÑïððððòòó÷÷úóóððÑÑÍÍÄÄÁÁhhdcbXXT""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhggghghghhghhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhgggggghhhhhgggghgghhhhghghhhhhhhhhhhhghhhhhhhhghhghhhhhhhghgghhhghhhghhggghhhhhhhghhghhhhhhhhhhhhghghhhhhgghhhhhhhhhgghhhhhhhhggggghghgghhhhhghhhghhhhhhhhhhhhhhhhgghhhhhhgghgghhhhhhhhghhhggghhhhghhhhhhhhhhhhhhhhghghhhhhhhghhhhhgghghhhhhhghhghhgghghhhhhhhhhhhghhhhhghhhghghhhghhhhhhhhhghghhghhhhhhhhhggghghgghhhhhhhhhghhhhhhhhhhhhhhhhgghhhhhhhghhghhhhhhhhggggghhhhghghhhhhhhhhhhhÁÍÐïïïïïïÑÑÑÑÑïððòòòóó÷÷ú÷óððÑÐÍÍÄÄÁÁhhgcbXXTT""TdghhghghhhhhhghhhhhhhhhhggghhhhhgggghghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhghhhhhhhhhhhhgggggghhhhhhhhhhhhghhhhhghhghhhhhhhgghhhhhhhghghhhhhhgghhhghghhhhghhghhhhXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbgÁÍÐïïððïïÑÑÑïïðððððóóó÷óóóòððÑÑÍÍÄÄÁÁhhgcbXXT""XXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXbXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXgÄÍÍïððïÑïÑÑÑÑïïïððòòóóóóúóóððÑÑÍÍÍÄÁÁhhgcbXXU"""XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXdÁÍÐÑðïïïÑÑÑïÑÑïïðððóòó÷óúúóððïÐÍÍÄÄÁÁÁhdcbXVT"""XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcÁÍÐïððïïïïÑÑïïðððððóòó÷÷÷óòðïïÑÍÍÄÄÁÁhhgcbXUTT"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXVXXXXXXXXVXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXVXVXXWXXUXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXWXXXXXVXVXXXXXVXXXXXXXXXVXXVXXXXXXXXVXXVXXVXXXXVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXVXXXXXXXXXXVXXXXXXXXXVXXVXXXXXXXVXXXXXXXXXXXXXXXXXXVXXXXXXXXXXXXXXXXXXXVXVXXVXXVXXXXVXXVXVXXVXXWXXUXXXVXXXXXXXXXXXXXXXVVXXXXXXVXXXUUVUXXXXUXXXXXUXXXcÁÍÍïðïïïïïÑÑÑïïðððòòóó÷óú÷óðïïÑÍÍÄÄÁÁÁhgcbXXTT"WXXVXXUUVXXXXXXVUUXXXXXXXXXXXXXXXXXXXXXVXXXUXXXXXXXVXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXVXXXXXXXXXUUUUUVUUXUUVVVXUUUUUXXUUUUUUXXUUUUdccddcccddcdccccccdcdcdccccdccddcdccdcccccccccdddcccccdcdcccdcccccdddccccccdcccddccddcdcccccddcccccccccccdcdcdcccdcccdddccddcdcccccccccdccccccccdcccccddccccccccdccdcccccccdccdccccddddcdccccddcccdcccdccccdcccddcccccccddccddddccccccddccccddccccccccccccdccccccccccccdccccccccccccccccdcdcccccccccccdcccccccddccccccccccdccccccccccccccccddcccccccccccccccdcccccccccccddcccccccccccccccccccccccdccddcccccccddcccccdccccccccccccccgÄÄÍÑðïïïïÑïÑÑïïïðññòòóóóúóóððïÑÍÍÄÄÁÁÁhdcbXUT""bcccccccccccccccccccdccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhhhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhÁÍÐÑðïïïïÑÑÑÑïððððñòóóó÷úóóððÑÐÍÍÄÄÄÁhhdcbXUTTTgÁÁÁhhÁhÁhhhhhÁÁhÁÁÁÁÁhÁÁhÁÁÁhÁhÁhÁÁÁhhhhÁÁhhÁÁhhhÁhhhhÁhhhhhhhÁhhhhÁÁÁÁÁhhhÁhhhÁhhÁÁÁhÁhhhhÁÁhhhhhhhhÁÁhhhÁÁhhhhhhhhhhhhhhhhhhhÁhhÁÁÁhÁhÁhÁhÁÁhhhhhÁÁhhhhÁÁhhhÁÁhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁhhhÁÁÁÁhhhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhhhhÁÁÄÐïïðïïïÑïÑÑïïððñðòóóóúúóóððÑÐÍÍÄÄÄÁÁhdcbXXTT"ThÁÁhhÁhhhhhÁhhÁÁhÁÁÁhhhÁÁhhÁÁÁhhhhÁhÁhhhÁhÁÁhhÁhhÁÁhÁhhhÁÁÁÁhhhhhhhhÁhÁÁÁhhÁÁhhhÁÁÁhhÁÁhhhhhhhhÁhÁhhÁhÁÁhhhÁÁhhhhÁhhhhhÁhhhhhhhhhÁhhÁÁhhhhhhhÁÁÁhhhhhhhÁhÁhhhhhhÁhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhhÁÁÁÁÁÁÁÁÁhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁhhÁhÁhÁÁhÁÁhhhhÁÁÁhÁÁÁhhÁÁhÁhÁÁÁÁÁÁÁÁhhÁhhhÁhhhÁÁhhÁÁÁhhÁhhhhÁhÁÁÁÁhhhhÁhÁhÁÁÁhhhÁhÁhhhhhÁÁÁÁhhhhhÁÁÁÄÐïïïïïÑÑïÑÑïïðððòóóóóóú÷òððÑÑÍÍÄÄÄÁhhccbXXTTThhhhÁhhhhÁhhhÁhhhhhÁhhhhÁhhhhÁhÁhhhhhhhhÁÁhhhhhhÁÁÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhhÁhhÁÁÁÁhÁÁÁÁhhÁÁhhÁÁÁÁÁÁÁÁhhÁÁÁÁhÁhhÁÁhhhhhÁÁÁÁÁÁÁÁÁÁÁhhhÁhÁÁÁÁÁÁÁÁÁhhhhhhhÁÁhhÁÁÁÁÁhÁhÁÁÁÁhhÁhhhhhhhhhÁÁÁhhÁhÁhhhÁhhÁÁÁhhÁhÁhhhhÁhhhhhÁÁhhÁÁhÁÁÁÁhhhÁÁhhhÁhhhhhÁÁÁÁÁhÁhhhhhhhhhhhÁÁhÁhhhhÁhhhhÁhhhhÁhhÁhÁÁhhhhhhhhhhhhÁÁÄÍÑïðïïïïÑïïïïððñòòòó÷óóóòððÑÑÐÍÄÄÁÁÁhdcbXXUT"""ThhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhhÁhhhhhhhÁhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁhÁhhÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhhÁÁÁhÁÁÁÁhhhÁÁÁÁhhÁÁhhhÁÁhÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁhhÁÁÁhÁÁÁÁhhhhÁÁhhÁÁhÁhhÁÁhhÁÁÁhhhhhhÁhhhhhÁÁhÁhhÁÁhhÁhhhhÁÁhhhhÁhÁhÁÁhhhhhhhhhhhÁÁhÁhhÁhÁhhhhhhhÁhÁÁhhhhhÁÁhhhhhhhhÁhhhÁÁÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhÁhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍïððïðïÑÑÑïïïðððòóóóóó÷óóððÑÑÐÍÄÄÄÁhhdcbXXTT""ThhhhÁhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁhhÁhhhhhÁÁÁÁÁÁÁÁÁhÁhÁhhhÁÁÁÁÁÁhÁÁÁÁÁÁhhÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁhhhhhhhhhhÁÁÁhhhhhÁhhhhhÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁhhÁhhhhhÁhhhhhÁÁhhhhÁhhhhÁhÁÁÁhÁÁÁhhhhhhhÁÁÁhhhhhhhhhhhÁhhÁÁhhhhhhhÁhhhÁhÁhhhÁhhhhÁhÁhhhÁhhhhhhhhhhhhÁhhÁhhhhÁÁhÁÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÍÐïðïÑïÑÑÑÑïïðððñðòóóó÷÷óóòðÑÑÍÍÄÄÄÁÁhdcbXX:T"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁÁhhhÁÁÁhhhÁhhhÁÁÁÁÁÁÁÁhhhÁhÁÁÁhhhÁhÁÁÁhÁhÁÁhhhÁÁhhhhhhÁÁÁÁÁhhhÁhhÁÁhhhhÁÁhÁhhÁÁhhhhhhhhhhhÁhÁhhhhhhÁÁhhhhÁhÁÁhÁhhÁÁhhhhhhhhÁÁhhhÁhÁÁhhhÁhhhhhÁhhhÁÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhÁÁhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhÁhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÐÑïïÑïÑÑïÑÑïïððòðóóóó÷óóòñðÑÑÍÍÄÄÁÁhhgcbbXTTThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhÁhhhhÁhhhhÁÁÁhhÁÁhhhÁhhhhhhhhhhhhhhhÁhÁÁhÁhhhÁÁhÁhhhhhhhÁhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÐïððïïÑÑÑÑÑïïððññóòóó÷úóóòïïÑÐÍÄÄÁÁhhgcbXXU""ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÄÄÍÑðïïïÑïïÑÑïïððñòñóó÷óúóòððÑÐÍÍÄÄÁÁhhdcbXXT"""ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÑïïïÑÑÑïÑÑïïððððòóóóóúóóñïÑÑÍÍÄÄÁÁhhdcbXXT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÂÍÐÑïïïÑïÑÑÑÑïïðððñòòóóúúóòñïïÐÐÍÄÄÁÁhhgdbXXTTThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÐÑðððïïÑïÑÑïððñðòòòó÷÷÷÷óðïÑÐÐÍÍÄÁÁÁhdcbXXT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÍïïðïÑïïÑÑÑïïððññòóóó÷úúóñïÑÑÍÍÄÄÁÁhhdcbXXT""""""ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÐÑïïïïïïÑïÑïïððñòòóóó÷óóòòðÑÐÐÍÄÄÄÁhhdcbXXTT""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÍÐÑðïïïÑïïÑÑïïððñòòóóóóúúòððÑÑÐÍÍÄÁÁhhdcbXXTTTghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÍïððïïÑïÑïÑïïïððòòóóóóúóóððÑÑÍÍÄÄÄÁhhdcbXUTTTdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÍïïïïÑÑïÑÑïïïïððñòóóóúúóóððÑÑÐÍÄÄÁÁhhdcbXUTT"TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÍÐïðïïïïÑÑÑÑïïðððòòóóó÷úóóððÑÐÍÍÄÄÄÁhhgcbXXT"TdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÐÑïïïïÑÑÑÑÑïïððððòóóóóú÷óððÑÑÍÍÍÄÄÁhhgcbXX:"TdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÐïððïÑÑïÑÑÑïïððñðóòòóóú÷òððÑÑÐÍÄÄÁÁÁhdcbXXT""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÐïðïïïïïÑÑÑïðððððó÷óóúúóòððïÐÍÍÄÄÁÁhhdcbXXU""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÄÄÍÑïïïðïïÑÑÑÑïðððòñóóóú÷óóððÑÑÍÍÄÄÄÁhhdcbXUTTT"""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÍÑïððïïïÑÑïïððððòòòó÷úú÷òðïïÑÐÍÄÄÄÁhhdcbXUTTTTdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhCorsixTH-0.70.0/CorsixTH/Bitmap/mainmenu480.pal000066400000000000000000000014001522247547500207730ustar00rootroot00000000000000                                               ! $ ! " '#$' *( #&'!$"%(),*, "%#$) "(#)%  + - *!.$.!" &""!&$'!*"-%.")#+$*%-#/$0"0$2%4#/&1&6&1'3'7(2(7)1)4)8+:)9,:&",,.!%#),2 #, !&0)5!!! #'!$'%%% #("%) &-$'*$'+"(.&(+%)-***(*-*,.--+--- '0"*1!*4!+3",4$*1$+4&,2%-5 +7!,8$-8(+/*-2).4,.1+/3(/8'/6'/9*05.02-15.37*09-3:,3;.48,4;11/111025246566/37159/5<56837;37;68969<99::;<;;‚^AŒdB˜kC�pH†lW‘nQ‹r\–tX nC§vJ²}L¬|P±~P�n`ˆuf”{g�|p�~q¤w`/ƒGŠk¡~F�ZJ¥[P”a}‚i®€E·‚M¬�[¹„R¼‘WŠ„lš�kŠˆv™…uŸ’w¨†gµˆk»”h¦‹u°Žr«’z·•wÀŽLÁ�NÄ‹VÌ‘ZÒ–]ÀŽ`Æ™fÙ›aÅ›tПràŸcÉ¡lÝ eȦyÔ¤}ã¤fë°næ§rë²q™<<ˆ²"U³8f¹AA†DD•bbŒKK§^p±$$̳Œr„€˜Õ¦„„„œŽƒž�…––– Ž�¥•‰¶˜ƒ«œ’°ž�¼¡‰®¡˜¸¥—©©©¶ª¢¼²«­µµ¸¸¸ÂŸ‚È©ŠÔ¬‡Î°‡Ó³ŠÈ©’Ñ®‘̲™Ö¶—஀᳇ᶒÀ® Éµ¨Ô¼¥Ç¼²Ð¿°á¿ ÙÀŸåÀ�ØÂ¬Ìº×ǶÞмæÄ©éÍ·ðϱâѼðѲ½ÅÅÇÇÇ×ÌÃÛÒÊÛÚØàÏÀå×ÈóØÀâÜÕðßÐíàÎæáÜñæÛëèåñíéóðíýýýhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhgghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhghhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhÁÁÄÄÍÑÑïðððÑðïÑïÑÑÑïïððððïððòðóòòóúóúúüóòòððïðÑÐÐÍÍÄÄÄÄÁÁhhhccbbXXTTTTT"TdhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhÁÄÄÍÑððïïðÑïÑïÑÑÑïÑïïïððððòòòòòóóóúúóóòòóðïÑÑÑÐÍÍÄÄÄÁÁÁÁhhgcccXXXTUT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhÄÄÄÍÑÑïðïïðððïïïÑÑÑÑÑÑðïðððòððóóóòóú÷óóóòððÑÑÑÐÍÍÍÄÄÄÄÁÁhhgdcbbXXTTTTTT""T""TghhghhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhghhhhhghghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÑÑïðïÑïïïïïÑÑÑÑÑÑðððïððððòóúóòóóúú÷óòððòðïÑÍÍÍÄÄÄÄÁÁÁhhgddcXXXXUTT"""ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhghhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghghhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhÁÁÄÄÍÐïððïðÑÑÑïïÑÑïðïïïððððòðóóòóóúúúúúóòóðïïÑÐÍÍÍÍÄÄÁÁÁÁhhgcccbXXXTT"T"Thhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghghhhhhhhhhhhhhhhhhhhhhÁÄÍÐÑïðððïÑÑÑÑïÑÑÑÑÑðÑðïðòððóóòòòóóóúúóòðððïÑÑÑÑÍÍÄÄÄÁÁÁÁhhccbbXXXTTT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhghhhhhghghhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhhhhhghhhghhhhhhhhhhhhhhhgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghhghhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhghhhhhghhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhghhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhÁÁÄÄÐÑÑïðÑïÑïÑÑÑÑÑïÑÑðïðððòððòòóóóóóúüúóóðððÑÑÑÐÍÍÄÍÄÄÁÁÁhhggdbbXXT:T"Tdhhhhhhhhhhhhhhhhhhhhhghhhhhghhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghhhhhhhghhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhghhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhghhhhhhhhghhghhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhghhhhhhhghhhhhhghhhhhhhhhhhghhhhhhhhhhhhhhgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÍÐïïïïððïððïïïÑÑÑïÑïððððððòóóóóóóóúúóóòððïÑÐÍÍÍÍÄÄÄÄÁÁhhhgccXXXXUT"""TTTTghhhhhhhhhhhhhghhhhhhhhhghhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhghhhghghhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhghhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhÁÄÍÍÑðððïïïïïÑÑÑÑÑÑïïïðððòðòóòóóóóóúúóóóðððïÑÐÑÍÍÄÄÄÄÄÁÁhhgdccbXXXTT""""dhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÍÑïïïïÑïÑÑçïÑïÑïÑðïïððòððòðóóóóúóüóóóòððÑÑÑÑÍÍÍÄÄÄÁÁÁhhgdcbbXXTTTT"""ThhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•h•hhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhÁÁÄÍÍÑïðïïïïÑðïïÑÑïÑïðÑïïðððòòóóóóóúúüóóóòððïÑÐÐÍÍÄÄÄÄÁÁÁhhhccbbXXUTTT"gghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÍÑððððïðÑÑïÑÑÑïÑÑïðïðððñóòòóóóóóóóúóóðððïÑÑÐÍÍÍÄÄÄÄÁÁhhdgccbXXTTT"TdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhh•hhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÄÍÍÑÑððïïïïÑïïïïÑÑÑðïðððòòðòòóòóóóóúüóòòððÑÑÑÑÐÍÍÄÄÁÁÁÁhhgdcbbXXXTTT""""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÍÐÑïðïïïïïÑïÑÐÑÑïÑÑððððððóðòòóóóúóóúóóòððïÑÑÑÍÍÍÍÄÄÁÁÁhhhcccbXXUTTT"TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhghhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÐÑÑïïðïïÑïïïÑïïÏïçÑðïðòòòóòóóóóóúóóóðóòððÑÐÍÐÍÄÄÄÄÄÁhhhddccXXXXTTTT"TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhÁhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÄÍÑðïððïÑÑïïðÑÑÑÑïïïðïððòððóóóóóóúúúúóòðïïÑÑÍÍÍÄÄÄÄÁÁÁhhhdccbXXXTT""T"""ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhÁÁhhhhhÁhhhhhhÁhhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhÁhhhhh•hhÁhhÁÁhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÄÍÐÐïïðÑïïÑïÑïÑÑïïÑïðððððòòòðóóóóú÷óúóóóððïÑÑÑÐÍÍÄÄÁÁÁhÁhhdccbXXXUT""T""TThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhÁhhhÁhhhÁhhhhhÁhhhhÁhhhÁhhhhÁhhhÁhhhhÁÁhÁhhhÁhÁhhhÁhhÁhhhÁhhhhhhhhhhhÁhhhhÁÁhhÁhhhhhhÁhhhÁÁhhhhhÁhhÁhhhhhhhhhÁhhhhhhhhÁhhÁhhhÁhhhhÁÁhhhhhhhhhhhÁhhhhÁhÁhhhhhhhhhhhhÁÁhhhhhÁhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÍÑÑðððððïïÑÑïïÑÑÑïðððòððòóòòóóúó÷úóúóòðïÑÑÐÐÐÍÍÍÄÄÁÁÁÁgdccbbXXVTT"""TThhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhhÁÁhhhhÁhhhÁhhhhhhhhhÁÁhhhhhhhhÁhhhhÁhhhhhhhhhhÁÁÁhhÁhhhhÁhhÁhhhhÁhÁhhhhhhhÁhhhÁhhÁhhhhhhhÁhhÁhhÁhhÁ•hhhhhÁhhhhÁÁhhhhÁhhhhÁhhÁhhhhhhhhhÁÁhhÁhhÁhhhhhhÁÁhÁhhhhÁhhhÁhÁhÁhÁhhhhhhhhhhhhhhÁhhhÁhhhhhÁhÁÁhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhÁÁhhhhhhhhhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÂÄÍÍÑïïïÑïÑÑïÑÑÑÑÑÑïðïïððòððòòòòóó÷úúóóòòððïïÐÐÐÍÄÍÄÄÁÁÁhhhgdcXXXTTTTThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•h•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhÁhÁhhhhhhÁÁhhhhhhhhhhhhhhÁhhhhÁÁhhhhhhhhhhhhÁÁhhhÁhhhhhhhÁhhhhÁÁhhhhÁÁhhhhÁhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhÁhhhhhhÁhÁhÁhÁhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁÁhhhhhhhhhhÁÁÁhhhhhhÁÁhhhhhhÁhhhhhhÁhhhÁhhhÁhÁhhÁhhhhhhÁhhhÁhhhÁhhÁhÁhÁhhÁhhhhhhÁÁhhhhhhhÁhÁhhhhhÁhhhhÁhhhÁhhhhhhhhhhhhhhhhhÁÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhÁhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhh•hhhhhÁÄÄÍÐÑÑððÑðïïïðÑïÑïÑÑïïïðïððòòðóóóóúúúóóóòðïïÑÑÐÍÍÄÄÄÄÁÁÁhhhdccXXXXUTT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�hhhhhhhhhhhhhhhhÁÁÁÁÁÁhhÁhhhÁÁhÁÁhÁÁhhhhhÁhÁhhÁhhÁÁhÁÁhhhhÁhhhhÁhhÁÁhhhhhhÁhhhhhhhÁhhhÁÁÁhÁhhhhhÁÁhhhÁhÁÁÁÁÁhÁhhÁÁhhhhÁhhhhÁhhhhhÁhÁhhhÁhhhhÁhhÁhhhhÁÁhhÁhhhhÁhÁhhhhÁhÁÁhhhÁhÁhhhhÁhhhhhhhÁhhÁhÁhhhÁhhÁhÁhÁhhhÁÁhhhhhhhhhhhhÁÁhhÁÁhhhhhhhÁhhhÁÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhÁhÁhÁÁhhhhhhÁÁhhhhhÁhhhhÁhhhÁhhhhÁÁhhÁhhhhÁhhhhhhhhhÁhhhhhhhhÁhhÁhhhhhhhÁÁhhhhhhhhhhÁÁhhÁhÁhhhÁhhhhhhhÁhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhÁhhhhÁhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhhhÁhhÁhhÁhhÁhhhÁhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÍÑÑïðïðÑÑÑÑÑïÑÑÑïïïïððððððóóóóóóóüúòóòðïðÑÑÍÍÍÍÄÄÄÁÁÁhhgccbXXXXTT"""ThhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁhhÁÁhhhÁhÁhhÁÁhÁhÁÁÁhÁhhhÁhhhÁÁÁhhÁÁhhhÁÁhÁÁÁÁhÁhhhhhÁhhhhÁhÁÁhÁhhÁhÁhhhhÁÁhÁhÁÁÁÁÁÁhhhÁhhÁhhÁÁhhhhhÁÁhÁhhÁhÁhhhhhÁhÁÁhhÁhÁÁhÁhÁÁÁÁÁÁhhhhhÁhhhÁÁhhhhhhhÁÁhhÁhÁhÁhÁhhÁÁhÁhÁhhhhÁhhhhhÁhhhÁhÁÁhhhÁhÁhhÁhÁÁhhÁÁhhÁÁhhhhhÁhhÁhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhÁhhhhÁhhhhhhÁhhhhhÁhhÁhÁhhÁhhÁÁhhhÁhhhhÁhhhhhhhhhhhÁhÁÁhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhÁhhhÁÁÁÁhÁhhhhhhÁhhhhhhhhÁhhhhhhÁhÁhhhhÁhhÁhhhÁhÁhhhhhhhÁhÁhÁhhhhhhhÁÁhhÁhhhÁhÁhhhhhhÁhÁhÁhÁhhhÁhhhhhhhhhhÁhhÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhÁhhhhÁhhhhhhhhhhÁÁhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhÁhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhÄÄÄÍÑÑðïïïïïÑïïïïÑÑïïðïðððòòðòóóòúúóüóóòòðððÑÐÍÍÍÍÄÄÄÁÁhhhddccbXXXTT"T"Thhhhhhhhhhhh•hhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhÁhÁhÁÁhÁhÁhÁÁÁhhhhÁÁÁhÁÁhhÁhhhÁhÁÁÁÁÁÁÁhhÁhÁÁÁhÁÁhÁÁhhÁÁÁhÁhÁÁhÁhhÁÁhhhhhhhhÁÁhÁhhhhhhhÁhhhhÁhÁÁÁÁÁhhhhÁhÁÁÁhhhÁhhhÁÁÁÁhÁÁhÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁhhÁhÁÁhhÁhhÁÁhhhhÁhhÁhhhhhhÁhhhhhhÁhhhÁÁhÁÁÁhÁÁhÁÁhÁÁhhhhhhhhhhÁÁÁhÁÁhhÁhÁhÁhÁhhhhhÁÁhhhÁhhÁhÁhhÁÁhhhÁhÁhhhÁhÁhhÁhhhhhhhÁhhhhÁÁhÁhhhhhhÁhÁhhhÁhhhÁhhhhhÁhhhhhhÁhÁhÁhhhhÁhÁÁhhÁhÁÁhhhhÁhÁhhhhÁhhhhhhhhhÁhhhhhhÁhÁhhhhhÁhhhhhÁÁhÁhÁhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhÁhhhÁhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhÁÁhhhhhÁÁhhhhhhhhhhÁhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhÁhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhÁhhhhhÁhhÁhÁhhhÁhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhÁhÁhhhhhhhhÁhhhhhhhhhÁhhhhhhÁhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhÁÄÄÍÐÑïððððïÑïÑïïÑÑÑððïðððòðòðòòóóóóóüóóóóðïïÑÐÑÍÍÍÄÄÄÁÁÁhhhgccXXXUTT"""ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhhÁÁÁhhÁÁÁÁhhÁhhÁÁÁÁhhÁÁÁÁÁÁÁÁhhÁÁÁhÁhhÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhÁÁhÁhÁÁÁhÁÁÁÁhÁÁhÁÁhhÁÁÁhÁÁhhÁhÁÁÁhhÁhÁÁhhhÁhÁÁÁÁÁhÁÁhhhhÁÁhhhhhhÁhhÁhhhÁÁhhÁhhÁhÁhÁhÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁhhÁhÁhhÁhhhhhhÁhÁhhhÁÁhÁhhÁhÁhÁÁÁhÁhÁhhhhhÁÁhhÁhÁhÁhÁhhhhhhhÁhhÁhhÁÁÁhÁhÁÁhÁÁÁhhhÁhhhhhhhhhÁÁhhhhhÁÁhhhhhÁÁhÁhhhhÁhÁhÁhhhÁÁhhhhhÁhhÁhhhhhÁhÁhhhhhhhhhhhhÁÁhÁÁÁhhÁÁhhhhÁÁÁhÁhhhhhhÁhhhhÁÁhhhhÁhhhÁÁÁhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhÁhÁhhhhhhhhÁhhhhhÁhhhhhhhÁhÁÁhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhÁhhhhhhhÁhhhhhÁhhÁhhhhhÁhhhhhhÁhÁhhhhÁhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhÁhÁÁhhhhhÁhhhhÁhhhÁÁhhhÁhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhÁhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÐÑïððïïÑïÑïÑÑïÑÑÑïïððððòðóóòóóóóúúúóòóðïÑïÑÐÐÄÍÄÄÄÁÁÁhhhccbbXXXUT"TThhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁÁhhhhÁhhhhhhhh•hÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhh•hh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁhhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhhhhÁÁhÁÁÁÁhÁhhÁÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁhhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁhhhhÁhÁhÁhhÁÁÁhhhhhhÁhÁÁÁhÁÁhÁÁhhÁhhÁhÁÁÁÁhhhÁÁÁÁÁhÁÁhhhhhÁÁhÁhhhhhhÁÁhhhÁhhhhhÁhhÁÁÁhhhhÁhÁÁÁhhhhÁhhhhhÁÁÁhÁÁÁÁÁhÁÁhhhhhÁhhÁÁhÁhhhhÁÁhhÁÁhÁhhÁhÁÁÁÁhhhhÁÁhÁhhhÁhhÁhÁhÁÁÁÁÁÁhhhhhÁhhhÁÁÁhhhhhÁÁÁhhÁÁhÁhÁÁÁhhhhhhhhÁhÁhhhÁhÁhhÁÁhÁhÁÁhhhÁÁÁhhhÁhhÁÁhhÁÁhhÁhhhhÁÁÁhhhÁhhhhÁhhhÁÁhhhhhÁhhÁhÁÁhhhÁÁhhhhhhhÁÁhhhhhÁhÁhhhhÁhhhÁhhhhÁhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhÁÁhhÁhÁhÁhhhÁhhhhhhhÁhÁhhhÁhhhhÁhhhhhhhÁhhhhhhhhhhÁÁhhhÁhhÁhÁhhhÁhÁhhhhhhhhhhhhhhhÁhhÁhÁhÁhhhhhÁhhhhhhhhhhÁhÁÁhhhhÁhhhÁhÁhhhhhhhÁhhhhhhhhhhhhÁhÁhÁÁhhÁÁÁhhhhhhhÁhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhhhhhÁhhhhhhhÁhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhhhÁhhhÁhhhÁhhÁÁhhhhhÁhhhhhhÁhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhÁhhhhhhhhhhhhhÁhhhÁÁÄÍÐÑÑïðïÑÑïÑÑÑïÑÑÑïïïïððïóðòóóóóóóúóóóòòððïÑÑÐÍÍÍÄÄÄÁÁÁhhhgccbbXXTTT"ThhhhhhÁhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁhhÁÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁhÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁhÁÁhhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhhÁhÁÁÁÁÁÁhÁÁÁhhÁhÁhÁÁÁhÁÁhÁhÁÁÁÁhÁhÁÁÁÁhÁhhÁhÁÁÁÁÁÁhÁÁÁhhÁhÁÁÁÁÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁhÁhhÁhÁhhhÁÁÁhhÁhhhhÁhhÁÁÁÁÁÁhhhhÁÁÁhhhÁhÁhhhhhÁÁhÁÁÁÁhhÁhÁhÁhhhhÁhÁhÁhÁhÁhhÁhÁÁÁÁhhhhÁÁÁhhÁhhhÁÁÁhhÁhÁhÁhÁhhhÁÁÁhÁhhhÁÁÁhhÁÁÁhÁhhÁhÁÁhhÁhÁhhhÁhhÁhhhÁÁhÁhÁhhhÁhÁÁÁÁÁÁhÁhhÁÁhÁhhÁhhhhhÁhhhhhhhhhhhhhÁÁÁhhhhhÁÁhhhhhhÁhhhhhhhhÁhhÁhÁÁhÁhÁhhÁÁhhhhhhÁhÁhÁhÁÁhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhÁhÁÁhhhhÁhhhhhÁhhhhÁhhÁhhhÁhhhhÁhhhhhhhÁÁhhhhhhÁhhhhhÁÁhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhÁÁhhhhÁÁhhÁhhhhhÁhhhhhhhhhhhhÁhhhhÁhÁÁhhhhhhhÁhÁhÁÁhhhÁhhÁhhhhhhhhhÁÁhhhhhhhhhhhhhÁhÁhhhhhhÁÁhhhhhhhhhÁhhhhhhÁhhhhÁhhhÁhhhÁhhhhhhhhÁÁÁhhÁhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÐÑïððïÑïðïÑïïÑïÑïïïðððïòððóòóóóóúóóóòóððÑÑÑÍÍÍÍÄÄÄÁÁÁhhgcccbXXUTT"TThhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁh•hhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hÁhhÁhhhhhhhhhhhhhhhhÁh•hhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhhÁhhhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁhhÁÁhhÁhhÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁhÁhhhhÁÁhÁÁÁhÁÁÁÁÁhÁÁhÁhhÁÁhÁhÁhÁhÁÁÁÁÁÁhÁhÁÁÁÁÁhÁhhhÁÁhÁhÁÁhÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁhhÁÁÁhhÁhhÁhhhhhhhhhÁÁÁhÁhhhhhhÁÁhhhhhhhÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁhÁÁhhÁhhÁÁÁhÁhÁÁhÁÁhÁÁÁÁhÁÁÁÁhhÁÁhhÁhhhhÁÁhhhÁhhhÁÁÁÁhÁhÁhhÁhhÁhÁhÁÁhÁhÁhÁhhÁÁÁÁhhÁhhÁhÁhhÁhÁÁhhhÁhhÁhÁhhhÁhÁhhÁÁhhhÁÁÁhhhhhhÁhhhhÁhÁhhÁÁhÁÁhhhhÁÁhhhhhhÁhÁÁhhhhhÁÁhÁhhhÁhhhhhhhhÁhhhÁhÁhÁhhÁhhhÁÁÁhÁÁÁÁhhhÁhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhÁhÁhhÁhhhÁhÁhhhhhÁhÁhÁhhhhhhhhhhhhhhhÁhhÁhÁhÁhhÁhhhhhhhhhhhÁhhhhhhhhÁhhhÁhhhhhhÁhhhhhhÁhÁhÁhhhhhhÁhhhÁÁhÁhÁhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhÁhhÁhhhÁhhÁhhhhhhhhhhhhÁÄÍÐÑððïðÑïïÑÑÑÑÑÑïÑïððòððòððóóóóóúóúóóóóòðïÑÑÍÐÍÄÄÍÄÄÁÁÁhhdccXXXXU"T"TThÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhh•hhhhhhhhhhhhhhh•hhhhhhhhÁhh•hhhhhhhhÁhhhÁhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁÁÁÁÁhÁhhÁhÁÁÁÁhÁÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁhhhÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁhhÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁÁÁÁhÁhhÁhhhÁÁÁÁhÁÁhhÁhhhÁÁÁhÁhhÁhÁhhÁÁÁÁÁÁhhhÁÁÁÁhÁhÁhhÁÁhÁhÁhhhÁÁÁhÁhÁÁÁÁÁhhhhhhÁÁhÁÁhÁhÁÁhÁhhhÁÁhÁhÁÁÁÁÁÁhÁÁhÁÁÁhhÁhÁÁhÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁhhÁhÁÁhÁÁhhÁÁÁÁhhÁÁhÁhÁhhhhhhÁhÁÁhhhÁÁhhÁhhhÁhÁhhhÁÁÁÁhhhhhÁhÁhÁÁhhhhÁhhhÁÁhhÁhhhhÁÁÁhhhÁÁhhÁhhhÁÁÁhhhhhhÁhhÁhÁhÁhhhhÁhhhhÁhhhhhhhÁhÁhÁÁhhÁÁhhÁhÁhÁhhÁhhhhÁÁhÁÁÁhhÁhhÁhhÁÁÁhhÁhhhhhhhhÁÁhhhhÁÁÁÁhhhhhhhhÁhÁhhhhhhhÁhhhhhhhhhÁhhhhhhÁhÁhhÁhhhhÁhhhhÁhhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhhhÁhhÁhÁhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhÁhhhhhÁhhÁhhÁÁÁÄÄÍÑðððïïððïÑïÑÑÑïïïïððñððòóóóóóóóóúóúóòððïÑÑÐÍÍÄÄÄÄÄÁÁhhdcccbXXXTTT""TTThÁhhhhÁhhhhhhhhhÁhÁhhhhÁhhhhhhhhhhÁhhhhhhÁÁhhhhÁhhhhhÁhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhÁhh•¾hhhÁhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhh•hhhh•hhhhhhhhhÁhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁhhhhÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhhÁhÁhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁhhÁÁÁhÁÁhÁhÁÁhÁÁhhhÁÁÁÁhÁÁhÁÁÁÁhhhÁhÁÁÁhÁÁÁhhÁÁÁhÁÁÁhÁÁhhhhÁhhhhÁÁhÁÁhhÁÁÁÁhÁhhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhhhÁÁhÁÁÁhÁÁÁhhhÁÁhhhÁhhhhÁhhÁÁÁhÁÁÁÁÁÁhÁÁhÁhhÁÁhÁhhÁhhÁhhÁÁhÁhhhhhÁÁhhÁhÁhÁÁhÁÁhÁÁhÁÁhÁhhhÁÁhÁÁhÁhhÁhÁÁÁhÁhhhhÁhÁÁhÁÁÁhÁhhÁÁhhÁhhhÁÁhÁhhÁhÁÁhhhhÁÁÁhhhÁÁÁÁÁÁÁhhhÁhhÁhhhhÁÁhÁhhÁhÁÁhÁhÁÁhÁhÁÁhhhhhÁhhhÁhÁhhhhÁÁhhÁhhhhhhhÁhÁhhÁhhhhhhhÁhÁhhhÁhhÁÁhhhhhhÁÁhhhhhhÁhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhhÁÁÄÄÍÑÑïððïðÑïÑÑÑÑïïïÑïðïðòððòðóóóóóóóóóòðððÑÑÐÐÐÍÍÄÄÄÁÁÁhhhddcbXXUTTT"T"ThhhÁhhÁÁhhhhÁÁhhhhhÁhÁhhÁhhÁhhhhhhhhhhhhÁÁhÁÁhhhÁhhÁhhhhhhhÁhhhhhhÁhhhÁhhhÁhhhÁhhÁhhhÁhhhhÁhÁhÁhÁÁhhhhhhÁhÁhhhhhÁÁhhhÁhhhhhhhÁhhhÁhhhÁhhhÁh•hhÁhhhhhhÁhhÁhhÁhhhhÁhhhhhhhhhhÁhhhhÁÁhÁhhhÁhhÁhhÁhhhhhhhhhhhhÁhÁhhhhhhhhÁhhhhhhhhhhhhhÁ•hhhhhhÁhÁhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhhhÁhÁhhhhÁÁÁÁÁÁhÁÁÁÁÁÁhÁhhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhhÁÁÁÁÁhÁhÁhÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁhhÁÁÁhÁÁhÁÁÁhÁÁÁhÁhÁhÁhhhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁhÁÁhhÁÁÁÁhhhhhhhÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁhhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhhhÁhhÁhhhÁÁÁhhhÁÁhÁhÁÁÁhÁÁhhÁÁÁÁÁhhhhÁhhhhhhÁhhhhhhhÁÁÁÁhhhÁhhÁhhhhhÁhhhÁÁÁhÁhhhÁhhÁhhhhhhÁÁhhhhÁhhhÁÁhÁhÁhÁÁhÁÁhÁÁÁhÁhhhÁÁhhhhÁÁhhÁhhhhhÁÁÁÁÁhÁÁhÁÁhhÁhhÁhhhÁhÁhhhhÁÁÁhhÁhÁhÁhhÁhhhÁhhÁÁhhhhÁhÁÁhhÁÁhhÁÁhÁhhhhhhhhhhhhhhhhhÁÁÄÄÍÑÑïððÑïïïïïÑÑïïïðïððððòòóòòòóúóóóúóóðððïÑÑÐÍÍÄÄÄÄÁÁÁÁhhccbXXXXUTTTT"ThhhhÁhhhhhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhÁhhhhhÁhhÁhhÁÁhhhhhhhhhhhhhhÁhÁhhhhhÁhÁÁhhhhhÁhhhhhhhhhÁhhhhÁhhÁhÁhhhhhhhÁhhhhhhhhhhhÁhÁhhhhÁhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhÁhhhhhÁhhÁhhhÁhhhhhhhÁhÁhÁhÁhhhhhhhhhh¾hhhhhhÁhhhÁhÁhh•ÁhÁhhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhÁhhhÁhhÁhhhÁÁhhhhhhhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhhÁÁhhÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhhÁÁÁhhÁÁÁÁÁhÁÁÁhhhhhhÁÁÁÁÁhÁhÁhÁÁhÁÁhÁhÁÁhhhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁhhhhÁÁhÁÁhÁÁhÁÁÁÁhhhhhhÁÁÁÁhÁhÁÁÁhÁhÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhhÁÁÁÁhÁhÁÁhÁhhÁÁhhhhÁhhÁÁhÁÁhhÁÁÁhhhhhhÁÁÁÁhhÁhÁÁÁhhhÁÁhhÁÁhhÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhhÁhhÁhhhhÁÁÁhhhÁÁÁhÁhhhÁhhhhhhhÁhÁÁÁhÁÁhhhhhhhÁhÁÁhhÁhÁhÁhhhhÁhhÁhhhhÁhhhÁÁÁÁÁÁhhÁhhhÁÁhÁÁÄÍÐÑïïïïÑïðÑïÑïÑÑÑÑïÑïððððòóóóòóó÷óúúòóòððÑïÑÐÍÍÍÄÄÄÁÁÁhhgccbbXXXTTT"ThhÁhhhÁÁhhhÁhhÁhhhhhÁhhhhÁhhhÁhhhhhhÁhhhhhhhÁhhÁhhhhhhÁhhhhhÁhÁhhhhhhhhhÁÁÁÁhhhhÁhhhÁhhhhhhhhhÁhhhhÁhhÁhhhhhhhhhhhhhÁhÁÁhhhhhhhhhhhhÁhhhhhhÁhhhhhhhÁhhhhhhhhÁÁhhÁÁhhhhhhhÁhhhhhhhhhhÁhÁhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhÁhhhhhhÁhhÁÁhhhhhÁÁhhhhhhhhhhhÁÁhhÁÁhhhhhhÁhhhhhhhhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁhÁhÁhÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁhhÁhÁÁÁÁÁhhÁÁÁÁÁÁÁhhÁÁÁhÁÁÁhÁÁÁhÁhhÁÁhhÁÁhÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhhÁhhhÁÁhÁhÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁhhhÁhhÁÁhÁhÁhÁhhÁÁhÁÁÁÁÁÁÁÁÁÁÁhhhhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁhhÁhhÁÁÁhhÁÁhÁhÁÁÁÁhÁÁhÁhhhÁhhhÁÁÁÄÄÍÑïðïïðïïÑïÑïÑÑïïïïðïððòòóòóóóóóóúúóòòððÑÑÐÐÍÍÍÄÄÄÄÁhhhgcccbXXXUTT""ThÁhÁÁhhÁhÁhhhhÁhÁhÁhÁÁhhhhhhhÁhhÁhhÁÁÁhhhÁhÁÁhÁÁhhÁÁÁhhÁhÁÁÁÁÁhhÁÁhhhÁhÁhÁhhÁhhÁhhhhhÁÁÁhhhhhhhÁhhÁÁÁhhÁhhÁhhhhhhÁhhhÁÁhhhÁÁhhhhÁÁhhhÁhhÁÁhhhhhhÁÁhhhhhhhhÁÁhÁhÁhhÁhhhÁhÁhÁhhhhhhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhÁhhhÁhÁÁhÁhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhÁhhhÁhhhÁÁhhhhhÁhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁhÁhhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁhÁÁhhhÁhÁÁÁÁhhÁhÁhÁÁÁÁÁhhhhÁÁÁhhÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhhÁÁÁÁÁÁÁÁÁÁhÁhhhhÁhhÁÁÁhÁhÁhÁÁhÁhhÁhÁÁÁÁhÁÁÁÁhhhÁhÁÁÁÄÍÐÑïïððÑïÑðïÑïÑÐÑïðïïðððòððòóòóóúúúóóóðððïÑÑÍÍÍÄÄÄÄÁÁÁÁhhdcbbXXUTTT""ThhÁÁÁhhhÁhhhhhhhÁÁhhhÁÁÁhÁÁÁÁÁhhhhhÁÁÁhhÁhÁÁÁhhhhhhÁhhÁÁhhhhhÁhÁhÁÁhÁÁhhhÁÁÁÁhÁÁhhhÁÁÁhÁÁÁhhhhhhhhhhhhÁhhÁhÁÁÁhÁhÁÁÁhhhhÁÁÁÁÁhhÁÁÁhÁhhÁhhhhhhhÁÁhhÁhÁhÁÁhÁÁhhhhhÁÁhÁhhhhhhÁhhhÁhhhhÁhhhhÁhÁhhhÁhhÁÁhhÁÁÁÁhhÁhÁhhÁhÁhÁÁÁÁhhhÁhhhhhhhÁhhÁhhhÁhÁhhÁÁhhÁhhÁhhÁhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁhhÁhhÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ¾ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhhÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhhhÁÁÁhÁÁÄÍÍÑÑðïïÑïïïÑÑÑÑÑÑÑïðððððððòóóóóóóúúóóóòðððÑÑÍÍÍÍÄÄÄÄÁÁhhdccbbXXTTTTT"ThhÁÁÁÁhÁhÁÁhÁhhhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁhhhhhÁÁÁhhhhÁÁÁhÁhhÁÁhÁhhhÁÁhÁhhÁhhhÁhÁÁhhhhhhÁÁÁÁÁÁÁhhÁhÁÁÁhÁhÁÁÁhhÁÁÁÁÁhÁÁhhhÁhhÁÁÁhÁhÁhÁhÁhÁhhÁÁÁhÁhhÁÁÁÁhhhhhhÁÁhÁhhhÁhÁÁhhhhhhhÁhhÁÁÁhhÁÁÁÁÁhÁÁhÁÁhÁÁhhÁÁhÁÁhhhhhÁÁÁÁhÁhhÁÁÁÁhhhhÁÁÁÁhÁhhÁÁhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhhÁÁÁÁhÁÁhhÁÁhÁÁhÁhÁhÁhhÁhhÁhÁÁÁÁhhÁÁhhÁÁhÁhÁÁhhÁhhÁÁhhhhhÁÁÁhÁhÁhÁÁhhhÁhhhÁÁhÁÁÁhhhhÁÁÁÁhÁhhÁÁhÁhhÁhÁÁÁÁhÁÁÁÁhhÁhÁÁhhÁhÁÁÁhÁhhÁÁÁÁhh¾ÁhhÁhhhhhhÁÁÁhhhhÁhhhÁhÁhhhhÁhhÁhÁhÁÁÁhÁhÁhhhÁhÁhhhhÁhÁhÁhÁhÁÁhÁÁhÁÁÁÁhÁÁhÁhÁhhhhÁÁÁÁhhÁhhhhhhÁÁÁhhÁÁhÁÁhhÁhÁhhhÁÁÁhÁÁhhhhÁÁÁhhhhhÁhhÁÁhhÁhhÁÁÁÁÁÁÁhhÁhÁhÁÁhhÁÁÁhÁhÁhÁÁÁhÁÁhhhhhhhhÁÁÁhÁÁhÁÁhÁhÁhÁÁhhhÁÁÁhÁÁhhhÁÁhÁhhhhhÁhhhhhÁÁÁÁhÁhhÁhÁhÁÁhÁÁhÁhÁÁhÁhÁhhhhÁÁÁÁhhÁhhhhhhÁÁhÁhhÁÁÁhhhÁÁÁhhÁÁhhÁhhhhÁÁÁhÁhhhhhÁhhÁhhhÁ¾ÁÁhÁÁhÁÁhhÁhÁÁhÁhhÁÁÁÁÁhhhÁÁÁhÁÁhhhhhhhÁhÁhÁhÁÁhhhhhhhÁhhÁhÁÁhhÁhhhhÁÁÁhhhhhÁhhhÁhÁÁÁhhÁÁhÁhhhhÁhÁhÁÁhhÁÁhhhhhhÁÁÁÁÁÁhhÁÁhhhhhÁÁÁhÁhhÁÁhhÁhÁÁhhÁhÁhÁÁhÁhhÁÁÁÁhhhÁhÁhhÁhÁÁÁhhÁÁÁÁÁÁÁhhÁhÁhhÁhÁÁÁhÁhhhhÁÁÁhhhhhÁhhhhhhÁhhÁhÁÁhÁhhÁhÁhhÁhhhhhhhhÁÁhhÁhhhhhÁhÁhhhhÁhÁhÁhÁhÁÁhÁÁÁhÁhhhÁhhhhhhhhhÁÁÁhhhÁhhhhhhÁÁÁhhhhhÁhÁhÁhÁhhÁÁhhhhhhhhhhhÁhhhhÁÁhhhÁhhÁÁÁÁhhÁhÁhhhÁhÁhhhhhhhhhhÁÁhhÁhhhÁhÁhhhhhhÁhÁÁÁhhÁhÁhhhhhÁhhÁhhhhhhhhÁhhhhhhhhÁhhÁÁhhhÁÁÁÁhhhÁhhhÁhÁÁÁhhhhhhÁhÁÁhhhhÁhÁhhhhhhhhhhhhÁhhÁÄÍÑÑÑðïððïÑïÑÑïÑÑïïïïðïðòðòòòóòóúóúúóóóðððïÑÐÐÍÍÍÄÄÄÁÁÁhhhdcbbbXTTT"""ghÁhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁÁhhÁhhhhhÁhÁhhÁhhhhhhÁÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbhÄÄÄÍÑïðÑïïïÑïïÑïÑÑÑðïïïððòðñòóòóóóóóúóóóðððÑïÑÑÍÍÄÄÄÄÁÄÁÁhdcccbXXTTT"""XbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbXbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbUXXXXXXXXXXXXUXXXXXXXXWXXXXXXUXXUUXXUXXXUXXXUUXXXXXXUXXXUXXXXXXXXXXXXXXXXUXXUUXXXXXXUXXUXXXUXXUUXXUUXXUUXXUUXXXXXXXXXXXXXXXXXXXXXXXXXXUUXXUUXXXXWXXXXXUXXXUXXXXUXXUUXXWUXXTXUXXXXXXXXXXXXXXXUUXXUUXXUUXXXXXXUUXXUUXXUVXXUUXXUXXXUUXXXXXXXUXXXXXXUUXXUUXXUUXXUVXTXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUUXXUUXXXXXXUXXTXXUUXXXXXXUXXXXXXXXXXXXXXXXXXXUUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUUXXUVXXUWXXUTUXXXXXXXXXXXXXXXXXXXXUXXUXXXXXXXUUXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXUXTXXXXXXXXXXXXXXXXXXXXXXXXXXXUUXXXUXXUWXXXXXXUUXXUUXXUXXXUUXXUXXXXXXXXUXXUUXXUUXXXUXXTXXUXXUUXXUUXXUUXXUXXXUUXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUVXXTXUUXXXXXXXXXXXXXXUUXXXXXXXUXXXXXXUUXXUUXXUXXXXUXXUUXXUXXXXXXXXUXXUXXXXXWXXXXXWUXXXXXTXXVUXXUXXXXXXXXXXXXXXXUUXXUUXXUVXXUUXXUXXXUUXXVUXXUUXXUUXXXTUXXTTXXXXTUXXXTXUTXUXTXTXTXTXXXTXTUUUXXTXXUXXTUXXXXUTTUUTUXTXXXUTXXTXTXXTTXTXUXhÁÄÍÍÑïðïïÑïïÑïÑÑÑÑÑðÑïïððððòòòóóóúóóúúóóóððÑïÑÍÍÍÍÄÄÄÁÁÁÁhhcccXXXXTT""T""XUXXUUXXUTTTUUXXXTTXXXUUTUTXXTXTXTXTXXTXUXUXXXXXXUXUXTVXXXUUTXTXUTXXXXTXXUXXUVXUXXUXUXXXXXXUXXXTTXXXXXXUXUXUXTTTXXUXUXUXUXXUXXXXXXXUXXUXUXUXXXXTXXXXXXXUXXUXXXXUXUXXUUXUXUXXTXXXXUXXUTXXTXUXTXUXUXUTTTTTTTUUTTTXUTTTUUTUXTTTTTTTTTXXTTTTTTTTTXXTTTTTTTTTTTTTTXUXTXTTXXTTXTXTXXTXTXXXXTUTUUTXXUUUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXgÁÄÍÍÑðððððïðïïðÑÑÑïïïïððððððóóòóòóóúóúúóððïÑïÑÐÍÍÍÄÄÁÁÁhhhhgccbXXTTTT"WXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXUXXXXXXXXXXXWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhÁÄÍÐÑïðïðïÑïÑïÑïÑÑïÑïðððððððóóòòóúúóúóóòðððïÑÑÍÍÍÍÄÄÄÁÁÁhhgdcbbXXUTT""T"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhÁÄÍÐÑÑððïïïïÑïÑÑÑïÑÑÑïðïððòðóóòóóúóóúúúóòððïïÐÍÍÍÍÄÄÄÁÁÁÁhdccbbXXUTTT"TTXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXXXbXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXbXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXbXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXbXXXXbXXXbXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXbXXXbXXbhÁÄÍÍÑïðïïïïðïÑÑÑÑïÑïÑððïððððóòòóóóóóüó÷óòððÑïÑÐÍÍÍÄÄÄÁÁÁhhhgccXXXXTT"""XXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXbXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXbXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXbXXXXXbXXbXXXXXXXXbXbXXXXXbXXXXXXXXXXXXXbXXbXXXXbXXbXXXXbXXXXXXXXXXXXXXXXbXXXXXXbXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXbXbXbXXXXbXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXbXXXXbXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXbXXXXXXXXbXXXXbXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXbXXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXbXXXXbXXXXbXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXbXXXbXXXbXbXXXXXXXXXbXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXbXXXXXXXbXXXbXXXXXXXXXXXbXXbXXXXbXXXbXXXXXXXXXXXXXXXXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXbXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXbXXXXXbXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXbgÄÄÍÍÑïððððÑÑðïÑÑïÑÑïïïðïððòóóòóóóóóóúóóóóððïÑÑÐÍÍÍÍÄÄÁÁÁhhhcccbXXXUT""T""XXXXXXXXXXXXbXXXXXXbXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXbXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXbXXbXXXbXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXbXXbXXXbXXXXXXXbXXXXXXXXXXXbXXbXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbhÁÄÍÐÑïïðððïÑïÑïÑïÑïïïðððððððóóóòóúóóóóóòðððïÑÑÐÍÍÍÄÄÄÁÁÁhhgdccbXXXTT""XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbbcbcbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbXbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbXbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbXbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbchÁÄÍÍÑïÑïðïïïïÑÑÑÑÑÑÑÑððïðòððóòóòóóóóúóóóòððÑÑÐÑÍÍÄÄÄÄÁÁÁhhhgccXXXXTT""TbbbbbbbbbbbbbbbbbbbbcbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbhhÁhhÁÁhÁÁÁhÁÁhÁhhhhhhÁhhhÁÁhÁhhhÁÁhhÁÁÁÁÁÁÁÁÁhhÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhÁhhhÁhÁÁhÁÁÁÁÁhhÁhÁhhÁhÁÁÁÁÁhÁhÁÁhhhhhhhhhhÁhÁhÁÁhhÁÁÁÁhÁÁÁÁhhÁÁÁÁhÁÁhhÁhÁhhÁhhhÁÁhhÁÁhhhÁhÁÁÁhÁÁÁhhhÁhhhÁÁhÁÁÁhÁÁhÁhÁhÁhhhhhhÁhÁÁhhÁÁÁhhÁÁÁhÁÁÁÁÁhhÁÁÁhÁÁhhÁÁÁhhÁhhÁhÁhÁhÁÁhhhÁÁÁhÁÁÁÁÁÁhÁhhhhhÁhÁhhÁhhÁhhhhÁÁhhhhÁhhÁhhhÁÁhhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁhÁhÁhÁhÁhÁÁhhhÁhÁÁhÁÁÁÁhhhhhhhhhhÁÁÁÁÁhÁhhhhhhÁÁhhhÁhÁhÁhhÁhhÁÁÁÁhÁÁÁÁÁhÁhÁÁhÁÁhhÁÁhÁhÁÁhÁÁÁhhhÁhhhÁhÁÁÁÁÁÁÁÁhhÁhhhÁÁhÁhhÁÁhÁhhÁhÁhhhhhÁÁhÁhÁhÁÁÁhhÁÁÁhhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhÁhhÁhÁhÁhÁhhhÁÁÁÁÁÁÁÁÁÁhÁÁhhhhÁhÁhÁhÁÁhÁhÁhhhhhhhhÁhhÁhhhÁÁhÁÁÁÁhhÁÁÁÁhhÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁhhhÁhÁhÁÁÁÁÁhhhÁhhhhÁÁÁhhÁÁhÁhÁhhÁhÁÁhhhhhÁhÁhÁÁhhÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁhÁhÁhhÁhhÁÁÁÁhÁÁÁhÁhhÁÁhÁÁÁÁhhhÁhhhÁÁhÁÁÁhÁhhÁÁhhÁhÁhhhÁhhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁhhÁhÁÁÁÁÁhhÁÁÁhhÁhhÁhÁÁhhÁÁhÁhhÁÁÁhÁÁÁÁhhÁhhÁÁhhÁÁÁhÁÁÁÁhÁhÁÁhhhhhÁhhÁhhhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁhÁÁhÁÁÁhÁhÁhÁhÁÁhhhÁhÁÁhÁÁÁÁÁhhÁhÁhhÁhÁÁÁÁÁhÁhÁÁhhhhhhhhÁhÁhÁhhÁhhÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁÁÁÄÍÐÑïððÑïïïïÑÑïÑÑÑïÑïðððòòóòóóòóúóúüú÷óðððïÑÐÍÍÍÄÄÄÄÁÁÁhhhgccbXXXTTT""TThhhÁÁÁhhÁhhÁhÁhÁhÁÁhhhÁÁÁÁÁÁÁÁÁÁÁÁh•hhhhÁÁÁhÁÁÁÁhhhhhhÁhhhÁhhÁhhhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁhÁhÁhÁÁhhhÁhÁÁhÁÁÁÁÁhhÁhÁhhÁhÁÁhÁÁhÁhÁÁhhhhhhhhhhÁhÁhÁÁhhÁÁÁÁhÁÁÁÁhhÁÁÁÁhÁÁhhÁÁhhhÁhÁÁÁhÁÁhÁhhhÁhÁÁÁÁÁÁÁÁhhÁhhhÁÁhÁÁÁhÁhhhhÁhÁhhÁhhhÁhÁÁhhhÁÁhhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁhhÁhhÁhÁhhhÁhhhÁÁÁÁÁhÁÁÁÁhhÁÁÁÁÁhÁhÁÁÁÁÁhÁhhhÁÁhhÁh•ÁÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhhhÁÁhÁÁÁÁhÁÁÁÁÁh•hÁhÁÁÁhÁhÁÁhÁÁÁÁhÁÁhÁÁÁÁÁhhÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁhÁÁÁÁÁÁhÁÁÁÁhhhÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhhÁÁÁhÁÁÁhhÁÁÁhÁhÁhhÁÁÁÁÁhÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhhhhÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁhÁÁhhhhÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhhhÁÁhÁhÁÁhÁÁÁÁhÁÁhhÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁhhÁÁÁÁÁÁÁhÁÁÁhÁÁhhhÁÁhÁhÁÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhhÁÁhhhhhÁhÁÁÁÁhÁhhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁh„hÁÁÁÁÁÁÁÁhÁÁÁÁÁhhhÁÁhÁÁhÁhÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁhÁÁÁÁ•ÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁhhhÁÁhÁhÁÁÁÁÁÁÁÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁÁÁhÁhÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhhÁÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁhhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁh•ÁÁÁhhÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁh•ÁÁÁh•hhÁÁhÁÁÁÁhÁÁÁÁÁhhhÁhÁÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁ•ÁÁhhh•ÁÁÁÁhÁÁhÁÄÄÍÍÑÑðððïïïÑïÑÑÑÑÑïÑïðððððððòòóóúóúúóóóòððïÑïÐÍÍÍÄÄÄÁÁhhhccccbXXTTT""""ThÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhhhÁÁÁÁÁÁh•ÁÁÁÁÁhÁhhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhhhÁÁ•ÁÁÁÁhÁÁÁÁÁh•hÁhÁÁÁhÁhÁÁhÁÁÁÁhÁÁhÁÁÁÁÁhhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhhhÁÁhÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhhhÁÁÁÁÁÁÁhÁÁÁÁhhhgcdggggdggcdggggggggggdgcggcgggdggggggccggggggggggcgggggcgdcgggcgggcggggcggcggggdggggggcggcgggggccggcggcgggggdgggggggggggggggggggggggggggggggcggcgcgcggcggggggcgggccggcgdgggggggcggggcgggcgggggggggdgggcgdgcgggggcgcggggggggdgcgggcdggggggggggggggcgggdcdggcgcgggddggggggggcggggggcgggggdgggggggggggggggggddggcgggdggcgdgggggggggdgdgggggggggdggggcdgggdghggggddgdgggggggggggghgddgggggdggggddgggggchggggggggggdcgggdggdggggggdgggggdgggggggcdggghÁÁÁhhÁÁh•ÁÁÁhhÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁhÁhÁhhÁÁhÁhÁ•hÁhÁÁÁhhÁÁhÁÁÁÁhhÁÁhhÁÁÁÁhÁÁÁhÁhÁhÁÁhÁhÁÁÁÁhhhÁÁÁhÁhÁÁÁhÁÁÁÁÁhÁhÁÁÁhÁÁhhhÁÁÁÁhÁÁÁhÁhgggggggggggggggddcdggddgchgggggggggggggdgghgggggggchcggggggggggggggggggdgggggdcdgggddggghggggddggggggggghggdgggggghggddggggdghgggdcdgggddgggggggdggggggggggdgggggghcdggggggddggddgggggdggggddghgdghgggggggggggggdggggghggggggdgggggdggggggdggddggggddggggddgdggggcgggggdggggggggcddggddgggdgggghgddgggggdggggggdggggcggggddghÁÄÍÐÑïððïïïÑÑÑïïïÑÑïÑðððððððóòòóóóóóüóóóòððÑÑÑÐÍÍÍÄÄÄÁÁÁÁhhddbXXXXTT""cgddcggcggcgggggggdcggdcdcgcgcgggddgggggggccggggggcgggggcggggggcgggggggggggggggggggcgggdgcgggggcgggggggcgggcggcggcggggggcgcgggggcgggcggcgggggcgggggggggggggggggggggggggcgggggcgdcgcgcggggggggcggggcggdggcgggcgggcgggccgggcgggggggggggggcggdgggggggdgggggggggggggghgggdgggggggggggggggggggggggcgg-------,------------,-------------------------------,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------UhhÁÁhhhhhhÁhhhhhÁhÁhhÁÁhÁhhhÁhhhhhhÁhÁhhhÁÁÁhÁhÁhÁhÁÁhhhhh•hÁhhhhÁÁhhhhhhhÁÁhÁhhÁhhÁÁÁhÁ•hhhhhhhÁhÁÁhÁhhhhÁÁÁÁhhhÁhhhhhhhhhhhhÁhÁhh•hhhh¾ÁhhhhÁhhhhhhhÁÁÁhÁhb----------------cÄÄÍÍÑïðïïððððÑÑïÑÑÑïÑïïðððòðóóóóóóóúúóóóðððïïÑÍÍÍÄÄÄÄÁÁÁhhddcbbXXXTT"""""--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,----------------------------,------------,---,--,-----                dhhhhhhÁÁÁhhÁhÁÁh•ÁhÁÁhhhhÁÁÁhÁhÁÁhhhÁÁhh¾hhhhhhÁhÁÁhhhhÁhhhÁhÁhhhÁhÁhhÁhÁhhÁhÁhÁhÁÁhhÁhÁhhhÁÁÁhÁÁÁhhhÁÁhhhÁhhhÁÁÁhÁhhhhhhhhhhhhhhhhhÁhhÁÁÁhÁhhhhÁhhhhhhhhhg:                                                                cÁÄÍÍÑïïïððÑÑïïÑÑÑïïïïðïÑðððððóóóóúóúóóúóòððïÑÐÐÍÍÍÄÄÄÁÁÁhhhgccbXXTUT"",                                XhÁhÁhhh•hhhhhhÁhhhhÁhhhÁhÁh¾ÁhhÁhhhÁÁhhÁhhhÁhhhÁhhhhÁhhhhhhhhÁÁÁÁhÁhhÁh•ÁhhhhhhÁÁhhhhÁhhhhhhhhhhhhhhÁhhhÁÁhhÁÁÁhhÁÁÁhÁÁhÁÁÁhÁhhhhhhhÁÁhhhhÁhhhÁhhhÁhÁhhÁÁhb                                                                        -cÁÄÍÐÑïïððïÑïïïïÑÑÑïÑðððððððòðóóóóóóóóú÷óððððÑÐÑÍÍÍÄÄÄÁÁÁhhhccbXXXTTTT""""                 ThhhhhhhhhhhhhÁhhhÁhhhhÁhh•hhhhh•hÁhhhhhhÁhhÁhhÁhh•ÁhhhhhhhhhhhhhÁÁÁhhhhhhÁh•hÁhhÁÁhhhhhhhhÁÁhhhhhhhÁÁhÁhhhhÁhhhhhhhhhÁhÁh•hÁhhÁhhÁh•ÁhhhhhhhhhhÁhhhhÁhÁhhhU                                                                    -cÁÄÍÍÑïðïðïðÑïÑÑÑïÑÑÑïððððòòððòðóóó÷úüúúòðððïÑÑÐÍÍÄÄÄÄÁÁÁhhdccbbXXUTTT""                chÁhhÁÁhhhhhhhhhhhhhhÁÁÁhhhhhhh•hÁÁhhhhhhhhhhhhhhhhhhhÁhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhÁhÁhhhhhhhhhÁhhhhhhÁÁhhhhhhÁÁhhÁhhhhhhhhhÁhhhhhÁhhhhhhhhÁhhh•hhhhg                                                                         -cÁÄÍÍÑïðïðððïÑÑïÑÑÑÑïðïðððððòóóóóóóóúúóúóòððÑÑÑÑÍÍÍÄÄÄÄÁÁhhhdcbbXXUTT"TT",,             XhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁÁhhÁhhhÁhhhÁhhÁÁÁhÁhhhhÁhhhÁhÁhhhhÁhhÁhÁhhhhhhhhhhhhhhhhhÁhhÁh•hhÁÁhhhhhhÁhhhhhhhÁhhÁÁÁhhhhhhhÁhhhhÁÁhÁhhhhhhÁhb                                                                         -cÁÄÄÍÑïðïïðïÑÑÑÑïÑÑÑðïïððððððóóóóóóóúóó÷óòððÑÑÑÐÍÍÍÄÄÄÁÁÁhhhdccXXXXTT"T"                     dhÁhhhhhhhÁÁÁhhhÁhhhhhhhhhÁÁhhhhhhÁhhhÁhÁÁhhhÁhhÁhhhhhÁhhhhÁÁhhhhhÁhhhhÁhhhhhhhh•ÁhhhÁhhhhÁhhhhhhÁhhhhhhÁhhÁhhhÁÁhÁhÁh•hhhÁÁÁÁhhhhhhhhÁhhÁhhhhÁhhÁhhhhhgM                                                            -cÁÄÍÍÑïððÑðÑïïÑÑÑÑÑïÑÑïðïððòòðòóóóóóóóúóóòððïïÑÍÍÍÄÄÄÁÁÁÁhhhcccbXXXTTT"" ,              bhhhhhhÁÁÁÁhÁhhhhhhhhhÁhÁhhhÁÁÁhhhhhhÁhhhhhÁhhÁÁhhhhhh•hhhhhhhhhhhÁhhhhhhÁhhÁhhÁhhhhhhhhhhhhÁÁhÁÁÁÁhÁhhhhhÁÁhhhhhÁh•hhhhhh•hhhhhÁhhÁhhhhhhhhhhhhhhÁÁhhhc                                                           -cÁÄÍÍÑïïðððïïïïÑïÑÑïÑïððððððððóóóòóóóúüóóóðïïïÐÍÍÍÍÄÄÄÄÁÁhhgdccXXXXTT"""                XghhhÁhhhhhhhhÁhhhhhhÁÁÁhhhhhhhhhhhh•hÁÁÁÁhh•hhhÁhhhÁhhhhhÁhhÁhhÁÁhÁÁÁ•hhhhhÁhhhhhhhhhÁhÁhÁhhhhhhhhhhhÁÁhhhÁhhhhhhhhhhÁhhhÁhÁhÁh•hÁhhhhhhhhhhhhhhhhhÁÁh:                                                                 -cÄÄÍÍÑïÑðïïïðïÑÑïÑÑÑïçððïòòðððòóóóóóúüóóóòðïÑÑÑÐÍÍÍÄÄÁÄÁÁhgggcbXXXTTT""              dÁhÁhhhh•hÁhÁhhhhÁhÁhÁhhhhhhhhhhhÁhhhhhÁhÁhÁhÁhÁhÁhhhhhhhÁhhÁÁhhÁhhhhhhhh•ÁhÁhhhhhÁ•hhÁÁh„hÁÁhhhhhhÁhhÁhhhÁ•hhhhhhhhhÁÁÁhhhÁÁhhÁhhhÁhhhÁhÁhhhÁÁhhÁÁhÁg                                                           -cÄÄÄÍÑððïÑðÑÑðÑÑðÑÑÑïïððïðòðððòóóóòóóúóóóòòðÑÑÑÐÍÍÍÄÄÄÄÁÁhhgdcbbXXTTT""T"T",,           bhh•hhhhhhÁÁhhÁhhhh•hhhhhÁh•hhhÁhÁhhÁhhhhÁhhhÁhhhÁhhhhh•hhhhhhhÁhÁhhhhhÁhhhhhhÁhhÁhhÁhhÁhhh•hhÁ•hhhhhhhhhÁhÁhhhhhhhÁÁhhhh•hhÁhhhhhÁÁÁhÁhhhÁh•ÁÁÁhÁhhhX                                                                    -cÁÄÍÍÑðððïðÑÑÑÑÑðÑïÑïÑçððððððòóóóóóúüóúóòðððÑïÑÍÍÍÄÄÄÁÁÁÁhhhdcbbXXXTT",              ThhhhhhÁhhhhhhÁhhhhhhhhhhhhhhÁhÁhhhhhÁhhhhhhhhÁhÁÁhh„hhhhhhhÁhh•hhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhÁhhhhhhhh„hÁhhhÁÁhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhh                                                           cÄÄÄÍÑïðððïïðÑÑÑÑÑïÑÑÑðïððððòóóóòóóóüúóóóòðïÑÑÑÐÍÍÄÄÄÄÁÁÁhhdccbXXXXTTT            chhhhhhhhhhhhhÁhhhhhÁhÁhhhhhÁhhhhhhhhhh•hhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhh•hÁhhÁhÁhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhh•hhhhhhÁhhhhhhhhhhhb                                                          -cÁÄÍÐÑÑðððïÑïðÑïÑÑÑÑïçðïòðððòðóóóóúóúüóóòòððïÑÑÑÍÍÍÄÄÄÁÁÁÁhgdcbbXXTUT"""",,,,          XhhhhhhÁhhhhhhhÁhhhhhÁhhÁhhhhhhÁÁhhhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhhh•hh•hhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁhh•hhhhhhhhhÁhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhh:                                                         -cÁÄÍÍÑïïðððÑïïïïïÑÑÑïïïðïðððððòòóóóóóúóóóòððïïÑÍÍÍÍÄÄÄÁÁÁhhhcccbXXVTT"""T,      TghhhÁhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhÁÁh•hÁÁhhhh•hhhhhhhhÁh•h•hhhhhhhhhhhhhhhhhhhhhÁh•hhÁhhhhhhhhhhc                                                           -cÁÄÍÍÑïðïððïïïÑÐïÑÑÑïðïððððððóóóóóóóóóúóóðððÑÑÑÐÍÍÍÄÄÄÁÁÁhhgdcbXXXXTT"T"",,   chhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhÁhhhhÁhhhhhhhhhÁhhhhÁÁhhhhÁhhhÁhhhhÁhhhhhhhÁhÁhhÁhhÁhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhÁhhhhhhhhhU                                           -cÁÄÍÍÐïðïÑÑïðÑïïïïÑÑïðïðòïòòòóðòóóóóüüúúóððÑïïÑÐÍÍÄÄÄÄÄÁÁhhhgcbbXXUTT""",      XhhhÁhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhh•hhhÁhh�hhhhhhhhhhhhÁhhhhhÁhhhhÁhÁhhhhhhhhÁhhhÁhhhhÁhhhhhhhhhhÁhhhhhhhÁh•hÁhhhhh•hhhhhhhhhhhhhh•hhhhhhhhhg                                                         -cÁÄÍÐÑïïððïïïÑÑïÑÑðïÑïÑðððïððñóòóóúóóúóóóòððïÑÑÑÐÍÍÄÄÁÁÁÁhhhccbbXXUTT""T,     MdhhhhhhhhhhÁhhhhhhÁhhhhhhhhhh•hhhhhhhhhhhhhÁhhh•hhhhhÁhÁÁhhÁhhhhhhhhh•h•hhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhÁh•hhhÁhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhX                                                    -cÁÄÍÍÑðïðïïïïðïÑÑÑÑÑïðçððòðððóóòóóóóóóóóòðððïÑÐÍÍÍÍÄÄÄÁÁÁhhhgccbXXXTT""""",   bhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhÁh•Áhhhhhhhhhh•hhhh•hhhhhhhhhÁÁhh•hhhhhhhÁhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁÁhhÁhhhhhhhhhhhhhh•hhhh•hhg                                                   -cÁÄÍÍÑïïðïïïïÑïÑïÑÑÑÑïïðçððððððòóúóúüüúóòòððÑÑÑÐÍÍÍÄÄÄÁÁÁÁhdccbbXXXTTT, UhhÁhÁhhÁhhhhÁhÁÁhÁhhhhhhhhh•hÁhÁhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhh•hhhÁhhhhhhhhhhhhhhhhÁÁhhhhhÁhhÁhhhÁhÁhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁ�hhhÁc                                                        -bÁÄÄÍÑÑÑïïïÑïÑïÑÑÑÑÑÑïïðïððððòóòóóóóóúóóóòòðÑÑÑÑÍÍÍÄÄÄÁÁÁhhhcccbXXXTT",,FTXXXXXXXXXXXXWFXXXXXUTXXX   ghhhhhhhhÁhÁhhhhhhhhÁhhÁhhhÁhhhhhhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhÁhhhhhhhhhhhhÁhhh•hhhhhhhhhhhhhhÁhhhhhhhhhU                                                          -bÁÁÄÍÐïïððÑÑïÑÑÑÑÑïÑïïðïðððóóðòóóóóóóúóúòðòðïÑÐÐÍÍÍÄÄÄÁÁÁhhddcbXXXXTTT,TTXXUTTTXXXXXUTTXXXbXXXXXXXXXXXXXXXTTTXXXXXXXXUFUXXXXTXT   -bhhhhhhhhhhhhÁhhhhhÁhhÁ•hhhhhhÁhhÁhhhhhhhhhhÁhÁhÁhhhhhhhh•hhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhh•hhhhÁÁhhhhhhhh•ÁÁhhhhhh•hhhhhhÁhÁhhhhd                                        -bÁÁÄÍÍïïÑïÑÑÑÑÑÑÑÑïÑïððððððñòðòóóóóóúúóóòñððÑÑÐÍÐÍÍÄÄÄÄÁÁÁhddcbbXXXTTT,,TUWWTTTXXTFFTWXXXXXbXXXXXXXXXXXXTXXXXXXXXXXbXXXbbXXXXXXXXXXXXXXXbXbXXXXXXXXTUXWTTXXXXXXXWXXXXXXXXXXXXXXT Whhhhhhhhhhhhhhhhhhh•hhhhhhhÁhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhÁhhhh•Áhhhhhhhhhhhhh•hÁhhhhhhÁhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhW                               XhÁÄÄÍÐÑÑÑÑïÑÑÑÑÑÑÑÑÑïððððçòðòóòó÷òóüúóóóððððÑÑÐÍÍÄÄÄÄÁÁÁhhggdbbXXXTT,,,XXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXbXXXbXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXbXXXXT   chÁhhÁhhhhhhÁhhhhhhhhh•hhhhhhhhÁhhhhÁhhhhhh•hhÁhhh•hhhhhhhÁhhhhhhhhhhhhÁhhhhhhhÁhhhhhh•hÁÁhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhÁÁhhhhhhhhhÁÁhhhhhd                             -XhÁÂÄËÍÐÐÐÑÑÑÑÑÑÑÑÑïÑÑÑïððððòðóòóúóóúóóóóððððÑÐÑÍÍÍÄÄÁÄÁÁhhgccbbXXTTT,,XXXXXXXbXbXXXXXXXXXXXXXXXXXXbXXXXbXXXXXXXXXXXbXbXXXXXbXXXbXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXXXT  bhhhhhhÁhhhÁhhhhhhhhhh•hÁhÁhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhh•hhhhhhhhhhhh•hÁhhhhhhhhhhhhÁhh•hhhhhÁh•hhhhhhhhhhhhhhhhhÁÁÁhh�hhhhÁhhhhhhhÁhhÁÁb                                    -XghÁÄÄÍÍÍÑÍÍÐÑÑÑÑÍÐÑÑÑïïïðòððòòòòóóóóúúòóðððÑÑÐÍÍÍÄÄÄÁÄÁÁhhdccbXXXTT",XXbbXXXXbXXXXXXXbXXXXXXXXXbXbXXbXXXbXXXbXXXXXXXXXXXXbXXXbXXXXbXXXXbXbXbXXXXXXXXXXXXXXXXXXbbXXXXXXXXbXXXXXXXXXXbXbXT Thhhhhh•hhÁhhhhÁhhhhhhhhhhhÁhhÁhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhh•hhÁhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhÁhhhhhÁh•hhhhhhhÁhhhhhh•hg:                            XghhÁÄÍÄÍÍÍÐÐÍÐÍÐÑÐÑÐïÑïïððððñòóóòóúóúúóóñòðÑÑÑÍÍÍÍÄÄÄÁÁÁhhdccbXXXTT,,,,,,,XXXbXXbXXXXXXXXXbbXXXXXXbbXbXXbXXXbXbXbXbXbXXXXXXXbXbbbXXbbbXbXXXXbbXbXXXXXXXXXXXXXXXXXXXXXbXXXXbXbXXXbXbbXXXXXXXXT  chhhhhhhhhhhh•hhhhhhhhhhhhhhhhhÁh•hhhhhhhhÁhhhÁhhÁhhh•hhhhhhhhhhhhhhÁhÁhhhÁhhÁhhÁhÁhhhhhhhÁhhhhhÁhhh•hhhhhhhhhhhhhh•hhhhhhhhhhhÁhhhhhhÁhc                         XghhÁÄÄÍÍÍÍÍÍÍÍÍÍÑÐÐÑÑÑÑÑðððððððóóóó÷óóóóòððïÑÍÐÍÍÍÄÄÄÁÁhhhdccXXTTTTT,,,XXXbXXXXbXbXbXXXXbbXbXXXbXbXbbXXXXbXbbbXbXXXXXbXXXXbXbbbXbXXXbXXXXXXbXXXXbXXXbXXbXbbXXXXbXbXXbbXXXXbXbXXbXXbXXbXXXT  XhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhh•hhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhÁÁhhhhhhhhhhhhhhhÁhhhhhW                    -0:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::":^h••ÂÂÄËËÈËÈÈÍËÎÍÍÍÎÏáááççççðçññòñññòòòòññáÑÑÏÏÏÍÍËÄÃÆÂÁÁ•„hfddac[XXXXXV@TVV;V;;T@@VV:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::M--,,XXXXbXXXXbXXXXXXXbbbbbXbbbXbbbbXXXbbbXbbbbXXXbXXXbXbbbbbbbXbbbXXXXXXXXbXXXXXXXXXXbbbbbXXbbXbbbXXXXbbbbbbbbXXXXXXXbT     TdhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhg                  :V_”›�����ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÊÊÊ××××××××××××××××××××ÙÙÙÙÙÙÙÙÙÙÙÙÙÙààÙÙÙÙÙÙÙ×××××××Ó×××××ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÇÊÊÇÊÊÇÇÊÊÊÊÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ���›�›ƒ^U",,-----J--,,XXXbXbXbbXXXbbXXbbbbbbXXbbbbbbbbXXbXbXbbbXbXXXXbbXbXbbbbXbXbXbbbbXXbXbXbbXXXXXbXbbbbbbXbbbbbbbbXXXXbbbbbbXbXbXXbbbT chhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhÁh•hhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhÁÁhÁhhhhhÁhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb          Va‚›ÇÓ×Ùßàâææèèñôñôñôñôñôôééôéôñééññññññññôôôôôôôôôôôôôôôôôôôôôõôôôôôôõôôôôôõôôõôõôôõõõôõôòõõõõõõõõõõõõõõõõõõõõõõõõõ÷÷õ÷õ÷õ÷÷÷÷÷÷ù÷÷÷÷÷ùùùùùùùùùùùùùùù÷ù÷ùùùùùùùùùùùùùùùùùùùùùùùùúùùùùùùùúúùùùúùùùùúùúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúúúúùùúùúúúùúúúúùúúúùúúùù÷úùùúúùùù÷úùùùù÷÷ù÷ùù÷ùùùùùùùùùùùù÷÷ùù÷ù÷ùùùùùù÷÷÷÷÷ùù÷÷÷÷÷÷ùùùùùùùùùùùùùùùù÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õõ÷õ÷õ÷õ÷÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõòõõòôõõõõõôõõôôôôèèèæâàÙ×ÓÇ–�^U,F,,KKJK··³¸¶»»»»¶µµ¸M,,,,,,XbbbXbXbbbbbbbbbXbbbbbXXbbbbXbXXbXXbbbbbbXbbbbbbbbbbXbbbbXbbbbbbbXbbXbXbbbbbbbXbXbbbbbXXbbbbXbXbbXbbXXbbbXbbbbbbbbT  VhhhhhhhÁhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhdM        :^”�ÊÙàæéñòò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúúúüüúüüüûüüüüüüüüüüüüüüüüüüüüüýüüüýýüüýýýýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþÿÿþþÿÿþþÿÿÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþþÿþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüýýüýüüüýüýüýüüüüüüüüüüüüú÷÷÷ôèà×Ê�–^:Xbcc¸µµ¶µ¶¶µµµ¶¶¶»¶¶µµµ¹,,XbbbbbbbbbbbbbbbXXbbbXbbbbbbXbXbbbbbbXbbXXbbbbbbbb@XbbbbbbbbXbbbbbbbbXbbbbbbbbbbXbXbbXbXXbbbbXXbbbbbbbbbXXbbbbbbXbT  ghhhhÁhhh�hhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb           -V��ÓÙàèñò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúûúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýüüýýüüüýýýýýýýýýýýýýýýýýýýþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþþÿþÿÿþþÿÿþÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþþÿÿþÿÿþþÿÿþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüúõèàÙÊ—a:-,Xcbcc¹¶µµµµµµµµµµµµ¶¶¶¶º»c,,,,,XbbbbbbbccbbYYbbbbXbXXYXbbbbbbXbbY[bbbbYXXbYYbbbXb@YYbbbYYXXbbXbbYXbXbb[bbbY[bbbXXXXXXXYbbbbbXXbbbYbXbXYXXbbbbbbbbT  -bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhU              -:^—ÊÙâéò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúüüúúüüüüûüüüüüüüüüüüüüüüüüüüýýýüüýýüüüüýýýýýýýýýýýýýýýýýýýýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþÿÿþþÿÿþþÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿþÿÿÿÿÿþÿþÿÿþþþÿþÿþþÿÿþþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüüüüüüüüüüüüüüüýüüüüüüüüüüüüüüüú÷òèÙÇ›^-Ubbbbbc¹¶¶»»¹»¹¾¾¾¾ÁÁÁÁÁÁÁg,Xbbbbbbbcbb@B@@YbX;XX@@@YY@bbXbbY@@@bb;@>XYA@BbbXb@@BBb@@@>@Yb@Y@BBbBXY@@bXB@Ybbb@@@XY>@@@YbbY@bX@BBbY>B=YbbbbbbXbTUhhÁhhhhhhhh•hhhhhhhhhÁhhh•hhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhh�hhhhhhhhhhÁhhhhhhhhÁh•hhhhhhhhhhhhhhc          Y“Ç×àèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúüúúúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýüüýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþþÿþþÿÿþþÿÿþþÿÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþÿþþÿÿþÿþÿþÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýýýýýýýüüýüüüüüüüüüüüüüüüüüüüüüüüüúúôàÙÇ‚V-,-bXbbbbcgÁÁÁÁÁÁÁÁÁÁÁÁ¾Á¾Á¾Á¾T,,Xbbbbbbbcb@YXbYAbY=Yb=@@YY@bbbbX@Xb@YBYbYB@[b@Ybcc@YcBY@bb@@Bb@@=@@X@YX@@XbY@XbbcY@@X>@@BAYbXA>[Y=B@Y@YbBYbbbbbbbbT  dhhhh•hhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhX           X›ÊÙèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúüúúúúüüúúüüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüýýýýüüýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþÿþÿÿþþÿÿþþÿÿþþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿþÿÿþÿÿÿþÿþÿþþþÿÿþÿÿþÿÿþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýýýýýüüüýüüýüüüýüüüüüüüüüüüüüüüüüüüüüú÷ñàÊ–VbbbXbbbd¾»»»»»»»»¶¶¶¶¶¶µµµ»U,,Xbbbbbbbcb>Xbbb@Y@Y@X@YY@Y=YbbbY=YbBY@bb[@@Xb@Ybbb@YY>Y@XY;@@b@Y@[@Y@YY@=YX9YbbbbB@[bBYY@=BXX@YYY@Y@YY@Y>YbbXXbbbbT XhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhgM     [–×àñò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúüüüûüüüüüüüüüüüüüüüüüüüüüüüýýüüüüýýüüüüýýýýýýýýýýýýýýýýýýýýýýýþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿÿþþÿÿþþÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþþÿþþþþÿþþÿÿþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýþýþþþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüüüüüüüüýüüüüüüüýýüüüüüüüüüüüüüüüüüüüüüúõàÓ”Y,,bXbbbbbb¹µµµµµµµµµµ¶µµµ¶µµ»:,,,Xbbcbbbbbb@bcbb@BYcYXbBBb[B@bbbY;@BYb@bb[@@bcYYccbY@@YbbY@B@@bYbYBYcYB@Y=Yb@BbXbbX@YbbY@YYBBYXXYcY@YbbY@=XbbbbbccbT Tghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhb       ^›Êàñò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúüüüüúüüüüüüüüüüüüüüüüüüüüüüüýüüýýüüüüýýýýýýýýýýýýýýýýýýýýýýýýþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþþÿÿþþÿÿþþÿÿþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþþþþþþþþþþÿþÿÿþÿþÿþþþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýýþýþþþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüüüüüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúòàÓ›V--XXXbbXbc¹µµµµµµµµµµµµ³µµ¶¶¹,,,,XbcbbbcbbbYYbb[@bccbcbbbbbcbccbb@[bbc@XbYY;Yb@YccbbbccccbbbbYbYbbbccbbbcYbbbbbbbbccbcbbbbbcbccbbcbbbcccb@XbbbccccbT   chhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhT   -:”×àñòõ÷÷ò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúúúúúúüûüüüüüüüüüüüüüüüüüüüüýüüýýüüýýýýüüüüüýýýýýýýýýýýýýýýýýýýýýþýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþþþÿþÿþþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþþÿÿÿþÿÿÿþÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿþþþþÿÿþþþþþþþþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýüýýüýüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúõæÊ…:,,WXXXbXbcºµ³³K¸µ¸µµµµº³µ¶¶¶b,,,,,,,Xccbcbccbbb@@@@YcbccccbccccccccbY@@bcX@@@bY@@YbcbccbccccbbbccbXbcccbcbccbbbccbcccbccccbccccccccbccccbbbcBXcbccccbbT  Xhhhhhhhhhh•hhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhh•hhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhb    �ÇÙñ÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýüüýýýýýýýýýýýýýþýýýýýýþþþýýþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþÿÿþþÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýüýýüýüýýüüüüüüüüüüüüüüüüüüüüûüüüüüüüüüüúõàÇ^0,MXXXXbbg¶µ¸¶¸µ¶¶¶¶¶¶¶¶¶¶¶¹,,,,,,,IDD,,,XcccbcccbbbbXXcccccbccccbbbcbcbbbcbcbcbbcccbbcccccccbcccbcbbcbbcccccbcccbbbccbcccccbccccbbbcbcbbbcccbcbbXbcbbccccbT Tdhhhhhhhhhhhhhhhhhhh�hÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhW  -V›×èò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúüüüüüüüüüüüüüüüüüüüüüüýüüüüýüüýýýýýüüýýüýýýýýýýýýýýýýýýýýýþýýýýþýýþþýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþþÿÿþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýþþþþýþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýýýýýüüüüüýüüüüüüüüüüüüüüüüüüüüüüüüüú÷è×–V-,-UbXXXc¹¶¶¶¶¶¶¶¶¶º¶º¹¹¹¹b,,,,,,,,,DDIDXcccccbcccccbcccccccccccbcbccbccccccccbcbccccbccbbbcccccccbcccccccccccbcccccbcccccccccccbcbccbccccccccbcbccccbccbcT  -chhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhd ‚Êàô÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúüþþþþþþþþþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþþþþþþþþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþþÿÿÿÿþþþþþþÿþÿÿþÿþþÿþÿÿþþþþÿÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþýþýþýþýýþýýýþþþþþþþýýýüüüüüüüüüüüüüýüüüüûüüüüüüüúõàÊ‚,,,,-UXbbb··KKKKJJJH--,--,,DI´IID,IID,ID,XccccccccccccccccccccccccbbcccbccccccbcbccccccccbbbccccccccccccccccccccccccccccccccccccccbbcccbccccccbcbccccccccccT  WhhhhhhhhhhÁhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhÁhh•hhhX  V–Ùèõ÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷úúüüüþþüüúúúúú÷÷÷÷ú÷úú÷ú÷÷÷úú÷ú÷÷úú÷úú÷ú÷ú÷ú÷÷ú÷÷ó÷÷÷ú÷úú÷úúúúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüýüýýýýýýýýýýýýýýýýýþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþþþþÿÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþþÿÿþþÿþÿþþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýüüüýüüüüüüüüüüüüüüüüüüüüüüüüúüúûúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúüþþþýþýýüüüüüüüüüüüüüüüüüüüûüüúôÙ…U,---,,,,,,,,,I²²´²²I´´²²´²²ID,DXcbcbcccccccccccccccccccccccccccbcccccccccccccccccccccccccbcccccccbcbcccccccccccccccccccccccccccbcccccccccccccccccT  ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhg      ^Çàñõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ò÷÷÷÷úüýýüüúú÷ó÷÷ó÷÷÷÷ó÷÷óó÷÷ó÷÷÷óó÷÷÷÷ó÷ó÷÷÷÷ó÷óóóó÷÷ó÷÷ó÷óó÷÷÷ó÷óó÷÷÷÷÷÷÷ú÷úúúúú÷úúúú÷úúúúúúúúúúúúúúúüúüúúüúüüúüüüüüüüüüüüüüüüüüüüüüüüýüüüüüüüýüüýýýýýýýýýýýýþýýýýþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþÿþþþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþýþýýýýýýýýýýýýýýýýýýüüüüýýüüüüüüüüüüüüüüüüüüüüüüúúúüüúúüúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õõ÷÷÷÷÷÷÷÷÷÷÷úúüüýþýýüüüüüüüüüüüüüüüüüüüüúõà�b-,,,,,,,II´´I´´´´´´²²DIIIII,DXcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT -bhhhhh•ÁhhhhhhhhhÁhhhhhhhhhhhÁhhhhÁhÁhhhhh•hhh•hhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhc- ‚׿ò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüýþúúó÷ó÷ó÷÷÷÷÷ó÷ó÷÷÷ó÷óó÷ó÷÷ó÷÷ó÷÷ó÷ó÷÷ó÷÷óó÷óó÷÷óóó÷÷÷÷÷÷óó÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüýüýüýýüýýýýýýýýþýýþýþýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþþþþÿþþÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþÿÿþþÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüúúüúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òòó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþþþüüüüüüüüüüüüüüüüüüüü÷æÊf0,,,,,,,,,,,DD²´´²I²´´´²²²I´ID,DIIDD,DIIDDIXcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT WhhhÁhhhhÁhhhhhhhhhhhhhhhhÁÁhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhÁhhhhhhhh•hhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhh•ÁhhhhhhhhhhW:—Ùé÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýýüúó÷÷ó÷ó÷÷÷÷÷÷ó÷ó÷÷óó÷÷÷÷÷÷÷÷÷÷ó÷÷÷ó÷÷ó÷÷ó÷ó÷ó÷ó÷÷÷óóó÷÷ó÷÷óó÷ó÷÷÷÷÷÷÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüýüýüýýýýýýýýýþþýýþþþýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþÿÿþþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿÿþþÿÿþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýýýýýýýýýýýýýüýýýýýüüýüüüüüüüüüüüüüüüüüüúüüüüüüúúüúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷ò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþþýüüüüüüüüüüüüüüüúüüúôÙ–:,,,,,,,,,,,,,I²´²D²´´´´´´²²´²D²²´²DDDDI²´²II²´´´IDD,,XcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT   dhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhc V—àô÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üýýú÷ó÷÷÷ó÷ó÷ó÷÷÷÷ó÷ó÷ó÷ó÷÷÷÷÷÷÷÷ó÷÷÷ó÷ó÷÷ó÷ó÷óóúó÷÷÷÷÷÷÷ó÷óó÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúüúüúúüüüüúüüüüüüüüüüüüüüüüüüüüüýüüüüüüüýüýüýýüýýýýýýýýýýþýþýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿÿþþÿÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþþÿÿþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýýýýýýýýýýýýýýýýüüüüüýýüüüüüüüüüüüüüüüüüüüüúüúúúúüúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üþþýüüüüüüüüüüüüüüüüüüõÙ›U,,,,,,,,,,,,,,,,,,,,,,,,DI´I²´´´´´´´´´´²´´´´´ID²DD´´´²´´²´´´´²ID²DD,,XcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT -bhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhh•hÁhhhgVV�àò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úþýúó÷ó÷÷÷÷÷óó÷ó÷÷ó÷÷÷ó÷÷÷÷÷÷÷÷÷ó÷÷÷ó÷÷óó÷÷÷÷÷úóó÷ó÷÷÷÷÷ó÷ó÷ó÷÷ó÷÷÷÷÷÷úóú÷÷ú÷÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúüúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýýýýýüýýýýýýýýþýýýýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿÿþþÿÿþþþÿþþþþÿþþþþþþþþþþþþþþþþþþþþýýþýýýýýýýýýýýýýýýüýüüüüüýýüüýüüüüüüüüüüúüüüüúüûüúûúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýþýüüüüüüüüüüüüüüüüü÷ß—U,,,,,,,,,,,,,,,,,,,,,,,,,,,I´²´´´´´´´´´´´´´´´´´´²´´´´´´´´´´´´´´´´²I²²IIIDXccdccbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbcccT   UhhhhhhhhÁhÁhÁÁhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhÁ•hhf-^Çàò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üýüúó÷ó÷÷óó÷÷ó÷÷ó÷÷ó÷ó÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óó÷ó÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷ó÷÷úó÷÷ó÷÷úú÷÷úú÷ú÷úúúúúúúúúúúúúúúüüúüúúúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüýýýüýýýýýýüýýýýýýýýþýþýþþþþþþýþþþþþþþþÿþþþþþþþþÿÿþþÿþÿÿþÿÿÿþÿþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿÿþþÿÿþÿþþþÿþþþþþþþþþþþþþþþþþþþþþþýþþþþýýýýýýýýýýýýýýýüýýýüüüüüüüüüüüüüüüüüüüüüüüúüúüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úþþüüüüüüüüüüüüüüüüü÷æ�V-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDII²´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²²²IDDIDXcdccc# ;cccT    dhhhhhhÁhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhh•hÁhÁhhhhhhhhhÁÁÁhhhhhhhhhb-^Çæõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýýú÷÷óóóóó÷÷÷ó÷÷ó÷÷ó÷óóòòñññéèèèéèèèñèèèèèèéèèéèèèññééèèèèéééèèéèéñèéñèèèéèñéééñééññéôñññéééééñéôñôôôôôôôôôôôôôôôôôôõôôôôôõôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ÷õ÷õõõõ÷õ÷÷÷÷ù÷õù÷÷÷÷÷÷÷ùù÷ùù÷ùù÷ùùùùùùùùøøøøøûùøùøûúûûøûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûøûøûøûøøøûùùùøùùùøùùùùùùù÷÷ùù÷÷ù÷÷ù÷õõ÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôôôôôôôôôôôôôôôéôôôôôôôôôôôôôéôôéôôôôôééôññéééôèéééééèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèééòò÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷üýþýüüüüüüüüüüüüüüü÷æÇ\-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDI´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´²²²²ID²IXcdcdcccccdcccccdcccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccdccccdcccccccccT bhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhh•hhhhhhhhhhhhÁhÁhhÁhhhhhhhhhÁhhhhhhhhÁhÁhhhhhh:-^Êèõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüýú÷÷÷ó÷÷÷óó÷÷ó÷÷÷÷óòñæàÙ׬§š’‘‘‘€‘‘€‘‘€‘€‘‘€‘€€‘‘‘’�‘’‘‘‘€‘’‘‘‘‘‘‘’‘‘’’‘€‘€‘‘‘’’‘‘‘‘‘‘‘‘�’‘‘’’€‘‘’‘‘‘€’’’‘‘’‘’’’�’’’�’‘�‘‘‘‘‘’’‘‘‘’‘‘�‘‘’‘‘’’’’‘��‘’‘€‘’’’‘‘‘�‘‘��‘’’‘‘’¤’‘’‘‘’’‘‘’‘’‘’’’’‘�’’¤’’‘’‘’’�’‘‘’’‘���‘‘�‘’‘‘’’�¤’��‘’’‘��‘‘¤¤‘‘’‘¤‘�¤‘‘¤¤�‘‘’’‘’’‘‘’‘’’‘‘’’’’’’’¤’’�’’‘¤’’¤’’’‘’¤’�¤’’‘���’‘¤¤¤¤‘‘’’‘‘‘‘‘¤’’’’‘‘‘‘’¤’¤’‘‘’‘�‘’‘�‘’’’‘’‘�’’‘’’�‘’’’’’‘�‘’‘¤’’‘€‘’‘‘’’’‘‘’‘’’‘’’’‘‘‘‘�‘‘�‘’‘‘‘‘‘‘‘‘‘‘‘’’‘’‘’‘’‘‘’‘‘‘‘‘‘‘’‘’¤‘€‘€€‘‘’’’€‘’‘‘‘‘‘‘‘€‘’‘€‘‘‘‘‘€‘’’’‘’’‘’‘‘‘’¤’¤¥§ÕÙàæôò÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úüýþüüüüüüüüüüüüûüüúèÇV,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´²²²²²I²DXcdccdccdccdccdcdccgcdccccccccccdccccccdccddcccddcccccccdccccccdccccdcccccccccccccdccdcccccccccccddcccdccdccccccccT  UhhhhhhhhhÁhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhÁhhhÁhhh•hhhhhhhhhÁhhÁhhhhhhhhhhhhhÁhhÁhhcVÇè÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýüúó÷÷ó÷ó÷ó÷÷ó÷÷óóñèÙÒš�spplC>>=>====>===========>>>>>>>>>=>>>========>>=======>>==>======>==>>==>>=>==>>>==>=>>==>>==========>===>>=====>==>>>=====>==>>>===========>==>>>>=>=>>==>===>======>>>===>>=====>======>=====>==>>===>>=====>?====A>=>==>A>==>================>=>>======>=>>=>===>==>==>=====>>>>=>>=====>>>>>===>=>>>>===>===>>=>>>=====>>=====>>>>====>=>=>==>>==>A>==>>>==>A>=========>===>==>===>=>>>>>>>==>A>=======>>=======>>>==>======>==>===>=====>A>=>=>>===????llv|}’šÒàèòõ÷÷÷÷÷÷÷÷÷÷ú÷úúúýþýüüüüüüüüüüüüüü÷è�V,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²´´´´´´´´´´´´´´´´´´´´´´´´´´´´²²²²²²²²²IIXcdcdcccdcdcccdcdcddcdccdccdcccddcccdccdccccccccdcgcccdccdcccccdcccdccdcgccccddcdcccdccdccccdcccdccccddccdccccccccT chhÁhÁÁhÁhhhhhhhÁhhh•h•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhÁ•hh•hhhhhhÁhÁhÁÁhhhhhhhhhhhhhhÁhhhhhhhhhhWVÇæ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üüúóó÷óó÷ó÷ó÷÷÷÷òòâך‘}p?=$     !$>lp‘§Ùâò÷÷÷ú÷úúú÷úúúúúüýþüüüüüüüüüûüüüúúæ�V,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD²´´´´´´´´´´´´´´´´´´´´´´´´´´´²´²²²²IIDIDD,XcdcdcccdcdcccdccdcdcdccdccccdcccccdcccgccdcccdccccccdcccdcccdcdcccdccccccccccccccccccddccdcddcccccccccdcdcdccgcccT     WhhhhhhhhhhhhÁhhhhhhÁhhhhhhhÁhhhhhhÁÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhh•hhhhhhÁhh•hhhhÁhhhhhhgU�æõ÷÷÷÷÷÷÷÷÷÷÷÷÷úüüú÷óó÷÷÷ó÷ó÷÷÷òèÙ§�vl>$    $=l|‘§Ùé÷÷÷úúú÷úúúúúúúýþüüüüüüüüûüüüüü÷à�:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDD,I´´´´´´´´´´´´´´´´´´´´´´´´²²²²²²²I,,XcdcccdcdcdgcdddcccdcdcdccdgccdgddccccdccdccdcddcddccdccddcdcdcdcccdccccdcddccccdcdcccccdcdcdcdgdddccccdcddcccdcccUTghhhhhhhhhhÁhhÁhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhh•hhhhhhhhÁhhhhhhh•hhÁhhhhÁhhhhhhhhhhhÁhb:—àõ÷÷÷÷÷÷÷÷÷÷÷÷÷üýüóóó÷÷ó÷÷ó÷÷óòèÓ’}o>    !?p}šÙñ÷÷÷÷úúúúúúúúúýþýüüüüüüüüüüüüü÷à–M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,IIID,DDD²²´´´´´´´´´´´´´´´´´´²´´´´´´²²²²²²DXcdcccdcdcdccddcdccgcdccccdgccccccgdccdcdccccdcdcdcdcdcdcccccddccccccdcdcdcdcddcdcdccdccdcdddcdcccgdcccdcdccccccccUbhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhÁhhhhhhhhÁhÁhhhhhhhgM–àõ÷÷÷÷÷÷÷÷÷÷÷÷÷üýú÷÷÷ó÷÷ó÷ó÷óòâÓ¤}l$    $C}šÓé÷÷úúúúúúúúúúüþýüüüüüüüúüüüüûõÙ“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDIDDIDIDDDD²´´´´´´´´´´´´´´´´´´´´´´²´²´²²²²²D,,bcdcccdcdcdcdcccgccdcdcdcdcccdgcddggccgccdcdcdcccdccgccccgdcdcdccccccccdcccdcdccgccccdcdcdddcdgcgcddddcdcdcccdccccUUhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁÁÁhhhhhhÁÁhhhhhhÁÁÁhÁhhÁhhh•hhhÁhc--�Ùô÷÷÷÷÷÷÷÷÷÷÷÷úüýúó÷÷ó÷÷÷÷óó÷ñÓ�vC$          !?|šÙòúúúúúúúúúúúüþýüüüüüüüüüüüüüõ×^-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²²²²I²²²²²´´²´´´´´´´´´²´´´´´²´²²²²²²²²DbccdccdcdcgdccccdcdcccdccccggdcdddcdcgcgdcddcdgddccccgccdcddcddgdccdccccdccdcdccggdcgccdcdcchdcdccddcddddcdccgdgdcUgÁhhhhhÁhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhU^Êè÷÷÷÷÷÷÷÷÷÷÷÷÷üüúó÷ó÷÷ó÷÷÷óòà§}l!    !l}§æ÷úúúúúúúúúúüþþüüûüüüüüüüüüúèÇV,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDII²²²²²²²²²²²²´´²´²²´´´²´²²´²²²²²²²²²²²,,,XdcgdddddcddccddddcddccdccccddcccgdgdccddccdddgggcdddgdcddddcdddcddddgddcddgdcddcdcddccdcdcdgcgdcggdcddcccddgcgggcUbÁhhhhhhÁhhÁÁhhhhh•hhhhhhhhhÁhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhÁhhhhhhhÁhhhhh•hhhhhhhhhhhhhhÁhhhhc:Çæ÷÷÷÷ú÷÷÷÷÷÷÷÷üüú÷÷÷ó÷÷÷÷óóèÒ€p=    =p‘Óôúúúúúúúúúúüýýüüüüüüüüûüüüúæ—:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIIII²²²²²²²²²²²²´´´²²´²´´²´²²²²²²²²²²²²bdgddcddcdhggdc]ZtCBZZadgggggdd�[__dggdd[_^cdcdccdcc�[][addcc[Z_dh[__ddgcd__[dcdddd_[_dddddd_[_dggggggda[_cdcgdcccU:hhhÁhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhW0–à÷÷úú÷ú÷÷÷÷÷÷÷üüúó÷÷÷ó÷÷÷óòàšw>   >}§è÷úúúúúúúúúüþýüüüüüüüüüüüü÷ß“0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIIDI²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²I,,,,Xcdgdddddgggc[>>>Zcdggd_?>?_dgd>]dddcddd_Z>?[dcdC>Zcc_Zccd_>>ZgdggdgZ?ddgggdBjCdggggggdZ>ddgdccddUghhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhhhhhhÁhhÁ•hhhhhhhhhhÁhhhÁhhhhhh•hhhgMfÙô÷ú÷÷÷÷÷÷÷÷÷÷üüúó÷ó÷÷ó÷÷óñפp$!    =|¤Ùõúúúúúúúúúûþýüüüüüüüüüüüúõ×^-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDD²²²²²²²²²²²²²²²²²²²²²²²²²²IIII²²ID,,,,bgggggdcdgddBAZZZA>Acgd_AAZhdZdgdddddZA>_ddAZdddB>_cc?AdcdggdgZCdgdggdZCddggggggZ?dggdddgdU-bhÁhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁ•hhÁhhhhhhhÁhhhhhhhhhhhbVÊè÷úú÷÷÷÷÷÷÷÷÷üýúó÷óó÷ó÷÷óñ¬l     !lÓõúúúúúúúúüüþýúüüüüüüüüüüúè�:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,II²II²²²²²²²²²²²²²²²²²²²²²IIDD,,,bggddggcdgdCA[dgdhddZ>Zdg�C^cdcZ_dZdgddddhdB[ddd?ZgdCZdggd>AcZ_ggdgdggZ?dgggggZAdcgddghg]>dggdddgdUUhh•hhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhhhÁÁhhhhhhhhhhhÁhhhhhhhhhhhhhhh•hhhhhT–à÷úú÷úúúú÷÷÷÷üýú÷ó÷÷÷ó÷÷÷è§}>>}Óôúúúúúúúúúüþýüüüüüüüüüüü÷à‚0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDI²²²²²²²²²²²II²²²²²ID,,,,,bdgggghgghYZdgdhgggddddggZfddhgdBBdZdhgdgghgdgggdAZhdABdgdh[ZZhddggggd]?dggggdBCdgggdggg]dhhgddhgUchhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhh•Áhh•hhhhhhhhÁhÁhhhhhhhhhhhhhhhhb^×ôúúúúúúúúú÷÷úýü÷ó÷ó÷÷÷ó÷â§w=>}¬éúúúúúúúúúýþüüüüüûüüüüüüôÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²²²²²²²²²DII²IIDDDDID,,,,,bggdgggghdCdgghgggggdhdgdBAgggdhg[AcZhdggghgghd�Z>[gdAAggdgdCAdgdghgggh[AddhdgdZAdhghggghZdgcgghggUXhhhhh•hhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhh•hhh•hhhhÁhhhhhhhÁhX:�æ÷úúúúú÷÷÷÷úúüüóóóóó÷÷ó÷âšp$         =}§ñúúúüúúúúüþþüüüüüüüüúüüúæ–M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LL,,LL,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,IIIIIIIIDDDDDDDDDDD,,,bgdghdhghZcghhhgggdghhggdBZdggggga>a[ghhgghhhdAZdhdABghggg^>_hhghgghhg[AdhggggBAdgghggghZdgghghggUMghhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhÁhhÁhÁhhhhhhhhhhÁÁhhhÁhhhÁhhhhÁhhhÁhÁhhhhhhhhhhÁhÁhÁhhd-‚Ù÷úúúúúú÷÷÷÷úüü÷÷÷÷÷÷÷ó÷è§p!       =q§ôúúúúúúúúüþýüüüüüüüüüüüõ×a-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L.,,,,,,,.,.,,,,L,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDIDDID,D,,D,,,,bggggghgdAAhggggghgggghghhZBdhgghhd>dAdggghggdBC[^dhgdABggggh_[ghggghghg]?dghghdZAdgggghhdZdhgghggdUcÁhhhhhÁÁhÁhhhhhhÁhhhhhhhhhhhhhhhÁhhÁhhÁhhÁhhhÁhÁhhhhhhhÁhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhÁÁhhhhhÁhÁhhhhhÁhhÁhhXUÊéúúúúúúúúúúúüüúóó÷÷÷÷÷óè§q$ =s¬õúúúúúüúúüþýüüüüüüüûüüúèÆU,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LL,,,,,,,,L,.,,,LL,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DID,D,,,,,ID,,,bhghgghgfAZghggghgdhhggghh_>_hhgggBZd[gghhggd>BdhghghdABhghhdA>aghghhghg[?dhghhhBA_d_d_d_dZdhghgghgUWhhhhhhhhÁhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhÁÁhhhhhhhÁhÁhhÁhÁhhÁÁhhhhhhÁhhgM-…à÷úúúúúúúúúúúýúó÷÷ó÷ó÷÷ñ§w$  =}Ôõúúúüúúüüýþüüüüüüüûüüü÷Ùf-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLL,LLL,L,.,L,,,,,,LL,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIID,,,,,,,,,,,,,bdgghgghd>ZhhghhhgghggghghdAA_dddZ_dZdddggd>ZddddhgdBBhggdZ]>ZdhggdhhhZAgghghhBdgghhgggUMgÁÁhhhhhÁhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhÁhÁÁhhhhhhhhhhÁhhhhhhhÁhhhhÁhhhhÁhhhhÁhhÁhhhÁhhhhÁhhhhhÁhhhhhhhhhhc-VÊéúúúúúúúúúúúüü÷ó÷÷÷÷÷÷òÓ}>         =€Ù÷úüúüüüüüþýüüüüüüüüüúúé�U,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLL,.LL,,L,,L.,,,L,,,L,,,.L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,,,,,,,bhhhhhghdAChhhghgghghgghhhh�AAA_gd>>>dhhhZAAAdgdAAggh_=Zd_[hghghgg[AgghhhdZ>>>>>dhghghhgT,chhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhÁhÁÁhhÁhÁhhhÁhhhhhhÁhhÁhÁhhhhhÁhhhÁhhhhÁÁhhhhhhhhhhhW-‚à÷úúúúúúúúúúüþú÷ó÷÷÷÷óòÙ>     ?�àúúúúüúüúüþüüüüüüüüüüü÷Ùa-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLLL,,L,,L,,,,LL,L,,.LLL,,,LLLL,LL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhhhhhhgZ>dhhhhhhhhhhhhhhhhfZC>>AZ_hhhA>[_A�hhgd[A>>A[gghZ>ZhhdZAZfhh[ABdhhhhhh[AhhhhhgZAdhhhdhdhZ>dhhhhhhgUWhhÁhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhÁhhÁhhhhhÁhhÁhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁhhhhÁhhÁhhÁdUÊôúúúúúúúúúúúýü÷÷ó÷÷÷÷óâ’l   lšéúúüüüüüüýþüüüüüüüüüüüèÆ:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLLLLLLLLLL,LL,LL,LLLLL.L,LL.,L,L,,,L,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhhhhghh__hhghhhhhhhhhhhhghgddddhhhhhddhhdd^dhhhhhddddghhhdddhhhdddhhhhddhhhhhhhZAhhhhhhCAdhhhghhd[>hhhhhghhUghhhhhhhhhhÁhhhhhhÁhÁhÁhhhhhhhhhÁhhhhhÁhÁhhÁÁhhhhhhhÁhÁhhhhhhhhhhhÁhhhhhhhhhÁhÁhhhhhÁhhhhh•Á•hhÁÁhhhÁhX-‚Ù÷úúúúúúúúúúüýó÷÷ó÷÷÷óñšp!     !qÒõúüúüüüüüþüüüüüüüüüüü÷Ùa-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLLLLLLLLLLL.LLLLLLLLLLLL,LL,,L,LL,LL,,,,,L,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,,,,,bhhhhghhhh>BdhhhhghhhhhhhhhhghhhhhhhghghhhhhhghghhghhghhhghhdddhhhhghhhhhhhhhhhhhhZ>hhhhggBBdghhhhhg[>hhhghghhU-bhhhhÁhhhhhÁhhhÁÁhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhÁhhhhhhÁhhÁhhhhhhÁhhhhhhhhhÁÁhhhhhhhÁhhhhhÁÁÁhhhhhgM:Çéúúúúúúúúúúúýúó÷óóó÷óòØ}$     =}Ù÷úüúüüüüýþüüüüüüüüüüúè—M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLLLLLLLLLL,,,LLLLLLLLLLL.L,LLLLL,,,,,,,,,L,LLLL,.,,,,L,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhghhhhhh_=BdhhhhghhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhdA[ghhhhhhhhhhhghhhhhhZ=hhhghhCAfhhhhhhh[>hhhhhhhhUWhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁhhÁhhhhhhhhhÁhhhhÁhhhhhhhhÁhÁÁÁhhhÁhhhhhhhhhh•hhÁhhhb-�Ù÷úúúúúúúúúúüý÷óó÷÷÷ó÷à’C    lšñúüúüüüüüþýüüüüüüüüüüõ×\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,.,LLLLLLLLLLLLLLLLLLLLL,LLLLL,,,LLLL,L,L,,L.L,,LLLL.L,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,,,,,,,,,,,,,,bhhhhhhhhhhY$BdhghhhhddhghhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhB=[hhhhhhhhhhhhhhhhhhhZ>hhhhghBBdhhhhhhh[=hhhhhhhhUdhhÁhhhhhhhhhhhhhhhhhhhhhÁhhÁhÁhhhÁÁhhhhhhhhhhhhÁÁhÁhÁhhhhÁhhhhÁhhhhhhÁhhhÁhhhhhhhÁhhhhÁhhÁhhÁhhhhhg:—æúúúúúúúúúúúýú÷ó÷óó÷÷ñ§p!     !qÓ÷üüüüüüüýþüüüüüúüúüüúâ“/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,,.L,L,LLLLLLLLLLLLLLLLLLLLLLLLLLL,L.LLLLLL.LL,LL,LLLLL,LL,,,,,L,L,,,,,,,,L,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,,,,,,,,,,,,,,,bhhhhhhhhhhdZ7=Zbdd_Y>>_hhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhfd�hhhhhhhhhhhhhhd_[[[A$Z[[_dhBBdhhhhhhhY=hhhhhhhhUbhhhhhÁhhhhhhhhÁhhhhhÁhhhhÁhhhhÁhhhhhÁhhhhhhhhhhhÁhÁhhhhhhhhhhÁhÁhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhÁhhhc-UÓòúúúúúúúúúúüýúó÷÷ó÷÷óà€=    >¤æúüüüüüüüþýüüüüüüüüüüôÉU,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,.L,,,.,,,LL,,LLLLLNLLLLLLLLLLLLLLLLLLLLLL,.LLLLLLLLLL,LLLL,LL.,LL,LLL,.,,,,,.,L,LL,,,LL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhh_@=$$$=[hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhd==7$$$=YhBBdhhhhhhh[=hhhhhhhhUUhhÁÁÁhhhhÁhÁhÁhÁÁhhhÁÁhhhhhhhhhhhhÁhhhÁÁhhhhÁhhhhÁhhhhhhÁhÁhÁhÁhhhhÁÁÁÁhhhhÁÁhhÁhÁhhhÁhhÁÁÁhhhhhÁhW‚Ùúúúúúúúúúúúýüó÷ó÷÷÷÷è§o    !v§÷üúüüüüüýþüüüüüüüüüü÷Ù`,,,,,,,,,,,,,,.,,,,,,,,,,,,,L,,,LL,,,,,L,,LL,LNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL,,LLL,L,,,L,,LL,,,,LLLL,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,D,,,,,,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhhhd[@=$$=@Zdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhfYBYBBBBYZYY[h[AZhhhhhhhh[=AhhhhhhhhUchÁÁÁÁÁhhhhhhhhÁhhhhhhÁhhhhhhÁhhÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhhhhhhÁÁhÁÁhhhhhÁhhÁhhhhÁhhÁhhÁhhhhÁÁhÁÁhhhhÁgM0�èúúúúúúúúúúüþ÷ó÷÷÷ó÷òÙ}=     >‘æúüüüüüüüþüüüüüüüüüüúæ—/,,,,,,,,,,,,,,.,,,,,,,,,,L,,,.LLLL,,,,,LLLL,LLLNNLLLLLLNNLLNNLLLNLNLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLL,LL,,,,,,,,,L,,LLL,,.,,.,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhhhhhhhddhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhh•hhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhU,,XhÁhhhhhÁhhÁÁhÁhhÁhhhhhÁhhÁhÁhÁhhhhhhhhhÁÁhhhhhhhhhÁhhÁhÁhhhhhhhÁhÁÁhhÁhÁhhÁÁhÁÁhhhhÁÁhÁÁhhhhhÁhÁb-[×õúúúúúúúúúúüü÷ó÷óó÷÷ñ§l    v¬÷üüüüüüüþþüüüüüúüúüüôÌ\,,,,,,.,,,,,,.,,L,,,,L,,,,,L,LL,LLLL,,,,LLLLLNLNLLLLLLLLLLLLNLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLL,,LL.L,LLL.,.LL,,LL,L,,,,LL,LL,.,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-chhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•h•hhhU,MdhhhhÁÁÁhhhÁhhhhhhhÁhhhhÁÁÁhhhhhhhÁhhhhÁhhhhhhhhÁÁhhÁhhhÁhhhÁhÁÁhhhhhhhhhhhhhhhhhhhÁhÁhhÁhÁÁÁhhgM‚àúúúúúúúúúúúþú÷ó÷÷÷÷óÙ=    >¤æüüüüüüýýþüüüüüüüüüüúßa,,,,,,,,,,,,LLLL,,,LL,,,,LL,,LL,LLLLLLLL,LLLLNLNLLNNNLNLNNLLLLLLNLNNNLLLLNLNNLLLLLLLL.LLLLLLLLLLLLLLLL,LLLLLL,LL,LLL,,.L,LL,L,,.L,LL,.,L,.,.,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhU,-chhhÁhhhhhhÁÁÁhÁÁÁÁhÁhhÁÁhhÁhhÁhhÁhÁhhÁÁÁÁÁÁhhÁhhhhhhhhhhhÁhhhÁhhhhhhÁhÁÁhhÁÁhhÁhÁhhhhhhhÁhhÁhhc-�éúúúúúúúúúúüü÷÷÷ó÷ó÷ñ§l   p¬÷üüüüüüüþýüüüüüúüüüúæ–/,,,,L,,,L,.LL,,L,LL,L,,LL,,LLL,,LL,LLL.,LLLLNNNNLNNNNNLNLLLLLLNNLLNNLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LL.LLL,LLLL,L,LL,,L,,L,.,,LL,,L,.L,.,,,,,,,L.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhÁhh•hhhhhhhhhhh•hhhhhÁhhhhUWhhhÁÁhhhhhhÁÁÁhÁhhhÁÁÁÁhhhhhhÁhhÁÁhhhhhhÁÁÁhhhhhhÁÁhhhÁhhhhhhÁhhÁÁhÁÁÁhhÁhhÁÁhhhÁhÁhhÁÁhÁÁÁhhhU:Óõúúúúúúúúúúþü÷ó÷÷÷÷óâ‘=    ?¥ôüüüüüüüýþüüüüüüûüüüôÇP,,,,LLLL,,LL,,,,,L,LLLLLLLLLL,L,LLLLLLLLLLLLNNNNNLNNLLNLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LL,,LL,LLLL,L,,LL,LL,LL,,,.,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁ•hhhhhhhhhÁhh•hhhhhhhhhhÁÁhh•hhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhÁhhhhhhhhhhhhhhhUTgÁhhhhhhÁhhhhhÁÁhhhhhhhhhhhhhhÁhÁhhhÁhhhhhhhhÁÁhhÁÁhhhÁÁÁhhÁhhÁÁhhhÁhhhhhhhhÁhhhhhhÁhhhÁhhhhÁc^Ù÷úúúüúúúúúúþúó÷ó÷÷óòÓw!         $ÚúüüüüüüüþüüüüüüüüüüõÌ\.,,,,L,L,.LLLLL,LLL,LLLLLLLLLLL,,LLLLLLLLLLLLNNNNNNLNNNNNNNLLNNNNLLLLLLLNLLNLLLLLLLLNLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLL,.LLLLLLL.LL,,LLLL,L,,LLLL,L,,,,,..,.,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-chhÁhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhÁ•hhhhhhhhÁhhhhh•hhhhhÁhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhÁhhÁhhhhhhÁhhhhhhhhÁhhhhhhU,bhhhhhhÁÁhhÁÁhÁhÁÁhhhhhÁÁÁÁÁÁÁhhhÁÁhhhhÁÁhhÁÁÁÁhhhhhÁÁÁÁhÁÁhhhÁÁhhÁÁhhhhÁhhÁhÁhÁhÁhhhhhÁhhhhhX–æúúúúúúúúúúüþ÷ó÷ó÷÷÷ñšC        l§÷üüüüüüüþýüüüüüüüüüúà�.,L,LL,L,LLL.LL,L,LL,,,LLLLLLLL,LLLLLLLLLLLLNNNNNNNLNNNNNNNNNNLLNNNLLLLNNLNNNNLLNLLNNLLLLLLNNLLNLLLLLLNLLLLLLNLLLLLLLLLLLLLL,LLLLLLLLL,L,,LLLLLLLL.,.L..,,,,LL,,L,L,,,.,.L,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhhhhhÁhhhhhÁÁhhhhhÁhhhhhhhhÁhhhhhhhhhÁhhhhhhÁhhhhÁhhhÁhhÁhhhhhhhhhÁhÁhhhhhhÁÁhhhhh•hhhhhhhhh�h•hhhÁÁhhhU,,,WhhÁÁhhÁhhhhhhhhhÁhhhÁhhhÁÁÁÁhhÁhhÁÁÁÁÁhhÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁhhhÁÁhÁhÁhhÁhÁhhÁÁÁÁhhÁhhÁhhÁhhÁhhÁhM�èúúúúúúúúúúüüó÷ó÷÷óóà}$      =�æüüüüüüüþþüüüüüüüüüúæ–/,,L,-,LLLLLLL,,LL,,--LLLLLLL,LLLLLLLLLLLL.NNNNLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLNLLNNLLNNLNNLLLLNNLLLNLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLL,LLL,LLLLL,LL.,LLLL,,LLL,L,,L,,,,,LL,,.,..L,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhhhhhhhhhÁhhhÁhhhhhhÁÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhhÁÁhhhhh„hhhhhhhÁhhhhhhhÁhhhhUghhÁÁhhhÁÁhhhÁhhhhhhÁhhhÁÁhÁÁÁhhhhÁhhÁÁÁÁÁÁhhÁÁhhÁhÁhhÁhÁÁhhÁhhhÁhhhÁÁhhhhÁhhhÁÁhhhhÁhhhhÁhcVÊõúúúúúúúúúúþúó÷óóó÷òÓq     !}ÚúüüüüüüþþüüüüüüüüüúôÉU...,-....LL....,.L..,LL.,..L,.L,.LLLLL.-...NNNNNNNNNNNNNLNNNNNLNNNNLNNNNLLLNNNNNLNNNLLLNNNNLLLLLNLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLLLLLLLLLLL,LLLL,,L,L,,,.L,LL,,LL,,L,.L.,,,,,,,,,L.,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhÁhhhhÁhÁÁÁhhÁÁÁhhhhhhÁÁhhhhhÁhÁhÁhhhhhhhhÁÁhhhhhhÁhhÁÁhhhhhhhhhhÁhhhhhhÁhÁÁhÁhÁhhhhhhÁÁhhhhhhÁhÁhhhhhhhhÁhÁhhhhU,bhÁhÁÁÁÁÁÁhÁhhhÁhhÁhhÁÁhhhhhhhhhhhhhÁÁhÁhhhhÁÁhÁhhÁÁÁÁhÁÁÁÁhÁhÁhhÁhhhhhhhhhhÁÁhhhhÁhÁhÁÁhhhW------------------------------------,-----------^×úúúûúúúúúúüþú÷óó÷÷óñ™C                     o§÷üüüüüüýþüüüüüüüüüü÷×f\\\\W\Wb\\\\\\\W\\WXX\\bW\X\W\\\\\\WW\b\\\WNNNNNNNNNNNNNNNNNNNNNNNNLLNLNNLNNNNNLNLNLNNLNNNLLLNLNLLLNNLLLLLLLLLLLLLLNLLLLLLNLLLLLLLLLLLLLLLLLLL.LLLLLLLLL,.L,,L,LLLLL,L.,.,,,,.L,L,,,.,,,LLL,,,,,,L,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-MUWWWWWWWUUWUUWUUchhÁhhhÁhÁÁÁÁÁhhÁÁhhÁhÁÁhhÁhhhhhhÁÁÁhhhhhhhhhhÁhhÁÁhÁÁhhÁhhhhhhhhhhÁhhhÁhÁÁhÁÁÁÁÁÁhhÁhÁÁhhÁhhhhhhÁÁhÁÁhhhhhhÁÁhhhhW-,ThÁÁÁÁÁÁhÁhhhhhÁhÁÁhhÁÁhhhhhhÁÁÁÁhhhhhhhhÁhÁhhÁÁhhÁÁÁÁÁhÁhhhhhÁhÁÁÁhÁÁÁÁÁÁhÁhÁhÁhÁhÁhÁÁÁÁhhgggggggggggggdggggggggggdgggcccggcgggcggcccggccgccccccccccccccccccccccbbbbbbbbXbbbbbbbbbbbbXbbbbbbbXbXbbbbXbb–àúüúúúúúúúúüü÷÷ó÷÷óóè�=                 >šõüüüüüüüþýüüüüüüüüü÷ÙÃÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNLNNNLNLNNNNNLNLNNLNLNLNNLNLLLLLLNLLLLLLLNLLNLNLLLLLLLLLLLLLLLLLLLLLLLLLLL,L,LL.LLLLLLL,,L,,L,,LLL,,,,L,,..,LL,L,,,,,L,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-XhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁchhhhhhhhhÁÁhhÁÁÁhÁÁhÁhhhhÁhÁÁhhhhhhhhhhhhhÁÁÁhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhÁhhÁÁÁhÁÁhÁhhhhÁhÁÁhhhhhhhhhhhhhÁhhÁhhhbbbbbbbXWWWWWWWWWWXWWWWXWWWWWWXWWXWWWUUUUUUUUUUTUUTU::::::U:T:::TTTTTTTTTTTTTTUgÁhhÁÁÁÁÁÁhhhÁhÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁhhhhÁhhÁÁhhÁhhhhÁÁÁhÁhÁÁhÁhhÁhÁhÁÁÁÁhÁhhhhÁhÁhhhÁÁÁÁÁÁÁhhÁÁÁÁhÁhhhÁÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhhhÁÁhÁÁÁhÁhhhhhÁÁhÁhÁÁÁÁÁhÁhÁhhÁÁhÁhÁhÁhÁhhhhhhÁhhÁÁhÁhhhÁÁhÁhhhhÁhÁhÁhÁhÁhhhhÁhÆâúúüúúúúúúüýü÷÷ó÷óó÷Ùs$!    =€æüüüüüýüþýüüüüüüüüüúàÆÁÁÁÁÁÁÁÁÁÄÄÁÁÄÁÁÄÁÁÄÄÁÁÄÄÄÄÁÁÄÄÁÁÄÁÄÄÁÁÄÁÁÄNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNLNNNNNNNNLNNNNNNNLNLNNLLNLLNNLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LL,LLLLL,,LLLLLL,,,LL,,L.,,LL,,,,,,,L,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁbccccbcbccccccccccccccccccccccccbccccbbcccbcccccccccccccccbbbbbccccccbbbbcccbccccbccbbcbbcbbbbbbbcccbbbcbbccbcbbbbbÁhhÁhÁhhhÁhhhhhÁhhhÁhÁhhhÁhÁÁÁÁhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhÁhÁÁhÁhÁÁÁhÁÁhhÁhÁhhÁhÁhhhÁÁÁÁÁÁÁÁhhhÁhhhhÁhÁÁÁÁÁÁhhhhhhhhhhhhhhÁÁhÁhÁÁhÁÁÁÁÁhhhhÁhÁÁhÁÁÁhÁÁhÁÁhhÁhhÁhÁhÁÁhÁhhhÁhÁÁÁÁÁÁhhhÁÁhhhÁhhÁÁÁÁÁhÁhhhhhhhhhhhhÁÁhÁhÁÁhhÁÁÁÁhhhhÁhhÁhÁhÁÁÁÁhÁÁÁhÁÁhhÁÁÁÁhhÁÁÇèüüúúúúúúúúýü÷÷ó÷ó÷òÒp           !wØüüüüüüýýþüüüüüüüüüúæÉÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÄÁÁÁÄÄÁÄÁÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÁÄÄNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNNNNNNLNNNNNNNNLLLLLNLLLLLNLNLLLLLLLLLLLLLLLLLLLLLLNL.L,LLLLLLLLLLLLLL,LLLLLLLLLLLLLLLLLL,L,LLLL,LL,,,,,,L,L,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁdcdddccccccbbbbXXXXbXXXbbXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcÁhhÁÁhÁÁÁÁhhhÁhÁhhhÁhÁÁhÁÁhÁÁÁhhhhÁÁÁÁÁÁÁhÁÁÁÁÁhhhÁhÁhÁhhhhÁÁhÁÁhÁhÁhÁÁÁhÁÁhhÁÁÁhÁÁhhÁhhÁÁhhhÁÁhhhÁhÁhhhÁhÁÁÁhÁhÁÁÁÁhhhhÁhÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁhÁhhhÁhhÁÁhÁÁÁhhÁÁhhhhhhÁÁÁÁÁhÁÁÁhhÁhhÁhÁhhhÁhhhhhÁhÁhÁhÁhhÁÁÁhhhhÁhÁÁhÁÁhÁÁÁÁÁhhhÁhÁhÁhhhhhhÁÁÁhÁhÁhÁÁÁhÁÁhhhÁÁÁÁhÁhÁhhÁhhhhÁÁhhhÁhÁhhhÁÁÓòúúúüúúüúúüýúó÷ó÷ó÷ò§m            !    !       ! o¬úüüýýüüýþüüüüüüüüüüèÊÂÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÄÁÄÄÄÄÄÁÄÄÁÄÄÁÄÁÄÁÄÁÄNNSSNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNLNNLLLNLNLLLLNLNNNLLLNNLLLLLLNLLLNLLLLNNLLLLLLLLLLLLLLLLL,LLLLLLLLLLLLLLLLLLLLLLLL,LL,,L,,L,,L,,L,L.,LL,,,LL,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁhdggdgccccccbbbbbXXbXbXbXXbXXXbXbXXXbXbbXXbXbXXbbXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhÁÁÁÁÁÁhhÁhÁhÁhÁhÁhÁÁhhÁÁhhÁhÁhhhÁÁhhhÁÁhÁÁÁÁÁhhÁÁhÁÁÁhhÁÁhÁÁhÁhÁÁhhhÁÁÁÁhhhÁÁhÁhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁÁhÁÁÁÁÁhÁÁhhhhÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁhhhÁhÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁhÁÁÁÁÁhhÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁhÁÁhhhÁÁhÁhhÁÁhhÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁhhÁhÁÁÁhhÁÁÁÁhhhÁhÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁhÁÁ•×õúúüüúúüúúúþúó÷ó÷óóñ™C  !                     l§÷üüüüýüýþýüüüüüüüüüô×ÂÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÄÁÄÄÁÁÄÁÄÁÄÄÄÁÄÁÄÁÄÄÄÄÄÄÄÁNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNLLLNNNLNLNNNLNNLLNNNLNLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLNLLLNLLLLLLLL.LLLLLLLLL,LL,LLLLL,,LLLL,L,L.LLL,,,,LLLL,,,,,,,,,,.,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0dÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁhhhhghggdggdddddgdgcggccddccdccccgccgdccgcddccdgccccdcdcccccccccdccccdccccccccccccccccccccccccccccccccccccchÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁhhÁÁÁhÁÁÁÁÁhhÁhÁÁhÁÁhÁÁhhhÁÁÁÁÁÁÁhÁhhÁÁhhhÁÁÁÁhÁhhÁÁhÁhÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁhhÁÁÁhÁÁÁÁÁhhhÁÁÁhÁÁhhÁhhhhÁÁÁÁÁÁÁÁhhÁÁhhÁÁÁÁÁhÁhhÁhhhÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁhhÁÁÁhhÁhhÁÁhÁhÁÁÁÁÁÁÁhÁhÁÁhhÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁhhÁÂÙ÷üüúúúúüúúüþ÷ó÷óó÷óè�=     !     ?šôüüüüüüüÿýüüüüüüûüüõ×ÂÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÄÁÁÄÄÄÁÄÄÄÄÁÁÄÄÁÄÄÄÁÁÄÄÁÄNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNLNNNNNLNNLNNLNNNNNLNNNLLNNNLNNLLLLLLNLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLL,,LLLLL,LLLLLLLLLL.LLL,,LLL,,L,,,,,,L,,,,.,L,,,L,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,TÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÁÄÄÄÁÄÄÁÄÄÁÁÄÄÁÁÄÁÄÁÄÄÁÁÄÄÁÁÄÄÁÁÁÁÄÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁÁÁhhhhhÁÁÁÁhÁÁÁÁhhÁÁÁhÁÁÁÁÁhhÁhÁhhÁÁhÁÁhÁhhhhÁÁÁÁÁÁÁÁÁhhÁhhhÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhhÁhÁÁÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁhÁhhÁÁÁhÁÁÁhhhhÁÁÁÁÁÁÁÁÁhhhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhhÁÁÁÁhhÁhÁÁÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁhhÁÁhhÁhÁÁÁhÁÁÁhhhÁÁhÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁhhÁhÁÁÁhhÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁhÁhÁhÁÁÁhhhhhÁÁÃÙ÷üüúúúúúúúüþó÷÷óó÷óß}!            ! !        ;;@@;;#    =‘èüüýüüýýÿýüüüüüüüüüõÙÂÁÁÁÁÁÄÁÁÁÁÁÁÁÄÁÁÁÁÄÁÄÄÄÄÄÁÄÄÁÁÁÁÄÄÄÄÄÄÄÄÄÁNSNSSNSNNNNSNNSSSSNNNNNNSNSSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNLNNNLLNNNLLLNLNNNNLLLLLNNLNLNLLNLLNNLLNNLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLL.LLLL,LLL.,,.L..LL,,,.,,,,LLL.,,,,,L,,LL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÄÁÁÄÁÄÁÄÁÁÄÁÁÄÁÁÄÁÁÁÁÁÁÁÄÁÁÁÄÁÁÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁhÁÁhhÁhhÁÁhhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁhhÁÁhhhhÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁhÁhhÁÁhÁhÁhhÁÁhhÁhÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁhhÁhÁÁhhhÁÁÁÁÁÁÁhÁÁhhhÁÁÁÁhÁhhÁhÁÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁhÁhhÁÁhÁhhÁhhÁhhhÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁhhhÁÁhÁhÁhhÁÁhhhÁÁÁÁÁÁÁÁÁhÁhÁhhhÁhÁhhÁhhhÁhÁÁÁÁÁÁÁÁhhÁÁhÁhÁÁhhÁhÆÙ÷úúüüüüüúúýýó÷÷ó÷óóÙs  !      ! 9[‚ÂËËÎÎÎËËÄ•_;    ! !    [ÂËÏñóúúóòáÎÄ�#   ##99;9  ;#   ####;# 9#;#99# 999;9##  •ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄY @ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ;#•ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[  !  $æüüüüüüüþýüüüüüüüüüõÙÂÁÁÁÁÁÁÄÁÁÁÁÄÁÁÁÄÄÄÁÁÁÁÁÁÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÁÄÄNSSSSSNSNNNNNSSSSNSNSNNSNSSNNNNNSNNSNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNLNNNNNNNNNNNLLLLLLNNNLLLNLLLNLNNLLLLNLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLLL,LLLLLLLLL.LLL,,,,,,LLLLLL,,,,L,LL.,,,L.,,L,,,,,.,,,.,,,,,,,,,,,,,.,.,,,,,,,,,,,,,,,,,,,,,,-\ÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÁÄÄÄÄÄÄÁÄÄÁÄÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhhÁÁÁÁÁÁhÁÁÁÁhhÁÁÁÁÁhhhhhÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁhhhhÁÁÁÁhhhÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁhhhhhhhhÁÁÁÁÁÁhÁÁÁÁÁhhhhhhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhhhhhÁÁhÁÁÁÁÁÁhÁÁÁÁhhhhhhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÆàúüúüüúüúúúýüóó÷ó÷ó÷Ùs            9Y–ÏóúýÿÿÿÿÿÿÿÿÿþüóçÂ[;  !  ;…çúþÿÿÿÿÿÿÿÿÿÿÿüòÈY   „òóóóóð[ [ÂçóóóóñÆ[#  –óóóóóÏ@ ‚òóóóóóð[ •òóóóóóð@@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ    }àüüüüýüüþýüüüüüüüüü÷ÙÆÁÁÁÁÁÁÁÁÁÄÁÁÄÄÄÁÄÄÁÁÁÁÁÄÁÁÄÄÄÁÄÁÄÄÄÄÄÁÄÁÄÄNNSSSSNNNNNNNSSSNNSNSNNSNNSNNNNSNNNNSNNNNNNNNNNNNNNNNNNNNNNSNNNNNNLNNLNNLNNNNNNNNNNNNLLNNNNNNLLLLLNNNNLNNLNLLLLNNLLLLNLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL,LLLLLL,.,,,,LLLL,L,L,,L.LL,,,LL,,,,,.LL,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-W¾ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÁÁÄÄÄÄÄÄÄÄÄÁÄÄÁÄÁÁÄÄÁÄÁÁÄÄÁÁÁÁÁÄÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁhhÁÁÁÁÁÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhhÁhhÁÁÁÁÁÁÁÁÁÁÁhhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁhhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁhhÁÆàúüüúüüúüüúýü÷ó÷ó÷óóÙs            YÃÑüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýçÄ[   ;ÂñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎ[   Âþÿÿÿÿü� aÏýÿÿÿÿÿÿÿÿþá‚  ÈÿÿÿÿÿòYYñÿÿÿÿÿþÎ#YòÿÿÿÿÿÿÎ @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ wàüýýüüýýþþüüüüüüüüü÷ÙÃÁÁÁÁÁÄÁÁÁÄÁÁÁÁÁÁÄÁÄÄÄÄÄÄÄÁÄÁÄÄÄÄÁÄÄÄÄÄÁÁÄÁSSNSSSSNNSNNNSSSSNNNSSSNNNSNSNSNNNNNSNNNNSNNSNNNNNNNNNNNSNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNNNNNLNNNNLLLNNNNNLNLNLNNLLLLNLNLLNLLLLLLLLNNLNNLLLLNLLLLLLLLL.LLLLLLLLLLLLLLLLL,LLL,,LLLLLL,LLL,,LL,LL,L,L,,L,,..L,L,LL,,L,,,,,,LLLL,,,,,,,,,,,,,,,,,,,,,,,,,,/UgÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÁÄÁÁÄÄÁÁÄÄÁÁÄÁÁÁÁÁÁÁÁÁÄÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁ•ÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÆàúüüüüúüüüüþü÷ó÷÷ó÷òÓo !   ! ! !    ! YÈóþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎ[! !!! !! !�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Ã; !  Âþÿÿÿÿü� 9ÆúÿÿÿÿÿÿÿÿÿÿÿÿüË# ÈÿÿÿÿÿòY Âýÿÿÿÿÿü‚ Ëþÿÿÿÿÿú[ @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   !}ÚüýýýüýýþþüüüüüüüüüúàÃÁÁÁÁÄÁÁÁÁÁÁÄÄÄÁÁÄÁÁÄÄÄÁÁÄÄÄÄÁÁÄÄÄÄÁÄÁÄÁÄÁÁˆˆSSSNNNSSSSSNNSNNNNSSSNNNSSSSSSNNNSSNNNNSNSSNSNNNNNNNNNNSSSNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNLLNNNNNLNNLLLLNNNNLLLNNNNNLNLNNNLLLNNNNLLNLLNLLLLLLNLNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLLLLLLL,LLLLLL.,LLLLLLL,LLL,.,.L.LL,L.,,,L,,,,LLLLLL,,,,,,,,,,,,,,,,,,,,,,,.,.MgÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÁÄÁÄÄÁÁÄÄÁÁÁÁÄÄÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhdcdddgdddgdggggggfggfgaggfggfggddgggeddgffggfggegggggccddcdccccdcdcdddcdddddcccddddddcccccdcccddcdddddddddcccddddddddcddddcccdddddddcggggggggggggcggggggggggggggggggggggggggcgdgddddddggghÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÊàúüüüúüüüúúýú÷ó÷ó÷óòÒl           !  !!  @ÆóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüË[  #ÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÑY Âþÿÿÿÿü�;ÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÏ@ ÈÿÿÿÿÿòY@çÿÿÿÿÿÿá@�÷ÿÿÿÿÿÿÄ  @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_ [òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pØúüüüýüüþþüüüüüüüüüúàÆÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÄÄÁÄÄÁÁÄÁÄÁÄÄÄÄÄÄÄÁÄÄÄÄÁÄÄÄSSˆSSNSSSSˆSSSSSSNNSSSSSSSNNSNSSNSSNSNNNNSSSSSSNSNNNSNNNSNNSSNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNLNNNNNNLNNNLNNLLNLNNLLNNLNNNNNNNLLLNLLNNLLNNLNNLLNLLLLLLLL,LLLLLLLLLLLLL.LLL.LLLLLLLLLLLLLLL,LLLL,LLLLLLLL,,LLLL.LLLL,,,L,L,L.,LL.LLL,L,,,,,L,,,,,,,,,,,,,,.,/WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÁÁÁhÁÁÁhÁhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhggghghghghdhghhghdghhdddgggdddhgdddddhdddddddddddddddddddddgddgddddddddccb++20002+03+003000+020200020000000+0+0++&+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+bccddcccddddddddddddddghddggdddddhddddddddddgddddddddddddddddÇæüüúüüüüüûúþúóóó÷÷óò§m           !       �ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÂ;    ;Îýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð_  Âþÿÿÿÿü�#ËþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ; ÈÿÿÿÿÿòY‚úÿÿÿÿÿþ ;Ñÿÿÿÿÿÿñ@ @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ    pØúýüüýüüþþüüüüüüüüüüà–hhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁÁhhÁhhhhhhhhÁˆSSSNSSSNSˆSSˆSSˆSNˆSNSSNSNSNNSSSSSNSSNNSSSSSSSSSNSSNNNSSNNSSSNNNNNNNNNNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLNNNNNLNNNLLNNNNNNNNNNNNNLNNLLNNNNNLLLLLLLLLNLLLNLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLL,L.LLLLLLL.LLLLLLLLLLLLL.LLLL,,LLLLL,L,L,.,.LL,,L,,,,,,,L,,,,,,UgÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ"""""""""""""""""+000000202+02002230000020000000+0000+++&&&&&&&&&&&&&+++&(&&&&(+&(++++&(++&(&&&&&&&&&&&&&((&&&((&&&&&&&&&&&&(&&&&&&&&&++&++&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&�æüüüüüúüüúüþú÷óó÷ó÷ò§l          !!       ;ÈüÿÿÿÿÿÿÿÿÿÿÿÿÿþüüúúúúüþÿÿÿÿÿÿÿÿÿÿÿÿÿþÑ_!   ! @Ïþÿÿÿÿÿÿÿÿÿÿýúóóóóúüÿÿÿÿÿÿÿÿÿÿÿò�   Âþÿÿÿÿü� ÂýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÈ  ÈÿÿÿÿÿòY#ÏÿÿÿÿÿÿñY…üÿÿÿÿÿý•@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ vÕúüýýüýýþþüüüüüüüüüúà�""""""""""""""""""""""""""SSNSSNˆˆSNSSSSˆˆˆSSˆSSSSSSSSNSNSNSSNSSNSSSSNSNSSNNNNSSSSSNSSSSNSSNNSSNNNSSNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNLNNLLNNNNLNNNNNLNNNNLNNLLLNLNLLNLLLNLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.L,LLLLL,LLLLLLL,L,L,,L,LL,,..,LL,,,,,,,,,,LMbÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ+000002000020202020000200000200000+00222O22222222222222222222222222222222222223*2222022+22222+3+++0002++0++++++++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&�æüüûüüüüüüüþú÷óó÷ó÷ò§o  !        ! !      [áþÿÿÿÿÿÿÿÿÿÿþ÷áË‚_[ZY[�•ÈÏòþÿÿÿÿÿÿÿÿÿÿÿó–!  ! ;ÏþÿÿÿÿÿÿÿÿþñË„[@;;;YfÄáýÿÿÿÿÿÿÿÿÿò_  Âþÿÿÿÿü�[òÿÿÿÿÿÿÿýñÏÏðýÿÿÿÿÿÿÿú� ÈÿÿÿÿÿòY_óÿÿÿÿÿþË#@ðÿÿÿÿÿÿÑ# ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÓúüýýüýýþþüüüüüüüüüüà�SSˆSSˆˆˆSSSˆSSSˆˆSSˆˆˆNNˆSSNNNSˆSSSSSSNSNNNSSSSNNSNNNNNSSNSNSNSSNNNSNNSNSNNNNNSSNNNNNNNNNNNSNNNNNNNNNSNNNSNNNNNNNNLNNNNNNNNLNNNNNNNNNLNNLLLNNNNLLNNNNNLLNNLNLNNLLLLNNNNLLLLLNLLLNLLLLLLLLLNLLLLNLLLNLLL,LLLLLLLLLLLLLLLLLLLLL,L,LLLLLLLL,LL,LLLLLLLLL,,,LLLL,,,,,L,,,LL..WhÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄh  00200000000000000000000000000000000002444434433333333333333333333333333333233322322230220000002020020020+0++++0++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&�æüüüüüüüüüúþúó÷ó÷ó÷ò§p   !     !      _ñÿÿÿÿÿÿÿÿÿÿúÑ‚B9!  ! 9@_ËòþÿÿÿÿÿÿÿÿÿüÆ@ ! 9Ëþÿÿÿÿÿÿÿþð„@ !  #_ÎüÿÿÿÿÿÿÿÿðY  Âþÿÿÿÿü�  Èþÿÿÿÿÿþð�; ;_áþÿÿÿÿÿÿÎ  ÈÿÿÿÿÿòY Èþÿÿÿÿÿú� Ãþÿÿÿÿÿü�;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ vÕúýüüýüüþþüüüüüýüüüüà�ˆSˆNSˆˆˆSSSˆSSˆˆSSˆˆˆSSSˆˆˆˆSNSˆNSˆSSNNNSSNˆSSSSSSNNNNNNNSSSSSSNNNSSNSNSSNNSSNSSNNNNSSNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNLLLLLLNNNNNNNLLNNLNNLNNLLNNNLNLLLNNLLLLLNLLLLLLLLLNLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,L,,,LLLLLLL,,LLLLLLLLL,LLLLL,L,LLL,,,,,L.,.McÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄh +0203\VVV\VVVVVUVVVVVVVVVUUVUUUUUUUV3244443344333333333333333333333333333333332222232022022000000000000000+++0+0+++++++++*3M::::033::3:3:03:2:0333M:200000+&&&& �æüüüüüüüüüüþúó÷÷óóóò§l           ! !! !  �òÿÿÿÿÿÿÿÿÿóÈ[   ! @–çþÿÿÿÿÿÿÿÿþÎ@!! !–üÿÿÿÿÿÿÿóÂ; !  !!‚çþÿÿÿÿÿÿÿÏ;   Âþÿÿÿÿü�  @òÿÿÿÿÿÿÏ@#ËþÿÿÿÿÿúY ÈÿÿÿÿÿòYYñÿÿÿÿÿÿÏ9YóÿÿÿÿÿÿË ;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕúýüüýýýþþüüüüüüüüüüà�ˆˆˆˆSˆSSSSˆˆˆSˆˆˆˆˆSSSSSˆSˆSSˆSSSSSSSSˆSSSSSSSSSSSSNNNNNNNSSSSSNNSSNNSNSSSNNSSSNSNNNSSSNNNNNNNNNNSNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNLNNNNNNNNLLNNLNNLNNNNNNNNNNNLLNNNNLLLNLLLLNNLLNLNLLLLLLLNLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LL,,L.LLLLLLLLLLL,,LLLL,L,L,,.,L/WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ""0200Äú÷úúüúú÷÷÷óóóó÷ó÷óóòòòòòòòòòòññÍ243433333333333333333333333333333333232332*202M22MM00200000000000000000++0+0++++++++3ÆÈÉÆÈÈÆÆÆÆÉÆÃÃÆÃÄÅÃÂÅÂÃÃÛÃÅ–Å”0&&&&"" �âüüüüüüüüüüþúóó÷÷÷óòÒo     ! !     ! !  !  !!   !    !!�óÿÿÿÿÿÿÿÿúËY! ! ! ! !@–ñþÿÿÿÿÿÿÿçZ  !![òÿÿÿÿÿÿÿò�    @Ïþÿÿÿÿÿÿý   Âþÿÿÿÿü� �úÿÿÿÿÿóY#áÿÿÿÿÿþ… ÈÿÿÿÿÿòY  –üÿÿÿÿÿü„  ÎÿÿÿÿÿÿóY@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÓúüýýüýýþþüüýüüüüüüúà�ˆˆˆˆˆˆˆSSSˆˆˆˆSˆˆSSSSSSˆˆˆSSSˆˆSNSSSˆˆˆSˆSSSSNSSSNSSSNNSˆSNNSNNNNSNNNSSNNSSSSSSNNNNNNNSSNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSNNNNNNNNNNNNNNLLLNNNNNLNNNNNLNLNNLNNNNNNNNLLNLNNNLNNNLLLLNNNLLLNLLLLLLNNLLLNNLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLL,LLLLLLL,LLL,LLLLLLLLL,,LL.PgÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ""0020Äüúüýýüúúúúúúúúúúúú÷÷÷÷÷÷÷ò÷òòòòÏ2442QQQQQQQQQQQQQQQQQQQQQQQUQQQQQQQQQQQQ33222Q3Q33QQ3U3333333U333333333333333333*+++3ÈÉÉÈÉÉÉÉÉÌÉÉÉÆÆÆÅÆ�ÆÆÅÆÆÅÃÅÃÃÃÖ0&&&&"�æüüüüüüüüüüþúóó÷÷óóò§o     !  !    ! !! !! !!!_òÿÿÿÿÿÿÿþð‚  !  ! !! ! YÈüÿÿÿÿÿç_   ;Îþÿÿÿÿÿÿç[ !!  !! ;Ëþÿÿÿÿÿÿò[  Âþÿÿÿÿü�ÈþÿÿÿÿÿÆ  _ýÿÿÿÿÿÏ ÈÿÿÿÿÿòY ;Ïÿÿÿÿÿÿð@�úÿÿÿÿÿþà   @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú� [òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ    !vÕúüýýýýýþþüüüüüüüüüüà�""""ˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆSSSSSSSSˆˆˆSSˆSSˆSSˆSˆˆSˆSSSNNSSSSNSSSSSSSSˆSSSSSSSNNNSNNNSˆSNNNNNNNNNNSNNSSNSNSSSNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLNNLNNNNNNNNNLLLNNNNLLNNNNNNNLNLNLLLLLLLLNNLLNLLLNLLLNNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLL,LLLLLLLLLLLLLLL./bÁÄÄÄÄÄÄÄÄÄÄÄÄÄh""""2020Äúüýüüúúú÷ó÷úúúúúú÷÷÷÷÷÷÷÷óóòòòòÏ2444Ðñðññðçñâèâèâèââèççââââââèâââàââàßßß�322<ÞßßÙÙÞÞÞÞÞÞÞÞ××Ì××ÌÌ××Þ××ÊÊÊÌÌÊÊÌÊÊ`+++3ÌÊÉÊÊÊÒÇÊÇÒÊÇÇžÇÇžÇǞǞžœœžžœ��˜0&&&&""�âüüüüüüüüüüþú÷÷ó÷÷óò§l       !    !      YçÿÿÿÿÿÿÿýÏ@   !   !! 9„òÿÿþáY! ! ‚üÿÿÿÿÿÿò_    ;ÎþÿÿÿÿÿþË   Âþÿÿÿÿü�  Ïÿÿÿÿÿþ_;ðÿÿÿÿÿð  ÈÿÿÿÿÿòY�úÿÿÿÿÿþà #áÿÿÿÿÿÿð;@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕúýüýýýýþþüüüüüüüüüüà�ˆˆˆˆSSˆSSˆˆˆˆˆˆˆˆˆˆˆˆSSˆˆˆSSSSSˆˆˆˆˆSSˆˆSSSSSSˆSNSSNNNSSˆˆˆˆSˆSSˆSSSSSSSNNSSSSNNSNSNNNSSNSNSNNNSSNSSNSSNSNNNNNSSNNNNNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNLNNLLNNNNNNNNLNLNLNNNNLLLLLNNNNNLNLNLLLLLNLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLLLLL,LLLLLL/WhÄÄÄÄÄÄÄÄÄÄÄÄh""TT0200Äüüúúúúúúú÷úúú÷÷÷÷÷÷÷÷÷÷÷÷óòóóòòÏ4444ÑòóòñíëëëêêêêêêêêìëêêêêãêêããêêåããååÝ“322<ÝÝÝÝÝÝÝÝÝÝÝÜÜÝÜÜÜÛÜÜÜÛÛÛÛÛÛ°Û°°°°°°y+++<°°«°°¨«««««««¨¦¦¦¦¦¦¦¦¨¦¨¦¦¦¦¦£¢<&&&&"""" �æüüüüüüüüüúþú÷÷óóóóò§l   !!           ! !    !!;ÏÿÿÿÿÿÿÿýÈ;! ! ! ! ! !!  !_áúÎB !!9Ïÿÿÿÿÿÿú‚    !    @çÿÿÿÿÿÿò[  Âþÿÿÿÿü�    ÏÿÿÿÿÿóY!Ïÿÿÿÿÿð! ÈÿÿÿÿÿòY!Îþÿÿÿÿÿó[…üÿÿÿÿÿý„;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕúýýýýýýþþüüüüüüüüüüà�"""ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSSˆˆˆSˆˆˆˆˆˆˆˆSSˆˆSˆSSˆˆˆSSSNˆSˆˆˆˆSSSSSSSSSSNSSSSˆSSSˆˆNNSSSSSNNNNNSSSNSSSSNSNSNSSSNNNNNSNNNSNNNSNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNLNNLLLNNNLNNNNLNLNLNLNNLLLNLNLNLLLLNLLNLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLMgÁÄÄÄÄÄÄÄÄÄÄÁ"""""""T+200Äüüúúúúúú÷óúúú÷ó÷÷÷÷÷÷÷÷÷ó÷÷÷÷òòÑO442ÏòòòñëëëëêæêãææãæëêêêêêêããæãäãäääääÚ�323<ØÝÚÝÚÚÚÝÝÝÝÔÔÖÝÝÔÔØÔÔ­­­Ô­­­­­­­­¨¨a+++<««¨¨¨¨¥¥¨¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥£¥¢£‘¢¤:&&&&"�æüüüüüüüüüüþú÷ó÷÷óóò§l     !  ! !!  !!! !!!  !!! !! !ÃýÿÿÿÿÿÿüÂ9! !   ! !! ! ! @�@  !_÷ÿÿÿÿÿþÈ!     !!  �úÿÿÿÿÿþà !Âþÿÿÿÿü� „áòüþÿð;9Ïÿÿÿÿÿð9  ÈÿÿÿÿÿòY_óÿÿÿÿÿÿÎ9Yðÿÿÿÿÿÿá9 ;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÕúüýýýýýþþüýüüüüüüüûà�ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆSˆˆˆˆˆˆˆˆSSSSˆSSSˆSˆˆˆˆSˆˆˆˆˆSˆSˆSSSNSˆSSSSSSSSSSSSSˆˆˆNSNSNSSSSSSNSSSSSNNSSSSNSNNNSSNNSSSNSNNNNNNNNNNNNNNSNNNNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNLLLNNLNNNNNLNNNLNLLNLLLNLNNNLLNNNNLLLNLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLL/WÁÄÄÄÄÄÄÄÄÄÁ"""""""""+002Äúúúúúúúúúó÷÷÷÷÷÷÷÷÷÷÷÷÷óòòóóòòóÑ4442ÏòòññëëëëèæêãææãêêææêêêëêãäàßääääÚäÚ�323<ØÝÚÝÚÙÙÝÝÝÝÖÔÔØÓÔÔÔÔÔÔÔÓÓÓ­­Ô­­­¬ÒÒa+++<«®¨§Ò¨¨¨¨¨¥¥™œš¥¥¥¥¥¥™™š¥¥¡¥¡¥¤†0&&&&""""""�æüüüüüüüüüüþú÷÷÷ó÷óò§o !  !  !  !  ! ! !  !!!! !  ! �úÿÿÿÿÿÿýÃ9!!!  !! ! ! !! !  !!!  !!!!!  !ÈþÿÿÿÿÿòZ!  !!! !   9Ëÿÿÿÿÿÿá;   !Âþÿÿÿÿü�  ! @‚ÆÏË9;ñÿÿÿÿÿç ÈÿÿÿÿÿòY Ãýÿÿÿÿÿú‚Æþÿÿÿÿÿú_ ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÕúýýýýýýþþüüüüüüüüüüà�‰‰ˆ‰ˆˆˆˆ‰ˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆSˆSˆˆˆSˆˆˆˆˆˆˆSSSSSSˆSSSSˆˆˆSNSˆSˆSSSSSNSSSˆˆSˆSˆˆˆSSSSSSSˆˆˆSˆSSNSSSSSSSSSNNSNNSNNNSSNNNSSNNSSSNNSNNNNNNNNNNNNSSNNNNSNNNNNNNNNNNSNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNLNNLNNNNNNNLLLLLLLNLLNNNNNLLNNNNLNNLLLLLLNNNNNNNNLLLLLLNNNNLNLLLLLLLLLLLLLLL/PgÄÄÄÄÄÄÄÄÁ"""""""""""T"""TT"""+000Äúüüú÷óó÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óóòòò÷óÏ4442ÐòòòñëëëëëêãæàãêêèææëêêêêêãààãããÚÚÝÚ�322<ØÝÚÝÚÙ×ÚÚÝÚÝÛØ××ÔÝÛÔÔÔ­ÓÓÔ­­Û­­­­ÒÒx+++<¨°°§ž¨¨¨¨¨§¥§ž¥¥¥¥¥¥¥™™™¥¢¥¥¥¢¤†0&&&&:""""""T""T"�æüüüüüüüüüüþúó÷÷ó÷÷ò§o               ! !  ! !  !!!@ÏÿÿÿÿÿÿþÈ9! !! !! ! !!! !   ! ! ! !;áÿÿÿÿÿÿÂ!  ! ! !  !  _úÿÿÿÿÿó_  !Âþÿÿÿÿü�   ## fþÿÿÿÿÿÎ ÈÿÿÿÿÿòYYçÿÿÿÿÿÿòúÿÿÿÿÿþË @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÓúýýýýýýþþýüüüüüüüüüà�‰‰ˆˆ‰ˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆSSSˆˆˆˆˆˆSˆˆˆˆˆSˆˆSˆˆSˆSSˆˆˆSSSSSSSSSˆSSˆˆˆˆˆˆˆSSSSSˆSˆSSSSSSˆˆSSˆSSSSSSSSSSSSNSNNNSSNNNNSNNSSNNSNSSSNNNSSNNNNNNSNNNNNNNNNNNNNSSNSNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNLNLLNNLLLLNNNNNLLNLNNNLNNNNNLNLNNNLLLLLNNLLNNLNNNNNNLNLLLLNLNNLLLLLNNNLLNLLLLLLLLPbÁÄÄÄÄÄÄÁ"TT"""""""""""""""""""TTTTTT"T:0020Äüúú÷÷÷÷óó÷úóó÷ó÷÷÷÷÷÷ó÷úóòòóóóóÏ4444ÐññññëëëëëêàßßßàââèèæèææææàßßàßÙÙßÙÙ�323<ÙÙÙ×ÙÙÙ×ÙÙ××Ó××××××××Ò×ÊÓÊÓÒÊÒÊÊÒÇÒ^+0+3ž°°¨ÇǞǞžœžœœœ™™™™™™™™™˜†™˜˜˜††0&&&&""TTTT"TT""TT�æüüüüüüüüüüþúó÷ó÷÷÷ò¬o       !       !    ! !!!   ! !!! !!!–üÿÿÿÿÿÿÏ;! !! !!!  !!!!!  !  !! !  ! !![òÿÿÿÿÿ÷[ ! !!!  ! ! 9Ïÿÿÿÿÿý– Âþÿÿÿÿü�    Bñÿÿÿÿÿþ„ ÈÿÿÿÿÿòY …üÿÿÿÿÿÿÿÿÿÿÿÿòY@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÓúýýýýýýþþýüýýüüüüüüà�""""""""""""""""""""""""""""""""""""""""""ˆ‰ˆˆˆˆˆˆ‰ˆ‰ˆ‰ˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSSSˆˆˆSSˆˆˆˆˆSˆSSSSSSˆSˆSSˆSSˆSNˆSˆˆˆSˆSSˆSSSSNSSSSNSSˆSSNNNNSNSSNSSSSSNNSNSNSNSNSSNNNNNNSNNNSNNNSSNNNNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNLNNNNLNNNNNNNNNNNNNNNNNNLLLNNNNNLNNLNNNNNLNLLLLNLNLNLLNLLLLLNNLLLNLNLLLL.WhÄÄÄÄÄÁTT"TT"TT"T""TTTT"""""""TTTTTTTTTTTTT+020Äúúúú÷ú÷÷÷÷÷úúúúú÷÷÷÷÷÷÷÷óòòòòòòá444OÏñòðñëëëëëìêàßßßââèèæèæàââààààßßÙÙßÙ�223<ÙÙß×××ÙÙ×××××××Ó××Ó×Ê×ÊÒÓÒÊÊÒÊÊÒÇÒÇ^+0+3ž°°«žžžžœœ™œœ™™™™™™™™™˜™™˜˜†˜†††0&&&&:TTTTTTTTTTTT�âüüüüüüüüüüþú÷ó÷ó÷óò§l     !      ! ! !!    !!!!  ! !!  !! !! !BñÿÿÿÿÿÿòZ! !!!!! !  ! !!!! ! !!!!!  !! ‚üÿÿÿÿÿá@ !!! ! !! !!!! ! ! ÂþÿÿÿÿþÈ!  !Ãþÿÿÿÿü�   YÑÿÿÿÿÿÿóY ÈÿÿÿÿÿòY ;Ïÿÿÿÿÿÿÿÿÿÿÿþ @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_ YòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  vÕûýýýýýýþþüüüüüýüüüüà�TTTT""TT"TTTTTTTTTTTTTTT"TTTTTTT""TTT"TTTT‰‰ˆ‰ˆˆˆ‰‰‰‰ˆˆˆˆ‰ˆˆˆˆ‰ˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆSSSSˆˆˆSˆSˆˆˆˆSˆˆˆSSSˆSˆSSSˆˆSSˆSSSˆSSSSNSˆSˆSSSˆSSNNSSSSSSSNSSSNNSNNSSSSNSNSSSNNNSSSNNNNSSSNSNNSNSNSSNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNLLNNNNLNLNNNNNNNNLNNNNNLLLNLLNLLLLLNLLLLNNLLLLLNLLMcÁÄÄÄÁTTTTTTTTTTTTTTTTTTTTTTTTTTTT"""T"TT"T""T"""T"""""""""""T"""T""""""UXXXXXXXXXXXU0000Äüüúúóóó÷÷÷÷÷÷úúú÷óó÷óòóóòòòóòòòÏO44OÍñòðñëëëëëëêêàßßââèââßßßßßâââßßßßÙßÙ�323QÞÙÙÙ××ÓÙ×Ó×××ÊÓÊÓÊÊ×Ê×ÊÊÒÇÇÊÊÊÇÊÇÇž^+0+3§°¨«¨™œ™™™œ™™™™™™˜™™™™˜˜™˜˜†††††0&&&&UXXXXXXXXXXXX""""""""�æüüüüüüüüüüþú÷ó÷ó÷óò§l !   ! ! ! ! ! ! ! !!  ! ! ! !! ! !! ! Âýÿÿÿÿÿü„!!! !!!!!!!!!!! !!! ! ! ! !!!!!–þÿÿÿÿÿË !  !   !! ! !  ! �úÿÿÿÿÿÏ9 Ãþÿÿÿÿü�!      _ñÿÿÿÿÿÿþË   ÈÿÿÿÿÿòY�óÿÿÿÿÿÿÿÿÿÿç@@òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà   ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_ [òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÕûýýýýýýþþýüýýüýüüüüà�TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT‰‰ˆˆ‰‰ˆ‰‰‰ˆ‰ˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆSSSSSSSSˆSˆSSˆˆSSˆˆSSˆNSSˆSNSSSSNSNSSˆSˆSSNNNSNSSNSSSSSSNNNSSNSSSSNNNNNSNSNSNNNSSNSSSNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNLNNNNNLNNNNLNNNNNNNNLLNLNLLLNLLLNNNLNNNNNNLNNNLLNLNLLL/bhÄÄhUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXUVXVXXXXUUXXXXXXXUUUUTTTUTTTTTTTTTTTTTTTTTTTTTTTTUTTTT:TTT:TTTTTTTWXXXXXXXXXXXW+000Äüüüüú÷÷ú÷÷÷ó÷÷÷÷óòóòóóóòòóòóòòðÏ4442ÎðððñëëöëëëìëêæßââââàßâßßââßâßßßßÞÙÙ�223Q××Þ×××Ó×××××ÓÓ×ÓÓÊÊÇÊÇÊÇÇÇÊÇÇÇÇÇÇžž^+++3𰍥°¥œœœ™œœ™™˜™˜™˜™˜†˜†˜�††††††0&&&&WXXXXXXXXXXXWT"TTTTTTTTTTTTT:T:TTTT:TT:TTTTTTTUT:TTUTTTTTTTTTTT:T�æüüüüüüüüüüþúó÷ó÷ó÷ò§l         !   !   ! !!  !!! !! ! ! ! !!!!!!!@çÿÿÿÿÿÿÏ;!! ! ! ! !!!!!!!!! !! !!!!!!  ! ! !! !9ÆþÿÿÿÿþÂ!!  ! !   !!!B÷ÿÿÿÿÿç;  Âþÿÿÿÿü�   !   @Ãóÿÿÿÿÿÿÿó[ ÈÿÿÿÿÿòY Ëþÿÿÿÿÿÿÿÿü„ @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûýýýýýýþþýýüüüüüüüüà‚XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX‰‰‰ˆ‰‰‰½ˆ‰‰‰‰ˆˆ‰‰‰ˆˆ‰ˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆSˆˆˆˆˆˆSˆˆSSSSˆˆˆSˆˆSˆSSˆˆˆSSSˆSSˆˆSˆSSSSSSSˆSSSNSSSˆSSSSSSSSNSSSSNNNSNNSSNSNSNSSSNSSNNSNSSNNNNNNNNNNNNNNNSNNNNSNNNSNNNNNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLLNLNNNLNNLNNLNNNLLLNLNNNNNLLLLPgÁhHW·W·····W·WK····W···W·WKW·WWKJWWJWJWWJWWJJKW·JWJJWJJWJJJJJJJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHHHHHHHHHHHHHHGGFFFFJKKKKKKKKKKKK0000Äüüýýýúóóóó÷÷óóóóòóóóóóóóóóóóòññÐ4444ÏðññðööëëëëëëëêæââßßßàßßßßßßßßàßßÞ×Þ�2233Ì×××Ê××Ê×Ê××Ê×ÊÊÊÊÊÊÇÊÇÊÇÊÇÇÇÊÇÇÇÇÇ^00+3š®§™««™œ™›™™˜™˜™™˜˜†˜†˜††††††††{0&&&&JKKKKKKKKKKKHFFFFFFHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHJJHHJJJJJJJJJJJJ�âüüüüüüüüüüþúó÷ó÷ó÷ò§o  !!!! !! !   !!!! !!   ! !!!!!!!!!!! !! !‚üÿÿÿÿÿú_!!! !!  !!!!!!!  !!! ! !!!!!!   !! ! !Èþÿÿÿÿü‚!! !!!! ! ! ! ! ! ;óÿÿÿÿÿñ; !Âþÿÿÿÿü�!      !_áþÿÿÿÿÿÿÿü–  ÈÿÿÿÿÿòY[òÿÿÿÿÿÿÿÿÎ#@òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  oÓûýýýýýýþþýüüüüüüüüüà„···K·······J···K·······K·················K‰½½‰‰‰‰‰‰ˆ‰‰‰ˆ‰‰‰‰‰½‰‰‰‰‰ˆˆˆˆ‰ˆˆ‰ˆˆˆˆ‰ˆˆˆˆˆˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆˆˆˆSˆˆSSSSSˆSˆˆˆˆˆSSSSSSˆSˆSSSˆˆSSˆSSSSˆˆSSSSNSNSSNSˆSSSNSNSNSSNNNSNSSNSSSSNNNSSSSSNSNSSNNNSNNNNSNNSNNSNNNNNNNNNNNNNSNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNLNNNNNNNNNNNNLNNNLNNNNNNNLNNNLLL/bcJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKJKKKKKKKJKJJJJKJJJJJJKJKJJJJJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHGHGGFFFFFFJKKKKKKKKKKKK0220ÄüüýýýüúúúúóúúúúóóóóóóóóúúóúóóóóÑ2444ÑòóòòöëëëëëëëêêêêæààààààÚàààÚààààäÚÙ�323<ØÙØØØÙØØØØØØØØØÓÓØÓØÓÓÒÒÓÓÒÒÒÒÒÒÒÒ§^0003§«¨§¨®¦ššššššš§š™™™™™™™™™™™™™‘�:&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüüüüüüüýüüþú÷ó÷ó÷óò§l !  !   !!!!!!  ! !!!!!!!!! ! !!! !!! !!ÎÿÿÿÿÿÿÎ!!!!!!!!!!!!!!!!!! !!!!!!! !!  ! !  !! !Ëþÿÿÿÿü‚!!!!  !!!!! !! ! ! !;òÿÿÿÿÿòB! 9Ãþÿÿÿÿü‚   ! YÈ÷ÿÿÿÿÿÿÿÿýÆ  !ÈÿÿÿÿÿòY Ãþÿÿÿÿÿÿú_@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_ [òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýýýýýýþþýüüüýýüýüüàhKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKK½½½‰½‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰½‰‰½‰ˆˆ‰ˆˆ‰‰ˆˆˆˆ‰‰ˆ‰ˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆ‰‰ˆ‰ˆˆˆˆˆˆˆˆSSˆˆˆˆSˆˆˆSˆˆˆˆˆˆˆˆSˆˆˆˆˆSˆˆˆSSˆˆˆˆˆˆˆˆˆˆSSˆSSˆˆSSSˆSˆSˆSSSSSˆˆSSSNSNNNNSSˆˆˆNSSSˆSSNNNNNSSSNˆSNSNSSSSSSNSSNNSNNSNNNSNSNSSSNSSNNNNNNSNNNNNSNSNNNNNSNNNNNNNNNNNNSNNNNNNNNNNLNNNNNNLNNNNNNNNNNNNNNNNNLLNNNLNNNNNNNNNNNLNNLLMJKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKJKKKJKJKJKKKJKKKKKJJJJKJJJJJJJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFFJKKKKKKKKKKKK0200Äüýþþþüüüüüüüüúüúüüüüúúúüüóúóóú÷ÑO444Ñ÷÷ó÷ööëëíëëëëëëëëôòòòòñññññññññèèçè•223QâççççççâççççççâââáâáââßßßßâÚÝßÙßßßß�00+3×ÛØßßÔ®ÔÞÞÞßÞÞÞÞÞÌÌÌÌÞÌÌÌÌÌÌÌÌÌÉ3&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüüüüüüüüüüþú÷ó÷ó÷óò§l    ! !  !!!  ! !!! ! ! !!!!!! !!! !!!!!!!! !!Zñÿÿÿÿÿü�! ! !!!!! !! ! ! !!!!!!!!! !!!! !!! ! !!9Ëþÿÿÿÿü‚! ! !!!!!!! ! ! ! !  ;óÿÿÿÿÿò@! !Ãþÿÿÿÿý…!    9…òþÿÿÿÿÿÿÿÿüÈ; ÈÿÿÿÿÿòY _÷ÿÿÿÿÿÿç;@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýýýýýýþþýüüüýüüüüüàhKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³K³K³‰½½½‰‰‰‰ˆ‰ŒŒŠ‰‰‰‰‰‰‰½‰ˆ‰½‰‰‰‰ˆ‰‰ˆˆ‰‰‰‰‰‰ˆ‰ˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSˆˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆSSSSˆˆSSˆˆˆˆˆˆSSSˆˆSSSSSSSSSSSSSˆSSSˆNSSˆSNSSSSNSSSSSNNSSNSSNSNSNSNNNNSNNNNNNNNSSNSSSNNSNSSNNNSNNSSNSNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNLN/JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJKKJJKJKKJJJKJJJJJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK0200Äþýýýýüýüüüúüüüüüüýüüúúüüüüüüú÷÷ï4444Ñóóóóöööíöëëëëëëëëíõõôòôñòóòôéééééðñ•323QâçðñâèâææâçðèââßâàâççßààßßßÝÝßÚßßßß¾000<Ó°ØÏÏØ°°××ÙÞÏÞÓ××ÓÊ×ÎÎÌ×Ó×××ÌÍÎÇ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüýüüüüüüüüþúó÷óóó÷ò§l       !  ! ! !!   !!   ! !! ! !!!!!!!!!!! !!! !! !!!‚üÿÿÿÿÿç@! !!! ! !!!!!!! !!!!!!!!!!!  !!!!!!!! !!!!!!!!!9Èþÿÿÿÿý…!  !!!! !!! !!!!!@óÿÿÿÿÿñ;! ÃþÿÿÿÿþÃ!     !  YÎýÿÿÿÿÿÿÿÿÿóÂ9  ÈÿÿÿÿÿòY#Îÿÿÿÿÿÿÿý… ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûýýýýýýþþýýýüüýýüüüàhKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKK³KK³K³KK½½½½‰‰‰½‰Œcd¹µ¼¼µµ¶»¶¶¶‰‰‰‰ˆ‰‰‰‰‰‰‰‰‰‰‰‰ˆ‰ˆ‰‰ˆ‰‰‰ˆ‰‰‰ˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆ‰ˆ‰ˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆSˆˆˆSSˆSˆˆˆSSˆˆSˆˆˆˆˆSSˆˆSˆˆˆSˆSSˆˆSˆˆˆSˆSˆˆSSˆˆSSSSSNSSSNSSSNSSSSSSSSSSSSSSSSSSSSNNSNNNSNNSNSNSSNNSNNNNSNNNNSNNSNNSNNNSNNSNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNLNNLNNNNNNN/JKKKKKK·KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJKJJKKJKJKJKJKJKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFGFFFFJKKKKKKKKKKKK0202Äýýýýýýýýýüüüüüüüüüúüüúüüüüúóúóúï4444ïóóóóööööëëëëëëëëôòòòòòòñòòòòññññòðñ•322QçððòççççççðððççççççðïáááááÏØÚáÚáááá�0203ÞÛÙÑÑÏÙ«­ÞÏÏÐÏÏÏÏÏÏÎÍÍÎÎÎÞÎÎÎÍͧ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüýüüüüüüüüþúóóó÷÷÷ò§l    !  ! ! !!! !!!!! !!  !! !!!!!!  !! !!  !!! !!!!!!! !!!!ÆþÿÿÿÿþÈ!!!!!!!!!!! !!!!!!! ! !!!!!!!!!!!!!!!!!!!!!Ãþÿÿÿÿþà !!! !  !!! !!!!!!Zúÿÿÿÿÿç# !ÃþÿÿÿÿÿÎ!!!  !�ñþÿÿÿÿÿÿÿÿþá_!  ÈÿÿÿÿÿòY …üÿÿÿÿÿÿÿÿó_ ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÂ���d���������������•÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûýýýýýýþþýýýüüüüüýüàhKKKKKKKKKKKKKKKKKKKKK³KKKK³KKKKKKK³KK³KK³K¿½½½½½½½‰eccc»ºº¼¼¼¼¼¼¼¹‰½‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰ˆˆ‰‰ˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆSˆˆˆˆˆˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆSSˆˆˆˆˆˆˆSSˆˆˆˆSSˆˆˆSˆˆSSˆSSˆSSSSSNSSSSˆSSNSSˆSˆSSSSˆSˆSSSSSSSSSNSSSNSˆNNSSNSSSNSNSNSNNNNSSNSSNNNSSSNNNSSNNNNNNNNNNNNNNNNNNNSNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKJKKJJJJJJKJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHHGGGFFFFFFJKKKKKKKKKKKK0202Äýýþýýýýýüüüüüüüüýüüüüüüüüüüüúüúï444OÑ÷úóóëööëíëëëííëëôõóóóóòòòòòòòðòòðòò•223QçððððððððððððððððððððïïïïïÑàÚÑÚáÑÑÑ�000QÏÔßÑÑÑÑØ°ÙÑÑÑÑÐÐÐÐÐÑÐÐÐÐÍÍÍÍÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGHHHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âýüýüüüüüüüþúó÷óó÷óò§l  !   ! ! !  ! ! ! !! !  !!!! !!!!!!!! !! !!! !! !!!!!!9Ïÿÿÿÿÿü�!!! !!! !! !!!!!!!!!!!!!! ! !!!!! !!!!!  !!!!–ýÿÿÿÿÿÎ9!! !!! !! !!! !!! ! „üÿÿÿÿþÎ9! !ÃþÿÿÿÿÿñY!!   ! _ñÿÿÿÿÿÿÿÿþòÃ@    !ÈÿÿÿÿÿòY[òÿÿÿÿÿÿÿÿÿÿÏ;;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüüüüüüüüüüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýýýýýýþþýüüýýüýüüüàhKKKKKK³KKKKKKKKK³KKKKKKKKK³KK³³KKKKK³KK³K³¿½½½½‰½‰‰cccchÁÁÁÁÁ»»Á»¹‰½½‰½‰‰‰½½½‰‰‰‰‰‰‰‰‰‰½‰‰‰‰ˆ‰‰‰‰ˆ‰ˆ‰‰ˆ‰‰‰‰‰‰ˆˆˆˆ‰‰‰‰ˆˆˆˆ‰ˆˆˆˆˆ‰ˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSSˆˆˆˆˆˆSˆˆˆˆˆˆˆˆSSNSˆˆˆˆˆNSSSSSSSSˆSSSSSNSSSSSNSSSSNSSNNSSNNSSSSNSSSSSSSNNSSNNNNSNNNNNNSSNSSNNSSSSSSSNNNNSSSNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKJJKJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGFFFFEJKKKKKKKKKKKK0220ÄýýþýýþýýüüüúüüüüüüüüúüüúúúüüüúúÑO444á÷óóóëöëëëëëëíëëëíôòóóóòòòòóðòðððòðò•323QðððððððððððððððððððïðïïïÑïÑÚØÑÚÑÑÑÑ�0003ÏÔÙÑÑÑÑÏ­ÛÏÑÐÐÐÐÐÐÍÐÍÐÍÐÍÐÍÍÍÐÍÒ<&&&&JKKKKKKKKKKKGEFFFFFFGGGGGGHGGHJHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüüüüüüüüüüþúóó÷ó÷óò§l   !   !!  ! ! !! ! ! !  ! ! !!!! !!! !!!!!!! !!!!! !!!!!!!!!!@ñÿÿÿÿÿóB!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!�üÿÿÿÿÿñY!!! !!!! ! !!! ! !!!!ÈþÿÿÿÿþÆ! ! !Ãþÿÿÿÿÿü„!    YçÿÿÿÿÿÿÿÿúË[  ÈÿÿÿÿÿòY;Îþÿÿÿÿÿÿÿÿÿÿþ  @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÕûýýýýýýþþýüüýýýüüýüàhKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³³K³³³³³³K‰½‹‹½‰½ŒŒdccc¹¼¼ººººº»»¹‰½½½½½½‰½½½½‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰ˆ‰ˆ½‰‰‰‰‰‰ˆˆ‰‰‰ˆ‰ˆˆˆˆˆˆˆˆ‰ˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSSSSˆˆˆˆSSSˆˆˆˆˆˆˆˆSSSˆˆˆˆˆSSSSSSˆˆSSˆSSˆSNSNSSSNSSSSSSSSNSSSˆSˆSSSSNSˆSNSSSSNNSNSSSNNNNNNSNSNSNNNSNSSSSNSNSSSNSNNNNNNNNSNNNNSNNNNNNNNNNNNNNNNNNNNSNNNNN.JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKJKJKJJJJKJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHHGGGGFFFFFJKKKKKKKKKKKK0222Äýþþþýþýüýüýýüüüúüüüüüüüúúúúüüúúï4444Ñóóó÷ëöëëëíëëííêêéôòóóòòóòòóóóóòòòòð¾322QððððððððððððððððððïðïïïïïÑïÚÚïÙáÑÑÑ�2003ÞÛÙÑÑÐÑÑß°ÔÑÑÑÑÐÐÐÐÐÐÐÐÐÍÍÍÍÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHJHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýüüüüüüüüüþú÷÷÷ó÷óò§o !  !! !!! !! !!! !!! !!! !! !! ! !! !!!! ! !!! !!!!!! !!!!Z÷ÿÿÿÿÿç9!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!!!! !!Zñÿÿÿÿÿý‚!!!!!!!! !!!!!!  !!!!! @çÿÿÿÿÿü‚ !!!9ÃþÿÿÿÿÿÿÏ@ !!    Æþÿÿÿÿÿÿþá�#   ÈÿÿÿÿÿòY  Âüÿÿÿÿÿÿÿÿÿÿÿÿó�  @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÓûýýýýýýþþýýýüüüýüüüàhKKKKK³KKKKKKKKKKKKKKKKK³K³³KKKKK³KKK³³K³³³Œ½‹Œ½‰¿Œeecccº¼¼¼¼¼¼¼¼¼º‰¿¿½½½½½‰‰½½½½½½½‰½‰‰‰‰‰‰‰‰‰‰‰‰‰‰½ˆ‰‰‰‰½‰‰½‰‰‰‰‰‰‰‰‰ˆ‰‰ˆ‰‰‰‰ˆ‰ˆˆ‰‰ˆˆ‰ˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSˆˆˆˆˆˆSˆSˆˆˆˆˆˆˆSˆˆSSˆˆˆˆˆSSˆSNSSSNSSSSSˆSSSSNSSSSSSSSˆSSSNSNSNSNNNNSSSSSNSSSSSSSSNSSNNSSSSNSNNSNSNSSNNSNNSNSSSNNNNNNNNNNNNNNSNNNN.JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKJKJKJKKKJKKJJKJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFFJKKKKKKKKKKKK0222ÄüýþþýþýýýýýþüüüüüüüüüüüúúúúóúúúÑ4444ÑóóóóëöëëëëëëëëêêééòóòòðòòðòóðóòòðððÁ323QððððððððððððððððððïïïðÑÑïïÑÚÚÑßÑÑÑÑ�2003Þ°ÙÑÑÑÑÑÑØ°×ÐÐÐÐÐÐÐÐÍÍÐÍÍÍÍÍÍÍÍÇ:&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æüüüüüüüüüüþúó÷÷ó÷÷ò§p  !!      !! !! !!!!!! !!!!! !!!!!!!!!!! !!!!!!!!!!!!�úÿÿÿÿÿË9!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!! !!!!!!!;ÏÿÿÿÿÿÿÎ;! !!!! !!!! !!! !!!!!!!‚ýÿÿÿÿÿò[ !!Ãþÿÿÿÿÿÿú„!! ! !  YñÿÿÿÿÿÿúÈY !! ! ! !ÈÿÿÿÿÿòY �óÿÿÿÿÿÿüþÿÿÿÿÿÿá@;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÓûýýýýýýþþýýýüüüýüýüàhKKKKKKK³KKKKKKKKKKKKKKK³KK³K³KKKK³³³³KKKKK>eŒAŒ`?j‹½¾c¹ºº¼º¼¼¼³µ¼»½½¿½½½½¿Œ½½½½‰½½‰½½½½½½½½‰‰½‰‰‰‰½‰‰½½‰½‰½½½‰‰‰‰‰‰‰‰‰ˆ‰‰ˆˆˆ‰‰‰‰‰‰‰ˆˆ‰‰‰‰‰ˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆSSSSSSˆˆˆˆˆˆˆSSˆˆˆˆˆSSSˆˆSSSSNSSSSSSˆˆSSˆˆSSSSSˆSSˆSSSSSSSˆNNSSSSSSNSˆSSSNSˆSNSNNSSNNSNNNNNSSSSSNSNNNSSSSSNNSNNNNSNNNNNNNNSNNNJKKKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJKKJJJKJJJKJJJJJJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHHGGGFFFFFFJKKKKKKKKKKKK0222Äüýþþþýþþþþþýþýüúüúüüüüüüúúúúúúúï4‡‡4ÑóóóóëëëëëëëëíëêëíéòóóóòòòòððòóóòòðóÁ323QððððððððððððððððððïðïïïÑïïÑàÚááÑÑÑÑ�0033Þ°ÙÑÑÑÑÑÐÏ­°ÏÐÑÑÐÐÐÐÐÐÑÑÐÐÍÍÍÍÍË3&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüüüüüüüüüüþúóó÷÷÷óò§l !  ! ! ! !!   !  !!! !!! ! !!!!!!!!! ! !!$!!!!!!!!!!!!!!!!!!„üÿÿÿÿÿÂ$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!–üÿÿÿÿÿú‚!!!!!!!!! !!!!!!!!!! !!@áÿÿÿÿÿÿÏ9 !!!9ÃþÿÿÿÿÿÿÿçZ! ! ! !!…ýÿÿÿÿÿú–9 !    9ÈÿÿÿÿÿòY@áÿÿÿÿÿÿüÃÏþÿÿÿÿÿþÆ  @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  vÕûýýýýýýþþýüüýýýüüüüàhKKKKKK³KKKKKKKK³KKK³·K³KK³³³·³³K³³K³K³K³³KŒ^8jeŒ?i^ŒeŒ\c¹Œ½Œ¹¶»»¹¿½½Œ¿‰½½¿½¿¿½¿‰Œ‰‰½Œ½½½½½½½‰‰½‰½½½‰½½‰½‰‰‰½½½‰‰‰‰½½‰‰‰‰‰‰‰‰‰½‰‰‰‰‰ˆˆˆˆ‰‰‰ˆ‰ˆˆˆNLL.LSˆ‰‰ˆˆ‰‰ˆˆ‰ˆˆ‰ˆ‰ˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆSSSSSˆˆˆˆˆˆSSSSSSSSSˆˆˆSˆˆSˆˆˆSˆˆSˆSSSˆSSˆSˆSSˆNSNSSSˆSNSSSSNSSSSSSNNSˆSSNNNSSNNSSˆSSNNNNSNSSNSNNNNNNNNNNSSSNNSSNNJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKKKKJKJKJKJJJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFFFFFFJKKKKKKKKKKKK0222ÄüýþþþýýþþþþýþýüüüüüúúüüüúúúúóúúÑ4‡‡4ïóóóúöëëëëëëíëëëëííòóóóððòòðòðòòòððò•323QððððððððððððððððððïðïïïïïÑÑÚÚÑáïÑÑѾ2003ÏÛÞÑÑÑÑÑÑÐÞ°­ÏÐÐÐÐÐÐÐÍÐÍÍÍÍÐÍÐÍË3&&&&JKKKKKKKKKKKGEFFFFFFGGGGGGHHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýüýüüüüüüüþúó÷÷÷ó÷ò§l   !  ! ! ! !!! !!!!!!!!!!!!!!!!!! !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!–üÿÿÿÿÿ…!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ZòÿÿÿÿÿÿáB!! !! !!!!!!!!! !!!9Âýÿÿÿÿÿü…!!!!!ÃþÿÿÿÿÿÿÿþÎ@ !!!!!ÈþÿÿÿÿþÆ ! Æ–Y!  ÈÿÿÿÿÿòY ÃýÿÿÿÿÿþÎ#[ñÿÿÿÿÿÿú� @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýýýýýýþþýüüýýýüüüüàhKKKKKKKKKKKKKKK³KKK³KK³³³KKKKK³K³³KKKK³K³³j66ii?6ii8Z?88`eC>>ŒŒ`¿‹e`?‹B``ŒBŒŒ¿‹Œ‰‰‰ŒŒ‰‹‰½¿¿½‰½½½‰‰½‰½‰‰‰‰½½½½‰‰‰‰‰½‹‰‰½‰Œ‰‰‰‰‰½‰‰ˆ‰‰‰‰ˆ‰‰‰ˆ‰‰ˆS,DLSˆ‰‰‰‰ˆˆˆ‰ˆˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆ‰ˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆSˆˆSSSNLLSSSSˆˆˆˆSSSˆˆSSˆˆSSSSSˆˆSSSSˆˆSSSSSNSSNSSSNSSSˆSSSNNSˆSSSˆNSSSSNSSSNSSNNNSSSNSSNNNNNNSNNSNSRSSNN.JKK·KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKJJJJJJJJKJKJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK0222Äüüþþþþýþþþýýüýýüüüüüüüüúúüüüúúúï4444Ñ÷óó÷ööëëëíëëíëëëíôòóòóóòòòðòòòóóòòð•223QððððððððððððððððððððïïððïïïÚÚïßÑÑÑÑ�0+03ÞÔÙÑÑÑÑÑÑÑÑØ«ÙÐÑÑÐÐÐÐÐÍÑÐÐÐÍÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æüüüýüüüüüüþúó÷ó÷÷óò§o !! ! ! !! !! !!!!! !!! ! !!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!Âýÿÿÿÿþ‚!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9ÈþÿÿÿÿÿýÆ9!!!!! !!!!!!!!!!!!!�÷ÿÿÿÿÿÿçB ! !ÃþÿÿÿÿÿÿÿÿýÈ@   ! #ÎÿÿÿÿÿúZ !@óþñË�;   ÈÿÿÿÿÿòY �÷ÿÿÿÿÿÿçY „úÿÿÿÿÿÿðY;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà   „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûýýýýýýþþýýýüüüýýýüàhKKKKKKKKKK³K³K³KKK³K³³·K·³³³K³³³³³³³K³³³·³ii6ii66ii6666i66i668^>^8ii^e^Œ8i6i^Š>e‹Š¿e6Œ?Z\‹½Š‹e`e‰‰ŠŠ‰Š\‰½½‰½‰‰ŠŠ‰‰½‹‰½‰‰‰½½‰‰‰‰½‰‰‰ˆ½ˆˆ‰‰‰‰‰‰‰ˆGDD,Nˆ‰‰ˆˆ‰ˆˆˆˆˆ‰ˆ‰ˆˆ‰ˆˆˆˆˆˆ‰‰ˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆSˆˆSSˆˆˆˆˆSSS.D,SSSˆˆ‡‡ˆˆSˆˆSˆˆˆˆˆˆSˆSSˆSSSSˆSSˆSˆSSSNˆˆSSˆSˆˆSNSSSSˆNSˆQSSˆˆNSNSSSSNNSNNPQSSSNNRRSNNNNNSSRSNSN/KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFGFFFFJKKKKKKKKKKKK0222Äüýýþþýýýþýýüýýýýüüüüýüúúúüüüüúúá4444ïó÷ó÷ööíëííëëëëëëíóóóóóòòòòðòòóóòòðò•222QððòðððððððððððððððððïïïïïïïàÚïàáÑïѾ2003ÞÛÙÑÑÑÐÑÐÑÐÏ­­ÞÐÐÐÐÐÐÍÐÍÍÍÍÍÍÐÍÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýüýýüüüüüþúó÷ó÷óóò§l!!  !!  ! !! !! ! !!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ãþÿÿÿÿþ‚!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!_òÿÿÿÿÿÿú–=!!!!!! !!!!! $!!!_ñÿÿÿÿÿÿü–!! !!!ÃþÿÿÿÿÿÿÿÿÿüÈ@  !  9áÿÿÿÿÿó9  �üÿÿþúÎ@!  ÈÿÿÿÿÿòY   Yáÿÿÿÿÿÿ÷‚ #ÈþÿÿÿÿÿþË# ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûýýýýýýþþýýüýüüýýýüàhKKKKK³KKKK³K³KKKKKKKKKKKKK³K³K³³K³³K³³K³³³666iiiiiiii6ii6i666666i6i68888ii6ii868?8<8i?tZ6??AŒ^iB‹‰‹‰BŒŒŒŒŒŒ^ŒŠŒŠ‹‰‹‰‹½‹ŒŠ‰Š\ˆŠ‰‰ŒBŠŠ‰‰‰ŠŠ‰‰‰ˆ‰ˆGDDD,0Qˆ‰‰\‰ˆ‰‰ˆˆ‰ˆ‰‰ˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆ‰ˆˆŠˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSˆˆLD-,NRVSˆˆSˆˆˆˆSˆSSSSS‡QSSˆˆˆˆˆSSSSSSSˆˆNSˆˆSˆSSSNNSNPSS\ˆSSSˆSNNNSSRNSSSSRSRQSSQNQB\S\SNNNSSSSOQR/JK³KK³KKKK³KKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKJKJKJKJJJJJJJJKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHHGGGFFFFFFJKKKKKKKKKKKK0222Äüýþþþýýüýþþýýüüýýüúúüüüýüüüüüúúï4‡‡4Ñ÷úó÷ööööõöëëöíëëôòóóóóóòòðòòòóóóòðò•323QðòðððððððððððððððððïððïïïïïàäïàÑÑïѾ020QÞÛÙÑÑÑÑÑÑÑÑÑÏ­ÔÏÑÑÑÐÐÐÐÑÐÐÍÐÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGHHHHHHHHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýüýüüýüüüýþúóó÷÷óóò§l!  !! ! ! !! ! !! !!!!!!! ! !!!!!!!!!!  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Âþÿÿÿÿþ‚!!!$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9Æþÿÿÿÿÿÿ÷Â9!!!!!!!!!!!!!!!!!$_çÿÿÿÿÿÿÿáB! !!!!!ÃþÿÿÿÿÿÿÿÿÿÿýÏ�;!!!9áÿÿÿÿÿ÷B!  Ãþÿÿÿÿú_ !ÈÿÿÿÿÿòY  #ÈþÿÿÿÿÿþÆ @çÿÿÿÿÿÿü„  @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýýýýýþþþýýýüýýüüüüàhKKKKKKKKKK³KK³·K··³³³³K·³K·³³·³³K³³³³³³³³³6i666i66iii666iii6iiii66iii6iii6iiii6iii66iiZZii6ii>i68?CŒCŒCii6CCB>ŒZŒ\B^ŒŒ8^?Z>?ŠŒ‰‰‰Œ^>Š\‰Š^<Š‹Œ‰\EDDFS--,- 0NSBŠ\‰‰ˆˆˆˆ‰‰‰‰ˆˆ‰‰‰ˆˆ\‡ˆˆˆ‰‰ˆˆˆˆˆˆ‰‰ˆˆ\\ˆˆ‡ˆ‰ˆ‰ˆ‡ˆˆˆˆˆˆˆ‰ˆˆˆˆˆ\ˆSSSˆˆˆˆˆˆLDD/N,.:SˆˆˆˆˆˆˆSˆˆˆSVQ\‡ˆSˆˆˆˆQŒe``B<\^8^=ED\Š:" ,- #=QŠ<ŠŠ\eŒŠ\eŠ\eŠ\Š\ŠŠQ?\`\\Qˆ‰‰ŠˆQŠŠ\Šˆ\ŠŠ‰Š‰ˆˆˆŠˆˆˆ^ˆQŠˆ\Q\QQŠS‡QQ?\QMR\S":NR‡‡ŠQ\‡‡QQ`\BQQ‡ˆSˆR>8\B\YQ\VVBQSˆQˆ‡‡BUV\‡QUQQQBV=BV\>\\?88<888BB‡=J³KKK·³K³³KK³K³KK³KK·KKK·KKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKKKKJJKJJJKJJKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHJJHHGGGGFFFFEJKKKKKKKKKKKK0222Äüüþþýýýüüýýýýüýüüüüüüüüüýüóúúúúï44‡4ïúúó÷ööööõõöíõõëëôôòóóòóóððððòòóòòðð•223QððððððððððððððððððððïïððïððàÚðàçïïï�0223ÏÔÙÑÑÑÑÑÑÑÑÑÑÑ­°ÏÑÐÐÐÐÐÐÐÐÍÐÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýüüüüüüþú÷÷ó÷÷óò§l !! !   ! ! !! !!!!!!!!!!!!!! !!!!!$!!! !!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!$…üÿÿÿÿÿÂ$!!!!!!$!!!!!!!!!!!$!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!�òÿÿÿÿÿÿÿýá�;!!!!!!!! !!![È÷ÿÿÿÿÿÿÿüÃ9! !!!!9Ãþÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñ–9!! Âþÿÿÿÿÿó„9!!@Âýÿÿÿÿÿò@ !   ÈÿÿÿÿÿòY Yçÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÎ#;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÕûýýýýþýþþýýýýýüýýýüàhKKKKK³K³³³³K³K·K³³³K³³³³K³³³³³³³³³K³³³³³³³66i6i6ii666iii6iiiiii66ii6iii66i6666ii666i6iii66ii6iii6i6i666ii6iiiii6ii6iiiiiii6ii66i66668ZZC8?>86^9ED8Z?8>57==5<<66CBŠ^`B\BZ>8?Y\BŒZA>6?>Z\ZŠŠŠ><\BY^VŠŒ^ŠŠ\ŒŠA\^Q<<\8Y\"PY\Y8V8\B88B\YQ>B86>BVBBBA6>8888BB8i?BB66868iV88ii6iiii6iA>A=J³KKKKK³K³KK·K³KKKK³³K³KKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKJKJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHJHHGGGGFGFFFFJKKKKKKKKKKKK/222Äüüýþýþýüüüýýýüýüüüüúúüüüýüúúóóúï44‡4Ñúúóúööööõõööõöëëôôóóóóóóòòðòðòðòððð•322QððððððððððððððððððððïïïðïïïàÚÑàÑïÑï�2003ÞÛÙÑÑÑÑÑÑÐÑÑÐÏÞ°­ÏÐÍÐÐÍÍÍÍÍÍÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýüýüüýýüþú÷÷÷÷÷óò§p!  !! !!!! !!!! !!!!!!! !!! !!!!!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!�úÿÿÿÿÿË9!!!!!!!!!!!!!$!!!!!!!!!!$!$$!!!!!!$$$$$!!!!!!!!!!!!!!!!9…÷ÿÿÿÿÿÿÿÿó΂B9!!!$$$!@xÆñþÿÿÿÿÿÿÿýË@!!!!! !!!9Ãþÿÿÿÿÿýÿÿÿÿÿÿÿÿÿý…! ! [óÿÿÿÿÿÿúÎÂÂÏüÿÿÿÿÿÿÑ!   !ÈÿÿÿÿÿòY 9Ëþÿÿÿÿÿü• #Îÿÿÿÿÿÿü•  ;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ pÕûýýýýýýþþýýýýýýýýýüàhKKKKKK³K³KK³KKKK³K³K³³³³³³³³³³³³³³³³³³³K³³iii666iiiii6ii6iii666i6i66ii666i6i66i6i6i6iiiiiii6iiii666iiii6666i6666i6i6i6iiiii6iii66ii66i66i6666i$EDD66ii6666??88i668A>6i88AiZŒ?66j??i6i688>8886^B8iii8ij\8ZZ8<888>A>??i8\Z8ijiB8>>B\>":B?>Vi8>\>\6iiCB68>8i8ii888i66i86V8ii8Z66888i6ii6iii666iiii686iiiA8666ii6i666iiii8ii6iiiii66i666=JK·K³KK³K³³³K·KK³KKKK³³K³³K³K³KKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJKKJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGFFFFFFJKKKKKKKKKKKK/222Äüýþþýýþüüüýþýüüýüúüüüüüüüüüüüüúï4‡44ïúóó÷ööëöõõöëõíëëôôóóóòóóóóððóóóðóðð¾323QðððððððððððððððððððððððððïïàÚïàçïïï�202QϰÙÑÑÑÑÑÑÑÐÑÑÑÑØ«ØÐÐÐÐÑÑÐÐÐÐÍÍÍÈ3&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âýüüýüýýüüüþúóó÷óó÷ò§o! !! !! !!! !!!!!! !!!!!!!!!! !!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![÷ÿÿÿÿÿá9!!!!!!!!!!!!!$!!!$!!!!!!!!!!!!!!!$!!!!!!$!!!!!!!!!!!!!!!9Âúÿÿÿÿÿÿÿÿÿúð΄‚‚„–Èá÷þÿÿÿÿÿÿÿÿþÞB!!!!!!!!!!ÃþÿÿÿÿüËòÿÿÿÿÿÿÿÿá@!! !!9Ëþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý‚ !!ÈÿÿÿÿÿòY !–úÿÿÿÿÿþË;[ñÿÿÿÿÿÿò[;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûýýýþýýþþýýýýýýýüüüàhK³³KK·K³³K³³³·K³³³³³³K³³³³³³³³K³³³K³³³³³³³iiiii6i66i6i6i666ii6ii666ii6666ii66666i6i6i6iiiiiiiii66i6ii6i6iiii6i6iii66i6iiii66iii6666i6iii6i6ii6#ED6i66i66ii66i6ii666ii6ii6iii66ii6i666ii666i6iiiiii6iiii6i666iiii666iii66iii6ii66i6Di6666ii6ii666??i6iii666iiii666i6i6666i66iiiii6i666i666iiii6iii6ii6666iii66ii66iiiii6i666666iiii=J·K³³³³KKK³K³KK³K³³KKK³K³KKK³KKKK³K³KKKKKKKK³KK³KKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFFJKKKKKKKKKKKK0222ÄýþþþýýþýüüüþýüüýýüüüüüüúüüüúúúúÑ44‡4Ñüüú÷ööööõööíõëëëôôóóóóóóóòòòòòòðòðò¾423QçðððððððððððððððððððððïïðïïàÚïÑÑïÑÑ�222Qß°ÙïÑïÑÑÑÑÑÏÐÐÑÏÔ¨ÞÍÐÐÐÍÐÍÐÐÍÍÍÍ3&&&&JKKKKKKKKKKKGEFFFFFGGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âýüüýüýýüüüþúó÷ó÷÷óò§o !! !! !! !!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!BòÿÿÿÿÿóB!!!$!!!!!!!!!$!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!$!$!!!!!!!!!!!!@–÷ÿÿÿÿÿÿÿÿÿÿþþüüüüýþÿÿÿÿÿÿÿÿÿÿýÎY!!!!!!!!! !!Ãþÿÿÿÿü‚‚çýÿÿÿÿÿü‚ !!!!!YñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ;   9ÈÿÿÿÿÿóY [ñÿÿÿÿÿÿçY „úÿÿÿÿÿÿÏ#;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûýýýþýþþþýýýýýýýüüüàhKK³KKKK³KKKKKK³K³³³³³³K³³³³K³³³³³³³³³³³³³³i6ii6ii66iii6i6ii6i6i666i6i6i6iii66i6iii666iii666iii6i666iiiii66i6ii666ii6i6i6ii666ii66iiiii6i6i6ii6"EDD 6i6666ii6i66iii6iiiii666ii6i66ii66i6i66iii66i6666i66666i6i666ii66666666666666666iiii66i666i6iii6i6666ii6666i6i6ii66ii6ii6iiii6iiiiii6iiii6ii6iii6i6i6ii66i66iiii6i6i6iii6i66i6i6$J··K³··³³³³KK·³³³K··K³³³³³³K³KKKKKK³K³KKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJKJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJHJHHHGGGGFFFFFJKKKKKKKKKKKK0222Äýþýýýýýýýýýüüýüüýýüüüüüüüüüüüüüï4‡‡4ÑúúüúöööëõõõöëíëëõõóóóóóóóóóòóòòóòòóÁ323Qððððððððððððððððððððððïððïðàäïâïïïï¾0223ÏÛßÑÑÑÑÑÑÑÑÑÑÑÑÑÏ­­ÏÐÐÐÐÍÑÍÍÐÍÍÉ:&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýüýüüýýüþú÷ó÷÷÷óò§p! !!! ! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!$!!!!!!!!!!!!!!!!!$!!!!!!$!!$$!!!;Ïÿÿÿÿÿü�!$!$!!!!!!!!!!!!$$$$!!$!!!$$$$!!!!$!!!!$!!!$!!!$!!!$$!!!!!$9…òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüËB!!!!! !!!!!!Ãþÿÿÿÿü‚!ZÈ÷ÿÿÿþÎ; !!! „÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿò[! ! !ÈÿÿÿÿÿòY! @Îþÿÿÿÿÿ÷‚   Èþÿÿÿÿÿý  @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüüüüüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÕûýþþýþýþþýýýýýýýýýüàhK³K³K³K³³K³³³·³³³³³³³³³³³³³³³³³³³³³³³³³³³³6i6ii66ii6i66iii6i6i666iiiii6i6ii66ii66i6666i6i6i6iiii6i666i66i6666i6ii66iiiii6ii66i6i66i6i66i66iii6EDD i66i6iiii666i666iiiiii66ii666i66i66666i66666i6iiiiiii66i6i6iiii666i6i6iiiii6ii6i66i66ii6i6ii6iiii6i6i6ii6i6666iiii6i6i6iii6ii6i6i66iiiiii6i66iii66i6666iii666i6ii6ii666iiii66iii=J³³³K³KKKK³KK·³³³K·³K³KK³KK³³K³KK³K³KK³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFGFFFFJKKKKKKKKKKKK/222Äýýýýýýýþþþþýþüüüüüüüüüüúüúüüüúúï4‡‡4ïóóúúööööõõíëõëëëõõòóóóóóóóòòòðòðòòòÁ324QðððððððððððððððððððððïïïïÑïàÚïàáïïï�222QÏÖßÑïÑÑÑÑÑÑÑÑÐÐÑÑ׫×ÐÐÐÍÐÍÐÍÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýüýüüýýüþúó÷ó÷óóò¬p!! !!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!$$!$!!!$$!!9ÈþÿÿÿÿþÆ$!!!$$$$!!!!$$$$$$!!!!!$!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!9�áþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþò–@!!!!!!!!!!!!$–òúúúúñ� 9�Îóþò_! !! !„òÿÿÿÿÿÿÿÿÿÿÿþð�! !!!! !Â÷úúúúáY�ñúúúúúóÃ# @Ïúúúúúúá;;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ÂúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýþþýþþþþýýýýýýýýýüàh³³KK³³KKK³KK³³K³³³³³³³K³³³³³³³³³³³³³³³³³³³666i666i66i66iiiiii66666iii6ii66i6666iiiiiiiiiii6i666666i66i6i66iiii6ii6i6ii666i66iiiii66i6ii66iii66DD!66ii6ii6666iiiii6i66iii6ii6iii6ii66i66ii6iii6iiiii6666i6i6i6ii6666i6666i66i6ii66i"66i6i6666iiii66i6iii6iiii6iiiii66i66iii6iii66i66iiiiiiiiiii666i6ii6ii6iii6666iii6i6i6iii6666iii=J³³³·³³³··³³³³³³³³³³³K³KK³³³³K³³³·KKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKJJJJJKJJJJJKJJJJJJJJJJJJJJJJJJJJJJHHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþýüýýýýýþþþþþýüüúüüüüüüúúúüüüúúï4‡‡4Ñúóó÷öööíõõöíöíëëôóóóòóòóòóóóóòòòòðòÁ323QçðððððððððððððððððððððïïðïïàÚïàÑïïÑ�222QÞÔßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÔ°ÞÐÑÐÐÐÍÐÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGHHGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýüýüýýüüýþú÷ó÷óóóò§o! !!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!$$!!!!!!$!$!!$!!$$!$„ýÿÿÿÿÿá@!$!!!$$$!!!!$$$!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!$$!!!!ZÃòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎ_9!!!!!!!!!!!!!!!@�‚�‚�_;!!!!;_„9!!!! !!!!�áüÿÿÿÿÿÿÿÿüÏ[!   !! !B�����[! @������_9 ! @___�___!;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÕûþýýþþþþþýýýýýýýýýüàh³K³³³³³K³³³³³³³³K³³K³³³³³³³³³³³³³³³³³³³³³³666ii6iii666iiiii66i6i6i6i6iii6ii6ii666iii6ii6666iiiiii66i6iii66ii6iiiiiiiiiii666i66i6ii6iii6i66i6i8ED=iiiiiii6iii6iiii66i6i6iiiiii666666ii6i66ii66iiiii66i6ii6ii666iiii666iii6ii6666i6i"D66i6ii6i6iiiiiiii666i66iii66i66iii66ii6ii6666ii6ii66i6i6i6i666ii666666i6i6iiiii666666i666iii6i6$J³³K³³³³·K³³³³K³³K³KK·KKK³³K³³KKK·K·KKK³³KKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJKJKKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHGHGGGFFFFFFJKKKKKKKKKKKK/222Äþýýýýþþýýþþþýýüüüüúüúüüúóóüüúúúï4‡44Ñóóó÷öööíõõëëõíëëõõóóòóóóóóóóðòððòòðÁ323QçððððððððððððððððððððïïïïÑïààïàáïÑѾ322QÞÛÙÑÑÑïÑÑÑÑÑÑÑÐÐÐÐÞ­­ÏÐÐÐÍÐÍÍÐÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýüýýüüýþú÷ó÷÷÷óò§m! !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!$$!!$$$!!!!!!!!!$!!!!!$$!$]òÿÿÿÿÿú_!$!!!$$$!!!$!!!!!!!!!!!$!!$!!!!!!!!!!$!!!!$$!!!!!!!!!!!!!!!!$!!!9[ÆñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþóÏ‚@!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! ! @…Ïñúüúúñ΂@ !! !!!!           @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÕûþýýþþþþþýýýýýýýýýüàh³³KKKKK³K³K³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³6i6ii66ii666ii6ii66ii6iii6iii6i6iiiiiiiiii66666ii6666iii66iiiiii666iiii6666iiiii66iii6iii66i66i6iii8ED7iiiii666i6ii6666ii6iii6iii6666i6i66i6ii6ii6iiiiii666i6iii6ii66ii6i6iiii6iii6i66i6!6i6i66ii666i66iiiiiiii6i6i6i666iii66iiiii6i66666666iiiiii66iii66i6666ii6i6666666iiii6666ii6ii667K³K·³·³·³··³³··³³·K³³³³³³³³·K··³³³·K³KK³K³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGGGGFFFFJKKKKKKKKKKKK/222ÄþýýýýþþþþþþþþýüüüüüüüúúüüúúúúúóÑ4‡‡4ïóúó÷ööööõííöõöëëôôóóóóóóòóòóòòòòòóòÁ324QðððððððððððððððððððððïðïïïïàäïàðÑïï�022QÞÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ×°×ÐÐÐÐÐÐÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýüüýýüþúó÷ó÷óóò§o! !!!!!!!!!!!!!!!! !!!!!!!!!!!!=!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!$!!!!!!$!!!$$$!!!!9ÎÿÿÿÿÿÿÎ=$!$!!$$!$$$!$$$$!$$!!!=$!!!!!$$$!!$$!!!!$$!!$$$!!!$=$!!$$$!!!$$!$9Z–ÎñúüþþÿÿþþýüóßÂ_;!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!$!!! !!!!;Z�‚�_Z9!            !;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÕûýþþþþþþþýýýýýýýýýüàhK³K³K·³³³³³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³666iii6iiiii66iiii6iiiii6iii66666i66i6iiiiii66ii66i666iiii66i6ii66iii6ii66ii66i6i6ii6ii6i66666i66i68FED$iiii66iiii666i6666666i6i66i6ii6ii6iiii6iiii66iiiii6i66ii6iii6ii666666ii6i6iii6iii6i666i6666i6i66i6iiii66i6i6i6666iiiiiii6ii6i6i6i6666ii66i66iii6i6iii6i6i6iii66666iii666i66i6iii$K³³··³³·³³³³³³³³K³³³³³³³³³³³K·KK·KK³K³K³KKKK³K³KKKKK³KKKKKK·KKKKKKKKKKKKKKKKKKKKJKKJKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFFJKKKKKKKKKKKK0222Äþþýþýþþþþþþþýýüüüüúúúúóüüúúúúóóð4‡‡4ï÷óúúööööõíööõõíëõôòòóóóòóóòóóòóðòòò¾323QððððòððððððððððððððððïðïïïïàÚïàáïÑÑ�M2MQÏÖÙÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÔ¨ÞÐÍÐÍÍÍÐÍÊ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýýüüýýüþúóó÷÷÷óò§o! !!!!!!!!! !!!!!!!!!!!!!!$!!!!!!!!!!!!$$!!!!!!!!!$!!!!$!!$!!!!$$$$!!!!!!!!!$$$!!!…üÿÿÿÿÿ÷_!!!!$$$!!!!!!!!!!$$$!$$$$$!!$$$$!!!!!!$!!$!$!!$$$!!!!!!$!$$!!!!!$!!@B_…ÆËËËËÆ–�Z@9$!$!!!!!!!!!!$$!!!!!!!!!!!! !!!!!!!!!! ! !!!!!!! !!!!! !!!! !! @�–…[!       ;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  oÕûýþþþþýþþýýýýýýýýýüàh³³³³KKKK³³³³³³³³K³³³³³³³³³³³³³³³³³³³³³³³³³66iii66iii6i6i6666ii6i66ii66iii6i6666666666ii66iiii666ii6iii666i666iiiiiiiiiii66ii6i6iii66ii6ii66ii8FED7iii666ii6i66i666i66666iii6666ii6i66i666i66iiiii6iii66iiii66i6i66iii66iiiii66ii66i"Diii6ii6i6i66i6iiiii666666i6666i6iiii6iii6666i6iiiii66666i6i66iiiii6ii6ii6666666i6666iii6iii6ii6$K·····³·³······³·³···³³³³·³³³³³³³³³³³³³³³K³³KK³KKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKJKKKKKJJJJKKJJJJJJJJJJJJJJJJJJJJJJJHJJHHGGGFFFFFJKKKKKKKKKKKK0222Äþþþþþþþþþþþýýüüüüüúúúúüúüüúúúóúð4‡‡4ïú÷úúöööëõõëëõöööõõòóóóòóóòóóóóóóóóòÁ323QçðòððððððððððððððððððððððïïàäçàïÑÑï¾233QÏÛßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÏ­­ÏÑÐÑÍÐÍÍÒ:&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýüüýþú÷óó÷ó÷ò§o!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$!!!!!!!!!!!!!!!!!!!!!!!!$$$!!!!$$!!!$!!!$$YñÿÿÿÿÿþÎ@!!$!$$=!!!$!!$!!!$!!$!!!!$$!!$!!!$$$!!!!!$$!!!$!!!!$!!!!!!$!!!!!!!!!!!$$99999!$$!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!! ! !!‚áúýüòÈB   ! @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³66i66iii6iii6ii6iii66iiiiii66i66i6i666i66i66iiiiiiii6666i6666iii6i6iii66666iiii6ii66i666i6i6i66ii6i7EDD76iiiiiii6ii6666i66iii66i66i66iii6666666i66i6i666ii6iii6666i66i666ii6iiii6iii666i6D6ii66i666i6iiii6iii666i6i6ii66666iii6i666i6i66666i666ii66ii66ii6iii6ii6iiii66iiiiiiii6i6iii66ii=J··K³³·³·K³··³³··³·³³³³K·³³³·KK³³K³³³KK³³KKK³KKK³KK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFFFFEJKKKKKKKKKKKK/222Äþþþþþþþþþþþýýýüýüúüüúóúúúüúúúúúð4‡‡4ïóóó÷öööëõöííöõööõôòóóóóóóóóóóòóóòóðÁ323QðððòððððððððððððððððððððïïïàÚïáïïïѾ222QÞÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÑ׫ÓÐÐÍÍÐÍÍË3&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýüüýþúó÷óóó÷ò§o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!$!!!$!!!!!!$!!!!!!!!$!$!$!!!$$$!!!$$$!!!$$$!!!!$$!$$9Æþÿÿÿÿÿú‚$$$$$!$!$!$!!$!!!$!!$$!!!!$$!$!!$$$$!!!$!$=$!$$!!!!$$$!!!!!!!$!!!!!!!!$!!$$!$!!!$!!!!!$!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!! !  �óÿÿÿÿÿþË9        �ÈËËËËËËËËËËËËËËËËËÎüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçËËËËËËËËËËËËËËËËËËÆ#‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûþþþþþþþþýýýýýýýýýüàhKK³³³³³K³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³iiiiii66i6i6iii6ii6ii6666666ii666666ii66i6i6ii666iii6iiii66iii6iii6i6iii66iiiiiiiii6iiii6i6iiii6ii6EE76i6i666iii6ii6ii66iiii6iiiii6ii6iii6ii66i6i6666i6666i6666i66ii66iiiii66666i6i6666"iiii6iii6ii666ii6666ii666i66i66i6ii6ii66666i6i666iii6666i6i6iiiii66iii66666i6i66ii6i6iiii6iiiii$K·················³·³·³·³·³·³·³³·K³³³³³³K³³K³³³··³K³KKKK³KKKKKK³KKKKKKKKKKKKKKKKKKKKKKJKKJJJJJKJJJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK/222Äþþþÿþþþþýþþþüýþüýýýüúúúúúüüúúüüð4‡‡4ÑúúúúööööõõëëííííõôòóóòóóóóóòóóóóóóóÁ32OQñðòòðððððððððððððððððððïðïïààðçïïïï�222QÏÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÔ«ÞÐÐÐÐÍÍË3&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýýýýýýüþú÷÷óó÷óò§o!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!$$!!!!$$!!$$$!!$!!!$!$!!!!!$$$$!!!$[òÿÿÿÿÿÿçY$$!!!$$!$!!!$!$!$$==$==!!!!!$$!!$!$$!!=!!!$$$==$$$!$!!=$$=!!!!!$=!!!!$$!!!!!!$!$!!$!!!!!!!!$$$!$$!!!!!!!!!!!! !!!! !!!!!!!!!!!!!!!!!! ! !  !! !@Ïÿÿÿÿÿÿÿü„!   !     ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   vÕûþþþþþþþþýýýýýýýýýüàh³³·³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³iiii66i66i6i6i6iii66666iiiiiiii66666iii6iii6ii666666iii6i6ii6ii6666iiiiiii6iii6i6iii6i6ii6ii6i66ii6!GED86ii6i66i6666ii6666iiiiiii66666iiiiii66ii6i6ii666i6i6i6666i66i6iii6i6ii6i66666ii66"66i6ii6iiiii66ii666i6i66iiiii6666ii66i6iii666i66666i66i66i666i6i66iii6i66ii6i66i6i666i6iiii6iii=J··³³·³·³··³·K³³³³···K³·K³³K³³K³³³K³K³K³K³³KKK³K³K³KKKKK³KKKKKKKKKKKKKKKKKKKKKKKKJKJKKKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFGFFFFJKKKKKKKKKKKK/222Äÿþþþþýþþýþþþýþþýýüüýüúúúúüüúúüúð4‡‡4ç÷úó÷öõööõõööõëëëôõóóóóóóóóòóòóóòòòóÁ424QððòòðððððððððððððððððððïðïïàÚïááïïï�232QÏÛÙÑÑïÑïÑÑÑÑÑÑÑÑÑÐÑÐÑÑέ­ÎÐÐÍÍÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýüþú÷óóó÷óò§l!!!!!!!!!!! !!!$!!!!!!!!!!!!!!!!!$!!$!!!$$!!!$!!$!!!$$!!$$!!!$!!!!$$!$!$$!!!$!!$$$$=!!$$$!!!ÃýÿÿÿÿÿþÎ@$!!$=$$$!$$!!$!=!$$!$$$$$!!!!!$$$!!$!$$$$$!!$!!!$!!!!$!$!!$!$$!!!$$!$$$!$$!!!!=!!!!$!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! !! ![÷ÿÿÿÿÿÿÿþË! ! !     ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  oÕûþþþþþþþþýýýýýýýýýüàhK³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³i6ii6666i666iii6ii666666i666666i66i666666666666ii6iii66ii6i6666i6iiiiii6666ii6i66666iii6iii666i6666!ED6ii6i6666i66iiii66i6iii66iii6666ii66666i6666ii6ii6i666ii666i6i666i666i66i666i66i6"D!6i66iiiiii66i6i666666i6iii6ii66i6666ii6ii666iiii6i666i6i6i6i66ii6i6ii6ii6ii66ii6iiiiiiii6ii6iii$K····³·············³·³·······³··³·³··³·³·³³³³³³KK³³KK·K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJJJJKKJJJJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþþÿþÿþþþþþþýýþþýýýýüüüóúúüüüúüüð4‡‡4Ñúúú÷ööööùõöööõëëô÷óòóòóóóóóóóóóóóóòÁ424Qðòðððòððððððððððððððððððððïàäïàçïïï¾333QÞÔßÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÐÙ«ØÑÑÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGHHHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúó÷óóó÷ò§l!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!$$!!!$!!$$!!!$$!!!!!!!$$!$!!!!!!$!!$!$$!$!!!=$$$$$$$$$$$$!$YçÿÿÿÿÿÿýÃ=!$$$$$$!$$!$!!$!$$!$$!$$$$$$!!!$!$$$$!$=$!!$!!!$!!$!$!$!$!!$$$!!$$!!$=!!$$!!!!$!$$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !!!!!!!! !! !�þÿÿÿÿÿÿÿÿÏ9 ! !       ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÕûþþþþþþþþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³iii666ii66666iiiiii66ii6iiii66i6i6i6666666i666iiiii66i6ii6666i666ii66i66i66i66ii66666i6ii6i666i6i66!EDD$66iiiiii666i6iii66666iiiiii6i6ii6i6i6666i6ii66666iiiiii6ii66i666i6i6ii666i6ii66i"!66i6i6ii6ii6i6ii6ii666i6i6666i6iii6ii6iii66iiiiiiii66iiii66ii666666ii6i66i666ii6iii6i66i66666i6$K····³·³³³³··³³·³³³·³³³··³³·³··³³··³³³³³³K·KKKKK³K³KK³KKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþþÿþþþþýýþþþþýýýýýüýüüúúúúüüúüüð‡‡‡4Ñóúú÷ööëööõöíõöëëôòóóóóóòóóóóóóòóóòòÁ424QððòððòðððððððððððððððððïïðïÚÚïàïïïï¾323QÞÖßÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÐÏÓ«×ÍÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHGGHJHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýýýýýýüþúó÷÷÷÷óò§o!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!$$!!!$$$!$!$!!!!!!!!$!!!$$!$$!!!$=$!!!$$$$!!!!$$$$!!!$$$!$$$$=…úÿÿÿÿÿÿú–9!$$!$$$!!$!$$$!!$!$$!$$$$=$$!!!$$=$!$$$!!!$$$$$!!$$!!!$$$!$!!$!!$$$!$!$$$!$!!$$$$!!!!$=$!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!! _úÿÿÿÿÿÿÿþÎ9     !     ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûþþþþþþÿþýýýýýýýýýüàh³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³666666i666iii6i66i6i6ii66iii6666iiiii66i6ii6ii6666i666i66i6iiii66i6i6i6i6i666i6666i6iiii6666i6ii666 EDDE7666i6ii66666iiiii66ii6ii666ii6ii6i66666i6iiiii6ii6ii66ii6i66iii6666i6i66i6ii6i6D6i66iiii66ii66iiiii666iii6iii6iii6i666i66666i6666i666iiii666666i6i666iii66ii6666666ii6ii6ii6i6i$K···························³··³³··³···³³K·³·³·³·KK³³³K·K³³·KKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHGGGGGFFFFFJKKKKKKKKKKKK0222Äþþþþþþþþþþþþþýþýýýüýüüüúúüüüüüüð44‡4Ñúóú÷öööëõõööõõííôõóóóóóóóòóòóóóóóóóÁ423QðòñòððòðððððððððððððððïïïððàäïàÑïðѾ230QßÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÐÐÐÐÏ­­ÏÐÍÐÊ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHJHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóó÷÷ó÷ò§l!!!!!!!!!!!!!!!!!!!!!!$$!$$$!!$!!!!!!!$!!!!!$!!$!$$$$$$$$!$$!!!$=!!$!$=$$$=$!$!!$$$$$!$=$!$9Èþÿÿÿÿÿÿú–=!$$!!$$$$!$=$=$$$$$$=$$$$====$$!$=@x@$$$$$$!$==$!$==$!!!!!!$$!=$!$$$=!$$$$!!!!!!!!$$!!$!!!!!!!$$$$!!!!!!!!$!!!!!!!!!!!!!!!! !!!! !! !!!!!!  !!!Bçÿÿÿÿÿÿÿü–!! !!    !!   ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY„ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÕûþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³66i666i6i6ii66666i6ii6iii66ii6ii6iiiiiii6666ii6ii6i66iii666i6i6i6666i6i6ii66666i6666iiii66iii66i666"ED6ii6i66ii66iii6i66i6iii666iiii6i66i6666666i6iiii6ii66i6iii6i6666ii6iiiiiiii6i6i66i6ii66iii666ii66i6ii6ii6666i6i6i66i666ii66ii66ii6ii66666i66i66i666iii6iii66666i6ii6iiiii6ii6$K³·³·³·³³³³·³·³·³³³³·³³³³³³·³³³³³³³³·³³·³³·³·KK³KK³³K³KKK³³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHGGGGFFFFFFJKKKKKKKKKKKK0222Äþþÿþþþþþþþþýþýýüüýýýüüüúúúüúüüúð4‡‡4Ñ÷úóúöööëõõööõõííõõóòóóóóóóóòóóóóòóóÁ424QððòððððòðòððððððððððððïïïïïàÚïàçïïï�233QÞÜÙÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÐÐÐÞ«ÓÏÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýýýýýýüþú÷÷÷÷÷÷ò§o!!!!!!$!!!!!!!!!!!!!!!!!!!$$!!!!!!!!!!!$$!$!!$!!!!$$!$$!$$$$$$$$!=$!$!!=!!$$!$=!!!$=$$$=$!!$$ZáÿÿÿÿÿÿÿúÃ@$!$!!$$=$$$!=$$$$$$$$=$!$$=$$!$=]Î÷ËB$!$$$$$$$$$!$$$$!!$!$$=$!!!$$!$!!!!!$$!!$!$$!!!!!$!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!! !„üÿÿÿÿÿÿÏ@  ! !      ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûþþþþþþþÿýýýýýýýýýüàh³³³³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³6i66ii66ii66ii66i66iii6666i6iii6ii666i66ii6i6i666666ii6666666iii6ii666iiii6666i6ii66ii6i6iiiiii6666E 6=7ii66i666i6i66iii6666ii66ii6i666i6ii6666666666i6ii6iii6iiii6ii66iiiii6666666ii66666ii66iii66iii66666666iiii6i66i666iii6ii666i6666i66666iiii666i6ii666i66ii6ii66666ii666i666i6=K·······························³····³··K³³K·K·³·³·K³KK·³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJKJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþþþþþþþþþýþýýýýüüüýþüüüüüúüüüüüð4‡‡4Ñúóó÷ööööõõööõõööõõóóóóóóóóóóóóóóóóóÁ424QðððððòððððððððððððððððïðïïïàÚçàðïïï¾333QÏÖßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÏÓ¨ÞÐÍÓ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóóóó÷óò§v!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!$$!!!$!!!==$!=$$$!!!!$$!=$!!$!$$!==$=$!$!$$!$$$$$$$$$$==$$$$$$$$=_ñÿÿÿÿÿÿÿüËB$$$!$$$=$$$==$!$$$$$$!$$=$$$$=‚çþÿþÎZ=$$$=$!!$!!=$!$$!$!$$$$$$!$$$!$!!!!$$!!$$$$$!!!$!!!!!!!!!!!!!$!!!!$!!!!$$!!!!$!!!!!!!!!!!!!! !!!!!! !!!!!!!!! 9–òþÿþúÏY!   !      ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³i66666666666i6ii66666i6i666iiiii66666ii6iiii6666666i666666i66i6i6ii666i66i6666i66i6666iii666666iii6"E 66!8i5666666iiii66i6ii66i666iiii6i6i6666i6i66iiiii6iii666i6iiiii6i6i6i66666i6666666iiiii66666666666ii66i66i6666i66i6666666i6i666i6666666iiiiiiii6ii66i66666iiiiiiii6ii66ii666=K·³·³·³······³·³³·³·³·³·³·³·K³³³³··³³K·K·³³³³KK³K³K³K³K·KKK³KKKKKKKKKKKKKKKKKKKKKKJKKKKKJKKJJKJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþÿÿþþþþýýýýýüüýýýýþýüüüüúüüüüüüð‡‡‡4Ñ÷÷úúööööõõööõõöëõõóóóóóòóòóóóóóóòòò¾O24QððððððòðððððððððððððððïðïïïàÚïàïïïѾ333QßÖßÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÑÐÐÐÐϨ¨ÎÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúó÷÷÷ó÷òÒv!!!!!!!!!!!!!$$!!!!!!!!!!!!!!!!!!$$$!$=$!$$!$$$$!!=$!!$=$!!$!$!$$!$!$=$$$!$$$$!!$$!!$$!!!$=$$!!!‚÷ÿÿÿÿÿÿÿþçx=$$$$!=$!$$$$$==$$=!$==$$$=ZÆóÿÿÿÿþá_==$$=$$$$$=$$==$!$!!!$$$$$$$$$$$!!$$!!!!!!!$$$$!!!!!!$!!!!!!$!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!9[ÂËÆ‚@ ! !!! !!! !   ! !!   ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÓûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³i6666i66666i66i666666666666ii666iii66ii66ii6666666666i6666ii6i6i66ii666666666666iiiii66666666i66666ED(=!5 65(5i66iii66i6666i6666666666i666ii6i66666i66ii6i66i666ii6666i66666ii6666ii66ii6666ii666ii66i6666ii666666ii6666666i66ii6666ii6iiii666ii6666i666666i666iiiiii666iii666667K········································³³³··³··³·³KKK³³K³K³·KKKKKKKKKKKKKKKKJKKKKKJKKKKKKJKJJJJJJJKJJJJJJJJJJJJJJJJHHHHGGGGGFFFEJKKKKKKKKKKKK/222Äÿþþÿþþþýüýýýýþþþþþýýüúüüüüüüüúüï4‡‡‡ïúóúúöööööõöíõíëíõõóóóóóóóóóóóóóóóóò•424QðòòòóóðððððððððððððððððððððàäðçïïðѾ333QßÛÙÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÑÑÞ«ÓÍÍ3&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýüþúóó÷÷÷÷ò§p$!!$!!!!!$!!!!!!!!!!!!!$=!!!!!$$!!!$!$$!!!$!$!!!$!$$$$!$=$=$$=!$$!==$!$$=$===$$$=$=!!$=$=$$$===!=…úÿÿÿÿÿÿÿÿ÷ÈZ=$$=!!!=$!=$$$!$$$=$!$=@„çþÿÿÿÿÿÿþáZ!$!$!=$$$$!=$$=!==$$=$!$!!$$$!!=$$$$$$$=$==$!!$!!$$!!$$$$=$$!!!!!!!!!$$!!!!!!!!$!!!!!!!$!! !!!!!!!!!!!!!!! !!!! !! ! !        ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ vÕûþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³6666i6666666i666ii666iii6ii666i6i66i6i6ii6i6i6i66ii6666i6ii66ii6666666666iiiii6i6i66i6ii666iii66667DD  (6 i66i6i666i6i6ii66666ii666666666666i6i666ii66i6ii666ii666iii666i6  6i66666iiiiii66iii666666iiii6i6ii6ii6666i66ii666i6666666i6666i666666666i6i6ii66i66i666iiiii66$K···················³···³·³··³·³·³·³·³³·³³³³³··³³···³KKK·K³KK³³KKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGFFFFFFJKKKKKKKKKKKK/222Äÿþþÿþþþýüüýþýþýýýþüüüüüüüýýüüüü‡‡ïüúúúööööùõöíõíëëõôóóóòóóóóóóóóóòóóò¾424QðòòðòððððòðððððððððððððððððàäðçïïïѾ333QÞÛàÑïïÑÑÑïÑÑÑÑÑÑÑÑÑÐÐÐÐÐÐÐÐÍÓ«×Ì3&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGGHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþú÷ó÷óóóò§p$!!!!!!!!!!!!!!!!!$!$$!!$$!!!!!$$$!!$!$$!$$$!!$$!$=!$$!$!$$$$$$!=$!$$!$$$$!$$=$$$=$$$$$===$!=$$=$$9–÷ÿÿÿÿÿÿÿÿþñÆZ==$$$$$==!$=$$$$$$=B”áüÿÿÿÿÿÿÿÿþÏB$$$$=$!!$!$$$$==$$$!=$!=$$$$$$!$$$!$$$$$$$!!!!!$$$!!!$$$!$!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !    !       ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpØüþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³66666666666666ii66i66iiii6i66666i66ii6iii66666ii6i66666i6i66i6iiii66666i66i66666i6i66i6i6i66i6i6i6 &  && (556i66i6666666iii6i666i666i6666666666i66666ii666666i6i6i6ii6i65( 5666iiiiii6i6i6666666i6i666i666666iiiii6ii6i6i666ii6ii66666i66i666iiii6666i6i6666666iii6i666$K·········································³····³··³·³³³·K³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJKJKJJJJJJJJJJJJJJJJJJJJJJHHGGGFFFFEJKKKKKKKKKKKK0222Äþþþþþþþþýýýþýüýüýýüýýýþþþýýüüüúï4‡‡4ðüüüüööööùøööõõëëôõóóóóóóóóóóóóóóóòóÁ424Qðððòðððòòòðòòððððððððððððððààðâðððð¾233QÏÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÐÐÑÑÐÐÏ­¨¨<&&&&JKKKKKKKKKKKGEFFFFFFFGGGGHHHHHHHHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóóó÷óóò§p$!!!!!!!!$$!!!!!!$$$$!!!!!$$!!!$!$$!!!$$$$$$!!$$$$!$$$$!!!$$$$$=$!$$!=$$$!$$$$$$$$!==$===$$$$$$=$$=…óÿÿÿÿÿÿÿÿÿþò˃Z=$$$=$!===$$$@�ÆçüÿÿÿÿÿÿÿÿÿýÎZ$$=$$=$$!==$$$$$=$$$!$$$$=$!$$=!$$!!$$$$!!!$!!$$$!!$!!$!!$!!!$$$!!!=!!!$!!!!!!!!!!!!$$!!!!!!!!!!!!!! !!!!!!!!!! !!!!! !!  !!      ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY„ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³·³³³³³³³³³³³³³³³³³³³³³³³³³³·³³·666666i6i666666ii6666iii66i6666666i666666666ii6ii66i6i6666iiii6ii66i66ii666666666i666i6i66666i66i6  % 5566666i6i6iii6i666i666i6i66666i6666i666666666iii6i66i666i6   566i6666i6666i6666ii666ii6i666666iiii666666i6ii666ii66i66ii66i666i66i6i666666666i66ii66ii6i=K···························³·³·³·³·³·³··³³³³³³·³³·³³K·KK³KKK³³KKKKKKKK³KKKKKKKKKKKKKKKKJKJKJKJKJJJKJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþþþþþþþýýþýüüüýýýþþýþþþþþýüüüüóч‡‡4ðüúúúöùööøùööõöëëôóóóóóóóóóóóóòóóòòóÁ424Qðòððòòððòòðððððððððððððððððààðàïððï�333QÏÜÙïÑÑÑÑÑÑïÑÑÑÑÑÑÑÑÐÏÐÐÐÐÐÐÐÐ׫ª<&&&&JKKKKKKKKKKKGEFFFFFFGGGGGGHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþú÷÷ó÷ó÷ò§l!!!!!!!!!!$$$!!!!!$!!!$!!$!$$$$$!!$$!$!!!$$=!!$=====$!=$$$!$$!!!!!$=$$$$$!!!$$$!!!$===$$!!====$$$===�ñþÿÿÿÿÿÿÿÿÿÿýòáÆ‚x]ZZZZ_‚ÂÎñüþÿÿÿÿÿÿÿÿÿÿúÆB==$$$$====$$$$$$!$$==$$==$=$$=$====$!=$!$$$$$!!$$!!$$!!$!$$!!!!$!!$$!!!!!!!$!!!!$!!!!!!!!!!!!!!$$!!$!! !!! !!!!!!!!!!!!  !  ! !   ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!vØûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³·66iiii666666i66i66iii6666ii66i666666i6ii666i66666i6i6666i66i66666i66i6i666666ii6ii666iiiii66665 % % %(5666i66iii6i666ii666666666666666i6i66666666i66666i6iii66i6    666ii666666666ii666666i66iii6i66i6i6i666666666i66i6i6i66i666666iiii6iiiii666iii6iii666ii6$K········································³·³·³·³³···³³·³·³³··³KKKKKKKKKKKKKKKKKKK·KKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFJKKKKKKKKKKKK/O22Äüþýýþþþþþþýüýþþþþþþþýþþþüýýüüúúð4‡‡4ðúúúúööööõùööõõöíõ÷óóóòóóóóòóóóóóóóóÁ424Qòóóóóóòðóòòðððððððððððððððïàäðàçïïð¾333QÏÝßïÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÐÐÐÐÓ¦<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþú÷ó÷÷÷óò§o$$!!!!!!!$!!!$!!!$$!!!$!!$$$$!$!!!!$!$$=$$!$=$!$$$!$$!$$==$==$$!$==$=$$$==========$!$$$$$====$$$$$$$=ZÏýÿÿÿÿÿÿÿÿÿÿÿÿÿýüüú÷÷úüýþÿÿÿÿÿÿÿÿÿÿÿÿþñ‚@===$===$!==$===$=$$!$=$$$$!$$$=$$!!$=!$$$!$$$$=$!$$$=$$$!!!!$$$!!$!!!!!!!!$!!!!$$!!!!!!!!!!!!!$!!!!!!!!!!!!!!! !!!!!!! ! ! !!   !   ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pØüþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³·6666i666iii666i66i6i666666666666ii666666666666i66ii6i66i6666i66666ii6i66666i6666666i66ii666i66(  & %& % 6666i6666ii6i666i66666i66666666666i6666i666666666i6i66666   5666666666i6666iii6i66666i666i666iii6666666i66666ii66666666ii666i6666i6i66666666666i66i66$K···························³³³³·³·³·³·³³³·³³³³³³³·³³·³KK³³KK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK/O22Äýþýþþþþþþþýýýþþþþýýýýþþýýþüüüúúð4‡‡‡Ñúóú÷ööööùõööõõööõõóóòóóóóòóòòòóòóóòÁ424Qðòòòòððððòòðððððððððððððððïàäðàçïïï¾333QÏÜßÑÑïÑÑïÑÑÑÑÑÑÑÑÑÑÐÑÐÐÑÐÐÐÐÐÍΨ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóó÷÷÷óò§o$!!!!!!!$$!$!!$$!!$$$$!$$$!$$!$$$!==$!$=$!$$$$$$$$$!=$$=$$$$$$=$=$!===$$$==$$$===$$$$$$$==$=$$$=$=$$$==BÂòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúË]$==$$==$$$!$$==$$=$$=$$$$$$!$=$!=$!$$$$!$$$$!$$=$$!!$=$$$$$!!!$$$$!$$$$!!$!!!!!$$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! ! ! !! !!! ! !   ! ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÕûþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³³³³6666666i6666666ii66ii6i66666666666ii66i666666i66666i666666i6666666666i666ii6iiii666i66666866i % &% % (5i6666666i666666666666i6666666i66i666666i666666i6i6i666   56666i66666i666i66666666666ii66666666666666666666i66666666ii66i666ii6i6666666666666i6i666=K·······································³··³·³······K³K·³·³³·³³K·KKK³KKKK³KKKK³KKKKKKKKKKKJKKJKJJJJJJKJJJJJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKK/OO2Äýýýþþþþþþþþýþþþýþþýüýýýýýþüúüüüð4‡‡‡ïúúóúööööõùööõöíöõõ÷óóóòóóóóóóóóóóóóÁ424Qðóòòðððòòòðòðððððððððððððððààðàðïðð¾333QáÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÐÐÐͧ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþú÷ó÷÷óóò§o!!!$$$$$!!$$$!!$$$$$$!!!!!$$!$$$$=$=!$$!!!$$$=$=$$!=$$$$$==$!$==$!=$=$!$!$$$$$===$$=========$$=$=$$$==$=]Ïüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáz=$$$!$$==!$=$$$=$!$$$$$==$==$$==$!=!!=$!!!$===$$$$$$!!!$=$!$!$!!$$$!!$=$$$!!!$$!!$!!!!!!!!$$!!!!!!!!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!!!  !!! !! !  !ÂóúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúóY�òúúúúúúúúúúúúúúúúúð[Yá÷úúúúúúúúúúúúúúúúó oÕüþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³·³³¸³·³·³··66666i6i666666666666i6i666666666666666666666666666iiii6i666ii666666i66666666666666i6666655 % & % (5i66i6i6666i66i666i66666666i6i66666i6666i66i666666i665     65 6i66i66666i6666i66666iii6i66666ii6iii666i6ii6666666666666666i6ii666666666ii6i666i66=K········································³³³³·³K³³³K³³³³³³K³KKK³KKKK³KKKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJJJJJHGGGGGFFFFFJKKKKKKKKKKKK/O22Äýýýþýþþþþýþýþþþþþýþüýýýýýýüüüüüð‡‡‡‡ðúóúúööööõùööõõööõõ÷óóóóóóóóóóóóóóóóÁ424Qðòóòòðððððððòððððððððððððððààðàïïïï¾233QßÖßÑïÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÏÐÑÐÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúó÷ó÷÷óò§o!!!!!!!!!!!!$!!!!!$!!!$$$$$!!!$$$!!$======$$$$$!$==$=$!$=$$$$$==$=$$=$=====$===$$$!!$==$$==$==$$!=========AƒÏüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá…B===$$$=$====>==$=$$$==$$==$==$!$$$!$$$=$$$==$!!$$!$$$$$$=$!$=!$$!!!$!!!!!!!!$$$!$$$$!!!$$!!!!$!$!$!!!!!$!!!!!!!!!!!!!!!!!!!!!!! ! !   !  !   ;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@YB  @YYYYYYYYYYYYYYYYY;  @YYYYYYYYYYYYYYYYYY#       pÕûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³·³³³³³³³³³i6666666666ii66i6666666i6666666666i666i6i66ii66666ii6666666666666666666666666iii666i666i667 & % %(5i6666666i6i6i66i6666666666666i6666666i66i66666666665   66666i666666i66i666i6666666i6iii666i666i6666i666i6i666666666i66ii66666i666666666i66=K···········¸······································³³³³³³³³³³KK³³³KKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKJKJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFJKKKKKKKKKKKK/OO2Äýþþýýýþþþþþþþýþþþþþüýýýüýþüüüüüð‡‡‡4ðüüúúööööõõööõõíöõõóóóóóóóóòóòóóòòóóÁ424Qòóóóòòðòðòòðòððððððððððððððààðâçïðï¾333QÏÜßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÐÍÌ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþü÷ó÷÷óóò§o$$$!!$$!!$=!!!!$$!=$$=$$!!$$$$!$$!$$$!!$$$$=$$$$$$$$$$$$!$==$$$$$======$$======$$===$=$===$$====$===$$$==$$=@�ÎóýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþúσB$$=====$=$$$$$$$$==$$$===$$===$$$$$$$=$!$$$=$$$$=$$$$$$=$$$!$$=!!$=!$$!$$!$$!!!$$$!!!!!!!!$$!!$!!!!!$!!!$!!!!!!!!!!!!!$!!! !!!!!!!!!! !!!! ! !!! !!  !  !      pØüþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³··³·³¸·····¸³³66666i666i6i6666i66i6i66666666666666666666i666i66i66666i6i66i66ii6i6666666i6666666666666i66(%% & % & 6666666666666666i66666666666666666666i66666i6ii66666   (566666666666666666666666666666666666iiii66ii6666ii6666666ii66i6666i6666iii66666i6666$K··········¸·····¸······¸···············³³·³³³·³³³³³³³³··³³K³KKK·KKKK³KKKKKKKKKKKKKKKKKKKKKKKJJKKKJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK/OO2Äýþþþþýýþþþþþþýþþýþþýýýýþþýüúúüüð‡‡‡‡ðúúüúööööõõööõõöíõõóóóóóóóóóóóóòóðòóÁ424Qðòòòòòðòððððòððððððððððððððàäððïïïï¾333QßÜÙÑÑÑÑÑïïÑÑÑÑÑÏÑÐÑÑÑÑÑÑÐÐÐÐÐÍÍÍ3&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóó÷óóóò§l=$!$$$$!!!$!!$$$$!=$$$$$$!$$$=!$$!$$$!$$!$==$==$!$=$$$$$!!=$$$$====$$=$$$=$==$======$==============$===$=$$=$==Z–ÎçüþÿÿÿÿÿÿÿÿÿÿÿÿýñÏÅZ===$=$$=====$==$$$$===$=$$$=$$===!$====$=$$$$$=$$$=$$$$=$$$$$$$$$$$$!$!$$$!$$!$$!$$!$$$!!$$$!$$!!$$!!!!!!!!!!!$!!!$!!!!!$!!!!!!!!!!! !! !!!!!! !! !   !!       oÕûþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³³³¸³³³³³66i6ii6666ii66i666ii6i6666666666i6iii6666666i666i666666666iiiii6i6i666666666666666i666665((% %& % %& % %(5666i6iii66i6666666i66ii666666666666666666666666i655  6656i6666i6666666666ii66666i6666i6666i6i6666i66666666666666666666666666666666666i6i6$K···¸·······¸····································³³³³·³³·K·³³³³KKKKK³KKKKKKKKKKKKKKKKKKKKJKKKKKKKJJJJJKJJJKJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþýýþýþþþýþýþýýþþþýýýýýþýüüüüüð‡‡‡‡ïúúúúöõööõõöõõõööõô÷óóóóóóóóòóóóóóòóÁ4O4Qñóòòóóòòðððòðððððððððððððððàäðçððïï¾333QßÛÙÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÑÑÐÐÐÍÌ:&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþýýýýýýýýýþúó÷ó÷÷óò§o=!!!$!$!=$!!!$$!!$!$$$$$$!!!!=$$=!$==$=$$$$$$=====$!$$$======$$$$$=$$$$===$$$===$!$===$$$$==$=====$===$===========Z]‚ÅÎçñóóóòçÏÈ…_B>===$$====$$===============$!=$==$$$$===>=$$$=$$=$!$=$$$!!$!$$$$$!!$=$$$$$!=$$$$!=$!$!!!!$=!!!$!!!$$$!!$$$!!!!$!!!$$!!!!!!!!!!!! !!!!!!!!!!! !!! !    !!!   !         pØýþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³¸³¸³¸³¸³³³¸³³³·³·¸666i66i66666i66666i666666666666666i66666i6i6i66666666iii6666666666666iii6i666666ii6666666(%&% % %% % % % %66666i6666ii6666666i66666666666666i6666666666666 (  666ii6666i66666666666666666i666666ii666666666666666666666666i66i66666666666666666=K·¸·¸·¸·¸·¸·¸····························³³³··³·³³³··³³³·³K³³KK³K·KK³K³KKKKKKKKKKKKKKKKKKKKKJKKJKJKJJJJJJJJJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþýþþýýýþþþýýýþýþþþþýýüýýþüüúúüð4Ї‡ïúóúúööööõõëöõõëöõõóóóóóóóóóóóóóóòòðÁ4O4QðòðòòòðððððòòððððððððððððððààðàçïïÑ�333QßÛÙÑÑïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÐÐÐÐÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþýþýýýýýýýþúóó÷óóóò§o$$!!$$!$$!$$!=$$$$=$!$$$$==$$$=$!$$=!$$=$$$!$$$$!$==$!$$$$===$==$!$$====$$==$$=====$====$$========$======$$=$============9===>$$=======$===$====$$$!===$$=$=====$$=$=>=$=$=$$==$$$$$$=$$=$=$==$$$===$!$!$$!$=$!$!!$$!!$=$$!!!$$!$$$$$!!!!!!!!$$!!!!!!!!!!!!!!!!!!$!!!!!!!!$!!!! !!!!! ! !!!! !             pÕüþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³·³³³³³³³³³³¸³³i66i66666666666i666i6666666666666666i6666i666666666i66666i666666666666666666i6666666i6666% % % % %% % % %(566666666666666666666666666i6i666666666i666666666   66666666666666666666ii666666666666666666666666666666666ii6666i6666666666666666666=K··············¸·¸·¸¸·····························³··³····³³³³³·³K³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK/OO2Äþþþþþýýüþýýýüýýþþþþýýýüüýþýüúúüð‡‡‡‡ïúúúúööööõõííöõööõóóóóóóóóóóóóóóóòòðÁ‡24Qððòòóóòòñòðððððððððððððððððààçäðïïï¾333QÏÝÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÐÒ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýþýþýýýýýýþúó÷óó÷óò§p$$$!!$$!$$$$$$$$$$$$$$$$$!$===!!$=$$=$$$=$=$!=$$$$$$$=$===$=$$$=$=$=====$====$=======$======$======$==$=====$$===$====$======$===================$======$=$$======$=$$$=$$$=====$$=$=$==$==$$===$$$$=$=$$$$$$$$!$$$$$$=$!$$!$!$$$$!!!!!!!!$$!$!!!!!!!$!!!!!!$$!!!!!!!!!!!!!!!!!!!!!! !!!!!! !!!          pÕüþþþþþþÿÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³·³¸³¸³·³¸³³¸·³³³¸³³¸¸666i6i6666666666666666666666666666666666666666666i666666666666666666666666666i66666666666%% %% && & % % % % % %666666666i6666i6666666i6666i666666666i66666666665(  (%6666i66i6666666666i66666i666666i66666666666666666666i66666666i6666666666666666666$K············¸·¸································³³³³³³³³³³···³³KK³K³K³KKK³KKKKKKKKKKKKKKKKKKKKKKKKJKKKJJJJJJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþþþþþýüüüýýüýþþþþýýýýüüþýüüüüð‡‡Š‡ïúúúúööööõõöíõõíöõ÷óóóòóóóóóóóóóòòóò¾4O4Qðððòóòòòðððððððððððððððððððààçàáïïï�333QáÝßïÑïÑÑÑÑïÑïÑÑÑÑÑÑÐÑÐÐÑÐÐÐÐÐÐÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþýþþýýýýýþúó÷ó÷ó÷ò§v$$$!!$$$$!$$!!!$!!$$$=$$$$=$$$$$$$!$=$==$$==$$=$==$$$===========$======$$===============$=====$$===$==$=====$$===============$====$==============$==================$$!======$=$$==$=$===$===$$==$$$$$$$$$$$==$$$$$==$$$$$$!$!$$$$!!!$!!!$$$$!!!!$!!!!$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!! !!!  ! !! !   !!    pÕûþþþþþþÿÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³·³³³³³³³¸³³³³³¸³³³³³³666666i66666666i66666666i6666666666666666666666666666666666i6666i66666666666666666666666%%%%% % %%%%% %% % %%% % &%6666666i6666666666666666666666666666666666666666(  (66666666666666666666i6i666i666666i66666666666666i66666666666666666i66666666666666=K·¸·¸····¸¸·············¸·······················³··³····³·³³³³³K³³³KK³KK³³KKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJKJJJJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK/OOOÄþÿþþýþþýýýýýüýýþþþþýþýþüüýýüüúüð‡Š‡‡ïóúúüööööõõööõöööõõóóóóóóóóóóóóòóóóòÁ424Qðòòóóóòòòòððòðòððððððððððððààðàçïðï¾233QáÝßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÐÐÊ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþýþýýþýýýýþú÷÷ó÷ó÷ò¬q$!!==$!$$=$!$==$!$!!=$!$$$!!!$$=$$$=>$!=$===$=======!==$$==$$======$$$==$$==$=======$=>=$=$==========$$$=$=====>===============$============$$===$=====$==========$=====$$==$!=$$$==$$=$$$=$=$=====$$$====!$=$==$!$$$$$!$$$=$$$!!$$$$=$$=$!$$!!!$!!!!$!$!!!! !!!!!!!!$!!!!!!!!!!!!!!!! ! ! ! !!  !!  ! ! !            vÕýþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³·³³³³³³³····¸¸·³³¸³³¸³¸¸¸¸·³666666666666666666666666666666666666666666666666666666666666666666666666666i666i66666668(% % %% %%%% % % % %% %%&%(566i6i66666666666666i66666666i66666666666666666665( 66666666666666666666666666666666666666666666666666666666666666666666i66666666666666$K···¸······¸·····¸·¸·······¸·¸······················³·³³³³³³³³³³³KK³³KKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJJJJJJJJJJJJJJJJJJJHGGGGFFFFFFJKKKKKKKKKKKK/OOOÄþþÿÿþýþýýþþüýþýþþþþþþýþýýüüýýüýð‡ŠŠ‡ïóóúúùöööõëëíöíëöõõ÷óóóóóóóóóóóóóóòò¾424QððòòóóòòðòðððððððððððððððððààðàïïïÑ�333QÏÜàÑÑÑïÑÑÑÑÑïïÑÑÑÑÑÑÑÐÐÐÐÐÐÐÐÐÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþýýþýýýþþúó÷ó÷ó÷ò§o=$!$!!!$!$$!$$$$$$$$$$!$$$=$$====$$$===$!==$!=$$=$$=$====$=========$=======$==$$==$$=================$========$===$===$====$=>=======$====$$$$$=>=========$==$=$$$=====$$$==$$>>=$=$$===$$$$=$=$$======$$$=$$$$$$!!!!$$!$=!$$$=$$$$$!!!$$!!$$!$$$!$$$$$!!$!!!!!!!$$!!!!!!!!!!!!!!!! ! !!!!!!!!!!!  !!  !                vÕüþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³¸³³³·³·³³³³³·³¸¸³³³³¸³··6666666666i6666i6666666666666666666666666666666666666i6666666666666666666666666666666666(%% % %% %%%%% %% %% % % %%%%%(66666666666666666666666i6666666666666666i6666666666% 556666666666666666666666666i6666666666666666666666666666666666666666666666666i66666$K¸·¸····¸¸··¸¸·¸···¸¸·¸··············¸··················³··³³³³³³³³³·K·KKKKKKKKKKK³KKKKKKKKKJKKKKKKJKJJJJJJJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþÿÿþþþýþýþýýþþþþþþýýþýýüýüüüüð‡ŠŠ‡ðúúúúöøööõõëëííöö÷õóóóóóóúóóóóóóóóóóÁ4O4QðòóóóóòñððòððððððððððððððððàäðæðïïѾ333QáÝÙÑÑÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþýþýýýþúó÷ó÷÷óò§o=$!$$$$!!$=$$!$$$$!$==!$$$=$$===$$$$====$=$$==$$====$==$$====$=====$==$===================>=$==========>===$=======>==============================$==$=====$==============$===============$$=$====$==$$=$$=$$$$!==$$$$$$$$$$$$!$=$!$$$$!!!!$$!$$!!!$$!!!!$$!!!!!$!!!!!!!$!!!!!!!!!!!! !! !!!!! !  ! !  !    !    pÕýþþþþþþÿÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³·³·³·³³³³³¸³³¸··¸¸¸¸¸³¸¸666666666i666666666i6666666666666666666666666666i666666666666666666666666666666666666666(%% %%%%%%% %%%%%%%%%%% % %%%(66666666666666666666666666666i6666i6666666666666665(% % 66666666666666666666666666666666666666666666666666666666666666666666666666666666$³··¸·····¸¸····¸···¸·······¸¸························³··³³³³³³³³³KK³³KKKK³³KKKKK³KKKKKKKKJKKKKKKJJKKJJKJJJJJJJJJJJJJJJHJHGGGFGFFFFJKKKKKKKKKKKK/OOOÄþþþÿÿþþþþþýýýýþþþþþþüýýýþýüüüüüð‡‡Š‡ðüúú÷öõööøõëëííëë÷õ÷óóóóóóóóóòóóóóóóÁ424Qððóóòòðñððñððððððððððððððððàäðçðïïï¾333QáÝßÑÑÑïÑïÑÑÑïÑÑÑÑÑÑÑÐÑÐÐÑÐÑÐÐÐÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþýþýýýþúóó÷÷÷÷ò§p=$$$$=$!!$$=$!$==$$=$$$$===$!$=$$$$$$==========$===$====$$===$$==$$$$=================$$===============>=========$===================>============$==$==========$=============$====$$========$$$$=$!$$===$$===$$===$=$$$=$!!$$!$=$!$$!$=$$!!$$!!$!!!!$$$$!$!!$$$$!!!!!!!!!$!!!!!!!!!!!! ! !!!!! ! !           oÕýþþþþþþÿÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³¸³¸³³·³³¸³··¸³³¸·¸¸¸66666666666666i666666666666666666666666666666666666666666i666666666666666666666666666665(%%%%%%% % %%%% %%&%& %%%%%%%%% (566666666666666666666666666666666666666666666666665( (56666666666666666666666666666666666666666666666666666666666666666666666666666666$K¸¸·¸¸¸¸···¸¸¸·¸¸¸·¸¸··¸···¸··¸························³·³³·³³³³³K·³³³³KKK³KKKKKKKKKKKKKKKKKKKKKKKKJJKKJJJJJKJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþþÿþþþþþýþýþýþýþþýüüýýýþüýüüüð‡ŠŠ‡ðüúúúööööõùöööõööùùóóóóóóúúóóóóóóóóóÁ‡24Qòóóóóðòòðòòòðððððððððððððððààðððððï¾333QáÝßïÑÑÑÑïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐΨ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþýþþýþúó÷÷óó÷ò§p$$$=$!$==$!===$$$!$$$==$!!$!$$$$====$=$$$===!$$====$=======$$$$=====>==>>>=======$========$$=========$$============================>===$=========>==>======>=>=====$==$=$$======$==$!$$==$$$=!$==>=$$=======$$==$$=$$$=$$===$!$=$$!!!$$!!$$!!$$!$!=!$!!$!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!  !   ! !          pÕüþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³·³¸³³³³³¸··³³¸³¸¸··¸¸¸¸¸¸666666666666666666666666666666666666666666666666666666666666666i666666666666666666666665(((%%%%%%%%%%% %%%%%%% % %% %(((566666666666666666666666666666666666666666666666666% (66666666666666666666666666666666666666666666666666666666666666666666666666666666$K··¸¸·¸·¸··¸·¸·¸¸·¸·¸··¸·¸····¸··················³·····³³·³·³³³³³³·³³KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKKJKJJJJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKK/OOOÄþþÿþÿÿþýýþýþþþþþþþýýüüüüýýüüüúüð‡ŠŠ‡ðúúú÷ööööõõööõõöíõ÷óóóóóóú÷óóóóóóóòóÁ‡24Qòóóðòðððððòðòððððððððððððððààðâïïïï¾333QáÜàÑÑÑïÑçïÑÑÑÑÑïÑÑÑÑÑÐÑÑÐÏÑÐÐÍ­«<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHGGHJHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþýþýþþú÷÷ó÷óóò§p$!$$$$==$$$$$=$!$$==$$==$==$====$$===>==$=$=================>>>============================>=========>>====>====>>=>==========>=========================$=====>=$==========$=$$========$$$==>===$==$==$$!=$$=$$$!$=$$$$$$==$$$$!!$$$=$!!$=$!!$!!$!!!$!!$!$!$!!!$!!!!!!!!! !!!! !!!!!!! ! !!!! !! !! ! !!  ! ! !          pÓýþþþþþÿÿþýýýýýýýýýüàh³³³³³³³³³³³³³·³³³³·³³³³·³³³·³³··¸¸··¸³³¸¸¸66666666666i66666666666666666666666666666666666666666666666666666666666666i666666666666655%%%&%%%%%% % % %%% %%% %%%%(55666666666666666666666i666i66666666666666666666666666(% (66666666666666666666666666666666666666666i66666666666666666666666666666666666666$³·¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸¸¸¸¸·¸·¸·¸·¸·······¸·¸·¸·············³····³³³³³·³³³·³KK³³KKKKKKKKKKKKKKKKKKKKKJKKKJJJJJJKJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþÿþþþþþýýþþþþþþþýýýýýýüüýüüüüüð‡ŠŠ‡ðüüüüöõööõõööõõíö÷÷óóúóóóóóóóóóóóóóóÁ4O4Qòóóóóðòñòððððððððððððòðððððààðâçïðð¾333QáÜàÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÐ׫¨<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHJHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþýýþþúó÷÷÷ó÷ò§o=$$!$$$=$$$$!$$$$$==$$$==$==$$$=======$=>=$====$===========>===$===========$=============$=>==========>==========================================================================$=$$===$=======$$=====$$=$!$$$=$$=$$=$!$==$$$$$$!$$==$!$$$!!$!!$$!$$!!!!$!!$!!$$!!!!!$!!$!!!!!!!!!$!!!!!!!!!!!!!! ! ! !! !   !     pÕüþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³¸³··¸³¸³¸³³³¸··¸¸·¸¸¸¸¸¸¸¸¸6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666((%%%%%%%%%%%%%%%%%%%%%% %%%%666666i666666666666666666666666666666666666666666666665 (6666666666666666666666666666666666666666666666666666666666666666666666666666666$³·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸¸··········¸··¸···············³·³³³³³³³³³³K³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄýþþþþýýþýüýþþýýýýüýüýýýüüüüüüüüð‡ŠŠ‡ðüüúúõõööõõöíõõíöõ÷÷úóóóóóóóóóòóóóóóÁ4O4QðóððòðòðòòðòðððððððòðððððððæàçàçïïѾ334QáÝÙïÑïÑÑÑÑïÑïÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÞ¨¨Ó<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþýýþþúó÷÷ó÷÷ò¬p$!$$=$$!!$=======$$=$=$=$$=$$!$=$=$$=$====$=======$===================================>>>===============================>=>===========>=========>==>=======================================$$$==$$$$======$$=====$$$$=$$$!$=$$=$$$=$$$$!$$!==$!$=$=$!!!!!$!!$$!!!!!$!!$!$$$!!!!!!!!$$!!!!!!!!!!!!!!!!! !! !!!!!!! !!!!     pÕüþþÿþþþÿÿþýýýýýýýýüàh³³³³³³³³³³³³³³³·³³³³·³¸³·³¸···³¸¸¸¸¸¸¸¸¸¸¸6666666666666666666666i66666666666666666666666666666666666666666666666666666666666666665(%%%%%%%%%%&%%%%%%%%%&%%%%%%%666666666666666666666666666i6666666666666666666666665665( % 5666666666666666666666666666666666666666666666666666666666666666666666666666666$K¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸¸¸¸¸¸¸¸¸·¸¸¸¸¸···¸······················³³³³³³····³³³³KK³KKKKKKKKKKKKKKKKKKKJKJKKJJJJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK2OOOÄþþþþþþþþþýýþýþýüüýýýýýýýýüýüüüüð‡ŠŠ‡ðüúüüööööøõööõëíöù÷÷úóóóóóóóóóóóòóóòÁ‡O‡Qðòðòððòòðððððððððððððððððððààðàçðïð¾343QáÝáïïïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏ­°×Ê<&&&&JKKKKKKKKKKKGEFFFFFGGGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþýþúó÷ó÷ó÷ò§v=$!!$===$$$=$$=$$$$$$$=$$========>===$==$=============$=========>================>============>==>>>======>===$===>==========>======================$===============>=====$======>====$==$=========$=========$$$$$$$=$====$$!$=$$$$$$!!$$$$$!$$$$!$$$$!$$$!!!!!$$!!$!$!!!!!!!!$!!!!!!!!!!!!!!!  !!!!!! !! !!!          !vØýþþþþþþÿþýþýýýýýýýüàh³³³³³³³³³³³·³³·³³¸³·³³³³³¸··¸¸¸¸¸¸³¸³¸¸¸¸¸6666666i66666666666666666666666666666666666666666666666666666666666666666666666666666666%%%%%%%%%%%%%%%%%%%%%%%%%%%%56666666666666666666666666666666666666666666i6666666666% % % %5666666666666666666666666666666666666666666666666666666666666i66666666666666666=K¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸·¸¸¸¸··¸·····¸···¸····¸············³³³³³³³³³³K³KKK³KKKKKKKKKKKKKKKKKKKKKKJJJJKKKJJJJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK2OOOÄþþþþýýýþþýýýýþýýüýýýýýýýýüüüüüüðŠŠŠ‡ðüüúúöõùùùõööííëöõù÷úóóóóúóóóóóóóóòóÁ‡O4Qðòððòòðòòððððòðððòðððððððððààðæððïï�343QÏÝáÑïÑïÑÑÑÑïÑÑïÑÑÑÑÑÑÑÑÑÐÑÐ×°×ÍÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþýÿúó÷ó÷ó÷ò§p===$=$$=$$$==$==$$==$$==$$==========$========$============$==============>===>=============>===>===>===>===>==$===>==>=============================>=====>===================================$=$======$==$$$==$$===$$====$$$=$$==$=$$=$$$$$$!$$$$$$!$$$$$!$!!!$!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!! !! !!!! ! !!!      pØüþþþþþÿÿþýþýþýýýýýüàh³³³³³³³³³³³³³³¸³³³³³³³³³³³¸¸³³³³¸¸¸¸¸¸¸¸¸¸66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666(%(%%%%%%%%%%%%%%%%%%%%%%%%%%(5666666666666666666666666666666666666666666666666666666% % % %5666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸·¸¸¸·¸·····¸··················³³·³³³³³··³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJKJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþýüüüüþýþýýýýýýþþþýþþýüüüüüüýð‡ŠŠ‡ðüüúúööøøøõöíëíööõõ÷úóóúóóóóóóóóóòòòÁ‡O‡Qððòòðóðñðóòððððððððððððððððààðæððïð¾443QáÝàïïïïïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏ­­ÏÐÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúó÷÷÷÷÷ò§p==$=$=$$$====$$======$=====$$============$==$===$========================>==================>======>====>============>===>>=============>===========================$=>=================$>===========$$$===$========$==$$$===$$=======$==$$!!$$$!$$!$$$$$!!!!$=$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!! !! !!! !    pÕüþþþþþþÿÿþýþýþýýýýýàh³³³³³³³³³³³·³³·³³·¸³¸³¸³¸¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666((%%%%%%%%&%%%%%%%%%%%%%%%%(6666666666666666666666666666666666666666666666666666666 % % % 666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸···¸··¸···¸·¸············³·³³³³³³³³K³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK2OOOÄþþþýüýüüýýþýýþþþýýýþýýýþüüýüüýüðŠŠŠ‡ðúüüúöøùùøõöëíííö÷ùúóúóú÷úóóóòóóòòòðÁ‡O‡Qðòððòòðñðòòðððòððððððððððððààðæððïï¾443QáÝâïïïïïÑÑáÑÑÑÑÑÑÑÑÏÑÑÑÑÑÑ­°ÞÍÐÌ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúóó÷÷óóò§v$$$$!$$!$$$$$==$===========$$===$$======$$=======>=========================>==>>>====>>============>====>==>=>>=>====>=>======>>=====>=>==?>====>=======>====>==============>>===$======$=>======$===========$$=========$=$$$$$=$$$===!$$$$$$$$$==$$!$$!$!!$!$==$!!!!$$!$!!!!!!!!!$$!!!!!!!!!!!!! !!!!! ! !!!!  !! !!  ! !      pÕýþþÿÿþþÿÿýýþýþþýýýýàh³³³³³³³³³³³³·³¸·³³³··³³³¸¸··¸¸¸¸¸¸¸¸¸¸¸·¸¸666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666('%%%%%%%%%'%&%%%%%%%%%%%%(56666666666666666666666666666666666666666666666666666666%%%%% % %5666666666666666666666666666666666666666666666666666666666666666666666666666666$·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸··¸····················³·³³··³·³³³³KKKKKK³KKKKKKKKKKKKKKKJKKJKJKKJKJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK2OOOÄþþýýþüýýýþþþþþþþýýýýýýýþýüüýüüüðŠŠŠŠïüüüüöùööùõöíöíëëùùúúóóóóóóóóóóòóóóóÁ‡O‡Qòóóóòòðòððòððòðððððððððððððààðçðððï¾343QáÝáïïïïïÑïÑÑïÑÑÑÑÑÑÑÑÑÑÑÑ×°ÓÑÐÐÍ3&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúóó÷÷óóò§p=$$=======$=$$=======$=$=======$$$================>======================>>==>>======>==>=======>=======>>====$==>==========>==>>==>>=======>===>==>=>==>==>======================>==$=============================$$$!$===$$$==$!$====$$$===$$$$!$=!!!$$$$$$!!!$$!$$$$!!!!$!!$!!!!!!!!$$!!!!!!!!!!! !! !!!!  !!  ! !    vÕýþþþþþþÿþýþýþýýþýýüàh³³³³³³·³³³³¸³³³··³¸³³³¸¸·¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666(%%%%%%%%%%%%%%%%%%%%%%%%(566666666666666666666666666666666666666666666666666666666%%%%%% % 566666666i666666666666666666666666666666666666i666666666666666666666666666666666=·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸······¸···············³³³³³³³³³K·KKKKKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJHHGGGFFFFEJKKKKKKKKKKKK2OOOÄþþþýýýýþýþþþþþþþþýýþýýüýýýüüýüüðŠŠŠŠðüüúüõøöøøõööõëëëùøúóóóóóóóóóóóóóóóóÁ‡O‡Qòòóóððòòðððððòðððððððððððððààðçððïï¾444QáÝâïÑïÑÑÑÑÑÑÑïÑïÑÑÑÑÑÑÑÑÏ­ÔÏÐÐÍÌ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúóó÷÷ó÷ò§p=$$=======$=====$================$==============$======>===>>=>==================>==============>==>=====>>======>======>==>====>==>>=====>>>======>===============>=======================================>===$====$$==$$====$=$$=$$$=$$=$$$$=$$!$$!$$=$$!$=$!$!!!=$$!!$!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! ! !! !!! !   pÕýþþþÿþþÿþýþýþýýþýýüæh³³³³³³³³³³³³³³¸³³³³³··¸¸³³³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666665(%%'%%%%%%%%%%%%%%%%%%%%(666666666666666666666666666666666666666666666666666666666% % % %% % %% %% % (66666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸¸¸··¸¸········¸¸············³³³·³³³³³³³·³³KKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJKJJJJJJJJJHHHGGGGFFFFJKKKKKKKKKKKK/OOOÄþþþþþýýþþýýþýþýþýýýýýýüüýýýýüüüðŠŒŒŠïüüüüøøøøùõööõõíöù÷óóóóó÷óúóóóóóóóóóÁ‡O‡Qòóóòòòòòðòòðððòððððððððððððæàðâðððï¾444QáÝàïïÑïÑïïÑÑïÑïÑÑÑÑÑÑÑÑÏÔ°ÞÑÑÐÐÊ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúóóó÷÷óò§p=======$$=====$$$$==========$=======>$=========$===========?>====================>======>===>==>>=>====>====>>>>===>>>=====>>>===>=>>=>A====>=========>>>======>==>>=====A>===========>>======================$$$=============$$$=$=$$$=$$$$$$=$!$$$$$$=$$$$$$$!!!!$!!$$$!!!!!$!$!!!!$$!!!!!!$!!!!!!!!!!!!!! !!  !! ! !!!        pÕýþþþÿþþÿÿýýþýþþýþýüàh³³³³³³³³³³³¸³³³··³¸¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666656666666666666666666666666666666666666666666666655(('%''%%%%%%%%%%%(555666666666666666666666666666666666666666666666666666666666%%%%% %% % % % %% % %((6666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸···········¸········³³³··³·³³³³³³³³K³KKKKKKKKKKKKKKKKKKJKKKKKJJKJJJJJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK2OOOÄþþþÿÿþýþþýþþþþþþþýþýýýüýýþþýýüüðŠŒŠŠïüüüüøøøøùõööõõöö÷÷óóóóóóóú÷óóó÷óóòóÁ‡O‡Qòòóðñðòòððòðòðòòðððððððððððæàðæðððï¾444QßÜàÑïÑÑÑïÑïÑïÑÑïÑÑÑÑÑÑÑÙ°ÙÑÐÑÐÐÊ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿú÷ó÷ó÷óò¬v=$$=$$==$$=============$========>===========>===>>>=====>>========>>>==>>>===========>>>==>>==========>===?>===>>========>===>===>==>>===>>====>>===>>===>=>===>===========>==A=====================================$$==$$==$$$$$==$$$=$!$===!$$==$$$!==$!$$!!=$$!!!$!!$$$$$!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !     !      pÕýþþÿÿþþÿÿþýþýþþýþýýàh³³³³³³³³³³³³·³³³³³³³³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666655(%%%((%'%%%%%(566666666666666666666666666666666666665666666666666666666666i65(%% %% % % % % %% %(5(5666666666666666666666666666666666666666666666666666666666666665666666666666666$·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸·¸·¸··¸··¸··¸···········³··³·³³³·³³³³³KKK³KKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK24OOÄþþÿþþþþþþýþþýþþýýþþþýýþþþþþýüýüðŠŒŠŠðüüüüøøööøùööõõíöõ÷óóóóóóóóóóóó÷óóóóÁ‡O‡Qòóòòòòòðòòòóòòðððððððððððððæàðæçððð¾444QáÜàÑïÑÑÑÑÑïÑÑïÑÑÑÑÑÑÑÑßÛ­ÑÑÑÑÑÐ×<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷ó÷÷÷ò§p====$$=$=====$==$$===============$====================================>>>==>>=>===>==>====>====>>>==>==>=>>>=====>==>>===>===>===>===A>>=>=======>===>==================>=========>==>===========>==============$==========$=========$=$=$$$$$$$$$$=$=$$!$$$$$$!$$$!$$!!!!!$$!$$!!!!!!!!!!$!!$!!!!!!!!!!!!!!!! !!!!! !! !!! !  ! vØýþþþþÿÿþÿýþýþýýþýþýàh³³³³³³³³³³³³³³³·³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666655%(55(%%%%%(5666666666666666666666666666666666666656666656666666666666666666665(% % %%% % %% % %%%%(6656666666666666666i8i666666666666666666666666666666666666666666666666666666666666$·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸¸··················³·³···³·³³³KK³K³³KKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK2O4OÄþþþþþþþþþýýýýþþüýþþýýüýþþþýýüüüðŠŒŒŠðüüüüøøøöõõööõõööõõ÷óóúóóóóóóóòóóóòóÁ‡O‡Qðòðòðòòððñòòððððñððððððððððèàðæððïï¾444QÑÚßïïÑÑïÑïÑÑÑÑïÑÑÑÑÑÑÑÔ°ÏÑÑÑÑÑÍÊ<&+&+JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷óóóóò§v=====$=========================================================>======>>===>====>>>==A=====>>==>=======>==>>=====>>>>A=>>====>====>>==>==>>=====>>>>====>==>===>=========>=>>=====>>>======>===================================$=====$$==$$$$=$$$$==$$$$!$$=$=$$$$$$!!!$>ZZZZZ]ZZ[ZZZZ[ZZZ[ZZZZZZZZZZZYYZZYYZZYYYZYYZYYYYYYZZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@YYYYYYY@YYY@YB@@Y@@@@YYB@@YB@Y@@Y@Y@YYY@@@Y@@@YY@@YY@@@Y@@Y@@@Y@BY@B@@YYYY@@@Y@YY@Y@;#! vØýþþÿþþþÿÿýþýþýýþýþýàh³³³³³³³³³³³³³³³³³³³¸³³¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666566665666666666666666666666666666666666666666666666666666666666666666666666655665((88666666666666666666666666666666666666666666666666666666666666666665(%%% %%% %% %% % % % (6666666666666666666666666666666666666666666666666666666666666666666666666666666666$·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸··¸¸····¸·¸·¸············³···³³·³³³³³³³KKKKKKKKKKKKKKKKKKKKKKKJKJJJJKJJJJJJJJJJJJHHGGGGFFFFJKKKKKKKKKKKK244OÄþþþþþþýýþþþþþýþþþþþþýýþýþþüüüúüðŠŒŒŠðüüüüøøøøùõööõõöö÷õúóóóóóóóóóóóóóóóóÁ‡O‡Qòóòòòòòòòòððòððððððððððððððæàðæçððï¾444QáÝßïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÙ°×ÑÑÐÐÑÑÐÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþú÷ó÷ó÷÷ò§p=$====$===$==$====$======>===========>========>====>===========>=====>=====>>===>====>>====>?>======>>>>===>A>==>=>=>A>A>=>>>=>>>==>========>>====>>==>>>?>>=======>=>=>===================>>=>=======>=======================$===$=$==$====$!$==$==$!=$!$$=!$$=$!=$$!!$…çòòòññññòñòòòòñòòòòñññòòòòñññññññòòññññññòñññññññññòññññññññññòññññññññññðññññññññññññññññññññññññðññññðññðññññññññññðññññññññññðññññññññðñññññññññññññññññññññññññññññðáÏÏÎÃ�@  pØüÿÿþþÿÿÿÿþþþýþþýþýýàh³·³³³³³³³¸·¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666666i6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666655666666666666666656666666666666666666666666666666666666666666666666666(%% %%%%%% % %% %% %%%% 55666666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸·····¸·······³³·····³³·³³³³K³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKK244OÄþþþþþþýþþþþþþýýþþþýþýýþýþýüüýüüðŠŒŒŠçúú÷úöøøøùõööõõööõù÷óóóóóòóóóòóóóóóòÁ‡O‡QïòòðóðððððððððððððððððïïïïïààïâçïÑÑ�444QßÝßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÞ°ÔÎÐÐÍÐÍÍÍÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúóó÷÷ó÷ò§p==========$==>=======================A=======>==?==>=>=>=================>=>=>====>>=>>>>=====>>==>=>====>=>>?>>?=======>=>===>>==>=>>?>==>A>>>>>>=>>======AA?>>>>=>===>===>==>====>==>>========>=======================$$=$==$===$=>==$!==$=$==$$$$==$$$!$$!$=$!$$$==$=ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüòÎ…@ pÖýþþþþÿÿÿÿþþþýþþýþýýàh³³³³³³³³³³³³³³¸³·³³¸³·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666i66666666666666666666666666666666666666666666666666666666666666666666(% %% % %%%% % % %%%66666666666666666666666666666666666666666666666666666666666666666666666666666666666$·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸····¸·¸··········³³·³³³K³K³³³KK³KKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK2444ÄýþþýþþþþýýþýýýýþþýýüýýýüýþýýüüüŒŠð÷ó÷óöùøùõõööõõööõõ÷óóóóóóóòóóóóóóóó•‡O‡QïòòòððððððððððððððððððïïïïÑàäçâÑÑÑѾ444QÏÜàÑÑÑÑÑÑÑÐÑÑÐÑÑÐÑÐÐÔ°ÎÍÍÍÍÍÍÍÍÉ3&&&&JKKKKKKKKKKKGEFFFFFFGGGGGHHGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþÿþþþþþþþþþú÷ó÷óóóò§p=$$=========================>===============>===>======>===>>==>===>>>>=====>==>>=>====>>====A>>>>>=>>>==>=>>>=>=>>>>>====A=>>>==>=>>>>>>==>>?>==>>=>>>=>==>=====>A>======>>==>=>>=>>===>====>====================================$==$=$$==$$==$$=$$===$$=$$$$$$$$$$$$$=ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñÃY  pØþþþÿÿþþÿþþþþþýýþýþýàh³³³³³³·³³·³·³·³·³¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666666666666666666666666666666666666666665666666655666666666666666666666666666666666666666666666666666666666656666666666666666666666666666686666666666666666666666666666% %%%%%%% %%%% % %%%%%55666666665666666666666666686666666666666666666666666666666666666666666666566666666$·¸º¸¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸···¸·¸·········³³·³····³³³K³³K³KKKKKKKKKKKKKKKKKKJKKKKKJJKJJJJJJJJJJJJHJHHGGFFFFFFJKKKKKKKKKKKK24OOÄþþþýþþþýüýýþýýüýýüüýþüüüüüýýüýüðeŒŒŠç÷÷óóöøööõõíöõõööõõóóóòòóòóóóóòðòðòò•‡O‡QïðððððððððððïððððïïðïÑÑïÑÑÑààÑÑÑÑÑѾ444QÏÜßÑÑÐÍÐÐÐÐÐÍÍÍÍÍÍÍÓ°×ÍÍÍÍÍÍÍÍÍÄ2&&&&JKKKKKKKKKKKGEFFFFFFGGGGGGGHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷÷ó÷óò§v===================>====================>===>===>==>========>>>A==>>=>A>==>>>>>>>>>=====>>>=>>>=?>=>>A?>=A>A>>>A>A>>AA>>A>A>AAA>>A>>>A>AAA>>A>A>>AA>>>A>C>>>A>=>A>AA?A>>>AA>>>A>>C>>>>>>>>A>>A>==>>====>==>>=>==>>=>=====>>=>==>=======>====================9==$===99$$9ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÃ@   pØýÿÿþþÿÿÿÿþþþþýýþýþýàh³³³³³³³···³³¸³³³³³¸·¸³³·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666666666666666566666666666666666666666676666656666666666666666666666666666666666666666666666666666666666666666666666666666666666666666665666666666666666666666666666666 % %%%%% %%% %% %%%%%(6666666666666666666686666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸º¸¸¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸···¸·¸···············³³³³³³³³³³³KKKKKKKKKKKKKKKKKKKJKJKJJKJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK2444ÄþþþþþþýýýýþþþüüüüýýüýýüüüúúüüüüðŠŒŒŠÑóóóóöõööõõööõõëííôóóóòñòòóóóóòòðððð¾‡O‡QïðïïððððððïïÑïïïïÑïÑÑÑÑÑÑÑÑÚàÑÏÑÑÑÐe444QÎÖÞÍÐÍÍÍÍÍÍÍÍÍÍÍÍÍÎÛÔÍÍÍÍÍÍÍÍÍÄÉ3&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿü÷÷÷÷÷÷ò§v=====$=========$======>>>>>=========>>=>?>>========>>>>=>>>>====>====>>>>=====>>>=>=>>===>=>>=?tx‚ƒ–ÆÈÈÉÆÉÈÉÉÈÉÉÉÆÈÉÉÉÉÉÉÈÈÉÉÉÈÉÈÉÉÆÈÉÈÈÉÉÉÈÈÆÈÉÉÉÈÈÆÈÆÉÉÈÈÈÉÉÈÈÈÉÈÆÉÉÉÆÈÈÈÉÉÈÈÆÆÉÈÆÆÈÈÆÆÆÈÉÆÈÉÆÆÉÈÆÆÈÆÈÆÉÆÆÆÉÆÆÈÈÆÉÆÆÆÆÆÆÈÈÉÈÆÆÆÆÆÆÆÈÈÈÆÆÆÆÆÆÆÉÆÆÆÆÆÆÆÈÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÌññññññññññññññññññññññññññççñññññññññçñññçññçñññññññññññññññçññññññçññññçççññçñññçñççññçññçççññççñññççççççççççñçççççççççççççççççççççñçççççççççççççççççççççðçççççççççðñçðòüüþÿÿÿÿÿÿÿÿþÏ[   oÕþþþÿÿþþÿÿþþþþþþýþýýàh³³³³·³³³³³¸³³¸³·¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666656666666666666666666666666666666666666666666666666866666666666666666666666666666666666686666666666666666666666666666666666666656666666666666656666666666666666666666655(%%%%%%%% %%% %%%% %% 566666666666656666666666666666666666666666666666666666666666666666666666666666666666·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸···················³·³³³K³K·K³KKKKKKKK³KKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKK2444Äüýþþýýüýþýþþþüüüüüüüüüüüúú÷úüüúŒŠÑóóóóöõööõõööõôëëéòðóòðððððððððððððð¾‡O‡QÑïïÑçïÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÐÍÙÙÐÙÍÍÍÍe444QÎÛ×ÍÍÍÍÍÍÍÍÍËÍÍÍÄË­°ÈÄÄÄÄÄÄÄÄÄÄž:&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷ó÷ó÷ò§p=====$============$=========>==================>>>=====>>=>===>==>>==>>=>=>>===>>>>>>>>>==>CtƒÈçúüüýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþá_ZZZZZZZ]ZZ]ZZ]ZZZZZZZZZZYYZZYYZZYYYYZZYYYYYZYYYZYYYBBYBYYYYBYBYYBYBBYBYBYBB@@YB@B@@Y@YBB@@@BB@@B@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@BB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Y[_‚ÂÏóþÿÿÿÿÿÿÿñ‚   pÕüÿÿþþÿÿÿÿþþþþþþýþýýàh³³³³³³³¸³³³³³¸³³³¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666556666666666666666666666666666666666666666666666656666666666666666666665666666666666666666666666665666666666666656666666666666666666666566666666666666666666666566666666666(%%%%%%%% %%%%%%%% % %5666666566666666666666666666666666666666666666666666666666666666566666666666666666666$³º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸···¸·····¸¸··········³···³³K³³³KKK³KKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK2O44�ïððððððððððððððððððððððïÑïÑÑáðçÍeŒŒŠÑòóóòöùööôõööõëëëéððòððððððððððððððð¾‡O‡QÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÍÍÐÐÍÍÍÍÍÙÙÍ×ÍÍËÍe4444š�ÂÄÁÁÁÁÁÁÁÁÁÁÁÁ—¤›ÁÁÁÁÁÁÁÁhhg†3&+&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷ó÷÷óò§o======$======================>===>=======>===>>>>======>====>=>>>>>==>A>==A>==>=>C>>>>===CxÉñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáB$!$$$$$$!!!!!$$!$!!$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!         #YÂñþÿÿÿÿÿÿó„  pÕýÿÿþþÿÿÿþþþþþþþþýþýàh³³³³³³··³³¸³¸³·¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666668666666666566666666666656666666566666666666666666666666666666666666666666666666666666666666666666666666566566666666656666666566666666666666666666666665665(5(%%%%%%%%%% % %%% %%(5666666666666566666666666666666666656666666666666666666666666666666666666666666666666$³¸¸¸º¸¸º¸¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·················³·³³³³·³³³³³KK³KKKKKKKKKKKKKJKKJKKJKJKJKJJKJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK244O222222222222222222222222222222222ŠŒeоÁÁ•Á————••——••••••••••¾•¾�¾¾�¾•¾��¾Q‡O‡4e¾¾¾¾¾¾¾¾¾eeeeeeeeeeeeeeeee��eaeeeeQ444*+0++++++++++-+++++++++++++++++++++&&+JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúó÷ó÷÷óò§p==============================>=====>==>=>==>>>==>>===>====>>==?>=>>=>?>=>>>>>>>>>>>>>==tÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@=!$=$=$!$$!!!!$!!!!!!!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!   !      YÃòþÿÿÿÿÿò_ pÕýÿÿþÿþÿÿÿþþþþþþþþþýàh³³³³³³·³³³³³³³¸³¸³¸¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666666666566666666666666666666656666666656666666666566666666665666666656666666666666666666566666666666666666666666666666566566686566666666665(%%% %% %% %%% %6666666666666666666666666666566666656666666666666666666666666666666666666666666666666$·º¸¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸·¸··············³·³·³³³³³³³³³³³KKKKKKKKKKKKKKKKKKKKKJJJJJKJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK244444O4OOOOOOOOOOOOOO222222222222222ŠŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠŠŠŠŠŠŠ‡‡ŠŠ‡‡ŠŠ‡‡‡‡‡‡‡‡‡O‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡4‡‡‡‡‡‡4444444444444444444*++++++++&+++++++++++++&&++&&+&+&&&+&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷ó÷ó÷ò§p=$==============>>==>=>==============>>==>===>===AAA>=>=>>=====>=>>>A=>>>=====>>===>?AAƒçþÿÿÿÿÿÿÿÿþþþýþýþýþýþþýýýþýýýýýþþýýýýýýýþýþþýþýýýýýýýþýýýýýþýýýþýýýþýþþýþþþþýýýýýýýýýýýýýýýþýýýýýýþýýýýýýþýýýýýýýýýýýþýýþþýþýýýýýýýýýýýýýýýýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýüÏ]ZZZZZZZYZZZZBBBBYZYBYZZBZZBYBBZYZZBZYBBYYYBBBYBYBBBBBBBBBBBBYYBBBBBB@BB@BB@BBB@B@@B@@@@@@@@@@@;@@@@@@@@@@@@@@@;@@;@@@@;;;@@@;@@;@@@;;@@@@@@@;@;;@@;;@;@@@;;@@;@;;;;9#  [áþÿÿÿÿÿçY pÕýÿÿþÿÿþÿÿþþþþþþþþýýàh³³³·³³³³³¸³·¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸65665666666665666666666666666656666666666566666665666666666666666666666666666666666666666666656666666666666656666666666666666666666668666666666666666666666566666666666666666666666655((%%%(% %%%%%%56666666566666666686666566666666566666666666666666666666666666666666666666666666666666666$³º¸¸º¸º¸¸¸¸º¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·······³·····³³···³³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKJKKJKJJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK24444444OOOOOOOOOOOOOOO22O22222222222ŠŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠŠŠŠŠŠ‡ŠŠŠŠŠ‡‡‡‡‡‡‡‡O‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡4‡‡4‡444‡444444444444*+++++++++++++&++++++++++++++&&+&&&++&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþüóóó÷÷÷ò§p======================>===>>===>===>=>=>=>>=>>==>=>>=>>=?>=A?>>A=>>>>==>>=??>==>>>=>=CÅ÷ÿÿÿÿÿÿÿýòáÞÌÆ�ÅÅÅÅÅ�ÅÅÅÅ�ÅÅÅÅÅÅÅÅÅ›ÅÅ���Å�Å�ÅÅÅ›ÅÅÅ��ÅÅÅÅÅÅÅÅ›ÅÅ›Å���ÅÅÅÅÅ�Å›ÅśśÅÅÅÅ›ÅÅÅÅÅ–Å›ÅÅÅÅÅÅÅÅÅÅÅÅ–›Å›ÅÅÅ––ÅÅÅÅÅÅÅÅÅÅ›–ÅÅÅÅÅ–ÅÅÅ–––ÅÅ›ÂÅÅÅÅÅ––––›–›Å–––––—Å––Å–––––––––ÉñòòòòòòòòòòòòòòòñòòòñòòòòòòòòñòòòòòòòòññòññòòòòñòññññññññññññòòññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññðáÎÈ„[#  @ËýÿÿÿÿÿÏ# pÖýþÿþÿÿþÿÿþþþþþþþþþýàh³³³³³³³³³³³³³³³³¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666665666866666666665666666666666666666666666666665666666666668666666666666666666666666666666666666666666566666665666666666666566666655666666666666666666665666666666666666655(%7%%%%%%666666566666666665666666666666666666666665666666666666665566666666666666666666666666656656$·º¸¸º¸º¸º¸¸¸¸¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸···················³·³³³³³K³³³³KKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK/O22O222222222222222O2O22222222222222ŠeeŒŒeŒeŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠŠŠŠŠŠ‡ŠŠ‡‡Š‡‡‡‡‡‡O‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡4‡‡‡44‡4444444444*+++++++++++++++++++++++++++++++++++++JKKKKKKKKKKKGFFFFFFFFGGGGHHGHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþÿþþþþþþþÿú÷÷ó÷÷óò¬|===============>======>===>===>>===>=>=>==>=?===>===>>>>>>>?>>>>>>>>>=>>>=?>>>>>>>>>CÈúÿÿÿÿÿþ÷Þ›xCCACAA=>AC>?A>AACA=>?C>AA>>AAAA>AAAAA>>A>>>>>AA?>AAA>>>A>>A>>>>>A>A>>?>A>>>AA>=>A>>>>==>>>>>>==>>>=A>>====>=>>>>===>>====>>>===============================$===$======9ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÏ•@#Èþÿÿÿÿü‚pØýÿÿþÿþÿÿþþþþþþþþþþýàh³³³·³³¸·³¸³·³·¸¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6656666666665665666666566566666666666666666656566655656666666656666666666666656666666666666666666566666666565566666666666666666666566666666666666666665666665556666666666665665666666666565( (((6666665666666655666666666686566666666666666666666666666666666666666666666666666666666556666$·º¸º¸¸º¸º¸¸ºº¸º¸¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·············³³·³³·³³³³³³³³³KK³KKKK³KKKKKKKKKKKJKJKJJJJJJJJJJJJJJJHHHGGFFFFFFJKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJ///0/0000000000004QQ44QQQ4QQ4Q444444444444OO4O4OOOOOOO4O4OO2OOOOOOOOOOOOOO2OOOOOOOOOOOOOOOO2O22O222222XxJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúóóóó÷÷ò¬|========>>=====>>=====>=======>==>=======>=>>>>>===>>>>>===>>=>>>>>>>>CC>=>=>A=>=>ACÉüÿÿÿÿÿ÷΃t?>>==>>>>>>>>>A>>>C>=>A?>?C>>?>=>=>=>>A>==>>==?>>>>>>>>>>?>>>>>>>>>>>>>CA>>>>>>====>=>==>>>A>========>>==>=>>=>>>==========>=============================$$===$$$$$==$$$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýç…;;Îþÿÿÿÿá; pÕýÿÿÿþÿþÿÿþþþþþþþþþýàh³³³³³·³¸³·³¸³³³³³³¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666665666666666666666666666666666666666666666666665666666666666666666566666655666656666666666666566666666666666666666666666666666666666666666666665666666666666656666568666666666666666656658666666665566566655666656666666665666667566666666666666666665666665666666666666566666666656666!·ºººº¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸···············³·³³³³³³³³³³·KK³KKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKK·KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGGGGHHGHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿü÷ó÷÷÷óò§v=====================>==>A======>>=>>>>==??==>>>>>=>===>?>>>>>>=>=====C>>>?==?>A>>AÅúÿÿÿÿþçƒCA?>>>?>?>=>>>>>>>=>A>=>>?CA=A>>>>>>>>>>=C?>???>>??C>??>>>>>C>>=A>>>>==>==>>>>=>>====>?>>?>>>==>>====>>=>>>==>>======>>====>=======================>=$========$=$==$$=$===$=ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÏYYçÿÿÿÿü„!vÕýþþÿþÿÿÿÿþþþþþþþþþýæhKKKKKKKKKKKKKKKKKK··K·········K··K·K··K···6666676666666666665665666666666665656666666666656666666666666666666666666665666666666566666566656656666665665665666666666666656666666666866666666665666666666666665666666666666666666666666666666666666666666666666666666666666656666666666666666666586666666566666666666666666665666666666666$·ºº¸ººº¸ººº¸¸¸¸º¸ººº¸º¸º¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·················³³³³³K³³³KKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGHGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúóó÷óó÷ò§v==========>>==>>====>>==>A======>>>==>==>>>>>>==>>>?=>>=>>>>>>>=>?>>>=A>>>>A>?>>?>”÷ÿÿÿÿþÞx?C>>>C>>>>?>>>>>CA>>=>>>C?>A>>>A>>>>>???>=?>>>>>>>>>>>>A?>>>>>>A>?>>??>>>=>>>>A=>>A>>=>>>=>===?>=>=>>>A>======>>>>==>==========A===>>======$=======$====$========$====$$===$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð� �üÿÿÿÿá#  pÕýÿþÿþÿÿÿÿþþþþþþþþþýà�6666666656566666666666666666666666666666666656565666666675666666666666666666666666666666666666666666666666665665566666666856666656666666666666666666666666666666655666666666665666666665666666666666666656666666666666666666666666666666566566668666665666666666666666656666666666666666666656$K¸¸¸···¸···¸¸····¸·····¸·¸¸·······¸······················K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJHJHHHHHHGGFFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFFGGGGGHGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHJHJHJHHH�èþþþþþþþþþþÿúó÷óó÷÷ò§v===>======>>==>>=====>===>====>===>===>>>=>>>===>=>>>>>==>>==>>>>>?>>>>>>>>>>>>>A]çÿÿÿÿþÉtA??>>>>>>>>A??>>>>>>?A>>>C?>>=>>?>>>>>?C>>>>AA>=A?>>>>>=>A??>=>>>>>>>>>>?>>>>>>>>>>>>>>=>>>>===A>>>=>>>>>>===>=>==>==>=======>==>===>==================$==>$====$=$=====$$==$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò‚#Îÿÿÿÿ÷Y  pÕþÿÿÿþÿþÿþþþþþþþþþþýà�5666666666556666566666666666665666666566666666666666666666556666665666586666565666666666566666666656666666566666666666666666666666666666666666666666666666656655666556666666666666666656566666668666656666666565666666666666666666666666665666666666665666666666665666566666666666666666566866$HHHHHHHHHHGHGHHGHHHHHGHHHHHHHHHGHHHHGHHGFFFFFFHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJF�èþþþþþþþþþþÿúó÷ó÷÷óò§p===>=>=>======================C>=>===>A>=>>>>==>>>===>AA>>>>>>?>>>?A>>=>>>=>??>>CÉþÿÿÿþÞt>>>>>>>>>?>>=>>?>A=>?C??>>??>?>AC?>>>>?>>>>CC?>>>??>??>>?>=CA==C>=?>>>>?>A>?>>>?C>>>>==>>>>?>=?>>>>>>>>=>?A>=>>>?A==========>=====>============>=================$======$$$==$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò[_úÿÿÿü…pØþÿÿÿþÿÿÿþþþþþþþþþþýà�""6666666666666666666666666666565566666665666666566566666666666665665666666666666666666666666666666666666666566666666665666666666666666666666666666566566666666666665866566566666666666666655566666666566665666666566666665665666666555556666665666666666666666666666655666566566666666555566666$   �èþþþþþþþþþþÿú÷óóó÷÷ò§p=============>?==>====>>>>>>>=?>=?>>>>>>>>>=>=>>>?C??>>>>?>>>=>>>??>>?>>>?>?>>>>xòÿÿÿÿá]A>>>>>?>>>>>A?>>AC?>>??>?>>>>>?>?C>>>>>>?>>>>>>>>>??>>>>>>>>>>>>A>>?>>>>=A?=A?>>>>>>>>==>?=A>?>=>>=>>?>>>===>>==>>>=====>>========>====>=====>=>========>================$$===$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@!ÏÿÿÿÿÎ  pÖýÿþÿÿÿÿÿÿþþþþþþþþþýà�""6666666666665666666666666666666556666656665666666566666666656666655666666656666656656666666656666665666666566685566666666655666666666656655656666666666666566666666666666856666666666666666566665666666666566656666666666665666665666666656666655665666666666666665666556666666666566666566666$ �èþþþþþþþþþþÿú÷÷÷÷÷÷ò§v=========>====>==>==>>=>>>=AA=>>=?>>>>>>>>==?>==>>>>>>>?>=>?>>?>>>>??>>>A>>>>>>CÌþÿÿÿòz>C>>>>=AC?>>????>>>>?AA>>?CA>>?>>>C>A???>AAA???>>>>>>>>>>>>>>>>???>>>>>>A>>?=>>>??>>>>>>>>?>>>?>>>>>>>>>=>>==>>>====>>>==A>=>==>==>>=>>====>==>=======>===$======$==$======$=====ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþË „þÿÿÿð;  oØþÿþÿþþþÿÿþþþþþþþþþýà�""""""""""""6666665566566666566666666666666666665566565666766666666666666666666666666666665666656666656665666665666666665566666656666666565666665666665556666655665665556656666666666666666666666666666666666555665566666666666656666655566666666668866666666666665666666656666666566565665666666686655666$ �èþþþþþþþþþþþúóóó÷÷óò§q==>=========>>>===>====>>>=>>==>>>>=>>>>>>>>?>>>>A>=>>>?>>=?>??>>>>??>>??>>>>>>xòÿÿÿþÉC>>>?>?AA?l?>?>??>>>>??>>>>?C?>??>>????????>??CC?>>>>>A?>>>>>>?>>??>>>=>>?>>>>>>=?CA=>A?A>>?>=>>A>>>==A=>=>>>>>>>>===>>>==>=>>>=>==>A>>=================================$$===$====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó[ Yúÿÿÿó[pØýÿÿÿÿÿÿÿþþþþþþþþþþýà�666666665566666666666666666566666666665666665666665666666666666665666556666666666656666666656666666566666666666666666666656666666656666565566666665666656666565666666656666656656765666666665566566666666666686666666666656666565565666665666566666666666656666565666666665665565566666666666$""""" """""""""""""�èþþþþþþþþþþÿúóóó÷÷óò§s==>>>==>======>>==>>=>>======>>>>>?>>>>=AA>>?>?A==?>>>>C>>>?>>CACA>?>>?>>>?A>>A–üÿÿÿòz???>>>C?C>?>>>>>>>CA???>>>>>?>C??>???>>>>?>>>>?>?A>>>>?C??CCA>??A?CCA>>>?>>>>>>>>?A>>>?>>=>=??>>?>>>>>C>>==>>==>>=>=>>=>>>===>>=>>==>>============>=======>=======>=============$=ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ 9áÿÿÿü� vØýÿÿÿÿÿÿÿÿþþþþþþþþþýà�""""""""""""""""""""6655665666565665666666566666566566666666666666665665666665566666665666566656566566566665666565666665666665566666666666666666666565666656666566666666566556666566655556655666556666666655566656666666656556566666656566766557665566665566666666666666656665565666666665666566566686665666665655$"""""""""""""""""""""""""""""""""""""""""�èþþþþþþþþþþÿú÷÷÷÷÷÷ò¬|=>=====>===AA>>=>=>=>>>=>?A>>>=>>>=?>>CA>>>=>>=>>?A>??>>>>>>>>A>>>=A?>>>>ACA?>lÞÿÿÿþÉl?>??>>>>>>>C?>>??>?>>?C>>>???>>>>?>>>?>>>>>>A>>>ACCCC>=>>>CC?>??>>A>?CA>?=A??>>=>A>>>A>>???=A>>>>>==>>>>>A>?>>>?>=>>>>>=>?=>=>>>>>===>>====>>>==>===>=============================Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú[ Îÿÿÿý„  pÕþÿÿÿÿÿÿÿÿþþþþþþþþþýà�TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT86666666766666665665666666566665665866666556666565565666666666665566666555666666666666666655656665566666666566666666556655556665666666666666666666665656656566675656666566586766666666666666666565665666666666666666666666666655555565666666556656655556666655556665566666656666665666656655$""""""�èþþþþþþþþþþÿü÷÷÷÷÷÷ò§p>>=>==>=>==>>=>=>=>=>>>>>>>>>==>>>==>>>?=>>=??>>>??>>>>>AA>>?A>>>>>>>?>>>>???>xñÿÿÿúƒ?>>?CCC>?>>???C>??=??>CC??>A??>>?>???>???>A?>C?>>>??A??>C?>>A>>?>>A?>>A>>>>??A=???>>>>>>>>>>>A>>>>>>>>>>?>>=>A>>>>>>?>=>>>=>>>>>>>=>>>=>>===>=>==>===>=====================>=$=====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ Ëÿÿÿþ…  pØýÿÿÿÿÿÿÿÿþþþþþþþþþýà‚XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX666666566656666666666566665665666666666666556666566656566666666656566666666666565666566666656656665665666665666566666565556666666566656656655666655666556656666666666666666666666656566656666667666666666666565666666666656666565666665666656656565565566666666666666666656566666666666656665$"TTTTTTT"T"T"T""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""�èþÿþþÿþþÿþþÿú÷÷÷÷÷÷ò§p>====>===>======>=>=>A?=>>==>=>?>>>=>==>>?>>CAA=A???>>>?>>>>??>>A>>>>>>>>>>??Aƒüÿÿÿñu>>A?C??CC>>C>?C>????C???CC?>A>>??>???>?CCA>?C????>A?>>CCC?>>?A>?>?C>>>A?A>AC?>>??CA>>>>??=>>AC>=>>>???>>>>>>>>>>===>?A>==>=>>>>>>>>>>>==>===>=====>===>========>==========>========ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ Æþÿÿþ  qØþÿÿÿÿÿÿÿÿþþþþþþþþþýàh··········································6666565666666566665566656566666566666556656666666666666555665655666566665656666666666666666665666566665666666666666566655666566656666666656666556556666666675686866666666665666556666666666665566666666565565566666666666666655666666565665666665656666665566566665686665665556666666665566665$TTTTTTTTTTUTTUUTTTTT:TTTTUTTTTTTTT:TTTT::T:T:TTTTTTTTTTTTTTTTTTTTTTTTTTTTT"TT"TTTTTTTTT"T"TTT"TTTTTTTT"TTTT""TTTTTTTT""T""TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTTT"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT�èþÿÿþþþþþþþÿú÷÷÷÷÷÷ò§p>==?>==>>>=>=>A>=>?>==>=>>=>>>>>>>>=?>>>>>>>>>>=>>>>>>?C>>?>>>?C??CC?>???C>>>?›ýÿÿÿÎC???>?>>?>>>?>>?>>>?CC?>>CC?A??>C?>?CC>?C>?C?C>>?C?A>>??C?A?>CC>C?>??>>CC>>>?>>=>>?A>A?>>?>?C>>??>=>>>>>>>=>?>=>>A>>>>>?>>>>>>=====>>>>>===>>>>==A>=======?>====>>============>=====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷@Âþÿÿþà    pÖþÿþÿÿÿþÿÿþþþþþþþþþýàh³³³³³³³³·³³³·³·³³¸··¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸5666656665665666566666656665666556566555666666866666666666565665665566855666566666665666666665665656665556566566665666666665565656666666566656656656656666666666666566666665666676665566655666666556666565656666666566656566656666666666666656667666665656666556666666656665665556665666656665$W············bb·bbb¹¹bbbb¹bcbbbbbbbbbbbbXXXXXXXXXWXXXXXWXXXXXXXXXXXXWXWXWWWXWWWWWWWWWWWWWWWWWXWWWWWWWWWWWWWWWWTWTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTWWTTWWTTWWTWTWTWTWTWT�èþþþþÿþþþþþÿú÷÷÷÷÷÷ò§p>==>==>===>>=>A>==?>>>>>>>C??>>=>A>?>>???>?C>C?>??>>>A??A>>>>?C??>??>>C?>?A??AÆþÿÿþÉCAAA?CC>?>>>???>>??>??CA>??>CCC?>?????>??>??CCA???????>>??>?>??>??C??>?C>>>>>A?>?C?>?>?>??>>?>>A?>?>?>>>>??>?AA>>>?>>=>>>==>>>>=>>=>>==>>>>>>=>=======>=A========>>=================ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýYÂþÿÿþà pØýÿÿÿÿÿÿÿÿþþþþþþþþþþæh³³³³³·³³·³³³·³·¸··¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666656666666566666865668665565666666556666666666666665655666666665655666566566666565666666666656656655566556666665565566655565565556566556666565565665665665566566665565675656665666656665566565565656666665665656566556656656566565565686655556566566665665566566666576556665666655656665666!¸ººººººººººººººººººººººººº¸ºº¸º¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸···¸····³·³····³³·³³³³³K³K³KKKKKKKKKKKKKKKKKJKKKJJKKJJJJJJJJJJJHJHGGGFFFFFFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFFFFFFFGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþÿþþþþþÿú÷÷÷÷÷÷ò§v>===>=>>=>>>==>=>==>>>>>>?>>A?=>ACA>>A>A>>A?>A?>AA>?=>>>C?>>ACC?A>?????>>>>??AÉþÿÿý›A?>>????C????C????C>?CC??>?A??CCA>C>?CC?>?C??C????>?????>>????>>>?C?A>>??A>>??>>?C?>?>>>???>??>>>>?A>C>>>??>>>>?>>>>>>>A=>>>=>A=>>=>==>>>>=>==>==>====?>=>=====>===>================Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ�Âþÿÿþà oØþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³·³³³³³³³·³·³³¸³³···¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6676665665666555566666666656556566555566655665665665665666666666566566565566656666566656655666665666855667666656656686556765565665555655566555556656656566556656685655656666655666655655555566665656666666666666667666565656565556566666655665666666556666556666656555665565555665566666$¸ººººººººººººººººººº¸º¸ºººººº¸¸º¸¸¸º¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸···········³·³³³³³³³·K³³KKKKKKKKKKKKKKKKKKKJJKKJJJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKHFFFFFFGFGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþÿþþþÿú÷÷÷÷÷úò§v>=>=>>>=>?>>>>>>>>=>>>>>>>>>>>>>>??>>C?>>?>??>>>=AC>>>>>>A?>?>A??>A?????>=???CÞþÿÿü”?>C?>>>C?>?CC>?CCCC>?C????C?>?CC??C?ClCC?>CCCA?>C???C???>?C?C???>??>??>??CCAC?>>??>>>>>>>??>>??>>=A>>A>>>?>>>>>>C>=>?>>>??>?>>>=>>=>=>>=>>=>>>=>>A>=>=>>=>=>==>>====>==>=======>====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„Âþÿÿþà pØþÿÿÿÿÿÿÿþþþþþþþþþþýàh³³³³³³³³··¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666655565566666666655665656656666666666555656866566556566566655656566565565666656666555556855656556667655555555666565656656566566656666666556666666666666665666566866656665866565655565566655655566566665555565666666656665656556566656656665556665566656665665665556666566655656666566566$¸ººººººººººººººººººººººº¸ºº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·····³····³³³·³³··³KKK³KKKKKKKKKKKKKKKJKKKJKKKJKJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþþþþþÿú÷ó÷÷÷÷ò§v??A>=>C>>>=>>==>>>>>>?>=>>?>>=>>==>>?C>>>>A?>>>>>?C?>>??>>A>C?>>>?>>>>CC?>CC?tßÿÿÿü”l?lCCCC?>>??CC?CCC?CC>>??CC?C??>>>A????C?>?C?>>??CCClCC?C?>?CCCC>?C?CC?>>?A>?C?>>>?>>?C?>>>>==>?C>?CA=>>>?>??>>=>>>A?>>>>>>>>>>>>>>>==>>=>==>?>>>>==>====>==>===>====>==============Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³³³³³³·³³·³¸³³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸556556665556556666556655555766655666566666666566666855555556556656666665655665566656666656566655555576666666666666566665666666666656566656555665666666655565655565556565566666665656656666666666655656666566566666666655656586666566665666656565666655656666565566566666556666655655666566556!¸ºººººººººººººººººººººººººººº¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·····¸··········³³³³³³³³·K³KKKKKKKKKKKKKKKKKKKKKJJJJJJKJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGGGGGHHGHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿÿÿþÿþþþþþÿú÷÷÷ú÷úò§p=>>>==>>>>>=>>>>>>>>=>>=>>>>>>???>>>>>>?>>>A>>>C>??>>C?C>??>A>>C??>?>>?A>?C??tÏÿÿÿüƒC>>?CC??C?>>CCCC???l?>?lC?C>????CC?CCC>??>C???CC??>?????C?CC???>?CC?>?C>>??CCCC>>>A?C?>CC>>??ACC?>?CC>>>>??>?AA>A?>>>>>>?>>>>>>>>>>>>>=>>>=A>==>>A===>===>=>===========>=======$====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vÖþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³·³³³³³¸³³·³·³¸¸··¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666556576556656665866666666555656568555555666565666656655666555656666566556655766666665665665666655666666566655656656666666565886656566666655666666566566556666668666666568666555566656666666576565565665566566566556566566686655666666566666665666665566556556666666566656556666565666655$¸ºººººººººººººººººººººººººº¸ºº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸····¸··········³³³³³³³KKK³KKKKK³KKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþþþþþÿú÷÷÷ú÷úò§v>==>=>>>=>>=>?>>>>>>>=>?>>>??>???>>>>?>>?>>?>??>?>??>C?C??C>>>?C???AA??>>A?>?tÏÿÿÿüƒ?????C??l???>CC?CC?CC??CCCC????CCCC??C????C>?lCC?>>???CCC?C?>>>>?CC?>CC>???CC????????>>C?>?A?C?A?C>A?>???A>>>???>??>>>>>A>>>>>>>=>>=>>>>>>>A>>=>>>=A>===>=>>=====>==>===============Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pÖþÿÿÿÿÿÿÿÿþþþþþþþþþýæh³³³³³³³³³·³¸³³³³³·¸³¸³¸¸¸·¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸56666656665656667656556566566667566766566565665556665566565665665665566555555555656657556565555566566665665656665565565666566666666655656656655555656665556566566666666656566665565555556655656566565665666566656665656565566666555565565656656666656555555665676666665556666556656666656$¸ºººººººººººººººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·········³³³³³³³³³³³³KKKKKKKKKKKKKKKKKKKKKKJKKJJJJJJJJJJJJJHHHGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþþÿÿþÿúú÷úóú÷ò§v==>=>?>>>>>>>>>>==>>?>>??>>?>>>>>>==>?>>ACCCCC?=?A?l??CC??CA?CCCC>CC?C?>???>>CÏÿÿÿüƒClCCCCC?CCCC?C?>?>>?CC??ClCCC??C?>??>?lCCCC?>C???>CClCCCC>???>???CC???CC???CC?>>?C?C?>C>>??C?>>>>C?>=>?CC>>>>>?C>>>?C>>>>>A?>>>>>???>>>>?>>>>=>??>=A>>====>========>>====>>====>====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà  oØþÿÿÿÿÿÿÿÿþþþþþþþþþþàh³³³³³³³³³³³³³³¸³¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸56665665665655555555555566556665656658655555656556666555656666565756555656568665667666555666566566565556866655665656566556567655566566666655665555566655655566666565565566555665555566566676666665555665557556666655665666566666566665668565566666665556666655566565886765666656565556666565!¸ººººººººººººººººººººººººººº¸º¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸··¸¸········³··³·³³³³K³K³³KKKK³KKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþÿÿþÿþÿþÿþþúú÷úúúúò§q>>=>?>>==>=>>=>>>?>=>?A>?>=>?>?A=?>A?lC>>?>>>????>>?>>???>??C???A?????CCCCC?CtßÿÿÿüƒC?>??>??CCCC>CCCC?>>??C????l?CC?CCCCC?C???CCCllC?>?C?CCCCCCClC?CCC?>?CCl?>CC??>>>?CC?>C?CC?ClCACCCC??>>>C????>>A>>>?A>>>>>>A>>>??>=>>A?A=>=>==>>>===>=====>=>>>>==========>========>Éþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà  pÖþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³³³³³³³³³·³·³³³³³³³³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸7666556666655565665655556665556556556665565656565567666666556566665666666666566685666665565586556555666566656686675656555555867866665666566656556665565556556655565566676665565666655555666566555655656655666765665555556655665555556655666655665566656566566665766656665566556568665557555565$¸ºººººººººººººººººººººººººº¸ººº¸¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··············³··³·³³·³³³K³KKK³KKKKKKKKKKKKKJKKKJJJJJJJJJJJJJJJJHHHGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿÿÿþÿÿþÿÿþÿüú÷÷÷ú÷ò§q>>=>>>>A>>A?A>>>?A=>>>>A>>A???>>>>???C>?=?>?>>?C>??>????????????CC?CC>C?A?lC>CÏÿÿÿüƒC>??????C????CCCCC?C?ClC???lCCC?CC????CCCC??CCCC?CCCC>CC????CC??C??C???C??CC??>CCCCA?C>>CC>?CC???A>??>A??>>?C?>>???>?A>>>>>>>>>>??>>=>?=>?>?>=>=>=>>>=>>>>==>=>====>==>=>=>==>=>===>Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØýÿÿÿÿÿÿÿÿþþþþþþþþþþæh³³³³³³³³³³³³³³³³¸³¸·¸¸··¸¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸6566555658655555566555657566565565556657655665666566568656665555566666566566655655665656666665565656566655666656655566555556655655665766555565656666665655656566666555656565666656665655556566665575675656565666666665665566556665565655555567565666555555656666565665655565555558666666!¸ººººººººººººººººººººººººº¸º¸º¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··············³³³³³·³³³K³³³KKKKKKKK³KKKKKKKKKKJKJKJKJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿÿÿþþÿÿþþþÿü÷úúúúúò¬q>>>===>>>>A>?C>>??>>AA>?>?C??C>>>>??>C??>?>>?????C??C??CC???CC?CCC>CCA???CC?>CÏÿÿÿüƒCCC??C??A??>CCCCCCCl?CCCCC?lCCCC??C????lCCCCCC?CClCC?CCC>?C????????C?>?C>?CC?>>CCCC>????CC?>????C>>?C??C??>?l?>>??>>C?>>>>>?>>=>?C?==>>=>?>A>=>==?>>>=>>>A>==>=====>=>>>>===========Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÖþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³³³³³³³³³³³³³·³³³³¸³³¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸6576565565655566566656665666565565556665555656556866655555566655656566556656655565566556666656555656668656656656665665555566675666665666665555675685565565555566656555666675666656655656665556555675666666555566555555565666556656656656556656666666666556566565666556866655656666555567!¸ººººººººººººººººººººººººººººº¸ºº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸··¸··¸·········³³³³³³³·³³KKKKKK³KKKKKKKKKKKKKKKJJJKJJJJJJJJJJJJJHHGGGGGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGEFFFFFGGGGGGHHHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþÿþÿþÿúú÷÷÷úúò§|?>>>>??CA=>>>A?>>??A>>>=>A>>AC??CCCA=?C>?CCCCC????????>>???CCC???C?>>?CCll??CCßÿÿÿüƒCCC??CCCClCCC??CC?Cl?>>?CC?C??CC?ClC?CCll?Cl??A??CCCCC?C?ClC>??CCCCC>>A>????C?????CC????>??C?>>CC?>?Cl?C?>>>>>>>C>>?C?>?>>?lC>>>=>>>?A>>>>=>>=>>>A==?>===C>>=>==A=>==>==============Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pØþÿÿÿÿÿÿÿÿþþþþþþþþþþæh³³³³³³³³³³³··³³³³³³³¸³³¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸565555656666666555566666565665655666655556665665555666665556566555666655665556566655566556665655666556566556566556656665556655566566656768565566556566655556666556656556566565655565656655565666656765555565555656557565565566655665556666765656656655666567656555556655565566555655556$¸ººººººººººººººººººººººººººº¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸··¸······³··³³³·³³³³KK³KKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJHHGGGFFFFEJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGHHHHGHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþÿþþÿþÿþÿÿúúúú÷úúò¬|>>>>>=>A=>?===>>>>>????A?>>>>?>??????C>>C????C???>?>A?CC??>?lCCCCCC?C?C??CClClßÿÿÿü”??CC?CCCCC??>?Cl??C?CCCllCCl?A?CC??CC??CC>?CCCC????CClC?lCCCClll?CCCCCCCCClC?C?CC?>CC?ClC?>??????CC??????>>??C?>CC>>A>???>>>>=>??>>>>>>A?>>??AA>A?A>=>>>=?===>==>======>=>>>AAAABBBZÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþþþþþþþþþþàh³³³³³³³³³³³³³··³³³³³³¸³¸³¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸67666575555655565565556575656666557665656855567756665666555655665556656566556566565555655555555556655556565666665565655666556656566655556657656566565656665555655665556556657865555556555565556557555565565666556655656556555657556555566555665565666566665657567656655855565657!¸ººººººººººººººººººººººººººººººº¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·············³··³·³³³³³·³³³KKKKKKKKKKKKKKJKKKKKJKJKJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþÿÿÿÿÿþÿþÿú÷óú÷úúò§v?>>A>>A>>AA>>>?>>>>>A>??>>?>A>??>CA?C??>?>?C????C???A?CC??????lCCCC?CCC??CCCCtßÿÿÿüƒCC?CClCC?CCC?CCC?lC?CC??lCCCCCClCCCCC>lCCCCCl?CC??A?ClC?CCCC??CC?CC?lC?C??Cl?CCCCC??CC?CCC>??C?>?C???>>>?????CCAA?>>?>???>A>>>>>?>>>?A>?>>>>>>A>>>CA>>>>>>>>=A>>>CZ]z„–ÅÃÆÈËËÎÞÏáçñòüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÆ oÕþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³³³³³³·³³³·³³³·³³·³¸··¸¸··¸¸¸¸¸¸¸¸¸¸¸¸56655556655675565556765655665555665655556556566555556566666655555656655556585757656555555555656565567555555865656556656555566656657656865556556656666655555555656655656555566655656568655565665665566555685556556556555555555665656667555656665656666665655655656655575665556566666!¸ºººººººººººººººººººººººººººº¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·············³³³³³³³³³KK³³³KK³KKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþÿÿÿÿÿþÿþÿú÷óú÷úúò§pC>>A>>>A>?C>>A?>AA>>?>?>>??>C>>>>C?>CC?>?>CCC???CCCC>CC?lC>?>>C??C?C???CC?CCCtßÿÿÿüƒ?C?ClllC?lCCCCCCCCCCCC?CCCCCCCClCC?CCCllClCCC?CCCCC?C?CCC?CC?>>?CCCC?CCC?CC?CCCCC?CCCC??Cl>??CC????>>??>>?C?>CC??>>>C?>>?A????>>>>>>C?>>>?A>>>C>=>>>A>=ACBZx”�ËÏçñò÷úüýþþþþþþþþþþþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþþþþþþþþþþæh³³³³³³³³³³³³³³³³³³³³³³³³¸³³³¸³¸¸·³¸·¸¸¸¸¸¸5567565575555565556856566567676656665665565556556676556665556655656655566656556557566655766555656555575865656656555555557656656566555665666865556666566665676556657666656556665555566565565655655566666656555766665666666555665556555755655555565565658656565566565585556565!¸ººººººººººººººººººººººººººººººº¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸··············³³³³³³³³³³KKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþþÿÿÿþÿþþü÷úúúúúò§q>>>A>>?A>>?=>>??>?A>>?C?>?A>>ACCA?>>>AA?CCC?>>?C????C?>>CCClCC?>?C?CCl??CC?C?CßÿÿÿüƒCCCCCC?C?Cl?>??CC?>?CCC?>??CC?ClllCl????ClCC??CClCCllCllCCCllCC?>>CCCCC?CC>CCCC???C?>>?C>A??CCClCll?ACA??AA>>>>?CCCCl?>=>??CC>>?CC?>=>>>>>>>==>=>?=CxƒÆËÏñ÷üýþÿÿþýüúúóòçáÏÎÉÆÃÅÅ›–––––…„…–ÅÃÆÉÉËÌÎÎÏßççóó÷úúúüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà   qÚþÿÿÿÿÿÿÿÿþþþþþþþþþþàh³³³³³³³³³³·³³³······¸··³·³¸·¸¸··¸¸¸¸¸¸¸¸¸¸856655655665765566555665657555666665566655665586565755566555656555556656555566655666856556555665655566565665655565565656655655555566565556655555555555565566665565656555657565566556555565565655666566566665667655566866665566565656565567666856565766655565565566565556555556666556!K³³³³³³³³³³³³³³³³³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJHHHHHHHHHHHHGHHHHGGHGGHGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGFGGGHHGHHHGHGHHHHHHHHHGGHHHHHHHHHHHHHHHHHHHHHHHHH�èÿÿÿÿÿÿÿþÿþÿú÷÷úúúúò¬v>A>>>??>>>C>A?=>???>>>???CCC>A?>C?CC?C??????C??C??C>CCCAC?C?CCCCC??CCCCCClC?CtßÿÿÿüƒClC??CCCllCCCCllCC??CClCCCCllllC?C?ClClCCCCCCClCC?CCC>CC?CCCC?ClCCCCCCC>CCCl??l??CllCC??CClCCC?CCC?CCC??CCCCCA>>????l????????>>>??C?>>C??>>>?Ct]ƒÆáòúüþþþþþüòçáÎÈŃxtAACA>A>>>>>>====>>==>=>>>=A>>>A>A>AABZ_z‚„ÅÆËÎáñúþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–!Âþÿÿþà    pØþÿÿÿÿÿÿÿÿþþþþþþþþþþàhJJJJJJJJJJJJJJJJKJJJJKJKKJKKKKKKKKKKKKKKKK655665566556556566656555565655556555575555665665655555565756665566575656555656655566556565556666667666555865555555655556556566655555655556656656566675665655555766655566655687857556655555656555556566658657566555566556556565657576666556666655656655655565755556555655655558556567!JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKG�èÿÿþÿÿþþÿþÿÿüú÷úúúúò§v?>>>>>A>>>??A>>>A?C?>>>A???C??>>C?CCAA?C>C?C?????CC?ACC?C??CCCClC?>CC?ClCCCCCtßÿÿÿüƒCCCCCCCCClCClCllCCCCCCClCCCCCCCCCCCCCClC?lCCC?llC?CCC??CClCCCCCCllCCCC??CCCl?CCC?Cll?Cl?CCCC?C?CC??Cl?CCC>????CC?>>>C??>?A>?C??>?>>C?>?A>>tzÆÞñúþÿÿÿþüóçÌ–‚xttCA>==>>>>>>======>===>==>=>=============$======$=$===BB]�–Ëç÷üþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà oØýÿÿÿÿÿÿÿÿþþþþþþþþþþæ�666566655556556686576556675555555555655556856665667555556865566565566755566655556655665655565555565576565855656655665665566657555555666665555565656555566555555666556556566655565656565565568555555565556665555555565557665656556566556555656666855765665566666556567555576555556555$HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH�èÿÿÿÿÿþÿÿþÿÿüú÷úúúúò§|C>>>===>>C?C?>?>>>??CC>>>?>?????CCC?C????llCCC?>?CCC???CCCCCCCC?CC?lllCC?C?CCtÏÿÿÿüƒ>?ClCC?>?CC?lCCC>ClCClClCCCCC??lllllCCCCClCll?CllClllC?CllCClllCCCCCCC?CCCCCllCCCCC??Cl?CC>?Cl??CCCCClllC>?>CCCC???>?>>>>>>?CCCC>>>C??C]”ÎòüþÿÿþüòÏËÅzZAA?=>?>>>>>==?>??==>=====>==>======>==========>======$====$====$=$=Z‚ÆÏñýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oÖþÿÿÿÿÿÿÿÿþÿþþþþþþþþà�56658655855555568575555656555556565766566756566555867555855766555555558555555556656555555556665565565657658555665666555555656686656575565665875656555555655658585565556565756665555655557586855565675556766555567556558665555565555565555656555656555575555555555566665665566555687555! �èÿÿþÿÿÿÿþþþÿúúúúúúúò¬|??CC???>>>>?>?C??C?>>???CC>?CCCC??>ClCCCC?ClC??????llC???lCCC?C?CC?lC?>CCCC?Coßÿÿÿüƒllll?CClCCCCl??lllCCC?lCClllllCCCCC?lCClll?CC???C??lllCCCC?ClCCll?ClC???>????C?>CC?C?>CC?C?ClC?CCC???>>CCCC?C?>>???CCCCllCCC>>>?>?>CzÆáúþÿÿþúòÌ”ytCCA?>?>>>>A>>>=>A===>>>>=>>>>>>=============>======$=====$===>===$$==$!=====BxÅçúþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpÚþÿÿÿÿÿÿÿÿþþÿþþþþþþþà�6555655568655556665555666557656556575575556866665566565555865665558556566656556575786655566755555655567555656555555555565665765668556556565555566665666856565555555566556555656665565555665566656656565558756556555555555685567555555575665555556555565555765685555576655556556555566555$""""""""""""�éÿÿÿÿÿÿÿÿÿÿÿúúúúúúúò¬v?>A?>?>>>>>?>>?>>?CC>>C?>C>CC??CC>>?????C??CCllCC??C?CCCCC?CCClCCC?CCC?ClClCCtßÿÿÿüƒCClClCClClCCCCCCCCClCCllCllCClllCCCCClCCClCClClllCCCCCCCll?CllCCCCCCCllCCCllCClCCCClCCC?CC>CC>CCC?CCCC???CC?lCC???CC??C?????>??CCuÅáúþÿÿþ÷áÆzCC??>>>A?>??>>>??>=>>>A==>?>>>====>====>==>==============>=====>$===$==$===$=$$$$$==>]ÂÏýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþþþþþþþþþþà�""""55865655755656666665555555565556567655557577555665655556556565555565566555665568655655755555565555765655565655667555675555668557565865565556565675765656667555655556555555676656655565655656766556555565556576566556665555565655556555555685555555676556655755555665555766555$""""" ""�èÿÿÿÿÿÿÿþþÿÿüúúúúúúò¬vC>>A>>A?>>>CA?>C??C?>?C??C?C?>?CC>CC>C>>C??CCCClCCC??ClCCC??CllCCCCCCCCCClClltßÿÿÿüƒCCCCClllClCCCCllCCCClCClCllC?CCCCllCCllCCllCllllllC?CCCCllCCllC?CCCC?llCClloC?CCllCCCC??CCCCC?CCC?CCClC?>??C?CC???CC?CC?>>>C?>CƒÞ÷þÿÿýóÞ”uC>>???>?>>>??>>>=>>>>>=>>>=>==>>A====>====>==============================$$===$=$$$===$=$$@�Ïúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà !   oØýÿÿÿÿÿÿÿÿþþþþþþþþþþæ�""55655655655555655665565555656567655655665756566555555565656575556566555555656666556555565555555765555556556565556557566556575556655657556558575755655667555855765655585757565555555656856566555665565555755655555655565566565555555555665576655565667766555675756556567$""""""""""""""""""""""""""""""�èÿÿÿÿÿÿÿþÿþÿüúúúúúúò§pC>>CC>???CCCCC>C?>>>CCCCC>>???C?C?l??C?AA>C??>?C?CC?lCC>ClC?ClCCCClC?ClC?C??Ctßÿÿÿü”lCllClCCCCCllllCClC?ll?lCCCCllCllllllClCCClCC?ClllCCCCCCCllCCCCCCllllllCC?ClC???ClC?l??CCCCCC??CCC??C???lC?????CC?>>>CCCC>?CCzÏúÿÿÿüß–tC>>C???>CA>>C?>?>>>>>>>>>?>???C?>>?A>=>>>=>AC>AA>====>>========================>=======$=$$=====_ÏýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþÆ pØþÿÿÿÿÿÿÿÿÿþþþþþþþþþæ�""""""""""""""65755555555555575575656665685557555555555685556655565566565556555555567555758555755566556565565756656555555555565556655655575555556556557565555565556655685565555567585555568555555675565565555556556556655555875555655656575555575555555555555555556558555555655557658656555!T"""TT"""""""""T"""""""""""""""""""""TT"""T""TTT"TT"""""""""""""""""""""""""""""""""""T�èÿÿÿÿÿÿÿÿÿÿÿúúúúúúúòÒqC?>??C??>>?>??>?CCCA>??CCCC?C>A??A?C?CllClCClC?CCC?>lCC?C?CCCCCl??lllClCClCCCtßÿÿÿüƒlClC?CCClllClCCllCCClCCCll?CllCClCCll?llClllCCClC?ClCllCCC?CCClCCCC??CClCCCllCCCCClCCCCllCCCC>ClCC?ClC>?C??>>?CC?CCCCC?????{ÞúÿÿþúÌzC>?CCC?>>?>>?A>>>=>>AC>>>>???>>>=>>=>>=?>>>>>>>A======>=>==>>>=>=============$==$$$$=====$=$$$$$$==$@–óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  vÚþÿÿÿÿÿÿÿÿþþþþþÿþþþþà�T""T""TTTTT""""""""T"TTT"""T"TTT"""T"TT"TT55755555655665555655555656755556565657555567555765757555575555556555576556756655556657555555566755576665665656555555555555557655575555555656555555657555655557575575565555655557575655555555566555556555758566555756786756555555655557555655555567565565555555556565655555$TTTTTTTTT"TT"TTT""TTT"T""T"T"""""""""""""""""""""""""TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT�èÿÿÿÿþÿþÿÿþÿüúúúúúúò¬q?A>C???A>>?>??>???CC?>??CC?CC??CC?CC?CC?CCCCCCCCCC?ClCCCCCC?llCCCCCClCCClCClCtßÿÿÿü”ClllClClCllClCClCCCCCllllllClClCClCClllllCllCCllC?ClllllCCCCllCClllCCCCClllCCCClCCC?Cl?lllCCC??llCCCClCClCCCCCCCC??C?CCl?C›÷ÿÿþñÆxCC>>C???>C?>>>A?>>?>?>>?>>?>??=A>=>>>>?==>A>>>>=>?>==>==>======A===============$==$===>$$$=$$$=$$=$$$$$=�ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿþþþþþÿþþþþà�TTTTTTTTTTTTTTTTTTTTTT"TTTTTTTTTTTTTTTTTTT65555655555575558585685555557876555656555578767675558555566556555766565555566555555556555556675666585655655556775566555755556555555675755775556555555555555575565765568555565555655766555555657565566565656555565656556855586555565755555657558675655566555576565555855$TXXXUXXUXXXXUUUUXTXXTXUTTUTXTTUXXTTXTXTXXTUUTTTUTTTUTTTUTTTTTT:TTTUTTTTTUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT"T"TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX�èÿÿÿÿÿÿÿþÿÿÿüúúúúúúò¬v>?A>?A?>A????>>??CCCC??>?CAlCC?CClC?C???C??l?CC?lCClll?lClCCCCC?lllClCC?CCClClßÿÿÿüƒClCCCllllllClCCCCCllClollCllCClllllCllCllllllClllCCCCCCllllCClCClllCllCClllC?CllCCC?ClClllCCC?CloC??ClCCloCClC??C???>?CltÉûÿÿò›tCCCC???A??>A?>??>>?CC???AC>>?>>>==>>=>=A?>>=>==>===>>==?>>=>=======>===>==================$$=$$=====$$!$$$$[çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà     pÚþÿÿÿÿÿÿÿÿÿþþþþþÿþþþà‚XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXX755555655555556556555556556556575555565567565855556655555655775756555655555676655557575557556557555566555655555865555567757556856555555555557555565565556555555555655755766555565555556566555555555575555556555555665555655785556557576555555655566866658665756665555555555755558657==9=99===99=9=====9999;===9=9=9$$=9=9===$99=999===9=====9999==9===9999==9=9=9=999==$=$$99==99=9====99=9=999=99=9==$$$99==9$=$!$!!9"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT9$===99==99=;=9=;99;9==;9;9=>;==@=======99=99==9=@=9;>==;9==@�èÿþÿÿÿþÿþÿÿÿüúúúúúúò¬qC???>>??C?>?CC?>>??>>A?CCC?CCl??CC>?C?ClC?Cl???????C?ClllClClCC??CllCllCCllCCCßÿÿÿü”loolCC??C?ClolCCllCCClllCCllllCCCClll?ClllllC?CCllloolCCllCClllllllll?CClCCCCC??CCClll?CCCC?CCCCC??CllCC???CCCC?CllC>??tÌþÿüÞ{ll?>??C?A>>CCCCClC>>???>>>A?A>>>>?>A>?A>>>>?>=>A===A?>=>>==>===>=>===========>========$===$$====$=$$=$@@$==$==ƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà oØþÿÿÿÿÿÿÿÿþþþþþþþþþþæ{@@A@;;@@@A@;;@;@@@;@@@@@@@;@@;@@@;;@@@@@;@6556555555655555555556655655655555555655665656556555556566555565655556676655665566555655555565658665665565556555555565575778865556555555555555575555768555555656557556575565556555557566655657655567755675575565755555555585555555557875755755555555658655565576556575556555555565665855555555656555555555788567555555565555565575656666565555565657565757555575555555565657555655555656756565675=TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT!775555556765555756575765576555565586557555555657555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬q>???>CC?>?C??C?CCC?CCCCCCC>?ClClC?CCl?CllC?CC?ClCCCl?ClCCCCllCCClCCCCClCClClltßÿÿÿüƒCClCCllCollllClClCClCClollClllClCCllClllCCllCClllCCCCllClCllllCClCClCllCCCCClCClllCCCCClCCCCCCCCC?lCC?CCCClC?lCC?CC??CC›üÿúÅl??l?C?>CC???CCA>?CA???>>>?C?>??>?>>>CA>>>>=>>?>>>>A>=>==>>>>>==>>=>======>=========>=======$====$$=====ÉÏB=$$=$_úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿþþþþþþþþþþày7565555655555555655655575655565555565677587755555588755557755555555555555576565555555555555556555555555555555555555555555555555657577555555558755555558556555755555556555556555556575757555756565555556555855557656555656557566655556556565555555566555555757655555657555556585655575556655556557565555555556677555556565555555655565756855555685675557755557885555556585555565575555575555556556556565757655565655657555565555766575$TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUTTTTTTTTTTTTUTTTTTTTTTTTTTTTTTTTTTTT=65565556555558755557555655555555656555785555565555565œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§v??CC?C?>???>?C??CCCCCC??CCC?CCCCC?CCl?CCCCCCC?CClCClCClCCCCllCClCCCllClCClClltßÿÿÿü†lCllCllCollCCllllCCllCllllClllClCClllllllCllCllll?lllllCllCCllCllCClllClCCCllClClll?CCClCCllllCCClCCC?lCClCC?CCCCCC?CCtçÿú›CC>ACCCl?CC>CC?C>AA?CCA?>>?>??>??>CA>>>A?=>>=>>>C>>A>=>>>>=>>>=>===>===>>=========================$$=$===ÏþÆ=$$$@Ëþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþþþþþþþþþþày55555555555555565555555555565555557856755555577555556555587555575575555565855755555565555755555566555675655557555555555755755555566565557558855565576555555555557675575566577555557565586575575655555555655565556565565655557555658555555557558555655555555555655656555755555665555555557557555555775655565765555555555555656556555555555566755565575865775657855558755855576655555576555576756555555555556555557555557565565555777777777777777878777777777777777777777777777777777777777777777777777777777777777777777777777777777777777787777777777777777777777777777777777777777755566555577558655578755555775655655756565555555555556555žèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§v?CC>>?A>????C??C??CC?>C???CC?CCCll??CllC?llllC?ClCCClll?CCCCClllCCCllCCCCClCltßÿÿÿü”lClllolCClll?CllllllllllCCllCllolllllllllllllllllCllllllollC?ClCCClCClClllllCC?CCllCCCCllllCCCCllCCCC?ClClClC??CCCCClCyòþÞtC????uɘl????C?ACCCAC?ACC>???C>?C????CC>>>>>>>>>>=>>=>>=>>>>A=====>>===>>==>>>>=============$=$$==$$==$$=Ëÿü‚$$@Æýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà   pØþÿÿÿÿÿÿÿÿþþþþÿÿþþþþày5558555565565555556555556555555558676555557765765575555555655558855555555557557756755557657555655567655755556555555555566555555775555587557755555565555555555655756565555555755585555556555857575556555855556855555557555565555555556655555557555555575555555755575566565555755557555655585565565555555555555788755555756555555555566557755557555755577555875575855755557557765555656555755555855655555555575557555555555555575555575558555556555555555555555556757555655655555557655555555555555565555555555555755555555555555555555565555555576555575656555757556555555555555555566655587575555655555555555555555585655556578555675555555656555555655555665775555557577œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§vCC?CCC?>?CC>Cl?CCClCCClC?CCCClCC?C?A?CC?>llCCCllCCCCCCC?ClllC?CCClCCCllollClCtßÿÿÿü”lCllClllCCllllllCCllllClCCCllllllClllCClCCllllllllllCllllCClllllllllClllCClllllCCCClCllCCCCCl?C?C?llC?llCCCCC?C??CC?Cly÷þÉlC?ClzçúÅlC?CC?C>?CC>?C>>????>>>?>A?>>>?C?C>=>=A>=>>>>?>>?>A?>===>?>=>=>>=>=====>>=>==========>======$====…ýÿñZBÈüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà oØþÿÿÿÿÿÿÿÿþþþþþþÿþþþæ{5557655567555755566566557555555655655865555555556555755556755555555655555655555555775655655755665555655555655555655655657556575555577555555665555555556565755557575556655575667655758555555555558555676665555555555575555555555665555555555555555668657755855555658555577575655555555565555665577657555575568557555555555655555557555555755565557555758555558555565555785555556655565555555555655555555555555575555555655675567588555566557555555556556755557555555656587865555786555555555557585558567565556555785755556655555657556555675557556755556555555575576565555555558555566555555555655555555655565555557555556565575555557555555567555577555655555568665œèÿÿÿÿÿÿÿÿÿÿÿúúúúúúúò¬q?>??????CCC>CC>?CCC??CCCCC????CCClCCllCCClllCCCllCCClClllllCllCllllllllCllCCCußÿÿÿüƒlCllClllllllllllllClClllllllllllCCllCClllCllClCllllllClllCClllllClllCCCllllCClolllCllCllCClllCCCCCllllCClCC?llC?ClCCCCyòÿçuCCCußþñuCC??>CCACCC>A?>C?>>C?>CCC>>?C>>??=A?C>??=>??>>>>>=>>>>>=>>===>====>>>=====>=======>===========$==Bòÿÿáçþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÙþÿÿÿÿÿÿÿÿþÿþþþþþþþþày55556555856656555555666778555756555555555565555555655555555555655655755566555555555555555555575557755555565556555555555557556685555565555555565655555565555565685566555556655565555556655557555565557557557555555755565557555555555755665555555557555778755575555555555555575555555565656555555556786556775555556575555565555575555655555675765555555555755555575555555565555555555555555555685667556556555557865755565555555555555555655555756555555556555555555555555555555555755555555555757557655558557555555555555655557555555555756556555756556565555575566556555565655565555655655557655555555655556655565765566555555786556777œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬v????>?CCCC??CC?CCCCC?>CCCC??CCCClCClCCCClCCCCCCCCCClllCCllClllCllllllllllllClußÿÿÿü”CCllCClllllCoCClollllCClllollllllllllllCllllCllllllllllllllllCllClllCCClllllCllllCClCCllCClllCCClCCClCCCCCCCllC?CCClC?tÞÿüÆlCC�üþÌCCCC?ACCC?CC?>>>??????ACCC>C??C>>?>>??>?A>>??>>>>=>>?>A>>>>==>>=>>>>==>>========================$$=ÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pØþÿÿÿÿÿÿÿÿþþþþþþþþÿþày65555555555556555565555565565575555555755665565557567557557555567555555555555557656575667655655757555565555565555757555555575655755565555655555555556555575555775555555558555558557555557556555775655577555556685557555565555577855555555565555557555555555566565556555787766556555555555555555555557555756556575555555556555555555576555555555555555757565575555575555755555555655555555555555766558575577555555555575555767655577555555555557656555757857555555575555567675556655555555655555557555555576555555555555555555555755555756855655555557555555555555555555555557655556555555576755557555555557555655555555665558565575568555577œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§qC?>>??CCC?>?C?ClCCClC?CCCC?llCC?C??CCClClCCClllCC?CllllCCCllCCCllC?CClllCllCCoßÿÿÿü˜lClllllllllllllllClollllllllllCCCoololooloolllllColllllllllllllCCClollllllCllCllllClllCllClCCllCCClClCClC?ClCCCClCCCCC?–ýÿ÷�tzñÿü›CCCClCA>CC?>CCC>>ClC>>CC>>>C>>>A>?CC>A>=>>>>>>>=>==>>===>>A=>====>=>=========>>=============$===$==xüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà       pØþÿÿÿÿÿÿÿÿþþþÿþþþþþþày557565555555555755565555555575755575555555656875655575555555555575555555555555655555755765555556555555557755556557575557555575555655555555555555555555555555555555556555655557755756555555558575555555555555555555775565655657555555557557555555555555755555655765555555555555557655556556555855555555555555556555577557755557558555555756575555775755756555555685557577555575555855555555556555555555557565655555566567556555555755555555555556556555555555555555555755575555675555555555875555565555555756755755555655555555555555575556867555555555575555555555555755555575565755565555555555555755555555555755656655556œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|CCCCCC?CCCCCCC??????CClCCCCCCllllCCCCCCllllClClCll?CCClClllCCClllllllCllllllCtßÿÿÿü˜lloollClClllCllClllllllCllllllllllollCllCCllllllllllClllClCllolllCClllClllllCllCllCCClllCColllCCCCCllCCCllCCCCCllolCCCCtßþÿýò÷þÿúz>CC?ClC?CCA>Cl?>???>>CC>>>>C?>=?>>>>>>>?>>>>>>>>=>??>=>?A====A>===>==>===>=>>>>=========>=====$====[úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþÿþÿþþþþþþæy55557555555557555755555555555555555555575755555575578555555555775755655557555555555575555555555755555555556557555555555555756755655565555555555555555555556555575555555555555575655555555555556555577555555555555756555555555755555555555555565557555555565555585555555576755555557555555555557555555755555555555555555565575557555655555555555565757555555555555755555555557576555755557555555555555555556557555555755555555555557575555555755555555565565555555557577555565558555755555555758557555555755555555585555575555565555575566567555555555555565555575655555556555757557555555555555555755555555575755557œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|CCC??CCCCC?lCCCCC?CCCCClCClCClCCllCClCClClllClClllllCllllllCllllllllCClllllCloßÿÿÿü”lCllllolCllllllllllllllClllClllCllllllllllolllllllllllllCllCllllCClllCllllClllllllllCClllClllCllllCllllCCllCClCCClCCCClCyçþÿÿÿÿÿñu?lC?CCCCCCC?CCC???C?A??>>?C???A?A?>>A=C???>>>?AA>AA?>=>>>>>==?>=>===>>>====>=======================xþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþþþÿþÿþþþþày555555555585558555555755555555557555555555555575575555585575557567555655555555755555577557557555557657555655556755565555555678555675555555555557ly855555555555655556776555555555555556555855555557555555755755555555555555555557555585685555555557756557765555555557555565855557655785575557555555557655575555556555755555555555555555555755575555755558555655555655555655555556555557555555556555555555755575555577555555576655755555855655555557555755555755555555555755555567555557555555555575576555555555575555555555555555555675555555555756555555555557755755555555555575555555655555555555555555555565557œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúòÒv?C???CCC??CCC?CCClCCCCCCClCCCCllCCCllCllClCCClColClllllllllllllllllllClllllllußÿÿÿü”oCllllollolllllllllllllllolllllllllClllloloCCllllllllClllllllllllllllllCllllllllllCCllllllCClllClCCCClllCClCClC?C?CClllCCyÞúÿÿÿÿÏtClC??CCCCCCClCCC??CCC???>?CC???C?C?>>>??CA>>>??A??A>=A>>>>>>=>>>=>>>>>=>===>========>==============Èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþþþÿþþþþþþày55556555555555555555556555755656757555555565557555555555555556555577755555555555555576557555557557575555555575555555555755555685555555555555558†ßj7555555555557565555565555557555575557555555575757555555575555757575557555555557555557756557777575557555555555655577555575577565557556555556755555555575555555555755778555555557575575556555575575555555555575555585655555555557655557577555755556555757555755575556555755575555557555587557755755557555556555556555765555555555557555865555557857555557576555555575555555555565555555555565555555565555755577575575655555557555555555575565œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§p?>?CCC?????>CClCClCClCCC?C?CCClCCClCClllClCl?CClCCCCCCllClllCCCCCllllllCCClllußÿÿÿü”lCClllCCCllllllolloooolllllllllopoopollllllllolClllolClllllolllllllCllllllllllllllllCllCCCllClClollllllllCC?CllllCCCClCCClt›÷ÿÿÿÌl?CCl???>C?CCCC???ll??>CCCCC?>?>ACC>A?>>>A>C?>>>=>>>=??>>??>>===>=>>=>A====>>===>===>==============BòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà    pÚþÿÿÿÿÿÿÿÿþÿþÿþþþþþþày755567557555576555557755576575555555556555555555655555575557655555555655555756655675575675555757555555575755575555555555558755555558555555555557555Ct75555555555755555555575555555875557555555575557555555555555755657755565555555755585555576775555555565655576675555555555575555755575555755577555556565555575555555555555575755755755655555555575755555555555557775555585555755757555655555677556556555555757555555555555575555555565566775755555558755555555555655555755555655567575655555555557555555675555555555555556855755557657755575555555555565565555555558555576555555555555555555555555575755œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|lC>>CC??CClC?CCClCCCClCCCClllCCllCClllClClll?lllollClllCClllllllllpllllloolllußÿÿÿü†lolllllllllllllollloolllllooolllllllllCllllolllllllllllllllClllolllllllllollllClllollCCClllCClClllllClCCClCCCClClCCClCllCCCl–÷ÿÿÞlCllCCC??lC?C?C???Cl?CC>CC?C??C>>?C?>A>A?A=?CA>>A>>>>?>>>=>==>>>?>>>==>>=========>>===>=====>====$=–ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oÚþÿÿÿÿÿÿÿÿÿÿþþþþþþþþæy5755755555575575555565655556575555555555555556555555575555655757557555555555755556555555555555555555655555555555555557767555755555555556555557675555557555557555755555555555555555775555755657555555555857555555555575555565555555565555577767555555575755575555555775555555555555555555575555555555557555555575775756555555567555555555577555585555755655555555555555555555557555555755755775755555555555555755557555555557555555555755555565575555555555555565555575755555555555565575555555755655555555755555557555755575557555655655555565575555565555555555555555555585555555755555555555555755555555557555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|CC?>CC?CClCCCC?ClCCCCClCCCllCCCllClllCCClllCCllllllClllClCClllllllollllllollloßÿÿÿü”lollllllolllllllllllllolllllolllllllllClllllollllllllloollllllllllllllllCllllllollllooClllllllCllCllllCCClllClCCllCCCllClCCClÌþÿçuCCCCClC?l?CC?????CCCCC>CA>CC???>>??A?????=C?A>>??>>>>=>>>>>>=>>>>>>===>=====>>>==========>=======Bçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿþþÿÿþþþþþþày75555555556555555555555555557755755555557555555557555555557655555585555555555557755555555557755555555555555555555555555555575556555575557555555755555555557555555555555577555557555555755555555655555555555565655555575557555557575755555555555756555555776555555765555555555555575555555555555555555555755555555555555675555555555555556755557565555555555557555555555757555577555555555555587577555557765555557555567655555555755555555755555555555555775555575557565555555555555555555557575555555555555555556565555555755565555555555555755555655787555755555555555555555755555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§|????lCCClC>ClCCCClCClC?CCCCClC?Cll?CCllCllCllCClCllllllCllCllllllllllllClollltßÿÿÿü”oollllllollollllllllloplllllllllllllolllllllolloollllloolllolllllllllllolllllllollllloollClollllCllllllllllllllClCCClllClllll{òÿú”lCClCCCCCCClC?C>??CCCC?C>?C??>C?>?>C>CC>C>>>=?>>?>>>>??>>>>=>>>>>>==>>=>>===>=>==>===========>==>Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþþÿÿþþþþþþày75555555555555555555575555555575555555555857555555555555555556575755757555557555555555755555555555557555555555555555555755555555555555556575575555555555655755555565555555555555555555555555555555777555555555555555555555765555655575555555555755755575555555555555555755555555555555557555755555555555555575555555557555555555555555555555757755555575555757575555555555575575555555775556557555555555557757555555555555557555555555557557555555555556555555555555556555555555755555575555555555555555555555555555555555557555555575555555555555557555555555655555575555555555555557555œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|CCCCCCC??CCC?CClCCC??C?llClCCllCllCCllClllllllllCllllllllllolllClllllllClllolußÿÿÿü˜ollllollCloolllllCllllllllopoooolllolllplollllllolollCllollolllolCloollllllllCllllllClllollClCllllllCCClClCCCllllllCCCCCCllCClÉþÿâyCCCllCCC>??ll?>CC>???????CC??l?C?>??>CC?CC>AC?AC?>>=>>>>?>>A>>>>>>=>>>===>>==>>>=>==>====>=====xòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–þÿÿþà   pØþÿÿÿÿÿÿÿÿþþÿÿþþÿþþþæy75555755855555557557555775557555557555555557575555756755685555557755557555555555555557555555557555555555555555555557555555555555555555575555555555755655555555557555555557555555555555575575555555555555555555555757557755555555755555555555555755555576555555555555557555555555557775555775555555555575555585555555565555555655555565555555557555555555555555555577765575555565555587555555755555755555555555755555555555555555555555555555555556555555556555555557555557557575575557555555555655755555775655555555555555555557557555555575557655555555557655555555555555555775555555œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬}CCCCC?CCCClCllClC?lCClCllCllCllllllClCCClCClClllllCllllllllolllllllollllololCoßÿÿÿü”ollllolllClllllololoollolllllllolllllllollloolllllllllllllllolllllCllllollllCllllllollllCloCCllllCllllllCCllCllCCCllCllCCllCCCyñÿý�lC?CCCClC?ClCCClC?C????CC?C?A?C???>>>??AA??>?>>??>>>>>?>>>>>>>>>>>>>=>>=>>===>>==>=====>===>=>AÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  vÚþÿÿÿÿÿÿÿÿÿÿþÿþþÿþþþæy555577555555555555555555565555755575555555556555555557555555775555555555575556557555555575755555555555557555755555555557775585555555555577555557555655555555557755755555555555755555555657555555765555555555555555555855575555555555555555555555555558555755555757557557555555555555555555555555555556755557578755555575755556555755555555555565575557557755555555555555555575755755555555755555555555555755555675557555555555555557575555555756555556755555555557558557558555556555875555555555556555555555555665555557555556555555555555555555555555555555555555555555555555555555657555555555555655555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬CCCCCCClC?CllllCCClCClCllClCllColllClCClllCllllllllClllllllolllllllollllollllußÿÿÿü˜llllllllollllllllololllolllolllpolllllloollllollllllllollllllllollllllllllllllllllllllolCClCClllllCllllll?llllCCllllllClCClllll�üÿò{CCCCCllCCCCClCCCC?CCC?CC??C?>????A>A????????>>>?>>?>>>>>?>>>>>==>A>>>>===>=>>====>===>=======ƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vÚþÿÿÿÿÿÿÿÿÿÿþþÿþþÿþþày5555555555557655555555555555655555555555556575557655555755555555855557555555555555555555575577575557555555555555555555555555557555555555555575555555555575555555555555557555555555755556555555555555555555555557555557555555555565555555555555555555555575555555555555555555555555655555755758jj75555555555657655585655555575557555555555555555555655565555555555555555555555555555557555555555655555555555555555555555555555555555555555555557575555555555555555755555555755556575755555575755755555555555755555555557557855555555555558555865555555775555555555556555575555557855555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|C?CCllC?CCllCCllCllllCClCCllllCllllllllClllCllCCllllllllllllpoollllllllllllllußÿÿÿü˜lollllllloolllllllllloollllolloollllllllollllllpolollllllllllllllllooollllloollllllCClpllllllllllllllllllClllllllllCllCllCCCCCluâÿþÌtCCClCC?lC?lC>>CCCC??CCC??CCC??C?C??C?CCC>>>>>>>>??>>>=?>>>>>>>>=>>>=?A=>A===>=>==>==>======Bñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþày555555555555555555555555555555555555555555555555555555555555555555555555555555555655555555555575575575555757575555555575555555555555555755555555555555555557555555565555555555755555555555555555555555555555555757755555755555755555755555558755575557575575555555555555575555555555558Cw{j555555555555575555555556555555555555755575555555555555555555775555755555555555755555555655555555555555555555555555555555575555575585555555555555555555575555555755555555557875555755555555555555755557555755555755555555555555555555555755555555555555555557555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúõ§pClCCCCC?ClCCCCCCllCCClllCllCllCCllllllllllllllllllllllllllollllllolloplllllllußÿÿÿü˜oolllllolllolCloolllollllolololllllpplloopllollllllolllllllllllolllllllllllllllllloolllloolllClllllolCllllllCllllCCClllCllllCCll”úÿú”llC??CAClCClCCCllCC??lCCCCCl?CCCCCC>>>?C??>>C?C?>CC?>=>>=>>AC?>=>>=>>>>>>=>=>===>=>==>=====ÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿþþÿþþþÿþæy5555755555555555555755555555555557555555555555555555555555555575555755555555555555557555555555565555555555555555555555557555755555555555555555555555757555555575555555555755555755555575555555555555575555555555575555555555755555557555555555555555555555555555555755555558l{{j755555755555555555555555557555575557555555555555555555555755555557755555555555575555555555555555557555555555755575755555555555555555555555555555555557555555555555555575555755555555555555557555575555555555555555555555555555555555555555555555755œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|lC?ClC?CClCC?ClClllllClllCCllllllllllCllCllClollooollllllllllllllllllollllloooßÿÿÿü˜lllllolllllooloolllllloolllllolllolpooollollloolooolllloollllolloloolllllllllloolllolllllllllllllClollllllllCllllllCCllClCCllllluÞþÿçyCllCCCClC?CClCCClCCCCCC>CCl????>A????C>?C?????>>??A>A?A>?>>A>??>>>>=>>>>>>===>>=======>==_÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    pÖþÿÿÿÿÿÿÿÿÿÿþþÿþþþÿþæy55555555755555555555755555555555555555755555555555555555555575775556555555555555775555555555555555555555555555757755555557555575555655555555555555555555575555555555555555555555755555555555557555555557555555555555755555555555555555555555557555555555>jC85555555555555555555655557555555555757555555557555555755575555555555555557555555555555555555555555555557555555555557755555555575555555555555555555555555555755555555557555555555555555555555555555555555575555555555557555555555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúõ¬sl?CllCCCCCCCCClCCllllCClllClllllllllCllllClllllloooolllllllllllllllllllllllolußÿÿÿü˜llolllllloolpollloollooollollloolllooollllolloollplllloopllloollolopllllllllloooollClllolllllllllClllllllllllllllllCCClCCClllCCllyñÿþÌlCllllCClCCCCC?CllC?CCC>CCCCC??>>?C??????C??>A>>>>>?>??>>>>=>??>>A>=>==>=>===A>====>==>=AÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vÚþÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþæy5555555555555555555555555555555555555557555755555555555755555555575555555575555555555555575555555557655557555555655555555555555557555555555555555555555555755555755555557555555555555555555555555555555555555555575555555555555555575555555555555555557555555588755555555555557555555555775575555555575555555555555555557555555555755555555555555555555555555555555555557555555555555555555575555555555555555555575555555557555557555555555755555555555555755575555575775555555555555755557755œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúòÒsCC?CllllllClllCCCCllCCCllClllCllllllCClllllllClllllloolllllllllllllooloollllloßÿÿÿü˜llpooooppoooolloopollollllpplloolllloollololllooopllllllllllllllolllloolllllllllolollopollllllllolllClCllllClllCCllllllllllClCClCC›úÿ÷”lCC?ClCllCCCC??C?ClllCCCCCCCCC?CCC?>??>>>>>?>>>>>>>>>>>>>>>>>>C>>>>==?>==>>>==>>=>A>===…üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþæy5555575555555755555555555555555557555555555555555575555555557555555565555555555555555555555555555555555555555555575555555555555555555555575555555555555555555555755755575555555557555555555555555557555555555575755555555755555755755555557555555555555555555555555555555575555555555555555555555555755555557757555555555555557555555555555555555555575755555555555555555555555555555555555555555555575555555555555575555555555555555555555555575555555775555555555555555555557755555555555655555555555557557555557œéÿÿÿÿÿÿÿÿÿÿÿüúúüúúüò¬slCCCCCClCCCCllClllllCClllllllollllllCClllllllllllllllloloopolllllllollllollloußÿÿÿü˜llllllooolllolllloolloooooopllololoooolooopooolllooolloollooppllollllloopollolllllllllollloolllllllllllllllllllllClllllClllllllllltÞþÿçylCCllCCCCC?CC>CC??????CC??C???>>A>ACCCC?CClCC?A?>>?>>>>>>>C>>?>>=>>>>==>A>>>========>tñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþþþæy5555557555565575575555555555555555555555555555555555555555557555555555555557555555555755557555555755555555555555555555555555555555555555555555555575555557555555555555555555555555555555555555555555555555555555555555555575555555555577555575555555555557558555555775555555555555555555555555557555555555555555555555555555555555555555555555555555575555555555555555755555555555555555555555555557555555557755655555555575555555555565555555555555555755555555555555555755555555555555755555555555557555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüúúüúúüò¬qCCllCCCCllClllllllllllClllllloClllllollllClolllllolllloloooplllloloolllllolloußÿÿÿü˜llllllllllllooolooollloopoloolpoooooololoooooolooooollololopollopllllllllllllllooollllpllllollllllllollllllllllllClllllllCCllClllll{ñÿþÌtClCClCCllCCCCCC??CC??C???CC???C?A??C????>?C????>>C??>>>>>C>>>>>A>>>=>>>>>>>==>>==>=>ÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþÃvØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþþþæy57555555555555557555555555755555555555555555555555555755555555555555555555555555555555555575757575555555555555555555555557555555555555555555555555555555575555555555555555555555555555555555755555555555555575555557555755555575555555755555575555555555755555555555555555555555555555755555555555555555555555555555555755555555555555555557555555555555555557555575555555555555755575755555557555555555555555555557555555557555555555555555555555557557755555575555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúüúò¬|CCCllCCClllllCCllllllClllClllllllCllolllllllllllolllllllllloolloololllllloollußÿÿÿü˜lllooolllolloooloollolopoolooopooooooolllplllllppoolooopllooolopoollloolloolllllooolllllooolllloolllolllllllCClllllllllllCCCClllllll›úÿú”llCClClCCllCClC?CCCl???????CCC?CC??????>>>A>?CCA>CC?>?>>>?>>>???>=>=?A======>>>>=>=�úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿþÿÿþþÿÿþþæy555555555755555555555555575755555555555555555555755555555555575555555555555555555557555555755575555555555555555555555555557555555555555555575575555555555555555555555555555555555555555555555555575557755555555555555555555555555557575555555755555555555555555555555555555555557555575555555555555555555555555555557555555555557555555555555555555575555577555555555555555555555555555555555755555555555555555555555555555555555555555555555555555555555555775555555555555555555555555555755555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüúüúüúúò§slCCClCllllClllClllClllllllllllollClllloloollllllollolllllllolllllloloooooooolußÿÿÿü˜ooloppollloooloolllooooooooooooololloolooooolollllllloppolllpooolopolppoolloplllollloolllCollollllloollllllllllllllllllClllllllClClCuÞþÿçyCClCCllCCCCClClCCll?CCCC?CllC>?CCClCCC?>?C??C?>>??>>>>>>>>>A>>>>?>>A>====>=======Báÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà ! oÚþÿÿÿÿÿÿÿÿþÿþþÿÿþþÿþày555555555555555555575555555555555555555555555555555555755555555555555555555555555555575755555557577555555555555555555555575555555555555555555555575555555555555755555555755555555555555555555557755555555555555555555555755557775555555555555555555555555555557555575555555555555555555555555575555555555555555555775557555555555555555555555555555555555755555757555555555555555555555555555555555555555555555555755555555555555555575555555555555575555555555755555555555555555555555555555555555555555575œèÿÿÿÿÿÿÿÿÿÿÿüúúüúúúõ¬|lClCllCllCClllCCllllllllllCllllllllllollllollolllllollloolloollllooolllllloooußÿÿÿü˜pollooooolooooopoooplllopoloooloollooolllloooooolooolllolloloolllooplpploolloololllllolpololllloollllllloloolllolllllllllllClllCllCClyçÿþÌtClCCllllClClCC?lCClCCl?CCC?CC?CCCCC???CC>>??AC?>?>>?>AA>>>?>>>>>>A>>>=?>>==>A>=>Åþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿþÿÿþþÿÿþþæy55555555555555555555555555555555555555555555555575555555557555555575775555555555555575555555555555555555555555555575555555555555555555557555555555555555555557555555555575555755555555555555555555555557555555555555755555755555555555555555555555555575555555555555555575555555555555555755775555555555555755555575555555555755755555555555555555555555555555555555775555555755557555555575555555555575555555555755555555555557555555555555557555œèÿÿÿÿÿÿÿÿÿÿÿüúúüúúüò¬|lllClCClllCllCCllllCClllllllllCllllllllllloolllllllolloooollooloooollllllloooußÿÿÿü˜lloooloooloopooooopoolopoolooolpolppoloooloooploolooolllopploollloollooollolloooloollololloolloolllllllllloolllolllllllllllCllllllC?ll›÷ÿú”lllCllClCllCCClCC?lCCCC??C?CCCCCCCC?>?CC?>?CCC>A??>CAA?>?A>>>>>>>>>>>>A>=>=>>>=x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþæy55555555555555555555555555555555555555555575555555555555555575555555555575555555555555555555555555555775555555555555555755555555555555555555555575555555555755755555555555557555555555555755555557555555557555555555555555775555555755555575555555555555555755555555555555557555557555555755557557575555575557555555575557555557555555555555755575575555555555555555775555555555555555555555555557555575555557755575755555555557555555557555575555555555555755555555755žéÿÿÿÿÿÿÿÿÿÿÿüúüúúüú÷ÒsCCClllllllllCCllCCllCllllClllllllllllollllllllloollllopollollooooooollopooooovâÿÿÿü˜llopolopolooolooooollooolllpooopolpooooppoppoolloplopppoopoooooolopoollpoloooooploploloooollllollolllllollClllllllllllllllllllllllClCloÉþÿèyllCCCClCCCClllCCC?CClC??CCC?CC?CCCC?>?lC?>?C?>??CCCA>>>??>?>>>>>=??>=>>=>>==>CÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oØþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþæy555555557575555555555555555555555755555555555575555555755555555557555555557555755555555555555555755555555555555755555555555555555555555555555555555555555555557555555555555755555555557555555555555555555555555555555555555575555555575755555555755555555555555555555555555555555555555755555557555557557555555557555555555755555557575555557575555555555555555555555555555555757555555555555555555555575555555555555557555555555555555755577755557555557755555555555775555555555555555557œèÿÿÿÿÿÿÿÿÿÿÿüúúúüüú÷¬|CCClllllllCCloollllCllllllllllloolllllolllolllololloooolllllllllllpoooppollllußÿÿÿü˜pllopoolopppollopoollpooolovoloooopppoloopopolloopoloooooloppooploolooopollollopllollooloplloolllooollooooooplllllCllllllollllllllllllluáÿþÊlCllllCllCCCClC?CC??ClCCCCCCC?>C??CC>?C???>?C?>>??>??>>??>>>>>>>=>>>?>A>>>==>–ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿþþþþÿÿÿþày5555555555555557555555557755575555557755555555755557555555555555555555755555557555555555555555555555555555575555557557555555555755555555555555555557555755755555555755755555557775555555555775555555555555575555555555555575555757555555555555755555555555555755555555555557555555555555555555575555557557555555555555555555555557555555555575575555555555755555555555555555555555555555555555555555755555755555555555555755555555555555555555555575555557555575555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüúüúúüò§qCllllllllllllllllllClllClollllllllloollllllllloopololllllloloooolllllooooopolußÿÿÿü˜ooooloooooooollopoopooopooovolooooooooloooooooooooooopoooloooloopooooooppolplolpooolooollpollooolloolllllolllllllllollllllllllllllolllll”÷ÿú˜lllllCllCCCCClCClCCClCC??ClC?C?C??CCC?CCC???????C>AC?>A>>>A?A>>>>A?>=AA=>>=]ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vØþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþþày55555555555555557755555555775557555575555555555555555555555557555575555555555555555555555555555555555555555555555555555555555575555555555555555755555555555555555555555755555555555555555555555555555555555555577555555555557555555555555555555555555557555555755555555555555755555757555575555555755555555555555555555555555555755555557555555555555555555555555555555555555555555555555555555755555555555575555555555555555555557555555555555575555757œèÿÿÿÿÿÿÿÿÿÿÿüüúúüúüõ§|lllClClllllllllllllllllClooloolllllololllollCollpoollllllooopoloooolloooooooovßÿÿÿü˜olpoloooolooooopolovoopoooopoolpolloopolopoooppoloooopoooooolloplooooooopooplooooooooollloolllloollllloolllllolooloplllllllllllClllllllloÇýÿèylllCClllCCCCllCCCCCCCCC??CCCCCCC?CCC?CCCCC??CCCC>C?A?>>?C?>?>>?>>?A=>A>>>AÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿþþæy5555555555555555575555555555555555555555555555555555555555557555555555555555555555555555555555555555555555555575555555555555575555555555555555555555555555555555555555555555755575555555555575555555555555555555555775555555555555555555555555575557555555555555755555555555555555555557555555555555555575555755755555555555555555575555555555555555555555557555555555555555555555555555555555575555555575555557755555555555555555555555555555555555555555555555755575555555555žèÿÿÿÿÿÿÿÿÿÿÿüúúúüüü÷¬slllCllllllllllllCCllollllllllllllloolooollolllllllolollllllooolopooolloooolooußÿÿÿü˜ooooopolllooovpoloppooppoolppppvooopvpooppoppplloppoopppoopopooollooloolloppllpoolloooloollllllooollloooollllloololloollllllllllllCllllllvâÿþÌtCCCCClolllCllCCCC?CCllCCC????lCCC?CC?>>CC?CCC???C>>??>>CC>>>>A>=>>>=>?=>z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþþày555555555555555555555557755557555555555557555755557555555555555555575555557555555555555555555555555555555555555577555555555755555555555555755555555555555555555755555555555555555555555575555555555555555555555555555555755555555555555555555555555555555555555555555555555557555555555555555555555555555755555555755755555555555555555755555555555555555755555555555555555555555555555555555555555575755555555555555575555555557575555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüúúüüü÷¬sllCCllllCCClClllllllClllllllllollloollooloopooooooollopooollooopooooooplopoloußÿÿÿü˜oolooopoooppopploppopoopopppoolvppoppoooloooooopooolopoolooopooplooolooolooollpololllloolllooooololoooollllllllolooloollllllllllllllllllClƒòÿú˜lClllllCCCllllCllllClCllCCClCCC??>?CC?CCC?CC>>>C?>?CC?AC?>>>>??>>>>>>>=táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿþþÿÿÿþÿþæy5555555555555555555555555555555755555555555555555555555555555555555555555555555555575555555555555555555555555555555555555555555555555557555555555755555555555555555555755555555555555555557555555755555557555557555555555555555555555555575555555555555555555557555555555555555555555555555555575555555555555555555555755555555555555555555555555555555555555555555555555557555577555755575555555555555555575555555555555555555555575555555555555555557555555555555œèÿÿÿÿÿÿÿÿÿÿÿüúüúüüü÷¬vCllllllllllllllllllllllllllllloolollolllloolppoloolollolololooopooplloolopooovâÿÿÿü˜ppooolpppoopoloovooopoopoppooolvpoopppoolooooppoopoloooplloopooopoopooopoooloooooooooopoooooopoollollloollooolllllllllllllllllllllllCllllll�üÿçylllllClClllllClllCClClC>CCCCCC??CCC?CC?C?>>>??C??>?>>>A>?A>>>>>A>=>>>>Åýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþþæy55555555555555555555555555555555555575757757555555755555755555555555555555555557555555575555555555755555555555555555555555555557555555557555555555555557555555557555555555555555755555755575557555555555555555555555555555755555555555555555555555555555555555557575555555575555755755575557555557575575555555755555555557555555555555555555555555555555555555555557555555555755555555555755555555555555555555555555555555555555575555555555œèÿÿÿÿÿÿÿÿÿÿÿüúüúüüü÷§|lllllllllllollllllCollollolloloolllllollololopollooolllooopollooooolloloppopoußÿÿÿü˜oppooloppooooopopooooooppoopoooopopopploopoopvpoooppolppoloooooooopppoopoooolpopoopopppopppooplooollllloloopplllollllllllllllllllllllllllllußþþÌulCllllllClCCCll?ClCClCCClC?CCCCCC?CC???C?>>?C???C>A>>>?C?>>>>?CA=A>>]ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþæy555555755555555555555555555555555555555555777555555577555555555555555555555555555557555555555555555555555555557555755555555555555555555555555555555555555555555555557555755555555555555555555555557555555555555555555555755555555575555555555555555555555555555555557555555555555755555555555555555555555555555555555555555555555555555555555555555555555555555555555575555555575755555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüúüõ¬sllllllClllCllllllCCllloololooCllpoolloolollllllopooooppplppollllllppooooopoloußÿÿÿü˜oooppoopvppppppppppooloopolpvppooppooooovvooooooppppoopppooloooppoooooopopvplopolopoooolpolllollpooollloolllolooplllloolloololllllllllolCllC{ñÿú”CCCClCllClClCClCCC?CCCllCCCC??????CCCC>?CC??C?>?C?CCCC?>??>>>?A>>>>AËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oØþÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþày5755555555555555557555555555555557755555555557555555555555555555555557555755555555557555555555555555555555555555755555755555555555557755555755555755555555555555575555555555555555555555557555555557557555555555575555555755555555555555555555575555555555555555555555555555555555555555555755555555555555555555555555555555555575555555555575555555555555555555555555755555555555555555557555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüúü÷¬|llllCCllllCllllllolollollolllllloloolllloooolllooooppooollooooooooplopppoopolvßÿÿÿü˜olpppppooopppolooppppppopooppppoooppooppppoppopppppppppolppppooppololoppooppooooooololpoooloopollopppolooloolllollllllooloollloolllollollllll›üÿñyllClCCClClClllCCCCllCCCC?lCClClCCCCC?>??>?C??CCA>?C??>??A??>>A>?>>ƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþæy55555555555555557555555555555577557755575555755555555555555555555557755555555555757575555555557555555555555555555555555555555555555555555555555555755555555555555555555555555555555775555557555555557555555755555555555555557557755755555555555555555555555555555755555755555555575555555575755555555555755555555555557555555555555555555555557555555557555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúüüü÷¬slllllllllllollllllloollllolllooooloooolopoloooollooooopoolopppopolooooppplooovâÿÿÿü˜ppoopppooooppooooopoppoopppopooppoppoopoppoooppppppooppoooppvooopoopoppoooooppplpooloppoloooppooloooopooolooooolloolllloolllllllllllllollooCluÌþþÌtlClllCllllClllCCllCClCCCCCClClCC??CC??CC???CCC?AC?>A?C?CC>>>>>?>táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy557555555555555555557555577555555555557555555555555555555555555555555555555555757555755557555555755575555555555555555555555555755555555555555555555555555555555555555555555555555555555555555555555755557555555555555755555555555555555555555555555555555555555555555555555555555555557555575555555555555555555555555555557755575555555555555555555555555555575555557555555555555555555555555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüüúúüüü÷¬|Cllllllllllplllllllllllloolllllooollpooopolooooolopoloppooopppopoloooolopoooovâÿÿÿü˜pooopoppooppoopppopopoloppplpolpppoppopooppooppooppoopppoppppppopppopppollpppppopppoppolopoopopoopllloppoolloooolopolllllllollllllllllllloolllyòÿú”lllllllClClClllCCCCCC?CClCC?>?CCC??CCC?Cl??CCCC???>?CCC???>>??>AÅþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vØþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿæy55555555555555755555555555555555555555555575555555555555557755555555555555575755555555555555555555555555557555555555555555555555555555555755555555755555555555555555555555555555555575555555555555577555555555555555555557555555555555555557555555555555557555555555555555555555555555555555555555555555555555555555555555555555555555555555555555575555555775555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüúü÷¬olllollllllollllllolllllllopllllloollooooooooooplololloplooooloppopooooooppplußÿÿÿü˜oppppppoolpvpoppvppopoppppvpppppopopppppppopoopppppoooopppolppppppplpppppoppopllopplopolpplllloolppoloolopppopoolllllpplllllllllllllooollllClll›üÿèyllllllolllllCllllClllCClCC?ClCllCClC??CCC?C?????>?C>??>??>>>?=xòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿæy55555555555555555555555555557555555555555555555555555555555555555555555555555555555555555555555555555555755555555555555555555557555555555557555555555555555555557555555555557555555555555555555555555555555555555555555555555555555555575555555555555555755555555555555555555555555555555575555575555555555555555555755555557555755555555555755555555555555555555555555555555557555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|llllllllllllllolllllllClopooolololooopolloooolppoooopolpopplooopopppooooppoooußÿÿÿü˜pvpooopppooopoopppoovppopppooppoppppppppppopppoppooopppppoopppooopoooppopolpoooppopllopooppppppppooooloolopoloollooolpploollooolppllllllloollllußþþÌllllCClllllClClCCClClCllCCCCCCClCCC?ClCCCCC?A>?C?>CC>?A>?C???CÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþÆ   pÚþÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿæy5555555555555755555555755557555555557555555555555555555755555555555575555555555555755555555555555575555555555555755555555555555575555555555555555557555555555555555555555557555555555555555555555555555555555557575555555555555555555755555555555555555575575555555555555555555555555555555555555555555555555555555555555555555555555557555575555555555555555555555575555555555555555755555555555žèÿÿÿÿÿÿÿÿÿÿÿüüúüüüüõ§vlllllllllllllolllololloloolooloooloooooooloolpolppooooooppooooppooppoooppppppvßÿÿÿü˜pppppoppppoopppopppovvpopooopvpopppppoppppopppppvooopppppppppooooppppppoooooooppoopooovoooooppoppoooooppllooollllopolooollllopolloplllllllolllllƒòÿú˜llllllllllClClCCCCCllllCllC?CClCCCAClC?CCC??C?AA?CC?CCA???>?”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555555575555555555775555755755555755755777575575575555555555577555555555555555555555555555555555555575555555555555555555555555555555555755555555555555555555555555755555555555555555555555575555555555555555555555555555755555555555555555555555555555555555555555555555555557555555555555555555555555555555555755555575555555555557575555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬slllloolllloolllloolllloooolollopooooolloolloopolpoooopplpoopvpoolopopppplovvpwâÿÿÿü˜oopppoppppopvpppppvppppopoppvvpoopooooooovpoppppvvpppppppvvppppppvpppppoppppppoooppppooopooloploopooloppoooololoooolllloolllllllllollllolllllolllÇýÿñyllllllllllllClllCClCClCllCCC????>???CAClC??l?>>?C?>??>?>>?táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  oØþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿæy55555555555555555555555775575575557555557575555575577755555555555555555755775555575555555557555555557555755577755555575555555555555555555555555577555555555575555555555555775555555555575555575555555555555755755555555555555555555555555555575555575555555555555555555555555555555555555555555575555555555555557555555555555557555555555555555555555555555555�èÿÿÿÿÿÿÿÿÿÿÿüüúüüüü÷Òsllllooopolollloollloooloollopoollopllllopooooloopooooopooopoopppoopppopppopopvâÿÿÿüœppppvpppppvvpoopvpplop|poppoppoopvpppppppppppopppvpvvpppoppoppppopooppoopopppoopppooppppoopoopoloooololopoollopolllllolloooplloppllllllolllollllluçÿþÌullCllllClCClClllCClCllCCClCCllCCCCCC??CCCCCCCCCCCA>?CC?>AÅýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþæy55555555575555555557575575755575775555555555555555555555555555555575575555555555555557555555755555555555755555555575555755555555575555555555555555555555555555555555555555555555555555555555555555755555555555555555555555555555575775555555555575555555555555555555555555555555555555555555555555555555555555555755555555555555555555555755755555555555555555555577575œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬}loollllooolllllolooooollllolooooopooooopolpvpooooppooooooppppppppppooppppopoovâÿÿÿü˜pppppppoppppvvooppoopvvpppopppoppppppppopovpppppppoopvpoppoopooppvpoppppvoopppopoopoopppppopoooooppololooppooloooolopoopollollooolllllloololllolll”úÿúƒooClllCllllllCClllClCCCCCCCClCCCC?CClCCC???C?CCCCC>>???>yñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿæy555555555555555555555555775555557755755555575575555775555555555577575555555555557575555555555555555555555555555555555555555555555555555755555755555555555555555575555555555555555755555555555555555555775555555755555555575555555555555555555555555555555755555555555555575555755555555555575555555555555555555555555555555555555555555555555555555557œèÿÿÿÿÿÿÿÿÿÿÿüúüüüüü÷¬sloolllllllllllollooooollooolloooollooppolopopppoopppopolpppppoppppooopppppoopvâÿÿÿü˜ppvpovpppopp|vppppopvppvvppovvovpppppppppoppppvpopppppppppppvpoopppoppvppppppppopppooopoppooolppppppoooooppppooolooooooppolloollloolllpolollllpllloÉþÿçulClllClllllllCClCCClCCC?ClClll?CCC?ClC????C?????CC>>??CÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿæy55555555555555555555555557575755557555775555555555555555555575755555575555755775555555555555555555755555755555555555555555555755555555555555555555555555555555555755555555557557555755555555575555555555755555555555555555555555555557555555555555555575555555755575555755555555555555557575555755555555555555575555555555555555555555555555557555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|lllolllllllolllollllloooooloooolollllooloolooooooopppppppopollopppopvppooppppvâÿÿÿüœvppvvvppvooopp|vppppppopppppppovpplopvpppppppppppppvpppoppvpppppoopooppopopploppppppppoppvwoolppooloppvpppoloppplopolllooooopplllloloooooolllllllllyñÿþÇllllllllllllllCllCClCCC?CllCCCllCCC??C?>?Cl??>>?????CC{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy7555555575555555555777555757577555555555555555555575575577555555555555555555555575555555555555555555555555555555555555555555555555555755555555755557557575755555555555555555555555555555555555555555555555555555755755555575555755555555555555557555555555575555575555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬sollllllollllllopolpoolooooooplloppoooppooopoppolopopopvpopppppppooppppppppppoußÿÿÿüœvpoppppppoppvvpppppoppppppppppppvvppppppppppppppopppopppppppopvvpppopvpoppppopppooopppoppopppppppplopoppplopolpoloopooopooollloplopllollllllllCoolll›üÿ÷{loollllCClllllllllllllClClCCllCllCCCCCCCCCC??C??A>CCCÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5555555755575575755557755555755575555777555555557755555775555555555575555755555755555555555557555555555555555555555555555555557555555555555555555555555555555555555575555555555555555555555555757555755555555555555555555555555555555555555555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|olllllloollollloolpoolpooloopopooopoopoopooppooooopplopoppoppppppopppvppppvpovßÿÿÿüœppppoopvpvpppppppppvppppvvppppvpvvppvvpppppppvppppppvppppppoppppvppoppppopppppopppopoppvpolopppoopoppoopplppoooooooooooplooolloolopollllllllllloollloÞÿÿßtoolloolllllllClCllCllCClCCCClCCCCCCCCCCCC??CC??C>Cl”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿæy575555555555777755555575755755555557755755555557555555575555577555555555555555555555555555555555557555577555555775555555555557555555555555555555575755555555555555555555555555555555555555555555755555555555575555555555555555555575555555555557575555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüüõ¬qolloolllllllllllooololooolooopppooooopooopoopoppoopppooopppppoppppvpvvpopppppvâÿÿÿüœpppppoo|vpppppppppppppvpvvoppv|opppppvppvvpovwvpoppppvpppppppppoppppppppopppppppppppoopvpoopppoppppppoooppppppooopppollloloolopollpolllloolooooooolllyòÿý›oollllllllllllCCllClCCCClCCClCCCCCCCCCCC??CCC?C???uâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy555555755555555555555757555555755755555575755755555755555557555555555555555555575555555555555555555575555555557555555555555555555555555555555555555555555555555555555555555555555555555555557755555575555555555555557555555555555555555557555557555555755555555555555555555755555555555557555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬qoololllopolloolololloopppppooploopppovpppppoppppppvpppppoovppoopppppppppppppvvâÿÿÿü˜ppppvvvppppppppppppopvvpppopppvpovwppppppww|pvppvwwpppppppov|vppppppppopppvpppppppoppppooppoopoooooopppppplopoopoooploolooopooolllooolllollllllloollloÇþÿñylClllClolClllllCClClolCCCC?CClCCC?Cl??>??CC?C?C?A›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿæy55555555555555777757557555755775555555555577757555555755557575555555755755555557557555755755555557555555557755555555557555555555555555555757555555555555555555555555555555555555755555555555555555555555555555555555555555557555555555555557755555555555755555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|ollooloolllooolooolopopooollopoopooolooppooopoopppppppovppvpppo|ppoooopvpppvpvâÿÿÿü˜vppppvpppppvvpppvvppvvpppvppppppvpvpppvvpppppvoopvpp|vvppvpppppppppppppvpvvoppoppopvpooopppoopoovppoovpoovpoolopppoooopopolopppolopoooolloolllollololluçÿÿÞlCllllllllllllllllClCCCllCClCllCCCCCCCCCCCl??CC?uçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy5555557555557777557575777575777577555555575555575555555755557555555755555555555555555755555555555555555755555555555575555755555555557555557555555575557555555555555555575555555555555555555555555555555555555555755755555555555555555555555555555755555555555555555555555555775557555555555555555555557œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬sllolollploooooolooooopolopolopooooooopooppolpoopoopppoovppppppoppppoopvppppppwâÿÿÿü˜vppppppppppp|pppvvppvppvvvpvppovvpvpppvvpppppvppo|ppvwvppvvppvppvqppppppppppppppppp|poovpppoopppppooopoopppppoooppoooopopoloopoooooooooooololllooloolll†úÿü”llllollllllClllClllClllCCllCCCCCCCCCCCCCCC?A?CCÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþæy57555557575577555555577777757555575757775577575555575557555757555555557555555755555555555555755555555555555555775575755555557555775555755555555555577555555555555555555575757555555557757555557555575555555555557555557555557555575555555555555555555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüüüüüüüõ¬}oolllllpppoolopolllpoopooppopvopppopvppopppopoppooopoopvpoooopppppppovvpvppopwâÿÿÿü˜ooppvpvvovppvvpppppppppvwvpv|vpppoppvpvppppp||vvpvvpppppp|ppp|vppppoppppoop|vvpppvvppppvppppppvppooooloppoooppppppolopoloooooooopoolooolpppoolloololllooÞÿÿçullllolloolClllClllClllCCllCCCCCllCCC?lC??C?>C{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    vÚþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿæy5555555555557557775557757577775755555557577575555755777555555555755555755555555557555555555555575555555555555555555555555757555555555555575555555557555555555555557575755555557555557555557555555575555555555555555555555555575555555555557555555555555755555555555555555555557555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüüõ§qlllllololllopppppoloolppppopopoooplooopvvpoopppopppppvppppvvpp|ppvwvpvpppvvppvâÿÿÿüœwvp|wvvvpwvvvpopp|w|vppp|vpovvp||vvpppppvpp||pppvvppvppppp|vppppvvpppvvppvppppvppopoovvpppopoppoovvppppppvpoolpoolooppoloppooollopolooolllllolopollollll{÷ÿþÊoCllollCllolCCClClClCllCCCllCC????llCCCC?CCCCÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555555755577577557577575577577757777777755557775577555555755555575575577555555555555555555555555555555555555575575555555555555555557775555555555555575555555555555555555555555555555555555555555557755755555555555555555555555775555555555575555575555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷Ò|ololooopooolololpvlppopoppoooloopoopopppoooppppppppplppppppppp|vppvovvppppvppvâÿÿÿüœvpppvvppppppvppppvppppppvvvvvpppvvwpvvvvpvpppvwvpvpvvpvvvppppvvppppvpppp|vpoppppppvpvppopvpppvoppppppppoppppopopoopppppppppooopooopololoolllllooolooollllÆþÿú{ollllolllllolllllllllCllClClllllCClC?Cl?CCCz÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy5555555555557577775757757777555775775577557577555555755575775555555555555555575577555555775555555755555575555575557555577555555555555555555555555555555555555555555555555575555555555555555555555555555555555555555575755555577555555555555557555755757575555555555555557555755557œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬slllllooooooooolloplppppoolooplpppooppppooooppoovopppopppppppppvvpppppppppppppvßÿÿÿüœpppvvppppppppppvpvppppvpvppvvppvppvpv||pp|ppp|vppvpppvvvwvpppv|vpppvppppvpvpppppppppvppppvvovvppppoppppoopppppoppoopppopooppoopoooppooloollooloollllopllluçÿÿÎuollllllCllolllllllllllllCllCCllCCCC?ClCCClÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþæy5755757555555557757777$77777755777755777775555555557755555577557557555575555575555555555555555555755555575575557575555555555555555555755555555555557555555575555557575555555555555555555555555555555555555555755555555555555555575555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|lloolopooopooppolloloppoppppvpvvoovppvppopppppppopvvvvvpoppovoopppvw|pvppppvv}âÿÿÿü™vvvppppp||||vvvwpvp||vpv|povvvpppvppvpppp|ppvvvvpvppppp||pppvppppvpppp|vpvvppvvvpvvppvpopopopwvppvpopvpvp||ppppoopppppopooppppololoppoopoololopoooollllolo”üÿüƒoollllllllllClCCClCCCCCl?ClClCCCCC?ClCCCCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  !pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5555555555557555777777777775555775=7777575777555757577577575555555555555757555557575755555755555557575555555555555555555555555555555555555575557555557555555555555555555555575555555557555555557555555555755555755555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷§sopvpoloooooooolopvvooopoopoooppoolpplpppp|popopoovppppppvv|vvwppoppppvvpovvpvwâÿÿÿü˜ppp|w|vvppppppvw|pv|vvpvvvp|ppvvpvppppp||vp||pvppvpv|vvppppp|pp||pv|wvp||pppvpppoppppvvpppppopooopvvppopppooppppppolpppolppopoopppopolovollpploolllopoolopoáÿÿçooolllllllllllllCllllllllllCCClCCCCCClCCtÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà    oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5575555555757777755777757755777777575755777555555755575755555755557775555555555555555555755555555555555555555555555555555555555555555555555575555555555557555575555555555555555555555555555755555555555555757557œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬sloollloooolpoopooooppppoovpoovopvpopo|opvppovvpvppvoppppvvpppvpppppppp|vpppppvâÿÿÿüœv|vvvpvvpppvvpv|vvvvppppvvvpvvpwvvvvvvpvv|pw|ppvvpvvv|vvvvppvvppvvvvvpppppppvppvpp|vppvpppvpvpppovpppopppvppppopppoppoopopppooopooopooopooopoloolllooololol{úÿþ�lllllllllllllllCllCCllllllllCClCClCCC?lƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy555555555555555555557775775777777777575557755757755575575555555555757555555557555555555555555555557555555575555555555555555555555555555555575555577575555557555555755555555555555555557555555555555555555555555555555755555555œéÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|loollopooolpolopoopppppoppppppppvpppppppppppvvvvpopppppvvvpvppvvvvvvppvvpp|vpvâÿÿÿüœvvvvpvvvpvvvppppvv|vppvoqvvvppppvv||wvvvvppv|vvvvpppvvpvvvppvvvvvppvpppvppppvpppvpvvppvpppvpvppppvvpoppppvpvoooopvppppvppppplopoolopooooopoloolooloooolollloÌþÿñuloolClllllllllllllCllllllCCCCCllClCC?tÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy5555557555755577777775777577777755755775777577775557777555557555555755557555557555755555555555555555555555555555555555555555555555555555555555555555555755555555557555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬}polooooooopppopvppploopppoopoloppvpoopvpoppopoppvvpopoppoov|ppppppvppvppppvpvvâÿÿÿüœppppv}w||vvvppwvpv|w|w|pvp|v|}||ppppvppvp|vpppvvvvppppppv||ppvvpvpppppv|vvvwvvvpv|ppvpooppvvv|pppppvpoppvpppp|pppppooppolopppvpolppvoopooolloppopoolllllopppy÷ÿþÇlllllClolllllllllllllC?CllCClCCC??CCC”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555555777777757775777777577777777777557557757775555555555555555555755555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557575757557555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷ÓŽoooooooolooooooppoolopppppoopopopvpooppplppv|pppopvp|vppvpppppvpppvppvppppv|pwâÿÿÿýœwppp|vpv}vvvpwv|pvvvpppppv}vvvpvw|qvvpp||vpv||vvpv|v|vppppppp||v|pppv|vpppp|ppppvvvvv|v|vpppoppp|povwppopppppppopooopvvpoopoooovpppppollopoooopoopooooloolollÉÿÿñoooloooollllllolllllloCllCClllllllCltÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555555575577775$5777777557557755755555777775555575555575755555557555555555555575555555755555555555575555555555555555555555555555555555555555555755555555555555555555555555755œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüüùÒsooooloooooopoopooppopvoppopppppopppppopppvpopvpvpppvvppppvppvppvppvppvvvvpvvpvâÿÿÿüœvvvvvppv|vvvpv||p||p|vvvpv|vvvpvw}pvvvpvvvwv||ppvv|||pvvpvvvvvvv|vvpp||vpppvvvvpvvvpvwvvvpvppppvvpoppwpppvpopppppoopppppoppppoopvpopoooooooloopoopoloploolooly÷ÿü”oolllllllllllllllllllClolCllClllCClyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà   vÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæx55557555777757777575777755777775757755557775555757557557755555555555555555555555555555555555555555555755555557555555555555555555555555557555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷Òspolopolooopolopppppoopoppplpppppvpppoopppvpopppvppvvppvppwpppv|vpv|pv|pvvp|wpwâÿÿÿü˜v||vpvppppv}vppppvppvv|v|wv|}wvvvvvvvvvvv}|vv}vpv|vvvv}|vw}|||ppv}|v|pvwvpppv|vvvp|pppvvpvpppvp|wpopppppvvpopvvvppppvpopppppppoopoopolppooooloplooolloooollpolÌÿÿÌloollollllCllllllllllllllllllClllCC›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555555557775775757757775775757755577557755575577577775555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬soooppopvpppplopoooolpolpppoppppppppoppopppvvvvvpppp|wppvvpppppvovvvvv|vppvvv|wâÿÿÿýžvvvvvwvvppvvvv||v}}|}}|ppvvvv|||pvvp|||vvwppvvv}|vv}vppppppppv|ppvwpvppvpv|vppvvpv|pvvwvvpp|vppvvvww}wvwvppvvvvpovpoppppppppolooooopppvpppoppopppollooolllllol{úÿñuloolollllllllCCClllCllClllllCClCClÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÆ  pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555577755777577575577577777777555575555577555557757557555557555575555555555555555555555555555555555555555755555555555555555555555555555755555555557555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|oopoooooooopooppppoopvpppppppppppvpvvpvvpppppppv|vvpvpp|pvwvpvwvpppppvvvp|pvvvâÿÿÿüœv||vvvv|vvvp|vvv|vvvvvpp|v||vvp|vvvvvv|vpvp||vpvvwvv|vvvv|vv||v||vv||wvppvvw|vppvvpvvvwv||vwwvppvvvpvvvvvv|vvvvpp|vvwvvppvpvvpppvvpopppppvoppppoopooopvpoupooloÞÿþ”loooloollllCollllllllllCllCCCCllCuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    mØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555555757775557755577757$7557557777577777775757757555755755757555557555555555755555555557555555555755555555555555555555555555555555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬|oppoopppolooppooppoppppvppppppppovvvpppvppvvppvvpv|vvppvvv||pp|vvvppppvvvppvvwâÿÿÿüœwv|vvpvv|vvpwvv}vvv|pv|v|v|}vvpqv|pvvvvvv|||vvvvvvv||pv|wv|wv}vvwwvv}wvvvvvv}wvpwwvvvvwvwwvvvvvvwvvvvpvvwvvvvvvvpwwvvwvvvvvvwvpvvvvvvvvpvpppvppoovppooppvppoooo{üÿÌolloooollllloollllllllCCllCCllllCyñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555557775555555755775755575777775=777775777577557777775777577557775555555555575555555555555555555555555555555555555555555555555575555555555555555555555575555555557555555555555555555555œôÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷Õ~oppooppoopppvvpppppvppoppppppvppovppppopvvvpvoppoppvvpvvpvvvpppp}|v||ppvwv||wwâÿÿÿýœpvv||v}||pp|wv||pw}||w}|v|pvv|vpvvpvw}|v|vvv|www|vvvwvvw}wwvwww|w}wwww}wvvvvvwvv}}w}vvvvw}wvvvv}}vwwvvvvwwvvvvvvvvwvvv}wvvvwvvpvuvvvvvpppupppououvouopopplpuovpvâÿápoolllllooolololllllllllllllClCllƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–þÿÿþà  vÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555557757775577577757777755$7777757777775577557775577555555555555555555555555557555555555555555555555555555755555555555555555555555575555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬}oooolloopopoopppoppoppoooppppppppvvv|v|pvpppppvvpv|ppp|vppp|||vvppv}||||vpvppvâÿÿÿýœp|pp|||ww|vvv||}vw|pvvvvvwppvw}|}}|vvwwv|vwwvvvw}wvw}wwwwwwwwvwvvvwwv}wwvvw}}w}w}wv}}}wvwwwww}}wvvwwvv}wvwwvvvvwvvvvvwvvvvvwvwvvvwvuvvvvvvwvvvvvpvvvvvuppopouuuuÌÿòuoopvpploooollllllllllllllClCClll”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà !pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555557757557577575577777777577577775577555775775757575555555555555555555555555555555555575755555555555555555555575555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬sooppooopoopoppooppvpovppvpoppvpppvppvppppvpppvpppvwvpvvvvvpv|}|vvv|vvvvvvp|||vâÿÿÿüœv}vvvwvvpw|vpw|vwvpv}|v}|v|v|||vw|}w|w}w|wvvw}}}wwww}}wwww}}vwwwww}}vw}}}ww}}}}vw}}www}wwvwwwwwwwv}wwwwwwwwwwvvwvwwvvvvvvvvvvwvwwwwvvvvvvvvvvvvvvvvvvuuvwupuvopu�ýúyvouvpoluoolloopllouolllllllllllC”ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555557755757775775555777557757777777757777775577775755555555555555555555555555775555555555555555555555555555557555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬}ooppoppoopvpppoopvppp|vpvvpppppppppppvpppwpp|vppvpv}pvpvvv|p|||v||vpvvppvvv|vvâÿÿÿü™v|wvvvpvvww||||vvv}vww|www}v}wwvvv}}}w}}w}vwww}}w}ww}}ww}wwwww}}ww}}w}w}w}wwwww}}ww}}}}vwwwwwwww}wvwww}wwwwwvvwwvvvvvwvvvvwvvw}wvywvvvvvvvvvuvvvwvvupwwpvvuuuv˜üü†vouuuuuuooopuupuloppuollllulllCC–ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555555775777755775$777557777777577777775777775757755555555555555555755555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬sppoppoovpppoooopppoloopppoop|ppvppppo|vpp||vv|vw}vv|vpp||wwvvvw|vpp||vvvv||p|}âÿÿÿüœ||vvp|wwvppp|pvwvv|wwvww}ww|vwwwvww}}}}ww}}}}w}ww}wwwww}ww}}}}}}}ww}w}}}}w}}}w}}}}wvww}}www}}wvvwvv}w}}ww}}wvw}wwww}wwvvvvwwvvvvvvvvvvvvuwvvvpuvvuuvvvuvvu†úý›vwupvvvvvuuuloopuooolllolollllol”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   vÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5577757575757775577775577557775555775755555555755555555555555555555555555557555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬}poppooopooppppppppvpppvvppvvvvvppvppp|v|ppv}vvvpvvppvvpvvvvvvpp||pp|||vw|p||pwâÿÿÿýœvv||w}}|}vw}}}w}wwwww}}wwww}w}}}}}wwww}}ww}}w}w}w}ww}}www}www}w}}}wwwwwwww}}w}ww}wwwwv}}vww}w}ww}ww}vvw}vw}vwvwwwvvwwwwwwvvwvvvvvvwwvvwwwvvvvvvvvvpuvvvpvpu{úý�vvuuuuuuuppvuoupoouuououooouolllƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5555555757555557757755757755757$757757777777577575555575555555575555555555555555555555555555555555557555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬}ooppooppoopppppppp|ppppppvppv|ppvvppp|pv|pvvvpvvvvppvv|p|vpvvvvvvvp||vv|vpv|vwâÿÿÿýœvv|w|}ww}www}w}}v}}}w}}w}}w}}}}}w}}}w}}}w}}}ww}}}}}}ww}www}}w}}}w}}wwww}}w}w}wwww}ww}}w}wwwwwwwvwwwwww}vwwvvwwvwwvwwwvwvvvwwvvwvvvwwvvvvvvvvvvvvwvvvvvv{úý›vuvvupuuuuuuuuuuuupuuuuuuuuuootl{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55557555755775557575575555777777775777577557575755555555555555755555555555555555575555555555555555555555�èÿÿÿÿÿÿÿÿÿÿÿýüüüüüý÷Ò|pppppppvppppppoppoppopppvvppvvppp|ppvvvp|vppppvpvpv|ppwv|vvpv|vvv|||vp|www}vvwâÿÿÿýžwv}w|wvw}ww}}}w}}}}wwwww}ww€}ww}}€}}}ww}}}w}}w}}}}}}}www}}w}}}w}}wwvw}ww}www}}w}}wv}wvwwvwwvwww}}wwwvw}vwvvwwvw}wvw}vvvvvvvwvvvvvvpvvvpw}yvvwvvv˜üü˜uvvpuuuvvuupupuouvvvpuouuuuoupuuyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5555757557575555577777777575775575555555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷Òspopopppppopppppvppwwvvpppppvpvpppvvpvvppvv|ppwppvpv|p|}vvp|p||vvvvv|w|wvvw}||âÿÿÿüž}www}w}ww}}wv}}w}ww}w}}w}ww}}}www}}}}}ww}}ww}}}w}}}}}wwwwww}wwv}}}}w}}wwwwwvww}wwv}ww}w}}www}wvw}wvwwwvw}}v}}wvwvwvwwwwwvvvvvvvvvwvvwvuvwopvuuuuÇþú{uwvvvuuvvvvvupvuuuuuuuuuuuuuoluooÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555577555755555775777757777755577575775555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüýü÷¬qpppopppppppppppvvpppvppppvpppv|pppvppppvvvvvpvv|vvp|v||v|vwvvvvvv|wv|||vv}|vv}âÿÿÿüž}ww}}}w}}}}}w}}w}}}w}}}}}}}}}}}}}}}}}}}w}}}}}}}}}}}w}w}}}}}}}}wwww}}w}}w}}}w}}}ww}ww}w}}}wwwvw}}wwww}ww}wwwwwvvwvvwwvwwwwwvwwvvvvvwwvwvvwvvvwpwwpvvwÞÿñwpvvuvvvuvuupupuuuuuvuupuuoouuouut›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555557557557777775775777777777577777575577555557775555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬|vpopppvpppppppppvpppppvpppvvpvvpppvvpvpvvpvvvqvwvvv|||vv|v|vvw}|vvvvwvwvwwwww}âÿÿÿüžww}}}}}}}}}}w}}}}}ww}}}}}w}}}}w}}}}}}}}}}w}}}}}}}}}}}w}}}}}ww}}w}}}ww}ww}}w}}ww}}w}w}}}wwwwwwwwwvvw}vvvvwwwwwvvvwwvwwvwwvvvwwvvvvvvvvuv†÷ÿ×vvvvuvvvuvuuvvuuupuuuuuvuuouuuuuutyâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5557775755775777775577777$7777775555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬spppoopvvppppppoppppppvvvvp|pppvvppvwv|vpppvv||||pp|v}|vvwwvv}}}}ww}}wwvvw}vvw}âÿÿÿýž}}}w}w}w}}}}}}}}}}}ww}}w}w}}}w}}}}w}}w}}}}}wwww}w}}€w}}ww}}}ww}}ww}}}vw}}wwwww}}vwwwwwwwvwwwvwwww}wwwwvvwvvvvvvvvvvvvwvvwvvvvpvpvvvwÊÿü”ppvvuvuvuuuvvvvpuupuuoppuuuuuuuuuuu�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5555757577777777757777777775557555555555555555555557œèÿÿÿÿÿÿÿÿÿÿÿýüüüüýü÷¬qoppppoooppvpvvppppppppp|vppppvvpvvvvp|ppvvp||ppvpvvvv|wvvvww}wvwwvwwww}}}}}}}âÿÿÿýž}}}}}}}ww}}}}}w}}}}}}}w}w}}w}}}}}}}}}}ww}}}}ww}}}}}wwwww}}w}ww}}w}}}v}w}}w}}www}wwwwww}ww}}}www}wwv}vwwvwwww}}wvw}wwwvvvvuvvvvvvwvvpvœúÿçyuvwvvvuuuvvvuuuvouuuvpuouuupuuuuvpu{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx555755755775555577777577777775555755555575555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬}ppppppoppppopppppvpppppvpvvvvvppvvvvv|vvvvvv}v|wp|}}vvw}w}}ww}ww}ww}}}}}wwwwâÿÿÿüž}w}}ww}}w}w}}}}}}}}}}w}w}}}}}}}w}}}}}}}}}}}}}}}}}}w}}ww}}}}}w}}w}}v}}}www}ww}w}w}ww}wwwwwww}www}vwww}wvwwwvvvwv}wwwvvvvwwvvwvvvvvwvvv˜òÿý�vvvvuvvwvuvpvvuuuouuuvpuuuuuuouvuuuuoÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5555775557557777755777557555555555555555555555555575œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬sppppppppppppppppppvppppppvwvvvpv|vvvwp|wwv||v|w}|wvwvwww}}}w}}}}}}w}}}w}}wwâÿÿÿüž}w}}}}ww}w}}}}}}w}}}}}}w}}}w}}}}}}}}}w}}}}}}ww}w}}}ww}www}}}}w}wwvw}}ww}}vw}}wwwwww}w}w}www}wwwvwwwwvvwwwvvyvvwwwwvwwvvvvvvwž÷ÿÿá{vvuvvvvvupvvuuvvvuuuvvpuupvuuuuuouuuuÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy57555557775775$775557555755555555555555œéÿÿÿÿÿÿÿÿÿÿÿýüüüüüý÷Ò}ppppvvpppppvvvvvpv|vpp||wvppvqp|vppp|pvvvwwvvvw}wvw}}wvw}w}}wwww}}}}www€}}}âÿÿÿý§€}w}w}}}www}}ww}}}}}w}}ww}}€}}}}}w}w}}}}}}}}}}}}w}}}}}}w}}}wwwwwww}www}w}}}}ww}w}}wwwww}wwwwwvvwww}vvvvwwwvvvwvvvw}wwvvvwvwvyw˜ßúÿÿ÷†vvpuvyuppuuuuuvvwvuvuuvvoovpuuoootuutu�áçññòòúþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþÃ!pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx57555555777577775577577755555555œèÿÿÿÿÿÿÿÿÿÿÿýüýüýüýú¬}oppvppppppppvppppvvpwvppv|ppppp|vpp|wvvpvwww}wwwwwww}w}}}www}}}}}www}}ww}}}�èÿÿÿýž}w}}}}}}}}€}}}}}}}}w}}}}}}}w}}}}}}}}}}}}}}ww}}}}}}w}w}€}}w}}}}}}ww}}}ww}}}}wwww}ww}wwww}wwwwv}v}ww}wvv}wvww}wvvwwwvuvw{w†˜Çßúÿÿÿú�vvvvwvvvvvvvvvvvvpuvvvuuupuoupuuvuluuuvuuuy{{{”Çòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà     vØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555575577575775555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬sppvpppppppppvvppvvvpvwpppv|vpvvv|vv|wwvw}vw}wwwww}}www}w}}ww}}w}}}}}}}}}}}}�èÿÿÿüžw}}}}}}}}}}}}}}}€}}w}}}}}}}w}}}}}}}}}}w}}w}}}}}}}}}}}}}}}}}}}}}}}}}ww}}}}w}w}}w}ww}ww}}wwv}}wwwwwwvwwvwwvvwwvvww}vwwvvv{œÊÞâñúþÿÿÿþ÷ÇwvpvvwvvppvvvvvpvupuvvuuvuuuuuvuupuuuuupuopuutluußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà vØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555575777$7775555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüýüü÷Ò}vppppppppppppvpv||p|pv|pp|wvvv|p|}vvwww}}w}}www}w}}wwv}}}w}}}}}}}}}}}wwwâÿÿÿýžw}}}}}}}}}}}}€}}}€}}}}}€w}}}}}}}}}}}€}}}}}}w}}}}}ww}w}}}w}}}}}w}}}www}ww}wvw}}ww}}wwwwwvwwvwwvvvwvvvwwvwwvvvÞüýþÿÿýü÷òâ̘wwwpvvvvvvuvvvupuvvvuvuuuvuvpuuuuuuupuoooououtltuuÌþò÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5555555577757757$77777575777555555œéÿÿÿÿÿÿÿÿÿÿÿýüüüüüýú¬}wvpvppppppvpppppv}vpppvvv}v|}vvwwwwv}w}}}wwwvwwww}w}}}www}}}}}}}}}}}}}}�âÿÿÿýž}}}}}}}w}}€€}}}}}}}€}}w}}}}}}}€€}}}w}}w}}}}}}}w}}}www}w}}}www}ww}}}w}}}}wwwvvww}}w}wwww}wvvvwwvvvwvvvâÿþ÷èßÊœ†{wvvvvvvvpuuvvvvuvpvvvuuvvuvuuvuouvvpuuuuuuuuuutuoooouÉþÌÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55557557777757777777755œèÿÿÿÿÿÿÿÿÿÿÿýýüüüýüú¬|pppppppvpppvppppvwvvpvp|w|pwwvvw}wwwwvwv}vw}w}}}}ww}}wwww}ww}}}}ww}}}}}�âÿÿÿýž}}}}}€}€}}}}}€}}€}w€}}}}}}w}}}}}}}}}}}}}}}}}}}€}}}w}}}ww}}}}}}}}}wwv}}ww}w}}}}}}}wwwwwwwwww}w}wvwwwvvßÿôœ{vwwvvvvvvvvvvupvvwvvvvuuvvvuuvvuvvpuuuuouppupouuuuputuuootÇýÇ{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà    pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy575757775777555555œèÿÿÿÿÿÿÿÿÿÿÿýüýüüüüú¬}ppppppppppvvvppppvvvvwvvwvvwwvww}}w}wwww}w}}}w}}}w}www}}}}}}}}}ww}}}}}}�èÿÿÿüž}}}}}}€}}}}}}}€}€}}€}}}}}}}}}}}w}}}}}}}€}}}w}}}w}}w}}w}}}}w}}}}}}w}}w}www}}ww}}w}}}wvwwwwwww}w}wwvwwwwwwßÿßwvwwwvvvvwvvpvvvvvvvvvvvpvvvvvvpvvuvuuvpuuouvvpoupuuupuuuuuo�ýÇyñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555775777555œèÿÿÿÿÿÿÿÿÿÿÿýüýüüüüúÓ~pvppppvvpvwvwvp||vvww}vvvvw}}}www}vw}}}w}w}www}}}}}}w}}w}}}}}ww}}âÿÿÿüž}}}}€}}}}}}}}}}€}€}w}}}}}}}}}}}}}}}w}}}w}}w}ww}w}}}}}}ww}w}w}www}}}}}}w}}}}}}wwwww}ww}wvv}wvwwwwvv}ßþÌwwvvvywvvvvvvvvvwvvpvpuuuvwvuvvvuuuvvpvuuvuuuuuuuvuuouptopuu›üÇußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pÕþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5577777777$755œèÿÿÿÿÿÿÿÿÿÿÿýýüüýýýúÒspppvpvvppvvvvvv}wvww}wvwvwwww}w}}www}www}ww}}www}www}w}}}}}}}w}}}}}}}}}}w}âÿÿÿýž}}}€}}}}}}}}}}}}}}}}}}€}w}}}}}}}}w}}w}}}}}}}w}w}}}}}}w}}w}w}}}wv}}}}w}wwwvw}wvw}}}}ww}wwvwww}vwww}wßýÊvvvwwwvvvvwvvvvvvvvvwvvwvvvvvuuvvvuvuoupupuvupvpuuuvpoootuou›ú�uÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy557777577755œèÿÿÿÿÿÿÿÿÿÿÿýüýüýýýú¬|ppvvvppvvvvvvwv}wwvvw}}}www}wwww}ww}}ww}w}}w}}}}www}}w}}}}}}}}}}}}}}}}èÿÿÿýž}}}}}}}}}}}}€}}}}€�€}€}}}}}}}}}}}}}}}w}}}w}}w}w}}}}}}ww}}}}}}}www}www}}ww}}wwww}vvv}wwvwwvßýÇvwvvvvvvwvvvvvwwvvvvvvvvvvvvvpuvvvpvvvppvuuupuuouuouuuuuuouu˜ú�uÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555757777577755œèÿÿÿÿÿÿÿÿÿÿÿýüýýüýüù¬}pppvwvpvvvvvvwvvwwwww}}w}www}wwww}w}}}}w}w}w}}ww}}w}}w}}}}}}w}}}}}}}}�èÿÿÿüž}}}}}}}€}}€€}€}}€€}€}}}}}}}}}}}}}}}}}ww}}}}}}w}}}}wwww}www}}}wwww}v}wvw}w}vwwwwwwvwwÞüÇvwwwvvvvwvvv}vvwvvvvvvvvvvppvvvvppvuvvpupvuuuuuuuuouuuupuoou˜÷�uÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5757œèÿÿÿÿÿÿÿÿÿÿÿýýýýüýýùÓ}vvvpvwwvvwvvwwvvwv}vvwv}}www}}vwww}w}}}}w}}}}ww}}€}}}}}}}}}}}}}w}}âÿÿÿüÒ€}}}€}€‘}}‘‘}}}}}€€}€}}}}}}}}€€}€}w}}}}}w}}}}}}}}}ww}w}}w}}ww}ww}wwwwwvw}w}wvww}wwvwwvw}wwwÞüžwvvwvvvvvwvvwvvvvyvvvvvvvvvpvvvvuupuuuupppuuuuvvpuuupvoouuuu”òÅu�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy57757775œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÒ}vvvvvvvwvv}vww}wwv}wwww}wv}}}}ww}}€ww}}}}}ww}}}}}}}}}}}}}}}}}€€}}èÿÿÿýž€€}}}}}€}}}€}€}€€}€}}€‘€}}}}}}}}}€}}}}€}}}}}ww}}}w}w}wwwwwwwvww}}w}}}ww}}wwwwvwww}wwwvvvÞüÇwwwwwvvvvwvvvwvvpvvvpvvuvvwvpvvvpvvpvpuvuouuuuuuuvpoopuupuoo{ò�u”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx57575777555œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýüú¬}vvvwvvw}wvwvvw}wwv}}}www}wwww}}ww}}}w}}}}ww}}}}}}w}}}}}}}}}}}}}}}}}}€èÿÿÿýž}}}€€}}}€}}}€}€€€€}€}}€€}}}}}}}}}}}}}}}}}}}}}wwww}w}}}}}w}}www}w}w}wvwwwwwwwvvwÞúÇwwvwwvvvwvvvvvwvpvyvvvvpuvvvppvvvvvuvvuvvupuuvuuuuouuouuuuuu{òÇuƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5$775557œèÿÿÿÿÿÿÿÿÿÿÿýüýýýýýú¬}wvvwwww}}wvwwwvwwww}www}}}ww}}}}}ww}}}}}ww}w}}}}w}}}w}}}}}}}}}}}€âÿÿÿüž}€€}}}}€€€}}€}}}}}€}}€€}€€}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}ww}}ww}}}wvwwwwwwwvvw×ýÇwvvvvvwwv}vwvwwvvvvvvvvvvvvvpuvuvvuvvvuvvpuuvvvvuuuuuuoooopu{òÊu{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy777œèÿþÿÿÿÿÿÿÿÿÿýýýýýýýú¬}}wvvwvvv}}w}}}vvw}w}vww}}}www}wvv}}w}}}}}}}}ww}€}w}}w€€}}}€}}}}}}èÿÿÿý§}}}€}}}}}€}€}€€}€€}}}}}}}}}}}€}}€€}}}}}}w}}}}}€}}}}}}}}}ww}}w}wwww}}}}}}ww}wwwwv}w}w}wwvÊýÒvvwwwwwwvvwwvvvvvvvvvvvvvvvvuvvvvvpvvvpvpuuvvuuuuppvpuouuuvu{ñÉu{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  qÕþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5777œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÓvvvwwwvvwwwv}}w}}}}wwww}}}}ww}}}w}}w}}ww}}}}}}}}€€}}}}}}}€}}}}}}}�èÿÿÿýž}€€}}}}}€€€€}�€}}€}}€}€}}}}}€}}}}}}€€}€}}w}w}}}}}}w}}}}ww}}w}wv}}w}wwww}ww}wwwwwwvvwwvÊüÊwvwwwvwwwwvvvvvwwwwvvvvvwvvwvvvvuuvvvvpvvvuvvuupupoupuuuuuotyñÌu†÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx775œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÓ~vvv}wwwwwwwvw}}w}}www}ww}}}ww}}}ww}}w}}}}}}}}}}}}}}}}}}}}}}}}}}�èÿÿÿý§}}€€€}}€}‘€}}€€‘€€}}}}€€€}€€€}}}€}}}}€}}}}}}}}}}}}}}w}}}}}}w}}}}}ww}}w}wwvw}w}}}wwwv}vvv}wwÊüÒwwvvwwvvwwvvvvvvwwwvvvvvwvvvvvvvvvvvpuppvvvuvppuuupupuupupuuyñÌu{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà   vØþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæx75œèÿÿÿÿÿÿÿÿÿÿÿýüýýýýý÷¬~wvv}wvw}wwwww}}vwwvw}w}ww}}ww}}}}}}}}w}}}}}}}}ww}}}}}}}}€}€}}}}€�èÿÿÿýÒ}}€‘}€€€€}}€€}€€}€}‘€€€}}€€€}}}}€}}}}€}}}}}ww}}}}}}}}w}w}}}}}}}}}}wwwwwwwwwwwwwÊüÊwwwvvwvv}vwvvvwvvwvvvvwvwwvvvvvvvvvvpupvvvvuuvvuuvpuuvuppuupvñÌu{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  vØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæyœèÿÿÿÿÿÿÿþÿÿÿýýýýýýýúÓŽ}ww}vvwww}}}}w}wwww}w}}}}}}}}www}w}w}w}}}}w}}}}}}}}}}}}}}€€}}}€€€�âÿÿÿýž}€€‘€€‘€€€}€‘€€€€}}€€€‘‘€€}}}€€}}}€‘}}}}}€‘}€€€}}}}}}}}}ww}}}w}}}}}w}ww}w}wwwwvw}}}ww}}}wvw}Êü×}ww}vvvvwvwwvvvvpvvvvvvvvvvvvvvuuvvpuppuppvvuopuuuuuoupupuoouçÞuyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ! Âþÿÿþà  pÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5775œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÓ~wwvwvwwv}wvw}wwww}ww}}w}}}}ww}}}}w}}}}}}€}}}}}}}}}}}}}}}}}}€}}}€èÿÿÿýž€}€€€€€€€}€€€€‘‘€€€‘€€€€€€€‘€}}€€}‘}€}}}}w}}}}}}}w}}}w}ww}w}}}}}}wwww}}w}}w}wwww}wÇüÊw}vvwwvwvvwwwwvvvwwvvwvvvvuvvvvvvvvpvvupvvvvvupuuvvupuuouvuouçßyvñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà   oØþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx7œèÿÿÿÿÿÿÿÿÿÿÿýýýþýýýúÓ}vwwwwwwv}wvw}wvw}}w}}}}}}}www}}}}ww}}w}}}€}}}}}}}}}}}}}}}}}}}}èÿÿÿýž€}€€€€}€‘€€€€�€€‘€€€€�€€€€}}�€€}}}}}}}}}}}}}}}}}}}}}}w}}}}}}}}}}www}}www}}}www}wwÇüÊw}vv}wwwwvvwvwwwvwwvwvvwvvvuvvwvvvpvvvvupvupvuvuuuuuupuuuvuuuáßyuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy$œèþÿÿÿÿÿÿÿÿÿÿýýýýýýýúÓ~vwww}wwvw}wwwww}}w}}w}w}}}wwww}}}ww}w}}}w}}}}}}}}}€€}}}}�}}}€}‘èÿÿÿýÒ€}€€�€}}}€€}€‘€€€‘€�€‘}€‘€€€€}€€€�€�€‘€}}}}}}}}}}€}€}}}w}}}}}€}}}}}www}}}}}}}}}}w}w}www}}wvwwÒý×wwvwv}wvwwvwvwwwvvvvvvvvvvvvvvvuvvpvvvvvupuuvuuuvpupuuvuuuupvââuuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà    vÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþÿÿÿÿÿÿÿþÿÿýýýýýýýúÕ�wvwv}}wvwww}}}}}wwwwwww}}}}}ww}}}}}}w}}}}}}}}}w}}€}}}}}€}}}}€‘èÿÿÿýž€€�€}€€}}‘}€€€€‘€€€€‘€}€€€€€‘‘}€€€}€€€€‘€€}}}‘}}}}}€}}}€}w}}}}}}}ww}}wwww}}w}w}}}www}}}}ÇýÌ}}wvv}vwv}wvvvvvvvwwvvvpvvvpvvvvvvvvvvvvvupuupvvvvvuuuupuvpuuáçuuçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà pØýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy7œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÕ�wvvvwwvv}ww}}}www}w}}w}}w}}}}}}}}}}}}}}}}€}}}}}}}}}}€}}}}�èÿÿÿý§€€}}€€€€€€‘‘€�€€€�€€€‘€€€€€€�€€€€�€€€€€€€}}€€€}}}€€}}}}}}}}}}w}}}}}}}}w}}}}}}w}}w}}}}}}}www}v}}žü×}wvwvwww}}wvvvwwwwvwvv}vvwwwvvvvvvpvppvvvvvvvvvuupvupvuuuuuuvßçuuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎzzñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx75$75œèÿþÿÿÿÿÿÿþÿÿýýýýýþýúÓ~vvvwwwww}ww}}}}ww}}}ww}}}}}ww}}}}}}}}}}}}}€}}}}}}€}€�èÿÿÿý§}���€€€‘‘€€€‘€‘€€€€€€€‘€€€‘‘‘€€€€€€€}}}€}€}€}}}}}}}}}}}w}}}}w}}}}}}www}}}}ww}wwwv}wžüÞww}www}wwwwwvvvwvwvvvvwwvvwwwvvvvvpuvvuvvvuvpvuppuuuuupuupouuÞèyoßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá–ttC›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  Âþÿÿþà    vÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5œèÿÿÿÿÿÿÿÿÿÿÿþýýýýýýú¬}www}}}}wwv}wwww}ww}wvww}}}w}}}}ww}}}w}}}}}}}}w}}}}}€€}}€�€€�€€‘èÿÿÿýÒ€€}€��€€�‘€€}}€�‘‘}€‘€€‘€€‘€€€€€€‘€€‘‘€€€€€€�€€�}}�€�€}}}}}}}}}}}}}}}}ww}}}ww}w}}vww}w}}žüÞ}}}}}wvvvv}wvvvvpvvvwwvwvwvuuupvvvupvvpvvpuuuuuvuoupupvoopuuuÞñyußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÇylltltÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  Âþÿÿþà   !|Øýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy!$œèÿÿþÿÿÿÿÿÿÿÿþýýýýýýúÕ~wv}}wwww}}}}ww}}}}}}}}}€}}}}}}}}}}www}€}}}w€€}€€}}€€€}}€€}€}€€€èÿÿÿýž}€}‘�€�€‘‘€€€€€�}€€‘‘‘‘‘‘€€€��€€€�€€€€€€‘�€€€€€€}€€}€}}}}}}}}}‘€€}w}}}}}}}ww}}w}w}}}w}}www}ww}www}wwžüÞ}wwwwwvvvvwwvwwwvwvv}wvwvvvvvvvwwvvvppvuvpuvuvupwvvvpuvoluuuoÌòyuÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÞzlltCCtCxçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!Âþÿÿþà   oØýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþÿÿÿþÿÿÿÿÿýþýþýýýúÓ~vwwv}ww}w}}ww}}ww}}}}}}}}}}}}}}}}}}}}}}}}}}}‘€}€}}}€}}€}}€€€�èÿÿÿý§‘€€€€€€‘€€€€€€€€�€€€€€€€€€€‘€€€€€‘€€�€€€€�€€€€‘€€�€‘€}�}}}€}}}}€€w}}}}}}}w}}}w}}ww}}}}w}ww}}wwwwžüÞw}wwwwwwwvwwv}wwwvwwwvvwvvvvvvvvvvvvvvuvvvuvvvuvvvuupuppouuuoÌòyuÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþç–uCltlCltlC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþÿÿÿÿÿÿÿÿÿýýýýþýýúÓ~vwwv}}ww}}w}}}w}}ww}}}w}}}}}}}}}}}}}}}}}}}}€}€}}}}}}}€}}€}€€�èÿÿÿý§€‘‘�€‘€‘€€€‘€‘�€€€�€}}€€‘€‘‘€€€‘‘€�€€€€‘€€‘‘€}}€�€€}}}�}€}}}}}}}w}}wwwwwww}}}w}}}wwwžýÞw}wwwvww}wvwvwwwvvwwwvvvwvvvvvvvvvvvvvuvvvvuvvuvvppupuppuvuouÊò{oÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÌytllltCCCttttÉýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pØþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿÿÿþÿÿþÿÿÿÿþýýþýýýú¬�w}}ww}}vwwwwwwv}}ww}}www}}}w}ww}}}w}}‘€}}}}}}}€€€}€€€‘���}€�‘€�‘‘‘èÿÿÿýÒ€€€‘€}�‘€€�‘‘€€‘€‘‘€€€‘€€€�‘€‘€€‘‘‘‘€}}€€��‘‘‘€€€€�€€��}}}€€}€‘‘}‘}™èôÙž€€}}}}}}}}w}ww}}}}wwww}ww}w}}œýßwww}wvvvvwww}vwvvvvvvvvw}wwwvvvvvvvvuvvwyvvvpvvuupvvuuuoovvvvÉò{oÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþç”tlltllClttttltuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÂþÿÿþÆ!    pÕþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþÿþþÿÿÿÿÿÿþýýþýýýúÓ~v}}w}}}w}}}}}}}w}w}}}}}}}}}}}}}}}}}}}}}€}}}}}€€€}}}€€‘€€€€€€èÿÿÿýÒ€}€‘�‘‘}€€€‘€€€�€‘€€€€‘€‘€€‘€‘€€‘‘€€€€€‘€�‘}€‘€€€€€€€€}€€w}}}}‘èÿÿþûèÊ�}}}}}}}}}}}}}}w}w}}}w}}wwwœýß}www}ww}ww}w}wwwwwvwvvvvvv}wvvvvvvvvvppvvvvvuvvpuuvpppupvuoupÇò{uÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÇytotoltlCllCCCCCC”òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!Âþÿÿþà   pÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿÿþÿÿÿÿÿÿÿÿýýþþýýþúÓ~vwww}}}}}}}}}}}}}}w}}}}}}}}}}}}}}€€}}}}}€}�€€€�€€}€€€€€€€€èÿÿÿý§€€€€€€€€}€€€€‘‘‘€€€€€€€‘€‘�€€‘‘€�€€€€‘€‘€‘‘€€€‘�€‘€€€€€€€€‘€€€€}€€‘€€}€€}€€Ùþÿþþÿÿþõ×™}}}}}}}}}}}}}}}w}www}}}}v}wžýßwwww}vw}w}wvw}wwvvwwvvvwvvvvvvvvvwvvvvuvvvvvpppuupvpvupvupuou�ò†uÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”ulttltllCltCCtCCCltÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÂþÿÿþÆ   pØþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæyœèÿÿþÿÿþÿþÿÿÿþýþýþýþúÕ�wvw}}}}wwww}}ww}}}}}}}}w}}w}€}€€}€}}}€}}€€}}}€€�€}}}}€€€�èÿÿÿý§‘‘‘€}€}}€‘€€‘‘€‘€‘‘‘€‘��€‘���€€‘€€€‘‘€€€€€‘‘‘€€‘€�‘€€€€‘}€‘€€€€€‘}€‘}}€€€€€™÷ÿþßÙõþÿÿþõÙ¤€}}}}}}}}}w}}}}w}}w}}w}}œýß}}wvvv}wwwwvwvw}vvwvvvw}vwvvvvwwwwvvvvuvvvvvvpuvupvuvvvuuvvpu›ò†vÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòÅutltolltltlltCCCllCtCußþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ! ÂþÿÿþÆ pØþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþþÿÿÿÿþÿÿÿýýýýþþþúÓ~w}}}wwv}}}}}}www}}w}}w}}}}}}}}€€}}}}}}€}}}}}}€€‘�}}}}€€}€��‘€}€‘‘‘èÿÿÿýÒ‘€€�€€€‘€�€‘�€‘€‘�€€‘€‘€‘‘¡€€‘¡¤€€€€€‘�€€€€€�‘‘��}€‘‘€€€‘€}€�€}}€€€€�€��}}}‘àÿÿñ�€™Òâüþÿÿ÷Ù˜}}}€}}}}}}}ww}w}}}ww}}}}}žýßw}}}}w}wvww}wvvvvw}wvvv}vvwwvuvvvvvvvvvvvvvvvvvuuuvuupvvuuoup”ò˜wÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÞ{toltltlltCCCtlotltCltlCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà    qÚýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿÿÿÿþÿÿþÿþÿþýýýýþýúÕ‘}w}}}ww}}ww}}}}}}}w}}}}}}€€}}}}€€}}}}€}€}}€€€€}€}€€€€}€€€}‘€€èÿÿÿý§‘€}€€€‘‘€€‘€€€€€€€}€‘€‘‘€¡€€‘‘€€€‘�€€�‘‘�€€‘€‘¤‘‘€€€‘€€€‘€€€‘€€€€€‘€}€€€€€€€‘}€}wžüÿûž}}™Ù÷þÿþúÙ™}}}}}}}w}w}}w}€}w}}}www}žýâ}}}wwvwwwwwwwwvwwwwwvvvwwvvwvwvvvvwwvvwvvvwvpvupvvpvpvuuovuup†ñ›uÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñ›uotutlltooolllutCCtCltCCClÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pÕþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþÿþÿþÿþÿÿÿþýþþþþþúÕ�}ww}}ww}}www}}}}}w}}}}}}}}}€€}}}}€}}}€}}€€€€}€�€€€�€€‘€€}€èÿÿÿý§€€€€‘�€€€€�‘€€�€‘‘€€~‘€’€€�‘€€€‘€‘€€‘‘‘€€‘€€‘‘‘€‘€€€€€‘‘€€‘€€‘€€€€€€‘€€€�‘€€}}€€��èÿþà€}}€}}�×÷þÿÿúß™}}}}}ww}}}}}w}}ww}wwžýâ}}vw}www}wvw}wwwv}wwwwvwvvwvvvvwvvvvvvvvvvvvuvvvvvpvuuupupvvu†ò�u�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌytottotlltouutttllClCtllClCCuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÂþÿÿþÃ! pØýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx$œèÿþÿþþÿÿÿÿþÿþýþþþþýú¬wvvw}}}}}}}w}}w}}}}}}}}}}}}}}}}}}}}}}€€€€}}}€‘€}}}}€�‘€€€‘€€‘‘‘�èÿÿÿý§€€�€€€‘‘�€€€€‘‘‘‘€€€‘‘‘€‘€�€‘‘‘‘‘‘‘‘€‘‘‘�‘€‘‘�€�‘€€‘‘‘€€€‘‘€€‘€‘}}�‘‘‘€€}€€€€Óþÿ÷™}€€}}}€™Ùõþÿþûà™}}w}}ww}€}}}wžýâ}ww}}}}w}wvvw}}wwvvvvvvvwwwv}vvvvvvppvuvvpvpvpvvvvpvvppvpvvvu{òÇu›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿþá”votltoltlCClClllCCtluoltllltlC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  pØýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿæyœèÿþÿþÿþþÿÿÿÿþþýþþþýúÓw}ww}}}}wwww}}w}}}}}}}}}}}w€}}€€}}}}}}‘€}}€€€€€€�‘€€€€‘‘€‘€‘€€€�‘‘‘èÿÿÿýÒ‘‘€€€‘‘‘€�€€‘‘€‘€€€‘�‘�‘¤‘‘‘€‘‘‘€‘‘€‘‘€€�€€�€€€�€‘‘€€�€‘‘€€€€‘�€‘€€€�€€€€}€€€€}€€�÷ÿþ×}}}}}‘€€}}�×÷þÿÿúßž}}}}w}}}}w}}}}w}}žýâ}}}w}ww}}}}vw}wvwvvw}wwv}wvwwwwvwvvvvvvvvpvvvpvuovuupuvuuupuoyñÇo�þÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÆytouoootluutllooulltttltCCClCCtCtÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÂþÿÿþÆ   pÖþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx$œèþÿþÿÿþþÿÿÿÿþýþþýýþúÓwww}}ww}}}w}w}}}}}}}}}}}}}}}}}}€}€€}}}}}}}€€}€€€€€€€€€€€€�€èÿÿÿýÒ‘�‘‘‘‘€‘€�‘‘‘�€€‘‘€€€€€‘‘‘€‘‘€‘‘‘‘�‘‘�‘‘€‘‘€�‘‘€€‘€€�‘€‘‘€€‘‘€‘‘€‘€‘‘€€€‘€€}€€€€€€€Ùþÿô¤€€}}}€€}}}}�×õþÿÿûâ™}}}w}}}}}w}}}ww}œýâ}ww}www}}wwvwww}}wwvvvvwvvvvvwvvvvvvvvvvvvwvvvvvvvvvvpvuuvuuyñÊp�þÿÿÿÿÿÿÿÿÿÿÿýÏ{ooltluooolltoltttltlolltlClltlCCCtxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà      pØýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþÿÿþþÿþÿÿþÿþýþþýþþúÕŽww}w}www}}}}ww}}}}}}}}}}}}}}}}}}}}€}}}€}‘}€}€€}€€€€€€€€€€�èÿÿÿýÒ‘€‘¤‘‘€€‘‘‘‘�€€€€��‘‘€€‘‘€€‘€‘‘‘‘‘€‘‘‘€�€‘‘€�‘�‘‘‘‘‘‘€€‘€�‘€€€€‘€‘‘‘€�€‘‘€€€€€€€}€€‘�€š÷ÿýÒ‘‘�}}€€}}€}}�×÷þÿÿüà™}}}}}}}}ww}}}w}}œýèwwwwwwwwww}vw}w}}vvvvwwvwwvvwwvvvvvvvvvvvvvvwvvvvvvppvvvvpuyñÞuÇþÿÿÿÿÿÿÿÿÿþò›uotuullolollttttuulltlttltCCltttCCCtl”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ! Âþÿÿþà    pØýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæyœèþÿþÿþÿÿþþÿÿþþýþþþýúÓ~w}wvw}}}}}}}}}}}w}}w}}}€}}€�}}€€€‘�‘‘€€€‘‘�€}€}}€‘¡¡�‘‘‘‘‘‘‘èÿÿÿý§‘‘€‘€‘‘€€€€‘‘’‘‘¡‘€‘‘€€‘‘‘‘€‘‘‘‘‘‘‘€€‘‘€€€€‘€‘€€€€�‘€}€¡‘€‘‘�€‘€‘��€€€€€€�‘‘€Ùÿÿè‘€}}€‘�}}€}™Ùõþÿÿûà™}}}}}}}}ww}wwžýèv}}}w}wwv}}wvw}}wvvvwwwwvvwvwwvv}wvvvwvvvvuuuvvvvvvuvvpvvuvoyñßvÉþÿÿÿÿÿÿÿÿúÌ{ulllloloolloltlllollClttlCtltCllCCtllttÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÃ!    !pØýÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæyœèÿÿÿþþÿÿÿþÿÿþþþþþþþú¬Ž}}}}}}}}}}}}}}}}}}}}}}}}€}€}}}�€}�€}}‘‘€€€€‘€€€‘‘€€€€‘€€€€€€èÿÿÿý§€‘€€€€‘€‘��‘‘‘€€‘‘�€€‘‘‘€‘‘‘‘€‘‘€€‘‘€�€‘‘‘‘‘€€‘€€€€‘‘‘‘‘‘€€‘‘€€€€€‘€‘‘�€€¤‘€�€€€‘€€€‘}šüÿüš€€€}}€€}}}}‘€}}}�×÷þÿÿüà™}}}w}}}}}}žýè€ww}ww}}wwvwwwwv}}}wvvvw›ÊÞâèâßÌœwvvvvvvwvvvvvuuupvuuupuuouyèâvÉÿÿÿÿÿÿÿþç”ooulluouutootullttllllllltllltllttCCloCCCyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!! Âþÿÿþà   oÕþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþþÿþÿÿÿþÿÿþþþþþþþú¬~}}}w}}}}}}}}}}}}w}}}}}}}}}}}}€}}}€€€}�‘}‘€€€€€€‘€€€‘�€‘€€‘€‘�‘èÿÿÿýÒ€‘€€�‘‘‘�€€‘‘‘‘€‘‘‘‘€‘‘‘€‘‘‘‘€�‘‘�‘’€€€‘‘‘€‘‘€€‘‘‘�‘‘€‘‘‘‘‘€�‘‘€‘‘€‘€€‘€€€‘‘€€‘€€‘€€‘€€€àÿÿ €}‘€€}}€}}}}}}}�×õþÿÿûà™}}}}}}}}}œýè}}}ww}w}wwvwwvww}wwwwÇñúúõññôüþüñÇwvvvvvvvpvvvvppvvpppppppwâè{Ìÿÿÿÿÿÿ÷ÇuptouoouutottlollllloltltllttllltltCltClCCtC–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ   oÕþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿæx�èÿþþÿÿþÿþþÿÿþþýýþþþúÕ~}}}}}ww}}}}ww}}}}}}w}}}}€ww}}}}€}}}€€}€�€€}€‘€‘€}}�€€€€€€‘‘‘‘€€‘èÿÿÿý§‘‘€‘‘‘€€€€€€‘‘‘��€€‘‘€‘‘‘‘‘‘‘€‘‘’¤‘‘€‘‘€‘€‘‘‘‘‘‘¡‘‘‘¤‘€€€€€‘‘‘‘‘€€‘‘‘‘€‘€€€€‘‘‘€€‘‘€€žüÿûš€€€€€€€}}}}}€€�×÷þÿÿûà™w}}}v}}žýè}}ww}}}}www}wvvwwvwÊñüò̘†}w†�ß÷üñœwvvvuvvvvvwvvpvvvppvvpwßò†Þÿÿÿÿýß{ouvoouwuollotllollllouttltlClCCtllClCtCCClClCtÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ    oÕþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþÿþÿÿþþÿÿþÿþþþþþþþú¬~}www}}}}}}}€€}}}}}}w€}‘€€}}€€}}}€}}}}}€€}€�€‘€€‘€€‘‘‘‘‘€‘€€‘€‘èÿÿÿý§‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘�€‘‘€€€‘‘‘‘‘€‘€€‘€�€‘€¡¤‘‘‘‘‘‘�‘€€‘€€€‘€‘€€€€€€€‘‘¡‘€‘’‘‘€€€�€‘€€‘€‘‘‘èÿÿÙ€€}}‘}w}€€}€}}}}}}}™Ù÷þÿÿúߘww}w}Òýè}w}wwwwww}www}wvwww†ßüñÇ�™Ê×Þʘwvv�Ì÷÷ÊwuvvvvvvvvvvvupppvvuluÉü�çÿÿþñ›upolooppuuuolouuuouotllltlllCltllltttltCltlCltCtxçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ   !vØþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþÿþÿþÿÿþÿþþþþþþþú¬}}}}ww}}}}ww}}}}}}}€}}€}}}}}}€€€€€€€€€€€‘€‘‘€‘‘€€€‘€€�€€‘‘èÿÿÿý§€€€�‘€‘‘‘‘‘€�€‘€‘‘‘‘‘‘‘‘‘€‘‘‘€€¤‘‘‘�‘€‘¤‘€€�‘‘‘€€¡‘€€‘‘‘‘€�‘‘‘‘‘€‘‘€‘€€‘€‘‘‘€€€€‘€�€‘‘€€€€€€§ýÿ÷�€€€€€‘}}}}}}}}€}}}}}�×÷þÿÿúß™}w}wÊþé�}ww}}ww}ww}}ww}www†âúÞ�Êôýýúûýþñžvww˜èúÌwvvvvvvvuvvvvuupvuvpv›ýýþÿüÌ{popuououuouoplpulloolluullolttltCltClllllCCCCCtCCC›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÂþÿÿþÆ      pÕþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþÿÿþþÿÿþÿþþþþþþþúÕ‘w}}}}ww}}}}}}}}}}}}€}}}}}}€€}}}€€}€��€‘€€€€€€€‘�‘‘€€€‘‘€�€�‘‘‘èÿÿÿýÒ‘€€‘‘��‘‘‘‘�€�‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘€‘‘‘�‘‘‘�‘‘€‘€‘‘‘€€‘‘‘€�€‘‘€‘‘‘€€€€‘€�€€€�‘‘èÿþÙ}€�‘€€€}}€}}}}}}}}˜Ù÷þÿÿûÙ˜w×þñ�}}}}}}}wwww}wwww}âúÊ�âüòßǘœÊÞ÷úÌ}vv†âúÇwvvvuvvpvvvvupvpvvvu†÷ÿþç˜uvpouuuplopooouuuultooCouultoluolltllCtlCtlClCCCCllCtÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ!  oØýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx$�èÿþþÿþþþþþÿÿþþþþþþþúÔ�}}ww}}}}}€}}}}€}}}}}€}}}€€€}€}€€€��€‘‘‘€��€‘€}€}€€€‘‘€‘‘‘‘‘èÿÿÿýÒ‘‘‘€‘‘€€€‘¤‘€‘‘‘€‘‘‘€�‘’‘¤¡‘‘‘‘¤‘‘€�‘‘‘¡¡‘‘‘‘‘‘’¤‘�€‘‘‘€‘‘‘‘‘‘€€‘‘�€‘‘‘‘�€€‘€€‘’‘€€€€žþÿõ�‘€€}€€��‘}}}€}}€}}}€}€€�Ù÷þÿÿúÙ™àÿô�}}wwwwwwww}}w}ww}Êúטñü߆vwvwvv†ßúßwvw˜ñõ˜wvvpvpvvpovouwuuuouvÌç�ypuvpoououltpoloooltootolCtololluotllotClCtCCCtClCCtlCCxñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ99!ÂþÿÿþÆ!! !!!    |Øþÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþÿþþÿþþÿþþÿþþþþþþþú¬}}w}w}}}}€€}}}}}w}}}€€}}}€�€}}}}}}‘‘�‘‘€€}€‘€€€€‘€‘€�‘�‘€‘‘‘€‘€€�¤èÿÿÿýÒ‘‘‘€‘€‘‘‘‘‘‘‘€‘‘‘‘‘‘¤‘‘�‘‘‘‘‘‘‘€‘¡‘€�‘‘�€‘€€€€‘�‘‘‘‘‘‘‘‘€‘‘‘€€‘‘‘~€�€‘€€‘‘‘‘€€‘€€€‘‘€�’õÿþÒ}‘‘€€€}€‘€}}}€}w}}}}}}}‘}}}}šÙ÷þÿþúýÿè}w}w}}}vwwwwwww�òâ�âúÊ}vvw}ww}w{Þ÷Çvwv�÷ßwvvuvvwvvpppvvvvvvpopvpvpoouwuoopuuoulouuooullpuulltllClltuotlCCCtttllCtolCCCCC–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ! !  !vÕþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþþþþþþÿÿþÿþþþþþþþúÓ~}ww}}}}}}}}}}}}}}}}}€}€}}€€€€€€€€€€€}�€€‘‘€€€�€‘‘�‘€‘‘‘‘‘‘€€‘èÿÿÿýÒ‘‘‘‘¡�‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘�‘‘‘‘‘‘’€‘¡€¤‘€‘‘‘¡�‘‘‘‘‘�€‘‘‘‘‘‘‘‘‘€‘‘��‘‘�‘‘‘‘‘€€�‘‘‘‘€�‘€€�‘€‘‘‘€Òþÿô‘€€€‘€€€}}€€}}€€}}}}}}}}�×òþÿÿÿâ}}w}}}w}}}ww}wÙúž×üÞ}wvvvwwvvwv{âñ†wvwâ÷˜vwvvvvvvvovvvpppvouvuuuppoovuuuovuovuouuuooooolotlulllttlolltlllllltClCltCllClußþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ9! !!    pØþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx!œèþþÿþþþþÿÿþÿþþþþþþþúÕ�}}}}}}}}}}}}€}}}}}}}€}}}‘€€�‘€}}€€€€‘}€€€‘€€€€€‘‘€€�‘€‘�‘€€‘‘èÿÿÿý§‘‘‘‘¡€�‘‘€‘‘‘‘�€‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€�‘€€‘¤‘‘‘€€�€‘‘‘€€‘‘€‘‘‘‘‘€‘�ôÿýÒ€‘‘€‘}€€}}�€}€€�€}€€}}}}}}}}}}�ÇèýþÙ}}w}}}}w}}}ww�÷ñ˜òô�wwwvwwvvwwvvž÷Êvwvž÷ÞwvvvvvvvvvpuvopvouvvvooovuouvououuovpuouuoouoloouttllllltlllCCttlllCCCClCtltCllƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ9!!ÂþÿÿþÆ9!!!! !   pØýÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþÿþÿþþþþÿÿþþþþþþþü¬}}}}w}}wwwww}}}}}}}w}}}}€‘€€}}}}}}}€€€‘€€��‘‘€€€~‘‘¡‘‘�€€‘€‘‘‘€‘‘‘€‘‘‘‘¤éÿÿÿý¬‘‘‘�€€‘‘€‘¡‘€€‘‘¤‘€‘‘‘‘‘‘€¡‘‘€€‘€‘‘‘‘¤‘‘¡¡‘‘‘‘‘¡‘‘‘¤’€‘€�‘¡‘‘‘¤‘‘�‘‘‘‘‘€‘€‘‘€}€€‘‘‘€€‘€€‘Óþÿè‘€‘‘‘€€‘€}}‘€‘‘€€}}}}}}}}}}}}}}}}}§Ù™}}wwwwwvw}}wžüÊÇýÊ}wwwvw}}v}wwvèâwww†òñ}vvvvuvvvvuppvwvuoopvoouuuoouvoolllloollouolouuuuollltouullllltCltttlCtCCCCCCACtÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!! ! !oØþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæx!œèþÿþþÿþþþþþÿþþþþþþþúÓ~w}}w}}€}€}}~€}€€}}}€}€}€‘€‘€€}}~€€‘€€‘‘€€€�€‘‘€‘‘‘‘‘‘‘‘€‘‘‘‘€‘èÿÿÿý§€€€‘‘¡¤‘‘‘‘’¤‘‘‘‘¡‘‘‘¡‘€€‘€‘¡‘�‘‘€‘‘‘�‘‘‘‘‘‘€‘¤‘‘‘‘€€€‘‘‘’‘‘‘‘‘¡¡‘€‘€€‘€‘‘€‘‘‘‘‘‘‘€€€‘‘�¤÷ÿû™€€‘€‘�€�‘€}}}}}€}€}w€}w}}}}}w}w}}wwww}}}w}}}}}wÞü™âúœwww}Ê÷è˜vwvvvwâèw}vwâò˜vvvvuvvvvvvppoppovvuovvluvuopupouuuuolluuullttlllouollltooolllotlllllltllCCtlCAuçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!9ÂþÿÿþÆ9! !!    oØþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþÿþÿþþþþþþþúÓŽw}}}}}}}}}}}}}}}}}€}}}}}€€€}}€}‘€€}~€€��‘€€‘‘}€‘‘‘�‘‘‘€€‘‘‘‘€‘‘‘‘��‘èÿÿÿý§‘‘‘€‘€‘‘‘‘‘‘¤‘‘‘‘‘‘‘‘‘‘�‘‘¡€‘‘¡€¡¡‘‘‘‘‘‘‘‘‘‘¡€‘‘‘�‘‘‘‘€‘¡‘‘‘‘‘‘€‘‘‘�‘‘‘‘‘‘€‘‘‘‘€‘‘¡‘‘€‘�€€×þÿà€€€€€��€€€€‘€€}€€€€}€}}}}}}}w}}}}}}}}}}}}w}}ww}}}w}wâ÷�÷òw}wèÿþÌwvvwwwßò�wvwÞ÷œvvvvvvvvpvvuvpuuuppuppvoppuuouvuuoopoooooluololllttoolltooltlltlttltCClttCCCtCClƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!!9! !! !  pÕýþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæx!œèþþþþþþþþÿþÿþþþþþþþü¬}w}}w}}}}}}}}}}}}}}}€€‘€}}}}}}}}€‘€}€€€€€€€�€€‘€‘‘€‘‘‘€€€‘€‘‘‘‘�‘‘€‘�€‘èÿÿÿý§‘‘‘€‘€‘‘€¤‘‘€‘‘‘‘‘‘‘¡‘€¡‘‘’‘‘‘’‘¤¤‘‘‘‘‘‘‘‘‘¡¤€‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘��‘‘¡¡‘‘‘‘€‘‘‘‘‘‘‘‘‘‘�™÷ÿû𑀑‘€€€€‘€€€€€}€€�€€€}€}}}}€€}}}}}}}}}www}}w}}}}w}éô�úò}v}w}ßþúžwvw}wwßô†vvw×÷�vvvvvvvvuvvvwvvvppuppoppuuupupvuooovpuoltoooolltloottuulCCllltlCllCtlCClCClCCCtCtÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ!!!!9! ! !    pÕþþþÿÿþþþÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþÿþþþþÿþþþþþþþúÔ‘}}}}}}}w}€}}}}}}}}}}}}}}}}�‘€€‘€€‘€€€¡‘}€�€‘‘‘�‘€€‘€€‘‘‘�€€�€‘‘‘‘‘‘�èÿÿÿýÒ€‘‘‘‘�‘‘�¡¡¤€€‘‘‘‘‘‘‘¡’¤‘�‘‘¤‘‘€‘‘‘¤‘�‘‘‘‘‘‘‘‘¤‘¡‘‘€€‘‘‘�‘‘‘€‘‘‘‘‘‘€€€€�‘‘‘‘‘‘€€‘€€€‘€‘ÚÿþÙ�€€‘€€€‘€‘‘‘‘‘‘�‘€}€�‘‘}}}}}}}}}}}}}}}}w}w}}}}}w}ww}ww}ww}ñè†÷õ�wwvw�Çœvvwwv†ññwvvvÊ÷žvvvvwvwvvvvvvpvvvpvvvvpvvoouuoopuoouuouuoollllllllolClClouuoltlllClllllutlllCClCCxñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÈ99! !!!!! ! !! pÕþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþÿþþÿþÿþþþþþþþú¬�}}}}€€}}}}}}}}}}}€}}€}}�€�}€€‘�€}€€‘‘‘€€€‘€€‘‘€€‘€‘‘‘‘‘‘¡€�€‘‘‘‘‘èÿÿÿýÒ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘€‘‘‘€¡¡¡‘‘¡¡‘‘¡¡‘‘‘€‘€‘‘‘¡‘‘‘‘¤‘‘‘‘‘‘‘€€‘‘‘‘€‘‘‘€‘‘‘‘‘‘‘‘‘€€€‘‘‘�§ûÿõ¤‘‘€€‘‘‘€€€€€€€€}€€€€€€}€}}}}}}}}}}}}}www}}}www}w}}wèèâú™}vv}wvwwvwvwwœòÞwvvw×÷œwvvvwppvvuvvvvppvvvvuvuuuuuvupuuuuooolvuouoluuuooolllulllltlCllCCCClllCCCttCCtllCC–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!! !9!! !! ! !  !oØþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþýþúÓ}}}}}€}}}}}}}}}€}}€€}}€€€€€€‘€€€€€‘€‘€‘€~€€‘‘€‘€€‘‘‘��‘‘‘‘‘�€‘‘‘‘èÿÿÿýÒ‘‘‘‘‘‘‘‘‘‘‘‘¤€‘‘‘‘‘‘‘‘‘‘‘‘‘€’¡¤‘‘¤‘‘¡¤‘¤‘‘‘‘‘¡‘‘‘’‘‘¡¡‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘‘‘‘�‘�‘‘‘€€‘‘‘‘‘Ùÿþב�‘€‘€€€¤€€€‘€€€�€}€€‘}‘€‘��€}}€}}}}}}}}}w}ww}}w}}}}}w}ww}w}âõÒý×www}wvvww}vvw×úœvwwwßñ˜vvvvvvuvvvvvvvuupvppvvulvplppvpoouoooopoutoooouuooooloooolllClCClCCtClllCCClCCCtCCtÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ9!9ÃþÿÿþÆ9!!!!! !!!!!  pÕýÿÿþþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþÿþþþÿþþþþþþþú¬}}}€}}}}}}}}}}}}}}€�}€‘}}€€€‘‘‘‘€€€€�‘�€��‘‘‘€€��‘‘�€�€‘‘€‘¡‘€‘‘‘‘èÿÿÿýÒ‘‘¡‘€‘‘‘‘¤‘‘¡‘‘‘‘‘‘‘¡¡‘¤‘‘¡‘‘‘‘‘¤‘‘‘¤¡‘‘‘‘‘‘‘¤¤‘�‘‘‘‘’‘‘‘‘‘‘‘¡‘‘‘‘‘‘¤‘‘‘‘‘€�‘€€‘‘‘‘‘‘¡¡¤úÿõ¤‘€€‘€�€‘‘‘‘‘‘�€�€€€€�€‘}}}}€€}}}}}}w}}}}}}}}}€}}}ww}w}}wßú†™úõ�}ww}vw}}wwwœ÷è†vvvwñè}vvvvvvvvvvvvpppvvuuuuupovvuopupopopvvouuoluplllluuuolllltltlttltlCCClttCCCCtlCCCCCCzòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!9ÃþÿÿþÆ9!9!!! ! !! !!  oÕþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþÿþþÿþþþþþþþúÓ}}}}}}w}}}}€€€}}}}}}}}€‘€}}€}}}€}‘€€¡‘‘‘‘€€‘‘‘‘€‘‘‘¡‘‘‘¡‘€‘‘¡‘¡¡¡¤èÿÿÿý¬¡¡‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡¤‘€‘‘€‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘¤‘‘‘‘¡‘‘‘‘‘‘‘�‘¡¡‘‘‘‘‘‘‘€¡‘‘‘¤‘‘‘‘‘‘‘‘‘€‘‘€‘ÙÿþÒ€€€€‘‘‘€€€�€€€}€�‘‘€€}}}€€}}€}}}€}}}€}}}}}}€}}}w}}}ww}Êüžßý×}vvwv}wvvw˜èúÇwwvv˜òßwvvvvvvvvvvvvpopvpvvvvuvupvvooopooouuolouuouoouuooltllotlolllCCltltollCCCCCCtCCCCClCCÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!! ! !!! ! !!     pØþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ}}}}}}€}}}}~}}}€€}}}€€€~€€€€€€€€¡€€~‘‘‘€‘€‘‘‘€�‘€‘‘€‘€‘‘‘‘‘�‘‘‘‘èÿÿÿý¬‘‘‘‘‘€‘‘‘‘‘‘‘¡‘€‘¡‘¡¡‘�‘‘‘¤¡¡‘‘‘‘¡‘‘‘¤‘‘‘‘‘‘‘‘‘‘¡‘‘¡‘¡¡‘‘‘‘�‘‘‘‘’‘�‘‘‘‘‘��¤¡‘‘‘‘‘€‘‘€šúÿô�‘‘€‘€€‘€�‘€��‘�‘€‘€€€€€€}€}€}€€}}}}}}}}}€w}}}w}}€w}}}}}}™úà™÷ú×�wwwwww}œèüßwvwvw×÷žvvvpppvvvvvvvppvvvvpupppvuupuuovoupouoopuooooooouolooltllotltltlllllolCllClltCClClllCtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÂþÿÿþÈ9!!!!!!!!! !   pØþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ}}}}}}}€}}}}}}€}�€€€€}€�‘�‘‘�€€‘‘‘‘€€}€‘‘€€‘€€‘€‘‘€‘‘‘‘€‘¡‘€€‘‘‘‘‘èÿÿÿý¬¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘€¡¤¤€¡¡‘¡‘¡¤‘‘‘¤‘‘‘‘‘¡‘‘‘‘¡¡‘‘‘‘‘‘‘¤¤‘‘‘‘€‘¡‘‘¤¤‘‘‘‘‘�€‘¡¡‘€�‘‘€‘‘‘ÙþþÓ‘‘‘€€�‘‘‘��€‘‘�€��‘�‘‘‘‘€}}€€}}€€}}}}}}}}}€}w}}}w}}}}www}}}àúž}œòüéל˜˜œÊâúþâ†wwvv�ñè�wvvvvvpvvvvvvvvvvvpupuvvvvupuppuvuuuooouuupluutloulloClllooltCooltlltllllCtlCllCClltCCƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ9!9ÃþÿÿþÈ9!!!!!!!!! ! ! !   pØþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþÿþþþþÿþþÿþþþþþþþúÕ~}}}}}}}}}}}}}}€}}}}}�‘}~�}€€‘€€€�€�‘€€€��€‘‘€‘‘‘‘€�‘‘‘‘‘¡‘‘‘‘‘‘€‘¡‘¡‘‘‘èÿÿÿý¬¡‘‘‘‘‘‘‘¡‘‘€‘‘‘¤‘‘¡‘‘‘‘‘¡¡¤€‘‘‘‘‘‘‘‘¡‘¡¡‘�‘‘‘‘‘¡¡‘‘¡¤‘‘‘‘‘‘¡‘‘‘‘¤‘‘¡‘¤‘€‘‘‘‘‘‘‘€‘¡‘¤‘¤÷ÿô’‘‘�‘‘‘‘‘‘��‘‘‘‘‘‘‘‘€€€€€€€}}€€}€}}}€}}}}‘}€}ww}}}}}}}}}}}}wœüâ}w˜ßüýüüúüþÿþâ†vw}wwÞ÷ÇwvwwvvvvvvvuvvvpppvoovvpvvvpoouvovpouvvoutouoouolououoltlulltlltlllCClCCllCCtCtlCCCCCCCCÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!! !!!!!!    pÖýÿÿþþÿÿþÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþüÓ�}}}}}}}}~}}}}}}€~€~}€€~€€}}€€}‘€~‘€�‘‘‘�‘‘€¡‘‘‘��¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘’èÿÿÿý­¡‘‘¡¡‘‘‘¤‘‘‘¤‘‘‘‘¡¡¡‘‘¡¡‘‘¡‘‘¡¡¤¡‘‘‘‘¡‘‘‘‘¢’‘¢‘‘‘‘‘‘‘¡‘‘‘¡¡‘‘‘‘‘‘‘¡¤‘‘‘€‘‘‘‘‘¡‘�‘‘€¡‘Úÿþ¬‘‘�€¡€�‘‘€€€‘€€€€€‘‘�€€}€€€€€‘€€}}}‘€€€}}}}}}}}}}}}}}ww}www}wßúß�wwžâúÿþõüþÙ†wwww}Ç÷ßvvvvvpvvvvvupvvvvuvvvvuvpoooouoopuuuoooooloupooootlloollooltlltllllllollCCCtlCCCClCCCCCCtçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ99!!!!!!!!! ! ! !   oØüÿþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ~}}}}}}}}}}~}}€€}}€€€}}€€}‘€€€€}‘~‘€€‘€�‘�‘€€‘‘‘‘‘‘€‘€‘‘�‘‘‘€�‘‘¡‘‘‘‘‘’èÿÿÿý¬‘‘‘¡‘¡‘‘¡¡‘‘¡‘‘¡‘‘¡¡¡‘‘¤‘‘‘‘‘‘‘¡¡‘‘€‘¡‘¡¡‘¡‘‘¤‘‘‘‘¤‘‘¡‘¡‘¤¡‘€‘‘‘‘‘‘‘‘‘‘¡‘‘‘�‘‘‘‘‘‘€¤šúÿè‘‘�€‘‘€‘‘‘€‘€€€€€€‘‘}€€‘‘€€��€€}}€€€}}}}}}}}}}}}}}}}w}w}ww}w}�èüÙ�ww}Çüò™âò�vvww{Êõñ˜}vvvvvvwvvvwvvvpvvvvpvwpppopvvuoovupuooopooouuoltooollootllltllltlCltlltllCllClCCCCCCCCCCC–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ9!9ÂþÿÿþÆ9!!!!!!! !! ! ! !     oØüÿÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþÿþþÿþþþþþþÿúÔ�w}}}}}}}}}}‘~}}}}€}€€~}€�€~�€€‘€€‘‘�‘¤€��}€‘€�‘‘‘‘‘‘‘‘€‘€‘‘‘‘‘‘‘¤¡‘‘‘‘‘èÿÿÿýÒ‘¡‘‘‘‘‘‘‘¡¡‘‘‘¡¡‘‘‘¡¡¡‘‘¡‘‘¡‘‘‘‘¡¡¡‘‘‘¤¤¤‘‘‘¡¡‘‘¡‘¡¡‘‘¡‘‘’‘‘‘¡¡‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘¤¡‘‘‘‘Ùþý¬‘‘€€‘‘€‘€‘€€€‘€�€€€€€€‘€€‘‘€}€€�‘€€€�}€€}}}}}€€}}}}}€}}w}}}}}}}}ww}}}˜ñüèœw÷è}Êßwvww˜ß÷ôœvvvvvvvvvpvvvwvvpvvvvppvvvvuopvuupvoupopppppuuuuolooloooolllltlltCCCltltlltllCCtllCCltCCCCCtÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!9ÃþÿÿþÆ9 !!!!! ! !!! ! !!  pØýÿÿþþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ�~}}}}}}~}}}}}}}€�€}€€}}~}�€€‘€€‘‘‘�‘‘€}¡‘‘‘€‘‘�‘‘¡‘‘‘‘‘‘‘‘€‘¤‘‘‘‘‘‘‘¡¤‘‘‘èÿÿÿý¬¡¡¡‘‘‘¡¤¡‘‘¡‘‘¡¤‘‘‘‘¡‘‘‘¡¢¡¤¡¡¡‘‘‘¤‘‘¡¡‘‘¤¡‘¡‘‘¡¤‘‘¡¤¤¡‘‘‘‘¤¡£¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘¡¤¤ùÿè€�‘‘‘‘‘‘€€‘‘‘‘€‘‘¡‘‘€€‘€€€‘�€€€€}}€‘€€}€€}}}}}}}}}}}}}}w}}}}}}}}}}}}˜àüû朘õè}Êß��žß÷üè™wvvvvwvvvvvvvvvvwvppvpppvppvvupvopuooouoooooooolooluouuulololllllllllCCCClCCCCllCCCCCtlCCCCCCxòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!;ÃþÿÿþÈ9 !$9!9!!! ! ! !   pØýÿÿþþþþþÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþÿþþÿþþþþþþþüÓ~}}}}}}€}€€}}~€}€€}~~~€}~‘‘€‘~~~€€‘€€€‘‘€€~‘¡‘€€‘‘‘�€‘‘‘‘‘‘‘�‘‘‘‘‘‘‘¡¡¡‘èÿÿÿý¬¡‘‘‘‘¡¡‘¡‘‘¡¡‘‘‘‘¡¡¡‘¡‘‘¢¡‘‘‘¡‘‘¡¡‘‘‘¡¤¡¡¡‘¡¡‘’¡¡‘¡‘‘‘‘¡¡¡‘‘‘¤¡‘‘¤¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘Ùÿü§‘‘‘‘‘‘€�‘‘‘€‘‘�‘�€‘‘€�€‘€‘‘‘€€}€€€€}€€€}€€€€}}}}}}}}}}}}}}www}www}}wÊõþûòþè}×÷èôüýò×�wvwvvvvwwvvvvwvpvvvppvpvvvvpovoupoppovuouuulluooluuloouloolloolltllltollllolCllltCllCClCCCllCCCÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!9! !! ! ! !!! ! !   oØýþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæx�èþþþþþþþþþþÿþþþþþþÿúÕ‘}}}}}}}€}}}€~€€€~}~~~�€€‘€€€€€‘‘‘€‘�€�€‘¡€‘‘~¡‘€€‘‘‘€‘‘‘€‘‘¡‘‘‘‘‘‘¡‘èÿÿÿý¬‘‘‘‘‘¡‘‘‘¡¡¡¡¤‘‘‘¡¡¤‘‘¡¡¡¡¤‘¡¡¡¡¡¡¡¡‘¡¤¡¡¡¡¡¡¡‘¡¤‘‘‘¡¡‘‘‘¡‘‘‘¡¡‘‘‘¡¡¡‘‘‘‘‘‘‘¡‘‘‘‘‘šøÿæ‘‘‘‘€‘�‘€‘‘‘€�‘‘‘€‘‘€€€€‘‘€€‘€�€€€€€€}€€}€}�€}}}}}}}}}}}}}}w€}}}}}}}}}}ww}™×õüþñÊþþúèʘwvvw}vvvvvwwvvvvvvvvvvvvvvvvpupvopuvvvovppooouluouluolltuCoolottttollllulllltllltlCCCllCCtClCCCCCuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!!!!!!!!!!!!! !! ! ! oØþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþýÿúÔ‘}}}}€€}}}}€€}}}}}€�~~}�€€‘‘~‘€~‘‘‘‘‘~€‘‘‘‘€‘‘€‘‘��‘‘‘‘‘¡‘‘�‘¤¤¡‘�‘‘‘‘èÿÿÿý¬¡‘‘‘‘¡¡¡‘‘¤‘‘¡¤‘‘¤¡¡¡‘¡‘¡¡¡¡¡¡¡¡¡¤¢¤‘‘¡¡‘¡¤‘‘¡‘‘‘‘‘¡¤‘‘‘‘¡‘‘‘‘‘‘‘‘¡¡¤‘‘‘‘‘‘¡¤¡‘‘‘‘Ùþú§‘‘‘‘€‘€‘‘‘€‘‘‘‘‘‘€€€€‘‘€€�‘‘€€€€€€}€}}}}}}}}}}}€}}}€}}}}}}}ww}}}}}�Ç÷èÊúÙ˜wvwwvw}wvvvvvvwvvvvvvvvvvvvvvvupvuvvvvvvoouupoovopptluollupuooltlllCllotlllCCCCCllolCCCtltCCCCCCCCCCÅþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!99ÂþÿÿþÆ9!!!!!!!!!!!!!! ! !  !      pÕþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþÿúÕ�}}}}}€}}}}€}€}}€�~‘‘‘�€‘€~}€~}�‘‘‘‘‘‘‘‘€€‘‘‘‘‘~‘¡¡‘‘‘‘¡‘‘¡¡€‘‘‘‘‘‘‘‘‘’èÿÿÿý¬‘¡¤¡¡¤‘‘‘¤‘‘‘‘‘¡¡‘¤¡¡¤¤¡‘¡¡¡¡¡‘‘‘‘¡‘‘‘‘‘¡‘¡¡¡¡¡‘‘¡‘‘¤‘‘‘‘¡¡‘¡¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡‘¡‘‘¤÷ÿà‘‘€�‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘¤‘‘‘‘€‘‘€€€€€€�€€}}}}€}�€}€€€}}}}}}}}€}ww}}}w}}}}}}}ww}ww}�ôèÊõ™vwvwwwvwvvwwvvvvvvvvvvwvvvpoppuppvvvvoplouovoopuvulouuouvpollllllulllCllllCCuolCCCllllltCCClCCCCCC?CCAtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ9!!!!!!!! !! !   pÕþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ~}}}€}}}~}}€€‘}}€€}€�€~€‘}€‘€‘‘‘€€‘‘~~€‘‘‘‘��‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡¡¤èÿÿÿý¬‘‘‘‘‘¡¡‘¡¢¡¡¡¡‘‘¤¡¡‘‘¡‘¤‘‘¤‘¡¤‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡‘¤‘‘¤¡¡‘¡¡¡¤¡¡¡¡¡¡¡‘‘¡‘¡‘‘‘‘¡‘€‘¡¡‘‘Øÿú§‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘€¡‘€‘‘‘€‘�€€€€€€€€€‘€€€}€}}}}}}}€}}}}}}}}}}}}w}}w}}}}}}}}}wwvwñè}×ò™w}vvvvvvvvvwvwvvwwvvvwwvpvvuovvppvvvopvppuovuppooovooplouulooloollltullttllltllllolClClCllCCCClCCC?CC?l–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!! !!!! ! !! !! !  pÕþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx!œèþþþþþþþþþþÿþþþþþþþúÓ}}}}}~}}€€}}€€}€�‘�€}€‘‘€€�‘€‘‘€~~‘€€¡€�‘¡‘‘‘‘‘�‘‘‘‘�‘‘‘‘‘‘‘¡¡‘‘‘‘�‘¡¡¡èÿÿÿýÒ‘‘‘¡‘¡‘‘‘¡¡¡‘¡¡¡¡¡‘‘¤¡‘¡‘‘¡¡‘¡¡¤¡‘¢¡¡¡¢¡‘¡‘¡¡‘¡¡¡‘¡‘‘¡¡¡¤¡¡‘‘¡¡¡‘‘‘‘¤‘‘‘¡¡¡‘¡¡‘‘šõþß’¡‘‘‘‘‘‘‘‘‘¡¡€‘‘€‘‘€�¡‘€€‘€€‘€€‘€€�‘€}€€€€€€€€}}}}€}}}}}}}}}}w}}}}}}}}w}}}wwwwèñ}Êò™w}wwwwvvvvvvwwvvvvvvvvvvvvvpvvvvpuovupupvpoopvvooopuuuooouooooooolooollolllColClulllCClClCCCCClCCCCCCCCCÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!!! !!! !! !!! ! !! vØþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx œèþþþþþþþþþþÿþþþþþþþüÓŽ}}}~}€}~~~~~}}€€}€€~€‘‘‘‘€�~€‘�€€‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘¡‘€‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¤èÿÿÿý­¡‘¡¡‘‘‘¡‘¡¤‘‘¡¡¢¢¡¡¡¡¡¡¤‘¡¡¡¡‘¡¡¡‘¡‘‘¡¡¡¢¤‘¡‘‘‘¤¤‘‘‘¡¤¡‘¡‘‘‘‘¡¤‘¡¡‘‘¤¡¡¡‘¡¤¡¡‘‘¡Úþøš‘‘€‘‘‘‘‘‘‘‘‘‘€‘‘‘‘€€‘‘‘€€€€‘‘‘‘€‘‘�€€‘€€}€€�€�€}}}€}}}w}}}}}}}}}w}wvw}}}�èèÊòœww}}}vwwvvwwwvvvvvppvvvvvppvwvpvoouvvvopvvvoouuoouopulouuoouulooololCloolllCtlllulClClCCllClCClCCCCCC?CCƒþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!!! !!! ! ! ! !      pÖýþþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿæx œèþþþþþþþþþþÿþþþþÿþþü¬~}}}}~}}}}~}}€~‘€}}€‘~�‘~€€‘‘‘~€�‘�‘‘‘‘��‘‘‘¡‘‘‘‘‘¡‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘¡¡¤‘‘¡èÿÿÿý¬‘‘‘¡¡‘‘¡¡¡‘‘¡¡¡¡‘‘¡¡‘¡¡¡‘¡¡‘¡‘¡¡‘¡¤‘‘¡¡¡‘‘¡¢¢¤¡¡‘‘‘¡¡‘‘‘¡¤¡¡¡¤‘‘¡‘‘‘‘‘‘�‘¡¤¡‘‘¡¤õþÙ‘¡¡‘‘‘‘‘‘‘‘€€€‘‘‘‘�€‘¤‘‘‘‘‘‘‘‘‘‘€€€‘€~€}€‘‘€‘€€}�€€€}€€€}}}}}}}}w}}}}w}}}}}}}wwèñ�×õ™wvw}}w}}wvvvwwwvvvwvvvvvvpppwvvvvvopopvuooupppppopluullooolopulllooouolllllltlCCllllCClllCClCCCCCCC?CCCCyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!99ÃþÿÿþÆ9!!!!!! ! ! !!   ! ! oÕýþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿþþþþþþþúÕ�}}}}}}~}}~€€€€�‘€€�}~€€}~‘‘‘€‘€~‘‘‘‘€‘‘€€€‘‘�‘‘‘¡¡‘¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡‘‘¤éÿÿÿý¬‘‘¡¡¡‘¡¡¡‘¡¡¢‘¡¡‘¡¢¡‘¡¡¡‘¡¤‘¡¡¡‘¡¡¡¡¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡¤¡¡¡¡‘‘¡¡¡¡‘¡¡‘‘‘‘‘‘‘¡Øþ÷¤¡‘‘¤‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘‘‘‘€�‘‘‘‘€‘€‘�€€€€‘€‘‘€€}‘‘}€}€€}}€}}}}}}}}}}€}}w}}}}w}}}}}}w}wèô�×õ™ww}wvvwwwwwvvwvvvvwwvwvpwvvpwvpuwvpvopvoppopupoupuuooouooulouoolouotulllllllllllllllllCClCCCCCCCCCCCCCCtÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!!!! !!! ! !  pÕýþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿþþþþþþþúÕ�}}}}}~€‘}~€�€~}~�‘~‘‘~€}€~‘‘‘�€€€‘€€‘€‘‘‘�‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘¡‘‘¤ëÿÿÿý­¡¡¡¡‘¡¡¡¡¡¡¤¡‘¡¡‘¡¢¡¡¡¤¡¡¡¡‘¢¥¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¤¡¡¡¡‘¡¤¤¡‘‘¡‘‘¡¤¡¡¡¡¤¤¡‘‘‘‘‘¡¥õþÚ‘¤‘‘¡‘‘‘¡‘‘‘‘‘‘‘�‘‘‘‘‘�‘€€‘‘‘‘€€€‘�€€‘€€‘€}€��}}}}}€€}}}}€€}}}}}}}}}}}}}}}}}}}ww}}}èñÊòœ}wwwvvvw}wwvvwvvvvvvvvvvvvvvvvppvppvpuvuooopoooppupooouololoollloulllllllullllllClllllCtCCCtCCtCtCCCCCyÎúþòçþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!9ÃþÿÿþÆ9!!!!! 9! !!! !!  !   pØýþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿþþþþþþÿúÕ~~€}}}‘€}}}}€~€~}��‘‘‘‘€}‘€~€~‘‘‘‘‘‘‘€€‘¡‘‘‘‘‘‘‘�‘‘‘‘‘‘¡¡¡‘‘‘‘‘‘‘¡‘‘¡¡‘¥ëÿÿÿý­¢¡¡¡‘¡‘‘¤¡¡‘‘‘¡¡¡‘¡‘‘‘¡¡‘¡¢‘¡¡¡‘¡¡¡¡‘‘¡¡¤¤‘‘‘‘‘‘¡‘¡¡¡¡¡¡¡‘‘‘¡¡¡¡¡¡‘¡¡‘‘‘‘¡‘‘¡¤Óþú¥‘¡‘‘‘¡‘‘‘¤¡‘‘‘‘‘�‘‘‘‘‘€‘‘‘‘‘€‘‘€‘€‘‘‘€�‘€‘€}}€}}€}€€€€€€€€}}}}}}}€€}ww}ww}}w}}}}�èô�Êòœwwwvvvvwwvvvww}}vvvwwvvpvvvwvpvvpppvppvvvvpppooouooopulpuoolllouuoloooooltlllllllltllltlCCCllCCCCCCCt›ñþ÷Ì›áþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!! !!! ! ! !!   !    pÕýþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx    œèþþþþþþþþþþÿþþþþþþÿúÓ~}}}}}~€}}}~€}}€�€}‘€€€‘‘‘�€‘€��€‘€€�€‘‘‘‘‘‘‘€‘¡‘¡‘‘‘‘‘‘‘¡‘¡¡¡¡‘¡¤¡‘‘¤¡¡‘¡èÿÿÿýÒ¡‘‘‘‘¡¡¡¤¡¡¡¡¡¡¡¢¡‘¡¡¡¡¢¤‘¡‘¡¢¢‘¡¤¡¡¡¡¢¡¡¡¡¡¢¢¡¤¡‘¡¡¡‘‘‘‘¡¡‘¡¡¡¡¡‘¡¡¡¡¤‘‘‘¡¡‘¤íþऑ‘‘‘‘¤¤‘‘¡¡‘‘‘¤‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘‘€�‘‘‘€€��€€€}€}}}}}}}}}}}}}}}w}}€}}}}w}}}}w}vwèñ�Êòœww}}wvvvvwwwwvwwwvvvvvvvvvpvvpvvpvvvvvpopppvpoppooolpvoopouolotolouollllllollllllltCCClCCCllCCCCCllxÎüüá”ÅòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!9!! !!!! !! ! ! !  !   oÕýþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿÿþþþþþþüÓ�}}}}€€}~}€€}}~€€~~~‘€~���‘��€‘‘‘€‘€€‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘¡¡‘¡¢‘‘‘¤ëÿÿÿý­¡‘¡¡‘¤¡¡¡¡¡¡‘¤¡‘¡‘¡¢¡‘‘¢¡¡¡¡¡¡¢¡¡¡¡‘¡¡¡¡¡¡¢¡¤¡¡¡¡¡¤¡¡¡¡¡¡¡¡¡‘¡¡‘‘¡‘‘¤¡¡¡‘‘¡¡‘Òýû§‘‘‘¡¡‘‘¡‘‘‘‘‘‘‘¤¡‘€‘‘‘‘‘‘�‘‘€‘‘€€‘‘‘‘‘‘€�‘€‘‘�€‘‘}}€}}}}}}}}}}}}}}}}~}}}}ww}}}w}ww}èñ�Êòœ}}w}wvwwvvwwvvvvwvvvvvvvvvvvvppvvpppppvovpopupvvoovooploouuoolltoloulllllllllllCtllCllCllCllCClCCtÅñüçŃÎúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÃþÿÿþÆ9!9!!!!!!! !! ! !! ! ! !  oØýþþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx     œèþþþþþþþþþþÿþþþþþþÿúÕ�}}~}}}€€}}~€€‘~‘€‘€€~‘‘~�¡‘‘‘‘‘~‘‘�‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘¡¡‘‘‘‘¡¡¡‘‘¢ëÿÿÿýÔ¡‘¡¤¡‘¡¡¡¡¡‘‘¡¡¡¤¡¤¡‘‘¡¡‘¡¢¡¡¡£¡¡¡¡¢¡¡‘¤¡¡¢¡‘¡‘¡¢¢¢¡¤¡¢¡¡¤¡¤¡¢¡‘‘¡¡‘¡¡¡¡¡¡‘¡¡éþà¡‘‘‘¤¡¡‘‘‘�‘‘‘‘‘‘‘‘�‘¡‘‘‘‘€€‘¡¡‘€‘‘�‘€€�‘‘‘‘~~�‘‘€€�}�€€€}}}}}}€}}}}}}}}}}}}}}ww}ww}}w}èñ�Êõž}}wwww}wwvvvvvvwvvvvpvwvvvvvvvvpvppvopppvvpooppooowuloluooloolllolluoltopltlltlllltCllllCllCCCCtzÞúòÉz›òþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9$ÃþÿÿþÆ9!!!!! !!! !! ! ! !! !   pØýÿþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿþþþþþþÿúÕ�}}}}�€~}}�~€~‘‘€‘�€~~~}�‘‘�€�‘€‘‘‘~~‘‘‘‘‘‘¡‘‘~�‘‘€‘‘‘‘‘¡‘‘‘‘‘‘‘¡¡¡‘‘‘¡¡‘¤èÿÿÿýÒ¡¡¡¡¡¡‘¡¡¡¢¢¡¢¥¡¡£¢¡¢¢¡¡¡¢¡¡¡‘¡¡¢¡¢¢¡¡‘¡¡¡¡¡¡¤¡¤¡‘‘‘¢¡‘‘¡‘¡¡‘¡¡¡¢¢¡‘¡‘‘‘¡‘‘‘¬ûû§‘‘‘‘‘‘¡‘‘¡‘¡¤‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘€‘‘€€‘€€‘€€‘}}�}€�‘€€€�€}€‘}}}}}}}}}}}€}}w}}}}}}}ww}æñ�Çõžwvw}}}w}wvvvvvvvwvvwvvppvppvvpvpvpovpvvppopvpoppvovopvoooolopuulllllllooullCClltlllCtlCCCllllCt�ñú߃ƒÞüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!;$ÃþÿÿþÈ9!!!!!! !!!!!! ! !   !    vÖýÿþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx   œèþþþþþþþþþþÿþþþþþþÿüÓ�}~}€~~}€}€€€€€}~~€€€€€‘‘‘�€~€‘€�‘~‘‘�‘‘‘€€‘¡‘‘‘¡‘‘‘¡‘‘¡¡¡¡¡‘¡¡¡‘‘‘¡‘‘‘¡‘‘‘èÿÿÿý¬‘¡¢¡¡‘¡¡¡‘¡¡‘¡¡¡‘¢¢¡¡¢¡¡¢¡¡¢¤¡¡¡¡¡£¡‘¡‘¢¤¡‘‘¡¡¡¡¡¢¡¤¡¤¡¡£¡¡¡‘‘¡¡¡¡¡¡¡‘‘¡‘‘‘¡àþ椡¤‘‘‘‘‘‘¡¡‘‘‘‘‘‘¡‘�‘‘‘‘‘€‘‘‘¡€‘‘‘‘‘€‘‘‘€‘‘€‘�€��}€€€€}}€€€}�}}}}}}}}w}}}}}ww}}}âô�Çõž}}wwwwvw}wvvwwvvvvwvvwvvvvwvvpvvvvopvvvuoppvppopolopoooooploooooloolllllllllllloCllCCCllCClCl{Ïúç›yÇ÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÃþÿÿþÆ9!!!!!!!!! !! !   !  !   pÕýþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæx    œèþþþþþþþþþþÿþþþþþþþúÓ�}~}}}~~}€‘€~~}}‘€~�‘‘‘�€€‘‘‘�€‘~‘‘€¡‘‘€�‘‘‘‘‘¡‘‘‘‘¡‘‘‘‘¡¡‘¡¡¡‘‘¡¡‘‘¡¡‘‘¡èÿÿÿý­‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢‘¡¡¡¡¡¢¡¡¡£¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡‘‘¡¢¤¡¡¡¡¡¡‘¡¡‘¤ùû§‘¡¡‘¡‘¡¡‘‘¡‘‘‘�‘‘‘¤€‘¡‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘�‘€€‘‘€€€€‘€€}�€}}€}}}€€}€}}}}}}}}€}}}}}}ww}}}}æñ�Çõž}w}}wwwwwvvvwwvvvvwwvvvvpwwvpvvvvvpvpvvppvpopvouuoooopoouploolooolollolllllolCltlllClllltCCtÆñòÉz”çýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ9!!!!!!!!! !! ! ! !! !  oØýþþÿþþþþÿÿÿÿÿÿÿÿÿÿÿæx   œèþþþþþþþþþþÿÿþþþþþþüÕ‘}}}}}€~€}~‘‘‘�~}}€‘‘‘�‘€‘‘‘¡‘‘€€�‘‘�‘¡¡‘�€‘‘‘‘‘‘‘‘�‘‘‘�‘‘‘‘‘¡¡¡¡¡¡¡¡¡‘¡¡¢èÿÿÿý­¡¡¢¢‘¡¡¡‘¡¡¥¢¡¡¢¡¡¡¡¡¡¢¡¡¢¢‘¡¢¢¡¤¡‘¢¢¢¡¡¢¡¢¢¡¡¥¢¡¡¤¡¡¡¡¡¡¡¢¡¡‘¡¡¡¡‘¡¡¡¡‘¡¡¡Òýí¤‘¡‘�¡¡¡¡‘‘¡€‘‘‘�‘‘¡‘‘‘¡¡‘‘‘‘‘¡‘‘‘‘�‘‘‘‘‘€€‘‘‘‘€€€€‘€€}�€}}}}}}}}€€w}}}}}}}}}}€}}w}}}}}wæõ�Çõž}w}wwvwvwwvvvwvvwvwwvvvvpvwvvvvvvpvvpvvvppooovovvpvouuolooluuuuuolloltooolllllCCllClolCCllƒßòß”xÉ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!!! !! !! !! !! ! ! !!   !   oÕýþþÿþþþþÿÿÿÿÿÿÿÿÿÿÿæx      œèþþþþþþþþþþÿþþþþþþÿûÓ~}}}}}}}~}}~}~}�‘‘~~€€€€‘‘��‘‘‘‘~€‘‘�‘‘‘‘‘¡¡‘‘‘‘‘‘‘¡¡¤‘¡¢¡¡¡¡‘¡¡¡¡¡¡¡‘¡¥£ëÿÿÿý­¢¡‘‘¡¡¡¢¡¡¡¡¡¢¢¢¡¡¡¡¡¡¢¡¤¡¡¡¢¡¡¡¡¤‘¡¡¤¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¥¡¡¡¡¡¢¢¡¢¢‘‘¡¢¡¡¡¡¡¡¡ÚþûÚ¤¡‘‘¤¡‘¡‘‘¡‘¢¢¤¡‘¡¡‘‘‘‘‘‘‘‘‘‘�€€‘€�‘‘€€‘‘€€€€€}€‘�€€€‘�€€€€€‘‘‘‘€€€}}}€€}}}}}w}‘}w}}}}w}}àõ™Òõžwwwwwvvwvww}vvvvvvv|vwwvvvvpvupvvvovpvpopvppooopulpoppopovollloolloollllllllolllolllCCCCxÉññÆy–çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$$ÃþÿÿþÆ9!!!! !!!!!! ! !! ! !  ! !  ! oØüþþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx      œèþþþþþþþþþþÿþþþþÿþþüÕ~}€€}~}~€‘~€}€€€¡€€€€‘�€~�‘�‘�~€‘‘‘‘¡‘‘‘‘€¡‘‘‘�‘¡¡‘¡‘‘¡¡‘‘‘¡¡‘‘‘‘¡¡¡‘¡¡¡‘¡‘¡èÿÿÿý­¡¡¤¡¢¢¤¡¡¢¢¡‘¡¡¡¡¡¤¡¡¢¢¡¡¡‘¡¡¢¡¡¡¡¡££¡¡¡¢¢¢¡¡¢¢¡¡¢¡¡¢¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡‘¡¡‘‘¡¬øÿý매¡¡¡‘¡‘¡¡�¤’‘‘‘‘¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘�‘‘‘€€€‘€€‘€€‘‘€€~€€€€~€€}€�€€}}}}€}}}}}}}}w}}www}àò�Ò÷Çwww}}wwvv}wvvvvvvwwvvwvppvvvwvvwvvpvppppvvvppppppoppouooluuoolouoloulollollllltllllllCt”áòÞ{zÎúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!9ÃþÿÿþÆ9!!! !!! ! ! !! !!  !   pÕýþþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx      œèþþþþþþþþþþÿþþþþÿþÿúÕ�€€~}~€‘€€‘€~‘~~‘�‘‘�€€��‘�~‘‘‘‘‘‘‘�‘‘‘‘‘‘‘¡‘‘¡‘¡¡‘‘‘¡‘‘¡¡‘‘‘‘‘¡¡‘¡¡¡¡¡‘¡èÿÿÿý¬‘¢¢¡¡¢¡¡¡¢¢¡‘¤¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢£¢¡¢£¡¡¡¡¥¢¡¡¡¤¡¡¢¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡Ôøÿÿû䥡‘‘¤‘¡¡‘‘¡¡‘‘‘‘‘‘¡‘‘¡‘‘‘‘‘�‘‘‘‘�‘¡‘€~‘�€‘‘�‘‘€}€€€~€}€€€}}}}}}}}}}}}}}}}}}}}www}ßõ˜Ç÷Ò}w}wwwwvv}vvvwwvv}wvvvvvvvvpvvvvwvpvvvppvpovvupopopuoopolopoooloolluollullltCllllllCl{Ìñç–y�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÃþÿÿþÆ9!!!!! !!!! !!!! ! !     pØýþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx      œèýþþþþþþþþþÿþþþþÿþÿüÓ��~}}}}}}}}}~~€€~~‘‘€�‘‘‘‘€‘‘‘�‘‘‘~€‘€‘‘¡¡�‘¡¡¡‘‘‘‘‘¡‘¡¤‘‘‘‘¡¡‘‘¡‘‘‘¡¡¢¢¢¢¡èÿÿÿý¬‘¡¡¡‘¡¡¡¡¡¤¡¡¡¡¡‘¡¢¢¡¡‘¢¡¢¢¢¡¡¡¢¡¡¡¡¢£¡¡¡¡¡¢¡¡¡¡¢¢¡¢¢¡¡¢¡¡¡¢¡¡¡¡¡¡¡¤¢¢¡‘¡¢¡¡¡¬éþÿþõÓ’‘¢‘¡¡¡‘¡¡¡¡‘‘¡¡‘‘‘‘‘‘‘‘¡€‘‘‘‘€‘‘‘‘�€‘‘¡€€�‘€‘‘~}}€�€€}}}}}€}}€}}}}}}}}}}}w}w}}}àõ˜ž÷Ê}ww}}wvvw}ww}}wwvvvvvvwwvvvvvpppvvvvvwvoouopppoooppoolooouppouolllolllooolollllltoCt›çñÉy{ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!!! !!! ! !! ! ! !! !!    vØýþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx     œèþþþþþþþþþþÿÿþþþÿþþúÓŽ~€~}€‘‘�~‘€~€€€€~‘‘€~~‘‘‘€�‘�€‘¡¡�~€�‘‘¡‘‘‘‘‘‘¡‘‘‘‘�‘¤‘¤¡¡¡¡¡‘‘‘¡¡¡¡¡¡‘¡¡èÿÿÿý­¡¡¡¡‘¢¡¡¢¡¡¡¡¢¢¢‘¤¡¡¡¢¢¢¡¡¡¢¡¡¡¡¡¡¤¡¡¡¡¢¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡£¢¡¡¡¡¢¡¡‘¡¡¡¡¡¡¡¤¡¡¡¤Ùùþÿýí­£¡‘‘¥¡‘‘‘‘¡‘‘‘‘‘‘‘‘‘�‘¡‘‘‘‘‘‘‘~€�‘€€‘‘~€‘‘~}€‘€€‘‘‘‘‘€€}}}€‘}€}€€}}}}}}}}}}}}}}}}àõ™ž÷Êvvw}}w}}|vwwvv|vvvvvvvvvvvvvvvvpvvpoopvpopvvvpoooooopuopolppoouplloulooolllooCloll†Þòá”yÇòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$99ÃþÿÿþÈ9!!! !!!! !! ! !       !   pÕüÿþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿÿþþþÿþÿûÕ~}€}~~~~‘€€€€~~~€~�€€€€€€��‘€‘‘€‘�€¡‘‘¡‘�‘‘‘‘¡‘‘‘‘‘¡¡¡‘¡¡‘¡¡¡‘¡¡‘¡¡¡¡¡¡‘¡¡¡£ëÿÿÿý­¡¡¡¡‘¢¡¡¡¢¡¡¡¡¢¡¡¡¢¢¢¡¡¢¤¡¢¡¡¢¢¡¡¢¡¢¡‘¡£¢¢¡¡¤¡¡¡¡¡¡¡¡¢¡¡¡¢¢¡¡¢¡‘¡‘¡¡¡¡¡¡¢¡‘‘¡¡¡£¨àûÿÿû謡‘¢¡‘¡‘‘¡‘‘‘¡‘‘‘‘‘‘€‘¡‘‘~‘‘¡�‘‘~~~€‘€€‘€}€‘‘‘‘‘€��‘}}~~€}}�€}€}}}}}}}}}}}}}w}wà÷™ž÷Êw}}vw}}wvvwwvw|vvpvvwwvvvvvvvvvvvvpvpppvpppvvvpooouppppolloouoouputllotltlltlllly�ñçÆy”âýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$9$ÃþÿÿþÆ9!!!! !!!! !!!! ! !     !   oÕýþþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx     œèýþþþþþþþþþÿÿþþþÿþþüÕ�}}}€~}}€€���€‘~‘‘‘‘~�€‘~‘‘‘‘‘�~‘¡¡‘‘¡‘€‘¡¡‘‘‘‘¡¡¡¡¡‘‘¡¡¡‘‘‘‘£¢¡¡¡¤¡¡¡‘¢éÿÿÿý­¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢£¢£¡¡¢¢¡¡¡¢£¡¢¡¢¢¡¡¡¢¢¡¢£¢¢¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¤¡¡¤¡¡¡¡‘¡¡¤¤¡¡§êýÿÿûæ§‘¡‘¤‘‘‘‘¡‘‘‘‘¡‘¡‘‘‘‘‘‘�€‘‘¡‘�€~€‘‘‘�‘€€~�‘‘‘€€~}€}€}}}€�€�}}}}}}}}}w}}}}wà÷™ž÷Ów}}ww}wvw}wvwwvwvvvvvvvvvvvvvvvvvvvpppvvvvoopvvpoopvuooooooouolopollCllllllllll”ßñÞƒ{Ì÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÂþÿÿþÆ!!!!!!!!!!! !! !!! ! !   !  !   !pÕýþþþþþþÿÿÿÿÿÿÿÿÿÿÿþæx     �èýþþþþþþþþþÿÿþþþÿþþüÕ�~~}}}}~€€€~€‘�~€‘€~€‘‘‘‘�~~‘�‘‘‘€�‘‘~�¡¢‘¡¡¡‘‘‘‘¡‘‘¡‘‘‘‘‘¡¢‘‘¤¡¡¡¡‘¡¡¡¡¡¡¥ëÿÿÿý­¡¢¢££¡‘¡¡¡¢¡¡£££¢¡¡¡¡¢£¢¡¢£¢¢¡¡¡¢¡¡¡¡¢¢¡¡¡¢¢¢¡£¢¡¡¡¡¡¢£¢¡¡‘¡¡¡¡£¡¡¡¢‘¡¡¡¡¡¡¡¢¡‘‘‘¡¡¤ÒíþÿþúÚ¤‘¡¡¡‘‘‘‘‘‘‘�€¤¡‘‘‘‘‘‘‘‘€�‘‘€€‘‘‘‘€‘€}}~~€€}}€~}€‘}}}�€�}}}}}}}}}}}}}}}}}}}àú™ž÷×vw}wwv}}wwwvp|}wwvwwvvvvvvwvvppppvvvvvvvvpooopupoopoooooooouollllooloooollloyÉñç�y›çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$99ÃþÿÿþÆ9!!!9!!!! ! ! ! !   !   !      vØüþþþþþþÿÿÿÿÿÿÿÿÿÿÿþæx œèýþýþþþþþþþÿÿþþÿþþÿüÕ~~~~}}‘€~~�~~~~‘‘�~~€‘~��‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡¡�‘‘‘¡¡‘‘‘‘¡‘¡¡¤¡¡¡‘¡¡¡‘¡¡¡¡¡¢¢ëÿÿÿý­¢¡¡¡¢¡¡¢¦¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¢£¡¢¢£¡¡¡¢¢¢¢¢¢¡¡¢¢¡¡¢¢¢¡¡¡¡¡¢¢¡¢¡¡¢¡¡¡¡¡‘¡¡¡¢¡‘¡¢¡¡¡‘¢¡‘¡‘¤¥ØøþÿþùÚ¤‘‘‘‘‘¡‘¡‘‘‘¡‘‘‘�€‘¡¡‘‘‘‘‘‘‘‘‘€‘‘€‘€~€‘€�€�€€‘‘‘�~€€}}}}}}}}€}}}}}}}}}}ww}}}ß÷œž÷×wv}}w}ww}wwwww}ww}vvwwvvvwvpvvvvvvvvvppppppoupooouooupouuollolloooooolloollt”âñÌ{{ÞúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!!!!!!!! !!!! ! ! !   !   pØýþþþþþþþÿÿÿÿþÿÿÿÿÿÿæx   œèýþýþþþþþþþÿÿþþþÿÿþüÓŽ~~}}�€~~~~€€€€€‘€‘€�‘��‘‘‘‘‘‘�¡‘‘¡‘�‘‘‘‘‘‘¡‘¡‘‘‘‘¡¡¡¡‘‘¡¡¡‘¡‘¡¡‘¡¡¡¢¡¡¡¡¡¡¤èÿÿÿý­¢‘¡¡¡¡¡¡£¢¢¢¢¡¡¡¡¡¡¡£¢¡‘¡¡¢¡¡¢¡¢¡¡¢¢¢£¢¢¢¡¡¡¡¡¡¢£¡¢¢¡¡¡¡£¡¡¡¡¢¤¡¡¡¡¡¡¡¢¡¡¡¢¡¡‘‘¢¡¡¡¡¡¡¡¤ÚùÿÿþõÔ¤‘¡‘‘¡¡¡¡‘‘‘‘‘‘‘‘¡‘‘‘‘�‘¡€��~‘‘‘€�‘€€�€~€€€~~~}€€}}}€}}}€}}}}}w}}}}}wv}}}àúœš÷×}}}}w}ww}wvvwwwwwwvvwwwvvwvpwvvpvvvvvoppppopvvppoooupvooooooooooolooolllolyÉñá”y�òþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9! !!!!!!! !!!!!!! !    !  pØüþþþþþþþÿþÿÿÿÿÿþÿÿÿæx   œèýþþýþþþþþþÿþþÿÿþþÿüÓ}~}~€‘‘~~€‘~�‘‘~‘‘�‘�‘¡€~‘‘‘�‘‘‘¡�‘�¡‘‘‘‘‘‘‘‘¡¡¡¡‘‘¡¡‘¡¤¡‘¡‘¡¢¡‘¡¡¢¡¡¡¡‘‘¢ëÿÿÿý­¡¡¡¡¢¢¢¡£££¡¡¡¢¢¡¢£££¢¢¢¡‘¡¢¡¡¢¢¡¡¢£¢¢¡¢¢¢¢¡¡¡¡¢¢¡¦£¡¡¡¡¢¡¡¡‘¡¡¡¡¡¢¢¡¡¡¤¢¢¡‘‘‘‘¡¡¡¢¡¡‘‘¡¤¨àûÿÿý鬑¡‘‘¤¡¡‘‘‘‘¡¡¤‘‘‘‘‘€€�‘‘€~�‘‘‘�~€~‘‘€}~€}}~~�€€€}}}}}}}}}}}}ww}}ww}}àûžšúÞ}}wwwvvvwwvwwvv|wvvvvvwwvvvvvvppvvwvppvpppppvpppooovupooopoupollllloloolu›âèÇy”áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÈ9!!! !!!!!! !!  !!    !   !  !pØüþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx  �èýþþþþþýþþþÿÿþþþÿÿÿüÕ~~�~}}€}}}~€�‘‘€~€‘~�~‘‘‘¡€�‘‘‘‘‘‘‘¡‘‘‘‘‘¡‘‘¡�€‘¡¡‘¡¡‘¡‘‘‘¡¡¡¡‘‘¡¡‘‘‘¡¡¡‘¡¡¡¦éÿÿÿý­¡¡¡¢¢¡¡¡¡¢¡¢¡¡¢¡‘¡¡£¢¢¢¢¢¢¡¢¡¡¡¢££¡‘‘‘¡¡¡¡¢£¢¡¢¡¡‘££¢¢¡¢¢¡¢¢¡¢¡¢¤‘¡¢¡¡¡¡¡¡¢¢¡¡¡¡‘‘¡¡¡¡¡¢¡¡¡Òèþÿÿýè§‘�‘�‘‘‘‘‘‘‘‘‘�‘‘‘‘�‘‘¡‘‘‘‘‘‘‘‘€~~‘€‘‘‘‘€~€€€}€�€€}}}€}}}w}}}€}}}Ùüž™úÙ}}}wvvwww|w}}wwwvvwwvvppvvvvvvvvvvvvpvvpoouvvooopvpopppppvouvppooouoouu{ÌñÞ{{ÞúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!! !!!! !!  !   !   vØüþþþþþþÿÿÿÿÿÿþÿÿÿÿÿæx    œèýþþýýþþþþþÿÿÿþþÿÿþûÕ��~~}€€~~�‘}€�€€~€~€‘~€€€�‘€‘€‘‘€‘‘‘‘‘‘‘‘¡‘‘‘‘‘¡‘‘‘¡‘¡‘¡¡¡‘¢¢‘¡¡¡¡¡¡¢¡¡¡¡¢¡¡¥ëÿÿÿý¬¡£¢¢¢¡¢¢¡¢¢¡£¢£¢¡¢¢¡¡¡£¢¡¡¢££¢¡£¢££¢¢¡¢¢¢¡¢¢¢¡¢¢¡‘¡¡¡¡¡¢¡¡¢¢¡¡¡¡¡¡¡¡¡¢¢¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¤¡‘¡‘¤Ôíþÿÿûàš‘¡‘¤‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘�‘‘€€€‘��‘�‘‘€‘‘€~€}}~€~}}}}}}}}}}}}}}}}}}Ùüž™úßw|wwvww}}vvw}vvvvwwvwvvvvwvvvvvpvpvpovwvppovppooouoooooooooooooollollu�âá›{ÇòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ=9$ÃþÿÿþÆ9!!!!!9! !!!!!! !!! ! !     ! !pØüþþþþþþþÿþÿÿÿÿÿÿÿÿÿæx    œèýþþþþýþþþþÿÿþÿþþÿÿüÕ�~~€~�~}~~~~~~€�‘‘~‘�€��‘�~‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘¡¡‘‘¡‘¡‘‘¡¡¡¤‘¡¡‘¤¡¡¡¡¡¢¢‘‘¢¡¡¢¤èÿÿÿý­¡¢¢¢¡¡¢£¡¢¢¢¢£££¡¡¡¢¡¢£¡¡¡¢£¢¡¡¢¢£££¢¡¢¡¡¡¢¢¢¡¢£¢¡¡¡¡¡¢¢¡¡¢¢¡¡¡¡¢¢¡¡¡¡¡¡¢¡¡‘¡¢¡¢¡¡¡¡¡¡‘¡¡‘‘¡¡‘¥ÔôþÿÿõÚ¥‘‘‘‘‘‘‘‘‘�¡‘‘�‘‘‘�‘€€‘‘‘€€€‘‘‘€€‘‘~€‘~~}€€}}€€€}}€}}}€}}}}}}}wwÙüž™úßwv}}wv}}wwvwwwvvvvvvvvwwvvvvvvvvpvvpopvvppvpvpppopoouolupooollooooooyÌáÉ{›âýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!99ÃþÿÿþÆ9!!!!!9!!!!!!!! ! !     ! !  !vÓüþþþþþþÿÿÿÿÿÿÿþÿÿÿÿæx!     œèþþþþþþþýþþÿÿþÿþÿþÿüÓ~~€€}~~}~~‘�}~€‘‘~‘‘€‘¡¡‘~�‘‘‘¡¤‘‘¡¡¡‘‘‘‘¡¡‘¡¡‘¡¤‘¡¡‘¡¤¢¢¡‘‘‘¡¡¡‘¡¢¡‘¡¡¢‘¡¢¤ëÿÿÿýÛ£££¢¡¡¢¢¡¡¡¢¢¡¡¢¡¡¢¢¡¢¢¢¡¡¡¡¡¡¡¢£¢¡¢£¢£££¡¡¡¡¡¡¢¦£££¡¡¡¢¢¡¡¡¢¡¢¢¢¡¡¡¡¡¡¡¢¢¢¡¤¡‘‘¡¡¡¡¡‘‘¡¡‘‘¢¡‘¡¡¤ÓõþÿþõÓ‘‘¡‘‘‘‘‘‘�‘‘‘‘‘‘€‘‘€�‘‘‘€‘~‘‘�€€�}€€~~}~}}€}‘}~}}}}}w}}}wwwÙýǘúà}}}}}w}}vwvvvwwwvvvvwvvvvvvvvvvvvvpvvpvvvvpoppwppvovpoopvplolouoppv”ÌÌ{{ÞúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9! !! ! !! !! !!  ! !   !      ! !qØýþþþþþþþÿþÿÿþÿÿÿÿÿÿæx!tzt$  œèýýýýþþþþþþÿÿÿþþÿÿÿüÕ�}}‘~~�~�€~~���‘~~‘~�~€‘�~�‘‘‘�‘¡�‘‘€‘¡¡¡‘‘¡¡¡‘‘‘¡¡‘¡‘¡¡¡¡‘¡¢¡‘¡¡¢¡‘¡¡¡¢££ëÿÿÿý­¡¡¡¡¡‘¡¡‘¡¡¡££¡¡£¢¡¡¡¡¡¢¡¢¢¡£¢¢¢¢¢¡¢¢¢¡¡¢¡¢££¦£¢¡¢¢¡££¢¡¢¢¢££¡¡¡¡¡¢¢¡¤¡¡¡¡¡¡‘¡¢¡¢¢¡¡¡¢¡¡¤¡‘¡¡‘‘‘¡¡¤Ø÷ÿÿþ鬢¡¡‘�€‘‘¡¡‘��‘‘‘���‘€€�€€‘‘€€}€‘‘‘€~€€€€€}}}�}}}}}}}}}}}€ÙýÇ™úßww}}}vw}w}}wwwwvw}vvv}wvvvwwvpvvwvpvvvvppvvpoopoowouvpouppolppollu†Ç˜†ÌòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ=$!ÃþÿÿþÆ!!!!!!!!!!!! ! !!!  !   !   oÓýþþþþþþþÿÿþÿÿÿÿÿÿÿþæx=zÊ–B   œèýýþýýþþþþþÿÿÿþþÿÿþüÕ�~}~�~~~}€�€‘�~~~~~�‘�‘~�‘~‘��‘‘‘�‘‘‘¡�‘‘¡¡‘‘‘¡¡‘¤‘‘¢¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¢¡¡¡¢¡¡¡¡¢¥ëÿÿÿý­¢¢¡¡¡£¡¡¢£¢¢¡¢¢¡¦¢¡££¢¢£¢¤¢¡¢¢¢¡¢£¡¢¢¢¡¢¢¢£¢¢¡¢¢¢¢¢¢¢¡¡¡£¢¤¢¡¡¢¢¢¢¡¢¡¢¢¡¢¡¢¡¡¡¢¡¡¡‘¢¡¡¡‘¡¡¡¡¡¡‘¡‘‘‘¡¥äúÿÿý觤¡‘‘‘‘‘‘‘�~�‘‘‘‘�€‘‘�~€€€‘‘€�€€€€€~~~€€€}}}~}}€}}}}}}}w}}}}}ÙýÒ™úàwwwwww}www}}}vvvvvvvvvw|vvvvvwvvvvvvvvuvppvppoppvvoppvooouoooulooov{ÉòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!!!!!!! ! !! ! !   !  pØüþþþþþþþÿÿÿÿþÿÿÿÿÿÿæx=x�ƒ= œèýýýýþýþþþþÿÿþþþÿÿÿüÕ�~~€}~~~‘‘��~~�~~~~‘‘��‘‘‘~~�‘‘�‘‘‘‘‘‘‘‘¡¡‘‘‘¡¡‘¡‘‘¡¡¡¢‘¡¢¡‘¡¡¡¡¡¡¡¢¢¡¡£¢¡¡¤¢¢ëÿÿÿýÔ£¢¡¡¢¢¢¢¢¦¢¢¡¢¢¡£¢¢¦¢£££¢¡£¡¢££¡¡¢¢¢¢¢¡¢£¦¢¢¢¡¢££¡¢¢¡¢¡¢£¡¡¡¡¢¢¢¢¢¡¡¢¢¢¡¡¡¢¢¡¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡‘‘¡¡¡‘¡¡¡¡¥àûÿÿûॡ‘‘¡‘‘�‘‘€‘‘‘‘�€‘€�€€~€�~‘�€�€}‘€‘€}}}€}~}}}}}}w}}}}}×ýÊ™úßw}}wwv}ww}ww}vvwwvvvvvvvvvvpvwvpvvvvvvpvppvvpovvpupvppoolpoololooyß÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!!!! !!! !!   !     !vØýþþþþþþþÿÿÿÿÿþÿÿÿÿÿæx=BA   œèýýýþýþþþþþÿÿþÿÿþþÿüÕŽ~~~~~‘‘�~~�‘�‘��‘�‘‘~�¡‘‘‘‘‘�~‘¡‘�‘¡¡‘¡‘‘‘‘¡‘‘¡‘‘¡¡¡¡¡‘¡¡¡¡£¡¡¡‘‘‘‘¡¢¡££¡¡¢¡¥ëÿÿÿýÛ££££¡‘¢¢¡££¡¡¡¡¡¢¡¡£¢££‘¡££¡¡¢£¢¢¢¢¦¢¡¡¡¡£¢¢£££¢¢¡£££¦¡¡¢¡¡¡£¡‘¡‘¡¢¢¢¡‘¢£¡¡¡¡¤¢¢¡‘‘‘‘‘¡¡¡‘¡¡¡‘¡‘‘‘¤‘‘¡¡£­æüÿÿøÙ¤‘‘‘‘¡¡‘��~�‘‘�€‘¡‘‘‘€€‘�~‘~‘‘‘€€~}}}}€}}}}€€}}€}}w}ww}ÙýÓšúâ}w}w|wwvvwvvw}ww}wwwvvvvvvvvvpppvpppppvwvpoupvvoolpoovvoopvvppuuovÞýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9! !!! !!! !!!! ! !   !    !vÕýþþþþþþÿÿþÿþþÿÿÿÿÿÿæx œâýýýþýþýþþþÿÿÿþþÿÿÿüÕŽ�~~~}��}~~‘~~�~~~�~‘‘~‘‘�‘��‘‘�‘¡‘‘‘‘���‘‘‘¡‘‘‘‘¡¡‘‘¡¡¡‘¡¢¡¢¢¢¢¢¡¡‘¡¡¢¢¢¢¡èÿÿÿý­¢¡¡¡¢¢¢¢¡¢¢££¢£££¢¢£¢¡£££¢¢£¢¡£¢£¢¡¢£¢¢¢¢£¢¡¢¢¢¢¢¢¡¡¡¢£¢¢¢¡¡££¢£££¢¡£¢¡¡¦¥¡¡¡¡¢¢¡¡¡¡¡¡‘¢¡¤¢¢¢¡¡¢¤‘¡‘‘‘‘‘¡¡§èýÿþõÔ¡‘‘‘�‘‘¡‘‘‘�‘‘‘���‘‘€€‘‘€€€€€€}}}€€€€€}}€}€}}}}}w}}}}€}}}×ýÊ�úæ}w}}ww}}w}wwwwvwwvw}wvvvwwvvvvpvwvppvvpppooppvppopvpopppppvulllopouÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!99ÃþÿÿþÆ9!$!!!! !!! !! !   !  ! ! !   ! !qØýþþþþþþÿÿÿÿþÿÿÿþÿÿÿæx  œèýýýþýýýýþþÿÿÿþÿÿÿÿüÕ�~~~}€‘~€€}€��~‘�~��‘¡‘¡�‘‘�‘‘‘�‘‘‘‘¡¡‘¡‘‘‘‘‘¡¡¡¡¡‘¢¡‘¡¡¡¡‘¡¡‘¡¢¢¡¢¢¡¡¡¡¡¡¡¡¥éÿÿÿý­¡¢¡¢¢£¢¡¢¢¢¢¡¢¢££¢¢££¢¢¦¢¢¢£¢¢£¢¢¢¢£££¢¢¢¢£¢¡£¢¢¢£¡¢£¡££¢¡¡¢¢£¢¡¢¢¡¡£¡¡¡£¢¡¡¡¡¡¡¢¢¤¡¡¢‘¢¡¡¡¡¡‘¡¡¡‘¡¡¡¡‘‘‘‘‘¤¬ôþÿþè§¡‘‘‘‘¡‘‘‘€‘‘‘€�‘€€€�~~‘‘€‘~~‘€}€€}}}}}€}}}}}}}ÓýÊ�úèw}www}}|wwwwvvw}vwwwvvvvwvvvvwvvvvvvvpvppvopppopppppuupooupplloplou”çýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ!!9!!!!!!!! !!!! ! !  !     !  !vØüþþþþþþþÿþþÿÿþÿÿÿÿÿæx œèýþýýýýýýýþÿÿÿþÿÿÿþüÓ�~~~~‘�~~~~~‘~�‘‘‘‘‘‘€‘‘��‘‘¡‘‘‘‘‘‘‘‘¡‘�‘¡‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¢¡‘¢¢¡¡¡¡¡¢ëÿÿÿý­¢¡¢£¢¡¢¡£¢¢£¢¢¢¡¢££¡¢¢¢£¢¢££££££££¡£¦£££¡¡£¢¡¢¢££¢¢£¢¡¢¢¢¡¡¢¢¡¢¢¢¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡£¢¡¢¢¢¡¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡‘‘¡¡‘‘¤Óõÿÿúؤ¡‘�‘‘‘‘‘‘‘�‘‘‘�€~€€~~�€€~€�€‘~€}}€€}~€€}}€}}€€}}}}}}}}Óþ×�úè}}ww}}wvv|wwvvv}vwv|vvpwvvvvwwppvvppvvvvvvpuopovpoloovolpopvoouuolooy�çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!!!!!!!!!!!!!!!!!! ! !     ! !  !pÕýþþþþþþþÿþþÿÿþÿÿÿÿÿæx   œæýýýþþýýþýþÿÿÿþþÿþÿüÓŽ}~��}~}€‘¡‘~‘‘‘�~~�‘€~‘‘�‘¡‘¡¡‘‘¡¡�¡¤‘‘¡¢‘‘¡‘¡¡‘‘¡¢¡¡¡¡¢¢¡¡¡¡¡¡¢¡¡¡¡¡¢¢££¡¢èÿÿÿýܦ£££¢¡¡£¦£¦¢¢¦¦¢¡¢£¢¦£¢¢¢¡¡¡¢¢¢¦£¢¡¢¢¡¡¢¡¡££¢¡¡¢¢¡¢¢¢¢¢¢¢¡¡¡¡¡¡¢¢££¡¡¡¢£¢¡¡¡¢¢£¡¡‘¡¢¡‘¢¢¡¡‘¡£¡‘‘‘¡¡¡¡¡‘¡¡¡‘‘‘‘‘¤Óúÿþ椡€�‘‘‘�€‘‘€‘‘‘‘‘‘€~‘�‘��‘€�}€€~}}€�~€€ww}}}}w}w}Óþ×�õæww}w}}w}}w}}}wvw}vvvvvpvwvwwvvvvvwwvwvoovvvvopvvppppovvoovvooopoooullouyÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$=$ÃþÿÿþÆ9!!! !!!!!! ! !      !  !     ! !! pÓüþþþþþþÿÿþÿþþÿÿÿÿþþàx  œèýýýýýýýþýþÿÿÿÿÿþÿÿûÕ�€�€}~€~‘‘‘€~‘�~‘�~€€~‘��‘‘�~‘‘‘~‘‘‘‘�‘‘‘¡¡¡‘¢¡¡¡‘‘¡¡¢¢¡‘‘¡¢¢¡¡¡¡¡¡¡¢¢¡¡¡¢¡¡¢¦íÿÿÿý­¢£¢¢¢¡¡¡¢¢¢¡¡£¢¢¢¢¢¢¢¢£¡¢£¦£¢¡¢¦£¦££££¢¡£££¢£¢¢¢¢¢££¢¢¢¢£¢¢¢£¢¡¡¢¢¢¡¢¢¢£¢££¡¡¡¢¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡‘¡¡¡‘¡‘‘‘¡¡‘‘‘‘‘‘‘¢æÿÿþÚ‘‘¡‘‘‘¡‘€‘‘€‘�‘���€‘€‘�€~€}€€€}€€~}}}€}}}€}}}}€}}}}Óþ×�òè}wwww}}}vww|wwvvvvvvvwwvvpvvvvwvwwpppvovvpvvvoppovpppooluoooluuuloppolloyÉòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!!!99! !!!!!!!! !!!     ! !     pØüþþþþþþÿÿþÿþþÿÿþÿÿÿæx  œèýýýýýýýþýýÿÿþÿÿÿÿÿûÔ‘�~~}‘�~‘‘�‘�~~€~~~‘‘��‘��‘‘‘�‘��‘‘‘¡�¡‘�¢¡‘¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¢¡¡¡¡¡¢¡¢¢¡¡¡¡¢¢¢¢ëÿÿÿý­£¢¢¢£¢¢¡¡¢¢¢£¢¢¢¢¢¢£¢£¢¢£££¢¢¢££¢£¦££££¢¢¢£¢¢¢£££¢£¢¢£££¢¢¢¢£¢¡¢¢¡¡¢¢¢¢¡¢¢¢¡¡¡¡¡¢£‘¡¡¡¢¡¡¡¡¤¡¢‘‘¡¢¡¡¡‘¤¡‘¡‘‘‘‘‘¡Øûÿÿù§‘‘¡‘~‘‘‘‘€‘�‘�‘€��‘��€€‘~€~€�€}}€}}}}}}}}}}}}}}}ÊþÙ�ôè}ww}w}wv|w}wv|wvwwwvvvvvvwvvvv|pvvvppvvvvvpvvpoppvopppoooooplouullooolloltyÌúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!!!!!!!!!!!!!!!!! !   !   !   !pÖüþþþþþþþÿþþÿÿþþÿÿÿÿæx  œèýýýýýýþþýýÿÿÿþÿÿþÿüÕŸ~~~‘�~~�~~~���~}~~‘‘‘~€�~‘¡¡�‘‘‘‘¡‘¡¡¡‘‘¡‘‘¡‘‘¡‘¡¡¡£¡¡¡¡¡¢¡¡¢¡‘‘¡¢¢¡¢¢¡¡¡¡¢¡¡ëÿÿÿý­£££¢¦¦£¢¡¢¢¦£¡¢££¢¢¦¦£¢¢££¢£¢££¡¡¡£¦£¢¢£¢¡¢¦¢¡¢££¢¢¢¢¢¢£¢£££¢¢¢£££¢¢¢£¢‘¡¡¡¡¡¡¡¢¢¡¡‘¡¡¡¢¢¡‘¡¢¢£¡¡¢¢¡¡¡¡¡‘‘‘‘‘‘¥äýÿþô§‘‘¡‘‘�‘¡‘€€�‘¡‘‘‘‘€‘€~€€‘�‘‘€}}�}}}}}}}}}}}}}wÊþÙ�ôè}w}}}}vww}wwvwvwwwwvvvvvv}wvvpvpvvvvvvpppvoovppvvvoopvvpopppllupullCoolollloƒÞüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!$ÃþÿÿþÆ9!!!!!!!!! !!! !! !   !    !vÕýþþþþþþþÿþþÿÿþþÿÿÿÿæx œèýýýýýýýýýþÿÿþþÿþÿÿûÕ~}~‘�~~~~~~~~‘‘‘¡‘‘�‘‘‘‘¡‘¡‘‘‘¡‘�~¡¢¡‘‘¡‘‘¡‘¡¡¡¡¡¡‘‘¡‘¡¡¡¡¡¡¡¢¡‘¡¡¡¡¡¡¢¢££¡££¢èÿÿÿýÛ¢¡¡¡¢¢¢¢¢¡¡¡£££¦£¢¡¢¡¡¢£¢¡¡¢¡¡¦¦¦£¢¢¢¡¡¢£¦¦¢¢££¢¢¢£¦£¢¢¢¡¢¢¢¡£¦£¡¡¥¦¡¡¢¢¢££¦¢¢¢£¢¢¢¡¢£¡¡¡£¢‘‘‘¢¢‘‘¡¡‘¡‘‘‘‘¡‘¡§ôþÿýÚ¤‘‘‘‘€‘‘‘‘‘‘‘‘‘‘€�‘‘€‘�‘~€€�‘~}}~�€€‘~}~}~}}~}}}}}}€}}wÒþß�èè�}w}vw}}wvwvw|vw}pv}}|vvvwvvvpopvwvpvvvpvvvpppopopvplopopvollopolloolpooololCloƒáüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!$ÃþÿÿþÆ9!!! !! !!!!! !!! !    !  !  !!! ! ! !|Øüþþþþþþÿÿþÿþþÿÿþþÿþæx  œèýýýýýýýýýþÿÿÿÿÿþÿÿúÕ~}}~~~~~‘�~�‘‘�~~¡‘‘‘‘�‘¡¡‘�¡‘‘‘�‘‘‘‘‘‘‘¡‘�¡¡¡¢¡¡¡‘¡¢¢¡¡¡¡¡¡¢¡¡£¢¢¢¢¡¡¡¢¡¡¡¡¢íÿÿÿýÔ¢¢¢¢¢¡¢££¡££¦¢¢¢¡£¦£¢¢¢£££¢¦££¦£££¢££££¢¢¦¦£££¢££¢¢¢¢¢££¡£¢£¢¢¢¢¡¡¢¢¡¢¢¢¡¡¢¢¡¡¢¢¡¡¡¢¢¢¡¡¡¡£¡¡¡¡¡‘‘¡‘‘‘¡¡¡‘¡¤ØûÿÿøÓ¡‘‘‘‘¡‘‘‘‘‘‘‘�‘‘€‘‘~~~�€‘‘�€}€~�€€}€�€}‘€}}}}}~}}}}}}}}Òþà�èèw}}}www}wwww}vv}vw}wvvvpwwpv|vvvvvvppvpppvpvvpvpopppovooopoooppuoooluolpolllollo–áþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!$ÃþÿÿþÆ9!!!!!!!!!!!! ! ! !! !     !   pÕüþþþþþþÿÿþþÿÿþþÿÿþþàx  �èüýýýýýýýýýÿÿþÿÿÿÿÿüÕ�}~~�~~~~~~���¡�~~�‘‘�‘��‘‘‘�¡‘�‘�‘‘‘‘‘‘¡‘‘¡‘¡¡¡£¡‘¡‘¡¡¡¡¡‘¢¢¡¢¡¢¢¢£¢¢¡¡¡¡¤¡¡¢ëÿÿÿýÔ£¢¢¢¡¢££¢¢£¦¦¢££¡£££¦¢££¦¦¢¦£££££¦¢¢££¢££¦££££¢£££¢¢¢¢££¢££¢¢¢¢¢¡££¡¡¡¢£¡¡¡¡¢¡¡¢¢¡¡¢¡¢¡¡¡¡¡¢¡¡¡‘‘‘¡¡¡‘¡¡¡¡§èþÿþô§‘‘¡‘‘‘‘¡¡‘‘‘‘¡‘‘�‘€€€‘‘~€€€~€�~}�‘}}~‘~}}}}~€}}}w}}}Óþà�èñ�v}}}v|vwwwwwvvvw}wvv|v|vvvvvvvvvvvvvvppppvopvvvppopvopoooouulopvooolloooooolotlClu›ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ9!=ÃþÿÿþÆ9!!!!!!!!!!!! !! !!!!!!   !     pÕüþþþþþþþÿÿÿþþÿÿþþÿþæx œèýýýýýýýýýýÿÿÿþÿÿÿÿüÕ��‘�~~~~�‘‘�‘~~‘‘~‘‘‘�~�‘�‘¡¡‘¡‘¡¡‘‘¢¢¢‘‘¡¡‘‘‘¡¡¡¢¡‘¡‘¡¢¡¢¡¡¢¡¢£¡¡¡¢¡¢¢¡¡¢£¥ëÿÿÿý­¢¢¢¢¢£¢¢¢¢¢¡¡¡¢£¢¢¢¢£¦£¡¢¢££¢¢¡£¦«¦££¢£¦¡¡¡¢¢¢¡¡¦¦£¡¡¡££¢¦£££¡££¡£¢¡¡¡¡¢¢¢¢¢££¡¢¡¡¢¡¡¡¡¡¢¡‘¡¢¡¢¢¡¡¢¢¢‘¡¢¤Ó÷ÿÿûؤ¡‘‘¡�‘¡‘‘‘‘€€€‘¡‘‘‘�‘‘‘�€€€~€‘‘€}‘‘~}}}€€}€�}€}}w}}}}Òþâ�æñ�}}}}}}w}}}}wwwwwwvvvvw}wvvwvvvvvvvvvpoppwvlppuppplovppvolluvlloulppoollluupolloouoluÇñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!!!!!!!!!!!!!! !   !    !   !      !vØüþþþþþþþÿþþÿÿþþÿÿþþæxœèüýýýýýýýýýÿÿÿÿÿÿÿÿüÕ�~~~~~~�~~‘‘‘����‘‘‘~~‘¡¡‘�¡¡‘‘¡¡¡‘‘¡¡‘¡¡‘‘¡¡£¢¡‘¡¡¡¡¡¢¢¡¢¡‘¡¡¡¡¢¡¡¡¡¡¢¢¢¡¡¡£££ëÿÿÿýÛ¢££¢¢¢¡¡£¦¢£¢£¢¡¡¢¦¦¡££¢¢¢¢¢££¢£¢¢¢¡¢£¦¢£¢¢¢£¦¡££¡¢¢£££¢¡¡¢¡¢¢£¦£¢¢¦¦¢£¡¡¡¢¢¢¢¡£¡¡£¡¢¡¡¡‘¡¢£¢‘¡¡¡‘¡¡¡‘¡§èþÿþô§‘‘¡‘‘‘�‘‘‘¡‘‘‘‘‘‘�€€‘‘‘‘€€‘��‘€‘‘€€‘�}}}}}}€‘€}�}}}}}}}}}}žþæ�àô�}www}ww}w}w}wvwvwwwwvvvwwvwvvvwwvpovvvppppoovpoopppopoopooovoolooopoolllllolllllllCllyÉóþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!!!!!!! ! ! ! !             pØûþþþþþþþÿþþþÿþþÿÿþþàx   œèüýýýýýýýýýÿÿÿÿÿÿÿÿüÕ¡~~~�€��~€�‘‘��‘���~��‘‘‘‘‘�‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘¡¡¡¡¡‘¢¢‘¡¢¡¡¡¡¡£¡¡¡¢¢¡¢¡¡¢¡¢¢¢¡££¢íÿÿÿý­¢££££¢¢¢££¢£¦¢¢¢¢¢£¦¡££¢££¢£££¢¦¢¢¢¡£¦¦¢££¢¢¢£¢££¡¦£¢£¢£¢¢£¢¢£££¢¢¢¦¢¢¢¡££¢¡¡¡¡£¢¡¡¡¢¡‘¡¡¡¢¡¡‘¢¡¡‘¡‘‘¥ØúÿÿûÚ¤‘¡¡¡‘¡¡‘¡‘‘‘‘‘¡‘‘‘�€‘‘‘‘‘€~~~€€�‘~~€�~�}€~€€}}}}}}}}}}}}}Òþâàõ˜ww}}}ww}vw}w}wwwwwvvvwvwvvwvvvvvvvovvvvvpppppwopppoppoopoooupoooolloooollllllllllllolllyÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!!!!! !! ! !!! !             !qÕûþþþþþþþÿþþþÿþþÿÿþþàx    œèýýýýýýýýýýÿÿÿþÿÿÿÿüÕ‘�}�‘‘~~¡�~~~‘��‘~���~‘‘‘�~~¡‘��‘‘‘‘‘‘¡¡‘¡¡‘¡¡¡‘¡¡‘¡¡¡¡¡¡¡£¢¢¡¢¢¡¢¡¢¢¡¢££¡£¦£ëÿÿÿý­¢¦¡¡¦£££££££¢¢¢¢¦¦¦££¢£«££¢¦¢¡£¦¢¢¢¢£¦££££¦¢¡¢£¢¢£££¢£££¢¢££¢¢£¢¢¢¢¢££¡¢£££¢‘¡¢¢¢¢¡¡¡¢¡¡¡¡¡¡¡‘¢¢¡¡¡¡§ëþÿþô¬‘�¡¡¤¡‘¡¤¡¤¡‘‘€�‘‘�‘‘~~€‘�‘‘‘�€€~�~��‘‘€~~€�~}}}}}}}}}w}~}}}žþè�Ùõ™}wwwwv}}}}}v}}wwv|wwvwvwvvvvvvvvvvvppwpvvvvvvvopvppppvvulolooloullltloooollololollClolClu{Ì÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ99!!!!! !! !!! !!       !    vØüþþþþþþþÿþþþÿþþÿÿþþæx  œèýýýýýýýýýýÿÿÿþÿÿÿÿüÕ�~~~��~~‘�‘‘~~�~‘��¡¡‘~�‘¡¡‘‘¡‘¡¡¡¡‘¡¢¡‘¡‘¡¡‘¡¡‘‘¡‘‘¢¢¡¡¡¡¡¡¡¡¢£¢¢¢¡¢£¢£¢¡¡¡¢£ëÿÿÿýÔ¢¢¢£¢¡¡¢¢¢¢¦££¦£¦¦¢¡££¢£¢£¡£¢£¢£¦¦¦¦¦¦¢¡¢££££¦¦£¡£¦£¢¢£¢¢¢¡¡£¢¢¦£¡¢££¢£¢¢¡¡¢¢¢£¡¡¡¡¡¢¢¢¢¡‘¡¡¡‘¡¢¡¡¨ãûÿÿûÙ¤¡¡‘‘‘‘‘‘‘¡‘�‘¡‘‘¡‘¡‘‘�‘‘€‘~€¡‘€‘‘�}�‘���‘�‘€€}}}}€€€}}}}~~€}}}}}}}}}žýè�Ù÷™}}}}}wv}}}w|wvvv|wwwvpvwvvpwwvvpvvvopwvvpoppovvvvppolpoolopololloolllllllloullllllllllCllCC{ÎúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$$9ÃþÿÿþÈ9!!!!!! !!!!!!!!  ! !!! !              vØüþþþþþþþÿþþþþÿþþþÿþæx  œèüüýýýýýýýýÿÿÿþÿÿÿÿüÕ�~}~~~}~�‘��~�‘~~~‘¡¡‘‘¡¡‘‘‘‘¡‘‘‘‘‘¡‘‘¡¡¢¡¡‘‘¢¡‘¢¢¢¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢£¢££¡¢èÿÿÿý­¢¡££¢££££¡£¦£¦£¢££¢¢£¢££¦£££¦¦¢££££¢¢¢£££¦£¢¢¢££££¢¢£¢¢£¦££¢¦¢¢£¢¡¡¡¢¡¢¢¢¢¢¡£££¢£¢¢¢¢¢¡¢¡¡¦¢¡¡¢¢¢§ôþÿþõ­¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘‘‘�‘‘‘‘‘‘€¡‘€€€‘‘‘€~€�‘�}€~€€~}€€}~€€}}}}}}}}}}}}žüèÙ÷™|}}}}w}}wv|}ww||vww}wwvv|vpvvvvpvvvvvvvvpovvvvoopouplppopppplolooooooolollllllllllClllCCllCClƒÏúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÃþÿÿþÆ9!!!!!!!! !!!! ! !! !           !vÖûþþþþþþþÿþþþþþþÿÿþþæx  œèüýýýýýýýýýÿÿÿþÿÿÿÿüÕ�}~‘��‘‘~‘‘~~���‘‘‘‘¡‘‘‘‘¡¡‘‘‘‘�‘¡¢�‘¡¡¡¡¡‘¡¡‘¡¢¢¡¡¡¡¢¢¡¡¢¡¡¡¡¢¢¡¢¢¢¡¢£¢£¢¢¦ëÿÿÿý­¢¢¢¢¢££¦¢¢£££££¢¦££¦¡£¦¢¦¦¦£££¢££¦£¢¢£¦££¦¦¢¢£¢££££¢¢¢£¦£¢£££££¢£¢¢¢¢¢£¢¡££¡¢¢££¢¡¦¡¡¡¢¢¡¡£¢¡¡¢¥äûÿÿûॡ¡¡¡¡‘¡‘‘‘¡¡¡¡¡‘‘‘‘‘�‘‘‘¡‘‘‘‘‘�€�‘‘~~€~~��€}~€€~~}~~}}}}}}}}}}žüô�×úœ|}}}w}}}ww}}}}wwwvwwwwvwvvvvvvvvvvpvvpvppovvvppppopppoppououoloploolootollolllllllollClCClClllCƒßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$$ÂþÿÿþÆ9! !!!!!! !!!! !! !       !    ! !vØûþþþþþþþÿþþþþþþÿþÿþæx  œâýüýýüýýýýýÿÿÿÿÿÿÿÿûÕ�}~€�‘~~‘‘�‘‘‘¡‘�‘‘�‘‘¡‘�~‘¡¡¡‘¡‘‘¡¡¡‘‘‘¡‘‘¡�‘‘‘¡¡¡¡¢¡‘¡¡¡¢¡¡¡¢¡¢£¢¢£¢¡¢¡¡£¢¢£ëÿÿÿýÛ¦£¢¢£¡£¦¦££¢£¢£¦¦££¦¡£¦¢¢£¦£££¢¢£¦£££¦¦££¦£¢£¢¡¢£££¢¡¢¢¢¢££¢¢£¦¦¦£¢¢¡¢¡¢¢¢¡¢¡¡¢¡¡£¢¡¡¢¢¡¡¡£¡¡¡¬íÿÿþõ­¡¡¡¡¡‘¡‘‘‘¡‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘�‘‘‘‘‘�‘‘‘‘~~~}~~}}}}}}}~}}€~€€}~}}}œûô�Óüž}}wvw}|}}}}ww}wwwwvw}wvwvwvv}wvvvvpvvvpvvvvvppppwppoppoolooouopvoloolllloooopllllCllClllllCltlCCt”áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ9! !!! ! !!!! !!! !     ! !         pØüþþþþþþþÿþþþþþþþþÿþæ_     œâýüüýýýýýüýÿÿÿþÿÿÿÿûÕ�~‘�~~~~��~~~~��~~�‘‘‘‘‘‘��¡‘¡¡¡‘¡‘¡¢¡‘¡¡¡‘¡£‘¡¢¡¡¡¡‘¡¡¡¢¢¢¡¢¢¢¢¢¡¡¡¡¡£¢¢¢¡¡¢¢¢ëÿÿÿýÛ¦££¢¦¢¢¢¢¢¢¢£¢¢¢¢¢¢¦£¢££¦¦¦¢¦¦¦£¦£¢¢¢£¦¦¢££¦¦¦£¢¢¦¦¦£¦¦£¢¡¢¦¢¡££¢¡¢¢£¢¡¢££££¡¢£¡¢¡¡¦£¡¡¡¡¡¡¡¥ãüÿÿý樑‘¡¡¡¡¢¢¡¢¡‘�‘¡‘‘‘¡‘‘‘‘‘‘�‘¡¡‘‘~�‘‘~~�‘‘‘‘‘‘€~€‘‘}~~�}€}}~}}}}}}}}œüòÊüžww|}}}ww|}wv|||vvpvv}|w}w|vvvvvvvvvppvppopopvvoopoppppvvoppullooollolpollllltlCollllllllllCClCCCCCt–çüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ!!!!!!!!!!!!  ! !!  ! !     !    !   !pÕûþþþþþþþÿþþþþþþþþÿþæx  œâüýýüýýýýýýÿÿÿÿÿÿÿÿüÕ��~~~�~~~~�‘‘~~‘¡��~�¡�‘¡�‘‘‘‘¡¡¡‘‘¡¡‘‘‘¡¡¡¡‘¢¡‘¡¡¢¡¡¡¡¡¡¡‘£¢¡¢£¡¡¢¡¡¡¢¢¡¢¢£££ëÿÿÿýÛ£¢¢¢£¢¢£¢¦¦£¢¢££££¦¢¦££¦¦££¢¦¦£¢¦«¦¦£¢£¢£¦¢££¦£££¢££¢£¢££¢££££¢¢¢¦£¢£¢¢¢£¢¢¢¡¢£¢¡¡¢£¢¢¡¢¡¢¢­ôþÿþõÖ¤¡¡¡¢¡¡‘¡¡¡¡¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘�~‘‘‘�€‘‘‘�€€‘‘‘~~~‘�€~€~}€}€}}}}}}|}}}}}}™úõ�ÓüÇww}}ww}}}}wvw}}vvvv|}wv}wvvwvvvvvvwvvpvppvpv|pppooppupoopoopolopllllulollllolllllllllllCClCCCCCllC?Cu›ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!!!!!!!! !!! !           !pÓüþþþþþþþÿþþþÿþþþþþþæx �âüýýýýýýýýüÿÿÿÿÿÿÿÿüÕ�‘~~~€�~}‘��‘‘�~�‘‘€��‘�‘‘‘¡‘‘‘‘‘‘¡‘¡¡¡¡¡¡¡‘‘¡£¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢£¢¡¢£¡¢¢¢£££ëÿÿÿýÔ¢¢¢£££££¢¦¦££¢£¦£¢£££££¦£¦¦¢¦£¦££¦¦£££¦¢¢¦£££¦££¦¢£££¢£££¢££¦£¢£¦¦£¡¡¢¢¢£££¢¢¡¢¢¡¡£¡¡¢¡¢¢¦Úûÿÿý楢¡¡¡¡¢¡¡¡¡¡¡¡¡‘‘¡‘‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘�‘‘€}‘‘€�~}~‘€}‘~}~~}€}}}}}}}}}}}}™úõ�ÓýÒ}|}}w}}}||www}w|||v|vv}wvvvvvvvvpvvvvpw|opvpvvvuppovpoollovoooluoloollolloollolllCllllClllCClCClCCCCCuÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!9ÃþÿÿþÆ9!!!!!!!!!!!!! ! !       !    !pÕûþþþþþþþÿþþþþþþþþÿþæxœèýüüýüýüýýüÿÿÿþÿÿÿÿûÓ��‘~�¡‘‘€‘~}���~~�‘‘‘‘�‘‘‘�‘‘‘‘‘�‘‘‘‘‘¡¡¡¡¡¡¡¡¢¡¡¡¡‘¡¢¡¡¢¡¢¢¢¢¡¡¡¡¢£¢¢¢£¦¢¢£¢¡¢ëÿÿÿýÛ£££¢££¦££¦££¦¢¢£¦¦££¢£¢£££¦££££¢¢£££¦£££¢¢£¦¦¦¢¢¢£¦«££¦¦£¢¡¢¦£¦¦¢¢¢¡¦£¢¡¢¢¡¡¢£¢¡¡¡£¡¡¡¡£­íÿÿþùÔ£‘‘¡¡¡¢¡¡‘‘¡¡‘‘‘‘¡¡¡¡¡¡‘¡¡‘‘‘¡¡‘‘‘¡‘‘‘‘��‘~~‘¡‘€‘�~~‘~~�}��~}}}€€}}}}~€€€€€}}šúõ�ÒýÒ}}}}}wv}wvvw}}|w}}vw|vvvvpvvvvppvvvpovpw|ppppppvvvpopopvplupoopppuolllopolltllllllCClolloollllCClCCC?ClCxËúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ!!!!!!!!! !!   !          ! !vØüþþþþþþþÿþþþþþþþþþþæx œèüüüýüýýýýüÿÿÿÿÿÿÿÿýÕ�~~~��~��~‘~~‘~‘¡‘‘‘‘¡‘‘‘¤¡¡¡¡‘‘¡¡¡�‘‘¡¡‘¡¡‘¡¢¡¢¡¡¡¢¡‘¡¡¡¡¡¢¢¡¢££¢¡¢£¢££¢¢££¦ëÿÿÿýÛ£¢¢¢¢¢££¢¢¢£¦¦¦£¦££££¢£¦¦£¢¢¢¦¦¢¦¦¦¦£¦£¦¦£££¦«£¦¦¦££¢¢££££¢¢£££¦££¢¢¦¢££¦¢¡£££¢¢¡¢£¢¢£¤Úýÿÿý楢¢¢¡¢¡¡£¡‘‘‘¡¡‘¡¡‘¡‘¡‘�‘¡¡¡‘‘‘‘‘‘~��‘‘‘�‘‘~~€‘~~~‘¡€€€‘�}‘~}~}€€}w}}}}}}w}|˜÷õ�žüÓ}}}}ww}w}w|}|vv|}|v|vvw|vwwvvvvvvvvvvvppvvpppoppooppoopvppooooooououooooolllllllololCCCClllllCClCCCCClCCCtñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ=$$ÃþÿÿþÆ9!!!!! !!!!!!!! !!! !       !    vÕûþþþþþþþÿþþþþþþþþþþæx œâüýýýüýýýýüÿÿÿÿÿÿÿÿüÓ�~~~~€�‘�~~‘‘‘��‘‘�‘‘�‘¡‘‘¢¡‘‘¡‘‘¡‘‘‘‘¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢¢¢¢¡¢£¢¢¢£¢¢¢£ëÿÿÿýÛ££¢¢£¢££¢¢££££££¢¦¦¢£££¦£££¢¦¦¦£££¦¦¦£££¦££££¦£££¦£££££¢£¦¦£¢¢¢££££¢¦¢££¦¢¢¦¢¢¢¦¢¢¢¢£­ëþÿÿøÔ¢¡¢¡¡¡¡¡‘¤¡¡¡‘¡¡‘¡¡¡¡¡¡¡�‘¡‘‘‘�‘‘‘‘‘‘‘¡�‘‘~~�‘‘‘�€~‘‘~~~‘~~€~~€€}}€}}}}}}}�÷õžú×}w}}w}}|}}}}v|||v|w|wv||vvvwvvvpvvvvpppppvpppopoovppopppovppolloooolollloollllllllllllCCCllllCCCllCC?CCCC”þÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÃþÿÿþÆ9!!!!!!!!! !!!!          !vØüþþþþþþþÿþþÿþþþþÿþþàxœâüýýýüýýýýüÿÿÿÿÿÿÿÿýÕ‘~~~~~‘‘‘‘�‘‘‘‘‘‘�‘‘‘~‘‘‘‘¡¡‘�‘¡‘‘‘‘¡‘¡¡‘‘¡¡¡¡‘‘¢¡¡¡¡¢¢¡£¢¢¢¢¢¡¢¡¢£¢¢¢¢¢¢¢¢¢¢¢ëÿÿÿýÛ¦££££¢¢££¢££¢¦£¢¢££££¦¦££££¦«¦£££¦¦¢££¦£¦££¦£££££¦£¦¦£¢¢££««£¡¢£¢££¢££¢¢££¢£¢¢£¢¢¡¡¥Ýûÿÿýæ­¢¡¢¢¡¡¡¡¡‘¡¡¡£‘‘¡‘¡¡¡¡¡¡‘‘¡¡‘¡‘��‘¡¡‘‘‘‘~‘‘~�‘‘‘‘�‘~€‘~~‘~~}‘€}}€€~‘€}}€}~}}}}}}™õõžúÙ}}}}|}w|}}wwv}}w|}wvwwvwvvvvvv|pvvvppppvpvpopvpopvpppoppppopvoloplllloolluolloollllllClCCClllllCCClClCCCláÿþßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÃþÿÿþÆ9!!!!!!!!!!!! !! !  !  !      !pÕüþþþþýþþÿþþþþþÿþÿþþàx œèüüüýýüýýüýÿÿÿÿÿÿÿÿüÔ‘~€‘‘‘‘‘�~~‘~~‘¡¡‘‘��‘�¡���‘‘‘‘¡‘‘¡‘¡¢�¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¢£¡¡¡£¦¦¢¢¦£¦ëÿÿÿýÛ¦£¦£¢¢¦£¦¦¦¦¢¦«££¢£¦££¦£«¦¦¦£¦£¢£¦¦£¢¢£¦£¢¢£«¦£¢¢££££¢¢£¢¢£«£¢¦£¢¢¢¡¡¢¢¢¡¡¡¡¦¢¡¡¡¢¨ëþÿÿøÝ¢¡¡¢¡‘¡¢¡¡¡¡¡¡¢¡¡¡¡‘‘‘¡‘¡¢‘‘‘‘¡¢¡‘‘‘‘¡‘‘‘‘~‘¡‘�~~~~‘‘~~}~}‘�~~~€~~€‘}|}}}€}}}�õ÷�žúÙ}}}}}ww}}}|wwwwv|}v|wvwv|vpppvvppvpvvpoppopvvvppppopvpolollpoolooopolllolllllpllooolCloolllCCClCClltCCCƒüÿáÅýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!=$ÃþÿÿþÆ9!!!!!!!!! !! ! !!!  ! !     pÕûþþþþþýþÿþþþþþÿþÿþþæxœèüüüüýüüýüýÿÿÿÿÿÿÿÿýÕ�~~~��~~~‘‘‘����‘‘‘��‘‘¡�‘¡‘‘¡¡¡¡‘¢‘¡¢¡¡¢‘¢¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢£¢¡¡¢££¢¡£¢¡¡¢¢¢¢¢¢£«ëÿÿÿýÛ¦¢££¦¢£¦¢¢£££¦££¦££«££¦¦©¦£¢££¦£¦££¦¦¦¢££££££¦££¦££££££¦£¢£££¢£¦££¢¢££¢¢£¦£££££¢¥Úûÿÿýꨢ¢¡¢¢¡¢££¡¡¢¡¡¡¡¡¡¢¢¢¡¡¡‘¡¡¡¡¡‘¡‘‘¡‘�‘‘‘�‘¡‘‘�‘‘‘~~��~�~€‘‘~~€~~€}~}~€}~}}~}}}}�ò÷�œ÷ßw||}}||vw}wvw}}vvvw}vv|}wvvvvvvvwvvvvvvvvvpppppppoooppoolppolooouolloloollllCCoClllllllllCCCltllCCCCCCCCÎÿúƒÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÃþÿÿþÆ$!!9!! !! !!!!!!               vØüþþþýþýþÿþþþþþþÿþþþæxœæüüüýüýýüüýÿÿÿÿÿÿÿÿýÕ~~�~~~~�~‘‘�‘����‘‘�‘‘‘‘�‘¡‘¡¡‘¡¡¡¡¡‘‘¢¡¡‘¡¡‘‘¡¡¡¡¡¡¡¢¢¡¡¢¢¡¡¡¡£¢¢¢¢¢¡¡¢¢¢¢¢¢¦¦ëÿÿÿýÛ£¢£¦¦££¦¢¢£¦£«¦£¦££«¦££¦¦£¦£££¦¦¦¦££¦«£¦¦¦£££¦¦£¦£££¦¢¦¦££££¢¢£¦££££¦£¡¢££££¡¢£¨ëþÿÿùÝ¢¡¡¢¡¢¡¢¢¡¡¡¢¢¡¡¡¡¡¡¢¢¢¢¡¡‘‘‘¡¡¡‘¡‘‘¡‘‘‘‘‘��¡‘‘‘‘‘‘‘~�‘~‘~�‘~�€~~~�}}}~~~}}}~}}}}}}}}�ô÷�™÷æ}||}}www}}|v|}|vwvw|vv||wvvvvvvp|wvvvpwvpppppvopopoovpoooppooppopoloolllloolllllllllCllllllCClClCCCCCCCzúþÉ{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÂþÿÿþÆ9!!!!! !!!!!!! !! !  !   !    !vÕûþþýþýþþÿþþþþþþþþþþæx  œèüüüüüýýüüýÿÿÿÿÿÿÿÿüÓ�Ž~‘~~�‘~‘‘~��‘‘‘�‘‘‘‘‘‘��¡‘¡‘~¡‘‘‘¡‘‘¡¡‘‘¡‘¡¡¡¡‘¡¢£¡¢¡¡¡¡¡¡¢¢¡¡££££¢¡¡¢¢£¦¢¢¢£ëÿÿÿýÛ£££¦¦£¦¦¦££¦¦«¦¢¦¦£££¦£¦£¢£¦«¦«££¦££¦«¦««¦££¢££¦¦¦¦¦¦£££¢£¦¢¢¢¢¢¢£¦¢£¢¢¡¢¢¢¡¢¡¬õÿÿþ먡¡¡¢¡¡¡¢£¡¡¡¡¢¡¡¡¡¡¢‘¡¡¡¡¡‘¡‘‘¡¡¡¡‘‘‘‘¡¡‘�‘~�‘‘��‘‘‘‘‘�‘‘���~€‘��~���}}~}€}}}~~}}}}�ôú�™÷é}}|}}}}wwvwvv|}}wv|vvvw|vwvvwpvvvwvpvvvvpppppppvvpvvooooopopooolooplloloolllllllCllCllCCllClCCCCCCCCCÎÿñxÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$=!ÂþÿÿþÆ9!!!!!!!!! !! !!!!!!          pÕûþþýþýþþÿþþþþþþÿþþþàx œâüüýüýüýýýüÿÿÿÿÿÿÿÿüÕ�}€‘~‘����~~��~€‘‘‘‘‘¡‘¡‘‘‘�‘¡‘¡¢¡‘¡¡¡¡¡¢¢¡¡¡¢‘¡¡¡¢¡¡¢¡¡¢¢¡¡¢¢¢¢¢¢£¢¡¢¢£¦£££¢¢¢ëÿÿÿýÛ££¢¡¢¢¢¢£¢£¦¦££¦¦££¦£¢¢«««¢¢£¦¦¢¦¦£££££££££££¦££¢¦¦¦£¦«£££¦££¦£££¢¢¢£¦££¦££££Ôøÿÿý樣¢¢¡¡¢¢¡¢¢¡¢¡¡¡¡¢¡‘¡¡‘‘¡¡¡¡‘¡¡¡‘‘¡¡‘¡¡‘¡¡‘‘¡‘¡‘‘‘‘‘��~‘�~‘}~�~‘�}}~‘‘�‘€}~}~}}}}}}}}‘é÷��õõ�}}w}}||}|}}}wv||}}vv|wv|vv|wvwppvpvvvvvvvwvpvvvvvooovvplooloolooooolololllllllllllllColCllCClCCCC?CCCyúý–{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!$!! !! ! !            |Øüþýþýþþþÿþþþþþþþþþþæx   œæüüüýýüüüüüþÿÿÿÿÿÿÿýÕ�~�~�~~‘‘��~~�¡‘‘‘‘¡‘�‘�‘‘¡¡‘�‘‘‘‘¢¡¡‘¡¡¡¡¡¡£¡¢¢¡¡¡¡¡¡¢¢¡¡¡¢¢¢¡¡¢£¢¢¢¢¡£¦¢¦£¢£ëÿÿÿýÛ££¢£¢££££¦££¢¢£££¦¦¦¦¦¦¦¦¦¦£¦¦«£¦¦¦£¦¦«££££¦¦¦¦¦££££¢£¦££¢¢££¦£¢¦¢¢££¢££¢¢¢¢­ûÿÿøÝ¦££¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¢‘‘¡¡‘¡‘¡‘‘¡¡‘‘‘¡¡‘‘‘‘¡‘‘�‘�€�‘‘‘‘~��~~~~�~~}~}~€}}}}€~~}~}}}}}}‘èù��õõ�|}w}}wvs}}v|wwvw||wvvvv||vvvvwvvvpvvvvpvpwvovppopooooopo|plvooooooploolllollllllllllCllllClllCCCClCllÌþátÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ$!!!!!!!!! ! !!!  !             uÕûýýþýþþþÿþþþþþþþþþþàx  œæüüüüüüýüüýÿÿÿÿÿÿÿÿýÕ‘�~~�~~~‘�‘‘�‘‘‘‘‘�€‘‘�¡‘‘‘¡¡‘�¡‘�¡¡¡¡‘¡¡¡¡¡‘¡¡¢¢¡¡¡¡¡¡¢£¡¢¢¡¢¡¡¡¢¢¢¢¢¢¡££¢£¦££ëÿÿÿýÛ¦¢£¦¢¦££¦¦¦£¢££££¦«£««¦¦¦£££¦¦£¦¦¦¦£¦«¦¦¦«£¦«¦£¦¦££¢¢¦¦£££££¢¦£¢£¦££¦¢¢¢¢¢£¢äþÿõ­£££££¢¡¡¡¡£¢¡¡¡¡¢¡¡‘¡¡¡¢¢¡¡¡‘¡¡¡¡¡¡‘‘‘¡‘‘‘‘‘¡‘¡‘‘¡‘��‘�‘‘����‘��€~~‘‘~€}~~~�~}}~}}}}}}}}}€è÷�™õ÷�}}|}}wv|}wvw}}w}|v|vvpvwwvpvpvvv|ppvvppppppppppopppooopowplpoppoooooooollollllllllollClllCClCClClCCCxóúƒzüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÈ9!!!!!!!! !!! !! ! !!        !   pÓûþþýþýþþÿþþþþþþþþþþàx   œæüüýüüüýüüýÿÿÿÿÿÿÿÿüÕ‘‘~~~�~�‘�‘‘�¡‘‘��‘�‘¡‘¡¡‘‘‘�‘‘¡¡¡¡‘‘‘‘¡¡¡¡¡‘‘¡¡‘¡¢¢¡¡¡¢£¡¡¢¢¢¢¡¡£¢¢¢¡¢¢¢¢¢¡¢¢¢ëÿÿÿý­¦¦¦££££¦¦¦¦¦£¦£££««¢¦¦£¢¦£¦££¦££¦¦¦¦£¦£«©¦£¦£¦¢£¦¦££¦«¦¦££££££¢£¦¦£¡¢¢¢£¢££¢ÔþþÚ¢¡¡¢¢£¢¡¢¢¡££¡£¢¡¢¡¢¡¢¡¡‘¡¡‘‘¡¡¡¡¡¡¡‘‘‘¡¡¡‘‘¡‘¡‘‘‘�‘��¡�‘��~~~‘‘~��~~~‘~~}��~}}~€~}}}}~}}}}}èõ��ôú™}||}}}}}}w||www||wwvv|}}|vvpvwppvvvppvvpoopvovvpvvvppvolpolloooloooolloopplloollllllllCllCllClCClCCCÉýÎtßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ! !!!! !! !!! !!!               !!vØûþþýþýþþÿþþþþþþþþþþàx  œèüüüüüüüýüýÿÿÿÿÿÿÿÿýÕ�~��~~~~�~�‘~~���¡‘�‘‘¡¡‘‘¡¡¡¡‘‘¡¢¡¡¡¡¡¡¡¡¡¡¢¢¢¡¡¡¡¢¢¡¡¡¢¡¢¡¡¢££¢¢£¢¢¢¡££¢¢¡¢¦«íÿÿÿýÛ¦¦££££¦££¦£¦¦¦£££¦¦£¦£¦¦¦®©«¦¦¦£££££¦¦¦¦¦££¢£©¦£¢«¦¦¦¦£¢¢£¢££¢£¦£££¢¦¦¦¦£¢£¢«ëÿø¨¦¡¢¡¡¢¢¢¢¡¡¢¡¢¡¡¢¢¡¡¢¡¡‘¡‘‘¡¡¡¡¡‘‘¡¡‘‘¡¡‘‘‘‘‘��‘¡‘¡‘€¡��‘‘��~~~~~~~}�~~~~€~~€~~}}}~}}}~}}�èôéúš}}}}}|w|}}}||w|wv|}}wvwvp|||pvppvppppvvvpvvpoppppooopppooooopoooopollllloollCllllplllllCCClCClCCCCCzò÷z”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÂþÿÿþÆ!!!!!!!!!! ! ! !!  !      !      pÕûýýþýþýþÿþþþþþþþþþþàx  œèüüýüüüüüüüÿÿÿÿÿÿÿÿýÕ�~~~�‘�~~~�‘‘��‘�‘‘~‘‘�‘��‘‘¡¡¡‘¡¡‘¡¡‘¡¡¡¡‘¡¡¡¡¡¢¡¡¢¡¢¡¡£¡¡¡¡¡¢¢£¢¢£¢¢¡¦£¢¢¢£¦¦ëÿÿÿýÛ£¦££¦¦££¦¦££«¦¦£££¦¦££¦¦¦¦£¦¦¦¦£££¦¦¦££¦«¦¦¦£¦¦££©¦¦¦££¦¦¦££¢£££¢££¢£££¢££¡¡£­ýÿ㣢£¢¢¢¡¢¢£¡¡£¢¡¡¢¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘¡‘‘‘‘�¡¡~‘‘¡‘~�‘�~‘~~‘‘~�‘��‘�}~���~~~~}~}}}~~}}}}}}}�ôéèýÊ}}}~|}}|w}wvwww|vvw}wvvvv||vvvpwvp||pvvvpppvopppopppppopoooppoopoooooollloollllllllllllloCCClClCCCCÉýÉtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÂþÿÿþÆ$!!!!!!!!!!!!! ! !               !vÕûýýþýþýþÿþþþþþþþþþþæx    œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ�~~~�‘�~~�‘¡�‘‘‘�‘‘�‘‘�‘��‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¢¡£¢¡¡¢¢¡£¡¡¡¡¢¢¢£¢¡¢¡¢¢¢¢¢¢£¦¦£ëÿÿÿýÔ¢££¦¦¦££¦¦££¦¦¦«££¦¦¦¦¦¦¦£¦¢¦¦¦¦¦£¦¦¦¦¦¦¦««¦¦£¦££¦¦¦££¦¦¦¦¦£¢¦£¢¢££££££¢£¢¢¢£¢êÿû­¢£¢££¢¢¡¢¡¡££¢¡¡¢¡¡¡¡¡¡¢¡¡‘¡¡¡¡‘¡¡¡‘‘‘¡‘‘‘‘‘¡‘�‘‘‘~�‘‘���~‘‘�‘‘�‘‘‘~~€~‘�~}}~}~}}}}}}}}}}}ž÷èæÿâ�}}~}||}|vvw}ww|vvv}vvp|vpvvvvp|wvw|pppvppppvvvpppppvpooopooooopoloooollloollllooClllCCllCCCCllCCCxòòx”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!=ÃþÿÿþÆ9!!!! !!!! !! !!            !vÕûþþýþýýþþþþþþþþþþþþàx    œâüüüüüüüýüüÿÿÿÿÿÿÿÿüÓ�~~‘~~~~‘‘¡‘~�‘¡‘‘‘‘�‘¡¡¡�¡¡¡�‘¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¢¡¡¢¡¡¢¢¡¡¡¢¢¡¢¡¡¢£¢¢¢¢¦¢¢£¢¢¢£¦ëÿÿÿýÛ£££¦£¢¢£¦«¦¦¦¢£«©®¦¢¦«¦¢¦«¦¦¦¦¦©¦¦«¦¦¦¦££££¦¦£¦¦££¦¦£¦«¦£££¦£¦¦£¢£«¦¦¦¢£¢¢¢¡¢£­ûÿ뢣¢¡¡¢¢¡¢¡¡¢¢¡¡¡¢¡‘¡¡¡¡¢¡¡‘‘¡¡¡¡¡¡‘¡‘‘‘‘‘‘¡‘‘‘‘¡¡¡‘‘¡¡‘�‘‘‘‘‘�~~~�~�~~‘�~}�~~~}}~}}}}}}}�æý×w}Òüýæœ}w}}}|vvv|wv}}}vvvvvvvpvvvwpvvvvppvvpwppppppopooooooppoooooolllolllopolllllloplllCllClCllllCCClÌüÉtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!!!!!!!!!! !! !         !     !pÕûþþýþýýþþþþþþþþþþþþàx   œèüüüüýüüüüüÿÿÿÿÿÿÿÿýÕ�~~~~��~��‘‘‘‘�‘~‘‘¡‘�‘‘‘¡‘¡¡‘�¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¢¢¡¡¢£¢£¡¡¢¢¢¢¢¡£¢££¢¢££¢£¢¢£ëÿÿÿýÛ¦¦¦£«¦£¢£¦¦¦«£££¦¦¦£¦¦£¢©«£©¦££¦££¦«£¦¦£¦¦£¦©£¦«©£££¦¦¦¦££¦££££££¦£¢¢¢£££££¢¦£¢äÿþݦ¢¢¢¡¡¡¢¡¢¢¡¡¡¢£¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘�¡¡¡¡¡�‘‘¡�‘‘‘‘‘‘‘‘‘��‘‘��~���~~~�‘}~~‘��~}€‘}}~~}}}žèüè™}}×÷þúèÊ�}}}}}}}}wpwwpv}}|}|vv}vvwppppvvvvvpvpppppvppppoooooopoooopollopolllolollllllllClllllClCClllC{òñu›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ9!!!!!!! !! !! ! !  !          oÕûýýþýýýþÿþþþþþþþþþþæ_    œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ‘~~~~~‘‘~~~�‘‘�‘‘‘‘‘¡‘¡�‘¡‘¡‘‘�¡¡‘‘¡¡¡‘¡¡¢‘¡¡¢¡¡¡¢¡¢¡¡¢£¢¢¡¡£¢¢¢¢££¡££¢£££¢¦££«ëÿÿÿýÛ££££¦¦£££££££¦¦£¦¦¦£««¦£¦«¦¦¦¦¦¦¦¦¦¦¦«¦¦¦¦£¦¦¦¦¦©££¦¦¦£££¦¦¦££¦¦¦££££££¢¢££¢£¦£¨øÿõ¨¢¢£¡¡¡£¢¢¢¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘¡¢‘‘‘‘‘¡¡‘‘‘‘¡��‘�‘¡~‘��~~~~�~~~€~�}~~‘~}~~~}}}~}™Ùúûߘ}}}}™ÙõüýòÙœw||}}wvww|w|w}wvvv}vvwvvvvvvvpppppppvpppoppoooooooooloplloooolllllllllllllllllllColCCCClCËú›tçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÈ9!!!!!!!! !!!! ! ! !           oÕûýýþþýýþÿþþþþþþþþþþàx    œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ‘�~~~~‘¡‘~~~~��¡‘��‘‘‘‘‘‘‘‘�‘¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¢¢¡¡¢¢¡¢¢£¢¢¡¢£¢¡£££¦¢¢£¦£¦«ëÿÿÿýÛ£¢¢£©££¦¦£££¦¦¦£¦¦«£¦©¦«¦¦¦¦¦«¦©«¦«¦¦¦«®«¦£¦¦¦¦¦«££¦¦¦££¦¦¦¦£¦¦¦¦££¦£¦£¡£££££¦££äþþ㣢£¡¡¢¦¢¡¢¢¡¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘¡¡‘¡¡‘¡‘‘‘‘‘¡¡‘‘‘‘¡�‘¡‘‘‘�‘€��~~~~~‘~~~‘~~�}}}~}}~~�ÓôüõÓ�}}}w}}}�Òà÷üúèÒ�}}wvww}wvpvv}vvvwvvvwwwvppvpvvppppvpoooppppoooooopoloollollllllollClolCllllCClCollCCCCxòât›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÈ9!!!!!!!!!!!!! !!!           ! pÕûþþýþýýþþþþþþþþþþþþàx   œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÔŸ�~~�~~‘‘‘�‘�~�¡‘�~‘‘‘‘‘‘¡¡‘¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¢¢¡£¢¢¢¡¢¡¡¡¡¢£££££¢¡¢¢¢¢¦ëÿÿÿýÛ£¦«£¦¢£¦®¦¦¦««¦¦®©¦£¦¦¦©¦¦®®«¦£¦¦¦¦£¦¦¦©®©£«¦££££¦¦¦¦¦¦£¦¦¦¦¢££¦¦££¦£¢£¢¢¢¢£¢¢¡¡¨ùÿû¨¢£££¡¢¡¡¢¢¡¡¡¡£¢¡¡‘¡¡¢¢‘¡¡¡‘¡¡‘‘�‘‘�‘‘¡‘¡‘‘‘~�‘‘�‘�‘�‘‘~~~‘��~‘�}~�‘‘�~~‘€}}}~~‘~~Òéû÷ß™}~€€�€}}w}˜ÊèûüõÙ™w}vvvwwvvpwvvpvvppwvpvppvvpppppoppovpvpvopooloooooooolooollpoollllllllllllllCllllClCÌú”uñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ9!!!!!!!!!!  ! !!! !            !vÕûýýýýýýþÿþþþþþþþþþþàx     œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ��‘~��‘�~�‘‘�~�‘¡‘‘‘‘¡¡‘‘¡¡¡‘¡‘¡¡¡¡¡¡‘¡¡¡¢¢¡¡¡¢£¡¡¢£¢¡¡¡¡¢¢¢¡¡¢£¦¢¡¢¢¢£¢¡£¢¢¦¦¦ëÿÿÿýÛ£££¦¦£¦¦¦¦££¦©¦££¦«£«¦©®©©¦«¦¦¦£¦®¦¢£¦¦¦¦©£¦©£¦¦££¦¦¦¦¦££¦¦¦£¦¦££¦¦£££¦¦££¢££¢¢¢£Öþÿ뢢£¢¡¡¢¡¢¦£¢¢¢¡¢¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡‘�‘‘‘‘‘‘~~‘~~�~~‘‘~‘‘‘~~�~~‘~~�~~~}~šàúúàš™ÓÙàèôéàÙž™}}�§ßõûõÙ™}}|v}wv|}vvvwwvpvpvvvvpvopvppoppppopopoopoooppolloooloooloolllllllllllllllllCClCCzòáuÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÃþÿÿþÆ9!!!!!!! !! !            !vÕûþþýýýýþÿþþþþþþþþþþàx    œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÓ~‘�~~‘‘~~‘‘‘‘��‘‘‘‘‘‘‘‘¡¡¡‘¡‘‘¡¡¡‘¡¡¡‘¡¡¡¡¢¡¡¡¢¡‘¡¢£¡¡¡¢¡¢¢¢¢¢¢¢«£¢¢¡¢¢¢£££££££ëÿÿÿýÛ¦¦£¦££«¦£¦¦££¦¦££«©¦¦¦¦®««©¦¦©©¦¦®¦¦¦««¦¦££¦©£««¦£¦¦¦¦¦¦£¦¦¦¦¦¦£££¦¦¢¦¦¦¢£¦¢££££¢£íÿýÛ¡¢££¡¢¢¡¢¢£¢¢¡¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘�‘‘‘‘‘‘‘���~�‘‘‘�~~~�~~�~�}}}~�}�×÷÷æž}�Óæúýþýýýýþýý÷æÓ™}}˜×òüõßœ}v|w|||vvvvwwpvvwppvpvvovvpppvpopopopoooooooolooooooolloolllllllllCllCCCllCClllÌ÷ƒyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÂþÿÿþÆ!!!!!! !!! !! !  ! !             vÕûýýýýýýþÿþþþþþþþþþþàx     œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÓ�‘~~�~~~~‘‘‘¡‘�‘‘��~~�‘‘‘‘�¡¡‘¡¡¡‘¢¡¡¡¡¡‘¡¢¡¡¡¢¡¡¡¡¢¡¡¢¢¡¢¢£££¢¢£££¡¢££¢££££¢¢£ëÿÿÿýÛ¦¦¦¦£¦¦£¦©¦¦¦¦¦£¦©©¦¦¦¦¦¦£©¦¦®©©®©«©©®¦¦¦¦¦©©£¦¦¦«¦¦¦¦£¦¦¦¦££¦¦¦£££¦£¦£¢¢££¡¢£¢¡¡¢Ôûÿõ¥¢£££¡¢¡¡¡¡‘¢¢¡¢¡¡¡¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘�¡¡‘�‘¡‘‘¡¡¡�‘¡‘‘‘‘¡‘~~~��~~~~~}}}~~‘§èüôÒ‘�ÓôýþýñÙ×ÒÒÒÓàéúýýõÙš}w�Óôý÷ß™wvvvvpvvvvvvvvvpvvvvvpvvpvwvvvppvpoooloolooooollopollllooollllClCllClCCCClll{òÞtÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!!!!!!!!!!!!!!! ! !             pÕûýþýýýýþþþþþþþþþþþþàx       œâüüüüüüüüüüþÿÿÿÿÿÿÿýÕ�‘‘~�‘‘‘�~~~~~�‘�~�~‘¡¡¡¡‘�‘¡¢¡¡‘¡¢¡¡‘¡¡¡¡¡‘‘¡¡¢¢££¢¢¡¡££¢¢¢¢¢¢¡¢££¡¢££££¦££££¦ëÿÿÿýÛ£¦£££££££¦££©©¦¦®«¦£¦¦©££¦¦¦©¦¦¦©®«©¦«¦©«¦¦¦¦«¦£¦¦¦¦¦¦£££¢£¦£¦¦££¦£££¦££¦¦¦£¦££££££êÿþÚ£¢¡¢¡¢¡¡¡¡¡¢¡‘¢‘¡¡¡¡¡£¡¡‘‘¡‘¡¡¡‘‘‘‘¡¡¡¡¡¡¡¡‘‘��‘�‘‘‘‘€~‘��‘}~‘~~‘�‘‘~~}}�Ùûüàš}žèüþ÷àž�€~|v}~�šÒèøýúâÇw}�Êôüõ×�wwv|vpvv|vvpppvvvvvpppppvpvpopopopppvpovpolooloollolllloolollollollllllCCCÌò{y÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ9!! !!!! !!!! ! !             oÕûýþýýýýþþþþþþþþþþþþàx      œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ�~~~~‘‘���‘~~‘‘��‘‘‘¡¡¡¡¡¡‘¡‘¡¡‘¡¡¡‘¡‘¢¡¡¢¢¢¡¡¡¡¡¢¢¢¡¡¡¢£¢¡¡¡¢££¢£¦£¢¢¢£££¢£££«ëÿÿÿþÜ£¦££¦££££¦¦¦£¦££®««£¦®©¦¦««¦¦¦®®©«¦¦¦¦¦¦¦¦®«¦®«¦¦£¦¦©¦££¦££¦£££££«£¢£££¢££££¦£¢¦£¦£¨øÿû­¢¡£¢¢¢¢¡¡¢¡¡¡£¡¡¡¢¡¡¢¡¡‘‘¡¡¡¡‘¡¡¡‘‘¡‘�‘¡‘¡‘‘‘‘‘‘��‘‘�~�~�‘‘€~��~~�~~�~€šèýõÒ‘€™àûýò×™}}}}}}|}}}œÙòýüèÓ�}w�×úüñÇv|wvwvvpvvpv|vppppvvpovpppppopoppppoopollollolloolllloollllollClCllCCCl{òÌtÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!!!!!! !  !          !pÕûýýýýýýþþþþþþþþþþþýàx          œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ~~~~~~�‘��~�‘¡‘‘‘‘‘�¡¡‘‘‘‘¡¡¡‘�‘¡¡¡¡¡¡¡¡¡¢¢¢¢¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¡¢£££££££¢¢££¢¢£¦££ëÿÿÿþܦ£¦£££¦¦£¦¦¦£¦¦£©¦¦£«©¦©©©¦®¦¦«««¦¦¦¦¦©««£®®©¦¦¦£¦£¦©¦£¦¦¦¦¦£¢££¦¦£¢¦££¢£££££££££££¢Ýþÿ룢¢¢¢£¡¡¡¢¡¡¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘‘��‘‘‘‘�‘‘‘‘‘��‘~�‘‘€¡����€~‘}~€~€Óùý虑Óõþ÷×�}}}}}}}}}|}}w}}}}˜Êñúýõ×�w}žâüýâ™}wvw|vpvvppvvppvvpvpovpppppppoopooppollopololllolollllllllllllllCClCllÌñ{{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!$!ÃþÿÿþÆ9!!!!!!!!!!!! !              !pÕûýýýýýýþÿþþþþþþþþþþæx       œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕŽ�‘‘�~~�‘‘~�‘‘¡¡‘�‘�¡‘‘�‘‘‘¡‘¡¡‘‘�¡¡¡‘¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¢¢£¡££¢¢¡¢££¢¢£££¦£££¦¦¦£ëÿÿÿýÛ¦¦¦¦¦¦©©¦©¦¦©¦«¦££¦¦¦¦¦®¦©¦®©¦¦££¦¦¦¦£®®®©®®¦£££¦¦¦«¦£¦©¦¦©¦¦££¦¦£¦¦«££¡¢£¦¦¢¢¢¢¢¢¦£«õÿýÛ¢¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¢¡‘¡¡‘¡‘‘�¡‘‘‘‘¡‘‘‘‘‘~�‘�‘�~�~‘‘�~~�~~~}~�~‘����ÙüúÙ‘žèüýâž~}}}}}}}}|}}}}}}}w†Çèúýõ×�wÊòý÷ÊwpvvvvppvpppvvvvpvpvppvpppvppppoppllloooppolllllllllllloolCClllCCCll{ñÉtÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$$ÃþÿÿþÆ9!!!!!!!  !! !!           !pÕûýýýýýýþþþþþþþþþþþýàx             œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ������~�‘‘‘‘‘�‘‘�‘¡€‘¡¡�¡¡¡‘¡¡¡¡¢¡¢‘¡¡¢¡¡¡¡¢¢‘¡¡¢¡¡¢¢¢¢¡¢¢££¡¢¢¢¡¢¢¢¢¢££££¢££££ëÿÿÿýܦ££££«©¦£©©£®¦¦®«¦«®©£¦®¦«©¦¦©®¦©©«®¦¦©¦¦¦¦¦®©¦¦¦¦¦£¦©©¦££¦©¦£¦¦©¦£££¢£££¦£¢¢££¢£¢¢¢¢­ýÿõ¦¡¢£¡¡¡¡¢¢¢¢¢¡¡¡‘¡¡¡¡¡¡‘¡‘‘‘¡¡‘¢¡¡‘‘‘‘‘~‘¡‘¡‘‘‘€~�~~~~~~‘¡�~}~�~}~¤àýõ§€�×ùþõÓ€}}}}}}€}}}}}}}}}}}|}|||}œßûýôÊw˜ßüüÞ}vw}vv|v|vpvpvvppopopoppopoloopoolopoooooopollooploolllllllllllCCllÌñyƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!$ÃþÿÿþÆ!!!!!! !!!! !!           pÕûýýýýýýþþþþþþþþþþþýàx       œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ��‘�~���~�¡¡‘���~‘¡‘�‘‘¡¡¡¡‘¡¡‘¡¡¡¡‘¡¡¡¡¡¢¡¡¢‘¡¡£¡¡¢¢¡¡¢¢£££¢¢¢¢¢¢¢£¢¢¢£££¢¦££¦ëÿÿÿýÛ¦£¦££¦¦¦¦¦¦£«¦¦®«¦¦©©¦¦©®©¦¦©©¦®®®£©©¦®¦¦¦¦¦¦©¦®©«¦¦¦¦£££¦¦£¦£££¦¦¦¦££££¦££¢£££¢£¢¡£¢¡æÿþÝ¡¢¢¡¡¡¢£¡¡¡¢¡¡¢¡¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡‘‘‘¡‘‘‘‘‘¡‘‘�‘~���‘‘�‘‘‘‘�~~~~~�™íþôš€šèþýà™€}}~}}}~}}|}}}|w}}}wv}v|w}|}žèüüèžwÊ÷ýâ�w|vvvvvvvvopppvpoovpopopvooppoooooooloooooollllllllllllllllCCClC{ñÇußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ$!!!!! !!!!! ! !  !         pÕûýýýýýýþþýþþþþþþþþýàx        œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ�~‘~~~‘‘~~‘‘‘~�‘�‘‘‘‘�‘¡¡‘¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¢¡¢¡¡¡¢¢¡¡¡¢¢¢£¢¢£¢¢¢¢£¢£££££¡£¦££££«ëÿÿÿýÛ¦«££¦££¦®¦££¦©¦¦©¦¦©©©¦©®¦¦¦®««®®®¦«®©¦©®««¦£¦¦©¦««®¦£££«®¦£¦££££¦«£¦¦¦¦£££££¢¢¡££¡£¢¡¨øÿûª££¢¡¡¢£¢¡‘¢¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘¡‘‘�‘¡¡����‘��‘‘‘�‘‘‘‘�~~�‘‘šõþ虀Ó÷þõÓ€}~}~~~}}}}}}}s|w}|w}|}w|}w|vv|w|žèýûâœwœôþôœvvvvpvvvppppvvvopppvpopvopppoooooppllopoppllllllllllllllllCClllÌáy”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!! !!!!!!! ! !!            pÕûýýýýýýþþþýþþþþþþþýàx              �âüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ��~�~‘‘‘‘�~~~�‘¡¡¡¡‘‘¡¡¡¡‘~¡¡¡¡¢¡‘¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¢£¡¡¢¡¢¢¡¡£¢¡¢£££¢¡¢£¢¢£££¢££¦ëÿÿÿýÔ¦®£¦«¦££¦¦£©©£©£«¦«©®«£¦¦£¦¦®®®®©®®®©««¦¦¦©®®«®¦££©«¦££££¦©©®¦£££££¢£££¦£¦¦¦££¢¡¢¢¢¦££¦Ýþÿ棢¢¡¡¡£¡¡¢££¡¢¡¡¡¡‘‘¡¡‘‘‘¡¡¡¡¡¡‘‘‘‘‘‘¡‘~~‘‘‘¡¡���}~��‘~~�}~‘~¤ôþ褑Ùûþè™}}~}}}}}}||}~}}}}}}|}w||w}}}}|w|||}�ÒòþúÙ�˜èþ÷œwppv|pppp|ppopovppvvppvooloppoopploppllooololClllllllllllllllƒñ�tâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÈ9!!!!!!!!!!!!!!!             oÓûýýýýýýþþýþþþþþþþþýàx             œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ�~~~~~~~~�‘¡‘��‘�����‘‘‘‘‘‘¡¡‘¡¡¡¡¡‘‘¡¢¡¡¡¡¡‘¢¡¢¡¡¢¡¡¢¡¢¡¢££¡¢¢¦£££££¢¡££££££££ëÿÿÿýÛ£¦«££¦¦¦£¦¦¦¦¦¦¦®®«©©¦©®©®¦£«««©«¦®¦¦®®©©©¦¦¦¦®«¦££¦©©¦£¦£££¦¦¦££¦££«££«£££¦¢£¦¢££¢¢¢¡¢¥õÿý­£¦¢¡¡£¢£¢¡¢¢¡¡¡¡¢¡¡¡¡¡‘¡¡¡‘‘¡¡‘¡¡¡¡¡¡‘‘¡‘��‘‘��¡‘~‘~~~~�‘~�~¤èþôš¤èþýÙ�~~~~}~}}}}}~}}|}~~}}}w}}}}|}}}v||w�ßûþòʘñÿ÷œvppvpvvp|w|vppoppopooplopopppploollllllllllllllllllllllCCCClÞßy›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!! !! ! ! !!   !        pÕûýýýýýýþþýþþþþþþþþýàx               œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ�~~�~~��~���¡�~‘‘‘‘�‘‘‘¡�‘¡¡¡‘‘¡¡‘¡¡¡¡¢¡¡¡¡¡¡£¡¡¢¡¡¡¡¢¢¢¡¢£¢¡¢¢¢¢££¢¦£¢£££££££¦ëÿÿÿýÛ¦¦«¦£¦¦¦££¦¦¦¦¦®«¦¦©¦©®¦«©¦©©¦©¦©©®¦¦®®¦¦®©««¦©«©«£¦©©¦£¦¦¦¦¢£¦¦£¦¦££££££¢£¦¢£¦¢¢£¦£¢¢£¡­þÿõ¦¢£¢¢¡¢¢¡¢¡¡¡¡¡¡¡¡¡¡¢¡¡‘¡¡¡¡¡‘‘¡‘¡¡‘‘‘¡‘‘‘�‘‘‘~‘‘�‘�~~‘~~~€‘æþ÷š§õþ÷Ó€~�~}}}}}}~}}}}}}}}||}}}}}||}}wvw}}vvvvvwžôþýòüÿÿòœvvvvvpppvvvvpopppopppoopopoopooollllolllllolllollllllClCCC”ñ›uçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ!!!! !! ! ! !!!!! !           !pÕûýýýýýýþþþýýþýþþþþýàx                      œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÓ�~����‘¡�~~�����‘‘‘¡¡¡‘‘�‘‘¡‘‘‘¡‘‘¡¡¡‘¡¡¡¢¡¡¢¢¢¡¡¡¢£¡¡££¢¡¢¢¡£¢¡¢£¢¢¦¦£¦££¢£¦¦«ëÿÿÿýÜ«¦¦¦¦©¦¦¦¦¦¦®¦«®£¦¦¦©©©¦¦«®®©¦®¦©©«©©®«©©®©©®«©¦¦¦¦¦¦«¦£¦®©¦£££«¦¦££££¦££¢£¦££¦£¢££££££¡¡ëÿþÚ¡¢££¡¡¡¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘¡‘‘‘~�‘‘‘‘¡‘‘‘‘�‘‘~‘��‘‘~~~§þÿÓÓùþôš~€}~}}}}~}}}}}}}}}}||}}}}||vw|vv||vvw|vvvw�Þúÿÿÿÿÿ÷Çvv|ppppppvvpovpovvppppolpoooooopollpllollplllollClCllllluÞßu›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÅþÿÿþÆ!! !!!! !! ! ! ! ! !             vØûýýýýýýþþýýýþýþþþþýàx                        œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÓ�~~‘‘��‘‘¡‘‘��‘‘‘¡¡¡‘�¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡‘¡¡¢¢¡¡¢¡¡¡¢¡¢¢¡¢¡¢¢£¦£¡¢¢£££¦£¢¢¢£££££££¦ëÿÿÿýÛ¢£££¦«¦£®©®®¦£¦®£¦©¦«¦¦®®®®®«©«¦®®©¦¦®«¦®«¦®«©®¦©®®®©®¦££©£¦««¦«£££££¦¦££¦¦££££££¢¡¢¡¡¢¢£¨ûÿøª¡¢¢¡¡¢¢¡¢¡¢‘¡¡¡¢£¢¡‘¡‘¡‘‘‘‘‘�¡¡‘‘~‘¡¡‘‘‘‘����¡‘‘‘~~‘€‘‘~æÿÿ÷ýþæ‘~}~}}}}}}}~}}}}|}}}}}}}|www|}w}||vvvvw}}wv}wvw˜ßúþÿÿÿü×{vv||vvpppoopppvopppppopvollpoooollllllolllllllllllllll”ñ›yñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!!!!!!!! !! ! ! !     oÕûýýýýýýþþýýþýþýþþþýæx                 œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ�‘‘~~~‘¡¡‘��‘�‘¡¡‘‘¡‘¡¡‘�‘¡‘¡¢‘¡‘¡¡¡¡¢¡¡¡¡¡¢¢¡¡¢£¡¡¡¢£¢¢¢¢¢¢¡¢££¢¢¢£¦¢¢£¦¦££¦£¦ëÿÿÿþÜ£«¦¦¦£££©¦¦¦¦«¦¦¦®®©®©©®©©¦©®®©®©©®¦¦©®®®®¦¦¦¦¦¦£¦¦¦¦¦©¦£¦¦¦¦¦£££¦¦££¢£¦¦£¢¢££¢£¦£¢¦££¡¡¢¢Úþÿæ¡¡¡¢¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡‘¡¡¡‘‘‘¡¡¡¡¡‘‘¡‘‘���‘~~~‘‘�‘~�‘�‘šûÿÿÿûב~}}}}~€}~}}~}}}}s}}}}}}}}w||}}}v|www||}|v}wp|}˜ßúÿÿÿþñžwvvvvpvvv|vooppoopppoooooooollopplollloollllClollllCtßßyÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!!!!!!!!!! !  !           oÕûýýýýýýþþýýþýþýþþþýæ_                           œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÓ~‘‘�~�‘‘‘‘‘‘‘��¡‘‘‘‘‘¡¡‘¡‘¡‘¡¡‘¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢¢¢¢¡¡¡¢¢¢¡£¢¢¢¡¡£££££¢££¢££¦¦£¦¦¦ëÿÿÿþÛ«£¦¦££¦¦«©¦£¦¦««©®®¦®®®®©©©®®®®®«®®¦©®®©©©®¦¦¦¦©¦££¦©£«¦¦©¦¦«££££¦¦££££«£¢¢£¦£¢¦£¢£££££¢¢¢¥øÿý¨¡¡£¡¡¢¢¡¡‘¢¡¡¡¡¡¡¡¡¡¡‘¡¡‘¡¡¡‘¡‘‘¡‘‘‘‘‘�~‘‘‘����‘~��€�€€æÿÿþé§‘~}}~€}~}}}}}}}}}}}}}}}}}}}||}}}ww|wv|w|wwvv|vv}pw™èÿÿÿÿüâœwvvppvvvppopvplpvvooooppllooolollolloolllllllClllC–ñ›yòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!! !!!!  !!                pÕûýýýýýýþÿýýýýýþýýþýà_                                 œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÓ~‘�~~���~‘‘‘¡¡�‘�‘¡‘‘‘‘¡¡‘‘¡¡¡¡¢¡¡¡¡‘�‘¡¢¡¡¡¡¢¢¡¡¡¡¡£¢¢¢£¢££¢£¢¦¢££¢£¦£¢¢££¢£¦¦ëÿÿÿýÛ¦¦«¦¦¦«¦®®®¦¦©©©®««©©®©«®®¦®®®®®¦©®©®®©«¦¦«®®®¦©©££©©¦¦¦©©¦¦¦¦¦£££¦¦¦«¦£¢¢£¦¦¢¢£¢¡¢£¢¢¢£¢¦¢Üþÿí£¢¢¡££¡¢¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘��¡¡‘¡¡‘�‘��‘‘¡¡‘~~~‘~~€~~ÒýÿýÙ‘~~~~}~�}}}}}}}|}}}}v}}}}}v}}|vw}}}|w}vww}|vvv}vpv†âÿÿÿÿÿýç�wppppvvppvppopvvoppoolloolpolloollllllllllCCllluáßuÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!!!! ! !!            !pÕûýýýýýýþþýýýýýýýýþýà_                                        œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕŽ�‘‘�‘~~~���‘�‘‘�¡‘‘¡‘‘¡¡¡¡¡¡‘‘¡¡�¡¢¡¡¢¡¡¡¡‘¡¢¡¢¢¡£££¡¡¡¢¢¢¢¢¢¡£¢££¦££££¦£¦¢££¦ëÿÿÿýÛ£¦©®®©£¦©¦¦©«®©¦®©¦®®«®¦¦©©®¦¦©®®®«£®¯®®¦¦©¦«©¦«®©©¦¦£¦®®¦¦¦£¦«¦«¦££££££¦£¢¦££¢¢¢££¢££¢¦¦£¡£ëÿþÚ¢¡£¢¢¡¡¡¡¢¡¡¡¡¡¡¡‘‘¡¡¡‘¢¡¡‘¡¡‘‘¡¡‘�¡‘��~�‘‘‘~~‘~~~~�š÷ÿÿÙ‘‘‘€~~}~~}}}~}~}}}~}}}}}}w}|v}|vw}}}vwpvv|v||vpp||vwv|˜üÿÿÿÿÿÿýñÇwpppppopopppoolooopopollopoollooolllCloolCCll›ñ›{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÃþÿÿþÆ9! !!!! !!!  !!!        !  oÕûýýýýýýþþýýýþýþýþýýàx                                   œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ����~‘‘�~�‘�~‘¡‘‘��‘¡¡¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡‘¡£¡¢¢¢¡¡¡¢£¢¡£¢£££££¦¢££¢££££££¦ëÿÿÿþܦ£¦¦¦©££«¦¦£©®®¦©©©¦®«®®¦©«®®®¦®®©¦©«®¦®®©®®®¦¦©©¦®®©©©©«¦¦¦¢¦¦¦¦¦££¦££££¦£«££¦¦£¢¢¢££¡¢¢¢¢£Ûûÿû¨¡¢¡¡¡¢¡¡¢¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡‘‘¡‘‘‘¡‘��‘��‘‘¡��‘~~¡¬õÿÿûš~€�}�~}~}}~}}}~}}}}}}|}}}}}|}}w}}}|}ww|v|wwvvv}||v|vpvvvvwõÿÿÿÿÿÿÿÿþñÇwppoopooppoolpolpppolooooollllollllolClllluáßyÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! !!!! ! ! ! !            oÕûýýýýýýþþýýýýýýþþýýàx                                         œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ¡‘~~~~‘‘�~‘‘~‘¡‘‘‘‘�¡¡‘‘¡‘‘‘¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡¢¢¢¡¡£¡¢¢¡¡¡¡¢£¢¡££¦£££¢££££¢¢£¢£££¦ëÿÿÿþÛ£¦¦££¦¦¦©¦«©¦©©®£©®©®®©©©®®®®©¦®©©®¦¦©®®®©®®©®«©®£©®©©©«£«¦££¦¦¦£¦¦¦££¦¦£££¦¦££¦££¢¢££¢¢¢£¢££ãþÿë¡¢¡¡¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘¡‘‘‘‘‘�‘¡‘‘‘‘‘�€‘�€§æûÿÿÿõ¤�~~€€~}~~}~~}}}}}}}}}|}}}}}}}}}}w|w||||vw|vv|w|}vwvpvvvpwèÿÿÿÿÿÿÿÿÿÿþñÇyopvpoopplpoooooooooollllllllloolllCllll�ñ”ƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!! !!!! !  ! !       pÕûýýýýýýþþýýýýýýýýþýàx                                œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ�~��~~�‘�‘‘�~��¡¡¡‘‘‘¡‘‘‘��¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¢£¡¡¡¡¡¢£¦£¢¡£¦£¢££¢£££££££¢£«««ëÿÿÿýÛ¦¦£££©®®®©®®©£¦®¦®©©««¦¦®®®®®®®®©®®©®¦®©®¦©©£¦¦®®¦¦®¦¦¦££©®®©©¦£¦¦«£££££¡¢£¢££¢¡¢¦£££¡£££¢£¢¡¥õÿý­¡¢£¢¡¢¢¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘���¡‘¡‘‘‘‘�‘¡‘‘‘¡‘~�‘~�¤ÚíÙ÷ÿÿÿô‘~��~�}€}}~�~~~}}}}}}}}~}}~}}}||}}}}}w}}wvvwvpppvvv|w||}}vvwßÿÿÿÿÿÿÿÿÿÿÿÿþñÇypvvooppollloooollloloollllloollllClCuáÏuÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ! !!!!!!!!!    !      oÕûýýýýýýþþýýýýýýýýýýàx                                                    œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ‘~�‘¡�~¡�‘�‘‘‘‘¡¡‘‘¡�‘¡¡‘‘¡�¡¢¢‘‘¡‘¡¢¡¢¡¡¡‘¡¡¡¡¡¢¡¢¢£¢¡¢££¢¢¢¢¡¡£££¢¢££££££©£££ëÿÿÿýÜ«¦£¦©¦£¦¦¦©«®«¦®®®®®«¦©®®®¦¦©¦¦®¯¯®®©©®«¦®®®®®©¦¦¦®¦¦¦«®¦£¦©¦¦¦¦©££¦©¦£££¦¦¢££¦£¢¢£¢¢¢¢¡¡¡¢¢¡¡Ôþÿù¥¡¡¡¡¡‘¡¡¡¡¡‘‘‘¢¢¡¡‘‘¡‘¡¡¡¡�‘¡¡‘�‘�~~~‘‘~‘‘¤Øôæ§Óýÿÿÿé‘}}~~‘~~~}}}}}}~}}~}}}}}}}}}}}}}}w}}w|}}w|}}}|v}}|wvvw|wvvvvwvÌþñþÿÿÿÿÿÿÿÿÿÿÿþñÇypoooploppooopoooollllolllllllClCll�ò›”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ!!!! !!!! !! !!!       pÕûýýýýýýþþýýýýýýýýþýàx                                                                  œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ¡~~�¡~�‘��‘¡‘‘‘‘‘‘‘‘‘¡¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡£¡¡¡¡¢¡¢£¢¢£¢¢¡£¢¢¢¡¢¢£££¢¢¢££££££¦£££ëÿÿÿýÛ«©¦¦¦£¦¦¦¦¦¦¦©©©«©©®®®®®©©®©®®®¯®©®®®®®®©««««®©¦©©«¦¦¦©«¦££¦¦£¦¦¦££¦¦£££¢£¦£££¦£¦££¢¢£¡¢¢¢¢¡¡¡£ëÿÿ䢢¡¢¢‘¢¢¡¡¡¡¡‘¡¡‘¡¡¡¡¡‘‘‘‘‘�¡‘��¡‘‘‘~�‘~‘§éôؤÓûÿÿÿÿô€~~}}�}‘~}}}}~}~}}}}}}}}}}}|}}}|}}}}||w|}}w|||}|w||v|wvvvppÇýœòÿÿÿÿÿÿÿÿÿÿÿÿÿþñÇwooppopplllplloollolllllllllllloyçßyßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$$ÃþÿÿþÆ9!!!!!!!!!! !!!! !      pÕûýýýýýýþþýýýýýýýýýýàx                                                                          œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ���~��‘‘‘�‘¡‘‘��‘�‘‘¡¡¡‘‘‘¡‘¡¡‘¡¡¡¡¡‘¡¡¡‘¢¢¢¡¡¢¡¡¢¢¡¢¢£¢¢¢¢¡¢££££¢¢¢£££££¦¦£¦££ëÿÿÿþÛ£¦®«£¦©¦¦©«©¦«©©®¦©®®®®©®©®¯¯¯¯®«®®©©®®©¦¦¦¦¦¦««©©«¦¦©¦¦«¦££¦££¦££¦¦£££¢£££¦££¦££¢¢£¢¢¢£¢¡¢¢¢¡¢¨ûÿû­¢¡¢¢¢¢¢¡‘¡¡¡¡¡¡‘¡¡¡¡‘‘‘�¡‘�‘��‘¡¡¡¡�~‘¤àõ暤Úüÿÿÿÿÿô�}~~}~}}‘�~~}~}}~~}}}~}}}}|}}ww|||}}}}v|}vwvwwvv}}|vwvvwvvvp|Çú˜Êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñ�vpvoooollolloooopllllloollllolÇò–˜ûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!!!! !      pÓûýýýýýýþþýýýýýýýýýüà_                                                                             �âüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ��~~�‘�‘¡��‘��‘~~‘‘�‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡‘¡¢¡¡¢¡¢¢¡¡¡¢¢£¢£¦£¢¡¢¢¢¢£¦££¦««¦£££££¦¦ëÿÿÿþÛ¦¦«©¦©¦©©®«¦£¦¦£®¦£©®¯®£¦©®¦®®©¦®®®¦®«®©®®©¦«¦««¦£¦®®©¦££««££££¦¦¢¢£¢£££¦£¢¦£¢££¡¢¢¡¡¢£¢¡¢££¢¢£¢Úþÿë«¢¡¡¡¡¡£¢¡¡‘¡¡‘¡¢¡‘‘�¡¡¡¡¡‘¡¡¡‘�‘‘�‘¤ÓõíÒ‘§ôþÿÿÿÿÿÿõ‘€��}~~~�~�~}}~~~~}}}~}}}}}}}}}}}|||}}w|wvv}}vppv}}vvppvvvvpp�ò˜†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýñ›vooooloppooooollllllllColCCyèßyâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9 !! ! !! !     !pÓûýýýýýýþþýýýýýýýýýüàx                                                                   �âüüúüüüüüüüÿÿÿÿÿÿÿÿþÕ�~~��~~~����‘‘‘¡‘¡‘�¡¡‘‘¡¡‘¢¡¡¡¡¡‘¡¡‘¡¢¡¡¡¡¢£‘¡¡¡¢¢££¡¢¢¢££¢£££¢£££¢££££¦£££¢£¦ëÿÿÿþܦ£¦££«¦£¦©¦£¦®®®®®®«®®¯®®®¯¦®¯¯®®®¯©©¦®®©®©©®®®®«¦©©©¦¦¦®®«¦©«¦£££¦«¦££¦«¦¢¦£¦¦££¢£££¢£££¢¢¢£¡¡¢£õÿþØ¡¡¡¡¡¡¡¢¡¡¡¡¡¡‘¡‘‘¡¡‘‘��‘‘‘¡‘�‘‘‘~§èõ।Ùûÿÿÿÿÿÿÿÿõ��~~~�~~}}~~}}}}}s|}}}|}||}}}}}|w|||}w|}}||}|vp||w}||v|vpvvœñ�{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþç›vppooolllollopllllllllolCÇ÷››üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$$ÃþÿÿþÆ9!!!!! !!! !  !            pÕûýýýýýýþþýýýýýýýýýüàx                                                                                              �âüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ��~~~�‘‘~~��‘‘‘¡‘‘‘‘‘¡¡‘‘¡¡¡¡¡¡‘‘¡¢‘‘¡£¢¡‘¡¢¢¡¡¡¡¢¢¢£¡¡¡¡¢££¢¢¢£¢££¢£££¢¦£¢¦¦£¦ëÿÿÿýÛ¦¦¦¦£«¦¦¦©«©«©®®®®©©¦©®®®®®©®®®®®®®®«¦®®©®®®®®®«¦©®«¦¦©¦¦¦¦¦©«¦££¦¦¦¦££¦¦¦£££££££££££¢¢£££¡¢¢¡¡¢¢­ýÿø¨¡¡¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘‘¡‘�‘¡¡‘�~¡‘¤ÚùíÒ‘­ôþÿþéèÿÿÿÿÿù¤~~~‘~~}}}~}}}}}}}}}~}}||}|}}|}}}|||||||}|||}w|vvvv|||wv|vp|›ñ™wèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüâ˜uooolllolloolllollllolyñç{çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$$ÃþÿÿþÆ9!!!! !!! !  !         pÕûýýýýýýþþýýýýýýýýýüàx                                                                                                             œâüüüüúüüüüüÿÿÿÿÿÿÿÿþÕ�~~~¡¡‘��‘¡‘‘¡��‘‘¡‘¡�‘‘‘¡¢¢¡¡¡¡¢¡¡¡¡¡¢¡¢¡¡¡¡¢££¡¡¡¡¡¡¢¡¢£¡¡¢££¦£££££¢¢¦«©¦£¦ëÿÿÿýÛ¦©«««©¦¦¦¦®©©©®«®¦£¦¦©®®¦©®®®®®®®©®®®®©®®®®«©©®©©¦¦««¦£¦¦¦©¦¦£¦«¦«££¦£¢£¦£¦¦£¢¡¢¢££¢£¢¡¢¢¢¢¡¡¡¡¢£¢æÿÿê¡¡¡¢¡‘¢¡¢¡££¢‘‘‘‘‘‘¡¡¡‘¡¡‘~~~¤Óõ÷Ù¤¤àûÿÿú×�§ýÿÿÿÿú¤‘~~~~‘~~~}~~~~~}}}}~~}}}||||}}s}}}}||}|v}|}}w||}|vp|vpvvvw||˜ñ�vâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”ollloooooClooolollClÌú��üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!! !! ! !! !!     pÕûýýýýýýþþýýýýýýýýýüàx                                                                                                                        œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ�‘‘~�~�¡¡‘�~�¡‘�~‘¡¡‘¡¡¡¡¡��¡¡¡¡¡¡¢¡¡¡‘¢£¡¡¢£¡¢££¢¢££¢¡¢¢¢¢¢£££¢¢¢¢££££¢¢¢¦¦£¦«ëÿÿÿýÛ¦¦£££©®¦©®®¦¦¦¦¦«©©®®®®¯®®©®®®¯©©©¯©«¯®¦¦¦©®©¦®¦¦©®®®¦¦£¦¦¦©¦£¦«£¢££«©¦¢£¢¢££¦£¦£¢¢¡¢£¢£¡¡£¢£¢¡¡¡¡§úÿý¬¢¢¡¡¡¢¢¡‘‘‘‘�‘¢¡¡¡‘¡¡‘�‘¡¡¡§èû駤Óõþÿþæš‘‘¤ûÿÿÿÿý™~}~~}}}~~~}}~~}|}}}}}|}}}}~}}|}}|}}}|}|v}vv|pvv||vvpv|||wvop˜ò�oÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü߆vppllllloollllllC”÷ç†ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! !  !! !!         oÓûýýýýýýþþýýýýýýýýýüà_                                                                                                          œâüüúüüüüüüüÿÿÿÿÿÿÿÿþÕ���~�~�‘¡‘‘‘‘‘‘‘‘‘¡‘‘¡¡¡‘‘¡�‘¡¡¡¡¡¡‘¡¢‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢££¢£¢¡¢¢¢£¦¢¢£¦¦££££££¦¦¦ëÿÿÿýܦ£««¦£¦¦¦««¦¦®«®©«®®©«¦®®®®®®®®®®®®®®¯®®®©©«©¦®«¦¦©©¦¦£¦®¦£¦¦¦¦®«¦¦¦£¦££«¦£¦££¦¢¢££¢¢¢¢££¡¢¢¡£¢¢¡£¡Ôþÿõ¥¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡‘‘‘‘‘¡‘‘‘¤Úø÷Ù¤šæýÿÿõÒ‘~��‘èÿÿÿÿþš€}~��}}�}}}~~}}~~}}}}}}||}}}}}}}|}|vw}}}|v|p|||v||pvwwpv|pv�õ†pÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”olloollllllllluáü�ÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ!!!!!!!!! ! !!         pÕûýýýýýýþþýýýýýýýýýüà_                                                                                                     œâüüúüüúüüüüÿÿÿÿÿÿÿÿþÕ��‘�~�����‘¡‘‘‘‘‘‘‘¡‘‘‘¡¡¡‘¡‘‘¡¡‘‘‘¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¢¢££¡£££¡¢¢££¢££¦¦££££¦¢££«ëÿÿÿýÜ«£¦«©¦¦¦¦«¦¦¦®©©®¦«®®©©®®®®«®®©®®®®®®®®®®®®©«¦©©©©©©«¦£¦©¦¦¦£¦£«¦¦¦¦££££¦££¦£££¢¢£¦¢¢£¢¦£¢¡¢¢¡¢¢¢£¡¥õÿþä¡¡¡¡¡¢¢¡¡¢¢¡¡‘¡¡‘¡¡�¡‘‘¬ôüè§’Ó÷ÿÿûà¤��~‘�~Òþÿÿÿÿš}}~~~~~}€}~}}}~}}}~}}}}}|}}}}}}}}}||}}}}|v}vw|pvv|v||vvvpv|†ò˜pÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü߆ololllllllll›úñ”òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÃþÿÿþÆ!!!!!! !! ! ! ! !      pÕûýýýýýýþþüýýýýýýýýüàx                                                                                                                           œâúúúüüüüüüüÿÿÿÿÿÿÿÿþÓ�‘�‘‘�‘��¡‘�~~�‘¡‘‘¡¡‘�‘¡¡‘¡¢¡¡¡¡‘¢¢‘‘¡¡‘¡¦¢¡¡¢£¡¡¢¡¡¢¢¢¡¢££¢¡¢¢¢£¢¢£££££¦££¢£¦ëÿÿÿýÜ©¦¦«©¦¦£¦£¦®£©©¦®®©©¦©®®®®¯©¯¯¦©©©¯¦©©¦®®©®®«¦¦¦¦¦©«££©¦¦©¦©¦£¢£¢¢£¦£££££££¢¢££¦¦¢¡¢¦£¡¢¢¦¡¢¢¢¢¡¢¢¡¡­ýÿû§¡¡¡‘‘‘‘‘¡¡‘¡¢¡‘¡¡¡‘¡¥àûùؤ§èþÿþô¨¡‘~~~‘�~‘Ùýÿÿÿš~€}}~~~�~}€‘~}}}}}€~}}}}|}}|}|}}||}|vv}}|||vv|w|pvpv|v|vvò™oœýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü߃oollCllllyçþÉÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÂþÿÿþÆ!!!!!!!!  !   !      oÓûýýýýýýþÿýýýýýýýýýüà_                                                                                                                                                       œâúüüüúüüüüüÿÿÿÿÿÿÿÿþÕ�~~�‘���~~�¡¡¡‘�‘¡‘�‘‘�‘¡¡¡‘‘¡‘‘¡¡¢¡¡¡¢¢¢‘£¢¢¡¡¡¢¡¡¡¢£¡¡¡£¢¡££¢¢¢¢¦£¢¢££¦£££¢¢£ëÿÿÿý­£¦©©£¦«©©«®®£¦¦©®«¦©¦©©©©©¯©©©®®®®®¦©©¦®®¦««®®®®¦£££©©®®£¦¦«¦£¦¦£¦¦£¦££¢££££¦£¢£¢£££¢££¢¢£¡££¢¡¢¡¡£££êÿÿé¡‘¢£¢¡¡¡¡¡¢¡‘‘¡‘‘¡¤Ôùý蚤ÙûÿÿúØ‘�~�¡�~�~�‘‘Óûÿÿž�€‘~‘}~~}}~~}}}|}}}}}}}}}}v|}|w|vvv||v}}|v||vvvvppp|vppppwòœv›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü߆uolooolÆþ÷�òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!ÃþÿÿþÆ9!!!!!  !!!  ! !     pÕûýýýýýýþþýýýýýýýýýüà_                                                                                                                                                                œâüúúüüüüüüüÿÿÿÿÿÿÿÿþÕ�~�‘~�‘‘~~�‘¡‘��¡‘‘�¡‘‘‘¡¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¢¢¡£¢¢¢¢£££¢££¢££££¢¢¦££¦¦££«ëÿÿÿýܦ£¦¦£««¦¦««©¦©®«©¦¦®©«¦®®©«®®®®¦®®®®®®®®®¦®©©«©®®¦©©©£¦«£«©©¦¦¦¦¦£¦¦¦££¦£££££¢¢£¢££¢££¢¢¢££¢¢£¡¢¡¡¢¡¡¥ùÿþÔ¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘§èýõÓ¤Óõÿÿýæš‘�~~�‘‘~~��~€‘ØþÿÒ‘~~‘~~~~}~}}}~}}}�}}}}}}}}}}|}}|}}|w||}||}}v|w|vvvv||vppvvvwòœv˜üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûß”olll{òþßÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$$ÂþÿÿþÆ!!! !!!! !!       pÕûýýýýýýþþýýýýýýýýýüà_                                                                                                                                                    œâüúúüüúúüüüÿÿÿÿÿÿÿÿþÕ��‘‘~~~�~~‘¡�~�‘¡¡‘�‘¡¡¡¡¡¡¡¡¡¢‘¡¡¡¡¡¡¡¡¡‘¡¡‘¢‘¡¢¢¡¢¢¦¢¢£¢¢¢££¦£¢££¢¦£¢££¦«£££«ëÿÿÿýܦ«¦¦£©«¦£¦¦¦©©®¦¦¦©®¦©¦®¦©«®®®®©®®®®®®®®®®®®®©©©®®©«¦¦¦©£©¦¦¦¦¦¦¦£¦¦¦£££©¦££¡¢£¡¢££¢£¢¡£££¦¢¢£¢¢¡¢¡¡¢¡Úþÿõ¥¡¡¡¡¡¡¡¡¡¡¡¡¡¤Úúû楚èþÿþõÒ‘‘‘��‘�~�����}~�šüÿÓ‘~~~~~~~~}}}}~}~}}}}}}|}}}~}}}|}|||v}v||vvvv||vwv|wwppvvvwòœv†üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüâ›uuÌþüÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÂþÿÿþÆ!!! !!!!  ! ! !     pÕúýýýýýýþþýýýýýýýýýüàx                                                                                                                                                          �âúúüúúüüúúüÿÿÿÿÿÿÿÿþÕŸ~~�~~�¡¡��¡~~�‘�‘¡¡‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡‘‘¡‘¡¡¢£¢¡¦¢¡¢¡¡‘¡¢¢¡££¡¢£¡¢£¢¦¦£¦¦¢£¡¢£¢¢£¦ëÿÿÿýÛ¦®¦£«©¦¦¦®®®©««®®®®®®®©©¦®©¦®¯°¯®®©®®©£¦¦«©®©£¦¦®®«¦¦®®¦¦®©¦£¦¦£¦«£¢££¢¡£¢¢£¢¢£££££¢¡¢¡£¢¢¢¢¢¡¡¡¢¢¡¡¢¡¦íÿþê¡¡¢¡¡¡‘‘¡‘‘‘¬ôýõÔ¥ÚûÿÿýÚ¤¡‘‘‘~‘¡~~~~~‘¡€‘��õÿÓ~~}}}~}~‘�}~~}}}}}}}}}|v|}||}v|v|}|}}w}||w}}||w|p|vppwvpp}ñžp†üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòáúÿñâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9! ! !!!!! !      oÓûýýýýýýþþýýýýýýýýýüàx                                                                                                                                                               �âúúúúúüüüüüÿÿÿÿÿÿÿÿþÔ¡~‘�‘‘�‘�~~‘�‘¡¡¡‘�¡¡‘�‘�‘¡‘‘‘¡¡¡¡‘¡¡¢¡¢¢£¡¡¡¡¡¢£¡¡¡££¡¡££¢¡¢¢¢£¢£¦¢¢¢£¦£££¢¦¦¦ëÿÿÿýÛ£¦¦£¢¦¦«£¦¦¦£¦©®«¦¦®®©©©®®®®®«¦¯©¦®®©©¦®®®®®¦¦®®®¦«©«¦¦£¦¦¦££««¦£¦«££¦££«££¦«£¢££¢¢£££¢££¢¡¢¢¢¢¡¡¢¢¡¢¡¡¬ûÿû­¢¡‘‘¡‘¡¡¡¥àûüÚ¥Ôõþÿþ鬡‘‘‘~�‘�¡�‘�‘���~�¡‘ôÿ×}‘‘~}�~~}}€}}}}}}}}}}}}}}w}}|}}}}|}||||w|||v|}|vv|w|vv|w|vñÊv{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!ÃþÿÿþÆ!!!!!!!! !! !         oÕûýýýýýýþþýýýýýýýýýüà_                                                                                                                                                                 œâüúúüúúúüüüÿÿÿÿÿÿÿÿþÕ ���‘‘��~~�‘‘‘‘¡‘‘‘¡‘‘�‘‘¡¡‘¡¡�¡¡¢¡¡¡¢‘¢¢¡¡¡¢¡¡¢¡¢¡¡¢¢¢¢¢£¢¢££¢£¢££¡££££££¦£¦¦¦ëÿÿÿýÛ£¦¦¦¦¦¦¦¦¦¦¦£©©¦¦«©®®¦¦®®©®®®©®©«¦®¦©®®®©¦©©¦©«©¦©¦¦«¦¦¦££££¦¦¦¦¦£¦£«£££££¦£££¢¦¢¢¢£¢¢£¢¢¢¡£¢¡£¡¡¢¢¢¡¡¢¢æÿÿô¥¡¡¡¡¡¡¤ÔõþõÔ§èþÿÿúؤ¡‘�‘¡~��~‘�‘�¡�~~��€€èÿÙ~~~~��}}~}}}}}}}}}}~}}s}}}}}}|}}}}}||w||wv||v|wvv|v|}vppvvvñÓvwúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÂþÿÿþÆ!!!! !! !! ! !     pÓúýýýýýýþþýüýýýýýýýüà_                                                                                                                                                          œâüúúúúúúüüüÿÿÿÿÿÿÿÿýÕ‘‘~~‘‘�~~�¡‘‘‘‘¡¡��¡‘�‘‘¡¡¢¡‘¡‘¡¡¡¡¡¡¢‘¢¡�‘¡¡¡¡¡¡¡¢¢¡¢¢¢¢¢£¦¦¢¢£¢¢¦¢¦«££¦¦¦£¦¦«ëÿÿÿýÛ¦£¦©«®¦£««®«¦¦¦¦©®®®¦©®®©©®®©«®¦¦£©©©®©©©¦©¦©©££¦®©£¦©¦««££¦£££££££¦£££££¢££¢¦¦£¦£¢¦¢¢£¡¢£££¡¡££¢¡¢£¢¢££¨ùÿþÚ¡¡¡¢¢¬éýýê­ãûÿÿþèš‘‘‘�~‘‘‘�~��~~���~}�~‘èÿä}}�~}~~}~~~~}}}}}}||}}}}}w|}}}}}|}|vv||pvvp}v|v|vv|||vppppv|ñ×vvúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!!! ! !! !    pÕûýýýýýýþþýüýýýýýýýüàx                                                                                                                                                  œâüúúüüúüüúüÿÿÿÿÿÿÿÿþÖ�‘‘�‘‘~~~‘‘¡������‘¡¡¡¡‘�‘¡‘¡¡‘¡¡¡¡¡¡¡‘‘¢¡¢¢¡¡¡¡£¡¢£¡¢¡¢¢¡¢¢¢¢¡¡¢¦£¡£¢¡££££¢££¦ëÿÿÿýÛ««¦®«©¦£¦£¦®®¦¦©®¦©®¦¦«¦¦®®©¦¦®®©®©©®©£®®©¦¦££¦©©©¦¦¦«¦¦«®®¦£££¦¦££¦¦£¢£££££££¦£¢¡¡£¢¡££¢¢¢£¢¡¡¢¡¡¢¢¢¡‘‘¡Ôþÿú¨¢¢¨æûþøØÚõÿÿþùÜ¢�‘‘‘¡‘‘‘¡‘�~‘‘‘�~�~~�‘‘‘àÿà���‘~~}~‘~}}}}}~~~~~~~}}}}~}}}vv|||}}||}}|||}}||vv||pvpppv}vppñÙvv÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!! !!! !! ! !!     pÕúýýýýýýþþýýüüüýýýýüàx                                                                                                                                                      �âúúúúúúúüúüÿÿÿÿÿÿÿÿýÕ~~~~�~‘‘��‘‘~‘¡�~‘‘‘¡‘‘‘‘‘‘¡¡¡¡¡¡¢‘¡¡¡¡¡¡¡¡¡¢£‘¡¡£££¢£¢¢£¢¢¢¢¢¢¢¡¢¢¢£££¦£££¢¢¢¦ëÿÿÿýÛ¦®©¦¦¦£¦©©«¦«¦©®®¦«®©©©¦¦¦©®¦¦®®®¦¦®®®¦©®¯«¦««°«£¦¦©©¦«¦£¦¦¦¦¦¦££££«¦¦££££¢££¢££££¢££¢¢££¢¢¢£¢££¢¡¢¢¡¡¢¡¡¥ëÿÿëÔèüÿþíäùþÿÿúॡ¡¡¡‘‘¡‘~�‘‘‘��~~‘�~��~�‘€Ùþà~~}��}~‘}}}~}}}}}}}}}}}}}}|}}w}}|}}||}vvw||||vvvv|vvwvvpppèßvpòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9! !!!!!!!! !       qÕûýýýýýüþþýýüüüýýýýüà_                                                                                                                                                                 �âúúüüúüúüüúÿÿÿÿÿÿÿÿýÓŽ‘�~�~�‘��‘‘~�¡¡‘‘�‘‘�‘‘¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¢¢¡¡¡£££¢£¢¡£¢¢£¡££¢¡¢¡£££££££¦¢££¦ëÿÿÿýÛ£««£££¦©®®©¦¦¦©©©©«®£®®¦®«©®¦©®®©¦¦®©«®¦«©®«©«®®¦¦«©¦¦¦£¦¦¦¦«««££££££«¦££££¢£¢¢¢££¢£¢£¢¢¢¢£¢¢¢¢£¢¡¢¡¡¡¡¡¢¡­ûÿÿÿÿÿÿúõþÿÿûæ§¡‘‘‘‘¡¡‘�‘��¡‘‘�~~�‘�~~~~~��Ùþè€}~~}~�}~~}}}}}}}|}}}}}||}}}}}}}}||w}w||vv|||||vvvvvv||vppvpâßvpñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9! !!! !!! ! !       vØûýýýýýýþþýüýýýýýýýüàx                 @@                                                                                                       9                  œâúúúüüúúúüúÿÿÿÿÿÿÿÿýÕ�¡‘‘‘~~��‘‘‘~~¡¡~~‘¡‘‘�¡¡‘¡¢¡¡¡¡‘‘¡¡¡‘¡¢¡¡¡¡¡£¢¡¡¡¡¡¢£¡£¢££¢£¦¦£¢££¦£££¢£«¦¦©«ëÿÿÿýÛ££££¦¦®«¦¦¦«£¦¦£¦¦©®£«©¦®®©®®©«©¦®«©©£¦©¦¦®®¦£®®®®®¦£££««¦©¦®«¦£«¦¦£¡££¦¦«£££££¢¢££¢¡¡¡¢¢¢£¢¡¡¡¢¢¡¢¢¡¡¡¡¢¢£äÿÿÿÿÿÿþÿÿû謡¡¡‘�¡¡‘‘‘~‘‘‘‘��~~~‘¡��~~~‘�×þè€~~‘~�~}}}}~}~~}}}}|}}}|}||}|w|||vv|}}}w||||vww|pvvppvppppvââvpçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!!!!    !  pÓúýýýýüýþþýüýýýýüýýüàx          9–Å;                                                                                                         9_@                œâúúúüüúúüüúÿÿÿÿÿÿÿÿþÕ~�~~���‘‘¡‘�¡‘‘‘‘‘¡¡¡¡¡�‘¡¡�‘¡‘¡¡¡¡¢¢¡¡¡¡‘‘¡¡¡¢¢¢¢¡¡¡£¢¢¢¡¡¢£¢¢£¢££¡££££¢¢¢¢£¢£ëÿÿÿþÛ¦¦¦©©®¦¦¦£¦©¦®¦£©®««¦¦©«¦«©«£¦®®®®¦®®®®®©£©®©£¦¦££«®¦¦«£££££££¦¦¦¢£¦¢¢£¦£¢¢£££¦¦£¢£¢¢¢££¢¡£¡¡¢¢¡¡‘¡¢£¢¡¡¢¡¡¥ëûûûûû÷õä§¡¡¡¡¡¡‘‘¡¡¡‘�‘‘‘¡‘�‘‘���~~}‘‘~~Òþñ}}~}}}~~~~}}}}}}~}}}}}}|}|}}}}}}}}}}}}}vvvwvp|||v|pv|||pppvâèwvâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!! !!!! !! !     pÓûýýýýýüþþýýüüüüýýýüàx              !zƒ;                                                                                                          9Z9             œâúúúúúúúúúúÿÿÿÿÿÿÿÿþÕ�~~~~�������‘‘‘���‘¡‘‘‘¡¡‘¡¡‘¡�¡¡¡¡¡¡¢¡¢¢¡¡¡¡¡¡¢¡¢¢¡¡¢¡¡¡¢¢£¢¡¢££££¡££££££¢££¦«ëÿÿÿýÛ¦£¦¦¦©¦¦©¦¦©£©©©¦©®¦©«¦°«©®©«©®©©¦¦©«®¦©©¦®«¦«©«©¦¦¦¦©©©£¦££££¦¦¦££«£££££¢¢¦£¢¢££¢££¢¡¢¢¢¡£¡¢£¢¡¡¡¢¡¢¡¡¡¡¡¡¡¥¨¨­¨¥¥¢‘¡¡‘‘‘¡�‘‘¡‘‘�‘‘‘‘‘~‘¡�‘�����~�~~�Òýô�~}~}€~}~}}}|}}}}}}}}|}}}s}}}|}}||}||}|v|vvvv||vwvv||vvp|vßñwvßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! !! !!! ! !     pÓûýýýýýüþþýýüüüüýýýüà_           !!                                                                                                                               œâúúúúúúüúúüÿÿÿÿÿÿÿÿýÕ~~~‘~�‘~~~�‘�‘�~‘��¡��‘¡¡¡¡¡‘¡‘‘¡¡‘‘¡¢¡¢£¢¢¢¢¡¡¡¡¡¢£¢¢¡¡£¢¢¢¢¢¢¢¢¢££££££££¦££¦«ëÿÿÿýÛ£¦¦£¦¦¦£®¦¦¦£©®®¦¦©®®«©®¦¦©®®©©¦¦¦©¦¦®£©®«®«©©«¦®©¦¦¦¦«©©¦£££¦¦£¦££«¦£££¢¢£«¦£¢££¢££¢¡¡¢¢¡£¢¡¢¢¡¢¢£¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¢‘‘¡¡�‘¡‘‘‘‘‘�~�‘¡‘‘~‘‘‘‘�‘~‘‘�~~�§ýô‘~~}�~~�}~~}}}}}}}~}}}}}}}}}}}}}}}}}}||vv|vv|vvvv|vvwvvvvpvv}vÞ÷wvÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$$ÃþÿÿþÈ!!!!!!!! !      pÕúýýüüüýþþýüýýýýüüýüàx                                                                                                                                                  œâúúúüúúúüúüþÿÿÿÿÿÿÿýÕ�¡‘�~‘‘‘�~‘¡��‘‘¡‘�¡¡¡¡¡¡‘�‘‘¡¢‘¡¡�¡¡¡‘¡¡‘¡¢£¡¢¡¡‘¡¡¡¢¡¡¡¡¡¢¢¢¡¡¢££¦££££¢¢££¦¦¦ëÿÿÿýÛ££¦©®©¦¦©«¦¦¦¦©¦¦¦¦¦©££¦£¦¦®¦¦®¦©¦¦¦®®«¦¦£¦«®«¦©©£¦®¦£££¦©©¦¦¦££££¢¢¢££££££££££££££¢¢¢¢¢¢¢£¡¡¡¡¡£¡¡¡£¡¡¡¡¢¡¡¢¡¡¡¡‘‘¡‘‘‘¡‘¡¡‘‘‘‘‘‘�~‘¡‘‘‘‘�~�‘‘‘‘��‘€~šûõ�~~�}}~€}}~~~~}}|}}}~}|}ww||v||}}}}}v|w}}vv}vv|vpv|vvp|v×÷wp×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!  ! ! !!   pÕûýýüüüýþþüüýýýýüüýüà_                                                                                                           œâúúúúúúúúüúþÿÿÿÿÿÿÿýÕ~¡�~�‘���‘�‘‘�‘‘��‘‘‘‘‘¡¡¡�‘‘‘¡‘‘¡‘¡¡¢‘¢¡‘¡¡¡¡££¢¡¢¢¡¡¡¢£¢¢££¢¢¡¢¢¢£¢¢¢¢¦¦¦¢£££ëÿÿÿýÛ£¦££££¦¦£««¦®¦¦¦©©¦¦®®®®©©¦©©©®««®«®¦£©®®¦¦®©££¦©£«¦£¦®©£££¦¦¦¦¦££¦¦£¦«£££¢¢£¢££¢¢¢¡¢¢£¦¢¡¢¡¢¢¡¢¡¡¡¢£¡¡¡‘¡¡‘¡¡¡¡¡‘¡¡¡¡‘¡‘‘¡¡‘¡‘�¡¡~‘���‘‘‘~��‘��~��‘šûõ~~}~~}~~~~~~~s}}~}}}}}}}}}}|||}}||}}w||||v||vv|vpp||vv|vpvp×÷wpÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!! ! !!!   !! !  pÕûýýýýýüþþýýüüüüýýüüà_                                                                                                �âúúúúúúúüúúÿÿÿÿÿÿÿÿþÕ�‘�~~~‘‘~‘‘~‘�‘‘‘‘‘�¡‘�‘¡‘‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢¡¢£¢££¢¢££¢££¢¢£££¢££¦ëÿÿÿýÛ££¦¦£££¦¦¦«©®¦¦¦®¦¦©®«¦¦©¦®©©©©®©¦©©©«£¦©¦«¦¦£¦©©¦«¦£©©¦££¦¦¦¦¦¦£¦«¦¢£££¦¦¢¢££¢¢¢££¢¢£¡£¢¡¢¢¢¢¡¢¢¡¢¢¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡¡‘‘‘‘‘¡‘�¡‘��~‘‘~~�‘���‘�~~~¤÷÷~~~~~}~}}}}}}}}}~|}}}}}}}}}}|}}||||v}}}vvvp|vpvw|pv|vpppÊ÷{pÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ! !!!! !!! ! !     oÕûýýýýýüþþýüüüüüýýüüà_                                                                                                       �âúúúúúúúúúüÿÿÿÿÿÿÿÿýÕ�~‘~~~‘‘~�‘�‘‘‘‘¡¡¡‘¡‘�‘‘‘‘¡¢¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡¢¢¢¡¡¢¡¢¡£¢¢¢££¢¡¢¢£¦££¢£¦££ëÿÿÿýÛ££¦©¦£££¦«¦¦®©¦£®¦¦®©©¦¦£¦®¦¦«©©¦¦£©®¦£¦¦¦®¦£¦©©«¦«¦£¦¦¦££¦«£££££¦¦£¢££¢£¦¦££¢¡£¢£¦¢¡¢¡£¢¡££¡¡¡¡¡¡£¡¡¢¡¡¡¡¢¡¡¡¡¢¢¡¡¡‘¡¡‘¡¡‘�‘‘�‘‘‘�‘¡‘‘~��‘‘�‘‘‘‘~~~~}‘ûú€~~~~~~~}}}}}}}}}}}�}}}|}}}}}w}}}vvv}v}}}vv||vvv|||v|ppvvpÊ÷†vžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!! !! !        pÕúüüüüüýþþýüüýüýüüýüà_                                                                                                                 �âúúúúúúúúüúÿÿÿÿÿÿÿÿýÕ¡~��~~‘‘�‘�‘‘�����~‘‘‘¡¡¡¡¡¡¡¡¡‘�¡¡‘‘¡‘¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¢£¢¢¢¦¢¢¢¢¡¢££££¦¢¢£¦££¦ëÿÿÿþܦ££¦¦¦¦¦££££¦«¦£¦££¦¦©®®¦¦«¦¦££««®¦¦«¦©®«£®®«©£¦£¦£¦©©«®«¦¦¦£¢£¦¦¦£££££¦¦£££££¢£¡¡¡¢¢¢¢££££¡¢¢¢¡¢¡¢¢¡¡¢¢¡¡¡¡¡‘‘¡¡‘¡¡‘‘‘¡¡¡‘�‘‘‘¡‘¡¡‘�‘‘�‘~��¡�}~~~~€‘úú�}}}~~~}~}~}}~�}}s}|}|}}}|||v||}}}}}vv}ww|v||vvvvppvvwv|wÊú†vžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!! ÂþÿÿþÆ$!!! ! !!   !    pÓúüüüüüýýþüýüüüýüüýüà_                                                                                                               �âúúúúúúúúúúÿÿÿÿÿÿÿÿýÕ ~~~�‘�~~�‘‘��‘‘‘��‘‘¡‘�‘¡‘‘‘‘‘¡¡¡¡¡¢¢‘¡¡¡¡¡¢¡¡¢¢¢¢¢¡¡¢¢¢¡¢¢¢¡¢¢¢¢£¢¢¢¢££¢£££¢¦ëÿÿÿþÛ£¦«¦££¦¦©¦¦££©«¦¦££¦¦¦«¦¦¦¦®«®«®«¦®««¦¦«©£«¦¦¦£¦¦«¦¦¦¦¦£££¦«£¢£«££££¢££¦££££¢¢¢£££¢£¢¢££¢¡¢¡¡¡¢¢¢¡¢¡¡¡¢¡¡¡¡¡¢¡¡¡¡‘¡¡¡¡‘‘¡¡¡¡‘�‘¡‘‘‘�‘‘‘‘‘‘‘~~�~~�‘~~€�~õú€~}}~}~}}}}|}}}}}}}}~|}}}|||}w}w|}}w}||||vv|v|vwvvqvppp|vÇú˜p›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÂþÿÿþÆ!!!!!! !      pÕúýýýýýüþþüüüüüüýýüüà_                                                                                    œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ��~~�‘~~‘�‘‘~‘‘¡��‘‘‘‘‘�‘¡‘‘‘‘¡¡¡¡‘¡¡¢¡¡¡¡¢¢¡¡¢¢¡¢¢¡¢¡¡¢¢¢¢¢£¢££¢¢££¢¢££££¢£££¦ëÿÿÿýÛ£¦©¦£¦£££¦¦¦£©©¦©££¦«¦¦©¦¦£®«©©¦«¦¦¦©®¦¦¦©«¦¦£¦¦«££¦¦£££¢¢¦«¦£¦«££££¦££¦£££¢¢¢¢¦££¦¢¢¡¦£¡¡£¢¢¡£¢¡¢¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡‘�‘‘�‘‘�‘‘�‘‘‘¡�����~�~�‘~~õú~~�~~~~~~~}}}}}}|}}}}}}}s}}|}}||}w|}|w||vw||pv|v|vvpwvppvpÇ÷œp˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ! ! !!!!    vÓúýýýýýüþþüüüüüüýýüüà_                                                                 œâúúúúúúúúúüþÿÿÿÿÿÿÿýÕ��~~~����~�‘�‘�‘�‘‘�‘‘¡�¡‘¡¢¡‘¡¢¡¡¡¡¡¡¢¡¡‘¢¡¡¡¡¡¡¡¡¡¢¡¡£¢¢¡£££££¢¢££¢£¦£¢£££¢¦¦ëÿÿÿýÛ¦¦¦££¦¦¦£¦¦¦¦©©¦©¦¦®¦¦¦£¦©£«©¦£«¦¦£¦©©¦£¦®©««¦¦¦«££££££££¢£«©££££££££¢¢££¢£¢¡¢¢¦£¢¢¢¢¢¢¢¡¢¦££¡£¢¡¢¢¢¡¡‘¡¡¡¡¡¡¡¡¡¢¡¡‘‘¡¡‘‘‘‘‘‘����‘‘�‘‘�~�‘�‘‘‘~�~~~~~}~ôú€~�~~~‘~~}~~}|}}}}|}}s||}}}}|w||||vv|vv}v}}pvv|w}|pp|p|vvp�úœv˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! !     !     vÕúüüüüüüþþüüüýüüüüýüà_                                                                       œæúúúúúúúúúúÿÿÿÿÿÿÿÿýÕ������‘�~~�‘¡~~‘¡‘‘�¡‘¡‘‘¡¡¡‘�¡¢¡‘‘‘‘‘¢¡¢¡¡¡¢¢£¢¡¡¢¢¡¡££¡¡¡¢£¡¡¡¢¢¡¡¡¢¢¢¢¢£££££ëÿÿÿýÛ¦££££¦©¦£¦¦£££££«¦¦®¦«¦£©©¦©¦£¦©¦¦¦®©¦££¦©¦£¦©©¦¦«¦£¦©«¦©¦¦£¦¢¢¢£¢££££¢¢£££¢¢¢££££¢£££¡¢£¢¡¡¢¡¢¡¡¢¡¡¡¡¡¡¡‘¡¡¡¡‘‘¡‘¡¡¡‘¡¡¡¡‘�¢¡¡¡‘‘��‘�~���~�‘���~�‘~€~èû¤~}}}}~~~}~}€~|}}}|}}~}}|v|w}}}|}|||v||vvpvvv|vv|vvvppœü�p˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ! !!!     pÓúüüüüüýþþüüüüüüüüýüàx                                                               œâúúúúúúúúúúþÿÿÿÿÿÿÿþÕ�~~��~�‘����¡‘‘�‘‘�‘‘‘‘¡‘‘‘¡‘‘¡¡¡¡¡¡¡‘¢¡¡¡¡¢¢‘¡¡¡¢¢¢‘¢¢¡¢¡¢¢¢¡¡¡¢¢¡¡¢££¢¦¦££££¦ëÿÿÿýÛ£¦£££££££¦¦£¦¦¦¦£££®¦¦¦«£¦£«£££««¦©¦¦®«¦¦£¦¦££©¦£®¦£££¦¦¦££££££¦¦£££¢££££¦¦££¢£¡¢£¢¢¢¡¡£¢¢¡¢¡¡¢¡¡¡¡¢¡¡¡¡¡‘¡¡¡¢¡�‘¡¡¡¡¡¡¡¡‘¡‘¡¡¡‘‘‘¡�‘‘�‘�~~‘��~~~~‘~‘~æû¥~~~}~~~}}}}~~}}}}}}}}}}}|}}v}ww}||}}|v||||vpvvv|w|vvv|vp›üÉp†ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!! !  !      pÕúýýýüýüþþüüüüüýýüüüàx                                                                    �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~~~‘‘‘�~‘‘‘�~‘�¡‘‘‘¡‘�‘‘‘‘¡¡‘¡¡¢¢‘¢¡¡‘¡¢¡¡¡¡¡¡¢¢¡¢¡¡¡¡¢£¡¢¢¢£££¢£££¢¦¦¦£££¦ëÿÿÿýÛ£££££££¦£«¦¦¦¦¦££¦¦¦£¦«©££¦¦¦©£©©¦®¦£¦¦©©£««££¦«¦¦££££¦¦£¦£¦¦¦¦¦¦¦££¢¢¦¦¦£££¢¢£¢¢¢¢¢¡¡¢¡¡¢¡¡¡¢¢¡¡¡¡¢¡¡¡¡¡‘¡¡¡¢¡‘¡¡¡¡‘¡¡¡¡¡¡¡�‘¡‘‘‘¡~�‘‘‘�~‘�~��~�‘~~‘�àû¥~~~~~}~}~~}}}}~~}}|}}}}s}}}|}}|}}|||||||v}|||||wvv||vp||vpp˜ýÞv†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!  ! !   pÓúýýýýüüþþüüüüüüüüüüà_                                                       �æúúúúúúúúúúÿÿÿÿÿÿÿÿýÕ���~~�‘�‘‘‘�~~����‘¡¡‘�‘¡¡¡¡‘‘¡¡¡¡¡¡¡¡£¡¡¡¡¡¡¡£¢¡¡¡¢¢¢¡¢¢¢¡£¦¦¦¦¢¢£££¢£¢££££¢¢¦ëÿÿÿýÛ¦£¦£££¦©¦£££¦«¦£¦©®¦£¦©©©¦¦¦©«¦©£¦©££££££¦«¦¦¦£¦¦££¦¦¦¦¦£¦£¦¦££££¦¦£¢¡¢¦££¦£¡¢£££¡¢£¡¢£¡¢¡¡¡¡¡¢¡¡¢¡¡¡¡¡££¡¡¡‘¡¡¡¡¡‘‘�¡¡�‘‘�‘�¡‘����~‘¡¡‘���~~�‘�‘‘}~�~Ùû§~}~~}~~}}}}~~~}}s~}}s}}}}vws||}|||vvv}wv|||vvp||vvv||pppvvppv™þßv†ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!! !!!!  pÓúüüüýýýþþüüüüüüüüüüà_                                �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~~‘~~~~�‘‘�‘‘‘‘‘‘‘¡‘‘‘¡�¡‘¡‘‘‘¡‘‘‘¡¡¡¡£¡¡¡¡¡¡¡¢¡¡¡¡¡¢¢¡¢¢¢¢¢¢¡¡££¢¢¢¢¢£¢£¢¢£ëÿÿÿýÛ¦£¦««¢£¦£££££¦¦£¦¦¦¦£¦££®«¦©££¦¦¦¦¦¦©¦¦«¦«££¦©££«¦«¦¦¦¦££¦¦££££¦¦££¢££¢££¢¢¢£¢¢¢¢¢¢¢£££¢¡¢£¢¢¡¡¡¡¢¡¡¡¢¡¡‘‘¡¡‘‘‘¡¡¢¢¡‘‘‘�¡¡¡¡¡‘‘�‘‘�~~�‘‘��‘��~‘‘~�~~~ØýÒ~�~~~}}}}}~}~}}}}}}}ww}}}}}w||}||w}}|wvw||w|vpvvvvvpppvpvp˜ýâp†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !!ÂþÿÿþÆ!! !       pÓúüüüüüüþþüüüüüüýüýüàx                              �æúúúúúúúúúúþÿÿÿÿÿÿÿýÕ��~~~���~~~‘‘��‘‘�‘‘‘�‘‘‘‘‘¡¡‘‘¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡£¢¢¢¡¢¢£¢¢¢£¢¢¢¢££¢¢¢£¦ëÿÿÿýÛ¦££¦¦£¦£¢¦¦£¢¦¦¦¦££¦£¦¦¦¦¦£¦££«£¦¦£¦¦£®¦¦®£¦¦¦£¦¦¦¦¦£££¦££££¦££¦£££¢££££¢¢¢£¢¡¡£££¢¡££¡¢¢¢¡¡¢¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡‘¡¡¡¡¡¡¡‘‘¡‘‘‘¡‘��‘‘�¡‘���~�‘~~~��~~~~~�~ÓýÓ~~�~~}~}}~~}}}}}}}}}}}}}}}}}||w}}w|}}}||||}||}vvvvpvv|vvvppp†ýèw†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÃþÿÿþÆ!!!! ! !!    pÕúüüýýüüþþüüüüüüüüüüà_                                          �âúúúúúúúúúúÿÿÿÿÿÿÿÿýÕ�‘�~~���‘€~�‘�~‘‘���‘�‘¡�‘‘¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘¢¢¡¡¡¢¡¢¢¡¡¢¡¡¢¢¢¡¢¢¢£££¢¢£¢¢¢£££¡¢£«ëÿÿÿýÛ££££££¦¦££¦¦£¦«®¦££¦£¦«©££¢£¦¦«££¦£«¦¦¦££¦¦¦¦¦£¦¦¦£££¢£¦£¢¢£¦£££¢££¦££¦££¢¢¢¡¢¢£££¡¢¢¡¡¢¢¢¡¡¢££¢¢¡¡¡¡¡¡¢¢¡¡¡¡¢¡‘¡‘‘¡¡¡¡¡¡‘�~‘‘‘�‘‘‘¡‘‘�~~����~�~~~~~~~ÓþÓ~~~~}~~}}}}}}}}|}}}}|}}|w|}}|||}w|w|v|vv||vvpvvvvv|vppp†ýõ†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!!  !    !vÕúüýüüüüþþüüüüüüüüýüà_                                    œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ��‘‘‘�����‘�¡¡�‘‘‘‘‘¡‘~¡‘�‘¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¢¢¡¡¡¡¡£¢¡£¢¢££¢¢£¢¢£¦¢¢£¦ëÿÿÿýÛ¢££££££«¦££¦£¢¦¦££¦««¦¦©££££¦¦¦¦«®££©©¦£££¦£££££¦£¢£«£££££¦££¢£¦£¦¢¢¢¦££¢¢¢¢¢£££¡¢¢¡¡¡¡£¡¡¡¢¡¡¢¡¡¢¡¡¡¢¡¡¡¡¡‘‘¢¢¢¡‘�¡‘‘��¡¡‘‘¡¡‘��‘‘~�~‘¡¡�~�‘‘‘‘�‘~��~~§þÙ}~~}}~~}}}}s}~}}}s|}}}}}||}}}}v}|v||vw|||||v|wv||wvpppvppv†ýü†˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ! !ÃþÿÿþÆ!!!  !! pÓúüüüýüýýþüüüüüüüüüüà_                                          œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~��~~~~��~‘����‘¡‘‘‘‘¡‘‘‘‘��¡¡¡¡‘¡¡¡¡¡¡‘‘¡¢¡¡¡¢¡¢¢¡¢¡¢¢¢¡¡¢¡¡¢¡¢¡¢¢¢£¢¢££¢£££ëÿÿÿýÛ£¦¦£££££¦££££££¦¦£££©££¦¦«©¦«©£¦¦®¦¦¦¦¦££¦©¦£¢££¦«¦¦«£«¦£¦£££¢£¦¢££¢££¢£¢££¡¢¢¡¢¢¢£¢£¢¢¢££¡¡¡¡¡¡¡¡¡¡‘¢¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡‘‘‘‘‘‘‘‘¡¡¡¡¡‘�����~~���~‘‘�~~~žÿæ~~}}~}}}}}}~~}}}|}}}}}||w||v}}}}||vvv|p|vp|||pvvvvpvvvw˜üÿžÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!ÃþÿÿþÆ!!!!! ! !      pÓúüüüüüýýþüüüüüüüüüüà_                 �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ‘~~~~~~�~‘�~‘~�‘�‘¡‘¡‘‘¡‘‘‘‘‘‘‘¡‘‘‘¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¢¢¡¢¢¢¡¢¢¡¡¢¡¢¡¡¡¢££££¢£££££¦ëÿÿÿý­£«££¦£££¦£££¦££¦¦¦££«¦£¦¦¦£¦¦«£¦¦¦¦¦£¦£¦¦£¦¦¦££¦«¦££££¦¦¦¦££¦¢£¦£££¢¦¢¢¦£££¡¢¢¢¢¢¢¢¢¢¢¢¢££¡¡¡‘¢¡¡¡¡¡¡¡¢¢¡‘¡¡‘‘¡¡¡¡¡¡‘¡¡‘¡‘‘‘‘‘¡‘‘‘��‘‘�~~~��~~~�‘�~~~~�šÿè€~~~}}~}}}}}}}}}}}}}}}}}wv}||w}}www}}w}††�†˜˜žžÇÊÞßèõþÿòõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!ÂþÿÿþÆ!!!!!!!       pÓúüüüüüüþþüüüüüüüüüüà_             �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~‘‘�‘�‘�~‘�‘‘¡‘�¡‘�‘‘‘‘‘‘‘¡¡‘‘‘‘¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¢¡¡¡¡¡¢£¡¡¢¢££¢¢££¦¦££¦ëÿÿÿýÔ££££££££££££«£¦¦££££¦«¦£¦¦¢££«£££££££££¦¦££¦¦££«¦¢£¢¢¢£¦¦££££££££¦£¡£¢£££££¢¢£££¢¡¢¢¡¢¢¡¡¡¡¢¢¡£¡‘‘¡¡¡¡¡¡¡¡¡¡¡‘¡‘¡¡¡¡¡‘¡¡‘¡¡‘‘‘‘�~~~�~‘‘‘���‘~}~����~~‘šÿõ¤€€}‘‘���‘�š™™™™šžžžÒÒÒÒÊÊ××ÙÙÙàââèèññòò÷÷üüýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!        pÓúüüüüüüþþüüüüüüüüüüà_                 œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�‘�~‘~��~�‘��‘‘~~~~‘‘¡‘‘¡‘¡¡‘�‘‘¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡£¡¡¢¦£¢¢¡¢¡££¡¢¢¢¢¢¢££¢ëÿÿÿýÛ£¢¢£¦£££¦££¦«¦¦¦££¢¦¦¦¦£©¦¦¦££¦«¦¦££¦£¢«¦¦££¦¦£¦«£¦«£££¦¦£¢£¢£££¢¢¦££¢¢¡¡¢¢£¢¢££¢¢¡¡¢¦£¡¡¡¢¢¡¡¡¡¢¡£¢¡¡¡‘¡¡¡¡¡¡‘¡¡¡‘‘‘‘¡¡¡��~�¡¡‘‘‘¡¡‘�‘¡¡‘~~~~~~~}~~~~}™ýûÙÙÙÙàààææèèèéôôôòõõõõùù÷úúúüüüýýýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!! !!      pÓúüüüüüüþþüüüüüüüüüüà_              �æúúúúúúúúúúþÿÿÿÿÿÿÿýÔ‘~~�~��~~‘�‘‘����¡�‘�¡�‘¡‘�‘¡¡¡¡‘‘¡¢‘¡¡¡¡¡¡£¡¡¡¢¡¢¢¡¡¡¢££¡£¢¢¡¢¢¢£££¢¢£££¢¢¢£ëÿÿÿýÛ£££££££¦£¢£££££¦££¦¦£¦«£¢¢¦¦¦££¦£¦£¢¦©£¦¦¦£££¦¢£«££££¦£££££¦£¢¢¢£¢¢¢££££¢¡¢£¡¡£¢¢¢¡¡¢¢£¡¡¢£¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘¡‘¡‘‘‘¡¡¡‘‘‘¡¡�~‘¡�~~�‘�~~}~‘~~~~~~~�¤õùõõõõõõõõõõõùùõõõõõõõõõõõòõûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!  !    pÓúüüüüüüþþüüüüüüüüüüà_                �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~�~~�~~~‘‘���¡��‘��‘¡�‘¡¡‘‘¡¡¡¢�‘¡¡‘¡¡¡¡¡¡¢¡¡¡¡¢¢¢¡¢¡¢¢¢¡¢¢¢¡¢¢¢£¢£¢¢££¢¢¢££ëÿÿÿýÛ£££££¢¦¦£¢£¦££££££££¢£¦«££¦£¦£££¦¦¢£¦¦¦££©£££¦£££¦£££¦¦£¢£££££¢¢£¦¢¢¢£££¢¡¢££¢¡¢¢¢¡¢¢¢¢¢¢¢¢¡¡¡¢¡¡¢¡¡‘¡¡¡¡¡¡¡‘¡¡¡‘‘‘‘¡‘‘¡‘‘‘¡‘‘‘‘~�¡‘~~~~�‘~~�‘��~~~~~€‘šš§š§§ššš™™™™™™™™™™™‘�������àþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! ! !  !   pÕúüüüüüüþþüüüüüüüüüüà_         �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~�~~�~~‘‘¡‘��‘�~‘¡¡‘�‘‘¡‘‘¡�‘‘‘�¡¡‘‘¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¢¡¡¢¢¡¡¢¢¡£¢¢¢¡¡¢¢¢£¢¢££¦ëÿÿÿþÔ¢££¢£££££¢£¦¦££££££¦£¦¦¦£££££¦¦¦««£¦¦££¢£¦£££¦¦¦£¦££¢¦¦£¢£¢¢¦¦£££¢¢¢¢¢¢¢¢¢££¢£¢¡¡¢¡¡¢¢¡££¢¡¡¢¡£¢¢¢¡¡¡¡¡¡¡‘‘‘¡¡¡¡‘�‘‘¡¡¡¡‘�‘‘��‘��‘¡‘�‘��‘‘¡�‘‘‘‘‘~~~�}}}~~}}}~~}}}}~}~}}}}w}}}ÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!  ! ! !      vÕúüüüüüüþþüüüüüüüüüüà_       �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~‘¡‘‘~�‘~~�~~�‘‘‘~�‘¡‘�‘¡‘¡‘‘¡‘¡¡¡¡‘¡¡‘¡¡¡¡¡¡¢‘¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡£¢¢£¢¡¢£¢¢¡££££ëÿÿÿý­¢¦£££¢¢¦«£££¢£££¦¦£¦£¢£¦«£¢£¦¦££««£«¦£¦¦¦££¦¦¢££££££¢£££££¢¡££££¢¢¢£¦£££¡¡¢¢¡¡¢¢¢¢¢¢¢¢¡¢¢¢¡¡¡‘¢¡¡‘¡¡¡‘¢¢¡¡¡¡¡‘‘‘¡¡¡¡‘‘‘‘‘‘‘��¡¡‘��~�‘‘‘~~~~~�~}€~~~~~~~~}}~�}~~~}}~}|}~}}}}}}}}vw|}Ùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !!ÂþÿÿþÆ!!!!   ! !  pÓúüüüüüüþþüüüüüüüüüüà_      œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~����~��~‘‘‘‘‘¡¡�‘‘‘¡‘‘¡�‘‘‘¡¡¡¡¡¡‘¢¡‘¡¡¡‘¡¢¡¡£¡¡£¡¡¡¢¡¡¢¢¡¡¡¢¢¢¡¡¢¢¡¢¢¢¢£££ëÿÿÿþÛ££¦¦£££££¢££££££¦¦£¢£££¦««¦£¦¦£¢£££¦££¦£¢£¦£££¦£££¦£¢££¦¦££££££££¢¢¢¢£££££¢¢£¢¡£¡¡¡¢¡¡¢¢¡¡¢¡¡‘¡¢¢‘¢¢¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡‘‘‘¡‘‘¡‘‘‘‘����~~~�~~~�~~~‘‘~}�~~~}�~}}~~}}}}}}s}}}}}}}}}}€ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!! !       pÕúüüýüüüþþüüüüüüüüüüà_               œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~~~~‘~‘�~�‘¡��‘‘‘‘‘‘¡‘‘‘‘¡¡‘¡¡‘¡¡¡¡¢¡¡¡‘‘‘¢¢¡¡£¡¡¢¡¡¡¢¡¡¢¢¢¡¡¢¢¢¡¢¢¢¡¢¢¢¢¢££ëÿÿÿþÛ¢£££¦£££¢¦¦£££££¦££££££££«£¦¦££££££¢££¦£££¦£¢¦££¦¦«¦¢¢£££¦£¢£¦£¢£££¡¢¢¢£££¢¢¢£¢¢¡¡¡¡¡¡¢¢¡‘¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡�‘‘¡‘‘‘�‘‘‘����‘~~�~~~~‘~~‘‘��}~�~~~~}}}}~~}}}}}}}}}|}}}}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!!!   pÕøüüüüýüþþüüüüüüüüüüà_              �â÷úúúúúúúúúþÿÿÿÿÿÿÿýÕ�}~~��‘¡���‘‘~~�~~~�¡‘�‘‘�~‘‘¡¡¡¡¡¡¡‘‘‘¡‘‘¡¡¡¢¡¡‘¢¡¡¡‘¡¡¡‘¡¡¢££¢£¢¡¢££¦££¢¢£¢£¦ëÿÿÿýÛ¢¢¡¢¦££££¦££¦££££¦«£¢¦££££¢£¢¦£¦«£¢¢¢£¦££¦¦¢££¢£££££¦££££££¡¡££¢¢££¢£¢¡¢¢¡¡¢¢££££¢¡¡¢¢¢¢¡¡£¢¢£¡¢¢¡¡¡¡¡¡¡¡¡‘�‘¡¡‘�‘‘‘~‘¡¡‘‘�~��~‘‘‘‘‘‘‘‘‘�‘~‘�~~‘�}~~~�~~}}~}}}~}~~}}}}}}}}w|}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!  ! !     pÕúüüüüüüýþüüüüüüüüüüàx         �æúúúúúúúúúúþÿÿÿÿÿÿÿûÕ��~��~~��~~~��‘‘~�‘¡‘�¡¡¡¡¡¡‘¡‘‘‘¡‘‘¡¡¡¡¢¡¡‘¡¡¡¡¡¡¡¢¡¢¢¡¢¢¡¢¡¡¡¢¡¡¢¡¡¢£¢¢¡¢¢¢¢ëÿÿÿýÔ££¢¢£¢¢£££££¦£¢¡¡£££¢££¦££¦«¦£¢££££¦¦¢£££££¢¢¦£¢¢£¢¢¦¦£¢¢¡¢££££¢¢¢¢¢¦¢¢¡££¢¢¢¢¡¡££¢¡¡¡¢¡¢¡¢‘¡£¡¡¡¡¡¡‘‘¡¡‘¡¡‘‘¡¡‘‘¡¡¡‘‘‘‘¡¡‘~‘‘‘¡�~‘~~�‘‘‘�‘�~~~�‘���~~}~�}~}}~}}}}}}}}}}}|wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!! ÂþÿÿþÃ!!!! !!    oÓúüüüüüüþþüüüüüüüüüüà_    �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ���‘�~}~�~~�~‘‘‘�‘‘~�‘�‘‘¡¡¡‘¡‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¡¡¢¡¢¢¡¡¡¡¡¡¢¢¡¡¢¢¢£¢¡¢¢¡êÿÿÿþÝ££££¢££££¢££¢¦£¢¢££¦££¦¦£££¦¦£¢££££¦££¦££¢£££¦££¢£££££¢££¡£££¢££¢¢¢¢¢¢¢¢¢¢¢¡¢¡¡¡¡¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡‘¢¡‘¡¡¡¡¡¡¡¡‘¡¡‘‘¡¡�‘‘‘¡¡‘‘‘‘‘‘¡�‘‘�~~‘����~~~�~~~~~~~}~}~~~~~}}}}}}}|}|}}}}||}Ùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ‚!$!ËÿÿÿþÂ!!! ! ! ! pÓúüüüüüüþþüüüüüüüüüüà_              �âúú÷úúúúúúúþÿÿÿÿÿÿÿüÕ~~��~~}~‘~��‘‘��‘‘�~��~‘~‘¡�‘¡¡‘‘‘¡‘‘‘‘¡‘‘¡¡‘‘¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢£¡¡¢£¢¢¢£¢¢¢ãþÿÿþÝ£££¢¢££¦£¢¢£¢¦£££££¦£££¦£££££¦£¢£¦¢¢£¦¦¢¢££££¦££¢£££¢¢¢¢£¢££¢¡¢££¢¢¢¡¢££¢¢¢¡¢¢¢¡¡¡¢¡¡¡¡¡¡¢¡¢¡‘¡¡¡¡¡‘¡¡¡¡‘¡¡¢‘‘¡¡¡¡¡‘��‘¡‘‘‘‘~�¡‘‘‘¡‘���~~~��~~�~~~}}~~}�~}}~~~~~}}~}}}}}}}}||}}}wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ�!!$Îÿÿÿý…!! ! !   !  oÓúüüüüüüýþüüüüüüüüüüà_               �âúú÷úúúúúúúþÿÿÿÿÿÿÿüÕ~~~~~���‘‘‘�~��‘�¡�~�~�¡��‘¡¡‘‘¡¡‘¡‘‘¡¡¡‘¡¡¢¡¡¡¡‘‘‘¡¡¡¡¡¡¢¢¡¢££¡¢¡¡¢¦¢¡¢£¢¢£Úþÿÿþ㣣¡¡¢£££¢¡¢£¢£¢¢££££££¢£¦¦£¡£¢¦¦£¦£¢££¢¢¢£££££¢¢¢«¦£¡¢£¦¦¦¢¡¡¢££££¢¢££¢££¢¢¢££¢¢¡¡¡££¢‘¡£¢¡¡¡¡¡¡¡¢¡¡¡¡¡¡�‘¡¡¡¡¡¡‘‘‘‘¡¡‘‘�‘���‘‘~‘‘‘�~~~~~�~��}~‘~~~}�~}~}~~~~}}}~~}}}}}~}}~}|}}}wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü[!!9Ïÿÿÿü‚!!!! !!    pÓ÷üüüüüüýþüüüüüüüüüüà_              �æúú÷úúúúúúúþÿÿÿÿÿÿÿýÕ~}~~���‘~~�~�‘��‘‘�‘‘¡¡‘‘‘‘‘‘‘¡¡¡‘‘‘¡¡¡¡¡¡¡‘¡¡¡‘¡¡¢¢¡¡¢¡¡¡¡¡¡¡‘¢¢¢¢¢¢¡¢¢¢¢¡¡¡¡Ôþÿÿÿë«£¢¢££¢¢£¦¦£¢¢£¢£¢¢£¦£¢£¦¦£¢£££££¦¦££¦£££¢£££¢£££¦£££¢¢¢¢££¡¢£¢¢¢££¢¡¢¢¢¢¢¡¡¡¡¡¢¢¢¢¢¢¢¡£¢¡¡¡¡¡¡‘¡¢¡¡‘¡¡¡¡¡¡¡¡¡‘‘�¡‘‘¡¡‘¡��‘‘~��~��‘‘‘~~�‘‘~�~~~‘��~}~~}~~~}}}}}}}}}}s}}}}}}}}|w}}}Ùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò@!!@áÿÿÿú_ ! !!!     pÓúüüüüüüþþüüüüüüüüüüà_                     �âúú÷úúúúúúúþÿÿÿÿÿÿÿýÕ~~~~~~~~�~~~~~~~��‘�‘‘‘¡‘‘�¡¡‘~‘¡‘¡‘‘‘¡¡¡�¡¡‘¡¡‘�¡¡¢¢¡¡¢¡¢¢‘¡¢¡¡¢¡¡¢¢¢¡¡¢¢¡¢¢¢¡¨ûÿÿÿø­£¢¢£¢££¢££££¢£¦£££££££¢££¢£££¢£££¦£¢¢££¢££££££££¢¢££¢££¢¢£¢¢£¢¢¢¢£¢¢¡¡¢¢¢¢¡¡¢¡¢¢¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¢¡¡‘‘¡¡¡¡¡‘¡¡‘~‘¡¡‘¡‘��¡‘‘���~‘�~�‘‘‘~‘�~�~~~}�€~‘~}€~~}~}~}}�|}}~}}}}}}}}}}||}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ9!!]óÿÿÿòZ! !  ! !   pÓúüüüüüüþþüüúüüüüüüúà_                    œâ÷÷ú÷úúúúúúþÿÿÿÿÿÿÿýÕ�~‘��~~~~~~~~�~~�~~~¡�~‘¡‘�~‘¡‘�¡¡‘¡‘¡�¡¡¡¢‘‘¡¡¡¡‘¡¡¡¡¢¢¡££¢¢¢¡¡¢¢¢¡¡¢¢¡¦£¢¡¥íÿÿÿþÔ¢¢¡¢¡££¡¡¢¢£££¦¦££¢¢¢¦¢£¢¢£¦£¢¡¢£¦¢¢¢£¢¢£££££££££¡¢£¢¢££¢¢££¢£££¡¢¡¢¡¢£¢¡¢¡¡£¢£¡¡¡¡¢¡¡¡¢¢¡‘¡¢¡¡‘¡¡‘¡¡¡‘‘¡‘‘¡¡¡‘¡‘¡���~~�‘‘‘¡‘�‘‘¡�~~‘�‘�~�~~}}~~~�~~~��~}~~~}~~}}}}}}}|}~}}}}}}}}wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ•!!!„þÿÿÿá9! ! !      pÕúüüüüüüýþüúüüúüúüüúà_                             œàú÷÷úú÷úúúúþÿÿÿÿÿÿÿýÔ¡~~~~~�‘‘��}~�¡‘�‘‘‘�‘‘~‘¡‘�‘¡‘�‘¡‘‘‘‘¡‘¡‘¡¢‘¡¡‘‘‘¡¢¢¡¡‘¡¡¢¡¡¡¢¢¡¡¢¡¢££¢¡¢¡¢¢¢ãþÿÿÿ襢¢¢¡¢¦¢£££££¢¢£££¢££¦¢£¦£££¦£¡¢£¦£¦¦££¦£¡¢¢¢¢£££¡¡¢¢¢¡¡££¢¢¢¢¢¢¡¢¢££¡¡¡¢¡¡¢¢¡¢¢¢¦¢¢¡¡¡¡¢‘‘‘¡¡‘¡¡‘‘¡¢¢¡‘¡‘�‘‘�¡¡¡�‘‘�‘¡‘‘¡‘~~��‘�‘~~~¡¡‘‘��‘���~~~~�~~~~}}~~~}~}}|}~}||w|}}}||s}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóZ!!!ËÿÿÿþÃ!! ! !!! !   pÓúüüüüüüýþüüúúüüüüüúà_                      �â÷úú÷úúú÷÷úþÿÿÿÿÿÿÿûÕ‘~~~~~~���~‘�~‘‘‘‘�~�‘��‘‘‘�‘‘‘‘‘¡�‘¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¦£¢¡£¡¢£¢­ûÿÿÿý­¢¢¢££¢¡££££££¢££¢£££¢£¢¢¢¢££¢¢££¦££¦£¢££¢¢¢£¢¢¢¦£¢¢¦£¢¢£££¢£££¢¢¢¢£¢¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡‘¡¡¡¡¡¡¡¡‘¡‘�¡¡‘¡¡¡‘‘‘‘‘‘‘‘‘��‘‘~~�‘�~~~~~~~~�~~~~~~}~}~~~~}}}}�~}}}}~}}}}w}|}}}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÆ$!!@òÿÿÿú_!!! !!   vÓ÷üüüüüüýýüúüüüüüüüüà_                        œà÷úú÷ú÷ú÷úúþÿÿÿÿÿÿÿýÕ�~~~~~~~�~~‘�~�‘‘�~~~‘¡�~‘¡‘��‘‘‘¡¡‘‘¡¡¡‘¡¢¡¡‘¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¢¡¡¢¡¡¡¡£¢¡¡¢¡¢£¡¨öÿÿÿÿ릣¢¢¢¢£££¢£¢£¢££¢££¢¡¦£¢¢¢££¢£¢£¦£¢££¢££¢¢£¢¢¢¢¦£££££¢¢£££££££¡¢¢¢£¢¡¡£¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢¡¡¢¡¡‘¡¡¡¡‘‘¡‘¡¡‘‘‘‘��¡¡‘��‘‘�‘��~~‘‘~~‘~~~~~~~~�}~~~}~~}}}~}~}}}w}}}}}|}}}|}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñY!!…ýÿÿÿç@! !  ! !    pÕ÷üüüüüüýýüúüüüúüüüúà_                                    �â÷÷÷ú÷ú÷úúúþÿÿÿÿÿÿÿûÕ�~~~�~}}~~�¡¡��¡¡‘~~‘‘¡‘‘‘¡‘‘��‘‘�‘¡�‘‘‘‘¡‘¡¢¡¡‘‘‘‘¡¢¡¡¡‘‘‘¡¡¡¡¡¡¢¢¡¡¡¡¢¢¢¢¢¢¢£¡¢ÔýÿÿÿýÝ£¢££¦¦¢¢¢£¢¡¢¢£££¢¢¢£££¢¡¢¢¢«£¢¢¡¢¢£¢¢¢¢¢¦¦££¡¢¡£¢¡¢¢¡¢¢¢¢¡¢££¢¢¡¡¢¢¢¢¢¢£¢¢¢¢¡¡¡¡¡¡¡¢¡¢¢¡¡¡¡¡‘¡‘‘‘¢¡¡¡‘¡¡¡¡‘‘���‘�‘‘‘¡��¡‘�~���‘‘~€¡‘~~‘‘~~~‘~}~~}~~}}}}}}}|~s}}}}|}}}}}vw}w}Ùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü–!!!BáÿÿÿþÈ! !!!!! !   oÓúüüüüüüýþüüûúûüüúüúà_                                                                   �à÷÷÷ú÷÷÷úúúþÿÿÿÿÿÿÿûÓ�~}��€}�‘~��~~~~~~~~~�~~‘��~�¡‘�‘‘‘�‘¡¡‘¡¡¡¡‘‘¡¡¡‘‘¡¡¢¢¢¡¡¡¡¡¢¢¡¡£¢¡¢¡¡¡¢¡¡¢¢¡¢£ëÿÿÿÿûÛ£¢¢¢¢¢¢¢¢¢££¢¢¢££¢¢¡¢£¦££¢¢¦£¢£¢£££¢¢¡¢£¢¢¢¢£¦£££¡¢£¢£¢¡££¢¡£¢¡¡£¡¡¢¡¢¡¡¢¢¢¡¢¡¡¢¢¢¡¢¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡‘‘¡¡¡‘‘¡‘¡¡¡��������~�‘�‘‘~��€~‘~~}}€~~~�}}~€}~}}~}}}}}|}}}}}w}||w|}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþË9!!„þÿÿÿó[!  !!! !     pÕúüüüüüüýýûüüüüüüúüúà_                                            �â÷÷ú÷ú÷÷úúúþÿÿÿÿÿÿÿûÕ�~~~�~~~�~�~~�‘~~���~~¡��‘‘‘‘~¡‘�¡¡¡‘¡¡¡‘¡¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¡¡¡¢¢¡¢£¢¡¢¢­ûÿÿÿÿõ¨¢¢¢¢¢¢¢¢¢£¢£¢¢¢£££¡££¦£££¢¢¢¢£¢£¦¢¢¢¢¢¢£¢¢¢££¢¢¢¢££¡¢¢¢¢¢¢¡£¢¡¡£¡¡£¡¡¡¡¡¡¢¡¢¢¡¡¢¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘¡¡¡�‘‘‘¡‘‘�‘¡‘‘���~‘‘~�~~�~~~‘~~~~�~~~~~~~~~}~~~}€}}~~}}}}}}}}}}||}}||}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏB!!!@çÿÿÿþÈ!!! !!   !   oÕùüüüüüüýýúúüüüüüüüúà_                                                             �à÷÷÷úú÷ú÷úúþÿÿÿÿÿþÿüÕ~}}~~~~~~~~~}~‘‘��¡��~�‘‘¡‘�¡¡~¡‘�¡¡‘¡¡‘‘¡‘¡‘¡‘¡‘¡¢¢¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡¢¡¡¡¢¢¢¡¡¢¢¡¤ãþÿÿÿÿõ¨¡¢¢¡¢£¡¡¢¢££¢¢£££¢¢£££££¡¢¢£¢¡£¦¡¢£££¢¢££¢¢¢¢£¢¡£¢¢¢¢¡¢¢¢¡¢¡¢¢¡¡¡¡¢¡¢¡¡¢¢¡¡¡¡¢¡¡¡¢¡¡‘¡¡¡¡¡‘¢¡‘¡‘‘¡¡¡¡¡¡‘�~¡¡‘�‘‘�‘�~�~‘‘~�~~‘~~‘~�~‘~}�}‘~~~�}}€}}~}}}}}~~}~}|}}}}}}|}}}|}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÏ[!!@ÈþÿÿÿòZ !!!!!!!  !pÕúüüüüüüýþüüúüüüüúüúà_                                                                     �â÷÷÷÷÷ú÷÷÷÷þÿÿÿÿÿÿÿûÕ�}~~}}~~��~~‘��~�~~~��~‘‘‘�¡¡��¡¡¡‘�‘¡‘‘¡�‘‘¢¡‘‘‘¡¡�¡¡¡¢¡‘‘¢¢¢¢‘¡¡¡¢¢¡¡¢¢¢¡¡¡¡¡¢¢¡¥íþÿÿÿÿøÔ¢¢¡¢¦«£¢££££¡¢¢¡£££¢¢££¦£¢££¡¡£¢¢¦¦£££¢££¦¦£¢¢¢¡¡¡¢¢¡¡¢¢¢£¢¢£¢¡¡¡¡¡‘¢¢¡¡¡¡¡¡¡£¡‘¡¡¢¢¡¡¢¡‘¡¡¡¡¡¡�‘‘‘‘‘¡¡�‘¡‘¡‘�~~‘¡¡��‘�‘‘���~‘‘¡‘‘‘~~~~�~}~}}}~~~~}~}|}}}}}}}}}}}}|v}}||}}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÎB!!!!–ýÿÿÿþÆ$! ! !!!!    !   oÒúüüüüüüýýúúúüüúúüüúà_                                                                    �à÷÷÷÷÷÷÷÷÷÷þÿÿÿÿÿÿÿûÕ¡~~‘�~~��~~~~~~‘�~~¡‘‘‘��~�~��‘�‘‘¡¡¡‘‘‘‘¡¡‘¡¡‘¢¡�¡¡‘¡‘¡¢¡¡¡¡¡¡£¡£¡¡¡¡¡¢¡¡¡¢¡¡¢¡¡¡¢¢¨õÿÿÿÿÿû㨣£¢£¢¡¢¡¢¢¢£¢£¢¢¢¢¢¢¢£¢£££¢¢¢£¢¢¢¢£¢¡¢¢££¢¢¢¡¡¢££¢¢¢¢¢¡¢¢¡¢£¢¢¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¢¡¡‘‘¡¡¡¡¡¡¡‘¡‘¡¢¡‘��‘¡‘���‘‘�‘¡‘‘��~~�‘�~‘�~��~~}~}}~~}~~~}}}~}}~}}}~s}~}}}|}|}}|wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÃ9!!!$�óÿÿÿÿç@ !! !      qÕ÷üüüüüüýýúúüúüúúüúúà_                                                                      �à÷÷÷÷÷÷ú÷÷úþÿÿÿÿÿÿÿüÕ¡~~~�~~~�~~~���‘�~~‘������‘‘�‘¡�‘‘‘¡‘‘‘¡¡¡¡‘‘¡‘‘¡‘¡¡‘¡¡‘¢¡¡¡¡¡¡¢¡¢¡‘¢¢¡¢¡¡¡¢¢¡¡¢¢¡¡¢¢­õÿÿÿÿÿÿûÚ¨£¢¢¢¢¡¢¢¢£¢¢£¢¢¢¢¢¢£¢¢¢¢¢¢¢¢£¢¡¡¢¢¢¡¢£¢££¢¢¢¢¡¢¡¢££¢¡¢¢¢¢¢¢¢¢¡¡¢¡¡¡¡¡¡‘¡¢¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡¡‘‘¡¡¡¡‘‘‘¡‘‘�¡‘��‘¡‘‘��¡~~��‘��‘~~��~~~~~~~}~~~}~}}~}}~}}}}}}}}}}}}}}}}}}}|}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþúËZ9!!!!‚òÿÿÿÿò_ !!!! !     vÕ÷üüüüüüýýúúúúúüüüüúà_                                                                       �à÷÷÷÷÷÷÷÷úúþÿÿÿÿÿÿÿûÕ����~~~~~~~¡¡‘‘���‘~����‘¡¡¡‘‘�‘‘‘~‘‘¡¡¡‘¡¡�¡‘‘‘¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¢¢¡¡¡¢¢¡¡¡£¢¡¢¢¢¢¨íþÿÿÿÿÿþûíݨ¨£¢£¦¢££¢¦¦¢£¢£¦££¢¢¢£££¢£¢¢¢££¢¦£¤¢¢¦¦¦££¡¢¢¢££¢¢£¢¢¢¢¤¢£¢¢¢¡££¢¡¤¤¡¤¤¡¢¡¡¤¡¢¢¡¡¡¤¡¤¡¡‘’‘¡¤¤¢¡¡¡‘¡¡‘‘‘‘¡‘‘‘‘¡‘‘‘‘‘‘‘‘‘€‘‘‘€€€€‘‘‘€‘€‘€}}}}}}w}wwÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ÷ÏÃ_9!!!!=„óÿÿÿÿú„! ! !!  !!  oÓúüüüüüüýþúüüúüúüüüúà_                                                                                 �â÷ó÷÷÷÷÷úóúþÿÿÿÿÿþÿûÕ~�~}~~~}~~~~}}~~~~~~‘¡¡�~~~~��¡¡‘��‘~�¡‘¡‘‘¢¢¡‘‘¡¡¡¡¡‘‘¡¡‘¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡£¢¡¡¡¢¢¡¡¡¡¥êþÿÿÿÿÿÿÿÿþûøõëëííëíëëëëííííëíëíëíëííëëëëëëëëíííííííëíëíííííííííëííííííííëííííëëííííéííééííëííéíííííééíííëéííéèéééííèèèèèèéééééèèéééèèéèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèâèèèèèàßßßßßßàßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÞßßßßßßßßßßßßÞßÞßßßßÞßßÞßÞßßßÞÞÞÏÞÞÞÞÞÏÞÞÎÞÞÞÞÎÎÞÎÞÎÎÎÎÎÎÎÎÎÞÞÞÎÎÎÎÎÌÎÎÎÎÎÌÎÌÌÎÎÎÎÎÎÎÎÌÎÎÎÎÎÌÌÌÎÎÌÌÌÎÎÌÎÌÌÌÌÌÌÌÌÌËÎÎÎÈÄ�Z;!!!!$$BÆüÿÿÿÿþÈ9!!!!!! !!!!       pÓ÷üûüüüüýýúúûúúúúüúúà_                                                                                             �â÷ó÷÷÷÷÷÷úúþÿÿÿÿÿÿþüÓ~~~~�~}~‘~~~~~��~�‘~~~‘~��~‘‘~‘‘‘�‘‘¡‘‘‘�‘‘�¡‘‘�¡¡¡¡‘‘¡¢¡¡¡¡¡‘¡¡¡¢¡¢¢¡¡¡¢¢¡¡¡¢¢¡¡¢¢¡¢¢¡¥Øùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè�}}|||w}w|w|wvwv|vvpvwww}vvvvvvppvppppvpoppppopvppooooooopppooollollpllolollollCllClClllllCCClCCCC?CCCCCCA?CCA?>>CA>C>>AA>C>>>>>=>>>=>>>>>==>=====$========9$===$9$=$!$$$!!!!9�çþÿÿÿÿþË;!! !! ! !! !    vÓ÷üüüüüüýþúúúúüúúúúúà_                                                                                                        ›à÷÷÷÷÷÷÷÷÷úþÿÿÿÿþÿÿýÓŽ~~�~~~~~~~~~�‘~~~¡�~~‘���‘‘‘‘���‘‘‘‘¡‘¡¡�‘¡�¡¡�¡¡¡¡‘¡¡¢‘¡¡¡‘¡¡¢¡¡¢¢¡¡¢¡¡¢¡¡¢¡¢¡¡¡£¢¡¢¢¢¡¨äûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè}w||v|vvvwv||||vppvpvvvppppppvpoppvppppopppolopppooolooloooloollllloClollllllC?llll?ClCCC?C?CCC?C?CCA>CCA>A?>>>?>>>>>>>>>>>>>=====>========>=====$===$===$$=$=$$$!$$!!$$!!9xÏüÿÿÿÿÿüÆ;  !!! !!        pÕ÷üüüüüüýýúúúúüúüúüúà_                                                                                                              ›à÷÷÷÷÷÷÷÷÷úþÿÿÿþÿÿÿûÖ�}}}}~~€~~~~�~~~�‘‘�‘�~¡‘‘¡‘~�‘¡‘¡‘¡‘¡‘‘¡¡‘¡¡¡¡¡‘¡�¡¡¡¡¡‘‘¡¢¢¡¡¡¡¡¡¡£¡¡¡¡¡¢‘¡¢¡¢¦£¡¡¡¡¢£¢¨ãõþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè}vvp||w}|pvppvv||vvvvpvvpvvpvpvpvppwpvpppooolpooooloolollplllllllooCllolllllllllCCllC?C???CCCC??C?>C?>>C?CC??>>C???>=>?>>>>>>>=>A>>>============$=======$$$==$$$!=!!=!$=B[Ãðüÿÿÿÿÿÿú–9!!! !! !!! !!  !pØúüüüüüüýýúúúúúúúüúúà_                                                                                                         ”ßóó÷÷÷÷÷÷÷÷ýÿÿÿÿÿÿþýØ�~~~~~~�‘‘�~~���~~����‘‘‘~‘‘���‘¡¡‘~‘¡‘‘¡‘¡¡‘¡��‘¡¡��‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡‘‘¡¡¡¡¢¡¡¡¡¡‘¡¢¡¡¡¡¢£¢¨ãõøûûýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýýýýüýüüýýýüüýýüüüüüüüüüýýüüüüèÒžžžžžœœžžžž�������œ�ž�ž�œœœžžœ›œ››œ››››››�œœ�›œ›››œ�œ›››�›››››››››››››––››–››–›–”–”––”–”–––––›–––””””””…–”…”…”ƒ……ƒ”…ƒ””ƒ„„…ƒ„…ƒ……ƒ„„ƒ„ƒ„ƒ‚„ƒƒƒ„ƒƒƒƒƒ„‚‚ƒ„„‚‚‚‚‚‚‚‚„ÂÈËÎçýÿÿÿÿÿÿÿÿò�$!!!!!!! !!!       vØúüüüüüüýýúúúúúúúüúúÙ[                                                                                                                  ƒßó÷÷÷÷÷÷÷÷÷ýÿþÿþÿþÿþÚ�~�€~}~‘~�‘~~}~�‘��~���~�‘‘�~‘‘���‘‘¡‘‘�‘‘¡‘‘‘‘‘¡¡‘‘‘¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¢¢¡¡¢¡¡¢¡¡¢¡¡¢£¡£¢¡¢¢¢¡¡¢¢£¢¢¨¨­­­­¨¨­­­­­­­­¨¨¨­­­­­­­§­­­¨­­­­­­­­­­­­­­­­­­¬­­¨­­¬¨§¨¨§­­¨§¨§¨§§¨­§§§§§§§§§¨§§§§ž§§§¨§§§§§§§§§§¬§§§§§ž§žžž§§§§§šž§šž§ššž§ššž§ššš™žšœššœš™ššš™œ™šššš™™™š™˜™œ™™™™ÙüýþýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýýüýýüýýýüýýüýýüýýüýüüüüýüüüýüüüüüýüüüýýüüüüüüüüýþÿÿÿÿÿÿÿÿÿÿÿúÈY !!!!!!!!! ! !!    |Úúüüüüüüýýúúúúúúúúú÷ÙZ                                                                                                          zÙ÷÷÷ó÷÷÷÷÷÷üÿÿÿÿÿÿÿþà�~€�~}~‘‘~~~~~~�~�‘�~‘�~~‘‘��~‘‘�~�‘‘¡¡‘~~‘‘‘‘‘¡‘¡¡¡‘‘¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¡¢¡¡¢¡¡¢¡¡¢¢£££¡¢££¢¡¡¡¡¡¡¢¢¢£¢¢¢£¢¡¡£¢¢£¡¢¢¢¡¡¡¡¢¢¡¡¢¢¡¢¢¡¡¡¡¡£¢¢£¢¢¡¢¡¡¢¢¢£¢¡¡¢¢¡¢¡¡¡¡¡¡¡¡¡‘¡‘¡¡‘¡¡¡‘‘¡¡‘�¡¡¢�¡¡¡~��‘¡‘‘‘�‘‘��‘‘‘‘���~~~~��~‘~��~~~}~}~~~~~�~}}~}}}}}}}}}}}}|}}}}}}}}}}|v}}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÏ[!!!!!!!!!!!!! ! !  !}àúüüüüüüýüúúúúúúúúü÷ÙY                                                                                                            xÙò÷÷óóó÷÷÷úüÿþÿþÿþÿþà�}}}~}}~�~~�~�~~~~~~~~~~��~‘‘�¡¡¡¡¡‘���‘‘�‘‘�‘¡¡‘¡¡‘‘¡¡¡¡¡¡¡‘‘‘¢¡¡‘‘¡¡¡‘¡¡¢¡¡¢¡££¢¡¡¡¡‘¡¢¢¡¡£¡‘¡¡£¢¢£¢¢£¢¡¡££¡¡¡¡¡¡¢££¢¢¢¢¡¡¡¡¢¡¡£¢¢¡¡¡¡¡¡¡¡¢¡¢¢¡¡¡¡¡¢¡¡�¢£¡¡¡¡£¡¢¡¡¡¡‘¡¡‘¡¡¡‘¡‘¡¡¡¡‘‘‘¡¡¡¡��¡¡�‘‘¡‘‘¡�~~~��¡‘~~�~~~~~~}‘�~~~~~‘~~}~}~}~~~}~}}}|}}}}}}}}}|||}}|pw}vwÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþó΂9!!!!!!!!!!! !!    !æüüüüüüüýüúúúúúúúúú÷×Y                                                                                                                    _Ùò÷÷÷÷ó÷ó÷÷üÿÿÿÿÿÿþþèŸ}}}~~~~~~~}~€�~~~€�~�¡‘‘�‘‘~����~~€‘�~‘¡¡¡¡¢‘~‘‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¢¢££¢£¢¡£¢¢¢¡¢¢¡¡¡¡¡¢¢¡¡¢££¢¢¡¡¢¡¡¡¡¡¢¢¢¡¡¢¡¡£¡¡¢¡¡¢£¢¢¢¡¡¡¢¡¡¡¡¡¢¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘¡¡¡¡�‘‘¡‘���¡¡¡‘���‘‘¡��‘‘‘�~~���‘�~~�~‘‘�~~~~~~~}��~}�€}}}}}~}}||}}}}}}}}}w}}ww|}s}|}wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüó΂Z9!$ !!!!!!!! ! !!!     !}æüüüüüüüýüúúúúúúúúúõ×B                                                                                                                         ]Ùò÷÷ó÷ó÷ó÷÷úÿÿþÿþÿþÿé‘~~~~~}~~~~~~~~~~~~�~~��~~‘‘~¡�~‘���¡‘�‘¡‘‘‘¡‘�¡‘‘¡‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¢¢¢¡¡¡¡¢¢¢¡¡¢¢¡¢¡¡¡¢¢¡¡¡¢¢£¡¡¢¡¡¡¢¡¡¡¢¢¡¡¢¡¡¡¢¡¡¡¡¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡‘‘¡¡¡¢¡‘¢‘‘¡‘¢¡‘‘‘¡¡¡‘�‘�‘¡�‘‘‘�‘‘�~�‘¡�~�‘~�‘~~~���~�~~€~~}~}~~~}}}}}}}}}~}}}}}}}}}}|}}|}||www}wœâèèèèèèèèâââèâèèâèâââââèèâââââââââââââââââââââââââèâââââââááââáââááâáââáâááááâââáááâááááááááááááááááááááááááááááááÏááÏááÏááááÏÏáááÏáÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÎÈ„_@$$$!!!!!!!!!!!!  !   =�èüüüüüüüþüúúúúúúúúúõÊ@                                                                                                                      B×ò÷÷ó÷÷óó÷÷úÿÿÿþÿÿþþõ¤�~}~~~~}}~~~}~��‘~~��~���‘���~‘‘‘¡¥¡‘�¡‘‘~�¡¡‘�‘‘‘‘‘‘‘‘¡¡¡¡¡‘‘¡¡¡¡‘£¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¡¡¡¡¡¢¢¢¡¡¡¡¡¢¡¡‘¡£¡¢¢¡££¡¢¢¡¢¡¡¡¡¢££¢¢¡¡¡¢¡¡¢¡¢¡¡¢¢¢¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡‘¡‘‘¡¡‘‘¡¡¡¢¡¡¢¡‘¡¡¡¡‘¡‘��‘¡‘‘¡�����‘‘‘����~~�~~~�‘~�‘~~~}}~}}}}}}}}}}}~}~|}}}|}|w}}}}|||}v|}}}}ww}w}}w}}w}wwwv}wwvvvwvvvvupvvuuvwpvuuvwppvvupuuvvpoovuuuoouuooouolooutototooootlltlolCtllCCCCllCCCClCAACCCCCAACCCAAAACCllAAAAAAAAAAAA>A=AA@@@AAAA=;===@9@@=====@9$!!!!!! !!!!!!!!!!!!! !  !  !   CšôüüüüüüüþüúúúúúúüúüôÊ#                                                                                                                #Óñ÷÷÷÷ó÷óó÷úÿÿÿÿÿþÿÿø§~~}}}}}~~‘�‘‘~�‘~~~~��‘�‘¡‘‘¡~~~‘‘‘�¡�‘~�����‘‘‘¡¡‘¡¡¡¡¡¡¡‘¡¡‘¡¢¡‘¢¡‘¡‘‘¡¢¡‘¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£¢¢¢¡¢£¡¡¢¡£¦£¢¡¡¢¢¡¡¡¢¢¢¢¡¡¡¡¡¢¢¢£¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘¢¢£¡�¡¡‘‘¡¡‘�‘¡‘‘‘��‘¡‘¡¡‘�~‘¢‘��‘‘‘�‘‘�~~~~~~~}�‘‘}}~~}~�~‘~}}}~~}~}~�}}}}}|}}}~}}~}}|w}|}}}|}}||vvvv|v|vvwvppv|wwvppvvpppvpppp|}vvoolovvvpllooloollolllloppolllolCllClllClCCCCCllCCCCClC????CC?ClCl??CC>A>?AC?AC???A==>>>>>>>=============>======$=$$==$==$$$!!$=!!!!!$$!!!!!!!!!!!! !!!!!!! !! !!!    l§õüüüüüüýþüúúúúúúúúúèÇ                                                                                                                          žèó÷÷ó÷÷÷÷óúþÿÿþÿÿþþý­�}~}~~~‘~~}��~~~�‘~~�~~����‘‘‘‘‘‘‘~‘¡‘�¡‘‘¡¡‘‘‘‘¡¡‘¡‘‘‘¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¢¡¡¡¡¡¡£¡¡¡¡¢¡¡¡¡¡¡¢¡¡£¡¡¡¡£¢¡¢¢¡¡¡¡¡¡¡¡¡¢¢¡¡¢£¡¡¡¡¡¡¡¡¢¡‘¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘‘¡‘‘‘‘¡¡‘�‘¡¡‘‘‘‘�€¡‘~~‘��~‘‘~�~~�‘‘~~~~~~~~~~}~~~}~�}}~}}}}�~}s}||}}}}|}}}}||}||||}||||||v}|pv|vp|}v|v|vpvvppvvpv|vpvvppooppppppoppooopoooolpollllllllllllllllllllllCClCCCCllCCCCCCll????C???CC?>?>>=A>>>>A>>>>>==>>=>=======================$$$$$$$==$$!!!!$!!!!!!!!!!!!!! !!! ! !!      pÓúüüüüüüýýúúúúúúúúúúè›                                                                                                                                             ˜â÷óó÷ó÷ó÷óúýÿÿÿþþÿÿýÚ�}}}~~�}€~}~�~~~~��~€~�~~~¡�‘‘‘‘‘~¡‘�¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘¡¢¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢‘¢¡¡¡¢¡¡¡¡¡¡¡£¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¢¡‘¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡‘‘‘¡‘‘‘¡‘�‘‘‘¡�‘‘¡‘‘‘��~�‘�~¡‘~~‘‘€~~�‘‘�~~~~~~~�~~}~}€}~~~~}}}~}}s‘}}}}}}~s}}}}}}|}|s}|||w||v||||||vvw|v||vvvvpvvvpvvvpp||p|voppppppopoopoppoooopolololloollllllllllCllllllllCClClllCCCCCCll>CC>AC?>?CC???>=>>>>>>=AA>>=>>==>=>==================$$=$=$!$$$$$$!$!!!!!!$!!!!!!!!!!!! !! !!  !!      wÙúüüüüüüýýúúúúúúúúú÷æƒ                                                                                                                                      ƒàóó÷÷ó÷÷ó÷óýÿþþÿÿþþþè’}~}}}}~~}}~~~~~���‘‘�~~�~~�‘~‘�‘¡‘��‘‘‘‘‘‘‘‘¡��‘�‘¡¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡‘‘‘¡¢¢¡¡¢¡‘‘¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢‘¡¡¡¢£¢¡¢¡¡¡¢¡¡¡¡¢¡¡¡¡‘¡¢¢¢¡¡‘¡‘¡¢£¡¡¢¡¡¡¡¢£¢¡¡¡¡¢¡¡¢¡¡£¡¡¡‘¡¢¡�‘¡‘¡¡¡¡�‘‘¡‘‘�¡¡¡‘~~~‘‘�‘¡¡‘~�‘�~�~‘‘‘~~}~‘‘�}}~~�~~~~~€}~~�}}}}}}}wv}||}}}|||}}}}}}}}}w||v}}}}sw}}vvp|vppppppvpppvpppppov|pvopopoppoopoppllopooolooololollCClloollllCClCllCCllllCCCCC?CC>?C?>>??>A>>?????A>>>>>>>=>>>>>=>============$=====$=======$$=$$!$==$$$$!!!$!!!!!!!!!!!!! !! ! !!!!   =‘èüüüüüüüýüúúúúúúúúú÷à_                                                                                                                             xÙó÷óóó÷÷ó÷÷úÿÿþÿÿþþÿù¥~}~~~~~�~~€�~�~~~~~~~~���~~~~¡�~‘‘�~��‘¡‘‘‘‘¡‘¡‘‘¡¡¡¡‘���‘¡‘‘‘¡¡‘‘¡¡¡¡¡‘‘¡¡¡¡¢¡¡¡¡¡¢¢£¢¡¡¢¢¡¡¢¡¡¡£¢¡£¢¡¡¢¡¡¡¡¢¡¢¡¡¡¢¡¡££¢¢¢¡¡¡¡¢¢¡¡‘¡¡¡¡¡¡¡¡‘‘‘¡¡¢¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘¢��‘¡¡�‘¡�����~�‘¡‘�‘‘‘�~}��~~~~�~~�~~~~�‘‘~~~}~~~}}~~~}|}~}}}}~~}}}|}}}|||v|v|v||}}|vv|}|pvvvppv|v|vpvw|vpoppppppoooopvpopoplopooppooooloolpollllllolllllllllCCllCCllCClCClC?lCCC?CClC??C??C>>?>>>>>>>>>=>=>A=>>=====>>====>========$$$$==$$$$$$$$$$$$!$$!!$!!!!!!$!$!!!!!!!!!!! !! !   ! l¥õüüüüüüüþüúúúúúúúúú÷ÙY                                                                                                                                          ]×ò÷÷ó÷÷ó÷÷óúþÿÿþþþÿþû¬�}~~~~~‘}~�~~~~~~¡~~�~~��‘‘~‘~~�‘��‘‘‘‘‘�‘‘¡‘‘¡‘‘‘�¡¡‘¡‘‘¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡¡¡¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¢¡¡¢¡¡¢¡¡¢¡¡¡¡¢¡¡¡¡¢¡¡¡¢¢¡¡¢¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘¡‘‘~‘¡‘¡¡‘‘¡‘�¡‘‘‘~�~~‘��‘‘�‘‘�~~���~�~~~�‘~}~~}~}~~}}~}}~}}}}€}}}}s}}}}}}|}}}}w}}v|}}}|v||||vv|}v|}vvv|ppvvppvppv|ppp|ppppppopoopopppoopoooplollloolllloollllllllllllllCClllC?CClCCCCCCC>l?>?C???>>A>?C>>A>>>>A>>>==>>=>>=>===========$=====$=$$=$$=$$!=!!$$!$$!$$!!!!!!!!!!!! !!!!      v¬÷üüüüüüüþúúúúúúúúúúòÊ;                                                                                                                                       @Çñ÷óó÷÷ó÷÷÷÷þÿÿþþþÿþþà�~~~~~}~�}~~~~~�~~~~�����~~�‘‘�~~~‘��‘¡¡‘�~�‘�‘‘‘¡‘‘�‘¡¡¡¡¡¡‘¡¡�‘¡¡¡¡¡¡¡¡¡‘¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡‘‘¡¡¡¢¡‘¡¡¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢‘¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡‘¡¡‘¢¡¡¡‘‘‘¡¡‘‘‘¡‘‘‘‘‘¡‘¡¡¡¡��‘~��‘���~~�‘‘‘‘¡�~~~��‘�~~~�‘�~}~}~}}}}}}~}}}}}}}}}}}}}|}}}}wv}|}}}}}}}w||||}|pv}|||||wvvpvvvpvvvvvppppvvpppoooppppppppoooooopollllloollloollllllClllllCllCCCll?CCCCCCClC?>C?>C????C?A??C>>?>=>>A>==>==>=>>>============$=======$$=$!$=$$$$$$!!!$!$$!!$!!!!!!!!!! !!!   !  !!!€àúüüüüüüýýúúúúúúúúúúè�#                                                                                                                                            �â÷÷óó÷÷÷÷÷÷üÿÿþþÿÿþþô¤}}}~~}~~~~}~~~~}~~���‘~~~~‘‘¡¡�‘��~��‘‘�‘‘‘‘‘�‘¡¡‘‘‘‘‘¡¡¡¡¡‘‘¡¡‘¡¢¡¡¡‘¡¡¡¡‘¡¢¡¡¢¡‘‘¡¢¢¢¢¡¡¢¢££¡¡¡¡¡¡¢¢¡¡¡¢¢£¢¡¡‘¡¡¢¡¢¡¡¢¢¡¢¡¢¢¡¡¡¡‘‘¡¡¡¢¢¡¡‘¡¡¢¢¡¡¡‘¡�¡¡¡¡�¡¡‘‘¡¢¢¡‘¡‘‘¢¡¡‘‘�‘‘‘‘¡¡‘‘�¡‘‘‘‘��‘~~�~¡����~~~~~~�~}�~~}��~}}~}}}}}~}}}w|}}v|||}||}w|v||v|}v|v||w}|}|vv|vv}|pvvpppvvpppvpoopppppppvppoopplooolllpplllllloolllllClllllllllClClCC?CCCllCCC???CCC>?C??>A????>=>>>?>?>===>>>C>>======>==============$=====$$$=$$=$$$!!!!!!!$$!!!!!!!!!!!!!!$!!  ! !!    ?¤èüüüüüüüýüúúúúúúúúú÷⃠                                                                                                                                                 ”ßó÷÷ó÷÷÷óóóüÿþÿþþþþþú§~}}}}}~~�~~~~‘~~~}~~~~~~�‘‘‘�~~�‘�¡¡‘‘‘�~‘¡¡‘��‘‘¡¡‘‘¡¡‘¡¡‘�¡¡¡¡‘‘‘‘¡¡¡¡¡¡¡¡‘�‘¡¡¡¡‘‘‘¡¡¡¡¡¡¢‘¡¢¡¡¡¡¢¡¡¡¡‘¡‘¡¢¢¢¢¡¡¢¡¡¡¡¢¡‘¡¡¡¡¢¢¢¡‘¡¡¢¡¡¢¡¡‘¡¡¡¡¡‘‘‘¡‘‘¡¡¡¡¡‘¡‘¡‘‘¢�¡¡�‘�¡‘‘‘��‘¡¡¡¡‘~���‘¡‘�~~~‘�~~~~~~‘‘‘~}}�~~~~}}~~}~~~~}}}}}}}~}}}}}}|v}}}}}}|}||||||vv}|||v|||vvqvv|qvp|wpv|pppoppppoovpppppppopooopoooloolooollloollllollllllllCCCCCllllCClCCC?C?>????CCCA??>>???>>==>==>>>>>>>>===>=>A==>====>============$=$!$=$$$$!!!$$!!$!!!!!!!!!! !!!!!! !!  !     oÒ÷üüüüüüüþüúúúúúúúúúõÙ_                                                                                                                                     Z×ò÷÷÷óóó÷÷óúþÿÿÿþþÿÿþÚ‘~}}~}~~~}�~~~~~�~~‘}~��������‘����‘¡‘‘��~�‘‘¡‘‘�¡‘¡¡‘‘¡¡�¡‘�¡¡¡‘‘‘‘‘‘¡¡¡¡¡¡‘¡¡¡¢¡¡¡¡¡‘¡¡¡¢‘¡¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¢¢‘¡¢‘¡¡¢¡¡¡¢¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘¡¡¡¡¡‘¡‘‘‘‘‘¡‘‘¡~¡¡¡�‘¡‘‘�‘‘‘‘¡��~‘���~��~~~~‘‘~~~~~~~}~~~~~}~}}}}~}}}}}}}}}}}}}|}}|}}}}}||}|w||w|v|vq||||wvpp}vp|vpvpvvvpppppppvppvpppolopppooopopolooloolooololCloollllllllllllCllll??ClCCCCC????CCCC>C?>A?>>?>>>?>=>>>>>>>=>>====>=================$==$$=$$=$$!!$$!!$$$!!!!!!!$!!!!!!! !!!! !   !   $€àúüüüüüüýýúúúúúúúúúúôÊ@                                                                                                                                                 #Êñ÷÷÷ó÷÷ó÷÷÷ýÿÿÿþþþþþõ¥�~~~}}}~~~~~~�}~~~~�}€‘����~~�‘�‘‘‘��¡‘�‘�‘��¡‘‘�‘‘¡¡‘‘‘¡‘‘¡‘¡¡‘�¡¡¡¡‘‘¡¢¡¡¡‘¡¢¡¡¡¡‘¡¢¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¢¢¡¢¢¡¡‘¡¡¡¡¡¡¡¢¡¡¡¡‘¡¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡‘‘‘‘‘‘‘�‘‘�‘‘‘‘‘�‘‘‘¡�¡¡�‘¡‘�‘‘��~�‘¡‘�¡~~~~��‘�‘‘‘‘�~�}~~}~~~~}}~~~~}}}~~}}}~}~}}w}}}}w}}}v|}}}}|}|}}}}vvpv|p|vpv|vq|vpvwvpovvpwppvpp|wppooppplopppoopppolooooollololllllllllllllllllllCCCC??llCCClClCC??????>CC??C>>>?>>A>=?>>>>===>>==>==>>================$=$$$$$=$!!$!$$!!$$!!!!$$!$!!!!!!!!! !!!! !  !!!   Cªõüûüüüüüýüúúúúúúúúúúè�                                                                                                                                                   ›âó÷÷÷÷ó÷÷óóúÿþþþÿþþþüÓŽ}}}}}}~~~}~~~‘�~~�~�~��~��~~~~~~‘~~�‘¡¡¡¡‘�‘~‘¡‘‘�~‘¡¡¡¡‘‘‘‘¡‘¡¡¡¡¢¡¡¡¡‘�¡¡‘¡¡¡¡¡¢¡¡¡¡¡¡‘‘¡¡¡‘¡¡¡¡¡¢¡¡¢‘¡¡¡¡¡¡¢¡‘¡¡‘¡¡¡¡¡¡¢¢¢¢¡‘‘‘¡¡¡¡‘¡¢¡‘‘¡‘¡‘‘¡¢¡¡¡¡£¡‘¡¡¡¡¡¡¡¡‘~‘¡�‘‘�‘�‘~‘‘¡‘�~~���‘‘‘~~�‘‘~€~~}~�~~~~�~~~~}}}~~}}~}}}}}}}}|}}}}}}}w}||w}}w}||vv}vvp||vp||wvppvppppv||vwvpvpvvpppvoooopppppllooopopoloolollollllloollllolllllllCCllCllCCCCCCCCC?CC?>>>??>?>A>CC>>AA=>A>?>==>============>>>>====$====$$====$$$!$$$$$$=$$$!!!!!!!!!!!!!!!!!!!!! !    !|Øúüüüüüüüþüúúúúúúúúú÷àƒ                                                                                                                                             zÙ÷÷óó÷óóó÷÷÷þÿþÿþþþþþè¥�~~}~�€}€~}~~��€~~~~}���~‘�~‘~~~~�‘��‘¡��‘�‘‘¡�‘¡‘‘‘¡‘‘¡‘¡¡‘‘¡‘‘¡‘‘¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¡¢¡‘¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢¡‘‘‘¡¡¡¡¡¡‘‘¡¡�¡¡¡¡¡¡¡‘‘‘‘¢‘‘¡‘¡¡‘‘¡‘���‘¡‘��‘‘‘����‘‘��~~~~~~‘�~~~~�‘�~�~}~��~~}~}}~}}}}}}}}}|}}}}}}}|}}}}}}|}}}|v|||v||}}w||vvv||vpvvppvvpppppppvpppvppoovvpoppooooolopppolollpllllolllolllllllllCllClCCCClC>CCC>ClCCCC??CC?>?C>>?>C??>>==>>=>>=>A=>=====================$$==$$$=$$$$$!$!!!!!$!!!!!!!!!!!!!!!!!!!! !  ! !   CšèüüüüüüüýýúúúúúúúúúúõÙ]                                                                                                                                           YÊñ÷÷÷÷÷óóóó÷üÿþþþÿþÿþûÕ‘~}~~~�~}~~~~~~�‘~~�~~~~~��~��‘~�‘�‘�~��‘‘�¡‘‘~‘‘‘‘‘¡‘¡‘‘¡¡‘¡¡‘‘¡‘‘‘‘¡¡¡¡‘¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¢¡‘¢¢‘¡¡¡‘¡¢¢¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡‘¡‘�¡¡¡¡¡¡¡‘‘‘¡¡‘‘‘‘¡¡�‘�‘¡‘�‘‘�~‘‘‘‘~�‘�~~‘�~~~�~�~~~~����~�~~~€~~~}~}~}}~}}}~~}}}|}}}}}}}}}}}}}}}}w}w}}v}}}v|}}||wwvv|vvvvvvvpvvppppppvvpppppppoppopppppooloopoppoolloloollllolllllllllCllCCllCC?lC??CC?CCC????CCCC>AC>?A>>>>C>>>>=>>=>>>===================$$=$=$=$$=$$=$$$$!$$!!!$$!!!!!!!!!!!!!!!!!! !! !  !   |Ó÷üüúüüüüýüúúúúúúúúúúéÇ;                                                                                                                                                �âó÷÷÷óóóóó÷úþþþþþþþþþè¤�}~}}}~~}}~�~~~~��‘~~~~~~~~�~‘‘‘‘‘‘‘‘‘��‘‘�~‘‘‘�‘��‘¡¡‘‘�‘¡¡¡‘¡¡¡¡¡‘‘¡¡‘‘‘¡¡¡¡¡¡�¡¡¡¡¡¡¡¡‘‘¢¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡‘¡¡‘�‘¡¡¡¡¡¡‘‘‘¡¡¡‘¡¡‘‘�‘¡¡‘¡‘¡¡¡‘¡‘�‘‘‘¡‘¡¡‘‘¡‘~~¡‘�‘‘‘‘~~‘�~~~‘~�~‘��‘~~~~~�‘~~�}~}}~~~~}}}}}}}~}}}|}}}~}}}|~}|}||||vw|vw}}}}|||}vvp||v|vvpv|v}vv|vppppvppppvpooploolpooppoololloooooooolloollllCllClllllllCClCCllCClCCCl?CClCC?>?>>C>>??C?>=>>???>>>==>===>=>>>>==>============$$===$=$!$$=$$$$$$!!!$$!!!!!!!!!!!!!!!!!!!   ! ?’èüüüüüüüüýüúúúúúúúúú÷àƒ                                                                                                                                                xÙòó÷÷÷÷óó÷ó÷ýÿþþþþþþþúÓ�}}}~~}~}}~~���}~~�‘�~~��‘‘~~�~~‘~~‘~�‘~‘‘�‘¡‘�‘‘‘‘�‘‘��‘¡‘¡¡¡‘�‘‘‘¡¡‘¡‘¡¡¡‘‘¡‘¡‘¡¡¡¡¡¡‘¡‘¡¡¡¡¡¡‘¢£¡¡¡¡¡¡‘¡‘¡¢¡‘¡¡¡¡¡‘¡¡¡¡¢¡¡‘¡¡‘‘¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘¡¡¡¡‘‘‘‘¡‘‘‘~‘¡�¡¡¡�����¡¡�~~‘¡�‘¡¡‘‘¡�~��~}~~~‘‘~~�~}~}}~�~�}~~}}}}~}}}}}}}~}}}}|}~w}|v|w||}v}}v||||v|ppv}wpv}|v||vvppv|vvvvvvvpppppopppvvpppp|ollolloppoplllllllllllllllllllllCCCCllllCCCCCCC?C?C??CC?>>?C>??>?>A?C?>>>>>>>C=>>>>>===>====================$$=$$$==$=$$!!!!$$!!!!!!!!!!!!!!!!!! !!  !!!!     $}Ô÷üüüüüüüýüúúúúúúúúúúòÓZ                                                                                                                                                        ;Êñ÷÷ó÷ó÷÷÷ó÷úþþþþþþþþþé¤~}~}~}}~~~~~~‘‘�~~�‘~~�~�‘�~�¡~��~‘��‘‘�‘¡‘‘‘‘‘‘‘�‘¡¡¡‘¡¡�‘¡¡‘‘�‘¡¡¡‘‘‘¢¡¡‘¡‘‘‘‘¡¡¢¡‘‘¡¡‘¡‘¡¡‘¡¡¡¢¡‘¡¡¡¡¡¡¡‘¡¡¡‘¡¡¡‘¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘¡¡¡¡¡¡‘¡‘‘�¡¡¡‘���‘‘‘‘‘‘‘�‘‘�‘‘‘~�‘¡~~�‘‘��‘‘��‘�~~���~~~�~~~~~~€�~~~}}}}~~€}|}~}}}}}|}}|}}||}}w|}}}|pw|v|v|||vv||v|p|v|vvppvpppvppvppppppppppopppoooopoopooooollooloolllllolllllllClCClllCClllCCCCCCCCCC>C?????C?>>>?>A>>>>=>>=C>>==>>====>>==>================$$$$!=$$$$$!!$$$!!!!!!!!!$$!!!! !! !!! ! !     lšèüüüüüüüüþúúúúúúúúúúúè�#                                                                                                                                           ”àóó÷óóó÷÷óó÷þÿþþþþþþþüØ¡~~~~~~}}}}}~~~~~~‘‘~~‘�~��‘‘�‘�~���~~‘~�¡¡‘‘¡‘¡‘‘�‘‘‘¡‘‘¡‘‘¡‘‘‘‘¡¡‘¡‘‘¡¡¢¡‘‘‘‘¡‘¡¡¢¡¡‘¡¡‘¡‘‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡¡¡�¡¡¡¡¡¢¢¡‘‘¡¡‘¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘‘‘�‘¡‘�¡¡‘~‘‘‘‘�‘�‘��~�‘‘�‘��~�~~‘�~~���~~~~~~}~~�‘}}}~}}}~�~}~�}}}}}}}}}}}}|}s}}}}w}||}}}wv}}vvvw}vv||vv|pv|wp|vpvpppppopvvppoovopooppplpppppopooolollpolpolllllollllllllClllCllClllll?C?CCCC??CC?????C>>>>>>>>>>>>>=>?>=>>=====>>==>=========$=========$!$$$$!=$!$$!$!!$!!!!!!$$!! !! !!! !    $ŽÙúüüüüüüüýýú÷÷÷úúúúúú÷àz                                                                                                                                               ]×ò÷óó÷ó÷÷ó÷óúÿþþþþþþþþõ§}~~}}~~~~�����~~~~}~‘�‘�~�‘~‘¡~~~~~�‘‘~�‘~�‘‘¡‘‘‘¡‘��‘‘��‘�¡‘‘¡�¡¢¡¡‘¡¡¡‘‘‘¡‘�¡¡¡£¡¡‘¡¡¡¡¡‘‘¡¡‘¡¢¡¡‘¡¡¡‘¡‘�¡¡¡¡¡¡¡�¡¡¡¡¡¡¡�‘¡¡¡¡‘‘‘¡¡¡¡‘‘¡�‘¡¡¡¡‘���‘¡¡¡¡¡¡‘����¡‘�‘¡¡‘‘‘��‘�~~�~~�‘~~‘�~~�~~~~~�~~~}}~~~~}~~}~~~}}}}~}}w}}}~}}}}}}}|v|}}|||v|||}w|}}|v|ppvww|vvp|ppvvpppppppvpppvpppvvpppppppppoooopoppllllollllllllllllCCCCCllllllCCClllCCCCC?CCCCCl?>?C?>????CC?CC?>>>==>?>>A===>>=>>>========$==$=====$==$!$$!!!!$=!$!!=$$$!$$!!!!!!!!$$!! ! !!!!   p¬õüüüüüüüüýüú÷÷÷úúúúúúôÊB                                                                                                                                                     #�âó÷ó÷ó÷÷óó÷úýþþþþþþþþýæ‘~}}}}}}}}~~~~}}~~~}~~€‘~~~�~‘�~��‘‘~~�‘��‘‘‘‘~‘�~�‘‘‘‘‘‘‘¡¡‘‘�‘¡‘‘‘‘¡¡¡‘‘¡¡‘¡¡‘¢¡‘¡‘¡‘�‘‘¡¡¡¡‘¡¡‘¡¡‘¡¡‘¡¡¢¡¡¡¡¡¡¡¡¡‘¢¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡¡‘�‘‘‘‘�‘‘¡‘‘¡¡‘‘¡‘��~‘¡‘�‘‘�‘¡‘¡��‘�‘‘‘~�~‘‘�‘�‘~~~�~~~~‘~~~~~~}}}~�~}~}~}}}}}~}}}}}}}}|}}}~}}}}|||w}||||wv|w||vp||v||vp|pp||pppv|vpvvvppppppooppoppololopolopllllpolpllloooooolllllllllllCClCCCCCC?CC???CCCCCC>A?>>?C>>>>??>>>>=>>A=>>>>>==>=>>====>===========$=$$==$=$$$$$=!!!!$!!!!!!!!!!!!!!$!!!! !!!  !    ?‘æúüüüüûüüýüúúúúú÷úúúú÷â”                                                                                                                                                                xÙò÷ó÷ó÷÷óóóóüþÿþþþþþþþúÕ‘~}}€}~�~~�~~~~�~~~�~}~��~}‘‘��~~‘‘‘‘��‘‘�‘‘‘‘��‘‘‘�‘‘¡‘¡¡‘‘‘‘�¡‘‘¡‘¡¡�¡¡‘¢¡¡‘¡¡¡‘¡¡¡‘‘‘¡¡¡‘¡‘‘‘‘‘¡¡¡¡‘¡¡¡‘‘¡¡¡¡¡‘¡¡¡‘‘¡¡‘¡¡¡¡‘¡¡‘¡¡‘‘‘¡‘‘‘‘¡‘‘¡¡‘‘‘‘�‘‘‘�‘‘‘‘‘‘��~���~‘‘�~‘‘~�‘�~~~~~€~�~�~}~~~}~~~~~�}~}~}}~}}}}}}}}}}}|}}}}}}|}}}}|v|v||v|||p}|v|v||vvppvv|vvpvvvppvvppppppppooppopooplopooloooooooopolllllollllllllllCCCCCllCCClCCCC>CCCCCCCC>>C?>>CAA?>??A>>>>=>>=>>=>>>===>===>=========$==$$==$$$$$$$!$$$!$$$!!$!!$!!!!$!!!!!$!!!!! !!     =}×úûüüüüûüýþú÷úúúú÷úúúúô×Z                                                                                                                                                                �èóó÷÷÷ó÷÷÷ó÷üÿþþÿþþþþþõ¬‘~|}~}~~~~~~~�~~~~~~~~~~~}~�~~‘‘�~�‘���~���~�‘¡‘�~~�‘‘��‘¡¡¡¡‘�‘‘‘‘‘‘¡¡¡‘�¡¡‘¡¡¡‘‘‘¡¡¡¡¡¡‘‘¡¡¡‘¡‘‘�¡¡¡¡¡¡‘¡¡¡‘‘¡‘‘¡¡‘¡¡‘¡¡‘‘¡‘¡¡‘�‘¡¡¡¡¡‘¡¡¡�‘‘‘‘‘¡‘‘¡¡����¡‘‘‘‘�~~‘‘~~~~~‘‘~~‘‘�~~~�~~}~~~~��~}~~~~~~~~~}~~}~}~}}}}}}}}}}}|}}v}}||}|}|}}}|}|}vwwp|}|v|w|wv|wvvvpv||pvvpvpvvpppppppvppppppopoopoopppooopooloolooolllllllllllCCCCCllCllCClCCCCCC?CCCCC?C??CC>>C?>CA?A???A>>>>>A>>==>=======>====>=======$$$==$$$!$$$!!=$$$=!!!$!!!!!!!!!!! !!! !!!!!!!!    !v¬õüüüüüüüüýü÷÷÷÷÷÷ú÷÷ú÷æ›                                                   Y@                                                                                           xÙò÷÷ó÷ó÷÷óó÷úþþþþþþþþþýè¤~}~}~~}}}}~~�~}}}}}~�~~�‘�~��‘~�~~‘‘‘~��¡��‘¡‘‘‘¡¡‘‘‘‘‘‘¡¡‘�‘‘��‘¡¡‘¡¡‘�‘‘¡‘�‘‘¡¡¡‘�¡‘‘¡¢¡�‘‘‘¡¡¡¡¡¡¡‘¡¡‘�¡¡‘‘‘‘¡¡¡‘‘¡�¡¡¢¡¡¡‘‘¡¡‘‘�‘�‘¡‘¡‘‘~�‘‘¡¡¡�~‘¡¡¡‘�¡‘~‘¡�~¡¡‘~~�‘~~�‘�~~‘~~}‘‘~~~~~~~�~~}~~}~~}}}~}}~}|||}}}}}||}}v}}}}|wsv|}}|}}p|}}|v||vvvw|}wvvppppvpv|vvpvppppvppopppppvoopoooolppolllllllloollloolllllllCllllllCCCCCCCC?ClC?????>?CCC?>AC>>?>>>>=>>>A>=====>>==>>==>>============$=======$$===$=$$$!$!!!$$!!!!!!!!!! !!!! !!!!   ošíúüûüüüüüýýú÷÷÷÷÷÷ú÷÷÷ô×[                                                                     ;�_#                                                                                              #Çèó÷óóó÷÷÷÷÷óüÿþþþþþþþþüà‘Ž~}}~}}~�}~~~}}~~~~~~~~~~~~~‘~~~‘‘�~~~~‘¡‘‘~~~‘¡‘��‘‘‘~���¡‘‘‘‘��¡‘�¡¡¡¡‘�‘¡‘‘¡¡¡¡¡‘¢‘‘¡‘‘¡¡¡‘‘¡¡¡¢‘¡¡�‘‘¡¡¡¡¡¡¡¡¢¡‘¡¡‘‘‘¡¡¡¡¡�¡¡¡¡‘¡‘‘‘�‘‘¡¡�‘‘‘‘‘‘‘�‘¡‘��‘‘‘��‘~¡~~‘�~~~�~‘~~�~~~����~~~~�~}}~~~~}~}}}~}~}}}}}}}}}}|}~~}|}}}}}v||}|}}}||||||v|||vvv|ppv|vppv|vppvvppppvpppppppopppopppppoopooloopolloooolllllllollllClllllClllllllCCCCCCCC?CC??>ACC??>>>?>??>>??=>>>>=>A>================>===$==>==$$$==$!$$$!!!!$$!!!!!$!!!!$$!! !!!!!!!! !!  !  !    C’àúüüüüüüüüþü÷÷÷÷÷÷÷÷úú÷æ›                                                       Y@                                                                                      zÙò÷÷÷ó÷÷ó÷ó÷÷ýÿþþþþþþþþúÙ’~}}}}}}~}~~�~~~~~~~~~~~~�‘~~~‘��~~~‘��‘~��‘‘����‘‘~‘‘�¡‘‘¡‘��‘‘¡‘‘¡¡‘‘¡¡¡‘‘‘‘¡¡‘‘¡‘‘¡‘¡¡‘‘¡‘¡¡‘¡‘¡‘‘‘¡¢¡¡‘¡¡¡¡¡‘¡¡¡‘‘¡‘¡¡¡¡‘‘‘‘‘¡¡¡‘‘�‘¡‘‘‘¡‘‘�‘‘‘‘‘‘�~��‘�¡‘~¡��‘�~~~���~��~~~~~~~~‘�~~~~~}}~~�}}~}}}}~}}}}}}}~}w}}}}|}}}|||}|v}|v}w|||||v|v||vvvp|v|pvvvvvppvpvppvpppppppooppvoppppopopppoooooolpoolooolllllllllClllllCCClllCCllCCCCC?CCC??CC?CCC???>>>>>>>>>>>=>>>>>>>========>====>====$=====$$===$$$$=!!$!$$!$!!!!!!!!$$!!!!!!!!!!! !!  !!     ?€Úúüüüüüüüüýü÷÷÷÷÷÷÷÷÷ú÷ô×]                                                                                                                                                          #�èó÷óó÷ó÷óó÷÷úþþþþþþþþþþúÚ’�}}}}}}~~~~~~~~‘€‘‘‘~~~~‘�����~���‘~~~‘�‘‘‘~�‘‘�‘‘‘‘‘�‘‘‘¡‘‘��‘¡‘¡�‘¡�¡¡¡‘‘‘~¡¡‘�¡¡‘¡¡‘¡¡‘¡�¡¡‘‘‘¡¡‘¡¡¡¡‘�‘‘‘‘¡‘‘¡‘‘¡¡‘‘�¡¡‘�‘�‘¡¡¡‘�~�¡¡‘�‘¡‘‘‘�‘‘~��~�~~‘¡�~‘‘‘����~~‘�~~~~‘~~~~~‘‘~~~~}}~‘�~}}~}}~}~~}~}}|}}|}s}|}}}|||}}}|vw||v||v|}w|v|vvvvpv|}vp|}|vppp|vpppppvvpppppvpppppppooooppopooolloollCooolllllollllllCClCCClllCCCllCClC?lCCCCCC???C>?C??>>===>>>?A>>>=>?>??>=====>>=========$$$=====$$$$$$=$$$$$$!$!!!!!$!!!!!!!$!!!! !!! ! ! ?Ù÷ûüüüûüüüýþú÷÷÷÷÷÷÷÷÷÷÷æ›#                                                                                                                                                  _×ñó÷÷÷ó÷÷ó÷÷óüþþþþþþþþþý÷Ó‘~~~~~~~~��}~~~~~}~‘~�~€~~~~~¡‘~‘¡�‘~~‘�‘~¡¡‘‘¡‘‘��~���¡‘‘¡¡‘��¡�‘¡�¡‘‘¡¡¡�¡‘‘‘¡¡¡‘¡‘‘‘‘¡�¡¡‘�¡¡¡‘��¡‘‘¡¡¡¡¡¡‘�‘‘¡‘‘‘�‘‘��‘¡��‘‘‘‘‘‘‘‘��‘‘‘��¡‘~�‘‘‘~~��‘‘‘~~~��‘~~~~~~��~~~�~~‘~}}~~~�‘~}~~}}}}~}}}~}}}}~~}~~}~}}}}ww}||}}}}}}}|}|||v}|}|vv|}}||w||pvvvpvvpp||vppppvppppoopppooppooppopolooloolplllllllllllllllllllClllllCCCCC?CllCCC?CCCC?A??CC?>CC?>????>?=>>>A??=>>=>===>>=========>===>===$===$$==$$=$$!!!!!$$!!$$!!!!!!!!!!!!!!!!!!  !    >Ø÷üüüüüüüüüýú÷÷÷÷÷÷÷÷÷÷÷ñÊZ                                                                                                                                                   ›ß÷ó÷ó÷ó÷÷ó÷÷÷üþþþþþþþþþþ÷Ô’~~}~~}}~}~~~~~~~‘�‘~~}~~‘~~‘�~‘‘~�‘‘�~~~�‘‘�����~���‘¡��‘‘‘‘‘�‘‘‘¡‘‘�¡¡‘‘¡¡¡‘¡¡¡¡¡‘‘¡¡‘�‘¡‘¡¡¡¡¡¡¡‘¡‘‘¡‘‘¡‘‘‘¡‘¡¡�‘‘‘‘¡¡¡‘‘‘‘‘‘‘�‘‘�‘‘‘‘‘‘‘¡��‘���‘~~~�~~‘�‘‘�~~�‘�‘�~~~~‘~~‘~}}~�€~€�~}}~}~}}}}}}}}}}}}}}}}}}|}}}}}}|||}}}|v|v||||||vv|v|||pvwvvv|vpppvppvppvvppoppvppppoolpooloollloollollollllloolllllClllCllllllCCCCCClCCCC?>>??CCC???>>>>AC?>?>>?>>>=>>====>=======>==========$======$==$$$$$$$$$!!!!!!!!$!!!!!!!!!!!!!!!! !!!! !   C€Óõûüüüüüüüüýü÷÷÷÷÷÷÷÷÷÷÷òàƒ                                                                                                                                                                          YÊèó÷÷ó÷óóó÷ó÷úýþþþþþþþþþý÷Ú’~~~~~}~}}~~~~~~�~~��}~€~��~~��‘~~�‘‘~~‘~~‘¡‘��¡��‘�‘‘¡~‘¡‘‘‘�‘‘‘¡‘��‘‘‘¡‘‘‘¡‘‘‘¡¡¡�‘‘‘¡¡¡¡‘‘¡¡¡¡¡‘‘¡�‘‘¡¡¡���¡¡¡¡�‘‘¡‘‘‘‘�‘¡‘‘��‘‘�~‘‘‘‘¡‘�¡€�¡‘�~�~~~‘~~‘~‘‘‘~�~�~~~�~~~~�~~~~~~~}~~�~}}}}}~~~}}}}}}}}}|}|€s}|}}}}}}|}v|}}||wpv||v}}|pvvv|pv|vvvv|vppppvpppppvppppopppopooppoploooooollllollllllloollCllolClllllllllCCCCCCCCCC??CC>??C>>>>?A>??A>?>>A?>>>=>====>>============$======$==$$$==$!$$!!=$$!$$!$!!!$!!!!!!!!!!!! !! ! !! !!      C�Ú÷üüüüüüüüüýü÷÷÷÷÷÷÷÷÷÷÷÷èÇ@                                                                                                                                                      zÙò÷÷ó÷÷ó÷ó÷÷óúþÿþþþþþþþþý÷Ú¤�}}~}��~}~~�~~��~}}~‘‘~‘‘�¡‘�~��~~~~~�‘‘‘�‘‘¡‘��¡‘¡¡¡¡‘‘‘‘‘‘‘‘�¡¡¡¡‘‘‘¡‘�‘‘��¡‘��¡¡‘‘‘�‘¡¡¡‘���‘‘‘‘‘~‘¡‘‘¡¡‘‘‘¡‘‘¡‘‘¡¡‘‘��‘‘¡¡‘‘‘‘‘‘���¡¡‘‘‘�‘��¡�‘�~��‘~~‘~~~��~~~~~~~~~~~}~~�~~}}}}}~}}}~~}}}~}}}|}}}}}}}v}|v}}}}|v|}|||v|}|pw}|vv|||pv|ppppppppvv|vpppppvpooooppoopppopoolppoppollllllllllloloolllllllCC?CCCllCCCCC?CCCCCCCC?>??>>?CCC>>>>?C>>=>>>>>>A?=>>>>=>>============>=====$$$$$=$=$=$==$!$$$=$$!!!!!!!!!!$!!!!!! ! !!!  !  !o‘Úùüüüüûüüüüýýú÷÷÷÷÷÷÷÷÷÷÷ò×x                                                                                                                                                                   #�â÷óóó÷ó÷óó÷ó÷úþþþþþþþþþýýúà¥�~~}}}}}~~}}~}}}~~~~~�~~~~�~‘‘~~�~~~~�‘‘~~‘~~‘�~‘¡~~‘�‘¡‘¡‘�‘¡‘�¡‘‘‘¡¡¡‘¡‘¡‘‘�‘‘‘¡¢‘��‘‘‘‘�¡‘~�‘¡‘~‘¡�~‘¡�‘¡¡‘‘��‘¡¡‘�‘¡‘~���‘‘‘�‘¡¡�‘¡‘�‘‘¡‘�‘~‘¡‘‘�~‘‘‘‘�~~~�~�‘~~~���~�~€~~}~�~~~~~~~~}}}}}~}~~}}|}~}}}}}|}}}}|}v|}||v|wvv||v}}|wv|vp||||pvvvv|vpppppvvvppppppppppoopppooppoolopoollopooollllloollllollCllllllCCCCCCCCClCCll??CCC??>?C?>CCA>??>>>??>>>>>=>=>>===>================$=====$=$!$$$==$!$$!!$!!$!!!!!!!!!!!!!!!!!!!!!!!! !     =v¤à÷üüüûüûüüüýýú÷÷÷÷÷÷÷÷÷÷÷õà›                                                                                                                                                        [Êèó÷ó÷÷ó÷÷ó÷ó÷üþþþþþýýýþýýüè§�~}}~~}~~~}�~}~~~~~‘~~�~~€�}�‘~���~‘‘~‘���~~�~�‘¡~~�¡�‘‘�‘‘‘�~‘¡‘���¡‘‘��¡¡‘‘‘‘�~‘‘�‘¡�‘‘‘¡‘‘‘¡‘�‘¡¡‘‘‘‘‘‘‘¡�‘¡¡‘‘‘�~�¡‘�‘¡��‘‘‘��‘‘‘‘¡‘��‘���‘���~�‘‘‘‘~���~�~~~�~~~~~~~~~~~~~�~~}~~~~~}~~}~}}~}}}~}}}}|}}}}}|}}w|}}w}v|}}||}|||p|||}||}vpv}vv|vvvpvvvvvvpvpppppppppppppppoopopppooppollolooloplollllllolClllCllllCllCCCCllC?C??Cl??CC??C??C?>A?>>>>>>>A>>>>==>=>>>>==>>======>==============$$=$==$$$!$$!!$!!!$!$!!!!!!!!!!! !!!!! !!!!  !  >}¬èúüüüúüüüüüýýú÷÷÷÷÷÷÷÷÷÷÷÷èÇB                                                                                                                                                                 zÙñ÷ó÷ó÷óó÷ó÷ó÷üþþþýýýýýýýýüòÓ‘Ž}€~}~}}~~~~~~~~~‘~~�~~��~~~�~�‘��‘‘¡‘~~~~‘~‘‘~~���¡‘�‘¡‘‘‘�‘¡~���¡‘�~~‘¡¡�‘¡��‘‘‘�‘¡‘‘¡¡¡¡¡¡‘‘‘¡‘�‘¡¡¡‘¡‘�‘‘¡¡¡‘‘~�‘‘‘‘¡¡‘‘¡‘~~¡‘��¡‘~~‘~~~‘~�~��~‘~��‘~~~~~‘~~~~}~~}~~~~~~}}~}~~}}}}~}}~}}}~}}}}|w~}}|}}||||||}|w}||}}wv|v|v}||w}vv}vv||vpvpvvpvvpppppppppppppopppoopppopoopooooooolloolololllllllllllllllllllCCCllCCCCCCCC?CC??CC????A>??>>>AC=>>>==>?=>>===>=>======>================$===$$!!=$$$!$!!!$$!!!!!!!!!!!!!!!!! !      $m€×õüüüüüüüüüüýýú÷÷÷÷÷÷÷÷÷÷÷÷ñ×x                                                                                                                                                           #›àòóó÷ó÷÷÷÷ó÷óóüþþþþþýþýýýýý÷à¨�~~}~~~~‘~}~}}~~}~~€���~~}��~‘‘~~¡~~‘‘�~�¡�~‘¡‘‘‘�~�‘~~‘‘�‘�‘‘‘¡‘¡‘~~�‘‘‘¡‘¡¡¡‘~�¡‘‘‘¡‘‘‘¡¡‘~‘‘‘¡¡‘‘‘‘¡‘~�‘����‘¡‘~�‘‘¡��‘‘���~~�‘‘‘~�~~�‘�~�¡‘~�~~�‘~~‘‘�}�‘~‘~}}~~}~}}}}~~~~}}~�~}~}~}}~}}}}}~~}|}}}}}}}}}|}}||}|w}|p||||vvp|vvpv|||vvp|ppvpvvppvppvpvpppvppvpooppoppploopoolppoooooolllllllllllllllllllllllllllllC?ClllCCCCClC?C??>>CC>???C?>>=>>=CA=>>=>=>=>A=================$$$=$===$==!$=$!!$=!!$$!!!!!!!!!!!!!!!!!!!! !! !    !l}§à÷üüüüüüüüüüüþú÷÷÷÷÷÷÷÷÷÷÷÷òÙƒ                                                                                                                                                      @Çâó÷÷ó÷÷óó÷ó÷÷úüþþþþýýýýýýýýüô×’�~~~}~‘~~~~~~~~~~~~}�~~‘‘~‘~~~‘‘¡‘~��‘‘‘~~�‘��~�‘‘~�‘‘‘~‘‘‘����‘‘¡‘‘‘‘‘‘‘�‘‘‘‘‘¡‘�¡‘�‘¡¡‘~����‘‘‘���‘‘¡¡‘‘‘�‘‘‘~����~‘¡�‘¡¡‘‘‘�‘��¡‘‘‘‘~~~~~¡�~}~~~~�~��€~~~‘�}~~~�~~~~}~~}~}}}}}}}}}}}}}}}}}}}|}}||}}|}|s}}}|v}}||w||||ww|w||vvvpppvpv|pppppvppppppppvppppppppooopopoppololloolooooolllllllllllllllllllllllCClCCClC???CCClC>??CC?>>>A?C>??>>CC>C>=>=>>>>==A>=============$$==$=====$!$===$$$$$$!!!$!!!!!!!!!!!!!!!! !!!! !     !?q’Øõúüüüüüüüüüüýþú÷÷÷÷÷÷÷÷÷÷÷÷õà›;                                                                                                                                                            ]Êèó÷÷ó÷÷÷÷ó÷ó÷óúþþýýýýýýýýýýýú謒�~~�}}~~~~~~~�~~}~~~}~~~~€�‘~~~���‘‘~‘‘�~�‘~~��~�‘‘‘‘�‘���¡‘���‘‘‘‘‘‘‘~‘‘‘‘��¡¡‘~‘‘‘¡‘‘‘‘‘��‘‘‘�‘‘¡��‘�‘‘‘‘‘‘‘����‘‘�~�‘‘~��‘‘‘‘‘�~~‘‘���~~��~~‘~�‘~�~}�~�~~�~}~�~~~}€~�}~~}}~~}}}}}}}w}}}}}w}|}}|}}||}}}}|}|}}|w}|}|||||||vvv||vvqpvv|vv|vvpppppppppvppppopppppppoopoolpooloplolllloolllollllllllllClClCllllCCClCClCCC?>CC??C??CC?C>>????>>?>A?>>>>=>=>>=>>=>>================$=====$!$$==$$$=$!!=!!!!!!!!!!!!!!!!!! !!  !!  !  !    >v�Óèúüüüüüüüüüüüþüú÷÷÷÷÷÷÷÷÷÷÷÷÷èÇY                                                                                                                                                                   zÙñ÷ó÷÷ó÷÷ó÷óó÷÷úþþýýýýýýýýýýýü÷欒‘�Ž}~}~~~~�‘~~~~~�~~~~~~~~~~~‘‘~~�~~‘�~‘¡~�~��‘��‘‘~~‘‘‘‘‘‘‘‘�‘‘~�¡�~�¡‘‘‘‘‘�‘‘~‘‘‘‘‘����‘¡¡‘‘‘‘¡��‘‘‘‘‘~�¡‘�~�‘‘����‘‘�~~‘~�‘‘�~~���‘�~~�¡�~~�‘‘‘~~~~~~}~‘‘~�~�~}~~~~}}~~~}~~}}}}}|}}}}||}|}~}s}}}}}}}}||}|}||}}v|w}|}|vpv|vvvvpw||vpw}vppvppvvvvpppppopppppppoooooopopooooolllllollllloolllllllllCCllCCClCClllCCCCC??C>>?C?CC?>>>??>>>>>AC>=>>>>>=>=>>>========>============$$==$$==$!$$!$$$$=$!!!!!!!!!!!!!!!!!!!!! !! !   !!Cp‘Òæ÷üüüüüüüüüüüüýýú÷÷÷÷÷÷÷÷÷÷÷÷÷èÊx                                                                                                                                                            ƒÙñó÷ó÷÷ó÷÷ó÷óóóúýþýýýýýýýýýýýýü÷æÓ¤‘‘~~}}~}~�}}‘~��~‘¡¡‘~~~~~~~~~~~�~�~~~‘‘~‘‘‘�~��‘‘�����‘~�~‘‘‘‘‘‘¡~�‘~‘‘¡¡��‘~~�‘‘‘‘‘¡‘¡‘��‘��‘¡‘�‘¡‘�‘‘¡¡¡‘‘‘‘¡��¡�‘¡~~~~�~~~~‘¡‘��~~~}��~��~}~‘€}~~~~~~�~~~}~~~~~}}}}}}}}}}}~}~}}}|~}}w}}||}}||}}}}||||p|}}|vvvppp||vwv||||pvvppppvvp|vppppppvvppppopoopppoloppolloollolollloollllllClClollllloClC?ClCCCCCCll?ClC?CCC?>?C?>>>?>>>>?>=?>?A>>>?>==>>=>>>=====>=$=======>>==$$$$!$$$!$!!=$!$!!!!$!!$!!!!!!!!!! !!!! ! ! !>m}šÓè÷üüüüüüüüüüüûüþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñ×z                                                                                                                                                               #”Ùòó÷óóó÷óó÷ó÷÷÷úüþþýýýýýýýýýýýýüúéÚ§’Ÿ�~}}~~~~~~~}~�~�‘�€~~~~~�~�~~~~‘�~‘‘‘~~��‘¡‘�‘���¡‘�‘‘¡‘¡‘�¡�~��‘‘~�‘‘�~�¡‘��‘¡�~~�‘¡~�‘�‘�~�¡‘‘¡���~�‘‘�~~����‘�‘‘~‘‘����~~�~�‘‘‘~~‘‘‘‘}~~~~�~‘}~~}}}~}}}~}}}��~}}}~~}}}}}~}}|}}}}}}}|}}}}}}|||w|}|}}}}}|}w|}|||vvv}vpvvvvvppvppppppppvpppppppppvpoppooppooppooooooooooollooolollooollollllllCllCCCCCCllCCCCCCCCC???C??>>CC???C>???>>==>>>>=>A==>>==>=======>====>=$==$====$$$$!$$$$$!$!$=!$$$!!!!!!$!!!!!!!!!!!!!!!! !   !>lv€§Úô÷üüüüüüüüüüüüúýþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷éÙƒ#                                                                                                                                                         #–àòó÷ó÷ó÷óóó÷÷óóóüþþýýýýýýýýýýüýýüúõèØ§¤‘Ž���~~~�~~}~~~��~~~~����~��~~������~~���¡‘��‘����‘‘�‘¡¡�‘‘¡~~��‘‘~~‘‘‘‘‘‘¡��‘‘��‘�‘‘~‘‘‘‘‘��‘��¡‘��~�‘����‘��~‘��~~‘‘�‘�~����~����~~¡�~~��~~~~~~}~~}~~}}}~�}}}}~~}}}~}}s}}}}}}}|}}}}}}}|}|p}||}|}|}}||||||v|||pv|vvvpvv|vvppvppvpppppppppo|poppopppoopppolpooopoolllooollllollllollllllCClClCCCClll??CCllC??C>CCC??CC>???>>A?>>>=>>>=>>>=>>>>===>>===$===============$$=$==$$$$$!!$$!$!$!!!!!!$!!!!!!!!!!!!!!!! !   !!$=Clp}�§×èõüüüüüüüüüüüüüüüþþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷ôÙ”#                                                                                                                                           ;›àò÷÷÷÷óó÷ó÷÷óóó÷úýþýýýýýýýýýüýýýüüüú÷éàÓ§š’‘���‘‘Ž~��~~�Ÿ‘Ÿ  Ÿ�‘������Ÿ���‘��‘Ÿ�‘����Ÿ����Ž‘���~��Ÿ�‘���Ÿ��Ÿ�‘  ‘ ��‘�‘ŸŸ‘�‘Ÿ‘‘‘ Ÿ Ÿ���Ÿ¡‘�����~�  Ÿ��Ÿ~~~~��‘‘�~�‘���‘‘~~~�¡�Ž��Ÿ�~��}�������~��Ÿ�����Ž~���~~�����~~���~�~~~~~Ž~�~~ŽŽ~~sŽ~}}~}s}~ss~~s}~~sssŽ}ss~~~~ŽŽŽ~~~Ž}Žss~}ssss}s~ssŽsŽs}Ž}s}q}}sŽ}qsss}s||}s|s|qq|}s|qqqqssqq}}qqqqs|qqqqqsqqqqpq|qqqqqqqqqspoqqqvqqqqqqspqqqpqpv|qqqs|pqqqqqpppppoppvqpopvpppppppvvvppppoppppomppomppppmopppomplmppmlmmmmmlmlpmmmmlmpmmmjmlmommmlmlmmmmmmmmmpv|w‘š§×àé÷úüüüüüüüüüüüüüüüüþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ôß”#                                                                                                                                          @�àòó÷÷ó÷óó÷÷óóóó÷úüþþýýýýýüüýüüüýýüýüüúú÷õôæÚØÕÔ­¬¬¬¬Ò¬Ò¬¬¬¬¬¬¬¬¬¬ÒÒ¬¬¬¬¬§¬¬§¬¬§§¬§§¬¬§§¬¬§¬¬§§§§¬§§§§§§§§§§§§§§§§§§§§§¬§§§§§§§§§§§§§§§§§§§§§§§§§¬§§§§¬§§§¬¬¬¬§§§¬¬¬§¬¬¬§§Ò¬¬¬Ò¬Ò¬¬¬¬¬§¬¬¬¬¬Ò¬Ò¬¬¬Ò¬¬¬¬Ò¬¬Ò¬¬¬¬¬¬¬¬¬Ò¬¬¬Ò¬¬Ò¬¬ÒÒ¬¬¬¬Ò¬¬¬Ò¬¬¬¬¬¬¬¬¬¬¬Ó¬Ò¬¬¬¬ÒÒ¬Ó¬ÒÒ¬¬ÓÓ¬¬ÓÓ¬¬ÓÒÓÓÓÓÒÓ¬ÓÓ¬Õ¬Ó¬ÓÓÓÓÓÓÓ¬ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÕÔÓÕÕÕÓÓÕÕÓÓÕÕÓÕÓÓÓÕÕÓÓÓÓÓÓÓÓÓÓÓÓÓ¬ÓÓÓÓÓÓÓÓ¬ÓÓÓÓÓ¬ÓÓÓ¬ÓÓ¬¬ÓÓÓÓ¬¬¬ÓÓ¬Ó¬¬Ó¬Ó¬Ó¬ÒÓÓ¬¬ÓÒ¬¬Ò¬ÒÓ¬ÓÒ¬ÒÓ¬ÒÒÒÓ¬¬¬¬¬¬¬Ò¬¬¬¬¬¬ÓÒÒ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬Ò¬¬ÓÒÒÒÒÒ¬¬ÒÒÒ¬ÒÒÒ¬Ò¬¬¬¬¬§¬§§¬¬¬¬Ò¬Ò¬¬¬Ò¬¬¬Ò­ÔÔØÚèôõ÷úüüüüüüüüüüüüüüüüüüýýú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ôÙ›;                                                                                                                                                  @›àò÷ó÷ó÷÷÷÷ó÷÷÷÷÷óúýþþýýýüüýüüüýýüüüüüüüüüüúú÷úúú÷÷÷÷÷÷ú÷÷ú÷ù÷÷÷÷÷ù÷÷÷÷÷÷÷÷õõõõõõõõõõõõõõõõõõõõõõòòòòòòòòòòòòòòòòôôòôòòòôòôòòôòòòòòòòòòòòòòòòòòòõõõõõõõõõõõõõõõõõõõõõ÷÷÷÷÷÷÷÷÷÷÷÷÷ù÷÷÷ú÷ù÷÷ú÷úú÷÷úú÷úú÷úúùúú÷úú÷úûúúúúúúúúûûûûûûûûûûûûûûûûûûûûûûûûûüûüûüüýüüüüüýýüüýýüüýýýüýýýüýýýýýüýþýþýþýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþþþþþýýþþþýþþýþþþýýýþþþþþýþýþýýýýýýýýýýýýýýýýýýýýüüýýüýüüýüüüýýüüýýýüýýüüýüûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûúûúûúûúûúûúúúûúûúúúúúúúúúúúüüüüüüüüûüüüüüüüüüüüýþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷éÙ–;                                                                                                                                      @›ßñó÷ó÷óó÷÷÷ó÷óóó÷úúþþýýýýüýýýüüýüüüüüüüüüüüüüüüüüüüüúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷úúúúúúúúúúúúúúúúúúúúúúúûúúúúúüûüüüüüüüüüüüüüüüüüüüýüüüüýýüýýýýýýýýýýýýýýþýýýýýþþþþþþþþþþþþþþþþÿþþþþþþþþþþþÿþþÿÿþÿþÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿþþÿÿþþÿÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüýüüüýüüýýüüüüüüüüüüüüüüüüüüýþüú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñÙ”;                                                                                                                                   #”Ùñ÷÷÷÷ó÷÷ó÷ó÷ó÷÷ó÷úúýþþüüüüýüüüüüüüüüüüüüüüüüüüüüüüüüúúüúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüüüúüüüüüüüüüüüüüüüüüüüüüüýýýýüýýýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþÿÿþþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþÿÿþÿþþÿÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüýüýüüýüüüüüüüüüüüüüüüüüüüüüýþüú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷è׃#                                                                                                                     #ƒÞñó÷óó÷ó÷÷÷óó÷÷÷ó÷óúúýþþýüüýüýüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷ò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúüúüúüúüüúüüüüüüüüüüüüüüüüüüüüüýýüüüüýüýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþþÿÿþþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþÿÿþþÿþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüüüýüüüüüüüýüüüüüüüüüüüüüüýýþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õèÓ‚                                                                                                                       zÊâò÷÷÷ó÷÷÷ó÷÷÷÷ó÷ó÷óóúýþþýüüüüüüüüüüüüüüüüüüüüúúüüúúúúüúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúüúüüüüüüüúüüüüüüüüüüüüüüüüýüüýýüüüüýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþÿþþþþþþþþÿþþþþþþÿÿþþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿÿþþÿÿþþÿÿþþÿÿÿþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýüýüüýüüüüüüüüüüüüüüüüüþþýü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òàÊ�                                                                                                           [Çàòó÷÷ó÷ó÷÷óó÷óó÷÷÷÷÷óúüþþþþýüüüüüüüüüüüüüüüúüúüúúüúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúüúüúúüúüúüüüüüüüüüüüüüüüüýüýüüýýüýýýýýýýýýýýýýýýýýýýýýýþýýþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþÿÿþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿþÿþÿÿþÿþþÿþÿþþþÿÿþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüýüüýüüüüýüüüüüüüüüüüýýþþüú÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷ò÷÷÷ñÙ�Z                                                                                                                       @”Ùñ÷÷÷÷÷ó÷ó÷ó÷ó÷÷÷ó÷÷óó÷úüýþþþýüüüüüüüüüüúüúüúüúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúüúúüúúüúüüúúüüüüüüüüüüüüüüýüüýýýüýýýýýýýýýýýýýýýýýýýþýþýýþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþÿÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿþþÿÿþÿÿÿÿþþþþþÿþÿÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýýüüüüýýüüýüüüüýýüýýþþýþüú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õòè×”;                                                                                                                         #zÊâòó÷÷÷÷óó÷óó÷ó÷÷ó÷÷÷ó÷÷÷úúüüýþþþþýýýýýüýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúüúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýþýýýýþþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþÿÿÿþþÿþþÿÿÿþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýþþýýýþüýþýýþýþþýþþþþüúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷ñàÊx                                                                                                  [�Ùèó÷÷ó÷÷ó÷ó÷÷÷÷óóó÷ó÷÷÷÷÷÷÷úúúúüýýýýýýýýýýýýýýýýýýýýýýýýþüýýýýýýýýýýýýýýýýýýýýýýýþýýýýþþýýýýýýýýýýýýþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿÿþþÿþÿÿþþÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþÿÿÿþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþþþþþþþþþýþýüüüüúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèÙ�Y                                                                                                               #‚Êßòó÷óó÷÷÷÷÷óó÷ó÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýüýýýýýýýýýýýýýýýýýþþýýþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþÿþþÿþþÿÿþÿþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüûüúüúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñÙÇx#                                                                                                         Y›×âòó÷ó÷÷÷ó÷ó÷ó÷÷ó÷ó÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúüüúüúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüüýýýýýýýýýýýýýýýýýýýþþýþýýþþþþýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþÿþþþÿÿþþÿÿþÿþþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþþÿþÿÿþþÿþÿÿþþþþþþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýýýüýüüýüüýüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òæ×”@                                                                                   xÇÙèò÷÷óó÷ó÷óó÷ó÷÷ó÷ó÷÷÷ó÷÷÷÷ú÷÷÷÷÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúüúúúúúúüúúúúúüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüýüýüüýýüýýüýýýýýýýýýýýýýýþýþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþÿÿþþÿÿþþÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿþþÿÿþþÿþÿÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýýýüýýüýýüýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷úú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèÙ�[                                                  ;                                ;zÇÙèòó÷óó÷ó÷óó÷ó÷÷ó÷ó÷ó÷÷÷÷÷÷÷÷÷úúúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúüúüüüúüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýüüýüýýýýýýýýýýýýýýýýþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþÿÿþþÿÿÿÿþÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþþÿÿþþþÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýþýýýýýýýýýýýýýýýýüýýüýýýýýüüýüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òæ×�x#                                            T                                     #zÇÙèò÷ó÷÷ó÷óóóó÷ó÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷úú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúüúüüúüúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüüüüüýýýýüýýýüýýýýýýýýýýýýýýýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþþþþÿþþÿþÿÿþþÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿÿþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýýýüüýüüüüüýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷úú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òâ×�x#                                                                                           #xÇ×àñó÷÷÷÷÷÷ó÷óó÷÷÷÷÷÷÷÷úúúúúúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúúüüúüüüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüüýüýüýüýýýýýýýýýýýýýþýþýþýýýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþþÿþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþþÿÿþþÿÿþÿþÿþÿþþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýüüýüüüüüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüúüúüúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷úúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèàל_                                                                      [›ÒÙèò÷ó÷÷÷÷óó÷ó÷÷ó÷÷÷÷÷÷÷÷ó÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúúüüúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüýüýüüüýüýýýýýýýýüýýýýýýýþýýýýýþþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþþþþþþÿþþÿþþÿÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþþÿþÿÿþþþÿþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýýüýýýýýýüýýüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷úú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õôæÙÇ›[                                                                         @x�×ßâñóó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷ó÷úúúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüýüüýüüýüýüýýýýýýýýýýýýýýýþýþýþýþþýýþþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþþÿþÿþþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþþýþýþþýýýýýýýýýýýýýýýýýýýýüýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüüüüúüúúüúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷úúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷òñâÙÓ›x;                                                                      @ƒ�Ê×àèñòó÷óó÷÷÷÷÷÷÷úú÷÷úúúú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúüúüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýüüýýüýýýýýýýýýýýýþýþýýýýþýþýþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþþÿþþþÿþþþÿþþÿÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿþþþþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþýþþþþþýýýýýýýýýýýýýýýýýýýüüüüüüüüüýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷òñèà×Ç�ƒ@                                                                ;[z�ÓÙÙàâèòó÷÷÷÷÷ó÷÷÷÷÷÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúúúúúúúúúúüüúúúúüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüýýýýýýýýýýýýýýýýýþþýýþþýþþþþþþþþþþþþþþÿþþþþþþþþþÿþÿþþþÿþÿÿþÿÿþþÿÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþþþÿÿÿÿþÿÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýþýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüúüüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷õôèâàÙ×Ó›z];                                                                        #]z›�ÇÊÓÙÙÙààâââââââââèââââèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèéééèééééééééééééééééééééééééééééééééôéééééééééôéééôéôééôôôôôôôôôôôôôôôôôôôôòôôôòôôòôôôôôòòòòòòòòòòòòòòòòòòòõòòòòòòòòòòòòòòòòòòòòòòõòòòõõòòòõòòõõõõõòòòòõòòõôòòòòòòòõòòòòòôôòòòòòòòòòòòòòòòôòôòôôôôôôôôôôôôôôôôôôôôôôôôéôéôééôéééééôééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèæèææèèââèâæââââââââààÙÙÙÓÊÇ�›zY#                                                                       #@[_xxzzƒ””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””–””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””˜””””””””””””””””””””””””””””””””””�ÇÇÊÊÌ×ÌÌ×ÌÌÌÊÌÌÌÌÌ×ÌÌÌÌÌ×Ì×Ù×Ù×ÞÙßßßßßÞÞÙ××ÌÌÌÊÌÊÊÊÊÉÇÇÇÇ���������›››–›››–››–››››–››”””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””˜”””””””–””””””””””””””””””””””ƒzzxx_Z;                                                             bhÁÄÄÍÍÄÍËÍÄÄÍÍÍÄËÄËÍÍÐÍÍÍÐÐÑÑÐÑÑÑÑÑïÑïÑïÑÐÍÍÍÍËÄÁÁÁÁÁhhhhdccbXXXXTTT""""""""""""""                                                                  bÁÁÁÁÄÄÄÄÍÍÍÍÄÄÄÄÄÄÄÍÍÄÍÍÍÍÍÍÐÑÐÑÑÑÑððïÑÑÑÐÍÄÍÄÄÄÄÁÁhhhhdccbXXXXTTT"                                                            bhhhÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÍÍÄÍÍÐÐÍÍÍÑÐÑïÑÑÑïÐÐÐÍÍÍÄÄÄÁÁÁhhhccccbXXVTTT                                                           bhhÁÁÁÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÍÄÄÄÍÍÍÍÍÐÑÑÑÑïïïÑÐÍÍÍÍÄÄÄÄÁÁÁhhhggccbXXTUTTT                                                       XghhÁÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÍÄÍÍÍÐÍÐÑÑÑÑÑÑÑïÑÐÐÍÍÍÄÄÄÁÄÁÁÁhggccbXXXXTTTT                                                 XhhhhÁÄÄÄÄÄÁÄÄÁÄÄÄÁÄÄÍÄÍÍÍÍÍÐÐÑÑÑÑÑÑðïðïÑÑÍÐÍÍÄÄÄÄÁÁÁhhgcccXbXTXTT"                              bhhhÁÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÍÄÄÍÍÍÑÐÑÏÑÑïïïððððïðïÑÐÍÍÍÄÄÄÁÁÁÁhhgccbXXXXTTT                              XghhhÁÄÄÄÄÄÄÄÄÄÄÄÍÄÄÍÍÍÐÍÐÑÑÑïïïïðððòðòððïÑÑÍÍÍÍÍÄÄÁÁÁÁhhdccbXXXTTT                         bhhÁÁÁÄÄÄÄÄÄÄÄÄÄÍÍÄÍÍÑÐÑÑÑÑÑïððððððòòóòðððïÑÑÐÐÍÄÍÄÄÁÁÁÁhccccbXXUTT"                          bhÁÁÁÄÄÍÍÄÄÍÍÍÍÍÍÍÍÍÍÑÑÑÑïçïðððòòòóóóóóðòðïðÑÑÍÍÍÄÄÄÄÁÁÁhhdccbXXXUTT                                b�hÁÂÄÍÍÍÍÍÍÍÍÐÍÑÐÍÑÑÐÑïÑïïïððóòòóòòòóóðòñðïÐÑÍÍÍÍÄÄÄÁÁÁhhhdccXXXXTT                           bhÁÁÄÄÐÍÍÍÐÐÐÍÍÍÐÑÑÑÑÑÑÑïðððððóòóóóóóúúóòððïÑÑÑÍÐÍÍÄÄÁÁÁÁhhcccbXXVTTT                        bhÁÄÄÄÍÐÐÑÑÑÑÑÑÑÐÑÑÑÑÑïïððòðòòðóòóóóóóúóóðððïÑÑÐÍÍÄÄÄÄÁÁÁhhgccbbXXTTT"                          bÁÁÄÍÍÑÑÑðÑÑÑÑÑÑÑÐÑïÑïðððððððòòðóóóóóúóóòðòððÑÑÐÍÍÍÄÄÄÄÁÁhhdccbXXXTTT                         ^ÁÄÄÍÍïïÑÑÑÑÑÑÑïÑÑÐïÑðððððòððóòðóóúóóú÷óóððððÑÑÐÍÍÍÍÄÄÁÁÁhhhdcbXXXTTTT                        cÁÄÄÍÐÑïïïÑÑÑïïÑÑïÑÑïïïïïðòðòòðóóóóóúüúóóñððïïÐÍÍÍÄÄÄÄÄÁÁÁhgcccbbXTTT""             bÁÄÄÍÐÑïðïÑïïïðÑÑÑðÑÑïÑðððòðóòñóóóóóóúóóóòððÑÑÑÐÍÍÍÄÄÄÁÁÁhhhgccXXXXTTT""T                        cÁÄÄÍÑÑððÑïðÑÑïÑïïÑïÑðïððððòóòòòóòóóúúóúòððððÑÑÍÐÍÄÄÄÁÁÁÁhhdgcbXXXTTT"TT             dÄÄÍÍÑïðïïðïïïïÑÑÑÑïïïïïðððððððóóóóúóúóóòòðïïÑÑÑÍÍÍÄÄÄÄÁÁÁhgdccXXXXTTT             cÁÄÍÍÑÑðïÑððïÑïÑÑÑÑïÑïðððòðòòòóóóóúúúóúóòòðïïÑÑÍÍÍÍÄÄÁÁÁÁhggcccbXVUTTT"""      ;# dÄÄÄÐÑïððÑÑïÑÑÑÑÑïÐÑÑïððïððóóðòóóóóóúúúóòòððïÑÑÑÍÍÍÄÄÄÁÁÁhhgcccbXXTTTT"TT        #cYdÁÄÍÍÑïððïïïÑÑÑïÑÑÑÑïïïððïðóððòðóóóóúúúúóðððïÑÑÑÍÍÍÄÄÄÁÁÁhhgcccXXXTTTT       Y@ cÁÄÍÍÑïïððïïÑïÑïïÑïïïðïðððððòóóòóóóóúóúóòòððïÑÐÍÍÍÄÄÄÁÁÁÁhhgdccbXXTTT"         cÄÄÍÍÑïððïïðÑïÑÑÑïÑÑÑðððïðððóòóóóóóúúóúóóðððïÑÐÐÐÍÍÄÄÄÁÁÁÁhgdccXXXXTT""          cÄÄÍÍÑïððÑïïÑÑðÑÑÑïÑïðððððððòðóóóóóúóóóóòñððçÑÑÍÐÍÍÄÄÄÄÁÁhhgcccXXXUTTT"T            cÁÄÍÍÑðððïïÑÑÑïÑÑÑÑÑïïÑðððððòòððóóúóóúóóóððïïÑÑÑÍÍÍÄÄÄÄÁÁhhgcccbXXTTTT        cÁÄÍÍÑïïðïïïÑÑÑÑÑïÑÑÑïïïòðððòòòóóóóóúúúóóòðððÑÑÍÍÍÍÍÄÄÁÁÁhhhdccXXXXTTT"""TT               cÁÄÍÐÑïððÑðÑïðÑÑÑÑÑÑÑïÑïððððóòóòóóúóúóóóóòððïïÐÍÍÍÄÄÄÄÁÁhhhhdccbXXTTT"T              cÁÄÍÍÑïïðððïðïÑÑÑÑïÑððÑðððððòðóòóóóúúúúóóðððïÑÑÍÐÍÍÄÄÄÁÁÁhhhgcbbXXXTT"T"T            cÁÄÍÍÑÑðððïïÑÑïÑÑïÑÑïðïðòðððòóóóóóóóóúúòððððÑÑÑÐÍÍÍÄÄÄÁÁÁhhdccbbXXXTTTT""        cÄÄÍÍÑïðïðÑïïÑðÑÑðÑïÑÑïïððððððòóóóóúúüúóóòððÑïÑÐÍÍÍÍÄÄÁÁhhhdcccXXXTTT""T     cÁÄÍÐÑïðÑðïÑÑïÑÑÑÑÑÑïÑïððððòððóòóóúóóúóóóðòðÑÑÐÐÍÍÍÍÄÄÁÁhhhdgccbXXXTT"T"T"   cÁÄÍÐÑïðððÑÑðÑðÑïïÑÑÑïïðððòóðóðóóóóóóóúóóòðððÑÑÐÐÍÄÄÄÄÄÁÁhhgdccbXXXTTT"T"   bÁÄÍÐÑÑððððÑïÑÑïÑÑïÑÑïïðððððòóòóòóóúú÷úóóóððïÑÑÍÍÍÍÄÄÄÄÁÁhhhdcbXXXTTTT"     cÄÄÄÐÑÑðïïðïÑïÑÑÑÑÑÑïðïðððððòóóóóóóóóúúóóòðððÑÑÍÍÍÍÄÄÄÁÁÁhhhdcbXXXXTT""T"  #[Y   dÁÄÄÍÑððïïïÑïÑÑÑÑÑÑÑïïçïðððððòóóóóóóúüóóóðððïÑÑÍÍÍÍÄÄÄÁÁÁhhgdccXXXTTTT"T""    "[Y    cÁÄÍÍÑïððïðïïÑïÑÑÑÑïðïïïðððððòóóóóóóúúúóóðððÑÑÐÐÍÍÍÄÄÄÁÁÁhhhcccbXXTTTT          bÁÄÍÐÑïððððïïÑÑïïÑÑÑÑïïðððòððóòòóóóóóúóóòðððïïÑÐÍÍÍÄÄÄÁÁÁhhgdccbXXXTT"T"         cÁÄÍÐÑïððïðÑïÑÑïÑÑÑïÑððððððòòóòðóóúóóúóòóòðððïÑÐÍÍÍÄÄÄÁÁÁhhgdccXXXXTTT         cÁÄÄÐÑïððÑïïÑïïïÑÑÑïïðïïïðòðòðóòóóóóóüóóóóðððÑÑÐÍÍÍÄÁÄÁÁÁhhhdccXXXXUTT"     cÁÄÍÐÑðððïððïïÑÑÑïÑÑïïïïððñðòóóòòóòúúúóóóòñððÑÑÍÍÍÍÍÄÄÁÁÁhhhgcbbXXXTT""""    dÁÄÍÐÑðïðïÑðïïïÑÑïÑÑïïïðððððòòòóóóóóóóóóóðððïÑÑÐÍÍÍÄÄÄÁÁÁhhhgcbbXXXTTT""""    cÁÄÍÐÑïððððïÑÑïÑÑÑÑïÑïÑðððððóóòóóóóúóúúóóòñðÑÑÑÐÍÍÍÄÄÄÁÁÁhhgdccbXXTTTT     cÁÄÍÍÑððïðððÑÑÑïÑÑÑðÑïïðïððððòðóóóòóúúóóòóððïÑÑÑÍÍÍÄÄÄÁÁÁÁhgccbXXXUXT"   cÁÄÍÍÑðïïïÑïÑïïÑïÑÑÑïïðððððóòðóóóó÷ü÷óóóòòððïÑÑÍÍÍÄÄÄÄÁÁÁÁhgcccbXXTTTTT      cÁÄÄÍÑïðððïððïÑïÑïÑÑðïÑðððòðóòðóó÷úúóüóóóòððïïÐÍÍÍÍÄÄÄÁÁhhhdhcbXXXUTTT"T   CorsixTH-0.70.0/CorsixTH/Bitmap/mainmenu720.dat000066400000000000000000034100001522247547500207670ustar00rootroot00000000000000    cÁÄÄÍÑïðððïððïÑïÑïÑÑðïÑðððòðóòðóó÷úúóüóóóòððïïÐÍÍÍÍÄÄÄÁÁhhhdhcbXXXUTTT"T     cÁÄÍÍÑðïïïÑïÑïïÑïÑÑÑïïðððððóòðóóóó÷ü÷óóóòòððïÑÑÍÍÍÄÄÄÄÁÁÁÁhgcccbXXTTTTT    cÁÄÍÍÑððïðððÑÑÑïÑÑÑðÑïïðïððððòðóóóòóúúóóòóððïÑÑÑÍÍÍÄÄÄÁÁÁÁhgccbXXXUXT"   cÁÄÍÐÑïððððïÑÑïÑÑÑÑïÑïÑðððððóóòóóóóúóúúóóòñðÑÑÑÐÍÍÍÄÄÄÁÁÁhhgdccbXXTTTT     dÁÄÍÐÑðïðïÑðïïïÑÑïÑÑïïïðððððòòòóóóóóóóóóóðððïÑÑÐÍÍÍÄÄÄÁÁÁhhhgcbbXXXTTT""""      cÁÄÍÐÑðððïððïïÑÑÑïÑÑïïïïððñðòóóòòóòúúúóóóòñððÑÑÍÍÍÍÍÄÄÁÁÁhhhgcbbXXXTT""""       cÁÄÄÐÑïððÑïïÑïïïÑÑÑïïðïïïðòðòðóòóóóóóüóóóóðððÑÑÐÍÍÍÄÁÄÁÁÁhhhdccXXXXUTT"        cÁÄÍÐÑïððïðÑïÑÑïÑÑÑïÑððððððòòóòðóóúóóúóòóòðððïÑÐÍÍÍÄÄÄÁÁÁhhgdccXXXXTTT           bÁÄÍÐÑïððððïïÑÑïïÑÑÑÑïïðððòððóòòóóóóóúóóòðððïïÑÐÍÍÍÄÄÄÁÁÁhhgdccbXXXTT"T"   "[Y    cÁÄÍÍÑïððïðïïÑïÑÑÑÑïðïïïðððððòóóóóóóúúúóóðððÑÑÐÐÍÍÍÄÄÄÁÁÁhhhcccbXXTTTT     #[Y   dÁÄÄÍÑððïïïÑïÑÑÑÑÑÑÑïïçïðððððòóóóóóóúüóóóðððïÑÑÍÍÍÍÄÄÄÁÁÁhhgdccXXXTTTT"T""      cÄÄÄÐÑÑðïïðïÑïÑÑÑÑÑÑïðïðððððòóóóóóóóóúúóóòðððÑÑÍÍÍÍÄÄÄÁÁÁhhhdcbXXXXTT""T"  bÁÄÍÐÑÑððððÑïÑÑïÑÑïÑÑïïðððððòóòóòóóúú÷úóóóððïÑÑÍÍÍÍÄÄÄÄÁÁhhhdcbXXXTTTT"    cÁÄÍÐÑïðððÑÑðÑðÑïïÑÑÑïïðððòóðóðóóóóóóóúóóòðððÑÑÐÐÍÄÄÄÄÄÁÁhhgdccbXXXTTT"T"     cÁÄÍÐÑïðÑðïÑÑïÑÑÑÑÑÑïÑïððððòððóòóóúóóúóóóðòðÑÑÐÐÍÍÍÍÄÄÁÁhhhdgccbXXXTT"T"T"      cÄÄÍÍÑïðïðÑïïÑðÑÑðÑïÑÑïïððððððòóóóóúúüúóóòððÑïÑÐÍÍÍÍÄÄÁÁhhhdcccXXXTTT""T         cÁÄÍÍÑÑðððïïÑÑïÑÑïÑÑïðïðòðððòóóóóóóóóúúòððððÑÑÑÐÍÍÍÄÄÄÁÁÁhhdccbbXXXTTTT""               cÁÄÍÍÑïïðððïðïÑÑÑÑïÑððÑðððððòðóòóóóúúúúóóðððïÑÑÍÐÍÍÄÄÄÁÁÁhhhgcbbXXXTT"T"T               cÁÄÍÐÑïððÑðÑïðÑÑÑÑÑÑÑïÑïððððóòóòóóúóúóóóóòððïïÐÍÍÍÄÄÄÄÁÁhhhhdccbXXTTT"T         cÁÄÍÍÑïïðïïïÑÑÑÑÑïÑÑÑïïïòðððòòòóóóóóúúúóóòðððÑÑÍÍÍÍÍÄÄÁÁÁhhhdccXXXXTTT"""TT         cÁÄÍÍÑðððïïÑÑÑïÑÑÑÑÑïïÑðððððòòððóóúóóúóóóððïïÑÑÑÍÍÍÄÄÄÄÁÁhhgcccbXXTTTT       cÄÄÍÍÑïððÑïïÑÑðÑÑÑïÑïðððððððòðóóóóóúóóóóòñððçÑÑÍÐÍÍÄÄÄÄÁÁhhgcccXXXUTTT"T              cÄÄÍÍÑïððïïðÑïÑÑÑïÑÑÑðððïðððóòóóóóóúúóúóóðððïÑÐÐÐÍÍÄÄÄÁÁÁÁhgdccXXXXTT""       Y@ cÁÄÍÍÑïïððïïÑïÑïïÑïïïðïðððððòóóòóóóóúóúóòòððïÑÐÍÍÍÄÄÄÁÁÁÁhhgdccbXXTTT"          #cYdÁÄÍÍÑïððïïïÑÑÑïÑÑÑÑïïïððïðóððòðóóóóúúúúóðððïÑÑÑÍÍÍÄÄÄÁÁÁhhgcccXXXTTTT        ;# dÄÄÄÐÑïððÑÑïÑÑÑÑÑïÐÑÑïððïððóóðòóóóóóúúúóòòððïÑÑÑÍÍÍÄÄÄÁÁÁhhgcccbXXTTTT"TT         cÁÄÍÍÑÑðïÑððïÑïÑÑÑÑïÑïðððòðòòòóóóóúúúóúóòòðïïÑÑÍÍÍÍÄÄÁÁÁÁhggcccbXVUTTT"""           dÄÄÍÍÑïðïïðïïïïÑÑÑÑïïïïïðððððððóóóóúóúóóòòðïïÑÑÑÍÍÍÄÄÄÄÁÁÁhgdccXXXXTTT                     cÁÄÄÍÑÑððÑïðÑÑïÑïïÑïÑðïððððòóòòòóòóóúúóúòððððÑÑÍÐÍÄÄÄÁÁÁÁhhdgcbXXXTTT"TT             bÁÄÄÍÐÑïðïÑïïïðÑÑÑðÑÑïÑðððòðóòñóóóóóóúóóóòððÑÑÑÐÍÍÍÄÄÄÁÁÁhhhgccXXXXTTT""T                      cÁÄÄÍÐÑïïïÑÑÑïïÑÑïÑÑïïïïïðòðòòðóóóóóúüúóóñððïïÐÍÍÍÄÄÄÄÄÁÁÁhgcccbbXTTT""                    ^ÁÄÄÍÍïïÑÑÑÑÑÑÑïÑÑÐïÑðððððòððóòðóóúóóú÷óóððððÑÑÐÍÍÍÍÄÄÁÁÁhhhdcbXXXTTTT                            bÁÁÄÍÍÑÑÑðÑÑÑÑÑÑÑÐÑïÑïðððððððòòðóóóóóúóóòðòððÑÑÐÍÍÍÄÄÄÄÁÁhhdccbXXXTTT                           bhÁÄÄÄÍÐÐÑÑÑÑÑÑÑÐÑÑÑÑÑïïððòðòòðóòóóóóóúóóðððïÑÑÐÍÍÄÄÄÄÁÁÁhhgccbbXXTTT"                          bhÁÁÄÄÐÍÍÍÐÐÐÍÍÍÐÑÑÑÑÑÑÑïðððððóòóóóóóúúóòððïÑÑÑÍÐÍÍÄÄÁÁÁÁhhcccbXXVTTT                                 b�hÁÂÄÍÍÍÍÍÍÍÍÐÍÑÐÍÑÑÐÑïÑïïïððóòòóòòòóóðòñðïÐÑÍÍÍÍÄÄÄÁÁÁhhhdccXXXXTT                             bhÁÁÁÄÄÍÍÄÄÍÍÍÍÍÍÍÍÍÍÑÑÑÑïçïðððòòòóóóóóðòðïðÑÑÍÍÍÄÄÄÄÁÁÁhhdccbXXXUTT                    bhhÁÁÁÄÄÄÄÄÄÄÄÄÄÍÍÄÍÍÑÐÑÑÑÑÑïððððððòòóòðððïÑÑÐÐÍÄÍÄÄÁÁÁÁhccccbXXUTT"                      XghhhÁÄÄÄÄÄÄÄÄÄÄÄÍÄÄÍÍÍÐÍÐÑÑÑïïïïðððòðòððïÑÑÍÍÍÍÍÄÄÁÁÁÁhhdccbXXXTTT                                 bhhhÁÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÍÄÄÍÍÍÑÐÑÏÑÑïïïððððïðïÑÐÍÍÍÄÄÄÁÁÁÁhhgccbXXXXTTT                                                    XhhhhÁÄÄÄÄÄÁÄÄÁÄÄÄÁÄÄÍÄÍÍÍÍÍÐÐÑÑÑÑÑÑðïðïÑÑÍÐÍÍÄÄÄÄÁÁÁhhgcccXbXTXTT"                                               XghhÁÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÍÄÍÍÍÐÍÐÑÑÑÑÑÑÑïÑÐÐÍÍÍÄÄÄÁÄÁÁÁhggccbXXXXTTTT                                                            bhhÁÁÁÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÍÄÄÄÍÍÍÍÍÐÑÑÑÑïïïÑÐÍÍÍÍÄÄÄÄÁÁÁhhhggccbXXTUTTT                                                                bhhhÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÍÍÄÍÍÐÐÍÍÍÑÐÑïÑÑÑïÐÐÐÍÍÍÄÄÄÁÁÁhhhccccbXXVTTT                                                       bÁÁÁÁÄÄÄÄÍÍÍÍÄÄÄÄÄÄÄÍÍÄÍÍÍÍÍÍÐÑÐÑÑÑÑððïÑÑÑÐÍÄÍÄÄÄÄÁÁhhhhdccbXXXXTTT"                                                                 bhÁÄÄÍÍÄÍËÍÄÄÍÍÍÄËÄËÍÍÐÍÍÍÐÐÑÑÐÑÑÑÑÑïÑïÑïÑÐÍÍÍÍËÄÁÁÁÁÁhhhhdccbXXXXTTT""""""""""""""                                                                                   #@[_xxzzƒ””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””–””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””˜””””””””””””””””””””””””””””””””””�ÇÇÊÊÌ×ÌÌ×ÌÌÌÊÌÌÌÌÌ×ÌÌÌÌÌ×Ì×Ù×Ù×ÞÙßßßßßÞÞÙ××ÌÌÌÊÌÊÊÊÊÉÇÇÇÇ���������›››–›››–››–››››–››”””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””˜”””””””–””””””””””””””””””””””ƒzzxx_Z;                                                                         #]z›�ÇÊÓÙÙÙààâââââââââèââââèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèéééèééééééééééééééééééééééééééééééééôéééééééééôéééôéôééôôôôôôôôôôôôôôôôôôôôòôôôòôôòôôôôôòòòòòòòòòòòòòòòòòòòõòòòòòòòòòòòòòòòòòòòòòòõòòòõõòòòõòòõõõõõòòòòõòòõôòòòòòòòõòòòòòôôòòòòòòòòòòòòòòòôòôòôôôôôôôôôôôôôôôôôôôôôôôôéôéôééôéééééôééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèæèææèèââèâæââââââââààÙÙÙÓÊÇ�›zY#                                                                    ;[z�ÓÙÙàâèòó÷÷÷÷÷ó÷÷÷÷÷÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúúúúúúúúúúüüúúúúüúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüýýýýýýýýýýýýýýýýýþþýýþþýþþþþþþþþþþþþþþÿþþþþþþþþþÿþÿþþþÿþÿÿþÿÿþþÿÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþþþÿÿÿÿþÿÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýþýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüúüüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷õôèâàÙ×Ó›z];                                                                @ƒ�Ê×àèñòó÷óó÷÷÷÷÷÷÷úú÷÷úúúú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúüúüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýüüýýüýýýýýýýýýýýýþýþýýýýþýþýþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþþÿþþþÿþþþÿþþÿÿþÿÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿþþþþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþýþþþþþýýýýýýýýýýýýýýýýýýýüüüüüüüüüýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷òñèà×Ç�ƒ@                                                                    @x�×ßâñóó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷ó÷úúúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüýüüýüüýüýüýýýýýýýýýýýýýýýþýþýþýþþýýþþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþþÿþÿþþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþþÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþþýþýþþýýýýýýýýýýýýýýýýýýýýüýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüüüüúüúúüúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷úúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷òñâÙÓ›x;                                                                           [›ÒÙèò÷ó÷÷÷÷óó÷ó÷÷ó÷÷÷÷÷÷÷÷ó÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúúüüúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüýüýüüüýüýýýýýýýýüýýýýýýýþýýýýýþþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþþþþþþÿþþÿþþÿÿþÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþþÿþÿÿþþþÿþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýýüýýýýýýüýýüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷úú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õôæÙÇ›[                                                                                        #xÇ×àñó÷÷÷÷÷÷ó÷óó÷÷÷÷÷÷÷÷úúúúúúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúúüüúüüüüüúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüüýüýüýüýýýýýýýýýýýýýþýþýþýýýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþþÿþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþþÿÿþþÿÿþÿþÿþÿþþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýüüýüüüüüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüúüúüúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷úúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèàל_                                           T                                     #zÇÙèò÷ó÷÷ó÷óóóó÷ó÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷÷úú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúüúüüúüúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüüüüüýýýýüýýýüýýýýýýýýýýýýýýýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþþþþÿþþÿþÿÿþþÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿÿþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýýýüüýüüüüüýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷úú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òâ×�x#                                                    ;                                ;zÇÙèòó÷óó÷ó÷óó÷ó÷÷ó÷ó÷ó÷÷÷÷÷÷÷÷÷úúúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúüúüüüúüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýüüýüýýýýýýýýýýýýýýýýþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþÿÿþþÿÿÿÿþÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþþÿÿþþþÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýþýýýýýýýýýýýýýýýýüýýüýýýýýüüýüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷úú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òæ×�x#                                                                                  xÇÙèò÷÷óó÷ó÷óó÷ó÷÷ó÷ó÷÷÷ó÷÷÷÷ú÷÷÷÷÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúüúúúúúúüúúúúúüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüüüýüýüüýýüýýüýýýýýýýýýýýýýýþýþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþÿÿþþÿÿþþÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿþþÿÿþþÿþÿÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýýýüýýüýýüýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷úú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèÙ�[                                                                                                       Y›×âòó÷ó÷÷÷ó÷ó÷ó÷÷ó÷ó÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúüüúüúúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüüýýýýýýýýýýýýýýýýýýýþþýþýýþþþþýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþÿþþþÿÿþþÿÿþÿþþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþþÿþÿÿþþÿþÿÿþþþþþþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþýþýþýýýýýýýýýýýýýýýýýýýýýýüýüüýüüýüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüúüüúûúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òæ×”@                                                                                                       #‚Êßòó÷óó÷÷÷÷÷óó÷ó÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýýýýýýüýýýýýýýýýýýýýýýýýþþýýþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþÿþþÿþþÿÿþÿþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüûüúüúüúúúüúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñÙÇx#                                                                                                   [�Ùèó÷÷ó÷÷ó÷ó÷÷÷÷óóó÷ó÷÷÷÷÷÷÷úúúúüýýýýýýýýýýýýýýýýýýýýýýýýþüýýýýýýýýýýýýýýýýýýýýýýýþýýýýþþýýýýýýýýýýýýþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿÿþþÿþÿÿþþÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþÿÿÿþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþþþþþþþþþýþýüüüüúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òèÙ�Y                                                                                                                                  #zÊâòó÷÷÷÷óó÷óó÷ó÷÷ó÷÷÷ó÷÷÷úúüüýþþþþýýýýýüýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúüúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýýýýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýþýýýýþþýþþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþÿÿÿþþÿþþÿÿÿþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýþþýýýþüýþýýþýþþýþþþþüúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷ñàÊx                                                                                                                      @”Ùñ÷÷÷÷÷ó÷ó÷ó÷ó÷÷÷ó÷÷óó÷úüýþþþýüüüüüüüüüüúüúüúüúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúüúúüúúüúüüúúüüüüüüüüüüüüüüýüüýýýüýýýýýýýýýýýýýýýýýýýþýþýýþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþÿÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþÿþþÿÿþÿÿÿÿþþþþþÿþÿÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýýüüüüýýüüýüüüüýýüýýþþýþüú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õòè×”;                                                                                                       [Çàòó÷÷ó÷ó÷÷óó÷óó÷÷÷÷÷óúüþþþþýüüüüüüüüüüüüüüüúüúüúúüúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúüúüúúüúüúüüüüüüüüüüüüüüüüýüýüüýýüýýýýýýýýýýýýýýýýýýýýýýþýýþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþÿÿþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿþÿþÿÿþÿþþÿþÿþþþÿÿþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüýüüýüüüüýüüüüüüüüüüüýýþþüú÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷ò÷÷÷ñÙ�Z                                                                                                                       zÊâò÷÷÷ó÷÷÷ó÷÷÷÷ó÷ó÷óóúýþþýüüüüüüüüüüüüüüüüüüüüúúüüúúúúüúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúüúüüüüüüüúüüüüüüüüüüüüüüüüýüüýýüüüüýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþÿþþþþþþþþÿþþþþþþÿÿþþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿþÿþÿÿþþÿÿþþÿÿþþÿÿÿþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýüýüüýüüüüüüüüüüüüüüüüüþþýü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òàÊ�                                                                                                                       #ƒÞñó÷óó÷ó÷÷÷óó÷÷÷ó÷óúúýþþýüüýüýüüüüüüüüüüüüüüüüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷ò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúüúüúüúüüúüüüüüüüüüüüüüüüüüüüüüýýüüüüýüýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþþÿÿþþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþÿÿþþÿþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüüüýüüüüüüüýüüüüüüüüüüüüüüýýþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õèÓ‚                                                                                                                               #”Ùñ÷÷÷÷ó÷÷ó÷ó÷ó÷÷ó÷úúýþþüüüüýüüüüüüüüüüüüüüüüüüüüüüüüüúúüúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüüüúüüüüüüüüüüüüüüüüüüüüüüýýýýüýýýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþÿÿþþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþÿÿþÿþþÿÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüýüýüüýüüüüüüüüüüüüüüüüüüüüüýþüú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷è׃#                                                                                                                                    @›ßñó÷ó÷óó÷÷÷ó÷óóó÷úúþþýýýýüýýýüüýüüüüüüüüüüüüüüüüüüüüúúúûúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷úúúúúúúúúúúúúúúúúúúúúúúûúúúúúüûüüüüüüüüüüüüüüüüüüüýüüüüýýüýýýýýýýýýýýýýýþýýýýýþþþþþþþþþþþþþþþþÿþþþþþþþþþþþÿþþÿÿþÿþÿÿÿþÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿÿÿþÿÿþþÿÿþþÿÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüüüüýüüüýüüýýüüüüüüüüüüüüüüüüüüýþüú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñÙ”;                                                                                                                                                     @›àò÷ó÷ó÷÷÷÷ó÷÷÷÷÷óúýþþýýýüüýüüüýýüüüüüüüüüüúú÷úúú÷÷÷÷÷÷ú÷÷ú÷ù÷÷÷÷÷ù÷÷÷÷÷÷÷÷õõõõõõõõõõõõõõõõõõõõõõòòòòòòòòòòòòòòòòôôòôòòòôòôòòôòòòòòòòòòòòòòòòòòòõõõõõõõõõõõõõõõõõõõõõ÷÷÷÷÷÷÷÷÷÷÷÷÷ù÷÷÷ú÷ù÷÷ú÷úú÷÷úú÷úú÷úúùúú÷úú÷úûúúúúúúúúûûûûûûûûûûûûûûûûûûûûûûûûûüûüûüüýüüüüüýýüüýýüüýýýüýýýüýýýýýüýþýþýþýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþþþþþýýþþþýþþýþþþýýýþþþþþýþýþýýýýýýýýýýýýýýýýýýýýüüýýüýüüýüüüýýüüýýýüýýüüýüûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûúûúûúûúûúûúúúûúûúúúúúúúúúúúüüüüüüüüûüüüüüüüüüüüýþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷éÙ–;                                                                                                                                        @�àòó÷÷ó÷óó÷÷óóóó÷úüþþýýýýýüüýüüüýýüýüüúú÷õôæÚØÕÔ­¬¬¬¬Ò¬Ò¬¬¬¬¬¬¬¬¬¬ÒÒ¬¬¬¬¬§¬¬§¬¬§§¬§§¬¬§§¬¬§¬¬§§§§¬§§§§§§§§§§§§§§§§§§§§§¬§§§§§§§§§§§§§§§§§§§§§§§§§¬§§§§¬§§§¬¬¬¬§§§¬¬¬§¬¬¬§§Ò¬¬¬Ò¬Ò¬¬¬¬¬§¬¬¬¬¬Ò¬Ò¬¬¬Ò¬¬¬¬Ò¬¬Ò¬¬¬¬¬¬¬¬¬Ò¬¬¬Ò¬¬Ò¬¬ÒÒ¬¬¬¬Ò¬¬¬Ò¬¬¬¬¬¬¬¬¬¬¬Ó¬Ò¬¬¬¬ÒÒ¬Ó¬ÒÒ¬¬ÓÓ¬¬ÓÓ¬¬ÓÒÓÓÓÓÒÓ¬ÓÓ¬Õ¬Ó¬ÓÓÓÓÓÓÓ¬ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÕÔÓÕÕÕÓÓÕÕÓÓÕÕÓÕÓÓÓÕÕÓÓÓÓÓÓÓÓÓÓÓÓÓ¬ÓÓÓÓÓÓÓÓ¬ÓÓÓÓÓ¬ÓÓÓ¬ÓÓ¬¬ÓÓÓÓ¬¬¬ÓÓ¬Ó¬¬Ó¬Ó¬Ó¬ÒÓÓ¬¬ÓÒ¬¬Ò¬ÒÓ¬ÓÒ¬ÒÓ¬ÒÒÒÓ¬¬¬¬¬¬¬Ò¬¬¬¬¬¬ÓÒÒ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬Ò¬¬ÓÒÒÒÒÒ¬¬ÒÒÒ¬ÒÒÒ¬Ò¬¬¬¬¬§¬§§¬¬¬¬Ò¬Ò¬¬¬Ò¬¬¬Ò­ÔÔØÚèôõ÷úüüüüüüüüüüüüüüüüüüýýú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ôÙ›;                                                                                                                                          ;›àò÷÷÷÷óó÷ó÷÷óóó÷úýþýýýýýýýýýüýýýüüüú÷éàÓ§š’‘���‘‘Ž~��~~�Ÿ‘Ÿ  Ÿ�‘������Ÿ���‘��‘Ÿ�‘����Ÿ����Ž‘���~��Ÿ�‘���Ÿ��Ÿ�‘  ‘ ��‘�‘ŸŸ‘�‘Ÿ‘‘‘ Ÿ Ÿ���Ÿ¡‘�����~�  Ÿ��Ÿ~~~~��‘‘�~�‘���‘‘~~~�¡�Ž��Ÿ�~��}�������~��Ÿ�����Ž~���~~�����~~���~�~~~~~Ž~�~~ŽŽ~~sŽ~}}~}s}~ss~~s}~~sssŽ}ss~~~~ŽŽŽ~~~Ž}Žss~}ssss}s~ssŽsŽs}Ž}s}q}}sŽ}qsss}s||}s|s|qq|}s|qqqqssqq}}qqqqs|qqqqqsqqqqpq|qqqqqqqqqspoqqqvqqqqqqspqqqpqpv|qqqs|pqqqqqpppppoppvqpopvpppppppvvvppppoppppomppomppppmopppomplmppmlmmmmmlmlpmmmmlmpmmmjmlmommmlmlmmmmmmmmmpv|w‘š§×àé÷úüüüüüüüüüüüüüüüüþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ôß”#                                                                                                                                                        #–àòó÷ó÷ó÷óóó÷÷óóóüþþýýýýýýýýýýüýýüúõèØ§¤‘Ž���~~~�~~}~~~��~~~~����~��~~������~~���¡‘��‘����‘‘�‘¡¡�‘‘¡~~��‘‘~~‘‘‘‘‘‘¡��‘‘��‘�‘‘~‘‘‘‘‘��‘��¡‘��~�‘����‘��~‘��~~‘‘�‘�~����~����~~¡�~~��~~~~~~}~~}~~}}}~�}}}}~~}}}~}}s}}}}}}}|}}}}}}}|}|p}||}|}|}}||||||v|||pv|vvvpvv|vvppvppvpppppppppo|poppopppoopppolpooopoolllooollllollllollllllCClClCCCClll??CCllC??C>CCC??CC>???>>A?>>>=>>>=>>>=>>>>===>>===$===============$$=$==$$$$$!!$$!$!$!!!!!!$!!!!!!!!!!!!!!!! !   !!$=Clp}�§×èõüüüüüüüüüüüüüüüþþú÷÷÷÷÷÷÷÷÷÷÷÷÷÷ôÙ”#                                                                                                                                                               #”Ùòó÷óóó÷óó÷ó÷÷÷úüþþýýýýýýýýýýýýüúéÚ§’Ÿ�~}}~~~~~~~}~�~�‘�€~~~~~�~�~~~~‘�~‘‘‘~~��‘¡‘�‘���¡‘�‘‘¡‘¡‘�¡�~��‘‘~�‘‘�~�¡‘��‘¡�~~�‘¡~�‘�‘�~�¡‘‘¡���~�‘‘�~~����‘�‘‘~‘‘����~~�~�‘‘‘~~‘‘‘‘}~~~~�~‘}~~}}}~}}}~}}}��~}}}~~}}}}}~}}|}}}}}}}|}}}}}}|||w|}|}}}}}|}w|}|||vvv}vpvvvvvppvppppppppvpppppppppvpoppooppooppooooooooooollooolollooollollllllCllCCCCCCllCCCCCCCCC???C??>>CC???C>???>>==>>>>=>A==>>==>=======>====>=$==$====$$$$!$$$$$!$!$=!$$$!!!!!!$!!!!!!!!!!!!!!!! !   !>lv€§Úô÷üüüüüüüüüüüüúýþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷éÙƒ#                                                                                                                                                               ƒÙñó÷ó÷÷ó÷÷ó÷óóóúýþýýýýýýýýýýýýü÷æÓ¤‘‘~~}}~}~�}}‘~��~‘¡¡‘~~~~~~~~~~~�~�~~~‘‘~‘‘‘�~��‘‘�����‘~�~‘‘‘‘‘‘¡~�‘~‘‘¡¡��‘~~�‘‘‘‘‘¡‘¡‘��‘��‘¡‘�‘¡‘�‘‘¡¡¡‘‘‘‘¡��¡�‘¡~~~~�~~~~‘¡‘��~~~}��~��~}~‘€}~~~~~~�~~~}~~~~~}}}}}}}}}}}~}~}}}|~}}w}}||}}||}}}}||||p|}}|vvvppp||vwv||||pvvppppvvp|vppppppvvppppopoopppoloppolloollolollloollllllClClollllloClC?ClCCCCCCll?ClC?CCC?>?C?>>>?>>>>?>=?>?A>>>?>==>>=>>>=====>=$=======>>==$$$$!$$$!$!!=$!$!!!!$!!$!!!!!!!!!! !!!! ! ! !>m}šÓè÷üüüüüüüüüüüûüþü÷÷÷÷÷÷÷÷÷÷÷÷÷÷ñ×z                                                                                                                                                                    zÙñ÷ó÷÷ó÷÷ó÷óó÷÷úþþýýýýýýýýýýýü÷欒‘�Ž}~}~~~~�‘~~~~~�~~~~~~~~~~~‘‘~~�~~‘�~‘¡~�~��‘��‘‘~~‘‘‘‘‘‘‘‘�‘‘~�¡�~�¡‘‘‘‘‘�‘‘~‘‘‘‘‘����‘¡¡‘‘‘‘¡��‘‘‘‘‘~�¡‘�~�‘‘����‘‘�~~‘~�‘‘�~~���‘�~~�¡�~~�‘‘‘~~~~~~}~‘‘~�~�~}~~~~}}~~~}~~}}}}}|}}}}||}|}~}s}}}}}}}}||}|}||}}v|w}|}|vpv|vvvvpw||vpw}vppvppvvvvpppppopppppppoooooopopooooolllllollllloolllllllllCCllCCClCClllCCCCC??C>>?C?CC?>>>??>>>>>AC>=>>>>>=>=>>>========>============$$==$$==$!$$!$$$$=$!!!!!!!!!!!!!!!!!!!!! !! !   !!Cp‘Òæ÷üüüüüüüüüüüüýýú÷÷÷÷÷÷÷÷÷÷÷÷÷èÊx                                                                                                                                                            ]Êèó÷÷ó÷÷÷÷ó÷ó÷óúþþýýýýýýýýýýýú謒�~~�}}~~~~~~~�~~}~~~}~~~~€�‘~~~���‘‘~‘‘�~�‘~~��~�‘‘‘‘�‘���¡‘���‘‘‘‘‘‘‘~‘‘‘‘��¡¡‘~‘‘‘¡‘‘‘‘‘��‘‘‘�‘‘¡��‘�‘‘‘‘‘‘‘����‘‘�~�‘‘~��‘‘‘‘‘�~~‘‘���~~��~~‘~�‘~�~}�~�~~�~}~�~~~}€~�}~~}}~~}}}}}}}w}}}}}w}|}}|}}||}}}}|}|}}|w}|}|||||||vvv||vvqpvv|vv|vvpppppppppvppppopppppppoopoolpooloplolllloolllollllllllllClClCllllCCClCClCCC?>CC??C??CC?C>>????>>?>A?>>>>=>=>>=>>=>>================$=====$!$$==$$$=$!!=!!!!!!!!!!!!!!!!!! !!  !!  !  !    >v�Óèúüüüüüüüüüüüþüú÷÷÷÷÷÷÷÷÷÷÷÷÷èÇY                                                                                                                                                      @Çâó÷÷ó÷÷óó÷ó÷÷úüþþþþýýýýýýýýüô×’�~~~}~‘~~~~~~~~~~~~}�~~‘‘~‘~~~‘‘¡‘~��‘‘‘~~�‘��~�‘‘~�‘‘‘~‘‘‘����‘‘¡‘‘‘‘‘‘‘�‘‘‘‘‘¡‘�¡‘�‘¡¡‘~����‘‘‘���‘‘¡¡‘‘‘�‘‘‘~����~‘¡�‘¡¡‘‘‘�‘��¡‘‘‘‘~~~~~¡�~}~~~~�~��€~~~‘�}~~~�~~~~}~~}~}}}}}}}}}}}}}}}}}}}|}}||}}|}|s}}}|v}}||w||||ww|w||vvvpppvpv|pppppvppppppppvppppppppooopopoppololloolooooolllllllllllllllllllllllCClCCClC???CCClC>??CC?>>>A?C>??>>CC>C>=>=>>>>==A>=============$$==$=====$!$===$$$$$$!!!$!!!!!!!!!!!!!!!! !!!! !     !?q’Øõúüüüüüüüüüüýþú÷÷÷÷÷÷÷÷÷÷÷÷õà›;                                                                                                                                                               #›àòóó÷ó÷÷÷÷ó÷óóüþþþþþýþýýýýý÷à¨�~~}~~~~‘~}~}}~~}~~€���~~}��~‘‘~~¡~~‘‘�~�¡�~‘¡‘‘‘�~�‘~~‘‘�‘�‘‘‘¡‘¡‘~~�‘‘‘¡‘¡¡¡‘~�¡‘‘‘¡‘‘‘¡¡‘~‘‘‘¡¡‘‘‘‘¡‘~�‘����‘¡‘~�‘‘¡��‘‘���~~�‘‘‘~�~~�‘�~�¡‘~�~~�‘~~‘‘�}�‘~‘~}}~~}~}}}}~~~~}}~�~}~}~}}~}}}}}~~}|}}}}}}}}}|}}||}|w}|p||||vvp|vvpv|||vvp|ppvpvvppvppvpvpppvppvpooppoppploopoolppoooooolllllllllllllllllllllllllllllC?ClllCCCCClC?C??>>CC>???C?>>=>>=CA=>>=>=>=>A=================$$$=$===$==!$=$!!$=!!$$!!!!!!!!!!!!!!!!!!!! !! !    !l}§à÷üüüüüüüüüüüþú÷÷÷÷÷÷÷÷÷÷÷÷òÙƒ                                                                                                                                                                  zÙñ÷ó÷ó÷óó÷ó÷ó÷üþþþýýýýýýýýüòÓ‘Ž}€~}~}}~~~~~~~~~‘~~�~~��~~~�~�‘��‘‘¡‘~~~~‘~‘‘~~���¡‘�‘¡‘‘‘�‘¡~���¡‘�~~‘¡¡�‘¡��‘‘‘�‘¡‘‘¡¡¡¡¡¡‘‘‘¡‘�‘¡¡¡‘¡‘�‘‘¡¡¡‘‘~�‘‘‘‘¡¡‘‘¡‘~~¡‘��¡‘~~‘~~~‘~�~��~‘~��‘~~~~~‘~~~~}~~}~~~~~~}}~}~~}}}}~}}~}}}~}}}}|w~}}|}}||||||}|w}||}}wv|v|v}||w}vv}vv||vpvpvvpvvpppppppppppppopppoopppopoopooooooolloolololllllllllllllllllllCCCllCCCCCCCC?CC??CC????A>??>>>AC=>>>==>?=>>===>=>======>================$===$$!!=$$$!$!!!$$!!!!!!!!!!!!!!!!! !      $m€×õüüüüüüüüüüýýú÷÷÷÷÷÷÷÷÷÷÷÷ñ×x                                                                                                                                                      [Êèó÷ó÷÷ó÷÷ó÷ó÷üþþþþþýýýþýýüè§�~}}~~}~~~}�~}~~~~~‘~~�~~€�}�‘~���~‘‘~‘���~~�~�‘¡~~�¡�‘‘�‘‘‘�~‘¡‘���¡‘‘��¡¡‘‘‘‘�~‘‘�‘¡�‘‘‘¡‘‘‘¡‘�‘¡¡‘‘‘‘‘‘‘¡�‘¡¡‘‘‘�~�¡‘�‘¡��‘‘‘��‘‘‘‘¡‘��‘���‘���~�‘‘‘‘~���~�~~~�~~~~~~~~~~~~~�~~}~~~~~}~~}~}}~}}}~}}}}|}}}}}|}}w|}}w}v|}}||}|||p|||}||}vpv}vv|vvvpvvvvvvpvpppppppppppppppoopopppooppollolooloplollllllolClllCllllCllCCCCllC?C??Cl??CC??C??C?>A?>>>>>>>A>>>>==>=>>>>==>>======>==============$$=$==$$$!$$!!$!!!$!$!!!!!!!!!!! !!!!! !!!!  !  >}¬èúüüüúüüüüüýýú÷÷÷÷÷÷÷÷÷÷÷÷èÇB                                                                                                                                                                   #�â÷óóó÷ó÷óó÷ó÷úþþþþþþþþþýýúà¥�~~}}}}}~~}}~}}}~~~~~�~~~~�~‘‘~~�~~~~�‘‘~~‘~~‘�~‘¡~~‘�‘¡‘¡‘�‘¡‘�¡‘‘‘¡¡¡‘¡‘¡‘‘�‘‘‘¡¢‘��‘‘‘‘�¡‘~�‘¡‘~‘¡�~‘¡�‘¡¡‘‘��‘¡¡‘�‘¡‘~���‘‘‘�‘¡¡�‘¡‘�‘‘¡‘�‘~‘¡‘‘�~‘‘‘‘�~~~�~�‘~~~���~�~€~~}~�~~~~~~~~}}}}}~}~~}}|}~}}}}}|}}}}|}v|}||v|wvv||v}}|wv|vp||||pvvvv|vpppppvvvppppppppppoopppooppoolopoollopooollllloollllollCllllllCCCCCCCCClCCll??CCC??>?C?>CCA>??>>>??>>>>>=>=>>===>================$=====$=$!$$$==$!$$!!$!!$!!!!!!!!!!!!!!!!!!!!!!!! !     =v¤à÷üüüûüûüüüýýú÷÷÷÷÷÷÷÷÷÷÷õà›                                                                                                                                                    zÙò÷÷ó÷÷ó÷ó÷÷óúþÿþþþþþþþþý÷Ú¤�}}~}��~}~~�~~��~}}~‘‘~‘‘�¡‘�~��~~~~~�‘‘‘�‘‘¡‘��¡‘¡¡¡¡‘‘‘‘‘‘‘‘�¡¡¡¡‘‘‘¡‘�‘‘��¡‘��¡¡‘‘‘�‘¡¡¡‘���‘‘‘‘‘~‘¡‘‘¡¡‘‘‘¡‘‘¡‘‘¡¡‘‘��‘‘¡¡‘‘‘‘‘‘���¡¡‘‘‘�‘��¡�‘�~��‘~~‘~~~��~~~~~~~~~~~}~~�~~}}}}}~}}}~~}}}~}}}|}}}}}}}v}|v}}}}|v|}|||v|}|pw}|vv|||pv|ppppppppvv|vpppppvpooooppoopppopoolppoppollllllllllloloolllllllCC?CCCllCCCCC?CCCCCCCC?>??>>?CCC>>>>?C>>=>>>>>>A?=>>>>=>>============>=====$$$$$=$=$=$==$!$$$=$$!!!!!!!!!!$!!!!!! ! !!!  !  !o‘Úùüüüüûüüüüýýú÷÷÷÷÷÷÷÷÷÷÷ò×x                                                                                                                                                                          YÊèó÷÷ó÷óóó÷ó÷úýþþþþþþþþþý÷Ú’~~~~~}~}}~~~~~~�~~��}~€~��~~��‘~~�‘‘~~‘~~‘¡‘��¡��‘�‘‘¡~‘¡‘‘‘�‘‘‘¡‘��‘‘‘¡‘‘‘¡‘‘‘¡¡¡�‘‘‘¡¡¡¡‘‘¡¡¡¡¡‘‘¡�‘‘¡¡¡���¡¡¡¡�‘‘¡‘‘‘‘�‘¡‘‘��‘‘�~‘‘‘‘¡‘�¡€�¡‘�~�~~~‘~~‘~‘‘‘~�~�~~~�~~~~�~~~~~~~}~~�~}}}}}~~~}}}}}}}}}|}|€s}|}}}}}}|}v|}}||wpv||v}}|pvvv|pv|vvvv|vppppvpppppvppppopppopooppoploooooollllollllllloollCllolClllllllllCCCCCCCCCC??CC>??C>>>>?A>??A>?>>A?>>>=>====>>============$======$==$$$==$!$$!!=$$!$$!$!!!$!!!!!!!!!!!! !! ! !! !!      C�Ú÷üüüüüüüüüýü÷÷÷÷÷÷÷÷÷÷÷÷èÇ@                                                                                                                                                     ›ß÷ó÷ó÷ó÷÷ó÷÷÷üþþþþþþþþþþ÷Ô’~~}~~}}~}~~~~~~~‘�‘~~}~~‘~~‘�~‘‘~�‘‘�~~~�‘‘�����~���‘¡��‘‘‘‘‘�‘‘‘¡‘‘�¡¡‘‘¡¡¡‘¡¡¡¡¡‘‘¡¡‘�‘¡‘¡¡¡¡¡¡¡‘¡‘‘¡‘‘¡‘‘‘¡‘¡¡�‘‘‘‘¡¡¡‘‘‘‘‘‘‘�‘‘�‘‘‘‘‘‘‘¡��‘���‘~~~�~~‘�‘‘�~~�‘�‘�~~~~‘~~‘~}}~�€~€�~}}~}~}}}}}}}}}}}}}}}}}}|}}}}}}|||}}}|v|v||||||vv|v|||pvwvvv|vpppvppvppvvppoppvppppoolpooloollloollollollllloolllllClllCllllllCCCCCClCCCC?>>??CCC???>>>>AC?>?>>?>>>=>>====>=======>==========$======$==$$$$$$$$$!!!!!!!!$!!!!!!!!!!!!!!!! !!!! !   C€Óõûüüüüüüüüýü÷÷÷÷÷÷÷÷÷÷÷òàƒ                                                                                                                                                   _×ñó÷÷÷ó÷÷ó÷÷óüþþþþþþþþþý÷Ó‘~~~~~~~~��}~~~~~}~‘~�~€~~~~~¡‘~‘¡�‘~~‘�‘~¡¡‘‘¡‘‘��~���¡‘‘¡¡‘��¡�‘¡�¡‘‘¡¡¡�¡‘‘‘¡¡¡‘¡‘‘‘‘¡�¡¡‘�¡¡¡‘��¡‘‘¡¡¡¡¡¡‘�‘‘¡‘‘‘�‘‘��‘¡��‘‘‘‘‘‘‘‘��‘‘‘��¡‘~�‘‘‘~~��‘‘‘~~~��‘~~~~~~��~~~�~~‘~}}~~~�‘~}~~}}}}~}}}~}}}}~~}~~}~}}}}ww}||}}}}}}}|}|||v}|}|vv|}}||w||pvvvpvvpp||vppppvppppoopppooppooppopolooloolplllllllllllllllllllClllllCCCCC?CllCCC?CCCC?A??CC?>CC?>????>?=>>>A??=>>=>===>>=========>===>===$===$$==$$=$$!!!!!$$!!$$!!!!!!!!!!!!!!!!!!  !    >Ø÷üüüüüüüüüýú÷÷÷÷÷÷÷÷÷÷÷ñÊZ                                                                                                                                                          #�èó÷óó÷ó÷óó÷÷úþþþþþþþþþþúÚ’�}}}}}}~~~~~~~~‘€‘‘‘~~~~‘�����~���‘~~~‘�‘‘‘~�‘‘�‘‘‘‘‘�‘‘‘¡‘‘��‘¡‘¡�‘¡�¡¡¡‘‘‘~¡¡‘�¡¡‘¡¡‘¡¡‘¡�¡¡‘‘‘¡¡‘¡¡¡¡‘�‘‘‘‘¡‘‘¡‘‘¡¡‘‘�¡¡‘�‘�‘¡¡¡‘�~�¡¡‘�‘¡‘‘‘�‘‘~��~�~~‘¡�~‘‘‘����~~‘�~~~~‘~~~~~‘‘~~~~}}~‘�~}}~}}~}~~}~}}|}}|}s}|}}}|||}}}|vw||v||v|}w|v|vvvvpv|}vp|}|vppp|vpppppvvpppppvpppppppooooppopooolloollCooolllllollllllCClCCClllCCCllCClC?lCCCCCC???C>?C??>>===>>>?A>>>=>?>??>=====>>=========$$$=====$$$$$$=$$$$$$!$!!!!!$!!!!!!!$!!!! !!! ! ! ?Ù÷ûüüüûüüüýþú÷÷÷÷÷÷÷÷÷÷÷æ›#                                                    Y@                                                                                      zÙò÷÷÷ó÷÷ó÷ó÷÷ýÿþþþþþþþþúÙ’~}}}}}}~}~~�~~~~~~~~~~~~�‘~~~‘��~~~‘��‘~��‘‘����‘‘~‘‘�¡‘‘¡‘��‘‘¡‘‘¡¡‘‘¡¡¡‘‘‘‘¡¡‘‘¡‘‘¡‘¡¡‘‘¡‘¡¡‘¡‘¡‘‘‘¡¢¡¡‘¡¡¡¡¡‘¡¡¡‘‘¡‘¡¡¡¡‘‘‘‘‘¡¡¡‘‘�‘¡‘‘‘¡‘‘�‘‘‘‘‘‘�~��‘�¡‘~¡��‘�~~~���~��~~~~~~~~‘�~~~~~}}~~�}}~}}}}~}}}}}}}~}w}}}}|}}}|||}|v}|v}w|||||v|v||vvvp|v|pvvvvvppvpvppvpppppppooppvoppppopopppoooooolpoolooolllllllllClllllCCClllCCllCCCCC?CCC??CC?CCC???>>>>>>>>>>>=>>>>>>>========>====>====$=====$$===$$$$=!!$!$$!$!!!!!!!!$$!!!!!!!!!!! !!  !!     ?€Úúüüüüüüüüýü÷÷÷÷÷÷÷÷÷ú÷ô×]                                                                 ;�_#                                                                                              #Çèó÷óóó÷÷÷÷÷óüÿþþþþþþþþüà‘Ž~}}~}}~�}~~~}}~~~~~~~~~~~~~‘~~~‘‘�~~~~‘¡‘‘~~~‘¡‘��‘‘‘~���¡‘‘‘‘��¡‘�¡¡¡¡‘�‘¡‘‘¡¡¡¡¡‘¢‘‘¡‘‘¡¡¡‘‘¡¡¡¢‘¡¡�‘‘¡¡¡¡¡¡¡¡¢¡‘¡¡‘‘‘¡¡¡¡¡�¡¡¡¡‘¡‘‘‘�‘‘¡¡�‘‘‘‘‘‘‘�‘¡‘��‘‘‘��‘~¡~~‘�~~~�~‘~~�~~~����~~~~�~}}~~~~}~}}}~}~}}}}}}}}}}|}~~}|}}}}}v||}|}}}||||||v|||vvv|ppv|vppv|vppvvppppvpppppppopppopppppoopooloopolloooolllllllollllClllllClllllllCCCCCCCC?CC??>ACC??>>>?>??>>??=>>>>=>A>================>===$==>==$$$==$!$$$!!!!$$!!!!!$!!!!$$!! !!!!!!!! !!  !  !    C’àúüüüüüüüüþü÷÷÷÷÷÷÷÷úú÷æ›                                                       Y@                                                                                           xÙò÷÷ó÷ó÷÷óó÷úþþþþþþþþþýè¤~}~}~~}}}}~~�~}}}}}~�~~�‘�~��‘~�~~‘‘‘~��¡��‘¡‘‘‘¡¡‘‘‘‘‘‘¡¡‘�‘‘��‘¡¡‘¡¡‘�‘‘¡‘�‘‘¡¡¡‘�¡‘‘¡¢¡�‘‘‘¡¡¡¡¡¡¡‘¡¡‘�¡¡‘‘‘‘¡¡¡‘‘¡�¡¡¢¡¡¡‘‘¡¡‘‘�‘�‘¡‘¡‘‘~�‘‘¡¡¡�~‘¡¡¡‘�¡‘~‘¡�~¡¡‘~~�‘~~�‘�~~‘~~}‘‘~~~~~~~�~~}~~}~~}}}~}}~}|||}}}}}||}}v}}}}|wsv|}}|}}p|}}|v||vvvw|}wvvppppvpv|vvpvppppvppopppppvoopoooolppolllllllloollloolllllllCllllllCCCCCCCC?ClC?????>?CCC?>AC>>?>>>>=>>>A>=====>>==>>==>>============$=======$$===$=$$$!$!!!$$!!!!!!!!!! !!!! !!!!   ošíúüûüüüüüýýú÷÷÷÷÷÷ú÷÷÷ô×[                                                                                                                                                                �èóó÷÷÷ó÷÷÷ó÷üÿþþÿþþþþþõ¬‘~|}~}~~~~~~~�~~~~~~~~~~~}~�~~‘‘�~�‘���~���~�‘¡‘�~~�‘‘��‘¡¡¡¡‘�‘‘‘‘‘‘¡¡¡‘�¡¡‘¡¡¡‘‘‘¡¡¡¡¡¡‘‘¡¡¡‘¡‘‘�¡¡¡¡¡¡‘¡¡¡‘‘¡‘‘¡¡‘¡¡‘¡¡‘‘¡‘¡¡‘�‘¡¡¡¡¡‘¡¡¡�‘‘‘‘‘¡‘‘¡¡����¡‘‘‘‘�~~‘‘~~~~~‘‘~~‘‘�~~~�~~}~~~~��~}~~~~~~~~~}~~}~}~}}}}}}}}}}}|}}v}}||}|}|}}}|}|}vwwp|}|v|w|wv|wvvvpv||pvvpvpvvpppppppvppppppopoopoopppooopooloolooolllllllllllCCCCCllCllCClCCCCCC?CCCCC?C??CC>>C?>CA?A???A>>>>>A>>==>=======>====>=======$$$==$$$!$$$!!=$$$=!!!$!!!!!!!!!!! !!! !!!!!!!!    !v¬õüüüüüüüüýü÷÷÷÷÷÷ú÷÷ú÷æ›                                                                                                                                                            xÙò÷ó÷ó÷÷óóóóüþÿþþþþþþþúÕ‘~}}€}~�~~�~~~~�~~~�~}~��~}‘‘��~~‘‘‘‘��‘‘�‘‘‘‘��‘‘‘�‘‘¡‘¡¡‘‘‘‘�¡‘‘¡‘¡¡�¡¡‘¢¡¡‘¡¡¡‘¡¡¡‘‘‘¡¡¡‘¡‘‘‘‘‘¡¡¡¡‘¡¡¡‘‘¡¡¡¡¡‘¡¡¡‘‘¡¡‘¡¡¡¡‘¡¡‘¡¡‘‘‘¡‘‘‘‘¡‘‘¡¡‘‘‘‘�‘‘‘�‘‘‘‘‘‘��~���~‘‘�~‘‘~�‘�~~~~~€~�~�~}~~~}~~~~~�}~}~}}~}}}}}}}}}}}|}}}}}}|}}}}|v|v||v|||p}|v|v||vvppvv|vvpvvvppvvppppppppooppopooplopooloooooooopolllllollllllllllCCCCCllCCClCCCC>CCCCCCCC>>C?>>CAA?>??A>>>>=>>=>>=>>>===>===>=========$==$$==$$$$$$$!$$$!$$$!!$!!$!!!!$!!!!!$!!!!! !!     =}×úûüüüüûüýþú÷úúúú÷úúúúô×Z                                                                                                                                                       #�âó÷ó÷ó÷÷óó÷úýþþþþþþþþýæ‘~}}}}}}}}~~~~}}~~~}~~€‘~~~�~‘�~��‘‘~~�‘��‘‘‘‘~‘�~�‘‘‘‘‘‘‘¡¡‘‘�‘¡‘‘‘‘¡¡¡‘‘¡¡‘¡¡‘¢¡‘¡‘¡‘�‘‘¡¡¡¡‘¡¡‘¡¡‘¡¡‘¡¡¢¡¡¡¡¡¡¡¡¡‘¢¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡¡‘�‘‘‘‘�‘‘¡‘‘¡¡‘‘¡‘��~‘¡‘�‘‘�‘¡‘¡��‘�‘‘‘~�~‘‘�‘�‘~~~�~~~~‘~~~~~~}}}~�~}~}~}}}}}~}}}}}}}}|}}}~}}}}|||w}||||wv|w||vp||v||vp|pp||pppv|vpvvvppppppooppoppololopolopllllpolpllloooooolllllllllllCClCCCCCC?CC???CCCCCC>A?>>?C>>>>??>>>>=>>A=>>>>>==>=>>====>===========$=$$==$=$$$$$=!!!!$!!!!!!!!!!!!!!$!!!! !!!  !    ?‘æúüüüüûüüýüúúúúú÷úúúú÷â”                                                                                                                                                   ]×ò÷óó÷ó÷÷ó÷óúÿþþþþþþþþõ§}~~}}~~~~�����~~~~}~‘�‘�~�‘~‘¡~~~~~�‘‘~�‘~�‘‘¡‘‘‘¡‘��‘‘��‘�¡‘‘¡�¡¢¡¡‘¡¡¡‘‘‘¡‘�¡¡¡£¡¡‘¡¡¡¡¡‘‘¡¡‘¡¢¡¡‘¡¡¡‘¡‘�¡¡¡¡¡¡¡�¡¡¡¡¡¡¡�‘¡¡¡¡‘‘‘¡¡¡¡‘‘¡�‘¡¡¡¡‘���‘¡¡¡¡¡¡‘����¡‘�‘¡¡‘‘‘��‘�~~�~~�‘~~‘�~~�~~~~~�~~~}}~~~~}~~}~~~}}}}~}}w}}}~}}}}}}}|v|}}|||v|||}w|}}|v|ppvww|vvp|ppvvpppppppvpppvpppvvpppppppppoooopoppllllollllllllllllCCCCCllllllCCClllCCCCC?CCCCCl?>?C?>????CC?CC?>>>==>?>>A===>>=>>>========$==$=====$==$!$$!!!!$=!$!!=$$$!$$!!!!!!!!$$!! ! !!!!   p¬õüüüüüüüüýüú÷÷÷úúúúúúôÊB                                                                                                                                          ”àóó÷óóó÷÷óó÷þÿþþþþþþþüØ¡~~~~~~}}}}}~~~~~~‘‘~~‘�~��‘‘�‘�~���~~‘~�¡¡‘‘¡‘¡‘‘�‘‘‘¡‘‘¡‘‘¡‘‘‘‘¡¡‘¡‘‘¡¡¢¡‘‘‘‘¡‘¡¡¢¡¡‘¡¡‘¡‘‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡¡¡�¡¡¡¡¡¢¢¡‘‘¡¡‘¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘‘‘‘‘�‘¡‘�¡¡‘~‘‘‘‘�‘�‘��~�‘‘�‘��~�~~‘�~~���~~~~~~}~~�‘}}}~}}}~�~}~�}}}}}}}}}}}}|}s}}}}w}||}}}wv}}vvvw}vv||vv|pv|wp|vpvpppppopvvppoovopooppplpppppopooolollpolpolllllollllllllClllCllClllll?C?CCCC??CC?????C>>>>>>>>>>>>>=>?>=>>=====>>==>=========$=========$!$$$$!=$!$$!$!!$!!!!!!$$!! !! !!! !    $ŽÙúüüüüüüüýýú÷÷÷úúúúúú÷àz                                                                                                                                                     ;Êñ÷÷ó÷ó÷÷÷ó÷úþþþþþþþþþé¤~}~}~}}~~~~~~‘‘�~~�‘~~�~�‘�~�¡~��~‘��‘‘�‘¡‘‘‘‘‘‘‘�‘¡¡¡‘¡¡�‘¡¡‘‘�‘¡¡¡‘‘‘¢¡¡‘¡‘‘‘‘¡¡¢¡‘‘¡¡‘¡‘¡¡‘¡¡¡¢¡‘¡¡¡¡¡¡¡‘¡¡¡‘¡¡¡‘¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘¡¡¡¡¡¡‘¡‘‘�¡¡¡‘���‘‘‘‘‘‘‘�‘‘�‘‘‘~�‘¡~~�‘‘��‘‘��‘�~~���~~~�~~~~~~€�~~~}}}}~~€}|}~}}}}}|}}|}}||}}w|}}}|pw|v|v|||vv||v|p|v|vvppvpppvppvppppppppppopppoooopoopooooollooloolllllolllllllClCClllCClllCCCCCCCCCC>C?????C?>>>?>A>>>>=>>=C>>==>>====>>==>================$$$$!=$$$$$!!$$$!!!!!!!!!$$!!!! !! !!! ! !     lšèüüüüüüüüþúúúúúúúúúúúè�#                                                                                                                                                   xÙòó÷÷÷÷óó÷ó÷ýÿþþþþþþþúÓ�}}}~~}~}}~~���}~~�‘�~~��‘‘~~�~~‘~~‘~�‘~‘‘�‘¡‘�‘‘‘‘�‘‘��‘¡‘¡¡¡‘�‘‘‘¡¡‘¡‘¡¡¡‘‘¡‘¡‘¡¡¡¡¡¡‘¡‘¡¡¡¡¡¡‘¢£¡¡¡¡¡¡‘¡‘¡¢¡‘¡¡¡¡¡‘¡¡¡¡¢¡¡‘¡¡‘‘¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘¡¡¡¡‘‘‘‘¡‘‘‘~‘¡�¡¡¡�����¡¡�~~‘¡�‘¡¡‘‘¡�~��~}~~~‘‘~~�~}~}}~�~�}~~}}}}~}}}}}}}~}}}}|}~w}|v|w||}v}}v||||v|ppv}wpv}|v||vvppv|vvvvvvvpppppopppvvpppp|ollolloppoplllllllllllllllllllllCCCCllllCCCCCCC?C?C??CC?>>?C>??>?>A?C?>>>>>>>C=>>>>>===>====================$$=$$$==$=$$!!!!$$!!!!!!!!!!!!!!!!!! !!  !!!!     $}Ô÷üüüüüüüýüúúúúúúúúúúòÓZ                                                                                                                                                 �âó÷÷÷óóóóó÷úþþþþþþþþþè¤�}~}}}~~}}~�~~~~��‘~~~~~~~~�~‘‘‘‘‘‘‘‘‘��‘‘�~‘‘‘�‘��‘¡¡‘‘�‘¡¡¡‘¡¡¡¡¡‘‘¡¡‘‘‘¡¡¡¡¡¡�¡¡¡¡¡¡¡¡‘‘¢¡‘‘‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡‘¡¡‘�‘¡¡¡¡¡¡‘‘‘¡¡¡‘¡¡‘‘�‘¡¡‘¡‘¡¡¡‘¡‘�‘‘‘¡‘¡¡‘‘¡‘~~¡‘�‘‘‘‘~~‘�~~~‘~�~‘��‘~~~~~�‘~~�}~}}~~~~}}}}}}}~}}}|}}}~}}}|~}|}||||vw|vw}}}}|||}vvp||v|vvpv|v}vv|vppppvppppvpooploolpooppoololloooooooolloollllCllClllllllCClCCllCClCCCl?CClCC?>?>>C>>??C?>=>>???>>>==>===>=>>>>==>============$$===$=$!$$=$$$$$$!!!$$!!!!!!!!!!!!!!!!!!!   ! ?’èüüüüüüüüýüúúúúúúúúú÷àƒ                                                                                                                                             YÊñ÷÷÷÷÷óóóó÷üÿþþþÿþÿþûÕ‘~}~~~�~}~~~~~~�‘~~�~~~~~��~��‘~�‘�‘�~��‘‘�¡‘‘~‘‘‘‘‘¡‘¡‘‘¡¡‘¡¡‘‘¡‘‘‘‘¡¡¡¡‘¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¢¡‘¢¢‘¡¡¡‘¡¢¢¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡‘¡‘�¡¡¡¡¡¡¡‘‘‘¡¡‘‘‘‘¡¡�‘�‘¡‘�‘‘�~‘‘‘‘~�‘�~~‘�~~~�~�~~~~����~�~~~€~~~}~}~}}~}}}~~}}}|}}}}}}}}}}}}}}}}w}w}}v}}}v|}}||wwvv|vvvvvvvpvvppppppvvpppppppoppopppppooloopoppoolloloollllolllllllllCllCCllCC?lC??CC?CCC????CCCC>AC>?A>>>>C>>>>=>>=>>>===================$$=$=$=$$=$$=$$$$!$$!!!$$!!!!!!!!!!!!!!!!!! !! !  !   |Ó÷üüúüüüüýüúúúúúúúúúúéÇ;                                                                                                                                                zÙ÷÷óó÷óóó÷÷÷þÿþÿþþþþþè¥�~~}~�€}€~}~~��€~~~~}���~‘�~‘~~~~�‘��‘¡��‘�‘‘¡�‘¡‘‘‘¡‘‘¡‘¡¡‘‘¡‘‘¡‘‘¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¢¡¡¡¢¡‘¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢¡‘‘‘¡¡¡¡¡¡‘‘¡¡�¡¡¡¡¡¡¡‘‘‘‘¢‘‘¡‘¡¡‘‘¡‘���‘¡‘��‘‘‘����‘‘��~~~~~~‘�~~~~�‘�~�~}~��~~}~}}~}}}}}}}}}|}}}}}}}|}}}}}}|}}}|v|||v||}}w||vvv||vpvvppvvpppppppvpppvppoovvpoppooooolopppolollpllllolllolllllllllCllClCCCClC>CCC>ClCCCC??CC?>?C>>?>C??>>==>>=>>=>A=>=====================$$==$$$=$$$$$!$!!!!!$!!!!!!!!!!!!!!!!!!!! !  ! !   CšèüüüüüüüýýúúúúúúúúúúõÙ]                                                                                                                                                  ›âó÷÷÷÷ó÷÷óóúÿþþþÿþþþüÓŽ}}}}}}~~~}~~~‘�~~�~�~��~��~~~~~~‘~~�‘¡¡¡¡‘�‘~‘¡‘‘�~‘¡¡¡¡‘‘‘‘¡‘¡¡¡¡¢¡¡¡¡‘�¡¡‘¡¡¡¡¡¢¡¡¡¡¡¡‘‘¡¡¡‘¡¡¡¡¡¢¡¡¢‘¡¡¡¡¡¡¢¡‘¡¡‘¡¡¡¡¡¡¢¢¢¢¡‘‘‘¡¡¡¡‘¡¢¡‘‘¡‘¡‘‘¡¢¡¡¡¡£¡‘¡¡¡¡¡¡¡¡‘~‘¡�‘‘�‘�‘~‘‘¡‘�~~���‘‘‘~~�‘‘~€~~}~�~~~~�~~~~}}}~~}}~}}}}}}}}|}}}}}}}w}||w}}w}||vv}vvp||vp||wvppvppppv||vwvpvpvvpppvoooopppppllooopopoloolollollllloollllolllllllCCllCllCCCCCCCCC?CC?>>>??>?>A>CC>>AA=>A>?>==>============>>>>====$====$$====$$$!$$$$$$=$$$!!!!!!!!!!!!!!!!!!!!! !    !|Øúüüüüüüüþüúúúúúúúúú÷àƒ                                                                                                                                             #Êñ÷÷÷ó÷÷ó÷÷÷ýÿÿÿþþþþþõ¥�~~~}}}~~~~~~�}~~~~�}€‘����~~�‘�‘‘‘��¡‘�‘�‘��¡‘‘�‘‘¡¡‘‘‘¡‘‘¡‘¡¡‘�¡¡¡¡‘‘¡¢¡¡¡‘¡¢¡¡¡¡‘¡¢¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¡¢¢¡¢¢¡¡‘¡¡¡¡¡¡¡¢¡¡¡¡‘¡¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡‘‘‘‘‘‘‘�‘‘�‘‘‘‘‘�‘‘‘¡�¡¡�‘¡‘�‘‘��~�‘¡‘�¡~~~~��‘�‘‘‘‘�~�}~~}~~~~}}~~~~}}}~~}}}~}~}}w}}}}w}}}v|}}}}|}|}}}}vvpv|p|vpv|vq|vpvwvpovvpwppvpp|wppooppplopppoopppolooooollololllllllllllllllllllCCCC??llCCClClCC??????>CC??C>>>?>>A>=?>>>>===>>==>==>>================$=$$$$$=$!!$!$$!!$$!!!!$$!$!!!!!!!!! !!!! !  !!!   Cªõüûüüüüüýüúúúúúúúúúúè�                                                                                                                                   Z×ò÷÷÷óóó÷÷óúþÿÿÿþþÿÿþÚ‘~}}~}~~~}�~~~~~�~~‘}~��������‘����‘¡‘‘��~�‘‘¡‘‘�¡‘¡¡‘‘¡¡�¡‘�¡¡¡‘‘‘‘‘‘¡¡¡¡¡¡‘¡¡¡¢¡¡¡¡¡‘¡¡¡¢‘¡¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¢¢‘¡¢‘¡¡¢¡¡¡¢¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘‘‘‘¡¡¡¡¡‘¡‘‘‘‘‘¡‘‘¡~¡¡¡�‘¡‘‘�‘‘‘‘¡��~‘���~��~~~~‘‘~~~~~~~}~~~~~}~}}}}~}}}}}}}}}}}}}|}}|}}}}}||}|w||w|v|vq||||wvpp}vp|vpvpvvvpppppppvppvpppolopppooopopolooloolooololCloollllllllllllCllll??ClCCCCC????CCCC>C?>A?>>?>>>?>=>>>>>>>=>>====>=================$==$$=$$=$$!!$$!!$$$!!!!!!!$!!!!!!! !!!! !   !   $€àúüüüüüüýýúúúúúúúúúúôÊ@                                                                                                                                                   ”ßó÷÷ó÷÷÷óóóüÿþÿþþþþþú§~}}}}}~~�~~~~‘~~~}~~~~~~�‘‘‘�~~�‘�¡¡‘‘‘�~‘¡¡‘��‘‘¡¡‘‘¡¡‘¡¡‘�¡¡¡¡‘‘‘‘¡¡¡¡¡¡¡¡‘�‘¡¡¡¡‘‘‘¡¡¡¡¡¡¢‘¡¢¡¡¡¡¢¡¡¡¡‘¡‘¡¢¢¢¢¡¡¢¡¡¡¡¢¡‘¡¡¡¡¢¢¢¡‘¡¡¢¡¡¢¡¡‘¡¡¡¡¡‘‘‘¡‘‘¡¡¡¡¡‘¡‘¡‘‘¢�¡¡�‘�¡‘‘‘��‘¡¡¡¡‘~���‘¡‘�~~~‘�~~~~~~‘‘‘~}}�~~~~}}~~}~~~~}}}}}}}~}}}}}}|v}}}}}}|}||||||vv}|||v|||vvqvv|qvp|wpv|pppoppppoovpppppppopooopoooloolooollloollllollllllllCCCCCllllCClCCC?C?>????CCCA??>>???>>==>==>>>>>>>>===>=>A==>====>============$=$!$=$$$$!!!$$!!$!!!!!!!!!! !!!!!! !!  !     oÒ÷üüüüüüüþüúúúúúúúúúõÙ_                                                                                                                                             �â÷÷óó÷÷÷÷÷÷üÿÿþþÿÿþþô¤}}}~~}~~~~}~~~~}~~���‘~~~~‘‘¡¡�‘��~��‘‘�‘‘‘‘‘�‘¡¡‘‘‘‘‘¡¡¡¡¡‘‘¡¡‘¡¢¡¡¡‘¡¡¡¡‘¡¢¡¡¢¡‘‘¡¢¢¢¢¡¡¢¢££¡¡¡¡¡¡¢¢¡¡¡¢¢£¢¡¡‘¡¡¢¡¢¡¡¢¢¡¢¡¢¢¡¡¡¡‘‘¡¡¡¢¢¡¡‘¡¡¢¢¡¡¡‘¡�¡¡¡¡�¡¡‘‘¡¢¢¡‘¡‘‘¢¡¡‘‘�‘‘‘‘¡¡‘‘�¡‘‘‘‘��‘~~�~¡����~~~~~~�~}�~~}��~}}~}}}}}~}}}w|}}v|||}||}w|v||v|}v|v||w}|}|vv|vv}|pvvpppvvpppvpoopppppppvppoopplooolllpplllllloolllllClllllllllClClCC?CCCllCCC???CCC>?C??>A????>=>>>?>?>===>>>C>>======>==============$=====$$$=$$=$$$!!!!!!!$$!!!!!!!!!!!!!!$!!  ! !!    ?¤èüüüüüüüýüúúúúúúúúú÷⃠                                                                                                                                      @Çñ÷óó÷÷ó÷÷÷÷þÿÿþþþÿþþà�~~~~~}~�}~~~~~�~~~~�����~~�‘‘�~~~‘��‘¡¡‘�~�‘�‘‘‘¡‘‘�‘¡¡¡¡¡¡‘¡¡�‘¡¡¡¡¡¡¡¡¡‘¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡‘‘¡¡¡¢¡‘¡¡¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢‘¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡‘¡¡‘¢¡¡¡‘‘‘¡¡‘‘‘¡‘‘‘‘‘¡‘¡¡¡¡��‘~��‘���~~�‘‘‘‘¡�~~~��‘�~~~�‘�~}~}~}}}}}}~}}}}}}}}}}}}}|}}}}wv}|}}}}}}}w||||}|pv}|||||wvvpvvvpvvvvvppppvvpppoooppppppppoooooopollllloollloollllllClllllCllCCCll?CCCCCCClC?>C?>C????C?A??C>>?>=>>A>==>==>=>>>============$=======$$=$!$=$$$$$$!!!$!$$!!$!!!!!!!!!! !!!   !  !!!€àúüüüüüüýýúúúúúúúúúúè�#                                                                                                                                        ]×ò÷÷ó÷÷ó÷÷óúþÿÿþþþÿþû¬�}~~~~~‘}~�~~~~~~¡~~�~~��‘‘~‘~~�‘��‘‘‘‘‘�‘‘¡‘‘¡‘‘‘�¡¡‘¡‘‘¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡¡¡¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¢¡¡¢¡¡¢¡¡¢¡¡¡¡¢¡¡¡¡¢¡¡¡¢¢¡¡¢¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘¡‘‘~‘¡‘¡¡‘‘¡‘�¡‘‘‘~�~~‘��‘‘�‘‘�~~���~�~~~�‘~}~~}~}~~}}~}}~}}}}€}}}}s}}}}}}|}}}}w}}v|}}}|v||||vv|}v|}vvv|ppvvppvppv|ppp|ppppppopoopopppoopoooplollloolllloollllllllllllllCClllC?CClCCCCCCC>l?>?C???>>A>?C>>A>>>>A>>>==>>=>>=>===========$=====$=$$=$$=$$!=!!$$!$$!$$!!!!!!!!!!!! !!!!      v¬÷üüüüüüüþúúúúúúúúúúòÊ;                                                                                                                              xÙó÷óóó÷÷ó÷÷úÿÿþÿÿþþÿù¥~}~~~~~�~~€�~�~~~~~~~~���~~~~¡�~‘‘�~��‘¡‘‘‘‘¡‘¡‘‘¡¡¡¡‘���‘¡‘‘‘¡¡‘‘¡¡¡¡¡‘‘¡¡¡¡¢¡¡¡¡¡¢¢£¢¡¡¢¢¡¡¢¡¡¡£¢¡£¢¡¡¢¡¡¡¡¢¡¢¡¡¡¢¡¡££¢¢¢¡¡¡¡¢¢¡¡‘¡¡¡¡¡¡¡¡‘‘‘¡¡¢¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘¢��‘¡¡�‘¡�����~�‘¡‘�‘‘‘�~}��~~~~�~~�~~~~�‘‘~~~}~~~}}~~~}|}~}}}}~~}}}|}}}|||v|v|v||}}|vv|}|pvvvppv|v|vpvw|vpoppppppoooopvpopoplopooppooooloolpollllllolllllllllCCllCCllCClCClC?lCCC?CClC??C??C>>?>>>>>>>>>=>=>A=>>=====>>====>========$$$$==$$$$$$$$$$$$!$$!!$!!!!!!$!$!!!!!!!!!!! !! !   ! l¥õüüüüüüüþüúúúúúúúúú÷ÙY                                                                                                                                          ƒàóó÷÷ó÷÷ó÷óýÿþþÿÿþþþè’}~}}}}~~}}~~~~~���‘‘�~~�~~�‘~‘�‘¡‘��‘‘‘‘‘‘‘‘¡��‘�‘¡¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡‘‘‘¡¢¢¡¡¢¡‘‘¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢‘¡¡¡¢£¢¡¢¡¡¡¢¡¡¡¡¢¡¡¡¡‘¡¢¢¢¡¡‘¡‘¡¢£¡¡¢¡¡¡¡¢£¢¡¡¡¡¢¡¡¢¡¡£¡¡¡‘¡¢¡�‘¡‘¡¡¡¡�‘‘¡‘‘�¡¡¡‘~~~‘‘�‘¡¡‘~�‘�~�~‘‘‘~~}~‘‘�}}~~�~~~~~€}~~�}}}}}}}wv}||}}}|||}}}}}}}}}w||v}}}}sw}}vvp|vppppppvpppvpppppov|pvopopoppoopoppllopooolooololollCClloollllCClCllCCllllCCCCC?CC>?C?>>??>A>>?????A>>>>>>>=>>>>>=>============$=====$=======$$=$$!$==$$$$!!!$!!!!!!!!!!!!! !! ! !!!!   =‘èüüüüüüüýüúúúúúúúúú÷à_                                                                                                                                               ˜â÷óó÷ó÷ó÷óúýÿÿÿþþÿÿýÚ�}}}~~�}€~}~�~~~~��~€~�~~~¡�‘‘‘‘‘~¡‘�¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘¡¢¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¢¢‘¢¡¡¡¢¡¡¡¡¡¡¡£¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¡¢¡‘¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡‘‘‘¡‘‘‘¡‘�‘‘‘¡�‘‘¡‘‘‘��~�‘�~¡‘~~‘‘€~~�‘‘�~~~~~~~�~~}~}€}~~~~}}}~}}s‘}}}}}}~s}}}}}}|}|s}|||w||v||||||vvw|v||vvvvpvvvpvvvpp||p|voppppppopoopoppoooopolololloollllllllllCllllllllCClClllCCCCCCll>CC>AC?>?CC???>=>>>>>>=AA>>=>>==>=>==================$$=$=$!$$$$$$!$!!!!!!$!!!!!!!!!!!! !! !!  !!      wÙúüüüüüüýýúúúúúúúúú÷æƒ                                                                                                                         žèó÷÷ó÷÷÷÷óúþÿÿþÿÿþþý­�}~}~~~‘~~}��~~~�‘~~�~~����‘‘‘‘‘‘‘~‘¡‘�¡‘‘¡¡‘‘‘‘¡¡‘¡‘‘‘¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¢¡¡¡¡¡¡£¡¡¡¡¢¡¡¡¡¡¡¢¡¡£¡¡¡¡£¢¡¢¢¡¡¡¡¡¡¡¡¡¢¢¡¡¢£¡¡¡¡¡¡¡¡¢¡‘¡¡‘¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘‘¡‘‘‘‘¡¡‘�‘¡¡‘‘‘‘�€¡‘~~‘��~‘‘~�~~�‘‘~~~~~~~~~~}~~~}~�}}~}}}}�~}s}||}}}}|}}}}||}||||}||||||v}|pv|vp|}v|v|vpvvppvvpv|vpvvppooppppppoppooopoooolpollllllllllllllllllllllCClCCCCllCCCCCCll????C???CC?>?>>=A>>>>A>>>>>==>>=>=======================$$$$$$$==$$!!!!$!!!!!!!!!!!!!! !!! ! !!      pÓúüüüüüüýýúúúúúúúúúúè›                                                                                                                  #Óñ÷÷÷÷ó÷óó÷úÿÿÿÿÿþÿÿø§~~}}}}}~~‘�‘‘~�‘~~~~��‘�‘¡‘‘¡~~~‘‘‘�¡�‘~�����‘‘‘¡¡‘¡¡¡¡¡¡¡‘¡¡‘¡¢¡‘¢¡‘¡‘‘¡¢¡‘¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢£¢¢¢¡¢£¡¡¢¡£¦£¢¡¡¢¢¡¡¡¢¢¢¢¡¡¡¡¡¢¢¢£¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘¢¢£¡�¡¡‘‘¡¡‘�‘¡‘‘‘��‘¡‘¡¡‘�~‘¢‘��‘‘‘�‘‘�~~~~~~~}�‘‘}}~~}~�~‘~}}}~~}~}~�}}}}}|}}}~}}~}}|w}|}}}|}}||vvvv|v|vvwvppv|wwvppvvpppvpppp|}vvoolovvvpllooloollolllloppolllolCllClllClCCCCCllCCCCClC????CC?ClCl??CC>A>?AC?AC???A==>>>>>>>=============>======$=$$==$==$$$!!$=!!!!!$$!!!!!!!!!!!! !!!!!!! !! !!!    l§õüüüüüüýþüúúúúúúúúúèÇ                                                                                                                   B×ò÷÷ó÷÷óó÷÷úÿÿÿþÿÿþþõ¤�~}~~~~}}~~~}~��‘~~��~���‘���~‘‘‘¡¥¡‘�¡‘‘~�¡¡‘�‘‘‘‘‘‘‘‘¡¡¡¡¡‘‘¡¡¡¡‘£¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¡¡¡¡¡¢¢¢¡¡¡¡¡¢¡¡‘¡£¡¢¢¡££¡¢¢¡¢¡¡¡¡¢££¢¢¡¡¡¢¡¡¢¡¢¡¡¢¢¢¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡‘¡‘‘¡¡‘‘¡¡¡¢¡¡¢¡‘¡¡¡¡‘¡‘��‘¡‘‘¡�����‘‘‘����~~�~~~�‘~�‘~~~}}~}}}}}}}}}}}~}~|}}}|}|w}}}}|||}v|}}}}ww}w}}w}}w}wwwv}wwvvvwvvvvupvvuuvwpvuuvwppvvupuuvvpoovuuuoouuooouolooutototooootlltlolCtllCCCCllCCCClCAACCCCCAACCCAAAACCllAAAAAAAAAAAA>A=AA@@@AAAA=;===@9@@=====@9$!!!!!! !!!!!!!!!!!!! !  !  !   CšôüüüüüüüþüúúúúúúüúüôÊ#                                                                                                                   ]Ùò÷÷ó÷ó÷ó÷÷úÿÿþÿþÿþÿé‘~~~~~}~~~~~~~~~~~~�~~��~~‘‘~¡�~‘���¡‘�‘¡‘‘‘¡‘�¡‘‘¡‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¢¢¢¡¡¡¡¢¢¢¡¡¢¢¡¢¡¡¡¢¢¡¡¡¢¢£¡¡¢¡¡¡¢¡¡¡¢¢¡¡¢¡¡¡¢¡¡¡¡¢¢¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡‘‘¡¡¡¢¡‘¢‘‘¡‘¢¡‘‘‘¡¡¡‘�‘�‘¡�‘‘‘�‘‘�~�‘¡�~�‘~�‘~~~���~�~~€~~}~}~~~}}}}}}}}}~}}}}}}}}}}|}}|}||www}wœâèèèèèèèèâââèâèèâèâââââèèâââââââââââââââââââââââââèâââââââááââáââááâáââáâááááâââáááâááááááááááááááááááááááááááááááÏááÏááÏááááÏÏáááÏáÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÎÈ„_@$$$!!!!!!!!!!!!  !   =�èüüüüüüüþüúúúúúúúúúõÊ@                                                                                                                        _Ùò÷÷÷÷ó÷ó÷÷üÿÿÿÿÿÿþþèŸ}}}~~~~~~~}~€�~~~€�~�¡‘‘�‘‘~����~~€‘�~‘¡¡¡¡¢‘~‘‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¢¢££¢£¢¡£¢¢¢¡¢¢¡¡¡¡¡¢¢¡¡¢££¢¢¡¡¢¡¡¡¡¡¢¢¢¡¡¢¡¡£¡¡¢¡¡¢£¢¢¢¡¡¡¢¡¡¡¡¡¢¢¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘¡¡¡¡�‘‘¡‘���¡¡¡‘���‘‘¡��‘‘‘�~~���‘�~~�~‘‘�~~~~~~~}��~}�€}}}}}~}}||}}}}}}}}}w}}ww|}s}|}wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüó΂Z9!$ !!!!!!!! ! !!!     !}æüüüüüüüýüúúúúúúúúúõ×B                                                                                                                xÙò÷÷óóó÷÷÷úüÿþÿþÿþÿþà�}}}~}}~�~~�~�~~~~~~~~~~��~‘‘�¡¡¡¡¡‘���‘‘�‘‘�‘¡¡‘¡¡‘‘¡¡¡¡¡¡¡‘‘‘¢¡¡‘‘¡¡¡‘¡¡¢¡¡¢¡££¢¡¡¡¡‘¡¢¢¡¡£¡‘¡¡£¢¢£¢¢£¢¡¡££¡¡¡¡¡¡¢££¢¢¢¢¡¡¡¡¢¡¡£¢¢¡¡¡¡¡¡¡¡¢¡¢¢¡¡¡¡¡¢¡¡�¢£¡¡¡¡£¡¢¡¡¡¡‘¡¡‘¡¡¡‘¡‘¡¡¡¡‘‘‘¡¡¡¡��¡¡�‘‘¡‘‘¡�~~~��¡‘~~�~~~~~~}‘�~~~~~‘~~}~}~}~~~}~}}}|}}}}}}}}}|||}}|pw}vwÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþó΂9!!!!!!!!!!! !!    !æüüüüüüüýüúúúúúúúúú÷×Y                                                                                                         zÙ÷÷÷ó÷÷÷÷÷÷üÿÿÿÿÿÿÿþà�~€�~}~‘‘~~~~~~�~�‘�~‘�~~‘‘��~‘‘�~�‘‘¡¡‘~~‘‘‘‘‘¡‘¡¡¡‘‘¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¡¢¡¡¢¡¡¢¡¡¢¢£££¡¢££¢¡¡¡¡¡¡¢¢¢£¢¢¢£¢¡¡£¢¢£¡¢¢¢¡¡¡¡¢¢¡¡¢¢¡¢¢¡¡¡¡¡£¢¢£¢¢¡¢¡¡¢¢¢£¢¡¡¢¢¡¢¡¡¡¡¡¡¡¡¡‘¡‘¡¡‘¡¡¡‘‘¡¡‘�¡¡¢�¡¡¡~��‘¡‘‘‘�‘‘��‘‘‘‘���~~~~��~‘~��~~~}~}~~~~~�~}}~}}}}}}}}}}}}|}}}}}}}}}}|v}}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÏ[!!!!!!!!!!!!! ! !  !}àúüüüüüüýüúúúúúúúúü÷ÙY                                                                                                                  ƒßó÷÷÷÷÷÷÷÷÷ýÿþÿþÿþÿþÚ�~�€~}~‘~�‘~~}~�‘��~���~�‘‘�~‘‘���‘‘¡‘‘�‘‘¡‘‘‘‘‘¡¡‘‘‘¡¡‘¡¡‘¡¡‘¡¡¡¡¡¡¡¢¢¡¡¢¡¡¢¡¡¢¡¡¢£¡£¢¡¢¢¢¡¡¢¢£¢¢¨¨­­­­¨¨­­­­­­­­¨¨¨­­­­­­­§­­­¨­­­­­­­­­­­­­­­­­­¬­­¨­­¬¨§¨¨§­­¨§¨§¨§§¨­§§§§§§§§§¨§§§§ž§§§¨§§§§§§§§§§¬§§§§§ž§žžž§§§§§šž§šž§ššž§ššž§ššš™žšœššœš™ššš™œ™šššš™™™š™˜™œ™™™™ÙüýþýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýýüýýüýýýüýýüýýüýýüýüüüüýüüüýüüüüüýüüüýýüüüüüüüüýþÿÿÿÿÿÿÿÿÿÿÿúÈY !!!!!!!!! ! !!    |Úúüüüüüüýýúúúúúúúúú÷ÙZ                                                                                                         ”ßóó÷÷÷÷÷÷÷÷ýÿÿÿÿÿÿþýØ�~~~~~~�‘‘�~~���~~����‘‘‘~‘‘���‘¡¡‘~‘¡‘‘¡‘¡¡‘¡��‘¡¡��‘‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡‘‘¡¡¡¡¢¡¡¡¡¡‘¡¢¡¡¡¡¢£¢¨ãõøûûýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýýýýüýüüýýýüüýýüüüüüüüüüýýüüüüèÒžžžžžœœžžžž�������œ�ž�ž�œœœžžœ›œ››œ››››››�œœ�›œ›››œ�œ›››�›››››››››››››––››–››–›–”–”––”–”–––––›–––””””””…–”…”…”ƒ……ƒ”…ƒ””ƒ„„…ƒ„…ƒ……ƒ„„ƒ„ƒ„ƒ‚„ƒƒƒ„ƒƒƒƒƒ„‚‚ƒ„„‚‚‚‚‚‚‚‚„ÂÈËÎçýÿÿÿÿÿÿÿÿò�$!!!!!!! !!!       vØúüüüüüüýýúúúúúúúüúúÙ[                                                                                                             ›à÷÷÷÷÷÷÷÷÷úþÿÿÿþÿÿÿûÖ�}}}}~~€~~~~�~~~�‘‘�‘�~¡‘‘¡‘~�‘¡‘¡‘¡‘¡‘‘¡¡‘¡¡¡¡¡‘¡�¡¡¡¡¡‘‘¡¢¢¡¡¡¡¡¡¡£¡¡¡¡¡¢‘¡¢¡¢¦£¡¡¡¡¢£¢¨ãõþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè}vvp||w}|pvppvv||vvvvpvvpvvpvpvpvppwpvpppooolpooooloolollplllllllooCllolllllllllCCllC?C???CCCC??C?>C?>>C?CC??>>C???>=>?>>>>>>>=>A>>>============$=======$$$==$$$!=!!=!$=B[Ãðüÿÿÿÿÿÿú–9!!! !! !!! !!  !pØúüüüüüüýýúúúúúúúüúúà_                                                                                                          ›à÷÷÷÷÷÷÷÷÷úþÿÿÿÿþÿÿýÓŽ~~�~~~~~~~~~�‘~~~¡�~~‘���‘‘‘‘���‘‘‘‘¡‘¡¡�‘¡�¡¡�¡¡¡¡‘¡¡¢‘¡¡¡‘¡¡¢¡¡¢¢¡¡¢¡¡¢¡¡¢¡¢¡¡¡£¢¡¢¢¢¡¨äûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè}w||v|vvvwv||||vppvpvvvppppppvpoppvppppopppolopppooolooloooloollllloClollllllC?llll?ClCCC?C?CCC?C?CCA>CCA>A?>>>?>>>>>>>>>>>>>=====>========>=====$===$===$$=$=$$$!$$!!$$!!9xÏüÿÿÿÿÿüÆ;  !!! !!        pÕ÷üüüüüüýýúúúúüúüúüúà_                                                                                                 �â÷ó÷÷÷÷÷÷úúþÿÿÿÿÿÿþüÓ~~~~�~}~‘~~~~~��~�‘~~~‘~��~‘‘~‘‘‘�‘‘¡‘‘‘�‘‘�¡‘‘�¡¡¡¡‘‘¡¢¡¡¡¡¡‘¡¡¡¢¡¢¢¡¡¡¢¢¡¡¡¢¢¡¡¢¢¡¢¢¡¥Øùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè�}}|||w}w|w|wvwv|vvpvwww}vvvvvvppvppppvpoppppopvppooooooopppooollollpllolollollCllClClllllCCClCCCC?CCCCCCA?CCA?>>CA>C>>AA>C>>>>>=>>>=>>>>>==>=====$========9$===$9$=$!$$$!!!!9�çþÿÿÿÿþË;!! !! ! !! !    vÓ÷üüüüüüýþúúúúüúúúúúà_                                                                                  �â÷ó÷÷÷÷÷úóúþÿÿÿÿÿþÿûÕ~�~}~~~}~~~~}}~~~~~~‘¡¡�~~~~��¡¡‘��‘~�¡‘¡‘‘¢¢¡‘‘¡¡¡¡¡‘‘¡¡‘¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡£¢¡¡¡¢¢¡¡¡¡¥êþÿÿÿÿÿÿÿÿþûøõëëííëíëëëëííííëíëíëíëííëëëëëëëëíííííííëíëíííííííííëííííííííëííííëëííííéííééííëííéíííííééíííëéííéèéééííèèèèèèéééééèèéééèèéèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèâèèèèèàßßßßßßàßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßÞßßßßßßßßßßßßÞßÞßßßßÞßßÞßÞßßßÞÞÞÏÞÞÞÞÞÏÞÞÎÞÞÞÞÎÎÞÎÞÎÎÎÎÎÎÎÎÎÞÞÞÎÎÎÎÎÌÎÎÎÎÎÌÎÌÌÎÎÎÎÎÎÎÎÌÎÎÎÎÎÌÌÌÎÎÌÌÌÎÎÌÎÌÌÌÌÌÌÌÌÌËÎÎÎÈÄ�Z;!!!!$$BÆüÿÿÿÿþÈ9!!!!!! !!!!       pÓ÷üûüüüüýýúúûúúúúüúúà_                                                                       �à÷÷÷÷÷÷÷÷úúþÿÿÿÿÿÿÿûÕ����~~~~~~~¡¡‘‘���‘~����‘¡¡¡‘‘�‘‘‘~‘‘¡¡¡‘¡¡�¡‘‘‘¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¢¢¡¡¡¢¢¡¡¡£¢¡¢¢¢¢¨íþÿÿÿÿÿþûíݨ¨£¢£¦¢££¢¦¦¢£¢£¦££¢¢¢£££¢£¢¢¢££¢¦£¤¢¢¦¦¦££¡¢¢¢££¢¢£¢¢¢¢¤¢£¢¢¢¡££¢¡¤¤¡¤¤¡¢¡¡¤¡¢¢¡¡¡¤¡¤¡¡‘’‘¡¤¤¢¡¡¡‘¡¡‘‘‘‘¡‘‘‘‘¡‘‘‘‘‘‘‘‘‘€‘‘‘€€€€‘‘‘€‘€‘€}}}}}}w}wwÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ÷ÏÃ_9!!!!=„óÿÿÿÿú„! ! !!  !!  oÓúüüüüüüýþúüüúüúüüüúà_                                                                      �à÷÷÷÷÷÷ú÷÷úþÿÿÿÿÿÿÿüÕ¡~~~�~~~�~~~���‘�~~‘������‘‘�‘¡�‘‘‘¡‘‘‘¡¡¡¡‘‘¡‘‘¡‘¡¡‘¡¡‘¢¡¡¡¡¡¡¢¡¢¡‘¢¢¡¢¡¡¡¢¢¡¡¢¢¡¡¢¢­õÿÿÿÿÿÿûÚ¨£¢¢¢¢¡¢¢¢£¢¢£¢¢¢¢¢¢£¢¢¢¢¢¢¢¢£¢¡¡¢¢¢¡¢£¢££¢¢¢¢¡¢¡¢££¢¡¢¢¢¢¢¢¢¢¡¡¢¡¡¡¡¡¡‘¡¢¡¡¡¡¡‘¡¡¡‘¡¡¡¡¡¡‘‘¡¡¡¡‘‘‘¡‘‘�¡‘��‘¡‘‘��¡~~��‘��‘~~��~~~~~~~}~~~}~}}~}}~}}}}}}}}}}}}}}}}}}}|}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþúËZ9!!!!‚òÿÿÿÿò_ !!!! !     vÕ÷üüüüüüýýúúúúúüüüüúà_                                                                   �à÷÷÷÷÷÷÷÷÷÷þÿÿÿÿÿÿÿûÕ¡~~‘�~~��~~~~~~‘�~~¡‘‘‘��~�~��‘�‘‘¡¡¡‘‘‘‘¡¡‘¡¡‘¢¡�¡¡‘¡‘¡¢¡¡¡¡¡¡£¡£¡¡¡¡¡¢¡¡¡¢¡¡¢¡¡¡¢¢¨õÿÿÿÿÿû㨣£¢£¢¡¢¡¢¢¢£¢£¢¢¢¢¢¢¢£¢£££¢¢¢£¢¢¢¢£¢¡¢¢££¢¢¢¡¡¢££¢¢¢¢¢¡¢¢¡¢£¢¢¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¢¡¡‘‘¡¡¡¡¡¡¡‘¡‘¡¢¡‘��‘¡‘���‘‘�‘¡‘‘��~~�‘�~‘�~��~~}~}}~~}~~~}}}~}}~}}}~s}~}}}|}|}}|wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÃ9!!!$�óÿÿÿÿç@ !! !      qÕ÷üüüüüüýýúúüúüúúüúúà_                                                                        �â÷÷÷÷÷ú÷÷÷÷þÿÿÿÿÿÿÿûÕ�}~~}}~~��~~‘��~�~~~��~‘‘‘�¡¡��¡¡¡‘�‘¡‘‘¡�‘‘¢¡‘‘‘¡¡�¡¡¡¢¡‘‘¢¢¢¢‘¡¡¡¢¢¡¡¢¢¢¡¡¡¡¡¢¢¡¥íþÿÿÿÿøÔ¢¢¡¢¦«£¢££££¡¢¢¡£££¢¢££¦£¢££¡¡£¢¢¦¦£££¢££¦¦£¢¢¢¡¡¡¢¢¡¡¢¢¢£¢¢£¢¡¡¡¡¡‘¢¢¡¡¡¡¡¡¡£¡‘¡¡¢¢¡¡¢¡‘¡¡¡¡¡¡�‘‘‘‘‘¡¡�‘¡‘¡‘�~~‘¡¡��‘�‘‘���~‘‘¡‘‘‘~~~~�~}~}}}~~~~}~}|}}}}}}}}}}}}|v}}||}}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÎB!!!!–ýÿÿÿþÆ$! ! !!!!    !   oÒúüüüüüüýýúúúüüúúüüúà_                                                             �à÷÷÷úú÷ú÷úúþÿÿÿÿÿþÿüÕ~}}~~~~~~~~~}~‘‘��¡��~�‘‘¡‘�¡¡~¡‘�¡¡‘¡¡‘‘¡‘¡‘¡‘¡‘¡¢¢¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¡¡¢¡¡¡¢¢¢¡¡¢¢¡¤ãþÿÿÿÿõ¨¡¢¢¡¢£¡¡¢¢££¢¢£££¢¢£££££¡¢¢£¢¡£¦¡¢£££¢¢££¢¢¢¢£¢¡£¢¢¢¢¡¢¢¢¡¢¡¢¢¡¡¡¡¢¡¢¡¡¢¢¡¡¡¡¢¡¡¡¢¡¡‘¡¡¡¡¡‘¢¡‘¡‘‘¡¡¡¡¡¡‘�~¡¡‘�‘‘�‘�~�~‘‘~�~~‘~~‘~�~‘~}�}‘~~~�}}€}}~}}}}}~~}~}|}}}}}}|}}}|}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÏ[!!@ÈþÿÿÿòZ !!!!!!!  !pÕúüüüüüüýþüüúüüüüúüúà_                                              �â÷÷ú÷ú÷÷úúúþÿÿÿÿÿÿÿûÕ�~~~�~~~�~�~~�‘~~���~~¡��‘‘‘‘~¡‘�¡¡¡‘¡¡¡‘¡¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¡¡¡¢¢¡¢£¢¡¢¢­ûÿÿÿÿõ¨¢¢¢¢¢¢¢¢¢£¢£¢¢¢£££¡££¦£££¢¢¢¢£¢£¦¢¢¢¢¢¢£¢¢¢££¢¢¢¢££¡¢¢¢¢¢¢¡£¢¡¡£¡¡£¡¡¡¡¡¡¢¡¢¢¡¡¢¢¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘¡¡¡�‘‘‘¡‘‘�‘¡‘‘���~‘‘~�~~�~~~‘~~~~�~~~~~~~~~}~~~}€}}~~}}}}}}}}}}||}}||}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏB!!!@çÿÿÿþÈ!!! !!   !   oÕùüüüüüüýýúúüüüüüüüúà_                                                                       �à÷÷÷ú÷÷÷úúúþÿÿÿÿÿÿÿûÓ�~}��€}�‘~��~~~~~~~~~�~~‘��~�¡‘�‘‘‘�‘¡¡‘¡¡¡¡‘‘¡¡¡‘‘¡¡¢¢¢¡¡¡¡¡¢¢¡¡£¢¡¢¡¡¡¢¡¡¢¢¡¢£ëÿÿÿÿûÛ£¢¢¢¢¢¢¢¢¢££¢¢¢££¢¢¡¢£¦££¢¢¦£¢£¢£££¢¢¡¢£¢¢¢¢£¦£££¡¢£¢£¢¡££¢¡£¢¡¡£¡¡¢¡¢¡¡¢¢¢¡¢¡¡¢¢¢¡¢¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡‘‘¡¡¡‘‘¡‘¡¡¡��������~�‘�‘‘~��€~‘~~}}€~~~�}}~€}~}}~}}}}}|}}}}}w}||w|}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþË9!!„þÿÿÿó[!  !!! !     pÕúüüüüüüýýûüüüüüüúüúà_                                    �â÷÷÷ú÷ú÷úúúþÿÿÿÿÿÿÿûÕ�~~~�~}}~~�¡¡��¡¡‘~~‘‘¡‘‘‘¡‘‘��‘‘�‘¡�‘‘‘‘¡‘¡¢¡¡‘‘‘‘¡¢¡¡¡‘‘‘¡¡¡¡¡¡¢¢¡¡¡¡¢¢¢¢¢¢¢£¡¢ÔýÿÿÿýÝ£¢££¦¦¢¢¢£¢¡¢¢£££¢¢¢£££¢¡¢¢¢«£¢¢¡¢¢£¢¢¢¢¢¦¦££¡¢¡£¢¡¢¢¡¢¢¢¢¡¢££¢¢¡¡¢¢¢¢¢¢£¢¢¢¢¡¡¡¡¡¡¡¢¡¢¢¡¡¡¡¡‘¡‘‘‘¢¡¡¡‘¡¡¡¡‘‘���‘�‘‘‘¡��¡‘�~���‘‘~€¡‘~~‘‘~~~‘~}~~}~~}}}}}}}|~s}}}}|}}}}}vw}w}Ùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü–!!!BáÿÿÿþÈ! !!!!! !   oÓúüüüüüüýþüüûúûüüúüúà_                          œà÷úú÷ú÷ú÷úúþÿÿÿÿÿÿÿýÕ�~~~~~~~�~~‘�~�‘‘�~~~‘¡�~‘¡‘��‘‘‘¡¡‘‘¡¡¡‘¡¢¡¡‘¡¡¡¡¡¡¡¡¡¢¡¢¡¡¡¡¡¢¡¡¢¡¡¡¡£¢¡¡¢¡¢£¡¨öÿÿÿÿ릣¢¢¢¢£££¢£¢£¢££¢££¢¡¦£¢¢¢££¢£¢£¦£¢££¢££¢¢£¢¢¢¢¦£££££¢¢£££££££¡¢¢¢£¢¡¡£¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢¡¡¢¡¡‘¡¡¡¡‘‘¡‘¡¡‘‘‘‘��¡¡‘��‘‘�‘��~~‘‘~~‘~~~~~~~~�}~~~}~~}}}~}~}}}w}}}}}|}}}|}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñY!!…ýÿÿÿç@! !  ! !    pÕ÷üüüüüüýýüúüüüúüüüúà_                   �â÷úú÷úúú÷÷úþÿÿÿÿÿÿÿûÕ‘~~~~~~���~‘�~‘‘‘‘�~�‘��‘‘‘�‘‘‘‘‘¡�‘¡‘¡‘‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¦£¢¡£¡¢£¢­ûÿÿÿý­¢¢¢££¢¡££££££¢££¢£££¢£¢¢¢¢££¢¢££¦££¦£¢££¢¢¢£¢¢¢¦£¢¢¦£¢¢£££¢£££¢¢¢¢£¢¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¢¡‘¡¡¡¡¡¡¡¡‘¡‘�¡¡‘¡¡¡‘‘‘‘‘‘‘‘‘��‘‘~~�‘�~~~~~~~~�~~~~~~}~}~~~~}}}}�~}}}}~}}}}w}|}}}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÆ$!!@òÿÿÿú_!!! !!   vÓ÷üüüüüüýýüúüüüüüüüüà_                             œàú÷÷úú÷úúúúþÿÿÿÿÿÿÿýÔ¡~~~~~�‘‘��}~�¡‘�‘‘‘�‘‘~‘¡‘�‘¡‘�‘¡‘‘‘‘¡‘¡‘¡¢‘¡¡‘‘‘¡¢¢¡¡‘¡¡¢¡¡¡¢¢¡¡¢¡¢££¢¡¢¡¢¢¢ãþÿÿÿ襢¢¢¡¢¦¢£££££¢¢£££¢££¦¢£¦£££¦£¡¢£¦£¦¦££¦£¡¢¢¢¢£££¡¡¢¢¢¡¡££¢¢¢¢¢¢¡¢¢££¡¡¡¢¡¡¢¢¡¢¢¢¦¢¢¡¡¡¡¢‘‘‘¡¡‘¡¡‘‘¡¢¢¡‘¡‘�‘‘�¡¡¡�‘‘�‘¡‘‘¡‘~~��‘�‘~~~¡¡‘‘��‘���~~~~�~~~~}}~~~}~}}|}~}||w|}}}||s}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóZ!!!ËÿÿÿþÃ!! ! !!! !   pÓúüüüüüüýþüüúúüüüüüúà_                      œâ÷÷ú÷úúúúúúþÿÿÿÿÿÿÿýÕ�~‘��~~~~~~~~�~~�~~~¡�~‘¡‘�~‘¡‘�¡¡‘¡‘¡�¡¡¡¢‘‘¡¡¡¡‘¡¡¡¡¢¢¡££¢¢¢¡¡¢¢¢¡¡¢¢¡¦£¢¡¥íÿÿÿþÔ¢¢¡¢¡££¡¡¢¢£££¦¦££¢¢¢¦¢£¢¢£¦£¢¡¢£¦¢¢¢£¢¢£££££££££¡¢£¢¢££¢¢££¢£££¡¢¡¢¡¢£¢¡¢¡¡£¢£¡¡¡¡¢¡¡¡¢¢¡‘¡¢¡¡‘¡¡‘¡¡¡‘‘¡‘‘¡¡¡‘¡‘¡���~~�‘‘‘¡‘�‘‘¡�~~‘�‘�~�~~}}~~~�~~~��~}~~~}~~}}}}}}}|}~}}}}}}}}wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ•!!!„þÿÿÿá9! ! !      pÕúüüüüüüýþüúüüúüúüüúà_                   �âúú÷úúúúúúúþÿÿÿÿÿÿÿýÕ~~~~~~~~�~~~~~~~��‘�‘‘‘¡‘‘�¡¡‘~‘¡‘¡‘‘‘¡¡¡�¡¡‘¡¡‘�¡¡¢¢¡¡¢¡¢¢‘¡¢¡¡¢¡¡¢¢¢¡¡¢¢¡¢¢¢¡¨ûÿÿÿø­£¢¢£¢££¢££££¢£¦£££££££¢££¢£££¢£££¦£¢¢££¢££££££££¢¢££¢££¢¢£¢¢£¢¢¢¢£¢¢¡¡¢¢¢¢¡¡¢¡¢¢¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¡¢¡¡‘‘¡¡¡¡¡‘¡¡‘~‘¡¡‘¡‘��¡‘‘���~‘�~�‘‘‘~‘�~�~~~}�€~‘~}€~~}~}~}}�|}}~}}}}}}}}}}||}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ9!!]óÿÿÿòZ! !  ! !   pÓúüüüüüüþþüüúüüüüüüúà_               �æúú÷úúúúúúúþÿÿÿÿÿÿÿýÕ~}~~���‘~~�~�‘��‘‘�‘‘¡¡‘‘‘‘‘‘‘¡¡¡‘‘‘¡¡¡¡¡¡¡‘¡¡¡‘¡¡¢¢¡¡¢¡¡¡¡¡¡¡‘¢¢¢¢¢¢¡¢¢¢¢¡¡¡¡Ôþÿÿÿë«£¢¢££¢¢£¦¦£¢¢£¢£¢¢£¦£¢£¦¦£¢£££££¦¦££¦£££¢£££¢£££¦£££¢¢¢¢££¡¢£¢¢¢££¢¡¢¢¢¢¢¡¡¡¡¡¢¢¢¢¢¢¢¡£¢¡¡¡¡¡¡‘¡¢¡¡‘¡¡¡¡¡¡¡¡¡‘‘�¡‘‘¡¡‘¡��‘‘~��~��‘‘‘~~�‘‘~�~~~‘��~}~~}~~~}}}}}}}}}}s}}}}}}}}|w}}}Ùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò@!!@áÿÿÿú_ ! !!!     pÓúüüüüüüþþüüüüüüüüüüà_                �âúú÷úúúúúúúþÿÿÿÿÿÿÿüÕ~~~~~���‘‘‘�~��‘�¡�~�~�¡��‘¡¡‘‘¡¡‘¡‘‘¡¡¡‘¡¡¢¡¡¡¡‘‘‘¡¡¡¡¡¡¢¢¡¢££¡¢¡¡¢¦¢¡¢£¢¢£Úþÿÿþ㣣¡¡¢£££¢¡¢£¢£¢¢££££££¢£¦¦£¡£¢¦¦£¦£¢££¢¢¢£££££¢¢¢«¦£¡¢£¦¦¦¢¡¡¢££££¢¢££¢££¢¢¢££¢¢¡¡¡££¢‘¡£¢¡¡¡¡¡¡¡¢¡¡¡¡¡¡�‘¡¡¡¡¡¡‘‘‘‘¡¡‘‘�‘���‘‘~‘‘‘�~~~~~�~��}~‘~~~}�~}~}~~~~}}}~~}}}}}~}}~}|}}}wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü[!!9Ïÿÿÿü‚!!!! !!    pÓ÷üüüüüüýþüüüüüüüüüüà_             �âúú÷úúúúúúúþÿÿÿÿÿÿÿüÕ~~��~~}~‘~��‘‘��‘‘�~��~‘~‘¡�‘¡¡‘‘‘¡‘‘‘‘¡‘‘¡¡‘‘¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¢£¡¡¢£¢¢¢£¢¢¢ãþÿÿþÝ£££¢¢££¦£¢¢£¢¦£££££¦£££¦£££££¦£¢£¦¢¢£¦¦¢¢££££¦££¢£££¢¢¢¢£¢££¢¡¢££¢¢¢¡¢££¢¢¢¡¢¢¢¡¡¡¢¡¡¡¡¡¡¢¡¢¡‘¡¡¡¡¡‘¡¡¡¡‘¡¡¢‘‘¡¡¡¡¡‘��‘¡‘‘‘‘~�¡‘‘‘¡‘���~~~��~~�~~~}}~~}�~}}~~~~~}}~}}}}}}}}||}}}wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ�!!$Îÿÿÿý…!! ! !   !  oÓúüüüüüüýþüüüüüüüüüüà_     �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ���‘�~}~�~~�~‘‘‘�‘‘~�‘�‘‘¡¡¡‘¡‘‘‘‘‘‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¡¡¢¡¢¢¡¡¡¡¡¡¢¢¡¡¢¢¢£¢¡¢¢¡êÿÿÿþÝ££££¢££££¢££¢¦£¢¢££¦££¦¦£££¦¦£¢££££¦££¦££¢£££¦££¢£££££¢££¡£££¢££¢¢¢¢¢¢¢¢¢¢¢¡¢¡¡¡¡¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡‘¢¡‘¡¡¡¡¡¡¡¡‘¡¡‘‘¡¡�‘‘‘¡¡‘‘‘‘‘‘¡�‘‘�~~‘����~~~�~~~~~~~}~}~~~~~}}}}}}}|}|}}}}||}Ùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ‚!$!ËÿÿÿþÂ!!! ! ! ! pÓúüüüüüüþþüüüüüüüüüüà_          �æúúúúúúúúúúþÿÿÿÿÿÿÿûÕ��~��~~��~~~��‘‘~�‘¡‘�¡¡¡¡¡¡‘¡‘‘‘¡‘‘¡¡¡¡¢¡¡‘¡¡¡¡¡¡¡¢¡¢¢¡¢¢¡¢¡¡¡¢¡¡¢¡¡¢£¢¢¡¢¢¢¢ëÿÿÿýÔ££¢¢£¢¢£££££¦£¢¡¡£££¢££¦££¦«¦£¢££££¦¦¢£££££¢¢¦£¢¢£¢¢¦¦£¢¢¡¢££££¢¢¢¢¢¦¢¢¡££¢¢¢¢¡¡££¢¡¡¡¢¡¢¡¢‘¡£¡¡¡¡¡¡‘‘¡¡‘¡¡‘‘¡¡‘‘¡¡¡‘‘‘‘¡¡‘~‘‘‘¡�~‘~~�‘‘‘�‘�~~~�‘���~~}~�}~}}~}}}}}}}}}}}|wÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!! ÂþÿÿþÃ!!!! !!    oÓúüüüüüüþþüüüüüüüüüüà_              �â÷úúúúúúúúúþÿÿÿÿÿÿÿýÕ�}~~��‘¡���‘‘~~�~~~�¡‘�‘‘�~‘‘¡¡¡¡¡¡¡‘‘‘¡‘‘¡¡¡¢¡¡‘¢¡¡¡‘¡¡¡‘¡¡¢££¢£¢¡¢££¦££¢¢£¢£¦ëÿÿÿýÛ¢¢¡¢¦££££¦££¦££££¦«£¢¦££££¢£¢¦£¦«£¢¢¢£¦££¦¦¢££¢£££££¦££££££¡¡££¢¢££¢£¢¡¢¢¡¡¢¢££££¢¡¡¢¢¢¢¡¡£¢¢£¡¢¢¡¡¡¡¡¡¡¡¡‘�‘¡¡‘�‘‘‘~‘¡¡‘‘�~��~‘‘‘‘‘‘‘‘‘�‘~‘�~~‘�}~~~�~~}}~}}}~}~~}}}}}}}}w|}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!  ! !     pÕúüüüüüüýþüüüüüüüüüüàx            œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~~~~‘~‘�~�‘¡��‘‘‘‘‘‘¡‘‘‘‘¡¡‘¡¡‘¡¡¡¡¢¡¡¡‘‘‘¢¢¡¡£¡¡¢¡¡¡¢¡¡¢¢¢¡¡¢¢¢¡¢¢¢¡¢¢¢¢¢££ëÿÿÿþÛ¢£££¦£££¢¦¦£££££¦££££££££«£¦¦££££££¢££¦£££¦£¢¦££¦¦«¦¢¢£££¦£¢£¦£¢£££¡¢¢¢£££¢¢¢£¢¢¡¡¡¡¡¡¢¢¡‘¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡�‘‘¡‘‘‘�‘‘‘����‘~~�~~~~‘~~‘‘��}~�~~~~}}}}~~}}}}}}}}}|}}}}}}ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!!!   pÕøüüüüýüþþüüüüüüüüüüà_      œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~����~��~‘‘‘‘‘¡¡�‘‘‘¡‘‘¡�‘‘‘¡¡¡¡¡¡‘¢¡‘¡¡¡‘¡¢¡¡£¡¡£¡¡¡¢¡¡¢¢¡¡¡¢¢¢¡¡¢¢¡¢¢¢¢£££ëÿÿÿþÛ££¦¦£££££¢££££££¦¦£¢£££¦««¦£¦¦£¢£££¦££¦£¢£¦£££¦£££¦£¢££¦¦££££££££¢¢¢¢£££££¢¢£¢¡£¡¡¡¢¡¡¢¢¡¡¢¡¡‘¡¢¢‘¢¢¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡‘‘‘¡‘‘¡‘‘‘‘����~~~�~~~�~~~‘‘~}�~~~}�~}}~~}}}}}}s}}}}}}}}}}€ÙþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!! !       pÕúüüýüüüþþüüüüüüüüüüà_         �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~‘¡‘‘~�‘~~�~~�‘‘‘~�‘¡‘�‘¡‘¡‘‘¡‘¡¡¡¡‘¡¡‘¡¡¡¡¡¡¢‘¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡£¢¢£¢¡¢£¢¢¡££££ëÿÿÿý­¢¦£££¢¢¦«£££¢£££¦¦£¦£¢£¦«£¢£¦¦££««£«¦£¦¦¦££¦¦¢££££££¢£££££¢¡££££¢¢¢£¦£££¡¡¢¢¡¡¢¢¢¢¢¢¢¢¡¢¢¢¡¡¡‘¢¡¡‘¡¡¡‘¢¢¡¡¡¡¡‘‘‘¡¡¡¡‘‘‘‘‘‘‘��¡¡‘��~�‘‘‘~~~~~�~}€~~~~~~~~}}~�}~~~}}~}|}~}}}}}}}}vw|}Ùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !!ÂþÿÿþÆ!!!!   ! !  pÓúüüüüüüþþüüüüüüüüüüà_         �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~�~~�~~‘‘¡‘��‘�~‘¡¡‘�‘‘¡‘‘¡�‘‘‘�¡¡‘‘¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¢¡¡¢¢¡¡¢¢¡£¢¢¢¡¡¢¢¢£¢¢££¦ëÿÿÿþÔ¢££¢£££££¢£¦¦££££££¦£¦¦¦£££££¦¦¦««£¦¦££¢£¦£££¦¦¦£¦££¢¦¦£¢£¢¢¦¦£££¢¢¢¢¢¢¢¢¢££¢£¢¡¡¢¡¡¢¢¡££¢¡¡¢¡£¢¢¢¡¡¡¡¡¡¡‘‘‘¡¡¡¡‘�‘‘¡¡¡¡‘�‘‘��‘��‘¡‘�‘��‘‘¡�‘‘‘‘‘~~~�}}}~~}}}~~}}}}~}~}}}}w}}}ÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!  ! ! !      vÕúüüüüüüþþüüüüüüüüüüà_                �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~�~~�~~~‘‘���¡��‘��‘¡�‘¡¡‘‘¡¡¡¢�‘¡¡‘¡¡¡¡¡¡¢¡¡¡¡¢¢¢¡¢¡¢¢¢¡¢¢¢¡¢¢¢£¢£¢¢££¢¢¢££ëÿÿÿýÛ£££££¢¦¦£¢£¦££££££££¢£¦«££¦£¦£££¦¦¢£¦¦¦££©£££¦£££¦£££¦¦£¢£££££¢¢£¦¢¢¢£££¢¡¢££¢¡¢¢¢¡¢¢¢¢¢¢¢¢¡¡¡¢¡¡¢¡¡‘¡¡¡¡¡¡¡‘¡¡¡‘‘‘‘¡‘‘¡‘‘‘¡‘‘‘‘~�¡‘~~~~�‘~~�‘��~~~~~€‘šš§š§§ššš™™™™™™™™™™™‘�������àþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! ! !  !   pÕúüüüüüüþþüüüüüüüüüüà_             �æúúúúúúúúúúþÿÿÿÿÿÿÿýÔ‘~~�~��~~‘�‘‘����¡�‘�¡�‘¡‘�‘¡¡¡¡‘‘¡¢‘¡¡¡¡¡¡£¡¡¡¢¡¢¢¡¡¡¢££¡£¢¢¡¢¢¢£££¢¢£££¢¢¢£ëÿÿÿýÛ£££££££¦£¢£££££¦££¦¦£¦«£¢¢¦¦¦££¦£¦£¢¦©£¦¦¦£££¦¢£«££££¦£££££¦£¢¢¢£¢¢¢££££¢¡¢£¡¡£¢¢¢¡¡¢¢£¡¡¢£¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡‘‘¡‘¡‘‘‘¡¡¡‘‘‘¡¡�~‘¡�~~�‘�~~}~‘~~~~~~~�¤õùõõõõõõõõõõõùùõõõõõõõõõõõòõûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!  !    pÓúüüüüüüþþüüüüüüüüüüà_                 œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�‘�~‘~��~�‘��‘‘~~~~‘‘¡‘‘¡‘¡¡‘�‘‘¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡£¡¡¢¦£¢¢¡¢¡££¡¢¢¢¢¢¢££¢ëÿÿÿýÛ£¢¢£¦£££¦££¦«¦¦¦££¢¦¦¦¦£©¦¦¦££¦«¦¦££¦£¢«¦¦££¦¦£¦«£¦«£££¦¦£¢£¢£££¢¢¦££¢¢¡¡¢¢£¢¢££¢¢¡¡¢¦£¡¡¡¢¢¡¡¡¡¢¡£¢¡¡¡‘¡¡¡¡¡¡‘¡¡¡‘‘‘‘¡¡¡��~�¡¡‘‘‘¡¡‘�‘¡¡‘~~~~~~~}~~~~}™ýûÙÙÙÙàààææèèèéôôôòõõõõùù÷úúúüüüýýýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!! !!      pÓúüüüüüüþþüüüüüüüüüüà_            �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~‘‘�‘�‘�~‘�‘‘¡‘�¡‘�‘‘‘‘‘‘‘¡¡‘‘‘‘¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¢¡¢¡¡¢¡¡¡¡¡¢£¡¡¢¢££¢¢££¦¦££¦ëÿÿÿýÔ££££££££££££«£¦¦££££¦«¦£¦¦¢££«£££££££££¦¦££¦¦££«¦¢£¢¢¢£¦¦££££££££¦£¡£¢£££££¢¢£££¢¡¢¢¡¢¢¡¡¡¡¢¢¡£¡‘‘¡¡¡¡¡¡¡¡¡¡¡‘¡‘¡¡¡¡¡‘¡¡‘¡¡‘‘‘‘�~~~�~‘‘‘���‘~}~����~~‘šÿõ¤€€}‘‘���‘�š™™™™šžžžÒÒÒÒÊÊ××ÙÙÙàââèèññòò÷÷üüýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!        pÓúüüüüüüþþüüüüüüüüüüà_               �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ‘~~~~~~�~‘�~‘~�‘�‘¡‘¡‘‘¡‘‘‘‘‘‘‘¡‘‘‘¡¡¡¡¡¡‘¡¡¡¡¡¡¡¢¢¢¡¢¢¢¡¢¢¡¡¢¡¢¡¡¡¢££££¢£££££¦ëÿÿÿý­£«££¦£££¦£££¦££¦¦¦££«¦£¦¦¦£¦¦«£¦¦¦¦¦£¦£¦¦£¦¦¦££¦«¦££££¦¦¦¦££¦¢£¦£££¢¦¢¢¦£££¡¢¢¢¢¢¢¢¢¢¢¢¢££¡¡¡‘¢¡¡¡¡¡¡¡¢¢¡‘¡¡‘‘¡¡¡¡¡¡‘¡¡‘¡‘‘‘‘‘¡‘‘‘��‘‘�~~~��~~~�‘�~~~~�šÿè€~~~}}~}}}}}}}}}}}}}}}}}wv}||w}}www}}w}††�†˜˜žžÇÊÞßèõþÿòõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!ÂþÿÿþÆ!!!!!!!       pÓúüüüüüüþþüüüüüüüüüüà_                                           œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~��~~~~��~‘����‘¡‘‘‘‘¡‘‘‘‘��¡¡¡¡‘¡¡¡¡¡¡‘‘¡¢¡¡¡¢¡¢¢¡¢¡¢¢¢¡¡¢¡¡¢¡¢¡¢¢¢£¢¢££¢£££ëÿÿÿýÛ£¦¦£££££¦££££££¦¦£££©££¦¦«©¦«©£¦¦®¦¦¦¦¦££¦©¦£¢££¦«¦¦«£«¦£¦£££¢£¦¢££¢££¢£¢££¡¢¢¡¢¢¢£¢£¢¢¢££¡¡¡¡¡¡¡¡¡¡‘¢¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡‘‘‘‘‘‘‘‘¡¡¡¡¡‘�����~~���~‘‘�~~~žÿæ~~}}~}}}}}}~~}}}|}}}}}||w||v}}}}||vvv|p|vp|||pvvvvpvvvw˜üÿžÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!ÃþÿÿþÆ!!!!! ! !      pÓúüüüüüýýþüüüüüüüüüüà_                                     œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ��‘‘‘�����‘�¡¡�‘‘‘‘‘¡‘~¡‘�‘¡¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡¢¢¡¡¡¡¡£¢¡£¢¢££¢¢£¢¢£¦¢¢£¦ëÿÿÿýÛ¢££££££«¦££¦£¢¦¦££¦««¦¦©££££¦¦¦¦«®££©©¦£££¦£££££¦£¢£«£££££¦££¢£¦£¦¢¢¢¦££¢¢¢¢¢£££¡¢¢¡¡¡¡£¡¡¡¢¡¡¢¡¡¢¡¡¡¢¡¡¡¡¡‘‘¢¢¢¡‘�¡‘‘��¡¡‘‘¡¡‘��‘‘~�~‘¡¡�~�‘‘‘‘�‘~��~~§þÙ}~~}}~~}}}}s}~}}}s|}}}}}||}}}}v}|v||vw|||||v|wv||wvpppvppv†ýü†˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ! !ÃþÿÿþÆ!!!  !! pÓúüüüýüýýþüüüüüüüüüüà_                                         �âúúúúúúúúúúÿÿÿÿÿÿÿÿýÕ�‘�~~���‘€~�‘�~‘‘���‘�‘¡�‘‘¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘¢¢¡¡¡¢¡¢¢¡¡¢¡¡¢¢¢¡¢¢¢£££¢¢£¢¢¢£££¡¢£«ëÿÿÿýÛ££££££¦¦££¦¦£¦«®¦££¦£¦«©££¢£¦¦«££¦£«¦¦¦££¦¦¦¦¦£¦¦¦£££¢£¦£¢¢£¦£££¢££¦££¦££¢¢¢¡¢¢£££¡¢¢¡¡¢¢¢¡¡¢££¢¢¡¡¡¡¡¡¢¢¡¡¡¡¢¡‘¡‘‘¡¡¡¡¡¡‘�~‘‘‘�‘‘‘¡‘‘�~~����~�~~~~~~~ÓþÓ~~~~}~~}}}}}}}}|}}}}|}}|w|}}|||}w|w|v|vv||vvpvvvvv|vppp†ýõ†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!!  !    !vÕúüýüüüüþþüüüüüüüüýüà_                               �æúúúúúúúúúúþÿÿÿÿÿÿÿýÕ��~~~���~~~‘‘��‘‘�‘‘‘�‘‘‘‘‘¡¡‘‘¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¡£¢¢¢¡¢¢£¢¢¢£¢¢¢¢££¢¢¢£¦ëÿÿÿýÛ¦££¦¦£¦£¢¦¦£¢¦¦¦¦££¦£¦¦¦¦¦£¦££«£¦¦£¦¦£®¦¦®£¦¦¦£¦¦¦¦¦£££¦££££¦££¦£££¢££££¢¢¢£¢¡¡£££¢¡££¡¢¢¢¡¡¢¢¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘¡‘¡¡¡¡¡¡¡‘‘¡‘‘‘¡‘��‘‘�¡‘���~�‘~~~��~~~~~�~ÓýÓ~~�~~}~}}~~}}}}}}}}}}}}}}}}}||w}}w|}}}||||}||}vvvvpvv|vvvppp†ýèw†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÃþÿÿþÆ!!!! ! !!    pÕúüüýýüüþþüüüüüüüüüüà_                            �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~~‘~~~~�‘‘�‘‘‘‘‘‘‘¡‘‘‘¡�¡‘¡‘‘‘¡‘‘‘¡¡¡¡£¡¡¡¡¡¡¡¢¡¡¡¡¡¢¢¡¢¢¢¢¢¢¡¡££¢¢¢¢¢£¢£¢¢£ëÿÿÿýÛ¦£¦««¢£¦£££££¦¦£¦¦¦¦£¦££®«¦©££¦¦¦¦¦¦©¦¦«¦«££¦©££«¦«¦¦¦¦££¦¦££££¦¦££¢££¢££¢¢¢£¢¢¢¢¢¢¢£££¢¡¢£¢¢¡¡¡¡¢¡¡¡¢¡¡‘‘¡¡‘‘‘¡¡¢¢¡‘‘‘�¡¡¡¡¡‘‘�‘‘�~~�‘‘��‘��~‘‘~�~~~ØýÒ~�~~~}}}}}~}~}}}}}}}ww}}}}}w||}||w}}|wvw||w|vpvvvvvpppvpvp˜ýâp†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !!ÂþÿÿþÆ!! !       pÓúüüüüüüþþüüüüüüýüýüàx                                                    �æúúúúúúúúúúÿÿÿÿÿÿÿÿýÕ���~~�‘�‘‘‘�~~����‘¡¡‘�‘¡¡¡¡‘‘¡¡¡¡¡¡¡¡£¡¡¡¡¡¡¡£¢¡¡¡¢¢¢¡¢¢¢¡£¦¦¦¦¢¢£££¢£¢££££¢¢¦ëÿÿÿýÛ¦£¦£££¦©¦£££¦«¦£¦©®¦£¦©©©¦¦¦©«¦©£¦©££££££¦«¦¦¦£¦¦££¦¦¦¦¦£¦£¦¦££££¦¦£¢¡¢¦££¦£¡¢£££¡¢£¡¢£¡¢¡¡¡¡¡¢¡¡¢¡¡¡¡¡££¡¡¡‘¡¡¡¡¡‘‘�¡¡�‘‘�‘�¡‘����~‘¡¡‘���~~�‘�‘‘}~�~Ùû§~}~~}~~}}}}~~~}}s~}}s}}}}vws||}|||vvv}wv|||vvp||vvv||pppvvppv™þßv†ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!! !!!!  pÓúüüüýýýþþüüüüüüüüüüà_                                                                     �âúúúúúúúúúúþÿÿÿÿÿÿÿýÕ�~~~~~‘‘‘�~‘‘‘�~‘�¡‘‘‘¡‘�‘‘‘‘¡¡‘¡¡¢¢‘¢¡¡‘¡¢¡¡¡¡¡¡¢¢¡¢¡¡¡¡¢£¡¢¢¢£££¢£££¢¦¦¦£££¦ëÿÿÿýÛ£££££££¦£«¦¦¦¦¦££¦¦¦£¦«©££¦¦¦©£©©¦®¦£¦¦©©£««££¦«¦¦££££¦¦£¦£¦¦¦¦¦¦¦££¢¢¦¦¦£££¢¢£¢¢¢¢¢¡¡¢¡¡¢¡¡¡¢¢¡¡¡¡¢¡¡¡¡¡‘¡¡¡¢¡‘¡¡¡¡‘¡¡¡¡¡¡¡�‘¡‘‘‘¡~�‘‘‘�~‘�~��~�‘~~‘�àû¥~~~~~}~}~~}}}}~~}}|}}}}s}}}|}}|}}|||||||v}|||||wvv||vp||vpp˜ýÞv†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!  ! !   pÓúýýýýüüþþüüüüüüüüüüà_                                                               œâúúúúúúúúúúþÿÿÿÿÿÿÿþÕ�~~��~�‘����¡‘‘�‘‘�‘‘‘‘¡‘‘‘¡‘‘¡¡¡¡¡¡¡‘¢¡¡¡¡¢¢‘¡¡¡¢¢¢‘¢¢¡¢¡¢¢¢¡¡¡¢¢¡¡¢££¢¦¦££££¦ëÿÿÿýÛ£¦£££££££¦¦£¦¦¦¦£££®¦¦¦«£¦£«£££««¦©¦¦®«¦¦£¦¦££©¦£®¦£££¦¦¦££££££¦¦£££¢££££¦¦££¢£¡¢£¢¢¢¡¡£¢¢¡¢¡¡¢¡¡¡¡¢¡¡¡¡¡‘¡¡¡¢¡�‘¡¡¡¡¡¡¡¡‘¡‘¡¡¡‘‘‘¡�‘‘�‘�~~‘��~~~~‘~‘~æû¥~~~}~~~}}}}~~}}}}}}}}}}}|}}v}ww}||}}|v||||vpvvv|w|vvv|vp›üÉp†ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!! !  !      pÕúýýýüýüþþüüüüüýýüüüàx                                                                        œæúúúúúúúúúúÿÿÿÿÿÿÿÿýÕ������‘�~~�‘¡~~‘¡‘‘�¡‘¡‘‘¡¡¡‘�¡¢¡‘‘‘‘‘¢¡¢¡¡¡¢¢£¢¡¡¢¢¡¡££¡¡¡¢£¡¡¡¢¢¡¡¡¢¢¢¢¢£££££ëÿÿÿýÛ¦££££¦©¦£¦¦£££££«¦¦®¦«¦£©©¦©¦£¦©¦¦¦®©¦££¦©¦£¦©©¦¦«¦£¦©«¦©¦¦£¦¢¢¢£¢££££¢¢£££¢¢¢££££¢£££¡¢£¢¡¡¢¡¢¡¡¢¡¡¡¡¡¡¡‘¡¡¡¡‘‘¡‘¡¡¡‘¡¡¡¡‘�¢¡¡¡‘‘��‘�~���~�‘���~�‘~€~èû¤~}}}}~~~}~}€~|}}}|}}~}}|v|w}}}|}|||v||vvpvvv|vv|vvvppœü�p˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ! !!!     pÓúüüüüüýþþüüüüüüüüýüàx                                                                 œâúúúúúúúúúüþÿÿÿÿÿÿÿýÕ��~~~����~�‘�‘�‘�‘‘�‘‘¡�¡‘¡¢¡‘¡¢¡¡¡¡¡¡¢¡¡‘¢¡¡¡¡¡¡¡¡¡¢¡¡£¢¢¡£££££¢¢££¢£¦£¢£££¢¦¦ëÿÿÿýÛ¦¦¦££¦¦¦£¦¦¦¦©©¦©¦¦®¦¦¦£¦©£«©¦£«¦¦£¦©©¦£¦®©««¦¦¦«££££££££¢£«©££££££££¢¢££¢£¢¡¢¢¦£¢¢¢¢¢¢¢¡¢¦££¡£¢¡¢¢¢¡¡‘¡¡¡¡¡¡¡¡¡¢¡¡‘‘¡¡‘‘‘‘‘‘����‘‘�‘‘�~�‘�‘‘‘~�~~~~~}~ôú€~�~~~‘~~}~~}|}}}}|}}s||}}}}|w||||vv|vv}v}}pvv|w}|pp|p|vvp�úœv˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! !     !     vÕúüüüüüüþþüüüýüüüüýüà_                                                                                   œâúúúúúúúúúúþÿÿÿÿÿÿÿýÕ��~~�‘~~‘�‘‘~‘‘¡��‘‘‘‘‘�‘¡‘‘‘‘¡¡¡¡‘¡¡¢¡¡¡¡¢¢¡¡¢¢¡¢¢¡¢¡¡¢¢¢¢¢£¢££¢¢££¢¢££££¢£££¦ëÿÿÿýÛ£¦©¦£¦£££¦¦¦£©©¦©££¦«¦¦©¦¦£®«©©¦«¦¦¦©®¦¦¦©«¦¦£¦¦«££¦¦£££¢¢¦«¦£¦«££££¦££¦£££¢¢¢¢¦££¦¢¢¡¦£¡¡£¢¢¡£¢¡¢¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡‘�‘‘�‘‘�‘‘�‘‘‘¡�����~�~�‘~~õú~~�~~~~~~~}}}}}}|}}}}}}}s}}|}}||}w|}|w||vw||pv|v|vvpwvppvpÇ÷œp˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ! ! !!!!    vÓúýýýýýüþþüüüüüüýýüüà_                                                                                                          �âúúúúúúúúúúÿÿÿÿÿÿÿÿýÕ ~~~�‘�~~�‘‘��‘‘‘��‘‘¡‘�‘¡‘‘‘‘‘¡¡¡¡¡¢¢‘¡¡¡¡¡¢¡¡¢¢¢¢¢¡¡¢¢¢¡¢¢¢¡¢¢¢¢£¢¢¢¢££¢£££¢¦ëÿÿÿþÛ£¦«¦££¦¦©¦¦££©«¦¦££¦¦¦«¦¦¦¦®«®«®«¦®««¦¦«©£«¦¦¦£¦¦«¦¦¦¦¦£££¦«£¢£«££££¢££¦££££¢¢¢£££¢£¢¢££¢¡¢¡¡¡¢¢¢¡¢¡¡¡¢¡¡¡¡¡¢¡¡¡¡‘¡¡¡¡‘‘¡¡¡¡‘�‘¡‘‘‘�‘‘‘‘‘‘‘~~�~~�‘~~€�~õú€~}}~}~}}}}|}}}}}}}}~|}}}|||}w}w|}}w}||||vv|v|vwvvqvppp|vÇú˜p›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÂþÿÿþÆ!!!!!! !      pÕúýýýýýüþþüüüüüüýýüüà_                                                                                                             �âúúúúúúúúüúÿÿÿÿÿÿÿÿýÕ¡~��~~‘‘�‘�‘‘�����~‘‘‘¡¡¡¡¡¡¡¡¡‘�¡¡‘‘¡‘¡¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¢£¢¢¢¦¢¢¢¢¡¢££££¦¢¢£¦££¦ëÿÿÿþܦ££¦¦¦¦¦££££¦«¦£¦££¦¦©®®¦¦«¦¦££««®¦¦«¦©®«£®®«©£¦£¦£¦©©«®«¦¦¦£¢£¦¦¦£££££¦¦£££££¢£¡¡¡¢¢¢¢££££¡¢¢¢¡¢¡¢¢¡¡¢¢¡¡¡¡¡‘‘¡¡‘¡¡‘‘‘¡¡¡‘�‘‘‘¡‘¡¡‘�‘‘�‘~��¡�}~~~~€‘úú�}}}~~~}~}~}}~�}}s}|}|}}}|||v||}}}}}vv}ww|v||vvvvppvvwv|wÊú†vžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!! ÂþÿÿþÆ$!!! ! !!   !    pÓúüüüüüýýþüýüüüýüüýüà_                                                                                                         �âúúúúúúúúúüÿÿÿÿÿÿÿÿýÕ�~‘~~~‘‘~�‘�‘‘‘‘¡¡¡‘¡‘�‘‘‘‘¡¢¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡¡¢¢¢¡¡¢¡¢¡£¢¢¢££¢¡¢¢£¦££¢£¦££ëÿÿÿýÛ££¦©¦£££¦«¦¦®©¦£®¦¦®©©¦¦£¦®¦¦«©©¦¦£©®¦£¦¦¦®¦£¦©©«¦«¦£¦¦¦££¦«£££££¦¦£¢££¢£¦¦££¢¡£¢£¦¢¡¢¡£¢¡££¡¡¡¡¡¡£¡¡¢¡¡¡¡¢¡¡¡¡¢¢¡¡¡‘¡¡‘¡¡‘�‘‘�‘‘‘�‘¡‘‘~��‘‘�‘‘‘‘~~~~}‘ûú€~~~~~~~}}}}}}}}}}}�}}}|}}}}}w}}}vvv}v}}}vv||vvv|||v|ppvvpÊ÷†vžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!! !! !        pÕúüüüüüýþþýüüýüýüüýüà_                                                                                                   �âúúúúúúúüúúÿÿÿÿÿÿÿÿþÕ�‘�~~~‘‘~‘‘~‘�‘‘‘‘‘�¡‘�‘¡‘‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢¡¢£¢££¢¢££¢££¢¢£££¢££¦ëÿÿÿýÛ££¦¦£££¦¦¦«©®¦¦¦®¦¦©®«¦¦©¦®©©©©®©¦©©©«£¦©¦«¦¦£¦©©¦«¦£©©¦££¦¦¦¦¦¦£¦«¦¢£££¦¦¢¢££¢¢¢££¢¢£¡£¢¡¢¢¢¢¡¢¢¡¢¢¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘‘¡¡‘‘‘‘‘¡‘�¡‘��~‘‘~~�‘���‘�~~~¤÷÷~~~~~}~}}}}}}}}}~|}}}}}}}}}}|}}||||v}}}vvvp|vpvw|pv|vpppÊ÷{pÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ! !!!! !!! ! !     oÕûýýýýýüþþýüüüüüýýüüà_                                                                                                           œâúúúúúúúúüúþÿÿÿÿÿÿÿýÕ~¡�~�‘���‘�‘‘�‘‘��‘‘‘‘‘¡¡¡�‘‘‘¡‘‘¡‘¡¡¢‘¢¡‘¡¡¡¡££¢¡¢¢¡¡¡¢£¢¢££¢¢¡¢¢¢£¢¢¢¢¦¦¦¢£££ëÿÿÿýÛ£¦££££¦¦£««¦®¦¦¦©©¦¦®®®®©©¦©©©®««®«®¦£©®®¦¦®©££¦©£«¦£¦®©£££¦¦¦¦¦££¦¦£¦«£££¢¢£¢££¢¢¢¡¢¢£¦¢¡¢¡¢¢¡¢¡¡¡¢£¡¡¡‘¡¡‘¡¡¡¡¡‘¡¡¡¡‘¡‘‘¡¡‘¡‘�¡¡~‘���‘‘‘~��‘��~��‘šûõ~~}~~}~~~~~~~s}}~}}}}}}}}}}|||}}||}}w||||v||vv|vpp||vv|vpvp×÷wpÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!! ! !!!   !! !  pÕûýýýýýüþþýýüüüüýýüüà_                                                                                                                                                 œâúúúüúúúüúüþÿÿÿÿÿÿÿýÕ�¡‘�~‘‘‘�~‘¡��‘‘¡‘�¡¡¡¡¡¡‘�‘‘¡¢‘¡¡�¡¡¡‘¡¡‘¡¢£¡¢¡¡‘¡¡¡¢¡¡¡¡¡¢¢¢¡¡¢££¦££££¢¢££¦¦¦ëÿÿÿýÛ££¦©®©¦¦©«¦¦¦¦©¦¦¦¦¦©££¦£¦¦®¦¦®¦©¦¦¦®®«¦¦£¦«®«¦©©£¦®¦£££¦©©¦¦¦££££¢¢¢££££££££££££££¢¢¢¢¢¢¢£¡¡¡¡¡£¡¡¡£¡¡¡¡¢¡¡¢¡¡¡¡‘‘¡‘‘‘¡‘¡¡‘‘‘‘‘‘�~‘¡‘‘‘‘�~�‘‘‘‘��‘€~šûõ�~~�}}~€}}~~~~}}|}}}~}|}ww||v||}}}}}v|w}}vv}vv|vpv|vvp|v×÷wp×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!  ! ! !!   pÕûýýüüüýþþüüýýýýüüýüà_           !!                                                                                                                               œâúúúúúúüúúüÿÿÿÿÿÿÿÿýÕ~~~‘~�‘~~~�‘�‘�~‘��¡��‘¡¡¡¡¡‘¡‘‘¡¡‘‘¡¢¡¢£¢¢¢¢¡¡¡¡¡¢£¢¢¡¡£¢¢¢¢¢¢¢¢¢££££££££¦££¦«ëÿÿÿýÛ£¦¦£¦¦¦£®¦¦¦£©®®¦¦©®®«©®¦¦©®®©©¦¦¦©¦¦®£©®«®«©©«¦®©¦¦¦¦«©©¦£££¦¦£¦££«¦£££¢¢£«¦£¢££¢££¢¡¡¢¢¡£¢¡¢¢¡¢¢£¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘¡¢‘‘¡¡�‘¡‘‘‘‘‘�~�‘¡‘‘~‘‘‘‘�‘~‘‘�~~�§ýô‘~~}�~~�}~~}}}}}}}~}}}}}}}}}}}}}}}}}}||vv|vv|vvvv|vvwvvvvpvv}vÞ÷wvÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$$ÃþÿÿþÈ!!!!!!!! !      pÕúýýüüüýþþýüýýýýüüýüàx            !zƒ;                                                                                                          9Z9             œâúúúúúúúúúúÿÿÿÿÿÿÿÿþÕ�~~~~�������‘‘‘���‘¡‘‘‘¡¡‘¡¡‘¡�¡¡¡¡¡¡¢¡¢¢¡¡¡¡¡¡¢¡¢¢¡¡¢¡¡¡¢¢£¢¡¢££££¡££££££¢££¦«ëÿÿÿýÛ¦£¦¦¦©¦¦©¦¦©£©©©¦©®¦©«¦°«©®©«©®©©¦¦©«®¦©©¦®«¦«©«©¦¦¦¦©©©£¦££££¦¦¦££«£££££¢¢¦£¢¢££¢££¢¡¢¢¢¡£¡¢£¢¡¡¡¢¡¢¡¡¡¡¡¡¡¥¨¨­¨¥¥¢‘¡¡‘‘‘¡�‘‘¡‘‘�‘‘‘‘‘~‘¡�‘�����~�~~�Òýô�~}~}€~}~}}}|}}}}}}}}|}}}s}}}|}}||}||}|v|vvvv||vwvv||vvp|vßñwvßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! !! !!! ! !     pÓûýýýýýüþþýýüüüüýýýüà_           9–Å;                                                                                                         9_@                œâúúúüüúúüüúÿÿÿÿÿÿÿÿþÕ~�~~���‘‘¡‘�¡‘‘‘‘‘¡¡¡¡¡�‘¡¡�‘¡‘¡¡¡¡¢¢¡¡¡¡‘‘¡¡¡¢¢¢¢¡¡¡£¢¢¢¡¡¢£¢¢£¢££¡££££¢¢¢¢£¢£ëÿÿÿþÛ¦¦¦©©®¦¦¦£¦©¦®¦£©®««¦¦©«¦«©«£¦®®®®¦®®®®®©£©®©£¦¦££«®¦¦«£££££££¦¦¦¢£¦¢¢£¦£¢¢£££¦¦£¢£¢¢¢££¢¡£¡¡¢¢¡¡‘¡¢£¢¡¡¢¡¡¥ëûûûûû÷õä§¡¡¡¡¡¡‘‘¡¡¡‘�‘‘‘¡‘�‘‘���~~}‘‘~~Òþñ}}~}}}~~~~}}}}}}~}}}}}}|}|}}}}}}}}}}}}}vvvwvp|||v|pv|||pppvâèwvâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!! !!!! !! !     pÓûýýýýýüþþýýüüüüýýýüàx               @@                                                                                                       9                  œâúúúüüúúúüúÿÿÿÿÿÿÿÿýÕ�¡‘‘‘~~��‘‘‘~~¡¡~~‘¡‘‘�¡¡‘¡¢¡¡¡¡‘‘¡¡¡‘¡¢¡¡¡¡¡£¢¡¡¡¡¡¢£¡£¢££¢£¦¦£¢££¦£££¢£«¦¦©«ëÿÿÿýÛ££££¦¦®«¦¦¦«£¦¦£¦¦©®£«©¦®®©®®©«©¦®«©©£¦©¦¦®®¦£®®®®®¦£££««¦©¦®«¦£«¦¦£¡££¦¦«£££££¢¢££¢¡¡¡¢¢¢£¢¡¡¡¢¢¡¢¢¡¡¡¡¢¢£äÿÿÿÿÿÿþÿÿû謡¡¡‘�¡¡‘‘‘~‘‘‘‘��~~~‘¡��~~~‘�×þè€~~‘~�~}}}}~}~~}}}}|}}}|}||}|w|||vv|}}}w||||vww|pvvppvppppvââvpçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!!!!    !  pÓúýýýýüýþþýüýýýýüýýüàx                                                                                                                                                             �âúúüüúüúüüúÿÿÿÿÿÿÿÿýÓŽ‘�~�~�‘��‘‘~�¡¡‘‘�‘‘�‘‘¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¢¢¡¡¡£££¢£¢¡£¢¢£¡££¢¡¢¡£££££££¦¢££¦ëÿÿÿýÛ£««£££¦©®®©¦¦¦©©©©«®£®®¦®«©®¦©®®©¦¦®©«®¦«©®«©«®®¦¦«©¦¦¦£¦¦¦¦«««££££££«¦££££¢£¢¢¢££¢£¢£¢¢¢¢£¢¢¢¢£¢¡¢¡¡¡¡¡¢¡­ûÿÿÿÿÿÿúõþÿÿûæ§¡‘‘‘‘¡¡‘�‘��¡‘‘�~~�‘�~~~~~��Ùþè€}~~}~�}~~}}}}}}}|}}}}}||}}}}}}}}||w}w||vv|||||vvvvvv||vppvpâßvpñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9! !!! !!! ! !       vØûýýýýýýþþýüýýýýýýýüàx                                                                                                                                                        �âúúúúúúúüúüÿÿÿÿÿÿÿÿýÕ~~~~�~‘‘��‘‘~‘¡�~‘‘‘¡‘‘‘‘‘‘¡¡¡¡¡¡¢‘¡¡¡¡¡¡¡¡¡¢£‘¡¡£££¢£¢¢£¢¢¢¢¢¢¢¡¢¢¢£££¦£££¢¢¢¦ëÿÿÿýÛ¦®©¦¦¦£¦©©«¦«¦©®®¦«®©©©¦¦¦©®¦¦®®®¦¦®®®¦©®¯«¦««°«£¦¦©©¦«¦£¦¦¦¦¦¦££££«¦¦££££¢££¢££££¢££¢¢££¢¢¢£¢££¢¡¢¢¡¡¢¡¡¥ëÿÿëÔèüÿþíäùþÿÿúॡ¡¡¡‘‘¡‘~�‘‘‘��~~‘�~��~�‘€Ùþà~~}��}~‘}}}~}}}}}}}}}}}}}}|}}w}}|}}||}vvw||||vvvv|vvwvvpppèßvpòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9! !!!!!!!! !       qÕûýýýýýüþþýýüüüýýýýüà_                                                                                                                                                    œâüúúüüúüüúüÿÿÿÿÿÿÿÿþÖ�‘‘�‘‘~~~‘‘¡������‘¡¡¡¡‘�‘¡‘¡¡‘¡¡¡¡¡¡¡‘‘¢¡¢¢¡¡¡¡£¡¢£¡¢¡¢¢¡¢¢¢¢¡¡¢¦£¡£¢¡££££¢££¦ëÿÿÿýÛ««¦®«©¦£¦£¦®®¦¦©®¦©®¦¦«¦¦®®©¦¦®®©®©©®©£®®©¦¦££¦©©©¦¦¦«¦¦«®®¦£££¦¦££¦¦£¢£££££££¦£¢¡¡£¢¡££¢¢¢£¢¡¡¢¡¡¢¢¢¡‘‘¡Ôþÿú¨¢¢¨æûþøØÚõÿÿþùÜ¢�‘‘‘¡‘‘‘¡‘�~‘‘‘�~�~~�‘‘‘àÿà���‘~~}~‘~}}}}}~~~~~~~}}}}~}}}vv|||}}||}}|||}}||vv||pvpppv}vppñÙvv÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!! !!! !! ! !!     pÕúýýýýýýþþýýüüüýýýýüàx                                                                                                                                                         œâüúúúúúúüüüÿÿÿÿÿÿÿÿýÕ‘‘~~‘‘�~~�¡‘‘‘‘¡¡��¡‘�‘‘¡¡¢¡‘¡‘¡¡¡¡¡¡¢‘¢¡�‘¡¡¡¡¡¡¡¢¢¡¢¢¢¢¢£¦¦¢¢£¢¢¦¢¦«££¦¦¦£¦¦«ëÿÿÿýÛ¦£¦©«®¦£««®«¦¦¦¦©®®®¦©®®©©®®©«®¦¦£©©©®©©©¦©¦©©££¦®©£¦©¦««££¦£££££££¦£££££¢££¢¦¦£¦£¢¦¢¢£¡¢£££¡¡££¢¡¢£¢¢££¨ùÿþÚ¡¡¡¢¢¬éýýê­ãûÿÿþèš‘‘‘�~‘‘‘�~��~~���~}�~‘èÿä}}�~}~~}~~~~}}}}}}||}}}}}w|}}}}}|}|vv||pvvp}v|v|vv|||vppppv|ñ×vvúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ!!!!!! ! !! !    pÕûýýýýýýþþýüýýýýýýýüàx                                                                                                                                                             œâüúúüúúúüüüÿÿÿÿÿÿÿÿþÕ ���‘‘��~~�‘‘‘‘¡‘‘‘¡‘‘�‘‘¡¡‘¡¡�¡¡¢¡¡¡¢‘¢¢¡¡¡¢¡¡¢¡¢¡¡¢¢¢¢¢£¢¢££¢£¢££¡££££££¦£¦¦¦ëÿÿÿýÛ£¦¦¦¦¦¦¦¦¦¦¦£©©¦¦«©®®¦¦®®©®®®©®©«¦®¦©®®®©¦©©¦©«©¦©¦¦«¦¦¦££££¦¦¦¦¦£¦£«£££££¦£££¢¦¢¢¢£¢¢£¢¢¢¡£¢¡£¡¡¢¢¢¡¡¢¢æÿÿô¥¡¡¡¡¡¡¤ÔõþõÔ§èþÿÿúؤ¡‘�‘¡~��~‘�‘�¡�~~��€€èÿÙ~~~~��}}~}}}}}}}}}}~}}s}}}}}}|}}}}}||w||wv||v|wvv|v|}vppvvvñÓvwúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÂþÿÿþÆ!!!! !! !! ! !     pÓúýýýýýýþþýüýýýýýýýüà_                                                                                                                                                              �âúúúúúüüüüüÿÿÿÿÿÿÿÿþÔ¡~‘�‘‘�‘�~~‘�‘¡¡¡‘�¡¡‘�‘�‘¡‘‘‘¡¡¡¡‘¡¡¢¡¢¢£¡¡¡¡¡¢£¡¡¡££¡¡££¢¡¢¢¢£¢£¦¢¢¢£¦£££¢¦¦¦ëÿÿÿýÛ£¦¦£¢¦¦«£¦¦¦£¦©®«¦¦®®©©©®®®®®«¦¯©¦®®©©¦®®®®®¦¦®®®¦«©«¦¦£¦¦¦££««¦£¦«££¦££«££¦«£¢££¢¢£££¢££¢¡¢¢¢¢¡¡¢¢¡¢¡¡¬ûÿû­¢¡‘‘¡‘¡¡¡¥àûüÚ¥Ôõþÿþ鬡‘‘‘~�‘�¡�‘�‘���~�¡‘ôÿ×}‘‘~}�~~}}€}}}}}}}}}}}}}}w}}|}}}}|}||||w|||v|}|vv|w|vv|w|vñÊv{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!ÃþÿÿþÆ!!!!!!!! !! !         oÕûýýýýýýþþýýýýýýýýýüà_                                                                                                                                                             �âúúüúúüüúúüÿÿÿÿÿÿÿÿþÕŸ~~�~~�¡¡��¡~~�‘�‘¡¡‘‘‘‘‘‘¡¡¡¡¡¡¡¡¡‘‘¡‘¡¡¢£¢¡¦¢¡¢¡¡‘¡¢¢¡££¡¢£¡¢£¢¦¦£¦¦¢£¡¢£¢¢£¦ëÿÿÿýÛ¦®¦£«©¦¦¦®®®©««®®®®®®®©©¦®©¦®¯°¯®®©®®©£¦¦«©®©£¦¦®®«¦¦®®¦¦®©¦£¦¦£¦«£¢££¢¡£¢¢£¢¢£££££¢¡¢¡£¢¢¢¢¢¡¡¡¢¢¡¡¢¡¦íÿþê¡¡¢¡¡¡‘‘¡‘‘‘¬ôýõÔ¥ÚûÿÿýÚ¤¡‘‘‘~‘¡~~~~~‘¡€‘��õÿÓ~~}}}~}~‘�}~~}}}}}}}}}|v|}||}v|v|}|}}w}||w}}||w|p|vppwvpp}ñžp†üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòáúÿñâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9! ! !!!!! !      oÓûýýýýýýþþýýýýýýýýýüàx                                                                                                                                                     œâüúúüüúúüüüÿÿÿÿÿÿÿÿþÕ��‘‘~~~�~~‘¡�~�‘¡¡‘�‘¡¡¡¡¡¡¡¡¡¢‘¡¡¡¡¡¡¡¡¡‘¡¡‘¢‘¡¢¢¡¢¢¦¢¢£¢¢¢££¦£¢££¢¦£¢££¦«£££«ëÿÿÿýܦ«¦¦£©«¦£¦¦¦©©®¦¦¦©®¦©¦®¦©«®®®®©®®®®®®®®®®®®®©©©®®©«¦¦¦©£©¦¦¦¦¦¦¦£¦¦¦£££©¦££¡¢£¡¢££¢£¢¡£££¦¢¢£¢¢¡¢¡¡¢¡Úþÿõ¥¡¡¡¡¡¡¡¡¡¡¡¡¡¤Úúû楚èþÿþõÒ‘‘‘��‘�~�����}~�šüÿÓ‘~~~~~~~~}}}}~}~}}}}}}|}}}~}}}|}|||v}v||vvvv||vwv|wwppvvvwòœv†üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüâ›uuÌþüÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÂþÿÿþÆ!!! !!!!  ! ! !     pÕúýýýýýýþþýýýýýýýýýüàx                                                                                                                                                                œâüúúüüüüüüüÿÿÿÿÿÿÿÿþÕ�~�‘~�‘‘~~�‘¡‘��¡‘‘�¡‘‘‘¡¡¡‘¡¡¡‘‘¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¡¢¢¡£¢¢¢¢£££¢££¢££££¢¢¦££¦¦££«ëÿÿÿýܦ£¦¦£««¦¦««©¦©®«©¦¦®©«¦®®©«®®®®¦®®®®®®®®®¦®©©«©®®¦©©©£¦«£«©©¦¦¦¦¦£¦¦¦££¦£££££¢¢£¢££¢££¢¢¢££¢¢£¡¢¡¡¢¡¡¥ùÿþÔ¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘§èýõÓ¤Óõÿÿýæš‘�~~�‘‘~~��~€‘ØþÿÒ‘~~‘~~~~}~}}}~}}}�}}}}}}}}}}|}}|}}|w||}||}}v|w|vvvv||vppvvvwòœv˜üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûß”olll{òþßÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$$ÂþÿÿþÆ!!! !!!! !!       pÕûýýýýýýþþýýýýýýýýýüà_                                                                                                                                                          œâúüüüúüüüüüÿÿÿÿÿÿÿÿþÕ�~~�‘���~~�¡¡¡‘�‘¡‘�‘‘�‘¡¡¡‘‘¡‘‘¡¡¢¡¡¡¢¢¢‘£¢¢¡¡¡¢¡¡¡¢£¡¡¡£¢¡££¢¢¢¢¦£¢¢££¦£££¢¢£ëÿÿÿý­£¦©©£¦«©©«®®£¦¦©®«¦©¦©©©©©¯©©©®®®®®¦©©¦®®¦««®®®®¦£££©©®®£¦¦«¦£¦¦£¦¦£¦££¢££££¦£¢£¢£££¢££¢¢£¡££¢¡¢¡¡£££êÿÿé¡‘¢£¢¡¡¡¡¡¢¡‘‘¡‘‘¡¤Ôùý蚤ÙûÿÿúØ‘�~�¡�~�~�‘‘Óûÿÿž�€‘~‘}~~}}~~}}}|}}}}}}}}}}v|}|w|vvv||v}}|v||vvvvppp|vppppwòœv›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü߆uolooolÆþ÷�òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!ÃþÿÿþÆ9!!!!!  !!!  ! !     pÕûýýýýýýþþýýýýýýýýýüà_                                                                                                                              œâúúúüüüüüüüÿÿÿÿÿÿÿÿþÓ�‘�‘‘�‘��¡‘�~~�‘¡‘‘¡¡‘�‘¡¡‘¡¢¡¡¡¡‘¢¢‘‘¡¡‘¡¦¢¡¡¢£¡¡¢¡¡¢¢¢¡¢££¢¡¢¢¢£¢¢£££££¦££¢£¦ëÿÿÿýÜ©¦¦«©¦¦£¦£¦®£©©¦®®©©¦©®®®®¯©¯¯¦©©©¯¦©©¦®®©®®«¦¦¦¦¦©«££©¦¦©¦©¦£¢£¢¢£¦£££££££¢¢££¦¦¢¡¢¦£¡¢¢¦¡¢¢¢¢¡¢¢¡¡­ýÿû§¡¡¡‘‘‘‘‘¡¡‘¡¢¡‘¡¡¡‘¡¥àûùؤ§èþÿþô¨¡‘~~~‘�~‘Ùýÿÿÿš~€}}~~~�~}€‘~}}}}}€~}}}}|}}|}|}}||}|vv}}|||vv|w|pvpv|v|vvò™oœýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü߃oollCllllyçþÉÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÂþÿÿþÆ!!!!!!!!  !   !      oÓûýýýýýýþÿýýýýýýýýýüà_                                                                                                     œâüüúüüúüüüüÿÿÿÿÿÿÿÿþÕ��‘�~�����‘¡‘‘‘‘‘‘‘¡‘‘‘¡¡¡‘¡‘‘¡¡‘‘‘¡¡¡¢¡¡¡¡¡¢¡¡¡¡¡¡¡¢¢££¡£££¡¢¢££¢££¦¦££££¦¢££«ëÿÿÿýÜ«£¦«©¦¦¦¦«¦¦¦®©©®¦«®®©©®®®®«®®©®®®®®®®®®®®®©«¦©©©©©©«¦£¦©¦¦¦£¦£«¦¦¦¦££££¦££¦£££¢¢£¦¢¢£¢¦£¢¡¢¢¡¢¢¢£¡¥õÿþä¡¡¡¡¡¢¢¡¡¢¢¡¡‘¡¡‘¡¡�¡‘‘¬ôüè§’Ó÷ÿÿûà¤��~‘�~Òþÿÿÿÿš}}~~~~~}€}~}}}~}}}~}}}}}|}}}}}}}}}||}}}}|v}vw|pvv|v||vvvpv|†ò˜pÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü߆ololllllllll›úñ”òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÃþÿÿþÆ!!!!!! !! ! ! ! !      pÕûýýýýýýþþüýýýýýýýýüàx                                                                                                         œâüüúüüüüüüüÿÿÿÿÿÿÿÿþÕ���~�~�‘¡‘‘‘‘‘‘‘‘‘¡‘‘¡¡¡‘‘¡�‘¡¡¡¡¡¡‘¡¢‘¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢££¢£¢¡¢¢¢£¦¢¢£¦¦££££££¦¦¦ëÿÿÿýܦ£««¦£¦¦¦««¦¦®«®©«®®©«¦®®®®®®®®®®®®®®¯®®®©©«©¦®«¦¦©©¦¦£¦®¦£¦¦¦¦®«¦¦¦£¦££«¦£¦££¦¢¢££¢¢¢¢££¡¢¢¡£¢¢¡£¡Ôþÿõ¥¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡‘‘‘‘‘¡‘‘‘¤Úø÷Ù¤šæýÿÿõÒ‘~��‘èÿÿÿÿþš€}~��}}�}}}~~}}~~}}}}}}||}}}}}}}|}|vw}}}|v|p|||v||pvwwpv|pv�õ†pÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”olloollllllllluáü�ÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ!!!!!!!!! ! !!         pÕûýýýýýýþþýýýýýýýýýüà_                                                                                                                     œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ�‘‘~�~�¡¡‘�~�¡‘�~‘¡¡‘¡¡¡¡¡��¡¡¡¡¡¡¢¡¡¡‘¢£¡¡¢£¡¢££¢¢££¢¡¢¢¢¢¢£££¢¢¢¢££££¢¢¢¦¦£¦«ëÿÿÿýÛ¦¦£££©®¦©®®¦¦¦¦¦«©©®®®®¯®®©®®®¯©©©¯©«¯®¦¦¦©®©¦®¦¦©®®®¦¦£¦¦¦©¦£¦«£¢££«©¦¢£¢¢££¦£¦£¢¢¡¢£¢£¡¡£¢£¢¡¡¡¡§úÿý¬¢¢¡¡¡¢¢¡‘‘‘‘�‘¢¡¡¡‘¡¡‘�‘¡¡¡§èû駤Óõþÿþæš‘‘¤ûÿÿÿÿý™~}~~}}}~~~}}~~}|}}}}}|}}}}~}}|}}|}}}|}|v}vv|pvv||vvpv|||wvop˜ò�oÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü߆vppllllloollllllC”÷ç†ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! !  !! !!         oÓûýýýýýýþþýýýýýýýýýüà_                                                                                                                 œâüüüüúüüüüüÿÿÿÿÿÿÿÿþÕ�~~~¡¡‘��‘¡‘‘¡��‘‘¡‘¡�‘‘‘¡¢¢¡¡¡¡¢¡¡¡¡¡¢¡¢¡¡¡¡¢££¡¡¡¡¡¡¢¡¢£¡¡¢££¦£££££¢¢¦«©¦£¦ëÿÿÿýÛ¦©«««©¦¦¦¦®©©©®«®¦£¦¦©®®¦©®®®®®®®©®®®®©®®®®«©©®©©¦¦««¦£¦¦¦©¦¦£¦«¦«££¦£¢£¦£¦¦£¢¡¢¢££¢£¢¡¢¢¢¢¡¡¡¡¢£¢æÿÿê¡¡¡¢¡‘¢¡¢¡££¢‘‘‘‘‘‘¡¡¡‘¡¡‘~~~¤Óõ÷Ù¤¤àûÿÿú×�§ýÿÿÿÿú¤‘~~~~‘~~~}~~~~~}}}}~~}}}||||}}s}}}}||}|v}|}}w||}|vp|vpvvvw||˜ñ�vâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”ollloooooClooolollClÌú��üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!! !! ! !! !!     pÕûýýýýýýþþýýýýýýýýýüàx                                                                                                 �âüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ��~~~�‘‘~~��‘‘‘¡‘‘‘‘‘¡¡‘‘¡¡¡¡¡¡‘‘¡¢‘‘¡£¢¡‘¡¢¢¡¡¡¡¢¢¢£¡¡¡¡¢££¢¢¢£¢££¢£££¢¦£¢¦¦£¦ëÿÿÿýÛ¦¦¦¦£«¦¦¦©«©«©®®®®©©¦©®®®®®©®®®®®®®®«¦®®©®®®®®®«¦©®«¦¦©¦¦¦¦¦©«¦££¦¦¦¦££¦¦¦£££££££££££¢¢£££¡¢¢¡¡¢¢­ýÿø¨¡¡¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘‘¡‘�‘¡¡‘�~¡‘¤ÚùíÒ‘­ôþÿþéèÿÿÿÿÿù¤~~~‘~~}}}~}}}}}}}}}~}}||}|}}|}}}|||||||}|||}w|vvvv|||wv|vp|›ñ™wèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüâ˜uooolllolloolllollllolyñç{çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$$ÃþÿÿþÆ9!!!! !!! !  !         pÕûýýýýýýþþýýýýýýýýýüàx                                                                   �âüüúüüüüüüüÿÿÿÿÿÿÿÿþÕ�~~��~~~����‘‘‘¡‘¡‘�¡¡‘‘¡¡‘¢¡¡¡¡¡‘¡¡‘¡¢¡¡¡¡¢£‘¡¡¡¢¢££¡¢¢¢££¢£££¢£££¢££££¦£££¢£¦ëÿÿÿþܦ£¦££«¦£¦©¦£¦®®®®®®«®®¯®®®¯¦®¯¯®®®¯©©¦®®©®©©®®®®«¦©©©¦¦¦®®«¦©«¦£££¦«¦££¦«¦¢¦£¦¦££¢£££¢£££¢¢¢£¡¡¢£õÿþØ¡¡¡¡¡¡¡¢¡¡¡¡¡¡‘¡‘‘¡¡‘‘��‘‘‘¡‘�‘‘‘~§èõ।Ùûÿÿÿÿÿÿÿÿõ��~~~�~~}}~~}}}}}s|}}}|}||}}}}}|w|||}w|}}||}|vp||w}||v|vpvvœñ�{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþç›vppooolllollopllllllllolCÇ÷››üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$$ÃþÿÿþÆ9!!!!! !!! !  !            pÕûýýýýýýþþýýýýýýýýýüàx                                                                              �âüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ��~~�‘�‘¡��‘��‘~~‘‘�‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡‘¡¢¡¡¢¡¢¢¡¡¡¢¢£¢£¦£¢¡¢¢¢¢£¦££¦««¦£££££¦¦ëÿÿÿþÛ¦¦«©¦©¦©©®«¦£¦¦£®¦£©®¯®£¦©®¦®®©¦®®®¦®«®©®®©¦«¦««¦£¦®®©¦££««££££¦¦¢¢£¢£££¦£¢¦£¢££¡¢¢¡¡¢£¢¡¢££¢¢£¢Úþÿë«¢¡¡¡¡¡£¢¡¡‘¡¡‘¡¢¡‘‘�¡¡¡¡¡‘¡¡¡‘�‘‘�‘¤ÓõíÒ‘§ôþÿÿÿÿÿÿõ‘€��}~~~�~�~}}~~~~}}}~}}}}}}}}}}}|||}}w|wvv}}vppv}}vvppvvvvpp�ò˜†þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýñ›vooooloppooooollllllllColCCyèßyâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9 !! ! !! !     !pÓûýýýýýýþþýýýýýýýýýüàx                                                                          œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ���~��‘‘‘�‘¡‘‘��‘�‘‘¡¡¡‘‘‘¡‘¡¡‘¡¡¡¡¡‘¡¡¡‘¢¢¢¡¡¢¡¡¢¢¡¢¢£¢¢¢¢¡¢££££¢¢¢£££££¦¦£¦££ëÿÿÿþÛ£¦®«£¦©¦¦©«©¦«©©®¦©®®®®©®©®¯¯¯¯®«®®©©®®©¦¦¦¦¦¦««©©«¦¦©¦¦«¦££¦££¦££¦¦£££¢£££¦££¦££¢¢£¢¢¢£¢¡¢¢¢¡¢¨ûÿû­¢¡¢¢¢¢¢¡‘¡¡¡¡¡¡‘¡¡¡¡‘‘‘�¡‘�‘��‘¡¡¡¡�~‘¤àõ暤Úüÿÿÿÿÿô�}~~}~}}‘�~~}~}}~~}}}~}}}}|}}ww|||}}}}v|}vwvwwvv}}|vwvvwvvvp|Çú˜Êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñ�vpvoooollolloooopllllloollllolÇò–˜ûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!!!! !      pÓûýýýýýýþþýýýýýýýýýüà_                                                                       œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ¡~~�¡~�‘��‘¡‘‘‘‘‘‘‘‘‘¡¡‘¡¡¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡£¡¡¡¡¢¡¢£¢¢£¢¢¡£¢¢¢¡¢¢£££¢¢¢££££££¦£££ëÿÿÿýÛ«©¦¦¦£¦¦¦¦¦¦¦©©©«©©®®®®®©©®©®®®¯®©®®®®®®©««««®©¦©©«¦¦¦©«¦££¦¦£¦¦¦££¦¦£££¢£¦£££¦£¦££¢¢£¡¢¢¢¢¡¡¡£ëÿÿ䢢¡¢¢‘¢¢¡¡¡¡¡‘¡¡‘¡¡¡¡¡‘‘‘‘‘�¡‘��¡‘‘‘~�‘~‘§éôؤÓûÿÿÿÿô€~~}}�}‘~}}}}~}~}}}}}}}}}}}|}}}|}}}}||w|}}w|||}|w||v|wvvvppÇýœòÿÿÿÿÿÿÿÿÿÿÿÿÿþñÇwooppopplllplloollolllllllllllloyçßyßþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$$ÃþÿÿþÆ9!!!!!!!!!! !!!! !      pÕûýýýýýýþþýýýýýýýýýýàx                                                       œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ‘~�‘¡�~¡�‘�‘‘‘‘¡¡‘‘¡�‘¡¡‘‘¡�¡¢¢‘‘¡‘¡¢¡¢¡¡¡‘¡¡¡¡¡¢¡¢¢£¢¡¢££¢¢¢¢¡¡£££¢¢££££££©£££ëÿÿÿýÜ«¦£¦©¦£¦¦¦©«®«¦®®®®®«¦©®®®¦¦©¦¦®¯¯®®©©®«¦®®®®®©¦¦¦®¦¦¦«®¦£¦©¦¦¦¦©££¦©¦£££¦¦¢££¦£¢¢£¢¢¢¢¡¡¡¢¢¡¡Ôþÿù¥¡¡¡¡¡‘¡¡¡¡¡‘‘‘¢¢¡¡‘‘¡‘¡¡¡¡�‘¡¡‘�‘�~~~‘‘~‘‘¤Øôæ§Óýÿÿÿé‘}}~~‘~~~}}}}}}~}}~}}}}}}}}}}}}}}w}}w|}}w|}}}|v}}|wvvw|wvvvvwvÌþñþÿÿÿÿÿÿÿÿÿÿÿþñÇypoooploppooopoooollllolllllllClCll�ò›”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ!!!! !!!! !! !!!       pÕûýýýýýýþþýýýýýýýýþýàx                              œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ�~��~~�‘�‘‘�~��¡¡¡‘‘‘¡‘‘‘��¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¢£¡¡¡¡¡¢£¦£¢¡£¦£¢££¢£££££££¢£«««ëÿÿÿýÛ¦¦£££©®®®©®®©£¦®¦®©©««¦¦®®®®®®®®©®®©®¦®©®¦©©£¦¦®®¦¦®¦¦¦££©®®©©¦£¦¦«£££££¡¢£¢££¢¡¢¦£££¡£££¢£¢¡¥õÿý­¡¢£¢¡¢¢¡¡¡¡¡¡¡¡¡¡‘¡‘‘‘���¡‘¡‘‘‘‘�‘¡‘‘‘¡‘~�‘~�¤ÚíÙ÷ÿÿÿô‘~��~�}€}}~�~~~}}}}}}}}~}}~}}}||}}}}}w}}wvvwvpppvvv|w||}}vvwßÿÿÿÿÿÿÿÿÿÿÿÿþñÇypvvooppollloooollloloollllloollllClCuáÏuÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ! !!!!!!!!!    !      oÕûýýýýýýþþýýýýýýýýýýàx                                      œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ¡‘~~~~‘‘�~‘‘~‘¡‘‘‘‘�¡¡‘‘¡‘‘‘¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡¢¢¢¡¡£¡¢¢¡¡¡¡¢£¢¡££¦£££¢££££¢¢£¢£££¦ëÿÿÿþÛ£¦¦££¦¦¦©¦«©¦©©®£©®©®®©©©®®®®©¦®©©®¦¦©®®®©®®©®«©®£©®©©©«£«¦££¦¦¦£¦¦¦££¦¦£££¦¦££¦££¢¢££¢¢¢£¢££ãþÿë¡¢¡¡¡¡¡¢¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘‘¡‘‘‘‘‘�‘¡‘‘‘‘‘�€‘�€§æûÿÿÿõ¤�~~€€~}~~}~~}}}}}}}}}|}}}}}}}}}}w|w||||vw|vv|w|}vwvpvvvpwèÿÿÿÿÿÿÿÿÿÿþñÇyopvpoopplpoooooooooollllllllloolllCllll�ñ”ƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!! !!!! !  ! !       pÕûýýýýýýþþýýýýýýýýþýàx                                    œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ����~‘‘�~�‘�~‘¡‘‘��‘¡¡¡‘¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡‘¡£¡¢¢¢¡¡¡¢£¢¡£¢£££££¦¢££¢££££££¦ëÿÿÿþܦ£¦¦¦©££«¦¦£©®®¦©©©¦®«®®¦©«®®®¦®®©¦©«®¦®®©®®®¦¦©©¦®®©©©©«¦¦¦¢¦¦¦¦¦££¦££££¦£«££¦¦£¢¢¢££¡¢¢¢¢£Ûûÿû¨¡¢¡¡¡¢¡¡¢¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡‘¡¡‘‘¡‘‘‘¡‘��‘��‘‘¡��‘~~¡¬õÿÿûš~€�}�~}~}}~}}}~}}}}}}|}}}}}|}}w}}}|}ww|v|wwvvv}||v|vpvvvvwõÿÿÿÿÿÿÿÿþñÇwppoopooppoolpolpppolooooollllollllolClllluáßyÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!! !!!! ! ! ! !            oÕûýýýýýýþþýýýýýýþþýýàx                                           œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕŽ�‘‘�‘~~~���‘�‘‘�¡‘‘¡‘‘¡¡¡¡¡¡‘‘¡¡�¡¢¡¡¢¡¡¡¡‘¡¢¡¢¢¡£££¡¡¡¢¢¢¢¢¢¡£¢££¦££££¦£¦¢££¦ëÿÿÿýÛ£¦©®®©£¦©¦¦©«®©¦®©¦®®«®¦¦©©®¦¦©®®®«£®¯®®¦¦©¦«©¦«®©©¦¦£¦®®¦¦¦£¦«¦«¦££££££¦£¢¦££¢¢¢££¢££¢¦¦£¡£ëÿþÚ¢¡£¢¢¡¡¡¡¢¡¡¡¡¡¡¡‘‘¡¡¡‘¢¡¡‘¡¡‘‘¡¡‘�¡‘��~�‘‘‘~~‘~~~~�š÷ÿÿÙ‘‘‘€~~}~~}}}~}~}}}~}}}}}}w}|v}|vw}}}vwpvv|v||vpp||vwv|˜üÿÿÿÿÿÿýñÇwpppppopopppoolooopopollopoollooolllCloolCCll›ñ›{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÃþÿÿþÆ9! !!!! !!!  !!!        !  oÕûýýýýýýþþýýýþýþýþýýàx                                 œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÓ~‘�~~���~‘‘‘¡¡�‘�‘¡‘‘‘‘¡¡‘‘¡¡¡¡¢¡¡¡¡‘�‘¡¢¡¡¡¡¢¢¡¡¡¡¡£¢¢¢£¢££¢£¢¦¢££¢£¦£¢¢££¢£¦¦ëÿÿÿýÛ¦¦«¦¦¦«¦®®®¦¦©©©®««©©®©«®®¦®®®®®¦©®©®®©«¦¦«®®®¦©©££©©¦¦¦©©¦¦¦¦¦£££¦¦¦«¦£¢¢£¦¦¢¢£¢¡¢£¢¢¢£¢¦¢Üþÿí£¢¢¡££¡¢¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘��¡¡‘¡¡‘�‘��‘‘¡¡‘~~~‘~~€~~ÒýÿýÙ‘~~~~}~�}}}}}}}|}}}}v}}}}}v}}|vw}}}|w}vww}|vvv}vpv†âÿÿÿÿÿýç�wppppvvppvppopvvoppoolloolpolloollllllllllCCllluáßuÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!!!! ! !!            !pÕûýýýýýýþþýýýýýýýýþýà_                            œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÓ~‘‘�~�‘‘‘‘‘‘‘��¡‘‘‘‘‘¡¡‘¡‘¡‘¡¡‘¡¡¡¡¡¡¡¡¡¢¡¡¢¢¢¢¢¢¡¡¡¢¢¢¡£¢¢¢¡¡£££££¢££¢££¦¦£¦¦¦ëÿÿÿþÛ«£¦¦££¦¦«©¦£¦¦««©®®¦®®®®©©©®®®®®«®®¦©®®©©©®¦¦¦¦©¦££¦©£«¦¦©¦¦«££££¦¦££££«£¢¢£¦£¢¦£¢£££££¢¢¢¥øÿý¨¡¡£¡¡¢¢¡¡‘¢¡¡¡¡¡¡¡¡¡¡‘¡¡‘¡¡¡‘¡‘‘¡‘‘‘‘‘�~‘‘‘����‘~��€�€€æÿÿþé§‘~}}~€}~}}}}}}}}}}}}}}}}}}}||}}}ww|wv|w|wwvv|vv}pw™èÿÿÿÿüâœwvvppvvvppopvplpvvooooppllooolollolloolllllllClllC–ñ›yòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!! !!!!  !!                pÕûýýýýýýþÿýýýýýþýýþýà_                 œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ�‘‘~~~‘¡¡‘��‘�‘¡¡‘‘¡‘¡¡‘�‘¡‘¡¢‘¡‘¡¡¡¡¢¡¡¡¡¡¢¢¡¡¢£¡¡¡¢£¢¢¢¢¢¢¡¢££¢¢¢£¦¢¢£¦¦££¦£¦ëÿÿÿþÜ£«¦¦¦£££©¦¦¦¦«¦¦¦®®©®©©®©©¦©®®©®©©®¦¦©®®®®¦¦¦¦¦¦£¦¦¦¦¦©¦£¦¦¦¦¦£££¦¦££¢£¦¦£¢¢££¢£¦£¢¦££¡¡¢¢Úþÿæ¡¡¡¢¡¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¡‘¡¡¡‘‘‘¡¡¡¡¡‘‘¡‘‘���‘~~~‘‘�‘~�‘�‘šûÿÿÿûב~}}}}~€}~}}~}}}}s}}}}}}}}w||}}}v|www||}|v}wp|}˜ßúÿÿÿþñžwvvvvpvvv|vooppoopppoooooooollopplollloollllClollllCtßßyÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!!!!!!!!!! !  !           oÕûýýýýýýþþýýþýþýþþþýæ_                      œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÓ�~~‘‘��‘‘¡‘‘��‘‘‘¡¡¡‘�¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡‘¡¡¢¢¡¡¢¡¡¡¢¡¢¢¡¢¡¢¢£¦£¡¢¢£££¦£¢¢¢£££££££¦ëÿÿÿýÛ¢£££¦«¦£®©®®¦£¦®£¦©¦«¦¦®®®®®«©«¦®®©¦¦®«¦®«¦®«©®¦©®®®©®¦££©£¦««¦«£££££¦¦££¦¦££££££¢¡¢¡¡¢¢£¨ûÿøª¡¢¢¡¡¢¢¡¢¡¢‘¡¡¡¢£¢¡‘¡‘¡‘‘‘‘‘�¡¡‘‘~‘¡¡‘‘‘‘����¡‘‘‘~~‘€‘‘~æÿÿ÷ýþæ‘~}~}}}}}}}~}}}}|}}}}}}}|www|}w}||vvvvw}}wv}wvw˜ßúþÿÿÿü×{vv||vvpppoopppvopppppopvollpoooollllllolllllllllllllll”ñ›yñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!!!!!!!! !! ! ! !     oÕûýýýýýýþþýýþýþýþþþýæx                        œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÓ�~����‘¡�~~�����‘‘‘¡¡¡‘‘�‘‘¡‘‘‘¡‘‘¡¡¡‘¡¡¡¢¡¡¢¢¢¡¡¡¢£¡¡££¢¡¢¢¡£¢¡¢£¢¢¦¦£¦££¢£¦¦«ëÿÿÿýÜ«¦¦¦¦©¦¦¦¦¦¦®¦«®£¦¦¦©©©¦¦«®®©¦®¦©©«©©®«©©®©©®«©¦¦¦¦¦¦«¦£¦®©¦£££«¦¦££££¦££¢£¦££¦£¢££££££¡¡ëÿþÚ¡¢££¡¡¡¢¡¡¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡¡¡‘¡‘‘‘~�‘‘‘‘¡‘‘‘‘�‘‘~‘��‘‘~~~§þÿÓÓùþôš~€}~}}}}~}}}}}}}}}}||}}}}||vw|vv||vvw|vvvw�Þúÿÿÿÿÿ÷Çvv|ppppppvvpovpovvppppolpoooooopollpllollplllollClCllllluÞßu›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÅþÿÿþÆ!! !!!! !! ! ! ! ! !             vØûýýýýýýþþýýýþýþþþþýàx                 œâüüüüüüüüüüÿÿÿÿÿÿÿÿþÕ�~~�~~��~���¡�~‘‘‘‘�‘‘‘¡�‘¡¡¡‘‘¡¡‘¡¡¡¡¢¡¡¡¡¡¡£¡¡¢¡¡¡¡¢¢¢¡¢£¢¡¢¢¢¢££¢¦£¢£££££££¦ëÿÿÿýÛ¦¦«¦£¦¦¦££¦¦¦¦¦®«¦¦©¦©®¦«©¦©©¦©¦©©®¦¦®®¦¦®©««¦©«©«£¦©©¦£¦¦¦¦¢£¦¦£¦¦££££££¢£¦¢£¦¢¢£¦£¢¢£¡­þÿõ¦¢£¢¢¡¢¢¡¢¡¡¡¡¡¡¡¡¡¡¢¡¡‘¡¡¡¡¡‘‘¡‘¡¡‘‘‘¡‘‘‘�‘‘‘~‘‘�‘�~~‘~~~€‘æþ÷š§õþ÷Ó€~�~}}}}}}~}}}}}}}}||}}}}}||}}wvw}}vvvvvwžôþýòüÿÿòœvvvvvpppvvvvpopppopppoopopoopooollllolllllolllollllllClCCC”ñ›uçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ!!!! !! ! ! !!!!! !           !pÕûýýýýýýþþþýýþýþþþþýàx             œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ�~~~~~~~~�‘¡‘��‘�����‘‘‘‘‘‘¡¡‘¡¡¡¡¡‘‘¡¢¡¡¡¡¡‘¢¡¢¡¡¢¡¡¢¡¢¡¢££¡¢¢¦£££££¢¡££££££££ëÿÿÿýÛ£¦«££¦¦¦£¦¦¦¦¦¦¦®®«©©¦©®©®¦£«««©«¦®¦¦®®©©©¦¦¦¦®«¦££¦©©¦£¦£££¦¦¦££¦££«££«£££¦¢£¦¢££¢¢¢¡¢¥õÿý­£¦¢¡¡£¢£¢¡¢¢¡¡¡¡¢¡¡¡¡¡‘¡¡¡‘‘¡¡‘¡¡¡¡¡¡‘‘¡‘��‘‘��¡‘~‘~~~~�‘~�~¤èþôš¤èþýÙ�~~~~}~}}}}}~}}|}~~}}}w}}}}|}}}v||w�ßûþòʘñÿ÷œvppvpvvp|w|vppoppopooplopopppploollllllllllllllllllllllCCCClÞßy›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!! !! ! ! !!   !        pÕûýýýýýýþþýþþþþþþþþýàx              �âüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ��~�~‘‘‘‘�~~~�‘¡¡¡¡‘‘¡¡¡¡‘~¡¡¡¡¢¡‘¡¢¡¡¡¡¡¡¢¡¡¡¡¡¡¢£¡¡¢¡¢¢¡¡£¢¡¢£££¢¡¢£¢¢£££¢££¦ëÿÿÿýÔ¦®£¦«¦££¦¦£©©£©£«¦«©®«£¦¦£¦¦®®®®©®®®©««¦¦¦©®®«®¦££©«¦££££¦©©®¦£££££¢£££¦£¦¦¦££¢¡¢¢¢¦££¦Ýþÿ棢¢¡¡¡£¡¡¢££¡¢¡¡¡¡‘‘¡¡‘‘‘¡¡¡¡¡¡‘‘‘‘‘‘¡‘~~‘‘‘¡¡���}~��‘~~�}~‘~¤ôþ褑Ùûþè™}}~}}}}}}||}~}}}}}}|}w||w}}}}|w|||}�ÒòþúÙ�˜èþ÷œwppv|pppp|ppopovppvvppvooloppoopploppllooololClllllllllllllllƒñ�tâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÈ9!!!!!!!!!!!!!!!             oÓûýýýýýýþþýþþþþþþþþýàx        œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ�~‘~~~‘‘~~‘‘‘~�‘�‘‘‘‘�‘¡¡‘¡¡¡¡¡¡‘‘¡¡¡¡¡¡¡¡¢¡¢¡¡¡¢¢¡¡¡¢¢¢£¢¢£¢¢¢¢£¢£££££¡£¦££££«ëÿÿÿýÛ¦«££¦££¦®¦££¦©¦¦©¦¦©©©¦©®¦¦¦®««®®®¦«®©¦©®««¦£¦¦©¦««®¦£££«®¦£¦££££¦«£¦¦¦¦£££££¢¢¡££¡£¢¡¨øÿûª££¢¡¡¢£¢¡‘¢¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡‘‘¡‘‘‘‘¡‘‘�‘¡¡����‘��‘‘‘�‘‘‘‘�~~�‘‘šõþ虀Ó÷þõÓ€}~}~~~}}}}}}}s|w}|w}|}w|}w|vv|w|žèýûâœwœôþôœvvvvpvvvppppvvvopppvpopvopppoooooppllopoppllllllllllllllllCClllÌáy”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!! !!!!!!! ! !!            pÕûýýýýýýþþþýþþþþþþþýàx       œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ��‘�~���~�¡¡‘���~‘¡‘�‘‘¡¡¡¡‘¡¡‘¡¡¡¡‘¡¡¡¡¡¢¡¡¢‘¡¡£¡¡¢¢¡¡¢¢£££¢¢¢¢¢¢¢£¢¢¢£££¢¦££¦ëÿÿÿýÛ¦£¦££¦¦¦¦¦¦£«¦¦®«¦¦©©¦¦©®©¦¦©©¦®®®£©©¦®¦¦¦¦¦¦©¦®©«¦¦¦¦£££¦¦£¦£££¦¦¦¦££££¦££¢£££¢£¢¡£¢¡æÿþÝ¡¢¢¡¡¡¢£¡¡¡¢¡¡¢¡¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡‘‘‘¡‘‘‘‘‘¡‘‘�‘~���‘‘�‘‘‘‘�~~~~~�™íþôš€šèþýà™€}}~}}}~}}|}}}|w}}}wv}v|w}|}žèüüèžwÊ÷ýâ�w|vvvvvvvvopppvpoovpopopvooppoooooooloooooollllllllllllllllCCClC{ñÇußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ$!!!!! !!!!! ! !  !         pÕûýýýýýýþþýþþþþþþþþýàx           œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ������~�‘‘‘‘‘�‘‘�‘¡€‘¡¡�¡¡¡‘¡¡¡¡¢¡¢‘¡¡¢¡¡¡¡¢¢‘¡¡¢¡¡¢¢¢¢¡¢¢££¡¢¢¢¡¢¢¢¢¢££££¢££££ëÿÿÿýܦ££££«©¦£©©£®¦¦®«¦«®©£¦®¦«©¦¦©®¦©©«®¦¦©¦¦¦¦¦®©¦¦¦¦¦£¦©©¦££¦©¦£¦¦©¦£££¢£££¦£¢¢££¢£¢¢¢¢­ýÿõ¦¡¢£¡¡¡¡¢¢¢¢¢¡¡¡‘¡¡¡¡¡¡‘¡‘‘‘¡¡‘¢¡¡‘‘‘‘‘~‘¡‘¡‘‘‘€~�~~~~~~‘¡�~}~�~}~¤àýõ§€�×ùþõÓ€}}}}}}€}}}}}}}}}}}|}|||}œßûýôÊw˜ßüüÞ}vw}vv|v|vpvpvvppopopoppopoloopoolopoooooopollooploolllllllllllCCllÌñyƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!$ÃþÿÿþÆ!!!!!! !!!! !!           pÕûýýýýýýþþþþþþþþþþþýàx       œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕŽ�‘‘�~~�‘‘~�‘‘¡¡‘�‘�¡‘‘�‘‘‘¡‘¡¡‘‘�¡¡¡‘¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¡¢¢£¡££¢¢¡¢££¢¢£££¦£££¦¦¦£ëÿÿÿýÛ¦¦¦¦¦¦©©¦©¦¦©¦«¦££¦¦¦¦¦®¦©¦®©¦¦££¦¦¦¦£®®®©®®¦£££¦¦¦«¦£¦©¦¦©¦¦££¦¦£¦¦«££¡¢£¦¦¢¢¢¢¢¢¦£«õÿýÛ¢¡¡¡¢¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¢¡‘¡¡‘¡‘‘�¡‘‘‘‘¡‘‘‘‘‘~�‘�‘�~�~‘‘�~~�~~~}~�~‘����ÙüúÙ‘žèüýâž~}}}}}}}}|}}}}}}}w†Çèúýõ×�wÊòý÷ÊwpvvvvppvpppvvvvpvpvppvpppvppppoppllloooppolllllllllllloolCClllCCCll{ñÉtÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$$ÃþÿÿþÆ9!!!!!!!  !! !!           !pÕûýýýýýýþþþþþþþþþþþýàx            œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ~~~~~~�‘��~�‘¡‘‘‘‘‘�¡¡‘‘‘‘¡¡¡‘�‘¡¡¡¡¡¡¡¡¡¢¢¢¢¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¡¢£££££££¢¢££¢¢£¦££ëÿÿÿþܦ£¦£££¦¦£¦¦¦£¦¦£©¦¦£«©¦©©©¦®¦¦«««¦¦¦¦¦©««£®®©¦¦¦£¦£¦©¦£¦¦¦¦¦£¢££¦¦£¢¦££¢£££££££££££¢Ýþÿ룢¢¢¢£¡¡¡¢¡¡¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡‘‘‘��‘‘‘‘�‘‘‘‘‘��‘~�‘‘€¡����€~‘}~€~€Óùý虑Óõþ÷×�}}}}}}}}}|}}w}}}}˜Êñúýõ×�w}žâüýâ™}wvw|vpvvppvvppvvpvpovpppppppoopooppollopololllolollllllllllllllCClCllÌñ{{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!$!ÃþÿÿþÆ9!!!!!!!!!!!! !              !pÕûýýýýýýþÿþþþþþþþþþþæx      œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ�~~~~‘‘���‘~~‘‘��‘‘‘¡¡¡¡¡¡‘¡‘¡¡‘¡¡¡‘¡‘¢¡¡¢¢¢¡¡¡¡¡¢¢¢¡¡¡¢£¢¡¡¡¢££¢£¦£¢¢¢£££¢£££«ëÿÿÿþÜ£¦££¦££££¦¦¦£¦££®««£¦®©¦¦««¦¦¦®®©«¦¦¦¦¦¦¦¦®«¦®«¦¦£¦¦©¦££¦££¦£££££«£¢£££¢££££¦£¢¦£¦£¨øÿû­¢¡£¢¢¢¢¡¡¢¡¡¡£¡¡¡¢¡¡¢¡¡‘‘¡¡¡¡‘¡¡¡‘‘¡‘�‘¡‘¡‘‘‘‘‘‘��‘‘�~�~�‘‘€~��~~�~~�~€šèýõÒ‘€™àûýò×™}}}}}}|}}}œÙòýüèÓ�}w�×úüñÇv|wvwvvpvvpv|vppppvvpovpppppopoppppoopollollolloolllloollllollClCllCCCl{òÌtÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!!!!!! !  !          !pÕûýýýýýýþþþþþþþþþþþýàx       œâüüüüüüüüüüþÿÿÿÿÿÿÿýÕ�‘‘~�‘‘‘�~~~~~�‘�~�~‘¡¡¡¡‘�‘¡¢¡¡‘¡¢¡¡‘¡¡¡¡¡‘‘¡¡¢¢££¢¢¡¡££¢¢¢¢¢¢¡¢££¡¢££££¦££££¦ëÿÿÿýÛ£¦£££££££¦££©©¦¦®«¦£¦¦©££¦¦¦©¦¦¦©®«©¦«¦©«¦¦¦¦«¦£¦¦¦¦¦¦£££¢£¦£¦¦££¦£££¦££¦¦¦£¦££££££êÿþÚ£¢¡¢¡¢¡¡¡¡¡¢¡‘¢‘¡¡¡¡¡£¡¡‘‘¡‘¡¡¡‘‘‘‘¡¡¡¡¡¡¡¡‘‘��‘�‘‘‘‘€~‘��‘}~‘~~‘�‘‘~~}}�Ùûüàš}žèüþ÷àž�€~|v}~�šÒèøýúâÇw}�Êôüõ×�wwv|vpvv|vvpppvvvvvpppppvpvpopopopppvpovpolooloollolllloolollollollllllCCCÌò{y÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ9!! !!!! !!!! ! !             oÕûýþýýýýþþþþþþþþþþþþàx     œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÓ�‘~~�~~~~‘‘‘¡‘�‘‘��~~�‘‘‘‘�¡¡‘¡¡¡‘¢¡¡¡¡¡‘¡¢¡¡¡¢¡¡¡¡¢¡¡¢¢¡¢¢£££¢¢£££¡¢££¢££££¢¢£ëÿÿÿýÛ¦¦¦¦£¦¦£¦©¦¦¦¦¦£¦©©¦¦¦¦¦¦£©¦¦®©©®©«©©®¦¦¦¦¦©©£¦¦¦«¦¦¦¦£¦¦¦¦££¦¦¦£££¦£¦£¢¢££¡¢£¢¡¡¢Ôûÿõ¥¢£££¡¢¡¡¡¡‘¢¢¡¢¡¡¡¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡‘�¡¡‘�‘¡‘‘¡¡¡�‘¡‘‘‘‘¡‘~~~��~~~~~}}}~~‘§èüôÒ‘�ÓôýþýñÙ×ÒÒÒÓàéúýýõÙš}w�Óôý÷ß™wvvvvpvvvvvvvvvpvvvvvpvvpvwvvvppvpoooloolooooollopollllooollllClCllClCCCClll{òÞtÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!!!!!!!!!!!!!!! ! !             pÕûýþýýýýþþþþþþþþþþþþàx    œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÓ~‘�~~‘‘~~‘‘‘‘��‘‘‘‘‘‘‘‘¡¡¡‘¡‘‘¡¡¡‘¡¡¡‘¡¡¡¡¢¡¡¡¢¡‘¡¢£¡¡¡¢¡¢¢¢¢¢¢¢«£¢¢¡¢¢¢£££££££ëÿÿÿýÛ¦¦£¦££«¦£¦¦££¦¦££«©¦¦¦¦®««©¦¦©©¦¦®¦¦¦««¦¦££¦©£««¦£¦¦¦¦¦¦£¦¦¦¦¦¦£££¦¦¢¦¦¦¢£¦¢££££¢£íÿýÛ¡¢££¡¢¢¡¢¢£¢¢¡¢¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡‘�‘‘‘‘‘‘‘���~�‘‘‘�~~~�~~�~�}}}~�}�×÷÷æž}�Óæúýþýýýýþýý÷æÓ™}}˜×òüõßœ}v|w|||vvvvwwpvvwppvpvvovvpppvpopopopoooooooolooooooolloolllllllllCllCCCllCClllÌ÷ƒyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÂþÿÿþÆ!!!!!! !!! !! !  ! !             vÕûýýýýýýþÿþþþþþþþþþþàx    œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ��‘~��‘�~�‘‘�~�‘¡‘‘‘‘¡¡‘‘¡¡¡‘¡‘¡¡¡¡¡¡‘¡¡¡¢¢¡¡¡¢£¡¡¢£¢¡¡¡¡¢¢¢¡¡¢£¦¢¡¢¢¢£¢¡£¢¢¦¦¦ëÿÿÿýÛ£££¦¦£¦¦¦¦££¦©¦££¦«£«¦©®©©¦«¦¦¦£¦®¦¢£¦¦¦¦©£¦©£¦¦££¦¦¦¦¦££¦¦¦£¦¦££¦¦£££¦¦££¢££¢¢¢£Öþÿ뢢£¢¡¡¢¡¢¦£¢¢¢¡¢¡¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡‘¡¡¡‘�‘‘‘‘‘‘~~‘~~�~~‘‘~‘‘‘~~�~~‘~~�~~~}~šàúúàš™ÓÙàèôéàÙž™}}�§ßõûõÙ™}}|v}wv|}vvvwwvpvpvvvvpvopvppoppppopopoopoooppolloooloooloolllllllllllllllllCClCCzòáuÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÃþÿÿþÆ9!!!!!!! !! !            !vÕûþþýýýýþÿþþþþþþþþþþàx   œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÔŸ�~~�~~‘‘‘�‘�~�¡‘�~‘‘‘‘‘‘¡¡‘¡‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¢¡¡¡¡¡¢¢¢¡£¢¢¢¡¢¡¡¡¡¢£££££¢¡¢¢¢¢¦ëÿÿÿýÛ£¦«£¦¢£¦®¦¦¦««¦¦®©¦£¦¦¦©¦¦®®«¦£¦¦¦¦£¦¦¦©®©£«¦££££¦¦¦¦¦¦£¦¦¦¦¢££¦¦££¦£¢£¢¢¢¢£¢¢¡¡¨ùÿû¨¢£££¡¢¡¡¢¢¡¡¡¡£¢¡¡‘¡¡¢¢‘¡¡¡‘¡¡‘‘�‘‘�‘‘¡‘¡‘‘‘~�‘‘�‘�‘�‘‘~~~‘��~‘�}~�‘‘�~~‘€}}}~~‘~~Òéû÷ß™}~€€�€}}w}˜ÊèûüõÙ™w}vvvwwvvpwvvpvvppwvpvppvvpppppoppovpvpvopooloooooooolooollpoollllllllllllllCllllClCÌú”uñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ9!!!!!!!!!!  ! !!! !            !vÕûýýýýýýþÿþþþþþþþþþþàx     œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ‘�~~~~‘¡‘~~~~��¡‘��‘‘‘‘‘‘‘‘�‘¡‘‘‘‘¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¡¢¢¡¡¢¢¡¢¢£¢¢¡¢£¢¡£££¦¢¢£¦£¦«ëÿÿÿýÛ£¢¢£©££¦¦£££¦¦¦£¦¦«£¦©¦«¦¦¦¦¦«¦©«¦«¦¦¦«®«¦£¦¦¦¦¦«££¦¦¦££¦¦¦¦£¦¦¦¦££¦£¦£¡£££££¦££äþþ㣢£¡¡¢¦¢¡¢¢¡¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¡‘¡¡‘¡¡‘¡‘‘‘‘‘¡¡‘‘‘‘¡�‘¡‘‘‘�‘€��~~~~~‘~~~‘~~�}}}~}}~~�ÓôüõÓ�}}}w}}}�Òà÷üúèÒ�}}wvww}wvpvv}vvvwvvvwwwvppvpvvppppvpoooppppoooooopoloollollllllollClolCllllCClCollCCCCxòât›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÈ9!!!!!!!!!!!!! !!!           ! pÕûþþýþýýþþþþþþþþþþþþàx    œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ‘~~~~~‘‘~~~�‘‘�‘‘‘‘‘¡‘¡�‘¡‘¡‘‘�¡¡‘‘¡¡¡‘¡¡¢‘¡¡¢¡¡¡¢¡¢¡¡¢£¢¢¡¡£¢¢¢¢££¡££¢£££¢¦££«ëÿÿÿýÛ££££¦¦£££££££¦¦£¦¦¦£««¦£¦«¦¦¦¦¦¦¦¦¦¦¦«¦¦¦¦£¦¦¦¦¦©££¦¦¦£££¦¦¦££¦¦¦££££££¢¢££¢£¦£¨øÿõ¨¢¢£¡¡¡£¢¢¢¡¡¢¡¢¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡¡‘¡¢‘‘‘‘‘¡¡‘‘‘‘¡��‘�‘¡~‘��~~~~�~~~€~�}~~‘~}~~~}}}~}™Ùúûߘ}}}}™ÙõüýòÙœw||}}wvww|w|w}wvvv}vvwvvvvvvvpppppppvpppoppoooooooooloplloooolllllllllllllllllllColCCCClCËú›tçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÈ9!!!!!!!! !!!! ! ! !           oÕûýýþþýýþÿþþþþþþþþþþàx   œèüüüüýüüüüüÿÿÿÿÿÿÿÿýÕ�~~~~��~��‘‘‘‘�‘~‘‘¡‘�‘‘‘¡‘¡¡‘�¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¡¢¢¡¡¢£¢£¡¡¢¢¢¢¢¡£¢££¢¢££¢£¢¢£ëÿÿÿýÛ¦¦¦£«¦£¢£¦¦¦«£££¦¦¦£¦¦£¢©«£©¦££¦££¦«£¦¦£¦¦£¦©£¦«©£££¦¦¦¦££¦££££££¦£¢¢¢£££££¢¦£¢äÿþݦ¢¢¢¡¡¡¢¡¢¢¡¡¡¢£¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡‘�¡¡¡¡¡�‘‘¡�‘‘‘‘‘‘‘‘‘��‘‘��~���~~~�‘}~~‘��~}€‘}}~~}}}žèüè™}}×÷þúèÊ�}}}}}}}}wpwwpv}}|}|vv}vvwppppvvvvvpvpppppvppppoooooopoooopollopolllolollllllllClllllClCClllC{òñu›ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ9!!!!!!! !! !! ! !  !          oÕûýýþýýýþÿþþþþþþþþþþæ_    œâüüüüüüüýüüÿÿÿÿÿÿÿÿüÓ�~~‘~~~~‘‘¡‘~�‘¡‘‘‘‘�‘¡¡¡�¡¡¡�‘¡¡¡¡¡¡¡¡¡¡¡¡‘¡¡¡¢¡¡¢¡¡¢¢¡¡¡¢¢¡¢¡¡¢£¢¢¢¢¦¢¢£¢¢¢£¦ëÿÿÿýÛ£££¦£¢¢£¦«¦¦¦¢£«©®¦¢¦«¦¢¦«¦¦¦¦¦©¦¦«¦¦¦¦££££¦¦£¦¦££¦¦£¦«¦£££¦£¦¦£¢£«¦¦¦¢£¢¢¢¡¢£­ûÿ뢣¢¡¡¢¢¡¢¡¡¢¢¡¡¡¢¡‘¡¡¡¡¢¡¡‘‘¡¡¡¡¡¡‘¡‘‘‘‘‘‘¡‘‘‘‘¡¡¡‘‘¡¡‘�‘‘‘‘‘�~~~�~�~~‘�~}�~~~}}~}}}}}}}�æý×w}Òüýæœ}w}}}|vvv|wv}}}vvvvvvvpvvvwpvvvvppvvpwppppppopooooooppoooooolllolllopolllllloplllCllClCllllCCClÌüÉtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!!!!!!!!!! !! !         !     !pÕûþþýþýýþþþþþþþþþþþþàx    œâüüüüüüüüüüÿÿÿÿÿÿÿÿýÕ�~~~�‘�~~�‘¡�‘‘‘�‘‘�‘‘�‘��‘¡¡¡¡¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¢¡£¢¡¡¢¢¡£¡¡¡¡¢¢¢£¢¡¢¡¢¢¢¢¢¢£¦¦£ëÿÿÿýÔ¢££¦¦¦££¦¦££¦¦¦«££¦¦¦¦¦¦¦£¦¢¦¦¦¦¦£¦¦¦¦¦¦¦««¦¦£¦££¦¦¦££¦¦¦¦¦£¢¦£¢¢££££££¢£¢¢¢£¢êÿû­¢£¢££¢¢¡¢¡¡££¢¡¡¢¡¡¡¡¡¡¢¡¡‘¡¡¡¡‘¡¡¡‘‘‘¡‘‘‘‘‘¡‘�‘‘‘~�‘‘���~‘‘�‘‘�‘‘‘~~€~‘�~}}~}~}}}}}}}}}}}ž÷èæÿâ�}}~}||}|vvw}ww|vvv}vvp|vpvvvvp|wvw|pppvppppvvvpppppvpooopooooopoloooollloollllooClllCCllCCCCllCCCxòòx”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!=ÃþÿÿþÆ9!!!! !!!! !! !!            !vÕûþþýþýýþþþþþþþþþþþþàx  œèüüýüüüüüüüÿÿÿÿÿÿÿÿýÕ�~~~�‘�~~~�‘‘��‘�‘‘~‘‘�‘��‘‘¡¡¡‘¡¡‘¡¡‘¡¡¡¡‘¡¡¡¡¡¢¡¡¢¡¢¡¡£¡¡¡¡¡¢¢£¢¢£¢¢¡¦£¢¢¢£¦¦ëÿÿÿýÛ£¦££¦¦££¦¦££«¦¦£££¦¦££¦¦¦¦£¦¦¦¦£££¦¦¦££¦«¦¦¦£¦¦££©¦¦¦££¦¦¦££¢£££¢££¢£££¢££¡¡£­ýÿ㣢£¢¢¢¡¢¢£¡¡£¢¡¡¢¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡‘‘¡¡‘‘¡‘‘‘‘�¡¡~‘‘¡‘~�‘�~‘~~‘‘~�‘��‘�}~���~~~~}~}}}~~}}}}}}}�ôéèýÊ}}}~|}}|w}wvwww|vvw}wvvvv||vvvpwvp||pvvvpppvopppopppppopoooppoopoooooollloollllllllllllloCCClClCCCCÉýÉtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÂþÿÿþÆ$!!!!!!!!!!!!! ! !               !vÕûýýþýþýþÿþþþþþþþþþþæx  œèüüüüüüüýüýÿÿÿÿÿÿÿÿýÕ�~��~~~~�~�‘~~���¡‘�‘‘¡¡‘‘¡¡¡¡‘‘¡¢¡¡¡¡¡¡¡¡¡¡¢¢¢¡¡¡¡¢¢¡¡¡¢¡¢¡¡¢££¢¢£¢¢¢¡££¢¢¡¢¦«íÿÿÿýÛ¦¦££££¦££¦£¦¦¦£££¦¦£¦£¦¦¦®©«¦¦¦£££££¦¦¦¦¦££¢£©¦£¢«¦¦¦¦£¢¢£¢££¢£¦£££¢¦¦¦¦£¢£¢«ëÿø¨¦¡¢¡¡¢¢¢¢¡¡¢¡¢¡¡¢¢¡¡¢¡¡‘¡‘‘¡¡¡¡¡‘‘¡¡‘‘¡¡‘‘‘‘‘��‘¡‘¡‘€¡��‘‘��~~~~~~~}�~~~~€~~€~~}}}~}}}~}}�èôéúš}}}}}|w|}}}||w|wv|}}wvwvp|||pvppvppppvvvpvvpoppppooopppooooopoooopollllloollCllllplllllCCClCClCCCCCzò÷z”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÂþÿÿþÆ!!!!!!!!!! ! ! !!  !      !      pÕûýýþýþýþÿþþþþþþþþþþàx   œæüüýüüüýüüýÿÿÿÿÿÿÿÿüÕ‘‘~~~�~�‘�‘‘�¡‘‘��‘�‘¡‘¡¡‘‘‘�‘‘¡¡¡¡‘‘‘‘¡¡¡¡¡‘‘¡¡‘¡¢¢¡¡¡¢£¡¡¢¢¢¢¡¡£¢¢¢¡¢¢¢¢¢¡¢¢¢ëÿÿÿý­¦¦¦££££¦¦¦¦¦£¦£££««¢¦¦£¢¦£¦££¦££¦¦¦¦£¦£«©¦£¦£¦¢£¦¦££¦«¦¦££££££¢£¦¦£¡¢¢¢£¢££¢ÔþþÚ¢¡¡¢¢£¢¡¢¢¡££¡£¢¡¢¡¢¡¢¡¡‘¡¡‘‘¡¡¡¡¡¡¡‘‘‘¡¡¡‘‘¡‘¡‘‘‘�‘��¡�‘��~~~‘‘~��~~~‘~~}��~}}~€~}}}}~}}}}}èõ��ôú™}||}}}}}}w||www||wwvv|}}|vvpvwppvvvppvvpoopvovvpvvvppvolpolloooloooolloopplloollllllllCllCllClCClCCCÉýÎtßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ! !!!! !! !!! !!!               !!vØûþþýþýþþÿþþþþþþþþþþàx  œæüüüüüüýüüýÿÿÿÿÿÿÿÿýÕ‘�~~�~~~‘�‘‘�‘‘‘‘‘�€‘‘�¡‘‘‘¡¡‘�¡‘�¡¡¡¡‘¡¡¡¡¡‘¡¡¢¢¡¡¡¡¡¡¢£¡¢¢¡¢¡¡¡¢¢¢¢¢¢¡££¢£¦££ëÿÿÿýÛ¦¢£¦¢¦££¦¦¦£¢££££¦«£««¦¦¦£££¦¦£¦¦¦¦£¦«¦¦¦«£¦«¦£¦¦££¢¢¦¦£££££¢¦£¢£¦££¦¢¢¢¢¢£¢äþÿõ­£££££¢¡¡¡¡£¢¡¡¡¡¢¡¡‘¡¡¡¢¢¡¡¡‘¡¡¡¡¡¡‘‘‘¡‘‘‘‘‘¡‘¡‘‘¡‘��‘�‘‘����‘��€~~‘‘~€}~~~�~}}~}}}}}}}}}€è÷�™õ÷�}}|}}wv|}wvw}}w}|v|vvpvwwvpvpvvv|ppvvppppppppppopppooopowplpoppoooooooollollllllllollClllCClCClClCCCxóúƒzüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÈ9!!!!!!!! !!! !! ! !!        !   pÓûþþýþýþþÿþþþþþþþþþþàx   œæüüüýýüüüüüþÿÿÿÿÿÿÿýÕ�~�~�~~‘‘��~~�¡‘‘‘‘¡‘�‘�‘‘¡¡‘�‘‘‘‘¢¡¡‘¡¡¡¡¡¡£¡¢¢¡¡¡¡¡¡¢¢¡¡¡¢¢¢¡¡¢£¢¢¢¢¡£¦¢¦£¢£ëÿÿÿýÛ££¢£¢££££¦££¢¢£££¦¦¦¦¦¦¦¦¦¦£¦¦«£¦¦¦£¦¦«££££¦¦¦¦¦££££¢£¦££¢¢££¦£¢¦¢¢££¢££¢¢¢¢­ûÿÿøÝ¦££¢¢¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¢¢¡¡¡¢‘‘¡¡‘¡‘¡‘‘¡¡‘‘‘¡¡‘‘‘‘¡‘‘�‘�€�‘‘‘‘~��~~~~�~~}~}~€}}}}€~~}~}}}}}}‘èù��õõ�|}w}}wvs}}v|wwvw||wvvvv||vvvvwvvvpvvvvpvpwvovppopooooopo|plvooooooploolllollllllllllCllllClllCCCClCllÌþátÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ$!!!!!!!!! ! !!!  !             uÕûýýþýþþþÿþþþþþþþþþþàx œâüüýüýüýýýüÿÿÿÿÿÿÿÿüÕ�}€‘~‘����~~��~€‘‘‘‘‘¡‘¡‘‘‘�‘¡‘¡¢¡‘¡¡¡¡¡¢¢¡¡¡¢‘¡¡¡¢¡¡¢¡¡¢¢¡¡¢¢¢¢¢¢£¢¡¢¢£¦£££¢¢¢ëÿÿÿýÛ££¢¡¢¢¢¢£¢£¦¦££¦¦££¦£¢¢«««¢¢£¦¦¢¦¦£££££££££££¦££¢¦¦¦£¦«£££¦££¦£££¢¢¢£¦££¦££££Ôøÿÿý樣¢¢¡¡¢¢¡¢¢¡¢¡¡¡¡¢¡‘¡¡‘‘¡¡¡¡‘¡¡¡‘‘¡¡‘¡¡‘¡¡‘‘¡‘¡‘‘‘‘‘��~‘�~‘}~�~‘�}}~‘‘�‘€}~}~}}}}}}}}‘é÷��õõ�}}w}}||}|}}}wv||}}vv|wv|vv|wvwppvpvvvvvvvwvpvvvvvooovvplooloolooooolololllllllllllllColCllCClCCCC?CCCyúý–{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ!!$!! !! ! !            |Øüþýþýþþþÿþþþþþþþþþþæx  œèüüüüüýýüüýÿÿÿÿÿÿÿÿüÓ�Ž~‘~~�‘~‘‘~��‘‘‘�‘‘‘‘‘‘��¡‘¡‘~¡‘‘‘¡‘‘¡¡‘‘¡‘¡¡¡¡‘¡¢£¡¢¡¡¡¡¡¡¢¢¡¡££££¢¡¡¢¢£¦¢¢¢£ëÿÿÿýÛ£££¦¦£¦¦¦££¦¦«¦¢¦¦£££¦£¦£¢£¦«¦«££¦££¦«¦««¦££¢££¦¦¦¦¦¦£££¢£¦¢¢¢¢¢¢£¦¢£¢¢¡¢¢¢¡¢¡¬õÿÿþ먡¡¡¢¡¡¡¢£¡¡¡¡¢¡¡¡¡¡¢‘¡¡¡¡¡‘¡‘‘¡¡¡¡‘‘‘‘¡¡‘�‘~�‘‘��‘‘‘‘‘�‘‘���~€‘��~���}}~}€}}}~~}}}}�ôú�™÷é}}|}}}}wwvwvv|}}wv|vvvw|vwvvwpvvvwvpvvvvpppppppvvpvvooooopopooolooplloloolllllllCllCllCCllClCCCCCCCCCÎÿñxÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$=!ÂþÿÿþÆ9!!!!!!!!! !! !!!!!!          pÕûþþýþýþþÿþþþþþþÿþþþàxœæüüüýüýýüüýÿÿÿÿÿÿÿÿýÕ~~�~~~~�~‘‘�‘����‘‘�‘‘‘‘�‘¡‘¡¡‘¡¡¡¡¡‘‘¢¡¡‘¡¡‘‘¡¡¡¡¡¡¡¢¢¡¡¢¢¡¡¡¡£¢¢¢¢¢¡¡¢¢¢¢¢¢¦¦ëÿÿÿýÛ£¢£¦¦££¦¢¢£¦£«¦£¦££«¦££¦¦£¦£££¦¦¦¦££¦«£¦¦¦£££¦¦£¦£££¦¢¦¦££££¢¢£¦££££¦£¡¢££££¡¢£¨ëþÿÿùÝ¢¡¡¢¡¢¡¢¢¡¡¡¢¢¡¡¡¡¡¡¢¢¢¢¡¡‘‘‘¡¡¡‘¡‘‘¡‘‘‘‘‘��¡‘‘‘‘‘‘‘~�‘~‘~�‘~�€~~~�}}}~~~}}}~}}}}}}}}�ô÷�™÷æ}||}}www}}|v|}|vwvw|vv||wvvvvvvp|wvvvpwvpppppvopopoovpoooppooppopoloolllloolllllllllCllllllCClClCCCCCCCzúþÉ{üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÂþÿÿþÆ9!!!!! !!!!!!! !! !  !   !    !vÕûþþýþýþþÿþþþþþþþþþþæxœèüüüüýüüýüýÿÿÿÿÿÿÿÿýÕ�~~~��~~~‘‘‘����‘‘‘��‘‘¡�‘¡‘‘¡¡¡¡‘¢‘¡¢¡¡¢‘¢¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢£¢¡¡¢££¢¡£¢¡¡¢¢¢¢¢¢£«ëÿÿÿýÛ¦¢££¦¢£¦¢¢£££¦££¦££«££¦¦©¦£¢££¦£¦££¦¦¦¢££££££¦££¦££££££¦£¢£££¢£¦££¢¢££¢¢£¦£££££¢¥Úûÿÿýꨢ¢¡¢¢¡¢££¡¡¢¡¡¡¡¡¡¢¢¢¡¡¡‘¡¡¡¡¡‘¡‘‘¡‘�‘‘‘�‘¡‘‘�‘‘‘~~��~�~€‘‘~~€~~€}~}~€}~}}~}}}}�ò÷�œ÷ßw||}}||vw}wvw}}vvvw}vv|}wvvvvvvvwvvvvvvvvvpppppppoooppoolppolooouolloloollllCCoClllllllllCCCltllCCCCCCCCÎÿúƒÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!$!ÃþÿÿþÆ$!!9!! !! !!!!!!               vØüþþþýþýþÿþþþþþþÿþþþæx œèüüüýýüýýüýÿÿÿÿÿÿÿÿüÔ‘~€‘‘‘‘‘�~~‘~~‘¡¡‘‘��‘�¡���‘‘‘‘¡‘‘¡‘¡¢�¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¡¡¡¢¡¡¡¢£¡¡¡£¦¦¢¢¦£¦ëÿÿÿýÛ¦£¦£¢¢¦£¦¦¦¦¢¦«££¢£¦££¦£«¦¦¦£¦£¢£¦¦£¢¢£¦£¢¢£«¦£¢¢££££¢¢£¢¢£«£¢¦£¢¢¢¡¡¢¢¢¡¡¡¡¦¢¡¡¡¢¨ëþÿÿøÝ¢¡¡¢¡‘¡¢¡¡¡¡¡¡¢¡¡¡¡‘‘‘¡‘¡¢‘‘‘‘¡¢¡‘‘‘‘¡‘‘‘‘~‘¡‘�~~~~‘‘~~}~}‘�~~~€~~€‘}|}}}€}}}�õ÷�žúÙ}}}}}ww}}}|wwwwv|}v|wvwv|vpppvvppvpvvpoppopvvvppppopvpolollpoolooopolllolllllpllooolCloolllCCClCClltCCCƒüÿáÅýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!=$ÃþÿÿþÆ9!!!!!!!!! !! ! !!!  ! !     pÕûþþþþþýþÿþþþþþÿþÿþþæxœâüýýýüýýýýüÿÿÿÿÿÿÿÿýÕ‘~~~~~‘‘‘‘�‘‘‘‘‘‘�‘‘‘~‘‘‘‘¡¡‘�‘¡‘‘‘‘¡‘¡¡‘‘¡¡¡¡‘‘¢¡¡¡¡¢¢¡£¢¢¢¢¢¡¢¡¢£¢¢¢¢¢¢¢¢¢¢¢ëÿÿÿýÛ¦££££¢¢££¢££¢¦£¢¢££££¦¦££££¦«¦£££¦¦¢££¦£¦££¦£££££¦£¦¦£¢¢££««£¡¢£¢££¢££¢¢££¢£¢¢£¢¢¡¡¥Ýûÿÿýæ­¢¡¢¢¡¡¡¡¡‘¡¡¡£‘‘¡‘¡¡¡¡¡¡‘‘¡¡‘¡‘��‘¡¡‘‘‘‘~‘‘~�‘‘‘‘�‘~€‘~~‘~~}‘€}}€€~‘€}}€}~}}}}}}™õõžúÙ}}}}|}w|}}wwv}}w|}wvwwvwvvvvvv|pvvvppppvpvpopvpopvpppoppppopvoloplllloolluolloollllllClCCClllllCCClClCCCláÿþßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÃþÿÿþÆ9!!!!!!!!!!!! !! !  !  !      !pÕüþþþþýþþÿþþþþþÿþÿþþàx œâüýýýüýýýýüÿÿÿÿÿÿÿÿüÓ�~~~~€�‘�~~‘‘‘��‘‘�‘‘�‘¡‘‘¢¡‘‘¡‘‘¡‘‘‘‘¡¡¡‘¡¡‘¡¡¡¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡¢¢¢¢¡¢£¢¢¢£¢¢¢£ëÿÿÿýÛ££¢¢£¢££¢¢££££££¢¦¦¢£££¦£££¢¦¦¦£££¦¦¦£££¦££££¦£££¦£££££¢£¦¦£¢¢¢££££¢¦¢££¦¢¢¦¢¢¢¦¢¢¢¢£­ëþÿÿøÔ¢¡¢¡¡¡¡¡‘¤¡¡¡‘¡¡‘¡¡¡¡¡¡¡�‘¡‘‘‘�‘‘‘‘‘‘‘¡�‘‘~~�‘‘‘�€~‘‘~~~‘~~€~~€€}}€}}}}}}}�÷õžú×}w}}w}}|}}}}v|||v|w|wv||vvvwvvvpvvvvpppppvpppopoovppopppovppolloooolollloollllllllllllCCCllllCCCllCC?CCCC”þÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÃþÿÿþÆ9!!!!!!!!! !!!!          !vØüþþþþþþþÿþþÿþþþþÿþþàx œèüüüýüýýýýüÿÿÿÿÿÿÿÿýÕ�~~~��~��~‘~~‘~‘¡‘‘‘‘¡‘‘‘¤¡¡¡¡‘‘¡¡¡�‘‘¡¡‘¡¡‘¡¢¡¢¡¡¡¢¡‘¡¡¡¡¡¢¢¡¢££¢¡¢£¢££¢¢££¦ëÿÿÿýÛ£¢¢¢¢¢££¢¢¢£¦¦¦£¦££££¢£¦¦£¢¢¢¦¦¢¦¦¦¦£¦£¦¦£££¦«£¦¦¦££¢¢££££¢¢£££¦££¢¢¦¢££¦¢¡£££¢¢¡¢£¢¢£¤Úýÿÿý楢¢¢¡¢¡¡£¡‘‘‘¡¡‘¡¡‘¡‘¡‘�‘¡¡¡‘‘‘‘‘‘~��‘‘‘�‘‘~~€‘~~~‘¡€€€‘�}‘~}~}€€}w}}}}}}w}|˜÷õ�žüÓ}}}}ww}w}w|}|vv|}|v|vvw|vwwvvvvvvvvvvvppvvpppoppooppoopvppooooooououooooolllllllololCCCClllllCClCCCCClCCCtñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ=$$ÃþÿÿþÆ9!!!!! !!!!!!!! !!! !       !    vÕûþþþþþþþÿþþþþþþþþþþæxœèýüüýüýüýýüÿÿÿþÿÿÿÿûÓ��‘~�¡‘‘€‘~}���~~�‘‘‘‘�‘‘‘�‘‘‘‘‘�‘‘‘‘‘¡¡¡¡¡¡¡¡¢¡¡¡¡‘¡¢¡¡¢¡¢¢¢¢¡¡¡¡¢£¢¢¢£¦¢¢£¢¡¢ëÿÿÿýÛ£££¢££¦££¦££¦¢¢£¦¦££¢£¢£££¦££££¢¢£££¦£££¢¢£¦¦¦¢¢¢£¦«££¦¦£¢¡¢¦£¦¦¢¢¢¡¦£¢¡¢¢¡¡¢£¢¡¡¡£¡¡¡¡£­íÿÿþùÔ£‘‘¡¡¡¢¡¡‘‘¡¡‘‘‘‘¡¡¡¡¡¡‘¡¡‘‘‘¡¡‘‘‘¡‘‘‘‘��‘~~‘¡‘€‘�~~‘~~�}��~}}}€€}}}}~€€€€€}}šúõ�ÒýÒ}}}}}wv}wvvw}}|w}}vw|vvvvpvvvvppvvvpovpw|ppppppvvvpopopvplupoopppuolllopolltllllllCClolloollllCClCCC?ClCxËúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ!!!!!!!!! !!   !          ! !vØüþþþþþþþÿþþþþþþþþþþæx �âüýýýýýýýýüÿÿÿÿÿÿÿÿüÕ�‘~~~€�~}‘��‘‘�~�‘‘€��‘�‘‘‘¡‘‘‘‘‘‘¡‘¡¡¡¡¡¡¡‘‘¡£¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢£¢¡¢£¡¢¢¢£££ëÿÿÿýÔ¢¢¢£££££¢¦¦££¢£¦£¢£££££¦£¦¦¢¦£¦££¦¦£££¦¢¢¦£££¦££¦¢£££¢£££¢££¦£¢£¦¦£¡¡¢¢¢£££¢¢¡¢¢¡¡£¡¡¢¡¢¢¦Úûÿÿý楢¡¡¡¡¢¡¡¡¡¡¡¡¡‘‘¡‘‘¡‘¡‘‘‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘�‘‘€}‘‘€�~}~‘€}‘~}~~}€}}}}}}}}}}}}™úõ�ÓýÒ}|}}w}}}||www}w|||v|vv}wvvvvvvvvpvvvvpw|opvpvvvuppovpoollovoooluoloollolloollolllCllllClllCClCClCCCCCuÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!9ÃþÿÿþÆ9!!!!!!!!!!!!! ! !       !    !pÕûþþþþþþþÿþþþþþþþþÿþæx  œâüýýüýýýýýýÿÿÿÿÿÿÿÿüÕ��~~~�~~~~�‘‘~~‘¡��~�¡�‘¡�‘‘‘‘¡¡¡‘‘¡¡‘‘‘¡¡¡¡‘¢¡‘¡¡¢¡¡¡¡¡¡¡‘£¢¡¢£¡¡¢¡¡¡¢¢¡¢¢£££ëÿÿÿýÛ£¢¢¢£¢¢£¢¦¦£¢¢££££¦¢¦££¦¦££¢¦¦£¢¦«¦¦£¢£¢£¦¢££¦£££¢££¢£¢££¢££££¢¢¢¦£¢£¢¢¢£¢¢¢¡¢£¢¡¡¢£¢¢¡¢¡¢¢­ôþÿþõÖ¤¡¡¡¢¡¡‘¡¡¡¡¡‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘�~‘‘‘�€‘‘‘�€€‘‘‘~~~‘�€~€~}€}€}}}}}}|}}}}}}™úõ�ÓüÇww}}ww}}}}wvw}}vvvv|}wv}wvvwvvvvvvwvvpvppvpv|pppooppupoopoopolopllllulollllolllllllllllCClCCCCCllC?Cu›ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!!!!!!!! !!! !           !pÓüþþþþþþþÿþþþÿþþþþþþæx     œâýüüýýýýýüýÿÿÿþÿÿÿÿûÕ�~‘�~~~~��~~~~��~~�‘‘‘‘‘‘��¡‘¡¡¡‘¡‘¡¢¡‘¡¡¡‘¡£‘¡¢¡¡¡¡‘¡¡¡¢¢¢¡¢¢¢¢¢¡¡¡¡¡£¢¢¢¡¡¢¢¢ëÿÿÿýÛ¦££¢¦¢¢¢¢¢¢¢£¢¢¢¢¢¢¦£¢££¦¦¦¢¦¦¦£¦£¢¢¢£¦¦¢££¦¦¦£¢¢¦¦¦£¦¦£¢¡¢¦¢¡££¢¡¢¢£¢¡¢££££¡¢£¡¢¡¡¦£¡¡¡¡¡¡¡¥ãüÿÿý樑‘¡¡¡¡¢¢¡¢¡‘�‘¡‘‘‘¡‘‘‘‘‘‘�‘¡¡‘‘~�‘‘~~�‘‘‘‘‘‘€~€‘‘}~~�}€}}~}}}}}}}}œüòÊüžww|}}}ww|}wv|||vvpvv}|w}w|vvvvvvvvvppvppopopvvoopoppppvvoppullooollolpollllltlCollllllllllCClCCCCCt–çüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ!!!!!!!!!!!!  ! !!  ! !     !    !   !pÕûþþþþþþþÿþþþþþþþþÿþæx  œâýüýýüýýýýýÿÿÿÿÿÿÿÿûÕ�}~€�‘~~‘‘�‘‘‘¡‘�‘‘�‘‘¡‘�~‘¡¡¡‘¡‘‘¡¡¡‘‘‘¡‘‘¡�‘‘‘¡¡¡¡¢¡‘¡¡¡¢¡¡¡¢¡¢£¢¢£¢¡¢¡¡£¢¢£ëÿÿÿýÛ¦£¢¢£¡£¦¦££¢£¢£¦¦££¦¡£¦¢¢£¦£££¢¢£¦£££¦¦££¦£¢£¢¡¢£££¢¡¢¢¢¢££¢¢£¦¦¦£¢¢¡¢¡¢¢¢¡¢¡¡¢¡¡£¢¡¡¢¢¡¡¡£¡¡¡¬íÿÿþõ­¡¡¡¡¡‘¡‘‘‘¡‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘�‘‘‘‘‘�‘‘‘‘~~~}~~}}}}}}}~}}€~€€}~}}}œûô�Óüž}}wvw}|}}}}ww}wwwwvw}wvwvwvv}wvvvvpvvvpvvvvvppppwppoppoolooouopvoloolllloooopllllCllClllllCltlCCt”áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ9! !!! ! !!!! !!! !     ! !         pØüþþþþþþþÿþþþþþþþþÿþæ_  œèüýýýýýýýýýÿÿÿþÿÿÿÿüÕ�}~‘��‘‘~‘‘~~���‘‘‘‘¡‘‘‘‘¡¡‘‘‘‘�‘¡¢�‘¡¡¡¡¡‘¡¡‘¡¢¢¡¡¡¡¢¢¡¡¢¡¡¡¡¢¢¡¢¢¢¡¢£¢£¢¢¦ëÿÿÿý­¢¢¢¢¢££¦¢¢£££££¢¦££¦¡£¦¢¦¦¦£££¢££¦£¢¢£¦££¦¦¢¢£¢££££¢¢¢£¦£¢£££££¢£¢¢¢¢¢£¢¡££¡¢¢££¢¡¦¡¡¡¢¢¡¡£¢¡¡¢¥äûÿÿûॡ¡¡¡¡‘¡‘‘‘¡¡¡¡¡‘‘‘‘‘�‘‘‘¡‘‘‘‘‘�€�‘‘~~€~~��€}~€€~~}~~}}}}}}}}}}žüô�×úœ|}}}w}}}ww}}}}wwwvwwwwvwvvvvvvvvvvpvvpvppovvvppppopppoppououoloploolootollolllllllollClCClClllCƒßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$$ÂþÿÿþÆ9! !!!!!! !!!! !! !       !    ! !vØûþþþþþþþÿþþþþþþÿþÿþæx  œèüüýýýýýýýýÿÿÿþÿÿÿÿüÕ�~}~~~}~�‘��~�‘~~~‘¡¡‘‘¡¡‘‘‘‘¡‘‘‘‘‘¡‘‘¡¡¢¡¡‘‘¢¡‘¢¢¢¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¡¢¡¢£¢££¡¢èÿÿÿý­¢¡££¢££££¡£¦£¦£¢££¢¢£¢££¦£££¦¦¢££££¢¢¢£££¦£¢¢¢££££¢¢£¢¢£¦££¢¦¢¢£¢¡¡¡¢¡¢¢¢¢¢¡£££¢£¢¢¢¢¢¡¢¡¡¦¢¡¡¢¢¢§ôþÿþõ­¡¡¡¡¡¡‘¡¡¡¡¡¡¡‘‘‘‘‘�‘‘‘‘‘‘€¡‘€€€‘‘‘€~€�‘�}€~€€~}€€}~€€}}}}}}}}}}}}žüèÙ÷™|}}}}w}}wv|}ww||vww}wwvv|vpvvvvpvvvvvvvvpovvvvoopouplppopppplolooooooolollllllllllClllCCllCClƒÏúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$!ÃþÿÿþÆ9!!!!!!!! !!!! ! !! !           !vÖûþþþþþþþÿþþþþþþÿÿþþæx  œèýýýýýýýýýýÿÿÿþÿÿÿÿüÕ�~~~��~~‘�‘‘~~�~‘��¡¡‘~�‘¡¡‘‘¡‘¡¡¡¡‘¡¢¡‘¡‘¡¡‘¡¡‘‘¡‘‘¢¢¡¡¡¡¡¡¡¡¢£¢¢¢¡¢£¢£¢¡¡¡¢£ëÿÿÿýÔ¢¢¢£¢¡¡¢¢¢¢¦££¦£¦¦¢¡££¢£¢£¡£¢£¢£¦¦¦¦¦¦¢¡¢££££¦¦£¡£¦£¢¢£¢¢¢¡¡£¢¢¦£¡¢££¢£¢¢¡¡¢¢¢£¡¡¡¡¡¢¢¢¢¡‘¡¡¡‘¡¢¡¡¨ãûÿÿûÙ¤¡¡‘‘‘‘‘‘‘¡‘�‘¡‘‘¡‘¡‘‘�‘‘€‘~€¡‘€‘‘�}�‘���‘�‘€€}}}}€€€}}}}~~€}}}}}}}}}žýè�Ù÷™}}}}}wv}}}w|wvvv|wwwvpvwvvpwwvvpvvvopwvvpoppovvvvppolpoolopololloolllllllloullllllllllCllCC{ÎúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$$9ÃþÿÿþÈ9!!!!!! !!!!!!!!  ! !!! !              vØüþþþþþþþÿþþþþÿþþþÿþæx    œèýýýýýýýýýýÿÿÿþÿÿÿÿüÕ‘�}�‘‘~~¡�~~~‘��‘~���~‘‘‘�~~¡‘��‘‘‘‘‘‘¡¡‘¡¡‘¡¡¡‘¡¡‘¡¡¡¡¡¡¡£¢¢¡¢¢¡¢¡¢¢¡¢££¡£¦£ëÿÿÿý­¢¦¡¡¦£££££££¢¢¢¢¦¦¦££¢£«££¢¦¢¡£¦¢¢¢¢£¦££££¦¢¡¢£¢¢£££¢£££¢¢££¢¢£¢¢¢¢¢££¡¢£££¢‘¡¢¢¢¢¡¡¡¢¡¡¡¡¡¡¡‘¢¢¡¡¡¡§ëþÿþô¬‘�¡¡¤¡‘¡¤¡¤¡‘‘€�‘‘�‘‘~~€‘�‘‘‘�€€~�~��‘‘€~~€�~}}}}}}}}}w}~}}}žþè�Ùõ™}wwwwv}}}}}v}}wwv|wwvwvwvvvvvvvvvvvppwpvvvvvvvopvppppvvulolooloullltloooollololollClolClu{Ì÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$!!ÃþÿÿþÆ99!!!!! !! !!! !!       !    vØüþþþþþþþÿþþþÿþþÿÿþþæx   œèüýýýýýýýýýÿÿÿÿÿÿÿÿüÕ¡~~~�€��~€�‘‘��‘���~��‘‘‘‘‘�‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘¡¡¡¡¡‘¢¢‘¡¢¡¡¡¡¡£¡¡¡¢¢¡¢¡¡¢¡¢¢¢¡££¢íÿÿÿý­¢££££¢¢¢££¢£¦¢¢¢¢¢£¦¡££¢££¢£££¢¦¢¢¢¡£¦¦¢££¢¢¢£¢££¡¦£¢£¢£¢¢£¢¢£££¢¢¢¦¢¢¢¡££¢¡¡¡¡£¢¡¡¡¢¡‘¡¡¡¢¡¡‘¢¡¡‘¡‘‘¥ØúÿÿûÚ¤‘¡¡¡‘¡¡‘¡‘‘‘‘‘¡‘‘‘�€‘‘‘‘‘€~~~€€�‘~~€�~�}€~€€}}}}}}}}}}}}}Òþâàõ˜ww}}}ww}vw}w}wwwwwvvvwvwvvwvvvvvvvovvvvvpppppwopppoppoopoooupoooolloooollllllllllllolllyÌ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!!!!! !! ! !!! !             !qÕûþþþþþþþÿþþþÿþþÿÿþþàxœèüýýýýýýýýýÿÿÿÿÿÿÿÿüÕ�~~~~~~�~~‘‘‘����‘‘‘~~‘¡¡‘�¡¡‘‘¡¡¡‘‘¡¡‘¡¡‘‘¡¡£¢¡‘¡¡¡¡¡¢¢¡¢¡‘¡¡¡¡¢¡¡¡¡¡¢¢¢¡¡¡£££ëÿÿÿýÛ¢££¢¢¢¡¡£¦¢£¢£¢¡¡¢¦¦¡££¢¢¢¢¢££¢£¢¢¢¡¢£¦¢£¢¢¢£¦¡££¡¢¢£££¢¡¡¢¡¢¢£¦£¢¢¦¦¢£¡¡¡¢¢¢¢¡£¡¡£¡¢¡¡¡‘¡¢£¢‘¡¡¡‘¡¡¡‘¡§èþÿþô§‘‘¡‘‘‘�‘‘‘¡‘‘‘‘‘‘�€€‘‘‘‘€€‘��‘€‘‘€€‘�}}}}}}€‘€}�}}}}}}}}}}žþæ�àô�}www}ww}w}w}wvwvwwwwvvvwwvwvvvwwvpovvvppppoovpoopppopoopooovoolooopoolllllolllllllCllyÉóþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!!!!!!! ! ! ! !             pØûþþþþþþþÿþþþÿþþÿÿþþàx œèýýýýýýýýýýÿÿÿþÿÿÿÿüÕ��‘�~~~~�‘‘�‘~~‘‘~‘‘‘�~�‘�‘¡¡‘¡‘¡¡‘‘¢¢¢‘‘¡¡‘‘‘¡¡¡¢¡‘¡‘¡¢¡¢¡¡¢¡¢£¡¡¡¢¡¢¢¡¡¢£¥ëÿÿÿý­¢¢¢¢¢£¢¢¢¢¢¡¡¡¢£¢¢¢¢£¦£¡¢¢££¢¢¡£¦«¦££¢£¦¡¡¡¢¢¢¡¡¦¦£¡¡¡££¢¦£££¡££¡£¢¡¡¡¡¢¢¢¢¢££¡¢¡¡¢¡¡¡¡¡¢¡‘¡¢¡¢¢¡¡¢¢¢‘¡¢¤Ó÷ÿÿûؤ¡‘‘¡�‘¡‘‘‘‘€€€‘¡‘‘‘�‘‘‘�€€€~€‘‘€}‘‘~}}}€€}€�}€}}w}}}}Òþâ�æñ�}}}}}}w}}}}wwwwwwvvvvw}wvvwvvvvvvvvvpoppwvlppuppplovppvolluvlloulppoollluupolloouoluÇñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!!!!!!!!!!!!!! !   !    !   !      !vØüþþþþþþþÿþþÿÿþþÿÿþþæx  �èüýýýýýýýýýÿÿþÿÿÿÿÿüÕ�}~~�~~~~~~���¡�~~�‘‘�‘��‘‘‘�¡‘�‘�‘‘‘‘‘‘¡‘‘¡‘¡¡¡£¡‘¡‘¡¡¡¡¡‘¢¢¡¢¡¢¢¢£¢¢¡¡¡¡¤¡¡¢ëÿÿÿýÔ£¢¢¢¡¢££¢¢£¦¦¢££¡£££¦¢££¦¦¢¦£££££¦¢¢££¢££¦££££¢£££¢¢¢¢££¢££¢¢¢¢¢¡££¡¡¡¢£¡¡¡¡¢¡¡¢¢¡¡¢¡¢¡¡¡¡¡¢¡¡¡‘‘‘¡¡¡‘¡¡¡¡§èþÿþô§‘‘¡‘‘‘‘¡¡‘‘‘‘¡‘‘�‘€€€‘‘~€€€~€�~}�‘}}~‘~}}}}~€}}}w}}}Óþà�èñ�v}}}v|vwwwwwvvvw}wvv|v|vvvvvvvvvvvvvvppppvopvvvppopvopoooouulopvooolloooooolotlClu›ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ9!=ÃþÿÿþÆ9!!!!!!!!!!!! !! !!!!!!   !     pÕüþþþþþþþÿÿÿþþÿÿþþÿþæx  œèýýýýýýýýýþÿÿÿÿÿþÿÿúÕ~}}~~~~~‘�~�‘‘�~~¡‘‘‘‘�‘¡¡‘�¡‘‘‘�‘‘‘‘‘‘‘¡‘�¡¡¡¢¡¡¡‘¡¢¢¡¡¡¡¡¡¢¡¡£¢¢¢¢¡¡¡¢¡¡¡¡¢íÿÿÿýÔ¢¢¢¢¢¡¢££¡££¦¢¢¢¡£¦£¢¢¢£££¢¦££¦£££¢££££¢¢¦¦£££¢££¢¢¢¢¢££¡£¢£¢¢¢¢¡¡¢¢¡¢¢¢¡¡¢¢¡¡¢¢¡¡¡¢¢¢¡¡¡¡£¡¡¡¡¡‘‘¡‘‘‘¡¡¡‘¡¤ØûÿÿøÓ¡‘‘‘‘¡‘‘‘‘‘‘‘�‘‘€‘‘~~~�€‘‘�€}€~�€€}€�€}‘€}}}}}~}}}}}}}}Òþà�èèw}}}www}wwww}vv}vw}wvvvpwwpv|vvvvvvppvpppvpvvpvpopppovooopoooppuoooluolpolllollo–áþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!$ÃþÿÿþÆ9!!!!!!!!!!!! ! ! !! !     !   pÕüþþþþþþÿÿþþÿÿþþÿÿþþàx œèýýýýýýýýýþÿÿþþÿþÿÿûÕ~}~‘�~~~~~~~~‘‘‘¡‘‘�‘‘‘‘¡‘¡‘‘‘¡‘�~¡¢¡‘‘¡‘‘¡‘¡¡¡¡¡¡‘‘¡‘¡¡¡¡¡¡¡¢¡‘¡¡¡¡¡¡¢¢££¡££¢èÿÿÿýÛ¢¡¡¡¢¢¢¢¢¡¡¡£££¦£¢¡¢¡¡¢£¢¡¡¢¡¡¦¦¦£¢¢¢¡¡¢£¦¦¢¢££¢¢¢£¦£¢¢¢¡¢¢¢¡£¦£¡¡¥¦¡¡¢¢¢££¦¢¢¢£¢¢¢¡¢£¡¡¡£¢‘‘‘¢¢‘‘¡¡‘¡‘‘‘‘¡‘¡§ôþÿýÚ¤‘‘‘‘€‘‘‘‘‘‘‘‘‘‘€�‘‘€‘�‘~€€�‘~}}~�€€‘~}~}~}}~}}}}}}€}}wÒþß�èè�}w}vw}}wvwvw|vw}pv}}|vvvwvvvpopvwvpvvvpvvvpppopopvplopopvollopolloolpooololCloƒáüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!$ÃþÿÿþÆ9!!! !! !!!!! !!! !    !  !  !!! ! ! !|Øüþþþþþþÿÿþÿþþÿÿþþÿþæx  œèýýýýýýþþýýÿÿÿþÿÿþÿüÕŸ~~~‘�~~�~~~���~}~~‘‘‘~€�~‘¡¡�‘‘‘‘¡‘¡¡¡‘‘¡‘‘¡‘‘¡‘¡¡¡£¡¡¡¡¡¢¡¡¢¡‘‘¡¢¢¡¢¢¡¡¡¡¢¡¡ëÿÿÿý­£££¢¦¦£¢¡¢¢¦£¡¢££¢¢¦¦£¢¢££¢£¢££¡¡¡£¦£¢¢£¢¡¢¦¢¡¢££¢¢¢¢¢¢£¢£££¢¢¢£££¢¢¢£¢‘¡¡¡¡¡¡¡¢¢¡¡‘¡¡¡¢¢¡‘¡¢¢£¡¡¢¢¡¡¡¡¡‘‘‘‘‘‘¥äýÿþô§‘‘¡‘‘�‘¡‘€€�‘¡‘‘‘‘€‘€~€€‘�‘‘€}}�}}}}}}}}}}}}}wÊþÙ�ôè}w}}}}vww}wwvwvwwwwvvvvvv}wvvpvpvvvvvvpppvoovppvvvoopvvpopppllupullCoolollloƒÞüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!$ÃþÿÿþÆ9!!!!!!!!! !!! !! !   !    !vÕýþþþþþþþÿþþÿÿþþÿÿÿÿæx  œèýýýýýýýþýýÿÿþÿÿÿÿÿûÔ‘�~~}‘�~‘‘�‘�~~€~~~‘‘��‘��‘‘‘�‘��‘‘‘¡�¡‘�¢¡‘¡¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¢¡¡¡¡¡¢¡¢¢¡¡¡¡¢¢¢¢ëÿÿÿý­£¢¢¢£¢¢¡¡¢¢¢£¢¢¢¢¢¢£¢£¢¢£££¢¢¢££¢£¦££££¢¢¢£¢¢¢£££¢£¢¢£££¢¢¢¢£¢¡¢¢¡¡¢¢¢¢¡¢¢¢¡¡¡¡¡¢£‘¡¡¡¢¡¡¡¡¤¡¢‘‘¡¢¡¡¡‘¤¡‘¡‘‘‘‘‘¡Øûÿÿù§‘‘¡‘~‘‘‘‘€‘�‘�‘€��‘��€€‘~€~€�€}}€}}}}}}}}}}}}}}}ÊþÙ�ôè}ww}w}wv|w}wv|wvwwwvvvvvvwvvvv|pvvvppvvvvvpvvpoppvopppoooooplouullooolloltyÌúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!$ÃþÿÿþÆ9!!!!!!!!!!!!!!!!! !   !   !   !pÖüþþþþþþþÿþþÿÿþþÿÿÿÿæx  œèýýýýýýýþýþÿÿÿÿÿþÿÿûÕ�€�€}~€~‘‘‘€~‘�~‘�~€€~‘��‘‘�~‘‘‘~‘‘‘‘�‘‘‘¡¡¡‘¢¡¡¡‘‘¡¡¢¢¡‘‘¡¢¢¡¡¡¡¡¡¡¢¢¡¡¡¢¡¡¢¦íÿÿÿý­¢£¢¢¢¡¡¡¢¢¢¡¡£¢¢¢¢¢¢¢¢£¡¢£¦£¢¡¢¦£¦££££¢¡£££¢£¢¢¢¢¢££¢¢¢¢£¢¢¢£¢¡¡¢¢¢¡¢¢¢£¢££¡¡¡¢¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡‘¡¡¡‘¡‘‘‘¡¡‘‘‘‘‘‘‘¢æÿÿþÚ‘‘¡‘‘‘¡‘€‘‘€‘�‘���€‘€‘�€~€}€€€}€€~}}}€}}}€}}}}€}}}}Óþ×�òè}wwww}}}vww|wwvvvvvvvwwvvpvvvvwvwwpppvovvpvvvoppovpppooluoooluuuloppolloyÉòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!!!99! !!!!!!!! !!!     ! !     pØüþþþþþþÿÿþÿþþÿÿþÿÿÿæx   œæýýýþþýýþýþÿÿÿþþÿþÿüÓŽ}~��}~}€‘¡‘~‘‘‘�~~�‘€~‘‘�‘¡‘¡¡‘‘¡¡�¡¤‘‘¡¢‘‘¡‘¡¡‘‘¡¢¡¡¡¡¢¢¡¡¡¡¡¡¢¡¡¡¡¡¢¢££¡¢èÿÿÿýܦ£££¢¡¡£¦£¦¢¢¦¦¢¡¢£¢¦£¢¢¢¡¡¡¢¢¢¦£¢¡¢¢¡¡¢¡¡££¢¡¡¢¢¡¢¢¢¢¢¢¢¡¡¡¡¡¡¢¢££¡¡¡¢£¢¡¡¡¢¢£¡¡‘¡¢¡‘¢¢¡¡‘¡£¡‘‘‘¡¡¡¡¡‘¡¡¡‘‘‘‘‘¤Óúÿþ椡€�‘‘‘�€‘‘€‘‘‘‘‘‘€~‘�‘��‘€�}€€~}}€�~€€ww}}}}w}w}Óþ×�õæww}w}}w}}w}}}wvw}vvvvvpvwvwwvvvvvwwvwvoovvvvopvvppppovvoovvooopoooullouyÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$=$ÃþÿÿþÆ9!!! !!!!!! ! !      !  !     ! !! pÓüþþþþþþÿÿþÿþþÿÿÿÿþþàx œèýþýýýýýýýþÿÿÿþÿÿÿþüÓ�~~~~‘�~~~~~‘~�‘‘‘‘‘‘€‘‘��‘‘¡‘‘‘‘‘‘‘‘¡‘�‘¡‘‘¡¡¡¡¡‘¡¡¡¡¡¡¡¡‘¡¡¡¡¡¡¢¢¡‘¢¢¡¡¡¡¡¢ëÿÿÿý­¢¡¢£¢¡¢¡£¢¢£¢¢¢¡¢££¡¢¢¢£¢¢££££££££¡£¦£££¡¡£¢¡¢¢££¢¢£¢¡¢¢¢¡¡¢¢¡¢¢¢¢¡¡¡¡¡¡¡¡¡¢¡¡¡¡£¢¡¢¢¢¡¡¡¡¡¡‘¡¡‘¡¡¡¡¡¡¡‘‘¡¡‘‘¤Óõÿÿúؤ¡‘�‘‘‘‘‘‘‘�‘‘‘�€~€€~~�€€~€�€‘~€}}€€}~€€}}€}}€€}}}}}}}}Óþ×�úè}}ww}}wvv|wwvvv}vwv|vvpwvvvvwwppvvppvvvvvvpuopovpoloovolpopvoouuolooy�çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ9!!!!!!!!!!!!!!!!!! ! !     ! !  !pÕýþþþþþþþÿþþÿÿþÿÿÿÿÿæx  œèýýýþýýýýþþÿÿÿþÿÿÿÿüÕ�~~~}€‘~€€}€��~‘�~��‘¡‘¡�‘‘�‘‘‘�‘‘‘‘¡¡‘¡‘‘‘‘‘¡¡¡¡¡‘¢¡‘¡¡¡¡‘¡¡‘¡¢¢¡¢¢¡¡¡¡¡¡¡¡¥éÿÿÿý­¡¢¡¢¢£¢¡¢¢¢¢¡¢¢££¢¢££¢¢¦¢¢¢£¢¢£¢¢¢¢£££¢¢¢¢£¢¡£¢¢¢£¡¢£¡££¢¡¡¢¢£¢¡¢¢¡¡£¡¡¡£¢¡¡¡¡¡¡¢¢¤¡¡¢‘¢¡¡¡¡¡‘¡¡¡‘¡¡¡¡‘‘‘‘‘¤¬ôþÿþè§¡‘‘‘‘¡‘‘‘€‘‘‘€�‘€€€�~~‘‘€‘~~‘€}€€}}}}}€}}}}}}}ÓýÊ�úèw}www}}|wwwwvvw}vwwwvvvvwvvvvwvvvvvvvpvppvopppopppppuupooupplloplou”çýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ!!9!!!!!!!! !!!! ! !  !     !  !vØüþþþþþþþÿþþÿÿþÿÿÿÿÿæx œâýýýþýþýþþþÿÿÿþþÿÿÿüÕŽ�~~~}��}~~‘~~�~~~�~‘‘~‘‘�‘��‘‘�‘¡‘‘‘‘���‘‘‘¡‘‘‘‘¡¡‘‘¡¡¡‘¡¢¡¢¢¢¢¢¡¡‘¡¡¢¢¢¢¡èÿÿÿý­¢¡¡¡¢¢¢¢¡¢¢££¢£££¢¢£¢¡£££¢¢£¢¡£¢£¢¡¢£¢¢¢¢£¢¡¢¢¢¢¢¢¡¡¡¢£¢¢¢¡¡££¢£££¢¡£¢¡¡¦¥¡¡¡¡¢¢¡¡¡¡¡¡‘¢¡¤¢¢¢¡¡¢¤‘¡‘‘‘‘‘¡¡§èýÿþõÔ¡‘‘‘�‘‘¡‘‘‘�‘‘‘���‘‘€€‘‘€€€€€€}}}€€€€€}}€}€}}}}}w}}}}€}}}×ýÊ�úæ}w}}ww}}w}wwwwvwwvw}wvvvwwvvvvpvwvppvvpppooppvppopvpopppppvulllopouÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!99ÃþÿÿþÆ9!$!!!! !!! !! !   !  ! ! !   ! !qØýþþþþþþÿÿÿÿþÿÿÿþÿÿÿæx=BA   œèýýýþýþþþþþÿÿþÿÿþþÿüÕŽ~~~~~‘‘�~~�‘�‘��‘�‘‘~�¡‘‘‘‘‘�~‘¡‘�‘¡¡‘¡‘‘‘‘¡‘‘¡‘‘¡¡¡¡¡‘¡¡¡¡£¡¡¡‘‘‘‘¡¢¡££¡¡¢¡¥ëÿÿÿýÛ££££¡‘¢¢¡££¡¡¡¡¡¢¡¡£¢££‘¡££¡¡¢£¢¢¢¢¦¢¡¡¡¡£¢¢£££¢¢¡£££¦¡¡¢¡¡¡£¡‘¡‘¡¢¢¢¡‘¢£¡¡¡¡¤¢¢¡‘‘‘‘‘¡¡¡‘¡¡¡‘¡‘‘‘¤‘‘¡¡£­æüÿÿøÙ¤‘‘‘‘¡¡‘��~�‘‘�€‘¡‘‘‘€€‘�~‘~‘‘‘€€~}}}}€}}}}€€}}€}}w}ww}ÙýÓšúâ}w}w|wwvvwvvw}ww}wwwvvvvvvvvvpppvpppppvwvpoupvvoolpoovvoopvvppuuovÞýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9! !!! !!! !!!! ! !   !    !vÕýþþþþþþÿÿþÿþþÿÿÿÿÿÿæx=x�ƒ= œèýýýýþýþþþþÿÿþþþÿÿÿüÕ�~~€}~~~‘‘��~~�~~~~‘‘��‘‘‘~~�‘‘�‘‘‘‘‘‘‘‘¡¡‘‘‘¡¡‘¡‘‘¡¡¡¢‘¡¢¡‘¡¡¡¡¡¡¡¢¢¡¡£¢¡¡¤¢¢ëÿÿÿýÔ£¢¡¡¢¢¢¢¢¦¢¢¡¢¢¡£¢¢¦¢£££¢¡£¡¢££¡¡¢¢¢¢¢¡¢£¦¢¢¢¡¢££¡¢¢¡¢¡¢£¡¡¡¡¢¢¢¢¢¡¡¢¢¢¡¡¡¢¢¡¡¡¡¡¡¡‘¡¡¡¡‘¡¡¡‘‘¡¡¡‘¡¡¡¡¥àûÿÿûॡ‘‘¡‘‘�‘‘€‘‘‘‘�€‘€�€€~€�~‘�€�€}‘€‘€}}}€}~}}}}}}w}}}}}×ýÊ™úßw}}wwv}ww}ww}vvwwvvvvvvvvvvpvwvpvvvvvvpvppvvpovvpupvppoolpoololooyß÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!!!! !!! !!   !     !vØýþþþþþþþÿÿÿÿÿþÿÿÿÿÿæx=zÊ–B   œèýýþýýþþþþþÿÿÿþþÿÿþüÕ�~}~�~~~}€�€‘�~~~~~�‘�‘~�‘~‘��‘‘‘�‘‘‘¡�‘‘¡¡‘‘‘¡¡‘¤‘‘¢¡¡¡¡¡¡¡¡¡¡‘¡¡¡¡¢¡¡¡¢¡¡¡¡¢¥ëÿÿÿý­¢¢¡¡¡£¡¡¢£¢¢¡¢¢¡¦¢¡££¢¢£¢¤¢¡¢¢¢¡¢£¡¢¢¢¡¢¢¢£¢¢¡¢¢¢¢¢¢¢¡¡¡£¢¤¢¡¡¢¢¢¢¡¢¡¢¢¡¢¡¢¡¡¡¢¡¡¡‘¢¡¡¡‘¡¡¡¡¡¡‘¡‘‘‘¡¥äúÿÿý觤¡‘‘‘‘‘‘‘�~�‘‘‘‘�€‘‘�~€€€‘‘€�€€€€€~~~€€€}}}~}}€}}}}}}}w}}}}}ÙýÒ™úàwwwwww}www}}}vvvvvvvvvw|vvvvvwvvvvvvvvuvppvppoppvvoppvooouoooulooov{ÉòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!!!!!!! ! !! ! !   !  pØüþþþþþþþÿÿÿÿþÿÿÿÿÿÿæx!tzt$  œèýýýýþþþþþþÿÿÿþþÿÿÿüÕ�}}‘~~�~�€~~���‘~~‘~�~€‘�~�‘‘‘�‘¡�‘‘€‘¡¡¡‘‘¡¡¡‘‘‘¡¡‘¡‘¡¡¡¡‘¡¢¡‘¡¡¢¡‘¡¡¡¢££ëÿÿÿý­¡¡¡¡¡‘¡¡‘¡¡¡££¡¡£¢¡¡¡¡¡¢¡¢¢¡£¢¢¢¢¢¡¢¢¢¡¡¢¡¢££¦£¢¡¢¢¡££¢¡¢¢¢££¡¡¡¡¡¢¢¡¤¡¡¡¡¡¡‘¡¢¡¢¢¡¡¡¢¡¡¤¡‘¡¡‘‘‘¡¡¤Ø÷ÿÿþ鬢¡¡‘�€‘‘¡¡‘��‘‘‘���‘€€�€€‘‘€€}€‘‘‘€~€€€€€}}}�}}}}}}}}}}}€ÙýÇ™úßww}}}vw}w}}wwwwvw}vvv}wvvvwwvpvvwvpvvvvppvvpoopoowouvpouppolppollu†Ç˜†ÌòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ=$!ÃþÿÿþÆ!!!!!!!!!!!! ! !!!  !   !   oÓýþþþþþþþÿÿþÿÿÿÿÿÿÿþæx!     œèþþþþþþþýþþÿÿþÿþÿþÿüÓ~~€€}~~}~~‘�}~€‘‘~‘‘€‘¡¡‘~�‘‘‘¡¤‘‘¡¡¡‘‘‘‘¡¡‘¡¡‘¡¤‘¡¡‘¡¤¢¢¡‘‘‘¡¡¡‘¡¢¡‘¡¡¢‘¡¢¤ëÿÿÿýÛ£££¢¡¡¢¢¡¡¡¢¢¡¡¢¡¡¢¢¡¢¢¢¡¡¡¡¡¡¡¢£¢¡¢£¢£££¡¡¡¡¡¡¢¦£££¡¡¡¢¢¡¡¡¢¡¢¢¢¡¡¡¡¡¡¡¢¢¢¡¤¡‘‘¡¡¡¡¡‘‘¡¡‘‘¢¡‘¡¡¤ÓõþÿþõÓ‘‘¡‘‘‘‘‘‘�‘‘‘‘‘‘€‘‘€�‘‘‘€‘~‘‘�€€�}€€~~}~}}€}‘}~}}}}}w}}}wwwÙýǘúà}}}}}w}}vwvvvwwwvvvvwvvvvvvvvvvvvvpvvpvvvvpoppwppvovpoopvplolouoppv”ÌÌ{{ÞúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9! !! ! !! !! !!  ! !   !      ! !qØýþþþþþþþÿþÿÿþÿÿÿÿÿÿæx    œèýþþþþýþþþþÿÿþÿþþÿÿüÕ�~~€~�~}~~~~~~€�‘‘~‘�€��‘�~‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘¡¡‘‘¡‘¡‘‘¡¡¡¤‘¡¡‘¤¡¡¡¡¡¢¢‘‘¢¡¡¢¤èÿÿÿý­¡¢¢¢¡¡¢£¡¢¢¢¢£££¡¡¡¢¡¢£¡¡¡¢£¢¡¡¢¢£££¢¡¢¡¡¡¢¢¢¡¢£¢¡¡¡¡¡¢¢¡¡¢¢¡¡¡¡¢¢¡¡¡¡¡¡¢¡¡‘¡¢¡¢¡¡¡¡¡¡‘¡¡‘‘¡¡‘¥ÔôþÿÿõÚ¥‘‘‘‘‘‘‘‘‘�¡‘‘�‘‘‘�‘€€‘‘‘€€€‘‘‘€€‘‘~€‘~~}€€}}€€€}}€}}}€}}}}}}}wwÙüž™úßwv}}wv}}wwvwwwvvvvvvvvwwvvvvvvvvpvvpopvvppvpvpppopoouolupooollooooooyÌáÉ{›âýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!99ÃþÿÿþÆ9!!!!!9!!!!!!!! ! !     ! !  !vÓüþþþþþþÿÿÿÿÿÿÿþÿÿÿÿæx    œèýþþýýþþþþþÿÿÿþþÿÿþûÕ��~~}€€~~�‘}€�€€~€~€‘~€€€�‘€‘€‘‘€‘‘‘‘‘‘‘‘¡‘‘‘‘‘¡‘‘‘¡‘¡‘¡¡¡‘¢¢‘¡¡¡¡¡¡¢¡¡¡¡¢¡¡¥ëÿÿÿý¬¡£¢¢¢¡¢¢¡¢¢¡£¢£¢¡¢¢¡¡¡£¢¡¡¢££¢¡£¢££¢¢¡¢¢¢¡¢¢¢¡¢¢¡‘¡¡¡¡¡¢¡¡¢¢¡¡¡¡¡¡¡¡¡¢¢¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡¡¤¡‘¡‘¤Ôíþÿÿûàš‘¡‘¤‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘�‘‘€€€‘��‘�‘‘€‘‘€~€}}~€~}}}}}}}}}}}}}}}}}}Ùüž™úßw|wwvww}}vvw}vvvvwwvwvvvvwvvvvvpvpvpovwvppovppooouoooooooooooooollollu�âá›{ÇòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ=9$ÃþÿÿþÆ9!!!!!9! !!!!!! !!! ! !     ! !pØüþþþþþþþÿþÿÿÿÿÿÿÿÿÿæx  �èýþþþþþýþþþÿÿþþþÿÿÿüÕ~~�~}}€}}}~€�‘‘€~€‘~�~‘‘‘¡€�‘‘‘‘‘‘‘¡‘‘‘‘‘¡‘‘¡�€‘¡¡‘¡¡‘¡‘‘‘¡¡¡¡‘‘¡¡‘‘‘¡¡¡‘¡¡¡¦éÿÿÿý­¡¡¡¢¢¡¡¡¡¢¡¢¡¡¢¡‘¡¡£¢¢¢¢¢¢¡¢¡¡¡¢££¡‘‘‘¡¡¡¡¢£¢¡¢¡¡‘££¢¢¡¢¢¡¢¢¡¢¡¢¤‘¡¢¡¡¡¡¡¡¢¢¡¡¡¡‘‘¡¡¡¡¡¢¡¡¡Òèþÿÿýè§‘�‘�‘‘‘‘‘‘‘‘‘�‘‘‘‘�‘‘¡‘‘‘‘‘‘‘‘€~~‘€‘‘‘‘€~€€€}€�€€}}}€}}}w}}}€}}}Ùüž™úÙ}}}wvvwww|w}}wwwvvwwvvppvvvvvvvvvvvvpvvpoouvvooopvpopppppvouvppooouoouu{ÌñÞ{{ÞúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÆ9!!!!!!! !!!! !!  !   !   vØüþþþþþþÿÿÿÿÿÿþÿÿÿÿÿæx   œèýþþýþþþþþþÿþþÿÿþþÿüÓ}~}~€‘‘~~€‘~�‘‘~‘‘�‘�‘¡€~‘‘‘�‘‘‘¡�‘�¡‘‘‘‘‘‘‘‘¡¡¡¡‘‘¡¡‘¡¤¡‘¡‘¡¢¡‘¡¡¢¡¡¡¡‘‘¢ëÿÿÿý­¡¡¡¡¢¢¢¡£££¡¡¡¢¢¡¢£££¢¢¢¡‘¡¢¡¡¢¢¡¡¢£¢¢¡¢¢¢¢¡¡¡¡¢¢¡¦£¡¡¡¡¢¡¡¡‘¡¡¡¡¡¢¢¡¡¡¤¢¢¡‘‘‘‘¡¡¡¢¡¡‘‘¡¤¨àûÿÿý鬑¡‘‘¤¡¡‘‘‘‘¡¡¤‘‘‘‘‘€€�‘‘€~�‘‘‘�~€~‘‘€}~€}}~~�€€€}}}}}}}}}}}}ww}}ww}}àûžšúÞ}}wwwvvvwwvwwvv|wvvvvvwwvvvvvvppvvwvppvpppppvpppooovupooopoupollllloloolu›âèÇy”áüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÈ9!!! !!!!!! !!  !!    !   !  !pØüþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx   œèýþýþþþþþþþÿÿþþþÿÿþüÓŽ~~}}�€~~~~€€€€€‘€‘€�‘��‘‘‘‘‘‘�¡‘‘¡‘�‘‘‘‘‘‘¡‘¡‘‘‘‘¡¡¡¡‘‘¡¡¡‘¡‘¡¡‘¡¡¡¢¡¡¡¡¡¡¤èÿÿÿý­¢‘¡¡¡¡¡¡£¢¢¢¢¡¡¡¡¡¡¡£¢¡‘¡¡¢¡¡¢¡¢¡¡¢¢¢£¢¢¢¡¡¡¡¡¡¢£¡¢¢¡¡¡¡£¡¡¡¡¢¤¡¡¡¡¡¡¡¢¡¡¡¢¡¡‘‘¢¡¡¡¡¡¡¡¤ÚùÿÿþõÔ¤‘¡‘‘¡¡¡¡‘‘‘‘‘‘‘‘¡‘‘‘‘�‘¡€��~‘‘‘€�‘€€�€~€€€~~~}€€}}}€}}}€}}}}}w}}}}}wv}}}àúœš÷×}}}}w}ww}wvvwwwwwwvvwwwvvwvpwvvpvvvvvoppppopvvppoooupvooooooooooolooolllolyÉñá”y�òþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9! !!!!!!! !!!!!!! !    !  pØüþþþþþþþÿþÿÿÿÿÿþÿÿÿæx œèýþýþþþþþþþÿÿþþÿþþÿüÕ~~~~}}‘€~~�~~~~‘‘�~~€‘~��‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡¡�‘‘‘¡¡‘‘‘‘¡‘¡¡¤¡¡¡‘¡¡¡‘¡¡¡¡¡¢¢ëÿÿÿý­¢¡¡¡¢¡¡¢¦¢¡¡¢¡¡¡¡¡¡¡¡¡¡¡¡¢£¡¢¢£¡¡¡¢¢¢¢¢¢¡¡¢¢¡¡¢¢¢¡¡¡¡¡¢¢¡¢¡¡¢¡¡¡¡¡‘¡¡¡¢¡‘¡¢¡¡¡‘¢¡‘¡‘¤¥ØøþÿþùÚ¤‘‘‘‘‘¡‘¡‘‘‘¡‘‘‘�€‘¡¡‘‘‘‘‘‘‘‘‘€‘‘€‘€~€‘€�€�€€‘‘‘�~€€}}}}}}}}€}}}}}}}}}}ww}}}ß÷œž÷×wv}}w}ww}wwwww}ww}vvwwvvvwvpvvvvvvvvvppppppoupooouooupouuollolloooooolloollt”âñÌ{{ÞúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!!!!!!!! !!!! ! ! !   !   pØýþþþþþþþÿÿÿÿþÿÿÿÿÿÿæx     �èýþþþþþþþþþÿÿþþþÿþþüÕ�~~}}}}~€€€~€‘�~€‘€~€‘‘‘‘�~~‘�‘‘‘€�‘‘~�¡¢‘¡¡¡‘‘‘‘¡‘‘¡‘‘‘‘‘¡¢‘‘¤¡¡¡¡‘¡¡¡¡¡¡¥ëÿÿÿý­¡¢¢££¡‘¡¡¡¢¡¡£££¢¡¡¡¡¢£¢¡¢£¢¢¡¡¡¢¡¡¡¡¢¢¡¡¡¢¢¢¡£¢¡¡¡¡¡¢£¢¡¡‘¡¡¡¡£¡¡¡¢‘¡¡¡¡¡¡¡¢¡‘‘‘¡¡¤ÒíþÿþúÚ¤‘¡¡¡‘‘‘‘‘‘‘�€¤¡‘‘‘‘‘‘‘‘€�‘‘€€‘‘‘‘€‘€}}~~€€}}€~}€‘}}}�€�}}}}}}}}}}}}}}}}}}}àú™ž÷×vw}wwv}}wwwvp|}wwvwwvvvvvvwvvppppvvvvvvvvpooopupoopoooooooouollllooloooollloyÉñç�y›çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$99ÃþÿÿþÆ9!!!9!!!! ! ! ! !   !   !      vØüþþþþþþÿÿÿÿÿÿÿÿÿÿÿþæx     œèýþþþþþþþþþÿÿþþþÿþþüÕ�}}}€~}}€€���€‘~‘‘‘‘~�€‘~‘‘‘‘‘�~‘¡¡‘‘¡‘€‘¡¡‘‘‘‘¡¡¡¡¡‘‘¡¡¡‘‘‘‘£¢¡¡¡¤¡¡¡‘¢éÿÿÿý­¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢£¢£¡¡¢¢¡¡¡¢£¡¢¡¢¢¡¡¡¢¢¡¢£¢¢¡¡¡‘¡¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¤¡¡¤¡¡¡¡‘¡¡¤¤¡¡§êýÿÿûæ§‘¡‘¤‘‘‘‘¡‘‘‘‘¡‘¡‘‘‘‘‘‘�€‘‘¡‘�€~€‘‘‘�‘€€~�‘‘‘€€~}€}€}}}€�€�}}}}}}}}}w}}}}wà÷™ž÷Ów}}ww}wvw}wvwwvwvvvvvvvvvvvvvvvvvvvpppvvvvoopvvpoopvuooooooouolopollCllllllllll”ßñÞƒ{Ì÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÂþÿÿþÆ!!!!!!!!!!! !! !!! ! !   !  !   !pÕýþþþþþþÿÿÿÿÿÿÿÿÿÿÿþæx  œèþþþþþþþþþþÿÿþþþÿþÿûÕ~}€}~~~~‘€€€€~~~€~�€€€€€€��‘€‘‘€‘�€¡‘‘¡‘�‘‘‘‘¡‘‘‘‘‘¡¡¡‘¡¡‘¡¡¡‘¡¡‘¡¡¡¡¡¡‘¡¡¡£ëÿÿÿý­¡¡¡¡‘¢¡¡¡¢¡¡¡¡¢¡¡¡¢¢¢¡¡¢¤¡¢¡¡¢¢¡¡¢¡¢¡‘¡£¢¢¡¡¤¡¡¡¡¡¡¡¡¢¡¡¡¢¢¡¡¢¡‘¡‘¡¡¡¡¡¡¢¡‘‘¡¡¡£¨àûÿÿû謡‘¢¡‘¡‘‘¡‘‘‘¡‘‘‘‘‘‘€‘¡‘‘~‘‘¡�‘‘~~~€‘€€‘€}€‘‘‘‘‘€��‘}}~~€}}�€}€}}}}}}}}}}}}}w}wà÷™ž÷Êw}}vw}}wvvwwvw|vvpvvwwvvvvvvvvvvvvpvpppvpppvvvpooouppppolloouoouputllotltlltlllly�ñçÆy”âýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$9$ÃþÿÿþÆ9!!!! !!!! !!!! ! !     !   oÕýþþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx     œèþþþþþþþþþþÿÿþþþÿþþúÓŽ~€~}€‘‘�~‘€~€€€€~‘‘€~~‘‘‘€�‘�€‘¡¡�~€�‘‘¡‘‘‘‘‘‘¡‘‘‘‘�‘¤‘¤¡¡¡¡¡‘‘‘¡¡¡¡¡¡‘¡¡èÿÿÿý­¡¡¡¡‘¢¡¡¢¡¡¡¡¢¢¢‘¤¡¡¡¢¢¢¡¡¡¢¡¡¡¡¡¡¤¡¡¡¡¢¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¡£¢¡¡¡¡¢¡¡‘¡¡¡¡¡¡¡¤¡¡¡¤Ùùþÿýí­£¡‘‘¥¡‘‘‘‘¡‘‘‘‘‘‘‘‘‘�‘¡‘‘‘‘‘‘‘~€�‘€€‘‘~€‘‘~}€‘€€‘‘‘‘‘€€}}}€‘}€}€€}}}}}}}}}}}}}}}}àõ™ž÷Êvvw}}w}}|vwwvv|vvvvvvvvvvvvvvvvpvvpoopvpopvvvpoooooopuopolppoouplloulooolllooCloll†Þòá”yÇòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$99ÃþÿÿþÈ9!!! !!!! !! ! !       !   pÕüÿþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx      œèýþþþþþþþþþÿþþþþÿþÿüÓ��~}}}}}}}}}~~€€~~‘‘€�‘‘‘‘€‘‘‘�‘‘‘~€‘€‘‘¡¡�‘¡¡¡‘‘‘‘‘¡‘¡¤‘‘‘‘¡¡‘‘¡‘‘‘¡¡¢¢¢¢¡èÿÿÿý¬‘¡¡¡‘¡¡¡¡¡¤¡¡¡¡¡‘¡¢¢¡¡‘¢¡¢¢¢¡¡¡¢¡¡¡¡¢£¡¡¡¡¡¢¡¡¡¡¢¢¡¢¢¡¡¢¡¡¡¢¡¡¡¡¡¡¡¤¢¢¡‘¡¢¡¡¡¬éþÿþõÓ’‘¢‘¡¡¡‘¡¡¡¡‘‘¡¡‘‘‘‘‘‘‘‘¡€‘‘‘‘€‘‘‘‘�€‘‘¡€€�‘€‘‘~}}€�€€}}}}}€}}€}}}}}}}}}}}w}w}}}àõ˜ž÷Ê}ww}}wvvw}ww}}wwvvvvvvwwvvvvvpppvvvvvwvoouopppoooppoolooouppouolllolllooolollllltoCt›çñÉy{ßüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!!! !!! ! !! ! ! !! !!    vØýþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx      œèþþþþþþþþþþÿþþþþÿþÿúÕ�€€~}~€‘€€‘€~‘~~‘�‘‘�€€��‘�~‘‘‘‘‘‘‘�‘‘‘‘‘‘‘¡‘‘¡‘¡¡‘‘‘¡‘‘¡¡‘‘‘‘‘¡¡‘¡¡¡¡¡‘¡èÿÿÿý¬‘¢¢¡¡¢¡¡¡¢¢¡‘¤¡¡¡¡¢¢¡¡¡¡¡¡¡¡¡¡¡¢¡¡¡¢£¢¡¢£¡¡¡¡¥¢¡¡¡¤¡¡¢¡‘¡‘¡¡¡¡¡¡¡¡¡¡¡¡¡‘‘¡¡¡Ôøÿÿû䥡‘‘¤‘¡¡‘‘¡¡‘‘‘‘‘‘¡‘‘¡‘‘‘‘‘�‘‘‘‘�‘¡‘€~‘�€‘‘�‘‘€}€€€~€}€€€}}}}}}}}}}}}}}}}}}}}www}ßõ˜Ç÷Ò}w}wwwwvv}vvvwwvv}wvvvvvvvvpvvvvwvpvvvppvpovvupopopuoopolopoooloolluollullltCllllllCl{Ìñç–y�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÃþÿÿþÆ9!!!!! !!!! !!!! ! !     pØýþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx      œèþþþþþþþþþþÿþþþþÿþþüÕ~}€€}~}~€‘~€}€€€¡€€€€‘�€~�‘�‘�~€‘‘‘‘¡‘‘‘‘€¡‘‘‘�‘¡¡‘¡‘‘¡¡‘‘‘¡¡‘‘‘‘¡¡¡‘¡¡¡‘¡‘¡èÿÿÿý­¡¡¤¡¢¢¤¡¡¢¢¡‘¡¡¡¡¡¤¡¡¢¢¡¡¡‘¡¡¢¡¡¡¡¡££¡¡¡¢¢¢¡¡¢¢¡¡¢¡¡¢¡¡¡¡‘¡¡¡¡¡¡‘¡¡¡¡‘¡¡‘‘¡¬øÿý매¡¡¡‘¡‘¡¡�¤’‘‘‘‘¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘�‘‘‘€€€‘€€‘€€‘‘€€~€€€€~€€}€�€€}}}}€}}}}}}}}w}}www}àò�Ò÷Çwww}}wwvv}wvvvvvvwwvvwvppvvvwvvwvvpvppppvvvppppppoppouooluuoolouoloulollollllltllllllCt”áòÞ{zÎúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!9ÃþÿÿþÆ9!!! !!! ! ! !! !!  !   pÕýþþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx      œèþþþþþþþþþþÿþþþþþþÿûÓ~}}}}}}}~}}~}~}�‘‘~~€€€€‘‘��‘‘‘‘~€‘‘�‘‘‘‘‘¡¡‘‘‘‘‘‘‘¡¡¤‘¡¢¡¡¡¡‘¡¡¡¡¡¡¡‘¡¥£ëÿÿÿý­¢¡‘‘¡¡¡¢¡¡¡¡¡¢¢¢¡¡¡¡¡¡¢¡¤¡¡¡¢¡¡¡¡¤‘¡¡¤¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¥¡¡¡¡¡¢¢¡¢¢‘‘¡¢¡¡¡¡¡¡¡ÚþûÚ¤¡‘‘¤¡‘¡‘‘¡‘¢¢¤¡‘¡¡‘‘‘‘‘‘‘‘‘‘�€€‘€�‘‘€€‘‘€€€€€}€‘�€€€‘�€€€€€‘‘‘‘€€€}}}€€}}}}}w}‘}w}}}}w}}àõ™Òõžwwwwwvvwvww}vvvvvvv|vwwvvvvpvupvvvovpvpopvppooopulpoppopovollloolloollllllllolllolllCCCCxÉññÆy–çþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ$$$ÃþÿÿþÆ9!!!! !!!!!! ! !! ! !  ! !  ! oØüþþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx   œèþþþþþþþþþþÿÿþþþþþþüÕ‘}}}}}€~€}~‘‘‘�~}}€‘‘‘�‘€‘‘‘¡‘‘€€�‘‘�‘¡¡‘�€‘‘‘‘‘‘‘‘�‘‘‘�‘‘‘‘‘¡¡¡¡¡¡¡¡¡‘¡¡¢èÿÿÿý­¡¡¢¢‘¡¡¡‘¡¡¥¢¡¡¢¡¡¡¡¡¡¢¡¡¢¢‘¡¢¢¡¤¡‘¢¢¢¡¡¢¡¢¢¡¡¥¢¡¡¤¡¡¡¡¡¡¡¢¡¡‘¡¡¡¡‘¡¡¡¡‘¡¡¡Òýí¤‘¡‘�¡¡¡¡‘‘¡€‘‘‘�‘‘¡‘‘‘¡¡‘‘‘‘‘¡‘‘‘‘�‘‘‘‘‘€€‘‘‘‘€€€€‘€€}�€}}}}}}}}€€w}}}}}}}}}}€}}w}}}}}wæõ�Çõž}w}wwvwvwwvvvwvvwvwwvvvvpvwvvvvvvpvvpvvvppooovovvpvouuolooluuuuuolloltooolllllCCllClolCCllƒßòß”xÉ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!!! !! !! !! !! ! ! !!   !   oÕýþþÿþþþþÿÿÿÿÿÿÿÿÿÿÿæx    œèþþþþþþþþþþÿþþþþþþþúÓ�}~}}}~~}€‘€~~}}‘€~�‘‘‘�€€‘‘‘�€‘~‘‘€¡‘‘€�‘‘‘‘‘¡‘‘‘‘¡‘‘‘‘¡¡‘¡¡¡‘‘¡¡‘‘¡¡‘‘¡èÿÿÿý­‘¡¡¡‘¡¡¡¡¡¡¡¡¡¡¡‘¡¡¢‘¡¡¡¡¡¢¡¡¡£¡¡¡¡¡¡¡¡¢¢¡¡¡¡¡¢¡¡¡¡¡¡¡¡¡¢¡¡¡‘‘¡¢¤¡¡¡¡¡¡‘¡¡‘¤ùû§‘¡¡‘¡‘¡¡‘‘¡‘‘‘�‘‘‘¤€‘¡‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘�‘€€‘‘€€€€‘€€}�€}}€}}}€€}€}}}}}}}}€}}}}}}ww}}}}æñ�Çõž}w}}wwwwwvvvwwvvvvwwvvvvpwwvpvvvvvpvpvvppvpopvouuoooopoouploolooolollolllllolCltlllClllltCCtÆñòÉz”çýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ9!!!!!!!!! !! ! ! !! !  oØýþþÿþþþþÿÿÿÿÿÿÿÿÿÿÿæx   œèþþþþþþþþþþÿþþþþþþÿüÓ�}~}€~~}€}€€€€€}~~€€€€€‘‘‘�€~€‘€�‘~‘‘�‘‘‘€€‘¡‘‘‘¡‘‘‘¡‘‘¡¡¡¡¡‘¡¡¡‘‘‘¡‘‘‘¡‘‘‘èÿÿÿý¬‘¡¢¡¡‘¡¡¡‘¡¡‘¡¡¡‘¢¢¡¡¢¡¡¢¡¡¢¤¡¡¡¡¡£¡‘¡‘¢¤¡‘‘¡¡¡¡¡¢¡¤¡¤¡¡£¡¡¡‘‘¡¡¡¡¡¡¡‘‘¡‘‘‘¡àþ椡¤‘‘‘‘‘‘¡¡‘‘‘‘‘‘¡‘�‘‘‘‘‘€‘‘‘¡€‘‘‘‘‘€‘‘‘€‘‘€‘�€��}€€€€}}€€€}�}}}}}}}}w}}}}}ww}}}âô�Çõž}}wwwwvw}wvvwwvvvvwvvwvvvvwvvpvvvvopvvvuoppvppopolopoooooploooooloolllllllllllloCllCCCllCClCl{Ïúç›yÇ÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÃþÿÿþÆ9!!!!!!!!! !! !   !  !   pÕýþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿþþþþþþÿúÕ�}}}}�€~}}�~€~‘‘€‘�€~~~}�‘‘�€�‘€‘‘‘~~‘‘‘‘‘‘¡‘‘~�‘‘€‘‘‘‘‘¡‘‘‘‘‘‘‘¡¡¡‘‘‘¡¡‘¤èÿÿÿýÒ¡¡¡¡¡¡‘¡¡¡¢¢¡¢¥¡¡£¢¡¢¢¡¡¡¢¡¡¡‘¡¡¢¡¢¢¡¡‘¡¡¡¡¡¡¤¡¤¡‘‘‘¢¡‘‘¡‘¡¡‘¡¡¡¢¢¡‘¡‘‘‘¡‘‘‘¬ûû§‘‘‘‘‘‘¡‘‘¡‘¡¤‘‘¡‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘€‘‘€€‘€€‘€€‘}}�}€�‘€€€�€}€‘}}}}}}}}}}}€}}w}}}}}}}ww}æñ�Çõžwvw}}}w}wvvvvvvvwvvwvvppvppvvpvpvpovpvvppopvpoppvovopvoooolopuulllllllooullCClltlllCtlCCCllllCt�ñú߃ƒÞüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!;$ÃþÿÿþÈ9!!!!!! !!!!!! ! !   !    vÖýÿþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx     œèþþþþþþþþþþÿþþþþþþÿúÕ�}}~}}}€€}}~€€‘~‘€‘€€~‘‘~�¡‘‘‘‘‘~‘‘�‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡‘‘‘‘‘‘¡¡‘‘‘‘¡¡¡‘‘¢ëÿÿÿýÔ¡‘¡¤¡‘¡¡¡¡¡‘‘¡¡¡¤¡¤¡‘‘¡¡‘¡¢¡¡¡£¡¡¡¡¢¡¡‘¤¡¡¢¡‘¡‘¡¢¢¢¡¤¡¢¡¡¤¡¤¡¢¡‘‘¡¡‘¡¡¡¡¡¡‘¡¡éþà¡‘‘‘¤¡¡‘‘‘�‘‘‘‘‘‘‘‘�‘¡‘‘‘‘€€‘¡¡‘€‘‘�‘€€�‘‘‘‘~~�‘‘€€�}�€€€}}}}}}€}}}}}}}}}}}}}}ww}ww}}w}èñ�Êõž}}wwww}wwvvvvvvwvvvvpvwvvvvvvvvpvppvopppvvpooppooowuloluooloolllolluoltopltlltlllltCllllCllCCCCtzÞúòÉz›òþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9$ÃþÿÿþÆ9!!!!! !!! !! ! ! !! !   pØýÿþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿÿþþþþþþüÓ�}}}}€€}~}€€}}~€€~~~‘€~���‘��€‘‘‘€‘€€‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘¡¡‘¡¡‘¡¢‘‘‘¤ëÿÿÿý­¡‘¡¡‘¤¡¡¡¡¡¡‘¤¡‘¡‘¡¢¡‘‘¢¡¡¡¡¡¡¢¡¡¡¡‘¡¡¡¡¡¡¢¡¤¡¡¡¡¡¤¡¡¡¡¡¡¡¡¡‘¡¡‘‘¡‘‘¤¡¡¡‘‘¡¡‘Òýû§‘‘‘¡¡‘‘¡‘‘‘‘‘‘‘¤¡‘€‘‘‘‘‘‘�‘‘€‘‘€€‘‘‘‘‘‘€�‘€‘‘�€‘‘}}€}}}}}}}}}}}}}}}}~}}}}ww}}}w}ww}èñ�Êòœ}}w}wvwwvvwwvvvvwvvvvvvvvvvvvppvvpppppvovpopupvvoovooploouuoolltoloulllllllllllCtllCllCllCllCClCCtÅñüçŃÎúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÃþÿÿþÆ9!9!!!!!!! !! ! !! ! ! !  oØýþþþþþþþÿÿÿÿÿÿÿÿÿÿÿæx    œèþþþþþþþþþþÿþþþþþþÿúÓ~}}}}}~€}}}~€}}€�€}‘€€€‘‘‘�€‘€��€‘€€�€‘‘‘‘‘‘‘€‘¡‘¡‘‘‘‘‘‘‘¡‘¡¡¡¡‘¡¤¡‘‘¤¡¡‘¡èÿÿÿýÒ¡‘‘‘‘¡¡¡¤¡¡¡¡¡¡¡¢¡‘¡¡¡¡¢¤‘¡‘¡¢¢‘¡¤¡¡¡¡¢¡¡¡¡¡¢¢¡¤¡‘¡¡¡‘‘‘‘¡¡‘¡¡¡¡¡‘¡¡¡¡¤‘‘‘¡¡‘¤íþऑ‘‘‘‘¤¤‘‘¡¡‘‘‘¤‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘‘€�‘‘‘€€��€€€}€}}}}}}}}}}}}}}}w}}€}}}}w}}}}w}vwèñ�Êòœww}}wvvvvwwwwvwwwvvvvvvvvvpvvpvvpvvvvvpopppvpoppooolpvoopouolotolouollllllollllllltCCClCCCllCCCCCllxÎüüá”ÅòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!9!! !!!! !! ! ! !  !   oÕýþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿþþþþþþÿúÕ~~€}}}‘€}}}}€~€~}��‘‘‘‘€}‘€~€~‘‘‘‘‘‘‘€€‘¡‘‘‘‘‘‘‘�‘‘‘‘‘‘¡¡¡‘‘‘‘‘‘‘¡‘‘¡¡‘¥ëÿÿÿý­¢¡¡¡‘¡‘‘¤¡¡‘‘‘¡¡¡‘¡‘‘‘¡¡‘¡¢‘¡¡¡‘¡¡¡¡‘‘¡¡¤¤‘‘‘‘‘‘¡‘¡¡¡¡¡¡¡‘‘‘¡¡¡¡¡¡‘¡¡‘‘‘‘¡‘‘¡¤Óþú¥‘¡‘‘‘¡‘‘‘¤¡‘‘‘‘‘�‘‘‘‘‘€‘‘‘‘‘€‘‘€‘€‘‘‘€�‘€‘€}}€}}€}€€€€€€€€}}}}}}}€€}ww}ww}}w}}}}�èô�Êòœwwwvvvvwwvvvww}}vvvwwvvpvvvwvpvvpppvppvvvvpppooouooopulpuoolllouuoloooooltlllllllltllltlCCCllCCCCCCCt›ñþ÷Ì›áþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!! !!! ! ! !!   !    pÕýþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿþþþþþþþúÕ�}}}}}~€‘}~€�€~}~�‘~‘‘~€}€~‘‘‘�€€€‘€€‘€‘‘‘�‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘‘‘‘‘‘¡¡‘‘‘¡‘‘¤ëÿÿÿý­¡¡¡¡‘¡¡¡¡¡¡¤¡‘¡¡‘¡¢¡¡¡¤¡¡¡¡‘¢¥¡‘¡¡¡¡¡¡¡¡¡¢¡¡¡‘¡¡¤¡¡¡¡‘¡¤¤¡‘‘¡‘‘¡¤¡¡¡¡¤¤¡‘‘‘‘‘¡¥õþÚ‘¤‘‘¡‘‘‘¡‘‘‘‘‘‘‘�‘‘‘‘‘�‘€€‘‘‘‘€€€‘�€€‘€€‘€}€��}}}}}€€}}}}€€}}}}}}}}}}}}}}}}}}}ww}}}èñÊòœ}wwwvvvw}wwvvwvvvvvvvvvvvvvvvvppvppvpuvuooopoooppupooouololoollloulllllllullllllClllllCtCCCtCCtCtCCCCCyÎúþòçþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!9ÃþÿÿþÆ9!!!!! 9! !!! !!  !   pØýþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿæx  œèþþþþþþþþþþÿþþþþþþþúÕ�}}}}}}~}}~€€€€�‘€€�}~€€}~‘‘‘€‘€~‘‘‘‘€‘‘€€€‘‘�‘‘‘¡¡‘¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡‘‘¤éÿÿÿý¬‘‘¡¡¡‘¡¡¡‘¡¡¢‘¡¡‘¡¢¡‘¡¡¡‘¡¤‘¡¡¡‘¡¡¡¡¡¡¡‘‘‘¡¡¡¡¡¡¡¡¡¡‘‘‘¡¡¤¡¡¡¡‘‘¡¡¡¡‘¡¡‘‘‘‘‘‘‘¡Øþ÷¤¡‘‘¤‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘‘‘‘€�‘‘‘‘€‘€‘�€€€€‘€‘‘€€}‘‘}€}€€}}€}}}}}}}}}}€}}w}}}}w}}}}}}w}wèô�×õ™ww}wvvwwwwwvvwvvvvwwvwvpwvvpwvpuwvpvopvoppopupoupuuooouooulouoolouotulllllllllllllllllCClCCCCCCCCCCCCCCtÅüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!!!! !!! ! !  pÕýþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿæx œèþþþþþþþþþþÿþþþþÿþþü¬~}}}}~}}}}~}}€~‘€}}€‘~�‘~€€‘‘‘~€�‘�‘‘‘‘��‘‘‘¡‘‘‘‘‘¡‘‘¡¡¡‘‘‘‘‘‘‘‘‘‘¡¡¤‘‘¡èÿÿÿý¬‘‘‘¡¡‘‘¡¡¡‘‘¡¡¡¡‘‘¡¡‘¡¡¡‘¡¡‘¡‘¡¡‘¡¤‘‘¡¡¡‘‘¡¢¢¤¡¡‘‘‘¡¡‘‘‘¡¤¡¡¡¤‘‘¡‘‘‘‘‘‘�‘¡¤¡‘‘¡¤õþÙ‘¡¡‘‘‘‘‘‘‘‘€€€‘‘‘‘�€‘¤‘‘‘‘‘‘‘‘‘‘€€€‘€~€}€‘‘€‘€€}�€€€}€€€}}}}}}}}w}}}}w}}}}}}}wwèñ�×õ™wvw}}w}}wvvvwwwvvvwvvvvvvpppwvvvvvopopvuooupppppopluullooolopulllooouolllllltlCCllllCClllCClCCCCCCC?CCCCyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!99ÃþÿÿþÆ9!!!!!! ! ! !!   ! ! oÕýþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx œèþþþþþþþþþþÿþþþþþþþüÓŽ}}}~}€}~~~~~}}€€}€€~€‘‘‘‘€�~€‘�€€‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘¡‘€‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¤èÿÿÿý­¡‘¡¡‘‘‘¡‘¡¤‘‘¡¡¢¢¡¡¡¡¡¡¤‘¡¡¡¡‘¡¡¡‘¡‘‘¡¡¡¢¤‘¡‘‘‘¤¤‘‘‘¡¤¡‘¡‘‘‘‘¡¤‘¡¡‘‘¤¡¡¡‘¡¤¡¡‘‘¡Úþøš‘‘€‘‘‘‘‘‘‘‘‘‘€‘‘‘‘€€‘‘‘€€€€‘‘‘‘€‘‘�€€‘€€}€€�€�€}}}€}}}w}}}}}}}}}w}wvw}}}�èèÊòœww}}}vwwvvwwwvvvvvppvvvvvppvwvpvoouvvvopvvvoouuoouopulouuoouulooololCloolllCtlllulClClCCllClCClCCCCCC?CCƒþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!!! !!! ! ! ! !      pÖýþþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿæx!œèþþþþþþþþþþÿþþþþþþþúÓ}}}}}~}}€€}}€€}€�‘�€}€‘‘€€�‘€‘‘€~~‘€€¡€�‘¡‘‘‘‘‘�‘‘‘‘�‘‘‘‘‘‘‘¡¡‘‘‘‘�‘¡¡¡èÿÿÿýÒ‘‘‘¡‘¡‘‘‘¡¡¡‘¡¡¡¡¡‘‘¤¡‘¡‘‘¡¡‘¡¡¤¡‘¢¡¡¡¢¡‘¡‘¡¡‘¡¡¡‘¡‘‘¡¡¡¤¡¡‘‘¡¡¡‘‘‘‘¤‘‘‘¡¡¡‘¡¡‘‘šõþß’¡‘‘‘‘‘‘‘‘‘¡¡€‘‘€‘‘€�¡‘€€‘€€‘€€‘€€�‘€}€€€€€€€€}}}}€}}}}}}}}}}w}}}}}}}}w}}}wwwwèñ}Êò™w}wwwwvvvvvvwwvvvvvvvvvvvvvpvvvvpuovupupvpoopvvooopuuuooouooooooolooollolllColClulllCClClCCCCClCCCCCCCCCÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!!! !!! !! !!! ! !! vØþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ~}}}€}}}~}}€€‘}}€€}€�€~€‘}€‘€‘‘‘€€‘‘~~€‘‘‘‘��‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘¡¡¤èÿÿÿý¬‘‘‘‘‘¡¡‘¡¢¡¡¡¡‘‘¤¡¡‘‘¡‘¤‘‘¤‘¡¤‘¡¡‘¡¡¡¡¡¡¡¡‘¡¡‘¤‘‘¤¡¡‘¡¡¡¤¡¡¡¡¡¡¡‘‘¡‘¡‘‘‘‘¡‘€‘¡¡‘‘Øÿú§‘¡‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘€¡‘€‘‘‘€‘�€€€€€€€€€‘€€€}€}}}}}}}€}}}}}}}}}}}}w}}w}}}}}}}}}wwvwñè}×ò™w}vvvvvvvvvwvwvvwwvvvwwvpvvuovvppvvvopvppuovuppooovooplouulooloollltullttllltllllolClClCllCCCClCCC?CC?l–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!! !!!! ! !! !! !  pÕþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþÿúÕ�}}}}}€}}}}€}€}}€�~‘‘‘�€‘€~}€~}�‘‘‘‘‘‘‘‘€€‘‘‘‘‘~‘¡¡‘‘‘‘¡‘‘¡¡€‘‘‘‘‘‘‘‘‘’èÿÿÿý¬‘¡¤¡¡¤‘‘‘¤‘‘‘‘‘¡¡‘¤¡¡¤¤¡‘¡¡¡¡¡‘‘‘‘¡‘‘‘‘‘¡‘¡¡¡¡¡‘‘¡‘‘¤‘‘‘‘¡¡‘¡¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘¡‘¡‘‘¤÷ÿà‘‘€�‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘¤‘‘‘‘€‘‘€€€€€€�€€}}}}€}�€}€€€}}}}}}}}€}ww}}}w}}}}}}}ww}ww}�ôèÊõ™vwvwwwvwvvwwvvvvvvvvvvwvvvpoppuppvvvvoplouovoopuvulouuouvpollllllulllCllllCCuolCCCllllltCCClCCCCCC?CCAtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ9!!!!!!!! !! !   pÕþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþýÿúÔ‘}}}}€€}}}}€€}}}}}€�~~}�€€‘‘~‘€~‘‘‘‘‘~€‘‘‘‘€‘‘€‘‘��‘‘‘‘‘¡‘‘�‘¤¤¡‘�‘‘‘‘èÿÿÿý¬¡‘‘‘‘¡¡¡‘‘¤‘‘¡¤‘‘¤¡¡¡‘¡‘¡¡¡¡¡¡¡¡¡¤¢¤‘‘¡¡‘¡¤‘‘¡‘‘‘‘‘¡¤‘‘‘‘¡‘‘‘‘‘‘‘‘¡¡¤‘‘‘‘‘‘¡¤¡‘‘‘‘Ùþú§‘‘‘‘€‘€‘‘‘€‘‘‘‘‘‘€€€€‘‘€€�‘‘€€€€€€}€}}}}}}}}}}}€}}}€}}}}}}}ww}}}}}�Ç÷èÊúÙ˜wvwwvw}wvvvvvvwvvvvvvvvvvvvvvvupvuvvvvvvoouupoovopptluollupuooltlllCllotlllCCCCCllolCCCtltCCCCCCCCCCÅþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!99ÂþÿÿþÆ9!!!!!!!!!!!!!! ! !  !      pÕþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæx�èþþþþþþþþþþÿþþþþþþÿúÕ‘}}}}}}}€}}}€~€€€~}~~~�€€‘€€€€€‘‘‘€‘�€�€‘¡€‘‘~¡‘€€‘‘‘€‘‘‘€‘‘¡‘‘‘‘‘‘¡‘èÿÿÿý¬‘‘‘‘‘¡‘‘‘¡¡¡¡¤‘‘‘¡¡¤‘‘¡¡¡¡¤‘¡¡¡¡¡¡¡¡‘¡¤¡¡¡¡¡¡¡‘¡¤‘‘‘¡¡‘‘‘¡‘‘‘¡¡‘‘‘¡¡¡‘‘‘‘‘‘‘¡‘‘‘‘‘šøÿæ‘‘‘‘€‘�‘€‘‘‘€�‘‘‘€‘‘€€€€‘‘€€‘€�€€€€€€}€€}€}�€}}}}}}}}}}}}}}w€}}}}}}}}}}ww}™×õüþñÊþþúèʘwvvw}vvvvvwwvvvvvvvvvvvvvvvvpupvopuvvvovppooouluouluolltuCoolottttollllulllltllltlCCCllCCtClCCCCCuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!!!!!!!!!!!!! !! ! ! oØþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþÿþþÿþþþþþþþüÓ~}}}}}}€}€€}}~€}€€}~~~€}~‘‘€‘~~~€€‘€€€‘‘€€~‘¡‘€€‘‘‘�€‘‘‘‘‘‘‘�‘‘‘‘‘‘‘¡¡¡‘èÿÿÿý¬¡‘‘‘‘¡¡‘¡‘‘¡¡‘‘‘‘¡¡¡‘¡‘‘¢¡‘‘‘¡‘‘¡¡‘‘‘¡¤¡¡¡‘¡¡‘’¡¡‘¡‘‘‘‘¡¡¡‘‘‘¤¡‘‘¤¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘Ùÿü§‘‘‘‘‘‘€�‘‘‘€‘‘�‘�€‘‘€�€‘€‘‘‘€€}€€€€}€€€}€€€€}}}}}}}}}}}}}}www}www}}wÊõþûòþè}×÷èôüýò×�wvwvvvvwwvvvvwvpvvvppvpvvvvpovoupoppovuouuulluooluuloouloolloolltllltollllolCllltCllCClCCCllCCCÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!9! !! ! ! !!! ! !   oØýþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ�~}}}}}}~}}}}}}}€�€}€€}}~}�€€‘€€‘‘‘�‘‘€}¡‘‘‘€‘‘�‘‘¡‘‘‘‘‘‘‘‘€‘¤‘‘‘‘‘‘‘¡¤‘‘‘èÿÿÿý¬¡¡¡‘‘‘¡¤¡‘‘¡‘‘¡¤‘‘‘‘¡‘‘‘¡¢¡¤¡¡¡‘‘‘¤‘‘¡¡‘‘¤¡‘¡‘‘¡¤‘‘¡¤¤¡‘‘‘‘¤¡£¡‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘¡¤¤ùÿè€�‘‘‘‘‘‘€€‘‘‘‘€‘‘¡‘‘€€‘€€€‘�€€€€}}€‘€€}€€}}}}}}}}}}}}}}w}}}}}}}}}}}}˜àüû朘õè}Êß��žß÷üè™wvvvvwvvvvvvvvvvwvppvpppvppvvupvopuooouoooooooolooluouuulololllllllllCCCClCCCCllCCCCCtlCCCCCCxòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!;ÃþÿÿþÈ9 !$9!9!!! ! ! !   pØýÿÿþþþþþÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþÿþþÿþþþþþþÿúÔ�w}}}}}}}}}}‘~}}}}€}€€~}€�€~�€€‘€€‘‘�‘¤€��}€‘€�‘‘‘‘‘‘‘‘€‘€‘‘‘‘‘‘‘¤¡‘‘‘‘‘èÿÿÿýÒ‘¡‘‘‘‘‘‘‘¡¡‘‘‘¡¡‘‘‘¡¡¡‘‘¡‘‘¡‘‘‘‘¡¡¡‘‘‘¤¤¤‘‘‘¡¡‘‘¡‘¡¡‘‘¡‘‘’‘‘‘¡¡‘‘‘‘‘‘‘¡¡‘‘‘‘‘‘¤¡‘‘‘‘Ùþý¬‘‘€€‘‘€‘€‘€€€‘€�€€€€€€‘€€‘‘€}€€�‘€€€�}€€}}}}}€€}}}}}€}}w}}}}}}}}ww}}}˜ñüèœw÷è}Êßwvww˜ß÷ôœvvvvvvvvvpvvvwvvpvvvvppvvvvuopvuupvoupopppppuuuuolooloooolllltlltCCCltltlltllCCtllCCltCCCCCtÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!9ÃþÿÿþÆ9 !!!!! ! !!! ! !!  pØýÿÿþþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ~}}}}}}}}}}~}}€€}}€€€}}€€}‘€€€€}‘~‘€€‘€�‘�‘€€‘‘‘‘‘‘€‘€‘‘�‘‘‘€�‘‘¡‘‘‘‘‘’èÿÿÿý¬‘‘‘¡‘¡‘‘¡¡‘‘¡‘‘¡‘‘¡¡¡‘‘¤‘‘‘‘‘‘‘¡¡‘‘€‘¡‘¡¡‘¡‘‘¤‘‘‘‘¤‘‘¡‘¡‘¤¡‘€‘‘‘‘‘‘‘‘‘‘¡‘‘‘�‘‘‘‘‘‘€¤šúÿè‘‘�€‘‘€‘‘‘€‘€€€€€€‘‘}€€‘‘€€��€€}}€€€}}}}}}}}}}}}}}}}w}w}ww}w}�èüÙ�ww}Çüò™âò�vvww{Êõñ˜}vvvvvvwvvvwvvvpvvvvpvwpppopvvuoovupuooopooouuoltooollootllltllltlCltlltllCllClCCCCCCCCCCC–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ9!9ÂþÿÿþÆ9!!!!!!! !! ! ! !     oØüÿÿþþÿþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþüÓ�}}}}}}}}~}}}}}}€~€~}€€~€€}}€€}‘€~‘€�‘‘‘�‘‘€¡‘‘‘��¡‘‘‘‘‘‘¡‘‘‘‘‘‘‘’èÿÿÿý­¡‘‘¡¡‘‘‘¤‘‘‘¤‘‘‘‘¡¡¡‘‘¡¡‘‘¡‘‘¡¡¤¡‘‘‘‘¡‘‘‘‘¢’‘¢‘‘‘‘‘‘‘¡‘‘‘¡¡‘‘‘‘‘‘‘¡¤‘‘‘€‘‘‘‘‘¡‘�‘‘€¡‘Úÿþ¬‘‘�€¡€�‘‘€€€‘€€€€€‘‘�€€}€€€€€‘€€}}}‘€€€}}}}}}}}}}}}}}ww}www}wßúß�wwžâúÿþõüþÙ†wwww}Ç÷ßvvvvvpvvvvvupvvvvuvvvvuvpoooouoopuuuoooooloupooootlloollooltlltllllllollCCCtlCCCClCCCCCCtçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ99!!!!!!!!! ! ! !   oØüÿþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþÿþþþþÿþþÿþþþþþþþúÕ~}}}}}}}}}}}}}}€}}}}}�‘}~�}€€‘€€€�€�‘€€€��€‘‘€‘‘‘‘€�‘‘‘‘‘¡‘‘‘‘‘‘€‘¡‘¡‘‘‘èÿÿÿý¬¡‘‘‘‘‘‘‘¡‘‘€‘‘‘¤‘‘¡‘‘‘‘‘¡¡¤€‘‘‘‘‘‘‘‘¡‘¡¡‘�‘‘‘‘‘¡¡‘‘¡¤‘‘‘‘‘‘¡‘‘‘‘¤‘‘¡‘¤‘€‘‘‘‘‘‘‘€‘¡‘¤‘¤÷ÿô’‘‘�‘‘‘‘‘‘��‘‘‘‘‘‘‘‘€€€€€€€}}€€}€}}}€}}}}‘}€}ww}}}}}}}}}}}}wœüâ}w˜ßüýüüúüþÿþâ†vw}wwÞ÷ÇwvwwvvvvvvvuvvvpppvoovvpvvvpoouvovpouvvoutouoouolououoltlulltlltlllCClCCllCCtCtlCCCCCCCCÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!!! !!!!!!    pÖýÿÿþþÿÿþÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ}}}}}}}€}}}}}}€}�€€€€}€�‘�‘‘�€€‘‘‘‘€€}€‘‘€€‘€€‘€‘‘€‘‘‘‘€‘¡‘€€‘‘‘‘‘èÿÿÿý¬¡‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘€¡¤¤€¡¡‘¡‘¡¤‘‘‘¤‘‘‘‘‘¡‘‘‘‘¡¡‘‘‘‘‘‘‘¤¤‘‘‘‘€‘¡‘‘¤¤‘‘‘‘‘�€‘¡¡‘€�‘‘€‘‘‘ÙþþÓ‘‘‘€€�‘‘‘��€‘‘�€��‘�‘‘‘‘€}}€€}}€€}}}}}}}}}€}w}}}w}}}}www}}}àúž}œòüéל˜˜œÊâúþâ†wwvv�ñè�wvvvvvpvvvvvvvvvvvpupuvvvvupuppuvuuuooouuupluutloulloClllooltCooltlltllllCtlCllCClltCCƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ9!9ÃþÿÿþÈ9!!!!!!!!! ! ! !   pØþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþþþúÓ}}}}}}€}}}}~}}}€€}}}€€€~€€€€€€€€¡€€~‘‘‘€‘€‘‘‘€�‘€‘‘€‘€‘‘‘‘‘�‘‘‘‘èÿÿÿý¬‘‘‘‘‘€‘‘‘‘‘‘‘¡‘€‘¡‘¡¡‘�‘‘‘¤¡¡‘‘‘‘¡‘‘‘¤‘‘‘‘‘‘‘‘‘‘¡‘‘¡‘¡¡‘‘‘‘�‘‘‘‘’‘�‘‘‘‘‘��¤¡‘‘‘‘‘€‘‘€šúÿô�‘‘€‘€€‘€�‘€��‘�‘€‘€€€€€€}€}€}€€}}}}}}}}}€w}}}w}}€w}}}}}}™úà™÷ú×�wwwwww}œèüßwvwvw×÷žvvvpppvvvvvvvppvvvvpupppvuupuuovoupouoopuooooooouolooltllotltltlllllolCllClltCClClllCtáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!9!ÂþÿÿþÈ9!!!!!!!!! !   pØþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþÿþþÿþþþþþþþúÓ}}}}}}w}}}}€€€}}}}}}}}€‘€}}€}}}€}‘€€¡‘‘‘‘€€‘‘‘‘€‘‘‘¡‘‘‘¡‘€‘‘¡‘¡¡¡¤èÿÿÿý¬¡¡‘‘‘‘‘‘‘‘‘‘¡‘‘‘¡¤‘€‘‘€‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘¡‘‘‘‘¤‘‘‘‘¡‘‘‘‘‘‘‘�‘¡¡‘‘‘‘‘‘‘€¡‘‘‘¤‘‘‘‘‘‘‘‘‘€‘‘€‘ÙÿþÒ€€€€‘‘‘€€€�€€€}€�‘‘€€}}}€€}}€}}}€}}}€}}}}}}€}}}w}}}ww}Êüžßý×}vvwv}wvvw˜èúÇwwvv˜òßwvvvvvvvvvvvvpopvpvvvvuvupvvooopooouuolouuouoouuooltllotlolllCCltltollCCCCCCtCCCCClCCÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!! ! !!! ! !!     pØþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþÿþþþÿþþþþþþþú¬}}}€}}}}}}}}}}}}}}€�}€‘}}€€€‘‘‘‘€€€€�‘�€��‘‘‘€€��‘‘�€�€‘‘€‘¡‘€‘‘‘‘èÿÿÿýÒ‘‘¡‘€‘‘‘‘¤‘‘¡‘‘‘‘‘‘‘¡¡‘¤‘‘¡‘‘‘‘‘¤‘‘‘¤¡‘‘‘‘‘‘‘¤¤‘�‘‘‘‘’‘‘‘‘‘‘‘¡‘‘‘‘‘‘¤‘‘‘‘‘€�‘€€‘‘‘‘‘‘¡¡¤úÿõ¤‘€€‘€�€‘‘‘‘‘‘�€�€€€€�€‘}}}}€€}}}}}}w}}}}}}}}}€}}}ww}w}}wßú†™úõ�}ww}vw}}wwwœ÷è†vvvwñè}vvvvvvvvvvvvpppvvuuuuupovvuopupopopvvouuoluplllluuuolllltltlttltlCCClttCCCCtlCCCCCCzòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!9ÃþÿÿþÆ9!9!!! ! !! !!  oÕþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþþþÿþþþþþýþúÓ}}}}}€}}}}}}}}}€}}€€}}€€€€€€‘€€€€€‘€‘€‘€~€€‘‘€‘€€‘‘‘��‘‘‘‘‘�€‘‘‘‘èÿÿÿýÒ‘‘‘‘‘‘‘‘‘‘‘‘¤€‘‘‘‘‘‘‘‘‘‘‘‘‘€’¡¤‘‘¤‘‘¡¤‘¤‘‘‘‘‘¡‘‘‘’‘‘¡¡‘‘‘‘‘‘‘‘‘�‘‘‘‘‘‘‘‘‘‘‘�‘�‘‘‘€€‘‘‘‘‘Ùÿþב�‘€‘€€€¤€€€‘€€€�€}€€‘}‘€‘��€}}€}}}}}}}}}w}ww}}w}}}}}w}ww}w}âõÒý×www}wvvww}vvw×úœvwwwßñ˜vvvvvvuvvvvvvvuupvppvvulvplppvpoouoooopoutoooouuooooloooolllClCClCCtClllCCClCCCtCCtÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ9!9ÃþÿÿþÆ9!!!!! !!!!!  pÕýÿÿþþþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþÿþþÿþÿþþþþþþþú¬�}}}}€€}}}}}}}}}}}€}}€}}�€�}€€‘�€}€€‘‘‘€€€‘€€‘‘€€‘€‘‘‘‘‘‘¡€�€‘‘‘‘‘èÿÿÿýÒ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘¡‘‘‘‘‘‘‘€‘‘‘€¡¡¡‘‘¡¡‘‘¡¡‘‘‘€‘€‘‘‘¡‘‘‘‘¤‘‘‘‘‘‘‘€€‘‘‘‘€‘‘‘€‘‘‘‘‘‘‘‘‘€€€‘‘‘�§ûÿõ¤‘‘€€‘‘‘€€€€€€€€}€€€€€€}€}}}}}}}}}}}}}www}}}www}w}}wèèâú™}vv}wvwwvwvwwœòÞwvvw×÷œwvvvwppvvuvvvvppvvvvuvuuuuuvupuuuuooolvuouoluuuooolllulllltlCllCCCClllCCCttCCtllCC–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ9!!!! !9!! !! ! !  !oØþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþÿþþþþÿþþþþþþþúÔ‘}}}}}}}w}€}}}}}}}}}}}}}}}}�‘€€‘€€‘€€€¡‘}€�€‘‘‘�‘€€‘€€‘‘‘�€€�€‘‘‘‘‘‘�èÿÿÿýÒ€‘‘‘‘�‘‘�¡¡¤€€‘‘‘‘‘‘‘¡’¤‘�‘‘¤‘‘€‘‘‘¤‘�‘‘‘‘‘‘‘‘¤‘¡‘‘€€‘‘‘�‘‘‘€‘‘‘‘‘‘€€€€�‘‘‘‘‘‘€€‘€€€‘€‘ÚÿþÙ�€€‘€€€‘€‘‘‘‘‘‘�‘€}€�‘‘}}}}}}}}}}}}}}}}w}w}}}}}w}ww}ww}ww}ñè†÷õ�wwvw�Çœvvwwv†ññwvvvÊ÷žvvvvwvwvvvvvvpvvvpvvvvpvvoouuoopuoouuouuoollllllllolClClouuoltlllClllllutlllCClCCxñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÈ99! !!!!! ! !! pÕþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæx!œèþþþþþþþþÿþÿþþþþþþþü¬}w}}w}}}}}}}}}}}}}}}€€‘€}}}}}}}}€‘€}€€€€€€€�€€‘€‘‘€‘‘‘€€€‘€‘‘‘‘�‘‘€‘�€‘èÿÿÿý§‘‘‘€‘€‘‘€¤‘‘€‘‘‘‘‘‘‘¡‘€¡‘‘’‘‘‘’‘¤¤‘‘‘‘‘‘‘‘‘¡¤€‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘��‘‘¡¡‘‘‘‘€‘‘‘‘‘‘‘‘‘‘�™÷ÿû𑀑‘€€€€‘€€€€€}€€�€€€}€}}}}€€}}}}}}}}}www}}w}}}}w}éô�úò}v}w}ßþúžwvw}wwßô†vvw×÷�vvvvvvvvuvvvwvvvppuppoppuuupupvuooovpuoltoooolltloottuulCCllltlCllCtlCClCClCCCtCtÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ!!!!9! ! !    pÕþþþÿÿþþþÿÿÿÿÿÿÿÿÿÿÿæxœèþþþþþþþþÿþÿþþþþþþþúÓŽw}}}}}}}}}}}}}}}}}€}}}}}€€€}}€}‘€€}~€€��‘€€‘‘}€‘‘‘�‘‘‘€€‘‘‘‘€‘‘‘‘��‘èÿÿÿý§‘‘‘€‘€‘‘‘‘‘‘¤‘‘‘‘‘‘‘‘‘‘�‘‘¡€‘‘¡€¡¡‘‘‘‘‘‘‘‘‘‘¡€‘‘‘�‘‘‘‘€‘¡‘‘‘‘‘‘€‘‘‘�‘‘‘‘‘‘€‘‘‘‘€‘‘¡‘‘€‘�€€×þÿà€€€€€��€€€€‘€€}€€€€}€}}}}}}}w}}}}}}}}}}}}w}}ww}}}w}wâ÷�÷òw}wèÿþÌwvvwwwßò�wvwÞ÷œvvvvvvvvpvvuvpuuuppuppvoppuuouvuuoopoooooluololllttoolltooltlltlttltCClttCCCtCClƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ9!!!9! !! !  pÕýþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæx!œèþÿþþÿþþþþþÿþþþþþþþúÓ~w}}w}}€}€}}~€}€€}}}€}€}€‘€‘€€}}~€€‘€€‘‘€€€�€‘‘€‘‘‘‘‘‘‘‘€‘‘‘‘€‘èÿÿÿý§€€€‘‘¡¤‘‘‘‘’¤‘‘‘‘¡‘‘‘¡‘€€‘€‘¡‘�‘‘€‘‘‘�‘‘‘‘‘‘€‘¤‘‘‘‘€€€‘‘‘’‘‘‘‘‘¡¡‘€‘€€‘€‘‘€‘‘‘‘‘‘‘€€€‘‘�¤÷ÿû™€€‘€‘�€�‘€}}}}}€}€}w€}w}}}}}w}w}}wwww}}}w}}}}}wÞü™âúœwww}Ê÷è˜vwvvvwâèw}vwâò˜vvvvuvvvvvvppoppovvuovvluvuopupouuuuolluuullttlllouollltooolllotlllllltllCCtlCAuçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!9ÂþÿÿþÆ9! !!    oØþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþÿþÿþþþþÿÿþþþþþþþü¬}}}}w}}wwwww}}}}}}}w}}}}€‘€€}}}}}}}€€€‘€€��‘‘€€€~‘‘¡‘‘�€€‘€‘‘‘€‘‘‘€‘‘‘‘¤éÿÿÿý¬‘‘‘�€€‘‘€‘¡‘€€‘‘¤‘€‘‘‘‘‘‘€¡‘‘€€‘€‘‘‘‘¤‘‘¡¡‘‘‘‘‘¡‘‘‘¤’€‘€�‘¡‘‘‘¤‘‘�‘‘‘‘‘€‘€‘‘€}€€‘‘‘€€‘€€‘Óþÿè‘€‘‘‘€€‘€}}‘€‘‘€€}}}}}}}}}}}}}}}}}§Ù™}}wwwwwvw}}wžüÊÇýÊ}wwwvw}}v}wwvèâwww†òñ}vvvvuvvvvuppvwvuoopvoouuuoouvoolllloollouolouuuuollltouullllltCltttlCtCCCCCCACtÆýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ$!!ÃþÿÿþÆ9!!!! ! !oØþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæx!œèþþÿþþþþÿÿþÿþþþþþþþúÕ�}}}}}}}}}}}}€}}}}}}}€}}}‘€€�‘€}}€€€€‘}€€€‘€€€€€‘‘€€�‘€‘�‘€€‘‘èÿÿÿý§‘‘‘‘¡€�‘‘€‘‘‘‘�€‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘€‘‘‘‘‘‘‘‘‘‘‘‘‘€�‘€€‘¤‘‘‘€€�€‘‘‘€€‘‘€‘‘‘‘‘€‘�ôÿýÒ€‘‘€‘}€€}}�€}€€�€}€€}}}}}}}}}}�ÇèýþÙ}}w}}}}w}}}ww�÷ñ˜òô�wwwvwwvvwwvvž÷Êvwvž÷ÞwvvvvvvvvvpuvopvouvvvooovuouvououuovpuouuoouoloouttllllltlllCCttlllCCCClCtltCllƒòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ9!!ÂþÿÿþÆ9!!!! !   pØýÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþþþþþþÿÿþÿþþþþþþþúÓ~}ww}}}}}}}}}}}}}}}}}€}€}}€€€€€€€€€€€}�€€‘‘€€€�€‘‘�‘€‘‘‘‘‘‘€€‘èÿÿÿýÒ‘‘‘‘¡�‘‘‘‘‘‘‘‘‘‘‘‘‘�‘‘‘�‘‘‘‘‘‘’€‘¡€¤‘€‘‘‘¡�‘‘‘‘‘�€‘‘‘‘‘‘‘‘‘€‘‘��‘‘�‘‘‘‘‘€€�‘‘‘‘€�‘€€�‘€‘‘‘€Òþÿô‘€€€‘€€€}}€€}}€€}}}}}}}}�×òþÿÿÿâ}}w}}}w}}}ww}wÙúž×üÞ}wvvvwwvvwv{âñ†wvwâ÷˜vwvvvvvvvovvvpppvouvuuuppoovuuuovuovuouuuooooolotlulllttlolltlllllltClCltCllClußþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ9! !!    pØþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþÿþþÿþþÿþþÿþþþþþþþú¬}}w}w}}}}€€}}}}}w}}}€€}}}€�€}}}}}}‘‘�‘‘€€}€‘€€€€‘€‘€�‘�‘€‘‘‘€‘€€�¤èÿÿÿýÒ‘‘‘€‘€‘‘‘‘‘‘‘€‘‘‘‘‘‘¤‘‘�‘‘‘‘‘‘‘€‘¡‘€�‘‘�€‘€€€€‘�‘‘‘‘‘‘‘‘€‘‘‘€€‘‘‘~€�€‘€€‘‘‘‘€€‘€€€‘‘€�’õÿþÒ}‘‘€€€}€‘€}}}€}w}}}}}}}‘}}}}šÙ÷þÿþúýÿè}w}w}}}vwwwwwww�òâ�âúÊ}vvw}ww}w{Þ÷Çvwv�÷ßwvvuvvwvvpppvvvvvvpopvpvpoouwuoopuuoulouuooullpuulltllClltuotlCCCtttllCtolCCCCC–üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!9ÃþÿÿþÆ! !  !vÕþþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæx$�èÿþþÿþþþþþÿÿþþþþþþþúÔ�}}ww}}}}}€}}}}€}}}}}€}}}€€€}€}€€€��€‘‘‘€��€‘€}€}€€€‘‘€‘‘‘‘‘èÿÿÿýÒ‘‘‘€‘‘€€€‘¤‘€‘‘‘€‘‘‘€�‘’‘¤¡‘‘‘‘¤‘‘€�‘‘‘¡¡‘‘‘‘‘‘’¤‘�€‘‘‘€‘‘‘‘‘‘€€‘‘�€‘‘‘‘�€€‘€€‘’‘€€€€žþÿõ�‘€€}€€��‘}}}€}}€}}}€}€€�Ù÷þÿÿúÙ™àÿô�}}wwwwwwww}}w}ww}Êúטñü߆vwvwvv†ßúßwvw˜ñõ˜wvvpvpvvpovouwuuuouvÌç�ypuvpoououltpoloooltootolCtololluotllotClCtCCCtClCCtlCCxñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ99!ÂþÿÿþÆ!! !!!    |ØþÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþÿÿþþÿÿþÿþþþþþþþúÕ‘w}}}}ww}}}}}}}}}}}}€}}}}}}€€}}}€€}€��€‘€€€€€€€‘�‘‘€€€‘‘€�€�‘‘‘èÿÿÿýÒ‘€€‘‘��‘‘‘‘�€�‘‘‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘‘‘‘‘‘‘‘‘€€‘‘‘‘€‘‘‘�‘‘‘�‘‘€‘€‘‘‘€€‘‘‘€�€‘‘€‘‘‘€€€€‘€�€€€�‘‘èÿþÙ}€�‘€€€}}€}}}}}}}}˜Ù÷þÿÿûÙ˜w×þñ�}}}}}}}wwww}wwww}âúÊ�âüòßǘœÊÞ÷úÌ}vv†âúÇwvvvuvvpvvvvupvpvvvu†÷ÿþç˜uvpouuuplopooouuuultooCouultoluolltllCtlCtlClCCCCllCtÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÃþÿÿþÆ!  oØýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþþþÿþÿþÿÿþÿþþþþþþþú¬}}}}ww}}}}ww}}}}}}}€}}€}}}}}}€€€€€€€€€€€‘€‘‘€‘‘€€€‘€€�€€‘‘èÿÿÿý§€€€�‘€‘‘‘‘‘€�€‘€‘‘‘‘‘‘‘‘‘€‘‘‘€€¤‘‘‘�‘€‘¤‘€€�‘‘‘€€¡‘€€‘‘‘‘€�‘‘‘‘‘€‘‘€‘€€‘€‘‘‘€€€€‘€�€‘‘€€€€€€§ýÿ÷�€€€€€‘}}}}}}}}€}}}}}�×÷þÿÿúß™}w}wÊþé�}ww}}ww}ww}}ww}www†âúÞ�Êôýýúûýþñžvww˜èúÌwvvvvvvvuvvvvuupvuvpv›ýýþÿüÌ{popuououuouoplpulloolluullolttltCltClllllCCCCCtCCC›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ!!!ÂþÿÿþÆ      pÕþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþÿþÿÿþþÿÿþÿþþþþþþþú¬~}www}}}}}}}€€}}}}}}w€}‘€€}}€€}}}€}}}}}€€}€�€‘€€‘€€‘‘‘‘‘€‘€€‘€‘èÿÿÿý§‘‘‘‘‘‘¡‘‘‘‘‘‘‘‘‘‘‘�€‘‘€€€‘‘‘‘‘€‘€€‘€�€‘€¡¤‘‘‘‘‘‘�‘€€‘€€€‘€‘€€€€€€€‘‘¡‘€‘’‘‘€€€�€‘€€‘€‘‘‘èÿÿÙ€€}}‘}w}€€}€}}}}}}}™Ù÷þÿÿúߘww}w}Òýè}w}wwwwww}www}wvwww†ßüñÇ�™Ê×Þʘwvv�Ì÷÷ÊwuvvvvvvvvvvvupppvvuluÉü�çÿÿþñ›upolooppuuuolouuuouotllltlllCltllltttltCltlCltCtxçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ9!!ÃþÿÿþÆ   !vØþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx�èÿþþÿÿþÿþþÿÿþþýýþþþúÕ~}}}}}ww}}}}ww}}}}}}w}}}}€ww}}}}€}}}€€}€�€€}€‘€‘€}}�€€€€€€‘‘‘‘€€‘èÿÿÿý§‘‘€‘‘‘€€€€€€‘‘‘��€€‘‘€‘‘‘‘‘‘‘€‘‘’¤‘‘€‘‘€‘€‘‘‘‘‘‘¡‘‘‘¤‘€€€€€‘‘‘‘‘€€‘‘‘‘€‘€€€€‘‘‘€€‘‘€€žüÿûš€€€€€€€}}}}}€€�×÷þÿÿûà™w}}}v}}žýè}}ww}}}}www}wvvwwvwÊñüò̘†}w†�ß÷üñœwvvvuvvvvvwvvpvvvppvvpwßò†Þÿÿÿÿýß{ouvoouwuollotllollllouttltlClCCtllClCtCCClClCtÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ    oÕþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþþÿþÿÿÿþÿÿþþþþþþþú¬~}}}w}}}}}}}}}}}}w}}}}}}}}}}}}€}}}€€€}�‘}‘€€€€€€‘€€€‘�€‘€€‘€‘�‘èÿÿÿýÒ€‘€€�‘‘‘�€€‘‘‘‘€‘‘‘‘€‘‘‘€‘‘‘‘€�‘‘�‘’€€€‘‘‘€‘‘€€‘‘‘�‘‘€‘‘‘‘‘€�‘‘€‘‘€‘€€‘€€€‘‘€€‘€€‘€€‘€€€àÿÿ €}‘€€}}€}}}}}}}�×õþÿÿûà™}}}}}}}}}œýè}}}ww}w}wwvwwvww}wwwwÇñúúõññôüþüñÇwvvvvvvvpvvvvppvvpppppppwâè{Ìÿÿÿÿÿÿ÷ÇuptouoouutottlollllloltltllttllltltCltClCCtC–úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÂþÿÿþÆ   oÕþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿÿÿþþÿÿÿþÿÿþþþþþþþú¬Ž}}}}}}}}}}}}}}}}}}}}}}}}€}€}}}�€}�€}}‘‘€€€€‘€€€‘‘€€€€‘€€€€€€èÿÿÿý§€‘€€€€‘€‘��‘‘‘€€‘‘�€€‘‘‘€‘‘‘‘€‘‘€€‘‘€�€‘‘‘‘‘€€‘€€€€‘‘‘‘‘‘€€‘‘€€€€€‘€‘‘�€€¤‘€�€€€‘€€€‘}šüÿüš€€€}}€€}}}}‘€}}}�×÷þÿÿüà™}}}w}}}}}}žýè€ww}ww}}wwvwwwwv}}}wvvvw›ÊÞâèâßÌœwvvvvvvwvvvvvuuupvuuupuuouyèâvÉÿÿÿÿÿÿÿþç”ooulluouutootullttllllllltllltllttCCloCCCyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!! Âþÿÿþà   oÕþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþÿþÿþÿÿþþÿÿþþýþþþýúÓ~w}wvw}}}}}}}}}}}w}}w}}}€}}€�}}€€€‘�‘‘€€€‘‘�€}€}}€‘¡¡�‘‘‘‘‘‘‘èÿÿÿý§‘‘€‘€‘‘€€€€‘‘’‘‘¡‘€‘‘€€‘‘‘‘€‘‘‘‘‘‘‘€€‘‘€€€€‘€‘€€€€�‘€}€¡‘€‘‘�€‘€‘��€€€€€€�‘‘€Ùÿÿè‘€}}€‘�}}€}™Ùõþÿÿûà™}}}}}}}}ww}wwžýèv}}}w}wwv}}wvw}}wvvvwwwwvvwvwwvv}wvvvwvvvvuuuvvvvvvuvvpvvuvoyñßvÉþÿÿÿÿÿÿÿÿúÌ{ulllloloolloltlllollClttlCtltCllCCtllttÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!!!ÃþÿÿþÃ!    !pØýÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæyœèþÿÿþþÿþÿÿþÿþýþþýþþúÕŽww}w}www}}}}ww}}}}}}}}}}}}}}}}}}}}€}}}€}‘}€}€€}€€€€€€€€€€�èÿÿÿýÒ‘€‘¤‘‘€€‘‘‘‘�€€€€��‘‘€€‘‘€€‘€‘‘‘‘‘€‘‘‘€�€‘‘€�‘�‘‘‘‘‘‘€€‘€�‘€€€€‘€‘‘‘€�€‘‘€€€€€€€}€€‘�€š÷ÿýÒ‘‘�}}€€}}€}}�×÷þÿÿüà™}}}}}}}}ww}}}w}}œýèwwwwwwwwww}vw}w}}vvvvwwvwwvvwwvvvvvvvvvvvvvvwvvvvvvppvvvvpuyñÞuÇþÿÿÿÿÿÿÿÿÿþò›uotuullolollttttuulltlttltCCltttCCCtl”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ! Âþÿÿþà    pØýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy$œèþÿþÿÿþþÿÿÿÿþýþþýýþúÓwww}}ww}}}w}w}}}}}}}}}}}}}}}}}}€}€€}}}}}}}€€}€€€€€€€€€€€€�€èÿÿÿýÒ‘�‘‘‘‘€‘€�‘‘‘�€€‘‘€€€€€‘‘‘€‘‘€‘‘‘‘�‘‘�‘‘€‘‘€�‘‘€€‘€€�‘€‘‘€€‘‘€‘‘€‘€‘‘€€€‘€€}€€€€€€€Ùþÿô¤€€}}}€€}}}}�×õþÿÿûâ™}}}w}}}}}w}}}ww}œýâ}ww}www}}wwvwww}}wwvvvvwvvvvvwvvvvvvvvvvvvwvvvvvvvvvvpvuuvuuyñÊp�þÿÿÿÿÿÿÿÿÿÿÿýÏ{ooltluooolltoltttltlolltlClltlCCCtxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà      pØýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþÿþÿþþÿÿÿÿþþýþþþýúÓw}ww}}}}wwww}}w}}}}}}}}}}}w€}}€€}}}}}}‘€}}€€€€€€�‘€€€€‘‘€‘€‘€€€�‘‘‘èÿÿÿýÒ‘‘€€€‘‘‘€�€€‘‘€‘€€€‘�‘�‘¤‘‘‘€‘‘‘€‘‘€‘‘€€�€€�€€€�€‘‘€€�€‘‘€€€€‘�€‘€€€�€€€€}€€€€}€€�÷ÿþ×}}}}}‘€€}}�×÷þÿÿúßž}}}}w}}}}w}}}}w}}žýâ}}}w}ww}}}}vw}wvwvvw}wwv}wvwwwwvwvvvvvvvvpvvvpvuovuupuvuuupuoyñÇo�þÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÆytouoootluutllooulltttltCCClCCtCtÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÂþÿÿþÆ   pÖþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx$œèÿþÿþþÿÿÿÿþÿþýþþþþýú¬wvvw}}}}}}}w}}w}}}}}}}}}}}}}}}}}}}}}}€€€€}}}€‘€}}}}€�‘€€€‘€€‘‘‘�èÿÿÿý§€€�€€€‘‘�€€€€‘‘‘‘€€€‘‘‘€‘€�€‘‘‘‘‘‘‘‘€‘‘‘�‘€‘‘�€�‘€€‘‘‘€€€‘‘€€‘€‘}}�‘‘‘€€}€€€€Óþÿ÷™}€€}}}€™Ùõþÿþûà™}}w}}ww}€}}}wžýâ}ww}}}}w}wvvw}}wwvvvvvvvwwwv}vvvvvvppvuvvpvpvpvvvvpvvppvpvvvu{òÇu›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿþá”votltoltlCClClllCCtluoltllltlC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  pØýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿæyœèÿþÿþÿþÿþÿÿÿþýþþþþþúÕ�}ww}}ww}}www}}}}}w}}}}}}}}}€€}}}}€}}}€}}€€€€}€�€€€�€€‘€€}€èÿÿÿý§€€€€‘�€€€€�‘€€�€‘‘€€~‘€’€€�‘€€€‘€‘€€‘‘‘€€‘€€‘‘‘€‘€€€€€‘‘€€‘€€‘€€€€€€‘€€€�‘€€}}€€��èÿþà€}}€}}�×÷þÿÿúß™}}}}}ww}}}}}w}}ww}wwžýâ}}vw}www}wvw}wwwv}wwwwvwvvwvvvvwvvvvvvvvvvvvuvvvvvpvuuupupvvu†ò�u�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÌytottotlltouutttllClCtllClCCuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÂþÿÿþÃ! pØýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿÿÿÿþÿÿþÿþÿþýýýýþýúÕ‘}w}}}ww}}ww}}}}}}}w}}}}}}€€}}}}€€}}}}€}€}}€€€€}€}€€€€}€€€}‘€€èÿÿÿý§‘€}€€€‘‘€€‘€€€€€€€}€‘€‘‘€¡€€‘‘€€€‘�€€�‘‘�€€‘€‘¤‘‘€€€‘€€€‘€€€‘€€€€€‘€}€€€€€€€‘}€}wžüÿûž}}™Ù÷þÿþúÙ™}}}}}}}w}w}}w}€}w}}}www}žýâ}}}wwvwwwwwwwwvwwwwwvvvwwvvwvwvvvvwwvvwvvvwvpvupvvpvpvuuovuup†ñ›uÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñ›uotutlltooolllutCCtCltCCClÇüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pÕþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþþÿÿÿÿþÿÿÿýýýýþþþúÓ~w}}}wwv}}}}}}www}}w}}w}}}}}}}}€€}}}}}}€}}}}}}€€‘�}}}}€€}€��‘€}€‘‘‘èÿÿÿýÒ‘€€�€€€‘€�€‘�€‘€‘�€€‘€‘€‘‘¡€€‘¡¤€€€€€‘�€€€€€�‘‘��}€‘‘€€€‘€}€�€}}€€€€�€��}}}‘àÿÿñ�€™Òâüþÿÿ÷Ù˜}}}€}}}}}}}ww}w}}}ww}}}}}žýßw}}}}w}wvww}wvvvvw}wvvv}vvwwvuvvvvvvvvvvvvvvvvvuuuvuupvvuuoup”ò˜wÇþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÞ{toltltlltCCCtlotltCltlCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà    qÚýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿÿþÿÿþÿþÿÿÿþýþýþýþúÕ�wvw}}}}wwww}}ww}}}}}}}}w}}w}€}€€}€}}}€}}€€}}}€€�€}}}}€€€�èÿÿÿý§‘‘‘€}€}}€‘€€‘‘€‘€‘‘‘€‘��€‘���€€‘€€€‘‘€€€€€‘‘‘€€‘€�‘€€€€‘}€‘€€€€€‘}€‘}}€€€€€™÷ÿþßÙõþÿÿþõÙ¤€}}}}}}}}}w}}}}w}}w}}w}}œýß}}wvvv}wwwwvwvw}vvwvvvw}vwvvvvwwwwvvvvuvvvvvvpuvupvuvvvuuvvpu›ò†vÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòÅutltolltltlltCCCllCtCußþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ! ÂþÿÿþÆ pØþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿÿþÿÿÿÿÿÿÿÿýýþþýýþúÓ~vwww}}}}}}}}}}}}}}w}}}}}}}}}}}}}}€€}}}}}€}�€€€�€€}€€€€€€€€èÿÿÿý§€€€€€€€€}€€€€‘‘‘€€€€€€€‘€‘�€€‘‘€�€€€€‘€‘€‘‘€€€‘�€‘€€€€€€€€‘€€€€}€€‘€€}€€}€€Ùþÿþþÿÿþõ×™}}}}}}}}}}}}}}}w}www}}}}v}wžýßwwww}vw}w}wvw}wwvvwwvvvwvvvvvvvvvwvvvvuvvvvvpppuupvpvupvupuou�ò†uÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüß”ulttltllCltCCtCCCltÆüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÂþÿÿþÆ   pØþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæyœèÿþÿþþÿÿÿÿÿÿþýýþýýýúÓ~v}}w}}}w}}}}}}}w}w}}}}}}}}}}}}}}}}}}}}}€}}}}}€€€}}}€€‘€€€€€€èÿÿÿýÒ€}€‘�‘‘}€€€‘€€€�€‘€€€€‘€‘€€‘€‘€€‘‘€€€€€‘€�‘}€‘€€€€€€€€}€€w}}}}‘èÿÿþûèÊ�}}}}}}}}}}}}}}w}w}}}w}}wwwœýß}www}ww}ww}w}wwwwwvwvvvvvv}wvvvvvvvvvppvvvvvuvvpuuvpppupvuoupÇò{uÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÇytotoltlCllCCCCCC”òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!Âþÿÿþà   pÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿÿÿþÿÿþÿÿÿÿþýýþýýýú¬�w}}ww}}vwwwwwwv}}ww}}www}}}w}ww}}}w}}‘€}}}}}}}€€€}€€€‘���}€�‘€�‘‘‘èÿÿÿýÒ€€€‘€}�‘€€�‘‘€€‘€‘‘€€€‘€€€�‘€‘€€‘‘‘‘€}}€€��‘‘‘€€€€�€€��}}}€€}€‘‘}‘}™èôÙž€€}}}}}}}}w}ww}}}}wwww}ww}w}}œýßwww}wvvvvwww}vwvvvvvvvvw}wwwvvvvvvvvuvvwyvvvpvvuupvvuuuoovvvvÉò{oÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþç”tlltllClttttltuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÂþÿÿþÆ!    pÕþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþÿÿÿÿÿÿÿÿÿýýýýþýýúÓ~vwwv}}ww}}w}}}w}}ww}}}w}}}}}}}}}}}}}}}}}}}}€}€}}}}}}}€}}€}€€�èÿÿÿý§€‘‘�€‘€‘€€€‘€‘�€€€�€}}€€‘€‘‘€€€‘‘€�€€€€‘€€‘‘€}}€�€€}}}�}€}}}}}}}w}}wwwwwww}}}w}}}wwwžýÞw}wwwvww}wvwvwwwvvwwwvvvwvvvvvvvvvvvvvuvvvvuvvuvvppupuppuvuouÊò{oÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÌytllltCCCttttÉýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pØþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿþÿÿÿþÿÿÿÿÿýþýþýýýúÓ~vwwv}ww}w}}ww}}ww}}}}}}}}}}}}}}}}}}}}}}}}}}}‘€}€}}}€}}€}}€€€�èÿÿÿý§‘€€€€€€‘€€€€€€€€�€€€€€€€€€€‘€€€€€‘€€�€€€€�€€€€‘€€�€‘€}�}}}€}}}}€€w}}}}}}}w}}}w}}ww}}}}w}ww}}wwwwžüÞw}wwwwwwwvwwv}wwwvwwwvvwvvvvvvvvvvvvvvuvvvuvvvuvvvuupuppouuuoÌòyuÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþç–uCltlCltlC”÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx!$œèÿÿþÿÿÿÿÿÿÿÿþýýýýýýúÕ~wv}}wwww}}}}ww}}}}}}}}}€}}}}}}}}}}www}€}}}w€€}€€}}€€€}}€€}€}€€€èÿÿÿýž}€}‘�€�€‘‘€€€€€�}€€‘‘‘‘‘‘€€€��€€€�€€€€€€‘�€€€€€€}€€}€}}}}}}}}}‘€€}w}}}}}}}ww}}w}w}}}w}}www}ww}www}wwžüÞ}wwwwwvvvvwwvwwwvwvv}wvwvvvvvvvwwvvvppvuvpuvuvupwvvvpuvoluuuoÌòyuÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÞzlltCCtCxçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ!Âþÿÿþà   oØýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5œèÿÿÿÿÿÿÿÿÿÿÿþýýýýýýú¬}www}}}}wwv}wwww}ww}wvww}}}w}}}}ww}}}w}}}}}}}}w}}}}}€€}}€�€€�€€‘èÿÿÿýÒ€€}€��€€�‘€€}}€�‘‘}€‘€€‘€€‘€€€€€€‘€€‘‘€€€€€€�€€�}}�€�€}}}}}}}}}}}}}}}}ww}}}ww}w}}vww}w}}žüÞ}}}}}wvvvv}wvvvvpvvvwwvwvwvuuupvvvupvvpvvpuuuuuvuoupupvoopuuuÞñyußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÇylltltÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  Âþÿÿþà   !|Øýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy75$75œèÿþÿÿÿÿÿÿþÿÿýýýýýþýúÓ~vvvwwwww}ww}}}}ww}}}ww}}}}}ww}}}}}}}}}}}}}€}}}}}}€}€�èÿÿÿý§}���€€€‘‘€€€‘€‘€€€€€€€‘€€€‘‘‘€€€€€€€}}}€}€}€}}}}}}}}}}}w}}}}w}}}}}}www}}}}ww}wwwv}wžüÞww}www}wwwwwvvvwvwvvvvwwvvwwwvvvvvpuvvuvvvuvpvuppuuuuupuupouuÞèyoßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá–ttC›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  Âþÿÿþà    vÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx7œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÕ�wvvvwwvv}ww}}}www}w}}w}}w}}}}}}}}}}}}}}}}€}}}}}}}}}}€}}}}�èÿÿÿý§€€}}€€€€€€‘‘€�€€€�€€€‘€€€€€€�€€€€�€€€€€€€}}€€€}}}€€}}}}}}}}}}w}}}}}}}}w}}}}}}w}}w}}}}}}}www}v}}žü×}wvwvwww}}wvvvwwwwvwvv}vvwwwvvvvvvpvppvvvvvvvvvuupvupvuuuuuuvßçuuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎzzñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèþÿÿÿÿÿÿÿþÿÿýýýýýýýúÕ�wvwv}}wvwww}}}}}wwwwwww}}}}}ww}}}}}}w}}}}}}}}}w}}€}}}}}€}}}}€‘èÿÿÿýž€€�€}€€}}‘}€€€€‘€€€€‘€}€€€€€‘‘}€€€}€€€€‘€€}}}‘}}}}}€}}}€}w}}}}}}}ww}}wwww}}w}w}}}www}}}}ÇýÌ}}wvv}vwv}wvvvvvvvwwvvvpvvvpvvvvvvvvvvvvvupuupvvvvvuuuupuvpuuáçuuçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà pØýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy$œèþÿÿÿÿÿÿÿÿÿÿýýýýýýýúÓ~vwww}wwvw}wwwww}}w}}w}w}}}wwww}}}ww}w}}}w}}}}}}}}}€€}}}}�}}}€}‘èÿÿÿýÒ€}€€�€}}}€€}€‘€€€‘€�€‘}€‘€€€€}€€€�€�€‘€}}}}}}}}}}€}€}}}w}}}}}€}}}}}www}}}}}}}}}}w}w}www}}wvwwÒý×wwvwv}wvwwvwvwwwvvvvvvvvvvvvvvvuvvpvvvvvupuuvuuuvpupuuvuuuupvââuuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà    vÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx7œèÿÿÿÿÿÿÿÿÿÿÿýýýþýýýúÓ}vwwwwwwv}wvw}wvw}}w}}}}}}}www}}}}ww}}w}}}€}}}}}}}}}}}}}}}}}}}}èÿÿÿýž€}€€€€}€‘€€€€�€€‘€€€€�€€€€}}�€€}}}}}}}}}}}}}}}}}}}}}}w}}}}}}}}}}www}}www}}}www}wwÇüÊw}vv}wwwwvvwvwwwvwwvwvvwvvvuvvwvvvpvvvvupvupvuvuuuuuupuuuvuuuáßyuñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5775œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÓ~wwvwvwwv}wvw}wwww}ww}}w}}}}ww}}}}w}}}}}}€}}}}}}}}}}}}}}}}}}€}}}€èÿÿÿýž€}€€€€€€€}€€€€‘‘€€€‘€€€€€€€‘€}}€€}‘}€}}}}w}}}}}}}w}}}w}ww}w}}}}}}wwww}}w}}w}wwww}wÇüÊw}vvwwvwvvwwwwvvvwwvvwvvvvuvvvvvvvvpvvupvvvvvupuuvvupuuouvuouçßyvñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà   oØþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæxœèÿÿÿÿÿÿÿþÿÿÿýýýýýýýúÓŽ}ww}vvwww}}}}w}wwww}w}}}}}}}}www}w}w}w}}}}w}}}}}}}}}}}}}}€€}}}€€€�âÿÿÿýž}€€‘€€‘€€€}€‘€€€€}}€€€‘‘€€}}}€€}}}€‘}}}}}€‘}€€€}}}}}}}}}ww}}}w}}}}}w}ww}w}wwwwvw}}}ww}}}wvw}Êü×}ww}vvvvwvwwvvvvpvvvvvvvvvvvvvvuuvvpuppuppvvuopuuuuuoupupuoouçÞuyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ! Âþÿÿþà  pÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy75œèÿÿÿÿÿÿÿÿÿÿÿýüýýýýý÷¬~wvv}wvw}wwwww}}vwwvw}w}ww}}ww}}}}}}}}w}}}}}}}}ww}}}}}}}}€}€}}}}€�èÿÿÿýÒ}}€‘}€€€€}}€€}€€}€}‘€€€}}€€€}}}}€}}}}€}}}}}ww}}}}}}}}w}w}}}}}}}}}}wwwwwwwwwwwwwÊüÊwwwvvwvv}vwvvvwvvwvvvvwvwwvvvvvvvvvvpupvvvvuuvvuuvpuuvuppuupvñÌu{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  vØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy775œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÓ~vvv}wwwwwwwvw}}w}}www}ww}}}ww}}}ww}}w}}}}}}}}}}}}}}}}}}}}}}}}}}�èÿÿÿý§}}€€€}}€}‘€}}€€‘€€}}}}€€€}€€€}}}€}}}}€}}}}}}}}}}}}}}w}}}}}}w}}}}}ww}}w}wwvw}w}}}wwwv}vvv}wwÊüÒwwvvwwvvwwvvvvvvwwwvvvvvwvvvvvvvvvvvpuppvvvuvppuuupupuupupuuyñÌu{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà   vØþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿæx5777œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÓvvvwwwvvwwwv}}w}}}}wwww}}}}ww}}}w}}w}}ww}}}}}}}}€€}}}}}}}€}}}}}}}�èÿÿÿýž}€€}}}}}€€€€}�€}}€}}€}€}}}}}€}}}}}}€€}€}}w}w}}}}}}w}}}}ww}}w}wv}}w}wwww}ww}wwwwwwvvwwvÊüÊwvwwwvwwwwvvvvvwwwwvvvvvwvvwvvvvuuvvvvpvvvuvvuupupoupuuuuuotyñÌu†÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx777œèÿþÿÿÿÿÿÿÿÿÿýýýýýýýú¬}}wvvwvvv}}w}}}vvw}w}vww}}}www}wvv}}w}}}}}}}}ww}€}w}}w€€}}}€}}}}}}èÿÿÿý§}}}€}}}}}€}€}€€}€€}}}}}}}}}}}€}}€€}}}}}}w}}}}}€}}}}}}}}}ww}}w}wwww}}}}}}ww}wwwwv}w}w}wwvÊýÒvvwwwwwwvvwwvvvvvvvvvvvvvvvvuvvvvvpvvvpvpuuvvuuuuppvpuouuuvu{ñÉu{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  qÕþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5$775557œèÿÿÿÿÿÿÿÿÿÿÿýüýýýýýú¬}wvvwwww}}wvwwwvwwww}www}}}ww}}}}}ww}}}}}ww}w}}}}w}}}w}}}}}}}}}}}€âÿÿÿüž}€€}}}}€€€}}€}}}}}€}}€€}€€}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}w}ww}}ww}}}wvwwwwwwwvvw×ýÇwvvvvvwwv}vwvwwvvvvvvvvvvvvvpuvuvvuvvvuvvpuuvvvvuuuuuuoooopu{òÊu{úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy57575777555œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýüú¬}vvvwvvw}wvwvvw}wwv}}}www}wwww}}ww}}}w}}}}ww}}}}}}w}}}}}}}}}}}}}}}}}}€èÿÿÿýž}}}€€}}}€}}}€}€€€€}€}}€€}}}}}}}}}}}}}}}}}}}}}wwww}w}}}}}w}}www}w}w}wvwwwwwwwvvwÞúÇwwvwwvvvwvvvvvwvpvyvvvvpuvvvppvvvvvuvvuvvupuuvuuuuouuouuuuuu{òÇuƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx57757775œèÿÿÿÿÿÿÿÿÿÿÿýýýýýýýúÒ}vvvvvvvwvv}vww}wwv}wwww}wv}}}}ww}}€ww}}}}}ww}}}}}}}}}}}}}}}}}€€}}èÿÿÿýž€€}}}}}€}}}€}€}€€}€}}€‘€}}}}}}}}}€}}}}€}}}}}ww}}}w}w}wwwwwwwvww}}w}}}ww}}wwwwvwww}wwwvvvÞüÇwwwwwvvvvwvvvwvvpvvvpvvuvvwvpvvvpvvpvpuvuouuuuuuuvpoopuupuoo{ò�u”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5757œèÿÿÿÿÿÿÿÿÿÿÿýýýýüýýùÓ}vvvpvwwvvwvvwwvvwv}vvwv}}www}}vwww}w}}}}w}}}}ww}}€}}}}}}}}}}}}}w}}âÿÿÿüÒ€}}}€}€‘}}‘‘}}}}}€€}€}}}}}}}}€€}€}w}}}}}w}}}}}}}}}ww}w}}w}}ww}ww}wwwwwvw}w}wvww}wwvwwvw}wwwÞüžwvvwvvvvvwvvwvvvvyvvvvvvvvvpvvvvuupuuuupppuuuuvvpuuupvoouuuu”òÅu�þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555757777577755œèÿÿÿÿÿÿÿÿÿÿÿýüýýüýüù¬}pppvwvpvvvvvvwvvwwwww}}w}www}wwww}w}}}}w}w}w}}ww}}w}}w}}}}}}w}}}}}}}}�èÿÿÿüž}}}}}}}€}}€€}€}}€€}€}}}}}}}}}}}}}}}}}ww}}}}}}w}}}}wwww}www}}}wwww}v}wvw}w}vwwwwwwvwwÞüÇvwwwvvvvwvvv}vvwvvvvvvvvvvppvvvvppvuvvpupvuuuuuuuuouuuupuoou˜÷�uÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx557777577755œèÿÿÿÿÿÿÿÿÿÿÿýüýüýýýú¬|ppvvvppvvvvvvwv}wwvvw}}}www}wwww}ww}}ww}w}}w}}}}www}}w}}}}}}}}}}}}}}}}èÿÿÿýž}}}}}}}}}}}}€}}}}€�€}€}}}}}}}}}}}}}}}w}}}w}}w}w}}}}}}ww}}}}}}}www}www}}ww}}wwww}vvv}wwvwwvßýÇvwvvvvvvwvvvvvwwvvvvvvvvvvvvvpuvvvpvvvppvuuupuuouuouuuuuuouu˜ú�uÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5577777777$755œèÿÿÿÿÿÿÿÿÿÿÿýýüüýýýúÒspppvpvvppvvvvvv}wvww}wvwvwwww}w}}www}www}ww}}www}www}w}}}}}}}w}}}}}}}}}}w}âÿÿÿýž}}}€}}}}}}}}}}}}}}}}}}€}w}}}}}}}}w}}w}}}}}}}w}w}}}}}}w}}w}w}}}wv}}}}w}wwwvw}wvw}}}}ww}wwvwww}vwww}wßýÊvvvwwwvvvvwvvvvvvvvvwvvwvvvvvuuvvvuvuoupupuvupvpuuuvpoootuou›ú�uÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555775777555œèÿÿÿÿÿÿÿÿÿÿÿýüýüüüüúÓ~pvppppvvpvwvwvp||vvww}vvvvw}}}www}vw}}}w}w}www}}}}}}w}}w}}}}}ww}}âÿÿÿüž}}}}€}}}}}}}}}}€}€}w}}}}}}}}}}}}}}}w}}}w}}w}ww}w}}}}}}ww}w}w}www}}}}}}w}}}}}}wwwww}ww}wvv}wvwwwwvv}ßþÌwwvvvywvvvvvvvvvwvvpvpuuuvwvuvvvuuuvvpvuuvuuuuuuuvuuouptopuu›üÇußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pÕþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy575757775777555555œèÿÿÿÿÿÿÿÿÿÿÿýüýüüüüú¬}ppppppppppvvvppppvvvvwvvwvvwwvww}}w}wwww}w}}}w}}}w}www}}}}}}}}}ww}}}}}}�èÿÿÿüž}}}}}}€}}}}}}}€}€}}€}}}}}}}}}}}w}}}}}}}€}}}w}}}w}}w}}w}}}}w}}}}}}w}}w}www}}ww}}w}}}wvwwwwwww}w}wwvwwwwwwßÿßwvwwwvvvvwvvpvvvvvvvvvvvpvvvvvvpvvuvuuvpuuouvvpoupuuupuuuuuo�ýÇyñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy557557777757777777755œèÿÿÿÿÿÿÿÿÿÿÿýýüüüýüú¬|pppppppvpppvppppvwvvpvp|w|pwwvvw}wwwwvwv}vw}w}}}}ww}}wwww}ww}}}}ww}}}}}�âÿÿÿýž}}}}}€}€}}}}}€}}€}w€}}}}}}w}}}}}}}}}}}}}}}}}}}€}}}w}}}ww}}}}}}}}}wwv}}ww}w}}}}}}}wwwwwwwwww}w}wvwwwvvßÿôœ{vwwvvvvvvvvvvupvvwvvvvuuvvvuuvvuvvpuuuuouppupouuuuputuuootÇýÇ{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà    pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555577757757$77777575777555555œéÿÿÿÿÿÿÿÿÿÿÿýüüüüüýú¬}wvpvppppppvpppppv}vpppvvv}v|}vvwwwwv}w}}}wwwvwwww}w}}}www}}}}}}}}}}}}}}�âÿÿÿýž}}}}}}}w}}€€}}}}}}}€}}w}}}}}}}€€}}}w}}w}}}}}}}w}}}www}w}}}www}ww}}}w}}}}wwwvvww}}w}wwww}wvvvwwvvvwvvvâÿþ÷èßÊœ†{wvvvvvvvpuuvvvvuvpvvvuuvvuvuuvuouvvpuuuuuuuuuutuoooouÉþÌÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555575777$7775555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüýüü÷Ò}vppppppppppppvpv||p|pv|pp|wvvv|p|}vvwww}}w}}www}w}}wwv}}}w}}}}}}}}}}}wwwâÿÿÿýžw}}}}}}}}}}}}€}}}€}}}}}€w}}}}}}}}}}}€}}}}}}w}}}}}ww}w}}}w}}}}}w}}}www}ww}wvw}}ww}}wwwwwvwwvwwvvvwvvvwwvwwvvvÞüýþÿÿýü÷òâ̘wwwpvvvvvvuvvvupuvvvuvuuuvuvpuuuuuuupuoooououtltuuÌþò÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555575577575775555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬sppvpppppppppvvppvvvpvwpppv|vpvvv|vv|wwvw}vw}wwwww}}www}w}}ww}}w}}}}}}}}}}}}�èÿÿÿüžw}}}}}}}}}}}}}}}€}}w}}}}}}}w}}}}}}}}}}w}}w}}}}}}}}}}}}}}}}}}}}}}}}}ww}}}}w}w}}w}ww}ww}}wwv}}wwwwwwvwwvwwvvwwvvww}vwwvvv{œÊÞâñúþÿÿÿþ÷ÇwvpvvwvvppvvvvvpvupuvvuuvuuuuuvuupuuuuupuopuutluußÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà vØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy57555555777577775577577755555555œèÿÿÿÿÿÿÿÿÿÿÿýüýüýüýú¬}oppvppppppppvppppvvpwvppv|ppppp|vpp|wvvpvwww}wwwwwww}w}}}www}}}}}www}}ww}}}�èÿÿÿýž}w}}}}}}}}€}}}}}}}}w}}}}}}}w}}}}}}}}}}}}}}ww}}}}}}w}w}€}}w}}}}}}ww}}}ww}}}}wwww}ww}wwww}wwwwv}v}ww}wvv}wvww}wvvwwwvuvw{w†˜Çßúÿÿÿú�vvvvwvvvvvvvvvvvvpuvvvuuupuoupuuvuluuuvuuuy{{{”Çòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà     vØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy557555557775775$775557555755555555555555œéÿÿÿÿÿÿÿÿÿÿÿýüüüüüý÷Ò}ppppvvpppppvvvvvpv|vpp||wvppvqp|vppp|pvvvwwvvvw}wvw}}wvw}w}}wwww}}}}www€}}}âÿÿÿý§€}w}w}}}www}}ww}}}}}w}}ww}}€}}}}}w}w}}}}}}}}}}}}w}}}}}}w}}}wwwwwww}www}w}}}}ww}w}}wwwww}wwwwwvvwww}vvvvwwwvvvwvvvw}wwvvvwvwvyw˜ßúÿÿ÷†vvpuvyuppuuuuuvvwvuvuuvvoovpuuoootuutu�áçññòòúþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþÃ!pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5555775557557777755777557555555555555555555555555575œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬sppppppppppppppppppvppppppvwvvvpv|vvvwp|wwv||v|w}|wvwvwww}}}w}}}}}}w}}}w}}wwâÿÿÿüž}w}}}}ww}w}}}}}}w}}}}}}w}}}w}}}}}}}}}w}}}}}}ww}w}}}ww}www}}}}w}wwvw}}ww}}vw}}wwwwww}w}w}www}wwwvwwwwvvwwwvvyvvwwwwvwwvvvvvvwž÷ÿÿá{vvuvvvvvupvvuuvvvuuuvvpuupvuuuuuouuuuÇýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55755755775555577777577777775555755555575555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬}ppppppoppppopppppvpppppvpvvvvvppvvvvv|vvvvvv}v|wp|}}vvw}w}}ww}ww}ww}}}}}wwwwâÿÿÿüž}w}}ww}}w}w}}}}}}}}}}w}w}}}}}}}w}}}}}}}}}}}}}}}}}}w}}ww}}}}}w}}w}}v}}}www}ww}w}w}ww}wwwwwww}www}vwww}wvwwwvvvwv}wwwvvvvwwvvwvvvvvwvvv˜òÿý�vvvvuvvwvuvpvvuuuouuuvpuuuuuuouvuuuuoÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555757577777777757777777775557555555555555555555557œèÿÿÿÿÿÿÿÿÿÿÿýüüüüýü÷¬qoppppoooppvpvvppppppppp|vppppvvpvvvvp|ppvvp||ppvpvvvv|wvvvww}wvwwvwwww}}}}}}}âÿÿÿýž}}}}}}}ww}}}}}w}}}}}}}w}w}}w}}}}}}}}}}ww}}}}ww}}}}}wwwww}}w}ww}}w}}}v}w}}w}}www}wwwwww}ww}}}www}wwv}vwwvwwww}}wvw}wwwvvvvuvvvvvvwvvpvœúÿçyuvwvvvuuuvvvuuuvouuuvpuouuupuuuuvpu{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx55557775755775777775577777$7777775555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬spppoopvvppppppoppppppvvvvp|pppvvppvwv|vpppvv||||pp|v}|vvwwvv}}}}ww}}wwvvw}vvw}âÿÿÿýž}}}w}w}w}}}}}}}}}}}ww}}w}w}}}w}}}}w}}w}}}}}wwww}w}}€w}}ww}}}ww}}ww}}}vw}}wwwww}}vwwwwwwwvwwwvwwww}wwwwvvwvvvvvvvvvvvvwvvwvvvvpvpvvvwÊÿü”ppvvuvuvuuuvvvvpuupuuoppuuuuuuuuuuu�ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy557557777775775777777777577777575577555557775555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬|vpopppvpppppppppvpppppvpppvvpvvpppvvpvpvvpvvvqvwvvv|||vv|v|vvw}|vvvvwvwvwwwww}âÿÿÿüžww}}}}}}}}}}w}}}}}ww}}}}}w}}}}w}}}}}}}}}}w}}}}}}}}}}}w}}}}}ww}}w}}}ww}ww}}w}}ww}}w}w}}}wwwwwwwwwvvw}vvvvwwwwwvvvwwvwwvwwvvvwwvvvvvvvvuv†÷ÿ×vvvvuvvvuvuuvvuuupuuuuuvuuouuuuuutyâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy577555755555775777757777755577575775555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüýü÷¬qpppopppppppppppvvpppvppppvpppv|pppvppppvvvvvpvv|vvp|v||v|vwvvvvvv|wv|||vv}|vv}âÿÿÿüž}ww}}}w}}}}}w}}w}}}w}}}}}}}}}}}}}}}}}}}w}}}}}}}}}}}w}w}}}}}}}}wwww}}w}}w}}}w}}}ww}ww}w}}}wwwvw}}wwww}ww}wwwwwvvwvvwwvwwwwwvwwvvvvvwwvwvvwvvvwpwwpvvwÞÿñwpvvuvvvuvuupupuuuuuvuupuuoouuouut›úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555557757557575555577777777575775575555555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷Òspopopppppopppppvppwwvvpppppvpvpppvvpvvppvv|ppwppvpv|p|}vvp|p||vvvvv|w|wvvw}||âÿÿÿüž}www}w}ww}}wv}}w}ww}w}}w}ww}}}www}}}}}ww}}ww}}}w}}}}}wwwwww}wwv}}}}w}}wwwwwvww}wwv}ww}w}}www}wvw}wvwwwvw}}v}}wvwvwvwwwwwvvvvvvvvvwvvwvuvwopvuuuuÇþú{uwvvvuuvvvvvupvuuuuuuuuuuuuuoluooÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555557555755775557575575555777777775777577557575755555555555555755555555555555555575555555555555555555555�èÿÿÿÿÿÿÿÿÿÿÿýüüüüüý÷Ò|pppppppvppppppoppoppopppvvppvvppp|ppvvvp|vppppvpvpv|ppwv|vvpv|vvv|||vp|www}vvwâÿÿÿýžwv}w|wvw}ww}}}w}}}}wwwww}ww€}ww}}€}}}ww}}}w}}w}}}}}}}www}}w}}}w}}wwvw}ww}www}}w}}wv}wvwwvwwvwww}}wwwvw}vwvvwwvw}wvw}vvvvvvvwvvvvvvpvvvpw}yvvwvvv˜üü˜uvvpuuuvvuupupuouvvvpuouuuuoupuuyçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx5555757555557757755757755757$757757777777577575555575555555575555555555555555555555555555555555557555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬}ooppooppoopppppppp|ppppppvppv|ppvvppp|pv|pvvvpvvvvppvv|p|vpvvvvvvvp||vv|vpv|vwâÿÿÿýœvv|w|}ww}www}w}}v}}}w}}w}}w}}}}}w}}}w}}}w}}}ww}}}}}}ww}www}}w}}}w}}wwww}}w}w}wwww}ww}}w}wwwwwwwvwwwwww}vwwvvwwvwwvwwwvwvvvwwvvwvvvwwvvvvvvvvvvvvwvvvvvv{úý›vuvvupuuuuuuuuuuuupuuuuuuuuuootl{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55577757575757775577775577557775555775755555555755555555555555555555555555557555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬}poppooopooppppppppvpppvvppvvvvvppvppp|v|ppv}vvvpvvppvvpvvvvvvpp||pp|||vw|p||pwâÿÿÿýœvv||w}}|}vw}}}w}wwwww}}wwww}w}}}}}wwww}}ww}}w}w}w}ww}}www}www}w}}}wwwwwwww}}w}ww}wwwwv}}vww}w}ww}ww}vvw}vw}vwvwwwvvwwwwwwvvwvvvvvvwwvvwwwvvvvvvvvvpuvvvpvpu{úý�vvuuuuuuuppvuoupoouuououooouolllƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5555555555775777755775$777557777777577777775777775757755555555555555555755555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬sppoppoovpppoooopppoloopppoop|ppvppppo|vpp||vv|vw}vv|vpp||wwvvvw|vpp||vvvv||p|}âÿÿÿüœ||vvp|wwvppp|pvwvv|wwvww}ww|vwwwvww}}}}ww}}}}w}ww}wwwww}ww}}}}}}}ww}w}}}}w}}}w}}}}wvww}}www}}wvvwvv}w}}ww}}wvw}wwww}wwvvvvwwvvvvvvvvvvvvuwvvvpuvvuuvvvuvvu†úý›vwupvvvvvuuuloopuooolllolollllol”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   vÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy557755757775775555777557757777777757777775577775755555555555555555555555555775555555555555555555555555555557555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬}ooppoppoopvpppoopvppp|vpvvpppppppppppvpppwpp|vppvpv}pvpvvv|p|||v||vpvvppvvv|vvâÿÿÿü™v|wvvvpvvww||||vvv}vww|www}v}wwvvv}}}w}}w}vwww}}w}ww}}ww}wwwww}}ww}}w}w}w}wwwww}}ww}}}}vwwwwwwww}wvwww}wwwwwvvwwvvvvvwvvvvwvvw}wvywvvvvvvvvvuvvvwvvupwwpvvuuuv˜üü†vouuuuuuooopuupuloppuollllulllCC–ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555557757557577575577777777577577775577555775775757575555555555555555555555555555555555575755555555555555555555575555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬sooppooopoopoppooppvpovppvpoppvpppvppvppppvpppvpppvwvpvvvvvpv|}|vvv|vvvvvvp|||vâÿÿÿüœv}vvvwvvpw|vpw|vwvpv}|v}|v|v|||vw|}w|w}w|wvvw}}}wwww}}wwww}}vwwwww}}vw}}}ww}}}}vw}}www}wwvwwwwwwwv}wwwwwwwwwwvvwvwwvvvvvvvvvvwvwwwwvvvvvvvvvvvvvvvvvvuuvwupuvopu�ýúyvouvpoluoolloopllouolllllllllllC”ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555557757775577577757777755$7777757777775577557775577555555555555555555555555557555555555555555555555555555755555555555555555555555575555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬}oooolloopopoopppoppoppoooppppppppvvv|v|pvpppppvvpv|ppp|vppp|||vvppv}||||vpvppvâÿÿÿýœp|pp|||ww|vvv||}vw|pvvvvvwppvw}|}}|vvwwv|vwwvvvw}wvw}wwwwwwwwvwvvvwwv}wwvvw}}w}w}wv}}}wvwwwww}}wvvwwvv}wvwwvvvvwvvvvvwvvvvvwvwvvvwvuvvvvvvwvvvvvpvvvvvuppopouuuuÌÿòuoopvpploooollllllllllllllClCClll”üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà !pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555557775555555755775755575777775=777775777577557777775777577557775555555555575555555555555555555555555555555555555555555555555575555555555555555555555575555555557555555555555555555555œôÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷Õ~oppooppoopppvvpppppvppoppppppvppovppppopvvvpvoppoppvvpvvpvvvpppp}|v||ppvwv||wwâÿÿÿýœpvv||v}||pp|wv||pw}||w}|v|pvv|vpvvpvw}|v|vvv|www|vvvwvvw}wwvwww|w}wwww}wvvvvvwvv}}w}vvvvw}wvvvv}}vwwvvvvwwvvvvvvvvwvvv}wvvvwvvpvuvvvvvpppupppououvouopopplpuovpvâÿápoolllllooolololllllllllllllClCllƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–þÿÿþà  vÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555757775557755577757$7557557777577777775757757555755755757555557555555555755555555557555555555755555555555555555555555555555555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿýüüüüüü÷¬|oppoopppolooppooppoppppvppppppppovvvpppvppvvppvvpv|vvppvvv||pp|vvvppppvvvppvvwâÿÿÿüœwv|vvpvv|vvpwvv}vvv|pv|v|v|}vvpqv|pvvvvvv|||vvvvvvv||pv|wv|wv}vvwwvv}wvvvvvv}wvpwwvvvvwvwwvvvvvvwvvvvpvvwvvvvvvvpwwvvwvvvvvvwvpvvvvvvvvpvpppvppoovppooppvppoooo{üÿÌolloooollllloollllllllCCllCCllllCyñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5555555577755777577575577577777777555575555577555557757557555557555575555555555555555555555555555555555555555755555555555555555555555555555755555555557555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|oopoooooooopooppppoopvpppppppppppvpvvpvvpppppppv|vvpvpp|pvwvpvwvpppppvvvp|pvvvâÿÿÿüœv||vvvv|vvvp|vvv|vvvvvpp|v||vvp|vvvvvv|vpvp||vpvvwvv|vvvv|vv||v||vv||wvppvvw|vppvvpvvvwv||vwwvppvvvpvvvvvv|vvvvpp|vvwvvppvpvvpppvvpopppppvoppppoopooopvpoupooloÞÿþ”loooloollllCollllllllllCllCCCCllCuáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    mØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555557775775757757775775757755577557755575577577775555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬soooppopvpppplopoooolpolpppoppppppppoppopppvvvvvpppp|wppvvpppppvovvvvv|vppvvv|wâÿÿÿýžvvvvvwvvppvvvv||v}}|}}|ppvvvv|||pvvp|||vvwppvvv}|vv}vppppppppv|ppvwpvppvpv|vppvvpv|pvvwvvpp|vppvvvww}wvwvppvvvvpovpoppppppppolooooopppvpppoppopppollooolllllol{úÿñuloolollllllllCCClllCllClllllCClCClÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÆ  pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555555777757777575777755777775757755557775555757557557755555555555555555555555555555555555555555555755555557555555555555555555555555557555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷Òspolopolooopolopppppoopoppplpppppvpppoopppvpopppvppvvppvppwpppv|vpv|pv|pvvp|wpwâÿÿÿü˜v||vpvppppv}vppppvppvv|v|wv|}wvvvvvvvvvvv}|vv}vpv|vvvv}|vw}|||ppv}|v|pvwvpppv|vvvp|pppvvpvpppvp|wpopppppvvpopvvvppppvpopppppppoopoopolppooooloplooolloooollpolÌÿÿÌloollollllCllllllllllllllllllClllCC›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555555575577775$5777777557557755755555777775555575555575755555557555555555555575555555755555555555575555555555555555555555555555555555555555555755555555555555555555555555755œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüüùÒsooooloooooopoopooppopvoppopppppopppppopppvpopvpvpppvvppppvppvppvppvppvvvvpvvpvâÿÿÿüœvvvvvppv|vvvpv||p||p|vvvpv|vvvpvw}pvvvpvvvwv||ppvv|||pvvpvvvvvvv|vvpp||vpppvvvvpvvvpvwvvvpvppppvvpoppwpppvpopppppoopppppoppppoopvpopoooooooloopoopoloploolooly÷ÿü”oolllllllllllllllllllClolCllClllCClyòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà   vÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæx5555755777777757775777777577777777777557557757775555555555555555555755555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557575757557555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷ÓŽoooooooolooooooppoolopppppoopopopvpooppplppv|pppopvp|vppvpppppvpppvppvppppv|pwâÿÿÿýœwppp|vpv}vvvpwv|pvvvpppppv}vvvpvw|qvvpp||vpv||vvpv|v|vppppppp||v|pppv|vpppp|ppppvvvvv|v|vpppoppp|povwppopppppppopooopvvpoopoooovpppppollopoooopoopooooloolollÉÿÿñoooloooollllllolllllloCllCClllllllCltÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555555577777775777577777755755775777577775557777555557555555755557555557555755555555555555555555555555555555555555555555555555555555555555555555755555555557555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬}polooooooopppopvppploopppoopoloppvpoopvpoppopoppvvpopoppoov|ppppppvppvppppvpvvâÿÿÿüœppppv}w||vvvppwvpv|w|w|pvp|v|}||ppppvppvp|vpppvvvvppppppv||ppvvpvpppppv|vvvwvvvpv|ppvpooppvvv|pppppvpoppvpppp|pppppooppolopppvpolppvoopooolloppopoolllllopppy÷ÿþÇlllllClolllllllllllllC?CllCClCCC??CCC”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555555557775775777777777575557755757755575575555555555757555555557555555555555555555557555555575555555555555555555555555555555575555577575555557555555755555555555555555557555555555555555555555555555555755555555œéÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|loollopooolpolopoopppppoppppppppvpppppppppppvvvvpopppppvvvpvppvvvvvvppvvpp|vpvâÿÿÿüœvvvvpvvvpvvvppppvv|vppvoqvvvppppvv||wvvvvppv|vvvvpppvvpvvvppvvvvvppvpppvppppvpppvpvvppvpppvpvppppvvpoppppvpvoooopvppppvppppplopoolopooooopoloolooloooolollloÌþÿñuloolClllllllllllllCllllllCCCCCllClCC?tÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy5555557555755557777755777757755777777575755777555555755575755555755557775555555555555555555755555555555555555555555555555555555555555555555555575555555555557555575555555555555555555555555555755555555555555757557œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬sloollloooolpoopooooppppoovpoovopvpopo|opvppovvpvppvoppppvvpppvpppppppp|vpppppvâÿÿÿüœv|vvvpvvpppvvpv|vvvvppppvvvpvvpwvvvvvvpvv|pw|ppvvpvvv|vvvvppvvppvvvvvpppppppvppvpp|vppvpppvpvpppovpppopppvppppopppoppoopopppooopooopooopooopoloolllooololol{úÿþ�lllllllllllllllCllCCllllllllCClCClCCC?lƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy555555555555555555777777777775555775=7777575777555757577577575555555555555757555557575755555755555557575555555555555555555555555555555555555575557555557555555555555555555555575555555557555555557555555555755555755555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷§sopvpoloooooooolopvvooopoopoooppoolpplpppp|popopoovppppppvv|vvwppoppppvvpovvpvwâÿÿÿü˜ppp|w|vvppppppvw|pv|vvpvvvp|ppvvpvppppp||vp||pvppvpv|vvppppp|pp||pv|wvp||pppvpppoppppvvpppppopooopvvppopppooppppppolpppolppopoopppopolovollpploolllopoolopoáÿÿçooolllllllllllllCllllllllllCCClCCCCCClCCtÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà    oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy557555555577757777$77777755777755777775555555557755555577557557555575555575555555555555555555755555575575557575555555555555555555755555555555557555555575555557575555555555555555555555555555555555555555755555555555555555575555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|lloolopooopooppolloloppoppppvpvvoovppvppopppppppopvvvvvpoppovoopppvw|pvppppvv}âÿÿÿü™vvvppppp||||vvvwpvp||vpv|povvvpppvppvpppp|ppvvvvpvppppp||pppvppppvpppp|vpvvppvvvpvvppvpopopopwvppvpopvpvp||ppppoopppppopooppppololoppoopoololopoooollllolo”üÿüƒoollllllllllClCCClCCCCCl?ClClCCCCC?ClCCCCƒ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  !pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæx55555555555575557577775757757777555775775577557577555555755575775555555555555555575577555555775555555755555575555575557555577555555555555555555555555555555555555555555555555575555555555555555555555555555555555555555575755555577555555555555557555755757575555555555555557555755557œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬slllllooooooooolloplppppoolooplpppooppppooooppoovopppopppppppppvvpppppppppppppvßÿÿÿüœpppvvppppppppppvpvppppvpvppvvppvppvpv||pp|ppp|vppvpppvvvwvpppv|vpppvppppvpvpppppppppvppppvvovvppppoppppoopppppoppoopppopooppoopoooppooloollooloollllopllluçÿÿÎuollllllCllolllllllllllllCllCCllCCCC?ClCCClÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþæy57557575555555577577557577575577577757777777755557775577555555755555575575577555555555555555555555555555555555555575575555555555555555557775555555555555575555555555555555555555555555555555555555555557755755555555555555555555555775555555555575555575555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷Ò|ololooopooolololpvlppopoppoooloopoopopppoooppppppppplppppppppp|vppvovvppppvppvâÿÿÿüœvpppvvppppppvppppvppppppvvvvvpppvvwpvvvvpvpppvwvpvpvvpvvvppppvvppppvpppp|vpoppppppvpvppopvpppvoppppppppoppppopopoopppppppppooopooopololoolllllooolooollllÆþÿú{ollllolllllolllllllllCllClClllllCClC?Cl?CCCz÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy5555555555557557775557757577775755555557577575555755777555555555755555755555555557555555555555575555555555555555555555555757555555555555575555555557555555555555557575755555557555557555557555555575555555555555555555555555575555555555557555555555555755555555555555555555557555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüüõ§qlllllololllopppppoloolppppopopoooplooopvvpoopppopppppvppppvvpp|ppvwvpvpppvvppvâÿÿÿüœwvp|wvvvpwvvvpopp|w|vppp|vpovvp||vvpppppvpp||pppvvppvppppp|vppppvvpppvvppvppppvppopoovvpppopoppoovvppppppvpoolpoolooppoloppooollopolooolllllolopollollll{÷ÿþÊoCllollCllolCCClClClCllCCCllCC????llCCCC?CCCCÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5555555575557575577555555577777757555575757775577575555575557555757555555557555555755555555555555755555555555555555775575755555557555775555755555555555577555555555555555555575757555555557757555557555575555555555557555557555557555575555555555555555555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüüüüüüüõ¬}oolllllpppoolopolllpoopooppopvopppopvppopppopoppooopoopvpoooopppppppovvpvppopwâÿÿÿü˜ooppvpvvovppvvpppppppppvwvpv|vpppoppvpvppppp||vvpvvpppppp|ppp|vppppoppppoop|vvpppvvppppvppppppvppooooloppoooppppppolopoloooooooopoolooolpppoolloololllooÞÿÿçullllolloolClllClllClllCCllCCCCCllCCC?lC??C?>C{òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    vÚþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿæy55555555555557555557777557575777575777577555555575555575555555755557555555755555555555555555755555555555555555755555555555575555755555555557555557555555575557555555555555555575555555555555555555555555555555555555555755755555555555555555555555555555755555555555555555555555555775557555555555555555555557œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬sllolollploooooolooooopolopolopooooooopooppolpoopoopppoovppppppoppppoopvppppppwâÿÿÿü˜vppppppppppp|pppvvppvppvvvpvppovvpvpppvvpppppvppo|ppvwvppvvppvppvqppppppppppppppppp|poovpppoopppppooopoopppppoooppoooopopoloopoooooooooooololllooloolll†úÿü”llllollllllClllClllClllCCllCCCCCCCCCCCCCCC?A?CCÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþæy5755555777757557555755775555555555577757555555755557575555555755755555557557555755755555557555555557755555555557555555555555555555757555555555555555555555555555555555555755555555555555555555555555555555555555555557555555555555557755555555555755555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|ollooloolllooolooolopopooollopoopooolooppooopoopppppppovppvpppo|ppoooopvpppvpvâÿÿÿü˜vppppvpppppvvpppvvppvvpppvppppppvpvpppvvpppppvoopvpp|vvppvpppppppppppppvpvvoppoppopvpooopppoopoovppoovpoovpoolopppoooopopolopppolopoooolloolllollololluçÿÿÞlCllllllllllllllllClCCCllCClCllCCCCCCCCCCCl??CC?uçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy55555757555555755755555575755755555755555557555555555555555555575555555555555555555575555555557555555555555555555555555555555555555555555555555555555555555555555555555555557755555575555555555555557555555555555555555557555557555555755555555555555555555755555555555557555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬qoololllopolloolololloopppppooploopppovpppppoppppppvpppppoovppoopppppppppppppvvâÿÿÿü˜ppppvvvppppppppppppopvvpppopppvpovwppppppww|pvppvwwpppppppov|vppppppppopppvpppppppoppppooppoopoooooopppppplopoopoooploolooopooolllooolllollllllloollloÇþÿñylClllClolClllllCClClolCCCC?CClCCC?Cl??>??CC?C?C?A›üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿæy555555555555555777755555575755755555557755755555557555555575555577555555555555555555555555555555555557555577555555775555555555557555555555555555555575755555555555555555555555555555555555555555555755555555555575555555555555555555575555555555557575555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüüõ¬qolloolllllllllllooololooolooopppooooopooopoopoppoopppooopppppoppppvpvvpopppppvâÿÿÿüœpppppoo|vpppppppppppppvpvvoppv|opppppvppvvpovwvpoppppvpppppppppoppppppppopppppppppppoopvpoopppoppppppoooppppppooopppollloloolopollpolllloolooooooolllyòÿý›oollllllllllllCCllClCCCClCCClCCCCCCCCCCC??CCC?C???uâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæy55555575555555555555575575755557755555755575555777555555557755555775555555555575555755555755555555555557555555555555555555555555555555557555555555555555555555555555555555555575555555555555555555555555757555755555555555555555555555555555555555555555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|olllllloollollloolpoolpooloopopooopoopoopooppooooopplopoppoppppppopppvppppvpovßÿÿÿüœppppoopvpvpppppppppvppppvvppppvpvvppvvpppppppvppppppvppppppoppppvppoppppopppppopppopoppvpolopppoopoppoopplppoooooooooooplooolloolopollllllllllloollloÞÿÿßtoolloolllllllClCllCllCClCCCClCCCCCCCCCCCC??CC??C>Cl”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿæy57555555555555555777555757577555555555555555555575575577555555555555555555555575555555555555555555555555555555555555555555555555555755555555755557557575755555555555555555555555555555555555555555555555555555755755555575555755555555555555557555555555575555575555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬sollllllollllllopolpoolooooooplloppoooppooopoppolopopopvpopppppppooppppppppppoußÿÿÿüœvpoppppppoppvvpppppoppppppppppppvvppppppppppppppopppopppppppopvvpppopvpoppppopppooopppoppopppppppplopoppplopolpoloopooopooollloplopllollllllllCoolll›üÿ÷{loollllCClllllllllllllClClCCllCllCCCCCCCCCC??C??A>CCCÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy555555575557575755557555775555555555555555555575755555575555755775555555555555555555755555755555555555555555555755555555555555555555555555555555555755555555557557555755555555575555555555755555555555555555555555555557555555555555555575555555755575555755555555555555557575555755555555555555575555555555555555555555555555557555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|lllolllllllolllollllloooooloooolollllooloolooooooopppppppopollopppopvppooppppvâÿÿÿüœvppvvvppvooopp|vppppppopppppppovpplopvpppppppppppppvpppoppvpppppoopooppopopploppppppppoppvwoolppooloppvpppoloppplopolllooooopplllloloooooolllllllllyñÿþÇllllllllllllllCllCClCCC?CllCCCllCCC??C?>?Cl??>>?????CC{÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy755555557555555775555557755755555575575555775555555555577575555555555557575555555555555555555555555555555555555555555555555555755555755555555555555555575555555555555555755555555555555555555775555555755555555575555555555555555555555555555555755555555555555575555755555555555575555555555555555555555555555555555555555555555555555555557œèÿÿÿÿÿÿÿÿÿÿÿüúüüüüü÷¬sloolllllllllllollooooollooolloooollooppolopopppoopppopolpppppoppppooopppppoopvâÿÿÿü˜ppvpovpppopp|vppppopvppvvppovvovpppppppppoppppvpopppppppppppvpoopppoppvppppppppopppooopoppooolppppppoooooppppooolooooooppolloollloolllpolollllpllloÉþÿçulClllClllllllCClCCClCCC?ClClll?CCC?ClC????C?????CC>>??CÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿæy5555555555555555555555555557575575755575775555555555555555555555555555555575575555555555555557555555755555555555755555555575555755555555575555555555555555555555555555555555555555555555555555555555555555755555555555555555555555555555575775555555555575555555555555555555555555555555555555555555555555555555555555555755555555555555555555555755755555555555555555555577575œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬}loollllooolllllolooooollllolooooopooooopolpvpooooppooooooppppppppppooppppopoovâÿÿÿü˜pppppppoppppvvooppoopvvpppopppoppppppppopovpppppppoopvpoppoopooppvpoppppvoopppopoopoopppppopoooooppololooppooloooolopoopollollooolllllloololllolll”úÿúƒooClllCllllllCClllClCCCCCCCClCCCC?CClCCC???C?CCCCC>>???>yñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿæy55555555555555555555555775575575557555557575555575577755555555555555555755775555575555555557555555557555755577755555575555555555555555555555555577555555555575555555555555775555555555575555575555555555555755755555555555555555555555555555575555575555555555555555555555555555555555555555555575555555555555557555555555555557555555555555555555555555555555�èÿÿÿÿÿÿÿÿÿÿÿüüúüüüü÷Òsllllooopolollloollloooloollopoollopllllopooooloopooooopooopoopppoopppopppopopvâÿÿÿüœppppvpppppvvpoopvpplop|poppoppoopvpppppppppppopppvpvvpppoppoppppopooppoopopppoopppooppppoopoopoloooololopoollopolllllolloooplloppllllllolllollllluçÿþÌullCllllClCClClllCClCllCCClCCllCCCCCC??CCCCCCCCCCCA>?CC?>AÅýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþæy5555555557555555555775555755755555755755777575575575555555555577555555555555555555555555555555555555575555555555555555555555555555555555755555555555555555555555555755555555555555555555555575555555555555555555555555555755555555555555555555555555555555555555555555555555557555555555555555555555555555555555755555575555555555557575555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬slllloolllloolllloolllloooolollopooooolloolloopolpoooopplpoopvpoolopopppplovvpwâÿÿÿü˜oopppoppppopvpppppvppppopoppvvpoopooooooovpoppppvvpppppppvvppppppvpppppoppppppoooppppooopooloploopooloppoooololoooolllloolllllllllollllolllllolllÇýÿñyllllllllllllClllCClCClCllCCC????>???CAClC??l?>>?C?>??>?>>?táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  oØþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿæy555555555555555555555555755557555555557555555555555555555755555555555575555555555555755555555555555575555555555555755555555555555575555555555555555557555555555555555555555557555555555555555555555555555555555557575555555555555555555755555555555555555575575555555555555555555555555555555555555555555555555555555555555555555555555557555575555555555555555555555575555555555555555755555555555žèÿÿÿÿÿÿÿÿÿÿÿüüúüüüüõ§vlllllllllllllolllololloloolooloooloooooooloolpolppooooooppooooppooppoooppppppvßÿÿÿü˜pppppoppppoopppopppovvpopooopvpopppppoppppopppppvooopppppppppooooppppppoooooooppoopooovoooooppoppoooooppllooollllopolooollllopolloplllllllolllllƒòÿú˜llllllllllClClCCCCCllllCllC?CClCCCAClC?CCC??C?AA?CC?CCA???>?”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy55555555575555555555555557555555555555555555555555555555555555555555555555555555555555555555555555555755555555555555555555557555555555557555555555555555555557555555555557555555555555555555555555555555555555555555555555555555555575555555555555555755555555555555555555555555555555575555575555555555555555555755555557555755555555555755555555555555555555555555555555557555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüüü÷¬|llllllllllllllolllllllClopooolololooopolloooolppoooopolpopplooopopppooooppoooußÿÿÿü˜pvpooopppooopoopppoovppopppooppoppppppppppopppoppooopppppoopppooopoooppopolpoooppopllopooppppppppooooloolopoloollooolpploollooolppllllllloollllußþþÌllllCClllllClClCCClClCllCCCCCCClCCC?ClCCCCC?A>?C?>CC>?A>?C???CÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþÆ   pÚþÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿæy555555555555575555555555555555555555575555555555555557755555555555555575755555555555555555555555555557555555555555555555555555555555755555555755555555555555555555555555555555575555555555555577555555555555555555557555555555555555557555555555555557555555555555555555555555555555555555555555555555555555555555555555555555555555555555555575555555775555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüúü÷¬olllollllllollllllolllllllopllllloollooooooooooplololloplooooloppopooooooppplußÿÿÿü˜oppppppoolpvpoppvppopoppppvpppppopopppppppopoopppppoooopppolppppppplpppppoppopllopplopolpplllloolppoloolopppopoolllllpplllllllllllllooollllClll›üÿèyllllllolllllCllllClllCClCC?ClCllCClC??CCC?C?????>?C>??>??>>>?=xòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿæy5555555555555555555555555557555577555555555557555555555555555555555555555555555555555757555755557555555755575555555555555555555555555755555555555555555555555555555555555555555555555555555555555555555555755557555555555555755555555555555555555555555555555555555555555555555555555555555557555575555555555555555555555555555557755575555555555555555555555555555575555557555555555555555555555555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüüúúüüü÷¬|Cllllllllllplllllllllllloolllllooollpooopolooooolopoloppooopppopoloooolopoooovâÿÿÿü˜pooopoppooppoopppopopoloppplpolpppoppopooppooppooppoopppoppppppopppopppollpppppopppoppolopoopopoopllloppoolloooolopolllllllollllllllllllloolllyòÿú”lllllllClClClllCCCCCC?CClCC?>?CCC??CCC?Cl??CCCC???>?CCC???>>??>AÅþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vØþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿæy55555555555555755555555557555555555555577557755575555755555555555555555555557755555555555757575555555557555555555555555555555555555555555555555555555555555755555555555555555555555555555555775555557555555557555555755555555555555557557755755555555555555555555555555555755555755555555575555555575755555555555755555555555557555555555555555555555557555555557555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúüüü÷¬slllllllllllollllllloollllolllooooloooolopoloooollooooopoolopppopolooooppplooovâÿÿÿü˜ppoopppooooppooooopoppoopppopooppoppoopoppoooppppppooppoooppvooopoopoppoooooppplpooloppoloooppooloooopooolooooolloolllloolllllllllllllollooCluÌþþÌtlClllCllllClllCCllCClCCCCCClClCC??CC??CC???CCC?AC?>A?C?CC>>>>>?>táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæy5575555555555555555557755555555557555555555555555555555557555755555555557555555555555555555555555555755555755555555555557755555755555755555555555555575555555555555555555555557555555557557555555555575555555755555555555555555555575555555555555555555555555555555555555555555755555555555555555555555555555555555575555555555575555555555555555555555555755555555555555555557555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüúü÷¬|llllCCllllCllllllolollollolllllloloolllloooolllooooppooollooooooooplopppoopolvßÿÿÿü˜olpppppooopppolooppppppopooppppoooppooppppoppopppppppppolppppooppololoppooppooooooololpoooloopollopppolooloolllollllllooloollloolllollollllll›üÿñyllClCCClClClllCCCCllCCCC?lCClClCCCCC?>??>?C??CCA>?C??>??A??>>A>?>>ƒúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oØþÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþæy55555555555555555555555555777555555577555555555555555555555555555557555555555555555555555555557555755555555555555555555555555555555555555555555555557555755555555555555555555555557555555555555555555555755555555575555555555555555555555555555555557555555555555755555555555555555555555555555555555555555555555555555555555555555555555555555555555575555555575755555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüüüüúüõ¬sllllllClllCllllllCCllloololooCllpoolloolollllllopooooppplppollllllppooooopoloußÿÿÿü˜oooppoopvppppppppppooloopolpvppooppooooovvooooooppppoopppooloooppoooooopopvplopolopoooolpolllollpooollloolllolooplllloolloololllllllllolCllC{ñÿú”CCCClCllClClCClCCC?CCCllCCCC??????CCCC>?CC??C?>?C?CCCC?>??>>>?A>>>>AËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oØþÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþày57555555555555555575555555555575757757555555755555755555555555555555555557555555575555555555755555555555555555555555555557555555557555555555555557555555557555555555555555755555755575557555555555555555555555555555755555555555555555555555555555555555557575555555575555755755575557555557575575555555755555555557555555555555555555555555555555555555555557555555555755555555555755555555555555555555555555555555555555575555555555œèÿÿÿÿÿÿÿÿÿÿÿüúüúüüü÷§|lllllllllllollllllCollollolloloolllllollololopollooolllooopollooooolloloppopoußÿÿÿü˜oppooloppooooopopooooooppoopoooopopopploopoopvpoooppolppoloooooooopppoopoooolpopoopopppopppooplooollllloloopplllollllllllllllllllllllllllllußþþÌulCllllllClCCCll?ClCClCCClC?CCCCCC?CC???C?>>?C???C>A>>>?C?>>>>?CA=A>>]ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþæy555555755555555555555555555555555755555555555555555555555555555555555555555555555555575555555555555555555555555555555555555555555555555557555555555755555555555555555555755555555555555555557555555755555557555557555555555555555555555555575555555555555555555557555555555555555555555555555555575555555555555555555555755555555555555555555555555555555555555555555555555557555577555755575555555555555555575555555555555555555555575555555555555555557555555555555œèÿÿÿÿÿÿÿÿÿÿÿüúüúüüü÷¬vCllllllllllllllllllllllllllllloolollolllloolppoloolollolololooopooplloolopooovâÿÿÿü˜ppooolpppoopoloovooopoopoppooolvpoopppoolooooppoopoloooplloopooopoopooopoooloooooooooopoooooopoollollloollooolllllllllllllllllllllllCllllll�üÿçylllllClClllllClllCClClC>CCCCCC??CCC?CC?C?>>>??C??>?>>>A>?A>>>>>A>=>>>>Åýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþþæy5555555555555555555555555555555557755557555555555557555755557555555555555555575555557555555555555555555555555555555555555577555555555755555555555555755555555555555555555755555555555555555555555575555555555555555555555555555555755555555555555555555555555555555555555555555555555557555555555555555555555555555755555555755755555555555555555755555555555555555755555555555555555555555555555555555555555575755555555555555575555555557575555555555555555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüúúüüü÷¬sllCCllllCCClClllllllClllllllllollloollooloopooooooollopooollooopooooooplopoloußÿÿÿü˜oolooopoooppopploppopoopopppoolvppoppoooloooooopooolopoolooopooplooolooolooollpololllloolllooooololoooollllllllolooloollllllllllllllllllClƒòÿú˜lClllllCCCllllCllllClCllCCClCCC??>?CC?CCC?CC>>>C?>?CC?AC?>>>>??>>>>>>>=táÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿÿþþÿÿÿþÿþæy5555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555555555555555555555555575555555555555575555555555555555555555555555555555555555555555755575555555555575555555555555555555555775555555555555555555555555575557555555555555755555555555555555555557555555555555555575555755755555555555555555575555555555555555555555557555555555555555555555555555555555575555555575555557755555555555555555555555555555555555555555555555755575555555555žèÿÿÿÿÿÿÿÿÿÿÿüúúúüüü÷¬slllCllllllllllllCCllollllllllllllloolooollolllllllolollllllooolopooolloooolooußÿÿÿü˜ooooopolllooovpoloppooppoolppppvooopvpooppoppplloppoopppoopopooollooloolloppllpoolloooloollllllooollloooollllloololloollllllllllllCllllllvâÿþÌtCCCCClolllCllCCCC?CCllCCC????lCCC?CC?>>CC?CCC???C>>??>>CC>>>>A>=>>>=>?=>z÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ– Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþÿÿþÿÿþÿþþày555555555555555555555575557555575555555555555555555555557555575555555555555555555555555555555555555555555555555555555555575555555555555555755555555555555555555555755555555555555555555555555555555555555577555555555557555555555555555555555555557555555755555555555555755555757555575555555755555555555555555555555555555755555557555555555555555555555555555555555555555555555555555555755555555555575555555555555555555557555555555555575555757œèÿÿÿÿÿÿÿÿÿÿÿüüúúüúüõ§|lllClClllllllllllllllllClooloolllllololllollCollpoollllllooopoloooolloooooooovßÿÿÿü˜olpoloooolooooopolovoopoooopoolpolloopolopoooppoloooopoooooolloplooooooopooplooooooooollloolllloollllloolllllolooloplllllllllllClllllllloÇýÿèylllCClllCCCCllCCCCCCCCC??CCCCCCC?CCC?CCCCC??CCCC>C?A?>>?C?>?>>?>>?A=>A>>>AÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿþÿÿþÿÿÿþþæy5555555555555555575555555555557755555555755557555555555555555555755555557555555555555555555555555555575555557557555555555755555555555555555557555755755555555755755555557775555555555775555555555555575555555555555575555757555555555555755555555555555755555555555557555555555555555555575555557557555555555555555555555557555555555575575555555555755555555555555555555555555555555555555555755555755555555555555755555555555555555555555575555557555575555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüüúüúúüò§qCllllllllllllllllllClllClollllllllloollllllllloopololllllloloooolllllooooopolußÿÿÿü˜ooooloooooooollopoopooopooovolooooooooloooooooooooooopoooloooloopooooooppolplolpooolooollpollooolloolllllolllllllllollllllllllllllolllll”÷ÿú˜lllllCllCCCCClCClCCClCC??ClC?C?C??CCC?CCC???????C>AC?>A>>>A?A>>>>A?>=AA=>>=]ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vØþÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþþày5555555555555555775555555575555755555555555575555555755555555557555555557555755555555555555555755555555555555755555555555555555555555555555555555555555555557555555555555755555555557555555555555555555555555555555555555575555555575755555555755555555555555555555555555555555555555755555557555557557555555557555555555755555557575555557575555555555555555555555555555555757555555555555555555555575555555555555557555555555555555755577755557555557755555555555775555555555555555557œèÿÿÿÿÿÿÿÿÿÿÿüúúúüüú÷¬|CCClllllllCCloollllCllllllllllloolllllolllolllololloooolllllllllllpoooppollllußÿÿÿü˜pllopoolopppollopoollpooolovoloooopppoloopopolloopoloooooloppooploolooopollollopllollooloplloolllooollooooooplllllCllllllollllllllllllluáÿþÊlCllllCllCCCClC?CC??ClCCCCCCC?>C??CC>?C???>?C?>>??>??>>??>>>>>>>=>>>?>A>>>==>–ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿþþþþÿÿÿþày55555555555555575555555577555755555555555575555555555555555575555555555575555555555555555555555555555775555555555555555755555555555555555555555575555555555755755555555555557555555555555755555557555555557555555555555555775555555755555575555555555555555755555555555555557555557555555755557557575555575557555555575557555557555555555555755575575555555555555555775555555555555555555555555557555575555557755575755555555557555555557555575555555555555755555555755žéÿÿÿÿÿÿÿÿÿÿÿüúüúúüú÷ÒsCCClllllllllCCllCCllCllllClllllllllllollllllllloollllopollollooooooollopooooovâÿÿÿü˜llopolopolooolooooollooolllpooopolpooooppoppoolloplopppoopoooooolopoollpoloooooploploloooollllollolllllollClllllllllllllllllllllllClCloÉþÿèyllCCCClCCCClllCCC?CClC??CCC?CC?CCCC?>?lC?>?C?>??CCCA>>>??>?>>>>>=??>=>>=>>==>CÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oØþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþæy55555555757555555555555555555555555555555555575555555557555555575775555555555555575555555555555555555555555555575555555555555555555557555555555555555555557555555555575555755555555555555555555555557555555555555755555755555555555555555555555555575555555555555555575555555555555555755775555555555555755555575555555555755755555555555555555555555555555555555775555555755557555555575555555555575555555555755555555555557555555555555557555œèÿÿÿÿÿÿÿÿÿÿÿüúúüúúüò¬|lllClCClllCllCCllllCClllllllllCllllllllllloolllllllolloooollooloooollllllloooußÿÿÿü˜lloooloooloopooooopoolopoolooolpolppoloooloooploolooolllopploollloollooollolloooloollololloolloolllllllllloolllolllllllllllCllllllC?ll›÷ÿú”lllCllClCllCCClCC?lCCCC??C?CCCCCCCC?>?CC?>?CCC>A??>CAA?>?A>>>>>>>>>>>>A>=>=>>>=x÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþæy55555555555555555555555555555555555555555555555555555755555555555555555555555555555575755555557577555555555555555555555575555555555555555555555575555555555555755555555755555555555555555555557755555555555555555555555755557775555555555555555555555555555557555575555555555555555555555555575555555555555555555775557555555555555555555555555555555555755555757555555555555555555555555555555555555555555555555755555555555555555575555555555555575555555555755555555555555555555555555555555555555555575œèÿÿÿÿÿÿÿÿÿÿÿüúúüúúúõ¬|lClCllCllCClllCCllllllllllCllllllllllollllollolllllollloolloollllooolllllloooußÿÿÿü˜pollooooolooooopoooplllopoloooloollooolllloooooolooolllolloloolllooplpploolloololllllolpololllloollllllloloolllolllllllllllClllCllCClyçÿþÌtClCCllllClClCC?lCClCCl?CCC?CC?CCCCC???CC>>??AC?>?>>?>AA>>>?>>>>>>A>>>=?>>==>A>=>Åþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÚþÿÿÿÿÿÿÿÿÿþÿÿþþÿÿþþæy555555555555555555555555555555555555555555555555755555555555575555555555555555555557555555755575555555555555555555555555557555555555555555575575555555555555555555555555555555555555555555555555575557755555555555555555555555555557575555555755555555555555555555555555555555557555575555555555555555555555555555557555555555557555555555555555555575555577555555555555555555555555555555555755555555555555555555555555555555555555555555555555555555555555775555555555555555555555555555755555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüúüúüúúò§slCCClCllllClllClllClllllllllllollClllloloollllllollolllllllolllllloloooooooolußÿÿÿü˜ooloppollloooloolllooooooooooooololloolooooolollllllloppolllpooolopolppoolloplllollloolllCollollllloollllllllllllllllllClllllllClClCuÞþÿçyCClCCllCCCCClClCCll?CCCC?CllC>?CCClCCC?>?C??C?>>??>>>>>>>>>A>>>>?>>A>====>=======Báÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà ! oÚþÿÿÿÿÿÿÿÿþÿþþÿÿþþÿþày555555555555555555575555555555555555555555555555555555555755555555555555555555555555555555555575757575555555555555555555555557555555555555555555555555555555575555555555555555555555555555555555755555555555555575555557555755555575555555755555575555555555755555555555555555555555555555755555555555555555555555555555555755555555555555555557555555555555555557555575555555555555755575755555557555555555555555555557555555557555555555555555555555557557755555575555555555555555555555555555555555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúüúò¬|CCCllCCClllllCCllllllClllClllllllCllolllllllllllolllllllllloolloololllllloollußÿÿÿü˜lllooolllolloooloollolopoolooopooooooolllplllllppoolooopllooolopoollloolloolllllooolllllooolllloolllolllllllCClllllllllllCCCClllllll›úÿú”llCClClCCllCClC?CCCl???????CCC?CC??????>>>A>?CCA>CC?>?>>>?>>>???>=>=?A======>>>>=>=�úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿÿþÿÿþþÿÿþþæy555555555755555555555555575755555555555555555555555555555557555555555555557555555555755557555555755555555555555555555555555555555555555555555555575555557555555555555555555555555555555555555555555555555555555555555555575555555555577555575555555555557558555555775555555555555555555555555557555555555555555555555555555555555555555555555555555575555555555555555755555555555555555555555555557555555557755655555555575555555555565555555555555555755555555555555555755555555555555755555555555557555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüúúüúúüò¬qCCllCCCCllClllllllllllClllllloClllllollllClolllllolllloloooplllloloolllllolloußÿÿÿü˜llllllllllllooolooollloopoloolpoooooololoooooolooooollololopollopllllllllllllllooollllpllllollllllllollllllllllllClllllllCCllClllll{ñÿþÌtClCClCCllCCCCCC??CC??C???CC???C?A??C????>?C????>>C??>>>>>C>>>>>A>>>=>>>>>>>==>>==>=>ÉþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþÃvØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþþþæy5755555555555555755555555575555557555555555555555575555555557555555565555555555555555555555555555555555555555555575555555555555555555555575555555555555555555555755755575555555557555555555555555557555555555575755555555755555755755555557555555555555555555555555555555575555555555555555555555555755555557757555555555555557555555555555555555555575755555555555555555555555555555555555555555555575555555555555575555555555555555555555555575555555775555555555555555555557755555555555655555555555557557555557œéÿÿÿÿÿÿÿÿÿÿÿüúúüúúüò¬slCCCCCClCCCCllClllllCClllllllollllllCClllllllllllllllloloopolllllllollllollloußÿÿÿü˜llllllooolllolllloolloooooopllololoooolooopooolllooolloollooppllollllloopollolllllllllollloolllllllllllllllllllllClllllClllllllllltÞþÿçylCCllCCCCC?CC>CC??????CC??C???>>A>ACCCC?CClCC?A?>>?>>>>>>>C>>?>>=>>>>==>A>>>========>tñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþþþæy55555575555655755755555555555555555555555555555557555755555555555755555555575555555575555555555555575555555557655557555555655555555555555557555555555555555555555555755555755555557555555555555555555555555555555555555555575555555555555555575555555555555555557555555588755555555555557555555555775575555555575555555555555555557555555555755555555555555555555555555555555555557555555555555555555575555555555555555555575555555557555557555555555755555555555555755575555575775555555555555755557755œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúòÒsCC?CllllllClllCCCCllCCCllClllCllllllCClllllllClllllloolllllllllllllooloollllloßÿÿÿü˜llpooooppoooolloopollollllpplloolllloollololllooopllllllllllllllolllloolllllllllolollopollllllllolllClCllllClllCCllllllllllClCClCC›úÿ÷”lCC?ClCllCCCC??C?ClllCCCCCCCCC?CCC?>??>>>>>?>>>>>>>>>>>>>>>>>>C>>>>==?>==>>>==>>=>A>===…üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà   pØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþæy5555575555555755555555555555555555555555755555555555555555555575775556555555555555775555555555555555555555555555757755555557555575555655555555555555555555575555555555555555555555755555555555557555555557555555555555755555555555555555555555557555555555>jC85555555555555555555655557555555555757555555557555555755575555555555555557555555555555555555555555555557555555555557755555555575555555555555555555555555555755555555557555555555555555555555555555555555575555555555557555555555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúõ¬sl?CllCCCCCCCCClCCllllCClllClllllllllCllllClllllloooolllllllllllllllllllllllolußÿÿÿü˜llolllllloolpollloollooollollloolllooollllolloollplllloopllloollolopllllllllloooollClllolllllllllClllllllllllllllllCCClCCClllCCllyñÿþÌlCllllCClCCCCC?CllC?CCC>CCCCC??>>?C??????C??>A>>>>>?>??>>>>=>??>>A>=>==>=>===A>====>==>=AÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vÚþÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþæy55555555555555555555555555555555555555555555555555575555755555555555555557555555555565555555555555555555555557555755555555555555555555555757555555575555555555755555755555575555555555555575555555555575555555555755555557555555555555555555555555555555755555558l{{j755555755555555555555555557555575557555555555555555555555755555557755555555555575555555555555555557555555555755575755555555555555555555555555555555557555555555555555575555755555555555555557555575555555555555555555555555555555555555555555555755œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|lC?ClC?CClCC?ClClllllClllCCllllllllllCllCllClollooollllllllllllllllllollllloooßÿÿÿü˜lllllolllllooloolllllloolllllolllolpooollollloolooolllloollllolloloolllllllllloolllolllllllllllllClollllllllCllllllCCllClCCllllluÞþÿçyCllCCCClC?CClCCClCCCCCC>CCl????>A????C>?C?????>>??A>A?A>?>>A>??>>>>=>>>>>>===>>=======>==_÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà    pÖþÿÿÿÿÿÿÿÿÿÿþþÿþþþÿþæy555555557555555555557555555555555555555555555555555555555555555555555555655555555555575575575555757575555555575555555555555555755555555555555555557555555565555555555755555555555555555555555555555555757755555755555755555755555558755575557575575555555555555575555555555558Cw{j555555555555575555555556555555555555755575555555555555555555775555755555555555755555555655555555555555555555555555555555575555575585555555555555555555575555555755555555557875555755555555555555755557555755555755555555555555555555555755555555555555555557555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúõ§pClCCCCC?ClCCCCCCllCCClllCllCllCCllllllllllllllllllllllllllollllllolloplllllllußÿÿÿü˜oolllllolllolCloolllollllolololllllpplloopllollllllolllllllllllolllllllllllllllllloolllloolllClllllolCllllllCllllCCClllCllllCCll”úÿú”llC??CAClCClCCCllCC??lCCCCCl?CCCCCC>>>?C??>>C?C?>CC?>=>>=>>AC?>=>>=>>>>>>=>=>===>=>==>=====ÆþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pØþÿÿÿÿÿÿÿÿÿÿþþÿþþþÿþæy555575555555555555575555555555555755555555555556575557655555755555555855557555555555555555555575577575557555555555555555555555555557555555555555575555555555575555555555555557555555555755556555555555555555555555557555557555555555565555555555555555555555575555555555555555555555555655555755758jj75555555555657655585655555575557555555555555555555655565555555555555555555555555555557555555555655555555555555555555555555555555555555555555557575555555555555555755555555755556575755555575755755555555555755555555557557855555555555558555865555555775555555555556555575555557855555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|C?CCllC?CCllCCllCllllCClCCllllCllllllllClllCllCCllllllllllllpoollllllllllllllußÿÿÿü˜lollllllloolllllllllloollllolloollllllllollllllpolollllllllllllllllooollllloollllllCClpllllllllllllllllllClllllllllCllCllCCCCCluâÿþÌtCCClCC?lC?lC>>CCCC??CCC??CCC??C?C??C?CCC>>>>>>>>??>>>=?>>>>>>>>=>>>=?A=>A===>=>==>==>======Bñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþày55555555555555555555555555555555555555555556555555557555555775555555555575556557555555575755555555555557555755555555557775585555555555577555557555655555555557755755555555555755555555657555555765555555555555555555855575555555555555555555555555558555755555757557557555555555555555555555555555556755557578755555575755556555755555555555565575557557755555555555555555575755755555555755555555555555755555675557555555555555557575555555756555556755555555557558557558555556555875555555555556555555555555665555557555556555555555555555555555555555555555555555555555555555555657555555555555655555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬CCCCCCClC?CllllCCClCClCllClCllColllClCClllCllllllllClllllllolllllllollllollllußÿÿÿü˜llllllllollllllllololllolllolllpolllllloollllollllllllollllllllollllllllllllllllllllllolCClCClllllCllllll?llllCCllllllClCClllll�üÿò{CCCCCllCCCCClCCCC?CCC?CC??C?>????A>A????????>>>?>>?>>>>>?>>>>>==>A>>>>===>=>>====>===>=======ƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vÚþÿÿÿÿÿÿÿÿÿÿþþÿþþÿþþày55555555555576555555555555556555555557575555756755685555557755557555555555555557555555557555555555555555555557555555555555555555575555555555755655555555557555555557555555555555575575555555555555555555555757557755555555755555555555555755555576555555555555557555555555557775555775555555555575555585555555565555555655555565555555557555555555555555555577765575555565555587555555755555755555555555755555555555555555555555555555555556555555556555555557555557557575575557555555555655755555775655555555555555555557557555555575557655555555557655555555555555555775555555œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬}CCCCC?CCCClCllClC?lCClCllCllCllllllClCCClCClClllllCllllllllolllllllollllololCoßÿÿÿü”ollllolllClllllololoollolllllllolllllllollloolllllllllllllllolllllCllllollllCllllllollllCloCCllllCllllllCCllCllCCCllCllCCllCCCyñÿý�lC?CCCClC?ClCCClC?C????CC?C?A?C???>>>??AA??>?>>??>>>>>?>>>>>>>>>>>>>=>>=>>===>>==>=====>===>=>AÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  vÚþÿÿÿÿÿÿÿÿÿÿþÿþþÿþþþæy555577555555555555555555565555755575555555857555555555555555556575755757555557555555555755555555555557555555555555555555755555555555555556575575555555555655755555565555555555555555555555555555555777555555555555555555555765555655575555555555755755575555555555555555755555555555555557555755555555555555575555555557555555555555555555555757755555575555757575555555555575575555555775556557555555555557757555555555555557555555555557557555555555556555555555555556555555555755555575555555555555555555555555555555555557555555575555555555555557555555555655555575555555555555557555œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|CCCCCCC??CCC?CClCCC??C?llClCCllCllCCllClllllllllCllllllllllolllClllllllClllolußÿÿÿü˜ollllollCloolllllCllllllllopoooolllolllplollllllolollCllollolllolCloollllllllCllllllClllollClCllllllCCClClCCCllllllCCCCCCllCClÉþÿâyCCCllCCC>??ll?>CC>???????CC??l?C?>??>CC?CC>AC?AC?>>=>>>>?>>A>>>>>>=>>>===>>==>>>=>==>====>=====xòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–þÿÿþà   pØþÿÿÿÿÿÿÿÿþþÿÿþþÿþþþæy7555575585555555755755577555755555755557555555557555555557655555585555555555557755555555557755555555555555555555555555555575556555575557555555755555555557555555555555577555557555555755555555655555555555565655555575557555557575755555555555756555555776555555765555555555555575555555555555555555555755555555555555675555555555555556755557565555555555557555555555757555577555555555555587577555557765555557555567655555555755555555755555555555555775555575557565555555555555555555557575555555555555555556565555555755565555555555555755555655787555755555555555555555755555555555555555œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§|????lCCClC>ClCCCClCClC?CCCCClC?Cll?CCllCllCllCClCllllllCllCllllllllllllClollltßÿÿÿü”oollllllollollllllllloplllllllllllllolllllllolloollllloolllolllllllllllolllllllollllloollClollllCllllllllllllllClCCClllClllll{òÿú”lCClCCCCCCClC?C>??CCCC?C>?C??>C?>?>C>CC>C>>>=?>>?>>>>??>>>>=>>>>>>==>>=>>===>=>==>===========>==>Âþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþþÿÿþþþþþþày755555555555555555555755555555755555555556555555575555655757557555555555755556555555555555555555655555555555555557767555755555555556555557675555557555557555755555555555555555775555755657555555555857555555555575555565555555565555577767555555575755575555555775555555555555555555575555555555557555555575775756555555567555555555577555585555755655555555555555555555557555555755755775755555555555555755557555555557555555555755555565575555555555555565555575755555555555565575555555755655555555755555557555755575557555655655555565575555565555555555555555555585555555755555555555555755555555557555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|CC?>CC?CClCCCC?ClCCCCClCCCllCCCllClllCCClllCCllllllClllClCClllllllollllllollloßÿÿÿü”lollllllolllllllllllllolllllolllllllllClllllollllllllloollllllllllllllllCllllllollllooClllllllCllCllllCCClllClCCllCCCllClCCClÌþÿçuCCCCClC?l?CC?????CCCCC>CA>CC???>>??A?????=C?A>>??>>>>=>>>>>>=>>>>>>===>=====>>>==========>=======Bçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿþþÿÿþþþþþþày755555555565555555555555555577557555555555555655555575557655555555655555756655675575675555757555555575755575555555555558755555558555555555557555Ct75555555555755555555575555555875557555555575557555555555555755657755565555555755585555576775555555565655576675555555555575555755575555755577555556565555575555555555555575755755755655555555575755555555555557775555585555755757555655555677556556555555757555555555555575555555565566775755555558755555555555655555755555655567575655555555557555555675555555555555556855755557657755575555555555565565555555558555576555555555555555555555555575755œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|lC>>CC??CClC?CCClCCCClCCCClllCCllCClllClClll?lllollClllCClllllllllpllllloolllußÿÿÿü†lolllllllllllllollloolllllooolllllllllCllllolllllllllllllllClllolllllllllollllClllollCCClllCClClllllClCCClCCCClClCCClCllCCCl–÷ÿÿÞlCllCCC??lC?C?C???Cl?CC>CC?C??C>>?C?>A>A?A=?CA>>A>>>>?>>>=>==>>>?>>>==>>=========>>===>=====>====$=–ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  oÚþÿÿÿÿÿÿÿÿÿÿþþþþþþþþæy575575555557557555556565555657555555556757555555565557555555555555556555577755555555555555576557555557557575555555575555555555755555685555555555555558†ßj7555555555557565555565555557555575557555555575757555555575555757575557555555557555557756557777575557555555555655577555575577565557556555556755555555575555555555755778555555557575575556555575575555555555575555585655555555557655557577555755556555757555755575556555755575555557555587557755755557555556555556555765555555555557555865555557857555557576555555575555555555565555555555565555555565555755577575575655555557555555555575565œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§p?>?CCC?????>CClCClCClCCC?C?CCClCCClCClllClCl?CClCCCCCCllClllCCCCCllllllCCClllußÿÿÿü”lCClllCCCllllllolloooolllllllllopoopollllllllolClllolClllllolllllllCllllllllllllllllCllCCCllClClollllllllCC?CllllCCCClCCClt›÷ÿÿÿÌl?CCl???>C?CCCC???ll??>CCCCC?>?>ACC>A?>>>A>C?>>>=>>>=??>>??>>===>=>>=>A====>>===>===>==============BòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà    pÚþÿÿÿÿÿÿÿÿþÿþÿþþþþþþày75556755755557655555775557657555555555655555555575575555585575557567555655555555755555577557557555557657555655556755565555555678555675555555555557ly855555555555655556776555555555555556555855555557555555755755555555555555555557555585685555555557756557765555555557555565855557655785575557555555557655575555556555755555555555555555555755575555755558555655555655555655555556555557555555556555555555755575555577555555576655755555855655555557555755555755555555555755555567555557555555555575576555555555575555555555555555555675555555555756555555555557755755555555555575555555655555555555555555555565557œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúòÒv?C???CCC??CCC?CCClCCCCCCClCCCCllCCCllCllClCCClColClllllllllllllllllllClllllllußÿÿÿü”oCllllollolllllllllllllllolllllllllClllloloCCllllllllClllllllllllllllllCllllllllllCCllllllCClllClCCCClllCClCClC?C?CClllCCyÞúÿÿÿÿÏtClC??CCCCCCClCCC??CCC???>?CC???C?C?>>>??CA>>>??A??A>=A>>>>>>=>>>=>>>>>=>===>========>==============Èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþþþÿþþþþþþày55556555555555555555556555755655555575755555575578555555555775755655557555555555575555555555755555555556557555555555555756755655565555555555555555555556555575555555555555575655555555555556555577555555555555756555555555755555555555555565557555555565555585555555576755555557555555555557555555755555555555555555565575557555655555555555565757555555555555755555555557576555755557555555555555555556557555555755555555555557575555555755555555565565555555557577555565558555755555555758557555555755555555585555575555565555575566567555555555555565555575655555556555757557555555555555555755555555575755557œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|CCC??CCCCC?lCCCCC?CCCCClCClCClCCllCClCClClllClClllllCllllllCllllllllCClllllCloßÿÿÿü”lCllllolCllllllllllllllClllClllCllllllllllolllllllllllllCllCllllCClllCllllClllllllllCClllClllCllllCllllCCllCClCCClCCCClCyçþÿÿÿÿÿñu?lC?CCCCCCC?CCC???C?A??>>?C???A?A?>>A=C???>>>?AA>AA?>=>>>>>==?>=>===>>>====>=======================xþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþþþÿþÿþþþþày555555555585558555555755555555557555575555555656875655575555555555575555555555555655555755765555556555555557755556557575557555575555655555555555555555555555555555555556555655557755756555555558575555555555555555555775565655657555555557557555555555555755555655765555555555555557655556556555855555555555555556555577557755557558555555756575555775755756555555685557577555575555855555555556555555555557565655555566567556555555755555555555556556555555555555555555755575555675555555555875555565555555756755755555655555555555555575556867555555555575555555555555755555575565755565555555555555755555555555755656655556œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬|CCCCCC?CCCCCCC??????CClCCCCCCllllCCCCCCllllClClCll?CCClClllCCClllllllCllllllCtßÿÿÿü˜lloollClClllCllClllllllCllllllllllollCllCCllllllllllClllClCllolllCClllClllllCllCllCCClllCColllCCCCCllCCCllCCCCCllolCCCCtßþÿýò÷þÿúz>CC?ClC?CCA>Cl?>???>>CC>>>>C?>=?>>>>>>>?>>>>>>>>=>??>=>?A====A>===>==>===>=>>>>=========>=====$====[úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþÿþÿþþþþþþæy5555755555555755575555555555555555555755665565557567557557555567555555555555557656575667655655757555565555565555757555555575655755565555655555555556555575555775555555558555558557555557556555775655577555556685557555565555577855555555565555557555555555566565556555787766556555555555555555555557555756556575555555556555555555576555555555555555757565575555575555755555555655555555555555766558575577555555555575555767655577555555555557656555757857555555575555567675556655555555655555557555555576555555555555555555555755555756855655555557555555555555555555555557655556555555576755557555555557555655555555665558565575568555577œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§qC?>>??CCC?>?C?ClCCClC?CCCC?llCC?C??CCClClCCClllCC?CllllCCCllCCCllC?CClllCllCCoßÿÿÿü˜lClllllllllllllllClollllllllllCCCoololooloolllllColllllllllllllCCClollllllCllCllllClllCllClCCllCCClClCClC?ClCCCClCCCCC?–ýÿ÷�tzñÿü›CCCClCA>CC?>CCC>>ClC>>CC>>>C>>>A>?CC>A>=>>>>>>>=>==>>===>>A=>====>=>=========>>=============$===$==xüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà       pØþÿÿÿÿÿÿÿÿþþþÿþþþþþþày5575655555555557555655555555757555555565555555655555555555655655755566555555555555555555575557755555565556555555555557556685555565555555565655555565555565685566555556655565555556655557555565557557557555555755565557555555555755665555555557555778755575555555555555575555555565656555555556786556775555556575555565555575555655555675765555555555755555575555555565555555555555555555685667556556555557865755565555555555555555655555756555555556555555555555555555555555755555555555757557655558557555555555555655557555555555756556555756556565555575566556555565655565555655655557655555555655556655565765566555555786556777œéÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬v????>?CCCC??CC?CCCCC?>CCCC??CCCClCClCCCClCCCCCCCCCClllCCllClllCllllllllllllClußÿÿÿü”CCllCClllllCoCClollllCClllollllllllllllCllllCllllllllllllllllCllClllCCClllllCllllCClCCllCClllCCClCCClCCCCCCCllC?CCClC?tÞÿüÆlCC�üþÌCCCC?ACCC?CC?>>>??????ACCC>C??C>>?>>??>?A>>??>>>>=>>?>A>>>>==>>=>>>>==>>========================$$=ÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà pØþÿÿÿÿÿÿÿÿþþþþþþþþÿþày65555555555556555565555565565575555555555556555755556755555555655555655555555775655655755665555655555655555655655657556575555577555555665555555556565755557575556655575667655758555555555558555676665555555555575555555555665555555555555555668657755855555658555577575655555555565555665577657555575568557555555555655555557555555755565557555758555558555565555785555556655565555555555655555555555555575555555655675567588555566557555555556556755557555555656587865555786555555555557585558567565556555785755556655555657556555675557556755556555555575576565555555558555566555555555655555555655565555557555556565575555557555555567555577555655555568665œèÿÿÿÿÿÿÿÿÿÿÿúúúúúúúò¬q?>??????CCC>CC>?CCC??CCCCC????CCClCCllCCClllCCCllCCClClllllCllCllllllllCllCCCußÿÿÿüƒlCllClllllllllllllClClllllllllllCCllCClllCllClCllllllClllCClllllClllCCCllllCClolllCllCllCClllCCCCCllllCClCC?llC?ClCCCCyòÿçuCCCußþñuCC??>CCACCC>A?>C?>>C?>CCC>>?C>>??=A?C>??=>??>>>>>=>>>>>=>>===>====>>>=====>=======>===========$==Bòÿÿáçþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pÙþÿÿÿÿÿÿÿÿþÿþþþþþþþþày5555655585665655555566677855575655555555557765765575555555655558855555555557557756755557657555655567655755556555555555566555555775555587557755555565555555555655756565555555755585555556555857575556555855556855555557555565555555556655555557555555575555555755575566565555755557555655585565565555555555555788755555756555555555566557755557555755577555875575855755557557765555656555755555855655555555575557555555555555575555575558555556555555555555555556757555655655555557655555555555555565555555555555755555555555555555555565555555576555575656555757556555555555555555566655587575555655555555555555555585655556578555675555555656555555655555665775555557577œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§vCC?CCC?>?CC>Cl?CCClCCClC?CCCClCC?C?A?CC?>llCCCllCCCCCCC?ClllC?CCClCCCllollClCtßÿÿÿü”lCllClllCCllllllCCllllClCCCllllllClllCClCCllllllllllCllllCClllllllllClllCClllllCCCClCllCCCCCl?C?C?llC?llCCCCC?C??CC?Cly÷þÉlC?ClzçúÅlC?CC?C>?CC>?C>>????>>>?>A?>>>?C?C>=>=A>=>>>>?>>?>A?>===>?>=>=>>=>=====>>=>==========>======$====…ýÿñZBÈüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà oØþÿÿÿÿÿÿÿÿþþþþþþÿþþþæ{5557655567555755566566557555555655655865755555577555556555587555575575555565855755555565555755555566555675655557555555555755755555566565557558855565576555555555557675575566577555557565586575575655555555655565556565565655557555658555555557558555655555555555655656555755555665555555557557555555775655565765555555555555656556555555555566755565575865775657855558755855576655555576555576756555555555556555557555557565565555777777777777777878777777777777777777777777777777777777777777777777777777777777777777777777777777777777777787777777777777777777777777777777777777777755566555577558655578755555775655655756565555555555556555žèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§v?CC>>?A>????C??C??CC?>C???CC?CCCll??CllC?llllC?ClCCClll?CCCCClllCCCllCCCCClCltßÿÿÿü”lClllolCClll?CllllllllllCCllCllolllllllllllllllllCllllllollC?ClCCClCClClllllCC?CCllCCCCllllCCCCllCCCC?ClClClC??CCCCClCyòþÞtC????uɘl????C?ACCCAC?ACC>???C>?C????CC>>>>>>>>>>=>>=>>=>>>>A=====>>===>>==>>>>=============$=$$==$$==$$=Ëÿü‚$$@Æýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà   pØþÿÿÿÿÿÿÿÿþþþþÿÿþþþþày55585555655655555565555565555555586765587755555588755557755555555555555576565555555555555556555555555555555555555555555555555657577555555558755555558556555755555556555556555556575757555756565555556555855557656555656557566655556556565555555566555555757655555657555556585655575556655556557565555555556677555556565555555655565756855555685675557755557885555556585555565575555575555556556556565757655565655657555565555766575$TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUTTTTTTTTTTTTUTTTTTTTTTTTTTTTTTTTTTTT=65565556555558755557555655555555656555785555565555565œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò§v??CC?C?>???>?C??CCCCCC??CCC?CCCCC?CCl?CCCCCCC?CClCClCClCCCCllCClCCCllClCClClltßÿÿÿü†lCllCllCollCCllllCCllCllllClllClCClllllllCllCllll?lllllCllCCllCllCClllClCCCllClClll?CCClCCllllCCClCCC?lCClCC?CCCCCC?CCtçÿú›CC>ACCCl?CC>CC?C>AA?CCA?>>?>??>??>CA>>>A?=>>=>>>C>>A>=>>>>=>>>=>===>===>>=========================$$=$===ÏþÆ=$$$@Ëþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþþþþþþþþþþày555555555555555655555555555655555578566556555555655555555556655655655555555655665656556555556566555565655556676655665566555655555565658665665565556555555565575778865556555555555555575555768555555656557556575565556555557566655657655567755675575565755555555585555555557875755755555555658655565576556575556555555565665855555555656555555555788567555555565555565575656666565555565657565757555575555555565657555655555656756565675=TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT!775555556765555756575765576555565586557555555657555555œèÿÿÿÿÿÿÿÿÿÿÿüúúúúúúò¬q>???>CC?>?C??C?CCC?CCCCCCC>?ClClC?CCl?CllC?CC?ClCCCl?ClCCCCllCCClCCCCClCClClltßÿÿÿüƒCClCCllCollllClClCClCClollClllClCCllClllCCllCClllCCCCllClCllllCClCClCllCCCCClCClllCCCCClCCCCCCCCC?lCC?CCCClC?lCC?CC??CC›üÿúÅl??l?C?>CC???CCA>?CA???>>>?C?>??>?>>>CA>>>>=>>?>>>>A>=>==>>>>>==>>=>======>=========>=======$====$$=====ÉÏB=$$=$_úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pØþÿÿÿÿÿÿÿÿþþþþþþþþþþày7565555655555555655655575655565555565677755555655555556556555556556556575555565567565855556655555655775756555655555676655557575557556557555566555655555865555567757556856555555555557555565565556555555555655755766555565555556566555555555575555556555555665555655785556557576555555655566866658665756665555555555755558657==9=99===99=9=====9999;===9=9=9$$=9=9===$99=999===9=====9999==9===9999==9=9=9=999==$=$$99==99=9====99=9=999=99=9==$$$99==9$=$!$!!9"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT9$===99==99=;=9=;99;9==;9;9=>;==@=======99=99==9=@=9;>==;9==@�èÿþÿÿÿþÿþÿÿÿüúúúúúúò¬qC???>>??C?>?CC?>>??>>A?CCC?CCl??CC>?C?ClC?Cl???????C?ClllClClCC??CllCllCCllCCCßÿÿÿü”loolCC??C?ClolCCllCCClllCCllllCCCClll?ClllllC?CCllloolCCllCClllllllll?CClCCCCC??CCClll?CCCC?CCCCC??CllCC???CCCC?CllC>??tÌþÿüÞ{ll?>??C?A>>CCCCClC>>???>>>A?A>>>>?>A>?A>>>>?>=>A===A?>=>>==>===>=>===========>========$===$$====$=$$=$@@$==$==ƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþà oØþÿÿÿÿÿÿÿÿþþþþþþþþþþæ{@@A@;;@@@A@;;@;@@@;@@@@@@@;@@;@@@;;@@@@@;@65555655555575558585685555557876555656555578767675558555566556555766565555566555555556555556675666585655655556775566555755556555555675755775556555555555555575565765568555565555655766555555657565566565656555565656556855586555565755555657558675655566555576565555855$TXXXUXXUXXXXUUUUXTXXTXUTTUTXTTUXXTTXTXTXXTUUTTTUTTTUTTTUTTTTTT:TTTUTTTTTUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT""T""""""T""TT"T"TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX�èÿÿÿÿÿÿÿþÿÿÿüúúúúúúò¬v>?A>?A?>A????>>??CCCC??>?CAlCC?CClC?C???C??l?CC?lCClll?lClCCCCC?lllClCC?CCClClßÿÿÿüƒClCCCllllllClCCCCCllClollCllCClllllCllCllllllClllCCCCCCllllCClCClllCllCClllC?CllCCC?ClClllCCC?CloC??ClCCloCClC??C???>?CltÉûÿÿò›tCCCC???A??>A?>??>>?CC???AC>>?>>>==>>=>=A?>>=>==>===>>==?>>=>=======>===>==================$$=$$=====$$!$$$$[çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà     pÚþÿÿÿÿÿÿÿÿÿþþþþþÿþþþà‚XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXX55755555655665555655555656755556565657555567555765757555575555556555576556756655556657555555566755576665665656555555555555557655575555555656555555657555655557575575565555655557575655555555566555556555758566555756786756555555655557555655555567565565555555556565655555$TTTTTTTTT"TT"TTT""TTT"T""T"T"""""""""""""""""""""""""TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT�èÿÿÿÿþÿþÿÿþÿüúúúúúúò¬q?A>C???A>>?>??>???CC?>??CC?CC??CC?CC?CC?CCCCCCCCCC?ClCCCCCC?llCCCCCClCCClCClCtßÿÿÿü”ClllClClCllClCClCCCCCllllllClClCClCClllllCllCCllC?ClllllCCCCllCClllCCCCClllCCCClCCC?Cl?lllCCC??llCCCClCClCCCCCCCC??C?CCl?C›÷ÿÿþñÆxCC>>C???>C?>>>A?>>?>?>>?>>?>??=A>=>>>>?==>A>>>>=>?>==>==>======A===============$==$===>$$$=$$$=$$=$$$$$=�ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÚþÿÿÿÿÿÿÿÿþþþþþÿþþþþà�TTTTTTTTTTTTTTTTTTTTTT"TTTTTTTTTTTTTTTTTTT65755555555555575575656665685557555555555685556655565566565556555555567555758555755566556565565756656555555555565556655655575555556556557565555565556655685565555567585555568555555675565565555556556556655555875555655656575555575555555555555555556558555555655557658656555!T"""TT"""""""""T"""""""""""""""""""""TT"""T""TTT"TT"""""""""""""""""""""""""""""""""""T�èÿÿÿÿÿÿÿÿÿÿÿúúúúúúúòÒqC?>??C??>>?>??>?CCCA>??CCCC?C>A??A?C?CllClCClC?CCC?>lCC?C?CCCCCl??lllClCClCCCtßÿÿÿüƒlClC?CCClllClCCllCCClCCCll?CllCClCCll?llClllCCClC?ClCllCCC?CCClCCCC??CClCCCllCCCCClCCCCllCCCC>ClCC?ClC>?C??>>?CC?CCCCC?????{ÞúÿÿþúÌzC>?CCC?>>?>>?A>>>=>>AC>>>>???>>>=>>=>>=?>>>>>>>A======>=>==>>>=>=============$==$$$$=====$=$$$$$$==$@–óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  vÚþÿÿÿÿÿÿÿÿþþþþþÿþþþþà�T""T""TTTTT""""""""T"TTT"""T"TTT"""T"TT"TT55655655655555655665565555656567655655665756566555555565656575556566555555656666556555565555555765555556556565556557566556575556655657556558575755655667555855765655585757565555555656856566555665565555755655555655565566565555555555665576655565667766555675756556567$""""""""""""""""""""""""""""""�èÿÿÿÿÿÿÿþÿþÿüúúúúúúò§pC>>CC>???CCCCC>C?>>>CCCCC>>???C?C?l??C?AA>C??>?C?CC?lCC>ClC?ClCCCClC?ClC?C??Ctßÿÿÿü”lCllClCCCCCllllCClC?ll?lCCCCllCllllllClCCClCC?ClllCCCCCCCllCCCCCCllllllCC?ClC???ClC?l??CCCCCC??CCC??C???lC?????CC?>>>CCCC>?CCzÏúÿÿÿüß–tC>>C???>CA>>C?>?>>>>>>>>>?>???C?>>?A>=>>>=>AC>AA>====>>========================>=======$=$$=====_ÏýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂþÿÿþÆ pØþÿÿÿÿÿÿÿÿÿþþþþþþþþþæ�""""""""""""""55865655755656666665555555565556567655557577555665655556556565555565566555665568655655755555565555765655565655667555675555668557565865565556565675765656667555655556555555676656655565655656766556555565556576566556665555565655556555555685555555676556655755555665555766555$""""" ""�èÿÿÿÿÿÿÿþþÿÿüúúúúúúò¬vC>>A>>A?>>>CA?>C??C?>?C??C?C?>?CC>CC>C>>C??CCCClCCC??ClCCC??CllCCCCCCCCCClClltßÿÿÿüƒCCCCClllClCCCCllCCCClCClCllC?CCCCllCCllCCllCllllllC?CCCCllCCllC?CCCC?llCClloC?CCllCCCC??CCCCC?CCC?CCClC?>??C?CC???CC?CC?>>>C?>CƒÞ÷þÿÿýóÞ”uC>>???>?>>>??>>>=>>>>>=>>>=>==>>A====>====>==============================$$===$=$$$===$=$$@�Ïúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà !   oØýÿÿÿÿÿÿÿÿþþþþþþþþþþæ�""6555655568655556665555666557656556575575556866665566565555865665558556566656556575786655566755555655567555656555555555565665765668556556565555566665666856565555555566556555656665565555665566656656565558756556555555555685567555555575665555556555565555765685555576655556556555566555$""""""""""""�éÿÿÿÿÿÿÿÿÿÿÿúúúúúúúò¬v?>A?>?>>>>>?>>?>>?CC>>C?>C>CC??CC>>?????C??CCllCC??C?CCCCC?CCClCCC?CCC?ClClCCtßÿÿÿüƒCClClCClClCCCCCCCCClCCllCllCClllCCCCClCCClCClClllCCCCCCCll?CllCCCCCCCllCCCllCClCCCClCCC?CC>CC>CCC?CCCC???CC?lCC???CC??C?????>??CCuÅáúþÿÿþ÷áÆzCC??>>>A?>??>>>??>=>>>A==>?>>>====>====>==>==============>=====>$===$==$===$=$$$$$==>]ÂÏýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþþþþþþþþþþà�""""56658655855555568575555656555556565766566756566555867555855766555555558555555556656555555556665565565657658555665666555555656686656575565665875656555555655658585565556565756665555655557586855565675556766555567556558665555565555565555656555656555575555555555566665665566555687555! �èÿÿþÿÿÿÿþþþÿúúúúúúúò¬|??CC???>>>>?>?C??C?>>???CC>?CCCC??>ClCCCC?ClC??????llC???lCCC?C?CC?lC?>CCCC?Coßÿÿÿüƒllll?CClCCCCl??lllCCC?lCClllllCCCCC?lCClll?CC???C??lllCCCC?ClCCll?ClC???>????C?>CC?C?>CC?C?ClC?CCC???>>CCCC?C?>>???CCCCllCCC>>>?>?>CzÆáúþÿÿþúòÌ”ytCCA?>?>>>>A>>>=>A===>>>>=>>>>>>=============>======$=====$===>===$$==$!=====BxÅçúþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpÚþÿÿÿÿÿÿÿÿþþÿþþþþþþþà�666566655556556686576556675555555555655556856665667555556865566565566755566655556655665655565555565576565855656655665665566657555555666665555565656555566555555666556556566655565656565565568555555565556665555555565557665656556566556555656666855765665566666556567555576555556555$HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH�èÿÿÿÿÿþÿÿþÿÿüú÷úúúúò§|C>>>===>>C?C?>?>>>??CC>>>?>?????CCC?C????llCCC?>?CCC???CCCCCCCC?CC?lllCC?C?CCtÏÿÿÿüƒ>?ClCC?>?CC?lCCC>ClCClClCCCCC??lllllCCCCClCll?CllClllC?CllCClllCCCCCCC?CCCCCllCCCCC??Cl?CC>?Cl??CCCCClllC>?>CCCC???>?>>>>>>?CCCC>>>C??C]”ÎòüþÿÿþüòÏËÅzZAA?=>?>>>>>==?>??==>=====>==>======>==========>======$====$====$=$=Z‚ÆÏñýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà oÖþÿÿÿÿÿÿÿÿþÿþþþþþþþþà�655665566556556566656555565655556555575555665665655555565756665566575656555656655566556565556666667666555865555555655556556566655555655556656656566675665655555766655566655687857556655555656555556566658657566555566556556565657576666556666655656655655565755556555655655558556567!JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKG�èÿÿþÿÿþþÿþÿÿüú÷úúúúò§v?>>>>>A>>>??A>>>A?C?>>>A???C??>>C?CCAA?C>C?C?????CC?ACC?C??CCCClC?>CC?ClCCCCCtßÿÿÿüƒCCCCCCCCClCClCllCCCCCCClCCCCCCCCCCCCCClC?lCCC?llC?CCC??CClCCCCCCllCCCC??CCCl?CCC?Cll?Cl?CCCC?C?CC??Cl?CCC>????CC?>>>C??>?A>?C??>?>>C?>?A>>tzÆÞñúþÿÿÿþüóçÌ–‚xttCA>==>>>>>>======>===>==>=>=============$======$=$===BB]�–Ëç÷üþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Âþÿÿþà oØýÿÿÿÿÿÿÿÿþþþþþþþþþþæ�856655655665765566555665657555666665566655665586565755566555656555556656555566655666856556555665655566565665655565565656655655555566565556655555555555565566665565656555657565566556555565565655666566566665667655566866665566565656565567666856565766655565565566565556555556666556!K³³³³³³³³³³³³³³³³³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJJHHHHHHHHHHHHGHHHHGGHGGHGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGFGGGHHGHHHGHGHHHHHHHHHGGHHHHHHHHHHHHHHHHHHHHHHHHH�èÿÿÿÿÿÿÿþÿþÿú÷÷úúúúò¬v>A>>>??>>>C>A?=>???>>>???CCC>A?>C?CC?C??????C??C??C>CCCAC?C?CCCCC??CCCCCClC?CtßÿÿÿüƒClC??CCCllCCCCllCC??CClCCCCllllC?C?ClClCCCCCCClCC?CCC>CC?CCCC?ClCCCCCCC>CCCl??l??CllCC??CClCCC?CCC?CCC??CCCCCA>>????l????????>>>??C?>>C??>>>?Ct]ƒÆáòúüþþþþþüòçáÎÈŃxtAACA>A>>>>>>====>>==>=>>>=A>>>A>A>AABZ_z‚„ÅÆËÎáñúþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–!Âþÿÿþà    pØþÿÿÿÿÿÿÿÿþþþþþþþþþþàhJJJJJJJJJJJJJJJJKJJJJKJKKJKKKKKKKKKKKKKKKK5567565575555565556856566567676656665665565556556676556665556655656655566656556557566655766555656555575865656656555555557656656566555665666865556666566665676556657666656556665555566565565655655566666656555766665666666555665556555755655555565565658656565566565585556565!¸ººººººººººººººººººººººººººººººº¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸··············³³³³³³³³³³KKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþþÿÿÿþÿþþü÷úúúúúò§q>>>A>>?A>>?=>>??>?A>>?C?>?A>>ACCA?>>>AA?CCC?>>?C????C?>>CCClCC?>?C?CCl??CC?C?CßÿÿÿüƒCCCCCC?C?Cl?>??CC?>?CCC?>??CC?ClllCl????ClCC??CClCCllCllCCCllCC?>>CCCCC?CC>CCCC???C?>>?C>A??CCClCll?ACA??AA>>>>?CCCCl?>=>??CC>>?CC?>=>>>>>>>==>=>?=CxƒÆËÏñ÷üýþÿÿþýüúúóòçáÏÎÉÆÃÅÅ›–––––…„…–ÅÃÆÉÉËÌÎÎÏßççóó÷úúúüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà   qÚþÿÿÿÿÿÿÿÿþþþþþþþþþþàh³³³³³³³³³³·³³³······¸··³·³¸·¸¸··¸¸¸¸¸¸¸¸¸¸56655556655675565556765655665555665655556556566555556566666655555656655556585757656555555555656565567555555865656556656555566656657656865556556656666655555555656655656555566655656568655565665665566555685556556556555555555665656667555656665656666665655655656655575665556566666!¸ºººººººººººººººººººººººººººº¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·············³³³³³³³³³KK³³³KK³KKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþÿÿÿÿÿþÿþÿú÷óú÷úúò§pC>>A>>>A>?C>>A?>AA>>?>?>>??>C>>>>C?>CC?>?>CCC???CCCC>CC?lC>?>>C??C?C???CC?CCCtßÿÿÿüƒ?C?ClllC?lCCCCCCCCCCCC?CCCCCCCClCC?CCCllClCCC?CCCCC?C?CCC?CC?>>?CCCC?CCC?CC?CCCCC?CCCC??Cl>??CC????>>??>>?C?>CC??>>>C?>>?A????>>>>>>C?>>>?A>>>C>=>>>A>=ACBZx”�ËÏçñò÷úüýþþþþþþþþþþþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþþþþþþþþþþæh³³³³³³³³³³³³³³³³³³³³³³³³¸³³³¸³¸¸·³¸·¸¸¸¸¸¸67666575555655565565556575656666557665656855567756665666555655665556656566556566565555655555555556655556565666665565655666556656566655556657656566565656665555655665556556657865555556555565556557555565565666556655656556555657556555566555665565666566665657567656655855565657!¸ººººººººººººººººººººººººººººººº¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·············³··³·³³³³³·³³³KKKKKKKKKKKKKKJKKKKKJKJKJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþÿÿÿÿÿþÿþÿú÷óú÷úúò§v?>>A>>A>>AA>>>?>>>>>A>??>>?>A>??>CA?C??>?>?C????C???A?CC??????lCCCC?CCC??CCCCtßÿÿÿüƒCC?CClCC?CCC?CCC?lC?CC??lCCCCCClCCCCC>lCCCCCl?CC??A?ClC?CCCC??CC?CC?lC?C??Cl?CCCCC??CC?CCC>??C?>?C???>>>?????CCAA?>>?>???>A>>>>>?>>>?A>?>>>>>>A>>>CA>>>>>>>>=A>>>CZ]z„–ÅÃÆÈËËÎÞÏáçñòüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÆ oÕþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³³³³³³·³³³·³³³·³³·³¸··¸¸··¸¸¸¸¸¸¸¸¸¸¸¸565555656666666555566666565665655666655556665665555666665556566555666655665556566655566556665655666556566556566556656665556655566566656768565566556566655556666556656556566565655565656655565666656765555565555656557565565566655665556666765656656655666567656555556655565566555655556$¸ººººººººººººººººººººººººººº¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸··¸······³··³³³·³³³³KK³KKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJHHGGGFFFFEJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGHHHHGHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþÿþþÿþÿþÿÿúúúú÷úúò¬|>>>>>=>A=>?===>>>>>????A?>>>>?>??????C>>C????C???>?>A?CC??>?lCCCCCC?C?C??CClClßÿÿÿü”??CC?CCCCC??>?Cl??C?CCCllCCl?A?CC??CC??CC>?CCCC????CClC?lCCCClll?CCCCCCCCClC?C?CC?>CC?ClC?>??????CC??????>>??C?>CC>>A>???>>>>=>??>>>>>>A?>>??AA>A?A>=>>>=?===>==>======>=>>>AAAABBBZÌþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØþÿÿÿÿÿÿÿÿþþþþþþþþþþàh³³³³³³³³³³³³³··³³³³³³¸³¸³¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸6576565565655566566656665666565565556665555656556866655555566655656566556656655565566556666656555656668656656656665665555566675666665666665555675685565565555566656555666675666656655656665556555675666666555566555555565666556656656656556656666666666556566565666556866655656666555567!¸ººººººººººººººººººººººººººººº¸ºº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸··¸··¸·········³³³³³³³·³³KKKKKK³KKKKKKKKKKKKKKKJJJKJJJJJJJJJJJJJHHGGGGGFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGEFFFFFGGGGGGHHHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþÿþÿþÿúú÷÷÷úúò§|?>>>>??CA=>>>A?>>??A>>>=>A>>AC??CCCA=?C>?CCCCC????????>>???CCC???C?>>?CCll??CCßÿÿÿüƒCCC??CCCClCCC??CC?Cl?>>?CC?C??CC?ClC?CCll?Cl??A??CCCCC?C?ClC>??CCCCC>>A>????C?????CC????>??C?>>CC?>?Cl?C?>>>>>>>C>>?C?>?>>?lC>>>=>>>?A>>>>=>>=>>>A==?>===C>>=>==A=>==>==============Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà pØþÿÿÿÿÿÿÿÿþþþþþþþþþþæh³³³³³³³³³³³··³³³³³³³¸³³¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6566555658655555566555657566565565556657655665666566568656665555566666566566655655665656666665565656566655666656655566555556655655665766555565656666665655656566666555656565666656665655556566665575675656565666666665665566556665565655555567565666555555656666565665655565555558666666!¸ººººººººººººººººººººººººº¸º¸º¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··············³³³³³·³³³K³³³KKKKKKKK³KKKKKKKKKKJKJKJKJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿÿÿþþÿÿþþþÿü÷úúúúúò¬q>>>===>>>>A>?C>>??>>AA>?>?C??C>>>>??>C??>?>>?????C??C??CC???CC?CCC>CCA???CC?>CÏÿÿÿüƒCCC??C??A??>CCCCCCCl?CCCCC?lCCCC??C????lCCCCCC?CClCC?CCC>?C????????C?>?C>?CC?>>CCCC>????CC?>????C>>?C??C??>?l?>>??>>C?>>>>>?>>=>?C?==>>=>?>A>=>==?>>>=>>>A>==>=====>=>>>>===========Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pÖþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³³³³³³³³³³³³³·³³³³¸³³¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸7666556666655565665655556665556556556665565656565567666666556566665666666666566685666665565586556555666566656686675656555555867866665666566656556665565556556655565566676665565666655555666566555655656655666765665555556655665555556655666655665566656566566665766656665566556568665557555565$¸ºººººººººººººººººººººººººº¸ººº¸¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··············³··³·³³·³³³K³KKK³KKKKKKKKKKKKKJKKKJJJJJJJJJJJJJJJJHHHGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿÿÿþÿÿþÿÿþÿüú÷÷÷ú÷ò§q>>=>>>>A>>A?A>>>?A=>>>>A>>A???>>>>???C>?=?>?>>?C>??>????????????CC?CC>C?A?lC>CÏÿÿÿüƒC>??????C????CCCCC?C?ClC???lCCC?CC????CCCC??CCCC?CCCC>CC????CC??C??C???C??CC??>CCCCA?C>>CC>?CC???A>??>A??>>?C?>>???>?A>>>>>>>>>>??>>=>?=>?>?>=>=>=>>>=>>>>==>=>====>==>=>=>==>=>===>Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà  pØýÿÿÿÿÿÿÿÿþþþþþþþþþþæh³³³³³³³³³³³³³³³³¸³¸·¸¸··¸¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸56665665665655555555555566556665656658655555656556666555656666565756555656568665667666555666566566565556866655665656566556567655566566666655665555566655655566666565565566555665555566566676666665555665557556666655665666566666566665668565566666665556666655566565886765666656565556666565!¸ººººººººººººººººººººººººººº¸º¸¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸··¸¸········³··³·³³³³K³K³³KKKK³KKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþÿÿþÿþÿþÿþþúú÷úúúúò§q>>=>?>>==>=>>=>>>?>=>?A>?>=>?>?A=?>A?lC>>?>>>????>>?>>???>??C???A?????CCCCC?CtßÿÿÿüƒC?>??>??CCCC>CCCC?>>??C????l?CC?CCCCC?C???CCCllC?>?C?CCCCCCClC?CCC?>?CCl?>CC??>>>?CC?>C?CC?ClCACCCC??>>>C????>>A>>>?A>>>>>>A>>>??>=>>A?A=>=>==>>>===>=====>=>>>>==========>========>Éþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà  pÖþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³³³³³³³³³·³·³³³³³³³³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸56666656665656667656556566566667566766566565665556665566565665665665566555555555656657556565555566566665665656665565565666566666666655656656655555656665556566566666666656566665565555556655656566565665666566656665656565566666555565565656656666656555555665676666665556666556656666656$¸ºººººººººººººººººººººººººººººººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸·········³³³³³³³³³³³³KKKKKKKKKKKKKKKKKKKKKKJKKJJJJJJJJJJJJJHHHGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþþÿÿþÿúú÷úóú÷ò§v==>=>?>>>>>>>>>>==>>?>>??>>?>>>>>>==>?>>ACCCCC?=?A?l??CC??CA?CCCC>CC?C?>???>>CÏÿÿÿüƒClCCCCC?CCCC?C?>?>>?CC??ClCCC??C?>??>?lCCCC?>C???>CClCCCC>???>???CC???CC???CC?>>?C?C?>C>>??C?>>>>C?>=>?CC>>>>>?C>>>?C>>>>>A?>>>>>???>>>>?>>>>=>??>=A>>====>========>>====>>====>====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•Âþÿÿþà  oØþÿÿÿÿÿÿÿÿþþþþþþþþþþàh³³³³³³³³³³³³³³¸³¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666556576556656665866666666555656568555555666565666656655666555656666566556655766666665665665666655666666566655656656666666565886656566666655666666566566556666668666666568666555566656666666576565565665566566566556566566686655666666566666665666665566556556666666566656556666565666655$¸ºººººººººººººººººººººººººº¸ºº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸····¸··········³³³³³³³KKK³KKKKK³KKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþþþþþÿú÷÷÷ú÷úò§v>==>=>>>=>>=>?>>>>>>>=>?>>>??>???>>>>?>>?>>?>??>?>??>C?C??C>>>?C???AA??>>A?>?tÏÿÿÿüƒ?????C??l???>CC?CC?CC??CCCC????CCCC??C????C>?lCC?>>???CCC?C?>>>>?CC?>CC>???CC????????>>C?>?A?C?A?C>A?>???A>>>???>??>>>>>A>>>>>>>=>>=>>>>>>>A>>=>>>=A>===>=>>=====>==>===============Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà   pÖþÿÿÿÿÿÿÿÿþþþþþþþþþýæh³³³³³³³³³·³¸³³³³³·¸³¸³¸¸¸·¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸556556665556556666556655555766655666566666666566666855555556556656666665655665566656666656566655555576666666666666566665666666666656566656555665666666655565655565556565566666665656656666666666655656666566566666666655656586666566665666656565666655656666565566566666556666655655666566556!¸ºººººººººººººººººººººººººººº¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·····¸··········³³³³³³³³·K³KKKKKKKKKKKKKKKKKKKKKJJJJJJKJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGGGGGHHGHHJHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿÿÿþÿþþþþþÿú÷÷÷ú÷úò§p=>>>==>>>>>=>>>>>>>>=>>=>>>>>>???>>>>>>?>>>A>>>C>??>>C?C>??>A>>C??>?>>?A>?C??tÏÿÿÿüƒC>>?CC??C?>>CCCC???l?>?lC?C>????CC?CCC>??>C???CC??>?????C?CC???>?CC?>?C>>??CCCC>>>A?C?>CC>>??ACC?>?CC>>>>??>?AA>A?>>>>>>?>>>>>>>>>>>>>=>>>=A>==>>A===>===>=>===========>=======$====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Âþÿÿþà vÖþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³·³³³³³¸³³·³·³¸¸··¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666655565566666666655665656656666666666555656866566556566566655656566565565666656666555556855656556667655555555666565656656566566656666666556666666666666665666566866656665866565655565566655655566566665555565666666656665656556566656656665556665566656665665665556666566655656666566566$¸ººººººººººººººººººººººº¸ºº¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·····³····³³³·³³··³KKK³KKKKKKKKKKKKKKKJKKKJKKKJKJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþþþþþÿú÷ó÷÷÷÷ò§v??A>=>C>>>=>>==>>>>>>?>=>>?>>=>>==>>?C>>>>A?>>>>>?C?>>??>>A>C?>>>?>>>>CC?>CC?tßÿÿÿü”l?lCCCC?>>??CC?CCC?CC>>??CC?C??>>>A????C?>?C?>>??CCClCC?C?>?CCCC>?C?CC?>>?A>?C?>>>?>>?C?>>>>==>?C>?CA=>>>?>??>>=>>>A?>>>>>>>>>>>>>>>==>>=>==>?>>>>==>====>==>===>====>==============Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÂþÿÿþÃpØþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³³³³³³³·³³·³¸³³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6676665665666555566666666656556566555566655665665665665666666666566566565566656666566656655666665666855667666656656686556765565665555655566555556656656566556656685655656666655666655655555566665656666666666666667666565656565556566666655665666666556666556666656555665565555665566666$¸ººººººººººººººººººº¸º¸ºººººº¸¸º¸¸¸º¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸···········³·³³³³³³³·K³³KKKKKKKKKKKKKKKKKKKJJKKJJJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKHFFFFFFGFGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èÿþþÿÿþÿþþþÿú÷÷÷÷÷úò§v>=>=>>>=>?>>>>>>>>=>>>>>>>>>>>>>>??>>C?>>?>??>>>=AC>>>>>>A?>?>A??>A?????>=???CÞþÿÿü”?>C?>>>C?>?CC>?CCCC>?C????C?>?CC??C?ClCC?>CCCA?>C???C???>?C?C???>??>??>??CCAC?>>??>>>>>>>??>>??>>=A>>A>>>?>>>>>>C>=>?>>>??>?>>>=>>=>=>>=>>=>>>=>>A>=>=>>=>=>==>>====>==>=======>====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„Âþÿÿþà pØþÿÿÿÿÿÿÿþþþþþþþþþþýàh³³³³³³³³··¸³¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666656666666566666865668665565666666556666666666666665655666666665655666566566666565666666666656656655566556666665565566655565565556566556666565565665665665566566665565675656665666656665566565565656666665665656566556656656566565565686655556566566665665566566666576556665666655656665666!¸ººººººººººººººººººººººººº¸ºº¸º¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸···¸····³·³····³³·³³³³³K³K³KKKKKKKKKKKKKKKKKJKKKJJKKJJJJJJJJJJJHJHGGGFFFFFFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFFFFFFFGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþÿþþþþþÿú÷÷÷÷÷÷ò§v>===>=>>=>>>==>=>==>>>>>>?>>A?=>ACA>>A>A>>A?>A?>AA>?=>>>C?>>ACC?A>?????>>>>??AÉþÿÿý›A?>>????C????C????C>?CC??>?A??CCA>C>?CC?>?C??C????>?????>>????>>>?C?A>>??A>>??>>?C?>?>>>???>??>>>>?A>C>>>??>>>>?>>>>>>>A=>>>=>A=>>=>==>>>>=>==>==>====?>=>=====>===>================Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ�Âþÿÿþà oØþÿÿÿÿÿÿÿÿþþþþþþþþþýàh³³³³·³³³³³³³·³·³³¸³³···¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸5666656665665666566666656665666556566555666666866666666666565665665566855666566666665666666665665656665556566566665666666665565656666666566656656656656666666666666566666665666676665566655666666556666565656666666566656566656666666666666656667666665656666556666666656665665556665666656665$W············bb·bbb¹¹bbbb¹bcbbbbbbbbbbbbXXXXXXXXXWXXXXXWXXXXXXXXXXXXWXWXWWWXWWWWWWWWWWWWWWWWWXWWWWWWWWWWWWWWWWTWTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTWWTTWWTTWWTWTWTWTWTWT�èþþþþÿþþþþþÿú÷÷÷÷÷÷ò§p>==>==>===>>=>A>==?>>>>>>>C??>>=>A>?>>???>?C>C?>??>>>A??A>>>>?C??>??>>C?>?A??AÆþÿÿþÉCAAA?CC>?>>>???>>??>??CA>??>CCC?>?????>??>??CCA???????>>??>?>??>??C??>?C>>>>>A?>?C?>?>?>??>>?>>A?>?>?>>>>??>?AA>>>?>>=>>>==>>>>=>>=>>==>>>>>>=>=======>=A========>>=================ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýYÂþÿÿþà pØýÿÿÿÿÿÿÿÿþþþþþþþþþþæh³³³³³·³³·³³³·³·¸··¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666565666666566665566656566666566666556656666666666666555665655666566665656666666666666666665666566665666666666666566655666566656666666656666556556666666675686866666666665666556666666666665566666666565565566666666666666655666666565665666665656666665566566665686665665556666666665566665$TTTTTTTTTTUTTUUTTTTT:TTTTUTTTTTTTT:TTTT::T:T:TTTTTTTTTTTTTTTTTTTTTTTTTTTTT"TT"TTTTTTTTT"T"TTT"TTTTTTTT"TTTT""TTTTTTTT""T""TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTT"T"TTTTTT"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT�èþÿÿþþþþþþþÿú÷÷÷÷÷÷ò§p>==?>==>>>=>=>A>=>?>==>=>>=>>>>>>>>=?>>>>>>>>>>=>>>>>>?C>>?>>>?C??CC?>???C>>>?›ýÿÿÿÎC???>?>>?>>>?>>?>>>?CC?>>CC?A??>C?>?CC>?C>?C?C>>?C?A>>??C?A?>CC>C?>??>>CC>>>?>>=>>?A>A?>>?>?C>>??>=>>>>>>>=>?>=>>A>>>>>?>>>>>>=====>>>>>===>>>>==A>=======?>====>>============>=====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷@Âþÿÿþà    pÖþÿþÿÿÿþÿÿþþþþþþþþþýàh³³³³³³³³·³³³·³·³³¸··¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666566656666666666566665665666666666666556666566656566666666656566666666666565666566666656656665665666665666566666565556666666566656656655666655666556656666666666666666666666656566656666667666666666666565666666666656666565666665666656656565565566666666666666666656566666666666656665$"TTTTTTT"T"T"T""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""�èþÿþþÿþþÿþþÿú÷÷÷÷÷÷ò§p>====>===>======>=>=>A?=>>==>=>?>>>=>==>>?>>CAA=A???>>>?>>>>??>>A>>>>>>>>>>??Aƒüÿÿÿñu>>A?C??CC>>C>?C>????C???CC?>A>>??>???>?CCA>?C????>A?>>CCC?>>?A>?>?C>>>A?A>AC?>>??CA>>>>??=>>AC>=>>>???>>>>>>>>>>===>?A>==>=>>>>>>>>>>>==>===>=====>===>========>==========>========ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ Æþÿÿþ  qØþÿÿÿÿÿÿÿÿþþþþþþþþþýàh··········································86666666766666665665666666566665665866666556666565565666666666665566666555666666666666666655656665566666666566666666556655556665666666666666666666665656656566675656666566586766666666666666666565665666666666666666666666666655555565666666556656655556666655556665566666656666665666656655$""""""�èþþþþþþþþþþÿü÷÷÷÷÷÷ò§p>>=>==>=>==>>=>=>=>=>>>>>>>>>==>>>==>>>?=>>=??>>>??>>>>>AA>>?A>>>>>>>?>>>>???>xñÿÿÿúƒ?>>?CCC>?>>???C>??=??>CC??>A??>>?>???>???>A?>C?>>>??A??>C?>>A>>?>>A?>>A>>>>??A=???>>>>>>>>>>>A>>>>>>>>>>?>>=>A>>>>>>?>=>>>=>>>>>>>=>>>=>>===>=>==>===>=====================>=$=====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ Ëÿÿÿþ…  pØýÿÿÿÿÿÿÿÿþþþþþþþþþýà‚XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX6655665666565665666666566666566566666666666666665665666665566666665666566656566566566665666565666665666665566666666666666666666565666656666566666666566556666566655556655666556666666655566656666666656556566666656566766557665566665566666666666666656665565666666665666566566686665666665655$"""""""""""""""""""""""""""""""""""""""""�èþþþþþþþþþþÿú÷÷÷÷÷÷ò¬|=>=====>===AA>>=>=>=>>>=>?A>>>=>>>=?>>CA>>>=>>=>>?A>??>>>>>>>>A>>>=A?>>>>ACA?>lÞÿÿÿþÉl?>??>>>>>>>C?>>??>?>>?C>>>???>>>>?>>>?>>>>>>A>>>ACCCC>=>>>CC?>??>>A>?CA>?=A??>>=>A>>>A>>???=A>>>>>==>>>>>A>?>>>?>=>>>>>=>?=>=>>>>>===>>====>>>==>===>=============================Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú[ Îÿÿÿý„  pÕþÿÿÿÿÿÿÿÿþþþþþþþþþýà�TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT666666665566666666666666666566666666665666665666665666666666666665666556666666666656666666656666666566666666666666666666656666666656666565566666665666656666565666666656666656656765666666665566566666666666686666666666656666565565666665666566666666666656666565666666665665565566666666666$""""" """""""""""""�èþþþþþþþþþþÿúóóó÷÷óò§s==>>>==>======>>==>>=>>======>>>>>?>>>>=AA>>?>?A==?>>>>C>>>?>>CACA>?>>?>>>?A>>A–üÿÿÿòz???>>>C?C>?>>>>>>>CA???>>>>>?>C??>???>>>>?>>>>?>?A>>>>?C??CCA>??A?CCA>>>?>>>>>>>>?A>>>?>>=>=??>>?>>>>>C>>==>>==>>=>=>>=>>>===>>=>>==>>============>=======>=======>=============$=ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎ 9áÿÿÿü� vØýÿÿÿÿÿÿÿÿþþþþþþþþþýà�""""""""""""""""""""6666665566566666566666666666666666665566565666766666666666666666666666666666665666656666656665666665666666665566666656666666565666665666665556666655665665556656666666666666666666666666666666666555665566666666666656666655566666666668866666666666665666666656666666566565665666666686655666$ �èþþþþþþþþþþþúóóó÷÷óò§q==>=========>>>===>====>>>=>>==>>>>=>>>>>>>>?>>>>A>=>>>?>>=?>??>>>>??>>??>>>>>>xòÿÿÿþÉC>>>?>?AA?l?>?>??>>>>??>>>>?C?>??>>????????>??CC?>>>>>A?>>>>>>?>>??>>>=>>?>>>>>>=?CA=>A?A>>?>=>>A>>>==A=>=>>>>>>>>===>>>==>=>>>=>==>A>>=================================$$===$====Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó[ Yúÿÿÿó[pØýÿÿÿÿÿÿÿþþþþþþþþþþýà�6666666666665666666666666666666556666656665666666566666666656666655666666656666656656666666656666665666666566685566666666655666666666656655656666666666666566666666666666856666666666666666566665666666666566656666666666665666665666666656666655665666666666666665666556666666666566666566666$ �èþþþþþþþþþþÿú÷÷÷÷÷÷ò§v=========>====>==>==>>=>>>=AA=>>=?>>>>>>>>==?>==>>>>>>>?>=>?>>?>>>>??>>>A>>>>>>CÌþÿÿÿòz>C>>>>=AC?>>????>>>>?AA>>?CA>>?>>>C>A???>AAA???>>>>>>>>>>>>>>>>???>>>>>>A>>?=>>>??>>>>>>>>?>>>?>>>>>>>>>=>>==>>>====>>>==A>=>==>==>>=>>====>==>=======>===$======$==$======$=====ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþË „þÿÿÿð;  oØþÿþÿþþþÿÿþþþþþþþþþýà�""""""""""""6666666666666666666666666666565566666665666666566566666666666665665666666666666666666666666666666666666666566666666665666666666666666666666666666566566666666666665866566566666666666666655566666666566665666666566666665665666666555556666665666666666666666666666655666566566666666555566666$   �èþþþþþþþþþþÿú÷óóó÷÷ò§p=============>?==>====>>>>>>>=?>=?>>>>>>>>>=>=>>>?C??>>>>?>>>=>>>??>>?>>>?>?>>>>xòÿÿÿÿá]A>>>>>?>>>>>A?>>AC?>>??>?>>>>>?>?C>>>>>>?>>>>>>>>>??>>>>>>>>>>>>A>>?>>>>=A?=A?>>>>>>>>==>?=A>?>=>>=>>?>>>===>>==>>>=====>>========>====>=====>=>========>================$$===$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç@!ÏÿÿÿÿÎ  pÖýÿþÿÿÿÿÿÿþþþþþþþþþýà�""5666666666556666566666666666665666666566666666666666666666556666665666586666565666666666566666666656666666566666666666666666666666666666666666666666666666656655666556666666666666666656566666668666656666666565666666666666666666666666665666666666665666666666665666566666666666666666566866$HHHHHHHHHHGHGHHGHHHHHGHHHHHHHHHGHHHHGHHGFFFFFFHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJF�èþþþþþþþþþþÿúó÷ó÷÷óò§p===>=>=>======================C>=>===>A>=>>>>==>>>===>AA>>>>>>?>>>?A>>=>>>=>??>>CÉþÿÿÿþÞt>>>>>>>>>?>>=>>?>A=>?C??>>??>?>AC?>>>>?>>>>CC?>>>??>??>>?>=CA==C>=?>>>>?>A>?>>>?C>>>>==>>>>?>=?>>>>>>>>=>?A>=>>>?A==========>=====>============>=================$======$$$==$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò[_úÿÿÿü…pØþÿÿÿþÿÿÿþþþþþþþþþþýà�""6666666656566666666666666666666666666666666656565666666675666666666666666666666666666666666666666666666666665665566666666856666656666666666666666666666666666666655666666666665666666665666666666666666656666666666666666666666666666666566566668666665666666666666666656666666666666666666656$K¸¸¸···¸···¸¸····¸·····¸·¸¸·······¸······················K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJHJHHHHHHGGFFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFFGGGGGHGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHJHJHJHHH�èþþþþþþþþþþÿúó÷óó÷÷ò§v===>======>>==>>=====>===>====>===>===>>>=>>>===>=>>>>>==>>==>>>>>?>>>>>>>>>>>>>A]çÿÿÿÿþÉtA??>>>>>>>>A??>>>>>>?A>>>C?>>=>>?>>>>>?C>>>>AA>=A?>>>>>=>A??>=>>>>>>>>>>?>>>>>>>>>>>>>>=>>>>===A>>>=>>>>>>===>=>==>==>=======>==>===>==================$==>$====$=$=====$$==$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò‚#Îÿÿÿÿ÷Y  pÕþÿÿÿþÿþÿþþþþþþþþþþýà�6666676666666666665665666666666665656666666666656666666666666666666666666665666666666566666566656656666665665665666666666666656666666666866666666665666666666666665666666666666666666666666666666666666666666666666666666666666656666666666666666666586666666566666666666666666665666666666666$·ºº¸ººº¸ººº¸¸¸¸º¸ººº¸º¸º¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·················³³³³³K³³³KKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFGGGGGGHGHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúóó÷óó÷ò§v==========>>==>>====>>==>A======>>>==>==>>>>>>==>>>?=>>=>>>>>>>=>?>>>=A>>>>A>?>>?>”÷ÿÿÿÿþÞx?C>>>C>>>>?>>>>>CA>>=>>>C?>A>>>A>>>>>???>=?>>>>>>>>>>>>A?>>>>>>A>?>>??>>>=>>>>A=>>A>>=>>>=>===?>=>=>>>A>======>>>>==>==========A===>>======$=======$====$========$====$$===$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð� �üÿÿÿÿá#  pÕýÿþÿþÿÿÿÿþþþþþþþþþýà�66666665666666666666666666666666666666666666666666665666666666666666666566666655666656666666666666566666666666666666666666666666666666666666666666665666666666666656666568666666666666666656658666666665566566655666656666666665666667566666666666666666665666665666666666666566666666656666!·ºººº¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸···············³·³³³³³³³³³³·KK³KKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKK·KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKGFFFFFFFFGGGGHHGHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿü÷ó÷÷÷óò§v=====================>==>A======>>=>>>>==??==>>>>>=>===>?>>>>>>=>=====C>>>?==?>A>>AÅúÿÿÿÿþçƒCA?>>>?>?>=>>>>>>>=>A>=>>?CA=A>>>>>>>>>>=C?>???>>??C>??>>>>>C>>=A>>>>==>==>>>>=>>====>?>>?>>>==>>====>>=>>>==>>======>>====>=======================>=$========$=$==$$=$===$=ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÏYYçÿÿÿÿü„!vÕýþþÿþÿÿÿÿþþþþþþþþþýæhKKKKKKKKKKKKKKKKKK··K·········K··K·K··K···6656666666665665666666566566666666666666666656566655656666666656666666666666656666666666666666666566666666565566666666666666666666566666666666666666665666665556666666666665665666666666565( (((6666665666666655666666666686566666666666666666666666666666666666666666666666666666666556666$·º¸º¸¸º¸º¸¸ºº¸º¸¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·············³³·³³·³³³³³³³³³KK³KKKK³KKKKKKKKKKKJKJKJJJJJJJJJJJJJJJHHHGGFFFFFFJKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJ///0/0000000000004QQ44QQQ4QQ4Q444444444444OO4O4OOOOOOO4O4OO2OOOOOOOOOOOOOO2OOOOOOOOOOOOOOOO2O22O222222XxJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúóóóó÷÷ò¬|========>>=====>>=====>=======>==>=======>=>>>>>===>>>>>===>>=>>>>>>>>CC>=>=>A=>=>ACÉüÿÿÿÿÿ÷΃t?>>==>>>>>>>>>A>>>C>=>A?>?C>>?>=>=>=>>A>==>>==?>>>>>>>>>>?>>>>>>>>>>>>>CA>>>>>>====>=>==>>>A>========>>==>=>>=>>>==========>=============================$$===$$$$$==$$$=Èþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýç…;;Îþÿÿÿÿá; pÕýÿÿÿþÿþÿÿþþþþþþþþþýàh³³³³³·³¸³·³¸³³³³³³¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666665666866666666665666666666666666666666666666665666666666668666666666666666666666666666666666666666666566666665666666666666566666655666666666666666666665666666666666666655(%7%%%%%%666666566666666665666666666666666666666665666666666666665566666666666666666666666666656656$·º¸¸º¸º¸º¸¸¸¸¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸···················³·³³³³³K³³³³KKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK/O22O222222222222222O2O22222222222222ŠeeŒŒeŒeŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠŠŠŠŠŠ‡ŠŠ‡‡Š‡‡‡‡‡‡O‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡4‡‡‡44‡4444444444*+++++++++++++++++++++++++++++++++++++JKKKKKKKKKKKGFFFFFFFFGGGGHHGHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþÿþþþþþþþÿú÷÷ó÷÷óò¬|===============>======>===>===>>===>=>=>==>=?===>===>>>>>>>?>>>>>>>>>=>>>=?>>>>>>>>>CÈúÿÿÿÿÿþ÷Þ›xCCACAA=>AC>?A>AACA=>?C>AA>>AAAA>AAAAA>>A>>>>>AA?>AAA>>>A>>A>>>>>A>A>>?>A>>>AA>=>A>>>>==>>>>>>==>>>=A>>====>=>>>>===>>====>>>===============================$===$======9ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÏ•@#Èþÿÿÿÿü‚pØýÿÿþÿþÿÿþþþþþþþþþþýàh³³³·³³¸·³¸³·³·¸¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸65665666666665666666666666666656666666666566666665666666666666666666666666666666666666666666656666666666666656666666666666666666666668666666666666666666666566666666666666666666666655((%%%(% %%%%%%56666666566666666686666566666666566666666666666666666666666666666666666666666666666666666$³º¸¸º¸º¸¸¸¸º¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·······³·····³³···³³³³³³K³KKKKKKKKKKKKKKKKKKKKKKKJKKJKJJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK24444444OOOOOOOOOOOOOOO22O22222222222ŠŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠŠŠŠŠŠ‡ŠŠŠŠŠ‡‡‡‡‡‡‡‡O‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡4‡‡4‡444‡444444444444*+++++++++++++&++++++++++++++&&+&&&++&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþüóóó÷÷÷ò§p======================>===>>===>===>=>=>=>>=>>==>=>>=>>=?>=A?>>A=>>>>==>>=??>==>>>=>=CÅ÷ÿÿÿÿÿÿÿýòáÞÌÆ�ÅÅÅÅÅ�ÅÅÅÅ�ÅÅÅÅÅÅÅÅÅ›ÅÅ���Å�Å�ÅÅÅ›ÅÅÅ��ÅÅÅÅÅÅÅÅ›ÅÅ›Å���ÅÅÅÅÅ�Å›ÅśśÅÅÅÅ›ÅÅÅÅÅ–Å›ÅÅÅÅÅÅÅÅÅÅÅÅ–›Å›ÅÅÅ––ÅÅÅÅÅÅÅÅÅÅ›–ÅÅÅÅÅ–ÅÅÅ–––ÅÅ›ÂÅÅÅÅÅ––––›–›Å–––––—Å––Å–––––––––ÉñòòòòòòòòòòòòòòòñòòòñòòòòòòòòñòòòòòòòòññòññòòòòñòññññññññññññòòññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññðáÎÈ„[#  @ËýÿÿÿÿÿÏ# pÖýþÿþÿÿþÿÿþþþþþþþþþýàh³³³³³³³³³³³³³³³³¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666666666566666666666666666666656666666656666666666566666666665666666656666666666666666666566666666666666666666666666666566566686566666666665(%%% %% %% %%% %6666666666666666666666666666566666656666666666666666666666666666666666666666666666666$·º¸¸º¸¸º¸º¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸·¸··············³·³·³³³³³³³³³³³KKKKKKKKKKKKKKKKKKKKKJJJJJKJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK244444O4OOOOOOOOOOOOOO222222222222222ŠŒŒŒŒŒŒŒŒŒŒŒŠŠŠŠŠŠŠŠŠŠŠŠŠ‡‡ŠŠ‡‡ŠŠ‡‡‡‡‡‡‡‡‡O‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡4‡‡‡‡‡‡4444444444444444444*++++++++&+++++++++++++&&++&&+&+&&&+&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷ó÷ó÷ò§p=$==============>>==>=>==============>>==>===>===AAA>=>=>>=====>=>>>A=>>>=====>>===>?AAƒçþÿÿÿÿÿÿÿÿþþþýþýþýþýþþýýýþýýýýýþþýýýýýýýþýþþýþýýýýýýýþýýýýýþýýýþýýýþýþþýþþþþýýýýýýýýýýýýýýýþýýýýýýþýýýýýýþýýýýýýýýýýýþýýþþýþýýýýýýýýýýýýýýýýýýýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýüÏ]ZZZZZZZYZZZZBBBBYZYBYZZBZZBYBBZYZZBZYBBYYYBBBYBYBBBBBBBBBBBBYYBBBBBB@BB@BB@BBB@B@@B@@@@@@@@@@@;@@@@@@@@@@@@@@@;@@;@@@@;;;@@@;@@;@@@;;@@@@@@@;@;;@@;;@;@@@;;@@;@;;;;9#  [áþÿÿÿÿÿçY pÕýÿÿþÿÿþÿÿþþþþþþþþýýàh³³³·³³³³³¸³·¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666668666666666566666666666656666666566666666666666666666666666666666666666666666666666666666666666666666666566566666666656666666566666666666666666666666665665(5(%%%%%%%%%% % %%% %%(5666666666666566666666666666666666656666666666666666666666666666666666666666666666666$³¸¸¸º¸¸º¸¸º¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·················³·³³³³·³³³³³KK³KKKKKKKKKKKKKJKKJKKJKJKJKJJKJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK244O222222222222222222222222222222222ŠŒeоÁÁ•Á————••——••••••••••¾•¾�¾¾�¾•¾��¾Q‡O‡4e¾¾¾¾¾¾¾¾¾eeeeeeeeeeeeeeeee��eaeeeeQ444*+0++++++++++-+++++++++++++++++++++&&+JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúó÷ó÷÷óò§p==============================>=====>==>=>==>>>==>>===>====>>==?>=>>=>?>=>>>>>>>>>>>>>==tÆòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá@=!$=$=$!$$!!!!$!!!!!!!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!   !      YÃòþÿÿÿÿÿò_ pÕýÿÿþÿþÿÿÿþþþþþþþþþýàh³³³³³³·³³³³³³³¸³¸³¸¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666556666666666666666666666666666666666666666666666656666666666666666666665666666666666666666666666665666666666666656666666666666666666666566666666666666666666666566666666666(%%%%%%%% %%%%%%%% % %5666666566666666666666666666666666666666666666666666666666666666566666666666666666666$³º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸···¸·····¸¸··········³···³³K³³³KKK³KKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK2O44�ïððððððððððððððððððððððïÑïÑÑáðçÍeŒŒŠÑòóóòöùööôõööõëëëéððòððððððððððððððð¾‡O‡QÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÍÍÐÐÍÍÍÍÍÙÙÍ×ÍÍËÍe4444š�ÂÄÁÁÁÁÁÁÁÁÁÁÁÁ—¤›ÁÁÁÁÁÁÁÁhhg†3&+&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷ó÷÷óò§o======$======================>===>=======>===>>>>======>====>=>>>>>==>A>==A>==>=>C>>>>===CxÉñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáB$!$$$$$$!!!!!$$!$!!$!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!         #YÂñþÿÿÿÿÿÿó„  pÕýÿÿþþÿÿÿþþþþþþþþýþýàh³³³³³³··³³¸³¸³·¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666656666666666666666666666666666666666666666666666666866666666666666666666666666666666666686666666666666666666666666666666666666656666666666666656666666666666666666666655(%%%%%%%% %%% %%%% %% 566666666666656666666666666666666666666666666666666666666666666666666666666666666666·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸···················³·³³³K³K·K³KKKKKKKK³KKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKK2444Äüýþþýýüýþýþþþüüüüüüüüüüüúú÷úüüúŒŠÑóóóóöõööõõööõôëëéòðóòðððððððððððððð¾‡O‡QÑïïÑçïÑðÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÐÍÙÙÐÙÍÍÍÍe444QÎÛ×ÍÍÍÍÍÍÍÍÍËÍÍÍÄË­°ÈÄÄÄÄÄÄÄÄÄÄž:&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷ó÷ó÷ò§p=====$============$=========>==================>>>=====>>=>===>==>>==>>=>=>>===>>>>>>>>>==>CtƒÈçúüüýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþá_ZZZZZZZ]ZZ]ZZ]ZZZZZZZZZZYYZZYYZZYYYYZZYYYYYZYYYZYYYBBYBYYYYBYBYYBYBBYBYBYBB@@YB@B@@Y@YBB@@@BB@@B@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@BB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Y[_‚ÂÏóþÿÿÿÿÿÿÿñ‚   pÕüÿÿþþÿÿÿÿþþþþþþýþýýàh³³³³³³³¸³³³³³¸³³³¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666666666666666566666666666666666666666676666656666666666666666666666666666666666666666666666666666666666666666666666666666666666666666665666666666666666666666666666666 % %%%%% %%% %% %%%%%(6666666666666666666686666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸º¸¸¸¸¸º¸¸¸º¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸···¸·¸···············³³³³³³³³³³³KKKKKKKKKKKKKKKKKKKJKJKJJKJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK2444ÄþþþþþþýýýýþþþüüüüýýüýýüüüúúüüüüðŠŒŒŠÑóóóóöõööõõööõõëííôóóóòñòòóóóóòòðððð¾‡O‡QïðïïððððððïïÑïïïïÑïÑÑÑÑÑÑÑÑÚàÑÏÑÑÑÐe444QÎÖÞÍÐÍÍÍÍÍÍÍÍÍÍÍÍÍÎÛÔÍÍÍÍÍÍÍÍÍÄÉ3&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿü÷÷÷÷÷÷ò§v=====$=========$======>>>>>=========>>=>?>>========>>>>=>>>>====>====>>>>=====>>>=>=>>===>=>>=?tx‚ƒ–ÆÈÈÉÆÉÈÉÉÈÉÉÉÆÈÉÉÉÉÉÉÈÈÉÉÉÈÉÈÉÉÆÈÉÈÈÉÉÉÈÈÆÈÉÉÉÈÈÆÈÆÉÉÈÈÈÉÉÈÈÈÉÈÆÉÉÉÆÈÈÈÉÉÈÈÆÆÉÈÆÆÈÈÆÆÆÈÉÆÈÉÆÆÉÈÆÆÈÆÈÆÉÆÆÆÉÆÆÈÈÆÉÆÆÆÆÆÆÈÈÉÈÆÆÆÆÆÆÆÈÈÈÆÆÆÆÆÆÆÉÆÆÆÆÆÆÆÈÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÌññññññññññññññññññññññññññççñññññññññçñññçññçñññññññññññññññçññññññçññññçççññçñññçñççññçññçççññççñññççççççççççñçççççççççççççççççççççñçççççççççççççççççççççðçççççççççðñçðòüüþÿÿÿÿÿÿÿÿþÏ[   oÕþþþÿÿþþÿÿþþþþþþýþýýàh³³³³·³³³³³¸³³¸³·¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666666666666666666666666666666666666666665666666655666666666666666666666666666666666666666666666666666666666656666666666666666666666666666686666666666666666666666666666% %%%%%%% %%%% % %%%%%55666666665666666666666666686666666666666666666666666666666666666666666666566666666$·¸º¸¸¸¸¸¸¸¸¸¸¸¸º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸···¸·¸·········³³·³····³³³K³³K³KKKKKKKKKKKKKKKKKKJKKKKKJJKJJJJJJJJJJJJHJHHGGFFFFFFJKKKKKKKKKKKK24OOÄþþþýþþþýüýýþýýüýýüüýþüüüüüýýüýüðeŒŒŠç÷÷óóöøööõõíöõõööõõóóóòòóòóóóóòðòðòò•‡O‡QïðððððððððððïððððïïðïÑÑïÑÑÑààÑÑÑÑÑѾ444QÏÜßÑÑÐÍÐÐÐÐÐÍÍÍÍÍÍÍÓ°×ÍÍÍÍÍÍÍÍÍÄ2&&&&JKKKKKKKKKKKGEFFFFFFGGGGGGGHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷÷ó÷óò§v===================>====================>===>===>==>========>>>A==>>=>A>==>>>>>>>>>=====>>>=>>>=?>=>>A?>=A>A>>>A>A>>AA>>A>A>AAA>>A>>>A>AAA>>A>A>>AA>>>A>C>>>A>=>A>AA?A>>>AA>>>A>>C>>>>>>>>A>>A>==>>====>==>>=>==>>=>=====>>=>==>=======>====================9==$===99$$9ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÃ@   pØýÿÿþþÿÿÿÿþþþþýýþýþýàh³³³³³³³···³³¸³³³³³¸·¸³³·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666i66666666666666666666666666666666666666666666666666666666666666666666(% %% % %%%% % % %%%66666666666666666666666666666666666666666666666666666666666666666666666666666666666$·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸····¸·¸··········³³·³³³K³K³³³KK³KKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK2444ÄýþþýþþþþýýþýýýýþþýýüýýýüýþýýüüüŒŠð÷ó÷óöùøùõõööõõööõõ÷óóóóóóóòóóóóóóóó•‡O‡QïòòòððððððððððððððððððïïïïÑàäçâÑÑÑѾ444QÏÜàÑÑÑÑÑÑÑÐÑÑÐÑÑÐÑÐÐÔ°ÎÍÍÍÍÍÍÍÍÉ3&&&&JKKKKKKKKKKKGEFFFFFFGGGGGHHGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþÿþþþþþþþþþú÷ó÷óóóò§p=$$=========================>===============>===>======>===>>==>===>>>>=====>==>>=>====>>====A>>>>>=>>>==>=>>>=>=>>>>>====A=>>>==>=>>>>>>==>>?>==>>=>>>=>==>=====>A>======>>==>=>>=>>===>====>====================================$==$=$$==$$==$$=$$===$$=$$$$$$$$$$$$$=ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþñÃY  pØþþþÿÿþþÿþþþþþýýþýþýàh³³³³³³·³³·³·³·³·³¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666666i6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666655666666666666666656666666666666666666666666666666666666666666666666666(%% %%%%%% % %% %% %%%% 55666666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸·····¸·······³³·····³³·³³³³K³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKK244OÄþþþþþþýþþþþþþýýþþþýþýýþýþýüüýüüðŠŒŒŠçúú÷úöøøøùõööõõööõù÷óóóóóòóóóòóóóóóòÁ‡O‡QïòòðóðððððððððððððððððïïïïïààïâçïÑÑ�444QßÝßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÞ°ÔÎÐÐÍÐÍÍÍÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúóó÷÷ó÷ò§p==========$==>=======================A=======>==?==>=>=>=================>=>=>====>>=>>>>=====>>==>=>====>=>>?>>?=======>=>===>>==>=>>?>==>A>>>>>>=>>======AA?>>>>=>===>===>==>====>==>>========>=======================$$=$==$===$=>==$!==$=$==$$$$==$$$!$$!$=$!$$$==$=ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüòÎ…@ pÖýþþþþÿÿÿÿþþþýþþýþýýàh³³³³³³³³³³³³³³¸³·³³¸³·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666566665666666666666666666666666666666666666666666666666666666666666666666666655665((88666666666666666666666666666666666666666666666666666666666666666665(%%% %%% %% %% % % % (6666666666666666666666666666666666666666666666666666666666666666666666666666666666$·º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸··¸¸····¸·¸·¸············³···³³·³³³³³³³KKKKKKKKKKKKKKKKKKKKKKKJKJJJJKJJJJJJJJJJJJHHGGGGFFFFJKKKKKKKKKKKK244OÄþþþþþþýýþþþþþýþþþþþþýýþýþþüüüúüðŠŒŒŠðüüüüøøøøùõööõõöö÷õúóóóóóóóóóóóóóóóóÁ‡O‡Qòóòòòòòòòòððòððððððððððððððæàðæçððï¾444QáÝßïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÙ°×ÑÑÐÐÑÑÐÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþú÷ó÷ó÷÷ò§p=$====$===$==$====$======>===========>========>====>===========>=====>=====>>===>====>>====>?>======>>>>===>A>==>=>=>A>A>=>>>=>>>==>========>>====>>==>>>?>>=======>=>=>===================>>=>=======>=======================$===$=$==$====$!$==$==$!=$!$$=!$$=$!=$$!!$…çòòòññññòñòòòòñòòòòñññòòòòñññññññòòññññññòñññññññññòññññññññññòññññññññññðññññññññññññññññññññññññðññññðññðññññññññññðññññññññññðññññññññðñññññññññññññññññññññññññññññðáÏÏÎÃ�@  pØüÿÿþþÿÿÿÿþþþýþþýþýýàh³·³³³³³³³¸·¸³¸³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666655%(55(%%%%%(5666666666666666666666666666666666666656666656666666666666666666665(% % %%% % %% % %%%%(6656666666666666666i8i666666666666666666666666666666666666666666666666666666666666$·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸¸··················³·³···³·³³³KK³K³³KKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK2O4OÄþþþþþþþþþýýýýþþüýþþýýüýþþþýýüüüðŠŒŒŠðüüüüøøøöõõööõõööõõ÷óóúóóóóóóóòóóóòóÁ‡O‡Qðòðòðòòððñòòððððñððððððððððèàðæððïï¾444QÑÚßïïÑÑïÑïÑÑÑÑïÑÑÑÑÑÑÑÔ°ÏÑÑÑÑÑÍÊ<&+&+JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷óóóóò§v=====$=========================================================>======>>===>====>>>==A=====>>==>=======>==>>=====>>>>A=>>====>====>>==>==>>=====>>>>====>==>===>=========>=>>=====>>>======>===================================$=====$$==$$$$=$$$$==$$$$!$$=$=$$$$$$!!!$>ZZZZZ]ZZ[ZZZZ[ZZZ[ZZZZZZZZZZZYYZZYYZZYYYZYYZYYYYYYZZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@YYYYYYY@YYY@YB@@Y@@@@YYB@@YB@Y@@Y@Y@YYY@@@Y@@@YY@@YY@@@Y@@Y@@@Y@BY@B@@YYYY@@@Y@YY@Y@;#! vØýþþÿþþþÿÿýþýþýýþýþýàh³³³³³³³³³³³³³³³³³³³¸³³¸³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666655(%%%((%'%%%%%(566666666666666666666666666666666666665666666666666666666666i65(%% %% % % % % %% %(5(5666666666666666666666666666666666666666666666666666666666666665666666666666666$·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸¸·¸·¸··¸··¸··¸···········³··³·³³³·³³³³³KKK³KKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK24OOÄþþÿþþþþþþýþþýþþýýþþþýýþþþþþýüýüðŠŒŠŠðüüüüøøööøùööõõíöõ÷óóóóóóóóóóóó÷óóóóÁ‡O‡Qòóòòòòòðòòòóòòðððððððððððððæàðæçððð¾444QáÜàÑïÑÑÑÑÑïÑÑïÑÑÑÑÑÑÑÑßÛ­ÑÑÑÑÑÐ×<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúó÷ó÷÷÷ò§p====$$=$=====$==$$===============$====================================>>>==>>=>===>==>====>====>>>==>==>=>>>=====>==>>===>===>===>===A>>=>=======>===>==================>=========>==>===========>==============$==========$=========$=$=$$$$$$$$$$=$=$$!$$$$$$!$$$!$$!!!!!$$!$$!!!!!!!!!!$!!$!!!!!!!!!!!!!!!! !!!!! !! !!! !  ! vØýþþþþÿÿþÿýþýþýýþýþýàh³³³³³³³³³³³³³³³·³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666656666666666666666666666666666666666666666666666655(('%''%%%%%%%%%%%(555666666666666666666666666666666666666666666666666666666666%%%%% %% % % % %% % %((6666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸···········¸········³³³··³·³³³³³³³³K³KKKKKKKKKKKKKKKKKKJKKKKKJJKJJJJJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK2OOOÄþþþÿÿþýþþýþþþþþþþýþýýýüýýþþýýüüðŠŒŠŠïüüüüøøøøùõööõõöö÷÷óóóóóóóú÷óóó÷óóòóÁ‡O‡Qòòóðñðòòððòðòðòòðððððððððððæàðæðððï¾444QßÜàÑïÑÑÑïÑïÑïÑÑïÑÑÑÑÑÑÑÙ°ÙÑÐÑÐÐÊ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿú÷ó÷ó÷óò¬v=$$=$$==$$=============$========>===========>===>>>=====>>========>>>==>>>===========>>>==>>==========>===?>===>>========>===>===>==>>===>>====>>===>>===>=>===>===========>==A=====================================$$==$$==$$$$$==$$$=$!$===!$$==$$$!==$!$$!!=$$!!!$!!$$$$$!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !     !      pÕýþþÿÿþþÿÿþýþýþþýþýýàh³³³³³³³³³³³³·³³³³³³³³¸³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666665(%%'%%%%%%%%%%%%%%%%%%%%(666666666666666666666666666666666666666666666666666666666% % % %% % %% %% % (66666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸¸¸··¸¸········¸¸············³³³·³³³³³³³·³³KKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJKJJJJJJJJJHHHGGGGFFFFJKKKKKKKKKKKK/OOOÄþþþþþýýþþýýþýþýþýýýýýýüüýýýýüüüðŠŒŒŠïüüüüøøøøùõööõõíöù÷óóóóó÷óúóóóóóóóóóÁ‡O‡Qòóóòòòòòðòòðððòððððððððððððæàðâðððï¾444QáÝàïïÑïÑïïÑÑïÑïÑÑÑÑÑÑÑÑÏÔ°ÞÑÑÐÐÊ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúóóó÷÷óò§p=======$$=====$$$$==========$=======>$=========$===========?>====================>======>===>==>>=>====>====>>>>===>>>=====>>>===>=>>=>A====>=========>>>======>==>>=====A>===========>>======================$$$=============$$$=$=$$$=$$$$$$=$!$$$$$$=$$$$$$$!!!!$!!$$$!!!!!$!$!!!!$$!!!!!!$!!!!!!!!!!!!!! !!  !! ! !!!        pÕýþþþÿþþÿÿýýþýþþýþýüàh³³³³³³³³³³³¸³³³··³¸¸¸¸·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666(%%%%%%%%%%%%%%%%%%%%%%%%(566666666666666666666666666666666666666666666666666666666%%%%%% % 566666666i666666666666666666666666666666666666i666666666666666666666666666666666=·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸······¸···············³³³³³³³³³K·KKKKKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJHHGGGFFFFEJKKKKKKKKKKKK2OOOÄþþþýýýýþýþþþþþþþþýýþýýüýýýüüýüüðŠŠŠŠðüüúüõøöøøõööõëëëùøúóóóóóóóóóóóóóóóóÁ‡O‡Qòòóóððòòðððððòðððððððððððððààðçððïï¾444QáÝâïÑïÑÑÑÑÑÑÑïÑïÑÑÑÑÑÑÑÑÏ­ÔÏÐÐÍÌ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúóó÷÷ó÷ò§p=$$=======$=====$================$==============$======>===>>=>==================>==============>==>=====>>======>======>==>====>==>>=====>>>======>===============>=======================================>===$====$$==$$====$=$$=$$$=$$=$$$$=$$!$$!$$=$$!$=$!$!!!=$$!!$!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! ! !! !!! !   pÕýþþþÿþþÿþýþýþýýþýýüæh³³³³³³³³³³³³³³¸³³³³³··¸¸³³³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666('%%%%%%%%%'%&%%%%%%%%%%%%(56666666666666666666666666666666666666666666666666666666%%%%% % %5666666666666666666666666666666666666666666666666666666666666666666666666666666$·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸··¸····················³·³³··³·³³³³KKKKKK³KKKKKKKKKKKKKKKJKKJKJKKJKJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK2OOOÄþþýýþüýýýþþþþþþþýýýýýýýþýüüýüüüðŠŠŠŠïüüüüöùööùõöíöíëëùùúúóóóóóóóóóóòóóóóÁ‡O‡Qòóóóòòðòððòððòðððððððððððððààðçðððï¾343QáÝáïïïïïÑïÑÑïÑÑÑÑÑÑÑÑÑÑÑÑ×°ÓÑÐÐÍ3&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþþúóó÷÷óóò§p=$$=======$=$$=======$=$=======$$$================>======================>>==>>======>==>=======>=======>>====$==>==========>==>>==>>=======>===>==>=>==>==>======================>==$=============================$$$!$===$$$==$!$====$$$===$$$$!$=!!!$$$$$$!!!$$!$$$$!!!!$!!$!!!!!!!!$$!!!!!!!!!!! !! !!!!  !!  ! !    vÕýþþþþþþÿþýþýþýýþýýüàh³³³³³³·³³³³¸³³³··³¸³³³¸¸·¸¸¸³¸¸¸¸¸¸¸¸¸¸¸¸¸66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666((%%%%%%%%&%%%%%%%%%%%%%%%%(6666666666666666666666666666666666666666666666666666666 % % % 666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸·¸···¸··¸···¸·¸············³·³³³³³³³³K³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK2OOOÄþþþýüýüüýýþýýþþþýýýþýýýþüüýüüýüðŠŠŠ‡ðúüüúöøùùøõöëíííö÷ùúóúóú÷úóóóòóóòòòðÁ‡O‡Qðòððòòðñðòòðððòððððððððððððààðæððïï¾443QáÝâïïïïïÑÑáÑÑÑÑÑÑÑÑÏÑÑÑÑÑÑ­°ÞÍÐÌ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúóó÷÷óóò§v$$$$!$$!$$$$$==$===========$$===$$======$$=======>=========================>==>>>====>>============>====>==>=>>=>====>=>======>>=====>=>==?>====>=======>====>==============>>===$======$=>======$===========$$=========$=$$$$$=$$$===!$$$$$$$$$==$$!$$!$!!$!$==$!!!!$$!$!!!!!!!!!$$!!!!!!!!!!!!! !!!!! ! !!!!  !! !!  ! !      pÕýþþÿÿþþÿÿýýþýþþýýýýàh³³³³³³³³³³³³·³¸·³³³··³³³¸¸··¸¸¸¸¸¸¸¸¸¸¸·¸¸66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666(%(%%%%%%%%%%%%%%%%%%%%%%%%%%(5666666666666666666666666666666666666666666666666666666% % % %5666666666666666666666666666666666666666666666666666666666666666666666666666666$³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸·¸·¸¸¸·¸·····¸··················³³·³³³³³··³³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJKJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþýüüüüþýþýýýýýýþþþýþþýüüüüüüýð‡ŠŠ‡ðüüúúööøøøõöíëíööõõ÷úóóúóóóóóóóóóòòòÁ‡O‡Qððòòðóðñðóòððððððððððððððððààðæððïð¾443QáÝàïïïïïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏ­­ÏÐÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþþÿúó÷÷÷÷÷ò§p==$=$=$$$====$$======$=====$$============$==$===$========================>==================>======>====>============>===>>=============>===========================$=>=================$>===========$$$===$========$==$$$===$$=======$==$$!!$$$!$$!$$$$$!!!!$=$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!! !! !!! !    pÕüþþþþþþÿÿþýþýþýýýýýàh³³³³³³³³³³³·³³·³³·¸³¸³¸³¸¸··¸¸¸¸¸¸¸¸¸¸¸¸¸¸6666666i66666666666666666666666666666666666666666666666666666666666666666666666666666666%%%%%%%%%%%%%%%%%%%%%%%%%%%%56666666666666666666666666666666666666666666i6666666666% % % %5666666666666666666666666666666666666666666666666666666666666i66666666666666666=K¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸¸¸¸·¸¸¸¸··¸·····¸···¸····¸············³³³³³³³³³³K³KKK³KKKKKKKKKKKKKKKKKKKKKKJJJJKKKJJJJJJJJJJJJJJJHGGGFFFFFFJKKKKKKKKKKKK2OOOÄþþþþýýýþþýýýýþýýüýýýýýýýýüüüüüüðŠŠŠ‡ðüüúúöõùùùõööííëöõù÷úóóóóúóóóóóóóóòóÁ‡O4Qðòððòòðòòððððòðððòðððððððððààðæððïï�343QÏÝáÑïÑïÑÑÑÑïÑÑïÑÑÑÑÑÑÑÑÑÐÑÐ×°×ÍÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþýÿúó÷ó÷ó÷ò§p===$=$$=$$$==$==$$==$$==$$==========$========$============$==============>===>=============>===>===>===>===>==$===>==>=============================>=====>===================================$=$======$==$$$==$$===$$====$$$=$$==$=$$=$$$$$$!$$$$$$!$$$$$!$!!!$!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!! !! !!!! ! !!!      pØüþþþþþÿÿþýþýþýýýýýüàh³³³³³³³³³³³³³³¸³³³³³³³³³³³¸¸³³³³¸¸¸¸¸¸¸¸¸¸6666666666666666666666i66666666666666666666666666666666666666666666666666666666666666665(%%%%%%%%%%&%%%%%%%%%&%%%%%%%666666666666666666666666666i6666666666666666666666665665( % 5666666666666666666666666666666666666666666666666666666666666666666666666666666$K¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸··¸¸¸¸¸¸¸¸¸·¸¸¸¸¸···¸······················³³³³³³····³³³³KK³KKKKKKKKKKKKKKKKKKKJKJKKJJJJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK2OOOÄþþþþþþþþþýýþýþýüüýýýýýýýýüýüüüüð‡ŠŠ‡ðüúüüööööøõööõëíöù÷÷úóóóóóóóóóóóòóóòÁ‡O‡Qðòðòððòòðððððððððððððððððððààðàçðïð¾343QáÝáïïïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏ­°×Ê<&&&&JKKKKKKKKKKKGEFFFFFGGGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþþþýþúó÷ó÷ó÷ò§v=$!!$===$$$=$$=$$$$$$$=$$========>===$==$=============$=========>================>============>==>>>======>===$===>==========>======================$===============>=====$======>====$==$=========$=========$$$$$$$=$====$$!$=$$$$$$!!$$$$$!$$$$!$$$$!$$$!!!!!$$!!$!$!!!!!!!!$!!!!!!!!!!!!!!!  !!!!!! !! !!!          !vØýþþþþþþÿþýþýýýýýýýüàh³³³³³³³³³³³·³³·³³¸³·³³³³³¸··¸¸¸¸¸¸³¸³¸¸¸¸¸6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666((%%%%%%%%%%%%%%%%%%%%%% %%%%666666i666666666666666666666666666666666666666666666665 (6666666666666666666666666666666666666666666666666666666666666666666666666666666$³·¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸·¸·¸·¸¸··········¸··¸···············³·³³³³³³³³³³K³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄýþþþþýýþýüýþþýýýýüýüýýýüüüüüüüüð‡ŠŠ‡ðüüúúõõööõõöíõõíöõ÷÷úóóóóóóóóóòóóóóóÁ4O4QðóððòðòðòòðòðððððððòðððððððæàçàçïïѾ334QáÝÙïÑïÑÑÑÑïÑïÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÞ¨¨Ó<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþýýþþúó÷÷ó÷÷ò¬p$!$$=$$!!$=======$$=$=$=$$=$$!$=$=$$=$====$=======$===================================>>>===============================>=>===========>=========>==>=======================================$$$==$$$$======$$=====$$$$=$$$!$=$$=$$$=$$$$!$$!==$!$=$=$!!!!!$!!$$!!!!!$!!$!$$$!!!!!!!!$$!!!!!!!!!!!!!!!!! !! !!!!!!! !!!!     pÕüþþÿþþþÿÿþýýýýýýýýüàh³³³³³³³³³³³³³³³·³³³³·³¸³·³¸···³¸¸¸¸¸¸¸¸¸¸¸66666666666i66666666666666666666666666666666666666666666666666666666666666i666666666666655%%%&%%%%%% % % %%% %%% %%%%(55666666666666666666666i666i66666666666666666666666666(% (66666666666666666666666666666666666666666i66666666666666666666666666666666666666$³·¸¸¸¸¸¸¸¸¸¸¸·¸·¸¸¸¸¸¸·¸·¸·¸·¸·······¸·¸·¸·············³····³³³³³·³³³·³KK³³KKKKKKKKKKKKKKKKKKKKKJKKKJJJJJJKJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþÿþþþþþýýþþþþþþþýýýýýýüüýüüüüüð‡ŠŠ‡ðüüüüöõööõõööõõíö÷÷óóúóóóóóóóóóóóóóóÁ4O4Qòóóóóðòñòððððððððððððòðððððààðâçïðð¾333QáÜàÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÐ׫¨<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHJHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþþýýþþúó÷÷÷ó÷ò§o=$$!$$$=$$$$!$$$$$==$$$==$==$$$=======$=>=$====$===========>===$===========$=============$=>==========>==========================================================================$=$$===$=======$$=====$$=$!$$$=$$=$$=$!$==$$$$$$!$$==$!$$$!!$!!$$!$$!!!!$!!$!!$$!!!!!$!!$!!!!!!!!!$!!!!!!!!!!!!!! ! ! !! !   !     pÕüþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³¸³··¸³¸³¸³³³¸··¸¸·¸¸¸¸¸¸¸¸¸666666666666666666666666666666666666666666666666666666666666666i666666666666666666666665(((%%%%%%%%%%% %%%%%%% % %% %(((566666666666666666666666666666666666666666666666666% (66666666666666666666666666666666666666666666666666666666666666666666666666666666$K··¸¸·¸·¸··¸·¸·¸¸·¸·¸··¸·¸····¸··················³·····³³·³·³³³³³³·³³KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKKJKJJJJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKK/OOOÄþþÿþÿÿþýýþýþþþþþþþýýüüüüýýüüüúüð‡ŠŠ‡ðúúú÷ööööõõööõõöíõ÷óóóóóóú÷óóóóóóóòóÁ‡24Qòóóðòðððððòðòððððððððððððððààðâïïïï¾333QáÜàÑÑÑïÑçïÑÑÑÑÑïÑÑÑÑÑÐÑÑÐÏÑÐÐÍ­«<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHGGHJHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþýþýþþú÷÷ó÷óóò§p$!$$$$==$$$$$=$!$$==$$==$==$====$$===>==$=$=================>>>============================>=========>>====>====>>=>==========>=========================$=====>=$==========$=$$========$$$==>===$==$==$$!=$$=$$$!$=$$$$$$==$$$$!!$$$=$!!$=$!!$!!$!!!$!!$!$!$!!!$!!!!!!!!! !!!! !!!!!!! ! !!!! !! !! ! !!  ! ! !          pÓýþþþþþÿÿþýýýýýýýýýüàh³³³³³³³³³³³³³·³³³³·³³³³·³³³·³³··¸¸··¸³³¸¸¸66666666666666i666666666666666666666666666666666666666666i666666666666666666666666666665(%%%%%%% % %%%% %%&%& %%%%%%%%% (566666666666666666666666666666666666666666666666665( (56666666666666666666666666666666666666666666666666666666666666666666666666666666$K¸¸·¸¸¸¸···¸¸¸·¸¸¸·¸¸··¸···¸··¸························³·³³·³³³³³K·³³³³KKK³KKKKKKKKKKKKKKKKKKKKKKKKJJKKJJJJJKJJJJJJJJJJJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþþÿþþþþþýþýþýþýþþýüüýýýþüýüüüð‡ŠŠ‡ðüúúúööööõùöööõööùùóóóóóóúúóóóóóóóóóÁ‡24Qòóóóóðòòðòòòðððððððððððððððààðððððï¾333QáÝßïÑÑÑÑïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐΨ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþþýþþýþúó÷÷óó÷ò§p$$$=$!$==$!===$$$!$$$==$!!$!$$$$====$=$$$===!$$====$=======$$$$=====>==>>>=======$========$$=========$$============================>===$=========>==>======>=>=====$==$=$$======$==$!$$==$$$=!$==>=$$=======$$==$$=$$$=$$===$!$=$$!!!$$!!$$!!$$!$!=!$!!$!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!  !   ! !          pÕüþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³·³¸³³³³³¸··³³¸³¸¸··¸¸¸¸¸¸666666666i666666666i6666666666666666666666666666i666666666666666666666666666666666666666(%% %%%%%%% %%%%%%%%%%% % %%%(66666666666666666666666666666i6666i6666666666666665(% % 66666666666666666666666666666666666666666666666666666666666666666666666666666666$³··¸·····¸¸····¸···¸·······¸¸························³··³³³³³³³³³KK³³KKKK³³KKKKK³KKKKKKKKJKKKKKKJJKKJJKJJJJJJJJJJJJJJJHJHGGGFGFFFFJKKKKKKKKKKKK/OOOÄþþþÿÿþþþþþýýýýþþþþþþüýýýþýüüüüüð‡‡Š‡ðüúú÷öõööøõëëííëë÷õ÷óóóóóóóóóòóóóóóóÁ424Qððóóòòðñððñððððððððððððððððàäðçðïïï¾333QáÝßÑÑÑïÑïÑÑÑïÑÑÑÑÑÑÑÐÑÐÐÑÐÑÐÐÐÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþýþýýýþúóó÷÷÷÷ò§p=$$$$=$!!$$=$!$==$$=$$$$===$!$=$$$$$$==========$===$====$$===$$==$$$$=================$$===============>=========$===================>============$==$==========$=============$====$$========$$$$=$!$$===$$===$$===$=$$$=$!!$$!$=$!$$!$=$$!!$$!!$!!!!$$$$!$!!$$$$!!!!!!!!!$!!!!!!!!!!!! ! !!!!! ! !           oÕýþþþþþþÿÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³¸³¸³³·³³¸³··¸³³¸·¸¸¸6666666666i6666i6666666666666666666666666666666666666i6666666666666666666666666666666666(%% % %% %%%%% %% %% % % %%%%%(66666666666666666666666i6666666666666666i6666666666% 556666666666666666666666666i6666666666666666666666666666666666666666666666666i66666$K¸·¸····¸¸··¸¸·¸···¸¸·¸··············¸··················³··³³³³³³³³³·K·KKKKKKKKKKK³KKKKKKKKKJKKKKKKJKJJJJJJJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþÿÿþþþýþýþýýþþþþþþýýþýýüýüüüüð‡ŠŠ‡ðúúúúöøööõõëëííöö÷õóóóóóóúóóóóóóóóóóÁ4O4QðòóóóóòñððòððððððððððððððððàäðæðïïѾ333QáÝÙÑÑÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþþþýþýýýþúó÷ó÷÷óò§o=$!$$$$!!$=$$!$$$$!$==!$$$=$$===$$$$====$=$$==$$====$==$$====$=====$==$===================>=$==========>===$=======>==============================$==$=====$==============$===============$$=$====$==$$=$$=$$$$!==$$$$$$$$$$$$!$=$!$$$$!!!!$$!$$!!!$$!!!!$$!!!!!$!!!!!!!$!!!!!!!!!!!! !! !!!!! !  ! !  !    !    pÕýþþþþþþÿÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³·³·³·³³³³³¸³³¸··¸¸¸¸¸³¸¸666666666666666666666666666666666666666666666666666666666666666666666666666i666i66666668(% % %% %%%% % % % %% %%&%(566i6i66666666666666i66666666i66666666666666666665( 66666666666666666666666666666666666666666666666666666666666666666666i66666666666666$K···¸······¸·····¸·¸·······¸·¸······················³·³³³³³³³³³³³KK³³KKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJJJJJJJJJJJJJJJJJJJHGGGGFFFFFFJKKKKKKKKKKKK/OOOÄþþÿÿþýþýýþþüýþýþþþþþþýþýýüüýýüýð‡ŠŠ‡ïóóúúùöööõëëíöíëöõõ÷óóóóóóóóóóóóóóòò¾424QððòòóóòòðòðððððððððððððððððààðàïïïÑ�333QÏÜàÑÑÑïÑÑÑÑÑïïÑÑÑÑÑÑÑÐÐÐÐÐÐÐÐÐÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþþýýþýýýþþúó÷ó÷ó÷ò§o=$!$!!!$!$$!$$$$$$$$$$!$$$=$$====$$$===$!==$!=$$=$$=$====$=========$=======$==$$==$$=================$========$===$===$====$=>=======$====$$$$$=>=========$==$=$$$=====$$$==$$>>=$=$$===$$$$=$=$$======$$$=$$$$$$!!!!$$!$=!$$$=$$$$$!!!$$!!$$!$$$!$$$$$!!$!!!!!!!$$!!!!!!!!!!!!!!!! ! !!!!!!!!!!!  !!  !                vÕüþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³¸³³³·³·³³³³³·³¸¸³³³³¸³··666666i66666666i66666666i6666666666666666666666666666666666i6666i66666666666666666666666%%%%% % %%%%% %% % %%% % &%6666666i6666666666666666666666666666666666666666(  (66666666666666666666i6i666i666666i66666666666666i66666666666666666i66666666666666=K·¸·¸····¸¸·············¸·······················³··³····³·³³³³³K³³³KK³KK³³KKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJKJJJJJJJJJJJJJJHHGGGFFFFFJKKKKKKKKKKKK/OOOÄþÿþþýþþýýýýýüýýþþþþýþýþüüýýüüúüð‡Š‡‡ïóúúüööööõõööõöööõõóóóóóóóóóóóóòóóóòÁ424Qðòòóóóòòòòððòðòððððððððððððààðàçïðï¾233QáÝßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÐÐÊ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþýþýýþýýýýþú÷÷ó÷ó÷ò¬q$!!==$!$$=$!$==$!$!!=$!$$$!!!$$=$$$=>$!=$===$=======!==$$==$$======$$$==$$==$=======$=>=$=$==========$$$=$=====>===============$============$$===$=====$==========$=====$$==$!=$$$==$$=$$$=$=$=====$$$====!$=$==$!$$$$$!$$$=$$$!!$$$$=$$=$!$$!!!$!!!!$!$!!!! !!!!!!!!$!!!!!!!!!!!!!!!! ! ! ! !!  !!  ! ! !            vÕýþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³·³³³³³³³····¸¸·³³¸³³¸³¸¸¸¸·³666i6i6666666666666666666666666666666666666666666i666666666666666666666666666i66666666666%% %% && & % % % % % %666666666i6666i6666666i6666i666666666i66666666665(  (%6666i66i6666666666i66666i666666i66666666666666666666i66666666i6666666666666666666$K············¸·¸································³³³³³³³³³³···³³KK³K³K³KKK³KKKKKKKKKKKKKKKKKKKKKKKKJKKKJJJJJJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþþþþþýüüüýýüýþþþþýýýýüüþýüüüüð‡‡Š‡ïúúúúööööõõöíõõíöõ÷óóóòóóóóóóóóóòòóò¾4O4Qðððòóòòòðððððððððððððððððððààçàáïïï�333QáÝßïÑïÑÑÑÑïÑïÑÑÑÑÑÑÐÑÐÐÑÐÐÐÐÐÐÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþþýþþýýýýýþúó÷ó÷ó÷ò§v$$$!!$$$$!$$!!!$!!$$$=$$$$=$$$$$$$!$=$==$$==$$=$==$$$===========$======$$===============$=====$$===$==$=====$$===============$====$==============$==================$$!======$=$$==$=$===$===$$==$$$$$$$$$$$==$$$$$==$$$$$$!$!$$$$!!!$!!!$$$$!!!!$!!!!$!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!! !!!  ! !! !   !!    pÕûþþþþþþÿÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³·³³³³³³³¸³³³³³¸³³³³³³i66i66666666666i666i6666666666666666i6666i666666666i66666i666666666666666666i6666666i6666% % % % %% % % %(566666666666666666666666666i6i666666666i666666666   66666666666666666666ii666666666666666666666666666666666ii6666i6666666666666666666=K··············¸·¸·¸¸·····························³··³····³³³³³·³K³³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK/OO2Äþþþþþýýüþýýýüýýþþþþýýýüüýþýüúúüð‡‡‡‡ïúúúúööööõõííöõööõóóóóóóóóóóóóóóóòòðÁ‡24Qððòòóóòòñòðððððððððððððððððààçäðïïï¾333QÏÝÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÐÒ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýþýþýýýýýýþúó÷óó÷óò§p$$$!!$$!$$$$$$$$$$$$$$$$$!$===!!$=$$=$$$=$=$!=$$$$$$$=$===$=$$$=$=$=====$====$=======$======$======$==$=====$$===$====$======$===================$======$=$$======$=$$$=$$$=====$$=$=$==$==$$===$$$$=$=$$$$$$$$!$$$$$$=$!$$!$!$$$$!!!!!!!!$$!$!!!!!!!$!!!!!!$$!!!!!!!!!!!!!!!!!!!!!! !!!!!! !!!          pÕüþþþþþþÿÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³·³¸³¸³·³¸³³¸·³³³¸³³¸¸666i66i66666i66666i666666666666666i66666i6i6i66666666iii6666666666666iii6i666666ii6666666(%&% % %% % % % %66666i6666ii6666666i66666666666666i6666666666666 (  666ii6666i66666666666666666i666666ii666666666666666666666666i66i66666666666666666=K·¸·¸·¸·¸·¸·¸····························³³³··³·³³³··³³³·³K³³KK³K·KK³K³KKKKKKKKKKKKKKKKKKKKKJKKJKJKJJJJJJJJJJJJJJJJJJJHJHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþýþþýýýþþþýýýþýþþþþýýüýýþüüúúüð4Ї‡ïúóúúööööõõëöõõëöõõóóóóóóóóóóóóóóòòðÁ4O4QðòðòòòðððððòòððððððððððððððààðàçïïÑ�333QßÛÙÑÑïÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÐÐÐÐÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþýþýýýýýýýþúóó÷óóóò§o$$!!$$!$$!$$!=$$$$=$!$$$$==$$$=$!$$=!$$=$$$!$$$$!$==$!$$$$===$==$!$$====$$==$$=====$====$$========$======$$=$============9===>$$=======$===$====$$$!===$$=$=====$$=$=>=$=$=$$==$$$$$$=$$=$=$==$$$===$!$!$$!$=$!$!!$$!!$=$$!!!$$!$$$$$!!!!!!!!$$!!!!!!!!!!!!!!!!!!$!!!!!!!!$!!!! !!!!! ! !!!! !             pÕüþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³·³³³³³³³³³³¸³³66i6ii6666ii66i666ii6i6666666666i6iii6666666i666i666666666iiiii6i6i666666666666666i666665((% %& % %& % %(5666i6iii66i6666666i66ii666666666666666666666666i655  6656i6666i6666666666ii66666i6666i6666i6i6666i66666666666666666666666666666666666i6i6$K···¸·······¸····································³³³³·³³·K·³³³³KKKKK³KKKKKKKKKKKKKKKKKKKKJKKKKKKKJJJJJKJJJKJJJJJJJJJJJJHHGGGGFFFFFJKKKKKKKKKKKK/OOOÄþþþýýþýþþþýþýþýýþþþýýýýýþýüüüüüð‡‡‡‡ïúúúúöõööõõöõõõööõô÷óóóóóóóóòóóóóóòóÁ4O4Qñóòòóóòòðððòðððððððððððððððàäðçððïï¾333QßÛÙÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÐÑÑÐÐÐÍÌ:&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èþýýýýýýýýýþúó÷ó÷÷óò§o=!!!$!$!=$!!!$$!!$!$$$$$$!!!!=$$=!$==$=$$$$$$=====$!$$$======$$$$$=$$$$===$$$===$!$===$$$$==$=====$===$===========Z]‚ÅÎçñóóóòçÏÈ…_B>===$$====$$===============$!=$==$$$$===>=$$$=$$=$!$=$$$!!$!$$$$$!!$=$$$$$!=$$$$!=$!$!!!!$=!!!$!!!$$$!!$$$!!!!$!!!$$!!!!!!!!!!!! !!!!!!!!!!! !!! !    !!!   !         pØýþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³¸³¸³¸³¸³³³¸³³³·³·¸66666i666i6i6666i66i6i66666666666666666666i666i66i66666i6i66i66ii6i6666666i6666666666666i66(%% & % & 6666666666666666i66666666666666666666i66666i6ii66666   (566666666666666666666666666666666666iiii66ii6666ii6666666ii66i6666i6666iii66666i6666$K··········¸·····¸······¸···············³³·³³³·³³³³³³³³··³³K³KKK·KKKK³KKKKKKKKKKKKKKKKKKKKKKKJJKKKJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK/OO2Äýþþþþýýþþþþþþýþþýþþýýýýþþýüúúüüð‡‡‡‡ðúúüúööööõõööõõöíõõóóóóóóóóóóóóòóðòóÁ424Qðòòòòòðòððððòððððððððððððððàäððïïïï¾333QßÜÙÑÑÑÑÑïïÑÑÑÑÑÏÑÐÑÑÑÑÑÑÐÐÐÐÐÍÍÍ3&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóó÷óóóò§l=$!$$$$!!!$!!$$$$!=$$$$$$!$$$=!$$!$$$!$$!$==$==$!$=$$$$$!!=$$$$====$$=$$$=$==$======$==============$===$=$$=$==Z–ÎçüþÿÿÿÿÿÿÿÿÿÿÿÿýñÏÅZ===$=$$=====$==$$$$===$=$$$=$$===!$====$=$$$$$=$$$=$$$$=$$$$$$$$$$$$!$!$$$!$$!$$!$$!$$$!!$$$!$$!!$$!!!!!!!!!!!$!!!$!!!!!$!!!!!!!!!!! !! !!!!!! !! !   !!       oÕûþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³³³¸³³³³³i6666666666ii66i6666666i6666666666i666i6i66ii66666ii6666666666666666666666666iii666i666i667 & % %(5i6666666i6i6i66i6666666666666i6666666i66i66666666665   66666i666666i66i666i6666666i6iii666i666i6666i666i6i666666666i66ii66666i666666666i66=K···········¸······································³³³³³³³³³³KK³³³KKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKJKJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFJKKKKKKKKKKKK/OO2Äýþþýýýþþþþþþþýþþþþþüýýýüýþüüüüüð‡‡‡4ðüüúúööööõõööõõíöõõóóóóóóóóòóòóóòòóóÁ424Qòóóóòòðòðòòðòððððððððððððððààðâçïðï¾333QÏÜßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÐÍÌ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþü÷ó÷÷óóò§o$$$!!$$!!$=!!!!$$!=$$=$$!!$$$$!$$!$$$!!$$$$=$$$$$$$$$$$$!$==$$$$$======$$======$$===$=$===$$====$===$$$==$$=@�ÎóýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþúσB$$=====$=$$$$$$$$==$$$===$$===$$$$$$$=$!$$$=$$$$=$$$$$$=$$$!$$=!!$=!$$!$$!$$!!!$$$!!!!!!!!$$!!$!!!!!$!!!$!!!!!!!!!!!!!$!!! !!!!!!!!!! !!!! ! !!! !!  !  !      pØüþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³··³·³¸·····¸³³66666i6i666666666666i6i666666666666666666666666666iiii6i666ii666666i66666666666666i6666655 % & % (5i66i6i6666i66i666i66666666i6i66666i6666i66i666666i665     65 6i66i66666i6666i66666iii6i66666ii6iii666i6ii6666666666666666i6ii666666666ii6i666i66=K········································³³³³·³K³³³K³³³³³³K³KKK³KKKK³KKKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJJJJJHGGGGGFFFFFJKKKKKKKKKKKK/O22Äýýýþýþþþþýþýþþþþþýþüýýýýýýüüüüüð‡‡‡‡ðúóúúööööõùööõõööõõ÷óóóóóóóóóóóóóóóóÁ424Qðòóòòðððððððòððððððððððððððààðàïïïï¾233QßÖßÑïÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÏÐÑÐÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúó÷ó÷÷óò§o!!!!!!!!!!!!$!!!!!$!!!$$$$$!!!$$$!!$======$$$$$!$==$=$!$=$$$$$==$=$$=$=====$===$$$!!$==$$==$==$$!=========AƒÏüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýá…B===$$$=$====>==$=$$$==$$==$==$!$$$!$$$=$$$==$!!$$!$$$$$$=$!$=!$$!!!$!!!!!!!!$$$!$$$$!!!$$!!!!$!$!$!!!!!$!!!!!!!!!!!!!!!!!!!!!!! ! !   !  !   ;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@YB  @YYYYYYYYYYYYYYYYY;  @YYYYYYYYYYYYYYYYYY#       pÕûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³·³³³³³³³³³6666666i6666666ii66ii6i66666666666ii66i666666i66666i666666i6666666666i666ii6iiii666i66666866i % &% % (5i6666666i666666666666i6666666i66i666666i666666i6i6i666   56666i66666i666i66666666666ii66666666666666666666i66666666ii66i666ii6i6666666666666i6i666=K·······································³··³·³······K³K·³·³³·³³K·KKK³KKKK³KKKK³KKKKKKKKKKKJKKJKJJJJJJKJJJJJJJJJJJJJJJJJHHGGGFFFFFFJKKKKKKKKKKKK/OO2Äýýýþþþþþþþþýþþþýþþýüýýýýýþüúüüüð4‡‡‡ïúúóúööööõùööõöíöõõ÷óóóòóóóóóóóóóóóóÁ424Qðóòòðððòòòðòðððððððððððððððààðàðïðð¾333QáÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÐÐÐͧ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþú÷ó÷÷óóò§o!!!$$$$$!!$$$!!$$$$$$!!!!!$$!$$$$=$=!$$!!!$$$=$=$$!=$$$$$==$!$==$!=$=$!$!$$$$$===$$=========$$=$=$$$==$=]Ïüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüáz=$$$!$$==!$=$$$=$!$$$$$==$==$$==$!=!!=$!!!$===$$$$$$!!!$=$!$!$!!$$$!!$=$$$!!!$$!!$!!!!!!!!$$!!!!!!!!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!!!  !!! !! !  !ÂóúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúóY�òúúúúúúúúúúúúúúúúúð[Yá÷úúúúúúúúúúúúúúúúó oÕüþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³·³³¸³·³·³··6666i666iii666i66i6i666666666666ii666666666666i66ii6i66i6666i66666ii6i66666i6666666i66ii666i66(  & %& % 6666i6666ii6i666i66666i66666666666i6666i666666666i6i66666   5666666666i6666iii6i66666i666i666iii6666666i66666ii66666666ii666i6666i6i66666666666i66i66$K···························³³³³·³·³·³·³³³·³³³³³³³·³³·³KK³³KK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK/O22Äýþýþþþþþþþýýýþþþþýýýýþþýýþüüüúúð4‡‡‡Ñúóú÷ööööùõööõõööõõóóòóóóóòóòòòóòóóòÁ424Qðòòòòððððòòðððððððððððððððïàäðàçïïï¾333QÏÜßÑÑïÑÑïÑÑÑÑÑÑÑÑÑÑÐÑÐÐÑÐÐÐÐÐÍΨ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóó÷÷÷óò§o$!!!!!!!$$!$!!$$!!$$$$!$$$!$$!$$$!==$!$=$!$$$$$$$$$!=$$=$$$$$$=$=$!===$$$==$$$===$$$$$$$==$=$$$=$=$$$==BÂòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúË]$==$$==$$$!$$==$$=$$=$$$$$$!$=$!=$!$$$$!$$$$!$$=$$!!$=$$$$$!!!$$$$!$$$$!!$!!!!!$$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! ! ! !! !!! ! !   ! ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÕûþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³¸³³³³66iiii666666i66i66iii6666ii66i666666i6ii666i66666i6i6666i66i66666i66i6i666666ii6ii666iiiii66665 % % %(5666i66iii6i666ii666666666666666i6i66666666i66666i6iii66i6    666ii666666666ii666666i66iii6i66i6i6i666666666i66i6i6i66i666666iiii6iiiii666iii6iii666ii6$K········································³·³·³·³³···³³·³·³³··³KKKKKKKKKKKKKKKKKKK·KKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFJKKKKKKKKKKKK/O22Äüþýýþþþþþþýüýþþþþþþþýþþþüýýüüúúð4‡‡4ðúúúúööööõùööõõöíõ÷óóóòóóóóòóóóóóóóóÁ424Qòóóóóóòðóòòðððððððððððððððïàäðàçïïð¾333QÏÝßïÑÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÐÐÐÐÓ¦<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþú÷ó÷÷÷óò§o$$!!!!!!!$!!!$!!!$$!!!$!!$$$$!$!!!!$!$$=$$!$=$!$$$!$$!$$==$==$$!$==$=$$$==========$!$$$$$====$$$$$$$=ZÏýÿÿÿÿÿÿÿÿÿÿÿÿÿýüüú÷÷úüýþÿÿÿÿÿÿÿÿÿÿÿÿþñ‚@===$===$!==$===$=$$!$=$$$$!$$$=$$!!$=!$$$!$$$$=$!$$$=$$$!!!!$$$!!$!!!!!!!!$!!!!$$!!!!!!!!!!!!!$!!!!!!!!!!!!!!! !!!!!!! ! ! !!   !   ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pØüþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³·666666i6i666666ii6666iii66i6666666i666666666ii6ii66i6i6666iiii6ii66i66ii666666666i666i6i66666i66i6  % 5566666i6i6iii6i666i666i6i66666i6666i666666666iii6i66i666i6   566i6666i6666i6666ii666ii6i666666iiii666666i6ii666ii66i66ii66i666i66i6i666666666i66ii66ii6i=K···························³·³·³·³·³·³··³³³³³³·³³·³³K·KK³KKK³³KKKKKKKK³KKKKKKKKKKKKKKKKJKJKJKJKJJJKJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþþþþþþþýýþýüüüýýýþþýþþþþþýüüüüóч‡‡4ðüúúúöùööøùööõöëëôóóóóóóóóóóóóòóóòòóÁ424Qðòððòòððòòðððððððððððððððððààðàïððï�333QÏÜÙïÑÑÑÑÑÑïÑÑÑÑÑÑÑÑÐÏÐÐÐÐÐÐÐÐ׫ª<&&&&JKKKKKKKKKKKGEFFFFFFGGGGGGHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþú÷÷ó÷ó÷ò§l!!!!!!!!!!$$$!!!!!$!!!$!!$!$$$$$!!$$!$!!!$$=!!$=====$!=$$$!$$!!!!!$=$$$$$!!!$$$!!!$===$$!!====$$$===�ñþÿÿÿÿÿÿÿÿÿÿýòáÆ‚x]ZZZZ_‚ÂÎñüþÿÿÿÿÿÿÿÿÿÿúÆB==$$$$====$$$$$$!$$==$$==$=$$=$====$!=$!$$$$$!!$$!!$$!!$!$$!!!!$!!$$!!!!!!!$!!!!$!!!!!!!!!!!!!!$$!!$!! !!! !!!!!!!!!!!!  !  ! !   ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ!vØûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³·66666666666666ii66i66iiii6i66666i66ii6iii66666ii6i66666i6i66i6iiii66666i66i66666i6i66i6i6i66i6i6i6 &  && (556i66i6666666iii6i666i666i6666666666i66666ii666666i6i6i6ii6i65( 5666iiiiii6i6i6666666i6i666i666666iiiii6ii6i6i666ii6ii66666i66i666iiii6666i6i6666666iii6i666$K·········································³····³··³·³³³·K³³K³KKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJKJKJJJJJJJJJJJJJJJJJJJJJJHHGGGFFFFEJKKKKKKKKKKKK0222Äþþþþþþþþýýýþýüýüýýüýýýþþþýýüüüúï4‡‡4ðüüüüööööùøööõõëëôõóóóóóóóóóóóóóóóòóÁ424Qðððòðððòòòðòòððððððððððððððààðâðððð¾233QÏÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÐÐÑÑÐÐÏ­¨¨<&&&&JKKKKKKKKKKKGEFFFFFFFGGGGHHHHHHHHJJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóóó÷óóò§p$!!!!!!!!$$!!!!!!$$$$!!!!!$$!!!$!$$!!!$$$$$$!!$$$$!$$$$!!!$$$$$=$!$$!=$$$!$$$$$$$$!==$===$$$$$$=$$=…óÿÿÿÿÿÿÿÿÿþò˃Z=$$$=$!===$$$@�ÆçüÿÿÿÿÿÿÿÿÿýÎZ$$=$$=$$!==$$$$$=$$$!$$$$=$!$$=!$$!!$$$$!!!$!!$$$!!$!!$!!$!!!$$$!!!=!!!$!!!!!!!!!!!!$$!!!!!!!!!!!!!! !!!!!!!!!! !!!!! !!  !!      ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY„ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³·³³³³³³³³³³³³³³³³³³³³³³³³³³·³³·6666i6666666i666ii666iii6ii666i6i66i6i6ii6i6i6i66ii6666i6ii66ii6666666666iiiii6i6i66i6ii666iii66667DD  (6 i66i6i666i6i6ii66666ii666666666666i6i666ii66i6ii666ii666iii666i6  6i66666iiiiii66iii666666iiii6i6ii6ii6666i66ii666i6666666i6666i666666666i6i6ii66i66i666iiiii66$K···················³···³·³··³·³·³·³·³³·³³³³³··³³···³KKK·K³KK³³KKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGFFFFFFJKKKKKKKKKKKK/222Äÿþþÿþþþýüüýþýþýýýþüüüüüüüýýüüüü‡‡ïüúúúööööùõöíõíëëõôóóóòóóóóóóóóóòóóò¾424QðòòðòððððòðððððððððððððððððàäðçïïïѾ333QÞÛàÑïïÑÑÑïÑÑÑÑÑÑÑÑÑÐÐÐÐÐÐÐÐÍÓ«×Ì3&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGGHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþú÷ó÷óóóò§p$!!!!!!!!!!!!!!!!!$!$$!!$$!!!!!$$$!!$!$$!$$$!!$$!$=!$$!$!$$$$$$!=$!$$!$$$$!$$=$$$=$$$$$===$!=$$=$$9–÷ÿÿÿÿÿÿÿÿþñÆZ==$$$$$==!$=$$$$$$=B”áüÿÿÿÿÿÿÿÿþÏB$$$$=$!!$!$$$$==$$$!=$!=$$$$$$!$$$!$$$$$$$!!!!!$$$!!!$$$!$!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !    !       ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpØüþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³i6666i66666i66i666666666666ii666iii66ii66ii6666666666i6666ii6i6i66ii666666666666iiiii66666666i66666ED(=!5 65(5i66iii66i6666i6666666666i666ii6i66666i66ii6i66i666ii6666i66666ii6666ii66ii6666ii666ii66i6666ii666666ii6666666i66ii6666ii6iiii666ii6666i666666i666iiiiii666iii666667K········································³³³··³··³·³KKK³³K³K³·KKKKKKKKKKKKKKKKJKKKKKJKKKKKKJKJJJJJJJKJJJJJJJJJJJJJJJJHHHHGGGGGFFFEJKKKKKKKKKKKK/222Äÿþþÿþþþýüýýýýþþþþþýýüúüüüüüüüúüï4‡‡‡ïúóúúöööööõöíõíëíõõóóóóóóóóóóóóóóóóò•424QðòòòóóðððððððððððððððððððððàäðçïïðѾ333QßÛÙÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÑÑÞ«ÓÍÍ3&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýüþúóó÷÷÷÷ò§p$!!$!!!!!$!!!!!!!!!!!!!$=!!!!!$$!!!$!$$!!!$!$!!!$!$$$$!$=$=$$=!$$!==$!$$=$===$$$=$=!!$=$=$$$===!=…úÿÿÿÿÿÿÿÿ÷ÈZ=$$=!!!=$!=$$$!$$$=$!$=@„çþÿÿÿÿÿÿþáZ!$!$!=$$$$!=$$=!==$$=$!$!!$$$!!=$$$$$$$=$==$!!$!!$$!!$$$$=$$!!!!!!!!!$$!!!!!!!!$!!!!!!!$!! !!!!!!!!!!!!!!! !!!! !! ! !        ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ vÕûþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³i66666666666i6ii66666i6i666iiiii66666ii6iiii6666666i666666i66i6i6ii666i66i6666i66i6666iii666666iii6"E 66!8i5666666iiii66i6ii66i666iiii6i6i6666i6i66iiiii6iii666i6iiiii6i6i6i66666i6666666iiiii66666666666ii66i66i6666i66i6666666i6i666i6666666iiiiiiii6ii66i66666iiiiiiii6ii66ii666=K·³·³·³······³·³³·³·³·³·³·³·K³³³³··³³K·K·³³³³KK³K³K³K³K·KKK³KKKKKKKKKKKKKKKKKKKKKKJKKKKKJKKJJKJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþÿÿþþþþýýýýýüüýýýýþýüüüüúüüüüüüð‡‡‡4Ñ÷÷úúööööõõööõõöëõõóóóóóòóòóóóóóóòòò¾O24QððððððòðððððððððððððððïðïïïàÚïàïïïѾ333QßÖßÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÑÐÐÐÐϨ¨ÎÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúó÷÷÷ó÷òÒv!!!!!!!!!!!!!$$!!!!!!!!!!!!!!!!!!$$$!$=$!$$!$$$$!!=$!!$=$!!$!$!$$!$!$=$$$!$$$$!!$$!!$$!!!$=$$!!!‚÷ÿÿÿÿÿÿÿþçx=$$$$!=$!$$$$$==$$=!$==$$$=ZÆóÿÿÿÿþá_==$$=$$$$$=$$==$!$!!!$$$$$$$$$$$!!$$!!!!!!!$$$$!!!!!!$!!!!!!$!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!9[ÂËÆ‚@ ! !!! !!! !   ! !!   ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÓûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³6i66ii66ii66ii66i66iii6666i6iii6ii666i66ii6i6i666666ii6666666iii6ii666iiii6666i6ii66ii6i6iiiiii6666E 6=7ii66i666i6i66iii6666ii66ii6i666i6ii6666666666i6ii6iii6iiii6ii66iiiii6666666ii66666ii66iii66iii66666666iiii6i66i666iii6ii666i6666i66666iiii666i6ii666i66ii6ii66666ii666i666i6=K·······························³····³··K³³K·K·³·³·K³KK·³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJKJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþþþþþþþþþýþýýýýüüüýþüüüüüúüüüüüð4‡‡4Ñúóó÷ööööõõööõõööõõóóóóóóóóóóóóóóóóóÁ424QðððððòððððððððððððððððïðïïïàÚçàðïïï¾333QÏÖßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÏÓ¨ÞÐÍÓ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóóóó÷óò§v!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!$$!!!$!!!==$!=$$$!!!!$$!=$!!$!$$!==$=$!$!$$!$$$$$$$$$$==$$$$$$$$=_ñÿÿÿÿÿÿÿüËB$$$!$$$=$$$==$!$$$$$$!$$=$$$$=‚çþÿþÎZ=$$$=$!!$!!=$!$$!$!$$$$$$!$$$!$!!!!$$!!$$$$$!!!$!!!!!!!!!!!!!$!!!!$!!!!$$!!!!$!!!!!!!!!!!!!! !!!!!! !!!!!!!!! 9–òþÿþúÏY!   !      ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³66i666i6i6ii66666i6ii6iii66ii6ii6iiiiiii6666ii6ii6i66iii666i6i6i6666i6i6ii66666i6666iiii66iii66i666"ED6ii6i66ii66iii6i66i6iii666iiii6i66i6666666i6iiii6ii66i6iii6i6666ii6iiiiiiii6i6i66i6ii66iii666ii66i6ii6ii6666i6i6i66i666ii66ii66ii6ii66666i66i66i666iii6iii66666i6ii6iiiii6ii6$K³·³·³·³³³³·³·³·³³³³·³³³³³³·³³³³³³³³·³³·³³·³·KK³KK³³K³KKK³³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHGGGGFFFFFFJKKKKKKKKKKKK0222Äþþÿþþþþþþþþýþýýüüýýýüüüúúúüúüüúð4‡‡4Ñ÷úóúöööëõõööõõííõõóòóóóóóóóòóóóóòóóÁ424QððòððððòðòððððððððððððïïïïïàÚïàçïïï�233QÞÜÙÑïÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÐÐÐÐÐÞ«ÓÏÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýýýýýýüþú÷÷÷÷÷÷ò§o!!!!!!$!!!!!!!!!!!!!!!!!!!$$!!!!!!!!!!!$$!$!!$!!!!$$!$$!$$$$$$$$!=$!$!!=!!$$!$=!!!$=$$$=$!!$$ZáÿÿÿÿÿÿÿúÃ@$!$!!$$=$$$!=$$$$$$$$=$!$$=$$!$=]Î÷ËB$!$$$$$$$$$!$$$$!!$!$$=$!!!$$!$!!!!!$$!!$!$$!!!!!$!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!! !„üÿÿÿÿÿÿÏ@  ! !      ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûþþþþþþþÿýýýýýýýýýüàh³³³³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³666666i666iii6i66i6i6ii66iii6666iiiii66i6ii6ii6666i666i66i6iiii66i6i6i6i6i666i6666i6iiii6666i6ii666 EDDE7666i6ii66666iiiii66ii6ii666ii6ii6i66666i6iiiii6ii6ii66ii6i66iii6666i6i66i6ii6i6D6i66iiii66ii66iiiii666iii6iii6iii6i666i66666i6666i666iiii666666i6i666iii66ii6666666ii6ii6ii6i6i$K···························³··³³··³···³³K·³·³·³·KK³³³K·K³³·KKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHGGGGGFFFFFJKKKKKKKKKKKK0222Äþþþþþþþþþþþþþýþýýýüýüüüúúüüüüüüð44‡4Ñúóú÷öööëõõööõõííôõóóóóóóóòóòóóóóóóóÁ423QðòñòððòðððððððððððððððïïïððàäïàÑïðѾ230QßÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÐÐÐÐÏ­­ÏÐÍÐÊ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHJHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúóó÷÷ó÷ò§l!!!!!!!!!!!!!!!!!!!!!!$$!$$$!!$!!!!!!!$!!!!!$!!$!$$$$$$$$!$$!!!$=!!$!$=$$$=$!$!!$$$$$!$=$!$9Èþÿÿÿÿÿÿú–=!$$!!$$$$!$=$=$$$$$$=$$$$====$$!$=@x@$$$$$$!$==$!$==$!!!!!!$$!=$!$$$=!$$$$!!!!!!!!$$!!$!!!!!!!$$$$!!!!!!!!$!!!!!!!!!!!!!!!! !!!! !! !!!!!!  !!!Bçÿÿÿÿÿÿÿü–!! !!    !!   ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY„ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÕûþþþþþþþÿýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³iii666ii66666iiiiii66ii6iiii66i6i6i6666666i666iiiii66i6ii6666i666ii66i66i66i66ii66666i6ii6i666i6i66!EDD$66iiiiii666i6iii66666iiiiii6i6ii6i6i6666i6ii66666iiiiii6ii66i666i6i6ii666i6ii66i"!66i6i6ii6ii6i6ii6ii666i6i6666i6iii6ii6iii66iiiiiiii66iiii66ii666666ii6i66i666ii6iii6i66i66666i6$K····³·³³³³··³³·³³³·³³³··³³·³··³³··³³³³³³K·KKKKK³K³KK³KKKKK³KKK³KKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþþÿþþþþýýþþþþýýýýýüýüüúúúúüüúüüð‡‡‡4Ñóúú÷ööëööõöíõöëëôòóóóóóòóóóóóóòóóòòÁ424QððòððòðððððððððððððððððïïðïÚÚïàïïïï¾323QÞÖßÑÑïÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÑÐÏÓ«×ÍÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHGGHJHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýýýýýýüþúó÷÷÷÷óò§o!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!$$!!!$$$!$!$!!!!!!!!$!!!$$!$$!!!$=$!!!$$$$!!!!$$$$!!!$$$!$$$$=…úÿÿÿÿÿÿú–9!$$!$$$!!$!$$$!!$!$$!$$$$=$$!!!$$=$!$$$!!!$$$$$!!$$!!!$$$!$!!$!!$$$!$!$$$!$!!$$$$!!!!$=$!!!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!! _úÿÿÿÿÿÿÿþÎ9     !     ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûþþþþþþÿþýýýýýýýýýüàh³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³i6ii6666i666iii6ii666666i666666i66i666666666666ii6iii66ii6i6666i6iiiiii6666ii6i66666iii6iii666i6666!ED6ii6i6666i66iiii66i6iii66iii6666ii66666i6666ii6ii6i666ii666i6i666i666i66i666i66i6"D!6i66iiiiii66i6i666666i6iii6ii66i6666ii6ii666iiii6i666i6i6i6i66ii6i6ii6ii6ii66ii6iiiiiiii6ii6iii$K····³·············³·³·······³··³·³··³·³·³³³³³³KK³³KK·K³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJJJJKKJJJJJJJJJJJJJJJJJJJJJHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþþÿþÿþþþþþþýýþþýýýýüüüóúúüüüúüüð4‡‡4Ñúúú÷ööööùõöööõëëô÷óòóòóóóóóóóóóóóóòÁ424Qðòðððòððððððððððððððððððððïàäïàçïïï¾333QÞÔßÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÑÑÑÑÐÙ«ØÑÑÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGHHHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýýþúó÷óóó÷ò§l!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!$$!!!$!!$$!!!$$!!!!!!!$$!$!!!!!!$!!$!$$!$!!!=$$$$$$$$$$$$!$YçÿÿÿÿÿÿýÃ=!$$$$$$!$$!$!!$!$$!$$!$$$$$$!!!$!$$$$!$=$!!$!!!$!!$!$!$!$!!$$$!!$$!!$=!!$$!!!!$!$$!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !!!!!!!! !! !�þÿÿÿÿÿÿÿÿÏ9 ! !       ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÕûþþþþþþþþýýýýýýýýýüàh³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³iiii66i66i6i6i6iii66666iiiiiiii66666iii6iii6ii666666iii6i6ii6ii6666iiiiiii6iii6i6iii6i6ii6ii6i66ii6!GED86ii6i66i6666ii6666iiiiiii66666iiiiii66ii6i6ii666i6i6i6666i66i6iii6i6ii6i66666ii66"66i6ii6iiiii66ii666i6i66iiiii6666ii66i6iii666i66666i66i66i666i6i66iii6i66ii6i66i6i666i6iiii6iii=J··³³·³·³··³·K³³³³···K³·K³³K³³K³³³K³K³K³K³³KKK³K³K³KKKKK³KKKKKKKKKKKKKKKKKKKKKKKKJKJKKKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFGFFFFJKKKKKKKKKKKK/222Äÿþþþþýþþýþþþýþþýýüüýüúúúúüüúúüúð4‡‡4ç÷úó÷öõööõõööõëëëôõóóóóóóóóòóòóóòòòóÁ424QððòòðððððððððððððððððððïðïïàÚïááïïï�232QÏÛÙÑÑïÑïÑÑÑÑÑÑÑÑÑÐÑÐÑÑέ­ÎÐÐÍÍÍÊ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýýýüþú÷óóó÷óò§l!!!!!!!!!!! !!!$!!!!!!!!!!!!!!!!!$!!$!!!$$!!!$!!$!!!$$!!$$!!!$!!!!$$!$!$$!!!$!!$$$$=!!$$$!!!ÃýÿÿÿÿÿþÎ@$!!$=$$$!$$!!$!=!$$!$$$$$!!!!!$$$!!$!$$$$$!!$!!!$!!!!$!$!!$!$$!!!$$!$$$!$$!!!!=!!!!$!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! !! ![÷ÿÿÿÿÿÿÿþË! ! !     ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  oÕûþþþþþþþþýýýýýýýýýüàhK³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³iiiiii66i6i6iii6ii6ii6666666ii666666ii66i6i6ii666iii6iiii66iii6iii6i6iii66iiiiiiiii6iiii6i6iiii6ii6EE76i6i666iii6ii6ii66iiii6iiiii6ii6iii6ii66i6i6666i6666i6666i66ii66iiiii66666i6i6666"iiii6iii6ii666ii6666ii666i66i66i6ii6ii66666i6i666iii6666i6i6iiiii66iii66666i6i66ii6i6iiii6iiiii$K·················³·³·³·³·³·³·³³·K³³³³³³K³³K³³³··³K³KKKK³KKKKKK³KKKKKKKKKKKKKKKKKKKKKKJKKJJJJJKJJJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK/222Äþþþÿþþþþýþþþüýþüýýýüúúúúúüüúúüüð4‡‡4ÑúúúúööööõõëëííííõôòóóòóóóóóòóóóóóóóÁ32OQñðòòðððððððððððððððððððïðïïààðçïïïï�222QÏÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÔ«ÞÐÐÐÐÍÍË3&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýýýýýýüþú÷÷óó÷óò§o!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!$$!!!!$$!!$$$!!$!!!$!$!!!!!$$$$!!!$[òÿÿÿÿÿÿçY$$!!!$$!$!!!$!$!$$==$==!!!!!$$!!$!$$!!=!!!$$$==$$$!$!!=$$=!!!!!$=!!!!$$!!!!!!$!$!!$!!!!!!!!$$$!$$!!!!!!!!!!!! !!!! !!!!!!!!!!!!!!!!!! ! !  !! !@Ïÿÿÿÿÿÿÿü„!   !     ÈþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþY‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   vÕûþþþþþþþþýýýýýýýýýüàh³³·³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³66i66iii6iii6ii6iii66iiiiii66i66i6i666i66i66iiiiiiii6666i6666iii6i6iii66666iiii6ii66i666i6i6i66ii6i7EDD76iiiiiii6ii6666i66iii66i66i66iii6666666i66i6i666ii6iii6666i66i666ii6iiii6iii666i6D6ii66i666i6iiii6iii666i6i6ii66666iii6i666i6i66666i666ii66ii66ii6iii6ii6iiii66iiiiiiii6i6iii66ii=J··K³³·³·K³··³³··³·³³³³K·³³³·KK³³K³³³KK³³KKK³KKK³KK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFFFFEJKKKKKKKKKKKK/222Äþþþþþþþþþþþýýýüýüúüüúóúúúüúúúúúð4‡‡4ïóóó÷öööëõöííöõööõôòóóóóóóóóóóòóóòóðÁ323QðððòððððððððððððððððððððïïïàÚïáïïïѾ222QÞÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÐÑÑ׫ÓÐÐÍÍÐÍÍË3&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýüüýþúó÷óóó÷ò§o!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!$!!!$!!!!!!$!!!!!!!!$!$!$!!!$$$!!!$$$!!!$$$!!!!$$!$$9Æþÿÿÿÿÿú‚$$$$$!$!$!$!!$!!!$!!$$!!!!$$!$!!$$$$!!!$!$=$!$$!!!!$$$!!!!!!!$!!!!!!!!$!!$$!$!!!$!!!!!$!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!! !  �óÿÿÿÿÿþË9        �ÈËËËËËËËËËËËËËËËËËÎüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçËËËËËËËËËËËËËËËËËËÆ#‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûþþþþþþþþýýýýýýýýýüàhKK³³³³³K³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³66iii66iii6i6i6666ii6i66ii66iii6i6666666666ii66iiii666ii6iii666i666iiiiiiiiiii66ii6i6iii66ii6ii66ii8FED7iii666ii6i66i666i66666iii6666ii6i66i666i66iiiii6iii66iiii66i6i66iii66iiiii66ii66i"Diii6ii6i6i66i6iiiii666666i6666i6iiii6iii6666i6iiiii66666i6i66iiiii6ii6ii6666666i6666iii6iii6ii6$K·····³·³······³·³···³³³³·³³³³³³³³³³³³³³³K³³KK³KKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKJKKKKKJJJJKKJJJJJJJJJJJJJJJJJJJJJJJHJJHHGGGFFFFFJKKKKKKKKKKKK0222Äþþþþþþþþþþþýýüüüüüúúúúüúüüúúúóúð4‡‡4ïú÷úúöööëõõëëõöööõõòóóóòóóòóóóóóóóóòÁ323QçðòððððððððððððððððððððððïïàäçàïÑÑï¾233QÏÛßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÏ­­ÏÑÐÑÍÐÍÍÒ:&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýýýüüýþú÷óó÷ó÷ò§o!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$!!!!!!!!!!!!!!!!!!!!!!!!$$$!!!!$$!!!$!!!$$YñÿÿÿÿÿþÎ@!!$!$$=!!!$!!$!!!$!!$!!!!$$!!$!!!$$$!!!!!$$!!!$!!!!$!!!!!!$!!!!!!!!!!!$$99999!$$!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!! ! !!‚áúýüòÈB   ! @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûþþþþþþÿþýýýýýýýýýüàh³³³³³³³³³³³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³666iii6iiiii66iiii6iiiii6iii66666i66i6iiiiii66ii66i666iiii66i6ii66iii6ii66ii66i6i6ii6ii6i66666i66i68FED$iiii66iiii666i6666666i6i66i6ii6ii6iiii6iiii66iiiii6i66ii6iii6ii666666ii6i6iii6iii6i666i6666i6i66i6iiii66i6i6i6666iiiiiii6ii6i6i6i6666ii66i66iii6i6iii6i6i6iii66666iii666i66i6iii$K³³··³³·³³³³³³³³K³³³³³³³³³³³K·KK·KK³K³K³KKKK³K³KKKKK³KKKKKK·KKKKKKKKKKKKKKKKKKKKJKKJKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFFJKKKKKKKKKKKK0222Äþþýþýþþþþþþþýýüüüüúúúúóüüúúúúóóð4‡‡4ï÷óúúööööõíööõõíëõôòòóóóòóóòóóòóðòòò¾323QððððòððððððððððððððððïðïïïïàÚïàáïÑÑ�M2MQÏÖÙÑÑÑÑÑÑÑÑÑÑÑÑÑÐÑÐÐÔ¨ÞÐÍÐÍÍÍÐÍÊ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýýüüýýüþúóó÷÷÷óò§o! !!!!!!!!! !!!!!!!!!!!!!!$!!!!!!!!!!!!$$!!!!!!!!!$!!!!$!!$!!!!$$$$!!!!!!!!!$$$!!!…üÿÿÿÿÿ÷_!!!!$$$!!!!!!!!!!$$$!$$$$$!!$$$$!!!!!!$!!$!$!!$$$!!!!!!$!$$!!!!!$!!@B_…ÆËËËËÆ–�Z@9$!$!!!!!!!!!!$$!!!!!!!!!!!! !!!!!!!!!! ! !!!!!!! !!!!! !!!! !! @�–…[!       ;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  oÕûýþþþþýþþýýýýýýýýýüàh³³³³KKKK³³³³³³³³K³³³³³³³³³³³³³³³³³³³³³³³³³6i6ii66ii666ii6ii66ii6iii6iii6i6iiiiiiiiii66666ii6666iii66iiiiii666iiii6666iiiii66iii6iii66i66i6iii8ED7iiiii666i6ii6666ii6iii6iii6666i6i66i6ii6ii6iiiiii666i6iii6ii66ii6i6iiii6iii6i66i6!6i6i66ii666i66iiiiiiii6i6i6i666iii66iiiii6i66666666iiiiii66iii66i6666ii6i6666666iiii6666ii6ii667K³K·³·³·³··³³··³³·K³³³³³³³³·K··³³³·K³KK³K³KKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGGGGFFFFJKKKKKKKKKKKK/222ÄþýýýýþþþþþþþþýüüüüüüüúúüüúúúúúóÑ4‡‡4ïóúó÷ööööõííöõöëëôôóóóóóóòóòóòòòòòóòÁ324QðððððððððððððððððððððïðïïïïàäïàðÑïï�022QÞÛÙÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ×°×ÐÐÐÐÐÐÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýýýüüýýüþúó÷ó÷óóò§o! !!!!!!!!!!!!!!!! !!!!!!!!!!!!=!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!$!!!!!!$!!!$$$!!!!9ÎÿÿÿÿÿÿÎ=$!$!!$$!$$$!$$$$!$$!!!=$!!!!!$$$!!$$!!!!$$!!$$$!!!$=$!!$$$!!!$$!$9Z–ÎñúüþþÿÿþþýüóßÂ_;!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!$!!! !!!!;Z�‚�_Z9!            !;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÕûýþþþþþþþýýýýýýýýýüàhK³K³K·³³³³³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³³666ii6iii666iiiii66i6i6i6i6iii6ii6ii666iii6ii6666iiiiii66i6iii66ii6iiiiiiiiiii666i66i6ii6iii6i66i6i8ED=iiiiiii6iii6iiii66i6i6iiiiii666666ii6i66ii66iiiii66i6ii6ii666iiii666iii6ii6666i6i"D66i6ii6i6iiiiiiii666i66iii66i66iii66ii6ii6666ii6ii66i6i6i6i666ii666666i6i6iiiii666666i666iii6i6$J³³K³³³³·K³³³³K³³K³KK·KKK³³K³³KKK·K·KKK³³KKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJKJKKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHGHGGGFFFFFFJKKKKKKKKKKKK/222Äþýýýýþþýýþþþýýüüüüúüúüüúóóüüúúúï4‡44Ñóóó÷öööíõõëëõíëëõõóóòóóóóóóóðòððòòðÁ323QçððððððððððððððððððððïïïïÑïààïàáïÑѾ322QÞÛÙÑÑÑïÑÑÑÑÑÑÑÐÐÐÐÞ­­ÏÐÐÐÍÐÍÍÐÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýüýýüüýþú÷ó÷÷÷óò§m! !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!$$!!$$$!!!!!!!!!$!!!!!$$!$]òÿÿÿÿÿú_!$!!!$$$!!!$!!!!!!!!!!!$!!$!!!!!!!!!!$!!!!$$!!!!!!!!!!!!!!!!$!!!9[ÆñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþóÏ‚@!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! ! @…Ïñúüúúñ΂@ !! !!!!           @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÕûþýýþþþþþýýýýýýýýýüàh³³KKKKK³K³K³³K³³³³³³³³³³³³³³³³³³³³³³³³³³³³666i666i66i66iiiiii66666iii6ii66i6666iiiiiiiiiii6i666666i66i6i66iiii6ii6i6ii666i66iiiii66i6ii66iii66DD!66ii6ii6666iiiii6i66iii6ii6iii6ii66i66ii6iii6iiiii6666i6i6i6ii6666i6666i66i6ii66i"66i6i6666iiii66i6iii6iiii6iiiii66i66iii6iii66i66iiiiiiiiiii666i6ii6ii6iii6666iii6i6i6iii6666iii=J³³³·³³³··³³³³³³³³³³³K³KK³³³³K³³³·KKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKJJJJJKJJJJJKJJJJJJJJJJJJJJJJJJJJJJHHHHGGGFFFFFFJKKKKKKKKKKKK/222Äþýüýýýýýþþþþþýüüúüüüüüüúúúüüüúúï4‡‡4Ñúóó÷öööíõõöíöíëëôóóóòóòóòóóóóòòòòðòÁ323QçðððððððððððððððððððððïïðïïàÚïàÑïïÑ�222QÞÔßÑÑÑÑÑÑÑÑÑÑÑÑÑÑÏÔ°ÞÐÑÐÐÐÍÐÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGHHGHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýüýüýýüüýþú÷ó÷óóóò§o! !!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!$$!!!!!!$!$!!$!!$$!$„ýÿÿÿÿÿá@!$!!!$$$!!!!$$$!!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!$$!!!!ZÃòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎ_9!!!!!!!!!!!!!!!@�‚�‚�_;!!!!;_„9!!!! !!!!�áüÿÿÿÿÿÿÿÿüÏ[!   !! !B�����[! @������_9 ! @___�___!;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÕûþýýþþþþþýýýýýýýýýüàh³K³³³³³K³³³³³³³³K³³K³³³³³³³³³³³³³³³³³³³³³³6i6ii66ii6i66iii6i6i666iiiii6i6ii66ii66i6666i6i6i6iiii6i666i66i6666i6ii66iiiii6ii66i6i66i6i66i66iii6EDD i66i6iiii666i666iiiiii66ii666i66i66666i66666i6iiiiiii66i6i6iiii666i6i6iiiii6ii6i66i66ii6i6ii6iiii6i6i6ii6i6666iiii6i6i6iii6ii6i6i66iiiiii6i66iii66i6666iii666i6ii6ii666iiii66iii=J³³³K³KKKK³KK·³³³K·³K³KK³KK³³K³KK³K³KK³KKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFGFFFFJKKKKKKKKKKKK/222Äýýýýýýýþþþþýþüüüüüüüüüüúüúüüüúúï4‡‡4ïóóúúööööõõíëõëëëõõòóóóóóóóòòòðòðòòòÁ324QðððððððððððððððððððððïïïïÑïàÚïàáïïï�222QÏÖßÑïÑÑÑÑÑÑÑÑÐÐÑÑ׫×ÐÐÐÍÐÍÐÍÐÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGHHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�èýýýüýüüýýüþúó÷ó÷óóò¬p!! !!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!$$!$!!!$$!!9ÈþÿÿÿÿþÆ$!!!$$$$!!!!$$$$$$!!!!!$!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!9�áþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþò–@!!!!!!!!!!!!$–òúúúúñ� 9�Îóþò_! !! !„òÿÿÿÿÿÿÿÿÿÿÿþð�! !!!! !Â÷úúúúáY�ñúúúúúóÃ# @Ïúúúúúúá;;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÆ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ÂúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýþþýþþþþýýýýýýýýýüàh³³KK³³KKK³KK³³K³³³³³³³K³³³³³³³³³³³³³³³³³³³i6ii6ii66iii6i6ii6i6i666i6i6i6iii66i6iii666iii666iii6i666iiiii66i6ii666ii6i6i6ii666ii66iiiii6i6i6ii6"EDD 6i6666ii6i66iii6iiiii666ii6i66ii66i6i66iii66i6666i66666i6i666ii66666666666666666iiii66i666i6iii6i6666ii6666i6i6ii66ii6ii6iiii6iiiiii6iiii6ii6iii6i6i6ii66i66iiii6i6i6iii6i66i6i6$J··K³··³³³³KK·³³³K··K³³³³³³K³KKKKKK³K³KKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJKJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJHJHHHGGGGFFFFFJKKKKKKKKKKKK0222Äýþýýýýýýýýýüüýüüýýüüüüüüüüüüüüüï4‡‡4ÑúúüúöööëõõõöëíëëõõóóóóóóóóóòóòòóòòóÁ323Qððððððððððððððððððððððïððïðàäïâïïïï¾0223ÏÛßÑÑÑÑÑÑÑÑÑÑÑÑÑÏ­­ÏÐÐÐÐÍÑÍÍÐÍÍÉ:&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýüýüüýýüþú÷ó÷÷÷óò§p! !!! ! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!$!!!!!!!!!!!!!!!!!$!!!!!!$!!$$!!!;Ïÿÿÿÿÿü�!$!$!!!!!!!!!!!!$$$$!!$!!!$$$$!!!!$!!!!$!!!$!!!$!!!$$!!!!!$9…òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüËB!!!!! !!!!!!Ãþÿÿÿÿü‚!ZÈ÷ÿÿÿþÎ; !!! „÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿò[! ! !ÈÿÿÿÿÿòY! @Îþÿÿÿÿÿ÷‚   Èþÿÿÿÿÿý  @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüüüüüüüüüüüüüüüüüüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÕûýþþýþýþþýýýýýýýýýüàhK³K³K³K³³K³³³·³³³³³³³³³³³³³³³³³³³³³³³³³³³³iiiii6i66i6i6i666ii6ii666ii6666ii66666i6i6i6iiiiiiiii66i6ii6i6iiii6i6iii66i6iiii66iii6666i6iii6i6ii6#ED6i66i66ii66i6ii666ii6ii6iii66ii6i666ii666i6iiiiii6iiii6i666iiii666iii66iii6ii66i6Di6666ii6ii666??i6iii666iiii666i6i6666i66iiiii6i666i666iiii6iii6ii6666iii66ii66iiiii6i666666iiii=J·K³³³³KKK³K³KK³K³³KKK³K³KKK³KKKK³K³KKKKKKKK³KK³KKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJJKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFFJKKKKKKKKKKKK0222ÄýþþþýýþýüüüþýüüýýüüüüüüúüüüúúúúÑ44‡4Ñüüú÷ööööõööíõëëëôôóóóóóóóòòòòòòðòðò¾423QçðððððððððððððððððððððïïðïïàÚïÑÑïÑÑ�222Qß°ÙïÑïÑÑÑÑÑÏÐÐÑÏÔ¨ÞÍÐÐÐÍÐÍÐÐÍÍÍÍ3&&&&JKKKKKKKKKKKGEFFFFFGGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âýüüýüýýüüüþúó÷ó÷÷óò§o !! !! !! !!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!BòÿÿÿÿÿóB!!!$!!!!!!!!!$!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!$!$!!!!!!!!!!!!@–÷ÿÿÿÿÿÿÿÿÿÿþþüüüüýþÿÿÿÿÿÿÿÿÿÿýÎY!!!!!!!!! !!Ãþÿÿÿÿü‚‚çýÿÿÿÿÿü‚ !!!!!YñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ;   9ÈÿÿÿÿÿóY [ñÿÿÿÿÿÿçY „úÿÿÿÿÿÿÏ#;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûýýýþýþþþýýýýýýýüüüàhKK³KKKK³KKKKKK³K³³³³³³K³³³³K³³³³³³³³³³³³³³iii666iiiii6ii6iii666i6i66ii666i6i66i6i6i6iiiiiii6iiii666iiii6666i6666i6i6i6iiiii6iii66ii66i66i6666i$EDD66ii6666??88i668A>6i88AiZŒ?66j??i6i688>8886^B8iii8ij\8ZZ8<888>A>??i8\Z8ijiB8>>B\>":B?>Vi8>\>\6iiCB68>8i8ii888i66i86V8ii8Z66888i6ii6iii666iiii686iiiA8666ii6i666iiii8ii6iiiii66i666=JK·K³KK³K³³³K·KK³KKKK³³K³³K³K³KKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJKKJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGFFFFFFJKKKKKKKKKKKK/222Äüýþþýýþüüüýþýüüýüúüüüüüüüüüüüüúï4‡44ïúóó÷ööëöõõöëõíëëôôóóóòóóóóððóóóðóðð¾323QðððððððððððððððððððððððððïïàÚïàçïïï�202QϰÙÑÑÑÑÑÑÑÐÑÑÑÑØ«ØÐÐÐÐÑÑÐÐÐÐÍÍÍÈ3&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âýüüýüýýüüüþúóó÷óó÷ò§o! !! !! !!! !!!!!! !!!!!!!!!! !!!!!!!!!!!!!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![÷ÿÿÿÿÿá9!!!!!!!!!!!!!$!!!$!!!!!!!!!!!!!!!$!!!!!!$!!!!!!!!!!!!!!!9Âúÿÿÿÿÿÿÿÿÿúð΄‚‚„–Èá÷þÿÿÿÿÿÿÿÿþÞB!!!!!!!!!!ÃþÿÿÿÿüËòÿÿÿÿÿÿÿÿá@!! !!9Ëþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý‚ !!ÈÿÿÿÿÿòY !–úÿÿÿÿÿþË;[ñÿÿÿÿÿÿò[;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûýýýþýýþþýýýýýýýüüüàhK³³KK·K³³K³³³·K³³³³³³K³³³³³³³³K³³³K³³³³³³³66i6i6ii666iii6iiiiii66ii6iii66i6666ii666i6iii66ii6iii6i6i666ii6iiiii6ii6iiiiiii6ii66i66668ZZC8?>86^9ED8Z?8>57==5<<66CBŠ^`B\BZ>8?Y\BŒZA>6?>Z\ZŠŠŠ><\BY^VŠŒ^ŠŠ\ŒŠA\^Q<<\8Y\"PY\Y8V8\B88B\YQ>B86>BVBBBA6>8888BB8i?BB66868iV88ii6iiii6iA>A=J³KKKKK³K³KK·K³KKKK³³K³KKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKJKJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHJHHGGGGFGFFFFJKKKKKKKKKKKK/222Äüüýþýþýüüüýýýüýüüüüúúüüüýüúúóóúï44‡4Ñúúóúööööõõööõöëëôôóóóóóóòòðòðòðòððð•322QððððððððððððððððððððïïïðïïïàÚÑàÑïÑï�2003ÞÛÙÑÑÑÑÑÑÐÑÑÐÏÞ°­ÏÐÍÐÐÍÍÍÍÍÍÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýüýüüýýüþú÷÷÷÷÷óò§p!  !! !!!! !!!! !!!!!!! !!! !!!!!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!�úÿÿÿÿÿË9!!!!!!!!!!!!!$!!!!!!!!!!$!$$!!!!!!$$$$$!!!!!!!!!!!!!!!!9…÷ÿÿÿÿÿÿÿÿó΂B9!!!$$$!@xÆñþÿÿÿÿÿÿÿýË@!!!!! !!!9Ãþÿÿÿÿÿýÿÿÿÿÿÿÿÿÿý…! ! [óÿÿÿÿÿÿúÎÂÂÏüÿÿÿÿÿÿÑ!   !ÈÿÿÿÿÿòY 9Ëþÿÿÿÿÿü• #Îÿÿÿÿÿÿü•  ;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ pÕûýýýýýýþþýýýýýýýýýüàhKKKKKK³K³KK³KKKK³K³K³³³³³³³³³³³³³³³³³³³K³³i666iiiii66iii6iii6ii6iiiii666i6iiiii6i6i666iiiiiiiii66i6?i?ii6i66iZ?Œe``B<\^8^=ED\Š:" ,- #=QŠ<ŠŠ\eŒŠ\eŠ\eŠ\Š\ŠŠQ?\`\\Qˆ‰‰ŠˆQŠŠ\Šˆ\ŠŠ‰Š‰ˆˆˆŠˆˆˆ^ˆQŠˆ\Q\QQŠS‡QQ?\QMR\S":NR‡‡ŠQ\‡‡QQ`\BQQ‡ˆSˆR>8\B\YQ\VVBQSˆQˆ‡‡BUV\‡QUQQQBV=BV\>\\?88<888BB‡=J³KKK·³K³³KK³K³KK³KK·KKK·KKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKKKKJJKJJJKJJKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHJJHHGGGGFFFFEJKKKKKKKKKKKK0222Äüüþþýýýüüýýýýüýüüüüüüüüüýüóúúúúï44‡4ïúúó÷ööööõõöíõõëëôôòóóòóóððððòòóòòðð•223QððððððððððððððððððððïïððïððàÚðàçïïï�0223ÏÔÙÑÑÑÑÑÑÑÑÑÑÑ­°ÏÑÐÐÐÐÐÐÐÐÍÐÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýýýüüüüüüþú÷÷ó÷÷óò§l !! !   ! ! !! !!!!!!!!!!!!!! !!!!!$!!! !!!!!!!!!!!!!!!!!!!!!!!!$!!!!!!$…üÿÿÿÿÿÂ$!!!!!!$!!!!!!!!!!!$!!!$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!�òÿÿÿÿÿÿÿýá�;!!!!!!!! !!![È÷ÿÿÿÿÿÿÿüÃ9! !!!!9Ãþÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñ–9!! Âþÿÿÿÿÿó„9!!@Âýÿÿÿÿÿò@ !   ÈÿÿÿÿÿòY Yçÿÿÿÿÿÿó_ ÂüÿÿÿÿÿÿÎ#;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÕûýýýýþýþþýýýýýüýýýüàhKKKKK³K³³³³K³K·K³³³K³³³³K³³³³³³³³³K³³³³³³³6i666i66iii666iii6iiii66iii6iii6iiii6iii66iiZZii6ii>i68?CŒCŒCii6CCB>ŒZŒ\B^ŒŒ8^?Z>?ŠŒ‰‰‰Œ^>Š\‰Š^<Š‹Œ‰\EDDFS--,- 0NSBŠ\‰‰ˆˆˆˆ‰‰‰‰ˆˆ‰‰‰ˆˆ\‡ˆˆˆ‰‰ˆˆˆˆˆˆ‰‰ˆˆ\\ˆˆ‡ˆ‰ˆ‰ˆ‡ˆˆˆˆˆˆˆ‰ˆˆˆˆˆ\ˆSSSˆˆˆˆˆˆLDD/N,.:SˆˆˆˆˆˆˆSˆˆˆSVQ\‡ˆSˆˆˆˆQ^8ii^e^Œ8i6i^Š>e‹Š¿e6Œ?Z\‹½Š‹e`e‰‰ŠŠ‰Š\‰½½‰½‰‰ŠŠ‰‰½‹‰½‰‰‰½½‰‰‰‰½‰‰‰ˆ½ˆˆ‰‰‰‰‰‰‰ˆGDD,Nˆ‰‰ˆˆ‰ˆˆˆˆˆ‰ˆ‰ˆˆ‰ˆˆˆˆˆˆ‰‰ˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆSˆˆSSˆˆˆˆˆSSS.D,SSSˆˆ‡‡ˆˆSˆˆSˆˆˆˆˆˆSˆSSˆSSSSˆSSˆSˆSSSNˆˆSSˆSˆˆSNSSSSˆNSˆQSSˆˆNSNSSSSNNSNNPQSSSNNRRSNNNNNSSRSNSN/KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFGFFFFJKKKKKKKKKKKK0222Äüýýþþýýýþýýüýýýýüüüüýüúúúüüüüúúá4444ïó÷ó÷ööíëííëëëëëëíóóóóóòòòòðòòóóòòðò•222QððòðððððððððððððððððïïïïïïïàÚïàáÑïѾ2003ÞÛÙÑÑÑÐÑÐÑÐÏ­­ÞÐÐÐÐÐÐÍÐÍÍÍÍÍÍÐÍÊ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHHHGHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýýüýýüüüüüþúó÷ó÷óóò§l!!  !!  ! !! !! ! !!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ãþÿÿÿÿþ‚!!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!_òÿÿÿÿÿÿú–=!!!!!! !!!!! $!!!_ñÿÿÿÿÿÿü–!! !!!ÃþÿÿÿÿÿÿÿÿÿüÈ@  !  9áÿÿÿÿÿó9  �üÿÿþúÎ@!  ÈÿÿÿÿÿòY   Yáÿÿÿÿÿÿ÷‚ #ÈþÿÿÿÿÿþË# ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûýýýýýýþþýýüýüüýýýüàhKKKKK³KKKK³K³KKKKKKKKKKKKK³K³K³³K³³K³³K³³³j66ii?6ii8Z?88`eC>>ŒŒ`¿‹e`?‹B``ŒBŒŒ¿‹Œ‰‰‰ŒŒ‰‹‰½¿¿½‰½½½‰‰½‰½‰‰‰‰½½½½‰‰‰‰‰½‹‰‰½‰Œ‰‰‰‰‰½‰‰ˆ‰‰‰‰ˆ‰‰‰ˆ‰‰ˆS,DLSˆ‰‰‰‰ˆˆˆ‰ˆˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆ‰ˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆSˆˆSSSNLLSSSSˆˆˆˆSSSˆˆSSˆˆSSSSSˆˆSSSSˆˆSSSSSNSSNSSSNSSSˆSSSNNSˆSSSˆNSSSSNSSSNSSNNNSSSNSSNNNNNNSNNSNSRSSNN.JKK·KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKJJJJJJJJKJKJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK0222Äüüþþþþýþþþýýüýýüüüüüüüüúúüüüúúúï4444Ñ÷óó÷ööëëëíëëíëëëíôòóòóóòòòðòòòóóòòð•223QððððððððððððððððððððïïððïïïÚÚïßÑÑÑÑ�0+03ÞÔÙÑÑÑÑÑÑÑÑØ«ÙÐÑÑÐÐÐÐÐÍÑÐÐÐÍÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æüüüýüüüüüüþúó÷ó÷÷óò§o !! ! ! !! !! !!!!! !!! ! !!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!Âýÿÿÿÿþ‚!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9ÈþÿÿÿÿÿýÆ9!!!!! !!!!!!!!!!!!!�÷ÿÿÿÿÿÿçB ! !ÃþÿÿÿÿÿÿÿÿýÈ@   ! #ÎÿÿÿÿÿúZ !@óþñË�;   ÈÿÿÿÿÿòY �÷ÿÿÿÿÿÿçY „úÿÿÿÿÿÿðY;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà   „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûýýýýýýþþýýýüüüýýýüàhKKKKKKKKKK³K³K³KKK³K³³·K·³³³K³³³³³³³K³³³·³Œ^8jeŒ?i^ŒeŒ\c¹Œ½Œ¹¶»»¹¿½½Œ¿‰½½¿½¿¿½¿‰Œ‰‰½Œ½½½½½½½‰‰½‰½½½‰½½‰½‰‰‰½½½‰‰‰‰½½‰‰‰‰‰‰‰‰‰½‰‰‰‰‰ˆˆˆˆ‰‰‰ˆ‰ˆˆˆNLL.LSˆ‰‰ˆˆ‰‰ˆˆ‰ˆˆ‰ˆ‰ˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆSSSSSˆˆˆˆˆˆSSSSSSSSSˆˆˆSˆˆSˆˆˆSˆˆSˆSSSˆSSˆSˆSSˆNSNSSSˆSNSSSSNSSSSSSNNSˆSSNNNSSNNSSˆSSNNNNSNSSNSNNNNNNNNNNSSSNNSSNNJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKKKKJKJKJKJJJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFFFFFFJKKKKKKKKKKKK0222ÄüýþþþýýþþþþýþýüüüüüúúüüüúúúúóúúÑ4‡‡4ïóóóúöëëëëëëíëëëëííòóóóððòòðòðòòòððò•323QððððððððððððððððððïðïïïïïÑÑÚÚÑáïÑÑѾ2003ÏÛÞÑÑÑÑÑÑÐÞ°­ÏÐÐÐÐÐÐÐÍÐÍÍÍÍÐÍÐÍË3&&&&JKKKKKKKKKKKGEFFFFFFGGGGGGHHGHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýüýüüüüüüüþúó÷÷÷ó÷ò§l   !  ! ! ! !!! !!!!!!!!!!!!!!!!!! !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!–üÿÿÿÿÿ…!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ZòÿÿÿÿÿÿáB!! !! !!!!!!!!! !!!9Âýÿÿÿÿÿü…!!!!!ÃþÿÿÿÿÿÿÿþÎ@ !!!!!ÈþÿÿÿÿþÆ ! Æ–Y!  ÈÿÿÿÿÿòY ÃýÿÿÿÿÿþÎ#[ñÿÿÿÿÿÿú� @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýýýýýýþþýüüýýýüüüüàhKKKKKKKKKKKKKKK³KKK³KK³³³KKKKK³K³³KKKK³K³³>eŒAŒ`?j‹½¾c¹ºº¼º¼¼¼³µ¼»½½¿½½½½¿Œ½½½½‰½½‰½½½½½½½½‰‰½‰‰‰‰½‰‰½½‰½‰½½½‰‰‰‰‰‰‰‰‰ˆ‰‰ˆˆˆ‰‰‰‰‰‰‰ˆˆ‰‰‰‰‰ˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆSSSSSSˆˆˆˆˆˆˆSSˆˆˆˆˆSSSˆˆSSSSNSSSSSSˆˆSSˆˆSSSSSˆSSˆSSSSSSSˆNNSSSSSSNSˆSSSNSˆSNSNNSSNNSNNNNNSSSSSNSNNNSSSSSNNSNNNNSNNNNNNNNSNNNJKKKKKKKKKKKKK³KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJKKJJJKJJJKJJJJJJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHHGGGFFFFFFJKKKKKKKKKKKK0222Äüýþþþýþþþþþýþýüúüúüüüüüüúúúúúúúï4‡‡4ÑóóóóëëëëëëëëíëêëíéòóóóòòòòððòóóòòðóÁ323QððððððððððððððððððïðïïïÑïïÑàÚááÑÑÑÑ�0033Þ°ÙÑÑÑÑÑÐÏ­°ÏÐÑÑÐÐÐÐÐÐÑÑÐÐÍÍÍÍÍË3&&&&JKKKKKKKKKKKGFFFFFFGGGGGGHHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüüüüüüüüüüþúóó÷÷÷óò§l !  ! ! ! !!   !  !!! !!! ! !!!!!!!!! ! !!$!!!!!!!!!!!!!!!!!!„üÿÿÿÿÿÂ$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!–üÿÿÿÿÿú‚!!!!!!!!! !!!!!!!!!! !!@áÿÿÿÿÿÿÏ9 !!!9ÃþÿÿÿÿÿÿÿçZ! ! ! !!…ýÿÿÿÿÿú–9 !    9ÈÿÿÿÿÿòY@áÿÿÿÿÿÿüÃÏþÿÿÿÿÿþÆ  @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  vÕûýýýýýýþþýüüýýýüüüüàhKKKKKK³KKKKKKKK³KKK³·K³KK³³³·³³K³³K³K³K³³KŒ½‹Œ½‰¿Œeecccº¼¼¼¼¼¼¼¼¼º‰¿¿½½½½½‰‰½½½½½½½‰½‰‰‰‰‰‰‰‰‰‰‰‰‰‰½ˆ‰‰‰‰½‰‰½‰‰‰‰‰‰‰‰‰ˆ‰‰ˆ‰‰‰‰ˆ‰ˆˆ‰‰ˆˆ‰ˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSˆˆˆˆˆˆSˆSˆˆˆˆˆˆˆSˆˆSSˆˆˆˆˆSSˆSNSSSNSSSSSˆSSSSNSSSSSSSSˆSSSNSNSNSNNNNSSSSSNSSSSSSSSNSSNNSSSSNSNNSNSNSSNNSNNSNSSSNNNNNNNNNNNNNNSNNNN.JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKJKJKJKKKJKKJJKJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHGGGGFFFFFFJKKKKKKKKKKKK0222ÄüýþþýþýýýýýþüüüüüüüüüüüúúúúóúúúÑ4444ÑóóóóëöëëëëëëëëêêééòóòòðòòðòóðóòòðððÁ323QððððððððððððððððððïïïðÑÑïïÑÚÚÑßÑÑÑÑ�2003Þ°ÙÑÑÑÑÑÑØ°×ÐÐÐÐÐÐÐÐÍÍÐÍÍÍÍÍÍÍÍÇ:&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æüüüüüüüüüüþúó÷÷ó÷÷ò§p  !!      !! !! !!!!!! !!!!! !!!!!!!!!!! !!!!!!!!!!!!�úÿÿÿÿÿË9!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!! !!!!!!!;ÏÿÿÿÿÿÿÎ;! !!!! !!!! !!! !!!!!!!‚ýÿÿÿÿÿò[ !!Ãþÿÿÿÿÿÿú„!! ! !  YñÿÿÿÿÿÿúÈY !! ! ! !ÈÿÿÿÿÿòY �óÿÿÿÿÿÿüþÿÿÿÿÿÿá@;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÓûýýýýýýþþýýýüüüýüýüàhKKKKKKK³KKKKKKKKKKKKKKK³KK³K³KKKK³³³³KKKKK‰½‹‹½‰½ŒŒdccc¹¼¼ººººº»»¹‰½½½½½½‰½½½½‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰ˆ‰ˆ½‰‰‰‰‰‰ˆˆ‰‰‰ˆ‰ˆˆˆˆˆˆˆˆ‰ˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSSSSˆˆˆˆSSSˆˆˆˆˆˆˆˆSSSˆˆˆˆˆSSSSSSˆˆSSˆSSˆSNSNSSSNSSSSSSSSNSSSˆSˆSSSSNSˆSNSSSSNNSNSSSNNNNNNSNSNSNNNSNSSSSNSNSSSNSNNNNNNNNSNNNNSNNNNNNNNNNNNNNNNNNNNSNNNNN.JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKJKJKJJJJKJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHHGGGGFFFFFJKKKKKKKKKKKK0222Äýþþþýþýüýüýýüüüúüüüüüüüúúúúüüúúï4444Ñóóó÷ëöëëëíëëííêêéôòóóòòóòòóóóóòòòòð¾322QððððððððððððððððððïðïïïïïÑïÚÚïÙáÑÑÑ�2003ÞÛÙÑÑÐÑÑß°ÔÑÑÑÑÐÐÐÐÐÐÐÐÐÍÍÍÍÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFGFGGGGGHHHHHJHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�æýüüüüüüüüüþú÷÷÷ó÷óò§o !  !! !!! !! !!! !!! !!! !! !! ! !! !!!! ! !!! !!!!!! !!!!Z÷ÿÿÿÿÿç9!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!!!! !!Zñÿÿÿÿÿý‚!!!!!!!! !!!!!!  !!!!! @çÿÿÿÿÿü‚ !!!9ÃþÿÿÿÿÿÿÏ@ !!    Æþÿÿÿÿÿÿþá�#   ÈÿÿÿÿÿòY  Âüÿÿÿÿÿÿÿÿÿÿÿÿó�  @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÓûýýýýýýþþýýýüüüýüüüàhKKKKK³KKKKKKKKKKKKKKKKK³K³³KKKKK³KKK³³K³³³¿½½½½‰½‰‰cccchÁÁÁÁÁ»»Á»¹‰½½‰½‰‰‰½½½‰‰‰‰‰‰‰‰‰‰½‰‰‰‰ˆ‰‰‰‰ˆ‰ˆ‰‰ˆ‰‰‰‰‰‰ˆˆˆˆ‰‰‰‰ˆˆˆˆ‰ˆˆˆˆˆ‰ˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSSˆˆˆˆˆˆSˆˆˆˆˆˆˆˆSSNSˆˆˆˆˆNSSSSSSSSˆSSSSSNSSSSSNSSSSNSSNNSSNNSSSSNSSSSSSSNNSSNNNNSNNNNNNSSNSSNNSSSSSSSNNNNSSSNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKJJKJKJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGFFFFEJKKKKKKKKKKKK0220ÄýýþýýþýýüüüúüüüüüüüüúüüúúúüüüúúÑO444á÷óóóëöëëëëëëíëëëíôòóóóòòòòóðòðððòðò•323QðððððððððððððððððððïðïïïÑïÑÚØÑÚÑÑÑÑ�0003ÏÔÙÑÑÑÑÏ­ÛÏÑÐÐÐÐÐÐÍÐÍÐÍÐÍÐÍÍÍÐÍÒ<&&&&JKKKKKKKKKKKGEFFFFFFGGGGGGHGGHJHHHJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüüüüüüüüüüþúóó÷ó÷óò§l   !   !!  ! ! !! ! ! !  ! ! !!!! !!! !!!!!!! !!!!! !!!!!!!!!!@ñÿÿÿÿÿóB!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!�üÿÿÿÿÿñY!!! !!!! ! !!! ! !!!!ÈþÿÿÿÿþÆ! ! !Ãþÿÿÿÿÿü„!    YçÿÿÿÿÿÿÿÿúË[  ÈÿÿÿÿÿòY;Îþÿÿÿÿÿÿÿÿÿÿþ  @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÕûýýýýýýþþýüüýýýüüýüàhKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³³K³³³³³³K¿½½½½½½½‰eccc»ºº¼¼¼¼¼¼¼¹‰½‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰ˆˆ‰‰ˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆSˆˆˆˆˆˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆSSˆˆˆˆˆˆˆSSˆˆˆˆSSˆˆˆSˆˆSSˆSSˆSSSSSNSSSSˆSSNSSˆSˆSSSSˆSˆSSSSSSSSSNSSSNSˆNNSSNSSSNSNSNSNNNNSSNSSNNNSSSNNNSSNNNNNNNNNNNNNNNNNNNSNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKKKKKKKJKKJJJJJJKJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHHGGGFFFFFFJKKKKKKKKKKKK0202Äýýþýýýýýüüüüüüüüýüüüüüüüüüüüúüúï444OÑ÷úóóëööëíëëëííëëôõóóóóòòòòòòòðòòðòò•223QçððððððððððððððððððððïïïïïÑàÚÑÚáÑÑÑ�000QÏÔßÑÑÑÑØ°ÙÑÑÑÑÐÐÐÐÐÑÐÐÐÐÍÍÍÍÍÍÍÒ<&&&&JKKKKKKKKKKKGFFFFFFFFGGGGHHHHHHHHHJHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âýüýüüüüüüüþúó÷óó÷óò§l  !   ! ! !  ! ! ! !! !  !!!! !!!!!!!! !! !!! !! !!!!!!9Ïÿÿÿÿÿü�!!! !!! !! !!!!!!!!!!!!!! ! !!!!! !!!!!  !!!!–ýÿÿÿÿÿÎ9!! !!! !! !!! !!! ! „üÿÿÿÿþÎ9! !ÃþÿÿÿÿÿñY!!   ! _ñÿÿÿÿÿÿÿÿþòÃ@    !ÈÿÿÿÿÿòY[òÿÿÿÿÿÿÿÿÿÿÏ;;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüüüüüüüüüüüüüüüüüüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýýýýýýþþýüüýýüýüüüàhKKKKKK³KKKKKKKKK³KKKKKKKKK³KK³³KKKKK³KK³K³½½½½‰‰‰½‰Œcd¹µ¼¼µµ¶»¶¶¶‰‰‰‰ˆ‰‰‰‰‰‰‰‰‰‰‰‰ˆ‰ˆ‰‰ˆ‰‰‰ˆ‰‰‰ˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆ‰ˆ‰ˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆSˆˆˆSSˆSˆˆˆSSˆˆSˆˆˆˆˆSSˆˆSˆˆˆSˆSSˆˆSˆˆˆSˆSˆˆSSˆˆSSSSSNSSSNSSSNSSSSSSSSSSSSSSSSSSSSNNSNNNSNNSNSNSSNNSNNNNSNNNNSNNSNNSNNNSNNSNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNLNNLNNNNNNN/JKKKKKK·KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKJKJJKKJKJKJKJKJKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJHHGGGGFGFFFFJKKKKKKKKKKKK0202Äýýýýýýýýýüüüüüüüüüúüüúüüüüúóúóúï4444ïóóóóööööëëëëëëëëôòòòòòòñòòòòññññòðñ•322QçððòççççççðððççççççðïáááááÏØÚáÚáááá�0203ÞÛÙÑÑÏÙ«­ÞÏÏÐÏÏÏÏÏÏÎÍÍÎÎÎÞÎÎÎÍͧ<&&&&JKKKKKKKKKKKGFFFFFFFGGGGGGGHGHHHHHJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüýüüüüüüüüþúóóó÷÷÷ò§l    !  ! ! !!! !!!!! !!  !! !!!!!!  !! !!  !!! !!!!!!! !!!!ÆþÿÿÿÿþÈ!!!!!!!!!!! !!!!!!! ! !!!!!!!!!!!!!!!!!!!!!Ãþÿÿÿÿþà !!! !  !!! !!!!!!Zúÿÿÿÿÿç# !ÃþÿÿÿÿÿÎ!!!  !�ñþÿÿÿÿÿÿÿÿþá_!  ÈÿÿÿÿÿòY …üÿÿÿÿÿÿÿÿó_ ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÂ���d���������������•÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûýýýýýýþþýýýüüüüüýüàhKKKKKKKKKKKKKKKKKKKKK³KKKK³KKKKKKK³KK³KK³K‰½½½‰‰‰‰ˆ‰ŒŒŠ‰‰‰‰‰‰‰½‰ˆ‰½‰‰‰‰ˆ‰‰ˆˆ‰‰‰‰‰‰ˆ‰ˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSˆˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆSSSSˆˆSSˆˆˆˆˆˆSSSˆˆSSSSSSSSSSSSSˆSSSˆNSSˆSNSSSSNSSSSSNNSSNSSNSNSNSNNNNSNNNNNNNNSSNSSSNNSNSSNNNSNNSSNSNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNLN/JKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJKJKKJJKJKKJJJKJJJJJJJJJJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFJKKKKKKKKKKKK0200Äþýýýýüýüüüúüüüüüüýüüúúüüüüüüú÷÷ï4444Ñóóóóöööíöëëëëëëëëíõõôòôñòóòôéééééðñ•323QâçðñâèâææâçðèââßâàâççßààßßßÝÝßÚßßßß¾000<Ó°ØÏÏØ°°××ÙÞÏÞÓ××ÓÊ×ÎÎÌ×Ó×××ÌÍÎÇ:&&&&JKKKKKKKKKKKGFFFFFFFGGGGGHHHHHHHHJJHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüýüüüüüüüüþúó÷óóó÷ò§l       !  ! ! !!   !!   ! !! ! !!!!!!!!!!! !!! !! !!!‚üÿÿÿÿÿç@! !!! ! !!!!!!! !!!!!!!!!!!  !!!!!!!! !!!!!!!!!9Èþÿÿÿÿý…!  !!!! !!! !!!!!@óÿÿÿÿÿñ;! ÃþÿÿÿÿþÃ!     !  YÎýÿÿÿÿÿÿÿÿÿóÂ9  ÈÿÿÿÿÿòY#Îÿÿÿÿÿÿÿý… ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕûýýýýýýþþýýýüüýýüüüàhKKKKKKKKKKKKKKKKKKKKK³KKKKKKKKKKKK³KK³K³KK½½½‰½‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰½‰‰½‰ˆˆ‰ˆˆ‰‰ˆˆˆˆ‰‰ˆ‰ˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆ‰‰ˆ‰ˆˆˆˆˆˆˆˆSSˆˆˆˆSˆˆˆSˆˆˆˆˆˆˆˆSˆˆˆˆˆSˆˆˆSSˆˆˆˆˆˆˆˆˆˆSSˆSSˆˆSSSˆSˆSˆSSSSSˆˆSSSNSNNNNSSˆˆˆNSSSˆSSNNNNNSSSNˆSNSNSSSSSSNSSNNSNNSNNNSNSNSSSNSSNNNNNNSNNNNNSNSNNNNNSNNNNNNNNNNNNSNNNNNNNNNNLNNNNNNLNNNNNNNNNNNNNNNNNLLNNNLNNNNNNNNNNNLNNLLMJKKKKKKKKKKKKKKKKKKKKJKKKKKKKKKKKKJKKKJKJKJKKKJKKKKKJJJJKJJJJJJJJJKJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHGGGGFFFFFFJKKKKKKKKKKKK0200Äüýþþþüüüüüüüüúüúüüüüúúúüüóúóóú÷ÑO444Ñ÷÷ó÷ööëëíëëëëëëëëôòòòòñññññññññèèçè•223QâççççççâççççççâââáâáââßßßßâÚÝßÙßßßß�00+3×ÛØßßÔ®ÔÞÞÞßÞÞÞÞÞÌÌÌÌÞÌÌÌÌÌÌÌÌÌÉ3&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüüüüüüüüüüþú÷ó÷ó÷óò§l    ! !  !!!  ! !!! ! ! !!!!!! !!! !!!!!!!! !!Zñÿÿÿÿÿü�! ! !!!!! !! ! ! !!!!!!!!! !!!! !!! ! !!9Ëþÿÿÿÿü‚! ! !!!!!!! ! ! ! !  ;óÿÿÿÿÿò@! !Ãþÿÿÿÿý…!    9…òþÿÿÿÿÿÿÿÿüÈ; ÈÿÿÿÿÿòY _÷ÿÿÿÿÿÿç;@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýýýýýýþþýüüüýüüüüüàhKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³K³K³‰½½‰‰‰‰‰‰ˆ‰‰‰ˆ‰‰‰‰‰½‰‰‰‰‰ˆˆˆˆ‰ˆˆ‰ˆˆˆˆ‰ˆˆˆˆˆˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆˆˆˆSˆˆSSSSSˆSˆˆˆˆˆSSSSSSˆSˆSSSˆˆSSˆSSSSˆˆSSSSNSNSSNSˆSSSNSNSNSSNNNSNSSNSSSSNNNSSSSSNSNSSNNNSNNNNSNNSNNSNNNNNNNNNNNNNSNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNLNNNNNNNNNNNNLNNNLNNNNNNNLNNNLLL/bcJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJKKKJKKKKKKKJKJJJJKJJJJJJKJKJJJJJKJJJKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHJJHGHGGFFFFFFJKKKKKKKKKKKK0220ÄüüýýýüúúúúóúúúúóóóóóóóóúúóúóóóóÑ2444ÑòóòòöëëëëëëëêêêêæààààààÚàààÚààààäÚÙ�323<ØÙØØØÙØØØØØØØØØÓÓØÓØÓÓÒÒÓÓÒÒÒÒÒÒÒÒ§^0003§«¨§¨®¦ššššššš§š™™™™™™™™™™™™™‘�:&&&&JKKKKKKKKKKKGFFFFFFGGGGGGGHHHHHHHJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ�âüüüüüüüýüüþú÷ó÷ó÷óò§l !  !   !!!!!!  ! !!!!!!!!! ! !!! !!! !!ÎÿÿÿÿÿÿÎ!!!!!!!!!!!!!!!!!! !!!!!!! !!  ! !  !! !Ëþÿÿÿÿü‚!!!!  !!!!! !! ! ! !;òÿÿÿÿÿòB! 9Ãþÿÿÿÿü‚   ! YÈ÷ÿÿÿÿÿÿÿÿýÆ  !ÈÿÿÿÿÿòY Ãþÿÿÿÿÿÿú_@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_ [òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕûýýýýýýþþýüüüýýüýüüàhKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK³KKKK‰‰‰ˆ‰‰‰½ˆ‰‰‰‰ˆˆ‰‰‰ˆˆ‰ˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆSSˆˆˆˆˆˆˆˆSˆˆˆˆˆˆSˆˆSSSSˆˆˆSˆˆSˆSSˆˆˆSSSˆSSˆˆSˆSSSSSSSˆSSSNSSSˆSSSSSSSSNSSSSNNNSNNSSNSNSNSSSNSSNNSNSSNNNNNNNNNNNNNNNSNNNNSNNNSNNNNNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLLNLNNNLNNLNNLNNNLLLNLNNNNNLLLLPgÁhHW·W·····W·WK····W···W·WKW·WWKJWWJWJWWJWWJJKW·JWJJWJJWJJJJJJJJJJJJJJJJJJJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHHHHHHHHHHHHHHGGFFFFJKKKKKKKKKKKK0000Äüüýýýúóóóó÷÷óóóóòóóóóóóóóóóóòññÐ4444ÏðññðööëëëëëëëêæââßßßàßßßßßßßßàßßÞ×Þ�2233Ì×××Ê××Ê×Ê××Ê×ÊÊÊÊÊÊÇÊÇÊÇÊÇÇÇÊÇÇÇÇÇ^00+3š®§™««™œ™›™™˜™˜™™˜˜†˜†˜††††††††{0&&&&JKKKKKKKKKKKHFFFFFFHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHJJHHJJJJJJJJJJJJ�âüüüüüüüüüüþúó÷ó÷ó÷ò§o  !!!! !! !   !!!! !!   ! !!!!!!!!!!! !! !‚üÿÿÿÿÿú_!!! !!  !!!!!!!  !!! ! !!!!!!   !! ! !Èþÿÿÿÿü‚!! !!!! ! ! ! ! ! ;óÿÿÿÿÿñ; !Âþÿÿÿÿü�!      !_áþÿÿÿÿÿÿÿü–  ÈÿÿÿÿÿòY[òÿÿÿÿÿÿÿÿÎ#@òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  oÓûýýýýýýþþýüüüüüüüüüà„···K·······J···K·······K·················K‰‰ˆˆ‰‰ˆ‰‰‰ˆ‰ˆˆ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆSSSSSSSSˆSˆSSˆˆSSˆˆSSˆNSSˆSNSSSSNSNSSˆSˆSSNNNSNSSNSSSSSSNNNSSNSSSSNNNNNSNSNSNNNSSNSSSNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNLNNNNNLNNNNLNNNNNNNNLLNLNLLLNLLLNNNLNNNNNNLNNNLLNLNLLL/bhÄÄhUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXVXXXXXXXXXXUVXVXXXXUUXXXXXXXUUUUTTTUTTTTTTTTTTTTTTTTTTTTTTTTUTTTT:TTT:TTTTTTTWXXXXXXXXXXXW+000Äüüüüú÷÷ú÷÷÷ó÷÷÷÷óòóòóóóòòóòóòòðÏ4442ÎðððñëëöëëëìëêæßââââàßâßßââßâßßßßÞÙÙ�223Q××Þ×××Ó×××××ÓÓ×ÓÓÊÊÇÊÇÊÇÇÇÊÇÇÇÇÇÇžž^+++3𰍥°¥œœœ™œœ™™˜™˜™˜™˜†˜†˜�††††††0&&&&WXXXXXXXXXXXWT"TTTTTTTTTTTTT:T:TTTT:TT:TTTTTTTUT:TTUTTTTTTTTTTT:T�æüüüüüüüüüüþúó÷ó÷ó÷ò§l         !   !   ! !!  !!! !! ! ! ! !!!!!!!@çÿÿÿÿÿÿÏ;!! ! ! ! !!!!!!!!! !! !!!!!!  ! ! !! !9ÆþÿÿÿÿþÂ!!  ! !   !!!B÷ÿÿÿÿÿç;  Âþÿÿÿÿü�   !   @Ãóÿÿÿÿÿÿÿó[ ÈÿÿÿÿÿòY Ëþÿÿÿÿÿÿÿÿü„ @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈoÕûýýýýýýþþýýüüüüüüüüà‚XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX‰‰ˆ‰ˆˆˆ‰‰‰‰ˆˆˆˆ‰ˆˆˆˆ‰ˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆSSSSˆˆˆSˆSˆˆˆˆSˆˆˆSSSˆSˆSSSˆˆSSˆSSSˆSSSSNSˆSˆSSSˆSSNNSSSSSSSNSSSNNSNNSSSSNSNSSSNNNSSSNNNNSSSNSNNSNSNSSNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNLLNNNNLNLNNNNNNNNLNNNNNLLLNLLNLLLLLNLLLLNNLLLLLNLLMcÁÄÄÄÁTTTTTTTTTTTTTTTTTTTTTTTTTTTT"""T"TT"T""T"""T"""""""""""T"""T""""""UXXXXXXXXXXXU0000Äüüúúóóó÷÷÷÷÷÷úúú÷óó÷óòóóòòòóòòòÏO44OÍñòðñëëëëëëêêàßßââèââßßßßßâââßßßßÙßÙ�323QÞÙÙÙ××ÓÙ×Ó×××ÊÓÊÓÊÊ×Ê×ÊÊÒÇÇÊÊÊÇÊÇÇž^+0+3§°¨«¨™œ™™™œ™™™™™™˜™™™™˜˜™˜˜†††††0&&&&UXXXXXXXXXXXX""""""""�æüüüüüüüüüüþú÷ó÷ó÷óò§l !   ! ! ! ! ! ! ! !!  ! ! ! !! ! !! ! Âýÿÿÿÿÿü„!!! !!!!!!!!!!! !!! ! ! ! !!!!!–þÿÿÿÿÿË !  !   !! ! !  ! �úÿÿÿÿÿÏ9 Ãþÿÿÿÿü�!      _ñÿÿÿÿÿÿþË   ÈÿÿÿÿÿòY�óÿÿÿÿÿÿÿÿÿÿç@@òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà   ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_ [òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÕûýýýýýýþþýüýýüýüüüüà�TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTˆ‰ˆˆˆˆˆˆ‰ˆ‰ˆ‰ˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆSSSˆˆˆSSˆˆˆˆˆSˆSSSSSSˆSˆSSˆSSˆSNˆSˆˆˆSˆSSˆSSSSNSSSSNSSˆSSNNNNSNSSNSSSSSNNSNSNSNSNSSNNNNNNSNNNSNNNSSNNNNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNLNNNNLNNNNNNNNNNNNNNNNNNLLLNNNNNLNNLNNNNNLNLLLLNLNLNLLNLLLLLNNLLLNLNLLLL.WhÄÄÄÄÄÁTT"TT"TT"T""TTTT"""""""TTTTTTTTTTTTT+020Äúúúú÷ú÷÷÷÷÷úúúúú÷÷÷÷÷÷÷÷óòòòòòòá444OÏñòðñëëëëëìêàßßßââèèæèæàââààààßßÙÙßÙ�223<ÙÙß×××ÙÙ×××××××Ó××Ó×Ê×ÊÒÓÒÊÊÒÊÊÒÇÒÇ^+0+3ž°°«žžžžœœ™œœ™™™™™™™™™˜™™˜˜†˜†††0&&&&:TTTTTTTTTTTT�âüüüüüüüüüüþú÷ó÷ó÷óò§l     !      ! ! !!    !!!!  ! !!  !! !! !BñÿÿÿÿÿÿòZ! !!!!! !  ! !!!! ! !!!!!  !! ‚üÿÿÿÿÿá@ !!! ! !! !!!! ! ! ÂþÿÿÿÿþÈ!  !Ãþÿÿÿÿü�   YÑÿÿÿÿÿÿóY ÈÿÿÿÿÿòY ;Ïÿÿÿÿÿÿÿÿÿÿÿþ @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_ YòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  vÕûýýýýýýþþüüüüüýüüüüà�TTTT""TT"TTTTTTTTTTTTTTT"TTTTTTT""TTT"TTTT‰‰ˆˆ‰ˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆSSSˆˆˆˆˆˆSˆˆˆˆˆSˆˆSˆˆSˆSSˆˆˆSSSSSSSSSˆSSˆˆˆˆˆˆˆSSSSSˆSˆSSSSSSˆˆSSˆSSSSSSSSSSSSNSNNNSSNNNNSNNSSNNSNSSSNNNSSNNNNNNSNNNNNNNNNNNNNSSNSNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNLNLLNNLLLLNNNNNLLNLNNNLNNNNNLNLNNNLLLLLNNLLNNLNNNNNNLNLLLLNLNNLLLLLNNNLLNLLLLLLLLPbÁÄÄÄÄÄÄÁ"TT"""""""""""""""""""TTTTTT"T:0020Äüúú÷÷÷÷óó÷úóó÷ó÷÷÷÷÷÷ó÷úóòòóóóóÏ4444ÐññññëëëëëêàßßßàââèèæèææææàßßàßÙÙßÙÙ�323<ÙÙÙ×ÙÙÙ×ÙÙ××Ó××××××××Ò×ÊÓÊÓÒÊÒÊÊÒÇÒ^+0+3ž°°¨ÇǞǞžœžœœœ™™™™™™™™™˜†™˜˜˜††0&&&&""TTTT"TT""TT�æüüüüüüüüüüþúó÷ó÷÷÷ò¬o       !       !    ! !!!   ! !!! !!!–üÿÿÿÿÿÿÏ;! !! !!!  !!!!!  !  !! !  ! !![òÿÿÿÿÿ÷[ ! !!!  ! ! 9Ïÿÿÿÿÿý– Âþÿÿÿÿü�    Bñÿÿÿÿÿþ„ ÈÿÿÿÿÿòY …üÿÿÿÿÿÿÿÿÿÿÿÿòY@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ pÓúýýýýýýþþýüýýüüüüüüà�""""""""""""""""""""""""""""""""""""""""""‰‰ˆ‰ˆˆˆˆ‰ˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆSˆSˆˆˆSˆˆˆˆˆˆˆSSSSSSˆSSSSˆˆˆSNSˆSˆSSSSSNSSSˆˆSˆSˆˆˆSSSSSSSˆˆˆSˆSSNSSSSSSSSSNNSNNSNNNSSNNNSSNNSSSNNSNNNNNNNNNNNNSSNNNNSNNNNNNNNNNNSNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNLNNLNNNNNNNLLLLLLLNLLNNNNNLLNNNNLNNLLLLLLNNNNNNNNLLLLLLNNNNLNLLLLLLLLLLLLLLL/PgÄÄÄÄÄÄÄÄÁ"""""""""""T"""TT"""+000Äúüüú÷óó÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óóòòò÷óÏ4442ÐòòòñëëëëëêãæàãêêèææëêêêêêãààãããÚÚÝÚ�322<ØÝÚÝÚÙ×ÚÚÝÚÝÛØ××ÔÝÛÔÔÔ­ÓÓÔ­­Û­­­­ÒÒx+++<¨°°§ž¨¨¨¨¨§¥§ž¥¥¥¥¥¥¥™™™¥¢¥¥¥¢¤†0&&&&:""""""T""T"�æüüüüüüüüüüþúó÷÷ó÷÷ò§o               ! !  ! !  !!!@ÏÿÿÿÿÿÿþÈ9! !! !! ! !!! !   ! ! ! !;áÿÿÿÿÿÿÂ!  ! ! !  !  _úÿÿÿÿÿó_  !Âþÿÿÿÿü�   ## fþÿÿÿÿÿÎ ÈÿÿÿÿÿòYYçÿÿÿÿÿÿòúÿÿÿÿÿþË @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÓúýýýýýýþþýüüüüüüüüüà�ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSˆˆˆˆSˆˆˆˆˆˆˆˆSSSSˆSSSˆSˆˆˆˆSˆˆˆˆˆSˆSˆSSSNSˆSSSSSSSSSSSSSˆˆˆNSNSNSSSSSSNSSSSSNNSSSSNSNNNSSNNSSSNSNNNNNNNNNNNNNNSNNNNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNLLLNNLNNNNNLNNNLNLLNLLLNLNNNLLNNNNLLLNLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLL/WÁÄÄÄÄÄÄÄÄÄÁ"""""""""+002Äúúúúúúúúúó÷÷÷÷÷÷÷÷÷÷÷÷÷óòòóóòòóÑ4442ÏòòññëëëëèæêãææãêêææêêêëêãäàßääääÚäÚ�323<ØÝÚÝÚÙÙÝÝÝÝÖÔÔØÓÔÔÔÔÔÔÔÓÓÓ­­Ô­­­¬ÒÒa+++<«®¨§Ò¨¨¨¨¨¥¥™œš¥¥¥¥¥¥™™š¥¥¡¥¡¥¤†0&&&&""""""�æüüüüüüüüüüþú÷÷÷ó÷óò§o !  !  !  !  ! ! !  !!!! !  ! �úÿÿÿÿÿÿýÃ9!!!  !! ! ! !! !  !!!  !!!!!  !ÈþÿÿÿÿÿòZ!  !!! !   9Ëÿÿÿÿÿÿá;   !Âþÿÿÿÿü�  ! @‚ÆÏË9;ñÿÿÿÿÿç ÈÿÿÿÿÿòY Ãýÿÿÿÿÿú‚Æþÿÿÿÿÿú_ ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÕúýýýýýýþþüüüüüüüüüüà�ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆSSSˆˆˆSˆˆˆˆˆˆˆˆSSˆˆSˆSSˆˆˆSSSNˆSˆˆˆˆSSSSSSSSSSNSSSSˆSSSˆˆNNSSSSSNNNNNSSSNSSSSNSNSNSSSNNNNNSNNNSNNNSNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNLNNLLLNNNLNNNNLNLNLNLNNLLLNLNLNLLLLNLLNLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLMgÁÄÄÄÄÄÄÄÄÄÄÁ"""""""T+200Äüüúúúúúú÷óúúú÷ó÷÷÷÷÷÷÷÷÷ó÷÷÷÷òòÑO442ÏòòòñëëëëêæêãææãæëêêêêêêããæãäãäääääÚ�323<ØÝÚÝÚÚÚÝÝÝÝÔÔÖÝÝÔÔØÔÔ­­­Ô­­­­­­­­¨¨a+++<««¨¨¨¨¥¥¨¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥£¥¢£‘¢¤:&&&&"�æüüüüüüüüüüþú÷ó÷÷óóò§l     !  ! !!  !!! !!!  !!! !! !ÃýÿÿÿÿÿÿüÂ9! !   ! !! ! ! @�@  !_÷ÿÿÿÿÿþÈ!     !!  �úÿÿÿÿÿþà !Âþÿÿÿÿü� „áòüþÿð;9Ïÿÿÿÿÿð9  ÈÿÿÿÿÿòY_óÿÿÿÿÿÿÎ9Yðÿÿÿÿÿÿá9 ;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÕúüýýýýýþþüýüüüüüüüûà�ˆˆˆˆSSˆSSˆˆˆˆˆˆˆˆˆˆˆˆSSˆˆˆSSSSSˆˆˆˆˆSSˆˆSSSSSSˆSNSSNNNSSˆˆˆˆSˆSSˆSSSSSSSNNSSSSNNSNSNNNSSNSNSNNNSSNSSNSSNSNNNNNSSNNNNNSNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNLNNLLNNNNNNNNLNLNLNNNNLLLLLNNNNNLNLNLLLLLNLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLLLLL,LLLLLL/WhÄÄÄÄÄÄÄÄÄÄÄÄh""TT0200Äüüúúúúúúú÷úúú÷÷÷÷÷÷÷÷÷÷÷÷óòóóòòÏ4444ÑòóòñíëëëêêêêêêêêìëêêêêãêêããêêåããååÝ“322<ÝÝÝÝÝÝÝÝÝÝÝÜÜÝÜÜÜÛÜÜÜÛÛÛÛÛÛ°Û°°°°°°y+++<°°«°°¨«««««««¨¦¦¦¦¦¦¦¦¨¦¨¦¦¦¦¦£¢<&&&&"""" �æüüüüüüüüüúþú÷÷óóóóò§l   !!           ! !    !!;ÏÿÿÿÿÿÿÿýÈ;! ! ! ! ! !!  !_áúÎB !!9Ïÿÿÿÿÿÿú‚    !    @çÿÿÿÿÿÿò[  Âþÿÿÿÿü�    ÏÿÿÿÿÿóY!Ïÿÿÿÿÿð! ÈÿÿÿÿÿòY!Îþÿÿÿÿÿó[…üÿÿÿÿÿý„;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈpÕúýýýýýýþþüüüüüüüüüüà�"""ˆˆˆˆSˆˆˆˆˆˆˆˆˆˆˆSSSSSSSSˆˆˆSSˆSSˆSSˆSˆˆSˆSSSNNSSSSNSSSSSSSSˆSSSSSSSNNNSNNNSˆSNNNNNNNNNNSNNSSNSNSSSNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLNNLNNNNNNNNNLLLNNNNLLNNNNNNNLNLNLLLLLLLLNNLLNLLLNLLLNNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLL,LLLLLLLLLLLLLLL./bÁÄÄÄÄÄÄÄÄÄÄÄÄÄh""""2020Äúüýüüúúú÷ó÷úúúúúú÷÷÷÷÷÷÷÷óóòòòòÏ2444Ðñðññðçñâèâèâèââèççââââââèâââàââàßßß�322<ÞßßÙÙÞÞÞÞÞÞÞÞ××Ì××ÌÌ××Þ××ÊÊÊÌÌÊÊÌÊÊ`+++3ÌÊÉÊÊÊÒÇÊÇÒÊÇÇžÇÇžÇǞǞžœœžžœ��˜0&&&&""�âüüüüüüüüüüþú÷÷ó÷÷óò§l       !    !      YçÿÿÿÿÿÿÿýÏ@   !   !! 9„òÿÿþáY! ! ‚üÿÿÿÿÿÿò_    ;ÎþÿÿÿÿÿþË   Âþÿÿÿÿü�  Ïÿÿÿÿÿþ_;ðÿÿÿÿÿð  ÈÿÿÿÿÿòY�úÿÿÿÿÿþà #áÿÿÿÿÿÿð;@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕúýüýýýýþþüüüüüüüüüüà�ˆˆˆˆˆˆˆSSSˆˆˆˆSˆˆSSSSSSˆˆˆSSSˆˆSNSSSˆˆˆSˆSSSSNSSSNSSSNNSˆSNNSNNNNSNNNSSNNSSSSSSNNNNNNNSSNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSNNNNNNNNNNNNNNLLLNNNNNLNNNNNLNLNNLNNNNNNNNLLNLNNNLNNNLLLLNNNLLLNLLLLLLNNLLLNNLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLL,LLLLLLL,LLL,LLLLLLLLL,,LL.PgÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ""0020Äüúüýýüúúúúúúúúúúúú÷÷÷÷÷÷÷ò÷òòòòÏ2442QQQQQQQQQQQQQQQQQQQQQQQUQQQQQQQQQQQQ33222Q3Q33QQ3U3333333U333333333333333333*+++3ÈÉÉÈÉÉÉÉÉÌÉÉÉÆÆÆÅÆ�ÆÆÅÆÆÅÃÅÃÃÃÖ0&&&&"�æüüüüüüüüüüþúóó÷÷óóò§o     !  !    ! !! !! !!!_òÿÿÿÿÿÿÿþð‚  !  ! !! ! YÈüÿÿÿÿÿç_   ;Îþÿÿÿÿÿÿç[ !!  !! ;Ëþÿÿÿÿÿÿò[  Âþÿÿÿÿü�ÈþÿÿÿÿÿÆ  _ýÿÿÿÿÿÏ ÈÿÿÿÿÿòY ;Ïÿÿÿÿÿÿð@�úÿÿÿÿÿþà   @óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú� [òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ    !vÕúüýýýýýþþüüüüüüüüüüà�""""ˆˆˆˆSˆSSSSˆˆˆSˆˆˆˆˆSSSSSˆSˆSSˆSSSSSSSSˆSSSSSSSSSSSSNNNNNNNSSSSSNNSSNNSNSSSNNSSSNSNNNSSSNNNNNNNNNNSNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNLNNNNNNNNLLNNLNNLNNNNNNNNNNNLLNNNNLLLNLLLLNNLLNLNLLLLLLLNLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LL,,L.LLLLLLLLLLL,,LLLL,L,L,,.,L/WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ""0200Äú÷úúüúú÷÷÷óóóó÷ó÷óóòòòòòòòòòòññÍ243433333333333333333333333333333333232332*202M22MM00200000000000000000++0+0++++++++3ÆÈÉÆÈÈÆÆÆÆÉÆÃÃÆÃÄÅÃÂÅÂÃÃÛÃÅ–Å”0&&&&"" �âüüüüüüüüüüþúóó÷÷÷óòÒo     ! !     ! !  !  !!   !    !!�óÿÿÿÿÿÿÿÿúËY! ! ! ! !@–ñþÿÿÿÿÿÿÿçZ  !![òÿÿÿÿÿÿÿò�    @Ïþÿÿÿÿÿÿý   Âþÿÿÿÿü� �úÿÿÿÿÿóY#áÿÿÿÿÿþ… ÈÿÿÿÿÿòY  –üÿÿÿÿÿü„  ÎÿÿÿÿÿÿóY@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ „ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   pÓúüýýüýýþþüüýüüüüüüúà�ˆSˆNSˆˆˆSSSˆSSˆˆSSˆˆˆSSSˆˆˆˆSNSˆNSˆSSNNNSSNˆSSSSSSNNNNNNNSSSSSSNNNSSNSNSSNNSSNSSNNNNSSNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNLLLLLLNNNNNNNLLNNLNNLNNLLNNNLNLLLNNLLLLLNLLLLLLLLLNLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,L,,,LLLLLLL,,LLLLLLLLL,LLLLL,L,LLL,,,,,L.,.McÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄh +0203\VVV\VVVVVUVVVVVVVVVUUVUUUUUUUV3244443344333333333333333333333333333333332222232022022000000000000000+++0+0+++++++++*3M::::033::3:3:03:2:0333M:200000+&&&& �æüüüüüüüüüüþúó÷÷óóóò§l           ! !! !  �òÿÿÿÿÿÿÿÿÿóÈ[   ! @–çþÿÿÿÿÿÿÿÿþÎ@!! !–üÿÿÿÿÿÿÿóÂ; !  !!‚çþÿÿÿÿÿÿÿÏ;   Âþÿÿÿÿü�  @òÿÿÿÿÿÿÏ@#ËþÿÿÿÿÿúY ÈÿÿÿÿÿòYYñÿÿÿÿÿÿÏ9YóÿÿÿÿÿÿË ;òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pÕúýüüýýýþþüüüüüüüüüüà�SSˆSSˆˆˆSSSˆSSSˆˆSSˆˆˆNNˆSSNNNSˆSSSSSSNSNNNSSSSNNSNNNNNSSNSNSNSSNNNSNNSNSNNNNNSSNNNNNNNNNNNSNNNNNNNNNSNNNSNNNNNNNNLNNNNNNNNLNNNNNNNNNLNNLLLNNNNLLNNNNNLLNNLNLNNLLLLNNNNLLLLLNLLLNLLLLLLLLLNLLLLNLLLNLLL,LLLLLLLLLLLLLLLLLLLLL,L,LLLLLLLL,LL,LLLLLLLLL,,,LLLL,,,,,L,,,LL..WhÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄh  00200000000000000000000000000000000002444434433333333333333333333333333333233322322230220000002020020020+0++++0++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&�æüüüüüüüüüúþúó÷ó÷ó÷ò§p   !     !      _ñÿÿÿÿÿÿÿÿÿÿúÑ‚B9!  ! 9@_ËòþÿÿÿÿÿÿÿÿÿüÆ@ ! 9Ëþÿÿÿÿÿÿÿþð„@ !  #_ÎüÿÿÿÿÿÿÿÿðY  Âþÿÿÿÿü�  Èþÿÿÿÿÿþð�; ;_áþÿÿÿÿÿÿÎ  ÈÿÿÿÿÿòY Èþÿÿÿÿÿú� Ãþÿÿÿÿÿü�;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ vÕúýüüýüüþþüüüüüýüüüüà�SSNSSNˆˆSNSSSSˆˆˆSSˆSSSSSSSSNSNSNSSNSSNSSSSNSNSSNNNNSSSSSNSSSSNSSNNSSNNNSSNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNLNNLLNNNNLNNNNNLNNNNLNNLLLNLNLLNLLLNLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.L,LLLLL,LLLLLLL,L,L,,L,LL,,..,LL,,,,,,,,,,LMbÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ+000002000020202020000200000200000+00222O22222222222222222222222222222222222223*2222022+22222+3+++0002++0++++++++++++++++*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&�æüüûüüüüüüüþú÷óó÷ó÷ò§o  !        ! !      [áþÿÿÿÿÿÿÿÿÿÿþ÷áË‚_[ZY[�•ÈÏòþÿÿÿÿÿÿÿÿÿÿÿó–!  ! ;ÏþÿÿÿÿÿÿÿÿþñË„[@;;;YfÄáýÿÿÿÿÿÿÿÿÿò_  Âþÿÿÿÿü�[òÿÿÿÿÿÿÿýñÏÏðýÿÿÿÿÿÿÿú� ÈÿÿÿÿÿòY_óÿÿÿÿÿþË#@ðÿÿÿÿÿÿÑ# ;óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ oÓúüýýüýýþþüüüüüüüüüüà�ˆSSSNSSSNSˆSSˆSSˆSNˆSNSSNSNSNNSSSSSNSSNNSSSSSSSSSNSSNNNSSNNSSSNNNNNNNNNNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLNNNNNLNNNLLNNNNNNNNNNNNNLNNLLNNNNNLLLLLLLLLNLLLNLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLL,L.LLLLLLL.LLLLLLLLLLLLL.LLLL,,LLLLL,L,L,.,.LL,,L,,,,,,,L,,,,,,UgÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ"""""""""""""""""+000000202+02002230000020000000+0000+++&&&&&&&&&&&&&+++&(&&&&(+&(++++&(++&(&&&&&&&&&&&&&((&&&((&&&&&&&&&&&&(&&&&&&&&&++&++&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&�æüüüüüúüüúüþú÷óó÷ó÷ò§l          !!       ;ÈüÿÿÿÿÿÿÿÿÿÿÿÿÿþüüúúúúüþÿÿÿÿÿÿÿÿÿÿÿÿÿþÑ_!   ! @Ïþÿÿÿÿÿÿÿÿÿÿýúóóóóúüÿÿÿÿÿÿÿÿÿÿÿò�   Âþÿÿÿÿü� ÂýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÈ  ÈÿÿÿÿÿòY#ÏÿÿÿÿÿÿñY…üÿÿÿÿÿý•@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ vÕúüýýüýýþþüüüüüüüüüúà�""""""""""""""""""""""""""SSˆSSNSSSSˆSSSSSSNNSSSSSSSNNSNSSNSSNSNNNNSSSSSSNSNNNSNNNSNNSSNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNLNNNNNNLNNNLNNLLNLNNLLNNLNNNNNNNLLLNLLNNLLNNLNNLLNLLLLLLLL,LLLLLLLLLLLLL.LLL.LLLLLLLLLLLLLLL,LLLL,LLLLLLLL,,LLLL.LLLL,,,L,L,L.,LL.LLL,L,,,,,L,,,,,,,,,,,,,,.,/WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÁÁÁhÁÁÁhÁhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhggghghghghdhghhghdghhdddgggdddhgdddddhdddddddddddddddddddddgddgddddddddccb++20002+03+003000+020200020000000+0+0++&+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+bccddcccddddddddddddddghddggdddddhddddddddddgddddddddddddddddÇæüüúüüüüüûúþúóóó÷÷óò§m           !       �ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÂ;    ;Îýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð_  Âþÿÿÿÿü�#ËþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏ; ÈÿÿÿÿÿòY‚úÿÿÿÿÿþ ;Ñÿÿÿÿÿÿñ@ @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ    pØúýüüýüüþþüüüüüüüüüüà–hhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁÁhhÁhhhhhhhhÁˆˆSSSNNNSSSSSNNSNNNNSSSNNNSSSSSSNNNSSNNNNSNSSNSNNNNNNNNNNSSSNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNLLNNNNNLNNLLLLNNNNLLLNNNNNLNLNNNLLLNNNNLLNLLNLLLLLLNLNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLLLLLLL,LLLLLL.,LLLLLLL,LLL,.,.L.LL,L.,,,L,,,,LLLLLL,,,,,,,,,,,,,,,,,,,,,,,.,.MgÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÁÄÁÄÄÁÁÄÄÁÁÁÁÄÄÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhdcdddgdddgdggggggfggfgaggfggfggddgggeddgffggfggegggggccddcdccccdcdcdddcdddddcccddddddcccccdcccddcdddddddddcccddddddddcddddcccdddddddcggggggggggggcggggggggggggggggggggggggggcgdgddddddggghÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÊàúüüüúüüüúúýú÷ó÷ó÷óòÒl           !  !!  @ÆóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüË[  #ÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÑY Âþÿÿÿÿü�;ÎþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÏ@ ÈÿÿÿÿÿòY@çÿÿÿÿÿÿá@�÷ÿÿÿÿÿÿÄ  @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú_ [òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ  pØúüüüýüüþþüüüüüüüüüúàÆÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÄÄÁÄÄÁÁÄÁÄÁÄÄÄÄÄÄÄÁÄÄÄÄÁÄÄÄSSNSSSSNNSNNNSSSSNNNSSSNNNSNSNSNNNNNSNNNNSNNSNNNNNNNNNNNSNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNLNNNNNLNNNNLLLNNNNNLNLNLNNLLLLNLNLLNLLLLLLLLNNLNNLLLLNLLLLLLLLL.LLLLLLLLLLLLLLLLL,LLL,,LLLLLL,LLL,,LL,LL,L,L,,L,,..L,L,LL,,L,,,,,,LLLL,,,,,,,,,,,,,,,,,,,,,,,,,,/UgÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÁÄÁÁÄÄÁÁÄÄÁÁÄÁÁÁÁÁÁÁÁÁÄÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁ•ÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÆàúüüüüúüüüüþü÷ó÷÷ó÷òÓo !   ! ! !    ! YÈóþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎ[! !!! !! !�ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Ã; !  Âþÿÿÿÿü� 9ÆúÿÿÿÿÿÿÿÿÿÿÿÿüË# ÈÿÿÿÿÿòY Âýÿÿÿÿÿü‚ Ëþÿÿÿÿÿú[ @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ   !}ÚüýýýüýýþþüüüüüüüüüúàÃÁÁÁÁÄÁÁÁÁÁÁÄÄÄÁÁÄÁÁÄÄÄÁÁÄÄÄÄÁÁÄÄÄÄÁÄÁÄÁÄÁÁNNSSSSNNNNNNNSSSNNSNSNNSNNSNNNNSNNNNSNNNNNNNNNNNNNNNNNNNNNNSNNNNNNLNNLNNLNNNNNNNNNNNNLLNNNNNNLLLLLNNNNLNNLNLLLLNNLLLLNLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL,LLLLLL,.,,,,LLLL,L,L,,L.LL,,,LL,,,,,.LL,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-W¾ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÁÁÄÄÄÄÄÄÄÄÄÁÄÄÁÄÁÁÄÄÁÄÁÁÄÄÁÁÁÁÁÄÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁhhÁÁÁÁÁÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhhÁhhÁÁÁÁÁÁÁÁÁÁÁhhÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁhhÁÁÁhÁÁÁhÁÁÁÁÁÁhÁhhÁÆàúüüúüüúüüúýü÷ó÷ó÷óóÙs            YÃÑüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýçÄ[   ;ÂñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÎ[   Âþÿÿÿÿü� aÏýÿÿÿÿÿÿÿÿþá‚  ÈÿÿÿÿÿòYYñÿÿÿÿÿþÎ#YòÿÿÿÿÿÿÎ @òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà  ‚ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú�[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ wàüýýüüýýþþüüüüüüüüü÷ÙÃÁÁÁÁÁÄÁÁÁÄÁÁÁÁÁÁÄÁÄÄÄÄÄÄÄÁÄÁÄÄÄÄÁÄÄÄÄÄÁÁÄÁNSSSSSNSNNNNNSSSSNSNSNNSNSSNNNNNSNNSNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNLNNNNNNNNNNNLLLLLLNNNLLLNLLLNLNNLLLLNLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLLL,LLLLLLLLL.LLL,,,,,,LLLLLL,,,,L,LL.,,,L.,,L,,,,,.,,,.,,,,,,,,,,,,,.,.,,,,,,,,,,,,,,,,,,,,,,-\ÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÁÄÄÄÄÄÄÁÄÄÁÄÁÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁhhÁÁÁÁÁÁhÁÁÁÁhhÁÁÁÁÁhhhhhÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁhhhhÁÁÁÁhhhÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁhhhhhhhhÁÁÁÁÁÁhÁÁÁÁÁhhhhhhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁhhhhhÁÁhÁÁÁÁÁÁhÁÁÁÁhhhhhhhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÆàúüúüüúüúúúýüóó÷ó÷ó÷Ùs            9Y–ÏóúýÿÿÿÿÿÿÿÿÿþüóçÂ[;  !  ;…çúþÿÿÿÿÿÿÿÿÿÿÿüòÈY   „òóóóóð[ [ÂçóóóóñÆ[#  –óóóóóÏ@ ‚òóóóóóð[ •òóóóóóð@@óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ‚üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó_[òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆ    }àüüüüýüüþýüüüüüüüüü÷ÙÆÁÁÁÁÁÁÁÁÁÄÁÁÄÄÄÁÄÄÁÁÁÁÁÄÁÁÄÄÄÁÄÁÄÄÄÄÄÁÄÁÄÄNSNSSNSNNNNSNNSSSSNNNNNNSNSSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNLNNNLLNNNLLLNLNNNNLLLLLNNLNLNLLNLLNNLLNNLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLL.LLLL,LLL.,,.L..LL,,,.,,,,LLL.,,,,,L,,LL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÄÁÁÄÁÄÁÄÁÁÄÁÁÄÁÁÄÁÁÁÁÁÁÁÄÁÁÁÄÁÁÁÄÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁhÁÁhhÁhhÁÁhhÁÁÁÁÁÁÁÁÁhÁhhÁÁÁhhÁÁhhhhÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁhÁhhÁÁhÁhÁhhÁÁhhÁhÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁhhÁhÁÁhhhÁÁÁÁÁÁÁhÁÁhhhÁÁÁÁhÁhhÁhÁÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁhÁhhÁÁhÁhhÁhhÁhhhÁÁÁÁÁÁÁÁhÁhhÁÁÁÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁhhhÁÁhÁhÁhhÁÁhhhÁÁÁÁÁÁÁÁÁhÁhÁhhhÁhÁhhÁhhhÁhÁÁÁÁÁÁÁÁhhÁÁhÁhÁÁhhÁhÆÙ÷úúüüüüüúúýýó÷÷ó÷óóÙs  !      ! 9[‚ÂËËÎÎÎËËÄ•_;    ! !    [ÂËÏñóúúóòáÎÄ�#   ##99;9  ;#   ####;# 9#;#99# 999;9##  •ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄY @ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ;#•ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[  !  $æüüüüüüüþýüüüüüüüüüõÙÂÁÁÁÁÁÁÄÁÁÁÁÄÁÁÁÄÄÄÁÁÁÁÁÁÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÁÄÄNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNLNNNNNLNNLNNLNNNNNLNNNLLNNNLNNLLLLLLNLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLL,,LLLLL,LLLLLLLLLL.LLL,,LLL,,L,,,,,,L,,,,.,L,,,L,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,TÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÁÄÄÄÁÄÄÁÄÄÁÁÄÄÁÁÄÁÄÁÄÄÁÁÄÄÁÁÄÄÁÁÁÁÄÁÁÄÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁhÁÁÁhhhhhÁÁÁÁhÁÁÁÁhhÁÁÁhÁÁÁÁÁhhÁhÁhhÁÁhÁÁhÁhhhhÁÁÁÁÁÁÁÁÁhhÁhhhÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhhÁhÁÁÁÁhÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁhÁhhÁÁÁhÁÁÁhhhhÁÁÁÁÁÁÁÁÁhhhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁhhÁÁÁÁhhÁhÁÁÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁhhÁÁhhÁhÁÁÁhÁÁÁhhhÁÁhÁÁhÁhÁhÁÁÁÁÁÁÁÁÁÁhhÁhÁÁÁhhÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁhÁhÁhÁÁÁhhhhhÁÁÃÙ÷üüúúúúúúúüþó÷÷óó÷óß}!            ! !        ;;@@;;#    =‘èüüýüüýýÿýüüüüüüüüüõÙÂÁÁÁÁÁÄÁÁÁÁÁÁÁÄÁÁÁÁÄÁÄÄÄÄÄÁÄÄÁÁÁÁÄÄÄÄÄÄÄÄÄÁNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNLLLNNNLNLNNNLNNLLNNNLNLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLNLLLNLLLLLLLL.LLLLLLLLL,LL,LLLLL,,LLLL,L,L.LLL,,,,LLLL,,,,,,,,,,.,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0dÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁhhhhghggdggdddddgdgcggccddccdccccgccgdccgcddccdgccccdcdcccccccccdccccdccccccccccccccccccccccccccccccccccccchÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁhhÁÁÁhÁÁÁÁÁhhÁhÁÁhÁÁhÁÁhhhÁÁÁÁÁÁÁhÁhhÁÁhhhÁÁÁÁhÁhhÁÁhÁhÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁhhÁÁÁhÁÁÁÁÁhhhÁÁÁhÁÁhhÁhhhhÁÁÁÁÁÁÁÁhhÁÁhhÁÁÁÁÁhÁhhÁhhhÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁhhÁÁÁhhÁhhÁÁhÁhÁÁÁÁÁÁÁhÁhÁÁhhÁhÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhÁhhÁÂÙ÷üüúúúúüúúüþ÷ó÷óó÷óè�=     !     ?šôüüüüüüüÿýüüüüüüûüüõ×ÂÁÁÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÄÁÁÄÄÄÁÄÄÄÄÁÁÄÄÁÄÄÄÁÁÄÄÁÄNNSSNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNLNNLLLNLNLLLLNLNNNLLLNNLLLLLLNLLLNLLLLNNLLLLLLLLLLLLLLLLL,LLLLLLLLLLLLLLLLLLLLLLLL,LL,,L,,L,,L,,L,L.,LL,,,LL,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁhdggdgccccccbbbbbXXbXbXbXXbXXXbXbXXXbXbbXXbXbXXbbXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhÁÁÁÁÁÁhhÁhÁhÁhÁhÁhÁÁhhÁÁhhÁhÁhhhÁÁhhhÁÁhÁÁÁÁÁhhÁÁhÁÁÁhhÁÁhÁÁhÁhÁÁhhhÁÁÁÁhhhÁÁhÁhÁÁÁÁhÁhÁÁÁÁhhÁhÁhÁÁÁhÁÁÁÁÁhÁÁhhhhÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁhhhÁhÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁhÁÁÁÁÁhhÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁÁÁÁÁÁhÁÁhhhÁÁhÁhhÁÁhhÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁhÁÁÁÁhhÁhÁÁÁhhÁÁÁÁhhhÁhÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁhÁÁ•×õúúüüúúüúúúþúó÷ó÷óóñ™C  !                     l§÷üüüüýüýþýüüüüüüüüüô×ÂÁÁÁÁÄÁÁÁÁÁÁÁÁÁÁÁÄÁÄÄÁÁÄÁÄÁÄÄÄÁÄÁÄÁÄÄÄÄÄÄÄÁNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNNNNNNLNNNNNNNNLLLLLNLLLLLNLNLLLLLLLLLLLLLLLLLLLLLLNL.L,LLLLLLLLLLLLLL,LLLLLLLLLLLLLLLLLL,L,LLLL,LL,,,,,,L,L,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁdcdddccccccbbbbXXXXbXXXbbXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcÁhhÁÁhÁÁÁÁhhhÁhÁhhhÁhÁÁhÁÁhÁÁÁhhhhÁÁÁÁÁÁÁhÁÁÁÁÁhhhÁhÁhÁhhhhÁÁhÁÁhÁhÁhÁÁÁhÁÁhhÁÁÁhÁÁhhÁhhÁÁhhhÁÁhhhÁhÁhhhÁhÁÁÁhÁhÁÁÁÁhhhhÁhÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁhÁhhhÁhhÁÁhÁÁÁhhÁÁhhhhhhÁÁÁÁÁhÁÁÁhhÁhhÁhÁhhhÁhhhhhÁhÁhÁhÁhhÁÁÁhhhhÁhÁÁhÁÁhÁÁÁÁÁhhhÁhÁhÁhhhhhhÁÁÁhÁhÁhÁÁÁhÁÁhhhÁÁÁÁhÁhÁhhÁhhhhÁÁhhhÁhÁhhhÁÁÓòúúúüúúüúúüýúó÷ó÷ó÷ò§m            !    !       ! o¬úüüýýüüýþüüüüüüüüüüèÊÂÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÄÁÁÁÄÁÄÄÄÄÄÁÄÄÁÄÄÁÄÁÄÁÄÁÄNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNLNNNNNNNNLNNNNNNNLNLNNLLNLLNNLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LL,LLLLL,,LLLLLL,,,LL,,L.,,LL,,,,,,,L,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,WÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁbccccbcbccccccccccccccccccccccccbccccbbcccbcccccccccccccccbbbbbccccccbbbbcccbccccbccbbcbbcbbbbbbbcccbbbcbbccbcbbbbbÁhhÁhÁhhhÁhhhhhÁhhhÁhÁhhhÁhÁÁÁÁhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhÁhÁÁhÁhÁÁÁhÁÁhhÁhÁhhÁhÁhhhÁÁÁÁÁÁÁÁhhhÁhhhhÁhÁÁÁÁÁÁhhhhhhhhhhhhhhÁÁhÁhÁÁhÁÁÁÁÁhhhhÁhÁÁhÁÁÁhÁÁhÁÁhhÁhhÁhÁhÁÁhÁhhhÁhÁÁÁÁÁÁhhhÁÁhhhÁhhÁÁÁÁÁhÁhhhhhhhhhhhhÁÁhÁhÁÁhhÁÁÁÁhhhhÁhhÁhÁhÁÁÁÁhÁÁÁhÁÁhhÁÁÁÁhhÁÁÇèüüúúúúúúúúýü÷÷ó÷ó÷òÒp           !wØüüüüüüýýþüüüüüüüüüúæÉÁÁÁÁÁÁÁÁÁÄÁÁÁÁÁÁÄÁÁÁÄÄÁÄÁÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÁÄÄNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNLNNNLNLNNNNNLNLNNLNLNLNNLNLLLLLLNLLLLLLLNLLNLNLLLLLLLLLLLLLLLLLLLLLLLLLLL,L,LL.LLLLLLL,,L,,L,,LLL,,,,L,,..,LL,L,,,,,L,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-XhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁchhhhhhhhhÁÁhhÁÁÁhÁÁhÁhhhhÁhÁÁhhhhhhhhhhhhhÁÁÁhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhÁhhÁÁÁhÁÁhÁhhhhÁhÁÁhhhhhhhhhhhhhÁhhÁhhhbbbbbbbXWWWWWWWWWWXWWWWXWWWWWWXWWXWWWUUUUUUUUUUTUUTU::::::U:T:::TTTTTTTTTTTTTTUgÁhhÁÁÁÁÁÁhhhÁhÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁhhhhÁhhÁÁhhÁhhhhÁÁÁhÁhÁÁhÁhhÁhÁhÁÁÁÁhÁhhhhÁhÁhhhÁÁÁÁÁÁÁhhÁÁÁÁhÁhhhÁÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhhhÁÁhÁÁÁhÁhhhhhÁÁhÁhÁÁÁÁÁhÁhÁhhÁÁhÁhÁhÁhÁhhhhhhÁhhÁÁhÁhhhÁÁhÁhhhhÁhÁhÁhÁhÁhhhhÁhÆâúúüúúúúúúüýü÷÷ó÷óó÷Ùs$!    =€æüüüüüýüþýüüüüüüüüüúàÆÁÁÁÁÁÁÁÁÁÄÄÁÁÄÁÁÄÁÁÄÄÁÁÄÄÄÄÁÁÄÄÁÁÄÁÄÄÁÁÄÁÁÄNNNNNNNNNNNNNNNNNNNNNNNNLLNLNNLNNNNNLNLNLNNLNNNLLLNLNLLLNNLLLLLLLLLLLLLLNLLLLLLNLLLLLLLLLLLLLLLLLLL.LLLLLLLLL,.L,,L,LLLLL,L.,.,,,,.L,L,,,.,,,LLL,,,,,,L,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-MUWWWWWWWUUWUUWUUchhÁhhhÁhÁÁÁÁÁhhÁÁhhÁhÁÁhhÁhhhhhhÁÁÁhhhhhhhhhhÁhhÁÁhÁÁhhÁhhhhhhhhhhÁhhhÁhÁÁhÁÁÁÁÁÁhhÁhÁÁhhÁhhhhhhÁÁhÁÁhhhhhhÁÁhhhhW-,ThÁÁÁÁÁÁhÁhhhhhÁhÁÁhhÁÁhhhhhhÁÁÁÁhhhhhhhhÁhÁhhÁÁhhÁÁÁÁÁhÁhhhhhÁhÁÁÁhÁÁÁÁÁÁhÁhÁhÁhÁhÁhÁÁÁÁhhgggggggggggggdggggggggggdgggcccggcgggcggcccggccgccccccccccccccccccccccbbbbbbbbXbbbbbbbbbbbbXbbbbbbbXbXbbbbXbb–àúüúúúúúúúúüü÷÷ó÷÷óóè�=                 >šõüüüüüüüþýüüüüüüüüü÷ÙÃÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁNNNNNNNNNNNNNLNNNNNLNNNNLNNNNLLLNNNNNLNNNLLLNNNNLLLLLNLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLLLLLLLLLLL,LLLL,,L,L,,,.L,LL,,LL,,L,.L.,,,,,,,,,L.,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhÁhhhhÁhÁÁÁhhÁÁÁhhhhhhÁÁhhhhhÁhÁhÁhhhhhhhhÁÁhhhhhhÁhhÁÁhhhhhhhhhhÁhhhhhhÁhÁÁhÁhÁhhhhhhÁÁhhhhhhÁhÁhhhhhhhhÁhÁhhhhU,bhÁhÁÁÁÁÁÁhÁhhhÁhhÁhhÁÁhhhhhhhhhhhhhÁÁhÁhhhhÁÁhÁhhÁÁÁÁhÁÁÁÁhÁhÁhhÁhhhhhhhhhhÁÁhhhhÁhÁhÁÁhhhW------------------------------------,-----------^×úúúûúúúúúúüþú÷óó÷÷óñ™C                     o§÷üüüüüüýþüüüüüüüüüü÷×f\\\\W\Wb\\\\\\\W\\WXX\\bW\X\W\\\\\\WW\b\\\WNNNNLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLNLLNNLLNNLNNLLLLNNLLLNLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLL,LLL,LLLLL,LL.,LLLL,,LLL,L,,L,,,,,LL,,.,..L,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhhhhhhhhhÁhhhÁhhhhhhÁÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhhÁÁhhhhh„hhhhhhhÁhhhhhhhÁhhhhUghhÁÁhhhÁÁhhhÁhhhhhhÁhhhÁÁhÁÁÁhhhhÁhhÁÁÁÁÁÁhhÁÁhhÁhÁhhÁhÁÁhhÁhhhÁhhhÁÁhhhhÁhhhÁÁhhhhÁhhhhÁhcVÊõúúúúúúúúúúþúó÷óóó÷òÓq     !}ÚúüüüüüüþþüüüüüüüüüúôÉU...,-....LL....,.L..,LL.,..L,.L,.LLLLL.-...NNNNNNNLNNNNNNNNNNLLNNNLLLLNNLNNNNLLNLLNNLLLLLLNNLLNLLLLLLNLLLLLLNLLLLLLLLLLLLLL,LLLLLLLLL,L,,LLLLLLLL.,.L..,,,,LL,,L,L,,,.,.L,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhhhhhÁhhhhhÁÁhhhhhÁhhhhhhhhÁhhhhhhhhhÁhhhhhhÁhhhhÁhhhÁhhÁhhhhhhhhhÁhÁhhhhhhÁÁhhhhh•hhhhhhhhh�h•hhhÁÁhhhU,,,WhhÁÁhhÁhhhhhhhhhÁhhhÁhhhÁÁÁÁhhÁhhÁÁÁÁÁhhÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁhhhÁÁhÁhÁhhÁhÁhhÁÁÁÁhhÁhhÁhhÁhhÁhhÁhM�èúúúúúúúúúúüüó÷ó÷÷óóà}$      =�æüüüüüüüþþüüüüüüüüüúæ–/,,L,-,LLLLLLL,,LL,,--LLLLLLL,LLLLLLLLLLLL.LNNNNNNLNNNNNNNLLNNNNLLLLLLLNLLNLLLLLLLLNLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLL,.LLLLLLL.LL,,LLLL,L,,LLLL,L,,,,,..,.,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-chhÁhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhÁ•hhhhhhhhÁhhhhh•hhhhhÁhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhÁhhÁhhhhhhÁhhhhhhhhÁhhhhhhU,bhhhhhhÁÁhhÁÁhÁhÁÁhhhhhÁÁÁÁÁÁÁhhhÁÁhhhhÁÁhhÁÁÁÁhhhhhÁÁÁÁhÁÁhhhÁÁhhÁÁhhhhÁhhÁhÁhÁhÁhhhhhÁhhhhhX–æúúúúúúúúúúüþ÷ó÷ó÷÷÷ñšC        l§÷üüüüüüüþýüüüüüüüüüúà�.,L,LL,L,LLL.LL,L,LL,,,LLLLLLLL,LLLLLLLLLLLLNNNNNLNNLLNLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LL,,LL,LLLL,L,,LL,LL,LL,,,.,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁ•hhhhhhhhhÁhh•hhhhhhhhhhÁÁhh•hhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhÁhhhhhhhhhhhhhhhUTgÁhhhhhhÁhhhhhÁÁhhhhhhhhhhhhhhÁhÁhhhÁhhhhhhhhÁÁhhÁÁhhhÁÁÁhhÁhhÁÁhhhÁhhhhhhhhÁhhhhhhÁhhhÁhhhhÁc^Ù÷úúúüúúúúúúþúó÷ó÷÷óòÓw!         $ÚúüüüüüüüþüüüüüüüüüüõÌ\.,,,,L,L,.LLLLL,LLL,LLLLLLLLLLL,,LLLLLLLLLLLNNNNLNNNNNLNLLLLLLNNLLNNLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LL.LLL,LLLL,L,LL,,L,,L,.,,LL,,L,.L,.,,,,,,,L.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhÁhh•hhhhhhhhhhh•hhhhhÁhhhhUWhhhÁÁhhhhhhÁÁÁhÁhhhÁÁÁÁhhhhhhÁhhÁÁhhhhhhÁÁÁhhhhhhÁÁhhhÁhhhhhhÁhhÁÁhÁÁÁhhÁhhÁÁhhhÁhÁhhÁÁhÁÁÁhhhU:Óõúúúúúúúúúúþü÷ó÷÷÷÷óâ‘=    ?¥ôüüüüüüüýþüüüüüüûüüüôÇP,,,,LLLL,,LL,,,,,L,LLLLLLLLLL,L,LLLLLLLLLLLLNLNLLNNNLNLNNLLLLLLNLNNNLLLLNLNNLLLLLLLL.LLLLLLLLLLLLLLLL,LLLLLL,LL,LLL,,.L,LL,L,,.L,LL,.,L,.,.,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhU,-chhhÁhhhhhhÁÁÁhÁÁÁÁhÁhhÁÁhhÁhhÁhhÁhÁhhÁÁÁÁÁÁhhÁhhhhhhhhhhhÁhhhÁhhhhhhÁhÁÁhhÁÁhhÁhÁhhhhhhhÁhhÁhhc-�éúúúúúúúúúúüü÷÷÷ó÷ó÷ñ§l   p¬÷üüüüüüüþýüüüüüúüüüúæ–/,,,,L,,,L,.LL,,L,LL,L,,LL,,LLL,,LL,LLL.,LLLLNLNLLLLLLLLLLLLNLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,LLLLL,,LL.L,LLL.,.LL,,LL,L,,,,LL,LL,.,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-chhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•h•hhhU,MdhhhhÁÁÁhhhÁhhhhhhhÁhhhhÁÁÁhhhhhhhÁhhhhÁhhhhhhhhÁÁhhÁhhhÁhhhÁhÁÁhhhhhhhhhhhhhhhhhhhÁhÁhhÁhÁÁÁhhgM‚àúúúúúúúúúúúþú÷ó÷÷÷÷óÙ=    >¤æüüüüüüýýþüüüüüüüüüüúßa,,,,,,,,,,,,LLLL,,,LL,,,,LL,,LL,LLLLLLLL,LLLLLLNNLLLLLLNNLLNNLLLNLNLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLL,LL,,,,,,,,,L,,LLL,,.,,.,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhhhhhhhddhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhh•hhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhU,,XhÁhhhhhÁhhÁÁhÁhhÁhhhhhÁhhÁhÁhÁhhhhhhhhhÁÁhhhhhhhhhÁhhÁhÁhhhhhhhÁhÁÁhhÁhÁhhÁÁhÁÁhhhhÁÁhÁÁhhhhhÁhÁb-[×õúúúúúúúúúúüü÷ó÷óó÷÷ñ§l    v¬÷üüüüüüüþþüüüüüúüúüüôÌ\,,,,,,.,,,,,,.,,L,,,,L,,,,,L,LL,LLLL,,,,LLLLLNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL,,LLL,L,,,L,,LL,,,,LLLL,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,D,,,,,,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhhhd[@=$$=@Zdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhfYBYBBBBYZYY[h[AZhhhhhhhh[=AhhhhhhhhUchÁÁÁÁÁhhhhhhhhÁhhhhhhÁhhhhhhÁhhÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhhhhhhÁÁhÁÁhhhhhÁhhÁhhhhÁhhÁhhÁhhhhÁÁhÁÁhhhhÁgM0�èúúúúúúúúúúüþ÷ó÷÷÷ó÷òÙ}=     >‘æúüüüüüüüþüüüüüüüüüüúæ—/,,,,,,,,,,,,,,.,,,,,,,,,,L,,,.LLLL,,,,,LLLL,LLLLLNLLLLLLLLLLLLLLLLLLLLLL,.LLLLLLLLLL,LLLL,LL.,LL,LLL,.,,,,,.,L,LL,,,LL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDD,,,,,,,,,,,,,,,,,,,,-bhhhhhhhhhhhh_@=$$$=[hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhd==7$$$=YhBBdhhhhhhh[=hhhhhhhhUUhhÁÁÁhhhhÁhÁhÁhÁÁhhhÁÁhhhhhhhhhhhhÁhhhÁÁhhhhÁhhhhÁhhhhhhÁhÁhÁhÁhhhhÁÁÁÁhhhhÁÁhhÁhÁhhhÁhhÁÁÁhhhhhÁhW‚Ùúúúúúúúúúúúýüó÷ó÷÷÷÷è§o    !v§÷üúüüüüüýþüüüüüüüüüü÷Ù`,,,,,,,,,,,,,,.,,,,,,,,,,,,,L,,,LL,,,,,L,,LL,LLLLLLLLLLLLLLLLLLLLLLLLLLLL,L.LLLLLL.LL,LL,LLLLL,LL,,,,,L,L,,,,,,,,L,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,,,,,,,,,,,,,,,bhhhhhhhhhhdZ7=Zbdd_Y>>_hhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhfd�hhhhhhhhhhhhhhd_[[[A$Z[[_dhBBdhhhhhhhY=hhhhhhhhUbhhhhhÁhhhhhhhhÁhhhhhÁhhhhÁhhhhÁhhhhhÁhhhhhhhhhhhÁhÁhhhhhhhhhhÁhÁhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhÁhhhc-UÓòúúúúúúúúúúüýúó÷÷ó÷÷óà€=    >¤æúüüüüüüüþýüüüüüüüüüüôÉU,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,.L,,,.,,,LL,,LLLLLLLLLLLLLLLLLLLLLL,LLLLL,,,LLLL,L,L,,L.L,,LLLL.L,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,,,,,,,,,,,,,,bhhhhhhhhhhY$BdhghhhhddhghhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhB=[hhhhhhhhhhhhhhhhhhhZ>hhhhghBBdhhhhhhh[=hhhhhhhhUdhhÁhhhhhhhhhhhhhhhhhhhhhÁhhÁhÁhhhÁÁhhhhhhhhhhhhÁÁhÁhÁhhhhÁhhhhÁhhhhhhÁhhhÁhhhhhhhÁhhhhÁhhÁhhÁhhhhhg:—æúúúúúúúúúúúýú÷ó÷óó÷÷ñ§p!     !qÓ÷üüüüüüüýþüüüüüúüúüüúâ“/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,,,,,.L,L,LLLLLLLLLLLL,,,LLLLLLLLLLL.L,LLLLL,,,,,,,,,L,LLLL,.,,,,L,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhghhhhhh_=BdhhhhghhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhdA[ghhhhhhhhhhhghhhhhhZ=hhhghhCAfhhhhhhh[>hhhhhhhhUWhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁhhÁhhhhhhhhhÁhhhhÁhhhhhhhhÁhÁÁÁhhhÁhhhhhhhhhh•hhÁhhhb-�Ù÷úúúúúúúúúúüý÷óó÷÷÷ó÷à’C    lšñúüúüüüüüþýüüüüüüüüüüõ×\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,.,LLLLLLLLLLLLL.LLLLLLLLLLLL,LL,,L,LL,LL,,,,,L,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD,,,,,bhhhhghhhh>BdhhhhghhhhhhhhhhghhhhhhhghghhhhhhghghhghhghhhghhdddhhhhghhhhhhhhhhhhhhZ>hhhhggBBdghhhhhg[>hhhghghhU-bhhhhÁhhhhhÁhhhÁÁhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhhhÁhhhÁhhhhhhÁhhÁhhhhhhÁhhhhhhhhhÁÁhhhhhhhÁhhhhhÁÁÁhhhhhgM:Çéúúúúúúúúúúúýúó÷óóó÷óòØ}$     =}Ù÷úüúüüüüýþüüüüüüüüüüúè—M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLLLLLLLLLL,LL,LL,LLLLL.L,LL.,L,L,,,L,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhhhhghh__hhghhhhhhhhhhhhghgddddhhhhhddhhdd^dhhhhhddddghhhdddhhhdddhhhhddhhhhhhhZAhhhhhhCAdhhhghhd[>hhhhhghhUghhhhhhhhhhÁhhhhhhÁhÁhÁhhhhhhhhhÁhhhhhÁhÁhhÁÁhhhhhhhÁhÁhhhhhhhhhhhÁhhhhhhhhhÁhÁhhhhhÁhhhhh•Á•hhÁÁhhhÁhX-‚Ù÷úúúúúúúúúúüýó÷÷ó÷÷÷óñšp!     !qÒõúüúüüüüüþüüüüüüüüüüü÷Ùa-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLLL,,L,,L,,,,LL,L,,.LLL,,,LLLL,LL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,bhhhhhhhgZ>dhhhhhhhhhhhhhhhhfZC>>AZ_hhhA>[_A�hhgd[A>>A[gghZ>ZhhdZAZfhh[ABdhhhhhh[AhhhhhgZAdhhhdhdhZ>dhhhhhhgUWhhÁhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhÁhhÁhhhhhÁhhÁhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁhhhhÁhhÁhhÁdUÊôúúúúúúúúúúúýü÷÷ó÷÷÷÷óâ’l   lšéúúüüüüüüýþüüüüüüüüüüüèÆ:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLL,.LL,,L,,L.,,,L,,,L,,,.L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,,,,,,,bhhhhhghdAChhhghgghghgghhhh�AAA_gd>>>dhhhZAAAdgdAAggh_=Zd_[hghghgg[AgghhhdZ>>>>>dhghghhgT,chhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhÁhÁÁhhÁhÁhhhÁhhhhhhÁhhÁhÁhhhhhÁhhhÁhhhhÁÁhhhhhhhhhhhW-‚à÷úúúúúúúúúúüþú÷ó÷÷÷÷óòÙ>     ?�àúúúúüúüúüþüüüüüüüüüüü÷Ùa-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LLLL,LLL,L,.,L,,,,,,LL,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIID,,,,,,,,,,,,,bdgghgghd>ZhhghhhgghggghghdAA_dddZ_dZdddggd>ZddddhgdBBhggdZ]>ZdhggdhhhZAgghghhBdgghhgggUMgÁÁhhhhhÁhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhÁhÁÁhhhhhhhhhhÁhhhhhhhÁhhhhÁhhhhÁhhhhÁhhÁhhhÁhhhhÁhhhhhÁhhhhhhhhhhc-VÊéúúúúúúúúúúúüü÷ó÷÷÷÷÷÷òÓ}>         =€Ù÷úüúüüüüüþýüüüüüüüüüúúé�U,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LL,,,,,,,,L,.,,,LL,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DID,D,,,,,ID,,,bhghgghgfAZghggghgdhhggghh_>_hhgggBZd[gghhggd>BdhghghdABhghhdA>aghghhghg[?dhghhhBA_d_d_d_dZdhghgghgUWhhhhhhhhÁhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhÁÁhhhhhhhÁhÁhhÁhÁhhÁÁhhhhhhÁhhgM-…à÷úúúúúúúúúúúýúó÷÷ó÷ó÷÷ñ§w$  =}Ôõúúúüúúüüýþüüüüüüüûüüü÷Ùf-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L.,,,,,,,.,.,,,,L,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDIDDID,D,,D,,,,bggggghgdAAhggggghgggghghhZBdhgghhd>dAdggghggdBC[^dhgdABggggh_[ghggghghg]?dghghdZAdgggghhdZdhgghggdUcÁhhhhhÁÁhÁhhhhhhÁhhhhhhhhhhhhhhhÁhhÁhhÁhhÁhhhÁhÁhhhhhhhÁhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhÁÁhhhhhÁhÁhhhhhÁhhÁhhXUÊéúúúúúúúúúúúüüúóó÷÷÷÷÷óè§q$ =s¬õúúúúúüúúüþýüüüüüüüûüüúèÆU,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,LL,,LL,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,IIIIIIIIDDDDDDDDDDD,,,bgdghdhghZcghhhgggdghhggdBZdggggga>a[ghhgghhhdAZdhdABghggg^>_hhghgghhg[AdhggggBAdgghggghZdgghghggUMghhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhÁhhÁhÁhhhhhhhhhhÁÁhhhÁhhhÁhhhhÁhhhÁhÁhhhhhhhhhhÁhÁhÁhhd-‚Ù÷úúúúúú÷÷÷÷úüü÷÷÷÷÷÷÷ó÷è§p!       =q§ôúúúúúúúúüþýüüüüüüüüüüüõ×a-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²²²²²²²²²DII²IIDDDDID,,,,,bggdgggghdCdgghgggggdhdgdBAgggdhg[AcZhdggghgghd�Z>[gdAAggdgdCAdgdghgggh[AddhdgdZAdhghggghZdgcgghggUXhhhhh•hhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhh•hhh•hhhhÁhhhhhhhÁhX:�æ÷úúúúú÷÷÷÷úúüüóóóóó÷÷ó÷âšp$         =}§ñúúúüúúúúüþþüüüüüüüüúüüúæ–M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDI²²²²²²²²²²²II²²²²²ID,,,,,bdgggghgghYZdgdhgggddddggZfddhgdBBdZdhgdgghgdgggdAZhdABdgdh[ZZhddggggd]?dggggdBCdgggdggg]dhhgddhgUchhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhh•Áhh•hhhhhhhhÁhÁhhhhhhhhhhhhhhhhb^×ôúúúúúúúúú÷÷úýü÷ó÷ó÷÷÷ó÷â§w=>}¬éúúúúúúúúúýþüüüüüûüüüüüüôÊ\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,II²II²²²²²²²²²²²²²²²²²²²²²IIDD,,,bggddggcdgdCA[dgdhddZ>Zdg�C^cdcZ_dZdgddddhdB[ddd?ZgdCZdggd>AcZ_ggdgdggZ?dgggggZAdcgddghg]>dggdddgdUUhh•hhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhÁhhhhhÁÁhhhhhhhhhhhÁhhhhhhhhhhhhhhh•hhhhhT–à÷úú÷úúúú÷÷÷÷üýú÷ó÷÷÷ó÷÷÷è§}>>}Óôúúúúúúúúúüþýüüüüüüüüüüü÷à‚0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDD²²²²²²²²²²²²²²²²²²²²²²²²²²IIII²²ID,,,,bgggggdcdgddBAZZZA>Acgd_AAZhdZdgdddddZA>_ddAZdddB>_cc?AdcdggdgZCdgdggdZCddggggggZ?dggdddgdU-bhÁhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhÁ•hhÁhhhhhhhÁhhhhhhhhhhhbVÊè÷úú÷÷÷÷÷÷÷÷÷üýúó÷óó÷ó÷÷óñ¬l     !lÓõúúúúúúúúüüþýúüüüüüüüüüüúè�:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIIDI²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²I,,,,Xcdgdddddgggc[>>>Zcdggd_?>?_dgd>]dddcddd_Z>?[dcdC>Zcc_Zccd_>>ZgdggdgZ?ddgggdBjCdggggggdZ>ddgdccddUghhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhhhhhhÁhhÁ•hhhhhhhhhhÁhhhÁhhhhhh•hhhgMfÙô÷ú÷÷÷÷÷÷÷÷÷÷üüúó÷ó÷÷ó÷÷óñפp$!    =|¤Ùõúúúúúúúúúûþýüüüüüüüüüüüúõ×^-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DIIII²²²²²²²²²²²²´´´²²´²´´²´²²²²²²²²²²²²bdgddcddcdhggdc]ZtCBZZadgggggdd�[__dggdd[_^cdcdccdcc�[][addcc[Z_dh[__ddgcd__[dcdddd_[_dddddd_[_dggggggda[_cdcgdcccU:hhhÁhhhhhhhÁhhhhhhhhhhhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhW0–à÷÷úú÷ú÷÷÷÷÷÷÷üüúó÷÷÷ó÷÷÷óòàšw>   >}§è÷úúúúúúúúúüþýüüüüüüüüüüüü÷ß“0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDII²²²²²²²²²²²²´´²´²²´´´²´²²´²²²²²²²²²²²,,,XdcgdddddcddccddddcddccdccccddcccgdgdccddccdddgggcdddgdcddddcdddcddddgddcddgdcddcdcddccdcdcdgcgdcggdcddcccddgcgggcUbÁhhhhhhÁhhÁÁhhhhh•hhhhhhhhhÁhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhÁhhhhhhhÁhhhhh•hhhhhhhhhhhhhhÁhhhhc:Çæ÷÷÷÷ú÷÷÷÷÷÷÷÷üüú÷÷÷ó÷÷÷÷óóèÒ€p=    =p‘Óôúúúúúúúúúúüýýüüüüüüüüûüüüúæ—:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²²²²I²²²²²´´²´´´´´´´´´²´´´´´²´²²²²²²²²DbccdccdcdcgdccccdcdcccdccccggdcdddcdcgcgdcddcdgddccccgccdcddcddgdccdccccdccdcdccggdcgccdcdcchdcdccddcddddcdccgdgdcUgÁhhhhhÁhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhU^Êè÷÷÷÷÷÷÷÷÷÷÷÷÷üüúó÷ó÷÷ó÷÷÷óòà§}l!    !l}§æ÷úúúúúúúúúúüþþüüûüüüüüüüüüúèÇV,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDIDDIDIDDDD²´´´´´´´´´´´´´´´´´´´´´´²´²´²²²²²D,,bcdcccdcdcdcdcccgccdcdcdcdcccdgcddggccgccdcdcdcccdccgccccgdcdcdccccccccdcccdcdccgccccdcdcdddcdgcgcddddcdcdcccdccccUUhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁÁÁhhhhhhÁÁhhhhhhÁÁÁhÁhhÁhhh•hhhÁhc--�Ùô÷÷÷÷÷÷÷÷÷÷÷÷úüýúó÷÷ó÷÷÷÷óó÷ñÓ�vC$          !?|šÙòúúúúúúúúúúúüþýüüüüüüüüüüüüüõ×^-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,IIID,DDD²²´´´´´´´´´´´´´´´´´´²´´´´´´²²²²²²DXcdcccdcdcdccddcdccgcdccccdgccccccgdccdcdccccdcdcdcdcdcdcccccddccccccdcdcdcdcddcdcdccdccdcdddcdcccgdcccdcdccccccccUbhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhhhhhhÁhhhhhhhhÁhÁhhhhhhhgM–àõ÷÷÷÷÷÷÷÷÷÷÷÷÷üýú÷÷÷ó÷÷ó÷ó÷óòâÓ¤}l$    $C}šÓé÷÷úúúúúúúúúúüþýüüüüüüüúüüüüûõÙ“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDDD,I´´´´´´´´´´´´´´´´´´´´´´´´²²²²²²²I,,XcdcccdcdcdgcdddcccdcdcdccdgccdgddccccdccdccdcddcddccdccddcdcdcdcccdccccdcddccccdcdcccccdcdcdcdgdddccccdcddcccdcccUTghhhhhhhhhhÁhhÁhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhh•hhhhhhhhÁhhhhhhh•hhÁhhhhÁhhhhhhhhhhhÁhb:—àõ÷÷÷÷÷÷÷÷÷÷÷÷÷üýüóóó÷÷ó÷÷ó÷÷óòèÓ’}o>    !?p}šÙñ÷÷÷÷úúúúúúúúúýþýüüüüüüüüüüüüü÷à–M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DD²´´´´´´´´´´´´´´´´´´´´´´´´´´´²´²²²²IIDIDD,XcdcdcccdcdcccdccdcdcdccdccccdcccccdcccgccdcccdccccccdcccdcccdcdcccdccccccccccccccccccddccdcddcccccccccdcdcdccgcccT     WhhhhhhhhhhhhÁhhhhhhÁhhhhhhhÁhhhhhhÁÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhh•hhhhhhÁhh•hhhhÁhhhhhhgU�æõ÷÷÷÷÷÷÷÷÷÷÷÷÷úüüú÷óó÷÷÷ó÷ó÷÷÷òèÙ§�vl>$    $=l|‘§Ùé÷÷÷úúú÷úúúúúúúýþüüüüüüüüûüüüüü÷à�:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DI²´´´´´´´´´´´´´´´´´´´´´´´´´´´´²²²²²²²²²IIXcdcdcccdcdcccdcdcddcdccdccdcccddcccdccdccccccccdcgcccdccdcccccdcccdccdcgccccddcdcccdccdccccdcccdccccddccdccccccccT chhÁhÁÁhÁhhhhhhhÁhhh•h•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhÁ•hh•hhhhhhÁhÁhÁÁhhhhhhhhhhhhhhÁhhhhhhhhhhWVÇæ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üüúóó÷óó÷ó÷ó÷÷÷÷òòâך‘}p?=$     !$>lp‘§Ùâò÷÷÷ú÷úúú÷úúúúúüýþüüüüüüüüüûüüüúúæ�V,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´´²²²²²I²DXcdccdccdccdccdcdccgcdccccccccccdccccccdccddcccddcccccccdccccccdccccdcccccccccccccdccdcccccccccccddcccdccdccccccccT  UhhhhhhhhhÁhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhÁhhhÁhhhhhhhhÁhhhÁhhh•hhhhhhhhhÁhhÁhhhhhhhhhhhhhÁhhÁhhcVÇè÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýüúó÷÷ó÷ó÷ó÷÷ó÷÷óóñèÙÒš�spplC>>=>====>===========>>>>>>>>>=>>>========>>=======>>==>======>==>>==>>=>==>>>==>=>>==>>==========>===>>=====>==>>>=====>==>>>===========>==>>>>=>=>>==>===>======>>>===>>=====>======>=====>==>>===>>=====>?====A>=>==>A>==>================>=>>======>=>>=>===>==>==>=====>>>>=>>=====>>>>>===>=>>>>===>===>>=>>>=====>>=====>>>>====>=>=>==>>==>A>==>>>==>A>=========>===>==>===>=>>>>>>>==>A>=======>>=======>>>==>======>==>===>=====>A>=>=>>===????llv|}’šÒàèòõ÷÷÷÷÷÷÷÷÷÷ú÷úúúýþýüüüüüüüüüüüüüü÷è�V,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDDI´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²´²²²²ID²IXcdcdcccccdcccccdcccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccdccccdcccccccccT bhhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhh•hhhhhhhhhhhhÁhÁhhÁhhhhhhhhhÁhhhhhhhhÁhÁhhhhhh:-^Êèõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüýú÷÷÷ó÷÷÷óó÷÷ó÷÷÷÷óòñæàÙ׬§š’‘‘‘€‘‘€‘‘€‘€‘‘€‘€€‘‘‘’�‘’‘‘‘€‘’‘‘‘‘‘‘’‘‘’’‘€‘€‘‘‘’’‘‘‘‘‘‘‘‘�’‘‘’’€‘‘’‘‘‘€’’’‘‘’‘’’’�’’’�’‘�‘‘‘‘‘’’‘‘‘’‘‘�‘‘’‘‘’’’’‘��‘’‘€‘’’’‘‘‘�‘‘��‘’’‘‘’¤’‘’‘‘’’‘‘’‘’‘’’’’‘�’’¤’’‘’‘’’�’‘‘’’‘���‘‘�‘’‘‘’’�¤’��‘’’‘��‘‘¤¤‘‘’‘¤‘�¤‘‘¤¤�‘‘’’‘’’‘‘’‘’’‘‘’’’’’’’¤’’�’’‘¤’’¤’’’‘’¤’�¤’’‘���’‘¤¤¤¤‘‘’’‘‘‘‘‘¤’’’’‘‘‘‘’¤’¤’‘‘’‘�‘’‘�‘’’’‘’‘�’’‘’’�‘’’’’’‘�‘’‘¤’’‘€‘’‘‘’’’‘‘’‘’’‘’’’‘‘‘‘�‘‘�‘’‘‘‘‘‘‘‘‘‘‘‘’’‘’‘’‘’‘‘’‘‘‘‘‘‘‘’‘’¤‘€‘€€‘‘’’’€‘’‘‘‘‘‘‘‘€‘’‘€‘‘‘‘‘€‘’’’‘’’‘’‘‘‘’¤’¤¥§ÕÙàæôò÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷úüýþüüüüüüüüüüüüûüüúèÇV,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,DDII²´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´²²²IDDIDXcdccc# ;cccT    dhhhhhhÁhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhh•hÁhÁhhhhhhhhhÁÁÁhhhhhhhhhb-^Çæõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýýú÷÷óóóóó÷÷÷ó÷÷ó÷÷ó÷óóòòñññéèèèéèèèñèèèèèèéèèéèèèññééèèèèéééèèéèéñèéñèèèéèñéééñééññéôñññéééééñéôñôôôôôôôôôôôôôôôôôôõôôôôôõôõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ÷õ÷õõõõ÷õ÷÷÷÷ù÷õù÷÷÷÷÷÷÷ùù÷ùù÷ùù÷ùùùùùùùùøøøøøûùøùøûúûûøûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûøûøûøûøøøûùùùøùùùøùùùùùùù÷÷ùù÷÷ù÷÷ù÷õõ÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôôôôôôôôôôôôôôôéôôôôôôôôôôôôôéôôéôôôôôééôññéééôèéééééèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèééòò÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷÷ú÷üýþýüüüüüüüüüüüüüüü÷æÇ\-,,,,,,,,,,,,,,,,,,,,,,,,I´²´´´´´´´´´´´´´´´´´´²´´´´´´´´´´´´´´´´²I²²IIIDXccdccbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbcccT   UhhhhhhhhÁhÁhÁÁhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhÁ•hhf-^Çàò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üýüúó÷ó÷÷óó÷÷ó÷÷ó÷÷ó÷ó÷÷÷÷÷ó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷óó÷ó÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷÷÷÷ó÷÷úó÷÷ó÷÷úú÷÷úú÷ú÷úúúúúúúúúúúúúúúüüúüúúúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüýýýüýýýýýýüýýýýýýýýþýþýþþþþþþýþþþþþþþþÿþþþþþþþþÿÿþþÿþÿÿþÿÿÿþÿþþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿÿþþÿÿþÿþþþÿþþþþþþþþþþþþþþþþþþþþþþýþþþþýýýýýýýýýýýýýýýüýýýüüüüüüüüüüüüüüüüüüüüüüüúüúüüúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úþþüüüüüüüüüüüüüüüüü÷æ�V-,,,,,,,,,,,,,,,,,,,,,,DI´I²´´´´´´´´´´²´´´´´ID²DD´´´²´´²´´´´²ID²DD,,XcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT -bhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhh•hÁhhhgVV�àò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úþýúó÷ó÷÷÷÷÷óó÷ó÷÷ó÷÷÷ó÷÷÷÷÷÷÷÷÷ó÷÷÷ó÷÷óó÷÷÷÷÷úóó÷ó÷÷÷÷÷ó÷ó÷ó÷÷ó÷÷÷÷÷÷úóú÷÷ú÷÷ú÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúüúúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýýýýýüýýýýýýýýþýýýýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿÿþþÿÿþþþÿþþþþÿþþþþþþþþþþþþþþþþþþþþýýþýýýýýýýýýýýýýýýüýüüüüüýýüüýüüüüüüüüüüúüüüüúüûüúûúúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýþýüüüüüüüüüüüüüüüüü÷ß—U,,,,,,,,,,,,,,,,,I²´²D²´´´´´´²²´²D²²´²DDDDI²´²II²´´´IDD,,XcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT   dhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhc V—àô÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üýýú÷ó÷÷÷ó÷ó÷ó÷÷÷÷ó÷ó÷ó÷ó÷÷÷÷÷÷÷÷ó÷÷÷ó÷ó÷÷ó÷ó÷óóúó÷÷÷÷÷÷÷ó÷óó÷÷÷÷÷÷÷÷÷÷÷÷ó÷÷ú÷úú÷úúúúúúúúúúúúúúúúúúúúúúúúúüúüúúüüüüúüüüüüüüüüüüüüüüüüüüüüýüüüüüüüýüýüýýüýýýýýýýýýýþýþýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿÿþþÿÿþÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþþÿÿþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýýýýýýýýýýýýýýýýüüüüüýýüüüüüüüüüüüüüüüüüüüüúüúúúúüúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷üþþýüüüüüüüüüüüüüüüüüüõÙ›U,,,,,,,,,,,,,,DD²´´²I²´´´²²²I´ID,DIIDD,DIIDDIXcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT WhhhÁhhhhÁhhhhhhhhhhhhhhhhÁÁhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhÁhhhhhhhh•hhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhh•ÁhhhhhhhhhhW:—Ùé÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úýýüúó÷÷ó÷ó÷÷÷÷÷÷ó÷ó÷÷óó÷÷÷÷÷÷÷÷÷÷ó÷÷÷ó÷÷ó÷÷ó÷ó÷ó÷ó÷÷÷óóó÷÷ó÷÷óó÷ó÷÷÷÷÷÷÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúüüüüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüýüýüýýýýýýýýýþþýýþþþýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþÿÿþþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþÿÿþþÿÿþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýýýýýýýýýýýýýüýýýýýüüýüüüüüüüüüüüüüüüüüüúüüüüüüúúüúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷ò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþþýüüüüüüüüüüüüüüüúüüúôÙ–:,,,,,,,,,,II´´I´´´´´´²²DIIIII,DXcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccT -bhhhhh•ÁhhhhhhhhhÁhhhhhhhhhhhÁhhhhÁhÁhhhhh•hhh•hhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhc- ‚׿ò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüýþúúó÷ó÷ó÷÷÷÷÷ó÷ó÷÷÷ó÷óó÷ó÷÷ó÷÷ó÷÷ó÷ó÷÷ó÷÷óó÷óó÷÷óóó÷÷÷÷÷÷óó÷÷÷÷÷÷÷÷÷÷÷÷ú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüýüýüýýüýýýýýýýýþýýþýþýþþþþýþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþþþþþþÿþþÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿþþÿÿþþÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýýýýýýýýýýýýýýýýýýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüúúüúúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷òòó÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úüþþþüüüüüüüüüüüüüüüüüüüü÷æÊf0,,,,,,,,,I²²´²²I´´²²´²²ID,DXcbcbcccccccccccccccccccccccccccbcccccccccccccccccccccccccbcccccccbcbcccccccccccccccccccccccccccbcccccccccccccccccT  ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhg      ^Çàñõ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ò÷÷÷÷úüýýüüúú÷ó÷÷ó÷÷÷÷ó÷÷óó÷÷ó÷÷÷óó÷÷÷÷ó÷ó÷÷÷÷ó÷óóóó÷÷ó÷÷ó÷óó÷÷÷ó÷óó÷÷÷÷÷÷÷ú÷úúúúú÷úúúú÷úúúúúúúúúúúúúúúüúüúúüúüüúüüüüüüüüüüüüüüüüüüüüüüüýüüüüüüüýüüýýýýýýýýýýýýþýýýýþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþÿþÿþþþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþýþýýýýýýýýýýýýýýýýýýüüüüýýüüüüüüüüüüüüüüüüüüüüüüúúúüüúúüúúúúúúúúúúúúúúúúúúúúúúúú÷ú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õõ÷÷÷÷÷÷÷÷÷÷÷úúüüýþýýüüüüüüüüüüüüüüüüüüüüúõà�b-,,,DI´IID,IID,ID,XccccccccccccccccccccccccbbcccbccccccbcbccccccccbbbccccccccccccccccccccccccccccccccccccccbbcccbccccccbcbccccccccccT  WhhhhhhhhhhÁhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhÁhh•hhhX  V–Ùèõ÷÷÷÷÷÷÷÷÷÷õ÷÷÷÷÷÷÷÷÷÷÷úúüüüþþüüúúúúú÷÷÷÷ú÷úú÷ú÷÷÷úú÷ú÷÷úú÷úú÷ú÷ú÷ú÷÷ú÷÷ó÷÷÷ú÷úú÷úúúúú÷úúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüüýüýýýýýýýýýýýýýýýýýþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿþþþþþÿÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþþÿÿþþÿþÿþþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýüüüýüüüüüüüüüüüüüüüüüüüüüüüüúüúûúúúúúúúúúúúúúúúúúúúúúúúúú÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúüþþþýþýýüüüüüüüüüüüüüüüüüüüûüüúôÙ…U,---,,,,,,,,,,,,DDIDXcccccbcccccbcccccccccccbcbccbccccccccbcbccccbccbbbcccccccbcccccccccccbcccccbcccccccccccbcbccbccccccccbcbccccbccbcT  -chhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhd ‚Êàô÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúüþþþþþþþþþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþþþþþþþþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþþþÿÿÿÿþþþþþþÿþÿÿþÿþþÿþÿÿþþþþÿÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþþýþýþýþýýþýýýþþþþþþþýýýüüüüüüüüüüüüüýüüüüûüüüüüüüúõàÊ‚,,,,-UXbbb··KKKKJJJH--,--,,,,,,IDD,,,XcccbcccbbbbXXcccccbccccbbbcbcbbbcbcbcbbcccbbcccccccbcccbcbbcbbcccccbcccbbbccbcccccbccccbbbcbcbbbcccbcbbXbcbbccccbT Tdhhhhhhhhhhhhhhhhhhh�hÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhW  -V›×èò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúüüüüüüüüüüüüüüüüüüüüüüýüüüüýüüýýýýýüüýýüýýýýýýýýýýýýýýýýýýþýýýýþýýþþýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþþÿÿþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýþþþþýþþþþþþþþþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýýýýýüüüüüýüüüüüüüüüüüüüüüüüüüüüüüüüú÷è×–V-,-UbXXXc¹¶¶¶¶¶¶¶¶¶º¶º¹¹¹¹b,,,,,,Xccbcbccbbb@@@@YcbccccbccccccccbY@@bcX@@@bY@@YbcbccbccccbbbccbXbcccbcbccbbbccbcccbccccbccccccccbccccbbbcBXcbccccbbT  Xhhhhhhhhhh•hhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhh•hhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhb    �ÇÙñ÷õ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýýýýüüýýýýýýýýýýýýýþýýýýýýþþþýýþþþþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþÿþÿÿþþÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýüýýüýüýýüüüüüüüüüüüüüüüüüüüüûüüüüüüüüüüúõàÇ^0,MXXXXbbg¶µ¸¶¸µ¶¶¶¶¶¶¶¶¶¶¶¹,,,,,XbcbbbcbbbYYbb[@bccbcbbbbbcbccbb@[bbc@XbYY;Yb@YccbbbccccbbbbYbYbbbccbbbcYbbbbbbbbccbcbbbbbcbccbbcbbbcccb@XbbbccccbT   chhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhT   -:”×àñòõ÷÷ò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúúúúúúüûüüüüüüüüüüüüüüüüüüüüýüüýýüüýýýýüüüüüýýýýýýýýýýýýýýýýýýýýýþýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþþþÿþÿþþþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþþÿÿÿþÿÿÿþÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿþþþþÿÿþþþþþþþþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýýýýýýüýýüýüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúõæÊ…:,,WXXXbXbcºµ³³K¸µ¸µµµµº³µ¶¶¶b,,,,Xbbcbbbbbb@bcbb@BYcYXbBBb[B@bbbY;@BYb@bb[@@bcYYccbY@@YbbY@B@@bYbYBYcYB@Y=Yb@BbXbbX@YbbY@YYBBYXXYcY@YbbY@=XbbbbbccbT Tghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhb       ^›Êàñò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúúüüüüúüüüüüüüüüüüüüüüüüüüüüüüýüüýýüüüüýýýýýýýýýýýýýýýýýýýýýýýýþþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿþþÿÿþþÿÿþþÿÿþÿÿþÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþþþþþþþþþþÿþÿÿþÿþÿþþþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþýýþýþþþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüüüüüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúòàÓ›V--XXXbbXbc¹µµµµµµµµµµµµ³µµ¶¶¹,,Xbbbbbbbcb>Xbbb@Y@Y@X@YY@Y=YbbbY=YbBY@bb[@@Xb@Ybbb@YY>Y@XY;@@b@Y@[@Y@YY@=YX9YbbbbB@[bBYY@=BXX@YYY@Y@YY@Y>YbbXXbbbbT XhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhgM     [–×àñò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúüüüûüüüüüüüüüüüüüüüüüüüüüüüýýüüüüýýüüüüýýýýýýýýýýýýýýýýýýýýýýýþþþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþÿÿþþÿÿþþÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþþÿþþþþÿþþÿÿþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþýýþýþþþýýýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüüüüüüüüüýüüüüüüüýýüüüüüüüüüüüüüüüüüüüüüúõàÓ”Y,,bXbbbbbb¹µµµµµµµµµµ¶µµµ¶µµ»:,,Xbbbbbbbcb@YXbYAbY=Yb=@@YY@bbbbX@Xb@YBYbYB@[b@Ybcc@YcBY@bb@@Bb@@=@@X@YX@@XbY@XbbcY@@X>@@BAYbXA>[Y=B@Y@YbBYbbbbbbbbT  dhhhh•hhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhX           X›ÊÙèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúüúúúúüüúúüüüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüýüüýýýýüüýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþÿþÿÿþþÿÿþþÿÿþþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿþÿÿþÿÿÿþÿþÿþþþÿÿþÿÿþÿÿþþþÿþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýýýýýüüüýüüýüüüýüüüüüüüüüüüüüüüüüüüüüú÷ñàÊ–VbbbXbbbd¾»»»»»»»»¶¶¶¶¶¶µµµ»UXbbbbbbbcbb@B@@YbX;XX@@@YY@bbXbbY@@@bb;@>XYA@BbbXb@@BBb@@@>@Yb@Y@BBbBXY@@bXB@Ybbb@@@XY>@@@YbbY@bX@BBbY>B=YbbbbbbXbTUhhÁhhhhhhhh•hhhhhhhhhÁhhh•hhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhh�hhhhhhhhhhÁhhhhhhhhÁh•hhhhhhhhhhhhhhc          Y“Ç×àèò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúûúúúúúüúúúüúüúüüüüüüüüüüüüüüüüüüüüüüüüüüüüýýüüýýýýüýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþþÿþþÿÿþþÿÿþþÿÿþÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþÿþþÿÿþÿþÿþÿþþþÿþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýþþýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýýüýýýýýýýüüýüüüüüüüüüüüüüüüüüüüüüüüüúúôàÙÇ‚V-,-bXbbbbcgÁÁÁÁÁÁÁÁÁÁÁÁ¾Á¾Á¾Á¾T,,,,XbbbbbbbccbbYYbbbbXbXXYXbbbbbbXbbY[bbbbYXXbYYbbbXb@YYbbbYYXXbbXbbYXbXbb[bbbY[bbbXXXXXXXYbbbbbXXbbbYbXbXYXXbbbbbbbbT  -bhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhU              -:^—ÊÙâéò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúüüúüüúúüüüüûüüüüüüüüüüüüüüüüüüüýýýüüýýüüüüýýýýýýýýýýýýýýýýýýýýýþýþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþÿþþþÿÿþþÿÿþþÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿÿþÿÿþÿÿÿÿÿþÿþÿÿþþþÿþÿþþÿÿþþþþþþþþþþþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüüüüüüüüüüüüüüüýüüüüüüüüüüüüüüüú÷òèÙÇ›^-Ubbbbbc¹¶¶»»¹»¹¾¾¾¾ÁÁÁÁÁÁÁg,,,XbbbbbbbbbbbbbbbXXbbbXbbbbbbXbXbbbbbbXbbXXbbbbbbbb@XbbbbbbbbXbbbbbbbbXbbbbbbbbbbXbXbbXbXXbbbbXXbbbbbbbbbXXbbbbbbXbT  ghhhhÁhhh�hhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb           -V��ÓÙàèñò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úú÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúûúûúüüúüüüüüüüüüüüüüüüüüüüüüüüüüüýüýüýüüýýüüüýýýýýýýýýýýýýýýýýýýþýþýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþÿþþÿþÿÿþþÿÿþÿþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿþþÿÿþÿÿþþÿÿþþÿþþÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýþýýþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüýüüýüüüüüüüüüüüüüüüüüüüüüüüüüüüüúõèàÙÊ—a:-,Xcbcc¹¶µµµµµµµµµµµµ¶¶¶¶º»c,,,,,,XbbbXbXbbbbbbbbbXbbbbbXXbbbbXbXXbXXbbbbbbXbbbbbbbbbbXbbbbXbbbbbbbXbbXbXbbbbbbbXbXbbbbbXXbbbbXbXbbXbbXXbbbXbbbbbbbbT  VhhhhhhhÁhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhdM        :^”�ÊÙàæéñòò÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷úúúúúúúúúúúúúúúúúúúúúúúúúúúúúüúúüúúúúüüúüüüûüüüüüüüüüüüüüüüüüüüüüýüüüýýüüýýýýýýýýýýýýýýýýýýýýýýýýýýýýþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿþþþþþþþÿÿþþÿÿþþÿÿÿþÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿþÿþþÿþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýýýýýýýþþýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýüüýüýýüýüüüýüýüýüüüüüüüüüüüüú÷÷÷ôèà×Ê�–^:Xbcc¸µµ¶µ¶¶µµµ¶¶¶»¶¶µµµ¹,,XXXbXbXbbXXXbbXXbbbbbbXXbbbbbbbbXXbXbXbbbXbXXXXbbXbXbbbbXbXbXbbbbXXbXbXbbXXXXXbXbbbbbbXbbbbbbbbXXXXbbbbbbXbXbXXbbbT chhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhÁh•hhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhÁÁhÁhhhhhÁhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhb          Va‚›ÇÓ×Ùßàâææèèñôñôñôñôñôôééôéôñééññññññññôôôôôôôôôôôôôôôôôôôôôõôôôôôôõôôôôôõôôõôõôôõõõôõôòõõõõõõõõõõõõõõõõõõõõõõõõõ÷÷õ÷õ÷õ÷÷÷÷÷÷ù÷÷÷÷÷ùùùùùùùùùùùùùùù÷ù÷ùùùùùùùùùùùùùùùùùùùùùùùùúùùùùùùùúúùùùúùùùùúùúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúùúúúúúùùúùúúúùúúúúùúúúùúúùù÷úùùúúùùù÷úùùùù÷÷ù÷ùù÷ùùùùùùùùùùùù÷÷ùù÷ù÷ùùùùùù÷÷÷÷÷ùù÷÷÷÷÷÷ùùùùùùùùùùùùùùùù÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷õ÷õõ÷õ÷õ÷õ÷÷õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõòõõòôõõõõõôõõôôôôèèèæâàÙ×ÓÇ–�^U,F,,KKJK··³¸¶»»»»¶µµ¸M,XXXXbXXXXbXXXXXXXbbbbbXbbbXbbbbXXXbbbXbbbbXXXbXXXbXbbbbbbbXbbbXXXXXXXXbXXXXXXXXXXbbbbbXXbbXbbbXXXXbbbbbbbbXXXXXXXbT     TdhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhg                  :V_”›�����ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÊÊÊ××××××××××××××××××××ÙÙÙÙÙÙÙÙÙÙÙÙÙÙààÙÙÙÙÙÙÙ×××××××Ó×××××ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÇÊÊÇÊÊÇÇÊÊÊÊÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ���›�›ƒ^U",,-----J--,,XXXbXXXXbXbXbXXXXbbXbXXXbXbXbbXXXXbXbbbXbXXXXXbXXXXbXbbbXbXXXbXXXXXXbXXXXbXXXbXXbXbbXXXXbXbXXbbXXXXbXbXXbXXbXXbXXXT  XhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhh•hhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhÁÁhhhhhhhhhhhhhhhÁhhhhhW                    -0:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::":^h••ÂÂÄËËÈËÈÈÍËÎÍÍÍÎÏáááççççðçññòñññòòòòññáÑÑÏÏÏÍÍËÄÃÆÂÁÁ•„hfddac[XXXXXV@TVV;V;;T@@VV:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::M--,,,,,XXXbXXbXXXXXXXXXbbXXXXXXbbXbXXbXXXbXbXbXbXbXXXXXXXbXbbbXXbbbXbXXXXbbXbXXXXXXXXXXXXXXXXXXXXXbXXXXbXbXXXbXbbXXXXXXXXT  chhhhhhhhhhhh•hhhhhhhhhhhhhhhhhÁh•hhhhhhhhÁhhhÁhhÁhhh•hhhhhhhhhhhhhhÁhÁhhhÁhhÁhhÁhÁhhhhhhhÁhhhhhÁhhh•hhhhhhhhhhhhhh•hhhhhhhhhhhÁhhhhhhÁhc                         XghhÁÄÄÍÍÍÍÍÍÍÍÍÍÑÐÐÑÑÑÑÑðððððððóóóó÷óóóóòððïÑÍÐÍÍÍÄÄÄÁÁhhhdccXXTTTTT,,XXbbXXXXbXXXXXXXbXXXXXXXXXbXbXXbXXXbXXXbXXXXXXXXXXXXbXXXbXXXXbXXXXbXbXbXXXXXXXXXXXXXXXXXXbbXXXXXXXXbXXXXXXXXXXbXbXT Thhhhhh•hhÁhhhhÁhhhhhhhhhhhÁhhÁhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhh•hhÁhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhÁhhhhhÁh•hhhhhhhÁhhhhhh•hg:                            XghhÁÄÍÄÍÍÍÐÐÍÐÍÐÑÐÑÐïÑïïððððñòóóòóúóúúóóñòðÑÑÑÍÍÍÍÄÄÄÁÁÁhhdccbXXXTT,,,,,,XXXXXXXbXbXXXXXXXXXXXXXXXXXXbXXXXbXXXXXXXXXXXbXbXXXXXbXXXbXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXXXT  bhhhhhhÁhhhÁhhhhhhhhhh•hÁhÁhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhh•hhhhhhhhhhhh•hÁhhhhhhhhhhhhÁhh•hhhhhÁh•hhhhhhhhhhhhhhhhhÁÁÁhh�hhhhÁhhhhhhhÁhhÁÁb                                    -XghÁÄÄÍÍÍÑÍÍÐÑÑÑÑÍÐÑÑÑïïïðòððòòòòóóóóúúòóðððÑÑÐÍÍÍÄÄÄÁÄÁÁhhdccbXXXTT",,XXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXbXXXbXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXbXXXXT   chÁhhÁhhhhhhÁhhhhhhhhh•hhhhhhhhÁhhhhÁhhhhhh•hhÁhhh•hhhhhhhÁhhhhhhhhhhhhÁhhhhhhhÁhhhhhh•hÁÁhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhÁÁhhhhhhhhhÁÁhhhhhd                             -XhÁÂÄËÍÐÐÐÑÑÑÑÑÑÑÑÑïÑÑÑïððððòðóòóúóóúóóóóððððÑÐÑÍÍÍÄÄÁÄÁÁhhgccbbXXTTTTUWWTTTXXTFFTWXXXXXbXXXXXXXXXXXXTXXXXXXXXXXbXXXbbXXXXXXXXXXXXXXXbXbXXXXXXXXTUXWTTXXXXXXXWXXXXXXXXXXXXXXT Whhhhhhhhhhhhhhhhhhh•hhhhhhhÁhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhÁhhhh•Áhhhhhhhhhhhhh•hÁhhhhhhÁhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhW                               XhÁÄÄÍÐÑÑÑÑïÑÑÑÑÑÑÑÑÑïððððçòðòóòó÷òóüúóóóððððÑÑÐÍÍÄÄÄÄÁÁÁhhggdbbXXXTT,TTXXUTTTXXXXXUTTXXXbXXXXXXXXXXXXXXXTTTXXXXXXXXUFUXXXXTXT   -bhhhhhhhhhhhhÁhhhhhÁhhÁ•hhhhhhÁhhÁhhhhhhhhhhÁhÁhÁhhhhhhhh•hhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhh•hhhhÁÁhhhhhhhh•ÁÁhhhhhh•hhhhhhÁhÁhhhhd                                        -bÁÁÄÍÍïïÑïÑÑÑÑÑÑÑÑïÑïððððððñòðòóóóóóúúóóòñððÑÑÐÍÐÍÍÄÄÄÄÁÁÁhddcbbXXXTTT,,,FTXXXXXXXXXXXXWFXXXXXUTXXX   ghhhhhhhhÁhÁhhhhhhhhÁhhÁhhhÁhhhhhhÁhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhÁhhhhhhhhhhhhÁhhh•hhhhhhhhhhhhhhÁhhhhhhhhhU                                                          -bÁÁÄÍÐïïððÑÑïÑÑÑÑÑïÑïïðïðððóóðòóóóóóóúóúòðòðïÑÐÐÍÍÍÄÄÄÁÁÁhhddcbXXXXTTT,, UhhÁhÁhhÁhhhhÁhÁÁhÁhhhhhhhhh•hÁhÁhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhh•hhhÁhhhhhhhhhhhhhhhhÁÁhhhhhÁhhÁhhhÁhÁhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁ�hhhÁc                                                        -bÁÄÄÍÑÑÑïïïÑïÑïÑÑÑÑÑÑïïðïððððòóòóóóóóúóóóòòðÑÑÑÑÍÍÍÄÄÄÁÁÁhhhcccbXXXTT",   bhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhÁh•Áhhhhhhhhhh•hhhh•hhhhhhhhhÁÁhh•hhhhhhhÁhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁÁhhÁhhhhhhhhhhhhhh•hhhh•hhg                                                   -cÁÄÍÍÑïïðïïïïÑïÑïÑÑÑÑïïðçððððððòóúóúüüúóòòððÑÑÑÐÍÍÍÄÄÄÁÁÁÁhdccbbXXXTTT,     MdhhhhhhhhhhÁhhhhhhÁhhhhhhhhhh•hhhhhhhhhhhhhÁhhh•hhhhhÁhÁÁhhÁhhhhhhhhh•h•hhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhÁh•hhhÁhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhX                                                    -cÁÄÍÍÑðïðïïïïðïÑÑÑÑÑïðçððòðððóóòóóóóóóóóòðððïÑÐÍÍÍÍÄÄÄÁÁÁhhhgccbXXXTT""""",      XhhhÁhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhh•hhhÁhh�hhhhhhhhhhhhÁhhhhhÁhhhhÁhÁhhhhhhhhÁhhhÁhhhhÁhhhhhhhhhhÁhhhhhhhÁh•hÁhhhhh•hhhhhhhhhhhhhh•hhhhhhhhhg                                                         -cÁÄÍÐÑïïððïïïÑÑïÑÑðïÑïÑðððïððñóòóóúóóúóóóòððïÑÑÑÐÍÍÄÄÁÁÁÁhhhccbbXXUTT""T,   chhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhÁhhhhÁhhhhhhhhhÁhhhhÁÁhhhhÁhhhÁhhhhÁhhhhhhhÁhÁhhÁhhÁhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhÁhhhhhhhhhU                                           -cÁÄÍÍÐïðïÑÑïðÑïïïïÑÑïðïðòïòòòóðòóóóóüüúúóððÑïïÑÐÍÍÄÄÄÄÄÁÁhhhgcbbXXUTT""",      TghhhÁhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhÁÁh•hÁÁhhhh•hhhhhhhhÁh•h•hhhhhhhhhhhhhhhhhhhhhÁh•hhÁhhhhhhhhhhc                                                           -cÁÄÍÍÑïðïððïïïÑÐïÑÑÑïðïððððððóóóóóóóóóúóóðððÑÑÑÐÍÍÍÄÄÄÁÁÁhhgdcbXXXXTT"T"",,          XhhhhhhÁhhhhhhhÁhhhhhÁhhÁhhhhhhÁÁhhhhhhhhhhhhhhhhÁhhhhÁhhhÁhhhhh•hh•hhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁhh•hhhhhhhhhÁhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhh:                                                         -cÁÄÍÍÑïïðððÑïïïïïÑÑÑïïïðïðððððòòóóóóóúóóóòððïïÑÍÍÍÍÄÄÄÁÁÁhhhcccbXXVTT"""T,            chhhhhhhhhhhhhÁhhhhhÁhÁhhhhhÁhhhhhhhhhh•hhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhh•hÁhhÁhÁhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhh•hhhhhhÁhhhhhhhhhhhb                                                          -cÁÄÍÐÑÑðððïÑïðÑïÑÑÑÑïçðïòðððòðóóóóúóúüóóòòððïÑÑÑÍÍÍÄÄÄÁÁÁÁhgdcbbXXTUT"""",,,              ThhhhhhÁhhhhhhÁhhhhhhhhhhhhhhÁhÁhhhhhÁhhhhhhhhÁhÁÁhh„hhhhhhhÁhh•hhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhÁhhhhhhhh„hÁhhhÁÁhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhÁhhh                                                           cÄÄÄÍÑïðððïïðÑÑÑÑÑïÑÑÑðïððððòóóóòóóóüúóóóòðïÑÑÑÐÍÍÄÄÄÄÁÁÁhhdccbXXXXTTT,           bhh•hhhhhhÁÁhhÁhhhh•hhhhhÁh•hhhÁhÁhhÁhhhhÁhhhÁhhhÁhhhhh•hhhhhhhÁhÁhhhhhÁhhhhhhÁhhÁhhÁhhÁhhh•hhÁ•hhhhhhhhhÁhÁhhhhhhhÁÁhhhh•hhÁhhhhhÁÁÁhÁhhhÁh•ÁÁÁhÁhhhX                                                                    -cÁÄÍÍÑðððïðÑÑÑÑÑðÑïÑïÑçððððððòóóóóóúüóúóòðððÑïÑÍÍÍÄÄÄÁÁÁÁhhhdcbbXXXTT",              dÁhÁhhhh•hÁhÁhhhhÁhÁhÁhhhhhhhhhhhÁhhhhhÁhÁhÁhÁhÁhÁhhhhhhhÁhhÁÁhhÁhhhhhhhh•ÁhÁhhhhhÁ•hhÁÁh„hÁÁhhhhhhÁhhÁhhhÁ•hhhhhhhhhÁÁÁhhhÁÁhhÁhhhÁhhhÁhÁhhhÁÁhhÁÁhÁg                                                           -cÄÄÄÍÑððïÑðÑÑðÑÑðÑÑÑïïððïðòðððòóóóòóóúóóóòòðÑÑÑÐÍÍÍÄÄÄÄÁÁhhgdcbbXXTTT""T"T",                XghhhÁhhhhhhhhÁhhhhhhÁÁÁhhhhhhhhhhhh•hÁÁÁÁhh•hhhÁhhhÁhhhhhÁhhÁhhÁÁhÁÁÁ•hhhhhÁhhhhhhhhhÁhÁhÁhhhhhhhhhhhÁÁhhhÁhhhhhhhhhhÁhhhÁhÁhÁh•hÁhhhhhhhhhhhhhhhhhÁÁh:                                                                 -cÄÄÍÍÑïÑðïïïðïÑÑïÑÑÑïçððïòòðððòóóóóóúüóóóòðïÑÑÑÐÍÍÍÄÄÁÄÁÁhgggcbXXXTTT""              bhhhhhhÁÁÁÁhÁhhhhhhhhhÁhÁhhhÁÁÁhhhhhhÁhhhhhÁhhÁÁhhhhhh•hhhhhhhhhhhÁhhhhhhÁhhÁhhÁhhhhhhhhhhhhÁÁhÁÁÁÁhÁhhhhhÁÁhhhhhÁh•hhhhhh•hhhhhÁhhÁhhhhhhhhhhhhhhÁÁhhhc                                                           -cÁÄÍÍÑïïðððïïïïÑïÑÑïÑïððððððððóóóòóóóúüóóóðïïïÐÍÍÍÍÄÄÄÄÁÁhhgdccXXXXTT"""                    dhÁhhhhhhhÁÁÁhhhÁhhhhhhhhhÁÁhhhhhhÁhhhÁhÁÁhhhÁhhÁhhhhhÁhhhhÁÁhhhhhÁhhhhÁhhhhhhhh•ÁhhhÁhhhhÁhhhhhhÁhhhhhhÁhhÁhhhÁÁhÁhÁh•hhhÁÁÁÁhhhhhhhhÁhhÁhhhhÁhhÁhhhhhgM                                                            -cÁÄÍÍÑïððÑðÑïïÑÑÑÑÑïÑÑïðïððòòðòóóóóóóóúóóòððïïÑÍÍÍÄÄÄÁÁÁÁhhhcccbXXXTTT"" ,,,             XhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁÁhhÁhhhÁhhhÁhhÁÁÁhÁhhhhÁhhhÁhÁhhhhÁhhÁhÁhhhhhhhhhhhhhhhhhÁhhÁh•hhÁÁhhhhhhÁhhhhhhhÁhhÁÁÁhhhhhhhÁhhhhÁÁhÁhhhhhhÁhb                                                                         -cÁÄÄÍÑïðïïðïÑÑÑÑïÑÑÑðïïððððððóóóóóóóúóó÷óòððÑÑÑÐÍÍÍÄÄÄÁÁÁhhhdccXXXXTT"T"                 chÁhhÁÁhhhhhhhhhhhhhhÁÁÁhhhhhhh•hÁÁhhhhhhhhhhhhhhhhhhhÁhÁhhÁhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhÁhÁhhhhhhhhhÁhhhhhhÁÁhhhhhhÁÁhhÁhhhhhhhhhÁhhhhhÁhhhhhhhhÁhhh•hhhhg                                                                         -cÁÄÍÍÑïðïðððïÑÑïÑÑÑÑïðïðððððòóóóóóóóúúóúóòððÑÑÑÑÍÍÍÄÄÄÄÁÁhhhdcbbXXUTT"TT"               ThhhhhhhhhhhhhÁhhhÁhhhhÁhh•hhhhh•hÁhhhhhhÁhhÁhhÁhh•ÁhhhhhhhhhhhhhÁÁÁhhhhhhÁh•hÁhhÁÁhhhhhhhhÁÁhhhhhhhÁÁhÁhhhhÁhhhhhhhhhÁhÁh•hÁhhÁhhÁh•ÁhhhhhhhhhhÁhhhhÁhÁhhhU                                                                    -cÁÄÍÍÑïðïðïðÑïÑÑÑïÑÑÑïððððòòððòðóóó÷úüúúòðððïÑÑÐÍÍÄÄÄÄÁÁÁhhdccbbXXUTTT""                                XhÁhÁhhh•hhhhhhÁhhhhÁhhhÁhÁh¾ÁhhÁhhhÁÁhhÁhhhÁhhhÁhhhhÁhhhhhhhhÁÁÁÁhÁhhÁh•ÁhhhhhhÁÁhhhhÁhhhhhhhhhhhhhhÁhhhÁÁhhÁÁÁhhÁÁÁhÁÁhÁÁÁhÁhhhhhhhÁÁhhhhÁhhhÁhhhÁhÁhhÁÁhb                                                                        -cÁÄÍÐÑïïððïÑïïïïÑÑÑïÑðððððððòðóóóóóóóóú÷óððððÑÐÑÍÍÍÄÄÄÁÁÁhhhccbXXXTTTT""""                  dhhhhhhÁÁÁhhÁhÁÁh•ÁhÁÁhhhhÁÁÁhÁhÁÁhhhÁÁhh¾hhhhhhÁhÁÁhhhhÁhhhÁhÁhhhÁhÁhhÁhÁhhÁhÁhÁhÁÁhhÁhÁhhhÁÁÁhÁÁÁhhhÁÁhhhÁhhhÁÁÁhÁhhhhhhhhhhhhhhhhhÁhhÁÁÁhÁhhhhÁhhhhhhhhhg:                                                                cÁÄÍÍÑïïïððÑÑïïÑÑÑïïïïðïÑðððððóóóóúóúóóúóòððïÑÐÐÍÍÍÄÄÄÁÁÁhhhgccbXXTUT"",-------,------------,-------------------------------,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------UhhÁÁhhhhhhÁhhhhhÁhÁhhÁÁhÁhhhÁhhhhhhÁhÁhhhÁÁÁhÁhÁhÁhÁÁhhhhh•hÁhhhhÁÁhhhhhhhÁÁhÁhhÁhhÁÁÁhÁ•hhhhhhhÁhÁÁhÁhhhhÁÁÁÁhhhÁhhhhhhhhhhhhÁhÁhh•hhhh¾ÁhhhhÁhhhhhhhÁÁÁhÁhb----------------cÄÄÍÍÑïðïïððððÑÑïÑÑÑïÑïïðððòðóóóóóóóúúóóóðððïïÑÍÍÍÄÄÄÄÁÁÁhhddcbbXXXTT"""""--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,----------------------------,------------,---,--,-----gcdggggdggcdggggggggggdgcggcgggdggggggccggggggggggcgggggcgdcgggcgggcggggcggcggggdggggggcggcgggggccggcggcgggggdgggggggggggggggggggggggggggggggcggcgcgcggcggggggcgggccggcgdgggggggcggggcgggcgggggggggdgggcgdgcgggggcgcggggggggdgcgggcdggggggggggggggcgggdcdggcgcgggddggggggggcggggggcgggggdgggggggggggggggggddggcgggdggcgdgggggggggdgdgggggggggdggggcdgggdghggggddgdgggggggggggghgddgggggdggggddgggggchggggggggggdcgggdggdggggggdgggggdgggggggcdggghÁÁÁhhÁÁh•ÁÁÁhhÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁhÁÁhÁhÁhhÁÁhÁhÁ•hÁhÁÁÁhhÁÁhÁÁÁÁhhÁÁhhÁÁÁÁhÁÁÁhÁhÁhÁÁhÁhÁÁÁÁhhhÁÁÁhÁhÁÁÁhÁÁÁÁÁhÁhÁÁÁhÁÁhhhÁÁÁÁhÁÁÁhÁhgggggggggggggggddcdggddgchgggggggggggggdgghgggggggchcggggggggggggggggggdgggggdcdgggddggghggggddggggggggghggdgggggghggddggggdghgggdcdgggddgggggggdggggggggggdgggggghcdggggggddggddgggggdggggddghgdghgggggggggggggdggggghggggggdgggggdggggggdggddggggddggggddgdggggcgggggdggggggggcddggddgggdgggghgddgggggdggggggdggggcggggddghÁÄÍÐÑïððïïïÑÑÑïïïÑÑïÑðððððððóòòóóóóóüóóóòððÑÑÑÐÍÍÍÄÄÄÁÁÁÁhhddbXXXXTT""cgddcggcggcgggggggdcggdcdcgcgcgggddgggggggccggggggcgggggcggggggcgggggggggggggggggggcgggdgcgggggcgggggggcgggcggcggcggggggcgcgggggcgggcggcgggggcgggggggggggggggggggggggggcgggggcgdcgcgcggggggggcggggcggdggcgggcgggcgggccgggcgggggggggggggcggdgggggggdgggggggggggggghgggdgggggggggggggggggggggggcgghÁÁÁÁÁhÁhÁÁÁÁÁhÁhhhÁÁhhÁh•ÁÁÁÁhÁhÁÁhÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhhhÁÁhÁÁÁÁhÁÁÁÁÁh•hÁhÁÁÁhÁhÁÁhÁÁÁÁhÁÁhÁÁÁÁÁhhÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁhÁÁÁÁÁÁhÁÁÁÁhhhÁÁhÁÁÁÁhÁÁÁÁÁÁhÁhhÁÁÁhÁÁÁhhÁÁÁhÁhÁhhÁÁÁÁÁhÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhhhhÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁhÁÁhhhhÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁhÁhÁÁÁÁÁhÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhhhÁÁhÁhÁÁhÁÁÁÁhÁÁhhÁhÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁhÁhÁÁhÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁhhÁÁÁÁÁÁÁhÁÁÁhÁÁhhhÁÁhÁhÁÁÁÁhÁÁhÁÁÁÁÁhÁÁhÁÁÁhÁÁhÁÁhÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhhÁÁhhhhhÁhÁÁÁÁhÁhhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁh„hÁÁÁÁÁÁÁÁhÁÁÁÁÁhhhÁÁhÁÁhÁhÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁhÁÁÁÁ•ÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁhhhÁÁhÁhÁÁÁÁÁÁÁÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁÁÁhÁhÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhhÁÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁhhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁh•ÁÁÁhhÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁh•ÁÁÁh•hhÁÁhÁÁÁÁhÁÁÁÁÁhhhÁhÁÁÁhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁ•ÁÁhhh•ÁÁÁÁhÁÁhÁÄÄÍÍÑÑðððïïïÑïÑÑÑÑÑïÑïðððððððòòóóúóúúóóóòððïÑïÐÍÍÍÄÄÄÁÁhhhccccbXXTTT""""ThÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhhhÁÁÁÁÁÁh•ÁÁÁÁÁhÁhhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhhhÁÁ•ÁÁÁÁhÁÁÁÁÁh•hÁhÁÁÁhÁhÁÁhÁÁÁÁhÁÁhÁÁÁÁÁhhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhhhÁÁhÁÁÁÁhÁÁÁÁÁÁhÁÁhÁÁÁÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhhhÁÁÁÁÁÁÁhÁÁÁÁhhhhhÁhhÁÁhÁÁÁhÁÁhÁhhhhhhÁhhhÁÁhÁhhhÁÁhhÁÁÁÁÁÁÁÁÁhhÁÁhÁhÁÁÁhÁÁhÁÁhÁÁhÁhÁÁhÁhhhÁhÁÁhÁÁÁÁÁhhÁhÁhhÁhÁÁÁÁÁhÁhÁÁhhhhhhhhhhÁhÁhÁÁhhÁÁÁÁhÁÁÁÁhhÁÁÁÁhÁÁhhÁhÁhhÁhhhÁÁhhÁÁhhhÁhÁÁÁhÁÁÁhhhÁhhhÁÁhÁÁÁhÁÁhÁhÁhÁhhhhhhÁhÁÁhhÁÁÁhhÁÁÁhÁÁÁÁÁhhÁÁÁhÁÁhhÁÁÁhhÁhhÁhÁhÁhÁÁhhhÁÁÁhÁÁÁÁÁÁhÁhhhhhÁhÁhhÁhhÁhhhhÁÁhhhhÁhhÁhhhÁÁhhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhÁÁhÁhÁhÁhÁhÁhÁÁhhhÁhÁÁhÁÁÁÁhhhhhhhhhhÁÁÁÁÁhÁhhhhhhÁÁhhhÁhÁhÁhhÁhhÁÁÁÁhÁÁÁÁÁhÁhÁÁhÁÁhhÁÁhÁhÁÁhÁÁÁhhhÁhhhÁhÁÁÁÁÁÁÁÁhhÁhhhÁÁhÁhhÁÁhÁhhÁhÁhhhhhÁÁhÁhÁhÁÁÁhhÁÁÁhhÁÁÁÁhÁÁÁhÁÁÁÁhÁÁÁhhÁhhÁhÁhÁhÁhhhÁÁÁÁÁÁÁÁÁÁhÁÁhhhhÁhÁhÁhÁÁhÁhÁhhhhhhhhÁhhÁhhhÁÁhÁÁÁÁhhÁÁÁÁhhÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁhÁhÁÁhhhÁhÁhÁÁÁÁÁhhhÁhhhhÁÁÁhhÁÁhÁhÁhhÁhÁÁhhhhhÁhÁhÁÁhhÁÁÁÁhÁhÁÁÁhÁÁÁhÁÁÁÁhÁhÁhhÁhhÁÁÁÁhÁÁÁhÁhhÁÁhÁÁÁÁhhhÁhhhÁÁhÁÁÁhÁhhÁÁhhÁhÁhhhÁhhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁhhÁhÁÁÁÁÁhhÁÁÁhhÁhhÁhÁÁhhÁÁhÁhhÁÁÁhÁÁÁÁhhÁhhÁÁhhÁÁÁhÁÁÁÁhÁhÁÁhhhhhÁhhÁhhhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁhÁÁhÁÁÁhÁhÁhÁhÁÁhhhÁhÁÁhÁÁÁÁÁhhÁhÁhhÁhÁÁÁÁÁhÁhÁÁhhhhhhhhÁhÁhÁhhÁhhÁÁÁhÁÁÁÁÁÁhÁhÁÁhÁÁÁÄÍÐÑïððÑïïïïÑÑïÑÑÑïÑïðððòòóòóóòóúóúüú÷óðððïÑÐÍÍÍÄÄÄÄÁÁÁhhhgccbXXXTTT""TThhhÁÁÁhhÁhhÁhÁhÁhÁÁhhhÁÁÁÁÁÁÁÁÁÁÁÁh•hhhhÁÁÁhÁÁÁÁhhhhhhÁhhhÁhhÁhhhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁhÁÁhÁhÁÁÁhÁhÁhÁÁhhhÁhÁÁhÁÁÁÁÁhhÁhÁhhÁhÁÁhÁÁhÁhÁÁhhhhhhhhhhÁhÁhÁÁhhÁÁÁÁhÁÁÁÁhhÁÁÁÁhÁÁhhÁÁhhhÁhÁÁÁhÁÁhÁhhhÁhÁÁÁÁÁÁÁÁhhÁhhhÁÁhÁÁÁhÁhhhhÁhÁhhÁhhhÁhÁÁhhhÁÁhhÁÁÁhÁÁÁÁÁhÁÁÁhÁÁÁhÁhÁÁhhÁhhÁhÁhhhÁhhhÁÁÁÁÁhÁÁÁÁhbbcbcbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbXbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbXbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbXbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbchÁÄÍÍÑïÑïðïïïïÑÑÑÑÑÑÑÑððïðòððóòóòóóóóúóóóòððÑÑÐÑÍÍÄÄÄÄÁÁÁhhhgccXXXXTT""TbbbbbbbbbbbbbbbbbbbbcbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcbbbbbbbbbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbhÁÄÍÐÑïïðððïÑïÑïÑïÑïïïðððððððóóóòóúóóóóóòðððïÑÑÐÍÍÍÄÄÄÁÁÁhhgdccbXXXTT""XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXbXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXbXXXXXbXXbXXXXXXXXbXbXXXXXbXXXXXXXXXXXXXbXXbXXXXbXXbXXXXbXXXXXXXXXXXXXXXXbXXXXXXbXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXbXbXbXXXXbXXbXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXbXXXXbXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXbXXXXXXXXbXXXXbXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXbXXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXbXXXXbXXXXbXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXbXXXbXXXbXbXXXXXXXXXbXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXbXXXXXXXbXXXbXXXXXXXXXXXbXXbXXXXbXXXbXXXXXXXXXXXXXXXXbXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXbXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXbXXXXXbXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXbgÄÄÍÍÑïððððÑÑðïÑÑïÑÑïïïðïððòóóòóóóóóóúóóóóððïÑÑÐÍÍÍÍÄÄÁÁÁhhhcccbXXXUT""T""XXXXXXXXXXXXbXXXXXXbXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXbXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXbXXbXXXbXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXbXXbXXXbXXXXXXXbXXXXXXXXXXXbXXbXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXXXbXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXbXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXbXXXXXXXXXXXXXXbXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXbXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXbXXXXbXXXbXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXbXXXbXXbhÁÄÍÍÑïðïïïïðïÑÑÑÑïÑïÑððïððððóòòóóóóóüó÷óòððÑïÑÐÍÍÍÄÄÄÁÁÁhhhgccXXXXTT"""XXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXbXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXbXbXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhÁÄÍÐÑÑððïïïïÑïÑÑÑïÑÑÑïðïððòðóóòóóúóóúúúóòððïïÐÍÍÍÍÄÄÄÁÁÁÁhdccbbXXUTTT"TTXXXXXXXXXXXXXXXXXbXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXhÁÄÍÐÑïðïðïÑïÑïÑïÑÑïÑïðððððððóóòòóúúóúóóòðððïÑÑÍÍÍÍÄÄÄÁÁÁhhgdcbbXXUTT""T"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXgÁÄÍÍÑðððððïðïïðÑÑÑïïïïððððððóóòóòóóúóúúóððïÑïÑÐÍÍÍÄÄÁÁÁhhhhgccbXXTTTT"WXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXUXXXXXXXXXXXWXXXXUXXXXXXXXXXXXUXXXXXXXXWXXXXXXUXXUUXXUXXXUXXXUUXXXXXXUXXXUXXXXXXXXXXXXXXXXUXXUUXXXXXXUXXUXXXUXXUUXXUUXXUUXXUUXXXXXXXXXXXXXXXXXXXXXXXXXXUUXXUUXXXXWXXXXXUXXXUXXXXUXXUUXXWUXXTXUXXXXXXXXXXXXXXXUUXXUUXXUUXXXXXXUUXXUUXXUVXXUUXXUXXXUUXXXXXXXUXXXXXXUUXXUUXXUUXXUVXTXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUUXXUUXXXXXXUXXTXXUUXXXXXXUXXXXXXXXXXXXXXXXXXXUUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUUXXUVXXUWXXUTUXXXXXXXXXXXXXXXXXXXXUXXUXXXXXXXUUXXXXXXXXXXXXXXXXTXXXXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXUXTXXXXXXXXXXXXXXXXXXXXXXXXXXXUUXXXUXXUWXXXXXXUUXXUUXXUXXXUUXXUXXXXXXXXUXXUUXXUUXXXUXXTXXUXXUUXXUUXXUUXXUXXXUUXXXXXXXXXXXXXXXXXXXXXXXUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUVXXTXUUXXXXXXXXXXXXXXUUXXXXXXXUXXXXXXUUXXUUXXUXXXXUXXUUXXUXXXXXXXXUXXUXXXXXWXXXXXWUXXXXXTXXVUXXUXXXXXXXXXXXXXXXUUXXUUXXUVXXUUXXUXXXUUXXVUXXUUXXUUXXXTUXXTTXXXXTUXXXTXUTXUXTXTXTXTXXXTXTUUUXXTXXUXXTUXXXXUTTUUTUXTXXXUTXXTXTXXTTXTXUXhÁÄÍÍÑïðïïÑïïÑïÑÑÑÑÑðÑïïððððòòòóóóúóóúúóóóððÑïÑÍÍÍÍÄÄÄÁÁÁÁhhcccXXXXTT""T""XUXXUUXXUTTTUUXXXTTXXXUUTUTXXTXTXTXTXXTXUXUXXXXXXUXUXTVXXXUUTXTXUTXXXXTXXUXXUVXUXXUXUXXXXXXUXXXTTXXXXXXUXUXUXTTTXXUXUXUXUXXUXXXXXXXUXXUXUXUXXXXTXXXXXXXUXXUXXXXUXUXXUUXUXUXXTXXXXUXXUTXXTXUXTXUXUXUTTTTTTTUUTTTXUTTTUUTUXTTTTTTTTTXXTTTTTTTTTXXTTTTTTTTTTTTTTXUXTXTTXXTTXTXTXXTXTXXXXTUTUUTXXUUUbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbhÄÄÄÍÑïðÑïïïÑïïÑïÑÑÑðïïïððòðñòóòóóóóóúóóóðððÑïÑÑÍÍÄÄÄÄÁÄÁÁhdcccbXXTTT"""XbbbbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbXbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbhhÁÁhÁÁhÁhÁhÁhhÁhhÁhÁÁÁÁhhÁÁhhÁÁhÁhÁÁhhÁhhÁÁhhhhhÁÁÁhÁhÁhÁÁhhhÁhhhÁÁhÁÁÁhhhhÁÁÁÁhÁhhÁÁhÁhhÁhÁÁÁÁhÁÁÁÁhhÁhÁÁhhÁhÁÁÁhÁhhÁÁÁÁhh¾ÁhhÁhhhhhhÁÁÁhhhhÁhhhÁhÁhhhhÁhhÁhÁhÁÁÁhÁhÁhhhÁhÁhhhhÁhÁhÁhÁhÁÁhÁÁhÁÁÁÁhÁÁhÁhÁhhhhÁÁÁÁhhÁhhhhhhÁÁÁhhÁÁhÁÁhhÁhÁhhhÁÁÁhÁÁhhhhÁÁÁhhhhhÁhhÁÁhhÁhhÁÁÁÁÁÁÁhhÁhÁhÁÁhhÁÁÁhÁhÁhÁÁÁhÁÁhhhhhhhhÁÁÁhÁÁhÁÁhÁhÁhÁÁhhhÁÁÁhÁÁhhhÁÁhÁhhhhhÁhhhhhÁÁÁÁhÁhhÁhÁhÁÁhÁÁhÁhÁÁhÁhÁhhhhÁÁÁÁhhÁhhhhhhÁÁhÁhhÁÁÁhhhÁÁÁhhÁÁhhÁhhhhÁÁÁhÁhhhhhÁhhÁhhhÁ¾ÁÁhÁÁhÁÁhhÁhÁÁhÁhhÁÁÁÁÁhhhÁÁÁhÁÁhhhhhhhÁhÁhÁhÁÁhhhhhhhÁhhÁhÁÁhhÁhhhhÁÁÁhhhhhÁhhhÁhÁÁÁhhÁÁhÁhhhhÁhÁhÁÁhhÁÁhhhhhhÁÁÁÁÁÁhhÁÁhhhhhÁÁÁhÁhhÁÁhhÁhÁÁhhÁhÁhÁÁhÁhhÁÁÁÁhhhÁhÁhhÁhÁÁÁhhÁÁÁÁÁÁÁhhÁhÁhhÁhÁÁÁhÁhhhhÁÁÁhhhhhÁhhhhhhÁhhÁhÁÁhÁhhÁhÁhhÁhhhhhhhhÁÁhhÁhhhhhÁhÁhhhhÁhÁhÁhÁhÁÁhÁÁÁhÁhhhÁhhhhhhhhhÁÁÁhhhÁhhhhhhÁÁÁhhhhhÁhÁhÁhÁhhÁÁhhhhhhhhhhhÁhhhhÁÁhhhÁhhÁÁÁÁhhÁhÁhhhÁhÁhhhhhhhhhhÁÁhhÁhhhÁhÁhhhhhhÁhÁÁÁhhÁhÁhhhhhÁhhÁhhhhhhhhÁhhhhhhhhÁhhÁÁhhhÁÁÁÁhhhÁhhhÁhÁÁÁhhhhhhÁhÁÁhhhhÁhÁhhhhhhhhhhhhÁhhÁÄÍÑÑÑðïððïÑïÑÑïÑÑïïïïðïðòðòòòóòóúóúúóóóðððïÑÐÐÍÍÍÄÄÄÁÁÁhhhdcbbbXTTT"""ghÁhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁÁhhÁhhhhhÁhÁhhÁhhhhhhÁÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ¾ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhhhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhhÁhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁhhhÁÁÁhÁÁÄÍÍÑÑðïïÑïïïÑÑÑÑÑÑÑïðððððððòóóóóóóúúóóóòðððÑÑÍÍÍÍÄÄÄÄÁÁhhdccbbXXTTTTT"ThhÁÁÁÁhÁhÁÁhÁhhhÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁhhhhhÁÁÁhhhhÁÁÁhÁhhÁÁhÁhhhÁÁhÁhhÁhhhÁhÁÁhhhhhhÁÁÁÁÁÁÁhhÁhÁÁÁhÁhÁÁÁhhÁÁÁÁÁhÁÁhhhÁhhÁÁÁhÁhÁhÁhÁhÁhhÁÁÁhÁhhÁÁÁÁhhhhhhÁÁhÁhhhÁhÁÁhhhhhhhÁhhÁÁÁhhÁÁÁÁÁhÁÁhÁÁhÁÁhhÁÁhÁÁhhhhhÁÁÁÁhÁhhÁÁÁÁhhhhÁÁÁÁhÁhhÁÁhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁhÁhhÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁhÁÁhhhÁhÁÁÁÁhhÁhÁhÁÁÁÁÁhhhhÁÁÁhhÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhhÁÁÁÁÁÁÁÁÁÁhÁhhhhÁhhÁÁÁhÁhÁhÁÁhÁhhÁhÁÁÁÁhÁÁÁÁhhhÁhÁÁÁÄÍÐÑïïððÑïÑðïÑïÑÐÑïðïïðððòððòóòóóúúúóóóðððïÑÑÍÍÍÄÄÄÄÁÁÁÁhhdcbbXXUTTT""ThhÁÁÁhhhÁhhhhhhhÁÁhhhÁÁÁhÁÁÁÁÁhhhhhÁÁÁhhÁhÁÁÁhhhhhhÁhhÁÁhhhhhÁhÁhÁÁhÁÁhhhÁÁÁÁhÁÁhhhÁÁÁhÁÁÁhhhhhhhhhhhhÁhhÁhÁÁÁhÁhÁÁÁhhhhÁÁÁÁÁhhÁÁÁhÁhhÁhhhhhhhÁÁhhÁhÁhÁÁhÁÁhhhhhÁÁhÁhhhhhhÁhhhÁhhhhÁhhhhÁhÁhhhÁhhÁÁhhÁÁÁÁhhÁhÁhhÁhÁhÁÁÁÁhhhÁhhhhhhhÁhhÁhhhÁhÁhhÁÁhhÁhhÁhhÁhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁhhÁhhÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁhÁÁhÁÁhÁhÁhÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁhhÁhÁÁÁÁÁhhÁÁÁÁÁÁÁhhÁÁÁhÁÁÁhÁÁÁhÁhhÁÁhhÁÁhÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhhÁhhhÁÁhÁhÁÁhÁÁhÁÁhÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁhhhÁhhÁÁhÁhÁhÁhhÁÁhÁÁÁÁÁÁÁÁÁÁÁhhhhÁhÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁhÁÁÁÁÁhhÁhhÁÁÁhhÁÁhÁhÁÁÁÁhÁÁhÁhhhÁhhhÁÁÁÄÄÍÑïðïïðïïÑïÑïÑÑïïïïðïððòòóòóóóóóóúúóòòððÑÑÐÐÍÍÍÄÄÄÄÁhhhgcccbXXXUTT""ThÁhÁÁhhÁhÁhhhhÁhÁhÁhÁÁhhhhhhhÁhhÁhhÁÁÁhhhÁhÁÁhÁÁhhÁÁÁhhÁhÁÁÁÁÁhhÁÁhhhÁhÁhÁhhÁhhÁhhhhhÁÁÁhhhhhhhÁhhÁÁÁhhÁhhÁhhhhhhÁhhhÁÁhhhÁÁhhhhÁÁhhhÁhhÁÁhhhhhhÁÁhhhhhhhhÁÁhÁhÁhhÁhhhÁhÁhÁhhhhhhhÁhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhÁhhhÁhÁÁhÁhhhhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhÁhhhÁhhhÁÁhhhhhÁhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhhÁÁhhÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁhhÁÁÁhhÁÁÁÁÁhÁÁÁhhhhhhÁÁÁÁÁhÁhÁhÁÁhÁÁhÁhÁÁhhhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁhhhhÁÁhÁÁhÁÁhÁÁÁÁhhhhhhÁÁÁÁhÁhÁÁÁhÁhÁhÁhÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁhhÁÁÁÁhÁhÁÁhÁhhÁÁhhhhÁhhÁÁhÁÁhhÁÁÁhhhhhhÁÁÁÁhhÁhÁÁÁhhhÁÁhhÁÁhhÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhhÁhhÁhhhhÁÁÁhhhÁÁÁhÁhhhÁhhhhhhhÁhÁÁÁhÁÁhhhhhhhÁhÁÁhhÁhÁhÁhhhhÁhhÁhhhhÁhhhÁÁÁÁÁÁhhÁhhhÁÁhÁÁÄÍÐÑïïïïÑïðÑïÑïÑÑÑÑïÑïððððòóóóòóó÷óúúòóòððÑïÑÐÍÍÍÄÄÄÁÁÁhhgccbbXXXTTT"ThhÁhhhÁÁhhhÁhhÁhhhhhÁhhhhÁhhhÁhhhhhhÁhhhhhhhÁhhÁhhhhhhÁhhhhhÁhÁhhhhhhhhhÁÁÁÁhhhhÁhhhÁhhhhhhhhhÁhhhhÁhhÁhhhhhhhhhhhhhÁhÁÁhhhhhhhhhhhhÁhhhhhhÁhhhhhhhÁhhhhhhhhÁÁhhÁÁhhhhhhhÁhhhhhhhhhhÁhÁhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhÁhhhhhhÁhhÁÁhhhhhÁÁhhhhhhhhhhhÁÁhhÁÁhhhhhhÁhhhhhhhhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhhÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhhhÁhÁhhhhÁÁÁÁÁÁhÁÁÁÁÁÁhÁhhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhhÁÁÁÁÁhÁhÁhÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁhhÁÁÁhÁÁhÁÁÁhÁÁÁhÁhÁhÁhhhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁhÁÁhhÁÁÁÁhhhhhhhÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁhhÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhhhÁhhÁhhhÁÁÁhhhÁÁhÁhÁÁÁhÁÁhhÁÁÁÁÁhhhhÁhhhhhhÁhhhhhhhÁÁÁÁhhhÁhhÁhhhhhÁhhhÁÁÁhÁhhhÁhhÁhhhhhhÁÁhhhhÁhhhÁÁhÁhÁhÁÁhÁÁhÁÁÁhÁhhhÁÁhhhhÁÁhhÁhhhhhÁÁÁÁÁhÁÁhÁÁhhÁhhÁhhhÁhÁhhhhÁÁÁhhÁhÁhÁhhÁhhhÁhhÁÁhhhhÁhÁÁhhÁÁhhÁÁhÁhhhhhhhhhhhhhhhhhÁÁÄÄÍÑÑïððÑïïïïïÑÑïïïðïððððòòóòòòóúóóóúóóðððïÑÑÐÍÍÄÄÄÄÁÁÁÁhhccbXXXXUTTTT"ThhhhÁhhhhhhhhÁhhhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhhhhhhhhÁhÁhhhhhÁhhÁhhÁÁhhhhhhhhhhhhhhÁhÁhhhhhÁhÁÁhhhhhÁhhhhhhhhhÁhhhhÁhhÁhÁhhhhhhhÁhhhhhhhhhhhÁhÁhhhhÁhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhÁhhhhhÁhhÁhhhÁhhhhhhhÁhÁhÁhÁhhhhhhhhhh¾hhhhhhÁhhhÁhÁhh•ÁhÁhhhhÁhhhhhhhhhhhhhhhhhhÁhhÁhhÁhhhÁhhÁhhhÁÁhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁhÁhhhhÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁhhÁhÁhÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁhhÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁÁhhÁÁÁhÁÁÁhhÁÁÁhÁÁhÁhÁÁhÁÁhhhÁÁÁÁhÁÁhÁÁÁÁhhhÁhÁÁÁhÁÁÁhhÁÁÁhÁÁÁhÁÁhhhhÁhhhhÁÁhÁÁhhÁÁÁÁhÁhhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁÁÁÁhhhÁÁhÁÁÁhÁÁÁhhhÁÁhhhÁhhhhÁhhÁÁÁhÁÁÁÁÁÁhÁÁhÁhhÁÁhÁhhÁhhÁhhÁÁhÁhhhhhÁÁhhÁhÁhÁÁhÁÁhÁÁhÁÁhÁhhhÁÁhÁÁhÁhhÁhÁÁÁhÁhhhhÁhÁÁhÁÁÁhÁhhÁÁhhÁhhhÁÁhÁhhÁhÁÁhhhhÁÁÁhhhÁÁÁÁÁÁÁhhhÁhhÁhhhhÁÁhÁhhÁhÁÁhÁhÁÁhÁhÁÁhhhhhÁhhhÁhÁhhhhÁÁhhÁhhhhhhhÁhÁhhÁhhhhhhhÁhÁhhhÁhhÁÁhhhhhhÁÁhhhhhhÁhhhhhhhÁhhhhÁhhhÁhhhhhhhhhhhÁÁÄÄÍÑÑïððïðÑïÑÑÑÑïïïÑïðïðòððòðóóóóóóóóóòðððÑÑÐÐÐÍÍÄÄÄÁÁÁhhhddcbXXUTTT"T"ThhhÁhhÁÁhhhhÁÁhhhhhÁhÁhhÁhhÁhhhhhhhhhhhhÁÁhÁÁhhhÁhhÁhhhhhhhÁhhhhhhÁhhhÁhhhÁhhhÁhhÁhhhÁhhhhÁhÁhÁhÁÁhhhhhhÁhÁhhhhhÁÁhhhÁhhhhhhhÁhhhÁhhhÁhhhÁh•hhÁhhhhhhÁhhÁhhÁhhhhÁhhhhhhhhhhÁhhhhÁÁhÁhhhÁhhÁhhÁhhhhhhhhhhhhÁhÁhhhhhhhhÁhhhhhhhhhhhhhÁ•hhhhhhÁhÁhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁhÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhhÁÁÁhÁÁÁÁÁÁÁÁhÁhhÁhÁÁÁÁhÁÁhÁhÁÁhÁÁÁhÁÁÁÁÁÁÁhhhÁÁÁÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁhhÁÁhÁÁÁÁÁÁhhÁÁÁÁhÁÁhÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁÁÁhÁÁÁÁÁhÁhhÁhhhÁÁÁÁhÁÁhhÁhhhÁÁÁhÁhhÁhÁhhÁÁÁÁÁÁhhhÁÁÁÁhÁhÁhhÁÁhÁhÁhhhÁÁÁhÁhÁÁÁÁÁhhhhhhÁÁhÁÁhÁhÁÁhÁhhhÁÁhÁhÁÁÁÁÁÁhÁÁhÁÁÁhhÁhÁÁhÁhÁÁÁÁhÁhÁhÁÁÁÁÁÁhhÁhÁÁhÁÁhhÁÁÁÁhhÁÁhÁhÁhhhhhhÁhÁÁhhhÁÁhhÁhhhÁhÁhhhÁÁÁÁhhhhhÁhÁhÁÁhhhhÁhhhÁÁhhÁhhhhÁÁÁhhhÁÁhhÁhhhÁÁÁhhhhhhÁhhÁhÁhÁhhhhÁhhhhÁhhhhhhhÁhÁhÁÁhhÁÁhhÁhÁhÁhhÁhhhhÁÁhÁÁÁhhÁhhÁhhÁÁÁhhÁhhhhhhhhÁÁhhhhÁÁÁÁhhhhhhhhÁhÁhhhhhhhÁhhhhhhhhhÁhhhhhhÁhÁhhÁhhhhÁhhhhÁhhhhhhhhÁhhhÁhhhhhhhhhhhÁhhhhhÁhhÁhÁhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhÁhhhhhÁhhÁhhÁÁÁÄÄÍÑðððïïððïÑïÑÑÑïïïïððñððòóóóóóóóóúóúóòððïÑÑÐÍÍÄÄÄÄÄÁÁhhdcccbXXXTTT""TTThÁhhhhÁhhhhhhhhhÁhÁhhhhÁhhhhhhhhhhÁhhhhhhÁÁhhhhÁhhhhhÁhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhÁhh•¾hhhÁhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhh•hhhh•hhhhhhhhhÁhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁhhÁhhhÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁhhÁÁhhÁhhÁÁÁÁhhÁÁhÁÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁÁhÁhÁÁÁhÁÁÁÁÁÁÁÁhhÁÁÁhÁhhhhÁÁhÁÁÁhÁÁÁÁÁhÁÁhÁhhÁÁhÁhÁhÁhÁÁÁÁÁÁhÁhÁÁÁÁÁhÁhhhÁÁhÁhÁÁhÁÁhÁhÁÁÁÁhhÁhÁhÁÁhÁhhÁÁÁhhÁhhÁhhhhhhhhhÁÁÁhÁhhhhhhÁÁhhhhhhhÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁhÁÁhhÁhhÁÁÁhÁhÁÁhÁÁhÁÁÁÁhÁÁÁÁhhÁÁhhÁhhhhÁÁhhhÁhhhÁÁÁÁhÁhÁhhÁhhÁhÁhÁÁhÁhÁhÁhhÁÁÁÁhhÁhhÁhÁhhÁhÁÁhhhÁhhÁhÁhhhÁhÁhhÁÁhhhÁÁÁhhhhhhÁhhhhÁhÁhhÁÁhÁÁhhhhÁÁhhhhhhÁhÁÁhhhhhÁÁhÁhhhÁhhhhhhhhÁhhhÁhÁhÁhhÁhhhÁÁÁhÁÁÁÁhhhÁhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhÁhÁhhÁhhhÁhÁhhhhhÁhÁhÁhhhhhhhhhhhhhhhÁhhÁhÁhÁhhÁhhhhhhhhhhhÁhhhhhhhhÁhhhÁhhhhhhÁhhhhhhÁhÁhÁhhhhhhÁhhhÁÁhÁhÁhhÁhhhhhhÁhhÁhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhÁhhÁhhhÁhhÁhhhhhhhhhhhhÁÄÍÐÑððïðÑïïÑÑÑÑÑÑïÑïððòððòððóóóóóúóúóóóóòðïÑÑÍÐÍÄÄÍÄÄÁÁÁhhdccXXXXU"T"TThÁhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhh•hhhhhhhhhhhhhhh•hhhhhhhhÁhh•hhhhhhhhÁhhhÁhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁhÁÁÁÁÁÁÁhÁÁhhÁÁÁÁÁhhÁÁÁÁÁÁÁÁhÁÁhÁÁÁÁÁÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁhÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁhÁÁhÁÁÁhÁhÁÁÁÁÁÁÁÁÁÁhÁÁhhÁhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhÁÁhÁÁÁÁÁÁÁÁÁÁhÁÁhÁÁhhÁhÁÁÁÁÁÁhÁÁÁhhÁhÁhÁÁÁhÁÁhÁhÁÁÁÁhÁhÁÁÁÁhÁhhÁhÁÁÁÁÁÁhÁÁÁhhÁhÁÁÁÁÁhÁhÁhÁhÁhÁÁÁÁÁhÁÁhÁhhÁhÁhhhÁÁÁhhÁhhhhÁhhÁÁÁÁÁÁhhhhÁÁÁhhhÁhÁhhhhhÁÁhÁÁÁÁhhÁhÁhÁhhhhÁhÁhÁhÁhÁhhÁhÁÁÁÁhhhhÁÁÁhhÁhhhÁÁÁhhÁhÁhÁhÁhhhÁÁÁhÁhhhÁÁÁhhÁÁÁhÁhhÁhÁÁhhÁhÁhhhÁhhÁhhhÁÁhÁhÁhhhÁhÁÁÁÁÁÁhÁhhÁÁhÁhhÁhhhhhÁhhhhhhhhhhhhhÁÁÁhhhhhÁÁhhhhhhÁhhhhhhhhÁhhÁhÁÁhÁhÁhhÁÁhhhhhhÁhÁhÁhÁÁhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhÁhÁÁhhhhÁhhhhhÁhhhhÁhhÁhhhÁhhhhÁhhhhhhhÁÁhhhhhhÁhhhhhÁÁhhhhÁhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhÁÁhhhhÁÁhhÁhhhhhÁhhhhhhhhhhhhÁhhhhÁhÁÁhhhhhhhÁhÁhÁÁhhhÁhhÁhhhhhhhhhÁÁhhhhhhhhhhhhhÁhÁhhhhhhÁÁhhhhhhhhhÁhhhhhhÁhhhhÁhhhÁhhhÁhhhhhhhhÁÁÁhhÁhhÁhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÐÑïððïÑïðïÑïïÑïÑïïïðððïòððóòóóóóúóóóòóððÑÑÑÍÍÍÍÄÄÄÁÁÁhhgcccbXXUTT"TThhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhÁh•hhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hÁhhÁhhhhhhhhhhhhhhhhÁh•hhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁhhÁÁhÁÁÁhhÁÁÁÁhÁÁhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁÁÁhÁÁÁhÁÁhÁhÁÁÁÁÁÁhÁÁÁÁÁÁÁhÁÁÁhÁÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁhÁhhhhÁÁhÁÁÁÁhÁhhÁÁÁhÁÁÁÁÁÁÁÁÁÁhhÁÁhhÁÁÁÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁÁÁÁhhÁÁÁÁÁÁÁÁÁÁÁÁÁhÁhhÁÁhhhhÁhÁhÁhhÁÁÁhhhhhhÁhÁÁÁhÁÁhÁÁhhÁhhÁhÁÁÁÁhhhÁÁÁÁÁhÁÁhhhhhÁÁhÁhhhhhhÁÁhhhÁhhhhhÁhhÁÁÁhhhhÁhÁÁÁhhhhÁhhhhhÁÁÁhÁÁÁÁÁhÁÁhhhhhÁhhÁÁhÁhhhhÁÁhhÁÁhÁhhÁhÁÁÁÁhhhhÁÁhÁhhhÁhhÁhÁhÁÁÁÁÁÁhhhhhÁhhhÁÁÁhhhhhÁÁÁhhÁÁhÁhÁÁÁhhhhhhhhÁhÁhhhÁhÁhhÁÁhÁhÁÁhhhÁÁÁhhhÁhhÁÁhhÁÁhhÁhhhhÁÁÁhhhÁhhhhÁhhhÁÁhhhhhÁhhÁhÁÁhhhÁÁhhhhhhhÁÁhhhhhÁhÁhhhhÁhhhÁhhhhÁhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhÁÁhhÁhÁhÁhhhÁhhhhhhhÁhÁhhhÁhhhhÁhhhhhhhÁhhhhhhhhhhÁÁhhhÁhhÁhÁhhhÁhÁhhhhhhhhhhhhhhhÁhhÁhÁhÁhhhhhÁhhhhhhhhhhÁhÁÁhhhhÁhhhÁhÁhhhhhhhÁhhhhhhhhhhhhÁhÁhÁÁhhÁÁÁhhhhhhhÁhhhhÁhhhhhhhhhhhhÁhhhhÁhhhhhhhhÁhhhhhhhÁhhhhhÁhhhhhhhÁhhhhhhhÁhhhhhhhhhhÁhhhÁhhhÁhhÁÁhhhhhÁhhhhhhÁhhhhhhhÁhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhÁhhhhhhhhhhhhhÁhhhÁÁÄÍÐÑÑïðïÑÑïÑÑÑïÑÑÑïïïïððïóðòóóóóóóúóóóòòððïÑÑÐÍÍÍÄÄÄÁÁÁhhhgccbbXXTTT"ThhhhhhÁhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhÁhÁÁhÁÁÁÁÁhÁÁÁÁÁÁÁÁÁhÁÁÁÁÁhÁÁhhÁÁÁhhÁÁÁÁhhÁhhÁÁÁÁhhÁÁÁÁÁÁÁÁhhÁÁÁhÁhhÁÁhÁÁÁÁÁÁÁÁÁhhÁÁhÁÁhÁhÁÁÁhÁÁÁÁhÁÁhÁÁhhÁÁÁhÁÁhhÁhÁÁÁhhÁhÁÁhhhÁhÁÁÁÁÁhÁÁhhhhÁÁhhhhhhÁhhÁhhhÁÁhhÁhhÁhÁhÁhÁÁhÁÁhÁÁÁhÁÁÁhÁÁÁhÁÁhÁhÁhÁhhÁhÁhhÁhhhhhhÁhÁhhhÁÁhÁhhÁhÁhÁÁÁhÁhÁhhhhhÁÁhhÁhÁhÁhÁhhhhhhhÁhhÁhhÁÁÁhÁhÁÁhÁÁÁhhhÁhhhhhhhhhÁÁhhhhhÁÁhhhhhÁÁhÁhhhhÁhÁhÁhhhÁÁhhhhhÁhhÁhhhhhÁhÁhhhhhhhhhhhhÁÁhÁÁÁhhÁÁhhhhÁÁÁhÁhhhhhhÁhhhhÁÁhhhhÁhhhÁÁÁhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhÁhÁhhhhhhhhÁhhhhhÁhhhhhhhÁhÁÁhhÁhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhhÁhhhhÁhhhhhhhÁhhhhhÁhhÁhhhhhÁhhhhhhÁhÁhhhhÁhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhÁhÁÁhhhhhÁhhhhÁhhhÁÁhhhÁhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhÁhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÐÑïððïïÑïÑïÑÑïÑÑÑïïððððòðóóòóóóóúúúóòóðïÑïÑÐÐÄÍÄÄÄÁÁÁhhhccbbXXXUT"TThhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁÁhhhhÁhhhhhhhh•hÁhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhh•hh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhÁÁhÁhÁhÁÁÁhhhhÁÁÁhÁÁhhÁhhhÁhÁÁÁÁÁÁÁhhÁhÁÁÁhÁÁhÁÁhhÁÁÁhÁhÁÁhÁhhÁÁhhhhhhhhÁÁhÁhhhhhhhÁhhhhÁhÁÁÁÁÁhhhhÁhÁÁÁhhhÁhhhÁÁÁÁhÁÁhÁÁhhÁhÁÁÁhÁhÁhÁÁÁÁhhÁhÁÁhhÁhhÁÁhhhhÁhhÁhhhhhhÁhhhhhhÁhhhÁÁhÁÁÁhÁÁhÁÁhÁÁhhhhhhhhhhÁÁÁhÁÁhhÁhÁhÁhÁhhhhhÁÁhhhÁhhÁhÁhhÁÁhhhÁhÁhhhÁhÁhhÁhhhhhhhÁhhhhÁÁhÁhhhhhhÁhÁhhhÁhhhÁhhhhhÁhhhhhhÁhÁhÁhhhhÁhÁÁhhÁhÁÁhhhhÁhÁhhhhÁhhhhhhhhhÁhhhhhhÁhÁhhhhhÁhhhhhÁÁhÁhÁhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhÁhhhÁhhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhÁÁhhhhhÁÁhhhhhhhhhhÁhhhÁhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhhhÁhhhhhhÁhhhhhhhhÁhhhhÁhhhhhhÁhhhhhÁhhÁhÁhhhÁhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhÁhÁhhhhhhhhÁhhhhhhhhhÁhhhhhhÁhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhÁÄÄÍÐÑïððððïÑïÑïïÑÑÑððïðððòðòðòòóóóóóüóóóóðïïÑÐÑÍÍÍÄÄÄÁÁÁhhhgccXXXUTT"""ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÁÁÁÁhhÁÁhhhÁhÁhhÁÁhÁhÁÁÁhÁhhhÁhhhÁÁÁhhÁÁhhhÁÁhÁÁÁÁhÁhhhhhÁhhhhÁhÁÁhÁhhÁhÁhhhhÁÁhÁhÁÁÁÁÁÁhhhÁhhÁhhÁÁhhhhhÁÁhÁhhÁhÁhhhhhÁhÁÁhhÁhÁÁhÁhÁÁÁÁÁÁhhhhhÁhhhÁÁhhhhhhhÁÁhhÁhÁhÁhÁhhÁÁhÁhÁhhhhÁhhhhhÁhhhÁhÁÁhhhÁhÁhhÁhÁÁhhÁÁhhÁÁhhhhhÁhhÁhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhÁhhhhÁhhhhhhÁhhhhhÁhhÁhÁhhÁhhÁÁhhhÁhhhhÁhhhhhhhhhhhÁhÁÁhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhÁhhhÁÁÁÁhÁhhhhhhÁhhhhhhhhÁhhhhhhÁhÁhhhhÁhhÁhhhÁhÁhhhhhhhÁhÁhÁhhhhhhhÁÁhhÁhhhÁhÁhhhhhhÁhÁhÁhÁhhhÁhhhhhhhhhhÁhhÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhÁhhhhÁhhhhhhhhhhÁÁhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhhhhÁhhhÁhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhÄÄÄÍÑÑðïïïïïÑïïïïÑÑïïðïðððòòðòóóòúúóüóóòòðððÑÐÍÍÍÍÄÄÄÁÁhhhddccbXXXTT"T"Thhhhhhhhhhhh•hhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhÁÁÁÁÁÁhhÁhhhÁÁhÁÁhÁÁhhhhhÁhÁhhÁhhÁÁhÁÁhhhhÁhhhhÁhhÁÁhhhhhhÁhhhhhhhÁhhhÁÁÁhÁhhhhhÁÁhhhÁhÁÁÁÁÁhÁhhÁÁhhhhÁhhhhÁhhhhhÁhÁhhhÁhhhhÁhhÁhhhhÁÁhhÁhhhhÁhÁhhhhÁhÁÁhhhÁhÁhhhhÁhhhhhhhÁhhÁhÁhhhÁhhÁhÁhÁhhhÁÁhhhhhhhhhhhhÁÁhhÁÁhhhhhhhÁhhhÁÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhÁhhhÁhÁhÁÁhhhhhhÁÁhhhhhÁhhhhÁhhhÁhhhhÁÁhhÁhhhhÁhhhhhhhhhÁhhhhhhhhÁhhÁhhhhhhhÁÁhhhhhhhhhhÁÁhhÁhÁhhhÁhhhhhhhÁhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhÁhhhhÁhhhhÁhhhhhhhÁhhhhhhÁhhhhhhhhhhhhÁhhÁhhÁhhÁhhhÁhhhhhhhhÁhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhhhhhÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÍÑÑïðïðÑÑÑÑÑïÑÑÑïïïïððððððóóóóóóóüúòóòðïðÑÑÍÍÍÍÄÄÄÁÁÁhhgccbXXXXTT"""ThhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhÁhÁhhhhhhÁÁhhhhhhhhhhhhhhÁhhhhÁÁhhhhhhhhhhhhÁÁhhhÁhhhhhhhÁhhhhÁÁhhhhÁÁhhhhÁhÁhhhhhÁhhhhhhhhhhhhhhhÁhhhÁhhhhhhÁhÁhÁhÁhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhÁÁhhhhhhhhhhÁÁÁhhhhhhÁÁhhhhhhÁhhhhhhÁhhhÁhhhÁhÁhhÁhhhhhhÁhhhÁhhhÁhhÁhÁhÁhhÁhhhhhhÁÁhhhhhhhÁhÁhhhhhÁhhhhÁhhhÁhhhhhhhhhhhhhhhhhÁÁhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhÁhÁhhhhhhhhÁhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhh•hhhhhÁÄÄÍÐÑÑððÑðïïïðÑïÑïÑÑïïïðïððòòðóóóóúúúóóóòðïïÑÑÐÍÍÄÄÄÄÁÁÁhhhdccXXXXUTT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�hhhhhhhhhhhhhhhhhÁhhhÁhhhÁhhhhÁÁhhhhÁhhhÁhhhhhhhhhÁÁhhhhhhhhÁhhhhÁhhhhhhhhhhÁÁÁhhÁhhhhÁhhÁhhhhÁhÁhhhhhhhÁhhhÁhhÁhhhhhhhÁhhÁhhÁhhÁ•hhhhhÁhhhhÁÁhhhhÁhhhhÁhhÁhhhhhhhhhÁÁhhÁhhÁhhhhhhÁÁhÁhhhhÁhhhÁhÁhÁhÁhhhhhhhhhhhhhhÁhhhÁhhhhhÁhÁÁhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhhhhhÁÁhhhhhhhhhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhÁhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÂÄÍÍÑïïïÑïÑÑïÑÑÑÑÑÑïðïïððòððòòòòóó÷úúóóòòððïïÐÐÐÍÄÍÄÄÁÁÁhhhgdcXXXTTTTThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•h•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁhhhhhhÁhhhÁhhhÁhhhhhÁhhhhÁhhhÁhhhhÁhhhÁhhhhÁÁhÁhhhÁhÁhhhÁhhÁhhhÁhhhhhhhhhhhÁhhhhÁÁhhÁhhhhhhÁhhhÁÁhhhhhÁhhÁhhhhhhhhhÁhhhhhhhhÁhhÁhhhÁhhhhÁÁhhhhhhhhhhhÁhhhhÁhÁhhhhhhhhhhhhÁÁhhhhhÁhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhÁhhhÁhhhhhhhÁhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhÁhhhhÁhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÍÑÑðððððïïÑÑïïÑÑÑïðððòððòóòòóóúó÷úóúóòðïÑÑÐÐÐÍÍÍÄÄÁÁÁÁgdccbbXXVTT"""TThhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhhÁhhhhÁÁhhhhhÁhhhhhhÁhhhhhhÁhhÁhhÁhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhÁhhÁhhhhh•hhÁhhÁÁhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÄÍÐÐïïðÑïïÑïÑïÑÑïïÑïðððððòòòðóóóóú÷óúóóóððïÑÑÑÐÍÍÄÄÁÁÁhÁhhdccbXXXUT""T""TThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhÁhhhÁhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhhhÁhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhÁhhÁhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÄÍÑðïððïÑÑïïðÑÑÑÑïïïðïððòððóóóóóóúúúúóòðïïÑÑÍÍÍÄÄÄÄÁÁÁhhhdccbXXXTT""T"""ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh�hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhÁhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÄÐÑÑïïðïïÑïïïÑïïÏïçÑðïðòòòóòóóóóóúóóóðóòððÑÐÍÐÍÄÄÄÄÄÁhhhddccXXXXTTTT"TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhÁhhÁhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÍÍÐÑïðïïïïïÑïÑÐÑÑïÑÑððððððóðòòóóóúóóúóóòððïÑÑÑÍÍÍÍÄÄÁÁÁhhhcccbXXUTTT"TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhh•hhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÄÍÍÑÑððïïïïÑïïïïÑÑÑðïðððòòðòòóòóóóóúüóòòððÑÑÑÑÐÍÍÄÄÁÁÁÁhhgdcbbXXXTTT""""TghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhh„hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÍÑððððïðÑÑïÑÑÑïÑÑïðïðððñóòòóóóóóóóúóóðððïÑÑÐÍÍÍÄÄÄÄÁÁhhdgccbXXTTT"TdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhÁhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•h•hhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhÁÁÄÍÍÑïðïïïïÑðïïÑÑïÑïðÑïïðððòòóóóóóúúüóóóòððïÑÐÐÍÍÄÄÄÄÁÁÁhhhccbbXXUTTT"gghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÍÑïïïïÑïÑÑçïÑïÑïÑðïïððòððòðóóóóúóüóóóòððÑÑÑÑÍÍÍÄÄÄÁÁÁhhgdcbbXXTTTT"""ThhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhÁÄÍÍÑðððïïïïïÑÑÑÑÑÑïïïðððòðòóòóóóóóúúóóóðððïÑÐÑÍÍÄÄÄÄÄÁÁhhgdccbXXXTT""""dhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÄÍÐïïïïððïððïïïÑÑÑïÑïððððððòóóóóóóóúúóóòððïÑÐÍÍÍÍÄÄÄÄÁÁhhhgccXXXXUT"""TTTTghhhhhhhhhhhhhghhhhhhhhhghhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhghhhghghhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhghhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhghhhhhghghhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhhhhhghhhghhhhhhhhhhhhhhhgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghhghhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhghhhhhghhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhghhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhÁÁÄÄÐÑÑïðÑïÑïÑÑÑÑÑïÑÑðïðððòððòòóóóóóúüúóóðððÑÑÑÐÍÍÄÍÄÄÁÁÁhhggdbbXXT:T"Tdhhhhhhhhhhhhhhhhhhhhhghhhhhghhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghhhhhhhghhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhghhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhghhhhhhhhghhghhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhghhhhhhhghhhhhhghhhhhhhhhhhghhhhhhhhhhhhhhgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh•hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghghhhhhhhhhhhhhhhhhhhhhÁÄÍÐÑïðððïÑÑÑÑïÑÑÑÑÑðÑðïðòððóóòòòóóóúúóòðððïÑÑÑÑÍÍÄÄÄÁÁÁÁhhccbbXXXTTT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhghhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghghhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhÁÁÄÄÍÐïððïðÑÑÑïïÑÑïðïïïððððòðóóòóóúúúúúóòóðïïÑÐÍÍÍÍÄÄÁÁÁÁhhgcccbXXXTT"T"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhghhhhhghghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhÁÁÄÍÑÑïðïÑïïïïïÑÑÑÑÑÑðððïððððòóúóòóóúú÷óòððòðïÑÍÍÍÄÄÄÄÁÁÁhhgddcXXXXUTT"""ghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhÄÄÄÍÑÑïðïïðððïïïÑÑÑÑÑÑðïðððòððóóóòóú÷óóóòððÑÑÑÐÍÍÍÄÄÄÄÁÁhhgdcbbXXTTTTTT""T""TghhghhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhÁÄÄÍÑððïïðÑïÑïÑÑÑïÑïïïððððòòòòòóóóúúóóòòóðïÑÑÑÐÍÍÄÄÄÁÁÁÁhhgcccXXXTUT"ThhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhghhhhhhhhhhhhhhghhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhgghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhghhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhghhhghhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhÁÁÄÄÍÑÑïðððÑðïÑïÑÑÑïïððððïððòðóòòóúóúúüóòòððïðÑÐÐÍÍÄÄÄÄÁÁhhhccbbXXTTTTT"TdhhhhhhhhhhhhhghhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhghhhhhhhhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhghhhhghhhhhhhhhhhhCorsixTH-0.70.0/CorsixTH/Bitmap/mainmenu720.pal000066400000000000000000000014001522247547500207700ustar00rootroot00000000000000                                               ! $ ! " '#$' *( #&'!$"%(),*, "%#$) "(#)%  + - *!.$.!" &""!&$'!*"-%.")#+$*%-#/$0"0$2%4#/&1&6&1'3'7(2(7)1)4)8+:)9,:&",,.!%#),2 #, !&0)5!!! #'!$'%%% #("%) &-$'*$'+"(.&(+%)-***(*-*,.--+--- '0"*1!*4!+3",4$*1$+4&,2%-5 +7!,8$-8(+/*-2).4,.1+/3(/8'/6'/9*05.02-15.37*09-3:,3;.48,4;11/111025246566/37159/5<56837;37;68969<99::;<;; ".. "") print("Converts a bitmap which contains multiple glyphs (arranged in a ".. "grid) into a sprite sheet (.tab and .dat) and a palette (.pal).") return end package.path = (debug.getinfo(1, "S").source:match("@(.*[" .. package.config :sub(1, 1) .. "])") or "") .. "lib_" .. package.config:sub(5, 5) .. ".lua" .. package.config:sub(3, 3) .. package.path local bmp = require("lib_bmp") local spritesheet = require("lib_spritesheet") local bitmap_name, cell_width, cell_height, space_width = bitmap_name, cell_width, cell_height, space_width cell_width = assert(tonumber(cell_width), "cell width must be a number") cell_height = assert(tonumber(cell_height), "cell height must be a number") space_width = tonumber(space_width) or cell_width local bitmap = assert(bmp.open(bitmap_name)) local ncells_x = bitmap.width / cell_width assert(ncells_x % 1 == 0, "Bitmap width must be a multiple of the cell width") local ncells_y = bitmap.height / cell_height assert(ncells_y % 1 == 0, "Bitmap height must be a multiple of the cell height") local filename_base = bitmap_name:match"^(.*%.)[^.]*$" local ss = spritesheet.open(filename_base .. "tab", filename_base .. "dat", true) local pal = assert(io.open(filename_base .. "pal", "wb")) pal:write(bitmap.palette) pal:close() spritesheet.writeDummy(ss) for y = 0, ncells_y - 1 do for x = 0, ncells_x - 1 do if x == 0 and y == 0 then spritesheet.write(ss, space_width, 1, bmp.getSubPixels(bitmap, 0, 0, space_width, 1)) else local x, y = x * cell_width, y * cell_height local w, h = cell_width, cell_height while h > 1 do local is_empty = true for d = 0, w - 1 do if bmp.getPixel(bitmap, x + d, y + h - 1) ~= "\255" then is_empty = false end end if is_empty then h = h - 1 else break end end while w > 1 do local is_empty = true for d = 0, h - 1 do if bmp.getPixel(bitmap, x + w - 1, y + d) ~= "\255" then is_empty = false end end if is_empty then w = w - 1 else break end end if w == 1 and h == 1 and bmp.getPixel(bitmap, x, y) == "\255" then spritesheet.writeDummy(ss) else spritesheet.write(ss, w, cell_height, bmp.getSubPixels(bitmap, x, y, w, cell_height)) end end end end spritesheet.close(ss) end CorsixTH-0.70.0/CorsixTH/Bitmap/mkraw.lua000066400000000000000000000044571522247547500200730ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- Creates a dat and palette file from a single BMP image to be used in Graphics:loadRaw(...) -- file: the target BMP image -- Output goes to the same location of the BMP image function makeRaw(file) if not file then print "Usage: lua mkraw.lua " print "Converts a bitmap into a raw .dat file and a .pal file" return end package.path = (debug.getinfo(1, "S").source:match("@(.*[" .. package.config :sub(1, 1) .. "])") or "") .. "lib_" .. package.config:sub(5, 5) .. ".lua" .. package.config:sub(3, 3) .. package.path local bmp = require("lib_bmp") local filename = file if not filename:match("%.bmp$") then print("Error: Extension must must be .bmp") return end local filename_base = filename:match"^(.*%.)[^.]*$" local dat, pal = filename_base .."dat", filename_base .. "pal" local bitmap = assert(bmp.open(filename)) dat = assert(io.open(dat, "wb")) pal = assert(io.open(pal, "wb")) -- palette pal:write(bitmap.palette) pal:close() -- image data dat:write(assert(bmp.getPixels(bitmap))) dat:close() if bitmap.pal_size ~= 256 then print("Warning: palette size is " .. bitmap.pal_size .. ". Currently only palettes of size 256 will work in CorsixTH.") end end CorsixTH-0.70.0/CorsixTH/Bitmap/mksheet.lua000066400000000000000000000065541522247547500204120ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- Creates a dat and tab file from a given specification file to combine multiple BMP -- images into a single spritesheet for use with Graphics:loadSpriteTable -- file: the spec to instruct what the spritesheet will contain. See example.spec -- for a template -- FIXME: BMP images and the output files must be located at the same directory of the -- program used to execute this. Ideally, they should all be in the location of the -- .spec file function makeSheet(file) if not file then print "Usage: lua mksheet.lua " print "Converts a number of bitmaps into a sprite sheet using the given spec" return end package.path = (debug.getinfo(1, "S").source:match("@(.*[" .. package.config :sub(1, 1) .. "])") or "") .. "lib_" .. package.config:sub(5, 5) .. ".lua" .. package.config:sub(3, 3) .. package.path local bmp = require("lib_bmp") local spritesheet = require("lib_spritesheet") local specfile = file specfile = assert(dofile(specfile)) local spec = specfile assert(type(spec.sprites) == "table", "spec is missing sprite list") local required_fields = { palette = { ["from bitmap"] = true, }, complex = { [true] = true, -- [false] = true, -- Not yet supported }, rnc = { -- [true] = true, -- Not yet supported [false] = true, }, output_tab = true, output_dat = true, } for field, options in pairs(required_fields) do assert(spec[field] ~= nil, "spec is missing '" .. field .. "' field") if options ~= true then assert(options[spec[field]], "spec field '" .. field .. "' is invalid") end end local ss = spritesheet.open(spec.output_tab, spec.output_dat, spec.complex) for i = 0, #spec.sprites do local filename = spec.sprites[i] if not filename then spritesheet.writeDummy(ss) else local function err(msg, ...) error("Error processing " .. filename .. ":\n" .. msg:format(...)) end local bitmap, e = bmp.open(filename) if not bitmap then err(e) end local width, height = bitmap.width, bitmap.height if width > 0xFF or height > 0xFF then err "Image too big (maximum size is 255x255)" end spritesheet.write(ss, width, height, bmp.getPixels(bitmap)) end end spritesheet.close(ss) end CorsixTH-0.70.0/CorsixTH/Bitmap/readme.txt000066400000000000000000000021471522247547500202370ustar00rootroot00000000000000Almost all graphics resources are loaded from the original Theme Hospital data files, which is why there are only a few files in this directory. build_room_dialog_close.bmp : this sprite is missing from the game's REQ09V.DAT map_cell_outline.bmp : there is no nice outline tile in the game's VBLK-0.DAT flag_*.bmp : used as debug overlays fullscreen_border_*.bmp : used as borders as 640x480 "fullscreen" backgrounds bootstrap_font.bmp : a homemade bitmap font which can be used for drawing text before the original data files are loaded. aux_ui sprite sheet (main palette) #01 - build_room_dialog_close.bmp #02 - map_cell_outline.bmp #03 - flag_passable.bmp #04 - flag_travel_north.bmp #05 - flag_travel_east.bmp #06 - flag_travel_south.bmp #07 - flag_travel_west.bmp #08 - flag_hospital.bmp #09 - flag_buildable.bmp #10 - fullscreen_border_topleft.bmp #11 - fullscreen_border_top.bmp #12 - fullscreen_border_topright.bmp #13 - fullscreen_border_left.bmp #14 - fullscreen_border_right.bmp #15 - fullscreen_border_bottomleft.bmp #16 - fullscreen_border_bottom.bmp #17 - fullscreen_border_bottomright.bmp CorsixTH-0.70.0/CorsixTH/Bitmap/toolbar_machinemenu_idle.bmp000066400000000000000000000056661522247547500237620ustar00rootroot00000000000000BM¶ 6(&0€š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿ                                      WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{z~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~tUWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWU~tWUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWW~tWssqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqUVW~tWrvsssssssssssssssVssssssssssssssqVW~tWrysssssssssVVsssVVsssVVssssssssqVW~tWrzsssssssssVVsVVsVVssssssssqVW~tWrzsssssssssVVVVVVssssssssqVW~tWrzssssssVVVVVVVVVVsssssqVW~tWrzsssssVVssssqVW~tWrzsssssV  ¢  VssssqVW~tWrzsssssV ¢¤¢ VssssqVW~tWrzsssVVV ¤¤¤¥¥¦¦ VVVssqVW~tWrzssV ¤¤¤¥¥¦¥¦¨ VsqVW~tWrzsssV¢¢¤¥¥¥¥¥¨¨¢VssqVW~tWrzssssV¢¤¤¥¥¥¦ª¢©ªVsssqVW~tWrzsssVVV¤¤¥¥¥¥¦¤ž©ª VVVssqVW~tWrzssV¤¥¥¥¦¦¦¦¨©ªVsqVW~tWrzsV¤¤¤¥¥¥¦¦¨¦¨¨¨©ªª©VqVW~tWrzssV¥¥¥¨¦¨©©©ª©VsqVW~tWrzsssVVV ¥¥ª¢¦¨©¨©©ª VVVssqVW~tWrzssssV¤¦¤ž¨¨¨©©ª©VsssqVW~tWrzsssV¤¥¦¨©©©©©ªªVssqVW~tWrzssV ¨¨¨¨¨©©©ª VsqVW~tWrzssVVVV ¨©©©©©© VVVssqVW~tWrzsssssV ¨ªª VssssqVW~tWrzsssssV  ©  VssssqVW~tWrzsssssVVssssqVW~tWrzssssssVVVVVVVVVVsssssqVW~tWrzsssssssssVVVVVVssssssssqVW~tWrzsssssssssVVsVVsVVssssssssqVW~tWrzsssssssssVVsssVVsssVVssssssssqVW~tWrzsssssssssssssssVssssssssssssssqVW~tWr|ssssssssssssssssssssssssssssssqVW~tWr}|zzzzzzzzzzzzzzzzzzzzzzzzzzyyvsVW~tWUrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrsUW~tVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWU~vttttttttttttttttttttttttttttttttttttyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªCorsixTH-0.70.0/CorsixTH/Bitmap/toolbar_machinemenu_pressed.bmp000066400000000000000000000056661522247547500245120ustar00rootroot00000000000000BM¶ 6(&0€š–Ê’†¾†y²‚mªyažuY–mMŠAŠ(š1ª9ºEÊ QÛ]ëmÿ]]]QQQEEE===111 e‚}¶ŽÂQ¾ÊQQiyÿšÿºÿÛÿÿÿaAEqQY‚am†–¦(¶E$Êa5Û}I}}q}i} a} Y}Q}M}²¶ómyãYi×=UÆ$Aº 1®$¢=-yUAŠmYšš†¶I® 1š($†5$qqUiqUE}]MŽeYšmeªuq¶}}ÆŠŽ×–žYm†ž¶Îç}¢†šŠ’І‚qy]qMmA–žÛŠŽÊ}‚¾qu²ii¢a]–YUŠEQ‚¶-Û]ÿÊª×®šÆ’šºŠ’²‚Žª}†¢u‚–qyŽiu}]i--e-9m-Eu1Y}ªy®‚ ²Š$º’-¾š1Ʀ9Ê®=ζE×¾MÛÊUãÒYçÛaóëq÷óyeš mžu¦$‚®-в=–ºIžÂYªÆe²Îu¾×†ÊÛšÒãªÛë¾çïÎï÷UeyŽ$¢9$ª91²9Eº=]ÂIuÊYŽÒi¢ÛuÊë–ß÷ªÿÿÒeeemmmyyy‚‚‚ŽŽŽššš¢¢¢ªªª¶¶¶¾¾¾ÊÊÊÒÒÒßßßëëëóóóÿÿÿ†Š¶†}¦Ššª}Žžy†–¦’Ž¢ŠŽ®ŠŠamaQUa]aaYYaMM†]ayU9A I$Q(Y-a1i5qŽ]I¢aIiaYUIQ¾Ž–AY†A]Š5Q‚9U‚9YŠEaŽ1MyQi’am’-IyIe’Mi–Yi’5UŠQeŽ]uš1M‚9]’Uq–Òºª5YŽ]iŽAU‚I]†A]’Yu¢Qmšžš¢’Žš]i†š’–Æ®¢Qa†9M}amžAQaAyša‚²euš9U}1Muº¢š9 A1A(9AQ1Y1aYIaYy‚Qa‚yieUeÿÿ                                      WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{z~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~tU??????????????????????????????????k~t?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??~t?>=6===============>=============>>?~t?>64666666666>>666>>666>>6666666=>?~t?>63666666666>>6>>6>>6666666=>?~t?>63666666666>>>>>>6666666=>?~t?>63666666>>>>>>>>>>6666=>?~t?>6366666>>666=>?~t?>6366666>  ¢  >666=>?~t?>6366666> ¢¤¢ >666=>?~t?>63666>>> ¤¤¤¥¥¦¦ >>>6=>?~t?>6366> ¤¤¤¥¥¦¥¦¨ >=>?~t?>63666>¢¢¤¥¥¥¥¥¨¨¢>6=>?~t?>636666>¢¤¤¥¥¥¦ª¢©ª>66=>?~t?>63666>>>¤¤¥¥¥¥¦¤ž©ª >>>6=>?~t?>6366>¤¥¥¥¦¦¦¦¨©ª>=>?~t?>636>¤¤¤¥¥¥¦¦¨¦¨¨¨©ªª©>>?~t?>6366>¥¥¥¨¦¨©©©ª©>=>?~t?>63666>>> ¥¥ª¢¦¨©¨©©ª >>>6=>?~t?>636666>¤¦¤ž¨¨¨©©ª©>66=>?~t?>63666>¤¥¦¨©©©©©ªª>6=>?~t?>6366> ¨¨¨¨¨©©©ª >=>?~t?>6366>>>> ¨©©©©©© >>>6=>?~t?>6366666> ¨ªª >666=>?~t?>6366666>  ©  >666=>?~t?>6366666>>666=>?~t?>63666666>>>>>>>>>>6666=>?~t?>63666666666>>>>>>6666666=>?~t?>63666666666>>6>>6>>6666666=>?~t?>63666666666>>666>>666>>6666666=>?~t?>63666666666666666>6666666666666=>?~t?>6266666666666666666666666666666=>?~t?>6Y233333333333333333333333333346>?~t?>>6666666666666666666666666666666>?~t??>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?~tV??????????????????????????????????k~vttttttttttttttttttttttttttttttttttttyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªCorsixTH-0.70.0/CorsixTH/Bitmap/tree_collapsed.bmp000066400000000000000000000023361522247547500217260ustar00rootroot00000000000000BMÞ6( ÄÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/tree_ctrl.dat000066400000000000000000000003341522247547500207120ustar00rootroot00000000000000JQQQQQQBJQQQMQQBJNBA@@@@A@BMQBJNBA@A@@A@A@BMQBCorsixTH-0.70.0/CorsixTH/Bitmap/tree_ctrl.pal000066400000000000000000000014001522247547500207110ustar00rootroot00000000000000?????CorsixTH-0.70.0/CorsixTH/Bitmap/tree_ctrl.spec000066400000000000000000000005441522247547500210770ustar00rootroot00000000000000-- Bitmaps to create sprite sheet from sprites = {} sprites[ 1] = "tree_level.bmp" sprites[ 2] = "tree_leaf.bmp" sprites[ 3] = "tree_collapsed.bmp" sprites[ 4] = "tree_expanded.bmp" -- Palette options palette = "from bitmap" -- Compression options complex = true rnc = false -- Output filenames output_tab = "tree_ctrl.tab" output_dat = "tree_ctrl.dat" CorsixTH-0.70.0/CorsixTH/Bitmap/tree_ctrl.tab000066400000000000000000000000361522247547500207070ustar00rootroot00000000000000  D ’ CorsixTH-0.70.0/CorsixTH/Bitmap/tree_expanded.bmp000066400000000000000000000023361522247547500215500ustar00rootroot00000000000000BMÞ6( ÄÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/tree_leaf.bmp000066400000000000000000000023361522247547500206670ustar00rootroot00000000000000BMÞ6( ÄÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/tree_level.bmp000066400000000000000000000023361522247547500210670ustar00rootroot00000000000000BMÞ6( ÄÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCorsixTH-0.70.0/CorsixTH/Bitmap/winlevel.pl8000066400000000000000000000020001522247547500204770ustar00rootroot00000000000000ÿÿÿ ÿÿÿ ÿÿÿ ÿ (ÿ(ÿ0ÿ 8ÿ$8ÿ$0ÿ (0ÿ$(8ÿ (Aÿ$0<ÿ(4Aÿ$4Iÿ 4Qÿ$8Yÿ,8Qÿ0,SDL2::SDL2,SDL2::SDL2-static>) target_link_libraries(CorsixTH PRIVATE SDL2::SDL2main) else() find_package(SDL2 REQUIRED) if(SDL_FOUND) include_directories(${SDL_INCLUDE_DIR}) if(SDLMAIN_LIBRARY STREQUAL "") message(FATAL_ERROR "Error: SDL2 was found but SDL2main was not") message("Make sure the path is correctly defined or set the environment variable SDLDIR to the correct location") endif() # No need to specify sdl2main separately, the FindSDL.cmake file will take care of that. If not we get an error about it target_link_libraries(CorsixTH_lib PUBLIC ${SDL_LIBRARY}) message(" SDL2 found") else() message(FATAL_ERROR "Error: SDL2 library not found, it is required to build. Make sure the path is correctly defined or set the environment variable SDLDIR to the correct location") endif() endif() # Find Lua if(VCPKG_TARGET_TRIPLET) find_package(Lua REQUIRED) target_include_directories(CorsixTH_lib PUBLIC ${LUA_INCLUDE_DIRS}) target_link_libraries(CorsixTH_lib PUBLIC ${LUA_LIBRARIES}) else() find_package(Lua REQUIRED) if(Lua_FOUND OR LUA_FOUND) target_link_libraries(CorsixTH_lib PUBLIC ${LUA_LIBRARY}) include_directories(${LUA_INCLUDE_DIR}) # Special link flags needed on macOS 64bit, according to: http://luajit.org/install.html # If these are not specified, luaL_newstate() returns NULL and we get this: # Fatal error starting CorsixTH: Cannot open Lua state. if(APPLE AND LUA_LIBRARIES MATCHES "libluajit" AND CMAKE_SIZEOF_VOID_P EQUAL 8) target_link_libraries(CorsixTH "-pagezero_size 10000" "-image_base 100000000") endif() if(LUA_LIBRARIES MATCHES "libluajit") message(" LuaJIT${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR} found") else() message(" Lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR} found") if(WITH_LUAJIT) message(" Did you want to use LuaJIT? Please specify the path") endif() unset(WITH_LUAJIT CACHE) endif() else() message(FATAL_ERROR "Error: Lua library not found, it is required to build") endif() endif() # Add threading library find_package(Threads) target_link_libraries(CorsixTH PRIVATE ${CMAKE_THREAD_LIBS_INIT}) # Find SDL_mixer if(VCPKG_TARGET_TRIPLET) find_package(SDL2_mixer CONFIG REQUIRED) target_link_libraries( CorsixTH_lib PUBLIC $,SDL2_mixer::SDL2_mixer,SDL2_mixer::SDL2_mixer-static>) else() find_package(SDL2_mixer REQUIRED) if(SDLMIXER_FOUND) target_link_libraries(CorsixTH_lib PUBLIC ${SDLMIXER_LIBRARY}) include_directories(${SDLMIXER_INCLUDE_DIR}) message(" SDL_mixer found") else() message(FATAL_ERROR "Error: SDL_mixer library not found, it is required to build") endif() endif() # Find FFMPEG if(CORSIX_TH_USE_FFMPEG) find_package(FFmpeg COMPONENTS AVFORMAT AVCODEC SWSCALE SWRESAMPLE AVUTIL REQUIRED) if(FFMPEG_FOUND) target_link_libraries(CorsixTH_lib PUBLIC ${FFMPEG_LIBRARIES}) include_directories(${FFMPEG_INCLUDE_DIRS}) if(APPLE) target_link_libraries(CorsixTH PRIVATE libz.dylib) # These LDFLAGS are necessary for static ffmpeg, harmless for dynamic ffmpeg set(CMAKE_EXE_LINKER_FLAGS "-liconv -framework CoreMedia -framework CoreVideo -framework VideoToolbox") endif() message(" FFmpeg found") else() message(FATAL_ERROR "Error: FFmpeg library not found, even though it was selected to be included") endif() endif() # Find Freetype2 if(VCPKG_TARGET_TRIPLET) find_package(Freetype REQUIRED) target_link_libraries(CorsixTH_lib PUBLIC Freetype::Freetype) else() find_package(Freetype REQUIRED) if(FREETYPE_FOUND) target_link_libraries(CorsixTH_lib PUBLIC ${FREETYPE_LIBRARIES}) include_directories(${FREETYPE_INCLUDE_DIRS}) if(APPLE) target_link_libraries(CorsixTH_lib PRIVATE libz.dylib) target_link_libraries(CorsixTH_lib PRIVATE libbz2.dylib) endif() message(" FreeType2 found") else() message(FATAL_ERROR "Error: FreeType2 library not found, it is required to build") endif() endif() if(WITH_UPDATE_CHECK) find_package(CURL REQUIRED COMPONENTS HTTPS SSL) if(CURL_FOUND) target_link_libraries(CorsixTH_lib PRIVATE CURL::libcurl) message(" Curl found") else() message(FATAL_ERROR "Error: curl not found") endif() endif() if(CORSIX_TH_LINK_LUA_MODULES) message("Linking lua modules") find_package(unofficial-luafilesystem CONFIG REQUIRED) target_link_libraries(CorsixTH_lib PRIVATE unofficial::luafilesystem::lfs) find_package(unofficial-lpeg CONFIG REQUIRED) target_link_libraries(CorsixTH_lib PRIVATE unofficial::lpeg::lpeg) add_custom_command(TARGET CorsixTH POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${UNOFFICIAL_LPEG_LUA_FILES} $) if(NOT USE_SOURCE_DATADIRS) install(FILES ${UNOFFICIAL_LPEG_LUA_FILES} DESTINATION ${CORSIX_TH_DATADIR}) endif() else() message("Lua modules are not linked and will be loaded at runtime") endif() # Find libpng find_package(PNG REQUIRED) target_link_libraries(CorsixTH_lib PRIVATE PNG::PNG) if(WITH_MIDI_DEVICE) find_package(RtMidi) if(NOT RtMidi_FOUND AND PkgConfig_FOUND) pkg_search_module(RTMIDI REQUIRED rtmidi) if(RTMIDI_FOUND) add_library(RtMidi::rtmidi INTERFACE IMPORTED) set_target_properties(RtMidi::rtmidi PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${RTMIDI_INCLUDE_DIRS}" INTERFACE_LINK_LIBRARIES "${RTMIDI_LIBRARIES}") set(RtMidi_FOUND TRUE) endif() endif() if(RtMidi_FOUND) message(" RtMidi found") target_link_libraries(CorsixTH_lib PRIVATE RtMidi::rtmidi) else() message(FATAL_ERROR "Error: RtMidi was not found. If not available, compile WITH_MIDI_DEVICE=OFF") endif() endif() if(FETCH_SOUNDFONT) include(FetchContent) fetchcontent_declare( FluidR3 URL https://raw.githubusercontent.com/Jacalz/fluid-soundfont/master/SF3/FluidR3.sf3 URL_HASH SHA256=32039e039c2f708467a6f171fbfd9fecdcadfe40a2327837c391490c8de70021 DOWNLOAD_NO_EXTRACT TRUE) fetchcontent_makeavailable(FluidR3) set(FLUIDR3_FILE ${fluidr3_SOURCE_DIR}/FluidR3.sf3) endif() if(FETCH_UNICODE_FONT) include(FetchContent) fetchcontent_declare( GoNoto URL https://github.com/satbyy/go-noto-universal/releases/download/v7.0/GoNotoKurrent-Regular.ttf URL_HASH SHA256=2f2cee5fbb2403df352ca2005247f6c4faa70f3086ebd31b6c62308b5f2f9865 DOWNLOAD_NO_EXTRACT TRUE DOWNLOAD_NAME CorsixTHUnicode.ttf) fetchcontent_makeavailable(GoNoto) set(GONOTO_FILE ${gonoto_SOURCE_DIR}/CorsixTHUnicode.ttf) endif() if(WITH_TRACY) # If tracy is compiled on a machine with rocprofiler installed it # automatically adds it as a dependency. Using an optional find_package # before finding Tracy allows that dependency to resolve. find_package(rocprofiler-sdk QUIET) find_package(Tracy CONFIG REQUIRED) target_link_libraries(CorsixTH_lib PUBLIC Tracy::TracyClient) endif() # Launch script to facilitate out of source builds if(USE_SOURCE_DATADIRS) # Do not generate launch script. The default is fine for this case. elseif(XCODE) message(WARNING "By default you will not be able to run CorsixTH from Xcode. If you do not plan to deploy then run cmake with -DUSE_SOURCE_DATADIRS. If you want to both run and deploy from Xcode then set the command line arguments in your run scheme to --interpreter=${CMAKE_CURRENT_SOURCE_DIR}/CorsixTH.lua") elseif(APPLE) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run-corsix-th-dev.sh.in.apple ${CMAKE_CURRENT_BINARY_DIR}/run-corsixth-dev.sh @ONLY) elseif(UNIX) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run-corsix-th-dev.sh.in ${CMAKE_CURRENT_BINARY_DIR}/run-corsixth-dev.sh @ONLY) elseif(MSVC) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CorsixTH.vcxproj.user.in ${CMAKE_CURRENT_BINARY_DIR}/CorsixTH.vcxproj.user @ONLY) endif() # Adding testing files whilst we also have the list of source files and have found libs if(ENABLE_UNIT_TESTS) message("Building Unit Tests") # Enable testing if set at this level so we can use CTest from the root of the build dir add_subdirectory(${PROJECT_SOURCE_DIR}/CppTest) endif() # Declaration of the install process if(NOT USE_SOURCE_DATADIRS) if(APPLE) # Just use the prefix as it's sufficient to just set the prefix to /Applications on Mac. install(TARGETS CorsixTH BUNDLE DESTINATION .) elseif(MSVC) install(TARGETS CorsixTH RUNTIME DESTINATION ${CORSIX_TH_DATADIR} LIBRARY DESTINATION ${CORSIX_TH_DATADIR} ARCHIVE DESTINATION ${CORSIX_TH_DATADIR} ) install(FILES CorsixTH.ico DESTINATION ${CORSIX_TH_DATADIR}) # Install dependencies if(CMAKE_CONFIGURATION_TYPES) install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/$/" DESTINATION ${CORSIX_TH_DATADIR} FILES_MATCHING PATTERN "*.dll" PATTERN "*.lua" ) else() install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/" DESTINATION ${CORSIX_TH_DATADIR} FILES_MATCHING PATTERN "*.dll" PATTERN "*.lua" ) endif() # Include this module to search for compiler-provided system runtime # libraries and add install rules for them. set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ${CORSIX_TH_DATADIR}) include(InstallRequiredSystemLibraries) else() install(TARGETS CorsixTH RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) endif() install(DIRECTORY Campaigns Lua Levels DESTINATION ${CORSIX_TH_DATADIR}) install(DIRECTORY Bitmap DESTINATION ${CORSIX_TH_DATADIR} FILES_MATCHING REGEX ".*\\.(tab|pal|dat|png|pl8)$" ) install(FILES CorsixTH.lua ../LICENSE.txt DESTINATION ${CORSIX_TH_DATADIR}) if(FETCH_SOUNDFONT) install(FILES ${FLUIDR3_FILE} DESTINATION ${CORSIX_TH_DATADIR}) endif() if(FETCH_UNICODE_FONT) install(FILES ${GONOTO_FILE} DESTINATION ${CORSIX_TH_DATADIR}) endif() if(UNIX AND NOT APPLE) install(FILES corsix-th.6 DESTINATION ${CMAKE_INSTALL_MANDIR}/man6) install(FILES com.corsixth.corsixth.metainfo.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo) install(FILES com.corsixth.corsixth.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications) install(FILES Original_Logo.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps RENAME corsix-th.svg) endif() if(APPLE) # Fix the macOS bundle to include required libraries (create a redistributable app) install(CODE " INCLUDE(BundleUtilities) SET(BU_CHMOD_BUNDLE_ITEMS ON) FIXUP_BUNDLE(\"${CMAKE_INSTALL_PREFIX}/CorsixTH.app\" \"\" \"\") ") if(WITH_LUAROCKS) install(CODE "execute_process( COMMAND bash \"${CMAKE_SOURCE_DIR}/scripts/macos_luarocks\" \"${CMAKE_INSTALL_PREFIX}\") ") endif() endif() endif() set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT CorsixTH) add_custom_target(windowsconfig ${LUA_PROGRAM_PATH} ${CMAKE_SOURCE_DIR}/scripts/generate_windows_config.lua WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) CorsixTH-0.70.0/CorsixTH/Campaigns/000077500000000000000000000000001522247547500167235ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Campaigns/ChrizmanTV.campaign000066400000000000000000000043571522247547500224620ustar00rootroot00000000000000--[[ Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.--]] name = "ChrizmanTV and beyond" description = "Hello and welcome to the first CorsixTH Custom Campaign, created by Chris Wilkinson! " .. "Do not lose your patients as you play through 12 levels of hospital hysteria and " .. "comedic challenges. Starting at Coffalot, you will be introduced to the basic " .. "functionality of CorsixTH before finally progressing to the last challenge " .. "at Royal Hospital. The Ministry of Health will be monitoring you along the way, " .. "as you will be met with bizarre illnesses and a multitude of sick patients who need " .. "your attention. Have fun!" levels = { "coffalot.level", "holby.level", "writhe.level", "greyhamgardens.level", "snuffitsands.level", "upperpukington.level", "fourcorners.level", "wishinwell.level", "hoppalong.level", "tufflook.level", "dethsdaw.level", "royalhospital.level", } winning_text = "Exceptional work! You have made it to the top! The mansion is yours, and public money galore is flowing into your Swiss bank account as we speak. Now you can relax - your days of running hospitals is finally over. Thanks for playing!" CorsixTH-0.70.0/CorsixTH/Campaigns/Coffalot.map000066400000000000000000005001541522247547500211640ustar00rootroot00000000000000?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????£?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?´?¤???????????????????????????????????????????????????????????????????????????????????????????????????²?????????????????????????????²???????????????????????????????????????????????????????????????????????????????????????????????????²??¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶??²???????????????????????????????????????????????????????????????????????????????????????????????????²??¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹?¶?¹??²???????????????????????????????????????????????????????????????????????????????????????????????????²?????????????????????????????²???????????????????????????????????????????????????????????????????????????????????????????????????²?????????????????????????????²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?Axy<Az<A|<Ax<Az<A|<Ax<Az<A|<Ax<Az<A|<Ax<Ax<Az<A|<Ax<Az<A|<Ax<Az<A|<Ax<Az<A|<Ax<q?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?A{<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<s?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?A}<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<u?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<q?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?A{<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<s?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?A}<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<u?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<q?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?A{<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<s?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?A}<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<u?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<q?²???????????????????????????????????????????????????????????????????????????????????????????????????²? ? p? r? t? p? r? t? p? r? t?=p?Ay<A<A<A<A<A<q???????¾?¼?›?›?²???????????????????????????????????????????????????????????????????????????????????????????????????²?›?›?¾?¼? ?Axy<Az<A|<Az<A|<Ax<A<A<A<A<A<A<Ax<Az<A|<Az<A|<Ax<q?¼?¾?›?›?²???????????????????????????????????????????????????????????????????????????????????????????????????²?›?›?¼?¾? ?A{<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<s?¾?¼?›?›?²???????????????????????????????????????????????????????????????????????????????????????????????????²?›?›?¾?¼? ?A}<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<u?¼?¾?›?›?²???????????????????????????????????????????????????????????????????????????????????????????????????²?›?›??? ?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<>q???›?›?²???????????????????????????????????????????????????????????????????????????????????????????????£?´?´?´?­?›?›? ?Axy<Ax<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<Ax<Ax<q?›?›?¢?´?´?´?¤???????????????????????????????????????????????????????????????????????????????????????????²?¼?¾????? ?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<>q?????¾?¼?²???????????????????????????????????????????????????????????????????????????????????????????²?¾?¼? ?Axy<Az<A|<Ax<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<Ax<Az<A|<Ax<q?¼?¾?²???????????????????????????????????????????????????????????????????????????????????????????²?¼?¾? ?A{<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<s?¾?¼?²???????????????????????????????????????????????????????????????????????????????????????????²?¾?¼? ?A}<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<u?¼?¾?²???????????????????????????????????????????????????????????????????????????????????????????²??? ?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<>q???²???????????????????????????????????????????????????????????????????????????????????????????²? ?Axy<Ax<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<Ax<Ax<q?²???????????????????????????????????????????????????????????????????????????????????????????²? ?A{<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<s?²???????????????????????????????????????????????????????????????????????????????????????????²? ?A}<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<u?²???????????????????????????????????????????????????????????????????????????????????????????²? ?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<q?²???????????????????????????????????????????????????????????????????????????????????????????²? ?A{<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<s?²???????????????????????????????????????????????????????????????????????????????????????????²? ?A}<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<u?²???????????????????????????????????????????????????????????????????????????????????????????²? ?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<q?²???????????????????????????????????????????????????????????????????????????????????????????²? ?A{<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<s?²???????????????????????????????????????????????????????????????????????????????????????????²? ?A}<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<u?²???????????????????????????????????????????????????????????????????????????????????????????²? ?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<q?²???????????????????????????????????????????????????????????????????????????????????????????²? ? p?=p?Ay<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A>A>A<A<A>A>A>A<A<A<A<A<q?¢?¯?¤?º?£?¯?­??²???????????????????????????????????????????????????????????????????????????????????????????²????§?·?§??? ? p? p? r? t?=p?:Ö>;>Ô>;>Ô>>>? ?>>>?¾???????¢?¯?­????²???????????????????????????????????????????????????????????????????????????????????????????²?????????????¼? ?>>>? ?>>>?¼?????????????²???????????????????????????????????????????????????????????????????????????????????????????¢?´?´?´?´?´?´?´?´?´?´?«?¼?¾? ?>>>? ?>>>?¾?¼?ª?´?´?´?´?´?´?´?´?´?´?­???????????????????????????????????????????????????????????????????????????????????????????????????????¾?? ?>>>>? ?>>>>??¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>>>>>>>?¼???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>>>>>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>>>>>>>?¼???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>><? ? ?=?>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>?¹?¹? ?>>>?¼???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>?¹?¹? ?>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>??? ?>>>?¼???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>>>>>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>>>>>>>?¼???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>>>>>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ? ? ?=?>>>><? ? ? ?¼???????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¼?¾?¼? ?>>>>?¼?¾?¼?¾??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>?¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>?¼?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>?¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>?¼?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>?¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>?¼?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>?¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>?¼?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>?¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>?¼?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>?¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>?¼?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>?¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>?¼?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>?¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>?¼?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>?¾?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼? ?>>>>?¼?????????????????????????????????????????????????????????????@-CorsixTH-0.70.0/CorsixTH/Campaigns/Dethsdaw.map000066400000000000000000005001541522247547500211720ustar00rootroot00000000000000???????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§??????????????????????????????????????????????????????????????????????£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­? ?>>>>>>?¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤?????????????????????§??????????????????????????????N?;?;?:????????????????? ?>>>>>>>?????????????????N?;?;?:??????????????????????????????§?????????????????????§??¶??¶??¶????????????????????????M?DF?DH?@? ?xyz|z|z|z|z|xq>>>>>>>>>>>>>xyz|z|z|z|z|xq?M?DH?DG?@????????????????????????¶??¶??¶??§?????????????????????§??????????????????????????????M?DG?DF?@? ?{s>>>>>>>>>>>>>{s?M?DF?DH?@??????????????????????????????§?????????????????????§??¶??¶??¶?????? ?xyz|z|z|z|z|z|z|xq?L?C?C?O? ?}u>>>>>>>>>>>>>}u?L?C?C?O? ?xyz|z|z|z|z|z|z|x>q??????¶??¶??¶??§?????????????????????§??????????? ?xy>q????? ?ys>>>>>>>>>>>>>{>q????? ?yx>q???????????§?????????????????????§??¶??¶??¶???? ?xyxz|z|xu>>>><? ? ?=?>>>>>}xz|z|xx>q????¶??¶??¶??§?????????????????????§????????? ?xyq>>>>?¹?¹? ?>>>>>yx>q?????????§?????????????????????§???????? ?xy>>>>?·?·? ?>>>>>:Û>q????????§?????????????????????§?? ?xyz|z|xq?º?º?º?º? ?y;>>>>>?¹?¹? ?>>>>>;>q?º?º?º?º? ?yxz|z|xq??§?????????????????????§?? ?{>q????? ?yÕ>>>>>?·?·? ?>>>>>Ù>q????? ?ys??§?????????????????????§?? ?}xz|z|xq>>>>?¹?¹? ?>>>>>yxz|z|xu??§?????????????????????§?? ?{q>>>>?·?·? ?>>>>>ys??§?????????????????????§?? ?}>>>>?¹?¹? ?>>>>>:Û>>>>>?·?·? ?>>>>>;>q?º?º?º?º? ?yq??§?????????????????????§?? ? p? r? t? r? t?=p?y>q????? ?yÕ>>>>>?¹?¹? ?>>>>>Ù>q????? ?y>>>?·?·? ?>>>>>yxz|z|x>>>>??? ?>>>>>{>>>>>>>>>>>>}>>>>>>>>>>>>{s????? ?{>>>>>>>>>>>>}u???¸?? ?}s??¶?¶?¶??M?D?D?DG?@??§?????????????????????§??M?DH?D?D?@??¶?¶?¶?? ?}s???¸?? ?yq>>>>>>>>>>>>>yq??¸??? ?{u??¶?¶?¶??M?DH?D?DF?@??§?????????????????????§??M?D?D?DF?@??¶?¶??? ?yu??¸??? ? p? r? t? r? t? r? t? r? t? r? t? p?=?>>>>>>>>>>>><? p? r? t? r? t? r? t? r? t? r? t? p? ???¸?? ?}>q???¶?¶??M?DF?D?D?@??§?????????????????????§??M?DF?DG?DH?@??¶??? ?xys???¸??????????????? ?=?>>>>>>>>>><? ???????????????¸??? ?{x>q???¶??M?DG?D?DH?@??§?????????????????????§??L?C?C?C?O???? ?xyu??¸????»??»??¾??¾??¾????? ?=?>>>>>>>><? ?????¾??¾??¾??»??»????¸?? ?}x>q????L?C?C?C?O??§?????????????????????§????????? ?xys???¸????????¾??¾??????? ?=?>>>>>><? ???????¾??¾????????¸??? ?{x>q?????????§?????????????????????§???????? ?xyu??¸?????»?????¾????????? ?>>>>>>?????????¾?????»?????¸?? ?}x>q????????§?????????????????????§?? ?xyz|z|xs???¸????????¾??¾???????? ?>>>>>>????????¾??¾????????¸??? ?{xz|z|xq??§?????????????????????§?? ?{u??¸????»??»??¾??¾??¾??????? ?>>>>>>???????¾??¾??¾??»??»????¸?? ?}s??§?????????????????????§?? ?}q???¸?????????????????? ?>>>>>>>??????????????????¸??? ?yu??§?????????????????????§?? ?{s??¸?????»????????? ?xyz|z|:Ú>;>Ø:Ú>;>Øz|z|xq?????????»?????¸?? ?{s??§?????????????????????§?? ?}u???¸???????¾??¾??¾?? ?{s??¾??¾??¾???????¸??? ?}u??§?????????????????????§?? ?ys??¸????»??»???¾??¾??? ?}u???¾??¾???»??»????¸?? ?{q??§?????????????????????§?? ? p? r? t? r? t?=p?yu???¸?????????¾???? ?{s????¾?????????¸??? ?}>>>>?·?? ?=p?ys??¸????»??»???????? ?}u????????»??»????¸?? ?{>>>>?§?????????????????????§? ?>>>>>?¹??? ?=p?yu???¸????????????? ?y>q?????????????¸??? ?}>>>>?§?????????????????????§? ?>>>>>?·???? ?{s??¸?????»???????? ?xyx>q????????»?????¸?? ?{s????·? ?>>>>>?§?????????????????????§? ?>>>>>?¹???? ?}u???¸??????????? ?xyx>q???????????¸??? ?}u????¹? ?>>>>>?§?????????????????????§? ?>>>>>?·???? ?yq??¸????»??»????? ?xyxq?????»??»????¸?? ?yq????·? ?>>>>>?§?????????????????????§? ?=?>>><? ?¹???? ?=p?:Ö>;>Ô>;>Ô>;>Ô>;>Ô>>><? ?§???????????¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­?¹? ?>>>?¹?·?¹?·?¹?·? ?>>>?¾?¾?¾?¾?¾?¾? ?>>>?????????????? ?}u?????????????? ?>>>?¾?¾?¾?¾?¾?¾? ?>>>?·?¹?·?¹?·?¹? ?>>>?¹?¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯????????????? ?>>>>??????? ?>>>>??????? ?>>>>?????????????? ?y>q?????????????? ?>>>>??????? ?>>>>??????? ?>>>>?????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:Û>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;>s?¹?¹? ?{;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Ùu?¹?¹? ?}Õ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:Û>s?¹?¹? ?{:×>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;>u?¹?¹? ?};>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Ù>q??? ?yÕ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?yxz|x<q? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹? ?>>>>?›?¼?¼?›?¼?¼?›?¼?¼?›?¼?¼?›?¼?¼?›?¼?¼?›?¼? ?{s?¼?›?¼?¼?›?¼?¼?›?¼?¼?›?¼?¼?›?¼?¼?›?¼?¼?›? ?>>>>?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯???????????§???????????????·? ?>>>>?¼???????????????????? ?}u????????????????????¼? ?>>>>?·???????????????§?????????????????????§? ?xyz|z|z|z|z|xq?¹? ?>>>>?¼???????????????????? ?yq????????????????????¼? ?>>>>?¹? ?xyz|z|z|z|z|xq?§?????????????????????§? ?{s?·? ?>>>>?›???????????????????? ?=p?y>>>?·? ?{s?§?????????????????????§? ?}u?¹? ?>>>>?¼????????????????????? ?=p?y>>>?¹? ?}u?§?????????????????????§? ?{s?·? ?>>>>?¼?????????????????????? ? p? r? t?=p?y>>>?·? ?{s?§?????????????????????§? ?}u?¹? ?>>>>?›?????? ?xyz|z|z|x>q??????????? ?=p?yq??????›? ?>>>>?¹? ?}u?§?????????????????????§? ?{s?·? ?>>>>?¼????? ?xyx>q??????????? ?=p?yq?????¼? ?>>>>?·? ?{s?§?????????????????????§? ?}u?¹? ?>>>>?¼???? ?xyx>q??????????? ?:Ö>;>Ô>:Ö>;>Ô>??????????? ?xyx>q????¼? ?>>>>?¹? ?}u?§?????????????????????§? ?{s?·? ?>>>>?›??? ?xyx>q?????????? ?>>>>>>?????????? ?xyx>q???›? ?>>>>?·? ?{s?§?????????????????????§? ?}u?¹? ?>>>>>??? ?xyx>q????????? ?>>>>>>>????????? ?xyx>q??? ?>>>>?¹? ?}u?§?????????????????????§? ?{s?·? ?>>>>>>>>:Û>:×>>>>>>>>>>>>>>>>>>>>>>>>>>:Û>:×>>>>>>>>?·? ?{s?§?????????????????????§? ?}u?¹? ?>>>>>>>>;>;>>>>>>>>>>>>>>>>>>>>>>>>>>;>;>>>>>>>>?¹? ?}u?§?????????????????????§? ?{s?·? ?>>>>>>>>ÙÕ>>>>>>>>>>>>>>>>>>>>>>>>>>ÙÕ>>>>>>>>?·? ?{s?§?????????????????????§? ?}u?¹? ?>>>>>>>>:Û>:×>>>>>>>>>>>>>>>>>>>>>>>>>>:Û>:×>>>>>>>>?¹? ?}u?§?????????????????????§? ?{s?·? ?>>>>>>>>;>;>>>>>>>>>>>>>>>>>>>>>>>>>>;>;>>>>>>>>?·? ?{s?§?????????????????????§? ?}u?¹? ?>>>>>>>>ÙÕ>>>>>>>>>>>>>>>>>>>>>>>>>>ÙÕ>>>>>>>>?¹? ?}u?§?????????????????????§? ?{s?·? ?>>>><? ? ?=?y<q? ? ? ? ? ? ? ? ?=?>>>>>><? ? ? ? ? ? ? ? ?=?y<q? ? ?=?>>>>?·? ?{s?§?????????????????????§? ?}u?¹? ?>>>>?»?? ?=p?y>>>>>????????? ?=p?y>>>?¹? ?}u?§?????????????????????§? ?yq?·? ?>>>>?¾??? ?=p?y>>>>>??¸??????¸?? ?=p?y>>>?·? ?yq?§?????????????????????§? ? p? p?=p?:Ö>;>Ô>:Ö>;>Ô>>>>?¾???? ?=p?y>>>>>???¸??¸??¸???? ?=p?y>>>?¹? ? p? p?=p?:Ö>;>Ô>:Ö>;>Ô>>>>>>?¹?·?¹?·? ?>>>>?»????? ?=p?y>>>>>????¸??¸?????? ?=p?y>>>?·?¹?·?¹? ?>>>>>>?¶??¶?§?????????????????????§??¶?? ?>>>>>>>????? ?>>>>?¾?????? ? p? r? t? r? t? r? t? p? ??????¸??¸??¸??? ?>>>>>>???¸??¸??¸?????? ? p? r? t? r? t? r? t? p? ??????¾? ?>>>>>????? ?>>>>>>??¶??§?????????????????????§?¶??¶? ?>>>>>>>>>>>>>>>>?¾??????????????????????¸??¸???? ?>>>>>>????¸??¸??????????????????????¾? ?>>>>>>>>>>>>>>>>?¶??¶?§?????????????????????§??¶?? ?>>>>>>>>>>>>>>>>?»?????????????????????¸??¸??¸??? ?>>>>>>???¸??¸??¸?????????????????????»? ?>>>>>>>>>>>>>>>>??¶??§?????????????????????§?¶??¶? ?>>>>>>>>>>>>>>>>?¾????????????????????¸??????¸?? ?>>>>>>??¸??????¸????????????????????¾? ?>>>>>>>>>>>>>>>>?¶??¶?§?????????????????????§??¶?? ?>>>>>>>>>>>>>>>>?¾???????????????????????????? ?>>>>>>????????????????????????????¾? ?>>>>>>>>>>>>>>>>??¶??§?????????????????????§?¶??¶? ?>>>>>><? ? ? ? ?=?>>>>?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?? ?>>>>>>??»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»?¾?»? ?>>>><? ? ? ? ?=?>>>>>>?¶??¶?§?????????????????????§??¶?? ?>>>>>>?¹?·?¹?·? ?>>>>>????????????????????????????? ?>>>>>>>????????????????????????????? ?>>>>?¹?·?¹?·? ?>>>>>>??¶??§?????????????????????§???? ?>>>>>>>????¹? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?·???? ?>>>>>>>????§?????????????????????§? ?ExyExEx:EÚ>;E>EØ:EÚ>;E>EØExExExq?·? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¹? ?ExyExEx:EÚ>;E>EØ:EÚ>;E>EØExExExq?§?????????????????????§? ?E{EEEEEEEEEEEs?¹? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?·? ?E{EEEEEEEEEEEs?§?????????????????????§? ?E}EEEEEEEEEEEu?·? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¹? ?E}EEEEEEEEEEEu?§?????????????????????§? ?E{EEEEEEEEEEEs?¹? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>><? ? ? ? ? ? ? ? ? ?=?>>>>>><? ? ? ? ? ? ? ? ? ?=?>>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?·? ?E{EEEEEEEEEEEs?§?????????????????????§? ?E}EEEEEEEEEEEu?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?? ?>>>>>??·?¹?·?¹?·?¹?·?¹? ?>>>>>>?¹?·?¹?·?¹?·?¹?·?? ?>>>>>?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹? ?E}EEEEEEEEEEEu?§?????????????????????§? ?E{EEEEEEEEEEE>q???????????????????? ?>>>>>>>????????·? ?>>>>>>?·???????? ?>>>>>>>???????????????????? ?EyEEEEEEEEEEEs?§?????????????????????§? ?E}EEEEEEEEEEEExEzE|EzE|Exq??›?¼?¼?›?? ?xyz|z|xq>>>>>>>>xyz|z|xq?¹? ?>>>>>>?¹? ?xyz|z|xq>>>>>>>>xyz|z|xq??›?¼?¼?›?? ?ExyEzE|EzE|ExEEEEEEEEEEEEu?§?????????????????????§? ?E{EEEEEEEEEEEEEEEEEs??¼?¼?¼?¼?? ?{xq>>>>>>xys?·? ?>>>>>>?·? ?{xq>>>>>>xys??¼?¼?¼?¼?? ?E{EEEEEEEEEEEEEEEEEs?§?????????????????????§? ?E}EEEEEEEEEEEEEEEEEu??¼?¼?¼?¼?? ?}:Ú>;>Ø:Ú>;>Øu?¹? ?>>>>>>?¹? ?}:Ú>;>Ø:Ú>;>Øu??¼?¼?¼?¼?? ?E}EEEEEEEEEEEEEEEEEu?§?????????????????????§? ?E{EEEEEEEEEEEEEEEEEs??›?¼?¼?›?? ?{s?·? ?>>>>>>?·? ?{s??›?¼?¼?›?? ?E{EEEEEEEEEEEEEEEEEs?§?????????????????????§? ?E}EEEEEEEEEEEEEEEEEu??????? ?}u?¹? ?>>>>>>?¹? ?}u??????? ?E}EEEEEEEEEEEEEEEEEu?§?????????????????????§? ?E{EEEEEEEEEEEEEEEEEs??????? ?{s?·? ?>>>>>>?·? ?{s??????? ?E{EEEEEEEEEEEEEEEEEs?§?????????????????????§? ?E}EEEEEEEEEEEEEEEEEu??›?¼?¼?›?? ?}u?¹? ?>>>>>>?¹? ?}u??›?¼?¼?›?? ?E}EEEEEEEEEEEEEEEEEu?§?????????????????????§? ?E{EEEEEEEEEEEEEEEEEs??¼?¼?¼?¼?? ?{s?·? ?>>>>>>?·? ?{s??¼?¼?¼?¼?? ?E{EEEEEEEEEEEEEEEEEs?§?????????????????????§? ?E}EEEEEEEEEEEEEEEEEu??¼?¼?¼?¼?? ?}u?¹? ?>>>>>>?¹? ?}u??¼?¼?¼?¼?? ?E}EEEEEEEEEEEEEEEEEu?§?????????????????????§? ?E{EEEEEEEEEEEEEEEEEs??›?¼?¼?›?? ?{s?·? ?>>>>>>?·? ?{s??›?¼?¼?›?? ?E{EEEEEEEEEEEEEEEEEs?§?????????????????????§? ?E}EEEEEEEEEEEEEEEEEu??????? ?}u?¹? ?>>>>>>?¹? ?}u??????? ?E}EEEEEEEEEEEEEEEEEu?§?????????????????????§? ?EyEEEEEEEEEEEEEEEEEq??????? ?{s?·? ?>>>>>>?·? ?{s??????? ?EyEEEEEEEEEEEEEEEEEq?§?????????????????????§? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? p? ??›?¼?¼?›?? ?}u?¹? ?>>>>>>?¹? ?}u??›?¼?¼?›?? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? p? ?§?????????????????????§??????????????????????¼?¼?¼?¼?? ?{s?·? ?>>>>>>?·? ?{s??¼?¼?¼?¼??????????????????????§?????????????????????§??º??º??º??º??º??º??º??º??º????¼?¼?¼?¼?? ?}>>>>>?¹? ?}>>>>>?·? ?y>>>>>?¹? ? p? r? t? r? t? p? ?¾?¾?¾?¾?¾?¾? ? p? r? t? r? t? p? ?????????º??º??º??º??º??º??º??º??º??§?????????????????????§?????????????????????????????????????????????????? ?>>>>>>??????????????????????????????????????????????????§?????????????????????§???»????»????»????»????»????»????»????»????»?????»????»????»?? ?>>>>>>??»????»????»?????»????»????»????»????»????»????»????»????»???§?????????????????????§?????????????????????????????????????????????????? ?>>>>>>??????????????????????????????????????????????????§?????????????????????¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤? ?>>>>>>?£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­??????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>>>?§????????????????????????????????????????????????????????????                                  ACorsixTH-0.70.0/CorsixTH/Campaigns/Four Corners.map000066400000000000000000005001541522247547500217360ustar00rootroot00000000000000??????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????N?;?;?;?:? ?>><? ? ?=?>>?N?;?;?;?:?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?D?DF?DG?@? ?>>?¹?¤? ?>>?M?DH?DF?DG?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?D?DG?D?@? ?>>?¢?­? ?>>?M?DF?D?D?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?DF?D?D?@? ?>>?¹?¤? ?>>?M?D?D?DH?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?DG?D?DH?@? ?>>?¢?­? ?>>?M?D?DG?DF?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?D?D?DF?@? ?>>?¹?¤? ?>>?M?DF?D?D?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?D?DG?D?@? ?>>?¢?­? ?>>?M?D?D?DG?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?DF?D?DH?@? ?>>?¹?¤? ?>>?M?DG?D?DF?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????L?C?C?C?O? ?>>?¢?­? ?>>?L?C?C?C?O?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>??? ?>>>???????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????? ?>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>????????????????????????????????????????????????? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>?¾?¾?¾? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>?¾?¾?¾? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾????????????????? ?>??¾?? ?>??????????? ?>??¾?? ?>?????????????????¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?xyz|z|z|z|z|z|z|x:Ú>;>Øxq?¾? ?xy:Ú>;>Øxz|z|z|z|z|x:Ú>;>Øxq?¾? ?xy:Ú>;>Øxz|z|z|z|z|z|z|xq?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>>?? ?y>q?? ?y>q?? ?y>q?? ?>>>????????????????????????????????????????????????? ?>>>>>:Û>:×>>:Û>:×>>:Û>:×>>>>>>????????????????????????????????????????????????? ?>>>>>;>;>>;>;>>;>;>>>>>>????????????????????????????????????????????????? ?>>>>>ÙÕ>>ÙÕ>>ÙÕ>>>>>>????????????????????????????????????????????????? ?>>><? ?=?y<q? ?=?y<q? ?=?y<q? ?=?>>>????????????????????????????????????????????????? ?>>>?¾? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t?=p?:Ö>;>Ô>;>Ô>;>Ô>;>Ô>>>????????????????????????????????????????????????? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>?¼?¹?¼? ?>>>?ª?¯?¯?¯?¯?¯?¯?¯?¯?«? ?>>>?¼?¹?¼? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾????????????????? ?>??¼?? ?>??????????? ?>??¼?? ?>?????????????????¾? ?>>>????????????????????????????????????????????????? ?>>>>?? ?xyz|z|z|z|z|z|z|x:Ú>;>Øx>q?? ?xy:Ú>;>Øxz|z|z|z|z|x:Ú>;>Øx>q?? ?xy:Ú>;>Øxz|z|z|z|z|z|z|x>q?? ?>>>????????????????????????????????????????????????? ?>>>>>:Û>:×>>:Û>:×>>:Û>:×>>>>>>????????????????????????????????????????????????? ?>>>>>;>;>>;>;>>;>;>>>>>>????????????????????????????????????????????????? ?>>>>>ÙÕ>>ÙÕ>>ÙÕ>>>>>>????????????????????????????????????????????????? ?>>><? ?=?y<q? ?=?y<q? ?=?y<q? ?=?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¨? ?{s?¨? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?§? ?}u?§? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?§? ?{s?§? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?§? ?}u?§? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?§? ?{s?§? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?§? ?}u?§? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?§? ?{s?§? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?§? ?}u?§? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?§? ?{s?§? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?©? ?}u?©? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>>?? ?y>q?? ?y>q?? ?y>q?? ?>>>????????????????????????????????????????????????? ?>>>>>:Û>:×>>:Û>:×>>:Û>:×>>>>>>????????????????????????????????????????????????? ?>>>>>;>;>>;>;>>;>;>>>>>>????????????????????????????????????????????????? ?>>>>>ÙÕ>>ÙÕ>>ÙÕ>>>>>>????????????????????????????????????????????????? ?>>><? ?=?y<q? ?=?y<q? ?=?y<q? ?=?>>>????????????????????????????????????????????????? ?>>>?¾? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t?=p?:Ö>;>Ô>;>Ô>;>Ô>;>Ô>>>????????????????????????????????????????????????? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>?¼?¹?¼? ?>>>?ª?¯?¯?¯?¯?¯?¯?¯?¯?«? ?>>>?¼?¹?¼? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾????????????????? ?>??¼?? ?>??????????? ?>??¼?? ?>?????????????????¾? ?>>>????????????????????????????????????????????????? ?>>>>?? ?xyz|z|z|z|z|z|z|x:Ú>;>Øx>q?? ?xy:Ú>;>Øxz|z|z|z|z|x:Ú>;>Øx>q?? ?xy:Ú>;>Øxz|z|z|z|z|z|z|x>q?? ?>>>????????????????????????????????????????????????? ?>>>>>:Û>:×>>:Û>:×>>:Û>:×>>>>>>????????????????????????????????????????????????? ?>>>>>;>;>>;>;>>;>;>>>>>>????????????????????????????????????????????????? ?>>>>>ÙÕ>>ÙÕ>>ÙÕ>>>>>>????????????????????????????????????????????????? ?>>><? ?=?y<q? ?=?y<q? ?=?y<q? ?=?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?{s?¾? ?{s?¾? ?{s?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?}u?¾? ?}u?¾? ?}u?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ?yq?¾? ?yq?¾? ?yq?¾? ?>>>????????????????????????????????????????????????? ?>>>?¾? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t?=p?:Ö>;>Ô>;>Ô>;>Ô>;>Ô>>>????????????????????????????????????????????????? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>?¾?¾?¾? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>?¾?¾?¾? ?>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>????????????????????????????????????????????????? ?>>>>?????????????????? ?>>>>???? ?>>>>??????????? ?>>>>???? ?>>>>?????????????????? ?>>>????????????????????????????????????????????????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>><? ? ?=?>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???????????????????????????????????????????????????????????????????????????????N?;?;?;?:? ?>>?¹?¤? ?>>?N?;?;?;?:?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?DG?D?DF?@? ?>>?¢?­? ?>>?M?DF?DG?D?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?DF?D?DH?@? ?>>?¹?¤? ?>>?M?DH?D?DF?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?D?D?D?@? ?>>?¢?­? ?>>?M?D?DF?D?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?DH?DF?DG?@? ?>>?¹?¤? ?>>?M?D?D?DG?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?D?D?D?@? ?>>?¢?­? ?>>?M?DG?D?DH?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?DG?D?DF?@? ?>>?¹?¤? ?>>?M?D?DH?DF?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????M?DF?DH?DG?@? ?>>?¢?­? ?>>?M?DF?DG?D?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????L?C?C?C?O? ?>>>??? ?>>?L?C?C?C?O?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>>>>>????????????????????????????????????????????????????????????                        A4CorsixTH-0.70.0/CorsixTH/Campaigns/Greyham Gardens.map000066400000000000000000005001541522247547500223670ustar00rootroot00000000000000??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤?????????????????????????????????????????????????????????????????????????????????????§???????????????????????????????????????????§?????????????????????????????????????????????????????????????????????????????????????§????????????????? ?xyz|z|z|xq?????????????????§?????????????????????????????????????????????????????????????????????????????????????§????????????????? ?{s?????????????????§?????????????????????????????????????????????????????????????????????????????????????§? ?xyz|xz|xz|xq????? ?}u????? ?xyz|xz|xz|xq?§?????????????????????????????????????????????????????????????????????????????????????§? ?{s????? ?{s????? ?{s?§?????????????????????????????????????????????????????????????????????????????????????§? ?}u????? ?}u????? ?}u?§?????????????????????????????????????????????????????????????????????????????????????§? ?ys????? ?{s????? ?{q?§?????????????????????????????????????????????????????????????????????????????????????§? ?{u?»?»?»?»? ?}u?»?»?»?»? ?}s?§?????????????????????????????????????????????????????????????????????????????????????§? ?}>q????? ?y>q????? ?yu?§?????????????????????????????????????????????????????????????????????????????????????§? ?yxz|z|xxz|z|xq?§?????????????????????????????????????????????????????????????????????????????????????§? ?{s?§?????????????????????????????????????????????????????????????????????????????????????§? ?}u?§?????????????????????????????????????????????????????????????????????????????????????§? ?yq?§?????????????????????????????????????????????????????????????????????????????????????§? ?{q??????? ?{s?§?????????????????????????????????????????????????????????????????????????????????????§? ?}u?????? ?xyx>q?????? ?}u?§?????????????????????????????????????????????????????????????????????????????????????§? ?yq????? ?xyx>q????? ?yq?§?????????????????????????????????????????????????????????????????????????????????????§? ? p? r? t? p? r? t? p? r? t? p? ??? ?xyxxxq??? ? p? r? t? p? r? t? p? r? t? p? ?§?????????????????????????????????????????????????????????????????????????????????????§?¶?????????????? ?{s??????????????¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶?????????????? ?}u??????????????¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶??·?¹?·?¹?·?¹?·?¹?·???? ?yq????·?¹?·?¹?·?¹?·?¹?·??¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶??·?¹?·?¹?·?¹?·?¹?·???? ?yq????·?¹?·?¹?·?¹?·?¹?·??¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶??·?¹?·?¹?·?¹?·?¹?·???? ?{s????·?¹?·?¹?·?¹?·?¹?·??¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶??·?¹?·?¹?·?¹?·?¹?·???? ?}u????·?¹?·?¹?·?¹?·?¹?·??¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶??·?¹?·?¹?·?¹?·?¹?·???? ?yq????·?¹?·?¹?·?¹?·?¹?·??¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶??·?¹?·?¹?·?¹?·?¹?·???? ?yq????·?¹?·?¹?·?¹?·?¹?·??¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶?????????????? ?{s??????????????¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶?????????????? ?}u??????????????¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶?????????????? ?y>q??????????????¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶???¾?¼?¹?¼?¾?? ?xyzzzxx|||xq??¾?¼?¹?¼?¾???¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶???¼?¾?¼?¾?¼?? ?{s??¼?¾?¼?¾?¼???¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶???¹?¼?¾?¼?¹?? ?}u??¹?¼?¾?¼?¹???¶?§?????????????????????????????????????????????????????????????????????????????????????§?¶???¼?¾?¼?¾?¼?? ?yq??????????????? ?y>q??????????????????¶?§???????????????????????????????????????????????????????????????????§?¶???¼?¼?¼?¼?¼?¼?¼?¼?¼?????? ?xyxz|xxz|xxz|xxz|xxq??????¼?¼?¼?¼?¼?¼?¼?¼?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¼????????¼?¼?¼?¼?¼?¼? ?}s?¼?¼?¼?¼?¼?¼?›?›?›?›?›?›?›?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?>>>>>>??????? ?}s?N?;?;?;?;?;?;?;?;?;?;?;?:?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?>>>>>>>>>>>>:Û>s?M?DF?D?D?DG?D?D?DG?D?DF?D?DH?@?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?>>>>>>>>>>>>;>q?M?DG?D?DH?D?D?DF?D?D?D?DG?DF?@?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?>>>>>>>>>>>>Ùu?M?D?DH?DF?D?DG?D?D?DH?D?DF?D?@?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?>>>>><? ? ? ? ? ? ?=?{u?L?C?C?C?C?C?C?C?C?C?C?C?O?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ? ? ? ? ? ? ?¼?¼?¼?¼?¼?¼? ?{u?¼?¼?¼?¼?¼?¼?›?›?›?›?›?›?›?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¼?¼?¼?¼?¼?¼?¼?¼?¼?????¹? ?yq?¹?????¼?¼?¼?¼?¼?¼?¼?¼?¼???¶?§???????????????????????????????????????????????????????????????????§?¶????????????????¼? ? p? r? r? r?=p?yq??????? ?y>q??¹?????¼?¹???????????¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¹? ?xyz|xxz|x>q??¹?¼?¹?¼?¹?¼? ?xyxz|z|z|xxq?¼?¹?¼?¹?¼?¹?? ?xyz|xxz|xq?¹???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?{x>q??????? ?y>q??????? ?xys?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¹? ?}xz|z|z|xxz|z|z|xu?¹???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?yq?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¹? ?yq?¹???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?{q??????¼?¹? ?{q?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¹? ?{u?¼?—? ?>>>>:Û>:×>>>>>?—?¼? ?}s?¹???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?}q?¹?—? ?>>>>;>;>>>>>?—?¹? ?yu?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¹? ?yq?¼?—? ?>>>>ÙÕ>>>>>?—?¼? ?yq?¹???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?{s?¹?—? ?>>><?=?y<q?=?>>>?—?¹? ?{s?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¹? ?}u?¼?—? ?>>>? ?{s? ?>>>?—?¼? ?}u?¹???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?yq?¹?—? ?>>>? ?}u? ?>>>?—?¹? ?yq?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¹? ?yq?¼?—? ?>>>? ?yq? ?>>>?—?¼? ?yq?¹???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?{s?¹?—? ?>>>? ? p? r? t? p? r? t? p? r? t? p? r? t? p? r? t? p? ? ?>>>?—?¹? ?{s?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¹? ?}u?¼?—? ?>>>?¾?¾?¾?¾?¾?????????¾?¾?¾?¾?¾? ?>>>?—?¼? ?}u?¹???¶?§???????????????????????????????????????????????????????????????????§?¶???¼? ?yq?¹?—? ?>>>?¾?¾?¾?¾?? ?>>>>>>>??¾?¾?¾?¾? ?>>>?—?¹? ?yq?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???¹? ? p? r? t? p? p? r? t? p? ?¼?—? ?>>>?¾?¾?¾?? ?>>>>>>>>>??¾?¾?¾? ?>>>?—?¼? ? p? r? t? p? p? r? t? p? ?¹???¶?§???????????????????????????????????????????????????????????????????§?¶???¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?—? ?>>>>???? ?>>>>>>>>>>>???? ?>>>?—?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼???¶?§???????????????????????????????????????????????????????????????????§?¶???????????????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????¶?§???????????????????????????????????????????????????????????????????§?¶???????????????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????¶?§???????????????????????????????????????????????????????????????????§?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶? ? ? ? ? ? ? ? ?=?>>>>>>>>>><? ? ? ? ? ? ? ? ?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?§???????????????????????????????????????????????????????????????????¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤?¾?¾? ?=?>>>>>>>><? ?¾?¾?£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­?????????????????????????????????????????????????????????????????????????????????????????§?¾?¾?¾? ?=?>>>>>><? ?¾?¾?¾?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?¾?¾?¾?¾? ?=?>>>><? ?¾?¾?¾?¾?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?N?;?;?;?:? ?>>>>?N?;?;?;?:?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?DG?DF?DH?@? ?>>>>?M?DF?D?DH?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?D?DF?@? ?>>>>?M?D?DF?DF?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?DH?D?D?@? ?>>>>?M?DG?D?DG?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?D?DG?@? ?>>>>?M?D?D?D?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?DF?D?@? ?>>>>?M?D?DF?D?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?DG?D?D?@? ?>>>>?M?D?D?DH?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?DH?D?@? ?>>>>?M?D?DG?D?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?D?DF?@? ?>>>>?M?D?D?D?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?D?D?@? ?>>>>?M?DF?DH?DF?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?DG?DH?@? ?>>>>?M?D?DG?D?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?DF?D?D?@? ?>>>>?M?DG?D?DH?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?DH?D?D?@? ?>>>>?M?D?D?DF?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?D?DF?@? ?>>>>?M?DH?D?D?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?D?DG?@? ?>>>>?M?D?D?DG?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?DG?D?DH?@? ?>>>>?M?D?DF?D?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?DF?D?@? ?>>>>?M?DG?D?D?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?D?D?D?@? ?>>>>?M?D?D?DH?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?DH?D?DG?@? ?>>>>?M?DF?D?D?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?M?DF?D?D?@? ?>>>>?M?DH?D?DG?@?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????©?L?C?C?C?O? ?>>>>?L?C?C?C?O?©????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>>>>??????????????????????????????????????????????????????????????Á-©"CorsixTH-0.70.0/CorsixTH/Campaigns/Holby.map000066400000000000000000005001541522247547500205040ustar00rootroot00000000000000???????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º??????????????????????????????????????????????????????????????????????????????????????????????????£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?«? ?>>>>>>?ª?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤????????????????????????????????????????????????????????????????????????????????§?????????????????????? ?>>>>>>>???????????????????§????????????????????????????????????????????????????????????????????????????????§? ?xyz|z|z|z|z|z|z|z|xq>>>>>>>>>>>xyz|z|z|xz|z|z|xq?§????????????????????????????????????????????????????????????????????????????????§? ?{s>>>>>>>>>>>{s?§????????????????????????????????????????????????????????????????????????????????§? ?}u>>>>>>>>>>>}u?§????????????????????????????????????????????????????????????????????????????????§? ?{s>>>>>>>>>>>{s?§????????????????????????????????????????????????????????????????????????????????§? ?}u>>><? ? ?=?>>>>}u?§????????????????????????????????????????????????????????????????????????????????§? ?{q>>>?½?½? ?>>>>ys?§????????????????????????????????????????????????????????????????????????????????§? ?}:×>>>>?½?½? ?>>>>:Û>u?§????????????????????????????????????????????????????????????????????????????????§? ?y;>>>>?½?½? ?>>>>;>q?§????????????????????????????????????????????????????????????????????????????????§? ?{Õ>>>?½?½? ?>>>>Ùs?§????????????????????????????????????????????????????????????????????????????????§? ?}q>>>?½?½? ?>>>>yu?§????????????????????????????????????????????????????????????????????????????????§? ?{s>>>>??? ?>>>>{s?§????????????????????????????????????????????????????????????????????????????????§? ?}u>>>>>>>>>>>}u?§????????????????????????????????????????????????????????????????????????????????§? ?{s>>>>>>>>>>>{s?§????????????????????????????????????????????????????????????????????????????????§? ?}u>>>>>>>>>>>}u?§????????????????????????????????????????????????????????????????????????????????§? ?yq>>>>>>>>>>>yq?§????????????????????????????????????????????????????????????????????????????????§? ?=p?y>>>>>>>>>>>>>>>>>>>>>>?·? ?{s?¾?¾?¾?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?}u?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼? ?>>>>>>>>>>>>?·? ?}u?¾?¹?¤?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?{>q????????????? ?>>>>>>>>>>>>?·? ?{s?¾?¢?­?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?}x|||xq? ?>>>>>? ?>>>>>>>>>>>>?·? ?}u?¾?¹?¤?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?{s? ?>>>>>? ?>>>>>>>>>>>>?·? ?{s?¾?¢?­?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?}u? ?>>>>>? ?>>>>>>>>>>>>?·? ?}u?¾?¹?¤?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?{s? ?>>>>>? ?>>>>>>>>>>>>?·? ?{s?¾?¢?­?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?}u? ?>>>>>? ?>>>>>>>>>>>>?·? ?}u?¾?¹?¤?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?{s? ?=?>>><? ? ?>>>>>>>>>>>>?·? ?{s?¾?¢?­?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?}u?¼? ?>>>>?? ?>>>>>>>>>>>>?·? ?}u?¾?¹?¤?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?{s?¼? ?>>>>>>>>>>>>>>>>>>?·? ?{s?¾?¢?­?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?}u?¼? ?>>>>>>>>>>>>>>>>>>?·? ?}u?¾?¹?¤?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?{q?¼? ?>>>>>>>>>>>>>>>>>>?·? ?{s?¾?¢?­?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?}>>>>>>>>>>>?·? ?}u?¾?¹?¤?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?{s?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼? ?>>>>>>>>>>>>?·? ?{s?¾?¢?­?¾?§????????????????????????????????????????????????????????????????????????????????§?¾? ?}u?¹?¹?¹?¹?¹?¹?¹?¹?¹?¹?¹?¹? ?>>>>>>>>>>>>?·? ?}u?¾?¾?¾?¾?§????????????????????????????????????????????????????????????????????????????????§?? ?y>q????????????? ?>>>>>>>>>>>>>?? ?y>q?????§????????????????????????????????????????????????????????????????????????????????§? ?xyxz|z|z|z|z|z|xq>>>>>>>>>>>>zyx|xz|xq?§????????????????????????????????????????????????????????????????????????????????§? ?{s>>>>>>>>>>>>{s?§????????????????????????????????????????????????????????????????????????????????§? ?}u>>>>>>>>>>>>}u?§????????????????????????????????????????????????????????????????????????????????§? ?{s>>>>>>>>>>>>{s?§????????????????????????????????????????????????????????????????????????????????§? ?}u>>>><? ? ?=?>>>>}u?§????????????????????????????????????????????????????????????????????????????????§? ?{q>>>>?½?½? ?>>>>ys?§????????????????????????????????????????????????????????????????????????????????§? ?}:×>>>>?½?½? ?>>>>:Û>u?§????????????????????????????????????????????????????????????????????????????????§? ?y;>>>>?½?½? ?>>>>;>q?§????????????????????????????????????????????????????????????????????????????????§? ?{Õ>>>>?½?½? ?>>>>Ùs?§????????????????????????????????????????????????????????????????????????????????§? ?}q>>>>?½?½? ?>>>>yu?§????????????????????????????????????????????????????????????????????????????????§? ?{s>>>>>??? ?>>>>{s?§????????????????????????????????????????????????????????????????????????????????§? ?}u>>>>>>>>>>>>}u?§????????????????????????????????????????????????????????????????????????????????§? ?{s>>>>>>>>>>>>{s?§????????????????????????????????????????????????????????????????????????????????§? ?}u>>>>>>>>>>>>}u?§????????????????????????????????????????????????????????????????????????????????§? ?yq>>>>>>>>>>>>yq?§????????????????????????????????????????????????????????????????????????????????§? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? p? ? ?=?>>>>>><? ? ? p? r? t? r? t? r? t? p? r? t? r? t? r? t? p? ?§????????????????????????????????????????????????????????????????????????????????¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?«? ?>>>>>>?ª?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­?????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>>>>>>?º????????????????????????????????????????????????????????????¸%µCorsixTH-0.70.0/CorsixTH/Campaigns/Hoppalong.map000066400000000000000000005001541522247547500213560ustar00rootroot00000000000000???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?·?·?·?·?·?·?·?·?·?·?·?·?·?·?·?·?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?¸?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¸?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?·?¼????????¾?¾?¾?¾?¾?¼?·?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?¸?¼? ?>>>>>>??????¼?¸?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?·?¼? ?>>>>>>>>>>?¼?·?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?¸?¼? ?>>>>>>>>>>?¼?¸?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?·?¼? ?>>>>>>>>>>?¼?·?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?¸?¼? ?>>>>><?=?>>>?¼?¸?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?·?¼? ? ? ? ? ? ? ? ?>>>?¼?·?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?¸?¼?¼?¼?¼?¼?¼?¼?¼? ?>>>?¼?¸?§???????????????????????????????????????????????????????????????????????????????????????????????????????????????§?·????????? ?>??·?§?????????????????????????????????????????????????????????????????£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­?¸? ?KxyKzK|KzK|KzK|Kx:KÚ>;K>KØKxq?¸?¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤???????????????????§?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·? ?K{KKKKKKKKKKKs?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?§???????????????????§?¸????????????????????????????????????¹?¹?¹?¹?¹?¹?¹?¹?¹?¹?¹? ?K}KKKKKKKKKKKu?¹?¹?¹?¹?¹?¹?¹?¹?¹?¹?¹????????????????????????????????????¸?§???????????????????§?·? ?KxyKzK|KzK|KzK|KxKzK|KzK|KzK|Kxq??????? ?KxyKzK|KzK|KzK|KzK|Kx>q???????????? ?KyKKKKKKKKKKK>q???????????? ?KxyKzK|KzK|KzK|KzK|Kxq??????? ?KxyKzK|KzK|KzK|KxKzK|KzK|KzK|Kxq?·?§???????????????????§?¸? ?K{KKKKKKKKKKKKKKs??????? ?K{KKKKKKKKKKxKzK|KxKzK|KxKzK|KxKzK|KxKKKKKKKKKKKKKxKzK|KxKzK|KxKzK|KxKzK|KxKKKKKKKKKKs??????? ?K{KKKKKKKKKKKKKKs?¸?§???????????????????§?·? ?K}KKKKKKKKKKKKKKu??????? ?K}KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKu??????? ?K}KKKKKKKKKKKKKKu?·?§???????????????????§?¸? ?K{KKKKKKKKKKKKKKs??????? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKs??????? ?K{KKKKKKKKKKKKKKs?¸?§???????????????????§?·? ?K}KKKKKKKKKKKKKKu??????? ?K}KKKKKKKKKq??????? ?KyKKKKKKKKKs?¹??????????? ?K{KKKKKKKKKKKs???????????¹? ?K{KKKKKKKKK>q??????? ?KyKKKKKKKKKKKKKKs?¸?§???????????????????§?·? ?K}KKKKKKKKKKKKKKKxKzK|KzK|KzK|KxKKKKKKKKKKu?¹??????????? ?K}KKKKKKKKKKKu???????????¹? ?K}KKKKKKKKKKxKzK|KzK|KzK|KxKKKKKKKKKKKKKKKu?·?§???????????????????§?¸? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKs?¹???º?º?º?º?º?º??? ?KyKKKKKKKKKKKq???º?º?º?º?º?º???¹? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKs?¸?§???????????????????§?·? ?K}KKKKKKKKKKKKKKKKu??? ?K}KKKKKKKKKKKs?¹???¾?¾?????????¾?¾? ?K{KKKs?¾?¾?????????¾?¾???¹? ?K{KKKKKKKKKKK>u??? ?K}KKKKKKKKKKKKKKKKs?¸?§???????????????????§?·? ?K}KKKKKKKKKKKKKKKKKzK|KzK|KKKKKKKKKKKKu?¹???¾?¾? ?KxyKzK|KzK|Kxq?¾?¾? ?K}KKKu?¾?¾? ?KxyKzK|KzK|Kxq?¾?¾???¹? ?K}KKKKKKKKKKKKzK|KzK|KKKKKKKKKKKKKKKKKu?·?§???????????????????§?¸? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKs?¹????? ?KyKKKKK>q??? ?KyKKK>q??? ?KyKKKKK>q?????¹? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKs?¸?§???????????????????§?·? ?K}KKKKKKKKKKKKKK;>Ô>;>Ô>p>???¹? ?=p?:Ö>;>Ô>;>Ô>>>?¸?·?¸?·?¸?·?¸?·?·?·?·?¸?·?¸?·?¸?·?¸? ?>>>?¹?¹?? ?>KyKKKKKKKKKKKKKKKKKKKKKKKq>>>??¹?¹? ?>>>?¸?·?¸?·?¸?·?¸?·?·?·?·?¸?·?¸?·?¸?·?¸? ?>>>?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?????????????????? ?>>>>??????????????????? ?>>>>??? ?>>:KÛ>KKKKKKKKKKKKKKKKKKKKKKK:×>>>>??? ?>>>>??????????????????? ?>>>>??????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;K>KKKKKKKKKKKKKKKKKKKKKKK;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>KÙKKKKKKKKKKKKKKKKKKKKKKKÕ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:KÛ>KKKKKKKKKKKKKKKKKKKKKKK:×>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;K>KKKKKKKKKKKKKKKKKKKKKKK;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ?=?>>KÙKKKKKKKKKKKKKKKKKKKKKKKÕ>>><? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸? ?>>>?¸?·?¸?·?¸?·?¸?·?·?·?·?¸?·?¸?·?¸?·?¸? ?>>>?¹?¹? ?=?>KyKKKKKKKKKKKKKKKKKKKKKKKq>><? ?¹?¹? ?>>>?¸?·?¸?·?¸?·?¸?·?·?·?·?¸?·?¸?·?¸?·?¸? ?>>>?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?·?¸?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤?·??????? ?>???????·?N?;?;?:?·??????? ?>??¹?? ?=?KyKKKKKKKKKKKKKKKKKKKKKKKq>><? ??¹?? ?>???????·?N?;?;?:?·??????? ?>???????·?£?¯?¯?¯?¯?¯?¯?¯?¯?¯??????????§?¸? ?KxyKzK|KzK|Kx:KÚ>;K>KØKxKzK|KzK|Kxq?¸?M?DH?DF?@?¸? ?KxyKzK|KzK|Kx:KÚ>;K>KØKxq?¹??? ?KxyKxKKKKKKKKKKKKKKKKKKKKKKKKKxKxq???¹? ?Kxy:KÚ>;K>KØKxKzK|KzK|Kxq?¸?M?D?DF?@?¸? ?KxyKzK|KzK|Kx:KÚ>;K>KØKxKzK|KzK|Kxq?¸?§???????????????????§?·? ?K{KKKKKKKKKKKKKKs?·?M?D?DG?@?·? ?K{KKKKKKKKKs?¹??? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKs???¹? ?K{KKKKKKKKKs?·?M?DG?D?@?·? ?K{KKKKKKKKKKKKKKs?·?§???????????????????§?¸? ?K}KKKKKKKKKKKKKKu?¸?M?DF?DG?@?¸? ?K}KKKKKKKKKu?¹??? ?K}KKKKKKKKKKKKKKKKKKKKKKKKKKKu???¹? ?K}KKKKKKKKKu?¸?M?DF?DG?@?¸? ?K}KKKKKKKKKKKKKKu?¸?§???????????????????§?·? ?K{KKKKKKKKKKKKKKs?·?L?C?C?O?·? ?K{KKKKKKKKKs?¹??? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKs???¹? ?K{KKKKKKKKKs?·?L?C?C?O?·? ?K{KKKKKKKKKKKKKKs?·?§???????????????????§?¸? ?K}KKKKKKKKKKKKKKu?¸?·?·?·?·?¸? ?K}KKKKKKKKKu?¹??? ?K}KKKKKKKKKKKKKKKKKKKKKKKKKKKu???¹? ?K}KKKKKKKKKu?¸?·?·?·?·?¸? ?K}KKKKKKKKKKKKKKu?¸?§???????????????????§?·? ?K{KKKKKKKKKKKKKK>q??????? ?KyKKKKKKKKKs?¹??? ?KyKKKKKKKKKKKKKKKKKKKKKKKKKKKq???¹? ?K{KKKKKKKKK>q??????? ?KyKKKKKKKKKKKKKKs?·?§???????????????????§?¸? ?K}KKKKKKKKKKKKKKKxKzK|KzK|KzK|KxKKKKKKKKKKu?¹??? ? p?=p?KyKKKKKu??? ?K}KKKKKKKKKKKs?¹???º?º?º?º?º?º??????? ?KyKKK>q???????º?º?º?º?º?º???¹? ?K{KKKKKKKKKKK>u??? ?K}KKKKKKKKKKKKKKKKs?·?§???????????????????§?¸? ?K}KKKKKKKKKKKKKKKKKzK|KzK|KKKKKKKKKKKKu?¹???º?º?º?º?º?º??? ?KxyKzK|KxKKKKKxKzK|Kxq???º?º?º?º?º?º???¹? ?K}KKKKKKKKKKKKzK|KzK|KKKKKKKKKKKKKKKKKu?¸?§???????????????????§?·? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKs?¹??????????? ?K{KKKKKKKKKKKs???????????¹? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKs?·?§???????????????????§?¸? ?K}KKKKKKKKKKKKKKq???????????? ?KyKKKKKKKKKKK>q???????????? ?KyKKKKKKKKKs??????? ?K{KKKKKKKKKKKKKKs?·?§???????????????????§?¸? ?K}KKKKKKKKKKKKKKu??????? ?K}KKKKKKKKKKxKzK|KxKzK|KxKzK|KxKzK|KxKKKKKKKKKKKKKxKzK|KxKzK|KxKzK|KxKzK|KxKKKKKKKKKKu??????? ?K}KKKKKKKKKKKKKKu?¸?§???????????????????§?·? ?K{KKKKKKKKKKKKKKs??????? ?K{KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKs??????? ?K{KKKKKKKKKKKKKKs?·?§???????????????????§?¸? ?K}KKKKKKKKKKKKKKu??????? ?K}KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKu??????? ?K}KKKKKKKKKKKKKKu?¸?§???????????????????§?·? ?KyKKKKKKKKKKKKKKq??????? ?KyKKKKKKKKK>>>>>?·???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????½? ?>>>>>>?½???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????·? ?>>>>>>?·???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????½? ?>>>>>>?½???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????·? ?>>>>>>?·???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????½? ?>>>>>>?½???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????·? ?>>>>>>?·???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????½? ?>>>>>>?½???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????·? ?>>>>>>?·???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????½? ?>>>>>>?½??????????????????????????????????????????????????????????????????????£?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¤?·? ?>>>>>>?·?£?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¤?????????????????????§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?½? ?>>>>>>?½?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?????????????????????ª?¯?°?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?­?·? ?>>>>>>?·?¢?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?°?¯?«?????????????????????§?¾?§??????????????????????????????¼?¼?¼???????????????½? ?>>>>>>?½???????????????¼?¼?¼??????????????????????????????§?¾?§?????????????????????ª?¯?«? ?ExyEzE|Ex:×>>>>>>>>>>:AxÛ>AzA|AzA|AzA|AzA|AzA|Axq?N?;?:? ?xyz|z|z|z|z|xq?·? ?>>>>>>?·? ?xyz|z|z|z|z|xq?N?;?:? ?AxyAzA|AzA|AzA|AzA|AzA|Ax:×>>>>>>>>>>:ExÛ>EzE|Exq?ª?¯?«?????????????????????§?¹?§? ?E{EEE;>>>>>>>>>>;A>AAAAAAAAAAAs?M?DF?@? ?{s?½? ?>>>>>>?½? ?{s?M?DF?@? ?A{AAAAAAAAAAA;>>>>>>>>>>;E>EEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEÕ>>>>>>>>>>AÙAAAAAAAAAAAu?L?C?O? ?}u?·? ?>>>>>>?·? ?}u?L?C?O? ?A}AAAAAAAAAAAÕ>>>>>>>>>>EÙEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEE<q? ? ? ? ? ? ? ? ? ? ? p?=p?AyAAAAAAAAA>q???? ?y>q?? ?>>>>>>>?? ?y>q???? ?AyAAAAAAAAA>:Û>:×>>>>>>>>>>>:Û>:×>>:AxÛ>AxAAAAAAAAAAs?º?¾?º?¾?º?¾?º?¾?º?¾?º? ?E{EEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEu?¾?º?¾?º?¾?º?¾?º?¾?¹?¾? ?A}AAAAAAAAAAA;>>;>;>>>>>>>>>>>;>;>>;A>AAAAAAAAAAAu?¾?¹?¾?º?¾?º?¾?º?¾?º?¾? ?E}EEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEE>q?????????º?¹?º? ?AyAAAAAAAAAAAÕ>>ÙÕ>>>>>>>>>>>ÙÕ>>AÙAAAAAAAAAAAq?º?¹?º????????? ?EyEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEEExEzE|EzE|EzE|Exq?¾?¹?¾? ? p? r? t? r? t? r? t? r? t? r? t? p? ? ? ? p? r? t? r? t? r? t? r? t? r? t? p? ? ?=?>>>>>><? ? ? p? r? t? r? t? r? t? r? t? r? t? p? ? ? ? p? r? t? r? t? r? t? r? t? r? t? p? ?¾?¹?¾? ?ExyEzE|EzE|EzE|ExEEEEs?§?¾?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs?º?¾?º?¾?º?¾?º?¾?º?¾?º?¾?º?¾?º?¾?º?¾???????????????? ?>>>>>>????????????????¾?º?¾?º?¾?º?¾?º?¾?º?¾?º?¾?º?¾?º?¾?º? ?E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEEEEEEEEEu?¾?????????????????º? ?xyz|xz|xz|xz|xq? ?>>>>>>? ?xyz|xz|xz|xz|xq?º?????????????????¾? ?E}EEEEEEEEEEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs?º? ?xyz|z|z|z|z|z|xq?¾? ?{s? ?>>>>>>? ?{s?¾? ?xyz|z|z|z|z|z|xq?º? ?E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEEEEEEEEEEu?¾? ?{s?º? ?}u? ?>>>>>>? ?}u?º? ?{s?¾? ?E}EEEEEEEEEEEs?§?¾?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs?º? ?}u?¾? ?{s? ?>>>>>>? ?{s?¾? ?}u?º? ?E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEEEEEEEEEu?¾? ?{s?º? ?}u? ?>>>>>>? ?}u?º? ?{s?¾? ?E}EEEEEEEEEEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs?º? ?}u?¾? ?{s? ?>>>>>>? ?{s?¾? ?}u?º? ?E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEEEEEEEEEEu?¾? ?{s?º? ?}u? ?>>>>>>? ?}u?º? ?{s?¾? ?E}EEEEEEEEEEEs?§?¾?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs?º? ?}u?¾? ?{s? ?>>>>>>? ?{s?¾? ?}u?º? ?E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEEEEEEEEEu?¾? ?{s?º? ?}u? ?>>>>>>? ?}u?º? ?{s?¾? ?E}EEEEEEEEEEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs?º? ?}u?¾? ?{s? ?>>>>>>? ?{s?¾? ?}u?º? ?E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEEEEEEEEEEu?¾? ?{s?º? ?}u? ?>>>>>>? ?}u?º? ?{s?¾? ?E}EEEEEEEEEEEs?§?¾?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs?º? ?}u?¾? ?yq? ?>>>>>>? ?yq?¾? ?}u?º? ?E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEEEEEEEEEu?¾? ?{s?º? ?y>>>>>? ? p? r? t? r? t? r? t?=p?yq?º? ?{s?¾? ?E}EEEEEEEEEEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs?º? ?}u?¾? ?{s?¶?¶?¶?¶?¶?¶?¶?¶? ?>>>>>>?¶?¶?¶?¶?¶?¶?¶?¶? ?{s?¾? ?}u?º? ?E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEEEEEEEEEEu?¾? ?{s?º? ?{s?¶???????? ?>>>>>>????????¶? ?{s?º? ?{s?¾? ?E}EEEEEEEEEEEs?§?¾?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs?º? ?}u?¾? ?{s?¶? ?>>>>>? ?>>>>>>? ?>>>>>?¶? ?{s?¾? ?}u?º? ?E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEEEEEEEEE>u?? ?y>q?? ?yq?¶? ?>>>>>? ?>>>>>>? ?>>>>>?¶? ?y>q?? ?y>q?? ?E}EEEEEEEEEEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs>>>p>:Ö>;>Ô>p>r>t>r>t>p>:Ö>;>Ô>p>>>>p>:Ö>;>Ô>p>?¶? ?>>>>>? ?>>>>>>? ?>>>>>?¶? ?p>:Ö>;>Ô>p>>>>p>:Ö>;>Ô>p>r>t>r>t>p>:Ö>;>Ô>p>>>>E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEEEEEEEEEEu>>>>>>>>>>>>>>>>>>>>>>>>>?¶? ?>>>>>? ?>>>>>>? ?>>>>>?¶? ?>>>>>>>>>>>>>>>>>>>>>>>>>E}EEEEEEEEEEEs?§?¾?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEs>>>>>>>>>>>>>>>>>>>>>>>>>?¶? ?>>>>>? ?>>>>>>? ?>>>>>?¶? ?>>>>>>>>>>>>>>>>>>>>>>>>>E{EEEEEEEEEEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEEEEEEEEEu>>><? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>>>>>>?¶? ?=?>>><? ? ?>>>>>>? ?=?>>><? ?¶? ?>>>>>>>><? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>E}EEEEEEEEEEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEEEEEEEEEq>>>?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼? ?>>>>>>>>>??? ?>>>>?? ?>>>>>>>?? ?>>>>??? ?>>>>>>>>?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾? ?>>>EyEEEEEEEEEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEEEE;>Ô>>>>?¼???????????¾? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¾???????????¼? ?>>>:Ö>;>Ô>>>>>>?¾? ?KxyKzK|KzK|KzK|Kxq?¼? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¼? ?KxyKzK|KzK|KzK|Kxq?¾? ?>>>>>>?¹? ?E{EEEEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEEEu?·? ?>>>>>>?¼? ?K{KKKKKKKs?¾? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¾? ?K{KKKKKKKs?¼? ?>>>>>>?·? ?E}EEEEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEEEs?¹? ? ? ?=?>>>?¾? ?K}KKKKKKKu?¼? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¼? ?K}KKKKKKKu?¾? ?>>><? ? ? ?¹? ?E{EEEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEEEEu?·?¹?·?¹? ?>>>?¼? ?K{KKKKKKKs?¾? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¾? ?K{KKKKKKKs?¼? ?>>>?¹?·?¹?·? ?E}EEEEEs?§?¾?§?????????????????????ª?¯?«? ?E}EEEEE>q????·? ?>>>?¾? ?K}KKKKKKKu?¼? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¼? ?K}KKKKKKKu?¾? ?>>>?·???? ?EyEEEEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEEEExExExq?¹? ?>>>?¼? ?K{KKKKKKKs?¾? ?>><? ? ?=?>><? ? ? ? ? ? ? ? ?=?>>>>>><? ? ? ? ? ? ? ? ?=?>><? ? ?=?>>?¾? ?K{KKKKKKKs?¼? ?>>>?¹? ?ExyExExEEEEEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEEEEEEs?·? ?>>>?¾? ?K}KKKKKKKu?¼? ?>>?¼?·? ?>>?£?¯?¯?¯?¯?¯?¯?¤? ?>>>>>>?£?¯?¯?¯?¯?¯?¯?¤? ?>>?·?¼? ?>>?¼? ?K}KKKKKKKu?¾? ?>>>?·? ?E{EEEEEEEEu?ª?¯?«?????????????????????§?¾?§? ?E{EEEEEEEEu?¹? ?>>>?¼? ?K{KKKKKKKq?¾? ?>>?·?¼? ?>>?§?N?;?;?:?¾?¹?§? ??§?¹?¾?N?;?;?:?§? ?>>?¼?·? ?>>?¾? ?KyKKKKKKKs?¼? ?>>>?¹? ?E}EEEEEEEEs?§?¾?§?????????????????????ª?¯?«? ?E}EEEEEEEEq?·? ?>>>?¾? ?K}KKKKKKK>q?? ?>>?¼?·? ?>>?§?M?DF?DG?@?¾?¹?§? ?:AÚy>;A>AØ:AÚ>;A>AØq?§?¹?¾?M?DF?DG?@?§? ?>>?·?¼? ?>>>?? ?KyKKKKKKKu?¾? ?>>>?·? ?EyEEEEEEEEu?ª?¯?«?????????????????????§?¹?§? ?E{EEEEEEEEs?¹? ?>>>?¼? ?K{KKKKKKK:×>>>>>?·?¼? ?>>?§?M?DG?DF?@?¾?¹?§? ?AyAAAAAq?§?¹?¾?M?DG?DF?@?§? ?>>?¼?·? ?>>>>:KÛ>KKKKKKKs?¼? ?>>>?¹? ?E{EEEEEEEEs?§?¹?§?????????????????????ª?¯?«? ?E}EEEEEEEEu?·? ?>>>?¾? ?K}KKKKKKK;>>>>>?¼?·? ?>>?§?L?C?C?O?¾?¹?§? ?AyAAAAAq?§?¹?¾?L?C?C?O?§? ?>>?·?¼? ?>>>>;K>KKKKKKKu?¾? ?>>>?·? ?E}EEEEEEEEu?ª?¯?«?????????????????????§?¾?§? ?EyEEEEEEEEq?¹? ?>>>?¼? ?KyKKKKKKKÕ>>>>>?·?¼? ?>>?§?¾?¾?¾?¾?£?¯?­? ?AyAAAAAq?¢?¯?¤?¾?¾?¾?¾?§? ?>>?¼?·? ?>>>>KÙKKKKKKKq?¼? ?>>>?¹? ?EyEEEEEEEEq?§?¾?§?????????????????????¢?¯?­? ? p? r? t? p? p? p? r? t? p? ?·? ?>>>?¾? ? p? r? t? r? t? r? t? p? ? ?=?>>?¼?·? ?>>?§?¹?¹?¹?¹?§??? ?AyAAAAA>q???§?¹?¹?¹?¹?§? ?>>?·?¼? ?>><? ? ? p? r? t? r? t? r? t? p? ?¾? ?>>>?·? ? p? r? t? p? p? p? r? t? p? ?¢?¯?­???????????¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹? ?>>>?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾? ?>>?·?¼? ?>>?¢?¯?¯?¯?¯?­? ?AxyAxAAAAAAAxAxq?¢?¯?¯?¯?¯?­? ?>>?¼?·? ?>>?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼? ?>>>?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?·?¹?????????????????????????? ?>>>>????????????? ?>>>??? ?>>>??????? ?AyAAAAAAAAA>q??????? ?>>>??? ?>>>????????????? ?>>>>??????????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:AxÛ>AxAxAxAxAAAAAAAAAAAxAxAxAxAx:×>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;A>AAAAAAAAAAAAAAAAAAA;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>AÙAAAAAAAAAAAAAAAAAAAÕ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:AÛ>AAAAAAAAAAAAAAAAAAA:×>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;A>AAAAAAAAAAAAAAAAAAA;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>AÙAAAAAAAAAAAAAAAAAAAÕ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ?=?>><? ? ?=?>><? ? ? p? p? p? p?=p?AyAAAAAAAAA><? ? ?=?>><? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼? ?>>>?¹?¼?¹?¼?¹?¼? ?>>>?¹?¼?¹?¼?¹?¼? ?>>?·?¼? ?>>?£?¯?¯?¯?¯?¤? ?AyAAAAAAAAAq?£?¯?¯?¯?¯?¤? ?>>?¼?·? ?>>?¼?¹?¼?¹?¼?¹? ?>>>?¼?¹?¼?¹?¼?¹? ?>>>?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹?¼?¹???????????£?¯?¤?¹?½?½?½?½?½?½? ?>>>?½?½?½?½?½?½? ?>>>?½?½?½?½?½?¹? ?>>?¼?·? ?>>?§?¹?¹?¹?¹?§? ? p?=p?AyAAAAA>?·?¼? ?>>?¹?½?½?½?½?½? ?>>>?½?½?½?½?½?½? ?>>>?½?½?½?½?½?½?¹?£?¯?¤?????????????????????§?¾?§?¼??????? ?>??????? ?>??????¼? ?>>?·?¼? ?>>?§?¾?¾?¾?¾?¢?¯?¤? ?AyAAAAAq?£?¯?­?¾?¾?¾?¾?§? ?>>?¼?·? ?>>?¼?????? ???????? ?>???????¼?§?¾?§?????????????????????ª?¯?«?¹? ?xyz|z|x:Ú>;>Øxz|z|xq? ?:Úy>;>Øxz|xxq?¹? ?>>?¼?·? ?>>?§?N?;?;?:?¾?¹?§? ?AyAAAAAq?§?¹?¾?N?;?;?:?§? ?>>?·?¼? ?>>?¹? ?xyxz|x:Ú>;>Øq? ?xyz|z|x:Ú>;>Øxz|z|xq?¹?ª?¯?«?????????????????????§?¹?§?¼? ?{s? ?{s?¼? ?>>?·?¼? ?>>?§?M?DG?DF?@?¾?¹?§? ?AyAAAAAq?§?¹?¾?M?DF?DG?@?§? ?>>?¼?·? ?>>?¼? ?{s? ?{s?¼?§?¹?§?????????????????????ª?¯?«?¹? ?}u? ?}u?¹? ?>>?¼?·? ?>>?§?M?DF?DG?@?¾?¹?§? ?AyAAAAAq?§?¹?¾?M?DG?DF?@?§? ?>>?·?¼? ?>>?¹? ?}u? ?}u?¹?ª?¯?«?????????????????????§?¾?§?¼? ?yq? ?yq?¼? ?>>?·?¼? ?>>?§?L?C?C?O?¾?¹?§? ?:Ö>;>Ô>:Ö>;>Ô>?§?¹?¾?L?C?C?O?§? ?>>?¼?·? ?>>?¼? ?yq? ?yq?¼?§?¾?§?????????????????????ª?¯?«?¹? ?{q? ?yq?¹? ?>>?¼?·? ?>>?¢?¯?¯?¯?¯?¯?¯?­? ?>>>>>>?¢?¯?¯?¯?¯?¯?¯?­? ?>>?·?¼? ?>>?¹? ?yq? ?ys?¹?ª?¯?«?????????????????????§?¹?§?¼? ?}q? ?yq?¼? ?>>>??? ?>>>????????? ?>>>>>>>????????? ?>>>??? ?>>?¼? ?yq? ?yu?¼?§?¹?§?????????????????????ª?¯?«?¹? ?ys? ?{s?¹? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¹? ?{s? ?{q?¹?ª?¯?«?????????????????????§?¾?§?¼? ?{u? ?}u?¼? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¼? ?}u? ?}s?¼?§?¾?§?????????????????????ª?¯?«?¹? ?}>q? ?y>q?? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?? ?y>q? ?yu?¹?ª?¯?«?????????????????????§?¹?§?¼? ?y:×>:Û>:×>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:Û>:×>:Û>q?¼?§?¹?§?????????????????????ª?¯?«?¹? ?{;>;>;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;>;>;>s?¹?ª?¯?«?????????????????????§?¾?§?¼? ?}ÕÙÕ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ÙÕÙu?¼?§?¾?§?????????????????????ª?¯?«?¹? ?y>><? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>>>><? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ? ? p? r? t? r? t? r? t? p? ? ? p? r? t? p? p? p? r? t?=p?yq?¹?ª?¯?«?????????????????????§?¹?§?¼? ?{s?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾? ?>>>?£?¯?´?¯?´?¯?¯?´?¯?´?¯?¤? ?>>>>>>?£?¯?´?¯?´?¯?¯?´?¯?´?¯?¤? ?>>>?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾? ?{s?¼?§?¹?§?????????????????????ª?¯?«?¹? ?}u?N?;?;?:?????????????????? ?>>>?©???????????©? ?>>>>>>?©???????????©? ?>>>??????????????????N?;?;?:? ?}u?¹?ª?¯?«?????????????????????§?¾?§?¼? ?ys?M?D?DG?@? ?xyz|z|z|xz|z|z|xq? ?>>>>?? ?xyz|z|z|x>q?? ?>>>>>>>?? ?xyz|z|z|x>q?? ?>>>? ?xyz|z|z|xz|z|z|xq?M?DG?D?@? ?{q?¼?§?¾?§?????????????????????ª?¯?«?¹? ?yu?M?DF?D?@? ?{s? ?>>>>>:Û>:×>>>>>>>>>>>:Û>:×>>>>>>? ?{s?M?D?DH?@? ?}q?¹?ª?¯?«?????????????????????§?¹?§?¼? ?ys?M?DH?D?@? ?}u? ?>>>>>;>;>>>>>>>>>>>;>;>>>>>>? ?}u?M?DH?DF?@? ?{q?¼?§?¹?§?????????????????????ª?¯?«?¹? ?{u?M?D?DF?@? ?{s? ?>>>>>ÙÕ>>>>>>>>>>>ÙÕ>>>>>>? ?{s?M?D?D?@? ?}s?¹?ª?¯?«?????????????????????§?¾?§?¼? ?}s?M?D?DG?@? ?}u? ?>>><? ?=?y<q? ?=?>>>>>><? ?=?y<q? ?=?>>>? ?}u?M?D?DG?@? ?{u?¼?§?¾?§?????????????????????ª?¯?«?¹? ?yu?M?DG?D?@? ?{s? ?>>>?¨? ?{s?¨? ?>>>>>>?¨? ?{s?¨? ?>>>? ?{s?M?DF?D?@? ?}q?¹?ª?¯?«?????????????????????§?¹?§?¼? ?{s?M?DF?DH?@? ?}u? ?>>>?§? ?}u?§? ?>>>>>>?§? ?}u?§? ?>>>? ?}u?M?DH?DF?@? ?{s?¼?§?¹?§?????????????????????ª?¯?«?¹? ?}u?L?C?C?O? ?{s? ?>>>?²? ?{s?²? ?>>>>>>?²? ?{s?²? ?>>>? ?{s?L?C?C?O? ?}u?¹?ª?¯?«?????????????????????§?¾?§?¼? ?ys?¸?¾?¸?¾? ?}u? ?>>>?§? ?}u?§? ?>>>>>>?§? ?}u?§? ?>>>? ?}u?¾?¸?¾?¸? ?{q?¼?§?¾?§?????????????????????ª?¯?«?¹? ?{u?¾???? ?y>q? ??§? ?{s?§? ?>>>>>>?§? ?{s?§? ?>? ?y>q????¾? ?}s?¹?ª?¯?«?????????????????????§?¹?§?¼? ?}>q?? ?xyxxxx:Ú>;>Øs?²? ?}u?²? ?>>>>>>?²? ?}u?²? ?:Ú{>;>Øxxxxx>q?? ?yu?¼?§?¹?§?????????????????????ª?¯?«?¹? ?y:×>>:Û>u?§? ?{s?§? ?>>>>>>?§? ?{s?§? ?}:×>>:Û>q?¹?ª?¯?«?????????????????????§?¾?§?¼? ?{;>>;>q?§? ?}u?§? ?>>>>>>?§? ?}u?§? ?y;>>;>s?¼?§?¾?§?????????????????????ª?¯?«?¹? ?}Õ>>Ùs?§? ?{s?§? ?>>>>>>?§? ?{s?§? ?{Õ>>Ùu?¹?ª?¯?«?????????????????????§?¹?§?¼? ?y<q? ?=?yu?§? ?}u?§? ?>>>>>>?§? ?}u?§? ?}<q? ?=?yq?¼?§?¹?§?????????????????????ª?¯?«?¹? ?{s?¾? ? p? p?=p?y;>Ô>?²? ?{s?²? ?>>>>>>?²? ?{s?²? ?:Ö>;>Ô>>>?§? ?}u?§? ?>>>>>>?§? ?}u?§? ?>>>? ?{s?¾?¸?¾?¸? ?}u?¼?§?¾?§?????????????????????ª?¯?«?? ?y>q????¸? ?}u? ?>>>?§? ?{s?§? ?>>>>>>?§? ?{s?§? ?>>>? ?}u?¸???? ?y>q??ª?¯?«?????????????????????§?¹?§? ?xyxxxq?¾? ?{s? ?>>>?²? ?}u?²? ?>>>>>>?²? ?}u?²? ?>>>? ?{s?¾? ?xyxxxq?§?¹?§?????????????????????ª?¯?«? ?{s?¸? ?}u? ?>>>?§? ?{s?§? ?>>>>>>?§? ?{s?§? ?>>>? ?}u?¸? ?{s?ª?¯?«?????????????????????§?¾?§? ?}u?¾? ?{s? ?>>>?©? ?}u?©? ?>>>>>>?©? ?}u?©? ?>>>? ?{s?¾? ?}u?§?¾?§?????????????????????ª?¯?«? ?{s?¸? ?}u? ?>>>>?? ?y>q?? ?>>>>>>>?? ?y>q?? ?>>>? ?}u?¸? ?{s?ª?¯?«?????????????????????§?¹?§? ?}u?¾? ?{s? ?>>>>>:Û>:×>>>>>>>>>>>:Û>:×>>>>>>? ?{s?¾? ?}u?§?¹?§?????????????????????ª?¯?«? ?{s?¸? ?}u? ?>>>>>;>;>>>>>>>>>>>;>;>>>>>>? ?}u?¸? ?{s?ª?¯?«?????????????????????§?¾?§? ?}u?¾? ?yq? ?>>>>>ÙÕ>>>>>>>>>>>ÙÕ>>>>>>? ?yq?¾? ?}u?§?¾?§?????????????????????ª?¯?«? ?{s?¸? ? p? r? t? r? t? r? t? p? r? t? r? t? r? t? p? ? ? ? ? ? ? ?=?y<q? ?=?>>>>>><? ?=?y<q? ? ? ? ? ? ? ? p? r? t? r? t? r? t? p? r? t? r? t? r? t? p? ?¸? ?{s?ª?¯?«?????????????????????§?¹?§? ?}u?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸? ? p? r? t? r? t? r? t? p? ?¾? ?>>>>>>?¾? ? p? r? t? r? t? r? t? p? ?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾? ?}u?§?¹?§?????????????????????ª?¯?«? ?yq?¸?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸? ?>>>>>>?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?›?¸? ?yq?ª?¯?«?????????????????????§?¾?§? ? p? r? t? r? t? r? t? r? t? p? ?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾? ?>>>>>>?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾?¸?¾? ? p? r? t? r? t? r? t? r? t? p? ?§?¾?§?????????????????????ª?¯?°?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¤?¸? ?>>>>>>?¸?£?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?¨?¯?°?¯?«?????????????????????§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¾? ?>>>>>>?¾?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?¾?§?¹?§?????????????????????¢?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?­?¸? ?>>>>>>?¸?¢?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?©?¯?­??????????????????????????????????????????????????????????????????????¾? ?>>>>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¸? ?>>>>>>?¸???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¸? ?>>>>>>?¸???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¸? ?>>>>>>?¸???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¸? ?>>>>>>?¸???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¾? ?>>>>>>?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¸? ?>>>>>>?¸????????????????????????????????????????????????????????????                                               @ 8CorsixTH-0.70.0/CorsixTH/Campaigns/Snuffit Sands.map000066400000000000000000005001541522247547500220760ustar00rootroot00000000000000D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DH?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?D?DF?D?D?D?D?DF?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?D?D?D?D?D?D?DG?D?D?D?D?D?DH?D?DG?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?DG?D?DF?D?D?D?D?D?D?D?DG?D?D?D?DG?D?D?D?DF?D?D?D?D?D?DH?D?DG?D?D?DH?D?D?DG?D?DH?D?DF?D?D?DH?D?D?D?D?D?D?D?D?DH?D?D?D?D?DF?D?D?D?DH?D?DF?D?D?DG?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?D?DH?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?DF?D?DH?D?DF?D?D?D?DF?D?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?DG?D?DF?D?DG?D?D?D?D?D?D?DG?D?DG?D?D?DG?DF?D?D?DH?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?D?D?D?DF?D?D?D?DG?D?D?DG?DF?D?D?DF?D?DG?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DH?D?D?DG?D?D?D?D?D?D?DF?D?D?D?D?DG?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?D?D?D?DG?D?DG?D?D?D?DG?D?DG?D?D?DG?D?D?D?D?D?D?D?DF?DG?D?D?DG?D?D?D?DF?D?D?D?D?D?DF?D?DG?D?D?D?D?D?D?DG?D?D?D?DF?D?D?D?D?D?D?D?D?D?DG?D?DG?D?D?D?DG?DF?D?D?D?D?D?D?D?D?DG?D?D?DG?D?DG?D?D?D?DG?D?D?D?DG?D?D?D?D?DF?D?D?D?D?D?DG?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?D?D?D?D?DG?D?D?DG?D?D?D?DF?D?DH?D?DF?D?DG?DG?D?D?DG?DF?D?D?D?D?D?DF?D?D?D?D?DH?D?D?DG?D?D?D?DG?D?DH?D?DG?D?D?DG?D?D?D?D?D?DG?D?D?DH?D?D?D?DG?D?D?D?DG?D?D?DH?D?D?DG?DF?DG?D?D?D?DG?D?D?D?DH?D?D?DG?D?D?DG?D?DF?D?DH?D?DF?DG?D?D?D?DH?DF?D?D?DF?D?D?DG?D?D?D?D?DG?D?DF?D?D?D?DG?D?D?DG?D?D?DF?DG?D?D?DG?D?D?DH?D?DF?D?D?DF?D?D?DF?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?DH?D?D?D?D?D?D?DG?D?D?D?D?DF?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DH?D?D?D?D?D?D?DH?D?D?D?D?DH?D?D?D?DF?D?D?DH?D?D?D?D?D?D?DF?D?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?????????????????????????—?¹?¹?¹?¹???????????????????????????????¼??????????????????¹?¾???????????????????·????·???????????????????????????????????????????????????—?£?¤?¤?¹? ?ExyEzE|ExEzE|ExEzE|ExEzE|Exq?¼???????????????¼??????????????????¾?¹???????????????????·??»??·?????????????????????????????›??¾??›??¾??›??¾??›??¾??›??????—?¢?­?§?¹? ?E{EEEEEEEEEEEEs?¼??£?¤?¤?£?¤?¤?£?¤?¤?£?¤?¤??¼???? ?ExyEzE|ExExEzE|ExExEzE|Exq?¹?¾? ?ExyEzE|ExEzE|ExEzE|ExEzE|ExEzE|Exq?·????·???????????????????????????????????????????????????—?¢?¯?­?¹? ?E{EEEEEEEEEEEEu?¼??¢?­?§?¢?­?§?¢?­?§?¢?­?§??¼???? ?E{EEEEEEEEEEEs?¾?¹? ?E{EEEEEEEEEEEEEEEs?·????·?????????????????????????????¾??›??¾??›??¾??›??¾??›??¾??????—?¹?¹?¹?¹? ?E{EEq?????¹? ?E{EEs?¼???????????????¼???? ?EyEEEEEEEEEEEq?¾?¹? ?EyEEEEEEEEEEEEEEEq?·????·?????????????????????????????›??¾??›??¾??›??¾??›??¾??›??????—? ?ExyEzE|ExEEEExEzE|Exq?¾? ?E}EEu?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼???? ?E{EEEEEEEEEEEs?¹?¾? ?E{EEEEEq???????????????????? ?E}EEEEEEEEEEEu?¾?¹? ?E}EEEEE>u??? ?E}EEEEEu?·??»??·???????????????????????????????????????????????????—? ?E{EEEEEEEEEEu?¾? ?E}EEExEzE|ExExEzE|ExExExEzE|ExExEzE|Ex>q??? ?EyEEEEEEEEEEEq?¹?¾? ?E{EEEEEEzE|EzE|EEEEEEq?·????·???????????????????????????????????????????????????—? ?E{EEEEEEEEEEq?¹? ?E{EEEEEEEEEEEEEEEEEEEExEzE|ExEEEEEEEEEEEEs?¾?¹? ?E}EEEEEEEEEEEEEEEs?·????·???????????????????????????????????????????????????? ?EyEEEEEEEEEEq?¾? ?E}EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEu?¹?¾? ?EyEEEEEEEEEEEEEEEu?·??»??·???????????????????????????????????????????????? ?>>>:EÛ>EEEEEEEEEEs?¹? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEq?¾?¹? ?E{EEEEEEEEEEEEEEEq?·????·???????????????????????????º?º?º?º?º?º?º?º?º?º?º?º?º?º?º?º?º?º?º?? ?>>>>;E>EEEEEEEEEEu?¾? ?E}EEEEEEEEEEEEEEEEEEE>>>>EÙEEEEEEEEEEq?¹? ?E{EEEEEEEEEEEEEEEEEEE>q??????????????????? ?EyEEEEE>u??? ?E}EEEEEu?·??»??·???????????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>EyEEEEEEEEEEq?¾? ?E}EEEEEEEEEEEEEEEEEEEExEzE|ExExEzE|ExExEzE|ExExEzE|ExExEzE|ExEEEEEEEzE|EzE|EEEEEEq?·????·???????????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>E{EEEEEEEEEEs?»? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEs?·????·???????????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>E}EEEEEEEEEEu?»? ?E}EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEu?·????·???????????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>EyEEEEEEEEEEq?¾? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEq?·????·??????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ?=?>>>>>:EÛ>EEEEEEEEEEq?¹? ?E}EEEEEEEEEEEEEEEEEEE>>?º?º? ?=?>>>>;E>EEEEEEEEEEs?¾? ?E{EEEEEEEEEEEEEEEEEEE>q?????????????????¹?¾? ?E{EEEEE>u??? ?E}EEEEEu?·????·?????????????????????????????????????¨?? ?>>>>??¨?? ?=?>>>EÙEEEEEEEEEEu?¹? ?E}EEEEEEEEEEEEEEEEEEEExEzE|ExExEzE|ExExEzE|ExExEzE|Exq?¾?¹? ?E}EEEEEEzE|EzE|EEEEEEq?·????·?????????????????????????????????????§? ?>>>>>?§??? ? ? ? ?=?EyEEEEEEEEEEq?¾? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEs?¹?¾? ?EyEEEEEEEEEEEEEEEs?·??»??·?????????????????????????????????????²? ?>>>>>?²??????—? ?E}EEEEEEEEEEq?¹? ?E}EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEu?¾?¹? ?E{EEEEEEEEEEEEEEEu?·????·?????????????????????????????????????§? ?>>>>>?§??????—? ?E}EEEEEEEEEEs?¾? ?E{EEEEEEEEEEEEEEEEEEE>>>>?§??????—? ?E}EEEEEEEEEEu?¹? ?E}EE>>>>?²??????—? ?EyEEEEEEEEEEq?¾? ?E{EEs?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼???? ?E}EEEEEEEEEEEu?¹?¾? ?E}EEEEE>u??? ?E}EEEEEu?·????·?????????????????????????????????????§? ? ? ? ? ? ? ?§??????—? ? p? r? t?=p?EyEEq?????? ?EyEEq?¼??£?¤?¤?£?¤?¤?£?¤?¤?£?¤?¤??¼???? ?E{EEEEEEEEEEEs?¹?¾? ?E{EEEEEEEEEEEEEEEs?·??»??·???????????????????????????????????????????????????—?£?¤?¤?¹? ?E}EEExEzE|ExEzE|ExEEEs?¼??¢?­?§?¢?­?§?¢?­?§?¢?­?§??¼???? ?E}EEEEEEEEEEEu?¾?¹? ?E}EEEEEEEEEEEEEEEu?·????·?????????????????????????????›??¾??›??????????????????—?¢?­?§?¹? ?E}EEEEEEEEEEEEu?¼??¢?¯?­?¢?¯?­?¢?¯?­?¢?¯?­??¼???? ?EyEEEEEEEEEEEq?¹?¾? ?EyEEEEEEEEEEEEEEEq?·????·???????????????????????????????????????????????????—?¢?¯?­?¹? ?EyEEEEEEEEEEEEq?¼???????????????¼???? ? p? r? t? p? p? r? t? p? p? r? t? p? ?¾?¹? ? p? r? t? p? r? t? p? r? t? p? r? t? p? r? t? p? ?·??»??·???????????????????????????????????????????????????—?¹?¹?¹?¹? ? p? r? t? p? r? t? p? r? t? p? r? t? p? ?¼???????????????¼??????????????????¹?¾???????????????????·????·???????????????????????????;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?D?DG?D?D?D?D?D?D?DH?D?D?D?D?D?DH?D?D?D?D?D?D?DH?D?D?D?D?D?D?D?DG?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?D?D?D?D?D?D?D?DG?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DH?D?D?D?DF?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?D?D?D?D?DF?D?D?D?D?DG?D?D?D?D?D?DH?D?D?D?D?DG?D?D?DG?DH?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?DH?D?DF?D?D?DH?D?D?DF?D?D?DH?D?D?D?D?DF?D?D?D?D?D?D?D?DG?D?DH?D?D?DH?D?DG?D?D?D?D?DG?D?DH?D?DG?D?D?D?DG?D?DF?D?DH?D?D?D?DF?D?D?D?D?D?D?D?D?D?DG?D?D?D?DG?D?D?D?D?DG?D?D?D?DG?DG?D?DH?DF?D?D?DG?D?D?D?D?DH?DF?D?D?DG?D?D?D?D?D?D?D?D?DF?D?DG?D?D?D?D?DG?D?DG?D?DF?D?D?D?D?DG?D?D?D?D?DG?D?D?DH?DG?D?D?D?D?D?D?DG?D?D?D?D?D?DG?D?D?D?DG?DG?D?D?D?D?D?DG?DG?DG?D?D?D?D?D?DF?D?D?D?D?DG?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?DG?D?D?D?D?D?D?D?D?D?D?DG?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?D?DG?D?DG?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?DH?D?D?D?D?DF?D?D?D?D?DG?D?DG?D?D?D?D?D?D?D?D?D?DH?D?D?D?D?DH?D?DF?D?D?D?D?D?D?D?DG?D?D?D?D?D?DG?D?D?D?D?D?D?DG?D?D?DH?DF?D?D?DG?DF?D?DH?D?D?D?D?D?D?D?D?DH?D?DF?D?DH?D?D?D?D?D?DF?D?D?DH?DH?D?D?D?DH?D?D?D?DH?D?DF?D?DG?D?D?D?DH?D?D?D?D?D?D?D?D?DH?D?D?D?D?D?DF?D?D?DH?D?D?D?D?D?DG?DG?D?D?D?D?D?D?D?DH?D?D?D?D?D?D?D?D?DF?D?D?D?DH?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?DH?D?DF?D?D?D?D?D?DH?D?D?D?D?D?DH?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?DF?D?D?DH?D?D?DF?D?D?D?D?DH?D?D?D?D?D?DF?D?D?D?D?D?DF?D?D?D?D?D?DF?D?D?D?D?DH?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?DH?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?˜ Ž#CorsixTH-0.70.0/CorsixTH/Campaigns/Tufflook.map000066400000000000000000005001541522247547500212200ustar00rootroot00000000000000?????????????????????????????????????????????????????¾?¹??????? ?>>>>???????¹?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????¹?¾??????? ?>>>>???????¾?¹???????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¹??????? ?>>>>???????¹?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????¹?¾?N?;?;?;?;?:? ?>>>>?N?;?;?;?;?:?¾?¹???????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¹?M?D?D?DF?D?@? ?>>>>?M?DF?D?DG?D?@?¹?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????¹?¾?M?D?D?D?D?@? ?>>>>?M?D?D?D?D?@?¾?¹???????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¹?M?D?DG?D?DG?@? ?>>>>?M?D?D?DH?D?@?¹?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????¹?¾?M?D?D?D?D?@? ?>>>>?M?DG?D?DF?D?@?¾?¹???????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¹?M?D?DF?DH?D?@? ?>>>>?M?D?D?D?D?@?¹?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????¹?¾?M?D?D?D?DF?@? ?>>>>?M?D?DF?D?DH?@?¾?¹????????????????????????????????????????????????????????????????????????????????????£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?«?¾?¹?M?DF?D?D?D?@? ?>>>>?M?D?D?D?DF?@?¹?¾?ª?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤?????????????????????????????????????????????????????????????§???????????????????????¹?¾?M?D?D?D?DG?@? ?>>>>?M?D?D?DG?D?@?¾?¹???????????????????????§?????????????????????????????????????????????????????????????§? ?ExyEzE|EzE|EzE|EzE|EzE|EzE|EzE|EzE|EzE|Exq?¾?¹?M?D?DG?D?D?@? ?>>>>?M?D?DF?D?D?@?¹?¾? ?ExyEzE|EzE|EzE|EzE|EzE|EzE|EzE|EzE|EzE|Exq?§?????????????????????????????????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEs?¹?¾?M?D?D?DF?D?@? ?>>>>?M?DG?D?D?DF?@?¾?¹? ?E{EEEEEEEEEEEEEEEEEEEs?§?????????????????????????????????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEu?¾?¹?M?D?DH?D?D?@? ?>>>>?M?D?D?DH?D?@?¹?¾? ?E}EEEEEEEEEEEEEEEEEEEu?§?????????????????????????????????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEs?¹?¾?M?DF?D?D?D?@? ?>>>>?M?DF?D?D?D?@?¾?¹? ?E{EEEEEEEEEEEEEEEEEEEs?§?????????????????????????????????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEu?¾?¹?M?D?D?DG?D?@? ?>>>>?M?D?D?DG?D?@?¹?¾? ?E}EEEEEEEEEEEEEEEEEEEu?§?????????????????????????????????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEs?¹?¾?M?DG?D?D?D?@? ?>>>>?M?D?D?D?D?@?¾?¹? ?E{EEEEEEEEEEEEEEEEEEEs?§?????????????????????????????????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEu?¾?¹?M?D?D?DF?D?@? ?>>>>?M?DG?D?DF?D?@?¹?¾? ?E}EEEEEEEEEEEEEEEEEEEu?§?????????????????????????????????????????????????????????????§? ?EyEEEEEEEEEEEEEEEEEEEq?¹?¾?M?D?D?D?D?@? ?>>>>?M?D?D?D?D?@?¾?¹? ?EyEEEEEEEEEEEEEEEEEEEq?§?????????????????????????????????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEs?¾?¹?M?D?DF?D?DG?@? ?>>>>?M?D?D?DG?D?@?¹?¾? ?E{EEEEEEEEEEEEEEEEEEEs?§?????????????????????????????????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEu?¹?¾?M?D?D?D?D?@? ?>>>>?M?D?DF?D?D?@?¾?¹? ?E}EEEEEEEEEEEEEEEEEEEu?§?????????????????????????????????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEs?¾?¹?M?DG?D?DH?DF?@? ?>>>>?M?DG?D?D?DG?@?¹?¾? ?E{EEEEEEEEEEEEEEEEEEEs?§??????????????????????????????????????????£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­? ?E}EEEEEEEEEEEEEEEEEEEu?¹?¾?L?C?C?C?C?O? ?>>>>?L?C?C?C?C?O?¾?¹? ?E}EEEEEEEEEEEEEEEEEEEu?¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤???????????????????????§???????????????????? ?E{EEEEEEEEEEEEEEEEEEEs?¾?¹?›?›?›?›?›?? ?>>>>>??›?›?›?›?›?¹?¾? ?E{EEEEEEEEEEEEEEEEEEEs????????????????????§???????????????????????§? ?ExyEzE|EzE|EzE|EzE|EzE|EzE|EzE|Exq?? ?E}EEEEEEEEEEEEEEEEEEEu?¹?¾?›?›?›?›?? ?>>>>>>>??›?›?›?›?¾?¹? ?E}EEEEEEEEEEEEEEEEEEEu?? ?ExyEzE|EzE|EzE|EzE|EzE|EzE|EzE|Exq?§???????????????????????§? ?E{EEEEEEEEEEEEEEEs?? ?EyEEEEEEEEEEEEEEEEEEEq?¾?¹?›?›?›?? ?>>>>>>>>>??›?›?›?¹?¾? ?EyEEEEEEEEEEEEEEEEEEEq?? ?E{EEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEu?? ? p? r? t? p? r? t? r? t? p? r? t? r? t? p? r? t?=p?EyEEq?¹?¾?›?›?? ?>>>>>>>>>>>??›?›?¾?¹? ?EyEE>>>>>>>>>>>>??›?¹?¾? ?E{EEs??????????????????? ?E{EEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEu??????????????????? ?E}EEu?¹?¾?? ?>>>>>>>>>>>>>>>??¾?¹? ?E}EEu??????????????????? ?E}EEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEE>q??????½?·?½?·?½?·?½??????? ?E{EEs?¾?¹? ?>>>>>>>>>>>>>>>>?¹?¾? ?E{EEs???????½?·?½?·?½?·?½?????? ?EyEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEExq?????·?½?·?½?·?½?·??????? ?E}EEu?¹?¾? ?>>>>>>>>>>>>>>>>?¾?¹? ?E}EEu???????·?½?·?½?·?½?·????? ?ExyEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEE>q?????½?·?½?·?½?·?½??????? ?EyEE>q??? ?>??? ?EyEE>q???????½?·?½?·?½?·?½????? ?EyEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEExq????·?½?·?½?·?½?·??? ?ExyEzE|ExEEEExEzE|Ex:EÚ>;E>EØExEzE|EzE|EzE|EzE|Ex:EÚ>;E>EØExEzE|ExEEEExEzE|Exq???·?½?·?½?·?½?·???? ?ExyEEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEEE>q????????????? ?EyEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE>q????????????? ?EyEEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEEExq??????????? ?ExyEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEExq??????????? ?ExyEEEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEEEE>q??????????? ?EyEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE>q??????????? ?EyEEEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEEEExEzE|EzE|EzE|EzE|EzE|ExEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEExEzE|EzE|EzE|EzE|EzE|ExEEEEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEEE;>Ô>prtrtrtrtp:Ö>;>Ô>>>>>>>>>>>>>>>>???¼?¼?¼?¼????????»? ?E{EEEs?»???? ?EyEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEE>>>>>>>>>>>>>>>???¼?¾?¹?¼????????? ?E}EEEu????? ?=p?EyEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEs?????»? ?EyEEEq?»????????¼?¾?¹?¼??? ?=?>>>>>>>>>>>>>><? ???¼?¹?¾?¼????????»? ?EyEEEq?»????? ?E{EEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEu?????? ?E{EEEs?????????¼?¹?¾?¼???›? ?=?>>>>>>>>>>>><? ?›???¼?¾?¹?¼????????? ?E{EEEs?????? ?E}EEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEs?????»? ?E}EEEu?»????????¼?¾?¹?¼???›?›? ?=?>>>>>>>>>><? ?›?›???¼?¹?¾?¼????????»? ?E}EEEu?»????? ?E{EEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEu?????? ?E{EEEs?????????¼?¹?¾?¼???›?›?›? ?=?>>>>>>>><? ?›?›?›???¼?¾?¹?¼????????? ?E{EEEs?????? ?E}EEEEEEEEEEEEEEEu?§???????????????????????§? ?EyEEEEEEEEEEEEEEEq?????»? ?E}EEEu?»????????¼?¾?¹?¼???›?›?›?›? ?=?>>>>>><? ?›?›?›?›???¼?¹?¾?¼????????»? ?E}EEEu?»????? ?EyEEEEEEEEEEEEEEEq?§???????????????????????§? ? p? r? t?=p?EyEEEEEEE>>><? ?›?›?›?›?›???¼?¾?¹?¼????????? ?E{EEEs?????? ? p? r? t?=p?EyEEEEEEE>>>?????????¼?¹?¾?¼????????»? ?E}EEEu?»????????? ? p?=p?EyEEEq?????????¼?¹?¾?¼????????? ?>>>>?????????¼?¾?¹?¼????????? ?EyEEE>q???????????? ?E{EEEs?£?¯?¯?¯?¯?¯?­?????????????????????????????§? ?E}EEEu??¸???????? ?ExyExEEEEExEx>q???????¼?¾?¹?¼?¼?¼?¼?¼?¼?¼?¼?¼? ?>>>>?¼?¼?¼?¼?¼?¼?¼?¼?¼?¹?¾?¼??????? ?ExyExEEEEExEx>q????????¸?? ?E}EEEu?§???????????????????????????????????§? ?E{EEEs??¸?????? ?ExyExEEEEEEEEExEx>q?????¼?¹?¾?¼????????¼? ?>>>>?¼????????¼?¾?¹?¼????? ?ExyExEEEEEEEEExEx>q??????¸?? ?E{EEEs?§???????????????????????????????????§? ?E}EEEu??¸?? ?ExyEzE|ExEEEEEEEEEEEEExEzE|Exq?¼?¾?¹?¼? ?>>>>>?¼? ?>>>>?¼? ?>>>>>?¼?¹?¾?¼? ?ExyEzE|ExEEEEEEEEEEEEExEzE|Exq??¸?? ?E}EEEu?§???????????????????????????????????§? ?E{EEEs??¸?? ?E{EEEEEEEEEEEEEEEEEEEs?¼?¹?¾?¼? ?>>>>>?¼? ?>>>>?¼? ?>>>>>?¼?¾?¹?¼? ?E{EEEEEEEEEEEEEEEEEEEs??¸?? ?E{EEEs?§???????????????????????????????????§? ?E}EEEu???? ?E}EEEEEEEEEEEEEEEEEEEu?¼?¾?¹?¼? ?>>>>>?¼? ?>>>>?¼? ?>>>>>?¼?¹?¾?¼? ?E}EEEEEEEEEEEEEEEEEEEu???? ?E}EEEu?§???????????????????????????????????§? ?E{EEE>q???? ?EyEEEEEEEEEEEEEEEEEEEs?¼?¹?¾?¼? ?>>>>>?¼? ?>>>>?¼? ?>>>>>?¼?¾?¹?¼? ?E{EEEEEEEEEEEEEEEEEEE>q???? ?EyEEEs?§???????????????????????????????????§? ?E}EEEExEzEzEzExEEEEEEEEEEEEEEEEEEEEu?¼?¾?¹?¼? ?>>>>>?¼? ?>>>>?¼? ?>>>>>?¼?¹?¾?¼? ?E}EEEEEEEEEEEEEEEEEEEExE|E|E|ExEEEEu?§???????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEs?¼?¹?¾?¼? ?=?>>><? ?¼? ?>>>>?¼? ?=?>>><? ?¼?¾?¹?¼? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEs?§???????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEEEEEEEEEEu?¼?¼?¼?¼?¼? ?>>>?¼?¼? ?>>>>?¼?¼? ?>>>?¼?¼?¼?¼?¼? ?E}EEEEEEEEEEEEEEEEEEEEEEEEEEEEu?§???????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEE>q?????? ?>>>>??? ?>>>>>??? ?>>>>?????? ?EyEEEEEEEEEEEEEEEEEEEEEEEEEEEEs?§???????????????????????????????????§? ?E}EEE>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:EÛ>EEEEEEEEEEEEEEEEEEE>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;E>EEEEEEEEEEEEEEEEEEEs???? ?E{EEEs?§???????????????????????????????????§? ?E}EEEu??¸?? ?E}EEEEEEEEEEEEEEEEEEEÕ>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>EÙEEEEEEEEEEEEEEEEEEEu??¸?? ?E}EEEu?§???????????????????????????????????§? ?E{EEEs??¸?? ?EyEEEEEEEEEEEEEEEEEEE<q? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>><? ? ? ? ? ? ? ? ? ? ? ? ?=?EyEEEEEEEEEEEEEEEEEEEq??¸?? ?E{EEEs?§???????????????????????????????????§? ?E}EEEu??¸?? ? p? r? t?=p?EyEEEEEEEEEEE>>>????????????? ? p? r? t?=p?EyEEEEEEEEEEE>>>??·?½?·?½?·?½?·?½?·?½?????? ? p?=p?EyEEEEEEE>>>??½?·?½?·?½?·?½?·?½?·???????? ? p?=p?EyEEEq???????????»? ?E{EEEs?»???????????????????? ?>>>>????????????????????»? ?E{EEEs?»??????????? ?EyEEE>q???º?º?º?º?§???????????????????????§????? ?ExyExEEEEExEx>q?????????? ?E}EEEu?????????¹?¾?¹?¾?¹??›?›?›?›?›?? ?>>>>>??›?›?›?›?›??¹?¾?¹?¾?¹????????? ?E}EEEu?????????? ?ExyExEEEEExEx>q?????§???????????????????????§? ?ExyEzE|ExEEEEEEEEExEzE|Exq?????»? ?E{EEEs?»????????¾?¹?¾?¹?¾??›?›?›?›?? ?>>>>>>>??›?›?›?›??¾?¹?¾?¹?¾????????»? ?E{EEEs?»????? ?ExyEzE|ExEEEEEEEEExEzE|Exq?§???????????????????????§? ?E{EEEEEEEEEEEEEEEs?????? ?E}EEEu?????????¹?¾?¹?¾?¹??›?›?›?? ?>>>>>>>>>??›?›?›??¹?¾?¹?¾?¹????????? ?E}EEEu?????? ?E{EEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEu?????»? ?E{EEEs?»????????¾?¹?¾?¹?¾??›?›?? ?>>>>>>>>>>>??›?›??¾?¹?¾?¹?¾????????»? ?E{EEEs?»????? ?E}EEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEs?????? ?E}EEEu?????????¹?¾?¹?¾?¹??›?? ?>>>>>>>>>>>>>??›??¹?¾?¹?¾?¹????????? ?E}EEEu?????? ?E{EEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEu?????»? ?EyEEEq?»??????????????? ?>>>>>>>>>>>>>>>???????????????»? ?EyEEEq?»????? ?E}EEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEE>q?????? ?E{EEEs??????????????? ?>>>>>>>>>>>>>>>>??????????????? ?E{EEEs?????? ?EyEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEExq????»? ?E}EEEu?»?????????????? ?>>>>>>>>>>>>>>>>??????????????»? ?E}EEEu?»???? ?ExyEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEE>q????? ?E{EEEs??????????????? ?>??????????????? ?E{EEEs????? ?EyEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEExq???»? ?E}EEEu?»??? ?ExyEzE|EzE|ExEzE|EzE|Ex:EÚ>;E>EØExEzE|EzE|EzE|EzE|Ex:EÚ>;E>EØExEzE|EzE|ExEzE|EzE|Exq???»? ?E}EEEu?»??? ?ExyEEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEEE>q???? ?E{EEEs???? ?EyEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE>q???? ?E{EEEs???? ?EyEEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEEExq??»? ?E}EEEu?»?? ?ExyEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEExq??»? ?E}EEEu?»?? ?ExyEEEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEEEE>q??? ?EyEEE>q??? ?EyEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE>q??? ?EyEEE>q??? ?EyEEEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEEEExEzE|ExEEEEExEzE|ExEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEExEzE|ExEEEEExEzE|ExEEEEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEEEE;>Ô>prtrtrtrtp:Ö>;>Ô>>>>>>>>>>>>>>>>?¾?¹? ?E{EEs????????·?½?·?½?·?½?·???? ?EyEEEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEE>>>>>>>>>>>>>>>?¹?¾? ?E}EEu????????½?·?½?·?½?·?½???? ?=p?EyEEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEs??????????????????? ?E{EEs?¹?¾? ?=?>>>>>>>>>>>>>><? ?¾?¹? ?E{EEs??????????????????? ?E{EEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEu??????????????????? ?E}EEu?¾?¹?›? ?=?>>>>>>>>>>>><? ?›?¹?¾? ?E}EEu??????????????????? ?E}EEEEEEEEEEEEEEEu?§???????????????????????§? ?E{EEEEEEEEEEEEEEEs??????????????????? ?EyEEq?¹?¾?›?›? ?=?>>>>>>>>>><? ?›?›?¾?¹? ?EyEE>q??????????????????? ?E{EEEEEEEEEEEEEEEs?§???????????????????????§? ?E}EEEEEEEEEEEEEEEu?? ?ExyEzE|ExEzE|EzE|ExEzE|EzE|ExEzE|ExEEEq?¾?¹?›?›?›? ?=?>>>>>>>><? ?›?›?›?¹?¾? ?EyEEExEzE|ExEzE|EzE|ExEzE|EzE|ExEzE|Exq?? ?E}EEEEEEEEEEEEEEEu?§???????????????????????§? ?EyEEEEEEEEEEEEEEEq?? ?E{EEEEEEEEEEEEEEEEEEEs?¹?¾?›?›?›?›? ?=?>>>>>><? ?›?›?›?›?¾?¹? ?E{EEEEEEEEEEEEEEEEEEEs?? ?EyEEEEEEEEEEEEEEEq?§???????????????????????§? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t? p? ?? ?E}EEEEEEEEEEEEEEEEEEEu?¾?¹?›?›?›?›?›? ?=?>>>><? ?›?›?›?›?›?¹?¾? ?E}EEEEEEEEEEEEEEEEEEEu?? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t? p? ?§???????????????????????¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤? ?E{EEEEEEEEEEEEEEEEEEEs?¹?¾?N?;?;?;?;?:? ?>>>>?N?;?;?;?;?:?¾?¹? ?E{EEEEEEEEEEEEEEEEEEEs?£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­??????????????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEu?¾?¹?M?DG?D?D?D?@? ?>>>>?M?D?D?D?DH?@?¹?¾? ?E}EEEEEEEEEEEEEEEEEEEu?§?????????????????????????????????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEs?¹?¾?M?DF?D?D?DG?@? ?>>>>?M?D?DG?D?D?@?¾?¹? ?E{EEEEEEEEEEEEEEEEEEEs?§?????????????????????????????????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEu?¾?¹?M?D?D?DF?D?@? ?>>>>?M?D?D?D?DF?@?¹?¾? ?E}EEEEEEEEEEEEEEEEEEEu?§?????????????????????????????????????????????????????????????§? ?EyEEEEEEEEEEEEEEEEEEEq?¹?¾?M?D?DH?D?D?@? ?>>>>?M?D?D?D?D?@?¾?¹? ?EyEEEEEEEEEEEEEEEEEEEq?§?????????????????????????????????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEs?¾?¹?M?DG?D?D?DG?@? ?>>>>?M?D?DF?D?DG?@?¹?¾? ?E{EEEEEEEEEEEEEEEEEEEs?§?????????????????????????????????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEu?¹?¾?M?D?D?DF?D?@? ?>>>>?M?D?D?D?D?@?¾?¹? ?E}EEEEEEEEEEEEEEEEEEEu?§?????????????????????????????????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEs?¾?¹?M?D?D?D?D?@? ?>>>>?M?D?DG?D?D?@?¹?¾? ?E{EEEEEEEEEEEEEEEEEEEs?§?????????????????????????????????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEu?¹?¾?M?D?D?DG?D?@? ?>>>>?M?D?D?D?DF?@?¾?¹? ?E}EEEEEEEEEEEEEEEEEEEu?§?????????????????????????????????????????????????????????????§? ?E{EEEEEEEEEEEEEEEEEEEs?¾?¹?M?DF?D?D?D?@? ?>>>>?M?D?DF?D?D?@?¹?¾? ?E{EEEEEEEEEEEEEEEEEEEs?§?????????????????????????????????????????????????????????????§? ?E}EEEEEEEEEEEEEEEEEEEu?¹?¾?M?D?D?D?DF?@? ?>>>>?M?D?D?D?DG?@?¾?¹? ?E}EEEEEEEEEEEEEEEEEEEu?§?????????????????????????????????????????????????????????????§? ?EyEEEEEEEEEEEEEEEEEEEq?¾?¹?M?D?DG?D?D?@? ?>>>>?M?D?DG?D?D?@?¹?¾? ?EyEEEEEEEEEEEEEEEEEEEq?§?????????????????????????????????????????????????????????????§? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? p? ?¹?¾?M?D?D?D?DG?@? ?>>>>?M?DF?D?D?DF?@?¾?¹? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? p? ?§?????????????????????????????????????????????????????????????¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?«?¾?¹?M?DG?D?DF?D?@? ?>>>>?M?D?D?DG?D?@?¹?¾?ª?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­????????????????????????????????????????????????????????????????????????????????????¹?¾?M?D?D?D?DH?@? ?>>>>?M?DG?D?D?D?@?¾?¹???????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¹?M?DF?D?D?D?@? ?>>>>?M?D?D?D?DF?@?¹?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????¹?¾?M?D?D?DG?DF?@? ?>>>>?M?D?DF?D?DH?@?¾?¹???????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¹?M?D?D?D?D?@? ?>>>>?M?D?D?D?D?@?¹?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????¹?¾?M?DG?D?DF?D?@? ?>>>>?M?DH?D?DG?D?@?¾?¹???????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¹?M?D?DH?D?D?@? ?>>>>?M?D?DF?D?DG?@?¹?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????¹?¾?L?C?C?C?C?O? ?>>>>?L?C?C?C?C?O?¾?¹???????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¹??????? ?>>>>???????¹?¾???????????????????????????????????????????????????????????????????????????????????????????????????????????¹?¾??????? ?>>>>???????¾?¹???????????????????????????????????????????????????????????????????????????????????????????????????????????¾?¹??????? ?>>>>???????¹?¾??????????????????????????????????????????????????????                                                                                 @18CorsixTH-0.70.0/CorsixTH/Campaigns/Upper Pukington.map000066400000000000000000005001541522247547500224610ustar00rootroot00000000000000?????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶? ?>>>>?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>??????????????????????? ?>>>>>??????????????????????? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?>>>>>>?¼????????????????????? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?>>>>>>?¼????????????????????? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?:AÚy>;A>AØ:AÚ>;A>AØq?¼????????????????????? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?A}AAAAAu?¼????????????????????? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?A}AAAAAu?¼????????????????????? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼? ?A}AAAAAu?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼?????????????????? ?AyAAAAA>q??????????????????¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AxyAzA|AxAxAzA|AxAxAxAzA|AxAxAzA|AxAAAAAAAxAzA|AxAxAzA|AxAxAxAzA|AxAxAzA|Axq?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAA>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAs?·?·? ?A{AAAAAAAAAAAs?·?·? ?A{AAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAu?·?·? ?A}AAAAAAAAAAAu?·?·? ?A}AAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAAq?·?·? ?AyAAAAAAAAAAAq?·?·? ?AyAAAAAAAAAq?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAs?·?·? ?A{AAAAAAAAAAAs?·?·? ?A{AAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAu?·?·? ?A}AAAAAAAAAAAu?·?·? ?A}AAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAAq?·?·? ?AyAAAAAAAAAAAq?·?·? ?AyAAAAAAAAAq?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAs?·?·? ?A{AAAAAAAAAAAs?·?·? ?A{AAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAu?·?·? ?A}AAAAAAAAAAAu?·?·? ?A}AAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAA>q??? ?AyAAAAAAAAAAA>q??? ?AyAAAAAAAAAq?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAAxAzA|AxAAAAAAAAAAAAAxAzA|AxAAAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ? p? r? t? p? p? r? t? p? r? t? p? r? t? p? p? r? t?=p?AyAAA>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?? ?A{AAAs?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?ª?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?«? ?A}AAAu?ª?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?«? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?A{AAAs?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾?????????????????????? ?A}AAAu??????????????????????¾? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?AxyAzA|AxAzA|AxAzA|AxAzA|AxAzA|AxAzA|Ax>q? ?AyAAA>q? ?AxyAzA|AxAzA|AxAzA|AxAzA|AxAzA|AxAzA|Axq?¾? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAAAxAxAAAAAxAxAAAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu?¾? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAA>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAAs?¹?¹?¹?¹?¹?¹? ?A{AAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAAu?¹?¹?¹?¹?¹?¹? ?A}AAAAAAAAAAAAAAAAAAu?¾? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAA>q??????? ?AyAAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAAAxAzA|AzA|AzA|AxAAAAAAAAAAAAAAAAAAAu?¾? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu?¾? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>?? ?AyAAAAAAAAAAAAAAAAAAq?? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>p>:Ö>;>Ô>p>:Ö>;>Ô>p>>>>>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>>>>>>>>>?¾? ?A{AAAAAs?N?;?;?;?;?;?;?;?;?;?;?;?;?;?;?:? ?A{AAAAAs?¾? ?>>>>>>>>>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>>>>>>?¾? ?A}AAAAAu?M?DF?D?D?DG?D?DH?DF?D?D?DG?D?DH?D?DF?@? ?A}AAAAAu?¾? ?>>>>>>>>>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>>>>>>?¾? ?A{AAAAAs?M?DH?D?DG?D?DF?D?D?DG?DH?D?DF?D?DG?D?@? ?A{AAAAAs?¾? ?>>>>>>>>>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>>>>>>>>>?¾? ?A}AAAAAu?L?C?C?C?C?C?C?C?C?C?C?C?C?C?C?O? ?A}AAAAAu?¾? ?>>>>>>>>>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>>>>>>>?? ?AyAAAAA>q??????¹?¹?¹?¹?¹?¹?????? ?AyAAAAA>q?? ?>>>>>>>>>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>><? ?=?Axy:AÚ>;A>AØAxAzA|AxAAAAAAAxA|A|A|Ax>q??????? ?AxyAzAzAzAxAAAAAAAxAzA|Ax:AÚ>;A>AØAx<q? ?=?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAAAxAzA|AzA|AzA|AxAAAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu?¾? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAA>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAAs?¹?¹?¹?¹?¹?¹? ?A{AAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAAu?¹?¹?¹?¹?¹?¹? ?A}AAAAAAAAAAAAAAAAAAu?¾? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAA>q??????? ?AyAAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAAAxAzA|AzA|AzA|AxAAAAAAAAAAAAAAAAAAAu?¾? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?A{AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs?¾? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾? ?A}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu?¾? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ?AyAAAAAAAAAAAAAAAAAA>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¾? ? p? r? t? p? r? t? p? r? t? p? r? t? p? r? t? p? r? t? p? ? ?A{AAAs? ? p? r? t? p? r? t? p? r? t? p? r? t? p? r? t? p? r? t? p? ?¾? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?A}AAAu?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾?¾? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?ª?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?«? ?A{<A<A<A<s?ª?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?«? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼? ?A}<A<A<A<u?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼??????????????????? ?AyAAA>q???????????????????¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AxyAzA|AxAxAzA|AxAzA|AxAzA|AxAxAzA|AxAAAAAxAzA|AxAxAzA|AxAzA|AxAzA|AxAxAzA|Axq?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAA>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAs?·?·? ?A{AAAAAAAAAAAs?·?·? ?A{AAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAu?·?·? ?A}AAAAAAAAAAAu?·?·? ?A}AAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAAq?·?·? ?AyAAAAAAAAAAAq?·?·? ?AyAAAAAAAAAq?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAs?·?·? ?A{AAAAAAAAAAAs?·?·? ?A{AAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAu?·?·? ?A}AAAAAAAAAAAu?·?·? ?A}AAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAAq?·?·? ?AyAAAAAAAAAAAq?·?·? ?AyAAAAAAAAAq?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAs?·?·? ?A{AAAAAAAAAAAs?·?·? ?A{AAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAu?·?·? ?A}AAAAAAAAAAAu?·?·? ?A}AAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAA>q??? ?AyAAAAAAAAAAA>q??? ?AyAAAAAAAAAq?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?A{AAAAAAAAAAxAzA|AxAAAAAAAAAAAAAxAzA|AxAAAAAAAAAAs?¼???? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼? ?A}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ?AyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq?¼???? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>????¼? ? p? r? t? p? p? r? t? p? p? p? r? t? p? p? r? t?=p?AyAAAAA>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>????¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼? ?A{AAAAAs?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼?¼???? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?A{AAAAAs?¼????????????????????? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?A{AAAAAs?¼????????????????????? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?AyAAAAAq?¼????????????????????? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?:Ö>;>Ô>:Ö>;>Ô>?¼????????????????????? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?????????????????????¼? ?>>>>>>?¼????????????????????? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>>?????????????????????? ?>>>>>>>?????????????????????? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶? ?>>>>?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶?¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????????????????????????????»?? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>??»??????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>????????????????????????????????????????????????????? ?>>>1>*>(>2>9>>>>?¶?????????????????????¶? ?>>>>?¶?????????????????????¶? ?>>>1>*>(>2>9>>>>???????????????????????????.!CorsixTH-0.70.0/CorsixTH/Campaigns/Wishinwell.map000066400000000000000000005001541522247547500215540ustar00rootroot00000000000000?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤???????????????????????????????????????????????????§?????????????????????????????????????????????????????????????????????????????§???????????????????????????????????????????????????§??»??»??»??»??»??»??»??»??»??»??»??»??»??»??»??»??»??»?????»??»??»??»??»??»??»??»??»??»??»??»??»??»??»??»??»??»??§???????????????????????????????????????????????????§??¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾???????????????????????????????¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼??§???????????????????????????????????????????????????§??¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾???????????????????????????????¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼?¾?¼??§???????????????????????????????????????????????????§????????????????????????? ?xyz|z|z|z|z|z|z|z|z|z|z|z|xq?????????????????????????§???????????????????????????????????????????????????§??????????????????????º?º?? ?{s??º?º??????????????????????§???????????????????????????????????????????????????§? ?xyz|z|z|z|z|z|z|z|xq??º?º?? ?}u??º?º?? ?xyz|z|z|z|z|z|z|z|xq?§???????????????????????????????????????????????????§? ?{s??º?º?? ?{s??º?º?? ?{s?§???????????????????????????????????????????????????§? ?}u??º?º?? ?}u??º?º?? ?}u?§???????????????????????????????????????????????????§? ?{s??º?º?? ?{s??º?º?? ?{s?§???????????????????????????????????????????????????§? ?}u????? ?}u????? ?}u?§???????????????????????????????????????????????????§? ?{>q????? ?y>q????? ?ys?§???????????????????????????????????????????????????§? ?}xz|z|xu??? ?}>u??? ?}s?§???????????????????????????????????????????????????§? ?};>Ô>:Ö>;>Ô>>>>>>?·?·?·????????????????????? ?}u?§???????????????????????????????????????????????????§? ?{s???????????????????????·? ?>>>>>>?·??????????????????????? ?{s?§???????????????????????????????????????????????????§? ?}u???????????????????????·? ?=?>>>><? ?·??????????????????????? ?}u?§???????????????????????????????????????????????????§? ?yq???????????????????????·?·? ?>>>>?·?·??????????????????????? ?yq?§???????????????????????????????????????????????????§? ? p? p?=p?y>>>?·???????????????????????? ? p? p?=p?y>>>?·???¼??¾??¼???????????????????? ?{s????§???????????????????????????????????????????????????§??·?? ?}u??½?½?½?½?½?½?½?½?½?½?½?½?½?½?½?½??????????·? ?>>>>?·??????????½?½?½?½?½?½?½?½?½?½?½?½?½?½?½?½?? ?}u??·??§???????????????????????????????????????????????????§??·?? ?{s??½?½?½?½?½?½?½?½?½?½?½?½?½?½?½?½???¾??¼??¾???·? ?>>>>?·???¾??¼??¾???½?½?½?½?½?½?½?½?½?½?½?½?½?½?½?½?? ?{s??·??§?????????????????????????????????????????£?¯?¯?¯?¯?¯?¯?¯?¯?¯?­???? ?}u???????????????????????????·? ?>>>>?·??????????????????????????? ?}u????¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤???????????????????????????????§?????????????? ?y>q???????????·?·?·?·?·?·?·???¼??¾??¼???·? ?>>>>?·???¼??¾??¼???·?·?·?·?·?·?·??????????? ?y>q??????????????§???????????????????????????????§??¾?¹?¾?? ?xyz|z|z|xxz|z|z|z|x>q???????·??????????·? ?>>>>?·??????????·??????? ?xyz|z|z|z|xxz|z|z|xq??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?{:×>>>>>>?·???¾??¼??¾???·? ?>>>>?·???¾??¼??¾???·? ?>>>>>:Û>s??¹?¾?¹??§???????????????????????????????§??¾?¹?¾?? ?};>>>>>>?·??????????·? ?>>>>?·??????????·? ?>>>>>;>u??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?{Õ>>>>>>?·???¼??¾??¼???·? ?>>>>?·???¼??¾??¼???·? ?>>>>>Ùs??¹?¾?¹??§???????????????????????????????§??¾?¹?¾?? ?}<q? ?=?>>>?·??????????·? ?>>>>?·??????????·? ?>>><? ?=?yu??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?{>>?·??????????·? ?>>>>?·??????????·? ?>>>?¸? ? p? r? t? r? t? r? t?=p?ys??¹?¾?¹??§???????????????????????????????§??¾?¹?¾?? ?}q????????¸?¸? ?>>>?·?·?·?·?·?·?·?·?·?·?·? ?>>>>?·?·?·?·?·?·?·?·?·?·?·? ?>>>?¸?¸?¸?¸?¸?¸?¸?¸?¸? ?yu??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?{s? ?>>>>>>??? ?>>>>???????????? ?>>>>>???????????? ?>>>?¸?N?;?;?;?;?;?:?¸? ?{s??¹?¾?¹??§???????????????????????????????§??¾?¹?¾?? ?}u? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¸?M?D?DH?DF?DG?DH?@?¸? ?}u??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?yq? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¸?M?DF?D?D?D?D?@?¸? ?yq??¹?¾?¹??§???????????????????????????????§??¾?¹?¾?? ?{s? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?¸?M?D?DG?D?DH?DF?@?¸? ?{s??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?}u? ?>>>>><? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ?=?>>>><? ? ? ? ? ? ? ? ? ? ? ?=?>>>?¸?L?C?C?C?C?C?O?¸? ?}u??¹?¾?¹??§???????????????????????????????§??¾?¹?¾?? ?{q? ? ? ? ? ? ? ?¸?¸? ?>>>?·?·?·?·?·?·?·?·?·?·?·? ?>>>>?·?·?·?·?·?·?·?·?·?·?·? ?>>>?¸?¸?¸?¸?¸?¸?¸?¸?¸? ?ys??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?}>q?????????¸? ?>>>?·??????????·? ?>>>>?·??????????·? ?>>>?¸????????? ?yu??¹?¾?¹??§???????????????????????????????§??¾?¹?¾?? ?{xz|z|z|x>q?? ?>>>?·??????????·? ?>>>>?·??????????·? ?>>>>?? ?xyz|z|z|xs??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?}:×>>>>>>?·???¹????¹???·? ?>>>>?·???¹????¹???·? ?>>>>>:Û>u??¹?¾?¹??§???????????????????????????????§??¾?¹?¾?? ?{;>>>>>>?·??????????·? ?>>>>?·??????????·? ?>>>>>;>s??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?}Õ>>>>>>?·?????¹?????·? ?>>>>?·?????¹?????·? ?>>>>>Ùu??¹?¾?¹??§???????????????????????????????§??¾?¹?¾?? ?y<q? ? ? ? ? ? ?·??????????·? ?>>>>?·??????????·? ? ? ? ? ? ?=?yq??¾?¹?¾??§???????????????????????????????§??¹?¾?¹?? ?=p?y>>>?·???¹????¹???·?·?·?·?·?·?·? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t?=p?y>>>?·????????????????????????????????? ?{s???¾?¹?¾??§???????????????????????????????§??????? ?}u????????????????????????????¹?????·? ?>>>>?·?????¹???????????????????????????? ?}u???????§???????????????????????????????§??????? ?y>q?????????????????????????????????·? ?>>>>?·????????????????????????????????? ?y>q???????§???????????????????????????????§? ?xyz|z|xxz|z|z|z|z|z|z|z|z|z|xq????¹????¹???·? ?>>>>?·???¹????¹???? ?xyz|z|z|z|z|z|z|z|z|z|xxz|z|xq?§???????????????????????????????§? ?{s???????????·? ?>>>>?·??????????? ?{s?§???????????????????????????????§? ?}u??????¹?????·? ?>>>>?·?????¹?????? ?}u?§???????????????????????????????§? ?{s???????????·? ?>>>>?·??????????? ?{s?§???????????????????????????????§? ?}u????¹????¹???·? ?>>>>?·???¹????¹???? ?}u?§???????????????????????????????§? ?{s???????????·? ?>>>>?·??????????? ?{s?§???????????????????????????????§? ?}u??????¹?????·? ?>>>>?·?????¹?????? ?}u?§???????????????????????????????§? ?yq???????????·? ?>>>>?·??????????? ?yq?§???????????????????????????????§? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? p? ???????????·? ?>>>>?·??????????? ? p? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? r? t? p? ?§???????????????????????????????¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¤? ?>>>>?£?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?­????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§? ?>>>>?§?????????????????????????????????????????????????????????????À',CorsixTH-0.70.0/CorsixTH/Campaigns/Writhe.map000066400000000000000000005001541522247547500206710ustar00rootroot00000000000000?????????????????º?¨? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾?¾? ?>>>?·?¹?·?¹?·?¸?¸?·?¹?·?¹?·? ?>>>?¾?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾?¾? ?>>>?¹?ª?¯?¯?¯?¯?¯?¯?¯?¯?«?¹? ?>>>?¾?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???¼??›??¼??›??¼????¾?¾? ?>>>?·?¹?·?¹?·?¸?¸?·?¹?·?¹?·? ?>>>?¾?¾????¼??›??¼??›??¼??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾?? ?>????????????? ?>??¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???›??¼??›??¼??›????¾? ?xy:Ú>;>Øxz|xz|xxz|xz|x:Ú>;>Øxq?¾????›??¼??›??¼??›??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾? ?{s?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???¼??›??¼??›??¼????¾? ?}u?¾????¼??›??¼??›??¼??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾? ?{s?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???›??¼??›??¼??›????¾? ?}u?¾????›??¼??›??¼??›??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾? ?{s?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???¼??›??¼??›??¼????¾? ?}u?¾????¼??›??¼??›??¼??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾? ?{s?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???›??¼??›??¼??›????¾? ?}u?¾????›??¼??›??¼??›??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾? ?{s?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???¼??›??¼??›??¼????¾? ?}u?¾????¼??›??¼??›??¼??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾? ?yq?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾? ? p? r? t? p? p? r? t?=p?y>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾?¾?¾?¾?¾?¾?¾?¾?¾? ?yq?¾?¾?¾?¾?¾?¾?¾?¾?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>???????????????????????? ?y>q???????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>:xÛ>z|xxz|xxz|xxz|xxz|xxz|xxz|xxz|xxz|xxz|x:×>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>;>;>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>ÙÕ>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>><? ? ? ? ? p? r? t?=p?y>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????? ?yq???????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??»?????? ? p? r? t?=p?y>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??¨?????????¾? ?{s?¾?????????¨?? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??§??N?;?;?;?;?:??¾? ?}u?¾??N?;?;?;?;?:??§?? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??²??M?DG?D?D?DF?@??¾? ?yq?¾??M?DF?D?DG?D?@??²?? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??§??M?DF?D?D?DG?@??¾? ?{s?¾??M?D?D?D?DF?@??§?? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??§??M?D?D?D?D?@??¾? ?}u?¾??M?D?DH?D?D?@??§?? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??²??M?D?DH?DF?DH?@??¾? ?yq?¾??M?DG?DF?D?DH?@??²?? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??§??L?C?C?C?C?O??¾? ?{s?¾??L?C?C?C?C?O??§?? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??©?????????¾? ?}u?¾?????????©?? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??»?????????? ?y>q??????????»?? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????? ?xyz|xxz|xq???????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>???????? ?y>q???????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>:xÛ>z|xxz|x:×>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>;>;>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>ÙÕ>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>><? ? ? ? ? p? r? t? p? p? r? t? p? p? r? t? p? p? r? t? p? p? r? t?=p?y>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾?¾?¾?¾?¾?¾?¾?¾?¾? ?yq?¾?¾?¾?¾?¾?¾?¾?¾?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>???????????????¾????????? ?y>q?????????¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½?½?½?½?½?½?½?½?½???¾? ?xyz|xxz|xxz|xxz|xq?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½????????½???¾? ?{s?¾????¼??›??¼??›??¼??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½? ?>>>>>?½???¾? ?}u?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½? ?>>>>>?½???¾? ?{s?¾????›??¼??›??¼??›??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½? ?>>>>>?½???¾? ?}u?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½? ?>>>>>?½???¾? ?{s?¾????¼??›??¼??›??¼??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½? ?>>>>>?½???¾? ?}u?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½? ?=?>>><? ?½???¾? ?{s?¾????›??¼??›??¼??›??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½?¹? ?>>>?¹?½???¾? ?}u?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½?—? ?>>>?—?½???¾? ?{s?¾????¼??›??¼??›??¼??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½?—? ?>>>?—?½???¾? ?}u?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½?—? ?>>>?—?½???¾? ?yq?¾????›??¼??›??¼??›??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½?—? ?>>>?—?½???¾? ?=p?:Ö>;>Ô>;>Ô>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½?—? ?>>>?—?½???¾?¾? ?>>>?·?¹?·?¹?·?¸?¸?·?¹?·?¹?·? ?>>>?¾?¾????¼??›??¼??›??¼??? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½?—? ?>>>?—?½???¾?¾? ?>>>?¹?ª?¯?¯?¯?¯?¯?¯?¯?¯?«?¹? ?>>>?¾?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>????½?¹? ?>>>?¹?½???¾?¾? ?>>>?·?¹?·?¹?·?¸?¸?·?¹?·?¹?·? ?>>>?¾?¾??????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>?????? ?>>>>??????? ?>>>>????????????? ?>>>>????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?²? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????º?©? ?>>1>*>(>2>9>>1>*>(>2>9>>>>??????????????????????????????????????????????????????? ?>>>?????????????????????????????????° ¬(CorsixTH-0.70.0/CorsixTH/Campaigns/coffalot.level000066400000000000000000000243321522247547500215550ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Coffalot" %MapFile = "Coffalot.map" %LevelBriefing = "In the cosy town of Coffalot, some very ill patients are in need of medical attention. Luckily, you have been recruited by the Ministry of Health to operate a chain of hospitals in the nation. You have the job of running this quaint clinic on their behalf. To win the level, cure 50 patients, have a bank balance of $25,000, treat 50% of your visitors and have a hospital worth $50,000. We wish you the best of luck!" %LevelDebriefing = "Good work! The Ministry of Health thinks that you have done extremely well in handling your first hospital, but now, a managerial position has opened up at a new location. Would you be interested in running Holby Hospital?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 30000 300 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 100 The following table contains all diagnoses and treatments that shows up inte drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd 0 40000 BLOATY_HEAD #expertise[3].Known.RschReqd 0 40000 HAIRYITUS #expertise[4].Known.RschReqd 0 60000 ELVIS #expertise[5].Known.RschReqd 0 60000 INVIS #expertise[6].Known.RschReqd 0 60000 RADIATION #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[8].Known.RschReqd 0 60000 ALIEN #expertise[9].Known.RschReqd 0 20000 BROKEN_BONES #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 0 40000 DISCRETE_ITCHING #expertise[12].Known.RschReqd 0 40000 JELLYITUS #expertise[13].Known.RschReqd 0 40000 SLEEPING_ILLNESS #expertise[14].Known.RschReqd 0 30000 PREGNANT #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 0 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 0 60000 BROKEN_WIND #expertise[18].Known.RschReqd 0 20000 SPARE_RIBS #expertise[19].Known.RschReqd 0 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[21].Known.RschReqd 0 20000 RUPTURED_NODULES #expertise[22].Known.RschReqd 0 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 0 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 0 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 1 40000 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd 0 40000 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd 0 40000 FAKE_BLOOD #expertise[28].Known.RschReqd 0 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 0 20000 THE_SQUITS #expertise[30].Known.RschReqd 0 20000 IRON_LUNGS #expertise[31].Known.RschReqd 1 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 1 20000 HEAPED_PILES #expertise[33].Known.RschReqd 0 20000 GUT_ROT #expertise[34].Known.RschReqd 0 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 0 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 0 13 0 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 0 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 0 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 0 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 0 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 0 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 0 10 0 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 0 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 0 12 0 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 0 0 0 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 0 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 0 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 0 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 0 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 0 10 0 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 0 I_HAIRYITUS #visuals[2] 0 I_ELVIS #visuals[3] 0 I_INVIS #visuals[4] 0 I_RADIATION #visuals[5] 0 I_SLACK_TONGUE #visuals[6] 0 I_ALIEN #visuals[7] 0 I_BROKEN_BONES #visuals[8] 0 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 0 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 0 I_PREGNANT #visuals[13] 0 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 0 I_SPARE_RIBS #non_visuals[3] 0 I_KIDNEY_BEANS #non_visuals[4] 0 I_BROKEN_HEART #non_visuals[5] 0 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 0 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 0 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 0 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 0 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 0 I_GUT_ROT #non_visuals[18] 0 I_GOLF_STONES #non_visuals[19] 0 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 30 Handyman #staff[3].MinSalary 30 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 50 Surgeon #gbv.SalaryAdd[6] 40 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 10 #gbv.TrainingRate 50 #gbv.AbilityThreshold[0] 80 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 50 Researcher #gbv.TrainingValue[0] 30 Projector #gbv.TrainingValue[1] 30 Skeleton #gbv.TrainingValue[2] 30 Bookcase #quake_control[0].StartMonth.EndMonth.Severity 18 20 1 #quake_control[1].StartMonth.EndMonth.Severity 30 32 2 #quake_control[2].StartMonth.EndMonth.Severity 42 44 3 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 2 1 25000 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 3 1 50 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 4 1 50 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 6 1 50000 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 5 1 50 1 0 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? | 1 is yes, 0 no | Comment | #computer[12].Playing 1 CORSIX #computer[13].Playing 1 ROUJIN #computer[14].Playing 1 EDVIN CorsixTH-0.70.0/CorsixTH/Campaigns/dethsdaw.level000066400000000000000000000320061522247547500215600ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General ------------------------- %Name = "Dethsdaw" %MapFile = "Dethsdaw.map" %LevelBriefing = "The end is almost in sight, but first, some of the residents of Dethsdaw are coming down with a wobbly kind of illness. As always, the pinnacle of medical technologies are available to you as top scientists have created a new invention called the Atom Analyser. To move on to the final level, we want 900 cures, 90% treated, $450,000 in the bank, $600,000 worth of hospital and a reputation of 900. The Ministry expects total perfection!" %LevelDebriefing = "Exemplary! On the eve of your final mission, you've received a note from the Ministry of Health saying that they're putting you in charge of the largest and most complex hospital of them all! A country mansion awaits you... after you've finished Royal Hospital." #town.StartCash.InterestRate 80000 1400 #gbv.StartRating 70 When a drug is researched, what effectiveness does it have #gbv.DrugImproveRate 5 #gbv.StartCost 100 #gbv.MinDrugCost 50 #gbv.LandCostPerTile 45 Cost to buy a single map square #gbv.RschImproveCostPercent 10 How many percent of the original research points that are required to improve the machine. #gbv.RschImproveIncrementPercent 10 How many additional percentage points are added to the above value for each upgrade. #gbv.MaxObjectStrength 20 Maximum strength value an object can be improved to (by research) #gbv.ResearchIncrement 2 Increase object strength by this amount when researching #gbv.AutopsyRschPercent 33 % of research completed for an autopsy #gbv.AutopsyRepHitPercent 25 % rep hit for discovered autopsy ---------------------- Diseases ------------------------- The following table contains all diagnoses and treatments that shows up in the drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 #expertise[2].Known.RschReqd 1 40000 #expertise[3].Known.RschReqd 1 40000 #expertise[4].Known.RschReqd 1 60000 #expertise[5].Known.RschReqd 1 60000 #expertise[6].Known.RschReqd 0 60000 #expertise[7].Known.RschReqd 1 40000 #expertise[8].Known.RschReqd 0 60000 #expertise[9].Known.RschReqd 1 20000 #expertise[10].Known.RschReqd 1 40000 #expertise[11].Known.RschReqd 1 40000 #expertise[12].Known.RschReqd 0 40000 #expertise[13].Known.RschReqd 1 40000 #expertise[14].Known.RschReqd 1 30000 #expertise[15].Known.RschReqd 1 40000 #expertise[16].Known.RschReqd 1 20000 #expertise[17].Known.RschReqd 1 60000 #expertise[18].Known.RschReqd 1 20000 #expertise[19].Known.RschReqd 1 20000 #expertise[20].Known.RschReqd 1 20000 #expertise[21].Known.RschReqd 1 20000 #expertise[22].Known.RschReqd 1 40000 #expertise[23].Known.RschReqd 1 60000 #expertise[24].Known.RschReqd 1 40000 #expertise[25].Known.RschReqd 1 40000 #expertise[26].Known.RschReqd 1 40000 #expertise[27].Known.RschReqd 1 40000 #expertise[28].Known.RschReqd 1 40000 #expertise[29].Known.RschReqd 1 20000 #expertise[30].Known.RschReqd 1 20000 #expertise[31].Known.RschReqd 1 40000 #expertise[32].Known.RschReqd 1 20000 #expertise[33].Known.RschReqd 1 20000 #expertise[34].Known.RschReqd 1 20000 #expertise[35].Known.RschReqd 1 20000 #expertise[36].Known.RschReqd 0 40000 #expertise[37].Known.RschReqd 0 50000 #expertise[38].Known.RschReqd 1 20000 #expertise[39].Known.RschReqd 0 30000 #expertise[40].Known.RschReqd 0 60000 #expertise[41].Known.RschReqd 1 20000 #expertise[42].Known.RschReqd 1 20000 #expertise[43].Known.RschReqd 1 20000 #expertise[44].Known.RschReqd 0 0 #expertise[45].Known.RschReqd 0 0 #expertise[46].Known.RschReqd 0 0 | Diseases available | Value property to be determined | Comment #visuals[0] 1 #visuals[1] 1 #visuals[2] 1 #visuals[3] 1 #visuals[4] 1 #visuals[5] 1 #visuals[6] 0 #visuals[7] 1 #visuals[8] 1 #visuals[9] 1 #visuals[10] 1 #visuals[11] 1 #visuals[12] 1 #visuals[13] 1 #non_visuals[0] 1 #non_visuals[1] 1 #non_visuals[2] 1 #non_visuals[3] 1 #non_visuals[4] 1 #non_visuals[5] 1 #non_visuals[6] 1 #non_visuals[7] 1 #non_visuals[8] 1 #non_visuals[9] 1 #non_visuals[10] 1 #non_visuals[11] 1 #non_visuals[12] 1 #non_visuals[13] 1 #non_visuals[14] 1 #non_visuals[15] 1 #non_visuals[16] 1 #non_visuals[17] 1 #non_visuals[18] 1 #non_visuals[19] 1 #visuals_available[0] 0 #visuals_available[1] 12 #visuals_available[2] 3 #visuals_available[3] 12 #visuals_available[4] 18 #visuals_available[5] 6 #visuals_available[6] 0 #visuals_available[7] 6 #visuals_available[8] 12 #visuals_available[9] 0 #visuals_available[10] 18 #visuals_available[11] 0 #visuals_available[12] 0 #visuals_available[13] 6 ---------------------- Objects ------------------------- | Objects available | Available from the start | Strength | Available for this level | Comment #objects[1].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[2].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[3].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[4].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[5].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[6].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[7].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[8].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[9].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 8 1 40000 #objects[10].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[11].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[12].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[13].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 13 1 20000 #objects[14].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 12 1 40000 #objects[15].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[16].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[17].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[18].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[19].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[20].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[21].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[22].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 9 1 60000 #objects[23].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 7 0 60000 #objects[24].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 11 1 20000 #objects[25].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 8 1 40000 #objects[26].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 40000 #objects[27].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 12 1 30000 #objects[28].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[29].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[30].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 12 1 20000 #objects[31].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[32].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[33].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[34].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[35].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[36].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[37].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 0 1 20000 #objects[38].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[39].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[40].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 1 1 30000 #objects[41].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 1 1 30000 #objects[42].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 50000 #objects[43].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[44].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[45].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[46].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 8 1 40000 #objects[47].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 7 1 40000 #objects[48].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[49].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[50].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[51].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[52].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[53].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[54].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 60000 #objects[55].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[56].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[57].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 57 1 0 #objects[58].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[59].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[60].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[61].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 ---------------------- Staff Configuration ------------------------- The minimum salary for each staff type #staff[0].MinSalary 60 #staff[1].MinSalary 75 #staff[2].MinSalary 30 #staff[3].MinSalary 30 Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 #gbv.SalaryAdd[4] 25 #gbv.SalaryAdd[5] 75 #gbv.SalaryAdd[6] 50 #gbv.SalaryAdd[7] 120 #gbv.SalaryAdd[8] 30 Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 0 8 8 3 2 10 10 10 10 3 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 3 7 5 5 3 10 10 10 10 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 5 5 8 7 4 10 10 10 10 3 #gbv.TrainingRate 45 #gbv.AbilityThreshold[0] 75 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 45 Researcher #gbv.TrainingValue[0] 10 Projector #gbv.TrainingValue[1] 25 Skeleton #gbv.TrainingValue[2] 30 Bookcase ----------------------- Emergency Control -------------------------- #emergency_control[0].Random 0 ----------------------- Quake Control -------------------------- #quake_control[0].StartMonth.EndMonth.Severity 10 12 6 #quake_control[1].StartMonth.EndMonth.Severity 22 24 7 #quake_control[2].StartMonth.EndMonth.Severity 34 36 8 #quake_control[3].StartMonth.EndMonth.Severity 46 48 7 #quake_control[4].StartMonth.EndMonth.Severity 58 60 6 #quake_control[5].StartMonth.EndMonth.Severity 70 72 6 ----------------------- Population Growth ---------------------------- #popn[0].Month.Change 0 4 #popn[1].Month.Change 1 1 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Cure count 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 900 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 450000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 90 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 900 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 600000 1 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 450 1 500 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 0 -40000 2 -20000 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 5 1 20 3 10 CorsixTH-0.70.0/CorsixTH/Campaigns/example.campaign000066400000000000000000000014631522247547500220630ustar00rootroot00000000000000name = "Example campaign" description = "This is an example campaign where you get the chance to play " .. "through some of the levels shipped with CorsixTH. Happy gaming!" description_table = { en = "This is an example campaign where you get the chance to play " .. "through some of the levels shipped with CorsixTH. Happy gaming!", fr = "Ceci est un exemple de campagne où vous avez la chance de jouer " .. "à certains des niveaux fournis avec CorsixTH. Bon jeu !", } movie = true levels = { "finisham.level", "avatar.level", "confined_v5.level", "st.peter's.level", } winning_text_table = {} winning_text_table.en = "Congratulations! You have successfully completed all the levels." winning_text_table.fr = "Toutes nos félicitations! Vous avez terminé avec succès tous les niveaux." CorsixTH-0.70.0/CorsixTH/Campaigns/fourcorners.level000066400000000000000000000247461522247547500223400ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Four Corners" %MapFile = "Four Corners.map" %LevelBriefing = "New advances in technology has allowed for improved research - you now have access to the Computer. Also, there is a tragic new condition involving gleaming foreheads and a new piece of diagnosis equipment to research. Your hospital, too, is strange since it is made up of nine cubes, so you will have to deal with it as best you can. Cure 600 people, treat 75% of them, have $300,000 in the bank, have a hospital worth $200,000 and a reputation of 750 to win." %LevelDebriefing = "Spectacular! The Ministry of Health is in good standing with the public thanks to you, but they feel as though one hospital is not moving forward enough. There is a hair-raisingly good opportunity available to you at Hoppalong Hospital, will you take the offer?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 50000 1000 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 80 The following table contains all diagnoses and treatments that shows up inte drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd 1 40000 BLOATY_HEAD #expertise[3].Known.RschReqd 0 40000 HAIRYITUS #expertise[4].Known.RschReqd 0 60000 ELVIS #expertise[5].Known.RschReqd 1 60000 INVIS #expertise[6].Known.RschReqd 0 60000 RADIATION #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[8].Known.RschReqd 0 60000 ALIEN #expertise[9].Known.RschReqd 0 20000 BROKEN_BONES #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 1 40000 DISCRETE_ITCHING #expertise[12].Known.RschReqd 0 40000 JELLYITUS #expertise[13].Known.RschReqd 1 40000 SLEEPING_ILLNESS #expertise[14].Known.RschReqd 0 30000 PREGNANT #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 1 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 1 60000 BROKEN_WIND #expertise[18].Known.RschReqd 1 20000 SPARE_RIBS #expertise[19].Known.RschReqd 1 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[21].Known.RschReqd 0 20000 RUPTURED_NODULES #expertise[22].Known.RschReqd 1 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 1 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 1 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 1 40000 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd 1 40000 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd 1 40000 FAKE_BLOOD #expertise[28].Known.RschReqd 1 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 1 20000 THE_SQUITS #expertise[30].Known.RschReqd 0 20000 IRON_LUNGS #expertise[31].Known.RschReqd 1 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 1 20000 HEAPED_PILES #expertise[33].Known.RschReqd 1 20000 GUT_ROT #expertise[34].Known.RschReqd 1 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 1 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 1 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 0 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 0 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 1 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 1 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 0 10 1 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 1 12 1 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 1 0 1 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 1 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 0 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 0 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 0 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 0 I_HAIRYITUS #visuals[2] 1 I_ELVIS #visuals[3] 1 I_INVIS #visuals[4] 0 I_RADIATION #visuals[5] 1 I_SLACK_TONGUE #visuals[6] 0 I_ALIEN #visuals[7] 1 I_BROKEN_BONES #visuals[8] 1 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 0 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 0 I_PREGNANT #visuals[13] 0 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 1 I_SPARE_RIBS #non_visuals[3] 1 I_KIDNEY_BEANS #non_visuals[4] 1 I_BROKEN_HEART #non_visuals[5] 1 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 1 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 1 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[18] 1 I_GOLF_STONES #non_visuals[19] 1 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 30 Handyman #staff[3].MinSalary 30 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 50 Surgeon #gbv.SalaryAdd[6] 40 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 30 #gbv.TrainingRate 50 #gbv.AbilityThreshold[0] 80 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 50 Researcher #gbv.TrainingValue[0] 30 Projector #gbv.TrainingValue[1] 30 Skeleton #gbv.TrainingValue[2] 30 Bookcase #quake_control[0].StartMonth.EndMonth.Severity 10 12 4 #quake_control[1].StartMonth.EndMonth.Severity 22 24 5 #quake_control[2].StartMonth.EndMonth.Severity 34 36 6 #quake_control[3].StartMonth.EndMonth.Severity 46 48 5 #quake_control[4].StartMonth.EndMonth.Severity 58 60 4 #quake_control[5].StartMonth.EndMonth.Severity 70 72 4 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 750 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 300000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 75 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 600 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 200000 1 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 400 1 450 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 5 1 25 2 10 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? | 1 is yes, 0 no | Comment | #computer[12].Playing 1 CORSIX #computer[13].Playing 1 ROUJIN #computer[14].Playing 1 EDVIN CorsixTH-0.70.0/CorsixTH/Campaigns/greyhamgardens.level000066400000000000000000000256411522247547500227640ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Greyham Gardens" %MapFile = "Greyham Gardens.map" %LevelBriefing = "Dr Greybags, a local scientist, has invested his time and effort in researching new machinery to combat the strange new afflictions in this rural area. He has kindly donated his expertise to you in the hope that you can cure more people. You now have access to the research room and training, among other rooms. Victory shall be yours if you cure 250 patients, amass $100,000, treat 60% of patients and have $125,000 worth of hospital value. We are confident you can do it!" %LevelDebriefing = "Brilliant! In an ever changing world of comical afflictions, the Ministry of Health deems you a valued employee. You now get to go to the beach... to run your next hospital. Will you fill the job vacancy going at Snuffit Sands Hospital?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 40000 600 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 95 The following table contains all diagnoses and treatments that shows up inte drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd 0 40000 BLOATY_HEAD #expertise[3].Known.RschReqd 0 40000 HAIRYITUS #expertise[4].Known.RschReqd 0 60000 ELVIS #expertise[5].Known.RschReqd 0 60000 INVIS #expertise[6].Known.RschReqd 0 60000 RADIATION #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[8].Known.RschReqd 0 60000 ALIEN #expertise[9].Known.RschReqd 0 20000 BROKEN_BONES #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 1 40000 DISCRETE_ITCHING #expertise[12].Known.RschReqd 0 40000 JELLYITUS #expertise[13].Known.RschReqd 1 40000 SLEEPING_ILLNESS #expertise[14].Known.RschReqd 0 30000 PREGNANT #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 1 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 1 60000 BROKEN_WIND #expertise[18].Known.RschReqd 0 20000 SPARE_RIBS #expertise[19].Known.RschReqd 0 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[21].Known.RschReqd 0 20000 RUPTURED_NODULES #expertise[22].Known.RschReqd 0 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 1 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 0 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 1 40000 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd 0 40000 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd 0 40000 FAKE_BLOOD #expertise[28].Known.RschReqd 0 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 1 20000 THE_SQUITS #expertise[30].Known.RschReqd 0 20000 IRON_LUNGS #expertise[31].Known.RschReqd 1 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 1 20000 HEAPED_PILES #expertise[33].Known.RschReqd 0 20000 GUT_ROT #expertise[34].Known.RschReqd 0 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 1 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 0 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 0 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 0 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 0 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 0 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 0 10 0 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 1 12 1 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 1 0 1 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 0 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 0 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 0 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 0 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 0 I_HAIRYITUS #visuals[2] 0 I_ELVIS #visuals[3] 1 I_INVIS #visuals[4] 0 I_RADIATION #visuals[5] 0 I_SLACK_TONGUE #visuals[6] 0 I_ALIEN #visuals[7] 0 I_BROKEN_BONES #visuals[8] 0 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 0 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 0 I_PREGNANT #visuals[13] 0 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 1 I_SPARE_RIBS #non_visuals[3] 1 I_KIDNEY_BEANS #non_visuals[4] 0 I_BROKEN_HEART #non_visuals[5] 0 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 1 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 0 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[18] 1 I_GOLF_STONES #non_visuals[19] 0 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 30 Handyman #staff[3].MinSalary 30 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 50 Surgeon #gbv.SalaryAdd[6] 40 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 20 #gbv.TrainingRate 50 #gbv.AbilityThreshold[0] 80 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 50 Researcher #gbv.TrainingValue[0] 30 Projector #gbv.TrainingValue[1] 30 Skeleton #gbv.TrainingValue[2] 30 Bookcase #quake_control[0].StartMonth.EndMonth.Severity 18 20 2 #quake_control[1].StartMonth.EndMonth.Severity 30 32 3 #quake_control[2].StartMonth.EndMonth.Severity 42 44 4 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 2 1 100000 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 3 1 60 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 4 1 250 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 6 1 125000 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 5 1 40 1 0 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? | 1 is yes, 0 no | Comment | #computer[12].Playing 1 CORSIX #computer[13].Playing 1 ROUJIN #computer[14].Playing 1 EDVIN ----------------------- Emergency Control -------------------------- #emergency_control[0].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 4 6 3 5 16 60 1000 #emergency_control[1].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 8 10 4 6 32 60 1500 #emergency_control[2].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 12 14 4 6 11 60 2000 #emergency_control[3].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 16 18 4 6 13 60 2000 #emergency_control[4].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 20 22 4 6 23 60 2000 #emergency_control[5].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 24 26 4 6 25 60 2000CorsixTH-0.70.0/CorsixTH/Campaigns/holby.level000066400000000000000000000251441522247547500210770ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Holby" %MapFile = "Holby.map" %LevelBriefing = "Your next mission is to treat the City of Holby. The odd diseases are travelling fast and it is up to you to cure 100 people, stockpile $50,000 in the bank, look after 50% of patients and have a hospital worth $75,000. You have been given a hospital which has the ability to be expanded in size, so use this to your advantage. Efficient planning and a well-run clinic will help in the event of an emergency. Make us proud at the Ministry!" %LevelDebriefing = "Great job! Now that you have your own office, the Ministry of Health is expecting bigger and better things. It's just a shame you're not getting any bigger and better cash bonuses to quench your lavish tastes. Will you be able to cope at Writhe Hospital?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 30000 400 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 100 The following table contains all diagnoses and treatments that shows up inte drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd 0 40000 BLOATY_HEAD #expertise[3].Known.RschReqd 0 40000 HAIRYITUS #expertise[4].Known.RschReqd 0 60000 ELVIS #expertise[5].Known.RschReqd 0 60000 INVIS #expertise[6].Known.RschReqd 0 60000 RADIATION #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[8].Known.RschReqd 0 60000 ALIEN #expertise[9].Known.RschReqd 0 20000 BROKEN_BONES #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 0 40000 DISCRETE_ITCHING #expertise[12].Known.RschReqd 0 40000 JELLYITUS #expertise[13].Known.RschReqd 0 40000 SLEEPING_ILLNESS #expertise[14].Known.RschReqd 0 30000 PREGNANT #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 1 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 1 60000 BROKEN_WIND #expertise[18].Known.RschReqd 0 20000 SPARE_RIBS #expertise[19].Known.RschReqd 0 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[21].Known.RschReqd 0 20000 RUPTURED_NODULES #expertise[22].Known.RschReqd 0 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 0 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 0 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 1 40000 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd 0 40000 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd 0 40000 FAKE_BLOOD #expertise[28].Known.RschReqd 0 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 0 20000 THE_SQUITS #expertise[30].Known.RschReqd 0 20000 IRON_LUNGS #expertise[31].Known.RschReqd 1 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 1 20000 HEAPED_PILES #expertise[33].Known.RschReqd 0 20000 GUT_ROT #expertise[34].Known.RschReqd 0 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 0 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 0 13 0 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 0 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 0 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 0 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 0 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 0 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 0 10 0 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 0 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 0 12 0 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 0 0 0 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 0 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 0 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 0 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 0 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 0 10 0 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 0 I_HAIRYITUS #visuals[2] 0 I_ELVIS #visuals[3] 0 I_INVIS #visuals[4] 0 I_RADIATION #visuals[5] 0 I_SLACK_TONGUE #visuals[6] 0 I_ALIEN #visuals[7] 0 I_BROKEN_BONES #visuals[8] 0 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 0 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 0 I_PREGNANT #visuals[13] 0 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 0 I_SPARE_RIBS #non_visuals[3] 0 I_KIDNEY_BEANS #non_visuals[4] 0 I_BROKEN_HEART #non_visuals[5] 0 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 0 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 0 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 0 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[18] 0 I_GOLF_STONES #non_visuals[19] 0 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 30 Handyman #staff[3].MinSalary 30 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 50 Surgeon #gbv.SalaryAdd[6] 40 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 10 #gbv.TrainingRate 50 #gbv.AbilityThreshold[0] 80 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 50 Researcher #gbv.TrainingValue[0] 30 Projector #gbv.TrainingValue[1] 30 Skeleton #gbv.TrainingValue[2] 30 Bookcase #quake_control[0].StartMonth.EndMonth.Severity 18 20 1 #quake_control[1].StartMonth.EndMonth.Severity 30 32 2 #quake_control[2].StartMonth.EndMonth.Severity 42 44 3 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 2 1 50000 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 3 1 50 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 4 1 100 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 6 1 75000 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 5 1 50 1 0 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? | 1 is yes, 0 no | Comment | #computer[12].Playing 1 CORSIX #computer[13].Playing 1 ROUJIN #computer[14].Playing 1 EDVIN ----------------------- Emergency Control -------------------------- #emergency_control[0].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 6 8 3 5 17 60 500 #emergency_control[1].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 12 14 4 6 31 60 1000 #emergency_control[2].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 18 20 4 6 16 60 1000CorsixTH-0.70.0/CorsixTH/Campaigns/hoppalong.level000066400000000000000000000317561522247547500217570ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General ------------------------- %Name = "Hoppalong" %MapFile = "Hoppalong.map" %LevelBriefing = "A strange disease which makes people hairy is running rampant around the city of Wishinwell. According to our top scientists, it can only be removed by electroconvulsive therapy. Aside from that, you may find yourself out of room and out of cash, so plan ahead carefully. To win the level, cure 700 patients, treat 80% of visitors, amass $250,000 in the kitty, have a hospital worth $350,000 and gain a reputation of 800." %LevelDebriefing = "Perfect! Though you've done well here, a recent emergency has led to the creation of a makeshift hospital and your new boss, Mr B. Hind, is desperate for someone to run it. Don't let the public down! Will you take the challenge at Tufflook Hospital?" #town.StartCash.InterestRate 60000 1100 #gbv.StartRating 75 When a drug is researched, what effectiveness does it have #gbv.DrugImproveRate 5 #gbv.StartCost 100 #gbv.MinDrugCost 50 #gbv.LandCostPerTile 35 Cost to buy a single map square #gbv.RschImproveCostPercent 10 How many percent of the original research points that are required to improve the machine. #gbv.RschImproveIncrementPercent 10 How many additional percentage points are added to the above value for each upgrade. #gbv.MaxObjectStrength 20 Maximum strength value an object can be improved to (by research) #gbv.ResearchIncrement 2 Increase object strength by this amount when researching #gbv.AutopsyRschPercent 33 % of research completed for an autopsy #gbv.AutopsyRepHitPercent 25 % rep hit for discovered autopsy ---------------------- Diseases ------------------------- The following table contains all diagnoses and treatments that shows up in the drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 #expertise[2].Known.RschReqd 1 40000 #expertise[3].Known.RschReqd 0 40000 #expertise[4].Known.RschReqd 1 60000 #expertise[5].Known.RschReqd 1 60000 #expertise[6].Known.RschReqd 0 60000 #expertise[7].Known.RschReqd 0 40000 #expertise[8].Known.RschReqd 0 60000 #expertise[9].Known.RschReqd 0 20000 #expertise[10].Known.RschReqd 0 40000 #expertise[11].Known.RschReqd 1 40000 #expertise[12].Known.RschReqd 0 40000 #expertise[13].Known.RschReqd 1 40000 #expertise[14].Known.RschReqd 0 30000 #expertise[15].Known.RschReqd 0 40000 #expertise[16].Known.RschReqd 1 20000 #expertise[17].Known.RschReqd 1 60000 #expertise[18].Known.RschReqd 1 20000 #expertise[19].Known.RschReqd 1 20000 #expertise[20].Known.RschReqd 1 20000 #expertise[21].Known.RschReqd 0 20000 #expertise[22].Known.RschReqd 1 40000 #expertise[23].Known.RschReqd 1 60000 #expertise[24].Known.RschReqd 1 40000 #expertise[25].Known.RschReqd 1 40000 #expertise[26].Known.RschReqd 1 40000 #expertise[27].Known.RschReqd 1 40000 #expertise[28].Known.RschReqd 1 40000 #expertise[29].Known.RschReqd 1 20000 #expertise[30].Known.RschReqd 0 20000 #expertise[31].Known.RschReqd 1 40000 #expertise[32].Known.RschReqd 1 20000 #expertise[33].Known.RschReqd 1 20000 #expertise[34].Known.RschReqd 1 20000 #expertise[35].Known.RschReqd 1 20000 #expertise[36].Known.RschReqd 0 40000 #expertise[37].Known.RschReqd 0 50000 #expertise[38].Known.RschReqd 1 20000 #expertise[39].Known.RschReqd 0 30000 #expertise[40].Known.RschReqd 0 60000 #expertise[41].Known.RschReqd 1 20000 #expertise[42].Known.RschReqd 1 20000 #expertise[43].Known.RschReqd 1 20000 #expertise[44].Known.RschReqd 0 0 #expertise[45].Known.RschReqd 0 0 #expertise[46].Known.RschReqd 0 0 | Diseases available | Value property to be determined | Comment #visuals[0] 1 #visuals[1] 1 #visuals[2] 1 #visuals[3] 1 #visuals[4] 0 #visuals[5] 1 #visuals[6] 0 #visuals[7] 1 #visuals[8] 1 #visuals[9] 1 #visuals[10] 0 #visuals[11] 1 #visuals[12] 1 #visuals[13] 1 #non_visuals[0] 1 #non_visuals[1] 1 #non_visuals[2] 1 #non_visuals[3] 1 #non_visuals[4] 1 #non_visuals[5] 1 #non_visuals[6] 1 #non_visuals[7] 1 #non_visuals[8] 1 #non_visuals[9] 1 #non_visuals[10] 1 #non_visuals[11] 1 #non_visuals[12] 1 #non_visuals[13] 1 #non_visuals[14] 1 #non_visuals[15] 1 #non_visuals[16] 1 #non_visuals[17] 1 #non_visuals[18] 1 #non_visuals[19] 1 #visuals_available[0] 0 #visuals_available[1] 12 #visuals_available[2] 3 #visuals_available[3] 12 #visuals_available[4] 18 #visuals_available[5] 6 #visuals_available[6] 0 #visuals_available[7] 6 #visuals_available[8] 12 #visuals_available[9] 0 #visuals_available[10] 18 #visuals_available[11] 0 #visuals_available[12] 0 #visuals_available[13] 6 ---------------------- Objects ------------------------- | Objects available | Available from the start | Strength | Available for this level | Comment #objects[1].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[2].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[3].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[4].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[5].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[6].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[7].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[8].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[9].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 8 1 40000 #objects[10].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[11].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[12].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[13].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 13 1 20000 #objects[14].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 12 1 40000 #objects[15].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[16].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[17].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[18].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[19].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[20].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[21].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[22].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 9 0 60000 #objects[23].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 7 0 60000 #objects[24].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 11 1 20000 #objects[25].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 8 1 40000 #objects[26].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 40000 #objects[27].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 12 1 30000 #objects[28].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[29].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[30].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 12 1 20000 #objects[31].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[32].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[33].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[34].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[35].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[36].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[37].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 0 1 20000 #objects[38].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[39].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[40].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 30000 #objects[41].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 0 30000 #objects[42].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 50000 #objects[43].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[44].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[45].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[46].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 8 1 40000 #objects[47].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 7 0 40000 #objects[48].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[49].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[50].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[51].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[52].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[53].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[54].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 0 60000 #objects[55].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[56].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[57].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 0 #objects[58].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[59].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[60].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[61].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 ---------------------- Staff Configuration ------------------------- The minimum salary for each staff type #staff[0].MinSalary 60 #staff[1].MinSalary 75 #staff[2].MinSalary 30 #staff[3].MinSalary 30 Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 #gbv.SalaryAdd[4] 30 #gbv.SalaryAdd[5] 50 #gbv.SalaryAdd[6] 40 #gbv.SalaryAdd[7] 100 #gbv.SalaryAdd[8] 20 Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 0 8 8 3 2 10 10 10 10 4 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 3 7 5 5 3 10 10 10 10 4 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 5 5 8 7 4 10 10 10 10 4 #gbv.TrainingRate 45 #gbv.AbilityThreshold[0] 75 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 45 Researcher #gbv.TrainingValue[0] 10 Projector #gbv.TrainingValue[1] 25 Skeleton #gbv.TrainingValue[2] 30 Bookcase ----------------------- Emergency Control -------------------------- #emergency_control[0].Random 0 ----------------------- Quake Control -------------------------- #quake_control[0].StartMonth.EndMonth.Severity 10 12 6 #quake_control[1].StartMonth.EndMonth.Severity 22 24 7 #quake_control[2].StartMonth.EndMonth.Severity 34 36 8 #quake_control[3].StartMonth.EndMonth.Severity 46 48 7 #quake_control[4].StartMonth.EndMonth.Severity 58 60 6 #quake_control[5].StartMonth.EndMonth.Severity 70 72 6 ----------------------- Population Growth ---------------------------- #popn[0].Month.Change 0 4 #popn[1].Month.Change 1 1 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Cure count 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 800 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 250000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 80 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 700 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 350000 1 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 400 1 450 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 0 -50000 2 -30000 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 5 1 25 3 10 CorsixTH-0.70.0/CorsixTH/Campaigns/royalhospital.level000066400000000000000000000321001522247547500226420ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General ------------------------- %Name = "Royal Hospital" %MapFile = "Royal Hospital.map" %LevelBriefing = "This is your final assignment. The Ministry has granted you $100,000 to set up and operate the largest and most demanding hospital in the world. This is going to be a huge task, but we are certain that you'll succeed. We expect nothing less than perfection - gain a reputation of 950, amass $500,000 in the bank, have a hospital worth $1,000,000, treat 90% of all patients and cure 1000 visitors to finish. Good luck!" #town.StartCash.InterestRate 100000 1500 #gbv.StartRating 70 When a drug is researched, what effectiveness does it have #gbv.DrugImproveRate 5 #gbv.StartCost 100 #gbv.MinDrugCost 50 #gbv.LandCostPerTile 50 Cost to buy a single map square #gbv.RschImproveCostPercent 10 How many percent of the original research points that are required to improve the machine. #gbv.RschImproveIncrementPercent 10 How many additional percentage points are added to the above value for each upgrade. #gbv.MaxObjectStrength 20 Maximum strength value an object can be improved to (by research) #gbv.ResearchIncrement 2 Increase object strength by this amount when researching #gbv.AutopsyRschPercent 33 % of research completed for an autopsy #gbv.AutopsyRepHitPercent 25 % rep hit for discovered autopsy ---------------------- Diseases ------------------------- The following table contains all diagnoses and treatments that shows up in the drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 #expertise[2].Known.RschReqd 1 40000 #expertise[3].Known.RschReqd 1 40000 #expertise[4].Known.RschReqd 1 60000 #expertise[5].Known.RschReqd 1 60000 #expertise[6].Known.RschReqd 1 60000 #expertise[7].Known.RschReqd 1 40000 #expertise[8].Known.RschReqd 1 60000 #expertise[9].Known.RschReqd 1 20000 #expertise[10].Known.RschReqd 1 40000 #expertise[11].Known.RschReqd 1 40000 #expertise[12].Known.RschReqd 1 40000 #expertise[13].Known.RschReqd 1 40000 #expertise[14].Known.RschReqd 1 30000 #expertise[15].Known.RschReqd 1 40000 #expertise[16].Known.RschReqd 1 20000 #expertise[17].Known.RschReqd 1 60000 #expertise[18].Known.RschReqd 1 20000 #expertise[19].Known.RschReqd 1 20000 #expertise[20].Known.RschReqd 1 20000 #expertise[21].Known.RschReqd 1 20000 #expertise[22].Known.RschReqd 1 40000 #expertise[23].Known.RschReqd 1 60000 #expertise[24].Known.RschReqd 1 40000 #expertise[25].Known.RschReqd 1 40000 #expertise[26].Known.RschReqd 1 40000 #expertise[27].Known.RschReqd 1 40000 #expertise[28].Known.RschReqd 1 40000 #expertise[29].Known.RschReqd 1 20000 #expertise[30].Known.RschReqd 1 20000 #expertise[31].Known.RschReqd 1 40000 #expertise[32].Known.RschReqd 1 20000 #expertise[33].Known.RschReqd 1 20000 #expertise[34].Known.RschReqd 1 20000 #expertise[35].Known.RschReqd 1 20000 #expertise[36].Known.RschReqd 0 40000 #expertise[37].Known.RschReqd 0 50000 #expertise[38].Known.RschReqd 1 20000 #expertise[39].Known.RschReqd 0 30000 #expertise[40].Known.RschReqd 0 60000 #expertise[41].Known.RschReqd 1 20000 #expertise[42].Known.RschReqd 1 20000 #expertise[43].Known.RschReqd 1 20000 #expertise[44].Known.RschReqd 0 0 #expertise[45].Known.RschReqd 0 0 #expertise[46].Known.RschReqd 0 0 | Diseases available | Value property to be determined | Comment #visuals[0] 1 #visuals[1] 1 #visuals[2] 1 #visuals[3] 1 #visuals[4] 1 #visuals[5] 1 #visuals[6] 1 #visuals[7] 1 #visuals[8] 1 #visuals[9] 1 #visuals[10] 1 #visuals[11] 1 #visuals[12] 1 #visuals[13] 1 #non_visuals[0] 1 #non_visuals[1] 1 #non_visuals[2] 1 #non_visuals[3] 1 #non_visuals[4] 1 #non_visuals[5] 1 #non_visuals[6] 1 #non_visuals[7] 1 #non_visuals[8] 1 #non_visuals[9] 1 #non_visuals[10] 1 #non_visuals[11] 1 #non_visuals[12] 1 #non_visuals[13] 1 #non_visuals[14] 1 #non_visuals[15] 1 #non_visuals[16] 1 #non_visuals[17] 1 #non_visuals[18] 1 #non_visuals[19] 1 #visuals_available[0] 0 #visuals_available[1] 12 #visuals_available[2] 3 #visuals_available[3] 12 #visuals_available[4] 18 #visuals_available[5] 6 #visuals_available[6] 0 #visuals_available[7] 6 #visuals_available[8] 12 #visuals_available[9] 0 #visuals_available[10] 18 #visuals_available[11] 0 #visuals_available[12] 0 #visuals_available[13] 6 ---------------------- Objects ------------------------- | Objects available | Available from the start | Strength | Available for this level | Comment #objects[1].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[2].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[3].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[4].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[5].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[6].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[7].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[8].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[9].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 8 1 40000 #objects[10].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[11].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[12].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[13].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 13 1 20000 #objects[14].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 12 1 40000 #objects[15].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[16].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[17].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[18].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[19].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[20].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[21].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[22].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 9 1 60000 #objects[23].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 7 1 60000 #objects[24].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 11 1 20000 #objects[25].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 8 1 40000 #objects[26].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 40000 #objects[27].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 12 1 30000 #objects[28].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[29].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[30].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 12 1 20000 #objects[31].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[32].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[33].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[34].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[35].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[36].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[37].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 0 1 20000 #objects[38].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[39].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[40].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 1 1 30000 #objects[41].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 1 1 30000 #objects[42].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 50000 #objects[43].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[44].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[45].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[46].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 8 1 40000 #objects[47].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 7 1 40000 #objects[48].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[49].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[50].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[51].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[52].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[53].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[54].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 60000 #objects[55].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[56].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[57].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 57 1 0 #objects[58].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[59].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[60].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[61].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 ---------------------- Staff Configuration ------------------------- The minimum salary for each staff type #staff[0].MinSalary 60 #staff[1].MinSalary 75 #staff[2].MinSalary 25 #staff[3].MinSalary 20 Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 #gbv.SalaryAdd[4] 30 #gbv.SalaryAdd[5] 75 #gbv.SalaryAdd[6] 50 #gbv.SalaryAdd[7] 100 #gbv.SalaryAdd[8] 25 Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 0 8 8 3 2 10 10 10 10 3 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 3 7 5 5 3 10 10 10 10 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 5 5 8 7 4 10 10 10 10 3 #gbv.TrainingRate 45 #gbv.AbilityThreshold[0] 75 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 45 Researcher #gbv.TrainingValue[0] 10 Projector #gbv.TrainingValue[1] 25 Skeleton #gbv.TrainingValue[2] 30 Bookcase ----------------------- Emergency Control -------------------------- #emergency_control[0].Random 0 ----------------------- Quake Control -------------------------- #quake_control[0].StartMonth.EndMonth.Severity 5 10 10 #quake_control[1].StartMonth.EndMonth.Severity 15 20 10 #quake_control[2].StartMonth.EndMonth.Severity 25 30 10 #quake_control[3].StartMonth.EndMonth.Severity 35 40 10 #quake_control[4].StartMonth.EndMonth.Severity 45 50 10 #quake_control[5].StartMonth.EndMonth.Severity 55 60 10 #quake_control[6].StartMonth.EndMonth.Severity 65 70 10 #quake_control[7].StartMonth.EndMonth.Severity 75 80 10 #quake_control[8].StartMonth.EndMonth.Severity 85 90 10 #quake_control[9].StartMonth.EndMonth.Severity 95 100 10 #quake_control[10].StartMonth.EndMonth.Severity 105 110 10 #quake_control[11].StartMonth.EndMonth.Severity 125 130 10 ----------------------- Population Growth ---------------------------- #popn[0].Month.Change 0 4 #popn[1].Month.Change 1 1 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Cure count 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 950 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 500000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 90 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 1000 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 1000000 1 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 450 1 500 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 0 -30000 2 -15000 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 5 1 20 3 10 CorsixTH-0.70.0/CorsixTH/Campaigns/snuffitsands.level000066400000000000000000000262601522247547500224710ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Snuffit Sands" %MapFile = "Snuffit Sands.map" %LevelBriefing = "You are now highly regarded in the hospital community for your excellent services and care, so you now have a reputation to maintain as well. Also, your surgeons may see a couple of new merry maladies to take care of in the operating theatre. Hopefully, you can accomplish these goals for the cheery land of Snuffit Sands. Cure 300 patients, treat 70% of patients, accumulate $125,000 in the bank, have a hospital worth $150,000 and maintain a reputation of 600." %LevelDebriefing = "Wonderful! Things have become hectic since you've been away. The Ministry has immediately assigned you to your next task in a dilapidated old clinic, and watch out for the tongues! Can you help the sick people of Upper Pukington Hospital?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 45000 700 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 90 The following table contains all diagnoses and treatments that shows up inte drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd 1 40000 BLOATY_HEAD #expertise[3].Known.RschReqd 0 40000 HAIRYITUS #expertise[4].Known.RschReqd 0 60000 ELVIS #expertise[5].Known.RschReqd 0 60000 INVIS #expertise[6].Known.RschReqd 0 60000 RADIATION #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[8].Known.RschReqd 0 60000 ALIEN #expertise[9].Known.RschReqd 0 20000 BROKEN_BONES #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 1 40000 DISCRETE_ITCHING #expertise[12].Known.RschReqd 0 40000 JELLYITUS #expertise[13].Known.RschReqd 1 40000 SLEEPING_ILLNESS #expertise[14].Known.RschReqd 0 30000 PREGNANT #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 1 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 1 60000 BROKEN_WIND #expertise[18].Known.RschReqd 0 20000 SPARE_RIBS #expertise[19].Known.RschReqd 0 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[21].Known.RschReqd 0 20000 RUPTURED_NODULES #expertise[22].Known.RschReqd 1 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 1 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 0 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 1 40000 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd 0 40000 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd 0 40000 FAKE_BLOOD #expertise[28].Known.RschReqd 0 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 1 20000 THE_SQUITS #expertise[30].Known.RschReqd 0 20000 IRON_LUNGS #expertise[31].Known.RschReqd 1 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 1 20000 HEAPED_PILES #expertise[33].Known.RschReqd 0 20000 GUT_ROT #expertise[34].Known.RschReqd 0 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 1 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 0 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 0 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 0 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 0 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 0 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 0 10 0 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 1 12 1 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 1 0 1 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 0 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 0 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 0 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 0 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 0 I_HAIRYITUS #visuals[2] 1 I_ELVIS #visuals[3] 1 I_INVIS #visuals[4] 0 I_RADIATION #visuals[5] 0 I_SLACK_TONGUE #visuals[6] 0 I_ALIEN #visuals[7] 0 I_BROKEN_BONES #visuals[8] 0 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 0 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 0 I_PREGNANT #visuals[13] 0 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 1 I_SPARE_RIBS #non_visuals[3] 1 I_KIDNEY_BEANS #non_visuals[4] 1 I_BROKEN_HEART #non_visuals[5] 0 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 1 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 0 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[18] 1 I_GOLF_STONES #non_visuals[19] 1 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 30 Handyman #staff[3].MinSalary 30 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 50 Surgeon #gbv.SalaryAdd[6] 40 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 25 #gbv.TrainingRate 50 #gbv.AbilityThreshold[0] 80 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 50 Researcher #gbv.TrainingValue[0] 30 Projector #gbv.TrainingValue[1] 30 Skeleton #gbv.TrainingValue[2] 30 Bookcase #quake_control[0].StartMonth.EndMonth.Severity 18 20 3 #quake_control[1].StartMonth.EndMonth.Severity 30 32 4 #quake_control[2].StartMonth.EndMonth.Severity 42 44 5 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 600 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 125000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 70 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 300 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 150000 1 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 400 1 450 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 5 1 30 2 10 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? | 1 is yes, 0 no | Comment | #computer[12].Playing 1 CORSIX #computer[13].Playing 1 ROUJIN #computer[14].Playing 1 EDVIN ----------------------- Emergency Control -------------------------- #emergency_control[0].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 4 6 4 6 2 70 1000 #emergency_control[1].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 8 10 5 8 16 70 2000 #emergency_control[2].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 12 14 5 8 22 70 2500 #emergency_control[3].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 16 18 5 8 13 70 2500 #emergency_control[4].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 20 22 5 8 23 70 2500 #emergency_control[5].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 24 26 5 8 29 70 2500 #emergency_control[6].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 28 30 5 8 17 70 2500 #emergency_control[7].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 32 34 5 8 11 70 2500 #emergency_control[8].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 36 38 5 8 4 70 2500CorsixTH-0.70.0/CorsixTH/Campaigns/tufflook.level000066400000000000000000000320201522247547500216020ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General ------------------------- %Name = "Tufflook" %MapFile = "Tufflook.map" %LevelBriefing = "Disaster! A nuclear meltdown at the local power station has rendered a curious new form of radiation sickness to develop within the city. The Ministry has set up this hospital, filled with all the latest equipment, to help you cure them of their ailments. To succeed, cure 800 and treat at least 80% of patients, gather $300,000 in your account, construct a hospital worth $500,000 and gain a sterling reputation of 850. We are confident you can do it!" %LevelDebriefing = "Marvellous! You've come a long way since your humble beginnings, but the Ministry thinks that it is time to bring you back to earth and back to work. There's a job with a jelly... sorry, jolly good salary for you at Dethsdaw Hospital. Will you go for it?" #town.StartCash.InterestRate 70000 1250 #gbv.StartRating 75 When a drug is researched, what effectiveness does it have #gbv.DrugImproveRate 5 #gbv.StartCost 100 #gbv.MinDrugCost 50 #gbv.LandCostPerTile 40 Cost to buy a single map square #gbv.RschImproveCostPercent 10 How many percent of the original research points that are required to improve the machine. #gbv.RschImproveIncrementPercent 10 How many additional percentage points are added to the above value for each upgrade. #gbv.MaxObjectStrength 20 Maximum strength value an object can be improved to (by research) #gbv.ResearchIncrement 2 Increase object strength by this amount when researching #gbv.AutopsyRschPercent 33 % of research completed for an autopsy #gbv.AutopsyRepHitPercent 25 % rep hit for discovered autopsy ---------------------- Diseases ------------------------- The following table contains all diagnoses and treatments that shows up in the drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 #expertise[2].Known.RschReqd 1 40000 #expertise[3].Known.RschReqd 0 40000 #expertise[4].Known.RschReqd 1 60000 #expertise[5].Known.RschReqd 1 60000 #expertise[6].Known.RschReqd 0 60000 #expertise[7].Known.RschReqd 1 40000 #expertise[8].Known.RschReqd 0 60000 #expertise[9].Known.RschReqd 0 20000 #expertise[10].Known.RschReqd 0 40000 #expertise[11].Known.RschReqd 1 40000 #expertise[12].Known.RschReqd 0 40000 #expertise[13].Known.RschReqd 1 40000 #expertise[14].Known.RschReqd 1 30000 #expertise[15].Known.RschReqd 0 40000 #expertise[16].Known.RschReqd 1 20000 #expertise[17].Known.RschReqd 1 60000 #expertise[18].Known.RschReqd 1 20000 #expertise[19].Known.RschReqd 1 20000 #expertise[20].Known.RschReqd 1 20000 #expertise[21].Known.RschReqd 1 20000 #expertise[22].Known.RschReqd 1 40000 #expertise[23].Known.RschReqd 1 60000 #expertise[24].Known.RschReqd 1 40000 #expertise[25].Known.RschReqd 1 40000 #expertise[26].Known.RschReqd 1 40000 #expertise[27].Known.RschReqd 1 40000 #expertise[28].Known.RschReqd 1 40000 #expertise[29].Known.RschReqd 1 20000 #expertise[30].Known.RschReqd 1 20000 #expertise[31].Known.RschReqd 1 40000 #expertise[32].Known.RschReqd 1 20000 #expertise[33].Known.RschReqd 1 20000 #expertise[34].Known.RschReqd 1 20000 #expertise[35].Known.RschReqd 1 20000 #expertise[36].Known.RschReqd 0 40000 #expertise[37].Known.RschReqd 0 50000 #expertise[38].Known.RschReqd 1 20000 #expertise[39].Known.RschReqd 0 30000 #expertise[40].Known.RschReqd 0 60000 #expertise[41].Known.RschReqd 1 20000 #expertise[42].Known.RschReqd 1 20000 #expertise[43].Known.RschReqd 1 20000 #expertise[44].Known.RschReqd 0 0 #expertise[45].Known.RschReqd 0 0 #expertise[46].Known.RschReqd 0 0 | Diseases available | Value property to be determined | Comment #visuals[0] 1 #visuals[1] 1 #visuals[2] 1 #visuals[3] 1 #visuals[4] 1 #visuals[5] 1 #visuals[6] 0 #visuals[7] 1 #visuals[8] 1 #visuals[9] 1 #visuals[10] 0 #visuals[11] 1 #visuals[12] 1 #visuals[13] 1 #non_visuals[0] 1 #non_visuals[1] 1 #non_visuals[2] 1 #non_visuals[3] 1 #non_visuals[4] 1 #non_visuals[5] 1 #non_visuals[6] 1 #non_visuals[7] 1 #non_visuals[8] 1 #non_visuals[9] 1 #non_visuals[10] 1 #non_visuals[11] 1 #non_visuals[12] 1 #non_visuals[13] 1 #non_visuals[14] 1 #non_visuals[15] 1 #non_visuals[16] 1 #non_visuals[17] 1 #non_visuals[18] 1 #non_visuals[19] 1 #visuals_available[0] 0 #visuals_available[1] 12 #visuals_available[2] 3 #visuals_available[3] 12 #visuals_available[4] 18 #visuals_available[5] 6 #visuals_available[6] 0 #visuals_available[7] 6 #visuals_available[8] 12 #visuals_available[9] 0 #visuals_available[10] 18 #visuals_available[11] 0 #visuals_available[12] 0 #visuals_available[13] 6 ---------------------- Objects ------------------------- | Objects available | Available from the start | Strength | Available for this level | Comment #objects[1].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[2].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[3].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[4].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[5].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[6].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[7].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[8].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[9].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 8 1 40000 #objects[10].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[11].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[12].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[13].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 13 1 20000 #objects[14].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 12 1 40000 #objects[15].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[16].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[17].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[18].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[19].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[20].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[21].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[22].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 9 1 60000 #objects[23].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 7 0 60000 #objects[24].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 11 1 20000 #objects[25].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 8 1 40000 #objects[26].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 40000 #objects[27].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 12 1 30000 #objects[28].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[29].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[30].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 12 1 20000 #objects[31].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[32].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[33].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[34].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[35].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[36].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[37].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 0 1 20000 #objects[38].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[39].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 20000 #objects[40].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 30000 #objects[41].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 0 30000 #objects[42].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 50000 #objects[43].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[44].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[45].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[46].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 8 1 40000 #objects[47].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 7 0 40000 #objects[48].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[49].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[50].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[51].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[52].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[53].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[54].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 60000 #objects[55].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[56].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[57].StartAvail.StartStrength.AvailableForLevel.RschReqd 0 10 1 0 #objects[58].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[59].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[60].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 #objects[61].StartAvail.StartStrength.AvailableForLevel.RschReqd 1 10 1 0 ---------------------- Staff Configuration ------------------------- The minimum salary for each staff type #staff[0].MinSalary 60 #staff[1].MinSalary 75 #staff[2].MinSalary 30 #staff[3].MinSalary 30 Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 #gbv.SalaryAdd[4] 30 #gbv.SalaryAdd[5] 50 #gbv.SalaryAdd[6] 40 #gbv.SalaryAdd[7] 100 #gbv.SalaryAdd[8] 20 Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 0 8 8 3 2 10 10 10 10 4 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 3 7 5 5 3 10 10 10 10 4 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 5 5 8 7 4 10 10 10 10 4 #gbv.TrainingRate 45 #gbv.AbilityThreshold[0] 75 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 45 Researcher #gbv.TrainingValue[0] 10 Projector #gbv.TrainingValue[1] 25 Skeleton #gbv.TrainingValue[2] 30 Bookcase ----------------------- Emergency Control -------------------------- #emergency_control[0].Random 0 ----------------------- Quake Control -------------------------- #quake_control[0].StartMonth.EndMonth.Severity 10 12 7 #quake_control[1].StartMonth.EndMonth.Severity 22 24 8 #quake_control[2].StartMonth.EndMonth.Severity 34 36 9 #quake_control[3].StartMonth.EndMonth.Severity 46 48 8 #quake_control[4].StartMonth.EndMonth.Severity 58 60 7 #quake_control[5].StartMonth.EndMonth.Severity 70 72 7 ----------------------- Population Growth ---------------------------- #popn[0].Month.Change 0 4 #popn[1].Month.Change 1 1 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Cure count 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 850 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 300000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 80 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 800 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 500000 1 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 400 1 450 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 0 -50000 2 -30000 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 5 1 25 3 10 CorsixTH-0.70.0/CorsixTH/Campaigns/upperpukington.level000066400000000000000000000247301522247547500230540ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Upper Pukington" %MapFile = "Upper Pukington.map" %LevelBriefing = "The Ministry of Health has recently acquired this old hospital in Upper Pukington, but has found it to be unsatisfactory in standards. There is a new tongue swelling disorder going around too, so watch out! Whilst you will not be dealing with emergencies, the layout is somewhat archaic, but we are sure you can reach the targets of 400 cures, 70% patient treatment, $200,000 in the kitty, $150,000 hospital value and a reputation of 650. Good luck!" %LevelDebriefing = "Excellent! The Ministry sees that your climbing the ranks in this career, but watch you don't fall and break a leg! You wouldn't want to ruin your new Italian shoes now... so could you assist the ill patients in need of treatment at Wishinwell Hospital?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 45000 800 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 90 The following table contains all diagnoses and treatments that shows up inte drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd 1 40000 BLOATY_HEAD #expertise[3].Known.RschReqd 0 40000 HAIRYITUS #expertise[4].Known.RschReqd 0 60000 ELVIS #expertise[5].Known.RschReqd 0 60000 INVIS #expertise[6].Known.RschReqd 0 60000 RADIATION #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[8].Known.RschReqd 0 60000 ALIEN #expertise[9].Known.RschReqd 0 20000 BROKEN_BONES #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 1 40000 DISCRETE_ITCHING #expertise[12].Known.RschReqd 0 40000 JELLYITUS #expertise[13].Known.RschReqd 1 40000 SLEEPING_ILLNESS #expertise[14].Known.RschReqd 0 30000 PREGNANT #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 1 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 1 60000 BROKEN_WIND #expertise[18].Known.RschReqd 0 20000 SPARE_RIBS #expertise[19].Known.RschReqd 0 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[21].Known.RschReqd 0 20000 RUPTURED_NODULES #expertise[22].Known.RschReqd 1 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 1 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 1 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 1 40000 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd 0 40000 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd 0 40000 FAKE_BLOOD #expertise[28].Known.RschReqd 1 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 1 20000 THE_SQUITS #expertise[30].Known.RschReqd 0 20000 IRON_LUNGS #expertise[31].Known.RschReqd 1 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 1 20000 HEAPED_PILES #expertise[33].Known.RschReqd 1 20000 GUT_ROT #expertise[34].Known.RschReqd 0 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 1 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 1 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 0 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 0 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 0 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 0 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 0 10 1 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 1 12 1 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 1 0 1 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 0 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 0 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 0 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 0 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 0 I_HAIRYITUS #visuals[2] 1 I_ELVIS #visuals[3] 1 I_INVIS #visuals[4] 0 I_RADIATION #visuals[5] 1 I_SLACK_TONGUE #visuals[6] 0 I_ALIEN #visuals[7] 0 I_BROKEN_BONES #visuals[8] 0 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 0 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 0 I_PREGNANT #visuals[13] 0 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 1 I_SPARE_RIBS #non_visuals[3] 1 I_KIDNEY_BEANS #non_visuals[4] 1 I_BROKEN_HEART #non_visuals[5] 0 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 1 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 0 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[18] 1 I_GOLF_STONES #non_visuals[19] 1 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 30 Handyman #staff[3].MinSalary 30 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 50 Surgeon #gbv.SalaryAdd[6] 40 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 25 #gbv.TrainingRate 50 #gbv.AbilityThreshold[0] 80 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 50 Researcher #gbv.TrainingValue[0] 30 Projector #gbv.TrainingValue[1] 30 Skeleton #gbv.TrainingValue[2] 30 Bookcase #quake_control[0].StartMonth.EndMonth.Severity 10 12 3 #quake_control[1].StartMonth.EndMonth.Severity 22 24 4 #quake_control[2].StartMonth.EndMonth.Severity 34 36 5 #quake_control[3].StartMonth.EndMonth.Severity 46 48 4 #quake_control[4].StartMonth.EndMonth.Severity 58 60 3 #quake_control[5].StartMonth.EndMonth.Severity 70 72 4 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 650 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 200000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 70 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 400 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 150000 1 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 400 1 450 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 5 1 30 2 10 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? | 1 is yes, 0 no | Comment | #computer[12].Playing 1 CORSIX #computer[13].Playing 1 ROUJIN #computer[14].Playing 1 EDVIN CorsixTH-0.70.0/CorsixTH/Campaigns/wishinwell.level000066400000000000000000000265051522247547500221510ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Wishinwell" %MapFile = "Wishinwell.map" %LevelBriefing = "There are a couple of new conditions in the town of Wishinwell which require your attention, and you'll be dealing with broken bones, so do not forget to prioritise research to cure rooms. You will also be dealing with a fair share of emergencies too. To win, gain a reputation of 700, treat 500 patients, cure 75% of your visitors, amass $175,000 in the bank and have a hospital worth $200,000. We at the Ministry wish you the best of luck!" %LevelDebriefing = "Outstanding! Now that you're on first name terms with your new boss, Mr I. Leggitt, you've been given a new project. He has noticed that you constantly stare at all four walls of your office, so do you think you can operate Four Corners Hospital?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 50000 900 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 85 The following table contains all diagnoses and treatments that shows up inte drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd 1 40000 BLOATY_HEAD #expertise[3].Known.RschReqd 0 40000 HAIRYITUS #expertise[4].Known.RschReqd 0 60000 ELVIS #expertise[5].Known.RschReqd 0 60000 INVIS #expertise[6].Known.RschReqd 0 60000 RADIATION #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[8].Known.RschReqd 0 60000 ALIEN #expertise[9].Known.RschReqd 0 20000 BROKEN_BONES #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 1 40000 DISCRETE_ITCHING #expertise[12].Known.RschReqd 0 40000 JELLYITUS #expertise[13].Known.RschReqd 1 40000 SLEEPING_ILLNESS #expertise[14].Known.RschReqd 0 30000 PREGNANT #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 1 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 1 60000 BROKEN_WIND #expertise[18].Known.RschReqd 0 20000 SPARE_RIBS #expertise[19].Known.RschReqd 0 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[21].Known.RschReqd 0 20000 RUPTURED_NODULES #expertise[22].Known.RschReqd 1 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 1 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 1 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 1 40000 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd 1 40000 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd 1 40000 FAKE_BLOOD #expertise[28].Known.RschReqd 1 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 1 20000 THE_SQUITS #expertise[30].Known.RschReqd 0 20000 IRON_LUNGS #expertise[31].Known.RschReqd 1 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 1 20000 HEAPED_PILES #expertise[33].Known.RschReqd 1 20000 GUT_ROT #expertise[34].Known.RschReqd 0 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 1 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 1 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 0 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 0 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 1 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 1 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 1 10 1 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 1 12 1 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 1 0 1 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 1 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 0 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 0 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 0 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 0 I_HAIRYITUS #visuals[2] 1 I_ELVIS #visuals[3] 1 I_INVIS #visuals[4] 0 I_RADIATION #visuals[5] 1 I_SLACK_TONGUE #visuals[6] 0 I_ALIEN #visuals[7] 1 I_BROKEN_BONES #visuals[8] 1 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 0 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 0 I_PREGNANT #visuals[13] 0 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 1 I_SPARE_RIBS #non_visuals[3] 1 I_KIDNEY_BEANS #non_visuals[4] 1 I_BROKEN_HEART #non_visuals[5] 1 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 1 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 1 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[18] 1 I_GOLF_STONES #non_visuals[19] 1 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 30 Handyman #staff[3].MinSalary 30 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 50 Surgeon #gbv.SalaryAdd[6] 40 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 30 #gbv.TrainingRate 50 #gbv.AbilityThreshold[0] 80 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 50 Researcher #gbv.TrainingValue[0] 30 Projector #gbv.TrainingValue[1] 30 Skeleton #gbv.TrainingValue[2] 30 Bookcase #quake_control[0].StartMonth.EndMonth.Severity 10 12 4 #quake_control[1].StartMonth.EndMonth.Severity 22 24 5 #quake_control[2].StartMonth.EndMonth.Severity 34 36 6 #quake_control[3].StartMonth.EndMonth.Severity 46 48 5 #quake_control[4].StartMonth.EndMonth.Severity 58 60 4 #quake_control[5].StartMonth.EndMonth.Severity 70 72 4 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 700 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 175000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 75 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 500 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 200000 1 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 400 1 450 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 5 1 25 2 10 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? | 1 is yes, 0 no | Comment | #computer[12].Playing 1 CORSIX #computer[13].Playing 1 ROUJIN #computer[14].Playing 1 EDVIN ----------------------- Emergency Control -------------------------- #emergency_control[0].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 4 6 4 6 2 80 2000 #emergency_control[1].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 8 10 5 8 16 80 2500 #emergency_control[2].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 12 14 5 8 22 80 3000 #emergency_control[3].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 16 18 5 8 13 80 3000 #emergency_control[4].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 20 22 5 8 23 80 3000 #emergency_control[5].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 24 26 5 8 29 80 3000 #emergency_control[6].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 28 30 5 8 17 80 3000 #emergency_control[7].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 32 34 5 8 11 80 3000 #emergency_control[8].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 36 38 5 8 4 80 3000CorsixTH-0.70.0/CorsixTH/Campaigns/writhe.level000066400000000000000000000256301522247547500212640ustar00rootroot00000000000000Copyright (c) 2013 Chris "ChrizmanTV" Wilkinson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Writhe" %MapFile = "Writhe.map" %LevelBriefing = "The Ministry has, so far, been impressed by your hospital running abilities and has issued you another challenge. Here at Writhe, the citizens of this small town are in desperate need of a new, efficient hospital. There are a couple of new ailments that will require the attention of your psychiatrists, so keep your wits scalpel sharp! To succeed, cure 200 patients, accrue $75,000, see to 60% of your customers and have a $100,000 hospital value. We are counting on you!" %LevelDebriefing = "Superb! People at the Ministry speak glowingly of you now that Mr L. Bow, your boss, has promoted you. Just don't overdo the top hat and tails, the public need you! There's a job at Greyham Gardens Hospital with your name on it, will you accept?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 40000 500 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 100 The following table contains all diagnoses and treatments that shows up inte drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd 0 40000 BLOATY_HEAD #expertise[3].Known.RschReqd 0 40000 HAIRYITUS #expertise[4].Known.RschReqd 0 60000 ELVIS #expertise[5].Known.RschReqd 0 60000 INVIS #expertise[6].Known.RschReqd 0 60000 RADIATION #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[8].Known.RschReqd 0 60000 ALIEN #expertise[9].Known.RschReqd 0 20000 BROKEN_BONES #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 0 40000 DISCRETE_ITCHING #expertise[12].Known.RschReqd 0 40000 JELLYITUS #expertise[13].Known.RschReqd 0 40000 SLEEPING_ILLNESS #expertise[14].Known.RschReqd 0 30000 PREGNANT #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 1 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 1 60000 BROKEN_WIND #expertise[18].Known.RschReqd 0 20000 SPARE_RIBS #expertise[19].Known.RschReqd 0 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[21].Known.RschReqd 0 20000 RUPTURED_NODULES #expertise[22].Known.RschReqd 0 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 1 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 0 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 1 40000 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd 0 40000 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd 0 40000 FAKE_BLOOD #expertise[28].Known.RschReqd 0 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 1 20000 THE_SQUITS #expertise[30].Known.RschReqd 0 20000 IRON_LUNGS #expertise[31].Known.RschReqd 1 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 1 20000 HEAPED_PILES #expertise[33].Known.RschReqd 0 20000 GUT_ROT #expertise[34].Known.RschReqd 0 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 1 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 0 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 0 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 0 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 0 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 0 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 0 10 0 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 0 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 0 12 0 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 0 0 0 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 0 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 0 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 0 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 0 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 0 10 0 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 0 I_HAIRYITUS #visuals[2] 0 I_ELVIS #visuals[3] 0 I_INVIS #visuals[4] 0 I_RADIATION #visuals[5] 0 I_SLACK_TONGUE #visuals[6] 0 I_ALIEN #visuals[7] 0 I_BROKEN_BONES #visuals[8] 0 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 0 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 0 I_PREGNANT #visuals[13] 0 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 0 I_SPARE_RIBS #non_visuals[3] 0 I_KIDNEY_BEANS #non_visuals[4] 0 I_BROKEN_HEART #non_visuals[5] 0 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 1 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 0 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[18] 0 I_GOLF_STONES #non_visuals[19] 0 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 30 Handyman #staff[3].MinSalary 30 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 50 Surgeon #gbv.SalaryAdd[6] 40 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 10 #gbv.TrainingRate 50 #gbv.AbilityThreshold[0] 80 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 50 Researcher #gbv.TrainingValue[0] 30 Projector #gbv.TrainingValue[1] 30 Skeleton #gbv.TrainingValue[2] 30 Bookcase #quake_control[0].StartMonth.EndMonth.Severity 18 20 2 #quake_control[1].StartMonth.EndMonth.Severity 30 32 3 #quake_control[2].StartMonth.EndMonth.Severity 42 44 4 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 2500 #awards_trophies.CansofCokeBonus 5000 #awards_trophies.Reputation 2500 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 2 1 75000 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 3 1 60 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 4 1 200 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 6 1 100000 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 5 1 50 1 0 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? | 1 is yes, 0 no | Comment | #computer[12].Playing 1 CORSIX #computer[13].Playing 1 ROUJIN #computer[14].Playing 1 EDVIN ----------------------- Emergency Control -------------------------- #emergency_control[0].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 4 6 3 5 17 60 1000 #emergency_control[1].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 10 12 4 6 22 60 1500 #emergency_control[2].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 16 18 4 6 24 60 2000 #emergency_control[3].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 22 24 4 6 26 60 2000 #emergency_control[4].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 28 30 4 6 31 60 2000 #emergency_control[5].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 34 36 4 6 33 60 2000CorsixTH-0.70.0/CorsixTH/CorsixTH.ico000066400000000000000000002010471522247547500172240ustar00rootroot00000000000000 ¤Xv€€ ¥"Y@@ (B¿{00 ¨%ç½  ¨�ã ˆ 7ô h¿ý‰PNG  IHDR\r¨fgAMA±� üa pHYsttÞfxXFIDATxÚìÃ×€0 0Ò�^ðþSÂ÷Ã�@w:¾ëÇÌ´Ö:ï眯Ç�{ïÛ­µíZ«XJsÎbJIŒ1B"CÐ{/:ç µc Ö*¥àÅ®YIrCaØLé23ff:ˆš!433ĦÔÉAnf¶�—™™yÐ Ë»ÿ�®ÔšQ·zFïF]Ûªúgžúÿ„(·n~àWpÜ®É5¿ùàIX I8JxQ"ÿ�/À.à7¿9 --m‹¡ ˜=ð _€  ¿¡jÑao�/Ñ¡Íè¨ð;øã$ø¸<0qÁf P[ÒÓÓ•ÉÈÈÐNff¦2¿ßÕûg5ËÉÉ -..®ˆ,,,¸b~~^™¹¹9%fgg™™™±ezzÚ–©©))“““R&&&l—266¦ƒåÁÁÁpWW×è¡C‡ºÞyç�Ʋ²²ù8XÏ-íÿ„xÈÖz²‘@:zØ�8xHmÁì’kªIôµ+ÕX^ZZÚ²Bp„ dàDàD` D` D "°2�H�Hèíí}衇Žb¦±!ˆà¸8™/Fö‚Ox3‚N-ux_¦Ka%¥§§g`Ïž=‚�K€»†Ð?Öùð#¤k7ÝtÓÈ«¯¾Z÷Í7ßîC¡ƒ(fˆs:2!ð�h¼qh~�¬n µµµ¡xÔÔÔH©®®–RUUCeee\***b(--�¡¤¤$†âââ°§a¡°°Ð5òóócÈËË;Knn®HÕdH9‚»víê{íµ×Žûí·uùÇFGG׬¾øâ‹‡ ìwþ÷ÅQÿÉ'Ÿlău0»òH�‡;!�€‚Á gÑðþ—fSv³1·†IoêÚ ”o*·1ˆ¾ ;v¬Yœ ìß¿ÿWákU ÿ£|øaØh#Z ƒo^ؽ/…eù2A]n$´J�HxJ ìÔ�ŒŒüÎKà™gž9&l –yCQ¯G¬°Ž¸í¶ÛºNNéS|?ðI¢*ω@”0_DǃXzÚÚÚz8 ,_wÝuÃÜ×|¤í|´›ë­(Â6?øô¡…BÔœk,óŠô"ð¾€g$ÀϺ»»¹Ïo‚«dSÿ»ùÂ×ÕÕ5$~¯…!4,»9]0QJK —†T`ŠØr€_ Üwß}-Üç?–  Ÿûá‡n24øf„ÝûRà@'úÙ€§%@y[�ßÄi¿ ø\*ž÷W³3}tÜ:[÷» ?UðýÀëÂrVV ½E@¿$ •ý¦ w:Àâh3À}þ‹PØ—XÁo¾ùæ1Sƒï^ðP‹@¾, Yø'ï 0¼þúëÍÜç>ð+öÉK>,ü´Á7?ôápøœC.Qˆ@”Øy Àwß}WÇðË/¿ð7²îd…>yÃ�`Ô' ¾ùA7O LÙÙÙ[@�{ÐÏè÷¨$�‚MÁ“7™Z[[‡¸Ïõ‰3€%vG}ߌ°{_ g`„Ì—Õñ éRàäµa&€þþþEîs¿‰øŸüäÝ~Wá§¾x5’�H–DKz øž“ú!È0<<ü§õó\C�—9„Ì ¾ù¡�D""¦Ê`F¶NB'úÙ€(à! Ð/PÿNþrŠÎ 7üôÁ' 4=ô°€6¸_, Ì�Á¦ ½PlQ¦ßÀ ›/^hD >Ø _ ¨ E¶@Ó¨O|¢°›6g· ‚†‚“Ö¶Û6¶ýÜ!)óÜÍuÃñyäú¾ò^ü•?².c:&^à%EQPUu]Ó4 mÛÒ÷=ã8ÒuÝÄÍY,¹CQTÍfffÆU6áU˜™™†™W�ðWø“ì}ðåÊWTcY.¹½8Ã<÷éu»ôcúá,Ò¡+MAÑ%”8(�(·tßÐ#~`D5å© âñ8™–Il;#¶ l›À°¬«ÁJ°,cd,5È\b’µØ"{‘MÎBp˜ç� X.‚eác�"Ãe0ÊtPÓáM‡š‡œ�…‰—µü#�z ¨¿=¨~P+üÑ…Ê[þÈ—>‘H”L±ß�Ï w–Kös‡ü¡�ÜкA§OnhóÉiÆóF°Þ#§Ô€à;ï xð5¬§Þ#pÜA𮃋çºSàBw¡; ö#0»Àv°lëÁ° ,‹Á,|Ž#ÕÏQ,¾¨F èº(¨^øcç@¥¿² ®^±XL¬âŸ<òÇfdÅãŒrBÁHH¾Ì0 Èã J €þ€Ü4}I/è8=Ih…„š\²êâð¼E€_Úd>Bxï˜ÄŽN…ì ˜ÅxÉŒ‘”€†Q@�T¯úå*¾¶²kàË·/©•ÖmAÐÆQö ‰q‰ BÈ(ƒaNq"p8Ý�@è® ´9B-.ß9ˆÕÿ X" @ l7 UúGõÀ]@ýª_1ÅG™"IÏ@OjÆ÷ººÉLp2ˆ`‚“A£BvùEФÝ@v €V‡ >6Ìdd\ÁsH‹—¥�œPüH@‘ðÇ–P‘«¾þÂ룦±†Ø:F~_ÌœbÆÿLBFHc‚@ 2ï â Ü�¼q#!ž@°¸ýãîN<ÄŸû{?ww—§+_~îöd­œíÓ]�;çuQSÃܼ›É|Ø«a˜nß½k©SOÕ[x² ¤08Ä :BX„`!AÔv¥#¹�œW%zz{\%Ã(þù�ƒ`v¼…üE&~±Hžƒ8¬]¿–J•4y5ÁŸntD *Åà)›Xr"<Èäìnà^À.¥ÃZ‚ðâåHÄ/¾?àÑ ä/x @ä/ñÙ‹�5§¯áú?ûi ÑB,b „@„öü€=$0"p{Šr!— ÃKB„ 'ˆ /J :B�[ @QÉ?r oÇòc—“š®¨òLÝŽ.ÂPµ‹�CnÀ’€˜^�ðR-},^]„¹‹@þIÁ„ /¢M Jü‘Oz‰9‹ç�š¡¨úlã'ñŒ&;à#ü(…a�Ý ØEpºÛÐ[I徂)2�c(�¿ä¿êçDüHÿoÿöoyÃù¦9•‚y!UŸkd��ç‚1° �¬ H7à L©0¾-åÕ�ƒè6T ‚ôÅ�ärpþ€‹È�üE"~DÏ_öÚ/ GT}¾©ÉÞ ),n!�a�p¦@„Râ[ÓV›ð EáÅ©ªbòŠ�†�$óIú €¾��9ñ8‘ÖAþÜWýüI/ _|Œ�0–¢U€ÆÔ´ YaÀŸ»Š�KžÀ¤€Câ[ʼ1IÍS\T©Â}eßnìŸÌ_  ¸‚ù @þ«¾?ñG<á%ÊÕ2EÇÆTÝ¡Éý‚ÆŽ,¤(0�öA:À)�ØE ¾9å Z¢(D#PT©AüˆˆŸ¿Ø]@¾ Á Hä/éW¯^m."!}ãûhåÊ•ôâ‹/râôßÿýß»b¨ï‡ëƒ-¸Ñ)1È/�ÂÐ] )ÒÈ>G• #ÉM)wÿ©Õç‡øÜLp}†¾K€Bˆ@Þ¡ˆŸW(0d0�»åÏ�ø9�¾+‰ßzë­ŸL¸”59«þŒkˆ³Ùåó$¼Dâ;ßù¿v|vBµ{>Ä R ;„XrN7à�øÆ´ÕxB@Á9¡9°’À_Å�üC0|�ÿª_ₜ¸68b‰Â8¤`q@ÁÜ€Âq|“cÕãØ7ŒB3’™~û·Û‹ü6üþïÿ>¿f´Þ€R¤R#67 C“”"_Ÿr÷_pFHÁiB,"ä(…É䟢è_”�+ù‹@ü¡qÛ¶m¸pÜ“ŸÞYÑɳ%פ, xß{©Yâáj²jYö8¢Í›7c¾ân ÀÏÿüÏ“ E—ix©G ià»ȰÀ¸D ¾.á-Àá!k¾^{챈/á�ꈃ� lIÁB�œ]€·à¢C~Šä/ é%~ï÷~�¿˜¨Qtaœ©¿ƒ$ Š.OH¬¨”´ÇuÍÑ$è ;عsç�ßû3Ÿù EiDñU)Õ^fâãÑ@ ‚E „ÈÐ�n@†nà D¥‰% 7D ‡„ ¿ ÈAŠEþ|I/È.�S’qC‚¼ášˆIaÈŸ%>ÈR‚UŸlPt~Â5q^�æi,-‘šÒÊpÀ8½Õú¾¿ù›¿É7n26¡ô†Š&o ¯öHQñ!x¼… +€�Ä[Ò–lŒIÍVD`·EvÄá>n ë�õW¶qŽÆ¸öõžÆ79Èë/þ¡@þ Aà/¸è€È_Dâ;Élܸ‹ã{Lãq“ŸIÖ!\ù®…˱)¦mMWò°Läøu×®]‹2_×÷þ¾À7—ÇÇ”ÞZ¥úk½âU‹ ôjX„@„Ö�xÖ-(FW·B€hSÒÚ‡ ÿ�EÄy˜øQ+«NT¤. H]­7**]Õ€+4·Ã€UNÄÂ5*È!!˜ƒ8È_€U?7ÒüÖoýVëb÷j\œdã}AþI~C8&~žlJIMSTê�h¬jí™Â7Þ!?ßþûïßù¢þˆÊwÔ ù¥HQÈŠ�!"G …¶¼€#']ó €�òÿÏ�d´ Îï?äkÅÄ® (Ø�Ú¢±Y‘Ú”à|�I}GðµAýE ïP €k8x0Š ÈŸüùßMz7,XÀ7`° Ð7z#K~˪/âo^}™„LÆê ŠÏ@ŒÜ>ÀcE+~ Ƕªóçϧßù�ßá÷þõ_ÿuþ™A01 ò=mx=« dœ�[,!òƒ�g ”Ær€‡˜Š›DÜ¥Hâc¢Z£(¸*¤ðÚˆ‚kB ¶kl…HÐ\V 1ŸÃï›G(P`à!:¹2@ŠJþ\I/€Ì;[ÿ=%7T>$ÿ ò âògI‰•<\rµ€ççÝ:p#Løtî7زeËâÀVW¬ ¿» H!9GHà�L³P¸¶-ç…TêH~ܼ¶p >&¾9Pû ŽWâÌ�c ¯×�×E\˰k°Ïo;�™�ÃIr í†$èüÇ¡“?ÿU?/âÿçþ§£rì•# O‰üÉo!~–”øÝäê2‡ì–rüjÜ€ÿNõá:54É;Çšô ‹¸„Àâ\"ˆ>#Áñ!ÛouR@ª¦do:? I|¸uœ¢hsÄg D7ÇÝSxC°º€\Èop¬FÌׂB€ô.Q.€üÒ  P$òçB|Iz�K/½´µúOU¨í»m?"e‰ÏDÄÏ’“1†jO5)>³]-˜Ú¶¯ûÊóúZ宊€úÎÞh0Œ(H1° �tþ" š…ÚIÁ`iÐÊÄ/ðùqs£�ñ‘Ùï²â|ÒP|»9c a€D¾.à"$ Û-Úsù3àý,¡@® Á\@ò[ Èäß}Ò üÚ¯ý_¼hLDÑÉàb~I~&½€ >¯à"—ï¬rXÀ7ì¼V;®ÄC€‡TC|go0¤ ØÅ@& !Rî�Àš�ƒ˜+€Ò7Aí—É_î-�¿+ñ±q(º&Á`Q3YØœ6´k°ÍáNÔ(·]@?h ’çŸô/ æ²GÀ°KÐ_Š€\ÉŸ/ñ=H/€ß�5kß(Á’€c\³úÙÉ/-¿\õñõc–ø†Ðx¬éç%›Ë¤U8õ—W°¬TlPCÿž@ö5ð˜‡H7ðò`ÂQù ®:3¨Cü°U N °y(3b\œ8$\À.sWwq—´]Õä¶#QìD @þ Áü]@Ž0ÈRûgé³õßSQzK%[ês“_Z~†}Å7„mH¼©…ài 8î7­®j’Bÿd~ß.RìÐ%/ð’]L³�M ¢ tÐ@ë�R?89¤ø¦Û‡Í`Ñìxq· ¸NÀ. è¸éNk·/à0Ê´ç ËHøÖ·¾õŸæ^² ²±BŠEþ¼ˆ¼ÿþûüÅG•ˆ¢3xô–ù%é ¬Ä—–¤ÐDÌZôFLñÚÄü›S"À}dÜ€SìN0"�iNï­¶ûðÚå¼à”#ði(;]àï®Í¸ÀKIð²v?À�%v€H.|ì]€—€üFò!þ«¾/éÿë¿þ«ƒË.»¬µÒ¦¨üPM6ùX~À ãü7$ñù%Þj‹À-UÞƒ`zâ Sª=×Óþw�nÂ"�p€¬8D ™u�P |�Ôª€T¬~’ø§†”ü¿Š9xDŒ³¸€ìyƒ·f\À�Ø’�giôp2ÐÈ+D €. œPòç@|�]âw÷wùbûn¼)•q¿Xù%ù-–�; ÜÄÏZ’£À¢”[‡Ù¡³ªÜWççÈçË×—B Ý€]d‰PìØÁà°$Z×êúSQ†üK<$½‡™š‘bb’�ËÀpKÆÜû•/ooêÓXÆ-Å O±\@%ÁA €NÐ@ °·äKþˆ/°bÅ Þ¶,´•­w±þ†‚üÖx_¬ú–Õ�Œí úd“WRÓI§1’„Ø(ž/^×44¤ØƒR°%:?òKr2$á%Æ0¢cnLÚk¯½è°Ããwƒ Åç$ú3™çÛßc0"`ïèýPv4(Þœ"®fâgo*UW¬ 4™k¢KP }ÄÃÈdà-²$˜ ¶f€�B®hWzÚ-Ø '(ícÄrwù'5¯» à€üÈ_âø?ì·ß~WcŠÎŽíÖ d©OÆüÒò»V}@’Ýàm`lµç5ᆕ- ê?ÑÄYÀ"àNZùQèH.šáë¼ä—P|ò{_àî»ïn­\G(ªÝ"¾:JQP(NbNÃîÃu€(p!ØÁÈ;%Eƒ�Ø+ \€¨<,]€%x»=è«5jmÐȺð€|]€,tÞPòç@|{íq1�Y/ßQµ®þÒú˸q³­Æo'¿$¾�ðMàíö£ø{ýå^ŠO�)œÒ¸ ãhÆŒLÐÃ?œÆ÷�ÇÄ!ì-hOB`”£³Ú%½²¢$Mh⤉<¾ Bƒ$œijq€Ú÷.Aéd.@†>É@Ù(ÃÙ$°®=�á�pElÖ€ !î/ù%ñ%0x#®Ç�㆕«¿=ñgÏøË˜_’߬úNâ7=Q¾­Ê!A¹Y¦©‡Ne70mÚ4&lZN)Q03à­ÇHÖ_ì5Ÿ‘Š0› ¾2å½h•ÅÊ^­WAv Èϱ~½Y'•(m�æþA,Eƒ�pŽ\@ö¬A™ z «Bd. Ü~“.À?¸Û��]è* ¿C @~ÿU_âõ×_gÅW3Úã½w4€çÉ{L¦°?¤x[™jÝæú1ùÅêÿšÝúï>ùí¤o:ШèÕ<˜R¹·Lûí¿ ²õÓ§OçÕœ§ëNOÕZ•›‰š½MþˆnVz8¸AœF¬jЧëF&T}¤ÑBÑ%èëÌ Ñ®%A¿0@TŒØÃ‰e±Ær� ì~òR|Ð )#ŽüÀ-·ÜÂI²ð˜+”Üðã\ýíÖ?K| ù%ñÍÏ\¤×‹ 7�œŸòøñ´’bE±ñhþ 1À#Ä�†G@ÿÄ~n9fW0WQ²½Lõ=¢?@4½$]€‚ë “�a€h òØ û&¶°,ÐPÒäŸ Ì³'@/ì]È_r#¿?ñÿçþû¡£…»ì°§½{ן-óï^ýeÂOÆüöU_>K|þ÷w„0t‚ÊýuŠ–óDc¶ñp { =VûFOƒ‚8àq\á±!•oÇðQ® téôvî0àQwàn ’ƒBÜÀX¬¶G²M1.@ ¦¹‰ÀH#?pÆgPÜŒ)Zw[ý¥ý·Äþrõ—™íw“¿i ß´‘¼ówó»B42¯�Ï“^[᎕F¡ì>ÈÏbÏ DåV9/º ¡ê£�îMB]vvk�Ìà™ ôDSP4œå@à\�ñíÞ€Ån0bä—�»õÏ�ü’øÀ/þâ/r܃qU•ÇëFdò/Óõ'3ÿbõßé¶þ2æ·“ßFfAx—È}ÁÕ5¶ûè"ÄM€Ä^|yJõP&´ôž.ÀTU\É@¸«îr %`€+Úö?ÐX¤±·p9$?‚0 Pòãï‡q8ï¥ÇQÞ|3²ýÐeÃ�³éǶú¿- I)W} ±�FWHQèk?Wü[æýp0I¥Y�í‡ø pr�Ãó¹åÿÇíäÜwà_ �{d9àÛlÙ)8©� G† �†awÐq €¢“ßN| Ì÷çsýŽ�8eô´oùµ&ÿ챿}õ7 ?;ù;î“‚à†ü]~�î"�^_¡ê¸*M�:•Öá>cæ³Ý\€ÌˆŠ€½$XËŒ³W\MAÞyw?€ts5Tû0‘ý¥ €üãþÈ,_¾œ’JBÁ¬€’ËÚÿlÙGòo§}õ·Çý’üÒ®[ˆï-– ‚€¾*ì?…>P EéÍU|Ö¬8ö tÛ,4¨0@(âl Î<€Ø`ÁÚö‘î:Û…AÈ„²)(WÈõÏ�ü_üâù‚qóÏ…dVÿËì¿´ÿÙäŸ!†µæo`'¿% èŠ>aÿ³nÁ)Xí+c*¨óC>Pc²ý™ÏëpÙŠ@öÚ¼ø‡²5Ø]t÷È!!ÎD œ4«=Ôd· £2òqº `l&�Œòÿû¿ÿËI@|YºsP…:@ñŽ·Úÿ;²ÿŽŽ¿¦}õ—Ùz»•F˜÷L¶”)­qc�>(MäƒFDÂRN’ãÆ9èìÈ‚Ö<€»@î ðß$q¹ÙÄeAÎDåè“! ¿Mò_ýó#¿Ä³Ï>Ë_»�¾ˆÂã"ª–.@—÷» 0@tW˜E¼WÿÂ’ÄÏ?{â‰'øÂ›™ûÑ Õži  í¿GòO:iý󀥤ˆ-¿Pþö÷ü&ãÖ_ê5ŸM¸#a@kõw䀭@ ‘‰@±1(‡J€ÁÉÕ¶È£ÅG ÿÕ?OòKüÕ_ý-^¼„‡ƒsì‘÷èþö_Ôý]«cPÞýrarIÊÝ�ÈõLÙs ²Üø?I°'ßÕÏ<@��@Ó²;ÐÑ$†…æV Ø qŒÆ^lýq½L0‡j@ñ! ˆ«ä~ðƒðã#�<›¿ø½Å%¸‘»mþ‘›~œö_ؽzÁpÀ£G ¹�K¡,Ø]:´”ý¬î0à Wk°ÌØûä±âHB€aªˆcÃp±Æ í�C^õA*�›‚ø…)Ê~€\ ‡Õ?ëïO~I|‰?ÿó?çiAìzb —†ØUg­ÿÛ;ÿdòÏ#Ëo!¿uËð CÞ"¬TëˆîÉ1ï¯e¯<€8M¨×?øà[ °o ¥@»\ªqŠÆÁ1ĉA|À!Å ßûÞ÷ü °«ä—Àsxà\\Ž™yÀæ)nrKÐÿ{×ý%ñ-bàé’³Sþâáú'õ“š¯ÌkÙó éÜýöD`•€¡”‘è;£�å/3ñÑ9Ââ4)[ˆ¢È. ¿‡x¬þÅ'¿ÄøCú³?û3š7oß�qÛ�4v�´·Ñ¥ô×°®Öö׬ïá€Ó¹ À`\ÿ8ƒ&À‘`ñb"�÷^¸+î–`W)Pœ$àJÕjù=Š›}LO²¿¿0¬.@¶_rXý M~? <çþûïçA"AØjJ6—qóÛàm{üßð°þ Iü·Å£GcQrrÊS~!cÇ�¥ð¸P<ß’0b矔•¯R [€AölÖ¸@µZ|{˜ø‡@8C|ÈÏüô ð«¿?ù½ˆ/ñ§ú§4wîÜ–QtLDÕ'š¶ )ñ¿…üŽ|@c“œ�òœ?@ÏØŠÎˆÛÏÂ5ÈD �ß.€½hß gt€Áô¨‹TkÐGß üÁ1(¨ø‹À�@Ç…B °ú„üÀ�~ô#~�ûî»šç ªƒ¥Û+L »x&­«¿€§ ’cR÷Í#Àz¯Oðû~‰@wG ­hßà±)H Ý¥W„TZ©Z3ÿJ ÄÆ°Lä·‹ÀÈr€VÿB�Ä—€˜3gN«‹°/¤èä˜Çrû €Œÿ-‰>‹˜Ÿ¶*�¬J¨Þ¨³¨6«_–ú €¨ Ad/À°7["R'(sŽ¡)é�Äh�ñ…äà ,€[ò·ÿù­þ9�_¯}Ï=÷ðEŽªNíE‚Ð!žÙAH— påâå1ÿä‘ßµ2:ñsK"ÐC^·`irî |dp]LêÌgÿ›Z>¾�ÄòP,ÀN1@í®äwßê°¢r‚p*ØðpÞ FŽùå¢EõŒéaÀ®Àx“C€¡ `€ç,Ó�œ`™ psBÁùŸ_ ReJz &€øYQ¤_òJþYVÿÂ�ÿÇ?þñüÁü�Ù]E¥ÃK¨�_ÀVx@4?¢1}cX’J‚Ý�ù €}[ðî Àí)…—„Tš¡LI76Ïœs òø¸€'‹-…Yýs ¿$>€ {ò©'sR£·Ëÿ¯æ_p$­9ÏÎÀpNHcÇ�åýØœl)¸Hfˆï/þ.  ‰ÀÀmÿ ¾ú»ÉïMüø‡ íÛ··rõˆ�ê®>Ù�üûleÀ¦�üUÚ7®�¿c ¹H¶•åëÈ@áB€èº”2û:µ|&n¶q@�Üù @¾«ÞäÇÿñî»ïælz·Ïá¿çðËR ' ³èêt$ÕŠÆ�ÇçÄÕ3íU€¼“€C€hcŒŒ&³oêÜhm )R>âJ®�œì/Èþç°úû“¯ýÌ3Ïð�¡ÅÃEãÓ¬úb3Ððî�Ä´“ßýúè{ÇÁ 80©%˜372F‚SÒ›pɲáž0Œs@ˆk0ht}Bj¦ÂwÄóû¹ (î„ ?’J�€âÿì¿÷êÿ÷ÿ÷´iÓ&Î*ó8°=ŧÅ8*»ËXp뙀gòú™á?´8˜C>(›P厚ùl~�vu ÈðÎ@#P°6äÓ|K‡³˜Y~¦d‰½€Üëÿù¯þxß|�¿$³±'\RùŽª87{þ“�Ãx"�|-|~@ÿÄ~vq_L•»jNûo\—á &Às"P´=&5Gµr Û‡{Žé„ _€^€Qé !ï¾û.×Ãy¥¨E¤ŽThŒÁ ûS=ÀCO~@þÒA,ìâq1•ï©~�»àÕè Võ;ûÖìx°çж+H;n$‘Í@£àaÿý×�,XÀ7…iäÁ¾øêS ÛéÀî0@V.À5$´1ÌäçÇ×Xø‡Dã¹”™%¿ë�Ð�þx°‡}�‹)¼:ÒÉAÕþqd[öÕ:n„"0bº *ˆÿßÿ}:óÌ3¹u”[H')ŠÖDT¾¯fÍ@oŽçúž <bÐG�W{9a6qRK !U€8ì¿ï¡/{–!Ã}@èu©µ‹;· /j‡c:„ qš� (°Å€ü*}ùïk_ûi�zþ€’+X‘¬G„׽݀Œx¸~”"`#¬ûçÎçˆÖ±¿}õöß/þÜ @¯  ò9ðÒ€JËÚa@ŸÆ‚v’0Ს™—CÀ>,|ö¬níé¦!¿´þîÕ_ÖþÝöß½ØÞ蟔°É&â¨ðã ñYLN`T>Že@‰W_}6o  xÎÃˆŠ€3!hHå?dö†]PjÏö0éy|ÖÞ{A àù ºÕýÝ«¿Üþk²ÿnûïÿ‹`g�@Äÿ.,*e§ �ð#AF¿¿Ï¾ûP0. ͸ܨN úDBÐÞ!è,a ‚áß¶*R×ÛÏsöÚဠ¬«¿°þ"ö­¿–æû/êÿ"þ·w:€>€ Áþw=0Ú ì±ð¥—^j¹€å.€À °„¢:`‚Ý Äq �‰¿=¦è!{Ni À³M±áÇVöó_ý‡lÿÆøßž´!@4paþ0º(¿<€¼ÆÞûìÝr× tÖ\€½,bH°‡ )R¤¸!I/_Ÿ!½µŠIÆ ?n €äš2k‰û…õ—«¿Œý­É?ä÷µÿŽú¿;þw'%6´÷ ” îp @QvŽn†ìر£å–¡/Àê@W( òp»FSˆ�š’ø›+Î)ê�¸ÂLÍå‘ÍV�|xFLÕÇYÛokùuÿÕ?Ûü#í¿½üg¯ÿÛã™t�ÿŠöf¡ s¨èèvà‘:¯�8bâkSQp&E(`Ý2lí" „@ˆ�À`ÿ­úT“¢c"þY­Õh_Úá¦ùq4Ød� À®@Å_]¶l÷Ößgõ—{ÿ‡–ý€rˆÿ×¶÷” óè@�< yàÙgŸmey—Ò qÅ€=p‹€½<肬x€ŸÇå½`V@i%¥ƒ>˜>µæ$:å¬sø†6°`á"ºýî{é¶;î¢3Ï^ËÓ‚£ñ1EÙîkKü‰º¿kõÉ?Ñüã´ÿ@ñ?ʇ/¾[{Š?pt((ÞqvÛ¥ �{,¡€¥MXŠ€L JA�åB!ÐÙþ—{ùœÂr­L3gͦãO=�N9s­þó,¾‰Ð x°ôÜqÏ}ôÔ³ÏÓÓÏí k¯¿‘îRùÞš ¿°þ¶±ßL~ÿÕ_6ÿ¸í¿(ÿ¹ãwâ/éŒÙ? CAGÇ‚?õÔS-°Ä¸¹GÀ]�" �€½:`E–ÐÞÀù8ôãH} Éq'�J‹—.ãÙœžÓh6ͱPü]?üèãôÌó/Ð?Fë.¼ˆú&ôQpL(l¿Ûú˶_çêïNþÉì¿Ûþƒü¾õÿ 4¦ Hüå0¸ˆçŒ ‚Ï‚ã±Ú.Àž”¡à-œdópRìÀïñ{sÚkŸ½hÕ1ÇÑ´iÓø&9âˆ#hÃEÓÕ[¶Ñ†K.£“O9MÏ8ˆo‚C9„î¹ïº_ À-·ßE‹/¦tbŠª�ƒüÂú²îï^ýíÉ?{ößÃþ;àr�ùÎ,þÁ #àh°üÃxüñÇ[.`Q€T„–ª€È8D@cŒi²&íb HŸEåþ:Åcš9s&-[u4ß@ËW¬ ‡{’Þzç=záå×è‘'ž¦[︛.»j3-\¼„o¨9sçÒý=J7Ýv'�·îBêíÓB²*4äÏ”ülÖhd»þdæ_®þþÉ?™ýûºF½sÌ8ÈýI;pôpP|>ŒÊf°•]@6°V"  kH`É ˆ?{ ½Y©·L+V­æÓr÷Ö1ýU[¶ÒãO?KŸþìçé3Ÿÿ"½òú›,7Þvm¸|#~øá|^½u;ÝxëítÙÆ«97R:BòâKò³+²'þ4žö_ýmÉ¿h¨öã.:þÐñgÈ?*Ÿ´ãÁ}ôÑÖ*0GáÆ4" Û„}D K· Å ˜Æ!BœÀï%›SªõÔXpã-Ó«ÿ¶ëo¢Çžz†>ý¹/ÐÏÿâ/Ó¾üUzùµ7è>½âo¹öZ£“„¸Ù–è\Áu7ßFWlÚÊ%Ãø ÿoA~÷[æýUŸÙýÕ_&ÿäð�ݶÿ+5‚ΔàÑãÁíP°<@"€ÏƒòfF—$¸y5ÝJƒ`dK„€Í Ȱpç $2‘\­‰’Æ´êSÇð¼Zç6m¿ŽÒ!À 7ÝÌ®`Ù²åôΧ?KO>»ƒ-ÿù^Êã±Ö¹€í×ßL_±IW ¡x¯˜*�Ö3ä·–ü2㾺$þžteþ½“q—æûŽÆ¸5ÿœ P@H @òy»€÷ÀLU|V»“IA æ#2$�݃ü(Ä ã ¤(HÔÛHo©R¥·BsçÍç›l¹Î\²q3ÝuÿC´|ù þÿáf~ì‰'i‡ÎÜqÏýt¹^ñ! è Ø´í:ZÉhÂÌ@”-ä—q?а–ýD×_&ó/VQús&ÿ\Í?-5ÿ#ÖüGè¡ Â¹Ž|ûÛßÎAFˆ Àk!#ŽñáÑ™qv€¨˜ä@Îà�° 0&+üÜôMŒk+EAb§A/UªS:)¥C¦Nå›yÖìÙtÞ†KèÛo¿þ:ôÐCé}úñç¿ôî~àaNNœ4IW e1X»nMèïçø¸údÃ�_&ýdÉ�Q±Xÿ!¯þbçŸ=ùçaÿ×h¤�­¾Yò{W Ý�ƒÑ¸‚"ðÞ{ïá¢ð^ùä¶ l¬�¦K„ôvwv!à×I®©P07 h\Ä[x«ÔY€º@#ƒº~n8½Õï?ýðÃygç§Ž?‘®Ü²�ÉþÒ«;é‹_ù*}é«_§—^ÛI÷<ð�sþ:¾Á–­XI.»ŠŽ]s2ÅILja`'¿Lú¹­?ƒÉ/ëþþ«¿%ù7û¿®=ò«Ä)s:`TŠë"0KwÌaÐ#þTÃ-À.E€á‚ÚMü­e f��:ÛQãñ1×äáÜè¥øª”jcj´êè£i¼¾y×=gœ{m¿áfzàÑÇ™øŸû—PÔ9€ÛÙú÷ëÿ‚ —Ò9ë/¦éÓ§°â³Û/Èߥ䇿üX]XÇ–_Y÷—«¿½óO$ÿ½ÿ¨ù/è�DÉÿD Ü{r@ @Q€¼D@Îd{ˆíÂÛS h4œ"¢8Ý€ júµâ�)ŸNõ¶ˆ¿`áúÙŸýY:å”Sx3¶í‚Üv ’計oÊE‹ñM‹† uóÏ57ÞB<ò8=÷âË´uû5<7Õj�4\wñ´D»ìPs•Îø‘„N ùä�誄*�y[¯Õß’ü³÷þŸ: æbâH0G °øà_–/_Þ�yn\Op¹�ÞÖ£vñå)©éŠâfÌï7oÞ<úÆ7¾Ñù›7o6ré�Š÷Žyu?æØc‘ ÆM�dòøŽÍM òÃúsÅ7UxxÈ E²Ôg'?P§ôÎjç€ 5V‘Z¡(¹¹ü!ùEâo¨«¿)ýy%ÿÖØçÒéTà+…q¾"ð¿ñ¸8¼"G—ư´È–eÛpw7Py\ÿâ„Ô4Eq£EüÙsfÓW¿úUù9¸?!éM(¹Ö!"œÀŸÓ›4©öKøfš1cs̱úq&Žã“�V®ZýÁº‹.¡µç¯§é:L¨ÖªM�¨|WÍ›ü¸6h¥.õdÆi©Ö±ÜáÚ�Ò{«YëoMü‰º¿cõ�r矴þª³ÏÄ÷_ò^@þP €NY ‡0 €" …àä“On­f‡¢,X"PÿIp„•Gê¯OH¢(®1ñ9ßðå/Ùš�À¹†É˜„Òë* µ¯08ÄÊ·kR/Œ¨2®BcûÆÒaÓ§ÓªÕŸ¢ãŽ_ÃÛ�qÓ£ &™�P°: òÝ5cù³ýýbƒO÷r_tIÜÊ®¯ììªã\ŠªhBÎTmJôÊoIüÙzþ9óï\ýE矆ÝúƒÈþä/tÐ^Äwkà»ßý®Ÿüë¿þ+åçŠ/ò'‰˂gÇãÚEÀTî«Q|nÂeµ¸Ò"þQz§Þ¾ð+ñ >ó™ÏP26¡ôú2Õ;ùüL –ÅK-7®Œ(>8¦ò”2UÆkî™òЬ ðï ~×UŸ…ÍNþNÆ?\±PÇ+ReÅ7)r ¸±Ùô—HP|S*¬¿èù÷_ýí¥¿õìB²í¾†ü#?˜—ßøŠ€].¸à‚NY0EYð)#™ê€Ø<`ÅLï¨PtjÌ7`”rr�ûî?ûÙÏ:‰Ÿ-K&} %7T ¡­0‰F û³,ðÙ*Öá ðrË}²½·k©O’Ï ©4¾DÁy!çpó"ÜÐiFaë\þƒJ^Qrg9kýåÀ�LןÌü‹Õß6÷_XÜø ½]Šßœ» i”€â»€|Eà[ßú_Ô (<&䦞 DÀä éÍ � ¹~F|‘uim:Èl„Å óþŒK°BƒÀþx)‹f¶¦Ÿ!¾eÕ70â&ÈÏB˜©õ'…| F¸>bÀM ò '7=[ñº"5aAìNü‰®?‘ù·¯þ§hÔ:«?H !’ä·×ÿ ÿ_rHæ Bpýõ×›² ]¸á…h‘!¾¶ÌŽ“R�Âs°-+¾7ñ3€>ˆ Hì&»$¼$½ØÅ'‰ÏØ¥åïN~CD0X#Ü‘Ãgê�ø&éh€’oL&æä©ŠnHlÖ¿[Ýßû¯c×fÈ"1ù‹oÿóßW ïòüŸ°z±Ìt2¯ÊN€o~]⊷¤, (ì;vsÁ‚Èê{“^â�wÞ¡xBLé-ÙIvIzI|ƒ†ˆõŪ/È_ä7µþ`YÀ'…ǤzHÐU�Àõ1Ø Dš¸ÓJ¬‘ð3‰?ËêºW3äCu’‘ üHoòù-€€\@1EÀ!_ûÚ×>, ^–p9+º2!5›ÛuÍJÃý?÷s?çMtÞ~ûmŒóF' �Ø. Ògc|AüÎv^±¥È8@’µ~µ@q 0¼$æqã ‡$¿¸ܬ|ýzK¤–( 7F®ÄŸ¨û‹Õÿä�ÖŸãÿ³wºnäP¶=p“,33333333•™™™[Aé=Zaߣ‚â3xó;9²r”£z­¤ã;{Wúw·8æûαÇö~Þþ×kP”{J�Dðé§ŸÒcA«ïÑnë0Ýd¯¾úª=xð`8Üá@g� H€6™Gгj�ÿïþÖ€–ß/ñíÙÛ¯Ôn‚/ÿ¥À ô­þu–ž­5ª¶kÝõÆæ“raâO^õÇ[€ðÓ¯þ  ½ZL@z]@¼âEpøðaj[]Î>çlûý÷ßÛC‡ |×ß¿¿Í.…ZfralOÕžµú |VõYËÏvöü–«Û”Í+¬>C"~//t¸¡�dÝÚeÍw•?¬úÿÒΣíèž�~‚Æ`Œ‰@ý% Ë`Û¶m®ÚïÝ»Ÿã0 ïɾ}ûÜäãÈÜ&­4rU÷þÀójï[}|ªúBË�°%¾êeÕ]Êæ¿@‰àðS0ÿà\u¢µ/kkþ0~âOªþï´ÓòÕPŠðן¸è`.€AOV/�x Äž @_¦íÈüU.¦Å`÷aÐûc»ø~ŸZ~~¬êS·*«ï×6û%w �— ¿,÷! qÂ\uþîO´5ÿ_÷¶þ àÿÏ«¼Ž?N¨  ˆ’@%"�Â� : Up û1�Wyÿÿ"ôÂX¿Ë¿Úíìóûú6ÝJGì"Ì~Ê­.5`û¯Õ¿'¸/nzö9�÷öëï„Ö_ùóýpí1D ᨻ˜’Éž={ð¬;í`!|ú¨êÏ€à”#?,h(«îënô¹¦÷„\w¬úw’çy_þ TÕÄK ¾HAüš[¶nÁê:´Ø³öþÕ^ŸÍðóÃ<�Þ=ýÅÔ÷qš×�5_eF{ øCª?…$�ý°À¿ÍPÀ/ `Lí/€­³H‘ ð<ë6¬sgØ�,jÄá¡= :Ïúþ3û>&úxÕ÷ðc°˜Xº}æ=cÍG\|õ'ø)íb¨ à”€ÿ´WÿÚ _Ü r Dˆ ɬ\³Òª«» ˜¥pÐ7ŠÀ c|>k÷©ê3ø±¥7Wvv~’Yó–»±p‘ ? €Bà�âê�0ø£ÿ!=ð÷À@ý%�´ /[ìÆ¸#‹[€802ð|lïÇøø+åª?²Ôè‘ÿYXuž²æóÌê—:ı²dø\ýkÐþG áþP ^ñ"H[¸þ¼…óÜóíÆâ&‡YŽXáÙÿG€Ïᧃ<³_s«ÎVÿc=?½zœÃ_ÿꟶ°½}øH]$‚eÀ¯9cÎ «®CиáY+Ï Güó|6Ϊ>ƒûùñì_�ÙÀ#Lñð#¡ð×íÑoÿ‡/€öo”ß C•Š€%ô€Lš> Ï×q¨&Až5,«©ÒKÐËà#ýÀ§£¼Ìw™UMeÍ×™U÷;pøÚúW]ýGIûO§ õ€ÖZÀ±ö?>U Äw²R̸)ã°Åà@ËYÍ*<Ï¡'÷|Þî÷Â_ø“|\åWeWw*Ü\•´þ‰UÿÑ'|qc� H£VŒÿêàÀ¡‘açÏñeðm)‚�Œ8øéO󹱪ÀÀ¸�&3ƒoýǪ?ÂàÞ &ho²u‘€,‚te€ë�›8®ó`nƒ&æX8Ü𬽫½ >ÂÁÇ^8ÄÓ|ÐD€=y‘þ4«Òí?žùsüA@â‡ñHL”¡Ï3eÊ·¨œV`‚YHÓg…;ƒ>|ăïáïžá§ß0n !‚«nÊøq|ë?øê_í³ÿêPW Ä‹@N8äá™4i’-.,lþOéÁ%¨EÀC€— —ÁG8øt|·~Qw^ òвú,�›5þøêyÜw-ª?Âáçü§@û7† a Ä‹ ½Œ7νEȼÔÙeWL(m9¯º <‡žU{6Æçí>ÁOGwwðÔOuðl;JáæM®õOiìºÚÿ~ø¢ðÅeˆèb$P½R”ÁŸþé÷¹· k.1nRÐ>¼>ü›o¾ñoÙ¹Zc).àAG ¼ý¿ì�Œc9†í——aZffffff^Í^f™™™„«efff-3¯V|¢úªòJí‹Õî¹è¿ê«ôf¤ÒN}ŸËŽãWfÁ§„¯û:Ä¿£ncyðr.øaÍbâeqøõ[s³¿Fûß—DØñ \�hæI /¼ÀE€§ ¸±|ùå— WõFnàø¡›xv>BŸŸí³­þvR81\d\ü k¾í×_÷ëÏþÆþ¨ €Ž·!@*Ý ûéyíŸþyªúˆ:ŸÆK@ÏÀž™éÓÙ>‚/9¹N¢‰àsÑ3| =G~åÖàÏþ¼ãŸ @àï]4¸-0*p:ú4Ÿ}öYó�÷›zÞ‘ïö¸‘·hèëzJ½ç =üè.?¢*ˆ�· ?ÞúÛZû÷›8Q% /‰1àóÙi§�Bm©Z¨5J<{ßÐÇœÁ—‡sVë~¹w€ØôShý¡C?ögEàP�‚ $z°9÷Üs«ósj)è’z ðœ²Oè塜ò`ÎâÈIæ‚b àGÖýú­ÿÏþ:øúë¯ÿáO@—€u è‰À~øçyóÍ7ƒóèÄB ÏÏî1õ^ ç0ôñ¡œœbNÁí?y ¾>üxë�oüÙŸý9¸x`S˜•.N§Bß’O?ý´zÞÞEvÊ ðÉL¡—œ,9© ~ª¾ô Ð@‚_sãÏÀìß"¾ì¿'.|_@[ÃÀçóàƒVØ·`Àó° ðú2½äÄZó¡œþÐjݘùŒ_~ó­¿ÍÙÀŸþ)Ð’€}HLŸæâ‹/n~ßO."ät�=¾oè‹%'Ôš‡äYû‹šõø9ÿWøÖìÀð/Rô¶€~Ë€D€GôöÃ�)4zP(fyzxN­è㣸9~’ç=.v~`Çß@ëo`öoCÞûö@Û"@À¾Ð (ÈÀzøçÙh£�Bm™Z(Ôð$'e€ÏAÏ9ŽS=�×ñÀ`ÏÚ~Ëo~¼õ·?ûÃàD0Ú $éTè{òØc�Uß X߇Úq-� è)ìø<ô’c8ÿÜÒŽ‹ Xï+Ào¨õ78ûsx‘€ˆ@]ëÀ§Ùyç�«õÿA¾ð<ìœbÑÐ-9вÐó]=�þ€†oýûÿÔ$úóˆÀ÷ì‹ �ØÓ¼üòËÕîÿ²Eðó‹rNÑ;ìø<ô~?çÜžñ²…õ¾6ü†Zý��¿}ðÀ¦À%€w¨DZÇrÀTíÿæ>ÇDÀs  ì)ðyè9 %3)ËQœcàðõ>?¸ég¿õÇf@üñ‡@_Š"d`?/¾øbó .–(‚ŸáÀÐö<ð)ô™ìN)f~ÖÇáo÷㾎nýg¼}pX|�m à"èTðÏ»Ùf›Ukÿ]ä£ó�s2Àg Ïd6eeŠs ×ÿt½ß¡ð[™ýqЀ¥"��/ãBH_ãõ×__½�«ºàçE°ÿ3®%.�Ⱦ”šãBì|ø�u?Þú«Ïþí €6€ ¤"ЗALÿÞÏO?ýÔ,ðrxÜ!t. 2O®sŽáÉ€À¬ù�M?ÍÖ¿?g\œ(% à"d ›¾¡ÆÓh4ª�¿Í|p ˜�肯{.B¼¯Yßüö[¥Ù@/�$ )\öóþûïWoüÒ|:Èa”uãÕ` û†_¿õÇýà Ë @CDÐi2Øm·ÝB­¬¿»®�ƒ e¬ ~ˆçd˜ÛhùíŸY÷›jýÛ˜ýÛ,ö¯¿þš@”€©n—�I)ô¼¦Ûn»-8'ëï¹8ÀpP6ŠiÖ×€ØôëüÖŸƒ €Ã Ã@�cA"\`”AÏ…ïrkv9ª îPÐH&¸àGT…ÇàváÇ[|ã/.uà2°Ÿ±cÇV[ùà7$€Ã)›Ç#ÂH˯?¾é§ßúC˜hÀ²à(/ 2"èÊàöÛo¯Îû/W7�Á3–)”%(raH|ûðë¯ûñÖ_U<°©p Ø�u!ð›ÆïG9¸ nOÎ`”])ÞqÁ2à@Ëo~¼õWßøÃÀ‰ÈKïpà2°-…ñãÇ÷|×ßÍgàŒfeuŠs �}øclÀ´þ*øå—_RàÝ.\öä�ýÜyç�Uë¿TÜdÍxvÁíùÜòëÃmúYoýqÐY€€J@I  ì‡ß,†¢T¿GüÌßtP6£ÈS‚ÁYßüêë~…Ö l‹T%€‹`ÀÊ`âĉ™Ößx¦R–¦È#Äüö[\”Ø.kR¸ûî»s­¿ý4â�òhê>ÞòkÃϱ?0ûãЗ.\f¤Àp``jƒj¹Öß~æRÖ¤8Ç�àðGð-Ão¡õÇ@É JÀ¾ph‰¢ÏÿÎäÉ“ µþ@ÆR†QœcPñ–_~�M?øÕÀIuD 20�{ï½lý��ÜŠâz >ºÞ7¿éÖÀÏ?ÿü×ï¿ÿP à"Б�1!pëÏ;æ[ Ó)ËÆ³ ø ëý.ü�h@S‘@ç‹À¸¦N�j¸õ²¥æ¸�rÍ–ß>üú­?.J*= à"Àe`@ ÷ÝwŸñÖËlŠs I||½À|Ö¯´îf\œDDÈÀp¸õçoÏÙoý�L ŒˆgRøU×û8ü~¼õ× fF€à2°/„Y³f¡­¿ýüƒ² Å9.ú<ø� ¿¥u?.J^öEÐQBxæ™gø Vhý f&eyŠs Y­÷íÁ�¯ûõ@á«§ÿúí·ß @¨ ìK�Çn½õÖShý gJÍqQ3äyðu6ûà7°é§-‘€Žôe`Vgœq†ýÖ_yCŸõüxë� €³7àÀE`NH>üðÃf!K*´þÖ3ž2<^'ŽÏúøz‡ß̦.J¯°/‚ή»îªyµ·ý‚[Æ‚ÖáO¢ ¿pr ¨ˆ—�})Üzë­ÚW{ÛÏôø•a³ð7û¬Ã¯/ÌŒLŠ •�u)ðàW÷û��gú-üg�ø•a…Y€hû ìøÃ 4ûÇü‹îØí‹—�¾ æÍ›Wmüm¢~µ·ýÌ�eSð,üøº__”èK—�¾ð¼õÖ[\•öô A7‡P†8.~†¼ýY¿ ÿ@AXö…á_e•UšÎo¼Û…¿™”õâ‚ü)ø]øÛ f^Q"d`[ §Ÿ~z³Àd°»@š½dL¼çº‹à+´ü†à·+ÜDöD€Ë@_ ^xauþ}hÙ<[)«A_ŸRít3‰2$~O€k/~~° \ú¢à•šãX+«ÏûgÉæ/–)øl|~ÎÁ ’¡a˜‘Y?Óò[„ß–h0[ÀE H Bà<ôÐCq¶_ Å>ƒ²ª ¾ôÁ�s]ø”M¥‡QFÇ僭8ë[€ß¦d`{ÀQ ûR¸ë®»ªbÞ.YïO¦¬è‚ßÖw0“² ¥¤ì"÷¬MqŽ¡kü.üê hˆ‘�Y)¼ûî»ÍbðËûà¦$…?£Yì]° ‡ÊÑàÃä¯Í®ž1èk¾[~ûðë €2#@fe /‡ùóçóW8(.º‘Ì£ìL™“\²}¼7  ðñõ¾>üö@ÉÀ¾DV—ª„¹sçò óf`µ 8©+‚>âá‚/¼BËo~ûà$P.ûB¸é¦›Âª«®Z‰`tYm ¿ Ô�Hñ@Êñ`>¾Þׇ߾x$ˆ��Q)ðë¿ýöÛÃŽ;3«ºê6 ©q ü·Ëᔩ”Í)ƒã ¿Âz‡ß¾h0ÿEi�Ø“Â+¯¼¦M›Ö,:.’rñ²ùÅ¿ƒn¢¬‰úÙ”±”�âÇ ÃÚ³¾ø €“À€ÄgŸ}Î>ûì°Ûn»q‘·œôûà÷!Ìèðaee¢lú­KY–Rðkü.üˆ��‚ ‡Çé…^çŸ~Ø{߽èѣz– µ¥jÁ­æ‚ßÔ¿—Hae¶ˆ¡ahfŸ/¯k:eœìè¯MYŠRJÑyÇ7"1�\kªà+¬÷ø� €3#\"�7ß|3\yå•aâĉaÕÕV õAõž.¡¾D=øe}p«Vߨó[ùj?áP™i'Q&K¦P¦J¦ œœ”™’Y.ge®üñ,ùç¦Ég²ü÷ÇËFæ^”í( è«P–‘¶¾ ¸jGŸ�gèd¦oowŸõ­Ào_”Àùᇢ ˆ—AçK�_÷§Ÿ~žxâ‰pã�7†SN9%:þаñæ‡%–^‚ ²9»Ö‡RA§Œ¬‡A£¨ØGÓ�¡,FYœBò(—¤"_ª¬vÝ—”zi�wYÊròÇKRÆPFÊ¡�A”ÅI|u´¹T4¯8/• ƒÇua—(ƒ´üà·&º,p¬‰@d ’�@6ü¼ÿþûÍï!ðG�×^{m¸üòËÃE]Î9çœpÚi§…O<1}ôÑ¡Ñhð Eÿnï [»Â8{ï@µÒ6@Ua¦ ÊƒÐ( làaj 4U€¢ f ºv•¬YÍ–f]êjÛifM¢j°žNtû_öq7=7ùgÇq{>~òž\<_òûŸïž{s_ÏöŸXÄ¡!™Œì"¶å—zÄ'Fþ,žïS€F&~…�¹ ½Sæ8,ˆä„øV}bäφüDHcÍ0‚Àið�èÓ+åDz^ü0ò{lPa@„ï�²HŸñ³/?hdúàƒ€ƒ l!==æ‹øô¸Ï¯ú‚M|‘?» ›=\ ɹ ð? t2%º5é ñêï[ÜKsí8_ƒ€ÇBóh}Sé}Ÿ_õ³/¿@;U ‰iò Jä烀"OôI9�ÞµøA~üí$mÔåšïîîî¾.>LðáQŒôÀ&=!>1î#–äpÿÇ~ª@¿‘殯¯Šì|ø™�@Ò»?¬úårùP ÙlÞiïõÌx- ž››‹Dr?‚€ÿ%§P"¼éý_äÏõz=’ÀŸÓÞëäôBãÞ“[?ñÁõ¢(ºÅåÀø ð, Ò;EHï‰øA~Ëà-Æþž@¥Rihïÿ’3êÛ•¯¬¬Å ˆäîà „/{"Š�Þ•øaÕ'ÀÃgj"Ìæææ‘öþ·9³ÐÈ�õFïííIðAÀ†A>%R»•ž?ÈoO¥þ^Äæçç/µc>Ë%Ô+4´% Ÿ˜˜¸•S6| �,ˆN xéƒø>2>>Þ9;;»Óåo4-ôG?îý\Rá å§ 1KKK?™!à~*à�À{Á /==æ�^ü ·V«Õuù±ðˆûôÕÿ¼É…†nü×l™îâó S|÷S½oÊœ—Þ¹øaÕ×X]]­ÊʯS*•Ž�cK9K½‰úÊ|8Äòòò2 A@„AxÅKï¿øÏAþ±±±N¼_§K/àá³×˜îzÚñà`­¨ÏÍþãìììåÚÚZeggç×OÎÏÏÛ “~W0’‘ƒ�É*÷_Žß‹Åbg …“LOO÷ejjª/“““‰äóùD0æZÁ%°¬ÒŽoï�ïð+—ËßÁ¿H¿Ôgž÷ÏÌÌ´ŒÀø¤/¤êG¿ÌÇEõÅL|Ûê��IV«¡@"f…¡{€§)s*@�P XAŸ,&iÐxžÈ9ÿÖÖÖ�²òk�—` ’«Ÿ€3€%Ü„ B&$·�ô£—ž?ÈOpzzz³°°p¥I/\ƒ< ê ÿ.N ^ãõkL?ãµ T ¤ï d·á­àË;0�à¢ZqñïHÛÜü'd|H9�t ð…NEEÏløýáÿ¨V«ÍíííãÅÅÅ+¸¦K/TAA9T¨—ÄFžuCOÛØ#6÷ÂÉß`¼,*Àè¥'Ä—õøAr… ` ï^ú >ItÁ¯à| >oký Ô¸èÌk@pIEND®B`‚‰PNG  IHDR€€Ã>aË pHYsÄÄ•+"WIDATxÚä��ǵ÷gæÂòjE+Æ(rÀÌ'ŠÃøø½ÀWþ‚3³†z.‡™c3KŽùûôbÙ!3I¬V˦ÏsÝš©{ªkrk¼½º¡“ꚆéžñüÏùŸÏ\mdñâÅüƒ›’U4«úíâõâ}áÇv+p%ð¯äòÑ�~”pÛÑ|pÎaÌ/<ÏŸã�Ù9A.8þ§?ý©r饗®¼ç¸FU8x9Ædpp�|c<Š¢a C}^m,ÀæÀµ×^[|^ñ¾…oç�}S—\rɯýë8‚ÔJ9@l‘?íiO»ò™Ï|fcãÆ�£•Je™ªŠ)Ø…^ç´ÓN[pÚ‚i?‡îm:Ðõë×ï}ØÃv÷¿ýÛ¿Užþô§?ê»ö)OyÊ’;î¸ãOÀ–<¸bhhèˆo|ã»6mÚtZG€:÷wð§8òÈ#<ÿÛã<@Ïi‡k‚3Î8ã7oxÃ899yÛ 'œpçÜ9À+dxxcúƒüà²{<çÔN`uî \DºùÙyGuTÀ8g��à�o|ãi_ýêWw¼ímo; ˆåžˆ'µ©g<ã×¾éMo:%øn²@¸S8LÊ?È Çî`ûöíW®X±âþ[·ní¢ˆÔ¢(êÿ�ÿøG¾xëÜ׹ߎe¥0(÷v�Ž÷4ŸºßWäh ¼^Q;ï¼óê"2°eË–;œs—D[·nݪÎÊ�B±8èKç5ŠŸ¿°à€îT`y*~wÇEö¡”Ëå��.Ì…Æ< \ëð‚Íó8·“Ý|óÍ£÷0@XÄqüöt¢º8ýs/A/EÖÏïë>ø¡sæ‘,Æ” €Zø¿*("œýÁ³9ÿò ˆ‰‰%""¢$%"‰(Qjµc)q qi (Hú?[MûÚZ©UJ¥R&¼ÿˆ13Vü�SÔJ€îúvPD‚•þ¥¿½”}=@4�SœE­¶& ‰Â ‚6j ³ŠÎ9˜S´–öÕ€:­:‡nƒR\bdh¤#ø~_—Á/ì¥Ì«‹ƒÿ×¹ô×9”L ý%@…HP@”HR‡HûUcPši•ä÷—$è„üµƒ_È " Sþ‚á"�yíj�QY�(-i‘H 4-KÚŸŽÅ’!k7@– …çúœcð9óÙæk€ðú= øüz£åDA²i¨¢š Š=OiDÔ�6ª * ùþ�‘ï÷b€€¨/Ð×åí`’4‘@Í¢?�|¤Í 6ò5Êî $­“ŽÑ)§Çâûúð-_ç± 6ˆ¬OáÛÁ…Ú&‰ƒXR`Óñ´�¨uÏâv¿M$�$t?ut|cQ>h�Û ÿ–0œ ü5]3!-)ˆboµ +HÖßîÓ üL?4Èà¯=ò;bå;@@Ô²@ ßùÎw222ÂÆMyÒ??‰ï~÷»…œ¦ÑhàÔ!bÅ ¶dìà9‚eI� NÏIÊ� û‘o­óÜñ XØ�D¦Üpà |þ럧÷©½4V7¸ôªKyáë_ÈãŸøxn¼ñÆŽóÇÇÇÑ8£ùlÜR½@”ç "�žŸÍUI� ) ѽ[UqÎG·?Æ FäÚa‚—¼ì%Ô�i §—Ð3czÿ½�™ò —Ý}Ûžº�·½ãmÌÍÍ‘gcccP"ÓD¸€u²èÚ ñ�QH@(ÎI’015ÁØ¡1Æ�3ט+~xßüR@Îäbí=`Ç¿ýíosÝÝס§g{p…bz^ÑOï†>öäÜŸËñ:žŸýìgøëÞóƒ´¤HD¦æÛÀ¦ )Öˆ´uÌæ à;Ò øÍf“CS‡8˜¤~l}²¢‹”ÙhU ? -Ò]Ùä9ÅÌÌ ¯}ãki<¢IÔa£Súù÷}ÿÞOTޏ³÷Nžõšgñ¯ÿñ¯ìÞ½€ë¯¿žO|âhl Ê®¡mp=G U¼mŸç4Áth][‘�B ø±‰1Æ£~RþKÐ〠K7☭Ï.8ø)À†ƒJÿg½û,&WNWB£ CiƒDKT_ÔGßñÌôÎð“[©=•O~ò“¼ç=ïi‰@Ê –úÏLŸ@Ö§’�ï;èœÂLON³wï^ûßÓºæ�‰ŒÅc4Ú$zvŒœA•ì¶Ñj0W™CU»åú¬(~@J(ÒÿÇ?þ‘¯^ôU’'*ƒ@PVÚ”]¢G–è}á ÕÕ=\~�w~ì�|ç;߀8l„ƒÍùVåO¾�+P™ɨ~ÿø~”�lKˆÏˆ‰Ž�¡’]Æì0� ºB™®M€6nÛQ§‰)a^zàÌ—œIýøÑŠØ‚ŸF­¡bã ñPDüŒ }Odnåñ†œ¦âMP첺Y[�Œ!Òyx׋¦€½P*•¨V«ìßǾxÍÇ$Äϯ´X‹ŠÝE¤%s4@�W˜€zݦ‘Ð-^¡ù�Ý×^x!8øt›€xࣖ R$A4]/ÞR¢çùô>¼�E+¡Ó6س"¨xô€´…"Æ "ÈÀÓºC¦Ww8ûKûi>.¡ü¢ ¥ËH¹�nD´]$j�1 2(è2eª6tç9á ,%¦ÿÙÙYÞø¶7ÒxT‚ôFf;‚b·kÙ~=ëj�•ÙV¢¹Í‘ü¶‰|=AçœqëÆ;2 i×Û×·ßQÿÄ,nÌ­ˆˆþ)¦òŠJ§T�Š™“óf1«cþûõ…1h.j¶´CH 06üŒ?ôõðûÞÿ>&WO!GÇ)øj Mßê‹8üPTLeM…ÑF©|$ÆÝ”€€ïd×B€¶ØËê:£Ô¾4Cý=³è JtbLåU}”T…rvÿb+/Õ˜u³pY,è"ËáàÅÈöG@8øÎpÛm·ñù >�{¢0m0à#ÖÌ“·LP’gÃ!=ÄšÒú>U…ï$hB. jR‚ N©ÿt–ä=u–ܰ˜þÞ~¢Ç”èù?}HX€5¢�>,È6 d̸§°’Ñ„Z­,ô :Bç÷Áz`?"}é«^ÊÜ udYý€á¨×‡�`ɹŸu13Ï­±§±‡µËײøŠ¢sn9÷¦(:õ«çh¾·ÎÐÏY^YÎT4Eí_ëTŸÚ ±0ý]‚M#iÞG'û\AFú`¦9°ð¹¾€EáðÇŠ§€;vpÕ­WÁÄ L+ú2áÖÎõÞ1A°XÑÚ˜Ùç×¹%º…%K—°ÙmbàÜ>¸°Ir m(õÿ©1wîÍ·Î2p~«tìYº}}Lùø¬&@, ù´¯�—0,°’U õz}‘^/ù�ÝJ Î9^ôêQt“¨Zj�ysÍÆ<ðÛÀg]šì£�—à ?¹‘Å;GX;¼†ä¶„‰ÏM0ÕœbjlŠêl‰¾ž!zûz™˜™`7»Iž T܇f[JTRAjS ­>Di�+|MYÌô)вZК2Í4*öãQǺoó™'"VuÁôÀ'>õ ö ï!ºìE´Bd±¶ùð…!Þó–œ��ÙÿœƒÜPº±õA¦Ú¨Ò?ÛÏhï(ƒƒÌ$3Ü9p'SÏž¥ôÖ*ëë”ö6"1C¾�Z­‘sS™é± {Á­pÔ›õyEsˆEóøÝ^°˜˜˜àŸúÉMÞÌQõêÓ&’¾€zTaX!Z“¼L¸ýQw¶WUöMîc4_«T_×OåÈ*)þåE”öhõi>¯�Gr} E™Ž§ <÷Àz¸×¯zë˜>zšhQœø c¶XžàóÁPÏi ìdç@Û¡ä¤SS ´Þöœ9@¼ªLÛ¬Óf!nöøÙxVÈ^ž#«©‡0¦Ç¤Z`yBÃ5Šä‚1ET\ý/Ü.azzšèæO<êôs? àGµõÓ€1ÓV“²E@ûÒ{êñù;Ïö) bî9†Õ¬2õÏ¡m= ›ê0Õ3H÷) ÃÅ”¾ô™/ñð•§ò±\Ù?r|šµÑ¯Ð0í ´`ÇÏ[ýù Üò]¡¼½Ì¢¡Eôôôäý ¬>¶ˆÏ}îs¹ì—¿á~ûŽ >GÑ=‰�T,º•ü.Í‘… hÈJ¾Cˆz·¤X0ýt!pß?öƒüPˆ3<5ÌÈà¥Ré°=û …[ÇØ¸q#Û±�·=ûmT?V†_$–‡-w4Í;*ø” UsO~ÅÒ¼ ˆÙ…¨Ònø÷å‰?¯OÇ~ ñ·c†Æ†X¶hÕju`†?û¨H>ï¶P|É‹_Âe?ºŒ-×ßùT7å EºZŠÏä7 8ç�žœ• ÒùÞ‘ ¸Ç6^M'ý‘CÎ÷ ¶€ïíí 3ÀI¢�¨µ¶Ð)aÆ ÷¤„Ëxý_Oõ#ìJèdb!ÌÁësàÔA5²�Ü \ÏŠŸ«³Jò³¾¤ôßÒÏèÈ(ýˆH×#Þ·(è Ö(âQñ²½Œ-+·�üªÑù!sïL�¢ªÐWWϳ„"¦u%ÙÞÀ}:¡ïº^FG6¢»£uÅ1¢yL ¿áà;çøð¹fÃ#6rÝ‘¿#>³§#ÚbŠÝ™iÎéj@z|ýæg_æ3÷»É'”SfEß /ZLÇ�¿ðŽ6š Ø"^|ÉÅl=y+gýò,fŸWCNŠ34Í+à|_ÈÆ5Ómäìé€Ðr€¾¨SÜg‹y¦›ÉM LAc®A­Vë°ó˜…/´`ó[?9î”ãxΞËÞƒ.!=&G‹E9'jÅ´;õ«fJÞìr4€æ�¬…¶ ñ)ôAŠÞGãÀ�¨*!v8œ!Z°~½òûßÿžG?öÑ<íùO㦓nAÏŒ‰VÇXå­�¶Ü¾2÷ÞÖú¦JûÀ1ˆB>•Ø´¯ êûBÎy-‰(=¸Š< B�VfGfÙ}÷næææº\�qˆÞËŠÛ¾}ûxþ žÏÃÿ0®¾†æ+99†HÍyÒ& xh)t6cAPJ–øŽ:þ(.øÓ…̽¤OŒÁ)ƒÅEüo>tºÏt>€¶*±™¯’¿�ÏaÍú‘vŸà;- È!~T‰h4­sÌ®™åîƒwçjƒn;CÔ­ Ùrú“Nçý¼Ÿ™gÎâž!D‹SlAP5èðÔÖÕ¦k%?–iƒ� €ªâÄ!%ÍÁØ€k¯m;T=T�¹Ô8fr|„œ�@²!a,c|rU {ÆÑe›ššbçøNg8dS ª¨ªÏ£¨O¿ê=X﹋ÇÔ’¿OQĵ@cAré^QÕ¬nQ7皺iúhûd±À£Y!h¯2»b¶õ³´z½NŽýý9À²eË8móièÍÀìÙ<İ€À‚¯о CmŸÕràpHÔæ4Gc¨-‚b·†~´[ÿ ÿˆ€>xB2’p°|�ñiïpîÙçRùU uÞƒQÓÐ<Hs·J-ø’©ò´äänÉÀD!ÔÊxRVÊ@Î!�ç´žùzÒÏ] ÛŽuJm¨ÆXs Uýûv€ ë7pÂêÐ] h¦¦@€úQç£¨Æ ÔÒ{{®Ð.ê§0iFòw–¿üË®›ï$Š¢ ¦`�÷2-$ã ι¿oøÐ;?De{õ÷9SU/·¦N ¸ÎDÛSŤ_<�]ËÇ*£•6ÚÎæ£ÔÛ6ڵ층0 }½}Äqü×ïª4çxG-?½Êýyp6* 09ojÄ™�ƒêwù¾»eWbîËÓ${“ìþëBÙD³¨ªOÿùù?WbÚžÉ.!’ˆþþ~û¼ºãιÃv‡ñ³ß~6ÕË*h]QÿaûêZ%G3øzm—ÌÜž„þWÙrëV†«Ã¬^ÁÉ�S9w�æç5 +Vü™Hm£›Í�œHÔå8…µ½Àu`ÿ?»˜Q·ÀγSO=•Í#›‘6 mz “Ò·÷@Í9– 2:O#ø³ƒÜíÑh’p`ÿþÖœÜzßûòÒ3_ÅŠkVÒ¼¥açŠ÷£ßìN\š^|¶ð4€zíÌH@~#TJªÕjW@·u l;nëo}Ó[©\]ÆM9Põs) àl¤›t€¯®M1€Ä×)K+KÙ»çN¶n=‚gŸñyÔ£Oç¿ø3SÓ<èä‡Q¾$õ„ŸÛ�þœ*ÇPã�þxfr½ÀnêZ ¶õ(ü"aó÷¸Ç±²o%ñ/Út‹3Nà@‘'ÍØ O\yV¾¶D¥RetÅ*õØÇpâ‰'râɧ²vÝz¾ý­KXºl”�ÙO” j£8ë³Å)êlÚPp&=8ß)hÛ4p5­¼o…_7Sq²�ªÎ;òmýýï{?å�%ܸˢÎF"8m3�šœoAñ�Á´ãcc �Œpã 7òž³ÞÅÐàGs,õZ�z£Mp³Î^œ½\<ñçÒBæÈè_A.¢º~öù„ƒ¾ð) ìÜúé§ŸÎ1[�¡ôSA�¯ÔFêÉ|µã»š¸¯Ô[}~qK’$aÏ�w‚�{üã¢Z®R©V?4Á\4‡ôDv]Pñ^ ·Á–¼èÏ£{õ˜�ÛþÔ¢~Dd�(=@¨jPd‡:Ò‡>ø!â]1z·3‘gA·¹T²qH@w&Äç([~½™þ?öã&àPdBiQ‰éÉCì¼æ†-aßÞ}|ÿ»ßd݆Íüvç5Lo™üëµ@&¹®ŽNg^hÎñ¢ß²„fuç‰Èz+ú[¢¯§§gÞA;Mô—Œ|Û~àÈ“ûdJ?�²<ëS¾¥a´ îê&ñÃæ¹à½çsů® ·Ò‹ÖÔw¢E1w=x7•á*·Þrç}ý+|þ³ŸaíÚõÜzëMܪ7?¡b�§hš>êß©Sÿà�Ëê�€(h ܼè—Ì!P°÷ €\)0ÃÃÃáà²CäM ¸@¸œõ®³(ßXAoMl¶b«®^Þ¤|ŽpŸË7ñ�÷~�«v\ÅÃö0J•àLÉÒÆ1¿û×?²wéÝLÅS¸!Ç•·^Æõ«w‘ þë:µ}Î~ˆÂ{ñ“:@Ÿ ‘ø×kýÛ¾5Õ5¼ý “_œ„S€H[¬:`d»´¨ÿžó=°»_·SPåÛ¶5iýÍ€³ÞqVGðó˜ *E @’E¾-’RµÚˆÏ„œ-.oXâöu}GaÕÀ**;*èÅݯà€D‘Ë&3êïvÄwÆ62�nS¾d!�mɳH"Höó¿fà¦uĪw|¶ U¨=‚Äâk%['ŽãVZX:µ”è›\Ü ü®Mýá[é°ºŸîKXë>åçöùýÅY*/I#×’ÍLÔŠ}çÐÞç+hM!VD £diaeu%˜`–YzzZ} vø;œR ׋Œ�ûiQûþÞ`Ÿ €<|T�:�¤ì…œ@DêbP;À!kØÐ…¼oÆ;P}i¢Ðô·~&·'æÃ‘ÍóN‘´nÁÇ)4jýYÀé JP]�óýb÷ó~ç I4¨KKâž�ž¯màíx¶VCÑÒÜü±€ñ`€çÁóˆöÐ}CM\’ï…�XÐ[ãøŽaê@¨+±d"n~N�‡±Fç]@7·z¦¯sä1Žk:4!Üпï@'à5ž&!"êt�±¿ºþ <úæ� |+k™ê�ËD?½É¡sš ‰ÜæûÄŸ–¬?êÀ>ˆ#à ìÀaL"0<ïS¨o¡Dàw/ù.½÷"žsÄsùÖ"*ç•q³.Û‚ì;šÆØïHv9’_5‰EôŒg[¹Î@Ó°`ƒ�÷Ÿ¯/Ãó~ñpØDàÈÈHë{Á»Ï~7×ﺞWœ@é×Q´M�#I@çÀ}Ù!ß�¡kY9°’Ñe£Á·ÇâLÐýÑñMàáÙêÏûÁæ­W.—9ÿçÓG?:í Ø^I²�‚К{È!5aõÊÕ,YÜZ§3èALÐuiÛQ—·zóŠü|£Ð¹Õj•Í«7£“€Shfto@w V Þª­O¾qœŸótmûh-êæV¯Xä‡;†?gÑÐ"˜ÑlZt›î‚�Þ�Î ‡3Á_,ú‹k€À­P< „ ÁŽóoÜw#:„ÛÔû ˜$Iøö¸ðz!L@vúEPå‡çý!ØñQí�Þ‹THéû¢ÈÛ¤}‹•Z£~(„;AÇ>ëÅ¢½ y?ÔüõÞóÞ÷P®y; à¦d}Ë”éÙél�®0ÁaˆóÒ ý¶/<ò˜à–[náü ϧ¾¾�65?XQ˜õ-…æP“™™™u‚ÂçtÁ1| °ð”ž‚™àÍo}3õ#ê0¢�´‹¸ù„ ÄàNvœ<ˆªvß ºä�4@T€Ê/0çÎ�üú~MíÈšõ¨óϳUàÖ9&&'ükü]9A„o�óþ‚«þN"_þ†—3uÌ”™Ÿ èIÊTmŠf³YÀî8ÁùìŽÕ:†W×Ã86xý=×ÑÑS ü�/À¥¼[¸É¼/HëÖ­cÆ÷3ôž>òFm -8QGÆ3Ÿ/‰¢ Å@ÙW¶!¨Çá�>ú(ÉZI(O^ñúxÄí8®ë†]"6€¼—}¯„ÒÒRn¸ù>€µÀ#¿”ª�}æ�A#�¦e_ùp„ lò6#v"QòO(KáÄœ¼^îEž”ã%Çñ*x¨† 5P¡£@^‰R6×ðf�DƒI7iÔ$øÏ2?üó5�7^{ƒ–gZRnY9ܺ®´ø#§Ô€k»«ððçʱ lõ‡6×O�ûݬ︫Û]Ôü½&çV¤`o$ÉVŸoa­°ô¡éWìõf• ´ÚÝX½zu>ûø3–ÍYÆ÷~@Û�m©ös5Ê/*�½Ï†¹5ˆ»ÀšcaͲ(ÜXH…‚ ¤É¹„Ia"‘ M¶Î]‚Ön>� ÖÐÍ–uGQ-z+|ÉÒ%üôÇO,_¹œ£%G‰ÅQ•ÉÊIÜê.Z(¼¸[\–ë. €œôe,§¬×¯±(ˆPè–uü. v`†´ö&…™^©•Ü‚Cø+dëþÂÇ ×rÉ‘={ö°{ÏnÖl\Ö[(=UŠÞ•›T)qËdçÎ�—z· –kqÉɳ°=˲´Â/ü;»âÃ7‚ÜP¨”º A/¿,�ù(:w?N7ŠÐÒ­[7®»öº¬Ÿ«°üKz³ƒ4Ì2cF›E5„àÞ/÷|é:G‚©p¦�Àˆ|àyÞû^Š´r¤y_àù>Æa`-½�nÈ—ãe­Äãñù.ûú#ë$x﬿I~=ø W4oÞühÖ:À¾}ûöKª}’â�€ÐÛÍ1 t#È%C† 9œÞ¯Rœ¾Ø¢“'O¶ƒ{¿Üó‘ þ¼«4-Á "Ë{˜àŽ;î(˜?~-`ƒÍ¾™2eJÿÔ°h¡©²¯)‡{A$Ð4˜â¡‡ZРAƒ¾@|åʕ̀u6xW)µþÖ[oí´cÇŽE&ʾá{²ü=ügìàû˜$0ï>øà¢7ß|³3À´iÓVŸ={¶xĺÌFë,Ëêt÷Ýw/K‰jÚ´iýT«µzþ[è� žcr(¨‘öï¦*ïê-§Y³f‡|0ö 5jÔààÁƒkSk,vQJ-\Î4_Y–õ/ÿ`_\ÿ‰ˆ‡ÿB@>ÿ6B2ÿœ ÿš ÿ— ÿ • ÿ ‘ ÿ �ÿ ‰ÿ…ÿ€ÿ{ÿuÿoÿjÿ/ÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿŸŸŸÀEEEÖ@¢¢¢Àðððÿðððÿñññÿòòòÿóóóÿóóóÿôôôÿõõõÿöööÿöööÿ÷÷÷ÿøøøÿøøøÿùùùÿˆšˆÿ ~ ÿ ˜ ÿ› ÿž ÿ  ÿ¡ ÿ¢ ÿ£ ÿ£ ÿ¤ ÿ¤ ÿ¥ ÿ4E2ÿ[ZXÿ|zÿQPNÿ9G6ÿž ÿœ ÿ™ ÿ — ÿ ” ÿ �ÿ ‹ÿ ‡ÿƒÿ}ÿwÿrÿkÿdÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿŸŸŸÀEEEÖ@¢¢¢Àðððÿðððÿñññÿòòòÿóóóÿôôôÿôôôÿõõõÿöööÿ÷÷÷ÿ÷÷÷ÿøøøÿùùùÿøøøÿ!^!ÿ— ÿš ÿ� ÿ  ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¥ ÿ¦ ÿ¦ ÿ¦ ÿxÿ472ÿÿNPLÿ{ÿ  ÿž ÿ› ÿ ˜ ÿ • ÿ ’ ÿ �ÿ ‰ÿ„ÿÿzÿtÿmÿjÿ<ÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿŸŸŸÀEEEÖ@¢¢¢Àðððÿñññÿñññÿòòòÿóóóÿôôôÿôôôÿõõõÿöööÿ÷÷÷ÿøøøÿøøøÿùùùÿ|”|ÿ … ÿ™ ÿœ ÿŸ ÿ¡ ÿ¢ ÿ¤ ÿ¥ ÿ¦ ÿ¦ ÿ§ ÿ¦ÿ§ ÿ¦ ÿˆÿ$ÿ � ÿ£ ÿ¡ ÿŸ ÿœ ÿš ÿ — ÿ ” ÿ �ÿ ‹ÿ †ÿ�ÿ|ÿuÿoÿjÿiÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿŸŸŸÀEEEÖ@¢¢¢Àðððÿñññÿñññÿòòòÿóóóÿôôôÿõõõÿõõõÿöööÿ÷÷÷ÿøøøÿøøøÿöööÿbÿ— ÿ› ÿ� ÿ  ÿ¢ ÿ¤ ÿ¥ ÿ¦ÿ¦ÿ§ ÿ§ÿ¨ÿ§ÿ§ ÿ¢ ÿ&ÿ  ÿ¤ ÿ¢ ÿ¡ ÿž ÿ› ÿ™ ÿ • ÿ ‘ ÿ Œÿ ‡ÿ‚ÿ|ÿvÿpÿjÿ`ÿÿ  ÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿŸŸŸÀEEEÖ@¢¢¢Àðððÿñññÿñññÿòòòÿóóóÿôôôÿõõõÿõõõÿöööÿ÷÷÷ÿøøøÿøøøÿn‹nÿ ‹ ÿ™ ÿœ ÿž ÿ¡ ÿ¤ ÿ¥ ÿ¦ÿ§ÿ§ÿ¨ÿ¨ÿ¨ ÿ¨ÿ¨ÿ¤ÿ&ÿ¡ ÿ¥ ÿ£ ÿ¢ ÿŸ ÿœ ÿ™ ÿ – ÿ ’ ÿ Žÿ ‰ÿ„ÿ~ÿxÿqÿFÿÿ  ÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿŸŸŸÀEEEÖ@¢¢¢Àðððÿñññÿñññÿòòòÿóóóÿôôôÿôôôÿõõõÿöööÿ÷÷÷ÿøøøÿøøøÿÍÑÍÿ3_2ÿ{ ÿ� ÿ  ÿ¢ ÿ¤ ÿ¥ ÿ§ ÿ§ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¦ÿ&ÿŸ ÿ¥ ÿ¤ ÿ¢ ÿ  ÿ� ÿš ÿ — ÿ ’ ÿ Žÿ ‰ÿ„ÿÿjÿ5ÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿŸŸŸÀEEEÖ@¢¢¢Àðððÿðððÿñññÿòòòÿóóóÿôôôÿôôôÿõõõÿöööÿ÷÷÷ÿ÷÷÷ÿøøøÿùùùÿúúúÿˆ•ˆÿ!S!ÿ“ ÿ£ ÿ¤ ÿ¦ÿ§ ÿ§ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ§ÿ&ÿœ ÿ¦ÿ¤ ÿ£ ÿ¡ ÿž ÿ› ÿ˜ ÿ ” ÿ �ÿ Šÿ„ÿWÿ"ÿ  ÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿŸŸŸÀEEEÖ@¢¢¢Àðððÿðððÿñññÿòòòÿóóóÿóóóÿôôôÿõõõÿöööÿöööÿ÷÷÷ÿøøøÿùùùÿùùùÿúúúÿëëëÿ^u^ÿiÿ£ ÿ¦ ÿ§ÿ¨ÿ¨ÿ¨ÿ§ÿ§ÿ§ÿ¨ÿ¨ÿ&ÿ˜ ÿ¦ ÿ¥ ÿ£ ÿ¡ ÿž ÿ› ÿ— ÿ ” ÿ �ÿ ‹ÿ=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿŸŸŸÀEEEÖ@¢¢¢Àïïïÿðððÿñññÿòòòÿòòòÿóóóÿôôôÿõõõÿõõõÿöööÿ÷÷÷ÿ÷÷÷ÿøøøÿùùùÿùùùÿúúúÿúúúÿÜÞÜÿÿgedÿXWUÿbÿ� ÿ™ ÿ • ÿ ‘ ÿ Œÿ…ÿÿwÿoÿgÿÿÿÿÿÿÿÿ ÿ ÿÿ,,,Þ€€€Åpêêêäðððÿñññÿòòòÿôôôÿõõõÿöööÿ÷÷÷ÿøøøÿùùùÿÐÖÐÿsÿš ÿž ÿ¡ ÿ£ ÿ¥ ÿ¥ ÿ¦ÿ¦ ÿ¦ ÿ!rÿ,3+ÿ(V%ÿ¢ ÿŸ ÿœ ÿ˜ ÿ “ ÿ Žÿ ˆÿ�ÿzÿqÿjÿCÿÿÿÿÿÿÿ ÿ ÿÿ,,,Þ€€€Åpêêêäðððÿòòòÿóóóÿôôôÿõõõÿöööÿ÷÷÷ÿøøøÿùùùÿ@x?ÿ˜ ÿœ ÿŸ ÿ¢ ÿ¤ ÿ¦ ÿ§ ÿ§ ÿ§ÿ§ÿ§ÿ9ÿ¢ ÿ£ ÿ  ÿž ÿ™ ÿ • ÿ �ÿ Šÿƒÿ|ÿtÿjÿYÿÿÿÿÿÿÿ ÿ ÿÿ,,,Þ€€€Åpêêêäðððÿòòòÿóóóÿôôôÿõõõÿöööÿ÷÷÷ÿøøøÿãåãÿgÿš ÿž ÿ¡ ÿ£ ÿ¥ ÿ§ÿ§ÿ¨ÿ¨ÿ¨ ÿ§ ÿ ; ÿ¢ ÿ¤ ÿ¢ ÿž ÿ› ÿ – ÿ ‘ ÿ Œÿ„ÿ}ÿsÿAÿ ÿÿÿÿÿÿÿ ÿ ÿÿ,,,Þ€€€Åpêêêäðððÿñññÿòòòÿôôôÿõõõÿöööÿ÷÷÷ÿøøøÿùùùÿ©¶©ÿ)d'ÿ” ÿ¢ ÿ¤ ÿ¦ ÿ§ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ"<"ÿŸ ÿ¥ ÿ£ ÿ  ÿœ ÿ— ÿ “ ÿ Œÿ†ÿmÿ/ÿ # ÿÿÿÿÿÿÿÿ ÿ ÿÿ,,,Þ€€€Åpêêêäðððÿñññÿòòòÿóóóÿôôôÿõõõÿöööÿ÷÷÷ÿøøøÿùùùÿôôôÿl†lÿpÿ¤ ÿ¦ÿ¨ÿ¨ÿ¨ ÿ§ ÿ§ÿ¨ÿ%<%ÿœ ÿ¦ ÿ£ ÿ¡ ÿ� ÿ™ ÿ “ ÿ �ÿ\ÿ ÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿ,,,Þ€€€Åpêêêäðððÿñññÿòòòÿóóóÿôôôÿõõõÿöööÿ÷÷÷ÿøøøÿùùùÿùùùÿúúúÿæçæÿ*O*ÿ¤ ÿ¨ ÿ¨ÿ§ÿ¦ ÿ§ÿ¨ÿ(@'ÿ” ÿ¦ ÿ£ ÿ  ÿ� ÿ ˜ ÿ “ ÿ �ÿ~ÿEÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿ,,,Þ€€€Åpêêêäðððÿñññÿòòòÿóóóÿôôôÿôôôÿõõõÿöööÿ÷÷÷ÿøøøÿøøøÿèèèÿB^Bÿ…ÿ§ ÿ¨ ÿ¨ÿ§ÿ¦ ÿ§ÿ¨ÿ+F+ÿ‰ ÿ¦ ÿ¤ ÿ¡ ÿ� ÿ™ ÿ “ ÿ �ÿ †ÿÿYÿ+ÿÿÿÿÿÿÿ ÿ ÿ ÿÿ,,,Þ€€€Åpêêêäïïïÿðððÿñññÿòòòÿóóóÿôôôÿõõõÿöööÿöööÿ÷÷÷ÿºÁºÿ)c'ÿž ÿ¥ ÿ§ÿ¨ÿ¨ÿ¨ÿ§ÿ¨ÿ¨ÿ-K,ÿ  ÿ¥ ÿ£ ÿ  ÿœ ÿ— ÿ “ ÿ Œÿ…ÿ~ÿuÿlÿKÿ ' ÿÿÿÿÿ ÿ ÿ ÿÿ+++Þ€€€Åpêêêäïïïÿðððÿñññÿñññÿòòòÿóóóÿôôôÿõõõÿõõõÿs‘rÿuÿ  ÿ¢ ÿ¥ ÿ§ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ ÿ/N.ÿ w ÿ¤ ÿ¢ ÿŸ ÿ› ÿ – ÿ ‘ ÿ ‹ÿ„ÿ|ÿuÿkÿiÿ ÿÿÿÿÿ ÿ ÿÿÿ+++Þ€€€Åpéééäîîîÿïïïÿðððÿñññÿòòòÿòòòÿóóóÿôôôÿóóóÿ%e$ÿš ÿž ÿ¢ ÿ¤ ÿ¦ ÿ¦ÿ§ÿ§ÿ¨ÿ¨ÿ¢ ÿ3G2ÿ B ÿŸ ÿ¡ ÿž ÿš ÿ • ÿ �ÿ ‰ÿƒÿ{ÿsÿjÿCÿ*ÿÿÿÿ ÿ ÿ ÿÿÿ***Þ~~~Åpéééäîîîÿïïïÿïïïÿðððÿñññÿòòòÿòòòÿóóóÿôôôÿœªœÿ~ ÿœ ÿ  ÿ£ ÿ¥ ÿ¦ ÿ§ ÿ§ ÿ§ ÿ}ÿ-?-ÿ2K2ÿ1ÿ#ÿO ÿš ÿ˜ ÿ “ ÿ Žÿ ‡ÿ€ÿyÿpÿiÿ"ÿÿÿÿÿ ÿ ÿ ÿÿÿ***Þ~~~Åpèèèäíííÿîîîÿïïïÿïïïÿðððÿñññÿòòòÿòòòÿóóóÿóóóÿ;g;ÿ› ÿž ÿ¡ ÿ£ ÿ¤ ÿ¥ ÿ¦ ÿiÿ*=*ÿ„ÿ¤ ÿ£ ÿ’ ÿ:ÿ # ÿ ‡ ÿ ‘ ÿ Œÿ…ÿ~ÿvÿmÿ?ÿ ÿÿÿÿÿ ÿ ÿÿÿÿ***Þ~~~ÅpçççäìììÿíííÿîîîÿïïïÿïïïÿðððÿñññÿñññÿòòòÿòòòÿÌÎÌÿiÿœ ÿŸ ÿ¡ ÿ£ ÿ£ ÿƒÿEÿž ÿ£ ÿ¢ ÿ  ÿž ÿ› ÿ yÿÿLÿ „ÿ‚ÿ{ÿsÿhÿÿÿÿÿÿ ÿ ÿ ÿÿÿÿ***Þ}}}Åpçççäìììÿìììÿíííÿîîîÿîîîÿïïïÿðððÿðððÿñññÿñññÿñññÿ^x^ÿ� ÿœ ÿž ÿ– ÿOÿ(ÿ\ÿ¢ ÿ  ÿŸ ÿž ÿ› ÿ˜ ÿ ” ÿÿÿ ' ÿHÿsÿoÿ:ÿ  ÿÿÿÿÿ ÿ ÿ ÿÿÿÿ)))Þ}}}Åpæææäëëëÿìììÿìììÿíííÿîîîÿîîîÿïïïÿïïïÿðððÿðððÿðððÿèèèÿ$\#ÿ— ÿXÿ8ÿŸ¥ŸÿÞÞÞÿWÿž ÿž ÿœ ÿš ÿ— ÿ ” ÿ ‘ ÿ9ÿÿÿÿ " ÿ>ÿÿÿÿÿÿ ÿ ÿ ÿÿÿÿÿ)))Þ}}}Åpåååäêêêÿëëëÿëëëÿìììÿíííÿíííÿîîîÿîîîÿïïïÿïïïÿïïïÿðððÿ”Ÿ”ÿ)@)ÿt„tÿíííÿðððÿðððÿ&a$ÿ› ÿš ÿ ˜ ÿ — ÿ ” ÿ � ÿ Œÿ6ÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿÿÿÿ(((Þ}}}Åpääääéééÿêêêÿëëëÿëëëÿìììÿìììÿíííÿíííÿîîîÿîîîÿîîîÿîîîÿïïïÿïïïÿïïïÿïïïÿïïïÿîîîÿ0r/ÿ — ÿ – ÿ ” ÿ ’ ÿ �ÿ ‹ÿ ˆÿ0ÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿÿÿÿ(((Þ}}}Åpääääèèèÿéééÿêêêÿêêêÿëëëÿëëëÿìììÿìììÿíííÿíííÿíííÿíííÿíííÿîîîÿîîîÿîîîÿíííÿíííÿ6w6ÿ ’ ÿ ‘ ÿ �ÿ �ÿ Šÿ ‡ÿƒÿ+ÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿÿÿÿÿ(((Þ}}}ÅpãããäçççÿèèèÿéééÿéééÿêêêÿêêêÿëëëÿëëëÿëëëÿìììÿìììÿìììÿìììÿìììÿìììÿìììÿìììÿìììÿUTÿ!m ÿ$k"ÿ&j%ÿFÿAÿ<ÿ7ÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿÿÿÿÿÿ(((Þ}}}ÅgßßßÝçççÿçççÿèèèÿèèèÿéééÿéééÿêêêÿêêêÿêêêÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿëëëÿêêêÿêêêÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿ000ØsssÄ ›››¼æææÿæææÿçççÿçççÿèèèÿèèèÿéééÿéééÿéééÿêêêÿêêêÿêêêÿêêêÿêêêÿêêêÿêêêÿêêêÿêêêÿêêêÿêêêÿéééÿéééÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿ”””¿Ã!!!z———»ÛÛÛØßßßÞßßßÞáááÞáááÞâââÞâââÞâââÞãããÞãããÞãããÞãããÞãããÞãããÞãããÞãããÞãããÞãããÞâââÞâââÞâââÞ:::Þ:::Þ999Þ888Þ777Þ777Þ555Þ444Þ333Þ222Þ111Þ000Þ///Þ---Þ,,,Þ***Þ***Þ)))Þ(((Þ(((Þ000Ø’’’ÀŠŠŠÀT hppppppppppppppppppppŠŠŠÅŠŠŠÅŠŠŠÅ‰‰‰Å‰‰‰Å‡‡‡Å‡‡‡Å†††Å†††Å………Å„„„Å„„„Å‚‚‚Å���Å€€€Å€€€Å~~~Å}}}Å}}}Å}}}ÅsssÄÃRÿÿÿÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àÿÿÿ( @ Neee…jjjˆlllˆlllˆnnnˆnnnˆnnnˆnnnˆnnnˆnnnˆnnnˆnnnˆnnnˆnnnˆqqqÄqqqÄoooÄoooÄnnnÄmmmÄkkkÄkkkÄkkkÄkkkÄkkkÄkkkÄkkkÄqqqÂŠŠŠªNPÛÛÛäàààÿáááÿáááÿâââÿâââÿãããÿãããÿãããÿãããÿãããÿãããÿãããÿãããÿâââÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿ'''áŠŠŠ©ggg…áááÿâââÿâââÿãããÿãããÿäääÿäääÿåååÿåååÿåååÿåååÿåååÿåååÿäääÿÞÞÞÿ  ÿ  ÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿqqqÂpppˆâââÿãããÿäääÿåååÿåååÿæææÿæææÿæææÿæææÿçççÿvŽvÿbÿaÿ^ÿ a ÿhÿrÿuÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿkkkÄrrrˆäääÿåååÿåååÿæææÿçççÿçççÿèèèÿèèèÿèèèÿèèèÿS|Rÿ Žÿ Žÿ Žÿ Œÿ Šÿ ‡ÿ„ÿ*ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿkkkÄtttˆåååÿæææÿçççÿèèèÿèèèÿéééÿéééÿêêêÿêêêÿêêêÿT€Sÿ “ ÿ “ ÿ ’ ÿ ‘ ÿ �ÿ �ÿ ‰ÿ>ÿÿÿ ÿ ÿÿÿÿÿÿÿÿkkkÄtttˆçççÿèèèÿèèèÿéééÿêêêÿÀÁÀÿéééÿëëëÿëëëÿìììÿSƒRÿ˜ ÿ˜ ÿ— ÿ – ÿ ” ÿ ‘ ÿ ŽÿFÿÿÿ  ÿ0ÿ]ÿÿÿÿÿÿÿkkkÄvvvˆèèèÿéééÿêêêÿëëëÿר×ÿ[ÿ#b"ÿo…oÿäääÿíííÿR„Pÿœ ÿœ ÿ› ÿš ÿ˜ ÿ – ÿ ’ ÿFÿÿ $ ÿPÿyÿrÿ[ÿÿÿÿÿÿkkkÄxxxˆéééÿêêêÿëëëÿìììÿPuOÿ ” ÿ˜ ÿ’ ÿ!eÿl†kÿL‚LÿŸ ÿ  ÿ3a3ÿ@I?ÿ>ÿ— ÿ – ÿQÿ;ÿÿ„ÿ}ÿvÿnÿ<ÿÿÿÿÿkkkÄyyyˆêêêÿëëëÿíííÿÐÒÐÿmÿ ˜ ÿ› ÿž ÿ  ÿ› ÿwÿ£ ÿ‡ÿPPNÿ™—•ÿ??<ÿ y ÿ™ ÿ – ÿ ’ ÿ �ÿ ‡ÿ€ÿzÿrÿiÿÿÿÿÿkkkÄyyyˆìììÿíííÿîîîÿEtEÿ— ÿ› ÿž ÿ¡ ÿ¢ ÿ£ ÿ¤ ÿ¤ ÿŒÿEGDÿZZXÿRSOÿ ~ ÿœ ÿ ™ ÿ • ÿ �ÿ Šÿ„ÿ|ÿuÿlÿOÿÿÿÿkkkÄ{{{ˆíííÿîîîÿÆËÆÿtÿš ÿž ÿ  ÿ£ ÿ¤ ÿ¥ ÿ¦ ÿ¦ ÿ¦ ÿ$m ÿ,5+ÿ iÿ¡ ÿž ÿ› ÿ — ÿ ’ ÿ Œÿ †ÿÿwÿoÿjÿ#ÿÿÿmmmÄ}}}ˆîîîÿïïïÿ;t;ÿ˜ ÿœ ÿ  ÿ¢ ÿ¥ ÿ¦ ÿ§ÿ§ÿ§ÿ§ÿ§ÿ9ÿ¥ ÿ£ ÿ  ÿœ ÿ ™ ÿ ” ÿ Žÿ ˆÿ�ÿyÿqÿiÿ/ÿÿÿnnnĈîîîÿäåäÿ`ÿš ÿž ÿ¡ ÿ¤ ÿ¦ ÿ§ÿ¨ ÿ¨ ÿ¨ÿ¨ ÿ§ ÿ:ÿ¦ ÿ¤ ÿ¢ ÿž ÿš ÿ • ÿ �ÿ ‰ÿƒÿ{ÿaÿ(ÿÿ ÿÿnnnÄ���ˆïïïÿñññÿÍÑÍÿ:m8ÿ…ÿ¢ ÿ¥ ÿ§ ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ9ÿ§ ÿ¥ ÿ£ ÿŸ ÿ› ÿ – ÿ ‘ ÿ ‹ÿƒÿLÿ#ÿ  ÿ ÿ ÿÿnnnÄ���ˆðððÿñññÿóóóÿôôôÿ›¨›ÿ,q*ÿŸ ÿ§ÿ¨ÿ¨ÿ§ÿ§ÿ§ÿ¨ÿ8ÿ§ÿ¥ ÿ£ ÿ  ÿœ ÿ — ÿ ‘ ÿ Œÿ:ÿ  ÿÿÿ ÿ ÿÿoooÄ���ˆðððÿòòòÿóóóÿõõõÿöööÿêêêÿ(J(ÿ¥ ÿ¨ÿ¨ÿ§ ÿ¦ ÿ§ÿ¨ÿ 7 ÿ§ ÿ¥ ÿ£ ÿ  ÿœ ÿ— ÿ ’ ÿ Œÿyÿ@ÿÿÿ ÿ ÿÿoooÄ���ˆðððÿòòòÿóóóÿõõõÿÌÎÌÿ/[.ÿ—ÿ§ ÿ¨ ÿ¨ÿ§ÿ¦ÿ§ ÿ¨ÿ$;#ÿ¤ÿ¥ ÿ£ ÿ  ÿœ ÿ — ÿ ‘ ÿ ‹ÿ„ÿ|ÿTÿ)ÿ ÿ ÿÿoooÄ���ˆðððÿòòòÿóóóÿˆ›ˆÿlÿ£ ÿ¥ ÿ§ÿ¨ÿ¨ÿ¨ÿ§ÿ¨ÿ¨ÿ(>'ÿ  ÿ¥ ÿ£ ÿŸ ÿ› ÿ — ÿ ‘ ÿ Šÿƒÿ{ÿsÿjÿKÿÿÿoooÄ���ˆðððÿñññÿIpHÿ� ÿŸ ÿ¢ ÿ¥ ÿ¦ ÿ§ÿ¨ ÿ¨ ÿ¨ÿ¨ÿ§ÿ*A*ÿœ ÿ¤ ÿ¢ ÿž ÿš ÿ • ÿ �ÿ ‰ÿ�ÿzÿqÿjÿFÿ ÿÿoooÄ���ˆðððÿñññÿ7j6ÿš ÿž ÿ¡ ÿ£ ÿ¥ ÿ§ÿ§ÿ¨ÿ¨ÿ¨ ÿÿ7=7ÿAÿ� ÿ  ÿ� ÿ ˜ ÿ ” ÿ �ÿ ‡ÿ€ÿxÿoÿiÿ%ÿ ÿÿoooÄ���ˆïïïÿñññÿÈÌÈÿlÿœ ÿ  ÿ¢ ÿ¥ ÿ¦ ÿ¦ ÿ¦ÿ¥ÿ+]*ÿ.A-ÿ%\#ÿEÿ(ÿAÿ • ÿ – ÿ ‘ ÿ Œÿ…ÿ}ÿuÿmÿCÿ!ÿ ÿÿnnnĈîîîÿðððÿñññÿWuVÿ“ ÿž ÿ¡ ÿ¢ ÿ¤ ÿ¥ ÿ¥ ÿ!G ÿ&V%ÿ¡ ÿ£ ÿ¢ ÿ� ÿN ÿ#ÿ {ÿ �ÿ ‰ÿ‚ÿ{ÿsÿiÿÿ ÿ ÿÿnnnÄ}}}ˆîîîÿïïïÿðððÿåååÿ ^ÿ› ÿž ÿ  ÿ¢ ÿž ÿSÿ]ÿ¤ ÿ£ ÿ¡ ÿŸ ÿ� ÿ™ ÿ ~ÿÿ?ÿvÿÿwÿoÿ>ÿÿ ÿÿÿnnnÄ{{{ˆíííÿîîîÿïïïÿðððÿˆ—ˆÿ~ ÿ› ÿž ÿnÿ>ÿJNJÿjÿ¡ ÿ  ÿž ÿœ ÿ™ ÿ — ÿ � ÿÿÿÿ<ÿeÿjÿÿ ÿ ÿÿÿmmmÄyyyˆìììÿíííÿîîîÿïïïÿðððÿ4_4ÿv ÿ7ÿUhUÿçççÿÝÝÝÿcÿž ÿœ ÿ› ÿ ˜ ÿ – ÿ ’ ÿ Žÿ4ÿÿÿÿ  ÿ&ÿÿ ÿÿÿÿkkkÄyyyˆêêêÿìììÿíííÿíííÿîîîÿÆÈÆÿdodÿØÙØÿðððÿñññÿñññÿhÿ™ ÿ ˜ ÿ — ÿ • ÿ ’ ÿ Žÿ Šÿ*ÿÿÿÿÿÿ ÿ ÿÿÿÿkkkÄxxxˆéééÿêêêÿëëëÿìììÿíííÿîîîÿîîîÿïïïÿïïïÿïïïÿïïïÿ%t#ÿ • ÿ ” ÿ ’ ÿ �ÿ �ÿ ‰ÿ…ÿ!ÿÿÿÿÿ ÿ ÿÿÿÿÿkkkÄvvvˆèèèÿéééÿêêêÿëëëÿëëëÿìììÿíííÿíííÿíííÿíííÿíííÿ(r'ÿ �ÿ �ÿ �ÿ ‹ÿ ‡ÿ�ÿzÿÿÿÿÿ ÿ ÿ ÿÿÿÿÿkkkÄooo…çççÿèèèÿèèèÿéééÿêêêÿêêêÿëëëÿëëëÿëëëÿìììÿìììÿ…Ÿ…ÿa‹`ÿdŒcÿg‹fÿ + ÿ % ÿ  ÿ  ÿÿÿÿ ÿ ÿ ÿÿÿÿÿÿmmmÁMàààáæææÿçççÿèèèÿèèèÿéééÿéééÿêêêÿêêêÿêêêÿêêêÿêêêÿêêêÿéééÿéééÿÿÿÿÿÿÿ ÿ ÿ ÿÿÿÿÿÿ(((ÝmmmŽJooo…tttˆvvvˆvvvˆxxxˆxxxˆxxxˆxxxˆxxxˆxxxˆxxxˆxxxˆxxxˆxxxˆzzzÄxxxÄxxxÄwwwÄvvvÄuuuÄsssÄrrrÄqqqÄoooÄnnnÄmmmÄkkkÄmmmÁkkk‘&À€€À(0 "ŽŽŽ†¦¦¦˜§§§˜§§§˜©©©˜©©©˜©©©˜©©©˜©©©˜©©©˜©©©˜UUUÌSSSÌRRRÌQQQÌNNNÌMMMÌMMMÌMMMÌMMMÌMMMÌfff¿[[[r���‡áááÿâââÿâââÿãããÿãããÿäääÿäääÿäääÿäääÿäääÿãããÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿfff¿©©©˜ãããÿäääÿäääÿåååÿæææÿæææÿæææÿ ° ÿ6z5ÿ*u)ÿ pÿXÿXÿ*ÿ ÿÿÿÿÿÿÿÿMMMÌ«««˜åååÿæææÿæææÿçççÿèèèÿèèèÿèèèÿn”nÿ �ÿ �ÿ �ÿ ‹ÿ ‡ÿ>ÿ ÿ ÿ ÿÿÿÿÿÿMMM̬¬¬˜æææÿçççÿèèèÿéééÿêêêÿêêêÿëëëÿp™pÿ – ÿ • ÿ ” ÿ ‘ ÿ �ÿQÿÿÿ  ÿAÿÿÿÿÿMMMÌ®®®˜èèèÿéééÿëëëÿ`†`ÿ3s2ÿ›ªšÿíííÿl˜lÿ› ÿ› ÿ™ ÿ— ÿ ” ÿUÿÿ3ÿfÿpÿ.ÿÿÿÿMMM̰°°˜êêêÿëëëÿÞßÞÿrÿ™ ÿ� ÿ1w0ÿ@r?ÿ  ÿ$r#ÿFNEÿ#H ÿ ˜ ÿjÿUÿ ‡ÿÿuÿbÿÿÿÿMMM̳³³˜ìììÿíííÿWˆWÿ˜ ÿ� ÿ  ÿ¢ ÿ  ÿ£ ÿ/E-ÿ•’‘ÿ?F<ÿ� ÿ˜ ÿ ’ ÿ Œÿ„ÿzÿoÿCÿÿÿNNN̵µµ˜íííÿÙÜÙÿ}ÿœ ÿ  ÿ£ ÿ¥ ÿ¦ ÿ¦ ÿ„ÿ,5,ÿ+o*ÿŸ ÿ› ÿ – ÿ �ÿ ‡ÿ}ÿsÿiÿÿÿNNN̶¶¶˜îîîÿQ�Pÿ™ ÿž ÿ¢ ÿ¥ ÿ§ ÿ§ÿ¨ÿ§ÿGÿ¥ ÿ¢ ÿ� ÿ ˜ ÿ ’ ÿ ‰ÿ€ÿuÿaÿ#ÿÿPPP̸¸¸˜ïïïÿg“fÿ€ÿ  ÿ¤ ÿ¦ ÿ¨ ÿ¨ÿ¨ÿ¨ÿ Gÿ¦ÿ£ ÿ  ÿš ÿ ” ÿ Œÿ‚ÿSÿ(ÿ ÿÿQQQ̸¸¸˜ðððÿòòòÿÇÎÇÿB�@ÿ—ÿ§ ÿ¨ÿ¨ÿ§ ÿ¨ÿ!F ÿ§ ÿ¤ ÿ  ÿ› ÿ ” ÿ Œÿ@ÿ  ÿÿ ÿ ÿRRR̸¸¸˜ñññÿóóóÿõõõÿìììÿ9b8ÿ¦ÿ¨ÿ§ÿ¦ ÿ§ÿ#H#ÿ§ÿ¤ ÿ¡ ÿ› ÿ • ÿ Œÿsÿ<ÿÿ ÿ ÿRRR̺ºº˜ñññÿóóóÿÅÎÅÿ.o,ÿ¡ÿ§ ÿ¨ÿ§ÿ§ÿ¨ÿ'M'ÿ¤ ÿ¤ ÿ  ÿ› ÿ ” ÿ ‹ÿ‚ÿwÿRÿ.ÿ ÿRRR̸¸¸˜ñññÿ†§…ÿ~ÿ¡ ÿ¥ ÿ§ÿ¨ÿ¨ÿ¨ÿ¨ÿ+Q+ÿŸ ÿ£ ÿž ÿ™ ÿ ’ ÿ Šÿ€ÿuÿjÿBÿ ÿRRR̸¸¸˜ðððÿgŒgÿ— ÿ  ÿ£ ÿ¦ ÿ§ ÿ¨ÿ§ ÿ‡ÿ5B5ÿ8ÿ€ ÿ� ÿ— ÿ � ÿ ˆÿ~ÿsÿfÿ*ÿ ÿRRR̸¸¸˜ïïïÿíííÿ%n%ÿ� ÿ¡ ÿ£ ÿ¥ ÿ¦ ÿ%h#ÿ*P)ÿŒÿ x ÿ6ÿ A ÿ “ ÿ Žÿ…ÿ{ÿpÿ=ÿÿÿQQQ̶¶¶˜îîîÿðððÿšªšÿˆ ÿž ÿ¡ ÿ£ ÿqÿ_ÿ¤ ÿ¢ ÿŸ ÿ› ÿ mÿ ÿfÿ€ÿwÿgÿÿ ÿÿPPP̵µµ˜íííÿïïïÿðððÿ@u?ÿš ÿ… ÿPÿeoeÿsÿ  ÿž ÿ› ÿ— ÿ ‘ ÿ!ÿÿ8ÿ\ÿ4ÿ  ÿ ÿÿNNN̳³³˜ìììÿíííÿîîîÿÏÑÏÿ*V*ÿXqWÿåååÿïïïÿoÿ› ÿ™ ÿ — ÿ ’ ÿ �ÿ4ÿÿÿÿ  ÿ ÿÿÿNNṈ±±˜êêêÿëëëÿìììÿíííÿîîîÿïïïÿïïïÿïïïÿwÿ • ÿ ” ÿ �ÿ Œÿ ‡ÿ)ÿÿÿÿ ÿ ÿÿÿMMMÌ®®®˜èèèÿéééÿëëëÿëëëÿìììÿíííÿíííÿíííÿ!lÿ v ÿ p ÿdÿ\ÿTÿÿÿÿ ÿ ÿÿÿÿMMMÌ–––†æææÿèèèÿéééÿéééÿêêêÿêêêÿëëëÿëëëÿÞßÞÿÞÞÞÿâââÿÿÿÿÿÿ ÿ ÿÿÿÿÿWWW¸ ———…®®®˜®®®˜°°°˜°°°˜°°°˜°°°˜±±±˜°°°˜°°°˜°°°˜]]]Ì\\\Ì[[[ÌZZZÌXXXÌUUUÌSSSÌQQQÌNNNÌMMMÌTTT¸JJJR€€(  NNN^ÈÈȱËË˲ÌÌ̲ÌÌ̲ÌÌ̲ÌÌ̲ÌÌ̲888Ù666Ù333Ù111Ù000Ù000Ù222ØPPPŸÉÉɱãããÿäääÿåååÿæææÿÆÎÆÿWŽWÿHˆHÿMÿ6ÿ ÿÿÿÿÿ222ØÎÎÎ²æææÿçççÿèèèÿéééÿ‘¬�ÿ ‘ ÿ �ÿ ŒÿXÿ ÿ ÿ ÿÿÿ000ÙÑÑѲéééÿäääÿS…RÿÈÏÇÿ’°’ÿš ÿ ˜ ÿ • ÿhÿÿPÿRÿ ÿÿ000ÙÔÔÔ²ëëëÿh“hÿ ˜ ÿ‹ÿ2€1ÿ� ÿHSFÿ!Rÿ ƒ ÿsÿ‚ÿtÿ?ÿÿ000ÙÕÕÕ²äåäÿÿž ÿ£ ÿ¥ ÿ£ ÿ9E8ÿ)f&ÿœ ÿ ” ÿ ˆÿzÿdÿÿ222ÙØØØ²i˜hÿ› ÿ¢ ÿ¦ ÿ§ÿ¨ÿ\ÿ¥ ÿ  ÿ˜ ÿ Œÿ~ÿVÿ"ÿ333ÙÙÙÙ²èéèÿZ�Yÿ’ÿ§ÿ¨ÿ¨ÿ![ÿ¦ÿ¡ ÿš ÿ ŽÿIÿ  ÿ ÿ666ÙÙÙÙ²òòòÿìììÿ@x>ÿ§ ÿ§ÿ§ÿ$["ÿ¥ ÿ¢ ÿ™ ÿ Žÿoÿ2ÿ ÿ666ÙÙÙÙ²»Ì»ÿ)‚&ÿ¤ ÿ§ ÿ¨ÿ¨ÿ'^%ÿ¡ ÿ¡ ÿ™ ÿ �ÿÿmÿ9ÿ666ÙÙÙÙ²¥»¤ÿŽ ÿ¢ ÿ¦ ÿ§ ÿŒÿ-E,ÿ5ÿz ÿ • ÿ ‰ÿ{ÿ`ÿ(ÿ666ÙØØØ²ðððÿEƒCÿž ÿ¢ ÿ‹ÿ^ÿ£ ÿŸ ÿ V ÿIÿ�ÿuÿ<ÿ ÿ333ÙÕÕÕ²îîîÿÕÙÕÿyÿdÿuŠuÿÿž ÿ™ ÿ ‘ ÿ ) ÿ+ÿTÿÿÿ222ÙÔÔÔ²ëëëÿíííÿ½Ã½ÿéêéÿðððÿ|ÿ • ÿ ‘ ÿ Šÿ*ÿÿÿ ÿÿ000ÙÐÐбéééÿêêêÿëëëÿìììÿìììÿ9€8ÿ*�)ÿ XÿNÿ  ÿÿ ÿÿÿ111×VVV^ÏÏϱÑÑѲÒÒÒ²ÔÔÔ²ÔÔÔ²ÔÔÔ²ÒÒÒ²AAAÙ@@@Ù===Ù:::Ù777Ù222Ù111×vvvƒ€€CorsixTH-0.70.0/CorsixTH/CorsixTH.lua000066400000000000000000000071331522247547500172330ustar00rootroot00000000000000---- CorsixTH bootstrap code ------------------------------------------------- -- This is not a configuration file and should not be edited. See config.txt -- for CorsixTH configuration options. -- Basic sanity check that the file hasn't been invoked by the standard Lua -- interpreter (as then various packages would be missing and SDLmain would not -- have run). if (package and package.preload and package.preload.TH) == nil then error "This file must be invoked by the CorsixTH executable" end -- Set a large enough cstacklimit to load complex saves in stack based -- versions of lua, such as 5.4.[01] if debug.setcstacklimit then debug.setcstacklimit(30000) end -- Redefine dofile such that it adds the direction name and file extension, and -- won't redo a file which it has previously done. local pathsep = package.config:sub(1, 1) local base_dir = debug.getinfo(1, "S").source:sub(2, -13) local code_dir = base_dir .. "Lua" .. pathsep package.cpath = base_dir .. '?.so;' .. package.cpath for _, arg in ipairs{...} do local dir = arg:match"^%-%-lua%-dir=(.*)$" if dir then code_dir = dir .. pathsep end end package.path = code_dir .. "?.lua;" .. code_dir .. "?/init.lua;" .. package.path local done_files = {} local persist = require("persist") local save_results if table.pack then -- Lua 5.2 save_results = function(t, k, ...) t[k] = table.pack(...) return ... end else -- Lua 5.1 save_results = function(t, k, ...) t[k] = {n = select('#', ...), ...} return ... end end _G['corsixth'] = {} --! Loads and runs a lua file. -- Similar to the built in require function with three important differences: -- * This function searches for --[[persistance: comments and maps the -- following function into the persistence table. -- * This function only searches in the Lua code directory -- * This function is only able to load lua source files (not C modules or -- compiled lua. --!param name (string) -- The name of the lua source file to run. Use dots to separate directories, -- and do not include the .lua file extension. --!return The return value of whatever source file is opened. corsixth.require = function(name) name = name:gsub("%.", pathsep) if done_files[name] then local results = done_files[name] return unpack(results, 1, results.n) end done_files[name] = true return save_results(done_files, name, persist.dofile(code_dir .. name .. ".lua")) end -- Load standard library extensions corsixth.require("utility") -- Check Lua version local support = list_to_set({"Lua 5.1", "Lua 5.2", "Lua 5.3", "Lua 5.4", "Lua 5.5"}) if not support[_VERSION] then error "Please recompile CorsixTH and link against Lua version 5.1 to 5.5" end if _VERSION ~= "Lua 5.1" then -- Compatibility: Keep the global unpack function unpack = table.unpack -- luacheck: ignore 121 end -- Enable strict mode corsixth.require("strict") require = destrict(require) -- luacheck: ignore 121 dofile = destrict(dofile) -- luacheck: ignore 121 -- Load the class system (required for App) corsixth.require("class") -- Load the main App class corsixth.require("app") -- Create an instance of the App class and transfer control to it strict_declare_global "TheApp" TheApp = App() TheApp:setCommandLine( "--bitmap-dir=" ..base_dir.. "Bitmap", "--config-file=" .. corsixth.require("config_finder").config_filename, "--hotkeys-file=" .. corsixth.require("config_finder").hotkeys_filename, -- If a command line option is given twice, the later one is used, hence -- if the user gave one of the above, that will be used instead. ... ) assert(TheApp:init()) --[[!file ! Application bootstrap code ]] CorsixTH-0.70.0/CorsixTH/CorsixTH.rc000066400000000000000000000031041522247547500170500ustar00rootroot00000000000000// Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "WinResrc.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // English (U.K.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""WinResrc.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_CORSIXTH ICON "CorsixTH.ico" #endif // English (U.K.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED CorsixTH-0.70.0/CorsixTH/CorsixTH.vcxproj.user.in000066400000000000000000000005451522247547500215270ustar00rootroot00000000000000 --interpreter=@CMAKE_CURRENT_SOURCE_DIR@/CorsixTH.lua WindowsLocalDebugger CorsixTH-0.70.0/CorsixTH/CppTest/000077500000000000000000000000001522247547500164035ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/CppTest/CMakeLists.txt000066400000000000000000000042641522247547500211510ustar00rootroot00000000000000# MIT License # # Copyright (c) 2019 David Fairbrother # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. if(FETCH_CATCH2) include(FetchContent) fetchcontent_declare( Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git GIT_TAG v3.8.1 ) fetchcontent_makeavailable(Catch2) else() find_package(Catch2 3 CONFIG REQUIRED) endif() add_custom_target(AllTests) add_executable(UnitTests "") target_link_libraries(UnitTests Catch2::Catch2WithMain CorsixTH_lib) set_property(TARGET UnitTests PROPERTY CXX_STANDARD 17) set_property(TARGET UnitTests PROPERTY CXX_EXTENSIONS OFF) set_property(TARGET UnitTests PROPERTY CXX_STANDARD_REQUIRED ON) # Add the target to CTest set_target_properties(UnitTests PROPERTIES FOLDER UnitTests) # Make sure we add it as a dependency to all tests (some day we can add LuaTest here) add_dependencies(AllTests UnitTests) # List of all test files target_sources(UnitTests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/test_th_lua.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test_th_lua_map.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test_th_lua_ui.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test_th_strings.cpp ) include(CTest) include(Catch) catch_discover_tests(UnitTests) CorsixTH-0.70.0/CorsixTH/CppTest/test_th_lua.cpp000066400000000000000000000066231522247547500214310ustar00rootroot00000000000000#include #include "../Src/lua.hpp" #include "../Src/th_lua.h" TEST_CASE("luaT_rotate works", "[luaT_rotate]") { lua_state_unique_ptr L(luaL_newstate()); lua_pushnumber(L.get(), 1); lua_pushnumber(L.get(), 2); lua_pushnumber(L.get(), 3); lua_pushnumber(L.get(), 4); lua_pushnumber(L.get(), 5); lua_pushnumber(L.get(), 6); lua_pushnumber(L.get(), 7); REQUIRE(lua_gettop(L.get()) == 7); SECTION("rotate 0") { luaT_rotate(L.get(), 1, 0); REQUIRE(lua_tonumber(L.get(), 1) == 1); REQUIRE(lua_tonumber(L.get(), 2) == 2); REQUIRE(lua_tonumber(L.get(), 3) == 3); REQUIRE(lua_tonumber(L.get(), 4) == 4); REQUIRE(lua_tonumber(L.get(), 5) == 5); REQUIRE(lua_tonumber(L.get(), 6) == 6); REQUIRE(lua_tonumber(L.get(), 7) == 7); } SECTION("rotate all up 1") { luaT_rotate(L.get(), 1, 1); REQUIRE(lua_tonumber(L.get(), 1) == 7); REQUIRE(lua_tonumber(L.get(), 2) == 1); REQUIRE(lua_tonumber(L.get(), 3) == 2); REQUIRE(lua_tonumber(L.get(), 4) == 3); REQUIRE(lua_tonumber(L.get(), 5) == 4); REQUIRE(lua_tonumber(L.get(), 6) == 5); REQUIRE(lua_tonumber(L.get(), 7) == 6); } SECTION("rotate all down 1") { luaT_rotate(L.get(), 1, -1); REQUIRE(lua_tonumber(L.get(), 1) == 2); REQUIRE(lua_tonumber(L.get(), 2) == 3); REQUIRE(lua_tonumber(L.get(), 3) == 4); REQUIRE(lua_tonumber(L.get(), 4) == 5); REQUIRE(lua_tonumber(L.get(), 5) == 6); REQUIRE(lua_tonumber(L.get(), 6) == 7); REQUIRE(lua_tonumber(L.get(), 7) == 1); } SECTION("rotate all up 2") { luaT_rotate(L.get(), 1, 2); REQUIRE(lua_tonumber(L.get(), 1) == 6); REQUIRE(lua_tonumber(L.get(), 2) == 7); REQUIRE(lua_tonumber(L.get(), 3) == 1); REQUIRE(lua_tonumber(L.get(), 4) == 2); REQUIRE(lua_tonumber(L.get(), 5) == 3); REQUIRE(lua_tonumber(L.get(), 6) == 4); REQUIRE(lua_tonumber(L.get(), 7) == 5); } SECTION("rotate all down 2") { luaT_rotate(L.get(), 1, -2); REQUIRE(lua_tonumber(L.get(), 1) == 3); REQUIRE(lua_tonumber(L.get(), 2) == 4); REQUIRE(lua_tonumber(L.get(), 3) == 5); REQUIRE(lua_tonumber(L.get(), 4) == 6); REQUIRE(lua_tonumber(L.get(), 5) == 7); REQUIRE(lua_tonumber(L.get(), 6) == 1); REQUIRE(lua_tonumber(L.get(), 7) == 2); } SECTION("rotate from 3rd up 1") { luaT_rotate(L.get(), 3, 1); REQUIRE(lua_tonumber(L.get(), 1) == 1); REQUIRE(lua_tonumber(L.get(), 2) == 2); REQUIRE(lua_tonumber(L.get(), 3) == 7); REQUIRE(lua_tonumber(L.get(), 4) == 3); REQUIRE(lua_tonumber(L.get(), 5) == 4); REQUIRE(lua_tonumber(L.get(), 6) == 5); REQUIRE(lua_tonumber(L.get(), 7) == 6); } SECTION("rotate from -3rd up 1") { luaT_rotate(L.get(), -3, 1); REQUIRE(lua_tonumber(L.get(), 1) == 1); REQUIRE(lua_tonumber(L.get(), 2) == 2); REQUIRE(lua_tonumber(L.get(), 3) == 3); REQUIRE(lua_tonumber(L.get(), 4) == 4); REQUIRE(lua_tonumber(L.get(), 5) == 7); REQUIRE(lua_tonumber(L.get(), 6) == 5); REQUIRE(lua_tonumber(L.get(), 7) == 6); } SECTION("rotate from -5th down 2") { luaT_rotate(L.get(), -5, -2); REQUIRE(lua_tonumber(L.get(), 1) == 1); REQUIRE(lua_tonumber(L.get(), 2) == 2); REQUIRE(lua_tonumber(L.get(), 3) == 5); REQUIRE(lua_tonumber(L.get(), 4) == 6); REQUIRE(lua_tonumber(L.get(), 5) == 7); REQUIRE(lua_tonumber(L.get(), 6) == 3); REQUIRE(lua_tonumber(L.get(), 7) == 4); } } CorsixTH-0.70.0/CorsixTH/CppTest/test_th_lua_map.cpp000066400000000000000000000026241522247547500222630ustar00rootroot00000000000000#include #include "../Src/lua.hpp" #include "../Src/th_lua.h" #include "../Src/th_map.h" TEST_CASE("test l_map_setcellflags", "[l_map_setcellflags]") { // Prepare lua bindings const lua_state_unique_ptr L(luaL_newstate()); luaL_openlibs(L.get()); preload_lua_package(L.get(), "TH", luaopen_th); luaT_execute(L.get(), "return require \"TH\""); lua_settop(L.get(), 1); // Create a map lua_getfield(L.get(), -1, "map"); lua_call(L.get(), 0, 1); auto* map = static_cast(lua_touserdata(L.get(), -1)); // Default map is 0,0, increase size so we can set flags map->set_size(128, 128); lua_getfield(L.get(), -1, "setCellFlags"); lua_pushvalue(L.get(), -2); // Copy the map to the top of the stack lua_pushinteger(L.get(), 5); // X lua_pushinteger(L.get(), 10); // Y // flags lua_newtable(L.get()); lua_pushstring(L.get(), "buildable"); lua_pushboolean(L.get(), true); lua_settable(L.get(), -3); lua_pushstring(L.get(), "doorNorth"); lua_pushboolean(L.get(), true); lua_settable(L.get(), -3); lua_pushstring(L.get(), "parcelId"); lua_pushnumber(L.get(), 3); lua_settable(L.get(), -3); lua_call(L.get(), 4, 0); const map_tile* tile = map->get_tile(4, 9); REQUIRE(tile->flags.buildable == true); REQUIRE(tile->flags.do_not_idle == false); REQUIRE(tile->flags.door_north == true); REQUIRE(tile->iParcelId == 3); } CorsixTH-0.70.0/CorsixTH/CppTest/test_th_lua_ui.cpp000066400000000000000000000012561522247547500221230ustar00rootroot00000000000000#include #include "../Src/th_lua_ui.h" TEST_CASE("map_color_channel scales correctly", "[map_color_channel]") { REQUIRE(map_color_channel(0, 100, 0, 10, 20) == 10); REQUIRE(map_color_channel(0, 100, 50, 10, 20) == 15); REQUIRE(map_color_channel(0, 100, 100, 10, 20) == 20); REQUIRE(map_color_channel(0, 200, 100, 0, 100) == 50); REQUIRE(map_color_channel(50, 150, 100, 0, 100) == 50); REQUIRE(map_color_channel(0, 100, 25, 200, 100) == 175); } TEST_CASE("map_color_channel clamps to [start-end]", "[map_color_channel]") { REQUIRE(map_color_channel(0, 100, 120, 0, 200) == 200); REQUIRE(map_color_channel(100, 200, 50, 25, 75) == 25); } CorsixTH-0.70.0/CorsixTH/CppTest/test_th_strings.cpp000066400000000000000000000015301522247547500223310ustar00rootroot00000000000000#include #include #include #include #include "../Src/th_strings.h" TEST_CASE("skip whitespace", "[skip_utf8_whitespace]") { const char* str = " \t \n 1234"; const char* end = str + 10; skip_utf8_whitespace(str, end); REQUIRE_THAT(str, Catch::Matchers::Equals("1234")); } TEST_CASE("leave non-whitespace", "[skip_utf8_whitespace]") { const char* str = "1234 "; const char* end = str + 8; skip_utf8_whitespace(str, end); REQUIRE_THAT(str, Catch::Matchers::Equals("1234 ")); } TEST_CASE("remove entire string of whitespace", "[skip_utf8_whitespace]") { const char* str = " \t \n "; const char* end = str + 10; skip_utf8_whitespace(str, end); REQUIRE_THAT(str, Catch::Matchers::Equals("")); } CorsixTH-0.70.0/CorsixTH/Graphics/000077500000000000000000000000001522247547500165615ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Graphics/file_mapping.txt000066400000000000000000000022261522247547500217560ustar00rootroot00000000000000--[[ Copyright (c) 2013 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- This table specifies the custom animation files to load. file_mapping = { "plant_anim.dat" } CorsixTH-0.70.0/CorsixTH/Icon.icns000066400000000000000000002727201522247547500166010ustar00rootroot00000000000000icnsuÐTOC @is32s8mkil32 äl8mkit32ˆðt8mk@ic08˜‚is32,),*,2420.,($%ÝæééðãÜk  !-èáäéÍóJ  *ìçðí*L0 ,òâÿc -ñéù™& -òîöéG-ôéÿ=  -õçÿ­$"2 -ñëõí—Í" ,îéñïÿï7 ,ëæëòÜü‹+éâêæóä"  (ãàçáìN  +ãÛàâ×Q*ÎÙÚÙáãçp (,),)+122/-,($%Ýæéèòæâu" !-èáäéÏå“pg  *ìæò怄¢q&C-ðæ÷™�›pgi{u3 -ñëõ¹�¡›iœ„pB-òíøå’™””ŠM.óí÷‰’£’o™�m8 -ôéÿÄt•|Nƒys. -ñêöì³Ôƒ‰^(@ ,îéñïÿï�~J ,ëæìðá÷¢V' +éâêæòâ\\; (ãàæãèuL_`& +ãÛàâÖwiOE'ÎÙÚÙáÞäp(,),*,2420.,($%ÝæééðãÛk  !-èáäéÍôE  *ìçðí$H*  ,òâÿa  -ñéù– -òîöêB  -ôéÿ;  -õçÿ«3 -ñëõí”Í ,îéñïÿï2 ,ëæëòÛüˆ+éâêçóä (ãàçáìL  +ãÛàâ×K! ÎÙÚÙáäçp (s8mkJXUWS\H¯ÿ÷ÿþøÿ»JÿùÿþÿÿÿþþþþþÿûÿWÿïûö÷÷öûÿÿÿÿþÿûVÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿWÿöÿýþþþþÿÿÿÿÿÿýWÿ÷ÿþÿÿÿÿÿÿÿÿÿÿþWÿ÷ÿþÿÿÿÿÿÿÿÿÿÿþWÿ÷ÿþÿÿÿÿÿÿÿÿÿÿþWÿ÷ÿþÿÿÿÿÿÿÿÿÿÿþWÿ÷ÿþÿÿÿÿÿÿÿÿÿÿþWÿ÷ÿþÿÿÿÿÿÿÿÿÿÿþWÿ÷ÿþÿÿÿÿÿÿÿÿÿÿþWÿöÿýþþþþÿÿÿÿÿÿþUÿ÷ÿþÿÿÿÿÿÿÿÿÿÿÿWÿñýøùùøüÿÿÿÿþÿüGÿùÿþÿÿÿþþþþþÿüÿil32 ä‰&D=?=<;:976323.9±³·¶·¸€¹)¸¸º°¼t9E?@?=<<:966/FW²úåðíïïððòóïôïÿo ƒ OµæÛâà€âãàÛäÝID+ >¹òãêèêëëìõúôÐ   AºïáéçéëèîScïÚ   ?»ñäìéïäÿŽ/Y    A¼òåííëóÚ !€  B½ôçíðéÿo€2  C¿õçòëùÍ  CÀöé€ñdó˜   DÀöêóðõôþçQ  DÁ÷ëóòôúûÊN EÁ÷ëôñùÞ\ €  EÁ÷ëöîÿÅ   EÁ÷ëòõïÿ] #  EÁ÷ëòôðÿ #:`  EÀöêòðöïÿ[†q#!  DÀöéñïóðýÑ{ÙÿŠ   D¾õçðïðòòôÿñÿ| C½óçîíïðñïìèÿ„  C¼òåíëíîïðôóëó†7  B»ñãëêììííìñçÿ« @ºïâéèê€ë;ìíéð6  ?·îáèæçèéèîäü†   ?¶ìßç䀿éãëÅ �    ?´ëÝäâäååçâøE€ s  ?³èÛâßááåÜñr  >±êÜäâãâæáì“+ A°ÝÑØÖØÙÙÚØéÛº˜‘B   =£÷ãìéê€ë ìåèøðÿn ƒ Y%Ž–——˜˜€™ œ™–�—g@ICDCB@€?>A:Xl‰%C<>=<;:976323.9±³·¶·¸‚¹(º³Àw=I@@?=<<:966/FW²úåðíïïððñóðôéÿi‚OµæÛâàââãââÜãÛ{ƒbBC$ >¹òãêèêëëíð÷ùÍz†ƒ‚„:  AºïáéçéêêéstæÝx”‰‚~?   ?»ñäìéîæýœvtc]�–ˆˆ–0.R+   A¼òåííêöÓq™šžX[£�šf3cvlR B½ôçîïìú•€—’˜«`IkELŒ‡tgd1 C¿õçòêûÉc¢•›�“¬u/…›‹€{n`R CÀöéòðñò¥l•žœœž�a©‹�‡{rhW DÀöêòñõôÿგ –¤‚W ’‘†}nA DÁ÷ëóòôúöΈ‘ –£…`¥�‘…~( EÁ÷ëôñùà‡t”��š£�_¢��…}g1  EÁ÷ëöîÿÆl¢”™š•¦…a£��…zrfA EÁ÷ëóôóü‹�‘’Ÿ�Ÿ[?��‡yj`R EÁ÷ëòôðÿÅr�–††‰AG^”…ƒpgb  EÀöêòðõòü�ns¢‘ŒmL…y4lrj;  DÀöéñïóðýÓ�×ÿ¯}•‰ŒoAQ D¾õçðïðòòõÿ÷ú¢†|�g C½óçîíïðñïîéÿ�_„t}W C¼òåíëíîïñóóîî—du] B»ñãëêëìííìðçý´QpH @ºïâéèê€ë;ììëé]WZY   ?·îáèæçèéèíåù“IaT_C   ?¶ìßç䀿éãíÃH^X[V^'   ?´ëÝäâäååæåñgQYTYY[P ?³èÛâßááåÜñy;eY`ZZWb3 >±êÜäâããåáêžZTNMTYVR5 A°ÝÑØÖØØÙÙØæÖ»¢ S!   =£÷ãìéê€ë ìæêøîÿl ƒ Y%Ž–——˜˜€™ ›™–‘™iBJDDCB@€?>A:Xl‰&E=?=<;:976323.9±³·¶·¸€¹)¸¸º°¼s9E>@?=<<:966/FW²úåðíïïððòôïôðÿp ƒ OµæÛâà€âãàÛäÝE?'  >¹òãêèêëëìöûóÐ  AºïáéçéëèîPbðÚ    ?»ñäìéïäÿ�+X    A¼òåííëóÚZ    B½ôçíðèÿl  C¿õçòìùÍ    CÀöé€ñeó–    DÀöêóðõôþèN     DÁ÷ëóòôúûÊJ    EÁ÷ëôñùÞW€  EÁ÷ëöîÿÅ     EÁ÷ëòöïÿ[ "    EÁ÷ëòôðÿ =h  EÀöêòðöïÿZ„n  DÀöéñïóðýÑzÙÿ‡  D¾õçðïðòòôÿñÿy  C½óçîíïðñïìèÿ‚  C¼òåíëíîïðôóëô…6 B»ñãëêììííìñçÿª  @ºïâéèê€ë;ìíèð2   ?·îáèæçèéèîäü…  ?¶ìßç䀿'éãëÄ   ?´ëÝäâäååçâøC€9  ?³èÛâßááåÜñr >±êÜäâãâæàì’$„1A°ÝÑØÖØÙÙÚØêܺ–�@   =£÷ãìéê€ë ìåèøðÿn ƒ Y%Ž–——˜˜€™ œš–�—g@HCDCB@€?>A:Xll8mk*3122222223/9!¥ÿ÷ÿýþþþþþýÿûÿÈ!¢ÿûÿþÿÿÿÿÿÿÿÿÿÿýüüüüüüüüüüüýúÿç+ÿûýüüüüüüüüüüüüýÿÿÿÿÿÿÿÿÿÿÿþÿûû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù2ÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü3ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû3ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû2ÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû3ÿúÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿú(þþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþ÷Œ÷ò÷õõõõõõõõõõôøýüüüüüüüüüüüüúøit32ˆð‚´ ‚€€¡…‡ ‚ € ¢  6?<€=ƒ<;;ƒ:€9„87766�5�322ˆ/.!… ‚€…�› ¾ÿôþƒú‚ùø�÷�ö�õ�ô�ó�ñ€ð‰ïîá·\� VŠª§„©„ª‡«�­…«¬¨±`?IEFƒE‚DCC€BAA€@„?€>=�<€;9987‚896H‚·ô­! GËíë‚íƒî€ïðð€ïððññ•òññððîòéþ@ ƒ‚€��XའFìâÙ‚ÚƒÛƒÜ݉މ߇ÞÝàØéG €ƒ‚‚ƒ€ € �  „ =îŒ ÉãÙåâ€ãƒä‚åææ†ç‘èƒçæêáôD €€ ‚ ‚  ‚ ƒ€€† ~å% VîÚåÞßß‚à�áââ„ã˜ä‚ãáåÜïF€€ƒ‚� € ƒ  ��ƒ,ìd ‹íÚáß‚á‚âãƒä†å’æ‚è çëâõH‚ƒ� ‚  ƒ  ��„ Ì› «îÙãà€á‚âã‚ä„å–æäàà€ßÝáÙìE€€‚� ‚  ‚  €�‚²§ ¨íÛäàáá�âã‚äƒåˆæ‹çææåë‚õô÷îÿL€€€�‚ �  ‚  €€�²ª ªïÛäà‚â‚ä‚å…æ‘çéäî½\fgmqv{x„' € €�‚ �  ‚  €€�±ª ªïÛäá€âã�ä‚儿‰ç…è ççæêáöŠ‚ ‚� �  ‚  €�€²© ªîÜåáââ�ä‚åƒæ…çŽèçëâ÷~!‚‚ €€�� �  ‚  €€� ²© ªïÜåâã€ä‚åƒæƒç’èçëá÷i ‚€ƒ ��� €  ƒ  €€²© «ïÜåã€ä�傿ƒç†èé�ê�éƒêéíâ÷^�ƒ€‚�� €  ‚  €€²© «ïÜæãää�傿‚ç„è„êéê�íéé�êéíãùT€€‚� ��� �  ‚  €€²© «ðÞçã�傿‚çƒè‡êëéãääæîìê€ëéíäùK‚€‚  ��� �  ‚  €€²© ­òÞçä€å�æ‚ç‚èé„ê‚ëêîüúú÷æèîëêëêîåúD„€� €��€ � ƒ  €�²© ­ñÞèäåå�æ�ç‚èé‚êƒëêíèõÃ7=V±øòäìîêêîåø<…€€  ��€€ €  ‚  €²© ®òßèä�æ‚ç�èé‚ê„ëìëîèôFTÑýêçïíìêî/ …   ��� €  ‚  €‚ ²© ®òßè倿�ç�èé�ê„ë€ìëïåü˜!ƒìøåëïëà) ‚ƒ€ �   � �  �  €�²© ¯óßèåææ�ç�èé�ê‚ëƒìíëîá 1´ûòá÷ˇƒ   €€ €  ‚  €€ ²© ¯òàéåæ�ç€èé�ê‚ë…ìðçým bÝþä6€ƒ‚    €€ €  ‚  € ²© ¯óàéå€ç�èé€ê‚ëƒì ííìïé÷¿‚ ¨”ƒ‚‚     � � ‚  € ²ª ¯ôàéæçç€èéé€ê�ë‚ìƒíïëõ?€ ‡�‚   €  €€ €  ‚  € ²ª °óàêæç€èé�ê�ë�ì„íòèÿ”€‚ †�‚  €   € € ‚  € ²ª °ôáêæ€èé€ê�ë‚ì‚í ïïðîòß „ …‚  €  €� €  ‚  € ²ª °ôáêçèèé€ê�ë�ì‚í€ï îòéÿk„� „    € € ‚  € ²« ±õáêçèé€ê�ë�ì�íî€ïîòìúÄ €„‚  „  ‚  €� €  ‚  € ²« ±ôáëçè€ê�ë€ì�íî�ï ðïòëùI„ƒ  ‚  �€ €  € € ‚  € ³« ±õâëçéêê�ë€ì�íî€ï ððïóêÿ¦ƒ†   €€  €� €  �   ³¬ ±õâëèêê�ë€ì€íî�ï�ðññî*ƒ‡    €€  €  € € ‚   ³¬ ²öâëéêê€ë€ì€íî€ï�ð ïõêÿ„ƒ‰  �€€  €€ €  �   ³¬ ²öâíéê€ë€ì€íî€ï‚ð òïõÛ‚‹  �€€ €  € €  ‚   ´¬ ²õãíé€ë€ì€íî€ï�ð ñðôëÿa‚Ž  €�€ €€ € ‚  ´¬ ²öäíé€ë€ì€í€ï�ð ñðóíü» ‚�   €�€€  � € €  �  ´­ ²÷äíêëë€ì€íîïï�ð ññðõëÿh!‚� �€€€ €  €€ €  �  ´­ ³øäíêë€ì€íîïï�ð�ñ óòôß>€‘€�€�€ �  € € ‚  ´­ ³øäîêë€ì€í€ï€ð€ñ€ò óóù÷€‘€�€�€  � �€ €  �  ´­ ³øåîê€ì€í€ï€ð€ñ€ò óóôñòÿÇ4‘ �‚€€€  €  �€ €  � € ´­ ³øåîê€ìííîïï€ð€ñ€òó€ô ö÷îüö|� �‚€€€ €€ € � € ´­ ³øåîëìì€í€ï€ð€ñ€ò€ô õõôøòóÿÅ2� ‚‚€€€  € € ‚  ´­ ³øåîëììííîïï€ð€ñ€ò€ô‚õ øöðýõy� ƒ�€€€€€ €  �  ´­ ´ùåîëì€í€ïðð€ñ€òóôô�õ ööõöúóôÿÄ1�‚��€�  �€€ €  �  µ­ ´ùåîëì€íïï€ð€ñ€ò€ô€õ€ö ÷÷öúøôÿóq �‚��  €€€ �  µ­ ´øåïë€í€ï€ðññ€ò€ô€õ€ö�÷ øýúðòÿ}���€�   �€€€ € �  µ­ ´øæïë€íïï€ð€ñ€òôô€õ€ö ÷÷ö÷üùòùÿáj����€  €€€€ € ƒ µ­ ´øæïë€íïï€ð€ñòò€ô€õ‚ö úûòøÿê€����€ €€€€ € ƒ µ­ ´øæïëíí€ïðð€ñ€ò€ôõõ�ö øúóöÿó‘ ‘ ���€  €€€€ €  ‚ µ­ ´ùæïëíí€ïðð€ñ€òôô€õ€ö úóóÿú¤( ‘ €‚€�  €€€€ €  ‚ µ­ ´ùæïìííïï€ð€ñòò€ôõõ�ö òüÿ½; ’ €‚€€€  €€€€ €  ‚ µ­ ´ùæïìííïï€ð€ñòò€ôõõöö÷÷ÿÔS‘€‚€€€ €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô�õ ÷ôû–’€‚�€  €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô€õööõò&"„‘‚€�€€ €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô�õùïÿu€‚�‚€€€   €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô�õøòÿÍ €‚�ƒ€€€ €€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô€õöõúñÿO�‚Ž ‚€�€€ €   €€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô€õ öõùòÿ»€ƒŽƒ€�€  � €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€ò€ôõõ€öúòÿJ�ƒŒ ‚€�€ �  €€ €  ‚ µ­ ´ùæïìííïï€ð€ñòò€ô õõööõúñÿ»�ƒ‹ ' ��€€ � €€€ €  ‚ µ­ ´ùæïìíí€ïðð€ñòòóôô€õ€öùòÿG€…†  #/ Y�€�€  €  €€€ €  ‚ µ­ ´ùæïëíí€ïðð€ñ€òôô€õ ööõúñÿ¸�…€€ %,K3 ee ��€€ €  €€€ €  ‚ µ­ ´øæïëííîïï€ðññ€ò€ôõõ�öùòÿE‚…� "†²ˆEh�€€ € €€€ € ƒ µ­ ´øæïë€íïï€ð€ñòòóôô€õ ööõùñÿ¸�‚‚ 4r5soO' ‚€€ € € € ƒ µ­ ´øåïë€í€ïðð€ñ€ò€ô€õ€öúòÿN‚  €'c6€H €€ € €€ € �  µ­ ´øåïëìííîïï€ð€ñòòóôô€õ ööõùòÿÄ€€  ;…¢H"D�€ €€€ € �  µ­ ´ùåîëì€íïï€ð€ñ€òóôô€õ(ööõùñÿ\ LØp'0%< � � €€€ €  �  µ­ ´ùåîëì€í€ï€ð€ñ€ò€ô€õ%öõøòÿÏ QÉøÿˆ #‚ €€€ €  �  ´­ ³øåîëìì€íïï€ð€ñ€òó€ô€õ$öõùïÿiOÄýÿëÿŒ ‚ € €€€€ € ‚  ´­ ³øåîëìì€íîïï€ð€ñ€òó€ô�õ÷ôûÜ QÃþþñõòÿ‰€€   €€€ € ‚  ´­ ³øåîê€ì€í€ï€ð€ñ€òó€ô€õôùîÿ� WÇþþññøûîÿ‰‚‚€ €€€€ €  � € ´­ ³øäîê€ì€íîïï€ð�ñ€òó€ô�õ÷òù<mÉÿýððøùôøïÿ‡‰  €€€€ €  � € ´­ ³øäíêë€ì€í€ï€ð�ñ€òó�ô õõöóúàáÿûðñùø€õøîÿ‡‡€  €€€€ € ‚  ´­ ²÷äíêëë€ì€í€ï€ð�ñ�ò‚ôõõôùøìñøøôôõõôøîÿ„…€€ €   ��€€ € ‚  ´­ ²öäíêëë€ì€íî€ï€ð�ñ�òó�ôóõóóù÷ôô�õôøíÿ}‚‚ƒ   �€€€ €  �  ´­ ²öäíé€ë€ì€íî€ï€ð‚ñ�òó€ôóõõóóƒôó÷íÿx„„  €€€€€€ €  �  ´¬ ²õãíéê€ë€ì€íî€ï�ð�ñƒòóˆôó÷íÿs€†  €€�€€€ € ‚  ´¬ ²öâìéê€ë�ì€íî€ï�ð‚ñ†òó�ô óòñõëÿn‡‚ €€€€�€ €  �   ³¬ ²öâëéêê€ë�ì€íî€ï‚ðƒñŠòñõëÿh„„  ���€€€ € ‚   ³¬ ±õâëç€ê€ë�ì�í�ï‚ð„ñ‡òñõêÿq!€†�  �€€€�€ €  ‚   ³¬ ±ôâëçè€ê€ë�ì�íî€ïƒðŒñ ðôêÿf †‚  €€€€€€ €  �   ³« ±õáêçèé€ê€ë�ì�íî�ï„ðŠñ òïöÅ|J ‚ƒ �����€ � ‚  € ³« ±ôáêçèèé€ê€ë‚ì�í‚ï‰ðññƒð ïøÿøÓC„ ��€€€€ €  �  �  ²« °ôáêæ€èé€ê�ë�ì‚íƒï�ð ëéêøï)€€ ‚�€€�€ � ‚  € ²« °óáêæç€èé€ê�ë‚ì‚íî…ï‡ð€ï ññõäþz € ƒ€��€€ €  �   ²ª °ôàéæçç€èé€ê�ëƒìƒí‘ïíñéü˜ ‚�€�€€� €  ‚  € ²ª ¯ôà鿀ç�è�ê�ëƒì…í‹ï ííìðåýw €  ���€�€ €  �  € ²ª ¯óàéå�ç�èé€ê‚ëƒì“íìðèøJ ‚  €�€�€€ €  ‚  € ²ª ¯òßéåæ�ç�èé�ê‚ë…ìŽíìîèöÀ ‚€  €‚€�€� � ‚  €  ²© ¯óßè倿�ç�è‚êƒëˆìƒí‚ìëïåú[ ƒ  �€€��€ €  ‚  €� ²© ®òßèä�æ�ç�èé‚ê„ë�ìëîç÷º � ƒ  �‚��€ €  ‚  €�²© ®ñßèäå�æ�ç‚èé‚ê†ë‹ìêíèð> †  ���� � ƒ  €€²© ­òÞçäå傿�ç‚èéƒê�ëêîäû˜ ˆ  ���� �  ‚  €€²© ¬ñÞçã�å�æ‚çƒè…ê�ëêíÞ ˆ   ���� €  ‚  €²© «ïÝçãä�傿‚ç„è�êéíäø` ‹  ���� €  ƒ  €�²© «ïÜæãää‚傿‚ç…èé‹êéíäø¦ ‹ ��� �  ‚  €€²© ªðÜåâ�ä�åƒæƒçˆèééƒê ééèêÞ Ž  €��� �  ‚  €²© ªïÜåáâã€ä‚åƒæ„ç�èçëâõ` Ž  ‚�� �  ‚  €��²© ªïÛäáââã�ä‚儿†ç‡èçëãõ§ �  €�� �  ‚  €€€²© ªîÛäà�âã�ä‚å…æ�çèæèÝ  ‘  €�� �  ƒ  €€€²© ©îÛäàá‚â‚äƒå†æˆçæêáõb ‘  ‚� �  ƒ  ���²© ©îÚãà€á�âã‚ä„å�æåéáó§ –  €‚ �  ƒ  €€‚²© ©íÚãß�á‚âã‚ä†åŒæá% ”  �‚ �  ƒ  €�ƒ²© ¨íÚãßà‚áƒâƒä‰å‚æåéßöq –  ‚€ �  ƒ  €€ƒ²© ¨ìÙâ߀à‚áƒâ…ä‰åäçãí¼ ™   � ‚  ƒ  €€„²© §ìÙâÞ‚à‚á„â‡ä…åæÞì> —   � € ƒ  €�…²© ¦ëÙâÞß‚à„á„âã‰äãæßûŠ ›   ‚ € ƒ  €�†²© ¦ê×áހ߃àƒá‡â…äåâéw œ  ‚  „  €�‡²© ¦ê×àÜÞ�߃à„áŠâ áåÞî©  ›   € „  €�ˆ²© ¦é×àÜÝ݂߄à†á…â áåÛñƒ € ˜   „ € €�‰²©¦éÖßÜ�݃߄à‰á€âãàçÅ€ „ ‘   …  ��⩦éÖßÛ܂݃߅à‰á àâÞéÀC � ‚ Œ   „  ��‹²©¦èÖßÛÜ܃Ýރ߇à…áàâÞçí·_€  ‡ �   ƒ € ��Œ²©¦èÕÞۂ܃݅ß�à âÞÚéðÍ¥p>� „  ƒ  €�€�²©¤èÕÞÚۃ܄݆߉àßáãÜÙäîîíαšzX@0!�€ € ƒ € �€Ž²©¤çÔÞڀۃ܅݊߃à ßßâãÞÚÙÙãì€í îãÐÌÊÀÌ7 „  ƒ  €�‚�±ª¤çÔÝقۄ܆ݎßÞÞà€âÞÚÙÙØØÜààäÜñB €  „ € ���²©¤çÔÝÙÚڃۄ܉ÝÞ‰ß�Þß‚à ÞÜÚÞÕç? € ‡ € €��’±ª›æÓÜÙ�ÚƒÛ†Ü—Ý‚Ü ÝÞÝà×ê@ ‡ € €�ƒ• »§içÕÛ׃ڄۈܕÝ�ÜÚßÖé? † € €ƒ‚“!ßœ4àÑÞÛÙØ„Ù…Ú ÛÚÞÕè? ƒ € € �HîŠ ˆíÌרÜÛÛÜÜ€ÝÜ€Ý�ÞÝ݂ޕß�ÞÝà×ë< ��€ƒ‚˜¶èR€¢çàØÒ€ÔÓ€Ô€ÕÔ�Õ‚ÖÕÕ•Ö ÕÕÖÖÕÙÐâB€€€ƒ ƒ  –’ä° �f²Îåã„冿žçæéàô9¯D¸äÚ8�'…;€<„=Ÿ><@6™¿´¹¶·�¶µµ´µµƒ´³³œ²±»ßïè±5ƒ± „»«²¯¯°¯¯®€¯®„­¬ƒ«˜ª¨�ŒT „´·‚´ ‚€€¡…‡ ‚ € ¢  6?<€=ƒ<;;ƒ:€9„87766�5�322ˆ/.!… ‚€…�› ¾ÿôþƒú‚ùø�÷�ö�õ�ô�ó�ñ€ð‰ïîá·\� VŠª§„©„ª‡«�­…«¬¨±`?IEFƒE‚DCC€BAA€@„?€>=�<€;9987‚896H‚·ô­! GËíë‚íƒî€ïðð€ïððññ•òññððîòéþ@ ƒ‚€��XའFìâÙ‚ÚƒÛƒÜ݉މ߇ÞÝàØéG €ƒ‚‚ƒ€ € �  „ =îŒ ÉãÙåâ€ãƒä‚åææ†ç‘èƒçæêáôD €€ ‚ ‚  ‚ ƒ€€† ~å% VîÚåÞßß‚à�áââ„ã˜ä ããäããâåÜïF€€ƒ‚� € ƒ  ��ƒ,ìd ‹íÚáß‚á‚âãƒä†å’æ‚èçëâõH‚ƒ� ‚  ƒ  ��„ Ì› «îÙãà€á‚âã‚ä„å–æä�ß ÞÝáØëD€‚‚� ‚  ‚  €�‚²§ ¨íÛäàáá�âã‚äƒåˆæ‹çææåëõõ€öõùðÿO €�‚ �  ‚  €€�²ª ªïÛäà‚â‚ä‚å…æ‘çéäî½blkpruyu€# �‚ �  ‚  €€�±ª ªïÛäá€âã�ä‚儿‰ç…è"ççæêßø…'cNSMKGEAHH@:51-)%# ‚� �  ‚  €�€²© ªîÜåáââ�ä‚åƒæ…çŽèçëáø~W™†ŽŒŒ‹ŠŠ„ƒ‚€~|xvpsY €�� �  ‚  €€� ²© ªïÜåâã€ä‚åƒæƒç’èçëáølRŠw||{zy{zyxvusrrnuW&' €�� €  ƒ  €€²© «ïÜåã€ä�傿ƒç†èé�ê�éƒêéíâøb]“€ˆ……„„ƒ‚�€~|zxxrzX)' ��� €  ‚  €€²© «ïÜæãää�傿‚ç„è„êéê�íéé�êéíãùYa’�ˆ……„ƒ‚‚�€}|{yxr|W*' ��� �  ‚  €€²© «ðÞçã�傿‚çƒè‡êëéããåæíìê€ëêíäùRf”ƒŠ€‡†„„ƒ‚�€~}|{u~V-% €��� �  ‚  €€²© ­òÞçä€å�æ‚ç‚èé„ê‚ëêîþüøøæèîëêëêîåùKi”…Œ€‰ˆ‡…„ƒƒ�€}}v€T/# ��€ � ƒ  €�²© ­ñÞèäåå�æ�ç‚èé‚êƒëêíèôÄ1:[®÷óäìîêêíåöFo•ˆŒ‹€Š‰ˆ‡†„ƒ‚�y‚T2 ƒ€ €  ‚  €²© ®òßèä�æ‚ç�èé‚ê„ëìëîèõB UÎþëæïí€ë=x“ŠŽŒŒ‹‹Š‰‰ˆ†…ƒ‚��z„S6€�� €  ‚  €‚ ²© ®òßè倿�ç�èé�ê„ë€ì-ëïåý• �ŒX�éùåëïíÜ;“��Ž��ŒŒ‹ŠŠ‰‡…„‚ƒ|†S7€  €� �  �  €�²© ¯óßèåææ�ç�èé�ê‚ëƒìíëíãUŽ‚’v?9¯ûóàùÇ$Œ‘€�$�ŽŽ�Œ‹ŠŠ‰ˆ†„„~ˆT85 € €  ‚  €€ ²© ¯òàéåæ�ç€èé�ê‚ë…ì<ðåÿh’‡Ž‰’�b/cÚþæ2’�“’’‘‘�ŽŽ�Œ‹Š‰ˆ†…ˆR6#L]c. €€ €  ‚  € ²© ¯óàéå€ç�èé€ê‚ëƒìCííìïé÷¿sŽŠŽ��Žš„N%¥•-�“”““’’‘��Ž�Œ‹Š‰‡‡€ŠM, "OheZ[O � � ‚  € ²ª ¯ôàéæçç€èéé€ê�ë‚ìƒíïéø8;—‡��Ž‘’Ž–™tC )˜“•””€“ ’‘��ŽŒ‹Š‰‰‚ŒD!!QnmcaaY^5 €€ €  ‚  € ²ª °óàêæç€èé�ê�ë�ì„íóçÿ‘ Љ�Ž�‘‘’•“‘œ’f3)””˜”•€”$“’‘��Ž�‹‰‹…Š8 #Uttjhhda\[R" € € ‚  € ²ª °ôáêæ€èé€ê�ë‚ì‚íFïïðîñáZ•ˆ��‘‘’“”•–’–ž‡T!�••˜•–••”“’’����Œ‰„’1%Zz{qnolheb_X_9 � €  ‚  € ²ª °ôáêçèèé€ê�ë�ì‚í€ïFîòçÿf#•‡��‘‘“””••–˜—•˜£^K•œ“˜—–••””’‘’‘Œ‰’�d']�‚wtusolifd`\ZU% € € ‚  € ²« ±õáêçèé€ê�ë�ì�íî€ïGîòìúÃw�Œ�‘‘““”•––—–˜š˜”œ)1„£“–™—•””••‘Œ’–i- W‡‡}z|yuspmkgea^X^> � €  ‚  € ²« ±ôáëçè€ê�ë€ì�íî�ïðïóêýB<™‡��’’””•––——€˜2›˜žxi¡š“–˜˜•’�•›€9vŽ�€�|yvtqolifc^[YW( € € ‚  € ³« ±õâëçéêê�ë€ì�íî€ïððïóéÿ¢ŒŠ��‘’“”•–——˜˜™€š1›˜¢l?‹£š”“–œ�ˆR 'z�„‡„�}{wurpmjgd`]X^B � €  �   ³¬ ±õâëèêê�ë€ì€íî�ï�ðñðï)[—ˆ��’“”•––—˜˜™€š3›šœ˜£{'!\�ž ”zI <‡�ˆ‹‡„‚€~|yvspnkhdb][XY(€ € ‚   ³¬ ²öâëéêê€ë€ì€íî€ï�ðïõéÿ~$—†��‘’“”•–—˜™€š�›1š�˜¡–L68( .l˜Ž‹Œ‰ˆ…ƒ�}zwtroliec^\V_@ € €  �   ³¬ ²öâíéê€ë€ì€íî€ï‚ðóîöÛ u�‹��’“”•–—˜˜šš…›�™œ¤v-€% >p–›��Ž‹Šˆ†„‚€}{xurpmjfd_\ZYY$ € €  ‚   ´¬ ²õãíé€ë€ì€íî€ï�ðñðôéÿW>š…��‘’”•–—˜˜™š‚›�œ0›œ›˜£™XO��’�“�ŽŒ‹‰‡„‚€~|yvspmkgea\[V_= € € ‚  ´¬ ²öäíé€ë€ì€í€ï�ðñðóìþ·)ˆ†�Ž�’“”•–—˜˜šš€›„œ-›œ�š˜­Q~¦›”’••’‘��‹Šˆ…ƒ�|zwtqnlhdb]ZYYX €€ €  �  ´­ ²÷äíêëë€ì€íîïï�ðññðõêÿdŽŽˆ�’’“•–——˜šš€›œ›…œ.›Ÿ— a-“––™˜•”“‘�ŽŒŠ‰†ƒ‚€}zwtroliec^ZZV`: € €  �  ´­ ³øäíêë€ì€íîïï�ð�ñóòôß:g™‹�•”•–—˜™š€›‰œ)ž˜¦\ /“œ™––•”“’‘ŽŒ‹‰‡„‚€~{xurpljfc_[YYXZ�€ € ‚  ´­ ³øäîêë€ì€í€ï€ð€ñ€òóóøù~8“–�–—–˜˜™š�›‡œ›ž˜¤Z6€™%——–•”’‘Ž�‹‰ˆ…ƒ�~|yvspmjgd`\Y[W\;  € €  �  ´­ ³øåîê€ì€í€ï€ð€ñ€òóóôòñÿÈ-w �”™—˜šš€›ˆœ/›ž˜¥V<�™›˜—–•”“‘��ŒŠ‰…ƒ�}zvtpmkgd`]ZWY_R € €  � € ´­ ³øåîê€ìííîïï€ð€ñ€òó€ô ö÷îûøxH�™�€š€›„œ�›-œ›ž˜¥RB¡˜›˜˜–•”“’‘ŽŒŠˆ‡„�}zwtqnkhfb[X^X6€€ € � € ´­ ³øåîëìì€í€ï€ð€ñ€ò€ôõõôùòñÿÅ+�¤’—œ�›‚œ„›.ž˜¤OG¡˜œ˜˜––•“’�ŽŒŠ‰‡ƒ‚}zwtqnlic`b[; € € ‚  ´­ ³øåîëììííîïï€ð€ñ€ò€ô‚õ ø÷ïü÷u O¡�˜€›‚œ…›,ž˜¤MM¢˜œ˜——–•”’�ŽŒ‹‰‡„‚€}zwtrpjfjdB €€ €  �  ´­ ´ùåîëì€í€ïðð€ñ€òóôô�õ ööõöûóòÿÃ,!…¡€›‚œ€›+šš››šž™£JV¢˜œ™˜—–•““‘Ž�‹‰‡„‚€}{xvplpmL �€€ €  �  µ­ ´ùåîëì€íïï€ð€ñ€ò€ô€õ€ö ÷÷öúøóþõip›šƒœ0››šš™š›šž™£HZ£—œ™˜—–•”“‘��‹Š‡„‚€}{wrvuW$€€€ �  µ­ ´øåïë€í€ï€ðññ€ò€ô€õ€ö�÷ ùýûîðÿyŽ››��œ*››šš™š›šž™£E\£—œ™˜—–•”“‘��‹‰‡…‚}{x|b-‚€€€ € �  µ­ ´øæïë€íïï€ð€ñ€òôô€õ€ö÷÷ö÷ýùðùÿàb(q›šƒœ€›)šš››šž™£C]£—œ™˜—–•”“‘��‹‰‡…‚€}|q8 €€€ € ƒ µ­ ´øæïë€íïï€ð€ñòò€ô€õ‚öûûñ÷ÿêy<‰¡šœ››‚œ„›$ž™£A`£—œ™˜—–•““‘Ž�‹Š‡„‚�{�B€€€€ € ƒ µ­ ´øæïëíí€ïðð€ñ€ò€ôõõ�ö ùûóõÿô‹)~§œ—€›ƒœƒ›%œž™¢>c£—œ˜——–•”’‘Ž�‹‰‡„‚€|}d3€€€€ €  ‚ µ­ ´ùæïëíí€ïðð€ñ€òôô€õ€öúóòÿûŸ%m£œ�—›š››…œ››€œ#ž™¡=e¢—œ˜˜––””’�ŽŒ‹‰‡„‚€}z{l@ �€€€ €  ‚ µ­ ´ùæïìííïï€ð€ñòò€ôõõ�öòûÿ»6Z��Ž“š˜™š�›ˆœ)�™¡=h¢—›˜˜–•”“’�ŽŒŠ‰‡ƒ‚}zuvtR* €€€ €  ‚ µ­ ´ùæïìííïï€ð€ñòò€ôõõöö÷÷ÿÔNA����——–˜™šš€›ˆœ&�š ;j¢—›˜—–•”“’�ŽŒŠˆ‡ƒ�}zxsptc9 €€€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô�õ÷ôû•)~š‹‹”•”•–—™™š€›ˆœ(�šŸ:m¢—š——–•”’‘��‹Šˆ…ƒ�}zvtqlmkK& �€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô€õ€öð-[›ˆ‡Ž‘‘’”•–—˜˜šš€›œ›…œ)�šŸ9n¡–š—––•“’‘Ž�Œ‰ˆ…ƒ�~|xvspnjej[2 €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô�õùïÿvQ�ƒ��Ž‘’“”––—˜™š‚›„œ.›œ™�8p¡–™—–•”“’�ŽŒ‹‰‡„‚€~{xuspmjgbaaE" €€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô�õøñÿÇ!ŠˆŠŒŽ�‘“”•–——˜™š‚›4œœ›œœ››œ™Ÿ8u¡”™–•”““‘��ŒŠ‰†„‚€}{wurolifd_Y^W3 €€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô€õöõúðÿLK–ƒŽ�Ž�’“”•–—˜˜€š‡›-œ›™5n�–˜••”“‘‘��‹‰ˆ…ƒ�}zwtqolifc^\WY^J €€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô€õöõùñÿ·Ї‹ŒŽ�‘’“”•–—˜™�š„›#šœ•¤9~¢�˜••”’‘�ŽŒŠ‰‡…‚�~|yvtqnkhdb^€ZTa$€€ €  ‚ µ­ ´ùæïìííïï€ðññ€ò€ôõõ€öúñÿEK–„ŽŒ�‘‘“”•––—™˜™�š‚›.š›¡w" E‹�••”“‘���‹Šˆ‡„‚€~{xuspmjgea]YZX]F €€ €  ‚ µ­ ´ùæïìííïï€ð€ñòò€ôõõööõúðÿ¶Ї‹Œ��‘’“”•–€—˜™™…š-˜B&X™’”’‘�ŽŒ‹‰‡…ƒ�}zwtroljfc`\YYXY€€ €  ‚ µ­ ´ùæïìíí€ïðð€ñòòóôô€õ€öúñÿCJ–„ŽŒŽ�‘’“”••––—�˜€™,š–ŸA5 ]ƒgœ�“�Ž�‹Šˆ‡„‚€~|yvtqnlifc_[ZW^6€€€ €  ‚ µ­ ´ùæïëíí€ïðð€ñ€òôô€õööõúðÿ³‰†‹Œ�Ž�‘““”•‚–0™š˜˜š•Ÿw*,K6 kd&�‘‘��Œ‹‰ˆ…ƒ�}{xuspmkgea][YZQ€€€ €  ‚ µ­ ´øæïëííîïï€ðññ€ò€ôõõ�öúñÿ@H•ƒŒŒ�Ž‘‘’“”€•7–™–’––™“ \%ˆµ�Im s˜‹�Œ‹Šˆ…„‚€~|zwtqoljfd`\ZW]"€€ € ƒ µ­ ´øæïë€íïï€ð€ñòòóôô€õMööõúñÿµ„‡Š‹Œ�Ž�‘’““•˜•Ž– ˜•˜“�[;u5usT'c™‰ŽŠŠ‡††ƒ€}{xvspnlhec^\W]A€ € ƒ µ­ ´øåïë€í€ïðð€ñ€ò€ô€õ€öDúðÿG8•‚ŒŠŒ�Ž�‘’•“�”¥‘[…™–“�h,f8‚†Me˜‰�Šˆ‹†€ƒ�~|zwtromjgda][YV€€ € �  µ­ ´øåïëìííîïï€ð€ñòòóôô€õDööõùòÿà w‰‡‹‹Œ��’�‹’¢�D% Zž�•–ˆ#C‰¦H(DŠŒ‹‹ˆ‹v{‹}~~zwusqnlifc_]W_-€€€€ € �  µ­ ´ùåîëì€íïï€ð€ñ€òóôô€õFööõùïÿV)’‚ЉŒŽ‹‡�ŸŠBFÖlK¢Œ—�›b)3(:f“ˆŒŠ†‰(_„€xzwtromjgeb_Y]F €€€ €  �  µ­ ´ùåîëì€í€ï€ð€ñ€ò€ô€õDöõøòÿÐgЇŒ‡„Ž›„?KÆ÷ÿ‚L¡‹”“�—e($&g“‰‹‰‡‰z& 1n‚vstpnkifda]YX€€€ €  �  ´­ ³øåîëìì€íïï€ð€ñ€òó€ô€õ>öõùîÿe‹}‚Œ˜|6HÁþÿèÿˆMŸŠ“�‘�—‰mdhˆ“ˆ‹ˆ‰…‰r-Gvxoomjgeb_Y^.�€€€ € ‚  ´­ ³øåîëìì€íîïï€ð€ñ€òó€ô�õA÷ôúßU“�u, KÀþþðôòÿ…O�‰’ŽŽ�ŠŽ•“•‹‡Šˆˆ‡�‰l. #Zvniifca[]F €€€ € ‚  ´­ ³øåîê€ì€í€ï€ð€ñ€òó€ô€õ<ôùíÿ‰ g QÆÿýððùüíÿ†P›‡�Œ�ŒŽŒˆˆ†‰Šˆ‡„…€ˆg-$ 2foddc^[W€€€€ €  � € ´­ ³øäîê€ì€íîïï€ð�ñ€òó€ô�õ9÷òø=fÉÿýïðùùôùîÿ„P™†ŽŠ‹‹Š‹Œ‹Š‰‡†„ƒ„~ˆc.%Gie^Z^,�€€€ €  � € ´­ ³øäíêë€ì€í€ï€ð�ñ€òó�ô õõöóúàâÿûïñùù€õ øíÿ„Q˜„ŒŠŠ€‰ˆ‡††…„ƒ‚‚|‡^/$$Wa^F €€€€ € ‚  ´­ ²÷äíêëë€ì€í€ï€ð�ñ�ò‚ô8õöôùøëñøøôôõõôøíÿƒR•‚Ї‰ˆˆ‡‡†…„ƒ‚�€€z…X1# 7T��€€ € ‚  ´­ ²öäíêëë€ì€íî€ï€ð�ñ�òó‚ôõóóú÷ôô�õôøíÿ~S“€‰††……„„ƒƒ‚�€€~xƒS4€�€€€ €  �  ´­ ²öäíé€ë€ì€íî€ï€ð‚ñ�òó€ôóõõóóƒô ó÷ìÿyS‘~†„„€ƒ‚‚��€~|}w€M3€€€€ €  �  ´¬ ²õãíéê€ë€ì€íî€ï�ð�ñƒòóˆôó÷íÿtT�|„€‚€�€€~~}|zzt~I1��€€€ € ‚  ´¬ ²öâìéê€ë�ì€íî€ï�ð‚ñ†òó�ô óòñõëÿpV�{‚€€€~}|{zwxr{F-€€€€�€ €  �   ³¬ ²öâëéêê€ë�ì€íî€ï‚ðƒñŠòñõëÿkN„w��~}}|{zyxwuvq{A*���€€€ € ‚   ³¬ ±õâëç€ê€ë�ì�í�ï‚ð„ñ‡ò ñõêÿoU•z{{|€{zzxwvvussmt:"�€€€�€ €  ‚   ³¬ ±ôâëçè€ê€ë�ì�íî€ïƒðŒñ ðôêÿcPe€yy€xwvvutsrqrnx8€€€€€€ €  �   ³« ±õáêçèé€ê€ë�ì�íî�ï„ðŠñòïöÅwG p€vuutssrqpok_Y"€����€ � ‚  € ³« ±ôáêçèèé€ê€ë‚ì�í‚ï‰ðññƒðïøÿøÕ;%|pusrrqpopkr9 ��€€€€ €  �  �  ²« °ôáêæ€èé€ê�ë�ì‚íƒï�ðìèèøð,Uxnrpoonmmjj‚�€€�€ � ‚  € ²« °óáêæç€èé€ê�ë‚ì‚íî…ï‡ð€ïññöâÿu5}hpmmlklhnO „€��€€ €  �   ²ª °ôàéæçç€èé€ê�ëƒìƒí‘ïíñèÿ’*yfmkjjhidl= �€�€€� €  ‚  € ²ª ¯ôà鿀ç�è�ê�ëƒì…í‹ïííìñäÿq/vckhggefak8€��€�€ €  �  € ²ª ¯óàéå�ç�èé€ê‚ëƒì“íìðçùH=qag€e cd_f=€�€�€€ €  ‚  € ²ª ¯òßéåæ�ç�èé�ê‚ë…ìŽíìîç÷¾^€dcbb`_\`L €‚€�€� � ‚  €  ²© ¯óßè倿�ç�è‚êƒëˆìƒí‚ìëïäýVm[c__^]]\\X\ �€€��€ €  ‚  €� ²© ®òßèä�æ�ç�èé‚ê„ë�ìëîç÷¹ W€] \\[[ZYZW]E�‚��€ €  ‚  €�²© ®ñßèäå�æ�ç‚èé‚ê†ë‹ìêîæó9,eU\…Y ZW]!���� � ƒ  €€²© ­òÞçäå傿�ç‚èéƒê�ëêîäý” _UZ†Y ZX\I���� �  ‚  €€²© ¬ñÞçã�å�æ‚çƒè…ê�ëêíÞB^WZ‡YZW^&���� €  ‚  €²© «ïÝçãä�傿‚ç„è�êéíãú[dT[ˆYZX[M���� €  ƒ  €�²© «ïÜæãää‚傿‚ç…èé‹êéíäø¤XW‹Y ZV_.��� �  ‚  €€²© ªðÜåâ�ä�åƒæƒçˆèééƒê ééèéß9`VZ�YW ��� �  ‚  €²© ªïÜåáâã€ä‚åƒæ„ç�èçëáø\cU[ŒYZW]@‚�� �  ‚  €��²© ªïÛäáââã�ä‚儿†ç‡èçëâö¤WXZŽY ZW]!�� �  ‚  €€€²© ªîÛäà�âã�ä‚å…æ�çèççß8`VZ�YX[N €�� �  ƒ  €€€²© ©îÛäàá‚â‚äƒå†æˆçæêà÷^cT[�YZW_2‚� �  ƒ  ���²© ©îÚãà€á�âã‚ä„å�æåéáô¥ WXZ“YXY€‚ �  ƒ  €€‚²© ©íÚãß�á‚âã‚ä†å‹æåâ#7`V[’YZW]B�‚ �  ƒ  €�ƒ²© ¨íÚãßà‚áƒâƒä‰å‚æåéÞølcT[”YZW^# �€ �  ƒ  €€ƒ²© ¨ìÙâ߀à‚áƒâ…ä‰åäçâîºS™Y[N € ‚  ƒ  €€„²© §ìÙâÞ‚à‚á„â‡ä…åçÜî9.cU[–Y ZW_1  � € ƒ  €�…²© ¦ëÙâÞß‚à„á„âã‰äãçÞý‰ZWZšYW � € ƒ  €�†²© ¦ê×áހ߃àƒá‡â…äåâévSZ™YZV^3 �  „  €�‡²© ¦ê×àÜÞ�߃à„áŠâ áåÞï¨=A_WZ—YZW^6 € „  €�ˆ²© ¦é×àÜÝ݂߄à†á…â áåÚó x41]Y\Z–Y ZW^(% „ € €�‰²©¦éÖßÜ�݃߄à‰á€â ãàçÆ$^b\UTUXZ€[ZZ‹Y‚ZXV9^Q …  ��⩦éÖßÛ܂݃߅à‰áàâÞê¾B'ObdaZUTTUUWXX€Y‚Z�YX€WXZ^aM ƒ  ��‹²©¦èÖßÛÜ܃Ýރ߇à…áàâÞèî´[ ,@Saecca^[ZZY�XW€X YZ\]^_\RC'  ƒ € ��Œ²©¦èÕÞۂ܃݅ߌàßâÝÚëòË nC+%39ALSTVWY€[\[ZXWSMG?-  ƒ  €�€�²©¤èÕÞÚۃ܄݆߉à'ßâãÛÙåððíˬ•x[G=2.,)'  � € �€Ž²©¤çÔÞڀۃ܅݊߃à$ßßâãÞÙØÚäíðîííßÍÉǼÇ4   ‚  €�‚�±ª¤çÔÝقۄ܆ݎßÞÞà€âÝÙ€ØÙÝáâæÞóD   ƒ € ���²©¤çÔÝÙÚڃۄ܉ÝÞ‰ß�ÞàááààßÞÛÚÝÔæ> Š € €��’±ª›æÓÜÙ�ÚƒÛ†Ü—Ý‚Ü ÝÞÝáØë@ † € €�ƒ• »§içÕÛ׃ڄۈܕÝ�ÜÚßÖé? † € €ƒ‚“!ßœ4àÑÞÛÙØ„Ù…Ú ÛÚÞÕè? ƒ € € �HîŠ ˆíÌרÜÛÛÜÜ€ÝÜ€Ý�ÞÝ݂ޕß�ÞÝà×ë< ��€ƒ‚˜¶èR€¢çàØÒ€ÔÓ€Ô€ÕÔ�Õ‚ÖÕÕ•Ö ÕÕÖÖÕÙÐâB€€€ƒ ƒ  –’ä° �f²Îåã„冿žçæéàô9¯D¸äÚ8�'…;€<„=Ÿ><@6™¿´¹¶·�¶µµ´µµƒ´³³œ²±»ßïè±5ƒ± „»«²¯¯°¯¯®€¯®„­¬ƒ«˜ª¨�ŒT „´·‚´ ‚€€¡…‡ ‚ € ¢  6?<€=ƒ<;;ƒ:€9„87766�5�322ˆ/.!… ‚€…�› ¾ÿôþƒú‚ùø�÷�ö�õ�ô�ó�ñ€ð‰ïîá·\� VŠª§„©„ª‡«�­…«¬¨±`?IEFƒE‚DCC€BAA€@„?€>=�<€;9987‚896H‚·ô­! GËíë‚íƒî€ïðð€ïððññ•òññððîòéþ@ ƒ‚€��XའFìâÙ‚ÚƒÛƒÜ݉މ߇ÞÝàØéG €ƒ‚‚ƒ€ € �  „ =îŒ ÉãÙåâ€ãƒä‚åææ†ç‘èƒçæêáôD €€ ‚ ‚  ‚ ƒ€€† ~å% VîÚåÞßß‚à�áââ„ã˜ä‚ãáåÜïF€€ƒ‚� € ƒ  ��ƒ,ìd ‹íÚáß‚á‚âãƒä†å’æ‚è çëâõH‚ƒ� ‚  ƒ  ��„ Ì› «îÙãà€á‚âã‚ä„å–æäàà€ßÝáÙìE€€€‚� ‚  ‚  €�‚²§ ¨íÛäàáá�âã‚äƒåˆæ‹çææåëö�õ ô÷îÿL€€�‚ �  ‚  €€�²ª ªïÛäà‚â‚ä‚å…æ‘çéäî½[egmrv{y„' ‚ €�‚ �  ‚  €€�±ª ªïÛäá€âã�ä‚儿‰ç…è ççæêáöŠ‚‚€‚� �  ‚  €�€²© ªîÜåáââ�ä‚åƒæ…çŽèçëâö~� ‚  €€�� �  ‚  €€� ²© ªïÜåâã€ä‚åƒæƒç’èçëá÷i ‚ ‚ ��� €  ƒ  €€²© «ïÜåã€ä�傿ƒç†èé�ê�éƒê éíâ÷]  € ‚ �  ‚�� €  ‚  €€²© «ïÜæãää�傿‚ç„è„êéê�íéé�êéíãùS ‚ ƒ €  ���� �  ‚  €€²© «ðÞçã�傿‚çƒè‡êëéãääæîìê€ëéíäùJ ‚  ‚ � €��� �  ‚  €€²© ­òÞçä€å�æ‚ç‚èé„ê‚ëêïûùú÷æèîëêëêîåúC ƒ € ‚  ���€ � ƒ  €�²© ­ñÞèäåå�æ�ç‚èé‚êƒëêíèõÂ7>V±øòäìíêêîåø< „ € �  ��‚€ €  ‚  €²© ®òßèä�æ‚ç�èé‚ê„ëìëîèôFSÒýêçïíìêî. …  ‚ ‚�� €  ‚  €‚ ²© ®òßè倿�ç�èé�ê„ë€ìëïåü˜ƒí÷åëïëà( €„ €  �   � �  �  €�²© ¯óßèåææ�ç�èé�ê‚ëƒìíëîá  0µúòâ÷Ì …ƒ €   € €€ €  ‚  €€ ²© ¯òàéåæ�ç€èé�ê‚ë…ìðçým  aÝþä7 …‚ €  € € €  ‚  € ²© ¯óàéå€ç�èé€ê‚ëƒì ííìïé÷¿ €  ¨” ‡‚ € €  � � ‚  € ²ª ¯ôàéæçç€èéé€ê�ë‚ìƒíïëô@ ‚ ‹� €€€ €  ‚  € ²ª °óàêæç€èé�ê�ë�ì„íòèÿ• † €‡€   € €€ € ‚  € ²ª °ôáêæ€èé€ê�ë‚ì‚í ïïðîòß … ‚‡  €€€� €  ‚  € ²ª °ôáêçèèé€ê�ë�ì‚í€ïîòéÿl „ƒ �„   € � € € ‚  € ²« ±õáêçèé€ê�ë�ì�íî€ïîòìúÅ ……  �‚  €€€� €  ‚  € ²« ±ôáëçè€ê�ë€ì�íî�ï ðïòìùJ ƒ†  €     � � €€ € ‚  € ³« ±õâëçéêê�ë€ì�íî€ï ððïóêÿ¦ „‡     € ��� €  �   ³¬ ±õâëèêê�ë€ì€íî�ï�ðññî* ‚Š       € €  €� € € ‚   ³¬ ²öâëéêê€ë€ì€íî€ï�ðïõêÿ„ ‚‹   �  € ��€ €  �   ³¬ ²öâíéê€ë€ì€íî€ï‚ðòïõÛ ƒŒ   � € € € €  ‚   ´¬ ²õãíé€ë€ì€íî€ï�ð ñðôëÿb ‚�    �€  €  ��€ € ‚  ´¬ ²öäíé€ë€ì€í€ï�ðñðóíü¼ „�  ƒ�  €  €‚ € €  �  ´­ ²÷äíêëë€ì€íîïï�ð ññðõëÿh �’  €‚� € ‚�€ €  �  ´­ ³øäíêë€ì€íîïï�ð�ñ óòôß>  ”  �ƒ€ € ƒ € € ‚  ´­ ³øäîêë€ì€í€ï€ð€ñ€ò óóù÷ ” ‚��  €  ƒ€€ €  �  ´­ ³øåîê€ì€í€ï€ð€ñ€ò óóôñòÿÈ4 ‘ �ƒ€  € ƒ�€ €  � € ´­ ³øåîê€ìííîïï€ð€ñ€òó€ô ö÷îüö| � ƒ‚� €  €€€€ € � € ´­ ³øåîëìì€í€ï€ð€ñ€ò€ô õõôøòóÿÅ2 ‘ ƒ‚� €  € € € ‚  ´­ ³øåîëììííîïï€ð€ñ€ò€ô‚õ øöðýõy�  „ƒ€ €  € €€ €  �  ´­ ´ùåîëì€í€ïðð€ñ€òóôô�õ ööõöúóôÿÄ2 ‘  …�� €  €€ €  �  µ­ ´ùåîëì€íïï€ð€ñ€ò€ô€õ€ö ÷÷öúøôÿór �  …�� €   €€€ �  µ­ ´øåïë€í€ï€ðññ€ò€ô€õ€ö�÷ øýúðòÿ~ �  „�� € €  �€€€ € �  µ­ ´øæïë€íïï€ð€ñ€òôô€õ€ö ÷÷ö÷üùòùÿáj �  „�� €   €€€€ € ƒ µ­ ´øæïë€íïï€ð€ñòò€ô€õ‚ö úûòøÿë€ �  „�� � €€€€ € ƒ µ­ ´øæïëíí€ïðð€ñ€ò€ôõõ�ö øúóöÿó’ �  ƒƒ€ �  €€€€ €  ‚ µ­ ´ùæïëíí€ïðð€ñ€òôô€õ€ö úóóÿú¤' �  ƒƒ€ € €€€€ €  ‚ µ­ ´ùæïìííïï€ð€ñòò€ôõõ�ö òüÿ½; ‘  ƒ‚� € €   €€€€ €  ‚ µ­ ´ùæïìííïï€ð€ñòò€ôõõöö÷÷ÿÔS ”  ‚ƒ� €  €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô�õ ÷ôû–  “  ƒ‚€  €   €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô€õ€öñ' €“  �‚�  €  €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô�õùïÿu  ‚‘  €ƒ€  €   €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô�õøóÿÍ ƒ‘  €ƒ� € €€€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô€õ öõúñÿO  ƒ� ƒ�  € ƒ €€ €  ‚ µ­ ´ùæïìííïï€ðññ€òôô€õ öõùòÿ¼ ƒ�   ƒ�  €  €‚€€ €  ‚ µ­ ´ùæïìííïï€ðññ€ò€ôõõ€öúòÿJ …Ž „‚ € ‚ €€ €  ‚ µ­ ´ùæïìííïï€ð€ñòò€ô õõööõúñÿ» „�) ‚�  € ‚€€€ €  ‚ µ­ ´ùæïìíí€ïðð€ñòòóôô€õ€öùòÿG †‰ '3]… �� € €  �€€€ €  ‚ µ­ ´ùæïëíí€ïðð€ñ€òôô€õ ööõúñÿ¸  …‡ (,O7 hk ‚�  €  €� €€€ €  ‚ µ­ ´øæïëííîïï€ðññ€ò€ôõõ�öùòÿE  †� "#Œ¸‘Kp ‚ � �€€€ € ƒ µ­ ´øæïë€íïï€ð€ñòòóôô€õ ööõùòÿ¹ € … � 8z5wwV+ € € € €  €� € € ƒ µ­ ´øåïë€í€ïðð€ñ€ò€ô€õ€ö úòÿO  ‚ � *l8ƒ‰O! ‚ ‚  €€€ € �  µ­ ´øåïëìííîïï€ð€ñòòóôô€õ ööõùòÿÄ �     @�¨K$K� €€€€€ € �  µ­ ´ùåîëì€íïï€ð€ñ€òóôô€õ(ööõùñÿ\    LØp   (2&B €   €  € €€€ €  �  µ­ ´ùåîëì€í€ï€ð€ñ€ò€ô€õ&öõøòÿÏ  QÉøÿˆ "%  �   €€€€ €  �  ´­ ³øåîëìì€íïï€ð€ñ€òó€ô€õöõùïÿj  OÄýÿëÿ� €   €  €€€€€€ € ‚  ´­ ³øåîëìì€íîïï€ð€ñ€òó€ô�õ÷ôûÜ QÃýþñõòÿŠ €   € €   € €€€ € ‚  ´­ ³øåîê€ì€í€ï€ð€ñ€òó€ô€õôùïÿŽ WÈþþññøûîÿ‰  € �  €€€€€ €  � € ´­ ³øäîê€ì€íîïï€ð�ñ€òó€ô�õ÷òù<mÉÿýððøùôøïÿˆ „ € €   €€€ €  � € ´­ ³øäíêë€ì€í€ï€ð�ñ€òó�ô õõöóúàâÿûðñùø€õøîÿ† † € €   €€€€ € ‚  ´­ ²÷äíêëë€ì€í€ï€ð�ñ�ò‚ôõõôùøìñøøôôõõôøîÿ„ ƒ � ‚  �€€�€€ € ‚  ´­ ²öäíêëë€ì€íî€ï€ð�ñ�òó�ôóõóóù÷ôô�õ ôøíÿ~  € ƒ  €  �€€€ €  �  ´­ ²öäíé€ë€ì€íî€ï€ð‚ñ�òó€ôóõõóóƒôó÷íÿx ‚ …  €€€€€€ €  �  ´¬ ²õãíéê€ë€ì€íî€ï�ð�ñƒòóˆôó÷íÿr ˆ ‚ €�€€€ € ‚  ´¬ ²öâìéê€ë�ì€íî€ï�ð‚ñ†òó�ô óòñõëÿm † ‚ €€€€�€ €  �   ³¬ ²öâëéêê€ë�ì€íî€ï‚ðƒñŠòñõëÿh „ ƒ € ���€€€ € ‚   ³¬ ±õâëç€ê€ë�ì�í�ï‚ð„ñ‡ò ñõêÿq ‡ �  �€€€�€ €  ‚   ³¬ ±ôâëçè€ê€ë�ì�íî€ïƒðŒñ ðôêÿf ƒ ‚   €€€€€€ €  �   ³« ±õáêçèé€ê€ë�ì�íî�ï„ðŠñòïöÅ|I � „ �����€ � ‚  € ³« ±ôáêçèèé€ê€ë‚ì�í‚ï‰ðññƒð ïøÿùÔD  � €  ��€€€€ €  �  �  ²« °ôáêæ€èé€ê�ë�ì‚íƒï�ð ëéê÷ï(  € ‚�€€�€ � ‚  € ²« °óáêæç€èé€ê�ë‚ì‚íî…ï‡ð€ï ññõäþ{€ƒ€��€€ €  �   ²ª °ôàéæçç€èé€ê�ëƒìƒí‘ïíñéü™ ��€�€€� €  ‚  € ²ª ¯ôà鿀ç�è�ê�ëƒì…í‹ï ííìðåüw‚‚��€�€ €  �  € ²ª ¯óàéå�ç�èé€ê‚ëƒì“í ìðèøJ ‚ €�€�€€ €  ‚  € ²ª ¯òßéåæ�ç�èé�ê‚ë…ìŽíìîèõÁˆ‚€�€� � ‚  €  ²© ¯óßè倿�ç�è‚êƒëˆìƒí‚ìëïæú\ � �€€��€ €  ‚  €� ²© ®òßèä�æ�ç�èé‚ê„ë�ìëîè÷»€€‚�‚��€ €  ‚  €�²© ®ñßèäå�æ�ç‚èé‚ê†ë‹ì êíèð?† ���� � ƒ  €€²© ­òÞçäå傿�ç‚èéƒê�ëêîäû˜Š���� �  ‚  €€²© ¬ñÞçã�å�æ‚çƒè…ê�ëêíÞ‰ ���� €  ‚  €²© «ïÝçãä�傿‚ç„è�êéíä÷`Œ���� €  ƒ  €�²© «ïÜæãää‚傿‚ç…èé‹êéí並ހ��� �  ‚  €€²© ªðÜåâ�ä�åƒæƒçˆèééƒê ééèêÝ�€��� �  ‚  €²© ªïÜåáâã€ä‚åƒæ„ç�èçëâöa�‚�� �  ‚  €��²© ªïÛäáââã�ä‚儿†ç‡èçëãõ§’ €�� �  ‚  €€€²© ªîÛäà�âã�ä‚å…æ�çèæèÝ!”€�� �  ƒ  €€€²© ©îÛäàá‚â‚äƒå†æˆçæêáõc”‚� �  ƒ  ���²© ©îÚãà€á�âã‚ä„å�æåéáó¨˜ €‚ �  ƒ  €€‚²© ©íÚãß�á‚âã‚ä†åŒæà&˜�‚ �  ƒ  €�ƒ²© ¨íÚãßà‚áƒâƒä‰å‚æåéàõq˜‚€ �  ƒ  €€ƒ²© ¨ìÙâ߀à‚áƒâ…ä‰åäçãí¼› � ‚  ƒ  €€„²© §ìÙâÞ‚à‚á„â‡ä…åæÞì>š � € ƒ  €�…²© ¦ëÙâÞß‚à„á„âã‰äãæßûŠœ  ‚ € ƒ  €�†²© ¦ê×áހ߃àƒá‡â…äåâéwŸ ‚  „  €�‡²© ¦ê×àÜÞ�߃à„áŠâáåÞ € „  €�ˆ²© ¦é×àÜÝ݂߄à†á…â áåÜñ„ €œ „ € €�‰²©¦éÖßÜ�݃߄à‰á€âãàçÅ‚ƒ” …  ��⩦éÖßÛ܂݃߅à‰á àâÞéÀC› „  ��‹²©¦èÖßÛÜ܃Ýރ߇à†áâÞçì·`��€Ž ƒ € ��Œ²©¦èÕÞۂ܃݅ß�à âÞÛéïΦq=” ƒ  €�€�²©¤èÕÞÚۃ܄݆߉àßáãÜÙäíîíα›{X?.€€ € ƒ € �€Ž²©¤çÔÞڀۃ܅݊߃à ßßâãßÚÙÚâë€í îãÑÌËÀÌ8 ƒ †  €�‚�±ª¤çÔÝقۄ܆ݎßÞÞà€âÞÚÙÙØØÛààäÜñB € ‡ € ���²©¤çÔÝÙÚڃۄ܉ÝÞ‰ß�Þß‚à ÞÜÛÞÕç? € ‡ € €��’±ª›æÓÜÙ�ڃۆܗ݂܀Ýà×ê@ ‡ € €�ƒ• »§içÕÛ׃ڄۈܕÝ�ÜÚßÖé? † € €ƒ‚“!ßœ4àÑÞÛÙØ„Ù…Ú ÛÚÞÕè? ƒ € € �HîŠ ˆíÌרÜÛÛÜÜ€ÝÜ€Ý�ÞÝ݂ޕß�ÞÝà×ë< ��€ƒ‚˜¶èR€¢çàØÒ€ÔÓ€Ô€ÕÔ�Õ‚ÖÕÕ•Ö ÕÕÖÖÕÙÐâB€€€ƒ ƒ  –’ä° �f²Îåã„冿žçæéàô9¯D¸äÚ8�'…;€<„=Ÿ><@6™¿´¹¶·�¶µµ´µµƒ´³³œ²±»ßïè±5ƒ± „»«²¯¯°¯¯®€¯®„­¬ƒ«˜ª¨�ŒT „´·t8mk@¿ÿøÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿóÓ‚0:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<9@0Îÿøÿüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýúóü÷š0¬æþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýøíïèÿá2uÿþòÞíïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïðíòöõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõôöëè÷ûâîî#rÿåçýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþöæÿá÷Ã/üäôÿýÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãüäÿ^¦ÿåÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿ÷íðÿ¾âòúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿóðòá2ÿÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿìêòó<ÿìÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ÷÷úý>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿïÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿùùúþ=ÿîÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøøúþ>ÿïÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿùùúþ9ÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿðñüý*÷áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿììüûÓüôÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿñûêõ~ÿßÿýýüýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýþûüÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýýþÿñîüôãÖûàþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿòæÿëÿ¼.çÿèíåðññññññññññññññññññññññññññññññññññññññññññññññññññññòïôùøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøø÷ùðïðîÿöæÿQ!¶ÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøùñìûýìçÿ 6„°½¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾½À¹íÿüÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿíõþÿ¢¿ÿ÷ÿýþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþýûöä½Mic08˜‚‰PNG  IHDR\r¨f$iCCPICC Profile8…UßoÛT>‰oR¤? XG‡ŠÅ¯US[¹­ÆI“¥íJ¥éØ*$ä:7‰©Û鶪O{�7ü@ÙH§kk?ì<Ê»øÎí¾kktüqó�Ý‹mÇ6°nÆ¶ÂøØ¯±-ümR;`zŠ–¡Êðv x#=\Ó% ëoàYÐÚRÚ±£¥êù�Ð#&Á?È>ÌÒ¹áЪþ¢þ©n¨_¨Ôß;j„;¦$}*}+ý(}'}/ýLŠtYº"ý$]•¾‘.9»ï½Ÿ%Ø{¯_aÝŠ]hÕkŸ5'SNÊ{äå”ü¼ü²<°¹_“§ä½ðì öÍ ý½t ³jMµ{-ñ4%�ׯTÅ„«tYÛŸ“¦R6ÈÆØô#§v\œå–Šx:žŠ'H‰ï‹OÄÇâ3·ž¼ø^ø&°¦õþ“0::àm,L%È3â�:qVEô t›ÐÍ]~ߢI«vÖ6ÊWÙ¯ª¯) |ʸ2]ÕG‡Í4Ïå(6w¸½Â‹£$¾ƒ"ŽèAÞû¾EvÝ mî[D‡ÿÂ;ëVh[¨}íõ¿Ú†ðN|æ3¢‹õº½âç£Hä‘S:°ßûéKâÝt·Ñx€÷UÏ'D;7ÿ®7;_"ÿÑeó?Yqxl+@IDATx콸%Gu.Z'ì“&ÏhFYå,„BBÙÂ`lL4øúüüÞ÷¾gã¶Œ�–m²¹¶yïÚ¾Ã5áa®Ø\Ìþ(”�4Š£0£ÑÄ“ö ïÿWת½ºNUwï}Ι êœÞµj媮U]]�úÜOÓOl zè¡#“““qÌÏÏǨÆåœlŸRœâMáR²1.%ãâr¬ƒå¹¹¹:àb333�¶LÀNèÝê·û‘Û×°�ckœúsþ”ñi×¹ÀV4îØ–V§äR¸œŽoŸÓ£øX..“/…Syæá `Ý#ÌÁœƒÀ_cûlµ©¿–ã§ ?Ñ-Ð××çtë¦!R2)\NgŽ—ø^R,—ÒóÄvúû«Ã%–ŒU,wy^‰í;ؾˆí$l•©§Ö\±bÅé¨ì¯@ó¹ÈÇÈy8àÕØjõå1n¼J¯Änä»áM˜:(QuG/ë´ò¢ƒN_wÝuk,�°Òc|®\wd´rMu7á«ã©£Wù]%[Ec]«èU4ÛN5ðüôôôž‰‰‰'üñ}W_}õÄg?ûÙc¶nÝzd$×Fù2lœ$SmÀ©~þÿŽày p§æ‚(‡7zJ`·üV¸©lS>«û©7éhS×_ýpU]›è±òMù«‚Oõ5ÑUdzz��Uº{¥iÝ{É÷îÝûã~ðƒñ‹_|>äítåã(ÿ66¥Ôh@à_Œ ú¯�<;L9|Éš)t˯¢Mäšð¨¾Ÿ”<Õ!› Ú>)y¥¥ò¦üuAFÝMtUñTÑêô×ùW¥;GËáSíØ nÏž=·ýÖoýÖäM7Ýt®‘¿ð/a›6¸ú)ûÊ•+9r0ø4°0�Ÿ9úè£ï½ð þóŸ?wæ™g®ß&T¬4 (¿5Xw˯ºz•Sù8?çn± ÊK½ªÌNˆvk_rÉ%­ÆjU8EKár&R—’oŠËÙÉác½q9–‹éq9UŸXGåyÄßã\pÁÄ_ÿ‰'žxØèèèqÐŒ®ö_ýÕ_}û“Ÿüä îc€ÿ/S®ÔÿÌo±öË¿üËW¿ç=ï9ƒÀz«(†­LL³å¦|V†p¯r±žÜšDÌw0–— sM�}öÙKz  í‚âSyŠ7…‹eS<)\,—c™ºr,_·b}K=˜ÓŸµk×nûô§?}ïqÇ÷ëßW¾ò•¯_vÙe?opoüß´\:b+’9‚ÿ·�ý�Nv|êSŸºó¤“NºÐòŰòÇø¸Ü”ÏÊõ"cåŸÊÁnëQ×uÆHvêÏxFâŽñ6šŠ[™:}u¼Måc¾¸líäà”ŒÅY8¥£®Ýcùåè׫^õªï^~ùåg`»VýüÀ>pÕg>ó™‹}™ë§c»›åä€à‚íÛ ‘é¼óλñ#ùÈ‘­Vk#Ë©Ô48›ò©�nùUŽùOBÀÛú¦àšŽY¬|Üa›Ò,ŸÂUº”Góo §üš§xR8åOå)~‹³pJ¾¦­  Ë5lذá±+®¸â±�7žíýœzÍk^sßí·ß~Š/ù¯N }n@à=ƒ €w\uÕUsþCXŽSÓmʧú»åW¹å ú^}Rßšäu�¬‰ŽO¢ƒfÕQåOMåmÞ”?Å—ÂYÝ„S<)\,gË)þ—­|¢�-y��Ë9\yå•Ã:صk×í]tÑiÞÞêy¶ëí¥¡!à]‚Ÿˆ¿ÿû¿¿c1ÁÏ i8ÊÛ”_ƃ^7Åõš[b¸W�ÝÈÅ6m¹=)^m£nÉ*ûJKÙJášò§øR¸ØFЇ¸nÒbuÔµmìÏr-8?ñć¾ë]ïú‘Ö}Íš5§½øÅ/þ¡/³QÞJxÁÜŸ�Àô¢½èû§�vÚs‹Rç7ÕHj5áQ™nxU¦—ά²š«]›+í`Ì­Ÿ ÷ê§¶_7ò9›9|N7ù›¤_ ëŠyârÌŸ*Ç2¶lá”l·ƒ@JÇRàp?ÀE[¶lù�êú³?û3{Ó/ —,ôñŸ3XATböýïÿ *¬y]åÉׄGùšò’_;m]“7•hËn)ž§ÎÖ§›¶Ôzö*“’S_TwUÞ”7Å—²ÛŠyRzb™¸œÒ¡<1MñšwÓG—k@_Þð†7?‹D³ûS6mÚôa¤•Ø.) pú¥Z±cŽ9f‹]ôkÒ€Mxh¹)y™Ø˜Ý4h!Õ±Ó­=•*æZWÍ›ÔAy™w“T.–Éác>–›òƾ5‘‹eÔ^Ê�.ÖaËNÉWõÙXv¹��;wnÄ-Ã[Ô¿W¾ò•÷)Œü%¥½Tàp“Á£Ê;«xÍI¯ã!oS>òjÐW5"ùâ¤6šøËæÊVçþ‚s¾t‹·þ6‘Uþ&¼Ê““ÉáUÎæä­K)žÎêIÑS8+Ã1¿-[8–c¹ªÿƲË5ÜsÏ=!–_øÂÚ¿N, pè­ï𣃱“J×¼ŽÞ-Ÿ¾Ê5ÉÕϦ¾ätZ=Îñ/'ÞÚ·ðbl¦ô(.Ö«xæM“ÊÄüMuää­¾O�þ^d¬M± [¶p,Çò�xOýZ¿~ý˜ÂÈ�, ¸¼Á§ú$�uÖYµwúÕUœŠÈÓ„¯ÛÀW½Mt5*ÿZy…ËgI}µy/žª¼ÊÆeÅ3¯¢Y>…Sü)œòÇ9yëRÌ—Sò1O\NÉX\ÍêHÁ‹‘Mé‹qßÿþ÷C,cÀ.–†»‡° ¸)V¤å&“§ _7�¯:›èU_5·²½È«žƒ1_ʺY]q]•ãsåT;7Õ‘’�íÄ+»Ô§>ø`ˆe¬ë­0~­+Íà„z-,2$—YŒ*6á!k/�¿ÐZ5F}©ó¹ZK÷TkWáîµô.¡6[oÕ{’ÃÇ|,çx›ø–“µvb=½ÊX�UpÊžå�é–V7XÞ%B,ÇÓ^ò•%©J¤pÖaÂMxºi„&úzñ!–©+÷âG¬³[Uw›Åº«ÊÖn¯:UG,ŸÃ§üIñ¦p9ÙØ¶åKé!®NÆÒëøc{U²UºØÿsw Ær–ëNA­Ï‚€NÄ)…³ñ÷Ÿp}GÎ8>Ñáx�‡ ~›‰ÊƒÀ÷ñlïké#<ï—~æ\kjfÊ9Þ'F™/Œ®AÒóÕ¸�¹ÿ‰Ó~@>ûÎ ÒâA€æ,.6¯6êx,=¶“ÒÙ ¿•�uÛ²…­L·ðrÙ ÊIV¬.éN¯âk¢‡òMùb[½ÊÅzrå¥Ðo;^ÎŽÅã½on`xÀ =Û‰ƒn^‚w>ä2 ˜ <$ ë€0ƒèŸ¯â ;4?TðžŸ�ƒ^5?]Àóm¼ß¸9ÚáÆ×Ý“—ƒ ËÔ=7ã¨Z`âøÒ)êÁØ"‰½ r¸²THcÆm�‰óSÇÓã²Q%`L�Ë1¿-WñVÑ#z= ë€ªJ:ðëü«ò=¦-¥®X·–ëlÄÁ�÷½¹ùÖœë_‰]‡ÿ>Ùƒ8²‹Âhß0(5Y˜8–Å‚¶4,‚^ Áh÷<’!˜e°à@ ƒ ˜e`€>Ò8x`˜ÞÒví[�k�ˆñà!øš|ú¼3ÀÛº²]lYݱyOL�ËVᘗc~[¶¼NéµrÝ Vn©`é>M”±Ru©.ø›è �¦|êO·ü*gó¥Ðaõ-ûµs÷N7=Øvc£ØuÜ%v·Ø@&li„•®4ìSžðGŽè„õ°b?¤�‰üó4=àeùH&Ý-N1ˆš¹Óðö¯m6�L%ÖÕ½ÖÝâb¹X¦Ž¾Ôü±=-×ÙQ¾nòå8ÐÝ]òC^‘qYñš3ð—"øi§Î–ÚdÞ-Jv1:¬¾ýo{‘„½Ö?Œ¶B.ñ©Æm�{–›ÅfRõ§Îwåkš7õ³©¾_U�|f#x«SÜìŒ8â¸é ¹D!Êv@ÐÙø‚­x `]Ô§zæl@æÅ ´;óÂ�p÷¡,G»ƒTZNlÓàHq¹Ì½�Þ-•¾:]V¶Þœ\•öÝÜ©€Õ·ØYw}6Õ+P•šÐëx¨Ÿ×€eQaæÜÃÜO²¯�³ìÑÍËwš¯gW¼aÝÄë>QšÈ_ÐdÐàQ‡½-™öR)ÆÇåX&¦Çå:þ˜nËUºbZ\¶z,óÙ²…­LÜ‹LNw[HV1G–ªdyc>Òªè䯣+O>òjÐ÷øê¯æÔw°%õmr€|° J°9cKâËÆ˜î]Åi€S�p4(›(’}�"C^¿‘‰0`Ù?*¨¼,sÖ€­O^A €ƒAE=†— IÀ˜—ëø-=–�ËU¼–VWéÌÉUõe«¯.Vsú‰×]YÅS¢Ñ°5^"¢PE#o�|Sò1ià¥f¿êƒæÍ¤®é©ḭÛ|&àäT^‘9étYqº§= ;¢ r §Ü·rC�—¨P*K½Æ¶ìsåQ¼xG 6á£l&Åô¸‹Åô¸\Çoé±l\ÎñVñY™¶rŽùªËÛë  ÝÂêÊÂUŽRh±ô&:Ô¹nŸ¾é¦:›ÿÒ/ý’Ãe;âˆ#܉'Ÿèðù%÷‰O|Âá]ìÁžÚÕ¼W»|; y{­%sÝD/Ë>u)`Á` �¬9(cfÁG1Ķ ð°Ê#—;O]øœPß�b�4©ÌÃrUŠéq9–­¢WÑb=¶ÜT®Š¯ŠfmY¸+OxÁ@¥)Å)œ*ËÉ(�y•¼ÒëxÈ×Mà«_MôRw.Y= þóŸw×\sMá‹5vMîr7ß~³{ë[ßêÎ9ç÷ñ�<Ð- :ªr˯ðŽ;ìbÄ™M"²R�Í=)¬ êà Š[aó€Ä7� 'ý™À^ŽJTž0øƒ]θðLJ 90‰ºë’åÑvÊÉX^òÄåX®Šni®ÓQÅke-Ÿ…-O /ç,`Ág¹ÊÑ*šÊ6áIÙµ¸^ßÊ7…ék¼Å²¼^t­á–>gÐ Ÿ�7ò¬ÅÉ.ÎíUm7ˆ—«ó±ÝË.»Ì]rÉ%îÆoŒUÔ–cXÞ¾}{!‡@)i2°tCd*È\rƥ¼,¨¼tAdg… ‘±½GmøA@ßAÐ7Bâ)@Ö§.ÅíÛÍ6N¾üòË_Í5¿±íV\2äVÿçQ7öj ÏÀÂ)nÔ›Áݺîx �»ùæ›Ý/¾äÝïÿþï;¾Ìc1 _|-ÞÀE@ Ú�s¾í7<~$ТÁ@e“H§éþnCÁ]‡ø•AÃË*g¼ ˆîŒ"k@Š�dÚî^:™Õõ+D^^Räå3ÎÈü'ñ,K€«ôÆ´¸”DÀRóYõqÛYš…»] ( ªH+¢¹âm^E#ßbéMŸvt³þUÁÊ_çcJÇ-·ÜâþñÿѵVµÜȳ‡ÝÀ&<邸:iЭzͨ[õ’×Âóïíû �Îß:½È?ó™Ï¸g?ûÙýlJm#¾P®§k°ñ€ü烂ÕÇqÁ ëaj¯-9t1˜1�6#ŒÙðS9Ì‘¬¸ö?of©6OáDØÿXº…-ƒ~jjÊíÚµËíÞ½Ûq–Æ—A.åt‘¿ŠfõÅ|qÙòæ`+cá˜?7TÉÄ:âò‚@•i °\E«£S¶N>WQëK=)þ:ÛV&ÿÁü�t´¾cÚnär�ËâGæ‘gµÜêׯpcç·ÜÌÿ&ð¶NpnçÄN÷æ7¿ÙýÂ/ü‚»ãŽ;Rê+q<èÀ{öh–{ŽOÙ1×½‚8�pÁÙ™žÆLÙŠct¨ øDyF¼=% ÎãEž,ôAñÌ9ð>ÊkÅÌUåÔ¾«Û/–nañ5ðy›´[ÛþÓ<#ÎÞhj)Y]% –fá*¾˜–+/µ>k§›Y€v+_ ×9^G¯RÞÍQ¿J�¥ÑŸ*Ÿ,oVŸúÔ§ä|¾uÈ {î(¦·èé¾Óó*A„r?¾·²âe#n-fCè„Ówƒ†£`ÿ©8-8 §·Þì^ð‚¸w¼ãÅ`â}T;9ñ‰§"¨0x³—¹'uÓ��LLå"äC]à‚!1Ф†Ù€ð!J ýàÿˆ“ÞÍ<+ã_@Þý7Ht8ý�ë—•OsK×ÀÇ×oÝø4§[Cg97vf]Ç}Ãȱ^Âb)’µ_¥¯¾¦2¹ƒcSùØoÙ…12W®2RE£¾:z®bÖê¨Ó£¶šòZý±¬ÕÁiå{ßû^Yøk�Þ‡#º?¤ùŽ-ý0ƒI6L—‡Ni¹5¯_åV¾½A0u'høøZÿé8?]3å>ò‘�¸óÏ?ß}ík_‹Ý�zª}æ×_½ûÖ·¾%Ago© öhZ¸•¦@TF�P–‹ ¦.òyJGñ>Ø‹Ü<…˜úf) óE£ƒA‘O7"IÂf B]/x@^ð1‰= ˜ëL@ñ‘ì<Þ ø‚P¹Á¨À,ø�Û=.S€Ì{+ž|òI7Þ.ôàŸ‹ï!‹×�¯À#~![�ÙÚ×áÌq€ïáNNãÊRe€7©)m)øŒÙJŸ,Ÿ…sË*߬¼…}“YÔB¸Jq­Šž«ˆõ J^ùÈÓ„Où™«L9}¯¸â ×ZÍ…¿7°aò^›Ï‹2 J�Àb™ÆpÿBl?‡À?y3+oO|€Aù7³€•8ø¾@ g`\\ÌZ€õ Ú²©)ŸUЋL.~ºÕ¥]Iü‰…ãrS§«ä¨#ç¼ê¯“¯£«æÝðZ9…?úÑ�º[o½U®é�^„ÏláèÍ0 AF æBAN$’?ÿÖ¢âÖõ¹/rCg¸ñoM»É{p•G+™ <âÜ]wß%·ó´ >wm÷Ïàî:ôè ´0ÊÞ…ÂIC#¿�oŽ@|PGèøa$âä{¸ G^™^"Àë8º³�eµ]¢2X—câ7d°(Êïðð°|ÊÌ Èúò_f<è�ƒ8‡çw�CÛ¯„=¾~ŒÎ0!s@Kb®4€GBîA,ÂâÌJfwâ;ÈùµÜ•�P�Bcé×Ò,\bŠ Mù¬˜•±°åi ×ÍJ€UZ¤t*—ªhU:©¯JVí5áiªKuÚÜúÈsþ~ðƒ®5Š£ÎYXÔ;~ B�Ѷˆƒ_ŽL¨“8ã¹mÜ‚¾ÕÇŒºáëÝøw&ÜÔ½8j¡Óίk»ù--÷ÿðÁL —|´ã‹àV[šSaS×!§_ +žØ#Æ`�„ <2€ ŸrîÅs{ ÒÜ^ä“d줱1œ”G‰G|øîPíø­p´_ÍÑŠŽB:ñ�""�ØÖ\td™-ð#N?NŽGé:�põÅ­Á,`ß”cP°õ2@KmªÒ�îE†}5>@PJW GÞä@æ\ê•f+¥»J/ùë誳)Ÿò3ÏùÆ{ú¹èÔÚŒÎxÁŠâàb›FÛIƒ_”ñþê�T‰Ú™±ž8òÌNtßn»É›-8ÀœŒµ�‡Ñy;³ÿBû¸êŒ7 ~‰^$OÐTÖú6ád …#<´^¹A€ºD¼2P†H¨Ù�€gwàòîŽÔ4::Žþ @=Ç/ñqkõ‰n`-HŠPÆA€m.¹×¨(oWÈZ°ð^€Y\"œÆÌª…A ý£™ á¦�û—ŽUYš…c¾\ÙÊX8Çß+~Á@c¹Ô+-`j§J/yêèMyÔó:Ÿ®¾új÷/ÿò/ÅÂß®-zš&4�$l6v<$iAmF�+(æW™$ŸÇå+œ¼œ§ýnü›ÀT·…s×þ‡ÝÔ8VÒB‚í£óK€B`0*XÆø<Ž*GØ'e/HAàG뺾˜µ¨—'啃@ï„ó“|,ÎùÇÈÆ#/¿È¤çø¥ÀÇÝ”- „k �Ï@+܇E9⋨Ø“:  ClçÄ,€#ñ&¬™B ƒ�Û€›ƒž—AˆýJƒÙkY-0hÊgerðrë¢þ8•€ƒ ôJ« ´*�´[GoÊ£u¨òEy˜ó¨Ä…?>~;Œëý#g¡™lÛiCjp�– ~«ÔÊ�&‹žŽ#î$ÜŒç ®-N x mv=‚ߟS‹J™J:YB¢°äüÁ&|žÊ i"]Ù�SJ’àñC?lPT:ŠcNðCñ?äö_|Â`›¦U«VIÀq!P³¡['ã3æ§¶|àcð ÍŠb”dB¿¼A©'íxÍÂë],̧5¾�ú7ÁN)¦1£Â)Ö4îà•®E°�åõ;ΛÊX> Çúre+caËÏ>�: °Þñ' x¹Çès15]ã#œ‚l ~žZȰ’½H¤jt¸¥C£�ššzüQ‹t…‡Nǥȳ!ßëà D¸³æßúÜôm·ñr¢òѯ>#¯ú©ªã‰ú¥_V´º ²¢(_<±ˆHA?· OåÝŠÅËë¦Ü ‚ û"áÈ;†›§†ÏÆ`……Î0cðdfìà‡.©nšâæœøb`Ò�2 °ül¿Äb °®�Ï  ×°0|<&)X äZgU‰}%7C¨’Sš•·°Ò—"ÏÍRýÜÚcs%S�`Jè@?íVÙ¶¾²^¹ºýÑý‘kãÉ•�pÇßœû}1D+{#;¤O €%�×G;¨l*Y>KD‡Ä½ÁÎÎ\7Ò)Žò ³×M\ƒC“•/0Ag‚è¤Rn,KÔ,3 ¾ÈU —ûƯšv»>�»üþ Áÿt‡΢ּ/Kù9¼7§3’ToQò8 ‰÷,j[ì A—¶_Á+x¯ÄÀOGmÐIðµ6´¹}Å ×%¸ØË”ë…Dú×ÊX8ÍÝkuåàæÚòœ•3€”˜uÆÒ«0'Cù*Zz•]ë_�¾ãïºë®“;ÏxÇŸÃBœt&éitÔ :*ûœ’Bp †Ž*œ¤„Tè Å2@všŠð›úñâ¬\?9'+ØëÖ­sÛŸØîÆ¿8áf·Î»¿îTL%µYÈH‚L`4̹½õyXÔÙîÈ›ºeÆ�oµô�uJçpîÎñ%ðWS‰?‚ 1'mfš”Í%Õ6ˆ_"Þ™áºÇ£,(ÕÅœ sQˆÜ$yPèù·`p fÛŠµ€º;æØöY€©f ¬Š‘®€\UÈÉÐÃ^i”­²Iº¦*ÊÃ;ÐþüÏÿÜ � »ÁsûGG¡³wEÁðª€9ù$±GjÏ H%úA%;G=Ûa­˜…!¶ò%ÃnדnÇí;d{Ãú nÏÞ=n÷·w»ÙÇÇq‹ñ®^øJe5h!¯ñn< õôþ3ó¤�Cu{ Gý©{päÄe¾µk׺•‡¬”wNNºÏrcÏÃHÄÞÅ †ýv©Wu,¼ ^³ A,¼3‡þË�€â³ eô¿`ë”Í��@ }ðX [áÖ.¸ˆ…Áö}�[„Ù_º t+ca±·ˆ«+[õŒ‰nÙÜ�H¥ª@ÌÉPO¯4ÊVÙ$�‰ú«l\Åï_üÅ_È7sGLáaÞ&JyQâÙˆ`¹(ú¬ƒ³üïåX¶-N}V6²(�¹nÄ›ÄKf«_3âúŽŸw=ú�ìð±Ñ1·qõF7s‹s»>¶ÇMüÇ´<…t«MŸký¤ŽÔM[Z9DE2Òf{ÿç¤{òsãnꆷbv…ãëÐykï;žp“­I7Š7"�]ŒàÇÂ_G/SuêÌÊÓµžžL;ÁÈtHg£1/2É �\LyšÀZÏÞÏ…6#ðñŒÀù¸0Oê¿iòfdVÞ ÷#¢Ô49§rø*?«dz¥Ñ^]ðSw•~õYùø¤ÝÇ>ö1¼Çoùé_…KS¾ ¯v61Þés¡ó©BA¨ {aA`ÔM0<³ÕI7ì'LÕ?8¯þU¼m7)=òØ#²ŠÍv9òð#]ëÉ17þå·û85Ç¡TíxbÍÁ7¡{&©³ÂpK ßo»�ÿ7ðàÈ?ºgÔz衎§ šmÛ¶¹‰nÕ ‡ÝÊ_Âàdç•T£½Ì« >Då°ß”ŸŒäQ>q¶@ *”Á"|Êmc²'ÒÀQ@"ðçpe…—¹ O(?r9”•±p޹ðuñA»ötÇ}Ê«j€^i9[Öé*ÝÊóüñÿ±›œšÄË;ñ°Î[¥#‘¹P;¥écª³ÈÍQ' *,#õØÀÏê3B žÁcúÝšßs{¯˜p�ÜñˆÛ¸Ž‡2çÝt¨Ül³ãÆn×Ã{ÝØÏŒºÑ‹ð3of¢]Ú7§”‘SmOëævâÈø£¶›¸vÂÍoÅuûö°[·vu¸ƒŽ¯>ß¹w§<§¿8†Ë•xX 6d¥Ï´'9~ümÂr”EÃÈZý �Iy­œÇ« m7¶ë<)®Y�(* ì7)’N>vóò� |Pˆ³€©[‘Ÿ2®\LON‡[„ÙOR3‚ºNMtYžÜİ•µüµS)�9~êè•–³¥~Ué­âùÞ÷¾W¼ŽkÓ ‚‡œúk0ˆœ=ÒU¦¹"¤�ÐÑ2m¥ì|¾Ÿ†ŽˆP½DqÐ3pN^?êöýë”{ìÆÇdJ¾iã&éÄG}´{rç“nïW÷ºé»P¿çáÆ&ÜrÛׂrêçæº­õ¦{3÷ã‘ÜÛ~¬�ã9<�#ûŠ•nd Žî`æ‘rÇή=ÔvÃgâ…cíd#�M WõVWÅ–¯·Ú}ðxõ§D'“"ÔgËoa¥ûAEļ~ÉßÀaпK�c€A¬�­X·å|Pˆí—XXÕ‘’€”æ±cuó³œÓUG«³U¥·N÷[Þò70<àZçâɳÃí[~ØeDºÈ⣿’�öÄ‚=ù«G~Ê–ä wO–˜æË}xF~å½xÏà¾Ûë|xÊm:d“¬ ¬^µZ…íwlwû°Ð5¾iZ^HÒÂ�E|¶ž/5e ÌîžÇkÊfÝÌ£xµ6î-˜zGKÜ)76<æ6¬^% ;-·�»vº}í}0k0»æs|]¸ŽP¶) º3³Ò�62 P~ò ?~8𲽸È$ø‡i‹w5¯Ù€°å0àZy¯†Y?Æüác8ËA~x•Øôxg`XK ûÜ� bkÛÂÖAÆLÝb OxÚ³`¨ (k(†s²9<å«hUÁ_%§~Uñ|ò“Ÿt?úÑ�ð..Y�‡U!vô+v"Izô÷eE«îNn{pôUüyå…5ï°ã»ñ&¾>í¶^û°[;¸ÎmX³AÞ‘Ø¡‡É—Švß»ÛM>8çv­Úãðy¹dÈóu^ç›sf˜£:«Ç0pl\Ö[ØQx¥��?¸W"ÎÆ�RxNŸ/è`âQW.!"GÅ%°‰×¦!LV¶ƒ?BšÖ]ñäU9¥¡L0\¥D�í»ØÓšâÛ˜ÜýkøÒ¬ ´oëÌØ–#Э^ ÓŸTj“’‹qÔ§€2¤˜IËeŽ?‡§®*ZÎN�\:?ñž÷¾Çµ6àŽ¿‹p4Ä‹;ÙçŠöÑFBN��–‰°!8"Ø;• Ørq?a®âšûŠWám;§¸Ý_Ûéöb `ÝJÜþ†Ä'ßxZÀ;ßøª­¹iíwL¹Ù¹Y72„;õZ�C{ð¶Xvz¶?WÆ÷îÃ�FxUM^ùÌ< œzHBÕÙn!qÐÔ�@‘¾‰ls¿Ë‰‚Å‘Gùæ`’"”�ƒ“‘ eƒ1_–L a.~úq?Õ0î”YžtàÆww6¬%PêPr² [¼…KÂQ¡4Ð᪔ Êœ\OU´œ�:¹&tò¼ûÝïv»vîrƒçáþt<.ûQ«Î\�þdFRR1J¸…½¯À‡&Ô�ƒYtªœÏU©vt-Gl¡˜£«|`D�°˜ÙÂKHÇ¿Ñv�ÿ`«Ü9âÖ­Y'oÜapó—íÏgóuªH¼î.ŠîÙ·ÇÍ�à=ˆÇán¾ 0ÕÇ}üòNÚ16%æYW™®{'¡[gÄHûªŒ!ËZ§G¨8èõ¼ªCl¨G !gRÝ�8K¦Î_&³€GÐv€§ñƒ®°M–cб×ذ<9Øêd é¾%*ñ4 4¤˜–—sˆ¶z þ*�ZòlÙ²Å}ò¿ÒÍojc»�_ô£¢�LCÔ V4s Sq¦qI �¢2‚Ä�-[Xé̉׎̲…YfŠqÚáAâô|ÅËðH1niÿ_Snû�·»¡¹!·ñ��áš·~;�mÎ?19!¯ÏžY‹EÃs1;: A‘v€r 8cDœð?Á_å+ð¥Á•(W~âb8æóea3¼Òô(Û›‚JÏPÎ",'ï Â,`škœ`¶3þäòÎØ—{`IT5 òJK©`ÊfŠ—Ê»ÅS&g£J_�t&õçÒK/ÅU¡yÿ]?\ó/ÈÅ/;—¤”bUH�žW’,P…pñ«äŽª—­ a¥‹”5·xå#ÎÚÑ²æ ·NpkŽs“×c‘ðÊ}ø¨é¼;lÓar©�mÂA`ûŽí®Ý�Guñ⌑g`šÿÌQÜmî‡PjLõ3G ³Éõ¨ŒŠè¡ £Ò‹ÙF~¶ :ɇÄ&–Á£(–žV˜÷ ÉK;q‚ݽ|9PÕóRæôý8À‚2 À-Âûs ~ìï|Á �bÉfŠ—r9¼ÕÃ9uúêlYú7¾ñ wå•Wâ%èèÏİŸJì(àžÈNÄds…²`‘_�5ø~™b1Ü A+§°æä¶Ϥ8ËWPŠ_ìe¾Ž¼uüj·ëïÇå$kW¯•Bx�Û8ãV?ƒ"Õ]ezŽMÕ(fhPÕ,@m² é²…� ÛÈNû)gËbòÔc�àt�‰z ¨„"uó8±Oœ—QV×¼‹€Ó·ƒËƒ|ñøöúY€Ê/6g?­›Xžlý`Léi€Å[X»«Å-lƒÑÙÁÏÆ½ô/ÅB× þð~·^;‹uF»Z†dIðe=4y<;YHrô%‹'*.«ñvc/å¦üš+¿æ*Ê@XÙˆÎÅ»Q~Õ‰ûç€ó38"Žàc/ð¯Ý6RªWÀ{@}²6Ø›/VàŽÊExOîdJ'¿ÕIŽdH‘á Âó0פz´ÌœŒ¹š|LǾ4D®ÇY€ˆ–CP�ñ¹~ŸÃw´/díæš#XΧU˜t‹Ïé§Îœ®&´XöÃþ°{ð¡]ë4ÜñÇóZì\ݧ’k�Ê™ÌQP‚Š8v d&":�œ­©-Ú! �Èj0˜žP Ñ1”cù‚»æJD66E~ªŒ+?\’„ñ`ðï´ò™z0€‹ö7áQFà¼ßCFQM~•-‹±ä=!Ð(ôŠl¡©£Ï–«þ…6U˜XSŒT„"Ÿä An;¼ãKCpJÄ�Ö™ƒ‚§  Ýµ+×ãàRánñ*—ÊsºÈÛ íŸþéŸäÓÚ³Ûçñ}>œ¢ã†Î­ÈÔÕl§açѤ¹v|”CGÕ£¿å§:•ÑÜ›x¯«&-(S/9+9ݨ"²ÍN-‹€¸��oΕ¤~S΀¡nd žIu)¿Å y” ø¤¤(ÊiÏ#NõX:qÁá(©NA{A‘1|ªWP1Ñð)–Ö1(ð† ¬ àÞª³e[®¼ª_§lvËŸÒ¡»!E«\”K t‰Ìý«*Ö+íMoznGǵí;ð‰ª/àußÅÇ7ðÕš0EUßÙOl«h¿ÑΩQ¼tì€�äT_.�õ²¬¸¤LŠ˜Âya«O}$Ž���ç†QW¹=XmªJ¶�o‡0P �?TˆÜê,dÊ€Ü§ÐÆÄG´Ò“  ¿÷CÔž *jq¡� [sá«áW„.ÎáMÌ\ ˜žÅt)×÷šà›ðˆ‘šŸnõÔŘmÚÓ¹[rüuŽ¥œÉé"o�ôW¿úÕîsŸûœ[³f�›Á½ßSߘu{¾€aãlíAÈ}§VŒ– �õ½6†¶¢ e ŠŠbò· OpÄjPƒÄe”(ZYùi-ù¼? e L^7‹äOÍ<‹˜³bED§¤ ‰?ð!” ˜D²ª :. HËóù:Ëîò|1;El"ok30Xlß�æÁ'Û¸N¢o ²¼OX»î‚ºÔ”Èñæðû3øiKíýüÏÿ¼ûîw¿ëÎ?ÿ|×ÞÛv³·Ì»=ÿ8.—È´³K‡ò_êh{ŒÂ¶c‘‰üÚ’Ê#ÂûóÇ;•2i|ªŸ :˜¡ßÆ�òZÔ:U:Š“GÊKœ…¥ Ÿ .x¨ôK‘rb1¯,N�’D¥ÑK#®„4Ì^P3S/EÙ¼o­ŸàÖ詇¸F‚|vʲ” êýª‘„:Øå‘_7Îúya aY|D.�jt±òÂ�呲ç‰Ûψ H^ËOdc\,Ѳ:ëˆxð‰7 ~¨Of¼RŒÇ„ùšµöD[N›rý­ ~1<ÖI«Ç–§)ÜÕ�Ršs ‡O%õæøsø*ÒrvHcâ—8xÖ³žå¦wâ•P×âíVŸÅ£³x.$í?6X¥·Á/ [�ãy”?(H%>�ž_Õ¤'ôŠoøÁ�ý™ò žXÛZ?à|ÕËA¯uö&µ˜�ÛcÄâ´}Ωž R§¦(¹RòÆ…”µ>.ŒÄ·sé`-ŠÑ~r±R…/5KŽ‘¾TÑšúš Êœî¾ÎŸœ•S½'žx¢»êª«Üå—_\û|Çò Ü1÷•éâã–Ú§Bg„� Á`§ÿMbQ|t@«Sd'/Ïÿñ;[Ès�5Θ,»…}/ 3¥)‚eÅQÛÄ–Q�ö. @“b<Ë1Žì·€#X¸PCeâwä¾<2ì8ûÇ©SU¿ªTvK@·~j År9|Ì×k¹JÕNJÉǯç;ßqgŸ}6Þ¹�ŸïλݟÆ+µ¶p�Ч¨ïhßW²ä–‡p*NoyKJl!ÁÔMü§@GÖ­¹y|É}Á€º ¾2 ‘ W”L` ¢ø¡ŒíU¼h«A8” Øû òËz>ƒ/ÉGxS0'ÏÃyEâw Û÷á5h·� W˜V®\)ïE œêGMñ9YʈdwU°;—c@.0sº»ÅÓ•œ ÒrúHc:õÔS¿üö·¿11à¦ð\øîÏísãøÊ o )îTlÁT S æe9ÇKþR2Ì”ÑMy´ÜX_!ÈE@M\àë¾Ã}JˆóT/ u @¹¾”1$ªä"§úNdI·`É’5�cÌÛ�¼(.~¸Ÿù]ƒ)|Cp §„<ÿç:¯ñۆ˙lÿ´p›Ýò[�¥æ·„:8g4‡OéËñæð)Šë5øiKí1ç;ßé¾õ­o¹3Î8oÈÁ5à/f3vf¥#¡?:.è„tÌ';%˹ÎIþRòÂVG‰n µ<&Büã~mXSu uW›–Ÿ8le¼ì,šI&Ëèõý*˜Ñ'¢V^••pP’Ó«úÉ‚];‹`Ÿº Â?Ä €›€†û‡ÝêÕ«å«AU}˨ٯ öÙØh·øÚ §06\U^ªÌùR¥?'Cs´3Ï<Óýà?p|ah?®“Íàrá®OáÅßÁá WÐ) u­wF–}‡¤ýÚ´d¼FªÀ£ëÎA _ï¬r†â¾®r'o\7ÅY¼˜µ2!%PYø¸íwGû‰«±k@ÛÌáóì|¾êœ/GÉ¥\ßÉñ¬ø]x1ëF6ÇÛ-~©ƒ_wõòc!œ œ|òÉrT˜ÀåB® ÌâÝy’˜-hAà}PŸ‘é¼¢O~RÂj%dâ<Ç'§ìüˆd¬à @õùp¨‹Ît ¸Tb·É_ÂùB g¼´x­GÀÀ”Añ)bKá(Å…Ð9Üé7}#ÿ{8ß¿ ~íA9Ï_µjUç9‰² 4#Ô‚b·ýw�‚ýŒHußZr•L VhÌŸÓ›ÃWéÎÉÐfMéÊÃ…Ák®¹Æñ»�í×¾³�OàãWcmÀ¯¦Çõ�²vb%jçÔ€Qü‚Ü Æòʧxͯy¯tøÜÏ$™ð©È¦ b ªNPH‰—èY¥�£ÎfJoN&É«HÍ!Œ¶™Å×€¦n—�þ�p¸Ù‡oFâQ¿×·çÜÊáµoÅt‹·pÌ·”åÄnê¨ïƉåâíxÓªò¥Ž–¢s y×»Þå¾õMÌN:Ynšø¼(ó³ø®?4š~&žÆe"‰KáE á�ÊkÞPLÙ8Ð�“—ûÆ¢.À$¥›l¾ªª«ÄW7ð� @dÒàK¶"W•Ö�Œ‘ŽY~½øf¼ùÛxé'W÷÷à­Ç˜æóã&\èKíwÕ°æÖg wão©I›(i£hGÓrUžÓ›Ãçtçøi»WšúýÌg>Sf|�xÿf8wÜõñ=nòœXwÖ•½œ›¾Y&$J9^âã-!^¹Î€€í ‹€|!j)EÅR�—mÁ0p˜'.ðÏ\C€¢){F|~ÿ&ÜÛñ­™ò;|ìDŸŸ·ýÈö u%° OI`?r~¥ð¥`ø—r¢[»v§YÙ*ݽҨŸöÔ&Ÿ£ï{ß+k¼‘¨ýf‘_h»ÝÿcÒÍ¡³-.Õôæœò.Ìò´…mÁMfübP—)Lå»°»ÀD7fkx��˜ŸwÓ·M»=ßÄw°ºïð�éyÄç ûs�_5ˆª~¤¢Mx”÷@çK2,¶Â9ù¾ÛF«ÒSE£�\GálàÚk¯u|Ç`ÿ^ªù¼oßã›y(ž'wãmEDåHÄ/ˆ€ ›˜©°Î2ÀS�r#P7ò9Õ9)| G½1>WçœÄãïö�çÜÄ•xý9®çóZ>_‰._0ÆÍe<8)Þnp9½9ßrxÚ¬¢ÑNΖúËÙÀûßÿ~¹�˜ïߟ½�— ÷¸)|VkYǘÇ™ùœ÷ûC¸L¼óWº_…dïòjÜ&ÀÕ§ÆF£Á‚kíûæÜø¿Oá<¿-7ôà-ˆrøâyº¶×رÅ1Z¿,¼8­yéª]”—2”nœÜß¼Uöªhu�ÏêS^·sÏ=×]qÅÒ¡Û÷á#;_Ãk¤ì݃¦½ªÁ¨W+3Å’¸×zÜs¼ö­uçà/¨¥ý’wí–ÀÂöónß×'Ý>|�íßš-®åó¨oWöµÞUV›ðTÉ?Õh5�{«N“RÍÝ4x7zU*¯²Yg#%{Ï=÷¸?ùÓ?‘Àj�ûÆßˆo°±œrJpæ�hyªd«hV‡‡y œu�zÆK‚ÿ€£X¿T³7óȬ›¾yÚMݞݸ–�ÙØê1™ò/…ßl'ž*ÅÉâ-óí�²µoᦶT¾˜Ô�üRðætäð¬[Uð§äüq¹u˜oškáÑÚ³ü¯XåðN}é´q“i_ŠñqÃ’®¼1Í–ëôX^…ý½ ¬ëÏ#¼¯Jß9»R"®Ò–í0»sÞMÞ0á¦î�nèaâÃ:\Õ×ý” Ü‚sÿüÒ�íC“š.´›/–§Áû‘Ó›ÃS¾J,·gÏy¡ÈG?öQ7ÝÆ AÚnìÂQ7z1>¹5eì´qpjG–�T ´ÜEŠuæD+øæfg$HX'ÞÔ7PÁœÓß_µNA³=4ÃÌC³¸‰Ÿ-¿¿p‚ |<Ç×ýw°Û}ø˜³÷å@Ó}K¾XY7²KÁ»Töµó¤|²6øBˆ¿þë¿vúЇ܎Ý;äK¹#g� ðGÜÀ&I«bIi<ô)œ2¨8ò¤„¸&òª'Îy `Àíž“õ1å+çð¤ù¦A1uB­¯@IDAT>cŽû÷5ÉL÷î•€Ý�Üo)�oaÕ÷“–/jH5–Ý )zÎ\oŠž“Ïá«üUv¤�}ìcî}ï{ŸÛºu«k­Ç¹æ³ðí¼ŸÅu�Ç2:;y]`j ,&xYá:ù,^ö³Geòfùi Iý.J*�3äz0'ãé[„ë›qçá¾+|ЈOí9\pá׎98ó4À.úÕ;’æà~O iîÞ±ûËN•‡‹ÿ«ô–hH™ÂYº…«‚Ôòu WéUÿ¾ð…/8>ø»¿û»nÛÞmnøÌ–[ùÚ!·êÃ{ãü ¨º RÇ´CG�:« ©^«_á9ŒÂW1 ½R?NZR—øe¬gÜ[õ5àŒá{�gà:Ðè>wïá}}+q}ÿLâCžL|ÉÉÎ�ø$:fû#x «Ëó«}�Ú-¼ÖÍ–Û‰^*Ö�OÝðj£ó)@¾)è†npÃc8ÒŸ€[HŸ7è†ÏÁ£´¹wè±£Ú@PØV�8Ó¡ ÒDG"Éß!(e+=@3º)Í5iUz8€€HÉEeâ”ÂÅ<, xRÒìvà~|õxô¹£n§S7M»!¼·o~&@ îï—Ùð‰¯ýÓd·‰}ç©> TÕ¹ÑP¥`)iÝjl»ùÜÑÿ¶Ûn“»û¾ùÍoºÖpË …�Fžß‡�k®*>œ™Š�ªY@Ñ¿ WÖ ® 6[9å“€±ÀJ‹Ð©¢]y—¶¢l¿Q`À ¯69P°žHVO�IüzÞ@Q=”È.+„ : ïm:lÄM|kÒÍ㉾á“án÷m?‚mª-³ÞòË�`9’,¼¶–SgÏ@*ØrAµ˜ ,VgÊÏ”?�=ö˜»ì²Ë§ü\XÄÔrèì~7ú<\ÖÛè#ƒ�Pl)Êz4 Sc¡GÚã Rž‰%‹½ÈÈa¢GíÓô5ºˆvs­ÓcB|ç€Qz@ GxòÄ|¡s|‘œ ¬øÅQ7u'ô¹¡íúë<-à»üy °Î¸6¾…èíý4+Z ç i6 À¦úÈ—Ò™ÂåtÚAerrR÷þîïþÎíÞ½ÛµÖbqï lãFÒã|ó°C2ØÙÙƒ}YŠ4ÂŽ©Siå%ÞÂ,kR¼æŠï)÷>eeiÄ'†¶¢hì·aÏ«ª“<æ·eq�&YEWâRD/Õç ¸Á#úÝäÕSnê ܇ƒ†|p{wÛ=ù䓲@¸¿ûe;ì§Ë>èþµyè€yàO|âîÝï~w±²?†€? çù?ƒó| áűÚwµ²ìq¥åݯuQÇ%kÌ®§U¾GG^±D~Õ¥¹i—ZoT&Åhu§è Üfc?7âïÅÝ�˜ p`“Ó‚'1<ŒÛ³±8È™gò� „ë‹F-f 9 À¢kÜPAn á—�ø†Ÿ[o½µ8Ï?�Šž?àFÎË!ÆÐû|G3ì¨, 鏸ñ‡4@È£ü"œ(+þ@äâ;«RTp¾é €þxzpMëBvÔQ¦ðJdAøñ£õ–²g`›Ø²ÊÙ<¦³ãÈãJŽ ?Z'ôã{~Cx ·ß�2f<-˜Å%Ãöã�Ùo bÿXLð–®ßnësÐ ©`µSõ¥hæ‡zȽñ�ot_ÿú×E¿ùÖ:Áá œóãzXSìxŠSX_öã@G†�ò–±éR7¼i ±¨ˆ|¤Ã.WçR—ÉB¿4ùŽu•@Sš"´L~Â: JY�…ÎX å%”‹*«�h Fi!Ÿ<Ú$Ìý«°h{ápñN¼ d ‹ƒCGcÃþž¾³�Ý{åJ Äl Û �ª¾¤Åä`ƒÑÂKj¹Ge½úó¥/}ÉýÎïüŽœ¶V·\ÿæy7zÑÎó5ðÙ¥¤úÜ;¨hµ'–û´… ìÌ<¢Z•‹U+�ê$ß²%5 ZO"R¨«(èáÀ«ê¬ï„µÌ6° €À«¬²¼,ùóä@ЉåNˆæGAÎl�ÆwO°¦3u{ÛMß‹2ïÀÕ‚ÙíX(|ëO§œ ü¤¦äðTkŒºA�—ô~ý×OèõáÎ=çFŸ3à†OGÕýÛpÅÙñÐñçщ„Æ2;=7öJ)Hö¿òž­àgÁ'‘×rª`*Tð’ÿj´B± J±cV_ˆW؈–â,Àhy)jËR°JÄh³S}*—‰�q,{œÜ0ôL\Î=³�Í`0À¬‹„C8-˜¾³�ÅÚ/ÚÙûÔÁ¾€§M²˜üi1Ô5Àý÷ßïÆpÝø¼97zÁ \ÏgdC ›ô3t–Äœ©‰I˜G‡H«´Ë5":HÑaƒŸ$U©lqYñš“®<Ö®ÂJ�y”®n)Ýê% |8ºiP�”Uÿ½\0ÂçsO¾²L:S4ˆê˜QÈ,_«<Ñ1lËBBpéÙƒh^ #ØðÓ�S�¡s1À†wˆÊGCðùÇb60ŒÙÀ¾]OëSÝý¡AžÎÀï¿ù÷]{ûŒ›¼‹_ÚÉÙAâNÂF`¶4 ‡FRðE^ @§IƒQí)Þò(.ÎE7�ªCeXÖÍò(]ó”>ŠÚ£>yTaã'ëW}2#Q´`Rø| ´-4uQ;ä'»×È(’xåUq6Ù2a-{ŸÅ¶ÇIfõ�½Ká<òËlwƒ:|>¬}fc€àºÀÓu&ÐÓŽhŸ§RzéK_êŽ<êH7»ïŽS;ößI´EgÑ„œttÁhg%³²Ñ Uª6:,…å§26�ù´le-lecØóÉ>”º¡²ê'd4`Cð ŸæÔ+eŸ³ÌÀR],kR>–…Î º2Gð”.«Óø+hËoa+£p"ï_�ÙÀ3qcØy bM@^;†GŒ™ž® ƒ= E“Ü¿©AŠ‹—xé³€ë9 @/ÑŽÂ\a­Zj ´�S¨Ü¥_[] ²¤lP�åµ0iK˜x# mÉÓ÷t’>él€0é>•ôêT¹žÂ ”RU6ÌžT—Èh˜éBH Ø¢„% …ã—e Ê `¿W$¾ e—‡°. ‹„|’ðéz³ÐÓvÈíãßüÍßt‡~˜›½×Ì<³v#éT¡w¢ã�€à�.ÄŸ‚ó9X@¢BƒŠ9õ�OqCy”Ô %ßMJñ{Ý¢ÚÓ%”Ô–æÞýÕ¶É)÷z¥>¬“�•ÇOÿQTL¨›Ö_U’Á´Iœ Z8Ð:Dñ58¬v•µGÙ‰ßt˜Ã}šøáS1¥‚q=ž@“ŠjÅ9š_ú—ºöX ¸¶< (:’rú\gZŒÈ�¢F:ÿ}ÿÓ\øØ•-LGƒ@”ó²RVþˆ-[´ü‘.ëKh³èÃ�ä G‘Ç�ÕC˜‰9lIÑö¢¨½¯ÊAHа?ª ,Ü/%¼ä‰ùre¶CŽæÍä²Y¼K`æñ‚ÊKÈKñf¡œ­�·».ø:0 û àÇ+ã´þüöoÿ¶;ô°CÝì}˜Üï×"C,!bГؙÔ¶s‰,y4úÊÄ F[Û²•Y;^¯[[©L¤—ŸÎšÙŠâMpLß=S|ÔuS?‹ºÓ”*1ê�Úa™í"¬Êï�ÂÊ«¹’Énà`†|ÄÃ\‰.x#`@’$Yœ�;uñ.ê>T¹(ŸÇ”æ^ ñD1¿5°Ôi)úðRù¤]r©ôõ¬g5 ŽèrEÀÏøÅÜÐ ÙyLXÛ#(ZKå-!|tG=XŠì|ºQF㊸ C•›ÜÚ©ƒ�AþÄàV×ÿgÜíûñÖœ'ñNCþá0Ï·êîúü„Ûñïv»¿8éf§#šÔ!uxkÛàH±øè¯üBó?sþ{Q ò¨ ÂLš+ìË’ZÜöÉЂ¯%£*A~æ�ÎÑŸçýO÷7 4@Õ~é•V5¨ðÉÀM‡nr³÷gfè E û^¥�[‹±SÄËÆß)=/YÚ šoÚÉ[7¨\ܽçÓãnòK³nàÁ–Û0¼Q>‘Mq‡lÜèŽZs”[¹o­k_7þø„›¸'ÀÁo8ÇF`9à 㥢“8ú“¤äB<”K¢�, ©ñˆ<ê˜ yù%¡ØgÅŽ#§×¡ô•û�Ãå?yNÀ�OÅsÿª>Ÿª÷ºu2åxŒëV'G÷7ýÞ›üZïD'Ñ~‚<œÓPèPžA;¦áþ'üŒl¼,³’NРO ª_y›æ�›Ý6çvfÂÍÝ4à6®ÝäÎ:÷wšÔ©yb>:. |O%Ìÿh[P?ê±�›e ó¦øçÇçÝ^Léûh¹cŽÞìŽ9ñ$7:2ê¶>°Åñˆ¼©…ÐØ¾íq™ lÚ´É=ÿâŸu¯ü•׸õÃëÜäwg‹û$`¶T7ú (í9âWÇéí¦~‹¤}ö_�ÖBèØñm%X#+¦å§p@ìhc)žB¶¾Ú@b ó#o z¨(óñézÙ¯SãÒÝãkË© ÔÀªî‚a±:S~ªyNñøÁ¹" Ï ›°§øN$¢ç‘z*à•xì£[�é‡êUû¥\;§<ÅŒhðKô‚–ËAš¼±íæîêwGy”;äÐÃÝ^¼óæë¯q÷â+Æ |¾ïÑG•íŸ>÷Y7‰/ë§›Üyç_àÆ¦ÇÜÄwÌ©€Úòf‘u&­T‘B’™eBBAëGœÒ47¸ &æW^2¬ˆ'_ÈzºG ³Àùóÿ9<8É£?&>Lö#£æéûÛó°MR¬Mìu#¯Ë›ßüf·aÃ7wŸŸh‡B×!:a- 'ˆI“bK�\ "c#YDä‡$Ý:X@Ü+TÎM„ªœúÚørî5m·vÅZ·vÃ!îáûïuwßu§[·n�{É/¿Ô½ä¥/w/xÑ‹Ýs/zž;ꨣÜöíÛÝg?ýîÉ;ÄÌÑÇnvÇ}¬sw àqY mûªOßOƒpÈð|” ´ÄÑ_éÊ£¹â%7Hvôz)Zð“ŠÒ‰¾Êª¿¿ìÇàorÙÏö5 §­¼ØFÀrTp±:»‘ÏñràçeÁöŽ6î ÀZ¶3qß¡:5iÑ©€gaÖ Ü¢T袰ŠÀ,+b›1D”ßBð³ë"¬[G´ƒ# iæa� ¸5«×¸Ù™Y ðSO;Íýê~ƒ{!ÿ¬³Ïqgœy¶;ùÏûYwêi§ Ïÿ÷Õ¯ˆs¸;ò¨c6»ÖÌ�›ø�¿FÅ꯷CTÑß9> /ùE?ºò¯4›Ö$ €‚Úð:T�e ¶…è)¦*õY`Õ©J|Î~¦ïë ã…¿\ßéH,=dmZxé-uº×rè:[ =Z…K \zé¥ný†õnîAÌîáa½Çt 1Gq¡W±«{>ß¹„L–dgSª„HG–*”DYŸˆËv\ê×M|>·gÎõ·ûÝ* [¼ß­\µÊ�|ú®54ˆé?®lXç6¬_çÖ®]'u>þ”ÓÝa‡æ|à¼ýaØœsc�v³%Ñk�þªÏÖyõÙû"<¶-DF§ê^‡ê¢¬Êi®º=�ô#a‚òºêÖó*|™o>J$Þñׯ»ÜÞ‚ÈW†óE´‹í¯ S-J�/Kæàbƒu±�Ÿ“Ïáé/W|ßø[o”YÀır>ɎÞ„ä;T[)+­fðl¥žM½:PåjG vL ZMQ¬f#ÿܼçOf(ÅWs�8òH,h��S� ë7Hà¯[·Ö­F ¯^µÒqìf¡ßzóMníÑ�â±605ìæÑüÞ·¢.Æ)३’16:æÖ¬Z'§B;v|5ˆ‰3À§Û¹ØŠñ €¢I÷› ÖØp•…¥àÍéÈáéùæ ÷8^vαx%½–�J:¹�<,}.t<ÃË :! %‡)iJ—2ÉÔÝVô§nÁ[lù©+òXÄÿ£:ÁÓ¿ç°Csnï¾½rÉoßÞÝn¯·â /Ï>÷\·yóf÷ŒsÎqÇŸp":=Þ”Œ‡£æ1âóî#¸W �`zzÊ탌Ãëòøe±Kû¬#“…‹Y‘ºïIBO-ü©š_Á*xAš"ÃVpȾSTHy|ó Jˆ0‹iûÁ¢ÌÀïö~ÿª>¤Všð(ïbrkÇÂMuâ](‹K4ÊkȽ¦nä9°¤¾Ô�ú™ãç{áßñŽw8>2< ž ?ç‡"úÑ›XGíTÚÙˆ"‰¡a¾¬mRðhÉçªKÑ,S–ÿ¸=u;žVÄm¹ó÷¹9¼šj`#¾p{¤£ -ÌÖõ»¹58êï™pkÖ¬q{ðÁÓ'¶mâàjwÄᇻß~ÓàTçœçc ÀŸ Ø»g§œ.³y3‚ÚíÞ¹Ó�cÀ8j_Üõ• �× ~ñUë¡9‘r†o ÅùœûBø(CœlôÌ'kâÛNÛAx| ©RË…¬·¯B!ïð Jõ«nQTüÌáfŸé-D·SÿŽäâ¡\ß³x /ÞbZâO¨–Ž.Çi@No·§9=9ß_ö²—¹sq¾|ýõ×c€WBÕïú‡ü©‚ã�v0…‘³öùi|é”@e8è,¼ó¸d7uËŒ›¸vÂõ?>ìÚxÿÜé§Ÿä.¿ür÷ò—¿œî¹þçvî:;6}1—õá6£/h¹‰/MÊ¢ß)§žêî¹ûn÷#\æ»ëöÛär§ú¸˜éŒ³ÎvG½ ƒ÷»ß~»›?|Ö­zéJù”šF©Æ[¨7ë¯màó¹'çÜÄm8üoiÛ¤|xcô9£8}ÑJ[6­#…ÜãX–­ ¶ÙЊ/rÁ«cd•A€üsÔ¤@‘æPÕÔ5¥ï�|t·õX’ £UÁØ�žny«ì¦hï{ßûÜ‹_üb<(Ôç¦q>>|6ž£ç¢ ×4 Ùé|Ò%öGYQ€¼’È �rn7ÿfÜyxØÙŽÀÇ�(§žvœû“wþ‰{Õ«^åù‹ìØc�1ÑY¢$ Þ)ÃøevÿóNwËÍ7ã¹€#ÝzÜÀK}|ç=×;N<éäùÃ�:º� ·Üp�{ô‘GÜ즶[ñŠ!´TˆêY”‚ ’’äøAÛÌîBŽsëÁ#yG"¶k1 Ø:ᆟ�‡kÎBû�À!Ï/å5H‰ÀæÉðúá€œŠ©#!�Í ŠA9hH¤Í܃ ï?`ZÌ5Ä.4¿9¼å9XàÒ� „ØÑ&<*“;R+Ýæ9½9|NwŽŸ¶êhäÑ™ÌÅ_ŒGd/vW]u•s×àµÑÇ â›‚ ‡A@˜‹ŽÊ~�N*B’ÅAöPvR ³»æÜôÍXÜ»�¿ ��©SNÙìÞùÎwºW¿úÕ"ÿð~}IªàžÿüçãÞz¬Êß4ƒÏ‰£Cã¯3 “h`r`Ÿ‘`/r–yJÀsLß:ë&nšt;ŠÀ?é¤cÜÛßþv÷k¿ökqS–Êr}š:õÔ‚T–mJôU��A \«~cÅÄÀs͸{ä±I÷èý�¸¾6‚— çVᦡð©ôóð©ô㱂(áãÏ·iƒu`¦¥¶$ÇD&€óÓøÁºa?ÕàMZ­¾n9^ëvãJÄÞ;÷âmÌ“nääAÇ5Šþµ�”¥°/*Ž:™Þ´b,Ò4üý ²˜þût0LýÕ—åÌ#½¤Ê §0�)þ\�¦x—Wåc�>hcžƒëå/zыܿþ뿺ù›pD=×Í7÷ŠË ÀÇSöDZÛ[g1pÌâÛsS®oGËÍ`z|ÌñGJàóƒ¥MÛ�c Â.@¤�A/ëùÖIƒ²ñiÁ9LÕç÷AïŠA7€/æº0ˆÎH±/†¾¥dEøàŸçëÕ‘xÛ0¾ÁŠàÆç¸‡0À?/ÛràŠ;¿¹Ç«3á”ê™CnèÄ|”£°-ø£rî™ú‹rO0uîxtÚ �Ž…Äãð¤B‹Ž{;*ÊPX6î/Sÿ;€3SΘrûÄâ-,BþÇâ-œãi‚·< . ¬Xj§Ñ¹*Úb�ïEw•LÝ @sõÔºPÌ÷áXŽð»·ìÚÊU-÷â—¿ØñíÂÏ}îsUtÉrú ~P©ö 0cEñ%Að0`ð±Ù¹¬G!øðEÝ‹£>èTäQEîg%X8ê 4¶qÙ ÑN"èxƒO &™p3»Ú®õ®¼` 8Ä�JÌÄ?Í¡¯ø¼<æË~üÔ¿—'ý:^=ý!î›ÒÐK•©$L9|.8sü9<}­¢åìh«d•Gmhùˆ#Žp—]v™ûò—¿ì^ûÚ×Ê–»©DeºÍé—ME8¤E,–]ÂòhÀ ƒÅ"¬©Dà‹mò¨mo¸d_uP÷þóëº2HŸêâGô£ufÀr‘�W 8´ïlãÞ�¶9 3…p'!î-�€§M»éÑ«þ¼² IWýYVJ{*繺t‹gt5Ð@j§v‹Ï5~/zr2´Ñd _ªNÄlj¶øanMeb©2õV¥ù>Zû‡¤Ók,¦øKZ|¡„£U�@ô€ …ñIé‚G¡ø/L“f輿€§tSF(ÐlÕÕ±PZür&ÀK†|‡ÁÞ'öºIL¸fÁÃI¸³qàPø'þÎÌ3øa—¯önó1_¬þ31øuê_`Ò¿Ö/ [n‹·pŽ'‡o"›ã±:-Ü-¿•%œ«86dËu�iy¦?¶C)žy�¶˜ì5iA˜­kN¿a  ÊDX]u¼‘h©X’eŸ/â³àaÆå’4 äa’ )Àbí Ò<%bOeÈî'ÉÏÜÂäãù?ŸþC�Þ¢ÙI©L¶~fû1ˆ9à³ ã÷�»™¸Rp/ÉG—©GO†qÔ7“k.×µ�Ê)O ¸>À€çËLgVà”G}ž&4Mª‹ü¶òoaËóT‡ ¬èRtìTÃät/ç @?ªêÓË@ uÛ�BfÞ`#{6P1h„À¦¡Y†]ù29–Ô0ø��S.rà_%žkw[ CºQ0’�‰ƒ7ƒÞ¾ÕgáBbés6,ÞÂÖƒÞòX8ÇŸÃkß¶:[þ@ÌÌr.@©(µ“sxêÊÑr6ªdêh¤3ålÔâ×6V7³«c9`¾º‹OÌ–¦ëM ™#|a°j�u3H+^xG}•aÎ,ÊÉS�»MÜOMRS¾œ.+oaËŸÃ[ž¥„»µ×-Î×ä�Rž Pòv;äœÉÙ ÎŽÒ˜§ü žIëTÅSpžÂr0`{„5€¢êVã¼SŒ/3“Æš *àH ¼|”÷\Ñ:yÁƒ§!)ÃUùùi, ¥ÚN÷éf9—zák*“³iñ9]9¼•=ØàØçä°TNÓX*àrxÚíu l•^Ò™´R~å_ú£)Õ¡•¶T¹µG�Óm|ŸËm)˜ë 2€™ª¾à@£P~Å!�ϲÒâ�@äðÃý=?)–JÚö¤Y8UNÉWñÅúšÈ7•ÉéÊá­^ [~‹·°å±pËß. 4R¹à¬“K9S%“³C=UrJg^U�nøÈ«)NÅ÷20ät©NÍe`A¦áŠm˜K€^–­°�CÊ~ªO¤Òu Ô2sŽF¾,E¿Hý²»¸ßr©)­ŠÏênÊge,lå-ly$l}²°õÉö¯PK€U�Ê'ùíW]9<éU´œ•cž²GÖÚûÔyTÍœ}æx|cÌ1çZc®÷Z¿¶­ðoü3íá}€VÚ‰;- à t,•n±£åÒºŠUÚÁzM 9ÞÄÏjù¬•Õ´]³GŠÝ”pÐ`Ð`”8¥ÄT¤S¾ ÏéØ¡Ô±6%Š“m³ Ô%\dCY[ÚÔÖì‡âw/ÚÍ-£  9Ç’mâi E‚FVŽ*@‡Üðÿ3R0éÁªžt.ñ[›Ðü`‚j‹M+v°ÇÞ õg2|eòÕÞ‡ç#›œLí•ÎÙ¨Nm”NaT¾Ytq@`èL´â§&�>竤ƒ>Õt(¹v‡ˆá.œ¨OŠ‹hÚFº9ûÈ'ú¼¸bµÇ\Ú„µDó[x2i#'”¥^환#m…ôßÒ#†•Ù¬áҟŵú¬e¿=šë'kí·Ò -U×bs8Õ)�j3'ŸÕ^}×øRLŠVŸÜXª ´Úªnb¨f%V©¤Ìùê«C»©ö;ZÓ�.XúÏÕô—ÃtÕµ»jvYmÙ>ºvlÁÞãoß)|¡½*ëìhy×DgƒL`ò¨U†ÄgBž˜–¶lÖÈv®híLÈK8°O�i|]ÆE±J3$Ö91¨ûàjmRí¤ìSrõs*hîþ£­‰ ×8‚¯I*õ‘³)éà'Õg9¿•ñmç|DØZ¼Ún4�…uüY˪;l·úî=Íñ½öÉpû-î[j–^¹ËÞñ¿Ø,½ /⫈„É h›½¨×íZ’¼ÖÀÒ?v÷ ´Ã~¸£} =°jEá²ó+½ç‡èáÿœ.‡ëkGŸ³ÚÓO—º¦ÍL—6#lõcÄ«Îr[å”MÎ}çl�ɵ«>@Gq£µôZ;õ1/±\}õÕí«Çî¾ûîæ·¿ýmsÓM75O<üDûu�µûìSe/´Ïm½Ùî‡Ç§¼Q˜¸Cnýÿ0k‡¼`Æ$2ãš„éR‰|­9i‡'í`°•‡†MàA?–ž"‡ÿ½ÎóŠU:‡S�ÒjïéZœÚ©�ÒŠ™•V¿J«_nU:%‡®Ó4%E.S69Сäl¡gçr{ôƒ:ŠòTñƒÝÕ>å7’û¶€Á«³ßúÖ·¶?ðÀÜpà ͵×^ÛÜrË-ÍÑ'ì Å·Ÿ°/ïâùx»W‹ä/Ä,™©zx?7ø0Î ,ÁÇ·�7kOÚØÛ®>žü[ÁnÿèU\xžÔÃÓyZ¢¾Qïuž'uN·pƒÒ·ÒŠÙ zr)I¹ ¡‹a#'„µÉ�smƒšýÊùR¼§iïåÊG¾kìÔGІo|¶¿ƒ6ïxÇ;šÇ{Ì>XrÂöÚ±w`É$‡*I¯+ÚïÚŠìŸìê/ßs¼9n_ôÑ‚wï!ñÏ:ÿ¬ðe]úžÃz�ç5&¥ç�Kù®mGíS´úJÑ)Û.r;xLm8�šÔp‹<)r9ÐåôðPÒ£í\ûÛ+ùT›ZZ}“®µ­ÅÁïE]Ô~¸ô%/yIû�‚eûºN›àH\œäOyÐ-?odyûÊqO3¾yˆ¿ö3`¦C±¯ÿâå›,xU¾ðsÞyçµ{*Ñ›xà+WT¯tκVuJ{Ÿ9�bkqj£´Ú+­˜YéÔz_jojðžg )9ô©` ËÙÍC]&¶‰¸J±»™…1jœû÷ïo~ô£Ùe8ûù½ËÃëñH|äm2�&¼©Ç_rI?üöNð¡·ö„ùX±Ïœ/�NòíÛ·¯MúÔ³ø­åÐȰh?”ŽÀªWÚcs:Åzœç›¢ÕFé¾V®¾”®µï‚›š`ìõ<HÉ¡ßèI ×6ãë:À~õG_›Qk¹þ^|ñÅÍ¥—^Ú4‡Íêá6›‡I‹d"™ebð[zMz@[;ØŠÍÊA»ÆoÇýxïžë®�Ïó~üJzÅwÁö±ËùOéRrm´â”ö¸>eŸÊµ^Û '”è\#©Ààv9Û’¾ÆcçD�‹‡X_3­=f¼ú'ÝÅïe—]Ö,_hÖžGÒ›åè×&:·ðsÛ’CÖnØÛÝûá–ðõ¤ù`ò›ÍÚÓkͪ½}»ùþC›ˆW‹çUÚë=¯x¯ó| [‹S{Oç|(¶§6)zž¾¢6|LL¹Æûê|ƒ>¨œ_`KzbjpÀr2Ý· ­yÿúÆ;ô 'q¿ÀI;F&ù0ÙÛ‰’]~˜ñàá¯=L€3ûA×ÖFŒä8ö_±­?¶ü¼âÂ10ô¸”–ƒ×{~ìȯó|«º�󙲫µQœÒ)¿^®6J+®”_Š�è©«h(:‹ ã¾:É•& "ç·Ô®úã ¥âW¬\.6µÙJ´Æ�¸°[ŽròiLNã‹x­lüO·Ôí0Ò�nkû7âÇpˆp¯¿]î¼ÀN²Â±yHÊrúÈñ^çyâP{�çSØZœÚ{:å#%÷öÊ÷±Q{¥#_‘lj€“HçÐ¥,§ã ›J¶œ­Æ”j›ñuÅÏØè##õ›Qû} øÃ†"ìÓ�3w„%ôØFybG2²œZ_6Ÿ´oúµS¿~x~ÜŽãy�öòOû.~iãëZ9œú¬Å¥lRö¥uBý¥èpÎS‰€€R‰˜ÓÕø&å:FJìÐbøßljÔfÞ´�¡äÿÞ{ïmŸÁßeÏ ´É«INãVÆL§ã4¢Çµ؉ ß Å­ÉúÍ=Žñº·iÊc¾ûؤbŒ|E2ØOLiby^쫃�Üä}Î7ô(À h¼­ ø×˜Oí!3�‰¡k¢³m_ßÿýÍâY‹vG e+ŽÛY„‹(c�Lí“#Ì®ÝXUVšÕU¾ùc}–*{ê=O9ë’ž8Ô]°µv9ŸªSZ}{º§vj£´bji}ð'²™˜"H%YI)ÛšI gÏXs1ÃZ3±5õ¼’·¦­ý³k»×š]{,1°ÅöeœìPHÂ�ØN»v4ÇÚ„bZÜel·cÐqlí‚&’©©×{~^Xõ£t—öÔNéœÅ)ÝÇ&µîuõ5q@ƒR:ç4§ƒ�œ�Hu„íçìSƒ#5ðü©|»ÐŒ5núÓŸþÔ4ç,7 xL ŒìÅž@{¿@8”ƒEAbã~T·— Æ2Ôæ Kc·ë‡JLĤ…±ªÌÓ‘�Ç�ß(,ý—jß~ _‹S{µQZ1µtië?U€¹`rº’-ô5“@© ¶\ xÚ°¦|+ÕŒ�µÆöÅ/~±=þ_z¥I—�½ø 4’y”ä4 &oM\Ò�'ÓïÚk®íBVªÜŠ…ø´x^u¤=ÆóÄ¡ö:ÏÏ ›òSÛ^×Ç·Ú¤ò¥¶MõU=À(×t%½6ìéÚ½�\ê³�b=M[­=f#ym—tª½Ûn»­}Lx—%çÂùø.—!5á5ñ5ÙA[Âû-½&=ý´9½`ï ¸`>ÌĪÅóªõ-gãužWÿ^çù¶V×§69:o*ù½¯Ü$­Ø©sh8w|<‹ž�ÊùGK'×jü°“ĂϵK|ªV?¦‹ï’¯ÈJ†÷ ì:o¥Yø+{?Þ/ç)f“‹‡gþÛ=ƒ-¾Äþ�gOþ~¶ý /Ÿˆúɤ¥pc‘³ñ:Ï«oOwÁz[åkýôÁ©�ÒÚ~ŽîcSÉ9„.·ÂϪç,7ωýÒ>åâçt©Õw»Y°·ÞzkóóŸÿ¼œkoúæ gñ‘ìLä±ó‘ÀËÉ[MgúÛâ' .¼ÀÞJt‘Ýô›ž}¶ý(§ï·ç‡Î&ÿG˜H6iµÎ•°%ýº§ÉuBå Õ�Ò}qj—ó§8¥™*‹èÚ­?lÃCÇ:j$§~V=|Ôvm•Úƒ?-´éj§>6“ÆØ|ò“Ÿl�ýöÛîù¹�žôÃî8~­ :û!Ëñ3z|ÜoŸñ±çüLh¿5ü†zû–Å Müb›ŽÛ{ì§¥f,=†ËAýxZm”ö8ð^ïyµ©ÕÕâÔwZý+]ë£� }OìÀ‘ß2F2³ao3/=üp(í [Š˜¨ÐŽºT¨ßŒÚÇøå/¹9pà€½Ðvã.-F·ÕF®¯—Ñ–�‡¥¸T/Ø•€=ûm8b/ÿ=vlüin_äÇc<_²)á½Þó꿯N}x:çS±µ8µa¨,¢»lýa?1@€à|D2`Y6Z�v8]&Øù¾@V*Ñêã§ÔNJµ¯Ø'Ÿ|²¹æškšÁÙƒfé’e;Co[ñÉl_‡÷LôuÓ&�U;!¸üˆ½ŽìùçÛóÓ¨I‰ï“ç'Ñë“9åóÄ—|±MÔ9¬ê”Vû­vJ—ì¨ïcC[ÔS„‘SÈrI0=Úε}—‰xíKÉ7ð©¢~RÊ£vºØÓOªþÔ§>Õüå/igÇp83¿Ižjrܰd{+‡›WöìÁMq‰úÉÔÚë=¯XÐ^ïy�Ïñj«´·Éé•ÎÙäÖeõQÊÕ\É FLª” "”ô°©ÅÔàãÎ ±©íE¿~ò¨=öûñÇo>ó™Ï4ƒsÃc{0g³ ?–^mQØý¸" O 26ÆO>ª=ÆóÞÆë=_«ÞÛz¾/6gW«SœÒ¹WCg':È%R)èç�A,5¾3ëyLô…š1lD­íxú£ýhóÔSO5»þÆø9ßk7�_x‘íàÞ+Ü Íñ�*²\ñzÏ{Û’^ñ9¬×y^ýähµSÚÛärN±³lýá§j0:’ë ìKzbºàj°ðË2ïÉ€~7º¾îºëÚ¯ γ;þl‹»Y'þ¢~"–öìF$܈§k–K„‰dÚ¦×{^± »èKXõÝ[kWÊ5�eVzjÈ™ �äl©/aºàºb�gÑÉ Ô/ÚlF}èСá®ÿYƒf³Oü¥ú¿`É�›ƒP0 ”Š_À{™÷áõž/ásúY}yßäs~s:Ú—êY·þð?5@˜ ®”,°ÍÙ—üCÏRãËcKmïk?!”úéí7ŠÇ®?nüi^ºÜ,áÄßV,v2rñ•v>ÀNbÀß"¬!ûåãyÅ’öÏÇzV=ý ö¾<¯X¥=Ny¥Õtn½S»y$?Ú o‚B¯…Aæîʃ}tC ýÐÓ ú]㸨°Ÿ‘.×÷Ÿ“¥ÚùÎw¾ÓÜ|óÍÍÀ>>¸d¥Á¥·­ZìràÀHZ±…Ž=Ú¾7PÇH— ûɨcí1ž'ŽuW}ïužg›¥ºÖ.µÀ­�R,^ŸœØh.�°.dïœAç|Ô`è· ÖÛ€ÏÅA|m�[Xµ>r¸Ã‡7W]uU3Øc»þÛ‰¿}9ôÖÐ-Øãƒ¿±½€û†÷à+Á(\nŒÒó”ka"YÉ&§Ïùó:Ï«_O+Vià<ïmkøymýÑÖÔ!€Ðó>ÀšD(ù€O`jp]±/Û¨mGmO5ý±�}l¸ëÿ2Ûõ·Ýë;æ_Óÿö„ n²+¸"�¬ûÉ4¦®úÞë<¯íz:‡Íéry¤vóL~Ä>5@¨ ’÷2ÈY|®ÀÁ>烾jqê³Æ/ý³f;ZS·Ùõw¿ûÝæg?ûÙh×ßr ïúû±Â݉í AÛ·Ä‚\6g�÷<ñ”רyÚ²özÏÕ³`ÕVißN.wrvÞO>œRŽJÁä:BŸ%Š«ÅÂXþè£kM{­»ú˜ÿç?ÿ¹¹òÊ+G»þv»ï6ØõŸè3NÚÉJ>'€‚Ïšâqž�|”0^ïyïSõJ{œç=Öó߇Ÿ÷Ö1dÏDA¢c¹ciN³ž`ÛÈ\›Ä²¦ ø.v´×Z}©ÜÓ]ÚÉù¼üòË›#GŽ4ƒ‹lál“]? v—"žT\±wಠ>$R³>¨ŸÜWÂx½çé‡uIO\©ö~<¯öÌ•‘V»�H~´Ói@Óà(×:×1âà£ä§–6¨ÙFm;jÛ…ÖvJtÊ/žò»ñƷ宿ïSûœÀ«†R½CÐã¢åÉÔŽã«2O{žŸ¯ö9ß9].GrvÚö¬tr@¥ Jzt0×I_Ó–Ç–Ú&^k¶ÃZu›Mc«ÿéOzûîú»lOî7áèõaþ{Ñ2ˆdÎmq�~´x^u ½Þó¯¼Ç*¯´Ú€Îå…·Û¨­?☘|ÃD2ÈY /a6b"@û5m3Ψ¦½ÖîTÈ>þñ�78þo¶ÑYÿÒ¸,Ø«Ê÷\l({�M?ÑùIDAT[9ö¸ž°VûH¦zÐ}0%¯÷¼�Ay�U^iµéJodò#–‰ ‚(ðH¬–LnÖó¾jüÑXþ(ë[Ó�¯ûú«±ûÁ~ÐÜpà ;b×ß÷wÉî À+İ"G'9ÎÞÎóÀåJä§ÆF}–ð9lÛ\tñ£ñô¥Ã“€Q”åNvÕ`ØùÜI!v¦Æ±¬i>+ñµµú­µ©Áá6ßõ]ÿíqÃOM¿ˆi_2:!øÜÑç&NÖŒiÌFÙ°OÞ‰§j®ÿ*#íýlôÖíNí0˜T탌p5 Dn0Ô/üñ§òMÖ%üfè?ñ‰O4¸ëo'íúûqÔ‚¼7ˤTú`6ʆ±zÿ%žv¨së»÷s*’1už`„`}À�k©Áße"¾Ö/°¾Ð–µ×Ÿjö¸þúëw䮿Žå.»7`°ß$öœ ô'K˨T<Æó‘½Çx>²¡ÌcK<íPç’_q OUò£­ä€ÎùÂ@KIl�àúN51ÀT›Ön#d'Nœh?ì1¼×ÞðÓqPÚ¯ �Nææ²(¹÷ËÝóÞ>ò[²Q[âÕ¶D«¯S™üˆ+90h Ž2­¡/a€¯Åq"è2cÒwM{D«/OGø¾²ÏþóÍ<°£wýýØàqaœDÁèKÍòã2QÛ’]¤�dêSi�-ñj :·.{_Þv£ù‰“€&:q–’kp5àÙá¨õšWsÂ�¶ô¾¦ ÚÕÔ껟ÂÜwß}Í7¿ùÍö›~[ý1ßTúÈÛ‚xdØ®v>wì¹fii©½C°v\=ÎóQLãùÈFe_âÕ4×a/ï}�ê­?b˜ÚðA„yJ7DÔaú`1ˆ¹�¤O_3fÖ^¿Y<®ùca/\¼ówýý/Ø�AƒÑ‹M°PZ§hïqž'Nk�ñ¼b#º„/és묷݌äGŸ§&}p�±ätŠ©Á\-–An`CT³-­#ÜFʰåÿõ¯½e^í½‘}�|ë#ø/ z“°ÚqYy™òí×)ÏG6*‹ð*SZíHçÖQo»YÉ�X'&;ãkàj°µ8øï‚~ÖÉ>PØ®ÖCÍüÿãrßÕW_Ý ^`¯ö¶]a<4s:–öA¼7À@£s,-\F*ót„ñ~¼�ç=ÞûôzoŸK~�ÝÌäG,ìêRGüÀÀ>*µ8ØvÁ²­yMôÇR5q]k<æË÷ûµßôëê`áq‡ ½A—}pܵ»�•J„‰d9?_⽯šœñ6›ÉOMF;]ê�Çç:£~s8ú¾‹ ìt2¨‰½G¤g\]j|ÓïÇ?þqëïÒÇ®ðé\ÚG†m/ŸÃeA.gÖŽ1ùTí퀋d)ûïí=ï}•Ö7oï'>ïïTðáàfRy¹òèœï êIWƒõ6ä»ÔŒ�uÛyaï¾ûîæø@»µkÏ|Û—tÎÛýÄFm/{~�ðü9ýßãÀ{Ù´Õ¤ÄãKü¤uþl?°ÞßVH~ÄU5ˆRšá€AG}g!�J,쉯õµÉ‰@ë7/Ùç>÷¹æ½ï}oƒO{¡`Á¯�—÷íí{A‹£ À?-X³Œ¹>è(ÔØ)´·)ñÞ¾”ÞßVI~ô£Ó&è\A§}ÇSø.Xú Mm´‹jöÉ×¶‹ì _øBóÕ¯~µ±›_ÛÛ`{í¹X+k‡l¥[íâiçbÛ/ÛaJô´àP3ý?Zî‘lÚrRâmJü¤uy£èým¥äG_&nò�ËñœõJ7épjnÊé‚ÕØhYM;j›£ÙǺh °EûÚ×¾Ö Î¶×a½v¹9͸Ç&‚ûÍà™¥æäsöžÿ3‡–õ6Ïa‡‡¨wïÞ�\Žº¬�E‰dCMþ¿·+ñÞ[iýðþ¶Zò£?Öò¼ð„(<–ƒ¡þ=†<±àkð´C­¶à»Úæk‰V„[n¹eø�Œ‹l�÷Oú ^cñ³ýðJ³d5¾ª{Z;±¿ò_£8Ûj;$X~fø°¾)à—�_¶°Œd#�É*²ñ2Ï{gÑ2WŒ·ßŠÉ�x§¸ïyí$i Fi@ˆ­ñG,jâ5&Õ—hµ']²™‡�½¢à!žñ_8ǶnoB{Ó煮îe “¡½8o Ús‰]øG›,Gw jÂDË-’ÕŒ'ì|ñ2Ï{|i]÷öÚïk³ù‰=€\0蔟‘=ž3ï=¶£[Š…6Q­~¨ŸÅ}hýš×¼¦}ùÅêãË ®yóõÞ¸xö?ØÄö¼¢OSÏÙ<9øÛÑ^Òn›,ñ1!;?rü‰ã6/ &6F¥hùQ—«½�çaÉÔ'×q•)íí·rò#î‰=¼v 4ô% p¤Ò@‡BŸ5~‡Ãÿ}íÔ‡ÒêÏÓŠ«¥/¹ä’æ]ïzW³ò„ÝíöKÛÕ}Äú::ñ‡=�E{6þt/HöݶåÇ¡?~²ËNâyœ7õë—KŸqƒ­–ˆ÷2Ńöñx½·ßêÉ�ø§öЉÒÖ�-á8`5{¦Ö/°ZhY)&µ«¥Õ­ p¸ícðÃþ°ÙulЬ¾Ü>óeçð9mtñ·Ó°»öØ`ɯeÕÎ œ8h[3uYö]‘�—y^ã!Íu™¼¯½�í�üèÃÄ;å;C¹¯�«ÁbðJ¨¾é·Æ·Ú�VÛ>öÞß,<ÎféK_jp/À‹_øâfÙ®¬Ü>hNÜi{¹¶¢¯�9 /öŽV¶·ße"»O⬥áƒ\žc`"Zþ^æùÈ}iÝõ>¶Kò£¯áÀAð£Ü×µ¸®Ú�oþ|»5©}rúýó aËúBâ£ÿ'~kÉÿï¦Ñ{öìi«6.©Žaykáò÷2å=]³¾úv¶Sò£¿S‡~ØAÝóðµ8`uF­=<Ð6@—â&U«êgñ§~R4úùž÷¼§ýáqà¯|å+ÍÍ7ßÜôx³û¯ÍÚ ìd¡ûâÛ86nŸ´wéíÄ‚¤?i×ÿO>c¡½iWDŒÆmÒ¸Y Ë"ZF5cÙy™ç#¿ºŽFzȼŸí–üèCq…�-%J-nèu}2è2h< K1±­\͸S˜y´AßoxÃÚ;:Ô|ãßh÷î½÷ÞæÙGì;zvãÐò_-7û¨N†áN9+·?;K¾K›ðv¸sÒÎø¯¶en—þVp;4~6, Ö–þEËÐË<µwº$?ú^=p 8€¥„ v%,0:è³Lµí×¥hºØå°çŸ~sÅW´l=~ó›ß4·Ýv[sû·7÷üþžæèm·ˆ�ŸÜ»Üî,âIB›vá®bûí²%ØÒ[`o‰ŽKx'W¬¶_›ðv»øã„·³û(ø`(vóÎÎ…Á…ÿѲ©•y׺zøÈïvÜò³o�'b j[­¯ ¡ëd í1ÖÚv‰ßŒ»¿o|ãÛß?7ÿ܆pÏ=÷´Â�wÞÙüþžß7O>ødóü»>ŽÛ‹w/4«‹¶ùÄ^�í!,Øå3ÜZŒ�ÚiÝ&¼Ž»-¨ûÐkf‡CiÔü’´%9NdâîF${{Ã|I>ºÆ�‰ñ l–²\ػЮ7\&QB™Eu‰ì½Ìó)çºÞE˜ÈÏvN~ô19`0JÉÇáÂŒMe]ñ°Õ…RŠGÛRšíª¬6fµ9Õôk_ûÚ¿øÃmÓèÇ#�<Òû61 £X¨¾p"�bkq´!|É7mXë‚›u2 OÔ“ÊIw�“v5u©í’Fìß¿¿ý•°£ñ[¹é¦›ÆÀ¬íçìsºR¬ÔG>jeô¡µ®C*WÚûßIÉ�~NLøCÆB]) ˆƒ] ë}w±¡­_�óœØkíeÛ¡öcĘgíOÎ>§cû5uÊO$�d¾�ÔX(.ò³Ó’ý�štR4§&¹»`ÙmÀ×´A;Ö~oä„À6·ZíÇ`Þñé2ò¾s:�Íñ)?‘<’E¾kÆ%òµ“ã31 ã]ŽUcÓ« Žv�Õ´£¶¤S }'L ©¾±ïó¬uYD~KúÈ&%‹|ÕÊ"ŸµãäÛØ©‰Ï1š˜ Ä ÑP“&8UsÐj”XøªÁk›³ØªÒ©•b+N ©XÙ—�ªuÌ£6JúÈ&'Kù‹ä‘,ò]3v‘¯�žü+?´7P�Céªdå Ö&vW¼.\ÚRVÛ&ñ¹ºf…Qû>F×6´½Yi?vÞ_I| ÆûÍñ)‘<’E¾kÇ8ò·Ã’¿ÍåhŒ&&ˆg,‘Úǰžyæ™Cçž{®½¸yX8H5‰Ö ïă®ñœ/꺾~¼ß¾vE«ñµ?6QóÂD¾s²T»‘<’¥|×.“ÈçKþæ¯xž¶粎™¿ó1Èï~÷;¼¬iª@OÌ”Ò º`iJ›Ú6hçkõ3«/ï{«ó]úNlªOÔÏ{ é×·›“{lÄ#ñk’?j‰¿Ó’cô¦7½)Ìeè¦&18·Þzëøú0d¾Dè1ä‰EÝ¥ôµ‹ÚP_JGØí"Ó~(=küóôåc¡ïYåÞ|Mâ‡|Ù‰‰Ï>¾ímoç²�îådYõ€½¼jXî¸ã{0µ\R 4eÙO?´cMù¬5ý¥êYýÏjŸŠ òy߯¼üÒ�ú§Œ5uäY§äÔk}f«¯£1M_|ñÅã\¶»?ŸÄ‘‰ ÀòGT>ôÐC¯¶[G�t™U±Ðj põ=«½úÊÑÚÎfйØfÑi_fñ“³e&¥KÉ#µ‰[øõe'oõÙ×}ûöÙ»wï«É?ýôÓöæ…qybb°ûÃí5�=±mOu®®.^uÕU÷ƒî:Ð]"ü-$èKEíI—lN'=ÇDë�ì?Û‰ÚHéRòÈd³l˜vê±~4V_ÿú×ÿûØ#çöìæ¸LN&^µ�ýÕ×_ý?8pÀÞ`7,]&Xt]¨jÛY Ûf=‹¯ífË>³>ñ³-Ô¾Ôè¼MŠï²F±œ[}ŽÝ»ßýî;l÷ÿ‘G}íµ×êÕ€_O?ùcßg°—5°kÛÂÀ¾ÐrÄNâuMö*ŠÉÒçúwßËs}í&#žæ6ÊïtKó—D+xÇVŽ¿îu¯=;ÜÑÒà¥ösúœ.Фv‹ÛÈ÷锸ÛõÂ^97°¼=<Š}†ý‘7¿ùÍâIÐQyÇÄ!ÀHh¯vh.ç€;vìEùÈG²œº”ÀÙ˜XzÍÕX8ÑÊÙ@G;Ö%|­žþru­¯yãr1A·EcJµOŒ×SÞ%v®cÞWÄÓ¿×�†Éø{ßûÞcšüvHòƒü åþ8ùñNê[£ Ï�×”ÿ—ƒoo¤yÝe—]¶ðÇ?þïm ±¡2rauYÔ�Ú÷õ¡þr´oëTñ¹˜fÑiü5~jð9 u5mÓg}¢-k$þé–üö)ú³-ÿÒ\ð?9¨úÓŸþê®»îºHd×ý\t@Ì’ ücÞIvùßùÎwþⳟýìþè�€8Ô}`7¯]òyùALÛ½ åøë_ÿúð c3vU”ôcGB ñ»”¨�Ó-é1^v×îßúÖ·Úû ìÃs“žSù°mÀ_f‡<ˆ¶ý�ýÈMð²h“N ~ ‹%ÿI»½ð{‡Ý£æxÅŽ#÷�sÎ98¹ú뛌}ígT÷�˜"_[MÖ5yl·pùío;^/Z]¢„Sã’^±J§ìRò®}Õ¶v�ü;„;üì&Ÿ;Ñ÷R\êÓ³ýì#Žûß÷¾÷5÷ß{No$ÿ«Ûœ–Ƭ-áÿ�%ãÕÆ«“Þ[yø-%wIÏØjqÄŸ©×GÀV˜ã¿üå/'öR ·n•§º&f—öj±µ¸|O¶·Çü7Þxão®¼òÊ¿—-?:…«z—Ù¯ý.UÕ++¸:p¹Õ˜9ÆwA�2Ë–µ”Ä%ý0‚õÿ]ñë–;—Š’Â&övˆt]F¢kÒÃw×6kñµ¸.ýÛnX»Ûïñ}èCÏÛäþ*ûÃÆãáQÊ»L´Y°‰à�ùßö{½ øË-á^nô9Ì2À¾&yk0ð¥¥��Úo'º6 lYÿÅ/~Ñ>ýÙµµmx¿]íjñµ8ÏvçmK�òÔ‘#Gž²øŽ^wÝuçÙɾWÙ$ໆ›üþÉ~©¢Ï ögèí=gYÁeßd™GbÍsát<Á—\8u \÷û’ý>i¿ñ5@šN¼€Â3õé=›•ôõ\Ûg’¿Óz‰]€ÿg¿ÏÛïÁ”å™ 52§‘<—t]†¡Ï–žþs1œI|ŽRXãñÞ'í‡gxìClÍö»É~ÿj?½ïߨéòßÈ µÔîæI”IEND®B`‚icnV C CorsixTH-0.70.0/CorsixTH/Levels/000077500000000000000000000000001522247547500162535ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Levels/Example.map000066400000000000000000005001541522247547500203520ustar00rootroot00000000000000                                AxyAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxAxq  AyAAAAAAAAAAAAAAAAAAAq  AyAAAAAAAAAAAAAAAAAAAq  AyAAAAAAAAAAAAAAAAAAAq  AyAAAAAAAAAAAA  KyAKAKAKAKAKAKAKAKq AyAAAAMqD@AyAAAAq  AyKAKAKAKAKAKAKAKAq AyAAAALqCOAyAAAAq <= K{AKAKAKAKAKAKAKAKq AyAAAAAxAxAxAAAAAq   A}KAKAKAKAKAKAKAKAq AyAAAAAAAAAAAAq         KyAKAKAKAKAKAKAKAKq AyAAAAAAAAAAAAq  AyKAKAKAKAKAKAKAKAq AyAAAAAAAAAAAAq  K{AKAKAKAKAKAKAKAKq AyAAAAAAAAAAAAq  A}KAKq > KyAKAq AyAAAAAAAAAAAAAxAxAxAxKxAxKzA|KxAx:KÚ;AKØAxKxAxKxAKAKq AyAAAAAAAAAAAAAAAAAKAKAKAKAKAKAKAKAq  p p p p p p p p p p p p p p p p=pK{AKAKAKAKAKAKAKAKs A}KAKAKAKAKAKAKAKAu KyAKAKAKAKAKAKAKAK>q:AÛKAKAKAKAKAKAKAKA:×;KAKAKAKAKAKAKAKAK;AÙKAKAKAKAKAKAKAKAÕ                                                   =KyAKAKAKAKAKAKAKAK<q                                                           AyKAKAKAKAKAKAKAKAs KyAKAKAKAKAKAKAKAKu A{KAKAKAKAKAKAKAKAq K}AKAKAKAKAKAKAKAKs AyKAKAKAKAKAKAKAKAu KyAKAKAKAKAKAKAKAKq  p p r t p=p:Ö;Ô 0 #gbv.ResearchPointsDivisor 1 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 200 #awards_trophies.CansofCokeBonus 10000 #awards_trophies.Reputation 850 #awards_trophies.TrophyReputationBonus 20000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 2 1 50000 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? 1 is yes, 0 no | Name | #computer[12].Playing.Name 1 CORSIX #computer[13].Playing.Name 1 ROUJIN #computer[14].Playing.Name 1 EDVIN CorsixTH-0.70.0/CorsixTH/Levels/avatar.map000066400000000000000000005001541522247547500202350ustar00rootroot00000000000000   ¶¶   ¶  ¶ ¶ ¶¶  ¶ ¶  ¶ ¶    ¶ ¶ ¶¶ ¶   ¶¶ ¶   ¶¶   ¶¶ ¶   ¶ ¶ ¶  ¶¶  >¶ ¶  < =¶¶ < ¶ = < N;: = ¶MD@¶  >LCO  x{xz|xz|xxq >¶  }s xyxz|xxxxz|xxq xyxz|xxxxz|xxq >  yu¶ {q ys  {q }q yu  }q y>q y>q > ys {xz|xxx:×< =:Ûu¶ };› ;>q yÕ> Ùxxz|xxq  p p p p=pyLCO ¶¶ }s¶ yq¢­ yu§ >¶  yu  p r t=p:Ö;Ô yq§ > ¶¶ yq¶  yq§  {s¼ ¼  p p r t=p:Ö;Ô ¶¶ yq    p r t p r t p r t p p ¶¼ ¼¾ <     =  £¯¯¯¤ ¶¼ ¼¾ ¢¯¯¯­  >     =<     :Úy;Øxz|xxxz|x:Ú;Øq ¶ {s  }u ¶ yq  {s ¶ }u  yq ¶  p p r t p r t p r t p r t p p  ¶   ¶ ¶    ¶  ¶  ¶ ¶¶   ½  ¶  ¶¶ ¶ ¶ ¶   ¶  ¶ ¶¶    ÁCorsixTH-0.70.0/CorsixTH/Levels/confined_v5.level000066400000000000000000000247171522247547500215160ustar00rootroot00000000000000Copyright (c) 2010 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Confined" %MapFile = "confined_v5.map" %LevelBriefing = "You have been tasked to build a hospital in an area where only a few apartments are for sale. Land prices around here are astronomical, so you will have to live with a very confined space until you have earned enough money to expand." %LevelDebriefing = "Great job! You never really noticed the space issue, right?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 15000 1000 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 100 The following table contains all diagnoses and treatments that shows up in the drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease, MaxDiagDiff is how hard it is to diagnose (don't apply to diag rooms). #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd.MaxDiagDiff 1 40000 500 BLOATY_HEAD #expertise[3].Known.RschReqd.MaxDiagDiff 1 40000 150 HAIRYITUS #expertise[4].Known.RschReqd.MaxDiagDiff 1 60000 150 ELVIS #expertise[5].Known.RschReqd.MaxDiagDiff 1 60000 150 INVIS #expertise[6].Known.RschReqd.MaxDiagDiff 1 60000 750 RADIATION #expertise[7].Known.RschReqd.MaxDiagDiff 1 40000 150 SLACK_TONGUE #expertise[8].Known.RschReqd.MaxDiagDiff 1 60000 350 ALIEN #expertise[9].Known.RschReqd.MaxDiagDiff 1 20000 100 BROKEN_BONES #expertise[10].Known.RschReqd.MaxDiagDiff 1 40000 150 BALDNESS #expertise[11].Known.RschReqd.MaxDiagDiff 1 40000 500 DISCRETE_ITCHING #expertise[12].Known.RschReqd.MaxDiagDiff 1 40000 450 JELLYITUS #expertise[13].Known.RschReqd.MaxDiagDiff 1 40000 500 SLEEPING_ILLNESS #expertise[14].Known.RschReqd.MaxDiagDiff 1 30000 300 PREGNANT #expertise[15].Known.RschReqd.MaxDiagDiff 1 40000 250 TRANSPARENCY #expertise[16].Known.RschReqd.MaxDiagDiff 1 20000 250 UNCOMMON_COLD #expertise[17].Known.RschReqd.MaxDiagDiff 1 60000 750 BROKEN_WIND #expertise[18].Known.RschReqd.MaxDiagDiff 1 20000 250 SPARE_RIBS #expertise[19].Known.RschReqd.MaxDiagDiff 1 20000 500 KIDNEY_BEANS #expertise[20].Known.RschReqd.MaxDiagDiff 1 20000 500 BROKEN_HEART #expertise[21].Known.RschReqd.MaxDiagDiff 1 20000 600 RUPTURED_NODULES #expertise[22].Known.RschReqd.MaxDiagDiff 1 40000 250 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd.MaxDiagDiff 1 60000 250 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd.MaxDiagDiff 1 40000 500 CORRUGATED_ANKLES #expertise[25].Known.RschReqd.MaxDiagDiff 1 40000 600 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd.MaxDiagDiff 1 40000 300 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd.MaxDiagDiff 1 40000 300 FAKE_BLOOD #expertise[28].Known.RschReqd.MaxDiagDiff 1 40000 500 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd.MaxDiagDiff 1 20000 750 THE_SQUITS #expertise[30].Known.RschReqd.MaxDiagDiff 1 20000 700 IRON_LUNGS #expertise[31].Known.RschReqd.MaxDiagDiff 1 40000 750 SWEATY_PALMS #expertise[32].Known.RschReqd.MaxDiagDiff 1 20000 500 HEAPED_PILES #expertise[33].Known.RschReqd.MaxDiagDiff 1 20000 750 GUT_ROT #expertise[34].Known.RschReqd.MaxDiagDiff 1 20000 500 GOLF_STONES #expertise[35].Known.RschReqd.MaxDiagDiff 1 20000 500 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 1 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 1 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 1 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 1 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 1 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 1 12 1 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 1 9 1 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 1 7 1 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 1 11 1 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 1 8 1 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 1 10 1 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 1 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 1 12 1 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 1 0 1 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 1 10 1 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 1 8 1 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 1 7 1 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 1 10 1 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 1 I_HAIRYITUS #visuals[2] 1 I_ELVIS #visuals[3] 1 I_INVIS #visuals[4] 1 I_RADIATION #visuals[5] 1 I_SLACK_TONGUE #visuals[6] 1 I_ALIEN #visuals[7] 1 I_BROKEN_BONES #visuals[8] 1 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 1 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 1 I_PREGNANT #visuals[13] 1 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 1 I_SPARE_RIBS #non_visuals[3] 1 I_KIDNEY_BEANS #non_visuals[4] 1 I_BROKEN_HEART #non_visuals[5] 1 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 1 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 1 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[18] 1 I_GOLF_STONES #non_visuals[19] 1 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 0 8 8 3 2 10 10 10 10 5 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 25 Handyman #staff[3].MinSalary 20 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 40 Surgeon #gbv.SalaryAdd[6] 30 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 150 #gbv.TrainingRate 40 #gbv.AbilityThreshold[0] 75 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 45 Researcher #gbv.TrainingValue[0] 10 Projector #gbv.TrainingValue[1] 15 Skeleton #gbv.TrainingValue[2] 20 Bookcase --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 200 #awards_trophies.CansofCokeBonus 10000 #awards_trophies.Reputation 850 #awards_trophies.TrophyReputationBonus 20000 ------------------ Winning and Losing Conditions ------------------- 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 500 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 50000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 50 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 50 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 100000 1 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 250 1 300 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 0 -20000 2 0 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 5 1 50 3 40 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? 1 is yes, 0 no | Name | #computer[12].Playing.Name 1 CORSIX #computer[13].Playing.Name 1 ROUJIN #computer[14].Playing.Name 1 EDVIN ----------------------- Emergency Control -------------------------- #emergency_control[0].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 4 5 4 6 16 75 400 #emergency_control[1].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 8 10 3 5 32 75 500 CorsixTH-0.70.0/CorsixTH/Levels/confined_v5.map000066400000000000000000005001541522247547500211560ustar00rootroot00000000000000???????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>3>1>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>9>)>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>><? ? ? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?¸?·?¸?·?¸?·?¸? ?>>>?¸?·?¸?·?¸?§???????? ?>>>????????§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§???????? ???????§???????? ?????????§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????xyz|x:Ú>;>Øz|q????§????xyz|xx:Ú>;>Øxxz|xq???§???½????½????½??? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????{s????§????yq???§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????}u????§????yq???§???½????½????½??? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????yq????§????yq???§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????yq????§????yq???§???½????½????½??? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????yq????§????p?p?t?p?ypq?r?t?p????§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????{s????§????????{s???????§???½????½????½??? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????}u????§????????}u???????§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????yq????§????????yq???????§???½????½????½??? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????yq????§????????yq???????§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§?????p?r?t?p?p?p?r?t?p?????§????????r?t?p?r?t????????§???½????½????½??? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§??????????????????§????????????????????§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§??????????????????§????????????????????§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?§??????????????????§????????????????????§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>?¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?©?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?«???xyxz|xxz|xxq? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§???ys? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§???{u? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§???}q? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§???ys? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§???yu? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§???: Ö?;>Ô?p?{:×? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¾? ?>??};>>>>9>)>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¼? ?>??y Õ?=?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¾? ?>??ys? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¼? ?>??{u? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¾? ?>??}q? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¼? ?>??ys? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¾? ?>??yu? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¼? ?>??yq? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¾? ?>??p?p?r?t?p?p?? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¼? ?>>????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??¾? ?>>>>>>>>>>>>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§??? ? ? ? ? ? ? ? ? ? ? ?=?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????§?????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>???????????????????????????????????????¢?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯?¯? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>???????????????????????????????????????????????????? ?>>9>*>(>2>*>(>2>1>>>????????????????????????????????????????????????????? ?>>9>*>(>2>1>>>????????????????????¹CorsixTH-0.70.0/CorsixTH/Levels/demo.level000066400000000000000000000121721522247547500202330ustar00rootroot00000000000000Copyright (c) 2010-2014 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Demo Town" %MapFile = "LEVEL.L1" %LevelBriefing = "This is the only map available as long as you use the Theme Hospital Demo files." %LevelDebriefing = "That was not too hard right? Time to get the real deal?" #town.StartCash 60000 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 100 #expertise[2].Known.RschReqd 1 40000 BLOATY_HEAD #expertise[4].Known.RschReqd 1 60000 ELVIS #expertise[5].Known.RschReqd 1 60000 INVIS #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 1 40000 DISCRETE_ITCHING #expertise[13].Known.RschReqd 0 40000 SLEEPING_ILLNESS #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 0 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 0 60000 BROKEN_WIND #expertise[18].Known.RschReqd 0 20000 SPARE_RIBS #expertise[19].Known.RschReqd 0 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[22].Known.RschReqd 1 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 0 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 0 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 0 40000 CHRONIC_NOSEHAIR #expertise[28].Known.RschReqd 0 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 0 20000 THE_SQUITS #expertise[31].Known.RschReqd 0 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 0 20000 HEAPED_PILES #expertise[33].Known.RschReqd 0 20000 GUT_ROT #expertise[34].Known.RschReqd 0 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 1 40000 I_D_SCANNER DIAGNOSIS #expertise[38].Known.RschReqd 1 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 1 Scanner #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 1 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 1 10 1 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 0 12 1 Operating Table #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine #visuals[0] 1 I_BLOATY_HEAD #visuals[2] 1 I_ELVIS #visuals[3] 1 I_INVIS #visuals[5] 1 I_SLACK_TONGUE #visuals[8] 1 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[13] 1 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 1 I_SPARE_RIBS #non_visuals[3] 1 I_KIDNEY_BEANS #non_visuals[4] 1 I_BROKEN_HEART #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[19] 1 I_UNEXPECTED_SWELLING #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 700 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 100000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 75 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 6 1 70000 1 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 300 1 350 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 5 1 40 2 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? 1 is yes, 0 no | Name | #computer[12].Playing.Name 1 CORSIX #computer[13].Playing.Name 1 ROUJIN #computer[14].Playing.Name 1 EDVIN CorsixTH-0.70.0/CorsixTH/Levels/example.level000066400000000000000000000264321522247547500207460ustar00rootroot00000000000000Copyright (c) 2010 Edvin "Lego3" Linge Example Level Configuration. This work is licensed under a Creative Commons Attribution 4.0 International License - https://creativecommons.org/licenses/by/4.0/ Only lines beginning with % or # as explained below will be considered by the game. Each line beginning with a %-sign is a directive to use when loading the game, such as the name of the level and where to find the map file. Available commands: - Name: What the level should be called (within quotes) - MapFile: The name of the binary map file to load. First the Levels directory of the original game will be searched, and then the Levels directory of CorsixTH. - LevelBriefing: The body of text shown before you start a custom scenario, and as first information when you have just started a new level. Everything between the citation marks will get included. If you use new lines: One new line is simply discarded, while two new lines in a row creates a new paragraph. So does the special expression // (legacy from Theme Hospital) - LevelDebriefing: Text shown in the fax when you win a level. Lines that begin with # defines all parameters for the level. By default there are no diseases and only some basic rooms are available. ---------------------- General Information ------------------------- %Name = "Example Town" %MapFile = "Example.map" Everything within citation marks will be the briefing/debriefing. Two new lines creates a new paragraph, but additional new lines in a row are discarded. %LevelBriefingTable.en = "This is an example map that shows aspiring map makers what can be done when making new fantastic creations!" %LevelBriefingTable.fr = "Ceci est un exemple de carte qui montre les futurs créateurs de cartes que peut-on faire en réalisant de nouvelles créations fantastiques !" %LevelDebriefingTable.en = "Congratulations! You played through the example map. Time to do your own?" %LevelDebriefingTable.fr = "Toutes nos félicitations! Vous avez joué à travers l'exemple de carte. Il est temps de faire le vôtre ?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 100000 300 Soda price at drinks machines #gbv.SodaPrice 20 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 100 The following table contains all diagnoses and treatments that shows up in the drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease, MaxDiagDiff is how hard it is to diagnose (don't apply to diag rooms). #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd.MaxDiagDiff 1 40000 500 BLOATY_HEAD #expertise[3].Known.RschReqd.MaxDiagDiff 1 40000 150 HAIRYITUS #expertise[4].Known.RschReqd.MaxDiagDiff 1 60000 150 ELVIS #expertise[5].Known.RschReqd.MaxDiagDiff 1 60000 150 INVIS #expertise[6].Known.RschReqd.MaxDiagDiff 1 60000 750 RADIATION #expertise[7].Known.RschReqd.MaxDiagDiff 1 40000 150 SLACK_TONGUE #expertise[8].Known.RschReqd.MaxDiagDiff 1 60000 350 ALIEN #expertise[9].Known.RschReqd.MaxDiagDiff 1 20000 100 BROKEN_BONES #expertise[10].Known.RschReqd.MaxDiagDiff 1 40000 150 BALDNESS #expertise[11].Known.RschReqd.MaxDiagDiff 1 40000 500 DISCRETE_ITCHING #expertise[12].Known.RschReqd.MaxDiagDiff 1 40000 450 JELLYITUS #expertise[13].Known.RschReqd.MaxDiagDiff 1 40000 500 SLEEPING_ILLNESS #expertise[14].Known.RschReqd.MaxDiagDiff 1 30000 300 PREGNANT #expertise[15].Known.RschReqd.MaxDiagDiff 1 40000 250 TRANSPARENCY #expertise[16].Known.RschReqd.MaxDiagDiff 1 20000 250 UNCOMMON_COLD #expertise[17].Known.RschReqd.MaxDiagDiff 1 60000 750 BROKEN_WIND #expertise[18].Known.RschReqd.MaxDiagDiff 1 20000 250 SPARE_RIBS #expertise[19].Known.RschReqd.MaxDiagDiff 1 20000 500 KIDNEY_BEANS #expertise[20].Known.RschReqd.MaxDiagDiff 1 20000 500 BROKEN_HEART #expertise[21].Known.RschReqd.MaxDiagDiff 1 20000 600 RUPTURED_NODULES #expertise[22].Known.RschReqd.MaxDiagDiff 1 40000 250 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd.MaxDiagDiff 1 60000 250 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd.MaxDiagDiff 1 40000 500 CORRUGATED_ANKLES #expertise[25].Known.RschReqd.MaxDiagDiff 1 40000 600 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd.MaxDiagDiff 1 40000 300 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd.MaxDiagDiff 1 40000 300 FAKE_BLOOD #expertise[28].Known.RschReqd.MaxDiagDiff 1 40000 500 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd.MaxDiagDiff 1 20000 750 THE_SQUITS #expertise[30].Known.RschReqd.MaxDiagDiff 1 20000 700 IRON_LUNGS #expertise[31].Known.RschReqd.MaxDiagDiff 1 40000 750 SWEATY_PALMS #expertise[32].Known.RschReqd.MaxDiagDiff 1 20000 500 HEAPED_PILES #expertise[33].Known.RschReqd.MaxDiagDiff 1 20000 750 GUT_ROT #expertise[34].Known.RschReqd.MaxDiagDiff 1 20000 500 GOLF_STONES #expertise[35].Known.RschReqd.MaxDiagDiff 1 20000 500 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 1 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 1 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 1 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 1 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 1 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 1 12 1 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 1 9 1 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 1 7 1 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 1 11 1 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 1 8 1 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 1 10 1 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 1 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 1 12 1 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 1 0 1 Projector #objects[42].StartAvail.StartStrength.AvailableForLevel 1 10 1 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 1 8 1 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 1 7 1 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 1 10 1 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine | Diseases available | Value property to be determined | Comment #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 1 I_HAIRYITUS #visuals[2] 1 I_ELVIS #visuals[3] 1 I_INVIS #visuals[4] 1 I_RADIATION #visuals[5] 1 I_SLACK_TONGUE #visuals[6] 1 I_ALIEN #visuals[7] 1 I_BROKEN_BONES #visuals[8] 1 I_BALDNESS #visuals[9] 1 I_DISCRETE_ITCHING #visuals[10] 1 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 1 I_PREGNANT #visuals[13] 1 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 1 I_BROKEN_WIND #non_visuals[2] 1 I_SPARE_RIBS #non_visuals[3] 1 I_KIDNEY_BEANS #non_visuals[4] 1 I_BROKEN_HEART #non_visuals[5] 1 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 1 I_INFECTIOUS_LAUGHTER #non_visuals[8] 1 I_CORRUGATED_ANKLES #non_visuals[9] 1 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 1 I_FAKE_BLOOD #non_visuals[12] 1 I_GASTRIC_EJECTIONS #non_visuals[13] 1 I_THE_SQUITS #non_visuals[14] 1 I_IRON_LUNGS #non_visuals[15] 1 I_SWEATY_PALMS #non_visuals[16] 1 I_HEAPED_PILES #non_visuals[17] 1 I_GUT_ROT #non_visuals[18] 1 I_GOLF_STONES #non_visuals[19] 1 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists.ShrkRate.SurgRate.RschRate.ConsRate.JrRate 0 8 8 3 2 10 10 10 10 5 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 25 Handyman #staff[3].MinSalary 20 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 40 Surgeon #gbv.SalaryAdd[6] 30 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.TrainingRate 40 #gbv.AbilityThreshold[0] 75 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 45 Researcher #gbv.TrainingValue[0] 10 Projector #gbv.TrainingValue[1] 15 Skeleton #gbv.TrainingValue[2] 20 Bookcase --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 200 #awards_trophies.CansofCokeBonus 10000 #awards_trophies.Reputation 850 #awards_trophies.TrophyReputationBonus 20000 ------------------ Winning and Losing Conditions ------------------- But we don't want any such conditions on the example level! 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #win_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[3].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[4].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 #lose_criteria[5].Criteria.MaxMin.Value.Group.Bound 0 0 0 0 0 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? 1 is yes, 0 no | Name | #computer[12].Playing 1.Name CORSIX #computer[13].Playing 1.Name ROUJIN #computer[14].Playing 1.Name EDVIN ----------------------- Emergency Control -------------------------- #emergency_control[0].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 4 5 4 6 16 75 400 #emergency_control[1].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 8 10 3 5 32 75 500 CorsixTH-0.70.0/CorsixTH/Levels/finisham.level000066400000000000000000000330171522247547500211060ustar00rootroot00000000000000Copyright (c) 2013 Mark "MarkL" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------------- General Information ------------------------- %Name = "Finisham" %MapFile = "finisham.map" %LevelBriefing = "The Ministry of Health wants you to run his newest hospital in the holiday resort of Finisham. This hospital is located in a popular tourist spot and they are opening a Theme Park nearby next year, so expect seasonal peaks in visitors. You are expected to run a superb hospital with the highest of standards; he expects nothing less than perfection. You should aim to keep queues to a minimum and keep your staff happy at the same time. Get a reputation of at least 700, treat 85% of your visitors, cure 900 patients, amass $500,000 in the bank and have a hospital worth $400,000 to keep the Minister happy and make him a big wad of cash at the same time." %LevelDebriefing = "Extremely good work! Where to next?" Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 30000 1200 -------------------- Disease Configuration ------------------------- When a drug is researched, what effectiveness does it have #gbv.StartRating 80 The following table contains all diagnoses and treatments that shows up in the drug casebook in the game. Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. #expertise[1].Known.RschReqd 1 0 GENERAL_PRACTICE #expertise[2].Known.RschReqd 1 40000 BLOATY_HEAD #expertise[3].Known.RschReqd 0 40000 HAIRYITUS #expertise[4].Known.RschReqd 0 60000 ELVIS #expertise[5].Known.RschReqd 0 60000 INVIS #expertise[6].Known.RschReqd 0 60000 RADIATION #expertise[7].Known.RschReqd 0 40000 SLACK_TONGUE #expertise[8].Known.RschReqd 0 60000 ALIEN #expertise[9].Known.RschReqd 0 20000 BROKEN_BONES #expertise[10].Known.RschReqd 0 40000 BALDNESS #expertise[11].Known.RschReqd 0 40000 DISCRETE_ITCHING #expertise[12].Known.RschReqd 0 40000 JELLYITUS #expertise[13].Known.RschReqd 0 40000 SLEEPING_ILLNESS #expertise[14].Known.RschReqd 0 30000 PREGNANT #expertise[15].Known.RschReqd 0 40000 TRANSPARENCY #expertise[16].Known.RschReqd 0 20000 UNCOMMON_COLD #expertise[17].Known.RschReqd 0 60000 BROKEN_WIND #expertise[18].Known.RschReqd 0 20000 SPARE_RIBS #expertise[19].Known.RschReqd 0 20000 KIDNEY_BEANS #expertise[20].Known.RschReqd 0 20000 BROKEN_HEART #expertise[21].Known.RschReqd 0 20000 RUPTURED_NODULES #expertise[22].Known.RschReqd 0 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].Known.RschReqd 1 60000 INFECTIOUS_LAUGHTER #expertise[24].Known.RschReqd 0 40000 CORRUGATED_ANKLES #expertise[25].Known.RschReqd 0 40000 CHRONIC_NOSEHAIR #expertise[26].Known.RschReqd 0 40000 3RD_DEGREE_SIDEBURNS #expertise[27].Known.RschReqd 0 40000 FAKE_BLOOD #expertise[28].Known.RschReqd 0 40000 GASTRIC_EJECTIONS #expertise[29].Known.RschReqd 1 20000 THE_SQUITS #expertise[30].Known.RschReqd 0 20000 IRON_LUNGS #expertise[31].Known.RschReqd 0 40000 SWEATY_PALMS #expertise[32].Known.RschReqd 0 20000 HEAPED_PILES #expertise[33].Known.RschReqd 0 20000 GUT_ROT #expertise[34].Known.RschReqd 0 20000 GOLF_STONES #expertise[35].Known.RschReqd 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 40000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 0 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 30000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 1 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 1 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 1 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 1 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 1 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 0 10 1 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 1 12 1 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 1 0 1 Projector #objects[40].StartAvail.StartStrength.AvailableForLevel 0 1 1 Research Computer #objects[41].StartAvail.StartStrength.AvailableForLevel 0 1 1 Chemical Mixer #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 1 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 1 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 1 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 1 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine #objects[57].StartAvail.StartStrength.AvailableForLevel 0 57 1 Video Game #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 21 I_HAIRYITUS #visuals[2] 7 I_ELVIS #visuals[3] 9 I_INVIS #visuals[4] 23 I_RADIATION #visuals[5] 11 I_SLACK_TONGUE #visuals[6] 41 I_ALIEN #visuals[7] 11 I_BROKEN_BONES #visuals[8] 12 I_BALDNESS #visuals[9] 5 I_DISCRETE_ITCHING #visuals[10] 12 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 18 I_PREGNANT #visuals[13] 16 I_TRANSPARENCY #non_visuals[0] 1 I_UNCOMMON_COLD #non_visuals[1] 3 I_BROKEN_WIND #non_visuals[2] 19 I_SPARE_RIBS #non_visuals[3] 31 I_KIDNEY_BEANS #non_visuals[4] 25 I_BROKEN_HEART #non_visuals[5] 18 I_RUPTURED_NODULES #non_visuals[6] 1 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 14 I_INFECTIOUS_LAUGHTER #non_visuals[8] 21 I_CORRUGATED_ANKLES #non_visuals[9] 15 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 31 I_FAKE_BLOOD #non_visuals[12] 13 I_GASTRIC_EJECTIONS #non_visuals[13] 6 I_THE_SQUITS #non_visuals[14] 9 I_IRON_LUNGS #non_visuals[15] 9 I_SWEATY_PALMS #non_visuals[16] 15 I_HEAPED_PILES #non_visuals[17] 18 I_GUT_ROT #non_visuals[18] 7 I_GOLF_STONES #non_visuals[19] 5 I_UNEXPECTED_SWELLING ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 25 Handyman #staff[3].MinSalary 20 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 40 Surgeon #gbv.SalaryAdd[6] 30 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 75 #gbv.TrainingRate 40 #gbv.AbilityThreshold[0] 75 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 45 Researcher #gbv.TrainingValue[0] 10 Projector #gbv.TrainingValue[1] 15 Skeleton #gbv.TrainingValue[2] 20 Bookcase #popn[0].Month.Change 0 2 #popn[1].Month.Change 3 0 #popn[2].Month.Change 18 20 #popn[3].Month.Change 21 -58 #popn[4].Month.Change 22 0 #popn[5].Month.Change 30 25 #popn[6].Month.Change 33 -76 #popn[7].Month.Change 34 0 #popn[8].Month.Change 42 28 #popn[9].Month.Change 45 -85 #popn[10].Month.Change 46 0 #popn[11].Month.Change 54 30 #popn[12].Month.Change 57 -90 #popn[13].Month.Change 58 0 #popn[14].Month.Change 66 30 #popn[15].Month.Change 69 -90 #popn[16].Month.Change 70 0 #popn[17].Month.Change 78 30 #popn[18].Month.Change 81 -90 #popn[19].Month.Change 82 0 #popn[20].Month.Change 90 30 #popn[21].Month.Change 93 -90 #popn[22].Month.Change 94 0 #popn[23].Month.Change 102 30 #popn[24].Month.Change 105 -90 #popn[25].Month.Change 106 0 #popn[26].Month.Change 114 30 #popn[27].Month.Change 117 -65 #popn[28].Month.Change 118 0 #quake_control[0].StartMonth.EndMonth.Severity 5 10 1 #quake_control[1].StartMonth.EndMonth.Severity 15 20 2 #quake_control[2].StartMonth.EndMonth.Severity 25 30 4 #quake_control[3].StartMonth.EndMonth.Severity 35 40 5 #quake_control[4].StartMonth.EndMonth.Severity 45 50 1 #quake_control[5].StartMonth.EndMonth.Severity 55 60 2 #quake_control[6].StartMonth.EndMonth.Severity 65 70 4 #quake_control[7].StartMonth.EndMonth.Severity 75 80 6 #quake_control[8].StartMonth.EndMonth.Severity 85 90 1 #quake_control[9].StartMonth.EndMonth.Severity 95 100 2 #quake_control[10].StartMonth.EndMonth.Severity 105 110 4 #quake_control[11].StartMonth.EndMonth.Severity 125 130 8 #emergency_control[0].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 4 8 4 6 23 75 1500 #emergency_control[1].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 12 16 8 10 2 75 1000 #emergency_control[2].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 20 24 5 9 27 75 1000 #emergency_control[3].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 28 32 10 14 33 75 500 #emergency_control[4].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 36 40 4 5 8 75 2500 #emergency_control[5].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 44 48 2 2 30 75 1800 #emergency_control[6].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 52 56 7 12 12 75 1200 #emergency_control[7].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 60 64 5 9 8 75 2000 #emergency_control[8].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 68 72 4 5 21 75 1600 #emergency_control[9].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 76 80 9 13 26 75 550 #emergency_control[10].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 84 88 6 8 3 75 1300 #emergency_control[11].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 92 96 7 11 8 75 2000 #emergency_control[12].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 100 104 4 6 20 75 2000 #emergency_control[13].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 108 112 10 14 28 75 700 #emergency_control[14].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 116 120 6 11 6 75 2000 #emergency_control[15].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 124 128 9 13 8 75 2000 #emergency_control[16].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 132 136 14 18 31 75 800 #emergency_control[17].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 140 144 4 7 34 75 1600 #emergency_control[18].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 148 152 8 14 17 75 1400 #emergency_control[19].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 156 160 18 20 4 75 5000 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 5 ---------------------- Awards and Trophies ------------------------- #awards_trophies.CansofCoke 200 #awards_trophies.CansofCokeBonus 10000 #awards_trophies.Reputation 850 #awards_trophies.TrophyReputationBonus 20000 #awards_trophies.TrophyDeathBonus 10000 ------------------ Winning and Losing Conditions ------------------- But we don't want any such conditions on the example level! 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 700 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 500000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 85 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 900 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 400000 1 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 400 1 450 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 0 -20000 2 -10000 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 5 1 20 3 15 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? 1 is yes, 0 no | Name | #computer[12].Playing.Name 1 CORSIX #computer[13].Playing.Name 1 ROUJIN #computer[14].Playing.Name 1 EDVIN CorsixTH-0.70.0/CorsixTH/Levels/finisham.map000066400000000000000000005001541522247547500205550ustar00rootroot000000000000001>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????º? ?>??1>*>(>2>9>1>???????????????????????????????????????????????????????????????????????·??????????????????????????????????????????????? ?>??1>)>(>3>9>1>???º??????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>???????????????????????º??????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>º???????????????????????º??????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>????????????????????????????????????????????????????????????????º??????????????????????????·???????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>???????????????????????????????????????????????????????????????????????????????????????????????????????????????????º??? ?>??1>*>(>2>9>1>????????????????????????????????????????????????????????????????????????????????????????????????????????????·?????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>????????????????????????????????????????????º?????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>)>(>3>9>1>?º????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>???????????????????????????????????????????????????????????????????????·??????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>????????????????????????????????º?????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>????????????????????????º?????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????????????????????????????º???????????????????????????????????????????????????????????º? ?>??1>*>(>2>9>1>???????????????º???????????????????????????????????????????????????????????????????????????????????·???????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>º?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????????????????????????????????????????????????????????????????????????????????·???????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>)>(>3>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????·????????????????????????????? ?>??1>*>(>2>9>1>???????????????????????????????????????????????????????????????????????????????????????????????????????????????????º??? ?>??1>*>(>2>9>1>??????????????????????????????????? ?xyxxxxz|xxxxz|xxxxz|xxxxxz|xq???? ?zy|x|xxz|xxz|xxxz|xxxz|xxq?????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq???? ?yq?????????????????????????? ?>??1>*>(>2>9>1>?º????????????????????????????½?????? ?ys???? ?{q?????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?{??1>*>(>2>9>1>??????????????????????????????????? ?}q?¾??? ?yq???? ?yu?????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq???? ?y>q???? ?yq?????????????????????????? ?>??1>*>(>2>9>1>???????????????????????¸???????????? ?ys???? ?yxz|xxq?????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yu???¾? ?{q?????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq???? ?}q?????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq???? ?y??1>*>(>2>9>1>?????????????????½?????????????????? ?yq?¾??? ?yq?¹?? ?yu?????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq???? ?yq??? ?{q?????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?{q???? ?yq??? ?}q?????????????????????????? ?>??1>)>(>3>9>1>??????????????????????????????????? ?}q? ?xyxxq??? ?y??1>->(>2>9>1>º?????????????????????????????¸?????? ?ys? ?{s??? ?yq??????????¹??????????????????????????º? ?>??1>/>(>2>9>1>??????????????????????????????????? ?yu? ?}u??¹? ?ys??¹??????????????????????????????????? ?>??1>0>(>2>9>1>????????????¾??????????????????????? ?yq? ?yq??? ?yu????????????????????????????????????? ?>??1>0>(>2>9>1>??????????????????????????????????? ?yq? ? p? p?=p?yq??? ?yq??? ?xyxz|xxxz|xxxz|xxxxq??????????????? ?>??1>0>(>2>9>1>??????????????????????????????????? ?yq???? ?{q??? ?{q??? ?yq??????????????? ?>??1>0>(>2>9>1>??????????????????????????????????? ? p? p? r? t? p? p? p? p? r? t? p? p? p? p? r? t? p? p? p? ???? ?}q??? ?}s??? ?yq??????????????? ?>??1>0>(>2>9>1>?????????????????????¹?????????????????????????????????????? ?yq?¹?? ?yu??? ?{s??????????????? ?>??1>0>(>2>9>1>??????¾?????????¾??????????¾?????¾??????¾??????¾??????¾?????¾?????¾? ?yq??? ?yq??¹? ?}u??????????????? ?>??1>0>(>2>9>1>??????????????????????????????????????????????????????????? ?yq??? ? p? r? t? p? p? p?=p?yq??? ?yq??????????????? ?>??1>0>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:Ûs??????¹???? ?yq??? ?yq??????????????? ?>??1>0>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;u????º?????? ?y>q??? ?yq??????????????? ?>>??1>0>(>2>9>1> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?Ùq?????????? ?{xxxxq????????????º??? ?>>>1>0>(>2>9>1>?¾?????????¾???????????¾????¾??????¾??????¾??????¾??????¾?????¾????¾? ?yq??¹???????¹? ?}q??????????????? ?>>>1>0>(>2>9>1>??????????????????????????????????????????????????????????? ?{q????º?????? ?ys??????????????? ?><? ?1>0>(>2>9>1>??????????????????????????????????????????????????????????? ?}q??????¹???? ?y??1>0>(>2>9>1>??????????????????????????????????? ?xyxz|xxxz|xxxz|xxz|xq???? ?yq?????????? ?yq??? ?yq??????????????? ?>??1>0>(>2>9>1>??????????????????????????????????? ?yq? ?xyxxq?¹?? ?xyxxxz|xq??? ?yq??????????????? ?>??1>.>(>2>9>1>??????????????????????????????????? ?yq? ?{q??? ?ys??¹? ? p? p? r? t? p? p? p? p? r? t? p? p? p? p? p? r? t? p? ??????????????? ?>??1>+>(>2>9>1>??????????????????????????????????? ?{q? ?}s??? ?yu????????????????????????????????????? ?>??1>)>(>3>9>1>º?????????????????¾?????????????????? ?}q? ?yu??? ?{q????????????????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq? ? p? p?=p?yq??? ?}>q????????????????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?ys???? ?yq??¹? ?yxxxxxz|xxq???????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yu???? ?y>q??? ?yq???????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq???¾? ?{xxxxq???????????????????????¾????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq???? ?}s???????????????????????????º? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq?¾??? ?yu???????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?y>q???? ?y??1>*>(>2>9>1>??????????????????????????????????? ?{xxz|xq??¸?? ?yq??¸?????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?}s???? ?{s???????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????? ?yq???? ?yu???????????????????????????? ?>??1>*>(>2>9>1>???????º???????????????????????????? ?yq???? ?yq???????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????¹?????? ? p? p? r? t? p? p? p? p? p? r? t? p? p? p? p? r? t? p? p?=p?:Ö>;>Ô>??1>*>(>2>9>1>?º?????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????????????????????????? ?>>>??????????????????????¹????????????????????????????????????? ?>??1>*>(>2>9>1>????????????·????????????????????????????¹????????????¹??? ?>>>??¹??????????¹????????????????????????????????????????????º??? ?>??1>*>(>2>9>1>??????????????????????????????????????????????????????? ?>>>???????????????????????????¸???????????????????????????????? ?>??1>)>(>3>9>1>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????????????????????????? ?>>>??????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????? ?>>>>>????N?;?;?:???? ?>>>?????????????????????????????????????¾?????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????? ?>>>>>????M?D?DH?@???? ?>>>??????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????? ?>>>>>????M?DH?D?@???? ?>>>????·??????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>???????????????????????????????¾??????? ?>>>>>????M?D?DH?@???? ?>>>?????????????·?????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????? ?>>>>>????M?DH?D?@???? ?>>>????????????????????????????????????????????????????????¸??? ?>??1>*>(>2>9>1>?????????????????????????????????????? ? ?=?><? ? ????L?C?C?O???? ?>>>??????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>???????????????????????????????????????? ?>????????????? ?>>>??????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>???????????????????????º????????????????? ?>????????????? ?>>>??????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>º???????????????????????????????????????? ?>???¹?????????? ?>>>??????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>???????????????????????????????????????? ?>????????????? ?>>>??????????????????????????????????????????????????????????º? ?>??1>*>(>2>9>1>???????????????????????????????????????? ?>>????????????? ?>>>?????????????????????·?????????????????????????????????????? ?>??1>*>(>2>9>1>???????????????????????????????????????? ?>>>>>>>>>>>>>>>>>>????????¹??????????????????????????????¸????????????????????? ?>??1>*>(>2>9>1>???·????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??????????????????????????????????????????????????????????? ?>??1>)>(>3>9>1>???·??????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????¹????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????·????????????¹?¹???????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?º????????????????????????????????????????????????????????????????????????????·??????????????????????????????????????º??? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????¸????????? ?>??1>*>(>2>9>1>????????????????????????????????????????????????????????????????¹?????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>??????????????????????????????????????????????????????????????????????????????????????????¸???????????????????????????? ?>??1>*>(>2>9>1>??????????????·???????º?????????????????·???????????????????????????????????????????????????????????????????????????????? ?>??1>)>(>3>9>1>????????????????????????????????????????????????????¹?????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>º???????????º??????????????????????º????????????????????????º?????????????????????º?????????????????????????º??????????????º? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??1>*>(>2>9>1> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>??1>*>(>2>9>1>???????????????????????º??????????????????????º????????????????????????º??????????????????????º??????????????????????????º? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??1>*>(>2>9>1>?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>??ů/CorsixTH-0.70.0/CorsixTH/Levels/original05.level000066400000000000000000000032041522247547500212540ustar00rootroot00000000000000Copyright (c) 2010 Edwin "Dutchy" Smulders Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- This is an extra configuration file loaded at Level 5 from the original game. -- It needs some starting doctors, and to also make it possible for others to do -- this in the future some new variables are added, as seen below. -- Skill is skill * 100 (to work in integers) #start_staff[1].Doctor.Shrink.Consultant.Skill 1 1 1 100 #start_staff[2].Doctor.Surgeon.Consultant.Skill 1 1 1 100 #start_staff[3].Doctor.Researcher.Consultant.Skill 1 1 1 100 These lines equal something like this: Doctor.Nurse.Handyman.Receptionist.Shrink.Surgeon.Researcher.Junior.Consultant.Skill 1 0 0 0 1 0 0 0 1 100 CorsixTH-0.70.0/CorsixTH/Levels/original07.level000066400000000000000000000026471522247547500212700ustar00rootroot00000000000000Copyright (c) 2010 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- This is an extra configuration file loaded at level 7 from the original game. -- The second to last emergency (number 9) does in error create Hairyitis patients. -- That disease is not available until level 8. -- Change the disease to Elvis Syndrome instead. (Illnes previously 3, now 4) #emergency_control[9].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 60 70 5 8 4 75 1000CorsixTH-0.70.0/CorsixTH/Levels/original08.level000066400000000000000000000032601522247547500212610ustar00rootroot00000000000000Copyright (c) 2013 Mark "MarkL" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- This is an extra configuration file loaded at level 8 from the original game. -- The win and lose on reputation would appear to be the wrong way round #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 2 1 300000 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 3 1 55 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 4 1 500 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 6 1 180000 1 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 200 1 400 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 0 -1000 2 10000 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 5 1 25 3 20 CorsixTH-0.70.0/CorsixTH/Levels/original11.level000066400000000000000000000024421522247547500212540ustar00rootroot00000000000000Copyright (c) 2012 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- This is an extra configuration file loaded at level 11 from the original game. -- For some reason Alien DNA is set to be unavailable at this level even though -- it evidently should be. -- Make it available after 12 months. #visuals[6] 10 I_ALIENCorsixTH-0.70.0/CorsixTH/Levels/original12.level000066400000000000000000000024421522247547500212550ustar00rootroot00000000000000Copyright (c) 2012 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- This is an extra configuration file loaded at level 12 from the original game. -- For some reason Alien DNA is set to be unavailable at this level even though -- it evidently should be. -- Make it available after 12 months. #visuals[6] 10 I_ALIENCorsixTH-0.70.0/CorsixTH/Levels/st.peter's.level000066400000000000000000000470701522247547500213120ustar00rootroot00000000000000Copyright (c) 2014 Mark "MarkL" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This level file and map have been put together with epidemics in mind. Wherever there are values that have not been used previously there are some notes to assist map makers. ---------------------- General Information ------------------------- %Name = "St. Peter's near Cawley" %MapFile = "st.peter's.map" %LevelBriefing = "The St Peter's hospital is near the small town of Cawley in the beautiful English countryside. Use all your knowledge to set up a well-run hospital which makes a healthy profit and can deal with anything the sickly public can throw up in it. You'll need to be aware that the atmosphere around here is particularly good at carrying germs and infections. The nearby swamp will add to your troubles, so you should expect frequent epidemics. You are expected to run a superb hospital with the highest of standards; the Minister of Health expects nothing less than perfection here. You should aim to keep queues to a minimum as this will help you combat epidemics and keep your staff happy at the same time. Get a reputation of at least 600, treat 80% of your visitors, cure 400 patients, amass $600,000 in the bank and have a hospital worth $275,000." %LevelDebriefing = "Congratulations, you made it! Now you can sit back and enjoy life." Town properties InterestRate is defined as centiprocent to allow for two decimals precision, i.e. 300 means 3 % #town.StartCash.InterestRate 30000 200 If contagious how much - rand up to this figure. higher = more contagious. must be > 0 #gbv.HowContagious 25 0-100 Higher equals more chance of spreading. #gbv.ContagiousSpreadFactor 35 Reduces cont illnesses until X months have passed #gbv.ReduceContMonths 4 Reduces cont illnesses until X peep have arrived #gbv.ReduceContPeepCount 20 If epidemic coverup fails - how much per person you are fined #gbv.EpidemicFine 2500 If an epidemic coverup succeeds how much compensation is received - lowest value #gbv.EpidemicCompLo 5000 If an epidemic coverup succeeds how much compensation is received - highest value #gbv.EpidemicCompHi 30000 Cost per vaccination #gbv.VacCost 50 How many patients still infected cause a reputation loss as well as a fine. if less than EpidemicEvacMinimum then this will be ignored #gbv.EpidemicRepLossMinimum 5 How many patients still infected and not-cured cause the hospital to be evacuated #gbv.EpidemicEvacMinimum 10 -------------------- Disease Configuration ------------------------- When a drug is first researched, what effectiveness does it have #gbv.StartRating 80 The following table contains all diagnoses and treatments that shows up in the drug casebook in the game. ContRate is whether this is contagious (lower the number the greater the chances of it appearing, 0 means never) and Known specifies whether it should show up from the beginning of the level and RschReqd how much research is required to discover the treatment room for the disease. NOTE: Most visual diseases cannot currently be part of an epidemic. Which can be included can be checked in the disease files #expertise[1].ContRate.Known.RschReqd 0 1 0 GENERAL_PRACTICE #expertise[2].ContRate.Known.RschReqd 0 1 40000 BLOATY_HEAD #expertise[3].ContRate.Known.RschReqd 0 0 40000 HAIRYITUS #expertise[4].ContRate.Known.RschReqd 0 0 60000 ELVIS #expertise[5].ContRate.Known.RschReqd 0 0 60000 INVIS #expertise[6].ContRate.Known.RschReqd 10 0 60000 RADIATION #expertise[7].ContRate.Known.RschReqd 0 0 40000 SLACK_TONGUE #expertise[8].ContRate.Known.RschReqd 0 0 60000 ALIEN #expertise[9].ContRate.Known.RschReqd 0 0 20000 BROKEN_BONES #expertise[10].ContRate.Known.RschReqd 0 0 40000 BALDNESS #expertise[11].ContRate.Known.RschReqd 10 0 40000 DISCRETE_ITCHING #expertise[12].ContRate.Known.RschReqd 10 0 40000 JELLYITUS #expertise[13].ContRate.Known.RschReqd 20 0 40000 SLEEPING_ILLNESS #expertise[14].ContRate.Known.RschReqd 0 0 30000 PREGNANT #expertise[15].ContRate.Known.RschReqd 10 0 40000 TRANSPARENCY #expertise[16].ContRate.Known.RschReqd 10 0 20000 UNCOMMON_COLD #expertise[17].ContRate.Known.RschReqd 10 0 60000 BROKEN_WIND #expertise[18].ContRate.Known.RschReqd 20 0 20000 SPARE_RIBS #expertise[19].ContRate.Known.RschReqd 30 0 20000 KIDNEY_BEANS #expertise[20].ContRate.Known.RschReqd 10 0 20000 BROKEN_HEART #expertise[21].ContRate.Known.RschReqd 10 0 20000 RUPTURED_NODULES #expertise[22].ContRate.Known.RschReqd 10 0 40000 MULTIPLE_TV_PERSONALITIES #expertise[23].ContRate.Known.RschReqd 10 1 60000 INFECTIOUS_LAUGHTER #expertise[24].ContRate.Known.RschReqd 20 0 40000 CORRUGATED_ANKLES #expertise[25].ContRate.Known.RschReqd 10 0 40000 CHRONIC_NOSEHAIR #expertise[26].ContRate.Known.RschReqd 50 0 40000 3RD_DEGREE_SIDEBURNS #expertise[27].ContRate.Known.RschReqd 20 0 40000 FAKE_BLOOD #expertise[28].ContRate.Known.RschReqd 10 0 40000 GASTRIC_EJECTIONS #expertise[29].ContRate.Known.RschReqd 20 1 20000 THE_SQUITS #expertise[30].ContRate.Known.RschReqd 30 0 20000 IRON_LUNGS #expertise[31].ContRate.Known.RschReqd 10 0 40000 SWEATY_PALMS #expertise[32].ContRate.Known.RschReqd 15 0 20000 HEAPED_PILES #expertise[33].ContRate.Known.RschReqd 10 0 20000 GUT_ROT #expertise[34].ContRate.Known.RschReqd 20 0 20000 GOLF_STONES #expertise[35].ContRate.Known.RschReqd 20 0 20000 UNEXPECTED_SWELLING #expertise[36].Known.RschReqd 0 60000 I_D_SCANNER DIAGNOSIS #expertise[37].Known.RschReqd 0 50000 I_D_BLOOD_MACHINE DIAGNOSIS #expertise[38].Known.RschReqd 0 20000 I_D_CARDIO DIAGNOSIS #expertise[39].Known.RschReqd 0 50000 I_D_XRAY DIAGNOSIS #expertise[40].Known.RschReqd 0 60000 I_D_ULTRASCAN DIAGNOSIS #expertise[41].Known.RschReqd 1 20000 I_D_STANDARD DIAGNOSIS #expertise[42].Known.RschReqd 1 20000 I_D_WARD DIAGNOSIS #expertise[43].Known.RschReqd 1 20000 I_D_SHRINK DIAGNOSIS | Objects available | Available from the start | Strength | Available for this level | Comment #objects[9].StartAvail.StartStrength.AvailableForLevel 1 8 1 Inflator Machine #objects[13].StartAvail.StartStrength.AvailableForLevel 1 13 1 Cardiogram #objects[14].StartAvail.StartStrength.AvailableForLevel 0 12 1 Scanner #objects[22].StartAvail.StartStrength.AvailableForLevel 0 9 1 Ultrascan #objects[23].StartAvail.StartStrength.AvailableForLevel 0 7 1 DNA Restorer #objects[24].StartAvail.StartStrength.AvailableForLevel 0 11 1 Cast Remover #objects[25].StartAvail.StartStrength.AvailableForLevel 0 8 1 Hair restorer #objects[26].StartAvail.StartStrength.AvailableForLevel 0 10 1 Slicer for slack tongues #objects[27].StartAvail.StartStrength.AvailableForLevel 0 12 1 X-Ray #objects[30].StartAvail.StartStrength.AvailableForLevel 0 12 1 Operating Table #objects[37].StartAvail.StartStrength.AvailableForLevel 1 0 1 Projector #objects[40].StartAvail.StartStrength.AvailableForLevel 0 1 1 Research Computer #objects[41].StartAvail.StartStrength.AvailableForLevel 0 1 1 Chemical Mixer #objects[42].StartAvail.StartStrength.AvailableForLevel 0 10 1 Blood Machine #objects[46].StartAvail.StartStrength.AvailableForLevel 0 8 1 Electrolysis Machine #objects[47].StartAvail.StartStrength.AvailableForLevel 0 7 1 Jellyitus Moulding Machine #objects[54].StartAvail.StartStrength.AvailableForLevel 0 10 1 Decontamination Shower #objects[55].StartAvail.StartStrength.AvailableForLevel 1 10 1 Autopsy Research Machine #objects[57].StartAvail.StartStrength.AvailableForLevel 1 57 1 VideoGame Value represents the proportions of the disease - not implemented #visuals[0] 1 I_BLOATY_HEAD #visuals[1] 21 I_HAIRYITUS #visuals[2] 7 I_ELVIS #visuals[3] 9 I_INVIS #visuals[4] 23 I_RADIATION #visuals[5] 11 I_SLACK_TONGUE #visuals[6] 41 I_ALIEN #visuals[7] 11 I_BROKEN_BONES #visuals[8] 12 I_BALDNESS #visuals[9] 5 I_DISCRETE_ITCHING #visuals[10] 12 I_JELLYITUS #visuals[11] 1 I_SLEEPING_ILLNESS #visuals[12] 18 I_PREGNANT #visuals[13] 16 I_TRANSPARENCY #non_visuals[0] 4 I_UNCOMMON_COLD #non_visuals[1] 8 I_BROKEN_WIND #non_visuals[2] 9 I_SPARE_RIBS #non_visuals[3] 3 I_KIDNEY_BEANS #non_visuals[4] 2 I_BROKEN_HEART #non_visuals[5] 1 I_RUPTURED_NODULES #non_visuals[6] 9 I_MULTIPLE_TV_PERSONALITIES #non_visuals[7] 4 I_INFECTIOUS_LAUGHTER #non_visuals[8] 2 I_CORRUGATED_ANKLES #non_visuals[9] 5 I_CHRONIC_NOSEHAIR #non_visuals[10] 1 I_3RD_DEGREE_SIDEBURNS #non_visuals[11] 3 I_FAKE_BLOOD #non_visuals[12] 3 I_GASTRIC_EJECTIONS #non_visuals[13] 6 I_THE_SQUITS #non_visuals[14] 1 I_IRON_LUNGS #non_visuals[15] 9 I_SWEATY_PALMS #non_visuals[16] 5 I_HEAPED_PILES #non_visuals[17] 8 I_GUT_ROT #non_visuals[18] 7 I_GOLF_STONES #non_visuals[19] 5 I_UNEXPECTED_SWELLING You can use either or neither of these two to hold back the appearance of visual diseases Hold all visual illnesses until x months. 0 never hold #gbv.HoldVisualMonths 9 Hold all visual illnesses until x peeps have arrived. 0 never hold #gbv.HoldVisualPeepCount 60 Value represents the month this disease becomes available (when they will first appear in-game) hold all visuals (above) take precedence #visuals_available[0] 0 I_BLOATY_HEAD #visuals_available[1] 31 I_HAIRYITUS #visuals_available[2] 7 I_ELVIS #visuals_available[3] 9 I_INVIS #visuals_available[4] 43 I_RADIATION #visuals_available[5] 11 I_SLACK_TONGUE #visuals_available[6] 60 I_ALIEN #visuals_available[7] 11 I_BROKEN_BONES #visuals_available[8] 22 I_BALDNESS #visuals_available[9] 5 I_DISCRETE_ITCHING #visuals_available[10] 32 I_JELLYITUS #visuals_available[11] 19 I_SLEEPING_ILLNESS #visuals_available[12] 28 I_PREGNANT #visuals_available[13] 16 I_TRANSPARENCY ---------------------- Staff Configuration ------------------------- Each entry states how many staff members of each category are available a given month. The number of entries is not fixed. | A list | Month it gets active (start at 0) | Each group | #staff_levels[0].Month.Nurses.Doctors.Handymen.Receptionists 0 8 8 3 2 #staff_levels[1].Month.Nurses.Doctors.Handymen.Receptionists 3 7 5 5 3 #staff_levels[2].Month.Nurses.Doctors.Handymen.Receptionists 5 5 8 7 4 The minimum salary for each staff type #staff[0].MinSalary 60 Nurse #staff[1].MinSalary 75 Doctor #staff[2].MinSalary 25 Handyman #staff[3].MinSalary 20 Receptionist Salary modifiers for different doctor attributes #gbv.SalaryAdd[3] -30 Junior #gbv.SalaryAdd[4] 30 Doctor #gbv.SalaryAdd[5] 40 Surgeon #gbv.SalaryAdd[6] 30 Psychiatrist #gbv.SalaryAdd[7] 100 Consultant #gbv.SalaryAdd[8] 20 Researcher How much the skill of the doctor adds to the salary. skill * 1000 / divisor #gbv.SalaryAbilityDivisor 10 #gbv.LandCostPerTile 50 #gbv.TrainingRate 40 #gbv.AbilityThreshold[0] 75 Surgeon #gbv.AbilityThreshold[1] 60 Psychiatrist #gbv.AbilityThreshold[2] 45 Researcher #gbv.TrainingValue[0] 10 Projector #gbv.TrainingValue[1] 15 Skeleton #gbv.TrainingValue[2] 20 Bookcase #popn[0].Month.Change 0 2 #popn[1].Month.Change 6 0 #popn[2].Month.Change 12 2 #popn[4].Month.Change 15 0 #popn[5].Month.Change 23 1 #popn[6].Month.Change 28 0 Set severity to 0 if you don't want any earthquakes #quake_control[0].StartMonth.EndMonth.Severity 5 10 0 #emergency_control[0].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 4 8 4 6 23 75 1500 #emergency_control[1].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 12 16 8 10 2 75 1000 #emergency_control[2].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 20 24 5 9 27 75 1000 #emergency_control[3].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 28 32 10 14 33 75 500 #emergency_control[4].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 36 40 4 5 8 75 2500 #emergency_control[5].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 44 48 2 2 30 75 1800 #emergency_control[6].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 52 56 7 12 12 75 1200 #emergency_control[7].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 60 64 5 9 8 75 2000 #emergency_control[8].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 68 72 4 5 21 75 1600 #emergency_control[9].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 76 80 9 13 26 75 550 #emergency_control[10].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 84 88 6 8 3 75 1300 #emergency_control[11].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 92 96 7 11 8 75 2000 #emergency_control[12].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 100 104 4 6 20 75 2000 #emergency_control[13].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 108 112 10 14 28 75 700 #emergency_control[14].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 116 120 6 11 6 75 2000 #emergency_control[15].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 124 128 9 13 8 75 2000 #emergency_control[16].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 132 136 14 18 31 75 800 #emergency_control[17].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 140 144 4 7 34 75 1600 #emergency_control[18].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 148 152 8 14 17 75 1400 #emergency_control[19].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus 156 160 18 20 4 75 5000 --------------------- Research Configuration ----------------------- Divides research input to get the amount of research points. must be > 0 #gbv.ResearchPointsDivisor 2 ---------------------- Awards and Trophies ------------------------- Trophy win conditions #awards_trophies.RatKillsAbsolute 25 #awards_trophies.CansofCoke 100 #awards_trophies.Reputation 400 #awards_trophies.Plant 80 #awards_trophies.TrophyStaffHappiness 85 #awards_trophies.RatKillsPercentage 11 #awards_trophies.TrophyMayor 25 Trophy win bonuses #awards_trophies.RatKillsAbsoluteBonus 4 #awards_trophies.CansofCokeBonus 1000 #awards_trophies.TrophyReputationBonus 1500 #awards_trophies.PlantBonus 4 #awards_trophies.TrophyStaffHappinessBonus 5 #awards_trophies.RatKillsPercentageBonus 4000 #awards_trophies.TrophyDeathBonus 6000 #awards_trophies.TrophyCuresBonus 4000 #awards_trophies.TrophyMayorBonus 4 Award win criteria #awards_trophies.CuresAward 50 #awards_trophies.CuresPoor 10 #awards_trophies.DeathsAward 10 #awards_trophies.DeathsPoor 25 #awards_trophies.PopulationPercentageAward 50 #awards_trophies.PopulationPercentagePoor 15 #awards_trophies.CuresVDeathsAward 5 #awards_trophies.CuresVDeathsPoor 1 #awards_trophies.ReputationAward 500 #awards_trophies.ReputationPoor 200 #awards_trophies.HospValueAward 150000 #awards_trophies.HospValuePoor 50000 #awards_trophies.CleanlinessAward 5 #awards_trophies.CleanlinessPoor 40 #awards_trophies.EmergencyAwardv 90 #awards_trophies.EmergencyPoor 50 #awards_trophies.StaffHappinessAward 75 #awards_trophies.StaffHappinessPoor 25 #awards_trophies.PeepHappinessAward 75 #awards_trophies.PeepHappinessPoor 25 #awards_trophies.WaitingTimesAward 25 #awards_trophies.WaitingTimesPoor 75 #awards_trophies.WellKeptTechAward 20 #awards_trophies.WellKeptTechPoor 70 Award win bonuses or penalties #awards_trophies.CuresBonus 1500 #awards_trophies.CuresPenalty -4000 #awards_trophies.DeathsBonus 2500 #awards_trophies.DeathsPenalty -6000 #awards_trophies.PopulationPercentageBonus 4 #awards_trophies.PopulationPercentagePenalty -6 #awards_trophies.CuresVDeathsBonus 3000 #awards_trophies.CuresVDeathsPenalty -5000 #awards_trophies.AwardReputationBonus 2000 #awards_trophies.AwardReputationPenalty -5000 #awards_trophies.HospValueBonus 3 #awards_trophies.HospValuePenalty -6 #awards_trophies.CleanlinessBonus 5 #awards_trophies.CleanlinessPenalty -12 #awards_trophies.EmergencyBonus 6 #awards_trophies.EmergencyPenalty -11 #awards_trophies.AwardStaffHappinessBonus 3 #awards_trophies.AwardStaffHappinessPenalty -10 #awards_trophies.PeepHappinessBonus 3 #awards_trophies.PeepHappinessPenalty -9 #awards_trophies.WaitingTimesBonus 2 #awards_trophies.WaitingTimesPenalty -6 #awards_trophies.WellKeptTechBonus 7 #awards_trophies.WellKeptTechPenalty -5 #awards_trophies.NewTechAward 1500 #awards_trophies.NewTechPoor 0 #awards_trophies.ResearchBonus 3 #awards_trophies.ResearchPenalty -7 ------------------ Winning and Losing Conditions ------------------- But we don't want any such conditions on the example level! 1 Total reputation 2 Balance total 3 Percentage people your hospital has handled 4 Percentage people have been cured 5 Percentage people have been killed 6 Hospital value #win_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 1 600 1 0 #win_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 1 600000 1 0 #win_criteria[2].Criteria.MaxMin.Value.Group.Bound 3 1 80 1 0 #win_criteria[3].Criteria.MaxMin.Value.Group.Bound 4 1 400 1 0 #win_criteria[4].Criteria.MaxMin.Value.Group.Bound 6 1 275000 1 0 #lose_criteria[0].Criteria.MaxMin.Value.Group.Bound 1 0 400 1 450 #lose_criteria[1].Criteria.MaxMin.Value.Group.Bound 2 0 -20000 2 -10000 #lose_criteria[2].Criteria.MaxMin.Value.Group.Bound 5 1 10 3 5 --------------------- Competitor Information ----------------------- | Index in the away "computer" | Is that opponent playing? 1 is yes, 0 no | Name | #computer[12].Playing.Name 1 Corsix #computer[13].Playing.Name 1 Roujin #computer[14].Playing.Name 1 Edvin CorsixTH-0.70.0/CorsixTH/Levels/st.peter's.map000066400000000000000000005001541522247547500207550ustar00rootroot00000000000000?? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????º????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? �?1>)>(>3>9>?????»?????????????????»?????????????¶??????????????????????????????????????????????????????????????????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>??????????????????????????????????????????????????????????????????????????????º?º?????????¶?????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>????????????????????????????????????????????????????????????????????¶??????????º?º??????????????????????????º????? ?>*>(>2>>>>???? ?1>*>(>2>9>????????????????¶?????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>????????????????????????????????????????????????????????º?????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????º???????????º??????????¶?????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>????????º?????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????¶????????????????????????????????? ?>*>(>2>>>>???? �?1>)>(>3>9>????????????????????????????????????????????????????????????????»?????????????????????????????????????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>????????????????????????????????????????????¶??????????????????????????????????????????????????????º???????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????????????????¶??????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ???½??????????????????????????»????????????????????????????????????????????????????????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>???????????????????º?????????????????????º???????????????????º??????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????????????????º????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>>?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? �?1>)>(>3>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?????????????????????????????????????????º??????????????????????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????????????????????¶?????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>>??????????????¶?????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>???????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>???????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ??????????????????????????????????? ?>>????¶???????????????????????????????????????????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>????????????º??????????????????????? ?>>??????????????????????????¶?????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????º?????????????????????????????? ?>>???????????????????????????????????????????????????????¶????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸????????????????????????º????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>??????????????????????????????????????????????º?????????????????????????? ?>*>(>2>>>>???? �?1>)>(>3>9>??????????????????????????????????? ?>>?¸? ?xyz|xz|xxz|xxz|xxxx:×>>>>? ?xyz|xz|xxz|xz|xxq?¸????????????????????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?? ?{;>>>>œ? ?yu?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?¸? ?}Õ>>>>? ?{q?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????º?????? ?>>?? ?y<q?=?>>? ?}s?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>????????????½????????º??????????????? ?>>?¸? ?{q? ?>>? ?yu?¸????????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ??????????????????????????????????? ?>>?? ?}s? ?>>? ?yq?????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?¸? ?yu? ?>>œ? ?yq?¸?????????????º???????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????º?????????????????????????????? ?>>?? ?yq? ?>>? ?{s?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?¸? ?{q? ?>>? ?}u?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?? ?}s? ?>>? ?yq?????????????????????????????? ?>*>(>2>>>>???? �?1>)>(>3>9>??????????????????????????????????? ?>>?¸? ?yu? ?>>? ?yq?¸????????????????????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?? ?yq? ?>>œ? ?{s??????????????????????º???????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?¸? ? p? r? t? p? p? r? t? p? p? p? r? t? p? p? r? t? p? p? ? ?>>? ?}u?¸???????»?????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????º?????????????????½???? ?>>?????????????????????? ?>? ?yq?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????½???????????? ?>>?¸? ?xyz|zxz|zxz|zxz|zxz|z:Ú;Øxq?¸????????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ??????????????????????????????????? ?>>?? ?}s?????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?¸? ?yu?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?? ?{*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?¸? ?}s?¸??¸??¸??¸??¸? ?{q?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?? ?yu??º??º??º??º?? ?}s?????????????????????????????? ?>*>(>2>>>>???? �?1>)>(>3>9>????????º??????????????????????????? ?>>?¸? ?ys?¸????????¸? ?yu?¸??????????????º??????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?? ?}s?? ?>>>>>?? ?{q??????º???????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?¸? ?yq?¸? ?>>>>>?¸? ?}s?¸?????º????????????????????º???? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????½?????????????????? ?>>?? ?{s?? ?>>>>>?? ?yu?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>?¸? ?}u?¸? ?>>>>>?¸? ?yq?¸????????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ??????????????????????????????????? ?>>?? ?yq?? ?>>>>>?? ? p? r? t? p? r? t? p? r? t? p? r? p? r? t? p? ?????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>???½???????????????????????????????? ?>>?¸? ? p?=p?:Ö>;>Ô>><? ? ?¸??¸??¸??¸??¸??¸??¸??¸??¸??¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>>???? ?>>>>??????????? ?>>>?????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*>(>2>>>>???? ?1>*>(>2>9>??????????????????????????????½????? ?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*>(>2>>>>???? �?1>)>(>3>9>??????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>*>(>2>>�œ>>???? ?1>*>(>2>9>????????????????????????????????????????¸??¸??¸??¸??¸??¸??¸??¸??¸? ?>>?¸??¸??¸??¸??¸??¸??¸??¸??¸??¸??¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????¸?????????????????? ?>>?????????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????? ?xyxz|xxz|xxz|xxq?¸? ?>>?¸? ?xyz|xxz|xz|xxz|xxxq?¸???????????????????????º?????? ?>*>(>2>>>>???? ?1>*>(>2>9>????????½???????????????????????????????¸? ?ys?? ?>>?? ?{s??????º???????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ???????????????????½????????????????????? ?{q?¸? ?>>?¸? ?}u?¸?????????????????º???????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>???????????????????????????????????????¸? ?}q?? ?>>?? ?ys?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????? ?ys?¸? ?>>?¸? ?{q?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????¸? ?{u?? ?>>?? ?}s??????????????º???????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????? ?}q?¸? ?>>?¸? ?yu?¸????????????????????????????? ?>*>(>2>>>>???? �?1>)>(>3>9>???º???????????????????????????½?????????¸? ?ys?? ?>>?? ?{s?????º????????????????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>???????????????????????????????????????? ?{q?¸? ?>>?¸? ?}q?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????¸? ?}q?? ?>>?? ?ys?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????? ?ys?¸? ?>>?¸? ?{u?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????º??????????????????????¸? ?{u?? ?>>?? ?}s?????????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ???????????????????????????????????????? ?}q?¸? ?>>?¸? ?yq?¸????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>??????º?????????????????????????????????¸? ?yq?? ?>>?? ?ys?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????? ? p? r? t?=p?y>?¸? ? p? r? t? p? p? r? t? p? p? r? t? p? t? p?=p?yu?¸?????????????????????????º?º??? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????¸????? ?{q???º????º??? ?>>??º????º????º????º??? ?}s?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????½??? ?}q?º????º????¸? ?>>?¸???º????º????º????º? ?yq?¸??????º????????????º??????????? ?>*>(>2>>>>???? �?1>)>(>3>9>???????????????????????????½?½???????????¸????? ?y>q?????????? ?>????????????????? ?{s?????????????????????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>???????????????????????????½?½???????????????½? ?yxxz|zxz|zx|:Ú>;>Øz|zxz|zxz|zxz|xq? ?}u?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????º?????????????????????????????¸??½??? ?{s? ?ys?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>??????????º?????????º??º??????????????????????? ?}u? ?{q?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????¸????? ?ys? ?}s?????????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ???????????????????????????????????????? ?xyz|xq? ?yu?¸????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>???????????????????????????????????????¸? ?{s? ?{s????????????????º?????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????? ?}u? ?}q?¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????¸? ?y>q? ?ys?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????? ?{xxu?¸????????????????????????????? ?>*>(>2>>>>???? �?1>)>(>3>9>???????º?º???????????????????????????????¸? ?yq?????????????????????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>???????º?º???????????????????????????????? ?{*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????¸? ?}s?????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>????????????????????????????º???????????? ?yu?????¸??????º????????????????????º??? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????º??????????????????¸? ? p? r? t? p? r? t? r? p? r? p? r? t? r? p? r? t? p?=p?:AÚy>;A>AØ*>(>2>>>>???? ?1>)>(>3>9>œ?????????????????????????????????????????????????????????? ?A}AAs???????????????????¸????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>???????????????????????????????????????¸??????????????????? ?A}AAs???????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>????????????????????????????????????????¸??¸??¸??¸??¸??¸??¸??¸??¸?? ?A}AAu?¸??¸??¸??¸??¸??¸??¸??¸??¸??¸????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>>?????????????????????????????????????????????????????????? ?AyAA>q???????????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:Ö>;>Ô>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*>(>2>>>>???? �?1>)>(>3>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*>(>2>>�œ>>???? ?1>*>(>2>9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*>(>2>>>>???? ?1>*>(>2>9><? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????º??????????º??????????????????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????º?º????????????????????º???????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ?????????º??????????½??????????º??????????????N?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?:??????????º??????????????????º?? ?>*>(>5>>œ>>???? ?1>*>(>2>9>???????????????????????????????????????????M?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?@?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????????M?D?D?DG?DG?D?D?D?D?D?D?D?DH?DH?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?D?D?D?@?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???º????????????????????????????????????????M?D?D?DG?DG?D?D?D?D?DH?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DH?D?D?DH?DH?D?DG?D?D?D?D?@?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????????M?D?D?D?D?D?DH?DF?D?D?D?D?D?D?D?D?D?D?DH?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?@?????????????????????º????????? ?>*>(>2>>>>>???? �?1>)>(>3>9>???????????????????????????????????½????????M?D?D?D?D?D?D?D?D?D?D?D?DH?D?D?DF?D?D?D?D?D?D?D?D?DG?DG?D?D?D?D?D?D?D?D?D?D?D?@?????????????????????????????? ?>*>(>2>>�œ>>>>?? ?1>*>(>2>9>???????????????????????????????????????????M?D?D?DG?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DH?D?@?????????????????????????????? ?>*>(>2>>>>>>?? ?1>*>(>2>9>????????????º???????????????????????????????M?D?D?D?D?D?DH?D?D?D?DG?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?DG?D?D?D?DG?D?D?D?@?????????????????????????????? ?>*>(>2>>>><? ??? ?1>*>(>2>9>???????????????????????????????????????????M?D?D?D?DH?D?D?D?DH?DH?D?D?D?D?D?D?D?D?D?D?D?D?D?DF?D?D?D?D?DG?DG?D?D?D?D?D?D?D?@???????????º?º?????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????????M?D?D?D?D?D?DF?D?D?D?D?D?DH?D?DG?DG?DG?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?@?????????????????????????????? ?>*>(>2>>>>???? ?1>)>(>3>9>œ??????????????????????????½?????????????????M?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?D?DH?D?@?????????????????????????????? ?>*>(>5>>œ>>???? ?1>*>(>2>9>???????????????????????????????????????????M?D?D?D?DG?D?D?DH?D?D?DH?D?D?D?D?D?DH?D?D?D?D?DH?D?D?D?D?D?D?DF?D?D?D?D?DH?D?D?D?@?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????????M?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DG?DG?D?D?D?D?D?D?D?DH?D?D?D?@?????????????????????????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????????M?D?D?D?D?D?D?D?D?D?D?D?D?D?D?DH?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?@??????????????????º???????????? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????????L?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?C?O???º?º?????????????????????????? ?>*>(>2>>>>???? �?1>)>(>3>9>??????º???????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>�œ>>???? ?1>*>(>2>9>?????????????????º??????????????????????½????????????????????????????????????????????????????????????????????º??? ?>*>(>2>>>>???? ?1>*>(>2>9>???????????????????????????????????????????????????????????????????????????????????????????????????????????º??? ?>*>(>2>>>>???? ?1>*>(>2>9>?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?>*>(>2>>>>??F0ÃCorsixTH-0.70.0/CorsixTH/Lua/000077500000000000000000000000001522247547500155425ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/announcer.lua000066400000000000000000000227751522247547500202520ustar00rootroot00000000000000--[[ Copyright (c) 2018 Rick "Feanathiel" Megens Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("date") --! Pr local AnnouncementPriority = { Critical = 1, High = 2, Normal = 3, Low = 4 } strict_declare_global "AnnouncementPriority" _G["AnnouncementPriority"] = AnnouncementPriority local default_announcement_priority = AnnouncementPriority.Normal local hoursPerDay = Date.hoursPerDay() local default_announcement_decay_hours = { [AnnouncementPriority.Critical] = -1, -- never decay [AnnouncementPriority.High] = 31 * hoursPerDay, [AnnouncementPriority.Normal] = 7 * hoursPerDay, [AnnouncementPriority.Low] = 3 * hoursPerDay } --! An announcement queue based on priority class "AnnouncementQueue" ---@type AnnouncementQueue local AnnouncementQueue = _G["AnnouncementQueue"] --! Creates an announcement queue: a collection of announcements with queue semantics. function AnnouncementQueue:AnnouncementQueue() -- might want to use a single table for this self.priorities = { [AnnouncementPriority.Critical] = {}, [AnnouncementPriority.High] = {}, [AnnouncementPriority.Normal] = {}, [AnnouncementPriority.Low] = {} } self.count = 0 end --! Adds the announcement entry to the queue. --!param priority (int) the priority of the announcement --!param entry (AnnouncementEntry) the announcement entry function AnnouncementQueue:push(priority, entry) local entries = self.priorities[priority] table.insert(entries, entry) self.count = self.count + 1 end --! Dequeues the announcement with the highest priority, nil if the queue is empty. function AnnouncementQueue:pop() for _, entries in ipairs(self.priorities) do if entries[1] ~= nil then local entry = table.remove(entries, 1) self.count = self.count - 1 return entry end end return nil end --! Returns true if the queue is empty, false otherwise. function AnnouncementQueue:isEmpty() return self.count == 0 end --! Checks for duplicates in the announcement queue and refreshes the announcement's created_date --!param sound the announcement to check --!param date the date to use, usually the current date function AnnouncementQueue:checkForDuplicates(sound, date) for _, entries in ipairs(self.priorities) do for _, entry in ipairs(entries) do if entry.name == sound then entry.created_date = date return true end end end return false end --! An announcement. class "AnnouncementEntry" ---@type AnnouncementEntry local AnnouncementEntry = _G["AnnouncementEntry"] --! Creates an announcement function AnnouncementEntry:AnnouncementEntry() self.name = nil -- filename to play self.priority = default_announcement_priority self.created_date = nil -- when it has been created self.decay_hours = nil -- how long until the announcement isn't relevant anymore self.played_callback = nil -- call me whenever the sound was played, ... self.played_callback_delay = nil -- but not until delay has passed end --! Announces audible messages to the player. --! The announcer plays announcements based on their priority. If the caller requests an -- announcement to be played, it will be played directly if there are no announcements -- currently being announced. Note that announcements are only played if there is -- a worker at the reception desk and announcements are enabled in the settings. class "Announcer" ---@type Announcer local Announcer = _G["Announcer"] --! Constructor. --!param app (App) The CorsixTH app function Announcer:Announcer(app) self.app = app self.entries = AnnouncementQueue() self.playing = false self.ticks_since_last_announcement = 0 self:_setRandomAnnouncementTarget() end --! Requests the announcer to play an announcement. --!param name (string) The filename to play. --!param priority (int | nil) The priority of the announcement. See AnnouncementPriority. --!param decay_hours (float | nil) After this amount of hours the announcement should be considered irrelevant. -- Provide nil for a decay time based on the provided priority. --!param played_callback (function | nil) The callback to trigger when the announcement was successfully played. --!param played_callback_delay (int | nil) Delay the callback with this amount of milliseconds. function Announcer:playAnnouncement(name, priority, decay_hours, played_callback, played_callback_delay) -- Announcements use the in-game time instead of ticks. -- For example, if an employee is sacked, the announcement should -- have played in a reasonable amount of time (on his way out). -- We don't want the game to play the announcement if it took too long to -- actually start it, as more important announcements must be played before that. -- It doesn't make sense to play the sacked announcement when the employee -- already has had several other jobs and has died already [joke]. -- Check for duplicate announcements, if there is we refresh the existing one local created_date = self.app.world:date() local duplicate_announcement = self.entries:checkForDuplicates(name, created_date) if duplicate_announcement then return end local new_priority = priority or default_announcement_priority local new_decay_hours = decay_hours or default_announcement_decay_hours[new_priority] local entry = AnnouncementEntry() entry.name = name entry.priority = new_priority entry.created_date = created_date entry.decay_hours = new_decay_hours entry.played_callback = played_callback entry.played_callback_delay = played_callback_delay if self.app.world:getLocalPlayerHospital():hasReceptionDesk(true) or priority == AnnouncementPriority.Critical then self.entries:push(new_priority, entry) end end --! The announcer's (game) tick handler. -- Plays the actual sound of the announcements, if available. -- Also queues random announcements if no announcements have been played for a while. function Announcer:onTick() local staffedDesk = self.app.world:getLocalPlayerHospital():hasReceptionDesk(true) local criticalAnnounces = #self.entries.priorities[AnnouncementPriority.Critical] if not self.app.world:isCurrentSpeed("Pause") then local ticks_since_last_announcement = self.ticks_since_last_announcement if ticks_since_last_announcement >= self.random_announcement_ticks_target then self:playAnnouncement("rand*.wav", AnnouncementPriority.Low) self:_setRandomAnnouncementTarget() else self.ticks_since_last_announcement = ticks_since_last_announcement + 1 end -- Wait for an occupied desk or announcement is critical if staffedDesk or criticalAnnounces > 0 then while not self.playing and not self.entries:isEmpty() do local entry = self.entries:pop() local game_date = self.app.world:date() if entry.decay_hours == -1 or game_date <= entry.created_date:plusHours(entry.decay_hours) then if self.app.config.play_announcements then self:_play(entry) end -- Drain the queue otherwise end end end -- The game is paused else -- Only play critical announcements when paused while not self.playing and not self.entries:isEmpty() and criticalAnnounces > 0 do local entry = self.entries:pop() if self.app.config.play_announcements then self:_play(entry) end end end end --! Private function. Sets the new time (in ticks) when a random announcement should be played. function Announcer:_setRandomAnnouncementTarget() -- Note that random announcement are measured in ticks. -- This ensures that on fast game speeds random announcements aren't -- spammed, or on lower game speeds random announcements are never played. -- Every tick is 18ms, so ~3333 ticks is 1 minute at normal speed local tick_chunk = 3333 -- Set a target of 4 - 6 minutes (chunks) self.random_announcement_ticks_target = math.random(tick_chunk * 4, tick_chunk * 6) end --! Private function. Plays the actual sound of an announcement. --!param entry (AnnouncementEntry) The announcement to play. function Announcer:_play(entry) self.playing = true local name = self.app.audio:resolveFilenameWildcard(entry.name) self.app.audio:playSound(name, nil, true, function () self:_onPlayed(entry) end, entry.played_callback_delay) self.app.ui.subtitles:queueSubtitle(name) self.ticks_since_last_announcement = 0 end --! Private function. Handles the playSound completed event. Also calls the callback of the announcement. --!param entry (AnnouncementEntry) The announcement that has been played. function Announcer:_onPlayed(entry) self.playing = false if entry.played_callback ~= nil then entry.played_callback() end end CorsixTH-0.70.0/CorsixTH/Lua/api_version.lua000066400000000000000000000033631522247547500205700ustar00rootroot00000000000000#ifdef _ /* Copyright (c) 2009-2017 Peter "Corsix" Cawley et al. --[[ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This file is used to ensure that the compiled binary being used by Lua is up to date. Without this system, if the binary was not recent enough, then the user would get a confusing error message along the lines of attempting to call a nil value (as new API functions are nil in older binaries). When a new API call is added to the C++ source, the version number in this file should be incremented. Traditionally, the version number will be similar to the SVN revision number. Likewise, if an existing function is changed in a way incompatible with old Lua code, then the version number needs to change. Note: This file compiles as both Lua and C++. */ #endif /*]] --*/ return 2716; CorsixTH-0.70.0/CorsixTH/Lua/app.lua000066400000000000000000002322561522247547500170370ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local pathsep = package.config:sub(1, 1) local rnc = require("rnc") local lfs = require("lfs") local TH = require("TH") local SDL = require("sdl") -- Increment each time a savegame break would occur -- and add compatibility code in afterLoad functions -- Recommended: Also replace/Update the summary comment local SAVEGAME_VERSION = 253 -- 0.70.0 class "App" ---@type App local App = _G["App"] App.MIN_WINDOW_WIDTH = 640 App.MIN_WINDOW_HEIGHT = 480 function App:App() self.command_line = {} self.config = {} self.hotkeys = {} self.runtime_config = {} self.key_modifiers = {} self.gfx = {} self.eventHandlers = { frame = self.drawFrame, timer = self.onTick, keydown = self.onKeyDown, keyup = self.onKeyUp, textediting = self.onEditingText, textinput = self.onTextInput, buttonup = self.onMouseUp, buttondown = self.onMouseDown, mousewheel = self.onMouseWheel, motion = self.onMouseMove, active = self.onWindowActive, window_resize = self.onWindowResize, music_over = self.onMusicOver, movie_over = self.onMovieOver, sound_over = self.onSoundOver, multigesture = self.onMultiGesture } self.strings = {} self.savegame_version = SAVEGAME_VERSION self.check_for_updates = TH.GetCompileOptions().update_check self.idle_tick = 0 self.window_active_status = false -- whether window is in focus, set after App:init end function App:setCommandLine(...) self.command_line = { ... } for _, arg in ipairs(self.command_line) do local setting, value = arg:match("^%-%-([^=]*)=(.*)$") --setting=value if value then self.command_line[setting] = value end end end --! Returns the full path of the local path given --!param folders (string or table) A string of one segment or an set of many segments of the path --!param trailing_slash (boolean) Whether the path needs to end with a local path separator --!return fullpath (string) The OS dependent full path function App:getFullPath(folders, trailing_slash) if type(folders) ~= "table" then folders = {folders} end local ending = trailing_slash and pathsep or "" return debug.getinfo(1, "S").source:sub(2, -12) .. table.concat(folders, pathsep) .. ending end function App:init() -- App initialisation 1st goal: Get the loading screen up print("") print("") print("---------------------------------------------------------------") print("") print("Welcome to CorsixTH " .. self:getReleaseString() .. "!") print("") print("---------------------------------------------------------------") print("") print("This window will display useful information if an error occurs.") print("") print("---------------------------------------------------------------") print("") -- Prereq 1: C++ and lua sides are compatible local compile_opts = TH.GetCompileOptions() local api_version = corsixth.require("api_version") if api_version ~= compile_opts.api_version then api_version = api_version or 0 compile_opts.api_version = compile_opts.api_version or 0 if api_version < compile_opts.api_version then print("Notice: Compiled binary is more recent than Lua scripts.") elseif api_version > compile_opts.api_version then print("Warning: Compiled binary is out of date. CorsixTH will likely" .. " fail to run until you recompile the binary.") end end -- Prereq 2: Config file (for screen width / height / TH folder) -- Note: These errors cannot be translated, as the config file specifies the language local conf_path = self.command_line["config-file"] or "config.txt" local _, conf_err = require('config_finder').load_config(conf_path, self.config) if conf_err then error("Unable to load the config file. Please ensure that CorsixTH " .. "has permission to read/write " .. conf_path .. ", or use the " .. "--config-file=filename command line option to specify a writable file. " .. "For reference, the error loading the config file was: " .. conf_err) end self:fixConfig() corsixth.require("filesystem") local good_install_folder, error_message, charset = self:checkInstallFolder() self.good_install_folder = good_install_folder self.level_dir = self:getFullPath("Levels", true) self.campaign_dir = self:getFullPath("Campaigns", true) self:initUserDirectories() self:initSavegameDir() self:initScreenshotsDir() -- Create the window if not SDL.init("video", "timer", "audio") then return false, "Cannot initialise SDL" end -- Report operating system (possible values: "windows", "macos", "unix") self.os = compile_opts.os local modes = {} self.fullscreen = false if self.config.fullscreen then self.fullscreen = true modes[#modes + 1] = "fullscreen" end if self.config.track_fps then modes[#modes + 1] = "present immediate" end if self.config.direct_zoom == nil or self.config.direct_zoom then modes[#modes + 1] = "direct zoom" end self.modes = modes self.video = assert(TH.surface( self.config.width, self.config.height, App.MIN_WINDOW_WIDTH * self.config.ui_scale, App.MIN_WINDOW_HEIGHT * self.config.ui_scale, unpack(modes))) self.video:setBlueFilterActive(false) SDL.wm.setIconWin32() self.caption = "CorsixTH" if self.config.track_fps then SDL.trackFPS(true) SDL.limitFPS(false) end -- Create gamelog file. self:initGamelogFile() -- Prereq 2: Load and initialise the graphics subsystem corsixth.require("persistance") corsixth.require("graphics") local gfx_set = good_install_folder and (self.using_demo_files and "demo" or "full") or "base" self.gfx = Graphics(self, gfx_set, charset) -- Put up the loading screen if good_install_folder then self.video:startFrame() self.gfx:loadRaw("Load01V", 640, 480):draw(self.video, math.floor((self.config.width - 640) / 2), math.floor((self.config.height - 480) / 2)) self.video:endFrame() -- Add some notices to the loading screen local notices = {} local font = self.gfx:loadBuiltinFont() if self.gfx:hasLanguageFont("unicode") then notices[#notices + 1] = TH.freetype_font.getCopyrightNotice() font = self.gfx:loadLanguageFont("unicode", font:getSheet()) end notices = table.concat(notices) if notices ~= "" then self.video:startFrame() self.gfx:loadRaw("Load01V", 640, 480):draw(self.video, math.floor((self.config.width - 640) / 2), math.floor((self.config.height - 480) / 2)) font:drawWrapped(self.video, notices, 32, math.floor((self.config.height + 400) / 2), math.floor(self.config.width - 64), "center") self.video:endFrame() end end -- App initialisation 2nd goal: Load remaining systems and data in an appropriate order math.randomseed(os.time() + SDL.getTicks()) -- The following psuedo-random number generators are based on different -- disritubtion algorithms. For explanations and how to use them see the Wiki -- Add math.t_random globally. -- It generates pseudo random triangular distributed numbers in interval (a, b) -- mostly around c between a and b. strict_declare_global "math.t_random" math.t_random = function(a, c, b) assert(a < c, "Left boundary a should be less than center c.") assert(c < b, "Right boundary b should more than center c.") -- normalize c (a -> 0, b -> 1) local range = b - a c = (c - a) / range local u = math.random() if u <= c then return a + math.sqrt(c * u) * range else return a + (1 - math.sqrt((1 - c) * (1 - u))) * range end end -- Add math.n_random globally. It generates pseudo random normally distributed -- numbers using the Box-Muller transform. strict_declare_global "math.n_random" math.n_random = function(mean, variance) return mean + math.sqrt(-2 * math.log(math.random())) * math.cos(2 * math.pi * math.random()) * variance end -- Add math.p_random globally. -- It generates pseudo random Poisson distributed numbers. -- Algorithm by Junhao for large mean value support, based on Knuths algorithm. -- See also: https://en.wikipedia.org/wiki/Poisson_distribution strict_declare_global "math.p_random" math.p_random = function(mean) local STEP = 500 local mean_left = mean local k = 0 local p = 1 while true do k = k + 1 -- Draw a non-zero random value. local u = 0 while u == 0 do u = math.random() end p = p * u while p < 1 and mean_left > 0 do if mean_left > STEP then p = p * math.exp(STEP) mean_left = mean_left - STEP else p = p * math.exp(mean_left) mean_left = 0 end end if p <= 1 then break end end return k - 1 end -- Also add the nice-to-have function math.round strict_declare_global "math.round" math.round = function(input) return math.floor(input + 0.5) end -- Load audio corsixth.require("audio") self.audio = Audio(self) self:initMusicDir() self.audio:init() -- Hack to early initialise the audio and reduce delay on Windows self.audio:playRandomBackgroundTrack() self.audio:stopBackgroundTrack() -- Load movie player corsixth.require("movie_player") self.moviePlayer = MoviePlayer(self, self.audio, self.video) if good_install_folder then self.moviePlayer:init() end -- Load strings before UI and before additional Lua corsixth.require("strings") corsixth.require("string_extensions") self.strings = Strings(self) self.strings:init() local language_load_success, language_error = self:initLanguage() if (self.command_line.dump or ""):match("strings") then -- Specify --dump=strings on the command line to dump strings -- (or insert "true or" after the "if" in the above) self:dumpStrings() end -- Load/setup hotkeys. local hotkeys_path = self.command_line["hotkeys-file"] or "hotkeys.txt" local _, hotkeys_err = require('config_finder').load_hotkeys(hotkeys_path, self.hotkeys) if hotkeys_err then error(_S.hotkeys_file_err.file_err_01 .. hotkeys_path .. _S.hotkeys_file_err.file_err_02 .. hotkeys_err) end self:fixHotkeys() -- Load map before world corsixth.require("map") -- Load additional Lua before world if good_install_folder then self.anims = self.gfx:loadAnimations("Data", "V") self.animation_manager = AnimationManager(self.anims) self.walls = self:loadLuaFolder("walls") corsixth.require("entity") corsixth.require("entities.humanoid") corsixth.require("entities.object") corsixth.require("entities.machine") local objects = self:loadLuaFolder("objects") self.objects = self:loadLuaFolder("objects/machines", nil, objects) -- Doors are in their own folder to ensure that the swing doors (which -- depend on the door) are loaded after the door object. self.objects = self:loadLuaFolder("objects/doors", nil, objects) for _, v in ipairs(self.objects) do if v.slave_id then v.slave_type = self.objects[v.slave_id] v.slave_type.master_type = v end Object.processTypeDefinition(v) end corsixth.require("room") self.rooms = self:loadLuaFolder("rooms") corsixth.require("humanoid_action") self.humanoid_actions = self:loadLuaFolder("humanoid_actions") local diseases = self:loadLuaFolder("diseases") self.diseases = self:loadLuaFolder("diagnosis", nil, diseases) -- Load world before UI corsixth.require("world") end -- Load UI corsixth.require("ui") if good_install_folder then corsixth.require("game_ui") self.ui = UI(self, true) else self.ui = UI(self, true) self.ui:setMenuBackground() local function callback(path) TheApp.config.theme_hospital_install = path TheApp:saveConfig() TheApp:reset() end self.ui:addWindow(UIDirectoryBrowser(self.ui, nil, _S.install.th_directory, "InstallDirTreeNode", callback)) return true end -- Load main menu (which creates UI) local function callback_after_movie() self:loadMainMenu() self.audio:playRandomBackgroundTrack() -- If we couldn't properly load the language, show an information dialog if not language_load_success then -- At this point we know the language is english, so no use having -- localized strings. self.ui:addWindow(UIInformation(self.ui, { language_error })) end -- If the player wants to continue then load the youngest file in the Autosaves folder -- If they give a month number then load that month's autosave if self.command_line.continue then local num = self.command_line.continue local file = "Autosaves" .. pathsep .. "Autosave" .. num .. ".sav" if num >= "1" and num <= "12" and lfs.attributes(self.savegame_dir .. file, "size") then self.command_line.load = file else self.command_line.load = "Autosaves" .. pathsep .. FileTreeNode(self.savegame_dir .. "Autosaves"):getMostRecentlyModifiedChildFile(".%.sav$").label end end -- If a savegame was specified, load it if self.command_line.load then local status, err = pcall(self.load, self, self.savegame_dir .. self.command_line.load) if not status then err = _S.errors.load_prefix .. err print(err) self.ui:addWindow(UIInformation(self.ui, { err })) end end -- There might also be a message from the earlier initialization process that should be shown. -- Show it using the built-in font in case the game's font is messed up. if error_message then self.ui:addWindow(UIInformation(self.ui, error_message, true)) end end -- Finished init, save any config changes applied TheApp:saveConfig() TheApp:saveHotkeys() if self.config.play_intro then self.moviePlayer:playIntro(callback_after_movie) else callback_after_movie() end return true end --! Create the gamelog, using the launch time in the filename, and write the system information. function App:initGamelogFile() self.gamelog_path = self.user_log_dir .. os.date("%y-%m-%d--%H-%M-%S--gamelog.txt", os.time(os.date("*t"))) local fi, success = self:writeToFileOrTmp(self.gamelog_path) local sysinfo = self:gamelogHeader() fi:write(sysinfo) fi:close() if success then self:trimLogs() end -- Only trim logs if logs folder is writable end --! Trims the logs folder of old game logs down to ten files. function App:trimLogs() local log_retention, log_table = 11, {} for node in lfs.dir(self.user_log_dir) do local file = self.user_log_dir .. pathsep .. node if node:sub(-12) == "-gamelog.txt" then table.insert(log_table, file) end end table.sort(log_table, function(a, b) return lfs.attributes(a, "modification") > lfs.attributes(b, "modification") end) for i=log_retention, #log_table do os.remove(log_table[i]) end end function App:getConfigPath() return self.command_line["config-file"] or "config.txt" end function App:getDefaultScreenshotsDir() local conf_path = self:getConfigPath() return conf_path:match("^(.-)[^" .. pathsep .. "]*$") .. "Screenshots" end function App:getDefaultSavegameDir() local conf_path = self:getConfigPath() return conf_path:match("^(.-)[^" .. pathsep .. "]*$") .. "Saves" end --! Tries to initialize the user level and campaign directories -- TODO: Integrate other directory initialisations into this function function App:initUserDirectories() local conf_path = self:getConfigPath() -- Attempt to set the user's directory choice -- param dir (path) The defined path of the folder by the user -- param label (string) What folder was being set if there was an error -- return The fully qualified path local function setUserDir(dir, label) dir = dir:sub(-1, -1) == pathsep and dir:sub(1, -2) or dir if lfs.attributes(dir, "mode") ~= "directory" and not lfs.mkdir(dir) then -- A failed directory creation does not result in a crash. But the user may lose -- the ability to load/save properly. print("Warning: " .. label .. " directory does not exist and could not be created.") end dir = dir:sub(-1, -1) ~= pathsep and dir .. pathsep or dir return dir end self.user_level_dir = self.config.levels or conf_path:match("^(.-)[^" .. pathsep .. "]*$") .. "Levels" self.user_level_dir = setUserDir(self.user_level_dir, "User Levels") self.user_campaign_dir = self.config.campaigns or conf_path:match("^(.-)[^" .. pathsep .. "]*$") .. "Campaigns" self.user_campaign_dir = setUserDir(self.user_campaign_dir, "User Campaigns") self.user_log_dir = self.config.logs or conf_path:match("^(.-)[^" .. pathsep .. "]*$") .. "Logs" self.user_log_dir = setUserDir(self.user_log_dir, "Gamelogs") end --! Tries to initialize the savegame directory, returns true on success and --! false on failure. function App:initSavegameDir() local default_savegame_dir = self:getDefaultSavegameDir() self.savegame_dir = self.config.savegames or default_savegame_dir if self.savegame_dir:sub(-1, -1) == pathsep then self.savegame_dir = self.savegame_dir:sub(1, -2) end if lfs.attributes(self.savegame_dir, "mode") ~= "directory" then if not lfs.mkdir(self.savegame_dir) then print("Notice: Savegame directory does not exist and could not be created.") return false end end if self.savegame_dir:sub(-1, -1) ~= pathsep then self.savegame_dir = self.savegame_dir .. pathsep end return true end function App:initScreenshotsDir() local default_screenshots_dir = self:getDefaultScreenshotsDir() self.screenshot_dir = self.config.screenshots or default_screenshots_dir if self.screenshot_dir:sub(-1, -1) == pathsep then self.screenshot_dir = self.screenshot_dir:sub(1, -2) end if lfs.attributes(self.screenshot_dir, "mode") ~= "directory" then if not lfs.mkdir(self.screenshot_dir) then print("Notice: Screenshot directory does not exist and could not be created.") return false end end if self.screenshot_dir:sub(-1, -1) ~= pathsep then self.screenshot_dir = self.screenshot_dir .. pathsep end return true end function App:initMusicDir() -- No need to set the music dir if it's already configured if self.config.audio_music then if isDirectory(self.config.audio_music) then return else print("Warning: Configured music directory '" .. self.config.audio_music .. "' is not a valid directory.") self.config.audio_music = nil end end -- Checks if the given directory name is a valid music directory name local function isValidMusicDirName(name) local posible_dirs = {"music"} for _, valid_name in ipairs(posible_dirs) do if name == valid_name then return true end end return false end -- Checks if the specified directory has music files local function dirHasMusic(path) -- Build a lookup table of allowed extensions (waveform + instructional) local waveform = list_to_set(self.audio.allowed_waveform_formats) local instructional = list_to_set(self.audio.allowed_instructional_formats) -- Scan directory for files with matching extensions for file in lfs.dir(path) do local ext = file:match("%.([^.]+)$") if ext and (waveform[ext:upper()] or instructional[ext:upper()]) then return true end end return false end -- Checks if the specified path contains a music directory and if it has music files -- If found, the directory's path is returned local function findMusicDir(path) if path == nil or not isDirectory(path) then return nil end local normalized_path = stripTrailingSlashes(path) -- Check every file and folder inside the given path for entry in lfs.dir(normalized_path) do local entry_path = normalized_path .. "/" .. entry -- paths with "/" work on all operating systems if isValidMusicDirName(entry:lower()) and canOpenDirectory(entry_path) and dirHasMusic(entry_path) then return entry_path end end return nil end local operating_system = self.os local corsixth_path = lfs.currentdir() local conf_path = self.command_line["config-file"] or nil -- Gets the path of the config file ('nil' if it's in CorsixTH's dir) conf_path = conf_path:match("^(.-)[^" .. pathsep .. "]*$") -- Removes the config file name from the above path if(operating_system == "macos") then -- On macOS skip checking the game's directory, since it's difficult to obtain and/or open corsixth_path = nil end -- Check corsixth's install directory first, then the config file directory local music_dir = findMusicDir(conf_path) or findMusicDir(corsixth_path) if music_dir then self.config.audio_music = music_dir end -- self:saveConfig() --> Don't save the config here, it'll get saved later in the app initialization process end --! Initialises the application's language based on the player's choice. --!return success (boolean) Whether the chosen language was initialised --!return err (string) What to report back to the player on failure function App:initLanguage() -- Make sure that we can actually show the desired language. -- If we can't, work out the most common issue and reset to a revert to a -- language that is likely to be supported for the version of Theme Hospital -- the player has. local success, err = true, nil local language = self.config.language -- Revert to Russian for the Russian regional release of Theme Hospital or -- English otherwise. -- -- When we support more regional versions of Theme Hospital this function -- should be extended to cover those as well. local function revertToSupportedLanguage() local l if self.gfx:hasLanguageFont("cp437") then l = [[English]] elseif self.gfx:hasLanguageFont("mik") then l = [[Russian]] else print("Warning: No suitable font found. Defaulting to English, but the game may be broken.") l = [[English]] end self.config.language = l self:saveConfig() success = false end local exists = self.strings:checkLanguageExists(language) if not exists then revertToSupportedLanguage() err = "The game language set in the configuration file '" .. language .. "' was not valid. It has been reverted to '" .. self.config.language .. "'. Please select your desired language from the Settings screen again." language = self.config.language end local font = self.strings:getFont(language) if self.gfx:hasLanguageFont(font) then self.gfx.language_font = font else revertToSupportedLanguage() err = "The game language has been reverted to '" .. self.config.language .. "' because the desired language '" .. language .. "' could not be loaded." .. " Please make sure you have specified a font file in Settings-Folders-Font or the" .. " configuration file." self.gfx.language_font = self.strings:getFont(self.config.language) language = self.config.language end local strings, speech_file = self.strings:load(language) strict_declare_global "_S" strict_declare_global "_A" local old_S = _S _S = strings -- For immediate compatibility: getmetatable(_S).__call = function(_, sec, str, ...) assert(_S.deprecated[sec] and _S.deprecated[sec][str], "_S(" .. sec .. ", " .. str .. ") does not exist!") str = _S.deprecated[sec][str] if ... then str = str:format(...) end return str end if old_S then unpermanent "_S" end _S = permanent("_S", TH.stringProxy(_S)) if old_S then TH.stringProxy.reload(old_S, _S) end _A = self.strings:setupAdviserMessage(_S.adviser) self.gfx:onChangeLanguage() if self.ui then self.ui:onChangeLanguage() end self.audio:initSpeech(speech_file) return success, err end function App:worldExited() self.audio:clearCallbacks() end --! Initialise CorsixTH's main menu screen including relevant windows --!param message (string) Something to display to the user function App:loadMainMenu(message) if self.world then self:worldExited() end -- Make sure there is no blue filter active. self.video:setBlueFilterActive(false) -- Unload ui, world and map self.ui = nil self.world = nil self.map = nil self.ui = UI(self) self.ui:setMenuBackground() self.ui:addWindow(UIMainMenu(self.ui)) self.ui:addWindow(UITipOfTheDay(self.ui)) -- Show update window if there's an update self:checkForUpdates() -- If a message was supplied, show it if message then self.ui:addWindow(UIInformation(self.ui, message)) end -- Reset the idle tick counter self:resetIdle() end --! Sets the mouse capture to the state set within --! app.config.capture_mouse function App:setCaptureMouse() self.video:setCaptureMouse(self.config.capture_mouse) end --! Loads the first level of the specified campaign and prepares the world --! to be able to progress through that campaign. --!param campaign_file (string) Full path of a CorsixTH Campaign definition Lua file. function App:loadCampaign(campaign_file) local campaign_info, level_info, errors, _ campaign_info, errors = self:readCampaignFile(campaign_file) if not campaign_info then self.ui:addWindow(UIInformation(self.ui, { _S.errors.could_not_load_campaign:format(errors) })) return end campaign_info.folder = campaign_file:match("(.*" .. pathsep .. ")") level_info, errors = self:readLevelFile(campaign_info.levels[1], campaign_info.folder) if not level_info then self.ui:addWindow(UIInformation(self.ui, { _S.errors.could_not_find_first_campaign_level:format(errors) })) return end _, errors = self:readMapDataFile(level_info.map_file) if errors then self.ui:addWindow(UIInformation(self.ui, { errors })) return end -- Use localised description and winning text, if available campaign_info.description = self.strings:getLocalisedText(campaign_info.description, campaign_info.description_table) campaign_info.winning_text = self.strings:getLocalisedText(campaign_info.winning_text, campaign_info.winning_text_table) if self:loadLevel(level_info.path, nil, level_info.name, level_info.map_file, level_info.briefing, nil, _S.errors.load_level_prefix, campaign_info) and self.world then -- The new world needs to know which campaign to continue on. self.world.campaign_info = campaign_info -- Play the level advance movie from a position where this campaign will end at 12 if campaign_info.movie then local n = math.max(1, 12 - #campaign_info.levels) self.moviePlayer:playAdvanceMovie(n) end end end --! Reads the given file name as a Lua chunk from the Campaign folders --! A correct campaign definition contains "name", "description", "levels", and "winning_text". --!param campaign_file (string) Full path of the file to read. --!return (table) Definitions found in the campaign file. function App:readCampaignFile(campaign_file) local chunk, err = loadfile_envcall(campaign_file) if not chunk then return nil, "Error loading " .. campaign_file .. ":\n" .. tostring(err) else local result = {} chunk(result) return result end end --! Opens the given file name and returns all Level definitions in a table. --! Values in the returned table: "path", "level_file", "name", "map_file", "briefing", and "end_praise". --!param level (string) Full path or name of the file to read. --!param campaign_dir (string) Folder of the parent campaign file --!return (table) Level info found in the file. function App:readLevelFile(level, campaign_dir) local filename = self:_checkOrFind(level, campaign_dir) local file, err = io.open(filename and filename or "") if not file then return nil, "Could not open the specified level file (" .. level .. "): " .. err end local contents = file:read("*all") file:close() local level_info = {} level_info.path = filename level_info.level_file = level level_info.name = contents:match("%Name ?= ?\"(.-)\"") or "Unknown name" local map_file = contents:match("%MapFile ?= ?\"(.-)\"") if not map_file then -- The old way of defining the Map File has been deprecated, but a warning is enough. map_file = contents:match("%LevelFile ?= ?\"(.-)\"") if map_file then print("\nWarning: The level '" .. level_info.name .. "' contains a deprecated variable definition in the level file." .. "'%LevelFile' has been renamed to '%MapFile'. Please advise the map creator to update the level.\n") end level_info.deprecated_variable_used = true end -- Find the full path of the map file, unless it is a CorsixTH additional config or a Theme Hospital map if filename:match(self.level_dir .. "original%d%d%.level") then level_info.map_file = map_file elseif map_file then if map_file:lower():match("^level%.l%d+$") then level_info.map_file = map_file else level_info.map_file = self:_checkOrFind(map_file, campaign_dir) end else return nil, _S.errors.map_file_missing:format(map_file) end -- Pick a localised set of briefings, if available local lang_code = self.strings:getLangCode() local local_briefing = contents:match("%LevelBriefingTable%." .. lang_code .. " ?= ?\"(.-)\"") local en_briefing = contents:match("%LevelBriefingTable%.en ?= ?\"(.-)\"") local standard_briefing = contents:match("%LevelBriefing ?= ?\"(.-)\"") level_info.briefing = local_briefing or en_briefing or standard_briefing local local_end_praise = contents:match("%LevelDebriefingTable%." .. lang_code .. " ?= ?\"(.-)\"") local en_end_praise = contents:match("%LevelDebriefingTable%.en ?= ?\"(.-)\"") local standard_end_praise = contents:match("%LevelDebriefing ?= ?\"(.-)\"") level_info.end_praise = local_end_praise or en_end_praise or standard_end_praise return level_info end --! Searches in the given folders for the given filename --!param search_paths (table) List of folders (strings) to look through --!param filename (string) Filename to search for. --!return path (string) The full path of the found file function App:findFileInDirs(search_paths, filename) for _, parent_path in ipairs(search_paths) do local check_path = parent_path .. filename local file, _ = io.open(check_path, "rb") if file then file:close() return check_path end end end --! Invokes a protected call of App:_loadLevel(...). See that function for more information. --! This function should always be called to catch errors and properly pass the --! error to the player --!param error_prefix (string) (Optional) Prefixes the error relevant to what was loaded --! return (boolean) The outcome of the pcall function App:loadLevel(level, difficulty, level_name, level_file, level_intro, map_editor, error_prefix, campaign_info) local status, err = pcall(self._loadLevel, self, level, difficulty, level_name, level_file, level_intro, map_editor, campaign_info) tracy.Message("Loading level: " .. (level_name or level or "map editor")) if not status then err = error_prefix and error_prefix .. err or "Error while loading level: " .. err print(err) self:loadMainMenu() -- We need to unload all level elements that succeeded self.ui:addWindow(UIInformation(self.ui, { err })) end return status end --! Private Function to load the level. Call via App:loadLevel(...) --! Loads the specified level. --!param level (string) Full path of a custom level, name of a TH level, or nil for mapeditor --!param difficulty (string) One of "easy, full, hard", or nil for custom levels --!param level_name (string) Display name of the level --!param level_file (string) Full path of a custom map, name of a TH level, -- or nil for TH campaign or mapeditor --!param level_intro (string) Introduction text displayed to the player --!param map_editor (boolean) True for opening the map editor --!param campaign_info (table of strings) Information about campaign in case loading level -- is a part of a campaign. if not part of a campaign then campaign_info is nil. function App:_loadLevel(level, difficulty, level_name, level_file, level_intro, map_editor, campaign_info) if self.world then self:worldExited() end -- Check that we can load the data before unloading current map local new_map = Map(self) local map_objects, errors = new_map:load(level, difficulty, level_name, level_file, level_intro, map_editor) if not map_objects then self.ui:addWindow(UIInformation(self.ui, { errors })) return end -- If going from another level, save progress. local campaign_data = self.world and self.world:getCampaignData() -- Make sure there is no blue filter active. self.video:setBlueFilterActive(false) -- Unload ui, world and map self.ui = nil self.world = nil self.map = nil -- Load map self.map = new_map self.map:setBlocks(self.gfx:loadSpriteTable("Data", "VBlk-0")) self.map:setDebugFont(self.gfx:loadFontAndSpriteTable("QData", "Font01V")) local function determineFreeBuildMode() local is_main_campaign = tonumber(new_map.level_number) local is_custom_campaign = campaign_info ~= nil return self.config.free_build_mode and not (is_main_campaign or is_custom_campaign) end -- Load world self.world = World(self, determineFreeBuildMode()) self.world:createMapObjects(map_objects) -- Enable / disable SoundEffects self.audio:playSoundEffects(self.config.play_sounds) -- Load UI self.ui = GameUI(self, self.world:getLocalPlayerHospital(), map_editor) self.world:setUI(self.ui) -- Function call allows world to set up its keyHandlers -- Now restore progress from previous levels. if campaign_data then self.world:setCampaignData(campaign_data) end -- Log if we're playing with the demo or full graphics set -- TODO: Adjust for new_gfx set when implemented self.world.gfx_set = self.using_demo_files and "demo" or "full" end -- This is a useful debug and development aid function App:dumpStrings() -- Accessors to reach through the userdata proxies on strings local LUT = debug.getregistry().StringProxyValues local function val(o) if type(o) == "userdata" then return LUT[o] else return o end end local function is_table(o) return type(val(o)) == "table" end local dir = self.command_line["config-file"] or "" dir = string.sub(dir, 0, -11) local fi = assert(io.open(dir .. "debug-strings-orig.txt", "w")) for i, sec in ipairs(_S.deprecated) do for j, str in ipairs(sec) do fi:write("[" .. i .. "," .. j .. "] " .. ("%q\n"):format(val(str))) end fi:write("\n") end fi:close() local function dump_by_line(file, obj, prefix) for n, o in pairs(obj) do if n ~= "deprecated" then local new_prefix if type(n) == "number" then new_prefix = prefix .. "[" .. n .. "]" else new_prefix = (prefix == "") and n or (prefix .. "." .. n) end if is_table(o) then dump_by_line(file, o, new_prefix) else file:write(new_prefix .. " = " .. "\"" .. val(o) .. "\"\n") end end end end local function dump_grouped(file, obj, prefix) for n, o in pairs(obj) do if n ~= "deprecated" then local n1 = type(n) == "number" and "[" .. n .. "]" or n if is_table(o) then file:write(prefix .. n1 .. " = {\n") dump_grouped(file, o, prefix .. " ") file:write(prefix .. "}") else file:write(prefix .. n1 .. " = " .. "\"" .. val(o) .. "\"") end if prefix ~= "" then file:write(",") end file:write("\n") end end end fi = assert(io.open(dir .. "debug-strings-new-lines.txt", "w")) dump_by_line(fi, _S, "") fi:close() fi = assert(io.open(dir .. "debug-strings-new-grouped.txt", "w")) dump_grouped(fi, _S, "") fi:close() self:checkMissingStringsInLanguage(dir, self.config.language) -- Uncomment these lines to get diffs for all languages in the game -- for _, lang in pairs(self.strings.languages_english) do -- self:checkMissingStringsInLanguage(dir, lang) -- end print("") print("------------------------------------------------------") print("Dumped strings to default configuration file directory") print("------------------------------------------------------") print("") end --! Compares strings provided by language file of given language WITHOUT inheritance -- with strings provided by english language with inheritance (i.e. all strings). -- This will give translators an idea which strings are missing in their translation. --!param dir The directory where the file to write to should be. --!param language The language to check against. function App:checkMissingStringsInLanguage(dir, language) -- Accessors to reach through the userdata proxies on strings local LUT = debug.getregistry().StringProxyValues local function val(o) if type(o) == "userdata" then return LUT[o] else return o end end local function is_table(o) return type(val(o)) == "table" end local ltc = self.strings.language_to_chunk if ltc[language] ~= ltc["english"] then local str_en = self.strings:load("english", true) local str_cur = self.strings:load(language, true, true) local function dump_diff(file, obj1, obj2, prefix) for n, o in pairs(obj1) do if n ~= "deprecated" then local new_prefix if type(n) == "number" then new_prefix = prefix .. "[" .. n .. "]" else new_prefix = (prefix == "") and n or (prefix .. "." .. n) end if is_table(o) then -- if obj2 is already nil (i.e. whole table does not exist in current language), carry over nil dump_diff(file, o, obj2 and obj2[n], new_prefix) else if not (obj2 and obj2[n]) then -- does not exist in current language file:write(new_prefix .. " = " .. "\"" .. val(o) .. "\"\n") end end end end end -- if possible, use the English name of the language for the file name. local language_english = language for _, lang_eng in pairs(self.strings.languages_english) do if ltc[language] == ltc[lang_eng:lower()] then language_english = lang_eng break end end local fi = assert(io.open(dir .. "debug-strings-diff-" .. language_english:lower() .. ".txt", "w")) fi:write("------------------------------------\n") fi:write("MISSING STRINGS IN LANGUAGE \"" .. language:upper() .. "\":\n") fi:write("------------------------------------\n") dump_diff(fi, str_en, str_cur, "") fi:write("------------------------------------\n") fi:write("SUPERFLUOUS STRINGS IN LANGUAGE \"" .. language:upper() .. "\":\n") fi:write("------------------------------------\n") dump_diff(fi, str_cur, str_en, "") fi:close() end end function App:fixConfig() for key, value in pairs(self.config) do -- Trim whitespace from beginning and end string values - it shouldn't be -- there (at least in any current configuration options). if type(value) == "string" then if value:match("^[%s]") or value:match("[%s]$") then self.config[key] = value:match("^[%s]*(.-)[%s]*$") end end -- For language, make language name lower case if key == "language" and type(value) == "string" then self.config[key] = value:lower() -- For resolution, clamp resolution to at least 640x480 elseif key == "width" and (type(value) ~= "number" or value < App.MIN_WINDOW_WIDTH) then self.config[key] = App.MIN_WINDOW_WIDTH elseif key == "height" and (type(value) ~= "number" or value < App.MIN_WINDOW_HEIGHT) then self.config[key] = App.MIN_WINDOW_HEIGHT -- For scale, clamp to integer scale >= 1 elseif key == "ui_scale" then if type(value) == "number" then self.config[key] = math.max(math.floor(value), 1) else self.config[key] = 1 end elseif (key == "scroll_speed" or key == "shift_scroll_speed") and type(value) == "number" then if value > 10 then self.config[key] = 10 elseif value < 1 then self.config[key] = 1 end -- For player name, trim spaces or fill in from environment elseif key == "player_name" then value = value:match('^%s*(.*%S)') or "" -- Trim spaces if value:len() == 0 then -- If empty, use computer user's name, value = os.getenv("USER") or os.getenv("USERNAME") end value = value:match('^%s*(.*%S)') or "" if value:len() == 0 then -- unless that is also empty value = "PLAYER" end self.config[key] = value end end -- clamp scale to suitable values for current resolution if self.config.ui_scale * App.MIN_WINDOW_WIDTH > self.config.width or self.config.ui_scale * App.MIN_WINDOW_HEIGHT > self.config.height then self.config.ui_scale = math.floor(math.min( self.config.width / App.MIN_WINDOW_WIDTH, self.config.height / App.MIN_WINDOW_HEIGHT)) end end function App:saveConfig() local conf_path = self.command_line["config-file"] or "config.txt" require('config_finder').save_config(conf_path, self.config) end --! Tries to open the given file or a file in OS's temp dir. -- Returns the file handler, and true if it was written to the intended file. --!param file The full path of the intended file --!param mode The mode in which the file is opened, defaults to write function App:writeToFileOrTmp(file, mode) local f, err = io.open(file, mode or "w") if err then local tmp_file = os.tmpname() f = io.open(tmp_file, mode or "w") if self.ui then self.ui:addWindow(UIInformation(self.ui, { _S.errors.save_to_tmp:format(file, tmp_file, err) })) else print("Attempt to write to " .. file .. " failed. File was written instead to temporary location " .. tmp_file .. " because of the error: " .. err) end end assert(f, "Error: cannot write to filesystem") return f, not err end function App:fixHotkeys() for key, value in pairs(self.hotkeys) do -- Trim whitespace from beginning and end string values - it shouldn't be -- there (at least in any current configuration options). if type(value) == "string" then if value:match("^[%s]") or value:match("[%s]$") then self.hotkeys[key] = value:match("^[%s]*(.-)[%s]*$") end end end end function App:saveHotkeys() -- Load lines from config file local hotkeys_filename = self.command_line["hotkeys-file"] or "hotkeys.txt" require('config_finder').save_hotkeys(hotkeys_filename, self.hotkeys) end function App:errorHandler(last_dispatch_type, st) print("An error has occurred!") print("Almost anything can be the cause, but the detailed information " .. "below can help the developers find the source of the error.") print("Running: The " .. last_dispatch_type .. " handler.") print("A stack trace is included below, and the handler has been disconnected.") print(st) print("") self.video:setCaptureMouse(false) -- Free the mouse, so the user can eg close the window. if self.world then self.world:gameLog("Error in " .. last_dispatch_type .. " handler: ") self.world:gameLog(st) self.world:dumpGameLog() end if self.world and last_dispatch_type == "timer" and self.world.current_tick_entity then -- Disconnecting the tick handler is quite a drastic measure, so give -- the option of just disconnecting the offending entity and attempting -- to continue. local handler = self.eventHandlers[last_dispatch_type] local entity = self.world.current_tick_entity self.world.current_tick_entity = nil if class.is(entity, Patient) then self.ui:addWindow(UIPatient(self.ui, entity)) elseif class.is(entity, Staff) then self.ui:addWindow(UIStaff(self.ui, entity)) end self.ui:addWindow(UIConfirmDialog(self.ui, true, "Sorry, but an error has occurred. There can be many reasons - see the " .. "log window for details. Would you like to attempt a recovery?", --[[persistable:app_attempt_recovery]] function() self.world:gameLog("Recovering from error in timer handler...") entity.ticks = false self.eventHandlers.timer = handler end )) end self.eventHandlers[last_dispatch_type] = nil if last_dispatch_type ~= "frame" then -- If it wasn't the drawing code which failed, then it would be useful -- to ensure that a draw happens, as with events disconnected, a frame -- might not otherwise be drawn for a while. pcall(self.drawFrame, self) end end local done_no_handler_warning = {} function App:dispatch(evt_type, ...) local handler = self.eventHandlers[evt_type] if handler then return handler(self, ...) else if not done_no_handler_warning[evt_type] then print("Warning: No event handler for " .. evt_type) done_no_handler_warning[evt_type] = true end return false end end function App:onTick(...) if (not self.moviePlayer.playing) then if self.world then self.world:onTick(...) end self.ui:onTick(...) end return true -- tick events always result in a repaint end --! Function for handling idle time in the main menu, which leads to playing the --! demo gameplay trailer if left long enough function App:idle() if not self.config.play_demo then return end -- Check if we are in a proper 'idle' state and solely on the main menu if not self.ui:getWindowActiveStatus() or not self.ui:getWindow(UIMainMenu) or self.ui:getWindow(UIUpdate) or self.ui:getWindow(UIConfirmDialog) then self:resetIdle() return end -- Have we been idle enough (~30s, based on SDL tick rate of 18ms) if self.idle_tick > 1680 then -- User is idle, play the demo gameplay movie self.moviePlayer:playDemoMovie() self:resetIdle() else self.idle_tick = self.idle_tick + 1 end end -- Reset the idle count function App:resetIdle() self.idle_tick = 0 end local fps_history = {} -- Used to average FPS over the last thirty frames for i = 1, 30 do fps_history[i] = 0 end local fps_sum = 0 -- Sum of fps_history array local fps_next = 1 -- Used to loop through fps_history when [over]writing function App:drawFrame() self.video:startFrame() if (self.moviePlayer.playing) then self.key_modifiers = {} self.moviePlayer:refresh() else self.key_modifiers = SDL.getKeyModifiers() self.ui:draw(self.video) end self.video:endFrame() if self.config.track_fps then fps_sum = fps_sum - fps_history[fps_next] fps_history[fps_next] = SDL.getFPS() fps_sum = fps_sum + fps_history[fps_next] fps_next = (fps_next % #fps_history) + 1 end end function App:getFPS() if self.config.track_fps then return fps_sum / #fps_history end end function App:onKeyDown(...) return self.ui:onKeyDown(...) end function App:onKeyUp(...) return self.ui:onKeyUp(...) end function App:onEditingText(...) return self.ui:onEditingText(...) end function App:onTextInput(...) return self.ui:onTextInput(...) end function App:onMouseUp(...) return self.ui:onMouseUp(...) end function App:onMouseDown(...) return self.ui:onMouseDown(...) end function App:onMouseMove(...) return self.ui:onMouseMove(...) end function App:onMouseWheel(...) return self.ui:onMouseWheel(...) end function App:onWindowActive(...) return self.ui:onWindowActive(...) end --! Window has been resized by the user --! Call the UI to handle the new window size function App:onWindowResize(...) return self.ui:onWindowResize(...) end function App:onMusicOver(...) return self.audio:onMusicOver(...) end function App:onMovieOver(...) self.moviePlayer:onMovieOver(...) end function App:onSoundOver(...) return self.audio:onSoundPlayed(...) end function App:onMultiGesture(...) return self.ui:onMultiGesture(...) end function App:isThemeHospitalPath(path) local ngot = 0 for obj, _ in lfs.dir(path) do for _, thing in ipairs({ "data", "levels", "qdata" }) do if obj:lower() == thing and lfs.attributes(path .. pathsep .. obj, "mode") == "directory" then ngot = ngot + 1 end end end if ngot == 3 then return true end end function App:checkInstallFolder() self.fs = FileSystem() local status, _ if self.config.theme_hospital_install then status, _ = self.fs:setRoot(self.config.theme_hospital_install) end local message = "Please make sure that you point the game to" .. " a valid copy of the data files from the original game," .. " as said files are required for graphics and sounds." if not status then -- Table of predictable places. First three are platform independent, -- then macOS app and its parent folder, GOG bundle, -- then linux Filesystem Hierarchy Standard, then Windows Program Files -- mac_app_dir is the macOS app base directory named CorsixTH.app local mac_app_dir = debug.getinfo(1).short_src:match("(.*)/Contents/.") local user_dir = os.getenv("HOME") or os.getenv("USERPROFILE") local win_home_dir = nil; if os.getenv("HOMEDRIVE") and os.getenv("HOMEPATH") then win_home_dir = os.getenv("HOMEDRIVE") .. os.getenv("HOMEPATH") if win_home_dir == user_dir then win_home_dir = nil; end end local possible_locations = { user_dir, user_dir and (user_dir .. pathsep .. "Documents"), win_home_dir, corsixth.require("config_finder").config_filename:match("(.*[/\\])"):sub(1, -2), mac_app_dir, mac_app_dir and mac_app_dir:match("(.*)/.*%.app"), "/Applications/Theme Hospital.app/Contents/Resources/game/Theme Hospital.app/" .. "Contents/Resources/Theme Hospital.boxer/C.harddisk", "/usr/share/games/corsix-th", "/usr/local/share/games/corsix-th", os.getenv("ProgramFiles"), os.getenv("ProgramFiles(x86)"), [[C:]], [[D:]], [[E:]], [[F:]], [[G:]], [[H:]] } local possible_folders = { "ThemeHospital", "Theme Hospital", "HOSP", "TH97", [[GOG Galaxy\Games\Theme Hospital]], [[GOG.com\Theme Hospital]], [[GOG Games\Theme Hospital]], [[Origin Games\Theme Hospital\data\Game]], [[EA Games\Theme Hospital\data\Game]] } for _, dir in pairs(possible_locations) do if status then break end for _, folder in pairs(possible_folders) do local _ local path = dir .. pathsep .. folder if lfs.attributes(path, "mode") == "directory" and self:isThemeHospitalPath(path) then print("Game data found at: " .. path) print("This will be written to the config file") self.config.theme_hospital_install = path status, _ = self.fs:setRoot(path) break end end end if not status then -- If the given directory didn't exist, then likely the config file hasn't -- been changed at all from the default, and we looked unsuccessfully in -- some likely folders for the game data, so we continue to initialise the -- app, and give the user a dialog asking for the correct directory. return false end end -- Check that a few core files are present local missing = {} local function check(path) if not self.fs:readContents(path) then missing[#missing + 1] = path end end check("Data" .. pathsep .. "VBlk-0.tab") check("Levels" .. pathsep .. "Level.L1") check("QData" .. pathsep .. "SPointer.dat") if #missing ~= 0 then missing = table.concat(missing, ", ") message = "Invalid Theme Hospital folder specified in config file, " .. "as at least the following files are missing: " .. missing .. ".\n" .. message print(message) print("Trying to let the user select a new one.") return false, { message } end -- Check for demo version if self.fs:readContents("DataM", "Demo.dat") then self.using_demo_files = true print("Notice: Using data files from demo version of Theme Hospital.") print("Consider purchasing a full copy of the game to support EA.") end -- Do a few more checks to make sure that commonly corrupted files are OK. local corrupt = {} -- Check for file corruption for local files. -- No check is done if the game is loaded from an ISO local function check_corrupt(path, correct_size, allow_missing) -- If the file exists but is smaller than usual it is probably corrupt if self.fs:fileExists(path) then local real_size = self.fs:fileSize(path) if real_size + 1024 < correct_size or real_size - 1024 > correct_size then corrupt[#corrupt + 1] = path .. " (Size: " .. math.floor(real_size / 1024) .. " kB / Correct: about " .. math.floor(correct_size / 1024) .. " kB)" end elseif not allow_missing then corrupt[#corrupt + 1] = path .. " (This file is missing)" end end if self.using_demo_files then check_corrupt("ANIMS" .. pathsep .. "WINLEVEL.SMK", 243188, true) check_corrupt("LEVELS" .. pathsep .. "LEVEL.L1", 163948) check_corrupt("DATA" .. pathsep .. "BUTTON01.DAT", 252811) else check_corrupt("ANIMS" .. pathsep .. "AREA01V.SMK", 251572, true) check_corrupt("ANIMS" .. pathsep .. "WINGAME.SMK", 2066656, true) check_corrupt("ANIMS" .. pathsep .. "WINLEVEL.SMK", 335220, true) check_corrupt("INTRO" .. pathsep .. "INTRO.SM4", 33616520, true) check_corrupt("ANIMS" .. pathsep .. "LOSE1.SMK", 1009728, true) end if #corrupt ~= 0 then table.insert(corrupt, 1, "There appears to be corrupt files in your Theme Hospital folder, " .. "so don't be surprised if CorsixTH crashes. At least the following files are wrong:") table.insert(corrupt, message) end local fontData = assert(self.fs:readContents("QData" .. pathsep .. "Font00V.dat")) local fontcrc = TH.CRC32File(fontData) local charset if fontcrc == 0x0033FA05 then charset = "mik" else charset = "cp437" end return true, #corrupt ~= 0 and corrupt or nil, charset end function App:findSoundFont() local data_dir = self:getFullPath() local possible_locations = { self.config.soundfont or false, data_dir .. "FluidR3_GM.sf2", data_dir .. "FluidR3.sf3", "/usr/share/soundfonts/default.sf2", -- default linux "/usr/share/sounds/sf2/FluidR3_GM.sf2", -- debian based "/usr/share/soundfonts/FluidR3_GM.sf2" -- archlinux and others } for _, sf_path in ipairs(possible_locations) do if sf_path and lfs.attributes(sf_path) then return sf_path end end return nil end --! Get the directory containing the bitmap files. --!return Name of the directory containing the bitmap files, ending with a -- directory path separator. function App:getBitmapDir() return (self.command_line["bitmap-dir"] or "Bitmap") .. pathsep end -- Load bitmap data into memory. --!param filename Name of the file to load. --!return The loaded data. function App:readBitmapDataFile(filename) filename = self:getBitmapDir() .. filename local file = assert(io.open(filename, "rb")) local data = file:read("*a") file:close() if data:sub(1, 3) == "RNC" then data = assert(rnc.decompress(data)) end return data end -- Read a data file of the application into memory (possibly with decompression). --!param dir (string) Directory to read from. "Bitmap" and "Levels" are -- meta-directories, and get resolved to real directories in the function. --!param filename (string or nil) If specified, the file to load. If 'nil', the -- 'dir' parameter is the filename in the "Data" directory. function App:readDataFile(dir, filename) if dir == "Bitmap" then return self:readBitmapDataFile(filename) elseif dir == "Levels" then return self:readMapDataFile(filename) end if filename == nil then dir, filename = "Data", dir end local data = assert(self.fs:readContents(dir .. pathsep .. filename)) if data:sub(1, 3) == "RNC" then data = assert(rnc.decompress(data)) end return data end --! Get a level file. --!param path (string) Full path of the level file, or a Theme Hospital level filename --!return If the file could be found, the data of the file, else a -- tuple 'nil', and an error description function App:readMapDataFile(path) local data if path:match(pathsep) then local file = io.open(path, "rb") if file then data = file:read("*a") file:close() end else data = self.fs:readContents("Levels" .. pathsep .. path) if not data then return nil, _S.errors.missing_th_data_file:format(path) end end if data then if data:sub(1, 3) == "RNC" then data = assert(rnc.decompress(data)) end else -- Could not find the file return nil, _S.errors.map_file_missing:format(path) end return data end function App:loadLuaFolder(dir, no_results, append_to) if dir:sub(-1) ~= pathsep then dir = dir .. pathsep end local path = self:getFullPath({"Lua", dir}, true) local results = no_results and "" or (append_to or {}) for file in lfs.dir(path) do if file:match("%.lua$") then local status, result = pcall(corsixth.require, dir .. file:sub(1, -5)) if not status then print("Error loading " .. dir .. file .. ":\n" .. tostring(result)) else if result == nil then if not no_results then print("Warning: " .. dir .. file .. " returned no value") end else if no_results then print("Warning: " .. dir .. file .. " returned a value:", result) else if type(result) == "table" and result.id then results[result.id] = result elseif type(result) == "function" then results[file:match("(.*)%.")] = result end results[#results + 1] = result end end end end end if no_results then return else return results end end --[[ CorsixTH versioning follows a convention similar to semantic versioning but it does not accurately follow its standard. As we are currently <1.0.0 the major integer is not at play. Instead: Minor - denotes an new milestone of the program that often encompassses multiple patches that could break savegames without in-situ afterLoads Revision - denotes a revised hotfix release of the program that patches a major bug before the next milestone. The bug is then patched for the next milestone. Moving forward, revisions should have a savegame_version bump of 1, as 10 savegame versions are reserved each release for patching. All beta versions must have a savegame increment each time Each patch note must begin with a '-' --]] local release_table = { -- Format: major, minor, revision, patch (string), savegame_version {major = 0, minor = 0, revision = 8, patch = "", version = 0}, -- Beta 8 or below {major = 0, minor = 1, revision = 0, patch = "", version = 51}, {major = 0, minor = 10, revision = 0, patch = "", version = 53}, {major = 0, minor = 11, revision = 0, patch = "", version = 54}, {major = 0, minor = 20, revision = 0, patch = "", version = 66}, {major = 0, minor = 21, revision = 0, patch = "", version = 72}, {major = 0, minor = 30, revision = 0, patch = "", version = 78}, {major = 0, minor = 40, revision = 0, patch = "", version = 91}, {major = 0, minor = 50, revision = 0, patch = "", version = 105}, {major = 0, minor = 60, revision = 0, patch = "", version = 111}, {major = 0, minor = 61, revision = 0, patch = "", version = 122}, {major = 0, minor = 62, revision = 0, patch = "", version = 127}, {major = 0, minor = 63, revision = 0, patch = "", version = 134}, {major = 0, minor = 64, revision = 0, patch = "", version = 138}, {major = 0, minor = 65, revision = 0, patch = "", version = 156}, -- There was also 0.65.1, not differentiated by version number {major = 0, minor = 66, revision = 0, patch = "", version = 170}, {major = 0, minor = 67, revision = 0, patch = "", version = 180}, {major = 0, minor = 68, revision = 0, patch = "", version = 194}, {major = 0, minor = 69, revision = 0, patch = "-beta1", version = 216}, {major = 0, minor = 69, revision = 0, patch = "-beta2", version = 218}, {major = 0, minor = 69, revision = 0, patch = "-rc1", version = 219}, {major = 0, minor = 69, revision = 0, patch = "", version = 220}, {major = 0, minor = 69, revision = 1, patch = "", version = 221}, {major = 0, minor = 69, revision = 2, patch = "", version = 222}, {major = 0, minor = 70, revision = 0, patch = "-beta1", version = 247}, {major = 0, minor = 70, revision = 0, patch = "-beta2", version = 248}, {major = 0, minor = 70, revision = 0, patch = "-rc1", version = 251}, {major = 0, minor = 70, revision = 0, patch = "-rc2", version = 252}, {major = 0, minor = 70, revision = 0, patch = "", version = 253}, } --! Retrieve the current savegame version as defined in the application. function App:getCurrentVersion() return self.savegame_version end --! Requests data regarding a given savegame version --!param savegame_version (number) What to lookup, uses application version if blank --!return the matching release table entry -- If no releases match it returns the base release with the savegame version -- inserted function App:getReleaseData(savegame_version) savegame_version = savegame_version or self:getCurrentVersion() local release_data for i = #release_table, 1, -1 do local release = release_table[i] if release.version == savegame_version then release_data = release break elseif (release.version - savegame_version) < 0 then -- we're not on a release version local develop = shallow_clone(release) -- prevent recursion develop.version = savegame_version develop.patch = release.patch .. "-dev" .. savegame_version release_data = develop break end end return release_data end --! Provides the release (or development) string for a given savegame version --!param savegame_version (number) The version to look up --!return A string in the format "v..[patch]" --! For development builds, the savegame version is appended as a patch e.g. 'dev213' function App:getReleaseString(savegame_version) local release = self:getReleaseData(savegame_version) local release_string = "v" .. release.major .. "." .. release.minor .. "." .. release.revision release_string = release_string .. release.patch return release_string end --! Reports a difference between two versions based on requested methodology. --!param version_a (number or table) The first (usually newer) version to test --!param version_b (number or table) The second (usually older) version to test --!param method (string) What method to compare by --- method(release) reports the difference between the matching releases in steps, --- revisions are not counted. --- For development builds it will use the base release it started from when using --- the release method --- method(version) reports the difference between two savegame versions --!return The step difference between release a and release b for release method --- or The raw savegame version difference for version method function App:compareVersions(version_a, version_b, method) assert(type(version_a) == "table" or type(version_a) == "number", "version_a requires savegame version or an entry from the version table to compare") assert(type(version_b) == "table" or type(version_b) == "number", "version_b requires savegame version or an entry from the version table to compare") assert(method == "release" or method == "version", "Not using a valid compare method") if method == "release" then local function countBackward(version_to_check) local step = 0 for i = #release_table, 1, -1 do local release = release_table[i] if release.version == version_to_check then break elseif (release.version - version_to_check) < 0 then -- we're not on a release version if step == 0 then step = 1 break end -- working from current development break end if release.revision == 0 and release.patch == "" then step = step - 1 end end return step end if type(version_a) == "number" then version_a = self:getReleaseData(version_a) end if type(version_b) == "number" then version_b = self:getReleaseData(version_b) end return countBackward(version_a.version) - countBackward(version_b.version) end if method == "version" then local a = version_a.version or version_a local b = version_b.version or version_b return a - b end end function App:save(filename) return SaveGameFile(filename) end -- Omit the usual file extension so this file cannot be seen from the normal load and save screen and cannot be overwritten function App:quickSave() local filename = "quicksave.qs" return SaveGameFile(self.savegame_dir .. filename) end function App:load(filepath) tracy.Message("Loading game from " .. filepath) if self.world then self:worldExited() end return LoadGameFile(filepath) end function App:quickLoad() local filename = "quicksave.qs" if lfs.attributes(self.savegame_dir .. filename) then self:load(self.savegame_dir .. filename) else self:quickSave() self.ui:addWindow(UIInformation(self.ui, { _S.errors.load_quick_save })) end end --! Function to check the loaded game is compatible with the program --!param save_version (num) --!param gfx_set (string) What graphics set is used --!return true if compatible, otherwise false function App:checkCompatibility(save_version, gfx_set) local app_version = self.savegame_version local err -- First check the graphics set matches with the game files if (gfx_set == "demo" and not self.using_demo_files) then err = _S.errors.compatibility_error.demo_in_full elseif (gfx_set == "full" and self.using_demo_files) then err = _S.errors.compatibility_error.full_in_demo -- if that's all good, check the save and app version elseif app_version >= save_version or self.config.debug then return true else -- savegame newer than application err = _S.errors.compatibility_error.new_in_old end UILoadGame:loadError(err) return false end --! Check that a file at a full path exists, or find it, or expand filename to full paths --!param test_file (string) A full path or a filename of a level or map file --!return (string) A full path that exists function App:_checkOrFind(test_file, campaign_dir) -- Check if test_file is a full path (file in a subfolder) local folder_name, filename = test_file:match(".+[\\/](.+)[\\/](.+)") local partial_folder, partial_file = test_file:match("(.+)[\\/](.+)") if folder_name and folder_name:len() > 0 then -- Full path to the file is known, check file is present local file_handler, _ = io.open(test_file) if file_handler then file_handler:close() return test_file end -- File not found, prepare to search with the found filename test_file = filename -- Add path separator of current computer folder_name = folder_name .. pathsep elseif partial_folder and partial_file then -- A partial path is known folder_name, test_file = partial_folder, partial_file else folder_name = "" end -- Filename, and possibly folder name, are known, search for file local level = self.map and self.map.level_number:match("(.+[\\/])") or "" local campaign_folder = (self.world and self.world.campaign_info and self.world.campaign_info.folder) or "" local search_paths = { -- The folder of the campaign or level file, if known campaign_dir or campaign_folder, level, self.user_campaign_dir .. folder_name, self.user_campaign_dir, self.user_level_dir, self.campaign_dir .. folder_name, self.campaign_dir, self.level_dir, } return self:findFileInDirs(search_paths, test_file) end --! Restarts the current level (offers confirmation window first) --!param message (string) Optional message to the player function App:restart(message) assert(self.map, "Trying to restart while no map is loaded.") self.ui:addWindow(UIConfirmDialog(self.ui, true, message or _S.confirmation.restart_level, --[[persistable:app_confirm_restart]] function() self:worldExited() local campaign_info = self.world.campaign_info local level = self.map.level_filename or self.map.level_number local difficulty = self.map.difficulty local name, file, intro = self.map.level_name, self.map.map_file, self.map.level_intro if tonumber(level) then -- TH campaign self:loadLevel(level, difficulty, name, file, intro, nil, _S.errors.load_level_prefix, campaign_info) return end level = self:_checkOrFind(level) if not file:match("^LEVEL%.L%d") then -- Map file might be a TH map filename file = self:_checkOrFind(file) end if level and file then self:loadLevel(level, difficulty, name, file, intro, nil, _S.errors.load_level_prefix, campaign_info) else self.ui:addWindow(UIInformation(self.ui, { _S.errors.cannot_restart_missing_files :format(self.map.level_number, self.map.map_file) })) end end)) end --! Begin the map editor function App:mapEdit() self:loadLevel("", nil, nil, nil, nil, true, _S.errors.load_map_prefix, nil) end --! Exits the game completely (no confirmation window) function App:exit() -- Save config before exiting self:saveConfig() self:saveHotkeys() SDL.quit() end --! Exits the game completely without saving the config i.e. Alt+F4 for Quit Application function App:abandon() SDL.quit() end function App:reset() debug.getregistry()._RESTART = true SDL.quit() end --! This function is automatically called after loading a game and serves for compatibility. function App:afterLoad() self.ui:addOrRemoveDebugModeKeyHandlers() local old = self.world.savegame_version or 0 local new = self.savegame_version if old == 0 then -- Game log was not present before introduction of savegame versions, so create it now. self.world.game_log = {} self.world:gameLog("Created Gamelog on load of old (pre-versioning) savegame.") end if not self.world.original_savegame_version then self.world.original_savegame_version = old end local first = self.world.original_savegame_version -- Generate the human-readable version number (old [loaded save], new [program], first [original]) local first_version = first .. " (" .. self:getReleaseString(first) .. ")" local old_version = old .. " (" .. self:getReleaseString(old) .. ")" local new_version = new .. " (" .. self:getReleaseString(new) .. ")" if new == old then local msg_same = "Savegame version is %s, originally it was %s." self.world:gameLog(msg_same:format(new_version, first_version)) self.world:playLoadedEntitySounds() elseif new > old then local msg_older = "Savegame changed from %s to %s. The save was created using %s." self.world:gameLog(msg_older:format(old_version, new_version, first_version)) else -- Save is newer than the game and can only proceed in debug mode local get_old_release_version = self.world.release_version or "Trunk" -- For compatibility old_version = old .. " (" .. get_old_release_version .. ")" local msg_newer = "Warning: loaded savegame version %s in older version %s." self.world:gameLog(msg_newer:format(old_version, new_version)) self.ui:addWindow(UIInformation(self.ui, { _S.warnings.newersave })) end self.world.release_version = self:getReleaseString(new) self.world.savegame_version = new if old < 87 then local new_object = corsixth.require("objects.gates_to_hell") Object.processTypeDefinition(new_object) self.objects[new_object.id] = new_object self.world:newObjectType(new_object) end if old < 114 then local rathole_type = corsixth.require("objects.rathole") Object.processTypeDefinition(rathole_type) self.objects[rathole_type.id] = rathole_type self.world:newObjectType(rathole_type) end --[[Information only: if old < 166 then Graphics set type was introduced at this version. Nothing to do here as it is handled by persistance. However, it introduces compatibility limitations between the demo and full game and should be noted. end ]] -- self.map:afterLoad(old, new) self.ui:afterLoad(old, new) self.world:afterLoad(old, new) end --! Runs a comparison between the current (installed) version and the reported --! update table hosted by Github. If the update table is newer, it will generate --! an update window. --! As pre-releases are not announced on the update table, the checker also assumes --! that any current version with a patch in its name (Beta, RC, etc) will be older --! than the update table's version if their major, minor, and revision components match. function App:checkForUpdates() -- Only check for updates once per application launch if not self.check_for_updates or not self.config.check_for_updates then return end self.check_for_updates = false -- Default language to use for the changelog if no localised version is available local default_language = "en" local current_version = self:getReleaseString() -- Only check for updates against released versions if string.find(current_version, "dev") then print("Will not check for updates since this is a development version.") return end print("Checking for CorsixTH updates...") local update_body, err = TH.FetchLatestVersionInfo() if not update_body then print("Couldn't check for updates: " .. err) return end local update_table = loadstring_envcall(update_body, "@updatechecker") {} update_table.revision = update_table.revision or 0 local changelog = update_table["changelog_" .. default_language] local new_version = update_table.major .. '.' .. update_table.minor .. '.' .. update_table.revision -- Semantic version comparison of the current and update version numbers -- A return value of true means the current version is newer local function compare_versions() local current_major, current_minor, current_revision, current_patch = string.match(current_version, "(%d+)%.(%d+)%.?(%d*) ?(.*)") current_major, current_minor = tonumber(current_major), tonumber(current_minor) if current_major > update_table.major then return true elseif current_major < update_table.major then return false end if current_minor > update_table.minor then return true elseif current_minor < update_table.minor then return false end current_revision = tonumber(current_revision) or 0 current_patch = string.len(current_patch) > 0 and current_patch if current_patch then return current_revision > update_table.revision end return current_revision >= update_table.revision end if compare_versions() then print("You are running the latest version of CorsixTH.") return end -- Check to make sure download URL is trusted local download_url = update_table.download_url local trusted_url = false local trusted_prefixes = { 'https://corsixth.com/', 'https://github.com/', 'https://corsixth.github.io/' } for _, v in ipairs(trusted_prefixes) do if download_url:sub(1, #v) == v then trusted_url = true break end end if not trusted_url then print("Update download url is not on the trusted domains list (" .. download_url .. ")") return end -- Check to see if there's a changelog in the user's language local current_langs = self.strings:getLanguageNames(self.config.language) for _, v in ipairs(current_langs) do if (update_table["changelog_" .. v]) then changelog = update_table["changelog_" .. v] break end end print("New version found: " .. new_version) -- Display the update window self.ui:addWindow(UIUpdate(self.ui, current_version, new_version, changelog, download_url)) end -- Free up / stop any resources relying on the current video object function App:prepareVideoUpdate() self.video:endFrame() self.moviePlayer:deallocatePictureBuffer() end -- Update / start any resources relying on a video object function App:finishVideoUpdate() self.gfx:updateTarget(self.video) self.moviePlayer:updateRenderer() self.moviePlayer:allocatePictureBuffer() self.video:startFrame() end function App:isUpdateCheckDisabledByConfig() return TH.GetCompileOptions().update_check and not self.config.check_for_updates end function App:isUpdateCheckAvailable() return TH.GetCompileOptions().update_check end --! Generate information about user's system and the program --!return System and program info as a string function App:gamelogHeader() local compile_opts = TH.GetCompileOptions() local comp_details = {} for key, value in pairs(compile_opts) do table.insert(comp_details, key .. ": " .. tostring(value)) end table.sort(comp_details) local compiled = string.format("Compiled with %s\nSDL renderer: %s\n", table.concat(comp_details, ", "), self.video:getRendererDetails()) local running = string.format("%s run with api version: %s, game version: %s, savegame version: %s\n", compile_opts.jit or _VERSION, tostring(corsixth.require("api_version")), self:getReleaseString(), tostring(SAVEGAME_VERSION)) return (compiled .. running) end -- Do not remove, for savegame compatibility < r1891 local app_confirm_quit_stub = --[[persistable:app_confirm_quit]] function() end CorsixTH-0.70.0/CorsixTH/Lua/audio.lua000066400000000000000000000667041522247547500173630ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local pathsep = package.config:sub(1, 1) local rnc = require("rnc") local lfs = require("lfs") local SDL = require("sdl") local TH = require("TH") local ipairs = ipairs --! Layer which handles the Lua-facing side of loading and playing audio. class "Audio" ---@type Audio local Audio = _G["Audio"] function Audio:Audio(app) self.app = app self.has_bg_music = false self.not_loaded = not app.config.audio self.unused_played_callback_id = 0 self.played_sound_callbacks = {} self.entities_waiting_for_sound_to_be_enabled = {} self.midi_player = nil self.allowed_waveform_formats = { "OGG", "OPUS", "FLAC", "WV", "WAV", "WAVE", "MPG", "MPEG", "MP3", "MAD", "AIFF", "AIFC", "AIF" } self.allowed_instructional_formats = { "MID", "MIDI", "KAR", "669", "AMF", "AMS", "DBM", "DSM", "FAR", "GDM", "IT", "MED", "MDL", "MOD", "MOL", "MTM", "NST", "OKT", "PTM", "S3M", "STM", "ULT", "UMX", "WOW", "XM", "XMI" } end function Audio:clearCallbacks() self.unused_played_callback_id = 0 self.played_sound_callbacks = {} self.entities_waiting_for_sound_to_be_enabled = {} end local function GetFileData(path) local f, e = io.open(path, "rb") if not f then return f, e end e = f:read"*a" f:close() return e end function Audio:init() self.background_playlist = { -- {title = "", filename = "", enabled = true, music = nil}, } if self.not_loaded then return end local music = self.app.config.audio_music or self.app.config.audio_mp3 local music_dir if music then music_dir = music if music_dir:sub(-1) ~= pathsep then music_dir = music_dir .. pathsep end end local music_array = {} local function musicFileTable(filename) filename = filename:upper() local t = music_array[filename] if t == nil then t = {} music_array[filename] = t end return t end --[[ Find the music files on disk. ----------------------------- - Will search through all the files in music_dir. - Adds most files supported by SDL2_mixer (regardless of local library's ability) - Prefers waveform audio (eg mp3) over instructional (eg midi) - Uses titles from MIDI.TXT if found, else the filename. --]] local midi_txt -- File name of midi.txt file, if any. local waveform = list_to_set(self.allowed_waveform_formats) local instructional = list_to_set(self.allowed_instructional_formats) local _f, _s, _v if music_dir then _f, _s, _v = lfs.dir(music_dir) else _f, _s, _v = pairs(self.app.fs:listFiles("Sound", "Midi") or {}) end for file in _f, _s, _v do local info local filename, ext = file:match("^(.+)%.([^.]+)$") ext = ext and ext:upper() if waveform[ext] or instructional[ext] then info = musicFileTable(filename) -- This title might be replaced later by the midi_txt. info.title = filename -- XMI files are supported with our own conversion info.is_xmi = ext == "XMI" end if instructional[ext] and not music_dir then info.filename = table.concat({"Sound", "Midi", file}, pathsep) -- User supplied music file found elseif waveform[ext] then info.filename_music = music_dir .. file -- Waveform can overwrite instructional, but not vice versa elseif instructional[ext] and not info.filename_music then info.filename_music = music_dir .. file elseif ext == "TXT" and (file:sub(1, 4):upper() == "MIDI" or file:sub(1, 5):upper() == "NAMES") then -- If it Looks like the midi.txt or equiv, then remember it for later. midi_txt = file end end -- Enable music files and add them to the playlist. for _, info in pairs(music_array) do info.enabled = true self.background_playlist[#self.background_playlist + 1] = info end -- This is later. If we found a midi.txt, go through it and add the titles to the files we know if midi_txt then local data if music_dir then data = assert(GetFileData(music_dir .. midi_txt)) else data = assert(self.app.fs:readContents("Sound", "Midi", midi_txt)) end local i = 1 for file, title in data:gmatch("([^\r\n\26]+).-([^\r\n\26]+)") do local info = musicFileTable(file:match("^(.*)%.") or file) if next(info) ~= nil then info.title = title info.index = i i = i + 1 else print('Notice: Background track "'.. file ..'" named in list file, '.. 'but it does not exist.') end end -- Sort by midi.txt order if there is one, or by filename. table.sort(self.background_playlist, function(a,b) return a.index < b.index end) else table.sort(self.background_playlist, function(a,b) return a.title < b.title end) end if #self.background_playlist == 0 and self.app.good_install_folder then print("Notice: Audio system loaded, but found no background tracks") self.has_bg_music = false else self.has_bg_music = true end self:initMidiPlayer() local status, err = SDL.audio.init( self.app.config.audio_frequency, self.app.config.audio_channels, self.app.config.audio_buffer_size, self.app:findSoundFont()) if not status then print("Notice: Audio system could not initialise (SDL error: " .. tostring(err) .. ")") self.not_loaded = true self.has_bg_music = false self.background_playlist = {} return end end function Audio:initMidiPlayer() if self.midi_player then self.midi_player:close() self.midi_player = nil end if TH.GetCompileOptions().midi_device and self.app.config.midi_api then self.midi_player = TH.midiPlayer( self.app.config.midi_api, self.app.config.midi_port, self.app.config.midi_sysex_master_volume) end end function Audio:getMidiApiList() return TH.midiPlayer.getAvailableApis() end function Audio:getMidiPortList() if self.midi_player then return self.midi_player:portList() else return {} end end function Audio:initSpeech(speech_file) if self.not_loaded then return end local function load_sound_file(file) return self.app.fs:readContents("Sound", "Data", file) end speech_file = speech_file or "Sound-0.dat" if self.speech_file_name == speech_file then return end local archive_data, err = load_sound_file(speech_file) -- If sound file not found and language chosen is not English, -- maybe we can have more chance loading English sounds if not archive_data and speech_file ~= "Sound-0.dat" and self.app.good_install_folder then if self.speech_file_name == "Sound-0.dat" then return end print("Notice: Attempt to load English sounds as no SOUND/DATA/" .. speech_file .. " file found") speech_file = "Sound-0.dat" archive_data = load_sound_file(speech_file) end self.sound_archive = nil self.sound_fx = nil self.speech_file_name = nil if not archive_data then if self.app.good_install_folder then print("Notice: No sound effects as no SOUND/DATA/".. speech_file .. " file could be found / opened.") print("The reported error was: ".. err) end else if archive_data:sub(1, 3) == "RNC" then archive_data = assert(rnc.decompress(archive_data)) end self.sound_archive = TH.soundArchive() if not self.sound_archive:load(archive_data) then print("Notice: No sound effects as SOUND/DATA/" .. speech_file .. " could not be loaded") if #self.background_playlist == 0 then self.not_loaded = true end else self.speech_file_name = speech_file self.sound_fx = TH.soundEffects() self.sound_fx:setSoundArchive(self.sound_archive) self:setSoundStage() --self:dumpSoundArchive[[E:\CPP\2K8\CorsixTH\DataRaw\Sound\]] end end end --! Set the visual area for sound effects playback function Audio:setSoundStage() if self.sound_fx then local w, h = self.app.config.width / 2, self.app.config.height / 2 self.sound_fx:setCamera(math.floor(w), math.floor(h), math.floor((w^2 + h^2)^0.5)) end end function Audio:dumpSoundArchive(out_dir) local info,warning = io.open(out_dir .. "info.csv", "w") if info == nil then print("Error: Audio dump failed because info.csv couldn't be created and/or opened in the dump directory:" .. out_dir) print(warning) return end for i = 1, #self.sound_archive - 1 do local filename = self.sound_archive:getFilename(i) info:write(i, ",", filename, ",", self.sound_archive:getDuration(i), ",\n") local file = io.open(out_dir .. i .. "_" .. filename, "wb") file:write(self.sound_archive:getFileData(i)) file:close() print("".. i .. "/" .. #self.sound_archive - 1) end info:close() print("Sounds dumped to: " .. out_dir) end local wilcard_cache = permanent "audio_wildcard_cache" {} --! Play a sound from the sound archive --!param name (string) The name of the sound to be played. Can include -- wildcards (*). --!param where (Entity) The entity that is the source of the sound, or nil if -- the audio is not positional. --!param is_announcement (boolean) Whether the sound is an announcement -- (affects volume). --!param played_callback (function) A function to be called when the sound has -- finished playing. Can be nil. --!param played_callback_delay (integer) An optional delay in milliseconds -- before the played_callback is called. --!param loops (integer) number of times to play the audio. -1 for infinite. --!return (table) A `sound` table for passing into functions that act on the -- playing sound. The fields are an implementation detail that should not be -- used outside of the Audio class. function Audio:playSound(name, where, is_announcement, played_callback, played_callback_delay, loops) local sound_fx = self.sound_fx if sound_fx then name = self:resolveFilenameWildcard(name) local volume = is_announcement and self.app.config.announcement_volume or self.app.config.sound_volume local x, y local played_callback_id = nil if played_callback then played_callback_id = self.unused_played_callback_id self.unused_played_callback_id = self.unused_played_callback_id + 1 self.played_sound_callbacks[tostring(played_callback_id)] = played_callback end if where then x, y = Map:WorldToScreen(where.tile_x, where.tile_y) local dx, dy = where.th:getPosition() local ui = self.app.ui x = x + dx - ui.screen_offset_x y = y + dy - ui.screen_offset_y end local handle, warning = sound_fx:play(name, volume, x, y, played_callback_id, played_callback_delay, loops) if warning then -- Indicates something happened self.app.world:gameLog("Audio:playSound - Warning: " .. warning) end return { handle = handle, played_callback_id = played_callback_id } end end --! Pause or unpause a playing sound --!param sound (table) The `sound` table returned by `Audio:playSound`. function Audio:togglePauseSound(sound) local sound_fx = self.sound_fx if not sound_fx then return end if sound and sound.handle then sound_fx:togglePause(sound.handle, sound.played_callback_id) end end --! Stop a playing sound. -- A stopped sound is destroyed and cannot be resumed. The callback will be not -- be called for the stopped sound. --!param sound (table) The `sound` table returned by `Audio:playSound`. function Audio:stopSound(sound) local sound_fx = self.sound_fx if not sound_fx then return end if sound and sound.handle then sound_fx:stop(sound.handle, sound.played_callback_id) end end --! Determine if a given sound is still playing --!param sound (table) The `sound` table returned by `Audio:playSound`. function Audio:isPlaying(sound) local sound_fx = self.sound_fx if not sound_fx then return end if sound and sound.handle then return sound_fx:isPlaying(sound.handle) end return false end function Audio:cacheSoundFilenamesAssociatedWithName(name) local list = wilcard_cache[name] if not list then local filename list = {} wilcard_cache[name] = list local pattern = ("^" .. name:gsub("%*",".*") .. "$"):upper() for i = 1, #self.sound_archive - 1 do filename = self.sound_archive:getFilename(i):upper() if filename:find(pattern) then list[#list + 1] = filename end end end return list end --! Resolves sound filename containing wildcard character from its associated variants --!param name (string) Filename containing wildcard character to resolve function Audio:resolveFilenameWildcard(name) if name:find("*") then local list = self:cacheSoundFilenamesAssociatedWithName(name) name = list[1] and list[math.random(1, #list)] or name end return name end --[[ This function's integer array parameters for the min and max silence lengths should provide lengths for this game's different speeds, indexed as follows: [1] Slowest [2] Slow [3] Normal [4] Fast [5] Maximum !param min_silence_lengths (integer array) The desired minimum silence lengths for this game's different speeds. !param max_silence_lengths (integer array) The desired maximum silence lengths for this game's different speeds. !param num_silences (integer) How many silence lengths should be in the returned table of generated lengths. !return (table) A table of randomly ordered integers for the generated silence lengths. --]] local function getSilenceLengths(min_silence_lengths, max_silence_lengths, num_silences) local min_silence = min_silence_lengths[TheApp.world.tick_rate] local max_silence = max_silence_lengths[TheApp.world.tick_rate] local silences = {} if min_silence == max_silence then silences[1] = min_silence else for i = 1, num_silences do silences[i] = math.random(min_silence, max_silence) end end return silences end --[[ Plays related sounds at an entity in a random sequence, with random length silences between the sounds. This function's integer array parameters for the min and max silence lengths should provide lengths for this game's different speeds, indexed as follows: [1] Slowest [2] Slow [3] Normal [4] Fast [5] Maximum Speed !param names (string) A name pattern for the sequence of related sounds to be played for example: LAVA00*.wav !param entity : Where the sounds will be played at, the player won't hear the sounds being played at the entity when it isn't in their view. !param min_silence_lengths (integer array) The desired minimum silence lengths for this game's different speeds. !param max_silence_lengths (integer array) The desired maximum silence lengths for this game's different speeds. !param num_silences (integer) How many different silence lengths should be used, this can be a nil parameter. --]] function Audio:playEntitySounds(names, entity, min_silence_lengths, max_silence_lengths, num_silences) if self.sound_fx then self:cacheSoundFilenamesAssociatedWithName(names) local silences = getSilenceLengths(min_silence_lengths, max_silence_lengths, num_silences) self:entitySoundsHandler(wilcard_cache[names], entity, silences, 1) end end local function canSoundsBePlayed() return TheApp.config.play_sounds and TheApp.world and not TheApp.world:isPaused() end --[[ Called by the above function. This function's integer array parameters for the min and max silence lengths should provide lengths for this game's different speeds, indexed as follows: [1] Slowest [2] Slow [3] Normal [4] Fast [5] Maximum Speed !param sounds (string) A name pattern for the sequence of related sounds to be played for example: LAVA00*.wav !param entity : Where the sounds will be played at, the player won't hear the sounds being played at the entity when it isn't in their view. !param silences (integer array) the different pause durations to be used between the played sounds. !param silences_pointer (integer) the index for the pause duration which should be used after this call's sound has been played. --]] function Audio:entitySoundsHandler(sounds, entity, silences, silences_pointer) if entity.playing_sounds_in_random_sequence then local sound_played_callback = function() self:entitySoundsHandler(sounds, entity, silences, silences_pointer) end if canSoundsBePlayed() then local x, y = Map:WorldToScreen(entity.tile_x, entity.tile_y) local dx, dy = entity.th:getPosition() x = x + dx - self.app.ui.screen_offset_x y = y + dy - self.app.ui.screen_offset_y self.played_sound_callbacks[tostring(self.unused_played_callback_id)] = sound_played_callback self.sound_fx:play(sounds[math.random(1,#sounds)], self.app.config.sound_volume, x, y, self.unused_played_callback_id, silences_pointer) self.unused_played_callback_id = self.unused_played_callback_id + 1 if #silences > 1 then silences_pointer = (silences_pointer % #silences) + 1 end --If the sound can't be played now: else self.entities_waiting_for_sound_to_be_enabled[entity] = sound_played_callback entity:setWaitingForSoundEffectsToBeTurnedOn(true) end else if self.entities_waiting_for_sound_to_be_enabled[entity] then self.entities_waiting_for_sound_to_be_enabled[entity] = nil end end end function Audio:onEndPause() if TheApp.config.play_sounds then self:tellInterestedEntitiesTheyCanNowPlaySounds() end end function Audio:onSoundPlayed(played_callbacks_id) if TheApp.world ~= nil then if self.played_sound_callbacks[tostring(played_callbacks_id)] then self.played_sound_callbacks[tostring(played_callbacks_id)]() self.played_sound_callbacks[tostring(played_callbacks_id)] = nil end end end --! Returns whether the given sound (either a string or a number) --! exists in the sound archive --!param sound The sound to look for, either a string (name) or a -- number (position in the list of sounds) function Audio:soundExists(sound) if self.sound_archive then return self.sound_archive:soundExists(sound) else return false end end function Audio:playRandomBackgroundTrack() if self.not_loaded or #self.background_playlist == 0 then return end local enabled = {} for i, info in ipairs(self.background_playlist) do if info.enabled then enabled[#enabled + 1] = i end end if not enabled[1] then return end local index = enabled[math.random(1, #enabled)] self:playBackgroundTrack(index) end function Audio:findIndexOfCurrentTrack() for i, info in ipairs(self.background_playlist) do if info.music == self.background_music then return i end end return 1 end function Audio:playNextOrPreviousBackgroundTrack(direction) if self.not_loaded or #self.background_playlist == 0 then return end if not self.background_music then self:playRandomBackgroundTrack() return end local index = self:findIndexOfCurrentTrack() -- Find next/previous enabled track for i = 1, #self.background_playlist do local next_index = ((index + direction * i - 1) % #self.background_playlist) + 1 if self.background_playlist[next_index].enabled then self:playBackgroundTrack(next_index) return end end end function Audio:playNextBackgroundTrack() self:playNextOrPreviousBackgroundTrack(1) end function Audio:playPreviousBackgroundTrack() self:playNextOrPreviousBackgroundTrack(-1) end function Audio:isPlayingWithMidiPlayer() return self.midi_player and type(self.background_music) == 'number' end --! Pauses or unpauses background music depending on the current state. --! Returns whether music is currently paused or not after the call. --! If nil is returned music might either be playing or completely stopped. function Audio:pauseBackgroundTrack() assert(self.background_music, "Trying to pause music while music is stopped") local use_midi_player = self:isPlayingWithMidiPlayer() local status if self.background_paused then self.background_paused = nil if use_midi_player then self.midi_player:resume() status = true else status = SDL.audio.resumeMusic() end else self.background_paused = true if use_midi_player then self.midi_player:pause() status = true else status = SDL.audio.pauseMusic() end end -- NB: Explicit false check, as old C side returned nil in all cases if status == false then -- SDL doesn't seem to support pausing/resuming for this format/driver, -- so just stop the music instead. self:stopBackgroundTrack() self.background_paused = nil elseif not use_midi_player then -- SDL can also be odd and report music as paused even though it is still -- playing. If it really is paused, then there is no harm in muting it. -- If it wasn't really paused, then muting it is the next best thing that -- we can do (even though it'll continue playing). if self.background_paused then self.old_bg_music_volume = self.app.config.music_volume SDL.audio.setMusicVolume(0) else self.app.config.music_volume = self.old_bg_music_volume SDL.audio.setMusicVolume(self.old_bg_music_volume) self.old_bg_music_volume = nil end end self:notifyJukebox() return self.background_paused end --! Stops playing background music for the time being. --! Does not affect the configuration setting play_music. function Audio:stopBackgroundTrack() if self.background_paused then -- Resume first in order to clear the saved volume. self:pauseBackgroundTrack() end SDL.audio.stopMusic() if self.midi_player then self.midi_player:stop() end self.background_music = nil self:notifyJukebox() end function Audio:getFileData(index) local info = self.background_playlist[index] assert(info, "Index not valid") local data if info.filename_music then data = assert(GetFileData(info.filename_music)) else data = assert(self.app.fs:readContents(info.filename)) end if data:sub(1, 3) == "RNC" then data = assert(rnc.decompress(data)) end return data end --! Plays a given background track. --! Playback will only start if the configuration says it's ok. (play_music = true) --!param index Index of the track to play in the playlist. function Audio:playBackgroundTrack(index) local info = self.background_playlist[index] assert(info, "Index not valid") if self.app.config.play_music then local music = info.music if not music or type(music) == 'number' then local data = self:getFileData(index) if info.is_xmi then if self.midi_player then self.midi_player:setVolume(self.app.config.music_volume) self.midi_player:playXmi(data) -- info.music has to be equal to background_music and both values need -- to be truthy and unique for the jukebox to detect the track. Using -- the index is just a convenient way to achieve this. self.background_music = index info.music = index self:notifyJukebox() return end data = SDL.audio.transcodeXmiToMid(data) end -- Loading of music files can incur a slight pause, which is why it is -- done asynchronously. -- Someone might want to stop the player from -- starting to play once it's loaded though. self.load_music = true SDL.audio.loadMusicAsync(data, function(music_data, err) if music_data == nil then info.enabled = false local name, msg = (info.filename_music or info.filename) if not self.warned and TheApp.ui then -- Warn once per session TheApp.ui:addWindow(UIInformation(TheApp.ui, {_S.errors.music})) self.warned = true end if err == "No SoundFonts have been requested" then msg = "Required soundfont is not found, please download one. A suitable soundfont is linked from the CorsixTH wiki." elseif err == "XMP: Unrecognized file format" or err == "ModPlug_Load failed" then msg = "Music format not supported for file " .. name else msg = "Could not load music file " .. name .. ". Error: " .. err end if self.app.world then self.app.world:gameLog(msg) end if not self.app.world or not self.app.config.debug then print(msg) end else info.music = music_data -- Do we still want it to play? if self.load_music then return self:playBackgroundTrack(index) end end end) return end assert(SDL.audio.playMusic(music)) SDL.audio.setMusicVolume(self.app.config.music_volume) self.background_music = music self:notifyJukebox() end end function Audio:onMusicOver() if self.not_loaded or #self.background_playlist == 0 or self.background_music == nil then return end self:playNextBackgroundTrack() end function Audio:setBackgroundVolume(volume) if self.midi_player then self.app.config.music_volume = volume self.midi_player:setVolume(volume) end if self.background_paused then self.old_bg_music_volume = volume else self.app.config.music_volume = volume SDL.audio.setMusicVolume(volume) end end function Audio:setSoundVolume(volume) self.app.config.sound_volume = volume if self.sound_fx then -- Since some sounds are played automatically (using computers etc) -- we need to set a value on C level too. self.sound_fx:setSoundVolume(volume) end end function Audio:playSoundEffects(play_effects) self.app.config.play_sounds = play_effects if self.sound_fx then -- As above. self.sound_fx:setSoundEffectsOn(play_effects) end if canSoundsBePlayed() then self:tellInterestedEntitiesTheyCanNowPlaySounds() end end function Audio:tellInterestedEntitiesTheyCanNowPlaySounds() if not isTableEmpty(self.entities_waiting_for_sound_to_be_enabled) then for entity, callback in pairs(self.entities_waiting_for_sound_to_be_enabled) do callback() self.entities_waiting_for_sound_to_be_enabled[entity] = nil end end end function Audio:entityNoLongerWaitingForSoundsToBeTurnedOn(entity) self.entities_waiting_for_sound_to_be_enabled[entity] = nil end function Audio:setAnnouncementVolume(volume) self.app.config.announcement_volume = volume end -- search for jukebox and notify it to update its play button function Audio:notifyJukebox() local jukebox = TheApp.ui and TheApp.ui:getWindow(UIJukebox) if jukebox then jukebox:updatePlayButton() end end function Audio:reserveChannel() if self.sound_fx then return self.sound_fx:reserveChannel() else return -1 end end function Audio:releaseChannel(channel) if self.sound_fx and channel > -1 then self.sound_fx:releaseChannel(channel) end end function Audio:destroy() self.has_bg_music = false self.not_loaded = not TheApp.config.audio self.speech_file_name = nil self.sound_fx = nil SDL.audio.destroy() end CorsixTH-0.70.0/CorsixTH/Lua/base_config.lua000066400000000000000000000735601522247547500205170ustar00rootroot00000000000000--[[ Copyright (c) 2010 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- To keep in line with the original, tables start their indexing at 0. -- NOTE: This makes index iterations over tables omit the first element! local configuration = { ----------------------------------------------------------- -- New configuration values added in CorsixTH -- ----------------------------------------------------------- -- Interest rate and overdraft interest rate differential values will -- be divided by 10,000 town = { InterestRate = 100, StartCash = 40000, StartRep = 500, OverdraftDiff = 200, }, -- New value, but should only be defined if starting staff is included. --start_staff = { -- {Doctor = 0, Shrink = 0, Skill = 0}, --}, -- Maximum salary value, staff will no longer become unhappy at this stage payroll = { MaxSalary = 2000, }, ----------------------------------------------------------- -- Original configuration values -- ----------------------------------------------------------- staff = { [0] = {MinSalary = 60}, -- Nurse {MinSalary = 75}, -- Doctor {MinSalary = 25}, -- Handyman {MinSalary = 20}, -- Receptionist }, gbv = { SalaryAdd = { {}, {}, -30, -- Junior 30, -- Doctor 40, -- Surgeon 30, -- Psychiatrist 100, -- Consultant 20, -- Research }, -- Divides ability to find an extra salary addition. must be > 0 SalaryAbilityDivisor = 10, -- Divides research input to arrive at research points. must be > 0 ResearchPointsDivisor = 5, -- When a drug is researched what rating does it have StartRating = 100, -- When a drug is researched how much does it cost StartCost = 100, -- Minimum Drug Cost MinDrugCost = 50, -- If contagious how much - rand up to this figure. higher = more contagious. must be > 0 HowContagious = 25, -- 0-100 Higher equals more chance of spreading. ContagiousSpreadFactor = 25, -- Reduce cont illnesses until X months have passed ReduceContMonths = 14, -- Reduce cont illnesses until X peep have arrived ReduceContPeepCount = 20, -- Rate to reduce cont illneses to - 0 means do not produce contagious illnesses at all ReduceContRate = 0, -- Hold all visual illnesses until x months. 0 never hold HoldVisualMonths = 2, -- Hold all visual illnesses until x peeps have arrived. 0 never hold HoldVisualPeepCount = 6, -- Maximum strength value an object can be improved to (by research) MaxObjectStrength = 20, -- Increase object strength by this amount when researching ResearchIncrement = 2, -- x Start Score for level = ceiling for normal score increases (2 dp) ScoreMaxInc = 300, -- Cost per vaccination VacCost = 50, -- If epidemic coverup fails - how much per person you are fined max 20000 EpidemicFine = 2000, -- If an epidemic coverup succeeds how much compensation is received - lo value EpidemicCompLo = 1000, -- If an epidemic coverup succeeds how much compensation is received - hi value max 20000 EpidemicCompHi = 15000, -- How many patients still infected cause a reputation loss as well as a fine if less than EpidemicEvacMinimum then ignored EpidemicRepLossMinimum = 5, -- How many patients still infected and not-cured cause the hospital to be evacuated EpidemicEvacMinimum = 10, --How many epidemics can exists at the same time - both active and quietly in the background EpidemicConcurrentLimit = 1, -- % of research completed for an autopsy AutopsyRschPercent = 33, -- % rep hit for discovered autopsy AutopsyRepHitPercent = 25, -- Frequency of Mayor visits. Lower is more frequent. MayorLaunch = 150, -- Add to student doctor's ability when being taught MIN 1 MAX 255 TrainingRate = 40, -- MIN 1 MAX 100 (Percentage) DrugImproveRate = 5, -- How many months until population allocation is done for real AllocDelay = 3, AbilityThreshold = { [0] = {Value = 75}, -- SURGEON {Value = 60}, -- PSYCHIATRIST {Value = 45}, -- RESEARCHER }, TrainingValue = { [0] = {Value = 10}, -- Projector {Value = 15}, -- Skeleton {Value = 20}, -- Bookcase }, -- >This value gives doctor DoctorThreshold = 250, -- >This value gives consultant ConsultantThreshold = 750, -- % of original rsch cost required to improve RschImproveCostPercent = 10, -- %-point increase in improve cost per improvement RschImproveIncrementPercent = 10, -- Per mille point of attribute fatigue to be just tired (hospital policy "go to staffroom") Tired = 600, -- Per mille point of attribute fatigue to be very tired VeryTired = 700, -- Per mille point of attribute fatigue to be crack up (extremely) tired CrackUpTired = 800, -- How much soda costs at a drinks machine SodaPrice = 20, }, towns = { {StartCash = 40000, InterestRate = 100, StartRep = 500, OverdraftDiff = 200}, -- Level 1 {StartCash = 40000, InterestRate = 200, StartRep = 500, OverdraftDiff = 200}, -- Level 2 {StartCash = 50000, InterestRate = 300, StartRep = 500, OverdraftDiff = 200}, -- Level 3 {StartCash = 50000, InterestRate = 400, StartRep = 500, OverdraftDiff = 200}, -- Level 4 {StartCash = 50000, InterestRate = 500, StartRep = 500, OverdraftDiff = 200}, -- Level 5 {StartCash = 50000, InterestRate = 600, StartRep = 500, OverdraftDiff = 200}, -- Level 6 {StartCash = 50000, InterestRate = 700, StartRep = 500, OverdraftDiff = 200}, -- Level 7 {StartCash = 60000, InterestRate = 700, StartRep = 500, OverdraftDiff = 200}, -- Level 8 {StartCash = 60000, InterestRate = 800, StartRep = 500, OverdraftDiff = 200}, -- Level 9 {StartCash = 60000, InterestRate = 800, StartRep = 500, OverdraftDiff = 200}, -- Level 10 {StartCash = 70000, InterestRate = 900, StartRep = 500, OverdraftDiff = 200}, -- Level 11 {StartCash = 70000, InterestRate = 900, StartRep = 500, OverdraftDiff = 200}, -- Level 12 {StartCash = 70000, InterestRate = 900, StartRep = 500, OverdraftDiff = 200}, -- Level 12 }, popn = { [0] = {Month = 0, Change = 4}, -- Standard: 4 patients the first month. [1] = {Month = 1, Change = 1}, -- Then increase by one per month. [2] = {Month = 27, Change = 0}, -- Cap at 30, or population will go crazy. }, expertise = { {StartPrice = 100, Known = 1, RschReqd = 0}, -- GENERAL_PRACTICE {StartPrice = 850, Known = 0, RschReqd = 40000, MaxDiagDiff = 700}, -- BLOATY_HEAD {StartPrice = 1150, Known = 0, RschReqd = 40000, MaxDiagDiff = 250}, -- HAIRYITUS {StartPrice = 1600, Known = 0, RschReqd = 60000, MaxDiagDiff = 250}, -- ELVIS {StartPrice = 1400, Known = 0, RschReqd = 60000, MaxDiagDiff = 250}, -- INVIS {StartPrice = 1800, Known = 0, RschReqd = 60000, MaxDiagDiff = 250}, -- RADIATION {StartPrice = 900, Known = 0, RschReqd = 40000, MaxDiagDiff = 250}, -- SLACK_TONGUE {StartPrice = 2000, Known = 0, RschReqd = 60000, MaxDiagDiff = 350}, -- ALIEN {StartPrice = 450, Known = 0, RschReqd = 20000, MaxDiagDiff = 250}, -- BROKEN_BONES {StartPrice = 950, Known = 0, RschReqd = 40000, MaxDiagDiff = 250}, -- BALDNESS {StartPrice = 700, Known = 0, RschReqd = 40000, MaxDiagDiff = 700}, -- DISCRETE_ITCHING {StartPrice = 1000, Known = 0, RschReqd = 40000, MaxDiagDiff = 1000}, -- JELLYITUS {StartPrice = 750, Known = 0, RschReqd = 40000, MaxDiagDiff = 700}, -- SLEEPING_ILLNESS {StartPrice = 0, Known = 0, RschReqd = 5000, MaxDiagDiff = 400}, -- PREGNANT {StartPrice = 800, Known = 0, RschReqd = 40000, MaxDiagDiff = 350}, -- TRANSPARENCY {StartPrice = 300, Known = 0, RschReqd = 20000, MaxDiagDiff = 350}, -- UNCOMMON_COLD {StartPrice = 1300, Known = 0, RschReqd = 60000, MaxDiagDiff = 1000}, -- BROKEN_WIND {StartPrice = 1100, Known = 0, RschReqd = 20000, MaxDiagDiff = 350}, -- SPARE_RIBS {StartPrice = 1050, Known = 0, RschReqd = 20000, MaxDiagDiff = 700}, -- KIDNEY_BEANS {StartPrice = 1900, Known = 0, RschReqd = 20000, MaxDiagDiff = 700}, -- BROKEN_HEART {StartPrice = 1600, Known = 0, RschReqd = 20000, MaxDiagDiff = 700}, -- RUPTURED_NODULES {StartPrice = 800, Known = 0, RschReqd = 40000, MaxDiagDiff = 350}, -- MULTIPLE_TV_PERSONALITIES {StartPrice = 1500, Known = 0, RschReqd = 60000, MaxDiagDiff = 350}, -- INFECTIOUS_LAUGHTER {StartPrice = 800, Known = 0, RschReqd = 40000, MaxDiagDiff = 700}, -- CORRUGATED_ANKLES {StartPrice = 800, Known = 0, RschReqd = 40000, MaxDiagDiff = 700}, -- CHRONIC_NOSEHAIR {StartPrice = 550, Known = 0, RschReqd = 40000, MaxDiagDiff = 700}, -- 3RD_DEGREE_SIDEBURNS {StartPrice = 800, Known = 0, RschReqd = 40000, MaxDiagDiff = 350}, -- FAKE_BLOOD {StartPrice = 650, Known = 0, RschReqd = 40000, MaxDiagDiff = 700}, -- GASTRIC_EJECTIONS {StartPrice = 400, Known = 0, RschReqd = 20000, MaxDiagDiff = 1000}, -- THE_SQUITS {StartPrice = 1700, Known = 0, RschReqd = 20000, MaxDiagDiff = 700}, -- IRON_LUNGS {StartPrice = 600, Known = 0, RschReqd = 40000, MaxDiagDiff = 1000}, -- SWEATY_PALMS {StartPrice = 400, Known = 0, RschReqd = 20000, MaxDiagDiff = 700}, -- HEAPED_PILES {StartPrice = 350, Known = 0, RschReqd = 20000, MaxDiagDiff = 1000}, -- GUT_ROT {StartPrice = 1600, Known = 0, RschReqd = 20000, MaxDiagDiff = 700}, -- GOLF_STONES {StartPrice = 500, Known = 0, RschReqd = 20000, MaxDiagDiff = 700}, -- UNEXPECTED_SWELLING {StartPrice = 300, Known = 0, RschReqd = 40000}, -- I_D_SCANNER {StartPrice = 250, Known = 0, RschReqd = 50000}, -- I_D_BLOOD_MACHINE DIAGNOSIS {StartPrice = 150, Known = 0, RschReqd = 20000}, -- I_D_CARDIO DIAGNOSIS {StartPrice = 200, Known = 0, RschReqd = 30000}, -- I_D_XRAY DIAGNOSIS {StartPrice = 250, Known = 0, RschReqd = 60000}, -- I_D_ULTRASCAN DIAGNOSIS {StartPrice = 150, Known = 0, RschReqd = 20000}, -- I_D_STANDARD DIAGNOSIS {StartPrice = 100, Known = 0, RschReqd = 20000}, -- I_D_WARD DIAGNOSIS {StartPrice = 200, Known = 0, RschReqd = 20000}, -- I_D_SHRINK DIAGNOSIS {StartPrice = 500, Known = 0, RschReqd = 15000}, -- I_X_RESEARCH virtual treatment,auto autopsy {StartPrice = 500, Known = 0, RschReqd = 30000}, -- I_X_MIXER virtual treatment,atom analyser {StartPrice = 500, Known = 0, RschReqd = 30000}, -- I_X_COMPUTER virtual treatment,research computer }, objects = { {StartCost = 100, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 1 Desk {StartCost = 100, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 2 Cabinet {StartCost = 0, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 3 Door {StartCost = 40, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 4 Bench {StartCost = 60, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 5 Table {StartCost = 20, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 6 Chair {StartCost = 500, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 7 Drinks {StartCost = 200, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 8 Bed {StartCost = 2500, StartAvail = 0, WhenAvail = 0, StartStrength = 8, AvailableForLevel = 0}, -- 9 Inflator Machine {StartCost = 150, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 10 Snooker Table {StartCost = 150, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 11 New Receptionists Station {StartCost = 5, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 12 Build Room Trestle Table {StartCost = 1000, StartAvail = 0, WhenAvail = 0, StartStrength = 13, AvailableForLevel = 0}, -- 13 Cardiogram {StartCost = 5000, StartAvail = 0, WhenAvail = 0, StartStrength = 12, AvailableForLevel = 0}, -- 14 Scanner {StartCost = 3000, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 15 Scanner Console {StartCost = 30, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 16 Screen {StartCost = 5000, StartAvail = 0, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 0}, -- 17 Jukebox {StartCost = 100, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 18 Couch {StartCost = 150, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 19 Sofa {StartCost = 250, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 20 Crash Trolley {StartCost = 50, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 21 TV set {StartCost = 6000, StartAvail = 0, WhenAvail = 0, StartStrength = 9, AvailableForLevel = 0}, -- 22 Ultrascan {StartCost = 10000, StartAvail = 0, WhenAvail = 0, StartStrength = 7, AvailableForLevel = 0}, -- 23 DNA Restorer {StartCost = 2000, StartAvail = 0, WhenAvail = 0, StartStrength = 11, AvailableForLevel = 0}, -- 24 Cast Remover {StartCost = 1000, StartAvail = 0, WhenAvail = 0, StartStrength = 8, AvailableForLevel = 0}, -- 25 Hair restorer {StartCost = 1500, StartAvail = 0, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 0}, -- 26 Slicer for slack tongues {StartCost = 4000, StartAvail = 0, WhenAvail = 0, StartStrength = 12, AvailableForLevel = 0}, -- 27 X-Ray {StartCost = 2000, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 28 Radiation Shield {StartCost = 500, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 29 X-Ray Viewer {StartCost = 5000, StartAvail = 0, WhenAvail = 0, StartStrength = 12, AvailableForLevel = 0}, -- 30 Operating Table {StartCost = 2000, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 31 Lamp {StartCost = 30, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 32 Bathroom Sink {StartCost = 50, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 33 Op Sink 1 {StartCost = 50, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 34 Op Sink 2 {StartCost = 200, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 35 Surgeon Screen {StartCost = 50, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 36 Lecture Chair {StartCost = 100, StartAvail = 0, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 0}, -- 37 Projector {StartCost = 200, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 38 Bed Screen Open {StartCost = 1000, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 39 Pharmacy Cabinet {StartCost = 5000, StartAvail = 0, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 0}, -- 40 Research Computer {StartCost = 10000, StartAvail = 0, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 0}, -- 41 Chemical Mixer {StartCost = 3000, StartAvail = 0, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 0}, -- 42 Blood Machine {StartCost = 25, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 43 Fire Extinguisher {StartCost = 20, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 44 Radiator {StartCost = 5, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 45 Plant1 {StartCost = 3500, StartAvail = 0, WhenAvail = 0, StartStrength = 8, AvailableForLevel = 0}, -- 46 Electrolysis Machine {StartCost = 6500, StartAvail = 0, WhenAvail = 0, StartStrength = 7, AvailableForLevel = 0}, -- 47 Jellyitus Moulding Machine {StartCost = 0, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 48 Gates to Hell {StartCost = 200, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 49 Bed Screen Closed {StartCost = 5, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 50 Bin {StartCost = 300, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 51 Toilet {StartCost = 0, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 52 Double Door Part #1 {StartCost = 0, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 53 Double Door Part #2 {StartCost = 6500, StartAvail = 0, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 0}, -- 54 Decontamination Shower {StartCost = 4000, StartAvail = 0, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 0}, -- 55 Autopsy Research Machine {StartCost = 350, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 56 Bookcase {StartCost = 200, StartAvail = 0, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 0}, -- 57 Video Game {StartCost = 0, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 58 Entrance Left Door {StartCost = 0, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 59 Entrance Right Door {StartCost = 450, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 60 Skeleton {StartCost = 100, StartAvail = 1, WhenAvail = 0, StartStrength = 10, AvailableForLevel = 1}, -- 61 Comfy Chair }, -- Cost for the room itself without any objects. -- For some reason it starts at 7, -- but that must be retained in order to work with the original. rooms = { [7] = {Cost = 2280}, -- GP_OFFICE [8] = {Cost = 2270}, -- PSYCHO [9] = {Cost = 1700}, -- WARD [10] = {Cost = 2250}, -- OP_THEATRE [11] = {Cost = 500}, -- PHARMACY [12] = {Cost = 470}, -- CARDIO [13] = {Cost = 3970}, -- SCANNER [14] = {Cost = 2000}, -- ULTRASCAN [15] = {Cost = 3000}, -- BLOOD_MACHINE [16] = {Cost = 2000}, -- XRAY [17] = {Cost = 1500}, -- INFLATOR [18] = {Cost = 7000}, -- ALIEN [19] = {Cost = 500}, -- HAIR_RESTORER [20] = {Cost = 1500}, -- SLACK_TONGUE [21] = {Cost = 500}, -- FRACTURE [22] = {Cost = 1850}, -- TRAINING [23] = {Cost = 500}, -- ELECTRO [24] = {Cost = 4500}, -- JELLY_VAT [25] = {Cost = 1350}, -- STAFF ROOM [26] = {Cost = 5}, -- TV ?? [27] = {Cost = 720}, -- GENERAL_DIAG [28] = {Cost = 800}, -- RESEARCH [29] = {Cost = 1170}, -- TOILETS [30] = {Cost = 5500}, -- DECON_SHOWER }, visuals = { [0] = {Value = 0}, -- I_BLOATY_HEAD {Value = 0}, -- I_HAIRYITUS {Value = 0}, -- I_ELVIS {Value = 0}, -- I_INVIS {Value = 0}, -- I_RADIATION {Value = 0}, -- I_SLACK_TONGUE {Value = 0}, -- I_ALIEN {Value = 0}, -- I_BROKEN_BONES {Value = 0}, -- I_BALDNESS {Value = 0}, -- I_DISCRETE_ITCHING {Value = 0}, -- I_JELLYITUS {Value = 0}, -- I_SLEEPING_ILLNESS {Value = 0}, -- I_PREGNANT {Value = 0}, -- I_TRANSPARENCY }, non_visuals = { [0] = {Value = 0}, -- I_UNCOMMON_COLD {Value = 0}, -- I_BROKEN_WIND {Value = 0}, -- I_SPARE_RIBS {Value = 0}, -- I_KIDNEY_BEANS {Value = 0}, -- I_BROKEN_HEART {Value = 0}, -- I_RUPTURED_NODULES {Value = 0}, -- I_MULTIPLE_TV_PERSONALITIES {Value = 0}, -- I_INFECTIOUS_LAUGHTER {Value = 0}, -- I_CORRUGATED_ANKLES {Value = 0}, -- I_CHRONIC_NOSEHAIR {Value = 0}, -- I_3RD_DEGREE_SIDEBURNS {Value = 0}, -- I_FAKE_BLOOD {Value = 0}, -- I_GASTRIC_EJECTIONS {Value = 0}, -- I_THE_SQUITS {Value = 0}, -- I_IRON_LUNGS {Value = 0}, -- I_SWEATY_PALMS {Value = 0}, -- I_HEAPED_PILES {Value = 0}, -- I_GUT_ROT {Value = 0}, -- I_GOLF_STONES {Value = 0}, -- I_UNEXPECTED_SWELLING }, visuals_available = { [0] = {Value = 0}, -- I_BLOATY_HEAD {Value = 12}, -- I_HAIRYITUS {Value = 3}, -- I_ELVIS {Value = 12}, -- I_INVIS {Value = 18}, -- I_RADIATION {Value = 6}, -- I_SLACK_TONGUE {Value = 0}, -- I_ALIEN {Value = 6}, -- I_BROKEN_BONES {Value = 12}, -- I_BALDNESS {Value = 0}, -- I_DISCRETE_ITCHING {Value = 18}, -- I_JELLYITUS {Value = 0}, -- I_SLEEPING_ILLNESS {Value = 0}, -- I_PREGNANT {Value = 6}, -- I_TRANSPARENCY }, -- New feature, by default non-visual illnesses were always available -- at the start non_visuals_available = { [0] = {Value = 0}, -- I_UNCOMMON_COLD {Value = 0}, -- I_BROKEN_WIND {Value = 0}, -- I_SPARE_RIBS {Value = 0}, -- I_KIDNEY_BEANS {Value = 0}, -- I_BROKEN_HEART {Value = 0}, -- I_RUPTURED_NODULES {Value = 0}, -- I_MULTIPLE_TV_PERSONALITIES {Value = 0}, -- I_INFECTIOUS_LAUGHTER {Value = 0}, -- I_CORRUGATED_ANKLES {Value = 0}, -- I_CHRONIC_NOSEHAIR {Value = 0}, -- I_3RD_DEGREE_SIDEBURNS {Value = 0}, -- I_FAKE_BLOOD {Value = 0}, -- I_GASTRIC_EJECTIONS {Value = 0}, -- I_THE_SQUITS {Value = 0}, -- I_IRON_LUNGS {Value = 0}, -- I_SWEATY_PALMS {Value = 0}, -- I_HEAPED_PILES {Value = 0}, -- I_GUT_ROT {Value = 0}, -- I_GOLF_STONES {Value = 0}, -- I_UNEXPECTED_SWELLING }, win_criteria = { [0] = {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, }, lose_criteria = { [0] = {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, {Criteria = 0, MaxMin = 0, Value = 0, Group = 0, Bound = 0}, }, staff_levels = { [0] = {Month = 0, Nurses = 8, Doctors = 8, Handymen = 3, Receptionists = 2, ShrkRate = 10, SurgRate = 10, RschRate = 10, ConsRate = 10, JrRate = 5}, }, emergency_control = { [0] = {StartMonth = 0, EndMonth = 0, Min = 0, Max = 0, Illness = 0, PercWin = 0, Bonus = 0}, }, computer = { [0] = {Playing = 0, Name = "ORAC"}, {Playing = 0, Name = "COLOSSUS"}, {Playing = 0, Name = "HAL"}, {Playing = 0, Name = "MULTIVAC"}, {Playing = 0, Name = "HOLLY"}, {Playing = 0, Name = "DEEP THOUGHT"}, {Playing = 0, Name = "ZEN"}, {Playing = 0, Name = "SKYNET"}, {Playing = 0, Name = "MARVIN"}, {Playing = 0, Name = "CEREBRO"}, {Playing = 0, Name = "MOTHER"}, {Playing = 0, Name = "JAYNE"}, {Playing = 0, Name = "CORSIX"}, {Playing = 0, Name = "ROUJIN"}, {Playing = 0, Name = "EDVIN"}, }, awards_trophies = { -- Trophy win conditions -- Kill more than this number of rats in a year to win this award -- MIN 0 RatKillsAbsolute = 25, -- Sell more than this number of cans to win the award MIN 0 CansofCoke = 100, -- If player's reputation is >x all through the year then win trophy MIN 0 MAX 1000 Reputation = 400, -- Percentage - keep your plants >x or more watered MIN 0 MAX 100 Plant = 80, -- Percentage - keep mean staff happiness >x throughout the year to win the trophy -- MIN 0 MAX 100 TrophyStaffHappiness = 85, -- Percentage - Rats shot:Rats killed - only valid if player kills at least -- half the number of rats needed to win the other rats trophy RatKillsPercentage = 11, -- TODO: this one is hard to understand! percentage of what exactly? -- Percentage (0-100) low is good needs at 2 mayor visits to be triggered -- So for now, it is super visits that will trigger this prize -- Please all of the VIPs that visit your hospital during the year -- you will have to get a super feedback for each visit -- TrophyMayor = 25, -- Trophy win bonuses -- Bonus - MIN 0 MAX 255 (REP BONUS) REP BONUSES ARE NOW PERCENTAGES RatKillsAbsoluteBonus = 5, -- Bonus - MIN 0 MAX 65535 (MONEY BONUS) RatKillsPercentageBonus = 5000, -- Bonus - MIN 0 (MONEY BONUS) CansofCokeBonus = 1000, -- Bonus - MIN 0 (MONEY BONUS) TrophyReputationBonus = 2000, -- Bonus - MIN 0 MAX 255 (REP BONUS) PlantBonus = 5, -- Bonus - MIN 0 MAX 255 (REP BONUS) TrophyStaffHappinessBonus = 5, -- Bonus to money for curing every patient, no deaths or send-homes (MONEY BONUS) TrophyAllCuredBonus = 20000, -- Bonus to money for NO DEATHS in the year (MONEY BONUS) TrophyDeathBonus = 10000, -- Bonus to money for over 90% Cure Rate in the year (MONEY BONUS) TrophyCuresBonus = 6000, -- Bonus to reputation for pleasing VIPs in the year (REPUTATION BONUS) TrophyMayorBonus = 5, ------------------- Award win/loss criteria ------------------- -- >x to win the award MIN 0 MAX 255 CuresAward = 50, -- x to win the award MIN 0 MAX 255 DeathsPoor = 25, -- >x Percentage - to win the award MIN 0 MAX 100 PopulationPercentageAward = 50, -- x to win the award MIN 0 MAX 100 CuresVDeathsAward = 5, -- x to win the award MIN 0 MAX 1000 ReputationAward = 500, -- x to win the award MIN 0 MAX 2000000 HospValueAward = 150000, -- x Percentage - to win the award MIN 0 MAX 100 - high is bad (ie high amount of litter per square) CleanlinessPoor = 40, -- >x Percentage - to win the award MIN 0 MAX 100 - percentage of peeps saved in emergencies - at least two emergencies per year to qualify EmergencyAward = 90, -- x Percentage - to win the award MIN 0 MAX 100 - staff mean happiness throughout the year StaffHappinessAward = 75, -- x Percentage - to win the award MIN 0 MAX 100 - peeps mean happiness throughout the year PeepHappinessAward = 75, -- x Percentage - to win the award MIN 0 MAX 100 - percentage of BAL_LC_LEAVE - gbv.LeaveMax - high is bad, low is good WaitingTimesAward = 25, -- 0 then for _, future_epidemic in ipairs(hosp.future_epidemics_pool) do local show_mood = future_epidemic.cheat_always_show_mood future_epidemic.cheat_always_show_mood = not show_mood local mood_action = show_mood and "deactivate" or "activate" for _, patient in ipairs(future_epidemic.infected_patients) do patient:setMood("epidemy4",mood_action) end end else return false, _S.misc.epidemic_no_icon_to_toggle end end --[[ Creates a new contagious patient in the hospital - potentially an epidemic]] function Cheats:cheatEpidemic() return self.hospital:spawnContagiousPatient() end --! Toggles the possibility of epidemics. Cancel any ongoing or preparing epidemics. function Cheats:cheatToggleEpidemic() local hosp, msg = self.hospital if hosp.epidemics_disabled then msg = _S.misc.epidemics_on else msg = _S.misc.epidemics_off hosp:cancelEpidemics() end hosp.epidemics_disabled = not hosp.epidemics_disabled return true, msg end function Cheats:cheatEarthquake() return self.hospital.world.earthquake:createEarthquake() end --! Toggles the possibility of earthquakes function Cheats:cheatToggleEarthquake() local world, msg = self.hospital.world if world.earthquake.disabled then msg = _S.misc.earthquakes_on else msg = _S.misc.earthquakes_off end world.earthquake.disabled = not world.earthquake.disabled return true, msg end function Cheats:cheatVip() self.hospital:createVip() end function Cheats:cheatPatient() self.hospital.world:spawnPatient() end function Cheats:cheatMonth() self.hospital.world:setEndMonth() end function Cheats:cheatYear() self.hospital.world:setEndYear() end function Cheats:cheatLose() self.hospital.world:loseGame(1) -- TODO adjust for multiplayer end function Cheats:cheatWin() self.hospital.world:winGame(1) -- TODO adjust for multiplayer end function Cheats:cheatIncreasePrices() local hosp = self.hospital for _, casebook in pairs(hosp.disease_casebook) do local new_price = casebook.price + 0.5 if new_price > 2 then casebook.price = 2 else casebook.price = new_price end end end function Cheats:cheatDecreasePrices() local hosp = self.hospital for _, casebook in pairs(hosp.disease_casebook) do local new_price = casebook.price - 0.5 if new_price < 0.5 then casebook.price = 0.5 else casebook.price = new_price end end end function Cheats:cheatResetDeathCount() self.hospital:resetDeathCount() end function Cheats:cheatMaxReputation() local hosp = self.hospital hosp:unconditionalChangeReputation(hosp.reputation_max) end --! Instantly repairs all of the player's machines (regardless of condition, without decreasing strength) function Cheats:cheatRepairAllMachines() local world = self.hospital.world local machines = world:getPlayerMachines() for _, machine in ipairs(machines) do machine:machineRepaired(machine:getRoom(), false) end end --! Toggles machine invulnerability (no wear or explosions) function Cheats:cheatToggleInvulnerableMachines() local msg if self:isCheatActive("invulnerable_machines") then msg = _S.misc.invulnerable_machines_off else msg = _S.misc.invulnerable_machines_on end self.active_cheats["invulnerable_machines"] = not self.active_cheats["invulnerable_machines"] return true, msg end --[[Begin toggle-based cheat functions]] --! Enable Roujin's challenge (spawn rate cheat) function Cheats:roujinOn() self.active_cheats["spawn_rate_cheat"] = true end --! Disable Roujin's challenge (spawn rate cheat) function Cheats:roujinOff() -- Clear the current month's spawns to give the player a break self.hospital.world.spawn_dates = {} self.active_cheats["spawn_rate_cheat"] = nil end --! Enables no rest cheat (staff do not tire, fast movement) function Cheats:noRestOn() for _, staff in ipairs(self.hospital.staff) do if staff:getAttribute("fatigue") then staff:wake(staff:getAttribute("fatigue")) end end self.active_cheats["no_rest_cheat"] = true end --! Disable no rest cheat (re-enable staff fatigue, and normal movement) function Cheats:noRestOff() self.active_cheats["no_rest_cheat"] = nil end --! Enable queue jump cheat (for nearly dead patients) function Cheats:queueJumpOn() self.active_cheats.queuejump = true end --! Disable queue jump cheat (so that nearly dead patients queue regularly) function Cheats:queueJumpOff() self.active_cheats.queuejump = false end --! Enable super doctors cheat (all doctors for hire have maximum skills) function Cheats:superDoctorOn() self.active_cheats.super_doctor = true self.hospital.world:makeAvailableStaff(self.hospital.world.game_date:monthOfGame()) end --! Disable super doctors cheat (immediately return to the normal doctors available in the for hire dialog) function Cheats:superDoctorOff() self.active_cheats.super_doctor = false self.hospital.world:makeAvailableStaff(self.hospital.world.game_date:monthOfGame()) end --[[End toggle-based cheat functions]] --[[ The toggle_cheats list (code operated cheats) These cheats do not appear in the Cheat UI menu, and are only accessed from fax code inputs currently. They contain adviser strings, so cannot be persisted. ]]-- local toggle_cheats = { ["spawn_rate_cheat"] = { enable = Cheats.roujinOn, disable = Cheats.roujinOff, enableAnnouncement = _A.cheats.roujin_on_cheat, disableAnnouncement = _A.cheats.roujin_off_cheat, lower = 27868.3, upper = 27868.4, }, ["no_rest_cheat"] = { enable = Cheats.noRestOn, disable = Cheats.noRestOff, enableAnnouncement = _A.cheats.norest_on_cheat, disableAnnouncement = _A.cheats.norest_off_cheat, lower = 185.5, upper = 185.6, }, queuejump = { enable = Cheats.queueJumpOn, disable = Cheats.queueJumpOff, enableAnnouncement = _A.cheats.queuejump_on_cheat, disableAnnouncement = _A.cheats.queuejump_off_cheat, lower = 200.5, upper = 200.6, }, super_doctor = { enable = Cheats.superDoctorOn, disable = Cheats.superDoctorOff, enableAnnouncement = _A.cheats.superdoctor_on_cheat, disableAnnouncement = _A.cheats.superdoctor_off_cheat, lower = 301.5, upper = 301.6, }, } --! Checks if a toggle cheat is activated --!param name (string) Name of cheat to check --!return Returns true if active function Cheats:isCheatActive(name) return self.active_cheats[name] end --! Checks the obfuscated cheat code for a match and executes it --!param num (number) The obfuscated cheat value --!return Returns name of the cheat executed from the lookup table, or nil function Cheats:processCheatCode(num) local cheat_list = toggle_cheats for name, data in pairs(cheat_list) do if data.lower < num and data.upper > num then self:toggleCheat(name) return name end end return -- cheat not found end --! Performs a cheat from fax_cheats --!param name (string) The cheat called from the list function Cheats:toggleCheat(name) local ui = self.hospital.world.ui local cheat_list = toggle_cheats local cheat = cheat_list[name] local cheatWindow = ui:getWindow(UICheats) local speech if not self:isCheatActive(name) then cheat.enable(self) speech = cheat.enableAnnouncement self:announceCheat(speech) else cheat.disable(self) speech = cheat.disableAnnouncement self:announceCheat(speech) end -- If a cheats window is open, make sure the UI is updated if cheatWindow then cheatWindow:updateCheatedStatus() end end CorsixTH-0.70.0/CorsixTH/Lua/class.lua000066400000000000000000000121771522247547500173620ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] ---- Primitive class system --------------------------------------------------- -- Declaring a class: -- class "Name" -- OR -- class "Name" (SuperclassName) -- -- ---@type Name -- local Name = _G["Name"] -- -- function Name:Name(arguments) -- self:SuperclassName(arguments) -- required when there is a superclass -- --(constructor)-- -- end -- function Name:method(arguments) -- --(generic method)-- -- end -- -- Creating a class instance: -- variable = Name(constructor_arguments) -- -- Classes can also be made by "adopting" a table - taking an existing table -- and turning it into a class instance, rather than always creating a new -- table when the constructor is called. To enable this, put "{}" after the -- class declaration, as in: -- class "NameWhichAdopts" {} -- Then the first argument to the constructor is treated as a table to turn -- into an instance of the class, as in: -- variable = NameWhichAdopts{named_constructor_argument = 42, another = 43} -- -- Using a class instance: -- variable:method(arguments) -- OR -- Name.method(variable, arguments) -- -- The latter form can be used to call a method of a superclass when the -- subclass overrides it with a method of the same name. -- C code does not use this file, but does use the same syntax for creating a -- class instance and calling methods on it. local setmetatable, getmetatable, type = setmetatable, getmetatable, type local function define_class(name, super, adopts_self) local mt = {} local function new_class(methods, ...) local constructor = methods[name] local self if adopts_self and ... then self = setmetatable(..., mt) constructor(...) else self = setmetatable({}, mt) constructor(self, ...) end return self end local methods = {} local methods_mt = {} mt.__index = methods setmetatable(methods, methods_mt) if super ~= nil then methods_mt.__index = super end methods_mt.__call = new_class methods_mt.__class_name = name methods._metatable = mt _G[name] = methods end strict_declare_global "class" class = destrict(function(_, name) define_class(name) local adopts_self = false local super = nil local function extend(arg) if type(arg) == "table" and next(arg) == nil and not getmetatable(arg) then -- {} decorator adopts_self = true else -- (Superclass) decorator if arg == nil then error("Superclass not defined at subclass definition") end super = arg end define_class(name, super, adopts_self) return extend end return extend end) class = setmetatable({}, {__call = class}) -- class.is - Tests if a given class object (first parameter) is an instance -- of (something derived from) a given type (second parameter). -- For example: -- class "something" (base) -- class "something_else" -- variable = something() -- class.is(variable, something) --> true -- class.is(variable, base) --> true -- class.is(variable, something_else) --> false function class.is(instance, class) local typ = type(instance) if typ ~= "table" and typ ~= "userdata" then return false end local methods = instance while methods do if methods == class then return true end local mt = getmetatable(methods) methods = mt and mt.__index end return false end -- class.name - Get the name of a class -- For example: -- class "something" -- class.name(something) --> "something" function class.name(class) local mt = getmetatable(class) return mt and mt.__class_name end -- class.superclass - Get the superclass of a class -- For example: -- class "something" (base) -- class.superclass(something) --> base function class.superclass(class) return getmetatable(class).__index end -- class.type - Get the typename of a class instance -- For example: -- class "something" (base) -- variable = something() -- class.type(variable) --> "something" function class.type(instance) local mt = getmetatable(instance) if not mt then return nil end local methods_mt = getmetatable(mt.__index) if not methods_mt then return nil end return methods_mt.__class_name end CorsixTH-0.70.0/CorsixTH/Lua/config_finder.lua000066400000000000000000001225061522247547500210470ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- This module detects the appropriate path for the config.txt and hotkeys.txt -- files. It also manages saving and loading from these files and their -- contents. -- -- To add a new config property add it's default value to the table in -- new_config_defaults, then update the string in the config_contents with a -- description of the property under the most relevant heading followed by -- param(config_values, 'your_parameter_name'). -- -- If your config property does not have a default value (defaults to nil) it -- can be helpful to include an example of the expected input, with the -- following syntax: param(config_values, 'param_name', '[[example]]') -- -- For new hotkeys the process is similar but use the new_hotkeys_defaults -- function table for the default value and the string in the hotkeys_contents -- function to include the parameter in the hotkeys.txt configuration file. -- The same params syntax applies. -- -- After changing the config.txt file you need to generate a new template for -- the windows installer by running `lua scripts/generate_windows_config.lua` -- from the root of the repository. -- -- The format of the configuration files should not be depended on anywhere -- outside of this module. It is a layering violation to attempt to parse or -- update the file anywhere else in the codebase e.g. app.lua. local pathsep = package.config:sub(1, 1) local ourpath = debug.getinfo(1, "S").source:sub(2, -22) local serialize = serialize -- from utility local function pathconcat(a, b) if a:sub(-1) == pathsep then return a .. b else return a .. pathsep .. b end end local function find_config() local config_path -- Decide on a sensible place to put config.txt, etc. if pathsep == "\\" then -- Windows config_path = os.getenv("AppData") or ourpath else -- Linux, OS X, etc. config_path = os.getenv("XDG_CONFIG_HOME") or pathconcat(os.getenv("HOME") or "~", ".config") end if config_path ~= ourpath then config_path = pathconcat(config_path, "CorsixTH") end -- Config filename. local config_name = "config.txt" -- Check for config.path.txt local fi = io.open(pathconcat(ourpath, "config.path.txt"), "r") if fi then local contents = fi:read("*a") contents = contents:match("^%s*(.-)%s*$") fi:close() if #contents ~= 0 then config_path = contents if config_path:sub(-4, -1):lower() == ".txt" then config_name = config_path:match("([^" .. pathsep .. "]*)$") config_path = config_path:sub(1, -1-#config_name) end end end -- Check / create config_path local lfs = require("lfs") local function check_dir_exists(path) if path:sub(-1) == pathsep then path = path:sub(1, -2) end if lfs.attributes(path, "mode") == "directory" then return true else local subpath = path:match("^(.*)[" .. pathsep .. "]") if subpath then return check_dir_exists(subpath) and lfs.mkdir(path) else return false end end end if not check_dir_exists(config_path) then config_path = ourpath end return pathconcat(config_path, config_name), config_path, config_name end local function new_config_defaults() --[[ All the folders settings have default paths that likely do not exist. When adding new fields, please try and keep the end results user friendly. They are all grouped into the places they can be changed in game and then into a group that can only be changed here. Currently the player name is at the bottom of the list for the config as it this is where it always ends up when the file is recreated. The following list is in the same order. ]] return { fullscreen = false, width = 800, height = 600, ui_scale = 1, language = [[English]], audio = true, free_build_mode = false, play_sounds = true, sound_volume = 0.5, play_announcements = true, announcement_volume = 0.5, play_music = true, music_volume = 0.5, prevent_edge_scrolling = false, capture_mouse = true, right_mouse_scrolling = false, adviser_disabled = false, scrolling_momentum = 0.8, twentyfour_hour_clock = true, warmth_colors_display_default = 1, grant_wage_increase = false, movies = true, play_intro = true, play_demo = true, allow_user_actions_while_paused = false, volume_opens_casebook = false, alien_dna_only_by_emergency = true, alien_dna_must_stand = true, alien_dna_can_knock_on_doors = false, disable_fractured_bones_females = true, enable_avg_contents = false, remove_destroyed_rooms = false, machine_menu_button = true, enable_screen_shake = true, enable_announcer_subtitles = false, autosave_frequency = 1, audio_frequency = 22050, audio_channels = 2, audio_buffer_size = 2048, midi_api = nil, midi_port = nil, midi_sysex_master_volume = false, theme_hospital_install = [[X:\ThemeHospital\hospital]], debug = false, track_fps = false, zoom_speed = 80, scroll_speed = 2, shift_scroll_speed = 4, new_graphics_folder = nil, use_new_graphics = false, check_for_updates = true, room_information_dialogs = true, blocking_off_areas = 2, direct_zoom = nil, new_machine_extra_info = true, player_name = [[]], } end -- Defaults for hotkeys. local function new_hotkeys_defaults() return { global_confirm = "return", global_confirm_alt = "e", global_cancel = "escape", global_cancel_alt = "q", global_fullscreen_toggle = {"alt", "return"}, global_exitApp = {"alt", "f4"}, global_resetApp = {"shift", "f10"}, global_releaseMouse = {"ctrl", "f10"}, global_showLuaConsole = "f12", global_runDebugScript = {"shift", "d"}, global_screenshot = {"ctrl", "s"}, global_stop_movie = "escape", global_stop_movie_alt = "q", global_pause_movie = "p", global_window_close = "escape", global_window_close_alt = "q", ingame_showmenubar = "escape", ingame_showCheatWindow = "f11", ingame_pause = "p", ingame_gamespeed_slowest = "1", ingame_gamespeed_slower = "2", ingame_gamespeed_normal = "3", ingame_gamespeed_max = "4", ingame_gamespeed_thensome = "5", ingame_gamespeed_speedup = "z", ingame_scroll_up = "up", ingame_scroll_down = "down", ingame_scroll_left = "left", ingame_scroll_right = "right", ingame_scroll_shift = "shift", ingame_zoom_in = "=", ingame_zoom_in_more = {"shift", "="}, ingame_zoom_out = "-", ingame_zoom_out_more = {"shift", "-"}, ingame_reset_zoom = "0", ingame_setTransparent = "x", ingame_sellPickedUpItem = "delete", ingame_toggleTransparent = {"shift", "x"}, ingame_toggleAdvisor = {"shift", "a"}, ingame_poopLog = {"ctrl", "d"}, ingame_poopStrings = {"ctrl", "t"}, ingame_toggleAnnouncements = {"alt", "a"}, ingame_toggleSounds = {"alt", "s"}, ingame_toggleMusic = {"alt", "m"}, ingame_panel_bankManager = "f1", ingame_panel_bankStats = "f2", ingame_panel_staffManage = "f3", ingame_panel_townMap = "f4", ingame_panel_casebook = "f5", ingame_panel_research = "f6", ingame_panel_status = "f7", ingame_panel_charts = "f8", ingame_panel_policy = "f9", ingame_panel_machineMenu = "f10", ingame_panel_adviserHistory = {"ctrl", "h"}, ingame_panel_map_alt = "t", ingame_panel_research_alt = "r", ingame_panel_casebook_alt = "c", ingame_panel_casebook_alt02 = {"shift", "c"}, ingame_panel_buildRoom = "f", ingame_panel_furnishCorridor = "g", ingame_panel_editRoom = "v", ingame_panel_hireStaff = "b", ingame_loadMenu = {"shift", "l"}, ingame_saveMenu = {"shift", "s"}, ingame_restartLevel = {"shift", "r"}, ingame_quitLevel = {"shift", "q"}, ingame_quickSave = {"alt", "shift", "s"}, ingame_quickLoad = {"alt", "shift", "l"}, ingame_openFirstMessage = "m", ingame_toggleInfo = "i", ingame_jukebox = "j", ingame_rotateobject = "space", ingame_patient_gohome = "h", ingame_storePosition_1 = {"alt", "1"}, ingame_storePosition_2 = {"alt", "2"}, ingame_storePosition_3 = {"alt", "3"}, ingame_storePosition_4 = {"alt", "4"}, ingame_storePosition_5 = {"alt", "5"}, ingame_storePosition_6 = {"alt", "6"}, ingame_storePosition_7 = {"alt", "7"}, ingame_storePosition_8 = {"alt", "8"}, ingame_storePosition_9 = {"alt", "9"}, ingame_storePosition_0 = {"alt", "0"}, ingame_recallPosition_1 = {"ctrl", "1"}, ingame_recallPosition_2 = {"ctrl", "2"}, ingame_recallPosition_3 = {"ctrl", "3"}, ingame_recallPosition_4 = {"ctrl", "4"}, ingame_recallPosition_5 = {"ctrl", "5"}, ingame_recallPosition_6 = {"ctrl", "6"}, ingame_recallPosition_7 = {"ctrl", "7"}, ingame_recallPosition_8 = {"ctrl", "8"}, ingame_recallPosition_9 = {"ctrl", "9"}, ingame_recallPosition_0 = {"ctrl", "0"}, } end local function param(params, param_name, nil_example) if nil_example then return param_name .. ' = ' .. (params[param_name] and serialize(params[param_name]) or 'nil -- ' .. nil_example) .. '\n' end return param_name .. ' = ' .. serialize(params[param_name]) .. '\n' end local function config_contents(config_values) local parts = {} parts[1] = [=[ ------------------------- CorsixTH configuration file ------------------------- -- Lines starting with two dashes (like this one) are ignored. -- Text settings should have their values between double square braces, e.g. -- setting = [[value]] -- Number settings should not have anything around their value, -- e.g. setting = 42 -- If you wish to go back to the default settings for everything, you can delete -- this text file and it will be re-created when you play the game. -- -------------------------------- SETTINGS MENU -------------------------------- -- These settings can also be changed from within the game in the settings menu ------------------------------------------------------------------------------- -- Screen size. Must be at least 640x480. Larger sizes will require better -- hardware in order to maintain a playable framerate. The fullscreen setting -- can be true or false, and the game will run windowed if not fullscreen. -- ui_scale can be set to 1, 2, or 3 to scale the user interface for higher -- resolution displays. For example, at 1920x1080 resolution, setting ui_scale -- to 2 will make the interface elements twice as large. --]=] .. '\n' .. param(config_values, 'fullscreen') .. '\n' .. param(config_values, 'width') .. param(config_values, 'height') .. param(config_values, 'ui_scale') .. [=[ ------------------------------------------------------------------------------- -- Language to use for ingame text. Between the square braces should be one of: -- Brazilian Portuguese / pt_br / br -- Chinese (simplified) / zh(s) / chi(s) -- Chinese (traditional) / zh(t) / chi(t) -- Czech / cs / cze -- Danish / da / dk -- Dutch / Nederlands / nl / dut / nld -- English / en / eng -- Finnish / Suomi / fi / fin -- French / fr / fre / fra -- German / de / ger / deu -- Hungarian / hu / hun -- Italian / it / ita -- Japanese / ja / jp -- Korean / kor / ko -- Norwegian / nb / nob -- Polish / pl / pol -- Portuguese / pt / por -- Russian / ru / rus -- Spanish / es / spa -- Swedish / sv / swe -- Ukrainian / uk / ukr --]=] .. '\n' .. param(config_values, 'language') .. [=[ ------------------------------------------------------------------------------- -- Audio global on/off switch. --]=] .. '\n' .. param(config_values, 'audio') .. '\n' parts[2] = [=[ ------------------------------ CUSTOM GAME MENU ------------------------------- -- These settings can also be changed from the opening menu screen -- in the custom games or new game menus ------------------------------------------------------------------------------- -- Free Build or Sandbox mode -- You cannot win or lose custom made maps if this is set to true. -- You also don't have to worry about money. -- This setting does not apply to any of the campaign maps. --]=] .. '\n' .. param(config_values, 'free_build_mode') .. '\n' parts[3] = [=[ --------------------------------- OPTIONS MENU -------------------------------- --These settings can also be changed from within the game from the options menu ------------------------------------------------------------------------------- -- Sounds: By default enabled and set at level 0.5 --]=] .. '\n' .. param(config_values, 'play_sounds') .. param(config_values, 'sound_volume') .. [=[ ------------------------------------------------------------------------------- -- Announcements: By default set at level 0.5 --]=] .. '\n' .. param(config_values, 'play_announcements') .. param(config_values, 'announcement_volume') .. [=[ ------------------------------------------------------------------------------- -- Background music: By default enabled and set at level 0.5 --]=] .. '\n' .. param(config_values, 'play_music') .. param(config_values, 'music_volume') .. [=[ ------------------------------------------------------------------------------- -- Edge scrolling: By default enabled (prevent_edge_scrolling = false). --]=] .. '\n' .. param(config_values, 'prevent_edge_scrolling') .. [=[ ------------------------------------------------------------------------------- -- Capture mouse: By default enabled (capture mouse = true). --]=] .. '\n' .. param(config_values, 'capture_mouse') .. [=[ ------------------------------------------------------------------------------- -- Right Mouse Scrolling: By default, it is disabled (right_mouse_scrolling = false). -- This means that the default scrolling method is pressing the middle mouse button. -- Please note this an Experimental Feature and may interfere with other right mouse -- operations. Report bugs for this on Github Issue 2469. --]=] .. '\n' .. param(config_values, 'right_mouse_scrolling') .. [=[ ------------------------------------------------------------------------------- -- Adviser on/off: If you set this to true the adviser will no longer -- pop up. --]=] .. '\n' .. param(config_values, 'adviser_disabled') .. [=[ ------------------------------------------------------------------------------- -- Scrolling Momentum. -- Determines the amount of momentum when scrolling the map with the mouse. -- This should be a value between 0 and 1 where 0 is no momentum --]=] .. '\n' .. param(config_values, 'scrolling_momentum') .. [=[ ------------------------------------------------------------------------------- -- Top menu clock is by default is always on -- setting to true will give you a twentyfour hours display -- change to false if you want AM / PM time displayed. --]=] .. '\n' .. param(config_values, 'twentyfour_hour_clock') .. [=[ ------------------------------------------------------------------------------- -- Automatically check for updates. -- If set to true, CorsixTH will automatically check for and alert you to newer -- versions on startup. --]=] .. '\n' .. param(config_values, 'check_for_updates') .. [=[ ------------------------------------------------------------------------------- -- Warmth Colors display settings. -- This specifies which display method is set for warmth colours by default. -- Possible values: 1 (Red), 2 (Blue Green Red) and 3 (Yellow Orange Red). --]=] .. '\n' .. param(config_values, 'warmth_colors_display_default') .. '\n' parts[4] = [=[ ------------------------------ CUSTOMISE SETTINGS ----------------------------- -- These settings can also be changed from the Customise Menu ------------------------------------------------------------------------------- -- Wage increase request settings. -- If set to true when wage increase requests expire automatically grant them -- otherwise let the staff member quit. --]=] .. '\n' .. param(config_values, 'grant_wage_increase') .. [=[ ------------------------------------------------------------------------------- -- Movie global on/off switch. -- Note that movies will also be disabled if CorsixTH was compiled without the -- FFMPEG library. --]=] .. '\n' .. param(config_values, 'movies') .. [=[ -- Intro movie: Enabled by default --]=] .. '\n' .. param(config_values, 'play_intro') .. [=[ -- Demo movie (played on idle at main menu): Enabled by default --]=] .. '\n' .. param(config_values, 'play_demo') .. [=[ ------------------------------------------------------------------------------- -- Allow user actions while game is paused -- In Theme Hospital the player would only be allowed to use the top menu if -- the game was paused. That is the default setting in CorsixTH too, but by -- setting this to true everything is allowed while the game is paused. --]=] .. '\n' .. param(config_values, 'allow_user_actions_while_paused') .. [=[ ------------------------------------------------------------------------------- -- VOLUME CONTROL IS OPENING THE DRUG CASEBOOK? -- If your keyboard volume control opens the Drug Casebook at the same time -- then change this to true. From then on you will have to use Shift + C to open -- the Casebook and volume down will not open it. -- For example for shift + C to open casebook change the setting below to = true --]=] .. '\n' .. param(config_values, 'volume_opens_casebook') .. [=[ ------------------------------------------------------------------------------- -- To allow patients with Alien DNA to visit your hospital other than by an -- emergency change the settings below. Understand that there are no animations -- for sitting down, opening or knocking on doors etc. -- So, like with Theme Hospital to do these things they will appear to change -- to normal looking and then change back. --]=] .. '\n' .. param(config_values, 'alien_dna_only_by_emergency') .. param(config_values, 'alien_dna_must_stand') .. param(config_values, 'alien_dna_can_knock_on_doors') .. [=[ -- To allow female patients with fractured bones, which are by default -- disabled due to poor animation that skips and jumps a bit --]=] .. '\n' .. param(config_values, 'disable_fractured_bones_females') .. [=[ ------------------------------------------------------------------------------- -- By default the player selects any extra objects they want for each room they -- build. If you would like the game to remember what you usually add, then -- change this option to true. --]=] .. '\n' .. param(config_values, 'enable_avg_contents') .. [=[ ------------------------------------------------------------------------------- -- By default destroyed rooms can't be removed. If you would like the game to -- give you the option of removing a destroyed room change this option to true. --]=] .. '\n' .. param(config_values, 'remove_destroyed_rooms') .. [=[ ------------------------------------------------------------------------------- -- By default machine menu is shown in a bottom panel. If you would like the -- game to hide it change this option to false. --]=] .. '\n' .. param(config_values, 'machine_menu_button') .. [=[ ------------------------------------------------------------------------------- -- By default the entire screen will shake during earthquakes. If you would -- like the game to keep the screen stationary, change this option to false. --]=] .. '\n' .. param(config_values, 'enable_screen_shake') .. [=[ ------------------------------------------------------------------------------- -- By default subtitles are not displayed. If you would like the game to -- display subtitles for your hospital's announcements, turn this option on. --]=] .. '\n' .. param(config_values, 'enable_announcer_subtitles') .. [=[ ------------------------------------------------------------------------------- -- By default, the game autosaves every in-game month. If you would like to -- autosave more often, every week or every day, change this setting to 2 or 3. -- Please note that a typical save can take up to 1 megabyte or even more. -- This way your autosaves folder can grow to 300-500 MB with daily autosaves. -- Set 1 for Monthly, 2 for Weekly, 3 for Daily autosaves. --]=] .. '\n' .. param(config_values, 'autosave_frequency') .. '\n' parts[5] = [=[ ------------------------------- FOLDER SETTINGS ------------------------------- -- These settings can also be changed from the Folders Menu ------------------------------------------------------------------------------- -- Theme hospital install folder: original game data files are loaded from this -- folder. Between the square braces should be the folder which contains the -- original HOSPITAL.EXE and/or HOSP95.EXE file. This can point to a copy of -- the Theme Hospital demo, though a full install of the original game is -- preferred. --]=] .. '\n' .. param(config_values, 'theme_hospital_install', '[[X:\\ThemeHospital]]') .. [=[ ------------------------------------------------------------------------------- -- Font file setting. Can be changed from main game menu -- Specify a font file here if you wish to play the game in a language not -- present in the original game. Examples include Russian, Chinese and Polish. --]=] .. '\n' .. param(config_values, 'unicode_font', '[[X:\\ThemeHospital\\font.ttc]]') .. [=[ ------------------------------------------------------------------------------- -- Savegames. By default, the "Saves" directory alongside this config file will -- be used for storing saved games in. Should this not be suitable, then -- uncomment the following line, and point it to a directory which exists and -- is more suitable. --]=] .. '\n' .. param(config_values, 'savegames', '[[X:\\ThemeHospital\\Saves]]') .. [=[ ------------------------------------------------------------------------------- -- Levels and Campaigns. By default, the "Levels" and "Campaigns" directory next to -- this config file will be used for storing new maps / levels / campaigns in. If -- this is not suitable, then uncomment the following lines, and point it to a directory -- which exists and is more suitable. -- Note: Newly created maps in the Map Editor go into the "Levels" folder currently. --]=] .. '\n' .. param(config_values, 'levels', '[[X:\\ThemeHospital\\Levels]]') .. param(config_values, 'campaigns', '[[X:\\ThemeHospital\\Campaigns]]') .. [=[ ------------------------------------------------------------------------------- -- Use new graphics. Whether to use the original graphics from Theme Hospital -- or use new graphics created by the CorsixTH project. -- Developer use only, otherwise the game will very likely crash in normal use --]=] .. '\n' .. param(config_values, 'use_new_graphics') .. [=[ ------------------------------------------------------------------------------- -- Graphics folder. All graphics are initially taken from the original -- Theme Hospital, but the game can also try to find new graphics in the -- specified folder below. Some graphics are shipped with CorsixTH, and they -- will be used if you just switch on new graphics. If you however have -- acquired graphics from somewhere else, then uncomment the following line -- and point it to the directory which contains the new graphics. --]=] .. '\n' .. param(config_values, 'new_graphics_folder', '[[X:\\ThemeHospital\\Graphics]]') .. [=[ ------------------------------------------------------------------------------- -- Screenshots. By default, the "Screenshots" directory alongside this config -- file will be used for saving screenshots. Should this not be suitable, then -- uncomment the following line, and point it to a directory which exists and -- is more suitable. --]=] .. '\n' .. param(config_values, 'screenshots', '[[X:\\ThemeHospital\\Screenshots]]') .. [=[ ------------------------------------------------------------------------------- -- If you want to listen to non-Theme-Hospital music, then follow these steps: -- 1) Find updated versions of the original tracks (a link to ZR's Remixes can -- be found on the CorsixTH wiki) or any other music you want to listen to. -- 2) Uncomment the next line and point it to where the music files are. -- 3) If you want to change the names of songs ingame, make a file called -- "names.txt" and write the file name on one row, followed by the desired -- ingame name on the next row. --]=] .. '\n' .. param(config_values, 'audio_music', '[[X:\\ThemeHospital\\Music]]') .. [=[ ------------------------------------------------------------------------------- -- SoundFont: CorsixTH uses the FluidR3 SoundFont by default for playing MIDI music. -- Windows users, and other OS versions compiled with the FluidSynth software -- synthesiser can specify their own SoundFont file below (.sf2 or .sf3). -- Mac(OS) Source Ports build users, and OS versions compiled with TiMidity -- won't see any effect from this option. See our Wiki for alternative options. --]=] .. '\n' .. param(config_values, 'soundfont', '[[X:\\ThemeHospital\\FluidR3.sf3]]') .. '\n' parts[6] = [=[ ------------------------------------------------------------------------------- -- Midi API and Device settings. -- By default, CorsixTH uses FluidSynth or build defined MIDI synthesizer. -- You can change the API to target other available MIDI backends using these -- settings on supported platforms. -- Possible values for midi_api are: -- - Uses SDL_Mixer's MIDI backend, typically FluidSynth -- Native - Use any available platform MIDI API -- ALSA - Use the ALSA MIDI API (Linux only) -- JACK - Use the JACK MIDI API (Unix-like systems with JACK) -- CoreMIDI - Use the CoreMIDI API (MacOS only) -- WindowsMM - Use the Windows MultiMedia API (Windows only) -- -- Possible values for midi_port depend on the selected midi_api, and can -- be left nil to use the system default port. A list of available ports -- can be obtained from the midi settings screen in game. --]=] .. '\n' .. param(config_values, 'midi_api', '[[Native]]') .. param(config_values, 'midi_port', '[[Midi Through:Midi Through Port-0 14:0]]') .. [=[ ------------------------------- SPECIAL SETTINGS ------------------------------ -- These settings can only be changed here ------------------------------------------------------------------------------- -- Audio playback settings. -- These can be commented out to use the default values from the game binary. -- Note: On some platforms, these settings may not effect MIDI playback - only -- sound effects and music audio. If you are experiencing poor audio playback, -- then try doubling the buffer size. --]=] .. '\n' .. param(config_values, 'audio_frequency') .. param(config_values, 'audio_channels') .. param(config_values, 'audio_buffer_size') .. [=[ ------------------------------------------------------------------------------- -- Advanced MIDI settings. -- These settings can enable better MIDI playback on some systems but may also -- cause issues or be unsupported on others. -- -- midi_sysex_master_volume: Use SysEx message instead of adjusted channel -- volume messages to set the music volume. --]=] .. '\n' .. param(config_values, 'midi_sysex_master_volume') .. [=[ ------------------------------------------------------------------------------- -- Debug settings. -- If set to true more detailed information will be printed in the terminal -- and a debug menu will be visible. --]=] .. '\n' .. param(config_values, 'debug') .. [=[ -- If set to true, the FPS, Lua memory usage, and entity count will be shown -- in the dynamic information bar. Note that setting this to true also turns -- off the FPS limiter, causing much higher CPU utilisation, but resulting in -- more useful FPS values, as they are not artificially capped. --]=] .. '\n' .. param(config_values, 'track_fps') .. [=[ ------------------------------------------------------------------------------- -- Zoom Speed: By default this is set at 80 -- Any number value between 10 and 1000, 10 is very slow and 1000 is very fast! --]=] .. '\n' .. param(config_values, 'zoom_speed') .. [=[ ------------------------------------------------------------------------------- -- Scroll Speeds: The speed of scrolling with and without shift being held. -- Any number value between 1 and 10, 1 is very slow and 10 is fast! --]=] .. '\n' .. param(config_values, 'scroll_speed') .. param(config_values, 'shift_scroll_speed') .. [=[ ------------------------------------------------------------------------------- -- Room information dialogs: Information about new rooms, important for -- additional rooms in later levels. Affects campaign only. --]=] .. '\n' .. param(config_values, 'room_information_dialogs') .. [=[ ------------------------------------------------------------------------------- -- Ability to block off areas when building and placing objects. -- -- There are 3 possible options: -- -- 1. Totally forbidden - requires every passable tile in the hospital -- to remain reachable from a hospital entrance. This avoids issues that -- could arise from area blocking, but it also prevents room layouts -- which are allowed in Theme Hospital. Before version 0.70 this was -- a default option in CorsixTH. -- -- 2. Partially allowed - user is allowed to make dead ended, inaccessible -- spaces that are not accessible from the hospital entrance but only if -- certain conditions are met. The condition is that the rooms themselves -- and usable objects inside the room must remain accessible. This ensures -- the preservation of the hospital's functionality and ensures the validity -- of the path routing in the hospital. This allows user to build rooms with -- the same layout as in the original TH. This is a safe option. -- -- 3. Completely allowed - user is allowed to make dead ended, -- inaccessible spaces that are not accessible from the hospital entrance. -- This is a dangerous feature that can lead to game crashes. Use it only -- at your own risk and if you fully understand why you enabling it. -- -- Set '1' for '1. Totally forbidden', -- Set '2' for '2. Partially allowed' (Default), -- Set '3' for '3. Completely allowed'. --]=] .. '\n' .. param(config_values, 'blocking_off_areas') .. [=[ ------------------------------------------------------------------------------- -- Direct Zoom: Avoid rendering to an intermediate texture when zooming. -- Improves performance and reliability on some hardware. --]=] .. '\n' .. param(config_values, 'direct_zoom') .. [=[ ------------------------------------------------------------------------------- -- Replacing Machines: By default, you will see a new machines initial strength -- before purchasing it. If you don't want this change the value to false. --]=] .. '\n' .. param(config_values, 'new_machine_extra_info') .. [=[ ------------------------------------------------------------------------------- -- By default your username will be your name in the game. You can change it in -- the New Game menu or between the brace brackets below like [[NAME]]. -- Note: space is limited in the game, so don't enter a name that is too long! --]=] .. '\n' .. param(config_values, 'player_name') .. '\n' return table.concat(parts) end local function hotkeys_contents(hotkeys_values) local parts = {} parts[1] = [=[ --------------------------CorsixTH Hotkey Mappings File------------------------ -- Lines starting with two dashes (like this one) are ignored. -- Text settings should have their values between double square braces, e.g. -- Number settings should not have anything around their value, and complex -- settings should be surrounded by curly brackets. -- -- EXAMPLES -- setting = [[value]] -- setting = 42 -- setting = { 42, [[value]] } -----------------------------------Global Keys--------------------------------- -- These are global keys to be used at anytime while the application is open. --]=] .. '\n' .. param(hotkeys_values, 'global_confirm') .. param(hotkeys_values, 'global_confirm_alt') .. param(hotkeys_values, 'global_cancel') .. param(hotkeys_values, 'global_cancel_alt') .. param(hotkeys_values, 'global_fullscreen_toggle') .. param(hotkeys_values, 'global_exitApp') .. param(hotkeys_values, 'global_resetApp') .. param(hotkeys_values, 'global_releaseMouse') .. param(hotkeys_values, 'global_showLuaConsole') .. param(hotkeys_values, 'global_runDebugScript') .. param(hotkeys_values, 'global_screenshot') .. param(hotkeys_values, 'global_stop_movie') .. param(hotkeys_values, 'global_pause_movie') .. param(hotkeys_values, 'global_window_close') .. param(hotkeys_values, 'global_stop_movie_alt') .. param(hotkeys_values, 'global_window_close_alt') .. [=[ -----------------------------------Scroll Keys--------------------------------- -- These are the keys to be used to scroll the camera around in-game. --]=] .. '\n' .. param(hotkeys_values, 'ingame_scroll_up') .. param(hotkeys_values, 'ingame_scroll_down') .. param(hotkeys_values, 'ingame_scroll_left') .. param(hotkeys_values, 'ingame_scroll_right') .. param(hotkeys_values, 'ingame_scroll_shift') .. [=[ --------------------------------------Zoom------------------------------------- -- These are keys used to zoom the camera in and out. --]=] .. '\n' .. param(hotkeys_values, 'ingame_zoom_in') .. param(hotkeys_values, 'ingame_zoom_in_more') .. param(hotkeys_values, 'ingame_zoom_out') .. param(hotkeys_values, 'ingame_zoom_out_more') .. param(hotkeys_values, 'ingame_reset_zoom') .. [=[ ----------------------------------In-Game Menus-------------------------------- -- These are quick keys to show the in-game menu bar and some other windows. --]=] .. '\n' .. param(hotkeys_values, 'ingame_showmenubar') .. param(hotkeys_values, 'ingame_showCheatWindow') .. param(hotkeys_values, 'ingame_loadMenu') .. param(hotkeys_values, 'ingame_saveMenu') .. param(hotkeys_values, 'ingame_jukebox') .. param(hotkeys_values, 'ingame_openFirstMessage') parts[2] = [=[ -- These pause and control the speed of the game. --]=] .. '\n' .. param(hotkeys_values, 'ingame_pause') .. param(hotkeys_values, 'ingame_gamespeed_slowest') .. param(hotkeys_values, 'ingame_gamespeed_slower') .. param(hotkeys_values, 'ingame_gamespeed_normal') .. param(hotkeys_values, 'ingame_gamespeed_max') .. param(hotkeys_values, 'ingame_gamespeed_thensome') .. param(hotkeys_values, 'ingame_gamespeed_speedup') .. [=[ ------------------------------In-Game Bottom Panel----------------------------- -- These open in-game panel windows like the town map or the build room dialog. --]=] .. '\n' .. param(hotkeys_values, 'ingame_panel_bankManager') .. param(hotkeys_values, 'ingame_panel_bankStats') .. param(hotkeys_values, 'ingame_panel_staffManage') .. param(hotkeys_values, 'ingame_panel_townMap') .. param(hotkeys_values, 'ingame_panel_casebook') .. param(hotkeys_values, 'ingame_panel_research') .. param(hotkeys_values, 'ingame_panel_status') .. param(hotkeys_values, 'ingame_panel_charts') .. param(hotkeys_values, 'ingame_panel_policy') .. param(hotkeys_values, 'ingame_panel_machineMenu') .. param(hotkeys_values, 'ingame_panel_adviserHistory') .. param(hotkeys_values, 'ingame_panel_map_alt') .. param(hotkeys_values, 'ingame_panel_research_alt') .. param(hotkeys_values, 'ingame_panel_casebook_alt') .. param(hotkeys_values, 'ingame_panel_casebook_alt02') .. param(hotkeys_values, 'ingame_panel_buildRoom') .. param(hotkeys_values, 'ingame_panel_furnishCorridor') .. param(hotkeys_values, 'ingame_panel_editRoom') .. param(hotkeys_values, 'ingame_panel_hireStaff') .. [=[ ----------------------------------Rotate Object-------------------------------- -- This key rotates objects while they are being placed. -- ]=] .. '\n' .. param(hotkeys_values, 'ingame_rotateobject') .. [=[ ----------------------------------Sell Object-------------------------------- -- This key sell objects while they are being picked up. -- ]=] .. '\n' .. param(hotkeys_values, 'ingame_sellPickedUpItem') .. [=[ -----------------------------------Quick Keys---------------------------------- -- These are keys for quick saving and loading, and for quickly restarting and -- quitting the level. --]=] .. '\n' .. param(hotkeys_values, 'ingame_quickSave') .. param(hotkeys_values, 'ingame_quickLoad') .. param(hotkeys_values, 'ingame_restartLevel') .. param(hotkeys_values, 'ingame_quitLevel') .. [=[ ---------------------------------Set Transparent------------------------------- -- Use these keys to make walls transparent, allowing you to see behind them. --]=] .. '\n' .. param(hotkeys_values, 'ingame_setTransparent') .. param(hotkeys_values, 'ingame_toggleTransparent') .. [=[ ]=] parts[3] = [=[ ----------------------------Store and Recall Position-------------------------- -- These keys store and recall camera positions. If you press the key(s) that -- correspond to "ingame_recallPosition_1" while looking over the -- operating room, for instance, and then you move the camera away from there, -- you can press "ingame_recallPosition_1" whenever you want to go back to -- the operating room instantly. --]=] .. '\n' .. param(hotkeys_values, 'ingame_storePosition_1') .. param(hotkeys_values, 'ingame_storePosition_2') .. param(hotkeys_values, 'ingame_storePosition_3') .. param(hotkeys_values, 'ingame_storePosition_4') .. param(hotkeys_values, 'ingame_storePosition_5') .. param(hotkeys_values, 'ingame_storePosition_6') .. param(hotkeys_values, 'ingame_storePosition_7') .. param(hotkeys_values, 'ingame_storePosition_8') .. param(hotkeys_values, 'ingame_storePosition_9') .. param(hotkeys_values, 'ingame_storePosition_0') .. param(hotkeys_values, 'ingame_recallPosition_1') .. param(hotkeys_values, 'ingame_recallPosition_2') .. param(hotkeys_values, 'ingame_recallPosition_3') .. param(hotkeys_values, 'ingame_recallPosition_4') .. param(hotkeys_values, 'ingame_recallPosition_5') .. param(hotkeys_values, 'ingame_recallPosition_6') .. param(hotkeys_values, 'ingame_recallPosition_7') .. param(hotkeys_values, 'ingame_recallPosition_8') .. param(hotkeys_values, 'ingame_recallPosition_9') .. param(hotkeys_values, 'ingame_recallPosition_0') .. [=[ ---------------------------------Toggle Various-------------------------------- -- These toggle various things. The names tell all. --]=] .. '\n' .. param(hotkeys_values, 'ingame_toggleAnnouncements') .. param(hotkeys_values, 'ingame_toggleSounds') .. param(hotkeys_values, 'ingame_toggleMusic') .. param(hotkeys_values, 'ingame_toggleAdvisor') .. param(hotkeys_values, 'ingame_toggleInfo') .. [=[ ------------------------------------Dump Log----------------------------------- -- These keys dump logs. And strings, if too much fiber was taken. --]=] .. '\n' .. param(hotkeys_values, 'ingame_poopLog') .. param(hotkeys_values, 'ingame_poopStrings') .. [=[ --------------------------------Patient, Go Home------------------------------- -- This sends a patient home. Also a good anime episode name. --]=] .. '\n' .. param(hotkeys_values, 'ingame_patient_gohome') .. [=[ ]=] return table.concat(parts) end local function apply_config_defaults(res) local config_defaults = new_config_defaults() for key, value in pairs(config_defaults) do if res[key] == nil then res[key] = value end end end local function apply_hotkeys_defaults(res) local hotkeys_defaults = new_hotkeys_defaults() for key, value in pairs(hotkeys_defaults) do if res[key] == nil then res[key] = value end end end local function open_for_write(path) if TheApp then return TheApp:writeToFileOrTmp(path) else return io.open(path, "w") end end local function save_config(path, values) local config_data = config_contents(values) local fi, err = open_for_write(path) if not fi then return nil, err end fi:write(config_data) fi:close() return true end local function save_hotkeys(path, values) local hotkeys_data = hotkeys_contents(values) local fi, err = open_for_write(path) if not fi then return nil, err end fi:write(hotkeys_data) fi:close() return true end local function load_config(path, res) res = res or {} local lfs = require("lfs") if not lfs.attributes(path) then save_config(path, new_config_defaults()) end local chunk, err = loadfile_envcall(path) if chunk then chunk(res) end apply_config_defaults(res) return res, err end local function load_hotkeys(path, res) res = res or {} if not lfs.attributes(path) then save_hotkeys(path, new_hotkeys_defaults()) end local chunk, err = loadfile_envcall(path) if chunk then chunk(res) end apply_hotkeys_defaults(res) return res, err end local config_filename, config_path = find_config() -- Hotkey filename. local hotkeys_name = "hotkeys.txt" -- Hotkey file with full path as string. local hotkeys_filename = pathconcat(config_path, hotkeys_name) return { config_filename = config_filename, config_defaults = new_config_defaults, load_config = load_config, save_config = save_config, hotkeys_filename = hotkeys_filename, hotkeys_defaults = new_hotkeys_defaults, load_hotkeys = load_hotkeys, save_hotkeys = save_hotkeys, } CorsixTH-0.70.0/CorsixTH/Lua/date.lua000066400000000000000000000213021522247547500171600ustar00rootroot00000000000000--[[ Copyright (c) 2018 Pavel "sofo" Schoffer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --[[ Date class is meant to encapsulate logic around months, years, days, hours. It should be able to do adjustments with regards to days in given month and so on. Date objects should be immutable and that is why date adjustments return new objects instead of modifying the current one. ]] class "Date" ---@type Date local Date = _G["Date"] local month_length = { 31, -- Jan 28, -- Feb (29 in leap years, but TH doesn't have leap years) 31, -- Mar 30, -- Apr 31, -- May 30, -- Jun 31, -- Jul 31, -- Aug 30, -- Sep 31, -- Oct 30, -- Nov 31, -- Dec } local hours_per_day = 50 -- STATIC --[[ Method returns the number of game hours in one day ! This should be use everywhere we query this information !return (number) number of hours in a day. ]] function Date.hoursPerDay() return hours_per_day end --[[ Method that returns the number of days of a month. -- --!param month (1..12) Month being queried. --!return Number of days in the queried month, ]] function Date.daysPerMonth(month) assert(month >= 1 and month <= 12, "Month " .. tostring(month) .. " is not a valid month.") return month_length[month] end -- PUBLIC --[[ Date constructor ! Date is initialized by setting year, month day and hour in this order the default day is 1-01-01T00 - if any of the components isn't set the default value is used. !param year (number) year of the new date !param month (number) month of the new date !param day (number) day of the new date !param hour (number) hour of the new date !return (Date) created object. ]] function Date:Date(year, month, day, hour) self._year = year or 1 self._month = month or 1 self._day = day or 1 self._hour = hour or 0 self:_adjustOverflow() end --[[ Returns the last day of the current month ! This method finds the correct last day for current month of self. This number is also the number of days within a month. Ignores leap years. !return (number) ]] function Date:lastDayOfMonth() return month_length[self._month] end --[[ Adds months ! Creates a copy of self with adjusted months. !param increment (number) number to adjust, can be negative !return (Date) ]] function Date:plusMonths(increment) local new_month = self._month + increment return Date(self._year, new_month, self._day, self._hour) end --[[ Adds days ! Creates a copy of self with adjusted days. !param increment (number) number to adjust, can be negative !return (Date) ]] function Date:plusDays(increment) local new_day = self._day + increment return Date(self._year, self._month, new_day, self._hour) end --[[ Adds years ! Creates a copy of self with adjusted years. !param increment (number) number to adjust, can be negative !return (Date) ]] function Date:plusYears(increment) local new_year = self._year + increment return Date(new_year, self._month, self._day, self._hour) end --[[ Adds hours ! Creates a copy of self with adjusted hours. !param increment (number) number to adjust, can be negative !return (Date) ]] function Date:plusHours(increment) local new_hour = self._hour + increment return Date(self._year, self._month, self._day, new_hour) end --[[ Returns the month of year ! Finds out what is a month of this year (1-12) !return (number) ]] function Date:monthOfYear() return self._month end --[[ Returns the day of month ! Finds out what is a current day in a date (1-31) !return (number) ]] function Date:dayOfMonth() return self._day end --[[ Returns the year ! Finds out what is a current year of this date (1-X) !return (number) ]] function Date:year() return self._year end --[[ Returns the hour of the day ! Finds out what is an hour of this date starting on 0 !return (number) ]] function Date:hourOfDay() return self._hour end --[[ Return string representation ! Returns string representation of the date in format y-mm-ddThh !return (string) ]] function Date:tostring() return string.format("%d-%02d-%02dT%02d", self._year, self._month, self._day, self._hour) end --[[ Checks if date is a last day of a month ! Finds out if the current day is a last day in current month with respect to different month lengths. !return (boolean) ]] function Date:isLastDayOfMonth() return self._day == self:lastDayOfMonth() end --[[ Checks if date is a last day of a year ! Finds out if the current day is a last day in current month and current month is a last month in a year. !return (boolean) ]] function Date:isLastDayOfYear() return self:isLastDayOfMonth() and self._month == 12 end --[[ Returns the month of the game ! Returns the number of months started since the start of the game. This converts all the years to months and add them together with the started months. !return (number) ]] function Date:monthOfGame() return (self._year - 1) * 12 + self._month end --[[ Clone the date ! Creates another instance of date with a same value !return (Date) ]] function Date:clone() return Date(self._year, self._month, self._day, self._hour) end --[[ Checks the date ! Checks the date with another passed as a parameter, but ignores time !param other (Date) The other day to be compared !return (boolean) ]] function Date:isSameDay(other) return self._year == other._year and self._month == other._month and self._day == other._day end -- METAMETHODS local Date_mt = Date._metatable function Date_mt.__eq(one, other) -- Checking for class instance crashes with infinite recusrion in Lua 5.3 if one.__eq ~= other.__eq then return false end return one:isSameDay(other) and one._hour == other._hour end function Date_mt.__lt(one, other) -- Checking for class instance crashes with infinite recusrion in Lua 5.3 if one.__eq ~= other.__eq then return false end if one._year ~= other._year then return one._year < other._year end if one._month ~= other._month then return one._month < other._month end if one._day ~= other._day then return one._day < other._day end return one._hour < other._hour end function Date_mt.__le(one, other) -- Checking for class instance crashes with infinite recusrion in Lua 5.3 if one.__eq ~= other.__eq then return false end if one._year ~= other._year then return one._year < other._year end if one._month ~= other._month then return one._month < other._month end if one._day ~= other._day then return one._day < other._day end return one._hour <= other._hour end -- PRIVATE --[[ PRIVATE Adjusts the hours overflows ! Method to deal with hour being more or less than valid value ]] function Date:_adjustHoursOverflow() while self._hour < 0 do self._hour = self._hour + hours_per_day self._day = self._day - 1 end while self._hour >= hours_per_day do self._hour = self._hour - hours_per_day self._day = self._day + 1 end self:_adjustDayOverflow() end --[[ PRIVATE Adjusts the days overflows ! Method to deal with day being more or less than valid value ]] function Date:_adjustDayOverflow() while self._day < 1 do self._month = self._month - 1 self:_adjustMonthOverflow() self._day = self._day + self:lastDayOfMonth() end while self._day > self:lastDayOfMonth() do self._day = self._day - self:lastDayOfMonth() self._month = self._month + 1 self:_adjustMonthOverflow() end end --[[ PRIVATE Adjusts the months overflows ! Method to deal with month being more or less than valid value ]] function Date:_adjustMonthOverflow() local monthIx = self._month - 1 self._year = self._year + math.floor(monthIx / 12) self._month = monthIx % 12 + 1 end --[[ PRIVATE Adjusts all the overflows ! Normalize date to fix all the overflows of hours, days and months. This method is a key to date adjustments. ]] function Date:_adjustOverflow() self:_adjustMonthOverflow() self:_adjustDayOverflow() self:_adjustHoursOverflow() end CorsixTH-0.70.0/CorsixTH/Lua/debug_script.lua000066400000000000000000000010121522247547500207110ustar00rootroot00000000000000--- -- This file can be executed with the RUN DEBUG SCRIPT menu option or hotkey. -- Each time the script is run the latest version will be loaded from disk. -- -- Like with the console you can reference clicked humanoids with the underscore -- global variable so for example: _:die() will make a clicked patient die. -- -- The run time App class instance can be referenced with its global variable -- "TheApp", with it you can reference other run time class instances like: -- TheApp.world -- -- Add your code below. --- CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/000077500000000000000000000000001522247547500175225ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/diag_blood_machine.lua000066400000000000000000000024231522247547500237750ustar00rootroot00000000000000--[[ Copyright (c) 2010 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "diag_blood_machine" disease.expertise_id = 37 disease.name = _S.diseases.diag_blood_machine.name disease.cure_price = 250 disease.pseudo = true disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/diag_cardiogram.lua000066400000000000000000000024161522247547500233240ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "diag_cardiogram" disease.expertise_id = 38 disease.name = _S.diseases.diag_cardiogram.name disease.cure_price = 150 disease.pseudo = true disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/diag_general_diag.lua000066400000000000000000000023661522247547500236210ustar00rootroot00000000000000--[[ Copyright (c) 2010 Miika-Petteri Matikainen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "diag_general_diag" disease.expertise_id = 41 disease.name = _S.diseases.diag_general_diag.name disease.cure_price = 150 disease.pseudo = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/diag_gp.lua000066400000000000000000000023471522247547500216250ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "diag_gp" disease.expertise_id = 1 disease.name = _S.diseases.general_practice.name disease.cure_price = 100 disease.pseudo = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/diag_psych.lua000066400000000000000000000024231522247547500223400ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "diag_psych" disease.expertise_id = 43 disease.name = _S.diseases.diag_psych.name disease.cure_price = 200 -- http://www.eudoxus.demon.co.uk/thc/tech.htm disease.pseudo = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/diag_scanner.lua000066400000000000000000000024101522247547500226370ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "diag_scanner" disease.expertise_id = 36 disease.name = _S.diseases.diag_scanner.name disease.cure_price = 300 disease.pseudo = true disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/diag_ultrascan.lua000066400000000000000000000024201522247547500232030ustar00rootroot00000000000000--[[ Copyright (c) 2010 Miika-Petteri Matikainen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "diag_ultrascan" disease.expertise_id = 40 disease.name = _S.diseases.diag_ultrascan.name disease.cure_price = 250 disease.pseudo = true disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/diag_ward.lua000066400000000000000000000023411522247547500221460ustar00rootroot00000000000000--[[ Copyright (c) 2010 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "diag_ward" disease.expertise_id = 42 disease.name = _S.diseases.diag_ward.name disease.cure_price = 100 disease.pseudo = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diagnosis/diag_x_ray.lua000066400000000000000000000024101522247547500223300ustar00rootroot00000000000000--[[ Copyright (c) 2010 Miika-Petteri Matikainen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "diag_x_ray" disease.expertise_id = 39 disease.name = _S.diseases.diag_x_ray.name disease.cure_price = 200 disease.pseudo = true disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/dialogs/000077500000000000000000000000001522247547500171645ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/dialogs/adviser.lua000066400000000000000000000274761522247547500213440ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") --! The (ideally) helpful advisor who pops up from the bottom dialog during a game. class "UIAdviser" (Window) ---@type UIAdviser local UIAdviser = _G["UIAdviser"] function UIAdviser:UIAdviser(ui) self:Window() local app = ui.app self.esc_closes = false self.modal_class = "adviser" self.tick_rate = app.world.tick_rate self.tick_timer = self.tick_rate -- Initialize tick timer self.frame = 1 -- Current frame self.number_frames = 4 -- Used for playing animation only once self.speech = nil -- Store what adviser is going to say self.queued_messages = {} -- There might be many messages in a row self.timer = nil -- Timer which hides adviser at the end self.message_history = {} -- Store past messages to be able to view them later self.message_history_limit = 20 -- Limit the number of messages stored -- There are 5 phases the adviser might be in on a given time point. -- Not visible, getting up, talking, idling, getting_down. self.phase = 0 self.ui = ui self.width = 80 self.height = 74 self.x = 378 self.y = -16 self.balloon_width = 0 self.panel_sprites = app.gfx:loadSpriteTable("Data", "Panel02V", true) self.black_font = app.gfx:loadFontAndSpriteTable("QData", "Font50V", nil, nil, { apply_ui_scale = true }) local th = TH.animation() self.th = th end function UIAdviser:messageIndexInHistory(message) for index, msg in ipairs(self.message_history) do if msg == message then return index end end return nil end --! Adds a message to the adviser's message history. --! If the history exceeds a certain limit, the oldest messages are removed. function UIAdviser:addMessageToHistory(speech) local message_index_in_history = self:messageIndexInHistory(speech) if message_index_in_history then -- If the message is already in history, remove it first table.remove(self.message_history, message_index_in_history) end -- Add the message at the top of the history table.insert(self.message_history, 1, speech) -- If the history exceeds the limit, remove the oldest messages (the last ones in the list) while #self.message_history > self.message_history_limit do table.remove(self.message_history, #self.message_history) end end --! Adds all queued messages to the adviser's message history. function UIAdviser:addQueuedMessagesToHistory() for _, message in ipairs(self.queued_messages) do self:addMessageToHistory(message.speech) end end --! Removes a message from the adviser's message history. function UIAdviser:removeMessageFromHistory(index) table.remove(self.message_history, index) end --! Deletes all messages from the adviser's message history. function UIAdviser:deleteAllMessagesFromHistory() self.message_history = {} end -- Shows the adviser by running the "popup" animation. -- Then moves on to the next phase automatically. function UIAdviser:show() self.phase = 1 self.th:setAnimation(self.ui.app.world.anims, 438, DrawFlags.Nearest) self.frame = 1 self.number_frames = 4 end -- Displays the text bubble along with the next message -- from the queue. function UIAdviser:talk() self.phase = 2 -- Preferably without the Nearest draw flag for a less pixelated look but -- without it if direct zoom is enabled and ui_scale is > 1 then there is -- artifacting around the mouth of the adviser. self.th:setAnimation(self.ui.app.world.anims, 460, DrawFlags.Nearest) self.frame = 1 self.timer = nil -- Reset the idle timer self.number_frames = 45 -- Fetch the next message from the queue. local best = 1 if self.queued_messages[1].priority then for i = 1, #self.queued_messages do if best ~= i and self.queued_messages[i].priority and self.queued_messages[best].priority < self.queued_messages[i].priority then best = i end end end local speech = self.queued_messages[best].speech self.stay_up = self.queued_messages[best].stay_up table.remove(self.queued_messages, best) self:addMessageToHistory(speech) self.speech = speech -- Calculate number of lines needed for the text. -- Each "/" at end of string indicates a blank line local number_lines = 3 local speech_trimmed = speech:gsub("/*$", "") number_lines = number_lines - (#speech - #speech_trimmed) speech = speech_trimmed -- Calculate balloon width from string length self.balloon_width = math.floor(#speech / number_lines) * 7 if self.balloon_width >= 420 then -- Balloon too large self.balloon_width = 420 elseif self.balloon_width <= 40 then -- Balloon too small self.balloon_width = 40 end end -- Makes the adviser idle for a while before disappearing. -- This means that the text bubble is removed. function UIAdviser:idle() self.phase = 3 -- Remove the bubble and start a timer for disappearance -- unless he should stay up until the next message. if not self.stay_up then self.speech = nil self.timer = 150 end end -- Hides the adviser by running the appropriate animation. function UIAdviser:hide() self.timer = nil self.phase = 4 self.th:setAnimation(self.ui.app.world.anims, 440, DrawFlags.Nearest) self.frame = 1 self.number_frames = 4 end --! Function checks if the adviser has been asked to say something already queued --!param speech (string) Text to check --!return (boolean) true if duplicate found function UIAdviser:checkForDuplicates(speech) local speech_to_check = speech.text -- Humanise for clarity for _, text in ipairs(self.queued_messages) do local speech_to_compare = text.speech -- Humanise for clarity if speech_to_compare == speech_to_check then return true end end end -- Makes the adviser say something --!param speech The table containing the text he should say and the priority. --!param talk_until_next_announce Whether he should stay up -- until the next say() call is made. Useful for the tutorial. --!param override_current Cancels previous messages (if any) immediately -- and shows this new one instead. function UIAdviser:say(speech, talk_until_next_announce, override_current) assert(type(speech) == "table") if not self.ui.app.config.adviser_disabled then -- Drop duplicate messages unless overridden if not override_current and self:checkForDuplicates(speech) then return end -- Queue the new message self.queued_messages[#self.queued_messages + 1] = { speech = speech.text, stay_up = talk_until_next_announce, priority = speech.priority } if self.phase == 0 then -- The adviser is not active at all at the moment. self:show() elseif self.phase == 3 then -- He's not talking, so we can show the new message. self:talk() elseif self.phase == 4 then -- He's getting down. Let him do that and then tell him -- to go up again. self.up_again = true elseif override_current then -- He was saying/was about to say something else. Discard those messages. self.queued_messages[1] = self.queued_messages[#self.queued_messages] while #self.queued_messages > 1 do table.remove(self.queued_messages) end -- Now say the new thing instead. self:talk() end -- If none of the above apply the message is now queued and will be shown in -- due time. end end function UIAdviser:draw(canvas, x, y) Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = x + self.x * s, y + self.y * s self.th:setScaleFactor(s) self.th:draw(canvas, x + 200 * s, y) if self.phase == 2 then -- Draw balloon only in the "talk" phase. local x_left_sprite for dx = 0, self.balloon_width * s, 16 * s do x_left_sprite = x + 139 * s - dx self.panel_sprites:draw(canvas, 38, x_left_sprite, y - 25 * s, { scaleFactor = s }) end self.panel_sprites:draw(canvas, 37, x_left_sprite - 16 * s, y - 25 * s, { scaleFactor = s }) self.panel_sprites:draw(canvas, 39, x + 155 * s, y - 40 * s, { scaleFactor = s }) -- Draw text self.black_font:drawWrapped(canvas, self.speech, x_left_sprite - 8 * s, y - 20 * s, self.balloon_width * s + 60 * s) end end function UIAdviser:onMouseDown(button, x, y) -- If the adviser is not up, don't do anything. if self.phase == 0 or self.phase == 4 then return Window.onMouseDown(self, button, x, y) end local s = TheApp.config.ui_scale -- Normal operation outside the adviser bounds if x + self.balloon_width * s < 128 * s or x > 200 * s or y + self.y * s > 0 or y + self.y * s + 40 * s < 0 then if x < self.x * s - 200 * s or y < self.y * s - 40 * s or x > self.x * s - 200 * s + self.width * s or y > self.y * s + self.height * s - 40 * s then return Window.onMouseDown(self, button, x, y) end end -- Dismiss the current message if left click. If right click, -- dismiss the whole queue. if button == "left" then if #self.queued_messages > 0 then self:talk() else self:hide() end elseif button == "right" then self:hide() -- Dump dismissed messages to history self:addQueuedMessagesToHistory() self.queued_messages = {} end end function UIAdviser:onTick() if self.timer == 0 then self:hide() -- Timer ends, so we hide the adviser elseif self.timer ~= nil then self.timer = self.timer - 1 end if self.frame < self.number_frames then if self.tick_timer == 0 then -- Used for making a smooth animation self.tick_timer = self.tick_rate -- If no animation set (adviser not being shown already) if self.th:getAnimation() ~= 0 then self.th:tick() self.frame = self.frame + 1 end else self.tick_timer = self.tick_timer - 1 end elseif self.frame == self.number_frames then if self.phase == 1 then -- Adviser is now up, let him speak. self:talk() elseif self.phase == 2 then -- Adviser finished to talk so make him idle unless -- there's another message waiting. if #self.queued_messages > 0 then -- Show the next queued message self:talk() elseif not self.stay_up then -- Continue to talk if stay_up is set self:idle() end elseif self.phase == 4 then -- The adviser is getting down so we want to hide him, but we have -- to wait until the animation ends. if self.up_again then -- Another message arrived while getting down. self:show() self.up_again = false else self.phase = 0 self.th:makeInvisible() end end end end function UIAdviser:afterLoad(old, new) if old < 47 then self.enabled = true end if old < 236 then self.black_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font50V", nil, nil, { apply_ui_scale = true }) end if old < 246 then self.message_history = {} self.message_history_limit = 20 end Window.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/bottom_panel.lua000066400000000000000000001074771522247547500223720ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! The multi-purpose panel for launching dialogs / screens and dynamic information. class "UIBottomPanel" (Window) ---@type UIBottomPanel local UIBottomPanel = _G["UIBottomPanel"] local MESSAGE_DOOR_FULLY_OPEN = 0 local MESSAGE_DOOR_FULLY_SHUT = 22 local FACTORY_ICON_WIDTH = 30 function UIBottomPanel:UIBottomPanel(ui) self:Window() local app = ui.app self.ui = ui self.world = app.world self.on_top = false self:setSize(640, 48) self:setDefaultPosition(0.5, -0.1) self:_initFonts(app.gfx) self.message_door = { closed_amount = MESSAGE_DOOR_FULLY_SHUT, next_action_delay = 0 } -- Visible fax panels on the left side of the bottom panel self.message_windows = {} -- Queued fax panels waiting to be shown self.message_queue = {} self.default_button_sound = "selectx.wav" self.countdown = 0 self:drawPanels() self:registerKeyHandlers() end function UIBottomPanel:machineMenuButtonExists() local config = self.ui.app.config -- Minimal screen width for a case where machine menu button exists is 676 pixels if config.width / TheApp.config.ui_scale > 676 and config.machine_menu_button then return true end return false end function UIBottomPanel:onChangeResolution() Window.onChangeResolution(self) self:removeAllPanels() self:drawPanels() end function UIBottomPanel:drawPanels() self.bank_button = self:addPanel( 1, 0, 0):makeToggleButton(6, 6, 35, 36, 2, self.dialogBankManager, nil, self.dialogBankStats):setTooltip(_S.tooltip.toolbar.bank_button) self:addPanel( 3, 40, 0) -- Background for balance, rep and date self:addPanel( 4, 206, 0):makeButton(6, 6, 35, 36, 5, self.dialogBuildRoom):setTooltip(_S.tooltip.toolbar.rooms) self:addPanel( 6, 248, 0):makeButton(1, 6, 35, 36, 7, self.dialogFurnishCorridor):setTooltip(_S.tooltip.toolbar.objects) self:addPanel( 8, 285, 0):makeButton(1, 6, 35, 36, 9, self.editRoom) :setSound():setTooltip(_S.tooltip.toolbar.edit) -- Remove default sound for this button self:addPanel(10, 322, 0):makeButton(1, 6, 35, 36, 11, self.dialogHireStaff):setTooltip(_S.tooltip.toolbar.hire) -- The dynamic info bar self:addPanel(12, 364, 0) -- If there is a machine menu button, then lets adjust bottom panel width so it can fit if self:machineMenuButtonExists() then self.width = 676 for x = 377, 660, 10 do self:addPanel(13, x, 0) end self:addPanel(14, 665, 0) self.offset = 38 else self.width = 640 for x = 377, 630, 10 do self:addPanel(13, x, 0) end self:addPanel(14, 627, 0) self.offset = 0 end -- Buttons that are shown instead of the dynamic info bar when hovering over it. local panels = {} local buttons = {} local app = self.ui.app panels[1] = self:addPanel(15, 364, 0) -- Staff management button buttons[1] = panels[1]:makeToggleButton(6, 6, 35, 36, 16, self.dialogStaffManagement):setTooltip(_S.tooltip.toolbar.staff_list) if self:machineMenuButtonExists() then -- Sprites for machine menu button doesn't exist in original game. Let's import them from aux_ui.dat and draw local aux_sprites = app.gfx:loadSpriteTable("Bitmap", "aux_ui", true) self:addPanel(0, 407, 0):makeToggleButton(2, 6, 36, 36, 0, self.dialogMachineMenu) :setSound() -- override :setTooltip(_S.tooltip.toolbar.machine_menu) .panel_for_sprite.custom_draw = --[[persistable:machine_menu_buttons]] function(panel, canvas, x, y) local s = TheApp.config.ui_scale x = x + panel.x * s y = y + panel.y * s panel.window.panel_sprites:draw(canvas, panel.sprite_index, x, y, { scaleFactor = s }) local btn = panel.window.active_button if panels[1].visible then local w = self.ui:getWindow(UIMachineMenu) if w or btn and btn.panel_for_sprite == panel and btn.active then aux_sprites:draw(canvas, 23, x, y, { scaleFactor = s }) else aux_sprites:draw(canvas, 22, x, y, { scaleFactor = s }) end end end end panels[2] = self:addPanel(17, 407 + self.offset, 0) -- Town map button buttons[2] = panels[2]:makeToggleButton(1, 6, 35, 36, 18, self.dialogTownMap):setTooltip(_S.tooltip.toolbar.town_map) panels[3] = self:addPanel(19, 445 + self.offset, 0) -- Casebook button buttons[3] = panels[3]:makeToggleButton(1, 6, 35, 36, 20, self.dialogDrugCasebook):setTooltip(_S.tooltip.toolbar.casebook) panels[4] = self:addPanel(21, 483 + self.offset, 0) -- Research button buttons[4] = panels[4]:makeToggleButton(1, 6, 35, 36, 22, self.dialogResearch) :setSound():setTooltip(_S.tooltip.toolbar.research) -- Remove default sound for this button panels[5] = self:addPanel(23, 521 + self.offset, 0) -- Status button buttons[5] = panels[5]:makeToggleButton(1, 6, 35, 36, 24, self.dialogStatus):setTooltip(_S.tooltip.toolbar.status) panels[6] = self:addPanel(25, 559 + self.offset, 0) -- Charts button buttons[6] = panels[6]:makeToggleButton(1, 6, 35, 36, 26, self.dialogCharts):setTooltip(_S.tooltip.toolbar.charts) panels[7] = self:addPanel(27, 597 + self.offset, 0) -- Policy button buttons[7] = panels[7]:makeToggleButton(1, 6, 35, 36, 28, self.dialogPolicy):setTooltip(_S.tooltip.toolbar.policy) for _, panel in ipairs(panels) do panel.visible = false end self.additional_panels = panels self.additional_buttons = buttons self:makeTooltip(_S.tooltip.toolbar.balance, 41, 5, 137, 28) self:makeTooltip(_S.tooltip.toolbar.date, 140, 5, 200, 42) self:makeDynamicTooltip(--[[persistable:reputation_tooltip]] function() return _S.tooltip.toolbar.reputation .. " (" .. self.ui.hospital.reputation .. ")" end, 41, 30, 137, 42) end function UIBottomPanel:_initFonts(gfx) local date_label_color = { red = 175, green = 50, blue = 15 } local pause_label_color = { red = 35, green = 138, blue = 173 } self.panel_sprites = gfx:loadSpriteTable("Data", "Panel02V", true) self.money_font = gfx:loadFontAndSpriteTable("QData", "Font05V", nil, nil, { apply_ui_scale = true }) self.date_font = gfx:loadFontAndSpriteTable("QData", "Font16V", nil, nil, {ttf_color = date_label_color, apply_ui_scale = true}) self.white_font = gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, {y_sep = -2, apply_ui_scale = true}) self.pause_font = gfx:loadFontAndSpriteTable("QData", "Font124V", nil, nil, {ttf_color = pause_label_color, apply_ui_scale = true}) end function UIBottomPanel:registerKeyHandlers() local ui = self.ui local buttons = self.additional_buttons -- The bottom panel hotkeys. ui:addKeyHandler("ingame_panel_bankManager", self.bank_button, self.bank_button.handleClick, "left") -- bank manager ui:addKeyHandler("ingame_panel_bankStats", self.bank_button, self.bank_button.handleClick, "right") -- bank stats ui:addKeyHandler("ingame_panel_staffManage", buttons[1], buttons[1].handleClick, "left") -- staff management ui:addKeyHandler("ingame_panel_townMap", buttons[2], buttons[2].handleClick, "left") -- town map ui:addKeyHandler("ingame_panel_casebook", buttons[3], buttons[3].handleClick, "left") -- casebook ui:addKeyHandler("ingame_panel_research", buttons[4], buttons[4].handleClick, "left") -- research ui:addKeyHandler("ingame_panel_status", buttons[5], buttons[5].handleClick, "left") -- status ui:addKeyHandler("ingame_panel_charts", buttons[6], buttons[6].handleClick, "left") -- charts ui:addKeyHandler("ingame_panel_policy", buttons[7], buttons[7].handleClick, "left") -- policy ui:addKeyHandler("ingame_panel_machineMenu", self, self.dialogMachineMenu) -- machine menu -- Hotkeys for building a room, furnishing the corridor, editing a room, and hiring staff. ui:addKeyHandler("ingame_panel_buildRoom", self, self.dialogBuildRoom) -- Build room. ui:addKeyHandler("ingame_panel_furnishCorridor", self, self.dialogFurnishCorridor) -- Furnish corridor. ui:addKeyHandler("ingame_panel_editRoom", self, self.editRoom) -- Edit room. ui:addKeyHandler("ingame_panel_hireStaff", self, self.dialogHireStaff) -- Hire staff. -- Alternate keyboard shortcuts for some of the fullscreen windows. ui:addKeyHandler("ingame_panel_map_alt", buttons[2], buttons[2].handleClick, "left") -- town map ui:addKeyHandler("ingame_panel_research_alt", buttons[4], buttons[4].handleClick, "left") -- research local config = ui.app.config if not config.volume_opens_casebook then ui:addKeyHandler("ingame_panel_casebook_alt", buttons[3], buttons[3].handleClick, "left") -- casebook else ui:addKeyHandler("ingame_panel_casebook_alt02", buttons[3], buttons[3].handleClick, "left") -- casebook end ui:addKeyHandler("ingame_loadMenu", self, self.openLoad) -- load saved game menu ui:addKeyHandler("ingame_saveMenu", self, self.openSave) -- load create save menu ui:addKeyHandler("ingame_restartLevel", self, self.restart) -- restart the level ui:addKeyHandler("ingame_quitLevel", self, self.quit) -- quit the game and return to main menu ui:addKeyHandler("ingame_quickSave", self, self.quickSave) -- quick save ui:addKeyHandler("ingame_quickLoad", self, self.quickLoad) -- load last quick save -- misc. keyhandlers ui:addKeyHandler("ingame_openFirstMessage", self, self.openFirstMessage) -- message ui:addKeyHandler("ingame_toggleInfo", self, self.toggleInformation) -- information when you first build ui:addKeyHandler("ingame_jukebox", self, self.openJukebox) -- jukebox ui:addKeyHandler("ingame_panel_adviserHistory", self, self.dialogAdviserHistory) -- adviser history end function UIBottomPanel:openJukebox() if self.ui.app.config.audio then self.ui:addWindow(UIJukebox(self.ui.app)) end end function UIBottomPanel:openSave() self.ui:addWindow(UISaveGame(self.ui)) end function UIBottomPanel:openLoad() self.ui:addWindow(UILoadGame(self.ui, "game")) end function UIBottomPanel:quickSave() self.ui.app:quickSave() end function UIBottomPanel:quickLoad() self.ui.app:quickLoad() end function UIBottomPanel:restart() self.ui.app:restart() end function UIBottomPanel:quit() self.ui:quit() end function UIBottomPanel:draw(canvas, x, y) Window.draw(self, canvas, x, y) -- Draw balance with temporary offset in unicode languages local s = TheApp.config.ui_scale x, y = x + self.x * s, y + self.y * s local offset_x, offset_y = 0, 0 if self.ui.app.gfx:drawNumbersFromUnicode() then offset_x = 4 offset_y = 2 end local balance = math.floor(self.ui.hospital.balance) local i = 7 - tostring(balance):len() -- Indent balances under 100k for digit in ("%7i"):format(balance):gmatch("[-0-9]") do self.money_font:draw(canvas, digit, x + offset_x * s + 44 * s + i * 13 * s, y + offset_y * s + 9 * s) i = i + 1 end local game_date = self.world:date() local month, day = game_date:monthOfYear(), game_date:dayOfMonth() self.date_font:draw(canvas, _S.date_format.daymonth:format(day, month), x + 140 * s, y + 20 * s, 60 * s, 0) -- Draw possible information in the dynamic info bar if not self.additional_panels[1].visible then self:drawDynamicInfo(canvas, x + 364 * s, y) end -- Draw the fax door if it is not fully open if self.message_door.closed_amount ~= MESSAGE_DOOR_FULLY_OPEN then self.panel_sprites:draw(canvas, 40, x + 177 * s, y + 1, { scaleFactor = s }) for dx = 0, self.message_door.closed_amount do self.panel_sprites:draw(canvas, 41, x + 179 * s + dx * s, y + 1 * s, { scaleFactor = s }) end if self.message_door.closed_amount == MESSAGE_DOOR_FULLY_SHUT then self.panel_sprites:draw(canvas, 42, x + 201 * s, y + 1 * s, { scaleFactor = s }) end end self:drawReputationMeter(canvas, x + 55 * s, y + 35 * s) end function UIBottomPanel:setPosition(x, y) -- Lock to bottom of screen return Window.setPosition(self, x, -0.1) end -- Draws the hospital reputation meter on canvas. -- x_left is the leftmost x-coordinate of the reputation meter -- y is the y-coordinate of the reputation meter function UIBottomPanel:drawReputationMeter(canvas, x_left, y) local s = TheApp.config.ui_scale local width = 65 * s -- Reputation meter width local step = width / (self.ui.hospital.reputation_max - self.ui.hospital.reputation_min) self.panel_sprites:draw(canvas, 36, x_left + math.floor(step * (self.ui.hospital.reputation - self.ui.hospital.reputation_min)), y, { scaleFactor = s }) end --! Adds dynamic text to the bottom panel based on cursor position --!param canvas --!param x (num) coordinate --!param y (num) coordinate function UIBottomPanel:drawDynamicInfo(canvas, x, y) local s = TheApp.config.ui_scale if self.world:isCurrentSpeed("Pause") then if not self.world.user_actions_allowed then -- Original pause behaviour, show pause text self.pause_font:drawWrapped(canvas, _S.misc.pause, x + 10 * s, y + 14 * s, 255 * s, "center") return elseif not (self.dynamic_info and self.dynamic_info["text"]) then -- User allows editing while paused, only show pause text where dynamic text not present self.pause_font:drawWrapped(canvas, _S.misc.pause, x + 10 * s, y + 14 * s, 255 * s, "center") return end end if not (self.dynamic_info and self.dynamic_info["text"]) then return end local info = self.dynamic_info local font = self.white_font local dynamic_info_panel_x = 364 local progress_bar_r_offset = 11 local progress_bar_width = 100 local w = x + (self.width - dynamic_info_panel_x) * s for i, text in ipairs(info["text"]) do font:drawWrapped(canvas, text, x + 20 * s, y + 10 * i * s, 240 * s) if i == #info["text"] and info["progress"] then local white = canvas:mapRGB(255, 255, 255) local black = canvas:mapRGB(0, 0, 0) local orange = canvas:mapRGB(221, 83, 0) canvas:drawRect(white, w - (progress_bar_width + progress_bar_r_offset + 1) * s, y + 10 * i * s, 100 * s, 10 * s) canvas:drawRect(black, w - (progress_bar_width + progress_bar_r_offset) * s, y + s + 10 * i * s, 98 * s, 8 * s) canvas:drawRect(orange, w - (progress_bar_width + progress_bar_r_offset) * s, y + s + 10 * i * s, math.floor(98 * info["progress"] * s), 8 * s) if info["dividers"] then for _, value in ipairs(info["dividers"]) do canvas:drawRect(white, w - (progress_bar_width+progress_bar_r_offset) * s + math.floor(value * 100 * s), y + 10 * i * s, s, 10 * s) end end end end end --! Update the information shown in the information box on the panel. --! --! If the info is nil then a cooldown timer is used before removing the --! information from the display. --! --!param info (table) A table containing the information to display. The text --! key is required and contains an array of lines to show. An optional --! progress key may be given to draw a progress bar, following the text and --! and an array of dividers may be provided to draw extra vertical lines in --! the progress bar. --! --! info = { --! text: { "He's not the saviour", "He's very naughty boy" }, --! progress: 50, --! dividers: { 25, 50, 75 } --! } function UIBottomPanel:setDynamicInfo(info) if info and not info["text"] then self.world:gameLog("") self.world:gameLog("Dynamic info is missing text!") self.world:gameLog("Please report this issue including the call stack below.") self.world:gameLog(debug.traceback()) return end if not info then -- dynamic info hide countdown value. 25 = ~1 second self.countdown = 25 else self.countdown = nil self.dynamic_info = info end end function UIBottomPanel:onMouseMove(x, y, dx, dy) local repaint = Window.onMouseMove(self, x, y, dx, dy) if self:showAdditionalButtons(x, y) then repaint = true end return repaint end function UIBottomPanel:showAdditionalButtons(x, y) local panels = self.additional_panels if self:hitTest(x, y) then -- Inside the panel if not panels[1].visible then -- Are the buttons already shown? for _, panel in ipairs(panels) do panel.visible = true end end else -- Outside the rectangle if panels[1].visible then -- Are the buttons already invisible? for _, panel in ipairs(panels) do panel.visible = false end end end end function UIBottomPanel:hitTest(x, y, x_offset) local s = TheApp.config.ui_scale return x >= (x_offset and x_offset * s or 0) and y >= 0 and x < self.width * s and y < self.height * s end --! Queue a fax notification message to appear. --! The arguments specify a message, which is added to a FIFO queue, and will -- appear on screen once there is space. --!param type (string) The type of message, can be: "emergency", "epidemy", "personality", "information", "disease", "report" or "strike" --!param message (table or number) If type == "strike", the amount of pay rise. Else a list of texts to display, including a "choices" table with choices. See below for structure. --!param owner (object or nil) Some messages are related to one staff or patient or epidemic. Otherwise this is nil. --!param timeout (number or nil) If given, the message will expire after that many world ticks and be removed. --!param default_choice (number or nil) If given, the choice with this number will be executed on expiration of the message. --!param callback (function or nil) If given, it will be called when the message is closed. --! Structure of message (except strike): -- message = { -- { text = "first line of text", offset (integer, optional) } -- { text = "second line of text", offset (integer, optional) } -- ... -- choices = { -- { text = "first choice", choice = "choice_type", enabled = true or false (optional, defaults to true) } -- ... -- } -- } function UIBottomPanel:queueMessage(type, message, owner, timeout, default_choice, callback) -- Show a helpful message if there has been no messages before - only in campaign though if not self.ui.hospital.message_popup and tonumber(self.world.map.level_number) then self.world.ui.adviser:say(_A.information.fax_received) self.ui.hospital.message_popup = true end local --[[persistable:bottom_panel_message_window_close]] function onClose(this_icon) local this_icon_index for i, icon in ipairs(self.message_windows) do -- If icon position found if this_icon_index ~= nil then -- Shift all icons that are on the right to the left -- The '_factoryIconWitdh()' call is used for compatibility with 0.69 saves and older -- where FACTORY_ICON_WIDTH was not yet declared when the closure was created. icon:setXLimit(1 + (i - 2) * self._factoryIconWitdh()) elseif icon == this_icon then this_icon_index = i end end if this_icon_index then table.remove(self.message_windows, this_icon_index) end self:deleteMessage(nil, this_icon) end local message_info = { type = type, message = message, owner = owner, timeout = timeout, default_choice = default_choice, callback = callback, } if self:canQueueFax(message_info) then self.message_queue[#self.message_queue + 1] = message_info -- Create the drawer message icon, note this does not show it to the player on creation. local drawer_icon = UIMessage(self.ui, 175, nil, onClose, message_info.type, message_info.message, message_info.owner, message_info.timeout, message_info.default_choice, message_info.callback) message_info["drawer_icon"] = drawer_icon -- Сreate reference to message in owner if owner then owner.message = message end else self:cancelFax(message_info.type) end end function UIBottomPanel:_factoryIconWitdh() return FACTORY_ICON_WIDTH end --[[ A fax can be queued if the event the fax causes does not affect an event caused by any other fax that is queued. i.e both emergency and epidemics use the timer, so both faxes cannot appear at the same time. @param fax (table) the fax we want to determine if can be queued. @return true if fax can be queued, false otherwise (boolean) ]] function UIBottomPanel:canQueueFax(fax) --[[ Determine if fax of a particular type is queued either in the message queue or the message window (ui) @param fax_type (string) the fax type to check if any queued @return true if any of fax_type is queued false otherwise (boolean) ]] local function isFaxTypeQueued(fax_type) -- Check the queued messages for _, fax_msg in ipairs(self.message_queue) do if fax_msg.type == fax_type then return true end end -- Then the messages displayed on the bottom bar for _, fax_msg in ipairs(self.message_windows) do if fax_msg.type == fax_type then return true end end return false end if fax.type == "epidemy" then if isFaxTypeQueued("emergency") then return false end elseif fax.type == "emergency" then if isFaxTypeQueued("epidemy") then return false end end return true end --[[ Cancels a fax of a particular type currently only "emergency" and "epidemy" Handles the cancelling of the event which the fax pertains to. @param fax_type (string) type of fax event to be cancelled]] function UIBottomPanel:cancelFax(fax_type) local hospital = self.ui.hospital if fax_type == "epidemy" then hospital.epidemic:clearAllInfectedPatients() hospital.epidemic = nil elseif fax_type == "emergency" then self.world:nextEmergency() end end -- Opens the last available message. Currently used to open the level completed message. function UIBottomPanel:openLastMessage() if #self.message_queue > 0 then self:_showMessageIcon(#self.message_queue) end self.message_windows[#self.message_windows]:openMessage() end -- Return the index of the first fax message in the queue that is suitable to be -- shown, and nil if there are none. A message is suitable to be shown if there -- are less than 5 currently shown messages, no message of the same type is -- already shown. function UIBottomPanel:_findMessageToShow() if #self.message_windows >= 5 then return nil end local shown_types = {} for _, fax_msg in ipairs(self.message_windows) do shown_types[fax_msg.type] = true end for i, fax_msg in ipairs(self.message_queue) do if not shown_types[fax_msg.type] then return i end end return nil end -- Opens the first available message in the list of message_windows. function UIBottomPanel:openFirstMessage() if #self.message_windows > 0 then self.message_windows[1]:openMessage() end end --! Removes a message from the message queue (for example if a room is built before the player -- says what to do with the patient. --!param owner (object) optional message owner --!param icon (object) optional drawer icon object --!return (boolean) true if message was removed function UIBottomPanel:deleteMessage(owner, icon) assert(owner or icon, "Both owner and icon are nil!") -- A message can only ever exist in either the message queue or in message windows. Once it -- is found, we don't need to check the other. for i, msg_info in ipairs(self.message_queue) do if (owner and msg_info.owner == owner) or (icon and msg_info.drawer_icon == icon) then table.remove(self.message_queue, i) -- TODO: restructure message_queue to contain UIMessage objects already, -- so this special handling isn't required. msg_info.drawer_icon.onClose = nil msg_info.drawer_icon = nil if msg_info.owner then msg_info.owner.message = nil end return true end end for _, drawer_icon in ipairs(self.message_windows) do if (owner and drawer_icon.owner == owner) or (icon and drawer_icon == icon) then drawer_icon:removeMessage() return true end end return false end --! Pop the message with the given index from the message queue and turn it into -- an actual message window; if no index is provided the first suitable message -- in the queue is popped. --!param index (integer|nil) the index in the message_queue to pop function UIBottomPanel:_showMessageIcon(index) if not index then index = self:_findMessageToShow() end local message_windows = self.message_windows local message_info = index and self.message_queue[index] if not message_info then return end local drawer_icon = message_info.drawer_icon drawer_icon:setXLimit(1 + #message_windows * FACTORY_ICON_WIDTH) message_windows[#message_windows + 1] = drawer_icon self:addWindow(drawer_icon) self.ui:playSound("NewFax.wav") table.remove(self.message_queue, index) -- Delete element of the queue end function UIBottomPanel:onTick() -- The dynamic info bar is there a while longer when hovering an entity has stopped if self.countdown then if self.countdown < 1 then self.dynamic_info = nil -- If there is no info to display, and the app is tracking FPS, show that local fps = self.ui.app:getFPS() if fps then self.dynamic_info = {text = { ("FPS: %i"):format(math.floor(fps + 0.5) or 0), ("Lua GC: %.1f Kb"):format(collectgarbage("count") or 0), ("Entities: %i"):format(#self.ui.app.world.entities or 0), }} self.countdown = 1 end else self.countdown = self.countdown - 1 end end self:_messageDoorTick() Window.onTick(self) end function UIBottomPanel:_messageDoorTick() if self.message_door.next_action_delay > 0 then self.message_door.next_action_delay = self.message_door.next_action_delay - 1 return end local msg_to_show = self:_findMessageToShow() if msg_to_show and self.message_door.closed_amount == MESSAGE_DOOR_FULLY_OPEN then self:_showMessageIcon() self.message_door.next_action_delay = 9 return end if msg_to_show and self.message_door.closed_amount > MESSAGE_DOOR_FULLY_OPEN then self.message_door.closed_amount = self.message_door.closed_amount - 1 elseif not msg_to_show and self.message_door.closed_amount < MESSAGE_DOOR_FULLY_SHUT then self.message_door.closed_amount = self.message_door.closed_amount + 1 end end function UIBottomPanel:dialogBankManager(enable) self:dialogBankCommon(enable) end function UIBottomPanel:dialogBankStats(enable) self:dialogBankCommon(enable, true) end function UIBottomPanel:dialogBankCommon(enable, stats) if not self.world.user_actions_allowed then self:updateButtonStates() return end if enable then self:addDialog("UIBankManager", stats and "showStatistics") else local w = self.ui:getWindow(UIBankManager) if w then if not stats and w.showingStatistics then w:hideStatistics() elseif stats and not w.showingStatistics then w:showStatistics() else w:close() end self:updateButtonStates() end end end function UIBottomPanel:dialogBuildRoom() if self.world.user_actions_allowed then local w = self.ui:getWindow(UIBuildRoom) local fullscreen = self.ui:getWindow(UIFullscreen) if w then if fullscreen then fullscreen:close() else w:close() end else if fullscreen then fullscreen:close() end local dlg = UIBuildRoom(self.ui) self.ui:setEditRoom(false) self.ui:addWindow(dlg) self.ui:tutorialStep(3, 1, 2) end end end function UIBottomPanel:dialogFurnishCorridor() if self.world.user_actions_allowed then local w = self.ui:getWindow(UIFurnishCorridor) local fullscreen = self.ui:getWindow(UIFullscreen) if w then if fullscreen then fullscreen:close() else w:close() end else if fullscreen then fullscreen:close() end local dlg = UIFurnishCorridor(self.ui) self.ui:setEditRoom(false) self.ui:addWindow(dlg) self.ui:tutorialStep(1, 1, 2) end end end function UIBottomPanel:dialogHireStaff() if self.world.user_actions_allowed then local w = self.ui:getWindow(UIHireStaff) local fullscreen = self.ui:getWindow(UIFullscreen) if w then if fullscreen then fullscreen:close() else w:close() end else if fullscreen then fullscreen:close() end local dlg = UIHireStaff(self.ui) self.ui:setEditRoom(false) self.ui:addWindow(dlg) self.ui:tutorialStep(2, 1, 2) self.ui:tutorialStep(4, 1, 2) end end end function UIBottomPanel:dialogStaffManagement(enable) if not self.world.user_actions_allowed then self:updateButtonStates() return end if enable then self:addDialog("UIStaffManagement") else local w = self.ui:getWindow(UIStaffManagement) if w then w:close() end end end function UIBottomPanel:dialogTownMap(enable) if not self.world.user_actions_allowed then self:updateButtonStates() return end if enable then self:addDialog("UITownMap") else local w = self.ui:getWindow(UITownMap) if w then w:close() end end end function UIBottomPanel:dialogDrugCasebook(enable) if not self.world.user_actions_allowed then self:updateButtonStates() return end if enable then self:addDialog("UICasebook") else local w = self.ui:getWindow(UICasebook) if w then w:close() end end end function UIBottomPanel:dialogResearch(enable) if not self.world.user_actions_allowed then self:updateButtonStates() self.ui:playSound(self.ui.hospital.research_dep_built and "selectx.wav" or "wrong2.wav") return end if TheApp.using_demo_files then self.ui:addWindow(UIInformation(self.ui, {_S.errors.dialog_missing_graphics})) end if self.ui.hospital.research_dep_built then if enable then self:addDialog("UIResearch") else local w = self.ui:getWindow(UIResearch) if w then w:close() end end self.ui:playSound("selectx.wav") else self.ui:playSound("wrong2.wav") self:updateButtonStates() self:giveResearchAdvice() end end function UIBottomPanel:giveResearchAdvice() local can_build_research = false for _, room in ipairs(self.ui.app.world.available_rooms) do if room.class == "ResearchRoom" then can_build_research = true break end end local msg = can_build_research and _A.warnings.research_screen_open_1 or _A.warnings.research_screen_open_2 if not TheApp.using_demo_files then self.ui.adviser:say(msg) end end function UIBottomPanel:dialogStatus(enable) if not self.world.user_actions_allowed then self:updateButtonStates() return end if enable then self:addDialog("UIProgressReport") else local w = self.ui:getWindow(UIProgressReport) if w then w:close() end end end function UIBottomPanel:dialogCharts(enable) if not self.world.user_actions_allowed then self:updateButtonStates() return end if enable then self:addDialog("UIGraphs") else local w = self.ui:getWindow(UIGraphs) if w then w:close() end end end function UIBottomPanel:dialogPolicy(enable) if not self.world.user_actions_allowed then self:updateButtonStates() return end if enable then self:addDialog("UIPolicy") else local w = self.ui:getWindow(UIPolicy) if w then w:close() end end end function UIBottomPanel:dialogMachineMenu(enable) if not self.world.user_actions_allowed then self:updateButtonStates() self.ui:playSound("selectx.wav") return end local w = self.ui:getWindow(UIMachineMenu) if w then w:close() else self:addDialog("UIMachineMenu") end self.ui:playSound("selectx.wav") end function UIBottomPanel:dialogAdviserHistory(enable) local w = self.ui:getWindow(UIAdviserHistory) if w then w:close() else self:addDialog("UIAdviserHistory") end self.ui:playSound("selectx.wav") end function UIBottomPanel:toggleInformation() self.world:toggleInformation() end local fullscreen_dialogs = { "UIStaffManagement", "UITownMap", "UICasebook", "UIResearch", "UIProgressReport", "UIGraphs", "UIPolicy", "UIMachineMenu", } function UIBottomPanel:updateButtonStates() for i, button in ipairs(self.additional_buttons) do button:setToggleState(not not self.ui:getWindow(_G[fullscreen_dialogs[i]])) end self.bank_button:setToggleState(not not self.ui:getWindow(UIBankManager)) end function UIBottomPanel:addDialog(dialog_class, extra_function) local edit_window = self.ui:getWindow(UIEditRoom) -- If we are currently editing a room, ask for abortion before adding any dialog. if edit_window then self.ui:addWindow(UIConfirmDialog(self.ui, false, _S.confirmation.abort_edit_room, --[[persistable:abort_edit_room_confirm_dialog]]function() self.ui:setEditRoom(false) local dialog = _G[dialog_class](self.ui) if extra_function then _G[dialog_class][extra_function](dialog) end self.ui:addWindow(dialog) self:updateButtonStates() end )) self:updateButtonStates() else self.ui:setEditRoom(false) local dialog = _G[dialog_class](self.ui) self.ui:addWindow(dialog) if extra_function then _G[dialog_class][extra_function](dialog) end self:updateButtonStates() end end -- Do not remove, for savegame compatibility < r1878 local --[[persistable:abort_edit_room_cancel_dialog]]function stub() end function UIBottomPanel:editRoom() local ui = self.ui if ui.editing_allowed then self.ui:playSound("selectx.wav") if ui.edit_room then ui:setEditRoom(false) else ui:setEditRoom(true) end else -- no editing is allowed when other dialogs are open self.ui:playSound("wrong2.wav") end end function UIBottomPanel:afterLoad(old, new) self:setSize(640, 48) self:setDefaultPosition(0.5, -0.1) self:removeAllPanels() self:drawPanels() self:updateButtonStates() if old < 40 then -- Find the graph dialog and enable it for _, button in ipairs(self.buttons) do if not button.on_click then button.on_click = self.dialogCharts button.enabled = true end end end if old < 58 then self.pause_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font124V") end if old < 62 then -- renamed additional_buttons to additional_panels -- additional_buttons are now the actual buttons self.additional_panels = self.additional_buttons self.additional_buttons = {} for i = 1, 7 do self.additional_buttons[i] = self.buttons[5 + i]:makeToggle() -- made them toggle buttons end self.bank_button = self.buttons[1]:makeToggle() end if old < 236 then self:_initFonts(self.ui.app.gfx) end if old < 244 then -- ignore the delay logic for save games, minor if self.factory_counter == nil or self.factory_counter > MESSAGE_DOOR_FULLY_SHUT then self.factory_counter = MESSAGE_DOOR_FULLY_SHUT elseif self.factory_counter < MESSAGE_DOOR_FULLY_OPEN then self.factory_counter = MESSAGE_DOOR_FULLY_OPEN end self.message_door = { closed_amount = self.factory_counter, next_action_delay = 0 } self.factory_counter = nil self.factory_direction = nil self.show_animation = nil end -- Hotfix to force re-calculation of the money font (see issue #1193) self.money_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font05V", nil, nil, { apply_ui_scale = true }) self:registerKeyHandlers() Window.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/build_room.lua000066400000000000000000000216711522247547500220310ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") class "UIBuildRoom" (Window) ---@type UIBuildRoom local UIBuildRoom = _G["UIBuildRoom"] function UIBuildRoom:UIBuildRoom(ui) self:Window() local app = ui.app self.ui = ui self.modal_class = "main" self.esc_closes = true self.width = 297 self.height = 294 self:setDefaultPosition(0.5, 0.5) local selected_label_color = { red = 40, green = 40, blue = 250 } self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req09V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.blue_font = app.gfx:loadFontAndSpriteTable("QData", "Font02V", nil, nil, {ttf_color = selected_label_color, apply_ui_scale = true }) self.category_index = 0 self.list_hover_index = 0 self.hover_sound = nil self.preview_anim = false self.default_button_sound = "selectx.wav" local function cat(n) return --[[persistable:build_room_set_category]] function(window) return window:setCategory(n) end end local room_n = 1 local function rm() local n = room_n room_n = room_n + 1 return --[[persistable:build_room_build_room]] function(window) return window:buildRoom(n) end end self:addPanel(210, 0, 0):makeButton(9, 9, 129, 32, 211, cat(1)):setTooltip(_S.tooltip.build_room_window.room_classes.diagnosis) self:addPanel(212, 0, 41):makeButton(9, 0, 129, 31, 213, cat(2)):setTooltip(_S.tooltip.build_room_window.room_classes.treatment) -- Clinics should really be at y=73, but TH skips a pixel here -- so that the left and right columns are the same height self:addPanel(214, 0, 72):makeButton(9, 0, 129, 32, 215, cat(3)):setTooltip(_S.tooltip.build_room_window.room_classes.clinic) self:addPanel(216, 0, 104):makeButton(9, 0, 129, 32, 217, cat(4)):setTooltip(_S.tooltip.build_room_window.room_classes.facilities) self:addPanel(218, 0, 146) -- Grid top for y = 179, 249, 10 do self:addPanel(219, 0, y) -- Grid body end self:addPanel(220, 0, 259) -- Grid bottom self:addPanel(221, 146, 0) -- List top for y = 34, 205, 19 do self:addPanel(222, 146, y):makeButton(12, 0, 126, 19, 223, rm()) -- List body .enabled = false end -- The close button has no sprite for when pressed, so it has to be custom drawn local build_room_dialog_close = TheApp.gfx:loadSpriteTable("Bitmap", "aux_ui", true) self:addPanel(224, 146, 224):makeButton(8, 34, 134, 27, 224, self.close):setTooltip(_S.tooltip.build_room_window.close) .panel_for_sprite.custom_draw = --[[persistable:build_room_draw_close_button]] function(panel, canvas, x, y) local s = TheApp.config.ui_scale x = x + panel.x * s y = y + panel.y * s panel.window.panel_sprites:draw(canvas, panel.sprite_index, x, y, { scaleFactor = s }) local btn = panel.window.active_button if btn and btn.panel_for_sprite == panel and btn.active then build_room_dialog_close:draw(canvas, 1, x + 8 * s, y + 34 * s, { scaleFactor = s }) end end self.list_title = _S.build_room_window.pick_department self.cost_box = _S.build_room_window.cost .. "0" self.list = {} self.category_titles = { _S.room_classes.diagnosis, _S.room_classes.treatment, _S.room_classes.clinics, _S.room_classes.facilities } self:updateBuildableRooms() self:makeTooltip(_S.tooltip.build_room_window.cost, 160, 228, 282, 242) end --! Checks what rooms are now available to build function UIBuildRoom:updateBuildableRooms() local app = self.ui.app self.category_rooms = {} for i, category in ipairs({"diagnosis", "treatment", "clinics", "facilities"}) do local rooms = {} self.category_rooms[i] = rooms for _, room_disc in pairs(self.ui.hospital.room_discoveries) do local room = room_disc.room -- NB: Unimplemented rooms are hidden unless in debug mode if (app.config.debug or room.class) and room.categories[category] and room_disc.is_discovered then rooms[#rooms + 1] = room end end table.sort(rooms, function(r1, r2) return r1.categories[category] < r2.categories[category] end) end end local cat_label_y = {21, 53, 84, 116} function UIBuildRoom:draw(canvas, x, y) Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y self.white_font:draw(canvas, self.list_title, x + 163 * s, y + 18 * s) for i = 1, 4 do (i == self.category_index and self.blue_font or self.white_font) :draw(canvas, self.category_titles[i], x + 19 * s, y + cat_label_y[i] * s) end for i, room in ipairs(self.list) do (i == self.list_hover_index and self.blue_font or self.white_font) :draw(canvas, room.name, x + 163 * s, y + 21 * s + i * 19 * s) end self.white_font:draw(canvas, self.cost_box, x + 163 * s, y + 232 * s) if self.preview_anim then self.preview_anim:setScaleFactor(s) self.preview_anim:draw(canvas, x + 70 * s, y + 200 * s) end end function UIBuildRoom:setCategory(index) if index == 1 then self.ui:tutorialStep(3, 2, 3) else self.ui:tutorialStep(3, 3, 2) end self.category_index = index self:updateBuildableRooms() self.list_title = _S.build_room_window.pick_room_type self.list = self.category_rooms[index] local last = #self.list + 5 for i = 5, 14 do self.buttons[i].enabled = i < last if i < last then self.buttons[i]:setTooltip(self.list[i - 4].tooltip) else self.buttons[i]:setTooltip() end end end function UIBuildRoom:buildRoom(index) local hosp = self.ui.hospital local world = self.ui.app.world if index == 1 then self.ui:tutorialStep(3, 3, 4) end local cost = world.free_build_mode and 0 or hosp.research.research_progress[self.list[index]].build_cost if world.free_build_mode or hosp.balance >= cost then -- Close any full screen window currently open. local fullscreen = self.ui:getWindow(UIFullscreen) if fullscreen then fullscreen:close() end local edit_dlg = UIEditRoom(self.ui, self.list[index]) self.ui:addWindow(edit_dlg) else -- give visual warning that player doesn't have enough $ to build self.ui.adviser:say(_A.warnings.money_very_low_take_loan, false, true) self.ui:playSound("Wrong2.wav") end end function UIBuildRoom:onMouseMove(x, y, dx, dy) local repaint = Window.onMouseMove(self, x, y, dx, dy) local s = TheApp.config.ui_scale local hover_idx = 0 if 156 * s <= x and x < 287 * s and 31 * s <= y and y < 226 * s then for i = 5, 14 do local btn = self.buttons[i] if btn.enabled and btn.x * s <= x and x < btn.r * s and btn.y * s <= y and y < btn.b * s then hover_idx = i - 4 break end end end if hover_idx ~= self.list_hover_index then if self.hover_sound then self.ui:stopSound(self.hover_sound) end self.hover_sound = self.ui:playSound("HLight5.wav") if hover_idx == 0 then self.cost_box = _S.build_room_window.cost .. "0" self.preview_anim = false else local hosp = self.ui.hospital local world = self.ui.app.world local cost = world.free_build_mode and 0 or hosp.research.research_progress[self.list[hover_idx]].build_cost self.cost_box = _S.build_room_window.cost .. cost self.preview_anim = TH.animation() self.preview_anim:setAnimation(self.ui.app.anims, self.list[hover_idx].build_preview_animation) end self.list_hover_index = hover_idx repaint = true end return repaint end function UIBuildRoom:close() self.ui:tutorialStep(3, {2, 3}, 1) return Window.close(self) end function UIBuildRoom:afterLoad(old, new) Window.afterLoad(self, old, new) if old < 236 then local selected_label_color = { red = 40, green = 40, blue = 250 } self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.blue_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font02V", nil, nil, {ttf_color = selected_label_color, apply_ui_scale = true }) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/confirm_dialog.lua000066400000000000000000000114351522247547500226470ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Dialog for "Are you sure you want to quit?" and similar yes/no questions. --! This dialog is also used for errors and requires some special handling class "UIConfirmDialog" (Window) ---@type UIConfirmDialog local UIConfirmDialog = _G["UIConfirmDialog"] local top_frame = 357 local top_frame_height = 22 local middle_frame = 358 local middle_frame_height = 11 local bottom_frame = 359 local text_width = 153 --! Initialise the Confirmation Dialog --!param ui The UI --!param must_pause (boolean) set whether this dialog should pause the game --!param text (string) message to show --!param callback_ok (function) what to do on yes/ok --!param callback_cancel (function) what to do on no/cancel/close function UIConfirmDialog:UIConfirmDialog(ui, must_pause, text, callback_ok, callback_cancel) self:Window() local app = ui.app self.modal_class = "information" self.esc_closes = true self.on_top = true self.ui = ui self.width = 183 self.height = 199 self:setDefaultPosition(0.5, 0.5) self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req04V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.text = text self.callback_ok = callback_ok -- Callback function to launch if user chooses ok self.callback_cancel = callback_cancel -- Callback function to launch if user chooses cancel self.must_pause = must_pause -- Check how "high" the dialog must be local _, text_height = self.white_font:sizeOf(text, text_width * TheApp.config.ui_scale) text_height = text_height / TheApp.config.ui_scale -- Scale independent pixels self:addPanel(top_frame, 0, 0) -- Dialog header local last_y = top_frame_height for _ = 1, math.ceil(text_height / middle_frame_height) do self:addPanel(middle_frame, 0, last_y) -- Dialog background self.height = self.height + middle_frame_height last_y = last_y + middle_frame_height end self:addPanel(bottom_frame, 0, last_y) -- Dialog footer self:addPanel(360, 0, last_y + 10):makeButton(8, 10, 82, 34, 361, self.cancel) :setTooltip(_S.tooltip.window_general.cancel):setSound("No4.wav") self:addPanel(362, 90, last_y + 10):makeButton(0, 10, 82, 34, 363, self.ok) :setTooltip(_S.tooltip.window_general.confirm):setSound("YesX.wav") -- Correct window height based on text height self.height = last_y + 63 self:registerKeyHandlers() end -- Confirm dialogs are used for errors, if it is an error then pause the game function UIConfirmDialog:mustPause() return self.must_pause end function UIConfirmDialog:registerKeyHandlers() self:addKeyHandler("global_confirm", self.ok) self:addKeyHandler("global_confirm_alt", self.ok) end function UIConfirmDialog:cancel() self:close(false) end function UIConfirmDialog:ok() self:close(true) end --! Closes the confirm dialog --!param confirmed (boolean or nil) whether to call the confirm callback (true) or cancel callback (false/nil) function UIConfirmDialog:close(confirmed) -- NB: Window is closed before executing the callback in order to not save the confirmation dialog in a savegame Window.close(self) if confirmed then if self.callback_ok then self.callback_ok() end else if self.callback_cancel then self.callback_cancel() end end end function UIConfirmDialog:draw(canvas, x, y) Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = x + self.x * s, y + self.y * s self.white_font:drawWrapped(canvas, self.text, x + 17 * s, y + 17 * s, text_width * s) end function UIConfirmDialog:afterLoad(old, new) Window.afterLoad(self, old, new) self:registerKeyHandlers() if old < 236 then self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/edit_room.lua000066400000000000000000001556111522247547500216610ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("dialogs.place_objects") class "UIEditRoom" (UIPlaceObjects) ---@type UIEditRoom local UIEditRoom = _G["UIEditRoom"] function UIEditRoom:UIEditRoom(ui, room_type) -- NB: UIEditRoom:onCursorWorldPositionChange is called by the UIPlaceObjects -- constructor, hence the initialisation of required fields prior to the call. self.UIPlaceObjects(self, ui) local app = ui.app local blue_red_swap = self.anims.Alt32_BlueRedSwap -- Set alt palette on wall blueprint to make it red self.anims:setAnimationGhostPalette(124, app.gfx:loadGhost("QData", "Ghost1.dat", 6), blue_red_swap) -- Set on door and window blueprints too self.anims:setAnimationGhostPalette(126, app.gfx:loadGhost("QData", "Ghost1.dat", 6), blue_red_swap) self.anims:setAnimationGhostPalette(130, app.gfx:loadGhost("QData", "Ghost1.dat", 6), blue_red_swap) self.cell_outline = TheApp.gfx:loadSpriteTable("Bitmap", "aux_ui", true) if not room_type.room_info then self.blueprint_rect = { x = 1, y = 1, w = 0, h = 0, } if room_type.swing_doors then self.blueprint_door = {anim = {}, old_anim = {}, old_flags = {}} else self.blueprint_door = {} end self.phase = "walls" --> "door" --> "windows" --> "clear_area" --> "objects" --> "closed" self.room_type = room_type self.title_text = room_type.name self.desc_text = _S.place_objects_window.drag_blueprint else self.phase = "objects" self.room_type = room_type.room_info self.title_text = room_type.room_info.name self.room = room_type self.desc_text = _S.place_objects_window.confirm_or_buy_objects self.paid = true self.blueprint_rect = { x = room_type.x, y = room_type.y, w = room_type.width, h = room_type.height, } if room_type.room_info.swing_doors then self.blueprint_door = {anim = {}, old_anim = {}, old_flags = {}} else self.blueprint_door = {} end self.ui:setWorldHitTest(self.room) self.pickup_button:enable(true) self.purchase_button:enable(true) self:checkEnableConfirm() end self.blueprint_wall_anims = {} self.blueprint_window = {} self.mouse_down_x = false self.mouse_down_y = false self.mouse_cell_x = 0 self.mouse_cell_y = 0 self:registerKeyHandlers() end function UIEditRoom:registerKeyHandlers() self:addKeyHandler("global_confirm", self.confirm) -- UIPlaceObjects does not need this self:addKeyHandler("global_confirm_alt", self.confirm) end function UIEditRoom:close(...) if self.phase == "objects" and self.confirm_button.enabled then if not self.closed_cleanly then self:confirm(true) end else while self.phase ~= "walls" do self:cancel() end end for k, obj in pairs(self.blueprint_wall_anims) do if obj.setTile then obj:setTile(nil) else for _, anim in pairs(obj) do anim:setTile(nil) end end self.blueprint_wall_anims[k] = nil end self.phase = "closed" -- No longer editing a room self.ui.edit_room = false self:setBlueprintRect(1, 1, 0, 0) self.ui:tutorialStep(3, {4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, 1) -- not all of these links may be needed, but to be safe... return UIPlaceObjects.close(self, ...) end --[[ Called when building/editing of the room is about to stop because another dialog is being opened. If the room is in the objects phase and all required objects have been placed it will be completed. Otherwise it is cancelled instead. --]] function UIEditRoom:verifyOrAbortRoom() if self.phase == "objects" and self.confirm_button.enabled then -- The room can be finished self:close() else -- The room will have to be cancelled self:abortRoom() end end function UIEditRoom:abortRoom() if self.paid then -- Return half the cost. local progress = self.ui.hospital.research.research_progress local cost = math.floor(progress[self.room.room_info].build_cost/2) -- TODO: Return also the cost for additional objects. -- Decrease the hospital value by the whole room build cost local valueChange = progress[self.room.room_info].build_cost for obj, num in pairs(self.room.room_info.objects_needed) do -- Get how much this item costs. local obj_cost = self.ui.hospital:getObjectBuildCost(obj) cost = cost - math.floor(obj_cost)/2 valueChange = valueChange - num * obj_cost end self.ui.hospital:receiveMoney(cost, _S.transactions.sell_object, valueChange) end -- Close the dialog self:close() -- Finally remove the room from the world (close() needs the reference) if self.room then self.world.rooms[self.room.id] = nil end end function UIEditRoom:cancel() if self.confirm_dialog_open then -- Don't do anything as long as the confirm dialog is open. return end if self.phase == "walls" then if self.paid then -- While the confirmation window is open, don't allow the player to click the confirm button. local confirm_button_state = self.confirm_button.enabled self.confirm_button:enable(false) self.confirm_dialog_open = true -- Ask if the user really wish to sell this room self.ui:addWindow(UIConfirmDialog(self.ui, false, _S.confirmation.delete_room, --[[persistable:delete_room_confirm_dialog]]function() self:abortRoom() end, --[[persistable:delete_room_confirm_dialog_cancel]]function() self.confirm_button:enable(confirm_button_state) self.confirm_dialog_open = nil end )) else self:abortRoom() end self.ui:setCursor(self.ui.default_cursor) elseif self.phase == "objects" then self:stopPickupItems() self:returnToDoorPhase() self.world:resetSideObjects() else if self.phase == "clear_area" then self.ui:setDefaultCursor(nil) self.check_for_clear_area_timer = nil self.humanoids_to_watch = nil end self.phase = "walls" self:returnToWallPhase() end end function UIEditRoom:confirm(force) -- double check if confirm is allowed (for being called e.g. by hotkey) if not force and not self.confirm_button.enabled then return end self:stopPickupItems() if self.phase == "walls" then self.mouse_down_x = false self.mouse_down_y = false self.move_rect_x = false self.move_rect_y = false self.phase = "door" self:enterDoorPhase() elseif self.phase == "door" then self.phase = "windows" self:enterWindowsPhase() elseif self.phase == "windows" then self.phase = "clear_area" self:clearArea() elseif self.phase == "clear_area" then self.ui:setDefaultCursor(nil) self.phase = "objects" self:finishRoom() self.world:resetSideObjects() self:enterObjectsPhase() else -- Pay for room (subtract cost of needed objects, which were already paid for) if not self.paid then local progress = self.ui.hospital.research.research_progress local cost = progress[self.room.room_info].build_cost for obj, num in pairs(self.room.room_info.objects_needed) do -- Get how much this item costs. local obj_cost = self.ui.hospital:getObjectBuildCost(obj) cost = cost - num * obj_cost end self.ui.hospital:spendMoney(cost, _S.transactions.build_room .. ": " .. self.title_text, cost) self.paid = true end self.world:markRoomAsBuilt(self.room) self.closed_cleanly = true -- If information dialogs are disabled, go ahead. if self.ui:getWindow(UIInformation) then self.ui:tutorialStep(3, 15, 16) else self.ui:tutorialStep(3, 15, "next") end self:close() end end function UIEditRoom:clearArea() self.confirm_button:enable(false) local rect = self.blueprint_rect local world = self.ui.app.world world:clearCaches() -- To invalidate idle tiles in case we need to move people local humanoids_to_watch = {} do local x1 = rect.x - 1 local x2 = rect.x + rect.w local y1 = rect.y - 1 local y2 = rect.y + rect.h for _, entity in ipairs(world.entities) do if class.is(entity, Humanoid) and entity:isObscuringArea(x1, x2, y1, y2) then humanoids_to_watch[entity] = true -- Try to make the humanoid leave the area local current_action = entity:getCurrentAction() local meander = entity.action_queue[2] if meander and meander.name == "meander" then -- Interrupt the idle or walk, which will cause a new meander target -- to be chosen, which will be outside the blueprint rectangle meander.can_idle = false local on_interrupt = current_action.on_interrupt if on_interrupt then current_action.on_interrupt = nil on_interrupt(current_action, entity) end elseif current_action.name == "seek_room" or (meander and meander.name == "seek_room") then -- Make sure that the humanoid doesn't stand idle waiting within the blueprint if current_action.name == "seek_room" then entity:queueAction(MeanderAction():setCount(1):setMustHappen(true), 0) else meander.done_walk = false end else -- Look for a queue action and re-arrange the people in it, which -- should cause anyone queueing within the blueprint to move for _, action in ipairs(entity.action_queue) do if action.name == "queue" then for _, humanoid in ipairs(action.queue) do local callbacks = action.queue.callbacks[humanoid] if callbacks then callbacks:onChangeQueuePosition(humanoid) end end break end end -- TODO: Consider any other actions which might be causing the -- humanoid to be staying within the rectangle for a long time. end end end end if next(humanoids_to_watch) == nil then -- No humanoids within the area, so continue with the room placement self:confirm(true) return end self.check_for_clear_area_timer = 10 self.humanoids_to_watch = humanoids_to_watch self.ui:setCursor(self.ui.waiting_cursor) end function UIEditRoom:onTick() UIFurnishCorridor.onTick(self) if self.check_for_clear_area_timer then self.check_for_clear_area_timer = self.check_for_clear_area_timer - 1 if self.check_for_clear_area_timer == 0 then local rect = self.blueprint_rect local x1 = rect.x - 1 local x2 = rect.x + rect.w local y1 = rect.y - 1 local y2 = rect.y + rect.h for humanoid in pairs(self.humanoids_to_watch) do -- The person might be dying (this check should probably be moved into -- isHumanoidObscuringArea, but I don't want to change too much right -- before a release). if humanoid:getCurrentAction().name == "die" then if not humanoid.hospital then self.humanoids_to_watch[humanoid] = nil end elseif not humanoid:isObscuringArea(x1, x2, y1, y2) then self.humanoids_to_watch[humanoid] = nil end end if next(self.humanoids_to_watch) then self.check_for_clear_area_timer = 10 else self.check_for_clear_area_timer = nil self.humanoids_to_watch = nil self:confirm(true) end end end end function UIEditRoom:finishRoom() local room_type = self.room_type local wall_type = self.ui.app.walls[room_type.wall_type] local world = self.ui.app.world local map = self.ui.app.map.th local rect = self.blueprint_rect local door, door2 -- Add the transparency flag if it is set. local flag = 0 if self.ui.transparent_walls then flag = 1024 end local function check_external_window(x, y, layer) -- Test it is a wall, but not spr_num. local function is_wall_and_not(wall_x, wall_y, spr_num) return map:getCell(wall_x, wall_y, layer) ~= 0 and map:getCell(wall_x, wall_y, layer) ~= spr_num end -- Test that the wall is either spr_num1 or spr_num2. local function is_one_of_wall(wall_x, wall_y, spr_num1, spr_num2) return map:getCell(wall_x, wall_y, layer) == spr_num1 or map:getCell(wall_x, wall_y, layer) == spr_num2 end -- If a wall is built which is normal to an external window, then said -- window needs to be removed, otherwise it looks odd. local block = map:getCell(x, y, layer) local dir = world:getWallDirFromBlockId(block) local tiles = self.ui.app.walls.external[world:getWallSetFromBlockId(block)] -- Dispatch on the wall tiles at (x, y) if dir == "north_window_1" then if x ~= rect.x then map:setCell(x, y, layer, flag + tiles.north) if map:getCell(x + 1, y, layer) ~= 0 then map:setCell(x + 1, y, layer, flag + tiles.north) end end elseif dir == "north_window_2" then if x == rect.x then if map:getCell(x - 1, y, layer) ~= 0 then map:setCell(x - 1, y, layer, flag + tiles.north) end map:setCell(x, y, layer, flag + tiles.north) end elseif dir == "west_window_1" then if y == rect.y then map:setCell(x, y, layer, flag + tiles.west) if map:getCell(x, y - 1, layer) ~= 0 then map:setCell(x, y - 1, layer, flag + tiles.west) end end elseif dir == "west_window_2" then if y ~= rect.y then if map:getCell(x, y + 1, layer) ~= 0 then map:setCell(x, y + 1, layer, flag + tiles.west) end map:setCell(x, y, layer, flag + tiles.west) end elseif dir == "north_window_long" then if x == rect.x then map:setCell(x, y, layer, flag + tiles.north_window_1) -- Check if the window_long continues. -- If yes, replace the window_long with window_n. -- if no, replace it with the wall. if is_wall_and_not(x - 1, y, tiles.north_window_2) then if is_one_of_wall(x - 2, y, tiles.north_window_long, tiles.north_window_1) then map:setCell(x - 1, y, layer, flag + tiles.north_window_2) else map:setCell(x - 1, y, layer, flag + tiles.north) end end else map:setCell(x, y, layer, flag + tiles.north_window_2) if is_wall_and_not(x + 1, y, tiles.north_window_1) then if is_one_of_wall(x + 2, y, tiles.north_window_long, tiles.north_window_2) then map:setCell(x + 1, y, layer, flag + tiles.north_window_1) else map:setCell(x + 1, y, layer, flag + tiles.north) end end end elseif dir == "west_window_long" then if y == rect.y then map:setCell(x, y, layer, flag + tiles.west_window_2) if is_wall_and_not(x, y - 1, tiles.west_window_1) then if is_one_of_wall(x, y - 2, tiles.west_window_long, tiles.west_window_2) then map:setCell(x, y - 1, layer, flag + tiles.west_window_1) else map:setCell(x, y - 1, layer, flag + tiles.west) end end else map:setCell(x, y, layer, flag + tiles.west_window_1) if is_wall_and_not(x, y + 1, tiles.west_window_2) then if is_one_of_wall(x, y + 2, tiles.west_window_long, tiles.west_window_1) then map:setCell(x, y + 1, layer, flag + tiles.west_window_2) else map:setCell(x, y + 1, layer, flag + tiles.west) end end end end end for x, obj in pairs(self.blueprint_wall_anims) do for y, anim in pairs(obj) do if x == rect.x and y == rect.y then local _, east, north = map:getCell(x, y) if world:getWallIdFromBlockId(east) == "external" then check_external_window(x, y, 2) elseif world:getWallSetFromBlockId(east) == "window_tiles" then map:setCell(x, y, 2, flag + wall_type.window_tiles.north) else map:setCell(x, y, 2, flag + wall_type.inside_tiles.north) end if world:getWallIdFromBlockId(north) == "external" then check_external_window(x, y, 3) elseif world:getWallSetFromBlockId(north) == "window_tiles" then map:setCell(x, y, 3, flag + wall_type.window_tiles.west) else map:setCell(x, y, 3, flag + wall_type.inside_tiles.west) end else repeat local tiles = "outside_tiles" local tag = anim:getTag() if tag == "nothing" or tag == "swing_slave" then tiles = "swing_outside_tiles" end local dir = (anim:getFlag() % 2 == 1) and "west" or "north" local layer = dir == "north" and 2 or 3 if world:getWallIdFromBlockId(map:getCell(x, y, layer)) == "external" then if layer == 2 then if (x == rect.x or x == rect.x + rect.w - 1) and (y == rect.y or y == rect.y + rect.h) then check_external_window(x, y, 2) end else if (x == rect.x or x == rect.x + rect.w) and (y == rect.y or y == rect.y + rect.h - 1) then check_external_window(x, y, 3) end end break end local existing = world:getWallSetFromBlockId(map:getCell(x, y, layer)) if rect.x <= x and x < rect.x + rect.w and rect.y <= y and y < rect.y + rect.h then if tag == "nothing" or tag == "swing_slave" then tiles = "swing_inside_tiles" else tiles = "inside_tiles" end elseif existing then break end if tag == "window" or existing == "window_tiles" then tiles = "window_tiles" end local suffixes = {"_left", "_right"} local num = dir == "north" and 1 or 0 if tag == "door" then door = world:newObject("door", x, y, dir) elseif tag == "swing_master" then door = world:newObject("swing_door_right", x, y, dir) elseif tag == "swing_slave" then door2 = world:newObject("swing_door_left", x, y, dir) map:setCell(x, y, layer, flag + wall_type[tiles][dir .. suffixes[2 - num]]) elseif tag == "nothing" then map:setCell(x, y, layer, flag + wall_type[tiles][dir .. suffixes[num + 1]]) else map:setCell(x, y, layer, flag + wall_type[tiles][dir]) end until true end anim:setTile(nil) end self.blueprint_wall_anims[x] = nil end -- If there is already a room, e.g. it is being moved, don't make a new one. if self.room then self.room:initRoom(rect.x, rect.y, rect.w, rect.h, door, door2) else self.room = self.world:newRoom(rect.x, rect.y, rect.w, rect.h, room_type, door, door2) end end function UIEditRoom:purchaseItems() self.visible = false self.place_objects = false self:stopPickupItems() local cfg_objects = self.world.map.level_config.objects local research = self.ui.hospital.research local object_list = {} -- transform set to list for i, o in ipairs(self.room.room_info.objects_additional) do -- Don't show the object if it hasn't been researched yet. local object = TheApp.objects[o] local avail = cfg_objects[object.thob].AvailableForLevel if avail == 1 and (not research.research_progress[object] or research.research_progress[object].discovered) then -- look up current quantity local cur_qty = 0 for _, p in ipairs(self.objects) do if p.object.id == o then cur_qty = p.qty end end -- look up minimum quantity (required objects list) local min_qty = self.room.room_info.objects_needed[o] or 0 -- subtract number of objects in room from minimum quantity for obj, _ in pairs(self.room.objects) do if min_qty == 0 then break end if obj.object_type.id == o then min_qty = min_qty - 1 end end object_list[i] = { object = TheApp.objects[o], qty = cur_qty, min_qty = min_qty } end end self.ui:addWindow(UIFurnishCorridor(self.ui, object_list, self)) end -- callback for item pick up button function UIEditRoom:pickupItems() if self.in_pickup_mode then self:stopPickupItems() else self.in_pickup_mode = true self.ui:setCursor(self.ui.grab_cursor) self.place_objects = false self.active_index = 0 self.object_cell_x = nil self.object_cell_y = nil self:clearBlueprint() end end function UIEditRoom:stopPickupItems() if self.in_pickup_mode then self.in_pickup_mode = false self.ui:setCursor(self.ui.default_cursor) self.pickup_button:setToggleState(false) end end function UIEditRoom:returnToWallPhase(early) self.ui:tutorialStep(3, {9, 10, 11, 12}, 4) if not early then self.desc_text = _S.place_objects_window.drag_blueprint self.confirm_button:enable(true) for k, obj in pairs(self.blueprint_wall_anims) do for _, anim in pairs(obj) do anim:setTile(nil) end self.blueprint_wall_anims[k] = nil end end local rect = self.blueprint_rect local x, y, w, h = rect.x, rect.y, rect.w, rect.h self:setBlueprintRect(1, 1, 0, 0) self:setBlueprintRect(x, y, w, h) if self.room_type.swing_doors then self.blueprint_door = {anim = {}, old_anim = {}, old_flags = {}} else self.blueprint_door = {} end end -- Remove walls function UIEditRoom:_remove_wall_line(x, y, step_x, step_y, n_steps, layer, neigh_x, neigh_y, world) local map = world.map.th for _ = 1, n_steps do local existing = map:getCell(x, y, layer) -- Possibly add transparency. local flag = 0 if world.ui.transparent_walls then flag = 1024 end if world:getWallIdFromBlockId(existing) ~= "external" then local neighbour = world:getRoom(x + neigh_x, y + neigh_y) if neighbour then if neigh_x ~= 0 or neigh_y ~= 0 then local set = world:getWallSetFromBlockId(existing) local dir = world:getWallDirFromBlockId(existing) if set == "inside_tiles" then set = "outside_tiles" end map:setCell(x, y, layer, flag + world.wall_types[neighbour.room_info.wall_type][set][dir]) end else map:setCell(x, y, layer, flag) end end x = x + step_x y = y + step_y end end function UIEditRoom:removeRoom(save_objects, room, world) -- Remove any placed objects (add them to list again) when save_objects is true for x = room.x, room.x + room.width - 1 do for y = room.y, room.y + room.height - 1 do while true do -- get litter then any other object local obj = world:getObject(x, y, 'litter') or world:getObject(x, y) -- but we need to ignore doors if not obj or obj == room.door or class.is(obj, SwingDoor) then break end if obj.object_type.id == "litter" then -- Silently remove litter from the world. obj:remove() else if save_objects then local obj_state = obj:getState() world:destroyEntity(obj) if not obj.master then self:addObjects({{ object = TheApp.objects[obj.object_type.id], state = obj_state, qty = 1 }}) end else -- just destroy it world:destroyEntity(obj) end end end end end -- now doors world:destroyEntity(room.door) if room.door2 then world:destroyEntity(room.door2) end if save_objects then -- backup list of objects self.objects_backup = {} for k, o in pairs(self.objects) do self.objects_backup[k] = { object = o.object, qty = o.qty, state = o.state } end UIPlaceObjects.removeAllObjects(self) end self:_remove_wall_line(room.x, room.y, 0, 1, room.height, 3, -1, 0, world) self:_remove_wall_line(room.x, room.y, 1, 0, room.width , 2, 0, -1, world) self:_remove_wall_line(room.x + room.width, room.y , 0, 1, room.height, 3, 0, 0, world) self:_remove_wall_line(room.x, room.y + room.height, 1, 0, room.width , 2, 0, 0, world) -- Reset floor tiles and flags world.map.th:unmarkRoom(room.x, room.y, room.width, room.height) end function UIEditRoom:returnToDoorPhase() self.ui:tutorialStep(3, {13, 14, 15}, 9) local room = self.room room.built = false if room.door and room.door.queue then room.door.queue:rerouteAllPatients(room.room_info.id) end self.purchase_button:enable(false) self.pickup_button:enable(false) self:removeRoom(true, room, self.world) -- Re-create blueprint local rect = self.blueprint_rect local old_w, old_h = rect.w, rect.h rect.w = 0 rect.h = 0 self:setBlueprintRect(rect.x, rect.y, old_w, old_h) -- We've gone all the way back to wall phase, so step forward to door phase self.phase = "door" self:enterDoorPhase() end function UIEditRoom:screenToWall(x, y) local cellx, celly = self.ui:ScreenToWorld(x, y) cellx = math.floor(cellx) celly = math.floor(celly) local rect = self.blueprint_rect if cellx == rect.x or cellx == rect.x - 1 or cellx == rect.x + rect.w or cellx == rect.x + rect.w - 1 or celly == rect.y or celly == rect.y - 1 or celly == rect.y + rect.h or celly == rect.y + rect.h - 1 then -- luacheck: ignore 542 else return end -- NB: Doors and windows cannot be placed on corner tiles, hence walls of corner tiles -- are never returned, and the nearest non-corner wall is returned instead. If they -- could be placed on corner tiles, then you would have to consider the interaction of -- wall shadows with windows and doors, amongst other things. -- Swing doors are allowed to be adjacent everywhere except the top corner. local modifier = 0 local swinging = false if self.room_type.swing_doors and self.phase == "door" then modifier = 1 swinging = true end if cellx == rect.x and celly == rect.y then -- top corner local x_, _ = self.ui:WorldToScreen(cellx, celly) if x >= x_ then -- correctly reflects (at least origin version) of TH. -- Swing doors in top corner to the east, actually skip another tile if swinging then return cellx + 2 + modifier, celly, "north" else return cellx + 1 + modifier, celly, "north" end else return cellx, celly + 1 + modifier, "west" end elseif cellx == rect.x + rect.w - 1 and celly == rect.y + rect.h - 1 then -- bottom corner local x_, _ = self.ui:WorldToScreen(cellx, celly) if x >= x_ then return cellx, celly - 1, "east" else return cellx - 1, celly, "south" end elseif cellx == rect.x and celly == rect.y + rect.h - 1 then -- left corner local _, y_ = self.ui:WorldToScreen(cellx, celly) if y >= y_ + 16 then if swinging and cellx <= rect.x + 2 then return cellx + 1 + modifier, celly, "south" else return cellx + 1, celly, "south" end else return cellx, celly - 1, "west" end elseif cellx == rect.x + rect.w - 1 and celly == rect.y then -- right corner local _, y_ = self.ui:WorldToScreen(cellx, celly) if y >= y_ + 16 then if swinging and celly <= rect.y + 2 then return cellx, celly + 1 + modifier, "east" else return cellx, celly + 1, "east" end else return cellx - 1, celly, "north" end elseif (cellx == rect.x - 1 or cellx == rect.x) and rect.y <= celly and celly < rect.y + rect.h then -- west edge if celly == rect.y then celly = rect.y + 1 elseif celly == rect.y + rect.h - 1 then celly = rect.y + rect.h - 2 end if swinging and celly <= rect.y + 1 then celly = celly + 1 end return rect.x, celly, "west" elseif (celly == rect.y - 1 or celly == rect.y) and rect.x <= cellx and cellx < rect.x + rect.w then -- north edge -- correctly reflects (at least origin version) of TH. -- Swing doors in top corner to the east, actually skip another tile if swinging and cellx <= rect.x + 2 then cellx = rect.x + 3 elseif cellx == rect.x then cellx = rect.x + 1 + modifier elseif cellx == rect.x + rect.w - 1 then cellx = rect.x + rect.w - 2 end return cellx, rect.y, "north" elseif (cellx == rect.x + rect.w or cellx == rect.x + rect.w - 1) and rect.y <= celly and celly < rect.y + rect.h then -- east edge if swinging and celly <= rect.y + 1 then celly = rect.y + 2 elseif celly == rect.y then celly = rect.y + 1 elseif celly == rect.y + rect.h - 1 then celly = rect.y + rect.h - 2 end return rect.x + rect.w - 1, celly, "east" elseif (celly == rect.y + rect.h or celly == rect.y + rect.h - 1) and rect.x <= cellx and cellx < rect.x + rect.w then -- south edge if swinging and cellx <= rect.x + 1 then cellx = rect.x + 2 elseif cellx == rect.x then cellx = rect.x + 1 elseif cellx == rect.x + rect.w - 1 then cellx = rect.x + rect.w - 2 end return cellx, rect.y + rect.h - 1, "south" end end -- Function to check if the tiles adjacent to the room are still reachable from each other. -- NB: the passable flags of the room have to be set to false already before calling this function function UIEditRoom:checkReachability() local map = self.ui.app.map.th local world = self.ui.app.world local rect = self.blueprint_rect local prev_x, prev_y local x, y = rect.x, rect.y - 1 local flags = {} local function check(flag) if map:getCellFlags(x, y, flags).passable and flags[flag] then if prev_x and not world:getPathDistance(prev_x, prev_y, x, y) then return false end prev_x, prev_y = x, y end return true end while x < rect.x + rect.w do if not check("travelSouth") then return false end x = x + 1 end y = y + 1 while y < rect.y + rect.h do if not check("travelWest") then return false end y = y + 1 end x = x - 1 while x >= rect.x do if not check("travelNorth") then return false end x = x - 1 end y = y - 1 while y >= rect.y do if not check("travelEast") then return false end y = y - 1 end return true end function UIEditRoom:enterDoorPhase() self.ui:tutorialStep(3, 8, 9) -- make tiles impassable for y = self.blueprint_rect.y, self.blueprint_rect.y + self.blueprint_rect.h - 1 do for x = self.blueprint_rect.x, self.blueprint_rect.x + self.blueprint_rect.w - 1 do self.ui.app.map:setCellFlags(x, y, {passable = false}) end end -- check if all adjacent tiles of the rooms are still connected if not self:checkReachability() then if self.ui.app.config.blocking_off_areas == 3 then -- all-permissive placing approach -- This could lead to crashes, so we'll record this in the log so that during investigation -- we'll be able to know that safe placement was disabled. TheApp.world:gameLog("Blocking off areas is allowed with room " .. self.blueprint_rect.x .. ", " .. self.blueprint_rect.y .. ".") else -- undo passable flags and go back to walls phase self.phase = "walls" self:returnToWallPhase(true) self.ui:playSound("wrong2.wav") self.ui.adviser:say(_A.room_forbidden_non_reachable_parts) return end end self.desc_text = _S.place_objects_window.place_door self.confirm_button:enable(false) -- Confirmation is via placing door -- Change the floor tiles to opaque blue local map = self.ui.app.map.th for y = self.blueprint_rect.y, self.blueprint_rect.y + self.blueprint_rect.h - 1 do for x = self.blueprint_rect.x, self.blueprint_rect.x + self.blueprint_rect.w - 1 do map:setCell(x, y, 4, 24) end end -- Re-organise wall anims to index by x and y local walls = {} for _, wall in ipairs(self.blueprint_wall_anims) do local _, x, y = wall:getTile() if not walls[x] then walls[x] = {} end walls[x][y] = wall end self.blueprint_wall_anims = walls end function UIEditRoom:enterWindowsPhase() self.ui:tutorialStep(3, {9, 10}, 11) self.desc_text = _S.place_objects_window.place_windows self.confirm_button:enable(true) end function UIEditRoom:enterObjectsPhase() self.ui:setCursor(self.ui.default_cursor) self.ui:tutorialStep(3, {11, 12}, 13) self.ui:setWorldHitTest(self.room) local confirm = self:checkEnableConfirm() if #self.room.room_info.objects_additional == 0 and confirm then self:confirm(true) return end self.desc_text = _S.place_objects_window.confirm_or_buy_objects if #self.room.room_info.objects_additional > 0 then self.purchase_button:enable(true) end self.pickup_button:enable(true) if self.objects_backup then self:addObjects(self.objects_backup, true) else local room_objects = self.room.room_info.objects_needed if TheApp.config.enable_avg_contents then room_objects = self:computeAverageContents() end local object_list = {} -- transform set to list for o, num in pairs(room_objects) do if num > 0 then object_list[#object_list + 1] = { object = TheApp.objects[o], qty = num } end end self:addObjects(object_list, true) end end -- Decide contents of the new room based on average content of previous built rooms -- of the same type. function UIEditRoom:computeAverageContents() local average_objects = {} -- what does the average room of this type contain? local room_count = 0 for _, room in pairs(self.world.rooms) do if room and room.built and not room.crashed and room.hospital == self.ui.hospital and room.room_info == self.room_type then room_count = room_count + 1 for obj, _ in pairs(room.objects) do average_objects[obj.object_type.id] = (average_objects[obj.object_type.id] or 0) + 1 end end end -- Ensure room contents is within the boundaries of objects_needed and objects_additional. local objects_needed = self.room.room_info.objects_needed local additional_objects = {} -- Reversed mapping for _, obj in pairs(self.room.room_info.objects_additional) do additional_objects[obj] = 1 end for id, count in pairs(average_objects) do count = math.floor(count / room_count + 0.5) if additional_objects[id] == nil and objects_needed[id] == nil then count = 0 end average_objects[id] = count end for id, count in pairs(objects_needed) do if (average_objects[id] or 0) < count then average_objects[id] = count end end return average_objects end function UIEditRoom:draw(canvas, ...) if self.world.user_actions_allowed then local ui = self.ui local x, y = ui:WorldToScreen(self.mouse_cell_x, self.mouse_cell_y) local zoom = self.ui.zoom_factor if canvas:scale(zoom) then x = math.floor(x / zoom) y = math.floor(y / zoom) end self.cell_outline:draw(canvas, 2, x - 32, y) canvas:scale(1) end UIPlaceObjects.draw(self, canvas, ...) end --25 north wall, west --26 north wall, east --27 east wall, south --28 east wall, north --29 south wall, west --30 south wall, east --31 west wall, south --32 west wall, north -- single door blue print values matching TH local door_floor_blueprint_markers = { north = 26, east = 27, south = 30, west = 31 } local window_floor_blueprint_markers = { north = 33, east = 34, south = 35, west = 36, } function UIEditRoom:onLeftButtonDown(x, y) local s = TheApp.config.ui_scale if self.phase == "walls" then if 0 <= x and x < self.width * s and 0 <= y and y < self.height * s then -- luacheck: ignore 542 else local mouse_x, mouse_y = self.ui:ScreenToWorld(self.x * s + x, self.y * s + y) self.mouse_down_x = math.floor(mouse_x) self.mouse_down_y = math.floor(mouse_y) if self.move_rect then self.move_rect_x = self.mouse_down_x - self.blueprint_rect.x self.move_rect_y = self.mouse_down_y - self.blueprint_rect.y elseif not self.resize_rect then self:setBlueprintRect(self.mouse_down_x, self.mouse_down_y, 1, 1) end end elseif self.phase == "door" then if self.blueprint_door.valid then self.ui:playSound("buildclk.wav") self:confirm(true) else self.ui:tutorialStep(3, 9, 10) end elseif self.phase == "windows" then self:placeWindowBlueprint() end end --! Attempt to remove a window placed on the room blueprints --!param x coordinate --!param y coordinate function UIEditRoom:tryRemoveWindowFromWall(x, y) local cell_x, cell_y, wall_dir = self:screenToWall(self.x + x, self.y + y) if not cell_x then return end local map = TheApp.map.th local cell_flag = map:getCell(cell_x, cell_y, 4) if cell_flag == window_floor_blueprint_markers[wall_dir] then -- right click on a wall with a window local wall_x, wall_y = cell_x, cell_y local direction_flag = (wall_dir == "south" or wall_dir == "north") and 0 or 1 if wall_dir == "south" then wall_y = cell_y + 1 elseif wall_dir == "east" then wall_x = cell_x + 1 end local anim = self.blueprint_wall_anims[wall_x][wall_y] if anim then -- reset tile to basic floor/wall map:setCell(cell_x, cell_y, 4, 24) anim:setAnimation(self.anims, 120, direction_flag) anim:setTag(nil) self.ui:playSound("de_build.wav") end end end function UIEditRoom:onMouseDown(button, x, y) if self.world.user_actions_allowed and not self.confirm_dialog_open then if button == "left" then self:onLeftButtonDown(x, y) elseif button == "right" then if self.phase == "windows" then self:tryRemoveWindowFromWall(x, y) end end end return UIPlaceObjects.onMouseDown(self, button, x, y) or true end function UIEditRoom:onMouseUp(button, x, y) if self.mouse_down_x then self.mouse_down_x = false self.mouse_down_y = false end if self.move_rect_x then self.move_rect_x = false self.move_rect_y = false end return UIPlaceObjects.onMouseUp(self, button, x, y) end function UIEditRoom:onMouseMove(x, y, dx, dy) if self.in_pickup_mode then self.ui:setCursor(self.ui.app.gfx:loadMainCursor("grab")) end end function UIEditRoom:setBlueprintRect(x, y, w, h) local rect = self.blueprint_rect local map = self.ui.app.map if x < 1 then x = 1 end if y < 1 then y = 1 end if x + w > map.width then w = map.width - x end if y + h > map.height then h = map.height - y end if rect.x == x and rect.y == y and rect.w == w and rect.h == h then -- Nothing to do return end local too_small = w < self.room_type.minimum_size or h < self.room_type.minimum_size local player_id = self.ui.hospital:getPlayerIndex() -- Entire update of floor tiles and wall animations done in C to replace -- several hundred calls into C with just a single call. The price for this -- is reduced flexibility. See l_map_updateblueprint in th_lua.cpp for code. local is_valid = map.th:updateRoomBlueprint(rect.x, rect.y, rect.w, rect.h, x, y, w, h, player_id, self.blueprint_wall_anims, self.anims, too_small) -- NB: due to the unflexibility, tutorial step "too small AND invalid position" (3.7) -- is currently unusable, as it's not possible to determine if the position would -- have been invalid even if it weren't too small. if self.phase ~= "closed" then if too_small then self.ui:tutorialStep(3, {4, 5, 8}, 6) elseif not is_valid then self.ui:tutorialStep(3, {4, 6, 8}, 5) else self.ui:tutorialStep(3, {4, 5, 6}, 8) end end self.confirm_button:enable(is_valid) rect.x = x rect.y = y rect.w = w rect.h = h end --! Check walls for having room for the door --!param x (int) X tile position of the door. --!param y (int) Y tile position of the door. --!param wall (string) Name of the wall (either 'north' or 'west'). --!param has_swingdoor (boolean) Whether the room has a normal door (false) or a swing door (true) as entrance. --!return (int) bit flags indicating invalid tile position using 1 based power of 2 as this works with ipairs --! values returned are the enumeration of --! 4 = centre door in swing door or for single door the value can just be non-zero but uses the same bit of code --! 2 (door section closer to top of screen) - smaller x or y --! 8 (door section closer to bottom of screen) - larger x or y local function checkDoorWalls(x, y, wall, has_swingdoor) local th = TheApp.map.th local dx, dy, wall_num if wall == "west" then wall_num = 3 dx = 0 dy = 1 else wall_num = 2 dx = 1 dy = 0 end local invalid_tile = 0 if th:getCell(x, y, wall_num) % 0x100 ~= 0 then invalid_tile = 4 end -- If it is a swing door there are two more locations to check. if has_swingdoor then if th:getCell(x - dx, y - dy, wall_num) % 0x100 ~= 0 then invalid_tile = invalid_tile + 2 end if th:getCell(x + dx, y + dy, wall_num) % 0x100 ~= 0 then invalid_tile = invalid_tile + 8 end end return invalid_tile end --! Check whether the given tile can function as a door entry/exit tile. --!param xpos (int) X position of the tile. --!param ypos (int) Y position of the tile. --!param player_id (int) Player id owning the hospital. --!param world - reference to world object instance --!return (boolean) whether the tile is considered to be valid. local function validDoorTile(xpos, ypos, player_id, world) local th = TheApp.map.th local tile_flags = th:getCellFlags(xpos, ypos) -- check own it if tile_flags.owner ~= player_id then return false end -- any object will cause it to be blocked (ignore litter) if tile_flags.thob ~= 0 and tile_flags.thob ~= 62 then return false end -- check if its passable that no object footprint blocks it if tile_flags.passable then return world:isTileExclusivelyPassable(xpos, ypos, 1) end return true end --! Calculate position offsets and door blueprint wall values --! param x (int) doors blueprint x value --! param y (int) doors blueprint y value --! param wall (string) original wall orientation --! return x (int) updated x value --! return y (int) updated y value --! return x_mod (int) offset value to apply to tile count to determine relative position --! return y_mod (int) offset value to apply to tile count to determine relatitve position --! return wall (string) wall orientation style (only 2 styles) local function doorWallOffsetCalculations(x, y, wall) local x_mod local y_mod if wall == "south" then y = y + 1 wall = "north" x_mod = 2 elseif wall == "east" then x = x + 1 wall = "west" y_mod = 2 elseif wall == "north" then x_mod = 2 else y_mod = 2 end return x, y, x_mod, y_mod, wall end function UIEditRoom:setDoorBlueprint(orig_x, orig_y, orig_wall) local x, y, x_mod, y_mod, wall = doorWallOffsetCalculations(orig_x, orig_y, orig_wall) local map = TheApp.map.th if self.blueprint_door.anim then if self.room_type.swing_doors then if self.blueprint_door.anim[1] then -- retrieve the old door position details to reset the blue print local oldx, oldy local _, _, oldx_mod, oldy_mod, _ = doorWallOffsetCalculations(self.blueprint_door.floor_x, self.blueprint_door.floor_y, self.blueprint_door.wall) -- If we're dealing with swing doors the anim variable is actually a table with three -- identical "doors". for i, anim in ipairs(self.blueprint_door.anim) do anim:setAnimation(self.anims, self.blueprint_door.old_anim[i], self.blueprint_door.old_flags[i]) anim:setTag(nil) self.blueprint_door.anim[i] = nil oldx = oldx_mod and self.blueprint_door.floor_x + (i - oldx_mod) or self.blueprint_door.floor_x oldy = oldy_mod and self.blueprint_door.floor_y + (i - oldy_mod) or self.blueprint_door.floor_y map:setCell(oldx, oldy, 4, 24) end end else self.blueprint_door.anim:setAnimation(self.anims, self.blueprint_door.old_anim, self.blueprint_door.old_flags) self.blueprint_door.anim:setTag(nil) self.blueprint_door.anim = nil map:setCell(self.blueprint_door.floor_x, self.blueprint_door.floor_y, 4, 24) end end self.blueprint_door.x = x self.blueprint_door.y = y self.blueprint_door.wall = wall self.blueprint_door.floor_x = orig_x self.blueprint_door.floor_y = orig_y self.blueprint_door.valid = false if not wall then return end local anim = self.blueprint_wall_anims[x][y] if self.room_type.swing_doors then anim = {} local types = {"swing_slave", "swing_master", "nothing"} for i = 1, 3 do local x1 = x_mod and (x + (i - x_mod)) or x local y1 = y_mod and (y + (i - y_mod)) or y anim[i] = self.blueprint_wall_anims[x1][y1] if anim[i] ~= self.blueprint_door.anim[i] then self.blueprint_door.anim[i] = anim[i] self.blueprint_door.anim[i]:setTag(types[i]) self.blueprint_door.old_anim[i] = anim[i]:getAnimation() self.blueprint_door.old_flags[i] = anim[i]:getFlag() end end else if anim ~= self.blueprint_door.anim then self.blueprint_door.anim = anim self.blueprint_door.anim:setTag("door") self.blueprint_door.old_anim = anim:getAnimation() self.blueprint_door.old_flags = anim:getFlag() end end local flags local x2, y2 = x, y if wall == "west" then flags = 1 x2 = x2 - 1 else--if wall == "north" then flags = 0 y2 = y2 - 1 end local world = self.ui.app.world -- invalid_tile used to select the individual blueprint that is blocked local invalid_tile = checkDoorWalls(x, y, wall, self.room_type.swing_doors) -- Ensure that the door isn't being built on top of an object local player_id = self.ui.hospital:getPlayerIndex() if not validDoorTile(x, y, player_id, world) or not validDoorTile(x2, y2, player_id, world) then invalid_tile = bitOr(invalid_tile, 4) end -- If we're making swing doors two more tiles need to be checked. if self.room_type.swing_doors then local dx = x_mod and 1 or 0 local dy = y_mod and 1 or 0 if not validDoorTile(x + dx, y + dy, player_id, world) or not validDoorTile(x2 + dx, y2 + dy, player_id, world) then invalid_tile = bitOr(invalid_tile, 8) end if not validDoorTile(x - dx, y - dy, player_id, world) or not validDoorTile(x2 - dx, y2 - dy, player_id, world) then invalid_tile = bitOr(invalid_tile, 2) end end self.blueprint_door.valid = (invalid_tile == 0) if self.room_type.swing_doors then for i, animation in ipairs(anim) do -- calculation here to flag blocked blueprint tiles on swing doors for each door tile animation:setAnimation(self.anims, 126, flags + (hasBit(invalid_tile, i) and 1 or 0) * 16) end else anim:setAnimation(self.anims, 126, flags + (invalid_tile ~= 0 and 1 or 0) * 16) end if self.room_type.swing_doors then flags = door_floor_blueprint_markers[orig_wall] local dirfix = orig_wall == "east" flags = dirfix and flags + 1 or flags for i = 1, 3 do local x1 = x_mod and orig_x + i - x_mod or orig_x local y1 = y_mod and orig_y + i - y_mod or orig_y if (i == 2) then map:setCell(x1, y1, 4, 24) else if dirfix then map:setCell(x1, y1, 4, i < 2 and flags or flags - 1) else map:setCell(x1, y1, 4, i > 2 and flags or flags - 1) end end end else map:setCell(self.blueprint_door.floor_x, self.blueprint_door.floor_y, 4, door_floor_blueprint_markers[orig_wall]) end end function UIEditRoom:placeWindowBlueprint() if self.blueprint_window.anim and self.blueprint_window.valid then self.blueprint_window = {} self.ui:playSound("buildclk.wav") elseif self.blueprint_window.anim and not self.blueprint_window.valid then self.ui:tutorialStep(3, 11, 12) end end function UIEditRoom:setWindowBlueprint(orig_x, orig_y, orig_wall) local x = orig_x local y = orig_y local wall = orig_wall if wall == "south" then y = y + 1 wall = "north" elseif wall == "east" then x = x + 1 wall = "west" end local map = self.ui.app.map.th local world = self.ui.app.world if self.blueprint_window.anim then self.blueprint_window.anim:setAnimation(self.anims, self.blueprint_window.old_anim, self.blueprint_window.old_flags) self.blueprint_window.anim:setTag(nil) self.blueprint_window.anim = nil map:setCell(self.blueprint_window.floor_x, self.blueprint_window.floor_y, 4, 24) end local anim = x and self.blueprint_wall_anims[x][y] if anim and anim:getTag() then x, y, wall = nil, nil, nil orig_x, orig_y, orig_wall = nil, nil, nil end self.blueprint_window.x = x self.blueprint_window.y = y self.blueprint_window.wall = wall self.blueprint_window.floor_x = orig_x self.blueprint_window.floor_y = orig_y self.blueprint_window.valid = false if not wall then return end if anim ~= self.blueprint_window.anim then self.blueprint_window.anim = anim self.blueprint_window.anim:setTag("window") self.blueprint_window.old_anim = anim:getAnimation() self.blueprint_window.old_flags = anim:getFlag() end self.blueprint_window.valid = true local flags if wall == "west" then flags = 1 if world:getWallIdFromBlockId(map:getCell(x, y, 3)) then self.blueprint_window.valid = false flags = flags + 16 end else--if wall == "north" then flags = 0 if world:getWallIdFromBlockId(map:getCell(x, y, 2)) then self.blueprint_window.valid = false flags = flags + 16 end end anim:setAnimation(self.anims, 130, flags) if self.blueprint_window.valid then map:setCell(self.blueprint_window.floor_x, self.blueprint_window.floor_y, 4, window_floor_blueprint_markers[orig_wall]) end end function UIEditRoom:onCursorWorldPositionChange(x, y) local repaint = UIPlaceObjects.onCursorWorldPositionChange(self, x, y) local ui = self.ui -- Is the game paused? if not self.world.user_actions_allowed or self.confirm_dialog_open then ui:setCursor(ui.default_cursor) return end local wx, wy = ui:ScreenToWorld(self.x + x, self.y + y) wx = math.floor(wx) wy = math.floor(wy) if self.phase == "walls" then local rect = self.blueprint_rect if not self.mouse_down_x then if wx > rect.x and wx < rect.x + rect.w - 1 and wy > rect.y and wy < rect.y + rect.h - 1 then -- inside blueprint, non-border -> move blueprint ui:setCursor(ui.app.gfx:loadMainCursor("move_room")) self.move_rect = true self.resize_rect = false elseif wx < rect.x or wx >= rect.x + rect.w or wy < rect.y or wy >= rect.y + rect.h then -- outside blueprint ui:setCursor(ui.app.gfx:loadMainCursor("resize_room")) self.move_rect = false self.resize_rect = false else -- inside blueprint, at border -> resize blueprint self.move_rect = false self.resize_rect = { n = (wy == rect.y), s = (wy == rect.y + rect.h - 1) and (wy ~= rect.y), w = (wx == rect.x), e = (wx == rect.x + rect.w - 1) and (wx ~= rect.x), } if (self.resize_rect.w or self.resize_rect.e) and (self.resize_rect.n or self.resize_rect.s) then ui:setCursor(ui.app.gfx:loadMainCursor("nswe_arrow")) elseif self.resize_rect.w or self.resize_rect.e then ui:setCursor(ui.app.gfx:loadMainCursor("we_arrow")) else ui:setCursor(ui.app.gfx:loadMainCursor("ns_arrow")) end end end else if self.phase ~= "clear_area" and self.phase ~= "objects" then ui:setCursor(ui.app.gfx:loadMainCursor("resize_room")) end local cell_x, cell_y, wall = self:screenToWall(self.x + x, self.y + y) if self.phase == "door" then self:setDoorBlueprint(cell_x, cell_y, wall) elseif self.phase == "windows" then self:setWindowBlueprint(cell_x, cell_y, wall) end end if self.mouse_down_x and self.move_rect then local rect = self.blueprint_rect self:setBlueprintRect(wx - self.move_rect_x, wy - self.move_rect_y, rect.w, rect.h) elseif self.mouse_down_x and self.resize_rect then local rect = self.blueprint_rect local x1, y1, x2, y2 = rect.x, rect.y, rect.x + rect.w - 1, rect.y + rect.h - 1 if self.resize_rect.w then x1 = wx elseif self.resize_rect.e then x2 = wx end if self.resize_rect.n then y1 = wy elseif self.resize_rect.s then y2 = wy end if x1 > x2 then x1, x2 = x2, x1 self.resize_rect.w, self.resize_rect.e = self.resize_rect.e, self.resize_rect.w end if y1 > y2 then y1, y2 = y2, y1 self.resize_rect.n, self.resize_rect.s = self.resize_rect.s, self.resize_rect.n end self:setBlueprintRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1) elseif self.mouse_down_x then local x1, x2 = self.mouse_down_x, wx local y1, y2 = self.mouse_down_y, wy if x1 > x2 then x1, x2 = x2, x1 end if y1 > y2 then y1, y2 = y2, y1 end self:setBlueprintRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1) end if wx ~= self.mouse_cell_x or wy ~= self.mouse_cell_y then repaint = true end self.mouse_cell_x = wx self.mouse_cell_y = wy return repaint end -- checks if all required objects are placed, and enables/disables the confirm button accordingly. -- also returns the new state of the confirm button function UIEditRoom:checkEnableConfirm() local needed = {} -- copy list of required objects for k, v in pairs(self.room.room_info.objects_needed) do needed[k] = v end -- subtract existing objects from the required numbers for o in pairs(self.room.objects) do local id = o.object_type.id if needed[id] then needed[id] = needed[id] - 1 if needed[id] == 0 then needed[id] = nil end end end -- disable if there are not fulfilled requirements local confirm = not next(needed) if confirm then self.ui:tutorialStep(3, {13, 14}, 15) else self.ui:tutorialStep(3, {14, 15}, 13) end self.confirm_button:enable(confirm) return confirm end function UIEditRoom:placeObject() local obj = UIPlaceObjects.placeObject(self, true) if obj then self:checkEnableConfirm() end end function UIEditRoom:afterLoad(old, new) if old < 172 then -- reverts change in 171 where walls were moved into edit_room, its original -- afterload was removed due to crashes self.wall_types = nil self.wall_id_by_block_id = nil self.wall_set_by_block_id = nil self.wall_dir_by_block_id = nil end UIPlaceObjects.afterLoad(self, old, new) self:registerKeyHandlers() end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen.lua000066400000000000000000000115511522247547500220340ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Base class for 640x480px dialogs (fullscreen in original game resolution). class "UIFullscreen" (Window) ---@type UIFullscreen local UIFullscreen = _G["UIFullscreen"] function UIFullscreen:UIFullscreen(ui) self:Window() self.esc_closes = true self.ui = ui self.modal_class = "fullscreen" self.width = 640 self.height = 480 self:onChangeResolution() end -- Cause all fullscreen windows to share a common saved window position. function UIFullscreen:getSavedWindowPositionName() return "UIFullscreen" end function UIFullscreen:onChangeResolution() local app = self.ui.app local s = app.config.ui_scale local sw = app.config.width / s local sh = app.config.height / s if sw > self.width or sh > self.height then if not self.border_sprites then self.border_sprites = app.gfx:loadSpriteTable("Bitmap", "aux_ui", true) end else self.border_sprites = nil end -- not draggable in actual fullscreen mode self.draggable = not not self.border_sprites local config = self.ui.app.runtime_config.window_position if config then config = config[self:getSavedWindowPositionName()] if config and config.x and config.y then return self:setPosition(config.x, config.y) end end self.x = math.floor((sw - self.width) / 2) -- NB: Bottom panel is 48 pixels high if sh > 480 + 48 then self.y = math.floor((sh - 48 - self.height) / 2) elseif app.config.height >= 480 then self.y = 0 else self.y = math.floor((sh - self.height) / 2) end end function UIFullscreen:draw(canvas, x, y) local sprites = self.border_sprites if sprites then local s = TheApp.config.ui_scale local draw = sprites.draw local scr_x = self.x * s + x local scr_y = self.y * s + y canvas:nonOverlapping(true) draw(sprites, canvas, 10, scr_x - 9 * s, scr_y - 9 * s, { scaleFactor = s }) draw(sprites, canvas, 12, scr_x + 600 * s, scr_y - 9 * s, { scaleFactor = s }) draw(sprites, canvas, 15, scr_x - 9 * s, scr_y + 440 * s, { scaleFactor = s }) draw(sprites, canvas, 17, scr_x + 600 * s, scr_y + 440 * s, { scaleFactor = s }) for loop_x = scr_x + 40 * s, scr_x + 560 * s, 40 * s do draw(sprites, canvas, 11, loop_x, scr_y - 9 * s, { scaleFactor = s }) draw(sprites, canvas, 16, loop_x, scr_y + 480 * s, { scaleFactor = s }) end for loop_y = scr_y + 40 * s, scr_y + 400 * s, 40 * s do draw(sprites, canvas, 13, scr_x - 9 * s, loop_y, { scaleFactor = s }) draw(sprites, canvas, 14, scr_x + 640 * s, loop_y, { scaleFactor = s }) end canvas:nonOverlapping(false) end return Window.draw(self, canvas, x, y) end function UIFullscreen:onMouseDown(button, x, y) local repaint = Window.onMouseDown(self, button, x, y) local s = TheApp.config.ui_scale if button == "left" and not repaint and not (x >= 0 and y >= 0 and x < self.width * s and y < self.height * s) and self:hitTest(x, y) then return self:beginDrag(x, y) end return repaint end function UIFullscreen:hitTest(x, y) local s = TheApp.config.ui_scale if x >= 0 and y >= 0 and x < self.width * s and y < self.height * s then return true end local sprites = self.border_sprites if not sprites then return false end if x < -9 * s or y < -9 * s or x >= self.width * s + 9 * s or y >= self.height * s + 9 * s then return false end if (0 <= x and x < self.width * s) or (0 <= y and y < self.height * s) then return true end return sprites.hitTest(sprites, 10, x + 9 * s, y + 9 * s) or sprites.hitTest(sprites, 12, x - 600 * s, y + 9 * s) or sprites.hitTest(sprites, 15, x + 9 * s, y - 440 * s) or sprites.hitTest(sprites, 17, x - 600 * s, y - 440 * s) end function UIFullscreen:afterLoad(old, new) Window.afterLoad(self, old, new) if old < 22 then self.draggable = not not self.border_sprites end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/000077500000000000000000000000001522247547500213265ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/annual_report.lua000066400000000000000000000661661522247547500247210ustar00rootroot00000000000000--[[ Copyright (c) 2010 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Annual Report fullscreen window shown at the start of each year. class "UIAnnualReport" (UIFullscreen) ---@type UIAnnualReport local UIAnnualReport = _G["UIAnnualReport"] --! Helper function that enables and makes visible button or table of buttons/panels. --!param button The button or table of buttons that should be activated/deactivated. If -- a table is given it needs to have the is_table flag set to true. --!param active Defines if the new state is active (true) or inactive (false). local function setActive(button, active) if button.is_table then for _, btn in ipairs(button) do btn.enabled = active btn.visible = active end else button.enabled = active button.visible = active end end function UIAnnualReport:UIAnnualReport(ui, world) self:UIFullscreen(ui) self.ui = ui local gfx = ui.app.gfx self.won_amount = 0 self.award_won_amount = 0 self.rep_amount = 0 if not pcall(function() local palette = gfx:getPalette("Award02V.pal") -- Right now the statistics are first --self.background = gfx:loadRaw("Fame01V", 640, 480) self.award_background = gfx:loadRaw("Award01V", 640, 480) self.stat_background = gfx:loadRaw("Award02V", 640, 480, "QData", "QData", "Award02V.pal", true) self.background = self.stat_background local stone_text_color = { red = 80, green = 60, blue = 35 } self.stat_font = gfx:loadFontAndSpriteTable("QData", "Font45V", false, palette, { apply_ui_scale = true }) self.write_font = gfx:loadFontAndSpriteTable("QData", "Font47V", false, palette, { apply_ui_scale = true }) self.stone_font = gfx:loadFontAndSpriteTable("QData", "Font46V", false, palette, {ttf_color = stone_text_color, apply_ui_scale = true }) self.panel_sprites = gfx:loadSpriteTable("QData", "Award03V", true, palette) end) then ui:addWindow(UIInformation(ui, {_S.errors.dialog_missing_graphics})) self:close() return end ------------------------ The current state the dialog is in. --------------------------- -- Possible values are 1, 2 and 3 = fame, statistics and awards pages respectively -- TODO: The dialog has some preparations for the fame screen, but as long as there are no -- competitor scores and the player's own score isn't increased anywhere there's no use in -- showing it. Only hall of fame is there right now too, and maybe it should be a -- stand alone dialog since it has (2) sprites in another sprite file? self.state = 2 self.default_button_sound = "selectx.wav" -- Close button, in the future different behaviours for different screens though --self.first_close = self:addPanel(0, 609, 449):makeButton(0, 0, 26, 26, 1, self.changePage) self.second_close = self:addPanel(0, 608, 449):makeButton(0, 0, 26, 26, 1, self.close) setActive(self.second_close, true) -- Change page buttons for the second and third pages local --[[persistable:annual_report_change_page]] function change() self:changePage(3) end self.second_change = self:addPanel(0, 274, 435):makeButton(0, 0, 91, 42, 3, change) setActive(self.second_change, true) self.third_change = self:addPanel(0, 272, 367):makeButton(0, 0, 91, 42, 3, self.changePage) setActive(self.third_change, false) -- The plaque showed after the player has clicked on a trophy local plaque = {} plaque[1] = self:addPanel(19, 206, 87) plaque[2] = self:addPanel(20, 206, 161) plaque[3] = self:addPanel(21, 206, 233) plaque[4] = self:addPanel(22, 206, 321) plaque.is_table = true self.plaque = plaque setActive(self.plaque, false) -- Close button for the trophy motivations self.third_close = self:addPanel(0, 389, 378):makeButton(0, 0, 26, 26, 2, self.showTrophyMotivation) setActive(self.third_close, false) -- The scroll showed after the player has clicked on an award local scroll = {} scroll[1] = self:addPanel(16, 206, 87) scroll[2] = self:addPanel(17, 206, 200) scroll[3] = self:addPanel(18, 206, 304) scroll[4] = self:addPanel(15, 300, 341) scroll.is_table = true self.scroll = scroll setActive(self.scroll, false) -- Close button for the award motivations self.fourth_close = self:addPanel(0, 369, 358):makeButton(0, 0, 26, 26, 2, self.showAwardMotivation) setActive(self.fourth_close, false) -- How many awards the player got this year. Will increase after the checkup. self.no_awards = 0 self.awards = {} -- Trophies. Currently the soda and the reputation award have been implemented self.no_trophies = 0 self.trophies = {} -- Check which awards and trophies the player should get. self:checkTrophiesAndAwards(world) -- Get and sort values used on the statistics screen. -- The six categories. The extra tables are used to be able to sort the values. self.money_sort = {} self.visitors_sort = {} self.salary_sort = {} self.deaths_sort = {} self.cures_sort = {} self.value_sort = {} -- TODO: Right now there are no real competitors, they all have initial values. for i, hospital in ipairs(world.hospitals) do self.money_sort[i] = {value = math.floor(hospital.balance - hospital.loan), hosp_index = i} self.visitors_sort[i] = {value = hospital.num_visitors, hosp_index = i} self.deaths_sort[i] = {value = hospital.num_deaths, hosp_index = i} self.cures_sort[i] = {value = hospital.num_cured, hosp_index = i} self.value_sort[i] = {value = math.floor(hospital.value), hosp_index = i} self.salary_sort[i] = {value = math.floor(hospital.player_salary), hosp_index = i} end -- sort putting local player hospital first when values the same local desc_order = function(a,b) return a.value > b.value or (a.value == b.value and a.hosp_index < b.hosp_index) end local asc_order = function(a,b) return a.value < b.value or (a.value == b.value and a.hosp_index < b.hosp_index) end table.sort(self.money_sort, desc_order) table.sort(self.visitors_sort, desc_order) table.sort(self.deaths_sort, asc_order) table.sort(self.cures_sort, desc_order) table.sort(self.value_sort, desc_order) table.sort(self.salary_sort, desc_order) TheApp.video:setBlueFilterActive(false) end -- Make sure this window pauses the game, we want to let the player browse their awards function UIAnnualReport:mustPause() return true end --! Finds out which awards and/or trophies the player has been awarded this year. function UIAnnualReport:checkTrophiesAndAwards(world) local hosp = self.ui.hospital local level_config = world.map.level_config local prices = level_config and level_config.awards_trophies or nil local anybody_cured = hosp.num_cured_ty > 1 -- Check CuresAward so that we know the new config settings are available if prices and prices.TrophyMayorBonus then self.won_amount = 0 self.rep_amount = 0 self.award_won_amount = 0 -- The trophies and certificated awards/penalties available at this time -- -------------------------------- Trophies --------------------------------- -- Coke sales if hosp.sodas_sold > prices.CansofCoke then -- Bonus self:addTrophy(_S.trophy_room.sold_drinks.trophies[math.random(1, 3)], "money", prices.CansofCokeBonus) self.won_amount = self.won_amount + prices.CansofCokeBonus end -- Impressive VIP visits if anybody_cured and hosp.num_vips_ty > 0 and hosp.pleased_vips_ty == hosp.num_vips_ty then -- Bonus local win_value = (prices.TrophyMayorBonus * hosp.pleased_vips_ty) + math.random(1, 5) self:addTrophy(_S.trophy_room.happy_vips.trophies[math.random(1, 3)], "reputation", win_value) self.rep_amount = self.rep_amount + win_value end -- Impressive Reputation in the year (above a threshold throughout the year) if anybody_cured and hosp.has_impressive_reputation then -- Bonus self:addTrophy(_S.trophy_room.consistant_rep.trophies[math.random(1, 2)], "money", prices.TrophyReputationBonus) self.won_amount = self.won_amount + prices.TrophyReputationBonus end -- Everyone treated successfully, no deaths, or around a 100% Cure rate in the year if anybody_cured and hosp.num_deaths_this_year == 0 and hosp.not_cured_ty == 0 then -- Bonus self:addTrophy(_S.trophy_room.all_cured.trophies[math.random(1, 2)], "money", prices.TrophyAllCuredBonus) self.won_amount = self.won_amount + prices.TrophyAllCuredBonus elseif anybody_cured and hosp.num_deaths_this_year == 0 then -- Bonus self:addTrophy(_S.trophy_room.no_deaths.trophies[math.random(1, 3)], "money", prices.TrophyDeathBonus) self.won_amount = self.won_amount + prices.TrophyDeathBonus elseif anybody_cured and hosp.num_cured_ty > (hosp.not_cured_ty * 0.9) then -- Bonus self:addTrophy(_S.trophy_room.many_cured.trophies[math.random(1, 3)], "money", prices.TrophyCuresBonus) self.won_amount = self.won_amount + prices.TrophyCuresBonus end -------------------- Certificate Awards or Penalties --------------------- -- Reputation if anybody_cured and hosp.reputation > prices.ReputationAward then -- Bonus self:addAward(_S.trophy_room.high_rep.awards[math.random(1, 2)], "money", prices.AwardReputationBonus) self.award_won_amount = self.award_won_amount + prices.AwardReputationBonus elseif hosp.reputation < prices.ReputationPoor then -- Penalty self:addAward(_S.trophy_room.high_rep.penalty[math.random(1, 2)], "money", prices.AwardReputationPenalty) self.award_won_amount = self.award_won_amount + prices.AwardReputationPenalty end -- Hospital Value if anybody_cured and hosp.value > prices.HospValueAward then -- Bonus local win_value = prices.HospValueBonus * math.random(1, 15) self:addAward(_S.trophy_room.hosp_value.awards[1], "reputation", win_value) self.rep_amount = self.rep_amount + win_value elseif hosp.value < prices.HospValuePoor then -- Penalty local lose_value = prices.HospValuePenalty * math.random(1, 15) self:addAward(_S.trophy_room.hosp_value.penalty[1], "reputation", lose_value) self.rep_amount = self.rep_amount + lose_value end -- Should these next few be linked so that you can only get one or should you get more than one if you met the targets? -- Cures if anybody_cured and hosp.num_cured_ty > prices.CuresAward then -- Bonus self:addAward(_S.trophy_room.many_cured.awards[math.random(1, 2)], "money", prices.CuresBonus) self.award_won_amount = self.award_won_amount + prices.CuresBonus elseif hosp.num_cured_ty < prices.CuresPoor then -- Penalty self:addAward(_S.trophy_room.many_cured.penalty[math.random(1, 2)], "money", prices.CuresPenalty) self.award_won_amount = self.award_won_amount + prices.CuresPenalty end -- Deaths if anybody_cured and hosp.num_deaths_this_year == 0 and hosp.not_cured_ty == 0 then -- Bonus self:addAward(_S.trophy_room.no_deaths.awards[1], "money", prices.AllCuresBonus) self.award_won_amount = self.award_won_amount + prices.AllCuresBonus elseif anybody_cured and hosp.num_deaths_this_year < prices.DeathsAward then -- Bonus self:addAward(_S.trophy_room.no_deaths.awards[math.random(1, 2)], "money", prices.DeathsBonus) self.award_won_amount = self.award_won_amount + prices.DeathsBonus elseif hosp.num_deaths_this_year > prices.DeathsPoor then -- Penalty self:addAward(_S.trophy_room.no_deaths.penalty[math.random(1, 2)], "money", prices.DeathsPenalty) self.award_won_amount = self.award_won_amount + prices.DeathsPenalty end -- Cures V Deaths -- This value is not really a ratio since the level files cannot contain decimal values. local cure_ratio = 100 if hosp.num_deaths_this_year > 0 then cure_ratio = hosp.num_cured_ty / hosp.num_deaths_this_year end if anybody_cured and cure_ratio > prices.CuresVDeathsAward then -- Bonus self:addAward(_S.trophy_room.curesvdeaths.awards[1], "money", prices.CuresVDeathsBonus) self.award_won_amount = self.award_won_amount + prices.CuresVDeathsBonus elseif cure_ratio <= prices.CuresVDeathsPoor then -- Penalty self:addAward(_S.trophy_room.curesvdeaths.penalty[1], "money", prices.CuresVDeathsPenalty) self.award_won_amount = self.award_won_amount + prices.CuresVDeathsPenalty end end end function UIAnnualReport:updateAwards() -- Now apply the won/lost values. local hosp = self.ui.hospital if self.won_amount ~= 0 then hosp:receiveMoney(self.won_amount, _S.transactions.eoy_trophy_bonus) end if self.award_won_amount ~= 0 then hosp:receiveMoney(self.award_won_amount, _S.transactions.eoy_bonus_penalty) end if self.rep_amount ~= 0 then hosp:changeReputation("year_end", nil, math.floor(self.rep_amount)) end end -- A table defining which type of shadow each award should have. local award_shadows = { { shadow = 4 }, { shadow = 4 }, { shadow = 4 }, { shadow = 7 }, { shadow = 7 }, { shadow = 9 }, } -- Another table defining some properties of the three trophies. local trophy_prop = { { sprite = 12, x = 142, y = 324, w = 61, h = 144, }, { sprite = 14, x = 466, y = 331, w = 72, h = 145, }, { sprite = 13, x = 407, y = 324, w = 60, h = 144, }, } --! Adds a trophy figure with some text if the player clicks on it. --!param text (string) The text to show as motivation. --!param award_type (string) Should be one of "reputation" or "money" --!param amount (integer) How much the player got/lost. function UIAnnualReport:addTrophy(text, award_type, amount) local no = self.no_trophies + 1 -- Only show up to three trophies visually. if no <= 3 then local prop = trophy_prop[no] -- The actual figure and a button on it. local trophy_parts = {} trophy_parts.is_table = true -- Insert the info for later reference trophy_parts.info = { text = text, award_type = award_type, amount = math.floor(amount) } local --[[persistable:annual_report_show_trophy_motivation]] function change() self:showTrophyMotivation(no) end trophy_parts[1] = self:addPanel(prop.sprite, prop.x, prop.y) trophy_parts[2] = trophy_parts[1]:makeButton(0, 0, prop.w, prop.h, prop.sprite, change) setActive(trophy_parts, false) self.trophies[no] = trophy_parts end self.no_trophies = no end --! Adds an award frame with some text if the player clicks on it. --!param text (string) The text to show as motivation. --!param award_type (string) Should be one of "reputation" or "money" --!param amount (integer) How much the player got/lost. function UIAnnualReport:addAward(text, award_type, amount) -- How many awards the player has got up to this point. local no = self.no_awards + 1 if no <= 6 then -- Only visually show the first six awards. -- Add them one column at a time from the left. local x = no <= 3 and 16 or 525 local y = 74 if no % 3 == 2 then y = 189 elseif no % 3 == 0 then y = 304 end local award_parts = {} award_parts.is_table = true -- Insert the info for later reference award_parts.info = { text = text, award_type = award_type, amount = math.floor(amount) } -- The plaque if amount > 0 then -- A positive award award_parts[1] = self:addPanel(10, x + 12, y + 11) else -- A bad award award_parts[1] = self:addPanel(11, x + 12, y + 11) end -- The frame award_parts[2] = self:addPanel(23, x, y) -- The shadow award_parts[3] = self:addPanel(award_shadows[no].shadow, x, y) -- Make a button so that the player can click and see the motivation local --[[persistable:annual_report_show_award_motivation]] function change() self:showAwardMotivation(no) end award_parts[4] = award_parts[3]:makeButton(0, 0, 105, 103, award_shadows[no].shadow, change) self.awards[no] = award_parts setActive(award_parts, false) end -- The economic part of the award. self.no_awards = no end --! Activates the motivation scroll with the given text on it. --!param text_index_to_show The index of the award to show info from. function UIAnnualReport:showAwardMotivation(text_index_to_show) if text_index_to_show then -- Make sure no trophy motivation is shown self:showTrophyMotivation() setActive(self.scroll, true) -- Possibly hide the black award symbol if self.awards[text_index_to_show].info.amount > 0 then setActive(self.scroll[4], false) end setActive(self.fourth_close, true) setActive(self.third_change, false) self.award_motivation = text_index_to_show else setActive(self.scroll, false) setActive(self.fourth_close, false) setActive(self.third_change, true) self.award_motivation = nil end end --! Activates the motivation plaque with the given text on it. --!param text_index_to_show The index of the trophy to show info from. function UIAnnualReport:showTrophyMotivation(text_index_to_show) if text_index_to_show then -- Make sure no award motivation is shown self:showAwardMotivation() setActive(self.plaque, true) setActive(self.third_close, true) setActive(self.third_change, false) self.trophy_motivation = text_index_to_show else setActive(self.plaque, false) setActive(self.third_close, false) setActive(self.third_change, true) self.trophy_motivation = nil end end --! Overridden close function. The game should be unpaused again when closing the dialog. function UIAnnualReport:close() if TheApp.world:getLocalPlayerHospital().game_won then TheApp.video:setBlueFilterActive(false) end self:updateAwards() Window.close(self) self.ui.app.world:checkIfGameWon() end --! Changes the page of the annual report --!param page_no The page to go to, either page 1, 2 or 3. Default is currently page 2. function UIAnnualReport:changePage(page_no) -- Can only go to page 2 from page 1, and then only between page 2 and 3 --setActive(self.first_close, false) setActive(self.second_close, true) self.second_close.visible = true if page_no == 2 or not page_no then -- Statistics page. self.background = self.stat_background setActive(self.third_change, false) setActive(self.second_change, true) for i, _ in ipairs(self.trophies) do setActive(self.trophies[i], false) end for i, _ in ipairs(self.awards) do setActive(self.awards[i], false) end self.state = 2 else -- Awards and trophies self.background = self.award_background setActive(self.third_change, true) setActive(self.second_change, false) -- Show awards given. for i, _ in ipairs(self.awards) do setActive(self.awards[i], true) end -- And trophies given. for i, _ in ipairs(self.trophies) do setActive(self.trophies[i], true) end self.state = 3 end end function UIAnnualReport:draw(canvas, x, y) local s = TheApp.config.ui_scale canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y local font = self.stat_font local world = self.ui.app.world if self.state == 1 then -- Fame/Shame screen (High Scores) -- TODO: This screen should be displayed at the start of the annual report, but currently -- it is not shown, likely as the code for this being unfinished. When implemented -- we only show this screen at the very start, and once they go to the next screen -- it no longer becomes accessible. -- Title and column names font:draw(canvas, _S.high_score.best_scores, x + 220 * s, y + 104 * s, 200 * s, 0) font:draw(canvas, _S.high_score.pos, x + 218 * s, y + 132 * s) font:draw(canvas, _S.high_score.player, x + 260 * s, y + 132 * s) font:draw(canvas, _S.high_score.score, x + 360 * s, y + 132 * s) -- Players and their score local i = 1 local dy = 0 --for i = 1, 10 do font:draw(canvas, i .. ".", x + 220 * s, y + 160 * s + dy) font:draw(canvas, world:getLocalPlayerHospital().name:upper(), x + 260 * s, y + 160 * s + dy) font:draw(canvas, "NA", x + 360 * s, y + 160 * s + dy) -- dy = dy + 25 --end elseif self.state == 2 then -- Statistics screen self:drawStatisticsScreen(canvas, x, y) else -- Award and trophy screen -- Note: Each 'amount' is wrapped by string.format("%.0f", x) to persist integer notation -- Write out motivation if appropriate if self.trophy_motivation then -- If it is a plaque showing we write in stone text. local info = self.trophies[self.trophy_motivation].info self.stone_font:drawWrapped(canvas, info.text, x + 225 * s, y + 105 * s, 185 * s, "center") -- Type of award local award_type = _S.trophy_room.cash if info.award_type == "reputation" then award_type = _S.trophy_room.reputation end self.stone_font:draw(canvas, award_type, x + 220 * s, y + 330 * s, 200 * s, 0) -- Amount won/lost self.stone_font:draw(canvas, string.format("+%.0f", info.amount), x + 220 * s, y + 355 * s, 200 * s, 0) elseif self.award_motivation then local info = self.awards[self.award_motivation].info self.write_font:drawWrapped(canvas, info.text, x + 235 * s, y + 125 * s, 165 * s, "center") -- Type of award local award_type = _S.trophy_room.cash if info.award_type == "reputation" then award_type = _S.trophy_room.reputation end self.write_font:draw(canvas, award_type, x + 220 * s, y + 290 * s, 200 * s, 0) -- The amount won/lost self.write_font:draw(canvas, string.format("%+.0f", info.amount), x + 220 * s, y + 315 * s, 200 * s, 0) end end end function UIAnnualReport:drawStatisticsScreen(canvas, x, y) local font = self.stat_font local world = self.ui.app.world local s = TheApp.config.ui_scale -- Draw titles -- world date year is + 1, so adding it to 1998 realigns it font:draw(canvas, _S.menu.charts .. " " .. (world:date():year() + 1998), x + 210 * s, y + 30 * s, 200 * s, 0) font:draw(canvas, _S.high_score.categories.money, x + 140 * s, y + 98 * s, 170 * s, 0) font:draw(canvas, _S.high_score.categories.salary, x + 328 * s, y + 98 * s, 170 * s, 0) font:draw(canvas, _S.high_score.categories.cures, x + 140 * s, y + 205 * s, 170 * s, 0) font:draw(canvas, _S.high_score.categories.deaths, x + 328 * s, y + 205 * s, 170 * s, 0) font:draw(canvas, _S.high_score.categories.visitors, x + 140 * s, y + 310 * s, 170 * s, 0) font:draw(canvas, _S.high_score.categories.total_value, x + 328 * s, y + 310 * s, 170 * s, 0) -- TODO: Add possibility to right align text. -- Helper function to find where the person is in the array. -- TODO: This whole sorting thing, it should be possible to do it in a better way? local getindex = function(tablename, val) for ind, value in ipairs(tablename) do if value['hosp_index'] == val then return ind end end end local row_y = 128 * s local row_dy = 15 * s local col_x = 190 * s local row_no_y = 106 * s for i, hospital in ipairs(world.hospitals) do local name = hospital.name -- Note: Each 'value' is wrapped by string.format("%.0f", x) to persist integer notation -- Most Money local index_m = getindex(self.money_sort, i) -- index_* is the returned value of the sorted place for this player. -- However there might be many players with the same value, so each iteration a -- duplicate has been found, one additional row lower is the right place to be. font:draw(canvas, name:upper(), x + 140 * s, y + row_y + row_dy * (index_m - 1)) font:draw(canvas, string.format("%.0f", self.money_sort[index_m].value), x + 240 * s, y + row_y + row_dy * (index_m - 1), 70 * s, 0, "right") -- Highest Salary local index_s = getindex(self.salary_sort, i) font:draw(canvas, name:upper(), x + 140 * s + col_x, y + row_y + row_dy * (index_s - 1)) font:draw(canvas, string.format("%.0f", self.salary_sort[index_s].value), x + 240 * s + col_x, y + row_y + row_dy * (index_s - 1), 70 * s, 0, "right") -- Most Cures local index_c = getindex(self.cures_sort, i) font:draw(canvas, name:upper(), x + 140 * s, y + row_y + row_no_y + row_dy * (index_c - 1)) font:draw(canvas, string.format("%.0f", self.cures_sort[index_c].value), x + 240 * s, y + row_y + row_no_y + row_dy * (index_c - 1), 70 * s, 0, "right") -- Most Deaths local index_d = getindex(self.deaths_sort, i) font:draw(canvas, name:upper(), x + 140 * s + col_x, y + row_y + row_no_y + row_dy * (index_d - 1)) font:draw(canvas, string.format("%.0f", self.deaths_sort[index_d].value), x + 240 * s + col_x, y + row_y + row_no_y + row_dy * (index_d - 1), 70 * s, 0, "right") -- Most Visitors local index_v = getindex(self.visitors_sort, i) font:draw(canvas, name:upper(), x + 140 * s, y + row_y + row_no_y * 2 + row_dy * (index_v - 1)) font:draw(canvas, string.format("%.0f", self.visitors_sort[index_v].value), x + 240 * s, y + row_y + row_no_y * 2 + row_dy * (index_v - 1), 70 * s, 0, "right") -- Highest Value local index_v2 = getindex(self.value_sort, i) font:draw(canvas, name:upper(), x + 140 * s + col_x, y + row_y + row_no_y * 2 + row_dy * (index_v2 - 1)) font:draw(canvas, string.format("%.0f", self.value_sort[index_v2].value), x + 240 * s + col_x, y + row_y + row_no_y * 2 + row_dy * (index_v2 - 1), 70 * s, 0, "right") end end function UIAnnualReport:afterLoad(old, new) if old < 236 then local gfx = TheApp.gfx local palette = gfx:getPalette("Award02V.pal") self.award_background = gfx:loadRaw("Award01V", 640, 480) self.stat_background = gfx:loadRaw("Award02V", 640, 480, "QData", "QData", "Award02V.pal", true) self.background = self.stat_background local stone_text_color = { red = 80, green = 60, blue = 35 } self.stat_font = gfx:loadFontAndSpriteTable("QData", "Font45V", false, palette, { apply_ui_scale = true }) self.write_font = gfx:loadFontAndSpriteTable("QData", "Font47V", false, palette, { apply_ui_scale = true }) self.stone_font = gfx:loadFontAndSpriteTable("QData", "Font46V", false, palette, {ttf_color = stone_text_color, apply_ui_scale = true }) self.panel_sprites = gfx:loadSpriteTable("QData", "Award03V", true, palette) end UIFullscreen.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/bank_manager.lua000066400000000000000000000440771522247547500244520ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Bank manager (for loans / insurance companies) and bank statement fullscreen windows. class "UIBankManager" (UIFullscreen) ---@type UIBankManager local UIBankManager = _G["UIBankManager"] function UIBankManager:UIBankManager(ui) self:UIFullscreen(ui) local gfx = ui.app.gfx self.world = ui.app.world if not pcall(function() self.background = gfx:loadRaw("Bank01V", 640, 480, "QData", "QData", "Bank01V.pal", true) self.stat_background = gfx:loadRaw("Stat01V", 640, 480, "QData", "QData", "Stat01V.pal", true) local palette = gfx:getPalette("Bank01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Bank02V", true, palette) self.font = gfx:loadFontAndSpriteTable("QData", "Font36V", false, palette, { apply_ui_scale = true }) -- The statistics font palette = gfx:getPalette("Stat01V.pal") self.stat_font = gfx:loadFontAndSpriteTable("QData", "Font37V", false, palette, { apply_ui_scale = true }) end) then ui:addWindow(UIInformation(ui, {_S.errors.dialog_missing_graphics})) self:close() return end -- counters for the animations of the bank manager self.counter = 0 self.browsclk = 0 self.smilesclk = 0 self.eyesclk = 0 -- sprites for the animation self.smiles = self:addPanel(12, 303, 199) self.eyesblink = self:addPanel(7, 298, 173) self.browslift = self:addPanel(9, 296, 165) -- Button so that the user can click in the middle and get the statistics page and -- vice versa self.stat_button = self:addPanel(0, 230, 100) :makeButton(0, 0, 160, 300, 0, self.showStatistics) self.return_from_stat_button = self:addPanel(0, 0, 0) :makeButton(0, 0, 640, 440, 0, self.hideStatistics) self.return_from_stat_button.enabled = false -- Buttons -- The close button needs to be movable self.close_panel = self:addPanel(0, 607, 448) self.close_button = self.close_panel:makeButton(0, 0, 26, 26, 4, self.close):setTooltip(_S.tooltip.bank_manager.close) self:addPanel(0, 250, 390):makeButton(0, 0, 200, 50, 0, self.openTownMap):setTooltip(_S.tooltip.toolbar.town_map) self:addPanel(0, 192, 265):makeButton(0, 0, 21, 21, 6, self.increaseLoan):setTooltip(_S.tooltip.bank_manager.borrow_5000) self:addPanel(0, 50, 265):makeButton(0, 0, 21, 21, 5, self.decreaseLoan):setTooltip(_S.tooltip.bank_manager.repay_5000) self.graph_buttons = { self:addPanel(0, 547, 157):makeButton(0, 0, 42, 23, 3, self.showGraph1):setTooltip(_S.tooltip.bank_manager.show_graph:format(self.ui.hospital.insurance[1])), self:addPanel(0, 547, 217):makeButton(0, 0, 42, 23, 3, self.showGraph2):setTooltip(_S.tooltip.bank_manager.show_graph:format(self.ui.hospital.insurance[2])), self:addPanel(0, 547, 277):makeButton(0, 0, 42, 23, 3, self.showGraph3):setTooltip(_S.tooltip.bank_manager.show_graph:format(self.ui.hospital.insurance[3])) } self.graph = self:addPanel(1, 417, 150) self.graph.visible = false self.graph.enabled = false self.return_from_graph_button = self:addPanel(0, 547, 277) self.return_from_graph_button:makeButton(0, 0, 42, 23, 2, self.returnFromGraph):setTooltip(_S.tooltip.bank_manager.graph_return) self.return_from_graph_button.visible = false self.return_from_graph_button.enabled = false self:makeTooltip(_S.tooltip.bank_manager.hospital_value, 60, 105, 203, 157) self:makeTooltip(_S.tooltip.bank_manager.balance, 60, 170, 203, 222) self:makeTooltip(_S.tooltip.bank_manager.current_loan, 60, 235, 203, 287) self:makeTooltip(_S.tooltip.bank_manager.interest_payment, 60, 300, 203, 352) local --[[persistable:insurance_tooltip_template]] function insurance_tooltip(i) return --[[persistable:insurance_tooltip]] function() if not self.graph.visible then return _S.tooltip.bank_manager.insurance_owed:format(self.ui.hospital.insurance[i]) end end end self:makeDynamicTooltip(insurance_tooltip(1), 430, 128, 589, 180) self:makeDynamicTooltip(insurance_tooltip(2), 430, 188, 589, 240) self:makeDynamicTooltip(insurance_tooltip(3), 430, 248, 589, 300) self:makeTooltip(_S.tooltip.bank_manager.inflation_rate, 430, 308, 589, 331) self:makeTooltip(_S.tooltip.bank_manager.interest_rate, 430, 337, 589, 360) -- TODO: Add the graphs end function UIBankManager:afterLoad(old, new) if old < 36 then -- adds the new variables for bank manager animation self.browsclk = 0 self.smilesclk = 0 self.eyesclk = 0 self.counter = 0 self.smiles = self:addPanel(12, 303, 199) self.eyesblink = self:addPanel(7, 298, 173) self.browslift = self:addPanel(9, 296, 165) end if old < 236 then local gfx = TheApp.gfx self.background = gfx:loadRaw("Bank01V", 640, 480, "QData", "QData", "Bank01V.pal", true) self.stat_background = gfx:loadRaw("Stat01V", 640, 480, "QData", "QData", "Stat01V.pal", true) local palette = gfx:getPalette("Bank01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Bank02V", true, palette) self.font = gfx:loadFontAndSpriteTable("QData", "Font36V", false, palette, { apply_ui_scale = true }) palette = gfx:getPalette("Stat01V.pal") self.stat_font = gfx:loadFontAndSpriteTable("QData", "Font37V", false, palette, { apply_ui_scale = true }) end UIFullscreen.afterLoad(self, old, new) end --! Sum the values in the provided array. --!param t Array to sum. --!return (int) The sum of all values from the t array. local function sum(t) local total = 0 for _, entry in ipairs(t) do total = total + entry end return total end --! Animation function. function UIBankManager:onTick() self.counter = self.counter + 1 -- animate the eyes to blink local function animateEyes() self.eyesclk = self.eyesclk + 1 if self.eyesclk > 2 then self.eyesclk = 0 self.eyesblink.sprite_index = self.eyesblink.sprite_index + 1 if self.eyesblink.sprite_index > 8 then self.eyesblink.sprite_index = 7 end end end -- animate the eyebrows to raise and lower local function animateBrows() self.browsclk = self.browsclk + 1 if self.browsclk > 3 then self.browsclk = 0 self.browslift.sprite_index = self.browslift.sprite_index + 1 if self.browslift.sprite_index > 11 then self.browslift.sprite_index = 9 end end end -- animate the smile to frown and back again local function animateSmile() self.smilesclk = self.smilesclk + 1 if self.smilesclk > 3 then self.smilesclk = 0 self.smiles.sprite_index = self.smiles.sprite_index + 1 if self.smiles.sprite_index > 15 then self.smiles.sprite_index = 12 end end end -- counters to determine when to start and stop the animations -- two blinks if self.counter >= 24 and self.counter < 36 then animateEyes() -- one blink elseif self.counter >= 49 and self.counter < 55 then animateEyes() -- one blink elseif self.counter >= 70 and self.counter < 76 then animateEyes() -- up and down once elseif self.counter >= 88 and self.counter < 100 then animateBrows() -- smile elseif self.counter >= 132 and self.counter < 140 then animateSmile() -- two blinks elseif self.counter >= 164 and self.counter < 176 then animateEyes() -- one blink elseif self.counter >= 189 and self.counter < 195 then animateEyes() -- one blink elseif self.counter >= 219 and self.counter < 225 then animateEyes() -- brows up and down once elseif self.counter >= 248 and self.counter < 260 then animateBrows() --smiles elseif self.counter >= 272 and self.counter < 280 then animateSmile() -- brows up and down twice elseif self.counter >= 298 and self.counter < 322 then animateBrows() -- two blinks elseif self.counter >= 340 and self.counter < 352 then animateEyes() end -- reset the animation counter if self.counter > 420 then self.counter = 0 end end function UIBankManager:draw(canvas, x, y) local hospital = self.ui.hospital local s = TheApp.config.ui_scale -- Either draw the statistics page or the normal bank page if self.showingStatistics then local font = self.stat_font canvas:scale(s, "bitmap") self.stat_background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y -- Titles font:draw(canvas, _S.bank_manager.statistics_page.date, x + 44 * s, y + 37 * s, 65 * s, 0) font:draw(canvas, _S.bank_manager.statistics_page.details, x + 125 * s, y + 40 * s, 230 * s, 0) font:draw(canvas, _S.bank_manager.statistics_page.money_out, x + 373 * s, y + 42 * s, 70 * s, 0) font:draw(canvas, _S.bank_manager.statistics_page.money_in, x + 449 * s, y + 41 * s, 70 * s, 0) font:draw(canvas, _S.bank_manager.statistics_page.balance, x + 525 * s, y + 40 * s, 70 * s, 0) --[[ Lua < 5.3 stored integer money amount in floating point values. Lua 5.3 introduced an integer representation, and started printing integer floating point numbers with a trailing .0 . As a result, CorsixTH games converted from earlier Lua versions print a trailing .0 in the bank manager window. The "math.floor" around all numbers printed below avoids that problem by converting to integer representation for Lua 5.3, and doing nothing in Lua < 5.3. Note: hospital.balance is a special case and needs string conversion to persist as an integer --]] -- Each transaction -- A for loop going backwards for no = 1, #hospital.transactions do local values = hospital.transactions[#hospital.transactions - no + 1] local current_y = no * 15 * s + y + 60 * s font:draw(canvas, _S.date_format.daymonth:format(values.day, values.month), x + 48 * s, current_y) font:draw(canvas, values.desc, x + 129 * s, current_y) if values.spend then font:draw(canvas, "$ " .. math.floor(values.spend), x + 377 * s, current_y) else font:draw(canvas, "$ " .. math.floor(values.receive), x + 453 * s, current_y) end font:draw(canvas, "$ " .. math.floor(values.balance), x + 529 * s, current_y) end -- Summary font:draw(canvas, _S.bank_manager.statistics_page.current_balance, x + 373 * s, y + 420 * s, 140 * s, 0) font:draw(canvas, string.format("$%.0f", hospital.balance), x + 526 * s, y + 421 * s, 70 * s, 0) else local font = self.font canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y -- The left side font:draw(canvas, _S.bank_manager.hospital_value, x + 60 * s, y + 109 * s, 143 * s, 0) font:draw(canvas, "$ " .. math.floor(hospital.value), x + 60 * s, y + 139 * s, 143 * s, 0) font:draw(canvas, _S.bank_manager.balance, x + 60 * s, y + 174 * s, 143 * s, 0) font:draw(canvas, "$ " .. math.floor(hospital.balance), x + 60 * s, y + 204 * s, 143 * s, 0) font:draw(canvas, _S.bank_manager.current_loan, x + 60 * s, y + 239 * s, 143 * s, 0) font:draw(canvas, "$ " .. math.floor(hospital.loan), x + 60 * s, y + 269 * s, 143 * s, 0) font:draw(canvas, _S.bank_manager.interest_payment, x + 60 * s, y + 305 * s, 143 * s, 0) local interest = math.floor(hospital.loan * hospital.interest_rate / 12) font:draw(canvas, "$ " .. interest, x + 60 * s, y + 334 * s, 143 * s, 0) -- The right side font:draw(canvas, _S.bank_manager.insurance_owed, x + 430 * s, y + 102 * s, 158 * s, 0) if self.graph.visible then font:draw(canvas, hospital.insurance[self.chosen_insurance], x + 430 * s, y + 132 * s, 158 * s, 0) else font:draw(canvas, hospital.insurance[1], x + 430 * s, y + 132 * s, 158 * s, 0) font:draw(canvas, "$ ".. math.floor(sum(hospital.insurance_balance[1])), x + 430 * s, y + 162 * s, 100 * s, 0) font:draw(canvas, hospital.insurance[2], x + 430 * s, y + 192 * s, 158 * s, 0) font:draw(canvas, "$ ".. math.floor(sum(hospital.insurance_balance[2])), x + 430 * s, y + 222 * s, 100 * s, 0) font:draw(canvas, hospital.insurance[3], x + 430 * s, y + 252 * s, 158 * s, 0) font:draw(canvas, "$ ".. math.floor(sum(hospital.insurance_balance[3])), x + 430 * s, y + 282 * s, 100 * s, 0) end font:draw(canvas, _S.bank_manager.inflation_rate, x + 430 * s, y + 312 * s, 100 * s, 0) font:draw(canvas, hospital.inflation_rate * 100 .. " %", x + 550 * s, y + 313 * s, 38 * s, 0) font:draw(canvas, _S.bank_manager.interest_rate, x + 430 * s, y + 342 * s, 100 * s, 0) font:draw(canvas, hospital.interest_rate * 100 .. " %", x + 550 * s, y + 342 * s, 38 * s, 0) end end function UIBankManager:onMouseMove(x, y, dx, dy) local ui = self.ui local s = TheApp.config.ui_scale if x > 0 and x < 640 * s and y > 0 and y < 480 * s then if self.showingStatistics then ui:setCursor(ui.app.gfx:loadMainCursor("banksummary")) -- Set pie chart cursor else ui:setCursor(ui.app.gfx:loadMainCursor("bank")) -- Set dollar cursor end else ui:setCursor(ui.default_cursor) -- Return to default cursor end end function UIBankManager:close() local ui = self.ui ui:setCursor(ui.default_cursor) -- Return to default cursor UIFullscreen.close(self) self.ui:getWindow(UIBottomPanel):updateButtonStates() end function UIBankManager:showStatistics(keep_cursor) if self.closed then return end self.ui:playSound("selectx.wav") -- close any open graphs if self.graph.visible then self:returnFromGraph() end self.showingStatistics = true self.return_from_stat_button.enabled = true self.stat_button.enabled = false -- hides the animated parts of the bank manager when viewing the statement self.smiles.visible = false self.eyesblink.visible = false self.browslift.visible = false -- The close button has been slightly moved. local panel = self.close_panel panel.x = panel.x - 6 panel.y = panel.y - 6 local btn = self.close_button btn.x = btn.x - 6 btn.y = btn.y - 6 -- Change tooltip to say that the statement screen is closed. btn:setTooltip(_S.tooltip.statement.close) -- Set pie chart cursor, unless coming here from right click on the dollar sign. if not keep_cursor then self.ui:setCursor(self.ui.app.gfx:loadMainCursor("banksummary")) end end function UIBankManager:hideStatistics() self.ui:playSound("selectx.wav") self.showingStatistics = false self.return_from_stat_button.enabled = false self.stat_button.enabled = true -- shows the animated parts of the bank manager when viewing the main screen self.smiles.visible = true self.eyesblink.visible = true self.browslift.visible = true -- resets the animation counter if the screen is switched to the statement and back self.counter = -1 -- return the close button again local panel = self.close_panel panel.x = panel.x + 6 panel.y = panel.y + 6 local btn = self.close_button btn.x = btn.x + 6 btn.y = btn.y + 6 -- Change the tooltip back btn:setTooltip(_S.tooltip.bank_manager.close) -- Set dollar cursor self.ui:setCursor(self.ui.app.gfx:loadMainCursor("bank")) end function UIBankManager:showGraph() self.ui:playSound("selectx.wav") self.graph:setTooltip(_S.tooltip.bank_manager.graph:format(self.ui.hospital.insurance[self.chosen_insurance])) self.graph.visible = true self.return_from_graph_button.visible = true self.return_from_graph_button.enabled = true for i = 1, 3 do self.graph_buttons[i].visible = false self.graph_buttons[i].enabled = false end end function UIBankManager:showGraph1() self.chosen_insurance = 1 self:showGraph() end function UIBankManager:showGraph2() self.chosen_insurance = 2 self:showGraph() end function UIBankManager:showGraph3() self.chosen_insurance = 3 self:showGraph() end function UIBankManager:returnFromGraph() self.ui:playSound("selectx.wav") self.graph.visible = false self.return_from_graph_button.visible = false self.return_from_graph_button.enabled = false for i = 1, 3 do self.graph_buttons[i].enabled = true self.graph_buttons[i].visible = true end end function UIBankManager:increaseLoan() local hospital = self.ui.hospital local max_loan = not self.world.free_build_mode and (math.floor((hospital.value * 0.33) / 5000) * 5000) + 10000 or 0 if hospital.loan + 5000 <= max_loan then local amount = self.ui.app.key_modifiers.ctrl and max_loan - hospital.loan or 5000 hospital.loan = hospital.loan + amount hospital:receiveMoney(amount, _S.transactions.bank_loan) self.ui:playSound("selectx.wav") else self.ui:playSound("Wrong2.wav") end end function UIBankManager:decreaseLoan() local hospital = self.ui.hospital local amount = 5000 if self.ui.app.key_modifiers.ctrl then -- Repay as much as possible in increments of 5000 if hospital.balance > 5000 then amount = math.min(hospital.loan, math.floor(hospital.balance / 5000) * 5000) end end if hospital.loan > 0 and hospital.balance >= amount then hospital.loan = hospital.loan - amount hospital:spendMoney(amount, _S.transactions.loan_repayment) self.ui:playSound("selectx.wav") else self.ui:playSound("Wrong2.wav") end end function UIBankManager:openTownMap() local dlg = UITownMap(self.ui) self.ui:addWindow(dlg) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/drug_casebook.lua000066400000000000000000000401041522247547500246370ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Drug Casebook fullscreen window (view disease statistics and set prices). class "UICasebook" (UIFullscreen) ---@type UICasebook local UICasebook = _G["UICasebook"] function UICasebook:UICasebook(ui, disease_selection) self:UIFullscreen(ui) local gfx = ui.app.gfx if not pcall(function() self.background = gfx:loadRaw("DrugN01V", 640, 480, "QData", "QData", "DrugN01V.pal") local palette = gfx:getPalette("DrugN01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "DrugN02V", true, palette, { apply_ui_scale = true }) self.title_font = gfx:loadFontAndSpriteTable("QData", "Font25V", false, palette, { apply_ui_scale = true }) self.selected_title_font = gfx:loadFontAndSpriteTable("QData", "Font26V", false, palette, { apply_ui_scale = true }) self.drug_font = gfx:loadFontAndSpriteTable("QData", "Font24V", false, palette, { apply_ui_scale = true }) end) then ui:addWindow(UIInformation(ui, {_S.errors.dialog_missing_graphics})) self:close() return end self.ui = ui self.hospital = ui.hospital self.casebook = self.hospital.disease_casebook self:updateDiseaseList() -- Buttons self:addPanel(0, 607, 449):makeButton(0, 0, 26, 26, 3, self.close):setTooltip(_S.tooltip.casebook.close) self:addPanel(0, 439, 29):makeRepeatButton(0, 0, 70, 46, 1, self.scrollUp):setTooltip(_S.tooltip.casebook.up) self:addPanel(0, 437, 394):makeRepeatButton(0, 0, 77, 53, 2, self.scrollDown):setTooltip(_S.tooltip.casebook.down) self:addPanel(0, 354, 133):makeRepeatButton(0, 0, 22, 22, 5, self.increasePay):setTooltip(_S.tooltip.casebook.increase) self:addPanel(0, 237, 133):makeRepeatButton(0, 0, 22, 22, 4, self.decreasePay):setTooltip(_S.tooltip.casebook.decrease) self:addPanel(0, 235, 400):makeButton(0, 0, 140, 20, 0, self.concentrateResearch) :setTooltip(_S.tooltip.casebook.research) self:registerKeyHandlers(); -- Icons representing cure effectiveness and other important information. self.machinery = self:addPanel(6, 306, 352):setTooltip(_S.tooltip.casebook.cure_type.machine) self.machinery.visible = false self.drug = self:addPanel(7, 306, 352):setDynamicTooltip(--[[persistable:casebook_drug_tooltip]] function() return _S.tooltip.casebook.cure_type.drug_percentage:format(self.casebook[self.selected_disease].cure_effectiveness) end) self.drug.visible = false self.surgery = self:addPanel(8, 306, 352):setTooltip(_S.tooltip.casebook.cure_type.surgery) self.surgery.visible = false self.unknown = self:addPanel(9, 306, 352):setTooltip(_S.tooltip.casebook.cure_type.unknown) self.unknown.visible = false self.psychiatry = self:addPanel(10, 306, 352):setTooltip(_S.tooltip.casebook.cure_type.psychiatrist) self.psychiatry.visible = false self.curable = self:addPanel(11, 335, 352):setTooltip(_S.tooltip.casebook.cure_requirement.possible) self.curable.visible = false self.not_curable = self:addPanel(12, 335, 352):setTooltip(_S.tooltip.casebook.cure_requirement.not_possible) -- TODO: split up in more specific requirements self.not_curable.visible = false self.percentage_counter = false -- Counter for displaying cure price percentage for a certain time before switching to price. self:makeTooltip(_S.tooltip.casebook.reputation, 249, 72, 362, 117) self:makeTooltip(_S.tooltip.casebook.treatment_charge, 249, 117, 362, 161) self:makeTooltip(_S.tooltip.casebook.earned_money, 247, 161, 362, 205) self:makeTooltip(_S.tooltip.casebook.cured, 247, 205, 362, 249) self:makeTooltip(_S.tooltip.casebook.deaths, 247, 249, 362, 293) self:makeTooltip(_S.tooltip.casebook.sent_home, 247, 293, 362, 337) if disease_selection then self:selectDisease(disease_selection) elseif self.ui.casebook_selected_disease then self:selectDisease(self.ui.casebook_selected_disease) else self.selected_index = #self.names_sorted self.selected_disease = self.names_sorted[self.selected_index] self:updateIcons() end end function UICasebook:registerKeyHandlers() -- Hotkeys self:addKeyHandler("ingame_scroll_up", self.scrollUp) self:addKeyHandler("ingame_scroll_down", self.scrollDown) self:addKeyHandler("ingame_scroll_left", self.decreasePay) self:addKeyHandler("ingame_scroll_right", self.increasePay) end function UICasebook:close() UIFullscreen.close(self) self.ui:getWindow(UIBottomPanel):updateButtonStates() end --! The diseases list has been changed, update the list. function UICasebook:updateDiseaseList() -- A sorted list of known diseases and pseudo diseases. -- Used to be able to list the diseases in, believe it or not, -- alphabetical order. self.names_sorted = {} for n, value in pairs(self.casebook) do if value.discovered then self.names_sorted[#self.names_sorted + 1] = n end end table.sort(self.names_sorted, function(d1, d2) local c1, c2 = self.casebook[d1], self.casebook[d2] if c1.pseudo ~= c2.pseudo then return c1.pseudo end return c1.disease.name:upper() < c2.disease.name:upper() end) if self.selected_disease then -- Re-select the current disease. self:selectDisease(self.selected_disease) end end --! Select a disease by name. --!param disease (string) Name of the disease function UICasebook:selectDisease(disease) for i = 1, #self.names_sorted do if disease == self.names_sorted[i] then self.selected_index = i self.selected_disease = self.names_sorted[self.selected_index] break end end self:updateIcons() end --! Function that is called when a new entry is selected in some way --! It updates all icons etc. that react to what is selected function UICasebook:updateIcons() local disease = self.selected_disease local hosp = self.hospital local known = true -- Curable / not curable icons and their tooltip if self.casebook[disease].pseudo then self.curable.visible = false self.not_curable.visible = false else local req = hosp:checkDiseaseRequirements(disease) if not req then self.curable.visible = true self.not_curable.visible = false else self.curable.visible = false self.not_curable.visible = true -- Strings for the tooltip local research = false local build = false local staff = false -- Room requirements for _, room_id in ipairs(req.rooms) do -- Not researched yet? if not hosp:isRoomDiscovered(room_id) then known = false research = (research and (research .. ", ") or " (") .. TheApp.rooms[room_id].name end -- Researched, but not built. TODO: maybe make this an else clause to not oversize the tooltip that much build = (build and (build .. ", ") or " (") .. TheApp.rooms[room_id].name end research = research and (_S.tooltip.casebook.cure_requirement.research_machine .. research .. "). ") or "" build = build and (_S.tooltip.casebook.cure_requirement.build_room .. build .. "). ") or "" -- Staff requirements for sclass, amount in pairs(req.staff) do staff = (staff and (staff .. ", ") or " (") .. StaffProfile.translateStaffClass(sclass) .. ": " .. amount end staff = staff and (_S.tooltip.casebook.cure_requirement.hire_staff .. staff .. "). ") or "" self.not_curable:setTooltip(research .. build .. staff) end end self.unknown.visible = not known self.drug.visible = known and not not self.casebook[disease].drug self.machinery.visible = known and not not self.casebook[disease].machine and not self.casebook[disease].pseudo self.psychiatry.visible = known and not not self.casebook[disease].psychiatrist self.surgery.visible = known and not not self.casebook[disease].surgeon self.ui:updateTooltip() -- for the case that mouse is hovering over icon while player scrolls through list with keys self.percentage_counter = 50 self.ui.casebook_selected_disease = disease end function UICasebook:draw(canvas, x, y) local s = TheApp.config.ui_scale canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y local titles = self.title_font local book = self.casebook local disease = self.selected_disease local selected = self.selected_index -- All titles titles:draw(canvas, _S.casebook.reputation, x + 278 * s, y + 68 * s) titles:draw(canvas, _S.casebook.treatment_charge, x + 260 * s, y + 113 * s) titles:draw(canvas, _S.casebook.earned_money, x + 265 * s, y + 157 * s) titles:draw(canvas, _S.casebook.cured, x + 276 * s, y + 201 * s) titles:draw(canvas, _S.casebook.deaths, x + 279 * s, y + 245 * s) titles:draw(canvas, _S.casebook.sent_home, x + 270 * s, y + 289 * s) titles:draw(canvas, _S.casebook.cure, x + 255 * s, y + 354 * s) -- Specific disease information if self.hospital:canConcentrateResearch(disease) then if book[disease].concentrate_research then -- Concentrate research self.selected_title_font:draw(canvas, _S.casebook.research, x + 245 * s, y + 398 * s) else titles:draw(canvas, _S.casebook.research, x + 245 * s, y + 398 * s) end end local rep = book[disease].reputation or self.hospital.reputation if rep < self.hospital.reputation_min then rep = self.hospital.reputation_min elseif rep > self.hospital.reputation_max then rep = self.hospital.reputation_max end titles:draw(canvas, rep, x + 248 * s, y + 92 * s, 114 * s, 0) -- Reputation -- Treatment Charge is either displayed in percent, or normally local price_text = self.percentage_counter and ("%.0f%%"):format(book[disease].price * 100) or "$" .. self.hospital:getTreatmentPrice(disease) titles:draw(canvas, price_text, x + 262 * s, y + 137 * s, 90 * s, 0) -- Treatment Charge titles:draw(canvas, "$" .. book[disease].money_earned, x + 248 * s, y + 181 * s, 114 * s, 0) -- Money Earned titles:draw(canvas, book[disease].recoveries, x + 248 * s, y + 225 * s, 114 * s, 0) -- Recoveries titles:draw(canvas, book[disease].fatalities, x + 248 * s, y + 269 * s, 114 * s, 0) -- Fatalities titles:draw(canvas, book[disease].turned_away, x + 248 * s, y + 313 * s, 114 * s, 0) -- Turned away -- Cure percentage if self.drug.visible then self.drug_font:draw(canvas, book[disease].cure_effectiveness, x + 313 * s, y + 364 * s, 16 * s, 0) end -- Right-hand side list of diseases (and pseudo diseases) local index = 1 while selected - index > 0 and index <= 7 do titles:draw(canvas, book[self.names_sorted[selected - index]].disease.name:upper(), x + 409 * s, y + 203 * s - index * 18 * s) index = index + 1 end self.selected_title_font:draw(canvas, book[disease].disease.name:upper(), x + 409 * s, y + 227 * s) index = 1 while index + selected <= #self.names_sorted and index <= 7 do titles:draw(canvas, book[self.names_sorted[index + selected]].disease.name:upper(), x + 409 * s, y + 251 * s + index * 18 * s) index = index + 1 end end function UICasebook:scrollUp() if self.selected_index > 1 then if self.ui.app.key_modifiers.ctrl then self.selected_index = 1 else self.selected_index = self.selected_index - 1 end self.selected_disease = self.names_sorted[self.selected_index] self.ui:playSound("pagetur2.wav") else self.ui:playSound("Wrong2.wav") end self:updateIcons() end function UICasebook:scrollDown() if self.selected_index < #self.names_sorted then if self.ui.app.key_modifiers.ctrl then self.selected_index = #self.names_sorted else self.selected_index = self.selected_index + 1 end self.selected_disease = self.names_sorted[self.selected_index] self.ui:playSound("pagetur2.wav") else self.ui:playSound("Wrong2.wav") end self:updateIcons() end function UICasebook:increasePay() local price = self.casebook[self.selected_disease].price local amount = 0.01 if self.ui.app.key_modifiers.ctrl then amount = amount * 25 elseif self.ui.app.key_modifiers.shift then amount = amount * 5 end price = price + amount if price > 2 then price = 2 self.ui:playSound("Wrong2.wav") else self.ui:playSound("selectx.wav") end self.casebook[self.selected_disease].price = price self.percentage_counter = 50 end function UICasebook:decreasePay() local price = self.casebook[self.selected_disease].price local amount = 0.01 if self.ui.app.key_modifiers.ctrl then amount = amount * 25 elseif self.ui.app.key_modifiers.shift then amount = amount * 5 end price = price - amount if price < 0.5 then price = 0.5 self.ui:playSound("Wrong2.wav") else self.ui:playSound("selectx.wav") end self.casebook[self.selected_disease].price = price self.percentage_counter = 50 end function UICasebook:concentrateResearch() if self.hospital:canConcentrateResearch(self.selected_disease) then self.hospital.research:concentrateResearch(self.selected_disease) end end function UICasebook:onMouseDown(button, x, y) local s = TheApp.config.ui_scale -- Normal window operations if outside the disease list if x < 395 * s or x > 540 * s or y < 77 * s or y > 394 * s then return UIFullscreen.onMouseDown(self, button, x, y) end local index_diff if y < 203 * s then index_diff = -7 + math.floor((y - (77 * s)) / (18 * s)) elseif y > 269 * s then index_diff = math.floor((y - (269 * s)) / (18 * s)) + 1 else return end -- Clicking on a disease name scrolls to the disease local new_index = self.selected_index + index_diff if new_index >= 1 and new_index <= #self.names_sorted then self.selected_index = new_index self.selected_disease = self.names_sorted[self.selected_index] self.ui:playSound("pagetur2.wav") self:updateIcons() end end function UICasebook:onMouseWheel(x, y) if not UIFullscreen.onMouseWheel(self, x, y) then if self:hitTest(self.cursor_x, self.cursor_y) then if y > 0 then self:scrollUp() return true else self:scrollDown() return true end end return false else return true end end function UICasebook:onTick() -- Decrease counter for showing percentage of cure price, if applicable if self.percentage_counter then self.percentage_counter = self.percentage_counter - 1 if self.percentage_counter <= 0 then self.percentage_counter = false end end return UIFullscreen.onTick(self) end function UICasebook:afterLoad(old, new) if old < 236 then local gfx = TheApp.gfx self.background = gfx:loadRaw("DrugN01V", 640, 480, "QData", "QData", "DrugN01V.pal", true) local palette = gfx:getPalette("DrugN01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "DrugN02V", true, palette, { apply_ui_scale = true }) self.title_font = gfx:loadFontAndSpriteTable("QData", "Font25V", false, palette, { apply_ui_scale = true }) self.selected_title_font = gfx:loadFontAndSpriteTable("QData", "Font26V", false, palette, { apply_ui_scale = true }) self.drug_font = gfx:loadFontAndSpriteTable("QData", "Font24V", false, palette, { apply_ui_scale = true }) end UIFullscreen.afterLoad(self, old, new) self:registerKeyHandlers() end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/fax.lua000066400000000000000000000276271522247547500226250ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") local AnnouncementPriority = _G["AnnouncementPriority"] class "UIFax" (UIFullscreen) ---@type UIFax local UIFax = _G["UIFax"] function UIFax:UIFax(ui, icon) self:UIFullscreen(ui) local gfx = ui.app.gfx self.background = gfx:loadRaw("Fax01V", 640, 480, "QData", "QData", "Fax01V.pal", true) local palette = gfx:getPalette("Fax01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Fax02V", true, palette) self.fax_font = gfx:loadFontAndSpriteTable("QData", "Font51V", false, palette, { apply_ui_scale = true }) self.icon = icon self.message = icon.message or {} self.owner = icon.owner self.code = "" -- Add choice buttons local choices = self.message.choices self.choice_buttons = {} local orig_y = 175 if choices then for i = 1, #choices do local y = orig_y + ((i-1) + (3-#choices)) * 48 local choice = choices[i].choice -- NB: both nil and true result in enabled; also handle old "disabled" choice local enabled = (choices[i].enabled ~= false) and (choice ~= "disabled") local --[[persistable:fax_choice_button]] function callback() self:choice(i) end self.choice_buttons[i] = self:addPanel(17, 492, y, nil, nil, true, DrawFlags.Nearest) :makeButton(0, 0, 43, 43, 18, callback) :setDisabledSprite(19) :enable(enabled) end end -- Close button self:addPanel(0, 598, 440):makeButton(0, 0, 26, 26, 16, self.close):setTooltip(_S.tooltip.fax.close) self:addPanel(0, 471, 349):makeButton(0, 0, 87, 20, 14, self.cancel) -- Cancel code button self:addPanel(0, 474, 372):makeButton(0, 0, 91, 27, 15, self.validate) -- Validate code button self:addPanel(0, 168, 348):makeButton(0, 0, 43, 10, 1, self.correct) -- Correction button local function button(char) return --[[persistable:fax_button]] function() self:appendNumber(char) end end self:addPanel(0, 220, 348):makeButton(0, 0, 43, 10, 2, button("1")):setSound("Fax_1.wav") self:addPanel(0, 272, 348):makeButton(0, 0, 44, 10, 3, button("2")):setSound("Fax_2.wav") self:addPanel(0, 327, 348):makeButton(0, 0, 43, 10, 4, button("3")):setSound("Fax_3.wav") self:addPanel(0, 219, 358):makeButton(0, 0, 44, 10, 5, button("4")):setSound("Fax_4.wav") self:addPanel(0, 272, 358):makeButton(0, 0, 43, 10, 6, button("5")):setSound("Fax_5.wav") self:addPanel(0, 326, 358):makeButton(0, 0, 44, 10, 7, button("6")):setSound("Fax_6.wav") self:addPanel(0, 218, 370):makeButton(0, 0, 44, 11, 8, button("7")):setSound("Fax_7.wav") self:addPanel(0, 271, 370):makeButton(0, 0, 44, 11, 9, button("8")):setSound("Fax_8.wav") self:addPanel(0, 326, 370):makeButton(0, 0, 44, 11, 10, button("9")):setSound("Fax_9.wav") self:addPanel(0, 217, 382):makeButton(0, 0, 45, 12, 11, button("*")) self:addPanel(0, 271, 382):makeButton(0, 0, 44, 11, 12, button("0")):setSound("Fax_0.wav") self:addPanel(0, 326, 382):makeButton(0, 0, 44, 11, 13, button("#")) end -- Faxes pause the game function UIFax:mustPause() return true end function UIFax:updateChoices() local choices = self.message.choices for i, button in ipairs(self.choice_buttons) do -- NB: both nil and true result in enabled; also handle old "disabled" choice local enabled = (choices[i].enabled ~= false) and (choices[i].choice ~= "disabled") button:enable(enabled) end end function UIFax:draw(canvas, x, y) local s = TheApp.config.ui_scale canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y if self.message then local last_y = y + 40 * s for _, message in ipairs(self.message) do last_y = self.fax_font:drawWrapped(canvas, message.text, x + 190 * s, last_y + (message.offset or 0), 360 * s, "center") end local choices = self.message.choices if choices then local orig_y = y + 190 * s for i = 1, #choices do last_y = orig_y + ((i - 1) + (3 - #choices)) * 48 * s self.fax_font:drawWrapped(canvas, choices[i].text, x + 190 * s, last_y + (choices[i].offset or 0), 300 * s) end end end end --A choice was made for the fax. --!param choice_number (integer) Number of the choice function UIFax:choice(choice_number) local choices = self.message.choices local choice, additionalInfo if choices and choice_number >= 1 and choice_number <= #choices then choice = choices[choice_number].choice additionalInfo = choices[choice_number].additionalInfo else choice = "disabled" additionalInfo = nil end local owner = self.owner if owner and owner.humanoid_class then local humanoid = owner -- A choice was made, the patient is no longer waiting for a decision humanoid:setMood("patient_wait", "deactivate") humanoid.message_callback = nil if choice == "send_home" then humanoid:goHome("kicked") if humanoid.diagnosed then -- No treatment rooms humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.no_treatment_available) else -- No diagnosis rooms humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.no_diagnoses_available) end elseif choice == "wait" then -- Wait two months before going home humanoid.waiting = 60 if humanoid.diagnosed then -- Waiting for treatment room humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.waiting_for_treatment_rooms) else -- Waiting for diagnosis room humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.waiting_for_diagnosis_rooms) end elseif choice == "guess_cure" then humanoid:setDiagnosed() if humanoid:agreesToPay(humanoid.disease.id) then humanoid:setNextAction(SeekRoomAction(humanoid.disease.treatment_rooms[1]):enableTreatmentRoom()) else humanoid:goHome("over_priced", humanoid.disease.id) end elseif choice == "research" then humanoid:unregisterCallbacks() humanoid:setMood("idea", "activate") humanoid:setNextAction(SeekRoomAction("research")) end end local vip_ignores_refusal = math.random(1, 2) if choice == "accept_emergency" then self.ui.app.world:newObject("helicopter", "north") self.ui:addWindow(UIWatch(self.ui, "emergency")) elseif choice == "refuse_emergency" then self.ui.app.world:nextEmergency() -- VIP may choose to visit anyway if he is refused too often elseif (self.ui.hospital.vip_declined > 2 and vip_ignores_refusal == 2) and choice == "refuse_vip" then self.ui.hospital.num_vips = self.ui.hospital.num_vips + 1 self.ui.app.world:spawnVIP(additionalInfo.name) self.ui.hospital.vip_declined = 0 elseif choice == "refuse_vip" then self.ui.app.world:nextVip() -- don't start an inspection self.ui.hospital.vip_declined = self.ui.hospital.vip_declined + 1 elseif choice == "accept_vip" then self.ui.hospital.num_vips = self.ui.hospital.num_vips + 1 self.ui.app.world:spawnVIP(additionalInfo.name) elseif choice == "declare_epidemic" then local epidemic = self.ui.hospital.epidemic if epidemic then epidemic:resolveDeclaration() end elseif choice == "cover_up_epidemic" then local epidemic = self.ui.hospital.epidemic if epidemic then epidemic:startCoverUp() end elseif choice == "accept_new_level" then -- Set the new salary. self.ui.hospital.player_salary = self.ui.hospital.salary_offer if tonumber(self.ui.app.world.map.level_number) then local next_level = self.ui.app.world.map.level_number + 1 if self.ui.app:loadLevel(next_level, self.ui.app.map.difficulty, nil, nil, nil, nil, _S.errors.load_level_prefix) then self.ui.app.moviePlayer:playAdvanceMovie(next_level) end else local campaign_info = self.ui.app.world.campaign_info for i, level in ipairs(campaign_info.levels) do local filename = self.ui.app.world.map.level_filename or self.ui.app.world.map.level_number if filename == level then local level_info, _ = self.ui.app:readLevelFile(campaign_info.levels[i + 1], campaign_info.folder) if level_info then self.ui.app:loadLevel(level_info.path, nil, level_info.name, level_info.map_file, level_info.briefing, nil, _S.errors.load_level_prefix, campaign_info) if campaign_info.movie then local n = math.max(1, 12 - #campaign_info.levels + i) self.ui.app.moviePlayer:playAdvanceMovie(n) end break end end end end elseif choice == "return_to_main_menu" then self.ui.app.moviePlayer:playWinMovie() self.ui.app:loadMainMenu() elseif choice == "stay_on_level" then self.ui.hospital.win_declined = true end self.icon:removeMessage() self:close() end function UIFax:cancel() self.code = "" end function UIFax:correct() if self.code ~= "" then self.code = string.sub(self.code, 1, -2) --Remove last character end end function UIFax:validate() if self.code == "" then return end local code = self.code self.code = "" local code_n = (tonumber(code) or 0) / 10^5 local x = math.abs((code_n ^ 5.00001 - code_n ^ 5) * 10^5 - code_n ^ 5) local cheats = self.ui.hospital.hosp_cheats print("Code typed on fax:", code) if code == "24328" then -- Original game cheat code self.ui.adviser:say(_A.cheats.th_cheat) self.ui:addWindow(UICheats(self.ui)) elseif code == "112" then -- simple, unobfuscated cheat for everyone :) -- not that critical, but we want to make to make sure it's played fairly soon self.ui:playAnnouncement("rand*.wav", AnnouncementPriority.Critical) -- Pass cheat code to the Cheats system to handle elseif not cheats:processCheatCode(x) then -- no valid cheat code entered self.ui:playSound("fax_no.wav") return -- else Cheat executed, nothing to do here end self.ui:playSound("fax_yes.wav") -- TODO: Other cheats (preferably with slight obfuscation, as above) end function UIFax:appendNumber(number) self.code = self.code .. number end function UIFax:close() self.icon.fax = nil self.icon:adjustToggle() UIFullscreen.close(self) end function UIFax:afterLoad(old, new) if old < 236 then local gfx = TheApp.gfx self.background = gfx:loadRaw("Fax01V", 640, 480, "QData", "QData", "Fax01V.pal", true) local palette = gfx:getPalette("Fax01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Fax02V", true, palette) self.fax_font = gfx:loadFontAndSpriteTable("QData", "Font51V", false, palette, { apply_ui_scale = true }) end UIFullscreen.afterLoad(self, old, new) if old < 59 then -- self.choice_buttons added, changes to disabled buttons. -- Since it's hard to add retroactively, just close any opened fax window. self:close() end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/graphs.lua000066400000000000000000000454351522247547500233300ustar00rootroot00000000000000--[[ Copyright (c) 2011 Ted "IntelOrca" John 2013 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Charts fullscreen window class "UIGraphs" (UIFullscreen) ---@type UIGraphs local UIGraphs = _G["UIGraphs"] local TH = require("TH") -- These values are based on the background colours of the pen symbols local colours = { money_in = {182, 32, 16}, money_out = {215, 81, 8}, wages = {194, 162, 0}, balance = {28, 138, 36}, visitors = {0, 101, 198}, cures = {36, 40, 154}, deaths = {130, 0, 178}, reputation = {215, 12, 101} } function UIGraphs:UIGraphs(ui) self:UIFullscreen(ui) local gfx = ui.app.gfx if not pcall(function() self.background = gfx:loadRaw("Graph01V", 640, 480, "QData", "QData", "Graph01V.pal", true) local palette = gfx:getPalette("Graph01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Graph02V", true, palette) self.white_font = gfx:loadFontAndSpriteTable("QData", "Font01V", false, palette, { apply_ui_scale = true }) self.black_font = gfx:loadFontAndSpriteTable("QData", "Font00V", false, palette, { apply_ui_scale = true }) end) then ui:addWindow(UIInformation(ui, {_S.errors.dialog_missing_graphics})) self:close() return end self.hospital = ui.hospital -- Buttons self:addPanel(0, 63, 384):makeButton(0, 0, 26, 26, 3, self.close):setTooltip(_S.tooltip.graphs.close) self.graph_scale_panel = self:addPanel(0, 371, 384) self.graph_scale_button = self.graph_scale_panel:makeButton(0, 0, 65, 26, 2, self.toggleGraphScale):setTooltip(_S.tooltip.graphs.scale) local config = self:initRuntimeConfig() self.graph_scale = config.graph_scale local function toggleButton(sprite, x, y, option, str) local panel = self:addPanel(sprite, x, y) local btn = panel:makeToggleButton(0, 0, 42, 42, 1, --[[persistable:graphs_button]] function() self:toggleGraph(option) end):setTooltip(str) btn:setToggleState(not config[option]) end toggleButton(0, 590, 34, "money_in", _S.tooltip.graphs.money_in) toggleButton(0, 590, 86, "money_out", _S.tooltip.graphs.money_out) toggleButton(0, 590, 138, "wages", _S.tooltip.graphs.wages) toggleButton(0, 590, 190, "balance", _S.tooltip.graphs.balance) toggleButton(0, 590, 243, "visitors", _S.tooltip.graphs.visitors) toggleButton(0, 590, 295, "cures", _S.tooltip.graphs.cures) toggleButton(0, 590, 347, "deaths", _S.tooltip.graphs.deaths) toggleButton(0, 590, 400, "reputation", _S.tooltip.graphs.reputation) self.display_month = self.hospital.world.game_date:monthOfGame() self:updateLines() end local TOP_Y = 85 -- Top of the graph area local BOTTOM_Y = 353 -- Bottom of the graph area local RIGHT_X = 346 -- Right side of the graph area local VERT_DX = 25 -- Spacing between the vertical lines in the graph local VERT_COUNT = 12 -- Number of vertical lines in the graph local GRAPH_HEIGHT = BOTTOM_Y - TOP_Y --! Compute the vertical position of a value in the graph given the line extremes --!param graph_line (table) Meta data of the line, including extreme values. --!param value (number) Value to position vertically in the graph. --!return Y position in the graph of the value. local function computeVerticalValuePosition(graph_line, value) -- 0 is always included in the range. assert(graph_line.maximum >= 0 and graph_line.minimum <= 0) local range = graph_line.maximum - graph_line.minimum if range == 0 then return BOTTOM_Y end return BOTTOM_Y - math.floor(((value - graph_line.minimum) / range) * GRAPH_HEIGHT) end function UIGraphs:initRuntimeConfig() -- config is a *runtime* configuration list; re-instantiations of the dialog -- share the same values, but it's not saved across saves or sessions local config = TheApp.runtime_config.graphs_dialog if config == nil then config = {} TheApp.runtime_config.graphs_dialog = config config.money_in = true config.money_out = true config.wages = true config.balance = true config.visitors = true config.cures = true config.deaths = true config.reputation = true config.graph_scale = 3 end return config end --! Convert graph scale to a stepsize in months. --!param graph_scale (int, 1 to 3) Graph scale to display. --!return Number of months to jump between statistics values in the hospital statistics data. local function getStatisticsStepsize(graph_scale) local stepsize = 4 * 12 -- Four years if graph_scale == 2 then stepsize = 12 -- One year elseif graph_scale == 3 then stepsize = 1 -- A month end return stepsize end --! Get the statistics from the hospital that should be displayed. --! Selection starts at the last (=newest) entry, and goes back in time. --!return The values of all statistics to plot in the graph display. function UIGraphs:getHospitalStatistics() local statistics = self.hospital.statistics local values = {} local i = #statistics -- Picking hospital statistics from right to left (recent to old). local stats_stepsize = getStatisticsStepsize(self.graph_scale) while #values < VERT_COUNT and i >= 1 do values[#values + 1] = statistics[i] i = i - stats_stepsize end return values end --! Reposition the given sequence of text entries vertically such that the maximum -- absolute deviation from the ideal position is minimized. --!param label_datas (array) Text entries --!param start_index (int) First entry to move. --!param last_index (int) Last entry to move. local function moveSequence(label_datas, start_index, last_index) -- min_y, max_y Smallest and biggest vertical position of the labels. Since -- they are sorted on y, it's the position of the first and last visible entry. -- min_y_shift, max_y_shift Vertical movement of the label of the first and -- last visible entry for vertically centering the text. -- min_dev, max_dev Smallest and biggest deviation from the optimal position, -- for all visible labels. local min_y = nil local max_y, min_y_shift, max_y_shift, min_dev, max_dev for i = start_index, last_index do local label = label_datas[i] if label.pos_y then -- Label is visible local deviation = label.pos_y - label.ideal_y -- Positive if moved down if min_y then -- Updating the max y, and deviations max_y = label.pos_y max_y_shift = label.shift_y min_dev = math.min(min_dev, deviation) max_dev = math.max(max_dev, deviation) else -- First time entering the loop min_y = label.pos_y max_y = label.pos_y min_y_shift = label.shift_y max_y_shift = label.shift_y min_dev = deviation max_dev = deviation end end end -- There should be at least one visible entry in the provided range. assert(min_y ~= nil) local move = -math.floor((max_dev + min_dev) / 2) -- Suggested movement of the sequence. -- Verify the sequence will stay inside graph upper and lower limits, adjust otherwise. if min_y + min_y_shift + move < TOP_Y then move = TOP_Y - min_y - min_y_shift elseif max_y + max_y_shift + move > BOTTOM_Y then move = BOTTOM_Y - max_y - max_y_shift end -- And update the positions. for i = start_index, last_index do local label = label_datas[i] if label.pos_y then label.pos_y = label.pos_y + move end end end --! Compute new actual position of the labels. --!param graph (UIGraphs) Graph window object local function updateTextPositions(graph) local config = TheApp.runtime_config.graphs_dialog -- Reset vertical position of the text back to its ideal position. -- Disable computations on invisible graphs by removing the actual y position of it. for _, label in ipairs(graph.label_datas) do if config[label.stat] then label.pos_y = label.ideal_y else label.pos_y = nil end end -- Move labels of the graphs such that they stay at the right of the graph -- between their upper and lower boundaries. local sequence_moved = true local collision_count = 8 -- In theory the loop should terminate, but better safe than sorry. while sequence_moved and collision_count > 0 do collision_count = collision_count - 1 sequence_moved = false -- Find sequences of text entries that partly overlap or have no vertical -- space between them. Entries in such a sequence cannot be moved -- individually, the sequence as a whole must move. local start_index, last_index = nil, nil -- Start and end of the sequence. local collision = false -- True collision detected in the sequence local prev_index, prev_label = nil, nil for i, label in ipairs(graph.label_datas) do if label.pos_y then -- Label is visible if prev_label then -- Bottom y of previous label, top of current label local bottom_prev = prev_label.pos_y + prev_label.shift_y + prev_label.size_y local top_current = label.pos_y + label.shift_y if top_current < bottom_prev then -- True collision, text has to move collision = true sequence_moved = true label.pos_y = bottom_prev - label.shift_y if not start_index then start_index = prev_index end last_index = i elseif top_current == bottom_prev then -- Entry is concatenated to the sequence, position is fine. if not start_index then start_index = prev_index end last_index = i else -- Entry is not part of the sequence, move previous sequence to its -- optimal spot if required if collision then moveSequence(graph.label_datas, start_index, last_index) end collision = false start_index = nil last_index = nil -- Do not consider the current text in this round. The next entry may -- see it as the start of a next sequence. end end prev_label = label prev_index = i end end if collision then moveSequence(graph.label_datas, start_index, last_index) end end end function UIGraphs:updateLines() local s = TheApp.config.ui_scale self.values = self:getHospitalStatistics() -- Construct meta data about each graph line. local graph_datas = {} -- Table ordered by statistics name. self.graph_datas = graph_datas for stat, _ in pairs(self.values[1]) do graph_datas[stat] = {line = nil, maximum = 0, minimum = 0} end -- Decide maximum and minimum for normalisation of each line. -- 0 is always included in the computed range. for _, stats in ipairs(self.values) do for stat, value in pairs(stats) do if value < graph_datas[stat].minimum then graph_datas[stat].minimum = value end if value > graph_datas[stat].maximum then graph_datas[stat].maximum = value end end end -- Add the line objects of the graph. for stat, graph_data in pairs(self.graph_datas) do local line = TH.line() line:setWidth(2 * s) local hue = colours[stat] line:setColour(hue[1], hue[2], hue[3], 255) graph_data.line = line end -- Add the graph line pieces. Doing this separately is more efficient as all -- graph lines can be extended to the left in the same iteration. local xpos = (RIGHT_X * s) for i, stats in ipairs(self.values) do for stat, value in pairs(stats) do local line = graph_datas[stat].line local ypos = computeVerticalValuePosition(graph_datas[stat], value) * s if i == 1 then line:moveTo(xpos, ypos) else line:lineTo(xpos, ypos) end end xpos = xpos - (VERT_DX * s) end -- Compute label data for each statistic, and order by vertical position. -- The newest statistic values are displayed at the right edge of the graph, -- which decides the optimal position of the graph label text and value. local label_datas = {} self.label_datas = label_datas for stat, value in pairs(self.values[1]) do local ideal_y = computeVerticalValuePosition(graph_datas[stat], value) local text = _S.graphs[stat] .. ":" local _, size_y, _ = self.black_font:sizeOf(text) size_y = math.ceil(size_y / s) -- Size in unscaled pixels label_datas[#label_datas + 1] = { stat = stat, -- Name of the statistic it belongs to. text = text, -- Translated label text. ideal_y = ideal_y, -- Ideal vertical position. pos_y = nil, -- Actual position for drawing. size_y = size_y, -- Vertical size of the text. shift_y = -math.floor(size_y / 2), -- Amount of shift to center the text. value = value} -- Numeric value to display. end -- Sort the labels of the graph on ideal y position, and compute actual position. local function compare(a,b) return a.ideal_y < b.ideal_y end table.sort(label_datas, compare) updateTextPositions(self) -- Create small lines going from the number of month name to the actual graph. -- Like the lines, index runs from right to left at the screen. local aux_lines = {} self.aux_lines = aux_lines xpos = (RIGHT_X * s) for _ = 1, #self.values do local line = TH.line() line:setWidth(s) line:moveTo(xpos, BOTTOM_Y * s + 4 * s) line:lineTo(xpos, BOTTOM_Y * s + 8 * s) aux_lines[#aux_lines + 1] = line xpos = xpos - (VERT_DX * s) end end function UIGraphs:draw(canvas, x, y) local config = TheApp.runtime_config.graphs_dialog if not config then config = self:initRuntimeConfig() end -- Update graph automatically every month if self.display_month ~= self.hospital.world.game_date:monthOfGame() then self:updateLines() end local s = TheApp.config.ui_scale canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y local lx = x + 502 * s local lw = 80 * s local lh = 27 * s self.white_font:draw(canvas, _S.graphs.money_in, lx, y + 41 * s, lw, lh) self.white_font:draw(canvas, _S.graphs.money_out, lx, y + 93 * s, lw, lh) self.white_font:draw(canvas, _S.graphs.wages, lx, y + 145 * s, lw, lh) self.white_font:draw(canvas, _S.graphs.balance, lx, y + 197 * s, lw, lh) self.white_font:draw(canvas, _S.graphs.visitors, lx, y + 249 * s, lw, lh) self.white_font:draw(canvas, _S.graphs.cures, lx, y + 301 * s, lw, lh) self.white_font:draw(canvas, _S.graphs.deaths, lx, y + 353 * s, lw, lh) self.white_font:draw(canvas, _S.graphs.reputation, lx, y + 405 * s, lw, lh) -- Draw the different lines for stat, graph in pairs(self.graph_datas) do if config[stat] then graph.line:draw(canvas, x, y) end end -- Draw strings showing what values each entry has at the moment just to the right of the graph. -- TODO: These should be coloured according to the colour of the corresponding line. for _, label in pairs(self.label_datas) do if label.pos_y then local ypos = label.pos_y + label.shift_y self.black_font:draw(canvas, label.text, x + RIGHT_X * s + 3 * s, y + ypos * s) self.black_font:draw(canvas, string.format("%.0f", label.value), x + RIGHT_X * s + 60 * s, y + ypos * s) end end local stats_stepsize = getStatisticsStepsize(self.graph_scale) local xpos = x + RIGHT_X * s - math.floor(VERT_DX / 2) * s -- Draw numbers (or month names) below the graph assert(#self.hospital.statistics > 0) -- Avoid negative months and years. if stats_stepsize >= 12 then -- Display years local year_number = math.floor((#self.hospital.statistics - 1) / stats_stepsize) local year_steps = math.floor(stats_stepsize / 12) year_number = year_number * year_steps for i = 1, #self.values do self.black_font:drawWrapped(canvas, year_number, xpos, y + BOTTOM_Y * s + 10 * s, 25 * s, "center") xpos = xpos - VERT_DX * s year_number = year_number - year_steps -- And the small black line self.aux_lines[i]:draw(canvas, x, y) end else -- Display months local month_number = #self.hospital.statistics - math.floor((#self.hospital.statistics - 1) / 12) * 12 for i = 1, #self.values do self.black_font:drawWrapped(canvas, _S.months[month_number], xpos, y + BOTTOM_Y * s + 10 * s, 25 * s, "center") xpos = xpos - VERT_DX * s month_number = month_number - stats_stepsize if month_number < 1 then month_number = month_number + 12 end -- And the small black line self.aux_lines[i]:draw(canvas, x, y) end end end function UIGraphs:toggleGraphScale() -- The possible scales are: -- 1: Increments of four years per line -- 2: Increments of one year per line -- 3: Increments of one month per line self.graph_scale = self.graph_scale - 1 if self.graph_scale == 0 then self.graph_scale = 3 end local config = self.ui.app.runtime_config.graphs_dialog config.graph_scale = self.graph_scale self:updateLines() self.ui:playSound("selectx.wav") end function UIGraphs:toggleGraph(name) TheApp.runtime_config.graphs_dialog[name] = not TheApp.runtime_config.graphs_dialog[name] self.ui:playSound("selectx.wav") updateTextPositions(self) end function UIGraphs:close() UIFullscreen.close(self) self.ui:getWindow(UIBottomPanel):updateButtonStates() end function UIGraphs:onChangeResolution() UIFullscreen.onChangeResolution(self) -- onChangeResolution gets called during initialization before the data is ready. if self.graph_scale then self:updateLines() end end function UIGraphs:afterLoad(old, new) if old < 236 then local gfx = TheApp.gfx self.background = gfx:loadRaw("Graph01V", 640, 480, "QData", "QData", "Graph01V.pal", true) local palette = gfx:getPalette("Graph01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Graph02V", true, palette) self.white_font = gfx:loadFontAndSpriteTable("QData", "Font01V", false, palette, { apply_ui_scale = true }) self.black_font = gfx:loadFontAndSpriteTable("QData", "Font00V", false, palette, { apply_ui_scale = true }) end UIFullscreen.afterLoad(self, old, new) if old < 231 then self:close() end self:updateLines() end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/hospital_policy.lua000066400000000000000000000236241522247547500252420ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Hospital policy fullscreen window (set staff tiredness and patient cure thresholds, etc.). class "UIPolicy" (UIFullscreen) ---@type UIPolicy local UIPolicy = _G["UIPolicy"] function UIPolicy:UIPolicy(ui) self:UIFullscreen(ui) local gfx = ui.app.gfx if not pcall(function() self.background = gfx:loadRaw("Pol01V", 640, 480, "QData", "QData", "Pol01V.pal", true) local palette = gfx:getPalette("Pol01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Pol02V", true, palette) self.label_font = gfx:loadFontAndSpriteTable("QData", "Font74V", false, palette, { apply_ui_scale = true }) self.text_font = gfx:loadFontAndSpriteTable("QData", "Font105V", false, palette, { apply_ui_scale = true }) end) then ui:addWindow(UIInformation(ui, {_S.errors.dialog_missing_graphics})) self:close() return end local hosp = ui.hospital self.hospital = hosp local --[[persistable:hospital_policy_allow_staff]] function allowStaff(name) if name == "Allow" then if self.prohibit_button.toggled then -- Changing setting from prohibit to allow hosp.policies["staff_allowed_to_move"] = true self.prohibit_button:toggle() else -- Already allowed, toggle again self.allow_button:toggle() end else -- Clicking the prohibit button if self.allow_button.toggled then -- Changing setting from allow to prohibit hosp.policies["staff_allowed_to_move"] = false self.allow_button:toggle() else -- Already prohibited, toggle again self.prohibit_button:toggle() end end end -- Buttons self:addPanel(0, 607, 447):makeButton(0, 0, 26, 26, 6, self.close) :setTooltip(_S.tooltip.policy.close) self.allow_button = self:addPanel(0, 348, 379) :makeToggleButton(0, 0, 48, 17, 4, allowStaff, "Allow") :setTooltip(_S.tooltip.policy.staff_leave) :setSound("selectx.wav") -- Allow staff to move self.prohibit_button = self:addPanel(0, 395, 379) :makeToggleButton(0, 0, 48, 17, 5, allowStaff, "Prohibit") :setTooltip(_S.tooltip.policy.staff_stay) :setSound("selectx.wav") -- Prohibit staff to move if self.hospital.policies["staff_allowed_to_move"] then self.allow_button:toggle() else self.prohibit_button:toggle() end -- Slider positions local guess = 129 + math.floor(hosp.policies["guess_cure"] * 299) local home = 129 + math.floor(hosp.policies["send_home"] * 299) local stop = 124 + math.floor((hosp.policies["stop_procedure"] - 1) * 299) local staffroom = 149 + math.floor(hosp.policies["goto_staffroom"] * 250) -- Sliders self.sliders = {} self.sliders["guess_cure"] = self:addPanel(2, guess, 119, 82, 44) self.sliders["send_home"] = self:addPanel(1, home, 135, 82, 28) self.sliders["stop_procedure"] = self:addPanel(3, stop, 210, 92, 28) self.sliders["goto_staffroom"] = self:addPanel(3, staffroom, 285, 92, 28) self.sliders["guess_cure"].min_x = home self.sliders["guess_cure"].total_min_x = 129 -- Needed to get the correct value set when windows is closed. self.sliders["guess_cure"].max_x = 428 self.sliders["send_home"].min_x = 129 self.sliders["send_home"].max_x = guess self.sliders["send_home"].total_max_x = 428 self.sliders["stop_procedure"].min_x = 124 self.sliders["stop_procedure"].max_x = 423 self.sliders["stop_procedure"].addition = true -- This value goes from 1 to 2. self.sliders["goto_staffroom"].min_x = 149 self.sliders["goto_staffroom"].max_x = 399 -- Z order of the sliders. -- The small 'send_home' slider must be tested first in 'self:panelHit', -- to ensure it can always be moved, even if the big 'guess_cure' is at the -- same position. self.sliders_z = {self.sliders["send_home"], self.sliders["guess_cure"], self.sliders["stop_procedure"], self.sliders["goto_staffroom"]} -- Tooltips for slider bars self:makeTooltip(_S.tooltip.policy.diag_procedure, 161, 119, 479, 174) self:makeTooltip(_S.tooltip.policy.diag_termination, 161, 210, 479, 249) self:makeTooltip(_S.tooltip.policy.staff_rest, 161, 285, 479, 324) end function UIPolicy:draw(canvas, x, y) local s = TheApp.config.ui_scale canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y local text = self.text_font local label = self.label_font -- Labels on the panels. Labels are always capitalised. local added_x = self.sliders["send_home"].x * s local added_y = (self.sliders["send_home"].y + 2) * s label:draw(canvas, _S.policy.sliders.send_home:upper(), x + added_x, y + added_y, 82 * s, 0) added_x = self.sliders["guess_cure"].x * s added_y = (self.sliders["guess_cure"].y + 2) * s label:draw(canvas, _S.policy.sliders.guess:upper(), x + added_x, y + added_y, 82 * s, 0) added_x = self.sliders["stop_procedure"].x * s added_y = (self.sliders["stop_procedure"].y + 2) * s label:draw(canvas, _S.policy.sliders.stop:upper(), x + added_x, y + added_y, 92 * s, 0) added_x = self.sliders["goto_staffroom"].x * s added_y = (self.sliders["goto_staffroom"].y + 2) * s label:draw(canvas, _S.policy.sliders.staff_room:upper(), x + added_x, y + added_y, 92 * s, 0) -- All other text text:draw(canvas, _S.policy.header, x + 160 * s, y + 78 * s, 300 * s, 0) text:draw(canvas, _S.policy.diag_procedure, x + 161 * s, y + 100 * s) text:draw(canvas, _S.policy.diag_termination, x + 161 * s, y + 181 * s) text:draw(canvas, _S.policy.staff_rest, x + 161 * s, y + 262 * s) text:draw(canvas, _S.policy.staff_leave_rooms, x + 161 * s, y + 374 * s) end function UIPolicy:onMouseMove(x, y, dx, dy) local repaint = UIFullscreen.onMouseMove(self, x, y, dx, dy) if self.moving_panel then -- A slider is being moved. local s = TheApp.config.ui_scale local p = self.moving_panel self.moved_x = self.moved_x + dx / s local new_x = math.floor(self.moved_x + self.down_x - self.moving_panel.w / 2 - self.offset) if new_x > p.min_x then if new_x < p.max_x then self.moving_panel.x = new_x self.position_x = new_x else self.moving_panel.x = self.moving_panel.max_x self.position_x = self.moving_panel.max_x end else self.moving_panel.x = self.moving_panel.min_x self.position_x = self.moving_panel.min_x end repaint = true end return repaint end function UIPolicy:onMouseDown(code, x, y) if code == "left" then self.moving_panel = self:panelHit(x, y) if self.moving_panel then self.down_x = x self.offset = x - (self.moving_panel.x + self.moving_panel.w / 2) self.moved_x = 0 self.position_x = self.moving_panel.x return true end end return UIFullscreen.onMouseDown(self, code, x, y) end function UIPolicy:onMouseUp(code, x, y) if self.moving_panel then if self.moving_panel == self.sliders["guess_cure"] then self.sliders["send_home"].max_x = self.position_x elseif self.moving_panel == self.sliders["send_home"] then self.sliders["guess_cure"].min_x = self.position_x end end self.moving_panel = nil return UIFullscreen.onMouseUp(self, code, x, y) end --! Detect which slider is clicked by the mouse. --!param x (int) X position of the mouse. --!param y (int) Y position of the mouse. --!return Slider that was detected at the given position, or nil function UIPolicy:panelHit(x, y) local s = TheApp.config.ui_scale x = x / s y = y / s for _, panel in ipairs(self.sliders_z) do if x > panel.x and y > panel.y and x < panel.x + panel.w and y < panel.y + panel.h then return panel end end return nil end --! Close the window. function UIPolicy:close() -- Save new slider positions in the hospital policies again for the next use. for key, s in pairs(self.sliders or {}) do local divider = (s.total_max_x or s.max_x) - (s.total_min_x or s.min_x) local number = (s.addition and 1 or 0) self.hospital.policies[key] = number + (s.x - (s.total_min_x or s.min_x))/divider end UIFullscreen.close(self) self.ui:getWindow(UIBottomPanel):updateButtonStates() end function UIPolicy:afterLoad(old, new) if old < 116 then -- Ensure panelHit tests the sliders in the right order. self.sliders_z = {self.sliders["send_home"], self.sliders["guess_cure"], self.sliders["stop_procedure"], self.sliders["goto_staffroom"]} end if old < 236 then local gfx = TheApp.gfx self.background = gfx:loadRaw("Pol01V", 640, 480, "QData", "QData", "Pol01V.pal", true) local palette = gfx:getPalette("Pol01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Pol02V", true, palette) self.label_font = gfx:loadFontAndSpriteTable("QData", "Font74V", false, palette, { apply_ui_scale = true }) self.text_font = gfx:loadFontAndSpriteTable("QData", "Font105V", false, palette, { apply_ui_scale = true }) end UIFullscreen.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/progress_report.lua000066400000000000000000000244171522247547500253000ustar00rootroot00000000000000--[[ Copyright (c) 2010 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Progress Report fullscreen window (check level goals, competitors and alerts). class "UIProgressReport" (UIFullscreen) ---@type UIProgressReport local UIProgressReport = _G["UIProgressReport"] function UIProgressReport:UIProgressReport(ui) self:UIFullscreen(ui) local world = self.ui.app.world local gfx = ui.app.gfx if not pcall(function() local palette = gfx:getPalette("Rep01V.pal") self.background = gfx:loadRaw("Rep01V", 640, 480, "QData", "QData", "Rep01V.pal", true) self.red_font = gfx:loadFontAndSpriteTable("QData", "Font101V", false, palette, { apply_ui_scale = true }) self.normal_font = gfx:loadFontAndSpriteTable("QData", "Font100V", false, palette, { apply_ui_scale = true }) self.small_font = gfx:loadFontAndSpriteTable("QData", "Font106V", nil, nil, { apply_ui_scale = true }) -- Load all sprite tables needed for all goal icons self.panel_sprites_table = { MPointer = gfx:loadSpriteTable("Data", "MPointer"), Rep02V = gfx:loadSpriteTable("QData", "Rep02V", true, palette) } self.panel_sprites = self.panel_sprites_table.Rep02V -- The default goals icons end) then ui:addWindow(UIInformation(ui, {_S.errors.dialog_missing_graphics})) self:close() return end self.default_button_sound = "selectx.wav" -- Selected hospital number self.selected = 1 local hospital = world.hospitals[self.selected] -- Collect which criteria to show here, draw columns in draw -- Add the icons for the criteria local x = 263 local crit_data = world.endconditions:generateReportTable(hospital) for _, crit_table in ipairs(crit_data) do crit_table.visible = true local crit_name = crit_table.name local res_value = crit_table.win_value local cur_value = world.endconditions:getAttribute(hospital, crit_name) if crit_table.lose_value then crit_table.red = true res_value = crit_table.lose_value end -- FIXME: res_value and cure_value are depersisted as floating points, using -- string.format("%.0f", x) is not suitable due to %d (num) param in _S string local tooltip if crit_table.two_tooltips then local direction = crit_table.win_value and "over" or "under" tooltip = _S.tooltip.status[direction][crit_name] else tooltip = _S.tooltip.status[crit_name] end if crit_table.formats == 2 then tooltip = tooltip:format(math.floor(res_value), math.floor(cur_value)) elseif crit_table.formats == 3 then tooltip = tooltip:format(math.floor(res_value) / 1000, math.floor(cur_value) / 1000) else tooltip = tooltip:format(math.floor(res_value)) end if not crit_table.icon_file then -- Icons from QData/Rep02V self:addPanel(crit_table.icon, x, 240) end self:makeTooltip(tooltip, x, 180, x + 30, 180 + 90) x = x + 30 end self.crit_data = crit_data self:addPanel(0, 606, 447):makeButton(0, 0, 26, 26, 8, self.close):setTooltip(_S.tooltip.status.close) -- Own and competitor hospital buttons local function btn_handler(num) return --[[persistable:progress_report_hospital_button]] function() self.selected = num end end local function tooltip(num) return (num == 1) and _S.tooltip.status.win_progress_own or _S.tooltip.status.win_progress_other:format(world.hospitals[num].name) .. " " .. _S.misc.not_yet_implemented end local function make_hosp_button(num) self:addPanel(0, 265, 71 + (num - 1) * 25) :makeButton(0, 0, 147, 20, 9, btn_handler(num)) :setTooltip(tooltip(num)) :enable(num == 1) end for i = 1, math.min(#world.hospitals, 4) do make_hosp_button(i) end self:makeTooltip(_S.tooltip.status.population_chart .. " " .. _S.misc.not_yet_implemented, 433, 64, 578, 179) self:makeTooltip(_S.tooltip.status.happiness, 433, 179, 578, 209) self:makeTooltip(_S.tooltip.status.thirst, 433, 209, 578, 239) self:makeTooltip(_S.tooltip.status.warmth, 433, 239, 578, 270) self.warning = self:addPanel(7, 252, 295) self.warning.visible = false -- TODO: 6 gray end function UIProgressReport:close() UIFullscreen.close(self) self.ui:getWindow(UIBottomPanel):updateButtonStates() end function UIProgressReport:drawMarkers(canvas, x, y) local s = TheApp.config.ui_scale local x_min = 455 * s local x_max = 551 * s local width = x_max - x_min local happiness = self.ui.hospital:getAveragePatientAttribute("happiness", 0.5) local thirst = 1 - self.ui.hospital:getAveragePatientAttribute("thirst", 0.5) local warmth = self.ui.hospital:getAveragePatientAttribute("warmth", nil) warmth = UIPatient.normaliseWarmth(warmth) self.panel_sprites:draw(canvas, 5, math.floor(x + x_min + width * happiness), y + 193 * s, { scaleFactor = s }) self.panel_sprites:draw(canvas, 5, math.floor(x + x_min + width * thirst), y + 223 * s, { scaleFactor = s }) self.panel_sprites:draw(canvas, 5, math.floor(x + x_min + width * warmth), y + 254 * s, { scaleFactor = s }) local world = self.ui.app.world if world.free_build_mode then self.normal_font:drawWrapped(canvas, _S.progress_report.free_build, x + 265 * s, y + 194 * s, 150 * s, "center") end -- Possibly show warning that it's too cold, too hot, patients not happy -- or if there's need to build drink machines as folks are thirsty. Only show one at a time though! -- TODO the levels may need adjustment local msg = self.ui.hospital.show_progress_screen_warnings if warmth < 0.3 and msg == 1 then self.warning.visible = true self.normal_font:drawWrapped(canvas, _S.progress_report.too_cold, x + 285 * s, y + 285 * s, 285 * s) elseif warmth > 0.7 and msg == 1 then self.warning.visible = true self.normal_font:drawWrapped(canvas, _S.progress_report.too_hot, x + 285 * s, y + 285 * s, 285 * s) elseif thirst > 0.7 and msg == 2 then self.warning.visible = true self.normal_font:drawWrapped(canvas, _S.progress_report.more_drinks_machines, x + 285 * s, y + 285 * s, 285 * s) elseif happiness < 0.8 and happiness >= 0.6 and msg == 3 then self.warning.visible = true self.normal_font:drawWrapped(canvas, _S.progress_report.quite_unhappy, x + 285 * s, y + 285 * s, 285 * s) elseif happiness < 0.6 and msg == 3 then self.warning.visible = true self.normal_font:drawWrapped(canvas, _S.progress_report.very_unhappy, x + 285 * s, y + 285 * s, 285 * s) else self.warning.visible = false end end function UIProgressReport:draw(canvas, x, y) local s = TheApp.config.ui_scale canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y local world = self.ui.app.world local hospital = world.hospitals[self.selected] -- Names of the players playing local ly = 73 * s for pnum, player in ipairs(world.hospitals) do local font = (pnum == self.selected) and self.red_font or self.normal_font font:draw(canvas, player.name:upper(), x + 272 * s, y + ly) ly = ly + 25 * s end -- Draw the vertical bars for the selected conditions local lx = 270 * s for _, crit_table in ipairs(self.crit_data) do if crit_table.visible then local sprite_offset = crit_table.red and 2 or 0 local crit_name = crit_table.name local cur_value = world.endconditions:getAttribute(hospital, crit_name) local height if crit_table.red then local lose = crit_table.lose_value height = s + 49 * (1 - ((cur_value - lose)/(crit_table.boundary - lose))) * s else height = s + 49 * (cur_value/crit_table.win_value) * s end if height > 50 * s then height = 50 * s end local result_y = 0 for dy = 0, height - 1, 1 do self.panel_sprites:draw(canvas, 1 + sprite_offset, x + lx, y + 237 * s - dy, { scaleFactor = s }) result_y = result_y + 1 end self.panel_sprites:draw(canvas, 2 + sprite_offset, x + lx, y + 237 * s - result_y, { scaleFactor = s }) if crit_table.icon_file then -- Icons not from QData/Rep02V local icon_sprites = self.panel_sprites_table[crit_table.icon_file] icon_sprites:draw(canvas, crit_table.icon, x + lx, y + 240 * s, { scaleFactor = s, flags = DrawFlags.Nearest }) end lx = lx + 30 * s end end self:drawMarkers(canvas, x, y) self.normal_font:draw(canvas, _S.progress_report.header .. " " .. (world:date():year() + 1999), x + 227 * s, y + 40 * s, 400 * s, 0) self.small_font:draw(canvas, _S.progress_report.win_criteria:upper(), x + 263 * s, y + 172 * s) self.small_font:draw(canvas, _S.progress_report.percentage_pop:upper() .. " " .. (hospital.population * 100) .. "%", x + 450 * s, y + 65 * s) end function UIProgressReport:afterLoad(old, new) if old < 206 then self:close() end if old < 236 then local gfx = TheApp.gfx local palette = gfx:getPalette("Rep01V.pal") self.background = gfx:loadRaw("Rep01V", 640, 480, "QData", "QData", "Rep01V.pal", true) self.red_font = gfx:loadFontAndSpriteTable("QData", "Font101V", false, palette, { apply_ui_scale = true }) self.normal_font = gfx:loadFontAndSpriteTable("QData", "Font100V", false, palette, { apply_ui_scale = true }) self.small_font = gfx:loadFontAndSpriteTable("QData", "Font106V", nil, nil, { apply_ui_scale = true }) end UIFullscreen.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/research_policy.lua000066400000000000000000000224651522247547500252150ustar00rootroot00000000000000--[[ Copyright (c) 2010 M.Chalon Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "UIResearch" (UIFullscreen) ---@type UIResearch local UIResearch = _G["UIResearch"] local research_categories = { "cure", "diagnosis", "drugs", "improvements", "specialisation", } local col_bg = { red = 24, green = 24, blue = 20, } function UIResearch:UIResearch(ui) self:UIFullscreen(ui) local gfx = ui.app.gfx self.background = gfx:loadRaw("Res01V", 640, 480, "QData", "QData", "Res01V.pal", true) local palette = gfx:getPalette("Res01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Res02V", true, palette) self.label_font = gfx:loadFontAndSpriteTable("QData", "Font43V", false, palette, { apply_ui_scale = true }) self.number_font = gfx:loadFontAndSpriteTable("QData", "Font43V", false, palette, { apply_ui_scale = true }) self.hospital = ui.hospital self.research = ui.hospital.research self:_playBgSound() -- stubs for backwards compatibility --luacheck: push no unused local --[[persistable:research_policy_adjust]] function _1() end local --[[persistable:research_less_stub]] function _2() end local --[[persistable:research_more_stub]] function _3() end local --[[persistable:research_policy_window_reset_bg_sound]] function _4() end --luacheck: pop -- Close button self:addPanel(0, 607, 447):makeButton(0, 0, 40, 40, 4, self.close):setTooltip(_S.tooltip.research.close) self.adjust_buttons = {} self:updateCategories() self.waterclk = 0 self.ratclk = 0 self.waterpanel= self:addPanel(5, 2, 312) self.ratpanel= self:addPanel(13, 480, 365) -- Add tooltips to progress of research. local lx = 165 local ly = 60 for _, category in ipairs(research_categories) do self:makeDynamicTooltip(--[[persistable:research_policy_research_progress_tooltip]] function() local research = self.research.research_policy if research[category].current and not research[category].current.dummy then local required = self.research:getResearchRequired(research[category].current) local available = self.research.research_progress[research[category].current].points return _S.tooltip.research_policy.research_progress:format(math.round(available), required) else return _S.tooltip.research_policy.no_research end end, lx, ly, lx + 315, ly + 41) ly = ly + 41 end end function UIResearch:updateCategories() -- Buttons to increase/decrease percentages local size = 40 local topy = 21 local spacing = 41 local c1 = 372 local c2 = 450 local function handler_factory(area, mode) return --[[persistable:research_policy_adjust_handler]] function(window) window:adjustResearch(area, mode) end end --[[ Retrieves a translated string dynamically !param string_name (string) The key name (e.g., "tooltip.research.cure_dec") !return (string) The actual translation (e.g., "Decrease cure percentage") ]] local function get_localized_string(string_name) local var_table = _G["_S"] for token in string.gmatch(string_name, "[%w_]+") do var_table = var_table[token] end return var_table end for i, area in ipairs(research_categories) do local current = self.hospital.research.research_policy[area].current if current then self.adjust_buttons[area] = { less = self:addPanel(0, c1, topy + i * spacing) :makeRepeatButton(0, 0, size, size, 1, handler_factory(area, "less")) :setTooltip(get_localized_string("tooltip.research." .. area .. "_dec")), more = self:addPanel(0, c2, topy + i * spacing) :makeRepeatButton(0, 0, size, size, 2, handler_factory(area, "more")) :setTooltip(get_localized_string("tooltip.research." .. area .. "_inc")), } else if self.adjust_buttons[area] then self.adjust_buttons[area].less.enabled = false self.adjust_buttons[area].more.enabled = false end self:addColourPanel(c1, topy + i * spacing, 120, 30, col_bg.red, col_bg.green, col_bg.blue) end end end function UIResearch:adjustResearch(area, mode) local res = self.research local amount = 1 if self.ui.app.key_modifiers.ctrl then amount = amount * 20 elseif self.ui.app.key_modifiers.shift then amount = amount * 5 end if mode == "less" then if res.research_policy[area].frac > 0 then res.research_policy[area].frac = math.max(0, res.research_policy[area].frac - amount) self.ui:playSound("selectx.wav") else self.ui:playSound("Wrong2.wav") end elseif mode == "more" then if res.research_policy.total < 100 and res.research_policy[area].current then res.research_policy[area].frac = res.research_policy[area].frac + math.min(amount, 100 - res.research_policy.total) self.ui:playSound("selectx.wav") else self.ui:playSound("Wrong2.wav") end end res.research_policy.total = 0 for _, category in ipairs(research_categories) do res.research_policy.total = res.research_policy.total + res.research_policy[category].frac end end --! Construct and play this window's background sound. function UIResearch:_playBgSound() self.bg_sound = self.ui:playSound("Research.wav", nil, nil, -1) end function UIResearch:onTick() -- sprite index for the water are between 5 and 12 -- We use a sub clock self.waterclk = self.waterclk + 1 if self.waterclk > 3 then self.waterclk = 0 self.waterpanel.sprite_index = self.waterpanel.sprite_index + 1 if self.waterpanel.sprite_index > 12 then self.waterpanel.sprite_index = 5 end end -- sprite index for the rat are between 10 and 15 -- We use a sub clock self.ratclk = self.ratclk + 1 if self.ratclk > 3 then self.ratclk = 0 -- sprite index for the water are between 13 and 20 self.ratpanel.sprite_index = self.ratpanel.sprite_index + 1 if self.ratpanel.sprite_index > 20 then self.ratpanel.sprite_index = 13 end end return UIFullscreen.onTick(self) end function UIResearch:draw(canvas, x, y) local s = TheApp.config.ui_scale canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y local num_font = self.number_font local lbl_font = self.label_font local ytop = 28 * s local spacing = 41 * s local research = self.research.research_policy for i, category in ipairs(research_categories) do local ypos = y + ytop + i * spacing lbl_font:draw(canvas, _S.research.categories[category], x + 170 * s, ypos) if not research[category].current then num_font:draw(canvas, _S.misc.done, x + 270 * s, ypos, 300 * s, 0) else num_font:draw(canvas, research[category].frac, x + 270 * s, ypos, 300 * s, 0) end -- Display research progress. if research[category].current and not research[category].current.dummy then local ly = ypos + 26 * s local lx = x + 172 * s local required = self.research:getResearchRequired(research[category].current) local available = self.research.research_progress[research[category].current].points local length = 290 * s * available / required local dx = 0 while dx + 10 * s < length do self.panel_sprites:draw(canvas, 3, lx + dx, ly, { scaleFactor = s }) dx = dx + 10 * s end end end num_font:draw(canvas, research.total, x + 270 * s, y + 288 * s, 300 * s, 0) end function UIResearch:close() self.ui:stopSound(self.bg_sound) UIFullscreen.close(self) self.ui:getWindow(UIBottomPanel):updateButtonStates() end function UIResearch:afterLoad(old, new) UIFullscreen.afterLoad(self, old, new) if old < 26 then self.adjust_buttons = {} for i, area in ipairs(research_categories) do self.adjust_buttons[area] = { less = self.buttons[2 * i], more = self.buttons[2 * i + 1], } end end if old < 236 then local gfx = TheApp.gfx self.background = gfx:loadRaw("Res01V", 640, 480, "QData", "QData", "Res01V.pal", true) local palette = gfx:getPalette("Res01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Res02V", true, palette) self.label_font = gfx:loadFontAndSpriteTable("QData", "Font43V", false, palette, { apply_ui_scale = true }) self.number_font = gfx:loadFontAndSpriteTable("QData", "Font43V", false, palette, { apply_ui_scale = true }) end self:_playBgSound() end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/staff_management.lua000066400000000000000000000654761522247547500253520ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local math_floor = math.floor --! Staff management screen class "UIStaffManagement" (UIFullscreen) ---@type UIStaffManagement local UIStaffManagement = _G["UIStaffManagement"] function UIStaffManagement:UIStaffManagement(ui) self:UIFullscreen(ui) local gfx = ui.app.gfx if not pcall(function() self.background = gfx:loadRaw("Staff01V", 640, 480, "QData", "QData", "Staff01V.pal", true) local palette = gfx:getPalette("Staff01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Staff02V", true, palette) self.title_font = gfx:loadFontAndSpriteTable("QData", "Font01V", false, palette, { apply_ui_scale = true }) self.blue_font = gfx:loadFontAndSpriteTable("QData", "Font02V", false, palette, { apply_ui_scale = true }) self.face_parts = gfx:loadRaw("Face01V", 65, 1350, nil, "Data", "MPalette.dat", false, { flags = DrawFlags.Nearest }) end) then ui:addWindow(UIInformation(ui, {_S.errors.dialog_missing_graphics})) self:close() return end local hosp = ui.hospital self.ui = ui self.hospital = hosp -- Order the staff self:updateStaffList() self.default_button_sound = "selectx.wav" self.hover_id = 0 self.visual_hover_id = 0 self.hover_sound = nil; -- Close button self:addPanel(0, 603, 443):makeButton(0, 0, 26, 26, 10, self.close):setTooltip(_S.tooltip.staff_list.close) -- Top categories local --[[persistable:staff_management_category]] function category(name) self:setCategory(name) end self.categories = { self:addPanel(0, 53, 15):makeToggleButton(0, 0, 58, 58, 1, category, "Doctor"):setTooltip(_S.tooltip.staff_list.doctors), self:addPanel(0, 119, 15):makeToggleButton(0, 0, 58, 58, 1, category, "Nurse"):setTooltip(_S.tooltip.staff_list.nurses), self:addPanel(0, 185, 15):makeToggleButton(0, 0, 58, 58, 1, category, "Handyman"):setTooltip(_S.tooltip.staff_list.handymen), self:addPanel(0, 251, 15):makeToggleButton(0, 0, 58, 58, 1, category, "Receptionist"):setTooltip(_S.tooltip.staff_list.receptionists), } -- Other buttons self:addPanel(0, 12, 86):makeButton(0, 0, 31, 74, 2, self.scrollUp):setTooltip(_S.tooltip.staff_list.prev_person) self:addPanel(0, 12, 274):makeButton(0, 0, 31, 74, 3, self.scrollDown):setTooltip(_S.tooltip.staff_list.next_person) -- Disable the default sounds on the the following three buttons as their sounds are implemented in the callback. self:addPanel(0, 319, 372):makeButton(0, 0, 112, 39, 7, self.payBonus):setTooltip(_S.tooltip.staff_list.bonus):setSound() self:addPanel(0, 319, 418):makeButton(0, 0, 112, 39, 8, self.increaseSalary):setTooltip(_S.tooltip.staff_list.pay_rise):setSound() self:addPanel(0, 438, 372):makeButton(0, 0, 45, 85, 9, self.fire):setTooltip(_S.tooltip.staff_list.sack):setSound() -- "Arrow" to show title of doctors self.arrow = self:addPanel(12, 259, 397) self.arrow_position = 259 self.arrow.visible = false -- Scroll bar dot self.scroll_dot = self:addPanel(11, 21, 168) self.scroll_dot.visible = false -- Doctors' skills or progress towards them self.progress_surgeon = self:addPanel(17, 188, 408) self.progress_surgeon.visible = false self.qualified_surgeon = self:addPanel(20, 188, 408):setTooltip(_S.tooltip.staff_list.surgeon) self.qualified_surgeon.visible = false self.progress_psychiatrist = self:addPanel(18, 228, 408) self.progress_psychiatrist.visible = false self.qualified_psychiatrist = self:addPanel(21, 228, 408):setTooltip(_S.tooltip.staff_list.psychiatrist) self.qualified_psychiatrist.visible = false self.progress_researcher = self:addPanel(19, 268, 408) self.progress_researcher.visible = false self.qualified_researcher = self:addPanel(22, 268, 408):setTooltip(_S.tooltip.staff_list.researcher) self.qualified_researcher.visible = false -- Blankers for each row local row_blankers = {} for i = 1, 10 do row_blankers[i] = self:addColourPanel(50, 55 + i*27, 580, 27, 60, 174, 203) end self.row_blankers = row_blankers -- Extra background for the portrait self.portrait_back = self:addColourPanel(65, 374, 71, 81, 210, 255, 255) self.portrait_back.visible = false -- Doctor skill blankers self.title_blanker = self:addColourPanel(225, 365, 90, 39, 57, 166, 198) self.skill_blanker = self:addColourPanel(142, 406, 168, 54, 57, 166, 198) -- Tooltip regions self:makeTooltip(_S.tooltip.staff_list.happiness, 321, 51, 421, 75) self:makeTooltip(_S.tooltip.staff_list.tiredness, 426, 51, 526, 75) self:makeTooltip(_S.tooltip.staff_list.ability, 530, 51, 629, 75) self:makeTooltip(_S.tooltip.staff_list.detail, 146, 367, 226, 407) self:makeTooltip(_S.tooltip.staff_list.view_staff, 495, 371, 583, 458) self.row_tooltips = {} for line_num = 1, 10 do self.row_tooltips[line_num] = { self:makeTooltip(_S.tooltip.staff_list.salary, 193, 84 + 27 * (line_num - 1), 313, 108 + 27 * (line_num - 1)), self:makeTooltip(_S.tooltip.staff_list.happiness_2, 321, 84 + 27 * (line_num - 1), 421, 108 + 27 * (line_num - 1)), self:makeTooltip(_S.tooltip.staff_list.tiredness_2, 425, 84 + 27 * (line_num - 1), 525, 108 + 27 * (line_num - 1)), self:makeTooltip(_S.tooltip.staff_list.ability_2, 529, 84 + 27 * (line_num - 1), 628, 108 + 27 * (line_num - 1)), } end self.seniority_tooltip = self:makeTooltip(_S.tooltip.staff_list.doctor_seniority, 230, 367, 310, 407) self.skills_tooltip = self:makeTooltip(_S.tooltip.staff_list.skills, 146, 406, 186, 460) self:setCategory("Doctor") self:registerKeyHandlers() end function UIStaffManagement:registerKeyHandlers() -- Hotkeys. self:addKeyHandler("ingame_scroll_left", self.previousCategory) self:addKeyHandler("ingame_scroll_right", self.nextCategory) self:addKeyHandler("ingame_scroll_up", self.previousStaff) self:addKeyHandler("ingame_scroll_down", self.nextStaff) end function UIStaffManagement:updateTooltips() self.seniority_tooltip.enabled = self.category == "Doctor" self.skills_tooltip.enabled = self.category == "Doctor" for i, tooltips in ipairs(self.row_tooltips) do local state = 10 * (self.page - 1) + i <= #self.staff_members[self.category] for _, tooltip in ipairs(tooltips) do tooltip.enabled = state end end end function UIStaffManagement:updateStaffList(staff_member_removed) local selected_staff if staff_member_removed then -- The update was issued because someone was removed from the list, we need to handle this. selected_staff = self.staff_members[self.category][self.selected_staff] if self.staff_members[self.category][self.selected_staff] == staff_member_removed then self.selected_staff = nil selected_staff = nil end end local hosp = self.hospital local staff_members = { Doctor = {}, Nurse = {}, Handyman = {}, Receptionist = {}, } for i, staff in ipairs(hosp.staff) do staff.hire_order = i local list = staff_members[staff.profile.humanoid_class] list[#list + 1] = staff -- The selected staff might have been moved because someone else was removed from the list. if selected_staff == staff then self.selected_staff = #list end end -- Sort staff tables by attribute and direction for _, staff_tbl in pairs(staff_members) do table.sort(staff_tbl, function(left, right) local ascending = self.list_direction == "up" local a = ascending and left or right local b = not ascending and left or right if self.list_order == "hire" then return a.hire_order > b.hire_order elseif self.list_order == "morale" then return a:getAttribute("happiness") > b:getAttribute("happiness") elseif self.list_order == "tiredness" then return a:getAttribute("fatigue") > b:getAttribute("fatigue") elseif self.list_order == "skill" then return a.profile.skill > b.profile.skill end end) end self.staff_members = staff_members if staff_member_removed then self:updateTooltips() -- If we're viewing a page that no longer exists, go back a page if self.page > math.ceil(#self.staff_members[self.category] / 10) then self:scrollUp() end self:updateScrollDotVisibility() end end function UIStaffManagement:setCategory(name) self.skill_blanker.visible = name ~= "Doctor" self.title_blanker.visible = name ~= "Doctor" self.category = name for _, btn in ipairs(self.categories) do local should_be_toggled = btn.on_click_self == name if btn.toggled ~= should_be_toggled then btn:toggle() end end self.selected_staff = nil self.page = 1 self:updateScrollDotVisibility() self:updateTooltips() end -- Function to select given list index in the current category. -- Includes jumping to correct page. function UIStaffManagement:selectIndex(idx) if idx > #self.staff_members[self.category] or idx <= 0 then return end self.page = math.floor((idx - 1) / 10) + 1 self.selected_staff = idx end -- Function to select a given staff member. -- Includes switching to correct category and page. function UIStaffManagement:selectStaff(staff) self:setCategory(staff.profile.humanoid_class) for i, s in ipairs(self.staff_members[self.category]) do if s == staff then self:selectIndex(i) break end end end function UIStaffManagement:draw(canvas, x, y) local s = TheApp.config.ui_scale canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y local titles = self.title_font -- Titles local ty = y + 31 * s local tw = 95 * s titles:draw(canvas, _S.staff_list.morale, x + 323 * s, ty, tw, 0) titles:draw(canvas, _S.staff_list.tiredness, x + 427 * s, ty, tw, 0) titles:draw(canvas, _S.staff_list.skill, x + 530 * s, ty, tw, 0) -- Number of employees local ney = y + 57 * s titles:draw(canvas, #self.staff_members["Doctor"], x + 79 * s, ney) titles:draw(canvas, #self.staff_members["Nurse"], x + 145 * s, ney) titles:draw(canvas, #self.staff_members["Handyman"], x + 211 * s, ney) titles:draw(canvas, #self.staff_members["Receptionist"], x + 277 * s, ney) local total_happiness = 0 local total_fatigue = 0 local total_skill = 0 -- Draw each listing local staff_list = self.staff_members[self.category] for i, staff in ipairs(staff_list) do if not staff then break end -- Morale, tiredness and skill, used to draw the average at the end too. local happiness_bar_width = 0 if staff:getAttribute("happiness") then happiness_bar_width = math_floor(staff:getAttribute("happiness") * 40 * s + 0.5) total_happiness = total_happiness + staff:getAttribute("happiness") end local fatigue_bar_width = 40.5 * s if staff:getAttribute("fatigue") then total_fatigue = total_fatigue + staff:getAttribute("fatigue") fatigue_bar_width = math_floor((1 - staff:getAttribute("fatigue")) * 40 * s + 0.5) end local skill_bar_width = math_floor(staff.profile.skill * 40 * s + 0.5) total_skill = total_skill + staff.profile.skill -- Is this staff member on the visible page? Then draw him/her if i > (self.page-1)*10 and i <= self.page*10 then local row_no = i - (self.page-1)*10 self.row_blankers[row_no].visible = false titles:draw(canvas, row_no + 10*(self.page-1), x + 58 * s, y + 63 * s + row_no * 27 * s) local font = self.title_font if i == self.visual_hover_id then font = self.blue_font end local row_y = y + 63 * s + row_no * 27 * s font:draw(canvas, staff.profile:getFullName(), x + 88 * s, row_y) font:draw(canvas, "$" .. staff.profile.wage, x + 230 * s, row_y, 80 * s, 0) -- Draw the morale, tiredness and skill for this staff member if happiness_bar_width ~= 0 then for dx = 0, happiness_bar_width - 1 do self.panel_sprites:draw(canvas, 16, x + 351 * s + dx, row_y + 2 * s, { scaleFactor = s }) end end if fatigue_bar_width ~= 0 then for dx = 0, fatigue_bar_width - 1 do self.panel_sprites:draw(canvas, 15, x + 456 * s + dx, row_y + 2 * s, { scaleFactor = s }) end end if skill_bar_width ~= 0 then for dx = 0, skill_bar_width - 1 do self.panel_sprites:draw(canvas, 14, x + 559 * s + dx, row_y + 2 * s, { scaleFactor = s }) end end end end -- Make sure the other ones are not visible for i = #staff_list + 1 - (self.page-1)*10, 10 do self.row_blankers[i].visible = true end -- Draw the average morale, tiredness and skill if #staff_list ~= 0 then local happiness_bar_width = math_floor((total_happiness/#staff_list) * 40 * s + 0.5) if happiness_bar_width ~= 0 then for dx = 0, happiness_bar_width - 1 do self.panel_sprites:draw(canvas, 16, x + 351 * s + dx, y + 59 * s, { scaleFactor = s }) end end local fatigue_bar_width = math_floor((1 - (total_fatigue/#staff_list)) * 40 * s + 0.5) if fatigue_bar_width ~= 0 then for dx = 0, fatigue_bar_width - 1 do self.panel_sprites:draw(canvas, 15, x + 456 * s + dx, y + 59 * s, { scaleFactor = s }) end end local skill_bar_width = math_floor((total_skill/#staff_list) * 40 + 0.5) if skill_bar_width ~= 0 then for dx = 0, skill_bar_width - 1 do self.panel_sprites:draw(canvas, 14, x + 559 * s + dx, y + 59 * s, { scaleFactor = s }) end end end -- Reset self.progress_surgeon.visible = false self.qualified_surgeon.visible = false self.progress_psychiatrist.visible = false self.qualified_psychiatrist.visible = false self.progress_researcher.visible = false self.qualified_researcher.visible = false self.arrow.visible = false self.portrait_back.visible = false -- If a staff member is selected, draw picture, skill etc if self.selected_staff then local staff = self.staff_members[self.category][self.selected_staff] local profile = staff.profile -- Draw the red rectangle TODO: Make a neater function in C? local red = canvas:mapRGB(221, 83, 0) local y_pos = self.selected_staff - (self.page - 1)*10 canvas:drawRect(red, x + 49 * s, y + y_pos * 27 * s + 54 * s, 581 * s, s) canvas:drawRect(red, x + 49 * s, y + y_pos * 27 * s + 81 * s, 581 * s, s) canvas:drawRect(red, x + 49 * s, y + y_pos * 27 * s + 54 * s, s, 28 * s) canvas:drawRect(red, x + 630 * s, y + y_pos * 27 * s + 54 * s, s, 28 * s) -- Current position in the game world local px, py = self:getStaffPosition(37, 61) canvas:scale(s) self.ui.app.map:draw(canvas, px, py, 83, 82, math.floor(x / s) + 497, math.floor(y / s) + 373) canvas:scale(1) -- Portrait self.portrait_back.visible = true profile:drawFace(canvas, x + 68 * s, y + 377 * s, self.face_parts, s) -- 10 % increase in salary or a bonus: local max_salary = self.hospital.world.map.level_config.payroll.MaxSalary local new_salary = math.min(math.floor(profile.wage * 1.1), max_salary) titles:draw(canvas, "$" .. math_floor(profile.wage*0.1), x + 377 * s, y + 387 * s, 45 * s, 0) titles:draw(canvas, "$" .. new_salary, x + 377 * s, y + 432 * s, 45 * s, 0) -- Attention to detail local attention_bar_width = math_floor(profile.attention_to_detail * 40 * s + 0.5) if attention_bar_width ~= 0 then for dx = 0, attention_bar_width - 1 do self.panel_sprites:draw(canvas, 13, x + 178 * s + dx, y + 387 * s, { scaleFactor = s }) end end -- If it is a doctor, draw skills etc. if self.category == "Doctor" then if profile.is_surgeon > 0 then if profile.is_surgeon >= 1.0 then self.qualified_surgeon.visible = true elseif not profile.is_consultant then self.progress_surgeon.visible = true self.progress_surgeon:setTooltip(_S.tooltip.staff_list.surgeon_train:format(math_floor(profile.is_surgeon * 100))) local progress = math_floor(profile.is_surgeon * 23 * s + 0.5) for dx = 0, progress - 1 do self.panel_sprites:draw(canvas, 13, x + 196 * s + dx, y + 447 * s, { scaleFactor = s }) end end end if profile.is_psychiatrist > 0 then if profile.is_psychiatrist >= 1.0 then self.qualified_psychiatrist.visible = true elseif not profile.is_consultant then self.progress_psychiatrist.visible = true self.progress_psychiatrist:setTooltip(_S.tooltip.staff_list.psychiatrist_train:format(math_floor(profile.is_psychiatrist * 100))) local progress = math_floor(profile.is_psychiatrist * 23 * s + 0.5) for dx = 0, progress - 1 do self.panel_sprites:draw(canvas, 13, x + 236 * s + dx, y + 447 * s, { scaleFactor = s }) end end end if profile.is_researcher > 0 then if profile.is_researcher >= 1.0 then self.qualified_researcher.visible = true elseif not profile.is_consultant then self.progress_researcher.visible = true self.progress_researcher:setTooltip(_S.tooltip.staff_list.researcher_train:format(math_floor(profile.is_researcher * 100))) local progress = math_floor(profile.is_researcher * 23 * s + 0.5) for dx = 0, progress - 1 do self.panel_sprites:draw(canvas, 13, x + 276 * s + dx, y + 447 * s, { scaleFactor = s }) end end end -- Draw type of doctor self.arrow.visible = true if profile.is_consultant then self.arrow.x = self.arrow_position + 29 elseif profile.is_junior then self.arrow.x = self.arrow_position - 23 else self.arrow.x = self.arrow_position end end end end function UIStaffManagement:onMouseDown(code, x, y) if code == "left" then local s = TheApp.config.ui_scale local inside_staff_list_area = (x > 50 * s and x < 624 * s) and (y > 82 * s and y < 351 * s) local inside_header_area = (x > 321 * s and x < 629 * s) and (y > 22 * s and y < 46 * s) if inside_staff_list_area then -- Hit staff row if #self.staff_members[self.category] - (self.page - 1)*10 > math_floor((y - 81 * s)/(27 * s)) then self.selected_staff = math_floor((y - 81 * s)/(27 * s)) + 1 + (self.page - 1)*10 TheApp.audio:playSound("selectx.wav") end elseif inside_header_area then local function order_by(attribute) if self.list_order == attribute then -- Change direction if not self.list_direction or self.list_direction == "down" then self.list_direction = "up" else self.list_order = "hire" self.list_direction = "down" end else self.list_order = attribute -- Switch order attribute end self:updateStaffList() end if x < 422 * s then order_by("morale") elseif x > 425 * s and x < 527 * s then order_by("tiredness") elseif x > 529 * s then order_by("skill") end else local inside_view_of_the_staff_area = (x > 497 * s and x < 580 * s) and (y > 373 * s and y < 455 * s) if inside_view_of_the_staff_area and self.selected_staff then return false -- on false window dragging won't work end end end return UIFullscreen.onMouseDown(self, code, x, y) end function UIStaffManagement:onMouseMove(x, y, dx, dy) local s = TheApp.config.ui_scale local current_hover_id local inside_staff_list_area local header_height = 81 * s local row_height = 27 * s local active_hover_id = math_floor((y - header_height)/row_height) if self.page*10 > #self.staff_members[self.category] then -- Make sure area contains no hollow space inside_staff_list_area = (x > 50 * s and x < 624 * s) and (y > header_height and y < header_height + row_height * (#self.staff_members[self.category] % 10)) else inside_staff_list_area = (x > 50 * s and x < 624 * s) and (y > header_height and y < 351 * s) end if inside_staff_list_area then if #self.staff_members[self.category] - (self.page - 1)*10 > active_hover_id then current_hover_id = active_hover_id + 1 + (self.page - 1)*10 if self.hover_id ~= current_hover_id then if self.hover_sound then self.ui:stopSound(self.hover_sound) end self.hover_sound = self.ui:playSound("Hlight5.wav") self.hover_id = current_hover_id self.visual_hover_id = current_hover_id end end else self.hover_id = nil self.visual_hover_id = nil end return Window:onMouseMove(x, y, dx, dy) end function UIStaffManagement:onMouseUp(code, x, y) if code == "left" then local s = TheApp.config.ui_scale local inside_view_of_the_staff_area = (x > 497 * s and x < 580 * s) and (y > 373 * s and y < 455 * s) if inside_view_of_the_staff_area and self.selected_staff then -- Hit in the view of the staff. local ui = self.ui ui:scrollMapTo(self:getStaffPosition()) ui:addWindow(UIStaff(ui, self.staff_members[self.category][self.selected_staff])) self:close() end end return UIFullscreen.onMouseUp(self, code, x, y) end function UIStaffManagement:onMouseWheel(x, y) if not UIFullscreen.onMouseWheel(self, x, y) then if self:hitTest(self.cursor_x, self.cursor_y) then if y > 0 then self:scrollUp() return true else self:scrollDown() return true end end return false else return true end end function UIFullscreen:getStaffPosition(dx, dy) local staff = self.staff_members[self.category][self.selected_staff] local x, y = self.ui.app.map:WorldToScreen(staff.tile_x, staff.tile_y) local px, py = staff.th:getSecondaryMarker() return x + px - (dx or 0), y + py - (dy or 0) end function UIStaffManagement:previousCategory() if self.category == "Nurse" then self:setCategory("Doctor") elseif self.category == "Handyman" then self:setCategory("Nurse") elseif self.category == "Receptionist" then self:setCategory("Handyman") end end function UIStaffManagement:nextCategory() if self.category == "Doctor" then self:setCategory("Nurse") elseif self.category == "Nurse" then self:setCategory("Handyman") elseif self.category == "Handyman" then self:setCategory("Receptionist") end end function UIStaffManagement:previousStaff() -- If nothing currently selected, select the last one, otherwise the previous. if self.selected_staff == nil then self:selectIndex(#self.staff_members[self.category]) else self:selectIndex(self.selected_staff - 1) end end function UIStaffManagement:nextStaff() -- If nothing currently selected, select the first one, otherwise the next. if self.selected_staff == nil then self:selectIndex(1) else self:selectIndex(self.selected_staff + 1) end end function UIStaffManagement:scrollUp() if self.scroll_dot.visible and self.page > 1 then self.selected_staff = nil self.page = self.page - 1 self:updateScrollDot() end self:updateTooltips() end function UIStaffManagement:scrollDown() if self.scroll_dot.visible and self.page*10 < #self.staff_members[self.category] then self.selected_staff = nil self.page = self.page + 1 self:updateScrollDot() end self:updateTooltips() end --! Updates the position of the paging scroll indicator function UIStaffManagement:updateScrollDot() local numPages = math.ceil(#self.staff_members[self.category] / 10) local yOffset = math_floor(83 * ((self.page - 1) / (numPages - 1))) self.scroll_dot.y = 168 + yOffset end --! Updates whether the paging scroll indicator is visible and its position if visible function UIStaffManagement:updateScrollDotVisibility() if #self.staff_members[self.category] > 10 then self.scroll_dot.visible = true self:updateScrollDot() else self.scroll_dot.visible = false end end function UIStaffManagement:payBonus() local staff = self.staff_members[self.category][self.selected_staff] if self.selected_staff and self.hospital.balance > math_floor(staff.profile.wage*0.1) then staff:changeAttribute("happiness", 0.5) self.hospital:spendMoney(math_floor(staff.profile.wage*0.1), _S.transactions.personal_bonus) self.ui:playSound("cashreg.wav") return end self.ui:playSound("wrong2.wav") end function UIStaffManagement:increaseSalary() if self.selected_staff then local staff = self.staff_members[self.category][self.selected_staff] if staff:increaseWage(math_floor(staff.profile.wage * 0.1)) then return end end self.ui:playSound("wrong2.wav") end function UIStaffManagement:fire() if self.selected_staff then self.ui:playSound(self.default_button_sound) self.ui:addWindow(UIConfirmDialog(self.ui, false, _S.confirmation.sack_staff, --[[persistable:staff_management_confirm_sack]] function() local current_category = self.staff_members[self.category] current_category[self.selected_staff]:fire() -- Close the staff window if open local staff_window = self.ui:getWindow(UIStaff) if staff_window and staff_window.staff == current_category[self.selected_staff] then staff_window:close() end -- Update the staff list self:updateStaffList(current_category[self.selected_staff]) end)) -- End of confirmation dialog else self.ui:playSound("wrong2.wav") end end function UIStaffManagement:close() UIFullscreen.close(self) self.ui:getWindow(UIBottomPanel):updateButtonStates() end function UIStaffManagement:afterLoad(old, new) self:registerKeyHandlers() if old < 175 then self:close() end if old < 236 then local gfx = TheApp.gfx self.background = gfx:loadRaw("Staff01V", 640, 480, "QData", "QData", "Staff01V.pal", true) local palette = gfx:getPalette("Staff01V.pal") self.panel_sprites = gfx:loadSpriteTable("QData", "Staff02V", true, palette, { apply_ui_scale = true }) self.title_font = gfx:loadFontAndSpriteTable("QData", "Font01V", false, palette, { apply_ui_scale = true }) self.face_parts = gfx:loadRaw("Face01V", 65, 1350, nil, "Data", "MPalette.dat", false, { flags = DrawFlags.Nearest }) end UIFullscreen.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/fullscreen/town_map.lua000066400000000000000000000345471522247547500236720ustar00rootroot00000000000000--[[ Copyright (c) 2010 Sjors Gielen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") --! Town map fullscreen window (purchase land, set radiator levels, map overview). class "UITownMap" (UIFullscreen) ---@type UITownMap local UITownMap = _G["UITownMap"] function UITownMap:UITownMap(ui) self:UIFullscreen(ui) local app = self.ui.app local gfx = app.gfx self.app = app if not pcall(function() local palette = gfx:getPalette("Town01V.pal") self.background = gfx:loadRaw("Town01V", 640, 480, "QData", "QData", "Town01V.pal", true) self.info_font = gfx:loadFontAndSpriteTable("QData", "Font34V", false, palette, { apply_ui_scale = true }) self.city_font = gfx:loadFontAndSpriteTable("QData", "Font31V", false, palette, { apply_ui_scale = true }) self.money_font = gfx:loadFontAndSpriteTable("QData", "Font05V", nil, nil, { apply_ui_scale = true }) self.panel_sprites = gfx:loadSpriteTable("QData", "Town02V", true, palette) end) then ui:addWindow(UIInformation(ui, {_S.errors.dialog_missing_graphics})) self:close() return end self.default_button_sound = "selectx.wav" self.default_buy_sound = "buy.wav" local config = self:initRuntimeConfig() -- A list of areas in the town, including the owner. -- In single player there are only bought and available areas, in multiplayer -- areas are owned by players and when a player wants to buy a piece of -- terrain, an auction is started. -- TODO display the areas, in the right color -- TODO display everything in the areas -- TODO multiplayer mode -- NB: original TH closed the town map on right click of balance button. -- This is likely a bug and we do not copy this behavior. self:addPanel(0, 30, 420):makeButton(0, 0, 200, 50, 0, self.bankManager, nil, self.bankStats):setTooltip(_S.tooltip.town_map.balance) self:addPanel(0, 594, 437):makeButton(0, 0, 26, 26, 8, self.close):setTooltip(_S.tooltip.town_map.close) self:addPanel(0, 171, 315):makeButton(0, 0, 20, 20, 6, self.increaseHeat):setTooltip(_S.tooltip.town_map.heat_inc) self:addPanel(0, 70, 314):makeButton(0, 0, 20, 20, 7, self.decreaseHeat):setTooltip(_S.tooltip.town_map.heat_dec) -- add the toggle buttons local function toggle_button(sprite, x, y, option, str) local panel = self:addPanel(sprite, x, y) local btn = panel:makeToggleButton(0, 0, 46, 46, 0, --[[persistable:town_map_config_button]] function(_, state) app.runtime_config.town_dialog[option] = state end):setTooltip(str) btn:setToggleState(config[option]) end toggle_button(1, 140, 37, "people_enabled", _S.tooltip.town_map.people) toggle_button(2, 140, 89, "plants_enabled", _S.tooltip.town_map.plants) toggle_button(3, 140, 141, "fire_ext_enabled", _S.tooltip.town_map.fire_extinguishers) toggle_button(4, 140, 193, "objects_enabled", _S.tooltip.town_map.objects) toggle_button(5, 140, 246, "radiators_enabled", _S.tooltip.town_map.radiators) self:makeTooltip(_S.tooltip.town_map.heat_level, 94, 318, 167, 331) self:makeTooltip(_S.tooltip.town_map.heating_bill, 72, 351, 167, 374) end function UITownMap:initRuntimeConfig() -- config is a *runtime* configuration list; re-instantiations of the dialog -- share the same values, but it's not saved across saves or sessions local config = self.app.runtime_config.town_dialog if config == nil then config = {} self.app.runtime_config.town_dialog = config config.people_enabled = true config.plants_enabled = true config.fire_ext_enabled = true config.objects_enabled = true config.radiators_enabled = true end return config end function UITownMap:close() UIFullscreen.close(self) self.ui:getWindow(UIBottomPanel):updateButtonStates() end local flag_cache = {} function UITownMap:onMouseMove(x, y, dx, dy) local s = TheApp.config.ui_scale local tx = math.floor((x - 227 * s) / (3 * s)) local ty = math.floor((y - 25 * s) / (3 * s)) self.hover_plot = nil local map = self.ui.hospital.world.map.th local width, height = map:size() if 0 <= tx and tx < width and 0 <= ty and ty < height then self.hover_plot = map:getCellFlags(tx + 1, ty + 1, flag_cache).parcelId end return UIFullscreen.onMouseMove(self, x, y) end function UITownMap:onMouseUp(button, x, y) local redraw = false local s = TheApp.config.ui_scale if button == "left" then local tx = math.floor((x - 227 * s) / (3 * s)) local ty = math.floor((y - 25 * s) / (3 * s)) local map = self.ui.hospital.world.map.th local width, height = map:size() if 0 <= tx and tx < width and 0 <= ty and ty < height then local plot = map:getCellFlags(tx + 1, ty + 1, flag_cache).parcelId if plot ~= 0 then if self.ui.hospital:purchasePlot(plot) then self.ui:playSound("cashreg.wav") redraw = true else self.ui:playSound("Wrong2.wav") end end end elseif button == "right" then local tx = math.floor((x - 227 * s) / (3 * s)) local ty = math.floor((y - 25 * s) / (3 * s)) local map = self.ui.hospital.world.map.th local width, height = map:size() if 0 <= tx and tx < width and 0 <= ty and ty < height then local plot = map:getCellFlags(tx + 1, ty + 1, flag_cache).parcelId if plot ~= 0 then local sx, sy = self.ui.app.map:WorldToScreen(tx, ty) self.ui:scrollMapTo(sx, sy) self:close() end end end return UIFullscreen.onMouseUp(self, button, x, y) or redraw end function UITownMap:draw(canvas, x, y) local s = TheApp.config.ui_scale canvas:scale(s, "bitmap") self.background:draw(canvas, self.x * s + x, self.y * s + y) canvas:scale(1, "bitmap") UIFullscreen.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y local app = self.ui.app local hospital = self.ui.hospital local world = hospital.world local map = world.map -- config is a *runtime* configuration list; re-instantiations of the dialog -- share the same values, but it's not saved across saves or sessions local config = app.runtime_config.town_dialog if not config then config = self:initRuntimeConfig() end -- We need to draw number of people, plants, fire extinguishers, other objects -- and radiators. -- NB: original TH's patient count was always 1 too big (started counting at 1) -- This is likely a bug and we do not copy this behavior. local patientcount = hospital:countPatients() local plants = hospital:countPlants() local fireext = hospital:countFireExtinguishers() local objs = hospital:countGeneralObjects() local radiators = hospital:countRadiators() self.info_font:draw(canvas, patientcount, x + 95 * s, y + 57 * s) self.info_font:draw(canvas, plants, x + 95 * s, y + 110 * s) self.info_font:draw(canvas, fireext, x + 95 * s, y + 157 * s) self.info_font:draw(canvas, objs, x + 95 * s, y + 211 * s) self.info_font:draw(canvas, radiators, x + 95 * s, y + 265 * s) -- Heating costs local heating_costs = world.free_build_mode and 0 or math.floor(((hospital.heating.radiator_heat *10)* radiators)* 7.5) self.info_font:draw(canvas, ("%8i"):format(heating_costs), x + 100 * s, y + 355 * s) -- Draw balance with temporary offset in unicode languages local offset_x, offset_y = 0, 0 if self.ui.app.gfx:drawNumbersFromUnicode() then offset_x = 4 * s offset_y = 2 * s end local balance = math.floor(hospital.balance) local i = 7 - tostring(balance):len() -- Indent balances under 100k for digit in ("%7i"):format(balance):gmatch("[-0-9]") do self.money_font:draw(canvas, digit, x + offset_x + 49 * s + i * 13 * s, y + offset_y + 431 * s) i = i + 1 end -- radiator heat local rad_max_width = 60 * s -- Radiator indicator width local rad_width = rad_max_width * hospital.heating.radiator_heat for dx = 0, rad_width, s do self.panel_sprites:draw(canvas, 9, x + 101 * s + dx, y + 319 * s, { scaleFactor = s }) end -- city name self.city_font:draw(canvas, map.level_name, x + 300 * s, y + 43 * s, 260 * s, 15 * s) local town_map_offset_x = x + 227 * s local town_map_offset_y = y + 25 * s TH.windowHelpers.townMapDraw(self, map.th, canvas, town_map_offset_x, town_map_offset_y, config.radiators_enabled, s) -- Draw entities local function draw_entities(list, color, size) for _, ent in ipairs(list) do -- 3 is the number of pixel that are used to represent one world tile in the map canvas:drawRect(color, town_map_offset_x + ent.tile_x * 3 * s - 2 * s, town_map_offset_y + ent.tile_y * 3 * s + s, size * s, size * s) end end local function draw_entities_in_hospital(list, color, size) for _, ent in ipairs(list) do local tile_x, tile_y = ent.tile_x, ent.tile_y if tile_x and hospital:isInHospital(tile_x, tile_y) then -- 3 is the number of pixel that are used to represent one world tile in the map canvas:drawRect(color, town_map_offset_x + tile_x * 3 * s - 2 * s, town_map_offset_y + tile_y * 3 * s + s, size * s, size * s) end end end --! Select entities of the world by their id. --!param id Id of the objects to select. --!return (list) The selected entities. local function get_objects_by_id(id) local ret = {} for _, obj_list in pairs(world.objects) do for _, obj in ipairs(obj_list) do if obj.object_type.id == id then table.insert(ret, obj) end end end return ret end if config.people_enabled then local staff_color = canvas:mapRGB(97, 109, 235) local patient_color = canvas:mapRGB(255, 255, 255) draw_entities_in_hospital(self.ui.hospital.staff, staff_color, 2) draw_entities_in_hospital(self.ui.hospital.patients, patient_color, 2) end if config.radiators_enabled then local radiator_color = canvas:mapRGB(255, 0, 70) draw_entities(get_objects_by_id("radiator"), radiator_color, 1) end if config.fire_ext_enabled then local fire_ext_color = canvas:mapRGB(216, 0, 0) draw_entities(get_objects_by_id("extinguisher"), fire_ext_color, 2) end if config.plants_enabled then local plant_color = canvas:mapRGB(127, 180, 73) draw_entities(get_objects_by_id("plant"), plant_color, 2) end if config.objects_enabled then local machine_list = {} for _, obj_list in pairs(world.objects) do for _, obj in ipairs(obj_list) do if obj.object_type.show_in_town_map then table.insert(machine_list, obj) end end end local machine_color = canvas:mapRGB(142, 182, 182) draw_entities(machine_list, machine_color, 3) end -- plot number, owner, area and price local plot_num = "-" local tile_count = "-" local price = "-" local owner = "-" if self.hover_plot then if self.hover_plot == 0 then price = _S.town_map.not_for_sale else tile_count = map:getParcelTileCount(self.hover_plot) local owner_num = map.th:getPlotOwner(self.hover_plot) if owner_num == 0 then owner = _S.town_map.for_sale price = world.free_build_mode and "$0" or ("$" .. map:getParcelPrice(self.hover_plot)) else owner = world.hospitals[owner_num].name end plot_num = self.hover_plot end end self.city_font:draw(canvas, _S.town_map.number, x + 227 * s, y + 435 * s) self.city_font:draw(canvas, ":", x + 300 * s, y + 435 * s) self.city_font:draw(canvas, plot_num, x + 315 * s, y + 435 * s) self.city_font:draw(canvas, _S.town_map.owner, x + 227 * s, y + 450 * s) self.city_font:draw(canvas, ":", x + 300 * s, y + 450 * s) self.city_font:draw(canvas, owner, x + 315 * s, y + 450 * s) self.city_font:draw(canvas, _S.town_map.area, x + 432 * s, y + 435 * s) self.city_font:draw(canvas, ":", x + 495 * s, y + 435 * s) self.city_font:draw(canvas, tile_count, x + 515 * s, y + 435 * s) self.city_font:draw(canvas, _S.town_map.price, x + 432 * s, y + 450 * s) self.city_font:draw(canvas, ":", x + 495 * s, y + 450 * s) self.city_font:draw(canvas, price, x + 515 * s, y + 450 * s) end function UITownMap:decreaseHeat() local h = self.ui.hospital local heat = math.floor(h.heating.radiator_heat * 10 + 0.5) if not h.heating.heating_broke then heat = math.max(heat - 1, 1) h.heating.radiator_heat = heat / 10 end end function UITownMap:increaseHeat() local h = self.ui.hospital local heat = math.floor(h.heating.radiator_heat * 10 + 0.5) if not h.heating.heating_broke then heat = math.min(heat + 1, 10) h.heating.radiator_heat = heat / 10 end end function UITownMap:bankManager() local dlg = UIBankManager(self.ui) self.ui:addWindow(dlg) self.ui:getWindow(UIBottomPanel):updateButtonStates() end function UITownMap:bankStats() local dlg = UIBankManager(self.ui) dlg:showStatistics() self.ui:addWindow(dlg) self.ui:getWindow(UIBottomPanel):updateButtonStates() end function UITownMap:afterLoad(old, new) if old < 236 then local gfx = TheApp.gfx local palette = gfx:getPalette("Town01V.pal") self.background = gfx:loadRaw("Town01V", 640, 480, "QData", "QData", "Town01V.pal", true) self.info_font = gfx:loadFontAndSpriteTable("QData", "Font34V", false, palette, { apply_ui_scale = true }) self.city_font = gfx:loadFontAndSpriteTable("QData", "Font31V", false, palette, { apply_ui_scale = true }) self.panel_sprites = gfx:loadSpriteTable("QData", "Town02V", true, palette, { apply_ui_scale = true }) end UIFullscreen.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/furnish_corridor.lua000066400000000000000000000244211522247547500232530ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Copyright (c) 2024 Felipe "FMMazur" Mazur Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") local math_floor = math.floor --! Dialog for purchasing `Object`s (for the corridor or for rooms). class "UIFurnishCorridor" (Window) ---@type UIFurnishCorridor local UIFurnishCorridor = _G["UIFurnishCorridor"] function UIFurnishCorridor:UIFurnishCorridor(ui, objects, edit_dialog) self:Window() local app = ui.app if edit_dialog then self.modal_class = "furnish" self.edit_dialog = edit_dialog else self.modal_class = "main" end self.esc_closes = true self.ui = ui self.anims = app.anims self.width = 360 self.height = 274 self:setDefaultPosition(0.5, 0.4) local selected_label_color = { red = 40, green = 40, blue = 250 } self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req10V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.blue_font = app.gfx:loadFontAndSpriteTable("QData", "Font02V", nil, nil, {ttf_color = selected_label_color, apply_ui_scale = true }) self.title_text = _S.buy_objects_window.choose_items self.price_text = (_S.buy_objects_window.price .. " "):gsub(" $", " ") self.total_text = (_S.buy_objects_window.total .. " "):gsub(" $", " ") self.item_price = 0 self.total_price = 0 self.list_hover_index = 0 self.hover_sound = nil self.preview_anim = TH.animation() self.objects = { } if objects then for _, object in pairs(objects) do self.objects[#self.objects + 1] = {object = object.object, start_qty = object.qty, qty = object.qty, min_qty = object.min_qty} -- Had to make a copy of objects list. Otherwise, we will modify the original variable (Opening dialog twice keeps memory of previously chosen quantities) end else for _, object in ipairs(app.objects) do if object.corridor_object then self.objects[#self.objects + 1] = {object = object, start_qty = 0, qty = 0, min_qty = 0} end end table.sort(self.objects, function(o1, o2) return o1.object.corridor_object < o2.object.corridor_object end) end self:addPanel(228, 0, 0) -- Grid top for y = 33, 103, 10 do self:addPanel(229, 0, y) -- Grid body end self:addPanel(230, 0, 113) -- Grid bottom self:addPanel(231, 0, 148) -- Cost / total top self:addPanel(232, 0, 173) -- Cost / total body self:addPanel(233, 0, 215) -- Cost / total bottom self:addPanel(234, 0, 248) -- Close button background self:addPanel(234, 0, 252) -- Close button background extension self:addPanel(242, 9, 237):makeButton(0, 0, 129, 28, 243, self.close):setTooltip(_S.tooltip.buy_objects_window.cancel) self:addPanel(235, 146, 0) -- List top self:addPanel(236, 146, 223) -- List bottom self:addPanel(237, 154, 238):makeButton(0, 0, 197, 28, 238, self.confirm):setTooltip(_S.tooltip.buy_objects_window.confirm):setSound("selectx.wav") local i = 1 local function item_callback(index, qty) local is_negative_quantity = qty < 0 return --[[persistable:furnish_corridor_item_callback]] function(window) -- lewri: a persistence bug from the 'decrease' button converts integer to a -- float, for now, sanitise it back to an integer qty = math.floor(qty) local quantity, error = window:purchaseItem(index, qty) if quantity == nil and not is_negative_quantity then -- give visual warning that player doesn't have enough $ to buy or can't buy more window.ui.adviser:say(error, false, true) window.ui:playSound("wrong2.wav") elseif qty > 0 then window.ui:playSound("AddItemJ.wav") else window.ui:playSound("DelItemJ.wav") end end end for y = 34, 205, 19 do local x = 146 self:addPanel(239, x, y) -- List body if i <= #self.objects then self:addPanel(240, x + 12, y):makeButton(0, 0, 125, 19, 241, item_callback(i, 1), nil, item_callback(i, -1)):setTooltip(self.objects[i].object.tooltip) self:addPanel(244, x + 139, y + 1):makeRepeatButton(0, 0, 17, 17, 245, item_callback(i, -1)):setTooltip(_S.tooltip.buy_objects_window.decrease) self:addPanel(246, x + 183, y + 1):makeRepeatButton(0, 0, 17, 17, 247, item_callback(i, 1)):setTooltip(_S.tooltip.buy_objects_window.increase) end i = i + 1 end self:makeTooltip(_S.tooltip.buy_objects_window.price, 20, 168, 127, 187) self:makeTooltip(_S.tooltip.buy_objects_window.total_value, 20, 196, 127, 215) self:registerKeyHandlers() end function UIFurnishCorridor:registerKeyHandlers() self:addKeyHandler("global_confirm", self.confirm) self:addKeyHandler("global_confirm_alt", self.confirm) end function UIFurnishCorridor:purchaseItem(index, quantity) local o = self.objects[index] local is_negative_quantity = quantity < 0 if (quantity > 0 and o.qty >= 99) then return nil, _A.warnings.cannot_buy:format(o.object.name) end if self.ui.app.key_modifiers.ctrl then quantity = quantity * 10 elseif self.ui.app.key_modifiers.shift then quantity = quantity * 5 end quantity = quantity + o.qty if quantity < o.min_qty then quantity = o.min_qty elseif quantity > 99 then quantity = 99 end local bought = quantity - o.qty local hospital = self.ui.hospital local total_price = self.total_price + bought * hospital:getObjectBuildCost(o.object.id) if hospital.balance >= total_price or is_negative_quantity then o.qty = o.qty + bought self.total_price = total_price if o.object.id == "reception_desk" then if o.qty > 0 then self.ui:tutorialStep(1, 2, 3) else self.ui:tutorialStep(1, 3, 2) end end else return nil, _A.warnings.cannot_afford_2 end return quantity end function UIFurnishCorridor:confirm() self.ui:tutorialStep(1, 3, 4) local to_purchase = {} local to_sell = {} for _, o in ipairs(self.objects) do local build_cost = self.ui.hospital:getObjectBuildCost(o.object.id) if o.qty - o.start_qty > 0 then local diff_qty = o.qty - o.start_qty to_purchase[#to_purchase + 1] = { object = o.object, qty = diff_qty } self.ui.hospital:spendMoney(build_cost * diff_qty, _S.transactions.buy_object .. ": " .. o.object.name, build_cost * diff_qty) elseif o.qty - o.start_qty < 0 then local diff_qty = o.start_qty - o.qty to_sell[#to_sell + 1] = { object = o.object, qty = diff_qty } self.ui.hospital:receiveMoney(build_cost * diff_qty, _S.transactions.sell_object .. ": " .. o.object.name, build_cost * diff_qty) end end if self.edit_dialog then self.edit_dialog:addObjects(to_purchase, false) -- payment already handled here self.edit_dialog:removeObjects(to_sell) -- payment already handled here self:close() else if #to_purchase == 0 then self:close() else self.ui:addWindow(UIPlaceObjects(self.ui, to_purchase)) end end end function UIFurnishCorridor:close() self.ui:tutorialStep(1, {2, 3}, 1) if self.edit_dialog then self.edit_dialog:addObjects() -- No objects added. Call the function anyway to handle visibility etc. end Window.close(self) end function UIFurnishCorridor:draw(canvas, x, y) Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = x + self.x * s, y + self.y * s self.white_font:draw(canvas, self.title_text, x + 163 * s, y + 18 * s) self.white_font:draw(canvas, self.price_text .. self.item_price, x + 24 * s, y + 173 * s) self.white_font:draw(canvas, self.total_text .. self.total_price, x + 24 * s, y + 202 * s) for i, o in ipairs(self.objects) do local font = self.white_font if i == self.list_hover_index then font = self.blue_font end font:draw(canvas, o.object.name, x + 163 * s, y + 20 * s + i * 19 * s) font:draw(canvas, o.qty, x + 306 * s, y + 20 * s + i * 19 * s, 19 * s, 0) end self.preview_anim:setScaleFactor(s) self.preview_anim:draw(canvas, x + 72 * s, y + 57 * s) end function UIFurnishCorridor:onMouseMove(x, y, dx, dy) local repaint = Window.onMouseMove(self, x, y, dx, dy) local s = TheApp.config.ui_scale local hover_idx = 0 if 158 * s <= x and x < 346 * s and 34 * s <= y and y < 224 * s then hover_idx = math_floor((y - 15 * s) / (19 * s)) end if hover_idx ~= self.list_hover_index then if 1 <= hover_idx and hover_idx <= #self.objects then local obj = self.objects[hover_idx].object self.item_price = self.ui.hospital:getObjectBuildCost(obj.id) self.preview_anim:setAnimation(self.anims, obj.build_preview_animation) if self.hover_sound then self.ui:stopSound(self.hover_sound) end self.hover_sound = self.ui:playSound("HLight5.wav") end self.list_hover_index = hover_idx repaint = true end return repaint end function UIFurnishCorridor:afterLoad(old, new) -- If we saved with the window open, quantities might get converted to floats -- This may be overkill for _, obj in pairs(self.objects) do obj.qty = math.floor(obj.qty) end if old < 236 then local selected_label_color = { red = 40, green = 40, blue = 250 } self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.blue_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font02V", nil, nil, {ttf_color = selected_label_color, apply_ui_scale = true }) end Window.afterLoad(self, old, new) self:registerKeyHandlers() end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/hire_staff.lua000066400000000000000000000254431522247547500220110ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "UIHireStaff" (Window) ---@type UIHireStaff local UIHireStaff = _G["UIHireStaff"] function UIHireStaff:UIHireStaff(ui) self:Window() self.modal_class = "main" self.esc_closes = true self.world = ui.app.world self.ui = ui self.width = 242 self.height = 323 self:setDefaultPosition(100, 100) self.panel_sprites = ui.app.gfx:loadSpriteTable("QData", "Req11V", true) self.white_font = ui.app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.face_parts = ui.app.gfx:loadRaw("Face01V", 65, 1350, nil, "Data", "MPalette.dat", false, { flags = DrawFlags.Nearest }) -- Left hand side tab backgrounds self:addPanel(253, 0, 0) self:addPanel(254, 0, 83) self:addPanel(254, 0, 162) self:addPanel(255, 0, 241) -- Left hand side tabs local --[[persistable:hire_staff_category]] function category(name, state, btn) if #self.world.available_staff[name] == 0 then self.ui:playSound("wrong2.wav") if state then btn:toggle() end else self.ui:playSound("selectx.wav") self:setCategory(state and name or nil) end end self.tabs = { self:addPanel(264, 8, 8):makeToggleButton(0, 0, 40, 69, 265, category, "Doctor"):setTooltip(_S.tooltip.hire_staff_window.doctors), self:addPanel(266, 8, 87):makeToggleButton(0, 0, 40, 69, 267, category, "Nurse"):setTooltip(_S.tooltip.hire_staff_window.nurses), self:addPanel(268, 8, 166):makeToggleButton(0, 0, 40, 69, 269, category, "Handyman"):setTooltip(_S.tooltip.hire_staff_window.handymen), self:addPanel(270, 8, 245):makeToggleButton(0, 0, 40, 69, 271, category, "Receptionist"):setTooltip(_S.tooltip.hire_staff_window.receptionists), } -- Right hand side self:addPanel(256, 56, 0) -- Dialog header for y = 49, 113, 11 do self:addPanel(257,56, y) -- Dialog background end self.ability_bg_panel = self:addPanel(260, 55, 114) -- Abilities background self.skill_bg_panel = self:addPanel(259, 68, 95):setTooltip(_S.tooltip.hire_staff_window.staff_ability, 109, 95) -- Skill background self.skill_bg_panel.visible = false self:addPanel(261, 55, 160) -- Wage background self.abilities_blanker = self:addColourPanel(73, 133, 156, 34, 60, 174, 203) -- Hides abilities list for y = 207, 262, 3 do self:addPanel(262, 54, y) -- Description background end self:addColourPanel(155, 45, 72, 81, 211, 255, 255) -- Portrait background self:addPanel(263, 56, 263) -- Dialog midpiece self.complete_blanker = self:addColourPanel(68, 15, 161, 257, 60, 174, 203) -- Hides all staff info self:addPanel(272, 56, 277):makeButton(8, 10, 43, 27, 273, self.movePrevious):setTooltip(_S.tooltip.hire_staff_window.prev_person) self:addPanel(274, 106, 277):makeButton(0, 10, 58, 27, 275, self.hire):setTooltip(_S.tooltip.hire_staff_window.hire) self:addPanel(276, 163, 277):makeButton(0, 10, 28, 27, 277, self.close):setTooltip(_S.tooltip.hire_staff_window.cancel) self:addPanel(278, 190, 277):makeButton(0, 10, 44, 27, 279, self.moveNext):setTooltip(_S.tooltip.hire_staff_window.next_person) self:makeTooltip(_S.tooltip.hire_staff_window.salary, 68, 173, 227, 194) self:makeTooltip(_S.tooltip.hire_staff_window.doctor_seniority, 68, 44, 151, 95) self:makeTooltip(_S.tooltip.hire_staff_window.qualifications, 68, 134, 107, 167) self:makeTooltip(_S.tooltip.hire_staff_window.surgeon, 120, 136, 137, 167) self:makeTooltip(_S.tooltip.hire_staff_window.psychiatrist, 137, 136, 164, 167) self:makeTooltip(_S.tooltip.hire_staff_window.researcher, 164, 136, 191, 167) self:updateTooltips() self:registerKeyHandlers() end function UIHireStaff:registerKeyHandlers() self:addKeyHandler("global_confirm", self.hire) self:addKeyHandler("global_confirm_alt", self.hire) end function UIHireStaff:updateTooltips() local cond = not not self.category self.tooltip_regions[1].enabled = cond cond = cond and self.category == "Doctor" self.tooltip_regions[2].enabled = cond self.tooltip_regions[3].enabled = cond cond = cond and self.current_index and self.world.available_staff[self.category] cond = cond and cond[self.current_index] self.tooltip_regions[4].enabled = cond and cond.is_surgeon >= 1.0 self.tooltip_regions[5].enabled = cond and cond.is_psychiatrist >= 1.0 self.tooltip_regions[6].enabled = cond and cond.is_researcher >= 1.0 end function UIHireStaff:onMouseUp(button, x, y) self.mouse_up_x = self.x + x self.mouse_up_y = self.y + y return Window.onMouseUp(self, button, x, y) end function UIHireStaff:hire() self.ui:tutorialStep(2, {3, 4, 5}, 6) self.ui:tutorialStep(4, 3, 4) local profile if self.category and self.current_index then profile = self.world.available_staff[self.category] profile = profile and profile[self.current_index] end if not profile then self.ui:playSound("wrong2.wav") return end if self.ui.hospital.balance < profile.wage then self:cannotAfford() self.ui:playSound("wrong2.wav") return end self.ui:playSound("YesX.wav") table.remove(self.world.available_staff[self.category], self.current_index) self.ui:addWindow(UIPlaceStaff(self.ui, profile, self.mouse_up_x, self.mouse_up_y)) end function UIHireStaff:cannotAfford() local msg = { (_A.warnings.cannot_afford), (_A.warnings.cash_low_consider_loan), } if msg then self.world.ui.adviser:say(msg[math.random(1, #msg)]) end end function UIHireStaff:draw(canvas, x, y) Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y local font = self.white_font local staff = self.world.available_staff local staff_label_x = x + 16 * s local staff_label_w = 26 * s font:draw(canvas, #staff.Doctor , staff_label_x, y + 58 * s, staff_label_w, 0) font:draw(canvas, #staff.Nurse , staff_label_x, y + 137 * s, staff_label_w, 0) font:draw(canvas, #staff.Handyman , staff_label_x, y + 216 * s, staff_label_w, 0) font:draw(canvas, #staff.Receptionist, staff_label_x, y + 295 * s, staff_label_w, 0) if self.category and self.current_index then local profile = staff[self.category] profile = profile and profile[self.current_index] if not profile then return end font:draw(canvas, profile:getFullName(), x + 79 * s, y + 21 * s) profile:drawFace(canvas, x + 158 * s, y + 48 * s, self.face_parts, s) font:draw(canvas, "$" .. profile.wage, x + 116 * s, y + 179 * s) font:drawWrapped(canvas, profile.desc, x + 74 * s, y + 205 * s, 149 * s) -- Skill bar if self.skill_bg_panel.visible then local skill_bar_width = math.floor(profile.skill * 40 * s + 0.5) if skill_bar_width ~= 0 then local px, py = self.skill_bg_panel.x, self.skill_bg_panel.y px = px * s + x py = py * s + y for dx = 0, skill_bar_width - 1, s do self.panel_sprites:draw(canvas, 3, px + 22 * s + dx, py + 9 * s, { scaleFactor = s }) end end end if self.category == "Doctor" then -- Junior / Doctor / Consultant marker self.panel_sprites:draw(canvas, 258, x + 71 * s, y + 49 * s, { scaleFactor = s }) if profile.is_junior then self.panel_sprites:draw(canvas, 296, x + 79 * s, y + 80 * s, { scaleFactor = s }) elseif profile.is_consultant then self.panel_sprites:draw(canvas, 296, x + 131 * s, y + 80 * s, { scaleFactor = s }) else self.panel_sprites:draw(canvas, 296, x + 101 * s, y + 80 * s, { scaleFactor = s }) end -- Ability markers local px, py = self.ability_bg_panel.x, self.ability_bg_panel.y px = px * s + x py = py * s + y if profile.is_surgeon >= 1.0 then self.panel_sprites:draw(canvas, 292, px + 65 * s, py + 22 * s, { scaleFactor = s }) end if profile.is_psychiatrist >= 1.0 then self.panel_sprites:draw(canvas, 293, px + 82 * s, py + 28 * s, { scaleFactor = s }) end if profile.is_researcher >= 1.0 then self.panel_sprites:draw(canvas, 294, px + 109 * s, py + 27 * s, { scaleFactor = s }) end end end end function UIHireStaff:movePrevious() self:moveBy(-1) self.ui:tutorialStep(2, 4, 5) end function UIHireStaff:moveNext() self.ui:tutorialStep(2, 3, 4) self:moveBy(1) end function UIHireStaff:moveBy(n) if self.category then self.current_index = self.current_index + n local category = self.world.available_staff[self.category] if self.current_index < 1 then self.current_index = 1 elseif self.current_index > #category then self.current_index = #category else self.ui:playSound("selectx.wav") self:updateTooltips() return true end end self.ui:playSound("wrong2.wav") return false end function UIHireStaff:setCategory(name) if name == "Receptionist" then self.ui:tutorialStep(2, 2, 3) else self.ui:tutorialStep(2, {3, 4, 5}, 2) end if name == "Doctor" then self.ui:tutorialStep(4, 2, 3) else self.ui:tutorialStep(4, 3, 2) end self.skill_bg_panel.visible = not not name self.complete_blanker.visible = not name self.abilities_blanker.visible = name ~= "Doctor" self.category = name for _, btn in ipairs(self.tabs) do local should_be_toggled = btn.on_click_self == name if btn.toggled ~= should_be_toggled then btn:toggle() end end self.current_index = 1 self:updateTooltips() end function UIHireStaff:close() self.ui:tutorialStep(2, {2, 3, 4, 5}, 1) self.ui:tutorialStep(4, {2, 3}, 1) return Window.close(self) end function UIHireStaff:afterLoad(old, new) Window.afterLoad(self, old, new) self:registerKeyHandlers() if old < 236 then self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.face_parts = TheApp.gfx:loadRaw("Face01V", 65, 1350, nil, "Data", "MPalette.dat", false, { flags = DrawFlags.Nearest }) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/information.lua000066400000000000000000000136431522247547500222230ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Dialog that informs the player of for example what the goals for the level are. class "UIInformation" (Window) ---@type UIInformation local UIInformation = _G["UIInformation"] --! Constructor for the Information Dialog. --!param text The text to show, held in a table. All elements of the table will be written -- beneath each other. If instead a table within the table is supplied the texts -- will be shown in consecutive dialogs. --!param use_built_in_font Whether the built-in font should be used to make sure that -- the given message can be read without distortions. function UIInformation:UIInformation(ui, text, use_built_in_font) self:Window() local app = ui.app self.modal_class = "information" self.esc_closes = true self.on_top = true self.ui = ui self.panel_sprites = app.gfx:loadSpriteTable("Data", "PulldV", true) self.active_hover = false if not use_built_in_font then self.black_font = app.gfx:loadFontAndSpriteTable("QData", "Font00V", nil, nil, { apply_ui_scale = true }) else self.black_font = app.gfx:loadBuiltinFont() self.black_background = true end if type(text[1]) == "table" then self.text = text[1] table.remove(text, 1) self.additional_text = text else self.text = text end -- Window size parameters self.text_width = 300 self.spacing = { l = 15, r = 15, t = 15, b = 18 + 15, -- Size of close button + padding } self:onChangeLanguage() -- Enter closes the window self:registerKeyHandlers() end function UIInformation:registerKeyHandlers() self:addKeyHandler("global_confirm", self.close) self:addKeyHandler("global_confirm_alt", self.close) end function UIInformation:onChangeLanguage() local total_req_height = 0 local s = TheApp.config.ui_scale for _, text in ipairs(self.text) do local _, req_height = self.black_font:sizeOf(text, self.text_width * s) total_req_height = total_req_height + math.ceil(req_height / s) end self.width = self.spacing.l + self.text_width + self.spacing.r self.height = self.spacing.t + total_req_height + self.spacing.b self:setDefaultPosition(0.5, 0.5) self:removeAllPanels() for x = 4, self.width - 4, 4 do self:addPanel(12, x, 0, 0, 0, 1) -- Dialog top and bottom borders self:addPanel(16, x, self.height - 4, 0, 0, 1) end for y = 4, self.height - 4, 4 do self:addPanel(18, 0, y, 0, 0, 1) -- Dialog left and right borders self:addPanel(14, self.width - 4, y, 0, 0, 1) end self:addPanel(11, 0, 0, 0, 0, 1) -- Border top left corner self:addPanel(17, 0, self.height - 4, 0, 0, 1) -- Border bottom left corner self:addPanel(13, self.width - 4, 0, 0, 0, 1) -- Border top right corner self:addPanel(15, self.width - 4, self.height - 4, 0, 0, 1) -- Border bottom right corner -- Close button self:addPanel(19, self.width - 28, self.height - 28, 18, 18, 1):makeButton(0, 0, 18, 18, 20, self.close):setTooltip(_S.tooltip.information.close) .panel_for_sprite.custom_draw = --[[persistable:information_close_button]] function(panel, canvas, x, y) local ds = TheApp.config.ui_scale x = x + panel.x * ds y = y + panel.y * ds panel.window.panel_sprites:draw(canvas, panel.sprite_index, x, y, { scaleFactor = ds }) if self.active_hover then self.panel_sprites:draw(canvas, 20, x, y, { scaleFactor = ds }) end end end function UIInformation:draw(canvas, x, y) local s = TheApp.config.ui_scale local dx, dy = x + self.x * s, y + self.y * s local background = self.black_background and canvas:mapRGB(0, 0, 0) or canvas:mapRGB(255, 255, 255) canvas:drawRect(background, dx + 4 * s, dy + 4 * s, self.width * s - 8 * s, self.height * s - 8 * s) local last_y = dy + self.spacing.t * s for _, text in ipairs(self.text) do last_y = self.black_font:drawWrapped(canvas, text, dx + self.spacing.l, last_y, self.text_width * s) end Window.draw(self, canvas, x, y) end function UIInformation:onMouseMove(x, y, dx, dy) local s = TheApp.config.ui_scale self.active_hover = self:hoverTest( self.active_hover, x, y, self.width * s - 29 * s, self.width * s - 10 * s, self.height * s - 29 * s, self.height * s - 10 * s) return Window:onMouseMove(x, y, dx, dy) end function UIInformation:hitTest(x, y) local s = TheApp.config.ui_scale if x >= 0 and y >= 0 and x < self.width * s and y < self.height * s then return true else return Window.hitTest(self, x, y) end end function UIInformation:close() self.ui:tutorialStep(3, 16, "next") Window.close(self) if self.additional_text and #self.additional_text > 0 then self.ui:addWindow(UIInformation(self.ui, self.additional_text)) end end function UIInformation:afterLoad(old, new) -- box resized to be more like the original self.spacing = { l = 15, r = 15, t = 15, b = 18 + 15, } self:onChangeLanguage() Window.afterLoad(self, old, new) self:registerKeyHandlers() end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/jukebox.lua000066400000000000000000000156421522247547500213460ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local ipairs = ipairs class "UIJukebox" (Window) ---@type UIJukebox local UIJukebox = _G["UIJukebox"] function UIJukebox:UIJukebox(app) self:Window() self.modal_class = "jukebox" self.esc_closes = true self.audio = app.audio self.app = app self.ui = app.ui self.width = 259 self.height = 74 + 30 * #self.audio.background_playlist + 18 self:setDefaultPosition(26, 26) self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req13V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.blue_font = app.gfx:loadFontAndSpriteTable("QData", "Font02V", nil, nil, { apply_ui_scale = true }) -- Dialog head (current track title & exit button) self:addPanel(389, 0, 0) for x = 30, self.width - 61, 24 do self:addPanel(390, x, 0) end self:addPanel(391, self.width - 61, 0) self:addPanel(409, self.width - 42, 19):makeButton(0, 0, 24, 24, 410, self.close):setTooltip(_S.tooltip.jukebox.close) self.play_btn = self:addPanel(392, 0, 49):makeToggleButton(19, 2, 50, 24, 393, self.togglePlayPause):setSound("selectx.wav"):setTooltip(_S.tooltip.jukebox.play) self:updatePlayButton() self:addPanel(394, 87, 49):makeButton(0, 2, 24, 24, 395, self.audio.playPreviousBackgroundTrack, self.audio):setSound("selectx.wav"):setTooltip(_S.tooltip.jukebox.rewind) self:addPanel(396, 115, 49):makeButton(0, 2, 24, 24, 397, self.audio.playNextBackgroundTrack, self.audio):setSound("selectx.wav"):setTooltip(_S.tooltip.jukebox.fast_forward) self:addPanel(398, 157, 49):makeButton(0, 2, 24, 24, 399, self.stopBackgroundTrack):setSound("selectx.wav"):setTooltip(_S.tooltip.jukebox.stop) self:addPanel(400, 185, 49):makeButton(0, 2, 24, 24, 401, self.loopTrack):setSound("selectx.wav"):setTooltip(_S.tooltip.jukebox.loop) -- Track list self.track_buttons = {} for i, info in ipairs(self.audio.background_playlist) do local y = 47 + i * 30 self:addPanel(402, 0, y) for x = 30, self.width - 61, 24 do self:addPanel(403, x, y) end self.track_buttons[i] = self:addPanel(404, self.width - 61, y):makeToggleButton(19, 4, 24, 24, 405):setSound("selectx.wav") if not info.enabled then self.track_buttons[i]:setToggleState(true) end self.track_buttons[i].on_click = --[[persistable:jukebox_toggle_track]] function(window) window:toggleTrack(i) end end -- Dialog footer local y = 74 + 30 * #self.audio.background_playlist self:addPanel(406, 0, y) for x = 30, self.width - 61, 24 do self:addPanel(407, x, y) end self:addPanel(408, self.width - 61, y) self:makeTooltip(_S.tooltip.jukebox.current_title, 17, 17, 212, 46) end -- makes the play button consistent with the current status of the background music -- running -> toggled -- stopped -> not toggled -- paused -> not toggled function UIJukebox:updatePlayButton() local status = not not self.audio.background_music and not self.audio.background_paused if status ~= self.play_btn.toggled then self.play_btn:toggle() end end function UIJukebox:togglePlayPause() if not self.audio.background_music then -- Update configuration that we want music now. self.app.config.play_music = true self.app:saveConfig() self.audio:playRandomBackgroundTrack() else self.audio:pauseBackgroundTrack() -- Just pausing does not imply that the player will want to have music turned off -- the next time he or she starts the game. end end function UIJukebox:stopBackgroundTrack() -- Pressing this button means that the player doesn't want any -- background music in the future, so set that config flag. self.app.config.play_music = false self.app:saveConfig() self.audio:stopBackgroundTrack() end function UIJukebox:toggleTrack(index) local info = self.audio.background_playlist[index] self.track_buttons[index]:setToggleState(info.enabled) info.enabled = not info.enabled if not info.enabled and self.audio.background_music == info.music then self.audio:stopBackgroundTrack() self.audio:playRandomBackgroundTrack() end end function UIJukebox:loopTrack() local index = self.audio:findIndexOfCurrentTrack() local playlist = self.audio.background_playlist if not playlist[index] then return end if playlist[index].loop then playlist[index].loop = false for i, list_entry in ipairs(playlist) do if list_entry.enabled_before_loop and index ~= i then list_entry.enabled_before_loop = nil self:toggleTrack(i) end end else playlist[index].loop = true for i, list_entry in ipairs(playlist) do if list_entry.enabled and index ~= i then list_entry.enabled_before_loop = true self:toggleTrack(i) end end end end function UIJukebox:draw(canvas, x, y) for i, info in ipairs(TheApp.audio.background_playlist) do self.track_buttons[i]:setToggleState(not info.enabled) end local s = TheApp.config.ui_scale Window.draw(self, canvas, x, y) x, y = self.x * s + x, self.y * s + y local playing = self.audio.background_music or "" for i, info in ipairs(self.audio.background_playlist) do local ypos = y + 47 * s + i * 30 * s local font = self.white_font if info.music == playing then font = self.blue_font end local str = info.title while font:sizeOf(str) > 185 * s do str = string.sub(str, 1, string.len(str) - 5) .. "..." end font:draw(canvas, str, x + 24 * s, ypos + 11 * s) if info.music == playing then font:draw(canvas, str, x + 24 * s, self.y * s + 27 * s) end end end function UIJukebox:afterLoad(old, new) if not self.app.config.audio then self:close() end Window.afterLoad(self, old, new) if old < 236 then self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.blue_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font02V", nil, nil, { apply_ui_scale = true }) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/machine_dialog.lua000066400000000000000000000157541522247547500226260ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "UIMachine" (Window) ---@type UIMachine local UIMachine = _G["UIMachine"] function UIMachine:UIMachine(ui, machine, room) self:Window() local app = ui.app self.esc_closes = true self.machine = machine self.room = room self.ui = ui self.modal_class = "humanoid_info" self.width = 188 self.height = 206 self:setDefaultPosition(-20, 30) self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req03V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self:addPanel(333, 0, 0) -- Dialog header self:addPanel(334, 0, 74) -- The next part for y = 131, 180, 7 do self:addPanel(335, 0, y) -- Some background end self:addPanel(336, 0, 182) -- Dialog footer -- Call button self:addPanel(339, 20, 127) :makeButton(0, 0, 63, 60, 340, self.callHandyman) :setTooltip(_S.tooltip.machine_window.repair) :setSound("selectx.wav") -- Replace button self:addPanel(341, 92, 127) :makeButton(0, 0, 45, 60, 342, self.replaceMachine) :setTooltip(_S.tooltip.machine_window.replace) :setSound("selectx.wav") -- Close button self:addPanel(337, 146, 18):makeButton(0, 0, 24, 24, 338, self.close) :setTooltip(_S.tooltip.machine_window.close) self:makeTooltip(_S.tooltip.machine_window.name, 18, 19, 139, 42) self:makeTooltip(_S.tooltip.machine_window.times_used, 18, 49, 139, 77) self:makeTooltip(_S.tooltip.machine_window.status, 24, 88, 128, 115) end function UIMachine:draw(canvas, x, y) Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y local mach = self.machine local font = self.white_font local output if self.room.needs_repair then output = "(" .. mach.object_type.name .. ")" else output = mach.object_type.name end font:draw(canvas, output, x + 27 * s, y + 27 * s) -- Name font:draw(canvas, mach.total_usage, x + 60 * s, y + 59 * s) -- Total number of times used local status_bar_width = math.floor((1 - mach.times_used/mach.strength) * 40 * s + 0.5) if status_bar_width ~= 0 then for dx = 0, status_bar_width - 1 do self.panel_sprites:draw(canvas, 352, x + 53 * s + dx, y + 99 * s, { scaleFactor = s }) end end end function UIMachine:callHandyman() if self.machine.times_used ~= 0 then local taskIndex = self.machine.hospital:getIndexOfTask(self.machine.tile_x, self.machine.tile_y, "repairing") if taskIndex == -1 then local call = self.ui.app.world.dispatcher:callForRepair(self.machine, false, true) self.machine.hospital:addHandymanTask(self.machine, "repairing", 2, self.machine.tile_x, self.machine.tile_y, call) else self.machine.hospital:modifyHandymanTaskPriority(taskIndex, 2, "repairing") end self.machine:setRepairingStatus() end end --! Function checks we can afford a new machine --! Then offers player to purchase function UIMachine:replaceMachine() -- Maybe TODO: Prevent purchase of a machine of same strength? local machine = self.machine local hosp = self.ui.hospital local cost = hosp.research.research_progress[machine.object_type].cost if hosp.balance < cost then -- give visual warning that player doesn't have enough $ to buy local advice = _A.warnings.cannot_afford_machine:format(cost, machine.object_type.name) self.ui.adviser:say(advice, false, true) self.ui:playSound("wrong2.wav") return end local prompt = _S.confirmation.replace_machine:format(machine.object_type.name, cost) if self.ui.app.config.new_machine_extra_info then local new_strength = hosp.research.research_progress[machine.object_type].start_strength local current_strength = machine.strength prompt = (_S.confirmation.replace_machine_extra_info):format(new_strength, current_strength) .. "//" .. prompt end self.ui:addWindow(UIConfirmDialog(self.ui, true, prompt, --[[persistable:replace_machine_confirm_dialog]]function() machine:replaceMachine(cost) end )) end function UIMachine:onMouseDown(code, x, y) -- cycle through all machines when you right click on the machine title if code == "right" then local s = TheApp.config.ui_scale local is_hit_namebox = x > self.tooltip_regions[1].x * s and x < self.tooltip_regions[1].r * s and y > self.tooltip_regions[1].y * s and y < self.tooltip_regions[1].b * s if is_hit_namebox then -- move to next machine local ui = self.ui local first_machine, next_machine = nil, self.machine local next_room for _, entity in ipairs(ui.app.world.entities) do -- is a machine and not a slave (e.g. operating_table_b) if class.is(entity, Machine) and not entity.master then next_room = entity:getRoom() if next_room.is_active then if not first_machine then first_machine = entity end if not next_machine then next_machine = entity break elseif entity == next_machine then next_machine = nil end end end end if not next_machine or next_machine == self.machine then next_machine = first_machine end if next_machine and next_machine ~= self.machine then -- center screen on machine local sx, sy = ui.app.map:WorldToScreen(next_machine.tile_x, next_machine.tile_y) local dx, dy = next_machine.th:getPosition() ui:scrollMapTo(sx + dx, sy + dy) -- switch machine window ui:addWindow(UIMachine(ui, next_machine, next_room)) ui:playSound("camclick.wav") -- show machine info in dynamic info ui.bottom_panel:setDynamicInfo(next_machine:getDynamicInfo()) end end end return Window.onMouseDown(self, code, x, y) end function UIMachine:afterLoad(old, new) if old < 236 then self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) end Window:afterLoad(old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/menu.lua000066400000000000000000000763341522247547500206500ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local ipairs, math_floor, unpack, select, assert = ipairs, math.floor, unpack, select, assert local TH = require("TH") --! The ingame menu bar which sits (nominally hidden) at the top of the screen. class "UIMenuBar" (Window) ---@type UIMenuBar local UIMenuBar = _G["UIMenuBar"] function UIMenuBar:UIMenuBar(ui, map_editor) self:Window() local app = ui.app self.ui = ui self.on_top = true self.x = 0 self.y = 0 self.width = app.config.width self.height = 16 self.visible = false local selected_label_color = { red = 40, green = 40, blue = 250 } self.panel_sprites = app.gfx:loadSpriteTable("Data", "PullDV", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.blue_font = app.gfx:loadFontAndSpriteTable("QData", "Font02V", nil, nil, {ttf_color = selected_label_color, apply_ui_scale = true }) -- The list of top-level menus, from left to right self.menus = {} -- The menu which the cursor was most recently over -- This should be present in self.open_menus, else it won't be drawn self.active_menu = false -- The list of menus which should be displayed -- This list satisfies: open_menus[x] == nil or open_menus[x].level == x self.open_menus = {} if map_editor then self:makeMapeditorMenu(app) else self:makeGameMenu(app) end end function UIMenuBar:onTick() if #self.open_menus > 0 then -- If the deepest menu has no need to be open, close it after a short time -- It needs to be open if the cursor is over it, or the cursor is over the -- item in its parent corresponding to it. local deepest = self.open_menus[#self.open_menus] local parent = deepest.parent if deepest == self.active_menu or (parent and parent == self.active_menu and parent.items[parent.hover_index] and parent.items[parent.hover_index].submenu == deepest) then self.menu_disappear_counter = nil else if self.menu_disappear_counter == 0 then self.ui.app:saveConfig() self.menu_disappear_counter = nil local close_to = self.active_menu and self.active_menu.level or 0 for i = #self.open_menus, close_to + 1, -1 do self.open_menus[i] = nil end else self.menu_disappear_counter = (self.menu_disappear_counter or 26) - 1 end end end if self.disappear_counter then if self.disappear_counter == 0 then for i = #self.open_menus, 1, -1 do self.open_menus[i] = nil end self.active_menu = false self.visible = false self.disappear_counter = nil if self.on_top then self.ui:sendToBottom(self) self.on_top = false end else self.disappear_counter = self.disappear_counter - 1 end end Window.onTick(self) end function UIMenuBar:onChangeResolution() self.width = self.ui.app.config.width end function UIMenuBar:onChangeLanguage() local function check_size(menu) menu.has_size = false for _, item in ipairs(menu.items) do if item.submenu then check_size(item.submenu) end end end for _, menu in ipairs(self.menus) do check_size(menu.menu) end end local function assign_menu_levels(menu, level) menu.level = level for _, item in ipairs(menu.items) do if item.submenu then assign_menu_levels(item.submenu, level + 1) end end end --! Add a menu to the menu bar. --!param title Title of the menu (at the bar). --!param menu Menu to add. function UIMenuBar:addMenu(title, menu) assign_menu_levels(menu, 1) local menu_item = { title = title, menu = menu, x = 0, y = 1, height = 16, } if self.menus[1] then menu_item.x = self.menus[#self.menus].x + self.menus[#self.menus].width end menu_item.width = math.ceil(self.white_font:sizeOf(title) / TheApp.config.ui_scale + 32) self.menus[#self.menus + 1] = menu_item end function UIMenuBar:draw(canvas) if not self.visible then return end local s = TheApp.config.ui_scale local panel_sprites = self.panel_sprites local panel_sprites_draw = panel_sprites.draw canvas:nonOverlapping() panel_sprites_draw(panel_sprites, canvas, 1, 0, 0, { scaleFactor = s }) panel_sprites_draw(panel_sprites, canvas, 4, 0, 6 * s, { scaleFactor = s }) panel_sprites_draw(panel_sprites, canvas, 7, 0, 10 * s, { scaleFactor = s }) -- Currently the width is the full pixel width of the window, unlike -- the height and other panels which are in scale units. local scaled_width = self.width for x = 10 * s, scaled_width - 10 * s, 10 * s do panel_sprites_draw(panel_sprites, canvas, 2, x, 0, { scaleFactor = s }) end for x = 10 * s, scaled_width - 10 * s, 10 * s do panel_sprites_draw(panel_sprites, canvas, 5, x, 6 * s, { scaleFactor = s }) end for x = 10 * s, scaled_width - 10 * s, 10 * s do panel_sprites_draw(panel_sprites, canvas, 8, x, 10 * s, { scaleFactor = s }) end canvas:nonOverlapping(false) local x = scaled_width - 10 * s panel_sprites_draw(panel_sprites, canvas, 3, x, 0, { scaleFactor = s }) panel_sprites_draw(panel_sprites, canvas, 6, x, 6 * s, { scaleFactor = s }) panel_sprites_draw(panel_sprites, canvas, 9, x, 10 * s, { scaleFactor = s }) for _, menu in ipairs(self.menus) do self.white_font:draw(canvas, menu.title, menu.x * s, menu.y * s, 0, menu.height * s) end for _, menu in ipairs(self.open_menus) do self:drawMenu(menu, canvas) end -- Draw clock if self.ui.app.config.twentyfour_hour_clock then self.white_font:draw(canvas, os.date("%H:%M"), scaled_width - 45 * s, s, 0, 16 * s) else self.white_font:draw(canvas, os.date("%I:%M %p"), scaled_width - 65 * s, s, 0, 16 * s) end end function UIMenuBar:drawMenu(menu, canvas) local s = TheApp.config.ui_scale local panel_sprites = self.panel_sprites local panel_sprites_draw = panel_sprites.draw local x, y, w, h = menu.x * s, menu.y * s, menu.width * s, menu.height * s menu.render_list:setScaleFactor(s) menu.render_list:draw(canvas, x, y) local btmy = y + h - 6 * s panel_sprites_draw(panel_sprites, canvas, 3, x + w - 10 * s, y, { scaleFactor = s }) for ypos = y + 6 * s, y + h - 6 * s, 4 * s do panel_sprites_draw(panel_sprites, canvas, 6, x + w - 10 * s, ypos, { scaleFactor = s }) end panel_sprites_draw(panel_sprites, canvas, 9, x + w - 10 * s, btmy, { scaleFactor = s }) x = menu.x * s y = menu.y * s + 4 * s for i, item in ipairs(menu.items) do -- Update the checkbox status if necessary before drawing if item.is_check_item and item.condition then item.checked = item.condition() end local font = self.white_font if i == menu.hover_index then font = self.blue_font end font:draw(canvas, item.title, x, y) if item.submenu then font:draw(canvas, "+", x + w - 10 * s, y) elseif item.checked then panel_sprites_draw(panel_sprites, canvas, 10, x, y, { scaleFactor = s }) end y = y + 14 * s end end function UIMenuBar:hitTestBar(x, y) local s = TheApp.config.ui_scale if y < 16 * s then for _, menu in ipairs(self.menus) do if menu.x * s <= x and x < menu.x * s + menu.width * s then local submenu = menu.menu submenu.x = menu.x submenu.y = menu.y + menu.height - 2 submenu.hover_index = 0 self:calculateMenuSize(submenu) return submenu end end end return false end function UIMenuBar:onMouseMove(x, y, dx, dy) local s = TheApp.config.ui_scale local padding = 6 local visible = y < self.height * s + padding * s local newactive = false if not self.active_menu then for i = #self.open_menus, 1, -1 do if self.open_menus[i]:hitTest(x, y, padding) then self.active_menu = self.open_menus[i] newactive = true break end end end if self.active_menu then local menu = self.active_menu while true do local hit = menu:hitTest(x, y, padding) local toparent = true if hit then toparent = false visible = true if hit ~= true then if hit ~= menu.prev_hover_index then if menu.hover_sound then self.ui:stopSound(menu.hover_sound) end menu.hover_sound = self.ui:playSound("HLight5.wav") end menu.hover_index = hit menu.prev_hover_index = menu.hover_index else menu.hover_index = 0 if menu.parent and menu.parent:hitTest(x, y, 0) then toparent = true end end local child = menu.items[menu.hover_index] child = not toparent and child and child.submenu if child then child.x = menu.x + menu.width - 10 child.y = menu.y + menu.hover_index * 14 - 14 self:calculateMenuSize(child) self.open_menus[child.level] = child for i = #self.open_menus, child.level + 1, -1 do self.open_menus[i] = nil end if child:hitTest(x, y, 0) then menu.hover_index = 0 self.active_menu = child child.parent = menu menu = child newactive = true else break end elseif not toparent then break end end if toparent then newactive = true menu.hover_index = 0 menu = menu.parent if not menu then local bar_menu = self:hitTestBar(x, y) if bar_menu then self.open_menus = {bar_menu} end self.active_menu = bar_menu or (visible and self.active_menu) break end self.active_menu = menu end end elseif self.ui.down_count ~= 0 then local bar_menu = self:hitTestBar(x, y) if bar_menu then self.open_menus = {bar_menu} self.active_menu = bar_menu end end newactive = newactive or (visible and not self.visible) if visible then self:appear() else self:disappear() end return newactive end function UIMenuBar:appear() self.disappear_counter = nil self.visible = true if not self.on_top then self.ui:sendToTop(self) self.on_top = true end end function UIMenuBar:disappear() if not self.disappear_counter then self.disappear_counter = 100 end end function UIMenuBar:onMouseDown(button, x, y) if button ~= "left" or not self.visible then return end local repaint = false while self.active_menu do local menu = self.active_menu if menu:hitTest(x, y, 0) then if repaint then self:onMouseMove(x, y) end return true end for i = #self.open_menus, self.active_menu.level, -1 do self.open_menus[i] = nil end self.active_menu = menu.parent repaint = true end local new_active = self:hitTestBar(x, y) if new_active ~= self.active_menu then self.open_menus = {new_active} self.active_menu = new_active repaint = true self.ui:playSound("selectx.wav") end return repaint end function UIMenuBar:onMouseUp(button, x, y) if button ~= "left" or not self.visible then return end local repaint = false local s = TheApp.config.ui_scale while self.active_menu do local index = self.active_menu:hitTest(x, y, 0) if index == false then if not self.active_menu.parent and y < 16 * s then break else self.active_menu = self.active_menu.parent end elseif index == true then break else local item = self.active_menu.items[index] if item.submenu then break elseif item.is_check_item then if item.group then if not item.checked then item.checked = true for _, itm in ipairs(self.active_menu.items) do if itm ~= item and itm.group == item.group then itm.checked = false end end if item.handler then item.handler(item, self.active_menu) end end else item.checked = not item.checked if item.handler then item.handler(item, self.active_menu) end end else if item.handler then item.handler(item, self.active_menu) end if y > 22 * s then self:disappear() end self.active_menu = false end self.ui:playSound("selectx.wav") repaint = true break end end for i = #self.open_menus, (self.active_menu and self.active_menu.level or 0) + 1, -1 do self.open_menus[i] = nil end return repaint end function UIMenuBar:calculateMenuSize(menu) if menu.has_size ~= self then local w = 20 local h = 6 for _, item in ipairs(menu.items) do local item_w = math.ceil(self.white_font:sizeOf(item.title) / TheApp.config.ui_scale + 10) if item_w > w then w = item_w end h = h + 14 end if h < 20 then h = 20 end menu.width = w menu.height = h menu.has_size = self local render_list = TH.spriteList() menu.render_list = render_list render_list:setSheet(self.panel_sprites) render_list:append(1, 0, 0) for x = 10, w - 10, 10 do render_list:append(2, x, 0) end for y = 6, h - 6, 4 do render_list:append(4, 0, y) for x = 10, w - 10, 10 do render_list:append(5, x, y) end end local btmy = h - 6 render_list:append(7, 0, btmy) for x = 10, w - 10, 10 do render_list:append(8, x, btmy) end end end class "UIMenu" ---@type UIMenu local UIMenu = _G["UIMenu"] function UIMenu:UIMenu() self.items = {} self.parent = false self.hover_index = 0 self.prev_hover_index = nil self.hover_sound = nil self.has_size = false end function UIMenu:hitTest(x, y, padding) -- number -> hit that item -- true -> hit menu, but not an item -- false -> no hit local s = TheApp.config.ui_scale if self.x * s - padding * s <= x and x < self.x * s + self.width * s + padding * s and self.y * s - padding * s <= y and y < self.y * s + self.height * s + padding * s then if self.x * s <= x and x < self.x * s + self.width * s then local index = math_floor((y - self.y * s + 12 * s) / (14 * s)) if 1 <= index and index <= #self.items then return index end end return true else return false end end function UIMenu:appendBase(item) self.items[#self.items + 1] = item self.has_size = false return self end function UIMenu:appendItem(text, callback) return self:appendBase { title = text, handler = callback, } end function UIMenu:appendCheckItem(text, checked, callback, group, condition) return self:appendBase { is_check_item = true, title = text, checked = not not checked, handler = callback, group = group, condition = condition } end function UIMenu:appendMenu(text, menu) menu.parent = self return self:appendBase { title = text, submenu = assert(menu, "No submenu"), } end -- A function to set the menu hotkey strings, whether a string or table. -- Usage: hotkey_value_label(hotkey name as string) -- Ex: hotkey_value_label("ingame_loadMenu") will produce (SHIFT+L) by default. --!param hotkey_name (string) Name of hotkey to be converted to string. --!param hotkeys (table) The app's hotkey table. I.E. app.hotkeys --!return (string) The hotkey returned in this format: (KEY+KEY) local function hotkey_value_label(hotkey_name, hotkeys) local hotkey_value = hotkeys[hotkey_name] if hotkey_value == nil then return "" end return string.upper(array_join(hotkey_value, "+")) end -- Add audio options to the menu. These are on/off and volume control for -- announcements, game sounds and music, and open the jukebox. --!param menu (object) The menu that the options are added to. --!param game (boolean) True if this menu is for the game, where announcements and -- game sounds controls are added. local function audio_options(menu, game) local app = TheApp local function vol(level, setting) if setting == "music" then return level == app.config.music_volume, function() app.audio:setBackgroundVolume(level) end, "" elseif setting == "sound" then return level == app.config.sound_volume, function() app.audio:setSoundVolume(level) end, "" else return level == app.config.announcement_volume, function() app.audio:setAnnouncementVolume(level) end, "" end end local hotkeys = app.hotkeys if game then -- Hospital sounds menu:appendCheckItem(_S.menu_options.sound:format(hotkey_value_label("ingame_toggleSounds", hotkeys)), app.config.play_sounds, function(item) app.audio:playSoundEffects(item.checked) end, nil, function() return app.config.play_sounds end) -- Hospital announcements menu:appendCheckItem(_S.menu_options.announcements:format(hotkey_value_label("ingame_toggleAnnouncements", hotkeys)), app.config.play_announcements, function(item) app.config.play_announcements = item.checked end, nil, function() return app.config.play_announcements end) end -- Jukebox music if app.audio.has_bg_music then menu:appendCheckItem(_S.menu_options.music:format(hotkey_value_label("ingame_toggleMusic", hotkeys)), app.config.play_music, function(item) app.config.play_music = item.checked app.ui:togglePlayMusic(item) end, nil, function() return app.config.play_music end) end -- The three volume menus, and jukebox local function appendVolume(setting) local volume_menu = UIMenu() for level = 10, 100, 10 do volume_menu:appendCheckItem(_S.menu_options_volume[level], vol(level / 100, setting)) end return volume_menu end if game then menu:appendMenu(_S.menu_options.sound_vol, appendVolume("sound")) :appendMenu(_S.menu_options.announcements_vol, appendVolume("announcement")) end if app.audio.has_bg_music then menu:appendMenu(_S.menu_options.music_vol, appendVolume("music")) :appendItem(_S.menu_options.jukebox:format(hotkey_value_label("ingame_jukebox", hotkeys)), function() app.ui:addWindow(UIJukebox(app)) end) end end -- Add display options to the menu. --!param menu (object) The menu that the options are added to. local function display_options(menu) local app = TheApp -- Lock windows local function boolean_runtime_config(option) return not not app.runtime_config[option], function(item) app.runtime_config[option] = item.checked end end menu:appendCheckItem(_S.menu_options.lock_windows, boolean_runtime_config("lock_windows")) -- Edge scrolling menu:appendCheckItem(_S.menu_options.edge_scrolling, not app.config.prevent_edge_scrolling, function(item) app.config.prevent_edge_scrolling = not item.checked end, nil, function() return not app.config.prevent_edge_scrolling end) -- Mouse capture menu:appendCheckItem(_S.menu_options.capture_mouse, app.config.capture_mouse, function(item) app.config.capture_mouse = item.checked app:setCaptureMouse() end) -- 24 hour clock menu:appendCheckItem(_S.menu_options.twentyfour_hour_clock, app.config.twentyfour_hour_clock, function(item) app.config.twentyfour_hour_clock = item.checked end) end local function overlay(...) local args = {n = select('#', ...), ...} return function(item, m) if args.n > 0 then TheApp.map:loadDebugText(unpack(args, 1, args.n)) else TheApp.map:clearDebugText() end end end --! Make a menu for the map editor. --!param app Application. function UIMenuBar:makeMapeditorMenu(app) local menu = UIMenu() local hotkeys = app.hotkeys menu:appendItem(_S.menu_file.load:format(hotkey_value_label("ingame_loadMenu", hotkeys)), function() self.ui:addWindow(UILoadMap(self.ui, "map")) end) :appendItem(_S.menu_file.save:format(hotkey_value_label("ingame_saveMenu", hotkeys)), function() self.ui:addWindow(UISaveMap(self.ui)) end) :appendItem(_S.menu_file.restart:format(hotkey_value_label("ingame_restartLevel", hotkeys)), function() self.ui:restartMapEditor() end) :appendItem(_S.menu_file.quit:format(hotkey_value_label("ingame_quitLevel", hotkeys)), function() self.ui:quit(true) end) self:addMenu(_S.menu.file, menu) menu = UIMenu() audio_options(menu) display_options(menu) menu:appendMenu(_S.menu_debug.map_overlay, UIMenu() :appendCheckItem(_S.menu_debug_overlay.none, true, overlay(), "overlay") :appendCheckItem(_S.menu_debug_overlay.flags, false, overlay("flags"), "overlay") :appendCheckItem(_S.menu_debug_overlay.positions, false, overlay("positions"), "overlay") :appendCheckItem(_S.menu_debug_overlay.parcel, false, overlay("parcel"), "overlay")) self:addMenu(_S.menu.options, menu) menu = UIMenu() for i = 1, 4 do menu:appendCheckItem(_S.menu_player_count["players_" .. i], self.ui.app.map:getPlayerCount() == i, function() self.ui.map_editor:setPlayerCount(i) end, "playercount", function () return self.ui.app.map:getPlayerCount() == i end) end self:addMenu(_S.menu.player_count, menu) end --! Make a menu for the game. --!param app Application. function UIMenuBar:makeGameMenu(app) local menu = UIMenu() local hotkeys = app.hotkeys menu:appendItem(_S.menu_file.load:format(hotkey_value_label("ingame_loadMenu", hotkeys)), function() self.ui:addWindow(UILoadGame(self.ui, "game")) end) :appendItem(_S.menu_file.save:format(hotkey_value_label("ingame_saveMenu", hotkeys)), function() self.ui:addWindow(UISaveGame(self.ui)) end) :appendItem(_S.menu_file.restart:format(hotkey_value_label("ingame_restartLevel", hotkeys)), function() app:restart() end) :appendItem(_S.menu_file.quit:format(hotkey_value_label("ingame_quitLevel", hotkeys)), function() self.ui:quit() end) self:addMenu(_S.menu.file, menu) local options = UIMenu() audio_options(options, true) display_options(options) options:appendCheckItem(_S.menu_options.adviser_disabled:format(hotkey_value_label("ingame_toggleAdvisor", hotkeys)), not app.config.adviser_disabled, function(item) app.config.adviser_disabled = not item.checked end, nil, function() return not app.config.adviser_disabled end) local function temperatureDisplay(method) return method == 1, function() app.world.map:setTemperatureDisplayMethod(method) end, "", function () return app.world.map.temperature_display_method == method end end local function wageIncreaseRequests(grant) return grant, function() app.world:getLocalPlayerHospital().policies.grant_wage_increase = grant end, "", function () if app.world:getLocalPlayerHospital().policies.grant_wage_increase == nil then app.world:getLocalPlayerHospital().policies.grant_wage_increase = app.config.grant_wage_increase end return app.world:getLocalPlayerHospital().policies.grant_wage_increase == grant end end options:appendMenu(_S.menu_options.wage_increase, UIMenu() :appendCheckItem(_S.menu_options_wage_increase.grant, wageIncreaseRequests(true)) :appendCheckItem(_S.menu_options_wage_increase.deny, wageIncreaseRequests(false)) ) options:appendMenu(_S.menu_options.warmth_colors, UIMenu() :appendCheckItem(_S.menu_options_warmth_colors.choice_1, temperatureDisplay(1)) :appendCheckItem(_S.menu_options_warmth_colors.choice_2, temperatureDisplay(2)) :appendCheckItem(_S.menu_options_warmth_colors.choice_3, temperatureDisplay(3)) ) local function rate(speed) return speed == "Normal", function() app.world:setSpeed(speed) end, "", function() return app.world:isCurrentSpeed(speed) end end options:appendMenu(_S.menu_options.game_speed, UIMenu() :appendCheckItem(_S.menu_options_game_speed.pause:format(hotkey_value_label("ingame_pause", hotkeys)), rate("Pause")) :appendCheckItem(_S.menu_options_game_speed.slowest:format(hotkey_value_label("ingame_gamespeed_slowest", hotkeys)), rate("Slowest")) :appendCheckItem(_S.menu_options_game_speed.slower:format(hotkey_value_label("ingame_gamespeed_slower", hotkeys)), rate("Slower")) :appendCheckItem(_S.menu_options_game_speed.normal:format(hotkey_value_label("ingame_gamespeed_normal", hotkeys)), rate("Normal")) -- (default) :appendCheckItem(_S.menu_options_game_speed.max_speed:format(hotkey_value_label("ingame_gamespeed_max", hotkeys)), rate("Max speed")) :appendCheckItem(_S.menu_options_game_speed.and_then_some_more:format(hotkey_value_label("ingame_gamespeed_thensome", hotkeys)), rate("And then some more")) ) self:addMenu(_S.menu.options, options) self:addMenu(_S.menu.charts, UIMenu() :appendItem(_S.menu_charts.bank_manager:format(hotkey_value_label("ingame_panel_bankManager", hotkeys)), function() self.ui.bottom_panel:dialogBankManager(true) end) :appendItem(_S.menu_charts.statement:format(hotkey_value_label("ingame_panel_bankStats", hotkeys)), function() self.ui.bottom_panel:dialogBankStats(true) end) :appendItem(_S.menu_charts.staff_listing:format(hotkey_value_label("ingame_panel_staffManage", hotkeys)), function() self.ui.bottom_panel:dialogStaffManagement(true) end) :appendItem(_S.menu_charts.town_map:format(hotkey_value_label("ingame_panel_townMap", hotkeys)), function() self.ui.bottom_panel:dialogTownMap(true) end) :appendItem(_S.menu_charts.casebook:format(hotkey_value_label("ingame_panel_casebook", hotkeys)), function() self.ui.bottom_panel:dialogDrugCasebook(true) end) :appendItem(_S.menu_charts.research:format(hotkey_value_label("ingame_panel_research", hotkeys)), function() self.ui.bottom_panel:dialogResearch(true) end) :appendItem(_S.menu_charts.status:format(hotkey_value_label("ingame_panel_status", hotkeys)), function() self.ui.bottom_panel:dialogStatus(true) end) :appendItem(_S.menu_charts.graphs:format(hotkey_value_label("ingame_panel_charts", hotkeys)), function() self.ui.bottom_panel:dialogCharts(true) end) :appendItem(_S.menu_charts.policy:format(hotkey_value_label("ingame_panel_policy", hotkeys)), function() self.ui.bottom_panel:dialogPolicy(true) end) :appendItem(_S.menu_charts.machine_menu:format(hotkey_value_label("ingame_panel_machineMenu", hotkeys)), function() self.ui:addWindow(UIMachineMenu(self.ui)) end) :appendItem(_S.menu_charts.adviser_history:format(hotkey_value_label("ingame_panel_adviserHistory", hotkeys)), function() self.ui:addWindow(UIAdviserHistory(self.ui)) end) :appendItem(_S.menu_charts.briefing, function() self.ui:showBriefing() end) ) local function allowBlockingAreas(option) return option == 2, function() app.config.blocking_off_areas = option end, "", function () return app.config.blocking_off_areas == option end end local function limit_camera(item) app.ui:limitCamera(item.checked) end local function disable_salary_raise(item) app.world:debugDisableSalaryRaise(item.checked) end local levels_menu = UIMenu() for L = 1, 12 do levels_menu:appendItem((" L%i "):format(L), function() if app:loadLevel(L, nil, nil, nil, nil, nil, _S.errors.load_level_prefix, nil) then self.ui.app.moviePlayer:playAdvanceMovie(L) end end) end if self.ui.app.config.debug then self:addMenu(_S.menu.debug, UIMenu() -- Debug :appendMenu(_S.menu_debug.jump_to_level, levels_menu) :appendMenu(_S.menu_debug.allow_blocking_off_areas, UIMenu() :appendCheckItem(_S.menu_debug_overlay_blocking_off_areas.choice_1, allowBlockingAreas(1)) :appendCheckItem(_S.menu_debug_overlay_blocking_off_areas.choice_2, allowBlockingAreas(2)) :appendCheckItem(_S.menu_debug_overlay_blocking_off_areas.choice_3, allowBlockingAreas(3)) ) :appendCheckItem(_S.menu_debug.limit_camera, true, limit_camera, nil, function() return self.ui.limit_to_visible_diamond end) :appendCheckItem(_S.menu_debug.disable_salary_raise, false, disable_salary_raise, nil, function() return self.ui.app.world.debug_disable_salary_raise end) :appendItem(_S.menu_debug.make_debug_fax, function() self.ui:makeDebugFax() end) :appendItem(_S.menu_debug.make_debug_patient, function() self.ui:addWindow(UIMakeDebugPatient(self.ui)) end) :appendItem(_S.menu_debug.cheats:format(hotkey_value_label("ingame_showCheatWindow", hotkeys)), function() self.ui:addWindow(UICheats(self.ui)) end) :appendItem(_S.menu_debug.lua_console:format(hotkey_value_label("global_showLuaConsole", hotkeys)), function() self.ui:addWindow(UILuaConsole(self.ui)) end) :appendItem(_S.menu_debug.debug_script:format(hotkey_value_label("global_runDebugScript", hotkeys)), function() self.ui:runDebugScript() end) :appendItem(_S.menu_debug.calls_dispatcher, function() self.ui:addWindow(UICallsDispatcher(self.ui)) end) :appendItem(_S.menu_debug.dump_strings:format(hotkey_value_label("ingame_poopStrings", hotkeys)), function() self.ui.app:dumpStrings() end) :appendItem(_S.menu_debug.dump_gamelog:format(hotkey_value_label("ingame_poopLog", hotkeys)), function() self.ui.app.world:dumpGameLog() end) :appendMenu(_S.menu_debug.map_overlay, UIMenu() :appendCheckItem(_S.menu_debug_overlay.none, true, overlay(), "") :appendCheckItem(_S.menu_debug_overlay.flags, false, overlay("flags"), "") :appendCheckItem(_S.menu_debug_overlay.positions, false, overlay("positions"), "") :appendCheckItem(_S.menu_debug_overlay.heat, false, overlay("heat"), "") :appendCheckItem(_S.menu_debug_overlay.byte_0_1, false, overlay(0, 1, false), "") :appendCheckItem(_S.menu_debug_overlay.byte_floor, false, overlay(2, 2, false), "") :appendCheckItem(_S.menu_debug_overlay.byte_n_wall, false, overlay(3, 3, false), "") :appendCheckItem(_S.menu_debug_overlay.byte_w_wall, false, overlay(4, 4, false), "") :appendCheckItem(_S.menu_debug_overlay.byte_5, false, overlay(5, 5, true), "") :appendCheckItem(_S.menu_debug_overlay.byte_6, false, overlay(6, 6, true), "") :appendCheckItem(_S.menu_debug_overlay.byte_7, false, overlay(7, 7, true), "") :appendCheckItem(_S.menu_debug_overlay.parcel, false, overlay("parcel"), "") ) :appendItem(_S.menu_debug.sprite_viewer, function() corsixth.require("sprite_viewer")() end) ) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/message.lua000066400000000000000000000145051522247547500213200ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Small fax notification window which sits on the bottom bar. class "UIMessage" (Window) ---@type UIMessage local UIMessage = _G["UIMessage"] function UIMessage:UIMessage(ui, x, stop_x, onClose, type, message, owner, timeout, default_choice, callback) self:Window() local app = ui.app self.esc_closes = false self.on_top = false self.onClose = onClose self.timer = timeout self.default_choice = default_choice self.ui = ui self.message = message self.callback = callback if owner then self.owner = owner if owner.message_callback then owner:message_callback(true) -- There can be only one message per owner, just remove any existing one end assert(owner.message_callback == nil) owner.message_callback = --[[persistable:owner_of_message_callback]] function(_, do_remove) if do_remove then self:removeMessage() else self:openMessage() end end end self.width = 30 self.height = 28 self.stop_x = stop_x self.stop_y = -24 self.x = x self.y = 4 self.panel_sprites = app.gfx:loadSpriteTable("Data", "Panel02V", true) self.type = type local types = { emergency = 43, epidemy = 45, strike = 47, personality = 49, information = 51, disease = 53, report = 55 } local kind = types[type] self.can_dismiss = self.type ~= "strike" and #self.message.choices == 1 self.button = self:addPanel(kind, 0, 0) :setTooltip(self.can_dismiss and _S.tooltip.message.button_dismiss or _S.tooltip.message.button) -- FIXME: tooltip doesn't work very well here :makeToggleButton(0, 0, 30, 28, kind + 1, self.openMessage, nil, self.dismissMessage) -- The emergency has a rotating siren if kind == 43 then self.rotator = {} for i = 57, 60 do self.rotator[i] = self:addPanel(i, 10, 8) self.rotator[i].visible = false end self.active = 57 end end function UIMessage:draw(canvas, x, y) if self.on_top then Window.draw(self, canvas, x, y) else canvas:pushClip(0, y + self.stop_y, canvas:getWidth(), self.height, true) Window.draw(self, canvas, x, y) canvas:popClip() end end function UIMessage:close(...) assert(self.onClose == nil, "UIMessage closed improperly") return Window.close(self, ...) end -- Adjust the toggle state to match if the message is open or not function UIMessage:adjustToggle() if (self.button.toggled and not self.fax) or (not self.button.toggled and self.fax) then self.button:toggle() end end --! Displays the fax/strike message to the player when opened from the bottom_panel. function UIMessage:openMessage() if TheApp.world:isUserActionProhibited() then self.ui:playSound("wrong2.wav") self:adjustToggle() return end if self.type == "strike" then -- strikes are special cases, as they are not faxes self.ui:addWindow(UIStaffRise(self.ui, self.owner, self.message)) self:removeMessage() else if self.fax then self.fax:close() else self.fax = UIFax(self.ui, self) self.ui:addWindow(self.fax) self.ui:playSound("fax_in.wav") end -- Manual adjustion of toggle state is necessary if owner's message_callback was used self:adjustToggle() end TheApp.video:setBlueFilterActive(false) end -- Removes the Message, executing a choice if given, else just deletes it --!param choice_number (number) if given, removes the message by executing this choice. function UIMessage:removeMessage(choice_number) if choice_number then if not self.fax then self.fax = UIFax(self.ui, self) -- NB: just create, don't add to ui end self.fax:choice(choice_number) else if self.fax then self.fax:close() end if self.owner then self.owner.message = nil self.owner.message_callback = nil end if self.onClose then local onClose = self.onClose self.onClose = nil onClose(self) end self:close() end end -- Tries to dismiss the message. This is only possible if there is only one choice. function UIMessage:dismissMessage() if self.can_dismiss then self:removeMessage(1) else self.ui:playSound("wrong2.wav") self:adjustToggle() end end function UIMessage:setXLimit(stop_x) self.stop_x = stop_x end function UIMessage:onTick() if self.on_top == false and self.y == self.stop_y then self.on_top = true end if self.y > self.stop_y then local y = self.y - 8 if y > self.stop_y then self.y = y else self.y = self.stop_y end elseif self.x > self.stop_x then local x = self.x - 3 if x > self.stop_x then self.x = x else self.x = self.stop_x end end end function UIMessage:onWorldTick() if self.timer then self.timer = self.timer - 1 if self.timer <= 0 then self.timer = nil self:removeMessage(self.default_choice) end end if self.active then self.rotator[self.active].visible = false if self.active == 60 then self.active = 57 else self.active = self.active + 1 end self.rotator[self.active].visible = true end end function UIMessage:afterLoad(old, new) if old < 21 then -- self.button added; however check for existence first -- since the savegame bump was a couple of revisions later if not self.button then self.button = self.buttons[1] end end Window.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/patient.lua000066400000000000000000000331201522247547500213320ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") -- Test for hit within the view circle local --[[persistable:patient_window_is_in_view_circle]] function is_in_view_circle(x, y) local s = TheApp.config.ui_scale return (x - 55 * s)^2 + (y - 254 * s)^2 < (39 * s)^2 end --! Individual patient information dialog class "UIPatient" (Window) ---@type UIPatient local UIPatient = _G["UIPatient"] function UIPatient:UIPatient(ui, patient) self:Window() local app = ui.app self.esc_closes = true self.ui = ui self.modal_class = "humanoid_info" self.width = 191 self.height = 310 self:setDefaultPosition(-20, 30) self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req02V", true) self.font = app.gfx:loadFontAndSpriteTable("QData", "Font74V", nil, nil, { apply_ui_scale = true }) -- Font used in the treatment history self.patient = patient self.visible_diamond = ui:makeVisibleDiamond(75, 76) self:addPanel(320, 15, 0) -- Graph top self:addPanel(321, 15, 61) -- Graph bottom self.history_panel = self:addColourPanel(36, 22, 99, 88, 223, 223, 223) -- Treatment history background self.history_panel:makeButton(0, 0, 99, 88, nil, --[[persistable:patient_toggle_history]] function() self.history_panel.visible = not self.history_panel.visible end):setTooltip(_S.tooltip.patient_window.graph):setSound("selectx.wav") -- Treatment history toggle self.history_panel.visible = false -- Hide the treatment history at start self:addPanel(322, 15, 126) -- Happiness / thirst / temperature sliders self:addPanel(323, 0, 201) -- View circle top self:addPanel(324, 0, 254) -- View circle bottom self:addPanel(325, 147, 21):makeButton(0, 0, 24, 24, 326, self.close):setTooltip(_S.tooltip.patient_window.close) -- If the patient has been diagnosed the "guess cure" button is not visible and -- if the patient is going home it is not possible to kick him/her anymore. self:addPanel(411, 14 + 132, 61 + 19):makeButton(0, 0, 25, 31, 412, self.viewQueue):setTooltip(_S.tooltip.patient_window.queue) -- Initialize all buttons and blankers, then call the update function which decides what to show. -- Show the drug casebook only after the disease has been diagnosed. self.disease_button = self:addPanel(329, 14 + 117, 61 + 107) :makeButton(0, 0, 38, 38, 330, self.viewDiseases):setTooltip(_S.tooltip.patient_window.casebook) self.disease_blanker = self:addColourPanel(14 + 115, 61 + 105, 45, 45, 113, 117, 170) self.home_button = self:addPanel(331, 14 + 95, 61 + 158):makeButton(0, 0, 60, 60, 332, self.goHome):setTooltip(_S.tooltip.patient_window.send_home) self.home_blanker = self:addColourPanel(14 + 93, 61 + 156, 67, 67, 113, 117, 170) self.guess_button = self:addPanel(413, 14 + 117, 61 + 58):makeButton(0, 0, 38, 38, 414, self.guessDisease):setTooltip(_S.tooltip.patient_window.abort_diagnosis) self.guess_blanker = self:addColourPanel(14 + 115, 61 + 56, 45, 45, 113, 117, 170) -- Set correct initial visibility/enabledness of the three buttons and their blankers self:updateInformation() self:makeTooltip(_S.tooltip.patient_window.happiness, 33, 117, 124, 141) self:makeTooltip(_S.tooltip.patient_window.thirst, 33, 141, 124, 169) self:makeTooltip(_S.tooltip.patient_window.warmth, 33, 169, 124, 203) -- Non-rectangular tooltip has to be realized with dynamic tooltip at the moment self:makeDynamicTooltip(--[[persistable:patient_window_center_tooltip]]function(x, y) if is_in_view_circle(x, y) then return _S.tooltip.patient_window.center_view end end, 17, 216, 92, 292) self:registerKeyHandlers() end function UIPatient:registerKeyHandlers() -- Always add this because of a race condition if the user clicks a patient -- that's already going home, then clicks another, the handler is left empty. Bad. -- Just do a going_home check when called. self:addKeyHandler("ingame_patient_gohome", self.goHome) end --! Normalise warmth of a patient. --!param warmth (number or nil) If given, the fraction of warmth of the patient. --!return (float) Normalized warmth level. function UIPatient.normaliseWarmth(warmth) if not warmth then return 0.5 end -- Return 1/2 if unknown. if warmth < 0.08 then warmth = 0 elseif warmth > 0.50 then warmth = 1 else warmth = (warmth - 0.08) / (0.50 - 0.08) end return warmth end --! Draw a bar in the patient dialogue window. --!param canvas Canvas to draw at. --!param sprite The sprite to draw --!param ybase Vertical base position. --!param xpos Horizontal offset. --!param ypos Vertical offset. --!param value Fraction to draw. function UIPatient:drawBar(canvas, sprite, ybase, xpos, ypos, value) local s = TheApp.config.ui_scale local width = math.floor(value * 40 + 0.5) for dx = 0, width - 1 do self.panel_sprites:draw(canvas, sprite, xpos + 58 * s + dx * s, ypos + ybase * s, { scaleFactor = s }) end end function UIPatient:draw(canvas, x_, y_) local s = TheApp.config.ui_scale local x, y = self.x * s + x_, self.y * s + y_ local map = self.ui.app.map local patient = self.patient -- If the patient has just despawned, then it will have no tile, hence -- making it impossible to render said patient. In this case, the dialog -- should close. Note that it is slightly better to close the dialog during -- the draw callback rather than the tick callback, as doing so in the tick -- callback would be removing from the window list while said list is being -- iterated, causing the next window in the list to miss it's tick (rendering -- is done via a reverse traversal, which does not suffer this problem). if not patient.tile_x then self:close() return end local px, py = map:WorldToScreen(patient.tile_x, patient.tile_y) local dx, dy = patient.th:getPrimaryMarker() px = px + dx - 37 py = py + dy - 61 -- If the patient is spawning or despawning, or just on the map edge, then -- the rendering point needs adjustment to keep the rendered region entirely -- within the map (this situation doesn't occur very often, but we need to -- handle it properly when it does occur). px, py = self.ui.limitPointToDiamond(px, py, self.visible_diamond, true) canvas:scale(s) self.ui.app.map:draw(canvas, px, py, 75, 76, math.floor(x / s) + 17, math.floor(y / s) + 216) canvas:scale(1) Window.draw(self, canvas, x_, y_) -- The patient bars (happiness, thirst, and warmth). local warmth = self.normaliseWarmth(patient:getAttribute("warmth")) self:drawBar(canvas, 348, 126, x, y, patient:getAttribute("happiness", 0.5)) self:drawBar(canvas, 351, 154, x, y, 1 - (patient:getAttribute("thirst", 0.5))) self:drawBar(canvas, 349, 183, x, y, warmth) if self.history_panel.visible then self:drawTreatmentHistory(canvas, x + 40 * s, y + 25 * s) elseif patient.health_history then self:drawHealthHistory(canvas, x, y) end end --! List the treatments that were performed on the patient. -- This text is always capitalised. --!param canvas Destination to draw on. --!param x (int) X position of the top of the list. --!param y (int) Y position of the top of the list. function UIPatient:drawTreatmentHistory(canvas, x, y) local s = TheApp.config.ui_scale for _, room in ipairs(self.patient.treatment_history) do y = self.font:drawWrapped(canvas, room:upper(), x, y, 95 * s) end end --! Draw the health graph of the patient. --!param canvas Destination to draw on. --!param x (int) X position of the top-left of the graph. --!param y (int) Y position of the top-left of the graph. function UIPatient:drawHealthHistory(canvas, x, y) local s = TheApp.config.ui_scale -- Sizes and positions of the graph in the window. local hor_length = 76 * s local vert_length = 70 * s local startx = 58 * s local starty = 27 * s -- Health history information. local hh = self.patient.health_history local index = hh["last"] local size = hh["size"] local dx = hor_length / size local line = nil -- Make a line the first time we find a non-nil value. for _ = 1, size do index = (index == size) and 1 or (index + 1) if hh[index] then local posy = starty + (1.0 - hh[index]) * vert_length if not line then line = TH.line() line:setWidth(2 * s) line:setColour(200, 55, 30, 255) line:moveTo(startx, posy) else line:lineTo(startx, posy) end end startx = startx + dx end if line then line:draw(canvas, x, y) end end function UIPatient:onMouseDown(button, x, y) self.do_scroll = button == "left" and is_in_view_circle(x, y) return Window.onMouseDown(self, button, x, y) end function UIPatient:onMouseUp(button, x, y) local ui = self.ui if button == "left" then self.do_scroll = false end local repaint = Window.onMouseUp(self, button, x, y) if button == "right" and is_in_view_circle(x, y) then -- Right click goes to the next patient local patient_index = nil for i, patient in ipairs(ui.hospital.patients) do if patient == self.patient then patient_index = i break end end patient_index = (patient_index or 0) + 1 local patient = ui.hospital.patients[patient_index] or ui.hospital.patients[1] if patient then ui:addWindow(UIPatient(ui, patient)) return false end end return repaint end function UIPatient:onMouseMove(x, y, dx, dy) self.do_scroll = self.do_scroll and is_in_view_circle(x, y) return Window.onMouseMove(self, x, y, dx, dy) end --[[! Scrolls the map to the position of the patient which this dialog belongs to ]] function UIPatient:scrollToPatient() local ui = self.ui local patient = self.patient local px, py = ui.app.map:WorldToScreen(patient.tile_x, patient.tile_y) local dx, dy = patient.th:getPosition() ui:scrollMapTo(px + dx, py + dy) end function UIPatient:onTick() if self.do_scroll then self:scrollToPatient() end return Window.onTick(self) end --! Go through the buttons in the patient dialog to check whether they should be visible function UIPatient:updateInformation() local patient = self.patient -- Show casebook? -- Debug patients can exist before a disease is discovered (i.e. no casebook entry) -- so make sure we guard against this. local diag = patient.diagnosed local disc = patient.hospital.disease_casebook[patient.disease.id].discovered local show_dis_btn = diag and disc self.disease_button.enabled = show_dis_btn self.disease_button.visible = show_dis_btn self.disease_blanker.visible = not show_dis_btn -- Show go home? local show_home_btn = not patient.going_home and not patient.going_to_die self.home_button.enabled = show_home_btn self.home_button.visible = show_home_btn self.home_blanker.visible = not show_home_btn -- Show guess cure? local show_guess_btn = not (patient.is_debug or patient.diagnosis_progress == 0 or patient.diagnosed or patient.going_to_die or patient.going_home) self.guess_button.enabled = show_guess_btn self.guess_button.visible = show_guess_btn self.guess_blanker.visible = not show_guess_btn end function UIPatient:viewQueue() for _, action in ipairs(self.patient.action_queue) do if action.name == "queue" then self.ui:addWindow(UIQueue(self.ui, action.queue)) self.ui:playSound("selectx.wav") return end end self.ui:playSound("wrong2.wav") end function UIPatient:goHome() if self.patient.going_home then return end self:close() self.patient:playSound("sack.wav") self.patient:goHome("kicked") self.patient:setDynamicInfoText(_S.dynamic_info.patient.actions.sent_home) end function UIPatient:viewDiseases() local dlg = UICasebook(self.ui, self.patient.diagnosed and self.patient.disease.id or nil) self.ui:addWindow(dlg) end function UIPatient:guessDisease() local patient = self.patient -- NB: the first line of conditions should already be ruled out by button being disabled, but just in case if patient.is_debug or patient.diagnosis_progress == 0 or patient.diagnosed or patient.going_home or patient.going_to_die or patient:getRoom() or not patient.hospital.disease_casebook[patient.disease.id].discovered then self.ui:playSound("wrong2.wav") return end patient:setDiagnosed() if patient:agreesToPay(patient.disease.id) then patient:setNextAction(SeekRoomAction(patient.disease.treatment_rooms[1]):enableTreatmentRoom(), 1) else patient:goHome("over_priced") end end function UIPatient:hitTest(x, y) return Window.hitTest(self, x, y) or is_in_view_circle(x, y) end function UIPatient:afterLoad(old, new) Window.afterLoad(self, old, new) self:registerKeyHandlers() if old < 236 then self.font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font74V", nil, nil, { apply_ui_scale = true }) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/place_objects.lua000066400000000000000000001231741522247547500224740ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") local ipairs, math_floor = ipairs, math.floor -- Visually, it looks better to have the object being placed not attached to a -- tile (so that it is always on top of walls, etc.), but for debugging it can -- be useful to attach it to a tile. local ATTACH_BLUEPRINT_TO_TILE = false --! The dialog shown when placing objects. class "UIPlaceObjects" (Window) ---@type UIPlaceObjects local UIPlaceObjects = _G["UIPlaceObjects"] --[[ Constructor for the class. !param ui (UI) The active ui. !param object_list (table) a list of tables with objects to place. Keys are "object", "qty" and "existing_object". The first is the object_type of the object, the second how many, and if the key "existing_object" is set it should be an already existing object that is about to be moved. In particular, if that object has a variable called current_frame then that frame will be used when drawing the object as it is being moved. ]] function UIPlaceObjects:UIPlaceObjects(ui, object_list, pay_for) self:Window() object_list = object_list or {} -- Default argument local app = ui.app self.modal_class = "main" self.ui = ui self.map = app.map self.anims = app.anims self.world = app.world self.width = 186 self.height = 167 + #object_list * 29 self:setDefaultPosition(0.9, 0.1) local selected_label_color = { red = 40, green = 40, blue = 250 } self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req05V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.blue_font = app.gfx:loadFontAndSpriteTable("QData", "Font02V", nil, nil, {ttf_color = selected_label_color, apply_ui_scale = true }) self.title_text = _S.rooms_short.corridor_objects self.desc_text = _S.place_objects_window.place_objects_in_corridor self:addPanel(112, 0, 0) -- Dialog header for y = 48, 83, 7 do self:addPanel(113, 0, y) -- Desc text box end self:addPanel(114, 0, 90) -- Dialog mid-piece self:addPanel(115, 0, 100):makeButton(9, 8, 41, 42, 116, self.cancel):setSound("no4.wav"):setTooltip(_S.tooltip.place_objects_window.cancel) self.purchase_button = self:addPanel(117, 50, 100):makeButton(1, 8, 41, 42, 118, self.purchaseItems):setTooltip(_S.tooltip.place_objects_window.buy_sell) :setDisabledSprite(127):setSound("selectx.wav"):enable(false) -- Disabled purchase items button self.pickup_button = self:addPanel(119, 92, 100):makeButton(1, 8, 41, 42, 120, self.pickupItems):setTooltip(_S.tooltip.place_objects_window.pick_up) :setDisabledSprite(128):setSound("selectx.wav"):enable(false):makeToggle() -- Disabled pick up items button self.confirm_button = self:addPanel(121, 134, 100):makeButton(1, 8, 43, 42, 122, self.confirm):setTooltip(_S.tooltip.place_objects_window.confirm) :setDisabledSprite(129):enable(false):setSound("YesX.wav") -- Disabled confirm button self.list_header = self:addPanel(123, 0, 146) -- Object list header self.list_header.visible = false self.objects = {} self.object_footprint = {} self.num_slots = 0 self:addObjects(object_list, pay_for) ui:setWorldHitTest(false) UIPlaceObjects.registerKeyHandlers(self) end function UIPlaceObjects:registerKeyHandlers() self:addKeyHandler("global_cancel", self.undo) self:addKeyHandler("global_cancel_alt", self.cancel) self:addKeyHandler("ingame_sellPickedUpItem", self.sell) self:addKeyHandler("ingame_rotateobject", self.tryNextOrientation) end -- changes the window size and buttons to num_slots slots function UIPlaceObjects:resize(num_slots) if self.num_slots == num_slots then return end if num_slots == 0 then self.list_header.visible = false else self.list_header.visible = true end local function idx(i) return --[[persistable:place_objects_idx1]] function(window) if i == window.active_index then window:nextOrientation() else window.place_objects = true window:setActiveIndex(i) -- Stop picking up items when user presses object in list local edit_room_window = window.ui:getWindow(UIEditRoom) if edit_room_window and edit_room_window.in_pickup_mode then edit_room_window:stopPickupItems() end end end end if self.num_slots < num_slots then -- change last panel if self.num_slots > 0 then local last_panel = self.panels[#self.panels - 1] last_panel.y = last_panel.y + 4 last_panel.sprite_index = 124 end -- add new panels (save last one) for i = self.num_slots + 1, num_slots - 1 do self:addPanel(124, 0, 121 + i * 29) :makeButton(15, 8, 130, 23, 125, idx(i)):setSound("selectx.wav") :preservePanel() end -- add last new panel self:addPanel(156, 0, 117 + num_slots * 29) :makeButton(15, 12, 130, 23, 125, idx(num_slots)):setSound("selectx.wav") :preservePanel() else -- remove buttons for _ = self.num_slots, num_slots + 1, -1 do -- NB: Two panels per item, the latter being a dummy for the button self.panels[#self.panels] = nil self.panels[#self.panels] = nil self.buttons[#self.buttons] = nil if num_slots > 0 then -- change appearance of last panel local last_panel = self.panels[#self.panels - 1] last_panel.y = last_panel.y - 4 last_panel.sprite_index = 156 end end end self.num_slots = num_slots self.height = 167 + (num_slots) * 29 end function UIPlaceObjects:addObjects(object_list, pay_for) self.visible = true -- even if no objects are to be placed, make the window visible again if not object_list then object_list = {} end if #object_list == 0 and #self.objects == 0 then return end -- Detect objects already existing in self.objects and increment its quantity -- rather than adding new objects lines. local new_index = 1 while true do local new_object = object_list[new_index] if not new_object then break end for _, object in ipairs(self.objects) do if new_object.qty > 0 and new_object.object.thob == object.object.thob then object.qty = object.qty + new_object.qty if pay_for then local build_cost = self.ui.hospital:getObjectBuildCost(new_object.object.id) local msg = _S.transactions.buy_object .. ": " .. object.object.name self.ui.hospital:spendMoney(new_object.qty * build_cost, msg, new_object.qty * build_cost) end -- If this is an object that has been created in the world already, add it to the -- associated list of objects to re-place. if new_object.existing_object then if not object.existing_objects then object.existing_objects = {} end -- Insert the new object in the beginning of the list so that that this object -- is the one to be placed first. (LIFO) table.insert(object.existing_objects, 1, new_object.existing_object) end table.remove(object_list, new_index) new_index = new_index - 1 break end end new_index = new_index + 1 end self.place_objects = true -- When adding objects guess we want to place objects self.object_anim = TH.animation() self.object_slave_anim = TH.animation() local total_objects = #self.objects + #object_list self:resize(total_objects) for _, object in pairs(object_list) do if object.existing_object then object.existing_objects = {object.existing_object} end self.objects[#self.objects + 1] = object if pay_for then local build_cost = self.ui.hospital:getObjectBuildCost(object.object.id) local msg = _S.transactions.buy_object .. ": " .. object.object.name self.ui.hospital:spendMoney(object.qty * build_cost, msg, object.qty * build_cost) end end -- sort list by size of object (number of tiles in the first existing orientation (usually north)) table.sort(self.objects, function(o1, o2) local orient1 = o1.object.orientations.north or o1.object.orientations.east or o1.object.orientations.south or o1.object.orientations.west local orient2 = o2.object.orientations.north or o2.object.orientations.east or o2.object.orientations.south or o2.object.orientations.west return #orient1.footprint > #orient2.footprint end) self.active_index = 0 -- avoid case of index changing from 1 to 1 self.active_hover_index = 0 self.hover_sound = nil self:setActiveIndex(1) self:onCursorWorldPositionChange(self.ui:getCursorPosition(self)) end -- precondition: self.active_index has to correspond to the object to be removed function UIPlaceObjects:removeObject(object, dont_close_if_empty, placed, move_canceled) local existing_object = object.existing_object local move_cancellation = not placed and existing_object and move_canceled local purchase_cancellation = not placed and not existing_object local sale_previously_placed = not placed and existing_object and not move_canceled if purchase_cancellation or sale_previously_placed then -- Object sell. -- The player should be reimbursed for the cost of the item, i.e. -- whether they were previously purchased. So do refund. local build_cost = self.ui.hospital:getObjectBuildCost(object.object.id) local msg = _S.transactions.sell_object .. ": " .. object.object.name self.ui.hospital:receiveMoney(build_cost, msg, build_cost) end if move_cancellation then -- Move cancelled. Place object back. Restore coordinate and orientation. self.object_cell_x = object.existing_object.tile_x self.object_cell_y = object.existing_object.tile_y self.object_orientation = object.existing_object.direction self:placeObject(nil, true) end if sale_previously_placed then -- Previously grabbed an existing object so the object was not deleted -- from its previous location, but simply made invisible. self.world:destroyEntity(object.existing_object) end object.qty = object.qty - 1 -- Prefer to remove objects not yet placed local existing_no = object.existing_objects and #object.existing_objects or 0 if existing_no > 0 then if object.qty < #object.existing_objects then -- The object is already as good as destroyed. It is only known in this list. table.remove(object.existing_objects, 1) end end if object.qty == 0 then if #self.objects == 1 then self:clearBlueprint() self.object_cell_x = nil self.object_cell_y = nil if dont_close_if_empty then self.list_header.visible = false self.place_objects = false -- No object to place else self:close(false) return end end local idx = self.active_index table.remove(self.objects, idx) self:resize(#self.objects) self.active_index = 0 -- avoid case of index changing from 1 to 1 self.active_hover_index = 0 self:setActiveIndex(1) else -- Make sure the correct frame is shown for the next object self:setOrientation(self.object_orientation) end -- Update blueprint self:setBlueprintCell(self.object_cell_x, self.object_cell_y) if object.object.id == "reception_desk" then -- Rebuild cache of reception desks self.ui.hospital:buildReceptionDesksCache() end end --! Remove all items from the menu. --!param move_canceled (bool) moving objects has been cancelled. function UIPlaceObjects:removeAllObjects(move_canceled) -- There is surely a nicer way to implement this than the current hack. Rewrite it sometime later. self:setActiveIndex(1) for _ = 1, #self.objects do for _ = 1, self.objects[1].qty do self:removeObject(self.objects[1], true, false, move_canceled) end end end function UIPlaceObjects:removeObjects(object_list) -- rewrite at some point.. if not object_list then object_list = {} end for _, o in ipairs(object_list) do for j, p in ipairs(self.objects) do if o.object.id == p.object.id then self.active_index = j for _ = 1, o.qty do self:removeObject(p, true, false) end end end end end --! Close menu. --!param move_canceled (bool) moving objects has been cancelled. function UIPlaceObjects:close(move_canceled) self.ui:tutorialStep(1, {4, 5}, 1) self:removeAllObjects(move_canceled) self:clearBlueprint() self.ui:setWorldHitTest(true) return Window.close(self) end function UIPlaceObjects:cancel() self:close(false) end --! Helper function to stop UIEditRoom going back to doors phase function UIPlaceObjects:sell() if not self.ui:getWindow(UIEditRoom) then self:close(false) end end function UIPlaceObjects:undo() self:close(true) end function UIPlaceObjects:setActiveIndex(index) if index == self.active_index or #self.objects == 0 then return end self.active_index = index local object = self.objects[self.active_index].object if object.id == "reception_desk" then self.ui:tutorialStep(1, 6, 4) else self.ui:tutorialStep(1, {4, 5}, 6) end local anims = self.anims local grey_scale = anims.Alt32_GreyScale local _, ghost = self.ui.app.gfx:getPalette("MPalette.dat") for _, anim in pairs(object.idle_animations) do anims:setAnimationGhostPalette(anim, ghost, grey_scale) end if object.slave_type then for _, anim in pairs(object.slave_type.idle_animations) do anims:setAnimationGhostPalette(anim, ghost, grey_scale) end end if object.locked_to_wall then local wx, wy, wo = self:calculateBestPlacementPosition(0, 0) self.object_cell_x, self.object_cell_y = wx, wy self:setOrientation(wo) else self.object_orientation = "west" self:nextOrientation() end end local orient_mirror = { north = "west", west = "north", east = "south", south = "east", } local orient_next = { north = "east", east = "south", south = "west", west = "north", } function UIPlaceObjects:setOrientation(orient) self.object_orientation = orient local object_data = self.objects[self.active_index] local object = object_data.object local anim = object.idle_animations[orient] local flag = 0 if not anim then anim = object.idle_animations[orient_mirror[orient]] flag = 1 end if object.orientations[orient].early_list then flag = flag + 1024 end self.object_anim:setAnimation(self.anims, anim, flag) if object.slave_type then local slave_flag = flag - (flag % 2) local slave_anim = object.slave_type.idle_animations[orient] if not slave_anim then slave_anim = object.slave_type.idle_animations[orient_mirror[orient]] slave_flag = slave_flag + 1 end self.object_slave_anim:setAnimation(self.anims, slave_anim, slave_flag) end local present_object if object_data.existing_objects and #object_data.existing_objects > 0 then present_object = object_data.existing_objects[1] end if present_object and present_object.current_frame then self.object_anim:setFrame(present_object.current_frame) end local px, py = unpack(object.orientations[orient].render_attach_position) if type(px) == "table" then px, py = unpack(px) end px, py = Map:WorldToScreen(px + 1, py + 1) px = object.orientations[orient].animation_offset[1] + px py = object.orientations[orient].animation_offset[2] + py self.object_anim:setPosition(px, py) if object.slave_type then px, py = unpack(object.slave_type.orientations[orient].render_attach_position) if type(px) == "table" then px, py = unpack(px) end local offset = object.orientations[orient].slave_position if offset then px = px + offset[1] py = py + offset[2] end px, py = Map:WorldToScreen(px + 1, py + 1) px = object.slave_type.orientations[orient].animation_offset[1] + px py = object.slave_type.orientations[orient].animation_offset[2] + py self.object_slave_anim:setPosition(px, py) end self:setBlueprintCell(self.object_cell_x, self.object_cell_y) end function UIPlaceObjects:nextOrientation() if not self.object_anim then return end local object = self.objects[self.active_index].object if object.locked_to_wall then -- Orientation is dictated by the nearest wall return end local orient = self.object_orientation repeat orient = orient_next[orient] until object.orientations[orient] self:setOrientation(orient) end function UIPlaceObjects:tryNextOrientation() if #self.objects > 0 then self.ui:playSound("swoosh.wav") self.objects[self.active_index].orientation_before = self.object_orientation self:nextOrientation() end end function UIPlaceObjects:onMouseUp(button, x, y) local repaint = Window.onMouseUp(self, button, x, y) -- We don't want to place objects because we are selecting new objects for adding in a room being built/edited -- Or the game is paused. if not self.place_objects or not self.world.user_actions_allowed then return end if button == "right" then self:tryNextOrientation() repaint = true elseif button == "left" then if #self.objects > 0 then local s = TheApp.config.ui_scale if 0 <= x and x < self.width * s and 0 <= y and y < self.height * s then -- luacheck: ignore 542 -- Click within window - do nothing elseif self.object_cell_x and self.object_cell_y then if self.object_blueprint_good then if not self.world:anyHumanoidObscuringArea(self.object_cell_x, self.object_cell_y) then self:placeObject() repaint = true end else self.ui:tutorialStep(3, {13, 15}, 14) end end end end return repaint end function UIPlaceObjects:placeObject(dont_close_if_empty, dont_remove) if not self.place_objects then -- We don't want to place objects because we are selecting new objects for adding in a room being built/edited return end local object = self.objects[self.active_index] if object.object.id == "reception_desk" then self.ui:tutorialStep(1, 4, "next") end local real_obj -- There might be an existing object that has been picked up. if object.existing_objects and #object.existing_objects > 0 then real_obj = object.existing_objects[1] table.remove(object.existing_objects, 1) end local room = self.room or self.world:getRoom(self.object_cell_x, self.object_cell_y) if real_obj then -- If there is such an object then we don't want to make a new one, but move this one instead. if real_obj.picked_up and not real_obj.th:isVisible() then -- Previously grabbed an existing object so the object was not actually -- deleted from its previous location, but simply made invisible. real_obj:setTile(nil) real_obj:setInvisible(false) real_obj:rebuildPassableCellFlags() end real_obj.picked_up = false if real_obj.orientation_before and real_obj.orientation_before ~= self.object_orientation then real_obj:initOrientation(self.object_orientation) end self.world:prepareFootprintTilesForBuild(real_obj.footprint, self.object_cell_x, self.object_cell_y) real_obj:setTile(self.object_cell_x, self.object_cell_y) self.world:objectPlaced(real_obj) if real_obj.slave then self.world:objectPlaced(real_obj.slave) end if real_obj:isMachine() then -- Machines may have some state like smoke and etc. Update it. real_obj:placed(room) end if class.is(real_obj, Machine) then real_obj:setHandymanRepairPosition(self.object_orientation) end else local object_footprint = object.object.orientations[self.object_orientation].footprint self.world:prepareFootprintTilesForBuild(object_footprint, self.object_cell_x, self.object_cell_y) real_obj = self.world:newObject(object.object.id, self.object_cell_x, self.object_cell_y, self.object_orientation) real_obj:setState(object.state) end if room then room.objects[real_obj] = true end self.ui:playSound("place_r.wav") if not dont_remove then self:removeObject(object, dont_close_if_empty, true, false) end object.orientation_before = nil return real_obj end function UIPlaceObjects:draw(canvas, x, y) if not self.visible then return -- Do nothing if dialog is not visible end -- Don't show the object if the game is paused if self.world.user_actions_allowed then if not ATTACH_BLUEPRINT_TO_TILE and self.object_cell_x and self.object_anim then local xpos, ypos = self.ui:WorldToScreen(self.object_cell_x, self.object_cell_y) local zoom = self.ui.zoom_factor if canvas:scale(zoom) then xpos = math.floor(xpos / zoom) ypos = math.floor(ypos / zoom) end self.object_anim:draw(canvas, xpos, ypos) if self.objects[self.active_index].object.slave_type then self.object_slave_anim:draw(canvas, xpos, ypos) end canvas:scale(1) end end Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = x + self.x * s, y + self.y * s self.white_font:draw(canvas, self.title_text, x + 17 * s, y + 21 * s, 153 * s, 0) self.white_font:drawWrapped(canvas, self.desc_text, x + 20 * s, y + 46 * s, 147 * s) for i, o in ipairs(self.objects) do local font = self.white_font local font_ypos = y + 136 * s + i * 29 * s if i == self.active_index then local frame_xpos = x + 20 * s local frame_ypos = y + 134 * s + i * 29 * s local frame_width = 119 * s local frame_height = 12 * s local red = canvas:mapRGB(221, 83, 0) canvas:drawRect(red, frame_xpos, frame_ypos, frame_width, s) canvas:drawRect(red, frame_xpos, frame_ypos + frame_height, frame_width + s, s) canvas:drawRect(red, frame_xpos, frame_ypos, s, frame_height) canvas:drawRect(red, frame_xpos + frame_width, frame_ypos, s, frame_height) end if i == self.active_hover_index then font = self.blue_font end font:draw(canvas, o.object.name, x + 15 * s, font_ypos, 130 * s, 0) font:draw(canvas, o.qty, x + 151 * s, font_ypos, 19 * s, 0) end end function UIPlaceObjects:onMouseMove(x, y, dx, dy) local s = TheApp.config.ui_scale local current_hover_id local header_height = 159 * s local bar_height = 29 * s local inside_objects_area = (x > 0 and x < 186 * s) and (y > header_height and y < header_height + bar_height * #self.objects) if inside_objects_area then -- Check if player hovers over a button, not between. if (header_height + y) % bar_height < 21 * s then current_hover_id = math_floor((y - header_height)/bar_height) + 1 if self.active_hover_index ~= current_hover_id then if self.hover_sound then self.ui:stopSound(self.hover_sound) end self.hover_sound = self.ui:playSound("Hlight5.wav") self.active_hover_index = current_hover_id end else self.active_hover_index = 0 end else self.active_hover_index = nil end return Window:onMouseMove(x, y, dx, dy) end function UIPlaceObjects:clearBlueprint() local map = self.map.th if self.object_anim then self.object_anim:setTile(nil) end if self.object_slave_anim then self.object_slave_anim:setTile(nil) end for _, xy in ipairs(self.object_footprint) do if xy[1] ~= 0 then map:setCell(xy[1], xy[2], 4, 0) end end end local flag_alpha75 = 256 * 8 local flag_altpal = 16 --! Method for displaying a blueprint when placing object by coordinates under the user cursor. --! Draws a blueprint and determines its color depending on whether the object can be placed --! at the given coordinates or not. A gray blueprint means placement is prohibited. --! A colored blueprint means placement is permitted. function UIPlaceObjects:setBlueprintCell(x, y) self:clearBlueprint() self.object_cell_x = x self.object_cell_y = y if not x or not y or #self.objects == 0 then self.object_footprint = {} return end local real_obj = self.objects[self.active_index] local object = real_obj.object local object_footprint = object.orientations[self.object_orientation].footprint local map = self.map.th if #object_footprint ~= #self.object_footprint then self.object_footprint = {} for i = 1, #object_footprint do self.object_footprint[i] = {} end end local room = self.room and self.room.id local valid_placement, room_id, passable_flag = self:_placementAvailableHereAndOtherObjectsDoNotInterfere( x, y, object, real_obj, object_footprint, room, map) if self.object_anim and object.class ~= "SideObject" then -- Not SideObject - object is occupying one or more tiles entirely -- (Drinks machine, plant, reception desk, room machines and etc). valid_placement = valid_placement and self:_isNonSideObjectPlacementValid(x, y, object, self.object_orientation, room_id) self:_setBlueprintPartialFlags(x, y, map, valid_placement) elseif object.class == "SideObject" then -- SideObject - an object that lives on the edge of a tile (radiator, bin, extinguisher). valid_placement = valid_placement and self:_isSideObjectPlacementValid(x, y, room_id, passable_flag, map) self:_setBlueprintPartialFlags(x, y, map, valid_placement) end end --! Function checks whether this space is available for placing an object and -- whether the space is not occupied by other objects. function UIPlaceObjects:_placementAvailableHereAndOtherObjectsDoNotInterfere( x, y, object, real_obj, object_footprint, room, map) local flags = {} local passable_flag local room_id = room local valid_placement = true local opt_tiles_blocked = 0 local world = self.ui.app.world local player_id = self.ui.hospital:getPlayerIndex() local direction = self.object_orientation local direction_parameters = Object.directionParameters() local optional_tiles = 0 for _, tile in ipairs(object_footprint) do if tile.optional then optional_tiles = optional_tiles + 1 end end -- flags for the case of moving a previously placed object to a new location local existing_object = real_obj.existing_object local same_placement = false -- same cell and same orientation local moving_existing_object = existing_object and existing_object.picked_up and not existing_object.th:isVisible() -- The given footprint tile is not usable, -- update the external 'valid_placement' variable accordingly. local function updateResult(xy) if xy.optional then opt_tiles_blocked = opt_tiles_blocked + 1 if opt_tiles_blocked >= optional_tiles then valid_placement = false end else valid_placement = false end end if moving_existing_object then -- moving a previously placed object to a new location local same_tile = existing_object.tile_x == x and existing_object.tile_y == y same_placement = same_tile and existing_object.direction == direction end if moving_existing_object and self.object_anim and object.class ~= "SideObject" then -- we placing previously 'grabbed' an existing object which actually just made invisible -- free up the space occupied by the object during the test for tiles availability existing_object:deoccupyTilesByObjectFootprintAt(existing_object.tile_x, existing_object.tile_y) end -- for each tile in object_footprint check map tile availability for i, tile in ipairs(object_footprint) do local xpos = x + tile[1] local ypos = y + tile[2] -- Check 1: Does the tile have valid map coordinates?: if not world:isOnMap(xpos, ypos) then updateResult(tile) xpos = 0 ypos = 0 else local flag = "buildable" local good_tile = 24 + flag_alpha75 local bad_tile = 67 + flag_alpha75 if tile.only_passable then flag = "passable" end if tile.only_side then -- 50 is a trash bin thob if object.thob == 50 and direction == "east" then direction = "west" end flag = direction_parameters[direction]["buildable_flag"] passable_flag = direction_parameters[direction]["passable_flag"] end -- Check 2: Is the tile in the object's allowed room?: local result = world:willObjectsFootprintTileBeWithinItsAllowedRoomIfLocatedAt(xpos, ypos, object, room_id) local is_object_allowed = result.within_room room_id = result.roomId -- Check 3: The footprint tile should either be buildable or passable, is it?: if not tile.only_side and is_object_allowed then is_object_allowed = world:isFootprintTileBuildableOrPassable(xpos, ypos, tile, object_footprint, flag, player_id) elseif is_object_allowed then is_object_allowed = (map:getCellFlags(xpos, ypos, flags)[flag] or same_placement) and (player_id == 0 or flags.owner == player_id) end -- ignore placed object tile if it is shareable if not tile.shareable and is_object_allowed then -- Check 4: only one object per tile allowed original TH -- can build on litter and unoccupied tiles and only placeable -- if not on another objects passable footprint unless that -- too is a shareable tile local objchk = map:getCellFlags(xpos, ypos, flags)["thob"] local objects_do_not_interfere = (objchk == 0) or (objchk == 62) or (objchk == 64) -- no other object, except litter/puke, ratholes local moving_existing_object_on_same_place = existing_object and (existing_object.tile_x == xpos) and (existing_object.tile_y == ypos) local tile_exclusively_passable = world:isTileExclusivelyPassable(xpos, ypos, 10) is_object_allowed = tile_exclusively_passable and (moving_existing_object_on_same_place or objects_do_not_interfere) end -- Having checked if the tile is good set its blueprint appearance flag: if is_object_allowed then if not tile.invisible then map:setCell(xpos, ypos, 4, good_tile) end else if not tile.invisible then map:setCell(xpos, ypos, 4, bad_tile) end updateResult(tile) end end self.object_footprint[i][1] = xpos self.object_footprint[i][2] = ypos end if moving_existing_object and self.object_anim and object.class ~= "SideObject" then -- we've tested the placement and now we need to re-occupy the cells. existing_object:occupyTilesByObjectFootprintAt(existing_object.tile_x, existing_object.tile_y) end return valid_placement, room_id, passable_flag end --! Function for checking the valid placement of "NonSideObject". --! param x (integer) target tile x coordinate. --! param y (integer) target tile y coordinate. --! param object (object) target SideObject. --! param object_orientation (string) footprint orientation name. --! param room_id (integer) room id if we in a build mode. --! return (bool) is this placement not going to break path finding. function UIPlaceObjects:_isNonSideObjectPlacementValid(x, y, object, object_orientation, room_id) local world = self.ui.app.world local invalid_placement if room_id > 0 and x and y then -- placing an object in a room local room = world:getRoom(x, y) if room and not room.crashed and room.door and room.door.tile_x and room.door.tile_y then -- a valid room with a door if self.ui.app.config.blocking_off_areas == 2 then -- soft placing approach if not room.is_active then -- user in a room editing mode local object_layout = object.orientations[object_orientation] invalid_placement = world:wouldNonSideObjectsNotHaveAccessToRoomDoor(x, y, room, object_layout) if not invalid_placement then -- also check that after placing the object, all usage titles of objects already placed in the room -- will remain accessible from the door room tile. invalid_placement = world:wouldObjectBreakRoomObjectsAccessToTheRoomDoor(x, y, room, object_layout, false) end else -- user not in a room editing mode. -- as we are not in a room editing mode, then there may be humanoids in the room. -- this means that placing object can block a humanoid's passage to the door. -- To prevent that case we fallback to strict placing approach. invalid_placement = world:wouldNonSideObjectBreakPathfindingIfSpawnedAt(x, y, object, object_orientation, room_id) end else -- soft placing approach disabled. So follow strict placing approach. invalid_placement = world:wouldNonSideObjectBreakPathfindingIfSpawnedAt(x, y, object, object_orientation, room_id) end else -- not a valid room with a door. Possible corner case like a transition state. invalid_placement = true end else -- placing an object outside of any room. -- Fallback to strict placing approach. invalid_placement = world:wouldNonSideObjectBreakPathfindingIfSpawnedAt(x, y, object, object_orientation, room_id) end if not invalid_placement then return true elseif self.ui.app.config.blocking_off_areas == 3 then -- all-permissive placing approach. -- This could lead to crashes, so we'll record this in the log so that during investigation -- we'll be able to know that safe placement was disabled. TheApp.world:gameLog("Blocking off areas is allowed at " .. x .. ", " .. y .. ".") return true end return false end --! Function for checking the valid placement of "SideObject". --! param x (integer) target tile x coordinate. --! param y (integer) target tile y coordinate. --! param room_id (integer) room id if we in a build mode. --! param passable_flag (string) passable flag name. orientation of an object relative to the cardinal directions. --! param map (object) map class instance. --! return (bool) is this placement not going to break path finding. function UIPlaceObjects:_isSideObjectPlacementValid(x, y, room_id, passable_flag, map) -- if we consider to place a SideObject against a wall, it is always a valid placement. -- also, for SideObject, do not change 'passable_flag according to the algorithm below in 1., -- as this will make the wall passable through. local along_wall = map:getCellFlags(x, y)[passable_flag] == false if along_wall then return true end local world = self.ui.app.world local invalid_placement -- Depending on the orientation of the side object, we will check the accessibility of the cell -- that is located just behind the edge that this side object creates with its placement local to_check_x, to_check_y = x, y if passable_flag == "travelNorth" or passable_flag == "travelSouth" then to_check_y = to_check_y + (passable_flag == "travelNorth" and -1 or 1) else to_check_x = to_check_x + (passable_flag == "travelEast" and 1 or -1) end local opposite_passable_flag = Object.getComplementaryPassableFlag(passable_flag) local function hasNoConnectingPath(x1, y1, x2, y2) if not world.pathfinder:findDistance(x1, y1, x2, y2) then -- we need to check if the failure to get the distance is due to the presence of an object in the adjacent tile if map:getCellFlags(x2, y2)["passable"] then return true end end return false end -- 1. Let's simulate it as if we've already placed the object and make tile edge unpassable -- SideObject cell local flags_main = {} flags_main[passable_flag] = false map:setCellFlags(x, y, flags_main) -- adjacent cell to SideObject local flags_adjacent = {} flags_adjacent[opposite_passable_flag] = false map:setCellFlags(to_check_x, to_check_y, flags_adjacent) -- 2. Check if the passability to objects is broken. if room_id > 0 and x and y then -- placing an object in a room local room = world:getRoom(x, y) if room and not room.crashed and room.door and room.door.tile_x and room.door.tile_y then -- a valid room with a door if self.ui.app.config.blocking_off_areas == 2 then -- soft placing approach if not room.is_active then -- user in a room editing mode invalid_placement = world:wouldObjectBreakRoomObjectsAccessToTheRoomDoor(x, y, room, nil, true) else -- user not in a room editing mode. -- as we are not in a room editing mode, then there could be humanoids in the room. -- this means that placing object can block a humanoid's passage to the door. -- to prevent that case we fallback to strict placing approach. invalid_placement = hasNoConnectingPath(x, y, to_check_x, to_check_y) end else -- follow strict placing approach. invalid_placement = hasNoConnectingPath(x, y, to_check_x, to_check_y) end else -- not a valid room with a door. Possible corner case like a transition state. invalid_placement = true end else -- placing an object outside of any room. -- Fallback to strict placing approach. invalid_placement = hasNoConnectingPath(x, y, to_check_x, to_check_y) end -- 3. Restore the original tile's passable properties, thus undoing the actions taken in step 1. flags_main[passable_flag] = true map:setCellFlags(x, y, flags_main) flags_adjacent[opposite_passable_flag] = true map:setCellFlags(to_check_x, to_check_y, flags_adjacent) if not invalid_placement then return true elseif self.ui.app.config.blocking_off_areas == 3 then -- all-permissive placing approach. -- This could lead to crashes, so we'll record this in the log so that during investigation -- we'll be able to know that safe placement was disabled. TheApp.world:gameLog("Blocking off areas is allowed at " .. x .. ", " .. y .. ".") return true end return false end function UIPlaceObjects:_setBlueprintPartialFlags(x, y, map, valid_placement) if ATTACH_BLUEPRINT_TO_TILE then self.object_anim:setTile(map, x, y, 0) end self.object_anim:setPartialFlag(flag_altpal, not valid_placement) self.object_slave_anim:setPartialFlag(flag_altpal, not valid_placement) self.object_blueprint_good = valid_placement self.ui:tutorialStep(1, valid_placement and 5 or 4, valid_placement and 4 or 5) end local function NearestPointOnLine(lx1, ly1, lx2, ly2, px, py) -- Translate everything to make one line segment endpoint be on the origin local lx = lx1 - lx2 local ly = ly1 - ly2 px = px - lx2 py = py - ly2 -- Project point onto line (scale everything to make (lx, ly) be on the unit -- circle, then dot product). local d = (lx * px + ly * py) / (lx * lx + ly * ly) if d <= 0 then return lx2, ly2 elseif d >= 1 then return lx1, ly1 else return d * lx1 + (1 - d) * lx2, d * ly1 + (1 - d) * ly2 end end function UIPlaceObjects:calculateBestPlacementPosition(x, y) local object = self.objects[self.active_index].object local room = self.room local wx, wy = self.ui:ScreenToWorld(self.x + x, self.y + y) local bestd = nil local bestx, besty = wx, wy local besto = self.object_orientation if room and object.locked_to_wall then if object.locked_to_wall.north then local px, py = NearestPointOnLine(room.x + 0.5, room.y + 0.5, room.x + room.width - 0.5, room.y + 0.5, wx, wy) local d = ((px - wx)^2 + (py - wy)^2)^0.5 if not bestd or d < bestd then bestd, bestx, besty, besto = d, px, py, object.locked_to_wall.north end end if object.locked_to_wall.west then local px, py = NearestPointOnLine(room.x + 0.5, room.y + 0.5, room.x + 0.5, room.y + room.height - 0.5, wx, wy) local d = ((px - wx)^2 + (py - wy)^2)^0.5 if not bestd or d < bestd then bestx, besty, besto = px, py, object.locked_to_wall.west end end -- TODO: East, South end bestx, besty = math_floor(bestx), math_floor(besty) if bestx < 1 or besty < 1 or bestx > self.map.width or besty > self.map.height then bestx, besty = nil, nil end return bestx, besty, besto end function UIPlaceObjects:onCursorWorldPositionChange(x, y) local repaint = Window.onCursorWorldPositionChange(self, x, y) if not self.place_objects then -- We don't want to place objects because we are selecting new objects for adding in a room being built/edited return repaint end repaint = true if self.world.user_actions_allowed then local wx, wy, wo = self:calculateBestPlacementPosition(x, y) if wx ~= self.object_cell_x or wy ~= self.object_cell_y then self:setBlueprintCell(wx, wy) repaint = true end if wo ~= self.object_orientation then self:setOrientation(wo) repaint = true end else self:clearBlueprint() end return repaint end function UIPlaceObjects:selectObjectType(object_type) for i, o in ipairs(self.objects) do if o.object.id == object_type.id then self:setActiveIndex(i) return end end end function UIPlaceObjects:afterLoad(old, new) Window.afterLoad(self, old, new) UIPlaceObjects.registerKeyHandlers(self) if old < 236 then local selected_label_color = { red = 40, green = 40, blue = 250 } self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.blue_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font02V", nil, nil, {ttf_color = selected_label_color, apply_ui_scale = true }) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/place_staff.lua000066400000000000000000000153361522247547500221460ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local math_floor = math.floor local TH = require("TH") --! Invisible window which handles placing a `Staff` member in the world. class "UIPlaceStaff" (Window) ---@type UIPlaceStaff local UIPlaceStaff = _G["UIPlaceStaff"] function UIPlaceStaff:UIPlaceStaff(ui, profile, x, y) self.ui = ui self.world = ui.app.world self.modal_class = "main" self.esc_closes = true if class.is(profile, Staff) then self.staff = profile profile = profile.profile end self.profile = profile -- The receptionist has no door animations, and hence would not -- be able to leave a room if placed in one. self.allow_in_rooms = not profile:isType("Receptionist") self.anim = TH.animation() self.anim:setLayer(5, profile.layer5) local idle_anim = Humanoid.getIdleAnimation(profile.humanoid_class) self.anim:setAnimation(self.world.anims, idle_anim) local _, ghost = ui.app.gfx:getPalette("MPalette.dat") local grey_scale = self.world.anims.Alt32_GreyScale self.world.anims:setAnimationGhostPalette(idle_anim, ghost, grey_scale) self:onCursorWorldPositionChange(x, y) self:Window() end function UIPlaceStaff:close() local employed_staff = self.staff local play_placement_sound = true if employed_staff then employed_staff.pickup = false employed_staff.staffroom_needed = nil employed_staff.going_to_staffroom = nil employed_staff:getCurrentAction().window = nil local room = self.world:getRoom(employed_staff.tile_x, employed_staff.tile_y) if room and room == employed_staff.last_room and room.crashed then employed_staff:die() employed_staff:despawn() self.world:destroyEntity(employed_staff) else employed_staff:setNextAction(MeanderAction()) end elseif self.profile then -- Cancel hiring newcomer self.ui:tutorialStep(2, {6, 7}, 1) self.ui:tutorialStep(4, {4, 5}, 1) -- Return the profile to the available staff list local staff_pool = self.world.available_staff[self.profile.humanoid_class] staff_pool[#staff_pool + 1] = self.profile play_placement_sound = false end if play_placement_sound then self.ui:playSound("plac_st2.wav") end Window.close(self) end function UIPlaceStaff:onCursorWorldPositionChange(x, y) x, y = self.ui:ScreenToWorld(x, y + 14) self.tile_x = math_floor(x) self.tile_y = math_floor(y) end local flag_cache = {} local flag_altpal = 16 --! Private function. Is the staff member (self) permitted -- to be placed where the user is hovering or clicking? function UIPlaceStaff:_isValidStaffPlacement() local world, x, y = self.world, self.tile_x, self.tile_y world.map.th:getCellFlags(x, y, flag_cache) -- Is the tile inside the player's hospital building? if not (self.ui.hospital:getPlayerIndex() == flag_cache.owner and flag_cache.hospital) then return false end local room = world:getRoom(x, y) -- On a tile humanoids can walk on? local walkable = flag_cache.passable if room then if room.door and room.door.tile_x and room.door.tile_y then -- Check that the door is accessible from this tile. Otherwise, forbid placement. local reachable = world.pathfinder:findDistance(x, y, room.door.tile_x, room.door.tile_y) walkable = walkable and not room.crashed and reachable else walkable = false end end -- and in an area the regular staff (doctors, nurses and handymen) can go? local staffable = (self.allow_in_rooms or flag_cache.roomId == 0) -- Or is it a receptionist placed on an unstaffed reception desk? local reception = false if self.profile:isType("Receptionist") then local desk = world:getObject(x, y, "reception_desk", true) or world:findObjectNear(self, "reception_desk", 0, true) reception = desk and not desk.receptionist end return (walkable and staffable) or reception end function UIPlaceStaff:draw(canvas) if self.world.user_actions_allowed then local valid = self:_isValidStaffPlacement() self.anim:setFlag(valid and 0 or flag_altpal) local zoom = self.ui.zoom_factor if canvas:scale(zoom) then local x, y = self.ui:WorldToScreen(self.tile_x, self.tile_y) self.anim:draw(canvas, math.floor(x / zoom), math.floor(y / zoom)) canvas:scale(1) else self.anim:draw(canvas, self.ui:WorldToScreen(self.tile_x, self.tile_y)) end self.ui:tutorialStep(2, valid and 7 or 6, valid and 6 or 7) self.ui:tutorialStep(4, valid and 5 or 4, valid and 4 or 5) end end function UIPlaceStaff:onMouseUp(button, x, y) if self.world.user_actions_allowed then if button == "right" then self:close() return true elseif button == "left" then self:onMouseMove(x, y) if self:_isValidStaffPlacement() then if self.staff then self.staff:setTile(self.tile_x, self.tile_y) else local entity = self.world:newEntity(self.profile.humanoid_class, 2, 2) entity:setProfile(self.profile) self.profile = nil entity:setTile(self.tile_x, self.tile_y) self.ui.hospital:addStaff(entity) entity:setHospital(self.ui.hospital) local entity_room = entity:getRoom() if entity_room then entity_room:onHumanoidEnter(entity) else entity:onPlaceInCorridor() end self.ui:tutorialStep(2, 6, "next") self.ui:tutorialStep(4, 4, "next") -- Update the staff management window if it is open. local window = self.world.ui:getWindow(UIStaffManagement) if window then window:updateStaffList(self) end end self:close() return true else self.ui.adviser:say(_A.placement_info.staff_cannot_place) return true end end end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/queue_dialog.lua000066400000000000000000000322441522247547500223370ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") --! Room / door / reception desk queue visualisation dialog. class "UIQueue" (Window) ---@type UIQueue local UIQueue = _G["UIQueue"] function UIQueue:UIQueue(ui, queue) self:Window() local app = ui.app self.esc_closes = true self.ui = ui self.modal_class = "main" self.width = 604 self.height = 122 self:setDefaultPosition(0.5, 0.5) self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req06V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.queue = queue self:addPanel(364, 0, 0) -- Right extremity of the panel for x = 21, 83, 4 do self:addPanel(365, x, 0) end self:addPanel(366, 85, 0) for x = 223, 531, 7 do self:addPanel(367, x, 0) end self:addPanel(368, 529, 0) -- Left extremity of the panel self:addPanel(369, 97, self.height - 33):makeButton(0, 0, 17, 17, 370, self.decreaseMaxSize):setTooltip(_S.tooltip.queue_window.dec_queue_size) self:addPanel(371, 144, self.height - 33):makeButton(0, 0, 17, 17, 372, self.increaseMaxSize):setTooltip(_S.tooltip.queue_window.inc_queue_size) self:addPanel(373, self.width - 42, 17):makeButton(0, 0, 24, 24, 374, self.close):setTooltip(_S.tooltip.queue_window.close) self:makeTooltip(_S.tooltip.queue_window.num_in_queue, 15, 15, 163, 36) self:makeTooltip(_S.tooltip.queue_window.num_expected, 15, 39, 163, 60) self:makeTooltip(_S.tooltip.queue_window.num_entered, 15, 62, 163, 83) self:makeTooltip(_S.tooltip.queue_window.max_queue_size, 15, 87, 163, 108) self:makeTooltip(_S.tooltip.queue_window.front_of_queue, 168, 25, 213, 105) self:makeTooltip(_S.tooltip.queue_window.end_of_queue, 543, 51, 586, 105) self:makeTooltip(_S.tooltip.queue_window.patient .. " " .. _S.misc.not_yet_implemented, 218, 15, 537, 107) end function UIQueue:decreaseMaxSize() local amount = 1 if self.ui.app.key_modifiers.ctrl then amount = amount * 10 elseif self.ui.app.key_modifiers.shift then amount = amount * 5 end self.queue:decreaseMaxSize(amount) end function UIQueue:increaseMaxSize() local amount = 1 if self.ui.app.key_modifiers.ctrl then amount = amount * 10 elseif self.ui.app.key_modifiers.shift then amount = amount * 5 end self.queue:increaseMaxSize(amount) end function UIQueue:draw(canvas, x, y) Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y local font = self.white_font local queue = self.queue local num_patients = queue:reportedSize() font:draw(canvas, _S.queue_window.num_in_queue, x + 22 * s, y + 22 * s) font:draw(canvas, num_patients, x + 140 * s, y + 22 * s) font:draw(canvas, _S.queue_window.num_expected, x + 22 * s, y + 45 * s) font:draw(canvas, queue:expectedSize(), x + 140 * s, y + 45 * s) font:draw(canvas, _S.queue_window.num_entered, x + 22 * s, y + 68 * s) font:draw(canvas, queue.visitor_count, x + 140 * s, y + 68 * s) font:draw(canvas, _S.queue_window.max_queue_size, x + 22 * s, y + 93 * s) font:draw(canvas, queue.max_size, x + 119 * s, y + 93 * s) self:drawPatients(canvas, x, y) -- Draw dragged patient in the cursor location if self.dragged then self:drawPatient(canvas, self.dragged.x, self.dragged.y, self.dragged.patient) end end local function isInsideQueueBoundingBox(x, y) local s = TheApp.config.ui_scale local x_min = 219 * s local x_max = 534 * s local y_min = 15 * s local y_max = 105 * s return not (x < x_min or x > x_max or y < y_min or y > y_max) end function UIQueue:onMouseDown(button, x, y) -- Allow normal window operations if the mouse is outside the listing of patients if not isInsideQueueBoundingBox(x, y) then return Window.onMouseDown(self, button, x, y) end local s = TheApp.config.ui_scale local x_min = 219 * s self.hovered = self:getHoveredPatient(x - x_min) -- Select patient to drag - if left clicking. if button == "left" then self.dragged = self.hovered if self.dragged then self.dragged.x = x + self.x * s self.dragged.y = y + self.y * s end elseif button == "right" and self.hovered then -- Otherwise bring up the choice screen. self.just_added = true local px = self.x + math.floor(x / s) local py = self.y + math.floor(y / s) self.ui:addWindow(UIQueuePopup(self.ui, px, py, self.hovered.patient)) end end function UIQueue:onMouseUp(button, x, y) if self.just_added then self.just_added = false else -- Always remove any leftover popup windows local window = self.ui:getWindow(UIQueuePopup) if window then window:close() end end if button == "left" then local s = TheApp.config.ui_scale local queue = self.queue local num_patients = queue:reportedSize() local width = 276 * s self.ui:setCursor(self.ui.default_cursor) -- reset cursor if not self.dragged then return Window.onMouseUp(self, button, x, y) end -- Check whether the dragged patient is still in the queue local index = -1 for i = 1, num_patients do if self.dragged.patient == queue:reportedHumanoid(i) then index = i break end end if index == -1 then self.dragged = nil return end if x > 170 * s and x < 210 * s and y > 25 * s and y < 105 * s then -- Inside door bounding box queue:movePatient(index, 'front') -- move to front elseif x > 542 * s and x < 585 * s and y > 50 * s and y < 105 * s then -- Inside exit sign bounding box queue:movePatient(index, 'back') -- move to back elseif isInsideQueueBoundingBox(x, y) then local dx = 1 if num_patients ~= 1 then dx = math.floor(width / (num_patients - 1)) end queue:movePatient(index, math.floor((x - 220 * s) / dx)) -- move to dropped position self:onMouseMove(x, y, 0, 0) end -- Try to drop to another room local room local wx, wy = self.ui:ScreenToWorld(x + self.x * s, y + self.y * s) wx = math.floor(wx) wy = math.floor(wy) if wx > 0 and wy > 0 and wx < self.ui.app.map.width and wy < self.ui.app.map.height then room = self.ui.app.world:getRoom(wx, wy) end -- The new room must be of the same class as the current one and active local this_room = self.dragged.patient.next_room_to_visit if this_room and room and room ~= this_room and room.room_info.id == this_room.room_info.id and room.is_active then -- Move to another room local patient = self.dragged.patient patient:setNextAction(room:createEnterAction(patient)) patient.next_room_to_visit = room patient:setDynamicInfoText(_S.dynamic_info.patient.actions.on_my_way_to:format(room.room_info.name)) room.door:updateDynamicInfo() -- call staff to room if required if not room:testStaffCriteria(room:getRequiredStaffCriteria()) then patient.world.dispatcher:callForStaff(room) end end end self.dragged = nil end function UIQueue:onMouseMove(x, y, dx, dy) local s = TheApp.config.ui_scale local x_min = 219 * s if self.dragged then self.dragged.x = x + self.x * s self.dragged.y = y + self.y * s -- Change cursor when outside queue dialog if x > 0 and x < 605 * s and y > 0 and y < 120 * s then self.ui:setCursor(self.ui.default_cursor) else self.ui:setCursor(self.ui.app.gfx:loadMainCursor("queue_drag")) end end if not isInsideQueueBoundingBox(x, y) then self.hovered = nil Window:onMouseMove(x, y, dx, dy) return end -- Update hovered patient self.hovered = self:getHoveredPatient(x - x_min) Window:onMouseMove(x, y, dx, dy) end function UIQueue:close() -- Always remove any leftover popup windows local window = self.ui:getWindow(UIQueuePopup) if window then window:close() end Window.close(self) end function UIQueue:getHoveredPatient(x) local queue = self.queue local num_patients = queue:reportedSize() local s = TheApp.config.ui_scale local width = 276 * s local gap = 10 * s x = x - 15 * s -- sprite offset local dx = 0 if num_patients ~= 1 then dx = math.floor(width / (num_patients - 1)) end local offset = 0 local closest = nil -- Find the closest patient to the given x-coordinate for index = 1, num_patients do local patient = queue:reportedHumanoid(index) local patient_x = (index - 1) * dx + offset local diff = math.abs(patient_x - x) -- Take into account the gap between the hovered patient and other patients if self.hovered and patient == self.hovered.patient then offset = gap * 2 diff = diff + gap end if not closest or diff < closest.diff then closest = {patient = patient, diff = diff, x = x} end end -- The closest patient must be close enough (i.e. almost over the patient sprite) if not closest or closest.diff > 25 * s then return nil end return {patient = closest.patient, x = closest.x} end function UIQueue:drawPatients(canvas, x, y) local s = TheApp.config.ui_scale local queue = self.queue local num_patients = queue:reportedSize() local width = 276 * s local gap = 10 * s local dx = 0 if not self.hovered then if num_patients ~= 1 then dx = math.floor(width / (num_patients - 1)) end for index = 1, num_patients do local patient = queue:reportedHumanoid(index) self:drawPatient(canvas, x + 239 * s + dx * (index - 1), y + 75 * s, patient) end else if num_patients ~= 1 then dx = math.floor((width - 2 * gap) / (num_patients - 1)) end x = x + 239 * s y = y + 75 * s for index = 1, num_patients do local patient = queue:reportedHumanoid(index) if patient == self.hovered.patient then x = x + gap self:drawPatient(canvas, x, y - 10 * s, patient) x = x + gap + dx else self:drawPatient(canvas, x, y, patient) x = x + dx end end end end function UIQueue:drawPatient(canvas, x, y, patient) local anim = TH.animation() local idle_anim = patient.getIdleAnimation(patient.humanoid_class) anim:setAnimation(self.ui.app.world.anims, idle_anim, 1) -- flag 1 is for having patients in west position (looking the door in the dialog) for layer, id in pairs(patient.layers) do anim:setLayer(layer, id) end local s = TheApp.config.ui_scale canvas:scale(s) anim:draw(canvas, math.floor(x / s), math.floor(y / s)) -- Also draw the mood of the patient, if any. local mood = patient:getCurrentMood() if mood then mood:draw(canvas, math.floor(x / s), math.floor(y / s) + 24) end canvas:scale(1) end function UIQueue:afterLoad(old, new) if old < 236 then self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) end Window.afterLoad(self, old, new) end class "UIQueuePopup" (Window) ---@type UIQueuePopup local UIQueuePopup = _G["UIQueuePopup"] function UIQueuePopup:UIQueuePopup(ui, x, y, patient) self:Window() self.esc_closes = true self.ui = ui self.patient = patient self.width = 188 self.height = 68 local app = ui.app self.modal_class = "popup" self:setDefaultPosition(x, y) -- Background sprites self:addPanel(375, 0, 0) -- Buttons self:addPanel(0, 12, 12):makeButton(0, 0, 81, 54, 378, self.sendToReception) self:addPanel(0, 95, 12):makeButton(0, 0, 81, 54, 379, self.sendHome) self:addPanel(377, 0, 58) self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req06V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) end function UIQueuePopup:draw(canvas, x, y) Window.draw(self, canvas, x, y) -- TODO: Same as above. -- x, y = self.x + x, self.y + y --[[for i, hospital in ipairs(self.ui.app.world.hospitals) do self.white_font:draw(canvas, hospital.name:upper() , x + 74, y + 78 + (i-1)*34, 92, 0) end]] end function UIQueuePopup:sendToReception() self.patient:setNextAction(SeekReceptionAction()) self:close() end function UIQueuePopup:sendHome() self.patient:goHome("kicked") self:close() end function UIQueuePopup:afterLoad(old, new) if old < 236 then self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) end Window.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizable.lua000066400000000000000000000177701522247547500216630ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Class for resizable windows. --! If resizable is set to true, the user can resize by clicking and dragging --any of the corners. class "UIResizable" (Window) ---@type UIResizable local UIResizable = _G["UIResizable"] local border_offset_x = 9 local border_offset_y = 9 local border_size_x = 40 local border_size_y = 40 function UIResizable:UIResizable(ui, width, height, colour, no_borders, background_bevel) self:Window() local app = ui.app self.ui = ui self.resizable = false -- by default, not user-resizable if not no_borders then self.border_sprites = app.gfx:loadSpriteTable("Bitmap", "aux_ui", true) end if background_bevel then self.background_panel = self:addBevelPanel(0, 0, 0, 0, colour) self.background_panel.lowered = true else self.background_panel = self:addColourPanel(0, 0, 0, 0, 0, 0, 0) end -- Minimum size. Can be changed per window, but should never be smaller than this -- because it would result in visual glitches self.min_width = 50 self.min_height = 50 self.border_pos = {} self.border_pos.left = -border_offset_x self.border_pos.upper = -border_offset_y -- NB: intentionally calling like this to allow subclasses to extend setSize without being called from here UIResizable.setSize(self, width, height) self:setColour(colour) end --! Apply the initial width and height of the window --!param width (int) The initial width --!param height (int) The initial height function UIResizable:setSize(width, height) width = math.max(self.min_width, width) height = math.max(self.min_height, height) self.width = width self.height = height self.background_panel.w = width self.background_panel.h = height self.border_pos.right = self.width self.border_pos.corner_right = self.width - border_size_x self.border_pos.lower = self.height self.border_pos.corner_lower = self.height - border_size_y end --! Must be called before UIResizable:setSize --!param min_width (int) The new minimum width of the window --!param min_height (int) The new minimum height of the window function UIResizable:overrideMinSize(min_width, min_height) self.min_width = min_width self.min_height = min_height end function UIResizable:setColour(colour) self.colour = colour self.background_panel:setColour(colour) end function UIResizable:draw(canvas, x, y) local sprites = self.border_sprites if sprites then local s = TheApp.config.ui_scale local xabs = self.x * s + x local yabs = self.y * s + y for xpos = xabs + border_size_x * s, xabs + self.border_pos.corner_right * s - 1, border_size_x * s do sprites:draw(canvas, 11, xpos, yabs + self.border_pos.upper * s, { scaleFactor = s }) -- upper edge sprites:draw(canvas, 16, xpos, yabs + self.border_pos.lower * s, { scaleFactor = s }) -- lower edge end for ypos = yabs + border_size_y * s, yabs + self.border_pos.corner_lower * s - 1, border_size_y * s do sprites:draw(canvas, 13, xabs + self.border_pos.left * s, ypos, { scaleFactor = s }) -- left edge sprites:draw(canvas, 14, xabs + self.border_pos.right * s, ypos, { scaleFactor = s }) -- right edge end sprites:draw(canvas, 10, xabs + self.border_pos.left * s, yabs + self.border_pos.upper * s, { scaleFactor = s }) -- upper left corner sprites:draw(canvas, 12, xabs + self.border_pos.corner_right * s, yabs + self.border_pos.upper * s, { scaleFactor = s }) -- upper right corner sprites:draw(canvas, 15, xabs + self.border_pos.left * s, yabs + self.border_pos.corner_lower * s, { scaleFactor = s }) -- lower left corner sprites:draw(canvas, 17, xabs + self.border_pos.corner_right * s, yabs + self.border_pos.corner_lower * s, { scaleFactor = s }) -- lower right corner end -- Draw window components Window.draw(self, canvas, x, y) end function UIResizable:onMouseDown(button, x, y) local res = self.resizable and self:hitTestCorners(x, y) if res then self:beginResize(x, y, res) return true end return Window.onMouseDown(self, button, x, y) end function UIResizable:hitTest(x, y) local s = TheApp.config.ui_scale if x >= 0 and y >= 0 and x < self.width * s and y < self.height * s then -- inside window return Window.hitTest(self, x, y) end local sprites = self.border_sprites if not sprites then return false end if x < -9 * s or y < -9 * s or x >= self.width * s + 9 * s or y >= self.height * s + 9 * s then -- outside border bounds return false end if (0 <= x and x < self.width * s) or (0 <= y and y < self.height * s) then -- edges (upper/lower/left/right) return true end return self:hitTestCorners(x, y) and true end --! Tests if any of the four corners of the window border is hit --!param x the x coordinate to test --!param y the y coordinate to test --!return (boolean or string) false if not hit, else a string to denote which corner was hit (can be "ul", "ur", "ll" or "lr") function UIResizable:hitTestCorners(x, y) if self.border_sprites then local s = TheApp.config.ui_scale local yzone = (-9 * s <= y and y < 0) and "u" or (self.height * s <= y and y < self.height * s + 9 * s) and "l" local xzone = (-9 * s <= x and x < 0) and "l" or (self.width * s <= x and x < self.width * s + 9 * s) and "r" local sprite_ids = {ul = 10, ur = 12, ll = 15, lr = 17} if yzone and xzone then local zone = yzone .. xzone local dy = (yzone == "u" and self.border_pos.upper or self.border_pos.corner_lower) local dx = (xzone == "l" and self.border_pos.left or self.border_pos.corner_right) return self.border_sprites:hitTest(sprite_ids[zone], x - dx, y - dy) and zone end end return false end --[[ Initiate resizing of the resizable window. !param x The X position of the cursor in window coordinates. !param y The Y position of the cursor in window coordinates. !param mode Either one of "ul", "ur", "ll" or "lr" to denote in which direction to resize. (upper/lower + left/right) ]] function UIResizable:beginResize(x, y, mode) local orig_x = self.x local orig_y = self.y local ref_x = self.x + x local ref_y = self.y + y local orig_width = self.width local orig_height = self.height self.dragging = true self.ui.drag_mouse_move = --[[persistable:window_resize_mouse_move]] function (sx, sy) -- sx and sy are cursor screen co-ords. Convert to relative change. sx = sx - ref_x sy = sy - ref_y local invert_x = mode == "ul" or mode == "ll" local invert_y = mode == "ul" or mode == "ur" sx = invert_x and -sx or sx sy = invert_y and -sy or sy self:setSize(orig_width + sx, orig_height + sy) local new_x, new_y if invert_x then new_x = orig_x + orig_width - self.width end if invert_y then new_y = orig_y + orig_height - self.height end if new_x or new_y then self:setPosition(new_x or orig_x, new_y or orig_y) end end end function UIResizable:afterLoad(old, new) Window.afterLoad(self, old, new) if old < 65 then -- added min_width and min_height self.min_width = 50 self.min_height = 50 end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/000077500000000000000000000000001522247547500213275ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/adviser_history.lua000066400000000000000000000170531522247547500252560ustar00rootroot00000000000000--[[ Copyright (c) 2025 Damian "ShiroAka" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Adviser message history class "UIAdviserHistory" (UIResizable) ---@type UIAdviserHistory local UIAdviserHistory = _G["UIAdviserHistory"] local col_bg = Colours.AdviserPanelBackground local col_highlight = Colours.AdviserPanelHighlight local col_shadow = Colours.AdviserPanelShadow local col_delete_button = Colours.AdviserPanelDeleteButton function UIAdviserHistory:UIAdviserHistory(ui) local app = ui.app self.ui = ui self.modal_class = "adviser_history" self.esc_closes = true self.resizable = false self.last_seen_history_top = nil -- Stores the top message in the adviser's 'message_history' list at the time of the last update self.last_history_count = nil -- Stores the messages count in the adviser's 'message_history' list at the time of the last update self.list_table = {} -- List of controls in this dialog self.default_button_sound = "selectx.wav" self.rows_shown = 0 self.row_height = 40 self.header_height = 20 self.window_margin = 15 self.delete_col_width = 30 self.message_col_width = 400 local total_width = 489 local height_divisor = 4 self.approx_rows_space = math.floor(app.config.height / height_divisor) self.num_visible_rows = math.ceil(self.approx_rows_space / self.row_height) local rows_space = self.num_visible_rows * self.row_height local total_height = self.header_height + rows_space + self.window_margin * 2 -- header + values + margin (top and bottom) self:UIResizable(ui, total_width, total_height, col_bg) self:setDefaultPosition(0.05, 0.05) self:createControls() self:update() end function UIAdviserHistory:deleteButtonClicked(message_index) self.ui.adviser:removeMessageFromHistory(message_index) end local deleteAllButtonClicked = --[[persistable:adviser_history_delete_all_button]] function(self) self.ui.adviser:deleteAllMessagesFromHistory() end function UIAdviserHistory:createControls() local rows = self.num_visible_rows self.panel_sprites = self.ui.app.gfx:loadSpriteTable("QData", "Req03V", true) self.white_font = self.ui.app.gfx:loadFontAndSpriteTable("QData", "Font01V") if rows ~= self.rows_shown then local function delete_factory(num) return --[[persistable:adviser_history_delete_button]] function() local scrollbar_offset = self.scrollbar.value - 1 local message_index = scrollbar_offset + num self:deleteButtonClicked(message_index) end end local scrollbarMovedCallback = --[[persistable:adviser_history_scrollbar]] function() self:scrollbarMoved() end self.rows_shown = rows self.list_table = {} local x = self.window_margin local y = self.window_margin -- Draw headers local delete_header = self:addBevelPanel(x, y, self.delete_col_width, self.header_height, col_highlight) local delete_all_button = delete_header:makeButton(0, 0, self.delete_col_width, self.header_height, nil, deleteAllButtonClicked) :setTooltip(_S.tooltip.adviser_history.header.delete_message):setLabel("X", self.white_font, "center") x = x + self.delete_col_width local message_header = self:addBevelPanel(x, y, self.message_col_width, self.header_height, col_highlight) :setLabel(_S.adviser_history.message):setTooltip(_S.tooltip.adviser_history.header.message) x = x + self.message_col_width y = y + self.header_height -- Draw rows for i = 1, rows, 1 do x = self.window_margin local delete_panel = self:addBevelPanel(x, y, self.delete_col_width, self.row_height, col_delete_button) local delete_button = delete_panel:makeButton(0, 0, self.delete_col_width, self.row_height, nil, delete_factory(i)) x = x + self.delete_col_width local message_panel = self:addBevelPanel(x, y, self.message_col_width, self.row_height, col_bg) :setTooltip(_S.tooltip.adviser_history.message):setTextWrap(true) x = x + self.message_col_width y = y + self.row_height table.insert(self.list_table, { delete_header = delete_header, delete_all_button = delete_all_button, message_header = message_header, delete_panel = delete_panel, delete_button = delete_button, message_panel = message_panel, }) end x = x + 10 -- Add 10 pixels from end of the message rows y = self.window_margin + self.header_height + 10 -- Add scrollbar self.scrollbar = self:addColourPanel(x, y, 24, self.row_height * rows - 10, col_shadow.red, col_shadow.green, col_shadow.blue) :makeScrollbar(col_bg, scrollbarMovedCallback, 1, 1, 10, 1) -- Add close button self:addPanel(337, x, 15):makeButton(0, 0, 24, 24, 338, self.close) :setTooltip(_S.tooltip.adviser_history.close) end end function UIAdviserHistory:update() local adviser_messages = self.ui.adviser.message_history self.last_seen_history_top = adviser_messages[1] self.last_history_count = #adviser_messages self.scrollbar:setRange(1, math.max(1, #adviser_messages), self.rows_shown, self.scrollbar.value) self:scrollbarMoved() end function UIAdviserHistory:scrollbarMoved() local scroll_pos = self.scrollbar.value local adviser_messages = self.ui.adviser.message_history for i = 1, self.rows_shown, 1 do local message = adviser_messages[i + scroll_pos - 1] local row = self.list_table[i] if message then row.message_panel:setLabel(message, nil, "left"):setColour(col_bg) row.delete_button:setLabel("X", self.white_font, "center"):setTooltip(_S.tooltip.adviser_history.delete_message) row.delete_button:enable(true) else row.message_panel:setLabel(""):setColour(col_shadow) row.delete_button:setLabel(""):setTooltip(nil) row.delete_button:enable(false) end end end function UIAdviserHistory:onTick() -- The adviser.message_history has a cap of 20 messages by default -- New messages only get added to the top (it's a stack) or, if duplicate, a message -- gets moved from the middle to the top. -- Checking the length of both lists would fail if a message was moved from the middle to the top due to duplication. -- So we just check if the top string between lists has changed to determine if we need to update local new_history_top = self.ui.adviser.message_history[1] local new_history_count = #self.ui.adviser.message_history local out_of_date = self.last_seen_history_top ~= new_history_top or self.last_history_count ~= new_history_count if out_of_date then self:update() end end function UIAdviserHistory:afterLoad(old, new) if old < 249 then self:close() end Window.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/calls_dispatcher.lua000066400000000000000000000145151522247547500253440ustar00rootroot00000000000000--[[ Copyright (c) 2010 Sam Wong Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Calls Dispatcher Window class "UICallsDispatcher" (UIResizable) ---@type UICallsDispatcher local UICallsDispatcher = _G["UICallsDispatcher"] local col_bg = { red = 154, green = 146, blue = 198, } local col_button = { red = 84, green = 200, blue = 84, } local col_shadow = { red = 134, green = 126, blue = 178, } function UICallsDispatcher:UICallsDispatcher(ui) local app = ui.app self:UIResizable(ui, 320, 350, col_bg) self.ui = ui self.dispatcher = app.world.dispatcher self.on_top = false self.esc_closes = true self.resizable = false self.call_list = {} self.list_table = {} self.rows_shown = 0 self:createControls() self:setDefaultPosition(0.05, 0.05) self.default_button_sound = "selectx.wav" self.dispatcher:addChangeCallback(self.update, self) self:update() end local row_height = 20 local window_margin = 15 function UICallsDispatcher:createControls() local rows = math.floor((self.height - window_margin * 3 - 60) / row_height) if rows ~= self.rows_shown then local function assigned_factory(num) return --[[persistable:calls_dispatcher_assigned_button]] function(window) window:itemButtonClicked(num) end end local function task_factory(num) return --[[persistable:calls_dispatcher_task_button]] function(window) window:itemButtonClicked(num) end end local callback = --[[persistable:calls_dispatcher_scrollbar]] function() self:scrollbarChange() end self.rows_shown = rows self.list_table = {} local y = window_margin for i = 1, rows, 1 do local assigned_panel = self:addBevelPanel(window_margin, y, 20, row_height, col_button) local assigned_button = assigned_panel:makeButton(0, 0, 20, row_height, nil, assigned_factory(i)) :setTooltip(_S.tooltip.calls_dispatcher.assigned) local task_panel = self:addBevelPanel(50, y, self.width - 50 - 40 - window_margin, row_height, col_bg) local task_button = task_panel:makeButton(0, 0, self.width - 50 - 40 - window_margin, row_height, nil, task_factory(i)) :setTooltip(_S.tooltip.calls_dispatcher.task) table.insert(self.list_table, { assigned_panel = assigned_panel, assigned_button = assigned_button, task_panel = task_panel, task_button = task_button, }) y = y + row_height end self.summary_panel = self:addColourPanel(50, y + 10, self.width - 50 - 40 - window_margin, 20, col_bg.red, col_bg.green, col_bg.blue) self.scrollbar = self:addColourPanel(self.width - window_margin - 20, window_margin, 20, row_height * rows, col_shadow.red, col_shadow.green, col_shadow.blue) :makeScrollbar(col_bg, callback, 1, 1, 10, 1) self.close_button = self:addBevelPanel(window_margin, y + 20 + window_margin, self.width - 2 * window_margin, 40, col_bg):setLabel(_S.calls_dispatcher.close) :makeButton(0, 0, self.width - 2 * window_margin, 40, nil, self.close):setTooltip(_S.tooltip.calls_dispatcher.close) end end function UICallsDispatcher:update() self.call_list = {} local assigned = 0 for _, queue in pairs(self.dispatcher.call_queue) do for _, call in pairs(queue) do table.insert(self.call_list, call) if call.assigned then assigned = assigned + 1 end end end table.sort(self.call_list, function(a,b) if a.created == nil or b.created == nil then return false end return a.created < b.created end ) self.summary_panel:setLabel(_S.calls_dispatcher.summary:format(#self.call_list, assigned), nil, "left") self.scrollbar:setRange(1, math.max(1, #self.call_list), self.rows_shown, self.scrollbar.value) self:scrollbarChange() end function UICallsDispatcher:scrollToEntity(entity) local x, y = self.ui.app.map:WorldToScreen(entity.tile_x, entity.tile_y) local px, py = entity.th:getSecondaryMarker() self.ui:scrollMapTo(x + px, y + py) end function UICallsDispatcher:scrollToRoom(room) local x, y = self.ui.app.map:WorldToScreen(room.x + room.width / 2, room.y + room.height / 2) self.ui:scrollMapTo(x, y) end function UICallsDispatcher:itemButtonClicked(index) local call = self.call_list[index + self.scrollbar.value - 1] if call and call.assigned then self.ui:addWindow(UIStaff(self.ui, call.assigned)) end if call and call.object then if class.is(call.object, Room) then self:scrollToRoom(call.object) elseif class.is(call.object, Entity) then self:scrollToEntity(call.object) end end end function UICallsDispatcher:scrollbarChange() local scroll_pos = self.scrollbar.value for i = 1, self.rows_shown, 1 do local call = self.call_list[i + scroll_pos - 1] local row = self.list_table[i] if call then row.assigned_panel:setLabel(call.assigned and "@" or '') row.assigned_button:enable(call.assigned and true or false) row.task_panel:setLabel((call.description and call.description or call.key), nil, "left") row.task_button:enable(true) else row.assigned_panel:setLabel("") row.task_panel:setLabel("") row.assigned_button:enable(false) row.task_button:enable(false) end end end function UICallsDispatcher:close() self.dispatcher:removeChangeCallback(self.update) Window.close(self) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/cheats_dialog.lua000066400000000000000000000110621522247547500246200ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Copyright (c) 2020 lewri Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! A dialog for activating cheats class "UICheats" (UIResizable) ---@type UICheats local UICheats = _G["UICheats"] local col_bg = { red = 154, green = 146, blue = 198, } local col_caption = { red = 174, green = 166, blue = 218, } local col_border = { red = 134, green = 126, blue = 178, } local col_cheated_no = { red = 36, green = 154, blue = 36, } local col_cheated_yes = { red = 224, green = 36, blue = 36, } --[[ Constructs the cheat dialog. !param ui (UI) The active ui. ]] function UICheats:UICheats(ui) self.cheats = ui.hospital.hosp_cheats self.cheat_list = ui.hospital.hosp_cheats.cheat_list self:UIResizable(ui, 300, 560, col_bg) self.default_button_sound = "selectx.wav" self.modal_class = "cheats" self.esc_closes = true self.resizable = false local y = 10 self:addBevelPanel(100, y, 360, 20, col_caption):setLabel(_S.cheats_window.caption) .lowered = true y = y + 30 self:addColourPanel(100, y, 360, 40, col_bg.red, col_bg.green, col_bg.blue) :setLabel({_S.cheats_window.warning}) y = y + 40 self.cheated_panel = self:addBevelPanel(100, y, 360, 18, col_cheated_no, col_border, col_border) local function button_clicked(num) return --[[persistable:cheats_button]] function(window) window:buttonClicked(num) end end self.item_panels = {} self.item_buttons = {} y = y + 30 local num = 1 local function add_cheat_button(x, number) self.item_panels[number] = self:addBevelPanel(x, y, 260, 20, col_bg) :setLabel(_S.cheats_window.cheats[self.cheat_list[number].name]) self.item_buttons[number] = self.item_panels[number] :makeButton(0, 0, 260, 20, nil, button_clicked(number)) :setTooltip(_S.tooltip.cheats_window.cheats[self.cheat_list[number].name]) end while self.cheat_list[num] do add_cheat_button(20, num) num = num + 1 if self.cheat_list[num] then add_cheat_button(280, num) num = num + 1 end y = y + 20 end y = y + 20 self:addBevelPanel(100, y, 360, 40, col_bg):setLabel(_S.cheats_window.close) :makeButton(0, 0, 360, 40, nil, self.buttonBack):setTooltip(_S.tooltip.cheats_window.close) y = y + 60 self:setSize(560, y) -- Position should be set after all panels/buttons are made self:setDefaultPosition(0.2, 0.4) self:updateCheatedStatus() end function UICheats:updateCheatedStatus() local cheated = self.ui.hospital.cheated self.cheated_panel:setLabel(cheated and _S.cheats_window.cheated.yes or _S.cheats_window.cheated.no) self.cheated_panel:setColour(cheated and col_cheated_yes or col_cheated_no) end --! Handles the choice of a cheat from the dialog --!param num (number) the index in the cheat list function UICheats:buttonClicked(num) -- If the menu was opened by fax code, allow player to use it if self.ui.hospital.world:isUserActionProhibited() and not self.ui:getWindow(UIFax) then --TODO: Prevent selectx.wav playing with this return self.ui:playSound("wrong2.wav") end local success, message = self.cheats:performCheat(num) if success then self.cheats.announceCheat(self.ui) self:updateCheatedStatus() else -- cheat failed, make sure we provide feedback message = message or _S.information.cheat_not_possible end if message then self.ui:addWindow(UIInformation(self.ui, {message})) end end function UICheats:buttonBack() self:close() end function UICheats:afterLoad(old, new) -- Window must be closed for compatibility self:close() UIResizable.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/customise.lua000066400000000000000000000331001522247547500240420ustar00rootroot00000000000000--[[ Copyright (c) 2013 Mark (Mark L) Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Customise window used in the main menu and ingame. class "UICustomise" (UIResizable) ---@type UICustomise local UICustomise = _G["UICustomise"] local col_bg = { red = 154, green = 146, blue = 198, } local col_shadow = { red = 134, green = 126, blue = 178, } local col_caption = { red = 174, green = 166, blue = 218, } function UICustomise:UICustomise(ui, mode) self:UIResizable(ui, 340, 375, col_bg) local app = ui.app self.mode = mode self.modal_class = mode == "menu" and "main menu" or "options" or "customise" self.on_top = mode == "menu" self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.25) self.default_button_sound = "selectx.wav" self.app = app -- Window parts definition -- Title self:addBevelPanel(85, 10, 170, 20, col_caption):setLabel(_S.customise_window.caption) .lowered = true -- Movies, global switch self:addBevelPanel(15, 40, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.movies):setTooltip(_S.tooltip.customise_window.movies).lowered = true self.movies_panel = self:addBevelPanel(185, 40, 140, 20, col_bg):setLabel(app.config.movies and _S.customise_window.option_on or _S.customise_window.option_off) self.movies_button = self.movies_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonMoviesGlobal) :setToggleState(app.config.movies):setTooltip(_S.tooltip.customise_window.movies) -- Intro movie self:addBevelPanel(15, 65, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.intro):setTooltip(_S.tooltip.customise_window.intro).lowered = true self.intro_panel = self:addBevelPanel(185, 65, 140, 20, col_bg):setLabel(app.config.play_intro and _S.customise_window.option_on or _S.customise_window.option_off) self.intro_button = self.intro_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonIntro) :setToggleState(app.config.play_intro):setTooltip(_S.tooltip.customise_window.intro) -- Allow user actions when paused self:addBevelPanel(15, 90, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.paused):setTooltip(_S.tooltip.customise_window.paused).lowered = true self.paused_panel = self:addBevelPanel(185, 90, 140, 20, col_bg):setLabel(app.config.allow_user_actions_while_paused and _S.customise_window.option_on or _S.customise_window.option_off) self.paused_button = self.paused_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonPaused) :setToggleState(app.config.allow_user_actions_while_paused):setTooltip(_S.tooltip.customise_window.paused) -- Volume down is opening casebook self:addBevelPanel(15, 115, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.volume):setTooltip(_S.tooltip.customise_window.volume).lowered = true self.volume_panel = self:addBevelPanel(185, 115, 140, 20, col_bg):setLabel(app.config.volume_opens_casebook and _S.customise_window.option_on or _S.customise_window.option_off) self.volume_button = self.volume_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonVolume) :setToggleState(app.config.volume_opens_casebook):setTooltip(_S.tooltip.customise_window.volume) -- Alien DNA from emergencies only/must stand/can knock on doors self:addBevelPanel(15, 140, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.aliens):setTooltip(_S.tooltip.customise_window.aliens).lowered = true self.aliens_panel = self:addBevelPanel(185, 140, 140, 20, col_bg):setLabel(app.config.alien_dna_only_by_emergency and _S.customise_window.emergency_only or _S.customise_window.regular_patients) self.aliens_button = self.aliens_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonAliens) :setToggleState(app.config.alien_dna_only_by_emergency):setTooltip(_S.tooltip.customise_window.aliens) -- Allow female patients with Fractured Bones self:addBevelPanel(15, 165, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.fractured_bones):setTooltip(_S.tooltip.customise_window.fractured_bones).lowered = true self.fractured_bones_panel = self:addBevelPanel(185, 165, 140, 20, col_bg):setLabel(app.config.disable_fractured_bones_females and _S.customise_window.male_only or _S.customise_window.male_and_female) self.fractured_bones_button = self.fractured_bones_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonFractured_bones) :setToggleState(app.config.disable_fractured_bones_females):setTooltip(_S.tooltip.customise_window.fractured_bones) -- Allow average contents when building rooms self:addBevelPanel(15, 190, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.average_contents):setTooltip(_S.tooltip.customise_window.average_contents).lowered = true self.average_contents_panel = self:addBevelPanel(185, 190, 140, 20, col_bg):setLabel(app.config.enable_avg_contents and _S.customise_window.option_on or _S.customise_window.option_off) self.average_contents_button = self.average_contents_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonAverage_contents) :setToggleState(app.config.enable_avg_contents):setTooltip(_S.tooltip.customise_window.average_contents) -- Allow removal of destroyed rooms self:addBevelPanel(15, 215, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.remove_destroyed_rooms):setTooltip(_S.tooltip.customise_window.remove_destroyed_rooms).lowered = true self.destroyed_rooms_panel = self:addBevelPanel(185, 215, 140, 20, col_bg):setLabel(app.config.remove_destroyed_rooms and _S.customise_window.option_on or _S.customise_window.option_off) self.destroyed_rooms_button = self.destroyed_rooms_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonDestroyed_rooms) :setToggleState(app.config.remove_destroyed_rooms):setTooltip(_S.tooltip.customise_window.remove_destroyed_rooms) -- Allow machine menu button in a toolbar self:addBevelPanel(15, 240, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.machine_menu_button):setTooltip(_S.tooltip.customise_window.machine_menu_button).lowered = true self.machine_menu_panel = self:addBevelPanel(185, 240, 140, 20, col_bg):setLabel(app.config.machine_menu_button and _S.customise_window.option_on or _S.customise_window.option_off) self.machine_menu_button = self.machine_menu_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonMachine_menu) :setToggleState(app.config.machine_menu_button):setTooltip(_S.tooltip.customise_window.machine_menu_button) -- Allow user to disable screen shake during earthquakes self:addBevelPanel(15, 265, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.enable_screen_shake):setTooltip(_S.tooltip.customise_window.enable_screen_shake).lowered = true self.screen_shake_panel = self:addBevelPanel(185, 265, 140, 20, col_bg):setLabel(app.config.enable_screen_shake and _S.customise_window.option_on or _S.customise_window.option_off) self.screen_shake_button = self.screen_shake_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonScreen_shake) :setToggleState(app.config.enable_screen_shake):setTooltip(_S.tooltip.customise_window.enable_screen_shake) self:addBevelPanel(15, 290, 165, 20, col_shadow, col_bg, col_bg) :setLabel(_S.customise_window.enable_announcer_subtitles):setTooltip(_S.tooltip.customise_window.enable_announcer_subtitles).lowered = true self.announcer_subtitles_panel = self:addBevelPanel(185, 290, 140, 20, col_bg):setLabel(app.config.enable_announcer_subtitles and _S.customise_window.option_on or _S.customise_window.option_off) self.announcer_subtitles_button = self.announcer_subtitles_panel:makeToggleButton(0, 0, 140, 20, nil, self.buttonAnnouncer_subtitles) :setToggleState(app.config.enable_announcer_subtitles):setTooltip(_S.tooltip.customise_window.enable_announcer_subtitles) -- "Back" button self:addBevelPanel(15, 320, 310, 40, col_bg):setLabel(_S.customise_window.back) :makeButton(0, 0, 310, 40, nil, self.buttonBack):setTooltip(_S.tooltip.customise_window.back) end function UICustomise:buttonAudioGlobal() local window = UIAudio(self.ui, "menu") self.ui:addWindow(window) end function UICustomise:buttonMoviesGlobal() local app = self.ui.app app.config.movies = not app.config.movies self.movies_button:toggle() self.movies_panel:setLabel(app.config.movies and _S.customise_window.option_on or _S.customise_window.option_off) self:reload() app:saveConfig() end function UICustomise:buttonIntro() local app = self.ui.app app.config.play_intro = not app.config.play_intro self.intro_button:toggle() self.intro_panel:setLabel(app.config.play_intro and _S.customise_window.option_on or _S.customise_window.option_off) self:reload() app:saveConfig() end function UICustomise:buttonPaused() local app = self.ui.app app.config.allow_user_actions_while_paused = not app.config.allow_user_actions_while_paused self.paused_button:toggle() self.paused_panel:setLabel(app.config.allow_user_actions_while_paused and _S.customise_window.option_on or _S.customise_window.option_off) self:reload() app:saveConfig() end function UICustomise:buttonVolume() local app = self.ui.app app.config.volume_opens_casebook = not app.config.volume_opens_casebook self.volume_button:toggle() self.volume_panel:setLabel(app.config.volume_opens_casebook and _S.customise_window.option_on or _S.customise_window.option_off) self:reload() app:saveConfig() end function UICustomise:buttonAliens() local app = self.ui.app app.config.alien_dna_only_by_emergency = not app.config.alien_dna_only_by_emergency app.config.alien_dna_must_stand = not app.config.alien_dna_must_stand app.config.alien_dna_can_knock_on_doors = not app.config.alien_dna_can_knock_on_doors self.aliens_button:toggle() self.aliens_panel:setLabel(app.config.alien_dna_only_by_emergency and _S.customise_window.option_on or _S.customise_window.option_off) app:saveConfig() self:reload() local err = {_S.errors.alien_dna} self.ui:addWindow(UIInformation(self.ui, err)) end function UICustomise:buttonFractured_bones() local app = self.ui.app app.config.disable_fractured_bones_females = not app.config.disable_fractured_bones_females self.fractured_bones_button:toggle() self.fractured_bones_panel:setLabel(app.config.disable_fractured_bones_females and _S.customise_window.option_on or _S.customise_window.option_off) app:saveConfig() self:reload() local err = {_S.errors.fractured_bones} self.ui:addWindow(UIInformation(self.ui, err)) end function UICustomise:buttonAverage_contents() local app = self.ui.app app.config.enable_avg_contents = not app.config.enable_avg_contents self.average_contents_button:toggle() self.average_contents_panel:setLabel(app.config.enable_avg_contents and _S.customise_window.option_on or _S.customise_window.option_off) app:saveConfig() self:reload() end function UICustomise:buttonDestroyed_rooms() local app = self.ui.app app.config.remove_destroyed_rooms = not app.config.remove_destroyed_rooms self.destroyed_rooms_button:toggle() self.destroyed_rooms_panel:setLabel(app.config.remove_destroyed_rooms and _S.customise_window.option_on or _S.customise_window.option_off) app:saveConfig() self:reload() end function UICustomise:buttonMachine_menu() local app = self.ui.app app.config.machine_menu_button = not app.config.machine_menu_button self.destroyed_rooms_button:toggle() self.destroyed_rooms_panel:setLabel(app.config.machine_menu_button and _S.customise_window.option_on or _S.customise_window.option_off) app:saveConfig() self:reload() end function UICustomise:buttonScreen_shake() local app = self.ui.app app.config.enable_screen_shake = not app.config.enable_screen_shake self.screen_shake_button:toggle() self.screen_shake_panel:setLabel(app.config.enable_screen_shake and _S.customise_window.option_on or _S.customise_window.option_off) app:saveConfig() self:reload() end function UICustomise:buttonAnnouncer_subtitles() local app = self.ui.app app.config.enable_announcer_subtitles = not app.config.enable_announcer_subtitles self.announcer_subtitles_button:toggle() self.screen_shake_panel:setLabel(app.config.enable_announcer_subtitles and _S.customise_window.option_on or _S.customise_window.option_off) app:saveConfig() self:reload() end function UICustomise:buttonBack() self:close() local window = UIOptions(self.ui, "menu") self.ui:addWindow(window) end -- So that we can see the option has been changed reload the menu function UICustomise:reload() local window = UICustomise(self.ui, "menu") self.ui:addWindow(window) end function UICustomise:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIMainMenu(self.ui)) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/directory_browser.lua000066400000000000000000000165601522247547500256110ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local lfs = require("lfs") local TH = require("TH") local iso_fs = TH.iso_fs local lfsext = TH.lfsExt() --! A tree node representing a directory in the physical file-system. class "DirTreeNode" (FileTreeNode) ---@type DirTreeNode local DirTreeNode = _G["DirTreeNode"] function DirTreeNode:DirTreeNode(path) self:FileTreeNode(path) end function DirTreeNode:isValidFile(name) -- Check parent criteria and that it's a directory. if FileTreeNode.isValidFile(self, name) and lfs.attributes(self:childPath(name), "mode") == "directory" then -- Make sure that we are allowed to read the directory. local status, _, dir_obj = pcall(lfs.dir, self:childPath(name)) if status then dir_obj:close() end return status end end function DirTreeNode:getSelectColour(canvas) if self.is_valid_directory then return self.highlight_colour else return canvas:mapRGB(174, 166, 218) end end --! This tree only shows directories and highlights valid TH directories. class "InstallDirTreeNode" (DirTreeNode) ---@type InstallDirTreeNode local InstallDirTreeNode = _G["InstallDirTreeNode"] function InstallDirTreeNode:InstallDirTreeNode(path) self:FileTreeNode(path) end function InstallDirTreeNode:createNewNode(path) return InstallDirTreeNode(path) end --! Test whether this file node is a directory or iso file. -- --!return (bool) true if directory or iso, false otherwise function InstallDirTreeNode:isValidFile(name) -- Check parent criteria and that it's a directory. if FileTreeNode.isValidFile(self, name) then return DirTreeNode.isValidFile(self, name) or FileSystem:isIso(name) end return false end function InstallDirTreeNode:select() -- Do nothing as an override. getHighlightColour solves this instead. end --! Check whether this node is a valid install selection. -- -- Sets self.is_valid_directory to true if the selection is valid. -- --!return (colour) A highlight colour if the node is a valid selection, or nil -- otherwise. function InstallDirTreeNode:getHighlightColour(canvas) local highlight_colour = self.highlight_colour if highlight_colour == nil then highlight_colour = false if self:getLevel() == 0 and not self.has_looked_for_children then -- Assume root-level things are not TH directories, unless we've already -- got a list of their children. highlight_colour = nil elseif self:getChildCount() >= 3 and TheApp:isThemeHospitalPath(self.path) then highlight_colour = canvas:mapRGB(0, 255, 0) self.is_valid_directory = true elseif FileSystem:isIso(self.path) and iso_fs.isValidRoot(self.path) then highlight_colour = canvas:mapRGB(0, 255, 0) self.is_valid_directory = true end self.highlight_colour = highlight_colour end return highlight_colour or nil end --! Prompter for Theme Hospital install directory class "UIDirectoryBrowser" (UIResizable) ---@type UIDirectoryBrowser local UIDirectoryBrowser = _G["UIDirectoryBrowser"] --! Creates a new directory browser window --!param ui The active UI to hook into. --!param mode Whether the dialog has been opened from the main_menu or somewhere else. Currently --! valid are "menu" or "dir_browser". --!param instruction The textual instruction what the user should do in the dialog. --!param treenode_class What TreeNode subclass the nodes will be built from. E.g. "InstallDirTreeNode" --!param callback The function that is called when the user has chosen a directory. Gets --! a path string as argument. function UIDirectoryBrowser:UIDirectoryBrowser(ui, mode, instruction, treenode_class, callback) self.col_bg = { red = 154, green = 146, blue = 198, } self.col_scrollbar = { red = 164, green = 156, blue = 208, } self:UIResizable(ui, 500, 423, self.col_bg, mode == nil and true or false) self.ui = ui self.mode = mode self.instruction = instruction self:setSize(500, 423) self:addColourPanel(0, 0, self.width, self.height, self.col_bg.red, self.col_bg.green, self.col_bg.blue) self.modal_class = mode == "menu" and "main menu" or "dir browser" self.resizable = false self.exit_button = self:addBevelPanel(260, 400, 100, 18, self.col_bg) if mode ~= nil then self.font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self:setDefaultPosition(0.5, 0.25) self.on_top = true self.esc_closes = true self.exit_button:setLabel(_S.install.cancel, self.font):makeButton(0, 0, 100, 18, nil, self.close) else self.font = ui.app.gfx:loadBuiltinFont() self:setDefaultPosition(0.05, 0.5) self:addKeyHandler("global_cancel", self.exit) self:addKeyHandler("global_cancel_alt", self.exit) self.exit_button:setLabel(_S.install.exit, self.font):makeButton(0, 0, 100, 18, nil, self.exit) end -- Create the root item (or items, on Windows), and set it as the -- first_visible_node. local root local roots = lfsext.volumes() if #roots > 1 then for k, v in pairs(roots) do roots[k] = _G[treenode_class](v) end root = DummyRootNode(roots) else root = _G[treenode_class](roots[1]) end local select_function = function(node) if node.is_valid_directory then callback(node.path) self:close() end end local control = TreeControl(root, 5, 55, 490, 340, self.col_bg, self.col_scrollbar) :setSelectCallback(select_function) local ok_function = function() if control.selected_node then select_function(control.selected_node) end end self.ok_button = self:addBevelPanel(130, 400, 100, 18, self.col_bg) :setLabel(_S.install.ok, self.font):makeButton(0, 0, 100, 18, nil, ok_function) self:addWindow(control) end function UIDirectoryBrowser:exit() self.ui.app:exit() end function UIDirectoryBrowser:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIFolder(self.ui, "menu")) end end function UIDirectoryBrowser:draw(canvas, x, y) UIResizable.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y if not self.mode then self.font:drawWrapped(canvas, _S.install.title, x + 5 * s, y + 5 * s, self.width * s - 10 * s, "center") self.font:drawWrapped(canvas, self.instruction, x + 5 * s, y + 15 * s, self.width * s - 10 * s) else self.font:drawWrapped(canvas, self.instruction, x + 5 * s, y + 15 * s, self.width * s - 10 * s) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/dropdown.lua000066400000000000000000000173651522247547500237020ustar00rootroot00000000000000--[[ Copyright (c) 2013 Manuel "Roujin" Wolf Copyright (c) 2026 "lewri" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Dropdown "window" used for selection of one item from a list. class "UIDropdown" (UIResizable) ---@type UIDropdown local UIDropdown = _G["UIDropdown"] --! Constructor for the dropdown "window" --!param ui (UI) The ui the window is created in --!param parent_window (Window) The window that this dropdown will be attached to --!param parent_button (Button) The button in the parent_window that this dropdown will be positioned under --!param items (table) A list of items for the list to display, where each item is a table with at least -- the field text, and optionally fields font and/or tooltip, which is a table containing text, x and y positions. --!param callback (function) A function to be called when an item is selected. It is called with two parameters: -- The parent window and the index of the selected item --!param colour (table) Colour of the dropdown's list items, in the form of {red = ..., green = ..., blue = ...}. -- Optional if parent_window is a UIResizable --!param scrollbar_colour (table) Colour of the scrollbar's 'thumb', and -- button hover in the form of {red = ..., green = ..., blue = ...}. -- Optional if parent_window is a UIResizable --!param disabled_colour (table) Colour of the disabled items in the form of {red = ..., green = ..., blue = ...}. -- Optional. function UIDropdown:UIDropdown(ui, parent_window, parent_button, items, callback, colour, scrollbar_colour, disabled_colour) assert(colour or parent_window.colour, "Dropdown has no colours available to it. Please specify one in the colour parameter.") self.colour = colour or parent_window.colour self.scrollbar_colour = scrollbar_colour if not self.scrollbar_colour then self.scrollbar_colour = { red = math.floor(self.colour.red * 0.9), green = math.floor(self.colour.green * 0.9), blue = math.floor(self.colour.blue * 0.9) } end self.disabled_colour = disabled_colour self:UIResizable(ui, 1, 1, self.colour, true, true) self.modal_class = "dropdown" self.esc_closes = true self.resizable = false self.default_button_sound = "selectx.wav" self.parent_window = parent_window self.parent_button = parent_button self.items = items self.callback = callback local scrollbar_threshold = 7 local show_scrollbar = #items > scrollbar_threshold self.num_rows = math.min(scrollbar_threshold, #items) local panel = parent_button.panel_for_sprite local width = panel.w local height = panel.h self:setPosition(panel.x, panel.y + panel.h) self.item_panels = {} self.item_buttons = {} local y = 0 for num = 1, self.num_rows do self.item_panels[num] = self:addBevelPanel(1, y + 1, width, height, self.colour, nil, nil, self.disabled_colour, self.scrollbar_colour) :setLabel(nil, nil, "center") :setTooltip(nil) self.item_buttons[num] = self.item_panels[num] :makeToggleButton(0, 0, width, height, nil, --[[persistable:dropdown_callback]] function() self:selectItem(num) end) y = y + height end if show_scrollbar then local scrollbar_width = 20 local scrollbar_base = self:addBevelPanel(width, 1, scrollbar_width, self.num_rows * height, self.colour) scrollbar_base.lowered = true self.scrollbar = scrollbar_base:makeScrollbar(self.scrollbar_colour, --[[persistable:dropdown_scrollbar_callback]] function() self:updateButtons() end, 1, math.max(#items, 1), self.num_rows) width = width + scrollbar_width end -- Adjust size self:overrideMinSize(width, height) self:setSize(width, y) self:updateButtons() end -- Updates buttons when scrolling. function UIDropdown:updateButtons() for num = 1, self.num_rows do local panel = self.item_panels[num] local button = self.item_buttons[num] local item_index = self.scrollbar and num + self.scrollbar.value - 1 or num local item = self.items[item_index] if item then panel.label_font = nil panel:setLabel(item.text, item.font) panel:setTooltip(item.tooltip and unpack(item.tooltip) or nil) button:enable(not item.disabled) else panel:setLabel() panel:setTooltip() button:enable(false) end end end function UIDropdown:selectItem(number) local item_index = self.scrollbar and number + self.scrollbar.value - 1 or number local item = self.items[item_index] UIResizable.close(self) self.parent_button:setLabel(item.text, item.font):setToggleState(false) if self.callback then self.callback(self.parent_window, item_index) end end function UIDropdown:beginDrag(x, y) -- TODO: It may be undesirable anyway for dropdowns, but for dragging of sub-windows -- offsets are wrongly calculated (results in jump when dragging) -- Disable dragging return false end --! Let dropdown close when clicked outside of --!param button (button) mouseclick --!param x (coord) x coordinate --!param y (coord) y coordinate --!return continue triggering parent function function UIDropdown:onMouseDown(button, x, y) if not self:hitTest(x, y) then self.parent_button:toggle() self:close() return false end return UIResizable.onMouseDown(self, button, x, y) end --! Allow the dropdown to scroll through mousewheel input --!param x (int) UNUSED, 1 on right scroll, -1 on left scroll --!param y (int) 1 on up scroll, -1 on down scroll function UIDropdown:onMouseWheel(x, y) if y == 0 then return false end -- Do nothing on x only scroll local bar = self.scrollbar if not self:hitTest(self.cursor_x, self.cursor_y) or not (bar and bar.enabled) then return false end local slider = bar.slider local track_len = slider.max_y - slider.min_y local steps = bar.max_value - bar.page_size -- Identify the nearest normalised slider position to our y position local slider_y = bar:getXorY() - slider.min_y local nearest_slot = math.round((slider_y * steps) / track_len) -- Next position local next_slot = nearest_slot - y -- Calculate the new slider y position local offset = math.round((next_slot * track_len) / steps) bar:setXorY(slider.min_y + offset) return true end function UIDropdown:onMouseMove(x, y, dx, dy) local panels = self.item_panels local buttons = self.item_buttons -- Items in the dropdown list overlap on the last pixel, causing two -- panels to appear 'active', however the higher up panel is what is -- actually selected. Separation by 1px causes gaps when UI scaled. local hit = false for row = 1, self.num_rows do if buttons[row].enabled then if self:hitTestPanel(x, y, panels[row]) and not hit then panels[row]:setColour(self.scrollbar_colour, true) hit = true else panels[row]:setColour(self.colour, true) end end end return UIResizable.onMouseMove(self, x, y, dx, dy) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/file_browser.lua000066400000000000000000000213731522247547500245220ustar00rootroot00000000000000--[[ Copyright (c) 2011 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local lfs = require("lfs") --! A tree node representing a file (or directory) in the physical file-system -- that meets a given file extension criterion. class "FilteredFileTreeNode" (FileTreeNode) ---@type FilteredFileTreeNode local FilteredFileTreeNode = _G["FilteredFileTreeNode"] function FilteredFileTreeNode:FilteredFileTreeNode(path, filter) self:FileTreeNode(path) self.filter_by = filter end function FilteredFileTreeNode:isValidFile(name) -- Directories and files ending with .sav are valid. if FileTreeNode.isValidFile(self, name) then if lfs.attributes(self:childPath(name), "mode") == "directory" then return true end if type(self.filter_by) == "table" then for _, ext in ipairs(self.filter_by) do if string.sub(name:lower(), -string.len(ext)) == ext then return true end end else return string.sub(name:lower(), -string.len(self.filter_by)) == self.filter_by end end return false -- TODO: We don't want to show hidden files on windows. How can we check that? end function FilteredFileTreeNode:createNewNode(path) return FilteredFileTreeNode(path, self.filter_by) end function FilteredFileTreeNode:getLabel() local label = self.label if not label then label = FileTreeNode.getLabel(self) self.label = label end return label end --! A sortable tree control that accommodates a certain file type and also possibly shows -- their last modification dates. class "FilteredTreeControl" (TreeControl) ---@type FilteredTreeControl local FilteredTreeControl = _G["FilteredTreeControl"] function FilteredTreeControl:FilteredTreeControl(root, x, y, width, height, col_bg, col_fg, has_font, show_dates) self:TreeControl(root, x, y, width, height, col_bg, col_fg, 14, has_font) self.num_rows = (self.tree_rect.h - self.y_offset) / self.row_height -- Magic numbers used to find a static position across different screen resolutions. local button1x = math.floor(TheApp.ui.app.config.width / 2 - 90) local button2x = button1x + 210 local buttony = math.floor(TheApp.ui.app.config.height / 4 - 95) -- Add the two column headers and make buttons on them. if show_dates then self:addBevelPanel(1, 1, width - 170, 13, col_bg):setLabel(_S.menu_list_window.name) :makeButton(0, 0, width - 170, 13, nil, self.sortByName):setTooltip(_S.tooltip.menu_list_window.name, button1x, buttony) self:addBevelPanel(width - 169, 1, 150, 13, col_bg):setLabel(_S.menu_list_window.save_date) :makeButton(0, 0, 150, 13, nil, self.sortByDate):setTooltip(_S.tooltip.menu_list_window.save_date, button2x, buttony) end self.show_dates = show_dates end function FilteredTreeControl:sortByName() if self.sort_by == "date" or (self.sort_by == "name" and self.order == "descending") then self:sortBy("name", "ascending") else self:sortBy("name", "descending") end end function FilteredTreeControl:sortByDate() if self.sort_by == "name" or (self.sort_by == "date" and self.order == "descending") then self:sortBy("date", "ascending") else self:sortBy("date", "descending") end end --! Sorts the list according to the given parameters. --!param sort_by Either "name" or "date". --!param order Either "ascending" or "descending" function FilteredTreeControl:sortBy(sort_by, order) self.sort_by = sort_by self.order = order -- Find how many nodes are above the first visible one in order -- to make the correct new nodes show. (Because of the scrollbar) local number = 0 local node = self.first_visible_node while node ~= self.tree_root do number = number + 1 node = node:getPrevVisible() end self.tree_root:reSortChildren(sort_by, order) -- Now check which new node will be the first visible one. node = self.tree_root while number > 0 do node = node:getNextVisible() number = number - 1 end self.first_visible_node = node end function FilteredTreeControl:drawExtraOnRow(canvas, node, x, y) -- We want to show the modification date to the right of each save. if not node:hasChildren() and self.show_dates then local last_mod = node:getLastModification() local daytime = _S.date_format.daymonth:format(os.date("%d", last_mod), tonumber(os.date("%m", last_mod))) local s = TheApp.config.ui_scale self.font:draw(canvas, daytime .. " " .. os.date("%Y %X", last_mod), x + self.tree_rect.w * s - 140 * s, y) end end --! A file browser with a scrollbar. Used by load_game and save_game. class "UIFileBrowser" (UIResizable) ---@type UIFileBrowser local UIFileBrowser = _G["UIFileBrowser"] local col_caption = { red = 174, green = 166, blue = 218, } --[[ Constructs the dialog. !param ui (UI) The active ui. !param mode (string) Either "menu" or "game" depending on which mode the game is in right now. !param title (string) The desired title of the dialog. !param vertical_size (number) !param root !param show_dates (boolean) Whether to show date last modified !param submit_text (string) Optional alternative labelling of the OK button ]] function UIFileBrowser:UIFileBrowser(ui, mode, title, vertical_size, root, show_dates, submit_text) self.col_bg = { red = 154, green = 146, blue = 198, } self.col_scrollbar = { red = 164, green = 156, blue = 208, } local h_size = 450 self:UIResizable(ui, h_size, 380, self.col_bg) self.default_button_sound = "selectx.wav" self.mode = mode self.modal_class = mode == "menu" and "main menu" or "saveload" self.on_top = mode == "menu" self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.25) self:addBevelPanel((h_size - 190) / 2, 10, 190, 20, col_caption):setLabel(title) .lowered = true -- Initialize the tree control self.control = FilteredTreeControl(root, 5, 35, h_size - 10, vertical_size, self.col_bg, self.col_scrollbar, true, show_dates) :setSelectCallback(--[[persistable:file_browser_select_callback]] function(node) if self:checkChoice(node) then self:choiceMade(node.path) end end) :setValueChangeCallback(--[[persistable:file_browser_textbox_callback]] function(node, label) -- Update any user input if self:checkChoice(node) then self:setInputValue(label) end end) self:addWindow(self.control) -- Create the back and ok buttons. local button_size = 135 local indent = math.floor((h_size - (2*button_size))/3) self:addBevelPanel(indent, 340, button_size, 30, self.col_bg):setLabel(_S.menu_list_window.back) :makeButton(0, 0, button_size, 40, nil, self.buttonBack):setTooltip(_S.tooltip.menu_list_window.back) self:addBevelPanel(h_size - button_size - indent, 340, button_size, 30, self.col_bg):setLabel(submit_text or _S.menu_list_window.ok) :makeButton(0, 0, button_size, 40, nil, (--[[persistable:filebrowser_ok_callback]] function() if self.confirmName then self:confirmName() elseif self.control.selected_node then local sel_node = self.control.selected_node if self:checkChoice(sel_node) then self:choiceMade(sel_node.path) end end end)):setTooltip(_S.tooltip.menu_list_window.ok) end --! Function stub for dialogs to override. This function is called each time a file is chosen. --!param name (string) Name of the file chosen. function UIFileBrowser:choiceMade(name) end --! Function stub for dialogs with user input option. This will be called for --! updating inputs, override it for a proper implementation in the derived class. --!param label (string) Name of the file chosen function UIFileBrowser:setInputValue(label) end --! Check selection is a valid file, and not a directory --!param node (table) user selected element function UIFileBrowser:checkChoice(node) return node.is_valid_file and (lfs.attributes(node.path, "mode") ~= "directory") end function UIFileBrowser:buttonBack() self:close() end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/file_browsers/000077500000000000000000000000001522247547500241745ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/file_browsers/choose_font.lua000066400000000000000000000042631522247547500272120ustar00rootroot00000000000000--[[ Copyright (c) 2013 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") local lfsext = TH.lfsExt() --! Window where the user can choose a font file. class "UIChooseFont" (UIFileBrowser) ---@type UIChooseFont local UIChooseFont = _G["UIChooseFont"] function UIChooseFont:UIChooseFont(ui, mode) -- Create the root item (or items, on Windows). local root local roots = lfsext.volumes() if #roots > 1 then for k, v in pairs(roots) do roots[k] = FilteredFileTreeNode(v, {".ttc", ".otf", ".ttf"}) end root = DummyRootNode(roots) else root = FilteredFileTreeNode(roots[1], {".ttc", ".otf", ".ttf"}) end self:UIFileBrowser(ui, mode, _S.font_location_window.caption:format(".ttc, .otf, .ttf"), 265, root) end --! Function called by clicking button of existing save #num function UIChooseFont:choiceMade(name) local app = TheApp app.config.unicode_font = name app:saveConfig() app.gfx:loadFontFile() if class.is(self.parent, UIOptions) then self.parent:checkForAvailableLanguages() end self:close() end function UIChooseFont:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIFolder(self.ui, self.mode)) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/file_browsers/choose_soundfont.lua000066400000000000000000000044361522247547500302650ustar00rootroot00000000000000--[[ Copyright (c) 2025 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") local lfsext = TH.lfsExt() local file_extensions = {".sf2", ".sf3"} --! Window where the user can choose a soundfont file. class "UIChooseSoundfont" (UIFileBrowser) ---@type UIChooseSoundfont local UIChooseSoundfont = _G["UIChooseSoundfont"] function UIChooseSoundfont:UIChooseSoundfont(ui, mode, soundOptionsUI, choiceCallback) self.soundOptionsUI = soundOptionsUI self.choiceCallback = choiceCallback -- Create the root item (or items, on Windows). local root local roots = lfsext.volumes() if #roots > 1 then for k, v in pairs(roots) do roots[k] = FilteredFileTreeNode(v, file_extensions) end root = DummyRootNode(roots) else root = FilteredFileTreeNode(roots[1], file_extensions) end self:UIFileBrowser(ui, mode, _S.audio_window.soundfont_location_caption:format(".sf2, .sf3"), 265, root) end --! Callback when a file is chosen function UIChooseSoundfont:choiceMade(name) if self.choiceCallback then self.choiceCallback(self.soundOptionsUI, name) end self:close() end --! Close the dialog and return to the previous dialog function UIChooseSoundfont:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UISoundSettings(self.ui, "menu")) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/file_browsers/load_game.lua000066400000000000000000000043241522247547500266120ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Load Game Window class "UILoadGame" (UIFileBrowser) ---@type UILoadGame local UILoadGame = _G["UILoadGame"] function UILoadGame:UILoadGame(ui, mode) local treenode = FilteredFileTreeNode(ui.app.savegame_dir, ".sav") treenode.label = "Saves" self:UIFileBrowser(ui, mode, _S.load_game_window.caption:format(".sav"), 295, treenode, true, _S.load_game_window.load_button) -- The most probable preference of sorting is by date - what you played last -- is the thing you want to play soon again. self.control:sortByDate() end function UILoadGame:choiceMade(name) local app = self.ui.app -- Make sure there is no blue filter active. app.video:setBlueFilterActive(false) local status, err = pcall(app.load, app, name) if not status then err = _S.errors.load_prefix .. err self:loadError(err) end end --! Output the error when trying to load a game --!param err The error given function UILoadGame:loadError(err) print(err) TheApp:loadMainMenu() TheApp.ui:addWindow(UIInformation(TheApp.ui, {err})) end function UILoadGame:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIMainMenu(self.ui)) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/file_browsers/load_map.lua000066400000000000000000000037221522247547500264570ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Load Map Window class "UILoadMap" (UIFileBrowser) ---@type UILoadMap local UILoadMap = _G["UILoadMap"] function UILoadMap:UILoadMap(ui, mode) local path = ui.app.user_level_dir local treenode = FilteredFileTreeNode(path, ".map") treenode.label = "Maps" self:UIFileBrowser(ui, mode, _S.load_map_window.caption:format(".map"), 295, treenode, true, _S.load_game_window.load_button) -- The most probable preference of sorting is by date - what you played last -- is the thing you want to play soon again. self.control:sortByDate() end function UILoadMap:choiceMade(name) local app = self.ui.app -- Make sure there is no blue filter active. app.video:setBlueFilterActive(false) app:loadLevel(name, nil, nil, nil, nil, true, _S.errors.load_map_prefix, nil) end function UILoadMap:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIMainMenu(self.ui)) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/file_browsers/save_game.lua000066400000000000000000000076571522247547500266450ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Save Game Window class "UISaveGame" (UIFileBrowser) ---@type UISaveGame local UISaveGame = _G["UISaveGame"] local col_textbox = { red = 0, green = 0, blue = 0, } local col_highlight = { red = 174, green = 166, blue = 218, } local col_shadow = { red = 134, green = 126, blue = 178, } function UISaveGame:UISaveGame(ui) local treenode = FilteredFileTreeNode(ui.app.savegame_dir, ".sav") treenode.label = "Saves" self:UIFileBrowser(ui, "game", _S.save_game_window.caption:format(".sav"), 265, treenode, true, _S.save_game_window.save_button) -- The most probable preference of sorting is by date - what you played last -- is the thing you want to play soon again. self.control:sortByDate() -- Textbox for entering new savegame name self.new_savegame_textbox = self:addBevelPanel(5, 310, self.width - 10, 17, col_textbox, col_highlight, col_shadow) :setLabel(_S.save_game_window.new_save_game, nil, "left"):setTooltip(_S.tooltip.save_game_window.new_save_game) :makeTextbox(--[[persistable:save_game_new_savegame_textbox_confirm_callback]] function() self:confirmName() end, --[[persistable:save_game_new_savegame_textbox_abort_callback]] function() self:abortName() end) end --! Function called when textbox is aborted (e.g. by pressing escape) function UISaveGame:abortName() self.new_savegame_textbox.text = "" self.new_savegame_textbox.panel:setLabel(_S.save_game_window.new_save_game) end --! Updates the textbox to selected file --!param label (string) Selected file name function UISaveGame:setInputValue(label) local name = string.gsub(label, "%.sav$", "") self.new_savegame_textbox:setText(name) end --! Function called when textbox is confirmed (e.g. by pressing enter) function UISaveGame:confirmName() local filename = self.new_savegame_textbox.text local app = self.ui.app if filename == "" then self.ui:addWindow(UIInformation(self.ui, { _S.save_game_window.missing_filename })) self:abortName() return end self:trySave(app.savegame_dir .. filename .. ".sav") end --! Function called by clicking button of existing save #num function UISaveGame:choiceMade(name) self:trySave(name) end --! Try to save the game with given filename; if already exists, create confirmation window first. function UISaveGame:trySave(filename) if lfs.attributes(filename, "size") ~= nil then self.ui:addWindow(UIConfirmDialog(self.ui, false, _S.confirmation.overwrite_save, --[[persistable:save_game_confirmation]] function() self:doSave(filename) end)) else self:doSave(filename) end end --! Actually do save the game with given filename. function UISaveGame:doSave(filename) filename = filename local ui = self.ui local app = ui.app self:close() local status, err = pcall(app.save, app, filename) if not status then err = _S.errors.save_prefix .. err print(err) ui:addWindow(UIInformation(ui, {err})) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/file_browsers/save_map.lua000066400000000000000000000077351522247547500265060ustar00rootroot00000000000000--[[ Copyright (c) 2015 Stephen E. Baker et al. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Save Map Window class "UISaveMap" (UIFileBrowser) ---@type UISaveMap local UISaveMap = _G["UISaveMap"] local col_textbox = { red = 0, green = 0, blue = 0, } local col_highlight = { red = 174, green = 166, blue = 218, } local col_shadow = { red = 134, green = 126, blue = 178, } function UISaveMap:UISaveMap(ui) local treenode = FilteredFileTreeNode(ui.app.user_level_dir, ".map") treenode.label = "Maps" self:UIFileBrowser(ui, "map", _S.save_map_window.caption:format(".map"), 265, treenode, true, _S.save_map_window.save_button) -- The most probable preference of sorting is by date - what you played last -- is the thing you want to play soon again. self.control:sortByDate() -- Textbox for entering new save name self.new_map_textbox = self:addBevelPanel(5, 310, self.width - 10, 17, col_textbox, col_highlight, col_shadow) :setLabel(_S.save_map_window.new_map, nil, "left"):setTooltip(_S.tooltip.save_map_window.new_map) :makeTextbox(--[[persistable:save_map_new_map_textbox_confirm_callback]] function() self:confirmName() end, --[[persistable:save_map_new_map_textbox_abort_callback]] function() self:abortName() end) local message = ui.app.world:validateMap() if message then ui:addWindow(UIInformation(ui, {message})) end end --! Function called when textbox is aborted (e.g. by pressing escape) function UISaveMap:abortName() self.new_map_textbox.text = "" self.new_map_textbox.panel:setLabel(_S.save_map_window.new_map) end --! Updates the textbox to selected file --!param label (string) Selected file name function UISaveMap:setInputValue(label) local name = string.gsub(label, "%.map$", "") self.new_map_textbox:setText(name) end --! Function called when textbox is confirmed (e.g. by pressing enter) function UISaveMap:confirmName() local filename = self.new_map_textbox.text local app = self.ui.app if filename == "" then self.ui:addWindow(UIInformation(self.ui, { _S.save_map_window.missing_filename })) self:abortName() return end self:trySave(app.user_level_dir .. filename .. ".map") end --! Function called by clicking button of existing save #num function UISaveMap:choiceMade(name) self:trySave(name) end --! Try to save the game with given filename; if already exists, create confirmation window first. function UISaveMap:trySave(filename) if lfs.attributes(filename, "size") ~= nil then self.ui:addWindow(UIConfirmDialog(self.ui, false, _S.confirmation.overwrite_save, --[[persistable:save_map_confirmation]] function() self:doSave(filename) end)) else self:doSave(filename) end end --! Actually do save the map with given filename. function UISaveMap:doSave(filename) filename = filename local ui = self.ui local map = ui.app.map self:close() local status, err = pcall(map.save, map, filename) if not status then err = _S.errors.save_prefix .. err print(err) ui:addWindow(UIInformation(ui, {err})) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/folder_settings.lua000066400000000000000000000243651522247547500252370ustar00rootroot00000000000000--[[ Copyright (c) 2013 Mark (Mark L) Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Customise window used in the main menu and ingame. class "UIFolder" (UIResizable) ---@type UIFolder local UIFolder = _G["UIFolder"] local col = { bg = Colours.PanelDefault, setting = Colours.Setting, title = Colours.Title, caption = Colours.Caption, button = Colours.PanelDefault } --- Calculates the Y position for the dialog box in the option menu -- and increments along the current position for the next element -- @return The Y position to place the element at function UIFolder:_getOptionYPos() -- Offset from top of options box local STARTING_Y_POS = 50 -- Y Height is 20 for panel size + 5 for spacing local Y_HEIGHT = 25 -- Multiply by the index so that index = 1 is at STARTING_Y_POS local calculated_pos = STARTING_Y_POS + Y_HEIGHT * (self._current_option_index - 1) self._current_option_index = self._current_option_index + 1 return calculated_pos end function UIFolder:UIFolder(ui, mode) self:UIResizable(ui, 420, 240, col.bg) local app = ui.app self.mode = mode self.modal_class = mode == "menu" and "main menu" or "options" or "folders" self.on_top = mode == "menu" self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.25) self.default_button_sound = "selectx.wav" self.app = app self._current_option_index = 1 -- Window parts definition -- Title self:addBevelPanel(110, 10, 200, 20, col.title):setLabel(_S.folders_window.caption) .lowered = true -- Location of original game local built_in = app.gfx:loadMenuFont() local y = self:_getOptionYPos() self:addBevelPanel(20, y, 130, 20, col.caption, col.bg, col.bg) :setLabel(_S.folders_window.data_label) :setTooltip(_S.tooltip.folders_window.data_location) .lowered = true self:addBevelPanel(160, y, 240, 20, col.setting) :setLabel(app.config.theme_hospital_install, built_in) :setAutoClip(true) :makeButton(0, 0, 240, 20, nil, self.buttonBrowseForTHInstall) :setTooltip(_S.tooltip.folders_window.browse_data:format(app.config.theme_hospital_install)) -- Location of font file y = self:_getOptionYPos() local font_location_label = app.config.unicode_font and app.config.unicode_font or _S.tooltip.folders_window.no_font_specified local tooltip_font = app.config.unicode_font and _S.tooltip.folders_window.browse_font:format(app.config.unicode_font) or _S.tooltip.folders_window.no_font_specified self:addBevelPanel(20, y, 130, 20, col.caption, col.bg, col.bg) :setLabel(_S.folders_window.font_label) :setTooltip(_S.tooltip.folders_window.font_location) .lowered = true self.fonts_panel = self:addBevelPanel(160, y, 240, 20, col.setting) :setLabel(font_location_label, built_in) :setAutoClip(true) :makeButton(0, 0, 240, 20, nil, self.buttonBrowseForFont) :setTooltip(tooltip_font) -- Location saves alternative y = self:_getOptionYPos() local default_savegame_dir = app:getDefaultSavegameDir() local saves_location = app.config.savegames and app.config.savegames or default_savegame_dir local tooltip_saves = _S.tooltip.folders_window.browse_saves:format(saves_location) self:addBevelPanel(20, y, 130, 20, col.caption, col.bg, col.bg) :setLabel(_S.folders_window.savegames_label):setTooltip(_S.tooltip.folders_window.savegames_location) .lowered = true self.saves_panel = self:addBevelPanel(160, y, 220, 20, col.setting) :setLabel(saves_location , built_in) :setAutoClip(true) :makeButton(0, 0, 220, 20, nil, self.buttonBrowseForSavegames) :setTooltip(tooltip_saves) self:addBevelPanel(380, 100, 20, 20, col.button) :setLabel("X") :makeButton(0, 0, 20, 20, nil, self.resetSavegameDir) :setTooltip(_S.tooltip.folders_window.reset_to_default:format(default_savegame_dir)) -- location for screenshots y = self:_getOptionYPos() local default_screenshots_dir = app:getDefaultScreenshotsDir() local screenshots_location = app.config.screenshots and app.config.screenshots or default_screenshots_dir local tooltip_screenshots = _S.tooltip.folders_window.browse_screenshots:format(screenshots_location) self:addBevelPanel(20, y, 130, 20, col.caption, col.bg, col.bg) :setLabel(_S.folders_window.screenshots_label):setTooltip(_S.tooltip.folders_window.screenshots_location) .lowered = true self.screenshots_panel = self:addBevelPanel(160, y, 220, 20, col.setting) :setLabel(screenshots_location, built_in) :setAutoClip(true) :makeButton(0, 0, 220, 20, nil, self.buttonBrowseForScreenshots) :setTooltip(tooltip_screenshots) self:addBevelPanel(380, y, 20, 20, col.button) :setLabel("X") :makeButton(0, 0, 20, 20, nil, self.resetScreenshotDir) :setTooltip(_S.tooltip.folders_window.reset_to_default:format(default_screenshots_dir)) -- location for music files y = self:_getOptionYPos() local music_location_label = app.config.audio_music and app.config.audio_music or _S.tooltip.folders_window.not_specified local tooltip_music = app.config.audio_music and _S.tooltip.folders_window.browse_music:format(app.config.audio_music) or _S.tooltip.folders_window.not_specified self:addBevelPanel(20, y, 130, 20, col.caption, col.bg, col.bg) :setLabel(_S.folders_window.music_label):setTooltip(_S.tooltip.folders_window.music_location) .lowered = true self.music_panel = self:addBevelPanel(160, y, 220, 20, col.setting) :setLabel(music_location_label, built_in) :setAutoClip(true) :makeButton(0, 0, 220, 20, nil, self.buttonBrowseForAudio_music) :setTooltip(tooltip_music) self:addBevelPanel(380, y, 20, 20, col.button) :setLabel("X") :makeButton(0, 0, 20, 20, nil, self.resetMusicDir) :setTooltip(_S.tooltip.folders_window.clear_directory) -- "Back" button -- Give some extra padding to adjust for symmetry y = self:_getOptionYPos() + 15 self:addBevelPanel(50, y, 320, 40, col.button) :setLabel(_S.folders_window.back) :makeButton(0, 0, 320, 40, nil, self.buttonBack) :setTooltip(_S.tooltip.folders_window.back) self.built_in_font = built_in end function UIFolder:resetSavegameDir() local app = TheApp local default_savegame_dir = app:getDefaultSavegameDir() local tooltip_saves = _S.tooltip.folders_window.browse_saves:format(default_savegame_dir) app.config.savegames = nil app:saveConfig() app:initSavegameDir() self.saves_panel:setLabel(default_savegame_dir, self.built_in_font) self.saves_panel:setTooltip(tooltip_saves) end function UIFolder:resetScreenshotDir() local app = TheApp local default_screenshots_dir = app:getDefaultScreenshotsDir() local tooltip_screenshots = _S.tooltip.folders_window.browse_screenshots:format(default_screenshots_dir) app.config.screenshots = nil app:saveConfig() app:initScreenshotsDir() self.screenshots_panel:setLabel(default_screenshots_dir, self.built_in_font) self.screenshots_panel:setTooltip(tooltip_screenshots) end function UIFolder:resetMusicDir() local app = TheApp local label_music = _S.tooltip.folders_window.not_specified local tooltip_music = _S.tooltip.folders_window.not_specified app.config.audio_music = nil app:saveConfig() app.audio:init() self.music_panel:setLabel(label_music, self.built_in_font) self.music_panel:setTooltip(tooltip_music) end function UIFolder:buttonBrowseForFont() local browser = UIChooseFont(self.ui, self.mode) self.ui:addWindow(browser) end function UIFolder:buttonBrowseForSavegames() local app = TheApp local old_path = app.config.savegames local function callback(path) if old_path ~= path then app.config.savegames = path app:saveConfig() app:initSavegameDir() self.saves_panel:setLabel(app.config.savegames, self.built_in_font) end end local browser = UIDirectoryBrowser(self.ui, self.mode, _S.folders_window.savegames_location, "DirTreeNode", callback) self.ui:addWindow(browser) end function UIFolder:buttonBrowseForTHInstall() local function callback(path) local app = TheApp app.config.theme_hospital_install = path app:saveConfig() app:reset() end local browser = UIDirectoryBrowser(self.ui, self.mode, _S.folders_window.new_th_location, "InstallDirTreeNode", callback) self.ui:addWindow(browser) end function UIFolder:buttonBrowseForScreenshots() local app = TheApp local old_path = app.config.screenshots local function callback(path) if old_path ~= path then app.config.screenshots = path app:saveConfig() app:initScreenshotsDir() self.screenshots_panel:setLabel(app.config.screenshots, self.built_in_font) end end local browser = UIDirectoryBrowser(self.ui, self.mode, _S.folders_window.screenshots_location, "DirTreeNode", callback) self.ui:addWindow(browser) end function UIFolder:buttonBrowseForAudio_music() local function callback(path) local app = TheApp app.config.audio_music = path app:saveConfig() app.audio:init() self.music_panel:setLabel(app.config.audio_music, self.built_in_font) end local browser = UIDirectoryBrowser(self.ui, self.mode, _S.folders_window.music_location, "DirTreeNode", callback) self.ui:addWindow(browser) end function UIFolder:buttonBack() self:close() local window = UIOptions(self.ui, "menu") self.ui:addWindow(window) end function UIFolder:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIMainMenu(self.ui)) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/hotkey_assign.lua000066400000000000000000000475621522247547500247170ustar00rootroot00000000000000--[[ Copyright (c) 2019 James "leiget" Russell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Custom key bindings class "UIHotkeyAssign" (UIResizable) ---@type UIHotkeyAssign local UIHotkeyAssign = _G["UIHotkeyAssign"] local col_bg = { red = 154, green = 146, blue = 198, } local col_hotkeybox = { red = 81, green = 76, blue = 150, } local col_hotkeybox_lowered = { red = 41, green = 36, blue = 90, } local col_highlight = { red = 174, green = 166, blue = 218, } local col_shadow = { red = 134, green = 126, blue = 178, } local col_caption = { red = 174, green = 166, blue = 218, } local hotkey_backup = {} local hotkeys_backedUp = false local hotkey_buttons = {} local key_hierarchy = { "ctrl", "alt", "shift", "gui", "menu", "return", "enter", "escape", "backspace", "tab", "space", "!", "\"", "#", "%", "$", "&", "\'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "[", "\\", "]", "^", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "capslock", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "f11", "f12", "printscreen", "scrolllock", "pause", "insert", "home", "pageup", "delete", "end", "pagedown", "right", "left", "down", "up", "numlock", "f13", "f14", "f15", "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", "f24", "keypad 0", "keypad 1", "keypad 2", "keypad 3", "keypad 4", "keypad 6", "keypad 7", "keypad 8", "keypad 9", "keypad .", } --! Removes qualifiers like left and right from modifier keys --! e.g. left shift becomes shift. --! --!param noted_keys (table) Array of keys to normalize --!return (table) New array of normalized keys local function normalize_modifiers(noted_keys) local res = shallow_clone(noted_keys) -- Go through the new key table and remove "left" or "right" from any modifier strings. for k, v in ipairs(res) do -- Ctrl if string.find(v, "ctrl", 1, true) then res[k] = "ctrl" end -- Alt if string.find(v, "alt", 1, true) then res[k] = "alt" end -- Shift if string.find(v, "shift", 1, true) then res[k] = "shift" end -- GUI if string.find(v, "gui", 1, true) then res[k] = "gui" end -- MENU if string.find(v, "menu", 1, true) then res[k] = "menu" end end return res end --! Return an array of the keys from the given array, sorted into a --! deterministic order. local function sort_noted_keys(noted_keys) -- Go through the new noted_keys and order it according to the key hairarchy. local result = {} local idx = 1 for _, v1 in ipairs(key_hierarchy) do for _, v2 in ipairs(noted_keys) do if v1 == v2 then result[idx] = v2 idx = idx + 1 end end end return result end --! Return an array with the modifier keys removed. --! Used when assigning the scroll keys. --! --!param noted_keys (table) Array of keys to check for modifiers --!return (table) New array of keys without modifiers local function remove_modifiers(noted_keys) local res = shallow_clone(noted_keys) for k, v in ipairs(res) do -- Ctrl if string.find(v, "ctrl", 1, true) then table.remove(res, k) end -- Alt if string.find(v, "alt", 1, true) then table.remove(res, k) end -- Shift if string.find(v, "shift", 1, true) then table.remove(res, k) end -- GUI if string.find(v, "gui", 1, true) then table.remove(res, k) end -- MENU if string.find(v, "menu", 1, true) then table.remove(res, k) end end return res end --! Determine if the given key sequence is already being used for an action in --! the app. --! --!param keys (table) A sorted array of the key sequence to test --!param app (App) The App --!return (boolean,string) Whether the key is used, and if so, for what action local function is_hotkey_used(keys, app) -- Find out if there is another hotkey with the same key assignment. -- Make sure it's not the same key we are currently mapping. local our_key_str = serialize(keys) local key_str = "" -- Go through the app.hotkeys table... for k, _ in pairs(app.hotkeys) do if type(app.hotkeys[k]) == "table" then key_str = serialize(app.hotkeys[k]) elseif type(app.hotkeys[k]) == "string" then key_str = serialize({app.hotkeys[k]}) end -- If the key(s) that were pressed match the current key in the "app.hotkey" table... if our_key_str == key_str then return true, k end end return false end --! Assign the given key sequence to a hotkey. --! --! Validates a given key sequence and applies it to the given hotkey. --! If the key sequence is already used, first swap that hotkey with the given --! one to prevent duplicates. --! --!param hotkey (string) The hotkey to change --!param hotkey_buttons_table (table) Configuration table of all hotkeys --!param app (App) The App local function hotkey_input(hotkey, hotkey_buttons_table, app) --[[ TODO: -- Keypad when numlock is off doesn't work correctly. Seems that keypad input isn't working correctly in ui.lua or something. Left for future patch. -- Disable the "global_exitApp" hotkey while assigning hotkeys? Even when "global_exitApp" isn't added at startup Alt+F4 still abandons program. Why? -- Modifier keys for other languages necessary? -- Ex: STRG for german's "CTRL". ]] local noted_keys = hotkey_buttons_table[hotkey].noted_keys -- Check if the table even has anything or has too much. local table_length = #noted_keys if table_length == 0 or table_length > 4 then hotkey_buttons_table[hotkey]:abort() return end -- If the noted key input is "enter", "return", or "escape"... if array_join(noted_keys) == array_join( {"enter"} ) or array_join(noted_keys) == array_join( {"return"} ) or array_join(noted_keys) == array_join( {"escape"} ) then -- Abort, as we don't want the enter or esc key used for anything other -- than "global_confirm" and "global_cancel". hotkey_buttons_table[hotkey]:abort() return end noted_keys = normalize_modifiers(noted_keys) noted_keys = sort_noted_keys(noted_keys) -- If the current hotkey is a scroll key... if hotkey == "ingame_scroll_up" or hotkey == "ingame_scroll_down" or hotkey == "ingame_scroll_left" or hotkey == "ingame_scroll_right" then -- Get rid of any modifiers, as they won't work correctly, anyway. noted_keys = remove_modifiers(noted_keys) end local hotkey_used, hotkey_used_key = is_hotkey_used(noted_keys, app) -- If this hotkey was used for a different action, swap with current assignment if hotkey_used and hotkey ~= hotkey_used_key then app.hotkeys[hotkey_used_key] = shallow_clone(app.hotkeys[hotkey]) if hotkey_buttons_table[hotkey_used_key] then hotkey_buttons_table[hotkey_used_key]:setText( string.upper(array_join(app.hotkeys[hotkey_used_key], "+")) ) end end if #noted_keys == 1 then noted_keys = noted_keys[1] end app.hotkeys[hotkey] = noted_keys -- If the key is "global_cancel_alt"... if hotkey == "global_cancel_alt" then app.hotkeys["global_stop_movie_alt"] = noted_keys app.hotkeys["global_window_close_alt"] = noted_keys end hotkey_buttons_table[hotkey]:setText( string.upper( array_join(app.hotkeys[hotkey], "+") ) ) end function UIHotkeyAssign:UIHotkeyAssign(ui, mode) self:UIResizable(ui, 640, 480, col_bg) local current_pos_y = 1 -- Panel x position table. self.panel_pos_table_x = {} self.panel_pos_table_x[1] = 10 self.panel_pos_table_x[2] = 220 self.panel_pos_table_x[3] = 430 -- Panel y button position table. self.panel_pos_table_y = {} for i=1, 12, 1 do self.panel_pos_table_y[i] = (i*30)+15 end self.ui = ui self.mode = mode self.modal_class = mode == "menu" and "main menu" or "options" or "folders" self.on_top = mode == "menu" self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.25) self.default_button_sound = "selectx.wav" self.app = ui.app self.hotkey_buttons = hotkey_buttons if not hotkeys_backedUp then hotkey_backup = shallow_clone(self.app.hotkeys) hotkeys_backedUp = true end self.key_pane = nil self.key_options = {{ id = "global", title = _S.hotkey_window.panel_globalKeys, tooltip = _S.tooltip.hotkey_window.panel_globalKeys, sections = {{ title = _S.hotkey_window.panel_globalKeys, keys = { "global_exitApp", "global_resetApp", "global_screenshot", "global_releaseMouse", "global_confirm_alt", "global_cancel_alt" }}}}, { id = "ingame", title = _S.hotkey_window.panel_generalInGameKeys, tooltip = _S.tooltip.hotkey_window.panel_generalInGameKeys, sections = {{ title = _S.hotkey_window.panel_generalInGameKeys, keys = { "ingame_showmenubar", "ingame_saveMenu", "ingame_loadMenu", "ingame_jukebox", "ingame_openFirstMessage", "ingame_quickSave", "ingame_quickLoad", "ingame_restartLevel", "ingame_quitLevel", "ingame_rotateobject", "ingame_sellPickedUpItem", "ingame_patient_gohome", "ingame_setTransparent", "ingame_toggleTransparent" }}}}, { id = "speed", title = _S.hotkey_window.button_gameSpeedKeys, tooltip = _S.tooltip.hotkey_window.button_gameSpeedKeys, sections = {{ title = _S.hotkey_window.panel_gameSpeedKeys, keys = { "ingame_pause", "ingame_gamespeed_slowest", "ingame_gamespeed_slower", "ingame_gamespeed_normal", "ingame_gamespeed_max", "ingame_gamespeed_thensome", "ingame_gamespeed_speedup" }}}}, { id = "scroll", title = _S.hotkey_window.panel_scrollKeys, tooltip = _S.tooltip.hotkey_window.panel_scrollKeys, sections = {{ title = _S.hotkey_window.panel_scrollKeys, keys = { "ingame_scroll_up", "ingame_scroll_down", "ingame_scroll_left", "ingame_scroll_right", "ingame_scroll_shift" }}}}, { id = "zoom", title = _S.hotkey_window.panel_zoomKeys, tooltip = _S.tooltip.hotkey_window.panel_zoomKeys, sections = {{ title = _S.hotkey_window.panel_zoomKeys, keys = { "ingame_zoom_in", "ingame_zoom_in_more", "ingame_zoom_out", "ingame_zoom_out_more", "ingame_reset_zoom" }}}}, { id = "toggle", title = _S.hotkey_window.panel_toggleKeys, tooltip = _S.tooltip.hotkey_window.panel_toggleKeys, sections = {{ title = _S.hotkey_window.panel_toggleKeys, keys = { "ingame_toggleAnnouncements", "ingame_toggleSounds", "ingame_toggleMusic", "ingame_toggleAdvisor", "ingame_toggleInfo" }}}}, { id = "panels", title = _S.hotkey_window.caption_panels, tooltip = _S.tooltip.hotkey_window.caption_panels, sections = {{ title = _S.hotkey_window.caption_panels, keys = { "ingame_panel_bankManager", "ingame_panel_bankStats", "ingame_panel_staffManage", "ingame_panel_townMap", "ingame_panel_casebook", "ingame_panel_research", "ingame_panel_status", "ingame_panel_charts", "ingame_panel_policy", "ingame_panel_machineMenu", "ingame_panel_adviserHistory", "ingame_panel_buildRoom", "ingame_panel_furnishCorridor", "ingame_panel_editRoom", "ingame_panel_hireStaff",}}}}, { -- FIXME: Rename to "Alternate Panel Keys" -- New strings required but string freeze applies at time of patch id = "panels2", title = _S.hotkey_window.caption_panels, tooltip = _S.tooltip.hotkey_window.caption_panels, sections = {{ title = _S.hotkey_window.caption_panels, keys = { "ingame_panel_map_alt", "ingame_panel_research_alt", "ingame_panel_casebook_alt", "ingame_panel_casebook_alt02" }}}}, { id = "recall", title = _S.hotkey_window.button_recallPosKeys, tooltip = _S.tooltip.hotkey_window.button_recallPosKeys, sections = {{ title = _S.hotkey_window.panel_storePosKeys, keys = { "ingame_storePosition_1", "ingame_storePosition_2", "ingame_storePosition_3", "ingame_storePosition_4", "ingame_storePosition_5", "ingame_storePosition_6", "ingame_storePosition_7", "ingame_storePosition_8", "ingame_storePosition_9", "ingame_storePosition_0" }}, { title = _S.hotkey_window.panel_recallPosKeys, keys = { "ingame_recallPosition_1", "ingame_recallPosition_2", "ingame_recallPosition_3", "ingame_recallPosition_4", "ingame_recallPosition_5", "ingame_recallPosition_6", "ingame_recallPosition_7", "ingame_recallPosition_8", "ingame_recallPosition_9", "ingame_recallPosition_0" }}}}} if self.ui.app.config.debug then table.insert(self.key_options, { id = "debug", title = _S.hotkey_window.panel_debugKeys, tooltip = _S.tooltip.hotkey_window.panel_debugKeys, sections = {{ title = _S.hotkey_window.panel_debugKeys, keys = { "global_showLuaConsole", "global_runDebugScript", "ingame_showCheatWindow", "ingame_poopLog", "ingame_poopStrings" }}}}) end -- Title self:addBevelPanel(220, 10, 200, 20, col_caption):setLabel(_S.hotkey_window.caption_main) -- Location of original game local built_in = self.app.gfx:loadMenuFont() self.key_windows = {} for _, key_opt_set in ipairs(self.key_options) do local win = UIHotkeyAssignKeyPane(220, 0, ui, key_opt_set, self.app.hotkeys) self:addWindow(win) local btn_x = self.panel_pos_table_x[1] local btn_y = self.panel_pos_table_y[current_pos_y] local btn = self:addBevelPanel(btn_x, btn_y, 200, 30, col_bg):setLabel(key_opt_set.title) :makeButton(0, 0, 200, 30, nil, function(s) s:showKeyPane(key_opt_set.id) end) :makeToggle() :setTooltip(key_opt_set.tooltip) self.key_windows[key_opt_set.id] = { window = win, button = btn } current_pos_y = current_pos_y + 1 end self:showKeyPane("global") -- "Accept" button self:addBevelPanel(self.panel_pos_table_x[1], 430, 200, 40, col_bg) :setLabel(_S.hotkey_window.button_accept) :makeButton(0, 0, 180, 40, nil, self.buttonAccept) :setTooltip(_S.tooltip.hotkey_window.button_accept) -- Reset to defaults button. self:addBevelPanel(self.panel_pos_table_x[2], 430, 200, 40, col_bg) :setLabel(_S.hotkey_window.button_defaults) :makeButton(0, 0, 180, 40, nil, self.buttonDefaults) :setTooltip(_S.tooltip.hotkey_window.button_defaults) -- "Cancel" button self:addBevelPanel(self.panel_pos_table_x[3], 430, 200, 40, col_bg) :setLabel(_S.hotkey_window.button_cancel) :makeButton(0, 0, 180, 40, nil, self.buttonCancel) :setTooltip(_S.tooltip.hotkey_window.button_cancel) self.built_in_font = built_in end function UIHotkeyAssign:buttonAccept() self.app:saveHotkeys() hotkeys_backedUp = false self:close() local window = UIOptions(self.ui, "menu") self.ui:addWindow(window) end function UIHotkeyAssign:buttonDefaults() -- Copy the default hotkeys into the app's current hotkey table. self.app.hotkeys = corsixth.require("config_finder").hotkeys_defaults() -- Reload all hotkey boxes' text. for _, v in pairs(self.key_windows) do v.window:resetAllButtonText(self.app.hotkeys) end end function UIHotkeyAssign:buttonCancel() --Reset all keys back to what they were before opening the hotkey window. self.app.hotkeys = shallow_clone(hotkey_backup) hotkeys_backedUp = false self:close() local window = UIOptions(self.ui, "menu") self.ui:addWindow(window) end function UIHotkeyAssign:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIOptions(self.ui, "menu")) end end function UIHotkeyAssign:showKeyPane(pane) self.key_pane = pane for _, box in ipairs(self.ui.hotkeyboxes) do box:abort() end for k, v in pairs(self.key_windows) do v.window:setVisible(k == pane) v.button:setToggleState(k == pane) end end --! Child window for setting key bindings class "UIHotkeyAssignKeyPane" (Window) ---@type UIHotkeyAssignKeyPane local UIHotkeyAssignKeyPane = _G["UIHotkeyAssignKeyPane"] function UIHotkeyAssignKeyPane:UIHotkeyAssignKeyPane(x, y, ui, key_options, app_hotkeys) self:Window() self.x = x self.y = y self.ui = ui self.hotkey_buttons = {} local panel_width = 100 local panel_height = 20 -- Panel x position table. self.panel_pos_table_x = {} self.panel_pos_table_x[1] = 0 self.panel_pos_table_x[2] = 210 if #key_options.sections == 1 then panel_width = 205 elseif #key_options.sections == 2 then panel_width = 100 end -- Panel y position table. self.panel_pos_table_y = {} for i=1, 20, 1 do self.panel_pos_table_y[i] = (i*20)+25 end local current_pos_x = 1 for _, section in ipairs(key_options.sections) do local current_pos_y = 1 local pos_x = self.panel_pos_table_x[current_pos_x] local pos_y = self.panel_pos_table_y[current_pos_y] self:addBevelPanel(pos_x, pos_y, panel_width*2, panel_height, col_caption):setLabel(section.title) current_pos_y = current_pos_y + 1 for _, key in ipairs(section.keys) do pos_x = self.panel_pos_table_x[current_pos_x] pos_y = self.panel_pos_table_y[current_pos_y] self:addBevelPanel(pos_x, pos_y, panel_width, panel_height, col_shadow, col_bg, col_bg):setLabel(_S.hotkey_window[key]) self.hotkey_buttons[key] = self:addBevelPanel( pos_x + panel_width, pos_y, panel_width, panel_height, col_hotkeybox, col_highlight, col_shadow, nil, col_hotkeybox_lowered) :makeHotkeyBox(function() self:confirm_func(key) end, nil) :setText(string.upper(array_join(app_hotkeys[key], "+"))) current_pos_y = current_pos_y + 1 end current_pos_x = current_pos_x + 1 end end function UIHotkeyAssignKeyPane:setVisible(visibility) self.visible = visibility end function UIHotkeyAssignKeyPane:confirm_func(hotkey) hotkey_input(hotkey, self.hotkey_buttons, _G.TheApp) end function UIHotkeyAssignKeyPane:resetAllButtonText(app_hotkeys) for k, _ in pairs(self.hotkey_buttons) do self.hotkey_buttons[k]:setText(string.upper(array_join(app_hotkeys[k], "+"))) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/lua_console.lua000066400000000000000000000103331522247547500243350ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- luacheck: globals _ strict_declare_global "_" _ = nil --! Interactive Lua Console for ingame debugging. class "UILuaConsole" (UIResizable) ---@type UILuaConsole local UILuaConsole = _G["UILuaConsole"] local col_bg = { red = 46, green = 186, blue = 60, } local col_textbox = { red = 0, green = 0, blue = 0, } local col_highlight = { red = 174, green = 166, blue = 218, } local col_shadow = { red = 134, green = 126, blue = 178, } function UILuaConsole:UILuaConsole(ui) self:UIResizable(ui, 320, 240, col_bg) local app = ui.app self.modal_class = "console" self.esc_closes = true self.resizable = true self.min_width = 200 self.min_height = 150 self:setDefaultPosition(0.1, 0.1) -- Window parts definition self.default_button_sound = "selectx.wav" -- Textbox for entering code self.textbox = self:addBevelPanel(20, 20, 280, 140, col_textbox, col_highlight, col_shadow) :setLabel("", app.gfx:loadBuiltinFont(), "left"):setTooltip(_S.tooltip.lua_console.textbox):setAutoClip(true) :makeTextbox():allowedInput("all"):setText({""}) self.textbox:setActive(true) -- activated by default -- "Execute" button self.execute_button = self:addBevelPanel(20, self.height - 60, 130, 40, col_bg):setLabel(_S.lua_console.execute_code) :makeButton(0, 0, 130, 40, nil, self.buttonExecute):setTooltip(_S.tooltip.lua_console.execute_code) -- "Close" button self.close_button = self:addBevelPanel(170, self.height - 60, 130, 40, col_bg):setLabel(_S.lua_console.close) :makeButton(0, 0, 130, 40, nil, self.buttonClose):setTooltip(_S.tooltip.lua_console.close) end function UILuaConsole:setSize(width, height) UIResizable.setSize(self, width, height) self.textbox:setSize(self.width - 40, self.height - 100) local button_width = math.floor((self.width - 60) / 2) self.execute_button:setPosition(20, self.height - 60) self.execute_button:setSize(button_width, 40) self.close_button:setPosition(self.width - 20 - button_width, self.height - 60) self.close_button:setSize(button_width, 40) end function UILuaConsole:buttonExecute() print("Loading UserFunction...") local func, err, s _ = TheApp.ui and TheApp.ui.debug_cursor_entity local i = 0 func, err = load(function() i = i + 1 if type(self.textbox.text) == "table" then return self.textbox.text[i] and self.textbox.text[i] .. "\n" else return i < 2 and self.textbox.text end end, "=UserFunction") if not func then print("Error while loading UserFunction:") print(err) return end print("Executing UserFunction...") s, err = pcall(func) if not s then print("Error while executing UserFunction:") print(err) end _ = nil -- Clean up the global after use or it'll corrupt saves end function UILuaConsole:buttonClose() self:close() end function UILuaConsole:afterLoad(old, new) UIResizable.afterLoad(self, old, new) if old < 65 then -- added min_width and min_height self.min_width = 200 self.min_height = 150 -- added execute_button, close_button, changed callback self.execute_button = self.buttons[2] self.close_button = self.buttons[3] self.close_button.on_click = self.buttonClose end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/machine_menu.lua000066400000000000000000000372041522247547500244700ustar00rootroot00000000000000--[[ Copyright (c) 2025 Matthew "Matroftt" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Interactive Machine List class "UIMachineMenu" (UIResizable) ---@type UIMachineMenu local UIMachineMenu = _G["UIMachineMenu"] local col_bg = { red = 219, green = 81, blue = 12, } local col_shadow = { red = 202, green = 69, blue = 8, } local col_highlight = { red = 232, green = 95, blue = 16 } local col_assigned_button = { red = 84, green = 200, blue = 84 } local col_shaded_assigned_button = { red = 92, green = 150, blue = 92 } local col_disabled_assigned_button = { red = 84, green = 112, blue = 84 } local col_warning_button = { red = 219, green = 36, blue = 36 } local col_disabled = { red = 159, green = 90, blue = 56 } -- Timer, used to update machine menu only once per X ticks to reduce the burden. local ticks_to_skip = 10 local tick_timer = ticks_to_skip local row_height = 32 local window_margin = 15 function UIMachineMenu:UIMachineMenu(ui) local app = ui.app -- Calculate menu's height local height_divisor = 4 local approx_rows_space = math.floor(app.config.height / height_divisor) self.rows = math.ceil(approx_rows_space / row_height) local rows_space = self.rows * row_height local width = 480 local height = row_height + rows_space + window_margin * 2 -- header + values + margin (top and bottom) self:UIResizable(ui, width, height, col_bg) self.ui = ui self.modal_class = "machine_menu" self.esc_closes = true self.resizable = false self:setDefaultPosition(0.05, 0.05) self.machine_list = {} self.list_table = {} self.default_button_sound = "selectx.wav" self.sort_method = "sortByRatio" self.rows_shown = 0 self:createControls() self:update() end function UIMachineMenu:createControls() local rows = self.rows self.panel_sprites = self.ui.app.gfx:loadSpriteTable("QData", "Req03V", true) self.white_font = self.ui.app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) if rows ~= self.rows_shown then local function assigned_factory(num) return --[[persistable:machine_menu_assigned_button]] function(window) window:assignedHandymanButtonClicked(num) end end local function warning_factory(num) return --[[persistable:machine_menu_warning_button]] function(window) window:warningButtonClicked(num) end end local function name_factory(num) return --[[persistable:machine_menu_name_button]] function(window) window:machineButtonClicked(num) end end local scrollbarMovedCallback = --[[persistable:machine_menu_scrollbar]] function() self:scrollbarMoved() end self.rows_shown = rows self.list_table = {} local indicator_width = 32 local name_width = 180 local status_width = 112 local x = window_margin local y = window_margin -- Draw headers local warning_header = self:addBevelPanel(x, window_margin, indicator_width, row_height, col_highlight) :setLabel("!"):setTooltip(_S.tooltip.machine_menu.header.smoking) x = x + indicator_width local assigned_header = self:addBevelPanel(x, window_margin, indicator_width, row_height, col_highlight) :setLabel("X"):setTooltip(_S.tooltip.machine_menu.header.assigned) x = x + indicator_width local name_header = self:addBevelPanel(x, window_margin, name_width, row_height, col_highlight) :setLabel(_S.machine_menu.machine) :makeButton(0, 0, name_width, row_height, nil, self.setSortByName) :setTooltip(_S.tooltip.machine_menu.header.machine) x = x + name_width local status_panel_header = self:addBevelPanel(x, window_margin, status_width, row_height, col_highlight) :setLabel(_S.machine_menu.status) :makeButton(0, 0, status_width, row_height, nil, self.setSortByRatio) :setTooltip(_S.tooltip.machine_menu.header.status .. " " .. _S.tooltip.machine_menu.sort) x = x + status_width local remaining_strength_panel_header = self:addBevelPanel(x, window_margin, indicator_width, row_height, col_highlight) :makeButton(0, 0, indicator_width, row_height, nil, self.setSortByRemain) :setTooltip(_S.tooltip.machine_menu.header.remaining_strength .. " " .. _S.tooltip.machine_menu.sort) x = x + indicator_width local strength_panel_header = self:addBevelPanel(x, window_margin, indicator_width, row_height, col_highlight) :makeButton(0, 0, indicator_width, row_height, nil, self.setSortByStrength) :setTooltip(_S.tooltip.machine_menu.header.total_strength .. " " .. _S.tooltip.machine_menu.sort) -- Draw rows for i = 1, rows, 1 do x = window_margin local warning_panel = self:addBevelPanel(x, y + row_height, indicator_width, row_height, col_warning_button) local warning_button = warning_panel:makeButton(0, 0, indicator_width, row_height, nil, warning_factory(i)) :setTooltip(_S.tooltip.machine_menu.smoking) x = x + indicator_width local assigned_panel = self:addBevelPanel(x, y + row_height, indicator_width, row_height, col_assigned_button) local assigned_button = assigned_panel:makeButton(0, 0, indicator_width, row_height, nil, assigned_factory(i)) :setTooltip(_S.tooltip.machine_menu.assigned) x = x + indicator_width local name_panel = self:addBevelPanel(x, y + row_height, 180, row_height, col_bg) local name_button = name_panel:makeButton(0, 0, 200, row_height, nil, name_factory(i)) :setTooltip(_S.tooltip.machine_menu.machine) x = x + name_width local status_panel = self:addBevelPanel(x, y + row_height, status_width, row_height, col_bg) :setTooltip(_S.tooltip.machine_window.status) x = x + status_width local remaining_strength_panel = self:addBevelPanel(x, y + row_height, indicator_width, row_height, col_bg) :setTooltip(_S.tooltip.machine_menu.remaining_strength) x = x + indicator_width local strength_panel = self:addBevelPanel(x, y + row_height, indicator_width, row_height, col_bg) :setTooltip(_S.tooltip.machine_menu.total_strength) table.insert(self.list_table, { warning_header = warning_header, assigned_header = assigned_header, name_header = name_header, status_panel_header = status_panel_header, remaining_strength_panel_header = remaining_strength_panel_header, strength_panel_header = strength_panel_header, assigned_panel = assigned_panel, assigned_button = assigned_button, warning_panel = warning_panel, warning_button = warning_button, name_panel = name_panel, name_button = name_button, status_panel = status_panel, remaining_strength_panel = remaining_strength_panel, strength_panel = strength_panel, }) y = y + row_height end -- Add scrollbar self.scrollbar = self:addColourPanel(446, window_margin + 30, 24, row_height * rows, col_shadow.red, col_shadow.green, col_shadow.blue) :makeScrollbar(col_bg, scrollbarMovedCallback, 1, 1, 10, 1) -- Add close button self:addPanel(337, 446, 15):makeButton(0, 0, 24, 24, 338, self.close) :setTooltip(_S.tooltip.machine_menu.close) end end function UIMachineMenu:scrollToEntity(entity) local x, y = self.ui.app.map:WorldToScreen(entity.tile_x, entity.tile_y) self.ui:scrollMapTo(x, y) self.ui:addWindow(UIMachine(self.ui, entity, entity:getRoom())) end function UIMachineMenu:machineButtonClicked(index) local machine_index = index + self.scrollbar.value - 1 local machine = self.machine_list[machine_index] if machine and machine.object then if class.is(machine.object, Room) then self:scrollToRoom(machine.object) elseif class.is(machine.object, Entity) then self:scrollToEntity(machine.object) end end end function UIMachineMenu:warningButtonClicked(index) local ui = self.ui local machine_index = index + self.scrollbar.value - 1 local machine = self.machine_list[machine_index] local room = machine.object:getRoom() if machine and room.is_active then local UIMachine = UIMachine(ui, machine.object, room) UIMachine:replaceMachine() ui:addWindow(UIMachine) end end function UIMachineMenu:assignedHandymanButtonClicked(index) local ui = self.ui local machine_index = index + self.scrollbar.value - 1 local machine = self.machine_list[machine_index] local room = machine.object:getRoom() if machine and machine.assigned_to and room.is_active then self.ui:addWindow(UIStaff(ui, machine.assigned_to)) end end function UIMachineMenu:setSortByName() self.sort_method = "sortByName" end function UIMachineMenu:setSortByRemain() self.sort_method = "sortByRemain" end function UIMachineMenu:setSortByRatio() self.sort_method = "sortByRatio" end function UIMachineMenu:setSortByStrength() self.sort_method = "sortByStrength" end function UIMachineMenu:sortMachines(method) if method == "sortByRemain" then table.sort(self.machine_list, function(a, b) if a.remaining_strength == nil or b.remaining_strength == nil then return false end return a.remaining_strength < b.remaining_strength end) elseif method == "sortByStrength" then table.sort(self.machine_list, function(a, b) if a.strength == nil or b.strength == nil then return false end return a.strength < b.strength end) elseif method == "sortByRatio" then table.sort(self.machine_list, function(a, b) if a.percentage_strength == nil or b.percentage_strength == nil then return false end if a.smoking and not b.smoking then return true elseif not a.smoking and b.smoking then return false end if (a.smoking or b.smoking) and (a.remaining_strength ~= b.remaining_strength) then return a.remaining_strength < b.remaining_strength end return a.percentage_strength < b.percentage_strength end) elseif method == "sortByName" then table.sort(self.machine_list, function(a, b) return a.object.object_type.name < b.object.object_type.name end) end end function UIMachineMenu:update() local function machineForList(machine, assigned_handyman) local remaining_uses_count = machine:getRemainingUses() local percentage_strength = math.floor((remaining_uses_count / machine.strength) * 100) local is_assigned = assigned_handyman ~= nil local result = { object = machine, smoking = machine:isBreaking(), assigned = is_assigned, assigned_to = assigned_handyman, name = machine.object_type.name, strength = machine.strength, remaining_strength = remaining_uses_count, percentage_strength = percentage_strength, total_usage = machine.total_usage } return result end self.machine_list = {} local world = self.ui.app.world local dispatcher = world.dispatcher local machines = world:getPlayerMachines() for _, machine in ipairs(machines) do if not machine:getRoom().crashed then local assigned_handyman local repair_call = dispatcher.call_queue[machine] if repair_call then local repair = repair_call["repair"] if repair and repair.assigned then assigned_handyman = repair.assigned end end local machine_for_list = machineForList(machine, assigned_handyman) table.insert(self.machine_list, machine_for_list) end end self:sortMachines(self.sort_method) self.scrollbar:setRange(1, math.max(1, #self.machine_list), self.rows_shown, self.scrollbar.value) self:scrollbarMoved() end function UIMachineMenu:draw(canvas, x, y) UIResizable.draw(self, canvas, x, y) local panel_sprites = self.ui.app.gfx:loadSpriteTable("QData", "Req03V", true) local bitmap_sprites = self.ui.app.gfx:loadSpriteTable("Bitmap", "aux_ui", true) local scroll_pos = self.scrollbar.value local s = TheApp.config.ui_scale x, y = self.x * s, self.y * s bitmap_sprites:draw(canvas, 25, x + 374 * s, y + (window_margin + 2) * s, { scaleFactor = s }) bitmap_sprites:draw(canvas, 26, x + 407 * s, y + (window_margin + 2) * s, { scaleFactor = s }) for i = 1, self.rows_shown, 1 do local machine = self.machine_list[i + scroll_pos - 1] if machine then bitmap_sprites:draw(canvas, 24, x + 264 * s, y + (window_margin + row_height * i + 3) * s, { scaleFactor = s }) local status_bar_width = math.floor((1 - machine.object.times_used/machine.object.strength) * 40 * s + 0.5) if status_bar_width ~= 0 then for dx = 0, status_bar_width - 1 do panel_sprites:draw(canvas, 352, x + 293 * s + dx, y + (window_margin + row_height * i + math.floor(row_height/2) - 2) * s, { scaleFactor = s }) end end end end end function UIMachineMenu:scrollbarMoved() local scroll_pos = self.scrollbar.value for i = 1, self.rows_shown, 1 do local machine = self.machine_list[i + scroll_pos - 1] local row = self.list_table[i] if machine then row.assigned_panel:setColour(machine.assigned and col_assigned_button or col_shaded_assigned_button) row.assigned_panel:setLabel(machine.assigned and "X" or "") row.assigned_button:enable(machine.assigned and true or false) row.warning_panel:setLabel(machine.smoking and "!" or "") row.warning_panel:setColour(machine.smoking and col_warning_button or col_bg) row.warning_button:enable(true) row.name_panel:setLabel(" " .. machine.name, nil, "left") row.name_panel:setColour(col_bg) row.name_button:enable(true) row.status_panel:setColour(col_bg) row.remaining_strength_panel:setLabel(tostring(machine.remaining_strength)) row.remaining_strength_panel:setColour(col_bg) row.strength_panel:setLabel(tostring(machine.strength)) row.strength_panel:setColour(col_bg) else row.warning_panel:setColour(col_disabled) row.assigned_panel:setColour(col_disabled_assigned_button) row.assigned_panel:setLabel("") row.name_panel:setLabel("") row.assigned_button:enable(false) row.warning_button:enable(false) row.name_button:enable(false) row.status_panel:setColour(col_disabled) row.remaining_strength_panel:setColour(col_disabled) row.name_panel:setColour(col_disabled) row.strength_panel:setColour(col_disabled) end end end function UIMachineMenu:onTick() -- menu updates not every tick tick_timer = tick_timer - 1 if tick_timer <= 0 then tick_timer = ticks_to_skip self:update() end end function UIMachineMenu:close() Window.close(self) end function UIMachineMenu:afterLoad(old, new) if old < 236 then self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) end if old < 242 then self:close() end Window.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/main_menu.lua000066400000000000000000000164261522247547500240130ustar00rootroot00000000000000--[[ Copyright (c) 2010-2014 Manuel "Roujin" Wolf, Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Class for main menu window. class "UIMainMenu" (UIResizable) ---@type UIMainMenu local UIMainMenu = _G["UIMainMenu"] local col_bg = { red = 154, green = 146, blue = 198, } local label_ttf_col = { -- slightly translucent red = 255, green = 255, blue = 255, alpha = 192, } local menu_item_height = 40 function UIMainMenu:UIMainMenu(ui) -- First define all menu entries with a label, a callback and a tooltip. -- That way we can call the UIResizable constructor with a good height argument. local menu_items = { {_S.main_menu.new_game, self.buttonNewGame, _S.tooltip.main_menu.new_game}, {_S.main_menu.custom_campaign, self.buttonCustomCampaign, _S.tooltip.main_menu.custom_campaign}, {_S.main_menu.custom_level, self.buttonCustomGame, _S.tooltip.main_menu.custom_level}, {_S.main_menu.continue, self.buttonContinueGame, _S.tooltip.main_menu.continue}, {_S.main_menu.load_game, self.buttonLoadGame, _S.tooltip.main_menu.load_game}, {_S.main_menu.options, self.buttonOptions, _S.tooltip.main_menu.options}, {_S.main_menu.map_edit, self.buttonMapEdit, _S.tooltip.main_menu.map_edit}, {_S.main_menu.exit, self.buttonExit, _S.tooltip.main_menu.exit} } self.no_menu_entries = #menu_items --! Work out the size of non-false items in array --!param items (list) what is to be checked --!return calculated size local function computeSize(items) local size = 0 for _, item in pairs(items) do size = item and (size + 1) or size end return size end -- Work out the menu's height, giving extra space for the version information local line_height = 15 local top_padding = 20 local release_string = TheApp:getReleaseString() local num_lines = computeSize({TheApp:isUpdateCheckDisabledByConfig(), TheApp.config.debug, release_string}) -- see UIMainMenu:draw for how these are used local bottom_text_height = (line_height * num_lines) self.height = top_padding + ((menu_item_height + 10) * #menu_items) + bottom_text_height self:UIResizable(ui, 200, self.height, col_bg) self.esc_closes = false self.modal_class = "main menu" self.on_top = true self:setDefaultPosition(0.5, 0.25) -- The main menu also shows the version number of the player's copy of the game. self.label_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, {ttf_color = label_ttf_col, apply_ui_scale = true}) self.release_string = release_string -- individual buttons self.default_button_sound = "selectx.wav" local next_y = 20 for _, item in ipairs(menu_items) do next_y = self:addMenuItem(item[1], item[2], item[3], next_y) end end --! Adds a single menu item to the main menu. --!param label (string) The (localized) label to use for the new button. --!param callback (function) Function to call when the user clicks the button. --!param tooltip (string) Text to show when the player hovers over the button. --!param y_pos (integer) Y-position from where to add the menu item. --!return (integer) Y-position below which more items can be added. -- This function has added a menu item between y_pos and the return value. function UIMainMenu:addMenuItem(label, callback, tooltip, y_pos) self:addBevelPanel(20, y_pos, 160, menu_item_height, col_bg) :setLabel(label):makeButton(0, 0, 160, menu_item_height, nil, callback) :setTooltip(tooltip) return y_pos + menu_item_height + 10 end function UIMainMenu:getSavedWindowPositionName() return "main_menu_group" end function UIMainMenu:draw(canvas, x, y) UIResizable.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y -- The following strings are drawn in reverse order local ly = y + self.height * s - (15 * s) -- Move the version string up a bit if showing check for updates disabled warning. if TheApp:isUpdateCheckDisabledByConfig() then self.label_font:draw(canvas, _S.main_menu.updates_off, x + 5 * s, ly, 190, 0, "right") ly = ly - (15 * s) end -- Move if also showing the savegame version. if TheApp.config.debug then self.label_font:draw(canvas, _S.main_menu.savegame_version .. TheApp.savegame_version, x + 5 * s, ly, 190, 0, "right") ly = ly - (15 * s) end self.label_font:draw(canvas, _S.main_menu.version .. self.release_string, x + 5 * s, ly, 190, 0, "right") end function UIMainMenu:onTick() TheApp:idle() end function UIMainMenu:onMouseMove(x, y, dx, dy) TheApp:resetIdle() UIResizable.onMouseMove(self, x, y, dx, dy) end function UIMainMenu:buttonNewGame() local window = UINewGame(self.ui) self.ui:addWindow(window) end function UIMainMenu:buttonCustomCampaign() if TheApp.using_demo_files then self.ui:addWindow(UIInformation(self.ui, {_S.information.no_custom_game_in_demo})) else local window = UICustomCampaign(self.ui) self.ui:addWindow(window) end end function UIMainMenu:buttonCustomGame() if TheApp.using_demo_files then self.ui:addWindow(UIInformation(self.ui, {_S.information.no_custom_game_in_demo})) else local window = UICustomGame(self.ui) self.ui:addWindow(window) end end function UIMainMenu:buttonContinueGame() local most_recent_saved_game = FileTreeNode(self.ui.app.savegame_dir):getMostRecentlyModifiedChildFile(".%.sav$") if most_recent_saved_game then local path = most_recent_saved_game.path local app = self.ui.app local status, err = pcall(app.load, app, path) if not status then err = _S.errors.load_prefix .. err print(err) app.ui:addWindow(UIInformation(self.ui, {err})) end else local error = _S.errors.load_prefix .. _S.errors.no_games_to_contine print(error) self.ui.app.ui:addWindow(UIInformation(self.ui, {error})) end end function UIMainMenu:buttonLoadGame() local window = UILoadGame(self.ui, "menu") self.ui:addWindow(window) end function UIMainMenu:buttonOptions() local window = UIOptions(self.ui, "menu") self.ui:addWindow(window) end function UIMainMenu:buttonMapEdit() self.ui.app:mapEdit() end function UIMainMenu:buttonExit() self.ui:addWindow(UIConfirmDialog(self.ui, false, _S.tooltip.main_menu.quit, --[[persistable:quit_confirm_dialog]]function() self.ui.app:exit() end )) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/map_editor.lua000066400000000000000000001743671522247547500241770ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Copyright (c) 2014 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "UIMapEditor" (UIResizable) ---@type UIMapEditor local UIMapEditor = _G["UIMapEditor"] local col_bg = {red = 154, green = 146, blue = 198} -- {{{ Editor sprites. -- Unfortunately, current map file format does not support flags like FLIP_H. -- Commented this out until flags can be stored in the file created by the map editor. -- -- High byte sprite constants. -- local FLIP_H = DrawFlags.FlipHorizontal * 256 -- Each variable below is an array of multi-tile sprites, which is translated -- to a list of buttons at a page. -- The generic form of a multi-tile sprite (see the helipad for an example) is -- a table {sprites = .., height = .., objects = ..}. The 'height' defines the -- height of the displayed button (between 1 and MAX_HEIGHT). The 'sprites' is -- an array of single sprites, a table of {sprite = ..., xpos = ..., ypos = -- ..., type = ...}. It defines which sprite to display at which relative -- position. Positions run from 1 upward, sprites are numbers 0..255 (the low -- byte). -- The high byte is reserved for adding DrawFlags flags in the future, eg FLIP_H. -- -- The type defines where the sprite is stored. 'north' and 'west' mean north -- respectively west wall. 'floor' means it is a floor sprite. 'hospital' is -- also a floor sprite but it also states that the tile is part of the -- hospital. Similarly, 'road' is a floor sprite outside the hospital that can -- be walked on. Finally, the 'objects' defines the position of objects in the -- shape. At this time, only an entrance door can be placed. -- -- As there are a lot of single tile sprite buttons, there is a simplified -- form to specify those (and they get expanded to the generic multi-tile -- sprite form automagically). The short form for a single sprite button is a -- table {sprite = ..., height = ..., type = ...}, where all the fields have -- the same meaning as described above for the generic form. -- -- {{{ Foliage sprites. local foliage = { {sprite=192, height=3, type="floor"}, -- Regular European shrub 1 {sprite=193, height=2, type="floor"}, -- Ground plant, green 1 {sprite=194, height=2, type="floor"}, -- Bush {sprite=195, height=3, type="floor"}, -- Ground plant, red flowers {sprite=196, height=3, type="floor"}, -- Shrub {sprite=197, height=4, type="floor"}, -- Dead tree (very high) {sprite=198, height=2, type="floor"}, -- Low ground plant {sprite=199, height=3, type="floor"}, -- Regular European shrub 2 {sprite=200, height=2, type="floor"}, -- Ground plant, flowers {sprite=201, height=1, type="floor"}, -- Flowerbed East/South {sprite=202, height=1, type="floor"}, -- Flowerbed West/South {sprite=203, height=1, type="floor"}, -- Flowerbed West/North {sprite=204, height=1, type="floor"}, -- Flowerbed North/South } -- }}} -- {{{ Hedge row sprites. local hedgerow={ {sprite=176, height=2, type="floor"}, -- Hedge West-North {sprite=177, height=2, type="floor"}, -- Hedge West-South {sprite=178, height=2, type="floor"}, -- Hedge East-South {sprite=179, height=2, type="floor"}, -- Hedge East-North {sprite=180, height=2, type="floor"}, -- Hedge West-East {sprite=181, height=2, type="floor"}, -- Hedge North-South {sprite=182, height=2, type="floor"}, -- Hedge East-West-South {sprite=183, height=2, type="floor"}, -- Hedge East-West-North {sprite=184, height=2, type="floor"}, -- Hedge West-North-South {sprite=185, height=2, type="floor"}, -- Hedge East-North-South {sprite=186, height=2, type="floor"}, -- Hedge East-West-North-South {sprite=187, height=2, type="floor"}, -- Hedge North-South with shrub {sprite=188, height=2, type="floor"}, -- Hedge North-South with holes {sprite=189, height=2, type="floor"}, -- Hedge East-West with shrub 1 {sprite=190, height=2, type="floor"}, -- Hedge East-West with holes {sprite=191, height=2, type="floor"}, -- Hedge East-West with shrub 2 } -- }}} -- {{{ Pond sprites. local pond={ {sprite= 60, height=1, type="floor"}, -- South edge of a pond {sprite= 65, height=1, type="floor"}, -- West edge of a pond {sprite= 68, height=1, type="floor"}, -- North edge of a pond {sprite= 78, height=1, type="floor"}, -- East edge of a pond {sprite= 59, height=1, type="floor"}, -- South-West corner of a pond {sprite= 77, height=1, type="floor"}, -- North-East corner of a pond {sprite= 79, height=1, type="floor"}, -- South-East corner of a pond {sprite= 80, height=1, type="floor"}, -- North-West corner of a pond {sprite= 69, height=1, type="floor"}, -- Water tile of a pond {sprite= 71, height=1, type="floor"}, -- Water tile of a pond with water lilies {sprite= 72, height=2, type="floor"}, -- Water tile of a pond with water plant 1 {sprite= 73, height=2, type="floor"} -- Water tile of a pond with water plant 2 } -- }}} -- {{{ Inside floor sprites. local inside={ {sprite= 17, height=1, type="hospital"}, -- Dark blue/purple carpet tile {sprite= 70, height=1, type="hospital"}, -- Duplicate of 017 {sprite= 18, height=1, type="hospital"}, -- Red-Blue floor tile 1 {sprite= 19, height=1, type="hospital"}, -- Red-Blue floor tile 2 {sprite= 23, height=1, type="hospital"}, -- Red-Blue floor tile 3 {sprite= 16, height=1, type="hospital"}, -- Dark big checker pattern tile {sprite= 21, height=1, type="hospital"}, -- Small checker pattern tile {sprite= 22, height=1, type="hospital"}, -- Big checker pattern tile {sprite= 66, height=1, type="hospital"}, -- Floor tile with light center {sprite= 76, height=1, type="hospital"}, -- Floor tile with light center and corners {sprite= 20, height=1, type="hospital"} -- Wooden floor tile } -- }}} -- {{{ Outside floor sprites. local outside={ {sprite= 1, height=1, type="floor"}, -- Grass tile 1 {sprite= 2, height=1, type="floor"}, -- Grass tile 2 {sprite= 3, height=1, type="floor"}, -- Grass tile 3 {sprite= 4, height=1, type="road" }, -- Light concrete tile {sprite= 15, height=1, type="road" }, -- Concrete tile {sprite= 5, height=1, type="road" }, -- Dark concrete tile {sprite= 6, height=1, type="floor"}, -- Grass tile with South-East concrete corner {sprite= 8, height=1, type="floor"}, -- Grass tile with South-West concrete corner {sprite= 10, height=1, type="floor"}, -- Grass tile with North-West concrete corner {sprite= 12, height=1, type="floor"}, -- Grass tile with North-East concrete corner {sprite= 7, height=1, type="floor"}, -- Grass tile with South concrete edge {sprite= 9, height=1, type="floor"}, -- Grass tile with West concrete edge {sprite= 11, height=1, type="floor"}, -- Grass tile with North concrete edge {sprite= 13, height=1, type="floor"}, -- Grass tile with East concrete edge {sprite= 14, height=1, type="floor"}, -- Concrete tile with North-East grass corner {sprite= 61, height=1, type="floor"}, -- Concrete tile with South-West grass corner {sprite= 62, height=1, type="floor"}, -- Concrete tile with South-East grass corner {sprite= 63, height=1, type="floor"}, -- Concrete tile with North-West grass corner {sprite= 64, height=1, type="floor"}, -- Grass tile with rocks {sprite=205, height=1, type="floor"}, -- Fully cracked garden marble tile {sprite=206, height=1, type="floor"}, -- Broken garden marble tile {sprite=207, height=1, type="floor"}, -- Partially cracked garden marble tile {sprite=208, height=1, type="floor"}, -- Garden marble tile } -- }}} -- {{{ Road floor sprites. local road_spr = { {sprite= 41, height=1, type="road"}, -- Road with white discontinuous line North-South {sprite= 45, height=1, type="road"}, -- Road with double yellow lines at West edge merging at South --{sprite= 46, height=1, type="road"}, -- Duplicate of 45 {sprite= 42, height=1, type="road"}, -- Road with double yellow lines at West with black orthogonal lines {sprite= 43, height=1, type="road"}, -- Road with double yellow lines at West edge {sprite= 44, height=1, type="road"}, -- Road with double yellow lines at West edge merging at North {sprite= 47, height=1, type="road"}, -- Road with red line at East linked to yellow discontinuous line at South {sprite= 49, height=1, type="road"}, -- Road with red braking line at the East pointing to the West {sprite= 48, height=1, type="road"}, -- Road with red line at East linked to yellow discontinuous line at North {sprite= 53, height=1, type="road"}, -- Road with double yellow lines at East edge merging at the south {sprite= 52, height=1, type="road"}, -- Road with double yellow lines at East with black orthogonal lines --{sprite= 54, height=1, type="road"}, -- Duplicate of 52 {sprite= 51, height=1, type="road"}, -- Road with double yellow lines at East edge {sprite= 57, height=1, type="road"}, -- Road with red line at West linked to yellow discontinuous line at South {sprite= 55, height=1, type="road"}, -- Road with red braking line at the West pointing to the East {sprite= 56, height=1, type="road"}, -- Road with red line at West linked to yellow discontinuous line at North {sprite= 50, height=1, type="road"}, -- Road with grey edge at the East {sprite= 58, height=1, type="road"}, -- Road with grey edge at the West } local road = {} -- All sprites get horizontally flipped as well, for roads running north-south. for _, spr in ipairs(road_spr) do road[#road + 1] = spr -- Unfortunately, current map file format does not support flags like FLIP_H. -- Commented this out until flags can be stored in the file created by the map editor. -- road[#road + 1] = {sprite = spr.sprite + FLIP_H, height = spr.height, type = spr.type} end -- }}} -- {{{ North wall layout and floor sprites. local north_wall = { {sprites = { {sprite=159, xpos=1, ypos=1, type="north"}, -- External doorway North outside left part {sprite=157, xpos=3, ypos=1, type="north"}, -- External doorway North outside right part }, height = 3, objects = {{type="entrance_door", xpos=2, ypos=1, direction="north"}}, }, {sprites = { {sprite=163, xpos=1, ypos=1, type="north"}, -- External doorway North inside left part {sprite=161, xpos=3, ypos=1, type="north"}, -- External doorway North inside right part }, height = 3, objects = {{type="entrance_door", xpos=2, ypos=1, direction="north"}}, }, {sprite=114, height=3, type="north"}, -- External North wall outside {sprite=116, height=3, type="north"}, -- External North wall outside left part of window {sprite=120, height=3, type="north"}, -- External North wall with window {sprite=118, height=3, type="north"}, -- External North wall outside right part of window {sprite=122, height=3, type="north"}, -- External North wall inside {sprite=124, height=3, type="north"}, -- External North wall inside left part of window {sprite=126, height=3, type="north"}, -- External North wall inside right part of window -- Unfortunately, current map file format does not support flags like FLIP_H. -- Commented this out until flags can be stored in the file created by the map editor. -- {sprite=209 + FLIP_H, height=3, type="north"}, -- Lamp post pointing East -- {sprite=210 + FLIP_H, height=3, type="north"}, -- Lamp post pointing West } -- }}} -- {{{ West wall layout and floor sprites. local west_wall = { {sprites = { {sprite=158, xpos=1, ypos=3, type="west"}, -- External doorway West outside left part {sprite=160, xpos=1, ypos=1, type="west"}, -- External doorway West outside right part }, height = 3, objects = {{type="entrance_door", xpos=1, ypos=2, direction="west"}}, }, {sprites = { {sprite=162, xpos=1, ypos=3, type="west"}, -- External doorway West inside left part {sprite=164, xpos=1, ypos=1, type="west"}, -- External doorway West inside right part }, height = 3, objects = {{type="entrance_door", xpos=1, ypos=2, direction="west"}}, }, {sprite=115, height=3, type="west"}, -- External West wall outside {sprite=119, height=3, type="west"}, -- External West wall outside left part of window -- No external west-wall with just glass. 121 (below) isn't finished, 120 (north above) has different lighting -- {sprite=121, height=3, type="west"}, -- External West wall with window glass (UNFINISHED?) {sprite=117, height=3, type="west"}, -- External West wall outside right part of window {sprite=123, height=3, type="west"}, -- External West wall inside {sprite=127, height=3, type="west"}, -- External West wall inside left part of window {sprite=125, height=3, type="west"}, -- External West wall inside right part of window {sprite=210, height=3, type="west"}, -- Lamp post pointing South {sprite=209, height=3, type="west"}, -- Lamp post pointing North } -- }}} -- {{{ Helipad layout. local helipad = { {sprites = { -- Dark tiles around the edges. {sprite=5, xpos=1, ypos=1, type="road"}, {sprite=5, xpos=2, ypos=1, type="road"}, {sprite=5, xpos=3, ypos=1, type="road"}, {sprite=5, xpos=4, ypos=1, type="road"}, {sprite=5, xpos=5, ypos=1, type="road"}, {sprite=5, xpos=1, ypos=2, type="road"}, {sprite=5, xpos=1, ypos=3, type="road"}, {sprite=5, xpos=1, ypos=4, type="road"}, {sprite=5, xpos=1, ypos=5, type="road"}, {sprite=5, xpos=2, ypos=5, type="road"}, {sprite=5, xpos=3, ypos=5, type="road"}, {sprite=5, xpos=4, ypos=5, type="road"}, {sprite=5, xpos=5, ypos=5, type="road"}, {sprite=5, xpos=5, ypos=2, type="road"}, {sprite=5, xpos=5, ypos=3, type="road"}, {sprite=5, xpos=5, ypos=4, type="road"}, -- Dark tiles in the 'H' {sprite=5, xpos=3, ypos=2, type="road"}, {sprite=5, xpos=3, ypos=4, type="road"}, -- Light tiles in the 'H' {sprite=4, xpos=2, ypos=2, type="road"}, {sprite=4, xpos=2, ypos=3, type="road"}, {sprite=4, xpos=2, ypos=4, type="road"}, {sprite=4, xpos=4, ypos=2, type="road"}, {sprite=4, xpos=4, ypos=3, type="road"}, {sprite=4, xpos=4, ypos=4, type="road"}, {sprite=4, xpos=3, ypos=3, type="road"} }, height=5 } } -- }}} local MAX_HEIGHT = 5 -- Biggest height in above sprites local PAGES = { {name = _S.map_editor_window.pages.inside, spr_data = inside}, {name = _S.map_editor_window.pages.outside, spr_data = outside}, {name = _S.map_editor_window.pages.foliage, spr_data = foliage}, {name = _S.map_editor_window.pages.hedgerow, spr_data = hedgerow}, {name = _S.map_editor_window.pages.pond, spr_data = pond}, {name = _S.map_editor_window.pages.road, spr_data = road}, {name = _S.map_editor_window.pages.north_wall, spr_data = north_wall}, {name = _S.map_editor_window.pages.west_wall, spr_data = west_wall}, {name = _S.map_editor_window.pages.helipad, spr_data = helipad} } -- {{{ Functions --! Normalize the editor sprite in the table to always have a 'sprites' field, as well as have sizes and a column width (for the display). --!param (table) Sprite from the 'PAGES[#].spr_data' table. --!return (table 'sprites', 'xsize', 'ysize', 'width', and 'height') local function normalizeEditSprite(spr) assert(MAX_HEIGHT >= spr.height) -- Verify that sprite fits in the maximum height. if spr.sprites == nil then -- {sprite = xxx, height = y} case return {sprites = {{sprite = spr.sprite, xpos = 1, ypos = 1, type=spr.type}}, xsize = 1, ysize = 1, type = spr.type, xorigin = 0, yorigin = 0, width = 2, height = spr.height} else -- {sprites={...}, height=y} case, compute sizes, and width local xsize = 1 local ysize = 1 local spr_type = nil for _, sp in ipairs(spr.sprites) do if sp.xpos > xsize then xsize = sp.xpos end if sp.ypos > ysize then ysize = sp.ypos end assert(not spr_type or spr_type == sp.type) -- Ensure all sprites have the same type. spr_type = sp.type end -- Position to draw (1,1) sprite, by default (0,0) -- Since sprites are drawn top to bottom, yorigin never changes. local xorigin = (ysize - 1) * 32 local yorigin = 0 local width = ysize - 1 + xsize - 1 + 2 if width < ysize then width = ysize end return {sprites = spr.sprites, xsize = xsize, ysize = ysize, type = spr_type, xorigin = xorigin, yorigin = yorigin, width = width, height = spr.height, objects = spr.objects} end end --!Decide the highest possible placement for 'width' columns. --!param cols (list int) First available position in each column, higher number is lower. --!param width (int) Required width as number of columns. --!return (int, int) Starting column and placement height. local function getHighestRowcol(cols, width) local best = cols[1] + 100000 local best_col = 0 for left = 1, #cols - width + 1 do -- Try starting in each column. if cols[left] < best then -- First column is potentially better. local top = cols[left] for i = 1, width - 1 do if top < cols[left + i] then top = cols[left + i] if top >= best then break end -- i-th column breaks improvement. end end if top < best then best = top best_col = left end end end return best_col, best end --! Layout buttons from a tab of editor sprites. --!param esprs (list) Editor sprite tab to layout. --!param num_cols (int) Number of columns available in the layout. --!return (list) Sprites with button positions in ('column', 'row'). local function layoutButtons(esprs, num_cols) local buttons = {} local cols = {} for i = 1, num_cols do cols[i] = 1 end for hgt = MAX_HEIGHT, 1, -1 do -- Fit highest sprites first. for _, espr in ipairs(esprs) do espr = normalizeEditSprite(espr) if espr.height == hgt then local spr_col, spr_height = getHighestRowcol(cols, espr.width) buttons[#buttons + 1] = espr buttons[#buttons].column = spr_col buttons[#buttons].row = spr_height for i = spr_col, spr_col + espr.width - 1 do -- Update height in the affected columns assert(cols[i] <= spr_height) cols[i] = spr_height + hgt end end end end return buttons end -- }}} -- }}} local EDITOR_WINDOW_XSIZE = 368 local EDITOR_WINDOW_YSIZE = 586 local EDITOR_COLUMNS = 10 -- Number of columns for the sprite buttons local EDITOR_COLUMN_SIZE = 32 + 3 -- Width of a sprite button in pixels local EDITOR_ROW_SIZE = 32 + 4 -- Height of a sprite button in pixels function UIMapEditor:UIMapEditor(ui) self:UIResizable(ui, EDITOR_WINDOW_XSIZE, EDITOR_WINDOW_YSIZE, col_bg) self.resizable = false self.ui = ui self.panel_sprites = self.ui.app.map.blocks -- For when there are multiple things which could be sampled from a tile, -- keep track of the index of which one was most recently sampled, so that -- next time a different one is sampled. self.sample_i = 1 -- Cursor data in the main world view. -- States: -- - disabled: Just show the cursor. -- - grid: Show an area with red rectangles (requires 'sprite' to exist). -- - left: Dragging with left mouse button is down, (leftx, lefty) defines the tile. -- - right: Dragging with right mouse button down, (rightx, righty) defines the tile. -- - both: Dragging with both left and right mouse buttons down (initiated with left -- button), (rightx, righty) defines the tile where right button got pressed. -- - delete: Like grid, with a 1x1 cursor for selecting tiles to remove walls from. -- - delete-left: Left mouse button drag of 'delete' mode. -- - parcel: Like grid, with a 1x1 cursor for selecting tiles to set the parcel. -- - parcel-left: Left mouse button drag of 'parcel' mode. -- - paste: Like grid, with a copy_xsize, copy_ysize cursor to show where to paste. -- - paste-left: Left mouse button drag of 'paste' mode. Pasting is limited to dragged -- area (which can be smaller than (copy_xsize, copy_ysize) area). -- - camera: Like grid, with a 1x1 cursor for selecting tile to set the camera -- - heliport: Like grid, with a 1x1 cursor for selecting tile to set the heliport -- -- Notes: -- - The code switches back to 'grid' or 'disabled' without waiting for all -- buttons getting released. -- - Nothing gets added in the world until you let go of a mouse button. -- - Drag detection ('is_drag') is used to allow cancel if user moves back -- to the (leftx, lefty) position. -- - The sprite decides how you can drag (none, north-south, east-west, area) -- self.cursor = { state = "disabled", -- State of the cursor. sprite = nil, -- Selected sprite from the menu. is_drag = false, -- Whether a true drag (at least 2 cells covered) has been detected. parcel = nil, -- Parcel number to set in 'parcel' / 'parcel-left' mode. camera = nil, -- Camera player to set in 'camera' mode. heliport = nil, -- Heliport player to set in 'heliport' mode. xpos = 0, -- Horizontal tile position of the mouse cursor. ypos = 0, -- Vertical tile position of the mouse cursor. leftx = 0, -- Horizontal tile position where the left-click was first detected. lefty = 0, -- Vertical tile position where the left-click was first detected. rightx = 0, -- Horizontal tile position where the right-click was first detected. righty = 0, -- Vertical tile position where the right-click was first detected. copy_data = nil, -- Data of the copied area, 'nil' if no data available. copy_xsize = 0, -- Horizontal size of the copy area. copy_ysize = 0, -- Vertical size of the copy area. } -- {{{ Creation of buttons. -- A sprite table containing a "cell outline" sprite self.cell_outline = TheApp.gfx:loadSpriteTable("Bitmap", "aux_ui", true) self:addBevelPanel(0, 0, EDITOR_WINDOW_XSIZE, EDITOR_WINDOW_YSIZE, col_bg) -- Background of the window. self.block_buttons = {} -- List of table {button = .., panel = ..} self.selected_block = nil -- Page of of block buttons currently displayed/selected. -- Make the page selection buttons local XSTART = 10 local XSIZE = 109 local YSIZE = 20 local ypos = 10 local xpos = XSTART self.page_selectbuttons = {} for _, page in ipairs(PAGES) do local name = page.name if xpos + XSIZE >= EDITOR_WINDOW_XSIZE then -- Update ypos (and xpos) if necessary. xpos = XSTART ypos = ypos + YSIZE + 2 end local p = self:addBevelPanel(xpos, ypos, XSIZE, YSIZE, col_bg) :setLabel(name):makeToggleButton(0, 0, XSIZE, YSIZE, nil, --[[persistable:map_editor_spritepage_clicked]] function() self:pageClicked(name) end) local spr_buttons = layoutButtons(page.spr_data, EDITOR_COLUMNS) local page_data = {button = p, name = name, sprite_buttons = spr_buttons} self.page_selectbuttons[#self.page_selectbuttons + 1] = page_data xpos = xpos + XSIZE + 10 end -- Make the bottom text buttons xpos = XSTART ypos = 420 local text_pages = { {name = "paste", text = _S.map_editor_window.pages.paste}, {name = "delete_wall", text = _S.map_editor_window.pages.delete_wall}, {name = "camera_1", text = _S.map_editor_window.pages.camera_1, camera = 1}, {name = "camera_2", text = _S.map_editor_window.pages.camera_2, camera = 2}, {name = "camera_3", text = _S.map_editor_window.pages.camera_3, camera = 3}, {name = "camera_4", text = _S.map_editor_window.pages.camera_4, camera = 4}, {name = "heliport_1", text = _S.map_editor_window.pages.heliport_1, heliport = 1}, {name = "heliport_2", text = _S.map_editor_window.pages.heliport_2, heliport = 2}, {name = "heliport_3", text = _S.map_editor_window.pages.heliport_3, heliport = 3}, {name = "heliport_4", text = _S.map_editor_window.pages.heliport_4, heliport = 4}} for i = 0, 9 do table.insert(text_pages, { name = "parcel_" .. i, text = _S.map_editor_window.pages.parcel:format(i), parcel = i}) end for _, page in ipairs(text_pages) do if xpos + XSIZE >= EDITOR_WINDOW_XSIZE then -- Update ypos (and xpos) if necessary. xpos = XSTART ypos = ypos + YSIZE + 2 end local name = page.name local p = self:addBevelPanel(xpos, ypos, XSIZE, YSIZE, col_bg) :setLabel(page.text):makeToggleButton(0, 0, XSIZE, YSIZE, nil, --[[persistable:map_editor_textpage_clicked]] function() self:pageClicked(name) end) local page_data = {button = p, name = name, data = page} self.page_selectbuttons[#self.page_selectbuttons + 1] = page_data xpos = xpos + XSIZE + 10 end -- Custom parcel number input local col_textbox = { red = 0, green = 0, blue = 0, } local function parcel_num() self.cursor.state = "parcel" self.cursor.sprite = nil self.cursor.is_drag = false self.cursor.parcel = self.parcel_input.text TheApp.map:loadDebugText("parcel") -- Raise all numbered parcel buttons for _, table in pairs(self.page_selectbuttons) do if table.name:find("parcel") and table.button.toggled then table.button:toggle() end end end self.parcel_input = self:addBevelPanel(xpos, ypos, XSIZE, YSIZE, col_textbox) :setLabel(_S.map_editor_window.pages.set_parcel) :setTooltip(_S.map_editor_window.pages.set_parcel_tooltip) :makeTextbox(--[[persistable:mapeditor_set_parcel_number_callback]] function() parcel_num() end) :allowedInput("numbers"):characterLimit(2):setText("10") self:pageClicked("") -- Initialize all above 'page_selectbuttons'. -- }}} self:setPosition(0.1, 0.1) ui:addKeyHandler("ingame_loadMenu", self, self.openLoad) -- load saved maps menu ui:addKeyHandler("ingame_saveMenu", self, self.openSave) -- load save map menu ui:addKeyHandler("ingame_restartLevel", self, self.restart) -- restart the map editor ui:addKeyHandler("ingame_quitLevel", self, self.quit) -- quit the map editor and return to main menu ui:addKeyHandler("ingame_jukebox", self, self.openJukebox) -- open jukebox end function UIMapEditor:openLoad() self.ui:addWindow(UILoadMap(self.ui, "map")) end function UIMapEditor:openSave() self.ui:addWindow(UISaveMap(self.ui)) end function UIMapEditor:restart() self.ui:restartMapEditor() end function UIMapEditor:quit() self.ui:quit(true) end function UIMapEditor:openJukebox() if self.ui.app.config.audio then self.ui:addWindow(UIJukebox(self.ui.app)) end end function UIMapEditor:setPlayerCount(count) local map = self.ui.app.map map:setPlayerCount(count) if self.cursor.state == "camera" or self.cursor.state == "heliport" then map:updateDebugOverlay() end end -- {{{ function UIMapEditor:pageClicked(name) --! Update how the button is displayed based on the provided new state. --!param button (Panel) to update. --!param action (str) New state of the button. local function updateToggleButton(button, action) if action == "raised" then button:enable(true) button:setVisible(true) button:setToggleState(false) elseif action == "lowered" then button:enable(true) button:setVisible(true) button:setToggleState(true) elseif action == "invisible" then button:enable(false) button:setVisible(false) elseif action == "disabled" then button:enable(false) button:setVisible(true) button:setToggleState(false) else assert(false) -- Should never arrive here end end --! Callback function of the page select buttons. --!param name (string) Name of the clicked page. function UIMapEditor:pageClicked(name) local map = self.ui.app.map if name == "paste" then -- Make 'paste' button non-selectable if there is no data to paste. name = self.cursor.copy_data and name or "" else self.cursor.copy_data = nil -- Delete copied area when selecting another item. end for _, pb in ipairs(self.page_selectbuttons) do if pb.name == name then map:clearDebugText() self.cursor.state = name == "paste" and "paste" or "disabled" updateToggleButton(pb.button, "lowered") if pb.sprite_buttons then -- 'sprite' button, display sprites to select from, by the user. self:buildSpriteButtons(pb.sprite_buttons) else -- 'text' button, switch cursor to the right mode directly. self:buildSpriteButtons({}) if pb.name == "delete_wall" then self.cursor.state = "delete" self.cursor.sprite = nil self.cursor.is_drag = false elseif pb.name == "paste" then self.cursor.state = "paste" self.cursor.sprite = nil self.cursor.is_drag = false elseif pb.data.camera then self.cursor.state = "camera" self.cursor.spirte = nil self.cursor.is_drag = false self.cursor.camera = pb.data.camera map:loadDebugText("camera") elseif pb.data.heliport then self.cursor.state = "heliport" self.cursor.spirte = nil self.cursor.is_drag = false self.cursor.heliport = pb.data.heliport map:loadDebugText("heliport") else -- Should be a parcel button. assert(pb.data.parcel) self.cursor.state = "parcel" self.cursor.sprite = nil self.cursor.is_drag = false self.cursor.parcel = pb.data.parcel map:loadDebugText("parcel") end end elseif pb.name == "paste" and not self.cursor.copy_data then updateToggleButton(pb.button, "disabled") else updateToggleButton(pb.button, "raised") end end end --! Do layout of the sprite buttons of the page. function UIMapEditor:buildSpriteButtons(buttons) self.selected_block = buttons local XBASE = 10 local YBASE = 83 local number = 1 for _, button in ipairs(buttons) do local xpos = XBASE + (button.column - 1) * EDITOR_COLUMN_SIZE local ypos = YBASE + (button.row - 1) * EDITOR_ROW_SIZE local width = EDITOR_COLUMN_SIZE * button.width - 2 local height = EDITOR_ROW_SIZE * button.height - 2 local pb = self.block_buttons[number] if pb == nil then -- New sprite button needed local bbutton_number = number local bbutton = self:addBevelPanel(xpos, ypos, width, height, col_bg) bbutton = bbutton:makeToggleButton(0, 0, width, height, nil, --[[persistable:map_editor_block_clicked]] function() self:blockClicked(bbutton_number) end) updateToggleButton(bbutton, "raised") local bpanel = self:addPanel(number, xpos+1, ypos+1, width-2, height-2) bpanel.visible = true bpanel.editor_button = button bpanel.custom_draw = --[[persistable:map_editor_draw_block_sprite]] function(panel, canvas, x, y) local s = TheApp.config.ui_scale x = x + panel.x * s + panel.editor_button.xorigin * s y = y + panel.y * s + panel.editor_button.yorigin * s for _, spr in ipairs(panel.editor_button.sprites) do local xspr = x + (spr.xpos - spr.ypos) * 32 * s local yspr = y + (spr.xpos + spr.ypos) * 16 * s - 32 * s panel.window.panel_sprites:draw(canvas, spr.sprite % 256, xspr, yspr, { flags = math.floor(spr.sprite / 256), scaleFactor = s }) end end self.block_buttons[#self.block_buttons + 1] = {button=bbutton, panel=bpanel} else -- Reposition & resize existing sprite button local bbutton = pb.button bbutton:setPosition(xpos, ypos) bbutton:setSize(width, height) updateToggleButton(bbutton, "raised") local bpanel = pb.panel bpanel.editor_button = button bpanel:setPosition(xpos+1, ypos+1) bpanel:setSize(width-2, height-2) bpanel:setVisible(true) end number = number + 1 end -- Make remaining buttons and panels invisible. while true do local pb = self.block_buttons[number] if pb == nil then break end updateToggleButton(pb.button, "invisible") pb.panel.visible = false number = number + 1 end end -- }}} --! Should the given type of sprite be considered a floor sprite? --!param sprite_type (string) Type of sprite. --!return The (boolean) type is a floor sprite type. local function isFloorSpriteType(sprite_type) return sprite_type == "floor" or sprite_type == "hospital" or sprite_type == "road" end --! Construct cell flags for a given kind of floor sprite. --!param sprite_type (string) Type of sprite. local function makeCellFlags(sprite_type) if sprite_type == "floor" then return {buildable=false, passable=false, hospital=false} elseif sprite_type == "road" then return {buildable=false, passable=true, hospital=false} elseif sprite_type == "hospital" then return {buildable=true, passable=true, hospital=true} end assert(false) -- Should never get here end --! Get the tile area covered by two points. --!param x1 (jnt) Horizontal coordinate of the first point. --!param y1 (int) Vertical coordinate of the first point. --!param x2 (jnt) Horizontal coordinate of the second point. --!param y2 (int) Vertical coordinate of the second point. --!return (4 int) Smallest horizontal, smallest vertical, largest horizontal, -- and largest vertical coordinate. local function getCoveredArea(x1, y1, x2, y2) local minx, maxx, miny, maxy if x1 < x2 then minx, maxx = x1, x2 else minx, maxx = x2, x1 end if y1 < y2 then miny, maxy = y1, y2 else miny, maxy = y2, y1 end return minx, miny, maxx, maxy end --! Get the size of an area covered by two points. --!param x1 (jnt) Horizontal coordinate of the first point. --!param y1 (int) Vertical coordinate of the first point. --!param x2 (jnt) Horizontal coordinate of the second point. --!param y2 (int) Vertical coordinate of the second point. --!return (2 int) Horizontal and vertical size of the area. local function getAreaSize(x1, y1, x2, y2) local minx, miny, maxx, maxy = getCoveredArea(x1, y1, x2, y2) return maxx - minx + 1, maxy - miny + 1 end --! Test whether (px, py) is inside the given area. --!param px (int) Horizontal coordinate of the point to test. --!param py (int) Vertical coordinate of the point to test. --!param minx (jnt) Smallest horizontal coordinate of the area. --!param miny (int) Smallest vertical coordinate of the area. --!param maxx (jnt) Largest horizontal coordinate of the area. --!param maxy (int) Largest vertical coordinate of the area. --!return (bool) Whether the point is inside the given area. local function isPointInside(px, py, minx, miny, maxx, maxy) return px >= minx and px <= maxx and py >= miny and py <= maxy end --! Compute x/y pairs to draw the cursor sprite over the area. --!param minx (int) First horizontal position to draw the sprite. --!param miny (int) First vertical position to draw the sprite. --!param maxx (int) Last horizontal position to draw the sprite. --!param maxy (int) Last vertical position to draw the sprite. --!param dx (nil or int) Horizontal step size of drawing, usually same size as -- the width of the sprite being drawn, default is 1. --!param dy (nil or int) Vertical step size of drawing, usually same size as -- the height of the sprite being drawn, default is 1. --!return (array of (xpos, ypos) pairs) Points to draw the sprite cursor. local function computeCursorSpriteAtArea(minx, miny, maxx, maxy, dx, dy) local coords = {} if not dx or not dy then dx, dy = 1, 1 end assert(dx > 0 and dy > 0) local xbase, ybase xbase = minx while xbase <= maxx do ybase = miny while ybase <= maxy do coords[#coords + 1] = {xpos = xbase, ypos = ybase} ybase = ybase + dy end xbase = xbase + dx end return coords end --! Compute the positions to draw the selected sprite in the world. --!return (array of {xpos, ypos} tables) Coordinates to draw the selected sprite. function UIMapEditor:getDrawPoints() if self.cursor.state == "disabled" then return {} -- Nothing to compute elseif self.cursor.state == "grid" then local bx, by = self:areaOnWorld(self.cursor.xpos, self.cursor.ypos, self.cursor.sprite.xsize, self.cursor.sprite.ysize) return {{xpos = bx, ypos = by}} elseif self.cursor.state == "delete" or self.cursor.state == "parcel" or self.cursor.state == "camera" or self.cursor.state == "heliport" or self.cursor.state == "paste" then return {{xpos = self.cursor.xpos, ypos = self.cursor.ypos}} elseif self.cursor.state == "left" then -- Simple drag (left button only). local minx, miny, maxx, maxy = getCoveredArea(self.cursor.leftx, self.cursor.lefty, self.cursor.xpos, self.cursor.ypos) if minx ~= maxx or miny ~= maxy or not self.cursor.is_drag then -- Just 1 tile without starting a drag, or an area of at least two tiles. return computeCursorSpriteAtArea(minx, miny, maxx, maxy, self.cursor.sprite.xsize, self.cursor.sprite.ysize) end elseif self.cursor.state == "delete-left" or self.cursor.state == "parcel-left" or self.cursor.state == "paste-left" then local minx, miny, maxx, maxy = getCoveredArea(self.cursor.leftx, self.cursor.lefty, self.cursor.xpos, self.cursor.ypos) if minx ~= maxx or miny ~= maxy or not self.cursor.is_drag then -- Just 1 tile without starting a drag, or an area of at least two tiles. return computeCursorSpriteAtArea(minx, miny, maxx, maxy, 1, 1) end elseif self.cursor.state == "right" then local minx, miny, maxx, maxy = getCoveredArea(self.cursor.rightx, self.cursor.righty, self.cursor.xpos, self.cursor.ypos) if minx ~= maxx or miny ~= maxy or not self.cursor.is_drag then -- Just 1 tile without starting a drag, or an area of at least two tiles. return computeCursorSpriteAtArea(minx, miny, maxx, maxy, 1, 1) end elseif self.cursor.state == "both" then -- left+right drag (left initiated). -- Area is defined from first to last point, 'right' point must be inside the area. local minx, miny, maxx, maxy = getCoveredArea(self.cursor.leftx, self.cursor.lefty, self.cursor.xpos, self.cursor.ypos) if minx ~= maxx or miny ~= maxy then -- Otherwise area is 1x1, either due to 'cancel', or never enlarged. if isPointInside(self.cursor.rightx, self.cursor.righty, minx, miny, maxx, maxy) then -- Get block size between left and right click. local dx, dy = getAreaSize(self.cursor.leftx, self.cursor.lefty, self.cursor.rightx, self.cursor.righty) if dx > 1 or dy > 1 then -- Otherwise, left and right click is in the same tile. return computeCursorSpriteAtArea(minx, miny, maxx, maxy, dx, dy) end end end end return {} end --! Fill an area of tiles with red cursor rectangles. Caller must make sure that -- the area is completely inside the world boundaries. --!param canvas Canvas to draw at. --!param xpos (int) Horizontal base tile position (of the top corner). --!param ypos (int) Vertical base tile position (of the top corner). --!param xsize (int) Horizontal size in tiles. --!param ysize (int) Vertical size in tiles. function UIMapEditor:fillCursorArea(canvas, xpos, ypos, xsize, ysize) local ui = self.ui local zoom = ui.zoom_factor for x = 0, xsize - 1 do for y = 0, ysize - 1 do local xcoord, ycoord = ui:WorldToScreen(xpos + x, ypos + y) self.cell_outline:draw(canvas, 2, math.floor(xcoord / zoom) - 32, math.floor(ycoord / zoom)) end end end --! Draw the display (map editor window, and main world display) --!param canvas (draw object) Canvas to draw on. function UIMapEditor:draw(canvas, ...) local ui = self.ui -- Draw the red grid for the selected tile. local coords = self:getDrawPoints() if #coords ~= 0 then -- Get size of the cursor. local xsize, ysize if self.cursor.state == "delete" or self.cursor.state == "delete-left" or self.cursor.state == "parcel" or self.cursor.state == "parcel-left" or self.cursor.state == "heliport" or self.cursor.state == "camera" or self.cursor.state == "paste-left" or self.cursor.state == "right" then xsize, ysize = 1, 1 elseif self.cursor.state == "paste" then xsize, ysize = self.cursor.copy_xsize, self.cursor.copy_ysize else xsize, ysize = self.cursor.sprite.xsize, self.cursor.sprite.ysize end -- Draw cursors. local scaled = canvas:scale(ui.zoom_factor) for _, coord in ipairs(coords) do local xpos, ypos = coord.xpos, coord.ypos self:fillCursorArea(canvas, xpos, ypos, xsize, ysize) end if scaled then canvas:scale(1) end end UIResizable.draw(self, canvas, ...) end -- {{{ several useful functions --! User clicked at a block (a button with a sprite). --!param num Index block number. function UIMapEditor:blockClicked(num) -- Reset toggle of other block buttons. for bnum = 1, #self.block_buttons do if bnum ~= num then self.block_buttons[bnum].button:setToggleState(false) end end if self.block_buttons[num].button.toggled then local sprite = self.selected_block[num] self.cursor.state = "grid" self.cursor.sprite = {xsize = sprite.xsize, ysize = sprite.ysize, sprites = sprite.sprites, objects = sprite.objects, type = sprite.type} else self.cursor.state = "disabled" self.cursor.sprite = nil end end --! Convert mouse coordinates to tile coordinates in the world. --!param mx (int) Mouse X screen coordinate. --!param my (int) Mouse y screen coordinate. --!return (int, int) Tile x,y coordinates, limited to the map. function UIMapEditor:mouseToWorld(mx, my) local ui = self.ui local s = TheApp.config.ui_scale local wxr, wyr = ui:ScreenToWorld(self.x * s + mx, self.y * s + my) local wx = math.floor(wxr) local wy = math.floor(wyr) return self:areaOnWorld(wx, wy, 1, 1) end --! Stay on world with the entire area, by moving the base position (if needed). --!param xpos (int) Horizontal base position. --!param ypos (int) Vertical base position. --!param xsize (int) Horizontal size. --!param ysize (int) Vertical size. --!return (int, int) Allowed base position function UIMapEditor:areaOnWorld(xpos, ypos, xsize, ysize) local map = self.ui.app.map xpos = math.min(math.max(xpos, 1), map.width - xsize + 1) ypos = math.min(math.max(ypos, 1), map.height - ysize + 1) return xpos, ypos end -- }}} --! Retrieve what drag capabilities are allowed by the currently selected world cursor sprite. --!return (string) "none"=not draggable, "east-west"=dragging only in east-west direction, -- "north-south"=dragging only in north-south direction, "area"=dragging in both directions. function UIMapEditor:getCursorDragCapabilities() -- Parcel and delete modes have unrestricted movement. if self.cursor.state == "delete" or self.cursor.state == "delete-left" or self.cursor.state == "parcel" or self.cursor.state == "parcel-left" or self.cursor.state == "paste" or self.cursor.state == "paste-left" or self.cursor.state == "right" then return "area" end -- No sprite, or not a 1x1 size -> not draggable. if not self.cursor.sprite then return "none" end if self.cursor.sprite.xsize ~= 1 or self.cursor.sprite.ysize ~= 1 then return "none" end if isFloorSpriteType(self.cursor.sprite.type) then return "area" end if self.cursor.sprite.type == "north" then return "east-west" end if self.cursor.sprite.type == "west" then return "north-south" end assert(false) -- Should never get here end --! The user moved the mouse! --!param x (int) New horizontal position of the mouse at the screen. --!param y (int) New vertical position of the mouse at the screen. --!param dx (int) Horizontal shift in position of the mouse at the screen. --!param dy (int) Vertical shift in position of the mouse at the screen. function UIMapEditor:onMouseMove(x, y, dx, dy) local repaint = UIResizable.onMouseMove(self, x, y, dx, dy) -- Update the stored state of cursor position, and trigger a repaint as the -- cell outline sprite should track the cursor position. local wx, wy = self:mouseToWorld(x, y) if wx ~= self.cursor.xpos or wy ~= self.cursor.ypos then if self.cursor.state == "disabled" then self.cursor.xpos = wx -- Nothing is displayed, just keep track of the position. self.cursor.ypos = wy return repaint elseif self.cursor.state == "grid" or self.cursor.state == "delete" or self.cursor.state == "parcel" or self.cursor.state == "paste" or self.cursor.state == "heliport" or self.cursor.state == "camera" or self.cursor.state == "right" then self.cursor.xpos = wx -- Allow arbitrary movement. self.cursor.ypos = wy return true else -- Dragging in some mode. self.cursor.is_drag = true -- Crossing a tile boundary implies 'real' dragging. -- Update wx and wy according to drag capabilities. local cap = self:getCursorDragCapabilities() if cap == "north-south" then wx = self.cursor.leftx elseif cap == "east-west" then wy = self.cursor.lefty elseif cap == "none" then wx, wy = self.cursor.leftx, self.cursor.lefty -- Block all movement. end repaint = repaint or self.cursor.xpos ~= wx or self.cursor.ypos ~= wy self.cursor.xpos = wx self.cursor.ypos = wy return repaint end end end --! Mouse button got pressed. --!param button (string) Mouse button being pressed. --!param xpos (int) Horizontal position of the mouse at the time of the mouse button press. --!param ypos (int) Vertical position of the mouse at the time of the mouse button press. --!return (bool) Whether to repaint the display. function UIMapEditor:onMouseDown(button, xpos, ypos) if UIResizable.onMouseDown(self, button, xpos, ypos) then -- Button in this window. return true end if self:hitTest(xpos, ypos) then -- Clicked elsewhere in the window. return true end local repaint = false if self.cursor.state == "disabled" then if button == "right" then self.cursor.state = "right" self.cursor.rightx = self.cursor.xpos self.cursor.righty = self.cursor.ypos end elseif self.cursor.state == "grid" then -- LMB down switches to 'left' if button == "left" then self.cursor.state = "left" self.cursor.leftx = self.cursor.xpos self.cursor.lefty = self.cursor.ypos -- RMB down switches to 'right' elseif button == "right" then self.cursor.state = "right" self.cursor.rightx = self.cursor.xpos self.cursor.righty = self.cursor.ypos end -- Since 'grid' already shows the red rectangles, nothing changes visually. elseif self.cursor.state == "delete" then if button == "left" then self.cursor.state = "delete-left" self.cursor.leftx = self.cursor.xpos self.cursor.lefty = self.cursor.ypos elseif button == "right" then self.cursor.state = "right" self.cursor.rightx = self.cursor.xpos self.cursor.righty = self.cursor.ypos end elseif self.cursor.state == "parcel" then if button == "left" then self.cursor.state = "parcel-left" self.cursor.leftx = self.cursor.xpos self.cursor.lefty = self.cursor.ypos elseif button == "right" then self.cursor.state = "right" self.cursor.rightx = self.cursor.xpos self.cursor.righty = self.cursor.ypos end elseif self.cursor.state == "left" then -- If RMB is down, switch to 'both'. if button == "right" then self.cursor.state = "both" self.cursor.rightx = self.cursor.xpos self.cursor.righty = self.cursor.ypos repaint = true end elseif self.cursor.state == "paste" then if button == "left" then self.cursor.state = "paste-left" self.cursor.leftx = self.cursor.xpos self.cursor.lefty = self.cursor.ypos elseif button == "right" then self.cursor.state = "right" self.cursor.rightx = self.cursor.xpos self.cursor.righty = self.cursor.ypos end -- "both", "delete-left", "parcel-left", "paste-left" do not handle buttons. -- Ignore all down buttons, until RMB is released. end return repaint end --! Add an object to the map. Currently, only "entrance_door" is supported. --!param obj_type (str) Type of object ("entrance_door") --!param xpos (int) Desired x position of the new object. --!param ypos (int) Desired y position of the new object. --!param direction (str) Direction of the new object ("north" or "west"). function UIMapEditor:drawObject(obj_type, xpos, ypos, direction) local world = self.ui.app.world -- TheApp.objects[name].thob -- name = world.object_id_by_thob[thob] -- generic object = world.object_types[object_id] -- instance: world:getObject(x, y, name) if obj_type == "entrance_door" then world:newObject("entrance_right_door", xpos, ypos, direction) if direction == "north" then world:newObject("entrance_left_door", xpos - 1, ypos, direction) else world:newObject("entrance_left_door", xpos, ypos - 1, direction) end end end --! Remove an entrance door from the world. --!param door Entrance door to remove. function UIMapEditor:removeDoor(door) local world = self.ui.app.world world:destroyEntity(door) if door.slave then world:destroyEntity(door.slave) end end --! Collect other objects that use the space needed for the specified new object. -- If they exist, return them or delete them. --!param obj_type (str) Type of object ("entrance_door") --!param xpos (int) Desired x position of the new object. --!param ypos (int) Desired y position of the new object. --!param direction (str) Direction of the new object ("north" or "west"). --!param remove (bool) If set, remove the found objects. --!return (list) The objects that use the space, if they are not removed. function UIMapEditor:checkObjectSpace(obj_type, xpos, ypos, direction, remove) local world = self.ui.app.world local right_door = world.object_types["entrance_right_door"] local left_door = world.object_types["entrance_left_door"] local th = self.ui.app.map.th --! Check single tile for conflicts with other doors. --!param x X position of the tile to check. --!param y Y position of the tile to check. --!return (int, int) position of the conflicting door, or (nil, nil) if no conflict. local function checkTile(x, y) local all_flags = th:getCellFlags(x, y) if not all_flags.thob then return nil, nil elseif all_flags.thob == right_door.thob then return x, y elseif all_flags.thob == left_door.thob then if all_flags.tallWest then return x, y + 1 else return x + 1, y end end return nil, nil end -- While the general intention is 'objects', the only object that can exist -- and is handled here is the entrance door. assert(obj_type == "entrance_door") local doors = {} local x, y = checkTile(xpos, ypos) if x then doors[#doors + 1] = world:getObject(x, y, "entrance_right_door") end local x2, y2 if direction == "north" then x2, y2 = checkTile(xpos - 1, ypos) else x2, y2 = checkTile(xpos, ypos - 1) end if x2 and (x2 ~= x or y2 ~= y) then doors[#doors + 1] = world:getObject(x2, y2, "entrance_right_door") end if remove then for _, door in ipairs(doors) do self:removeDoor(door) end return end return doors end --! Recognize objects in the collection of thob+tallWest entries --!param minx (int) Base horizontal position (objects should be put relative to it). --!param miny (int) Base vertical position (objects should be put relative to it). --!param thobdir_positions (table xy to {thob, tallWest}) Found thobs. --!return (array of {type, xpos, ypos, direction}) Found objects. function UIMapEditor:findObjects(minx, miny, thobdir_positions) local world = self.ui.app.world local right_door = world.object_types["entrance_right_door"] local left_door = world.object_types["entrance_left_door"] local objects = {} -- Found objects ordered by position. -- Look for right entrance door. for xy_right, thobdir_right in pairs(thobdir_positions) do if right_door.thob == thobdir_right.thob then -- Found right door, is there a matching left door? local xy_left = thobdir_right.tallWest and xy_right - 256 or xy_right - 1 local thobdir_left = thobdir_positions[xy_left] if thobdir_left and thobdir_left.thob == left_door.thob and thobdir_left.tallWest == thobdir_right.tallWest then local obj = {type="entrance_door", xpos = xy_right % 256 - minx + 1, ypos = math.floor(xy_right / 256) - miny + 1, direction=thobdir_right.tallWest and "west" or "north"} objects[#objects + 1] = obj end end end return objects end --! Draw the selected sprite at the given coordinates. --!param coords (array or {xpos, ypos} tables) Coordinates to draw the selected sprite. function UIMapEditor:drawCursorSpriteAtArea(coords) local th = self.ui.app.map.th if self.cursor.sprite then for _, coord in ipairs(coords) do local xbase, ybase = coord.xpos, coord.ypos -- Draw the selected sprite. xbase, ybase = self:areaOnWorld(xbase, ybase, self.cursor.sprite.xsize, self.cursor.sprite.ysize) for _, spr in ipairs(self.cursor.sprite.sprites) do local tx, ty = xbase + spr.xpos - 1, ybase + spr.ypos - 1 local f, nw, ww = th:getCell(tx, ty) -- floor, north-wall, west-wall (, ui) if isFloorSpriteType(spr.type) then f = spr.sprite -- Floor sprite gets changed, also modify the cell flags. th:setCellFlags(tx, ty, makeCellFlags(spr.type)) elseif spr.type == "north" then nw = spr.sprite elseif spr.type == "west" then ww = spr.sprite end th:setCell(tx, ty, f, nw, ww, 0) end -- Draw the objects if self.cursor.sprite.objects then for _, obj in ipairs(self.cursor.sprite.objects) do local tx, ty = xbase + obj.xpos - 1, ybase + obj.ypos - 1 self:drawObject(obj.type, tx, ty, obj.direction) end end end end end --! Copy area from the game. --!return (bool) Whether copying succeeded. function UIMapEditor:copyArea() local th = self.ui.app.map.th local minx, miny, maxx, maxy = getCoveredArea(self.cursor.rightx, self.cursor.righty, self.cursor.xpos, self.cursor.ypos) if minx == maxx and miny == maxy and self.is_drag then return false -- Canceled drag end local thobdir_positions = {} -- Copy data. self.cursor.copy_data = {} self.cursor.copy_xsize = maxx - minx + 1 self.cursor.copy_ysize = maxy - miny + 1 local tx, ty tx = minx while tx <= maxx do ty = miny while ty <= maxy do local f, nw, ww = th:getCell(tx, ty) local all_flags = th:getCellFlags(tx, ty) self.cursor.copy_data[#self.cursor.copy_data + 1] = { xpos = tx - minx, ypos = ty - miny, floor = f, north_wall = nw, west_wall = ww, flags = {buildable = all_flags.buildable, passable = all_flags.passable, hospital = all_flags.hospital}, } if all_flags.thob and all_flags.thob ~= 0 then thobdir_positions[tx + 256 * ty] = {thob = all_flags.thob, tallWest = all_flags.tallWest} end ty = ty + 1 end tx = tx + 1 end self.cursor.copy_objects = self:findObjects(minx, miny, thobdir_positions) return true end --! Paste copied area into the destination area (one or more times). function UIMapEditor:pasteArea() local th = self.ui.app.map.th local minx, miny, maxx, maxy -- Fill 'minx', 'miny' with the non-cursor corner. if self.cursor.leftx == self.cursor.xpos and self.cursor.lefty == self.cursor.ypos then if self.is_drag then return -- Canceled paste area. end minx = self.cursor.xpos + self.cursor.copy_xsize - 1 miny = self.cursor.ypos + self.cursor.copy_ysize - 1 minx, miny = self:areaOnWorld(minx, miny, 1, 1) else minx = self.cursor.leftx miny = self.cursor.lefty end minx, miny, maxx, maxy = getCoveredArea(minx, miny, self.cursor.xpos, self.cursor.ypos) -- Copy area in 'sub-areas' of (self.cursor.copy_xsize, self.cursor.copy_ysize). local tx, ty tx = minx while tx <= maxx do ty = miny while ty <= maxy do -- Copy floor and wall sprites, and set the passable/buildable/hospital flag. for _, elm in ipairs(self.cursor.copy_data) do local x, y = tx + elm.xpos, ty + elm.ypos if x <= maxx and y <= maxy then th:setCell(x, y, elm.floor, elm.north_wall, elm.west_wall, 0) th:setCellFlags(x, y, elm.flags) end end -- Make room for the new objects. for _, obj in ipairs(self.cursor.copy_objects) do local x, y = tx + obj.xpos - 1, ty + obj.ypos - 1 if x <= maxx and y <= maxy then self:checkObjectSpace(obj.type, x, y, obj.direction, true) end end -- Paste the objects of the copied area. for _, obj in ipairs(self.cursor.copy_objects) do local x, y = tx + obj.xpos - 1, ty + obj.ypos - 1 if x <= maxx and y <= maxy then self:drawObject(obj.type, x, y, obj.direction) end end ty = ty + self.cursor.copy_ysize end tx = tx + self.cursor.copy_xsize end end --! Delete the walls at the given coordinates. --!param coords (array or {xpos, ypos} tables) Coordinates to remove the walls. function UIMapEditor:deleteWallsAtArea(coords) local th = self.ui.app.map.th local thobdir_positions = {} -- Storage for found objects. for _, coord in ipairs(coords) do local tx, ty = coord.xpos, coord.ypos -- Remove west and north wall. local f = th:getCell(tx, ty) -- floor (, north-wall, west-wall , ui) th:setCell(tx, ty, f, 0, 0, 0) -- No need for map:setCellFlags, as 'passable', 'buildable', and 'hospital' are floor properties. -- Collect thobs, to remove next. local all_flags = th:getCellFlags(tx, ty) if all_flags.thob ~= 0 then thobdir_positions[tx + ty * 256] = {thob=all_flags.thob, tallWest=all_flags.tallWest} end end -- Remove objects from the area. local objects = self:findObjects(1, 1, thobdir_positions) -- Uses absolute position for the objects for _, obj in ipairs(objects) do self:checkObjectSpace(obj.type, obj.xpos, obj.ypos, obj.direction, true) end end --! Set parcel number at the given coordinates. --!param coords (array or {xpos, ypos} tables) Coordinates to set parcel. --!param parcel_num (int) Parcel number to set. function UIMapEditor:setParcelAtArea(coords, parcel_num) local th = self.ui.app.map.th for _, coord in ipairs(coords) do local tx, ty = coord.xpos, coord.ypos th:setCellFlags(tx, ty, {parcelId = parcel_num}) end end --! Mouse button was released. --!param button (string) Mouse button being released. --!param x (int) Horizontal position of the mouse at the time of the mouse button release. --!param y (int) Vertical position of the mouse at the time of the mouse button release. --!return (bool) Whether to repaint the display. function UIMapEditor:onMouseUp(button, x, y) local map = self.ui.app.map if UIResizable.onMouseUp(self, button, x, y) then return true end if self:hitTest(x, y) then return true end --! Get the cursor mode to jump to after ending the drag mode. --!return (string) New cursor mode. local function newState() if self.cursor.sprite then return "grid" else return "disabled" end end local repaint = false if self.cursor.state == "disabled" then return repaint -- Don't care about buttons elseif self.cursor.state == "left" then if button == "left" then -- Simple drag (left button only). self:drawCursorSpriteAtArea(self:getDrawPoints()) self.cursor.state = newState() self.cursor.is_drag = false repaint = true end elseif self.cursor.state == "delete-left" then if button == "left" then self:deleteWallsAtArea(self:getDrawPoints()) self.cursor.state = "delete" self.cursor.is_drag = false repaint = true end elseif self.cursor.state == "parcel-left" then if button == "left" then self:setParcelAtArea(self:getDrawPoints(), self.cursor.parcel) map:updateDebugOverlay() self.cursor.state = "parcel" self.cursor.is_drag = false repaint = true end elseif self.cursor.state == "camera" then if button == "left" then local dp = self:getDrawPoints() map:setCameraTile(dp[1].xpos, dp[1].ypos, self.cursor.camera) map:updateDebugOverlay() repaint = true end elseif self.cursor.state == "heliport" then if button == "left" then local dp = self:getDrawPoints() map:setHeliportTile(dp[1].xpos, dp[1].ypos, self.cursor.heliport) map:updateDebugOverlay() repaint = true end elseif self.cursor.state == "right" then if button == "right" then if self:copyArea() then self.cursor.state = "paste" self:pageClicked("paste") self.cursor.is_drag = false repaint = true else self.cursor.state = "disabled" -- Copy area was canceled. self.cursor.is_drag = false repaint = true end end elseif self.cursor.state == "paste-left" then if button == "left" then self.cursor.state = "paste" self.cursor.is_drag = false repaint = true self:pasteArea() end elseif self.cursor.state == "both" then if button == "left" then -- Only care about left button. -- left+right drag ends. self:drawCursorSpriteAtArea(self:getDrawPoints()) self.cursor.state = newState() self.cursor.is_drag = false repaint = true end -- "grid", "delete", "parcel", and "paste" already assumed no buttons pushed, -- ignore event. end return repaint end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/menu_list_dialog.lua000066400000000000000000000110561522247547500253530ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! A menu list with a scrollbar. Used by load_game, save_game and custom_game. class "UIMenuList" (UIResizable) ---@type UIMenuList local UIMenuList = _G["UIMenuList"] local col_caption = { red = 174, green = 166, blue = 218, } local col_scrollbar = { red = 164, green = 156, blue = 208, } --[[ Constructs the menu list dialog. !param ui (UI) The active ui. !param mode (string) Either "menu" or "game" depending on which mode the game is in right now. !param title (string) The desired title of the dialog. !param items (table) A list of items to include in the list. Each listing should be a table with keys "name" and "tooltip" with the corresponding values. !param num_rows (integer) The number of rows displayed at a given time. Default is 10. !param extra_beside_list (integer) How much space, if any, the dialog will need to the right of the list, e.g. information space. ]] function UIMenuList:UIMenuList(ui, mode, title, items, num_rows, extra_beside_list) self.col_bg = { red = 154, green = 146, blue = 198, } extra_beside_list = extra_beside_list or 0 self:UIResizable(ui, 280 + extra_beside_list, 270, self.col_bg) self.default_button_sound = "selectx.wav" self.items = items self.num_rows = num_rows and num_rows or 10 self.mode = mode self.modal_class = mode == "menu" and "main menu" or "saveload" self.on_top = mode == "menu" self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.25) self:addBevelPanel(20, 10, 240, 20, col_caption):setLabel(title).lowered = true local scrollbar_base = self:addBevelPanel(240, 40, 20, self.num_rows * 17, self.col_bg) scrollbar_base.lowered = true self.scrollbar = scrollbar_base:makeScrollbar(col_scrollbar, --[[persistable:menu_list_scrollbar_callback]] function() self:updateButtons() end, 1, math.max(#items, 1), self.num_rows) local function button_clicked(num) return --[[persistable:menu_list_button]] function(window) window:buttonClicked(num) end end self.item_panels = {} self.item_buttons = {} for num = 1, self.num_rows do self.item_panels[num] = self:addBevelPanel(20, 40 + (num - 1) * 17, 210, 17, self.col_bg):setLabel(nil, nil, "center") self.item_buttons[num] = self.item_panels[num]:makeButton(0, 0, 220, 17, nil, button_clicked(num)) end self:addBevelPanel(20, 220, 240, 40, self.col_bg):setLabel(_S.menu_list_window.back) :makeButton(0, 0, 240, 40, nil, self.buttonBack):setTooltip(_S.tooltip.menu_list_window.back) self:updateButtons() end function UIMenuList:getSavedWindowPositionName() if self.mode == "menu" then return "main_menu_group" end return UIResizable.getSavedWindowPositionName(self) end -- Function stub for dialogs to override. This function is called each time a button is clicked. --!param num (integer) Number of the button pressed. function UIMenuList:buttonClicked(num) end -- Updates buttons when scrolling. function UIMenuList:updateButtons() for num = 1, self.num_rows do local panel = self.item_panels[num] local button = self.item_buttons[num] local item = self.items[num + self.scrollbar.value - 1] if item then panel:setLabel(item.name) panel:setTooltip(item.tooltip) button:enable(true) else panel:setLabel() panel:setTooltip() button:enable(false) end end end function UIMenuList:buttonBack() self:close() end function UIMenuList:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIMainMenu(self.ui)) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/menu_list_dialogs/000077500000000000000000000000001522247547500250305ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/menu_list_dialogs/custom_campaign.lua000066400000000000000000000141671522247547500307150ustar00rootroot00000000000000--[[ Copyright (c) 2014 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Custom Campaign Window class "UICustomCampaign" (UIMenuList) ---@type UICustomCampaign local UICustomCampaign = _G["UICustomCampaign"] local col_scrollbar = { red = 164, green = 156, blue = 208, } local details_width = 280 function UICustomCampaign:UICustomCampaign(ui) self.label_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.unique_names, self.campaigns, self.duplicates = {}, {}, 0 self.paths_table = {ui.app.campaign_dir, ui.app.user_campaign_dir} self:_createCampaignList() local campaign_count = self.duplicates > 0 and 9 or 10 table.sort(self.campaigns, function(a,b) return a.name < b.name end) self:UIMenuList(ui, "menu", _S.custom_campaign_window.caption, self.campaigns, campaign_count, details_width + 40) -- Create a toolbar ready to be used if the description for a level is -- too long to fit local scrollbar_base = self:addBevelPanel(560, 40, 20, self.num_rows*17, self.col_bg) scrollbar_base.lowered = true self.details_scrollbar = scrollbar_base:makeScrollbar(col_scrollbar, --[[persistable:campaign_details_scrollbar_callback]] function() self:updateDescriptionOffset() end, 1, 1, self.num_rows) self.description_offset = 0 -- Warn about hidden duplicate campaigns if self.duplicates > 0 then self:addBevelPanel(100, 195, 400, 20, self.col_bg) :setLabel(_S.custom_campaign_window.duplicates_warning:format(self.duplicates)) :setTooltip(_S.tooltip.custom_campaign_window.duplicates_warning).lowered = true end -- Finally the load button self:addBevelPanel(420, 220, 160, 40, self.col_bg) :setLabel(_S.custom_campaign_window.start_selected_campaign) :makeButton(0, 0, 160, 40, 11, self.buttonStartCampaign) :setTooltip(_S.tooltip.custom_campaign_window.start_selected_campaign) end --! Fetch uniquely named campaigns from given campaign file function UICustomCampaign:_readCampaignFile(folder, file) local full_path = folder .. file local campaign_info, err = TheApp:readCampaignFile(full_path) if not campaign_info then print(err) else local name = campaign_info.name if self.unique_names[name] then print("Custom campaign error: duplicate campaign name in file " .. file .. ". Check the folders " .. table.concat(self.paths_table, ", ")) self.duplicates = self.duplicates + 1 elseif campaign_info.levels and #campaign_info.levels > 0 then self.campaigns[#self.campaigns + 1] = { name = name, tooltip = _S.tooltip.custom_campaign_window.choose_campaign, no_levels = #campaign_info.levels, path = full_path, description = TheApp.strings:getLocalisedText(campaign_info.description, campaign_info.description_table) } self.unique_names[name] = true else print("Warning: Loaded campaign that had no levels specified") end end end --! Search the user and CorsixTH campaign folders and one-level deep subfolders for campaign files. function UICustomCampaign:_createCampaignList() -- Find all campaign files in given folders and their subfolders (one level deep) for _, folder in ipairs(self.paths_table) do for item in lfs.dir(folder) do local path = folder .. item if lfs.attributes(path, "mode") == "directory" and not item:match("^%.") then for file in lfs.dir(path) do -- Check subfolders if file:match("%.campaign$") then self:_readCampaignFile(path .. package.config:sub(1, 1), file) end end elseif path:match("%.campaign$") then self:_readCampaignFile(folder, item) end end end end function UICustomCampaign:updateDescriptionOffset() self.description_offset = self.details_scrollbar.value - 1 end -- Overrides the function in the UIMenuList, choosing what should happen when the player -- clicks a choice in the list. function UICustomCampaign:buttonClicked(num) local item = self.items[num + self.scrollbar.value - 1] self.chosen_item = item if item.description then local _, _, rows = self.label_font:sizeOf(item.description, details_width * TheApp.config.ui_scale) self.details_scrollbar:setRange(1, rows, 13, 1) else self.details_scrollbar:setRange(1, 13, 13, 1) end self.description_offset = 0 end function UICustomCampaign:buttonStartCampaign() if self.chosen_item then TheApp:loadCampaign(self.chosen_item.path) end end function UICustomCampaign:draw(canvas, x, y) UIMenuList.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y if self.chosen_item and self.chosen_item.name then self.label_font:drawWrapped(canvas, self.chosen_item.name, x + 270 * s, y + 10 * s, details_width * s) self.label_font:drawWrapped(canvas, "(levels: " .. self.chosen_item.no_levels .. ")", x + 270 * s, y + 22 * s, details_width * s) end if self.chosen_item and self.chosen_item.description then self.label_font:drawWrapped(canvas, self.chosen_item.description, x + 270 * s, y + 40 * s, details_width * s, nil, 13, self.description_offset) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/menu_list_dialogs/custom_game.lua000066400000000000000000000141201522247547500300340ustar00rootroot00000000000000--[[ Copyright (c) 2010-2014 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Custom Game Window class "UICustomGame" (UIMenuList) ---@type UICustomGame local UICustomGame = _G["UICustomGame"] local col_scrollbar = { red = 164, green = 156, blue = 208, } local details_width = 280 --! Compile metainfo for all of the levels in the given path. --!param path (string) The path that should contain level files. --!param items (table) Table to insert the level metadata into. local findLevelsInDir = function(path, items) for file in lfs.dir(path) do if file:match("%.level$") then local level_info, err = TheApp:readLevelFile(path .. file) if err then print(file, err) elseif level_info.name and level_info.map_file then items[#items + 1] = { name = level_info.name, tooltip = _S.tooltip.custom_game_window.choose_game, map_file = level_info.map_file, level_file = path .. file, intro = level_info.briefing, deprecated_variable_used = level_info.deprecated_variable_used, } end end end end function UICustomGame:UICustomGame(ui) self.label_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) -- Supply the required list of items to UIMenuList -- Create the actual list local items = {} findLevelsInDir(TheApp.level_dir, items) findLevelsInDir(TheApp.user_level_dir, items) self:UIMenuList(ui, "menu", _S.custom_game_window.caption, items, 10, details_width + 40) -- Create a toolbar ready to be used if the description for a level is -- too long to fit local scrollbar_base = self:addBevelPanel(560, 40, 20, self.num_rows*17, self.col_bg) scrollbar_base.lowered = true self.details_scrollbar = scrollbar_base:makeScrollbar(col_scrollbar, --[[persistable:menu_list_details_scrollbar_callback]] function() self:updateDescriptionOffset() end, 1, 1, self.num_rows) self.description_offset = 0 -- Now add the free build button beside the list. if not pcall(function() local palette = ui.app.gfx:getPalette("DrugN01V.pal") self.panel_sprites = ui.app.gfx:loadSpriteTable("QData", "DrugN02V", true, palette) self.border_sprites = ui.app.gfx:loadSpriteTable("Bitmap", "aux_ui", true) end) then self:close() return end self:addBevelPanel(280, 230, 140, 20, self.col_bg):setLabel(_S.custom_game_window.free_build).lowered = true local button = self:addPanel(12, 430, 225):makeToggleButton(0, 0, 29, 29, 11, self.buttonFreebuild) :setTooltip(_S.tooltip.custom_game_window.free_build) if self.ui.app.config.free_build_mode then button:toggle() end -- Finally the load button self:addBevelPanel(480, 220, 100, 40, self.col_bg) :setLabel(_S.custom_game_window.load_selected_level) :makeButton(0, 0, 100, 40, 11, self.buttonLoadLevel) :setTooltip(_S.tooltip.custom_game_window.load_selected_level) end function UICustomGame:updateDescriptionOffset() self.description_offset = self.details_scrollbar.value - 1 end -- Overrides the function in the UIMenuList, choosing what should happen when the player -- clicks a choice in the list. function UICustomGame:buttonClicked(num) local item = self.items[num + self.scrollbar.value - 1] self.chosen_index = num self.chosen_level_name = item.name self.chosen_level_description = item.intro if self.chosen_level_description then local _, y, rows = self.label_font:sizeOf(self.chosen_level_description, details_width * TheApp.config.ui_scale) local row_height = y / rows / TheApp.config.ui_scale self.max_rows_shown = math.floor(self.num_rows * 17 / row_height) self.details_scrollbar:setRange(1, rows, math.min(rows, self.max_rows_shown), 1) else self.details_scrollbar:setRange(1, 1, 1, 1) end self.description_offset = 0 if item.deprecated_variable_used then self.ui:addWindow(UIInformation(self.ui, {_S.warnings.levelfile_variable_is_deprecated:format(item.name)})) end end function UICustomGame:buttonLoadLevel() if self.chosen_index then -- First make sure the map file exists. local item = self.items[self.chosen_index + self.scrollbar.value - 1] local app = self.ui.app local _, errors = app:readMapDataFile(item.map_file) if errors then self.ui:addWindow(UIInformation(self.ui, {errors})) return end app:loadLevel(item.level_file, nil, self.chosen_level_name, item.map_file, self.chosen_level_description, nil, _S.errors.load_level_prefix, nil) end end function UICustomGame:buttonFreebuild(checked) self.ui.app.config.free_build_mode = checked end function UICustomGame:draw(canvas, x, y) UIMenuList.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y if self.chosen_level_name then self.label_font:drawWrapped(canvas, self.chosen_level_name, x + 270 * s, y + 10 * s, details_width * s) end if self.chosen_level_description then self.label_font:drawWrapped(canvas, self.chosen_level_description, x + 270 * s, y + 40 * s, details_width * s, nil, self.max_rows_shown, self.description_offset) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/menu_list_dialogs/make_debug_patient.lua000066400000000000000000000044751522247547500313540ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "UIMakeDebugPatient" (UIMenuList) ---@type UIMakeDebugPatient local UIMakeDebugPatient = _G["UIMakeDebugPatient"] function UIMakeDebugPatient:UIMakeDebugPatient(ui) local items = {} local hosp = TheApp.world:getLocalPlayerHospital() -- Debug patient can be made from any disease available to the level for _, dis in pairs(hosp.disease_casebook) do local disease = dis.disease if not disease.pseudo then items[#items + 1] = { name = disease.name, disease = disease, tooltip = _S.tooltip.debug_patient_window.item:format(disease.name), } end end self:UIMenuList(ui, "game", _S.debug_patient_window.caption, items) end function UIMakeDebugPatient:buttonClicked(num) local item = self.items[num + self.scrollbar.value - 1] local patient = self.ui.app.world:newEntity("Patient", 2, 1) patient.is_debug = true table.insert(self.ui.hospital.debug_patients, patient) patient:setDisease(item.disease) patient.diagnosed = true local x, y = self.ui:ScreenToWorld(self.x + self.width / 2, self.y + self.height + 100) patient:setTile(math.floor(x), math.floor(y)) patient:setMood("idea1", "activate") -- temporary, to make debug patients distinguishable from normal ones patient:setHospital(self.ui.hospital) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/new_game.lua000066400000000000000000000153071522247547500236220ustar00rootroot00000000000000--[[ Copyright (c) 2010 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Class for the difficulty choice window. class "UINewGame" (UIResizable) ---@type UINewGame local UINewGame = _G["UINewGame"] -- Colour definitions local col = { bg = Colours.PanelDefault, button = Colours.PanelDefault, setting = Colours.Setting, setting_active = Colours.SettingActive, scrollbar = Colours.Scrollbar, title = Colours.Title, caption = Colours.Caption, textbox = Colours.Textbox, } function UINewGame:UINewGame(ui) self:UIResizable(ui, 320, 220, col.bg) local app = ui.app self.esc_closes = true self.resizable = false self.modal_class = "main menu" self.on_top = true self:setDefaultPosition(0.5, 0.25) if TheApp.using_demo_files then -- We're using the demo version of TH. Load directly and activate the tutorial. -- Those who use the demo files probably want that anyway. self.start_tutorial = true self:startGame("full") self:close() return end self.border_sprites = app.gfx:loadSpriteTable("Bitmap", "aux_ui", true) self.start_tutorial = false self.difficulty = 1 local avail_diff = { {text = _S.new_game_window.medium, tooltip = { _S.tooltip.new_game_window.medium, nil, 130 }, param = "full"} } if TheApp.fs:fileExists("Levels", "Easy01.SAM") then table.insert(avail_diff, 1, {text = _S.new_game_window.easy, tooltip = { _S.tooltip.new_game_window.easy, nil, 100 }, param = "easy"}) self.difficulty = 2 end if TheApp.fs:fileExists("Levels", "Hard01.SAM") then avail_diff[#avail_diff + 1] = {text = _S.new_game_window.hard, tooltip = { _S.tooltip.new_game_window.hard, nil, 175 }, param = "hard"} end self.available_difficulties = avail_diff self.default_button_sound = "selectx.wav" -- Window parts definition -- Title self:addBevelPanel(80, 10, 160, 20, col.title):setLabel(_S.new_game_window.caption).lowered = true local pname = app.config.player_name self.player_name = (pname and pname:len() > 0) and pname or os.getenv("USER") or os.getenv("USERNAME") or "PLAYER" self:addBevelPanel(20, 45, 140, 30, col.caption, col.bg, col.bg) :setLabel(_S.new_game_window.player_name).lowered = true self.name_textbox = self:addBevelPanel(165, 45, 140, 30, col.textbox, col.bg, col.bg) :setTooltip(_S.tooltip.new_game_window.player_name):setAutoClip(true) :makeTextbox( --[[persistable:new_game_confirm_name]]function() local name = self.name_textbox.text if not name:find("%S") then self.name_textbox:setText(self.player_name) else self.player_name = name self:saveToConfig() end end, --[[persistable:new_game_abort_name]]function() self.name_textbox:setText(self.player_name) end) :allowedInput({"alpha", "numbers", "misc"}):characterLimit(15):setText(self.player_name) -- Difficulty self:addBevelPanel(20, 80, 140, 30, col.caption, col.bg, col.bg) :setLabel(_S.new_game_window.difficulty).lowered = true self:addBevelPanel(165, 80, 140, 30, col.setting, nil, nil, nil, col.setting_active):setLabel(self.available_difficulties[self.difficulty].text) :makeToggleButton(0, 0, 135, 30, nil, self.dropdownDifficulty):setTooltip(_S.tooltip.new_game_window.difficulty) -- Tutorial self:addBevelPanel(20, 115, 140, 30, col.caption, col.bg, col.bg) :setLabel(_S.new_game_window.tutorial).lowered = true self:addBevelPanel(165, 115, 140, 30, col.setting):setLabel(_S.new_game_window.option_off) :makeToggleButton(0, 0, 135, 30, nil, self.buttonTutorial):setTooltip(_S.tooltip.new_game_window.tutorial) -- Start and Cancel self:addBevelPanel(20, 165, 140, 40, col.button):setLabel(_S.new_game_window.start):makeButton(0, 0, 135, 40, nil, self.buttonStart):setTooltip(_S.tooltip.new_game_window.start) self:addBevelPanel(165, 165, 140, 40, col.button):setLabel(_S.new_game_window.cancel):makeButton(0, 0, 135, 40, nil, self.buttonCancel):setTooltip(_S.tooltip.new_game_window.cancel) end function UINewGame:saveToConfig() self.ui.app.config.player_name = self.player_name self.ui.app:saveConfig() end function UINewGame:buttonTutorial(checked, button) self.start_tutorial = checked button.panel_for_sprite:setLabel(checked and _S.new_game_window.option_on or _S.new_game_window.option_off) end function UINewGame:dropdownDifficulty(activate, button) if activate and #self.available_difficulties > 1 then self.difficulty_dropdown = UIDropdown(self.ui, self, button, self.available_difficulties, self.selectDifficulty, col.setting_active, col.scrollbar) self:addWindow(self.difficulty_dropdown) else if self.difficulty_dropdown then self.difficulty_dropdown:close() self.difficulty_dropdown = nil end end end function UINewGame:selectDifficulty(number) self.difficulty = number end function UINewGame:buttonStart() self.name_textbox:confirm() print("starting game with difficulty " .. self.available_difficulties[self.difficulty].param) self:startGame(self.available_difficulties[self.difficulty].param) end function UINewGame:startGame(difficulty) if self.ui.app:loadLevel(1, difficulty, nil, nil, nil, nil, _S.errors.load_level_prefix, nil) and self.ui.app.world then self.ui.app.moviePlayer:playAdvanceMovie(1) -- Initiate campaign progression. The UI above may now have changed. if not TheApp.using_demo_files then TheApp.world.campaign_info = "TH.campaign" end if self.start_tutorial then TheApp.ui.start_tutorial = true TheApp.ui:startTutorial() end end end function UINewGame:buttonCancel() self.name_textbox:confirm() self:close() end function UINewGame:close() UIResizable.close(self) self.ui:addWindow(UIMainMenu(self.ui)) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/options.lua000066400000000000000000000770161522247547500235400ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Options window used in the main menu and ingame. class "UIOptions" (UIResizable) ---@type UIOptions local UIOptions = _G["UIOptions"] -- Constants for most button's width and height local BTN_WIDTH = 135 local BTN_HEIGHT = 20 -- Colour definitions local col = { bg = Colours.PanelDefault, button = Colours.PanelDefault, setting = Colours.Setting, setting_active = Colours.SettingActive, scrollbar = Colours.Scrollbar, disabled = Colours.Disabled, title = Colours.Title, caption = Colours.Caption, textbox = Colours.Textbox, } -- Private functions --- Calculates the Y position for the dialog box in the option menu -- and increments along the current position for the next element -- @return The Y position to place the element at function UIOptions:_getOptionYPos() -- Offset from top of options box local STARTING_Y_POS = 15 -- Y Height is 20 for panel size + 10 for spacing local Y_HEIGHT = 30 -- Multiply by the index so that index=1 is at STARTING_Y_POS local calculated_pos = STARTING_Y_POS + Y_HEIGHT * (self._current_option_index - 1) self._current_option_index = self._current_option_index + 1 return calculated_pos end --! Resets the index to start at the top of a new column, below the title, -- for the Y position calculation. function UIOptions:_startNewColumn() self._current_option_index = 2 self.column_count = self.column_count + 1 end -- Generate predefined resolutions the player can choose from; as well as -- including the custom option at the bottom. Where UI scaling prevents a -- resolution option from being selected, grey it out instead and move to -- the bottom of the list. local available_resolutions = function() local suggested_resolutions = { {text = "640x480 (4:3)", width = 640, height = 480 }, {text = "800x600 (4:3)", width = 800, height = 600 }, {text = "1024x768 (4:3)", width = 1024, height = 768 }, {text = "1280x960 (4:3)", width = 1280, height = 960 }, {text = "1600x1200 (4:3)", width = 1600, height = 1200 }, {text = "1920x1440 (4:3)", width = 1920, height = 1440 }, {text = "1280x1024 (5:4)", width = 1280, height = 1024 }, {text = "1280x720 (16:9)", width = 1280, height = 720 }, {text = "1366x768 (16:9)", width = 1366, height = 768 }, {text = "1600x900 (16:9)", width = 1600, height = 900 }, {text = "1920x1080 (16:9)", width = 1920, height = 1080 }, {text = "2560x1440 (16:9)", width = 2560, height = 1440 }, {text = "3840x2160 (16:9)", width = 3840, height = 2160 }, {text = "1280x800 (16:10)", width = 1280, height = 800 }, {text = "1440x900 (16:10)", width = 1440, height = 900 }, {text = "1680x1050 (16:10)", width = 1680, height = 1050 }, {text = "1920x1200 (16:10)", width = 1920, height = 1200 }, } local s = TheApp.config.ui_scale local enable_list, disable_list = {}, {} for _, opt in ipairs(suggested_resolutions) do local enabled = App.MIN_WINDOW_WIDTH * s <= opt.width and App.MIN_WINDOW_HEIGHT * s <= opt.height opt.disabled = not enabled opt.tooltip = opt.disabled and { _S.tooltip.options_window.resolution_unavailable } if enabled then enable_list[#enable_list + 1] = opt else disable_list[#disable_list + 1] = opt end end local res = enable_list -- Show custom button before disabled items res[#res + 1] = { text = _S.options_window.custom_resolution, custom = true } for i = 1, #disable_list do res[#res + 1] = disable_list[i] end return res end local available_ui_scales = function() local res = {} local s = 1 while s * App.MIN_WINDOW_WIDTH <= TheApp.config.width and s * App.MIN_WINDOW_HEIGHT <= TheApp.config.height do res[#res + 1] = { text = tostring(s * 100) .. '%', scale = s } s = s + 1 end return res end local available_autosave_frequency = function() local options = { { text = _S.autosave_frequency.monthly, value = 1, tooltip = { _S.tooltip.autosave_frequency.monthly } }, { text = _S.autosave_frequency.weekly, value = 2, tooltip = { _S.tooltip.autosave_frequency.weekly } }, { text = _S.autosave_frequency.daily, value = 3, tooltip = { _S.tooltip.autosave_frequency.daily } }, } return options end local current_autosave_frequency = function() local value = TheApp.config.autosave_frequency local options = available_autosave_frequency() for _, option in pairs(options) do if option.value == value then return option.text end end return "" end function UIOptions:UIOptions(ui, mode) local width = 620 local height = 330 self:UIResizable(ui, width, height, col.bg) local app = ui.app self.mode = mode self.modal_class = mode == "menu" and "main menu" or "options" self.on_top = mode == "menu" self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.25) self.default_button_sound = "selectx.wav" self.app = app -- Tracks the current position of the object self._current_option_index = 1 self.column_count = 1 self:checkForAvailableLanguages() -- Window parts definition -- Title local title_y_pos = self:_getOptionYPos() self:addBevelPanel(175, title_y_pos, BTN_WIDTH * 2, 20, col.title):setLabel(_S.options_window.caption) .lowered = true -- Create our setting items. This create a caption/label for the setting -- and the setting itself. We return both elements of the setting (panel -- and the button made from the panel) local function createOptionsElement(option_label, option_tooltip, setting_label, setting_tooltip, setting_colours, callback, toggle_state) local y_pos = self:_getOptionYPos() local x_offset = 300 * (self.column_count - 1) local label_x, setting_x = 20 + x_offset, 165 + x_offset -- Make the setting name panel self:addBevelPanel(label_x, y_pos, BTN_WIDTH, BTN_HEIGHT, col.caption, col.bg, col.bg) :setLabel(option_label) :setTooltip(option_tooltip) .lowered = true local s_col = setting_colours -- Make the setting value panel local setting_panel = self:addBevelPanel(setting_x, y_pos, BTN_WIDTH, BTN_HEIGHT, s_col.bg, s_col.highlight, s_col.shadow, s_col.disabled, s_col.active) :setLabel(setting_label) :setTooltip(setting_tooltip) -- Make the value panel a button local setting_button = setting_panel:makeToggleButton(0, 0, BTN_WIDTH, BTN_HEIGHT, nil, callback) :setToggleState(toggle_state) -- Return the setting value info return setting_panel, setting_button end if app:isUpdateCheckAvailable() then -- Check for updates local updates_string = app.config.check_for_updates and _S.options_window.option_enabled or _S.options_window.option_disabled self.updates_panel, self.updates_button = createOptionsElement( _S.options_window.check_for_updates, _S.tooltip.options_window.check_for_updates, updates_string, nil, { bg = col.setting }, self.buttonUpdates, app.config.check_for_updates) end -- Fullscreen local fullscreen_label = app.fullscreen and _S.options_window.option_on or _S.options_window.option_off self.fullscreen_panel, self.fullscreen_button = createOptionsElement( _S.options_window.fullscreen, _S.tooltip.options_window.fullscreen, fullscreen_label, _S.tooltip.options_window.fullscreen_button, { bg = col.setting }, self.buttonFullscreen, app.fullscreen) -- Screen resolution -- We will set the button label after making up the UI scale option below self.resolution_panel, self.resolution_button = createOptionsElement( _S.options_window.resolution, _S.tooltip.options_window.resolution, "", _S.tooltip.options_window.select_resolution, { bg = col.setting, active = col.setting_active }, self.dropdownResolution, false) -- UI Scale local scale_label = TheApp.config.ui_scale * 100 .. "%" self.scale_ui_panel, self.scale_ui_button = createOptionsElement( _S.options_window.scale_ui, _S.tooltip.options_window.scale_ui, scale_label, nil, { bg = col.setting, active = col.setting_active }, self.dropdownUIScale, false) -- Now set the resolution button label and the ui scale button state self:processWindowResizeEvent() -- Mouse capture local capture_label = app.config.capture_mouse and _S.options_window.option_on or _S.options_window.option_off self.mouse_capture_panel, self.mouse_capture_button = createOptionsElement( _S.options_window.capture_mouse, _S.tooltip.options_window.capture_mouse, capture_label, _S.tooltip.options_window.capture_mouse, { bg = col.setting }, self.buttonMouseCapture, app.config.capture_mouse) -- Language -- Get language name in the language to normalize display. -- If it doesn't exist, display the current config option. local lang = self.app.strings:getLanguageNames(app.config.language) if lang then lang = lang[1] else lang = app.config.language end -- Start a new column of buttons self:_startNewColumn() -- Language setting. self.language_panel, self.language_button = createOptionsElement( _S.options_window.language, _S.tooltip.options_window.language, lang, _S.tooltip.options_window.select_language, { bg = col.setting, active = col.setting_active }, self.dropdownLanguage, false) -- Set scroll speed. local cur_scrollspeed = tostring(self.ui.app.config.scroll_speed) self.scrollspeed_panel, self.scrollspeed_button = createOptionsElement( _S.options_window.scrollspeed, _S.tooltip.options_window.scrollspeed, cur_scrollspeed, _S.tooltip.options_window.scrollspeed, { bg = col.setting, active = col.setting_active }, self.buttonScrollSpeed, false) -- Set shift scroll speed. local cur_shiftscrollspeed = tostring(self.ui.app.config.shift_scroll_speed) self.shift_scrollspeed_panel, self.shift_scrollspeed_button = createOptionsElement( _S.options_window.shift_scrollspeed, _S.tooltip.options_window.shift_scrollspeed, cur_shiftscrollspeed, _S.tooltip.options_window.shift_scrollspeed, { bg = col.setting, active = col.setting_active }, self.buttonShiftScrollSpeed, false) -- Set zoom speed. local cur_zoomspeed = tostring(self.ui.app.config.zoom_speed) self.zoomspeed_panel, self.zoomspeed_button = createOptionsElement( _S.options_window.zoom_speed, _S.tooltip.options_window.zoom_speed, cur_zoomspeed, _S.tooltip.options_window.zoom_speed, { bg = col.setting, active = col.setting_active }, self.buttonZoomSpeed, false) -- Autosave frequency local autosave_frequency_label = current_autosave_frequency() self.autosave_frequency_panel, self.autosave_frequency_button = createOptionsElement( _S.options_window.autosave_frequency, _S.tooltip.options_window.autosave_frequency, autosave_frequency_label, _S.tooltip.options_window.autosave_frequency, { bg = col.setting, active = col.setting_active }, self.dropdownAutosaveFrequency, false) -- The right row is currently uneven with the left row, add an additional spacer -- to avoid an overlap. self:_getOptionYPos() local lower_row_y_pos = self:_getOptionYPos() -- "Customise" button self:addBevelPanel(20, lower_row_y_pos, BTN_WIDTH, 30, col.button):setLabel(_S.options_window.customise) :makeButton(0, 0, BTN_WIDTH, 30, nil, self.buttonCustomise) :setTooltip(_S.tooltip.options_window.customise_button) -- "Folders" button self:addBevelPanel(165, lower_row_y_pos, BTN_WIDTH, 30, col.button):setLabel(_S.options_window.folder) :makeButton(0, 0, BTN_WIDTH, 30, nil, self.buttonFolder) :setTooltip(_S.tooltip.options_window.folder_button) -- "Hotkeys" button self:addBevelPanel(320, lower_row_y_pos, BTN_WIDTH, 30, col.button):setLabel(_S.options_window.hotkey) :makeButton(0, 0, BTN_WIDTH, 30, nil, self.buttonHotkey) :setTooltip(_S.tooltip.options_window.hotkey) -- "Sound Options" button self:addBevelPanel(465, lower_row_y_pos, BTN_WIDTH, 30, col.button):setLabel(_S.options_window.sound) :makeButton(0, 0, BTN_WIDTH, 30, nil, self.buttonSound) :setTooltip(_S.tooltip.options_window.sound) -- "Back" button -- Give some extra space to back button. This is fine as long as it is the last button in the options menu local back_button_y_pos = self:_getOptionYPos() + 20 self:addBevelPanel(175, back_button_y_pos, BTN_WIDTH * 2, 40, col.button):setLabel(_S.options_window.back) :makeButton(0, 0, 280, 40, nil, self.buttonBack) :setTooltip(_S.tooltip.options_window.back) end -- Stubs for backward compatibility local --[[persistable:options_window_language_button]] function language_button() end local --[[persistable:options_width_textbox_reset]] function width_textbox_reset() end local --[[persistable:options_height_textbox_reset]] function height_textbox_reset() end function UIOptions:checkForAvailableLanguages() local app = self.app -- Set up list of available languages local langs, c = {}, 1 for _, lang in pairs(app.strings.languages) do local font = app.strings:getFont(lang) local eng_name = app.strings.languages_english[lang] c = c + 1 -- If freetype support and a unicode font setting are not present then -- languages not supported by the builtin font are named in English and cannot be selected if app.gfx:hasLanguageFont(font) then font = font and app.gfx:loadLanguageFont(font, app.gfx:loadSpriteTable("QData", "Font01V"), { apply_ui_scale = true }) langs[#langs + 1] = { text = lang, name = lang, font = font, disabled = false, tooltip = { _S.tooltip.options_window.language_dropdown_item:format(eng_name) } } else langs[#langs + 1] = { text = eng_name, name = lang, font = self.builtin_font, disabled = true, tooltip = { _S.tooltip.options_window.language_dropdown_no_font } } end end self.available_languages = langs end function UIOptions:dropdownLanguage(activate) if activate then self:dropdownResolution(false) self:dropdownUIScale(false) self:dropdownAutosaveFrequency(false) self.language_dropdown = UIDropdown(self.ui, self, self.language_button, self.available_languages, self.selectLanguage, col.setting_active, col.scrollbar, col.disabled) self:addWindow(self.language_dropdown) else self.language_button:setToggleState(false) if self.language_dropdown then self.language_dropdown:close() self.language_dropdown = nil end end end function UIOptions:selectLanguage(number) local lang = self.app.strings.languages_english[self.available_languages[number].name] local app = self.ui.app app.config.language = (lang) app:initLanguage() app:saveConfig() end function UIOptions:dropdownResolution(activate) if activate then self.available_resolutions = available_resolutions() self:dropdownLanguage(false) self:dropdownUIScale(false) self:dropdownAutosaveFrequency(false) self.resolution_dropdown = UIDropdown(self.ui, self, self.resolution_button, self.available_resolutions, self.selectResolution, col.setting_active, col.scrollbar, col.disabled) self:addWindow(self.resolution_dropdown) else self.resolution_button:setToggleState(false) if self.resolution_dropdown then self.resolution_dropdown:close() self.resolution_dropdown = nil end end end function UIOptions:selectResolution(number) local res = self.available_resolutions[number] local callback = --[[persistable:options_resolution_callback]] function(width, height) if not self.ui:changeResolution(width, height) then local err = {_S.errors.unavailable_screen_size} self.ui:addWindow(UIInformation(self.ui, err)) end end if res.custom then self.resolution_panel:setLabel(self.ui.app.config.width .. "x" .. self.ui.app.config.height) self.ui:addWindow(UIResolution(self.ui, callback)) else callback(res.width, res.height) end end function UIOptions:dropdownUIScale(activate) if activate then self.available_ui_scales = available_ui_scales() self:dropdownLanguage(false) self:dropdownResolution(false) self:dropdownAutosaveFrequency(false) self.scale_ui_dropdown = UIDropdown(self.ui, self, self.scale_ui_button, self.available_ui_scales, self.selectUIScale, col.setting_active, col.scrollbar) self:addWindow(self.scale_ui_dropdown) else self.scale_ui_button:setToggleState(false) if self.scale_ui_dropdown then self.scale_ui_dropdown:close() self.scale_ui_dropdown = nil end end end -- Check if UI scale button should be enabled, and update the tooltip. function UIOptions:updateUIScaleAvailabilityState() local ui_scales_available = #available_ui_scales() > 1 self.scale_ui_button:enable(ui_scales_available) self.scale_ui_button:setTooltip(ui_scales_available and _S.tooltip.options_window.select_ui_scale or _S.tooltip.options_window.ui_scale_unavailable) end function UIOptions:selectUIScale(number) local res = self.available_ui_scales[number] TheApp.config.ui_scale = res.scale TheApp:saveConfig() self.scale_ui_panel:setLabel(res.text) self.ui:changeResolution(TheApp.config.width, TheApp.config.height) TheApp.gfx:onChangeUIScale() end function UIOptions:dropdownAutosaveFrequency(activate) if activate then self:dropdownLanguage(false) self:dropdownResolution(false) self:dropdownUIScale(false) self.autosave_dropdown = UIDropdown(self.ui, self, self.autosave_frequency_button, available_autosave_frequency(), self.selectAutosaveFrequency, col.setting_active, col.scrollbar) self:addWindow(self.autosave_dropdown) else self.autosave_frequency_button:setToggleState(false) if self.autosave_dropdown then self.autosave_dropdown:close() self.autosave_dropdown = nil end end end function UIOptions:selectAutosaveFrequency(number) local option = available_autosave_frequency()[number] self.autosave_frequency_panel:setLabel(option.text) TheApp.config.autosave_frequency = option.value TheApp:saveConfig() end --! Changes check for update setting to on/of function UIOptions:toggleUpdateCheck() self.ui.app.config.check_for_updates = not self.ui.app.config.check_for_updates self.ui.app:saveConfig() end --! Function handles button toggle of checking for updates function UIOptions:buttonUpdates() self:toggleUpdateCheck() local new_updates_string = self.ui.app.config.check_for_updates and _S.options_window.option_enabled or _S.options_window.option_disabled self.updates_panel:setLabel(new_updates_string) end function UIOptions:buttonFullscreen() if not self.ui:toggleFullscreen() then local err = {_S.errors.unavailable_screen_size} self.ui:addWindow(UIInformation(self.ui, err)) self.fullscreen_button:toggle() end self.fullscreen_panel:setLabel(self.ui.app.fullscreen and _S.options_window.option_on or _S.options_window.option_off) end function UIOptions:buttonMouseCapture() local app = self.ui.app app.config.capture_mouse = not app.config.capture_mouse app:saveConfig() self.mouse_capture_button:setLabel(app.config.capture_mouse and _S.options_window.option_on or _S.options_window.option_off) end function UIOptions:buttonCustomise() local window = UICustomise(self.ui, "menu") self.ui:addWindow(window) end function UIOptions:buttonFolder() local window = UIFolder(self.ui, "menu") self.ui:addWindow(window) end function UIOptions:buttonHotkey() local window = UIHotkeyAssign(self.ui, "menu") self.ui:addWindow(window) end function UIOptions:buttonSound() local window = UISoundSettings(self.ui, "menu") self.ui:addWindow(window) end function UIOptions:buttonScrollSpeed() local callback = function(scrollspeed_number) self.scrollspeed_panel : setLabel(tostring(scrollspeed_number)) self.scrollspeed_button : setToggleState(false) end self.ui:addWindow(UIScrollSpeed(self.ui, callback)) end function UIOptions:buttonBack() self:close() end function UIOptions:buttonShiftScrollSpeed() local callback = function(shift_scrollspeed_number) self.shift_scrollspeed_panel : setLabel( tostring(shift_scrollspeed_number) ) self.shift_scrollspeed_button : setToggleState(false) end self.ui:addWindow(UIShiftScrollSpeed(self.ui, callback)) end function UIOptions:buttonBack() self:close() end function UIOptions:buttonZoomSpeed() local callback = function(zoomspeed_number) self.zoomspeed_panel : setLabel( tostring(zoomspeed_number) ) self.zoomspeed_button : setToggleState(false) end self.ui:addWindow( UIZoomSpeed(self.ui, callback) ) end function UIOptions:onChangeResolution() self:processWindowResizeEvent() self:setDefaultPosition(0.5, 0.25) end -- Handle required button changes from a window resize event from the user (via UI -- or adjusting window boundaries) function UIOptions:processWindowResizeEvent() self:updateUIScaleAvailabilityState() self.resolution_panel:setLabel(self.ui.app.config.width .. "x" .. self.ui.app.config.height) end function UIOptions:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIMainMenu(self.ui)) end end --! A custom resolution selection window class "UIResolution" (UIResizable) ---@type UIResolution local UIResolution = _G["UIResolution"] function UIResolution:UIResolution(ui, callback) self:UIResizable(ui, 200, 140, col.bg) local app = ui.app self.modal_class = "resolution" self.on_top = true self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.5) self.default_button_sound = "selectx.wav" self.callback = callback -- Window parts definition -- Title self:addBevelPanel(20, 10, 160, 20, col.title):setLabel(_S.options_window.resolution) .lowered = true -- Textboxes self:addBevelPanel(20, 40, 80, 20, col.caption, col.bg, col.bg):setLabel(_S.options_window.width) self.width_textbox = self:addBevelPanel(100, 40, 80, 20, col.textbox, col.bg, col.bg) :setTooltip(_S.tooltip.options_window.width) :makeTextbox():allowedInput("numbers"):characterLimit(4):setText(tostring(app.config.width)) self:addBevelPanel(20, 60, 80, 20, col.caption, col.bg, col.bg):setLabel(_S.options_window.height) self.height_textbox = self:addBevelPanel(100, 60, 80, 20, col.textbox, col.bg, col.bg) :setTooltip(_S.tooltip.options_window.height) :makeTextbox():allowedInput("numbers"):characterLimit(4):setText(tostring(app.config.height)) -- Apply and cancel self:addBevelPanel(20, 90, 80, 40, col.button):setLabel(_S.options_window.apply) :makeButton(0, 0, 80, 40, nil, self.ok):setTooltip(_S.tooltip.options_window.apply) self:addBevelPanel(100, 90, 80, 40, col.button):setLabel(_S.options_window.cancel) :makeButton(0, 0, 80, 40, nil, self.cancel):setTooltip(_S.tooltip.options_window.cancel) end function UIResolution:cancel() self:close(false) end function UIResolution:ok() local width, height = tonumber(self.width_textbox.text) or 0, tonumber(self.height_textbox.text) or 0 local s = TheApp.config.ui_scale local min_w = App.MIN_WINDOW_WIDTH * s local min_h = App.MIN_WINDOW_HEIGHT * s if width < min_w or height < min_h then local err = {_S.errors.minimum_screen_size:format(min_w, min_h)} self.ui:addWindow(UIInformation(self.ui, err)) elseif width > 3000 or height > 2000 then self.ui:addWindow(UIConfirmDialog(self.ui, false, _S.confirmation.maximum_screen_size, --[[persistable:maximum_screen_size_confirm_dialog]]function() self:close(true) self:close(false) end )) else self:close(true) end end function UIResolution:onMouseUp(button, x, y) if not self:hitTest(x, y) then self:close(false) end UIResizable.onMouseUp(self, button, x, y) end --! Closes the resolution dialog --!param ok (boolean or nil) whether the resolution entry was confirmed (true) or aborted (false) function UIResolution:close(ok) UIResizable.close(self) if ok and self.callback then self.callback(tonumber(self.width_textbox.text) or 0, tonumber(self.height_textbox.text) or 0) end end --! A window for setting the scroll speed of the camera. class "UIScrollSpeed" (UIResizable) ---@type UIScrollSpeed local UIScrollSpeed = _G["UIScrollSpeed"] function UIScrollSpeed:UIScrollSpeed(ui, callback) self:UIResizable(ui, 200, 140, col.bg) self.on_top = true self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.5) self.default_button_sound = "selectx.wav" self.scrollspeed_temp = 2 self.callback = callback self:addBevelPanel(20, 10, 160, 20, col.title):setLabel(_S.options_window.scrollspeed).lowered = true self:addBevelPanel(20, 50, 90, 20, col.caption, col.bg, col.bg):setLabel(_S.options_window.scrollspeed) -- self.scrollspeed_textbox = self:addBevelPanel(110, 50, 70, 20, col.textbox, col.bg, col.bg) :setTooltip(_S.tooltip.options_window.scrollspeed) :makeTextbox():allowedInput("numbers"):characterLimit(4):setText(tostring(self.ui.app.config.scroll_speed)) --Apply and cancel. self:addBevelPanel(20, 90, 80, 40, col.button):setLabel(_S.options_window.apply) :makeButton(0, 0, 80, 40, nil, self.ok):setTooltip(_S.tooltip.options_window.apply_scrollspeed) self:addBevelPanel(100, 90, 80, 40, col.button):setLabel(_S.options_window.cancel) :makeButton(0, 0, 80, 40, nil, self.cancel):setTooltip(_S.tooltip.options_window.cancel_scrollspeed) end function UIScrollSpeed:ok() self.scrollspeed_temp = tonumber(self.scrollspeed_textbox.text) or 2 if self.scrollspeed_temp < 1 then self.scrollspeed_temp = 1 elseif self.scrollspeed_temp > 10 then self.scrollspeed_temp = 10 end self:close(true) end function UIScrollSpeed:cancel() self:close(false) end function UIScrollSpeed:onMouseUp(button, x, y) if not self:hitTest(x, y) then self:close(false) end UIResizable.onMouseUp(self, button, x, y) end --!param ok (boolean or nil) whether the resolution entry was confirmed (true) or aborted (false) function UIScrollSpeed:close(ok) UIResizable.close(self) if ok then self.scrollspeed_textbox.text = self.scrollspeed_temp or 2 self.ui.app.config.scroll_speed = self.scrollspeed_textbox.text self.callback(self.scrollspeed_textbox.text) else self.callback(self.ui.app.config.scroll_speed) end end --! A window for setting the scroll speed of the camera while pressing the SHIFT key.. class "UIShiftScrollSpeed" (UIResizable) ---@type UIShiftScrollSpeed local UIShiftScrollSpeed = _G["UIShiftScrollSpeed"] function UIShiftScrollSpeed:UIShiftScrollSpeed(ui, callback) self:UIResizable(ui, 200, 140, col.bg) self.on_top = true self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.5) self.default_button_sound = "selectx.wav" self.shift_scrollspeed_temp = 4 self.callback = callback self:addBevelPanel(20, 10, 160, 20, col.title):setLabel(_S.options_window.shift_scrollspeed).lowered = true self:addBevelPanel(20, 50, 120, 20, col.caption, col.bg, col.bg):setLabel(_S.options_window.shift_scrollspeed) -- self.shift_scrollspeed_textbox = self:addBevelPanel(140, 50, 40, 20, col.textbox, col.bg, col.bg) :setTooltip(_S.tooltip.options_window.shift_scrollspeed) :makeTextbox():allowedInput("numbers"):characterLimit(4):setText(tostring(self.ui.app.config.shift_scroll_speed)) --Apply and cancel. self:addBevelPanel(20, 90, 80, 40, col.button):setLabel(_S.options_window.apply) :makeButton(0, 0, 80, 40, nil, self.ok):setTooltip(_S.tooltip.options_window.apply_shift_scrollspeed) self:addBevelPanel(100, 90, 80, 40, col.button):setLabel(_S.options_window.cancel) :makeButton(0, 0, 80, 40, nil, self.cancel):setTooltip(_S.tooltip.options_window.cancel_shift_scrollspeed) end function UIShiftScrollSpeed:ok() self.shift_scrollspeed_temp = tonumber(self.shift_scrollspeed_textbox.text) or 4 if self.shift_scrollspeed_temp < 1 then self.shift_scrollspeed_temp = 1 elseif self.shift_scrollspeed_temp > 10 then self.shift_scrollspeed_temp = 10 end self:close(true) end function UIShiftScrollSpeed:cancel() self:close(false) end function UIShiftScrollSpeed:onMouseUp(button, x, y) if not self:hitTest(x, y) then self:close(false) end UIResizable.onMouseUp(self, button, x, y) end --!param ok (boolean or nil) whether the resolution entry was confirmed (true) or aborted (false) function UIShiftScrollSpeed:close(ok) UIResizable.close(self) if ok then self.shift_scrollspeed_textbox.text = self.shift_scrollspeed_temp or 4 self.ui.app.config.shift_scroll_speed = self.shift_scrollspeed_textbox.text self.callback(self.shift_scrollspeed_textbox.text) else self.callback(self.ui.app.config.shift_scroll_speed) end end --! Window to set the zoom speed of the scroll wheel while in-game. class "UIZoomSpeed" (UIResizable) ---@type UIZoomSpeed local UIZoomSpeed = _G["UIZoomSpeed"] function UIZoomSpeed:UIZoomSpeed(ui, callback) self:UIResizable(ui, 200, 140, col.bg) self.on_top = true self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.5) self.default_button_sound = "selectx.wav" self.zoomspeed_temp = 80 self.callback = callback -- self:addBevelPanel(20, 10, 160, 20, col.title):setLabel(_S.options_window.zoom_speed).lowered = true -- self:addBevelPanel(20, 50, 90, 20, col.caption, col.bg, col.bg):setLabel(_S.options_window.zoom_speed) -- self.zoomspeed_textbox = self:addBevelPanel(110, 50, 70, 20, col.textbox, col.bg, col.bg) :setTooltip(_S.tooltip.options_window.zoom_speed) :makeTextbox():allowedInput("numbers"):characterLimit(4):setText( tostring(self.ui.app.config.zoom_speed) ) --Apply and cancel. self:addBevelPanel(20, 90, 80, 40, col.button):setLabel(_S.options_window.apply) :makeButton(0, 0, 80, 40, nil, self.ok):setTooltip(_S.tooltip.options_window.apply_zoomspeed) self:addBevelPanel(100, 90, 80, 40, col.button):setLabel(_S.options_window.cancel) :makeButton(0, 0, 80, 40, nil, self.cancel):setTooltip(_S.tooltip.options_window.cancel_zoomspeed) end function UIZoomSpeed:ok() self.zoomspeed_temp = tonumber( self.zoomspeed_textbox.text ) or 80 if self.zoomspeed_temp < 10 then self.zoomspeed_temp = 10 elseif self.zoomspeed_temp > 1000 then self.zoomspeed_temp = 1000 end self:close(true) end function UIZoomSpeed:cancel() self:close(false) end function UIZoomSpeed:onMouseUp(button, x, y) if not self:hitTest(x, y) then self:close(false) end UIResizable.onMouseUp(self, button, x, y) end --!param ok (boolean or nil) whether the resolution entry was confirmed (true) or aborted (false) function UIZoomSpeed:close(ok) UIResizable.close(self) if ok then self.zoomspeed_textbox.text = self.zoomspeed_temp or 2 self.ui.app.config.zoom_speed = self.zoomspeed_textbox.text self.callback(self.zoomspeed_textbox.text) else self.callback(self.ui.app.config.zoom_speed) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/sound_setting.lua000066400000000000000000000413461522247547500247270ustar00rootroot00000000000000--[[ Copyright (c) 2025 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "UISoundSettings" (UIResizable) ---@type UISoundSettings local UISoundSettings = _G["UISoundSettings"] -- Constants for most button's width and height local LBL_X = 20 local LBL_WIDTH = 160 local LBL_HEIGHT = 20 local BTN_WIDTH = 400 local BTN_HEIGHT = 20 local BTN_X = LBL_X + LBL_WIDTH + 5 local BIG_BTN_WIDTH = 565 local BIG_BTN_HEIGHT = 30 local col_bg = { red = 154, green = 146, blue = 198, } local col_shadow = { red = 134, green = 126, blue = 178, } local col_caption = { red = 174, green = 166, blue = 218, } --! Midi port list in format expected by UIDropdown --!param app (App) local function midi_port_options(app) local ports = app.audio:getMidiPortList() local res = {{ text = _S.audio_window.default_midi_port }} for _, p in ipairs(ports) do res[#res + 1] = { text = p, value = p } end return res end --! Construct new UISoundSettings window --!param ui (UI) The game ui --!param mode (string) 'menu' or 'game', depending on whether the window is -- displayed from the main menu or in game. function UISoundSettings:UISoundSettings(ui, mode) self:UIResizable(ui, 605, 295, col_bg) local app = ui.app self.mode = mode self.modal_class = mode == "menu" and "main menu" or "options" or "folders" self.on_top = mode == "menu" self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.25) self.default_button_sound = "selectx.wav" self.app = ui.app local built_in = app.gfx:loadMenuFont() self.volume_options = { { text = _S.customise_window.option_off, volume = 0 } } for i = 10, 100, 10 do self.volume_options[#self.volume_options + 1] = { text = _S.menu_options_volume[i], volume = i / 100 } end self.midi_api_options = { { text = _S.audio_window.default_midi_port, value = nil } } for _, api in ipairs(app.audio:getMidiApiList()) do self.midi_api_options[#self.midi_api_options + 1] = { text = api, value = api } end self.midi_port_options = midi_port_options(app) local y = 10 -- Title self:addBevelPanel(200, y, 245, 20, col_caption):setLabel(_S.audio_window.caption) .lowered = true y = y + 30 -- global audio on/off self:addBevelPanel(LBL_X, y, LBL_WIDTH, LBL_HEIGHT, col_shadow, col_bg, col_bg) :setLabel(_S.audio_window.audio) :setTooltip(_S.tooltip.audio_window.audio_button).lowered = true self.onoff_panel = self:addBevelPanel(BTN_X, y, BTN_WIDTH, BTN_HEIGHT, col_bg) :setLabel(app.config.audio and _S.customise_window.option_on or _S.customise_window.option_off) self.onoff_button = self.onoff_panel :makeToggleButton(0, 0, BTN_WIDTH, BTN_HEIGHT, nil, self.buttonAudioGlobal) :setToggleState(app.config.audio) :setTooltip(_S.tooltip.audio_window.audio_toggle) y = y + 25 -- sound volume local sound_volume_label = app.config.play_sounds and _S.menu_options_volume[app.config.sound_volume * 100] or _S.customise_window.option_off self:addBevelPanel(LBL_X, y, LBL_WIDTH, LBL_HEIGHT, col_shadow, col_bg, col_bg) :setLabel(_S.audio_window.sound_volume) :setTooltip(_S.tooltip.audio_window.sound_volume).lowered = true self.sound_volume_panel = self:addBevelPanel(BTN_X, y, BTN_WIDTH, BTN_HEIGHT, Colours.Setting, nil, nil, nil, Colours.SettingActive) :setLabel(sound_volume_label) self.sound_volume_button = self.sound_volume_panel :makeToggleButton(0, 0, BTN_WIDTH, BTN_HEIGHT, nil, self.dropdownVolume) :setTooltip(_S.tooltip.audio_window.sound_volume) y = y + 25 local announcement_volume_label = app.config.play_announcements and _S.menu_options_volume[app.config.announcement_volume * 100] or _S.customise_window.option_off self:addBevelPanel(LBL_X, y, LBL_WIDTH, LBL_HEIGHT, col_shadow, col_bg, col_bg) :setLabel(_S.audio_window.announcement_volume) :setTooltip(_S.tooltip.audio_window.announcement_volume).lowered = true self.announcement_volume_panel = self:addBevelPanel(BTN_X, y, BTN_WIDTH, BTN_HEIGHT, Colours.Setting, nil, nil, nil, Colours.SettingActive) :setLabel(announcement_volume_label) self.announcement_volume_button = self.announcement_volume_panel :makeToggleButton(0, 0, BTN_WIDTH, BTN_HEIGHT, nil, self.dropdownVolume) :setTooltip(_S.tooltip.audio_window.announcement_volume) y = y + 25 local music_volume_label_text = app.config.play_music and _S.menu_options_volume[app.config.music_volume * 100] or _S.customise_window.option_off self:addBevelPanel(LBL_X, y, LBL_WIDTH, LBL_HEIGHT, col_shadow, col_bg, col_bg) :setLabel(_S.audio_window.music_volume) :setTooltip(_S.tooltip.audio_window.music_volume).lowered = true self.music_volume_panel = self:addBevelPanel(BTN_X, y, BTN_WIDTH, BTN_HEIGHT, Colours.Setting, nil, nil, nil, Colours.SettingActive) :setLabel(music_volume_label_text) self.music_volume_button = self.music_volume_panel :makeToggleButton(0, 0, BTN_WIDTH, BTN_HEIGHT, nil, self.dropdownVolume) :setTooltip(_S.tooltip.audio_window.music_volume) y = y + 25 local midi_api_label = app.config.midi_api or _S.audio_window.default_midi_api self:addBevelPanel(LBL_X, y, LBL_WIDTH, LBL_HEIGHT, col_shadow, col_bg, col_bg) :setLabel(_S.audio_window.midi_api) :setTooltip(_S.tooltip.audio_window.midi_api).lowered = true self.midi_api_panel = self:addBevelPanel(BTN_X, y, BTN_WIDTH, BTN_HEIGHT, Colours.Setting, nil, nil, nil, Colours.SettingActive) :setLabel(midi_api_label) self.midi_api_button = self.midi_api_panel :makeToggleButton(0, 0, BTN_WIDTH, BTN_HEIGHT, nil, self.dropdownMidiApi) :setTooltip(_S.tooltip.audio_window.midi_api) y = y + 25 -- Location of soundfont file (only for default api) local soundfont_label_panel = self:addBevelPanel(LBL_X, y, LBL_WIDTH, LBL_HEIGHT, col_shadow, col_bg, col_bg) soundfont_label_panel :setLabel(_S.audio_window.soundfont) :setTooltip(_S.tooltip.audio_window.soundfont_location) :setVisible(not app.config.midi_api) soundfont_label_panel.lowered = true local tooltip_soundfont = app.config.soundfont and _S.tooltip.audio_window.browse_soundfont:format(app.config.soundfont) or _S.tooltip.audio_window.no_soundfont_specified local soundfont_path = app.config.soundfont local soundfont_button_panel = self:addBevelPanel(BTN_X, y, BTN_WIDTH, BTN_HEIGHT, col_bg) soundfont_button_panel :setLabel(soundfont_path or tooltip_soundfont, soundfont_path and built_in) :setAutoClip(true) :setVisible(not app.config.midi_api) local soundfont_button = soundfont_button_panel :makeButton(0, 0, BTN_WIDTH, BTN_HEIGHT, nil, self.buttonBrowseForSoundfont) :setTooltip(tooltip_soundfont) :setVisible(not app.config.midi_api) :enable(not app.config.midi_api) -- midi port (only for non-default api) local midi_port_label_text = app.config.midi_port or _S.audio_window.default_midi_port local midi_port_label_panel = self:addBevelPanel(LBL_X, y, LBL_WIDTH, LBL_HEIGHT, col_shadow, col_bg, col_bg) midi_port_label_panel :setLabel(_S.audio_window.midi_port) :setTooltip(_S.tooltip.audio_window.midi_port) :setVisible(not not app.config.midi_api) midi_port_label_panel.lowered = true self.midi_port_panel = self:addBevelPanel(BTN_X, y, BTN_WIDTH, BTN_HEIGHT, Colours.Setting, nil, nil, nil, Colours.SettingActive) :setLabel(midi_port_label_text) :setVisible(not not app.config.midi_api) self.midi_port_button = self.midi_port_panel :makeToggleButton(0, 0, BTN_WIDTH, BTN_HEIGHT, nil, self.dropdownMidiPort) :setTooltip(_S.tooltip.audio_window.midi_port) :setVisible(not not app.config.midi_api) :enable(not not app.config.midi_api) self.default_api_panels = { soundfont_label_panel, soundfont_button_panel, soundfont_button } self.midi_api_panels = { midi_port_label_panel, self.midi_port_panel, self.midi_port_button } -- jukebox self:addBevelPanel(20, 220, BIG_BTN_WIDTH, BIG_BTN_HEIGHT, col_bg) :setLabel(_S.audio_window.jukebox) :makeButton(0, 0, BIG_BTN_WIDTH, BIG_BTN_HEIGHT, nil, self.buttonJukebox) :setTooltip(_S.tooltip.audio_window.jukebox) -- back self:addBevelPanel(20, 255, BIG_BTN_WIDTH, BIG_BTN_HEIGHT, col_bg) :setLabel(_S.audio_window.back) :makeButton(0, 0, BIG_BTN_WIDTH, BIG_BTN_HEIGHT, nil, self.buttonBack) :setTooltip(_S.tooltip.audio_window.back) end --! Reinitialize the game audio -- Allows all the changed audio settings to take effect by shutting down the -- game audio and starting it up again. function UISoundSettings:reinitAudio() local app = self.ui.app app.audio:stopBackgroundTrack() app.audio:destroy() app.audio:init() app:initLanguage() app.audio:playRandomBackgroundTrack() end --! Close any UIDropdown that may be open function UISoundSettings:closeAllDropdowns() self:dropdownVolume(false) self:dropdownMidiApi(false) self:dropdownMidiPort(false) end --! Click action for the global audio toggle -- Turns all game audio off or on. function UISoundSettings:buttonAudioGlobal() local app = self.ui.app app.config.audio = not app.config.audio app:saveConfig() self.onoff_button:setLabel(app.config.audio and _S.customise_window.option_on or _S.customise_window.option_off) self:reinitAudio() end --! Click action for any of the audio buttons -- Displays a drop down of volume options. --!param activate (bool) true when the control is is activated, false when -- deactivated --!param btn (UIButton) the button clicked to fire this event function UISoundSettings:dropdownVolume(activate, btn) if activate then self:closeAllDropdowns() btn:setToggleState(true) local select_callback if btn == self.sound_volume_button then select_callback = self.selectSoundVolume elseif btn == self.announcement_volume_button then select_callback = self.selectAnnouncementVolume elseif btn == self.music_volume_button then select_callback = self.selectMusicVolume end self.volume_dropdown = UIDropdown(self.ui, self, btn, self.volume_options, select_callback, Colours.SettingActive, Colours.Scrollbar) self:addWindow(self.volume_dropdown) else self.sound_volume_button:setToggleState(false) self.announcement_volume_button:setToggleState(false) self.music_volume_button:setToggleState(false) if self.volume_dropdown then self.volume_dropdown:close() self.volume_dropdown = nil end end end --! Click action for midi api button -- Shows a drop down list of MIDI API options that are supported by the -- current build. --!param activate true when the control is is activated, false when deactivated function UISoundSettings:dropdownMidiApi(activate) if activate then self:closeAllDropdowns() self.midi_api_button:setToggleState(true) self.midi_api_dropdown = UIDropdown(self.ui, self, self.midi_api_button, self.midi_api_options, self.selectMidiApi, Colours.SettingActive, Colours.Scrollbar) self:addWindow(self.midi_api_dropdown) else self.midi_api_button:setToggleState(false) if self.midi_api_dropdown then self.midi_api_dropdown:close() self.midi_api_dropdown = nil end end end --! Click action for the midi port button -- Shows a drop down list of the MIDI ports available for the selected API. --!param activate true when the control is is activated, false when deactivated function UISoundSettings:dropdownMidiPort(activate) if activate then self:closeAllDropdowns() self.midi_port_button:setToggleState(true) self.midi_port_dropdown = UIDropdown(self.ui, self, self.midi_port_button, self.midi_port_options, self.selectMidiPort, Colours.SettingActive, Colours.Scrollbar) self:addWindow(self.midi_port_dropdown) else self.midi_port_button:setToggleState(false) if self.midi_port_dropdown then self.midi_port_dropdown:close() self.midi_port_dropdown = nil end end end --! Triggered when a sound volume option is selected from the dropdown -- Sets the sound volume or turns sound off in the config. --!param index (number) the index of the option selected function UISoundSettings:selectSoundVolume(index) local vol = self.volume_options[index].volume if vol == 0 then self.app.audio:playSoundEffects(false) else self.app.audio:playSoundEffects(true) self.app.audio:setSoundVolume(vol) end self.sound_volume_panel:setLabel(self.volume_options[index].text) self.app:saveConfig() end --! Triggered when an announcement volume option is selected from the dropdown -- Sets the announcement volume or turns announcements off in the config. --!param index (number) the index of the option selected function UISoundSettings:selectAnnouncementVolume(index) local vol = self.volume_options[index].volume if vol == 0 then self.app.config.play_announcements = false else self.app.config.play_announcements = true self.app.audio:setAnnouncementVolume(vol) end self.announcement_volume_panel:setLabel(self.volume_options[index].text) self.app:saveConfig() end --! Triggered when a music volume option is selected from the dropdown -- Sets the music volume or turns announcements off in the config. --!param index (number) the index of the option selected function UISoundSettings:selectMusicVolume(index) local vol = self.volume_options[index].volume if vol == 0 then self.app.config.play_music = false self.app.audio:stopBackgroundTrack() else self.app.audio:setBackgroundVolume(vol) if not self.app.config.play_music then self.app.config.play_music = true self.app.audio:playRandomBackgroundTrack() end end self.music_volume_panel:setLabel(self.volume_options[index].text) self.app:saveConfig() end --! Triggered when a MIDI API is selected from the dropdown -- Sets the MIDI API in the config and resets the MIDI port selection, -- since the MIDI port is specific to the selected API. --!param index (number) the index of the option selected function UISoundSettings:selectMidiApi(index) local value = self.midi_api_options[index].value self.app.config.midi_api = value self.app.config.midi_port = nil self.app:saveConfig() self:reinitAudio() self.midi_port_button:setLabel(_S.audio_window.default_midi_port) self.midi_port_options = midi_port_options(self.app) for _, p in ipairs(self.default_api_panels) do p:setVisible(not value) if p.enable then p:enable(not value) end end for _, p in ipairs(self.midi_api_panels) do p:setVisible(not not value) if p.enable then p:enable(not not value) end end end --! Triggered when a MIDI port is selected from the dropdown -- Sets the MIDI port and resets the audio. --!param index (number) the index of the option selected function UISoundSettings:selectMidiPort(index) local value = self.midi_port_options[index].value self.app.config.midi_port = value self.app:saveConfig() self:reinitAudio() end --! Button handler for soundfont -- Opens a file chooser dialog for selecting a soundfont. function UISoundSettings:buttonBrowseForSoundfont() local browser = UIChooseSoundfont(self.ui, self.mode, self, self.selectSoundfont) self.ui:addWindow(browser) end --! Callback when a soundfont is chosen -- Saves the soundfont and reinitializes audio. function UISoundSettings:selectSoundfont(name) self.app.config.soundfont = name self.app:saveConfig() self:reinitAudio() end --! Callback for Jukebox button -- Opens the jukebox window. function UISoundSettings:buttonJukebox() if self.app.config.audio then self.ui:addWindow(UIJukebox(self.app)) end end --! Callback for back button -- Opens the UIOptions window again. function UISoundSettings:buttonBack() self:close() local window = UIOptions(self.ui, "menu") self.ui:addWindow(window) end --! Close window function UISoundSettings:close() UIResizable.close(self) if self.mode == "menu" then self.ui:addWindow(UIMainMenu(self.ui)) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/tip_of_the_day.lua000066400000000000000000000073051522247547500250140ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Tip of the Day Window class "UITipOfTheDay" (UIResizable) ---@type UITipOfTheDay local UITipOfTheDay = _G["UITipOfTheDay"] local col_bg = { red = math.random(20, 200), green = math.random(20, 200), blue = math.random(20, 200), } function UITipOfTheDay:UITipOfTheDay(ui) local app = ui.app -- If the application window is not wide enough, -- the tips window is narrower and taller to fit beside the main menu local width = math.min(380, math.floor(app.config.width / 2) - 150) local height = width > 290 and 110 or 210 self:UIResizable(ui, width, height, col_bg) self.ui = ui self.resizable = false self:setDefaultPosition(-20, -20) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.num_tips = #_S.totd_window.tips if self.num_tips == 0 then -- NB: #_S.totd_window.tips == 0, which implies something went wrong with -- the string localisation code, hence don't try to localise the following: print("Warning: No tips for tip-of-the-day window") self:close() return end self.tip_num = math.random(1, self.num_tips) -- Previous button's y, next button's x, button width local function add_nav_buttons(y1, x2, btn_width) self:addBevelPanel(10, y1, btn_width, 20, col_bg):setLabel(_S.totd_window.previous) :makeButton(0, 0, btn_width, 20, nil, self.buttonPrev):setTooltip(_S.tooltip.totd_window.previous) self:addBevelPanel(x2, height - 30, btn_width, 20, col_bg):setLabel(_S.totd_window.next) :makeButton(0, 0, btn_width, 20, nil, self.buttonNext):setTooltip(_S.tooltip.totd_window.next) end if width > 290 then -- The buttons are side by side add_nav_buttons(height - 30, math.floor(width / 2) + 10, math.floor(width / 2) - 20) else -- The buttons are stacked add_nav_buttons(height - 55, 10, width - 20) end end function UITipOfTheDay:draw(canvas, x, y) -- Draw window components UIResizable.draw(self, canvas, x, y) -- Draw tip local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y local text = _S.totd_window.tips[self.tip_num] self.white_font:drawWrapped(canvas, text, x + 10 * s, y + 10 * s, self.width * s - 20 * s) end function UITipOfTheDay:buttonPrev() self.tip_num = self.tip_num - 1 if self.tip_num == 0 then self.tip_num = self.num_tips end end function UITipOfTheDay:buttonNext() self.tip_num = self.tip_num + 1 if self.tip_num > self.num_tips then self.tip_num = 1 end end --! Called after the resolution of the game window changes function UITipOfTheDay:onChangeResolution() self:close() self.ui:addWindow(UITipOfTheDay(self.ui)) Window.onChangeResolution(self) end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/resizables/update.lua000066400000000000000000000071421522247547500233200ustar00rootroot00000000000000--[[ Copyright (c) 2013 Alan Woolley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Options window used in the main menu and ingame. class "UIUpdate" (UIResizable) ---@type UIUpdate local UIUpdate = _G["UIUpdate"] local col_bg = { red = 154, green = 146, blue = 198, } local col_old_version = { red = 255, green = 0, blue = 0, } local col_new_version = { red = 0, green = 255, blue = 0, } local col_shadow = { red = 134, green = 126, blue = 178, } local col_caption = { red = 174, green = 166, blue = 218, } function UIUpdate:UIUpdate(ui, this_version, new_version, brief_description, download_url) self:UIResizable(ui, 320, 320, col_bg) local app = ui.app self.modal_class = "main" self.on_top = true self.esc_closes = true self.resizable = false self:setDefaultPosition(0.5, 0.25) self.default_button_sound = "selectx.wav" self.description_text = brief_description self.app = app self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.download_url = download_url self:addBevelPanel(20, 50, 140, 20, col_shadow, col_bg, col_bg) :setLabel(_S.update_window.current_version).lowered = true self:addBevelPanel(20, 70, 140, 20, col_shadow, col_bg, col_bg) :setLabel(_S.update_window.new_version).lowered = true self:addBevelPanel (160,50,140,20, col_old_version, col_bg, col_bg):setLabel(this_version) self:addBevelPanel (160,70,140,20, col_new_version, col_bg, col_bg):setLabel(new_version) -- Title self:addBevelPanel(80, 10, 160, 20, col_caption):setLabel(_S.update_window.caption) .lowered = true -- Download button self:addBevelPanel(20, 225, 280, 40, col_bg):setLabel(_S.update_window.download) :makeButton(0, 0, 280, 40, nil, self.buttonDownload):setTooltip(_S.tooltip.update_window.download) -- Ignore button self:addBevelPanel(20, 270, 280, 40, col_bg):setLabel(_S.update_window.ignore) :makeButton(0, 0, 280, 40, nil, self.buttonIgnore):setTooltip(_S.tooltip.update_window.ignore) end function UIUpdate:draw(canvas, x, y) -- Draw window components UIResizable.draw(self, canvas, x, y) local s = TheApp.config.ui_scale -- Draw description x, y = self.x * s + x, self.y * s + y self.white_font:drawWrapped(canvas, self.description_text, x + 20 * s, y + 100 * s, (self.width - 20) * s) end function UIUpdate:buttonDownload() if self.app.os == "windows" then os.execute("start " .. self.download_url) elseif self.app.os == "macos" then os.execute("open " .. self.download_url) else os.execute("xdg-open " .. self.download_url) end end function UIUpdate:buttonIgnore() self:close() end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/staff_dialog.lua000066400000000000000000000401361522247547500223150ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- Test for hit within the view circle local --[[persistable:staff_dialog_is_in_view_circle]] function is_in_view_circle(x, y, is_handyman) local s = TheApp.config.ui_scale local circle_center_y = is_handyman and 276 * s or 248 * s return (x - 55 * s)^2 + (y - circle_center_y)^2 < (39 * s)^2 end --! Individual staff information dialog class "UIStaff" (Window) ---@type UIStaff local UIStaff = _G["UIStaff"] --! Callback function for handyman to change his parcel. function UIStaff:changeParcel() local index = 0 for i, v in ipairs(self.staff.hospital.ownedPlots) do if v == self.staff.parcelNr then index = i break end end if not self.staff.hospital.ownedPlots[index + 1] then self.staff.parcelNr = 0 else self.staff.parcelNr = self.staff.hospital.ownedPlots[index + 1] end end function UIStaff:getParcelText() if not self.staff.parcelNr then self.staff.parcelNr = 0 end if self.staff.parcelNr == 0 then return _S.handyman_window.all_parcels --"All parcels" else return _S.handyman_window.parcel .. " " .. self.staff.parcelNr end end function UIStaff:UIStaff(ui, staff) self:Window() local app = ui.app local profile = staff.profile self.esc_closes = true self.staff = staff self.ui = ui self.modal_class = "humanoid_info" self.width = 220 if class.is(staff, Handyman) then self.height = 332 else self.height = 304 end self:setDefaultPosition(-20, 30) self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req01V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.face_parts = app.gfx:loadRaw("Face01V", 65, 1350, nil, "Data", "MPalette.dat", false, { flags = DrawFlags.Nearest }) self:addPanel(297, 15, 0) -- Dialog header for y = 51, 121, 10 do self:addPanel(298, 15, y) -- Dialog background end self:addPanel(299, 104, 50) -- Happiness self:addPanel(300, 105, 82) -- Tiredness self:addPanel(301, 15, 114) -- Skills/Abilities self:addColourPanel(35, 51, 71, 81, 208, 252, 252):makeButton(0, 0, 71, 81, nil, self.openStaffManagement):setTooltip(_S.tooltip.staff_window.face) -- Portrait background if class.is(staff, Handyman) then self:addPanel(311, 15, 131) -- Tasks top for y = 149, 184, 5 do self:addPanel(312, 15, y) -- Tasks buttons end self:addPanel(302, 5, 205) -- View circle top/Wage self:addPanel(313, 15, 189) -- Tasks bottom self:addPanel(314, 37, 145):makeRepeatButton(0, 0, 49, 48, 315, self.doMoreCleaning):setTooltip(_S.tooltip.handyman_window.prio_litter):setSound("selectx.wav") self:addPanel(316, 92, 145):makeRepeatButton(0, 0, 49, 48, 317, self.doMoreWatering):setTooltip(_S.tooltip.handyman_window.prio_plants):setSound("selectx.wav") self:addPanel(318, 148, 145):makeRepeatButton(0, 0, 49, 48, 319, self.doMoreRepairing):setTooltip(_S.tooltip.handyman_window.prio_machines):setSound("selectx.wav") self:addPanel(240, 21, 210):makeButton(0, 0, 73, 30, 240, self.changeParcel):setTooltip(_S.tooltip.handyman_window.parcel_select):setSound("selectx.wav") self:addPanel(303, 0, 253) -- View circle midpiece self:addPanel(304, 6, 302) -- View circle bottom self:addPanel(307, 106, 253):makeButton(0, 0, 50, 50, 308, self.fireStaff):setTooltip(_S.tooltip.staff_window.sack):setSound("selectx.wav") self:addPanel(309, 164, 253):makeButton(0, 0, 37, 50, 310, self.pickupStaff):setTooltip(_S.tooltip.staff_window.pick_up) else self:addPanel(302, 5, 178) -- View circle top/Wage self:addPanel(303, 0, 226) -- View circle midpiece self:addPanel(304, 6, 274) -- View circle bottom if not class.is(staff, Doctor) then self:addColourPanel(32, 141, 171, 39, 85, 202, 219) -- Hides Skills end self:addPanel(307, 106, 226):makeButton(0, 0, 50, 50, 308, self.fireStaff):setTooltip(_S.tooltip.staff_window.sack):setSound("selectx.wav") self:addPanel(309, 164, 226):makeButton(0, 0, 37, 50, 310, self.pickupStaff):setTooltip(_S.tooltip.staff_window.pick_up) end self:addPanel(305, 178, 18):makeButton(0, 0, 24, 24, 306, self.close):setTooltip(_S.tooltip.staff_window.close) self:makeTooltip(_S.tooltip.staff_window.name, 33, 19, 172, 42) self:makeTooltip(_S.tooltip.staff_window.happiness, 113, 49, 204, 74) self:makeTooltip(_S.tooltip.staff_window.tiredness, 113, 74, 204, 109) self:makeTooltip(_S.tooltip.staff_window.ability, 113, 109, 204, 134) if class.is(staff, Doctor) then self:makeTooltip(_S.tooltip.staff_window.doctor_seniority, 30, 141, 111, 182) self:makeTooltip(_S.tooltip.staff_window.skills, 111, 146, 141, 179) local skill_to_string = { is_surgeon = _S.tooltip.staff_window.surgeon, is_psychiatrist = _S.tooltip.staff_window.psychiatrist, is_researcher = _S.tooltip.staff_window.researcher, } local --[[persistable:staff_dialog_skill_tooltip_template]] function skill_tooltip(skill) return --[[persistable:staff_dialog_skill_tooltip]] function() if profile[skill] >= 1.0 then return skill_to_string[skill] end end end self:makeDynamicTooltip(skill_tooltip("is_surgeon"), 143, 148, 155, 177) self:makeDynamicTooltip(skill_tooltip("is_psychiatrist"), 155, 148, 177, 177) self:makeDynamicTooltip(skill_tooltip("is_researcher"), 177, 148, 202, 177) end -- window for handyman is slightly different local offset = class.is(staff, Handyman) and 27 or 0 self:makeTooltip(_S.tooltip.staff_window.salary, 90, 191 + offset, 204, 214 + offset) -- Non-rectangular tooltip has to be realized with dynamic tooltip at the moment self:makeDynamicTooltip(--[[persistable:staff_dialog_center_tooltip]]function(x, y) if is_in_view_circle(x, y, profile:isType("Handyman")) then return _S.tooltip.staff_window.center_view end end, 17, 211 + offset, 92, 286 + offset) end function UIStaff:getStaffPosition(dx, dy) local staff = self.staff local x, y = self.ui.app.map:WorldToScreen(staff.tile_x, staff.tile_y) local px, py = staff.th:getSecondaryMarker() return x + px - (dx or 0), y + py - (dy or 0) end function UIStaff:draw(canvas, x_, y_) local s = TheApp.config.ui_scale local x, y = self.x * s + x_, self.y * s + y_ local px, py = self:getStaffPosition(37, 61) canvas:scale(s) self.ui.app.map:draw(canvas, px, py, 75, 75, math.floor(x / s) + 17, math.floor(y / s) + self.height - 93) canvas:scale(1) Window.draw(self, canvas, x_, y_) local profile = self.staff.profile local font = self.white_font font:draw(canvas, profile:getFullName(), x + 42 * s, y + 28 * s) -- Name if class.is(self.staff, Handyman)then font:draw(canvas, "$" .. profile.wage, x + 135 * s, y + 225 * s) -- Wage font:draw(canvas, self:getParcelText(), x + 35 * s, y + 215 * s, 50 * s, 0) -- The concentration areas local cleaning_width = math.floor(self.staff:getAttribute("cleaning") * 40 * s + 0.5) local watering_width = math.floor(self.staff:getAttribute("watering") * 40 * s + 0.5) local repairing_width = math.floor(self.staff:getAttribute("repairing") * 40 * s + 0.5) if cleaning_width ~= 0 then for dx = 0, cleaning_width - 1, s do self.panel_sprites:draw(canvas, 351, x + 43 * s + dx, y + 200 * s, { scaleFactor = s }) end end if watering_width ~= 0 then for dx = 0, watering_width - 1 do self.panel_sprites:draw(canvas, 351, x + 99 * s + dx, y + 200 * s, { scaleFactor = s }) end end if repairing_width ~= 0 then for dx = 0, repairing_width - 1 do self.panel_sprites:draw(canvas, 351, x + 155 * s + dx, y + 200 * s, { scaleFactor = s }) end end else font:draw(canvas, "$" .. profile.wage, x + 135 * s, y + 198 * s) -- Wage end if self.staff:getAttribute("happiness") then local happiness_bar_width = math.floor(self.staff:getAttribute("happiness") * 40 * s + 0.5) if happiness_bar_width ~= 0 then for dx = 0, happiness_bar_width - 1, s do self.panel_sprites:draw(canvas, 348, x + 139 * s + dx, y + 56 * s, { scaleFactor = s }) end end end local fatigue_bar_width = 40.5 if self.staff:getAttribute("fatigue") then fatigue_bar_width = math.floor((1 - self.staff:getAttribute("fatigue")) * 40 * s + 0.5) end if fatigue_bar_width ~= 0 then for dx = 0, fatigue_bar_width - 1, s do self.panel_sprites:draw(canvas, 349, x + 139 * s + dx, y + 89 * s, { scaleFactor = s }) end end local skill_bar_width = math.floor(profile.skill * 40 * s + 0.5) if skill_bar_width ~= 0 then for dx = 0, skill_bar_width - 1, s do self.panel_sprites:draw(canvas, 350, x + 139 * s + dx, y + 120 * s, { scaleFactor = s }) end end if class.is(self.staff, Doctor) then -- Junior / Doctor / Consultant marker if profile.is_junior then self.panel_sprites:draw(canvas, 347, x + 38 * s, y + 173 * s, { scaleFactor = s }) elseif profile.is_consultant then self.panel_sprites:draw(canvas, 347, x + 89 * s, y + 173 * s, { scaleFactor = s }) else self.panel_sprites:draw(canvas, 347, x + 60 * s, y + 173 * s, { scaleFactor = s }) end -- Ability markers if profile.is_surgeon >= 1.0 then self.panel_sprites:draw(canvas, 344, x + 144 * s, y + 148 * s, { scaleFactor = s }) end if profile.is_psychiatrist >= 1.0 then self.panel_sprites:draw(canvas, 345, x + 155 * s, y + 154 * s, { scaleFactor = s }) end if profile.is_researcher >= 1.0 then self.panel_sprites:draw(canvas, 346, x + 178 * s, y + 153 * s, { scaleFactor = s }) end end profile:drawFace(canvas, x + 38 * s, y + 54 * s, self.face_parts, s) -- Portrait end function UIStaff:onMouseDown(button, x, y) self.do_scroll = button == "left" and is_in_view_circle(x, y, class.is(self.staff, Handyman)) return Window.onMouseDown(self, button, x, y) end function UIStaff:onMouseUp(button, x, y) local ui = self.ui if button == "left" then self.do_scroll = false end local repaint = Window.onMouseUp(self, button, x, y) local s = TheApp.config.ui_scale -- Test for hit within the view circle and name box local hit_namebox = x > self.tooltip_regions[1].x * s and x < self.tooltip_regions[1].r * s and y > self.tooltip_regions[1].y * s and y < self.tooltip_regions[1].b * s if button == "right" and is_in_view_circle(x, y, class.is(self.staff, Handyman)) or button == "right" and hit_namebox then -- Right click goes to the next staff member of the same category (NB: Surgeon in same Category as Doctor) local staff_index = nil for i, staff in ipairs(ui.hospital.staff) do if staff_index and staff.profile:isType(self.staff.profile.humanoid_class) then ui:addWindow(UIStaff(ui, staff)) if hit_namebox then local sx, sy = ui.app.map:WorldToScreen(staff.tile_x, staff.tile_y) local dx, dy = staff.th:getPosition() ui:scrollMapTo(sx + dx, sy + dy) end return false end if staff == self.staff then staff_index = i end end -- Try again from beginning of list until staff_index for i = 1, staff_index - 1 do local staff = ui.hospital.staff[i] if staff.profile:isType(self.staff.profile.humanoid_class) then ui:addWindow(UIStaff(ui, staff)) if hit_namebox then local sx, sy = ui.app.map:WorldToScreen(staff.tile_x, staff.tile_y) local dx, dy = staff.th:getPosition() ui:scrollMapTo(sx + dx, sy + dy) end return false end end end return repaint end function UIStaff:onMouseMove(x, y, dx, dy) self.do_scroll = self.do_scroll and is_in_view_circle(x, y, class.is(self.staff, Handyman)) return Window.onMouseMove(self, x, y, dx, dy) end function UIStaff:onTick() if self.do_scroll then local ui = self.ui local staff = self.staff local sx, sy = ui.app.map:WorldToScreen(staff.tile_x, staff.tile_y) local dx, dy = staff.th:getPosition() ui:scrollMapTo(sx + dx, sy + dy) end return Window.onTick(self) end function UIStaff:pickupStaff() self.staff:setPickup(self.ui, self) end function UIStaff:fireStaff() self.ui:addWindow(UIConfirmDialog(self.ui, false, _S.confirmation.sack_staff, --[[persistable:staff_dialog_confirm_sack]] function() self.staff:fire() end)) end --! Function to balance 'cleaning','watering', and 'repairing', where --! one of them is increased, and the other two are decreased. --!param increased Attribute to increase. function UIStaff:changeHandymanAttributes(increased) if not self.staff:getAttribute(increased) then return end -- Show a helpful message if this dialog hasn't been opened yet if not self.ui.hospital.handyman_popup then self.ui.adviser:say(_A.information.handyman_adjust) self.ui.hospital.handyman_popup = true end local incr_value = 0.1 -- Increase of 'increased' local smallest_decr = 0.05 -- Smallest decrement that can be performed. local decr_attrs = {} local attributes = {"cleaning", "watering", "repairing"} for _, attr in ipairs(attributes) do if attr == increased then -- Adding too much is not a problem, it gets clipped to 1. self.staff:changeAttribute(attr, incr_value) if self.staff:getAttribute(attr) == 1 then incr_value = 2.0 -- Doing 'increased' 100%, set other attributes to 0. end else decr_attrs[#decr_attrs + 1] = attr smallest_decr = math.min(smallest_decr, self.staff:getAttribute(attr)) end end assert(#decr_attrs == 2) -- The decreasing attributes should together decrease '-incr_value', but one -- or both may be smaller than '-incr_value / 2'. -- Compensate by subtracting the biggest value from both. local decr_value = incr_value - smallest_decr for _, attr in ipairs(decr_attrs) do -- Subtracting too much is not a problem, it gets clipped to 0. self.staff:changeAttribute(attr, -decr_value) end end --! UI callback function to increase 'cleaning' (wiping litter). function UIStaff:doMoreCleaning() self:changeHandymanAttributes("cleaning") end --! UI callback function to increase 'watering' (plants). function UIStaff:doMoreWatering() self:changeHandymanAttributes("watering") end --! UI callback function to increase 'repairing' (machines). function UIStaff:doMoreRepairing() self:changeHandymanAttributes("repairing") end function UIStaff:openStaffManagement() local dlg = UIStaffManagement(self.ui) -- Make sure that the dialog managed to create itself properly. -- For example, if using the demo files closed will be true because the dialog could not be loaded. if not dlg.closed then dlg:selectStaff(self.staff) self.ui:addWindow(dlg) self:close() end end function UIStaff:hitTest(x, y) return Window.hitTest(self, x, y) or is_in_view_circle(x, y, class.is(self.staff, Handyman)) end function UIStaff:afterLoad(old, new) if old < 205 then self:close() end Window.afterLoad(self, old, new) if old < 236 then self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.face_parts = TheApp.gfx:loadRaw("Face01V", 65, 1350, nil, "Data", "MPalette.dat", false, { flags = DrawFlags.Nearest }) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/staff_rise.lua000066400000000000000000000165011522247547500220170ustar00rootroot00000000000000--[[ Copyright (c) 2010 Miika-Petteri Matikainen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Dialog for staff member requesting a salaray raise. class "UIStaffRise" (Window) ---@type UIStaffRise local UIStaffRise = _G["UIStaffRise"] function UIStaffRise:UIStaffRise(ui, staff, rise_amount) self:Window() local app = ui.app local profile = staff.profile self.esc_closes = false -- Do not allow closing the dialog with esc self.staff = staff self.ui = ui self.rise_amount = rise_amount self.on_top = true local final_wage = self.staff.profile.wage + rise_amount self.text = _S.pay_rise.regular.__random:format(rise_amount, final_wage) -- Random complaint text self.width = 362 self.height = 288 -- Center the dialog self:setDefaultPosition(0.5, 0.5) self.panel_sprites = app.gfx:loadSpriteTable("QData", "Req12V", true) self.white_font = app.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.black_font = app.gfx:loadFontAndSpriteTable("QData", "Font00V", nil, nil, { apply_ui_scale = true }) self.face_parts = app.gfx:loadRaw("Face01V", 65, 1350, nil, "Data", "MPalette.dat", false, { flags = DrawFlags.Nearest }) -- Left hand side self:addPanel(280, 0, 0) self:addPanel(281, 0, 54) self:addPanel(281, 0, 64) self:addPanel(281, 0, 64) self:addPanel(281, 0, 74) self:addPanel(281, 0, 84) self:addPanel(281, 0, 94) self:addPanel(281, 0, 104) self:addPanel(282, 0, 114) self:addPanel(283, 0, 171) self:addPanel(284, 0, 214) self:addColourPanel(96, 44, 72, 81, 211, 255, 255) -- Portrait background -- Right hand side self:addPanel(285, 180, 0) self:addPanel(286, 180, 20) self:addPanel(286, 180, 48) self:addPanel(286, 180, 76) self:addPanel(286, 180, 104) self:addPanel(286, 180, 132) self:addPanel(286, 180, 160) self:addPanel(287, 180, 188) self:addPanel(288, 180, 233):makeButton(0, 0, 90, 45, 289, self.increaseSalary):setTooltip(_S.tooltip.pay_rise_window.accept) self:addPanel(290, 270, 233):makeButton(0, 0, 90, 45, 291, self.fireStaff):setTooltip(_S.tooltip.pay_rise_window.decline) self:makeTooltip(_S.tooltip.staff_window.name, 14, 15, 169, 38) self:makeTooltip(_S.tooltip.staff_window.face, 96, 44, 168, 125) self:makeTooltip(_S.tooltip.staff_window.salary, 14, 171, 168, 193) self:makeTooltip(_S.tooltip.staff_window.ability, 12, 213, 89, 243) if class.is(staff, Doctor) then self:makeTooltip(_S.tooltip.staff_window.doctor_seniority, 89, 197, 168, 243) self:makeTooltip(_S.tooltip.staff_window.skills, 14, 132, 47, 166) -- NB: should be sufficient here to check only once, not make a dynamic tooltip if profile.is_surgeon >= 1.0 then self:makeTooltip(_S.tooltip.staff_window.surgeon, 72, 133, 87, 164) end if profile.is_psychiatrist >= 1.0 then self:makeTooltip(_S.tooltip.staff_window.psychiatrist, 87, 133, 116, 164) end if profile.is_researcher >= 1.0 then self:makeTooltip(_S.tooltip.staff_window.researcher, 116, 133, 146, 164) end else -- Hide doctor specific information self:addColourPanel(10, 130, 160, 40, 60, 174, 203) self:addColourPanel(89, 198, 81, 45, 60, 174, 203) end end -- Staff raise requests pause game function UIStaffRise:mustPause() return true end function UIStaffRise:getStaffPosition(dx, dy) local staff = self.staff local x, y = self.ui.app.map:WorldToScreen(staff.tile_x, staff.tile_y) local px, py = staff.th:getSecondaryMarker() return x + px - (dx or 0), y + py - (dy or 0) end function UIStaffRise:draw(canvas, x, y) Window.draw(self, canvas, x, y) local profile = self.staff.profile local s = TheApp.config.ui_scale x, y = self.x * s + x, self.y * s + y local px, py = self:getStaffPosition(37, 61) local font = self.white_font profile:drawFace(canvas, x + 99 * s, y + 47 * s, self.face_parts, s) -- Portrait canvas:scale(s) self.ui.app.map:draw(canvas, px, py, 71, 81, math.floor(x / s) + 16, math.floor(y / s) + 44) -- Viewport canvas:scale(1) font:draw(canvas, profile:getFullName(), x + 20 * s, y + 20 * s) -- Name font:draw(canvas, "$" .. profile.wage, x + 60 * s, y + 178 * s) -- Wage -- Ability -- Note: The bar looks like "attention to detail", but actually ability level -- is displayed here. This was the same in TH, and makes more sense. -- However at some point we should fix the graphics to look like an ability bar. local ability_bar_width = math.floor(profile.skill * 40 * s + 0.5) if ability_bar_width ~= 0 then for dx = 0, ability_bar_width - 1 do self.panel_sprites:draw(canvas, 295, x + 42 * s + dx, y + 230 * s, { scaleFactor = s }) end end if class.is(self.staff, Doctor) then self:drawDoctorAttributes(canvas) end -- Complaint text self.black_font:drawWrapped(canvas, self.text, x + 200 * s, y + 20 * s, 140 * s) end function UIStaffRise:drawDoctorAttributes(canvas) local profile = self.staff.profile local s = TheApp.config.ui_scale local x, y = self.x * s, self.y * s -- Junior / Doctor / Consultant marker local marker_x = x + 98 * s if profile.is_consultant then marker_x = marker_x + 52 * s elseif not profile.is_junior then marker_x = marker_x + 22 * s end self.panel_sprites:draw(canvas, 296, marker_x, y + 230 * s, { scaleFactor = s }) -- Ability markers if profile.is_surgeon >= 1.0 then self.panel_sprites:draw(canvas, 292, x + 74 * s, y + 133 * s, { scaleFactor = s }) end if profile.is_psychiatrist >= 1.0 then self.panel_sprites:draw(canvas, 293, x + 90 * s, y + 139 * s, { scaleFactor = s }) end if profile.is_researcher >= 1.0 then self.panel_sprites:draw(canvas, 294, x + 120 * s, y + 138 * s, { scaleFactor = s}) end end function UIStaffRise:fireStaff() self.staff.message_callback = nil self.staff:fire() self:close() end function UIStaffRise:increaseSalary() self.staff.message_callback = nil self.staff:increaseWage(self.rise_amount) self.staff.quitting_in = nil self:close() end function UIStaffRise:afterLoad(old, new) Window.afterLoad(self, old, new) if old < 236 then self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.black_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font00V", nil, nil, { apply_ui_scale = true }) self.face_parts = TheApp.gfx:loadRaw("Face01V", 65, 1350, nil, "Data", "MPalette.dat", false, { flags = DrawFlags.Nearest }) end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/subtitles.lua000066400000000000000000000072021522247547500217060ustar00rootroot00000000000000--[[ Copyright (c) 2026 Fraggenard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! UI display area for announcer subtitles class "Subtitles" (Window) ---@type Subtitles local Subtitles = _G["Subtitles"] --! Subtitles constructor function Subtitles:Subtitles() self:Window() self.x = 0 self.y = 0 self.white_font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) self.queue = SubtitleQueue() end --! Pushes an announcer audio file's associated subtitle text to the queue for display --!param name (string) Filename of the announcer sound to display function Subtitles:queueSubtitle(name) if _S.subtitles ~= nil then local subtitleString = _S.subtitles[string.gsub(string.lower(name), ".wav", "")] if subtitleString ~= nil then --Second field of subtitle object is the subtitle's display lifetime, measured in ticks local duration = 280 -- ~5 seconds in ticks self.queue:push({subtitleString, duration}) end end end function Subtitles:draw(canvas, x, y) Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale if not self.queue:isEmpty() then if TheApp.config.enable_announcer_subtitles then local displayIndex = 1 for _, subtitle in ipairs(self.queue.subtitles) do self.white_font:draw(canvas, subtitle[1], 5, (5 + 16 * s) * displayIndex, 0, 16) displayIndex = displayIndex + 1 end end end end --! Subtitle area's tick handler -- Removes a subtitle from the queue if it has reached its tick lifetime function Subtitles:onTick() if not self.queue:isEmpty() then for _, subtitle in ipairs(self.queue.subtitles) do local subtitleLifetime = subtitle[2] if subtitleLifetime <= 1 then self.queue:pop() else subtitle[2] = subtitleLifetime - 1 end end end end function Subtitles:afterLoad(old, new) self.queue = SubtitleQueue() end --! First in, first out queue for concurrently displayed subtitles class "SubtitleQueue" ---@type SubtitleQueue local SubtitleQueue = _G["SubtitleQueue"] --! SubtitleQueue constructor function SubtitleQueue:SubtitleQueue() self.count = 0 self.subtitles = {} end --! Pushes subtitle text to the queue for display --!param subtitle (string) Subtitle text to display function SubtitleQueue:push(subtitle) table.insert(self.subtitles, subtitle) self.count = self.count + 1 end --! Removes subtitle text at the top of the queue function SubtitleQueue:pop() if self.subtitles[1] ~= nil then table.remove(self.subtitles, 1) self.count = self.count - 1 end end --! Returns true if the queue is empty, false otherwise function SubtitleQueue:isEmpty() return self.count == 0 end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/tree_ctrl.lua000066400000000000000000000530021522247547500216520ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Interface for items within a UI tree control class "TreeNode" ---@type TreeNode local TreeNode = _G["TreeNode"] function TreeNode:TreeNode() self.is_expanded = false self.num_visible_descendants = 0 end --! Get the number of childrem which the item has function TreeNode:getChildCount() error("To be implemented in subclasses") end --! Query if the item has any children at all. --! The simple way of doing this is checking if getChildCount() is non-zero, -- but often this can be implemented in a more efficient manner. function TreeNode:hasChildren() return self:getChildCount() ~= 0 end --! Get a child of the item. --!param idx (integer) An integer between 1 and getChildCount() (inclusive). function TreeNode:getChildByIndex(idx) error("To be implemented in subclasses") end --! Given a child of the item, determine which index it is --!param child (TreeNode) A value returned from getChildByIndex() function TreeNode:getIndexOfChild(child) error("To be implemented in subclasses") end --! Get the text to be displayed for the item function TreeNode:getLabel() error("To be implemented in subclasses") end --! Get the item's parent, if it has one function TreeNode:getParent() return self.parent end --! Get the tree control within which the item is displayed function TreeNode:getControl() return self.control or self:getParent():getControl() end --! Query whether the item's children are visible function TreeNode:isExpanded() return self.is_expanded end --! Get the background colour for when the item is highlighted function TreeNode:getHighlightColour(canvas) return nil end --! Get the background colour for when the item is selected function TreeNode:getSelectColour(canvas) return canvas:mapRGB(174, 166, 218) end --! Make the children of the item visible function TreeNode:expand() if self.is_expanded then return end self.is_expanded = true self.num_visible_descendants = 0 for i = 1, self:getChildCount() do self.num_visible_descendants = self.num_visible_descendants + 1 + self:getChildByIndex(i).num_visible_descendants end local parent = self:getParent() while parent do parent.num_visible_descendants = parent.num_visible_descendants + self.num_visible_descendants parent = parent:getParent() end self:getControl():onNumVisibleNodesChange() end --! Make the children of the item invisible function TreeNode:contract() if not self.is_expanded then return end self.is_expanded = false local parent = self:getParent() while parent do parent.num_visible_descendants = parent.num_visible_descendants - self.num_visible_descendants parent = parent:getParent() end self.num_visible_descendants = 0 self:getControl():onNumVisibleNodesChange() end --! The number of visible items in the set of this item and all its descendants function TreeNode:numVisibleDescendants() if self.hidden then return self.num_visible_descendants else return self.num_visible_descendants + 1 end end --! Get the depth from the root item to this item. --! The root item has level 0, its direct children have level 1, etc. function TreeNode:getLevel() local level = self.level if not level then local parent = self:getParent() if parent then level = parent:getLevel() + 1 else level = 0 end self.level = level end return level end --! Get the previous item in the on-screen display order function TreeNode:getPrevVisible() local parent = self:getParent() if not parent then return end local idx = parent:getIndexOfChild(self) if idx == 1 then return parent else local prev = parent:getChildByIndex(idx - 1) while prev:isExpanded() do if not prev:hasChildren() then break else prev = prev:getChildByIndex(prev:getChildCount()) end end return prev end end --! Get the next item in the on-screen display order function TreeNode:getNextVisible() if self:isExpanded() and self:hasChildren() then return self:getChildByIndex(1) end while true do local parent = self:getParent() if not parent then return end local idx = parent:getIndexOfChild(self) if idx == parent:getChildCount() then self = parent else return parent:getChildByIndex(idx + 1) end end end --! A tree node representing a file (or directory) in the physical file-system. class "FileTreeNode" (TreeNode) ---@type FileTreeNode local FileTreeNode = _G["FileTreeNode"] local pathsep = package.config:sub(1, 1) function FileTreeNode:FileTreeNode(path) self:TreeNode() if path:sub(-1) == pathsep and path ~= pathsep then path = path:sub(1, -2) end self.path = path self.children = {} self.has_looked_for_children = false -- Default sorting is by name self.sort_by = "name" self.order = "ascending" end function FileTreeNode:isDirectory() return lfs.attributes(self.path, "mode") == "directory" end --- --@param (optional) return the most recently modified child file which has this string in its name. --@return nil if no child file is found otherwise return the FileTreedNode for mostly recently modified child file. function FileTreeNode:getMostRecentlyModifiedChildFile(file_name_filter) self:checkForChildren() self:reSortChildren("date", "descending") local most_recently_mod_child_dir_file = nil local root_child = nil --A. Search for files matching the file name filter in the root directory and its child directories: for i = 1, self:getChildCount(), 1 do root_child = self:getChildByIndex(i) -- 1. Get the most recently modified child directory file which matches the name filter: if root_child:isDirectory() then local current_child_dir_file = root_child:getMostRecentlyModifiedChildFile(file_name_filter) if current_child_dir_file ~= nil then if most_recently_mod_child_dir_file == nil then most_recently_mod_child_dir_file = current_child_dir_file elseif current_child_dir_file:getLastModification() > most_recently_mod_child_dir_file:getLastModification() then most_recently_mod_child_dir_file = current_child_dir_file end end -- Sort always puts directories first so when this else closure is reached in this iterative for loop -- all the sub directories will have been checked: else -- 2. Get the most recently modified root directory file which matches the name filter: local matches_filter = true if(file_name_filter) then matches_filter = string.find(root_child:getLabel(), file_name_filter) end -- End this for loop to begin step B: if matches_filter then break end end root_child = nil end --B. Return the most recently modified file or nil if no file matching the name filter was found: if most_recently_mod_child_dir_file then if root_child then if root_child:getLastModification() > most_recently_mod_child_dir_file:getLastModification() then return root_child end end return most_recently_mod_child_dir_file elseif root_child then return root_child else return nil end end function FileTreeNode:childPath(item) if self.path:sub(-1, -1) == pathsep then return self.path .. item else return self.path .. pathsep .. item end end function FileTreeNode:hasChildren() if self.has_looked_for_children then return #self.children ~= 0 elseif self.has_children == nil then if self:getLevel() == 0 then -- Assume root level things have children until we really need to check return true end self.has_children = false -- Only directories have children. if lfs.attributes(self.path, "mode") ~= "directory" then return false end local status, err, dir_obj = pcall(lfs.dir, self.path) if not status then print("Error while fetching children for " .. self.path .. ": " .. err) else for item in dir_obj.next, dir_obj do if self:isValidFile(item) then self.has_children = true break end end dir_obj:close() end end return self.has_children end --! Returns whether the given file name is valid -- in this tree. Override for desired behaviour. function FileTreeNode:isValidFile(name) return name ~= "." and name ~= ".." end function FileTreeNode:createNewNode(path) return FileTreeNode(path) end function FileTreeNode:expand() TreeNode.expand(self) self:reSortChildren(self.sort_by, self.order) end local function sort_by_key(t1, t2) local second_mode = lfs.attributes(t2.path, "mode") == "directory" if lfs.attributes(t1.path, "mode") == "directory" then if second_mode then if t1.order == "ascending" then return t1.sort_key < t2.sort_key else return t1.sort_key > t2.sort_key end else return true end else if second_mode then return false else if t1.order == "ascending" then return t1.sort_key < t2.sort_key else return t1.sort_key > t2.sort_key end end end end --! Sorts the node and its children either by date or by name. --!param sort_by What to sort by. Either "name" or "date". --!param order If the ordering should be "ascending" or "descending". function FileTreeNode:reSortChildren(sort_by, order) for _, child in ipairs(self.children) do if sort_by == "date" then child.sort_key = lfs.attributes(child.path, "modification") child.sort_by = sort_by child.order = order elseif sort_by == "name" then child.sort_key = child:getLabel():lower() child.sort_by = sort_by child.order = order else -- No sorting return end end table.sort(self.children, sort_by_key) for i, child in ipairs(self.children) do self.children[child] = i child:reSortChildren(sort_by, order) end end function FileTreeNode:checkForChildren() if not self.has_looked_for_children then self.has_looked_for_children = true if self.has_children == false then -- Already checked and found nothing return end for item in lfs.dir(self.path) do local path = self:childPath(item) if self:isValidFile(item) then local node = self:createNewNode(path) node.sort_key = item:lower() self.children[#self.children + 1] = node end end for i, child in ipairs(self.children) do self.children[child] = i self.children[child.sort_key] = i child.parent = self end end end function FileTreeNode:getHighlightColour(canvas) local highlight_colour = self.highlight_colour if highlight_colour == nil then highlight_colour = false if type(self.filter_by) == "table" then for _, ext in ipairs(self.filter_by) do if string.sub(self.path:lower(), -string.len(ext)) == ext then self.is_valid_file = true highlight_colour = canvas:mapRGB(0, 255, 0) end end elseif self.filter_by and string.sub(self.path:lower(), -string.len(self.filter_by)) == self.filter_by then self.is_valid_file = true highlight_colour = canvas:mapRGB(0, 255, 0) end self.highlight_colour = highlight_colour end return highlight_colour or nil end function FileTreeNode:getChildCount() self:checkForChildren() return #self.children end function FileTreeNode:getChildByIndex(idx) self:checkForChildren() return self.children[idx] end function FileTreeNode:getIndexOfChild(child) return self.children[child] end function FileTreeNode:getLabel() local label = self.label if not label then local parent = self:getParent() if parent and parent.path then if parent.path:sub(-1, -1) == pathsep then label = self.path:sub(#parent.path + 1, -1) else label = self.path:sub(#parent.path + 2, -1) end else label = self.path end self.label = label end return label end function FileTreeNode:getLastModification() return lfs.attributes(self.path, "modification") end --! Selects an item. By default everything selected is valid. Can be overridden -- by inheriting classes. function FileTreeNode:select() self.is_valid_directory = true end --! A tree node which can be used as a root node to give the effect of having -- multiple root nodes. class "DummyRootNode" (TreeNode) ---@type DummyRootNode local DummyRootNode = _G["DummyRootNode"] --!param roots (array) An array of `TreeNode`s which should be displayed as -- root nodes. function DummyRootNode:DummyRootNode(roots) self:TreeNode() self.children = {} for i, child in ipairs(roots) do self.children[i] = child self.children[child] = i child.parent = self end self.level = -1 -- to make children level 0 self.hidden = true end function DummyRootNode:getChildCount() return #self.children end function DummyRootNode:getChildByIndex(idx) return self.children[idx] end function DummyRootNode:getIndexOfChild(child) return self.children[child] end --! A control (to be placed on a window) which allows the user to navigate a -- tree of items and select one item from it. class "TreeControl" (Window) ---@type TreeControl local TreeControl = _G["TreeControl"] --!param root (TreeNode) The single root node of the tree (use a `DummyRootNode` -- here if multiple root nodes are desired). --!param x (integer) The X-position, in pixels, where the control should start -- within its parent. --!param y (integer) The Y-position, in pixels, where the control should start -- within its parent. --!param width (integer) The width, in pixels, of the control. --!param height (integer) The height, in pixels, of the control. --!param col_bg (table) The background colour of the control - this should be -- a table with `red`, `green`, and `blue` fields, each an integer between 0 -- and 255. --!param col_fg (table) The colour used for the scrollbar and highlighted items. function TreeControl:TreeControl(root, x, y, width, height, col_bg, col_fg, y_offset, has_font) -- Setup the base window self:Window() self.x = x self.y = y self.width = width self.height = height self.y_offset = y_offset or 0 -- Load the graphical resources local gfx = TheApp.gfx if not has_font then self.font = gfx:loadBuiltinFont() else self.font = TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, { apply_ui_scale = true }) end self.tree_sprites = gfx:loadSpriteTable("Bitmap", "tree_ctrl", true, gfx:getPalette("tree_ctrl.pal")) -- Calculate sizes and counts local scrollbar_width = 20 self.row_height = 14 self.tree_rect = { x = 0, y = 0, w = width - scrollbar_width, h = height - height % self.row_height, } self.num_rows = (self.tree_rect.h - self.y_offset) / self.row_height self:addBevelPanel(0, 0, width, height, col_bg).lowered = true local scrollbar_base = self:addBevelPanel(width - scrollbar_width, 0, scrollbar_width, height, col_bg) scrollbar_base.lowered = true self.scrollbar = scrollbar_base:makeScrollbar(col_fg, --[[persistable:tree_ctrl_scrollbar_callback]] function() self:onScroll() end, 1, 1, self.num_rows) self.tree_root = root if root.hidden then self.first_visible_node = root:getChildByIndex(1) else self.first_visible_node = root end root.control = self self.first_visible_ordinal = 1 root:expand() end function TreeControl:hitTestTree(x, y) local s = TheApp.config.ui_scale local rect = self.tree_rect x = x - rect.x * s y = y - rect.y * s - self.y_offset * s if 0 <= x and 0 <= y and x < rect.w * s and y < rect.h * s then local n = math.floor(y / (self.row_height * s)) local node = self.first_visible_node while n ~= 0 and node do node = node:getNextVisible() n = n - 1 end if n == 0 then if node then local level = node:getLevel() if x > level * 14 * s then if x < (level+1) * 14 * s then return node, true else return node, false end end end end end end function TreeControl:onMouseMove(x, y, dx, dy) local redraw = Window.onMouseMove(self, x, y) local node, expand = self:hitTestTree(x, y) if expand and self.highlighted_node ~= nil then self.highlighted_node = nil return redraw elseif not expand and node ~= self.highlighted_node then self.highlighted_node = node return redraw end return redraw end function TreeControl:onMouseDown(button, x, y) local redraw = Window.onMouseDown(self, button, x, y) if button ~= 4 and button ~= 5 then local s = TheApp.config.ui_scale -- NB: 4 and 5 are scrollwheel self.mouse_down_in_self = false if 0 <= x and 0 <= y and x < self.width * s and y < self.height * s then self.mouse_down_in_self = true redraw = true end end return redraw end --! Function to handle (final) selection by user that needs to feed back data to --! another dialog. --!param callback (function) Code to execute on trigger --!return self function TreeControl:setSelectCallback(callback) self.select_callback = callback return self end --! Function for where an action in the file tree needs to feed back data to another --! dialog. Its specific usage should be noted in the parent element --!param callback (function) Code to execute on trigger --!return self function TreeControl:setValueChangeCallback(callback) self.val_change_callback = callback return self end function TreeControl:onMouseUp(button, x, y) local redraw = Window.onMouseUp(self, button, x, y) local node, expand = self:hitTestTree(x, y) if self.mouse_down_in_self and node then -- Expand/collapse directory if expand then if node:hasChildren() then if node:isExpanded() then node:contract() else node:expand() end redraw = true end -- Clicking on already highlighted file elseif self.selected_node == node and self.select_callback then self.select_callback(node) redraw = true -- A new file has been selected (not highlighted) else self.selected_node = node if self.val_change_callback then self.val_change_callback(node, node:getLabel()) end node:select() redraw = true end end self.mouse_down_in_self = false return redraw end function TreeControl:onMouseWheel(x, y) self.scrollbar:setXorY(self.scrollbar:getXorY() - y * 8) end function TreeControl:onNumVisibleNodesChange() self.scrollbar:setRange(1, self.tree_root:numVisibleDescendants(), self.num_rows, self.first_visible_ordinal) end function TreeControl:onScroll() if self.scrollbar.value > self.first_visible_ordinal then for _ = 1, self.scrollbar.value - self.first_visible_ordinal do self.first_visible_node = self.first_visible_node:getNextVisible() end elseif self.scrollbar.value < self.first_visible_ordinal then for _ = 1, self.first_visible_ordinal - self.scrollbar.value do self.first_visible_node = self.first_visible_node:getPrevVisible() end end self.first_visible_ordinal = self.scrollbar.value end --! Override this function if a certain row should have certain text -- or additional flavour to it. function TreeControl:drawExtraOnRow(canvas, node, x, y) end function TreeControl:draw(canvas, x, y) Window.draw(self, canvas, x, y) local s = TheApp.config.ui_scale x = x + self.x * s + self.tree_rect.x * s y = y + self.y * s + self.tree_rect.y * s + self.y_offset * s local node = self.first_visible_node local num_nodes_drawn = 0 while node and num_nodes_drawn < self.num_rows do local level = node:getLevel() for i = 0, level - 1 do self.tree_sprites:draw(canvas, 1, x + i * 14 * s, y, { scaleFactor = s }) end if node == self.highlighted_node then local offset = (level + 1) * 14 local colour = node:getHighlightColour(canvas) or self.scrollbar.slider.colour canvas:drawRect(colour, x + offset * s - s, y, self.tree_rect.w * s - offset * s - s, self.row_height * s) end if node == self.selected_node then local offset = (level + 1) * 14 local colour = node:getSelectColour(canvas) or self.scrollbar.slider.colour canvas:drawRect(colour, x + offset * s - s, y, self.tree_rect.w * s - offset * s - s, self.row_height * s) end local icon if not node:hasChildren() then icon = 2 elseif node:isExpanded() then icon = 4 else icon = 3 end self.tree_sprites:draw(canvas, icon, x + level * 14 * s, y, { scaleFactor = s }) self.font:draw(canvas, node:getLabel(), x + (level + 1) * 14 * s, y + 2 * s) self:drawExtraOnRow(canvas, node, x, y) y = y + self.row_height * s num_nodes_drawn = num_nodes_drawn + 1 node = node:getNextVisible() end end CorsixTH-0.70.0/CorsixTH/Lua/dialogs/watch.lua000066400000000000000000000200211522247547500207700ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Timer / clock / watch / countdown dialog for emergencies / level start --! The timer lasts approximately 100 days, split into 13 segments class "UIWatch" (Window) ---@type UIWatch local UIWatch = _G["UIWatch"] local TICK_DAYS = 100 local TICK_DAYS_EMERGENCY = 52 local TIMER_SEGMENTS = 13 --!param count_type (string) One of: "open_countdown" or "emergency" or "epidemic" function UIWatch:UIWatch(ui, count_type) self:Window() local app = ui.app self.esc_closes = false self.modal_class = "open_countdown" if count_type == "emergency" then self.tick_rate = math.floor((TICK_DAYS_EMERGENCY * Date.hoursPerDay()) / TIMER_SEGMENTS) self.tick_timer = self.tick_rate else self.tick_rate = math.floor((TICK_DAYS * Date.hoursPerDay()) / TIMER_SEGMENTS) self.tick_timer = self.tick_rate -- Initialize tick timer end self.open_timer = 12 self.ui = ui self.hospital = ui.hospital self.width = 39 self.height = 79 self:setDefaultPosition(20, -100) self.panel_sprites = app.gfx:loadSpriteTable("Data", "Watch01V", true) self.epidemic = false self.count_type = count_type self.active_hover = false -- For cycling the list of epidemic/emergency patients which index to use self.current_index = nil -- The last patient whose dialog was opened by clicking the timer self.lastCycledPatient = nil local end_sprite = (count_type == "epidemic") and 14 or 16 self.end_sprite = end_sprite local tooltips = { ["initial_opening"] = _S.tooltip.watch.hospital_opening, ["emergency"] = _S.tooltip.watch.emergency, ["epidemic"] = _S.tooltip.watch.epidemic, } if count_type == "epidemic" then self.end_button = self:addPanel(end_sprite, 4, 0) :makeButton(4, 0, 27, 28, end_sprite + 1, self.toggleVaccinationMode) :setTooltip(tooltips[count_type]) self:addPanel(end_sprite, 4, 0) .custom_draw = --[[persistable:epidemic_timer_button]] function(panel, canvas, x, y) local s = TheApp.config.ui_scale x = x + panel.x * s y = y + panel.y * s panel.window.panel_sprites:draw(canvas, panel.sprite_index, x, y, { scaleFactor = s }) if self.active_hover then self.panel_sprites:draw(canvas, 15, x, y, { scaleFactor = s }) end end elseif count_type ~= "emergency" then self.end_button = self:addPanel(end_sprite, 4, 0) :makeButton(4, 0, 27, 28, end_sprite + 1, self.onCountdownEnd) :setTooltip(tooltips[count_type]) end local timer_sprite = 13 if count_type == "epidemic" or count_type == "emergency" then self:addPanel(timer_sprite, 0, 28) :setTooltip(tooltips[count_type]) :makeButton(timer_sprite, 0, 25, 50, timer_sprite, self.scrollToTimerEventPatient, nil, self.cycleTimerEventPatient) else self:addPanel(timer_sprite, 0, 28):setTooltip(tooltips[count_type]) .custom_draw = --[[persistable:open_hospital_timer_button]] function(panel, canvas, x, y) local s = TheApp.config.ui_scale x = x + panel.x * s y = y + panel.y * s panel.window.panel_sprites:draw(canvas, panel.sprite_index, x, y, { scaleFactor = s }) if self.active_hover then self.panel_sprites:draw(canvas, 17, x + 4 * s, y - 28 * s, { scaleFactor = s }) end end end self:addPanel(1, 2, 47) end function UIWatch:onCountdownEnd() self:close() if self.count_type == "emergency" then self.ui.hospital:resolveEmergency() elseif self.count_type == "epidemic" then local epidemic = self.hospital.epidemic if epidemic then epidemic:coverUpTimeIsUp() end elseif self.count_type == "initial_opening" then self.hospital:open() self.ui:playSound("fanfare.wav") end end function UIWatch:onMouseMove(x, y, dx, dy) local s = TheApp.config.ui_scale self.active_hover = self:hoverTest(self.active_hover, x, y, 4 * s, 31 * s, 0, 29 * s) return Window:onMouseMove(x, y, dx, dy) end function UIWatch:onWorldTick() if self.tick_timer == 0 and self.open_timer >= 0 then -- Used for making a smooth animation self.tick_timer = self.tick_rate self.open_timer = self.open_timer - 1 if self.open_timer == 11 then self:addPanel(2, 2, 47, nil, nil, true, DrawFlags.Nearest) elseif self.open_timer == 0 then self.panels[#self.panels].sprite_index = 0 elseif self.open_timer < 11 and self.open_timer > 0 then self.panels[#self.panels].sprite_index = 13 - self.open_timer if self.open_timer == 5 then table.remove(self.panels, #self.panels - 1) end end elseif self.open_timer == -1 then -- the timer is at 0 when it is completely red. self:onCountdownEnd() -- Countdown terminated, so we open the hospital or ends the epidemic panic else self.tick_timer = self.tick_timer - 1 end end --[[! Toggles vaccination mode by toggling the button then toggling the mode in the current epidemic.]] function UIWatch:toggleVaccinationMode() local epidemic = self.hospital.epidemic self.end_button:toggle() epidemic:toggleVaccinationMode() end --[[! During an emergency - Cycles through the patient dialogs of all the emergency patients ! During an epidemic - Cycles to the first patient who is infected but not vaccinated]] function UIWatch:cycleTimerEventPatient() self.ui:playSound("camclick.wav") local hospital = self.ui.hospital if self.count_type == "emergency" then local patients = hospital.emergency_patients if #patients > 0 then if not self.current_index or self.current_index == #patients then self.current_index = 1 else self.current_index = self.current_index + 1 end self.lastCycledPatient = patients[self.current_index] self.ui:addWindow(UIPatient(self.ui, self.lastCycledPatient)) end else for _, infected_patient in ipairs(hospital.epidemic.infected_patients) do if not infected_patient.vaccinated and not infected_patient.cured then self.lastCycledPatient = infected_patient self.ui:addWindow(UIPatient(self.ui, self.lastCycledPatient)) break end end end end --[[! While cycling through timer event patients (@see UIWatch:cycleTimerEventPatient) scrolls the screen to centre on the selected patient If a patient dialog is open that does not belong to the timer event, does nothing]] function UIWatch:scrollToTimerEventPatient() self.ui:playSound("camclick.wav") local patient = self.lastCycledPatient if patient then -- Current open dialog local current_patient_dialog = self.ui:getWindow(UIPatient) if not current_patient_dialog then -- Create the dialog but don't add it to the window local patient_dialog = UIPatient(self.ui, patient) patient_dialog:scrollToPatient() elseif patient == current_patient_dialog.patient then current_patient_dialog:scrollToPatient() end end end function UIWatch:afterLoad(old, new) Window.afterLoad(self, old, new) if old < 237 then local pnl = self.panels[#self.panels] if pnl.sprite_index >= 2 and pnl.sprite_index < 13 then pnl.draw_flags = DrawFlags.Nearest end end end CorsixTH-0.70.0/CorsixTH/Lua/diseases/000077500000000000000000000000001522247547500173425ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/diseases/alien_dna.lua000066400000000000000000000060021522247547500217550ustar00rootroot00000000000000--[[ Copyright (c) 2011 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "alien_dna" disease.expertise_id = 8 disease.visuals_id = 6 disease.name = _S.diseases.alien_dna.name disease.cause = _S.diseases.alien_dna.cause disease.symptoms = _S.diseases.alien_dna.symptoms disease.cure = _S.diseases.alien_dna.cure disease.cure_price = 2000 disease.emergency_sound = "emerg020.wav" disease.emergency_number = 16 disease.contagious = false disease.must_stand = TheApp.config.alien_dna_must_stand -- Alien Patients are forced to stand while queueing because of missing animation disease.only_emergency = TheApp.config.alien_dna_only_by_emergency -- TODO implement (there are no normal door animations, so they cannot go to GP) disease.initPatient = function(patient) local which = math.random(0, 1) -- male or female? patient:setType((which == 0) and "Alien Male Patient" or "Alien Female Patient") patient.change_into = (which == 0) and "Standard Male Patient" or "Standard Female Patient" if which == 0 then patient:setLayer(0, math.random(1, 5) * 2) -- 5 variations for males patient:setLayer(2, math.random(0, 1) * 2) -- + alternate shoes else patient:setLayer(0, math.random(2, 4) * 2) -- NB: for layer0 = 2 head is missing in death animation, so it's not used patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) -- 3 clothes variations for both genders patient:setLayer(3, 0) patient:setLayer(4, 0) patient.should_knock_on_doors = TheApp.config.alien_dna_can_knock_on_doors end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "dna_fixer", } -- If a machine is required a small icon should appear in the drug casebook. disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/baldness.lua000066400000000000000000000045341522247547500216460ustar00rootroot00000000000000--[[ Copyright (c) 2010 Miika-Petteri Matikainen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "baldness" disease.expertise_id = 10 disease.visuals_id = 8 disease.name = _S.diseases.baldness.name disease.cause = _S.diseases.baldness.cause disease.symptoms = _S.diseases.baldness.symptoms disease.cure = _S.diseases.baldness.cure disease.cure_price = 950 disease.emergency_sound = "emerg012.wav" disease.emergency_number = 18 disease.contagious = false disease.initPatient = function(patient) patient:setType("Slack Male Patient") patient:setLayer(0, 12) patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(2, 0) patient:setLayer(3, 0) patient:setLayer(4, 0) -- Disable knocking doors as there is no door knocking animation in layer 0 with 12 (bald head) patient.should_knock_on_doors = false end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "x_ray", "blood_machine", "scanner", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "hair_restoration", } -- If a machine is required a small icon should appear in the drug casebook. disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/bloaty_head.lua000066400000000000000000000044161522247547500223250ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "bloaty_head" disease.expertise_id = 2 disease.visuals_id = 0 disease.name = _S.diseases.bloaty_head.name disease.cause = _S.diseases.bloaty_head.cause disease.symptoms = _S.diseases.bloaty_head.symptoms disease.cure = _S.diseases.bloaty_head.cure disease.cure_price = 850 disease.emergency_sound = "emerg007.wav" disease.emergency_number = 18 disease.contagious = false disease.initPatient = function(patient) patient:setType("Standard Male Patient") patient:setLayer(0, math.random(6, 8) * 2) patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(2, math.random(0, 1) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "x_ray", "cardiogram", "scanner", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "inflation", } -- If a machine is required a small icon should appear in the drug casebook. disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/broken_heart.lua000066400000000000000000000046361522247547500225210ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "broken_heart" disease.expertise_id = 20 disease.non_visuals_id = 4 disease.name = _S.diseases.broken_heart.name disease.cause = _S.diseases.broken_heart.cause disease.symptoms = _S.diseases.broken_heart.symptoms disease.cure = _S.diseases.broken_heart.cure disease.cure_price = 1900 disease.emergency_sound = "emerg025.wav" disease.emergency_number = 6 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "ward", "operating_theatre", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/broken_wind.lua000066400000000000000000000046721522247547500223570ustar00rootroot00000000000000--[[ Copyright (c) 2009 Haico "brainball" van Roeden Based on gut_rot.lua by Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "broken_wind" disease.expertise_id = 17 disease.non_visuals_id = 1 disease.name = _S.diseases.broken_wind.name disease.cause = _S.diseases.broken_wind.cause disease.symptoms = _S.diseases.broken_wind.symptoms disease.cure = _S.diseases.broken_wind.cure disease.cure_price = 1300 disease.emergency_sound = "emerg016.wav" disease.emergency_number = 14 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/chronic_nosehair.lua000066400000000000000000000047221522247547500233670ustar00rootroot00000000000000--[[ Copyright (c) 2009 Haico "brainball" van Roeden Based on gut_rot.lua by Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "chronic_nosehair" disease.expertise_id = 25 disease.non_visuals_id = 9 disease.name = _S.diseases.chronic_nosehair.name disease.cause = _S.diseases.chronic_nosehair.cause disease.symptoms = _S.diseases.chronic_nosehair.symptoms disease.cure = _S.diseases.chronic_nosehair.cure disease.cure_price = 800 disease.emergency_sound = "emerg029.wav" disease.emergency_number = 18 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/corrugated_ankles.lua000066400000000000000000000047271522247547500235530ustar00rootroot00000000000000--[[ Copyright (c) 2009 Haico "brainball" van Roeden Based on gut_rot.lua by Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "corrugated_ankles" disease.expertise_id = 24 disease.non_visuals_id = 8 disease.name = _S.diseases.corrugated_ankles.name disease.cause = _S.diseases.corrugated_ankles.cause disease.symptoms = _S.diseases.corrugated_ankles.symptoms disease.cure = _S.diseases.corrugated_ankles.cure disease.cure_price = 800 disease.emergency_sound = "emerg028.wav" disease.emergency_number = 18 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/discrete_itching.lua000066400000000000000000000047341522247547500233640ustar00rootroot00000000000000 --[[ Copyright (c) 2009 Haico "brainball" van Roeden Based on gut_rot.lua by Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "discrete_itching" disease.expertise_id = 11 disease.visuals_id = 9 disease.name = _S.diseases.discrete_itching.name disease.cause = _S.diseases.discrete_itching.cause disease.symptoms = _S.diseases.discrete_itching.symptoms disease.cure = _S.diseases.discrete_itching.cure disease.cure_price = 700 disease.emergency_sound = "emerg013.wav" disease.emergency_number = 15 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/fake_blood.lua000066400000000000000000000045761522247547500221460ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "fake_blood" disease.expertise_id = 27 disease.non_visuals_id = 11 disease.name = _S.diseases.fake_blood.name disease.cause = _S.diseases.fake_blood.cause disease.symptoms = _S.diseases.fake_blood.symptoms disease.cure = _S.diseases.fake_blood.cure disease.cure_price = 800 disease.emergency_sound = "emerg031.wav" disease.emergency_number = 18 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "psych", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/fractured_bones.lua000066400000000000000000000064261522247547500232220ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "fractured_bones" disease.expertise_id = 9 disease.visuals_id = 7 disease.name = _S.diseases.fractured_bones.name disease.cause = _S.diseases.fractured_bones.cause disease.symptoms = _S.diseases.fractured_bones.symptoms disease.cure = _S.diseases.fractured_bones.cure disease.cure_price = 450 disease.emergency_sound = "emerg005.wav" disease.emergency_number = 16 disease.contagious = false disease.initPatient = function(patient) if not TheApp.config.disable_fractured_bones_females and math.random(1, 2) == 2 then -- The female animation in the cast remover is bad -- so by default it is disabled. They can though be allowed by turning them on in config patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) local num1 = math.random(0, 1) -- The first bandage yes/no patient:setLayer(2, num1 * 2) -- There needs to be at least one bandage on the patient patient:setLayer(3, (num1 == 0 and 1 or math.random(0, 1)) * 2) patient:setLayer(4, 0) else patient:setType("Alternate Male Patient") patient:setLayer(0, math.random(1, 5) * 2) -- Some bandage types may be duplicated, then it shall be so local num1 = math.random(0, 2) -- The first bandage yes/no patient:setLayer(2, num1 * 2) local num2 = math.random(0, 5) -- The second bandage yes/no -- 6 does not exist, a few more arm bandages instead if num2 == 3 then num2 = 4 end patient:setLayer(3, num2 * 2) -- There needs to be at least one bandage on the patient local num3 = math.random(0, 5) if num3 == 3 then num3 = 4 end patient:setLayer(4, ((num1 == 0 and num2 == 0) and 1 or num3) * 2) end patient:setLayer(1, math.random(0, 3) * 2) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "scanner", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "fracture_clinic", } -- If a machine is required a small icon should appear in the drug casebook. disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/gastric_ejections.lua000066400000000000000000000047301522247547500235500ustar00rootroot00000000000000--[[ Copyright (c) 2009 Haico "brainball" van Roeden Based on gut_rot.lua by Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "gastric_ejections" disease.expertise_id = 28 disease.non_visuals_id = 12 disease.name = _S.diseases.gastric_ejections.name disease.cause = _S.diseases.gastric_ejections.cause disease.symptoms = _S.diseases.gastric_ejections.symptoms disease.cure = _S.diseases.gastric_ejections.cure disease.cure_price = 650 disease.emergency_sound = "emerg032.wav" disease.emergency_number = 15 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/golf_stones.lua000066400000000000000000000046321522247547500223740ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "golf_stones" disease.expertise_id = 34 disease.non_visuals_id = 18 disease.name = _S.diseases.golf_stones.name disease.cause = _S.diseases.golf_stones.cause disease.symptoms = _S.diseases.golf_stones.symptoms disease.cure = _S.diseases.golf_stones.cure disease.cure_price = 1600 disease.emergency_sound = "emerg034.wav" disease.emergency_number = 6 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "ward", "operating_theatre", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/gut_rot.lua000066400000000000000000000046151522247547500215360ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "gut_rot" disease.expertise_id = 33 disease.non_visuals_id = 17 disease.name = _S.diseases.gut_rot.name disease.cause = _S.diseases.gut_rot.cause disease.symptoms = _S.diseases.gut_rot.symptoms disease.cure = _S.diseases.gut_rot.cure disease.cure_price = 350 disease.emergency_sound = "emerg019.wav" disease.emergency_number = 14 disease.more_loo_use = true disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/hairyitis.lua000066400000000000000000000046441522247547500220620ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "hairyitis" disease.expertise_id = 3 disease.visuals_id = 1 disease.name = _S.diseases.hairyitis.name disease.cause = _S.diseases.hairyitis.cause disease.symptoms = _S.diseases.hairyitis.symptoms disease.cure = _S.diseases.hairyitis.cure disease.cure_price = 1150 disease.emergency_sound = "emerg008.wav" disease.emergency_number = 12 disease.contagious = false disease.initPatient = function(patient) patient:setType("Chewbacca Patient") -- NB: Layers have no effect on the appearance until cured, at which point -- they are standard male patient layers. The clinic does however sometimes -- change this so that a female emerge. patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(2, math.random(0, 1) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "x_ray", "scanner", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "electrolysis", } -- If a machine is required a small icon should appear in the drug casebook. disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/heaped_piles.lua000066400000000000000000000046771522247547500225050ustar00rootroot00000000000000--[[ Copyright (c) 2009 Haico "brainball" van Roeden Based on gut_rot.lua by Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "heaped_piles" disease.expertise_id = 32 disease.non_visuals_id = 16 disease.name = _S.diseases.heaped_piles.name disease.cause = _S.diseases.heaped_piles.cause disease.symptoms = _S.diseases.heaped_piles.symptoms disease.cure = _S.diseases.heaped_piles.cure disease.cure_price = 400 disease.emergency_sound = "emerg001.wav" disease.emergency_number = 14 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/infectious_laughter.lua000066400000000000000000000046311522247547500241140ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "infectious_laughter" disease.expertise_id = 23 disease.non_visuals_id = 7 disease.name = _S.diseases.infectious_laughter.name disease.cause = _S.diseases.infectious_laughter.cause disease.symptoms = _S.diseases.infectious_laughter.symptoms disease.cure = _S.diseases.infectious_laughter.cure disease.cure_price = 1500 disease.emergency_sound = "emerg027.wav" disease.emergency_number = 18 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "psych", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/invisibility.lua000066400000000000000000000042601522247547500225650ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "invisibility" disease.expertise_id = 5 disease.visuals_id = 3 disease.name = _S.diseases.invisibility.name disease.cause = _S.diseases.invisibility.cause disease.symptoms = _S.diseases.invisibility.symptoms disease.cure = _S.diseases.invisibility.cure disease.cure_price = 1400 disease.emergency_sound = "emerg006.wav" disease.emergency_number = 18 disease.contagious = false disease.initPatient = function(patient) patient:setType("Invisible Patient") patient:setLayer(0, 2) patient:setLayer(1, 0) patient:setLayer(2, 4) patient:setLayer(3, 0) patient:setLayer(4, 0) patient.cured_layers = { [0] = math.random(1, 5) * 2, [1] = math.random(0, 3) * 2, [2] = 4, } end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "x_ray", "scanner", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/iron_lungs.lua000066400000000000000000000045221522247547500222270ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "iron_lungs" disease.expertise_id = 30 disease.non_visuals_id = 14 disease.name = _S.diseases.iron_lungs.name disease.cause = _S.diseases.iron_lungs.cause disease.symptoms = _S.diseases.iron_lungs.symptoms disease.cure = _S.diseases.iron_lungs.cure disease.cure_price = 1700 disease.emergency_sound = "emerg033.wav" disease.emergency_number = 5 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "x_ray", "cardiogram", "blood_machine", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "ward", "operating_theatre", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/jellyitis.lua000066400000000000000000000050211522247547500220530ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "jellyitis" disease.expertise_id = 12 disease.visuals_id = 10 disease.name = _S.diseases.jellyitis.name disease.cause = _S.diseases.jellyitis.cause disease.symptoms = _S.diseases.jellyitis.symptoms disease.cure = _S.diseases.jellyitis.cure disease.cure_price = 1000 disease.emergency_sound = "emerg014.wav" disease.emergency_number = 12 disease.contagious = false disease.effect = AnimationEffect.Jelly disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "jelly_vat", } -- If a machine is required a small icon should appear in the drug casebook. disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/kidney_beans.lua000066400000000000000000000046361522247547500225110ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "kidney_beans" disease.expertise_id = 19 disease.non_visuals_id = 3 disease.name = _S.diseases.kidney_beans.name disease.cause = _S.diseases.kidney_beans.cause disease.symptoms = _S.diseases.kidney_beans.symptoms disease.cure = _S.diseases.kidney_beans.cure disease.cure_price = 1050 disease.emergency_sound = "emerg024.wav" disease.emergency_number = 5 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "ward", "operating_theatre", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/king_complex.lua000066400000000000000000000041151522247547500225250ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "king_complex" disease.expertise_id = 4 disease.visuals_id = 2 disease.name = _S.diseases.king_complex.name disease.cause = _S.diseases.king_complex.cause disease.symptoms = _S.diseases.king_complex.symptoms disease.cure = _S.diseases.king_complex.cure disease.cure_price = 1600 disease.emergency_sound = "emerg009.wav" disease.emergency_number = 18 disease.contagious = false disease.initPatient = function(patient) patient:setType("Elvis Patient") patient:setLayer(0, math.random(1, 3)*2) patient:setLayer(1, 0) patient:setLayer(2, 0) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "x_ray", "scanner", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "psych", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/pregnant.lua000066400000000000000000000043131522247547500216640ustar00rootroot00000000000000--[[ Copyright (c) 2011 Mark "MarkL" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "pregnant" disease.expertise_id = 14 disease.visuals_id = 12 disease.name = _S.diseases.pregnancy.name disease.cause = _S.diseases.pregnancy.cause disease.symptoms = _S.diseases.pregnancy.symptoms disease.cure = _S.diseases.pregnancy.cure disease.cure_price = 200 disease.emergency_sound = "emerg021.wav" disease.emergency_number = 8 disease.contagious = false disease.initPatient = function(patient) patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. They need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "ward", "operating_theatre", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/ruptured_nodules.lua000066400000000000000000000046621522247547500234600ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "ruptured_nodules" disease.expertise_id = 21 disease.non_visuals_id = 5 disease.name = _S.diseases.ruptured_nodules.name disease.cause = _S.diseases.ruptured_nodules.cause disease.symptoms = _S.diseases.ruptured_nodules.symptoms disease.cure = _S.diseases.ruptured_nodules.cure disease.cure_price = 1600 disease.emergency_sound = "emerg026.wav" disease.emergency_number = 6 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "ward", "operating_theatre", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/serious_radiation.lua000066400000000000000000000050771522247547500236010ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "serious_radiation" disease.expertise_id = 6 disease.visuals_id = 4 disease.name = _S.diseases.serious_radiation.name disease.cause = _S.diseases.serious_radiation.cause disease.symptoms = _S.diseases.serious_radiation.symptoms disease.cure = _S.diseases.serious_radiation.cure disease.cure_price = 1800 disease.emergency_sound = "emerg010.wav" disease.emergency_number = 18 disease.contagious = false disease.effect = AnimationEffect.Glowing disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "decontamination", } -- If a machine is required a small icon should appear in the drug casebook. disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/slack_tongue.lua000066400000000000000000000045471522247547500225350ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "slack_tongue" disease.expertise_id = 7 disease.visuals_id = 5 disease.name = _S.diseases.slack_tongue.name disease.cause = _S.diseases.slack_tongue.cause disease.symptoms = _S.diseases.slack_tongue.symptoms disease.cure = _S.diseases.slack_tongue.cure disease.cure_price = 900 disease.emergency_sound = "emerg011.wav" disease.emergency_number = 18 disease.contagious = false disease.initPatient = function(patient) if math.random(0, 1) == 1 then patient:setType("Slack Female Patient") patient:setLayer(0, math.random(5, 8) * 2) else patient:setType("Slack Male Patient") patient:setLayer(0, math.random(1, 5) * 2) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(2, 0) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "x_ray", "scanner", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "slack_tongue", } -- If a machine is required a small icon should appear in the drug casebook. disease.requires_machine = true return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/sleeping_illness.lua000066400000000000000000000047431522247547500234140ustar00rootroot00000000000000--[[ Copyright (c) 2009 Haico "brainball" van Roeden Based on gut_rot.lua by Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "sleeping_illness" disease.expertise_id = 13 disease.visuals_id = 11 disease.name = _S.diseases.sleeping_illness.name disease.cause = _S.diseases.sleeping_illness.cause disease.symptoms = _S.diseases.sleeping_illness.symptoms disease.cure = _S.diseases.sleeping_illness.cure disease.yawn = true disease.cure_price = 750 disease.emergency_sound = "emerg015.wav" disease.emergency_number = 18 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/spare_ribs.lua000066400000000000000000000046241522247547500222040ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "spare_ribs" disease.expertise_id = 18 disease.non_visuals_id = 2 disease.name = _S.diseases.spare_ribs.name disease.cause = _S.diseases.spare_ribs.cause disease.symptoms = _S.diseases.spare_ribs.symptoms disease.cure = _S.diseases.spare_ribs.cure disease.cure_price = 1100 disease.emergency_sound = "emerg023.wav" disease.emergency_number = 4 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "ward", "operating_theatre", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/sweaty_palms.lua000066400000000000000000000046101522247547500225560ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "sweaty_palms" disease.expertise_id = 31 disease.non_visuals_id = 15 disease.name = _S.diseases.sweaty_palms.name disease.cause = _S.diseases.sweaty_palms.cause disease.symptoms = _S.diseases.sweaty_palms.symptoms disease.cure = _S.diseases.sweaty_palms.cure disease.cure_price = 600 disease.emergency_sound = "emerg017.wav" disease.emergency_number = 14 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "psych", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/the_squits.lua000066400000000000000000000047211522247547500222410ustar00rootroot00000000000000--[[ Copyright (c) 2009 Haico "brainball" van Roeden Based on gut_rot.lua by Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "the_squits" disease.expertise_id = 29 disease.non_visuals_id = 13 disease.name = _S.diseases.the_squits.name disease.cause = _S.diseases.the_squits.cause disease.symptoms = _S.diseases.the_squits.symptoms disease.cure = _S.diseases.the_squits.cure disease.cure_price = 400 disease.emergency_sound = "emerg002.wav" disease.emergency_number = 18 disease.more_loo_use = true disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/third_degree_sideburns.lua000066400000000000000000000046721522247547500245610ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "third_degree_sideburns" disease.expertise_id = 26 disease.non_visuals_id = 10 disease.name = _S.diseases.third_degree_sideburns.name disease.cause = _S.diseases.third_degree_sideburns.cause disease.symptoms = _S.diseases.third_degree_sideburns.symptoms disease.cure = _S.diseases.third_degree_sideburns.cure disease.cure_price = 550 disease.emergency_sound = "emerg030.wav" disease.emergency_number = 13 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "psych", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/transparency.lua000066400000000000000000000044531522247547500225640ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "transparency" disease.expertise_id = 15 disease.visuals_id = 13 disease.name = _S.diseases.transparency.name disease.cause = _S.diseases.transparency.cause disease.symptoms = _S.diseases.transparency.symptoms disease.cure = _S.diseases.transparency.cure disease.cure_price = 800 disease.emergency_sound = "emerg022.wav" disease.emergency_number = 12 disease.contagious = false disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Transparent Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Transparent Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "scanner", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/tv_personalities.lua000066400000000000000000000046321522247547500234440ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "tv_personalities" disease.expertise_id = 22 disease.non_visuals_id = 6 disease.name = _S.diseases.tv_personalities.name disease.cause = _S.diseases.tv_personalities.cause disease.symptoms = _S.diseases.tv_personalities.symptoms disease.cure = _S.diseases.tv_personalities.cure disease.cure_price = 800 disease.emergency_sound = "emerg003.wav" disease.emergency_number = 14 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "psych", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/uncommon_cold.lua000066400000000000000000000047031522247547500227050ustar00rootroot00000000000000--[[ Copyright (c) 2009 Haico "brainball" van Roeden Based on gut_rot.lua by Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "uncommon_cold" disease.expertise_id = 16 disease.non_visuals_id = 0 disease.name = _S.diseases.uncommon_cold.name disease.cause = _S.diseases.uncommon_cold.cause disease.symptoms = _S.diseases.uncommon_cold.symptoms disease.cure = _S.diseases.uncommon_cold.cure disease.cure_price = 300 disease.emergency_sound = "emerg004.wav" disease.emergency_number = 18 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "pharmacy", } return disease CorsixTH-0.70.0/CorsixTH/Lua/diseases/unexpected_swelling.lua000066400000000000000000000047011522247547500241170ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local disease = {} disease.id = "unexpected_swelling" disease.expertise_id = 35 disease.non_visuals_id = 19 disease.name = _S.diseases.unexpected_swelling.name disease.cause = _S.diseases.unexpected_swelling.cause disease.symptoms = _S.diseases.unexpected_swelling.symptoms disease.cure = _S.diseases.unexpected_swelling.cure disease.cure_price = 500 disease.emergency_sound = "emerg018.wav" disease.emergency_number = 5 disease.contagious = true disease.initPatient = function(patient) if math.random(0, 1) == 0 then patient:setType("Standard Male Patient") patient:setLayer(0, math.random(1, 5) * 2) patient:setLayer(2, math.random(0, 2) * 2) else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(2, 0) end patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(3, 0) patient:setLayer(4, 0) end -- Diagnosis rooms are the rooms other than the GPs office which can be visited -- to aid in diagnosis. The need not be visited, and if they are visited, the -- order in which they are visited is not fixed. disease.diagnosis_rooms = { "general_diag", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "psych", "ward", } -- Treatment rooms are the rooms which must be visited, in the given order, to -- cure the disease. disease.treatment_rooms = { "ward", "operating_theatre", } return disease CorsixTH-0.70.0/CorsixTH/Lua/earthquake.lua000066400000000000000000000215701522247547500204040ustar00rootroot00000000000000--[[ Copyright (c) 2024 Toby "tobylane" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Manages all earthquakes in the world class "Earthquake" ---@type Earthquake local Earthquake = _G["Earthquake"] --[[ All fields relating to the current or next earthquake: active (boolean) If there is a current earthquake, after start_day of start_month has passed, during the warning_length, warning_period or damage timers next_planned (boolean) If the next earthquake has been planned/generated start_month (integer) The month the earthquake warning is triggered (1-12) start_day (integer) The day of the month the earthquake warning is triggered (1-31) size (integer) The amount of damage the earthquake causes (1-9) remaining_damage (integer) The amount of damage this earthquake has yet to inflict (1-9) damage_timer (integer) The number of hours until the earthquake next inflicts damage if active (0-16) warning_timer (integer) The number of hours left until the real damaging earthquake begins (0-600) current_map_earthquake (integer) The number of earthquakes that have happened on this map so far disabled (boolean) If earthquakes have been disabled by the cheat menu --]] local damage_time = 16 -- Hours between each damage caused by an earthquake local warning_period = 600 -- Hours between warning and main quakes local warning_length = 25 -- Length of early warning quake local month_length = { 31, -- Jan 28, -- Feb (29 in leap years, but TH doesn't have leap years) 31, -- Mar 30, -- Apr 31, -- May 30, -- Jun 31, -- Jul 31, -- Aug 30, -- Sep 31, -- Oct 30, -- Nov 31, -- Dec } --! Track earthquakes in the world --!param world (table) Owned by this world --!param convert (boolean) If true, world is upgraded from before this Earthquake class function Earthquake:Earthquake(world, convert) self.world = world if not convert then self.current_map_earthquake = 0 self:nextEarthquake() end end --! Perform actions to simulate an active earthquake. function Earthquake:tick() if not self.active or self.disabled then return end local hosp = self.world:getLocalPlayerHospital() -- Check if this is the day that the earthquake is supposed to stop if self.remaining_damage == 0 then self.active = false hosp:tickEarthquake("end") -- If the earthquake measured more than 7 on the richter scale, tell the user about it if self.size > 7 then hosp:giveAdvice({_A.earthquake.ended:format(math.floor(self.size))}) end -- Set up the next earthquake date self:nextEarthquake() return end -- Start of warning quake if self.warning_timer == warning_period then self.next_planned = false hosp:tickEarthquake("warning_start") end -- End of warning quake if self.warning_timer >= warning_period - warning_length and self.warning_timer - self.world.hours_per_tick < warning_period - warning_length then hosp:tickEarthquake("end") end if self.warning_timer > 0 then self.warning_timer = self.warning_timer - self.world.hours_per_tick -- Nothing more to do during inactive warning period if self.warning_timer < warning_period - warning_length then return end -- Start of real earthquake if self.warning_timer <= 0 then hosp:tickEarthquake("main_start") end end -- All earthquakes start and end small (small earthquakes never become -- larger), so when there has been less than 2 damage applied or only -- 2 damage remaining to be applied, move the screen with less -- intensity than otherwise. if self.remaining_damage <= 2 or self.size - self.remaining_damage <= 2 then hosp:tickEarthquake("small_damage") else hosp:tickEarthquake("large_damage") end hosp:tickEarthquake("sound") -- Do not continue to damage phase while in a warning quake if self.warning_timer > 0 then return end -- Check if damage phase should go ahead self.damage_timer = self.damage_timer - self.world.hours_per_tick if self.damage_timer > 0 then return end for _, room in pairs(self.world.rooms) do for object, _ in pairs(room.objects) do if object:isMachine() then object:earthquakeImpact(room) end end end self.remaining_damage = self.remaining_damage - 1 self.damage_timer = self.damage_timer + damage_time -- A patient might fall over during an earthquake. local hospital = self.world:getLocalPlayerHospital() -- loop through the patients and allow the possibility for them to fall over for _, patient in ipairs(hospital.patients) do if not patient.in_room and patient.falling_anim and math.random(1,2) == 2 then patient:falling(false) end end end --! Check if it's time for an earthquake function Earthquake:onEndDay() if self.world.game_date:monthOfGame() == self.start_month and self.world.game_date:dayOfMonth() == self.start_day and not self.disabled then -- Mark the planned earthquake as ready to start in the next tick. self.active = true end end --! Called when it is time to have another earthquake function Earthquake:nextEarthquake() self.active = false local level_config = self.world.map.level_config -- Check carefully that no value that we are going to use is going to be nil if level_config.quake_control and level_config.quake_control[self.current_map_earthquake] and level_config.quake_control[self.current_map_earthquake].Severity ~= 0 then -- This map has rules to follow when making earthquakes, let's follow them local control = level_config.quake_control[self.current_map_earthquake] self.start_month = math.random(control.StartMonth, control.EndMonth) -- Month length of the start of the earthquake. From start to finish -- earthquakes do not persist for >= a month so we can wrap all days -- after the start around the month length unambiguously. local eqml = month_length[(self.start_month % 12) + 1] self.start_day = math.random(1, eqml) self.size = control.Severity self.remaining_damage = self.size self.damage_timer = damage_time self.warning_timer = warning_period self.current_map_earthquake = self.current_map_earthquake + 1 self.next_planned = true end end --! Create a small or medium quake now for the "Create Earthquake" cheat function Earthquake:createEarthquake() -- Make sure an earthquake isn't already happening, or are disabled if self.active or self.disabled then return false end self.start_day = self.world.game_date:dayOfMonth() self.start_month = self.world.game_date:monthOfGame() if not self.next_planned then -- Forcefully make an earthquake if there are none left in level file self.size = math.random(1, 6) -- Above 6 seems disastrous self.remaining_damage = self.size self.damage_timer = damage_time self.warning_timer = warning_period end end --! Check if there is a current earthquake --!return (boolean) True if there is a current earthquake function Earthquake:isActive() return self.active end --! Afterload sections before 189 were taken from World --!param old (integer) The old version of the save game. --!param new (integer) The current version of the save game format. function Earthquake:afterLoad(old, new) -- luacheck: ignore 212 keep params from parent function local old_quake = self.world.next_earthquake if old < 115 then if old_quake and old_quake.active then local rd = 0 for _, room in pairs(self.world.rooms) do for object, _ in pairs(room.objects) do if object.quake_points then rd = math.max(rd, object.quake_points) object.quake_points = nil end end end old_quake.remaining_damage = rd old_quake.damage_timer = damage_time old_quake.warning_timer = 0 end end if old < 189 then self.disabled = self.world.earthquakes_disabled -- Used in cheats if old_quake then for k, v in pairs(old_quake) do self[k] = v end else self:nextEarthquake() end end end CorsixTH-0.70.0/CorsixTH/Lua/endconditions.lua000066400000000000000000000252421522247547500211120ustar00rootroot00000000000000--[[ Copyright (c) 2024 Toby "tobylane" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- The "Winning and Losing Conditions" section of level files uses Criteria -- numbers from the order of this table. Any Criteria numbers higher than -- the size of this table will be silently ignored. -- Icon, icon_file, formats and two_tooltips are used in the progress report dialog. local local_criteria_variable = { {name = "reputation", icon = 10, formats = 2}, {name = "balance", icon = 11, formats = 2}, {name = "percentage_cured", icon = 12, formats = 2}, {name = "num_cured" , icon = 13, formats = 2}, {name = "percentage_killed",icon = 14, formats = 2}, {name = "value", icon = 15, formats = 2}, -- Hospital value -- New criteria {name = "staff_happiness", icon = 16, icon_file = "MPointer", formats = 2, two_tooltips = true}, {name = "patient_happiness",icon = 18, icon_file = "MPointer", formats = 2, two_tooltips = true}, } -- A table of functions for fetching criteria values that cannot be measured -- directly from a hospital attribute of the same name. local get_custom_criteria = { staff_happiness = function(hospital) return 100 * hospital:getAverageStaffAttribute("happiness", 0.5) end, patient_happiness = function(hospital) return 100 * hospital:getAveragePatientAttribute("happiness", 0.5) end, } class "EndConditions" ---@type EndConditions local EndConditions = _G["EndConditions"] --! Collect the end conditions for this level, if they exist --!param level_config (table) The map's level_config, containing criteria. --!param level_number (integer) The number of the map, if playing a campaign. --!param freebuild (boolean) The free build status of the world function EndConditions:EndConditions(level_config, level_number, freebuild) self.win_goals, self.lose_goals, self.highest_group = {}, {}, 0 if freebuild then return end local start, town = {} if level_number and level_config.towns[level_number] then town = level_config.towns[level_number] else town = level_config.town end start.balance = town.StartCash start.reputation = town.StartRep self:_loadGoals(level_config.win_criteria, self.win_goals, start, true) self:_loadGoals(level_config.lose_criteria, self.lose_goals, start) end --! Load conditions (goals) to win and lose from the level config, -- and store them in self.win_goals and self.lose_goals in their groups. -- Put the highest number of group of conditions in self.highest_group. -- These groups are often incomplete, possibly empty -- ie more groups of conditions that lead to loss than win. --!param criteria_tbl (table) The map's win or lose criteria. --!param goals (table) The class table to fill --!param start (table) The starting values of the hospital attributes --!param win (boolean) If the win goals are being filled this time function EndConditions:_loadGoals(criteria_tbl, goals, start, win) for _, values in pairs(criteria_tbl) do if local_criteria_variable[values.Criteria] then local crit_name = local_criteria_variable[values.Criteria].name if not goals[values.Group] then goals[values.Group] = {} end goals[values.Group][crit_name] = { name = crit_name, boundary = values.Bound, criterion = values.Criteria, max_min = values.MaxMin, icon = local_criteria_variable[values.Criteria].icon, icon_file = local_criteria_variable[values.Criteria].icon_file, formats = local_criteria_variable[values.Criteria].formats, two_tooltips = local_criteria_variable[values.Criteria].two_tooltips, start = start[crit_name] or 0, } if win then goals[values.Group][crit_name].win_value = values.Value else goals[values.Group][crit_name].lose_value = values.Value end if values.Group > self.highest_group then self.highest_group = values.Group end end end end --! Checks if the player has won or lost by meeting all of any one group. --!param hospital (Hospital) The hospital of the tests. --!return state (string) "win" or "nothing", or --!return reason (string) If the player lost, the latest criteria met --!return limit (number) If the player lost, the number limit which the player passed function EndConditions:checkEndGame(hospital) -- If there are no goals at all, do nothing. if (not self.win_goals or #self.win_goals == 0) and (not self.lose_goals or #self.lose_goals == 0) then return "nothing" end for _, tbl in pairs(self.win_goals) do local score = self:_checkWinGroup(hospital, tbl) if score == 1 and hospital.loan == 0 then return "win" end end for _, tbl in pairs(self.lose_goals) do local reason, limit = self:_checkLoseGroup(hospital, tbl) if reason then return reason, limit end end -- No win or lose group was met, or player has a loan preventing a win return "nothing" end --! Generate table for the Progress Report dialog and progress advice. --!param hospital (Hospital) The hospital of the tests. --!return report_table (table) Maximum five fields of -- lose criteria with the smallest gap between current value and boundary, -- then fill up to five with win criteria in the best group. function EndConditions:generateReportTable(hospital) local count, lose_table, key_lose_goals_table, report_table, unique_criteria_set = 0, {}, {}, {}, {} local win_group = self.win_goals[self:_findBestWinGroup(hospital)] or {} -- Collect lose criteria over the boundary for group, tbl in pairs(self.lose_goals) do lose_table[group] = self:_checkLoseGroup(hospital, tbl, true) end -- Get the most relevant of each criterion in all groups for _, group_table in pairs(lose_table) do for crit_name, crit_table in pairs(group_table) do if not key_lose_goals_table[crit_name] or key_lose_goals_table[crit_name].gap > crit_table.gap then key_lose_goals_table[crit_name] = crit_table end end end -- Move into a numbered table for _, crit_table in pairs(key_lose_goals_table) do table.insert(report_table, crit_table) count = count + 1 end -- Limit the table to five goals, ordered by progress towards meeting the lose goal if count > 5 then table.sort(report_table, function(a,b) return a.progress > b.progress end) for n = 6, #report_table do report_table[n] = nil end end -- Fill up the report table with win criteria not already present as lose criteria for _, crit in pairs(report_table) do unique_criteria_set[crit.name] = true end for i = 1, #local_criteria_variable do if count == 5 then break end local name = local_criteria_variable[i].name if win_group[name] and not unique_criteria_set[name] then count = count + 1 report_table[count] = win_group[name] end end -- Order by criteria number, as some criteria icons shouldn't be next to each other table.sort(report_table, function(a,b) return a.criterion < b.criterion end) return report_table end --!param hospital (Hospital) The hospital of the tests. --!param lose_table (table) A group of lose conditions from level_config. --!param report (boolean) Whether a report table will be returned. --!return Losing criteria name and the limit breached, -- or if report is true, the report table. function EndConditions:_checkLoseGroup(hospital, lose_table, report) local report_table, met_count, total_count, reason, limit = {}, 0, 0 for crit_name, crit_table in pairs(lose_table) do local boundary, lose_value = crit_table.boundary, crit_table.lose_value local max_min = crit_table.max_min == 1 and 1 or -1 local measure = self:getAttribute(hospital, crit_name) if report then -- Collect the criteria that should be reported on if (measure - boundary) * max_min > 0 then report_table[crit_name] = crit_table report_table[crit_name].progress = (1 - ((measure - lose_value)/(boundary - lose_value))) end else if (measure - lose_value) * max_min > 0 then reason, limit = crit_name, lose_value met_count = met_count + 1 end end total_count = total_count + 1 end if report then return report_table end -- Have all criteria of the group been met? if met_count == total_count then -- The latest, probably only, criterion met for the lose message return reason, limit end end --!param hospital (Hospital) The hospital of the tests. --!param win_table (table) A group of win conditions from level_config --!return (number 0-1) The score of this group. 0 is no goals met, 1 is all met function EndConditions:_checkWinGroup(hospital, win_table) local met_count, total_count = 0, 0 for crit_name, crit_table in pairs(win_table) do local max_min = crit_table.max_min == 1 and 1 or -1 if (self:getAttribute(hospital, crit_name) - crit_table.win_value) * max_min >= 0 then met_count = met_count + 1 end total_count = total_count + 1 end if met_count > 0 then return met_count / total_count else return 0 end end -- Find the group of win conditions best met by the hospital. --!param hospital (Hospital) The hospital of the tests. --!return best (number) The number of the best group. function EndConditions:_findBestWinGroup(hospital) local score, best = 0, 1 for group = 1, self.highest_group do if self.win_goals[group] then local test = self:_checkWinGroup(hospital, self.win_goals[group]) if test and test > score then best = group end end end -- Return the group number of the group that is most met by the hospital return best end -- Fetch the attribute value, through the get_custom_criteria table of -- functions if there is one for this attribute. function EndConditions:getAttribute(hospital, attribute) if get_custom_criteria[attribute] then return get_custom_criteria[attribute](hospital) else return hospital[attribute] end end CorsixTH-0.70.0/CorsixTH/Lua/entities/000077500000000000000000000000001522247547500173665ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoid.lua000066400000000000000000001320701522247547500217000ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! An `Entity` which occupies a single tile and is capable of moving around the map. class "Humanoid" (Entity) ---@type Humanoid local Humanoid = _G["Humanoid"] local walk_animations = permanent"humanoid_walk_animations"({}) local door_animations = permanent"humanoid_door_animations"({}) local die_animations = permanent"humanoid_die_animations"({}) local falling_animations = permanent"humanoid_falling_animations"({}) local on_ground_animations = permanent"humanoid_on_ground_animations"({}) local get_up_animations = permanent"humanoid_get_up_animations"({}) local shake_fist_animations = permanent"humanoid_shake_fist_animations"({}) local pee_animations = permanent"humanoid_pee_animations"({}) local vomit_animations = permanent"humanoid_vomit_animations"({}) local tap_foot_animations = permanent"humanoid_tap_foot_animations"({}) local yawn_animations = permanent"humanoid_yawn_animations"({}) local check_watch_animations = permanent"humanoid_check_watch_animations"({}) local mood_icons = permanent"humanoid_mood_icons"({}) local function walk_anims(name, walkN, walkE, idleN, idleE, doorL, doorE, knockN, knockE, swingL, swingE) walk_animations[name] = { walk_east = walkE, walk_north = walkN, idle_east = idleE, idle_north = idleN, } door_animations[name] = { entering = doorE, leaving = doorL, entering_swing = swingE, leaving_swing = swingL, knock_north = knockN, knock_east = knockE, } end --- -- @param name The name of the patient class these death animations are for. -- @param fall The patient's fall animation. -- @param rise The transparent getting up animation for heaven death patients who have been lying dead on the ground. -- @param rise_hell The opaque getting up animation for hell death patients who have been lying dead on the ground. -- @param wings The heaven death animation in which the patient's wings appear. -- @param hands The heaven death animation which occurs after the wings animation when the patient puts their hands together. -- @param fly The heaven death animation which makes patients fly upwards to heaven. -- @param extra Dead untreated patients who don't transform before falling over use this animation afterwards to transform into a standard male/female. --- local function die_anims(name, fall, rise, rise_hell, wings, hands, fly, extra) die_animations[name] = { fall_east = fall, rise_east = rise, rise_hell_east = rise_hell, wings_east = wings, hands_east = hands, fly_east = fly, extra_east = extra, } end local function falling_anim(name, fallingAnim) falling_animations[name] = fallingAnim end local function on_ground_anim(name, on_groundAnim) on_ground_animations[name] = on_groundAnim end local function get_up_anim(name, get_upAnim) get_up_animations[name] = get_upAnim end local function shake_fist_anim(name, shake_fistAnim) shake_fist_animations[name] = shake_fistAnim end local function vomit_anim(name, vomitAnim) vomit_animations[name] = vomitAnim end local function yawn_anim(name, yawnAnim) yawn_animations[name] = yawnAnim end local function tap_foot_anim(name, tap_footAnim) tap_foot_animations[name] = tap_footAnim end local function check_watch_anim(name, check_watchAnim) check_watch_animations[name] = check_watchAnim end local function pee_anim(name, peeAnim) pee_animations[name] = peeAnim end local function moods(name, iconNo, prio, onHover) mood_icons[name] = {icon = iconNo, priority = prio, on_hover = onHover} end --! Filter animations for patients and set the give marker positions. local function assignPatientMarkers(anims, name, ...) local anim_mgr = TheApp.animation_manager for hum_type, anim in pairs(anims) do if string.find(hum_type, "Patient") then if name then anim = anim[name] end anim_mgr:setPatientMarker(anim, ...) end end end --! Filter animations for staff and set the give marker positions. local function assignStaffMarkers(anims, name, ...) local anim_mgr = TheApp.animation_manager for hum_type, anim in pairs(anims) do if not string.find(hum_type, "Patient") then if name then anim = anim[name] end anim_mgr:setStaffMarker(anim, ...) end end end -- | Walk animations | -- | Name |WalkN|WalkE|IdleN|IdleE|DoorL|DoorE|KnockN|KnockE|SwingL|SwingE| Notes -----+---------------------------------------+-----+-----+-----+-----+-----+-----+------+------+-------+---------+ walk_anims("Standard Male Patient", 16, 18, 24, 26, 182, 184, 286, 288, 2040, 2042) -- 0-16, ABC walk_anims("Gowned Male Patient", 406, 408, 414, 416) -- 0-10 walk_anims("Stripped Male Patient", 818, 820, 826, 828) -- 0-16 walk_anims("Stripped Male Patient 2", 818, 820, 826, 828) -- 0-16 walk_anims("Stripped Male Patient 3", 818, 820, 826, 828) walk_anims("Alternate Male Patient", 2704, 2706, 2712, 2714, 2748, 2750, 2764, 2766) -- 0-10, ABC walk_anims("Slack Male Patient", 1484, 1486, 1492, 1494, 1524, 1526, 2764, 1494) -- 0-14, ABC walk_anims("Slack Female Patient", 0, 2, 8, 10, 258, 260, 294, 296, 2864, 2866) -- 0-16, ABC walk_anims("Transparent Male Patient", 1064, 1066, 1072, 1074, 1104, 1106, 1120, 1074) -- 0-16, ABC walk_anims("Standard Female Patient", 0, 2, 8, 10, 258, 260, 294, 296, 2864, 2866) -- 0-16, ABC walk_anims("Gowned Female Patient", 2876, 2878, 2884, 2886) -- 0-8 walk_anims("Stripped Female Patient", 834, 836, 842, 844) -- 0-16 walk_anims("Stripped Female Patient 2", 834, 836, 842, 844) -- 0-16 walk_anims("Stripped Female Patient 3", 834, 836, 842, 844) walk_anims("Transparent Female Patient",3012, 3014, 3020, 3022, 3052, 3054, 3068, 3070) -- 0-8, ABC walk_anims("Chewbacca Patient", 858, 860, 866, 868, 3526, 3528, 4150, 4152) walk_anims("Elvis Patient", 978, 980, 986, 988, 3634, 3636, 4868, 4870) walk_anims("Invisible Patient", 1642, 1644, 1840, 1842, 1796, 1798, 4192, 4194) walk_anims("Alien Male Patient", 3598, 3600, 3606, 3608, 182, 184, 286, 288, 3626, 3628) -- remember, no "normal"-doors animation walk_anims("Alien Female Patient", 3598, 3600, 3606, 3608, 258, 260, 294, 296, 3626, 3628) -- identical to male; however death animations differ walk_anims("Doctor", 32, 34, 40, 42, 670, 672, nil, nil, 4750, 4752) walk_anims("Surgeon", 2288, 2290, 2296, 2298) walk_anims("Nurse", 1206, 1208, 1650, 1652, 3264, 3266, nil, nil, 3272, 3274) walk_anims("Handyman", 1858, 1860, 1866, 1868, 3286, 3288, nil, nil, 3518, 3520) walk_anims("Receptionist", 3668, 3670, 3676, 3678) -- Could do with door animations walk_anims("VIP", 266, 268, 274, 276) walk_anims("Inspector", 266, 268, 274, 276) walk_anims("Grim Reaper", 994, 996, 1002, 1004) local kfp1, kfp2, kfp3, kfp4, kfp5, kfp6, kfp7, kfp8 kfp1, kfp2, kfp3, kfp4 = {-19, -15, "px"}, {-26, -17, "px"}, {-26, -15, "px"}, {-22, -13, "px"} kfp5, kfp6, kfp7, kfp8 = {-19, -9, "px"}, {-13, -5, "px"}, {-8, -4, "px"}, {-5, 0, "px"} local doorE_markers = { -- Anim 3288 in particular kfp1, kfp2, kfp2, kfp2, kfp3, kfp4, kfp5, kfp6, kfp7, kfp8, } local kfp9, kfp10 kfp1, kfp2, kfp3, kfp4, kfp5 = {-7, 0, "px"}, {-14, 6, "px"}, {-12, 5, "px"}, {-11, 5, "px"}, {-7, 3, "px"} kfp6, kfp7, kfp8, kfp9, kfp10 = {-4, 0, "px"}, {2, -1, "px"}, {10, -3, "px"}, {14, -7, "px"}, {20, -11, "px"} local doorL_markers = { -- Anim 3286 in particular. kfp1, kfp2, kfp2, kfp3, kfp4, kfp5, kfp6, kfp7, kfp7, kfp8, kfp9, kfp10, } assignPatientMarkers(door_animations, "entering", doorE_markers) assignPatientMarkers(door_animations, "leaving", doorL_markers) assignPatientMarkers(door_animations, "leaving_swing", {3, 4, "px"}, {32, -14, "px"}) assignPatientMarkers(door_animations, "entering_swing", {-32, -10, "px"}, {0, -2, "px"}) assignStaffMarkers(door_animations, "entering", doorE_markers) assignStaffMarkers(door_animations, "leaving", doorL_markers) assignStaffMarkers(door_animations, "leaving_swing", {3, 4, "px"}, {32, -14, "px"}) assignStaffMarkers(door_animations, "entering_swing", {-32, -10, "px"}, {0, -2, "px"}) -- | Die Animations | -- | Name |FallE|RiseE|RiseE Hell|WingsE|HandsE|FlyE|ExtraE| Notes 2248 ----+--------------------------------+-----+-----+----------+-----+------+-----+------ die_anims("Standard Male Patient", 1682, 2434, 384, 2438, 2446, 2450) -- Always facing east or south die_anims("Alternate Male Patient", 1682, 2434, 3404, 2438, 2446, 2450) die_anims("Slack Male Patient", 1682, 2434, 384, 2438, 2446, 2450) -- TODO: Where is slack male transformation? Uses alternate male for now. die_anims("Transparent Male Patient", 4412, 2434, 384, 2438, 2446, 2450, 4416) -- Extra = Transformation die_anims("Standard Female Patient", 3116, 3208, 580, 3212, 3216, 3220) die_anims("Slack Female Patient", 4288, 3208, 580, 3212, 3216, 3220) die_anims("Transparent Female Patient",4420, 3208, 580, 3212, 3216, 3220, 4428) -- Extra = Transformation die_anims("Chewbacca Patient", 4182, 2434, 384, 2438, 2446, 2450, 1682) -- Only males die... (1222 is the Female) die_anims("Elvis Patient", 974, 2434, 384, 2438, 2446, 2450, 4186) -- Extra = Transformation die_anims("Invisible Patient", 4200, 2434, 384, 2438, 2446, 2450) die_anims("Alien Male Patient", 4882, 2434, 384, 2438, 2446, 2450) die_anims("Alien Female Patient", 4886, 3208, 580, 3212, 3216, 3220) -- The next fours sets belong together, but are done like this so we can use them on their own -- I also had difficulty in keeping them together, as the patient needs to be on the floor -- for the duration of the earth quake before getting back up -- Shaking of fist could perhaps be used when waiting too long -- | Falling Animations | -- | Name |Anim| Notes ----+--------------------------------+-----+-----+-----+-----+------+------+ falling_anim("Standard Male Patient", 1682) falling_anim("Standard Female Patient", 3116) -- | On_ground Animations | -- | Name |Anim| Notes ----+--------------------------------+-----+-----+-----+-----+------+------+ on_ground_anim("Standard Male Patient", 1258) on_ground_anim("Standard Female Patient", 1764) -- | Get_up Animations | -- | Name |Anim| Notes ----+--------------------------------+-----+-----+-----+-----+------+------+ get_up_anim("Standard Male Patient", 384) get_up_anim("Standard Female Patient", 580) -- | Shake_fist Animations | -- | Name |Anim| Notes ----+--------------------------------+-----+-----+-----+-----+------+------+ shake_fist_anim("Standard Male Patient", 392) -- bloaty head patients lose head! assignPatientMarkers(shake_fist_animations, nil, {0.0, 0.0}) -- | Vomit Animations | -- | Name |Anim | Notes ----+-----------------------------------+-----+ vomit_anim("Elvis Patient", 1034) vomit_anim("Standard Female Patient", 3184) vomit_anim("Standard Male Patient", 2056) vomit_anim("Alternate Male Patient", 4476) vomit_anim("Chewbacca Patient", 4138) vomit_anim("Invisible Patient", 4204) vomit_anim("Slack Male Patient", 4324) vomit_anim("Transparent Female Patient", 4452) vomit_anim("Transparent Male Patient", 4384) assignPatientMarkers(vomit_animations, nil, {0.0, 0.0}) -- | Yawn Animations | -- | Name |Anim | Notes ----+-----------------------------------+-----+ yawn_anim("Standard Female Patient", 4864) yawn_anim("Standard Male Patient", 368) --yawn_anim("Alternate Male Patient", 2968) is this one the same as standard male? -- whichever one is used for male, if he wears a hat it will lift when he yawns assignPatientMarkers(yawn_animations, nil, {0.0, 0.0}) -- | Foot tapping Animations | -- | Name |Anim | Notes ----+-----------------------------------+-----+ tap_foot_anim("Standard Female Patient", 4464) tap_foot_anim("Standard Male Patient", 2960) tap_foot_anim("Alternate Male Patient", 360) assignPatientMarkers(tap_foot_animations, nil, {0.0, 0.0}) -- | Check watch Animations | -- | Name |Anim | Notes ----+-----------------------------------+-----+ check_watch_anim("Standard Female Patient", 4468) check_watch_anim("Standard Male Patient", 2964) check_watch_anim("Alternate Male Patient", 364) check_watch_anim("Slack Male Patient", 4060) assignPatientMarkers(check_watch_animations, nil, {0.0, 0.0}) -- | pee Animations | -- | Name |Anim | Notes ----+-----------------------------------+-----+ pee_anim("Elvis Patient", 970) pee_anim("Standard Female Patient", 4744) pee_anim("Slack Female Patient", 4744) pee_anim("Standard Male Patient", 2244) pee_anim("Alternate Male Patient", 4472) pee_anim("Slack Male Patient", 4328) pee_anim("Chewbacca Patient", 4178) pee_anim("Invisible Patient", 4208) pee_anim("Transparent Female Patient", 4852) pee_anim("Transparent Male Patient", 4848) assignPatientMarkers(pee_animations, nil, {0.0, 0.0}) -- Some icons should only appear when the player hovers over the humanoid -- Higher priority is more important. -- | Available Moods | -- | Name |Icon|Priority|On Hover| Notes -----+-----------------+----+--------+-----------+ moods("reflexion", 4020, 5) moods("cantfind", 4050, 3) moods("idea1", 2464, 10) moods("idea2", 2466, 11) moods("idea3", 4044, 12) moods("staff_wait", 4054, 20) moods("tired", 3990, 30) moods("pay_rise", 4576, 40) moods("thirsty", 3986, 4) moods("cold", 3994, 0, true) -- These have no priority since moods("hot", 3988, 0, true) -- they will be shown when hovering -- no matter what other priorities. moods("queue", 4568, 70) moods("poo", 3996, 5) moods("sad_money", 4018, 55) moods("patient_wait", 5006, 39) moods("epidemy1", 4566, 55) moods("epidemy2", 4570, 55) moods("epidemy3", 4572, 55) moods("epidemy4", 4574, 55) moods("sad1", 3992, 39) -- unused? moods("sad2", 4578, 40) moods("dying1", 4000, 41) moods("dying2", 4002, 42) moods("dying3", 4004, 43) moods("dying4", 4006, 44) moods("dying5", 4008, 45) moods("dead", 4046, 60) moods("cured", 4048, 60) moods("emergency", 3914, 50) moods("exit", 4052, 60) --!param ... Arguments for base class constructor. function Humanoid:Humanoid(...) self:Entity(...) self.action_queue = {} self.last_move_direction = "east" self.attributes = {} self.attributes["warmth"] = 0.29 self.attributes["happiness"] = 1 -- patients should be not be fully well when they come to your hospital and if it is staff there is no harm done! self.attributes["health"] = math.random(80, 100) /100 self.active_moods = {} self.should_knock_on_doors = false self.speed = "normal" self.build_callbacks = {--[[set]]} self.remove_callbacks = {--[[set]]} self.staff_change_callbacks = {--[[set]]} self:setIfHoverMoodsVisible() end -- Save game compatibility function Humanoid:afterLoad(old, new) if old < 38 and new >= 38 then -- should existing patients be updated and be getting really ill? -- adds the new variables for health icons self.attributes["health"] = math.random(60, 100) /100 end -- make sure female slack patients have the correct animation if old < 42 and new >= 42 then if self:isType("Slack Female Patient") then self.die_anims = die_animations["Slack Female Patient"] end end if old < 77 and new >= 77 then self.has_vomitted = 0 end if old < 49 and new >= 49 then self.has_fallen = 1 end if old < 61 and new >= 61 then -- callbacks changed self.build_callbacks = {} self.remove_callbacks = {} if self.build_callback then self.build_callbacks[self.build_callback] = true self.build_callback = nil end if self.toilet_callback then self.build_callbacks[self.toilet_callback] = true self.toilet_callback = nil end end if old < 83 and new >= 83 and self:isType("Chewbacca Patient") then self.die_anims.extra_east = 1682 end if old < 134 and new >= 134 then self.staff_change_callbacks = {} end if old < 210 then -- We renamed the old sad7 to sad2; and sad2 - sad6 to dying1 - dying5. -- Make sure we adjust sad2 and sad7 to the new mood names -- Other dying ones aren't an issue if self:isMoodActive("sad2") then self:setMood("sad2", "deactivate") self:setMood("dying1", "activate") end if self:isMoodActive("sad7") then self:setMood("sad7", "deactivate") self:setMood("sad2", "activate") end end for _, action in pairs(self.action_queue) do -- Sometimes actions not actual instances of HumanoidAction HumanoidAction.afterLoad(action, old, new) end Entity.afterLoad(self, old, new) end -- Function which is called when the user clicks on the `Humanoid`. --!param ui (GameUI) The UI which the user in question is using. --!param button (string) One of: "left", "middle", "right". function Humanoid:onClick(ui, button) if TheApp.config.debug then self:dump() end end function Humanoid:getRoom() return self.in_room or Entity.getRoom(self) end function Humanoid:dump() print("-----------------------------------") print("Clicked on: ") print(self:tostring()) print("-----------------------------------") end -- Called when the humanoid is about to be removed from the world. function Humanoid:onDestroy() local x, y = self.tile_x, self.tile_y if x and y then local notify_object = self.world:getObjectToNotifyOfOccupants(x, y) if notify_object then notify_object:onOccupantChange(-1) end end -- Make absolutely sure there are no callbacks left on the humanoid. self:unregisterCallbacks() return Entity.onDestroy(self) end -- Set the `Hospital` which is responsible for treating or employing the -- `Humanoid`. In single player games, this has little effect, but it is very -- important in multiplayer games. --!param hospital (Hospital) The `Hospital` which should be responsible -- for the `Humanoid`. function Humanoid:setHospital(hospital) self.hospital = hospital if not hospital.is_in_world then self:despawn() end end --! Despawn the humanoid. function Humanoid:despawn() local spawn_point = self.world.spawn_points[math.random(1, #self.world.spawn_points)] self:setNextAction(SpawnAction("despawn", spawn_point):setMustHappen(true)) end -- Function to activate/deactivate moods of a humanoid. -- If mood_name is nil it is considered a refresh only. function Humanoid:setMood(mood_name, activate) if mood_name then if activate and activate ~= "deactivate" then if self.active_moods[mood_name] then return -- No use doing anything if it already exists. end self.active_moods[mood_name] = mood_icons[mood_name] else if not self.active_moods[mood_name] then return -- No use doing anything if the mood isn't there anyway. end self.active_moods[mood_name] = nil end end local new_mood = nil -- TODO: Make equal priorities cycle, or make all moods unique for _, value in pairs(self.active_moods) do if new_mood then -- There is a mood, check priorities. if new_mood.priority < value.priority then new_mood = value end else if not value.on_hover then new_mood = value end end end self:setMoodInfo(new_mood) end function Humanoid:setCallCompleted() if self.on_call then CallsDispatcher.onCheckpointCompleted(self.on_call) end end -- Is the given mood in the list of active moods. function Humanoid:isMoodActive(mood) for i, _ in pairs(self.active_moods) do if i == mood then return true end end return false end --! Set whether this humanoid should display its mood on hover. function Humanoid:setIfHoverMoodsVisible() self.hover_moods = true end function Humanoid.getIdleAnimation(humanoid_class) return assert(walk_animations[humanoid_class], "Invalid humanoid class").idle_east end function Humanoid:getCurrentMood() if self.mood_info then return self.mood_info end end --! Collect the objects in a square around the humanoid within the same room. --!param size (int) Size of the square to be searched, as number of rows/columns -- around the humanoid. Size 0 only searches the tile of the humanoid, size 1 -- adds the 8 tiles around the humanoid (one tile in all directions), and so on. --!param object_spec (str or array str) Name(s) of objects to find. --!return (array objs, or table str -> array objects) Found requested objects. -- One array is returned if an object name was supplied, else a table with -- object names to array of objects. function Humanoid:findObjectsInSquare(size, object_spec) -- Prepare for the search. local objs_table = {} if type(object_spec) == "string" then -- Find one type of objects. objs_table[object_spec] = {} else -- Find more types of objects. for _, name in ipairs(object_spec) do objs_table[name] = {} end end local world_map = self.world.map local th_map = world_map.th local self_room_id = th_map:getRoomId(self.tile_x, self.tile_y) -- Search the rectangle for as far as it is within the world. local width, height = world_map.th:size() local entity_map = self.world.entity_map size = (size >= 0) and size or 0 for x = self.tile_x - size, self.tile_x + size do if x >= 1 and x <= width then for y = self.tile_y - size, self.tile_y + size do if y >= 1 and y <= height and th_map:getRoomId(x, y) == self_room_id then for _, obj in ipairs(entity_map:getObjectsAtCoordinate(x, y)) do local entry = objs_table[obj.id] if entry then entry[#entry + 1] = obj end end end end end end -- Return what was promised. if type(object_spec) == "string" then return objs_table[object_spec] else return objs_table end end --! Start the next (always first) action in the queue. function Humanoid:startAction() local action = self.action_queue[1] -- Handle an empty action queue in some way instead of crashing. if not action then self:_handleEmptyActionQueue() -- Inserts an action into the action queue. action = self.action_queue[1] assert(action) end -- Call the action start handler TheApp.humanoid_actions[action.name](action, self) -- If action has been marked as to be interrupted if action == self.action_queue[1] and action.todo_interrupt and not action.uninterruptible then -- Interrupt this action local high_priority = action.todo_interrupt == "high" action.todo_interrupt = nil local on_interrupt = action.on_interrupt if on_interrupt then action.on_interrupt = nil on_interrupt(action, self, high_priority) end end end function Humanoid:setNextAction(action, high_priority) -- Aim: Cleanly finish the current action (along with any subsequent actions -- which must happen), then replace all the remaining actions with the given -- one. local i = 1 local queue = self.action_queue local interrupted = false -- Skip over any actions which must happen while queue[i] and queue[i].must_happen do interrupted = true i = i + 1 end -- Remove actions which are no longer going to happen local done_set = {} for j = #queue, i, -1 do local removed = queue[j] queue[j] = nil if not removed then -- A bug (rare) that removed could be nil. -- but as it's being removed anyway...it could be ignored print("Warning: Action to be removed was nil") else if removed.on_remove then removed.on_remove(removed, self) end if removed.until_leave_queue and not done_set[removed.until_leave_queue] then removed.until_leave_queue:removeValue(self) done_set[removed.until_leave_queue] = true end if removed.object and removed.object:isReservedFor(self) then removed.object:removeReservedUser(self) end if removed.is_entering then local dest_room = self.world:getRoom(removed.x, removed.y) self:unexpectFromRoom(dest_room) if dest_room and removed.reserve_on_resume and removed.reserve_on_resume:isReservedFor(self) then removed.reserve_on_resume:removeReservedUser(self) dest_room:tryAdvanceQueue() end end end end -- Add the new action to the queue queue[i] = action -- Interrupt the current action and queue other actions to be interrupted -- when they start. if interrupted then local current_action = queue[1] for j = 1, i - 1 do queue[j].todo_interrupt = high_priority and "high" or true end -- Try to interrupt current action if not current_action.uninterruptible then local interrupt_handler = current_action.on_interrupt if interrupt_handler then current_action.on_interrupt = nil interrupt_handler(current_action, self, high_priority or false) end end else -- Start the action if it has become the current action self:startAction() end return self end function Humanoid:queueAction(action, pos) if pos then table.insert(self.action_queue, pos + 1, action) if pos == 0 then self:startAction() end else self.action_queue[#self.action_queue + 1] = action end return self end function Humanoid:finishAction(action) if action ~= nil then assert(action == self.action_queue[1], "Can only finish current action") end -- Save the previous action just a while longer. self.previous_action = self.action_queue[1] table.remove(self.action_queue, 1) self:startAction() end -- Check if the humanoid is running actions intended to leave the room, as indicated by the flag function Humanoid:isLeaving() return self.action_queue[1].is_leaving and true or false end -- Check if the humanoid is knocking on a door function Humanoid:isKnockingDoor() return class.is(self:getCurrentAction(), KnockDoorAction) end -- Check if the humanoid is entering room function Humanoid:isEnteringRoom() if self.user_of and self.user_of.object_type.id == "door" then return true end return false end -- Check if there is "is_leaving" action in the action queue function Humanoid:hasLeavingAction() for _, action in ipairs(self.action_queue) do if action.is_leaving then return true end end return false end -- Check if there is "use_screen is_leaving" action in the action queue function Humanoid:hasDressingAndLeavingAction() for _, action in ipairs(self.action_queue) do if action.name == "use_screen" and action.is_leaving then return true end end return false end --! Handle an empty action queue in some way instead of crashing. function Humanoid:_handleEmptyActionQueue() -- if this is a patient that is going home, an empty -- action queue is not a problem if class.is(self, Patient) and self.going_home then return end -- Log what just happened. local message = "Warning: Empty action queue. For humanoid at coord x:" .. self.tile_x .. " y:" .. self.tile_y .. ". Last action: " .. self.previous_action.name if not TheApp.config.debug then -- Notify the user about this in console even if debug mode is disabled. -- Because gameLog() will be silent in console if debug mode is disabled. print(message) print("Automatic recovery has been attempted for empty queue.") end self.world:gameLog("") self.world:gameLog(message) self.world:gameLog(self:tostring()) -- First find out if this humanoid is in a room. local room = self:getRoom() if room then room:makeHumanoidLeave(self) end -- Give the humanoid an action to avoid crashing. if class.is(self, Staff) then self:queueAction(MeanderAction()) elseif class.is(self, GrimReaper) then self:queueAction(IdleAction()) elseif class.is(self, Patient) then self:queueAction(SeekReceptionAction()) else self:queueAction(SeekReceptionAction()) end if TheApp.config.debug then -- Open the dialog of the humanoid as feedback to the user. local ui = self.world.ui if class.is(self, Patient) then ui:addWindow(UIPatient(ui, self)) elseif class.is(self, Staff) then ui:addWindow(UIStaff(ui, self)) end -- Ask user to choose kick off humanoid or do nothing ui:addWindow(UIConfirmDialog(ui, true, _S.errors.dialog_empty_queue, --[[persistable:humanoid_leave_hospital]] function() self.world:gameLog("The humanoid was told to leave the hospital...") if class.is(self, Staff) then self:fire() elseif class.is(self, Patient) then -- Set these variables to increase the likelihood of the humanoid managing to get out of the hospital. self.going_home = false self.hospital = self.world:getLocalPlayerHospital() self:goHome("kicked") end end, nil -- Do nothing on cancel )) else self.world:gameLog("Warning: Humanoid encountered an empty action queue. Recovery has been attempted.") end self.world:gameLog("") self.world:dumpGameLog() end function Humanoid:setType(humanoid_class) assert(walk_animations[humanoid_class], "Invalid humanoid class: " .. tostring(humanoid_class)) self.walk_anims = walk_animations[humanoid_class] self.door_anims = door_animations[humanoid_class] self.die_anims = die_animations[humanoid_class] self.falling_anim = falling_animations[humanoid_class] self.on_ground_anim = on_ground_animations[humanoid_class] self.get_up_anim = get_up_animations[humanoid_class] self.shake_fist_anim = shake_fist_animations[humanoid_class] self.vomit_anim = vomit_animations[humanoid_class] self.yawn_anim = yawn_animations[humanoid_class] self.tap_foot_anim = tap_foot_animations[humanoid_class] self.check_watch_anim = check_watch_animations[humanoid_class] self.pee_anim = pee_animations[humanoid_class] self.humanoid_class = humanoid_class if #self.action_queue == 0 then self:setNextAction(IdleAction()) end self.th:setPartialFlag(self.permanent_flags or 0, false) if humanoid_class == "Invisible Patient" then -- Invisible patients do not have very many pixels to hit, box works better self.permanent_flags = DrawFlags.BoundBoxHitTest else self.permanent_flags = nil end self.th:setPartialFlag(self.permanent_flags or 0) end function Humanoid:isType(humanoid_class) return self.humanoid_class == humanoid_class end -- Helper function for the common case of instructing a `Humanoid` to walk to -- a position on the map. Equivalent to calling `setNextAction` with a walk -- action. --!param tile_x (integer) The X-component of the Lua tile coordinates of the -- tile to walk to. --!param tile_y (integer) The Y-component of the Lua tile coordinates of the -- tile to walk to. --!param must_happen (boolean, nil) If true, then the walk action will not be -- interrupted. function Humanoid:walkTo(tile_x, tile_y, must_happen) self:setNextAction(WalkAction(tile_x, tile_y) :setMustHappen(not not must_happen)) end -- Stub functions for handling fatigue. These are overridden by the staff subclass, -- but also defined here, so we can just call it on any humanoid function Humanoid:tire(amount) end function Humanoid:wake(amount) end function Humanoid:updateSpeed() self.speed = "normal" end function Humanoid:handleRemovedObject(object) local replacement_action if class.is(self, Receptionist) then replacement_action = MeanderAction() elseif object.object_type.id == "bench" or object.object_type.id == "drinks_machine" then replacement_action = IdleAction():setMustHappen(true) end for i, action in ipairs(self.action_queue) do if (action.name == "use_object" or action.name == "staff_reception") and action.object == object then if replacement_action then self:queueAction(replacement_action, i) end if i == 1 then local on_interrupt = action.on_interrupt action.on_interrupt = nil if on_interrupt then on_interrupt(action, self, true) end else table.remove(self.action_queue, i) self.associated_desk = nil -- NB: for the other case, this is already handled in the on_interrupt function end -- Are we in a queue? if self.action_queue[i + 1] and self.action_queue[i + 1].name == "queue" then self.action_queue[i + 1]:onChangeQueuePosition(self) end break end end end -- Adjusts one of the `Humanoid`'s attributes. --!param attribute (string) One of: "happiness", "thirst", "toilet_need", "warmth". --!param amount (number) This amount is added to the existing value for the attribute, -- and is then capped to be between 0 and 1. function Humanoid:changeAttribute(attribute, amount) -- Handle some happiness special cases if attribute == "happiness" and self.humanoid_class then local max_salary = self.world.map.level_config.payroll.MaxSalary if class.is(self, Receptionist) then -- A receptionist is never unhappy self.attributes[attribute] = 1 return true elseif self.profile and self.profile.wage >= max_salary then -- A maximum salaried staff member is never unhappy self.attributes[attribute] = 1 return true end end if self.attributes[attribute] then self.attributes[attribute] = self.attributes[attribute] + amount if self.attributes[attribute] > 1 then self.attributes[attribute] = 1 elseif self.attributes[attribute] < 0 then self.attributes[attribute] = 0 end end end -- Check if it is cold or hot around the humanoid and increase/decrease the -- feeling of warmth accordingly. Returns whether the calling function should proceed. function Humanoid:tickDay() -- No use doing anything if we're going home/fired (or dead) if self.going_home or self.going_to_die or self.dead then return false end local temperature = self.world.map.th:getCellTemperature(self.tile_x, self.tile_y) self.attributes.warmth = self:getAttribute("warmth") * 0.75 + temperature * 0.25 -- If it is too hot or too cold, start to decrease happiness and -- show the corresponding icon. Otherwise we could get happier instead. local min_comfort_temp = 0.22 -- 11 degrees Celsius. local max_comfort_temp = 0.36 -- 18 degrees Celsius. local decrease_factor = 0.10 local increase_happiness = 0.005 local warmth = self:getAttribute("warmth") if warmth and self.hospital then -- Cold: less than comfortable. if warmth < min_comfort_temp then self:changeAttribute("happiness", -decrease_factor * (min_comfort_temp - warmth)) self:setMood("cold", "activate") -- Hot: More than comfortable. elseif warmth > max_comfort_temp then self:changeAttribute("happiness", -decrease_factor * (warmth - max_comfort_temp)) self:setMood("hot", "activate") -- Ideal: Not too cold or too warm. else self:changeAttribute("happiness", increase_happiness) self:setMood("cold", "deactivate") self:setMood("hot", "deactivate") end end return true end -- Helper function that finds out if there is an action queued to use the specified object function Humanoid:goingToUseObject(object_type) for _, action in ipairs(self.action_queue) do if action.object and action.object.object_type.id == object_type then return true end end return false end -- Registers a new build callback for this humanoid. --!param callback (function) The callback to call when a room has been built. function Humanoid:registerRoomBuildCallback(callback) if not self.build_callbacks[callback] then self.build_callbacks[callback] = true else self.world:gameLog("Warning: Trying to re-add room build callback (" .. tostring(callback) .. ") for humanoid (" .. tostring(self) .. ").") end end -- Unregisters a build callback for this humanoid. --!param callback (function) The callback to remove. function Humanoid:unregisterRoomBuildCallback(callback) self.build_callbacks[callback] = nil end function Humanoid:notifyNewRoom(room) for callback, _ in pairs(self.build_callbacks) do callback(room) end end function Humanoid:notifyOfStaffChange(staff) for callback, _ in pairs(self.staff_change_callbacks) do callback(staff) end end -- Registers a new remove callback for this humanoid. --!param callback (function) The callback to call when a room has been removed. function Humanoid:registerRoomRemoveCallback(callback) if not self.remove_callbacks[callback] then self.world:registerRoomRemoveCallback(callback) self.remove_callbacks[callback] = true else self.world:gameLog("Warning: Trying to re-add room remove callback (" .. tostring(callback) .. ") for humanoid (" .. tostring(self) .. ").") end end -- Unregisters a remove callback for this humanoid. --!param callback (function) The callback to remove. function Humanoid:unregisterRoomRemoveCallback(callback) if self.remove_callbacks[callback] then self.world:unregisterRoomRemoveCallback(callback) self.remove_callbacks[callback] = nil end end -- Registers a new staff change callback for this humanoid. --!param callback (function) The callback to call when a staff member has been hired or fired function Humanoid:registerStaffChangeCallback(callback) if self.staff_change_callbacks and not self.staff_change_callbacks[callback] then self.staff_change_callbacks[callback] = true else self.world:gameLog("Warning: Trying to re-add staff callback (" .. tostring(callback) .. ") for humanoid (" .. tostring(self) .. ").") end end -- Unregisters a staff change callback for this humanoid. --!param callback (function) The callback to remove. function Humanoid:unregisterStaffChangeCallback(callback) if self.staff_change_callbacks and self.staff_change_callbacks[callback] then self.staff_change_callbacks[callback] = nil else self.world:gameLog("Warning: Trying to remove nonexistent staff callback (" .. tostring(callback) .. ") from humanoid (" .. tostring(self) .. ").") end end -- Function called when a humanoid is sent away from the hospital to prevent -- further actions taken as a result of a callback function Humanoid:unregisterCallbacks() -- Remove callbacks for new rooms for cb, _ in pairs(self.build_callbacks) do self:unregisterRoomBuildCallback(cb) end -- Remove callbacks for removed rooms for cb, _ in pairs(self.remove_callbacks) do self:unregisterRoomRemoveCallback(cb) end -- Remove callbacks for removed rooms for cb, _ in pairs(self.staff_change_callbacks) do self:unregisterStaffChangeCallback(cb) end -- Remove any message related to the humanoid. if self.message_callback then self:message_callback(true) self.message_callback = nil end end function Humanoid:getCurrentAction() if next(self.action_queue) == nil then error("Action queue was empty. This should never happen.\n" .. self:tostring()) end return self.action_queue[1] end --[[ Return string representation ! Returns string representation of the humanoid like status and action queue !return (string) ]] function Humanoid:tostring() local name = self.profile and self.profile:getFullName() or nil local class = self.humanoid_class and self.humanoid_class or "N/A" local full_name = "humanoid" if (name) then full_name = full_name .. " (" .. name .. ")" end local result = string.format("%s - class: %s", full_name, class) result = result .. string.format("\nWarmth: %.3f Happiness: %.3f Fatigue: %.3f Thirst: %.3f Toilet_Need: %.3f Health: %.3f Service Quality: %.3f", self:getAttribute("warmth"), self:getAttribute("happiness"), self:getAttribute("fatigue"), self:getAttribute("thirst"), self:getAttribute("toilet_need"), self:getAttribute("health"), self.getServiceQuality and self:getServiceQuality() or 0) result = result .. "\nActions: [" for i = 1, #self.action_queue do local action = self.action_queue[i] local action_string = action.name if action.room_type then action_string = action_string .. " - " .. action.room_type elseif action.object then action_string = action_string .. " - " .. action.object.object_type.id elseif action.name == "walk" then action_string = action_string .. " - going to " .. action.x .. ":" .. action.y elseif action.name == "queue" then local distance = action.current_bench_distance if distance == nil then distance = "nil" end local standing = "false" if action.isStanding and action:isStanding() then standing = "true" end action_string = action_string .. " - Bench distance: " .. distance .. " Standing: " .. standing end local flag = action.must_happen and " must_happen" or "" if flag ~= "" then action_string = action_string .. " " .. flag end if i ~= 1 then result = result .. ", " end result = result .. action_string end result = result .. "]" return result end --! Unexpects humanoid from a room, if validly entering this room --!param dest_room (Room) The room the humanoid maybe expected at function Humanoid:unexpectFromRoom(dest_room) -- Unexpect the patient from a possible destination room. if dest_room and dest_room.door.queue then -- 1st condition checks normal room routing -- 2nd checks patients going to toilets, doctors and nurses -- and redundantly checks patients routed between rooms if self.next_room_to_visit == dest_room or (dest_room ~= self.next_room_to_visit and (not self:getRoom() or class.is(self, Staff))) then dest_room.door.queue:unexpect(self) dest_room.door:updateDynamicInfo() end end end -- Get attribute value --!param attribute (string) --!param default_value (float) Number to return if none found. If neither are present, 0 is returned --!return (float) function Humanoid:getAttribute(attribute, default_value) return self.attributes[attribute] or default_value or 0 end --! Checks whether a humanoid is within the specified area or is currently -- walking into it. To properly check whether a humanoid is entering an area, -- pass coordinates 1 tile outside the square where actually need to build. -- For example, if the intended wall of the room being built is outside the -- perimeter (x1, y1) (x2, y2), then need to pass (x1-1, y1-1) (x2+1, y2+1). -- Example input parameters: (50, 55, 60, 65). --!param x1 (int) north-west X position of target area. --!param x2 (int) south-east X position of target area. --!param y1 (int) north-west Y position of target area. --!param y2 (int) south-east Y position of target area. --!return (bool) true if obscuring given area. function Humanoid:isObscuringArea(x1, x2, y1, y2) if self.tile_x then if x1 <= self.tile_x and self.tile_x <= x2 and y1 <= self.tile_y and self.tile_y <= y2 then if (x1 == self.tile_x or x2 == self.tile_x) or (y1 == self.tile_y or y2 == self.tile_y) then -- Humanoid not in the rectangle, but might be walking into it local action = self:getCurrentAction() if action.name ~= "walk" then return false end if action.path_x then -- in a (rare) special case, path_x is nil (see action_walk_start) local next_x = action.path_x[action.path_index] local next_y = action.path_y[action.path_index] if x1 >= next_x or next_x >= x2 or y1 >= next_y or next_y >= y2 then return false end end end return true end end return false end CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/000077500000000000000000000000001522247547500213555ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/grim_reaper.lua000066400000000000000000000033031522247547500243530ustar00rootroot00000000000000--[[ Copyright (c) 2012 Luís "driverpt" Duarte Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "GrimReaper" (Humanoid) ---@type GrimReaper local GrimReaper = _G["GrimReaper"] function GrimReaper:GrimReaper(...) self:Humanoid(...) self.attributes = {} self.hover_cursor = TheApp.gfx:loadMainCursor("default") self.walk_anims = { walk_east = 996, walk_north = 994, idle_east = 1004, idle_north = 1002, } end function GrimReaper:tickDay() return false end function GrimReaper:updateDynamicInfo() -- The grim reaper has no dynamic info to update. end function GrimReaper:afterLoad(old, new) if old < 213 then self.mood_marker = 2 end self:updateDynamicInfo() Humanoid.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/inspector.lua000066400000000000000000000046311522247547500240720ustar00rootroot00000000000000--[[ Copyright (c) 2011 William "sadger" Gatens Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") local AnnouncementPriority = _G["AnnouncementPriority"] --[[ An `Inspector` is called to the hospital after an epidemic to issue a report]] class "Inspector" (Humanoid) ---@type Inspector local Inspector = _G["Inspector"] function Inspector:Inspector(...) self:Humanoid(...) self.hover_cursor = TheApp.gfx:loadMainCursor("default") self.has_been_announced = false end --[[ Labels the inspector as the "Health Inspector" ]] function Inspector:updateDynamicInfo(action_string) self:setDynamicInfo('text', {_S.dynamic_info.health_inspector}) end -- Disable showing inspector mood on hover function Inspector:setIfHoverMoodsVisible() self.hover_moods = false end --[[ Sends the inspector home ]] function Inspector:goHome() if self.going_home then return end --Store a reference to the hospital last visited to send fax to self.last_hospital = self.hospital self:unregisterCallbacks() self.going_home = true self:despawn() end --[[ Called when the inspector has left the map ]] function Inspector:onDestroy() return Humanoid.onDestroy(self) end function Inspector:announce() self.world.ui:playAnnouncement("vip008.wav", AnnouncementPriority.High) end function Inspector:afterLoad(old, new) if old < 213 then self.mood_marker = 2 end self:updateDynamicInfo() Humanoid.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/patient.lua000066400000000000000000001440001522247547500235230ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! A `Humanoid` who is in the hospital for diagnosis and/or treatment. class "Patient" (Humanoid) ---@type Patient local Patient = _G["Patient"] function Patient:Patient(...) self:Humanoid(...) self.hover_cursor = TheApp.gfx:loadMainCursor("patient") self.should_knock_on_doors = true self.treatment_history = {} self.going_home = false -- If set, the patient is going home. self.litter_countdown = nil -- If set, number of tiles to walk before attempting to drop litter. self.has_fallen = 1 self.has_vomitted = 0 self.action_string = "" self.cured = false self.infected = false self.pay_amount = 0 -- To distinguish between actually being dead and having a nil hospital self.dead = false -- Indicates that the patient is being marked for death. The patient may be busy, -- But as soon as the patient is unoccupied he will start the dying scenario based -- on this flag, except the cases when he is cured or sent home while being busy. self.set_to_die = false -- Indicates that the patient on the dying scenario -- Cure should not happen at this state. Patient can't be sent home self.going_to_die = false -- Is the patient reserved for a particular nurse when being vaccinated self.reserved_for = false self.vaccinated = false -- Has the patient been sent to the wrong room and needs redirecting self.needs_redirecting = false -- Indicates is currently some infected patient trying to infect this patient -- Prevents the situation when several infectors trying to infect the same victim self.under_infection_attempt = false -- Is the patient about to be vaccinated? self.vaccination_candidate = false -- Has the patient passed reception? self.has_passed_reception = false -- Diagnostics progress to diagnose the patient. -- Usually this value is in the range from 0 to ~2.5 self.diagnosis_progress = 0 -- Is the patient trying to get to the toilet? ("yes", "no", or "no-toilets") self.going_to_toilet = "no" -- Health history in entries 1..SIZE (may not all exist at first). The "last" -- entry indicates last written entry, "(last+1) % SIZE" is the oldest entry. -- The "size" entry holds the length of the array (that is, SIZE). -- Variable gets automatically initialized on first day. self.health_history = nil end function Patient:onClick(ui, button) if button == "left" then if self.message_callback then self:message_callback() else local function isValidEpidemicTarget(epidemic) return epidemic and epidemic.coverup_selected and (epidemic.vaccination_mode_active or (self.infected and (not self.marked_for_vaccination))) end local hospital = self.hospital or self.world:getLocalPlayerHospital() local epidemic = hospital and hospital.epidemic if isValidEpidemicTarget(epidemic) then if not epidemic.timer.closed then epidemic:markForVaccination(self) end else ui:addWindow(UIPatient(ui, self)) end end elseif self.user_of then -- The object we're using is made invisible, as the animation contains both -- the humanoid and the object. Hence send the click onto the object. self.user_of:onClick(ui, button) elseif button == "right" then -- Attempt to push patient over if not self.world:isPaused() and not (self.cured or self.going_to_die or self.dead or self.going_home) and math.random(1, 2) == 2 then self:falling(true) end end Humanoid.onClick(self, ui, button) end function Patient:setDisease(disease) self.disease = disease disease.initPatient(self) self.th:setPatientEffect(disease.effect or AnimationEffect.None) self.diagnosed = false self.diagnosis_progress = 0 self.cure_rooms_visited = 0 -- Copy list of diagnosis rooms -- (patient may visit these for diagnosis, if they exist in the hospital). self.available_diagnosis_rooms = {} for i, room in ipairs(self.disease.diagnosis_rooms) do self.available_diagnosis_rooms[i] = room end -- 25% of the patients pay via insurance if math.random(1,4) == 1 then -- randomly select one of three insurance companies self.insurance_company = math.random(1,3) end -- Randomise thirst and the need to visit the loo soon. -- Alien patients do not have the needed animations for these things, so exclude them if not self.disease.only_emergency then self.attributes["thirst"] = math.random()*0.2 self.attributes["toilet_need"] = math.random()*0.2 end self:updateDynamicInfo() end function Patient:changeDisease(new_disease) assert(not self.diagnosed, "Cannot change the disease of a diagnosed patient") -- These assertions should hold until handling of visual diseases is implemented. assert(self.disease.contagious, "Cannot change the disease of a patient who has a non-contagious disease") assert(new_disease.contagious, "Cannot change a disease to a non-contagious disease") local visited_rooms = {} -- Add all diagnosis room for the old disease. for _, room in ipairs(self.disease.diagnosis_rooms) do visited_rooms[room] = true end -- Disable the rooms not yet visited by the patient. for _, room in ipairs(self.available_diagnosis_rooms) do visited_rooms[room] = false end -- 'visited_rooms' is now diagnosis rooms that the patient has visited for the old disease. -- Compute unvisited rooms for the new disease. self.available_diagnosis_rooms = {} for _, room in ipairs(new_disease.diagnosis_rooms) do if not visited_rooms[room] then self.available_diagnosis_rooms[#self.available_diagnosis_rooms + 1] = room end end self.disease = new_disease -- Finally, make the patient carry the new disease. end --! Mark patient as being diagnosed. function Patient:setDiagnosed() self.diagnosed = true self.treatment_history[#self.treatment_history + 1] = self.disease.name local window = self.world.ui:getWindow(UIPatient) if window and window.patient == self then window:updateInformation() end self:updateDynamicInfo() end --! Modifies the diagnosis progress of a patient. -- incrementValue can be either positive or negative. function Patient:modifyDiagnosisProgress(incrementValue) self.diagnosis_progress = math.min(self.hospital.policies["stop_procedure"], self.diagnosis_progress + incrementValue) self.diagnosis_progress = math.max(0.000, self.diagnosis_progress) local window = self.world.ui:getWindow(UIPatient) if window and window.patient == self then window:updateInformation() end self:updateDynamicInfo() end --! Updates the patients diagnostic progress based on the doctors skill -- called when they are done using a diagnosis room function Patient:completeDiagnosticStep(room) -- Base: depending on difficulty of disease as set in sam file -- tiredness reduces the chance of diagnosis if staff member is above 50% tired local multiplier = 1 local expertise = self.world.map.level_config.expertise local diagnosis_difficulty = expertise[self.disease.expertise_id].MaxDiagDiff / 1000 local diagnosis_base = 0.4 * (1 - diagnosis_difficulty) local diagnosis_bonus = 0.4 -- Did the staff member manage to leave the room before the patient had -- a chance to get diagnosed? Then use a default middle value. if room.staff_member then local fatigue = room.staff_member:getAttribute("fatigue") -- Bonus: based on skill and attn to detail (with some randomness). -- additional bonus if the staff member is highly skilled / consultant -- tiredness reduces the chance of diagnosis if staff member is above 50% tired if room.staff_member.profile.skill >= 0.9 then multiplier = math.random(1, 5) * (1 - (fatigue -0.5)) else multiplier = 1 * (1 - (fatigue -0.5)) end local divisor = math.random(1, 3) local attn_detail = room.staff_member.profile.attention_to_detail / divisor local skill = room.staff_member.profile.skill / divisor diagnosis_bonus = (attn_detail + 0.4) * skill end self:modifyDiagnosisProgress(diagnosis_base + (diagnosis_bonus * multiplier)) end --! Sets the hospital for the patient - additionally removing them from a -- hospital if they already belong to one. For player hospitals, patients who -- are not debug or emergency patients are made to seek a reception desk. --!param hospital (Hospital): hospital to assign to patient function Patient:setHospital(hospital) if self.hospital then self.hospital:removePatient(self) end Humanoid.setHospital(self, hospital) if hospital.is_in_world and not self.is_debug and not self.is_emergency then self:setNextAction(SeekReceptionAction()) end hospital:addPatient(self) end --! Decide the ID of the disease or treatment that the patient is paying for. --!return (string or nil) Id of the disease or treatment, or nil if the Id could --! not be decided. function Patient:getTreatmentDiseaseId() if self.diagnosed then return self.disease.id else local room_info = self:getRoom() if not room_info then print("Warning: Trying to receive money for treated patient who is ".. "not in a room") return nil end room_info = room_info.room_info return "diag_" .. room_info.id end end --! Estimate the subjective perceived distortion between the price level the --! patient might expect considering the reputation and the cure effectiveness --! of a given treatment and the staff internal state. --!param casebook (table): casebook entry for the treatment. --!return (float) [-1, 1]. The smaller the value is, the more the patient --! considers the bill to be under-priced. The bigger the value is, the more --! the patient patient considers the bill to be over-priced. function Patient:getPriceDistortion(casebook) -- weights local happiness_weight = 0.1 local reputation_weight = 0.6 local effectiveness_weight = 0.3 -- map the different variables to [0-1] and merge them local reputation = casebook.reputation or self.hospital.reputation local effectiveness = casebook.cure_effectiveness local weighted_happiness = happiness_weight * self:getAttribute("happiness") local weighted_reputation = reputation_weight * (reputation / 1000) local weighted_effectiveness = effectiveness_weight * (effectiveness / 100) local expected_price_level = weighted_happiness + weighted_reputation + weighted_effectiveness -- map to [0-1] local price_level = ((casebook.price - 0.5) / 3) * 2 return price_level - expected_price_level end --! Handle attempting to treat this patient --! --! If the treatment is effective the patient will be sent home, otherwise they --! will die. The patient may or may not agree to pay for the treatment --! depending on whether they consider the price reasonable. function Patient:treatDisease() local hospital = self.hospital hospital:receiveMoneyForTreatment(self) -- Remove visual effects of disease. self.th:setPatientEffect(AnimationEffect.None) -- Either the patient is no longer sick, or he/she dies. if self:isTreatmentEffective() then self:cure() self.treatment_history[#self.treatment_history + 1] = _S.dynamic_info.patient.actions.cured self:goHome("cured") else self:die() end hospital:updatePercentages() hospital:paySupplierForDrug(self.disease.id) if self.is_emergency then hospital:checkEmergencyOver() end end --! Returns true if patient agrees to pay for the given treatment. --!param disease_id (string): The id of the disease to test function Patient:agreesToPay(disease_id) local hosp = self.hospital local casebook = hosp.disease_casebook[disease_id] local agrees_to_pay = true local price_multiplier = casebook.price local is_over_priced = price_multiplier > 1.0 if is_over_priced then local overprice_size = price_multiplier - 1.0 -- payment chance modificator was chosen experimentally to match the chance in the original game. local payment_chance_modificator = 4 local payment_chance = math.exp(-1 * payment_chance_modificator * overprice_size) agrees_to_pay = math.random() <= payment_chance end if agrees_to_pay then -- save the price the patient agrees to self.pay_amount = hosp:getTreatmentPrice(disease_id) end return agrees_to_pay end --! Either the patient is cured, or he/she dies. --!return (boolean) True if cured, false if died. function Patient:isTreatmentEffective() local cure_chance = self.hospital.disease_casebook[self.disease.id].cure_effectiveness cure_chance = cure_chance * self.diagnosis_progress -- Service quality has a factor on cure chance local room = self:getRoom() local min_impact = 20 local service_base = math.max(100 - cure_chance, min_impact) local scale = 0.2 -- Quality scaled to +-10% local service_factor = (room:getStaffServiceQuality() - 0.5) * scale cure_chance = cure_chance + (service_base * service_factor) return (cure_chance >= math.random(1,100)) end function Patient:hasMoreDiagnosisRoomsAvailable() return #self.available_diagnosis_rooms ~= 0 end --! Change patient internal state to "cured". function Patient:cure() self.cured = true self.infected = false self.attributes["health"] = 1 end --! Patient died, process the event. function Patient:die() self.set_to_die = false if self.cured then return end -- It may happen that this patient was just cured and then the room blew up. self.hospital:humanoidDeath(self) self:setMood("dying5", "deactivate") self:setMood("dead", "activate") -- Remove any messages and/or callbacks related to the patient. self:unregisterCallbacks() self.going_to_die = true if self:getRoom() then self:queueAction(MeanderAction():setCount(1)) else self:setNextAction(MeanderAction():setCount(1)) end self:queueAction(DieAction()) self:setDynamicInfoText(_S.dynamic_info.patient.actions.dying) end -- Actions we can interrupt when at a fully empty tile. local good_actions = {walk=true, idle=true, seek_room=true, queue=true} --! Test whether the current tile of the patient is useful for inserting an -- action that needs a fully empty tile in the hospital. --!param cur_action Current action of the patient. --!return Whether the tile can be used for inserting an action. function Patient:atFullyEmptyTile(cur_action) if not good_actions[cur_action.name] then return false end if self.going_home or self.going_to_die then return false end local th = self.world.map.th local cell_flags = th:getCellFlags(self.tile_x, self.tile_y) if not cell_flags.buildable or not cell_flags.hospital then return false end local parcel = cell_flags.parcelId return parcel ~= 0 and th:getPlotOwner(parcel) == self.hospital:getPlayerIndex() end --! Falling animations for when there is an earth quake or the player is being very mean --!param player_init (bool) if true, player triggered the fall function Patient:falling(player_init) local current = self:getCurrentAction() current.keep_reserved = true if self.falling_anim and self:atFullyEmptyTile(current) and self.has_fallen == 1 then self.has_fallen = 2 self:queueAction(FallingAction(), 1) self:queueAction(OnGroundAction(), 2) self:queueAction(GetUpAction(), 3) -- show the patient is annoyed, if possible if math.random(1, 5) == 3 and self.shake_fist_anim then self:queueAction(ShakeFistAction(), 4) self:interruptAndRequeueAction(current, 5) else self:interruptAndRequeueAction(current, 4) end if player_init then self:fallingAnnounce() end self:changeAttribute("happiness", -0.05) -- falling makes you very unhappy end end function Patient:fallingAnnounce() local msg = { (_A.warnings.falling_1), (_A.warnings.falling_2), (_A.warnings.falling_3), (_A.warnings.falling_4), (_A.warnings.falling_5), (_A.warnings.falling_6), } self.hospital:giveAdvice(msg) end function Patient:vomit() local current = self:getCurrentAction() --Only vomit under these conditions. Maybe I should add a vomit for patients in queues too? if self:atFullyEmptyTile(current) and self.has_vomitted == 0 then self:queueAction(VomitAction(), 1) self:interruptAndRequeueAction(current, 2) self.has_vomitted = self.has_vomitted + 1 self:changeAttribute("happiness", -0.02) -- being sick makes you unhappy else return end end function Patient:pee() local current = self:getCurrentAction() --Only pee under these conditions. As with vomit, should they also pee if in a queue? if self:atFullyEmptyTile(current) then self:queueAction(PeeAction(), 1) self:interruptAndRequeueAction(current, 2) self:setMood("poo", "deactivate") self:changeAttribute("happiness", -0.02) -- not being able to find a loo and doing it in the corridor will make you sad too if not self.hospital.did_it_on_floor then self.hospital.did_it_on_floor = true self.hospital:giveAdvice({_A.warnings.people_did_it_on_the_floor}) end else return end end function Patient:checkWatch() local action = self:getCurrentAction() if self.check_watch_anim and (action.name == "idle" or action.name == "seek_room") and not action.is_leaving then self:queueAction(CheckWatchAction(), 0) end end function Patient:yawn() local action = self:getCurrentAction() if self.yawn_anim and (action.name == "idle" or action.name == "seek_room") and not action.is_leaving then self:queueAction(YawnAction(), 0) end end function Patient:tapFoot() local action = self:getCurrentAction() if self.tap_foot_anim and (action.name == "idle" or action.name == "seek_room") and not action.is_leaving then self:queueAction(TapFootAction(), 0) end end --! Make the patient leave the hospital. This function also handles some --! statistics (number of cured/kicked out patients, etc.) --! The mood icon is updated accordingly. Reputation is impacted accordingly. --!param reason (string): the reason why the patient is sent home, which could be: --! -"cured": When the patient is cured. --! -"kicked": When the patient is kicked anyway, either manually, --! either when no treatment can be found for her/him, etc. --! -"over_priced": When the patient decided to leave because he/she believes --! the last treatment is over-priced. --param disease_id (string): When the reason is "over_priced" this is the --! id of the disease/diagnosis that the patient considered over_priced function Patient:goHome(reason, disease_id) local hosp = self.hospital if self.going_home then -- The patient should be going home already! Anything related to the hospital -- will not be updated correctly, but we still want to try to get the patient to go home. TheApp.world:gameLog("Warning: goHome called when the patient is already going home") self:despawn() return end if reason == "cured" then self:setMood("cured", "activate") self:changeAttribute("happiness", 0.8) hosp:updateCuredCounts(self) self:setDynamicInfoText(_S.dynamic_info.patient.actions.cured) elseif reason == "kicked" then self:setMood("exit", "activate") hosp:updateNotCuredCounts(self, reason) elseif reason == "over_priced" then self:setMood("sad_money", "activate") self:changeAttribute("happiness", -0.5) local treatment_name = self.hospital.disease_casebook[disease_id].disease.name self.hospital:giveAdvice({_A.warnings.patient_not_paying:format(treatment_name)}) hosp:updateNotCuredCounts(self, reason) self:clearDynamicInfo() self:setDynamicInfo('text', {"", _S.dynamic_info.patient.actions.prices_too_high}) elseif reason == "evacuated" then self:clearDynamicInfo() self:setDynamicInfo('text', {"", _S.dynamic_info.patient.actions.epidemic_sent_home}) self:setMood("exit","activate") else TheApp.world:gameLog("Error: unknown reason " .. reason .. "!") end hosp:updatePercentages() -- Debug patients must be removed from the debug list so they can despawn properly if self.is_debug then hosp:removeDebugPatient(self) end -- Remove any messages and/or callbacks related to the patient. self:unregisterCallbacks() self.going_home = true self.waiting = nil -- Remove any vaccination calls from patient if not self.vaccinated then self.world.dispatcher:dropFromQueue(self) end -- allow timer to end early and after going_home is set if self.is_emergency then hosp:checkEmergencyOver() end local room = self:getRoom() if room then room:makeHumanoidLeave(self) end Humanoid.despawn(self) end -- Despawns the patient and removes them from the hospital function Patient:despawn() self.hospital:removePatient(self) Humanoid.despawn(self) end -- Checks if the room the patient is in is the final treatment room for their disease -- NB: Check diagnosed status as some illnesses use Psych for diagnosis and treatment function Patient:_checkIfCureRoom(room) local num_rooms = #self.disease.treatment_rooms return (room and self.disease.treatment_rooms[num_rooms] == room.room_info.id and self.diagnosed) end function Patient:setToDying() -- Check that the patient is in a later state of dying if self.going_to_die or self.dead then return end self.set_to_die = true end function Patient:tick() Humanoid.tick(self) if self.set_to_die and not self:getRoom() and not self:getCurrentAction().is_leaving and not self:isKnockingDoor() and not self:isEnteringRoom() then self:die() end end -- Different events happen while a patient is waiting, based on the total number of remaining days. local waiting_events = { [0] = "go_home", [10] = "tap_foot", [20] = "yawn", [30] = "check_watch" } --! Handle processing of a patient waiting for something (like a room or player action) function Patient:_dailyWaitChecks() self.waiting = self.waiting - 1 local wait_event = waiting_events[self.waiting] if not wait_event then return end if wait_event == "go_home" then self:goHome("kicked") if self.diagnosed then -- No treatment rooms self:setDynamicInfoText(_S.dynamic_info.patient.actions.no_treatment_available) else -- No diagnosis rooms self:setDynamicInfoText(_S.dynamic_info.patient.actions.no_diagnoses_available) end elseif wait_event == "tap_foot" then self:tapFoot() elseif wait_event == "yawn" then self:yawn() elseif wait_event == "check_watch" then self:checkWatch() end end -- Define different thresholds for deteriorating health and their mood changes. -- First value is the mood to deactivate, the second to activate (as applicable). local health_treshold_rangemap = { {upper = 0.06, value = {"dying4", "dying5"}}, -- Not looking good {upper = 0.10, value = {"dying3", "dying4"}}, -- Fading fast {upper = 0.14, value = {"dying2", "dying3"}}, -- Starts to take a turn for the worse {upper = 0.18, value = {"dying1", "dying2"}}, -- Wishes they went to that other hospital {upper = 0.22, value = {false, "dying1"}}, -- Getting rather unwell now {value = false} } --! Handle processing of a patient's current health state and perform necessary actions --!return health (number) A patient's current health value, from 0 to 1. function Patient:_dailyHealthChecks() -- If a Patient has been in the hospital for over 6 months and is still not well, they -- will become sad and will either get fed up and leave or stay in the hope that you -- will cure them before they die. -- Note: This behaviour intentionally differs from Theme Hospital where being close to -- death does not impact happiness. local health = self:getAttribute("health") -- Special handling for a patient almost passed. local almost_dead_value, dying_value = 0.01, 0.0 if health < almost_dead_value then if health == dying_value then self:setToDying() -- Patient is going to die. -- If patient is busy, they will die when they leave the room, will be cured, -- or is leaving the hospital. Regardless we do not need to do anything else. else -- Is there time to say a prayer (will be dying tomorrow) self.attributes["health"] = dying_value end return health end local dying_moods = rangeMapLookup(health, health_treshold_rangemap, true) -- Above 0.22 on health, lookup returns an index we can exit early on if type(dying_moods) == "number" then return health end local old_dying_mood, new_dying_mood = dying_moods[1], dying_moods[2] if not old_dying_mood then if new_dying_mood then -- Patient has entered the road of deterioration. self:setMood(new_dying_mood, "activate") self:changeAttribute("happiness", -0.0002) -- waiting too long will make you sad -- There is a 1/3 chance that the patient will get fed up and leave. -- This is potentially run 10 ((0.22-0.18)/0.004) times, hence the 1/30 chance. -- If patient is already in the cure room, let the treatment happen. if not self:_checkIfCureRoom(self:getRoom()) and math.random(1,30) == 1 then self:setDynamicInfoText(_S.dynamic_info.patient.actions.fed_up) self:setMood("dying1", "deactivate") self:goHome("kicked") end end return health end -- All other stages of deterioration simply cycle through the stages of dying mood. self:setMood(old_dying_mood, "deactivate") self:setMood(new_dying_mood, "activate") return health end --! Generate or refresh the patient's health chart function Patient:_dailyHealthHistoryRefresh() if not self.health_history then -- First day, initialize health history. self.health_history = {} self.health_history[1] = self:getAttribute("health") self.health_history["last"] = 1 self.health_history["size"] = 20 else -- Update the health history, wrapping around the array. local last = self.health_history["last"] + 1 if last > self.health_history["size"] then last = 1 end self.health_history[last] = self:getAttribute("health") self.health_history["last"] = last end end --! Process a patient's exposure to vomit and calculate their level of nausea function Patient:_calculateNausea(num_nearby_vomit) --Nausea level is based on health then proximity to vomit is used as a multiplier. --Only a patient with a health value of less than 0.8 can be the initial vomiter, however :) local initialVomitMult = 0.002 --The initial chance of vomiting. local proximityVomitMult = 1.5 --The multiplier used when in proximity to vomit. local nausea = (1.0 - self:getAttribute("health")) * initialVomitMult -- As we don't yet have rats, ratholes and dead rats the chances of vomitting are slim -- as a temp fix for this I have added 0.5 to the < nausea equation, -- this may want adjusting or removing when the other factors are in the game MarkL if self:getAttribute("health") <= 0.8 or num_nearby_vomit > 0 or self:getAttribute("happiness") < 0.6 then return nausea * ((num_nearby_vomit + 1) * proximityVomitMult) end end --! Process a patient's current state of toilet need, and action accordingly. function Patient:_dailyBowelChecks() if self.disease.more_loo_use then self:changeAttribute("toilet_need", 0.018 * math.random() + 0.008) else self:changeAttribute("toilet_need", 0.006 * math.random() + 0.002) end -- Maybe it's time to visit the loo? if self:getAttribute("toilet_need") > 0.75 and self.pee_anim and not self:getRoom() and not self:getCurrentAction().is_leaving and not self:getCurrentAction().is_entering then self:handleToiletNeed() end end --! Process a patient's sudden need for the toilet. --! We will either do it on the floor (40% chance, daily), or seek out a toilet. function Patient:handleToiletNeed() if math.random(1, 10) < 5 then self:pee() self:changeAttribute("toilet_need", -(0.5 + math.random()*0.15)) self.going_to_toilet = "no" else -- If waiting for user response, do not send to toilets, as this messes -- things up. if self.going_to_toilet == "no" and not self.waiting then self:setMood("poo", "activate") -- Check if any room exists. if not self.world:findRoomNear(self, "toilets") then self.going_to_toilet = "no-toilets" -- Gets reset when a new toilet is built (then, patient will try again). -- Otherwise we can queue the action, but only if not in any rooms right now. elseif not self:getRoom() and not self:getCurrentAction().is_leaving and not self:getCurrentAction().pee then self:setNextAction(SeekToiletsAction():setMustHappen(true)) self.going_to_toilet = "yes" end end end end --! Process specific objects near the patient and their effect on happiness factors. --!return (number) Quanitity of vomit inducing litter function Patient:_dailyObjectHappinessEffects() -- It is nice to see plants, but dead plants make you unhappy. local plant = getRandomEntryFromArray(self:findObjectsInSquare(2, "plant")) if plant then self:changeAttribute("happiness", -0.0003 + (plant:isPleasingFactor() * 0.0001)) end -- It always makes you happy to see you are in safe place. local extinguisher = getRandomEntryFromArray(self:findObjectsInSquare(2, "extinguisher")) if extinguisher then self:changeAttribute("happiness", 0.0002) end -- sitting makes you happy whilst standing and walking does not if self:goingToUseObject("bench") then self:changeAttribute("happiness", 0.00002) else self:changeAttribute("happiness", -0.00002) end local num_vomit_inducing = 0 for _, litter in ipairs(self:findObjectsInSquare(2, "litter")) do -- Count vomit inducing litter. if litter:vomitInducing() then num_vomit_inducing = num_vomit_inducing + 1 end -- Seeing litter will make you unhappy. If it is pee or puke it is worse if litter:anyLitter() then self:changeAttribute("happiness", -0.0002) else self:changeAttribute("happiness", -0.0004) end end return num_vomit_inducing end --! Take the necessary steps to let a patient to get a soda. --!param machine (object) The drinks machine to target --!param lx (int) X usage coordinate of the drinks machine --!param ly (int) Y usage coordinate of the drinks machine function Patient:_constructGetSodaAction(machine, lx, ly) -- Callback function when the machine has been used local --[[persistable:patient_drinks_machine_after_use]] function after_use() self:changeAttribute("thirst", -(0.7 + math.random()*0.3)) self:changeAttribute("toilet_need", 0.05 + math.random()*0.05) self:setMood("thirsty", "deactivate") -- The patient might be kicked while buying a drink if not self.going_home then self.hospital:sellSodaToPatient(self) end -- The patient might also throw the can on the floor, bad patient! if math.random() < 0.6 then -- It will be dropped between 1 and 12 tiles away (litter bin catches 8 radius). self.litter_countdown = math.random(1, 12) end end -- If we are queueing, let the queue handle the situation. for _, current_action in ipairs(self.action_queue) do if current_action.name == "queue" then local callbacks = current_action.queue.callbacks[self] if callbacks then callbacks:onGetSoda(self, machine, lx, ly, after_use) return end end end -- Or, if walking or idling insert the needed actions in -- the beginning of the queue local current = self:getCurrentAction() if current.name == "walk" or current.name == "idle" or current.name == "seek_room" then -- Go to the machine, use it, and then continue with -- whatever he/she was doing. current.keep_reserved = true self:queueAction(WalkAction(lx, ly):setMustHappen(true):disableTruncate(), 1) self:queueAction(UseObjectAction(machine):setAfterUse(after_use):setMustHappen(true), 2) machine:addReservedUser(self) -- Insert the old action again, a little differently depending on -- what the previous action was. self:interruptAndRequeueAction(current, 3, true) end end --! Handle a pateint who is very thirsty. They'll start getting unhappy and wanting to --! look for a drink. function Patient:_handleExcessThirst() self:changeAttribute("happiness", -0.002) self:setMood("thirsty", "activate") -- If there's already an action to buy a drink in the action queue, or -- if we're going to the loo, do nothing if self:goingToUseObject("drinks_machine") or self.going_to_toilet ~= "no" then return end -- Don't check for a drinks machine too often if self.timeout and self.timeout > 0 then self.timeout = self.timeout - 1 return end -- The only allowed situations to grab a soda is when queueing -- or idling/walking in the corridors -- Also make sure the walk action when leaving a room has a chance to finish. if self:getRoom() or self:getCurrentAction().is_entering or self:getCurrentAction().is_leaving or self.going_home then return end local machine, lx, ly = self.world:findObjectNear(self, "drinks_machine", 8, true) -- If no machine can be found, resume previous action and wait a -- while before trying again. To get a little randomness into the picture -- it's not certain we go for it right now. if not machine or not lx or not ly or math.random(1,10) < 3 then self.timeout = math.random(2,4) return end -- Go get a drink. self:_constructGetSodaAction(machine, lx, ly) end --! If the patient is sitting on a bench or standing and queued, it may be a situation --! where he/she is not in the queue anymore, but should be. If this is the case for --! more than 2 ticks, go to reception. function Patient:_checkPatientIsStillQueueingForARoom() if #self.action_queue > 1 and (self:getCurrentAction().name == "use_object" or self:getCurrentAction().name == "idle") and self.action_queue[2].name == "queue" then local found = false for _, humanoid in ipairs(self.action_queue[2].queue) do if humanoid == self then found = true break end end if not found then if not self.noqueue_ticks then self.noqueue_ticks = 1 elseif self.noqueue_ticks > 2 then self.world:gameLog("A patient has a queue action, but is not in the corresponding queue") self:setNextAction(SeekReceptionAction()) else self.noqueue_ticks = self.noqueue_ticks + 1 end else self.noqueue_ticks = 0 end end end -- This function handles changing of the different attributes of the patient. -- For example if thirst gets over a certain level (now: 0.7), the patient -- tries to find a drinks machine nearby. function Patient:tickDay() -- First of all it may happen that this patient is tired of waiting and goes home. if self.waiting then self:_dailyWaitChecks() if self.has_vomitted and self.has_vomitted > 0 then self.has_vomitted = 0 end end -- if patients are getting unhappy, then maybe we should see this! if self:getAttribute("happiness") < 0.3 then self:setMood("sad2", "activate") else self:setMood("sad2", "deactivate") end -- Avoid an empty action queue error if the player clicks a patient to fall -- at the same time as the day changes. There is now a between "neutral" stage. if self.has_fallen == 3 then self.has_fallen = 1 elseif self.has_fallen == 2 then self.has_fallen = 3 end -- Now call the parent function - it checks -- if we're outside the hospital or on our way home. if not Humanoid.tickDay(self) then return end -- If we've hit zero health today, we should no longer continue performing daily actions. if self:_dailyHealthChecks() == 0.0 then return end -- Update health history. self:_dailyHealthHistoryRefresh() -- Perform Happiness and nausea calculations from nearby objects when not interacting -- with a room. if not self:getRoom() and not self:getCurrentAction().is_entering and not self:getCurrentAction().is_leaving then local num_nearby_vomit = self:_dailyObjectHappinessEffects() -- We only want to calculate vomit chance on patients who have the relevant animation -- and aren't an emergency. if self.vomit_anim and not self.is_emergency then local nausea_level = self:_calculateNausea(num_nearby_vomit) if nausea_level and math.random() < nausea_level + 0.5 then self:vomit() end end end -- Each day both thirst and toilet_need changes, and health decreases. self:changeAttribute("health", - 0.004) if not self.is_emergency then self:changeAttribute("thirst", self:getAttribute("warmth") * 0.02 + 0.004 * math.random() + 0.004) self:_dailyBowelChecks() -- If thirsty enough a soda would be nice if self:getAttribute("thirst") > 0.7 then self:_handleExcessThirst() end end -- See if a patient should yawn today. -- Don't attempt if the patient is already waiting with a yawn event local will_yawn = self.waiting and waiting_events[self.waiting] == "yawn" if self.disease.yawn and not will_yawn and math.random(1, 10) == 5 then self:yawn() end self:_checkPatientIsStillQueueingForARoom() end function Patient:notifyNewRoom(room) Humanoid.notifyNewRoom(self, room) if self.going_to_toilet == "no-toilets" and room.room_info.id == "toilets" then self.going_to_toilet = "no" -- Patient can try again going to the loo. end end -- Called each time the patient moves to a new tile. function Patient:setTile(x, y) if not self.litter_countdown then -- If arrived at the first tile of the hospital, give patient some litter. if x and self.world.map.th:getCellFlags(x, y).buildable then -- Small hospitals are around 40-50 tiles. self.litter_countdown = math.random(20, 100) end elseif self.hospital and not self.going_to_die and not self.going_home then self.litter_countdown = self.litter_countdown - 1 -- Is the patient about to drop some litter? if self.litter_countdown == 0 then if x and not self:getRoom() and not self.world:getObjects(x, y) and self.world.map.th:getCellFlags(x, y).buildable and self.hospital:isInHospital(x, y) and (not self.world:findObjectNear(self, "bin", 8) or math.random() < 0.05) then -- Drop some litter! local trash = math.random(1, 4) local litter = self.world:newObject("litter", x, y) litter:setLitterType(trash, math.random(0, 1)) if not self.hospital.hospital_littered then self.hospital.hospital_littered = true -- A callout is only needed if there are no handymen employed if self.hospital:countStaffOfCategory("Handyman", 1) == 0 then self.hospital:giveAdvice({_A.staff_advice.need_handyman_litter}) end end end -- Always give new litter to drop. self.litter_countdown = math.random(30, 150) end end Humanoid.setTile(self, x, y) end -- As of now each time a bench is placed the world notifies all patients -- in the vicinity through this function. function Patient:notifyNewObject(id) -- If currently queueing it would be nice to be able to sit down. assert(id == "bench", "Can only handle benches at the moment") -- Look for a queue action and tell this patient to look for a bench -- if currently standing up. for _, action in ipairs(self.action_queue) do if action.name == "queue" then local callbacks = action.queue.callbacks[self] if callbacks then assert(action.done_init, "Queue action was not yet initialized") if action:isStanding() then callbacks:onChangeQueuePosition(self) break end end end end end function Patient:addToTreatmentHistory(room) local should_add = true -- Do not add facility rooms such as toilets to the treatment history. for i, _ in pairs(room.categories) do if i == "facilities" then should_add = false break end end if should_add then self.treatment_history[#self.treatment_history + 1] = room.name end end --! Sets the dynamic text currently in use by the patient --!param action_string (string) What text to say in dynamic text function Patient:setDynamicInfoText(action_string) self.action_string = action_string self:updateDynamicInfo() end --! Updates a patient's dynamic info --! Can be called direct to refresh only function Patient:updateDynamicInfo() local action_string = self.action_string or "" local info = "" if self.going_home or self.going_to_die then self:setDynamicInfo('progress', nil) elseif self.diagnosed then if self.diagnosis_progress < 1.0 then -- The cure was guessed info = _S.dynamic_info.patient.guessed_diagnosis:format(self.disease.name) else if self.is_emergency then info = _S.dynamic_info.patient.emergency:format(self.disease.name) else info = _S.dynamic_info.patient.diagnosed:format(self.disease.name) end end self:setDynamicInfo('progress', nil) else info = _S.dynamic_info.patient.diagnosis_progress -- TODO: If the policy is changed this info will not be changed until the next -- diagnosis facility has been visited. local divider = 1 if self.hospital then divider = self.hospital.policies["stop_procedure"] end if self.diagnosis_progress then self:setDynamicInfo('progress', math.min(1.0, self.diagnosis_progress / divider)) end end -- Set the centre line of dynamic info based on contagiousness, if appropriate local epidemic = self.hospital and self.hospital.epidemic if epidemic and self.infected and epidemic.coverup_selected then if self.vaccinated then self:setDynamicInfo('text', {action_string, _S.dynamic_info.patient.actions.epidemic_vaccinated, info}) else self:setDynamicInfo('text', {action_string, _S.dynamic_info.patient.actions.epidemic_contagious, info}) end else self:setDynamicInfo('text', {action_string, "", info}) end end --[[ Update availability of a choice in message owned by this patient, if any !param choice (string) The choice that needs updating (currently "research" or "guess_cure"). ]] function Patient:updateMessage(choice) if self.message and self.message.choices then local message_choice local enabled = false for _, c in ipairs(self.message.choices) do if c.choice == choice then message_choice = choice end end if choice == "research" and message_choice == choice then -- enable only if research department is built and a room in the treatment chain is undiscovered local req = self.hospital:checkDiseaseRequirements(self.disease.id) if req then enabled = (self.hospital:countRoomOfType("research", 1) > 0 and self.hospital:countStaffOfCategory("Researcher", 1) > 0) local strings = _S.fax.disease_discovered_patient_choice local output_text = strings.can_not_cure if #req.rooms == 1 then local room_name, required_staff, staff_name = self.world:getRoomNameAndRequiredStaffName(req.rooms[1]) if req.staff[required_staff] or 0 > 0 then output_text = strings.need_to_build_and_employ:format(room_name, staff_name) else output_text = strings.need_to_build:format(room_name) end elseif #req.rooms == 0 and next(req.staff) then output_text = strings.need_to_employ:format(StaffProfile.translateStaffClass(next(req.staff))) end self.message[3].text = output_text else -- no requirements missing enabled = false end -- TODO: implement choice == "guess_cure" end for _, c in ipairs(self.message.choices) do if c.choice == choice then c.enabled = enabled end end -- Update the fax window if it is open. local window = self.world.ui:getWindow(UIFax) if window then window:updateChoices() end end end --[[ Show patient infected status ]] function Patient:setInfectedStatus() self:removeAnyEpidemicStatus() self:setMood("epidemy4","activate") self.vaccination_candidate = false end --[[ Show patient as ready for vaccination status ]] function Patient:setToReadyForVaccinationStatus() self:removeAnyEpidemicStatus() self:setMood("epidemy2","activate") self.marked_for_vaccination = true end --[[ Show patient selected vaccination candidate status ]] function Patient:giveVaccinationCandidateStatus() self:removeAnyEpidemicStatus() self:setMood("epidemy3","activate") self.vaccination_candidate = true end --[[ Remove the vaccination candidate icon and status from the patient ]] function Patient:removeVaccinationCandidateStatus() if not self.vaccinated then self:removeAnyEpidemicStatus() self:setMood("epidemy2","activate") self.vaccination_candidate = false end end --[[ Show vaccinated status for vaccinated patient ]] function Patient:setVaccinatedStatus() self:removeAnyEpidemicStatus() self:setMood("epidemy1","activate") self.marked_for_vaccination = false self.vaccinated = true end --[[ Clear all epidemic status ]] function Patient:removeAnyEpidemicStatus() self:setMood("epidemy1","deactivate") -- vaccinated (step 4) self:setMood("epidemy2","deactivate") -- marked (step 2) self:setMood("epidemy3","deactivate") -- chosen by nurse (step 3) self:setMood("epidemy4","deactivate") -- infected (step 1) end function Patient:afterLoad(old, new) if old < 68 then if self.going_home then self.waiting = nil end end if old < 87 then if self.die_anims == nil then self.die_anims = {} end -- New humanoid animation: rise_hell_east: if self:isMalePatient() then if not self:isType("Alternate Male Patient") then self.die_anims.rise_hell_east = 384 else self.die_anims.rise_hell_east = 3404 end else self.die_anims.rise_hell_east = 580 end end if old < 108 then if self.going_to_toilet then -- Not easily decidable what the patient is doing here, -- removing a toilet while it's used is unlikely to happen. if self.world:findRoomNear(self, "toilets") then self.going_to_toilet = "yes" else self.going_to_toilet = "no-toilets" end else self.going_to_toilet = "no" end end if old < 158 then -- Always overwrite patient effect from old saves since it is -- loaded from a dummy field which used to have another meaning. if self.disease and not self.cured then self.th:setPatientEffect(self.disease.effect or AnimationEffect.None) else self.th:setPatientEffect(AnimationEffect.None) end end -- fix walks into room - regression in #2086 if old < 177 then for i, action in ipairs(self.action_queue) do if action.name == "walk" and action.is_entering then action.saved_must_happen = false -- if its not the currently executing action -- we should set must_happen to false if i > 1 then action.must_happen = false end end end end if old < 190 then if self:isType("Standard Female Patient") then self.on_ground_anim = 1764 end end if old < 211 then self.under_infection_attempt = self.attempted_to_infect self.attempted_to_infect = nil end if old < 213 then self.mood_marker = 1 end self:updateDynamicInfo() Humanoid.afterLoad(self, old, new) end function Patient:isMalePatient() if string.find(self.humanoid_class, "Female") then return false elseif string.find(self.humanoid_class, "Male") then return true else local male_patient_classes = { ["Chewbacca Patient"] = true, ["Elvis Patient"] = true, ["Invisible Patient"] = true } return male_patient_classes[self.humanoid_class] ~= nil end end --[[ Interrupt a patients current action and resumes it after !param current_action (string) Action being interrupted !param queue_pos (int) Position to insert resumed action in queue !param meander_before_resume (bool) Indicator to insert an additional action before resuming. ]] function Patient:interruptAndRequeueAction(current_action, queue_pos, meander_before_resume) -- Rebuild the current action. local requeue_action if current_action.name == "idle" then requeue_action = IdleAction():setMustHappen(current_action.must_happen) requeue_action:setDirection(current_action.direction) -- Go away a little before continuing with that important action. if meander_before_resume then self:queueAction(MeanderAction():setCount(1), queue_pos) end elseif current_action.name == "walk" then requeue_action = WalkAction(current_action.x, current_action.y) requeue_action:setMustHappen(current_action.must_happen) if current_action.saved_must_happen ~= nil then requeue_action.must_happen = current_action.saved_must_happen end -- need to copy the reserve_on_resume, otherwise the new queued action will not -- unreserve on interrupt requeue_action.reserve_on_resume = current_action.reserve_on_resume requeue_action:setIsEntering(current_action.is_entering) else -- We were seeking a room, start that action from the beginning -- i.e. do not set the must_happen flag. requeue_action = SeekRoomAction(current_action.room_type) if current_action.treatment_room then requeue_action:enableTreatmentRoom() end if current_action.diagnosis_room then requeue_action:setDiagnosisRoom(current_action.diagnosis_room) end requeue_action.message_sent = true end self:queueAction(requeue_action, queue_pos) -- now interrupt if current_action.on_interrupt then current_action.on_interrupt(current_action, self) else self:finishAction() end end -- Dummy callback for savegame compatibility local callbackNewRoom = --[[persistable:patient_toilet_build_callback]] function() end CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/staff.lua000066400000000000000000000637221522247547500231750ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") local AnnouncementPriority = _G["AnnouncementPriority"] --! A Doctor, Nurse, Receptionist, Handyman, or Surgeon class "Staff" (Humanoid) ---@type Staff local Staff = _G["Staff"] --!param ... Arguments to base class constructor. function Staff:Staff(...) self:Humanoid(...) self.hover_cursor = TheApp.gfx:loadMainCursor("staff") self.parcelNr = 0 self.leave_sounds = {} self.leave_priority = AnnouncementPriority.High end --! Handle daily adjustments to staff. --!return (boolean) Whether the caller should continue processing function Staff:tickDay() if not Humanoid.tickDay(self) then return false end if class.is(self, Receptionist) then return true end -- Pay too low --> unhappy -- Pay too high --> happy local fair_wage = self.profile:getFairWage() local wage = self.profile.wage self:changeAttribute("happiness", 0.05 * (wage - fair_wage) / (fair_wage ~= 0 and fair_wage or 1)) -- if you overwork your Dr's then there is a chance that they can go crazy -- when this happens, find him and get him to rest straight away if self:isVeryTired() or not self:isResting() then -- Working when you should be taking a break will make you unhappy if self:getAttribute("fatigue") >= self.hospital.policies["goto_staffroom"] then self:changeAttribute("happiness", -0.02) end -- You will also start to become unhappy as you become tired if self:getAttribute("fatigue") >= 0.5 then self:changeAttribute("happiness", -0.01) end else -- You are resting, and no longer very tired. Things can only get better! self:setMood("tired", "deactivate") self:changeAttribute("happiness", 0.006) end -- It is nice to see plants, but dead plants make you unhappy local plant = getRandomEntryFromArray(self:findObjectsInSquare(2, "plant")) if plant then self:changeAttribute("happiness", -0.003 + (plant:isPleasingFactor() * 0.001)) end -- Seeing various nearby objects boost your happiness, some more than others local good_objects = { ["extinguisher"] = 0.002, -- Makes you feel safe ["bin"] = 0.001, ["bookcase"] = 0.003, ["skeleton"] = 0.002, ["tv"] = 0.0005, } -- Construct an array with the object names. local happy_objects = {} for name, _ in pairs(good_objects) do happy_objects[#happy_objects + 1] = name end -- Look what's around the humanoid, and adapt the happiness. happy_objects = self:findObjectsInSquare(2, happy_objects) for obj_name, happiness_score in pairs(good_objects) do self:changeAttribute("happiness", #happy_objects[obj_name] * happiness_score) end -- List of positive rest activities and their happiness effect local recreation = { ["video_game"] = 0.08, ["pool_table"] = 0.074, ["sofa"] = 0.05, } -- Being able to rest from work and play the video game or pool will make you happy if self:getCurrentAction().name == "use_object" then local happiness = recreation[self:getCurrentAction().object.object_type.id] if happiness then self:changeAttribute("happiness", happiness) end end local room = self:getRoom() if room then self:changeAttribute("happiness", room.happiness_factor) end return true end function Staff:tick() Entity.tick(self) -- don't do anything if they're fired or picked up or have no hospital if self.fired or self.pickup or not self.hospital or self.dead then return end -- check if we need to use the staff room and go there if so self:checkIfNeedRest() -- check if staff has been waiting too long for a raise self:checkIfWaitedTooLongForRaise() -- Decide whether the staff member should be tiring and tire them if self:isTiring() then self:tire(0.000090) self:changeAttribute("happiness", -0.00002) end -- Make staff members request a raise if they are very unhappy if not self.world.debug_disable_salary_raise and self:getAttribute("happiness") < 0.1 then if not self.timer_until_raise then self.timer_until_raise = 200 end if self.timer_until_raise == 0 then self:requestRaise() else self.timer_until_raise = self.timer_until_raise - 1 end else self.timer_until_raise = nil end -- seeing litter will make you unhappy. If it is pee or puke it is worse for _, litter in ipairs(self:findObjectsInSquare(2, "litter")) do if litter:anyLitter() then self:changeAttribute("happiness", -0.0002) else self:changeAttribute("happiness", -0.0004) end end self:updateSpeed() end function Staff:checkIfWaitedTooLongForRaise() if not self.quitting_in then return end self.quitting_in = self.quitting_in - 1 local is_waiting_time_is_up = self.quitting_in < 0 if is_waiting_time_is_up then local rise_windows = self.world.ui:getWindows(UIStaffRise) local staff_rise_window = nil self.quitting_in = nil self.hospital:removeMessage(self) -- We go through all "requesting rise" windows open -- to close one of them if open when request resolved. for i = 1, #rise_windows do if rise_windows[i].staff == self then staff_rise_window = rise_windows[i] break end end -- If the hospital policy is set to automatically grant wage increases, grant -- the requested raise instead of firing the staff member if self.hospital.policies.grant_wage_increase then if staff_rise_window then -- if rise window open staff_rise_window:increaseSalary() -- close window and raise else local rise_amount = self.profile:getRiseAmount() self:increaseWage(rise_amount) end -- else: The staff member is sacked else if staff_rise_window then staff_rise_window:fireStaff() -- close window and fire else self:fire() end end end end function Staff:isTiring() local tiring = true local room = self:getRoom() -- Being in a staff room is actually quite refreshing, as long as you're not a handyman watering plants. if room then if room.room_info.id == "staff_room" and not self.on_call then tiring = false end elseif not class.is(self, Handyman) then tiring = false end -- Picking staff members up doesn't tire them, it just tires the player. if self:getCurrentAction().name == "pickup" then tiring = false end return tiring end function Staff:isResting() local room = self:getRoom() if room and room.room_info.id == "staff_room" and not self.on_call then return true else return false end end --! Destroys any raise request window that may be queued function Staff:removeQueuedStaffMessage() self.hospital:removeMessage(self) end -- Immediately terminate the staff member's employment. function Staff:fire() if self.fired then return end -- Ensure that there are no inspection windows open for this staff member. local staff_window = self.world.ui:getWindow(UIStaff) if staff_window and staff_window.staff == self then staff_window:close() end self:removeQueuedStaffMessage() self.hospital:spendMoney(self.profile.wage, _S.transactions.severance .. ": " .. self.profile:getFullName()) self.world.ui:playSound("sack.wav") self:setMood("exit", "activate") self:setDynamicInfoText(_S.dynamic_info.staff.actions.fired) self.fired = true self.going_home = true self.hospital:changeReputation("kicked") self:despawn() self.hover_cursor = nil self.hospital:announceStaffLeave(self) -- Unregister any build callbacks or messages. self:unregisterCallbacks() -- Update the staff management window if it is open. local window = self.world.ui:getWindow(UIStaffManagement) if window then window:updateStaffList(self) end end function Staff:die() self:removeQueuedStaffMessage() -- Update the staff management screen (if present) accordingly local window = self.world.ui:getWindow(UIStaffManagement) if window then window:updateStaffList(self) end self.dead = true end -- Despawns the staff member and removes them from the hospital function Staff:despawn() self.hospital:removeStaff(self) Humanoid.despawn(self) end -- Function which is called when the user clicks on the staff member. -- Responsible for opening a staff information dialog on left click and picking -- up the staff member on right click. --!param ui (GameUI) The UI which the user in question is using. --!param button (string) One of: "left", "middle", "right". function Staff:onClick(ui, button) if self.fired then return end if button == "left" then if self.message_callback then self:message_callback() else ui:addWindow(UIStaff(ui, self)) end elseif button == "right" then self:setPickup(ui, nil) end Humanoid.onClick(self, ui, button) end function Staff:dump() print("-----------------------------------") if self.on_call then print("On call: ") CallsDispatcher.dumpCall(self.on_call) else print('On call: no') end print("Busy: ", (self:isIdle() and "idle" or "busy") .. (self.pickup and " and picked up" or '')) if self.going_to_staffroom then print("Going to staffroom") end if self.last_room then print("Last room: ", self.last_room.room_info.id .. '@' .. self.last_room.x ..','.. self.last_room.y) end Humanoid.dump(self) end function Staff:setProfile(profile) self.profile = profile self:setType(profile.humanoid_class) self.attributes["fatigue"] = 0 self:setLayer(5, profile.layer5) self.waiting_for_staffroom = false -- Staff member has detected there is no staff room to rest. end -- Function for increasing fatigue. Fatigue can be between 0 and 1, -- so amounts here should be appropriately small comma values. function Staff:tire(amount) -- The no rest cheat overrides tiring effects if not self.hospital.hosp_cheats:isCheatActive("no_rest_cheat") then self:changeAttribute("fatigue", amount) end self:updateDynamicInfo() end -- Function for decreasing fatigue. Fatigue can be between 0 and 1, -- so amounts here should be appropriately small comma values. function Staff:wake(amount) self:changeAttribute("fatigue", -amount) self:updateDynamicInfo() end -- Update the movement speed function Staff:updateSpeed() local level = 2 if self.profile.is_junior then level = 1 elseif self.profile.is_consultant then level = 3 end local room = self:getRoom() if room and room.room_info.id == "training" and self:fulfillsCriterion("Doctor") then level = 1 elseif self.hospital and self.hospital.hosp_cheats:isCheatActive("no_rest_cheat") then level = 3 -- Cheat makes everyone speedy elseif not class.is(self, Receptionist) then if self:isCrackUpTired() then level = level - 2 elseif self:isVeryTired() then level = level - 1 end end if level >= 3 then self.speed = "fast" self.slow_animation = false elseif level <= 1 then self.speed = "slow" self.slow_animation = true else self.speed = "normal" self.slow_animation = false end end -- Check if fatigue is over a certain level (decided by the hospital policy), -- and go to the StaffRoom if it is. function Staff:checkIfNeedRest() -- Only when the staff member is very tired should the icon emerge. Unhappiness will also escalate if self:isVeryTired() then self:setMood("tired", "activate") self:changeAttribute("happiness", -0.0002) end -- If above the policy threshold, go to the staff room. if self:getAttribute("fatigue") >= self.hospital.policies["goto_staffroom"] and not class.is(self:getRoom(), StaffRoom) then -- The staff will get unhappy if there is no staffroom to rest in. if self.waiting_for_staffroom then self:changeAttribute("happiness", -0.001) end local room = self:getRoom() -- Nurses can leave a ward with patients remaining in their beds, -- nurses in other rooms and other staff must leave after all patients exit local may_leave = room and (room.room_info.id == "ward" or not room:getPatient()) if (self.staffroom_needed and (may_leave or not room)) or (room and self.going_to_staffroom) then if self:getCurrentAction().name ~= "walk" and self:getCurrentAction().name ~= "queue" then self.staffroom_needed = nil self:goToStaffRoom() end end -- Abort if waiting for a staffroom to be built, waiting for the patient to leave, -- already going to staffroom or being picked up if self.waiting_for_staffroom or self.staffroom_needed or self.going_to_staffroom or self.pickup then return end -- If no staff room exists, prevent further checks until one is built if not self.world:findRoomNear(self, "staff_room") then self.waiting_for_staffroom = true -- notifyNewRoom resets it when a staff room gets built. return end if not class.is(self, Handyman) and room and room:getPatient() then -- If occupied by patient, staff will go to the staffroom after the patient left. self.staffroom_needed = true else self:goToStaffRoom() end end end function Staff:notifyNewRoom(room) if room.room_info.id == "staff_room" then self.waiting_for_staffroom = false end end function Staff:goToStaffRoom() -- NB: going_to_staffroom set if (and only if) a seek_staffroom action is in the action_queue self.going_to_staffroom = true local room = self:getRoom() if room then room.staff_leaving = true self:setNextAction(room:createLeaveAction()) self:queueAction(SeekStaffRoomAction()) else self:setNextAction(SeekStaffRoomAction()) end end -- Function to set pickup action on staff. Pickup action can be deferred. function Staff:setPickup(ui, window_to_close) if not self.pickup then -- check if we already added pickup Action in actions queue self.pickup = true local pickup_action = PickupAction(ui) if window_to_close then -- if we want to close some window after pickup happened pickup_action = pickup_action:setTodoClose(window_to_close) end self:setNextAction(pickup_action, true) end end function Staff:onPickup() self:setDynamicInfoText("") -- picking up staff was not canceling moods in all cases see issue 1642 -- as you would expect room:onHumanoidLeave(humanoid) to clear them! self:setMood("idea3", "deactivate") self:setMood("reflexion", "deactivate") end function Staff:onPlaceInCorridor() local world = self.world local notify_object = world:getObjectToNotifyOfOccupants(self.tile_x, self.tile_y) if notify_object then notify_object:onOccupantChange(1) end -- Assume that if the player puts someone in the corridor they don't want the -- staff member to primarily return to his/her old room. self.last_room = nil self:updateSpeed() self:setNextAction(MeanderAction()) end -- Sets the Hospital for a member of staff --!param hospital (Hospital) - hospital to assign to member of staff function Staff:setHospital(hospital) Humanoid.setHospital(self, hospital) self:updateDynamicInfo() end -- Helper function to decide if Staff fulfills a criterion -- (one of "Doctor", "Nurse", "Psychiatrist", "Surgeon", "Researcher" and "Handyman", "Receptionist", "Junior", "Consultant") function Staff:fulfillsCriterion(criterion) return false end function Staff:adviseWrongPersonForThisRoom() local room = self:getRoom() local room_name = room.room_info.long_name local required = (room.room_info.maximum_staff or room.room_info.required_staff) if required then if required.Nurse then self.hospital:giveAdvice({ _A.staff_place_advice.only_nurses_in_room:format(room_name) }) elseif required.Surgeon then self.hospital:giveAdvice({ _A.staff_place_advice.only_surgeons }) elseif required.Researcher then self.hospital:giveAdvice({ _A.staff_place_advice.only_researchers }) elseif required.Psychiatrist then self.hospital:giveAdvice({ _A.staff_place_advice.only_psychiatrists }) else self.hospital:giveAdvice({ _A.staff_place_advice.only_doctors_in_room:format(room_name) }) end end end --! Check whether staff are meandering --!return true if staff currently has a meander action function Staff:isMeandering() if #self.action_queue < 2 then return false end -- "meander" action always insert "move" or "idle" action before itself. -- so when humanoid "meandering" his action queue usually looks like: -- [1 idle, 2 meander] or [1 walk, 2 meander]. local idle_is_first = self.action_queue[1].name == "idle" local walk_is_first = self.action_queue[1].name == "walk" local meander_is_second = self.action_queue[2].name == "meander" return (idle_is_first or walk_is_first) and meander_is_second end -- Function to decide if staff currently has nothing to do and can be called to a room where they're needed function Staff:isIdle() -- Make sure we're not in an undesired state if not self.hospital or self.fired then return false end if self.on_call or self.pickup or self.going_to_staffroom or self.staffroom_needed then return false end -- if they are using a door they are not idle, this stops doctors being considered for staff selection -- for rooms they have not completely left yet, fixes issue 810 if self.user_of and self.user_of.object_type.id == "door" then return false end local room = self:getRoom() if room then -- in special rooms, never if room.room_info.id == "staff_room" or room.room_info.id == "research" or room.room_info.id == "training" then return false end -- For handyman - just check the on_call flag if class.is(self, Handyman) then return not self.on_call end -- For other staff... -- Staff member might be leaving if self:getCurrentAction().is_leaving then return false end -- in regular rooms (diagnosis / treatment), if no patient is in sight -- or if the only one in sight is actually leaving. return not room:isRoomInDemand() else -- In the corridor and not on_call (e.g. watering or going to room). if class.is(self, Handyman) then return not self.on_call end -- The staff is free, unless going back to the training/research. room = self.last_room if room and (room.room_info.id == "training" or room.room_info.id == "research") then return false end return true end end -- Makes the staff member request a raise of 10%, or a wage exactly in the middle of their current and a fair one, whichever is more. function Staff:requestRaise() assert(self.hospital, "A staff member asked for a pay rise who doesn't belong to a hospital!") local max_salary = self.world.map.level_config.payroll.MaxSalary -- Never request a raise if already at max salary if self.profile.wage >= max_salary then self.timer_until_raise = nil return end -- Check whether there is already a request for raise. if not self:isMoodActive("pay_rise") then local amount = math.floor(math.max(self.profile.wage * 1.1, (self.profile:getFairWage() + self.profile.wage) / 2) - self.profile.wage) -- Don't ask over the salary cap if self.profile.wage + amount > max_salary then amount = max_salary - self.profile.wage end -- At least for now, staff are timid, and only ask for raises 1/5th of the time if math.random(1, 5) ~= 1 or amount <= 0 then self.timer_until_raise = nil return -- too timid end -- The staff member can now successfully ask for a raise self.hospital:makeRaiseRequest(amount, self) self.quitting_in = 25*30 + math.random(0, 50) -- Time until the staff members quits anyway self:setMood("pay_rise", "activate") end end -- Increases the wage of the staff member. Also increases happiness and clears -- any request raise dialogs. --!param amount (integer) The amount, in game dollars per month, to increase -- the salary by. --!return (bool) Whether the wage actually increased function Staff:increaseWage(amount) -- Are we already paid the maximum? local max_salary = self.world.map.level_config.payroll.MaxSalary local wage_raised = true if self.profile.wage >= max_salary then wage_raised = false -- Already at max salary else local new_wage = self.profile.wage + amount if self.profile.wage + amount > max_salary then -- Maximum salary hit. The staff member will never be unhappy again new_wage = max_salary end -- Apply new salary self.profile.wage = new_wage self.world.ui:playSound("bonusal2.wav") end -- Reset self:setMood("pay_rise", "deactivate") self:changeAttribute("happiness", 0.99) return wage_raised end --! Sets dynamic info text before the dynamic info update --!param text (string) the string to append function Staff:setDynamicInfoText(text) self.dynamic_text = text self:updateDynamicInfo() end --! Updates a staff member's dynamic info function Staff:updateDynamicInfo() local dynamic_text = self.dynamic_text or "" local fatigue_text = _S.dynamic_info.staff.tiredness if class.is(self, Receptionist) then fatigue_text = nil else self:setDynamicInfo('progress', self:getAttribute("fatigue")) end self:setDynamicInfo('text', { self.profile.profession, dynamic_text, fatigue_text, }) if self.hospital then self:setDynamicInfo('dividers', {self.hospital.policies["goto_staffroom"]}) end end function Staff:onDestroy() -- Remove any message related to the staff member. if self.message_callback then self:message_callback(true) self.message_callback = nil end Humanoid.onDestroy(self) end function Staff:afterLoad(old, new) -- Usage of going_to_staffroom flag changed slightly, so unset it. -- (should be safe even if someone is actually going to staffroom) if old < 27 and new >= 27 then self.going_to_staffroom = nil end if old < 29 and new >= 29 then -- Handymen could have "staffroom_needed" flag set due to a bug, unset it. if class.is(self, Handyman) then self.staffroom_needed = nil end end if old < 64 and new >= 64 then -- added reference to world for staff profiles self.profile.world = self.world end if old < 68 and new >= 68 then if not class.is(self, Receptionist) and self:getAttribute("fatigue") >= self.hospital.policies["goto_staffroom"] then self:goToStaffRoom() self.going_to_staffroom = true end end if old < 121 and new >= 121 then if class.is(self, Handyman) and self.user_of and self.user_of.object_type.class == "Litter" then local litter = self.user_of local hospital = self.world:getHospital(litter.tile_x, litter.tile_y) local taskIndex = hospital:getIndexOfTask(litter.tile_x, litter.tile_y, "cleaning", litter) hospital:removeHandymanTask(taskIndex, "cleaning") end end if old < 133 and new >= 133 then if class.is(self, Handyman) then setmetatable(self, Handyman._metatable) elseif class.is(self, Receptionist) then setmetatable(self, Receptionist._metatable) elseif class.is(self, Nurse) then setmetatable(self, Nurse._metatable) else setmetatable(self, Doctor._metatable) end -- The new class's afterLoad calls staff.afterLoad, so to avoid -- infinite recursion we need to finish afterLoad actions up to -- this version, and then pretend we are starting from this -- version to avoid running them a second time. Humanoid.afterLoad(self, old, 133) self:afterLoad(133, new) return end if old < 213 then self.mood_marker = 2 end if old < 250 then -- Staff members picked up and moved to rest didn't reset the -- staffroom_needed flag. If a staff member genuinely needed it they would -- get it back again next tick. if self:getAttribute("fatigue") < self.hospital.policies["goto_staffroom"] then self.staffroom_needed = nil self.going_to_staffroom = nil -- also clear for consistency end end self:updateDynamicInfo() Humanoid.afterLoad(self, old, new) end --! Estimate staff service quality based on skills, restfulness (inverse of fatigue) and happiness. --!return (float) between [0-1] indicating quality of the service. function Staff:getServiceQuality() -- weights local skill_weight = 0.7 local restfulness_weight = 0.2 local happiness_weight = 0.1 local weighted_skill = skill_weight * self.profile.skill -- Less fatigue is better local weighted_restfulness = restfulness_weight * (1 - self:getAttribute("fatigue")) local weighted_happiness = happiness_weight * self:getAttribute("happiness") return weighted_skill + weighted_restfulness + weighted_happiness end --[[ Return string representation !return (string) ]] function Staff:tostring() return Humanoid.tostring(self) end --! Judge tiredness based on the level config (which has a default of 700) --!return (boolean) Is staff member very tired? function Staff:isVeryTired() return self:getAttribute("fatigue") * 1000 >= self.world.map.level_config.gbv.VeryTired end --! Judge crack up tiredness based on the level config (which has a default of 800) --!return (boolean) Is staff member very tired? function Staff:isCrackUpTired() return self:getAttribute("fatigue") * 1000 >= self.world.map.level_config.gbv.CrackUpTired end -- Dummy callback for savegame compatibility local callbackNewRoom = --[[persistable:staff_build_staff_room_callback]] function() end CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/staff/000077500000000000000000000000001522247547500224605ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/staff/doctor.lua000066400000000000000000000315021522247547500244560ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Copyright (c) 2023 lewri Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") corsixth.require("entities.humanoids.staff") local AnnouncementPriority = _G["AnnouncementPriority"] --! A Doctor (Researcher,Surgan,Psychologist) class "Doctor" (Staff) ---@type Doctor local Doctor = _G["Doctor"] --!param ... Arguments to base class constructor. function Doctor:Doctor(...) self:Staff(...) self.leave_sounds = {"sack001.wav", "sack002.wav", "sack003.wav"} end function Doctor:tickDay() if not Staff.tickDay(self) then return false end -- if you overwork your Dr's then there is a chance that they can go crazy -- when this happens, find him and get him to rest straight away if not self:isVeryTired() then if self:isResting() then self:setCrazy(false) end else -- doctor can go crazy if they're too tired if math.random(1, 300) == 1 then self:setCrazy(true) end end -- is self researcher in research room? if self:isResearching() then self.hospital.research:addResearchPoints(1550 + 1000 * self.profile.skill) -- Are we learning new skills today? elseif self:isLearning() then local room = self:getRoom() local consultant = room.staff_member local room_factor = room:getTrainingFactor() -- When counting room occupancy, we must subtract 1 for the consultant in the room. -- Currently, handymen/newly trained consultants also get counted here as they -- could be considered distracting to current trainees. local student_count = room:getStaffCount() - 1 self:trainSkills(consultant, room_factor, student_count) end end function Doctor:tick() Staff.tick(self) -- don't do anything if they're fired or picked up or have no hospital if self.fired or self.pickup or not self.hospital or self.dead then return end -- if doctor is in a room and they're using an object -- then their skill level will increase _slowly_ over time if self:isLearningOnTheJob() then self:updateSkill("skill", 0.000003) end end -- Determine if the staff member should contribute to research function Doctor:isResearching() local room = self:getRoom() -- Doctor is in research lab, is qualified, and is not leaving the hospital. return room and room.room_info.id == "research" and self.profile.is_researcher >= 1.0 and self.hospital end -- Determine if the staff member should increase their skills function Doctor:isLearning() local room = self:getRoom() -- Check that the doctor is a trainee (currently in a chair and not a consultant) in -- a training room. if self.profile.is_consultant then return false end return room and room.room_info.id == "training" and room.staff_member and self:getCurrentAction().name == "use_object" and self:getCurrentAction().object.object_type.id == "lecture_chair" end function Doctor:isLearningOnTheJob() local room = self:getRoom() -- Doctor is in room but not training room, staff room, or toilets; is a doctor; and is using something return room and room.room_info.id ~= "training" and room.room_info.id ~= "staff_room" and room.room_info.id ~= "toilets" and self:getCurrentAction().name == "use_object" end function Doctor:setProfile(profile) Staff.setProfile(self, profile) self:updateStaffTitle() end --! Assign skill points --!param trait (string) The trait of focus --!param amount (number) The amount granted function Doctor:updateSkill(trait, amount) local old_profile = { is_junior = self.profile.is_junior, is_consultant = self.profile.is_consultant } -- don't push further when they are already at 100%+ if self.profile[trait] >= 1.0 then return end self.profile[trait] = self.profile[trait] + amount if self.profile[trait] >= 1.0 then self.profile[trait] = 1.0 local is = trait:match("^is_(.*)") if is == "surgeon" or is == "psychiatrist" or is == "researcher" then self.hospital:giveAdvice({ _A.information.promotion_to_specialist:format(_S.staff_title[is]) }) -- patients might we waiting for a doctor with this skill, notify them self.hospital:notifyOfStaffChange(self) end self:updateStaffTitle() end if trait == "skill" then self.profile:parseSkillLevel() if old_profile.is_junior and not self.profile.is_junior then self.hospital:giveAdvice({ _A.information.promotion_to_doctor }) self:updateStaffTitle() elseif not old_profile.is_consultant and self.profile.is_consultant then self.hospital:giveAdvice({ _A.information.promotion_to_consultant }) if self:getRoom().room_info.id == "training" then self:setNextAction(self:getRoom():createLeaveAction()) self:queueAction(MeanderAction()) self.last_room = nil -- Consultant no longer needs to return to this room end self:updateStaffTitle() end end end --! Confirm doctor has specialism --!param trait (string) what to check (in is_xxx format) --!return true if specialised function Doctor:hasSpecialism(trait) local specialisms = { ["is_surgeon"] = self.profile.is_surgeon >= 1, ["is_psychiatrist"] = self.profile.is_psychiatrist >= 1, ["is_researcher"] = self.profile.is_researcher >= 1, } return specialisms[trait] end --! Generate the performance factor of the training room --!param doc_atd (number) Attention to detail of student --!param con_skill (number) Skill level of consultant --!param class_size (number) Total students in the training room --!return calculated performance function Doctor._calculateTrainingPerformance(doc_atd, con_skill, class_size) -- Clamp a performance modifier's impact between 90% and 110% local function clamp(value) local base, range = 0.9, 0.2 -- specify the +-10% variability local factor = value * range return base + factor end local performers = { clamp(doc_atd), -- doctor focus clamp(con_skill * con_skill), -- teacher ability. ~1.0 modifier at 0.75 skill math.t_random(0.9, 1, 1.1), -- Allow some randomness } -- Average the three performance modifiers to generate a single performance factor local p_impact = 0 for i = 1, #performers do p_impact = p_impact + performers[i] end p_impact = p_impact / #performers -- Class size impacts performance when there are more than 3 students at rate 2/n-1 local c_impact = class_size >= 3 and 2 / (class_size - 1) or 1 return p_impact * c_impact end --! Calculates the amount of skill to learn towards becoming a doctor/consultant and --! any amount towards a specialist skill being taught --! There are detailed explanations on the logic to these calculations in the Wiki --!param consultant (entity) The person teaching the student --!param room_factor (number) What score training objects in the room give --!param student_count (number) Total number of students present function Doctor:trainSkills(consultant, room_factor, student_count) local level_config = self.world.map.level_config local general_factor = level_config.gbv.TrainingRate local MIN_LEARN_VALUE = 0.001 -- Doctor always advances at least this amount local g_scale = 10000 -- scales generalist calculation local s_scale = 12 -- scales specialism calculation local function countSkillsTaught() local num_skills = 1 -- General skill is always counted local skills = {"is_surgeon", "is_psychiatrist", "is_researcher"} for _, skill in pairs(skills) do if consultant:hasSpecialism(skill) and not self:hasSpecialism(skill) then num_skills = num_skills + 1 end end return num_skills end local skills_factor = 1 / countSkillsTaught() local class_performance = self._calculateTrainingPerformance( self.profile.attention_to_detail, consultant.profile.skill, student_count) -- Calculate the simpler, generalist skill, which is always awarded while training. local g_train = (general_factor * skills_factor * class_performance) / g_scale self:updateSkill("skill", math.max(g_train, MIN_LEARN_VALUE)) -- Now begin calculations for specialist skills local thresholds = { ["is_surgeon"] = level_config.gbv.AbilityThreshold[0], ["is_psychiatrist"] = level_config.gbv.AbilityThreshold[1], ["is_researcher"] = level_config.gbv.AbilityThreshold[2], } for name, threshold in pairs(thresholds) do if consultant:hasSpecialism(name) and not self:hasSpecialism(name) then local base = room_factor / threshold local s_train = (base * skills_factor * class_performance) / s_scale self:updateSkill(name, math.max(s_train, MIN_LEARN_VALUE)) end end end function Doctor:updateStaffTitle() local profile = self.profile local professions = "" local number = 0 if profile.is_junior then professions = _S.staff_title.junior .. " " number = 1 elseif profile.is_consultant then professions = _S.staff_title.consultant .. " " number = 1 end if profile.is_researcher >= 1.0 then professions = professions .. _S.staff_title.researcher .. " " number = number + 1 end if profile.is_surgeon >= 1.0 then professions = professions .. _S.staff_title.surgeon .. " " number = number + 1 end if profile.is_psychiatrist >= 1.0 then if number < 3 then professions = professions .. _S.staff_title.psychiatrist else professions = professions .. _S.dynamic_info.staff.psychiatrist_abbrev end end if professions == "" then professions = _S.staff_title.doctor end self.profile.profession = professions end function Doctor:setCrazy(crazy) if crazy then -- make doctor crazy if not self.is_crazy then self:setLayer(5, self.profile.layer5 + 4) self.hospital:giveAdvice({_A.warnings.doctor_crazy_overwork}) self.is_crazy = true end else -- make doctor sane if self.is_crazy then if self.layers[5] >= 5 then self:setLayer(5, self.layers[5] - 4) self.is_crazy = false end end end end function Doctor:onPickup() Staff.onPickup(self) self:resetSurgeonState() end -- Function resets "Surgeon" state for Doctor. -- Useful for case when on picking up Doctor from Operating Theatre -- we need to switching him back to regular clothes and type. function Doctor:resetSurgeonState() if self:isType("Surgeon") then self:setType("Doctor") end end local profile_attributes = { Psychiatrist = "is_psychiatrist", Surgeon = "is_surgeon", Researcher = "is_researcher", Junior = "is_junior", Consultant = "is_consultant", } -- Helper function to decide if Staff fulfills a criterion -- (one of "Doctor", "Nurse", "Psychiatrist", "Surgeon", "Researcher" and "Handyman", "Receptionist", "Junior", "Consultant") function Doctor:fulfillsCriterion(criterion) if criterion == "Doctor" then return true end if self.profile and self.profile[profile_attributes[criterion]] == 1.0 then return true end return false end function Doctor:adviseWrongPersonForThisRoom() local room = self:getRoom() local room_name = room.room_info.long_name if room.room_info.id == "toilets" then self.hospital:giveAdvice({ _A.staff_place_advice.doctors_cannot_work_in_room:format(room_name) }) elseif room.room_info.id == "training" then self.hospital:giveAdvice({ _A.staff_place_advice.doctors_cannot_work_in_room:format(room_name) }) else Staff.adviseWrongPersonForThisRoom(self) end end function Doctor:afterLoad(old, new) if old < 163 then self.leave_priority = AnnouncementPriority.High self.leave_sounds = {"sack001.wav", "sack002.wav", "sack003.wav"} end Staff.afterLoad(self, old, new) end --[[ Return string representation ! Adds Doctor statistics for a "Doctor" object !return (string) ]] function Doctor:tostring() local result = Humanoid.tostring(self) result = result .. string.format("\nSkills: (%.3f) Surgeon (%.3f) Psych (%.3f) Researcher (%.3f)", self.profile.skill or 0, self.profile.is_surgeon or 0, self.profile.is_psychiatrist or 0, self.profile.is_researcher or 0) return result end CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/staff/handyman.lua000066400000000000000000000167171522247547500247760ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") corsixth.require("entities.humanoids.staff") local AnnouncementPriority = _G["AnnouncementPriority"] --! A Doctor, Nurse, Receptionist, Handyman, or Surgeon class "Handyman" (Staff) ---@type Handyman local Handyman = _G["Handyman"] --!param ... Arguments to base class constructor. function Handyman:Handyman(...) self:Staff(...) self.leave_sounds = {"sack006.wav"} end -- Set task type priority value --!param task_type (string) task type --!param priority (float) priority to set function Handyman:setPriority(task_type, priority) self.attributes[task_type] = priority end -- Get task type priority value --!param task_type (string) task type --!return (float) priority function Handyman:getPriority(task_type) return self:getAttribute(task_type) end function Handyman:dump() print("-----------------------------------") if self.on_call then print("On call: ") CallsDispatcher.dumpCall(self.on_call) else print('On call: no') end print("Busy: ", (self:isIdle() and "idle" or "busy") .. (self.pickup and " and picked up" or '')) if self.going_to_staffroom then print("Going to staffroom") end if self.last_room then print("Last room: ", self.last_room.room_info.id .. '@' .. self.last_room.x ..','.. self.last_room.y) end print("Cleaning: " .. self:getPriority("cleaning"), "Watering: " .. self:getPriority("watering"), "Repairing: " .. self:getPriority("repairing")) Humanoid.dump(self) end function Handyman:setProfile(profile) Staff.setProfile(self, profile) -- Set Handyman priorities by default self:setPriority("cleaning", 0.333) self:setPriority("watering", 0.333) self:setPriority("repairing", 0.333) end function Handyman:goToStaffRoom() self:unassignTask() Staff.goToStaffRoom(self) end -- Helper function to decide if Handyman fulfills a criterion -- (one of "Doctor", "Nurse", "Psychiatrist", "Surgeon", "Researcher" and "Handyman", "Receptionist", "Junior", "Consultant") function Handyman:fulfillsCriterion(criterion) return criterion == "Handyman" end function Handyman:onPickup() self:releaseHandymanFromTask(false) Staff.onPickup(self) end -- Detaches the handyman from the task and forces him to search for a new one. --!param reset_action_queue (bool) Should the handyman interrupt -- the current action to search for a new task function Handyman:releaseHandymanFromTask(reset_action_queue) self:setDynamicInfoText("") self:unassignTask() -- Lets find another task if reset_action_queue then self:setNextAction(AnswerCallAction()) else self:queueAction(AnswerCallAction()) end end function Handyman:searchForHandymanTask() self.task = nil local nr = math.random() local task_type_1, task_type_2, task_type_3 local task_found = false -- Let's determine what type of tasks will be a priority for that handyman. if nr < self:getPriority("cleaning") then task_type_1, task_type_2, task_type_3 = "cleaning", "watering", "repairing" elseif nr < self:getPriority("cleaning") + self:getPriority("watering") then task_type_1, task_type_2, task_type_3 = "watering", "cleaning", "repairing" else task_type_1, task_type_2, task_type_3 = "repairing", "watering", "cleaning" end -- Let's search First priority type task. local index = self.hospital:searchForHandymanTask(self, task_type_1) if index ~= -1 then -- Found a task for the handyman self:assignHandymanTask(index, task_type_1) task_found = true else -- Unable find any first type priority tasks for the handyman. if self:getPriority(task_type_1) < 1 then local sum = self:getPriority(task_type_2) + self:getPriority(task_type_3) if math.random(0, math.floor(sum * 100)) > math.floor(self:getPriority(task_type_2) * 100) then task_type_2, task_type_3 = task_type_3, task_type_2 end -- Let's search again but for Second priority type tasks now. index = self.hospital:searchForHandymanTask(self, task_type_2) if index ~= -1 then self:assignHandymanTask(index, task_type_2) task_found = true elseif self:getPriority(task_type_3) > 0 then -- Let's search again but for Third priority type tasks now. index = self.hospital:searchForHandymanTask(self, task_type_3) if index ~= -1 then self:assignHandymanTask(index, task_type_3) task_found = true end end end end if task_found == false then -- Unable to find any task for the handyman. So let him meandering. self:doMeandering() end return task_found end function Handyman:doMeandering() -- Make sure that the handyman isn't meandering already. if self:isMeandering() then return end if self:getRoom() then self:queueAction(self:getRoom():createLeaveAction()) end self:queueAction(MeanderAction()) end -- Assign a handyman to a task --!param task_index (integer) task index --!param task_type (string) task type function Handyman:assignHandymanTask(task_index, task_type) local task_object = self.hospital:assignHandymanToTask(self, task_index, task_type) if task_object then if task_type == "cleaning" then self:processCleaningTask(task_object) else if task_object.call.dropped then task_object.call.dropped = nil end task_object.call.dispatcher:executeCall(task_object.call, self) end end end function Handyman:processCleaningTask(task) if self:getRoom() then self:setNextAction(self:getRoom():createLeaveAction()) self:queueAction(WalkAction(task.tile_x, task.tile_y)) else self:setNextAction(WalkAction(task.tile_x, task.tile_y)) end self:queueAction(SweepFloorAction(task.object)) -- After cleaning find next task self:queueAction(AnswerCallAction()) end -- If the staff member had a task outstanding, unassigning them from that task. -- Tasks with no handyman assigned will be eligible for reassignment by the hospital. function Handyman:unassignTask() self:unassignCall() if self.task then self.task.assignedHandyman = nil self.task = nil end end function Handyman:unassignCall() if self.on_call then CallsDispatcher.unassignCall(self.on_call, false) end end function Handyman:die() Staff.die(self) self:unassignTask() self.hospital:unassignHandymanTasks(self) end function Handyman:afterLoad(old, new) if old < 163 then self.leave_priority = AnnouncementPriority.High self.leave_sounds = {"sack006.wav"} end Staff.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/staff/nurse.lua000066400000000000000000000042011522247547500243140ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") corsixth.require("entities.humanoids.staff") local AnnouncementPriority = _G["AnnouncementPriority"] --! A Doctor, Nurse, Receptionist, Handyman, or Surgeon class "Nurse" (Staff) ---@type Nurse local Nurse = _G["Nurse"] --!param ... Arguments to base class constructor. function Nurse:Nurse(...) self:Staff(...) self.leave_sounds = {"sack004.wav", "sack005.wav"} end -- Helper function to decide if Staff fulfills a criterion -- (one of "Doctor", "Nurse", "Psychiatrist", "Surgeon", "Researcher" and "Handyman", "Receptionist", "Junior", "Consultant") function Nurse:fulfillsCriterion(criterion) return criterion == "Nurse" end function Nurse:adviseWrongPersonForThisRoom() local room = self:getRoom() local room_name = room.room_info.long_name self.hospital:giveAdvice({ _A.staff_place_advice.nurses_cannot_work_in_room:format(room_name) }) end function Nurse:afterLoad(old, new) if old < 163 then self.leave_priority = AnnouncementPriority.High self.leave_sounds = {"sack004.wav", "sack005.wav"} end Staff.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/staff/receptionist.lua000066400000000000000000000070151522247547500256760ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") corsixth.require("entities.humanoids.staff") local AnnouncementPriority = _G["AnnouncementPriority"] --! A Doctor, Nurse, Receptionist, Handyman, or Surgeon class "Receptionist" (Staff) ---@type Receptionist local Receptionist = _G["Receptionist"] --!param ... Arguments to base class constructor. function Receptionist:Receptionist(...) self:Staff(...) self.leave_sounds = {"sack007.wav", "sack008.wav"} self.leave_priority = AnnouncementPriority.Critical -- must always be played even without receptionist end function Receptionist:tickDay() if not Staff.tickDay(self) then return false end self:needsWorkStation() end function Receptionist:isTiring() return false end function Receptionist:isResting() return false end function Receptionist:setProfile(profile) Staff.setProfile(self, profile) self.attributes["fatigue"] = nil end function Receptionist:needsWorkStation() if self.hospital then self.hospital:msgNeedFirstReceptionDesk() end end -- Receptionists do not need rest function Receptionist:checkIfNeedRest() return end function Receptionist:onPlaceInCorridor() Staff.onPlaceInCorridor(self) local world = self.world world:findObjectNear(self, "reception_desk", nil, true, function(x, y) local obj = world:getObject(x, y, "reception_desk") return obj and obj:occupy(self) end) self.hospital:buildReceptionDesksCache() -- Rebuild cache of staffed desks end -- Helper function to decide if Staff fulfills a criterion -- (one of "Doctor", "Nurse", "Psychiatrist", "Surgeon", "Researcher" and "Handyman", "Receptionist", "Junior", "Consultant") function Receptionist:fulfillsCriterion(criterion) return criterion == "Receptionist" end function Receptionist:getDrawingLayer() local direction = self.last_move_direction if direction == "west" or direction == "north" then return DrawingLayers.ReceptionistFacingAway end return DrawingLayers.ReceptionistFacingUser end function Receptionist:onPickup() Staff.onPickup(self) self.hospital:buildReceptionDesksCache() -- Rebuild cache of staffed desks end function Receptionist:fire() Staff.fire(self) self.hospital:buildReceptionDesksCache() -- Rebuild cache of staffed desks end function Receptionist:afterLoad(old, new) if old < 163 then self.leave_sounds = {"sack007.wav", "sack008.wav"} self.leave_priority = AnnouncementPriority.Critical -- must always be played even without receptionist end Staff.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/entities/humanoids/vip.lua000066400000000000000000000412641522247547500226650ustar00rootroot00000000000000--[[ Copyright (c) 2011 John Pirie Copyright (c) 2020 lewri Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --[[ ---------------------------------- VIP Rating System -------------------------------- Vip rating is calculated between 0 and 15 If rating exceeds values, it will be capped as necessary 1. LITTER OBJECTS - a. General litter and vomit 'litter' is counted - b. At end of visit, if number <=10 award -1 - c. Otherwise, award +1 2. STAFF TIREDNESS - a. If staff <=1, award +4 and skip other checks - b. If any staff member very tired (over 0.7), award 2 - c. If average staff tiredness over tired (0.5), award 1 - d. Else award -1 3. PATIENTS - a. If average patient health >= 0.2, award -1 - b. If average patient health < 0.2, award +1 - c. Assess patient warmth, too hot/cold award +2, perfect -1 - d. Average happiness, award 3 if <0.2; 2 if <0.4, 1 if <0.6, 0 if <0.8, else -1 - e. Check if anyone has died during visit, punish based on severity - f. Check how many patients are cured vs. all patients, award based on % - g. Check seating. Award -1 for more seated than standing, else +1 - h. Check maximum queue size. Award based on the longest queue 4. DOCTORS - a. If no doctors, award +4 and skip other checks - b. If more than half doctors are consultants, award -2 - c. If more than half doctors are juniors, award +2 5. ROOMS - a. If there are no active rooms, award +4 - b. If rooms not crashed (exploded) <3, award +1 - c. Get average room evaluation score, award based on average level ------------------------------------------------------------------------------------- --]] --[[ initialisation --]] corsixth.require("utility") --! A `Vip` who is in the hospital to evaluate the hospital and produce a report class "Vip" (Humanoid) ---@type Vip local Vip = _G["Vip"] function Vip:Vip(...) self:Humanoid(...) self.hover_cursor = TheApp.gfx:loadMainCursor("default") self.action_string = "" self.name = "" self.announced = false --First we should generate an initial VIP rating self.vip_rating = 12 - math.random(0,5) self.cash_reward = 0 self.rep_reward = 0 self.vip_message = 0 self.enter_deaths = 0 self.enter_visitors = 0 -- patients in the hospital when VIP arrives self.enter_patients = 0 self.enter_cures = 0 self.num_vomit_noninducing = 0 self.num_vomit_inducing = 0 self.found_vomit = {} self.num_visited_rooms = 0 self.room_eval = 0 -- sets the chance VIP visits each room, default is 50% or 1/2. For every 40 rooms in a hospital over 79 we increase n by 1 and chance is 1/n+1 self.room_visit_chance = 1 self.waiting = 0 self.slow_animation = true end --[[--VIP while on premises--]] function Vip:tickDay() -- for the vip if self.waiting then self.waiting = self.waiting - 1 if self.waiting == 0 then if #self.world.rooms == 0 then -- No rooms have been built yet self:goHome() end self:getNextRoom() self.waiting = nil end end if not self.going_home then self.world:findObjectNear(self, "litter", 8, function(x, y) local litter = self.world:getObject(x, y, "litter") if not litter then return end local alreadyFound = false for i=1, (self.num_vomit_noninducing + self.num_vomit_inducing) do if self.found_vomit[i] == litter then alreadyFound = true break end end self.found_vomit[(self.num_vomit_noninducing + self.num_vomit_inducing + 1)] = litter if not alreadyFound then if litter:anyLitter() then self.num_vomit_noninducing = self.num_vomit_noninducing + 1 else self.num_vomit_inducing = self.num_vomit_inducing + 1 end end end) end return Humanoid.tickDay(self) end function Vip:getNextRoom() -- Find out the next room to visit. self.next_room_no, self.next_room = next(self.world.rooms, self.next_room_no) if self.next_room == nil then return self:setNextAction(VipGoToNextRoomAction()) end -- Always visit the first room. if self.num_visited_rooms > 0 then local roll_to_visit = math.random(0, self.room_visit_chance) -- Run a loop until roll_to_visit passes, or we hit a room the VIP must visit while roll_to_visit ~= self.room_visit_chance and not self.next_room.room_info.vip_must_visit do self.next_room_no, self.next_room = next(self.world.rooms, self.next_room_no) -- get new room if self.next_room == nil then -- We ran out of rooms, time to leave break end roll_to_visit = math.random(0, self.room_visit_chance) end end -- Make sure room is active. If not, always visit the next available room. while self.next_room and not self.next_room.is_active do self.next_room_no, self.next_room = next(self.world.rooms, self.next_room_no) end self:setNextAction(VipGoToNextRoomAction()) end -- display the VIP name in the info box function Vip:updateDynamicInfo(action_string) self:setDynamicInfo('text', {self.name}) end -- Disable showing VIP mood on hover function Vip:setIfHoverMoodsVisible() self.hover_moods = false end --[[--VIP is leaving--]] function Vip:goHome() if self.going_home then return end self:unregisterCallbacks() -- Set the rating. self:setVIPRating() self.going_home = true -- save self.hospital so we can reference it in self:onDestroy self.last_hospital = self.hospital self:despawn() end function Vip:evaluateRoom() local room_extinguisher = 0 local room_plant = 0 local room_bin = 0 -- Another room visited. self.num_visited_rooms = self.num_visited_rooms + 1 local room = self.next_room -- If the player is about to kill a live patient for research, punish hard if room.room_info.id == "research" then if room:getPatient() then self.vip_rating = self.vip_rating + 6 end end -- Evaluate the room we're currently looking at for object, _ in pairs(room.objects) do if object.object_type.id == "extinguisher" and room_extinguisher == 0 then self.room_eval = self.room_eval + 1 -- Only count this object type once room_extinguisher = 1 elseif object.object_type.id == "plant" then room_plant = object:isDying() and room_plant - 1 or room_plant + 1 elseif object.object_type.id == "bin" and room_bin == 0 then self.room_eval = self.room_eval + 1 -- Only count this object type once room_bin = 1 elseif object:isMachine() then self.room_eval = object:isBreaking() and self.room_eval - 1 or self.room_eval + 1 end end -- Check whether we had more good or bad plants if room_plant < 0 then self.room_eval = self.room_eval - 1 elseif room_plant > 0 then self.room_eval = self.room_eval + 1 end self:getNextRoom() end --[[--VIP has left--]] -- Called when the vip is out of the hospital grounds function Vip:onDestroy() if self.world.free_build_mode then self.last_hospital:unconditionalChangeReputation(20) elseif self.vip_rating <= 7 then self.last_hospital:receiveMoney(self.cash_reward, _S.transactions.vip_award) self.last_hospital:unconditionalChangeReputation(self.rep_reward) self.last_hospital.pleased_vips_ty = self.last_hospital.pleased_vips_ty + 1 else self.last_hospital:unconditionalChangeReputation(self.rep_reward) end self.last_hospital:makeVipEndFax(self.vip_rating, self.name, self.cash_reward, self.vip_message) self.world:nextVip() return Humanoid.onDestroy(self) end function Vip:setVIPRating() -- First do room code for later local count_rooms = 0 local max_queue = 0 for _, room in pairs(self.world.rooms) do if not room.crashed then count_rooms = count_rooms + 1 end if room.door.queue then max_queue = max_queue < room.door.queue:size() and room.door.queue:size() or max_queue end end --[[-- Group factor 1: Litter--]] if (self.num_vomit_noninducing + self.num_vomit_inducing) <= 10 then self.vip_rating = self.vip_rating - 1 else self.vip_rating = self.vip_rating + 1 end --[[-- Group factor 2: Staff tiredness--]] -- First get staff members local count_staff = #self.hospital.staff if count_staff > 1 then -- Loop through staff tiredness, if any above verytired, break loop for _, staff in ipairs(self.hospital.staff) do if staff:isVeryTired() then self.vip_rating = self.vip_rating + 2 break end end -- Average all staff tiredness local avg_tired = self.hospital:getAverageStaffAttribute("fatigue", 1) if avg_tired >= 0.5 then self.vip_rating = self.vip_rating + 1 else self.vip_rating = self.vip_rating - 1 end else -- Penalise where there is one or no staff self.vip_rating = self.vip_rating + 4 end --[[-- Group factor 3: Patients--]] -- First check we had patients this visit local patients_this_visit = self.enter_patients + self.hospital.num_visitors - self.enter_visitors if patients_this_visit > 0 then -- Average all patient health local avg_health = self.hospital:getAveragePatientAttribute("health", 0.19) if avg_health >= 0.2 then self.vip_rating = self.vip_rating - 1 else self.vip_rating = self.vip_rating + 1 end -- Get patient warmth local avg_warmth = self.hospital:getAveragePatientAttribute("warmth", nil) -- Punish if too cold/hot if avg_warmth then local patients_warmth_ratio_rangemap = { {upper = 0.22, value = 2}, {upper = 0.36, value = -1}, {value = 2} } self.vip_rating = self.vip_rating + rangeMapLookup(avg_warmth, patients_warmth_ratio_rangemap) end -- Check average patient happiness local avg_happiness = self.hospital:getAveragePatientAttribute("happiness", nil) if avg_happiness then local patients_happy_ratio_rangemap = { {upper = 0.20, value = 3}, {upper = 0.40, value = 2}, {upper = 0.60, value = 1}, {upper = 0.80, value = 0}, {value = -1} } self.vip_rating = self.vip_rating + rangeMapLookup(avg_happiness, patients_happy_ratio_rangemap) end -- Check the visitor to patient death ratio local death_diff = self.hospital.num_deaths - self.enter_deaths if death_diff ~= 0 then -- no deaths are good, but also expected local death_ratio = patients_this_visit / death_diff local death_ratio_rangemap = { {upper = 2, value = 4}, {upper = 4, value = 3}, {upper = 8, value = 2}, {upper = 12, value = 1}, {value = 0} } self.vip_rating = self.vip_rating + rangeMapLookup(death_ratio, death_ratio_rangemap) end -- Check the visitor to patient cure ratio local cure_diff = self.hospital.num_cured - self.enter_cures if cure_diff ~= 0 then -- no cures are bad local cure_ratio = patients_this_visit / cure_diff local cure_ratio_rangemap = { {upper = 2, value = -1}, {upper = 3, value = 0}, {upper = 4, value = 1}, {upper = 5, value = 2}, {value = 3} } self.vip_rating = self.vip_rating + rangeMapLookup(cure_ratio, cure_ratio_rangemap) else self.vip_rating = self.vip_rating + 3 end -- Check the seating : standing ratio of waiting patients local sum_sitting, sum_standing = self.hospital:countSittingStanding() if (sum_sitting + sum_standing) ~= 0 then if sum_sitting >= sum_standing or sum_standing == 0 then self.vip_rating = self.vip_rating - 1 else self.vip_rating = self.vip_rating + 1 end end -- Check the maximum queue length if max_queue == 0 then self.vip_rating = self.vip_rating - 1 else local queue_ratio_rangemap = { {upper = 3, value = -1}, {upper = 6, value = 0}, {upper = 9, value = 1}, {value = 2} } self.vip_rating = self.vip_rating + rangeMapLookup(max_queue, queue_ratio_rangemap) end end --[[--Group factor 4: Doctor ratios--]] -- First get all doctors local num_docs = self.hospital:countStaffOfCategory("Doctor") -- No doctors are bad if num_docs == 0 then self.vip_rating = self.vip_rating + 4 else -- Count num. consultants, num. juniors local num_cons = self.hospital:countStaffOfCategory("Consultant") local num_junior = self.hospital:countStaffOfCategory("Junior") -- Check consultant and junior proportions if num_cons / num_docs > 0.5 then self.vip_rating = self.vip_rating - 1 elseif num_junior / num_docs > 0.5 then self.vip_rating = self.vip_rating + 1 end end --[[--Group factor 5: Rooms--]] -- Low room numbers incur a penalty if count_rooms < 1 then self.vip_rating = self.vip_rating + 4 else if count_rooms < 3 then self.vip_rating = self.vip_rating + 1 end -- Room decor average local avg_room_eval = self.room_eval / self.num_visited_rooms local room_eval_rangemap = { {upper = 1.5, value = 3}, {upper = 2, value = 1}, {upper = 3, value = 0}, {value = -1} } if self.num_visited_rooms ~= 0 then self.vip_rating = self.vip_rating + rangeMapLookup(avg_room_eval, room_eval_rangemap) end end --[[--Finalise score--]] -- Documented rewards local rewards = { [1] = 4000, [2] = 2000, [3] = 1500, [4] = 1200, [5] = 800, [6] = 400, [7] = 200, [8] = 0, } -- Documented reps local rep_change = { [1] = 50, [2] = 45, [3] = 40, [4] = 35, [5] = 30, [6] = 25, [7] = 20, [8] = 15, [9] = 10, [10] = 5, [11] = -5, [12] = -10, [13] = -15, [14] = -20, [15] = -25, } -- Set rewards self.vip_rating = self.vip_rating > 15 and 15 or self.vip_rating self.vip_rating = self.vip_rating < 1 and 1 or self.vip_rating self.cash_reward = rewards[self.vip_rating] or 0 self.rep_reward = rep_change[self.vip_rating] self.vip_message = self.vip_rating self.hospital.num_vips_ty = self.hospital.num_vips_ty + 1 end function Vip:afterLoad(old, new) if old < 50 then self.num_visited_rooms = 0 self:setNextAction(IdleAction()) self.waiting = 1 for _, room in pairs(self.world.rooms) do if room.door.reserved_for == self then room.door.reserved_for = nil room:tryAdvanceQueue() end end end if old < 79 then self.name = self.hospital.visitingVIP end if old < 144 then self.vip_rating = 12 - math.random(0,5) -- Make sure we only rate rooms from now on if a VIP was visiting self.room_eval = 0 self.num_visited_rooms = 0 -- VIP's room visit chance is 50% if total rooms in hospital is less than 80 (makes a math.random with 0 and 1 possibilities). -- Else decided by total rooms / 40 (0, 1, 2 [33%]; 0, 1, 2, 3 [25%] etc) local rooms_threshold = 79 if #self.world.rooms > rooms_threshold then self.room_visit_chance = math.floor(#self.world.rooms / 40) else self.room_visit_chance = 1 end -- If our hospital has more patients than counted visitors adjust enter_patients self.enter_patients = #self.hospital.patients + self.enter_visitors - self.hospital.num_visitors if self.enter_patients < 0 then self.enter_patients = 0 end if self.going_home then --award max from old code if VIP leaving self.vip_rating = 2 self.cash_reward = 2000 self.rep_reward = 45 self.vip_message = 2 end for i, action in ipairs(self.action_queue) do if action.name == 'idle' and action.loop_callback and (self.waiting > 1 or i > 1) then action:setCount(50):setAfterUse(action.loop_callback) action.loop_callback = nil self.waiting = nil if i == 1 then self:queueAction(action, 1) self:finishAction() end end end end if old < 207 then self.slow_animation = true end if old < 213 then self.mood_marker = 2 end self:updateDynamicInfo() Humanoid.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/entities/machine.lua000066400000000000000000000505471522247547500215100ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") --! An `Object` which needs occasional repair (to prevent explosion). class "Machine" (Object) ---@type Machine local Machine = _G["Machine"] function Machine:Machine(hospital, object_type, x, y, direction, etc) self:Object(hospital, object_type, x, y, direction, etc) self.mood_marker = 1 -- Machine reuses the patient marker. if object_type.default_strength then -- Only for the main object. The slave doesn't need any strength local progress = self.hospital.research.research_progress[object_type] self.strength = progress.start_strength end -- We actually don't want any dynamic info just yet self:clearDynamicInfo() -- Change hover cursor once the room has been finished. self.waiting_for_finalize = true -- Waiting until the room is completed (reset by new-room callback). self.total_usage = 0 self:setHandymanRepairPosition(direction) end --!param room (object) machine room function Machine:notifyNewRoom(room) if self.waiting_for_finalize and room.objects[self] then self:finalize(room) self.waiting_for_finalize = false end end function Machine:setCrashedAnimation() self:setAnimation(self.object_type.crashed_animation) end --! Calculates the number of times the machine can be used before crashing (unless repaired first) --!return (int) remaining uses count function Machine:getRemainingUses() return self.strength - self.times_used end --! Returns true if a machine is smoking/needs repair --!return (bool) function Machine:isBreaking() local threshold = self:getRemainingUses() return threshold < 4 end function Machine:isMachine() return true end --! Return Tile position for smoke animation --!return (map, int, int) local function getSmokeTile(self) local map, _, _ = self.th:getTile() local x, y = self.tile_x, self.tile_y local smoke_position = self.object_type.orientations[self.direction].smoke_position if smoke_position then x = x + smoke_position[1] y = y + smoke_position[2] end return map, x, y end --! Set whether the smoke animation should be showing local function setSmoke(self, isSmoking) -- If turning smoke on for this machine if isSmoking and self.object_type.smoke_animation then -- If there is no smoke animation for this machine, make one if not self.smokeInfo then self.smokeInfo = TH.animation() -- Note: Set the location of the smoke to that of the machine -- rather than setting the machine to the parent so that the smoke -- doesn't get hidden with the machine during use local map, x, y = getSmokeTile(self) self.smokeInfo:setTile(map, x, y, self:getSmokeDrawingLayer()) -- Always show the first smoke layer self.smokeInfo:setLayer(10, 2) -- tick to animate over all frames self.ticks = true end local mirror = self.direction == "east" and 1 or 0 self.smokeInfo:setAnimation(self.world.anims, self.object_type.smoke_animation, mirror) else -- Otherwise, turning smoke off -- If there is currently a smoke animation, remove it if self.smokeInfo then self.smokeInfo:setTile(nil) end self.smokeInfo = nil end end --! The function is called when an earthquake strike the machine. --! Function defines the machine's reaction to an earthquake. --! During an earthquake, this function is called one or several times. --!param room (object) machine room function Machine:earthquakeImpact(room) self:machineUsed(room, true) end --! Call on machine use. --!param room (object) machine room --!param earthquake_activated (boolean) If true, machine was damaged by an active earthquake --!return (bool) is room exploding after this use function Machine:machineUsed(room, earthquake_activated) earthquake_activated = not not earthquake_activated -- Do nothing if the room has already crashed if room.crashed then return end local cheats = self.hospital.hosp_cheats local is_invulnerable_machines_cheat_active = cheats:isCheatActive("invulnerable_machines") self:incrementUsageCounts(is_invulnerable_machines_cheat_active, earthquake_activated) -- Update dynamic info (machine strength & times used) self:updateDynamicInfo() -- If the cheat is active, the machine should not wear out or explode local must_explode = not is_invulnerable_machines_cheat_active and self:calculateIsMachineMustExplode(room) if must_explode then -- Room failed to be saved, it must be explode self:explodeMachine(room) return true else self:callHandymanForRepairIfNecessary(room) -- Update whether smoke gets displayed for this machine (and if so, how much) self:updateSmokeDisplay(room) end end --! Call after use of the machine. function Machine:incrementUsageCounts(total_usage_only, is_earthquake) if not is_earthquake then self.total_usage = self.total_usage + 1 end if not total_usage_only then self.times_used = self.times_used + 1 end end --! Call on machine use. --!param room (object) machine room function Machine:callHandymanForRepairIfNecessary(room) local repair_task_index = self.hospital:getIndexOfTask(self.tile_x, self.tile_y, "repairing") local repair_task_does_not_exist = repair_task_index == -1 local remaining_use_count = self:getRemainingUses() if remaining_use_count < 4 then -- If the job of repairing the machine isn't queued, queue it now (higher priority) if repair_task_does_not_exist then local call = self.world.dispatcher:callForRepair(self, true, false) self.hospital:addHandymanTask(self, "repairing", 2, self.tile_x, self.tile_y, call) self.hospital:announceRepair(room) else -- Otherwise the task is already queued. -- Increase the priority to above that of machines with at least 4 uses left -- Upgrades task from low (1) priority to high (2) priority if self.hospital:getHandymanTaskPriority(repair_task_index, "repairing") == 1 then self.hospital:modifyHandymanTaskPriority(repair_task_index, 2, "repairing") self.hospital:announceRepair(room) end end elseif remaining_use_count < 6 and repair_task_does_not_exist then -- Else if (low priority) repair is needed, make sure there is a handyman task for it. local call = self.world.dispatcher:callForRepair(self) self.hospital:addHandymanTask(self, "repairing", 1, self.tile_x, self.tile_y, call) end end --! Call on machine use. Handles crashing the machine function Machine:calculateIsMachineMustExplode(room) -- Find a queued task for a handyman coming to repair this machine local remaining_use_count = self:getRemainingUses() local max_extinguishers_effective_count = 4 local num_extinguishers = 0 local explosion_chance local must_explode = false if remaining_use_count < 1 then -- If a fire extinguisher in the room, room has chance not to explode -- Calculate the number of extinguishers in the room. for object, _ in pairs(room.objects) do if object.object_type.id == "extinguisher" then num_extinguishers = num_extinguishers + 1 end if num_extinguishers == max_extinguishers_effective_count then break end end if num_extinguishers == 0 or remaining_use_count < -3 then -- If not enough extinguishers in the room or machine is used 5 times over its strength, always explode. must_explode = true else -- Explosion chance increases 20% with every use over strength, and reduced by 5% for every additional extinguisher (up to 3 extra) in the room bar the first one explosion_chance = (2 / self.strength) + (remaining_use_count * -0.2) - (num_extinguishers * 0.05) + 0.05 explosion_chance = math.min(0.95, math.max(0.05, explosion_chance)) must_explode = math.random() < explosion_chance end end return must_explode end --! Call on machine explode. Handles machine and room exploding --!param room (object) machine room function Machine:explodeMachine(room) -- Clean up any task of handyman coming to repair the machine self:removeHandymanRepairTask() -- Blow up the room room:crashRoom() self:setCrashedAnimation() -- No special cursor required when hovering over the crashed room self.hover_cursor = nil -- Clear dynamic info (tracks machine usage which is no longer required) self:clearDynamicInfo() -- Prevent the machine from smoking, it's now just a pile of rubble setSmoke(self, false) -- If we have the window for this machine open, close it local window = self.world.ui:getWindow(UIMachine) if window and window.machine == self then window:close() end -- Clear gear icon self:removeRepairingStatus() end --! Calculates whether smoke gets displayed for this machine (and if so, how much) --!param room (object) machine room function Machine:updateSmokeDisplay(room) -- Do nothing if the room has already crashed if room.crashed then return end -- How many uses this machine has left until it explodes local threshold = self:getRemainingUses() -- Machines needing urgent repair show smoke if threshold < 4 then -- Display smoke, up to three animations per machine -- i.e. < 4 one plume, < 3 two plumes or < 2 three plumes of smoke setSmoke(self, true) -- turn on additional layers of the animation for extra smoke plumes, depending on how damaged the machine is if threshold < 3 then self.smokeInfo:setLayer(11, 2) end if threshold < 2 then self.smokeInfo:setLayer(12, 2) end end end --! Call on machine place. --!param room (object) machine room function Machine:placed(room) -- Machines may have smoke, recalculate it to ensure the animation is in the correct state. self:updateSmokeDisplay(room) end function Machine:getRepairTile() local x = self.tile_x + self.handyman_position[1] local y = self.tile_y + self.handyman_position[2] return x, y end function Machine:createHandymanActions(handyman) local ux, uy = self:getRepairTile() local this_room = self:getRoom() local handyman_room = handyman:getRoom() assert(this_room, "machine should always in a room") self.repairing = handyman local --[[persistable:handyman_repair_after_use]] function repair_after_use() handyman:setCallCompleted() handyman:setDynamicInfoText("") self:machineRepaired(self:getRoom()) end local walk_action = WalkAction(ux, uy):setIsEntering(this_room and true or false) local repair_action = UseObjectAction(self):setProlongedUsage(false) :setAfterUse(repair_after_use) repair_action.min_length = 20 -- Minimum number of frames needed for the action. if handyman_room and handyman_room ~= this_room then handyman:setNextAction(handyman_room:createLeaveAction()) handyman:queueAction(walk_action) else handyman:setNextAction(walk_action) end local meander_loop_callback = --[[persistable:handyman_meander_repair_loop_callback]] function() -- Wait until the machine is not in use and not about to be used local patient = self:getRoom():getPatient() if not self.user and (not patient or patient:isLeaving()) then -- The machine is ready to be repaired. -- The following statement will finish the meander action in the handyman's -- action queue. handyman:finishAction() end -- Otherwise do nothing and let the meandering continue. end -- Before the actual repair action, insert a meander action to wait for the machine -- to become free for use. handyman:queueAction(MeanderAction():setLoopCallback(meander_loop_callback)) -- The last one is another walk action to the repair tile. If the handyman goes directly -- to repair it will simply complete in an instant. handyman:queueAction(walk_action) handyman:queueAction(repair_action) CallsDispatcher.queueCallCheckpointAction(handyman) handyman:queueAction(AnswerCallAction()) handyman:setDynamicInfoText(_S.dynamic_info.staff.actions.going_to_repair :format(self.object_type.name)) end --! Replace this machine (make it pretend it's brand new) --!param cost (int) Cost to replace the machine function Machine:replaceMachine(cost) -- Pay for the new machine self.hospital:spendMoney(cost, _S.transactions.machine_replacement) -- Reset usage stats self.total_usage = 0 self.times_used = 0 -- Update strength to match the current level of research for it self.strength = self.hospital.research.research_progress[self.object_type].start_strength -- Remove any queued repair jobs self:removeHandymanRepairTask() -- Clear gear icon self:removeRepairingStatus() -- Clear smoke setSmoke(self, false) end --! Call on machine repaired. --!param room (object) machine room --!param strength_reducible (bool) machine room function Machine:machineRepaired(room, strength_reducible) strength_reducible = strength_reducible or true if strength_reducible then self:reduceStrengthOnRepair() end room:unlockRoomOnRepair() self:removeRepairingStatus() setSmoke(self, false) self:removeHandymanRepairTask() self.times_used = 0 end --! Call on machine repaired. Removes repair task for that machine. function Machine:removeHandymanRepairTask() -- Remove any queued repair jobs local repair_task_index = self.hospital:getIndexOfTask(self.tile_x, self.tile_y, "repairing") local repair_task_exist = repair_task_index ~= -1 if repair_task_exist then self.hospital:removeHandymanTask(repair_task_index, "repairing") end end --! Calculates if machine strength should be reduced as a result of repair function Machine:reduceStrengthOnRepair() local minimum_possible_strength = 2 if self.strength <= minimum_possible_strength then return end local current_strength = self.strength local used_out_rate = self.times_used / current_strength -- calculate chance of strength reducing local should_reduce_strength = math.random() < used_out_rate if should_reduce_strength then self.strength = current_strength - 1 end end --! Set the room's repair status manually. Lock room and show gear icon. function Machine:setRepairingStatus() local room = self:getRoom() local anim = {icon = 4564} -- The only icon for machinery room.manual_repair = true -- put gear icon above machine self:setMoodInfo(anim) -- make gear icon animate self.ticks = true room:lockRoomOnRepair() end --! Remove the room's repair status. Unlock room and remove gear icon. function Machine:removeRepairingStatus() local room = self:getRoom() room.manual_repair = false self:setMoodInfo(nil) room:unlockRoomOnRepair() self.repairing = nil self.ticks = self.object_type.ticks self.world.dispatcher:dropFromQueue(self) if not room.crashed then self:updateDynamicInfo() self:getRoom():tryAdvanceQueue() end end function Machine.slaveMixinClass(class_method_table) local slave_to_master, master_to_slave = Object.slaveMixinClass(class_method_table) master_to_slave("finalize") master_to_slave("setCrashedAnimation") slave_to_master("createRepairAction") slave_to_master("getRepairTile") return slave_to_master, master_to_slave end -- Currently used to make the hover cursor of the machine be special -- only if the room is active at the moment (e.g. not being edited) --!param room (object) machine room function Machine:finalize(room) if room.is_active then self.hover_cursor = TheApp.gfx:loadMainCursor("repair") self:updateDynamicInfo() else self:clearDynamicInfo() self.hover_cursor = nil end end function Machine:updateDynamicInfo() if self.strength then local show_machine_max_available_strength_value = self.world.ui.app.config.new_machine_extra_info if show_machine_max_available_strength_value then local hosp = self.world:getLocalPlayerHospital() self:setDynamicInfo("text", { self.object_type.name, _S.dynamic_info.object.strength_extra_info:format(self.strength, hosp.research.research_progress[self.object_type].start_strength), _S.dynamic_info.object.times_used:format(self.times_used), }) else self:setDynamicInfo("text", { self.object_type.name, _S.dynamic_info.object.strength:format(self.strength), _S.dynamic_info.object.times_used:format(self.times_used), }) end end end function Machine:onClick(ui, button) local room = self:getRoom() if button == "left" and room.is_active then -- If the room is crashed is_active is false. ui:addWindow(UIMachine(ui, self, room)) else Object.onClick(self, ui, button) end end function Machine:onDestroy() local room = self:getRoom() if room then room:unlockRoomOnRepair() end self:removeHandymanRepairTask() -- Stop this machine from smoking setSmoke(self, false) Object.onDestroy(self) end function Machine:afterLoad(old, new) if old < 15 then if self.object_type.id == "cardio" then -- Fix THOB value being wrong self.world.map.th:setCellFlags(self.tile_x, self.tile_y, { thob = self.object_type.thob }) end end if old < 54 then local room = self:getRoom() if room.crashed then self:removeHandymanRepairTask() end end self:updateDynamicInfo() return Object.afterLoad(self, old, new) end function Machine:tick() -- Tick any smoke animation if self.smokeInfo then self.smokeInfo:tick() end return Object.tick(self) end --[[ Gets the state of a machine ! In addition to the object implementation this includes total_usage !return (table) state ]] function Machine:getState() local state = Object.getState(self) state.total_usage = self.total_usage state.strength = self.strength return state end --[[ Sets the state of a machine ! Adds total_usage !param state (table) table holding the state !return (void) ]] function Machine:setState(state) Object.setState(self, state) if state then self.total_usage = state.total_usage self.strength = state.strength end end --[[ Sets the handyman use position of a machine ! Calculate handyman use position based on object orientation ! or the normal use position if one not available !param direction (string) orientation of object !return (void) ]] function Machine:setHandymanRepairPosition(direction) local orientation = self.object_type.orientations[direction] local handyman_position = orientation.handyman_position if handyman_position then -- If there are many possible handyman tiles, choose one that is accessible from the use_position. if type(handyman_position[1]) == "table" then for _, position in ipairs(handyman_position) do local hx, hy = self.tile_x + position[1], self.tile_y + position[2] local ux, uy = self.tile_x + orientation.use_position[1], self.tile_y + orientation.use_position[2] if self.world.pathfinder:findDistance(hx, hy, ux, uy) then -- Also make sure the tile is not in another room or in the corridor. local room = self.world:getRoom(hx, hy) if room and room == self:getRoom() then self.handyman_position = {position[1], position[2]} break end end end else self.handyman_position = {handyman_position[1], handyman_position[2]} end else self.handyman_position = {orientation.use_position[1], orientation.use_position[2]} end end --! Access the dedicated DrawingLayer for the smoke animation attached to this machine function Machine:getSmokeDrawingLayer() return DrawingLayers.MachineSmoke end -- Dummy callbacks for savegame compatibility local callbackNewRoom = --[[persistable:machine_build_callback]] function() end local repair_loop_callback = --[[persistable:handyman_repair_loop_callback]] function() end CorsixTH-0.70.0/CorsixTH/Lua/entities/object.lua000066400000000000000000001076201522247547500213450ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") --! An `Entity` which occupies at least a single map tile and does not move. class "Object" (Entity) ---@type Object local Object = _G["Object"] local orient_mirror = { north = "west", west = "north", east = "south", south = "east", } function Object:Object(hospital, object_type, x, y, direction, etc) assert(class.is(hospital, Hospital), "First argument is not a Hospital instance.") local th = TH.animation() self:Entity(th) if etc == "map object" then if direction % 2 == 0 then direction = "north" else direction = "west" end end self.ticks = object_type.ticks self.object_type = object_type self.hospital = hospital self.world = hospital.world self.user = false self.times_used = 0 self:updateDynamicInfo() self:initOrientation(direction) self:setTile(x, y) end --! Initializes the footprint, finds out what to draw and checks for -- split animations. --!param direction The orientation in which the object is facing. function Object:initOrientation(direction) self.direction = direction local object_type = self.object_type -- Decide the animation and the draw flags for it. local flags = 0 local anim = object_type.idle_animations[direction] if not anim then anim = object_type.idle_animations[orient_mirror[direction]] flags = DrawFlags.FlipHorizontal end local footprint = object_type.orientations footprint = footprint and footprint[direction] if footprint and footprint.early_list then flags = flags + DrawFlags.EarlyList end local rap = footprint and footprint.render_attach_position if rap and rap[1] and type(rap[1]) == "table" then self.split_anims = {self.th} self.split_anim_positions = rap self.th:setCrop(rap[1].column) for i = 2, #rap do local point = rap[i] local th = TH.animation() th:setCrop(point.column) th:setHitTestResult(self) th:setPosition(Map:WorldToScreen(1-point[1], 1-point[2])) self.split_anims[i] = th end else -- Make sure these variables aren't left behind. The object -- might just have been moved and rotated. self.split_anims = nil self.split_anim_positions = nil end if footprint and footprint.animation_offset then self:setPosition(unpack(footprint.animation_offset)) end footprint = footprint and footprint.footprint if footprint then self.footprint = footprint else self.footprint = nil end self:setAnimation(anim, flags) end --! Add methods to a class for creating and controlling a slave object function Object.slaveMixinClass(class_method_table) local name = class.name(class_method_table) local super = class.superclass(class_method_table) local super_constructor = super[class.name(super)] -- Constructor class_method_table[name] = function(self, hospital, object_type, x, y, direction, ...) super_constructor(self, hospital, object_type, x, y, direction, ...) if object_type.slave_id then local orientation = object_type.orientations orientation = orientation and orientation[direction] if orientation.slave_position then x = x + orientation.slave_position[1] y = y + orientation.slave_position[2] end self.slave = hospital.world:newObject(object_type.slave_id, x, y, direction, ...) self.slave.master = self end end -- Slave -> Master redirects local function slave_to_master(method) local super_method = super[method] class_method_table[method] = function(self, ...) local master = self.master if master then return master[method](master, ...) else return super_method(self, ...) end end end slave_to_master("onClick") slave_to_master("updateDynamicInfo") slave_to_master("getDynamicInfo") -- Master -> Slave notifications local function master_to_slave(method) local super_method = super[method] class_method_table[method] = function(self, ...) local slave = self.slave if slave then slave[method](slave, ...) end return super_method(self, ...) end end master_to_slave("initOrientation") class_method_table.onDestroy = function(self, ...) local slave = self.slave if slave then self.world:destroyEntity(slave) end return super.onDestroy(self, ...) end class_method_table.setTile = function(self, x, y) if self.slave then local dx, dy = 0, 0 local orientation = self.object_type.orientations orientation = orientation and orientation[self.direction] if orientation.slave_position then dx = orientation.slave_position[1] dy = orientation.slave_position[2] end if x then self.slave:setTile(x + dx, y + dy) else self.slave:setTile(x, y) end end return super.setTile(self, x, y) end return slave_to_master, master_to_slave end function Object:tick() if self.split_anims then if self.num_animation_ticks then for i = 2, #self.split_anims do local th = self.split_anims[i] for _ = 1, self.num_animation_ticks do th:tick() end end else for i = 2, #self.split_anims do self.split_anims[i]:tick() end end end return Entity.tick(self) end function Object:setPosition(x, y) if self.split_anims then -- The given position is for the primary tile, so position non-primary -- animations relative to the primary one. local bx, by = unpack(self.split_anim_positions[1]) for i, th in ipairs(self.split_anims) do local point = self.split_anim_positions[i] local dx, dy = Map:WorldToScreen(1-point[1]+bx, 1-point[2]+by) th:setPosition(x + dx, y + dy) end else self.th:setPosition(x, y) end return self end function Object:setAnimation(animation, flags) if self.split_anims then flags = (flags or 0) + DrawFlags.Crop if self.permanent_flags then flags = flags + self.permanent_flags end if animation ~= self.animation_idx or flags ~= self.animation_flags then self.animation_idx = animation self.animation_flags = flags local anims = self.world.anims for _, th in ipairs(self.split_anims) do th:setAnimation(anims, animation, flags) end end return self else return Entity.setAnimation(self, animation, flags) end end --! Get the primary tile which the object is attached to for rendering --[[! For objects which attach to a single tile for rendering, this method will return the X and Y Lua world coordinates of that tile. For objects which split their rendering over multiple tiles, one of them is arbitrarily designated as the primary tile, and its coordinates are returned. ]] function Object:getRenderAttachTile() local x, y = self.tile_x, self.tile_y local offset = self.object_type.orientations if x and offset then offset = offset[self.direction].render_attach_position if self.split_anims then offset = offset[1] end x = x + offset[1] y = y + offset[2] end return x, y end --! Call on object used. After object used increment use values accordingly. function Object:incrementUsedCount() self.times_used = self.times_used + 1 end --! Updates the object's dynamic info function Object:updateDynamicInfo() local object = self.object_type if object.dynamic_info then self:setDynamicInfo("text", {object.name, "", _S.dynamic_info.object.times_used:format(self.times_used)}) end end --! This function returns a tiles offset coordinates for --! object use position --! param usage_position_name (string) usage position name --! return (table) table with {x, y, usage_position_name} table function Object:_getUsageTile(usage_position_name) local object_x, object_y = self.tile_x, self.tile_y local orientations = self.object_type.orientations if orientations then local object_layout = orientations[self.direction] return Object:getXYforUsePosition(object_x, object_y, object_layout, usage_position_name) else return nil end end --! This function returns an absolute world coordinates for use position. --! param object_x (integer) world tile x coordinate. --! param object_y (integer) world tile y coordinate. --! param object_layout (table) object orientation description with footprint. --! param usage_position_name (string) usage position name. --! return (array) array with '{x, y, usage_position_name}' tables inside. function Object:getXYforUsePosition(object_x, object_y, object_layout, usage_position_name) local usage_tile_offset = object_layout[usage_position_name] if usage_tile_offset then local first = usage_tile_offset[1] local second = usage_tile_offset[2] if type(first) == "table" then -- for 'handyman_position' in 'cast_remover' case as it store table local result = {} for _, xy in ipairs(usage_tile_offset) do local x = object_x + xy[1] local y = object_y + xy[2] table.insert(result, {x, y, usage_position_name}) end return result else -- for other regular cases local x = object_x + first local y = object_y + second return {{x, y, usage_position_name}} end else return nil end end --! This function returns an array with use positions names --! return (array) use positions names function Object:usePositionNames() return { "use_position", "use_position_secondary", "slave_position", "finish_use_position", "finish_use_position_secondary", "handyman_position", } end --! This function returns a table with tiles offset coordinates for --! object use positions --! return (table) use positions offsets function Object:getAllUsageTiles() local result_table = {} local object_use_positions_names = Object:usePositionNames() for key, use_position_name in pairs(object_use_positions_names) do local usage_tile = self:_getUsageTile(use_position_name) result_table = table_merge(result_table, usage_tile) end return result_table end --! This function returns tile offset coordinate for "use_position_secondary" --! return (int, int) x, y tile offset function Object:getSecondaryUsageTile() local secondary_usage_tile = self:_getUsageTile("use_position_secondary") if secondary_usage_tile then local xy = secondary_usage_tile[1] return xy[1], xy[2] else return nil, nil end end -- This function returns a list of all "only_passable" tiles belonging to an object. -- It must be overridden by objects which do not have a footprint, but walkable tiles (e.g. doors of any kind) function Object:getWalkableTiles() local tiles = {} for _, xy in ipairs(self.footprint) do if xy.only_passable then tiles[#tiles + 1] = { self.tile_x + xy[1], self.tile_y + xy[2] } end end return tiles end local opposite_flags = { travelNorth = "travelSouth", travelSouth = "travelNorth", travelEast = "travelWest", travelWest = "travelEast" } --! The function returns the direction opposite to the one passed as a parameter. --! For North, it returns South, and so on. --! param passable_flag (string) 'passable_flag' that we want to invert. --! return (string) inverted 'passable_flag'. function Object.getComplementaryPassableFlag(passable_flag) return opposite_flags[passable_flag] end function Object.directionParameters() return { north = { x = 0, y = -1, buildable_flag = "buildableNorth", passable_flag = "travelNorth", needed_side = "need_north_side"}, east = { x = 1, y = 0, buildable_flag = "buildableEast", passable_flag = "travelEast", needed_side = "need_east_side"}, south = { x = 0, y = 1, buildable_flag = "buildableSouth", passable_flag = "travelSouth", needed_side = "need_south_side"}, west = { x = -1, y = 0, buildable_flag = "buildableWest", passable_flag = "travelWest", needed_side = "need_west_side"} } end function Object:setTile(x, y) -- Are there any tiles previously occupied by this object? if self.tile_x ~= nil then -- Deoccupy object tiles self:deoccupyTilesByObjectFootprintAt(x, y) end local entity_map = self.world.entity_map -- Remove the reference to the object at it's previous coordinates if entity_map then entity_map:removeEntity(self.tile_x,self.tile_y, self) end -- Update the objects coordinates self.tile_x = x self.tile_y = y -- Update the entity map for the new position if entity_map then entity_map:addEntity(x,y,self) end if x then -- Occupy tiles by the object self:occupyTilesByObjectFootprintAt(x, y) if self.split_anims then -- Draw corresponding object animations local map = self.world.map.th local pos = self.split_anim_positions for i = 2, #self.split_anims do self.split_anims[i]:setTile(map, x + pos[i][1], y + pos[i][2], self:getDrawingLayer()) end end else self.th:setTile(nil) if self.split_anims then -- Clear corresponding object animations for i = 2, #self.split_anims do self.split_anims[i]:setTile(nil) end end end self.world:clearCaches() return self end local function coordinatesAreInFootprint(object_footprint, xpos, ypos) for _, xy in ipairs(object_footprint) do if xy[1] == xpos and xy[2] == ypos then return true end end return false end local function setPassableFlags(map, passable_flag, xpos, ypos, next_x, next_y, value) local flags1 = {} flags1[passable_flag] = value map.th:setCellFlags(xpos, ypos, flags1) local flags2 = {} flags2[Object.getComplementaryPassableFlag(passable_flag)] = value map.th:setCellFlags(next_x, next_y, flags2) end --! Set cell flags on the tiles that fall under this object's footprint as occupied. --! param x (integer) target tile x coordinate. --! param y (integer) target tile y coordinate. function Object:occupyTilesByObjectFootprintAt(x, y) local direction_parameters = Object.directionParameters() local direction = self.direction -- 50 is a trash bin thob if self.object_type.thob == 50 and direction == "east" then direction = "west" end local ra_x, ra_y = self:getRenderAttachTile() self.th:setTile(self.world.map.th, ra_x, ra_y, self:getDrawingLayer()) self.world:addObjectToTile(self, x, y) if self.footprint then local map = self.world.map.th local optional_found = false local room = self.world:getRoom(x, y) local roomId = room and room.id local next_tile_x, next_tile_y = x,y local passable_flag for _, xy in ipairs(self.footprint) do local change_flags = true local flags_to_set = {} local lx = x + xy[1] local ly = y + xy[2] local flags if xy.optional then if optional_found then -- An optional tile has been accepted, we don't need anymore such tiles. change_flags = false else flags = map:getCellFlags(lx, ly) local is_object_allowed = true if roomId and flags.roomId ~= roomId then is_object_allowed = false elseif xy.only_passable and not self.world.pathfinder:isReachableFromHospital(lx, ly) then is_object_allowed = false end if is_object_allowed then change_flags = true optional_found = true else change_flags = false end end end flags = map:getCellFlags(lx, ly) if xy.only_side then local par = direction_parameters[direction] flags_to_set[par["buildable_flag"]] = false passable_flag, next_tile_x, next_tile_y = par["passable_flag"], x + par["x"], y + par["y"] else for _, value in pairs(direction_parameters) do if coordinatesAreInFootprint(self.footprint, xy[1] + value["x"], xy[2] + value["y"]) or xy.complete_cell or xy[value["needed_side"]] then if map:getCellFlags(x, y, flags)[value["buildable_flag"]] == 0 then change_flags = false end flags_to_set[value["buildable_flag"]] = false end end end if change_flags then if not xy.only_side then map:setCellFlags(lx, ly, { buildable = false, passable = not not xy.only_passable, }) end if not isTableEmpty(flags_to_set) then map:setCellFlags(lx, ly, flags_to_set) end if xy.only_side then if map:getCellFlags(lx, ly)[passable_flag] == true then self.set_passable_flags = true setPassableFlags(self.world.map, passable_flag, lx, ly, next_tile_x, next_tile_y, false) end end end end end end --! Set cell flags on the tiles that fall under this object's footprint as unoccupied. --! param x (integer) target tile x coordinate. --! param y (integer) target tile y coordinate. function Object:deoccupyTilesByObjectFootprintAt(x, y) local direction_parameters = Object.directionParameters() local direction = self.direction -- 50 is a trash bin thob if self.object_type.thob == 50 and direction == "east" then direction = "west" end self.world:removeObjectFromTile(self, self.tile_x, self.tile_y) if self.footprint then local map = self.world.map.th for _, xy in ipairs(self.footprint) do local xpos, ypos = self.tile_x + xy[1], self.tile_y + xy[2] if xy.only_side then if self.set_passable_flags then self.set_passable_flags = nil local par = direction_parameters[direction] local passableFlag, next_tile_x, next_tile_y = par.passable_flag, xpos + par.x, ypos + par.y setPassableFlags(self.world.map, passableFlag, xpos, ypos, next_tile_x, next_tile_y, true) end local flags_to_set= {} flags_to_set[direction_parameters[direction].buildable_flag] = true map:setCellFlags(xpos, ypos, flags_to_set) else local flags_to_set = {} for _, value in pairs(direction_parameters) do if coordinatesAreInFootprint(self.footprint, xy[1] + value.x, xy[2] + value.y) or xy.complete_cell or xy[value.needed_side] then flags_to_set[value.buildable_flag] = true end end if not isTableEmpty(flags_to_set) then map:setCellFlags(xpos, ypos, flags_to_set) end if not map:getCellFlags(xpos, ypos).passable then map:setCellFlags(xpos, ypos, { buildable = true, passable = true, }) else -- passable tiles can "belong" to multiple objects, so we have to check that if not self.world:isTilePartOfNearbyObject(xpos, ypos, 10) then -- assumption: no object defines a passable tile further than 10 tiles away from its origin map:setCellFlags(xpos, ypos, { buildable = true, }) end end end end end end --! Set object invisible state. --! param invisible (bool) 'true' to make the object invisible, -- 'false' to make the object visible. function Object:setInvisible(invisible) if self.split_anims then for _, th_anim in ipairs(self.split_anims) do if invisible then th_anim:makeInvisible() else th_anim:makeVisible() end end else if invisible then self.th:makeInvisible() else self.th:makeVisible() end end end -- Sets the user of this object to the given user. Note that if multiple_users_allowed -- is set to true for this object "user" will always be the last added user to this object. -- Please do not modify object.user directly. --!param user The user that is about to use this object. function Object:setUser(user) assert(user, "setUser: Expected a user, got nil") -- It makes no sense to add a nil value self.user = user if self.object_type.multiple_users_allowed then if not self.user_list then self.user_list = {} end table.insert(self.user_list, user) end self.th:makeInvisible() self:removeReservedUser(user) end -- Removes a user from the set of users if multiple_users_allowed is set to true for this -- object. Otherwise it sets "user" to nil. Please don't directly change the variable "user". function Object:removeUser(user) if self.object_type.multiple_users_allowed then if not user or not self.user_list then -- No user specified, empty the list; or the list didn't exist self.user_list = {} end local found = false for i, users in ipairs(self.user_list) do if users == user then table.remove(self.user_list, i) found = true break end end if not found then self.world:gameLog("Warning: Could not find a humanoid to remove from the user list") end if #self.user_list == 0 then -- No users left, make the object visible again. self.user = nil self.th:makeVisible() end else self.user = nil self.th:makeVisible() end end -- Adds a reserved user for this object. If multiple_users_allowed is set there can be -- many users reserving the object. reserved_for will then be the user who most recently -- reserved this object. function Object:addReservedUser(user) assert(user, "Expected a user, got nil") -- It makes no sense to add a nil value if self.object_type.multiple_users_allowed then if not self.reserved_for_list then self.reserved_for_list = {} end table.insert(self.reserved_for_list, user) else assert(not self.reserved_for or user ~= self.reserved_for, "Object already reserved for another user") end self.reserved_for = user end -- If multiple_users_allowed is true: Removes the user specified from this object's list of reserved users. -- If the argument is nil it is assumed that the list should be emptied. -- Note that if there are many humanoids reserving this object reserved_for might still be set after a -- call to this function. -- Otherwise: sets reserved_for to nil. function Object:removeReservedUser(user) if self.object_type.multiple_users_allowed then -- No user specified, delete the whole list; or no list found, make it. if not user or not self.reserved_for_list then self.reserved_for_list = {} end local found = false for i, users in ipairs(self.reserved_for_list) do if users == user then table.remove(self.reserved_for_list, i) found = true break end end if not found then self.world:gameLog("Warning: Could not find a humanoid to remove from the reserved user list") end if #self.reserved_for_list == 0 then -- No users left, set reserved_for to nil. self.reserved_for = nil end else self.reserved_for = nil end end -- Checks whether the object is reserved for the specified user. -- If the argument is nil a check for any reserved user is done. function Object:isReservedFor(user) if not user then if self.reserved_for_list then return #self.reserved_for_list > 0 else return not not self.reserved_for end end if self.reserved_for == user then -- "Normal" use return true end if self.object_type.multiple_users_allowed then if not self.reserved_for_list then self.reserved_for_list = {} end for _, users in ipairs(self.reserved_for_list) do if users == user then return true end end end return false end --! This function is for overriding it in the inheriting Machine class. function Object:isMachine() return false end --[[ Called when the object is clicked !param ui (UI) The active ui. !param button (string) Which button was clicked. !param data (table) If some data should be retained after moving an object it is in this table. ]] function Object:onClick(ui, button, data) local window = ui:getWindow(UIEditRoom) -- Flag 'in_pickup_mode' can be used if for example some things -- should only happen as long as the object is not picked up. if button == "right" or (button == "left" and window and window.in_pickup_mode) then local room = self:getRoom() window = window and window.visible and window if (not room and window) then return end if (not room and not self.object_type.corridor_object) then -- Trying to pickup an object in corridor not intended for pickup (sliding doors of the hospital). return end if (room and not (window and window.room == room) and not self.object_type.corridor_object) then -- Trying to pickup an object key to a room (sofa, machine), but not the room we're editing. return end local fullscreen = ui:getWindow(UIFullscreen) if fullscreen then fullscreen:close() end if self.object_type.class == "Plant" or self.object_type.class == "Machine" then -- remove the task associated with this object local taskType = "watering" if self.object_type.class == "Machine" then taskType = "repairing" end local task_index = self.hospital:getIndexOfTask(self.tile_x, self.tile_y, taskType) local task_exist = task_index ~= -1 if task_exist then self.hospital:removeHandymanTask(task_index, taskType) end end local room_editing_mode = window ~= nil local initial_orientation = self.direction local object_list = {{object = self.object_type, qty = 1, existing_object = self}} self.picked_up = true if not room_editing_mode then self:onPickUp() self:setInvisible(true) window = UIPlaceObjects(ui, object_list, false) -- don't pay for ui:addWindow(window) else -- NB: the object has to be destroyed before updating/creating the window, -- or the blueprint will be wrong self.world:destroyEntity(self) window:stopPickupItems() window:addObjects(object_list, false) -- don't pay for window:selectObjectType(self.object_type) window:checkEnableConfirm() -- since we removed an object from the room, the requirements may not be met anymore end -- blueprint orientation should be as orientation was on object pickup window:setOrientation(initial_orientation) self.orientation_before = initial_orientation ui:playSound("pickup.wav") end end function Object:eraseObject() self.world.map.th:eraseObjectTypes(self.tile_x, self.tile_y) end function Object:resetAnimation() self.world.map.th:setCellFlags(self.tile_x, self.tile_y, {thob = self.object_type.thob}) local ra_x, ra_y = self:getRenderAttachTile() self.th:setTile(self.world.map.th, ra_x, ra_y, self:getDrawingLayer()) end function Object:onDestroy() -- Remove from room local room = self:getRoom() if room then room.objects[self] = nil end self:resetUsageAndReservaton() Entity.onDestroy(self) self:rebuildPassableCellFlags() end function Object:rebuildPassableCellFlags() -- Issue 1105 - rebuild wall travel and pathfinding on side object removal if self.object_type.class == "SideObject" then self.world.map.th:updatePathfinding() self.world:resetSideObjects() end end function Object:onPickUp() self:resetUsageAndReservaton() Entity.onPickUp(self) end function Object:resetUsageAndReservaton() self:cancelUsage() self:denyReservation() end function Object:cancelUsage() if self.user_list then for _, user in ipairs(self.user_list) do user:handleRemovedObject(self) end self.user_list = {} elseif self.user then self.user:handleRemovedObject(self) end self.user = nil end function Object:denyReservation() if self.reserved_for_list then for _, reserver in ipairs(self.reserved_for_list) do reserver:handleRemovedObject(self) end self.reserved_for_list = {} elseif self.reserved_for then self.reserved_for:handleRemovedObject(self) end self.reserved_for = nil end function Object:afterLoad(old, new) if old < 52 then self.hospital = self.world:getLocalPlayerHospital() end if old < 57 then if self.footprint and self.direction then local object_type = self.object_type local footprint = object_type.orientations footprint = footprint and footprint[self.direction] if footprint and footprint.animation_offset then self:setPosition(unpack(footprint.animation_offset)) end footprint = footprint and footprint.footprint self.footprint = footprint if object_type.class == "SideObject" then local flags = {buildable = true} self.world.map.th:setCellFlags(self.tile_x, self.tile_y, flags) end self:setTile(self.tile_x, self.tile_y) end end if old < 173 then -- Fix bug with couch not being fully passable if self.object_type.id == "couch" then self:initOrientation(self.direction) self:setTile(self.tile_x, self.tile_y) end end self:updateDynamicInfo() return Entity.afterLoad(self, old, new) end local all_pathfind_dirs = {[0] = true, [1] = true, [2] = true, [3] = true} function Object.processTypeDefinition(object_type) if object_type.id == "extinguisher" or object_type.id == "radiator" or object_type.id == "plant" or object_type.id == "reception_desk" or object_type.id == "bench" then object_type.count_category = object_type.id elseif object_type.id ~= "bin" and not object_type.corridor_object and not object_type.id:find("door") then object_type.count_category = "general" end if object_type.orientations then for _, details in pairs(object_type.orientations) do -- Set default values if not details.animation_offset then details.animation_offset = {0, 0} end if not details.render_attach_position then details.render_attach_position = {0, 0} end -- Set the usage position if details.use_position == "passable" then -- "passable" => the *first* passable tile in the footprint list for _, point in pairs(details.footprint) do if point.only_passable then details.use_position = {point[1], point[2]} break end end elseif not details.use_position then details.use_position = {0, 0} end -- Set handyman repair tile if object_type.default_strength and not details.handyman_position then details.handyman_position = details.use_position end -- Find the nearest solid tile in the footprint to the usage position local use_position = details.use_position local solid_near_use_position local solid_near_use_position_d = 10000 for _, point in pairs(details.footprint) do repeat if point.only_passable then break -- continue end local d = (point[1] - use_position[1])^2 + (point[2] - use_position[2])^2 if d >= solid_near_use_position_d then break -- continue end solid_near_use_position = point solid_near_use_position_d = d until true end if solid_near_use_position_d ~= 1 then details.pathfind_allowed_dirs = all_pathfind_dirs else if use_position[1] < solid_near_use_position[1] then details.pathfind_allowed_dirs = {[1] = true} elseif use_position[1] > solid_near_use_position[1] then details.pathfind_allowed_dirs = {[3] = true} elseif use_position[2] < solid_near_use_position[2] then details.pathfind_allowed_dirs = {[2] = true} else details.pathfind_allowed_dirs = {[0] = true} end end -- Adjust the footprint to make this tile the origin local solid_points = {} if solid_near_use_position then local x, y = unpack(solid_near_use_position) for _, point in pairs(details.footprint) do point[1] = point[1] - x point[2] = point[2] - y if not point.only_passable then solid_points[point[1] * 100 + point[2]] = point end end for _, key in ipairs({"use_position_secondary", "finish_use_position", "finish_use_position_secondary", "smoke_position"}) do if details[key] then details[key][1] = details[key][1] - x details[key][2] = details[key][2] - y end end use_position[1] = use_position[1] - x use_position[2] = use_position[2] - y if details.slave_position then details.slave_position[1] = details.slave_position[1] - x details.slave_position[2] = details.slave_position[2] - y end local rx, ry = unpack(details.render_attach_position) if type(rx) == "table" then rx, ry = unpack(details.render_attach_position[1]) for _, point in ipairs(details.render_attach_position) do point.column = point[1] - point[2] point[1] = point[1] - x point[2] = point[2] - y end else details.render_attach_position[1] = rx - x details.render_attach_position[2] = ry - y end x, y = Map:WorldToScreen(rx + 1, ry + 1) details.animation_offset[1] = details.animation_offset[1] - x details.animation_offset[2] = details.animation_offset[2] - y end -- Find the region around the solid part of the footprint local adjacent_set = {} local adjacent_list = {} details.adjacent_to_solid_footprint = adjacent_list for _, point in pairs(solid_points) do for _, delta in ipairs({{-1, 0}, {0, -1}, {0, 1}, {1, 0}}) do local x = point[1] + delta[1] local y = point[2] + delta[2] local k2 = x * 100 + y if not solid_points[k2] and not adjacent_set[k2] then adjacent_set[k2] = {x, y} adjacent_list[#adjacent_list + 1] = adjacent_set[k2] end end end end end end --[[ Gets the state of an object ! The state can be later used to set the state of this object. This is useful when we would destroy and create a new object that should represent the same object. !return (table) state ]] function Object:getState() return {times_used = self.times_used} end --[[ Sets the state of an object ! This is a complement to a pair function. IT will use the generated state table to update it's state. !param state (table) table holding the state !return (void) ]] function Object:setState(state) if state then self.times_used = state.times_used end end --! An object that lives on the edge of a tile. class "SideObject" (Object) ---@type SideObject local SideObject = _G["SideObject"] function SideObject:SideObject(...) self:Object(...) end function SideObject:getDrawingLayer() if self.direction == "north" then return DrawingLayers.NorthSideObject elseif self.direction == "west" then return DrawingLayers.WestSideObject else if self.direction == "east" then -- 50 is a trash bin thob if self.object_type.thob == 50 then --[[ The bin has orientations north and east but they are displayed in the north and west part of the tile respectively. This could lead to a graphical glitch where a side object in the west part of the tile is displayed over a doctor in the middle of the tile. ]] return DrawingLayers.WestSideObject else return DrawingLayers.EastSideObject end else --south return DrawingLayers.SouthSideObject end end end CorsixTH-0.70.0/CorsixTH/Lua/entity.lua000066400000000000000000000313571522247547500175720ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Abstraction for visible gameplay things which sit somewhere on the map. class "Entity" ---@type Entity local Entity = _G["Entity"] local TH = require("TH") function Entity:Entity(animation) -- World of the entity, set by World:newEntity() self.world = nil -- Index of the marker to use for displaying moods of the entity, -- set by World:newEntity() self.mood_marker = nil self.th = animation self.layers = {} animation:setHitTestResult(self) self.ticks = true self.playing_sounds_in_random_sequence = false self.waiting_for_sound_effects_to_be_turned_on = false self.random_sound_sequence_parameters = nil self.dynamic_info = nil end --[[ This plays a sound "at" the entity, meaning the sound will not be played if the entity is off-screen, and the volume will be quieter the further the entity is from the center of the screen. If this is not what you want then use UI:playSound instead. !param name (string, integer) The filename or ordinal of the sound to play. !param played_callback (function) a optional parameter. !param played_callback_delay (integer) a optional milliseconds parameter. --]] function Entity:playSound(name, played_callback, played_callback_delay) if TheApp.config.play_sounds then TheApp.audio:playSound(name, self, false, played_callback, played_callback_delay) end end function Entity:setWaitingForSoundEffectsToBeTurnedOn() self.waiting_for_sound_effects_to_be_turned_on = true end --[[ Plays a sequence of related sounds at an entity while entity.playing_sounds_in_random_sequence = true. The silences between these sounds can either have randomly generated lengths between the min and max length parameters or they can all be a specified length by providing min and max tables with one value for the desired pause duration. !param name_pattern (String) example: LAVA00*.WAV !param min_silence_lengths (table) the desired minimum silences length for the different tick rates, [3] = Normal !param max_silence_lengths (table) the desired maximum silences length for the different tick rates, [3] = Normal !param num_silences (integer) how many different silence lengths should be used, this can be a nil parameter. -]] function Entity:playEntitySounds(name_pattern, min_silence_lengths, max_silence_lengths, num_silences) self.playing_sounds_in_random_sequence = true self.random_sound_sequence_parameters = {} self.random_sound_sequence_parameters["namePattern"] = name_pattern self.random_sound_sequence_parameters["minSilence"] = min_silence_lengths self.random_sound_sequence_parameters["maxSilence"] = max_silence_lengths self.random_sound_sequence_parameters["numSilences"] = num_silences TheApp.audio:playEntitySounds(name_pattern, self, min_silence_lengths, max_silence_lengths, num_silences) end --[[ Set which animation is used to give the entity a visual appearance. ! Until an entity is given an animation, it is invisible to the player. Note that some "animations" consist of a single frame, and hence the term animation is used both to mean things which are animated and things which are static. !param animation (integer) The ordinal into the main animation set !param flags (integer) A combination of zero or more drawing flags to control the use of alternative palettes, transparency, and other similar settings. See `THDF_` values in `th_gfx.h` for the possible bit values. ]] function Entity:setAnimation(animation, flags) flags = flags or 0 if self.permanent_flags then flags = flags + self.permanent_flags end if animation ~= self.animation_idx or flags ~= self.animation_flags then self.animation_idx = animation self.animation_flags = flags self.th:setAnimation(self.world.anims, animation, flags) end return self end --[[ Set the map tile which the entity is on. !param x (integer) The 1-based X coordinate of the tile. !param y (integer) The 1-based Y coordinate of the tile. ]] function Entity:setTile(x, y) if self.user_of then print("Warning: Entity tile changed while marked as using an object") end local entity_map = self.world.entity_map -- Remove the reference to the entity at it's previous coordinates if entity_map then entity_map:removeEntity(self.tile_x,self.tile_y, self) end self.tile_x = x self.tile_y = y -- NB: map can be nil, in which case th:setTile expects all nil arguments self.th:setTile(x and self.world.map.th, x, y, self:getDrawingLayer()) if self.mood_info then self.mood_info:setParent(self.th, self.mood_marker or 1) end -- Update the entity map for the new position if entity_map then entity_map:addEntity(x,y,self) end return self end function Entity:getRoom() if self.tile_x and self.tile_y then return self.world:getRoom(self.tile_x, self.tile_y) else return nil end end --[[ Set the pixel position of the entity within the current tile. !param x (integer) The 0-based X pixel offset from the default position. !param y (integer) The 0-based Y pixel offset from the default position. ]] function Entity:setPosition(x, y) self.th:setPosition(x, y) return self end --[[ Set the rate at which the entity pixel position changes !param x (integer) The X component of the speed in pixels per tick. !param y (integer) The Y component of the speed in pixels per tick. ]] function Entity:setSpeed(x, y) self.th:setSpeed(x, y) return self end --[[ Combined form of `setTile`, `setPosition`, and `setSpeed` !param tx (integer) The 1-based X coordinate of the tile. !param ty (integer) The 1-based Y coordinate of the tile. !param px (integer) The 0-based X pixel offset from the default position. !param py (integer) The 0-based Y pixel offset from the default position. !param sx (integer) The X component of the speed in pixels per tick. !param sy (integer) The Y component of the speed in pixels per tick. ]] function Entity:setTilePositionSpeed(tx, ty, px, py, sx, sy) self:setTile(tx, ty) self:setPosition(px or 0, py or 0) self:setSpeed(sx or 0, sy or 0) return self end -- Inner tick function that will skip every other tick when -- slow_animation is set. function Entity:_tick() if self.slow_animation then if not self.skip_next_tick then self.th:tick() end self.skip_next_tick = not self.skip_next_tick else self.th:tick() end end -- Function which is called once every tick, where a tick is the smallest unit -- of time in the game engine. Typically used to advance animations and similar -- recurring or long-duration tasks. function Entity:tick() if self.num_animation_ticks then for _ = 1, self.num_animation_ticks do self:_tick() end if self.num_animation_ticks == 1 then self.num_animation_ticks = nil end else self:_tick() end -- Tick any mood animation if self.mood_info then self.mood_info:tick() end local timer = self.timer_time if timer then timer = timer - 1 if timer == 0 then self.timer_time = nil local timer_function = self.timer_function self.timer_function = nil timer_function(self) else self.timer_time = timer end end end --[[ Set which parts of the animation to be displayed. ! Each animation is made up of 13 layers, and generally has several different options for each layer. In the animation viewer tool, multiple options can be toggled on for each layer, however here only one option may be selected per layer. !param layer (integer) The layer to set (1 through 13). !param id (integer) The option to display for the given layer. ]] function Entity:setLayer(layer, id) self.th:setLayer(layer, id) self.layers[layer] = id return self end --[[ Register a function (related to the entity) to be called at a later time. ! Each `Entity` can have a single timer associated with it, and due to this limit of one, it is almost always the case that the currently active humanoid action is the only thing which calls `setTimer`. If self.slow_animation is set then all timers will be doubled as animation length will be doubled. !param tick_count (integer) If 0, then `f` will be called during the entity's next `tick`. If 1, then `f` will be called one tick after that, and so on. !param f (function) Function which takes a single argument (the entity). ]] function Entity:setTimer(tick_count, f) self.timer_time = tick_count self.timer_function = f if self.slow_animation and tick_count then self.skip_next_tick = true self.timer_time = tick_count * 2 end end -- Used to set a mood icon over the entity. function Entity:setMoodInfo(new_mood) if new_mood then if not self.mood_info then self.mood_info = TH.animation() self.mood_info:setPosition(-1, -96) self.mood_info:setParent(self.th, self.mood_marker or 1) end self.mood_info:setAnimation(self.world.anims, new_mood.icon) else if self.mood_info then self.mood_info:setTile(nil) end self.mood_info = false end end -- Function which is called when the entity is to be permanently removed from -- the world. function Entity:onDestroy() -- Clear any mood self:setMoodInfo() self:setTile(nil) self:onPickUp() if self.waiting_for_sound_effects_to_be_turned_on then TheApp.audio:entityNoLongerWaitingForSoundsToBeTurnedOn(self) end end -- Function which is called when entity is picked up function Entity:onPickUp() self.world.dispatcher:dropFromQueue(self) end -- Function which is called at the end of each ingame day. Should be used to -- implement behaviours which happen regularly, but not as frequently as to -- need them in `tick`. function Entity:tickDay() end --! Notify the entity of a new object. --!param id Name of the new object. -- TODO Currently only used for benches placed nearby. -- TODO Maybe also pass the object tile coordinates? function Entity:notifyNewObject(id) end --! Notify the entity that a new room was built. --!param room (Room) The new room. function Entity:notifyNewRoom(room) end function Entity:setMood(mood_name, activate) end -- Returns a table of hover info about an object. function Entity:getDynamicInfo() return self.dynamic_info end -- Sets a piece of Dynamic_info. -- type could be 'text', 'progress' or 'dividers' function Entity:setDynamicInfo(type, value) if not self.dynamic_info then self.dynamic_info = { text = nil, progress = nil, dividers = nil, } end self.dynamic_info[type] = value end -- Completely clears the dynamic info. function Entity:clearDynamicInfo() self.dynamic_info = nil end --! Stub to be extended in subclasses, if needed. function Entity:afterLoad(old, new) end function Entity:playAfterLoadSound() if self.random_sound_sequence_parameters then self.playing_sounds_in_random_sequence = true self:playEntitySounds(self.random_sound_sequence_parameters["namePattern"], self.random_sound_sequence_parameters["minSilence"], self.random_sound_sequence_parameters["maxSilence"], self.random_sound_sequence_parameters["numSilences"]) end end --! Stub to be extended in subclasses, if needed. function Entity:eraseObject() -- Give entity the chance to clear itself from the map before resetAnimation gets called. end function Entity:resetAnimation() local x, y = self.tile_x, self.tile_y self.th:setTile(x and self.world.map.th, x, y, self:getDrawingLayer()) end --[[ Returns the drawing layer for this particular entity. Should be overridden in derived classes. The drawing layer specifies the order in which object are drawn in a tile (the object with the smallest layer is drawn first). Litter should have layer 0, side objects to the north layer 1, side objects to the west layer 2, normal objects should have layers between 3 and 7, east side object should have layer 8 and south side objects layer 9. ]] function Entity:getDrawingLayer() return DrawingLayers.Entity end CorsixTH-0.70.0/CorsixTH/Lua/entity_map.lua000066400000000000000000000214101522247547500204140ustar00rootroot00000000000000--[[ Copyright (c) 2013 William "sadger" Gatens Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "EntityMap" ---@type EntityMap local EntityMap = _G["EntityMap"] --[[ An entity map is a structure is a 2 dimensional structure created from a game map, it has the same dimensions as the game map which intitalises it. The purpose of the map is store the location of entities in the map in real-time. Each cell given by an (x, y) coordinate is a table {humanoids ={}, objects = {}} where the tables of humanoids/objects may be empty or contain the entity/entities that currently exist in that tile.]] function EntityMap:EntityMap(map) self.width, self.height = map.th:size() self.entity_map = {} for x = 1, self.width do self.entity_map[x] = {} for y = 1, self.height do self.entity_map[x][y] = {humanoids = {}, objects = {}} end end end local function add_entity_to_table(entity, entity_table) entity_table[#entity_table+1] = entity end --[[Adds an entity to the entity map in a specified location @param x (integer) the x coordinate of the entity @param y (integer) the y coordinate of the entity @param entity (Entity) the entity to be added to the map in the (x, y) position]] function EntityMap:addEntity(x, y, entity) -- Distinguish between entity types and add them -- to the respective tables if x and y and entity then if class.is(entity, Humanoid) then add_entity_to_table(entity, self:getHumanoidsAtCoordinate(x, y)) elseif class.is(entity, Object) then add_entity_to_table(entity, self:getObjectsAtCoordinate(x, y)) end end end -- Iterates through a table and removes the given entity local function remove_entity_from_table(entity, entity_table) local index = -1 for i, h in ipairs(entity_table) do if h == entity then -- If we have found it no need to keep looking index = i break end end -- We haven't found it so we have incorrectly tried to remove it assert(index ~= -1, "Tried to remove entity from entity_map - entity not found") table.remove(entity_table, index) end --[[Removes an entity from the entity map given specified location Assumes the entity already has been added in the (x, y) position or will cause the assertion that the entity is contained in the map to fail. @param x (integer) the x coordinate of the entity @param y (integer) the y coordinate of the entity @param entity (Entity) the entity to be removed from the map in the (x, y) position ]] function EntityMap:removeEntity(x, y, entity) -- Distinguish between entity types to find table to remove from -- then remove the entity from that table if x and y and entity then if class.is(entity, Humanoid) then remove_entity_from_table(entity, self:getHumanoidsAtCoordinate(x, y)) elseif class.is(entity, Object) then remove_entity_from_table(entity, self:getObjectsAtCoordinate(x, y)) end end end --[[Returns a map of all entities (objects and humanoids) at a specified coordinate @param x (integer) the x coordinate to retrieve entities from @param y (integer) the y coordinate to retrieve entities from @return entity_map (table) containing the entities at the (x, y) coordinate ]] function EntityMap:getEntitiesAtCoordinate(x, y) --Add all the humanoids local entity_table = {} for _, obj in ipairs(self:getHumanoidsAtCoordinate(x, y)) do table.insert(entity_table, obj) end --Add all the objects for _, obj in ipairs(self:getObjectsAtCoordinate(x, y)) do table.insert(entity_table, obj) end return entity_table end --[[Returns a table of all humanoids at a specified coordinate ! Please note that when a humanoid moves, they will only be attached to one tile at the moment. When moving from tile to tile, they will only attach to the next tile after they has fully completed the animation for moving to the that next tile. Therefore, at the last frame of the transition animation from tile to tile, they will still attached to the previous one tile, on which they is no longer visually located. @param x (integer) the x coordinate to retrieve entities from @param y (integer) the y coordinate to retrieve entities from @return (table) containing the humanoids at the (x, y) coordinate ]] function EntityMap:getHumanoidsAtCoordinate(x, y) assert(x >= 1 and y >= 1 and x <= self.width and y <= self.height, "Coordinate requested is out of the entity map bounds") return self.entity_map[x][y]["humanoids"] end --[[Returns a table of all objects at a specified coordinate @param x (integer) the x coordinate to retrieve entities from @param y (integer) the y coordinate to retrieve entities from @return (table) containing the objects at the (x, y) coordinate ]] function EntityMap:getObjectsAtCoordinate(x, y) assert(x >= 1 and y >= 1 and x <= self.width and y <= self.height, "Coordinate requested is out of the entity map bounds") return self.entity_map[x][y]["objects"] end --[[ Returns a map of coordinates {{x1, y1}, ... {xn, yn}} directly adjacent to a given (x, y) coordinate - no diagonals @param x (integer) the x coordinate to obtain adjacent tiles from @param y (integer) the y coordinate to obtain adjacent tiles from @return (table) containing coordinates {x=integer, y=integer} ]] function EntityMap:getAdjacentSquares(x, y) local adjacent_squares = {} if x and y then if x ~= 1 then adjacent_squares[#adjacent_squares+1] = {x = x - 1, y = y} end if x ~= self.width then adjacent_squares[#adjacent_squares+1] = {x = x + 1, y = y} end if y ~= 1 then adjacent_squares[#adjacent_squares+1] = {x = x, y = y - 1} end if y ~= self.height then adjacent_squares[#adjacent_squares+1] = {x = x, y = y + 1} end end return adjacent_squares end --[[ Returns all humanoids in the squares directly adjacent to the given (x, y) coordinate - diagonals are not considered @param x (integer) the x coordinate to obtain adjacent patients from @param y (integer) the y coordinate to obtain adjacent patients from ]] function EntityMap:getHumanoidsInSquareAndInAdjacentSquares(x, y) local adjacent_patients = {} local tiles = table_merge({{x = x , y = y}}, self:getAdjacentSquares(x, y)) for _, coord in ipairs(tiles) do for _, humanoid in ipairs(self:getHumanoidsAtCoordinate(coord.x, coord.y)) do adjacent_patients[#adjacent_patients + 1] = humanoid end end return adjacent_patients end --[[ Returns all the entities which are patients in the squares directly adjacent to the given (x, y) coordinate - diagonals are not considered @param x (integer) the x coordinate to obtain adjacent patients from @param y (integer) the y coordinate to obtain adjacent patients from ]] function EntityMap:getPatientsInAdjacentSquares(x, y) local adjacent_patients = {} for _, coord in ipairs(self:getAdjacentSquares(x, y)) do for _, humanoid in ipairs(self:getHumanoidsAtCoordinate(coord.x, coord.y)) do if class.is(humanoid, Patient) then adjacent_patients[#adjacent_patients + 1] = humanoid end end end return adjacent_patients end --[[ Returns a map of coordinates {{x1, y1}, ... {xn, yn}} of the adjacent tiles (no diagonals) which do not contain any humanoids or objects does NOT determine if the tile is reachable from (x, y) may even be in a different room @param x (integer) the x coordinate to obtain free tiles from @param y (integer) the y coordinate to obtain free tiles from ]] function EntityMap:getAdjacentFreeTiles(x, y) local adjacent_free_tiles = {} for _, coord in ipairs(self:getAdjacentSquares(x, y)) do local x_coord = coord['x'] local y_coord = coord['y'] -- If no object or humanoid occupies the tile_coordinate, it is a free tile. if #self:getHumanoidsAtCoordinate(x_coord, y_coord) == 0 and #self:getObjectsAtCoordinate(x_coord, y_coord) == 0 then adjacent_free_tiles[#adjacent_free_tiles+1] = coord end end return adjacent_free_tiles end CorsixTH-0.70.0/CorsixTH/Lua/epidemic.lua000066400000000000000000000721441522247547500200340ustar00rootroot00000000000000--[[ Copyright (c) 2013 William "sadger" Gatens Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") local AnnouncementPriority = _G["AnnouncementPriority"] class "Epidemic" ---@type Epidemic local Epidemic = _G["Epidemic"] --[[Manages the epidemics that occur in hospitals. Generally, any epidemic logic that happens outside this class will call functions contained here.]] function Epidemic:Epidemic(hospital, contagious_patient) self.hospital = hospital self.world = self.hospital.world -- Epidemic participants self.infected_patients = {} -- The contagious disease the epidemic is based around self.disease = contagious_patient.disease -- Can the epidemic be revealed to the player self.ready_to_reveal = false -- Is the epidemic revealed to the player? self.revealed = false -- Various values for the different outcomes - used when result fax is sent self.declare_fine = 0 self.reputation_hit = 0 self.coverup_fine = 0 self.compensation = 0 -- Is the epidemic bad enough to deserve the whole hospital to be evacuated self.will_be_evacuated = false -- Fax sent when the result of the cover up is revealed to the player self.cover_up_result_fax = {} -- Set if the user choses the cover up option instead of declaring self.coverup_selected = false --Cover up timer and amount of intervals the timer has self.timer = nil self.countdown_intervals = 0 -- Vaccination mode is activated when the icon on the timer -- is clicked - used to determine what the cursor should look like self.vaccination_mode_active = false -- For Cheat - Show the contagious icon even before the epidemic is revealed? self.cheat_always_show_mood = false -- Number of times an infected patients has successfully infected another self.total_infections = 0 -- Number of times any infected patient has tried to infected another - successful or not self.attempted_infections = 0 local level_config = self.world.map.level_config -- How often is the epidemic disease passed on? Represents a percentage -- spread_factor% of the time a disease is passed on to a suitable target self.spread_factor = level_config.gbv.ContagiousSpreadFactor or 25 -- How many people still infected and not cure causes the player to take a reputation hit as well as a fine -- has no effect if more than evacuation_minimum - hospital is evacuated anyway self.reputation_loss_minimum = level_config.gbv.EpidemicRepLossMinimum or 5 -- How many people need to still be infected and not cure to cause the -- inspector to evacuate the hospital self.evacuation_minimum = level_config.gbv.EpidemicEvacMinimum or 10 -- The health inspector who reveals the result of the epidemic self.inspector = nil self:addContagiousPatient(contagious_patient) -- Mark all the patients currently in the hospital as passed reception - for compatibility self:markPatientsAsPassedReception() end --[[ The epidemic tick - currently the same rate as the hospital's tick but not necessary dependent on it - could potentially be reduced for performance.]] function Epidemic:tick() self:infectOtherPatients() self:checkIfReadyToReveal() self:showAppropriateAdviceMessages() self:tryAnnounceInspector() self:markedPatientsCallForVaccination() self:checkInfectedLeftHospital() self:checkNoInfectedPatients() self:checkPatientsForRemoval() end --[[ Adds a new patient to the epidemic who is actively contagious: infected but not vaccinated or cured]] function Epidemic:addContagiousPatient(patient) patient.infected = true patient:updateDynamicInfo() self.infected_patients[#self.infected_patients + 1] = patient if self.coverup_selected or self.cheat_always_show_mood then patient:setInfectedStatus() end end --[[ Goes through all infected patients checking if there are any other patients in adjacent squares that can be infected, and if so infects them turning them into an infected patient too. ]] function Epidemic:infectOtherPatients() --[[ Can an infected patient infect another patient - taking into account spread factor as defined in the configuration. Patients must be both in the corridors or in the same room - don't infect through walls. @param infector (Patient) already infected patient who want to infect @param victim (Patient) target to possibly infect @return true if patient can infect other, false otherwise (boolean) ]] local function canInfectOther(infector, victim) -- Check is patient-Infector is not infectious. if infector.cured or infector.vaccinated then return false end -- Don't allow infection outside the hospital grounds -- Also check both patients to prevent infecting through outer walls local ppx, ppy = infector.tile_x, infector.tile_y if ppx and ppy and not self.hospital:isInHospital(ppx, ppy) then return false end local opx, opy = victim.tile_x, victim.tile_y if opx and opy and not self.hospital:isInHospital(opx, opy) then return false end -- 'victim' is already infected or is going home. if victim.infected or victim.cured or victim.vaccinated then return false end -- Don't infect victim if it is already under another attempt to be infected if victim.under_infection_attempt then return false end -- Don't infect emergencies. if victim.is_emergency then return false end -- If the victim patient has a different disease OR the victim patient's -- disease cannot be changed. if infector.disease ~= victim.disease and (not victim.disease.contagious or victim.diagnosed) then return false end -- Only infect if both are in the same room. return infector:getRoom() == victim:getRoom() end local function infect_other(infector, victim) if infector.disease ~= victim.disease then victim:changeDisease(infector.disease) end self:addContagiousPatient(victim) self.total_infections = self.total_infections + 1 end -- Scale the chance of spreading the disease infecting spread_factor% -- of patients results in too large an epidemic typically so infect -- spread_factor/spread_scale_factor patients. -- This scale factor is purely for balance purposes, the larger the -- value the less spreading the epidemics will be, all relative to spread_factor. -- Must be > 0. local spread_scale_factor = 200 -- Go through all infected patients making the check if they can infect -- and making any patient they can infect contagious too. local entity_map = self.world.entity_map if entity_map then for _, infector in ipairs(self.infected_patients) do local adjacent_patients = entity_map:getPatientsInAdjacentSquares(infector.tile_x, infector.tile_y) for _, potential_victim in ipairs(adjacent_patients) do if canInfectOther(infector, potential_victim) then potential_victim.under_infection_attempt = true self.attempted_infections = self.attempted_infections + 1 if (self.total_infections / self.attempted_infections) < (self.spread_factor / spread_scale_factor) then infect_other(infector, potential_victim) end end end end end end --[[ The epidemic is ready to be revealed to the player if any infected patient is fully diagnosed. N.B. because multiple epidemics are queued to become the "active" one, being ready to reveal does NOT guarantee an epidemic WILL be revealed to the player and may even terminate before they are even aware it existed. ]] function Epidemic:checkIfReadyToReveal() if self.ready_to_reveal then return end for _, infected_patient in ipairs(self.infected_patients) do if infected_patient.diagnosed then self.ready_to_reveal = true break end end end --[[ Show the player the have an epidemic - send a fax This happens when the epidemic is chosen to the be the "active" epidemic out of all the queued ones.]] function Epidemic:revealEpidemic() assert(self.ready_to_reveal) self.revealed = true self:sendInitialFax() self:announceStartOfEpidemic() end --[[ Plays the announcement for the start of the epidemic ]] function Epidemic:announceStartOfEpidemic() local announcements = {"EPID001.wav", "EPID002.wav", "EPID003.wav", "EPID004.wav"} if self.hospital:isPlayerHospital() then self.world.ui:playAnnouncement(announcements[math.random(1, #announcements)], AnnouncementPriority.Critical) end end --[[ Plays the announcement for the end of the epidemic ]] function Epidemic:announceEndOfEpidemic() local announcements = {"EPID005.wav", "EPID006.wav", "EPID007.wav", "EPID008.wav"} if self.hospital:isPlayerHospital() then self.world.ui:playAnnouncement(announcements[math.random(1, #announcements)], AnnouncementPriority.Critical) end end --[[ Check for conditions that one of the infected and not cured patient leaved the hospital. This discover epidemic to public instantly. So cover up must end earlier than the length of the timer.]] function Epidemic:checkInfectedLeftHospital() if not self:_isCoverUpActive() then return end -- Check whether a patient has left. for _, infected_patient in ipairs(self.infected_patients) do local px, py = infected_patient.tile_x, infected_patient.tile_y -- If leaving and no longer in the hospital. if (infected_patient.going_home or infected_patient.going_to_die) and not infected_patient.cured and px and py and not self.hospital:isInHospital(px,py) then -- Patient escaped from the hospital, discovery is inevitable. self:finishCoverUp() return end end end --[[ Check for conditions that no any uncured infected patients left in hospital. If so then cover up must end earlier than the length of the timer.]] function Epidemic:checkNoInfectedPatients() if not self:_isCoverUpActive() then return end if self:countInfectedPatients() == 0 then self:finishCoverUp() end end --[[Remove any patients which were already on their way out or died before the epidemic was started to be fair on the players so they don't instantly fail. Additionally if any patients die during an epidemic we also remove them, otherwise a player may never win the epidemic in such a case.]] function Epidemic:checkPatientsForRemoval() for i = #self.infected_patients, 1, -1 do local infected_patient = self.infected_patients[i] if (not self.coverup_selected and (infected_patient.going_home or infected_patient.going_to_die)) or infected_patient.dead or infected_patient.tile_x == nil then table.remove(self.infected_patients,i) end end end --[[ Toggle the vaccination mode changes how the cursor interacts with the hospital. Toggled by pressing the button on the watch (@see UIWatch:UIWatch) ]] function Epidemic:toggleVaccinationMode() self.vaccination_mode_active = not self.vaccination_mode_active self:_updateVaccinationCursor() end --[[ Turn off vaccination cursor mode ]] function Epidemic:turnOffVaccinationMode() self.vaccination_mode_active = false self:_updateVaccinationCursor() end --[[ Update how the cursor interacts with the hospital. ]] function Epidemic:_updateVaccinationCursor() local cursor = self.vaccination_mode_active and "epidemic_hover" or "default" self.world.ui:setCursor(self.world.ui.app.gfx:loadMainCursor(cursor)) end --[[ Show a patient is able to be vaccinated, this is shown to the player by changing the icon, once a player has been marked for vaccination they may possibly become a vaccination candidate. Marking is done by clicking the player and can only happen during a cover up. ]] function Epidemic:markForVaccination(patient) if patient.infected and not patient.vaccinated and not patient.marked_for_vaccination then patient:setToReadyForVaccinationStatus() patient.hospital:playSound("vaccin.wav") end end --[[ Counts the number of patients that have been infected that are still -- infected -- @return infected_count (Integer) the number of patients still infected.]] function Epidemic:countInfectedPatients() local infected_count = 0 for _, patient in pairs(self.infected_patients) do if patient.infected and not patient.cured then infected_count = infected_count + 1 end end return infected_count end --[[ Sends the initial fax to the player when the epidemic is revealed.]] function Epidemic:sendInitialFax() local num_infected = self:countInfectedPatients() --Save it in a global variable so we can apply the fine in the declare function self.declare_fine = self:calculateInfectedFine(num_infected) local message = { {text = _S.fax.epidemic.disease_name:format(self.disease.name)}, {text = _S.fax.epidemic.declare_explanation_fine:format(self.declare_fine)}, {text = _S.fax.epidemic.cover_up_explanation_1}, {text = _S.fax.epidemic.cover_up_explanation_2}, choices = { {text = _S.fax.epidemic.choices.declare, choice = "declare_epidemic"}, {text = _S.fax.epidemic.choices.cover_up, choice = "cover_up_epidemic"}, }, } self.world.ui.bottom_panel:queueMessage("epidemy", message, self, 24*20,2) end --[[ Calculate the fine for having a given number of infected patients --Used to determine the initial declaration fine as the cover up fine. --@param infected_count (Integer) number of patients still infected --@return fine (Integer) the fine amount ]] function Epidemic:calculateInfectedFine(infected_count) local level_config = self.world.map.level_config local fine_per_infected = level_config.gbv.EpidemicFine or 2000 return math.max(2000, infected_count * fine_per_infected) end --[[ Gets the amount of reputation to add/remove from the player based on a given fine. Reputation gain/loss isn't specified in the configs so we use a percentage of the fine as a base value with extra being gained/lost for specific circumstances. @param fine_amount (Integer) amount the player will be fined @return reputation hit (Integer) reputation to be deducted relative to fine]] local function getBaseReputationFromFine(fine_amount) return math.round(fine_amount / 100) end --[[ When the player chooses to declare the epidemic instead of trying to cover up it from the initial faxes - ends the epidemic immediately after applying fine.]] function Epidemic:resolveDeclaration() self:clearAllInfectedPatients() --No fax for declaration just apply fines and rep hit self.hospital:spendMoney(self.declare_fine, _S.transactions.epidemy_fine) local reputation_hit = getBaseReputationFromFine(self.declare_fine) self.hospital.reputation = self.hospital.reputation - reputation_hit self.hospital.epidemic = nil end --[[ Remove all infected patients by vaccinating from the hospital and clear any epidemic-specific icons from their heads.]] function Epidemic:clearAllInfectedPatients() for _, infected_patient in ipairs(self.infected_patients) do -- Remove any vaccination calls still open infected_patient:removeVaccinationCandidateStatus() self.world.dispatcher:dropFromQueue(infected_patient) infected_patient.vaccinated = true infected_patient:removeAnyEpidemicStatus() end end --[[ When the player chooses to begin the cover up over declaring from the initial fax (@see sendInitialFax) ]] function Epidemic:startCoverUp() self.timer = UIWatch(self.world.ui, "epidemic") self.countdown_intervals = self.timer.open_timer self.world.ui:addWindow(self.timer) -- last chance clean up as entities might have ticked and changed state self:checkPatientsForRemoval() self.coverup_selected = true --Set the mood icon for all infected patients for _, infected_patient in ipairs(self.infected_patients) do infected_patient:updateDynamicInfo() infected_patient:setInfectedStatus() end end --[[ Ends the cover up epidemic stage ]] function Epidemic:finishCoverUp() if not self.inspector then self:spawnInspector() end self.timer:close() -- Turn vaccination mode off if enabled self:turnOffVaccinationMode() end --[[ Inspector had arrived at reception desk. Check if any infected still in hospital and determine final verdict.]] function Epidemic:handleInspectorArrival() local still_infected = self:countInfectedPatients() self:determineFaxAndFines(still_infected) self:clearAllInfectedPatients() self:applyOutcome() end --[[ Epidemic timer time is up ]] function Epidemic:coverUpTimeIsUp() self:finishCoverUp() end --[[ Calculates the contents of the fax and the appropriate fines based on the result of a cover up, results are stored globally to the class to be applied later. @param still_infected (Integer) the number of patients still infected]] function Epidemic:determineFaxAndFines(still_infected) -- Losing text local fail_text_1 = _S.fax.epidemic_result.failed.part_1_name:format(self.disease.name) local fail_text_2 = _S.fax.epidemic_result.failed.part_2 local close_option = {text = _S.fax.epidemic_result.close_text, choice = "close"} -- Losing fine (if epidemic is "lost") self.coverup_fine = self:calculateInfectedFine(still_infected) if still_infected == 0 then -- Compensation fine (if epidemic is "won") local level_config = self.world.map.level_config local compensation_low_value = level_config.gbv.EpidemicCompLo or 1000 local compensation_high_value = level_config.gbv.EpidemicCompHi or 5000 self.compensation = math.random(compensation_low_value,compensation_high_value) self.cover_up_result_fax = { {text = _S.fax.epidemic_result.succeeded.part_1_name:format(self.disease.name)}, {text = _S.fax.epidemic_result.succeeded.part_2}, {text = _S.fax.epidemic_result.compensation_amount:format(self.compensation)}, choices = {close_option} } elseif still_infected < self.reputation_loss_minimum and still_infected < self.evacuation_minimum then self.cover_up_result_fax = { {text = fail_text_1}, {text = fail_text_2}, {text = _S.fax.epidemic_result.fine_amount:format(self.coverup_fine)}, choices = {close_option} } elseif still_infected >= self.reputation_loss_minimum and still_infected < self.evacuation_minimum then self.cover_up_result_fax = { {text = fail_text_1}, {text = fail_text_2}, {text = _S.fax.epidemic_result.rep_loss_fine_amount:format(self.coverup_fine)}, choices = {close_option} } else self.will_be_evacuated = true self.cover_up_result_fax = { {text = fail_text_1}, {text = fail_text_2}, {text = _S.fax.epidemic_result.hospital_evacuated}, choices = {close_option} } end end --[[ Apply the compensation or fines where appropriate to the player as determined when the cover up was completed (@see finishCoverUp) ]] function Epidemic:applyOutcome() -- If there is no compensation to apply the epidemic has been failed if self.compensation == 0 then if self.will_be_evacuated then self.reputation_hit = math.round(self.hospital.reputation * (1/3)) self:evacuateHospital() else self.reputation_hit = getBaseReputationFromFine(self.coverup_fine) end -- Apply fine and reputation hit self.hospital:spendMoney(self.coverup_fine,_S.transactions.epidemy_coverup_fine) self.hospital.reputation = self.hospital.reputation - self.reputation_hit else self.hospital:receiveMoney(self.compensation, _S.transactions.compensation) end -- Finally send the fax confirming the outcome self:sendResultFax() --Remove epidemic from hospital so another epidemic may be assigned self.hospital.epidemic = nil end --[[ For compatibility. Mark all the current patients who are in the hospital --but not in the reception queues as being "passed reception" used to decide --who is evacuated @see evacuateHospital. For new patients they are marked --as they leave the reception desks.]] function Epidemic:markPatientsAsPassedReception() local queuing_patients = {} for _, desk in ipairs(self.hospital:getReceptionDesks()) do for _, patient in ipairs(desk.queue) do -- Use patient as map key to speed up lookup queuing_patients[patient] = true end end for _, patient in ipairs(self.hospital.patients) do -- Patient is not queuing for reception local px, py = patient.tile_x, patient.tile_y if px and py and self.hospital:isInHospital(px,py) and queuing_patients[patient] == nil then patient.has_passed_reception = true end end end --[[ Forces evacuation of the hospital - it makes ALL patients leave and storm out. ]] function Epidemic:evacuateHospital() for _, patient in ipairs(self.hospital.patients) do if patient.has_passed_reception and not patient.going_home and not patient.going_to_die then patient:goHome("evacuated") end end end --[[ Send the results of the cover up to the player - will be a success/compensation or fail/fines + reputation hit]] function Epidemic:sendResultFax() self.world.ui.bottom_panel:queueMessage("report", self.cover_up_result_fax, nil, 24*20, 1) self:announceEndOfEpidemic() end --[[ Spawns the inspector who will walk to the reception desk. ]] function Epidemic:spawnInspector() self.world.ui.adviser:say(_A.information.epidemic_health_inspector) local inspector = self.world:newEntity("Inspector", 2, 2) self.inspector = inspector inspector:setType("Inspector") local spawn_point = self.world.spawn_points[math.random(1, #self.world.spawn_points)] inspector:setNextAction(SpawnAction("spawn", spawn_point)) inspector:setHospital(self.hospital) inspector:queueAction(SeekReceptionAction()) end --[[ Private function to check if a inspector already spawned. @return (boolean) true if spawned already, false if not]] function Epidemic:_inspectorSpawned() return self.inspector ~= nil end --[[ Private function to check if a cover up is in progress @return (boolean) true if cover up in progress, false if not]] function Epidemic:_isCoverUpActive() return self.coverup_selected and not self:_inspectorSpawned() end --[[ Is the patient "still" either idle queuing or sitting on a bench Typically this is used to determine if a patient can be vaccinated @param patient (Patient) the patient we wish to determine if they are static.]] local function is_static(patient) local action = patient:getCurrentAction() return action.name == "queue" or action.name == "idle" or action.name == "seek_room" or (action.name == "use_object" and action.object.object_type.id == "bench") end --[[ During a cover up every patient marked for vaccination (clicked) creates a call to be vaccinated by a nurse - patients must also be static (seated or standing queuing) ]] function Epidemic:markedPatientsCallForVaccination() for _, infected_patient in ipairs(self.infected_patients) do if infected_patient.marked_for_vaccination and not infected_patient.reserved_for and is_static(infected_patient) then self.world.dispatcher:callNurseForVaccination(infected_patient) end end end --[[ In response to a vaccination call by the vaccination candidate (@see makeVaccinationCandidateCallForNurse) perform the vaccination actions or deal with call if unable to vaccinate. @param patient (Patient) the patient who make the original call @param nurse (Nurse) the nurse attempting to vaccinate the patient]] function Epidemic:createVaccinationActions(patient,nurse) patient.reserved_for = nurse -- Check square is reachable first local x,y = self:getBestVaccinationTile(nurse,patient) -- If unreachable patient keep the call open for now if not x or not y then nurse:setCallCompleted() patient.reserved_for = nil nurse:setNextAction(MeanderAction()) patient:removeVaccinationCandidateStatus() else -- Give selected patient the cursor with the arrow once they are next -- in line for vaccination i.e. call assigned patient:giveVaccinationCandidateStatus() local level_config = self.world.map.level_config local fee = level_config.gbv.VacCost or 50 nurse:setDynamicInfoText(_S.dynamic_info.staff.actions.vaccine) nurse:setNextAction(WalkAction(x, y):setMustHappen(true):enableWalkingToVaccinate()) nurse:queueAction(VaccinateAction(patient, fee)) end end --[[Find the best tile to stand on to vaccinate a patient @param nurse (Nurse) the nurse performing the vaccination @param patient (Patient) the patient to be vaccinated @return best_x,best_y (Integer,nil) the best tiles to vaccinate from.]] function Epidemic:getBestVaccinationTile(nurse, patient) local px, py = patient.tile_x, patient.tile_y -- If the patient is using a bench the best tile to use is -- directly in front of them local action = patient:getCurrentAction() if action.name == "use_object" then local object_in_use = action.object if object_in_use.object_type.id == "bench" then local direction = object_in_use.direction if direction == "north" then return px, py - 1 elseif direction == "south" then return px, py + 1 elseif direction == "east" then return px + 1, py elseif direction == "west" then return px - 1, py end end end -- General usage tile finder, used in the other cases -- when the patient isn't sitting on a bench -- Location of the nurse local nx, ny = nurse.tile_x, nurse.tile_y local best_x, best_y = nil local shortest_distance = nil local free_tiles = self.world.entity_map:getAdjacentFreeTiles(px, py) for _, coord in ipairs(free_tiles) do local x = coord['x'] local y = coord['y'] local distance = self.world:getPathDistance(nx, ny, x, y) -- If the tile is reachable for the nurse if distance then -- If the tile is closer then it's a better choice if not shortest_distance or distance < shortest_distance then shortest_distance = distance best_x, best_y = x, y end end end return best_x, best_y end --[[When the nurse is interrupted unreserve the patient and unassign the call. @param nurse (Nurse) the nurse whose vaccination actions we are interrupting]] function Epidemic:interruptVaccinationActions(nurse) assert(class.is(nurse, Nurse)) local call = nurse.on_call if call then local patient = call.object if patient and patient.vaccination_candidate and not patient.vaccinated then patient:removeVaccinationCandidateStatus() end call.object.reserved_for = nil call.assigned = nil nurse.on_call = nil end end --[[ Make the advisor show appropriate messages under certain conditions of the epidemic.]] function Epidemic:showAppropriateAdviceMessages() if not self:_isCoverUpActive() then return end if self.countdown_intervals then if not self.has_said_hurry_up and self:countInfectedPatients() > 0 and -- If only 1/4 of the countdown_intervals remaining on the timer self.timer.open_timer == math.floor(self.countdown_intervals * 1 / 4) then self.world.ui.adviser:say(_A.epidemic.hurry_up) self.has_said_hurry_up = true -- Wait until at least 1/4 of the countdown_intervals has expired before giving -- this warning so it doesn't happen straight away elseif self.timer.open_timer <= math.floor(self.countdown_intervals * 3 / 4) and not self.has_said_serious and self:countInfectedPatients() > 10 then self.world.ui.adviser:say(_A.epidemic.serious_warning) self.has_said_serious = true end end end --[[ Are no infected patients, cured or still infected in the hospital? @returns true if so, false otherwise. (boolean) ]] function Epidemic:hasNoInfectedPatients() return #self.infected_patients == 0 end function Epidemic:tryAnnounceInspector() if not self.coverup_selected then return end if not self:_inspectorSpawned() then return end local inspector = self.inspector if not inspector.has_been_announced and self.hospital:isInHospital(inspector.tile_x, inspector.tile_y) then inspector:announce() inspector.has_been_announced = true end end --[[ For Cheat - Cancel the epidemic. ]] function Epidemic:cancelEpidemic() -- Remove init epidemic fax self.world.ui.bottom_panel:deleteMessage(self) -- Turn vaccination mode off if enabled self:turnOffVaccinationMode() -- Remove epidemic timer if self.timer ~= nil then self.timer:close() end -- Send inspector home if spawned if self.inspector ~= nil then self.inspector:goHome() end -- Clear epidemic patients self:clearAllInfectedPatients() self.infected_patients = {} end function Epidemic:afterLoad(old, new) if old < 106 then self.level_config = nil end if old < 212 then self.coverup_selected = self.coverup_in_progress self.coverup_in_progress = nil end end CorsixTH-0.70.0/CorsixTH/Lua/filesystem.lua000066400000000000000000000224041522247547500204330ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local pathsep = package.config:sub(1, 1) local part_pattern = "[^" .. pathsep .. "]+" local ISO_FS = require("TH").iso_fs --! Layer for abstracting away differences in file systems. -- -- In the traditional case, the FileSystem is associated with a path on the -- actual filesystem, from which all other operations are considered relative. -- -- The FileSystem is also able to delegate operations to the ISO_FS library -- in the engine for reading / listing files off an ISO image instead of a -- file system. class "FileSystem" ---@type FileSystem local FileSystem = _G["FileSystem"] function FileSystem:FileSystem() -- A mapping of normalized file names in the current directory to their -- actual path names. self.files = nil -- A mapping of normalized directory names in the current directory to -- an object containing their actual physical path. self.sub_dirs = nil -- The actual filesystem path that is the basis/root of this FileSystem. Not -- used when a provider is specified. self.physical_path = nil -- The ISO_FS provider if we are reading from an ISO instead of a -- filesystem, otherwise nil. self.provider = nil end --! Convert a file name to a canonical, case insensitive format. -- The format is based on the limitations of the ISO filesystem. local function normalise(str) return str:upper():gsub("_", "-") end --! Populate the files and sub_dirs values for the current FileSystem path. function FileSystem:_enumerate() self.sub_dirs = {} self.files = {} for item in lfs.dir(self.physical_path) do local path = self.physical_path .. pathsep .. item if lfs.attributes(path, "mode") == "directory" then self.sub_dirs[normalise(item)] = {physical_path = path} else self.files[normalise(item)] = path end end end --! Test if file name has an .iso or .dmg extension function FileSystem:isIso(name) if name == nil then return false end local ext = name:lower():match("%.(.+)$") return ext == 'iso' or ext == 'iso9660$' or ext == 'dmg' end --! Set the root physical path for this FileSystem. -- If the path is an ISO then set the provider. If the path is a directory -- then set the physical_path and populate the files and sub_dirs. -- --!param physical_path (string) a path on the filesystem to either a directory -- or theme hospital ISO file. function FileSystem:setRoot(physical_path) if self:isIso(physical_path) then self.physical_path = physical_path local provider, status, err = ISO_FS(physical_path, pathsep) self.provider = provider return status, err end if physical_path:sub(-1) == pathsep then -- Trim off the trailing separator (lfs doesn't like querying the mode of a -- directory with a trailing slash on win32) physical_path = physical_path:sub(1, -2) end if lfs.attributes(physical_path, "mode") ~= "directory" then return nil, "Specified path ('" .. physical_path .. "') is not a directory" end self.provider = nil self.physical_path = physical_path self:_enumerate() return true end --! list the files in the given path. -- --!param virtual_path (string) a path relative to the FileSystem root. --!param ... (string) the virtual_path may be split into separate arguments -- for each level in the filesystem. --!return (object) a map of normalized names to actual names of files. function FileSystem:listFiles(virtual_path, ...) if ... then virtual_path = table.concat({virtual_path, ...}, pathsep) end if self.provider then return self.provider:listFiles(virtual_path) elseif not self.sub_dirs then return nil, "Filesystem layer not initialised" end for part in virtual_path:gmatch(part_pattern) do local part_u = normalise(part) if self.sub_dirs[part_u] then self = self.sub_dirs[part_u] if not self.files then FileSystem._enumerate(self) end elseif self.files[part_u] then return nil, ("Attempt to access file '%s' as if it were a directory while trying to enumerate '%s'"):format(part, virtual_path) else return nil, ("Unable to find '%s' while trying to enumerate '%s'"):format(part, virtual_path) end end return self.files end --! Combine the given path segments into a single path string. --!param virtual_path (string) a path relative to the FileSystem root. --!param ... (string) the virtual_path may be split into separate arguments -- for each level in the filesystem. local function getFullPath(virtual_path, ...) if ... then virtual_path = table.concat({virtual_path, ...}, pathsep) end return virtual_path end --! Return the contents of the file at the given path. -- --!param virtual_path (string) a path relative to the FileSystem root. --!param ... (string) the virtual_path may be split into separate arguments -- for each level in the filesystem. function FileSystem:readContents(virtual_path, ...) virtual_path = getFullPath(virtual_path, ...) if self.provider then return self.provider:readContents(virtual_path) end local file, err = self:_getFilePath(virtual_path) if not file then return file, err end local f, e = io.open(file, "rb") if not f then return nil, e end local data = f:read("*a") f:close() return data end --! Determines if the given path points to a real file. -- --!param virtual_path (string) a path relative to the FileSystem root. --!param ... (string) the virtual_path may be split into separate arguments -- for each level in the filesystem. function FileSystem:fileExists(virtual_path, ...) virtual_path = getFullPath(virtual_path, ...) if self.provider then local found, err = self.provider:fileExists(virtual_path) if found then return true else return nil, err end end local s, e = self:_getFilePath(virtual_path) return (not not s), e end --! Get the size of the file at the given path. -- --!param virtual_path (string) a path relative to the FileSystem root. --!param ... (string) the virtual_path may be split into separate arguments -- for each level in the filesystem. --!return (numeric) Number of bytes in the given file. Nil if the file doesn't -- exist. function FileSystem:fileSize(virtual_path, ...) virtual_path = getFullPath(virtual_path, ...) if self.provider then return self.provider:fileSize(virtual_path) end local s, e = self:_getFilePath(virtual_path) if not s then return nil, e end return lfs.attributes(s, "size") end --! Get a URI for the file. -- -- The returned URI formats match those described by . -- --!param virtual_path (string) a path relative to the FileSystem root. --!param ... (string) the virtual_path may be split into separate arguments -- for each level in the filesystem. --!return (string) A uri representing the files location function FileSystem:fileUri(virtual_path, ...) virtual_path = getFullPath(virtual_path, ...) if self.provider then local fileStart, fileEnd = self.provider:fileOffsets(virtual_path) return 'subfile,,start,' .. fileStart .. ',end,' .. fileEnd .. ',,:' .. self.physical_path end return 'file:' .. virtual_path end -- If the file exists and we are not using a provider then return a FileSystem -- rooted in the directory that the directory the file is contained in. -- Otherwise return nil and an error message. function FileSystem:_getFilePath(virtual_path, ...) virtual_path = getFullPath(virtual_path, ...) if self.provider then return nil, "This function is not supported for providers" end if not self.sub_dirs then return nil, "Filesystem layer not initialised" end local is_file = false for part in virtual_path:gmatch(part_pattern) do if is_file then return nil, ("Attempt to access file '%s' as if it were a directory while trying to read '%s'"):format(part, virtual_path) end local part_u = normalise(part) if self.sub_dirs[part_u] then self = self.sub_dirs[part_u] if not self.files then FileSystem._enumerate(self) end elseif self.files[part_u] then self = self.files[part_u] is_file = true else return nil, ("Unable to find '%s' while trying to read '%s'"):format(part, virtual_path) end end if not is_file then return nil, ("Attempt to access directory '%s' as if it were a file"):format(virtual_path) end return self end CorsixTH-0.70.0/CorsixTH/Lua/game_ui.lua000066400000000000000000001422631522247547500176630ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("ui") corsixth.require("announcer") --! Variant of UI for running games class "GameUI" (UI) ---@type GameUI local GameUI = _G["GameUI"] local TH = require("TH") local Announcer = _G["Announcer"] -- The maximum distance to shake the screen from the origin during an -- earthquake with full intensity. local shake_screen_max_movement = 50 --pixels -- 0.002 is about 5 pixels on a 1920 pixel display local multigesture_pinch_sensitivity_factor = 0.002 -- combined with the above, multiplying by 100 means minimum current_momentum.z for any detected pinch -- will result in a call to adjustZoom in the onTick method local multigesture_pinch_amplification_factor = 100 -- Speed of scrolling when using keys. Pixels / tick (18ms) -- This scroll speed is further adjusted by the configured scroll_speed local key_scroll_speed = 10 --! Game UI constructor. --!param app (Application) Application object. --!param local_hospital Hospital to display --!param map_editor (bool) Whether the map is editable. function GameUI:GameUI(app, local_hospital, map_editor) self:UI(app) self.app = app self.hospital = local_hospital self.tutorial = { chapter = 0, phase = 0 } if map_editor then self.map_editor = UIMapEditor(self) self:addWindow(self.map_editor) else self.adviser = UIAdviser(self) self.bottom_panel = UIBottomPanel(self) self.bottom_panel:addWindow(self.adviser) self:addWindow(self.bottom_panel) end -- UI widgets self.menu_bar = UIMenuBar(self, self.map_editor) self:addWindow(self.menu_bar) self.subtitles = Subtitles(self) self:addWindow(self.subtitles) local scr_w = app.config.width local scr_h = app.config.height self.visible_diamond = self:makeVisibleDiamond(scr_w, scr_h) if self.visible_diamond.w <= 0 or self.visible_diamond.h <= 0 then -- For a standard 128x128 map, screen size would have to be in the -- region of 3276x2457 in order to be too large. if not self.map_editor then error("Screen size too large for the map. Adjust your resolution in Settings.") end end self.screen_offset_x, self.screen_offset_y = app.map:WorldToScreen( app.map.th:getCameraTile(local_hospital:getPlayerIndex())) self.zoom_factor = 1 self:scrollMap(-scr_w / 2, 16 - scr_h / 2) self.limit_to_visible_diamond = not self.map_editor self.transparent_walls = false self.do_world_hit_test = true self.momentum = app.config.scrolling_momentum self.current_momentum = {x = 0.0, y = 0.0, z = 0.0} self.multigesturemove = {x = 0.0, y = 0.0} self.recallpositions = {} self.speed_up_key_pressed = false self.last_hovered_entity = nil -- The currently specified intensity value for earthquakes. To abstract -- the effect from the implementation this value is a number between 0 -- and 1. self.shake_screen_intensity = 0 self.announcer = Announcer(app) self.app:setCaptureMouse() end function GameUI:setupGlobalKeyHandlers() UI.setupGlobalKeyHandlers(self) -- Set the scrolling keys. self.scroll_keys = { [tostring(self.app.hotkeys["ingame_scroll_up"])] = {x = 0, y = -key_scroll_speed}, [tostring(self.app.hotkeys["ingame_scroll_down"])] = {x = 0, y = key_scroll_speed}, [tostring(self.app.hotkeys["ingame_scroll_left"])] = {x = -key_scroll_speed, y = 0}, [tostring(self.app.hotkeys["ingame_scroll_right"])] = {x = key_scroll_speed, y = 0}, } -- This is the long version of the shift speed key. -- i.e. if the "ingame_scroll_shift" key is "ctrl", then it will give us -- "left ctrl" and "right ctrl" for reference against the rawchar in -- "onKeyDown()" and "onKeyUp()" self.shift_scroll_key_long = {} self.shift_scroll_speed_pressed = false local temp_table = {} local shift_scroll_key_index = 1 if type(self.app.hotkeys["ingame_scroll_shift"]) == "string" then temp_table = {self.app.hotkeys["ingame_scroll_shift"]} elseif type(self.app.hotkeys["ingame_scroll_shift"]) == "table" then temp_table = shallow_clone(self.app.hotkeys["ingame_scroll_shift"]) end -- Go through the "ingame_scroll_shift" key table and see if it has any modifier names. for _, v in pairs (temp_table) do -- If it does then add long name version of them into the long key table. if v == "ctrl" then self.shift_scroll_key_long[shift_scroll_key_index] = "left ctrl" shift_scroll_key_index = shift_scroll_key_index + 1 self.shift_scroll_key_long[shift_scroll_key_index] = "right ctrl" shift_scroll_key_index = shift_scroll_key_index + 1 elseif v == "alt" then self.shift_scroll_key_long[shift_scroll_key_index] = "left alt" shift_scroll_key_index = shift_scroll_key_index + 1 self.shift_scroll_key_long[shift_scroll_key_index] = "right alt" shift_scroll_key_index = shift_scroll_key_index + 1 elseif v == "shift" then self.shift_scroll_key_long[shift_scroll_key_index] = "left shift" shift_scroll_key_index = shift_scroll_key_index + 1 self.shift_scroll_key_long[shift_scroll_key_index] = "right shift" shift_scroll_key_index = shift_scroll_key_index + 1 end end self:addKeyHandler("global_window_close", self, self.setEditRoom, false) self:addKeyHandler("ingame_showmenubar", self, self.showMenuBar) self:addKeyHandler("ingame_gamespeed_speedup", self, self.keySpeedUp) self:addKeyHandler("ingame_setTransparent", self, self.keyTransparent) self:addKeyHandler("ingame_toggleTransparent", self, self.toggleTransparent) self:addKeyHandler("ingame_toggleAdvisor", self, self.toggleAdviser) self:addKeyHandler("ingame_poopLog", self.app.world, self.app.world.dumpGameLog) self:addKeyHandler("ingame_poopStrings", self.app, self.app.dumpStrings) self:addKeyHandler("ingame_toggleAnnouncements", self, self.togglePlayAnnouncements) self:addKeyHandler("ingame_toggleSounds", self, self.togglePlaySounds) self:addKeyHandler("ingame_toggleMusic", self, self.togglePlayMusic) -- scroll to map position for i = 0, 9 do -- set camera view self:addKeyHandler(string.format("ingame_storePosition_%d", i), self, self.setMapRecallPosition, i) -- recall camera view self:addKeyHandler(string.format("ingame_recallPosition_%d", i), self, self.recallMapPosition, i) end if self.app.config.debug and self.app.world.map.level_number ~= "MAP EDITOR" then self:addKeyHandler("ingame_showCheatWindow", self, self.showCheatsWindow) end end function GameUI:makeVisibleDiamond(scr_w, scr_h) local map_w = self.app.map.width local map_h = self.app.map.height assert(map_w == map_h, "UI limiter requires square map") -- The visible diamond is the region which the top-left corner of the screen -- is limited to, and ensures that the map always covers all of the screen. -- Its vertices are at (x + w, y), (x - w, y), (x, y + h), (x, y - h). return { x = - scr_w / 2, y = 16 * map_h - scr_h / 2, w = 32 * map_h - scr_h - scr_w / 2, h = 16 * map_h - scr_h / 2 - scr_w / 4, } end --! Calculate the minimum valid zoom value --! --! Zooming out too much would cause negative width/height to be returned from --! makeVisibleDiamond. This function calculates the minimum zoom_factor that --! would be allowed. function GameUI:calculateMinimumZoom() local scr_w = self.app.config.width local scr_h = self.app.config.height local map_h = self.app.map.height -- Minimum width: 0 = 32 * map_h - (scr_h/factor) - (scr_w/factor) / 2, -- Minimum height: 0 = 16 * map_h - (scr_h/factor) / 2 - (scr_w/factor) / 4 -- Both rearrange to: local factor = (scr_w + 2 * scr_h) / (64 * map_h) -- Due to precision issues a tolerance is needed otherwise setZoom might fail factor = factor + 0.001 return factor end function GameUI:setZoom(factor) if factor <= 0 then return false end if not factor or math.abs(factor - 1) < 0.001 then factor = 1 end local scr_w = self.app.config.width local scr_h = self.app.config.height local new_diamond = self:makeVisibleDiamond(scr_w / factor, scr_h / factor) if new_diamond.w < 0 or new_diamond.h < 0 then return false end self.visible_diamond = new_diamond local refx, refy = self.cursor_x or scr_w / 2, self.cursor_y or scr_h / 2 local cx, cy = self:ScreenToWorld(refx, refy) self.zoom_factor = factor cx, cy = self.app.map:WorldToScreen(cx, cy) cx = cx - self.screen_offset_x - refx / factor cy = cy - self.screen_offset_y - refy / factor self:scrollMap(cx, cy) return true end function GameUI:draw(canvas) local app = self.app local config = app.config if self.map_editor or not self.in_visible_diamond then canvas:fillBlack() end local zoom = self.zoom_factor local dx = self.screen_offset_x + math.floor((0.5 - math.random()) * self.shake_screen_intensity * shake_screen_max_movement * 2) local dy = self.screen_offset_y + math.floor((0.5 - math.random()) * self.shake_screen_intensity * shake_screen_max_movement * 2) if canvas:scale(zoom) then app.map:draw(canvas, dx, dy, math.ceil(config.width / zoom), math.ceil(config.height / zoom), 0, 0) canvas:scale(1) else self:setZoom(1) app.map:draw(canvas, dx, dy, config.width, config.height, 0, 0) end Window.draw(self, canvas, 0, 0) -- NB: not calling UI.draw on purpose self:drawTooltip(canvas) if self.simulated_cursor then self.simulated_cursor.draw(canvas, self.cursor_x, self.cursor_y) end end function GameUI:onChangeResolution() -- Calculate and enforce minimum zoom local minimum_zoom = self:calculateMinimumZoom() if self.zoom_factor < minimum_zoom then self:setZoom(minimum_zoom) end -- Recalculate scrolling bounds local scr_w = self.app.config.width local scr_h = self.app.config.height self.visible_diamond = self:makeVisibleDiamond(scr_w / self.zoom_factor, scr_h / self.zoom_factor) self:scrollMap(0, 0) UI.onChangeResolution(self) end --! Update UI state after the UI has been depersisted --! When an UI object is depersisted, its state will reflect how the UI was at -- the moment of persistence, which may be different to the keyboard / mouse -- state at the moment of depersistence. --!param ui (UI) The previously existing UI object, from which values should be -- taken. function GameUI:resync(ui) if self.drag_mouse_move then -- Check that a window is actually being dragged. If none is found, then -- remove the drag handler. local something_being_dragged = false for _, window in ipairs(self.windows) do if window.dragging then something_being_dragged = true break end end if not something_being_dragged then self.drag_mouse_move = nil end end self.tick_scroll_amount = ui.tick_scroll_amount self.down_count = ui.down_count if ui.limit_to_visible_diamond ~= nil then self.limit_to_visible_diamond = ui.limit_to_visible_diamond end self.key_remaps = ui.key_remaps self.key_to_button_remaps = ui.key_to_button_remaps end function GameUI:updateKeyScroll() local dx, dy = 0, 0 for key, scr in pairs(self.scroll_keys) do if self.buttons_down[key] then dx = dx + scr.x dy = dy + scr.y end end --If there is any movement on the x or y axis... if dx ~= 0 or dy ~= 0 then --Get the length of the scrolling vector. local mag = (dx^2 + dy^2) ^ 0.5 --Then normalize the scrolling vector, after which multiply it by the scroll speed variable. dx = (dx / mag) * key_scroll_speed dy = (dy / mag) * key_scroll_speed -- Set the scroll amount to be used. self.tick_scroll_amount = {x = dx, y = dy} return true else self.tick_scroll_amount = false return false end end function GameUI:keySpeedUp() self.speed_up_key_pressed = true self.app.world:speedUp() end function GameUI:keyTransparent() self:setWallsTransparent(true) end function GameUI:toggleTransparent() self.toggled_transparency = not self.toggled_transparency self:setWallsTransparent(self.toggled_transparency) end function GameUI:onKeyDown(rawchar, modifiers, is_repeat) if UI.onKeyDown(self, rawchar, modifiers, is_repeat) then -- Key has been handled already return true end local key = rawchar:lower() -- If key is shift speed key... for _, v in pairs(self.shift_scroll_key_long) do if v == key then self.shift_scroll_speed_pressed = true end end if self.scroll_keys[key] then self:updateKeyScroll() return end end function GameUI:onKeyUp(rawchar) if UI.onKeyUp(self, rawchar) then return true end local key = rawchar:lower() for _, v in pairs(self.shift_scroll_key_long) do if v == key then self.shift_scroll_speed_pressed = false end end if self.scroll_keys[key] then self:updateKeyScroll() return end -- Guess that the "Speed Up" key was released because the -- code parameter can't provide UTF-8 key codes: self.speed_up_key_pressed = false if self.app.world:isCurrentSpeed("Speed Up") then self.app.world:previousSpeed() end if not self.toggled_transparency then self:setWallsTransparent(false) end end function GameUI:makeDebugFax() local message = { {text = "debug fax"}, -- no translation needed imo choices = {{text = "close debug fax", choice = "close"}}, } -- Don't use "strike" type here, as these open a different window and must have an owner local types = {"emergency", "epidemy", "personality", "information", "disease", "report"} self.bottom_panel:queueMessage(types[math.random(1, #types)], message) end function GameUI:ScreenToWorld(x, y) local zoom = self.zoom_factor return self.app.map:ScreenToWorld(self.screen_offset_x + x / zoom, self.screen_offset_y + y / zoom) end function GameUI:WorldToScreen(x, y) local zoom = self.zoom_factor x, y = self.app.map:WorldToScreen(x, y) x = x - self.screen_offset_x y = y - self.screen_offset_y return x * zoom, y * zoom end function GameUI:getScreenOffset() return self.screen_offset_x, self.screen_offset_y end --! Change if the World should be tested for entities under the cursor --!param mode (boolean or room) true to enable hit test (normal), false --! to disable, room to enable only for non-door objects in given room function GameUI:setWorldHitTest(mode) self.do_world_hit_test = mode end function GameUI:onCursorWorldPositionChange() local zoom = self.zoom_factor local x = math.floor(self.screen_offset_x + self.cursor_x / zoom) local y = math.floor(self.screen_offset_y + self.cursor_y / zoom) local entity = nil local overwindow = self:hitTest(self.cursor_x, self.cursor_y) if self.do_world_hit_test and not overwindow then entity = self.app.map.th:hitTestObjects(x, y) if self.do_world_hit_test ~= true then -- limit to non-door objects in room local room = self.do_world_hit_test entity = entity and class.is(entity, Object) and entity:getRoom() == room and entity ~= room.door and entity end end if entity ~= self.cursor_entity then -- Stop displaying hoverable moods for the old entity if self.cursor_entity then self.cursor_entity:setMood(nil) end -- Make the entity easily accessible when debugging, and ignore "deselecting" an entity. if entity then self.debug_cursor_entity = entity end local epidemic = self.hospital.epidemic local infected_cursor = TheApp.gfx:loadMainCursor("epidemic") local epidemic_cursor = TheApp.gfx:loadMainCursor("epidemic_hover") self.cursor_entity = entity if self.cursor ~= self.edit_room_cursor and self.cursor ~= self.waiting_cursor then local cursor = self.default_cursor if self.app.world.user_actions_allowed then --- If the patient is infected show the infected cursor if epidemic and epidemic.coverup_selected and entity and entity.infected and not epidemic.timer.closed then cursor = infected_cursor -- In vaccination mode display epidemic hover cursor for all entities elseif epidemic and epidemic.vaccination_mode_active then cursor = epidemic_cursor -- Otherwise just show the normal cursor and hover if appropriate else cursor = entity and entity.hover_cursor or (self.down_count ~= 0 and self.down_cursor or self.default_cursor) end end self:setCursor(cursor) end if self.bottom_panel then self.bottom_panel:setDynamicInfo(nil) end end -- Queueing icons over patients local wx, wy = self:ScreenToWorld(self.cursor_x, self.cursor_y) wx = math.floor(wx) wy = math.floor(wy) local room if not overwindow and wx > 0 and wy > 0 and wx < self.app.map.width and wy < self.app.map.height then room = self.app.world:getRoom(wx, wy) end -- Find the room associated with the current entity (Usually only applies to doors) if entity and not room then if entity.room then room = entity.room elseif entity.object_type and entity.object_type.id == "swing_door_left" then -- Special case to catch the non-dominant side of a double-door room = entity.master.room end end if room ~= self.cursor_room then -- Unset queue mood for patients queueing the old room if self.cursor_room then local queue = self.cursor_room.door.queue if queue then for _, humanoid in ipairs(queue) do humanoid:setMood("queue", "deactivate") end end end -- Set queue mood for patients queueing the new room if room then local queue = room.door.queue if queue and #queue > 0 then TheApp.ui:playSound("HLIGHTP2.wav") end if queue then for _, humanoid in ipairs(queue) do humanoid:setMood("queue", "activate") end end end self.cursor_room = room end -- Any hoverable mood should be displayed on the new entity if class.is(entity, Humanoid) then for _, value in pairs(entity.active_moods) do if value.on_hover then if not self.mood_info then if self.last_hovered_entity ~= entity then TheApp.ui:playSound("HLIGHTP2.wav") self.last_hovered_entity = entity end if entity.hover_moods then entity:setMoodInfo(value) end end break end end else self.last_hovered_entity = nil end -- Dynamic Info if entity and self.bottom_panel then self.bottom_panel:setDynamicInfo(entity:getDynamicInfo()) end return Window.onCursorWorldPositionChange(self, self.cursor_x, self.cursor_y) end local UpdateCursorPosition = TH.cursor.setPosition local highlight_x, highlight_y --! Called when focus changes on game window. --!param gain (number) 1 for in-focus, 0 for out-of-focus function GameUI:onWindowActive(gain) if gain == 0 then self.tick_scroll_amount_mouse = false end UI.onWindowActive(self, gain) end -- TODO: try to remove duplication with UI:onMouseMove function GameUI:onMouseMove(x, y, dx, dy) if self.mouse_released then return false end local repaint = UpdateCursorPosition(self.app.video, x, y) if self.app.moviePlayer.playing then return false end self.cursor_x = x self.cursor_y = y if self:onCursorWorldPositionChange() or self.simulated_cursor then repaint = true end if self:_isMouseScrollButtonDown() then local zoom = self.zoom_factor self.current_momentum.x = self.current_momentum.x - dx/zoom self.current_momentum.y = self.current_momentum.y - dy/zoom local momentum_x_int = math.round(self.current_momentum.x) local momentum_y_int = math.round(self.current_momentum.y) -- Stop zooming when the middle mouse button is pressed self.current_momentum.z = 0 self:scrollMap(momentum_x_int, momentum_y_int) self.current_momentum.x = self.current_momentum.x - momentum_x_int self.current_momentum.y = self.current_momentum.y - momentum_y_int repaint = true end if self.drag_mouse_move then self.drag_mouse_move(x, y) return true end local scroll_region_size if self.app.config.fullscreen then -- As the mouse is locked within the window, a 1px region feels a lot -- larger than it actually is. scroll_region_size = 1 else -- In windowed mode, a reasonable size is needed, though not too large. scroll_region_size = 8 end if not self.app.config.prevent_edge_scrolling and (x < scroll_region_size or y < scroll_region_size or x >= self.app.config.width - scroll_region_size or y >= self.app.config.height - scroll_region_size) then local scroll_dx = 0 local scroll_dy = 0 local scroll_power = 7 if x < scroll_region_size then scroll_dx = -scroll_power elseif x >= self.app.config.width - scroll_region_size then scroll_dx = scroll_power end if y < scroll_region_size then scroll_dy = -scroll_power elseif y >= self.app.config.height - scroll_region_size then scroll_dy = scroll_power end if not self.tick_scroll_amount_mouse then self.tick_scroll_amount_mouse = {x = scroll_dx, y = scroll_dy} else self.tick_scroll_amount_mouse.x = scroll_dx self.tick_scroll_amount_mouse.y = scroll_dy end else self.tick_scroll_amount_mouse = false end if Window.onMouseMove(self, x, y, dx, dy) then repaint = true end self:updateTooltip() local map = self.app.map local wx, wy = self:ScreenToWorld(x, y) wx = math.floor(wx) wy = math.floor(wy) if highlight_x then --map.th:setCell(highlight_x, highlight_y, 4, 0) highlight_x = nil end local map_width, map_height = map.th:size() if 1 <= wx and wx <= map_width and 1 <= wy and wy <= map_height then if map.th:getCellFlags(wx, wy).passable then --map.th:setCell(wx, wy, 4, 24 + 8 * 256) highlight_x = wx highlight_y = wy end end return repaint end function GameUI:onMouseUp(code, x, y) if self.app.moviePlayer.playing then return UI.onMouseUp(self, code, x, y) end -- Controlling debug patients movement with a cursor local button = self.button_codes[code] if button == "right" and not self.map_editor and highlight_x then local window = self:getWindow(UIPatient) local patient = (window and window.patient.is_debug and window.patient) or self.hospital:getDebugPatient() if patient then patient:walkTo(highlight_x, highlight_y) patient:queueAction(IdleAction()) end end if self.edit_room then if class.is(self.edit_room, Room) then if button == "right" and self.cursor == self.waiting_cursor then -- Still waiting for people to leave the room, abort editing it. self:setEditRoom(false) end else -- No room chosen yet, but about to edit one. if button == "left" then -- Take the clicked one. local room = self.app.world:getRoom(self:ScreenToWorld(x, y)) if room then if not room.crashed then self:setCursor(self.waiting_cursor) self.edit_room = room room:tryToEdit() else if self.app.config.remove_destroyed_rooms then local room_cost = room:calculateRemovalCost() self:setEditRoom(false) -- show confirmation dialog for removing the room self:addWindow(UIConfirmDialog(self, false, _S.confirmation.remove_destroyed_room:format(room_cost), --[[persistable:remove_destroyed_room_confirm_dialog]]function() local world = room.world UIEditRoom:removeRoom(false, room, world) world:resetSideObjects() world.rooms[room.id] = nil self.hospital:spendMoney(room_cost, _S.transactions.remove_room) end )) end end end else -- right click, we don't want to edit a room after all. self:setEditRoom(false) end end end -- During vaccination mode you can only interact with infected patients local epidemic = self.hospital.epidemic if epidemic and epidemic.vaccination_mode_active then if button == "left" then if self.cursor_entity then -- Allow click behaviour for infected patients if self.cursor_entity.infected then self.cursor_entity:onClick(self,button) end end elseif button == "right" then --Right click turns vaccination mode off local watch = TheApp.ui:getWindow(UIWatch) watch:toggleVaccinationMode() end end return UI.onMouseUp(self, code, x, y) end --! Process SDL_MULTIGESTURE events for zoom and map move functionality --!param numfingers (integer) number of touch points, received from the SDL event --! This is still more info about param x. --!param dTheta (float) rotation in radians of the gesture from the SDL event --!param dDist (float) magnitude of pinch from the SDL event --!param x (float) normalised x value of the gesture --!param y (float) normalised y value of the gesture --!return (boolean) event processed indicator function GameUI:onMultiGesture(numfingers, dTheta, dDist, x, y) -- only deal with 2 finger events for now if numfingers == 2 then -- calculate magnitude of pinch local mag = math.abs(dDist) if mag > multigesture_pinch_sensitivity_factor then -- pinch action - constant needs to be tweaked self.current_momentum.z = self.current_momentum.z + dDist * multigesture_pinch_amplification_factor return true else -- scroll map local normx = self.app.config.width * x local normy = self.app.config.height * y if self.multigesturemove.x == 0.0 then self.multigesturemove.x = normx self.multigesturemove.y = normy else local dx = normx - self.multigesturemove.x local dy = normy - self.multigesturemove.y self.current_momentum.x = self.current_momentum.x - dx self.current_momentum.y = self.current_momentum.y - dy self.multigesturemove.x = normx self.multigesturemove.y = normy end return true end end return false end function GameUI:onMouseWheel(x, y) local inside_window = false if self.windows then for _, window in ipairs(self.windows) do local wx, wy = window:getRealXY() if window:hitTest(self.cursor_x - wx, self.cursor_y - wy) then inside_window = true break end end end if not inside_window then -- Apply momentum to the zoom if math.abs(self.current_momentum.z) < 12 then self.current_momentum.z = self.current_momentum.z + y end end return UI.onMouseWheel(self, x, y) end --! Announcements to the player. --!param msgs (array of string) Messages to select from. --!param priority (optional valid AnnouncementPriority selection) Priority of announcement --!param chance_to_play (optional float in range (0, 1]) Fraction of times that the -- call actually says something. --!return (boolean) Whether a message was given to the user. function GameUI:playRandomAnnouncement(msgs, priority, chance_to_play, played_callback, played_callback_delay) local max_rnd = #msgs if chance_to_play and chance_to_play > 0 and chance_to_play < 1 then -- Scale by the fraction. max_rnd = math.floor(max_rnd / chance_to_play) end local index = (max_rnd == 1) and 1 or math.random(1, max_rnd) if index <= #msgs then self:playAnnouncement(msgs[index], priority, played_callback, played_callback_delay) return true end return false end function GameUI:playAnnouncement(name, priority, played_callback, played_callback_delay) self.announcer:playAnnouncement(name, priority, played_callback, played_callback_delay) end --! Check whether the configured mouse drag button is being held down (true) or not (false). -- fixme: right mouse scrolling currently breaks other mouse operations (see issue 2469). function GameUI:_isMouseScrollButtonDown() local mouse_scroll_button_down if self.app.config.right_mouse_scrolling then mouse_scroll_button_down = self.buttons_down.mouse_right else mouse_scroll_button_down = self.buttons_down.mouse_middle end return mouse_scroll_button_down end function GameUI:onTick() local repaint = UI.onTick(self) if not self:_isMouseScrollButtonDown() then if math.abs(self.current_momentum.x) < 0.2 and math.abs(self.current_momentum.y) < 0.2 then -- Stop scrolling self.current_momentum.x = 0.0 self.current_momentum.y = 0.0 else self.current_momentum.x = self.current_momentum.x * self.momentum self.current_momentum.y = self.current_momentum.y * self.momentum self:scrollMap(self.current_momentum.x, self.current_momentum.y) end if math.abs(self.current_momentum.z) < 0.2 then self.current_momentum.z = 0.0 else self.current_momentum.z = self.current_momentum.z * self.momentum self.app.world:adjustZoom(self.current_momentum.z) end self.multigesturemove.x = 0.0 self.multigesturemove.y = 0.0 end if self.tick_scroll_amount or self.tick_scroll_amount_mouse then -- The scroll amount per tick gradually increases as the duration of the -- scroll increases due to this multiplier. local mult = self.tick_scroll_mult mult = mult + 0.02 if mult > 2 then mult = 2 end self.tick_scroll_mult = mult -- Combine the mouse scroll and keyboard scroll local dx, dy = 0, 0 if self.tick_scroll_amount_mouse then dx, dy = self.tick_scroll_amount_mouse.x, self.tick_scroll_amount_mouse.y -- If the middle mouse button is down, then the world is being dragged, -- and so the scroll direction due to the cursor being at the map edge -- should be opposite to normal to make it feel more natural. if self:_isMouseScrollButtonDown() then dx, dy = -dx, -dy end end if self.tick_scroll_amount then dx = dx + self.tick_scroll_amount.x dy = dy + self.tick_scroll_amount.y end -- Adjust scroll speed based on config value: -- there is a separate config value for whether or not shift is held. -- the speed is multiplied by 0.5 for consistency between the old and -- new configuration. In the past scroll_speed applied only to shift -- and defaulted to 2, where 1 was regular scroll speed. By -- By multiplying by 0.5, we allow for setting slower than normal -- scroll speeds, and ensure there is no behaviour change for players -- who do not modify their config file. Later the tick speed was -- doubled so now we multiply by 0.25. if self.shift_scroll_speed_pressed then mult = mult * self.app.config.shift_scroll_speed * 0.25 else mult = mult * self.app.config.scroll_speed * 0.25 end self:scrollMap(dx * mult, dy * mult) repaint = true else self.tick_scroll_mult = 1 end if self:onCursorWorldPositionChange() then repaint = true end self.announcer:onTick() return repaint end local abs, sqrt_5, floor = math.abs, math.sqrt(1 / 5), math.floor function GameUI:scrollMapTo(x, y) local zoom = 2 * self.zoom_factor local config = self.app.config return self:scrollMap(x - self.screen_offset_x - config.width / zoom, y - self.screen_offset_y - config.height / zoom) end function GameUI.limitPointToDiamond(dx, dy, visible_diamond, do_limit) -- If point outside visible diamond, then move point to the nearest position -- on the edge of the diamond (NB: relies on diamond.w == 2 * diamond.h). local rx = dx - visible_diamond.x local ry = dy - visible_diamond.y if abs(rx) + abs(ry) * 2 > visible_diamond.w then if do_limit then -- Determine the quadrant which the point lies in and accordingly set: -- (vx, vy) : a unit vector perpendicular to the diamond edge in the quadrant -- (p1x, p1y), (p2x, p2y) : the two diamond vertices in the quadrant -- d : distance from the point to the line defined by the diamond edge (not the line segment itself) local vx, vy, d local p1x, p1y, p2x, p2y = 0, 0, 0, 0 if rx >= 0 and ry >= 0 then p1x, p2y = visible_diamond.w, visible_diamond.h vx, vy = sqrt_5, 2 * sqrt_5 d = (rx * vx + ry * vy) - (p1x * vx) elseif rx >= 0 and ry < 0 then p2x, p1y = visible_diamond.w, -visible_diamond.h vx, vy = sqrt_5, -2 * sqrt_5 d = (rx * vx + ry * vy) - (p2x * vx) elseif rx < 0 and ry >= 0 then p2x, p1y = -visible_diamond.w, visible_diamond.h vx, vy = -sqrt_5, 2 * sqrt_5 d = (rx * vx + ry * vy) - (p2x * vx) else--if rx < 0 and ry < 0 then p1x, p2y = -visible_diamond.w, -visible_diamond.h vx, vy = -sqrt_5, -2 * sqrt_5 d = (rx * vx + ry * vy) - (p1x * vx) end -- In the unit vector parallel to the diamond edge, resolve the two vertices and -- the point, and either move the point to the edge or to one of the two vertices. -- NB: vx, vy, p1x, p1y, p2x, p2y are set such that p1 < p2. local p1 = vx * p1y - vy * p1x local p2 = vx * p2y - vy * p2x local pd = vx * ry - vy * rx if pd < p1 then dx, dy = p1x + visible_diamond.x, p1y + visible_diamond.y elseif pd > p2 then dx, dy = p2x + visible_diamond.x, p2y + visible_diamond.y else--if p1 <= pd and pd <= p2 then dx, dy = dx - d * vx, dy - d * vy end return math.floor(dx), math.floor(dy), true else return dx, dy, false end end return dx, dy, true end function GameUI:scrollMap(dx, dy) dx = dx + self.screen_offset_x dy = dy + self.screen_offset_y dx, dy, self.in_visible_diamond = self.limitPointToDiamond(dx, dy, self.visible_diamond, self.limit_to_visible_diamond) self.screen_offset_x = floor(dx + 0.5) self.screen_offset_y = floor(dy + 0.5) end --! Start shaking the screen, e.g. an earthquake effect (unless disabled in config) --!param intensity (number) The magnitude of the effect, between 0 for no -- movement to 1 for significant shaking. function GameUI:beginShakeScreen(intensity) if self.app.config.enable_screen_shake then self.shake_screen_intensity = intensity else self.shake_screen_intensity = 0 end end --! Stop the screen from shaking after beginShakeScreen is called. function GameUI:endShakeScreen() self.shake_screen_intensity = 0 end function GameUI:limitCamera(mode) self.limit_to_visible_diamond = mode self:scrollMap(0, 0) end --! Applies the current setting for wall transparency to the map function GameUI:applyTransparency() self.app.map.th:setWallDrawFlags(self.transparent_walls and 4 or 0) end --! Sets wall transparency to the specified parameter --!param mode (boolean) whether to enable or disable wall transparency function GameUI:setWallsTransparent(mode) if mode ~= self.transparent_walls then self.transparent_walls = mode self:applyTransparency() end end function UI:toggleAdviser() self.app.config.adviser_disabled = not self.app.config.adviser_disabled self.app:saveConfig() end function UI:togglePlaySounds() self.app.config.play_sounds = not self.app.config.play_sounds self.app.audio:playSoundEffects(self.app.config.play_sounds) self.app:saveConfig() end function UI:togglePlayAnnouncements() self.app.config.play_announcements = not self.app.config.play_announcements self.app:saveConfig() end function UI:togglePlayMusic() if not self.app.audio.background_music then self.app.config.play_music = true self.app.audio:playRandomBackgroundTrack() -- play else self.app.config.play_music = false self.app.audio:stopBackgroundTrack() -- stop end -- self.app.config.play_music = not self.app.config.play_music self.app:saveConfig() end local tutorial_phases local function make_tutorial_phases() tutorial_phases = { { -- 1) build reception { text = _A.tutorial.build_reception, -- 1 begin_callback = function() TheApp.ui:getWindow(UIBottomPanel):startButtonBlinking(3) end, end_callback = function() TheApp.ui:getWindow(UIBottomPanel):stopButtonBlinking() end, }, { text = _A.tutorial.order_one_reception, -- 2 begin_callback = function() TheApp.ui:getWindow(UIFurnishCorridor):startButtonBlinking(3) end, end_callback = function() TheApp.ui:getWindow(UIFurnishCorridor):stopButtonBlinking(3) end, }, { text = _A.tutorial.accept_purchase, -- 3 begin_callback = function() TheApp.ui:getWindow(UIFurnishCorridor):startButtonBlinking(2) end, end_callback = function() TheApp.ui:getWindow(UIFurnishCorridor):stopButtonBlinking(2) end, }, _A.tutorial.rotate_and_place_reception, -- 4 _A.tutorial.reception_invalid_position, -- 5 -- 6: object other than reception selected. currently no text for this phase. }, { -- 2) hire receptionist { text = _A.tutorial.hire_receptionist, -- 1 begin_callback = function() TheApp.ui:getWindow(UIBottomPanel):startButtonBlinking(5) end, end_callback = function() TheApp.ui:getWindow(UIBottomPanel):stopButtonBlinking() end, }, { text = _A.tutorial.select_receptionists, -- 2 begin_callback = function() TheApp.ui:getWindow(UIHireStaff):startButtonBlinking(4) end, end_callback = function() TheApp.ui:getWindow(UIHireStaff):stopButtonBlinking() end, }, { text = _A.tutorial.next_receptionist, -- 3 begin_callback = function() TheApp.ui:getWindow(UIHireStaff):startButtonBlinking(8) end, end_callback = function() TheApp.ui:getWindow(UIHireStaff):stopButtonBlinking() end, }, { text = _A.tutorial.prev_receptionist, -- 4 begin_callback = function() TheApp.ui:getWindow(UIHireStaff):startButtonBlinking(5) end, end_callback = function() TheApp.ui:getWindow(UIHireStaff):stopButtonBlinking() end, }, { text = _A.tutorial.choose_receptionist, -- 5 begin_callback = function() TheApp.ui:getWindow(UIHireStaff):startButtonBlinking(6) end, end_callback = function() TheApp.ui:getWindow(UIHireStaff):stopButtonBlinking() end, }, _A.tutorial.place_receptionist, -- 6 _A.tutorial.receptionist_invalid_position, -- 7 }, { -- 3) build GP's office -- 3.1) room window { text = _A.tutorial.build_gps_office, -- 1 begin_callback = function() TheApp.ui:getWindow(UIBottomPanel):startButtonBlinking(2) end, end_callback = function() TheApp.ui:getWindow(UIBottomPanel):stopButtonBlinking() end, }, { text = _A.tutorial.select_diagnosis_rooms, -- 2 begin_callback = function() TheApp.ui:getWindow(UIBuildRoom):startButtonBlinking(1) end, end_callback = function() TheApp.ui:getWindow(UIBuildRoom):stopButtonBlinking() end, }, { text = _A.tutorial.click_gps_office, -- 3 begin_callback = function() TheApp.ui:getWindow(UIBuildRoom):startButtonBlinking(5) end, end_callback = function() TheApp.ui:getWindow(UIBuildRoom):stopButtonBlinking() end, }, -- 3.2) blueprint -- [11][58] was maybe planned to be used in this place, but is not needed. _A.tutorial.click_and_drag_to_build, -- 4 _A.tutorial.room_in_invalid_position, -- 5 _A.tutorial.room_too_small, -- 6 _A.tutorial.room_too_small_and_invalid, -- 7 { text = _A.tutorial.room_big_enough, -- 8 begin_callback = function() TheApp.ui:getWindow(UIEditRoom):startButtonBlinking(4) end, end_callback = function() TheApp.ui:getWindow(UIEditRoom):stopButtonBlinking() end, }, -- 3.3) door and windows _A.tutorial.place_door, -- 9 _A.tutorial.door_in_invalid_position, -- 10 { text = _A.tutorial.place_windows, -- 11 begin_callback = function() TheApp.ui:getWindow(UIEditRoom):startButtonBlinking(4) end, end_callback = function() TheApp.ui:getWindow(UIEditRoom):stopButtonBlinking() end, }, { text = _A.tutorial.window_in_invalid_position, -- 12 begin_callback = function() TheApp.ui:getWindow(UIEditRoom):startButtonBlinking(4) end, end_callback = function() TheApp.ui:getWindow(UIEditRoom):stopButtonBlinking() end, }, -- 3.4) objects _A.tutorial.place_objects, -- 13 _A.tutorial.object_in_invalid_position, -- 14 { text = _A.tutorial.confirm_room, -- 15 begin_callback = function() TheApp.ui:getWindow(UIEditRoom):startButtonBlinking(4) end, end_callback = function() TheApp.ui:getWindow(UIEditRoom):stopButtonBlinking() end, }, { text = _A.tutorial.information_window, -- 16 begin_callback = function() TheApp.ui:getWindow(UIInformation):startButtonBlinking(1) end, end_callback = function() TheApp.ui:getWindow(UIInformation):stopButtonBlinking() end, }, }, { -- 4) hire doctor { text = _A.tutorial.hire_doctor, -- 1 begin_callback = function() TheApp.ui:getWindow(UIBottomPanel):startButtonBlinking(5) end, end_callback = function() TheApp.ui:getWindow(UIBottomPanel):stopButtonBlinking() end, }, { text = _A.tutorial.select_doctors, -- 2 begin_callback = function() TheApp.ui:getWindow(UIHireStaff):startButtonBlinking(1) end, end_callback = function() TheApp.ui:getWindow(UIHireStaff):stopButtonBlinking() end, }, { text = _A.tutorial.choose_doctor, -- 3 begin_callback = function() TheApp.ui:getWindow(UIHireStaff):startButtonBlinking(6) end, end_callback = function() TheApp.ui:getWindow(UIHireStaff):stopButtonBlinking() end, }, _A.tutorial.place_doctor, -- 4 _A.tutorial.doctor_in_invalid_position, -- 5 }, { -- 5) end of tutorial { begin_callback = function() -- The demo uses a single string for the post-tutorial info while -- the real game uses three. local texts = TheApp.using_demo_files and { {_S.introduction_texts["level15"]}, } or { {_S.introduction_texts["level15"]}, {_S.introduction_texts["level16"]}, {_S.introduction_texts["level17"]}, } if TheApp.world.map.level_number ~= 1 then table.insert(texts, _S.introduction_texts["level1"]) end TheApp.ui:addWindow(UIInformation(TheApp.ui, texts)) TheApp.ui:addWindow(UIWatch(TheApp.ui, "initial_opening")) end, }, }, } end tutorial_phases = setmetatable({}, {__index = function(_, k) make_tutorial_phases() return tutorial_phases[k] end}) -- Called to trigger step to another part of the tutorial. -- chapter: Individual parts of the tutorial. Step will only happen if it's the current chapter. -- phase_from: Phase we need to be in for this step to happen. Multiple phases can be given here in an array. -- phase_to: Phase we want to step to or "next" to go to next chapter or "end" to end tutorial. -- returns true if we changed phase, false if we didn't function GameUI:tutorialStep(chapter, phase_from, phase_to, ...) if self.tutorial.chapter ~= chapter then return false end if type(phase_from) == "table" then local contains_current = false for _, phase in ipairs(phase_from) do if phase == self.tutorial.phase then contains_current = true break end end if not contains_current then return false end else if self.tutorial.phase ~= phase_from then return false end end local old_phase = tutorial_phases[self.tutorial.chapter][self.tutorial.phase] if old_phase and old_phase.end_callback and type(old_phase.end_callback) == "function" then old_phase.end_callback(...) end if phase_to == "end" then self.tutorial.chapter = 0 self.tutorial.phase = 0 return true elseif phase_to == "next" then self.tutorial.chapter = self.tutorial.chapter + 1 self.tutorial.phase = 1 else self.tutorial.phase = phase_to end if TheApp.config.debug then print("Tutorial: Now in " .. self.tutorial.chapter .. ", " .. self.tutorial.phase) end local new_phase = tutorial_phases[self.tutorial.chapter][self.tutorial.phase] local str, callback if (type(new_phase) == "table" and type(new_phase.text) == "table") or not new_phase.text then str = new_phase.text callback = new_phase.begin_callback else str = new_phase end if str and str.text then self.adviser:say(str, true, true) else self.adviser.stay_up = nil end if callback then callback(...) end return true end function GameUI:startTutorial(chapter) chapter = chapter or 1 self.tutorial.chapter = chapter self.tutorial.phase = 0 self:tutorialStep(chapter, 0, 1) end --! Converts centre of screen coordinates to world tile positions and stores the values for later recall -- param index (integer) Position in recallpositions table function GameUI:setMapRecallPosition(index) local cx, cy = self:ScreenToWorld(self.app.config.width / 2, self.app.config.height / 2) self.recallpositions[index] = {x = cx, y = cy, z = self.zoom_factor} end --! Retrieves stored recall position and attempts to scroll to that position - will be limited to the bounds of the camera when zoomed out -- param index (integer) Position in recallpositions table function GameUI:recallMapPosition(index) if self.recallpositions[index] ~= nil then local sx, sy = self.app.map:WorldToScreen(self.recallpositions[index].x, self.recallpositions[index].y) local dx, dy = self.app.map:ScreenToWorld(self.app.config.width / 2, self.app.config.height / 2) self:setZoom(self.recallpositions[index].z) self:scrollMapTo(sx + dx, sy + dy) end end function GameUI:setEditRoom(enabled) -- TODO: Make the room the cursor is over flash if enabled then self:setCursor(self.edit_room_cursor) self.edit_room = true else -- If the actual editing hasn't started yet but is on its way, -- activate the room again. if class.is(self.edit_room, Room) and self.cursor == self.waiting_cursor then self.app.world:markRoomAsBuilt(self.edit_room) else -- If we are currently editing a room it may happen that we need to abort it. -- Also remove any dialog where the user is buying items. local item_window = self.app.ui:getWindow(UIFurnishCorridor) if item_window and item_window.edit_dialog then item_window:close() end local edit_window = self.app.ui:getWindow(UIEditRoom) if edit_window then edit_window:verifyOrAbortRoom() end end self:setCursor(self.default_cursor) self.edit_room = false end end function GameUI:afterLoad(old, new) if old < 16 then self.zoom_factor = 1 end if old < 23 then self.do_world_hit_test = not self:getWindow(UIPlaceObjects) end if old < 34 then self.adviser.queued_messages = {} self.adviser.phase = 0 self.adviser.timer = nil self.adviser.frame = 1 self.adviser.number_frames = 4 end if old < 75 then self.current_momentum = { x = 0, y = 0 } self.momentum = self.app.config.scrolling_momentum end if old < 78 then self.current_momentum = { x = 0, y = 0, z = 0} end if old < 115 then self.shake_screen_intensity = 0 end if old < 122 then self.multigesturemove = {x = 0.0, y = 0.0} end if old < 129 then self.recallpositions = {} end if old < 130 then self.ticks_since_last_announcement = nil -- cleanup self.announcer = Announcer(self.app) end if old < 240 then self.subtitles = Subtitles(self) self:addWindow(self.subtitles) end self.announcer.playing = false self.app:setCaptureMouse() return UI.afterLoad(self, old, new) end function GameUI:showBriefing() local level = self.app.world.map.level_number local text = {_S.information.custom_game} if type(level) == "number" then text = {_S.introduction_texts[TheApp.using_demo_files and "demo" or "level" .. level]} elseif self.app.world.map.level_intro then text = {self.app.world.map.level_intro} end self:addWindow(UIInformation(self, text)) end --! Offers a confirmation window to quit the game and return to main menu -- NB: overrides UI.quit, do NOT call it from here --!param mapeditor (boolean) If the user is quitting the map editor function GameUI:quit(mapeditor) local msg = mapeditor and _S.confirmation.quit_mapeditor or _S.confirmation.quit self:addWindow(UIConfirmDialog(self, false, msg, --[[persistable:gameui_confirm_quit]] function() self.app:loadMainMenu() -- Release the mouse regardless of setting self.app.video:setCaptureMouse(false) end)) end function GameUI:showCheatsWindow() self:addWindow(UICheats(self)) end function GameUI:showMenuBar() self.menu_bar:appear() end function GameUI:restartMapEditor() self:addWindow(UIConfirmDialog(self, false, _S.confirmation.restart_mapeditor, --[[persistable:app_hotkey_confirm_mapeditor_restart]] function() self.app:mapEdit() end)) end CorsixTH-0.70.0/CorsixTH/Lua/graphics.lua000066400000000000000000001142361522247547500200540ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") local pathsep = package.config:sub(1, 1) --! Layer for loading (and subsequently caching) graphical resources. --! The Graphics class handles loading and caching of graphics resources. -- It can adapt as the API to C changes, and hide these changes from most of -- the other Lua code. class "Graphics" ---@type Graphics local Graphics = _G["Graphics"] local cursors_name = { default = 1, clicked = 2, resize_room = 3, edit_room = 4, ns_arrow = 5, we_arrow = 6, nswe_arrow = 7, move_room = 8, sleep = 9, kill_rat = 10, kill_rat_hover = 11, epidemic_hover = 12, epidemic = 13, grab = 14, quit = 15, staff = 16, repair = 17, patient = 18, queue = 19, queue_drag = 20, bank = 36, banksummary = 44, } local cursors_palette = { [36] = "Bank01V.pal", [44] = "Stat01V.pal", } local charsets = { ["cp437"] = 1, ["mik"] = 2 } function Graphics:Graphics(app, gfx_set, charset) self.app = app self.target = self.app.video -- The cache is used to avoid reloading an object if it is already loaded self.cache = { raw = {}, tabled = {}, palette = {}, palette_greyscale_ghost = {}, ghosts = {}, anims = {}, language_fonts = {}, cursors = setmetatable({}, {__mode = "k"}), } self.th_charset = charset and charsets[charset] or charsets["cp437"] self.custom_graphics = {} -- The load info table records how objects were loaded, and is used to -- persist objects as instructions on how to load them. self.load_info = setmetatable({}, {__mode = "k"}) -- If the video target changes then resources will need to be reloaded -- (at least with some rendering engines). Note that reloading is different -- to loading (as in load_info), as reloading is done while the application -- is running, upon objects which are already loaded, whereas loading might -- be done with a different graphics engine, or might only need to grab an -- object from the cache. self.reload_functions = setmetatable({}, {__mode = "k"}) -- Cursors and fonts need to be reloaded after sprite sheets, as they are -- created from sprite sheets. self.reload_functions_last = setmetatable({}, {__mode = "k"}) self:loadFontFile() self:_loadPalettes(gfx_set) local graphics_folder = nil if self.app.config.use_new_graphics then -- Check if the config specifies a place to look for graphics in. -- Otherwise check in the default "Graphics" folder. graphics_folder = self.app.config.new_graphics_folder or self.app:getFullPath("Graphics", true) if graphics_folder:sub(-1) ~= pathsep then graphics_folder = graphics_folder .. pathsep end local graphics_config_file = graphics_folder .. "file_mapping.txt" local result, err = loadfile_envcall(graphics_config_file) if not result then print("Warning: Failed to read custom graphics configuration:\n" .. err) else result(self.custom_graphics) if not self.custom_graphics.file_mapping then print("Error: An invalid custom graphics mapping file was found") end end end self.custom_graphics_folder = graphics_folder end function Graphics:_loadPalettes(gfx_set) -- Load base palettes self:_loadPalette("Bitmap", "bootstrap_font.pal", true, false) self:_loadPalette("Bitmap", "lose.pl8", true, true) self:_loadPalette("Bitmap", "mainmenu1080.pal", false, false) self:_loadPalette("Bitmap", "mainmenu480.pal", false, false) self:_loadPalette("Bitmap", "mainmenu720.pal", false, false) self:_loadPalette("Bitmap", "winlevel.pl8", true, true) self:_loadPalette("Bitmap", "tree_ctrl.pal", false, false) if gfx_set == "base" then return end -- Load demo palettes self:_loadPalette("Data", "MPalette.dat", true, false) self:_loadPalette("QData", "Area01V.pal", true, false) self:_loadPalette("QData", "Award01V.pal", true, false) self:_loadPalette("QData", "Award02V.pal", true, false) self:_loadPalette("QData", "Bid01V.pal", true, false) self:_loadPalette("QData", "Brief01V.pal", true, false) self:_loadPalette("QData", "Cred01V.pal", true, false) self:_loadPalette("QData", "Fame01V.pal", true, false) self:_loadPalette("QData", "Fax01V.pal", true, false) self:_loadPalette("QData", "Load01V.pal", true, false) self:_loadPalette("QData", "Main01M.pal", true, false) self:_loadPalette("QData", "Pref01V.pal", true, false) self:_loadPalette("QData", "Score01V.pal", true, false) if gfx_set == "demo" then return end -- Load full palettes self:_loadPalette("QData", "Bank01V.pal", true, false) self:_loadPalette("QData", "DrugN01V.pal", true, false) self:_loadPalette("QData", "Graph01V.pal", true, false) self:_loadPalette("QData", "Pol01V.pal", true, false) self:_loadPalette("QData", "Rep01V.pal", true, false) self:_loadPalette("QData", "Res01V.pal", true, false) self:_loadPalette("QData", "Staff01V.pal", true, false) self:_loadPalette("QData", "Stat01V.pal", true, false) self:_loadPalette("QData", "Title01V.pal", true, false) self:_loadPalette("QData", "Town01V.pal", true, false) end --! Tries to load the font file given in the config file as unicode_font. --! If it is not found it tries to use the font file from the compile setting WITH_FONT, --! or look for one in the CorsixTH folder, the grandparent of this file. function Graphics:loadFontFile() local lfs = require("lfs") local function check(path) return lfs.attributes(path, "mode") == "file" end local config_path, compile_path = self.app.config.unicode_font, TH.GetCompileOptions().font local function getFontPath() local config_err, compile_err = "", "" -- Check for font specified in config file if config_path then if check(config_path) then return config_path else config_err = "Configured font set but not found. Check path " .. config_path end end -- Check for font specified in compile options if compile_path then if check(compile_path) then return compile_path else compile_err = " Compiled font path set but not found. Check path " .. compile_path end end -- Check the CorsixTH directory for our unicode font local path = self.app:getFullPath() local font_names = { "CorsixTHUnicode.ttf", "GoNotoKurrent-Regular.ttf" } for _, name in ipairs(font_names) do if check(path .. name) then return path .. name end end return nil, config_err .. compile_err end local font_file, err = getFontPath() if not font_file then print("Unicode font not found, no fallback available.", err) return end local font = io.open(font_file, "rb") if font then self.ttf_font_data = font:read("*a") font:close() if self.ttf_font_data and config_path ~= font_file then self.app.config.unicode_font = font_file self.app:saveConfig() print("Configured unicode font not found, using " .. font_file .. " instead.") print("This will be written to the config file.") end end end function Graphics:loadMainCursor(id) if type(id) ~= "number" then id = cursors_name[id] end if id > 20 then -- SPointer cursors local cursor_palette = self:getPalette(cursors_palette[id]) return self:loadCursor(self:loadSpriteTable("QData", "SPointer", false, cursor_palette), id - 20) else return self:loadCursor(self:loadSpriteTable("Data", "MPointer"), id) end end function Graphics:loadCursor(sheet, index, hot_x, hot_y) local sheet_cache = self.cache.cursors[sheet] if not sheet_cache then sheet_cache = {} self.cache.cursors[sheet] = sheet_cache end local cursor = sheet_cache[index] if not cursor then hot_x = hot_x or 0 hot_y = hot_y or 0 cursor = TH.cursor() if not cursor:load(sheet, index, hot_x, hot_y) then cursor = { draw = function(canvas, x, y) sheet:draw(canvas, index, x - hot_x, y - hot_y) end, } else local function cursor_reloader(res) assert(res:load(sheet, index, hot_x, hot_y)) end self.reload_functions_last[cursor] = cursor_reloader end sheet_cache[index] = cursor self.load_info[cursor] = {self.loadCursor, self, sheet, index, hot_x, hot_y} end return cursor end local function makeGreyscaleGhost(pal) local remap = {} local stride = #pal / 256 assert(stride == 3 or stride == 4, "Palette length is not valid") -- Convert pal from a string to an array of palette entries local entries = {} for i = 1, #pal, stride do local entry = {pal:byte(i, i + 2)} -- R, G, B at [1], [2], [3] entries[(i - 1) / stride] = entry end -- For each palette entry, convert it to grey and then find the nearest -- entry in the palette to that grey. for i = 0, #entries do local entry = entries[i] local grey = entry[1] * 0.299 + entry[2] * 0.587 + entry[3] * 0.114 local grey_index = 0 local grey_diff = 100000 -- greater than 3*63^2 (TH uses 6 bit colour channels) for j = 0, #entries do local replace_entry = entries[j] local diff_r = replace_entry[1] - grey local diff_g = replace_entry[2] - grey local diff_b = replace_entry[3] - grey local diff = diff_r * diff_r + diff_g * diff_g + diff_b * diff_b if diff < grey_diff then grey_diff = diff grey_index = j end end remap[i] = string.char(grey_index) end -- Convert remap from an array to a string return table.concat(remap, "", 0, 255) end --! Load a palette file --!param dir (string) The directory of the palette relative to the HOSPITAL directory --!param name (string) The name of the palette file --!param transparent_255 (boolean) Whether the 255th entry in the palette should be transparent --!return (palette, string) The palette and a string representing the palette converted to greyscale function Graphics:_loadPalette(dir, name, transparent_255, pal8bit) name = name or "MPalette.dat" if self.cache.palette[name] then local li = self.load_info[self.cache.palette[name]] if li and li[5] ~= transparent_255 then print("Warning: palette " .. name .. " requested with different flags than stored") end return self.cache.palette[name], self.cache.palette_greyscale_ghost[name] end local data = self.app:readDataFile(dir or "Data", name) local palette = TH.palette(data, pal8bit) if transparent_255 then palette:setEntry(255, 0xFF, 0x00, 0xFF) end local ghost_palette = makeGreyscaleGhost(data) self.cache.palette[name] = palette self.cache.palette_greyscale_ghost[name] = ghost_palette permanent("palette_" .. name, palette) permanent("ghost_palette_" .. name, ghost_palette) return palette, self.cache.palette_greyscale_ghost[name] end function Graphics:getPalette(name) name = name or "MPalette.dat" if not self.cache.palette[name] then error("Palette " .. name .. " not found") end return self.cache.palette[name], self.cache.palette_greyscale_ghost[name] end function Graphics:allPalettes() return self.cache.palette end function Graphics:loadGhost(dir, name, index) local cached = self.cache.ghosts[name] if not cached then local data = self.app:readDataFile(dir, name) cached = data self.cache.ghosts[name] = cached end return cached:sub(index * 256 + 1, index * 256 + 256) end --! Load a bitmap from a dat file and palette --! --!param name (string) The file name of the bitmap without the .dat extension --!param width (int) The width of the bitmap. Defaults to 640 --!param height (int) The height of the bitmap. Defaults to 480 --!param dir (string) The directory of the bitmap. Defaults to QData --!param _paldir (string) ignored --!param pal (string) The name of the palette --!param _transparent_255 (boolean) ignored --!param flags (table) Additional flags for loading the bitmap function Graphics:loadRaw(name, width, height, dir, _paldir, pal, _transparent_255, flags) if self.cache.raw[name] then return self.cache.raw[name] end width = width or 640 height = height or 480 dir = dir or "QData" pal = pal or (name .. ".pal") local data = self.app:readDataFile(dir, name .. ".dat") data = data:sub(1, width * height) local bitmap = TH.bitmap() local palette = self:getPalette(pal) bitmap:setPalette(palette) assert(bitmap:load(data, width, self.target, flags)) local function bitmap_reloader(bm) bm:setPalette(palette) local bitmap_data = self.app:readDataFile(dir, name .. ".dat") bitmap_data = bitmap_data:sub(1, width * height) assert(bm:load(bitmap_data, width, self.target)) end self.reload_functions[bitmap] = bitmap_reloader self.cache.raw[name] = bitmap -- 0 in place of nil so that unpack doesn't break self.load_info[bitmap] = {self.loadRaw, self, name, width, height, dir, 0, pal, 0, flags} return bitmap end function Graphics:loadBuiltinFont() local font = self.builtin_font if not font then local dat, tab, pal = TH.GetBuiltinFont() local function dernc(x) if x:sub(1, 3) == "RNC" then return rnc.decompress(x) else return x end end local palette = TH.palette(dernc(pal)) local sheet = TH.sheet() sheet:setPalette(palette) sheet:load(dernc(tab), dernc(dat), true, self.target) font = TH.bitmap_font() font:setSheet(sheet, charsets["cp437"]) -- CorsixTH only ships with a cp437 font font:setSeparation(1, 0) font:setScaleFactor(TheApp.config.ui_scale) self.load_info[font] = {self.loadBuiltinFont, self} self.builtin_font = font end return font end function Graphics:hasLanguageFont(font) if font == nil then -- Original game fonts are always present. return true elseif charsets[font] == self.th_charset then return true else -- TODO: Handle more than one font return not not self.ttf_font_data end end --! Font proxy meta table wrapping the C++ class. local font_proxy_mt = { __index = { sizeOf = function(self, ...) return self._proxy:sizeOf(...) end, draw = function(self, ...) return self._proxy:draw(...) end, drawWrapped = function(self, ...) return self._proxy:drawWrapped(...) end, drawTooltip = function(self, ...) return self._proxy:drawTooltip(...) end, isBitmap = function(self) return self._proxy:isBitmap() end } } function Graphics:onChangeLanguage() pause_gc_and_use_weak_keys(function(g) -- Some fonts might need changing between bitmap and freetype local load_info = g.load_info g.load_info = {} -- Any newly made objects are temporary, and shouldn't -- remember reload information (also avoids insertions -- into a table being iterated over). for object, info in pairs(load_info) do if object._proxy then local fn = info[1] local new_object = fn(unpack(info, 2)) object._proxy = new_object._proxy end end g.load_info = load_info end, self) end function Graphics:onChangeUIScale() if self.builtin_font then self.builtin_font:setScaleFactor(TheApp.config.ui_scale) end -- Update / replace fonts self:onChangeLanguage() end --! Font reload function. --!param font The font to (force) reloading. local function font_reloader(font) font:clearCache() end function Graphics:_isLanguageSupportedByTHAssets() return self.language_font == nil or charsets[self.language_font] == self.th_charset end --! Utility function to return preferred font for main menu ui function Graphics:loadMenuFont() -- Use the defined unicode font if set local font = self:hasLanguageFont("unicode") if font then font = self:loadLanguageFont(font, self:loadSpriteTable("QData", "Font01V"), { apply_ui_scale = true }) -- Otherwise, fall back to the built in font else font = self:loadBuiltinFont() end return font end local ttf_col_to_cache_key = function(ttf_color) if type(ttf_color) == "number" then return string.format("argb:%d", ttf_color) elseif type(ttf_color) == "table" then return string.format("a%d,r%d,g%d,b%d", ttf_color.alpha or 255, ttf_color.red or 0, ttf_color.green or 0, ttf_color.blue or 0) else return "nil" end end local shadow_to_cache_key = function(ttf_shadow) if type(ttf_shadow) == "table" then return string.format("sx%d,sy%d,s%s", ttf_shadow.offset_x or 1, ttf_shadow.offset_y or 1, ttf_col_to_cache_key(ttf_shadow.color)) elseif ttf_shadow == true then return "sx1,sy1,sa255,r0,g0,b0" end return "nil" end local language_font_cache_key = function(name, font_options) return string.format("%s,%d,%d,%s,%s,%s,%s", name or "nil", font_options.x_sep or 0, font_options.y_sep or 0, ttf_col_to_cache_key(font_options.ttf_color), font_options.force_bitmap and "T" or "F", shadow_to_cache_key(font_options.ttf_shadow), font_options.apply_ui_scale and "s" or "f") end --! Load a true type font --! --!param name (string) The name of the font from the language file. Always -- 'unicode'. --!param sprite_table (userdata) The sprite table of the font this font is -- replacing. Used for default colour and metrics. --!param font_options (table) A table of font options: -- x_sep (integer) The horizontal separation of the font. Defaults to 0. -- y_sep (integer) The vertical separation of the font. Defaults to 0. -- ttf_color (table) The colour of the font in form .red, .green and .blue. If -- nil, the colour will be detected from the sprite table. -- force_bitmap (boolean) Whether to force the font to be a bitmap font. If -- nil, this will be set to true for Font05V if the language uses Arabic -- numerals. -- ttf_width (integer) The nominal width of the font, in pixels. If nil, the -- width will be detected from the sprite table. -- ttf_height (integer) The nominal height of the font, in pixels. If nil, the -- height will be detected from the sprite table. -- ttf_shadow (table|boolean) table with fields offset_x, offset_y and color. -- The color field has the same format as ttf_color. If this field is -- present, the font will be drawn with a shadow of the specified colour and -- offset. color is optional and defaults to opaque black. offset_x and -- offset_y are optional and default to 1. If the field is omitted entirely, -- no shadow is drawn. Alternately ttf_shadow can be set to true to draw a -- shadow with default parameters, or false to disable any shadow. -- apply_ui_scale (boolean) Whether to apply the UI scale factor to the font -- size. --!param y_sep (int) Deprecated: use font_options.y_sep instead. --!param ttf_color (table) Deprecated: use font_options.ttf_color instead. --!param force_bitmap (boolean) Deprecated: use font_options.force_bitmap -- instead. function Graphics:loadLanguageFont(name, sprite_table, font_options, y_sep, ttf_color, force_bitmap) -- Afterload fix for saves before 232 if font_options == nil or type(font_options) == "number" then local fo = { x_sep = font_options, y_sep = y_sep, ttf_color = ttf_color, force_bitmap = force_bitmap } font_options = fo end if name == nil or charsets[name] == self.th_charset then return self:loadFont(sprite_table, font_options) end local font = self:_loadTrueTypeFont("unicode", sprite_table, font_options) -- A change of language or scale might cause the font to change, -- so wrap it in a proxy object which allows the actual object to -- be changed easily. font = setmetatable({ _proxy = font }, font_proxy_mt) self.load_info[font] = {self.loadLanguageFont, self, name, sprite_table, font_options} return font end --! Load a true type font --! --!param name (string) The name of the font from the language file. Always -- 'unicode'. --!param sprite_table (userdata) The sprite table of the font this font is -- replacing. Used for default colour and metrics. --!param font_options (table) A table of font options: -- x_sep (integer) The horizontal separation of the font. Defaults to 0. -- y_sep (integer) The vertical separation of the font. Defaults to 0. -- ttf_color (table) The colour of the font in form .red, .green and .blue. If -- nil, the colour will be detected from the sprite table. -- ttf_width (integer) The nominal width of the font, in pixels. If nil, the -- width will be detected from the sprite table. -- ttf_height (integer) The nominal height of the font, in pixels. If nil, the -- height will be detected from the sprite table. -- ttf_shadow (table|boolean) table with fields offset_x, offset_y and color. -- The color field has the same format as ttf_color. If this field is -- present, the font will be drawn with a shadow of the specified colour and -- offset. color is optional and defaults to opaque black. offset_x and -- offset_y are optional and default to 1. If the field is omitted entirely, -- no shadow is drawn. Alternately ttf_shadow can be set to true to draw a -- shadow with default parameters, or false to disable any shadow. -- apply_ui_scale (boolean) Whether to apply the UI scale factor to the font -- size. function Graphics:_loadTrueTypeFont(name, sprite_table, font_options) local cache_key = language_font_cache_key(name, font_options) local cache = self.cache.language_fonts[cache_key] local font = cache and cache[sprite_table] if font and font_options.apply_ui_scale and font_options.scale_factor ~= self.app.config.ui_scale then font_options.scale_factor = self.app.config.ui_scale font:setFontOptions(sprite_table, font_options) font:clearCache() elseif not font then if font_options.apply_ui_scale then font_options.scale_factor = self.app.config.ui_scale end font = TH.freetype_font() -- TODO: Choose face based on "name" rather than always using same face. font:setFace(self.ttf_font_data) font:setFontOptions(sprite_table, font_options) self.reload_functions_last[font] = font_reloader if not cache then cache = {} self.cache.language_fonts[cache_key] = cache end cache[sprite_table] = font end return font end --! Load a font and the corresponding sprite sheet in one operation. --! --! This is the same as calling loadFont(Graphics:loadSpriteTable(dir, name, complex, palette), font_options) --! except that force_bitmap is set to true automatically for some sprite tables. --! --!param dir (string) The directory of the sprite table relative to the HOSPITAL directory. --!param name (string) The name of the sprite table file without the .dat extension. --!param complex (boolean) Whether the sprite table is complex or not. --!param palette (string) The name of the palette file. If nil, the default palette will be used. --!param font_options (table) A table of font options: -- x_sep (integer) The horizontal separation of the font. Defaults to 0. -- y_sep (integer) The vertical separation of the font. Defaults to 0. -- ttf_color (table) The colour of the font in form .red, .green and .blue. If -- nil, the colour will be detected from the sprite table. -- force_bitmap (boolean) Whether to force the font to be a bitmap font. If -- nil, this will be set to true for Font05V if the language uses Arabic -- numerals. -- ttf_width (integer) The nominal width of the font, in pixels. If nil, the -- width will be detected from the sprite table. -- ttf_height (integer) The nominal height of the font, in pixels. If nil, the -- height will be detected from the sprite table. -- ttf_shadow (table|boolean) table with fields offset_x, offset_y and color. -- The color field has the same format as ttf_color. If this field is -- present, the font will be drawn with a shadow of the specified colour and -- offset. color is optional and defaults to opaque black. offset_x and -- offset_y are optional and default to 1. If the field is omitted entirely, -- no shadow is drawn. Alternately ttf_shadow can be set to true to draw a -- shadow with default parameters, or false to disable any shadow. -- apply_ui_scale (boolean) Whether to apply the UI scale factor to the font -- size. function Graphics:loadFontAndSpriteTable(dir, name, complex, palette, font_options) local sprite_table = self:loadSpriteTable(dir, name, complex, palette) font_options = font_options or {} if font_options.force_bitmap == nil then font_options.force_bitmap = (name == "Font05V" and self:arabicNumerals()) end return self:loadFont(sprite_table, font_options) end --! Load a font for the given sprite table. --! --!param sprite_table (userdata) The sprite table of the font this font is replacing. Used for default colour and metrics. --!param font_options (table) A table of font options: -- x_sep (integer) The horizontal separation of the font. Defaults to 0. -- y_sep (integer) The vertical separation of the font. Defaults to 0. -- ttf_color (table) The colour of the font in form .red, .green and .blue. If -- nil, the colour will be detected from the sprite table. -- force_bitmap (boolean) Whether to force the font to be a bitmap font. If -- nil, this will be set to true for Font05V if the language uses Arabic -- numerals. -- ttf_width (integer) The nominal width of the font, in pixels. If nil, the -- width will be detected from the sprite table. -- ttf_height (integer) The nominal height of the font, in pixels. If nil, the -- height will be detected from the sprite table. -- ttf_shadow (table|boolean) table with fields offset_x, offset_y and color. -- The color field has the same format as ttf_color. If this field is -- present, the font will be drawn with a shadow of the specified colour and -- offset. color is optional and defaults to opaque black. offset_x and -- offset_y are optional and default to 1. If the field is omitted entirely, -- no shadow is drawn. Alternately ttf_shadow can be set to true to draw a -- shadow with default parameters, or false to disable any shadow. -- apply_ui_scale (boolean) Whether to apply the UI scale factor to the font -- size. function Graphics:loadFont(sprite_table, font_options, y_sep, ttf_color, force_bitmap) -- afterLoad fix. Saves before 215 would double the y_sep argument, but did not have ttf_col if type(ttf_color) == "number" then ttf_color = nil end -- Afterload fix for saves before 232 if font_options == nil or type(font_options) == "number" then local fo = { x_sep = font_options, y_sep = y_sep, ttf_color = ttf_color, force_bitmap = force_bitmap } font_options = fo end -- Use a bitmap font if forced, or the language uses bitmap, or the -- sprite_table has no M in it, indicating it's probably a symbol file. local use_bitmap_font = font_options.force_bitmap or self:_isLanguageSupportedByTHAssets() or not sprite_table:isVisible(46) local font if use_bitmap_font then font = TH.bitmap_font() font:setSeparation(font_options.x_sep or 0, font_options.y_sep or 0) font:setSheet(sprite_table, self.th_charset) if font_options.apply_ui_scale then font:setScaleFactor(TheApp.config.ui_scale) end else font = self:_loadTrueTypeFont("unicode", sprite_table, font_options) end -- A change of language or scale might cause the font to change, -- so wrap it in a proxy object which allows the actual object to -- be changed easily. font = setmetatable({ _proxy = font }, font_proxy_mt) self.load_info[font] = { self.loadFont, self, sprite_table, font_options } return font end function Graphics:arabicNumerals() local strings = self.app.strings local language = self.app.config.language local arabic_numerals = strings:isArabicNumerals(language) return arabic_numerals end function Graphics:drawNumbersFromUnicode() return self.language_font and not self:arabicNumerals() end function Graphics:loadAnimations(dir, prefix) if self.cache.anims[prefix] then return self.cache.anims[prefix] end --! Load a custom animation file (if it can be found) --!param path Path to the file. local function loadCustomAnims(path) local file, err = io.open(path, "rb") if not file then return nil, err end local data = file:read("*a") file:close() return data end local sheet = self:loadSpriteTable(dir, prefix .. "Spr-0") local anims = TH.anims() anims:setSheet(sheet) if not anims:load( self.app:readDataFile(dir, prefix .. "Start-1.ani"), self.app:readDataFile(dir, prefix .. "Fra-1.ani"), self.app:readDataFile(dir, prefix .. "List-1.ani"), self.app:readDataFile(dir, prefix .. "Ele-1.ani")) then error("Cannot load original animations " .. prefix) end if self.custom_graphics_folder and self.custom_graphics.file_mapping then for _, fname in pairs(self.custom_graphics.file_mapping) do anims:setCanvas(self.target) local data, err = loadCustomAnims(self.custom_graphics_folder .. fname) if not data then print("Error when loading custom animations:\n" .. err) elseif not anims:loadCustom(data) then print("Warning: custom animations loading failed") end end end self.cache.anims[prefix] = anims self.load_info[anims] = {self.loadAnimations, self, dir, prefix} return anims end function Graphics:loadSpriteTable(dir, name, complex, palette) local cached = self.cache.tabled[name] if cached then return cached end local function sheet_reloader(sheet) sheet:setPalette(palette or self.cache.palette["MPalette.dat"]) local data_tab, data_dat data_tab = self.app:readDataFile(dir, name .. ".tab") data_dat = self.app:readDataFile(dir, name .. ".dat") if not sheet:load(data_tab, data_dat, complex, self.target) then error("Cannot load sprite sheet " .. dir .. ":" .. name) end end local sheet = TH.sheet() self.reload_functions[sheet] = sheet_reloader sheet_reloader(sheet) if name ~= "SPointer" then self.cache.tabled[name] = sheet end self.load_info[sheet] = {self.loadSpriteTable, self, dir, name, complex, palette} return sheet end function Graphics:updateTarget(target) self.target = target pause_gc_and_use_weak_keys(function(g) for _, res_set in ipairs({"reload_functions", "reload_functions_last"}) do for resource, reloader in pairs(g[res_set]) do reloader(resource) end end end, self) end --! Utility class for setting animation markers and querying animation length. class "AnimationManager" ---@type AnimationManager local AnimationManager = _G["AnimationManager"] function AnimationManager:AnimationManager(anims) self.anim_length_cache = {} self.anims = anims end --! For overriding animations which have builtin repeats or excess frames function AnimationManager:setAnimLength(anim, length) self.anim_length_cache[anim] = length end function AnimationManager:getAnimLength(anim) if not self.anim_length_cache[anim] then local length = 0 local seen = {} local frame = self.anims:getFirstFrame(anim) while not seen[frame] do seen[frame] = true length = length + 1 frame = self.anims:getNextFrame(frame) end self.anim_length_cache[anim] = length end return self.anim_length_cache[anim] end --[[ A marker position can be used to indicate the position of en entity in the frame of an animation relative to the position of drawing the animation. The marker position is used to display a humanoid in the circular area of its window. It is also used to position mood icons or smoke of a machine above the entity. There are two marker positions associated with each frame of an animation. The primary marker is reserved for patients and machines. The secondary marker is used for staff and other officials such as VIPs and inspectors. Markers are set as part of the animation definitions of entities with code like -- Sets the primary markers of all frames of an animation: local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(...) -- Sets the secondary markers of all frames of an animation: local anim_mgr = TheApp.animation_manager anim_mgr:setStaffMarker(...) Markers can be set using a variety of different arguments: * set{Patient/Staff}Marker(anim_number, position) * set{Patient/Staff}Marker(anim_number, {position1, position2, ..., positionN}) * set{Patient/Staff}Marker(anim_number, start_position, end_position) * set{Patient/Staff}Marker(anim_number, keyframe_1, keyframe_1_position, keyframe_2, ...) The 'position' should be a table; An {x, y} pair for a tile position or {x, y, "px"} for a pixel position. In both cases the position should be the humanoid centre at floor level, with the centre of the (0, 0) tile being the origin in both cases. The first variant of set{Patient,Staff}Marker sets the same marker for each frame. The second variant of has a unique position for each frame. 'nil' can be used to repeat the previous position. The third variant does linear interpolation of the two positions between the first frame and the last frame. The fourth variant does linear interpolation between keyframes, and then the final position for frames after the last keyframe. The keyframe arguments should be 0-based integers, as in the animation viewer. To set the markers for multiple animations at once, the anim_number argument can be a table, in which case the marker is set for all values in the table. Alternatively, the values function (defined in utility.lua) can be used in conjection with a for loop to set markers for multiple things. The AnimView program can be used to easily obtain position information in frames. --]] --! Define the centre of a patient at floor level in an animation. function AnimationManager:setPatientMarker(anim, ...) self:_unfoldAnims(anim, "setFramePrimaryMarker", ...) end --! Define the centre of a staff member at floor level in an animation. function AnimationManager:setStaffMarker(anim, ...) self:_unfoldAnims(anim, "setFrameSecondaryMarker", ...) end --! Convert a humanoid position to a pixel offset. --!param pos (table) Humanoid center position to convert. Is either a tile -- position of the form {x, y} with floating point numbers, or a pixel -- position of the form {x, y, "px"} with integer numbers. In both cases, -- the origin is at the center of tile (0, 0), at floor level. --!return (int, int) The computed offset wrt to the origin in pixels. local function positionToXy(pos) if pos[3] == "px" then return pos[1], pos[2] else local x, y = Map:WorldToScreen(pos[1] + 1, pos[2] + 1) return math.floor(x), math.floor(y) end end --! Unfold tables containing animation numbers. function AnimationManager:_unfoldAnims(anim, fn, ...) if not anim then return end if type(anim) == "table" then for _, val in pairs(anim) do self:_unfoldAnims(val, fn, ...) end else self:setMarkerRaw(anim, fn, ...) end end function AnimationManager:setMarkerRaw(anim, fn, arg1, arg2, ...) local anim_length = self:getAnimLength(anim) local frame = self.anims:getFirstFrame(anim) --! Set marker position for frame --!param x1y1 (boolean) use values given by x1 and y1 only if true, otherwise use -- linear interpolation between x1/y1 and x2/y2 --!param x1, y1, x2 (optional), y2 (optional) pixel positions --!param n fraction between start and end frame of linear interpolation local function setMarkerFramePosition(x1y1, x1, y1, x2, y2, n) assert(type(x1) == "number" and type(y1) == "number", "Anim " .. anim .. ", frame " .. frame .. " has missing marker position") local pos_x = x1y1 and x1 or math.floor((x2 - x1) * n + x1) local pos_y = x1y1 and y1 or math.floor((y2 - y1) * n + y1) self.anims[fn](self.anims, frame, pos_x, pos_y) end local tp_arg1 = type(arg1) if tp_arg1 == "table" then if arg2 then -- Linear-interpolation positions local x1, y1 = positionToXy(arg1) local x2, y2 = positionToXy(arg2) for i = 0, anim_length - 1 do local n = i / (anim_length - 1) setMarkerFramePosition(false, x1, y1, x2, y2, n) frame = self.anims:getNextFrame(frame) end elseif type(arg1[1]) == "table" then -- A position for each frame. local x, y for rel_frame = 1, anim_length do if arg1[rel_frame] then x, y = positionToXy(arg1[rel_frame]) end setMarkerFramePosition(true, x, y) frame = self.anims:getNextFrame(frame) end else -- Static position local x, y = positionToXy(arg1) for _ = 1, anim_length do setMarkerFramePosition(true, x, y) frame = self.anims:getNextFrame(frame) end end elseif tp_arg1 == "number" then -- Keyframe positions, using liner-interpolation local f1, x1, y1 = 0, 0, 0 local args if arg1 == 0 then x1, y1 = positionToXy(arg2) args = {...} else args = {arg1, arg2, ...} end local f2, x2, y2 local args_i = 1 for f = 0, anim_length - 1 do if f2 and f == f2 then f1, x1, y1 = f2, x2, y2 f2, x2, y2 = nil, nil, nil end if not f2 then f2 = args[args_i] if f2 then x2, y2 = positionToXy(args[args_i + 1]) args_i = args_i + 2 end end if f2 then local n = (f - f1) / (f2 - f1) setMarkerFramePosition(false, x1, y1, x2, y2, n) else setMarkerFramePosition(true, x1, y1) end frame = self.anims:getNextFrame(frame) end else error("Invalid arguments to setMarker", 2) end end -- Kept for load compatibility function Graphics:loadPalette(_, name) -- Was named PREF01V.PAL in ui.lua until version 240 if name == "PREF01V.PAL" then name = "Pref01V.pal" end return self:getPalette(name) end CorsixTH-0.70.0/CorsixTH/Lua/hospital.lua000066400000000000000000002565011522247547500201010ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") class "Hospital" ---@type Hospital local Hospital = _G["Hospital"] function Hospital:Hospital(world, avail_rooms, name) self.world = world local level_config = world.map.level_config local level = world.map.level_number local balance, interest_rate_numerator, reputation, overdraft_differential_numerator if level_config.towns and level_config.towns[level] then balance = level_config.towns[level].StartCash interest_rate_numerator = level_config.towns[level].InterestRate reputation = level_config.towns[level].StartRep overdraft_differential_numerator = level_config.towns[level].OverdraftDiff elseif level_config.town then balance = level_config.town.StartCash interest_rate_numerator = level_config.town.InterestRate reputation = level_config.town.StartRep overdraft_differential_numerator = level_config.town.OverdraftDiff end self.name = name or "PLAYER" -- When playing in free build mode you don't care about money. self.balance = not world.free_build_mode and balance or 0 self.loan = 0 self.acc_loan_interest = 0 self.acc_research_cost = 0 self.acc_overdraft = 0 self.acc_heating = 0 -- The sum of all material values (tiles, rooms, objects). -- Initial value: hospital tile count * tile value + 20000 self.value = world.map:getParcelPrice(self:getPlayerIndex()) + 20000 self.player_salary = 10000 self.salary_offer = 0 self.handymanTasks = {} -- Represents the "active" epidemic non-nil if -- an epidemic is happening currently in the hospital -- Only one epidemic is ever "active" self.epidemic = nil -- The pool of epidemics which may happen in the future. -- Epidemic in this table continue in the background its -- patients infecting each other. Epidemics are chosen from -- this pool to become the "active" epidemic self.future_epidemics_pool = {} -- How many epidemics can exist simultaneously counting current and future -- epidemics. If epidemic_limit = 1 then only one epidemic can exist at a -- time either in the futures pool or as a current epidemic. self.concurrent_epidemic_limit = level_config.gbv.EpidemicConcurrentLimit or 1 -- For Cheat - flag determines possibility of epidemics self.epidemics_disabled = false -- Initial values self.interest_rate = interest_rate_numerator / 10000 self.inflation_rate = 0.045 self.overdraft_interest_rate = self.interest_rate + overdraft_differential_numerator / 10000 self.salary_incr = level_config.gbv.ScoreMaxInc or 300 self.sal_min = level_config.gbv.ScoreMaxInc / 6 or 50 self.reputation_min = 0 self.reputation_max = 1000 self.reputation = math.min(math.max(reputation, self.reputation_min), self.reputation_max) local difficulty = self.world.map:getDifficulty() -- Price distortion level under which the patients might consider the -- treatment to be under-priced. local under_priced_thresholds = {-0.3, -0.4, -0.5} self.under_priced_threshold = under_priced_thresholds[difficulty] -- Price distortion level over which the patients might consider the -- treatment to be over-priced. local over_priced_thresholds = {0.4, 0.3, 0.2} self.over_priced_threshold = over_priced_thresholds[difficulty] -- (int) Number of days until the next heating or vomit wave disaster. -- TODO: Implement the vomit wave. self.disasterless_days = self:daysUntilNextDisaster() -- Heating system variables. self.heating = { radiator_heat = 0.5, -- (float) [0..1] fraction of heating by a radiator. saved_radiator_heat = nil, -- (float) Saved radiator heat when boiler has broken down. boiler_repair_count = nil, -- (int) Number of items to repair. heating_broke = false -- (bool) Whether the heating system is broken down currently. } -- Number of tile objects of each category in the hospital. self.tile_object_counts = { extinguisher = 0, radiator = 0, plant = 0, reception_desk = 0, bench = 0, general = 0, } self:buildReceptionDesksCache() self.num_visitors = 0 -- Counts patients only self.num_deaths = 0 self.num_deaths_this_year = 0 self.num_cured = 0 self.not_cured = 0 self.num_explosions = 0 self.vip_declined = 0 self.num_vips = 0 -- used to check if it's the user's first vip self.percentage_cured = 0 self.percentage_killed = 0 self.population = 0.25 -- TODO: Percentage showing how much of -- the total population that goes to the player's hospital, -- used for one of the goals. Change when competitors are there. -- Statistics used in the graph dialog. Each entry is the month, inside it -- is "money in", "money out", wages, balance, visitors, cures, deaths, reputation -- statistic[i] shows what the values were when going from month i - 1 to i. self.statistics = { { money_in = 0, money_out = 0, wages = 0, balance = balance, visitors = 0, cures = 0, deaths = 0, reputation = self.reputation } } self.money_in = 0 self.money_out = 0 -- Other statistics, back to zero each year self.has_impressive_reputation = true self:unconditionalChangeReputation(0) -- Reset self.has_impressive_reputation self.sodas_sold = 0 self.num_vips_ty = 0 -- used to count how many VIP visits in the year for an award self.pleased_vips_ty = 0 self.num_cured_ty = 0 self.not_cured_ty = 0 self.num_visitors_ty = 0 self.ownedPlots = {1} -- Plots owned by the hospital self.ratholes = {} -- List of table {x, y, wall, parcel, optional object} for ratholes in the hospital corridors. self.is_in_world = true -- Whether the hospital is in this world (AI hospitals are not) self.opened = false -- Whether the hospital is opened (timer was cleared or ended). self.transactions = {} self.staff = {} self.patients = {} self.debug_patients = {} -- right-click-commandable patients for testing self.disease_casebook = {} self.discovered_diseases = {} -- a list -- Create a cheats instance for each hospital. AIHospitals don't know how to cheat (we hope!) self.hosp_cheats = Cheats(self) -- Make a table containing available rooms for the level, and its discovery status (room, discovery_status) -- Index is the room's id e.g. gp self.room_discoveries = {} for _, avail_room in ipairs(avail_rooms) do self.room_discoveries[avail_room.room.id] = { room = avail_room.room, is_discovered = avail_room.is_discovered or false } end local gbv = level_config.gbv self.policies = { staff_allowed_to_move = true, send_home = 0.1, guess_cure = 0.9, stop_procedure = 1, -- Note that this is between 1 and 2 ( = 100% - 200%) goto_staffroom = gbv.Tired / 1000, -- Defaults to 0.6 on normal difficulty grant_wage_increase = TheApp.config.grant_wage_increase, } -- Semi-randomly select three insurance companies to use, only different by name right now. -- The companies in the first quarter of the list are more likely to be selected self.insurance = {} -- Make a local writeable copy table of the translated company names. local companies = {} for no, local_name in ipairs(_S.insurance_companies) do companies[no] = local_name end while #self.insurance < 3 and #companies > 0 do local num = math.random(1, 2) == 1 and math.random(1, math.ceil(#companies / 4)) or math.random(1, #companies) self.insurance[#self.insurance + 1] = companies[num] table.remove(companies, num) end -- A list of how much each insurance company owes you. The first entry for -- each company is the current month's dept, the second the previous -- month and the third the month before that. -- All payment that goes through an insurance company a given month is paid two -- months later. For example diagnoses in April are paid the 1st of July self.insurance_balance = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}} -- Initialize diseases local diseases = TheApp.diseases local expertise = level_config.expertise for _, disease in ipairs(diseases) do local disease_available = true local drug_effectiveness = 95 local drug = disease.treatment_rooms and disease.treatment_rooms[1] == "pharmacy" or nil local drug_cost = 100 if expertise then disease_available = expertise[disease.expertise_id].Known == 1 -- This means that the config is available drug_effectiveness = gbv.StartRating drug_cost = gbv.StartCost end if world.available_diseases[disease.id] or disease.pseudo then local info = { reputation = not disease.pseudo and 500 or nil, price = 1.0, -- user-set multiplier between 0.5 and 2.0 money_earned = 0, recoveries = 0, fatalities = 0, turned_away = 0, disease = disease, discovered = disease_available, concentrate_research = false, cure_effectiveness = drug and drug_effectiveness or 100, -- This will only work as long as there's only one treatment room. drug = drug, drug_cost = drug and drug_cost, psychiatrist = disease.treatment_rooms and disease.treatment_rooms[1] == "psych" or nil, machine = disease.requires_machine, -- This assumes we always have the ward then the operating_theatre as treatment rooms. surgeon = disease.treatment_rooms and disease.treatment_rooms[2] == "operating_theatre" or nil, researcher = disease.requires_researcher, -- TODO: Fix when aliens are in the game. pseudo = disease.pseudo, -- Diagnosis is pseudo } self.disease_casebook[disease.id] = info if disease_available and not disease.pseudo then self.discovered_diseases[#self.discovered_diseases + 1] = disease.id end end end self.research = ResearchDepartment(self) -- Initialize build cost for all available rooms. for _, avail_room in ipairs(avail_rooms) do self.research.research_progress[avail_room.room] = { -- In free build mode, everything is freely available. build_cost = not self.free_build_mode and avail_room.build_cost or 0, } end end --! Checks if a room has been discovered --!param room_id (string) The name of the room --!return (boolean) true if discovered, otherwise false function Hospital:isRoomDiscovered(room_id) return self.room_discoveries[room_id].is_discovered end --! Update the loaded game with version 'old' to the version 'new'. --!param old Version of the loaded game. --!param new Version of the code being executed. function Hospital:afterLoad(old, new) if old < 34 then -- New variable self.acc_overdraft = 0 end if old < 35 then -- Define build costs for rooms once again. local cfg_objects = self.world.map.level_config.objects local cfg_rooms = self.world.map.level_config.rooms for _, room in ipairs(TheApp.rooms) do -- Sum up the build cost of the room local build_cost = cfg_rooms[room.level_config_id].Cost for name, no in pairs(room.objects_needed) do -- Add cost for this object. build_cost = build_cost + cfg_objects[TheApp.objects[name].thob].StartCost * no end -- Now define the total build cost for the room. self.research.research_progress[room] = { build_cost = build_cost, } end end if old < 39 then self.acc_heating = 0 end if old < 40 then self.statistics = {} self.money_in = 0 self.money_out = 0 end if old < 41 then self.boiler_can_break = true end if old < 45 then self.num_explosions = 0 self.num_vips = 0 end if old < 50 then self.num_vips_ty = 0 self.pleased_vips_ty = 0 self.num_cured_ty = 0 self.not_cured_ty = 0 self.num_visitors_ty = 0 end if old < 52 then self:initOwnedPlots() self.handymanTasks = {} end if old < 54 then local current = self.research.research_policy.specialisation.current if current and not current.dummy and not current.thob and not current.drug then for _, disease_entry in pairs(self.disease_casebook) do if disease_entry.concentrate_research then self.research:concentrateResearch(disease_entry.disease.id) self.research:concentrateResearch(disease_entry.disease.id) end end end end if old < 56 then self.research_dep_built = false end if old < 84 then self.vip_declined = 0 end if old < 88 then self.future_epidemics_pool = {} self.concurrent_epidemic_limit = self.world.map.level_config.gbv.EpidemicConcurrentLimit or 1 end if old < 107 then self.reception_desks = nil end if old < 109 then -- price distortion self.under_priced_threshold = -0.4 self.over_priced_threshold = 0.3 end if old < 111 then self.initial_grace = nil end if old < 114 then self.ratholes = {} end if old < 131 then self.autopsy_discovered = nil self.discover_autopsy_risk = nil end if old < 140 then self.has_impressive_reputation = self.reputation_above_threshold and true or false self.reputation_above_threshold = nil self:unconditionalChangeReputation(0) -- Setup 'has_impressive_reputation' end if old < 142 then self.disasterless_days = self:daysUntilNextDisaster() self.heating = { radiator_heat = self.radiator_heat or 0.5, saved_radiator_heat = self.curr_setting or 0.5, boiler_repair_count = self.boiler_countdown or 0, heating_broke = self.heating_broke or false } self.radiator_heat = nil self.curr_setting = nil self.boiler_countdown = nil self.boiler_can_break = nil -- Equivalent to self.opened. self.heating_broke = nil end if old < 143 and new >= 143 then if self:isPlayerHospital() then setmetatable(self, PlayerHospital._metatable) end -- To avoid recursion, apply the remaining changes asif the game was -- started from version 143. self:afterLoad(143, new) return end if old < 146 then self.staff_room_msg = nil self.toilet_msg = nil self.bench_msg = nil self.warmth_msg = nil self.thirst_msg = nil self.seating_warning = nil self.cash_msg = nil end if old < 147 then self.patientcount = nil self.receptionist_msg = nil end if old < 148 then self.msg_counter = nil end if old < 152 then -- If old save has an emergency fax, or emergency active, of an undiscovered disease -- make the disease discovered to prevent crashing (see #1754, #1799) local em = self.emergency if em and not self.disease_casebook[em.disease.id].discovered then self.research:discoverDisease(em.disease) end end if old < 154 then -- We now use one table for our room discovery self.room_discoveries = {} -- Get the level start available rooms local avail_rooms = self.world:getAvailableRooms() for _, avail_room in ipairs(avail_rooms) do self.room_discoveries[avail_room.room.id] = { room = avail_room.room, is_discovered = avail_room.is_discovered or false } end -- Has the player discovered rooms since? for _, room_new in pairs(self.room_discoveries) do if self.discovered_rooms[room_new.room] then -- old system used rooms as keys room_new.is_discovered = true end end -- Clear old variables self.discovered_rooms = nil self.undiscovered_rooms = nil end if old < 155 then self.overdraft_interest_rate = self.interest_rate + 0.02 end if old < 159 then self.receptionist_msg = nil end if old < 167 then -- Count tile objects of this hospital from scratch. self.tile_object_counts = { extinguisher = 0, radiator = 0, plant = 0, reception_desk = 0, bench = 0, general = 0, } local width, height = self.world.map.th:size() for x = 1, width do for y = 1, height do local objects = self.world:getObjects(x, y) if objects then for _, object in ipairs(objects) do if object.hospital == self then self:addTileObject(object.object_type.count_category) end end end end end end if old < 169 then -- AIHospital previously did not have a cheats instance, now it should if not self.hosp_cheats then self.hosp_cheats = Cheats(self) end -- Move toggle cheat triggers to Cheats self.hosp_cheats.active_cheats = {} self.hosp_cheats.active_cheats["spawn_rate_cheat"] = self.spawn_rate_cheat self.spawn_rate_cheat = nil end if old < 243 then self:buildReceptionDesksCache() end -- Update other objects in the hospital (added in version 106). if self.epidemic then self.epidemic:afterLoad(old, new) end for _, future_epidemic in ipairs(self.future_epidemics_pool) do future_epidemic:afterLoad(old, new) end self.research:afterLoad(old, new) end --! Count the number of patients in the hospital. --!param max_count (optional integer) If provided, non-negative maximum count to return. --!return The number of patients in the hospital, at most max_count is returned if provided. function Hospital:countPatients(max_count) local count = 0 for _, patient in ipairs(self.patients) do -- Only count patients that are in the hospital. local tx, ty = patient.tile_x, patient.tile_y if tx and ty and self:isInHospital(tx, ty) then count = count + 1 if max_count ~= nil and count >= max_count then break end end end return count end --! Count number of sitting and standing patients in the hospital. --!return (integer, integer) Number of sitting and number of standing patient in the hospital. function Hospital:countSittingStanding() local numberSitting = 0 local numberStanding = 0 for _, patient in ipairs(self.patients) do local pat_action = patient:getCurrentAction() if pat_action.name == "idle" and not patient:getRoom() then numberStanding = numberStanding + 1 elseif pat_action.name == "use_object" and pat_action.object.object_type.id == "bench" then numberSitting = numberSitting + 1 end end return numberSitting, numberStanding end --! Called each tick, also called 'hours'. Check hours_per_day in --! date.lua to see how many times per day this is. function Hospital:tick() -- Add some random background sounds, ringing phones, coughing, belching etc. -- -- TODO: Background noises of other hospitals are heard in multi-player, -- TODO: decide where this should go. if math.random(1, 100) == 3 then -- Wait until there are some patients in the hospital and a room, otherwise you -- will wonder who is coughing or who is the receptionist telephoning! -- Opted for gp as you can't run the hospital without one. if self:countRoomOfType("gp", 1) > 0 and self:countPatients(3) > 2 then local sounds = { "ispot001.wav", "ispot002.wav", "ispot003.wav", "ispot004.wav", "ispot005.wav", "ispot006.wav", "ispot007.wav", "ispot008.wav", "ispot009.wav", "ispot010.wav", "ispot011.wav", "ispot012.wav", "ispot013.wav", "ispot014.wav", "ispot015.wav", "ispot016.wav", "ispot017.wav", "ispot018.wav", "ispot019.wav", "ispot020.wav", "ispot021.wav", "ispot022.wav", "ispot023.wav", "ispot024.wav", "ispot025.wav" } -- ispot026 and ispot027 are both toilet related sounds. local sound_to_play = sounds[math.random(1, #sounds)] if TheApp.audio:soundExists(sound_to_play) then self.world.ui:playSound(sound_to_play) end end end self:manageEpidemics() end function Hospital:purchasePlot(plot_number) local map = self.world.map if map.th:isParcelPurchasable(plot_number, self:getPlayerIndex()) then local cost = not self.world.free_build_mode and map:getParcelPrice(plot_number) or 0 if cost <= self.balance then self.world:setPlotOwner(plot_number, self:getPlayerIndex()) table.insert(self.ownedPlots, plot_number) -- Also make sure to apply transparency to the new walls, if required. self.world.ui:applyTransparency() self:spendMoney(cost, _S.transactions.buy_land, cost) return true else -- Give visual warning that player doesn't have enough $ to build self:adviseCannotAffordPlot() end end return false end function Hospital:getPlayerIndex() -- TODO: In multiplayer, return 2 or 3 or 4 return 1 end --! Returns the heliport x and y coordinates or nil if none exist. --!return (pair of integers, or nil) The x,y position of the tile with the heliport, if it exists. function Hospital:getHeliportPosition() local x, y = self.world.map.th:getHeliportTile(self:getPlayerIndex()) -- NB: Level 2 has a heliport tile set, but no heliport, so we ensure that -- the specified tile is suitable by checking the spawn tile for -- passability. if y > 0 and self.world.map:getCellFlag(x, y, "passable") then return x, y end end --! Returns the tile on which patients should spawn when getting out of the helicopter. --!return (pair of integers, or nil) The x,y position to use for spawning emergency patients from the heliport, if available. function Hospital:getHeliportSpawnPosition() local x, y = self:getHeliportPosition() if x and y then return x, y - 1 end end --[[ Test if a given map tile is part of this hospital. !param x (integer) The 1-based X coordinate of the tile to test. !param y (integer) The 1-based Y coordinate of the tile to test. ]] function Hospital:isInHospital(x, y) local flags = self.world.map.th:getCellFlags(x, y) return flags.hospital and flags.owner == self:getPlayerIndex() end --! Decide how many days the hospital functions within specification. --!return (int) Number of disaster-free days in the hospital. function Hospital:daysUntilNextDisaster() local disaster_free_days = {300, 200, 150} -- Original doesn't use random, see Github #490. return disaster_free_days[self.world.map:getDifficulty()] + math.random(1, 21) - 11 end --! Boiler should break down. --!param broken_heat (0 or 1) Amount of heat to output due to being broken. function Hospital:boilerBreakdown(broken_heat) local heat_vars = self.heating if not self.opened then return end -- Boiler cannot break if hospital is closed. if heat_vars.heating_broke then return end -- Still broken, don't break it again. local num_radiators = self:countRadiators() if num_radiators == 0 then return end -- No radiators, don't bother to break the boiler. local num_handyman = self:countStaffOfCategory("Handyman") if num_radiators <= 8 * num_handyman then return end -- Enough handyman to maintain the heating system. heat_vars.saved_radiator_heat = heat_vars.radiator_heat heat_vars.radiator_heat = broken_heat heat_vars.boiler_repair_count = math.random(10, 30) heat_vars.heating_broke = true -- Warn the player of the boiler's breakdown self:adviseBoilerBreakdown(broken_heat) end --! Boiler broke down and work is done to get it fixed. function Hospital:_fixBoiler() local heat_vars = self.heating if not heat_vars.heating_broke then return end -- Not broken, done! -- Repair the boiler or radiators, more handy men speeds up repair, see also github #490 local num_radiators = self:countRadiators() local num_handyman = self:countStaffOfCategory("Handyman") if num_radiators < 5 * num_handyman then heat_vars.boiler_repair_count = heat_vars.boiler_repair_count - 3 elseif num_radiators < 8 * num_handyman then heat_vars.boiler_repair_count = heat_vars.boiler_repair_count - 2 else heat_vars.boiler_repair_count = heat_vars.boiler_repair_count - 1 end if heat_vars.boiler_repair_count <= 0 then -- It's fixed, restore previous settings. heat_vars.radiator_heat = heat_vars.saved_radiator_heat heat_vars.heating_broke = false if num_radiators > 0 then -- Only tell the player about fix if there is at least one radiator. self:giveAdvice({_A.boiler_issue.resolved}) end end end --! Daily update of the ratholes. --!param self (Hospital) hospital being updated. local function dailyUpdateRatholes(self) local map = self.world.map local th = map.th local wanted_holes = math.round(th:getLitterFraction(self:getPlayerIndex()) * 200) if #self.ratholes < wanted_holes then -- Not enough holes, find a new spot -- Try to find a wall in a corridor, and add it if possible. -- Each iteration does a few probes at a random position, most tries will -- fail on not being on a free (non-built) tile in a corridor with a wall -- in the right hospital. -- Doing more iterations speeds up finding a suitable location, less -- iterations is reduces needed processor time. -- "6 + 2 * difference" is an arbitrary value that seems to work nicely, 12 -- is an arbitrary upper limit on the number of tries. for _ = 1, math.min(12, 6 + 2 * (wanted_holes - #self.ratholes)) do local x = math.random(1, map.width) local y = math.random(1, map.height) local flags = th:getCellFlags(x, y) if self:isInHospital(x, y) and flags.roomId == 0 and flags.buildable then local walls = self:getWallsAround(x, y) if #walls > 0 then -- Found a wall, check it for not being used. local wall = walls[math.random(1, #walls)] local found = false for _, hole in ipairs(self.ratholes) do if hole.x == x and hole.y == y and hole.wall == wall.wall then found = true break end end if not found then self:addRathole(x, y, wall.wall, wall.parcel) break end end end end end end -- Called at the end of each day. function Hospital:onEndDay() local pay_this = self.loan*self.interest_rate/365 -- No leap years self.acc_loan_interest = self.acc_loan_interest + pay_this self.research:researchCost() self.show_progress_screen_warnings = math.random(1, 3) -- used in progress report to limit warnings if self.balance < 0 then local overdraft_interest = self.overdraft_interest_rate local overdraft = math.abs(self.balance) local overdraft_payment = (overdraft*overdraft_interest)/365 self.acc_overdraft = self.acc_overdraft + overdraft_payment end -- Count receptionists. self.receptionist_count = 0 for _, staff in ipairs(self.staff) do if class.is(staff, Receptionist) then self.receptionist_count = self.receptionist_count + 1 end end self:_fixBoiler() -- Boiler always needs work (especially if broken). -- Do we have a disaster? self.disasterless_days = self.disasterless_days - 1 if self.disasterless_days <= 0 then self.disasterless_days = self:daysUntilNextDisaster() local disaster_type = math.random(1, 3) -- TODO: Set to 3 until the vomit wave is implemented. -- disaster_type == 1 is for skipping the disaster, nothing happens. if disaster_type == 2 then self:boilerBreakdown(1) -- max heat elseif disaster_type == 3 then self:boilerBreakdown(0) -- min heat end -- TODO: Implement vomit wave disaster for disaster_type == 4 end -- Calculate heating cost daily. Divide the monthly cost by the number of days in that month local num_radiators = self:countRadiators() local heating_costs = (self.heating.radiator_heat * 10 * num_radiators * 7.50) / self.world:date():lastDayOfMonth() self.acc_heating = self.acc_heating + heating_costs if self:isPlayerHospital() then dailyUpdateRatholes(self) end end -- Called at the end of each month. function Hospital:onEndMonth() -- Spend wages local wages = 0 for _, staff in ipairs(self.staff) do wages = wages + staff.profile.wage end if wages ~= 0 then self:spendMoney(wages, _S.transactions.wages) end -- Pay heating costs if math.round(self.acc_heating) > 0 then self:spendMoney(math.round(self.acc_heating), _S.transactions.heating) self.acc_heating = 0 end -- Pay interest on loans if math.round(self.acc_loan_interest) > 0 then self:spendMoney(math.round(self.acc_loan_interest), _S.transactions.loan_interest) self.acc_loan_interest = 0 end -- Pay overdraft charges if math.round(self.acc_overdraft) > 0 then self:spendMoney(math.round(self.acc_overdraft), _S.transactions.overdraft) self.acc_overdraft = 0 end -- Pay research costs if math.round(self.acc_research_cost) > 0 then self:spendMoney(math.round(self.acc_research_cost), _S.transactions.research) self.acc_research_cost = 0 end -- add to score each month -- rate varies on some performance factors i.e. reputation above 500 increases the score -- and the number of deaths will reduce the score. local sal_inc = self.salary_incr / 10 local sal_mult = (self.reputation - 500) / (self.num_deaths + 1) -- added 1 so that you don't divide by 0 local month_incr = sal_inc + sal_mult -- To ensure that you can't receive less than 50 or -- more than 300 per month if month_incr < self.sal_min then month_incr = self.sal_min elseif month_incr > self.salary_incr then month_incr = self.salary_incr end self.player_salary = self.player_salary + math.ceil(month_incr) -- TODO: do you get interest on the balance owed? for i, company in ipairs(self.insurance_balance) do -- Get the amount that is about to be paid to the player local payout_amount = company[3] if payout_amount > 0 then local str = _S.transactions.insurance_colon .. " " .. self.insurance[i] self:receiveMoney(payout_amount, str) end -- Shift the amounts to the left table.remove(company, 3) table.insert(company, 1, 0) -- The new month have no payments yet end -- Check for equipment getting available self.research:checkAutomaticDiscovery(self.world:date():monthOfGame()) -- Add some interesting statistics. local newMonth = self.world:date():monthOfGame() + 1 self.statistics[newMonth] = { money_in = self.money_in, money_out = self.money_out, wages = wages, balance = self.balance, visitors = self.num_visitors, cures = self.num_cured, deaths = self.num_deaths, reputation = self.reputation, } self.money_in = 0 self.money_out = 0 end --! Returns whether this hospital is controlled by a real person or not. function Hospital:isPlayerHospital() return self == self.world:getLocalPlayerHospital() end --! Does the hospital have a reception desk --!param is_staffed (bool) Does the desk need to be staffed --!return (bool) Whether there is a reception desk in the hospital. function Hospital:hasReceptionDesk(is_staffed) return not not self:getReceptionDesks(is_staffed)[1] end --! Fetches a list of all reception desks --!param is_staffed (bool) Do the desks need to be staffed --!return (table) A list of relevant desks function Hospital:getReceptionDesks(is_staffed) return is_staffed and self.staffed_reception_desks or self.reception_desks end --! Collect the reception desks in the hospital into a list for the above function function Hospital:buildReceptionDesksCache() local reception_desks, staffed_desks = {}, {} for _, obj_list in pairs(self.world.objects) do for _, obj in ipairs(obj_list) do if obj.hospital == self and obj.object_type.id == "reception_desk" and not obj.picked_up then reception_desks[#reception_desks + 1] = obj if obj.receptionist or obj.reserved_for then staffed_desks[#staffed_desks + 1] = obj end end end end self.staffed_reception_desks = staffed_desks self.reception_desks = reception_desks end --! Called at the end of each year function Hospital:onEndYear() self.sodas_sold = 0 self.num_vips_ty = 0 self.pleased_vips_ty = 0 self.num_cured_ty = 0 self.not_cured_ty = 0 self.num_visitors_ty = 0 self.num_deaths_this_year = 0 self.has_impressive_reputation = true self:unconditionalChangeReputation(0) -- Reset self.has_impressive_reputation -- On third year of level 3 there is the large increase to salary -- this will replicate that. TODO: check other levels above 5 to -- see if there are other large increases. if self.world:date():year() == 3 and self.world.map.level_number == 3 then -- adds the extra to salary in level 3 year 3 self.player_salary = self.player_salary + math.random(8000,20000) end end -- Creates complete emergency with patients, what disease they have, what's needed -- to cure them and the fax. --!return (optional string) Textual reason for failure, else nil function Hospital:createEmergency(emergency) local random_disease = self.world.available_diseases[math.random(1, #self.world.available_diseases)] local disease = TheApp.diseases[random_disease.id] local number = math.random(2, disease.emergency_number) if self:getHeliportSpawnPosition() and self:hasReceptionDesk(true) then if not emergency then -- Create a random emergency if parameters are not specified already. emergency = { disease = disease, victims = number, bonus = 1000, percentage = 0.75, killed_emergency_patients = 0, cured_emergency_patients = 0, } end -- If disease chosen isn't discovered, cancel emergency if not self.disease_casebook[emergency.disease.id].discovered then return "undiscovered_disease" end self.emergency = emergency self:makeEmergencyStartFax() return -- successfully created end return "no_heliport" end -- Called when the timer runs out during an emergency or when all emergency patients are cured or dead. function Hospital:resolveEmergency() local emer = self.emergency local rescued_patients = emer.cured_emergency_patients for _, patient in ipairs(self.emergency_patients) do if patient and not patient.cured and not patient.dead and not patient.going_home then patient:setToDying() end end local total = emer.victims local max_bonus = emer.bonus * total local emergency_success = rescued_patients/total >= emer.percentage local earned = 0 if emergency_success then earned = emer.bonus * rescued_patients end self:makeEmergencyEndFax(rescued_patients, total, max_bonus, earned) if emergency_success then -- Reputation increased self:changeReputation("emergency_success", emer.disease) self:receiveMoney(earned, _S.transactions.emergency_bonus) else -- Too few rescued, reputation hit self:changeReputation("emergency_failed", emer.disease) end self.world:nextEmergency() end --! Determine if all of the patients in the emergency have been cured or killed. --! If they have end the emergency timer. function Hospital:checkEmergencyOver() local killed = self.emergency.killed_emergency_patients local cured = self.emergency.cured_emergency_patients if killed + cured >= self.emergency.victims then local window = self.world.ui:getWindow(UIWatch) if window then window:onCountdownEnd() end end end --[[ Creates a new epidemic by creating a new contagious patient with a random disease - this is NOT typically how epidemics are started (mainly for cheat use) see @Hospital:determineIfContagious() to see how epidemics are typically started]] function Hospital:spawnContagiousPatient() --[[ Gets the available non-visual disease in the current world @return non_visuals (table) table of available non-visual diseases or false if the patient cannot be spawned. @return message (optional string) The error message that may be caused by using cheats.]] if self.epidemics_disabled then return false, _S.misc.epidemics_off end local function get_available_contagious_diseases() local contagious = {} for _, disease in ipairs(self.world.available_diseases) do if disease.contagious then contagious[#contagious + 1] = disease end end return contagious end if self:hasReceptionDesk(true) then local patient = self.world:newEntity("Patient", 2, 1) local contagious_diseases = get_available_contagious_diseases() if #contagious_diseases > 0 then local disease = contagious_diseases[math.random(1,#contagious_diseases)] patient:setDisease(disease) --Move the first patient closer (FOR TESTING ONLY) local x,y = self:getHeliportSpawnPosition() if not x then local spawn_point = self.world.spawn_points[math.random(1, #self.world.spawn_points)] x, y = spawn_point.x, spawn_point.y end patient:setTile(x,y) patient:setHospital(self) self:addToEpidemic(patient) else return false, _S.misc.epidemic_no_diseases end else return false, _S.misc.epidemic_no_receptionist end end function Hospital:countEpidemics() -- Count the current epidemic if it exists local epidemic_count = self.epidemic and 1 or 0 epidemic_count = epidemic_count + #self.future_epidemics_pool return epidemic_count end --[[ Make the active epidemic (if exists) and any future epidemics tick. If there is no current epidemic determines if any epidemic in the pool of future epidemics can become the active one. Also removes any epidemics from the future pool which have no infected patients and thus, will have no effect on the hospital. ]] function Hospital:manageEpidemics() --[[ Can the future epidemic be revealed to the player @param future_epidemic (Epidemic) the epidemic to attempt to reveal @return true if can be revealed false otherwise (boolean) ]] local function can_be_revealed(epidemic) return not self.world.ui:getWindow(UIWatch) and not self.epidemic and epidemic.ready_to_reveal end local current_epidemic = self.epidemic if(current_epidemic) then current_epidemic:tick() end if self.future_epidemics_pool then for i, future_epidemic in ipairs(self.future_epidemics_pool) do if future_epidemic:hasNoInfectedPatients() then table.remove(self.future_epidemics_pool,i) elseif can_be_revealed(future_epidemic) then self.epidemic = future_epidemic self.epidemic:revealEpidemic() table.remove(self.future_epidemics_pool,i) else future_epidemic:tick() end end end end --! Cancel ongoing and future epidemics. --!param disease (table) Optional, if specified only epidemics of a certain disease -- will be cancelled. function Hospital:cancelEpidemics(disease) local function cancelEpidemic(epidemic) if disease and disease ~= epidemic.disease then return false end epidemic:cancelEpidemic() return true end -- Cancel ongoing epidemic if self.epidemic ~= nil then if cancelEpidemic(self.epidemic) then self.epidemic = nil end end -- Cancel not revealed epidemics if self.future_epidemics_pool then local future_epidemics = self.future_epidemics_pool for i=#future_epidemics, 1, -1 do if cancelEpidemic(future_epidemics[i]) then table.remove(self.future_epidemics_pool, i) end end end end --[[ Determines if a patient is contagious and then attempts to add them the appropriate epidemic if so. @param patient (Patient) patient to determine if contagious]] function Hospital:determineIfContagious(patient) if self.epidemics_disabled or patient.is_emergency or not patient.disease.contagious then return false end -- ContRate treated like a percentage with ContRate% of patients with -- a disease having the contagious strain local level_config = self.world.map.level_config local disease = patient.disease local contRate = level_config.expertise[disease.expertise_id].ContRate or 0 -- The patient is potentially contagious as we do not yet know if there -- is a suitable epidemic which they can belong to local potentially_contagious = contRate > 0 and (math.random(1,contRate) == contRate) -- The patient isn't contagious if these conditions aren't passed local reduce_months = level_config.ReduceContMonths or 14 local reduce_people = level_config.ReduceContPeepCount or 20 local date_in_months = self.world:date():monthOfGame() if potentially_contagious and date_in_months > reduce_months and self.num_visitors > reduce_people then self:addToEpidemic(patient) end end --[[ Determines if there is a suitable epidemic the contagious patient can belong to and adds them to it if possible. N.B. a patient isn't actually contagious until they belong to an epidemic. So if it isn't possible to add a patient to an epidemic they are just treated as a normal patient. @param patient (Patient) patient to attempt to add to an epidemic ]] function Hospital:addToEpidemic(patient) local epidemic = self.epidemic -- Don't add a new contagious patient if the player is trying to cover up -- an existing epidemic - not really fair if epidemic and not epidemic.coverup_selected and (patient.disease == epidemic.disease) then epidemic:addContagiousPatient(patient) elseif self.future_epidemics_pool and not (epidemic and epidemic.coverup_selected) then local added = false for _, future_epidemic in ipairs(self.future_epidemics_pool) do if future_epidemic.disease == patient.disease then future_epidemic:addContagiousPatient(patient) added = true break end end if not added then -- Make a new epidemic as one doesn't exist with this disease, but only if -- we haven't reach the concurrent epidemic limit if self:countEpidemics() < self.concurrent_epidemic_limit then local new_epidemic = Epidemic(self, patient) self.future_epidemics_pool[#self.future_epidemics_pool + 1] = new_epidemic end end end end function Hospital:spawnPatient() self.world:spawnPatient(self) end local debug_n function Hospital:getDebugPatient() if not debug_n or debug_n >= #self.debug_patients then debug_n = 1 else debug_n = debug_n + 1 end return self.debug_patients[debug_n] end --[[ Returns how much a given object currently costs to purchase. The cost may be affected by research progress. !param name (string) The name (id) of the object to investigate. ]] function Hospital:getObjectBuildCost(name) -- Everything is free in free build mode. if self.world.free_build_mode then return 0 end local progress = self.research.research_progress local cfg_objects = self.world.map.level_config.objects local obj_def = TheApp.objects[name] -- Get how much this item costs at the start of the level. local obj_cost = cfg_objects[obj_def.thob].StartCost -- Some objects might have got their cost reduced by research. if progress[obj_def] then obj_cost = progress[obj_def].cost end return obj_cost end --[[ Lowers the player's money by the given amount and logs the transaction. !param amount (integer) The (positive) amount to spend. !param reason (string) A string that shows what happened. Should be one of the strings in _S.transactions. !param changeValue (integer) The (positive) amount the hospital value should be increased ]] function Hospital:spendMoney(amount, reason, changeValue) if not self.world.free_build_mode then self.balance = self.balance - amount self:logTransaction({spend = amount, desc = reason}) self.money_out = self.money_out + amount if changeValue then self.value = self.value + changeValue end end end --[[ Increases the player's money by the given amount and logs the transaction. !param amount (integer) The (positive) amount to receive. !param reason (string) A string that tells what happened. Should be one of the strings in _S.transactions. !param changeValue (integer) The (positive) amount the hospital value should be decreased ]] function Hospital:receiveMoney(amount, reason, changeValue) if not self.world.free_build_mode then self.balance = self.balance + amount self:logTransaction({receive = amount, desc = reason}) self.money_in = self.money_in + amount if changeValue then self.value = self.value - changeValue end end end --[[ Determines how much the player should receive after a patient is treated in a room. !param patient (Patient) The patient that just got treated. ]] function Hospital:receiveMoneyForTreatment(patient) if not self.world.free_build_mode then local disease_id = patient:getTreatmentDiseaseId() if disease_id == nil then return end local casebook = self.disease_casebook[disease_id] local reason if casebook.pseudo then reason = _S.transactions.treat_colon .. " " .. casebook.disease.name else reason = _S.transactions.cure_colon .. " " .. casebook.disease.name end local amount = patient.pay_amount or 0 amount = amount > 0 and amount or self:getTreatmentPrice(disease_id) -- 25% of the payments now go through insurance if patient.insurance_company then self:addInsuranceMoney(patient.insurance_company, amount) else -- patient is paying normally (but still, he could feel like it's -- under- or over-priced and it could impact happiness and reputation) self:computePriceLevelImpact(patient, casebook) self:receiveMoney(amount, reason) end casebook.money_earned = casebook.money_earned + amount patient.world:newFloatingDollarSign(patient, amount) patient.pay_amount = 0 end end --! Sell a soda to a patient for the price in the level config (default $20). --!param patient (patient) The patient buying the soda. function Hospital:sellSodaToPatient(patient) local soda_price = self.world.map.level_config.gbv.SodaPrice self:receiveMoneyForProduct(patient, soda_price, _S.transactions.drinks) self.sodas_sold = self.sodas_sold + 1 end --! Function to determine the price for a treatment, modified by reputation and percentage -- Treatment charge should never be less than the starting price if reputation falls below 500 function Hospital:getTreatmentPrice(disease) local reputation = self.disease_casebook[disease].reputation or self.reputation local percentage = self.disease_casebook[disease].price local raw_price = self.disease_casebook[disease].disease.cure_price if reputation >= 500 then return math.ceil(raw_price * (reputation / 500) * percentage) else return math.ceil(raw_price * percentage) end end function Hospital:addInsuranceMoney(company, amount) local old_balance = self.insurance_balance[company][1] self.insurance_balance[company][1] = old_balance + amount end function Hospital:receiveMoneyForProduct(patient, amount, reason) patient.world:newFloatingDollarSign(patient, amount) self:receiveMoney(amount, reason) end --! Pay drug if drug has been purchased to treat a patient. --!param disease_id Disease that was treated. function Hospital:paySupplierForDrug(disease_id) local drug_amount = self.disease_casebook[disease_id].drug_cost or 0 if drug_amount ~= 0 then local str = _S.drug_companies[math.random(1, 5)] self:spendMoney(drug_amount, _S.transactions.drug_cost .. ": " .. str) end end --[[ Add a transaction to the hospital's transaction log. !param transaction (table) A table containing a string field called `desc`, and at least one of the following integer fields: `spend`, `receive`. ]] function Hospital:logTransaction(transaction) transaction.balance = self.balance transaction.day = self.world:date():dayOfMonth() transaction.month = self.world:date():monthOfYear() while #self.transactions > 20 do self.transactions[#self.transactions] = nil end table.insert(self.transactions, 1, transaction) end --! Initialize hospital staff from the level config. function Hospital:initStaff() local level_config = self.world.map.level_config if level_config.start_staff then for _, conf in ipairs(level_config.start_staff) do local profile local skill = 0 local added_staff = true if conf.Skill then skill = conf.Skill / 100 end if conf.Nurse == 1 then profile = StaffProfile(self.world, "Nurse", _S.staff_class["nurse"]) profile:init(skill) elseif conf.Receptionist == 1 then profile = StaffProfile(self.world, "Receptionist", _S.staff_class["receptionist"]) profile:init(skill) elseif conf.Handyman == 1 then profile = StaffProfile(self.world, "Handyman", _S.staff_class["handyman"]) profile:init(skill) elseif conf.Doctor == 1 then profile = StaffProfile(self.world, "Doctor", _S.staff_class["doctor"]) local shrink = 0 local rsch = 0 local surg = 0 local jr, cons if conf.Shrink == 1 then shrink = 1 end if conf.Surgeon == 1 then surg = 1 end if conf.Researcher == 1 then rsch = 1 end if conf.Junior == 1 then jr = 1 elseif conf.Consultant == 1 then cons = 1 end profile:initDoctor(shrink,surg,rsch,jr,cons,skill) else added_staff = false end if added_staff then local staff = self.world:newEntity(profile.humanoid_class, 2, 2) staff:setProfile(profile) -- Identify a safe starting place and -- try to place the staff member randomly near it or on it local map = self.world.map.th local map_x_length, map_y_length = map:size() local map_offset = 10 local x, y = map:getCameraTile(self:getPlayerIndex()) -- Make sure the random numbers (x_attempt, y_attempt) will be safely within the map local x_safe = math.max(map_offset + 1, math.min(x, map_x_length - map_offset)) local y_safe = math.max(map_offset + 1, math.min(y, map_y_length - map_offset)) local x_attempt, y_attempt local attempts = 0 repeat x_attempt = x_safe + math.random(-map_offset, map_offset) y_attempt = y_safe + math.random(-map_offset, map_offset) attempts = attempts + 1 until attempts > 100 or self:isInHospital(x_attempt, y_attempt) if attempts <= 100 then staff:setTile(x_attempt, y_attempt) elseif self:isInHospital(x, y) then staff:setTile(x, y) else staff:setTile(map_x_length / 2, map_y_length / 2) end staff:onPlaceInCorridor() self.staff[#self.staff + 1] = staff staff:setHospital(self) end end end end function Hospital:addStaff(staff) self.staff[#self.staff + 1] = staff -- Cost of hiring staff: self:spendMoney(staff.profile.wage, _S.transactions.hire_staff .. ": " .. staff.profile:getFullName()) self:notifyOfStaffChange(staff) end function Hospital:addPatient(patient) self.patients[#self.patients + 1] = patient -- Add to the hospital's visitor count self.num_visitors = self.num_visitors + 1 self.num_visitors_ty = self.num_visitors_ty + 1 -- Decide if the patient belongs in an epidemic self:determineIfContagious(patient) end --! Humanoid has died, record the incident. --!param patient The deceased. function Hospital:humanoidDeath(patient) self:msgKilled() if not patient.is_debug then local case = self.disease_casebook[patient.disease.id] case.fatalities = case.fatalities + 1 end self.num_deaths = self.num_deaths + 1 self.num_deaths_this_year = self.num_deaths_this_year + 1 self:changeReputation("death", patient.disease) self:updatePercentages() if patient.is_emergency then self.emergency.killed_emergency_patients = self.emergency.killed_emergency_patients + 1 end end --! Remove all tasks assigned to Handyman --!param handyman (object) target handyman function Hospital:unassignHandymanTasks(handyman) local tasks = self:findAssignedTasksToHandyman(handyman) for _, task in ipairs(tasks) do task.assignedHandyman = nil end end --! Checks if the hospital employs staff of a given category. --!param category (string) A humanoid_class or one of the specialists, i.e. --! "Doctor", "Nurse", "Handyman", "Receptionist", "Psychiatrist", --! "Surgeon", "Researcher", "Junior" or "Consultant" --!param max_count (optional integer) If provided, non-negative maximum count to return. --! returns Number of that type employed, at most max_count is returned if provided. function Hospital:countStaffOfCategory(category, max_count) local result = 0 for _, staff in ipairs(self.staff) do if staff:fulfillsCriterion(category) then result = result + 1 end if max_count ~= nil and result >= max_count then break end end return result end --! Checks if the hospital has a room of a given type. --!param type (string) A room_info.id, e.g. "ward". --!param max_count (optional integer) If provided, non-negative maximum count to return. --! Returns Number of that type found, at most max_count is returned if provided. function Hospital:countRoomOfType(type, max_count) -- Check how many rooms there are. local result = 0 for _, room in pairs(self.world.rooms) do if room.hospital == self and room.room_info.id == type and room.is_active then result = result + 1 if max_count ~= nil and result >= max_count then break end end end return result end --! Update tile object counts for adding an object. --! See also 'Hospital:removeTileObject' --!param object_category Category of the tile object. function Hospital:addTileObject(object_category) if object_category then local current_count = self.tile_object_counts[object_category] self.tile_object_counts[object_category] = current_count + 1 end end --! Update tile object counts for removing an object. --! See also 'Hospital:addTileObject' --!param object_category Category of the tile object. function Hospital:removeTileObject(object_category) if object_category then local current_count = self.tile_object_counts[object_category] self.tile_object_counts[object_category] = current_count - 1 end end --! Get the number of reception desks in the hospital. --!return (int) Number of reception desks in the hospital. function Hospital:countReceptionDesks() return self.tile_object_counts["reception_desk"] end --! Get the number of radiators in the hospital. --!return (int) Number of radiators in the hospital. function Hospital:countRadiators() return self.tile_object_counts["radiator"] end --! Get the number of plants in the hospital. --!return (int) Number of plants in the hospital. function Hospital:countPlants() return self.tile_object_counts["plant"] end --! Get the number of fire extinguishers in the hospital. --!return (int) Number of fire extinguishers in the hospital. function Hospital:countFireExtinguishers() return self.tile_object_counts["extinguisher"] end --! Get the number of general objects in the hospital. --!return (int) Number of general objects in the hospital. function Hospital:countGeneralObjects() return self.tile_object_counts["general"] end --! A new object has been placed in the hospital. --!param entity (Entity) The entity that was just placed. --!param id (string) That entity's id. function Hospital:objectPlaced(entity, id) -- If it is a bench we're placing, notify queueing patients in the vicinity if id == "bench" then local notify_distance = 6 local w, h = self.world.map.th:size() for tx = math.max(1, entity.tile_x - notify_distance), math.min(w, entity.tile_x + notify_distance) do for ty = math.max(1, entity.tile_y - notify_distance), math.min(h, entity.tile_y + notify_distance) do if self:isInHospital(tx, ty) then -- Only patients of this hospital should be warned. for _, patient in ipairs(self.world.entity_map:getHumanoidsAtCoordinate(tx, ty)) do if class.is(patient, Patient) then patient:notifyNewObject(id) end end end end end return end if id == "reception_desk" then self:msgReceptionDesk() return end if id == "plant" then self:advisePlants(true) return end if id == "gates_to_hell" then self:showGatesToHell(entity) return end end --! Remove the first entry with a given value from a table. --! Only works reliably for lists. --!param t Table to search for the value, and update. --!param value Value to search and remove. --!return Whether the value was removed. local function RemoveByValue(t, value) for i, v in ipairs(t) do if v == value then table.remove(t, i) return true end end return false end --! Remove a staff member from the hospital staff. --!param staff (Staff) Staff member to remove. function Hospital:removeStaff(staff) RemoveByValue(self.staff, staff) -- update all messages for waiting patients self:notifyOfStaffChange(staff) end --! Remove a patient from the hospital. -- Also if a debug patient, they are also removed from the debug list. --!param patient (Patient) Patient to remove. function Hospital:removePatient(patient) if patient.is_debug then self:removeDebugPatient(patient) end RemoveByValue(self.patients, patient) end --! Remove a debug patient from the debug list. --!param patient (Patient) Patient to remove function Hospital:removeDebugPatient(patient) RemoveByValue(self.debug_patients, patient) end -- TODO: This should depend on difficulty and level local reputation_changes = { ["cured"] = 1, -- a patient was successfully treated ["death"] = -4, -- a patient died due to bad treatment or waiting too long ["kicked"] = -3, -- firing a staff member OR sending a patient home ["emergency_success"] = 15, ["emergency_failed"] = -20, ["over_priced"] = -2, ["under_priced"] = 1, ["room_crash"] = -50, } --! Normally reputation is changed based on a reason, and the affected --! disease also has its own reputation meter. --!param reason (string) The reason for changing reputation, for example "cured" or "death". --!param disease The disease, if any, that should be affected. --!param valueChange (integer) In some cases, for example at year end, the amount varies a lot. -- Then it is specified here. function Hospital:changeReputation(reason, disease, valueChange) local amount if reason == "autopsy_discovered" then local rep_hit_perc = self.world.map.level_config.gbv.AutopsyRepHitPercent amount = rep_hit_perc and math.floor(-self.reputation * rep_hit_perc / 100) or -70 elseif valueChange then amount = valueChange else amount = reputation_changes[reason] end if self:isReputationChangeAllowed(amount) then self:unconditionalChangeReputation(amount) end if disease then local casebook = self.disease_casebook[disease.id] casebook.reputation = casebook.reputation + amount end end --! Unconditionally change the reputation. --! In most cases, the better entry point for changing reputation --! is 'Hospital:changeReputation'. --!param valueChange (integer) Amount of change. function Hospital:unconditionalChangeReputation(valueChange) self.reputation = self.reputation + valueChange if self.reputation < self.reputation_min then self.reputation = self.reputation_min elseif self.reputation > self.reputation_max then self.reputation = self.reputation_max end -- Check if criteria for trophy is still met if self.has_impressive_reputation then local level_config = self.world.map.level_config if level_config.awards_trophies then local min_repuration = level_config.awards_trophies.Reputation self.has_impressive_reputation = min_repuration < self.reputation return end self.has_impressive_reputation = false end end --! Decide whether a reputation change is effective or not. As we approach 1000, --! a gain is less likely. As we approach 0, a loss is less likely. --! Under 500, a gain is always effective. Over 500, a loss is always effective. --!param amount (int): The amount of reputation change. function Hospital:isReputationChangeAllowed(amount) if (amount > 0 and self.reputation <= 500) or (amount < 0 and self.reputation >= 500) or (amount == 0) then return true else return math.random() <= self:getReputationChangeLikelihood() end end --! Compute the likelihood for a reputation change to be effective. --! Likelihood gets smaller as hospital reputation gets closer to extreme values. --!return (float) Likelihood of a reputation change. function Hospital:getReputationChangeLikelihood() -- The result follows a quadratic function, for a curved and smooth evolution. -- If reputation == 500, the result is 100%. -- Between [380-720], the result is still over 80%. -- At 100 or 900, it's under 40%. -- At 0 or 1000, it's 0%. -- -- The a, b and c coefficients have been computed to include points -- (x=0, y=1), (x=500, y=0) and (x=1000, y=1) where x is the current -- reputation and y the likelihood of the reputation change to be -- refused, based a discriminant (aka "delta") == 0 local a = 0.000004008 local b = 0.004008 local c = 1 local x = self.reputation -- The result is "reversed" for more readability return 1 - (a * x * x - b * x + c) end --! Update the 'cured' counts of the hospital. --!param patient Patient that was cured. function Hospital:updateCuredCounts(patient) if not patient.is_debug then self:changeReputation("cured", patient.disease) end self.num_cured = self.num_cured + 1 self.num_cured_ty = self.num_cured_ty + 1 local casebook = self.disease_casebook[patient.disease.id] casebook.recoveries = casebook.recoveries + 1 if patient.is_emergency then self.emergency.cured_emergency_patients = self.emergency.cured_emergency_patients + 1 end self:msgCured() end --! Update the 'not cured' counts of the hospital. --!param patient Patient that was not cured. --!param reason (string) the reason why the patient is not cured. --! -"kicked": Patient goes home early (manually sent, no treatment room, etc). --! -"over_priced": Patient considers the price too high. function Hospital:updateNotCuredCounts(patient, reason) if patient.is_debug then return end self:changeReputation(reason, patient.disease) self.not_cured = self.not_cured + 1 self.not_cured_ty = self.not_cured_ty + 1 if reason == "kicked" then local casebook = self.disease_casebook[patient.disease.id] casebook.turned_away = casebook.turned_away + 1 end -- though not killed allows timer to close early if patient.is_emergency then self.emergency.killed_emergency_patients = self.emergency.killed_emergency_patients + 1 end end function Hospital:updatePercentages() local killed = self.num_deaths / (self.num_cured + self.num_deaths) * 100 self.percentage_killed = math.round(killed) local cured = self.num_cured / (self.num_cured + self.not_cured + self.num_deaths) * 100 self.percentage_cured = math.round(cured) end --! Compute average of an attribute for all patients in the hospital. --!param attribute (str) Name of the attribute. --!param default_value Value to return if there are not enough patients. --!param min_count (number) Minimal number of sampled patients, 4 by default. --!return Average value of the attribute for all hospital patients, compensated -- towards the default if there are not enough patients in the hospital. function Hospital:getAveragePatientAttribute(attribute, default_value, min_count) if type(min_count) ~= "number" or min_count < 1 then min_count = 4 end return self:_getAverageHumanoidsAttribute(self.patients, attribute, default_value, min_count) end --! Compute average of an attribute for all staff in the hospital. --!param attribute (str) Name of the attribute. --!param default_value Value to return if there is no staff. --!return Average value of the attribute for all staff, or the default value. function Hospital:getAverageStaffAttribute(attribute, default_value) return self:_getAverageHumanoidsAttribute(self.staff, attribute, default_value, 1) end --! Compute average of an attribute for all given humanoids. --!param humanoids The collection of humanoids to query. --!param attribute (str) Name of the attribute. --!param default_value (any type) Value to return if there are not enough humanoids. --!param min_count (number) Minimal number of sampled humanoids required, 4 by -- default. If less humanoids are available than the minimal count, additional -- fake humanoids are 'counted' with the default value of the attribute if -- possible. Use 1 as min_count to avoid compensating. --!return Average value of the attribute for all humanoids, possibly compensated -- towards the default if there are not enough humanoids in the hospital. function Hospital:_getAverageHumanoidsAttribute(humanoids, attribute, default_value, min_count) assert(type(min_count) == "number" and min_count >= 1) -- Sum the attribute for all humanoids. local sum = 0 local count = 0 for _, hum in ipairs(humanoids) do local tx, ty = hum.tile_x, hum.tile_y -- Skip counting the humanoid if they don't have the attribute (eg Alien). if tx and ty and self:isInHospital(tx, ty) and hum.attributes[attribute] then sum = sum + hum.attributes[attribute] count = count + 1 end end -- Handle compensation for not enough humanoids. if count < min_count then -- Skip compensating if the default is not a number. if type(default_value) ~= "number" then return default_value end -- Add fake humanoids until the min_count is satisfied. This gives a more -- gradual change towards the real average as more humanoids become available. while count < min_count do sum = sum + default_value count = count + 1 end end return sum / count end --! Checks if the requirements for the given disease are met in the hospital and returns the ones missing. --!param disease (String) The disease to check the requirements for --! returns false if all requirements are met, else a table in the form --! { rooms = {[room1], [room2], ...}, staff = {[humanoid_class] = [amount_needed] or nil} } --! i.e. a list of rooms (ordered the same as disease.treatment_rooms), and a set of humanoid_classes with --! the needed amount of that class as the value function Hospital:checkDiseaseRequirements(disease) -- Copy rooms list from disease but leave out the ones that are present in the hospital -- Get required staff from all rooms required by the disease, if not already present in hospital local rooms = {} local staff = {} local any = false for _, room_id in ipairs(self.world.available_diseases[disease].treatment_rooms) do local found = self:countRoomOfType(room_id, 1) > 0 if not found then rooms[#rooms + 1] = room_id any = true end -- Get staff for room for staff_class, amount in pairs(TheApp.rooms[room_id].required_staff) do local available = self:countStaffOfCategory(staff_class) if available < amount then -- Don't add up the staff requirements of different rooms, but take the maximum staff[staff_class] = math.max(staff[staff_class] or 0, amount - available) any = true end end end -- False if no rooms and no staff were added return any and {rooms = rooms, staff = staff} end --! Get the set of walls around a tile position. --!param x (int) X position of the queried tile. --!param y (int) Y position of the queried tile. --!return (table {wall, parcel}) The walls around the given position. function Hospital:getWallsAround(x, y) local map = self.world.map local th = map.th local _, nw, ww local walls = {} -- List of {wall="north"/"west"/"south"/"east", parcel} local flags = th:getCellFlags(x, y) _, nw, ww = th:getCell(x, y) -- floor, north wall, west wall if ww ~= 0 then walls[#walls + 1] = {wall = "west", parcel = flags.parcelId} end if nw ~= 0 then walls[#walls + 1] = {wall = "north", parcel = flags.parcelId} end if x ~= map.width then _, _, ww = th:getCell(x + 1, y) if ww ~= 0 then walls[#walls + 1] = {wall = "east", parcel = flags.parcelId} end end if y ~= map.height then _, nw, _ = th:getCell(x, y + 1) if nw ~= 0 then walls[#walls + 1] = {wall = "south", parcel = flags.parcelId} end end return walls end --! Test for the given position to be inside the given rectangle. --!param x (int) X position to test. --!param y (int) Y position to test. --!param rect (table x, y, width, height) Rectangle to check against. --!return (bool) Whether the position is inside the rectangle. local function isInside(x, y, rect) return x >= rect.x and x < rect.x + rect.width and y >= rect.y and y < rect.y + rect.height end --! Find all ratholes that match the `to_match` criteria. --!param holes (list ratholes) Currently existing holes. --!param to_match (table) For each direction a rectangle with matching tile positions. --!return (list) Matching ratholes. local function findMatchingRatholes(holes, to_match) local matched = {} for _, hole in ipairs(holes) do if isInside(hole.x, hole.y, to_match[hole.wall]) then table.insert(matched, hole) end end return matched end --! Remove the ratholes that use the walls of the provided room. --!param room (Room) Room being de-activated. function Hospital:removeRatholesAroundRoom(room) local above_rect = {x = room.x, width = room.width, y = room.y - 1, height = 1} local below_rect = {x = room.x, width = room.width, y = room.y +room.height, height = 1} local left_rect = {x = room.x - 1, width = 1, y = room.y, height = room.height} local right_rect = {x = room.x + room.width, width = 1, y = room.y, height = room.height} local to_delete = {east = left_rect, west = right_rect, south = above_rect, north = below_rect} local remove_holes = findMatchingRatholes(self.ratholes, to_delete) for _, hole in ipairs(remove_holes) do self:removeRathole(hole) end end -- Add a rathole to the room. --!param x (int) X position of the tile containing the rathole. --!param y (int) Y position of the tile containing the rathole. --!param wall (string) Wall containing the hole (north, west, south, east) --!param parcel (int) Parcel number of the xy position. function Hospital:addRathole(x, y, wall, parcel) for _, rathole in ipairs(self.ratholes) do if rathole.x == x and rathole.y == y and rathole.wall == wall then return end end local hole = {x = x, y = y, wall = wall, parcel = parcel} if wall == "north" or wall == "west" then -- Only add a rat-hole graphics object for the visible holes. hole["object"] = self.world:newObject("rathole", hole.x, hole.y, hole.wall) end table.insert(self.ratholes, hole) end --! Remove the provided rathole. --!param hole (table{x, y, wall, optional object}) Hole to remove. function Hospital:removeRathole(hole) for i, rathole in ipairs(self.ratholes) do if rathole.x == hole.x and rathole.y == hole.y and rathole.wall == hole.wall then table.remove(self.ratholes, i) if rathole.object then self.world:destroyEntity(rathole.object) end break end end end --! Remove any rathole from the given position. --!param x X position of the tile that should not have ratholes. --!param y Y position of the tile that should not have ratholes. function Hospital:removeRatholeXY(x, y) for i = #self.ratholes, 1, -1 do local rathole = self.ratholes[i] if rathole.x == x and rathole.y == y then table.remove(self.ratholes, i) if rathole.object then self.world:destroyEntity(rathole.object) end end end end --! Adds a handyman task --!param object The object needing attention --!param taskType The handyman task type: repairing, watering, cleaning --!param priority Task priority: 1 is low, 2 is high --!param x coordinate --!param y coordinate --!param call The call added to the dispatcher function Hospital:addHandymanTask(object, taskType, priority, x, y, call) local parcelId = self.world.map.th:getCellFlags(x, y).parcelId local subTable = self:findHandymanTaskSubtable(taskType) table.insert(subTable, {["object"] = object, ["priority"] = priority, ["tile_x"] = x, ["tile_y"] = y, ["parcelId"] = parcelId, ["call"] = call}) end --! Queries the priority of an existing handyman task --!param taskIndex (integer) Number of task --!param taskType The handyman task type: repairing, watering, cleaning --!return Priority of task function Hospital:getHandymanTaskPriority(taskIndex, taskType) local subTable = self:findHandymanTaskSubtable(taskType) return subTable[taskIndex].priority end function Hospital:modifyHandymanTaskPriority(taskIndex, newPriority, taskType) if taskIndex ~= -1 then local subTable = self:findHandymanTaskSubtable(taskType) subTable[taskIndex].priority = newPriority end end function Hospital:removeHandymanTask(taskIndex, taskType) if taskIndex ~= -1 then local subTable = self:findHandymanTaskSubtable(taskType) local task = subTable[taskIndex] table.remove(subTable, taskIndex) if task.assignedHandyman then if task.object.ticks ~= true then task.assignedHandyman:releaseHandymanFromTask(true) task.assignedHandyman = nil end end end end function Hospital:findHandymanTaskSubtable(taskType) for i = 1, #self.handymanTasks do if self.handymanTasks[i].taskType == taskType then return self.handymanTasks[i].subTable end end table.insert(self.handymanTasks, {["taskType"] = taskType, ["subTable"] = {}}) return self:findHandymanTaskSubtable(taskType) end --! Search all tasks assigned to a handyman, if any. --!param handyman The handyman instance to check for assigned tasks. --!return table of all assigned tasks. function Hospital:findAssignedTasksToHandyman(handyman) local assigned_tasks = {} for i = 1, #self.handymanTasks do for j = 1, #self.handymanTasks[i].subTable do if self.handymanTasks[i].subTable[j].assignedHandyman == handyman then table.insert(assigned_tasks, self.handymanTasks[i].subTable[j]) end end end return assigned_tasks end function Hospital:assignHandymanToTask(handyman, task_index, task_type) if task_index ~= -1 then local subtable = self:findHandymanTaskSubtable(task_type) local task_object = subtable[task_index] local former_handyman = task_object.assignedHandyman if former_handyman then former_handyman:releaseHandymanFromTask(true) end handyman.task = task_object task_object.assignedHandyman = handyman return task_object end return nil end --! Function for search a new task for a handyman. --!param handyman (object) handyman instance for which we want to find a task. --!param task_type (string) handyman task type: repairing, watering, cleaning. --!return index (int) index of the found task. function Hospital:searchForHandymanTask(handyman, task_type) local subTable = self:findHandymanTaskSubtable(task_type) -- if a distance is smaller than this value stop the search to -- save performance local thresholdForStopping = 3 -- information about the best task found so far local dist = 0 local index = -1 local priority = 0 local multiplier = 1 local first_attempt = true if handyman.profile.is_consultant then multiplier = 0.5 elseif handyman.profile.is_junior then multiplier = 2 end if not handyman.parcelNr then handyman.parcelNr = 0 end for task_index, task_candidate in ipairs(subTable) do local v = task_candidate local distance = self.world:getPathDistance(v.tile_x, v.tile_y, handyman.tile_x, handyman.tile_y) local found_suitable_task = true if not first_attempt and v.priority < priority then found_suitable_task = false end if not v.parcelId then v.parcelId = self.world.map.th:getCellFlags(v.tile_x, v.tile_y).parcelId end -- Check that the task is in the plot to which the handyman is assigned to. If he assigned to plot. if handyman.parcelNr ~= 0 and handyman.parcelNr ~= v.parcelId then found_suitable_task = false end -- Check that a route can be built to this task if distance == false then found_suitable_task = false end if found_suitable_task then -- Handymen can take over other handymen tasks. If there any handyman that goes to water -- a plant in the other side of the hospital and later a second handyman near that plant becomes -- available for a new task and also chooses task to water that plant, then that second handyman -- will take away this task from first handymen to himself. The first handymen will be released -- from this task. if v.assignedHandyman then -- Another handyman is already assigned to this task -- Let's check if we can take this task away from him. if v.assignedHandyman.fired then v.assignedHandyman:unassignTask() elseif not v.assignedHandyman.hospital then -- This should normally never be the case. If the handyman doesn't belong to a hsopital -- then they should not have any tasks assigned to them however it was previously possible -- We need to tidy up to make sure the task can be reassigned. print("Warning: Orphaned handyman is still assigned a task. Removing.") v.assignedHandyman:unassignTask() else -- Check if handyman are closer to the task than the assigned handyman. local assignedDistance = self.world:getPathDistance(v.tile_x, v.tile_y, v.assignedHandyman.tile_x, v.assignedHandyman.tile_y) if assignedDistance ~= false then if v.assignedHandyman.profile.is_consultant then assignedDistance = assignedDistance / 2 elseif v.assignedHandyman.profile.is_junior then assignedDistance = assignedDistance * 2 end distance = distance * multiplier if distance + 5 > assignedDistance then found_suitable_task = false else distance = distance / multiplier end elseif task_type == "repairing" and v.assignedHandyman:getRoom() == self.world:getRoom(v.tile_x, v.tile_y) then -- Don't take repair task from another handyman if that assigned handyman already in the target room. found_suitable_task = false end end end if found_suitable_task then if first_attempt then if distance <= thresholdForStopping then return task_index end first_attempt, dist, index, priority = false, distance, task_index, v.priority elseif priority < v.priority or distance < dist then if distance < thresholdForStopping then return task_index end dist, index, priority = distance, task_index, v.priority end end end end return index end --! Find a handyman task by task type, position, and possibly the used object. --!param x (int) The X coordinate of the position. --!param y (int) The Y coordinate of the position. --!param taskType Type of the task. --!param obj (Object) If specified, the object used for doing the task. --! Since multiple litter objects may exist at the same tile, the object must be given when cleaning. function Hospital:getIndexOfTask(x, y, taskType, obj) local subTable = self:findHandymanTaskSubtable(taskType) for i, v in ipairs(subTable) do if v.tile_x == x and v.tile_y == y and (obj == nil or v.object == obj) then return i end end return -1 end --! Afterload function to initialize the owned plots. function Hospital:initOwnedPlots() self.ownedPlots = {} for _, v in ipairs(self.world.entities) do if v.tile_x and v.tile_y then local parcel = self.world.map.th:getCellFlags(v.tile_x, v.tile_y).parcelId local isAlreadyContained = false for _, v2 in ipairs(self.ownedPlots) do if parcel == v2 then isAlreadyContained = true break end end if isAlreadyContained == false and parcel ~= 0 and self.world.map.th:getPlotOwner(parcel) ~= 0 then table.insert(self.ownedPlots, parcel) end end end end --! Function that returns true if the room for the given disease --! has not been researched yet. --!param disease (string): the disease to be checked. function Hospital:roomNotYetResearched(disease) local req = self:checkDiseaseRequirements(disease) if type(req) == "table" and #req.rooms > 0 then for _, room_id in ipairs(req.rooms) do if not self:isRoomDiscovered(room_id) then return true end end end return false end --! Function that returns true if concentrating research on the disease is possible. --! @param disease (string): the disease to be checked. function Hospital:canConcentrateResearch(disease) local book = self.disease_casebook if not book[disease].pseudo and self:roomNotYetResearched(disease) then return true end if book[disease].drug then return book[disease].cure_effectiveness < 100 end local room if book[disease].pseudo then room = book[disease].disease.id:sub(6) else room = book[disease].disease.treatment_rooms[#book[disease].disease.treatment_rooms] end local research_progress = self.research.research_progress local object_type for obj, _ in pairs(self.world.available_rooms[room].objects_needed) do if self.world.object_types[obj].default_strength then object_type = obj break end end if object_type then local progress = research_progress[self.world.object_types[object_type]] return progress.start_strength < self.world.map.level_config.gbv.MaxObjectStrength end return false end --! Change patient happiness and hospital reputation based on price distortion. --! The patient happiness is adjusted proportionally. The hospital reputation --! can only be affected when the distortion level reaches some threshold. --!param patient (patient) The patient paying the bill. His/her happiness level --! is adjusted. --!param casebook (object) Disease casebook entry. It's used to display the --! localised disease name when Adviser tells the warning message. function Hospital:computePriceLevelImpact(patient, casebook) local price_distortion = patient:getPriceDistortion(casebook) patient:changeAttribute("happiness", -(price_distortion / 2)) if price_distortion < self.under_priced_threshold then if math.random(1, 100) == 1 then if casebook.price < 1 then self:advisePriceLevelImpact("under", casebook.disease.name) end self:changeReputation("under_priced") end elseif price_distortion > self.over_priced_threshold then if math.random(1, 100) == 1 then self:advisePriceLevelImpact("over", casebook.disease.name) self:changeReputation("over_priced") end elseif math.abs(price_distortion) <= 0.15 and math.random(1, 200) == 1 then -- When prices are well adjusted (i.e. abs(price distortion) <= 0.15) self:advisePriceLevelImpact("fair", casebook.disease.name) end end --! Notify patients of a change to hospital staff members --!param staff (Staff) Changed staff member subject of notification function Hospital:notifyOfStaffChange(staff) for _, patient in pairs(self.patients) do patient:notifyOfStaffChange(staff) end end --! Change the hospital value by an amount independent of a cost being incurred --!param changeValue (int) The amount the hospital value should change by function Hospital:changeValue(changeValue) self.value = self.value + changeValue end --! Collect the hospital level settings relevant for the next hospital --!return campaign_data (table) Hospital campaign data function Hospital:getCampaignData() local campaign_data = { player_salary = self.player_salary, message_popup = self.message_popup, handyman_popup = self.handyman_popup, hospital_littered = self.hospital_littered, has_seen_pay_rise = self.has_seen_pay_rise, policies = self.policies, } return campaign_data end --! Restore the hospital settings from the previous hospital --!param campaign_data (table) Hospital campaign data function Hospital:setCampaignData(campaign_data) for key, value in pairs(campaign_data) do self[key] = value end end --! Finds a random room with significantly long queues --!return room or nil The chosen room in the hospital or nil for no room busy enough function Hospital:getRandomBusyRoom() local long_queue_rooms, active_rooms, total_queue = {}, 0, 0 for _, room in pairs(self.world.rooms) do if room.is_active and room.door.queue then total_queue = total_queue + #room.door.queue active_rooms = active_rooms + 1 if #room.door.queue > 7 then long_queue_rooms[#long_queue_rooms + 1] = room end end end if #long_queue_rooms == 0 then return end local busy_threshold = 1.5 * total_queue / active_rooms local chosen_room = long_queue_rooms[math.random(1, #long_queue_rooms)] if #chosen_room.door.queue >= busy_threshold then return chosen_room end end --! Open the hospital function Hospital:open() self.opened = true end --! Check if the hospital is ready to accept patients function Hospital:canAcceptPatients() return self.opened and self:hasReceptionDesk(true) end --! Has this hospital received any patients yet? function Hospital:hadPatients() return self.num_visitors > 0 end --! Reset the death counts. This is used by a cheat to reset key lose conditions. function Hospital:resetDeathCount() self.num_deaths = 0 self.num_deaths_this_year = 0 self.statistics.deaths = 0 end ---- Stubs section - these functions have nothing to do here, are overridden in a derived class. --! Give advice to the user about the need to buy the first reception desk. function Hospital:msgNeedFirstReceptionDesk() end --! Give advice to the user about having bought a reception desk. function Hospital:msgReceptionDesk() end --! Give advice about having more desks. function Hospital:msgMultiReceptionDesks() end --! Give advice to the user about maintenance of plants. function Hospital:advisePlants() end --! Show the 'Gates to hell' animation. function Hospital:showGatesToHell(entity) end --! Advises the player. function Hospital:giveAdvice(msgs, rnd_frac, stay_up) end --! Give the user possibly a message about a cured patient. function Hospital:msgCured() end --! Give the user possibly a message about a dead patient. function Hospital:msgKilled() end function Hospital:adviseDiscoverDisease(disease) end --! Select a relevant message to be displayed to the user function Hospital:adviseBoilerBreakdown() end --! Announces a machine needing repair function Hospital:announceRepair(room) end function Hospital:onSpawnVIP() end --! Give visual warning that player doesn't have enough $ to build function Hospital:adviseCannotAffordPlot() end --! Tell the player, through the advisor, about the impact of casebook prices function Hospital:advisePriceLevelImpact(judgment, name) end --! Makes the raise request for a staff member function Hospital:makeRaiseRequest(amount, staff) end --! Announce to the player that a staff member is leaving the hospital function Hospital:announceStaffLeave(staff) end --! Makes the fax requesting player action for the patient who needs a diagnosis room function Hospital:makeNoTreatmentRoomFax(patient) end --! Makes the fax requesting player action for the patient who needs a diagnosis room function Hospital:makeNoDiagnosisRoomFax(patient) end --! Makes the fax at the start of an emergency function Hospital:makeEmergencyStartFax() end --! Makes the fax at the end of an emergency function Hospital:makeEmergencyEndFax(rescued_patients, total, max_bonus, earned) end --! Makes the fax which may spawn a VIP function Hospital:createVip() end --! Remove any message (fax) relating to this humanoid function Hospital:removeMessage(humanoid) end --! Called when the vip is out of the hospital grounds function Hospital:makeVipEndFax(vip_rating, name, cash_reward, vip_message) end --! Play a sound file function Hospital:playSound(sound) end --! The UI parts of earthquake ticks function Hospital:tickEarthquake(stage) end --! Give advice that a patient is waiting for the player to build a GP's office function Hospital:adviseNoGPOffice() end CorsixTH-0.70.0/CorsixTH/Lua/hospitals/000077500000000000000000000000001522247547500175505ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/hospitals/ai_hospital.lua000066400000000000000000000034131522247547500225500ustar00rootroot00000000000000--[[ Copyright (c) 2020 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "AIHospital" (Hospital) ---@type AIHospital local AIHospital = _G["AIHospital"] function AIHospital:AIHospital(competitor, world, avail_rooms, name) self:Hospital(world, avail_rooms, name) if name then self.name = name elseif _S.competitor_names[competitor] then self.name = _S.competitor_names[competitor] else self.name = "NONAME" end self.is_in_world = false end function AIHospital:spawnPatient() -- TODO: Simulate patient end function AIHospital:logTransaction() -- AI doesn't need a log of transactions, as it is only used for UI purposes end function AIHospital:afterLoad(old, new) if old < 145 then self.hosp_cheats = nil end Hospital.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/hospitals/player_hospital.lua000066400000000000000000001007201522247547500234520ustar00rootroot00000000000000--[[ Copyright (c) 2020 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") local AnnouncementPriority = _G["AnnouncementPriority"] class "PlayerHospital" (Hospital) ---@type PlayerHospital local PlayerHospital = _G["PlayerHospital"] local num_sitting_ratios = 15 -- Number of stored recent sitting ratio measurements. local ratio_interval = 2 -- Measurement interval in days. function PlayerHospital:PlayerHospital(world, avail_rooms, name) self:Hospital(world, avail_rooms, name) self.adviser_data = { -- Variables handling player advice. temperature_advice = nil, -- Whether the player received advice about room temp. reception_advice = nil, -- Whether advice was given about building the reception. cured_died_message = nil, -- Whether the adviser reported about a cure or death. sitting_ratios = {}, -- Measurements of recent sitting/standing ratios. sitting_index = 1 -- Next entry in 'sitting_ratios' to update. } self.win_declined = false -- Has not yet declined the level win fax self.announce_vip = 0 -- Number of spawned VIPs who need to be announced end --! Give advice to the player at the end of a day. --! Note: For patient/staff warmth checks, advice is only on one or the other per month function PlayerHospital:dailyAdviceChecks() local current_date = self.world:date() local day = current_date:dayOfMonth() -- Hold any advice back until the game has somewhat started. if current_date < Date(1, 5) then return end -- Track sitting / standing ratio of patients. if day % ratio_interval == 0 then -- Compute the ratio of today. local num_sitting, num_standing = self:countSittingStanding() local ratio = (num_sitting + num_standing > 10) and num_sitting / (num_sitting + num_standing) or nil -- Store the measured ratio. -- Once we hit num_sitting_ratios of index points, we wrap around self.adviser_data.sitting_ratios[self.adviser_data.sitting_index] = ratio self.adviser_data.sitting_index = (self.adviser_data.sitting_index >= num_sitting_ratios) and 1 or self.adviser_data.sitting_index + 1 end if day == 1 then self:_adviseMoney() end if day == 3 then self:_adviseStaffRoom() end -- Make players more aware of the need for radiators if day == 5 and self:countRadiators() == 0 then self:giveAdvice({_A.information.initial_general_advice.place_radiators}) end if day == 8 then self:_adviseToilets() end if day == 10 then self:_warnForLongQueues() end if day == 12 then self:_adviseBenches() end if day == 15 then self:_adviseHeatingForPatients() end if day == 18 then self:advisePlants(false) end if day == 20 then self:_adviseHeatingForStaff() end if day == 24 then self:_adviseDrinksMachines() end -- Reset advise flags at the end of the month. if day == 28 then self.adviser_data.temperature_advice = false self.adviser_data.no_gp_office = false self.adviser_data.no_doctor_no_gp_office = false end end --! Private function to check if our financial situation needs advice. --! This must occur after monthly maintenance and salary costs --! or it may give invalid advice function PlayerHospital:_adviseMoney() local current_date = self.world:date() local current_month = current_date:monthOfYear() if not self.world.free_build_mode then if self.balance < 2000 and self.balance >= -500 then local cashlow_advice = { _A.warnings.money_low, _A.warnings.money_very_low_take_loan, _A.warnings.cash_low_consider_loan, } self:giveAdvice(cashlow_advice) elseif self.balance < -2000 and current_month > 8 then -- TODO: Ideally this should be linked to the lose criteria for balance. self:giveAdvice({_A.warnings.bankruptcy_imminent}) elseif self.balance > 6000 and self.loan > 0 then self:giveAdvice({_A.warnings.pay_back_loan}) end end end --! Private function to warn about lack of a staff room. function PlayerHospital:_adviseStaffRoom() if self:countRoomOfType("staff_room", 1) > 0 then return end local staffroom_advice = { _A.warnings.build_staffroom, _A.warnings.need_staffroom, _A.warnings.staff_overworked, _A.warnings.staff_tired, } self:giveAdvice(staffroom_advice) end --! Private function to warn about a lack of toilets. function PlayerHospital:_adviseToilets() if self:countRoomOfType("toilets", 1) > 0 then return end local toilet_advice = { _A.warnings.need_toilets, _A.warnings.build_toilets, _A.warnings.build_toilet_now, } self:giveAdvice(toilet_advice) end --! Private function to check if patients have adequate seating function PlayerHospital:_adviseBenches() -- Compute average sitting ratio. local sum_ratios = 0 local index = 1 while index <= num_sitting_ratios do local ratio = self.adviser_data.sitting_ratios[index] if ratio == nil then sum_ratios = nil break else sum_ratios = sum_ratios + ratio end index = index + 1 end if sum_ratios ~= nil then -- Sufficient data available. local ratio = sum_ratios / num_sitting_ratios if ratio < 0.7 then -- At least 30% standing. local bench_advice = { _A.warnings.more_benches, _A.warnings.people_have_to_stand, } self:giveAdvice(bench_advice) elseif ratio > 0.9 then -- Praise having enough well placed seats about once a year. local bench_advice = { _A.praise.many_benches, _A.praise.plenty_of_benches, _A.praise.few_have_to_stand, } self:giveAdvice(bench_advice, 1 / 12) end end end --! Private function to check warmth of the patients. --! Only too hot or cold triggers advice function PlayerHospital:_adviseHeatingForPatients() if self.adviser_data.temperature_advice or self.heating.heating_broke then return end local warmth = self:getAveragePatientAttribute("warmth", 0.3) if warmth < 0.22 then local cold_advice = { _A.information.initial_general_advice.increase_heating, _A.warnings.patients_very_cold, _A.warnings.people_freezing, } self:giveAdvice(cold_advice) self.adviser_data.temperature_advice = true elseif warmth >= 0.36 then local hot_advice = { _A.information.initial_general_advice.decrease_heating, _A.warnings.patients_too_hot, _A.warnings.patients_getting_hot, } self:giveAdvice(hot_advice) self.adviser_data.temperature_advice = true end end --! Private function to check warmth of the staff. --! Only too hot or cold triggers advise function PlayerHospital:_adviseHeatingForStaff() if self.adviser_data.temperature_advice or self.heating.heating_broke then return end local warmth = self:getAverageStaffAttribute("warmth", 0.3) if warmth < 0.22 then self:giveAdvice({_A.warnings.staff_very_cold}) self.adviser_data.temperature_advice = true elseif warmth >= 0.36 then self:giveAdvice({_A.warnings.staff_too_hot}) self.adviser_data.temperature_advice = true end end --! Private function to check if patients are getting thirsty function PlayerHospital:_adviseDrinksMachines() local current_date = self.world:date() local thirst = self:getAveragePatientAttribute("thirst", 0) -- Increase need after the first year. local threshold = current_date:year() == 1 and 0.9 or 0.8 if thirst > threshold then self:giveAdvice({_A.warnings.patients_very_thirsty}) elseif thirst > 0.6 then local thirst_advice = { _A.warnings.patients_thirsty, _A.warnings.patients_thirsty2, } self:giveAdvice(thirst_advice) end end --! Private function to advise about long queues --! Rooms requiring a doctor occasionally trigger the generic message function PlayerHospital:_warnForLongQueues() local chosen_room = self:getRandomBusyRoom() if not chosen_room then return end chosen_room = chosen_room.room_info -- Required staff that is not nurse is doctor, researcher, surgeon or psych if chosen_room.required_staff and not chosen_room.required_staff["Nurse"] and math.random(1, 3) > 1 then local warn_msgs = { _A.warnings.queue_too_long_send_doctor:format(chosen_room.name), _A.staff_advice.need_doctors } self:giveAdvice(warn_msgs) else self.world.ui.adviser:say(_A.warnings.queues_too_long) end end --! Give advice to the user about maintenance of plants. --!param placed (bool) If a plant was placed function PlayerHospital:advisePlants(placed) if self:countStaffOfCategory("Handyman", 1) > 0 then return end local num_plants = self:countPlants() if num_plants == 0 or (placed and num_plants > 1) then return end self:giveAdvice({_A.staff_advice.need_handyman_plants}) end --! Give advice to the player at the end of a month. function PlayerHospital:monthlyAdviceChecks() local today = self.world:date() local current_month = today:monthOfYear() local current_year = today:year() if not self:hasReceptionDesk(true) then self:checkReceptionAdvice(current_month, current_year) -- No other checks should happen in this month return end end --! Make players aware of the need for a receptionist and desk. --!param current_month (int) Month of the year. --!param current_year (int) Current game year. function PlayerHospital:checkReceptionAdvice(current_month, current_year) if current_year > 1 then return end -- Playing too long. local num_receptionists = self:countStaffOfCategory("Receptionist", 1) if num_receptionists ~= 0 and current_month > 2 and not self.adviser_data.reception_advice then self:giveAdvice({_A.warnings.no_desk_6}) self.adviser_data.reception_advice = true elseif num_receptionists == 0 and current_month > 2 and self:countReceptionDesks() ~= 0 then self:giveAdvice({_A.warnings.no_desk_7}) elseif current_month == 3 then self:giveAdvice({_A.warnings.no_desk}, 1, true) elseif current_month == 8 then self:giveAdvice({_A.warnings.no_desk_1}, 1, true) elseif current_month == 11 then if self.visitors == 0 then self:giveAdvice({_A.warnings.no_desk_2}, 1, true) else self:giveAdvice({_A.warnings.no_desk_3}, 1, true) end end end --! Give advice to the user about the need to buy the first reception desk. function PlayerHospital:msgNeedFirstReceptionDesk() if self.adviser_data.reception_advice then return end if self:countReceptionDesks() == 0 then self.world.ui.adviser:say(_A.warnings.no_desk_4) self.adviser_data.reception_advice = true end end --! Give advice to the user about having bought a reception desk. function PlayerHospital:msgReceptionDesk() local num_receptionists = self:countStaffOfCategory("Receptionist", 1) if not self.world.ui.start_tutorial and num_receptionists == 0 then self:giveAdvice({_A.room_requirements.reception_need_receptionist}) elseif num_receptionists > 0 and self:countReceptionDesks() == 1 and not self.adviser_data.reception_advice and self.world:date():monthOfGame() > 3 then self:giveAdvice({_A.warnings.no_desk_5}) self.adviser_data.reception_advice = true end end --! Give advice about having more desks. function PlayerHospital:msgMultiReceptionDesks() local num_desks = #self:getReceptionDesks() -- Compute total queue length at staffed receptions. local queue_total = 0 for _, desk in ipairs(self:getReceptionDesks(true)) do queue_total = queue_total + #desk.queue end local receptionists = self:countStaffOfCategory("Receptionist") if (receptionists > 1 and num_desks > 0) or (receptionists > 0 and num_desks > 1) then local queue_avg = math.floor(queue_total / num_desks) if receptionists < num_desks and queue_avg > 5 then self.world.ui.adviser:say(_A.warnings.reception_bottleneck) elseif queue_avg > 4 then self.world.ui.adviser:say(_A.warnings.queue_too_long_at_reception) elseif receptionists > num_desks then self.world.ui.adviser:say(_A.warnings.another_desk) end end end --! Show the 'Gates to hell' animation. --!param entity (Entity) Gates to hell. function PlayerHospital:showGatesToHell(entity) local anim_func = --[[persistable:lava_hole_spawn_animation_end]] function(anim_entity) anim_entity:setAnimation(1602) end entity:playEntitySounds("LAVA00*.WAV", {0,1350,1150,950,750,350}, {0,1450,1250,1050,850,450}, 40) entity:setTimer(TheApp.animation_manager:getAnimLength(2550), anim_func) entity:setAnimation(2550) end --! Advises the player. --!param msgs (array of string) Messages to select from. --!param rnd_frac (optional float in range (0, 1]) Fraction of times that the -- call actually says something. --!param stay_up (bool) If true, let the adviser remain visible afterwards. --!return (boolean) Whether a message was given to the user. function PlayerHospital:giveAdvice(msgs, rnd_frac, stay_up) local max_rnd = #msgs if rnd_frac and rnd_frac > 0 and rnd_frac < 1 then -- Scale by the fraction. max_rnd = math.floor(max_rnd / rnd_frac) end local index = (max_rnd == 1) and 1 or math.random(1, max_rnd) if index <= #msgs then self.world.ui.adviser:say(msgs[index], stay_up) return true end return false end --! Give the user possibly a message about a cured patient. function PlayerHospital:msgCured() self.world.ui:playSound("cheer.wav") -- This sound is always heard local num_cured = math.floor(self.num_cured) if num_cured == 1 then -- First cure is always reported. self:giveAdvice({_A.information.first_cure}) elseif num_cured > 1 and not self.adviser_data.cured_died_message then local cured_msgs = { _A.level_progress.another_patient_cured:format(num_cured), _A.praise.patients_cured:format(num_cured) } self.adviser_data.cured_died_message = self:giveAdvice(cured_msgs, 2/15) end end --! Give the user possibly a message about a dead patient. function PlayerHospital:msgKilled() self.world.ui:playSound("boo.wav") -- this sound is always heard if self.num_deaths < 1 then -- First death is always reported. self:giveAdvice({_A.information.first_death}) elseif self.num_deaths > 1 and not self.adviser_data.cured_died_message then local died_msgs = { _A.warnings.many_killed:format(self.num_deaths), _A.level_progress.another_patient_killed:format(self.num_deaths) } self.adviser_data.cured_died_message = self:giveAdvice(died_msgs, 6/10) end end function PlayerHospital:adviseDiscoverDisease(disease) -- Generate a message about the discovery local message = { {text = _S.fax.disease_discovered.discovered_name:format(disease.name)}, {text = disease.cause, offset = 12}, {text = disease.symptoms, offset = 12}, {text = disease.cure, offset = 12}, choices = { {text = _S.fax.disease_discovered.close_text, choice = "close"}, }, } self.world.ui.bottom_panel:queueMessage("disease", message, nil, 25*24, 1) -- If the drug casebook is open, update it. local window = self.world.ui:getWindow(UICasebook) if window then window:updateDiseaseList() end end --! Select a relevant message to be displayed to the user --!param broken_heat (0 or 1) Boiler output due to being broken. function PlayerHospital:adviseBoilerBreakdown(broken_heat) local ui = self.world.ui if broken_heat == 0 then ui.adviser:say(_A.boiler_issue.minimum_heat) ui:playRandomAnnouncement({ "sorry002.wav", "sorry004.wav" }) else ui.adviser:say(_A.boiler_issue.maximum_heat) ui:playRandomAnnouncement({ "sorry003.wav", "sorry004.wav" }) end end --! Announces a machine needing repair --!param room The room of the machine function PlayerHospital:announceRepair(room) local sound = room.room_info.handyman_call_sound local earthquake = self.world.earthquake self.world.ui:playAnnouncement("machwarn.wav", AnnouncementPriority.Critical) -- If an earthquake is happening don't play the call sound to prevent spamming if earthquake:isActive() and earthquake.warning_timer == 0 then return end if self:countStaffOfCategory("Handyman", 1) == 0 then return end if sound then self.world.ui:playAnnouncement(sound, AnnouncementPriority.Critical) end end function PlayerHospital:onSpawnVIP() self.announce_vip = self.announce_vip + 1 end --! Called at the end of each day. function PlayerHospital:onEndDay() if self:canAcceptPatients() then -- Are we providing advice today? self:dailyAdviceChecks() -- If we haven't spawned our first patient yet for the player make it happen so -- they don't wait too long if self.num_visitors == 0 then self.world:spawnPatient(self) end end -- check if we still have to announce VIP visit if self.announce_vip > 0 then -- check if the VIP is in the building yet for _, e in ipairs(self.world.entities) do if class.is(e, Vip) and e.announced == false and self:isInHospital(e.tile_x, e.tile_y) then -- play VIP arrival sound and show tooltips local ui = self.world.ui -- there is also vip008 which announces a man from the ministry ui:playRandomAnnouncement({ "vip001.wav", "vip002.wav", "vip003.wav", "vip004.wav", "vip005.wav" }, AnnouncementPriority.High) if self.num_vips < 1 then ui.adviser:say(_A.information.initial_general_advice.first_VIP) else ui.adviser:say(_A.information.vip_arrived:format(e.name)) end e.announced = true self.announce_vip = self.announce_vip - 1 end end end -- Look for work for staff who have nothing to do for _, staff in ipairs(self.staff) do -- Handymen currently have their own method to look for work if not class.is(staff, Handyman) and staff:isIdle() then self.world.dispatcher:answerCall(staff) end end Hospital.onEndDay(self) end -- Called at the end of each day. function PlayerHospital:onEndMonth() -- Advise the player on the need for a staffed reception desk and cash flow. self:monthlyAdviceChecks() self.adviser_data.cured_died_message = nil -- Enable the message again. -- Check if a player has won the level at months 3, 6 and 9. The annual report -- window will perform this check at month 12 when it has been closed. -- If the offer is declined then the next check is at month 6 and the annual report. local check_months = { [3] = not self.win_declined, [6] = true, [9] = not self.win_declined } if check_months[self.world.game_date:monthOfYear()] then self.world:checkIfGameWon() end Hospital.onEndMonth(self) end --! Give visual warning that player doesn't have enough $ to build -- Let the message remain until cancelled by the player as it is being displayed behind the town map function PlayerHospital:adviseCannotAffordPlot() self.world.ui.adviser:say(_A.warnings.cannot_afford_2, true, true) end --! Tell the player, through the advisor, about the impact of casebook prices --!param judgment (string - under, over, fair) The judgment of the price, -- from Hospital:computePriceLevelImpact --!param name (string) The name of the casebook entry of the diagnosis or disease function PlayerHospital:advisePriceLevelImpact(judgment, name) local message if judgment == "under" then message = _A.warnings.low_prices:format(name) elseif judgment == "over" then message = _A.warnings.high_prices:format(name) else assert(judgment == "fair", "Price level impact judgements must be under, over or fair") message = _A.warnings.fair_prices:format(name) end self.world.ui.adviser:say(message) end --! Makes the raise request for a staff member --!param amount (num) the requested raise increase --!param staff (table) the staff member function PlayerHospital:makeRaiseRequest(amount, staff) -- Show advice if it is the first time the player has experienced -- a staff member requesting a raise. -- Only show the help if the player is playing the campaign. if not self.has_seen_pay_rise and tonumber(self.world.map.level_number) then self.world.ui.adviser:say(_A.information.pay_rise) self.has_seen_pay_rise = true end self.world.ui.bottom_panel:queueMessage("strike", amount, staff) end --! Announce to the player that a staff member is leaving the hospital --!param staff (table) The staff member function PlayerHospital:announceStaffLeave(staff) self.world.ui:playRandomAnnouncement(staff.leave_sounds, staff.leave_priority) end --! Makes the fax requesting player action for the patient who needs a diagnosis room --!param patient (table) function PlayerHospital:makeNoTreatmentRoomFax(patient) local strings = _S.fax.disease_discovered_patient_choice -- Can this room be built right now? What is then missing? local output_text = strings.can_not_cure local req = self:checkDiseaseRequirements(patient.disease.id) local research_enabled = false if req then research_enabled = (self:countRoomOfType("research", 1) > 0 and self:countStaffOfCategory("Researcher", 1) > 0) if #req.rooms == 1 then local room_name, required_staff, staff_name = self.world:getRoomNameAndRequiredStaffName(req.rooms[1]) if req.staff[required_staff] or 0 > 0 then output_text = strings.need_to_build_and_employ:format(room_name, staff_name) else output_text = strings.need_to_build:format(room_name) end elseif #req.rooms == 0 and next(req.staff) then output_text = strings.need_to_employ:format(StaffProfile.translateStaffClass(next(req.staff))) end end local message = { {text = strings.disease_name:format(patient.disease.name)}, {text = " "}, {text = output_text}, {text = strings.what_to_do_question}, choices = { {text = strings.choices.send_home, choice = "send_home"}, {text = strings.choices.wait, choice = "wait"}, {text = strings.choices.research, choice = "research", enabled = research_enabled}, }, } -- Ok, send the message in all channels. self.world.ui.bottom_panel:queueMessage("information", message, patient) end --! Makes the fax requesting player action for the patient who needs a diagnosis room --!param patient (table) function PlayerHospital:makeNoDiagnosisRoomFax(patient) local guess_enabled = self.disease_casebook[patient.disease.id].discovered local diag_failed = _S.fax.diagnosis_failed local message = { {text = diag_failed.situation}, {text = " "}, {text = diag_failed.what_to_do_question}, choices = { {text = diag_failed.choices.send_home, choice = "send_home"}, {text = diag_failed.choices.take_chance, choice = "guess_cure", enabled = guess_enabled}, {text = diag_failed.choices.wait, choice = "wait"}, }, } if guess_enabled then table.insert(message, 3, {text = diag_failed.partial_diagnosis_percentage_name :format(math.round(patient.diagnosis_progress * 100), patient.disease.name)}) end self.world.ui.bottom_panel:queueMessage("information", message, patient) end --! Makes the fax at the start of an emergency function PlayerHospital:makeEmergencyStartFax() -- The last room in the list of treatment rooms is considered when checking for availability. -- It works for all original diseases, but if we introduce new multiple room diseases it might break. -- TODO: Make it work for all kinds of lists of treatment rooms. -- TODO: Change to make use of Hospital:checkDiseaseRequirements local no_rooms = #self.emergency.disease.treatment_rooms local room_name, required_staff, staff_name = self.world :getRoomNameAndRequiredStaffName(self.emergency.disease.treatment_rooms[no_rooms]) local staff_available = self:countStaffOfCategory(required_staff) > 0 -- Check so that all rooms in the list are available if self:countRoomOfType(self.emergency.disease.treatment_rooms[no_rooms], 1) > 0 then room_name = nil end local casebook = self.disease_casebook[self.emergency.disease.id] local added_info = casebook.drug and _S.fax.emergency.cure_possible_drug_name_efficiency :format(self.emergency.disease.name, casebook.cure_effectiveness) or _S.fax.emergency.cure_possible if room_name then if staff_available then added_info = _S.fax.emergency.cure_not_possible_build:format(room_name) .. "." else added_info = _S.fax.emergency.cure_not_possible_build_and_employ: format(room_name, staff_name) .. "." end elseif not staff_available then added_info = _S.fax.emergency.cure_not_possible_employ:format(staff_name) .. "." end local one_or_many_victims_msg if self.emergency.victims == 1 then one_or_many_victims_msg = _S.fax.emergency.num_disease_singular :format(self.emergency.disease.name) else one_or_many_victims_msg = _S.fax.emergency.num_disease :format(self.emergency.victims, self.emergency.disease.name) end local message = { {text = _S.fax.emergency.location:format(_S.fax.emergency.locations[math.random(1,9)])}, {text = one_or_many_victims_msg }, {text = added_info}, {text = self.world.free_build_mode and _S.fax.emergency.free_build or _S.fax.emergency.bonus:format(self.emergency.bonus * self.emergency.victims)}, choices = { {text = _S.fax.emergency.choices.accept, choice = "accept_emergency"}, {text = _S.fax.emergency.choices.refuse, choice = "refuse_emergency"}, }, } -- Automatically refuse after 16 days self.world.ui.bottom_panel:queueMessage("emergency", message, nil, Date.hoursPerDay() * 16, 2) end --! Makes the fax at the end of an emergency function PlayerHospital:makeEmergencyEndFax(rescued_patients, total, max_bonus, earned) local message = { {text = _S.fax.emergency_result.saved_people:format(rescued_patients, total)}, {text = self.world.free_build_mode and "" or _S.fax.emergency_result.earned_money :format(max_bonus, earned)}, choices = { {text = _S.fax.emergency_result.close_text, choice = "close"}, }, } self.world.ui.bottom_panel:queueMessage("report", message, nil, Date.hoursPerDay() * 25, 1) end --! Makes the fax which may spawn a VIP function PlayerHospital:createVip() local vipName = _S.vip_names[math.random(1,10)] local message = { {text = _S.fax.vip_visit_query.vip_name:format(vipName)}, choices = { {text = _S.fax.vip_visit_query.choices.invite, choice = "accept_vip", additionalInfo = {name=vipName}}, {text = _S.fax.vip_visit_query.choices.refuse, choice = "refuse_vip", additionalInfo = {name=vipName}} }, } -- Automatically accept after 20 days self.world.ui.bottom_panel:queueMessage("personality", message, nil, Date.hoursPerDay() * 20, 1) end --! Remove any message (fax) relating to this humanoid --!param humanoid (table) The humanoid function PlayerHospital:removeMessage(humanoid) if humanoid.message then self.world.ui.bottom_panel:deleteMessage(humanoid) end end --! Called when the vip is out of the hospital grounds and ready to make their report --!param vip_rating (int) --!param name (string) --!param cash_reward (int) --!param vip_message (int) function PlayerHospital:makeVipEndFax(vip_rating, name, cash_reward, vip_message) local message -- First of all there's a special message if we're in free build mode. if self.world.free_build_mode then message = { {text = _S.fax.vip_visit_result.remarks.free_build[math.random(1, 3)]}, } elseif vip_rating <= 7 then message = { {text = _S.fax.vip_visit_result.remarks[vip_message]}, {text = _S.fax.vip_visit_result.rep_boost}, {text = _S.fax.vip_visit_result.cash_grant:format(cash_reward)}, } elseif vip_rating >= 8 and vip_rating < 11 then -- Dont tell player about any rep change in this range message = { {text = _S.fax.vip_visit_result.remarks[vip_message]}, } else message = { {text = _S.fax.vip_visit_result.remarks[vip_message]}, {text = _S.fax.vip_visit_result.rep_loss}, } end table.insert(message, 1, {text = _S.fax.vip_visit_result.vip_remarked_name:format(name)}) message["choices"] = {{text = _S.fax.vip_visit_result.close_text, choice = "close"}} self.world.ui.bottom_panel:queueMessage("report", message, nil, Date.hoursPerDay() * 20, 1) end --! Play a sound file function PlayerHospital:playSound(sound) if self.world.app.config.play_sounds then self.world.app.audio:playSound(sound) end end --! The UI parts of earthquake ticks --!param stage (string) Stage of the active earthquake. This must be one of the following, -- "warning_start", "main_start", "end", "pause", "small_damage", "large damage", "sound" function PlayerHospital:tickEarthquake(stage) local ui = self.world.ui local announcements = { "quake001.wav", "quake002.wav", "quake003.wav", "quake004.wav", } -- Start of earthquakes if stage == "warning_start" then ui:beginShakeScreen(0.2) ui:playRandomAnnouncement(announcements, AnnouncementPriority.Critical) elseif stage == "main_start" then ui:playRandomAnnouncement(announcements, AnnouncementPriority.Critical) -- At the end of the warning or main earthquake, or on game pause, stop all screen movement elseif stage == "end" or stage == "pause" then ui:endShakeScreen() -- All earthquakes start and end small (small earthquakes never become -- larger), so when there has been less than 2 damage applied or only -- 2 damage remaining to be applied, move the screen with less -- intensity than otherwise. elseif stage == "small_damage" then ui:beginShakeScreen(0.5) elseif stage == "large_damage" then ui:beginShakeScreen(1) elseif stage == "sound" then -- Play the earthquake sound. It has different names depending on what the language contains. if self.world.app.audio:soundExists("quake2.wav") then ui:playSound("quake2.wav") else ui:playSound("quake.wav") end else assert(false, "Unknown stage: " .. (stage or "nil")) end end --! Give advice that a patient is waiting for the player to build a GP's office -- Called when a patient has passed reception and is waiting for a room to be built. -- Each piece of advice is only given once per month function PlayerHospital:adviseNoGPOffice() if self:countStaffOfCategory("Doctor", 1) > 0 then -- Doctor without a room if not self.adviser_data.no_gp_office then self.world.ui.adviser:say(_A.warnings.no_gp_office) self.adviser_data.no_gp_office = true end else -- No room or doctor if not self.adviser_data.no_doctor_no_gp_office then self.world.ui.adviser:say(_A.warnings.no_doctor_no_gp_office) self.adviser_data.no_doctor_no_gp_office = true end end end function PlayerHospital:afterLoad(old, new) if old < 146 then self.adviser_data = { temperature_advise = nil, sitting_ratios = {}, sitting_index = 1 } end if old < 147 then -- Copy value of the previous name of the variable. self.adviser_data.reception_advice = self.receptionist_msg end if old < 148 then self.adviser_data.cured_died_message = nil end if old < 149 then self.win_declined = false -- Has not yet declined the level win fax end if old < 159 then self.adviser_data.reception_advice = self.adviser_data.reception_advice or self.receptionist_msg end if old < 211 then -- Serious Radiation epidemics could exist in old saves and cause a crash local serious_radiation = TheApp.diseases["serious_radiation"] if self.epidemic and self.epidemic.disease == serious_radiation then -- Tell the player somehow we ended the epidemic, EPI0008 is most fitting self.world.ui:playAnnouncement("EPID008.wav", AnnouncementPriority.Critical) self.world:gameLog("Notice: Removing active epidemic for Serious Radiation as it may crash the game due to a bug.") end self:cancelEpidemics(serious_radiation) end -- Refresh the cheat system every load local old_active_cheats = self.hosp_cheats and self.hosp_cheats.active_cheats or {} self.hosp_cheats = Cheats(self) self.hosp_cheats.active_cheats = old_active_cheats Hospital.afterLoad(self, old, new) end CorsixTH-0.70.0/CorsixTH/Lua/humanoid_action.lua000066400000000000000000000123621522247547500214120ustar00rootroot00000000000000--[[ Copyright (c) 2016 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Humanoid action base class. class "HumanoidAction" ---@type HumanoidAction local HumanoidAction = _G["HumanoidAction"] --! Construct a humanoid action (base class constructor). --!param name (str) Name of the action. function HumanoidAction:HumanoidAction(name) assert(type(name) == "string", "Invalid value for parameter 'name'") self.name = name self.count = nil -- 'nil' means 'forever' (until finished), else the number to perform. self.must_happen = false -- If true, action cannot be skipped. Still can be interrupted/cancelled by pick up. self.loop_callback = nil -- Periodic callback to check for termination conditions. self.after_use = nil -- Callback for performing updates afterwards. self.is_leaving = false -- Whether the humanoid is leaving. self.no_truncate = false -- If set, disable shortening the action. self.uninterruptible = false -- If true, can not be interrupted/cancelled by pickup. end --! Set the number of times the action should happen. --!param count (int or nil) Set to 'nil' if 'forever', else integer count. --!return (action) Returning self, for daisy-chaining. function HumanoidAction:setCount(count) assert(count == nil or type(count) == "number", "Invalid value for parameter 'count'") self.count = count return self end --! Set the 'must happen' flag (that is, action cannot be skipped). --!param must_happen (bool) Whether or not the action must happen. --!return (action) Returning self, for daisy-chaining. function HumanoidAction:setMustHappen(must_happen) assert(type(must_happen) == "boolean", "Invalid value for parameters 'must_happen'") self.must_happen = must_happen return self end --! Set the 'uninterruptible' flag (that is, action cannot be canceled or truncated by pickup). --!param uninterruptible (bool) Whether or not the action uninterruptible. --!return (action) Returning self, for daisy-chaining. function HumanoidAction:setUninterruptible(uninterruptible) assert(type(uninterruptible) == "boolean", "Invalid value for parameters 'uninterruptible'") self.uninterruptible = uninterruptible return self end --! Set the callback for checking termination conditions. --!param loop_callback (func) Callback function that is called each iteration to check for --! termination conditions. --!return (action) Returning self, for daisy-chaining. function HumanoidAction:setLoopCallback(loop_callback) assert(loop_callback == nil or type(loop_callback) == "function", "Invalid value for parameter 'loop_callback'") self.loop_callback = loop_callback return self end --! Set the callback for performing updates afterwards. --!param after_use (func) Callback function that is called after the action ends. --!return (action) Returning self, for daisy-chaining. function HumanoidAction:setAfterUse(after_use) assert(after_use == nil or type(after_use) == "function", "Invalid value for parameter 'after_use'") self.after_use = after_use return self end --! Set whether the humanoid is leaving. --!param is_leaving (bool) Whether or not the humanoid is leaving. If not specified, value is true. --!return (action) Returning self, for daisy-chaining. function HumanoidAction:setIsLeaving(is_leaving) assert(type(is_leaving) == "boolean", "Invalid value for parameter 'is_leaving'") self.is_leaving = is_leaving return self end --! Do not allow truncating the action. --!return (action) Returning self, for daisy-chaining. function HumanoidAction:disableTruncate() self.no_truncate = true return self end function HumanoidAction:afterLoad(old, new) if old < 112 and new >= 112 then self.is_leaving = not not self.is_leaving self.must_happen = not not self.must_happen self.no_truncate = not not self.no_truncate self.saved_must_happen = not not self.saved_must_happen self.idle_must_happen = not not self.idle_must_happen if self.name == "walk" then self.is_entering = not not self.is_entering end end if old < 168 and class.type(self) == "KnockDoorAction" then -- When the knock-door animation is running in the action at the time of -- save, the callback at the end of the animation doesn't have a valid -- state variable and crashes. if not self.state then self.state = 1 end end end CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/000077500000000000000000000000001522247547500210665ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/answer_call.lua000066400000000000000000000032501522247547500240630ustar00rootroot00000000000000--[[ Copyright (c) 2010 Sam Wong Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "AnswerCallAction" (HumanoidAction) ---@type AnswerCallAction local AnswerCallAction = _G["AnswerCallAction"] function AnswerCallAction:AnswerCallAction() self:HumanoidAction("answer_call") end local function action_answer_call_start(action, humanoid) action.must_happen = true CallsDispatcher.onCheckpointCompleted(action, humanoid) if not humanoid.world.dispatcher:answerCall(humanoid) then local room = humanoid:getRoom() if room then humanoid:queueAction(room:createLeaveAction()) end humanoid:queueAction(MeanderAction()) end humanoid:finishAction(action) end return action_answer_call_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/call_checkpoint.lua000066400000000000000000000035231522247547500247160ustar00rootroot00000000000000--[[ Copyright (c) 2010 Sam Wong Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "CallCheckPointAction" (HumanoidAction) ---@type CallCheckPointAction local CallCheckPointAction = _G["CallCheckPointAction"] function CallCheckPointAction:CallCheckPointAction(call, on_remove) assert(call == nil or (type(call) == "table" and type(call.key) == "string"), "Invalid value for parameter 'call'") assert(type(on_remove) == "function", "Invalid value for parameter 'on_remove'") self:HumanoidAction("call_checkpoint") self.call = call -- The call the humanoid is on (humanoid.on_call) or nil self.on_remove = on_remove -- Interrupt handler to use. end local function action_call_checkpoint_start(action, humanoid) action.must_happen = true CallsDispatcher.onCheckpointCompleted(action.call) humanoid:finishAction(action) end return action_call_checkpoint_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/check_watch.lua000066400000000000000000000037251522247547500240430ustar00rootroot00000000000000--[[ Copyright (c) 2011 Mark "Mark.L" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "CheckWatchAction" (HumanoidAction) ---@type CheckWatchAction local CheckWatchAction = _G["CheckWatchAction"] function CheckWatchAction:CheckWatchAction() self:HumanoidAction("check_watch") self:setMustHappen(true) end local action_check_watch_end = permanent"action_check_watch_end"( function(humanoid) humanoid:finishAction() end) local function action_check_watch_start(action, humanoid) if math.random(0, 1) == 1 then humanoid.last_move_direction = "east" else humanoid.last_move_direction = "south" end assert(humanoid.check_watch_anim, "Error: watch checking animation for humanoid " .. humanoid.humanoid_class) action.must_happen = true humanoid:setAnimation(humanoid.check_watch_anim, humanoid.last_move_direction == "east" and 0 or 1) humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.check_watch_anim), action_check_watch_end) end return action_check_watch_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/die.lua000066400000000000000000000311011522247547500223260ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "DieAction" (HumanoidAction) ---@type DieAction local DieAction = _G["DieAction"] function DieAction:DieAction() self:HumanoidAction("die") end local action_die_tick; action_die_tick = permanent"action_die_tick"( function(humanoid) local action = humanoid:getCurrentAction() local phase = action.phase local mirror = humanoid.last_move_direction == "east" and 0 or 1 if phase == 0 then action.phase = 1 if humanoid.die_anims.extra_east ~= nil then humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.die_anims.extra_east), action_die_tick) humanoid:setAnimation(humanoid.die_anims.extra_east, mirror) else action_die_tick(humanoid) end elseif phase == 1 then action.phase = 2 humanoid:setTimer(11, action_die_tick) humanoid:setAnimation(humanoid.die_anims.rise_east, mirror) elseif phase == 2 then -- Female slack tongue head layer is missing from wings animation onwards -- So we change the head to its standard equivalent if humanoid:isType("Slack Female Patient") then humanoid:setLayer(0, humanoid.layers[0] - 8) end action.phase = 3 humanoid:setTimer(11, action_die_tick) humanoid:setAnimation(humanoid.die_anims.wings_east, mirror) elseif phase == 3 then action.phase = 4 humanoid:setTimer(15, action_die_tick) humanoid:setAnimation(humanoid.die_anims.hands_east, mirror) elseif phase == 4 then action.phase = 5 humanoid:setTimer(30, action_die_tick) humanoid:setAnimation(humanoid.die_anims.fly_east, mirror) humanoid:setTilePositionSpeed(humanoid.tile_x, humanoid.tile_y, nil, nil, 0, -4) else humanoid:despawn() humanoid.world:destroyEntity(humanoid) end end) local action_die_tick_reaper; action_die_tick_reaper = permanent"action_die_tick_reaper"( function(humanoid) local action = humanoid:getCurrentAction() local mirror = humanoid.last_move_direction == "east" and 0 or 1 local phase = action.phase if phase == 0 then action.phase = 1 if humanoid.die_anims.extra_east ~= nil then humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.die_anims.extra_east), action_die_tick_reaper) humanoid:setAnimation(humanoid.die_anims.extra_east, mirror) else action_die_tick_reaper(humanoid) end --1: The patient stays on the ground until phase 5: elseif phase == 1 then action.phase = 2 if not humanoid:isType("Standard Male Patient") then humanoid:setType("Standard Male Patient") end humanoid:setAnimation(humanoid.on_ground_anim, mirror) action_die_tick_reaper(humanoid) --2: Spawn the grim reaper and the lava hole, if no suitable spawn points are found a heaven death will be started: elseif phase == 2 then local holes_orientation local hole_x, hole_y local grim_x, grim_y local grim_use_tile_x, grim_use_tile_y local grim_spawn_idle_direction local mirror_grim = 0 local spawn_scenarios = { {"south", humanoid.tile_x, humanoid.tile_y + 4, 1, 0, "west", -1, 0, {{after_spawn_idle_direction = "east", hole_x_offset = -5, hole_y_offset = 2}, {hole_x_offset = 0, hole_y_offset = 3}} }, {"east", humanoid.tile_x + 4, humanoid.tile_y, 0, 1, "north", 0, -1, {{hole_x_offset = 3, hole_y_offset = 0}} } } --- -- @param spawn_scenario {holes_orientation, find_hole_spawn_x, find_hole_spawn_y, g_use_x_offset, g_use_y_offset, grim_face_hole_dir, mirror_grim, p_use_x_offset, p_use_y_offset, find_grim_spawn_attempts} --- local function tryToUseHellDeathSpawnScenario(spawn_scenario) holes_orientation = spawn_scenario[1] hole_x, hole_y = humanoid.world.pathfinder:findIdleTile(spawn_scenario[2], spawn_scenario[3], 0) if hole_x and humanoid.world:canNonSideObjectBeSpawnedAt(hole_x, hole_y, "gates_to_hell", holes_orientation, 0, 0) then if holes_orientation == "south" then mirror_grim = 1 end grim_use_tile_x = hole_x + spawn_scenario[4] grim_use_tile_y = hole_y + spawn_scenario[5] humanoid.hole_use_tile_x = hole_x + spawn_scenario[7] humanoid.hole_use_tile_y = hole_y + spawn_scenario[8] -- tile can't be in a room and must be accessible by the patient if not humanoid.world:getPathDistance(humanoid.tile_x, humanoid.tile_y, humanoid.hole_use_tile_x, humanoid.hole_use_tile_y) or humanoid.world:getRoom(humanoid.hole_use_tile_x, humanoid.hole_use_tile_y) then return false end -- ensure grim won't be in a room if humanoid.world:getRoom(grim_use_tile_x, grim_use_tile_y) then return false end --Ensure that the lava hole is passable on at least one of its sides to prevent it from blocking 1 tile wide corridors: humanoid.world.map:setCellFlags(hole_x, hole_y, {passable = false}) local hole_has_passable_side = humanoid.world:getPathDistance(grim_use_tile_x, grim_use_tile_y, humanoid.hole_use_tile_x, humanoid.hole_use_tile_y) == 4 humanoid.world.map:setCellFlags(hole_x, hole_y, {passable = true}) if not hole_has_passable_side then return false end --Try to find grim a spawn point which will allow him to walk to his lava hole use tile: local grim_cant_walk_to_use_tile = true for _, find_grim_spawn_attempt in ipairs(spawn_scenario[9]) do grim_spawn_idle_direction = find_grim_spawn_attempt.after_spawn_idle_direction or spawn_scenario[6] grim_x, grim_y = humanoid.world.pathfinder:findIdleTile(hole_x + find_grim_spawn_attempt.hole_x_offset, hole_y + find_grim_spawn_attempt.hole_y_offset, 0) if grim_x and not humanoid.world:getRoom(grim_x, grim_y) and humanoid.world:getPathDistance(grim_x, grim_y, grim_use_tile_x, grim_use_tile_y) then grim_cant_walk_to_use_tile = false break end end -- Else spawn him on it: if grim_cant_walk_to_use_tile then grim_spawn_idle_direction = spawn_scenario[6] grim_x = grim_use_tile_x grim_y = grim_use_tile_y end return true end return false end local usable_scenario_found = false for _, spawn_scenario in ipairs(spawn_scenarios) do if not usable_scenario_found then usable_scenario_found = tryToUseHellDeathSpawnScenario(spawn_scenario) end end if not usable_scenario_found then action_die_tick(humanoid) return end --Spawn the grim reaper and the lava hole: local lava_hole = humanoid.world:newObject("gates_to_hell", hole_x, hole_y, holes_orientation) local grim_reaper = humanoid.world:newEntity("GrimReaper", 1660, 2) local point_dir = {x = grim_x, y = grim_y, direction = grim_spawn_idle_direction} grim_reaper:setNextAction(IdleSpawnAction(1660, point_dir):setCount(40)) --Initialise the grim reaper: grim_reaper:setHospital(humanoid.world:getLocalPlayerHospital()) grim_reaper.lava_hole = lava_hole grim_reaper.lava_hole.orientation = holes_orientation grim_reaper.use_tile_x = grim_use_tile_x grim_reaper.use_tile_y = grim_use_tile_y grim_reaper.mirror = mirror_grim grim_reaper.patient = humanoid humanoid.grim_reaper = grim_reaper action.phase = 3 action_die_tick_reaper(humanoid) --3: The grim reaper walks to his lava hole use tile and then stands idle waiting for phase 6: elseif phase == 3 then action.phase = 4 local grim = humanoid.grim_reaper if grim.tile_x ~= grim.use_tile_x or grim.tile_y ~= grim.use_tile_y then grim:queueAction(WalkAction(grim.use_tile_x, grim.use_tile_y):disableTruncate()) end local loop_callback_wait = --[[persistable:reaper_wait]]function() grim:setAnimation(1002, grim.mirror) action_die_tick_reaper(humanoid) end grim:queueAction(IdleAction():setLoopCallback(loop_callback_wait)) --4: There will be a brief pause before the patient stands up: elseif phase == 4 then action.phase = 5 humanoid:setTimer(20, action_die_tick_reaper) -- 5: The dead patient will now stand up: elseif phase == 5 then action.phase = 6 humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.die_anims.rise_hell_east), action_die_tick_reaper) humanoid:setAnimation(humanoid.die_anims.rise_hell_east, mirror) --6: The dead patient will now walk in to the lava hole, falling in as the grim reaper does his "sending patient to hell" animation: elseif phase == 6 then local grim = humanoid.grim_reaper local lava_hole = grim.lava_hole --The grim reaper's final actions: local loop_callback_swipe =--[[persistable:reaper_swipe]]function() grim:setAnimation(1670, grim.mirror) end grim:queueAction(IdleAction():setCount(TheApp.animation_manager:getAnimLength(1670)):setLoopCallback(loop_callback_swipe)) local loop_callback_leave =--[[persistable:reaper_leave]]function() grim:setAnimation(1678, grim.mirror) end grim:queueAction(IdleAction():setCount(TheApp.animation_manager:getAnimLength(1678)):setLoopCallback(loop_callback_leave)) local lava_destroy = --[[persistable:lava_destroy]]function() humanoid.world:destroyEntity(lava_hole) end local loop_callback_destroy =--[[persistable:reaper_destroy]]function() lava_hole.playing_sounds_in_random_sequence = false lava_hole:setTimer(TheApp.animation_manager:getAnimLength(2552), lava_destroy) lava_hole:setAnimation(2552) grim.world:destroyEntity(grim) end grim:queueAction(IdleAction():setLoopCallback(loop_callback_destroy)) --The patient's final actions: humanoid:walkTo(humanoid.hole_use_tile_x, humanoid.hole_use_tile_y, true) local post_walk_into = --[[persistable:walk_into_lava]]function() grim:finishAction() end local use_action = UseObjectAction(lava_hole) use_action.destroy_user_after_use = true use_action.after_walk_in = post_walk_into humanoid:queueAction(use_action) humanoid:finishAction() end end) local function action_die_start(action, humanoid) humanoid:setMoodInfo() -- clear all mood icons local preferred_fall_direction if math.random(0, 1) == 1 then preferred_fall_direction = "east" else preferred_fall_direction = "south" end local anims = humanoid.die_anims assert(anims, "Error: no death animation for humanoid ".. humanoid.humanoid_class) action.must_happen = true local fall = anims.fall_east --If this isn't done their bald head will become bloated instead of suddenly having hair: if humanoid.disease.id == "baldness" then humanoid:setLayer(0,2) end local mirror_fall = preferred_fall_direction == "east" and 0 or 1 humanoid.last_move_direction = preferred_fall_direction humanoid:setAnimation(anims.fall_east, mirror_fall) action.phase = 0 local fall_anim_duration = TheApp.animation_manager:getAnimLength(fall) if humanoid:isType("Chewbacca Patient") then --After 21 ticks the first frame of the buggy falling part of this animation is reached --so this animation is ended early, action_die_tick will then use the standard male fall animation: fall_anim_duration = 21 end -- Bloaty head patients can't go to hell because they don't have a -- "transform to standard male"/"fall into lava hole" animation. if humanoid:isMalePatient() and humanoid.disease.id ~= "bloaty_head" then if math.random(1, 100) <= 65 then humanoid:setTimer(fall_anim_duration, action_die_tick_reaper) else humanoid:setTimer(fall_anim_duration, action_die_tick) end else humanoid:setTimer(fall_anim_duration, action_die_tick) end humanoid.dead = true end return action_die_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/falling.lua000066400000000000000000000036001522247547500232040ustar00rootroot00000000000000--[[ Copyright (c) 2011 Mark "Mark.L" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "FallingAction" (HumanoidAction) ---@type FallingAction local FallingAction = _G["FallingAction"] function FallingAction:FallingAction() self:HumanoidAction("falling") self:setMustHappen(true) end local action_falling_end = permanent"action_falling_end"( function(humanoid) humanoid:finishAction() end) local function action_falling_start(action, humanoid) if math.random(0, 1) == 1 then humanoid.last_move_direction = "east" else humanoid.last_move_direction = "south" end assert(humanoid.falling_anim, "Error: no falling animation for humanoid " .. humanoid.humanoid_class) humanoid:setAnimation(humanoid.falling_anim, humanoid.last_move_direction == "east" and 0 or 1) humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.falling_anim), action_falling_end) end return action_falling_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/get_up.lua000066400000000000000000000033521522247547500230570ustar00rootroot00000000000000--[[ Copyright (c) 2011 Mark "Mark.L" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "GetUpAction" (HumanoidAction) ---@type GetUpAction local GetUpAction = _G["GetUpAction"] function GetUpAction:GetUpAction() self:HumanoidAction("get_up") self:setMustHappen(true) end local action_get_up_end = permanent"action_get_up_end"( function(humanoid) humanoid:finishAction() end) local function action_get_up_start(action, humanoid) assert(humanoid.get_up_anim, "Error: no getting up animation for humanoid " .. humanoid.humanoid_class) humanoid:setAnimation(humanoid.get_up_anim, humanoid.last_move_direction == "east" and 0 or 1) humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.get_up_anim), action_get_up_end) end return action_get_up_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/idle.lua000066400000000000000000000067161522247547500225200ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "IdleAction" (HumanoidAction) ---@type IdleAction local IdleAction = _G["IdleAction"] function IdleAction:IdleAction() self:HumanoidAction("idle") self.direction = nil -- Direction of standing idle. self.on_interrupt = nil -- Function to call at an interrupt. end --! Set the direction of facing while standing idle. --!param direction (string) Direction of facing. --!return (action) Self, for daisy-chaining. function IdleAction:setDirection(direction) assert(direction == nil or direction == "north" or direction == "south" or direction == "east" or direction == "west", "Invalid value for parameter 'direction'") self.direction = direction return self end --! Set the function to call on interrupt. --!param on_interrupt (function) Function to call on interrupt. --!return (action) Self, for daisy-chaining. function IdleAction:setOnInterrupt(on_interrupt) assert(on_interrupt == nil or type(on_interrupt) == "function", "Invalid value for parameter 'on_interrupt'") self.on_interrupt = on_interrupt return self end local action_idle_interrupt = permanent"action_idle_interrupt"( function(_, humanoid) humanoid:setTimer(1, humanoid.finishAction) end) local action_timer = permanent"action_idle_timer"( function(humanoid) local action = humanoid:getCurrentAction() if action.after_use then action.after_use() action.must_happen = true end humanoid:finishAction() end) local function action_idle_start(action, humanoid) local direction = action.direction or humanoid.last_move_direction local anims = humanoid.walk_anims if direction == "north" then humanoid:setAnimation(anims.idle_north, 0) elseif direction == "east" then humanoid:setAnimation(anims.idle_east, 0) elseif direction == "south" then humanoid:setAnimation(anims.idle_east, 1) elseif direction == "west" then humanoid:setAnimation(anims.idle_north, 1) end local map, x, y = humanoid.th:getTile() humanoid.th:setTile(map, x, y, humanoid:getDrawingLayer()) humanoid:setSpeed(0, 0) if action.count then humanoid:setTimer(action.count, action_timer) action.must_happen = true end -- If an interrupt is already specified for the idle action don't replace it if action.must_happen and not action.on_interrupt then action.on_interrupt = action_idle_interrupt end if action.loop_callback then action:loop_callback(humanoid) end end return action_idle_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/idle_spawn.lua000066400000000000000000000051031522247547500237150ustar00rootroot00000000000000--[[ Copyright (c) 2014 Joseph Sheppard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "IdleSpawnAction" (HumanoidAction) ---@type IdleSpawnAction local IdleSpawnAction = _G["IdleSpawnAction"] function IdleSpawnAction:IdleSpawnAction(anim, point_dir) assert(type(anim) == "number", "Invalid value for parameter 'anim'") assert(type(point_dir) == "table" and type(point_dir.x) == "number" and type(point_dir.y) == "number" and point_dir.direction == "north" or point_dir.direction == "south" or point_dir.direction == "east" or point_dir.direction == "west", "Invalid value for parameter 'point_dir'") self:HumanoidAction("idle_spawn") self.spawn_animation = anim self.point = point_dir -- x, y, direction of the spawn animation end local function action_idle_spawn_start(action, humanoid) action.must_happen = true humanoid.last_move_direction = action.point.direction humanoid:setTilePositionSpeed(action.point.x,action.point.y) if action.spawn_animation then local loop_callback_spawn =--[[persistable:idle_spawn_animation]] function() if action.spawn_sound then humanoid:playSound(action.spawn_sound) end humanoid:setAnimation(action.spawn_animation) end humanoid:queueAction(IdleAction() :setCount(TheApp.animation_manager:getAnimLength(action.spawn_animation)) :setLoopCallback(loop_callback_spawn)) elseif action.spawn_sound then humanoid:playSound(action.spawn_sound) end humanoid:queueAction(IdleAction():setCount(action.count):setLoopCallback(action.loop_callback)) humanoid:finishAction() end return action_idle_spawn_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/knock_door.lua000066400000000000000000000064651522247547500237340ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "KnockDoorAction" (HumanoidAction) ---@type KnockDoorAction local KnockDoorAction = _G["KnockDoorAction"] --! Constructor for knocking on the door action. --!param door (Object) Door to knock on. --!param direction (string) Direction of facing. function KnockDoorAction:KnockDoorAction(humanoid, door, direction) assert(class.is(humanoid, Humanoid), "Invalid value for parameter 'humanoid'") assert(class.is(door, Door), "Invalid value for parameter 'door'") assert(direction == "north" or direction == "south" or direction == "east" or direction == "west", "Invalid value for parameter 'direction'") self:HumanoidAction("knock_door") self.humanoid = humanoid self.door = door -- Door to knock on. self.direction = direction -- Direction of facing. self.state = nil -- Next step in the animation. end function KnockDoorAction:start() self.state = 0 self:update() end local function action_knock_door_start(action, humanoid) assert(humanoid == action.humanoid) action:start() end local action_knock_door_tick = permanent"action_knock_door_tick"( function(humanoid) local action = humanoid:getCurrentAction() action:update() end) function KnockDoorAction:update() if self.state == 0 then local direction = self.direction local anims = self.humanoid.door_anims local door = self.door self.must_happen = true local anim = anims.knock_north local flag_mirror = (direction == "west" or direction == "south") and 1 or 0 if direction == "east" or direction == "south" then anim = anims.knock_east end self.humanoid:setAnimation(anim, flag_mirror) self.humanoid:setTilePositionSpeed(self.humanoid.tile_x, self.humanoid.tile_y) self.humanoid:setTimer(TheApp.animation_manager:getAnimLength(anim), action_knock_door_tick) self.humanoid.user_of = door door:setUser(self.humanoid) door.th:makeVisible() self.state = 1 return elseif self.state == 1 then local door = self.humanoid.user_of door:removeUser(self.humanoid) self.humanoid.user_of = nil door:getRoom():tryAdvanceQueue() self.humanoid:finishAction() self.state = nil return end error("Illegal state " .. tostring(self.state) .. " in KnockDoorAction:update") end return action_knock_door_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/meander.lua000066400000000000000000000077471522247547500232230ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "MeanderAction" (HumanoidAction) ---@type MeanderAction local MeanderAction = _G["MeanderAction"] function MeanderAction:MeanderAction() self:HumanoidAction("meander") end local function meander_action_start(action, humanoid) local room = humanoid:getRoom() -- Answering call queue if class.is(humanoid, Staff) and humanoid:isIdle() and not room then if class.is(humanoid, Handyman) then if humanoid:searchForHandymanTask() == true then return end -- If staff starts wandering around in Idle mode, -- he's effectively not in any room and need not to comeback after -- staff room visit elseif humanoid.world.dispatcher:answerCall(humanoid) then if action.must_happen then humanoid:finishAction() end return else -- Nowhere to go, start going to the old room if it's still in -- need of staff. local last_room = humanoid.last_room if last_room and last_room.is_active and last_room:testStaffCriteria(last_room:getMaximumStaffCriteria(), humanoid) then humanoid:queueAction(last_room:createEnterAction(humanoid)) humanoid:setDynamicInfoText(_S.dynamic_info.staff.actions.heading_for :format(last_room.room_info.name)) humanoid:finishAction() return end end humanoid.last_room = nil end -- Just wandering around if class.is(humanoid, Doctor) or class.is(humanoid, Nurse) then if not room then humanoid:setDynamicInfoText(_S.dynamic_info.staff.actions.wandering) end end -- Handymen may have an assigned parcel, but they are free to visit any staff -- room to rest, or wait inside a room to repair local meander_parcel if class.is(humanoid, Handyman) and humanoid.parcelNr > 0 and not humanoid:getRoom() then meander_parcel = humanoid.parcelNr end local x, y = humanoid.world.pathfinder:findIdleTile(humanoid.tile_x, humanoid.tile_y, math.random(1, 24), meander_parcel) if x == humanoid.tile_x and y == humanoid.tile_y then -- Nowhere to walk to - go idle instead, or go onto the next action if #humanoid.action_queue == 1 then humanoid:queueAction(IdleAction()) end humanoid:finishAction() return end if action.todo_interrupt then humanoid:finishAction() return end if action.count then if action.count == 0 then humanoid:finishAction() return else action.count = action.count - 1 end elseif action.loop_callback then action.loop_callback() if action ~= humanoid:getCurrentAction() then return end end local procrastination if action.can_idle then action.can_idle = false procrastination = IdleAction():setCount(math.random(5, 40)):setMustHappen(action.must_happen) else action.can_idle = true procrastination = WalkAction(x, y):setMustHappen(action.must_happen) end humanoid:queueAction(procrastination, 0) end return meander_action_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/multi_use_object.lua000066400000000000000000000330401522247547500251250ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "MultiUseObjectAction" (HumanoidAction) ---@type MultiUseObjectAction local MultiUseObjectAction = _G["MultiUseObjectAction"] --! Construct a multi-use object action. --!param object (Object) Object being used. --!param use_with (Humanoid) Fellow user of the object. function MultiUseObjectAction:MultiUseObjectAction(object, use_with) assert(class.is(object, Object), "Invalid value for parameter 'object'") assert(class.is(use_with, Humanoid), "Invalid value for parameter 'use_with'") self:HumanoidAction("multi_use_object") self.object = object self.use_with = use_with self.prolonged_usage = nil -- If true, the usage is prolonged. self.layer3 = nil end --! Set the invisibility span. --!param span (array) Span of invisibility, {from, to} --!return (action) self, for daisy-chaining. function MultiUseObjectAction:setInvisiblePhaseSpan(span) assert(type(span) == "table" and type(span[1]) == "number" and type(span[2] == "number") and span[1] <= span[2], "Invalid value for parameter 'span'") self.invisible_phase_span = span return self end --! Set prolonged usage of the object. --!param prolonged (bool) If set, enable prolonged usage of the object. --!return (action) self, for daisy-chaining. function MultiUseObjectAction:setProlongedUsage(prolonged) assert(type(prolonged), "boolean", "Invalid value for parameter 'prolonged'") self.prolonged_usage = prolonged return self end -- Set animation layer3 to the given value. --!param layer3 (int) Value to set for animation layer 3. --!return (action) self, for daisy-chaining. function MultiUseObjectAction:setLayer3(layer3) assert(type(layer3) == "number", "Invalid value for parameter 'layer3'") self.layer3 = layer3 return self end local TH = require("TH") local orient_mirror = { north = "west", west = "north", east = "south", south = "east", } local function action_multi_use_next_phase(action, phase) phase = phase + 1 if phase < -5 then phase = -5 end if phase == -5 and not action.anims.begin_use then phase = phase + 1 end if phase == -4 and not action.anims.begin_use_2 then phase = phase + 1 end if phase == -3 and not action.anims.begin_use_3 then phase = phase + 1 end if phase == -2 and not action.anims.begin_use_4 then phase = phase + 1 end if phase == -1 and not action.anims.begin_use_5 then phase = phase + 1 end if phase == 0 and not action.anims.in_use then phase = phase + 1 end if phase == 1 and not action.anims.finish_use then phase = phase + 1 end if phase == 2 and not action.anims.finish_use_2 then phase = phase + 1 end if phase == 3 and not action.anims.finish_use_3 then phase = phase + 1 end if phase == 4 and not action.anims.finish_use_4 then phase = phase + 1 end if phase == 5 and not action.anims.finish_use_5 then phase = phase + 1 end if phase > 5 then phase = 100 end return phase end local action_multi_use_object_tick local function action_multi_use_phase(action, humanoid, phase) local object = action.object humanoid.user_of = nil -- Temporary to avoid tile change warning action.phase = phase local anim_name = "in_use" if phase == -5 then anim_name = "begin_use" elseif phase == -4 then anim_name = "begin_use_2" elseif phase == -3 then anim_name = "begin_use_3" elseif phase == -2 then anim_name = "begin_use_4" elseif phase == -1 then anim_name = "begin_use_5" elseif phase == 1 then anim_name = "finish_use" elseif phase == 2 then anim_name = "finish_use_2" elseif phase == 3 then anim_name = "finish_use_3" elseif phase == 4 then anim_name = "finish_use_4" elseif phase == 5 then anim_name = "finish_use_5" end local anim = action.anims[anim_name] if type(anim) == "table" then -- If an animation list is provided rather than a single animation, then -- choose an animation from the list at random, or according to the previous -- phase. Look at general diagnosis for usage example. if action.random_anim then anim = anim[action.random_anim] else action.random_anim = math.random(1, #anim) anim = anim[action.random_anim] end end if object.split_anims then local anims = humanoid.world.anims for i = 2, #object.split_anims do local th = object.split_anims[i] th:setAnimation(anims, anim, action.mirror_flags) end end humanoid:setAnimation(anim, action.mirror_flags) -- Compute the position of the animated humanoid. local tx, ty local obj_orient = object.object_type.orientations[object.direction] if obj_orient.use_animate_from_use_position then tx = object.tile_x + obj_orient.use_position[1] ty = object.tile_y + obj_orient.use_position[2] else tx, ty = object:getRenderAttachTile() end local offset = obj_orient.animation_offset humanoid:setTilePositionSpeed(tx, ty, offset[1], offset[2]) humanoid.user_of = object local length = TheApp.animation_manager:getAnimLength(anim) local secondary_anim = action.anims.secondary and action.anims.secondary[anim_name] if action.secondary_anim then secondary_anim = action.secondary_anim action.secondary_anim = nil end local use_with = action.use_with if secondary_anim then if type(secondary_anim) == "table" and secondary_anim[1] == "morph" then use_with:setAnimation(secondary_anim[2], action.mirror_flags) local morph_target = TH.animation() morph_target:setAnimation(use_with.world.anims, secondary_anim[3], action.mirror_flags) for layer, id in pairs(use_with.layers) do morph_target:setLayer(layer, id) end if secondary_anim.layers then for layer, id in pairs(use_with[secondary_anim.layers]) do morph_target:setLayer(layer, id) end action.change_secondary_layers = use_with[secondary_anim.layers] end use_with.th:setMorph(morph_target) secondary_anim = secondary_anim[3] else use_with:setAnimation(secondary_anim, action.mirror_flags) end use_with.th:makeVisible() local secondary_length = TheApp.animation_manager:getAnimLength(secondary_anim) if secondary_length > length then length = secondary_length end else local span = action.invisible_phase_span if span then if span[1] <= phase and span[2] >= phase then use_with.th:makeInvisible() else use_with.th:makeVisible() end else use_with.th:makeInvisible() end end humanoid:setTimer(length, action_multi_use_object_tick) end local function copy_layers(dest, src) if class.is(dest, Staff) then dest:setLayer(0, src.layers[0]) dest:setLayer(1, src.layers[1]) dest:setLayer(2, src.layers[2]) dest:setLayer(3, src.layers[3]) dest:setLayer(4, src.layers[4]) elseif class.is(src, Staff) then dest:setLayer(5, src.layers[5]) end end action_multi_use_object_tick = permanent"action_multi_use_object_tick"( function(humanoid) local action = humanoid:getCurrentAction() local use_with = action.use_with local object = action.object local phase = action.phase local oldphase = phase if phase ~= 0 or not action.prolonged_usage then phase = action_multi_use_next_phase(action, phase) elseif action.loop_callback then action:loop_callback() end if action.change_secondary_layers then for layer, id in pairs(action.change_secondary_layers) do use_with:setLayer(layer, id) end action.change_secondary_layers = nil copy_layers(humanoid, use_with) end if oldphase <= 5 and phase > 5 then object:removeUser(humanoid) humanoid.user_of = nil if object.split_anims then local anims, anim, frame, flags = humanoid.world.anims, object.th:getAnimation(), object.th:getFrame(), object.th:getFlag() for i = 2, #object.split_anims do local th = object.split_anims[i] th:setLayersFrom(object.th) th:setHitTestResult(object) th:setAnimation(anims, anim, flags) th:setFrame(frame) end object.ticks = object.object_type.ticks end end if phase == 0 then -- Already now move the secondary user to his final position and orientation. -- This is needed if some end phases have the secondary user visible (e.g. jelly moulder) local spec = object.object_type.orientations[object.direction] local pos = spec.finish_use_position_secondary or spec.use_position_secondary local direction = spec.finish_use_orientation_secondary use_with:setTilePositionSpeed(object.tile_x + pos[1], object.tile_y + pos[2]) if direction then local anims = use_with.walk_anims local anim = (direction == "north" or direction == "west") and anims.idle_north or anims.idle_east local flags = (direction == "north" or direction == "east") and 0 or 1 use_with:setAnimation(anim, flags) end end if phase == 100 then if action.layer3 then humanoid:setLayer(3, action.old_layer3_humanoid) use_with:setLayer(3, action.old_layer3_use_with) end use_with.th:makeVisible() use_with:getCurrentAction().on_interrupt = action.idle_interrupt use_with:getCurrentAction().must_happen = action.idle_must_happen local spec = object.object_type.orientations[object.direction] local pos = spec.finish_use_position or spec.use_position humanoid:setTilePositionSpeed(object.tile_x + pos[1], object.tile_y + pos[2]) -- Check if the room is about to be destroyed local room_destroyed = false if object:isMachine() then room_destroyed = object:machineUsed(humanoid:getRoom()) end if not room_destroyed then -- Now call the after_use function if appropriate if action.after_use then action.after_use() end humanoid:finishAction(action) end else action_multi_use_phase(action, humanoid, phase) end end) local action_multi_use_object_interrupt = permanent"action_multi_use_object_interrupt"( function(action) if not action.loop_callback then action.prolonged_usage = false end end) local function action_multi_use_object_start(action, humanoid) local use_with = action.use_with if action.must_happen then -- Setting must_happen is slightly dangerous (though required in some -- situations), as the multi-usage cannot be sure to happen until the -- secondary user is present (at which point, must_happen is always set). if action.todo_interrupt and not action.no_truncate then humanoid:finishAction(action) return end end if use_with:getCurrentAction().name ~= "idle" then humanoid:queueAction(IdleAction():setCount(2), 0) return else action.idle_interrupt = use_with:getCurrentAction().on_interrupt action.idle_must_happen = use_with:getCurrentAction().must_happen use_with:getCurrentAction().on_interrupt = nil use_with:getCurrentAction().must_happen = true end action.must_happen = true if action.prolonged_usage then action.on_interrupt = action_multi_use_object_interrupt use_with:getCurrentAction().on_interrupt = --[[persistable:action_multi_use_object_use_with_interrupt]] function() if action.on_interrupt then action:on_interrupt() action.on_interrupt = nil end end end local object = action.object local orient = object.direction local flags = 0 local anim_set = humanoid.humanoid_class .. " - " .. use_with.humanoid_class if not object.object_type.multi_usage_animations[anim_set][orient] then orient = orient_mirror[orient] flags = flags + 1 end if object.split_anims then flags = flags + DrawFlags.Crop end local spec = object.object_type.orientations[object.direction] -- early_list_while_in_use (if defined) will take precedence over early_list if spec.early_list_while_in_use or (spec.early_list_while_in_use == nil and spec.early_list) then flags = flags + 1024 end local anims = object.object_type.multi_usage_animations[anim_set][orient] action.anims = anims action.mirror_flags = flags object:setUser(humanoid) humanoid.user_of = object copy_layers(humanoid, use_with) if action.layer3 then action.old_layer3_humanoid = humanoid.layers[3] action.old_layer3_use_with = use_with.layers[3] humanoid:setLayer(3, action.layer3) use_with:setLayer(3, action.layer3) end if object.split_anims then for i = 2, #object.split_anims do local th = object.split_anims[i] th:setLayersFrom(humanoid.th) th:setHitTestResult(humanoid) end object.ticks = true end action_multi_use_phase(action, humanoid, action_multi_use_next_phase(action, -100)) end return action_multi_use_object_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/on_ground.lua000066400000000000000000000034321522247547500235650ustar00rootroot00000000000000--[[ Copyright (c) 2011 Mark "Mark.L" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "OnGroundAction" (HumanoidAction) ---@type OnGroundAction local OnGroundAction = _G["OnGroundAction"] function OnGroundAction:OnGroundAction() self:HumanoidAction("on_ground") self:setMustHappen(true) end local action_on_ground_end = permanent"action_on_ground_end"( function(humanoid) humanoid:finishAction() end) local function action_on_ground_start(action, humanoid) assert(humanoid.on_ground_anim, "Error: no on the ground animation for humanoid " .. humanoid.humanoid_class) humanoid:setAnimation(humanoid.on_ground_anim, humanoid.last_move_direction == "east" and 0 or 1) humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.on_ground_anim), action_on_ground_end) end return action_on_ground_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/pee.lua000066400000000000000000000040031522247547500223370ustar00rootroot00000000000000--[[ Copyright (c) 2011 Mark "Mark.L" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "PeeAction" (HumanoidAction) ---@type PeeAction local PeeAction = _G["PeeAction"] function PeeAction:PeeAction() self:HumanoidAction("pee") self:setMustHappen(true) end local action_pee_end = permanent"action_pee_end"( function(humanoid) local litter = humanoid.world:newObject("litter", humanoid.tile_x, humanoid.tile_y) litter:setLitterType("pee", humanoid.last_move_direction == "south" and 0 or 1) humanoid:finishAction() end) local function action_pee_start(action, humanoid) if math.random(0, 1) == 1 then humanoid.last_move_direction = "east" else humanoid.last_move_direction = "south" end assert(humanoid.pee_anim, "Error: no pee animation for humanoid " .. humanoid.humanoid_class) action.must_happen = true humanoid:setAnimation(humanoid.pee_anim, humanoid.last_move_direction == "east" and 0 or 1) humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.pee_anim), action_pee_end) end return action_pee_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/pickup.lua000066400000000000000000000070601522247547500230670ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "PickupAction" (HumanoidAction) ---@type PickupAction local PickupAction = _G["PickupAction"] -- Construct a pick-up action --!param ui User interface function PickupAction:PickupAction(ui) assert(class.is(ui, UI), "Invalid value for parameter 'ui'") self:HumanoidAction("pickup") self.ui = ui self.todo_close = nil self:setMustHappen(true) end function PickupAction:setTodoClose(dialog) assert(class.is(dialog, Window), "Invalid value for parameter 'dialog'") self.todo_close = dialog return self end local action_pickup_interrupt = permanent"action_pickup_interrupt"( function(action, humanoid) if action.window then action.window:close() end humanoid.th:makeVisible() local room = humanoid:getRoom() if room and room.crashed then action.ui:setDefaultCursor(nil) return elseif room then room:onHumanoidEnter(humanoid) else humanoid:onPlaceInCorridor() end humanoid:finishAction() action.ui:setDefaultCursor(nil) end) local action_pickup_dont_interrupt = permanent"action_pickup_dont_interrupt"( function(action) action.on_interrupt = action_pickup_interrupt end) local function action_pickup_start(action, humanoid) humanoid.dealing_with_patient = nil if action.todo_close then action.todo_close:close() end if class.is(humanoid, Staff) then humanoid:onPickup() end humanoid:setSpeed(0, 0) humanoid.th:makeInvisible() local room = humanoid:getRoom() if room then room:onHumanoidLeave(humanoid) end action.must_happen = true if action.todo_interrupt and action.todo_interrupt ~= "high" then -- If you pick up a staff member as they walk through a door, then the walk -- action will be given a high priority interrupt, and hence immediately -- dump the staff member in the room, at which point the room will command -- the entering staff, sending this pick up action a normal interrupt. We -- will completely ignore that, as the user's wish to pick up the staff is -- more important than the room's wish to command the staff. -- action_pickup_dont_interrupt will then set the interrupt handler back to -- normal, as that is called when the staff member is placed down again. action.on_interrupt = action_pickup_dont_interrupt else action.on_interrupt = action_pickup_interrupt end local ui = action.ui action.window = UIPlaceStaff(ui, humanoid, ui.cursor_x, ui.cursor_y) ui:addWindow(action.window) ui:playSound("pickup.wav") ui:setDefaultCursor(ui.grab_cursor) end return action_pickup_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/queue.lua000066400000000000000000000336421522247547500227250ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "QueueAction" (HumanoidAction) ---@type QueueAction local QueueAction = _G["QueueAction"] --! Queue for something (door or reception desk). --!param x X position of the queue. --!param y Y position of the queue. --!param queue (Queue) Queue to join function QueueAction:QueueAction(x, y, queue) assert(type(x) == "number", "Invalid value for parameter 'x'") assert(type(y) == "number", "Invalid value for parameter 'y'") assert(class.is(queue, Queue), "Invalid value for parameter 'queue'") self:HumanoidAction("queue") self.x = x -- Position of the queue(?) self.y = y self.face_x = nil -- Tile to turn the face to. self.face_y = nil self.queue = queue self.reserve_when_done = nil -- Object to reserve when leaving the queue. end --! Set the object to reserve when queueing is done. --!param door (object) Object to reserve when leaving the queue. --!return (action) self, for daisy-chaining. function QueueAction:setReserveWhenDone(door) assert(class.is(door, Door), "Invalid value for parameter 'door'") self.reserve_when_done = door return self end --! Set the tile to face. --!param face_x (int) X coordinate of the tile to face. --!param face_y (int) Y coordinate of the tile to face. --!return (action) self, for daisy-chaining. function QueueAction:setFaceDirection(face_x, face_y) assert(type(face_x) == "number", "Invalid value for parameter 'face_x'") assert(type(face_y) == "number", "Invalid value for parameter 'face_y'") self.face_x = face_x self.face_y = face_y return self end local function get_direction(x, y, facing_x, facing_y) if facing_y < y then return "north" elseif facing_y > y then return "south" end if facing_x > x then return "east" elseif facing_x < x then return "west" end end local function interrupt_head(humanoid, n) while n > 1 do local action = humanoid.action_queue[n] if action.name == "use_object" then -- Pull object usages out of the queue if action.object and action.object:isReservedFor(humanoid) then action.object:removeReservedUser(humanoid) end table.remove(humanoid.action_queue, n) else -- Mark other actions as needing interruption assert(action.must_happen) action.todo_interrupt = true end n = n - 1 end local action = humanoid.action_queue[n] assert(action.must_happen) local on_interrupt = action.on_interrupt if on_interrupt then action.on_interrupt = nil on_interrupt(action, humanoid) end end local function action_queue_find_idle(action, humanoid) local found_any = false for i, current_action in ipairs(humanoid.action_queue) do if current_action.name == "idle" then found_any = true if humanoid.action_queue[i + 1] == action then return i end end end if found_any then print("Warning: Proper idle not in action_queue") end return -1 end local function action_queue_find_drink_action(action, humanoid) local found_any = false for i, current_action in ipairs(humanoid.action_queue) do if current_action.name == "use_object" and current_action.object.object_type.id == "drinks_machine" then found_any = true if humanoid.action_queue[i + 1] == action then return i end end end if found_any then error("Proper drink action not in action_queue") else return -1 end end local action_queue_leave_bench -- Defined below the next function. -- Finish standing includes currently going to the drinks machine. local function action_queue_finish_standing(action, humanoid) local index = action_queue_find_idle(action, humanoid) if index == -1 then -- Maybe going to the drinks machine? index = action_queue_find_drink_action(action, humanoid) if index == -1 then -- Attempt to recover by assuming the person is sitting down. print("Warning: Idle not in action_queue") if humanoid:getCurrentAction().name == "use_object" then -- It is likely that the person is sitting down. return action_queue_leave_bench(action, humanoid) else error("This person seems to neither be standing nor sitting?!") end end end interrupt_head(humanoid, index) index = index + 1 while index >= 1 do local current_action = humanoid.action_queue[index] if current_action == action then return index - 1 end index = index - 1 end error("Queue action not in action_queue") end action_queue_leave_bench = function(action, humanoid) local index for i, current_action in ipairs(humanoid.action_queue) do -- Check to see that we haven't -- gotten to the actual queue action yet. -- Instead of crashing if we have, try with the assumption -- that we're actually standing. if current_action == action then print("Warning: A patient supposedly sitting down was not," .. " trying to recover assuming he/she is standing.") return action_queue_finish_standing(action, humanoid) end if current_action.name == "use_object" then if humanoid.action_queue[i + 1] == action then interrupt_head(humanoid, i) index = i break end end end index = index + 1 while index >= 1 do local current_action = humanoid.action_queue[index] if current_action == action then return index - 1 end index = index - 1 end error("Queue action not in action_queue") end local action_queue_on_change_position = permanent"action_queue_on_change_position"( function(action, humanoid) -- Only proceed with this handler if the patient is still in the queue if not action.is_in_queue then return end -- Find out if we have to be standing up - considering humanoid_class covers both health inspector and VIP local must_stand = not class.is(humanoid, Patient) or action.is_leaving or (humanoid.disease and humanoid.disease.must_stand) local queue = action.queue if not must_stand then for i = 1, queue.bench_threshold do if queue:reportedHumanoid(i) == humanoid then must_stand = true break end end end -- Maybe we can sit down? if not must_stand then -- Where are we in relation to door/reception desk (goal). -- Specify the distance we no longer look for a bench from our goal tile, -- and the maximum distance we will look for one too. local DISTANCE_THRESHOLD, MAX_DISTANCE = 4, 10 if action.current_bench_distance and action.current_bench_distance <= DISTANCE_THRESHOLD then return end local hum_x, hum_y = humanoid.tile_x, humanoid.tile_y local goal_x, goal_y = action.x, action.y local distance_from_goal = humanoid.world:getPathDistance(hum_x, hum_y, goal_x, goal_y) if not distance_from_goal then error("Patient in a queue has no calculated distance from themselves to their target door/desk!") end -- Look for a free bench that is closer to the goal. If we are standing -- expand the search radius to increase the chance of getting a seat. local bench_look_distance = not action:isStanding() and math.max(2 * distance_from_goal / 3, DISTANCE_THRESHOLD) or MAX_DISTANCE local bench, bx, by, new_dist = humanoid.world:getFreeBench(goal_x, goal_y, bench_look_distance) if bench then local num_actions_prior if action:isStanding() then num_actions_prior = action_queue_finish_standing(action, humanoid) else num_actions_prior = action_queue_leave_bench(action, humanoid) end action.current_bench_distance = new_dist humanoid:queueAction(WalkAction(bx, by):setMustHappen(true), num_actions_prior) humanoid:queueAction(UseObjectAction(bench):setMustHappen(true), num_actions_prior + 1) bench.reserved_for = humanoid return elseif not action:isStanding() then -- Already sitting down, so nothing to do. return end end -- Stand up in the correct position in the queue local standing_index = 0 local our_room = humanoid:getRoom() for _, person in ipairs(queue) do if person == humanoid then break end if queue.callbacks[person]:isStanding() and person:getRoom() == our_room then standing_index = standing_index + 1 end end local ix, iy = humanoid.world:getIdleTile(action.x, action.y, standing_index) assert(ix and iy) local facing_x, facing_y if standing_index == 0 then facing_x, facing_y = action.face_x or action.x, action.face_y or action.y else facing_x, facing_y = humanoid.world:getIdleTile(action.x, action.y, standing_index - 1) end assert(facing_x and facing_y) local idle_direction = get_direction(ix, iy, facing_x, facing_y) if action:isStanding() then local idle_index = action_queue_find_idle(action, humanoid) if idle_index == -1 then idle_index = action_queue_find_drink_action(action, humanoid) if idle_index ~= -1 then -- Going to get a drink. Do nothing since it will be fixed after getting the drink. return else error("Could not find an idle or drink action when trying to stand in line.") end end humanoid.action_queue[idle_index].direction = idle_direction humanoid:queueAction(WalkAction(ix, iy):setMustHappen(true):setIsLeaving(humanoid:isLeaving()), idle_index - 1) else action.current_bench_distance = nil local num_actions_prior = action_queue_leave_bench(action, humanoid) humanoid:queueAction(WalkAction(ix, iy):setMustHappen(true), num_actions_prior) humanoid:queueAction(IdleAction():setDirection(idle_direction):setMustHappen(true), num_actions_prior + 1) end end) local action_queue_is_standing = permanent"action_queue_is_standing"( function(action) return not action.current_bench_distance end) local action_queue_on_leave = permanent"action_queue_on_leave"( function(action, humanoid) action.is_in_queue = false if action.reserve_when_done then action.reserve_when_done:addReservedUser(humanoid) end for i, current_action in ipairs(humanoid.action_queue) do if current_action == action then interrupt_head(humanoid, i) return end end error("Queue action not in action_queue") end) -- While queueing one could get thirsty. local action_queue_get_soda = permanent"action_queue_get_soda"( function(action, humanoid, machine, mx, my, fun_after_use) local num_actions_prior if action:isStanding() then num_actions_prior = action_queue_finish_standing(action, humanoid) else num_actions_prior = action_queue_leave_bench(action, humanoid) end -- Callback function used after the drinks machine has been used. local --[[persistable:action_queue_get_soda_after_use]] function after_use() fun_after_use() -- Defined in patient:tickDay -- If the patient is still in the queue, insert an idle action so that -- change_position can do its work. -- Note that it is inserted after the currently executing use_object action. if action.is_in_queue and not humanoid.going_home then humanoid:queueAction(IdleAction():setMustHappen(true), 1) action_queue_on_change_position(action, humanoid) end end -- Walk to the machine and then use it. humanoid:queueAction(WalkAction(mx, my):setMustHappen(true), num_actions_prior) humanoid:queueAction(UseObjectAction(machine):setAfterUse(after_use) :setMustHappen(true), num_actions_prior + 1) machine:addReservedUser(humanoid) -- Make sure no one thinks we're sitting down anymore. action.current_bench_distance = nil end) local action_queue_interrupt = permanent"action_queue_interrupt"( function(action, humanoid) if action.is_in_queue then action.queue:removeValue(humanoid) if action.reserve_when_done then action.reserve_when_done:updateDynamicInfo() end end if action.reserve_when_done then if action.reserve_when_done:isReservedFor(humanoid) then action.reserve_when_done:removeReservedUser(humanoid) end end humanoid:finishAction() end) local function action_queue_start(action, humanoid) local queue = action.queue if action.done_init then return end action.done_init = true action.must_happen = true action.on_interrupt = action_queue_interrupt action.onChangeQueuePosition = action_queue_on_change_position action.onLeaveQueue = action_queue_on_leave action.onGetSoda = action_queue_get_soda action.isStanding = action_queue_is_standing action.is_in_queue = true queue:unexpect(humanoid) queue:push(humanoid, action) local door = action.reserve_when_done if door then door:updateDynamicInfo() if class.is(humanoid, Patient) then humanoid:updateDynamicInfo(_S.dynamic_info.patient.actions.queueing_for:format(door.room.room_info.name)) end end humanoid:queueAction(IdleAction():setMustHappen(true):setIsLeaving(humanoid:isLeaving()), 0) action:onChangeQueuePosition(humanoid) if queue.same_room_priority then queue.same_room_priority:getRoom():tryAdvanceQueue() end end return action_queue_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/seek_reception.lua000066400000000000000000000136571522247547500246040ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "SeekReceptionAction" (HumanoidAction) ---@type SeekReceptionAction local SeekReceptionAction = _G["SeekReceptionAction"] -- Distance from queue that patient can join a reception desk queue. local can_join_queue_distance = 6 function SeekReceptionAction:SeekReceptionAction() self:HumanoidAction("seek_reception") end --! Can the humanoid join the reception queue at the given position? --!param humanoid (Humanoid) Humanoid going to the reception. --!param x (int) X coordinate of the tile to consider. --!param y (int) Y coordinate of the tile to consider. --!param dist (int) Distance of the tile to the reception. --!return (bool) Whether the humanoid can start queueing. local function can_join_queue_at(humanoid, x, y, dist) local flag_cache = humanoid.world.map.th:getCellFlags(x, y) return flag_cache.hospital and not flag_cache.room and dist <= can_join_queue_distance and flag_cache.owner == humanoid.hospital:getPlayerIndex() end --! Trim the last part of the path when it is possible to join the reception queue. --!param humanoid Humanoid that will walk the path. --!param path_x (array of int) X coordinates of the path, modified in-place. --!param path_y (array of int) Y coordinates of the path, modified in-place. local function trimQueuingTail(humanoid, path_x, path_y) local pathindex = #path_x for i = pathindex - 1, 2, -1 do if can_join_queue_at(humanoid, path_x[i], path_y[i], pathindex - i) then path_x[i + 1] = nil path_y[i + 1] = nil else break end end return end -- Start of the seek-reception action. local function action_seek_reception_start(action, humanoid) local world = humanoid.world local best_desk local score local best_distance_from_desk assert(humanoid.hospital, "humanoid must be associated with a hospital to seek reception") -- Go through all receptions desks. for _, desk in ipairs(humanoid.hospital:getReceptionDesks(true)) do -- Ok, so we found one with staff at it or on the way. -- Is this one better than the last one? -- A lower score is better. -- First find out where the usage tile is. local orientation = desk.object_type.orientations[desk.direction] local x = desk.tile_x + orientation.use_position[1] local y = desk.tile_y + orientation.use_position[2] local distance_from_desk = humanoid.world:getPathDistance(humanoid.tile_x, humanoid.tile_y, x, y) if distance_from_desk then local this_score = distance_from_desk + desk:getUsageScore() if not score or this_score < score then -- It is better, or the first one! score = this_score best_desk = desk best_distance_from_desk = distance_from_desk end end end if best_desk then -- We found a desk to go to! local orientation = best_desk.object_type.orientations[best_desk.direction] local x = best_desk.tile_x + orientation.use_position[1] local y = best_desk.tile_y + orientation.use_position[2] -- TODO: Make 'else' method work for all humanoids if class.is(humanoid, Vip) or class.is(humanoid, Inspector) then humanoid:updateDynamicInfo(_S.dynamic_info.patient.actions.on_my_way_to :format(best_desk.object_type.name)) else humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.on_my_way_to :format(best_desk.object_type.name)) end humanoid.waiting = nil -- We don't want patients which have just spawned to be joining the queue -- immediately, so walk them closer to the desk before joining the queue if can_join_queue_at(humanoid, humanoid.tile_x, humanoid.tile_y, best_distance_from_desk) then local face_x, face_y = best_desk:getSecondaryUsageTile() humanoid:setNextAction(QueueAction(x, y, best_desk.queue):setMustHappen(action.must_happen) :setFaceDirection(face_x, face_y)) else local walk = WalkAction(x, y, true):setMustHappen(action.must_happen) humanoid:queueAction(walk, 0) trimQueuingTail(humanoid, walk.path_x, walk.path_y) walk.x = walk.path_x[#walk.path_x] walk.y = walk.path_y[#walk.path_x] end humanoid.hospital:msgMultiReceptionDesks() else -- No reception desk found. One will probably be built soon, somewhere in -- the hospital, so either walk to the hospital, or walk around the hospital. local procrastination if humanoid.hospital:isInHospital(humanoid.tile_x, humanoid.tile_y) then procrastination = MeanderAction():setCount(1):setMustHappen(action.must_happen) if not humanoid.waiting then -- Eventually people are going to get bored and leave. humanoid.waiting = 5 end else local _, hosp_x, hosp_y = world.pathfinder:isReachableFromHospital(humanoid.tile_x, humanoid.tile_y) procrastination = WalkAction(hosp_x, hosp_y):setMustHappen(action.must_happen) end humanoid:queueAction(procrastination, 0) end end return action_seek_reception_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/seek_room.lua000066400000000000000000000374451522247547500235710ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "SeekRoomAction" (HumanoidAction) ---@type SeekRoomAction local SeekRoomAction = _G["SeekRoomAction"] --! Find another room (and go to it). --!param room_type Type of the new room. function SeekRoomAction:SeekRoomAction(room_type) assert(type(room_type) == "string", "Invalid value for parameter 'room_type'") self:HumanoidAction("seek_room") self.room_type = room_type self.treatment_room = nil -- Whether the next room is a treatment room. self.diagnosis_room = nil end --! Denote that the room being looked for is a treatment room. --!return (action) self, for daisy-chaining. function SeekRoomAction:enableTreatmentRoom() self.treatment_room = true return self end --! Sets the index of the room to use from the disease's available diagnosis -- rooms --!param room (integer) key in the available diagnosis room list function SeekRoomAction:setDiagnosisRoom(room) assert(type(room) == "number", "Invalid value for parameter 'room'") self.diagnosis_room = room return self end --! Finds a relevant diagnosis/treatment room(s) for a patient --! If diagnosis room, attempt to use GP's choice first, else select any other available --! room at random. local action_seek_room_find_room = permanent"action_seek_room_find_room"( function(action, humanoid) local room_type = action.room_type if action.diagnosis_room then -- Attempt to use the GP's chosen diagnosis room first if room_type then local room = humanoid.world:findRoomNear(humanoid, room_type, nil, "advanced") if room then return room end end local diagnosis_rooms = humanoid.available_diagnosis_rooms -- Make numbers for each available diagnosis room. A random index from this list will be chosen, -- and then the corresponding room index is taken as next room. (The list decreases for each room -- missing) local rooms_to_check = {} for i=1, #diagnosis_rooms do rooms_to_check[i] = i end while #rooms_to_check > 0 do -- Choose a diagnosis room from the list at random. Note: This ignores the initial diagnosis room! local room_at_index = math.random(1,#rooms_to_check) room_type = diagnosis_rooms[rooms_to_check[room_at_index]] -- Try to find the room local room = humanoid.world:findRoomNear(humanoid, room_type, nil, "advanced") if room then -- Update action with the room to be used for k, v in pairs(diagnosis_rooms) do if room_type == v then action:setDiagnosisRoom(k) break end end action.room_type = room_type return room else -- Remove the index of this room from the list of indices available in available_diagnosis_rooms table.remove(rooms_to_check, room_at_index) -- If the room can be built, set the flag for it. local diag = humanoid.world.available_rooms[room_type] if diag and humanoid.hospital:isRoomDiscovered(diag.id) then action.diagnosis_exists = room_type end end end -- No room found. If the last room to be checked was one that is not yet discovered -- but another one exists that can be built, return to that one. if not humanoid.world.available_rooms[room_type] and action.diagnosis_exists then action.room_type = action.diagnosis_exists end return nil elseif action.treatment_room then -- Treatment rooms etc either exist, or they don't. -- However, if many rooms are needed to treat the patient they all need to be available. -- Example: ward + operating theatre. for _, rooms in pairs(humanoid.disease.treatment_rooms) do if not humanoid.world:findRoomNear(humanoid, rooms, nil, "advanced") then action.room_type_needed = rooms return nil end end end return humanoid.world:findRoomNear(humanoid, room_type, nil, "advanced") end) local action_seek_room_goto_room = permanent"action_seek_room_goto_room"( function(room, humanoid, diagnosis_room) humanoid:setMood("patient_wait", "deactivate") humanoid.waiting = nil humanoid.message_callback = nil humanoid:setNextAction(room:createEnterAction(humanoid)) humanoid.next_room_to_visit = room humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.on_my_way_to :format(room.room_info.name)) room.door:updateDynamicInfo() if not room:testStaffCriteria(room:getRequiredStaffCriteria()) then humanoid.world.dispatcher:callForStaff(room) end if diagnosis_room then -- The diagnosis room was found, remove it from the list table.remove(humanoid.available_diagnosis_rooms, diagnosis_room) end end) local function action_seek_room_no_diagnosis_room_found(action, humanoid) --If it's the VIP then there's been an explosion. Skip the exploded room if class.is(humanoid, Vip) then humanoid.waiting = 1 return end -- If none of the diagnosis rooms can be built yet, go home anyway. -- Otherwise, depending on hospital policy three things can happen: if humanoid.diagnosis_progress < humanoid.hospital.policies["send_home"] then -- Send home automatically humanoid:goHome("kicked") humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.no_diagnoses_available) elseif humanoid.diagnosis_progress < humanoid.hospital.policies["guess_cure"] or not humanoid.hospital.disease_casebook[humanoid.disease.id].discovered then -- If the disease hasn't been discovered yet it cannot be guessed, go here instead. -- Ask the player -- Wait two months before going home anyway. humanoid:setMood("patient_wait", "activate") humanoid.waiting = 60 humanoid.hospital:makeNoDiagnosisRoomFax(humanoid) humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.awaiting_decision) -- This seek_room action will be reused, return that it's valid. return true else -- Guess "type of disease" automatically. -- A patient with an undiscovered disease should never get here. assert(humanoid.hospital.disease_casebook[humanoid.disease.id].discovered) humanoid:setDiagnosed() humanoid:unregisterRoomBuildCallback(action.build_callback) humanoid:unregisterRoomRemoveCallback(action.remove_callback) humanoid:unregisterStaffChangeCallback(action.staff_change_callback) if humanoid:agreesToPay(humanoid.disease.id) then local seek_action = SeekRoomAction(humanoid.disease.treatment_rooms[1]) seek_action:enableTreatmentRoom() humanoid:queueAction(seek_action, 1) else humanoid:goHome("over_priced", humanoid.disease.id) end humanoid:finishAction() end end local action_seek_room_interrupt = permanent"action_seek_room_interrupt"( function(action, humanoid) -- Just in case we are somehow started again: -- FIXME: This seems to be used for intermediate actions like peeing while the patient is waiting -- Unfortunately this means that if you finish the required room while the patient is peeing -- the callback does not happen, meaning that the message does not disappear. humanoid:unregisterRoomBuildCallback(action.build_callback) humanoid:unregisterRoomRemoveCallback(action.remove_callback) humanoid:unregisterStaffChangeCallback(action.staff_change_callback) action.build_callback = nil action.remove_callback = nil action.staff_change_callback = nil action.done_init = false humanoid:finishAction() end) local function action_seek_room_start(action, humanoid) if action.todo_interrupt then humanoid:finishAction() return end -- Seeking for toilets is a special case with its own action. if action.room_type == "toilets" then humanoid:queueAction(SeekToiletsAction(), 1) humanoid:finishAction() return end -- Try to find the appropriate room for the patient if not humanoid.diagnosed or action.room_type == "research" then local room = action_seek_room_find_room(action, humanoid) -- if we have the room but not the staff we shouldn't seek out the room either if room then humanoid.hospital:removeMessage(humanoid) action_seek_room_goto_room(room, humanoid, action.diagnosis_room) return end end -- check we can treat the patient - and just shortcut the processing local req = humanoid.hospital:checkDiseaseRequirements(humanoid.disease.id) if humanoid.diagnosed then local room = action_seek_room_find_room(action, humanoid) -- if we have the room but not the staff we shouldn't seek out the room either if room and (not req or not action.treatment_room) then humanoid.hospital:removeMessage(humanoid) action_seek_room_goto_room(room, humanoid, action.diagnosis_room) return end end -- we can't yet treat the patient, register callbacks -- create message etc if not action.done_init then action.done_init = true action.must_happen = true local remove_callback = --[[persistable:action_seek_room_remove_callback]] function() humanoid:updateMessage("research") end -- End of remove_callback function action.remove_callback = remove_callback humanoid:registerRoomRemoveCallback(remove_callback) local build_callback local staff_change_callback staff_change_callback = --[[persistable:action_seek_room_staff_change_callback]] function(staff) -- we might have hired or fired a staff member -- technically we don't care about Receptionist or Handyman if class.is(staff, Receptionist) or class.is(staff, Handyman) then return end -- update the message either way humanoid:updateMessage("research") local room_req = humanoid.hospital:checkDiseaseRequirements(humanoid.disease.id) -- only need to check if we hired someone if not staff.fired and not room_req then local room = action_seek_room_find_room(action, humanoid) if room then humanoid.hospital:removeMessage(humanoid) humanoid:unregisterRoomBuildCallback(build_callback) humanoid:unregisterRoomRemoveCallback(remove_callback) humanoid:unregisterStaffChangeCallback(staff_change_callback) action_seek_room_goto_room(room, humanoid, action.diagnosis_room) end end end -- End of staff_change_callback function action.staff_change_callback = staff_change_callback humanoid:registerStaffChangeCallback(staff_change_callback) build_callback = --[[persistable:action_seek_room_build_callback]] function(rm) -- if research room was built, message may need to be updated humanoid:updateMessage("research") local found = false if rm.room_info.id == action.room_type then found = true elseif rm.room_info.id == action.room_type_needed then -- So the room that we're going to is not actually the room we waited for to be built. -- Example: Will go to ward, but is waiting for the operating theatre. -- Clean up and start over to find the room we actually want to go to. humanoid.hospital:removeMessage(humanoid) humanoid:unregisterRoomBuildCallback(build_callback) humanoid:unregisterRoomRemoveCallback(remove_callback) humanoid:unregisterStaffChangeCallback(staff_change_callback) action.room_type_needed = nil action_seek_room_start(action, humanoid) elseif not humanoid.diagnosed then -- Waiting for a diagnosis room, we need to go through the list - unless it is gp if action.room_type ~= "gp" then for i = 1, #humanoid.available_diagnosis_rooms do if humanoid.available_diagnosis_rooms[i].id == rm.room_info.id then found = true end end end end if found then -- Don't add a "go to room" action to the patient's queue if the -- autopsy machine is about to kill them: -- don't need this as we unregistered all previous callbacks if we went to research local room_req = humanoid.hospital:checkDiseaseRequirements(humanoid.disease.id) -- get required staff if not humanoid.diagnosed or (not room_req or not action.treatment_room) then action_seek_room_goto_room(rm, humanoid, action.diagnosis_room) humanoid.hospital:removeMessage(humanoid) humanoid:unregisterRoomBuildCallback(build_callback) humanoid:unregisterRoomRemoveCallback(remove_callback) humanoid:unregisterStaffChangeCallback(staff_change_callback) end end end -- End of build_callback function action.build_callback = build_callback humanoid:registerRoomBuildCallback(build_callback) action.on_interrupt = action_seek_room_interrupt end -- Things needed to get the patient to the correct room in due time are done. Now it's -- time to let the player know about it too. -- If done_walk is set the meander action that takes place after not finding any room has been -- done = nothing more to do right now. if not action.done_walk then local action_still_valid = true if not action.message_sent then -- Make a message about that something needs to be done about this patient if humanoid.diagnosed then -- Emergency patients also don't need to ask what to do, they'll just wait for the player -- to build the necessary room. if not humanoid.is_emergency then -- The patient is diagnosed, a treatment room is missing. -- It may happen that it is another room in a series which is missing. humanoid.hospital:makeNoTreatmentRoomFax(humanoid) -- Wait two months before going home anyway. humanoid.waiting = 60 humanoid:setMood("patient_wait", "activate") humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.awaiting_decision) end else if action.room_type == "gp" then -- The GP's office is a special case. humanoid:setMood("patient_wait", "activate") humanoid:setDynamicInfoText(_S.dynamic_info.patient.actions.no_gp_available) humanoid.hospital:adviseNoGPOffice() else -- No more diagnosis rooms can be found action_still_valid = action_seek_room_no_diagnosis_room_found(action, humanoid) end end end if action_still_valid then action.done_walk = true humanoid:queueAction(MeanderAction():setCount(1):setMustHappen(true), 0) end else -- Make sure the patient stands in a correct way as he/she is waiting. local direction = humanoid.last_move_direction local anims = humanoid.walk_anims if direction == "north" then humanoid:setAnimation(anims.idle_north, 0) elseif direction == "east" then humanoid:setAnimation(anims.idle_east, 0) elseif direction == "south" then humanoid:setAnimation(anims.idle_east, 1) elseif direction == "west" then humanoid:setAnimation(anims.idle_north, 1) end humanoid:setTilePositionSpeed(humanoid.tile_x, humanoid.tile_y) end end return action_seek_room_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/seek_staffroom.lua000066400000000000000000000045151522247547500246050ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "SeekStaffRoomAction" (HumanoidAction) ---@type SeekStaffRoomAction local SeekStaffRoomAction = _G["SeekStaffRoomAction"] function SeekStaffRoomAction:SeekStaffRoomAction() self:HumanoidAction("seek_staffroom") self:setMustHappen(true) end local function seek_staffroom_action_start(action, humanoid) -- Mechanism for clearing the going_to_staffroom flag when this action is -- interrupted (due to entering the staff room, being picked up, etc.) if action.todo_interrupt then humanoid.going_to_staffroom = nil humanoid:finishAction() return end action.must_happen = true -- Go to the nearest staff room, if any is found. local room = humanoid.world:findRoomNear(humanoid, "staff_room") if room then local task = room:createEnterAction(humanoid):setMustHappen(true):setIsLeaving(true) humanoid:queueAction(task, 0) humanoid:setDynamicInfoText(_S.dynamic_info.staff.actions.heading_for:format(room.room_info.name)) else -- This should happen only in rare cases, e.g. if the target staff room was removed while heading there and none other exists print("No staff room found in seek_staffroom action") humanoid.going_to_staffroom = nil humanoid:queueAction(MeanderAction()) humanoid:finishAction() end end return seek_staffroom_action_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/seek_toilets.lua000066400000000000000000000053031522247547500242640ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Based on seek_staffroom.lua by Manuel Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "SeekToiletsAction" (HumanoidAction) ---@type SeekToiletsAction local SeekToiletsAction = _G["SeekToiletsAction"] function SeekToiletsAction:SeekToiletsAction() self:HumanoidAction("seek_toilets") end local function seek_toilets_action_start(action, humanoid) -- Mechanism for clearing the going_to_toilets flag when this action is -- interrupted. if action.todo_interrupt then humanoid.going_to_toilet = "no" humanoid:finishAction() return end action.must_happen = true -- Go to the nearest toilet, if any is found. local room = humanoid.world:findRoomNear(humanoid, "toilets", nil, "advanced") if room then humanoid:setNextAction(room:createEnterAction(humanoid):setMustHappen(true)) -- Unexpect the patient from a possible destination room. if humanoid.next_room_to_visit then local queue = humanoid.next_room_to_visit.door.queue if queue then queue:unexpect(humanoid) end humanoid:setDynamicInfoText("") end -- toilet door should reflect the expected count room.door:updateDynamicInfo() humanoid:finishAction() else -- This should happen only in rare cases, e.g. if the target toilet room was -- removed while heading there and none other exists. In that case, go back -- to the previous room or go to the reception. if humanoid.next_room_to_visit then humanoid:setNextAction(SeekRoomAction(humanoid.next_room_to_visit.room_info.id)) else humanoid:queueAction(SeekReceptionAction()) end humanoid.going_to_toilet = "no" humanoid:finishAction() end end return seek_toilets_action_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/shake_fist.lua000066400000000000000000000037071522247547500237200ustar00rootroot00000000000000--[[ Copyright (c) 2011 Mark "Mark.L" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "ShakeFistAction" (HumanoidAction) ---@type ShakeFistAction local ShakeFistAction = _G["ShakeFistAction"] function ShakeFistAction:ShakeFistAction() self:HumanoidAction("shake_fist") self:setMustHappen(true) end local action_shake_fist_end = permanent"action_shake_fist_end"( function(humanoid) humanoid:finishAction() end) local function action_shake_fist_start(action, humanoid) if math.random(0, 1) == 1 then humanoid.last_move_direction = "east" else humanoid.last_move_direction = "south" end assert(humanoid.shake_fist_anim, "Error: no shaking fist animation for humanoid " .. humanoid.humanoid_class) action.must_happen = true humanoid:setAnimation(humanoid.shake_fist_anim, humanoid.last_move_direction == "east" and 0 or 1) humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.shake_fist_anim), action_shake_fist_end) end return action_shake_fist_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/spawn.lua000066400000000000000000000113211522247547500227170ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "SpawnAction" (HumanoidAction) ---@type SpawnAction local SpawnAction = _G["SpawnAction"] --! Spawn an entity. --!param mode (str) Mode of spawning: "spawn" or "despawn" --!param point (table x, y, optional direction) Position and optional face direction of spawning or despawning. function SpawnAction:SpawnAction(mode, point) assert(mode == "spawn" or mode == "despawn", "Invalid value for parameter 'mode'") assert(type(point) == "table" and type(point.x) == "number" and type(point.y) == "number", "Invalid value for parameter 'point'") self:HumanoidAction("spawn") self.mode = mode -- mode of spawning: "spawn" or "despawn" self.point = point self.offset = nil -- Offset in position?? end --! Set the offset of spawning. --! --! These two values specifies how many tiles away the humanoid should start --! walking before actually spawning in the destination tile. Default is x and --! y values are 2, and should not be set less than or equal to 0. Only one of --! x or y offsets are used depending on the initial walk direction of the --! newly spawned humanoid. --!param offset (table x, y) Position offset. --!return (action) Return self for daisy chaining. function SpawnAction:setOffset(offset) assert(type(offset) == "table" and (offset.x == nil or (type(offset.x) == "number" and offset.x > 0)) and (offset.y == nil or (type(offset.y) == "number" and offset.y > 0)), "Invalid value for parameter 'offset'") self.offset = offset return self end local orient_opposite = { north = "south", west = "east", east = "west", south = "north", } local action_spawn_despawn = permanent"action_spawn_despawn"( function(humanoid) if humanoid.hospital then humanoid:despawn() end humanoid.world:destroyEntity(humanoid) end) local function action_spawn_start(action, humanoid) assert(action.mode == "spawn" or action.mode == "despawn", "spawn action given invalid mode: " .. action.mode) local x, y = action.point.x, action.point.y -- For despawning, insert a walk to the despawning position if the humanoid is -- not there. if action.mode == "despawn" and (humanoid.tile_x ~= x or humanoid.tile_y ~= y) then humanoid:queueAction(WalkAction(action.point.x, action.point.y):setMustHappen(action.must_happen), 0) return end action.must_happen = true local anims = humanoid.walk_anims local walk_dir = action.point.direction if action.mode == "spawn" then walk_dir = orient_opposite[walk_dir] end local offset_x = 2 local offset_y = 2 if action.offset then offset_x = action.offset.x and action.offset.x or 2 offset_y = action.offset.y and action.offset.y or 2 end assert(offset_x > 0 and offset_y > 0, "Spawning needs to be done from an adjacent tile.") local anim, flag, speed_x, speed_y, duration if walk_dir == "east" then anim, flag, speed_x, speed_y, duration = anims.walk_east , 0, 4, 2, 10 * offset_x elseif walk_dir == "west" then anim, flag, speed_x, speed_y, duration = anims.walk_north, 1, -4, -2, 10 * offset_x elseif walk_dir == "south" then anim, flag, speed_x, speed_y, duration = anims.walk_east , 1, -4, 2, 10 * offset_y else--if walk_dir == "north" then anim, flag, speed_x, speed_y, duration = anims.walk_north, 0, 4, -2, 10 * offset_y end humanoid.last_move_direction = walk_dir humanoid:setAnimation(anim, flag) local pos_x, pos_y = 0, 0 if action.mode == "spawn" then pos_x = -speed_x * duration pos_y = -speed_y * duration humanoid:setTimer(duration, humanoid.finishAction) else humanoid:setTimer(duration, action_spawn_despawn) end humanoid:setTilePositionSpeed(x, y, pos_x, pos_y, speed_x, speed_y) end return action_spawn_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/staff_reception.lua000066400000000000000000000105701522247547500247470ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "StaffReceptionAction" (HumanoidAction) ---@type StaffReceptionAction local StaffReceptionAction = _G["StaffReceptionAction"] -- Action class for the "staff reception desk" action. --!param desk (object) Desk to staff. function StaffReceptionAction:StaffReceptionAction(desk) assert(class.is(desk, ReceptionDesk), "Invalid value for parameter 'desk'") -- luacheck: ignore 113 self:HumanoidAction("staff_reception") self.object = desk -- Reception desk object. self:setMustHappen(true) end local action_staff_reception_interrupt = permanent"action_staff_reception_interrupt"( function(action, humanoid, high_priority) local object = action.object object.receptionist = nil if not object.being_destroyed then -- don't look for replacement if desk was picked up object:checkForNearbyStaff() end humanoid.associated_desk = nil local dx, dy = object:getSecondaryUsageTile() if high_priority then humanoid:setTilePositionSpeed(dx, dy) humanoid:finishAction() else HumanoidRawWalk(humanoid, humanoid.tile_x, humanoid.tile_y, dx, dy, nil, --[[persistable:action_staff_reception_walk]] function() humanoid:setTilePositionSpeed(dx, dy) humanoid:finishAction() end) end end) local action_staff_reception_idle_phase = permanent"action_staff_reception_idle_phase"( function(humanoid) local action = humanoid:getCurrentAction() local direction = humanoid.last_move_direction local anims = humanoid.walk_anims local object = action.object if direction == "north" then humanoid:setAnimation(anims.idle_north, 0) elseif direction == "east" then humanoid:setAnimation(anims.idle_east, 0) elseif direction == "south" then humanoid:setAnimation(anims.idle_east, 1) elseif direction == "west" then humanoid:setAnimation(anims.idle_north, 1) end humanoid:setTilePositionSpeed(object.tile_x, object.tile_y) object.receptionist = humanoid object.reserved_for = nil object.th:makeVisible() if direction == "north" or direction == "west" then -- Place desk behind receptionist in render order (they are on the same tile) local map, x, y = object.th:getTile() object.th:setTile(map, x, y, object:getDrawingLayer()) end if action.on_interrupt then action.on_interrupt = action_staff_reception_interrupt else action_staff_reception_interrupt(action, humanoid) end end) local action_staff_reception_interrupt_early = permanent"action_staff_reception_interrupt_early"( function(action, humanoid, high_priority) if high_priority then action.object.reserved_for = nil humanoid.associated_desk:checkForNearbyStaff() humanoid.associated_desk = nil humanoid:setTimer(nil) humanoid:setTilePositionSpeed(action.object:getSecondaryUsageTile()) humanoid:finishAction() end end) local function action_staff_reception_start(action, humanoid) if action.todo_interrupt then humanoid.associated_desk.reserved_for = nil humanoid.associated_desk:checkForNearbyStaff() humanoid.associated_desk = nil humanoid:finishAction(action) return end local object = action.object HumanoidRawWalk(humanoid, humanoid.tile_x, humanoid.tile_y, object.tile_x, object.tile_y, nil, action_staff_reception_idle_phase) action.must_happen = true action.on_interrupt = action_staff_reception_interrupt_early end return action_staff_reception_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/sweep_floor.lua000066400000000000000000000053111522247547500241150ustar00rootroot00000000000000--[[ Copyright (c) 2011 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "SweepFloorAction" (HumanoidAction) ---@type SweepFloorAction local SweepFloorAction = _G["SweepFloorAction"] function SweepFloorAction:SweepFloorAction(litter) assert(class.is(litter, Litter), "Invalid value for parameter 'litter'") self:HumanoidAction("sweep_floor") self.litter = litter end -- Set markers for all animations involved. local animation_numbers = { 1874, 1878, } TheApp.animation_manager:setStaffMarker(animation_numbers, {-1, 0, "px"}) local finish = permanent"action_sweep_floor_finish"( function(humanoid) humanoid:finishAction() end) local remove_litter = permanent"action_sweep_floor_remove_litter"( function(humanoid) humanoid.user_of:remove() humanoid.user_of:setTile(nil) humanoid.user_of = nil humanoid:setTimer(TheApp.animation_manager:getAnimLength(animation_numbers[2]) * 2, finish) end) local sweep = permanent"action_sweep_floor_sweep"( function(humanoid) local anim = animation_numbers[2] humanoid:setAnimation(anim) humanoid:setTimer(TheApp.animation_manager:getAnimLength(anim) * 2, remove_litter) end) local function action_sweep_floor_start(action, humanoid) action.must_happen = true humanoid.user_of = action.litter -- remove handyman task as soon as action starts - we should be committed to completing this task local litter = action.litter local hospital = litter.hospital local taskIndex = hospital:getIndexOfTask(litter.tile_x, litter.tile_y, "cleaning", litter) hospital:removeHandymanTask(taskIndex, "cleaning") local anim = animation_numbers[1] humanoid:setAnimation(anim) humanoid:setTimer(TheApp.animation_manager:getAnimLength(anim), sweep) end return action_sweep_floor_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/tap_foot.lua000066400000000000000000000036451522247547500234140ustar00rootroot00000000000000--[[ Copyright (c) 2011 Mark "Mark.L" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "TapFootAction" (HumanoidAction) ---@type TapFootAction local TapFootAction = _G["TapFootAction"] function TapFootAction:TapFootAction() self:HumanoidAction("tap_foot") self:setMustHappen(true) end local action_tap_foot_end = permanent"action_tap_foot_end"( function(humanoid) humanoid:finishAction() end) local function action_tap_foot_start(action, humanoid) if math.random(0, 1) == 1 then humanoid.last_move_direction = "east" else humanoid.last_move_direction = "south" end assert(humanoid.tap_foot_anim, "Error: foot tapping animation for humanoid " .. humanoid.humanoid_class) action.must_happen = true humanoid:setAnimation(humanoid.tap_foot_anim, humanoid.last_move_direction == "east" and 0 or 1) humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.tap_foot_anim), action_tap_foot_end) end return action_tap_foot_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/use_object.lua000066400000000000000000000405331522247547500237200ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") class "UseObjectAction" (HumanoidAction) ---@type UseObjectAction local UseObjectAction = _G["UseObjectAction"] --! Construct a 'use object' action. --!param object (Object) Object to use. function UseObjectAction:UseObjectAction(object) assert(class.is(object, Object), "Invalid value for parameter 'object'") self:HumanoidAction("use_object") self.object = object self.watering_plant = false -- Whether the action is watering the plant. self.prolonged_usage = nil -- If true, the usage is prolonged. end --! Set the 'watering plant' flag. --!return (action) self, for daisy chaining. function UseObjectAction:enableWateringPlant() self.watering_plant = true return self end --! Set prolonged usage of the object. --!param prolonged (bool or nil) If set, enable prolonged usage of the object. --!return (action) self, for daisy-chaining. function UseObjectAction:setProlongedUsage(prolonged) assert(prolonged == nil or type(prolonged) == "boolean", "Invalid value for parameter 'prolonged'") self.prolonged_usage = prolonged return self end local orient_mirror = { north = "west", west = "north", east = "south", south = "east", } --! Find the next phase with an animation to show. --!param action (UseObjectAction) The use_object action. --!param phase The previous displayed phase or -100. --!return The phase to show after the previous phase. Is 100 if there are no -- phases with animations anymore. local function action_use_next_phase(action, phase) phase = phase + 1 if phase < -6 then phase = -6 end if phase == -6 and not action.do_walk then phase = phase + 1 end if phase == -5 and not action.anims.begin_use then phase = phase + 1 end if phase == -4 and not action.anims.begin_use_2 then phase = phase + 1 end if phase == -3 and not action.anims.begin_use_3 then phase = phase + 1 end if phase == -2 and not action.anims.begin_use_4 then phase = phase + 1 end if phase == -1 and not action.anims.begin_use_5 then phase = phase + 1 end if phase == 0 and not action.anims.in_use then phase = phase + 1 end if phase == 1 and not action.anims.finish_use then phase = phase + 1 end if phase == 2 and not action.anims.finish_use_2 then phase = phase + 1 end if phase == 3 and not action.anims.finish_use_3 then phase = phase + 1 end if phase == 4 and not action.anims.finish_use_4 then phase = phase + 1 end if phase == 5 and not action.anims.finish_use_5 then phase = phase + 1 end if phase == 6 and not action.do_walk or phase == 6 and action.destroy_user_after_use then phase = phase + 1 end if phase > 6 then phase = 100 end return phase end --! Compute and set the position of the animated humanoid from the footprint. -- The humanoid does not move. --!param action (UseObjectAction) Action being performed. --!param humanoid (Humanoid) Person using the object. local function setHumanoidTileSpeed(action, humanoid) local object = action.object local obj_orient = object.object_type.orientations[object.direction] -- Decide the animation tile. local tx, ty if obj_orient.use_animate_from_use_position then tx, ty = action.old_tile_x, action.old_tile_y else tx, ty = object:getRenderAttachTile() end if class.is(humanoid, Handyman) and obj_orient.added_handyman_animate_offset_while_in_use then tx = tx + obj_orient.added_handyman_animate_offset_while_in_use[1] ty = ty + obj_orient.added_handyman_animate_offset_while_in_use[2] end -- Decide pixel offset. local anim_offset = obj_orient.animation_offset local added_offset = obj_orient.added_animation_offset_while_in_use or {0, 0} local px = anim_offset[1] + added_offset[1] local py = anim_offset[2] + added_offset[2] humanoid:setTilePositionSpeed(tx, ty, px, py) end local action_use_object_tick local function action_use_phase(action, humanoid, phase) local object = action.object humanoid.user_of = nil -- Temporary to avoid tile change warning action.phase = phase if phase == -6 then HumanoidRawWalk(humanoid, action.old_tile_x, action.old_tile_y, action.new_tile_x, action.new_tile_y, nil, action_use_object_tick) return elseif phase == 6 then HumanoidRawWalk(humanoid, action.new_tile_x, action.new_tile_y, action.old_tile_x, action.old_tile_y, nil, action_use_object_tick) return end -- Get the animation table for the current phase. local anim_table = action.anims.in_use -- phase 0 if phase == -5 then anim_table = action.anims.begin_use elseif phase == -4 then anim_table = action.anims.begin_use_2 elseif phase == -3 then anim_table = action.anims.begin_use_3 elseif phase == -2 then anim_table = action.anims.begin_use_4 elseif phase == -1 then anim_table = action.anims.begin_use_5 elseif phase == 1 then anim_table = action.anims.finish_use elseif phase == 2 then anim_table = action.anims.finish_use_2 elseif phase == 3 then anim_table = action.anims.finish_use_3 elseif phase == 4 then anim_table = action.anims.finish_use_4 elseif phase == 5 then anim_table = action.anims.finish_use_5 end local anim = anim_table[humanoid.humanoid_class] if not anim then -- Handymen have their own number of animations. if class.is(humanoid, Handyman) then --action_use_phase(action, humanoid, action_use_next_phase(action, phase)) action_use_object_tick(humanoid) return else error("No animation for " .. humanoid.humanoid_class .. " using " .. object.object_type.id .. " facing " .. object.direction .. " phase " .. phase) end end -- Animation can be shown 'length' times rather than just once. local anim_length = 1 if type(anim) == "table" and anim.length then anim_length = anim.length end local is_list = false if type(anim) == "table" and anim[1] ~= "morph" and #anim > 1 then -- If an animation list is provided rather than a single animation, then -- choose an animation from the list at random. is_list = true anim = anim[math.random(1, #anim)] end -- Handle various flags: -- "mirror" to mirror a single animation (possibly for the second time). -- "object_visible" whether the used object should be visible as well. -- Default is to not show it. local flags = action.mirror_flags if type(anim) == "table" then if anim.mirror then -- a single animation may be (un-)mirrored, switch the mirror flag in that case flags = flag_toggle(flags, DrawFlags.FlipHorizontal) end if anim.object_visible then -- this flag may be set to make the (idle) object visible additionally to the usage animation object.th:makeVisible() else object.th:makeInvisible() end -- If not morphing, grab the animation to show. if anim[1] ~= "morph" then anim = anim[1] end else object.th:makeInvisible() end -- For split animations, add a Crop flag to the selected animations. if object.split_anims then flags = flags + DrawFlags.Crop local anims = humanoid.world.anims for i = 2, #object.split_anims do local th = object.split_anims[i] th:setAnimation(anims, anim, flags) end end -- Morph from one animation to another. if type(anim) == "table" and anim[1] == "morph" then -- If a table with entries {"morph", A, B} is given rather than a single -- animation, then display A first, then morph to B. humanoid:setAnimation(anim[2], flags) -- A animation. local morph_target = TH.animation() local morph_flags = flags if anim.mirror_morph then morph_flags = flag_toggle(morph_flags, DrawFlags.FlipHorizontal) end morph_target:setAnimation(humanoid.world.anims, anim[3], morph_flags) -- B animation. for layer, id in pairs(humanoid.layers) do morph_target:setLayer(layer, id) end if anim.layers then for layer, id in pairs(humanoid[anim.layers]) do morph_target:setLayer(layer, id) end action.change_layers = humanoid[anim.layers] -- Rescue the layers for use afterwards. end humanoid.th:setMorph(morph_target, anim_length) anim = anim[3] else humanoid:setAnimation(anim, flags) end -- Set position (and speed) of the humanoid, and make it the user of the object. setHumanoidTileSpeed(action, humanoid) humanoid.user_of = object local frame_count = TheApp.animation_manager:getAnimLength(anim) local action_anim_count = 1 -- Number of times to show 'in_use' animation for the action. if action.min_length and phase == 0 then -- 'action.min_length' is a frame count, convert to number of complete animations. action_anim_count = math.floor((action.min_length + frame_count - 1) / frame_count) end -- Take the smallest number of of animations that satisfies both the object and -- the action minimum count. local length = math.max(action_anim_count, anim_length) * frame_count -- A timer would be redundant in certain situations, so check it is needed if phase ~= 0 or is_list or length ~= 1 or not action.prolonged_usage or not action.on_interrupt or action.loop_callback then humanoid:setTimer(length, action_use_object_tick) end end --! Setup split animations by copying the humanoid layers and hit-test -- to the other animations. local function init_split_anims(object, humanoid) if object.split_anims then for i = 2, #object.split_anims do local th = object.split_anims[i] th:setLayersFrom(humanoid.th) th:setHitTestResult(humanoid) end object.ticks = true end end --! Cleanup function after usage. local function finish_using(object, humanoid) object:removeUser(humanoid) -- Disconnect the humanoid from the object. humanoid.user_of = nil -- Restore the layers and hit-test of the object, and set all animations -- to the same frame. if object.split_anims then local anims = humanoid.world.anims local anim = object.th:getAnimation() local frame = object.th:getFrame() local flags = object.th:getFlag() for i = 2, #object.split_anims do local th = object.split_anims[i] th:setLayersFrom(object.th) th:setHitTestResult(object) th:setAnimation(anims, anim, flags) th:setFrame(frame) end -- Restore ticks to default of the object. object.ticks = object.object_type.ticks end end --! Callback after an animation. action_use_object_tick = permanent"action_use_object_tick"( function(humanoid) local action = humanoid:getCurrentAction() local object = action.object local phase = action.phase local oldphase = phase -- walk_in phase done. if oldphase == -6 then object:setUser(humanoid) humanoid.user_of = object init_split_anims(object, humanoid) if action.after_walk_in then action:after_walk_in() end end if phase ~= 0 or not action.prolonged_usage or not action.on_interrupt then -- For the 'begin_use*', the 'finish_use*', and simple 'in_use' animations, -- find to the next phase to animate. phase = action_use_next_phase(action, phase) elseif action.loop_callback then action:loop_callback() end -- Apply the layers from before the morphed animation if available. if action.change_layers then for layer, id in pairs(action.change_layers) do humanoid:setLayer(layer, id) end action.change_layers = nil end -- Except for possibly walking away from the object, all usage animations are done. -- Perform cleanup. if oldphase <= 5 and phase > 5 then finish_using(object, humanoid) end if phase == 100 then -- Any walking away from the object is done too. humanoid:setTilePositionSpeed(action.old_tile_x, action.old_tile_y) -- Check if the room is about to be destroyed local room_destroyed = false if object:isMachine() then if not class.is(humanoid, Handyman) then room_destroyed = object:machineUsed(humanoid:getRoom()) end elseif object:getDynamicInfo() and not object.master then -- Don't update if it is a slave object. object:incrementUsedCount() object:updateDynamicInfo() end if not room_destroyed then -- Note that after_use is not called if the room has been destroyed! -- In that case both the patient, staff member(s) and -- the actual object are already dead. if action.after_use then action.after_use() end if action.destroy_user_after_use then humanoid:despawn() humanoid.world:destroyEntity(humanoid) else humanoid:finishAction(action) end end else -- Perform the next phase. action_use_phase(action, humanoid, phase) end end) local action_use_object_interrupt = permanent"action_use_object_interrupt"( function(action, humanoid, high_priority) if not action.uninterruptible and high_priority then local object = action.object if humanoid.user_of then finish_using(object, humanoid) -- Cleanup after usage. elseif object:isReservedFor(humanoid) then object:removeReservedUser(humanoid) end humanoid:setTimer(nil) humanoid:setTilePositionSpeed(action.old_tile_x, action.old_tile_y) humanoid:finishAction() elseif not action.uninterruptible and not humanoid.timer_function then humanoid:setTimer(1, action_use_object_tick) end -- Only patients can be vaccination candidates so no need to check if humanoid.vaccination_candidate then humanoid:removeVaccinationCandidateStatus() end end) local function action_use_object_start(action, humanoid) action.old_tile_x = humanoid.tile_x action.old_tile_y = humanoid.tile_y action.on_interrupt = action_use_object_interrupt action.must_happen = true local object = action.object local orient = object.direction local flags = 0 if not object.object_type.usage_animations[orient] then orient = orient_mirror[orient] flags = flags + DrawFlags.FlipHorizontal end local spec = object.object_type.orientations[object.direction] -- early_list_while_in_use (if defined) will take precedence over early_list if spec.early_list_while_in_use or (spec.early_list_while_in_use == nil and spec.early_list) then flags = flags + DrawFlags.EarlyList end -- The handyman has his own place to be in if spec.finish_use_position and not class.is(humanoid, Handyman) then action.old_tile_x = object.tile_x + spec.finish_use_position[1] action.old_tile_y = object.tile_y + spec.finish_use_position[2] end if spec.walk_in_tile then action.new_tile_x = spec.walk_in_tile[1] + object.tile_x action.new_tile_y = spec.walk_in_tile[2] + object.tile_y else action.new_tile_x = object.tile_x action.new_tile_y = object.tile_y end local anims = object.object_type.usage_animations[orient] action.anims = anims action.mirror_flags = flags if action.prolonged_usage == nil and anims.begin_use and anims.in_use and anims.finish_use then action.prolonged_usage = true end -- If walking in and walking out must be done, delay assigning the object to the humanoid. if object.object_type.walk_in_to_use then action.do_walk = true else object:setUser(humanoid) humanoid.user_of = object init_split_anims(object, humanoid) end if action.watering_plant then -- Tell the plant to start restoring itself object:restoreToFullHealth() end action_use_phase(action, humanoid, action_use_next_phase(action, -100)) end return action_use_object_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/use_screen.lua000066400000000000000000000152421522247547500237300ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "UseScreenAction" (HumanoidAction) ---@type UseScreenAction local UseScreenAction = _G["UseScreenAction"] --! Action to use the screen. --!param screen (object) Screen to use. function UseScreenAction:UseScreenAction(screen) assert(class.is(screen, Object) and ( screen.object_type.id == "screen" or screen.object_type.id == "surgeon_screen"), "Invalid value for parameter 'screen'") self:HumanoidAction("use_screen") self.object = screen end local finish = permanent"action_use_screen_finish"( function(humanoid) local screen = humanoid.user_of humanoid.user_of = nil screen:removeUser(humanoid) local offset = screen.object_type.orientations[screen.direction].use_position humanoid:setTile(screen.tile_x + offset[1], screen.tile_y + offset[2]) local after_use = humanoid:getCurrentAction().after_use if after_use then after_use() end humanoid:finishAction() end) local patient_clothes_state = permanent"action_use_screen_patient_clothes_state"( function(humanoid) humanoid.user_of:setAnimation(1204) humanoid.user_of:setLayer(1, humanoid.layers[1]) return finish(humanoid) end) local normal_state = permanent"action_use_screen_normal_state"( function(humanoid) humanoid.user_of:setAnimation(1022) humanoid.user_of:setLayer(1, 0) return finish(humanoid) end) local surgical_state = permanent"action_use_screen_surgical_state"( function(humanoid) local screen = humanoid.user_of if screen.num_green_outfits > 0 then if screen.num_white_outfits > 0 then screen:setAnimation(2776) else screen:setAnimation(2772) end else screen:setAnimation(2774) end return finish(humanoid) end) local function action_use_screen_start(action, humanoid) local screen = action.object local class = humanoid.humanoid_class local anim, when_done local is_surgical = not not screen.num_green_outfits local change_to = math.random(1, 3) if class == "Elvis Patient" then anim, when_done = 946, finish humanoid:setType "Standard Male Patient" humanoid:setLayer(0, 2) humanoid:setLayer(1, math.random(0, 3) * 2) humanoid:setLayer(2, 2) elseif class == "Stripped Male Patient" then humanoid:setType "Standard Male Patient" anim, when_done = 1052, normal_state elseif class == "Stripped Female Patient" then humanoid:setType "Standard Female Patient" anim, when_done = 2844, normal_state elseif class == "Stripped Male Patient 2" then humanoid:setType "Standard Male Patient" anim, when_done = 1052, normal_state elseif class == "Stripped Female Patient 2" then humanoid:setType "Standard Female Patient" anim, when_done = 2844, normal_state elseif class == "Stripped Male Patient 3" then humanoid:setType "Standard Male Patient" anim, when_done = 1052, normal_state elseif class == "Stripped Female Patient 3" then humanoid:setType "Standard Female Patient" anim, when_done = 2844, normal_state elseif class == "Gowned Male Patient" then humanoid:setType "Standard Male Patient" anim, when_done = 4768, finish elseif class == "Gowned Female Patient" then humanoid:setType "Standard Female Patient" anim, when_done = 4770, finish elseif class == "Standard Male Patient" then if is_surgical then humanoid:setType "Gowned Male Patient" anim, when_done = 4760, finish else if change_to == 1 then humanoid:setType "Stripped Male Patient" anim, when_done = 1048, patient_clothes_state elseif change_to == 2 then humanoid:setType "Stripped Male Patient 2" anim, when_done = 1048, patient_clothes_state else humanoid:setType "Stripped Male Patient 3" anim, when_done = 1048, patient_clothes_state end end elseif class == "Standard Female Patient" then if is_surgical then humanoid:setType "Gowned Female Patient" anim, when_done = 4762, finish else if change_to == 1 then humanoid:setType "Stripped Female Patient" anim, when_done = 2848, patient_clothes_state elseif change_to == 2 then humanoid:setType "Stripped Female Patient 2" anim, when_done = 2848, patient_clothes_state else humanoid:setType "Stripped Female Patient 3" anim, when_done = 2848, patient_clothes_state end end elseif class == "Doctor" then humanoid:setType "Surgeon" when_done = surgical_state if screen.num_white_outfits > 0 then if screen.num_green_outfits > 1 then anim = 2780 else anim = 2784 end else anim = 2782 end screen.num_green_outfits = screen.num_green_outfits - 1 screen.num_white_outfits = screen.num_white_outfits + 1 elseif class == "Surgeon" then humanoid:setType "Doctor" when_done = surgical_state if screen.num_green_outfits > 0 then if screen.num_white_outfits > 1 then anim = 2796 else anim = 2790 end else anim = 2792 end screen.num_green_outfits = screen.num_green_outfits + 1 screen.num_white_outfits = screen.num_white_outfits - 1 else error(class .. " trying to use screen") end humanoid:setAnimation(anim) humanoid:setTile(screen:getRenderAttachTile()) local offset = screen.object_type.orientations[screen.direction].animation_offset humanoid:setPosition(offset[1], offset[2]) humanoid:setSpeed(0, 0) humanoid:setTimer(TheApp.animation_manager:getAnimLength(anim), when_done) screen:setUser(humanoid) humanoid.user_of = screen action.must_happen = true if action.todo_interrupt == "high" then humanoid:setTimer(nil) when_done(humanoid) end end return action_use_screen_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/use_staffroom.lua000066400000000000000000000156621522247547500244570ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "UseStaffRoomAction" (HumanoidAction) ---@type UseStaffRoomAction local UseStaffRoomAction = _G["UseStaffRoomAction"] function UseStaffRoomAction:UseStaffRoomAction() self:HumanoidAction("use_staffroom") end -- decide on the next source of relaxation the humanoid will go to -- returns target_obj, ox, oy, new_type -- the function will always return a value for new_type, depending on what type was chosen, -- but target_obj, ox and oy will be nil, if no object of the chosen target was found local decide_next_target = permanent"use_staffroom_action_decide_next_target"( function(action, humanoid) assert(action.name == "use_staffroom", "decide_next_target only works with the use_staffroom action") local cur_type = action.target_type assert(class.is(humanoid, Staff), "decide_next_target called for non-staff humanoid") local h_class = humanoid.humanoid_class local chance = math.random(1, 10) -- take sofa as default local new_type = "sofa" -- With a chance of 20%, look for a pool table (Doctor and Handyman only) -- Don't choose pool table two times in a row though if (h_class == "Doctor" or h_class == "Handyman") and cur_type ~= "pool_table" and chance <= 2 then new_type = "pool_table" end -- With a chance of 20%, look for a video game (Doctor and Nurse only) -- Don't choose video game two times in a row though if (h_class == "Doctor" or h_class == "Nurse") and cur_type ~= "video_game" and 2 < chance and chance <= 4 then new_type = "video_game" end -- Take the a near object but not always the nearest (decreasing probability over distance) for some variation. local obj, ox, oy = humanoid.world:findFreeObjectNearToUse(humanoid, new_type, "near") return obj, ox, oy, new_type end) -- randomly generate the use time for a given source of relaxation local generate_use_time = permanent"use_staffroom_action_generate_use_time"( function(type) if type == "sofa" then return math.random(50, 80) elseif type == "pool_table" then return math.random(2, 5) elseif type == "video_game" then return math.random(2, 15) end end) -- table of how much relaxation an object gives per tick local relaxation = { sofa = 0.001, pool_table = 0.05, video_game = 0.05, } -- main function of the staffroom action local function use_staffroom_action_start(action, humanoid) assert(class.is(humanoid, Staff), "use_staffroom action called for non-staff humanoid") assert(not class.is(humanoid, Receptionist), "use_staffroom action called for receptionist") -- For initial call of this function we have to decide a new target now -- Else, there should be already a new target defined if not action.next_target_type then action.target_obj, action.ox, action.oy, action.target_type = decide_next_target(action, humanoid) if action.target_obj then action.target_obj.reserved_for = humanoid end else action.target_obj = action.next_target_obj action.ox = action.next_ox action.oy = action.next_oy action.target_type = action.next_target_type action.next_target_obj = nil action.next_ox = nil action.next_oy = nil action.next_target_type = nil end -- If no target was found, then walk around for a bit and try again later if not action.target_obj then humanoid:queueAction(MeanderAction():setCount(2), 0) return end -- Otherwise, walk to and use the object: -- Note: force prolonged_usage, because video_game wouldn't get it by default (because it has no begin and end animation) local obj_use_time = generate_use_time(action.target_type) local loop_callback_use = --[[persistable:use_staffroom_action_loop_callback]] function(obj_action) humanoid:wake(relaxation[action.target_type]) -- if staff is no longer fatigued, make them leave the staff room if humanoid:getAttribute("fatigue") == 0 then humanoid:setNextAction(humanoid:getRoom():createLeaveAction()) local room = humanoid.last_room -- Send back to the last room if that room is still empty. -- (applies to training and research only) -- Make sure that the room is still there though. -- If not, just answer the call if room and room.is_active and (room.room_info.id == "research" or room.room_info.id == "training") and room:testStaffCriteria(room:getMaximumStaffCriteria(), humanoid) then humanoid:queueAction(room:createEnterAction(humanoid)) humanoid:setDynamicInfoText(_S.dynamic_info.staff.actions.heading_for:format(room.room_info.name)) else -- Send the staff out of the room if room and room.is_active and (room.room_info.id == "research" or room.room_info.id == "training") then -- Clear the last room if it was training/research as we can't go back here anymore humanoid.last_room = nil end humanoid:queueAction(MeanderAction()) end else obj_use_time = obj_use_time - 1 -- if staff is done using object if obj_use_time == 0 then -- Decide on the next target. If it happens to be of the same type as the current, just continue using the current. -- also check x,y co-ords to see if the object actually exists in the room action.next_target_obj, action.next_ox, action.next_oy, action.next_target_type = decide_next_target(action, humanoid) if (not action.next_ox and not action.next_oy) or action.next_target_type == action.target_type then obj_use_time = generate_use_time(action.target_type) else if action.next_target_obj then action.next_target_obj.reserved_for = humanoid end obj_action.prolonged_usage = false end end end end local obj_action = UseObjectAction(action.target_obj):setProlongedUsage(true) :setLoopCallback(loop_callback_use) humanoid:queueAction(WalkAction(action.ox, action.oy), 0) humanoid:queueAction(obj_action, 1) end return use_staffroom_action_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/vaccinate.lua000066400000000000000000000101651522247547500235310ustar00rootroot00000000000000--[[ Copyright (c) 2013 William "sadger" Gatens Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "VaccinateAction" (HumanoidAction) ---@type VaccinateAction local VaccinateAction = _G["VaccinateAction"] -- Vaccinate action constructor for a nurse. --!param patient (Patient) Patient to vaccinate. --!param fee Amount of money to pay. function VaccinateAction:VaccinateAction(patient, fee) assert(class.is(patient, Patient), "Invalid value for parameter 'patient'") assert(type(fee) == "number", "Invalid value for parameter 'fee'") self:HumanoidAction("vaccinate") self.patient = patient -- Patient to vaccinate. self.vaccination_fee = fee -- Money to get from the patient. self:setMustHappen(true) end local is_in_adjacent_square = permanent"vacc_adjacent_square"( function (patient,nurse) local x1, y1 = patient.tile_x, patient.tile_y local x2, y2 = nurse.tile_x, nurse.tile_y if not x1 or not x2 or not y1 or not y2 then return false end -- Determine if they are in an adjacent square local x_diff = math.abs(x1-x2) local y_diff = math.abs(y1-y2) if (x_diff + y_diff == 1) then -- And neither of them are in a room so must be outside return (not patient:getRoom() and not nurse:getRoom()) end end) local find_face_direction = permanent"vacc_find_face_direction"( function(nurse, patient) local nx, ny = nurse.tile_x, nurse.tile_y local px, py = patient.tile_x, patient.tile_y local x_diff = px - nx local y_diff = py - ny if x_diff == 1 then return "east" elseif x_diff == -1 then return "west" elseif y_diff == -1 then return "north" elseif y_diff == 1 then return "south" end end) local interrupt_vaccination = permanent"action_interrupt_vaccination"( function(_, humanoid) local epidemic = humanoid.hospital.epidemic epidemic:interruptVaccinationActions(humanoid) humanoid:setTimer(1, humanoid.finishAction) end) local function vaccinate(action, nurse) assert(class.is(nurse, Nurse)) local patient = action.patient local perform_vaccination = --[[persistable:action_perform_vaccination]] function() -- Check if they STILL are in an adjacent square if is_in_adjacent_square(nurse, patient) then CallsDispatcher.queueCallCheckpointAction(nurse) nurse:queueAction(AnswerCallAction()) patient:setVaccinatedStatus() patient.hospital:spendMoney(action.vaccination_fee, _S.transactions.vaccination) patient:updateDynamicInfo() else patient:removeVaccinationCandidateStatus() -- Drop it they may not even be the vacc candidate anymore CallsDispatcher.queueCallCheckpointAction(nurse) nurse:queueAction(AnswerCallAction()) patient.reserved_for = nil end end if is_in_adjacent_square(nurse,patient) then local face_direction = find_face_direction(nurse,patient) nurse:queueAction(IdleAction():setDirection(face_direction):setCount(5) :setAfterUse(perform_vaccination):setOnInterrupt(interrupt_vaccination):setMustHappen(true)) else patient:removeVaccinationCandidateStatus() nurse:setCallCompleted() patient.reserved_for = nil nurse:queueAction(MeanderAction()) end nurse:finishAction() end return vaccinate CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/vip_go_to_next_room.lua000066400000000000000000000054311522247547500256530ustar00rootroot00000000000000--[[ Copyright (c) 2012 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "VipGoToNextRoomAction" (HumanoidAction) ---@type VipGoToNextRoomAction local VipGoToNextRoomAction = _G["VipGoToNextRoomAction"] function VipGoToNextRoomAction:VipGoToNextRoomAction() self:HumanoidAction("vip_go_to_next_room") end local action_vip_go_to_next_room_end = permanent"action_next_room_end"( function() end) local function action_vip_go_to_next_room_start(_, humanoid) if humanoid.next_room_no == nil then -- This vip is done here. humanoid:goHome() else -- Walk to the entrance of the room and stay there for a while. local x, y = humanoid.next_room:getEntranceXY() local callback = --[[persistable:vip_next_room_enroute_cancel]] function() humanoid:setNextAction(IdleAction()) humanoid.waiting = 1 end humanoid:queueAction(WalkAction(x, y)) -- What happens if the room disappears: humanoid.next_room.door.queue:expect(humanoid, {callback = callback}) -- Evaluation function local --[[persistable:vip_next_room_eval]] function evaluate() -- First remove the VIP from the humanoids_enroute list. humanoid.next_room.humanoids_enroute[humanoid] = nil --humanoid.next_room.door.reserved_for = humanoid humanoid:evaluateRoom() humanoid.waiting = nil end -- Find direction to look at local ix, iy = humanoid.next_room:getEntranceXY(true) local dir = "north" if iy > y then dir = "south" elseif iy == y then if ix < x then dir = "west" else dir = "east" end end humanoid:queueAction(IdleAction():setCount(50):setAfterUse(evaluate):setDirection(dir)) -- Finish this action and start the above sequence. humanoid:finishAction() end end return action_vip_go_to_next_room_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/vomit.lua000066400000000000000000000041211522247547500227250ustar00rootroot00000000000000--[[ Copyright (c) 2009 Darrell "redneon" Blake Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "VomitAction" (HumanoidAction) ---@type VomitAction local VomitAction = _G["VomitAction"] function VomitAction:VomitAction() self:HumanoidAction("vomit") self:setMustHappen(true) end local action_vomit_end = permanent"action_vomit_end"( function(humanoid) local litter = humanoid.world:newObject("litter", humanoid.tile_x, humanoid.tile_y) litter:setLitterType("puke", humanoid.last_move_direction == "south" and 0 or 1) --For some reason the vomit is inverted. humanoid:finishAction() end) local function action_vomit_start(action, humanoid) if math.random(0, 1) == 1 then humanoid.last_move_direction = "east" else humanoid.last_move_direction = "south" end assert(humanoid.vomit_anim, "Error: no vomit animation for humanoid " .. humanoid.humanoid_class) action.must_happen = true humanoid:setAnimation(humanoid.vomit_anim, humanoid.last_move_direction == "east" and 0 or 1) humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.vomit_anim), action_vomit_end) end return action_vomit_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/walk.lua000066400000000000000000000403071522247547500225330ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "WalkAction" (HumanoidAction) ---@type WalkAction local WalkAction = _G["WalkAction"] --! Action to walk to a given position. --!param x (int) X coordinate of the destination tile. --!param y (int) Y coordinate of the destination tile. --!param trimmed (boolean) Optional parameter to finish action on re-route function WalkAction:WalkAction(x, y, trimmed) assert(type(x) == "number", "Invalid value for parameter 'x'") assert(type(y) == "number", "Invalid value for parameter 'y'") self:HumanoidAction("walk") self.x = x self.y = y self.trimmed = trimmed self.truncate_only_on_high_priority = false self.walking_to_vaccinate = false -- Nurse walking with the intention to vaccinate self.is_entering = false -- Whether the walk enters a room. end function WalkAction:truncateOnHighPriority() self.truncate_only_on_high_priority = true return self end --! Nurse is walking with the intention to vaccinate. --!return (action) self, for daisy-chaining. function WalkAction:enableWalkingToVaccinate() self.walking_to_vaccinate = true return self end --! Set a flag whether the walk enters a room. --!param entering (bool) If set or nil, set the flag of entering the room. --!return (action) self, for daisy-chaining. function WalkAction:setIsEntering(entering) assert(type(entering) == "boolean", "Invalid value for parameter 'entering'") self.is_entering = entering return self end local action_walk_interrupt action_walk_interrupt = permanent"action_walk_interrupt"( function(action, humanoid, high_priority) if action.truncate_only_on_high_priority and not high_priority then action.on_interrupt = action_walk_interrupt return end -- Truncate the remainder of the path for j = #action.path_x, action.path_index + 1, -1 do action.path_x[j] = nil action.path_y[j] = nil end -- Unreserve any door which we had reserved unless specifically told not to. if not action.keep_reserved then local door = action.reserve_on_resume if door and (door.reserved_for == humanoid or class.is(humanoid, Vip)) then -- "or class.is(humanoid, Vip)" is added as a temporary fix -- TODO: find the cause of the "VIP bug", why does the door not get unreserved sometimes when the VIP has looked into a room? See issue 1025 door.reserved_for = nil door:getRoom():tryAdvanceQueue() end -- guarding with the action.keep_reserved check as we don't want to unexpect -- if we are just interrupting but resume the walk action afterwards humanoid:unexpectFromRoom(humanoid.world:getRoom(action.x, action.y)) else -- This flag can be used only once at a time. action.keep_reserved = nil end -- Terminate immediately if high-priority if high_priority then local timer_function = humanoid.timer_function humanoid:setTimer(nil) timer_function(humanoid) end if action.walking_to_vaccinate then local hospital = humanoid.hospital or humanoid.last_hospital local epidemic = hospital.epidemic if epidemic then epidemic:interruptVaccinationActions(humanoid) end end end) local flag_flip_h = 1 local navigateDoor local function action_walk_raw(humanoid, x1, y1, x2, y2, map, timer_fn) -- The variables below must always make up factor*quantity = 8 or the -- animation glitches -- Factor must also be able to multiply by 2 to become an integer -- Quantity must always be an integer local factor = 1 local quantity = 8 if humanoid.speed and humanoid.speed == "fast" then factor = 2 quantity = 4 end local anims = humanoid.walk_anims local world = humanoid.world local notify_object = world:getObjectToNotifyOfOccupants(x2, y2) if notify_object then notify_object:onOccupantChange(1) end notify_object = world:getObjectToNotifyOfOccupants(x1, y1) if notify_object then notify_object:onOccupantChange(-1) end if x1 ~= x2 then if x1 < x2 then if map and map:getCellFlags(x2, y2).doorWest then return navigateDoor(humanoid, x1, y1, "east") else humanoid.last_move_direction = "east" humanoid:setAnimation(anims.walk_east) humanoid:setTilePositionSpeed(x2, y2, -32, -16, 4*factor, 2*factor) end else if map and map:getCellFlags(x1, y1).doorWest then return navigateDoor(humanoid, x1, y1, "west") else humanoid.last_move_direction = "west" humanoid:setAnimation(anims.walk_north, flag_flip_h) humanoid:setTilePositionSpeed(x1, y1, 0, 0, -4*factor, -2*factor) end end else if y1 < y2 then if map and map:getCellFlags(x2, y2).doorNorth then return navigateDoor(humanoid, x1, y1, "south") else humanoid.last_move_direction = "south" humanoid:setAnimation(anims.walk_east, flag_flip_h) humanoid:setTilePositionSpeed(x2, y2, 32, -16, -4*factor, 2*factor) end else if map and map:getCellFlags(x1, y1).doorNorth then return navigateDoor(humanoid, x1, y1, "north") else humanoid.last_move_direction = "north" humanoid:setAnimation(anims.walk_north) humanoid:setTilePositionSpeed(x1, y1, 0, 0, 4*factor, -2*factor) end end end humanoid:setTimer(quantity, timer_fn) end local flags_here, flags_there = {}, {} local action_walk_tick; action_walk_tick = permanent"action_walk_tick"( function(humanoid) local action = humanoid:getCurrentAction() local path_x = action.path_x local path_y = action.path_y local path_index = action.path_index local check_doors = not not humanoid.door_anims local x1, y1 = path_x[path_index ], path_y[path_index ] local x2, y2 = path_x[path_index+1], path_y[path_index+1] if not x2 then -- Arrival at final tile humanoid:setTilePositionSpeed(x1, y1) if action.on_next_tile_set then action.on_next_tile_set() end humanoid:finishAction(action) return end -- Make sure that the next tile hasn't somehow become impassable since our -- route was determined local map = humanoid.world.map.th map:getCellFlags(x1, y1, flags_here) map:getCellFlags(x2, y2, flags_there) local recalc_route = not flags_there.passable and flags_here.passable -- Also make sure that a room hasn't unexpectedly been built on top of the -- path since the route was calculated. if not recalc_route and flags_here.roomId ~= flags_there.roomId then -- if going to the corridor we don't care as we are at the door -- as this will be false we won't bother checking for rerouting recalc_route = flags_there.room local door = TheApp.objects.door.id local door2 = TheApp.objects.swing_door_right.id local doorcheck = {[door] = true, [door2] = true} -- but we should see if this is the same room id we want to go to and cancel the reroute -- ensure we still have a door on this route if recalc_route and (humanoid.world:getObject(x1, y1, doorcheck) or humanoid.world:getObject(x2, y2, doorcheck)) and -- is there any door map:getCellFlags(path_x[#path_x], path_y[#path_y]).roomId == flags_there.roomId then -- A walk including a trimmed path could have the last tile inside a room, and -- might need a new route completely (e.g. seek reception) recalc_route = action.trimmed end end if recalc_route then if map:getCellFlags(x1, y1).passable then humanoid:setTilePositionSpeed(x1, y1) if action.on_next_tile_set then action.on_next_tile_set() end if action.trimmed then -- request new route humanoid:finishAction(action) return end return action:on_restart(humanoid) end end -- on_next_tile_set can be set in the call to action_walk_raw, but it is -- then to be called AFTER the next raw walk or tile set, which is why we -- remember the previous value and call that, rather than call the new value. local on_next_tile_set = action.on_next_tile_set action_walk_raw(humanoid, x1, y1, x2, y2, check_doors and map, action_walk_tick) action.path_index = path_index + 1 if on_next_tile_set then on_next_tile_set() end end) -- This is a slight hack, but is the easiest way to make walk functionality -- available to other actions which want to do low-level walk operations. strict_declare_global "HumanoidRawWalk" HumanoidRawWalk = action_walk_raw local action_walk_tick_door = permanent"action_walk_tick_door"( function(humanoid) local door = humanoid.user_of if not class.is(door, SwingDoor) then -- The doors will need to finish swinging before another humanoid can walk through. door:removeUser(humanoid) end humanoid.user_of = nil return action_walk_tick(humanoid) end) navigateDoor = function(humanoid, x1, y1, dir) local action = humanoid:getCurrentAction() local dx = x1 local dy = y1 if dir == "east" then dx = dx + 1 elseif dir == "south" then dy = dy + 1 end local swinging = false local door = humanoid.world:getObject(dx, dy, "door") if not door then swinging = true door = humanoid.world:getObject(dx, dy, "swing_door_right") end door.queue:unexpect(humanoid) door:updateDynamicInfo() local room = door:getRoom() local is_entering_room = room and humanoid:getRoom() ~= room if class.is(humanoid, Staff) and is_entering_room and not class.is(humanoid, Handyman) then -- A member of staff is entering, but is maybe no longer needed -- in this room? if not room.is_active or not room:staffFitsInRoom(humanoid) then humanoid:queueAction(IdleAction(), 0) humanoid:setTilePositionSpeed(x1, y1) humanoid:setNextAction(IdleAction():setCount(10), 0) humanoid:queueAction(MeanderAction()) if door.reserved_for == humanoid then door.reserved_for = nil room:tryAdvanceQueue() end return end end if door.user or (door.reserved_for and door.reserved_for ~= humanoid) or (is_entering_room and not room:canHumanoidEnter(humanoid)) then local queue = door.queue if door.reserved_for == humanoid then door.reserved_for = nil room:tryAdvanceQueue() end humanoid:setTilePositionSpeed(x1, y1) local action_index = 0 if is_entering_room and queue:size() == 0 and not room:getPatient() and not door.user and not door.reserved_for and humanoid.should_knock_on_doors and room.room_info.required_staff and not swinging then humanoid:queueAction(KnockDoorAction(humanoid, door, dir), action_index) action_index = action_index + 1 end -- a doctor/nurse answering a call but not yet left the room will not ever be leaving -- if they happen to queue when leaving the room, humanoid:isLeaving will not reflect -- the true state, so just use the is_entering_room fact instead humanoid:queueAction(QueueAction(x1, y1, queue):setIsLeaving(not is_entering_room) :setReserveWhenDone(door), action_index) action.must_happen = action.saved_must_happen action.reserve_on_resume = door return end if action.reserve_on_resume then assert(action.reserve_on_resume == door) action.reserve_on_resume = nil elseif is_entering_room and not action.done_knock and humanoid.should_knock_on_doors and room.room_info.required_staff and not swinging then humanoid:setTilePositionSpeed(x1, y1) humanoid:queueAction(KnockDoorAction(humanoid, door, dir), 0) action.reserve_on_resume = door action.done_knock = true return end local to_x, to_y local anims = humanoid.door_anims if not anims.leaving or not anims.entering then local from_rm, to_rm = room.room_info.id, "corridor" if is_entering_room then from_rm, to_rm = to_rm, from_rm end error(("Humanoid (%s) without door animations trying to walk through ".. "door (from %s to %s)"):format(humanoid.humanoid_class, from_rm, to_rm)) end humanoid:setTilePositionSpeed(dx, dy) humanoid.user_of = door door:setUser(humanoid) local entering = swinging and anims.entering_swing or anims.entering local leaving = swinging and anims.leaving_swing or anims.leaving local duration, direction if dir == "north" then humanoid:setAnimation(leaving) duration = TheApp.animation_manager:getAnimLength(leaving) to_x, to_y = dx, dy - 1 direction = "in" elseif dir == "west" then humanoid:setAnimation(leaving, flag_flip_h) duration = TheApp.animation_manager:getAnimLength(leaving) to_x, to_y = dx - 1, dy direction = "in" elseif dir == "east" then humanoid:setAnimation(entering) duration = TheApp.animation_manager:getAnimLength(entering) to_x, to_y = dx, dy direction = "out" elseif dir == "south" then humanoid:setAnimation(entering, flag_flip_h) duration = TheApp.animation_manager:getAnimLength(entering) to_x, to_y = dx, dy direction = "out" end humanoid.last_move_direction = dir if swinging then door:swingDoors(direction, duration) end -- We want to notify the rooms on either side of the door that the humanoid -- has entered / left, but we want to do this AFTER the humanoid has gone -- through the door (so that their tile position reflects the room which they -- are now in). local --[[persistable:action_walk_on_next_tile_set]] function on_next_tile_set() if action.on_next_tile_set == on_next_tile_set then action.on_next_tile_set = nil end local rm = humanoid.world:getRoom(x1, y1) if rm then rm:onHumanoidLeave(humanoid) end rm = humanoid.world:getRoom(to_x, to_y) if rm then rm:onHumanoidEnter(humanoid) end end action.on_next_tile_set = on_next_tile_set if is_entering_room then humanoid.in_room = room end action.path_index = action.path_index + 1 humanoid:setTimer(duration, action_walk_tick_door) end local function action_walk_start(action, humanoid) -- Possible future optimisation: when walking from somewhere inside the hospital -- to somewhere outside the hospital (or from one building to another?), do -- pathfinding in two steps, with the building door as a middle node local path_x, path_y = humanoid.world:getPath(humanoid.tile_x, humanoid.tile_y, action.x, action.y) if not path_x or #path_x == 1 then -- Finishing an action from within the start handler is a very bad idea, as -- it is normal when ordering several actions to setNextAction the first -- one, then queueAction the rest. If the first starts straight away, and -- then finishes straight away, then the humanoid is left with an empty -- action queue. Hence we wait one tick before finishing. We still need to -- set the humanoid animation / position though, which is delegated to the -- idle action (if this wasn't done, then the previous animation would be -- used, which might involve an object). TheApp.humanoid_actions.idle(action, humanoid) humanoid:setTimer(1, humanoid.finishAction) return end action.path_x = path_x action.path_y = path_y action.path_index = 1 if not action.no_truncate then action.on_interrupt = action_walk_interrupt end if action.on_restart ~= nil then action.saved_must_happen = action.must_happen end action.on_restart = action_walk_start action.must_happen = true if action.reserve_on_resume and not action.todo_interrupt then action.reserve_on_resume.reserved_for = humanoid end return action_walk_tick(humanoid) end return action_walk_start CorsixTH-0.70.0/CorsixTH/Lua/humanoid_actions/yawn.lua000066400000000000000000000033471522247547500225560ustar00rootroot00000000000000--[[ Copyright (c) 2011 Mark "Mark.L" Lawlor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "YawnAction" (HumanoidAction) ---@type YawnAction local YawnAction = _G["YawnAction"] function YawnAction:YawnAction() self:HumanoidAction("yawn") self:setMustHappen(true) end local action_yawn_end = permanent"action_yawn_end"( function(humanoid) humanoid:finishAction() end) local function action_yawn_start(action, humanoid) assert(humanoid.yawn_anim, "Error: yawning animation for humanoid " .. humanoid.humanoid_class) action.must_happen = true humanoid:setAnimation(humanoid.yawn_anim, humanoid.last_move_direction == "east" and 0 or 1) humanoid:setTimer(TheApp.animation_manager:getAnimLength(humanoid.yawn_anim), action_yawn_end) end return action_yawn_start CorsixTH-0.70.0/CorsixTH/Lua/languages/000077500000000000000000000000001522247547500175105ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/languages/brazilian_portuguese.lua000066400000000000000000006211011522247547500244510ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Copyright (c) 2012 Henrique Poyatos Copyright (c) 2014 Leonardo Malaman (LeonardoGamer) Copyright (c) 2017-2024 Altieres Lima da Silva Copyright (c) 2020 Henrique Poyatos Copyright (c) 2024 Felipe "FMMazur" Mazur Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("cp437") Language("Português Brasileiro", "Brazilian Portuguese", "pt_br", "br") Inherit("English") Encoding(utf8) IsArabicNumerals(true) --Note: All strings should use a single space after full-stops. Only exception is level descriptions. ------------------------------- OVERRIDE ---------------------------------- adviser.warnings.money_low = "Você está ficando sem dinheiro!" tooltip.graphs.reputation = "Alternar reputaçäo" tooltip.status.close = "Fechar janela de status" -- tooltip.staff_list.next_person, prev_person is rather next/prev page (also in german, maybe more languages?) tooltip.staff_list.next_person = "Mostrar a página seguinte" tooltip.staff_list.prev_person = "Mostrar a página anterior" tooltip.status.reputation = "Sua Reputaçäo näo deve ser menor que %d. Atualmente está em %d" tooltip.status.balance = "Seu saldo bancário näo deve ser menor que %d. Atualmente está em %d" -- The originals of these two contain one space too much fax.emergency.cure_not_possible_build = "Você precisará construir um(a) %s" fax.emergency.cure_not_possible_build_and_employ = "Você precisará construir um(a) %s e contratar um(a)" fax.emergency.num_disease = "Existem %d pessoas com %s e precisam ser atendidas imediatamente." adviser.goals.lose.kill = "Mate mais %d pacientes para perder o nível!" -- Improve tooltips in staff window to mention hidden features tooltip.staff_window.face = "Rosto da pessoa - clique para abrir a tela de gerenciamento." tooltip.staff_window.center_view = "Clique esquerdo para fixar-se na pessoa, botäo direito para rodar entre os funcionários." -- These strings are missing in some versions of TH (unpatched?) confirmation.restart_level = "Você tem certeza de que deseja reiniciar o nível?" -- TODO adviser.multiplayer.objective_completed -- TODO adviser.multiplayer.objective_failed -- Replace Billy Savile -- this is only relevant to the English game so does not need adding -- in other language files vip_names = { [6] = "O Presidente da Cruz Vermelha", } -- An override for the squits becoming the the squits see issue 1646 adviser.research.drug_improved_1 = "Seu Centro de Pesquisa melhorou o medicamento para %s" -- Disease overrides where there are typos diseases.golf_stones.cure = "Cura - Dois cirurgiöes operam para extrair os cálculos." diseases.ruptured_nodules.cure = "Cura - Dois cirurgiöes qualificados colocam certas partes com mäos firmes." diseases.slack_tongue.cause = "Causa - Fazer muita fofoca." diseases.slack_tongue.cure = "Cura - Coloca-se a língua no corta-línguas e elimina-se de forma rápida, eficaz e dolorosa." diseases.the_squits.cure = "Cura - Uma mistura pegajosa de substâncias viscosas preparada na farmácia solidifica as tripas do paciente." diseases.bloaty_head.cure = "Cura - Fura-se a cabeça inflada, em seguida, volta-se a inflar até o tamanho correto com uma máquina inteligente." -- Rooms overrides where there are typos room_descriptions.inflation[2] = "Os pacientes que sofrem a dolorosa doença de terem a cabeça inflada devem ir à sala de inflatoterapia, será desinflada sua cabeça e em seguida vota a ser inflada à pressäo correta.//" room_descriptions.staff_room[2] = "Os seus funcionários se cansam quando realizam o seu trabalho. Precisam desta sala para descansar e se refrescar. Os funcionários cansados säo mais lentos, pedem mais dinheiro e por fim väo embora. Também cometem mais erros. Vale a pena construir uma sala que tenham muitos passatempos. Assegure-se de que há lugar para vários funcionários ao mesmo tempo. " -- Staff description overrides where there are typos staff_descriptions.bad[14] = "Pessoa ardilosa, matreira e subversiva. " staff_descriptions.misc[11] = "Destila uísque. " -- Correction to a pay rise prompt with typos pay_rise.regular[1] = "Estou esgotado. Preciso de umas boas férias, mais um aumento de %d, se näo quiser deixo este maldito emprego." -- Level description overrides where there are typos. Note: This is the only portion of the game that SHOULD use double space after fullstops etc. introduction_texts.level17 = "Um último aviso. Fique de olho na sua Reputaçäo, é o que atrairá pacientes ao seu estabelecimento. Se näo matar muitas pessoas e as mantiver razoavelmente felizes näo deverá ter muitos problemas com este nível!//Agora é com você, boa sorte." introduction_texts.level11 = "Tem a oportunidade de construir o hospital definitivo. Esta é uma área de enorme prestígio e o Ministério quer que este seja o melhor hospital. Esperamos que ganhe muito dinheiro, alcance uma excelente reputaçäo e que se encarregue de todos os casos que sejam apresentados. Este é um trabalho importante. Terá que ser muito hábil para completá-lo. Também deve ter em conta que foram vistos OVNIs na área. Assegure-se de que os seus funcionários estejam preparados para receber algumas visitas inesperadas. O seu hospital terá que alcançar um valor de $240.000, precisará ter $500.000 no banco e uma reputaçäo de 700." introduction_texts.level9 = "Depois de depositar o dinheiro na conta bancária do Ministério e pagar uma nova limousine para o Ministro, agora pode dedicar a criar um bom hospital para cuidar dos doentes e necessitados. Aqui terá um montäo de problemas diferentes. Se os seus funcionários tiverem uma boa formaçäo e suficientes consultas, poderäo resolver qualquer situaçäo. O seu hospital terá que valer $200.000 e precisará ter $400.000 no banco. Se näo o conseguir näo poderá terminar o nível." introduction_texts.level16 = "Uma vez que tenha diagnosticado algum dos pacientes, precisará construir salas de tratamento e clínicas para curá-los. Pode começar com uma Farmácia, onde precisará de uma Enfermeira que distribua os remédios." introduction_texts.level10 = "Além de dever curar todas as doenças que possa haver, o Ministério pede que empregue um pouco de tempo em aumentar a eficácia dos seus remédios.//Houve algumas queixas por parte do D. Salutíssimo, o Cachorro Guardiäo da Saúde, assim deve procurar com que todos os seus remédios sejam extremamente eficazes para ficar bem. Também, assegure-se de que o seu hospital tenha uma reputaçäo irrepreensível. Procure deixar morrer poucos pacientes. Como sugestäo, deveria deixar espaço para um banho gelatinoso. Para ganhar, os seus remédios deveräo ter uma eficácia de, pelo menos, 80%, tem que conseguir uma reputaçäo de 650 e guardar $500.000 no banco." introduction_texts.level12 = "Agora enfrentará o maior dos desafios. Impressionado com os seus lucros, o Ministério tem uma grande tarefa para você; querem que construa outro magnífico hospital, que tenha um excelente lucro e uma reputaçäo incrível. Também querem que compre todo o terreno que puder, cure tudo (e queremos dizer todas as doenças) e ganhe todos os prêmios. Acha que conseguirá? Ganhe $650.000, cure 750 pessoas e consiga uma reputaçäo de 800 para ganhar este nível." introduction_texts.level15 = "Bem, estes säo os mecanismos básicos para pôr em funcionamento um hospital.//Os seus Médicos väo precisar de toda a ajuda que possam obter para diagnosticar alguns dos pacientes. Pode ajudá-los construindo outros equipamentos de diagnóstico como a sala de Diagnóstico Geral." -- A small error in the introduction text of level 2 introduction_texts.level2 = "Há uma grande variedade de doenças nesta área. Prepare o seu hospital para tratar mais pacientes " .. "e para a construçäo de um Centro de Pesquisa. Lembre-se que deve manter limpo o hospital e procurar atingir a " .. "sua mais alta reputaçäo possível. Tratará doenças como a língua comprida, entäo necessitará de uma sala de " .. "laringologia. Também pode construir uma cardiologia para diagnosticar novas doenças. Estas duas consultas deveräo " .. "ser pesquisadas antes de as construir. Também pode comprar mais terreno para aumentar o seu hospital. " .. "Para isso, utilize o mapa da cidade. Obtenha uma reputaçäo de 300 um saldo de bancário de $10,000 e 40 pessoas curadas. " -- Override for level progress typo level_progress.hospital_value_enough = "Mantenha o valor do seu hospital acima de %d e atenda os seus outros problemas para ganhar o nível." level_progress.cured_enough_patients = "Curou muitos pacientes, mas precisa manter o seu hospital em melhor estado para ganhar o nível." -- Override for multiplayer typos multiplayer.players_failed = "O(s) seguinte(s) jogador(es) näo conseguiu(ram) atingir o último objetivo:" multiplayer.everyone_failed = "Ninguém conseguiu cumprir o último objetivo. Entäo, todos continuam jogando!" -- Override for a disease patient choice typo disease_discovered_patient_choice.need_to_employ = "Contrate um(a) %s para lidar com esta situaçäo." -- Override for shorter messages and a typo in 12.2 letter[9][2] = "Você provou ser o melhor administrador de hospitais na longa e conturbada história da medicina. Tal conquista monumental näo pode passar despercebida, entäo gostaríamos de oferecer-lhe o cargo honorário de Chefe Supremo de Todos os Hospitais. Isso vem com um salário de $%d. Você será recebido com uma parada em sua homenagem, e as pessoas demonstraräo sua gratidäo por onde quer que vá.//" letter[10][2] = "Parabéns por administrar com sucesso todos os hospitais que lhe foram designados. Tal desempenho magnífico lhe qualifica para a liberdade de todas as cidades do mundo. Você receberá uma pensäo de $%d, e tudo o que pedimos é que viaje, gratuitamente, por todo o país, promovendo o trabalho de todos os hospitais ao seu público adorador.//" letter[11][2] = "Sua carreira foi exemplar, e você é uma inspiraçäo para todos nós. Obrigado por administrar tantos hospitais com tanta competência. Gostaríamos de lhe conceder um salário vitalício de $%d, e simplesmente pedir que viaje em um carro oficial aberto de cidade em cidade, proferindo palestras sobre como alcançou tanto sucesso em täo pouco tempo.//" letter[11][3] = "Você é um exemplo para todas as pessoas sábias, e sem exceçäo, todos no mundo o(a) consideram um ativo supremo.//" letter[12][2] = "Sua carreira de sucesso como o melhor administrador de hospitais desde Moisés está chegando ao fim. Condizente com seu impacto na naçäo, o Ministério gostaria de lhe oferecer um salário de $%d apenas para aparecer em nosso nome, inaugurando eventos, lançando navios e participando de programas de entrevistas. Seria uma ótima PR para todos nós!//" ------------------------------- NEW STRINGS ------------------------------- date_format = { daymonth = "%1% %2:months%", } object.litter = "Lixo" tooltip.objects.litter = "Lixo: Deixado no chäo por um paciente porque ele näo encontrou uma lixeira para jogá-lo." object.rathole = "Buraco de rato" tooltip.objects.rathole = "Casa de uma família de ratos que encontrou seu hospital sujo o suficiente para morar nele." tooltip.fax.close = "Fecha esta janela sem apagar a mensagem." tooltip.message.button = "Clique com o botäo esquerdo para abrir a mensagem" tooltip.message.button_dismiss = "Clique com o botäo esquerdo para abrir a mensagem e botäo direto para recusá-la" tooltip.casebook.cure_requirement.hire_staff = "Você precisa contratar funcionários para realizar este tratamento." tooltip.casebook.cure_type.unknown = "Você ainda näo sabe como tratar esta doença" tooltip.research_policy.no_research = "Nenhuma pesquisa está sendo realizada nesta categoria no momento." tooltip.research_policy.research_progress = "Progresso para a próxima descoberta nesta categoria: %1%/%2%" menu["player_count"] = "QUANTIDADE DE JOGADORES" menu_file = { load = " (%1%) CARREGAR ", save = " (%1%) SALVAR ", restart = " (%1%) REINICIAR ", quit = " (%1%) SAIR " } menu_options = { sound = " (%1%) SOM ", announcements = " (%1%) ANUNCIOS ", music = " (%1%) MUSICA ", jukebox = " (%1%) JUKEBOX ", lock_windows = " TRAVAR JANELAS ", edge_scrolling = " ROLAR MARGEM ", capture_mouse = " CAPTURAR MOUSE ", adviser_disabled = " (%1%) CONSELHEIRO ", warmth_colors = " CORES QUENTES ", wage_increase = " EXIGENCIAS SALARIAS ", twentyfour_hour_clock = " RELOGIO DE 24 HORAS ", } menu_options_game_speed = { pause = " (%1%) PAUSAR ", slowest = " (%1%) MUITO LENTO ", slower = " (%1%) LENTO ", normal = " (%1%) NORMAL ", max_speed = " (%1%) RAPIDO ", and_then_some_more = " (%1%) MUITO RAPIDO ", } menu_options_warmth_colors = { choice_1 = " VERMELHO ", choice_2 = " AZUL VERDE VERMELHO ", choice_3 = " AMARELO LARANJA VERMELHO ", } menu_options_wage_increase = { grant = " CONCEDER ", deny = " NEGAR ", } -- Add F-keys to entries in charts menu (except briefing), also town_map was added. menu_charts = { bank_manager = " (%1%) GERENTE DO BANCO ", statement = " (%1%) ESTADO DA CONTA ", staff_listing = " (%1%) LISTA DOS FUNCIONARIOS ", town_map = " (%1%) MAPA DA CIDADE ", casebook = " (%1%) FICHA CLINICA ", research = " (%1%) PESQUISA ", status = " (%1%) ESTADO ", graphs = " (%1%) GRAFICO ", policy = " (%1%) POLITICAS ", } menu_debug = { jump_to_level = " IR PARA O NIVEL ", connect_debugger = " (%1%) CONECTAR AO SERVIDOR LUA DBGp ", transparent_walls = " (%1%) PAREDES TRANSPARENTES ", limit_camera = " LIMITAR CAMERA ", disable_salary_raise = " DESATIVAR AUMENTO SALARIAL ", allow_blocking_off_areas = " PERMITIR BLOQUEIO DE AREAS ", allow_falling = " PERMITIR QUEDAS ", make_debug_fax = " CRIAR FAX DE DEPURAÇAO ", make_debug_patient = " CRIAR PACIENTE DE DEPURAÇAO ", cheats = " (%1%) TRAPAÇAS ", lua_console = " (%1%) CONSOLE LUA ", debug_script = " (%1%) EXECUTAR SCRIPT DE DEPURAÇAO ", calls_dispatcher = " DESPACHANTE DE CHAMADAS ", dump_strings = " (%1%) EXPORTAR TEXTOS DO JOGO ", dump_gamelog = " (%1%) EXPORTAR REGISTRO DO JOGO ", map_overlay = " SOBREPOSIÇAO DO MAPA ", sprite_viewer = " VISUALIZADOR DE SPRITES ", } menu_debug_overlay = { none = " NADA ", flags = " SINALIZADORES ", positions = " POSIÇOES ", heat = " TEMPERATURA ", byte_0_1 = " BYTE 0 & 1 ", byte_floor = " BYTE DO PISO ", byte_n_wall = " BYTE DA PAREDE NORTE ", byte_w_wall = " BYTE DA PAREDE OESTE ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " TERRENO ", } menu_player_count = { players_1 = " 1 JOGADOR ", players_2 = " 2 JOGADORES ", players_3 = " 3 JOGADORES ", players_4 = " 4 JOGADORES ", } adviser = { room_forbidden_non_reachable_parts = "Construir a sala neste local resultará em alas do hospital que näo poderäo ser acessadas.", warnings = { no_desk = "Você precisa comprar um balcäo de recepçäo e contratar uma recepcionista em algum momento!", no_desk_1 = "Se você quer que os pacientes venham ao seu hospital, você precisa contratar uma recepcionista e comprar um balcäo para recepcioná-los!", no_desk_2 = "Excelente, isso provavelmente é um recorde mundial - quase um ano e nenhum paciente! Se você deseja continuar administrando este hospital, você precisa urgente contratar uma recepcionista e comprar um balcäo para que ela possa trabalhar!", no_desk_3 = "Brilhante, se passou quase um ano e ainda näo tem uma recepcionista! Como quer que os pacientes apareçam? Arrume uma recepcionista e deixe de perder tempo!", no_desk_4 = "Uma recepcionista necessita de uma mesa para atender os pacientes que aparecem.", no_desk_5 = "Já era hora! Os pacientes começaräo a chegar logo.", no_desk_6 = "Você tem uma recepcionista, que tal se construir uma mesa de recepçäo para que possa trabalhar?", no_desk_7 = "Você construiu a mesa da recepçäo, entäo que tal contratar um recepcionista? Você näo receberá nenhum paciente até que contrate uma.", another_desk = "Você precisará construir outra mesa para essa nova recepcionista.", cannot_buy = "Você näo pode comprar mais desse item!", cannot_afford = "Você näo tem dinheiro suficiente no banco para contratar essa pessoa!", -- I can't see anything like this in the original strings cannot_afford_2 = "Você näo tem dinheiro suficiente no banco para fazer essa compra!", cannot_afford_machine = "Você precisa de pelo menos $%1% no banco para comprar um novo %2%!", falling_1 = "Ei! Isso näo é engraçado, cuidado onde aponta este mouse; alguém pode se machucar!", falling_2 = "Gostou da queda? Pare de bagunçar!", falling_3 = "Ai, isso dói, alguém chame um médico!", falling_4 = "Isto é um Hospital, näo um parque de diversöes!", falling_5 = "Este näo é o local para empurrar as pessoas, elas estäo doentes sabia?", falling_6 = "Aqui näo é uma pista de boliche, pessoas doentes näo deveriam ser tratadas desta forma!", research_screen_open_1 = "Para acessar a tela de pesquisa, tem que construir um Centro de Pesquisa.", research_screen_open_2 = "Näo é possível realizar pesquisas nessa fase.", researcher_needs_desk_1 = "Uma pesquisa necessita de uma mesa para trabalhar.", researcher_needs_desk_2 = "Seu pesquisador agradece que lhe tenha dado um descanso. Se pretende ter mais pessoas pesquisando, deve dar a cada um uma mesa para trabalhar.", researcher_needs_desk_3 = "Cada pesquisa necessita de uma mesa para trabalhar.", nurse_needs_desk_1 = "Cada enfermeira necessita de uma mesa para trabalhar.", nurse_needs_desk_2 = "Sua enfermeira agradece que lhe tenha dado um descanso. Se pretende ter mais pessoas trabalhando na Enfermaria, tem que dar a cada uma delas uma mesa para trabalhar.", low_prices = "Você está cobrando muito pouco pelo uso de %s. Isto trará pessoas para o seu hospital, mas você näo fará muito lucro com cada uma delas.", high_prices = "Você está cobrando muito pelo uso de %s. Isto trará grande lucro a curto prazo, mas no final das contas você começará a afugentar as pessoas para longe do seu hospital.", fair_prices = "Seus preços de %s parecem justos e equilibrados.", patient_not_paying = "Um paciente saiu sem pagar por %s porque está muito caro!", }, cheats = { th_cheat = "Parabéns, você habilitou os códigos de trapaça!", roujin_on_cheat = "Desafio de Roujin ativado! Boa sorte nos próximos meses...", roujin_off_cheat = "Desafio de Roujin desativado. Tudo voltará ao normal em breve.", norest_on_cheat = "Oh näo! Parece que sua equipe consumiu muita cafeína e näo sente mais necessidade de descansar.", norest_off_cheat = "Ufa! Parece que a agitaçäo finalmente passou. Sua equipe agora descansará adequadamente.", }, staff_place_advice = { not_enough_lecture_chairs = "Cada médico estagiário precisa de uma cadeira para assistir às aulas!", }, } dynamic_info.patient.actions.no_gp_available = "Esperando que construa um Consultório Geral" dynamic_info.staff.actions.heading_for = "Indo para %s" dynamic_info.staff.actions.fired = "Demitido" dynamic_info.staff.actions.vaccine = "Vacinando um paciente" dynamic_info.patient.actions.epidemic_vaccinated = "Eu näo sou mais contagioso" dynamic_info.object.strength_extra_info = "Força %d (Atualizável para %d)" progress_report.free_build = "CONSTRUÇAO LIVRE" fax = { choices = { return_to_main_menu = "Retornar ao menu principal", accept_new_level = "Passar para o próximo nível", decline_new_level = "Continuar jogando um pouco mais", }, emergency = { num_disease_singular = "Existe uma pessoa com %s que precisa urgente de sua atençäo.", free_build = "Se você for bem-sucedido, sua reputaçäo aumentará, mas se falhar, sua reputaçäo será seriamente prejudicada.", }, vip_visit_result = { remarks = { free_build = { "Seu hospital é muito bom! Näo é muito difícil fazê-lo funcionar sem limitaçöes financeiras, né?", "Näo sou economista, mas até eu poderia dirigir este hospital, se é que você me entende...", "Um hospital muito bem cuidado. Mas tome cuidado a crise financeira! Certo... você näo tem que se preocupar com isso.", } } } } letter = { dear_player = "Prezado(a) %s\n", custom_level_completed = "Parabéns! Você completou todos os objetivos desta fase personalizada!", return_to_main_menu = "Deseja retornar ao menu principal ou continuar jogando?", campaign_level_completed = "Bom trabalho! Você superou este nível, mas ainda näo acabou!\n Você se interessaria em aceitar um posto no hospital %s?", campaign_completed = "Incrível! Você conseguiu superar todos os níveis. Já pode relaxar e desfrutar enquanto fala das suas realizaçöes nos fóruns de toda a Internet. Boa sorte!", campaign_level_missing = "Desculpe, parece que o próximo nível desta campanha está faltando. (Nome: %s)", } install = { title = "----------------------- Configuraçäo do CorsixTH -----------------------", th_directory = "O CorsixTH precisa de uma cópia dos arquivos de dados do Theme Hospital original (ou a demo) para executar. Utilize o seletor abaixo para localizar o diretório onde o jogo Theme Hospital está instalado.", ok = "OK", exit = "Sair", cancel = "Cancelar", } misc = { not_yet_implemented = "(ainda näo implementado)", no_heliport = "Ou nenhuma doença foi descoberta ainda, ou näo há heliporto neste mapa. Pode ser que você precise construir uma recepçäo e contratar uma recepcionista.", cant_treat_emergency = "Seu hospital näo pode tratar essa emergência porque a doença näo foi descoberta. Sinta-se à vontade para tentar novamente.", epidemics_off = "Epidemias desativadas", epidemics_on = "Epidemias reativadas", earthquakes_off = "Terremotos desativados", earthquakes_on = "Terremotos reativados", epidemic_no_icon_to_toggle = "Näo foi possível mostrar/ocultar ícones de infectados - nenhuma epidemia em andamento näo revelada", epidemic_no_diseases = "Näo é possível criar uma epidemia - nenhuma doença contagiosa disponível", epidemic_no_receptionist = "Näo é possível criar uma epidemia - näo há recepçäo com pessoal", } main_menu = { new_game = "Campanha", custom_campaign = "Campanha Personalizada", custom_level = "Cenário Unico", continue = "Continuar Jogo", load_game = "Carregar Jogo", options = "Configuraçöes", map_edit = "Editor de Mapas", savegame_version = "Versäo do jogo salvo: ", updates_off = "Näo verificando atualizaçöes", version = "Versäo: ", exit = "Sair", } tooltip.main_menu = { new_game = "Iniciar o primeiro nível da campanha", custom_campaign = "Jogar uma campanha criada pela comunidade", custom_level = "Construa seu hospital em um cenário único", continue = "Continue seu jogo salvo mais recente", load_game = "Carregar um jogo salvo", options = "Ajustar várias configuraçöes", map_edit = "Criar um mapa personalizado", exit = "Näo, näo, por favor, näo saia!", quit = "Você está prestes a sair do CorsixTH. Tem certeza de que é isso que deseja fazer?", } load_game_window = { caption = "Carregar Jogo (%1%)", load_button = "Carregar", } tooltip.load_game_window = { load_game = "Carregar jogo %s", load_game_number = "Carregar jogo %d", load_autosave = "Carregar salvamento automático", } custom_game_window = { caption = "Jogo Personalizado", free_build = "Construçäo Livre", load_selected_level = "Iniciar", } tooltip.custom_game_window = { choose_game = "Clique em um nível para ver mais informaçäo sobre o mesmo.", free_build = "Marque esta opçäo se quiser jogar sem dinheiro nem condiçöes de vitória ou derrota.", load_selected_level = "Carregar e jogar o nível selecionado", } custom_campaign_window = { caption = "Campanha Personalizada", start_selected_campaign = "Iniciar Campanha", } tooltip.custom_campaign_window = { choose_campaign = "Selecione uma campanha para ver mais informaçäo sobre a mesma.", start_selected_campaign = "Carregar o primeiro nível desta campanha", } save_game_window = { caption = "Salvar Jogo (%1%)", new_save_game = "Novo jogo salvo", save_button = "Salvar", missing_filename = "Por favor, insira o nome do novo salvamento ou selecione o salvamento para sobrescrever.", } tooltip.save_game_window = { save_game = "Sobrescrever jogo salvo %s", new_save_game = "Insira o nome para um novo jogo salvo", } save_map_window = { caption = "Salvar Mapa (%1%)", new_map = "Novo Mapa", save_button = "Salvar", missing_filename = "Por favor, insira o nome do novo arquivo de mapa ou selecione o arquivo de mapa para sobrescrever.", } tooltip.save_map_window = { map = "Sobrescrever mapa %s", new_map = "Insira o nome para um novo jogo salvo do mapa", } load_map_window = { caption = "Carregar Mapa (%1%)", load_button = "Carregar", } menu_list_window = { name = "Nome", save_date = "Modificado", ok = "OK", back = "Voltar", } tooltip.menu_list_window = { name = "Clique aqui para ordenar a lista por nome", save_date = "Clique aqui para ordenar a lista pela data da última modificaçäo", ok = "Confirmar escolha", back = "Fechar esta janela", } options_window = { caption = "Configuraçöes", option_on = "Ligar", option_off = "Desligar", option_enabled = "Ativado", option_disabled = "Desativado", fullscreen = "Tela Cheia", resolution = "Resoluçäo", capture_mouse = "Capturar Mouse", right_mouse_scrolling = "Rolagem do Mouse", right_mouse_scrolling_option_middle = "Botäo do Meio", right_mouse_scrolling_option_right = "Botäo Direito", custom_resolution = "Personalizar...", width = "Largura", height = "Altura", customise = "Personalizar", folder = "Pastas", language = "Idioma do Jogo", apply = "Aplicar", cancel = "Cancelar", back = "Voltar", scrollspeed = "Veloc. de Rolagem", shift_scrollspeed = "Veloc. Rolagem Acel.", zoom_speed = "Veloc. do Zoom", hotkey = "Atalhos", check_for_updates = "Verificar Atualizaçöes", } tooltip.options_window = { fullscreen = "Se o jogo deve ser executado em tela cheia ou modo janela", fullscreen_button = "Clique para mudar para tela cheia", resolution = "A resoluçäo que o jogo deve ser executado", select_resolution = "Selecionar uma nova resoluçäo", capture_mouse = "Clique para alternar a captura do cursor na janela do jogo", right_mouse_scrolling = "Alterne o botäo do mouse que é usado para rolar o mapa", width = "Insira a largura da tela desejada", height = "Insira a altura da tela desejada", apply = "Aplicar a resoluçäo inserida", cancel = "Retornar sem alterar a resoluçäo", customise_button = "Você pode alterar mais configuraçöes para personalizar sua experiência de jogo", folder_button = "Opçöes de pastas", language = "O idioma em que os textos do jogo apareceräo", select_language = "Selecione o idioma do jogo", language_dropdown_item = "Selecionar %s como idioma", language_dropdown_no_font = "Selecione uma fonte nas configuraçöes de pastas para ativar este idioma", back = "Fechar a janela de Configuraçöes", scrollspeed = "Defina a velocidade de rolagem entre 1 (mais lenta) até 10 (mais rápida). O padräo é 2.", shift_scrollspeed = "Defina a velocidade da rolagem enquanto a tecla Shift é pressionada. 1 (mais lento) até 10 (mais rápido). O padräo é 4.", zoom_speed = "Defina a velocidade da aproximaçäo da câmera de 10 (mais lenta) até 1000 (mais rápida). O padräo é 80.", apply_scrollspeed = "Aplique a velocidade de rolagem inserida.", cancel_scrollspeed = "Retornar sem alterar a velocidade de rolagem.", apply_shift_scrollspeed = "Aplique a velocidade de rolagem de acelerada inserida.", cancel_shift_scrollspeed = "Retorne sem alterar a velocidade de rolagem acelerada.", apply_zoomspeed = "Aplique a velocidade de aproximaçäo inserida.", cancel_zoomspeed = "Retorne sem alterar a velocidade de aproximaçäo.", hotkey = "Altere as teclas de atalho do teclado.", check_for_updates = "Define se o jogo deve procurar atualizaçöes ao iniciar.", } audio_window = { audio = "Audio Geral", jukebox = "Jukebox", back = "Voltar", } tooltip.audio_window = { audio_button = "Ligar ou desligar todo o áudio do jogo", audio_toggle = "Ativar ou desativar", jukebox = "Abrir a Jukebox para controlar a música", } customise_window = { caption = "Config. Personalizadas", option_on = "Ligado", option_off = "Desligado", back = "Voltar", movies = "Vídeo Geral", intro = "Vídeo de Introduçäo", paused = "Construir em Pausa", volume = "Tecla de Volume", aliens = "Pacientes Alienígenas", fractured_bones = "Fraturas Osseas", average_contents = "Conteúdos Habituais", remove_destroyed_rooms = "Remover salas destruídas", } tooltip.customise_window = { movies = "Controle geral de vídeos, que permitirá a você desativar todos os vídeos", intro = "Desligar ou ligar o vídeo de introduçäo, vídeos gerais precisaräo estar ligados se você quiser o vídeo de introduçäo rode quando você carregar o CorsixTH", paused = "No Theme Hospital o jogador só teria permissäo para utilizar o menu superior se o jogo estivesse pausado. Esta é também a configuraçäo padräo no CorsixTH, mas habilitando isso você tem permissäo para acessar tudo enquanto o jogo está pausado", volume = "Se a tecla de baixar volume abrir também a ficha clínica, utilize esta opçäo para mudar o atalho para direto a ficha clínica para Shift + C.", aliens = "Devido à falta de animaçöes decentes disponíveis, fizemos com que os pacientes com DNA alienígena só apareçam em uma emergência. Para permitir que os pacientes com DNA alienígena possam visitar seu hospital, desative esta opçäo.", fractured_bones = "Devido a uma animaçäo deficiente, fizemos que näo existam pacientes com Fraturas ósseas femininas. Para permitir que as pacientes com Fraturas ósseas visitem seu hospital, desative esta opçäo.", average_contents = "Se você quiser que o jogo lembre que objetos extras você normalmente adiciona quando constrói salas, entäo ligue esta opçäo", remove_destroyed_rooms = "Se você gostaria de poder remover salas destruídas, mediante taxa, ative essa opçäo", back = "Fecha este menu e volta para o Menu de Configuraçöes", } folders_window = { caption = "Localizaçäo de Pastas", data_label = "Dados do TH", font_label = "Fonte", music_label = "Músicas", savegames_label = "Jogos Salvos", screenshots_label = "Capturas de Tela", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "Aqui pode especificar uma nova pasta de instalaçäo do Theme Hospital. O jogo será reiniciado assim que selecionar a nova pasta.", savegames_location = "Selecione a pasta que quer utilizar para seus jogos salvos.", music_location = "Selecione a pasta que quer utilizar para sua música.", screenshots_location = "Selecione a pasta que quer utilizar para suas capturas de tela.", back = "Voltar", } tooltip.folders_window = { browse = "Procurar a localizaçäo da pasta", data_location = "A pasta com a instalaçäo do Theme Hospital original, necessário para executar o CorsixTH", font_location = "A localizaçäo de uma fonte de letra capaz de mostrar caracteres Unicode necessários para seu idioma. Se näo for indicado, näo poderá selecionar idiomas que tenham mais caracteres dos que o jogo original tem, por exemplo, russo e chinês.", savegames_location = "A pasta de jogos salvos é localizada por padräo junto com o arquivo de configuraçäo e é utilizado para armazenar os jogos salvo. Se você näo gostar, pode selecionar outra procurando a pasta que quiser usar.", screenshots_location = "As capturas de tela säo guardadas por padräo em uma pasta junto com o arquivo de configuraçäo. Se você näo gostar, pode selecionar outra procurando a pasta que quiser usar.", music_location = "Selecione uma pasta com seus arquivos de música. Necessita de uma pasta já existente, entäo poderá procurá-la.", browse_data = "Procurar outra localizaçäo com uma instalaçäo do Theme Hospital. (Localizaçäo atual: %1%)", browse_font = "Procurar outro arquivo de fonte de letra. (Localizaçäo atual: %1%)", browse_saves = "Procurar outra localizaçäo para sua pasta de jogos salvos. (Localizaçäo atual: %1%) ", browse_screenshots = "Procurar outra localizaçäo para sua pasta de capturas de tela. (Localizaçäo atual: %1%) ", browse_music = "Procurar outra localizaçäo para sua pasta de música. (Localizaçäo atual: %1%) ", no_font_specified = "Pasta de fontes näo especificada!", not_specified = "Pasta näo especificada!", default = "Localizaçäo padräo", reset_to_default = "Volta a atribuir a pasta a sua localizaçäo padräo ( %1% )", clear_directory = "Limpar seleção de diretório atual", back = "Fechar este menu e voltar para o menu de Configuraçöes", } hotkey_window = { caption_main = "Atribuiçäo de teclas de atalho", caption_panels = "Teclas do painel", button_accept = "Aceitar", button_defaults = "Restaurar padröes", button_cancel = "Cancelar", button_back = "Voltar", button_toggleKeys = "Teclas de alternância", button_gameSpeedKeys = "Teclas de velocidade do jogo", button_recallPosKeys = "Tecla de retorno de posiçäo", panel_globalKeys = "Teclas globais", panel_generalInGameKeys = "Teclas gerais no jogo", panel_scrollKeys = "Teclas de rolagem", panel_zoomKeys = "Teclas de aproximaçäo", panel_gameSpeedKeys = "Teclas de velocidade do jogo", panel_toggleKeys = "Teclas de alternância", panel_debugKeys = "Teclas de depuraçäo", panel_storePosKeys = "Armazenamento de posiçäo", panel_recallPosKeys = "Retorno de posiçäo", panel_altPanelKeys = "Teclas de alternância do painel", global_confirm = "Confirmar", global_confirm_alt = "Alt. confirmar", global_cancel = "Cancelar", global_cancel_alt = "Alt. cancelar", global_fullscreen_toggle = "Tela cheia", global_exitApp = "Sair do app", global_resetApp = "Reiniciar app", global_releaseMouse = "Liberar mouse", global_connectDebugger = "Depurar", global_showLuaConsole = "Console Lua", global_runDebugScript = "Script de depuraçäo", global_screenshot = "Capturar tela", global_stop_movie_alt = "Parar filme", global_window_close_alt = "Fechar janela", ingame_scroll_up = "Rolar p/ cima", ingame_scroll_down = "Rolar p/ baixo", ingame_scroll_left = "Rolar p/ esq.", ingame_scroll_right = "Rolar p/ dir.", ingame_scroll_shift = "Veloc. aceler.", ingame_zoom_in = "Aproximar", ingame_zoom_in_more = "Aproximar mais", ingame_zoom_out = "Afastar", ingame_zoom_out_more = "Afastar mais", ingame_reset_zoom = "Redefinir zoom", ingame_showmenubar = "Barra de menu", ingame_showCheatWindow = "Menu de trapaça", ingame_loadMenu = "Carregar jogo", ingame_saveMenu = "Salvar jogo", ingame_jukebox = "Jukebox", ingame_openFirstMessage = "Nív. mensagem", ingame_pause = "Pausa", ingame_gamespeed_slowest = "Muito lento", ingame_gamespeed_slower = "Lento", ingame_gamespeed_normal = "Normal", ingame_gamespeed_max = "Rápido", ingame_gamespeed_thensome = "Muito rápido", ingame_gamespeed_speedup = "Acelerar", ingame_panel_bankManager = "Ger. do banco", ingame_panel_bankStats = "Estado da conta", ingame_panel_staffManage = "Lista de funcion.", ingame_panel_townMap = "Mapa da cidade", ingame_panel_casebook = "Ficha clinica", ingame_panel_research = "Pesquisa", ingame_panel_status = "Estado", ingame_panel_charts = "Gráfico", ingame_panel_policy = "Políticas", ingame_panel_map_alt = "Mapa da cidade 2", ingame_panel_research_alt = "Pesquisa 2", ingame_panel_casebook_alt = "Ficha clinica 2", ingame_panel_casebook_alt02 = "Ficha clinica 3", ingame_panel_buildRoom = "Construir sala", ingame_panel_furnishCorridor = "Mobiliar corredor", ingame_panel_editRoom = "Editar sala", ingame_panel_hireStaff = "Contratar", ingame_rotateobject = "Girar objeto", ingame_quickSave = "Salvar rapid.", ingame_quickLoad = "Carregar rapid.", ingame_restartLevel = "Reiniciar nível", ingame_quitLevel = "Sair do nível", ingame_setTransparent = "Transparente", ingame_toggleAnnouncements = "Anúncios", ingame_toggleSounds = "Sons", ingame_toggleMusic = "Música", ingame_toggleAdvisor = "Conselheiro", ingame_toggleInfo = "Informaçöes", ingame_poopLog = "Relatório de erros", ingame_poopStrings = "Extrair textos", ingame_patient_gohome = "Enviar p/ casa", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_storePosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_recallPosition_0 = "10", } tooltip.hotkey_window = { button_accept = "Aceitar e salvar atribuiçöes de teclas de atalho", button_defaults = "Restaura todas as teclas de atalho para os padröes do programa", button_cancel = "Cancela a atribuiçäo e volta ao menu de opçöes", caption_panels = "Abre a janela para atribuir teclas do painel", button_gameSpeedKeys = "Abre a janela para definir teclas para controlar a velocidade do jogo", button_recallPosKeys = "Abre a janela para definir teclas para armazenamento e retorno da posiçöes da câmera", button_back_02 = "Volta para a janela principal de teclas de atalho. As teclas de atalho alteradas nesta janela podem ser aceitas lá", } font_location_window = { caption = "Selecionar fonte (%1%)", } handyman_window = { all_parcels = "Todos os terrenos", parcel = "Terreno" } tooltip.handyman_window = { parcel_select = "O terreno onde o zelador aceita tarefas, clique para alterar a configuraçäo" } new_game_window = { caption = "Campanha", player_name = "Nome", option_on = "Ligado", option_off = "Desligado", difficulty = "Dificuldade", easy = "Residente (Fácil)", medium = "Médico (Normal)", hard = "Consultor (Difícil)", tutorial = "Tutorial", start = "Iniciar", cancel = "Cancelar", } tooltip.new_game_window = { player_name = "Digite o nome que você deseja ser chamado no jogo", difficulty = "Selecione o nível de dificuldade do jogo", easy = "Se você näo conhecer jogos de simulaçäo, esta dificuldade é para você.", medium = "Esta é a dificuldade intermediária, se você está inseguro do que deve escolher.", hard = "Se você está acostumado com este tipo de jogo e quer um bom desafio, escolha esta opçäo", tutorial = "Se você precisa de ajuda para começar a jogar, escolha esta opçäo", start = "Iniciar o jogo com a configuraçäo selecionada", cancel = "Ah, eu näo queria começar um novo jogo!", } lua_console = { execute_code = "Executar", close = "Fechar", } tooltip.lua_console = { textbox = "Digite aqui o código Lua que deseja executar", execute_code = "Executar o código Lua que digitou", close = "Fechar o console", } errors = { dialog_missing_graphics = "Desculpe, os arquivos de dados da versäo de demonstraçäo näo contém este diálogo.", save_prefix = "Erro ao salvar o jogo: ", load_prefix = "Erro ao carregar o jogo: ", load_map_prefix = "Erro ao carregar o mapa: ", load_level_prefix = "Erro ao carregar o nível: ", no_games_to_contine = "Näo há jogos salvos.", load_quick_save = "Erro, näo foi possível carregar o carregamento rápido já que ele näo existe, näo se preocupe nós criamos um agora para você!", map_file_missing = "Näo foi possível encontrar o arquivo de mapa %s para esta fase!", minimum_screen_size = "Por favor, insira um tamanho de tela de pelo menos %dx%d.", unavailable_screen_size = "O tamanho da tela que você digitou näo está disponível em tela cheia.", alien_dna = "NOTA: Os pacientes alienígenas näo têm animaçöes para se sentar, abrir portas, bater nas portas, etc. portanto, assim como no Theme Hospital original, ao fazer estas coisas aparentaräo mudar para uma imagem normal e logo voltaräo para o seu estado. Os pacientes com DNA alienígena só apareceräo se o arquivo de fase o indicar", fractured_bones = "NOTA: A animaçäo das pacientes femininas com Fraturas ósseas näo é perfeita", could_not_load_campaign = "Falha ao carregar a campanha: %s", could_not_find_first_campaign_level = "Näo foi possível encontrar o primeiro nível desta campanha: %s", save_to_tmp = "O arquivo em %s näo pôde ser usado. O jogo foi salvo em %s. Erro: %s", dialog_empty_queue = "Desculpe, um humanoide acabou de ter uma fila de açöes vazia, o que significa que ele näo sabia o que fazer a seguir. Consulte a janela de comandos para mais informaçöes detalhadas. Um diálogo com o humanoide ofensivo foi aberto. Gostaria que ele saísse do hospital?", compatibility_error = { new_in_old = "Desculpe, este salvamento foi criado com uma versäo mais recente do CorsixTH e näo é compatível. Por favor, atualize para uma versäo mais recente.", demo_in_full = "Desculpe, você näo pode abrir um salvamento de demonstraçäo com os arquivos do jogo completo carregados. Por favor, atualize sua configuraçäo da pasta de dados do TH.", full_in_demo = "Desculpe, você näo pode abrir um salvamento do jogo completo com os arquivos de demonstraçäo carregados. Por favor, atualize sua configuraçäo da pasta de dados do TH.", }, music = "Há problemas de reproduçäo com um ou mais arquivos em seu diretório de música. Arquivos problemáticos seräo desativados no jukebox. Veja a janela do console para mais informaçöes.", } warnings = { levelfile_variable_is_deprecated = "Aviso: O nível '%s ' contém uma definiçäo variável obsoleta no arquivo de nível." .. " '%LevelFile' foi renomeado para '%MapFile '. Por favor, informe ao criador do mapa para atualizar o nível.", newersave = "Aviso, você carregou um salvamento de uma versäo mais recente do CorsixTH. Näo é recomendável continuar, pois podem ocorrer falhas. Jogue por sua conta e risco." } confirmation = { needs_restart = "Para alterar esta configuraçäo é necessário reiniciar o CorsixTH. Qualquer alteraçäo näo salva será perdida. Tem certeza que deseja fazer isso?", abort_edit_room = "Você está editando uma sala. Se todos os objetos necessários estiverem colocados ela será completada, caso contrário ela será removida. Continuar?", maximum_screen_size = "O tamanho de tela que digitou é maior que 3000 x 2000. É possível utilizar uma resoluçäo maior, mas necessitará de um computador melhor para que a velocidade de quadros por segundo seja aceitável. Tem certeza de que quer continuar?", remove_destroyed_room = "Gostaria de remover a sala por $%d?", replace_machine_extra_info = "A nova máquina terá %d de força (atualmente %d).", restart_mapeditor = "Tem certeza de que deseja reiniciar o editor de mapas?", quit_mapeditor = "Tem certeza de que deseja sair do editor de mapas?", } information = { custom_game = "Bem-vindo ao CorsixTH. Divirta-se com esse mapa personalizado!", no_custom_game_in_demo = "Desculpe, mas a versäo de demonstraçäo näo pode jogar mapas personalizados.", cannot_restart = "Infelizmente este mapa personalizado foi salvo antes que a funcionalidade de reiniciaçäo fosse implementada.", very_old_save = "Houveram muitas mudanças no jogo desde que você começou a jogar este mapa. Para ter certeza que todas as funcionalidades estäo funcionando considere recomeçar o mapa.", level_lost = { "Que pena! Você fracassou. Mais sorte na próxima vez!", "Você perdeu porque:", reputation = "Sua reputaçäo caiu abaixo de %d.", balance = "Seu saldo bancário caiu abaixo de %d.", percentage_killed = "Você matou mais de %d por cento dos pacientes.", cheat = "Foi escolha sua ou você se enganou de botäo? Näo sabe nem trapacear direito?", }, cheat_not_possible = "Näo pode usar essa trapaça nesta fase. Näo sabe nem trapacear direito?", } tooltip.information = { close = "Fechar a janela de informaçäo", } totd_window = { tips = { "Todo hospital precisa de uma Recepçäo e um Consultório Geral para começar. Depois disso, dependerá do tipo de pacientes que visitará seu hospital. Entretanto ter uma farmácia é sempre uma boa ideia.", "Máquinas como o Inflador precisam de constante manutençäo. Contrate um ou dois Zeladores para reparos nestas máquinas, ou colocará seus funcionários e pacientes em risco.", "Depois de um certo período de trabalho, seus funcionários ficaräo cansados. Certifique-se de construir uma Sala de Descanso, para que posam relaxar.", "Instale Radiadores suficientes para manter seus funcionários e pacientes aquecidos, do contrário ficaräo infelizes. Use o Mapa da Cidade para localizar pontos do hospital que precisem ser aquecidos.", "O nível de habilidade de um médico reflete na qualidade e velocidade dos diagnósticos. Coloque um médico experiente no Consultório Geral, assim näo precisará de muitas salas de diagnósticos adicionais.", "Médicos de níveis 'Residente' e 'Médico' podem melhorar suas habilidades aprendendo com um Consultor na Sala de Treinamento. Se o Consultor possuir alguma especializaçäo (Cirurgiäo, Psiquiatra ou Pesquisador), ele irá passar este conhecimento aos seus alunos.", "Você já tentou digitar o número europeu de emergência (112) no aparelho de fax? Certifique-se que o seu som esteja ligado!", "Você pode alterar algumas configuraçöes como a resoluçäo da tela e o idioma na janela de opçöes que pode ser acessar no menu inicial e dentro do jogo.", "Você selecionou um idioma que näo é o inglês, mas continua vendo textos em inglês por todos os lugares? Ajude-nos a traduzir os textos restantes para o seu idioma!", "A comunidade do CorsixTH está precisando de reforços em sua equipe! Você está interessado em codificar, traduzir ou criar gráficos para o CorsixTH? Entre em contato conosco pelo nosso Fórum, Lista de Discussäo ou canal de IRC (#corsix-th no freenode).", "Se localizar um bug, por favor reporte-o em nosso rastreador de erros: th-issues.corsix.org", "Cada fase possui certas metas a serem atingidas antes de passar para a próxima fase. Cheque a janela de situaçäo para acompanhar seu progresso a fim de atingir seus objetivos.", "Se você deseja editar ou remover uma sala existente, pode fazê-lo com o botäo de ediçäo de sala na barra inferior.", "Caso haja uma multidäo de pacientes esperando, você deve descobrir rapidamente quais deles estäo aguardando por uma sala em particular passando o ponteiro do mouse por cima desta sala.", "Clique nas portas das salas para ver sua fila. Isso pode ser muito útil, já que pode reordenar a fila ou encaminhar um paciente para outra sala.", "Funcionários infelizes iräo pedir aumentos de salários com mais frequência. Certifique-se que sua equipe esteja trabalho em um ambiente de trabalho confortável para mantê-los felizes.", "Pacientes podem ficar com sede enquanto esperam em seu hospital, ainda mais se ligar o aquecimento! Instale máquinas de venda de refrigerantes em pontos estratégicos para um ganho extra.", "Você pode abortar o processo de diagnóstico prematuramente e pressupor a cura, se você já tiver descoberto a doença. Atente-se que desta maneira aumenta-se o risco de um tratamento errado, resultando na morte do paciente.", "Emergências podem ser uma boa fonte de grana extra, desde que você possua plena capacidade e recursos de lidar com os pacientes à tempo.", "Você sabia que pode atribuir Faz-Tudo a terrenos específicos? Basta clicar no texto Todos os Terrenos em seu perfil de funcionário para alternar entre eles!", }, previous = "Dica anterior", next = "Próxima dica", } tooltip.totd_window = { previous = "Mostra a dica anterior", next = "Mostra a próxima dica", } debug_patient_window = { caption = "Depurar Paciente", } tooltip.debug_patient_window = { item = "Criar um paciente de depuraçäo com %s", } cheats_window = { caption = "Trapaças", warning = "Atençäo: Você näo conseguirá quaisquer pontos de bonificaçöes no fim do nível se você trapacear!", cheated = { no = "Trapaças usadas: Näo", yes = "Trapaças usadas: Sim", }, cheats = { money = "Trapaça de Dinheiro", all_research = "Trapaça Todas as Pesquisas Realizadas", emergency = "Criar Emergência", vip = "Criar VIP", toggle_earthquake = "Alternar terremotos", earthquake = "Criar Terremoto", toggle_epidemic = "Alternar epidemias", epidemic = "Gerar um paciente contagioso", show_infected = "Mostrar ou ocultar ícones de infectados", create_patient = "Criar Paciente", end_month = "Fim do Mês", end_year = "Fim do ano", lose_level = "Perder a Fase", win_level = "Ganhar a Fase", increase_prices = "Aumentar Preços", decrease_prices = "Reduzir Preços", reset_death_count = "Redefinir contagem de mortes", max_reputation = "Reputaçäo Máxima", }, close = "Fechar", } tooltip.cheats_window = { close = "Fechar o diálogo de trapaças", cheats = { money = "Adiciona $10.000 ao seu saldo bancário", all_research = "Completa todas as pesquisas.", emergency = "Cria uma emergência.", vip = "Cria um visitante VIP.", toggle_earthquake = "Alternar terremotos", earthquake = "Cria um Terremoto.", toggle_epidemic = "Alternar se epidemias podem acontecer", epidemic = "Cria um paciente contagioso", show_infected = "Mostra/oculta os ícones de infecçäo", create_patient = "Cria um Paciente no canto de mapa.", end_month = "Pula para o final do mês.", end_year = "Pula para o final do ano.", lose_level = "Perde esta fase.", win_level = "Ganha esta fase.", increase_prices = "Aumenta todos os preços em 50% (200% máximo).", decrease_prices = "Reduz todos os preços em 50% (50% mínimo).", reset_death_count = "Redefinir a contagem de mortes do hospital para zero", max_reputation = "Definir a reputaçäo do hospital para o máximo", } } --Level description, can be double spaced after full-stop introduction_texts = { demo = "Bem-vindo ao hospital de demonstraçäo!//" .. "Infelizmente esta versäo de demonstraçäo só possui esta fase. Entretanto, teremos aqui o suficiente para mantê-lo ocupado por enquanto! " .. "Você encontrará várias doenças que necessitaräo de salas diferentes para cura. De tempos em tempos, emergências ocorreräo. E você precisará pesquisar por salas adicionais usando o Centro de Pesquisas. " .. "Seu objetivo é ter um saldo bancário de $100.000,00, o valor do hospital em $ 70.000,00 e uma reputaçäo de 700, enquanto você cura pelo menos 75% de seus pacientes. " .. "Certifique-se que sua reputaçäo näo fique abaixo de 300 e você näo mate mais de 40% dos seus pacientes, senäo você perde.//" .. "Boa sorte!", } calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d chamadas; %d atribuídas", staff = "%s - %s", watering = "Regando @ %d,%d", repair = "Reparar %s", close = "Fechar", } tooltip.calls_dispatcher = { task = "Lista de tarefas - clique na tarefa para abrir a janela do funcionário responsável e ir para o local da tarefa.", assigned = "Esta janela será marcada se alguém for designado para a tarefa correspondente.", close = "Fechar a janela de chamadas de controle", } update_window = { caption = "Atualizaçäo Disponível!", new_version = "Nova Versäo:", current_version = "Versäo Atual:", download = "Ir para página de download", ignore = "Pular e ir para o menu principal", } tooltip.update_window = { download = "Vai para a página de downloads para obter a última versäo do CorsixTH", ignore = "Ignora esta atualizaçäo no momento. Você será notificado da próxima vez que abrir o CorsixTH", } map_editor_window = { pages = { inside = "Interno", outside = "Externo", foliage = "Folhagem", hedgerow = "Cerca viva", pond = "Lago", road = "Estrada", north_wall = "Parede Norte", west_wall = "Parede Oeste", helipad = "Heliponto", set_parcel = "Definir número do terreno", delete_wall = "Excluir paredes", parcel = "Terreno %d", set_parcel_tooltip = "Escolha um número e pressione Enter.", camera_1 = "Câmera 1", camera_2 = "Câmera 2", camera_3 = "Câmera 3", camera_4 = "Câmera 4", heliport_1 = "Heliporto 1", heliport_2 = "Heliporto 2", heliport_3 = "Heliporto 3", heliport_4 = "Heliporto 4", paste = "Colar área", }, checks = { spawn_points_and_path = "Aviso: Pacientes näo conseguem chegar ao hospital. Eles precisam de ladrilhos 'estrada' ou 'externo' cinza na borda do mapa e um caminho desses ladrilhos até a entrada do hospital.", }, } hotkeys_file_err = { file_err_01 = "Näo foi possível carregar o arquivo hotkeys.txt. Certifique-se de que o " .. "CorsixTH tenha permissäo de leitura/escrita ", file_err_02 = ", ou use a opçäo linha de comando --hotkeys-file=nome_do_arquivo para especificar um arquivo gravável. " .. "Para referência, o erro ao carregar o arquivo de teclas de atalho foi: ", } fax = { vip_visit_result = { remarks = { [1] = "Que hospital eficaz! Da próxima vez que estiver gravemente doente, eu virei aqui.", [2] = "É isso que eu chamo de um hospital.", [3] = "É um hospital excelente. E sei do que estou falando; visito muitos hospitais.", [4] = "Que hospital bem administrado! Obrigado pelo seu convite.", [5] = "Mmmm. Certamente não é uma má instituição médica, certamente.", [6] = "Gostei do seu estupendo hospital. Agora, alguém quer um curry da Casa do Curry Taj?", [7] = "Bom, já vi piores. Mas você deveria fazer algumas melhorias.", [8] = "Oh céus! Não é um lugar agradável para se estar doente.", [9] = "Vou ser sincero, é um hospital normal. Francamente, eu esperava mais.", [10] = "Por que me zanguei? Foi pior que assistir a uma ópera de quatro horas!", [11] = "Estou aborrecido com o que vi. Chama isso de hospital? Mais parece um chiqueiro!", [12] = "Estou farto de atrair a atenção pública e de visitar buracos fedorentos como este! Eu me demito.", [13] = "Vá tugúrio! Vou tentar enclausurá-lo.", [14] = "Nunca vi um hospital tão espantoso. Que vergonha!", [15] = "Estou horrorizado. Chama isso de hospital! Preciso de uma bebida urgentemente.", } } } transactions.remove_room = "Construir: Remover sala destruída" -------------------------------- UNUSED ----------------------------------- ------------------- (kept for backwards compatibility) ---------------------- options_window.change_resolution = "Alterar resoluçäo" tooltip.options_window.change_resolution = "Altera a resoluçäo de janela para as dimensöes digitadas na esquerda" -------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------- MISSING STRINGS IN LANGUAGE "PORTUGUêS DO BRASIL": ----------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------- rooms_long.ward = "Sala de Enfermaria" rooms_long.blood_machine = "Sala de Transfusöes" rooms_long.emergency = "Sala de Emergências" rooms_long.general = "Diagnóstico Geral" rooms_long.cardiogram = "Sala de Cardiograma" rooms_long.decontamination = "Sala de Descontaminaçäo" rooms_long.jelly_vat = "Banho Gelatinoso" rooms_long.staffroom = "Sala de Descanso" rooms_long.hair_restoration = "Sala de Pêloterapia" rooms_long.inflation = "Sala de Inflatoterapia" rooms_long.operating_theatre = "Sala de Cirurgia" rooms_long.gps_office = "Consultório de Clínica Geral" rooms_long.training_room = "Sala de Treinamento" rooms_long.x_ray = "Sala de Raio-X" rooms_long.tongue_clinic = "Sala de Laringologia" rooms_long.psychiatric = "Sala de Psiquiatria" rooms_long.corridors = "Corredores" rooms_long.ultrascan = "Sala de Ultra Scanner" rooms_long.dna_fixer = "Clínica de DNA" rooms_long.toilets = "Banheiro" rooms_long.fracture_clinic = "Sala de Ortopedia" rooms_long.pharmacy = "Farmácia" rooms_long.general_diag = "Diagnóstico Geral" rooms_long.research_room = "Centro de Pesquisa" rooms_long.scanner = "Sala de Scanner" rooms_long.electrolysis = "Sala de Eletrólise" fax.debug_fax.text4 = "FACTORS : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d" fax.debug_fax.text2 = "TOTAL PEOPLE IN HOSPITAL %d CHECKING AGAINST %d" fax.debug_fax.text9 = "DISASTERS %d ALLOWED (MTHS) %d (%d)REDUCTION %d" fax.debug_fax.text3 = "FIGURES : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d" fax.debug_fax.close_text = "Sim, sim, sim!" fax.debug_fax.text5 = "CONTRIBN : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d PERCENT" fax.debug_fax.text1 = "BEST COUNT %d" fax.debug_fax.text8 = "AMENITIES %d PEEPS HANDLED %d REDUCTION %d" fax.debug_fax.text10 = "KILLS %d ALLOWED (MTHS) %d (%d) REDUCTION %d" fax.debug_fax.text7 = "REPUTATION: %d EXPECTED %d REDUCTION %d" fax.debug_fax.text11 = "PEOPLE THIS MONTH %d" fax.debug_fax.text6 = "THE FOLLOWING FACTORS ARE ALSO APPLIED" fax.emergency.choices.accept = "Sim. Estou pronto para lidar com esta emergência." fax.emergency.choices.refuse = "Näo. Recuso-me a lidar com esta emergência." fax.emergency.cure_possible_drug_name_efficiency = "Já dispöe dos equipamentos e do pessoal qualificado. Você possui o medicamento necessário. É %s e tem uma eficácia de %d por cento." fax.emergency.bonus = "Você ganhará um bônus máximo de $%d por cuidar desta emergência. Mas, se fracassar, sua reputaçäo será seriamente danificada." fax.emergency.locations[1] = "Planta Química Thatcher." fax.emergency.locations[2] = "Universidade Sarcástica." fax.emergency.locations[3] = "Centro de Plantas Aquáticas." fax.emergency.locations[4] = "Instituto de Pesquisa de Substâncias Perigosas." fax.emergency.locations[5] = "Congresso de Bailarinos Russos." fax.emergency.locations[6] = "Pub Bull e Frog." fax.emergency.locations[7] = "Funerária e Loja de Bebidas do Grande Dave." fax.emergency.locations[8] = "A Casa de Curry Taj." fax.emergency.locations[9] = "Empório Petroquímico Usado do Bert." fax.emergency.cure_not_possible_employ = "Precisará contratar um(a) %s" fax.emergency.location = "Houve um incidente em %s" fax.emergency.cure_possible = "Tem a equipe e o pessoal qualificado necessários, poderá enfrentar esta emergência." fax.emergency.cure_not_possible = "Näo pode curar esta doença no momento." fax.epidemic.cover_up_explanation_2 = "Se um Inspetor de Saúde visitar e encontrar uma epidemia encoberta, tomará medidas drásticas contra você." fax.epidemic.choices.cover_up = "Tente ocultá-la. Busque curar a epidemia antes que se espalhe por todo o país." fax.epidemic.choices.declare = "Declare uma Epidemia. Pague a multa e sofra uma queda na reputaçäo." fax.epidemic.disease_name = "Seus Médicos descobriram uma cepa contagiosa de %s." fax.epidemic.declare_explanation_fine = "Se declarar uma epidemia, pagará uma multa de %d, danificando sua reputaçäo e seus Pacientes seräo automaticamente vacinados." fax.epidemic.cover_up_explanation_1 = "Se tentar encobri-la, terá um tempo limitado para curar todos os infectados antes que as Autoridades da Saúde descubram." fax.vip_visit_result.close_text = "Obrigado por visitar o hospital." fax.vip_visit_result.telegram = "Telegrama!" fax.vip_visit_result.vip_remarked_name = "Depois de visitar o seu hospital, %s declarou:" fax.vip_visit_result.cash_grant = "Você ganhou um prêmio em dinheiro de %d." fax.vip_visit_result.rep_boost = "Sua reputaçäo na comunidade acaba de aumentar." fax.vip_visit_result.rep_loss = "A sua reputaçäo foi afetada em consequência." fax.disease_discovered.close_text = "Uma nova doença foi encontrada." fax.disease_discovered.need_to_build = "É necessário construir %s para poder tratar isso." fax.disease_discovered.can_cure = "Você pode lidar com esta doença." fax.disease_discovered.need_to_employ = "Contrate um(a) %s que possa solucionar esse problema." fax.disease_discovered.need_to_build_and_employ = "Se você construir %s e contratar %s, pode ter sucesso." fax.disease_discovered.discovered_name = "Sua equipe descobriu uma nova doença. É %s." fax.epidemic_result.close_text = "Bem!" fax.epidemic_result.compensation_amount = "O Governo decidiu lhe dar uma compensaçäo de %d pelos danos que este incidente causou ao bom nome do seu hospital." fax.epidemic_result.succeeded.part_1_name = "Chegou aos ouvidos do Inspetor de Saúde que na sua instituiçäo estava tratando um caso maligno de %s." fax.epidemic_result.succeeded.part_2 = "Embora näo fosse possível encontrar provas que comprovassem os ditos rumores..." fax.epidemic_result.hospital_evacuated = "O Ministério da Saúde näo tem outra alternativa senäo evacuar o seu hospital." fax.epidemic_result.failed.part_1_name = "Ao tentar esconder o fato de que enfrentavam um surto contagioso de %s" fax.epidemic_result.failed.part_2 = "Os funcionários do seu hospital säo responsáveis pela doença que se propagou entre as pessoas que vivem perto do seu hospital." fax.epidemic_result.fine_amount = "O Governo declarou uma emergência nacional e multou-o em %d." fax.epidemic_result.rep_loss_fine_amount = "Os jornais têm feito um escândalo com isso. Sua reputaçäo será gravemente afetada. Além disso, imporá uma multa de %d." fax.emergency_result.close_text = "Clique para sair" fax.emergency_result.saved_people = "Você salvou %d pessoas de um total de %d." fax.emergency_result.earned_money = "Ganhou %d, de um bônus máximo de %d." fax.vip_visit_query.vip_name = "%s expressou o desejo de visitar o seu hospital." fax.vip_visit_query.choices.refuse = "Dispensar o V.I.P." fax.vip_visit_query.choices.invite = "Enviar um convite formal ao V.I.P." fax.diagnosis_failed.what_to_do_question = "O que vamos fazer com o Paciente?" fax.diagnosis_failed.choices.send_home = "Enviar o Paciente para casa." fax.diagnosis_failed.choices.take_chance = "Arriscar-se com a possível cura." fax.diagnosis_failed.choices.wait = "Fazer o Paciente esperar enquanto constrói mais salas de diagnóstico." fax.diagnosis_failed.partial_diagnosis_percentage_name = "Há uma chance de %d%% de identificarmos que tipo de %s o Paciente está sofrendo." fax.diagnosis_failed.situation = "Fizemos todos os nossos diagnósticos com este Paciente e näo estamos seguros do que se trata." fax.disease_discovered_patient_choice.what_to_do_question = "O que você quer fazer com o Paciente?" fax.disease_discovered_patient_choice.choices.send_home = "Enviar o Paciente para casa." fax.disease_discovered_patient_choice.choices.research = "Enviar o paciente para Pesquisa." fax.disease_discovered_patient_choice.choices.wait = "Fazer Paciente esperar no hospital por um tempo." fax.disease_discovered_patient_choice.can_not_cure = "Näo pode curar esta doença." fax.disease_discovered_patient_choice.need_to_employ = "Contrate um(a) %s para corrigir esta situaçäo." fax.disease_discovered_patient_choice.need_to_build = "É necessário construir %s para poder tratar isso." fax.disease_discovered_patient_choice.need_to_build_and_employ = "Se você construir %s e contratar %s, pode ter sucesso." fax.disease_discovered_patient_choice.guessed_percentage_name = "Sua equipe teve que adivinhar a condiçäo de um Paciente. Há uma chance de %d por cento de que seja %s." fax.disease_discovered_patient_choice.disease_name = "Sua equipe descobriu uma nova doença. É %s." original_credits[1] = " " original_credits[2] = " " original_credits[3] = " " original_credits[4] = " " original_credits[5] = " " original_credits[6] = " " original_credits[7] = " " original_credits[8] = " " original_credits[9] = " " original_credits[10] = " " original_credits[11] = " " original_credits[12] = ":Desenvolvido e Criado pela" original_credits[13] = ":Bullfrog Productions" original_credits[14] = " " original_credits[15] = ":Equipe de Desenvolvimento Pluto" original_credits[16] = "," original_credits[17] = "Mark Webley" original_credits[18] = "Gary Carr" original_credits[19] = "Matt Chilton" original_credits[20] = "Matt Sullivan" original_credits[21] = "Jo Rider" original_credits[22] = "Rajan Tande" original_credits[23] = "Wayne Imlach" original_credits[24] = "Andy Bass" original_credits[25] = "Jon Rennie" original_credits[26] = "Adam Coglan" original_credits[27] = "Natalie White" original_credits[28] = " " original_credits[29] = " " original_credits[30] = " " original_credits[31] = ":Programaçäo" original_credits[32] = "," original_credits[33] = "Mark Webley" original_credits[34] = "Matt Chilton" original_credits[35] = "Matt Sullivan" original_credits[36] = "Rajan Tande" original_credits[37] = " " original_credits[38] = "Ben Deane" original_credits[39] = "Gary Morgan" original_credits[40] = "Jonty Barnes" original_credits[41] = " " original_credits[42] = " " original_credits[43] = " " original_credits[44] = ":Arte" original_credits[45] = "," original_credits[46] = "Gary Carr" original_credits[47] = "Jo Rider" original_credits[48] = "Andy Bass" original_credits[49] = "Adam Coglan" original_credits[50] = " " original_credits[51] = "Eoin Rogan" original_credits[52] = "George Svarovsky" original_credits[53] = "Saurev Sarkar" original_credits[54] = "Jason Brown" original_credits[55] = "John Kershaw" original_credits[56] = "Dee Lee" original_credits[57] = " " original_credits[58] = " " original_credits[59] = " " original_credits[60] = ":Sequência Introdutória" original_credits[61] = "," original_credits[62] = "Stuart Black" original_credits[63] = " " original_credits[64] = " " original_credits[65] = " " original_credits[66] = ":Música e Efeitos Sonoros" original_credits[67] = "," original_credits[68] = "Russell Shaw" original_credits[69] = "Adrian Moore" original_credits[70] = " " original_credits[71] = "Jeremy Longley" original_credits[72] = "Andy Wood" original_credits[73] = " " original_credits[74] = " " original_credits[75] = " " original_credits[76] = ":Voz da Narradora" original_credits[77] = "," original_credits[78] = "Rebecca Green" original_credits[79] = " " original_credits[80] = " " original_credits[81] = " " original_credits[82] = ":Desenho dos Níveis" original_credits[83] = "," original_credits[84] = "Wayne Imlach" original_credits[85] = "Natalie White" original_credits[86] = "Steven Jarrett" original_credits[87] = "Shin Kanaoya" original_credits[88] = " " original_credits[89] = " " original_credits[90] = " " original_credits[91] = ":Roteiristas" original_credits[92] = "," original_credits[93] = "James Leach" original_credits[94] = "Sean Masterson" original_credits[95] = "Neil Cook" original_credits[96] = " " original_credits[97] = " " original_credits[98] = " " original_credits[99] = ":Pesquisa e Desenvolvimento" original_credits[100] = "," original_credits[101] = "Andy Cakebread" original_credits[102] = "Richard Reed" original_credits[103] = " " original_credits[104] = "Glenn Corpes" original_credits[105] = "Martin Bell" original_credits[106] = "Ian Shaw" original_credits[107] = "Jan Svarovsky" original_credits[108] = " " original_credits[109] = " " original_credits[110] = " " original_credits[111] = ":Bibliotecas e Ferramentas" original_credits[112] = "," original_credits[113] = "Mark Huntley" original_credits[114] = "Alex Peters" original_credits[115] = "Rik Heywood" original_credits[116] = " " original_credits[117] = "Ian Shippen" original_credits[118] = "Mark Lamport" original_credits[119] = " " original_credits[120] = "Russell Shaw" original_credits[121] = "Tony Cox" original_credits[122] = " " original_credits[123] = " " original_credits[124] = " " original_credits[125] = ":Programaçäo do Instalador" original_credits[126] = "," original_credits[127] = "Andy Nuttall" original_credits[128] = "Tony Cox" original_credits[129] = "Andy Cakebread" original_credits[130] = " " original_credits[131] = " " original_credits[132] = " " original_credits[133] = ":Chefe de Testes" original_credits[134] = "," original_credits[135] = "Andy Robson" original_credits[136] = " " original_credits[137] = " " original_credits[138] = " " original_credits[139] = ":Testadores" original_credits[140] = "," original_credits[141] = "Wayne Imlach" original_credits[142] = "Jon Rennie" original_credits[143] = " " original_credits[144] = "Jeff Brutus" original_credits[145] = "Wayne Frost" original_credits[146] = "Steven Lawrie" original_credits[147] = "Tristan Paramor" original_credits[148] = "Nathan Smethurst" original_credits[149] = " " original_credits[150] = "Ryan Corkery" original_credits[151] = "Simon Doherty" original_credits[152] = "James Dormer" original_credits[153] = "Martin Gregory" original_credits[154] = "Ben Lawley" original_credits[155] = "Joel Lewis" original_credits[156] = "David Lowe" original_credits[157] = "Robert Monczak" original_credits[158] = "Dominic Mortoza" original_credits[159] = "Karl O'Keeffe" original_credits[160] = "Michael Singletary" original_credits[161] = "Andrew Skipper" original_credits[162] = "Stuart Stephen" original_credits[163] = "David Wallington" original_credits[164] = " " original_credits[165] = " " original_credits[166] = " " original_credits[167] = ":Suporte Técnico" original_credits[168] = "," original_credits[169] = "Kevin Donkin" original_credits[170] = "Mike Burnham" original_credits[171] = "Simon Handby" original_credits[172] = " " original_credits[173] = " " original_credits[174] = " " original_credits[175] = ":Marketing" original_credits[176] = "," original_credits[177] = "Pete Murphy" original_credits[178] = "Sean Ratcliffe" original_credits[179] = " " original_credits[180] = " " original_credits[181] = " " original_credits[182] = ":Relaçöes Públicas" original_credits[183] = "," original_credits[184] = "Cathy Campos" original_credits[185] = " " original_credits[186] = " " original_credits[187] = " " original_credits[188] = ":Documentaçäo" original_credits[189] = "," original_credits[190] = "Mark Casey" original_credits[191] = "Richard Johnston" original_credits[192] = "James Lenoel" original_credits[193] = "Jon Rennie" original_credits[194] = " " original_credits[195] = " " original_credits[196] = " " original_credits[197] = ":Documentaçäo e Desenho da Caixa" original_credits[198] = "," original_credits[199] = "Caroline Arthur" original_credits[200] = "James Nolan" original_credits[201] = " " original_credits[202] = " " original_credits[203] = " " original_credits[204] = ":Chefe do Projeto de Localizaçäo" original_credits[205] = "," original_credits[206] = "Carol Aggett" original_credits[207] = " " original_credits[208] = " " original_credits[209] = ":Traduçäo para Português" original_credits[210] = "," original_credits[211] = "Altieres Lima" original_credits[212] = "Leonardo Malaman" original_credits[213] = "Henrique Poyatos" original_credits[214] = " " original_credits[215] = " " original_credits[216] = ":Produçäo" original_credits[217] = "," original_credits[218] = "Rachel Holman" original_credits[219] = " " original_credits[220] = " " original_credits[221] = " " original_credits[222] = ":Produtor" original_credits[223] = "," original_credits[224] = "Mark Webley" original_credits[225] = " " original_credits[226] = " " original_credits[227] = " " original_credits[228] = ":Produtor Associado" original_credits[229] = "," original_credits[230] = "Andy Nuttall" original_credits[231] = " " original_credits[232] = " " original_credits[233] = " " original_credits[234] = ":Operaçöes" original_credits[235] = "," original_credits[236] = "Steve Fitton" original_credits[237] = " " original_credits[238] = " " original_credits[239] = " " original_credits[240] = ":Administraçäo da Companhia" original_credits[241] = "," original_credits[242] = "Audrey Adams" original_credits[243] = "Annette Dabb" original_credits[244] = "Emma Gibbs" original_credits[245] = "Lucia Gobbo" original_credits[246] = "Jo Goodwin" original_credits[247] = "Sian Jones" original_credits[248] = "Kathy McEntee" original_credits[249] = "Louise Ratcliffe" original_credits[250] = " " original_credits[251] = " " original_credits[252] = " " original_credits[253] = ":Direçäo da Companhia" original_credits[254] = "," original_credits[255] = "Les Edgar" original_credits[256] = "Peter Molyneux" original_credits[257] = "David Byrne" original_credits[258] = " " original_credits[259] = " " original_credits[260] = " " original_credits[261] = ":O nosso agradecimento especial para" original_credits[262] = "," original_credits[263] = "Peter Molyneux" original_credits[264] = " " original_credits[265] = "O pessoal do Hospital Frimley Park" original_credits[266] = " " original_credits[267] = "em particular ao" original_credits[268] = "," original_credits[269] = "Beverley Cannell" original_credits[270] = "Doug Carlisle" original_credits[271] = " " original_credits[272] = " " original_credits[273] = " " original_credits[274] = ":Continuem a pensar" original_credits[275] = " " original_credits[276] = " " original_credits[277] = " " original_credits[278] = " " original_credits[279] = " " original_credits[280] = " " original_credits[281] = " " original_credits[282] = " " original_credits[283] = " " original_credits[284] = " " original_credits[285] = " " original_credits[286] = " " original_credits[287] = " " original_credits[288] = " " original_credits[289] = " " original_credits[290] = " " original_credits[291] = " " original_credits[292] = " " original_credits[293] = " " original_credits[294] = " " original_credits[295] = "." buy_objects_window.choose_items = "Escolha os Objetos" buy_objects_window.total = "Total: " buy_objects_window.price = "Preço: " build_room_window.pick_room_type = "Escolha a Sala" build_room_window.pick_department = "Departamento" build_room_window.cost = "Custo: " object.bench = "Banco" object.pharmacy_cabinet = "Armário de Remédios" object.console = "Console" object.atom_analyser = "Analisador Atômico" object.fire_extinguisher = "Extintor" object.scanner = "Scanner" object.bin = "Lixeira" object.swing_door1 = "Porta de Batente" object.pool_table = "Mesa de bilhar" object.screen = "Biombo" object.cabinet = "Arquivo" object.sofa = "Sofá" object.projector = "Projetor" object.table2 = "Mesa" object.shower = "Ducha Descontaminadora" object.comfortable_chair = "Poltrona Confortável" object.door = "Porta" object.computer = "Computador" object.litter_bomb = "Bomba de Lixo" object.entrance_left = "Porta de entrada esquerda" object.dna_fixer = "Reparador de DNA" object.bed = "Cama" object.lamp = "Abajur" object.bookcase = "Estante" object.desk = "Escrivaninha" object.toilet_sink = "Pia" object.gates_of_hell = "Portöes do Inferno" object.swing_door2 = "Porta de Batente" object.cast_remover = "Removedor de Gesso" object.plant = "Planta" object.blood_machine = "Transfusiômetro" object.slicer = "Cortador" object.x_ray = "Raio-X" object.cardio = "Cardiograma" object.crash_trolley = "Carrinho" object.bed2 = "Cama" object.electrolyser = "Eletrólise" object.video_game = "Videogame" object.skeleton = "Esqueleto" object.ultrascanner = "Ultra Scanner" object.op_sink1 = "Pia" object.hair_restorer = "Restaurador de Pêlo" object.reception_desk = "Recepçäo" object.radiation_shield = "Escudo Contra Radiaçäo" object.couch = "Divä" object.inflator = "Inflador" object.toilet = "Banheiro" object.lecture_chair = "Poltrona" object.auto_autopsy = "Máq. autópsias" object.chair = "Cadeira" object.x_ray_viewer = "Máquina de Raio-X" object.radiator = "Aquecedor" object.bed3 = "Cama" object.surgeon_screen = "Tela do Cirurgiäo" object.jelly_moulder = "Modelador de Gelatina" object.drinks_machine = "Máq. de bebidas" object.op_sink2 = "Pia" object.table1 = "Mesa" object.entrance_right = "Porta de entrada direita" object.operating_table = "Mesa de Cirurgia" object.tv = "Televisäo" transactions.bank_loan = "Empréstimo bancário" transactions.buy_object = "Compra de objetos" transactions.cure = "Cura" transactions.general_bonus = "Pagamento extra geral" transactions.treat_colon = "Tratamento:" transactions.eoy_bonus_penalty = "Bônus/multa de fim de ano" transactions.loan_repayment = "Devoluçäo do empréstimo" transactions.research = "Gastos em pesquisa" transactions.epidemy_coverup_fine = "Multa por ocultaçäo da epidemia" transactions.build_room = "Construçäo de sala" transactions.sell_object = "Vendeu" transactions.vaccination = "Vacinas" transactions.personal_bonus = "Pagamento extra individual" transactions.drug_cost = "Medicamento" transactions.severance = "Inden. demissäo" transactions.deposit = "Tratamentos" transactions.epidemy_fine = "Multa pela epidemia" transactions.buy_land = "Compra de terreno" transactions.hire_staff = "Contrataçäo de funcionário" transactions.insurance_colon = "Seguro:" transactions.drinks = "Renda: máquinas de bebidas" transactions.overdraft = "Juros do saldo devedor" transactions.vip_award = "Prêmio VIP" transactions.research_bonus = "Bônus de pesquisa" transactions.cheat = "Trapaça de dinheiro" transactions.compensation = "Indenizaçäo do governo" transactions.wages = "Salários" transactions.advance_colon = "Avanços:" transactions.cure_colon = "Cura:" transactions.jukebox = "Renda: jukebox" transactions.machine_replacement = "Custo por substituiçäo de máquinas" transactions.heating = "Gastos com aquecimento" transactions.final_treat_colon = "Tratamento final:" transactions.emergency_bonus = "Pagamento extra de emergência" transactions.eoy_trophy_bonus = "Troféu bônus de fim de ano" transactions.loan_interest = "Juros do empréstimo" menu_options.game_speed = " VELOCIDADE DO JOGO " menu_options.sound_vol = " VOLUME DO SOM " menu_options.music_vol = " VOLUME DA MUSICA " menu_options.autosave = " AUTO-SALVAR " menu_options.announcements_vol = " VOLUME DOS AVISOS " newspaper[1][1] = "TERROR NO HOSPITAL" newspaper[1][2] = "O MÉDICO AÇOUGUEIRO" newspaper[1][3] = "PANICO GERAL" newspaper[1][4] = "O QUE HAVIA NO LABORATORIO?" newspaper[1][5] = "DETEVE UMA INVESTIGAÇAO DE RISCO" newspaper[2][1] = "DR UNK É UM CANALHA" newspaper[2][2] = "CIRURGIAO DESPEDAÇADO" newspaper[2][3] = "ESPECIALISTA EM JOGOS" newspaper[2][4] = "EMBRIAGADO" newspaper[2][5] = "CIRURGIAO CACHACEIRO" newspaper[2][6] = "EMBRIAGADO EM CIRURGIA" newspaper[3][1] = "CIRURGIAO VICIADO" newspaper[3][2] = "MÉDICO SEM CALÇAS" newspaper[3][3] = "MÉDICO SEDUTOR" newspaper[3][4] = "CIRURGIAO INSACIAVEL" newspaper[4][1] = "MÉDICO INVADE HOSPITAL" newspaper[4][2] = "CRIME ORGANIZADO" newspaper[4][3] = "OPERAÇAO DE DESVIO DE FUNDOS" newspaper[4][4] = "FECHAMENTO SEM REMUNERAÇAO" newspaper[5][1] = "ASSALTO EM UM HOSPITAL" newspaper[5][2] = "MÉDICO RETIRA CADAVERES" newspaper[5][3] = "CAPTURADO COM O CORPO" newspaper[5][4] = "AJUSTE DE CONTAS DO DR MORTE" newspaper[5][5] = "ROUBO NO DEPOSITO" newspaper[5][6] = "DENOMINADO DR CAVATUMBAS" newspaper[6][1] = "DR COSTURA MAIS UMA VEZ!" newspaper[6][2] = "FALSO MÉDICO" newspaper[6][3] = "DIAGNOSTICO ERRADO" newspaper[6][4] = "CONSULTOR DESAJEITADO" newspaper[7][1] = "MÉDICO SE SENTE MARGINALIZADO" newspaper[7][2] = "UM CIRURGIAO 'OPERA' A SI MESMO" newspaper[7][3] = "DESCONTROLE EM BANHEIROS" newspaper[7][4] = "MÉDICO PROTAGONIZA UM ESCANDALO" newspaper[7][5] = "MÉDICO 'CRIA UM BARRACO'" progress_report.too_hot = "Ajuste o sistema de aquecimento. Está quente demais." progress_report.header = "Relatório de Progresso" progress_report.percentage_pop = "% da populaçäo" progress_report.too_cold = "Está frio demais. Coloque aquecedores." progress_report.quite_unhappy = "Seu pessoal está bastante infeliz." progress_report.win_criteria = "CRITÉRIOS PARA GANHAR" progress_report.very_unhappy = "Seu pessoal está muito infeliz." progress_report.more_drinks_machines = "Coloque mais máquinas de bebidas." staff_descriptions.bad[1] = "É uma pessoa lenta e suscetível. " staff_descriptions.bad[2] = "Mostra preguiça e falta de motivaçäo. " staff_descriptions.bad[3] = "Com uma má formaçäo e pouco eficaz. " staff_descriptions.bad[4] = "Pessoa grosseira e brusca. Chateia as pessoas. " staff_descriptions.bad[5] = "Tem pouca resistência e má atitude. " staff_descriptions.bad[6] = "Pessoa surda como uma porta. Cheira a repolho. " staff_descriptions.bad[7] = "Pessoa imunda no serviço. Um estorvo. " staff_descriptions.bad[8] = "Imprudente e se distrai com facilidade. " staff_descriptions.bad[9] = "Pessoa estressada e confusa. " staff_descriptions.bad[10] = "Pessoa desleal e rancorosa. Cheia de ódio. " staff_descriptions.bad[11] = "Näo toma cuidado e provoca acidentes. " staff_descriptions.bad[12] = "Näo se importa com o trabalho. Perde tempo. " staff_descriptions.bad[13] = "Pessoa temerária e descuidada. " staff_descriptions.bad[15] = "Pessoa arrogante e presunçosa. " staff_descriptions.misc[1] = "Joga golfe. " staff_descriptions.misc[2] = "Pratica mergulho. " staff_descriptions.misc[3] = "Faz esculturas de gelo. " staff_descriptions.misc[4] = "Bebe vinho. " staff_descriptions.misc[5] = "Dirige carros de rally. " staff_descriptions.misc[6] = "Faz bungee-jump. " staff_descriptions.misc[7] = "Coleciona latas de cerveja. " staff_descriptions.misc[8] = "Gosta de mergulhar no público em shows. " staff_descriptions.misc[9] = "Gosta de fazer surf. " staff_descriptions.misc[10] = "Pratica rafting. " staff_descriptions.misc[12] = "Especialista em 'faça você mesmo'. " staff_descriptions.misc[13] = "Gosta do cinema francês. " staff_descriptions.misc[14] = "Joga muito Theme Park. " staff_descriptions.misc[15] = "Possui carteira de habilitaçäo E. " staff_descriptions.misc[16] = "Corre de motocicleta. " staff_descriptions.misc[17] = "Toca violino e violoncelo. " staff_descriptions.misc[18] = "Adora destruidor trens. " staff_descriptions.misc[19] = "Adora cachorros. " staff_descriptions.misc[20] = "Ouve rádio. " staff_descriptions.misc[21] = "Toma banho com frequência. " staff_descriptions.misc[22] = "Instrutor de costura. " staff_descriptions.misc[23] = "Tira o miolo dos vegetais para usar como saboneteira. " staff_descriptions.misc[24] = "É policial em meio expediente. " staff_descriptions.misc[25] = "Ex-apresentador de quiz. " staff_descriptions.misc[26] = "Coleciona bombas da Segunda Guerra. " staff_descriptions.misc[27] = "Restaura móveis. " staff_descriptions.misc[28] = "Ouve música rave e trip-hop. " staff_descriptions.misc[29] = "Irrita insetos borrifando desodorante. " staff_descriptions.misc[30] = "Ridiculariza comediantes ruins. " staff_descriptions.misc[31] = "Espiona para a prefeitura. " staff_descriptions.misc[32] = "Cuida do jardim às escondidas. " staff_descriptions.misc[33] = "Contrabandeia relógios falsificados. " staff_descriptions.misc[34] = "Canta em uma banda de rock & roll. " staff_descriptions.misc[35] = "Adora programas de televisäo vespertinos. " staff_descriptions.misc[36] = "Pesca trutas com a mäo. " staff_descriptions.misc[37] = "Isca turistas em museus. " staff_descriptions.good[1] = "Trabalha de forma rápida e diligente. " staff_descriptions.good[2] = "Trabalha com consciência e seriedade. " staff_descriptions.good[3] = "Sabe fazer muitas coisas. " staff_descriptions.good[4] = "Muito agradável e gosta de rir. " staff_descriptions.good[5] = "Tem muita energia. Näo para. " staff_descriptions.good[6] = "Pessoa educada e de boas maneiras. " staff_descriptions.good[7] = "Com talento e capacidade incríveis. " staff_descriptions.good[8] = "Preocupa-se muito com seu trabalho. " staff_descriptions.good[9] = "Procura a perfeiçäo e nunca se rende. " staff_descriptions.good[10] = "Ajuda as pessoas com um sorriso. " staff_descriptions.good[11] = "Tem encanto, educaçäo e disponibilidade. " staff_descriptions.good[12] = "Normalmente tem estímulo e dedicaçäo. " staff_descriptions.good[13] = "É boa pessoa e trabalha muito. " staff_descriptions.good[14] = "Leal e amigável. " staff_descriptions.good[15] = "Pessoa atenta e confiável em caso de emergência. " humanoid_name_ends[1] = "SMITH" humanoid_name_ends[2] = "WICK" humanoid_name_ends[3] = "CLIFFE" humanoid_name_ends[4] = "SON" humanoid_name_ends[5] = "INGTON" humanoid_name_ends[6] = "BURY" humanoid_name_ends[7] = "TON" humanoid_name_ends[8] = "SON" humanoid_name_ends[9] = "LEY" humanoid_name_ends[10] = "BERRY" humanoid_name_ends[11] = "BAUM" humanoid_name_ends[12] = "LAN" humanoid_name_ends[13] = "HAM" humanoid_name_ends[14] = "SILL" humanoid_name_ends[15] = "WIN" humanoid_name_ends[16] = "LET" humanoid_name_ends[17] = "ERS" humanoid_name_ends[18] = "TON" humanoid_name_ends[19] = "MOND" humanoid_name_ends[20] = "MAN" humanoid_name_ends[21] = "ELTON" humanoid_name_ends[22] = "E" humanoid_name_ends[23] = "MORE" humanoid_name_ends[24] = "MOOR" humanoid_name_ends[25] = "LET" humanoid_name_ends[26] = "LIN" menu.options = " OPÇOES " menu.display = " TELA " menu.file = " ARQUIVO " menu.debug = " DEPURAÇAO " menu.charts = " GRAFICOS " letter[1][1] = "Caro %s//" letter[1][2] = "Fantástico! Dirigiu este hospital de uma maneira excelente. Nós, a elite do Ministério da Saúde, gostaríamos de saber se você estaria interessado em fazer parte de um grande projeto. Há um trabalho para o qual acreditamos que você seria a pessoa perfeita. O salário seria de $%d. Pense nisso.//" letter[1][3] = "Você está interessado em trabalhar no Hospital %s?" letter[2][1] = "Caro %s//" letter[2][2] = "Parabéns! Realizou notáveis melhorias no seu hospital. Temos outro serviço que você poderia assumir, se gostar de mudanças e novos desafios. Näo é obrigatório aceitar, mas seria bom se o fizesse. O salário é de $%d.//" letter[2][3] = "Você está interessado em trabalhar no Hospital %s?" letter[3][1] = "Caro %s//" letter[3][2] = "Dirigiu este hospital com notável desempenho durante o seu mandato. Ao chegar ao fim, prevejo um brilhante futuro, e gostaríamos de lhe oferecer um cargo em outro lugar. O salário seria de %d, e acredito que você adoraria o desafio que isso criaria.//" letter[3][3] = "Gostaria de ter um posto no Hospital %s?" letter[4][1] = "Caro %s//" letter[4][2] = "Parabéns! No Ministério estamos muito impressionados com sua capacidade como diretor do Hospital. É, sem dúvida, uma pessoa valiosa para o Departamento de Saúde, mas acreditamos que você preferiria um trabalho mais qualificado. Receberia um salário de $%d, embora a decisäo seja sua.//" letter[4][3] = "Você está interessado em trabalhar no Hospital %s?" letter[5][1] = "Caro %s//" letter[5][2] = "Saudaçöes novamente. Respeitamos o seu desejo de näo querer sair do seu estupendo hospital, mas pedimos que reconsidere. Ofereceremos a você um alto salário de $%d se decidir ir para o outro hospital e assumir a sua direçäo.//" letter[5][3] = "Gostaria de ir agora para o Hospital %s?" letter[6][1] = "Caro %s//" letter[6][2] = "Receba nossas saudaçöes. Sabemos que você desfrutou muito da sua estadia nesta instituiçäo, täo agradável e bem dirigida, mas acreditamos que agora deveria pensar no seu futuro. Naturalmente, você teria um salário de $%d se decidisse sair. Vale a pena considerar.//" letter[6][3] = "Gostaria de ter um posto no Hospital %s?" letter[7][1] = "Caro %s//" letter[7][2] = "Bom dia! O Ministério da Saúde gostaria de saber se você reconsideraria a sua decisäo de ficar no seu hospital. Compreendemos que você tenha um ótimo hospital, mas acreditamos que faria muito bem em aceitar um trabalho mais estimulante, com um salário de $%d.//" letter[7][3] = "Aceitaria um posto no Hospital %s?" letter[8][1] = "Caro %s//" letter[8][2] = "Olá, novamente. Recebemos a sua resposta negativa na nossa última carta, na qual oferecíamos um posto de direçäo em outro hospital, com um alto salário de $%d. Contudo, acreditamos que você deveria reconsiderar essa decisäo. Como verá, temos o trabalho perfeito para você.//" letter[8][3] = "Aceitaria um posto no Hospital %s, por favor?" letter[9][1] = "Caro %s//" letter[9][2] = "Você provou ser o melhor administrador de hospitais na longa e conturbada história da medicina. Tal conquista monumental näo pode passar despercebida, entäo gostaríamos de oferecer-lhe o cargo honorário de Chefe Supremo de Todos os Hospitais. Isso vem com um salário de $%d. Você será recebido com uma parada em sua homenagem, e as pessoas demonstraräo sua gratidäo por onde quer que vá.//" letter[9][3] = "Agradecemos por tudo o que fez e desfrute de uma longa semi-aposentadoria.//" letter[9][4] = "" letter[10][1] = "Caro %s//" letter[10][2] = "Parabéns por administrar com sucesso todos os hospitais que lhe foram designados. Tal desempenho magnífico lhe qualifica para a liberdade de todas as cidades do mundo. Você receberá uma pensäo de $%d, e tudo o que pedimos é que viaje, gratuitamente, por todo o país, promovendo o trabalho de todos os hospitais ao seu público adorador.//" letter[10][3] = "Estamos orgulhosos e agradecidos pelo seu trabalho ao salvar vidas.//" letter[10][4] = "Ei! Você está indo à falência!" letter[11][1] = "Caro %s//" letter[11][2] = "Sua carreira foi exemplar, e você é uma inspiraçäo para todos nós. Obrigado por administrar tantos hospitais com tanta competência. Gostaríamos de lhe conceder um salário vitalício de $%d, e simplesmente pedir que viaje em um carro oficial aberto de cidade em cidade, proferindo palestras sobre como alcançou tanto sucesso em täo pouco tempo.//" letter[11][3] = "Você é um exemplo para todas as pessoas sábias, e sem exceçäo, todos no mundo o(a) consideram um ativo supremo.//" letter[11][4] = "Ei! Você está indo à falência!" letter[12][1] = "Caro %s//" letter[12][2] = "Sua carreira de sucesso como o melhor administrador de hospitais desde Moisés está chegando ao fim. Condizente com seu impacto na naçäo, o Ministério gostaria de lhe oferecer um salário de $%d apenas para aparecer em nosso nome, inaugurando eventos, lançando navios e participando de programas de entrevistas. Seria uma ótima PR para todos nós!//" letter[12][3] = "Por favor, aceite. Será fácil e você terá um veículo e uma escolta policial.//" letter[12][4] = "Ei! Você está indo à falência!" place_objects_window.place_objects_in_corridor = "Coloque os objetos em um corredor." place_objects_window.drag_blueprint = "Arraste a marca azul até conseguir o tamanho que deseja." place_objects_window.pick_up_object = "Clique em um objeto para selecioná-lo ou escolher outra opçäo no diálogo." place_objects_window.place_windows = "Se quiser, adicione algumas janelas. Em seguida, clique em confirmar." place_objects_window.place_objects = "Coloque os objetos e mova-os à sua maneira. Em seguida, confirme." place_objects_window.confirm_or_buy_objects = "Você pode confirmar a sala, comprar ou mover alguns objetos." place_objects_window.place_door = "Coloque a porta." level_names[1] = "Cidade Contaminada" level_names[2] = "Cidade do Sonho" level_names[3] = "Vila Grande" level_names[4] = "Vila Praia" level_names[5] = "Vila Simples" level_names[6] = "Vila Ulcera" level_names[7] = "Cidade Verde" level_names[8] = "Cidade do Porto" level_names[9] = "Cidade Leste" level_names[10] = "Ovovile" level_names[11] = "Vila Corvo" level_names[12] = "Vila Próspera" level_names[13] = "Vila Amistosa" level_names[14] = "Vila Pancadaria" level_names[15] = "Vila Sepultura" pay_rise.definite_quit = "Nada que você faça me manterá aqui. Estou farto deste lugar." pay_rise.regular[2] = "Estou muito cansado. Preciso de férias e de um aumento salarial de %d, totalizando %d. E quero já, seu tirano!" pay_rise.regular[3] = "Vamos! Trabalho como um escravo. Se me der um bônus de %d, ficarei no seu hospital." pay_rise.regular[4] = "Estou muito insatisfeito. Exijo um aumento de %d, totalizando um salário final de %d; caso contrário, vou embora." pay_rise.regular[5] = "Meus pais me disseram que os Médicos ganham um bom salário; entäo, me dê um aumento de %d ou me dedicarei à produçäo de jogos de computador." pay_rise.regular[6] = "Estou farto. Pague-me um bom salário. Um aumento de %d será suficiente." pay_rise.poached = "%s me ofereceu um salário de %d. Se näo me pagar o mesmo, vou embora." casebook.reputation = "reputaçäo" casebook.earned_money = "dinheiro ganho" casebook.cure_desc.no_cure_known = "Näo há Cura Conhecida" casebook.cure_desc.hire_doctors = "Você precisa contratar alguns Médicos." casebook.cure_desc.build_ward = "Ainda precisa construir uma Enfermaria." casebook.cure_desc.improve_cure = "Melhorar a Cura." casebook.cure_desc.build_room = "Sugiro que construa %s." casebook.cure_desc.hire_surgeons = "Você precisa contratar Cirurgiöes." casebook.cure_desc.cure_known = "Cura." casebook.cure_desc.hire_psychiatrists = "Você precisa contratar Psiquiatras." casebook.cure_desc.hire_nurses = "Você deve contratar algumas Enfermeiras." casebook.sent_home = "rejeitados" casebook.cured = "recuperaçöes" casebook.deaths = "falecimentos" casebook.treatment_charge = "custo tratamento" casebook.research = "pesquisa intensiva" casebook.cure = "cura" confirmation.replace_machine = "Tem certeza de que deseja substituir %s por $%d?" confirmation.quit = "Você optou por Sair do jogo. Tem certeza de que realmente deseja sair do jogo?" confirmation.sack_staff = "Tem certeza de que deseja despedir este funcionário?" confirmation.delete_room = "Você realmente deseja excluir esta sala?" confirmation.return_to_blueprint = "Tem certeza de que deseja voltar para o modo Planta?" confirmation.overwrite_save = "Já existe um jogo salvo neste espaço. Tem certeza de que deseja sobrescrevê-lo" menu_options_volume[80] = " 80% " menu_options_volume[50] = " 50% " menu_options_volume[100] = " 100% " menu_options_volume[70] = " 70% " menu_options_volume[40] = " 40% " menu_options_volume[90] = " 90% " menu_options_volume[60] = " 60% " menu_options_volume[20] = " 20% " menu_options_volume[30] = " 30% " menu_options_volume[10] = " 10% " vip_names[1] = "O Prefeito de Greater Trumpton" vip_names[2] = "Lawrence Nightingale" vip_names[3] = "Rei Bernard dos Países Baixos" vip_names[4] = "Aung Sang Su Kyi, a Líder da Oposiçäo Democrática Birmanesa" vip_names[5] = "Sir Reginald Crumbly" vip_names[7] = "Conselheiro Crawford Purves" vip_names[8] = "Rocket Ronnie Jepson" vip_names[9] = "Um jogador de futebol da Premier League" vip_names[10] = "L. F. Probst, III" vip_names.health_minister = "O Ministro da Saúde" menu_charts.briefing = " INSTRUÇOES " diseases.kidney_beans.cause = "Causa - Mastigar os cubos de gelo das bebidas." diseases.kidney_beans.name = "Feijöes Renais" diseases.kidney_beans.symptoms = "Sintomas - Dor e idas frequentes ao banheiro." diseases.kidney_beans.cure = "Cura - Dois Cirurgiöes devem remover os feijöes sem tocar nas paredes do rim." diseases.ruptured_nodules.cause = "Causa - Fazer bungee jumping em tempo frio." diseases.ruptured_nodules.name = "Boludite" diseases.ruptured_nodules.symptoms = "Sintomas - Incapacidade de se sentar confortavelmente." diseases.ruptured_nodules.cure = "Cura - Dois cirurgiöes qualificados colocam certas partes com mäos firmes." diseases.fractured_bones.cause = "Causa - Queda de um lugar alto." diseases.fractured_bones.name = "Fraturas Osseas" diseases.fractured_bones.symptoms = "Sintomas - Um grande rangido e a impossibilidade de usar os membros afetados." diseases.fractured_bones.cure = "Cura - É colocado um molde; depois, com uma máquina a laser, ele é removido." diseases.diag_psych.name = "Diag: Psiquiatria" diseases.jellyitis.cause = "Causa - Uma dieta rica em gelatina e muito exercício." diseases.jellyitis.name = "Gelatinite" diseases.jellyitis.symptoms = "Sintomas - Um tremor excessivo e quedas frequentes ao chäo." diseases.jellyitis.cure = "Cura - Inunda-se o Paciente durante um momento no banheiro gelatinoso em uma sala especial." diseases.discrete_itching.cause = "Causa - Insetos diminutos com dentes afiados." diseases.discrete_itching.name = "Coceira Leve" diseases.discrete_itching.symptoms = "Sintomas - Arranhar-se, o que leva a um inchaço da parte afetada." diseases.discrete_itching.cure = "Cura - O Paciente bebe um xarope farmacêutico para evitar a coceira da pele." diseases.alien_dna.cause = "Causa - Enfrentar gigantes providos de sangue alienígena inteligente." diseases.alien_dna.name = "DNA Alienígena" diseases.alien_dna.symptoms = "Sintomas - Metamorfose alienígena gradual e desejo de destruir nossas cidades." diseases.alien_dna.cure = "Cura - O DNA é mecanicamente removido, limpo de elementos alienígenas e substituído rapidamente." diseases.infectious_laughter.cause = "Causa - Comédia clássica de situaçäo." diseases.infectious_laughter.name = "Risada Contagiosa" diseases.infectious_laughter.symptoms = "Sintomas - Näo conseguir parar de rir e repetir frases feitas nada divertidas." diseases.infectious_laughter.cure = "Cura - Um psiquiatra qualificado deve lembrar o Paciente de que sua doença é grave." diseases.diag_general_diag.name = "Diag: Geral" diseases.spare_ribs.cause = "Causa - Sentar-se sobre pisos muito frios." diseases.spare_ribs.name = "Costelas Sobressalentes" diseases.spare_ribs.symptoms = "Sintomas - Um mal-estar no peito." diseases.spare_ribs.cure = "Cura - Dois cirurgiöes extraem as costelas e entregam ao Paciente em uma sacola." diseases.transparency.cause = "Causa - Lamber tampa de iogurte já usado." diseases.transparency.name = "Transparentite" diseases.transparency.symptoms = "Sintomas - A carne fica transparente e horrível." diseases.transparency.cure = "Cura - Tomar uma preparaçäo farmacêutica de água esfriada e colorida de modo especial." diseases.baldness.cause = "Causa - Contar mentiras e inventar histórias para ser famoso." diseases.baldness.name = "Calvície" diseases.baldness.symptoms = "Sintomas - Ter a cabeça brilhante e passar vergonha." diseases.baldness.cure = "Cura - O cabelo é costurado à cabeça do Paciente com uma máquina dolorosa." diseases.sleeping_illness.cause = "Causa - Uma glândula do sono hiperativa no céu da boca." diseases.sleeping_illness.name = "Sonolência" diseases.sleeping_illness.symptoms = "Sintomas - Um desejo incontrolável de mergulhar no sono." diseases.sleeping_illness.cure = "Cura - Uma Enfermeira administra uma dose elevada de um poderoso estimulante." diseases.pregnancy.cause = "Causa - Cortes de eletricidade em áreas urbanas." diseases.pregnancy.name = "Grávida" diseases.pregnancy.symptoms = "Sintomas - Muita vontade de comer e um mal-estar no estômago." diseases.pregnancy.cure = "Cura - O bebê é retirado na Sala de Cirurgia, limpo e entregue ao Paciente." diseases.general_practice.name = "Diagnóstico Geral" diseases.tv_personalities.cause = "Causa - Ver televisäo durante o dia." diseases.tv_personalities.name = "Personalite" diseases.tv_personalities.symptoms = "Sintomas - Ter a ilusäo de apresentar um programa de culinária na televisäo." diseases.tv_personalities.cure = "Cura - Um Psiquiatra perito deve convencer o Paciente a vender seu televisor e comprar um rádio." diseases.broken_wind.cause = "Causa - Usar um aparelho ginástico depois das refeiçöes." diseases.broken_wind.name = "Flatulência" diseases.broken_wind.symptoms = "Sintomas - Incomoda as pessoas que estäo logo atrás do Paciente." diseases.broken_wind.cure = "Cura - Na Farmácia, bebe-se rapidamente uma forte mistura de átomos aquosos." diseases.hairyitis.cause = "Causa - Exposiçäo prolongada à lua." diseases.hairyitis.name = "Peludismo" diseases.hairyitis.symptoms = "Sintomas - Pacientes com olfato mais sensível." diseases.hairyitis.cure = "Cura - Uma máquina de Eletrólise elimina o pelo e fecha os poros." diseases.diag_ward.name = "Diag: Enfermaria" diseases.third_degree_sideburns.cause = "Causa - Saudade dos anos 1970." diseases.third_degree_sideburns.name = "Costeletas de Terceiro Grau" diseases.third_degree_sideburns.symptoms = "Sintomas - Corte comprido, roupa larga, plataformas e muita maquiagem." diseases.third_degree_sideburns.cure = "Cura - O pessoal psiquiátrico deve, empregando técnicas atualizadas, convencer o Paciente de que essa moda é horrível." diseases.gut_rot.cause = "Causa - O xarope para a tosse, à base de uísque, da Sra. McGuiver." diseases.gut_rot.name = "Ulcera Gástrica" diseases.gut_rot.symptoms = "Sintomas - O Paciente näo tosse, mas também näo tem paredes no estômago." diseases.gut_rot.cure = "Cura - Uma Enfermeira administra uma dissoluçäo variada de substâncias químicas para revestir o estômago." diseases.chronic_nosehair.cause = "Causa - Cheirar com desprezo aqueles que estäo pior que o Paciente." diseases.chronic_nosehair.name = "Nariz Peludo" diseases.chronic_nosehair.symptoms = "Sintomas - Ter tanto cabelo no nariz que poderia fazer uma peruca." diseases.chronic_nosehair.cure = "Cura - Tomar por via oral um xarope retira-pêlo, que a Enfermeira prepara na Farmácia." diseases.the_squits.cause = "Causa - Comer pizza que encontrou debaixo da mesa da cozinha." diseases.the_squits.name = "Diarreia" diseases.the_squits.symptoms = "Sintomas - Agh! Certamente pode imaginar isso." diseases.the_squits.cure = "Cura - Uma mistura pegajosa de substâncias viscosas preparada na farmácia solidifica as tripas do paciente." diseases.fake_blood.cause = "Causa - O Paciente está acostumado a ser o alvo das brincadeiras." diseases.fake_blood.name = "Sangue Falso" diseases.fake_blood.symptoms = "Sintomas - Fluido vermelho nas veias que se evapora ao contato com a roupa." diseases.fake_blood.cure = "Cura - Este problema só se resolve com tratamento psiquiátrico." diseases.corrugated_ankles.cause = "Causa - Avançar sinal vermelho do semáforo." diseases.corrugated_ankles.name = "Tornozelo Torcido" diseases.corrugated_ankles.symptoms = "Sintomas - Os pés näo cabem bem nos sapatos." diseases.corrugated_ankles.cure = "Cura - Os tornozelos säo endireitados, bebendo uma infusäo ligeiramente tóxica de ervas e plantas." diseases.diag_x_ray.name = "Diag: Raio-X" diseases.invisibility.cause = "Causa - A picada de uma formiga radioativa (e invisível)." diseases.invisibility.name = "Invisibilidade" diseases.invisibility.symptoms = "Sintomas - Os Pacientes näo sofrem, porém, às vezes gostam de pregar peças em seus familiares." diseases.invisibility.cure = "Cura - Beber um líquido colorido na Farmácia, tornando o Paciente completamente visível." diseases.sweaty_palms.cause = "Causa - Temer as entrevistas de trabalho." diseases.sweaty_palms.name = "Mäos Suadas" diseases.sweaty_palms.symptoms = "Sintomas - Dar a mäo ao Paciente é como agarrar uma esponja encharcada." diseases.sweaty_palms.cure = "Cura - Um Psiquiatra deve discutir a fundo com o Paciente sobre essa doença inventada." diseases.bloaty_head.cause = "Causa - Cheirar queijo e beber água da chuva näo purificada." diseases.bloaty_head.name = "Cabeça Inflada" diseases.bloaty_head.symptoms = "Sintomas - Muito desconforto, pelo que parece." diseases.bloaty_head.cure = "Cura - Fura-se a cabeça inflada, em seguida, volta-se a inflar até o tamanho correto com uma máquina inteligente." diseases.heaped_piles.cause = "Causa - Permanecer em pé junto a refrigeradores de água." diseases.heaped_piles.name = "Hemorroidas" diseases.heaped_piles.symptoms = "Sintomas - O Paciente sente-se como se estivesse sentado sobre bolas de gude." diseases.heaped_piles.cure = "Cura - Uma bebida agradável, embora muito ácida, dissolve as hemorroidas internas." diseases.king_complex.cause = "Causa - O espírito do Rei entrou na mente do Paciente e se apoderou dela." diseases.king_complex.name = "Complexo de Rei" diseases.king_complex.symptoms = "Sintomas - Calçar sapatos de camurça e comer hambúrgueres." diseases.king_complex.cure = "Cura - Um psiquiatra diz ao Paciente como ele está ridículo." diseases.golf_stones.cause = "Causa - Inalar gás venenoso contendo bolas de golfe." diseases.golf_stones.name = "Cálculos de Golfe" diseases.golf_stones.symptoms = "Sintomas - Delirar e sentir muita vergonha." diseases.golf_stones.cure = "Cura - Dois cirurgiöes operam para extrair os cálculos." diseases.gastric_ejections.cause = "Causa - Comida mexicana ou indiana muito condimentada." diseases.gastric_ejections.name = "Vômito" diseases.gastric_ejections.symptoms = "Sintomas - O Paciente vomita a comida ao meio digerir a qualquer momento." diseases.gastric_ejections.cure = "Cura - Beber um adstringente especial para parar os vômitos." diseases.unexpected_swelling.cause = "Causa - Algo inesperado." diseases.unexpected_swelling.name = "Inchaço Inesperado" diseases.unexpected_swelling.symptoms = "Sintomas - Inchaço." diseases.unexpected_swelling.cure = "Cura - O inchaço só pode ser reduzido através de uma incisäo feita em uma operaçäo que exige dois Cirurgiöes." diseases.slack_tongue.cause = "Causa - Fazer muita fofoca." diseases.slack_tongue.name = "Língua Comprida" diseases.slack_tongue.symptoms = "Sintomas - A língua cresce até cinco vezes o seu tamanho original." diseases.slack_tongue.cure = "Cura - Coloca-se a língua no corta-línguas e elimina-se de forma rápida, eficaz e dolorosa." diseases.diag_scanner.name = "Diag: Scanner" diseases.uncommon_cold.cause = "Causa - Pequenas partículas de muco no ar." diseases.uncommon_cold.name = "Resfriado Incomum" diseases.uncommon_cold.symptoms = "Sintomas - Mucosidade, espirros e pulmöes descoloridos." diseases.uncommon_cold.cure = "Cura - Beber um grande gole de um xarope estranho para tosse, fabricado na farmácia com ingredientes especiais." diseases.broken_heart.cause = "Causa - Alguém mais rico, mais jovem e mais magro que o Paciente." diseases.broken_heart.name = "Coraçäo Partido" diseases.broken_heart.symptoms = "Sintomas - Choro e lesöes por esforço repetitivo devido a horas passando as fotos de férias e se lamentando." diseases.broken_heart.cure = "Cura - Dois Cirurgiöes abrem o peito e consertam delicadamente o coraçäo enquanto seguram a respiraçäo." diseases.diag_blood_machine.name = "Diag: Análise Sanguínea" diseases.diag_cardiogram.name = "Diag: Cardiologia" diseases.serious_radiation.cause = "Causa - Confundir isótopos de plutônio com chiclete." diseases.serious_radiation.name = "Radiaçäo Grave" diseases.serious_radiation.symptoms = "Sintomas - Os Pacientes com essa doença se sentem muito mal." diseases.serious_radiation.cure = "Cura - O Paciente deve ir para a ducha de Descontaminaçäo para se limpar." diseases.iron_lungs.cause = "Causa - A contaminaçäo urbana misturada com restos do Kebab." diseases.iron_lungs.name = "Pulmäo de Aço" diseases.iron_lungs.symptoms = "Sintomas - Capacidade de aspirar fogo e gritar debaixo da água." diseases.iron_lungs.cure = "Cura - Dois Cirurgiöes realizam uma operaçäo para eliminar as partes duras do pulmäo na Sala de Cirurgia." diseases.diag_ultrascan.name = "Diag: Ultra Scanner" diseases.autopsy.name = "Autópsia" dynamic_info.staff.ability = "Qualificaçäo" dynamic_info.staff.psychiatrist_abbrev = "Psiq." dynamic_info.staff.actions.waiting_for_patient = "Esperando um Paciente" dynamic_info.staff.actions.wandering = "Andando por aí" dynamic_info.staff.actions.going_to_repair = "Indo reparar %s" dynamic_info.staff.tiredness = "Cansaço" dynamic_info.vip = "Visitante VIP" dynamic_info.patient.diagnosis_progress = "Diagnóstico em curso" dynamic_info.patient.emergency = "Emergências: %s" dynamic_info.patient.diagnosed = "Diagnóstico: %s " dynamic_info.patient.guessed_diagnosis = "Bom diagnóstico: %s" dynamic_info.patient.actions.fed_up = "Perdeu a paciência - Indo para casa" dynamic_info.patient.actions.waiting_for_diagnosis_rooms = "Esperando construir mais salas de diagnóstico" dynamic_info.patient.actions.sent_to_other_hospital = "Enviado para outro local" dynamic_info.patient.actions.on_my_way_to = "Indo para %s" dynamic_info.patient.actions.waiting_for_treatment_rooms = "Esperando construir uma sala de tratamento" dynamic_info.patient.actions.queueing_for = "Na fila para %s" dynamic_info.patient.actions.epidemic_contagious = "Tenho uma doença contagiosa" dynamic_info.patient.actions.no_diagnoses_available = "Näo há mais diagnósticos, vou embora" dynamic_info.patient.actions.awaiting_decision = "Esperando sua decisäo" dynamic_info.patient.actions.sent_home = "Dado alta" dynamic_info.patient.actions.cured = "Curado!" dynamic_info.patient.actions.prices_too_high = "Seus preços estäo muito altos, vou embora" dynamic_info.patient.actions.epidemic_sent_home = "Enviado para casa por um Inspetor" dynamic_info.patient.actions.no_treatment_available = "Näo há tratamentos, vou para casa." dynamic_info.patient.actions.dying = "Morrendo!" dynamic_info.object.strength = "Resistência %d" dynamic_info.object.queue_expected = "Fila Esperada %d" dynamic_info.object.times_used = "Utilizado %d Vezes" dynamic_info.object.queue_size = "Tamanho da Fila %d" dynamic_info.health_inspector = "Inspetor de Saúde" town_map.chat = "Detalhes da Cidade" town_map.not_for_sale = "Näo Vende-se" town_map.price = "Preço" town_map.number = "Número" town_map.owner = "Proprietário" town_map.for_sale = "Vende-se" town_map.area = "Terreno" misc.grade_adverb.mildly = "ligeiramente" misc.grade_adverb.moderately = "moderadamente" misc.grade_adverb.extremely = "extremamente" misc.out_of_sync = "Jogo fora de sincronia" misc.load_failed = "Jogo salvo näo carregado" misc.send_message_all = "Enviar mensagem para todos os jogadores" misc.hospital_open = "Hospital Aberto" misc.save_failed = "ERRO: Näo foi possível salvar o jogo" misc.mouse = "Rato" misc.pause = "Pausa" misc.done = "Concluído" misc.send_message = "Enviar mensagem para o jogador %d" misc.balance = "Arquivo de Balanço:" misc.low_res = "Baixa Resoluçäo" misc.force = "Mäo de obra" misc.save_success = "Jogo salvo com sucesso" drug_companies[1] = "Laboratórios Joäo" drug_companies[2] = "Curatudo S.A." drug_companies[3] = "Pequena Pílula Co." drug_companies[4] = "Remédios Seguros S.A." drug_companies[5] = "Omnipharma Corp." high_score.score = "PONTOS" high_score.pos = "POS" high_score.worst_scores = "GALERIA DA VERGONHA" high_score.categories.cures = "NUMERO DE CURAS" high_score.categories.cure_death_ratio = "MEDIA DE CURAS E MORTES" high_score.categories.total_value = "VALOR TOTAL" high_score.categories.visitors = "MAIS VISITANTES" high_score.categories.clean = "LIMPEZA" high_score.categories.money = "O MAIS RICO" high_score.categories.salary = "MAIOR SALARIO" high_score.categories.deaths = "NUMERO DE MORTES" high_score.categories.patient_happiness = "CLIENTES SATISFEITOS" high_score.categories.staff_number = "MAIS FUNCIONARIOS" high_score.categories.staff_happiness = "FUNCIONARIOS CONTENTES" high_score.player = "JOGADOR" high_score.best_scores = "GALERIA DA FAMA" high_score.killed = "Morto" competitor_names[1] = "ORAC" competitor_names[2] = "COLOSSUS" competitor_names[3] = "HAL" competitor_names[4] = "MULTIVAC" competitor_names[5] = "HOLLY" competitor_names[6] = "DEEP THOUGHT" competitor_names[7] = "ZEN" competitor_names[8] = "LEON" competitor_names[9] = "MARVIN" competitor_names[10] = "AKIRA" competitor_names[11] = "MOTHER" competitor_names[12] = "JAYNE" competitor_names[13] = "CORSIX" competitor_names[14] = "ROUJIN" competitor_names[15] = "EDVIN" competitor_names[16] = "SAM" competitor_names[17] = "CHARLIE" competitor_names[18] = "ARTHUR" competitor_names[19] = "MAGNUS" competitor_names[20] = "SAL" competitor_names[21] = "JOSHUA" competitor_names[22] = "DANEEL" competitor_names[23] = "OLIVAW" competitor_names[24] = "NIC" staff_class.handyman = "Zelador" staff_class.nurse = "Enfermeira" staff_class.surgeon = "Cirurgiäo" staff_class.receptionist = "Recepcionista" staff_class.doctor = "Médico" menu_debug.display_pager = " MOSTRAR PAGINADOR " menu_debug.nav_bits = " BITS DE NAVEGAÇAO " menu_debug.win_level_anim = " ANIMAÇAO DE VITORIA DE NIVEL " menu_debug.plant_pagers = " PAGINADORES DE PLANTAS " menu_debug.display_room_status = " MOSTRAR ESTADO DA SALA" menu_debug.show_nav_cells = " MOSTRAR CELAS NAV " menu_debug.entry_cells = " CELAS DE ENTRADA " menu_debug.object_cells = " CELAS DE OBJETO " menu_debug.lose_game_anim[1] = " ANIMAÇAO DE DERROTA 1 DO JOGO " menu_debug.lose_game_anim[2] = " ANIMAÇAO DE DERROTA 2 DO JOGO " menu_debug.lose_game_anim[3] = " ANIMAÇAO DE DERROTA 3 DO JOGO " menu_debug.lose_game_anim[4] = " ANIMAÇAO DE DERROTA 4 DO JOGO " menu_debug.lose_game_anim[5] = " ANIMAÇAO DE DERROTA 5 DO JOGO " menu_debug.lose_game_anim[6] = " ANIMAÇAO DE DERROTA 6 DO JOGO " menu_debug.lose_game_anim[7] = " ANIMAÇAO DE DERROTA 7 DO JOGO " menu_debug.show_help_hotspot = " MOSTRAR AJUDAS " menu_debug.porter_pagers = " PAGINADORES DE ZELADOR " menu_debug.mapwho_checking = " VERIFICAR LOCALIZAÇAO " menu_debug.machine_pagers = " PAGINADORES DE MAQUINA " menu_debug.keep_clear_cells = " CONSERVAR AS CELAS LIMPAS " menu_debug.enter_nav_debug = " INTRODUZIR NAV DEBUG " menu_debug.win_game_anim = " ANIMAÇAO DE VITORIA DO JOGO " menu_debug.remove_objects = " RETIRAR OBJETOS " menu_debug.display_big_cells = " MOSTRAR CELAS GRANDES " menu_debug.pixbuf_cells = " CELAS PIXBUF " menu_debug.remove_walls = " RETIRAR PAREDES " research.categories.drugs = "Pesquisa Farmacêutica" research.categories.cure = "Equipam. de Cura" research.categories.improvements = "Melhorias" research.categories.specialisation = "Especializaçäo" research.categories.diagnosis = "Equipam. de Diagnóstico" research.funds_allocation = "Alocaçäo de Fundos" research.allocated_amount = "Quantidade Alocada" months[1] = "Jan" months[2] = "Fev" months[3] = "Mar" months[4] = "Abr" months[5] = "Mai" months[6] = "Jun" months[7] = "Jul" months[8] = "Ago" months[9] = "Set" months[10] = "Out" months[11] = "Nov" months[12] = "Dez" trophy_room.cleanliness.award[1] = "Os Inspetores notaram que o seu hospital está muito limpo. Um hospital limpo é um hospital seguro. Continue assim." trophy_room.cleanliness.regional_good[1] = "Seu hospital foi apontado como um dos menos limpos da regiäo. Um hospital sujo, que cheira mal e é perigoso. Você deveria se preocupar mais com a limpeza." trophy_room.cleanliness.regional_bad[1] = "O seu hospital é o mais sujo da regiäo. Outros diretores conseguiram manter os seus hospitais mais limpos. Você é a vergonha da profissäo médica." trophy_room.happy_vips.trophies[1] = "Você ganhou o Prêmio Nobel de Impressäo de VIPs. Todos que visitaram seu hospital no último ano foram extremamente elogiosos sobre ele." trophy_room.happy_vips.trophies[2] = "A Agência de Pessoas Famosas também tem o prazer de entregar-lhe o Troféu Celebridade por agradar a todos os VIPs que visitaram sua instituiçäo. Sinta-se um pouco famoso e quase um de nós." trophy_room.happy_vips.trophies[3] = "Parabéns por conquistar o Prêmio VIAGEM VIP por tornar a vida das figuras públicas mais leve e agradável, agradando todos os que passaram por seu hospital. Maravilhoso." trophy_room.gen_repairs.awards[1] = "Foi-lhe concedido um prêmio especial pela diligência dos seus Zeladores em manter as máquinas do seu hospital em bom estado. Muito bem. Tire umas férias." trophy_room.gen_repairs.awards[2] = "Os seus Zeladores trabalharam melhor que os de qualquer outro hospital. Este é um importante acontecimento de felicidade." trophy_room.gen_repairs.awards[3] = "As suas máquinas estäo em um magnífico estado. A dedicaçäo dos seus Zeladores foi extraordinária. Merecem este prestigioso prêmio. Um trabalho estupendo!" trophy_room.gen_repairs.penalty[1] = "Os seus Zeladores näo cuidaram bem das suas máquinas. Você deveria fiscalizá-los melhor ou contratar mais para que façam o trabalho melhor." trophy_room.gen_repairs.penalty[2] = "Você näo fez uma boa manutençäo. Os seus funcionários deveriam cuidar melhor dos seus equipamentos." trophy_room.many_cured.penalty[1] = "O seu hospital näo cura com eficácia os Pacientes que necessitam. Tenha mais atençäo às curas para que sejam mais eficazes." trophy_room.many_cured.penalty[2] = "O seu hospital é o menos eficaz na hora de curar Pacientes. Decepcionou o Ministério e a si mesmo. Näo diremos mais." trophy_room.many_cured.trophies[1] = "Parabéns pelo Prêmio Marie Curie por ter curado quase todos os Pacientes do seu hospital no ano passado." trophy_room.many_cured.trophies[2] = "A Fundaçäo Internacional de Curas deseja homenagear o fato de que você curou um grande número de pessoas em seu hospital no ano passado, concedendo a você o Troféu Cura-Muito." trophy_room.many_cured.trophies[3] = "Você recebeu o Troféu Paciente Säo por ter conseguido curar em seu hospital uma enorme porcentagem de Pacientes no ano passado." trophy_room.many_cured.awards[1] = "Parabéns por curar um montäo de pessoas no ano passado. Um grande número de pessoas se sente muito melhor, graças ao seu trabalho." trophy_room.many_cured.awards[2] = "Pedimos que aceite este prêmio por ter curado mais Pacientes do que qualquer outro hospital. Um excelente trabalho." trophy_room.many_cured.regional[1] = "Você recebeu o prêmio de cura total por ter curado mais pessoas do que todos os outros hospitais juntos." trophy_room.sold_drinks.trophies[1] = "A Associaçäo Odontológica orgulhosamente te concede esse Troféu por vender muitas bebidas em seu hospital." trophy_room.sold_drinks.trophies[2] = "Seu hospital foi premiado com o Troféu Negócio-Borbulhante por Vendas de Refrigerantes em reconhecimento ao número de bebidas vendidas em seu hospital no último ano." trophy_room.sold_drinks.trophies[3] = "Em nome da DK Obturaçöes Inc, você recebe este troféu coberto de chocolate para comemorar o extraordinário número de refrigerantes vendidos em seu hospital este ano." trophy_room.consistant_rep.trophies[1] = "O Conselho de Ministros lhe concedeu uma Mençäo de Honra por ter alcançado o nível máximo de eficácia e reputaçäo durante o ano atual. Muito bem." trophy_room.consistant_rep.trophies[2] = "Parabéns pelo Troféu Lençóis Limpos por ser o hospital com a melhor reputaçäo do ano. Você merece." trophy_room.cash = "DINHEIRO" trophy_room.high_rep.penalty[1] = "Você será sancionado pela má reputaçäo que teve no ano passado. Procure melhorar no futuro." trophy_room.high_rep.penalty[2] = "A reputaçäo do seu hospital é a pior da área. É uma vergonha. Melhore ou procure outro emprego." trophy_room.high_rep.awards[1] = "Muito bem! Ganhou um pequeno prêmio por alcançar uma impressionante reputaçäo no ano passado." trophy_room.high_rep.awards[2] = "Maravilhoso! O seu hospital ganhou um prêmio por conseguir a melhor reputaçäo no ano passado." trophy_room.high_rep.regional[1] = "Por favor, aceite o Prêmio Bullfrog por dirigir o melhor hospital do ano. Você merece, aproveite." trophy_room.high_rep.regional[2] = "Este ano, a reputaçäo do seu hospital superou a dos outros hospitais. Um estupendo lucro." trophy_room.best_value_hosp.trophies[1] = "Parabéns pelo Troféu Lençóis Limpos por ser o hospital com a melhor reputaçäo do ano. Você merece." trophy_room.best_value_hosp.regional[1] = "Parabéns por ter o hospital mais valioso do jogo. Bom trabalho! Por favor, continue assim." trophy_room.best_value_hosp.penalty[1] = "Todos os hospitais da área valem mais do que o seu. Faça algo a respeito desta vergonhosa situaçäo. Consiga coisas mais caras!" trophy_room.reputation = "REPUTAÇAO" trophy_room.happy_staff.regional_good[1] = "Os seus funcionários säo os mais satisfeitos de todos os hospitais. Se os funcionários estäo felizes, há mais ganhos e menos mortes. No Ministério estäo satisfeitos." trophy_room.happy_staff.penalty[1] = "Os seus funcionários desejam que saiba que estäo muito descontentes. Ter bons funcionários é muito proveitoso. Faça com que eles estejam mais satisfeitos ou algum dia irá perdê-los." trophy_room.happy_staff.trophies[1] = "Ganhou o Troféu Médico Sorridente por manter seus funcionários o mais felizes possível." trophy_room.happy_staff.trophies[2] = "O Instituto Adami de Felicidade o premia com este troféu por näo ter tido funcionários infelizes no hospital no ano passado." trophy_room.happy_staff.trophies[3] = "Concedemos a você o Troféu Mais-Sorrisos por manter todos os seus funcionários felizes, além do chamado do dever durante o último ano. Sorrisos por todos os lados!" trophy_room.happy_staff.awards[1] = "Sua equipe lhe concedeu um prêmio. Eles dizem que, em geral, você manda muito bem." trophy_room.happy_staff.awards[2] = "Seus funcionários estäo täo felizes trabalhando para você que näo conseguem tirar os sorrisos dos rostos. Você é um gerente magnífico." trophy_room.happy_staff.regional_bad[1] = "A sua equipe esteve muito infeliz durante o ano passado. Você deveria ter notado. Do jeito que está, as equipes dos outros hospitais estäo muito mais felizes do que a sua." trophy_room.hosp_value.penalty[1] = "O seu hospital fracassou em alcançar um valor razoável. Gerenciou mal o dinheiro. Lembre-se, um bom hospital também é um hospital caro." trophy_room.hosp_value.awards[1] = "O Ministério da Saúde gostaria de parabenizá-lo pelo impressionante valor alcançado em seu hospital." trophy_room.hosp_value.regional[1] = "É uma promessa dos negócios. O hospital é o mais valioso de toda a área." trophy_room.healthy_plants.awards[1] = "Parabéns por ganhar o prêmio Grande Fertilizante por manter suas plantas vivas durante o ano passado." trophy_room.healthy_plants.trophies[1] = "Os Amigos das Plantas de Vaso desejam conceder a você o Troféu Verde da Saúde por manter todas as suas plantas em boas condiçöes durante os últimos doze meses." trophy_room.healthy_plants.trophies[2] = "Salvem as Plantas gostaria de presenteá-lo com o Troféu Grande Ecologista por manter vivas as plantas do seu hospital durante o ano passado." trophy_room.research.penalty[1] = "Você foi pouco eficiente ao pesquisar curas, máquinas e medicamentos. Isso é fatal, já que o avanço tecnológico é fundamental." trophy_room.research.regional_good[1] = "As suas pesquisas conseguiram colocar o seu hospital entre os últimos avanços de hoje em dia. Os seus pesquisadores merecem este prêmio. Muito bem!" trophy_room.research.awards[1] = "As suas pesquisas conseguiram colocar o seu hospital entre os últimos avanços de hoje em dia. Os seus pesquisadores merecem este prêmio. Muito bem!" trophy_room.research.awards[2] = "No ano passado, descobriu mais remédios e máquinas do que se podia esperar. Por favor, aceite este prêmio de todos nós no Ministério." trophy_room.research.regional_bad[1] = "Outros hospitais säo melhores que o seu na pesquisa. No Ministério estäo furiosos, e seu hospital deveria lhe conceder mais importância." trophy_room.no_deaths.penalty[1] = "O número de mortes no seu hospital, no ano passado, foi muito elevado. Preste mais atençäo ao seu trabalho. Assegure-se de que no futuro mais pessoas sobrevivam." trophy_room.no_deaths.penalty[2] = "O seu hospital é um risco para os Pacientes. Supöe-se que você deve curar muitas pessoas, näo deixá-las morrer." trophy_room.no_deaths.trophies[1] = "Você ganhou o Prêmio Ausência de Reclamaçöes por manter 100%% de seus Pacientes vivos no último ano." trophy_room.no_deaths.trophies[2] = "Associaçäo A Vida Continua entrega-lhe este troféu por näo ter registrado nenhum óbito no último ano." trophy_room.no_deaths.trophies[3] = "Você foi premiado com o Troféu Fique Vivo por evitar qualquer morte em seu excelente hospital neste ano. Ótimo." trophy_room.no_deaths.awards[1] = "Ganhou este prêmio como reconhecimento ao seu baixo índice de falecimentos no seu hospital, este ano. É estupendo!" trophy_room.no_deaths.awards[2] = "A sua habilidade conseguiu reduzir ao mínimo o número de mortes no seu hospital. Deve estar muito feliz com este resultado." trophy_room.no_deaths.regional[1] = "No ano passado, a taxa de mortalidade do seu hospital foi inferior à dos outros. Por favor, aceite este prêmio." trophy_room.rats_accuracy.trophies[1] = "Você recebeu o Troféu Syndicate Wars, Tiro Preciso por acertar em %d%% dos ratos em seu hospital no ano passado." trophy_room.rats_accuracy.trophies[2] = "Este prêmio é para celebrar a sua incrível pontaria ao eliminar %d%% dos ratos que disparou em seu hospital no ano passado." trophy_room.rats_accuracy.trophies[3] = "Para celebrar o fato de que eliminou %d%% dos ratos do seu hospital, foi-lhe concedido o Troféu Dungeon Keeper, Livre de Roedores. CongRATulaçöes!" trophy_room.emergencies.penalty[1] = "Você foi muito pouco eficiente nos casos de emergência. Os Pacientes de emergência merecem uma atençäo rápida e precisa, que você näo lhes deu." trophy_room.emergencies.award[1] = "Parabéns! Ganhou este prêmio pela maneira eficaz e eficiente com que solucionou as emergências. Bom trabalho." trophy_room.emergencies.award[2] = "Confrontou as emergências de uma maneira extraordinária. Ganhou este prêmio por ser o melhor na hora de lidar com uma grande quantidade de Pacientes." trophy_room.emergencies.regional_good[1] = "O Ministério reconhece que no ano passado, no seu hospital, você tratou as emergências melhor do que qualquer outro hospital, entäo lhe concedeu este prêmio." trophy_room.emergencies.regional_bad[1] = "O seu hospital é o pior da regiäo para tratar casos de emergência. Você é responsável por ocupar o último lugar na Liga Local de Tratamentos de Emergência." trophy_room.curesvdeaths.awards[1] = "Os meus mais sinceros parabéns. No ano passado, o número de curas foi superior ao de falecimentos no seu hospital." trophy_room.curesvdeaths.penalty[1] = "A sua proporçäo entre curas e mortes é extremamente baixa. Deveria assegurar-se de que cura mais pessoas do que mata. Näo deixe os seus funcionários em má posiçäo." trophy_room.wait_times.award[1] = "Parabéns! No seu hospital, a espera dos Pacientes foi muito curta. Este é um acontecimento importante." trophy_room.wait_times.penalty[1] = "No seu hospital, os Pacientes esperam muito tempo. Há sempre filas inaceitáveis. Você poderia tratar os seus Pacientes com mais eficácia se quisesse." trophy_room.happy_patients.awards[1] = "Deve estar orgulhoso de que, no ano passado, as pessoas estavam muito contentes no seu hospital." trophy_room.happy_patients.awards[2] = "Os Pacientes que visitaram o seu hospital sentiram-se mais satisfeitos com o seu tratamento do que nos outros hospitais." trophy_room.happy_patients.penalty[1] = "As pessoas que väo ao hospital têm uma experiência terrível. Você terá que fazê-lo muito melhor se quiser ganhar o respeito do Ministério." trophy_room.happy_patients.penalty[2] = "As pessoas que receberam tratamento no seu hospital queixaram-se do estado do mesmo. Deveria ter muito mais em conta o bem-estar dos Pacientes." trophy_room.pop_percentage.awards[1] = "Note que, no ano passado, curou uma grande parte da populaçäo local no seu hospital. Muito bem." trophy_room.pop_percentage.awards[2] = "Parabéns! A maioria da populaçäo local vai ao seu hospital em vez de ir a qualquer outra instituiçäo." trophy_room.pop_percentage.awards[3] = "Brilhante! O seu hospital recebeu o maior número de Pacientes que todos os outros hospitais juntos." trophy_room.pop_percentage.penalty[1] = "Teve muito poucos Pacientes este ano. Para ganhar dinheiro, precisa que haja Pacientes que paguem." trophy_room.pop_percentage.penalty[2] = "Todos os hospitais da área conseguiram mais Pacientes do que você. Deveria estar envergonhado." trophy_room.rats_killed.trophies[1] = "Você recebeu o Troféu Raticida por eliminar %s ratos em seu hospital no ano passado." trophy_room.rats_killed.trophies[2] = "Você merece este prêmio da Federaçäo Anti Ratos pela sua excepcional habilidade em eliminar ratos, demonstrada ao eliminar %s exemplares." trophy_room.rats_killed.trophies[3] = "Você recebeu o Troféu Acaba com Ratos pela sua grande habilidade em eliminar %d ratos em seu hospital no ano passado." trophy_room.all_cured.awards[1] = "Parabéns por ganhar o Prêmio Marie Curie por curar todos os Pacientes do seu hospital no ano passado." trophy_room.all_cured.trophies[1] = "A Fundaçäo Internacional de Cura deseja homenageá-lo por curar todos os Pacientes em seu hospital no último ano, concedendo a você o Troféu Cura-Tudo." trophy_room.all_cured.trophies[2] = "Você recebeu o Troféu Paciente Sem-Doença por conseguir curar todos os Pacientes em seu hospital no último ano." graphs.cures = "Curas" graphs.reputation = "Reputaçäo" graphs.balance = "Saldo" graphs.wages = "Salários" graphs.visitors = "Visitantes" graphs.time_spans[1] = "1 Ano" graphs.time_spans[2] = "12 Anos" graphs.time_spans[3] = "48 Anos" graphs.deaths = "Mortes" graphs.money_out = "Pagamento" graphs.money_in = "Crédito" queue_window.max_queue_size = "Máximo" queue_window.num_expected = "Previsto" queue_window.num_in_queue = "Tamanho da Fila" queue_window.num_entered = "Pacientes Totais" room_classes.clinics = "Clínica" room_classes.facilities = "Instalaçöes" room_classes.diagnosis = "Diagnóstico" room_classes.treatment = "Tratamento" rooms_short.ward = "Enfermaria" rooms_short.blood_machine = "Transfusiômetro" rooms_short.fracture_clinic = "Ortopedia" rooms_short.cardiogram = "Cardiologia" rooms_short.decontamination = "Descontaminaçäo" rooms_short.jelly_vat = "Banho Gelatinoso" rooms_short.staffroom = "Sala de Descanso" rooms_short.hair_restoration = "Pêloterapia" rooms_short.inflation = "Inflatoterapia" rooms_short.operating_theatre = "Sala de Cirurgia" rooms_short.reception = "Recepçäo" rooms_short.gps_office = "Consultório de CG" rooms_short.training_room = "Treinamento" rooms_short.x_ray = "Raio-X" rooms_short.tongue_clinic = "Laringologia" rooms_short.general_diag = "Diagnóstico Geral" rooms_short.ultrascan = "Ultra Scanner" rooms_short.dna_fixer = "Clínica de DNA" rooms_short.psychiatric = "Psiquiatria" rooms_short.toilets = "Banheiro" rooms_short.corridor_objects = "Objetos do Corredor" rooms_short.pharmacy = "Farmácia" rooms_short.destroyed = "Destruída" rooms_short.research_room = "Centro de Pesquisa" rooms_short.scanner = "Scanner" rooms_short.electrolysis = "Sala de Eletrólise" tooltip.status.warmth = "Nível geral de calor das pessoas no seu hospital" tooltip.status.close = "Fechar janela de status" tooltip.status.thirst = "Nível geral de sede das pessoas no seu hospital" tooltip.status.population = "Você precisa ter %d%% da populaçäo total vindo para o seu hospital." tooltip.status.num_cured = "O objetivo é curar %d pessoas. Até agora, você curou %d." tooltip.status.percentage_killed = "O objetivo é matar pelo menos %d%% dos seus Pacientes. Até agora, morreram %d%%." tooltip.status.percentage_cured = "Você precisa tratar %d%% dos visitantes do seu hospital. Até agora, você tratou %d%%." tooltip.status.win_progress_own = "Mostra o progresso para conquistar os critérios do seu próprio hospital" tooltip.status.value = "Seu hospital deve valer $%d. Agora vale $%d." tooltip.status.happiness = "Nível geral de satisfaçäo das pessoas no seu hospital" tooltip.status.win_progress_other = "Mostra o progresso para conquistar os critérios de %s" tooltip.status.population_chart = "Gráfico que mostra a proporçäo de pacientes de cada hospital da cidade" tooltip.objects.bench = "Banco: serve de assento aos pacientes para que esperem com mais conforto." tooltip.objects.pharmacy_cabinet = "Farmácia: onde se guardam os remédios" tooltip.objects.console = "15 CONSOLES DE SCANNER" tooltip.objects.atom_analyser = "Misturador químico: situado no Dept. de Desenvolvimento, esta máquina acelera todo o processo de pesquisa." tooltip.objects.fire_extinguisher = "Extintor: reduz o perigo do mau funcionamento das máquinas." tooltip.objects.scanner = "14 SCANNERS" tooltip.objects.bin = "Cesto de papéis: os pacientes atiram aqui os seus desperdícios." tooltip.objects.swing_door1 = "52 PORTAS DUPLAS 1" tooltip.objects.pool_table = "Mesa de bilhar: ajuda os seus funcionários a relaxarem." tooltip.objects.screen = "16 TELAS" tooltip.objects.cabinet = "Armário: contém fichas dos pacientes, notas e documentos sobre pesquisa." tooltip.objects.sofa = "Sofá: Os funcionários que descansam na Sala de Descanso sentaräo em um sofá, a menos que tenham uma maneira melhor de relaxar-se." tooltip.objects.projector = "37 PROJETORES" tooltip.objects.table2 = "12 MESAS" tooltip.objects.shower = "54 DUCHAS DESCONTAMINADORAS" tooltip.objects.comfortable_chair = "61 POLTRONAS CONFORTAVEIS" tooltip.objects.door = "Porta: as pessoas fecham e abrem um montäo de vezes." tooltip.objects.computer = "Computador: componente chave para a pesquisa" tooltip.objects.litter_bomb = "Bomba de lixo: sabota os hospitais dos oponentes" tooltip.objects.entrance_left = "58 PORTA DE ENTRADA DIREITA" tooltip.objects.dna_fixer = "23 REPARADORES DE DNA" tooltip.objects.bed = "Cama: as pessoas que estejam mesmo doentes deitam-se nela." tooltip.objects.lamp = "Abajur: ilumina e permite que o pessoal veja." tooltip.objects.bookcase = "Livraria: material de consulta para os Médicos." tooltip.objects.desk = "Escrivaninha: é fundamental para que o Médico coloque o seu PC." tooltip.objects.toilet_sink = "Pia: os seus pacientes mais limpos lavam as suas mäos sujas aqui. Se näo houver suficientes pias, os pacientes ficam infelizes." tooltip.objects.gates_of_hell = "48 PORTAS DO INFERNO" tooltip.objects.swing_door2 = "53 PORTAS DUPLAS 2" tooltip.objects.cast_remover = "24 REMOVEDORES DE GESSO" tooltip.objects.plant = "Planta: alegra os pacientes e purifica o ar." tooltip.objects.blood_machine = "42 TRANSFUSIOMETROS" tooltip.objects.slicer = "26 CORTADORES" tooltip.objects.x_ray = "27 RAIOS-X" tooltip.objects.cardio = "13 CARDIOGRAMAS" tooltip.objects.crash_trolley = "20 CARROS" tooltip.objects.bed2 = "näo utilizado" tooltip.objects.electrolyser = "46 ELETROLISE" tooltip.objects.video_game = "Videogame: deixe que os seus funcionários se divirtam com o Hi-Octane." tooltip.objects.skeleton = "Esqueleto: é utilizado para aprender e na Noite do Halloween." tooltip.objects.ultrascanner = "22 ULTRA SCANNERS" tooltip.objects.op_sink1 = "33 PIAS 1 OP" tooltip.objects.hair_restorer = "25 RESTAURADORES DE CABELO" tooltip.objects.reception_desk = "Recepçäo: requer um Recepcionista que envie os pacientes aos Médicos." tooltip.objects.radiation_shield = "28 TELAS ANTI-RADIACAO" tooltip.objects.couch = "18 POLTRONAS" tooltip.objects.inflator = "Inflador: cura a Cabeça Inflada." tooltip.objects.toilet = "Banheiro: a natureza uma hora chama..." tooltip.objects.lecture_chair = "Cadeira de leitura: os Médicos que estäo estudando sentam-se aqui para tomar notas, aborrecer-se e rabiscar desnecessariamente. Quantas mais cadeiras colocar, mais compridas as aulas seräo." tooltip.objects.auto_autopsy = "Autópsia: uma grande ajuda para descobrir novas curas." tooltip.objects.chair = "Cadeira: os pacientes sentam-se sobre ela e falam das suas doenças." tooltip.objects.x_ray_viewer = "29 TELAS DE RAIOS-X" tooltip.objects.radiator = "Aquecedor: evita que o seu hospital fique frio." tooltip.objects.bed3 = "näo utilizado" tooltip.objects.surgeon_screen = "35 TELAS DE CIRURGIAO" tooltip.objects.jelly_moulder = "47 BANHOS GELATINOSOS" tooltip.objects.drinks_machine = "Máquina de bebidas: impede que os pacientes tenham sede e contribui com ganhos." tooltip.objects.op_sink2 = "34 PIAS 2 OP" tooltip.objects.table1 = "Mesa: sobre ela coloca-se um montäo de revistas para que os pacientes esperem contentes." tooltip.objects.entrance_right = "59 PORTAS DE ENTRADA ESQUERDA" tooltip.objects.operating_table = "30 MESAS DE OPERACAO" tooltip.objects.tv = "TV: assegura de que os seus funcionários näo percam os seus programas favoritos." tooltip.watch.hospital_opening = "Cronômetro de construçäo: é o tempo que resta para que o seu hospital seja declarado aberto. Clicar no botäo IR, abrirá o hospital imediatamente." tooltip.watch.epidemic = "Epidemia: tempo que resta para controlar a epidemia. Quando este tempo expirar ou um paciente contagioso abandonar o seu hospital, um Inspetor de Saúde virá visitar. O botäo liga ou desliga o modo vacina. Clique em um paciente para que uma Enfermeira o vacine." tooltip.watch.emergency = "Emergência: tempo que resta para curar todos os pacientes nas emergências." tooltip.buy_objects_window.increase = "Comprar um a mais deste item" tooltip.buy_objects_window.price = "Preço do objeto" tooltip.buy_objects_window.confirm = "Comprar objeto(s)" tooltip.buy_objects_window.cancel = "Cancelar" tooltip.buy_objects_window.decrease = "Comprar um a menos deste item" tooltip.buy_objects_window.total_value = "Custo total dos objetos solicitados" tooltip.machine_window.status = "Estado das máquinas" tooltip.machine_window.close = "Fechar caixa de diálogo" tooltip.machine_window.repair = "Mandar o Zelador consertar as máquinas" tooltip.machine_window.name = "Nome" tooltip.machine_window.times_used = "Número de vezes que consertou as máquinas" tooltip.machine_window.replace = "Substituir máquinas" tooltip.pay_rise_window.accept = "Atender à demanda de pagamento" tooltip.pay_rise_window.decline = "Näo pagar. Demita essa pessoa" tooltip.staff_window.psychiatrist = "Psiquiatra" tooltip.staff_window.close = "Fechar caixa de diálogo" tooltip.staff_window.sack = "Demitir" tooltip.staff_window.name = "Nome do funcionário" tooltip.staff_window.pick_up = "Pegar" tooltip.staff_window.tiredness = "Nível de cansaço" tooltip.staff_window.ability = "Nível de qualificaçäo" tooltip.staff_window.researcher = "Pesquisador" tooltip.staff_window.skills = "Qualificaçöes especiais" tooltip.staff_window.salary = "Salário mensal" tooltip.staff_window.happiness = "Nível de satisfaçäo" tooltip.staff_window.doctor_seniority = "Categoria - Residente, Médico ou Consultor" tooltip.staff_window.surgeon = "Cirurgiäo" tooltip.research.cure_dec = "Diminuir percentual de pesquisa de Cura" tooltip.research.close = "Fechar tela de Pesquisa" tooltip.research.diagnosis_inc = "Aumentar percentual de pesquisa de Diagnóstico" tooltip.research.cure_inc = "Aumentar percentual de pesquisa de Cura" tooltip.research.specialisation_inc = "Aumentar percentual de pesquisa de Especialização" tooltip.research.diagnosis_dec = "Diminuir percentual de pesquisa de Diagnóstico" tooltip.research.improvements_inc = "Aumentar percentual de pesquisa de Melhorias" tooltip.research.drugs_dec = "Diminuir percentual de pesquisa de Medicamentos" tooltip.research.specialisation_dec = "Diminuir percentual de pesquisa de Especialização" tooltip.research.improvements_dec = "Diminuir percentual de pesquisa de Melhorias" tooltip.research.drugs_inc = "Aumentar percentual de pesquisa de Medicamentos" tooltip.research.allocated_amount = "Quantidade do orçamento alocado" tooltip.statement.close = "Fechar tela de Extrato" tooltip.rooms.ward = "As Enfermarias säo úteis tanto para diagnóstico quanto para tratamento. Envie os pacientes para observaçäo e para se recuperar de uma operaçäo sob os cuidados de uma Enfermeira." tooltip.rooms.blood_machine = "O Médico usa o Transfusiômetro para diagnosticar os Pacientes." tooltip.rooms.fracture_clinic = "A Enfermeira utiliza a Sala de Ortopedia para reparar Fraturas Osseas." tooltip.rooms.cardiogram = "O Médico usa a Cardiologia para diagnosticar os Pacientes." tooltip.rooms.decontamination = "O Médico usa a Ducha Descontaminadora para tratar a radioatividade." tooltip.rooms.jelly_vat = "O Médico usa o Banho Gelatinoso para curar a Gelatinite." tooltip.rooms.staffroom = "Os Médicos e as Enfermeiras descansam na Sala de Descanso." tooltip.rooms.hair_restoration = "O Médico usa o Restaurador de Pêlo para tratar a Calvície." tooltip.rooms.inflation = "O Médico usa a Inflatoterapia para tratar a Cabeça Inflada." tooltip.rooms.gps_office = "Os Pacientes recebem seu primeiro atendimento no Consultório de Clínica Geral." tooltip.rooms.training_room = "A Sala de Treinamento, com um Consultor, serve para formar outros Médicos." tooltip.rooms.x_ray = "O Médico usa Raio-X para diagnosticar os Pacientes." tooltip.rooms.general_diag = "O Médico utiliza a Sala de Diagnóstico Geral para fazer um diagnóstico básico. É barata e frequentemente eficaz." tooltip.rooms.operating_theatre = "Na Sala de Cirurgia, faltam dois cirurgiöes qualificados." tooltip.rooms.ultrascan = "O Médico usa o Ultra-Scanner para diagnosticar os Pacientes." tooltip.rooms.psychiatry = "A Psiquiatria cura pacientes com distúrbios mentais e ajuda no diagnóstico de outros pacientes, mas precisa de um Médico com habilidades em Psiquiatria." tooltip.rooms.toilets = "Construa Banheiros para evitar que os pacientes façam confusäo no seu hospital!" tooltip.rooms.dna_fixer = "O Médico usa o Reparador de DNA para curar pacientes com DNA Alienígena." tooltip.rooms.pharmacy = "Na Enfermaria, a Enfermeira administra remédios para curar os pacientes." tooltip.rooms.tongue_clinic = "O Médico usa a Laringologia para tratar a Língua Comprida." tooltip.rooms.research_room = "Os Médicos com habilidades em Pesquisa podem descobrir novos medicamentos e máquinas no Centro de Pesquisa." tooltip.rooms.scanner = "O Médico usa o Scanner para diagnosticar os Pacientes." tooltip.rooms.electrolysis = "O Médico usa a sala de Eletrólise para tratar o Peludismo." tooltip.policy.diag_procedure = "Se o diagnóstico de um Médico for menos seguro que a porcentagem de ENVIAR PARA CASA, o paciente será enviado para casa. Se o diagnóstico for melhor que a porcentagem de TENTAR CURA, será administrado o tratamento adequado ao paciente." tooltip.policy.staff_leave = "Clique aqui para que os funcionários livres ajudem os colegas que precisem" tooltip.policy.close = "Fechar tela de Política" tooltip.policy.staff_rest = "Nível de cansaço dos funcionários antes de poderem descansar" tooltip.policy.diag_termination = "O diagnóstico de um paciente continuará até que os Médicos estejam seguros da porcentagem de PARAR PROCESSO ou até que todos os diagnósticos sejam utilizados." tooltip.policy.staff_stay = "Clique aqui para garantir que o funcionário permaneça nas salas que foram atribuídas a ele" tooltip.main_menu.load_menu.empty_slot = "VAZIO" tooltip.main_menu.load_menu.load_slot = "CARREGAR JOGO" tooltip.main_menu.network = "Iniciar um jogo em rede" tooltip.staff_list.psychiatrist = "Psiquiatra Qualificado" tooltip.staff_list.close = "Fechar o gerenciamento de funcionários" tooltip.staff_list.happiness_2 = "Moral do funcionário" tooltip.staff_list.ability = "Mostra o nível de habilidade desses funcionários" tooltip.staff_list.tiredness_2 = "Cansaço do funcionário" tooltip.staff_list.ability_2 = "Nível de habilidade do funcionário" tooltip.staff_list.salary = "Salário atual pago a esta pessoa" tooltip.staff_list.researcher_train = "%d%% treinado para se tornar um Pesquisador" tooltip.staff_list.happiness = "Mostra o quäo satisfeitos estäo esses funcionários" tooltip.staff_list.sack = "Despedir esta pessoa" tooltip.staff_list.surgeon = "Cirurgiäo Qualificado" tooltip.staff_list.view_staff = "Ver a pessoa trabalhando" tooltip.staff_list.surgeon_train = "%d%% treinado para se tornar um Cirurgiäo" tooltip.staff_list.tiredness = "Mostra o quäo cansados estäo esses funcionários" tooltip.staff_list.receptionists = "Ver lista de Recepcionistas empregados neste hospital" tooltip.staff_list.pay_rise = "Aumentar o salário desta pessoa em 10%" tooltip.staff_list.bonus = "Pagar a esta pessoa um bônus de 10%" tooltip.staff_list.doctor_seniority = "Experiência do Médico" tooltip.staff_list.nurses = "Ver lista de Enfermeiras empregadas neste hospital" tooltip.staff_list.skills = "Outras qualificaçöes" tooltip.staff_list.detail = "Cuidar dos detalhes" tooltip.staff_list.doctors = "Ver lista de Médicos empregados neste hospital" tooltip.staff_list.handymen = "Ver lista de Zeladores empregados neste hospital" tooltip.staff_list.researcher = "Pesquisador Qualificado" tooltip.staff_list.psychiatrist_train = "%d%% treinado para se tornar um Psiquiatra" tooltip.place_objects_window.confirm = "Confirmar" tooltip.place_objects_window.buy_sell = "Comprar/vender objetos" tooltip.place_objects_window.pick_up = "Pegar objeto" tooltip.place_objects_window.cancel = "Cancelar" tooltip.casebook.increase = "Aumentar quantidade" tooltip.casebook.reputation = "Reputaçäo de curas ou diagnósticos" tooltip.casebook.close = "Fechar ficha clínica" tooltip.casebook.earned_money = "Ganhos até a data" tooltip.casebook.decrease = "Reduzir quantidade" tooltip.casebook.up = "Subir" tooltip.casebook.research = "Clique aqui para utilizar o orçamento de Pesquisa Especializada para este tratamento" tooltip.casebook.down = "Baixar" tooltip.casebook.sent_home = "Número de pacientes que receberam alta" tooltip.casebook.cured = "Número de restabelecimentos" tooltip.casebook.deaths = "Número de falecimentos" tooltip.casebook.treatment_charge = "Preço" tooltip.casebook.cure_type.psychiatrist = "Os psiquiatras realizam este tratamento" tooltip.casebook.cure_type.drug_percentage = "Este tratamento requer um medicamento. O seu tem uma eficácia de %d%%" tooltip.casebook.cure_type.drug = "Este tratamento requer um medicamento" tooltip.casebook.cure_type.machine = "É necessária uma máquina para este tratamento" tooltip.casebook.cure_type.surgery = "Esta doença requer cirurgia" tooltip.casebook.cure_requirement.hire_staff_old = "Você precisa contratar um %s para este tratamento" tooltip.casebook.cure_requirement.not_possible = "Näo é possível administrar este tratamento" tooltip.casebook.cure_requirement.hire_surgeon = "Você precisa contratar um segundo cirurgiäo para realizar operaçöes" tooltip.casebook.cure_requirement.build_ward = "Você precisa construir uma Enfermaria para administrar este tratamento" tooltip.casebook.cure_requirement.possible = "Pode administrar este tratamento" tooltip.casebook.cure_requirement.build_room = "Você precisa construir uma sala para realizar este tratamento" tooltip.casebook.cure_requirement.hire_surgeons = "Você precisa contratar dois cirurgiöes para as operaçöes" tooltip.casebook.cure_requirement.research_machine = "É preciso inventar alguma máquina para este tratamento" tooltip.casebook.cure_requirement.ward_hire_nurse = "Você precisa de uma Enfermeira que trabalhe na Enfermaria para administrar este tratamento" tooltip.patient_window.center_view = "Focar na pessoa" tooltip.patient_window.warmth = "Quanto calor a pessoa tem" tooltip.patient_window.close = "Fechar caixa de diálogo" tooltip.patient_window.send_home = "Dar alta à pessoa" tooltip.patient_window.thirst = "Quanta sede a pessoa tem" tooltip.patient_window.graph = "Clique para escolher entre o gráfico do estado de saúde da pessoa ou seu histórico clínico" tooltip.patient_window.queue = "Ver detalhes da pessoa que está na fila" tooltip.patient_window.happiness = "Satisfaçäo da pessoa" tooltip.patient_window.casebook = "Ver detalhes da doença da pessoa" tooltip.patient_window.abort_diagnosis = "Colocar a pessoa em tratamento em vez de esperar que complete o diagnóstico" tooltip.town_map.fire_extinguishers = "Alternar extintores" tooltip.town_map.people = "Alternar pessoas" tooltip.town_map.balance = "Saldo" tooltip.town_map.objects = "Alternar objetos" tooltip.town_map.heat_inc = "Aumentar calor" tooltip.town_map.heating_bill = "Conta de aquecimento" tooltip.town_map.heat_level = "Nível de calor" tooltip.town_map.radiators = "Alternar aquecedores" tooltip.town_map.plants = "Alternar plantas" tooltip.town_map.heat_dec = "Diminuir calor" tooltip.town_map.close = "Fechar mapa da cidade" tooltip.graphs.cures = "Alternar curas" tooltip.graphs.reputation = "Alternar reputaçäo" tooltip.graphs.close = "Fechar tela de Gráficos" tooltip.graphs.balance = "Alternar saldo" tooltip.graphs.wages = "Alternar salários" tooltip.graphs.visitors = "Alternar visitantes" tooltip.graphs.money_in = "Alternar crédito" tooltip.graphs.deaths = "Alternar falecimentos" tooltip.graphs.scale = "Tabela de gráficos" tooltip.graphs.money_out = "Alternar gastos" tooltip.toolbar.policy = "Política" tooltip.toolbar.status = "Condiçäo" tooltip.toolbar.research = "Pesquisa" tooltip.toolbar.hire = "Contratar funcionários" tooltip.toolbar.bank_button = "Clique Esquerdo para acessar o Gerente do Banco, Clique Direito para o Extrato Bancário" tooltip.toolbar.charts = "Gráficos" tooltip.toolbar.balance = "O seu saldo" tooltip.toolbar.edit = "Editar salas e objetos" tooltip.toolbar.date = "A data" tooltip.toolbar.rooms = "Construir salas" tooltip.toolbar.staff_list = "Gerenciamento de funcionários" tooltip.toolbar.town_map = "Mapa da cidade" tooltip.toolbar.casebook = "Ficha clínica" tooltip.toolbar.reputation = "A sua reputaçäo" tooltip.toolbar.objects = "Colocar objetos de corredor" tooltip.queue_window.patient_dropdown.reception = "Enviar paciente à Recepçäo" tooltip.queue_window.patient_dropdown.hospital_1 = "Enviar o paciente para outro hospital" tooltip.queue_window.patient_dropdown.send_home = "Dar alta ao paciente" tooltip.queue_window.patient_dropdown.hospital_3 = "Enviar o paciente para outro hospital" tooltip.queue_window.patient_dropdown.hospital_2 = "Enviar o paciente para outro hospital" tooltip.queue_window.close = "Fechar esta caixa de diálogo" tooltip.queue_window.num_expected = "Número de pacientes que a Recepcionista espera que entrem na fila em breve" tooltip.queue_window.front_of_queue = "Arraste um paciente para este ícone para colocá-lo no início da fila" tooltip.queue_window.dec_queue_size = "Reduzir o tamanho máximo da fila" tooltip.queue_window.num_in_queue = "Número de pacientes na fila" tooltip.queue_window.num_entered = "Número de pacientes que foram atendidos nesta sala até agora" tooltip.queue_window.max_queue_size = "Tamanho máximo da fila que a Recepcionista permite" tooltip.queue_window.inc_queue_size = "Aumentar o tamanho máximo da fila" tooltip.queue_window.end_of_queue = "Arraste um paciente para este ícone para colocá-lo no final da fila" tooltip.queue_window.patient = "Arraste um paciente para colocá-lo na fila. Clique com o botäo direito sobre um paciente para mandá-lo para a fila ou para um hospital rival" tooltip.bank_manager.graph = "Gráfico dos pagamentos esperados de %s" tooltip.bank_manager.close = "Fechar tela do Gerente do Banco" tooltip.bank_manager.balance = "Seu extrato bancário" tooltip.bank_manager.borrow_5000 = "Pedir $5000 ao banco" tooltip.bank_manager.hospital_value = "Valor atual do seu hospital" tooltip.bank_manager.insurance_owed = "Quantidade de dinheiro que lhe deve %s" tooltip.bank_manager.interest_payment = "Pagamentos de juros mensais" tooltip.bank_manager.repay_5000 = "Devolver $5000 ao banco" tooltip.bank_manager.graph_return = "Voltar para a tela anterior" tooltip.bank_manager.interest_rate = "Taxa de juros anual" tooltip.bank_manager.inflation_rate = "Taxa de inflaçäo anual" tooltip.bank_manager.show_graph = "Mostra o gráfico dos pagamentos esperados de %s" tooltip.bank_manager.current_loan = "Empréstimos pendentes" tooltip.jukebox.play = "Tocar jukebox" tooltip.jukebox.stop = "Parar jukebox" tooltip.jukebox.close = "Fechar jukebox" tooltip.jukebox.fast_forward = "Avançar rapidamente jukebox" tooltip.jukebox.rewind = "Retroceder jukebox" tooltip.jukebox.current_title = "Jukebox" tooltip.jukebox.loop = "Reproduzir jukebox em loop" tooltip.build_room_window.cost = "Preço da sala selecionada" tooltip.build_room_window.room_classes.treatment = "Selecione salas de Tratamentos Gerais" tooltip.build_room_window.room_classes.facilities = "Selecione Instalaçöes Especiais" tooltip.build_room_window.room_classes.diagnosis = "Selecione salas de Diagnóstico" tooltip.build_room_window.room_classes.clinic = "Selecione Clínicas Especializadas" tooltip.build_room_window.close = "Sair desta caixa de diálogo e voltar para o jogo" tooltip.hire_staff_window.surgeon = "Cirurgiäo" tooltip.hire_staff_window.psychiatrist = "Psiquiatra" tooltip.hire_staff_window.qualifications = "Outras habilidades do Médico" tooltip.hire_staff_window.receptionists = "Ver Recepcionistas disponíveis para contrataçäo" tooltip.hire_staff_window.hire = "Contratar pessoa" tooltip.hire_staff_window.nurses = "Ver Enfermeiras disponíveis para contrataçäo" tooltip.hire_staff_window.doctor_seniority = "Experiência médica (Residente, Médico, Consultor)" tooltip.hire_staff_window.cancel = "Cancelar" tooltip.hire_staff_window.researcher = "Pesquisador" tooltip.hire_staff_window.prev_person = "Ver pessoa anterior" tooltip.hire_staff_window.salary = "Salário" tooltip.hire_staff_window.staff_ability = "Qualificaçäo dos funcionários" tooltip.hire_staff_window.doctors = "Ver Médicos disponíveis para contrataçäo" tooltip.hire_staff_window.next_person = "Ver próxima pessoa" tooltip.hire_staff_window.handymen = "Ver Zeladores disponíveis para contrataçäo" tooltip.handyman_window.center_view = "Focar no Zelador" tooltip.handyman_window.close = "Fechar caixa de diálogo" tooltip.handyman_window.sack = "Demitir" tooltip.handyman_window.name = "Nome do Zelador" tooltip.handyman_window.pick_up = "Pegar" tooltip.handyman_window.prio_litter = "Aumentar a prioridade do Zelador para limpeza" tooltip.handyman_window.ability = "Qualificaçäo" tooltip.handyman_window.prio_machines = "Aumentar a prioridade do Zelador para consertar as máquinas" tooltip.handyman_window.salary = "Salário" tooltip.handyman_window.face = "A aparência do Zelador" tooltip.handyman_window.happiness = "Satisfaçäo" tooltip.handyman_window.tiredness = "Cansaço" tooltip.handyman_window.prio_plants = "Aumentar a prioridade do Zelador para regar as plantas" tooltip.window_general.cancel = "Cancelar" tooltip.window_general.confirm = "Confirmar" adviser.earthquake.ended = "Nossa! Acreditei que ia ser o pior de todos! Alcançou um %d na Escala Richter." adviser.earthquake.damage = "Por causa do terremoto, há %d máquinas danificadas e %d pessoas feridas no hospital." adviser.earthquake.alert = "Alerta de terremoto! As suas máquinas podem se danificar durante o terremoto se näo tiverem uma boa manutençäo." adviser.staff_place_advice.only_psychiatrists = "Médicos só podem trabalhar na Psiquiatria se eles tiverem especialidade de Psiquiatra." adviser.staff_place_advice.doctors_cannot_work_in_room = "Os Médicos näo podem trabalhar em %s." adviser.staff_place_advice.only_researchers = "Médicos só podem trabalhar no Centro de Pesquisa se tiverem especialidade de Pesquisa." adviser.staff_place_advice.nurses_cannot_work_in_room = "As Enfermeiras näo podem trabalhar em %s." adviser.staff_place_advice.only_surgeons = "Médicos só podem trabalhar na Sala de Cirurgia se eles tiverem especialidade de Cirurgiäo" adviser.staff_place_advice.receptionists_only_at_desk = "As Recepcionistas só podem trabalhar na Recepçäo." adviser.staff_place_advice.only_doctors_in_room = "Apenas Médicos podem trabalhar em %s." adviser.staff_place_advice.only_nurses_in_room = "Apenas Enfermeiras podem trabalhar na %s." adviser.competitors.staff_poached = "Um dos seus funcionários recebeu uma boa oferta de trabalho de outro Hospital." adviser.competitors.land_purchased = "%s acaba de comprar terrenos." adviser.competitors.hospital_opened = "%s, da concorrência, abriu um hospital na área." adviser.epidemic.hurry_up = "Se näo acabar logo com esta epidemia, terá muitos problemas. Aja agora!" adviser.epidemic.multiple_epidemies = "Parece que há mais de uma epidemia ao mesmo tempo. Isso poderia ser desastroso, entäo faça algo rapidamente." adviser.epidemic.serious_warning = "Esta Doença Contagiosa começa a ser grave. É preciso fazer algo brevemente!" adviser.warnings.patients_unhappy = "Os pacientes näo gostam do seu hospital. Você deveria fazer algo para melhorá-lo." adviser.warnings.too_much_litter = "Há um problema de limpeza. Mais Zeladores podem ser a soluçäo." adviser.warnings.patients_very_thirsty = "Os Pacientes estäo com muita sede. Se näo colocar logo algumas máquinas de bebidas, as pessoas iräo embora do seu hospital para tomar um refresco." adviser.warnings.queue_too_long_at_reception = "Muitos pacientes estäo à espera na recepçäo. Coloque outra Recepçäo e contrate outra Recepcionista." adviser.warnings.patients_thirsty = "As pessoas estäo começando a ter sede. Talvez você devesse colocar máquinas de bebidas." adviser.warnings.nurses_tired = "As suas Enfermeiras estäo cansadas. Mande-as descansar agora mesmo." adviser.warnings.patients_too_hot = "Os pacientes estäo com muito calor. Retire alguns Aquecedores, baixe a temperatura ou coloque mais máquinas de bebidas." adviser.warnings.patients_thirsty2 = "As pessoas estäo reclamando que têm sede. Você deveria colocar mais máquinas de bebidas ou aproximar as que já existem." adviser.warnings.machines_falling_apart = "Suas máquinas estäo caindo aos pedaços. Chame um Zelador para que as reparem." adviser.warnings.financial_trouble3 = "Seu saldo tem um aspecto preocupante. Faça algo efetivo. Você está a %d do desastre." adviser.warnings.nurses_tired2 = "As suas Enfermeiras estäo muito cansadas. Faça-as descansar agora mesmo." adviser.warnings.people_have_to_stand = "Há Pacientes em pé. Faça-os sentar já!" adviser.warnings.handymen_tired = "Os seus Zeladores estäo muito cansados. Mande-os descansar agora mesmo." adviser.warnings.change_priorities_to_plants = "Você tem que alterar as prioridades dos seus Zeladores para que empreguem mais tempo regando as plantas." adviser.warnings.staff_tired = "Seus funcionários estäo incrivelmente cansados. Se näo os deixar descansar um momento em uma Sala de Descanso, alguns poderäo sofrer de esgotamento." adviser.warnings.some_litter = "Os Zeladores podem recolher todo esse lixo antes que se torne um problema sério." adviser.warnings.cash_low_consider_loan = "Seu saldo está muito baixo. Já pensou em solicitar um empréstimo?" adviser.warnings.reduce_staff_rest_threshold = "Tente alterar o Tempo de Descanso dos funcionários na tela de Políticas para que possam descansar mais frequentemente. É só uma sugestäo." adviser.warnings.build_staffroom = "Construa uma Sala de Descanso o mais rápido possível. Seus funcionários trabalham muito e estäo à beira do colapso. Vamos, seja razoável!" adviser.warnings.many_epidemics = "Parece que há mais de uma epidemia ao mesmo tempo. Isso poderia ser desastroso, entäo faça algo rapidamente." adviser.warnings.build_toilets = "Construa um Banheiro agora mesmo ou verá algo muito desagradável. E você pode imaginar como cheirará o seu hospital." adviser.warnings.staff_overworked = "Os seus funcionários têm muito trabalho. Eles estäo perdendo eficácia e väo começar a cometer erros desastrosos." adviser.warnings.doctors_tired2 = "Os seus Médicos estäo cansadíssimos. Precisam descansar imediatamente." adviser.warnings.queues_too_long = "As filas estäo muito longas." adviser.warnings.staff_unhappy = "Seus funcionários estäo descontentes. Dê a eles um pagamento extra ou, ainda melhor, construa uma Sala de Descanso para eles. Você também pode alterar sua política de descanso dos funcionários na tela de Política." adviser.warnings.patient_leaving = "Há um Paciente indo embora. A causa? A má gestäo e a péssima qualidade dos seus funcionários e equipamentos." adviser.warnings.patient_stuck = "Alguém ficou bloqueado. Planeje melhor seu hospital." adviser.warnings.receptionists_tired = "As suas Recepcionistas estäo extenuadas. Mande-as descansar agora mesmo." adviser.warnings.charges_too_low = "Você está cobrando muito pouco. Isso irá trazer as pessoas para o hospital, mas os lucros seräo muito baixos." adviser.warnings.epidemic_getting_serious = "Esta Doença Contagiosa começa a ser grave. É preciso fazer algo brevemente!" adviser.warnings.patients_really_thirsty = "Os Pacientes têm muita sede. Coloque mais máquinas de bebidas ou aproxime as existentes das filas mais longas." adviser.warnings.patients_annoyed = "As pessoas estäo extremamente insatisfeitas com a forma como você dirige seu hospital. E näo pode alegar que näo têm razäo. Resolva o problema ou enfrente as consequências!" adviser.warnings.place_plants3 = "Os Pacientes estäo descontentes. Coloque mais plantas para animá-los." adviser.warnings.machinery_deteriorating = "Suas máquinas começam a se deteriorar por uso excessivo. Vigie-as." adviser.warnings.place_plants4 = "Alegre os Pacientes colocando mais plantas." adviser.warnings.money_very_low_take_loan = "O seu Saldo Bancário é muito baixo. Você poderia pedir um empréstimo." adviser.warnings.finanical_trouble2 = "Consiga algum crédito ou estará acabado. Perderá o nível se perder outros %d." adviser.warnings.patients_very_cold = "Os Pacientes estäo com muito frio. Aumente o aquecimento ou coloque mais Aquecedores no seu hospital." adviser.warnings.deal_with_epidemic_now = "Se näo acabar logo com esta epidemia, terá muitos problemas. Aja agora!" adviser.warnings.litter_catastrophy = "O problema da falta de limpeza é grave. Coloque vários Zelador para trabalhar agora mesmo!" adviser.warnings.litter_everywhere = "Há sujeira por toda parte. Coloque mais Zelador para trabalhar." adviser.warnings.machinery_slightly_damaged = "A maquinaria do seu hospital está um pouco danificada. Näo se esqueça de repará-las." adviser.warnings.patients_getting_hot = "Os Pacientes estäo com muito calor. Baixe o aquecimento ou retire alguns Aquecedores." adviser.warnings.no_patients_last_month = "Nenhum novo paciente veio ao seu hospital mês passado. Horrível!" adviser.warnings.many_killed = "Você matou %d pacientes. Acho que precisa melhorar, näo?" adviser.warnings.build_toilet_now = "Construa já alguns Banheiros. As pessoas näo aguentam mais. Näo se ria, é grave." adviser.warnings.people_freezing = "Que horrível! Nesta era de aquecimento central, alguns dos seus Pacientes estäo se congelando. Coloque Aquecedores para aquecê-los e aumente o aquecimento." adviser.warnings.place_plants_to_keep_people = "As pessoas estäo indo embora. Se colocasse mais plantas, poderia convencê-las a ficar." adviser.warnings.patients_leaving = "Os Pacientes estäo indo embora. Melhore seu hospital colocando plantas, bancos, máquinas de bebidas, etc., para os seus visitantes." adviser.warnings.doctors_tired = "Os seus Médicos estäo esgotados. Mande-os descansar agora mesmo." adviser.warnings.charges_too_high = "Seus preços säo muito altos. Isto significa grandes lucros a curto prazo, mas a longo ficará sem pacientes." adviser.warnings.financial_trouble = "Você tem sérios problemas financeiros. Arrume suas finanças já! Se perder outros %d, terá arruinado este nível!" adviser.warnings.reception_bottleneck = "Há um gargalo na Recepçäo. Contrate outra Recepcionista." adviser.warnings.pay_back_loan = "Você tem dinheiro de sobra. Por que näo liquida seu empréstimo?" adviser.warnings.nobody_cured_last_month = "Ninguém foi curado no mês passado." adviser.warnings.queue_too_long_send_doctor = "As filas de %s säo muito longas. Certifique-se de que há um Médico na sala." adviser.warnings.staff_too_hot = "Os seus funcionários estäo com muito calor. Baixe a temperatura ou retire alguns Aquecedores das suas salas." adviser.warnings.place_plants2 = "Os Pacientes estäo indo. Com mais plantas, você conseguiria que ficassem mais tempo." adviser.warnings.doctor_crazy_overwork = "Oh, näo! Um dos seus Médicos ficou maluco devido ao excesso de trabalho. Ele irá se recuperar se descansar agora mesmo." adviser.warnings.machinery_damaged = "Repare suas máquinas o mais brevemente possível. Näo falta muito para que comecem a cair aos pedaços." adviser.warnings.more_benches = "Você poderia colocar mais bancos. Os doentes protestam por terem que ficar em pé." adviser.warnings.bankruptcy_imminent = "Ei! Vai ficar sem máquinas. Tome cuidado!" adviser.warnings.need_toilets = "Os pacientes precisam de banheiros. Coloque-os em um lugar acessível." adviser.warnings.more_toilets = "Você precisa de mais Banheiros. As pessoas näo aguentam mais." adviser.warnings.plants_dying = "As suas plantas estäo secando. Precisam de água. Consiga mais Zelador para que cuidem disso. Os Pacientes näo gostam das plantas mortas." adviser.warnings.people_did_it_on_the_floor = "Alguns dos seus Pacientes näo conseguem mais aguentar. Alguém terá que limpar sem descanso." adviser.warnings.need_staffroom = "Construa uma Sala de Descanso para que seus funcionários possam descansar." adviser.warnings.plants_thirsty = "Você precisa regar suas plantas. Elas estäo secando." adviser.warnings.too_many_plants = "Você tem plantas demais. Isso parece uma selva." adviser.warnings.receptionists_tired2 = "As suas Recepcionistas estäo esgotadas. Deixe que descansem agora mesmo." adviser.warnings.machine_severely_damaged = "%s está prestes a se quebrar." adviser.warnings.machinery_very_damaged = "É uma emergência! Faça com que um Zelador repare suas máquinas em seguida. Estäo a ponto de explodir!" adviser.warnings.hospital_is_rubbish = "As pessoas estäo dizendo abertamente que seu hospital é uma porcaria. Você sabe que logo iräo se queixar em outro lugar." adviser.warnings.handymen_tired2 = "Os seus Zeladores estäo cansados. Mande-os descansar imediatamente." adviser.warnings.machinery_damaged2 = "Você precisa contratar um Zelador para reparar suas máquinas rapidamente." adviser.warnings.staff_very_cold = "O pessoal reclama do frio. Aumente o aquecimento ou coloque mais Aquecedores." adviser.warnings.desperate_need_for_watering = "Necessita desesperadamente contratar um Zelador para que cuide das suas plantas." adviser.warnings.staff_unhappy2 = "Seus funcionários, no geral, estäo descontentes. Logo pediräo mais dinheiro." adviser.staff_advice.too_many_nurses = "Você contratou Enfermeiras demais." adviser.staff_advice.need_handyman_litter = "Os pacientes estäo sujando seu hospital. Contrate um Zelador para se encarregar da limpeza." adviser.staff_advice.need_nurses = "Contrate mais Enfermeiras. Na Enfermaria e na Farmácia faltam Enfermeiras." adviser.staff_advice.need_doctors = "Você precisa de mais Médicos. Tente colocar os seus melhores Médicos nas salas com mais Pacientes." adviser.staff_advice.too_many_doctors = "Você tem muitos Médicos. Alguns estäo desocupados neste momento." adviser.staff_advice.need_handyman_machines = "Você terá que contratar um Zelador se quiser que as máquinas do seu hospital funcionem." adviser.staff_advice.need_handyman_plants = "Você vai precisar contratar um Zelador para regar as plantas." adviser.praise.few_have_to_stand = "Quase ninguém fica em pé no seu hospital. Seus Pacientes estäo contentes." adviser.praise.patients_cured = "%d Pacientes curados." adviser.praise.plants_are_well = "Muito bem. Você está cuidando bem das suas plantas. Estupendo." adviser.praise.plenty_of_benches = "Há muitos assentos, entäo isso näo será um problema." adviser.praise.plants_thriving = "Muito bem. As suas plantas estäo muito viçosas. Têm um aspecto maravilhoso. Mantenha-as assim e poderá ganhar um prêmio por isso." adviser.praise.many_benches = "Agora seus Pacientes têm assentos suficientes. Muito bem!" adviser.praise.many_plants = "Fantástico! Há muitas plantas. Seus Pacientes agradeceräo por isso." adviser.surgery_requirements.need_surgeons_ward_op = "Precisa contratar dois Cirurgiöes e construir uma Enfermaria e uma Sala de Cirurgia para realizar operaçöes." adviser.surgery_requirements.need_surgeon_ward = "Você precisa contratar outro Cirurgiäo e construir uma Enfermaria para poder realizar operaçöes." adviser.multiplayer.objective_completed = "Você completou o objetivo. Parabéns!" adviser.multiplayer.objective_failed = "Você falhou em completar o objetivo." adviser.multiplayer.everyone_failed = "Ninguém conseguiu cumprir o último objetivo. Entäo, todos continuam jogando." adviser.multiplayer.players_failed = "O(s) seguinte(s) jogador(es) näo conseguiu(ram) atingir o último objetivo: " adviser.multiplayer.poaching.not_interested = "Ha! Eles näo estäo interessados em trabalhar para você. Estäo felizes onde estäo." adviser.multiplayer.poaching.already_poached_by_someone = "Nem pensar! Alguém trate de pescar essa pessoa!" adviser.multiplayer.poaching.in_progress = "Eu o informarei se esta pessoa deseja trabalhar pra você." adviser.research.new_drug_researched = "Um novo medicamento para curar %s foi descoberto." adviser.research.new_machine_researched = "Pesquisou com êxito %s." adviser.research.drug_fully_researched = "Pesquisou 100%% %s." adviser.research.drug_improved = "O seu Centro de Pesquisa melhorou o medicamento para %s." adviser.research.new_available = "Já pode utilizar um novo %s." adviser.research.machine_improved = "O Centro de Pesquisa trouxe melhorias para %s." adviser.research.autopsy_discovered_rep_loss = "Foi descoberta uma máquina de autópsias. Aguarde uma reaçäo desfavorável das pessoas." adviser.information.emergency = "Há uma emergência! Mexa-se! Mexa-se! MEXA-SE!" adviser.information.handyman_adjust = "Você pode fazer com que o Zelador limpe melhor se estabelecer suas prioridades." adviser.information.promotion_to_specialist = "Um dos seus Médicos foi promovido para %s." adviser.information.pay_rise = "Um funcionário ameaça se demitir. Você pode atender à sua petiçäo ou demiti-lo. Clique no último ícone da esquerda para ver quem deseja demitir." adviser.information.first_death = "Acabou de matar seu primeiro paciente. Como se sente?" adviser.information.fax_received = "O ícone que acabou de aparecer no canto inferior esquerdo da tela alerta sobre uma informaçäo importante ou uma decisäo que você precisa tomar." adviser.information.promotion_to_consultant = "Um dos seus MEDICOS se tornou um CONSULTOR." adviser.information.patient_abducted = "Os alienígenas raptaram um dos seus pacientes." adviser.information.vip_arrived = "Cuidado! %s acaba de chegar para visitar o seu hospital! Faça com que tudo funcione bem para lhe agradar." adviser.information.extra_items = "Os funcionários ficam mais confortáveis e melhoram o seu rendimento se você colocar objetos complementares nas salas." adviser.information.epidemic_health_inspector = "O Ministério da Saúde soube de que tem uma epidemia. Prepare-se para receber brevemente a visita de um Inspetor de Saúde." adviser.information.first_cure = "Muito bem! Você acaba de curar seu primeiro paciente." adviser.information.epidemic = "Há uma doença contagiosa no seu hospital. Você precisa solucioná-la em seguida!" adviser.information.patient_leaving_too_expensive = "Um paciente está indo embora sem pagar %s. Está muito caro." adviser.information.place_windows = "Se colocar janelas, as salas teräo mais luz e seus funcionários estaräo mais contentes." adviser.information.initial_general_advice.first_patients_thirsty = "No seu hospital, as pessoas estäo com sede. Coloque Máquinas de Bebidas." adviser.information.initial_general_advice.epidemic_spreading = "Há uma doença contagiosa no seu hospital. Tente curar as pessoas infectadas antes que elas possam ir embora." adviser.information.initial_general_advice.research_now_available = "Você construiu seu primeiro centro de pesquisa. Agora pode acessar a tela de pesquisa." adviser.information.initial_general_advice.autopsy_available = "Foi inventada uma máquina de autópsia. Com ela, você poderá se livrar dos Pacientes problemáticos e investigar seus restos. Tome cuidado, o uso desta máquina suscita muita polêmica." adviser.information.initial_general_advice.rats_have_arrived = "Os ratos invadiram seu hospital. Tente eliminá-los com o mouse." adviser.information.initial_general_advice.surgeon_symbol = "Os Médicos especializados em cirurgia levam o símbolo: {" adviser.information.initial_general_advice.machine_needs_repair = "Há uma máquina que precisa ser reparada. Encontre a máquina e clique sobre ela. Em seguida, clique no botäo do Zelador." adviser.information.initial_general_advice.research_symbol = "Os Médicos pesquisadores levam o símbolo: }" adviser.information.initial_general_advice.decrease_heating = "As pessoas estäo com muito calor no seu hospital. Diminua o aquecimento. Isso é feito na tela do mapa da cidade." adviser.information.initial_general_advice.taking_your_staff = "Alguém está subornando sua equipe. Você terá que discutir com eles para que fiquem." adviser.information.initial_general_advice.first_VIP = "Você vai receber seu primeiro visitante VIP. Certifique-se de que o VIP näo veja nada sujo nem nenhum Paciente descontente." adviser.information.initial_general_advice.increase_heating = "As pessoas estäo com frio. Ligue o aquecimento na tela do mapa da cidade." adviser.information.initial_general_advice.psychiatric_symbol = "Os Médicos especializados em psiquiatria levam o símbolo: |" adviser.information.initial_general_advice.first_epidemic = "Há uma epidemia no seu hospital! Decida se quer tratá-la ou liberá-la." adviser.information.initial_general_advice.place_radiators = "As pessoas estäo com frio no seu hospital. Você pode colocar mais Aquecedores selecionando-os no menu de mobiliário do corredor." adviser.information.initial_general_advice.first_emergency = "Os Pacientes de emergência têm uma luz azul piscando sobre suas cabeças. Cure-os antes que morram ou que o tempo limite se esgote." adviser.information.promotion_to_doctor = "Um dos seus RESIDENTES se tornou um MEDICO." adviser.information.larger_rooms = "Se fizer salas espaçosas, seus funcionários se sentiräo mais importantes e melhoraräo o seu rendimento." adviser.goals.win.value = "Aumente o valor do seu hospital em %d" adviser.goals.win.reputation = "Aumente a sua reputaçao em %d para satisfazer os critérios de vitória" adviser.goals.win.cure = "Cure mais %d Paciente(s) e terá curado o suficiente para ganhar este nível." adviser.goals.win.money = "Você precisa de $%d para atender os critérios financeiros deste nível." adviser.build_advice.door_not_reachable = "As pessoas näo poderäo passar por essa porta. Pense sobre isto." adviser.build_advice.blueprint_would_block = "Esse projeto iria bloquear outras salas. Tente alterar o tamanho ou coloque em outro local!" adviser.build_advice.placing_object_blocks_door = "Se colocar este objeto aí, impedirá que se possa acessar alguma porta." adviser.build_advice.blueprint_invalid = "Esse näo é um projeto válido." adviser.level_progress.three_quarters_won = "Falta 75%% para superar este nível." adviser.level_progress.reputation_good_enough = "De acordo, sua reputaçäo é muito boa para ganhar este nível. Mantenha acima de %d e resolva outros problemas para terminar." adviser.level_progress.nearly_won = "Falta muito pouco para superar este nível." adviser.level_progress.hospital_value_enough = "Mantenha o valor do seu hospital acima de %d e atenda seus outros problemas para ganhar o nível." adviser.level_progress.improve_reputation = "Você precisa melhorar sua reputaçäo em %d para ter uma chance de ganhar o nível." adviser.level_progress.halfway_won = "Falta 50%% para superar este nível." adviser.level_progress.close_to_win_increase_value = "Está próximo da vitória. Aumente o valor do seu hospital em $%d." adviser.level_progress.another_patient_cured = "Muito bem! Outro Paciente curado. Isso faz um total de %d curados." adviser.level_progress.nearly_lost = "Falta muito pouco para perder este nível." adviser.level_progress.three_quarters_lost = "Falta 75%% para perder este nível." adviser.level_progress.dont_kill_more_patients = "Näo pode permitir que mais Pacientes morram!" adviser.level_progress.cured_enough_patients = "Curou muitos Pacientes, mas precisa manter seu hospital em melhor estado para ganhar o nível." adviser.level_progress.financial_criteria_met = "Você satisfez o critério financeiro deste nível. Agora mantenha seu saldo acima de %d, enquanto assegura que o hospital funcione eficazmente." adviser.level_progress.halfway_lost = "Falta 50%% para perder este nível." adviser.level_progress.another_patient_killed = "Oh, näo! Matou outro Pacientes. Agora há um total de %d mortes." adviser.vomit_wave.started = "Parece que tem um vírus de vômitos no seu hospital. Isto näo teria acontecido se o tivesse mantido limpo. Talvez devesse contratar um Zelador." adviser.vomit_wave.ended = "Ufa! Parece que o vírus que causou essa epidemia de vômitos está controlado. No futuro, mantenha o seu hospital limpo." adviser.placement_info.staff_cannot_place = "Você näo pode colocar este funcionário aqui." adviser.placement_info.room_cannot_place_2 = "Você näo pode colocar esta sala aqui." adviser.placement_info.object_cannot_place = "Você näo pode colocar este objeto aqui." adviser.placement_info.object_can_place = "Você pode colocar este objeto aqui." adviser.placement_info.door_can_place = "Se quiser, pode você pode colocar essa porta aqui." adviser.placement_info.reception_cannot_place = "Você näo pode colocar esta Recepçäo aqui." adviser.placement_info.door_cannot_place = "Desculpe, mas você näo pode colocar esta porta aqui." adviser.placement_info.window_cannot_place = "Você näo pode colocar essa janela aqui." adviser.placement_info.staff_can_place = "Você pode colocar este funcionário aqui." adviser.placement_info.window_can_place = "Você pode colocar esta janela aqui." adviser.placement_info.reception_can_place = "Você pode colocar essa Recepçäo aqui." adviser.placement_info.room_cannot_place = "Você näo pode colocar esta sala aqui." adviser.boiler_issue.maximum_heat = "A caldeira do poräo ficou danificada. Os Aquecedores estäo no máximo. As pessoas väo derreter! Seria bom que colocasse mais máquinas de bebidas." adviser.boiler_issue.minimum_heat = "Ah, aí está! A caldeira do poräo ficou danificada. Parece que dentro de pouco tempo as pessoas väo congelar no seu hospital!" adviser.boiler_issue.resolved = "Boas notícias. A caldeira e os Aquecedores voltaram a funcionar corretamente. Os seus pacientes e os seus funcionários desfrutaräo de uma boa temperatura." adviser.tutorial.build_reception = "Você precisa de uma Recepçäo no seu hospital. Escolha uma do menu de mobiliário do corredor." adviser.tutorial.click_and_drag_to_build = "Clique com o botäo esquerdo e arraste para desenhar a sala." adviser.tutorial.window_in_invalid_position = "Esta janela está mal colocada. Tente colocá-la em outro lugar da parede." adviser.tutorial.room_in_invalid_position = "Esta marca azul näo é válida. As áreas vermelhas assinalam onde você ocupou parte de outro quarto ou das paredes do hospital." adviser.tutorial.choose_receptionist = "Clique no ícone que pisca para contratar a Recepcionista que você escolheu." adviser.tutorial.place_doctor = "Coloque o Médico na sala." adviser.tutorial.build_gps_office = "É imprescindível ter um Médico para diagnosticar os doentes." adviser.tutorial.select_doctors = "Clique no ícone que pisca para ver os Médicos que você pode contratar." adviser.tutorial.click_gps_office = "Clique na linha que pisca para escolher o Consultório de Clínica Geral." adviser.tutorial.prev_receptionist = "Clique no ícone que pisca para ver a Recepcionista disponível anterior." adviser.tutorial.information_window = "A caixa de Ajuda fornece todas as informaçöes sobre a sala que você acabou de construir." adviser.tutorial.place_receptionist = "Mova a Recepcionista e coloque-a no seu lugar." adviser.tutorial.confirm_room = "Clique no ícone que pisca para abrir a consulta ou cancele para voltar ao passo anterior." adviser.tutorial.doctor_in_invalid_position = "Näo é possível colocar o Médico aqui." adviser.tutorial.place_objects = "Clique com o botäo esquerdo para colocar os objetos e o direito para girá-los." adviser.tutorial.hire_receptionist = "Agora você precisa de uma Recepcionista para atender os seus pacientes." adviser.tutorial.hire_doctor = "Você precisa de um Médico para diagnosticar e atender os seus pacientes." adviser.tutorial.room_too_small_and_invalid = "A marca azul é muito pequena e está mal colocada." adviser.tutorial.receptionist_invalid_position = "Näo é possível colocar sua Recepcionista aqui." adviser.tutorial.door_in_invalid_position = "Você tentou colocar a porta em um lugar incorreto. Tente em outro lugar da grade azul." adviser.tutorial.next_receptionist = "Clique no ícone que pisca para ver a seguinte Recepcionista disponível." adviser.tutorial.object_in_invalid_position = "Este objeto está mal colocado. Por favor, coloque-o em outro lugar ou tente girá-lo." adviser.tutorial.choose_doctor = "Veja as habilidades de cada Médico antes de escolher um." adviser.tutorial.rotate_and_place_reception = "Coloque a Recepçäo e clique com o botäo direito do mouse para girá-la." adviser.tutorial.accept_purchase = "Clique com o botäo esquerdo no ícone que pisca para colocá-lo." adviser.tutorial.room_too_small = "A marca azul desta sala é muito pequena. Arraste-a ou aumente seu tamanho." adviser.tutorial.room_big_enough = "A marca azul é agora suficientemente grande. Se quiser, pode movê-la ou colocá-la." adviser.tutorial.start_tutorial = "Leia as instruçöes. Quando terminar, clique o botäo esquerdo do mouse para começar o tutorial." adviser.tutorial.place_door = "Mova o mouse ao redor das paredes marcadas de azul para colocar a porta." adviser.tutorial.select_receptionists = "Clique no ícone que pisca para ver as Recepcionistas que estäo disponíveis." adviser.tutorial.order_one_reception = "Clique na linha que pisca com o botäo esquerdo do mouse para comprar uma Recepçäo." adviser.tutorial.place_windows = "Coloque as janelas da mesma forma que a porta. Se näo quiser janelas, näo precisa colocá-las." adviser.tutorial.select_diagnosis_rooms = "Clique com o botäo esquerdo no ícone que pisca para ver a lista de salas de diagnóstico." adviser.tutorial.reception_invalid_position = "A Recepçäo ficou cinza porque näo é possível colocá-la aqui. Mova ou gire-a." adviser.tutorial.build_pharmacy = "Parabéns! Agora, construa uma Farmácia e contrate uma Enfermeira para fazer seu hospital funcionar." adviser.room_requirements.pharmacy_need_nurse = "Contrate uma Enfermeira para a Farmácia." adviser.room_requirements.op_need_two_surgeons = "Contrate dois cirurgiöes para operarem na Sala de Cirurgia." adviser.room_requirements.training_room_need_consultant = "Você precisa contratar um Consultor para dar aulas naquela Sala de Treinamento." adviser.room_requirements.research_room_need_researcher = "Você precisa contratar um Médico com habilidades em Pesquisa para usar o Centro de Pesquisa." adviser.room_requirements.op_need_ward = "Você precisa construir uma Enfermaria para os pacientes que väo ser operados." adviser.room_requirements.reception_need_receptionist = "Você precisa contratar uma Recepcionista para atender os seus pacientes." adviser.room_requirements.op_need_another_surgeon = "Você precisa contratar um outro cirurgiäo para usar a Sala de Cirurgia." adviser.room_requirements.gps_office_need_doctor = "Contrate um Médico para atender no Consultório de Clínica Geral." adviser.room_requirements.ward_need_nurse = "Contrate uma Enfermeira para trabalhar na Enfermaria." adviser.room_requirements.psychiatry_need_psychiatrist = "Agora que construiu uma Psiquiatria, precisará de um Psiquiatra." introduction_texts.level6 = " Use todo o seu conhecimento para montar um hospital eficiente e bem administrado que gere um lucro saudável e consiga lidar com qualquer coisa que o público doente possa trazer. Você precisará estar ciente de que o ambiente, aqui, é especialmente propenso a germes e infecçöes. A menos que mantenha uma escrupulosa limpeza na sua instituiçäo, terá que fazer frente a uma série de epidemias entre os Pacientes. Procure obter um lucro de $20.000 e fazer o valor do seu hospital superar os $140.000." introduction_texts.level3 = " Desta vez, você colocará o seu hospital em uma área rica. O Ministério da Saúde espera que você consiga curar muitos Pacientes. Você terá que ganhar uma boa reputaçäo para começar, mas uma vez que o hospital comece a funcionar, concentre-se em ganhar todo o dinheiro que puder. Também podem haver Emergências. Elas ocorrem quando chega muita gente que sofre da mesma doença. Se você os curar dentro de um prazo determinado, conseguirá aumentar a sua reputaçäo e ganhar um grande extra. Haverá doenças, como o Complexo de Rei, e você deverá ter orçamento para construir uma Sala de Cirurgia e, junto a ela, uma Enfermaria. Você tem que ganhar $20.000 para superar este nível." introduction_texts.level14 = " Ainda tem mais um desafio: um hospital surpresa totalmente imprevisível. Se conseguir ter êxito, será o vencedor dos vencedores. E näo espere que seja fácil, porque é a tarefa mais difícil que você enfrentará. Boa sorte!" introduction_texts.level5 = " Este será um Hospital movimentado, lidando com uma ampla variedade de casos. Os seus Médicos acabaram de sair da faculdade, por isso é fundamental que construa uma Sala de Treinamento para que alcancem o nível de formaçäo necessário. Você só tem três Consultores para ajudar a ensinar sua equipe inexperiente, entäo mantenha-os felizes. Você deve ter em mente que o hospital está localizado sobre a falha geológica de San Android. Sempre há risco de terremoto. Os terremotos provocaräo danos importantes nas suas máquinas e alteraräo o bom funcionamento do seu hospital. Aumente a sua reputaçäo até 400 e consiga ganhos de $50.000 para triunfar. Além disso, cure 200 Pacientes." introduction_texts.level1 = " Bem-vindo ao seu primeiro Hospital!// Para fazê-lo funcionar, coloque uma Recepçäo, construa um Consultório de Clínica Geral e contrate uma Recepcionista e um Médico. Em seguida, espere que cheguem os Pacientes. Seria uma boa ideia construir uma Psiquiatria e contratar um Psiquiatra. Uma Farmácia e uma Enfermeira säo essenciais para curar os seus Pacientes. Cuidado com os casos malignos de Cabeça Inflada; eles säo solucionados na sala de Inflatoterapia. Você terá que curar 10 pessoas e garantir que a sua reputaçäo näo seja inferior a 200." introduction_texts.level7 = " Aqui, você estará sob a estrita vigilância do Ministério da Saúde, entäo faça com que suas contas reflitam excelentes lucros e aumente a sua reputaçäo. Näo podemos permitir que haja mortes desnecessárias; isso näo beneficia o negócio. Certifique-se de que os seus funcionários estejam em excelente forma e que você tenha todo o equipamento necessário. Obtenha uma reputaçäo de 600 e um saldo bancário de $200.000." introduction_texts.level4 = " Mantenha seus Pacientes felizes e trate-os com a maior eficácia possível, reduzindo ao máximo o número de óbitos. A sua reputaçäo está em jogo, entäo procure aumentá-la o máximo que puder. Näo se preocupe muito com o dinheiro; você irá ganhando à medida que cresce a sua reputaçäo. Também poderá treinar seus Médicos para ampliar suas conhecimentos. Eles poderäo curar os Pacientes mais difíceis. Alcance uma reputaçäo acima de 500." introduction_texts.level18 = "Ei! Você está indo à falência!" introduction_texts.level13 = " A sua incrível habilidade como diretor do hospital atraiu a atençäo da Divisäo Secreta Especial do Serviço Secreto Especial. Tenho um trabalho especial para você. Há um hospital infestado de ratos que precisa de um exterminador eficiente. Você deve matar todos os ratos que puder antes que o pessoal de Manutençäo limpe toda a sujeira. Acha que é apto para esta missäo?" introduction_texts.level8 = " Cabe a você montar o hospital mais rentável e eficiente possível. As pessoas por aqui säo bastante ricas, entäo tente arrecadar o máximo possível. Lembre-se de que curar as pessoas é uma coisa muito bonita, mas o que PRECISAMOS de verdade é do dinheiro delas. Arranque todo o dinheiro dessas pessoas doentes. Acumule a enorme quantia de $300.000 para completar este nível." humanoid_name_starts[1] = "GOLD" humanoid_name_starts[2] = "HIGH" humanoid_name_starts[3] = "AND" humanoid_name_starts[4] = "BEN" humanoid_name_starts[5] = "BAN" humanoid_name_starts[6] = "BILL" humanoid_name_starts[7] = "WY" humanoid_name_starts[8] = "WAT" humanoid_name_starts[9] = "POD" humanoid_name_starts[10] = "KING" humanoid_name_starts[11] = "BAR" humanoid_name_starts[12] = "PET" humanoid_name_starts[13] = "MAN" humanoid_name_starts[14] = "BOY" humanoid_name_starts[15] = "WAR" humanoid_name_starts[16] = "JACK" humanoid_name_starts[17] = "CRAB" humanoid_name_starts[18] = "FISH" humanoid_name_starts[19] = "WATER" humanoid_name_starts[20] = "MIL" humanoid_name_starts[21] = "BY" humanoid_name_starts[22] = "FEN" humanoid_name_starts[23] = "RICH" humanoid_name_starts[24] = "SCOT" humanoid_name_starts[25] = "BUR" humanoid_name_starts[26] = "PIKE" humanoid_name_starts[27] = "CUR" humanoid_name_starts[28] = "WHIT" humanoid_name_starts[29] = "BINN" humanoid_name_starts[30] = "BONN" humanoid_name_starts[31] = "POG" humanoid_name_starts[32] = "WRIGHT" humanoid_name_starts[33] = "KER" policy.diag_procedure = "Procedimento de Diagnóstico" policy.header = "POLITICA DO HOSPITAL" policy.staff_leave_rooms = "Abandonar as consultas" policy.staff_rest = "Enviar funcionários para descansar" policy.diag_termination = "Conclusäo do Diagnóstico" policy.sliders.send_home = "DAR ALTA" policy.sliders.guess = "ADIVINHAR CURA" policy.sliders.stop = "PARAR PROCEDIM." policy.sliders.staff_room = "IR DESCANSAR" menu_display.mcga_lo_res = " BAIXA RESOLUÇAO MCGA " menu_display.shadows = " SOMBRAS " menu_display.high_res = " ALTA RESOLUÇAO " staff_title.surgeon = "Cirurgiäo" staff_title.psychiatrist = "Psiquiatra" staff_title.general = "Geral" staff_title.junior = "Residente" staff_title.researcher = "Pesquisador" staff_title.consultant = "Consultor" staff_title.nurse = "Enfermeira" staff_title.doctor = "Médico" staff_title.receptionist = "Recepcionista" bank_manager.insurance_owed = "Dívida do Seguro" bank_manager.interest_rate = "Juros" bank_manager.interest_payment = "Pagamento de Juros" bank_manager.statistics_page.date = "Data" bank_manager.statistics_page.money_out = "Débito" bank_manager.statistics_page.money_in = "Crédito" bank_manager.statistics_page.balance = "Saldo" bank_manager.statistics_page.current_balance = "Saldo Atual" bank_manager.statistics_page.details = "Detalhes" bank_manager.balance = "Saldo" bank_manager.inflation_rate = "Inflaçäo" bank_manager.hospital_value = "Valor do Hospital" bank_manager.current_loan = "Empréstimo Pendente" menu_file_save[1] = " JOGO 1 " menu_file_save[2] = " JOGO 2 " menu_file_save[3] = " JOGO 3 " menu_file_save[4] = " JOGO 4 " menu_file_save[5] = " JOGO 5 " menu_file_save[6] = " JOGO 6 " menu_file_save[7] = " JOGO 7 " menu_file_save[8] = " JOGO 8 " insurance_companies[1] = "Seguros Estrelinha" insurance_companies[2] = "Seguros Nacional" insurance_companies[3] = "Mútua Seguril" insurance_companies[4] = "Seguros Ponderoso" insurance_companies[5] = "Geral Seguro" insurance_companies[6] = "Seguro Fiel" insurance_companies[7] = "Holding de Seguros" insurance_companies[8] = "Seguros Leon" insurance_companies[9] = "Joäo e Maria Ltda." insurance_companies[10] = "Seguro Feliz" insurance_companies[11] = "Seguros Sindicato" insurance_companies.out_of_business = "FECHADO" room_descriptions.ward[1] = "Enfermaria//" room_descriptions.ward[2] = "Os Pacientes ficam aqui para serem atendidos por uma Enfermeira enquanto säo diagnosticados. Permanecem aqui antes de serem operados.//" room_descriptions.ward[3] = "A Enfermaria requer uma Enfermeira. " room_descriptions.blood_machine[1] = "Sala de Transfusöes//" room_descriptions.blood_machine[2] = "O Transfusiômetro é um equipamento de diagnóstico que analisa as células do sangue do Paciente para descobrir do que ele sofre.//" room_descriptions.blood_machine[3] = "A Sala de Transfusäo requer um Médico. Também precisa de manutençäo. " room_descriptions.fracture_clinic[1] = "Sala de Ortopedia//" room_descriptions.fracture_clinic[2] = "Os Pacientes que têm a desgraça de ter fraturas vêm aqui. O Removedor de Gesso usa poderosos lasers industriais para cortar os gessos mais duros, causando ao Paciente apenas uma pequena dor.//" room_descriptions.fracture_clinic[3] = "A Sala de Ortopedia requer uma Enfermeira. Também precisa de manutençäo de tempos em tempos. " room_descriptions.cardiogram[1] = "Cardiologia//" room_descriptions.cardiogram[2] = "Os Pacientes säo diagnosticados aqui antes de retornarem ao Consultório de Clínica Geral para receber tratamento.//" room_descriptions.cardiogram[3] = "A Cardiologia requer um Médico. Também precisa de manutençäo. " room_descriptions.decontamination[1] = "Descontaminaçäo//" room_descriptions.decontamination[2] = "Os Pacientes que estiveram expostos à radiaçäo säo enviados rapidamente à Sala de Descontaminaçäo. Esta sala dispöe de uma ducha que os purifica de toda a horrível radioatividade e sujeira.//" room_descriptions.decontamination[3] = "A Ducha Descontaminadora requer um Médico. Ela também precisa de um Zelador que se ocupe da manutençäo. " room_descriptions.jelly_vat[1] = "Banho Gelatinoso//" room_descriptions.jelly_vat[2] = "Os Pacientes que sofrem da risível doença da Gelatinite devem ir a cambalear-se para a sala de Gelatinite e ser inundados no banheiro gelatinoso. Isto faz com que se curem de um modo que näo resulta de tudo compreensível para a profissäo médica.//" room_descriptions.jelly_vat[3] = "O Banho Gelatinoso requer um Médico. Também precisa de um Zelador para a sua manutençäo. " room_descriptions.gp[1] = "Consultório de Clínica Geral//" room_descriptions.gp[2] = "Esta é a sala mais importante do seu hospital. Os novos Pacientes säo enviados aqui para averiguar o que têm. Entäo, ou fazem outro diagnóstico ou säo encaminhados para uma sala onde possam ser curados. Possivelmente, você queira construir outro consultório se o primeiro tiver muito trabalho. Quanto maior for o consultório e quanto mais objetos colocar nele, maior prestígio terá o Médico. O mesmo acontece com todas as salas ocupadas.//" room_descriptions.gp[3] = "O Consultório de Clínica Geral requer um Médico. " room_descriptions.hair_restoration[1] = "Pêloterapia//" room_descriptions.hair_restoration[2] = "Os Pacientes que sofrem de Calvície seräo enviados ao Restaurador de Pêlo desta sala. Um Médico ligará o Restaurador de Pêlo, que rapidamente implantará ar puro na cabeça do Paciente.//" room_descriptions.hair_restoration[3] = "A Sala de Pêloterapia requer um Médico. Também precisa de manutençäo periódica. " room_descriptions.inflation[1] = "Inflatoterapia//" room_descriptions.inflation[2] = "Os pacientes que sofrem a dolorosa doença de terem a cabeça inflada devem ir à sala de inflatoterapia, será desinflada sua cabeça e em seguida vota a ser inflada à pressäo correta.//" room_descriptions.inflation[3] = "A Inflatoterapia requer um Médico. Também precisa de um Zelador para fazer a suas manutençäo. " room_descriptions.psych[1] = "Psiquiatria//" room_descriptions.psych[2] = "Os Pacientes diagnosticados com uma doença psiquiátrica devem ir à Psiquiatria para receber tratamento. Os psiquiatras também podem realizar diagnósticos para saber que tipo de doença os Pacientes sofrem e, se forem do tipo mental, podem tratá-los fazendo-os deitar em um divä.//" room_descriptions.psych[3] = "A Psiquiatria requer um Médico especializado em Psiquiatria. " room_descriptions.operating_theatre[1] = "Sala de Cirurgia//" room_descriptions.operating_theatre[2] = "Esta importante instalaçäo serve para curar um grande número de doenças. A Sala de Cirurgia deve ser espaçosa e estar bem equipada. É uma parte essencial do seu hospital.//" room_descriptions.operating_theatre[3] = "A Sala de Cirurgia requer dois Médicos especializados em cirurgia. " room_descriptions.no_room[1] = "" room_descriptions.x_ray[1] = "Sala de Raio-X//" room_descriptions.x_ray[2] = "A Sala de Raio-X utiliza radiaçäo especial para fotografar o interior do Paciente, ajudando a equipe a descobrir o que acontece.//" room_descriptions.x_ray[3] = "A Sala de Raio-X requer um Médico. Também precisa de manutençäo. " room_descriptions.tv_room[1] = "TV ROOM NOT USED" room_descriptions.staff_room[1] = "Sala de Descanso//" room_descriptions.staff_room[2] = "Os seus funcionários se cansam quando realizam o seu trabalho. Precisam desta sala para descansar e se refrescar. Os funcionários cansados säo mais lentos, pedem mais dinheiro e por fim väo embora. Também cometem mais erros. Vale a pena construir uma sala que tenham muitos passatempos. Assegure-se de que há lugar para vários funcionários ao mesmo tempo. " room_descriptions.slack_tongue[1] = "Laringologia//" room_descriptions.slack_tongue[2] = "Os Pacientes diagnosticados com Língua Comprida no Consultório de Clínica Geral seräo enviados aqui para receber tratamento. O Médico utilizará uma máquina de alta tecnologia para esticar a língua e cortá-la, assim o Paciente ficará curado.//" room_descriptions.slack_tongue[3] = "A Sala de Laringologia requer um Médico. Também precisa de manutençäo de tempos em tempos. " room_descriptions.dna_fixer[1] = "Clínica de DNA//" room_descriptions.dna_fixer[2] = "Os Pacientes que foram manipulados por alienígenas devem ter seu DNA substituído nesta sala. O Reparador de DNA é uma máquina complexa e seria sensato ter um extintor na sala, só por garantia.//" room_descriptions.dna_fixer[3] = "O Reparador de DNA requer que um Zelador o revise de vez em quando. Também requer um Médico especializado em pesquisa para poder usá-lo. " room_descriptions.training[1] = "Sala de Treinamento//" room_descriptions.training[2] = "Os residentes e Médicos podem obter uma valiosa qualificaçäo extra aprendendo nesta sala. Um Consultor com habilidades em Cirurgia, Pesquisa ou Psiquiatria transmitirá essas habilidades a qualquer Médico em treinamento. Os Médicos que já possuem essas especialidades veräo sua habilidade aumentar enquanto estäo aqui.//" room_descriptions.training[3] = "A Sala de Treinamento requer um Consultor. " room_descriptions.toilets[1] = "Banheiro//" room_descriptions.toilets[2] = "Os Pacientes estäo sentindo o chamado da natureza e precisam se aliviar no conforto das suas instalaçöes de banheiro. Você pode construir mais banheiros e pias se esperar muitos visitantes. Em alguns casos, terá que colocar mais banheiros em outras partes do hospital. " room_descriptions.ultrascan[1] = "Ultra Scanner//" room_descriptions.ultrascan[2] = "O Ultra Scanner é, virtualmente, o mais avançado em equipamentos de diagnóstico. Tem um preço alto, mas vale a pena se você quiser que o seu hospital realize diagnósticos excelentes.//" room_descriptions.ultrascan[3] = "O Ultra Scanner requer um Médico. Também precisa de manutençäo. " room_descriptions.pharmacy[1] = "Farmácia//" room_descriptions.pharmacy[2] = "Os Pacientes diagnosticados que devem tomar um medicamento precisam visitar a farmácia para obtê-lo. Quanto mais remédios forem descobertos e estiverem disponíveis, mais concorrida estará a Farmácia. Possivelmente, você queira construir outra Farmácia mais para frente.//" room_descriptions.pharmacy[3] = "A Farmácia requer uma Enfermeira. " room_descriptions.research[1] = "Centro de Pesquisa//" room_descriptions.research[2] = "No Centro de Pesquisa, novos remédios e curas säo inventados ou melhorados. É uma parte essencial do seu hospital e fará maravilhas para elevar sua porcentagem de curas.//" room_descriptions.research[3] = "O Centro de Pesquisa requer um Médico especializado em Pesquisa. " room_descriptions.general_diag[1] = "Diagnóstico Geral//" room_descriptions.general_diag[2] = "Aqui säo examinados os Pacientes que precisam de outro diagnóstico. Se um Consultório de Clínica Geral näo descobrir seus problemas, o Diagnóstico Geral normalmente consegue. Em seguida, os Pacientes säo enviados novamente para a consulta para analisar os resultados obtidos aqui.//" room_descriptions.general_diag[3] = "A Sala de Diagnóstico Geral requer um Médico. " room_descriptions.scanner[1] = "Scanner//" room_descriptions.scanner[2] = "Os Pacientes säo diagnosticados com precisäo utilizando um sofisticado Scanner. Em seguida, väo para o Consultório de Clínica Geral para que o Médico veja o tratamento posterior.//" room_descriptions.scanner[3] = "O Scanner requer um Médico. Também precisa de manutençäo. " room_descriptions.electrolysis[1] = "Eletrólise//" room_descriptions.electrolysis[2] = "Os Pacientes com Peludismo säo enviados para esta sala, onde uma máquina especial de Eletrólise elimina os pelos e fecha os poros com eletricidade empregando um composto parecido ao cal.//" room_descriptions.electrolysis[3] = "A Sala de Eletrólise requer um Médico. Também precisa que um Zelador faça a sua manutençäo. " staff_list.skill = "NIVEL" staff_list.morale = "MORAL" staff_list.tiredness = "CANSAÇO" staff_list.total_wages = "SALARIOS TOTAIS" menu_file_load[1] = " JOGO 1 " menu_file_load[2] = " JOGO 2 " menu_file_load[3] = " JOGO 3 " menu_file_load[4] = " JOGO 4 " menu_file_load[5] = " JOGO 5 " menu_file_load[6] = " JOGO 6 " menu_file_load[7] = " JOGO 7 " menu_file_load[8] = " JOGO 8 " CorsixTH-0.70.0/CorsixTH/Lua/languages/czech.lua000066400000000000000000006173461522247547500213300ustar00rootroot00000000000000--[[ Copyright (c) 2011, 2012 , 2021-2026 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("unicode") Language("Čeština", "Czech", "cs", "cze", "cz") Inherit("English") IsArabicNumerals(true) high_score = { player = "HR�Č", pos = "POZ", best_scores = "S�Ň SL�VY", killed = "Zabil", categories = { salary = "NEJVYŠŠ� V�PLATA", total_value = "CELKOV� HODNOTA", money = "NEJBOHATŠ�", clean = "ČISTOTA", cures = "POČET VYLÉČEN�CH", patient_happiness = "SPOKOJENOST PACIENTŮ", deaths = "POČET ÚMRT�", cure_death_ratio = "POMĚR VYLÉČEN�-ÚMRT�", staff_happiness = "SPOKOJENOST ZAMĚSTNANCŮ", visitors = "POČET N�VŠTĚVN�KŮ", staff_number = "POČET ZAMĚSTNANCŮ", }, worst_scores = "S�Ň HANBY", score = "SKÓRE", } menu_display = { shadows = " ST�NY ", mcga_lo_res = " MCGA N�ZKÉ ROZ ", high_res = " VYSOKÉ ROZ ", } hotkeys_file_err = { file_err_01 = "Nepovedlo se na�íst soubor hotkeys.txt. Ověřte prosím, že CorsixTH má právo �íst/zapisovat soubor ", file_err_02 = ", nebo použijte v příkazovém řádku parametr --hotkeys-file=filename se jménem souboru. Popis chyby: ", } rooms_long = { dna_fixer = "Genex 2000", --[[Original translation of Theme Hospital named it the same way, both the room and the machine.--]] psychiatric = "Psychiatrie", corridors = "Chodby", gps_office = "Kancelář Praktického Lékaře", general = "Všeobecné", emergency = "Pohotovost", general_diag = "Vyšetřovna", hair_restoration = "Sáze� Vlasů", scanner = "Skener", research_room = "Výzkumná Laboratoř", cardiogram = "Kardiogram", toilets = "Toalety", decontamination = "Oddělení Dekontaminace", staffroom = "Místnost pro Zaměstnance", ward = "Lůžkové Oddělení", jelly_vat = "Klinika Slizu", x_ray = "Rentgen", inflation = "Hustírna", ultrascan = "Ultraskener", blood_machine = "Hemogram", tongue_clinic = "Oddělení Ochablého Jazyka", fracture_clinic = "Ortopedie", training_room = "U�ebna", electrolysis = "Oddělení Elektrolýzy", pharmacy = "Lékárna", operating_theatre = "Opera�ní Sál", } menu_file_load = { [1] = " HRA 1 ", [2] = " HRA 2 ", [3] = " HRA 3 ", [4] = " HRA 4 ", [5] = " HRA 5 ", [6] = " HRA 6 ", [7] = " HRA 7 ", [8] = " HRA 8 ", } cheats_window = { warning = "Varování: Pokud budete podvádět, nedostanete na konci úrovně žádné bonusové body!", caption = "Cheaty", cheated = { no = "Cheaty použity: Ne", yes = "Cheaty použity: Ano", }, close = "Zavřít", cheats = { lose_level = "Prohrát úroveň", emergency = "Vytvořit havárii", end_year = "Konec roku", money = "Peníze", win_level = "Vyhrát úroveň", earthquake = "Vytvořit zemětřesení", all_research = "Všechen výzkum", create_patient = "Vytvořit pacienta", end_month = "Konec měsíce", vip = "Vytvořit VIP", epidemic = "Vytvořit nakažlivého pacienta", toggle_infected = "Vypnout/zapnout ikony nakažení", increase_prices = "Zvýšit ceny", decrease_prices = "Snížit ceny", toggle_earthquake = "Vypnout/zapnout zemětřesení", max_reputation = "Max reputace", toggle_epidemic = "Vypnout/zapnout epidemie", show_infected = "Ukázat/Skrýt ikony nakažení", reset_death_count = "Resetovat po�et úmrtí", repair_all_machines = "Opravit všechny stroje", toggle_invulnerable_machines = "Přepnout nezni�itelné stroje", }, } menu_file_save = { [1] = " HRA 1 ", [2] = " HRA 2 ", [3] = " HRA 3 ", [4] = " HRA 4 ", [5] = " HRA 5 ", [6] = " HRA 6 ", [7] = " HRA 7 ", [8] = " HRA 8 ", } level_names = { [1] = "Filutov", [2] = "Ospalá Díra", [3] = "Velkovice", [4] = "Mokrovousy pod Mořem", [5] = "Prosťá�kov", [6] = "Hnojnice", [7] = "Zelené Kaluže", [8] = "Lidový Čunín", [9] = "Východní Polipsy", [10] = "Vejcošunky", [11] = "Skřehotálkov", [12] = "Tlustice", [13] = "Telecí", [14] = "Malé Udeřice", [15] = "Krchov-Zemřelov", } custom_game_window = { free_build = "Volné stavění", caption = "Vlastní Hra", load_selected_level = "Spustit", } menu_debug_overlay = { positions = " POZICE ", parcel = " PARCELA ", byte_6 = " BAJT 6 ", byte_floor = " BAJT PODLAHY ", none = " NIC ", flags = " VLAJKY ", byte_0_1 = " BAJT 0 a 1 ", byte_n_wall = " BAJT S ZDI ", byte_w_wall = " BAJT Z ZDI ", byte_5 = " BAJT 5 ", byte_7 = " BAJT 7 ", heat = " TEPLOTA ", } newspaper = { [1] = { [1] = "HOROR DR. ŠOKA", [2] = "LÉKAŘ SI HRAJE NA BOHA", [3] = "ŠOK ŠPR�MOŠTAINA", [4] = "CO SE SKR�VALO V LABORATOŘI?", [5] = "RAZIE ZASTAVILA NEETICK� V�ZKUM", }, [2] = { [1] = "DOKTOR POD PAROU", [2] = "CHOCHOLOUŠEK A VODKY DOUŠEK", [3] = "PROMILÉKAŘ", [4] = "CHIRURGICK� N�SOSKA", [5] = "DOKTOR SKRUŽN� V AKCI", [6] = "LOK-LOK�LN� ANESTEZIE", }, [3] = { [1] = "NADSTANDARDN� PROHL�DKA", [2] = "DOKTOR ŠUPHOTAM", [3] = "ODHALUJ�C� VYŠETŘEN�", [4] = "CHIRURGOVY CHOUTKY", }, [4] = { [1] = "LÉKAŘ OPERUJE S FONDY", [2] = "ORG�N-IZOVAN� ZLOČIN", [3] = "OPERACE DAŇOVÉ OPTIMALIZACE", [4] = "ODDĚLEN� KREATIVN�HO ÚČETNICTV�", }, [5] = { [1] = "NEETICK� PATOLOGICK� V�ZKUM", [2] = "DOKTOR KROTITEL DUCHŮ", [3] = "PRIM�Ř POHROBEK", [4] = "DEN ZÚČTOV�N� DR. SMRTKY", [5] = "V�ZKUM IN MEMORIAM", [6] = "DOKTOROVO NALEZIŠTĚ ODHALENO", }, [6] = { [1] = "DOKTOROVA TAJN� DOHODA!", [2] = "POCHYBN� MASTIČK�Ř", [3] = "CHIRURG ŠARLAT�N", [4] = "DOKTOR KAZISVĚT", [5] = "PRIM�Ř SAMOUK", }, [7] = { [1] = "DOKTOR NEM� CO DĚLAT", [2] = "CHIRURG 'OPERUJE' S�M SEBE", [3] = "RUČN� PR�CE NA WC", [4] = "DOKTORŮV SKAND�L UCHOPEN", [5] = "MEDIK DĚL� BORDEL", }, } months = { [1] = "Led", [2] = "Úno", [3] = "Bře", [4] = "Dub", [5] = "Kvě", [6] = "Čer", [7] = "Čvc", [8] = "Srp", [9] = "Zář", [10] = "Říj", [11] = "Lis", [12] = "Pro", } dynamic_info = { object = { strength = "Síla %d", queue_size = "Velikost fronty %d", times_used = "Použito %d krát", queue_expected = "O�ekávaná fronta %d", strength_extra_info = "Výdrž %d (Vyzkoumatelná až %d)", }, patient = { diagnosed = "Diagnóza: %s ", diagnosis_progress = "Průběh vyšetření", guessed_diagnosis = "Odhadnutá diagnóza: %s ", actions = { no_diagnoses_available = "Nemáte pro mě žádné další diagnózy - Jdu domů!", no_gp_available = "Čekám, až postavíte Kancelář Praktického Lékaře", cured = "Vylé�en!", waiting_for_treatment_rooms = "Čekám, až pro mě vybudujete místnost k lé�ení", fed_up = "Jsem naštvaný a odcházím", prices_too_high = "Vaše ceny jsou příliš vysoké - Jdu domů", on_my_way_to = "Mířím do %s", sent_home = "Poslán domů", dying = "Umírá!", no_treatment_available = "Není pro mě lé�ba - Jdu domů", epidemic_contagious = "Jsem nakažlivý", waiting_for_diagnosis_rooms = "Čekám, až postavíte další diagnostická oddělení", queueing_for = "Ve frontě na %s", awaiting_decision = "Čekám na vaše rozhodnutí", sent_to_other_hospital = "Odkázán jinam", epidemic_sent_home = "Poslán domů Inspektorem", epidemic_vaccinated = "Již nejsem nakažlivý", }, emergency = "Havárie: %s", }, staff = { psychiatrist_abbrev = "Psych.", tiredness = "Únava", actions = { heading_for = "Mířím do %s", fired = "Propuštěn", wandering = "Jen se tak poflakuji", waiting_for_patient = "Čekám na pacienta", going_to_repair = "Jdu opravit %s", vaccine = "O�kuji pacienta", }, ability = "Schopnosti", }, vip = "VIP Návštěvník", health_inspector = "Hygienický Inspektor", } calls_dispatcher = { summary = "%d volání; %d přiřazeno", watering = "Zalévám na %d,%d", repair = "Opravuji %s", staff = "%s - %s", close = "Zavřít", } town_map = { number = "Číslo pozemku", area = "Oblast pozemku", not_for_sale = "Nelze vlastnit", owner = "Vlastník pozemku", chat = "Podrobnosti města", for_sale = "Na prodej", price = "Cena pozemku", } confirmation = { replace_machine = "Opravdu chcete nahradit %s za %d$?", music_warning = "Před zvolením hudby ve formátu mp3 se ujistěte, že máte dostupný soubor smpeg.dll (nebo podobný pro vás opera�ní systém), jinak ve hře nebudete mít žádnou hudbu. Opravdu chcete pokra�ovat?", abort_edit_room = "Právě stavíte nebo upravujete místnost. Pokud jsou všechny povinné objekty umístěny, bude dokon�ena, ale jinak bude smazána. Pokra�ovat?", quit = "Opravdu chcete odejít ze hry?", needs_restart = "Změna tohoto nastavení vyžaduje restart CorsixTH. Jakýkoli neuložený postup bude ztracen. Opravdu to chcete udělat?", delete_room = "Opravdu chcete tuto místnost smazat?", sack_staff = "Opravdu chcete tohoto zaměstnance propustit?", restart_level = "Opravdu chcete tuto úroveň restartovat?", overwrite_save = "Na této pozici je již uložena jiná hra. Chcete ji přepsat?", return_to_blueprint = "Opravdu se chcete vrátit k režimu Návrhu?", maximum_screen_size = "Velikost obrazovky, kterou jste zadali, je vyšší než 3000 x 2000. Na tato rozlišení lze přejít za předpokladu, že máte hardware schopný tuto hru udržet v hratelné rychlosti. Opravdu chcete pokra�ovat?", remove_destroyed_room = "Opravdu chcete odstranit místnost? Bude to stát $%d.", very_old_save = "Tuto hru jste hráli ve starší verzi a několik věcí se změnilo. Chcete te� restartovat úroveň, aby vše opravdu správně fungovalo?//" .. "Vaše uložené hry nebudou smazány (dokud si je sami nepřepíšete).", restart_mapeditor = "Opravdu chcete restartovat editor map?", replace_machine_extra_info = "Výdrž nového stroje bude %d (nyní je %d).", quit_mapeditor = "Opravdu chcete odejít z editoru map?", } adviser = { goals = { win = { reputation = "Zlepšete vaši reputaci alespoň na %d ke splnění úrovně.", money = "Potřebujete vydělat alespoň %d ke splnění úrovně.", cure = "Vyle�te dalších %d pacientů pro splnění úrovně.", value = "Musíte zvýšit vaši hodnotu nemocnice alespoň na %d.", }, lose = { kill = "Zabijte dalších %d pacientů a prohrajete úroveň!", }, }, competitors = { staff_poached = "Jeden z vašich zaměstnanců byl ukraden jinou nemocnicí.", land_purchased = "%s právě koupil pozemek.", hospital_opened = "%s otevřel v oblasti konkuren�ní nemocnici.", }, information = { promotion_to_doctor = "Jeden z vašich REZIDENTŮ se stal DOKTOREM.", pay_rise = "Jeden z Vašich zaměstnanců hrozí výpovědí. Zvolte, zda s jejich požadavky souhlasíte, nebo zda je vykopnete. Klikněte na ikonu vlevo, abyste viděli, který zaměstnanec hrozí výpovědí.", handyman_adjust = "Údržbáři můžou uklízet lépe když jim zadáte priority.", emergency = "Je tu pohotovost! Pohyb! Pohyb! POHYB!", epidemic_health_inspector = "Zprávy o vaší epidemii se donesly na Ministerstvo zdravotnictví. Připravte se na návštěvu Inspektora.", fax_received = "Ikona, která vysko�ila vlevo dole na obrazovce, vás upozorňuje na důležitou informaci nebo rozhodnutí, které musíte udělat.", larger_rooms = "Větší místnosti dávají zaměstnancům pocit důležitosti a zlepšují jejich výkon.", first_cure = "Výborně! Právě jste vylé�ili vašeho prvního pacienta.", promotion_to_specialist = "Jeden z vašich doktorů se vyu�il na %s.", initial_general_advice = { psychiatric_symbol = "Doktoři kvalifikování v psychiatrických záležitostech mají symbol: |", research_symbol = "Doktoři schopní výzkumu mají symbol: }", surgeon_symbol = "Doktoři, kteří mohou operovat, mají symbol: {", epidemic_spreading = "Ve vaší nemocnici je nákaza. Musíte nakažené lidi vylé�it dříve než odejdou.", first_epidemic = "Ve vaší nemocnici je epidemie! Rozhodněte, zdali to chcete ututlat, nebo přiznáte barvu.", autopsy_available = "Auto-Pitevní stroj byl vynalezen. Tímto se můžete zbavit problémových a nevítaných pacientů a udělat na jejich zbytcích výzkum. Berte na vědomí, že použití tohoto stroje je vysoce kontroverzní.", first_VIP = "Chystáte se pořádat vaši první návštěvu VIP. Snažte se zajistit, aby VIP neviděl nic nehygienického nebo nepotkali nešťastné pacienty.", place_radiators = "Lidem ve vaší nemocnici je zima - můžete umístit více radiátorů tím, že je vyberete z menu Vybavit chodbu.", first_emergency = "Pacienti z pohotovosti mají nad svými hlavami majáky. Vyle�te je dříve než zemřou nebo než vám vyprší �as.", research_now_available = "Vybudovali jste vaši první Výzkumnou Laboratoř. Nyní můžete vstoupit do obrazovky Výzkumu.", taking_your_staff = "Někdo vám krade personál. Budete muset bojovat více, aby tu zůstali.", first_patients_thirsty = "Lidé mají ve vaší nemocnici žízeň. Automaty na nápoje by mohly pomoci.", machine_needs_repair = "Máte stroj, který potřebuje opravit. Najděte tento stroj - bude se z něj kouřit - a klikněte na něj. Pak klikněte na tla�ítko Přivolat Údržbáře.", decrease_heating = "Lidé se ve vaší nemocnici roztékají! Třeba je na �ase snížit teplotu vytápění v Plánu nemocnice.", increase_heating = "Lidem visí u nosů rampouchy. Možná byste mohl zvýšit teplotu vytápění v Plánu nemocnice.", rats_have_arrived = "Ve vaší nemocnici je více krys než pacientů. Zkuste pár krys svojí myší zastřelit.", }, place_windows = "Umístěním oken bude místnost jasnější a zlepší náladu vašich zaměstnanců.", patient_leaving_too_expensive = "Pacient odchází, aniž by zaplatil za %s. Je to pro něj příliš drahé.", vip_arrived = "Pozor! - %s právě přijel na obhlídku vaší nemocnice! Ujistěte se, že vše běží hladce, aby měl radost.", epidemic = "Ve vaší nemocnici máte nakažlivou chorobu. Musíte s tím okamžitě něco dělat!", first_death = "Právě jste zabili svého prvního pacienta. Jak se cítíte?", extra_items = "Dodate�né věci v místnostech vaše zaměstnance uklidňují a zlepšují jejich výkon.", promotion_to_consultant = "Jeden z Vašich DOKTORŮ se stal PRIM�ŘEM.", patient_abducted = "Jednoho z vašich pacientů unášejí mimozemšťané.", }, praise = { many_plants = "Jak milé. Máte spousty rostlin. Vaši pacienti to jistě ocení.", few_have_to_stand = "Jen málokdo musí ve vaší nemocnici stát. To pacienty potěší.", plenty_of_benches = "Je tu spousta míst k sezení. Gratuluji.", many_benches = "Pacienti te� mají dostatek míst k sezení. Bod pro vás.", plants_thriving = "Úžasné. Vaše rostliny přímo vzkvétají. Jen tak dál, třeba vyhrajete medaili.", plants_are_well = "Krása střídá nádheru. Umíte se postarat o vaše květiny.", patients_cured = "%d pacientů vylé�eno.", }, placement_info = { reception_can_place = "Zde můžete umístit recepci.", window_can_place = "Tady okno může klidně být. To by šlo.", door_can_place = "Sem se ty dveře mohou dát.", reception_cannot_place = "Sem recepci dát nemůžete.", object_can_place = "Zde můžete umístit tento objekt.", room_cannot_place = "Zde nemůžete tuto místnost postavit.", room_cannot_place_2 = "Tato místnost tady být nemůže.", window_cannot_place = "Aha. Sem se okno dát nedá.", staff_cannot_place = "Zde nemůžete položit zaměstnance. Položte ho jinam.", staff_can_place = "Zde můžete zaměstnance položit. ", door_cannot_place = "Bohužel, tady se dveře nevejdou.", object_cannot_place = "Tuto věc sem dát nemůžete.", }, surgery_requirements = { need_surgeons_ward_op = "Musíte postavit Lůžkové Oddělení, Opera�ní Sál a mít alespoň dva Chirurgy k provedení operace.", need_surgeon_ward = "Stále potřebujete zaměstnat dalšího Chirurga nebo postavit Lůžkové Oddělení, abyste mohli provádět Operace.", }, build_advice = { placing_object_blocks_door = "Umístěním tohoto objektu zde by lidé neprošli ke dveřím.", door_not_reachable = "Lidé by se ke dveřím nedostali. To je možná problém, že?", blueprint_would_block = "Taková místnost by zablokovala místnosti okolo. Změňte její velikost nebo ji přesuňte jinam!", blueprint_invalid = "Takový návrh místnosti není platný.", }, multiplayer = { poaching = { not_interested = "Ha! Nemají zájem pro Vás pracovat - jsou spokojeni tam, kde jsou.", already_poached_by_someone = "To snad ne! Někdo se snaží tuto osobu ukrást.", in_progress = "Dám vám vědět, zdali tato osoba bude chtít pracovat pro vás.", }, everyone_failed = "Nikdo nedokázal splnit poslední úkol. Takže všichni hrají dál!", players_failed = "Následující hrá�(i) nedokázal(i) splnit poslední úkol: ", objective_completed = "Splnil jste cíl. Můžeme vám zatleskat!", objective_failed = "Nesplnil jste cíl. Potlesk ne�ekejte.", }, staff_place_advice = { only_doctors_in_room = "Pouze Doktoři mohou pracovat v %s.", only_nurses_in_room = "Pouze Sestry mohou pracovat v %s.", receptionists_only_at_desk = "Recep�ní mohou pracovat pouze na Recepci.", nurses_cannot_work_in_room = "Sestry nemohou pracovat v %s.", only_researchers = "Doktoři mohou zkoumat ve Výzkumné Laboratoři pouze pokud jsou kvalifikovaní Výzkumníci.", only_surgeons = "Doktoři mohou operovat na Opera�ním Sále pouze pokud jsou kvalifikovaní Chirurgové.", only_psychiatrists = "Doktoři mohou pracovat na Psychiatrii pouze pokud jsou kvalifikovaní Psychiatři.", doctors_cannot_work_in_room = "Doktoři nemohou pracovat v %s.", not_enough_lecture_chairs = "Každý žák potřebuje svoji vlastní U�ební lavici, aby si měl kam sednout.", }, tutorial = { start_tutorial = "Pře�těte si Úvod do Mise, pak klikněte levým tla�ítkem myši ke spuštění výuky.", room_too_small_and_invalid = "Návrh místnosti je příliš malý nebo na špatném místě. Zkuste to znovu.", place_receptionist = "Přesuňte Recep�ní a umístěte ji kamkoliv. Za odměnu dojde ke svému stolu.", next_receptionist = "Toto je první Recep�ní v seznamu. Klikněte levým tla�ítkem na blikající ikonku k zobrazení další dostupné.", build_reception = "Hezký den! Není �asu nazbyt. Za�něte tím, že postavíte Recepci. Kupte jednu v menu Vybavit chodbu.", accept_purchase = "Klikněte levým tla�ítkem, abyste ji zakoupili.", window_in_invalid_position = "Sem okno umístit nejde. Bu�te té lásky a umístěte jej jinam.", order_one_reception = "Klikněte jednou na blikající řádek levým tla�ítkem myši k objednání jedné Recepce.", place_door = "Pohybujte myší okolo zdí návrhu, abyste umístili dveře tam, kam je chcete.", object_in_invalid_position = "Tento objekt zde nemůže být. Prosím, bu� jej umístěte někam jinam, nebo jej oto�te tak, aby se sem vešel.", click_and_drag_to_build = "Pro vybudování Kanceláře Praktického Lékaře si nejdříve musíte promyslet, jak bude velká. Klikněte a držte levé tla�ítko pro změnu velikosti.", doctor_in_invalid_position = "Tak to ne! Sem Doktora dát nemůžete.", build_gps_office = "Abyste mohli za�ít vyšetřovat nemoci pacientů, musíte postavit Kancelář Praktického Lékaře.", prev_receptionist = "Klikněte levým tla�ítkem na blikající ikonu k zobrazení předešlé Recep�ní.", door_in_invalid_position = "Aaaa! Sem dveře umístit nemůžete. Zkuste to někde jinde na zdech návrhu.", room_big_enough = "Návrh místnosti je nyní dostate�ně velký. To tla�ítko myši už můžete pustit. Stále můžete návrh místnosti přemisťovat i měnit jeho velikost.", select_receptionists = "Klikněte levým tla�ítkem na blikající ikonu pro zobrazení dostupných Recep�ních. To �íslo na ikoně ozna�uje, z kolika uchaze�ek máte na výběr.", hire_doctor = "Potřebujete Doktora, který bude vyšetřovat a lé�it nemocné lidi.", place_doctor = "Umístěte Doktora kdekoliv v nemocnici. Jakmile ho bude někdo potřebovat, vyrazí tam sám.", choose_doctor = "Dobře se podívejte na dovednosti každého Doktora, než si vyberete svého nového zaměstnance.", click_gps_office = "Klikněte levým tla�ítkem na řádek pro vybrání Kanceláře Praktického Lékaře.", choose_receptionist = "Vyberte si, která Recep�ní má dobré vlastnosti a chce přijatelný plat. Pak klikněte levým tla�ítkem na blikající ikonu, abyste ji zaměstnali.", hire_receptionist = "Budete také potřebovat Recep�ní, aby pacienty správně nasměrovala.", reception_invalid_position = "Recepce je zašedivělá, protože je v neplatné pozici. Zkuste ji posunout nebo oto�it.", rotate_and_place_reception = "Klikněte pravým tla�ítkem myši k oto�ení Recepce a umístěte ji ve vaší nemocnici levým tla�ítkem myši.", place_windows = "Okna umístěte stejným způsobem jako dveře. Okna sice nepotřebujete, ale vaši zaměstnanci jsou šťastnější, když se mají z �eho koukat ven. (Někteří ocení i když se na ně bude koukat někdo cizí.)", room_too_small = "Tento návrh místnosti je �ervený, protože je moc malý. Roztáhněte ho více, aby byl větší.", build_pharmacy = "Blahopřeji! Nyní vybudujte Lékárnu a zaměstnejte Sestru, abyste zprovoznili fungující nemocnici.", room_in_invalid_position = "Jejda! Tento návrh je neplatný - �ervené oblasti ozna�ují, kde se překrývá s jinou místností nebo zdmi nemocnice.", select_doctors = "Klikněte levým tla�ítkem na blikající ikonu, abyste se podívali na Doktory dostupné k zaměstnání.", place_objects = "Pravým tla�ítkem otá�íte položky místnosti a levým tla�ítkem je umisťujete.", receptionist_invalid_position = "Sem nemůžete Recep�ní položit.", select_diagnosis_rooms = "Klikněte levým tla�ítkem na blikající ikonu pro zobrazení seznamu dostupných diagnostických místností.", information_window = "Ráme�ek Nápovědy vám říká vše o té hezké kanceláři, kterou jste právě vybudovali.", confirm_room = "Klikněte levým tla�ítkem na blikající ikonu pro dokon�ení místnosti, nebo klikněte na ikonku X, abyste se vrátili k umístění dveří a oken.", }, room_requirements = { op_need_two_surgeons = "Zaměstnejte dva Chirurgy k provádění operací na Opera�ním Sále.", op_need_ward = "Musíte vybudovat Lůžkové Oddělení k vyšetření pacientů před operací.", research_room_need_researcher = "K použití Výzkumné Laboratoře musíte zaměstnat Doktora s kvalifikací Výzkumníka.", training_room_need_consultant = "Musíte zaměstnat Primáře, který bude v U�ebně u�it.", pharmacy_need_nurse = "Pro tuto Lékárnu musíte zaměstnat Sestru.", reception_need_receptionist = "Musíte zaměstnat Recep�ní, jinak vám pacienti nepřestanou bloudit.", op_need_another_surgeon = "Stále musíte ještě zaměstnat jednoho Chirurga, abyste mohli lé�it na Opera�ním Sále.", psychiatry_need_psychiatrist = "Když jste nyní postavili Psychiatrii, musíte také zaměstnat Psychiatra.", ward_need_nurse = "Pro toto Lůžkové Oddělení musíte zaměstnat Sestru.", gps_office_need_doctor = "Potřebujete zaměstnat Doktora, aby v této Kanceláři pracoval.", }, research = { new_available = "Nový %s je dostupný.", drug_fully_researched = "%s jste vyzkoumali na 100 %.", new_drug_researched = "Byl vynalezen nový lék pro lé�bu %s.", drug_improved = "Lék na %s byl vylepšen vaší Výzkumnou Laboratoří.", autopsy_discovered_rep_loss = "Váš Auto-pitevní stroj byl odhalen. Za to vás veřejnost nepochválí!", new_machine_researched = "Povedlo se vynalézt zbrusu novou věc - %s.", machine_improved = "%s byl vylepšen vaší Výzkumnou Laboratoří.", drug_improved_1 = "Lék %s byl vylepšen vaší Výzkumnou Laboratoří." }, cheats = { th_cheat = "Blahopřejeme, právě jste odemkli cheaty!", roujin_off_cheat = "Roujinova výzva deaktivována.", roujin_on_cheat = "Roujinova výzva aktivována! Hodně štěstí...", norest_off_cheat = "Už bylo na �ase! Snad te� bude větší klid. Zaměstnanci opět budou odpo�ívat jako obvykle.", norest_on_cheat = "Ale ne! Vaši zaměstnanci objevili skládku kávy a kratomu a nepotřebují žádný odpo�inek.", queuejump_off_cheat = "Lidé jsou zase sobci a nedovolí ani pacientům před smrtí je předběhnout ve frontě.", queuejump_on_cheat = "Pacienti v nemocnici jsou ohleduplní a pouští umírající pacienty před sebe.", superdoctor_off_cheat = "Nejlepší lékařská fakulta v okolí už tuto nemocnici svým absolventům nedoporu�uje.", superdoctor_on_cheat = "Nejlepší lékařská fakulta v okolí doporu�uje tuto nemocnici svým absolventům. Je na �ase najmout nové lékaře.", }, room_forbidden_non_reachable_parts = "Umístění místnosti zde by zapří�inilo, že �ásti nemocnice by byly nedostupné.", level_progress = { improve_reputation = "Potřebujete svoji reputaci zlepšit alespoň o %d, abyste vůbec měli šanci tuto úroveň vyhrát.", three_quarters_lost = "Jste na třech �tvrtinách cesty k prohře v této úrovni.", another_patient_cured = "Výborně – další pacient vylé�en. To už máme %d vylé�ených.", three_quarters_won = "Jste na třech �tvrtinách cesty k výhře této úrovně.", nearly_lost = "Dostáváte se velmi blízko k prohře této úrovně.", halfway_won = "Jste tak na půli cesty k výhře v této úrovni.", another_patient_killed = "Ale ne! Zabili jste dalšího pacienta. To už je %d úmrtí.", dont_kill_more_patients = "Jste nemocnice, ne pohřebiště! Pokuste se nikoho už nezabít.", reputation_good_enough = "Krásně, vaše reputace je dost vysoká na výhru této úrovně. Udržujte ji nad %d a vyřešte všechny požadavky, abyste mohli postoupit.", nearly_won = "Výhra této úrovně je vám na dosah.", hospital_value_enough = "Udržte hodnotu své nemocnice nad %d a věnujte se dalším požadavkům k výhře úrovně.", close_to_win_increase_value = "Dostáváte se velmi blízko k výhře. Zvyšte hodnotu Vaší nemocnice alespoň o %d.", cured_enough_patients = "Sice jste vylé�ili dostatek pacientů, ale musíte splnit ještě pár požadavků, abyste úroveň vyhráli.", financial_criteria_met = "Splnili jste finan�ní kritéria pro tuto úroveň. Nyní udržujte váš ú�et nad %d a zároveň se ujistěte, že vaše nemocnice dobře běží.", halfway_lost = "Jste na půli cesty k prohře v této úrovni.", }, warnings = { litter_catastrophy = "Situace s odpadky je bezútěšná. Ať na tom hned za�ne pracovat tým Údržbářů!", financial_trouble = "Jste ve vážných finan�ních potížích. Hned si udělejte pořádek v ú�etnictví! Pokud ztratíte dalších %d, tak zahodíte celou tuto úroveň!", need_toilets = "Pacienti potřebují toalety. Vybudujte je na snadno přístupném místě.", many_epidemics = "Vypadá to, že u vás propukla více než jedna epidemie najednou. To by mohla být obrovská katastrofa, takže s tím rychle něco dělejte.", need_staffroom = "Postavte Místnost pro Zaměstnance, aby si vaši zaměstnanci měli kde odpo�inout.", nobody_cured_last_month = "Minulý měsíc nebyl vůbec nikdo vylé�en. Víte, že jsme v nemocnici, že jo?", charges_too_high = "Vaše poplatky jsou vysoké. Sice budete mít krátkodobě vysoké příjmy, ale později se lidé raději zvednou a odejdou k levnější konkurenci.", patient_stuck = "Někdo zabloudil, ani recepce mu nepomohla. Zkuste nestavět labyrinty.", build_staffroom = "Okamžitě postavte Místnost pro Zaměstnance. Vaši zaměstnanci pracují příliš tvrdě a jsou na pokraji zhroucení. No tak - mějte rozum!", doctor_crazy_overwork = "Ale ne! Jeden z vašich Doktorů se kvůli přepracování zbláznil. Okamžitě mu dopřejte odpo�inek, než bude pozdě!", machinery_very_damaged = "Naléhavé! Řekněte vašemu Údržbáři, aby okamžitě opravil vaše stroje, jinak brzy vybuchnou!", nurses_tired2 = "Vaše Sestry jsou velmi unavené. Dopřejte jim chvilku odpo�inku.", patients_very_thirsty = "Pacienti trpí žízní. Pokud brzy neumístíte automaty na nápoje, budete �elit velkému odlivu pacientů do hospody vedle.", machinery_deteriorating = "Vaše stroje za�aly chátrat kvůli nadměrnému užívání. Hlídejte je, jinak je budete sbírat po kouscích.", machine_severely_damaged = "%s je velmi blízko k neopravitelné škodě.", people_have_to_stand = "Trpící lid musí stát. Popřemýšlejte nad magickým lékem na stání.", machinery_damaged2 = "Musíte brzy zaměstnat Údržbáře, aby opravil vaše stroje.", no_desk_3 = "Užíváte si klidu? Skoro rok a vy nemáte pracující recepci! Jak si myslíte, že vám sem budou chodit pacienti? Hned to vyřešte a přestaňte se flákat!", deal_with_epidemic_now = "Pokud se s touto epidemií brzo něco neprovede, budete až po uši v průšvihu. Tak pohyb!", too_many_plants = "Máte příliš mnoho květin. Jsme v nemocnici, ne v džungli.", cannot_afford = "S vaším ú�tem tuto osobu opravdu k práci u vás nepřesvěd�íte!", cannot_afford_2 = "To není drahé, jen vy nejste dost bohatí!", patients_thirsty = "Lidé za�ínají vysychat jako rozinky. Možná byste je mohl ovlažit několika automaty na nápoje.", machinery_slightly_damaged = "Vaše stroje v nemocnici jsou lehce poškozené. Udržujte je v kondici, než se stane neštěstí.", change_priorities_to_plants = "Musíte změnit priority vašich Údržbářů, jinak máte ze zeleně sušeň.", queue_too_long_send_doctor = "Vaše fronty v %s jsou delší než na banány. Ujistěte se, že v místnosti je doktor.", too_much_litter = "Máte problém s odpadky. Třeba by to mohli vyřešit Údržbáři.", place_plants_to_keep_people = "Lidé odchází. Umístěním kyti�ek je můžete přesvěd�it, aby zůstali.", research_screen_open_1 = "Předtím, než můžete vstoupit na obrazovku Výzkumu, musíte postavit Výzkumnou Laboratoř.", researcher_needs_desk_1 = "Každý Výzkumník potřebuje pro práci svůj stůl.", researcher_needs_desk_2 = "Váš Výzkumník je potěšen vaší velkorysostí mu poskytnout přestávku při práci. Pokud jste zamýšleli, aby sou�asně pracovalo více výzkumníků, musíte každému pořídit vlastní stůl pro práci.", researcher_needs_desk_3 = "Dva Výzkumníky k jednomu stolu nenatla�íte.", nurse_needs_desk_1 = "Každá Sestra potřebuje pro svoji práci vlastní stůl.", nurse_needs_desk_2 = "Vaše Sestra je přímo nadšená množstvím volna, které ji poskytujete. Pokud jste měli v úmyslu její za�lenění do pracovního procesu, možná by se hodilo dát každé stůl, u kterého mohou pracovat.", research_screen_open_2 = "Výzkum je v sou�asné úrovni zakázán.", no_desk_1 = "Pokud chcete, aby lidé do vaší nemocnice chodili, budete muset najmout Recep�ní a postavit jí Recepci, kde může pracovat!", queue_too_long_at_reception = "Máte příliš mnoho pacientů �ekajících na Recepci. Napadlo vás postavit další Recepci a zaměstnat k ní Recep�ní?", machines_falling_apart = "Vaše stroje se za�ínají rozpadat. Okamžitě k nim pošlete Údržbáře s izolepou!", patients_too_hot = "Pacientům za�íná být velké horko. Bu� nějaké radiátory odstraňte, snižte teplotu nebo umístěte více automatů na nápoje.", staff_tired = "Vaši zaměstnanci za�ínají být pěkně unavení. Pokud je nenecháte trochu si odpo�inout v Místnosti pro Zaměstnance, někteří pod tlakem zešílí.", cash_low_consider_loan = "Váš ú�et se blíží k absolutní nule. Přemýšleli jste o půj�ce?", patient_leaving = "Pacient odchází. Důvod? Vaše mizerně spravovaná, nepřívětivá a špatně vybavená nemocnice.", build_toilet_now = "Hned vybudujte toaletu, jinak to lidé nevydrží. Nesmějte se - jinak vás ten smích rychle přejde.", epidemic_getting_serious = "Ta Nakažlivá Choroba se stává vážnou. Musíte brzo něco udělat!", money_very_low_take_loan = "Výše vašeho ú�tu za chvilku klesne pod Mariánský příkop. Mohli byste si vzít půj�ku, víte?", more_benches = "Promyslete si umístění více lavi�ek. Nemocní lidé nenávidí, když musejí stát.", some_litter = "Více Údržbářů by mohlo stihnout uklidit dříve, než se tady z toho stane skládka.", patients_very_cold = "Pacienti se mění v kostky ledu. Zkuste zvýšit teplotu vytápění nebo umístěte více radiátorů ve vaší nemocnici.", receptionists_tired2 = "Vaše Recep�ní jsou velmi vy�erpané. Hned je nechte odpo�inout.", patients_getting_hot = "Pacienti se za�ínají vypařovat. Snižte teplotu vytápění nebo odstraňte některé radiátory.", people_did_it_on_the_floor = "Někteří pacienti to už nezvládli. Čištění bude pro někoho velká práce.", patients_really_thirsty = "Vaše nemocnice připomíná Saharu. Umístěte více automatů na nápoje nebo přemístěte existující blízko k největším frontám.", doctors_tired = "Vaši Doktoři téměř usínají při práci. Hned je nechte odpo�inout.", financial_trouble3 = "Vaše bankovní bilance vypadá lehce znepokojivě. Přemýšlejte, kde se dá něco přivydělat. Ke katastrofě vám zbývá jen %d.", handymen_tired2 = "Vaši Údržbáři jsou naprosto zni�ení. Dopřejte jim odpo�inek, nebo se rozsypou... a vaše stroje s nimi.", no_desk_2 = "Výborně, to musí být světový rekord: skoro rok a žádní pacienti! Pokud chcete pokra�ovat jako správce této nemocnice, budete muset najmout recep�ní a postavit recepci kde může pracovat!", patients_thirsty2 = "V nemocnici jsou lidé, ne kaktusy. Měli byste umístit další automaty na nápoje nebo existující přesunout blíže k lidem.", people_freezing = "Neuvěřitelné, i přes objev ohně a plynu někteří vaši pacienti mrznou zimou. Postavte radiátory, aby jim bylo tepleji, a zvyšte vytápění.", staff_too_hot = "Vaši zaměstnanci se přehřívají. Snižte teplotu nebo odstraňte radiátory z jejich místností.", staff_unhappy2 = "Vaši zaměstnanci jsou celkově nešťastní. To vás přijde na odměnách draho.", charges_too_low = "Ú�tujete si příliš málo. Sice to přinese více lidí do nemocnice, ale z nikoho nebudete mít moc velký výdělek.", staff_very_cold = "Zaměstnanci pomalu umrzají. Zvyšte teplotu vytápění nebo umístěte více radiátorů.", place_plants4 = "Utěšte pacienty pomocí více zeleně v prostředí.", nurses_tired = "Vaše Sestry jsou unavené. Dopřejte jim klidu.", bankruptcy_imminent = "Hej! Ještě chvilka a zbankrotujete! Není na �ase něco změnit?", handymen_tired = "Vaši Údržbáři jsou unavení. Pusťte je chvilku na gau�.", finanical_trouble2 = "Zaři�te, aby vám přicházely peníze, jinak budete švorc. Úroveň prohrajete, jestli přijdete o dalších %d.", desperate_need_for_watering = "Zoufale potřebujete zaměstnat Údržbáře, aby se staral o vaše rostliny.", machinery_damaged = "Hned opravte vaše stroje, jinak zanedlouho nebudete mít co opravovat.", many_killed = "Už jste zabili %d lidí. Víte, že jste nemocnice, a ne jatka?", litter_everywhere = "Všude jsou odpadky. Pošlete na tento problém hejno Údržbářů.", falling_3 = "Au, to muselo bolet, zavolejte někdo doktora!", no_patients_last_month = "Minulý měsíc nepřišli do vaší nemocnice žádní noví pacienti. Já jen, že bez nich nemocnice ztrácí význam.", receptionists_tired = "Vaše Recep�ní jsou vážně unavené. Nechte je také někdy vyklouznout zpoza recepcí.", falling_5 = "Toto není místo pro srážení lidí, přece víte, že jsou nemocní!", falling_2 = "Přestaňte si zahrávat, jak by se to líbilo vám?", falling_1 = "Hej! Tohle není sranda, dívejte se, kam s tou myší klikáte; mohli byste někoho zranit!", falling_6 = "Toto není kuželník, s nemocnými lidmi by se takto nemělo zacházet!", more_toilets = "Potřebujete více toalet. Jinak zanedlouho budete muset objednávat plenky. Nebo mopy.", falling_4 = "Tohle je nemocnice, ne Theme Park!", plants_thirsty = "Starejte se i o vaše rostliny. Nejsou umělé, potřebují nějakou vodu.", doctors_tired2 = "Vaši Doktoři jsou neuvěřitelně unavení. Potřebují okamžitý odpo�inek, jinak je ani polibek neprobudí.", staff_overworked = "Vaši zaměstnanci jsou strašně přepracovaní. Stávají se neschopnými a za�nou dělat katastrofické chyby.", patients_annoyed = "Lidé jsou strašně naštvaní na vaše vedení nemocnice. A já se jim nedivím. Vzpamatujte se, nebo �elte následkům!", hospital_is_rubbish = "Lidé otevřeně říkají, že vaše nemocnice je příšerná. Než se nadáte, vezmou si svoje nemoci jinam.", pay_back_loan = "Máte peněz jako šlupek. Skoro stojí za zvážení splatit svoje půj�ky.", plants_dying = "Vaše rostliny umírají. Voda je pro ně snad cizí slovo. Ať na tom pracuje více Údržbářů, pacienti klestí neocení.", patients_unhappy = "Pacienti nemají rádi vaši nemocnici. Měl byste něco udělat pro lepší prostředí.", queues_too_long = "Během �ekání ve frontě lze zkouknout celou Ulici. Co třeba postavit více místností?", place_plants2 = "Lidé prchají. Trochu více rostlin by je mohlo třeba udržet déle.", patients_leaving = "Pacienti odcházejí. Zlepšete nemocnici pro vaše návštěvníky umístěním rostlin, lavi�ek, automatů na nápoje a tak dále.", money_low = "Váš stav konta tiká na druhou stranu, než by měl!", reception_bottleneck = "Na Recepci je zácpa. Postavte další Recepci s Recep�ní.", no_desk = "Není pomalu �as vybudovat Recepci a najmout Recep�ní?", staff_unhappy = "Vaši zaměstnanci jsou nešťastní. Zkuste je uplatit prémiemi, nebo ještě lépe, postavte jim Místnost pro Zaměstnance. Také byste mohli změnit zásady odpo�inku vašich zaměstnanců na obrazovce Pravidla.", reduce_staff_rest_threshold = "Zkuste snížit práh Odpo�inku Zaměstnanců ve vaší obrazovce Pravidel tak, aby vaši zaměstnanci �astěji odpo�ívali. Jen taková rada.", place_plants3 = "Pacienti za�ínají být nešťastní. Umístěte více rostlin, abyste je utěšili.", build_toilets = "Hned te� vybudujte Toaletu nebo uvidíte něco velmi nepěkného. A představte si, jak vaše nemocnice bude smrdět.", no_desk_4 = "Recep�ní potřebuje svoji vlastní pracovní stanici, kde bude vítat pacienty při jejich příchodu.", no_desk_5 = "Pomalu je na �ase investovat do Recepce, za chvíli by vám měli za�ít chodit pacienti!", no_desk_6 = "Recep�ní máte, tak co kdybyste jí postavili recepci, kde by mohla za�ít pracovat?", no_desk_7 = "Recepci jste postavili, a te� jenom najmout Recep�ní. Bez ní se ve vaší nemocnici nevyznáte ani vy!", another_desk = "Musíte postavit Recepci pro svou novou Recep�ní.", low_prices = "Ú�tujete si málo za %s. Tím sice do nemocnice nalákáte hodně pacientů, ale moc z nich nevyděláte.", high_prices = "Za %s si ú�tujete moc vysokou �ástku. Sice zkásnete pacienty o více, ale oni budou rádi platit u konkurence méně.", patient_not_paying = "Pacient odešel bez zaplacení %s, protože je to prý moc drahé.", fair_prices = "Vaše �ástka za %s vypadá přijatelně a vyváženě.", no_doctor_no_gp_office = "Možná je na �ase postavit Kancelář Praktického Lékaře a někoho v ní i zaměstnat.", cannot_buy = "Tohoto si již více koupit nemůžete!", cannot_afford_machine = "Potřebujete alespoň $%1% na vašem ú�tu, abyste si mohli koupit novou %2%!", no_gp_office = "Trochu vám tu chybí Kancelář Praktického Lékaře, ve které mohou Doktoři diagnostikovat pacienty.", }, earthquake = { ended = "Uf. To skoro vypadalo na velký třesk. To byl %d stupeň Richterovy škály.", damage = "Toto zemětřesení poškodilo %d strojů a %d lidí v nemocnici.", alert = "Varování o zemětřesení. Během zemětřesení budou vaše stroje poškozeny. A pokud se o ně nestaráte, máte oslavu i s ohňostrojem.", }, staff_advice = { need_handyman_plants = "Budete muset zaměstnat Údržbáře, aby zaléval květiny.", need_doctors = "Potřebujete více Doktorů. Zkuste vaše nejlepší Doktory umístit do místností s dlouhými frontami.", need_handyman_litter = "Lidé za�ali dělat ve vaší nemocnici nepořádek. Zaměstnejte Údržbáře, aby po nich uklízel.", too_many_doctors = "Máte příliš mnoho Doktorů. Někteří v sou�asnosti nemají nic na práci.", need_handyman_machines = "Pokud budete chtít udržovat stroje ve vaší nemocnici, musíte zaměstnat Údržbáře.", need_nurses = "Musíte zaměstnat více Sester. Lůžková Oddělení a Lékárny potřebují Sestru.", too_many_nurses = "Myslím, že v sou�asnosti zaměstnáváte příliš mnoho Sester.", }, vomit_wave = { started = "Rozmohl se nám tady takový nešvar... Zvratková epidemie. Možná by pomohlo, kdybyste najal více Údržbářů, nemocnice poté nebude zatouchat.", ended = "Uf! Vypadá to, že jste tu pouklízeli. Lidem již není ze smrádku nevolno. Do budoucna udržujte vaši nemocnici �istou.", }, epidemic = { multiple_epidemies = "Vypadá to, že u vás propukla více než jedna epidemie najednou. To by mohla být obrovská katastrofa, takže s tím rychle něco dělejte.", serious_warning = "Ta Nakažlivá Choroba se stává vážnou. Musíte brzo něco udělat!", hurry_up = "Pokud s tou epidemií brzo něco neprovedete, budete až po uši v průšvihu. Tak pohyb!", }, boiler_issue = { resolved = "Dobré zprávy. Bojler a radiátory nyní opět správně fungují. Během chvilky budou lidé v nemocnici zase ve správném skupenství.", maximum_heat = "Bojler ve sklepě se zbláznil. Teplo radiátorů se zaseklo na maximu. Lidé za�ínají tát! Umístění více automatů na nápoje by pomohlo.", minimum_heat = "Ah, tady jste. Bojler ve sklepě je rozbitý. Slyšíte to drkotání zubů pacientů?", }, } staff_descriptions = { good = { [1] = "Výhodou je rychlost a pilnost. ", [2] = "Velká svědomitost. Detailista. ", [3] = "Má široký rozsah dovedností. ", [4] = "Přátelská povaha a třpytivý úsměv. ", [5] = "Úžasná výdrž. Prostě pořád jede. ", [6] = "Pozoruhodná slušnost, vlídné chování. ", [7] = "Neuvěřitelný talent a schopnosti. ", [8] = "Práci, kterou dělá, přikládá velký význam. ", [9] = "Punti�kář, který se prostě nevzdává. ", [10] = "Nadšeně a s úsměvem pomáhá lidem. ", [11] = "Pe�ující a nápomocný typ. ", [12] = "Silná motivace a oddanost práci. ", [13] = "Srdce na pravém místě. ", [14] = "Nemá předsudky, chce všem pomoct. ", [15] = "Jedná klidně a pohotově v nouzových situacích. ", }, bad = { [1] = "Šnek. Hádá se kvůli každé mali�kosti. ", [2] = "Lenoch bez motivace. ", [3] = "Ze školy si moc nepamatuje. Zapomíná. ", [4] = "Příliš vysoké ego. Leze lidem na nervy. ", [5] = "Hrozná výdrž - má špatný přístup. ", [6] = "Nedoslýchá. Je slabě cítit zelím. ", [7] = "Při práci je k ni�emu. Možná přítěž. ", [8] = "Dříve koná než přemýšlí. Neumí se soustředit. ", [9] = "Často ve stresu. Dost chybuje. ", [10] = "Výbuchy hněvu - žhne nenávistí. ", [11] = "Neopatrnost a �asté nehody. ", [12] = "Nezájem o práci. Líná veš. ", [13] = "Pošetile riskuje, prý na tom nezáleží. ", [14] = "Svému okolí �asto podkopává nohy. ", [15] = "Zosobnění arogance a nafoukanosti. ", }, misc = { [1] = "Sbírá figurky slonů. ", [2] = "Chodí se potápět. ", [3] = "Dělá sochy z ledu. ", [4] = "Vítěz jednoho dílu Neváhej a to�! ", [5] = "Jezdí v závodních autech. ", [6] = "Ská�e bungee-jumping. ", [7] = "Sbírá pivní tácky. ", [8] = "Ve volném �ase ská�e z pódií. ", [9] = "Nejraději surfuje pomocí prdění. ", [10] = "Užívá si rozšiřování řek. ", [11] = "Destiluje whisky. ", [12] = "Zkušenosti s kutilstvím. ", [13] = "Obdivuje hry Járy Cimrmana. ", [14] = "Hodně hraje Theme Park. ", [15] = "Má řidi�ák na nákla�ák. ", [16] = "Chodí závodit na motorkách. ", [17] = "Hraje na klasické housle a violoncello. ", [18] = "Vykrádá vraky vlaků. ", [19] = "Miluje psy. ", [20] = "Zpívá si ve sprše. ", [21] = "Často se koupe v kašně. ", [22] = "Vyu�uje práce s rafií. ", [23] = "Vydlabává zeleninu a používá ji jako držáky na mýdlo. ", [24] = "Zvláštní policejní detektiv na �áste�ný úvazek. ", [25] = "Zkušenost s moderováním kvízového pořadu. ", [26] = "Sbírá šrapnely z 2. světové války. ", [27] = "Přemisťuje nábytek. ", [28] = "Poslouchá rave a trip-hop. ", [29] = "Zbavuje se hmyzu deodorantem ve spreji. ", [30] = "Pokřikuje na špatné komiky. ", [31] = "Špehuje pro obecní úřad. ", [32] = "Tajně pe�uje o zahradu. ", [33] = "Pašuje falešné hodinky. ", [34] = "Zpívá v rock'n'rollové skupině. ", [35] = "Uctívá denní televizní vysílání. ", [36] = "Lechtá pstruhy. ", [37] = "Láká turisty v muzeu. ", }, } load_game_window = { caption = "Na�íst hru (%1%)", load_button = "Na�íst", } load_map_window = { caption = "Na�íst mapu (%1%)", load_button = "Na�íst", } menu_options_game_speed = { slowest = " (%1%) NEJPOMALEJŠ� ", slower = " (%1%) POMALEJŠ� ", pause = " (%1%) POZASTAVENO ", normal = " (%1%) NORM�LN� ", max_speed = " (%1%) MAX RYCHLOST ", and_then_some_more = " (%1%) A JEŠTĚ O TROCHU V�C ", } humanoid_name_starts = { [1] = "ZLA", [2] = "VYSO", [3] = "TO", [4] = "JESA", [5] = "BOŘI", [6] = "NEPRA", [7] = "RA", [8] = "PAVO", [9] = "PODE", [10] = "DARDA", [11] = "BA", [12] = "PRA", [13] = "ČLO", [14] = "DVĚ", [15] = "VLA", [16] = "MARU", [17] = "KRA", [18] = "RYBA", [19] = "VODA", [20] = "MILE", [21] = "MIKA", [22] = "NE", [23] = "BOHA", [24] = "SKORO", [25] = "BUKO", [26] = "HRO", [27] = "CUKA", [28] = "B�LO", [29] = "VLA", [30] = "BŘE", [31] = "PODI", [32] = "BRA", [33] = "KRALE", } humanoid_name_ends = { [1] = "K", [2] = "TOKNOT", [3] = "TAK", [4] = "MIK", [5] = "SNOB", [6] = "KOBKA", [7] = "TUNA", [8] = "SYN", [9] = "LAD", [10] = "PLOD", [11] = "STROM", [12] = "LOK", [13] = "ŠUNKA", [14] = "PR�H", [15] = "PRD", [16] = "PECH", [17] = "M�K", [18] = "KUNA", [19] = "VON", [20] = "MUŽ", [21] = "MĚLTO", [22] = "PILA", [23] = "VIC", [24] = "PAN", [25] = "NECH", [26] = "ČIN", } trophy_room = { rats_accuracy = { trophies = { [1] = "Je Vám udělen Pohár Syndicate Wars Přesnosti ve Střílení za to, že jste měli %d%% přesnost při střílení krys.", [2] = "Tento pohár připomíná Vaši neuvěřitelnou přesnost při zabití %d%% krys, na které jste ve Vaší nemocnici mířili v posledním roce.", [3] = "Na oslavu události Vašeho zabití %d%% všech krys ve Vaší nemocnici, je Vám udělen Pohár Dungeon Keeper Havěti Zbavený. Blahokrysujeme!", }, }, happy_staff = { regional_bad = { [1] = "Všichni Vaši zaměstnanci byli minulý rok velmi nešťastní. Měli jste si toho všimnout. Te� mají všechny ostatní nemocnice zaměstnance šťastnější než Vy.", }, awards = { [1] = "Vaši zaměstnanci Vám udělují tuto cenu. Říkají, že i když je vždy co zlepšovat, zacházíte s nimi nadmíru dobře.", [2] = "Vaši zaměstnanci pro Vás tak rádi pracují, že se nemůžou přestat usmívat. Jste výborný správce.", }, regional_good = { [1] = "Vaši zaměstnanci jsou šťastnější než v ostatních nemocnicích. Šťastní zaměstnanci jsou výděle�nější a přesnější. Ministerstvo je potěšeno.", }, penalty = { [1] = "Vaši zaměstnanci chtějí, aby se vědělo, že jsou velmi nešťastní. Přitom spokojenost zaměstnanců by měla být Vaší prioritou. Udělejte je šťastnějšími dříve, než je ztratíte.", }, trophies = { [1] = "Je Vám udělen Pohár Chechtáka za udržení radosti Vašich pracovitých zaměstnanců tak, jak to jen jde.", [2] = "Adami Institut Radosti Vás oceňuje za to, že jste ve Vaší nemocnici neměli minulý rok žádné nešťastné zaměstnance.", [3] = "Toto ocenění, Pohár Více Úsměvů, je Vám slavnostně udělen za to, že jste Vaše zaměstnance udrželi šťastné nad rámec Vašich povinností. Úsměvy všude kolem!", }, }, happy_patients = { penalty = { [1] = "Lidé přicházející do nemocnice mají otřesné zážitky. Pokud si chcete vysloužit respekt ministerstva, budete se muset snažit více.", [2] = "Lidé dostávající ve Vaší nemocnici lé�bu jsou velmi nespokojeni se stavem tohoto místa. Měli byste více myslet na blaho svých pacientů.", }, awards = { [1] = "Můžete se dmout pýchou nad tím, že lidé v předchozím roce byli ve Vaší nemocnici velmi šťastní.", [2] = "Lidé navštěvující Vaši nemocnici byli během jejich lé�by v šťastnější než v kterékoliv jiné nemocnici v okolí.", }, }, happy_vips = { trophies = { [1] = "Vyhráli jste Nobelovu cenu za dojem na VIP. Každý, kdo v minulém roce navštívil Vaši nemocnici, o ní pěl jen samou chválu.", [2] = "Agentura Slavných Lidí by Vám chtěla darovat Pohár Celebrity za potěšení těch, kteří navštívili Vaše zařízení. Považujte se za mírně slavného a skoro jednoho z nás.", [3] = "Blahopřejeme Vám k získání ocenění VIP Výlet za uleh�ení života těžce pracujících osobností v oku veřejnosti uspokojením těch, co Vaši nemocnici navštívili.", }, }, pop_percentage = { penalty = { [1] = "V poslední době se návštěvnost ve Vaší nemocnici blíží k nule. Bez pacientů těžko něco vyděláte.", [2] = "Zdejší obyvatelé raději navštěvují okolní nemocnice než tu Vaši. Měli byste se stydět a změnit to.", }, awards = { [1] = "Poznamenejte si, že za poslední rok se pacienti nej�astěji obraceli na Vaše služby. Výborně.", [2] = "Blahopřejeme. Vaši nemocnici navštěvuje vyšší podíl místní populace než kteroukoliv jinou.", [3] = "Úžasné. Do Vaší nemocnice jste nalákali více obyvatel než konkurence v okolí. Jen tak dál.", }, }, rats_killed = { awards = { }, trophies = { [1] = "Byl Vám udělen Pohár Proti Havěti za zastřelení %d krys ve Vaší nemocnici během minulého roku.", [2] = "Díky Vašim výjime�ným schopnostem střílení krys jste získali tento pohár od Federace Proti Krysám a Myším, přesněji pro zabití %d potvor.", [3] = "Kvalifikovali jste se na Pohár Deratizérů za výjime�né dovednosti zbavení se %d krys ve Vaší nemocnici v minulém roce.", }, }, no_deaths = { awards = { [1] = "Obdrželi jste Ocenění Nikdo-Nechcíp za udržení všech svých pacientů při životě. Jdete ostatním příkladem.", [2] = "Toto ocenění jste obdrželi, aby Vám připomínalo nulový po�et úmrtí ve Vaší nemocnici tento rok. Blahopřejeme.", }, trophies = { [1] = "Spole�nost Život Jde Dál Vám uděluje tento pohár za zabránění jakémukoliv úmrtí v posledním roce.", [2] = "Byl Vám udělen Pohár Zůstávám Naživu za vyhnutí se byť jedinému úmrtí v posledním roce ve Vaší nemocnici. Skvělé.", [3] = "Byla Vám udělena trofej Dech a Tep za to, že jste dokázali v tomto roce zabránit jakémukoliv úmrtí ve Vaší nemocnici. Výborně.", }, penalty = { [1] = "Po�et smrtí ve Vaší nemocnici je nadprůměrný. Věnujte větší pozornost Vaší práci a zajistěte, aby více lidí přežilo.", [2] = "Vaše nemocnice je rizikem pro zdraví pacientů. O�ekává se, že lidé budou odcházet vylé�eni, a ne mrtvi.", }, regional = { [1] = "Po�et smrtí ve Vaší nemocnici byl minulý rok nižší než v ostatních nemocnicích. Přijměte prosím cenu Okresního Výboru Nemocnic.", }, }, healthy_plants = { awards = { [1] = "Blahopřejeme k získání ocenění spole�nosti Rosť Více za udržení neoby�ejného zdraví Vašich rostlin během minulého roku.", }, trophies = { [1] = "Přátelé Pokojových Rostlin Vám udělují Zelený Pohár Zdraví za udržení všech Vašich květin v dobrém stavu.", [2] = "Senza Trifidi by Vám chtěli udělit Pohár Fotosyntézy za udržení Vašich rostlin v nemocnici v tom nejlepším možném stavu.", }, }, many_cured = { awards = { [1] = "Ministerstvo zdravotnictví Vám gratuluje k vylé�ení mnoha pacientů v minulém roce. Díky Vaší práci se zlepšila v okolí životní úroveň.", [2] = "Spole�nost Vašek a Prášek s.r.o. Vám uděluje ocenění za vylé�ení více pacientů než kterákoli jiná nemocnice.", }, penalty = { [1] = "Vaše nemocnice selhává v poskytnutí ú�inné lé�by pacientům, kteří ji potřebují. Soustře�te se na Vaše lé�by, abyste zvýšili jejich ú�innost.", [2] = "Vaše nemocnice lé�í méně pacientů než kterákoliv jiná. Ministerstvo se cítí Vaším výkonem zklamané. Zkuste s tím něco udělat.", }, regional ={ [1] = "Slavnostně Vám udělujeme cenu Všemocného léku za vylé�ení více lidí než kterákoliv jiná nemocnice.", }, trophies = { [1] = "Gratulujeme k výhře Ocenění Antonína Holého za vylé�ení mnoha pacientů ve Vaší nemocnici v minulém roce.", [2] = "Mezinárodní Nadace Lé�ení si přeje ocenit skute�nost, že jste vylé�ili ohromný po�et lidí ve Vaší nemocnici minulý rok, udělením poháru Hodně-Lé�íš-Někde.", [3] = "Byl Vám darován pohár Kapitána Zdravého za úspěšnou lé�bu vysokého procenta pacientů ve Vaší nemocnici v minulém roce.", }, }, sold_drinks = { trophies = { [1] = "Světová Asociace Zubařů je hrdá, že Vás může ocenit touto cenou a plaketou za prodej spousty slazených nápojů ve Vaší nemocnici.", [2] = "Vaše nemocnice byla oceněna pohárem Šumivý Byznys za prodej nealkoholických nápojů ve Vaší nemocnici za poslední rok.", [3] = "Jménem DK Plomby a.s., je Vám udělenen tento �okoládou plněný pohár na oslavu neoby�ejného po�tu prodaných sodovek.", }, }, gen_repairs = { penalty = { [1] = "Vaši údržbáři moc dobře Vaše stroje neudržovali. Měli byste na ně dohlédnout pe�livěji, nebo jich najmout více, aby byli schopni množství práce pojmout.", [2] = "V údržbě máte nepořádek. Vaši zaměstnanci by se o stroje měli starat jako o svoje vlastní.", }, awards = { [1] = "Obdrželi jste ocenění Šroubek a Vroubek za pohotovost Vašich údržbářů, kteří udržují stroje Vaší nemocnice v dobrém stavu. Gratulujeme.", [2] = "Odbor Údržbářů oceňuje pohotové opravy všech strojů ve Vaší nemocnici. Toto je velký úspěch, za který blahopřejeme.", [3] = "Vaše stroje jsou skvěle udržované. Oddanost Vašich údržbářů je výjime�ná. Vy všichni si toto prestižní ocenění zasloužíte. Výte�ná práce.", }, }, research = { regional_good = { [1] = "Vaše výzkumné oddělení je nejúspěšnější v okolí. Přijměte cenu Asociace Nemocnic pro své moderní poznatky.", }, regional_bad = { [1] = "Všechny nemocnice v okolí mají lepší výzkum než Vy. Ministerstvo vyjadřuje nad Vaším zanedbáním výzkumu silné znepokojení.", }, penalty = { [1] = "Ve výzkumu nové lé�by, vybavení a léků jste zaostali. Zdravotnictví musí stát na nových poznatcích, které musíte sami získat.", }, awards = { [1] = "Výzkum Vaší nemocnice udržel krok s nejnovějšími poznatky. Vaši výzkumní zaměstnanci si tuto cenu zaslouží. Skvělé.", [2] = "Během posledního roku jste prozkoumali více léků a zařízení než kdokoliv jiný. Prosím, přijměte toto ocenění od nás všech na ministerstvu.", }, }, curesvdeaths = { penalty = { [1] = "Váš poměr vylé�ení k úmrtím je opravdu špatný. Měli byste zajistit, že vylé�íte mnohem více lidí, než necháte zemřít. Nebu�te naší ostudou.", }, awards = { [1] = "Srde�né gratulace za dosažení úchvatného poměru vylé�ení k úmrtím ve Vaší nemocnici minulý rok.", }, }, emergencies = { regional_good = { [1] = "Ministerstvo uznává, že Vaše nemocnice zvládla předešlý rok pohotovosti lépe než kterákoliv jiná nemocnice, a uděluje Vám ocenění Rychlonožka.", }, award = { [1] = "Blahopřejeme: Vaše efektivní a ú�inné zvládnutí pohotovostí Vám získalo toto ocenění. Dobrá práce.", [2] = "Vaše zacházení s pohotovostmi je výjime�né. Toto ocenění je za to, že jste nejlepší ve zvládání velkých návalů nemocných a trpících.", }, penalty = { [1] = "Pohotovosti moc nezvládáte. Přicházející pacienti vyžadují rychlou a přesnou lé�bu, kterou nezvládáte poskytovat.", }, regional_bad = { [1] = "Vaše nemocnice je ve zvládání pohotovostí ta nejhorší v oblasti. Je Vaší chybou, že se potácíte na konci Okresní Ligy Pohotovostí.", }, }, all_cured = { awards = { [1] = "Blahopřejeme k vítězství Ocenění Jana Jánského za úspěšnou lé�bu všech pacientů ve Vaší nemocnici za poslední rok.", }, trophies = { [1] = "Mezinárodní Nadace Lé�ení si přeje ocenit skute�nost, že jste vylé�ili všechny ve Vaší nemocnici minulý rok tím, že Vám udělí pohár Hodně-Lé�íš-Někde.", [2] = "Byl Vám darován pohár Kapitána Zdravého za úspěšnou lé�bu všech pacientů ve Vaší nemocnici v minulém roce.", }, }, best_value_hosp = { regional = { [1] = "Spole�nost Oligarchů Vám blahopřeje k nejcennější nemocnici v okolí. Dobrá práce. Pokra�ujte v tom, co děláte.", }, penalty = { [1] = "Každá nemocnice v oblasti má vyšší hodnotu než ta Vaše. Udělejte něco s touto ostudnou situací. Investujte do zdraví vašich pacientů!", }, trophies = { [1] = "Blahopřejeme k získání ocenění Zlatá Truhlice za nemocnici s nejvyšší hodnotou během minulého roku. Ovšemže je plně zasloužená.", }, }, high_rep = { penalty = { [1] = "Za velmi špatnou reputaci za poslední rok vás trest nemine. Ujistěte se, že se to do budoucna zlepší.", [2] = "Reputace Vaší nemocnice je nejhorší v oblasti. Jaká ostuda! Zlepšete ji, nebo si hledejte jinou práci.", }, regional = { [1] = "Přijměte prosím Cenu Bullfrog za nejvyšší reputaci v tomto roce ze všech nemocnic. Užijte si to - zasloužili jste si ji.", [2] = "Tento rok reputace Vaší nemocnice překonala všechny ostatní v oblasti dohromady. To je významný úspěch.", }, awards = { [1] = "Výborně. Vyhráváte mali�ké ocenění za dosažení velmi úctyhodné reputace v posledním roce.", [2] = "Úžasné! Vaše nemocnice vyhrává cenu za vybudování nejlepší reputace za poslední rok.", }, }, cash = "PEN�ZE", reputation = "REPUTACE", consistant_rep = { trophies = { [1] = "Tímto se Vám slavnostně uděluje ocenění Kabinetu Ministra za dokonalé standardy a nejvyšší možnou reputaci tento rok. Úžasné.", [2] = "Blahopřejeme k získání ocenění Křišťálová Lilie za nemocnici s nejlepší reputací během minulého roku. Netřeba dodat, že si jej plně zasloužíte.", }, }, wait_times = { penalty = { [1] = "Lidé ve Vaší nemocnici musejí dlouho �ekat. Fronty jsou zde delší než na podpultové zboží. Kdybyste se více snažili, mohli by se Vaši pacienti lé�it ú�inněji.", }, award = { [1] = "Anonymní Klub Nestíha�ů oceňuje, že se ve Vaší nemocnici nestojí žádné dlouhé fronty. Toto je důležité ocenění.", }, }, cleanliness = { regional_good = { [1] = "Vaše nemocnice byla vyhodnocena jako jedna z nej�istších široko daleko. Vaši údržbáři si zaslouží prémie. A vy za jejich výcvik také.", }, award = { [1] = "Kontroloři si poznamenali, že Vaše nemocnice je velmi �istá. Čisté nemocnice jsou bezpe�né nemocnice. Jen tak dál.", }, regional_bad = { [1] = "Vaše nemocnice je nejšpinavější v oblasti. Ostatní správci zvládli udržet svoje chodby �istší. Čistota půl zdraví. Zapracujte na tom.", }, }, hosp_value = { penalty = { [1] = "Vaší nemocnici se nepodařilo dosáhnout slušné hodnoty. Zkuste změnit svůj způsob nakládání s penězi. Nezapomeňte, že dobrá nemocnice je také drahá nemocnice.", }, regional = { [1] = "Jste ekonomický Einstein. Vaše nemocnice má větší hodnotu než kterákoliv jiná nemocnice v oblasti.", }, awards = { [1] = "Ministerstvo zdravotnictví by chtělo využít této příležitosti a poblahopřát Vám k působivé celkové hodnotě Vaší nemocnice.", }, }, } build_room_window = { pick_room_type = "Vyberte typ místnosti", pick_department = "Vyberte oddělení", cost = "Náklady: ", } object = { dna_fixer = "Genex 2000", op_sink1 = "Umyvadlo", litter_bomb = "Odpadková bomba", auto_autopsy = "Auto-Pitva�", door = "Dveře", projector = "Projektor", radiation_shield = "Radia�ní štít", entrance_left = "Vchodové levé dveře", operating_table = "Opera�ní stůl", bed2 = "Postel", cabinet = "Kartotéka", console = "Konzole", bed = "Postel", couch = "Seda�ka", drinks_machine = "Automat na nápoje", shower = "Sprcha", electrolyser = "Elektrolyzér", table2 = "Stůl", radiator = "Radiátor", chair = "Seda�ka", jelly_moulder = "Forma na sliz", computer = "Po�íta�", ultrascanner = "Ultraskener", bin = "Koš", surgeon_screen = "Zástěna chirurga", slicer = "Kráje�", bed3 = "Postel", x_ray = "Rentgen", video_game = "Videohra", atom_analyser = "Analyzátor atomů", inflator = "Hustilka", toilet = "Toaleta", x_ray_viewer = "Prohlíže� rentgenových snímků", cast_remover = "Řeza�ka sádry", entrance_right = "Vchodové pravé dveře", litter = "Odpadek", cardio = "Kardiogram", plant = "Rostlina", pool_table = "Kule�níkový stůl", tv = "Televize", sofa = "Pohovka", lamp = "Lampa", fire_extinguisher = "Hasicí přístroj", bench = "Seda�ka", scanner = "Skener", op_sink2 = "Umyvadlo", toilet_sink = "Umyvadlo", hair_restorer = "Sáze� vlasů", desk = "Stůl", swing_door2 = "Křídlové dveře", lecture_chair = "U�ební lavice", pharmacy_cabinet = "Skříň s léky", screen = "Zástěna", table1 = "Stůl", gates_of_hell = "Brány pekla", blood_machine = "Hemogram", comfortable_chair = "Pohodlné křeslo", bookcase = "Knihovna", reception_desk = "Recepce", crash_trolley = "Manipula�ní vozík", swing_door1 = "Křídlové dveře", skeleton = "Kostlivec", rathole = "Krysí díra", } handyman_window = { all_parcels = "Všude", parcel = "Parcela", } policy = { staff_leave_rooms = "opouštění pracoviště", diag_procedure = "proces vyšetření", header = "PRAVIDLA NEMOCNICE", sliders = { send_home = "POSLAT DOMŮ", guess = "ZAČ�T LÉČBU", stop = "UKONČIT DIAGNÓZU", staff_room = "J�T SI ODPOČINOUT", }, diag_termination = "ukon�ení diagnózy", staff_rest = "poslat zaměstnance odpo�inout", } room_classes = { treatment = "Lé�ba", diagnosis = "Diagnóza", facilities = "Zázemí", clinics = "Klinika", } tooltip = { autosave_frequency = { daily = "Automatické uložení každý herní den (vždy na za�átku). Celkem 365 uložení v rámci jednoho roku. Po�ítejte s tím, že jedno uložení může zabrat více než megabajt, tedy adresář s automatickými uloženími může mít 300–500 MB.", monthly = "Automatické uložení jednou za herní měsíc (vždy na za�átku prvního dne). Celkově 12 uložení v rámci jednoho roku.", weekly = "Automatické uložení jednou za herní týden (vždy 1., 7., 14., 21. a 28. den v měsíci). Celkově 60 uložení v rámci jednoho roku.", }, adviser_history = { close = "Zavřít historii hlášení", delete_message = "Klikněte pro skrytí této zprávy", message = "Seznam hlášení - Nejnovější jsou první", header = { delete_message = "Klikněte pro smazání všech zpráv", message = "Historie hlášení", }, }, folders_window = { data_location = "Adresář instalace původní hry Theme Hospital, jenž je vyžadován pro spuštění CorsixTH", no_font_specified = "Umístění písma zatím nezadáno!", browse_data = "Procházet pro jiné umístění instalace Theme Hospital. (sou�asné umístění: %1%)", browse_font = "Procházet pro výběr jiného souboru s písmem (sou�asné umístění: %1%)", font_location = "Umístění souboru s písmem, které je schopno zobrazit znaky Unicode vyžadované vaším jazykem. Pokud toto není zadáno, nebudete moci zvolit jazyky, které potřebují více znaků, než původní hra obsahuje. Příklad: �eština, �ínština", screenshots_location = "Standardně je adresář se snímky obrazovky ve stejném umístění jako soubor s nastavením. Pokud toto nechcete, můžete si zvolit vlastní. Sta�í zvolit adresář, který chcete použít.", reset_to_default = "Resetovat adresář na jeho výchozí umístění ( %1% )", back = "Zavřít tuto nabídku a vrátit se zpět do nabídky Nastavení", music_location = "Vyberte umístění .mp3 souborů s hudbou. Adresář musí být již vytvořen, až pak jej můžete zde zvolit.", savegames_location = "Standardně je adresář uložených her na stejném místě jako soubor s nastavením. Pokud toto nechcete, můžete si zvolit svůj vlastní. Sta�í zvolit adresář, který chcete používat.", browse = "Procházet pro zvolení adresáře", browse_screenshots = "Procházet pro zvolení jiného umístění adresáře snímků obrazovky ( Sou�asné umístění: %1% ) ", browse_music = "Procházet pro zvolení jiného umístění adresáře s hudbou ( Sou�asné umístění: %1% ) ", not_specified = "Žádné umístění adresáře zatím nezadáno!", browse_saves = "Procházet pro zvolení jiného umístění vašeho adresáře uložených her ( Sou�asné umístění: %1% ) ", default = "Výchozí umístění", clear_directory = "Vymazat aktuální výběr adresářů.", }, customise_window = { aliens = "Kvůli chybějícím správným animacím standardně pacienti s Mimozemskou DNA přicházejí pouze jako pohotovost. Abyste je povolili i jako normální pacienty, sta�í toto vypnout.", average_contents = "Pokud chcete, aby si hra pamatovala objekty v místnostech, co běžně přidáváte, pak toto zapněte.", back = "Zavřít tuto nabídku a přejít zpět do Nastavení", movies = "Globální zapnutí videí, pokud je VYPNUTO, nebude se přehrávat žádné video ze hry.", fractured_bones = "Kvůli špatné animaci jsou standardně zakázány pacientky se Zlomenými Kostmi. Pro povolení pacientek s touto diagnózou ve vaší nemocnici musíte toto vypnout.", volume = "Pokud tla�ítko pro snížení hlasitosti zároveň také otevírá Seznam nemocí, můžete toto zapnout pro změnu klávesové zkratky Sez. nemocí na Shift + C.", intro = "Zapne nebo vypne úvodní video. Pokud chcete, aby se video přehrálo při spuštění CorsixTH, je třeba mít zapnutá videa.", paused = "V Theme Hospital může hrá� při pozastavení hry použít pouze horní lištu. To samé platí v CorsixTH, ale pomocí této volby můžete při pozastavení hry povolit cokoliv.", remove_destroyed_rooms = "Pokud chcete povolit možnost odstranit zni�ené místnosti (za poplatek), zapněte tuto možnost.", enable_announcer_subtitles= "Pokud chcete zobrazovat historii hlášení ve hře, povolte tuto možnost.", enable_screen_shake = "Zemětřesení ve hře třesou obrazovkou hry. Pokud chcete třes vypnout, vypněte tuto možnost.", machine_menu_button = "Pokud chcete mít ve hře k dispozici Správu strojů, povolte tuto možnost. Při příliš malém rozlišení nabídka zůstane skrytá.", }, debug_patient_window = { item = "Vytvořit pacienta pro ladění s %s", }, options_window = { language = "Vybrat %s jako jazyk hry.", language_dropdown_item = "Zvolit %s jako jazyk hry.", width = "Zadejte požadovanou šířku obrazovky hry.", select_language = "Vybrat jazyk hry", select_resolution = "Vybrat rozlišení", back = "Zavřít nastavení", resolution = "Rozlišení, ve kterém by se hra měla spouštět.", fullscreen = "Nastavení, zda má být hra spuštěna v okně nebo v režimu celé obrazovky.", fullscreen_button = "Klikněte pro přepnutí režimu celé obrazovky.", change_resolution = "Změnit rozlišení okna na rozměry zadané vlevo.", apply = "Použít zadané rozlišení", cancel = "Vrátit se zpět bez změny rozlišení", height = "Zadejte požadovanou výšku obrazovky hry.", folder_button = "Nastavení složek", customise_button = "Další nastavení, pomocí kterých si můžete svoji hru přizpůsobit.", hotkey = "Změnit klávesové zkratky", apply_shift_scrollspeed = "Použít nastavenou rychlost posouvání po obrazovce s shiftem.", apply_scrollspeed = "Použít nastavenou rychlost posouvání po obrazovce.", cancel_shift_scrollspeed = "Neměnit rychlost posouvání po obrazovce s shiftem.", apply_zoomspeed = "Použít nastavenou rychlost přibližování.", scrollspeed = "Nastavte rychlost posouvání po obrazovce v rozmezí 1 (nejpomalejší) až 10 (nejrychlejší). Výchozí hodnota je 2.", capture_mouse = "Kliknutím přepnete zachytávání kurzoru v okně hry (tedy myš nebude moct opustit okno hry).", cancel_scrollspeed = "Neměnit rychlost posouvání po obrazovce.", shift_scrollspeed = "Nastavte rychlost posouvání po obrazovce s shiftem v rozmezí 1 (nejpomalejší) až 10 (nejrychlejší). Výchozí hodnota je 4.", zoom_speed = "Nastavte rychlost přibližování v rozmezí 10 (nejpomalejší) až 1000 (nejrychlejší). Výchozí hodnota je 80.", cancel_zoomspeed = "Neměnit rychlost přibližování", check_for_updates = "Nastavuje, zda má hra při spuštění kontrolovat aktualizace.", right_mouse_scrolling = "Přepnout tla�ítko myši, kterým lze posouvat kameru", language_dropdown_no_font = "Pro použití tohoto jazyka musíte vybrat font podporující tento jazyk v Nastavení > Umístění složek > Písmo", autosave_frequency = "Nastavuje, jak �asto bude hra automaticky ukládána.", resolution_unavailable = "Rozlišení není podporována s tímto měřítkem UI.", scale_ui = "Měřítko UI. Zobrazeny jsou pouze možnosti podporované v aktuálním rozlišení, pro další možnosti zvyšte rozlišení hry.", select_ui_scale = "Vyberte nové měřítko UI", sound = "Změnit nastavení audia", ui_scale_unavailable = "Měřítko UI není k dispozici, je třeba nejprve zvýšit rozlišení hry.", }, audio_window = { audio_button = "Zapnout nebo vypnout všechny zvuky ve hře.", audio_toggle = "Globální zapnutí zvuků, pokud je VYPNUTO, nebude se přehrávat žádný zvuk ze hry.", jukebox = "Otevře Jukebox pro ovládání hudby ve hře", announcement_volume = "Hlasitost hlášení", back = "Zavřít okno", browse = "Prohlížet pro nalezení adresáře", browse_soundfont = "Prohlížet pro jiný Soundfont (sf2, sf3) ( Nyní zvolen: %1% ) ", midi_api = "API pro přehrávání (MIDI) hudby ze hry. Nevyužívá adresář s vlastní hudbou.", midi_port = "MIDI port pro přehrávání hudby ze hry.", music_volume = "Hlasitost hudby", no_soundfont_specified = "Používá výchozí Soundfont", sound_volume = "Hlasitost zvuků", soundfont_location = "Umístění Soundfont souboru pro přehrávání (MIDI) hudby ze hry. Pokud není žádný vybrán, používá výchozí Soundfont.", }, update_window = { download = "Stáhnout nejnovější verzi CorsixTH.", ignore = "Zatím neaktualizovat. Při příštím spuštění CorsixTH vám toto upozornění vysko�í znovu.", }, information = { close = "Zavřít informa�ní dialogové okno", }, menu_list_window = { save_date = "Klikněte zde pro seřazení seznamu podle posledního data změny.", name = "Klikněte zde pro seřazení seznamu podle názvu.", back = "Zavřít toto okno", ok = "Potvrdit volby", }, cheats_window = { close = "Zavřít dialogové okno cheatů.", cheats = { lose_level = "Prohrát tuto úroveň.", emergency = "Vytvořit havárii.", end_year = "Přesko�it na konec roku.", earthquake = "Vytvořit zemětřesení.", money = "Přidat 10 000$ na bankovní ú�et.", win_level = "Vyhrát tuto úroveň.", vip = "Vytvořit VIP.", all_research = "Dokon�it veškerý výzkum.", create_patient = "Vytvořit pacienta (na kraji mapy).", end_month = "Přesko�it na konec měsíce.", epidemic = "Vytvořit nakažlivého pacienta, který může způsobit epidemii.", toggle_infected = "Zobrazit/Skrýt ikony nakažení pro aktivní zjištěné epidemie.", increase_prices = "Zvýšit všechny ceny o 50% (max. 200%).", decrease_prices = "Snížit všechny ceny o 50% (min. 50%).", toggle_earthquake = "Vypne/zapne zemětřesení", max_reputation = "Nastaví reputaci nemocnice na maximum", toggle_epidemic = "Vypne/zapne možnost epidemií", show_infected = "Ukáže/Skryje ikony u nakažených pacientů aktivní, odhalené epidemie", reset_death_count = "Nastaví po�et úmrtí v nemocnici na 0", repair_all_machines = "Opraví všechny stroje v nemocnici.", toggle_invulnerable_machines = "Přepne, zda se stroje opotřebovávají.", }, }, buy_objects_window = { price = "Cena položky", cancel = "Zrušit", confirm = "Koupit položku/y", total_value = "Celková hodnota objednaných položek", decrease = "Koupit o jednu položku méně", increase = "Koupit o jednu položku více", }, custom_game_window = { free_build = "Toto polí�ko zaškrtněte, pokud nechcete řešit peníze ani podmínky výhry/prohry.", load_selected_level = "Na�íst a hrát zvolenou úroveň.", choose_game = "Klikněte na úroveň pro zobrazení jejího popisu.", }, new_game_window = { easy = "Pokud jste za�áte�níci v simula�ních hrách, tak toto je volba pro Vás.", cancel = "Ah, já vlastně nechtěl za�ít novou hru!", difficulty = "Vyberte úroveň obtížnosti, se kterou chcete hru hrát.", tutorial = "Pokud chcete se za�átkem trochu pomoct, zapněte tuto volbu.", hard = "Pokud hru znáte a prahnete po výzvě, tak si vyberte tuto volbu.", medium = "Toto je střední cesta, když nevíte, co si vybrat.", player_name = "Zadejte jméno, kterým chcete být ve hře oslovováni.", start = "Zahájit hru.", }, machine_window = { close = "Zavřít", replace = "Vyměnit stroj", status = "Stav stroje", repair = "Přivolat Údržbáře, aby stroj opravil", name = "Název", times_used = "Po�et použití stroje", toggle_machine_menu = "Klikněte pro zobrazení Správy strojů", }, machine_menu = { smoking = "Toto polí�ko je zaškrtnuté pokud tomuto stroji hrozí výbuch. Kliknutím koupíte nový stroj a nahradíte jím starý.", remaining_strength = "Tato hodnota ukazuje, kolik použití tento stroj ještě snese před opravou.", header = { smoking = "Kontrolka nebezpe�í", remaining_strength = "Zbývající výdrž do nutné opravy.", machine = "Typ stroje", ratio = "Poměr zbývající výdrže k celkové výdrži stroje.", total_strength = "Celková výdrž stroje do první opravy.", assigned = "Kontrolka přidělení opravy stroje.", status = "Stav strojů", }, close = "Zavře okno správy strojů", sort = "Klikněte pro seřazení dle této hodnoty.", machine = "Seznam strojů - klikněte na stroj pro otevření jeho okna s informacemi a umístění kamery na něj.", ratio = "Tato hodnota ukazuje poměr zbývající výdrže k celkové výdrži stroje.", total_strength = "Tato hodnota ukazuje, kolik použití tento stroj jako nový snese před první opravou.", assigned = "Toto polí�ko je zaškrtnuté pokud je k opravě tohoto stroje přivolán Údržbář. Klikněte pro ukázání přiděleného Údržbáře.", }, calls_dispatcher = { close = "Zavřít okno úkolů a přiřazení.", task = "Seznam úkolů - klikněte na úkol pro otevření okna přiděleného zaměstnance a přejděte na místo úkolu.", assigned = "Tento ráme�ek je zaškrtnut, když je úkol někomu přidělen.", }, staff_window = { happiness = "Spokojenost", salary = "Měsí�ní plat", doctor_seniority = "Zkušenost - Rezident, Doktor nebo Primář", skills = "Kvalifikace", tiredness = "Únava", name = "Jméno zaměstnance", psychiatrist = "Psychiatr", close = "Zavřít", face = "Fotografie - klikněte pro otevření obrazovky Správy zaměstnanců", pick_up = "Přemístit", center_view = "Levým kliknutím se přiblížíte na zaměstnance, pravým kliknutím mezi zaměstnanci přepínáte", researcher = "Výzkumník", sack = "Propustit", surgeon = "Chirurg", ability = "Schopnosti", }, town_map = { people = "Zobrazit lidi", fire_extinguishers = "Zobrazit hasicí přístroje", plants = "Zobrazit rostliny", heat_inc = "Zvýšit teplotu vytápění", balance = "Stav ú�tu", heat_level = "Úroveň tepla", objects = "Zobrazit objekty", radiators = "Zobrazit radiátory", heat_dec = "Snížit teplotu vytápění", close = "Odejít z Mapy města", heating_bill = "Měsí�ní platba za vytápění", }, casebook = { cure_type = { surgery = "Tato nemoc vyžaduje operaci.", drug_percentage = "Tato lé�ba používá lék - Váš je ú�inný na %d%%.", drug = "Tato lé�ba vyžaduje lék.", machine = "Tato lé�ba vyžaduje stroj.", unknown = "Stále nevíte, jak lé�it tuto nemoc.", psychiatrist = "Tuto lé�bu provádí psychiatr.", }, cured = "Po�et vylé�ení", reputation = "Reputace vyšetření/lé�by", down = "Dolů", research = "Klikněte zde k použití rozpo�tu Výzkumu Specializací pro tuto lé�bu.", sent_home = "Po�et pacientů poslaných domů", close = "Zavřít Seznam nemocí", up = "Nahoru", deaths = "Po�et úmrtí", earned_money = "Částka, kterou zatím vyšetření vydělalo.", increase = "Zvýšit poplatek", decrease = "Snížit poplatek", cure_requirement = { hire_surgeons = "K provádění operací potřebujete zaměstnat dva chirurgy.", not_possible = "Tuto nemoc ještě nezvládnete lé�it.", hire_staff_old = "Ke zvládnutí této lé�by potřebujete zaměstnat %s.", hire_staff = "Ke zvládnutí této lé�by potřebujete najmout zaměstnance.", hire_surgeon = "K provedení operace potřebujete zaměstnat alespoň dva chirurgy.", build_room = "Ke zvládnutí této lé�by potřebujete vybudovat novou místnost.", build_ward = "Ke zvládnutí této lé�by potřebujete vybudovat Lůžkové Oddělení.", ward_hire_nurse = "Ke zvládnutí této lé�by potřebujete Sestru na Lůžkovém Oddělení.", possible = "Tuto nemoc zvládáte vylé�it.", research_machine = "Pro tuto lé�bu potřebujete vynalézt nové stroje.", }, treatment_charge = "Poplatek za vyšetření, který pacient platí.", }, hire_staff_window = { qualifications = "Kvalifikace", salary = "Požadovaný plat", receptionists = "Zobrazit uchaze�ky na Recep�ní", prev_person = "Zobrazit předchozího uchaze�e", psychiatrist = "Psychiatr", nurses = "Zobrazit uchaze�ky na Sestru", doctors = "Zobrazit uchaze�e na Doktora", doctor_seniority = "Zkušenost Doktora (Rezident/Doktor/Primář)", cancel = "Zrušit", staff_ability = "Schopnosti", next_person = "Zobrazit dalšího uchaze�e", researcher = "Výzkumník", handymen = "Zobrazit uchaze�e na Údržbáře", surgeon = "Chirurg", hire = "Zaměstnat uchaze�e", }, toolbar = { charts = "Grafy", policy = "Pravidla", objects = "Vybavit chodbu", status = "Postup v úrovni", reputation = "Vaše reputace", research = "Výzkum", bank_button = "Levé kliknutí pro Správce banky, pravé kliknutí pro Bankovní výpisy", rooms = "Postavit místnosti", town_map = "Mapa města", casebook = "Seznam nemocí", edit = "Upravit místnosti/položky", date = "Datum", staff_list = "Správa zaměstnanců", balance = "Stav vašeho ú�tu", hire = "Najmout zaměstnance", machine_menu = "Správa strojů", }, main_menu = { load_game = "Na�íst uloženou hru", options = "Nastavení hry", load_menu = { load_slot = "NAČ�ST HRU", empty_slot = "PR�ZDNÉ", }, new_game = "Za�ít novou hru (od za�átku)", continue = "Pokra�ovat v předchozí hře", custom_level = "Hrát úroveň vytvořenou komunitou", network = "Spustit hru po síti", exit = "Ne, ne, prosím neodcházejte!", quit = "Odejít", custom_campaign = "Hrát kampaň vytvořenou komunitou", map_edit = "Vytvořit vlastní mapu", }, queue_window = { num_expected = "Po�et pacientů, kteří jdou od Recep�ní do této fronty", dec_queue_size = "Zmenšit maximální po�et lidí ve frontě", num_entered = "Po�et pacientů, kteří dote� do místnosti vešli", num_in_queue = "Po�et pacientů �ekajících ve frontě", close = "Zavřít", patient = "Přetáhněte pacienta pro jeho přesun ve frontě. Pravým kliknutím jej z nemocnice vykážete (domů nebo ke konkurenci)", max_queue_size = "Maximální po�et lidí ve frontě (Recep�ní při překro�ení velikosti pacienty sem nepošle)", inc_queue_size = "Zvětšit maximální po�et lidí ve frontě", front_of_queue = "Přetáhněte pacienta na tuto ikonu pro přesun na za�átek fronty", end_of_queue = "Přetáhněte pacienta na tuto ikonu pro přesun na konec fronty", patient_dropdown = { send_home = "Vykázat pacienta z nemocnice", hospital_3 = "Odkázat pacienta do jiné nemocnice", reception = "Poslat pacienta k Recep�ní", hospital_2 = "Odkázat pacienta do jiné nemocnice", hospital_1 = "Odkázat pacienta do jiné nemocnice", }, }, load_game_window = { load_game_number = "Na�íst hru �íslo %d", load_game = "Na�íst hru %s", load_autosave = "Na�íst poslední automaticky uloženou hru", }, statement = { close = "Zavřít obrazovku Bankovních výpisů", }, graphs = { scale = "Měřítko grafu", reputation = "Zobrazit reputaci", cures = "Zobrazit po�et vylé�ených", close = "Zavřít Grafy", wages = "Zobrazit výplaty", deaths = "Zobrazit po�et úmrtí", balance = "Zobrazit stav ú�tu", money_in = "Zobrazit příjmy", money_out = "Zobrazit výdaje", visitors = "Zobrazit po�et návštěvníků", }, totd_window = { previous = "Zobrazit předchozí radu", next = "Zobrazit další radu", }, fax = { close = "Zatím na fax nijak nereagovat", }, save_game_window = { save_game = "Přepsat uloženou hru %s", new_save_game = "Zadejte název pro svou nově uloženou hru", }, hotkey_window = { button_recallPosKeys = "Nastavit klávesové zkratky pro pohyb kamery", button_defaults = "Resetovat všechny klávesové zkratky na výchozí", button_back_02 = "Vrátit se k nastavení hlavních klávesových zkratek. Všechny změny zde provedené lze uložit v hlavní nabídce", button_accept = "Potvrdit a uložit nastavení klávesových zkratek", button_cancel = "Vrátit se do nastavení bez ukládání změn", caption_panels = "Nastavit klávesové zkratky pro zobrazení panelů (Výzkum, Mapa města, Pravidla atd.)", button_gameSpeedKeys = "Nastavit klávesové zkratky pro ovládání rychlosti hry", panel_globalKeys = "Nastavit klávesové zkratky použitelné v celém programu", panel_scrollKeys = "Nastavit klávesové zkratky pro pohyb kamery ve hře", panel_generalInGameKeys = "Nastavit klávesové zkratky použitelné během hry", panel_zoomKeys = "Nastavit klávesové zkratky pro přiblížení a oddálení", panel_toggleKeys = "Nastavit klávesové zkratky pro vypnutí/zapnutí věcí", panel_debugKeys = "Nastavit klávesové zkratky pro ladění (debugging)", }, pay_rise_window = { accept = "Splnit požadavky zaměstnance", decline = "Zaměstnance raději propustit", }, jukebox = { close = "Zavřít jukebox", fast_forward = "Další", rewind = "Předcházející", current_title = "Jukebox", play = "Hrát", stop = "Zastavit", loop = "Přehrávat ve smy�ce", }, handyman_window = { happiness = "Spokojenost", salary = "Měsí�ní plat", prio_machines = "Zvýšit Údržbářovu prioritu opravy strojů", tiredness = "Únava", sack = "Propustit", close = "Zavřít", name = "Jméno zaměstnance", pick_up = "Přemístit", prio_litter = "Zvýšit Údržbářovu prioritu zametání odpadků", center_view = "Levým kliknutím se přiblížíte na zaměstnance, pravým kliknutím mezi zaměstnanci přepínáte", prio_plants = "Zvýšit Údržbářovu prioritu zalévání rostlin", face = "Fotografie - klikněte pro otevření obrazovky Správy zaměstnanců", ability = "Schopnosti", parcel_select = "Parcela, kde Údržbář vykonává práci" }, watch = { hospital_opening = "Období výstavby: toto je zbývající �as do otevření vaší nemocnice veřejnosti. Kliknutím na zelené tla�ítko ji otevřete veřejnosti okamžitě.", epidemic = "Epidemie: �as zbývající pro vyřešení epidemie. Když tento �as vyprší NEBO některý nakažený pacient odejde z Vaší nemocnice, navštíví vás Hygienický Inspektor. Tla�ítko vypíná a zapíná režim o�kování. Klikněte na pacienta, aby ho Sestra nao�kovala.", emergency = "Pohotovost: zbývající �as na vylé�ení všech pacientů pohotovosti.", }, policy = { close = "Zavřít obrazovku Pravidel", staff_leave = "Klikněte zde, aby zaměstnanci, kteří nemají nic na práci, pomohli kolegům, kteří to potřebují", staff_stay = "Klikněte zde, aby zaměstnanci zůstali tam, kam jste je umístili, i když nic nedělají", staff_rest = "Jak moc musí být zaměstnanci unavení, než si mohou jít odpo�inout", diag_termination = "Diagnóza pacienta bude pokra�ovat, dokud si nebudou Doktoři tak jistí správnou lé�bou, jako je procento UKONČIT DIAGNÓZU, nebo dokud nebudou vyzkoušeny všechny diagnostické nástroje", diag_procedure = "Pokud je jistota Doktorovy diagnózy nižší než POSLAT DOMŮ, pacient bude poslán domů. Pokud je diagnóza jistější než ZAČ�T LÉČBU, pacient bude poslán na příslušnou lé�bu", }, research_policy = { research_progress = "Vývoj směrem k dalšímu objevu v této kategorii: %1%/%2%", no_research = "V této kategorii nyní žádný výzkum neprobíhá", }, status = { happiness = "Celková spokojenost lidí ve vaší nemocnici", thirst = "Spokojenost lidí s dostupností nápojů ve vaší nemocnici", reputation = "Vaše Reputace musí být alespoň %d. Nyní je %d", population = "Potřebujete, aby %d%% zdejší populace chodilo do vaší nemocnice", population_chart = "Graf zobrazující, jaká �ást zdejší populace navštěvuje kterou nemocnici", num_cured = "Musíte vylé�it alespoň %d lidí. Dosud jste vylé�ili %d", close = "Zavřít obrazovku Postupu v úrovni", balance = "Na vašem bankovním ú�tu musí být alespoň %d. Nyní máte %d", win_progress_other = "Zobrazit postup %s k výhře", value = "Vaše nemocnice musí mít hodnotu alespoň %d$. Nyní má %d$", win_progress_own = "Zobrazit postup vaší nemocnice k výhře", warmth = "Spokojenost lidí s teplotou ve vaší nemocnici", percentage_killed = "Nesmíte zabít více než %d%% vašich návštěvníků. Dosud jste zabili %d%% z nich", percentage_cured = "Potřebujete vylé�it alespoň %d%% návštěvníků vaší nemocnice. Nyní lé�íte průměrně %d%%", over = { staff_happiness = "Průměrná spokojenost vašich zaměstnanců by měla být přes %d%. Nyní je %d%", patient_happiness = "Průměrná spokojenost vašich pacientů by měla být přes %d%. Nyní je %d%", }, under = { staff_happiness = "Průměrná spokojenost vašich zaměstnanců by neměla být nižší než %d%. Nyní je %d%", patient_happiness = "Průměrná spokojenost vašich pacientů by neměla být nižší než %d%. Nyní je %d%", }, }, patient_window = { happiness = "Spokojenost", thirst = "Žízeň", queue = "Zobrazit frontu místnosti, kde pacient �eká", abort_diagnosis = "Poslat osobu na lé�bu hned místo �ekání na dokon�ení diagnostiky", close = "Zavřít", casebook = "Zobrazit podrobnosti o nemoci této osoby", warmth = "Spokojenost s teplotou v nemocnici této osoby", graph = "Klikněte pro přepínání mezi grafem zdraví osoby a historií vyšetření", send_home = "Vykázat pacienta z nemocnice", center_view = "Levým kliknutím se přiblížíte na pacienta, pravým kliknutím mezi pacienty přepínáte", }, message = { button_dismiss = "Levým kliknutím si zprávu pře�tete, pravým kliknutím ji zahodíte", button = "Levým kliknutím zprávu otevřete", }, build_room_window = { room_classes = { treatment = "Vybrat místnosti Lé�by", clinic = "Vybrat místnosti Kliniky", facilities = "Vybrat místnosti Zázemí (Toalety, Místnost pro zam. atd.)", diagnosis = "Vybrat místnosti Diagnostiky", }, close = "Zavřít", cost = "Cena vybrané místnosti", }, rooms = { dna_fixer = "Doktor používá Genex 2000 pro lé�bu pacientů s Mimozemskou DNA", gps_office = "Pacienti obdrží úvodní konzultaci a první výsledky v Kanceláři Praktického Lékaře", toilets = "Postavte Toalety, abyste zabránili Pacientům dělat ve vaší nemocnici bordel!", general_diag = "Doktor používá Vyšetřovnu pro základní vyšetření pacientů. Levné a �asto velmi ú�inné", hair_restoration = "Doktor používá Sáze� Vlasů pro lé�bu Plešatosti", scanner = "Doktor používá Skener k diagnóze Pacientových vnitřností", research_room = "Doktoři s kvalifikací Výzkumníka můžou objevit nové léky a stroje ve Výzkumné Laboratoři", cardiogram = "Doktor používá Kardiogram k vyšetření srdce Pacientů", ward = "Lůžkové Oddělení je užite�né jak pro vyšetření, tak i pro lé�bu. Pacienti jsou posláni na pozorování a také pro zotavení se z operace na Lůžkové Oddělení se Sestrou", psychiatry = "Psychiatrie lé�í psychicky nemocné pacienty a pomáhá vylu�ovat psychiatrická onemocnění u všech ostatních, ale vyžaduje Doktora s kvalifikací Psychiatra", staffroom = "Doktoři a Sestry si v Místnosti pro zaměstnance odpo�inou a nebudou tak unaveni", electrolysis = "Doktor používá Oddělení Elektrolýzy k lé�bě Chlupatidy", jelly_vat = "Doktor používá Kliniku Slizu k lé�bě Slizitidy", x_ray = "Doktor používá Rentgen k vyšetření kostí Pacientů", inflation = "Doktor používá Hustírnu k lé�bě Pacientů s Nafouknutými Hlavami", ultrascan = "Doktor používá Ultraskener k důkladnému vyšetření Pacientů", blood_machine = "Doktor používá Hemogram k vyšetření krve Pacientů", tongue_clinic = "Doktor používá ORL k lé�bě Ochablého Jazyka", fracture_clinic = "Sestra používá Ortopedii pro lé�bu Zlomených Kostí", training_room = "U�ebna s Primářem může být použita k výuce jiných Rezidentů a Doktorů", decontamination = "Doktor používá Oddělení Dekontaminace k lé�bě Ozáření", pharmacy = "Sestra v Lékárně podává léky k lé�bě pacientů", operating_theatre = "Opera�ní Sál umožňuje operace, potřebuje však dva Doktory s kvalifikací Chirurgů", }, bank_manager = { interest_payment = "Měsí�ní splátka úroků", borrow_5000 = "Půj�it si 5000$ od banky", current_loan = "Sou�asná výše půj�ek", repay_5000 = "Splatit 5000$ bance", hospital_value = "Sou�asná hodnota vaší nemocnice", show_graph = "Zobrazit graf o�ekávaných plateb od %s", insurance_owed = "Množství peněz, které vám dluží %s", graph = "Graf o�ekávaných plateb od %s", inflation_rate = "Ro�ní míra inflace", graph_return = "Vrátit se k předchozímu zobrazení", interest_rate = "Ro�ní úroková míra", close = "Zavřít obrazovku Správce banky", balance = "Stav vašeho ú�tu", }, window_general = { cancel = "Zrušit", confirm = "Potvrdit", }, research = { cure_dec = "Snížit prioritu výzkumu Lé�ebných oddělení", drugs_inc = "Zvýšit prioritu výzkumu Léků", diagnosis_dec = "Snížit prioritu výzkumu Diagnostiky", improvements_inc = "Zvýšit prioritu výzkumu Vylepšení", drugs_dec = "Snížit prioritu výzkumu Léků", diagnosis_inc = "Zvýšit prioritu výzkumu Diagnostiky", close = "Zavřít obrazovku Výzkumu", specialisation_inc = "Zvýšit prioritu výzkumu Specializací", improvements_dec = "Snížit prioritu výzkumu Vylepšení", cure_inc = "Zvýšit prioritu výzkumu Lé�ebných oddělení", specialisation_dec = "Snížit prioritu výzkumu Specializací", allocated_amount = "Množství přiděleného rozpo�tu", }, lua_console = { close = "Zavřít konzoli", textbox = "Zde zadejte Lua kód, který chcete spustit", execute_code = "Spustit kód, který jste zadali", }, place_objects_window = { pick_up = "Přemístit objekt", cancel = "Změnit rozložení dveří a oken", buy_sell = "Koupit/prodat objekty", confirm = "Potvrdit", }, staff_list = { happiness = "Ukazuje spokojenost zaměstnanců", researcher_train = "Absolvoval %d%% školení na Výzkumníka", ability_2 = "Schopnost zaměstnance", surgeon_train = "Absolvoval %d%% školení na Chirurga", tiredness = "Ukazuje únavu zaměstnanců", psychiatrist = "Kvalifikovaný Psychiatr", sack = "Propustit zaměstnance", next_person = "Zobrazit další stránku", researcher = "Kvalifikovaný Výzkumník", handymen = "Zobrazit seznam Údržbářů zaměstnaných v této nemocnici", surgeon = "Kvalifikovaný Chirurg", ability = "Ukazuje schopnost zaměstnanců", salary = "Sou�asný plat zaměstnance", skills = "Kvalifikace", happiness_2 = "Spokojenost Zaměstnance", prev_person = "Zobrazit předchozí stránku", tiredness_2 = "Únava Zaměstnance", nurses = "Zobrazit seznam Sester zaměstnaných v této nemocnici", doctors = "Zobrazit seznam Doktorů zaměstnaných v této nemocnici", close = "Zavřít Správu zaměstnanců", bonus = "Zaplatit zaměstnanci prémii ve výši 10% platu", pay_rise = "Zvýšit trvale plat zaměstnance o 10%", doctor_seniority = "Zkušenost Doktora", detail = "Důraz na Detail", view_staff = "Zobrazit profil zaměstnance", psychiatrist_train = "Absolvoval %d%% školení na Psychiatra", receptionists = "Zobrazit seznam Recep�ních zaměstnaných v této nemocnici", }, objects = { dna_fixer = "23 OB_DNA_FIXER", op_sink1 = "33 OB_OP_SINK_1", litter_bomb = "Odpadková bomba: zahltí nepořádkem nemocnice konkurenta", auto_autopsy = "Auto-Pitva�: velmi efektivní i kontroverzní pomoc při výzkumu", door = "Dveře: lidé je �asto zavírají a otevírají", projector = "37 OB_PROJECTOR", radiation_shield = "28 OB_RAD_SHIELD", entrance_left = "58 OB_ENT_LDOOR", operating_table = "30 OB_OP_TABLE", bed2 = "nepoužito", cabinet = "Kartotéka: obsahuje složky pacientů, poznámky a dokumenty výzkumu", console = "15 OB_SCANNER_CONSOLE", bed = "Postel: hodně nemocní lidé na nich leží", couch = "18 OB_COUCH", drinks_machine = "Automat na Nápoje: zabraňuje žízni pacientů a poskytuje výdělek", shower = "54 OB_DECON_SHOWER", electrolyser = "46 OB_ELECTRO", table2 = "12 OB_BTABLE", radiator = "Radiátor: poskytuje teplo ve vaší nemocnici", chair = "Židle: pacienti na nich sedí a povídají o svých nemocech", jelly_moulder = "47 OB_JELLY_VAT", computer = "Po�íta�: klí�ová sou�ást rychlého výzkumu", ultrascanner = "22 OB_ULTRASCAN", bin = "Koš: pacienti sem házejí své odpadky", surgeon_screen = "35 OB_SURGEON_SCREEN", slicer = "26 OB_SLICER", bed3 = "nepoužito", x_ray = "27 OB_XRAY", video_game = "Videohra: nechte vaše zaměstnance odpo�inout si u Petrisu", atom_analyser = "Analyzátor atomů: umístěn ve výzkumné laboratoři, tento stroj zrychlí celý výzkumný proces", inflator = "Hustilka: lé�í lidi s Nafouknutou Hlavou", toilet = "Záchod: pacienti to, eh, používají na vy víte co", x_ray_viewer = "29 OB_XRAY_VIEWER", cast_remover = "24 OB_CAST_REMOVE", entrance_right = "59 OB_ENT_RDOOR", litter = "Odpadek: pohozen na zem, protože pacient nenalezl koš, do kterého by ho mohl hodit", cardio = "13 OB_CARDIO", plant = "Rostlina: udržuje pacienty spokojené a �istí vzduch", pool_table = "Kule�níkový stůl: zaměstnanci mohou předstírat, že umí hrát kule�ník", tv = "TV: zajistěte, aby zaměstnanci nezmeškali jejich oblíbené telenovely", sofa = "Pohovka: zaměstnanci odpo�ívající v Místnosti pro zaměstnance budou tiše sedět na pohovce, ledaže by existoval lepší způsob, jak si odpo�inout", lamp = "Lampa: září z ní světlo a tím umožňuje zaměstnanci vidět", fire_extinguisher = "Hasicí přístroj: zmenšuje nebezpe�í selhávajících strojů", bench = "Seda�ka: poskytuje sezení pro jednoho pacienta, dělá �ekání pohodlnější", scanner = "14 OB_SCANNER", op_sink2 = "34 OB_OP_SINK_2", toilet_sink = "Umyvadlo: vaši pacienti uvědomělejší v hygieně si můžou v tomto umýt své zašpiněné ruce. Pokud není dostatek umyvadel, pacienti budou nespokojeni", hair_restorer = "25 OB_HAIR_RESTORER", desk = "Stůl: důležitý pro Doktora, aby si na něj mohl dát PC", swing_door2 = "53 OB_DOUBLE_DOOR2", lecture_chair = "Přednášková židle: vaši školící se Doktoři zde sedí a píšou si poznámky, nudí se a jen tak si �márají. Čím více židlí umístíte, tím více Doktorů můžete školit", pharmacy_cabinet = "Lékárna: zde jsou uchovávány různé vodi�ky a prášky", screen = "16 OB_SCREEN", table1 = "Stůl (ODSTRANĚNO): obsahuje kolekci �asopisů, aby udržoval �ekající pacienty spokojené", gates_of_hell = "48 OB_HELL", blood_machine = "42 OB_BLOOD_MC", comfortable_chair = "61 OB_COMFY_CHAIR", bookcase = "Knihovna: skládka nikdy neotevřených knih, díky kterým Doktoři vypadají chytřeji", reception_desk = "Recepce: vyžaduje Recep�ní, která posílá pacienty do správných dveří", crash_trolley = "20 OB_CRASH", swing_door1 = "52 OB_DOUBLE_DOOR1", skeleton = "Kostlivec: používán ke cvi�ebním ú�elům a na duši�ky jako dekorace", rathole = "Byte�ek krysí rodinky, které se zalíbila vaše špinavou�ká nemocnice", }, custom_campaign_window = { choose_campaign = "Zvolte kampaň pro zobrazení informací o ní", start_selected_campaign = "Na�íst první úroveň kampaně", duplicates_warning = "Podívejte se do konzole pro specifické chyby", }, save_map_window = { map = "Přepsat mapu %s", new_map = "Zadejte název nové uložené mapy", }, } place_objects_window = { drag_blueprint = "Táhnutím myší za okraje upravte návrh, dokud nebudete spokojeni s rozměry místnosti", place_objects = "Nyní umístěte všechny objekty do místnosti (pravým tla�ítkem je můžete oto�it)", place_objects_in_corridor = "Umístěte objekty na chodbě", place_door = "Umístěte dveře", pick_up_object = "Klikněte na objekt pro zvednutí a přesunutí", confirm_or_buy_objects = "Můžete stavbu místnosti potvrdit, nebo dokoupit �i přesunout objekty", place_windows = "Umístěte okna pokud chcete, pak klikněte na potvrdit", } transactions = { cure = "Lé�ba", eoy_bonus_penalty = "Bonus/Penalizace za ro�ní ohodnocení", wages = "Platy", machine_replacement = "Pořízení nového stroje", cheat = "Peníze získané cheaty", bank_loan = "Půj�ka od banky", build_room = "Postavení místnosti", research = "Náklady na výzkum", general_bonus = "Obecný bonus", heating = "Náklady na vytápění", buy_object = "Nákup objektu", cure_colon = "Lé�ba:", emergency_bonus = "Bonus za pohotovost", epidemy_coverup_fine = "Pokuta za nenahlášení epidemie", research_bonus = "Bonus za výzkum", buy_land = "Nákup nového pozemku", final_treat_colon = "Kone�ná lé�ba:", drug_cost = "Cena léku", personal_bonus = "Vyplacení osobní prémie", severance = "Odškodné", jukebox = "Příjmy: Jukebox", drinks = "Příjmy: Automaty na nápoje", vaccination = "O�kování", insurance_colon = "Pojištění:", epidemy_fine = "Pokuta za vznik epidemie", deposit = "Záloha za lé�bu", compensation = "Odškodné vlády", loan_interest = "Úrok z půj�ky", sell_object = "Prodej objektu", vip_award = "Peněžní odměna od VIP", treat_colon = "Lé�ba:", loan_repayment = "Splacení půj�ky", eoy_trophy_bonus = "Bonus za Ocenění na konci roku", advance_colon = "Pokrok:", hire_staff = "Najmutí zaměstnance", overdraft = "Úrok z pře�erpání ú�tu", remove_room = "Odklizení rozbité místnosti", } machine_menu = { percentage = "%d%", ratio = "Poměr", machine = "Stroj", remaining_strength = "Zbývá", close = "Zavřít", total_strength = "Celk. výdrž", status = "Stav", } diseases = { jellyitis = { cure = "Lé�ba - Pacient je šetrně vhozen do Formy na Sliz ve speciální místnosti.", cause = "Pří�ina - Dieta využívající k hubnutí želatinu.", name = "Slizitida", symptoms = "Příznaky - Nadměrný třes, �asté padání a podivná konzistence.", }, hairyitis = { cure = "Lé�ba - Elektrolytický stroj odstraní chloupky a uzavře póry.", cause = "Pří�ina - Dlouhodobé vystavení úplňku.", name = "Chlupatida", symptoms = "Příznaky - Pacient má výrazně vyvinutý �ich.", }, golf_stones = { cure = "Lé�ba - Kameny musí odstranit dvojice šikovných Chirurgů během operace.", cause = "Pří�ina - Časté pacientovo pojídání tu�ných jídel z vozovky.", name = "Žulové Kameny", symptoms = "Symptomy - Delirium a zvýšený stud.", }, discrete_itching = { cure = "Lé�ba - Pacient vypije lékárnický lepkavý sirup k zabránění svědění kůže.", cause = "Pří�ina - Malý hmyz s ostrými zoubky.", name = "Extrémní Svědění", symptoms = "Příznaky - Škrábání pacienta na místě nepatrných �ervených skvrnek.", }, serious_radiation = { cure = "Lé�ba - Pacient musí být umístěn do Dekontamina�ní Sprchy a řádně vykartá�ován.", cause = "Pří�ina - Záměna vzorku plutonia za žvýka�ku.", name = "Vážné Osvícení", symptoms = "Příznaky - Pacienti s touto nemocí se cítí velmi, velmi mizerně.", }, broken_wind = { cure = "Lé�ba - Pacientovi je podán lék s výraznou vůní fialek.", cause = "Pří�ina - Cvi�ení na hrazdě po dojezení hrachové kaše.", name = "Odražené Větry", symptoms = "Příznaky - Kolí�ky na nosech osob stojících za pacientem.", }, ruptured_nodules = { cure = "Lé�ba - Dva kvalifikovaní Chirurgové musí uzlinky odstranit použitím pevných rukou.", cause = "Pří�ina - Bungee jumping za studeného po�así.", name = "Roztržené Uzlinky", symptoms = "Příznaky - Neschopnost si pohodlně sednout.", }, invisibility = { cure = "Lé�ba - Barevný inkoust vypitý v Lékárně brzy pacienta obarví do plné pozorovatelnosti.", cause = "Pří�ina - Kousnutí radioaktivním (a neviditelným) mravencem.", name = "Neviditelnost", symptoms = "Příznaky - Pacienti nijak netrpí. Ba naopak, někteří zneužívají této nemoci k provádění kanadských žertíků na své známé.", }, infectious_laughter = { cure = "Lé�ba - Kvalifikovaný Psychiatr musí pacientovi připomenout závažnost jeho nemoci.", cause = "Pří�ina - Časté sledování klasických komedií.", name = "Nakažlivý Smích", symptoms = "Příznaky - Bezmocné potla�ování smíchu a opakování starých vtipů.", }, diag_blood_machine = { name = "Diag Hemogram", }, general_practice = { name = "Diag Prakt. Lékař", }, fractured_bones = { cure = "Lé�ba - Pacient je mumifikován v sádře. Následně je třeba přebyte�nou sádru odřezat na míru pacienta.", cause = "Pří�ina - Pád z výšky ega na výšku IQ pacienta.", name = "Zlomené Kosti", symptoms = "Příznaky - Hlasité křupnutí a nezvyklé tvary kon�etin.", }, corrugated_ankles = { cure = "Lé�ba - Kře� způsobená lehce jedovatou směsí bylin navrátí kotníky do původní podoby.", cause = "Pří�ina - Přejíždění zpomalovacích prahů v plné rychlosti.", name = "Zvlněné Kotníky", symptoms = "Příznaky - Pacientovi nepadnou jeho oblíbené boty.", }, diag_psych = { name = "Diag Psychiatr", }, sweaty_palms = { cure = "Lé�ba - Psychiatr musí pacientovi jeho výmysly doslova vymluvit.", cause = "Pří�ina - Strach z pracovních pohovorů.", name = "Zpocené Dlaně", symptoms = "Příznaky - Potřást si rukou s pacientem je jako potřást si s �erstvě nacucanou houbou.", }, diag_x_ray = { name = "Diag Rentgen", }, diag_ward = { name = "Diag Lůžkové Oddělení", }, slack_tongue = { cure = "Lé�ba - Jazyk je umístěn do Seká�ku a je rychle, ú�inně a bolestně odstraněn.", cause = "Pří�ina - Vě�né diskutování o televizních seriálech.", name = "Ochablý Jazyk", symptoms = "Příznaky - Jazyk se natáhne do pětinásobku své původní délky.", }, sleeping_illness = { cure = "Lé�ba - Vypití velmi silné kávy.", cause = "Pří�ina - Hyperaktivní spánková žláza pár centimetrů nad ústy.", name = "Spavá Nemoc", symptoms = "Příznaky - Nepřekonatelná touha se všude vyspat.", }, uncommon_cold = { cure = "Lé�ba - Štamprle přísně tajného, přesně připraveného a drahého extraktu ze švestek.", cause = "Pří�ina - Kašlající prcek od souseda.", name = "Silná Rými�ka", symptoms = "Příznaky - Kýchání, bílý jazyk a velký �ervený nos.", }, transparency = { cure = "Lé�ba - Drahý lék vyrobený z vychlazené obarvené vody tuto nemoc vylé�í.", cause = "Pří�ina - Lízání jogurtu z ví�ka.", name = "Průhlednost", symptoms = "Příznaky - Svaly pacienta fungují jako dokonalé sklo.", }, diag_cardiogram = { name = "Diag Kardiogram", }, diag_general_diag = { name = "Diag Vyšetřovna", }, spare_ribs = { cure = "Lé�ba - Žebra musí být vyňata dvěma Chirurgy a předána pacientovi v igelitovém sá�ku.", cause = "Pří�ina - Hltání pilulek bez zapíjení.", name = "Přebyte�ná Žebra", symptoms = "Příznaky - Pacient si připadá, jako by byl vyztužen.", }, the_squits = { cure = "Lé�ba - Lepkavá směs vláknitých lékárenských chemikálií zalepí neklidný zažívací trakt.", cause = "Pří�ina - Jezení pizzy nalezené za sporákem.", name = "Hna�ka", symptoms = "Příznaky - Ehm... Tohle jistě znáte.", }, broken_heart = { cure = "Lé�ba - Dva Chirurgové otevřou hrudník a, ani nedutaje, něžně srdce slepí izolepou.", cause = "Pří�ina - Někdo bohatší, mladší a štíhlejší než pacient.", name = "Zlomené Srdce", symptoms = "Příznaky - Neustávající plá� a ruce plné fotek z dovolené s drahou polovi�kou.", }, baldness = { cure = "Lé�ba - Umělé vlasy z neprodejných paruk jsou bez anestezie nasázeny zpátky do pacientovy hlavy.", cause = "Pří�ina - Lhaní a vymýšlení si příběhů pro zvýšení popularity.", name = "Plešatost", symptoms = "Příznaky - Povrch hlavy připomínající zrcadlo.", }, bloaty_head = { cure = "Lé�ba - Nafouknutá hlava se napřed propíchne, velmi opatrně a přesně od oka, pak je nafouknuta na správný tlak s použitím chytré mašinky.", cause = "Pří�ina - Čichání sýra a pití nefiltrované dešťové vody.", name = "Nafouknutá Hlava", symptoms = "Příznaky - Pacient se cítí velmi nekomfortně.", }, gut_rot = { cure = "Lé�ba - Pacientovi je podán výběr rozpuštěných chemikálií, které pokryjí stěnu žaludku.", cause = "Pří�ina - Sousedova domácí borovi�ka, co nemocné uzdravuje.", name = "Shnilé Vnitřnosti", symptoms = "Příznaky - Žádný kašel, ale také žádná pokrývka stěny žaludku.", }, iron_lungs = { cure = "Lé�ba - Dva Chirurgové na Opera�ním Sále operací odstraní plíce pevné jako sádra.", cause = "Pří�ina - Čerstvý městský smog smíchaný s drobky kebabu.", name = "Železné Plíce", symptoms = "Příznaky - Schopnost vdechovat oheň a hlasitě kři�et pod vodou.", }, chronic_nosehair = { cure = "Lé�ba - Pacientovi je v lékárně podán lék stejné kvality jako pro všechny ostatní.", cause = "Pří�ina - Pohrdavé �ichání k chudším lidem v okolí.", name = "Chronické Chlupy v Nose", symptoms = "Příznaky - Knír z chlupů z nosu, ve kterých by si i �áp mohl udělat hnízdo.", }, kidney_beans = { cure = "Lé�ba - Dva Chirurgové musí fazole pinzetou odstranit, aniž by se dotkli okrajů ledviny.", cause = "Pří�ina - Chroupání kostek ledu v nápojích.", name = "Ledvinové Fazole", symptoms = "Příznaky - Bolest a �asté výlety na záchod.", }, fake_blood = { cure = "Lé�ba - Uklidnění Psychiatrem je jediný způsob, jak tuto poruchu řešit.", cause = "Pří�ina - Pacient je �astou obětí kanadských žertíků.", name = "Falešná Krev", symptoms = "Příznaky - Pacientovi v těle koluje �ervená kapalina, která se při styku s oble�ením vypařuje.", }, heaped_piles = { cure = "Lé�ba - Příjemný, přesto ú�inný kyselinný nápoj pro�istí pacienta důkladně zevnitř.", cause = "Pří�ina - Sezení na chladných, kamenných schodech.", name = "Nahromadění Zlatých Žil", symptoms = "Příznaky - Pacient má pocit, jako by seděl na hromádce zlaťá�ků.", }, gastric_ejections = { cure = "Lé�ba - Vypití speciálního lepidla zabrání �emukoliv opustit pacientovy vnitřnosti.", cause = "Pří�ina - Kořeněné mexické nebo indické jídlo.", name = "Žalude�ní Výstřelky", symptoms = "Příznaky - Pacientův oběd se vrací místy, kudy vcházel, ve zcela náhodných intervalech.", }, diag_ultrascan = { name = "Diag Ultraskener", }, alien_dna = { cure = "Lé�ba - DNA je mechanicky odstraněna, vy�ištěna od mimozemských �ástic a rychle navrácena na své místo.", cause = "Pří�ina - Skupinka chuligánů se zkumavkou mimozemské krve.", name = "Mimozemská DNA", symptoms = "Příznaky - Postupná proměna v mimozemšťana a touha zni�it lidskou civilizaci.", }, king_complex = { cure = "Lé�ba - Psychiatr vysvětlí pacientovi, jak neskute�ně směšně vypadá.", cause = "Pří�ina - Králův duch vstoupí do podvědomí pacienta, �ímž kompletně ovládne pacientovu mysl.", name = "Králův Komplex", symptoms = "Příznaky - Nošení barevné semišové obuvi a nadměrné jezení cheeseburgerů.", }, autopsy = { name = "Pitva", }, unexpected_swelling = { cure = "Lé�ba - Otok může být zmenšen vpichem akupunkturních jehel, což vyžaduje operaci a dva Chirurgy.", cause = "Pří�ina - Něco ne�ekaného.", name = "Ne�ekaný Otok", symptoms = "Příznak - Otok.", }, third_degree_sideburns = { cure = "Lé�ba - Proškolený Psycholog musí, za použití nejmodernějších technik, přesvěd�it pacienta, že jeho ú�es nestojí za nic.", cause = "Pří�ina - Melancholická touha po návratu 70. let", name = "Afrofie", symptoms = "Příznaky - Trvalá, zvoná�e, platformy a třpytkový make-up.", }, pregnancy = { cure = "Lé�ba - Dítě je odstraněno na Opera�ním Sále, umyto a představeno pacientovi.", cause = "Pří�ina - Alespoň jeden muž.", name = "Těhotenství", symptoms = "Příznaky - Neustávající touha jíst a nepřehlédnutelné pivní panděro.", }, diag_scanner = { name = "Diag Skener", }, tv_personalities = { cure = "Lé�ba - Vyškolený Psychiatr musí přesvěd�it pacienta, aby prodal svoji TV a koupil si rádio.", cause = "Pří�ina - Každodenní sledování televize.", name = "TV Osobnost", symptoms = "Příznaky - Postiženému se zdá, že by mohl být Klukem v akci.", }, } pay_rise = { poached = "%s mi nabídl %d. Jestliže mi nebudete platit stejně, tak jdu pry�.", regular = { [1] = "Jsem na pokraji sil. Potřebuji si hodně odpo�inout, navíc chci zvýšit plat o %d, pokud nechcete, aby se mé místo uvolnilo někomu, komu taková almužni�ka bude sta�it.", [2] = "Naprosto mě semlela únava. Potřebuji si odpo�inout a zvýšit plat o %d, tedy celkově chci měsí�ně %d. Udělejte to hned, Vy despoto.", [3] = "No tak. Dřu tady jako kůň. Přidejte mi měsí�ně %d a já zůstanu ve Vaší nemocnici.", [4] = "Už dlouho se cítím nešťastně. Požaduji zvýšení platu o %d, tím se dostaneme na %d měsí�ně. Jinak odcházím.", [5] = "Mí rodi�e mi říkali, že nemocni�ní personál má dobré platy. Takže mi zvyšte ten můj o %d, jinak za�nu produkovat po�íta�ové hry.", [6] = "Opravdu se zlobím. Máte mi platit férovou mzdu. Myslím si, že zvýšení o %d by mohlo zatím sta�it.", }, definite_quit = "Tady už mě neudrží ani zlaté hodinky s vodotryskem. Mám tohoto místa plné zuby.", } menu_list_window = { back = "Zpět", save_date = "Uloženo", name = "Název", ok = "OK", } misc = { low_res = "Nízké rozli.", send_message = "Poslat zprávu hrá�i %d", send_message_all = "Poslat zprávu všem hrá�ům", done = "Vše hotovo", pause = "Pozastavit", no_heliport = "Bu� ještě nebyly objeveny žádné nemoci, nebo na této mapě není heliport.", cant_treat_emergency = "Vaše nemocnice nemůže řešit tuto pohotovost, protože tuto nemoc ještě neznáte.", save_success = "Hra úspěšně uložena", not_yet_implemented = "(není ještě zprovozněno)", force = "Donutit", mouse = "Myš", grade_adverb = { extremely = "extrémně", moderately = "středně", mildly = "mírně", }, balance = "Stav ú�tu:", hospital_open = "Nemocnice otevřena veřejnosti", out_of_sync = "Hra není synchronizována", save_failed = "CHYBA: Hru se nepovedlo uložit", load_failed = "CHYBA: Uloženou hru nelze na�íst", epidemics_off = "Epidemie jsou vypnuty. Žádné další epidemie nevzniknou", earthquakes_off = "Zemětřesení jsou vypnuta", earthquakes_on = "Zemětřesení jsou opět zapnuta", epidemics_on = "Epidemie jsou opět zapnuty", epidemic_no_icon_to_toggle = "Nebylo možné ukázat/schovat ikony nakažení - žádná probíhající neodhalená epidemie", epidemic_no_diseases = "Nelze vytvořit epidemii - zatím nebyla odhalena žádná nakažlivá choroba", epidemic_no_receptionist = "Nelze vytvořit epidemii - nemáte Recepci nebo Recep�ní", invulnerable_machines_off = "Stroje se opět budou opotřebovávat a porouchávat.", invulnerable_machines_on = "Stroje se neopotřebovávají ani neporouchávají.", } progress_report = { win_criteria = "KRITÉRIA V�TĚZSTV�", more_drinks_machines = "Postavte více Automatů na nápoje. ", quite_unhappy = "Vaši lidé jsou trochu nešťastní. Co pár květin? ", too_cold = "Je tu příliš velká zima. Umístěte radiátory. ", header = "Hlášení o Postupu", free_build = "VOLNÉ STAVĚN�", too_hot = "Přehodnoťte vaši metodu vytápění. Je tu příliš horko. ", percentage_pop = "% populace", very_unhappy = "Vaši lidé jsou velmi nešťastní. ", } new_game_window = { easy = "Rezident (Jednoduché)", cancel = "Zpět", caption = "Kampaň", difficulty = "Obtížnost", option_off = "Vypnuto", option_on = "Zapnuto", tutorial = "První hra", hard = "Primář (Těžké)", medium = "Doktor (Střední)", start = "Zahájit", player_name = "Jméno hrá�e", } date_format = { daymonth = "%1% %2:months%", } research = { allocated_amount = "Přidělené množství", funds_allocation = "Přidělení financí", categories = { cure = "Nástroje pro lé�bu", drugs = "Výzkum léků", improvements = "Vylepšení", diagnosis = "Diagnostické nástroje", specialisation = "Specializace", }, } bank_manager = { current_loan = "Sou�asná půj�ka", balance = "Stav ú�tu", interest_payment = "Placený úrok", hospital_value = "Hodnota nemocnice", interest_rate = "Úroková míra", statistics_page = { balance = "Stav ú�tu", current_balance = "Aktuální stav ú�tu", date = "Datum", details = "Podrobnosti", money_out = "Výdaje", money_in = "Příjmy", }, inflation_rate = "Míra inflace", insurance_owed = "Pohledávky pojišťoven", } casebook = { cure = "Lé�ba", treatment_charge = "Poplatek za zákrok", reputation = "Reputace", research = "Soustředit výzkum", sent_home = "Odmítnuto", deaths = "Úmrtí", earned_money = "Vyděláno peněz", cure_desc = { hire_surgeons = "Potřebujete zaměstnat Chirurgy", improve_cure = "Zlepšit lé�bu", no_cure_known = "Žádná známá lé�ba", build_room = "Měli byste postavit %s", hire_nurses = "Měli byste zaměstnat Sestru", build_ward = "Potřebujete postavit Lůžkové Oddělení", hire_psychiatrists = "Musíte zaměstnat Psychiatra", cure_known = "Lé�ba", hire_doctors = "Potřebujete zaměstnat Doktora", }, cured = "Uzdravení", } original_credits = { [1] = " ", [2] = " ", [3] = " ", [4] = " ", [5] = " ", [6] = " ", [7] = " ", [8] = " ", [9] = " ", [10] = " ", [11] = " ", [12] = ":Navrhl a vytvořil", [13] = ":Bullfrog Productions", [14] = " ", [15] = ":Pluto Development Team", [16] = ",", [17] = "Mark Webley", [18] = "Gary Carr", [19] = "Matt Chilton", [20] = "Matt Sullivan", [21] = "Jo Rider", [22] = "Rajan Tande", [23] = "Wayne Imlach", [24] = "Andy Bass", [25] = "Jon Rennie", [26] = "Adam Coglan", [27] = "Natalie White", [28] = " ", [29] = " ", [30] = " ", [31] = ":Programování", [32] = ",", [33] = "Mark Webley", [34] = "Matt Chilton", [35] = "Matt Sullivan", [36] = "Rajan Tande", [37] = " ", [38] = " ", [39] = " ", [40] = ":Grafika", [41] = ",", [42] = "Gary Carr", [43] = "Jo Rider", [44] = "Andy Bass", [45] = "Adam Coglan", [46] = " ", [47] = " ", [48] = " ", [49] = ":Dodate�né programování", [50] = ",", [51] = "Ben Deane", [52] = "Gary Morgan", [53] = "Jonty Barnes", [54] = " ", [55] = " ", [56] = " ", [57] = ":Dodate�ná grafika", [58] = ",", [59] = "Eoin Rogan", [60] = "George Svarovsky", [61] = "Saurev Sarkar", [62] = "Jason Brown", [63] = "John Kershaw", [64] = "Dee Lee", [65] = " ", [66] = " ", [67] = " ", [68] = ":Úvodní video", [69] = ",", [70] = "Stuart Black", [71] = " ", [72] = " ", [73] = " ", [74] = ":Hudba a zvuky", [75] = ",", [76] = "Russell Shaw", [77] = "Adrian Moore", [78] = " ", [79] = " ", [80] = " ", [81] = ":Dodate�ná hudba", [82] = ",", [83] = "Jeremy Longley", [84] = "Andy Wood", [85] = " ", [86] = " ", [87] = " ", [88] = ":Hlas oznamovatelky", [89] = ",", [90] = "Rebecca Green", [91] = " ", [92] = " ", [93] = " ", [94] = ":Návrh úrovní", [95] = ",", [96] = "Wayne Imlach", [97] = "Natalie White", [98] = "Steven Jarrett", [99] = "Shin Kanaoya", [100] = " ", [101] = " ", [102] = " ", [103] = ":Skriptování", [104] = ",", [105] = "James Leach", [106] = "Sean Masterson", [107] = "Neil Cook", [108] = " ", [109] = " ", [110] = " ", [111] = ":Výzkum a vývoj", [112] = " ", [113] = ":Grafické jádro", [114] = ",", [115] = "Andy Cakebread", [116] = "Richard Reed", [117] = " ", [118] = " ", [119] = " ", [120] = ":Podpora výzkumu a vývoje", [121] = ",", [122] = "Glenn Corpes", [123] = "Martin Bell", [124] = "Ian Shaw", [125] = "Jan Svarovsky", [126] = " ", [127] = " ", [128] = " ", [129] = ":Knihovny a nástroje", [130] = " ", [131] = "Knihovna Dos a Win 95", [132] = ",", [133] = "Mark Huntley", [134] = "Alex Peters", [135] = "Rik Heywood", [136] = " ", [137] = " ", [138] = " ", [139] = ":Síťová knihovna", [140] = ",", [141] = "Ian Shippen", [142] = "Mark Lamport", [143] = " ", [144] = " ", [145] = " ", [146] = ":Zvuková knihovna", [147] = ",", [148] = "Russell Shaw", [149] = "Tony Cox", [150] = " ", [151] = " ", [152] = " ", [153] = ":Programování instalátoru", [154] = ",", [155] = "Andy Nuttall", [156] = "Tony Cox", [157] = "Andy Cakebread", [158] = " ", [159] = " ", [160] = " ", [161] = ":Morální podpora", [162] = ",", [163] = "Peter Molyneux", [164] = " ", [165] = " ", [166] = " ", [167] = ":Manažer testování", [168] = ",", [169] = "Andy Robson", [170] = " ", [171] = " ", [172] = " ", [173] = ":Hlavní testeři", [174] = ",", [175] = "Wayne Imlach", [176] = "Jon Rennie", [177] = " ", [178] = " ", [179] = " ", [180] = ":Testeři hraní", [181] = ",", [182] = "Jeff Brutus", [183] = "Wayne Frost", [184] = "Steven Lawrie", [185] = "Tristan Paramor", [186] = "Nathan Smethurst", [187] = " ", [188] = "Ryan Corkery", [189] = "Simon Doherty", [190] = "James Dormer", [191] = "Martin Gregory", [192] = "Ben Lawley", [193] = "Joel Lewis", [194] = "David Lowe", [195] = "Robert Monczak", [196] = "Dominic Mortoza", [197] = "Karl O'Keeffe", [198] = "Michael Singletary", [199] = "Andrew Skipper", [200] = "Stuart Stephen", [201] = "David Wallington", [202] = " ", [203] = "A všichni naši ostatní zkušení testeři hraní", [204] = " ", [205] = " ", [206] = " ", [207] = ":Technická podpora", [208] = ",", [209] = "Kevin Donkin", [210] = "Mike Burnham", [211] = "Simon Handby", [212] = " ", [213] = " ", [214] = " ", [215] = ":Marketing", [216] = ",", [217] = "Pete Murphy", [218] = "Sean Ratcliffe", [219] = " ", [220] = " ", [221] = " ", [222] = ":Děkujeme:", [223] = ",", [224] = "Tamara Burke", [225] = "Annabel Roose", [226] = "Chris Morgan", [227] = "Pete Larsen", [228] = " ", [229] = " ", [230] = " ", [231] = ":PR", [232] = ",", [233] = "Cathy Campos", [234] = " ", [235] = " ", [236] = " ", [237] = ":Dokumentace", [238] = ",", [239] = "Mark Casey", [240] = "Richard Johnston", [241] = "James Lenoel", [242] = "Jon Rennie", [243] = " ", [244] = " ", [245] = " ", [246] = ":Úprava dokumentace a balení", [247] = ",", [248] = "Caroline Arthur", [249] = "James Nolan", [250] = " ", [251] = " ", [252] = " ", [253] = ":Manažer lokalizace projektu", [254] = ",", [255] = "Carol Aggett", [256] = " ", [257] = " ", [258] = " ", [259] = ":Lokalizace", [260] = ",", [261] = "Sandra Picaper", [262] = "Sonia 'Sam' Yazmadjian", [263] = " ", [264] = "Bettina Klos", [265] = "Alexa Kortsch", [266] = "Bianca Normann", [267] = " ", [268] = "C.T.O. S.p.A. Zola Predosa (BO)", [269] = "Gian Maria Battistini", [270] = "Maria Ziino", [271] = "Gabriele Vegetti", [272] = " ", [273] = "Elena Ruiz de Velasco", [274] = "Julio Valladares", [275] = "Ricardo Martínez", [276] = " ", [277] = "Kia Collin", [278] = "CBG Consult", [279] = "Ulf Thor", [280] = " ", [281] = " ", [282] = " ", [283] = ":Produkce", [284] = ",", [285] = "Rachel Holman", [286] = " ", [287] = " ", [288] = " ", [289] = ":Producent", [290] = ",", [291] = "Mark Webley", [292] = " ", [293] = " ", [294] = " ", [295] = ":Vedoucí výroby", [296] = ",", [297] = "Andy Nuttall", [298] = " ", [299] = " ", [300] = " ", [301] = ":Operace", [302] = ",", [303] = "Steve Fitton", [304] = " ", [305] = " ", [306] = " ", [307] = ":Správa spole�nosti", [308] = ",", [309] = "Audrey Adams", [310] = "Annette Dabb", [311] = "Emma Gibbs", [312] = "Lucia Gobbo", [313] = "Jo Goodwin", [314] = "Sian Jones", [315] = "Kathy McEntee", [316] = "Louise Ratcliffe", [317] = " ", [318] = " ", [319] = " ", [320] = ":Vedení spole�nosti", [321] = ",", [322] = "Les Edgar", [323] = "Peter Molyneux", [324] = "David Byrne", [325] = " ", [326] = " ", [327] = ":Všichni v Bullfrog Productions", [328] = " ", [329] = " ", [330] = " ", [331] = ":Zvláštní poděkování", [332] = ",", [333] = "Všem ve Frimley Park Hospital", [334] = " ", [335] = ":Zvláště", [336] = ",", [337] = "Beverley Cannell", [338] = "Doug Carlisle", [339] = " ", [340] = " ", [341] = " ", [342] = ":Nepřestávejte myslet", [343] = " ", [344] = " ", [345] = " ", [346] = " ", [347] = " ", [348] = " ", [349] = " ", [350] = " ", [351] = " ", [352] = " ", [353] = " ", [354] = " ", [355] = " ", [356] = " ", [357] = " ", [358] = " ", [359] = " ", [360] = " ", [361] = ".", } competitor_names = { [1] = "RATH", [2] = "PRYMULA", [3] = "FANTOMAS", [4] = "DLAHA", [5] = "MENDEL", [6] = "ŠPIDLA", [7] = "KENT�N", [8] = "JANOUŠEK", [9] = "CIMRMAN", [10] = "OZZ�K", [11] = "HAMLET", [12] = "J�NOŠ�K", [13] = "WICHTERLE", [14] = "HIPPOKRATÉS", [15] = "MR�ČEK", [16] = "BABICA", [17] = "FORMAN", [18] = "FAUST", [19] = "JANDERA", [20] = "BOHOUŠEK", [21] = "CHOCHOLOUŠEK", [22] = "PAROUBEK", [23] = "SOVA", [24] = "M�ZL", } staff_title = { general = "Praktický", doctor = "Doktor", nurse = "Sestra", psychiatrist = "Psychiatr", receptionist = "Recep�ní", researcher = "Výzkumník", junior = "Rezident", surgeon = "Chirurg", consultant = "Primář", } room_descriptions = { gp = { [1] = "Kancelář Praktického Lékaře\n\n", [2] = "Toto je základní vyšetřovací místnost ve vaší nemocnici. Její dominantou je velmi chytrý po�íta� s doktorem, který je jediný schopen odhadnout diagnózu. Proto jsou sem posíláni všichni pacienti. Čím větší je místnost a �ím více předmětů do ní umístíte, tím vyšší je prestiž doktora (to platí pro všechny místnosti).\n\n", [3] = "Kancelář Praktického Lékaře vyžaduje jakéhokoliv Doktora. ", }, x_ray = { [1] = "Rentgen\n\n", [2] = "Rentgen pořizuje snímky vnitřku pacientů použitím rentgenového záření, �ímž doktorům poskytuje dobrou představu o tom, co se v nich nachází.\n\n", [3] = "Rentgen vyžaduje jakéhokoliv Doktora. Také vyžaduje údržbu. ", }, toilets = { [1] = "Toalety\n\n", [2] = "Pacienti, kteří cítí volání přírody, si budou muset uleh�it v pohodlí vašich toaletních zařízení. Můžete postavit další kabinky a umyvadla pokud o�ekáváte spousty návštěvníků. V některých případech byste mohli zvážit postavit dalších toalet někde jinde v nemocnici. ", }, tv_room = { [1] = "TV M�STNOST NEN� POUŽITA", }, general_diag = { [1] = "Vyšetřovna\n\n", [2] = "Pacienti, kteří vyžadují další vyšetření, jsou sem posláni na prohlídku. Pokud praktický lékař nepřijde na to, co je s pacientem špatně, na Vyšetřovně se na to �asto přijde. Odtud je poslán zpátky do Kanceláře Praktického Lékaře k analýze výsledků tohoto vyšetření.\n\n", [3] = "Vyšetřovna vyžaduje jakéhokoliv Doktora. ", }, hair_restoration = { [1] = "Sáze� Vlasů\n\n", [2] = "Pacienti trpící extrémním případem Plešatosti budou nasměrování směrem k Sáze�i Vlasů v této Klinice. Doktor bude obsluhovat stroj, který rychle zasází pacientovu hlavu novými vlasy téměř přijatelné kvality.\n\n", [3] = "Sáze� Vlasů vyžaduje jakéhokoliv Doktora. Také vyžaduje pravidelnou údržbu. ", }, ward = { [1] = "Lůžkové Oddělení\n\n", [2] = "Pacienti jsou zde drženi na pozorování, které zajišťuje Sestra. Zůstávají zde také před provedením operace. Některým slouží poležení s �ajem s citronem i jako lé�ba.\n\n", [3] = "Lůžkové Oddělení vyžaduje alespoň jednu Sestru. ", }, scanner = { [1] = "Skener\n\n", [2] = "Pacienti jsou přesně vyšetřeni použitím důmyslného Skeneru. Následně si jdou pro vásledky k praktickému lékaři.\n\n", [3] = "Skener vyžaduje jakéhokoliv Doktora. Také vyžaduje údržbu. ", }, slack_tongue = { [1] = "ORL (Ochablojazyková Rychlo Lé�ebna)\n\n", [2] = "Pacienti s diagnózou Ochablého Jazyka jsou posláni na tuto kliniku k vylé�ení. Doktor použije velmi moderní a precizní stroj k natáhnutí a ušmiknutí jazyka, �ímž jej navrátí do správné podoby.\n\n", [3] = "ORL vyžaduje jakéhokoliv Doktora. Také vyžaduje údržbu. ", }, cardiogram = { [1] = "Kardiogram\n\n", [2] = "Nesportovní pacienti jsou zde podrobeni nenáviděnému běhu, �ímž se jim vzteky zvýší tlak. Tato hodnota pomáhá praktikovi stanovit diagnózu.\n\n", [3] = "Kardiogram vyžaduje jakéhokoliv Doktora. Také vyžaduje údržbu. ", }, decontamination = { [1] = "Oddělení Dekontaminace\n\n", [2] = "Pacienti, kteří byli vystaveni Radiaci, jsou rychle odkázáni na Oddělení Dekontaminace. V této místnosti se nachází Dekontamina�ní sprcha, ve které jsou pacienti nejdříve omyti vodou a mýdlem a nakonec důkladně vykartá�ováni.\n\n", [3] = "Oddělení Dekontaminace vyžaduje jakéhokoliv Doktora. Také potřebuje údržbu. ", }, dna_fixer = { [1] = "Genex 2000\n\n", [2] = "Pacientům, jejichž DNA obsahuje mimo jiné geny pro zelenou kůži, musí být DNA vyjmuta, důkladně vy�ištěna a navrácena zpět ve všech buňkách. Stroj Genex 2000 je velmi složitý kus vybavení a není od věci mít u něj hasicí přístroj.\n\n", [3] = "Stroj Genex 2000 vyžaduje pravidelnou kontrolu od Údržbáře. Také vyžaduje Doktora s Výzkumnou kvalifikací k jeho fungování. ", }, training = { [1] = "U�ebna\n\n", [2] = "Vaši Rezidenti a Doktoři můžou studiem v této místnosti získat cenné další kvalifikace. Primář s kvalifikací Chirurgickou, Výzkumnou nebo Psychiatrickou bude předávat svou kvalifikaci všem Doktorům, kteří jsou zde vyu�ování. Doktoři, kteří už tyto kvalifikace mají, náhle zjistí, že je mohou používat efektivněji.\n\n", [3] = "U�ebna vyžaduje Primáře k výuce. ", }, electrolysis = { [1] = "Oddělení Elektrolýzy\n\n", [2] = "Pacienti s Chlupatidou jsou posláni do této místnosti, kde zvláštní stroj jménem Elektrolyzér elektricky vlasy spálí a uzavře póry použitím směsi ne nepodobné maltě.\n\n", [3] = "Elektrolyzér vyžaduje jakéhokoliv Doktora. Také potřebuje údržbu od Údržbáře. ", }, jelly_vat = { [1] = "Klinika Slizu\n\n", [2] = "Pacienti prokletí srandovní nemocí Slizitidou se musí dokymácet do Kliniky Slizu a být umístěni do Formy na Sliz. Vylé�í je to způsobem, který stále není ve zdravotnických kruzích plně pochopen ani doceněn.\n\n", [3] = "Klinika Slizu vyžaduje jakéhokoliv Doktora. Také potřebuje opravy od Údržbáře. ", }, research = { [1] = "Výzkumná Laboratoř\n\n", [2] = "Nové léky a postupy lé�by vymýšlí a zdokonalují mozky ve Výzkumné Laboratoři. Toto je důležitá �ást vaší nemocnice, která bude dělat zázraky v úspěšnosti vaší lé�by.\n\n", [3] = "Výzkumná Laboratoř vyžaduje alespoň jednoho Doktora s kvalifikací Výzkumníka. ", }, inflation = { [1] = "Hustírna\n\n", [2] = "Pacienti s bolestivou (i když legra�ní) nemocí Nafouknutá Hlava musí přijít do Hustírny, kde je předimenzovaná lebka opatrně propíchnuta a nahuštěna na správný tlak.\n\n", [3] = "Hustírna vyžaduje jakéhokoliv Doktora. Také vyžaduje soustavnou opravu od Údržbáře. ", }, no_room = { [1] = "", }, blood_machine = { [1] = "Hemogram\n\n", [2] = "Hemogram je kus vyšetřovacího vybavení, které kontroluje buňky v pacientově krvi. Pokud mají špatnou barvu, dá se tento poznatek využít k diagnóze.\n\n", [3] = "Hemogram vyžaduje jakéhokoliv Doktora. Také vyžaduje údržbu. ", }, psych = { [1] = "Psychiatrie\n\n", [2] = "Pacienti s diagnózou psychiatrického onemocnění musí navštívit Psychiatrii, kde na ně �eká psychiatr na pohodlném křesle. Oni si následně lehnou na jetou pohovku a jsou správně diagnostikováni a případně rovnou i lé�ení pomocí smlouvání.\n\n", [3] = "Psychiatrie vyžaduje Psychiatricky kvalifikovaného Doktora. ", }, fracture_clinic = { [1] = "Ortopedie\n\n", [2] = "Ti pacienti, kteří mají takovou smůlu, že mají Zlomené Kosti, se dobelhají sem. Stroj na Odstranění Sádry použije ú�inné průmyslové lasery k uříznutí jakékoli zatuhnuté sádry, což pacienta jen „lehce štípne“.\n\n", [3] = "Ortopedie vyžaduje Sestru. Také �as od �asu vyžaduje údržbu. ", }, ultrascan = { [1] = "Ultraskener\n\n", [2] = "Ultraskener je složitě vyvinutý skener schopný přiblížení 1,1x. Cena je sice vysoká, ale díky svým úžasným schopnostem dokáže lépe a rychleji diagnostikovat pacienty.\n\n", [3] = "Ultraskener vyžaduje jakéhokoliv Doktora. Také vyžaduje údržbu. ", }, staff_room = { [1] = "Místnost pro Zaměstnance\n\n", [2] = "Vaši zaměstnanci se při provádění jejich práce unaví. Tuto místnost potřebují, aby si odpo�inuli a obnovili síly. Unavení zaměstnanci jsou pomalí, požadují více peněz a nakonec i odejdou. Také dělají více chyb. Postavení místnosti pro debatní kroužky a možnost závislosti na videohrách je od únavy odradí. Ujistěte se, že je tam místo pro více zaměstnanců najednou. ", }, pharmacy = { [1] = "Lékárna\n\n", [2] = "Pacienti, kteří byli vyšetřeni a kterým je předepsán některý z lektvarů, musí navštívit Lékárnu, aby si ho vzali. Je dobré zmínit, že lektvarů budete muset míchat hodně, takže možná byste mohli chtít později postavit další Lékárnu.\n\n", [3] = "Lékárna vyžaduje Sestru. ", }, operating_theatre = { [1] = "Opera�ní Sál\n\n", [2] = "Na tomto místě probíhají veškeré chirurgické zákroky (ob�as doprovázené komickými �ísly). Jedná se o �asto používanou sou�ást nemocnice.\n\n", [3] = "Opera�ní Sál vyžaduje dva Doktory s Chirurgickými kvalifikacemi. ", }, } queue_window = { num_expected = "O�ekáváno", num_entered = "Po�et návštěvníků", max_queue_size = "Max velikost fronty", num_in_queue = "Velikost fronty", } debug_patient_window = { caption = "Pacient pro ladění", item = "Vytvoří ladicího pacienta s %s", } totd_window = { next = "Další Rada", previous = "Předchozí Rada", tips = { [1] = "Každá nemocnice potřebuje Recepci a Kancelář Praktického Lékaře, aby mohla fungovat. Poté záleží na tom, jací pacienti navštěvují vaši nemocnici. Lékárna se ale nikdy neztratí.", [2] = "Stroje, jako je Hustilka, potřebují údržbu. Zaměstnejte jednoho nebo dva Údržbáře pro opravu vašich strojů, jinak riskujete, že se vaši pacienti a zaměstnanci zraní.", [3] = "Po chvíli se vaši zaměstnanci unaví. Ujistěte se, že postavíte místnost pro zaměstnance, aby si mohli odpo�inout.", [4] = "Umístěte dostatek radiátorů, aby vašim pacientům a zaměstnancům bylo teplo, jinak budou nešťastní. Použijte Mapu města k nalezení míst ve vaší nemocnici, která potřebují vytopit více.", [5] = "Doktorova úroveň zkušeností výrazně ovlivňuje kvalitu a rychlost jeho diagnóz. Umístěte zkušeného doktora do vaší Kanceláře a nebudete potřebovat tolik dodate�ných diagnostických místností.", [6] = "Rezidenti a Doktoři můžou své dovednosti zlepšit výukou od Primáře v u�ebně. Pokud Primář má nějaké kvalifikace (Chirurg, Psychiatr nebo Výzkumník), tak také tyto vědomosti předá svým žákům.", [7] = "Zkusili jste zadat evropské �íslo tísňového volání (112) do faxu? Nezapomeňte si zapnout zvuk!", [8] = "Jistá nastavení, jako např. rozlišení obrazovky a jazyk, můžete upravit v okně nastavení, které naleznete jak v hlavním menu, tak i ve hře.", [9] = "Vybrali jste jiný jazyk než angli�tina, ale přesto je všude anglický text? Pomozte nám přeložit chybějící texty do vašeho jazyka!", [10] = "Tým CorsixTH hledá posily! Zajímá vás programování, překládání, nebo vytváření grafiky pro CorsixTH? Kontaktuje nás na našem Discordu, případně se podívejte na naše stránky.", [11] = "Pokud naleznete chybu, ohlaste ji prosím na našem GitHubu: github.com/CorsixTH/CorsixTH/issues", [12] = "Každá úroveň má jisté požadavky, které musíte splnit předtím, než můžete pokra�ovat do další. Podívejte se na Postup v úrovni, abyste viděli, co vám k výhře ještě chybí.", [13] = "Pokud chcete upravit nebo odstranit existující místnost, můžete tak u�init pomocí tla�ítka Upravit místnosti/položky, které naleznete dole na panelu nástrojů.", [14] = "V davu �ekajících pacientů můžete rychle najít ty, kteří �ekají na ur�itou místnost tím, že nad tuto místnost najedete kurzorem myši.", [15] = "Klikněte na dveře místnosti, abyste viděli její frontu. Zde můžete udělat drobné úpravy, jako např. změnit pořadí fronty nebo poslat pacienta do jiné místnosti.", [16] = "Nešťastní zaměstnanci budou žádat o zvýšení platu �astěji. Ujistěte se, že vaši zaměstnanci pracují v pohodlném prostředí, abyste tomuto zabránili.", [17] = "Pacienti budou mít žízeň, zatímco �ekají ve vaší nemocnici, a pokud zvýšite teplotu, bude žízeň ještě vyšší! Umístěte Automaty na Nápoje ve strategických pozicích pro správnou hydrataci.", [18] = "Můžete před�asně ukon�it proces vyšetření a hádat lé�bu, pokud jste se již s nemocí setkali. Uvědomte si ale, že toto může zvýšit riziko špatné lé�by, což způsobí smrt pacienta.", [19] = "Pohotovost může být dobrým zdrojem peněz navíc, za předpokladu, že máte dostate�né kapacity na v�asné zvládnutí pacientů pohotovosti.", [20] = "Věděli jste, že můžete Údržbářům nastavit parcely, kde mají pracovat? Sta�í v jejich profilu kliknout na text „Všude“ a postupně se proklikat k parcele, kde má Údržbář pracovat.", }, } information = { custom_game = "Vítejte v CorsixTH. Užijte si tuto vytvořenou mapu!", cannot_restart = "Bohužel, tato hra byla uložena dříve, než byla zavedena funkce restart.", no_custom_game_in_demo = "Je nám líto, ale ve zkušební verzi nemůžete hrát žádné vytvořené mapy (chybějící grafiky, zvuky atd.).", very_old_save = "Tuto hru jste hráli ve starší verzi a několik věcí se změnilo. Měli byste zvážit restartování úrovně, aby vše fungovalo tak, jak má.", cheat_not_possible = "Tento cheat nelze v této úrovni použít. Už ani podvádět vám nejde, to je život, co?", level_lost = { [1] = "Tak to se úplně nepovedlo. Hodně štěstí příště!", [2] = "Důvod, pro� jste prohráli:", reputation = "Vaše reputace se kamsi vytratila, přitom nesměla jít pod %d.", balance = "Stav vašeho ú�tu klesl pod bod mrazu, přitom nejhůře měl být %d.", percentage_killed = "Jsme nemocnice, ne jatka. Nesmíte zabít více než %d %% pacientů.", cheat = "Snad to víte sami. A pokud ne, tak si propříště cheaty pořádně pro�těte.", staff_happiness = "Průměrná spokojenost zaměstnanců v nemocnici spadla pod %d%.", patient_happiness = "Průměrná spokojenost pacientů v nemocnici spadla pod %d%.", }, } errors = { minimum_screen_size = "Minimální rozlišení obrazovky je %dx%d.", map_file_missing = "Nelze nalézt soubor s mapou %s", dialog_missing_graphics = "Soubory z demoverze toto dialogové okno neobsahují", load_prefix = "CHYBA při na�ítání hry: ", unavailable_screen_size = "Nastavené rozlišení obrazovky není dostupné v režimu celé obrazovky.", save_prefix = "CHYBA při uložení hry: ", alien_dna = "POZN�MKA: Pro animaci s Mimozemskou DNA neexistují animace pro sednutí, otevírání, klepání na dveře atd. Proto se pacienti při těchto �innostech, stejně jako v Theme Hospital, do�asně změní na normálně vypadající pacienty, a pak se změní zpět. Tito pacienti se v nemocnici objeví pouze pokud jsou v úrovni povoleni", fractured_bones = "POZN�MKA: Animace pacientek se Zlomenými Kostmi není dokonalá", load_quick_save = "Automaticky uloženou hru nelze na�íst, protože neexistuje. Není však třeba se obávat, vytvořili jsme vám novou!", no_games_to_contine = "Žádné uložené hry", could_not_load_campaign = "Nelze na�íst kampaň: %s", could_not_find_first_campaign_level = "Nelze na�íst první úroveň kampaně %s", save_to_tmp = "Soubor %s nemohl být použit, hra byla proto uložena do %s, důvodem je: %s", dialog_empty_queue = "Postava aktuálně nemá nic na práci ve své řadě úloh, a tak neví, co má dělat dále. Zkontrolujte příkazové okno pro více informací. Jednáme s tímto potížistou. Chcete ho z nemocnice vyhodit?", compatibility_error = { new_in_old = "Pozor! Tato hra byla uložena v novější verzi CorsixTH a není s nainstalovanou verzí kompatibilní. Pro hraní aktualizujte na novější verzi CorsixTH.", }, cannot_restart_missing_files = "Tato úroveň nemůže být restartována, protože chybí soubory %s nebo %s.", missing_th_data_file = "Varování: Nepovedlo se najít soubor %s, data ze hry Theme Hospital nejsou kompletní.", missing_level_file = "CHYBA: Nepovedlo se najít soubor vybrané úrovně.", compatibility_error = { demo_in_full = "Nelze otevřít hru z demo verze, když máte nastavené soubory z plné verze hry Theme Hospital. Můžete však vybrat adresář obsahující demo verzi v Nastavení > Umístění složek > Data TH.", full_in_demo = "Nelze otevřít hru z plné verze, když máte nastavené soubory z demo verze hry Theme Hospital. Můžete však vybrat adresář obsahující plnou verzi v Nastavení > Umístění složek > Data TH.", }, music = "Při přehrávání některých souborů hudby došlo k potížím. Tyto soubory se v Jukeboxu zakázány. Pro více informací se podívejte do konzole hry.", load_level_prefix = "CHYBA při na�ítání úrovně: ", missing_corsixth_file = "Varování: Nepovedlo se najít soubor %s, zkuste přeinstalovat CorsixTH.", load_map_prefix = "CHYBA při na�ítání mapy: ", overlay = { incorrect_difficulty = "Obtížnost musí být nastavená na lehkou (easy), střední (full) nebo těžkou (hard). Nyní je nastavena na ", missing_setting = "Nebyla nastavena obtížnost ani �íslo úrovně v této vlastní úrovni.", incorrect_level_number = "Číslo úrovně musí být 1-12. Nyní je nastaveno na ", }, recoverable = "Nastala CHYBA. Jedná se o obecnou chybu - pro detaily zkontrolujte konzoli hry. Chcete zkusit pokra�ovat ve hře?", fatal_can_reset = "Nastala KRITICK� CHYBA. Hra nemůže pokra�ovat. Zmá�kněte klávesu 'X' pro restartování programu. Poslední automatické uložení bylo nejspíše Autosave%d.// Budeme rádi, když tuto chybu nahlásíte vývojářům CorsixTH. Ke krátkému popisu chyby přiložte i tento log soubor://", fatal_can_debug = "Nastala KRITICK� CHYBA. Hra nemůže pokra�ovat. Poslední automatické uložení bylo nejspíše Autosave%d.// Pokud jste vývojář a chcete ladit program, zmá�kněte 'X' pro zavření tohoto okna. Budeme rádi, když tuto chybu nahlásíte vývojářům CorsixTH. Ke krátkému popisu chyby přiložte i tento log soubor://", fatal_cant_reset = "Nastala KRITICK� CHYBA. Hra nemůže pokra�ovat. Prosím, ukon�ete program, poté jej můžete spustit znovu. Poslední automatické uložení bylo nejspíše Autosave%d.// Budeme rádi, když tuto chybu nahlásíte vývojářům CorsixTH. Ke krátkému popisu chyby přiložte i tento log soubor://" } menu = { charts = " PŘEHLEDY ", options = " NASTAVEN� ", file = " SOUBOR ", display = " ZOBRAZEN� ", debug = " LADĚN� ", player_count = "POČET HR�ČŮ", } lua_console = { close = "Zavřít", execute_code = "Spustit", } menu_options = { edge_scrolling = " POSUN KAMERY ZA MYŠ� ", autosave = " AUTOMATICKÉ UKL�D�N� ", game_speed = " RYCHLOST HRY ", sound_vol = " HLASITOST ZVUKŮ ", announcements = " (%1%) HLASATELKA ", lock_windows = " UZAMKNOUT OKNA PŘEHLEDŮ ", music = " (%1%) HUDBA ", adviser_disabled = " (%1%) PORADCE ", music_vol = " HLASITOST HUDBY ", sound = " (%1%) ZVUK ", announcements_vol = " HLASITOST HLASATELKY ", jukebox = " (%1%) JUKEBOX ", warmth_colors = " BARVY TEPLOTY ", twentyfour_hour_clock = " 24-HODINOV� REŽIM ", wage_increase = " MZDOVÉ POŽADAVKY ", capture_mouse = " ZACHYCOVAT KURZOR ", } menu_options_warmth_colors = { choice_1 = " ČERVEN� ", choice_2 = " MODR� ZELEN� ČERVEN� ", choice_3 = " ŽLUT� ORANŽOV� ČERVEN� ", } menu_debug = { cheats = " (%1%) CHEATY ", win_level_anim = " ANIM V�HRY ÚROVNĚ ", enter_nav_debug = " VSTOUPIT DO LADĚN� NAV ", object_cells = " BUŇKY OBJEKTU ", show_nav_cells = " ZOBRAZIT BUŇKY NAV ", dump_strings = " (%1%) VYPSAT ŘETĚZCE ", disable_salary_raise = " ZAK�ZAT ZVYŠOV�N� PLATU ", display_pager = " ZOBRAZIT PAGER ", make_debug_patient = " VYTVOŘIT UK�ZKOVÉHO PACIENTA ", keep_clear_cells = " UDRŽET ČISTÉ BUŇKY ", show_help_hotspot = " ZOBRAZIT AKTIVN� BODY N�POVĚDY ", map_overlay = " PŘEKRYV MAPY ", remove_walls = " ODSTRANIT ZDI ", pixbuf_cells = " BUŇKY VYRPPIX ", plant_pagers = " UM�STIT PAGERY ", nav_bits = " BITY NAV ", sprite_viewer = " PROHL�ŽEČ SPRITŮ ", display_room_status = " ZOBRAZIT STAV M�STNOSTI ", machine_pagers = " PAGERY STROJŮ ", transparent_walls = " (%1%) PRŮHLEDNÉ ZDI ", limit_camera = " OMEZIT KAMERU ", make_debug_fax = " VYTVOŘIT UK�ZKOV� FAX ", jump_to_level = " SKOČIT DO ÚROVNĚ ", win_game_anim = " ANIM V�HRY HRY ", dump_gamelog = " (%1%) VYPSAT Z�ZNAM HRY ", entry_cells = " BUŇKY VSTUPU ", lose_game_anim = { [1] = " ANIM PROHRY ÚROVNĚ 1 ", [2] = " ANIM PROHRY ÚROVNĚ 2 ", [3] = " ANIM PROHRY ÚROVNĚ 3 ", [4] = " ANIM PROHRY ÚROVNĚ 4 ", [5] = " ANIM PROHRY ÚROVNĚ 5 ", [6] = " ANIM PROHRY ÚROVNĚ 6 ", [7] = " ANIM PROHRY ÚROVNĚ 7 ", }, calls_dispatcher = " VOL�N� A PŘIŘAZEN� ", remove_objects = " ODSTRANIT OBJEKTY ", lua_console = " (%1%) LUA KONZOLE ", mapwho_checking = " KONTROLA MAPYKDO ", display_big_cells = " ZOBRAZIT VELKÉ BUŇKY ", porter_pagers = " PAGERY OBSLUHY ", debug_script = " (%1%) SPUSTIT SKRIPT PRO LADĚN� ", connect_debugger = " (%1%) PŘIPOJIT LUA DBGp SERVER ", allow_blocking_off_areas = " POVOLIT VYBLOKOV�N� OBLAST� ", allow_falling = " POVOLIT PAD�N� ", } save_game_window = { caption = "Uložit hru (%1%)", new_save_game = "Zadejte název hry", save_button = "Uložit", missing_filename = "Prosím, napište jméno nové uložené hry nebo vyberte hru, kterou chcete přepsat.", } main_menu = { custom_level = "Vytvořená úroveň", load_game = "Na�íst hru", options = "Nastavení", savegame_version = "Verze ukládaných her: ", version = "Verze: ", exit = "Ukon�it", new_game = "Nová hra", continue = "Pokra�ovat ve hře", custom_campaign = "Vytvořená kampaň", map_edit = "Editor map", updates_off = "Kontrola aktualizací vypnuta", } letter = { [1] = { [1] = "Vážený/á %s\n\n", [2] = "Úžasné! Zvládli jste provoz této nemocnice na výbornou. My, pohlaváři na Ministerstvu zdravotnictví, bychom chtěli, abyste zvážil přijetí většího projektu. Našli jsme pro vás práci, o níž si myslíme, že je pro Vás jako stvořená. Dostali byste grant ve výši %d$. Promyslete si to.\n\n", [3] = "Máte zájem o správu Nemocnice %s?", }, [2] = { [1] = "Vážený/á %s\n\n", [2] = "Výborně! S Vaší nemocnicí jste udělali vydatný posun. Našli jsme pro Vás však další výzvu. Novou nemocnici, kterou můžete spravovat. Takže, pokud máte chuť na změnu prostředí, nový kolektiv a nové výzvy, zvažte naši nabídku. Na za�átek Vám poskytneme %d$.\n\n", [3] = "Chcete spravovat Nemocnici %s?", }, [3] = { [1] = "Vážený/á %s\n\n", [2] = "Od vašeho nástupu do funkce správce této nemocnice se to tu úspěchy jen hemží. Máme proto vů�i Vám velká o�ekávání a chtěli bychom Vám nabídnout nové místo. Do za�átku byste dostali %d$. Myslíme si také, že si zamilujete nové výzvy, které místní prostředí přináší.\n\n", [3] = "Přijímáte pozici správce v Nemocnici %s?", }, [4] = { [1] = "Vážený/á %s\n\n", [2] = "Blahopřejeme! Na Ministerstvu jsme ohromeni Vašimi schopnostmi provozovat nemocnici. V našich statistikách vycházíte jako jeden z nejlepších správců nemocnice v kraji. Myslíme si ale, že byste zvládli i trochu těžší práci. Jako úvodní dotaci Vám nabízíme %d$, ale rozhodnutí je na Vás.\n\n", [3] = "Chcete se stát správcem Nemocnice %s?", }, [5] = { [1] = "Vážený/á %s\n\n", [2] = "Dobrý den. Naše zdroje uvádějí, že je Vaším přáním neodejít z této okouzlující nemocnice, ale naléháme, abyste si to rozmysleli. Nabízíme Vám nadstandardní grant %d$, pokud odejdete do jiné nemocnice a zajistíte, aby běžela stejně hladce jako Vaše nynější.\n\n", [3] = "Jste připraven ujmout se pozice správce Nemocnice %s?", }, [6] = { [1] = "Vážený/á %s\n\n", [2] = "Zdravíme. Víme, že jste šťastní v této milé a dobře provozované instituci, ale myslíme si, že je na �ase zvážit Váš další kariérní postup. Takový postup se samozřejmě neobejde bez po�áte�ního kapitálu. Nabízíme Vám %d$, pokud se rozhodnete naši nabídku přijmout. To stojí za popřemýšlení, ne?\n\n", [3] = "Přejete si vzít místo v Nemocnici %s?", }, [7] = { [1] = "Vážený/á %s\n\n", [2] = "Dobrý den! Ministr zdravotnictví se osobně zajímá, zda nechcete přehodnotit Vaše další působení v této nemocnici. Potvrzujeme, že máte perfektně fungující nemocnici, a proto si myslíme, že by Vám prospěly výzvy nově vznikající nemocnice. Nabízíme Vám startovní investici ve výši %d$.\n\n", [3] = "Chtěli byste přijmout tuto pozici v Nemocnici %s?", }, [8] = { [1] = "Vážený/á %s\n\n", [2] = "Hezký den. Jak lze jednoduše poznat, opravdu stojíme o Vaše zkušenosti s řízením provozu nemocnice. Statisticky jste vybudovali nemocnici lepší než konkurence. Proto bychom Vám osobně chtěli nabídnout další příležitost zazářit. Víme, že Vaši nynější nemocnici jste vybudovali od základů a vypracovali ji k nejlepší v kraji. Chceme Vás proto poprosit o zvážení nabídky vybudování další úplně nové nemocnice. Samozřejmě, má své specifické požadavky a výzvy, ale Vy jste v tomto všem již expert. Nabízíme Vám %d$ na za�átek nového projektu.\n\n", [3] = "Ujmete se role správce Nemocnice %s? Prosím?", }, [9] = { [1] = "Vážený/á %s\n\n", [2] = "Předvedli jste, že jste nejlepší správce nemocnice v celé známé historii lékařství. Takový významný úspěch nemůže zůstat bez odměny, takže bychom Vám rádi nabídli místo Vrchního Šéfa Všech Nemocnic. Toto je �estná práce a přichází s platem %d$. Bude Vám uspořádán oslavný průvod a lidé Vám budou vyjadřovat své uznání, kamkoliv půjdete.\n\n", [3] = "Díky za všechno, co jste udělali. Ať si pořádně užijete dlouhý napůl-důchod.\n\n", [4] = "", }, [10] = { [1] = "Vážený/á %s\n\n", [2] = "Blahopřejeme k úspěšnému provozu všech nemocnic, ve kterých jste působili. Takový výte�ný výkon Vás opravňuje ke svobodě cestovat po celém světě. Je Vám přiznán důchod %d$, navíc limuzína, a přitom vše, co po Vás žádáme, je cestovat od města k městu, setkávat se s lidmi, kteří Vás obdivují, a propagovat práci našich nemocnic.\n\n", [3] = "Všichni jsme na Vás pyšní. Není mezi námi nikdo, kdo by se necítil vdě�ný za Vaši tvrdou práci při zachraňování životů.\n\n", [4] = "", }, [11] = { [1] = "Vážený/á %s\n\n", [2] = "Vaše kariéra byla ukázková, a Vy jste inspirací pro nás všechny. Děkujeme, že jste spravovali tolik nemocnic a v každé si tak dobře vedli. Chtěli bychom Vám darovat doživotní plat %d$, a přitom bychom od Vás chtěli pouze, abyste cestovali oficiálním autem s otevřenou střechou od města k městu a přednášeli veřejnosti o tom, jak jste dosáhli takového úspěchu tak rychle.\n\n", [3] = "Jste příkladem pro každého správně smýšlejícího �lověka, a to bez výjimky. Všichni na světě Vás považují za přínosného �lověka.\n\n", [4] = "", }, [12] = { [1] = "Vážený/á %s\n\n", [2] = "Vaše úspěšná kariéra nejlepšího správce nemocnice od dob Mojžíše se chýlí ke konci. Nicméně, Váš dopad na pohodlný svět lékařství byl tak výrazný, že by Vám Ministerstvo rádo nabídlo plat %d$, jen abyste se objevili jako náš zástupce, tedy zahajovat slavnosti, spouštět lodě a moderovat televizní zábavný program. Celý svět po Vás volá a pro nás všechny by to byla dobrá reklama!\n\n", [3] = "Prosím, přijměte tuto pozici. Nebude to těžká práce a poskytneme Vám auto a policejní doprovod kamkoliv budete chtít.\n\n", [4] = "", }, custom_level_completed = "Výborně! Dokon�ili jste všechny úkoly v této vlastní úrovni!", dear_player = "Vážený/á %s", return_to_main_menu = "Chtěli byste se vrátit do hlavního menu, nebo pokra�ovat v hraní?", campaign_level_completed = "Dobrá práce! Splnili jste úroveň. Ale ještě není konec! Chtěli byste přijmout pozici v nemocnici %s?", campaign_level_missing = "Je nám líto, ale zdá se, že následující úroveň této kampaně chybí. (Název: %s)", campaign_completed = "Neuvěřitelné! Zvládli jste splnit všechny úrovně. Nyní si můžete oddychnout a za�ít sepisovat sebechválu na všech fórech na Internetu. Hodně štěstí!", } rooms_short = { dna_fixer = "Genex 2000", psychiatric = "Psychiatrie", gps_office = "Kancelář Prak. Lékaře", toilets = "Toalety", general_diag = "Vyšetřovna", hair_restoration = "Sáze� Vlasů", corridor_objects = "Objekty Chodby", electrolysis = "Oddělení Elektrolýzy", scanner = "Skener", research_room = "Výzkumná Laboratoř", cardiogram = "Kardiogram", destroyed = "Zni�ená", reception = "Recepce", staffroom = "Místnost pro Zam.", ward = "Lůžkové Oddělení", jelly_vat = "Klinika Slizu", x_ray = "Rentgen", inflation = "Hustírna", ultrascan = "Ultraskener", blood_machine = "Hemogram", tongue_clinic = "ORL", fracture_clinic = "Ortopedie", training_room = "U�ebna", decontamination = "Oddělení Dekontaminace", pharmacy = "Lékárna", operating_theatre = "Opera�ní Sál", } buy_objects_window = { price = "Cena: ", choose_items = "Zvolte položky", total = "Celkem: ", } vip_names = { [1] = "Starosta Horních Kotěhůlek", [2] = "Karel Schwarzenberg", [3] = "Jan Novák, pracovník ve skladu Jednoty Malý Beranov", [4] = "Tomáš Marný, zástupný ředitel pojišťovny Neplaťto", [5] = "Franta Kocourek", [6] = "Karel Gott", [7] = "Rada Vacátko", [8] = "Karel Brückner", [9] = "Aštar Šeran, vedoucí Velké vesmírné flotily", [10] = "Marek Vašut, prezident chlapáků", health_minister = "Ministr zdravotnictví", } fax = { vip_visit_query = { choices = { invite = "Vydat oficiální pozvánku V.I.P.", refuse = "Odmítnout s omluvou V.I.P.", }, vip_name = "%s vyjádřil přání navštívit Vaši nemocnici", }, vip_visit_result = { telegram = "Telegram!", vip_remarked_name = "Po návštěvě Vaší nemocnice, %s poznamenal:", remarks = { [1] = "To je úžasný špitál! Až zase něco lapnu, ho�te mě semka.", [2] = "Tak tomuto říkám nemocnice!", [3] = "Máte skvělou nemocnici. A v tom se vyznám, pár jsem jich již navštívil.", [4] = "Jak krásně fungující nemocnice. Děkuji za pozvání.", [5] = "Hmm. Docela pěkné zdravotnické zařízení, vážně.", [6] = "Čas strávený ve vaší okouzlující nemocnici jsem si užil. Dáte si někdo gyros v Taj?", [7] = "Mno... viděl jsem i horší. I tak by se hodilo něco vylepšit.", [8] = "Ach bože. Nechtěl bych tady skon�it, kdyby mi bylo špatně.", [9] = "Taková normální nemocnice, abych pravdu řekl. Upřímně, �ekal jsem více.", [10] = "Pro� jsem se s váma vůbec obtěžoval? Bylo to horší než �tyřhodinová opera!", [11] = "Jsem znechucen tím, co jsem u vás viděl. Tomu říkáte nemocnice? Spíše popelnice!", [12] = "Už mě nebaví být veřejně známý a navštěvovat takové díry jako je ta vaše! Kašlu na to!", [13] = "To nebyla skládka? Udělám cokoliv budu moct, aby vám to tu zavřeli!", [14] = "Dote� jsem neviděl takto otřesnou nemocnici. Jaká ostuda!", [15] = "To je děs! Tomuto jako říkáte nemocnice? S tím se střízlivý nevypořádám.", free_build = { [1] = "Zařídili jste fakt pěkný špitál! Ale asi to není tak těžké, když nemusíte řešit �ísla v bance, co?", [2] = "Nejsem žádný ekonom, ale myslím si, že bych tuto nemocnici finan�ně uřídil taky, jestli si rozumíme...", [3] = "Krásně běžící nemocnice. Jen si dávejte bacha na pád burzy! Vlastně... to vás nějak moc netrápí.", }, }, close_text = "Děkuji za návštěvu nemocnice.", cash_grant = "Byl Vám darován peněžní dar ve výši %d.", rep_loss = "Vaše reputace tímto zna�ně utrpěla.", rep_boost = "Vaše reputace ve spole�nosti se zlepšila.", }, disease_discovered = { can_cure = "Tuto nemoc již umíte vylé�it.", close_text = "Byla objevena nová nemoc.", need_to_build = "Musíte vybudovat %s, abyste mohli nemoc lé�it.", need_to_build_and_employ = "Pokud vybudujete %s a zaměstnáte %s, můžete tuto nemoc lé�it.", need_to_employ = "Zaměstnejte %s, abyste mohli tuto chorobu lé�it.", discovered_name = "Váš tým objevil novou nemoc. Je to %s", }, diagnosis_failed = { choices = { send_home = "Poslat pacienta domů.", wait = "Nechat pacienta �ekat, dokud nepostavíte další diagnostické místnosti.", take_chance = "Zkusit možnou lé�bu.", }, situation = "Vy�erpali jsme všechny diagnostické procedury na tomto pacientovi a stále si nejsme jisti, co je s ním špatně.", what_to_do_question = "Co máme s pacientem dělat?", partial_diagnosis_percentage_name = "Existuje %d procentní šance, že jsme správně poznali %s.", }, epidemic_result = { fine_amount = "Vláda vyhlásila obecné ohrožení a uděluje Vám pokutu ve výši %d.", succeeded = { part_1_name = "Hygienický Inspektor slyšel zvěsti, že Vaše zařízení řeší zlý případ %s.", part_2 = "Nicméně se mu nepodařilo najít důkazy k potvrzení těchto zpráv.", }, close_text = "Uf.", rep_loss_fine_amount = "Noviny si na Vás smlsnou. Vaše reputace tím zna�ně utrpí. Navíc musíte zaplatit pokutu ve výši %d.", failed = { part_1_name = "Při pokusu o zakrytí faktu, že mají před sebou nakažlivé propuknutí %s", part_2 = "Vaši zaměstnanci nemocnice způsobili, že se choroba rozšířila do širokého okolí.", }, compensation_amount = "Vláda se rozhodla Vás odměnit %d jako vyrovnání za škodu, kterou tyto malé lži způsobily dobrému jménu Vaší nemocnice.", hospital_evacuated = "Zdravotnická Rada neměla jinou možnost, než evakuovat nemocnici.", }, emergency = { cure_not_possible_build = "Potřebujete postavit %s", locations = { [1] = "Chemickém závodě Spolana Neratovice", [2] = "Fakultě technické Univerzity Ústí nad Labem", [3] = "Herbicidním zahradnickém centru", [4] = "JZD Slušovice", [5] = "Cvi�ebně tane�níků České besedy", [6] = "Hospodě Žába a Býk", [7] = "Pohřební síni a vý�epu Velkého Dejva", [8] = "Rychlém ob�erstvení Taj", [9] = "Rafinérii ropné a bahenní Bruntál", }, choices = { accept = "Ano. Jsem připraven zvládnout tuto pohotovost. ", refuse = "Ne. Odmítám řešit tuto pohotovost.", }, cure_not_possible_employ = "Potřebujete zaměstnat %s", free_build = "Pokud budete úspěšní, Vaše reputace se zvýší, pokud ale selžete, bude to mít velký dopad na Vaši reputaci.", num_disease_singular = "Je tu 1 osoba s %s a vyžaduje okamžitou pozornost.", cure_not_possible_build_and_employ = "Bude potřeba postavit %s a zaměstnat %s", bonus = "K dispozici je maximální bonus %d za zvládnutí této pohotovosti. Pokud ale selžete, Vaše reputace bude silně pošramocena.", cure_not_possible = "V tuto chvíli nemůžete nemoc lé�it.", location = "V %s vyhlásili pohotovost. ", cure_possible_drug_name_efficiency = "Lék na %s máte vyzkoumaný a je na %d procent ú�inný.", cure_possible = "Máte správné vybavení a dovednosti, takže teoreticky byste pohotovost měli zvládnout.", num_disease = "Je tu %d osob s onemocněním %s a vyžadují okamžitou pozornost.", }, epidemic = { cover_up_explanation_2 = "Pokud nemocnici Hygienický inspektor navštíví a zjistí, že jste se snažili ututlat epidemii, může proti vám vznést drastická opatření.", disease_name = "Vaši doktoři objevili nakažlivý kmen %s.", choices = { declare = "Vyhlásit Epidemii. Zaplatit pokutu a přijmout zásah do reputace.", cover_up = "Pokusit se vylé�it všechny nakažené pacienty ve vymezeném �ase a dříve, než kdokoliv nakažený odejde z nemocnice.", }, declare_explanation_fine = "Pokud vyhlásíte epidemii, zaplatíte pokutu %d a vaše reputace utrpí, ale všichni vaši pacienti budou automaticky o�kováni.", cover_up_explanation_1 = "Na druhou stranu, pokud se pokusíte epidemii ututlat, máte omezený �as na vylé�ení všech nakažených pacientů dříve, než dorazí na kontrolu Hygienický inspektor.", }, choices = { return_to_main_menu = "Návrat do hlavního menu", accept_new_level = "Pokra�ovat do další úrovně", decline_new_level = "Hrát ještě o trochu déle", }, emergency_result = { earned_money = "Z maximálního bonusu %d$ jste získali %d$.", close_text = "Zavřít.", saved_people = "Zachránili jste %d lidí z %d.", }, disease_discovered_patient_choice = { what_to_do_question = "Co chcete s pacientem dělat?", need_to_employ = "Musíte zaměstnat %s, abyste tuto nemoc uměli zvládnout.", can_not_cure = "Tuto chorobu nemůžete zatím vylé�it.", need_to_build = "Musíte vybudovat %s, abyste byli schopni nemoc lé�it.", choices = { send_home = "Poslat pacienta domů.", wait = "Nechat pacienta chvilku �ekat v nemocnici.", research = "Poslat pacienta na pitvu do Výzkumné Laboratoře.", }, need_to_build_and_employ = "Pokud vybudujete %s a zaměstnáte %s, můžete nemoc lé�it.", guessed_percentage_name = "Vaši lékaři museli odhadnout pacientovu nemoc. Je tu %d procentní šance, že je to %s.", disease_name = "Váš tým objevil novou nemoc. Je to %s.", }, debug_fax = { text2 = "CELKEM %d LID� V NEMOCNICI ZAPS�NO PROTI %d", text7 = "REPUTACE: %d OČEK�V�NA %d SN�ŽEN� %d", text9 = "KATASTROFY %d POVOLENO (MĚS) %d (%d)SN�ŽEN� %d", text4 = "FAKTORY : DOKT %d SESTRY %d OBLAST %d M�STNOSTI %d CENA %d", text1 = "NEJLEPŠ� SKÓRE %d", text6 = "N�SLEDUJ�C� FAKTORY JSOU TAKÉ ZAHRNUTY", close_text = "Jo, jo, jo!", text3 = "Č�SLA : DOKT %d SESTRY %d OBLAST %d M�STNOSTI %d CENA %d", text5 = "ZISKY : DOKT %d SESTRY %d OBLAST %d M�STNOSTI %d CENA %d PROCENT", text8 = "POHODL� %d LID� ZVL�DNUTO %d SN�ŽEN� O %d", text10 = "ÚMRT� %d POVOLENO (MĚS) %d (%d) SN�ŽEN� O %d", text11 = "LID� TENTO MĚS�C %d", }, } insurance_companies = { [1] = "RadyBaby a.s.", [2] = "Sparta pojišťovna k.s.", [3] = "Solidarita s.r.o.", [4] = "Zbořil a Pobořil v.o.s.", [5] = "Poj. zaměstnanců Bruntál", [6] = "Jindřich Zlámal a.s.", [7] = "Koncern Pana Baculatého", [8] = "Němý a spol. v.o.s.", [9] = "Petr Klí� s.r.o.", [10] = "Pojišťovna Neplaťto", [11] = "Družstevní Pojišťovna", out_of_business = "BANKROT", } menu_file = { save = " (%1%) ULOŽIT ", load = " (%1%) NAČ�ST ", restart = " (%1%) RESTARTOVAT ", quit = " (%1%) ODEJ�T ", } graphs = { visitors = "Návštěvníci", time_spans = { [1] = "1 Rok", [2] = "12 Let", [3] = "48 Let", }, cures = "Vylé�ení", wages = "Výplaty", deaths = "Úmrtí", balance = "Stav ú�tu", money_in = "Příjmy", money_out = "Výdaje", reputation = "Reputace", } staff_list = { total_wages = "PLATY CELKEM", tiredness = "ÚNAVA", morale = "SPOKOJENOST", skill = "SCHOPNOSTI", } introduction_texts = { level14 = "Je tu ještě jedna výzva - naprosto ne�ekané překvapení v podobě další nemocnice. " .. "Pokud to tu úspěšně zvládnete, stanete se vítězem všech vítězů. " .. "Nemyslete si ale, že to bude lehké, protože vás �eká ten nejtěžší úkol, před jakým jste kdy stanuli. " .. "Hodně štěstí!", level16 = "Jakmile jste diagnostikovali pár pacientů, budete muset pro jejich lé�bu postavit různé místnosti lé�by a kliniky - doporu�ujeme za�ít " .. "Lékarnou. Pro provoz Lékárny je třeba ještě zaměstnat Sestru.", level15 = "To by tak byly základní instrukce ke zprovoznění nemocnice.\n\n" .. "Vaši Doktoři budou potřebovat veškerou pomoc s diagnostikou nových pacientů. Můžete jim pomoci " .. "postavením dalšího diagnostického zařízení jako např. Vyšetřovny.", level18 = "", level12 = "Nyní máte před sebou opravdu náro�nou výzvu. " .. "Ohromeni vaším úspěchem, Ministerstvo má pro vás špi�kovou práci; chtějí, aby někdo postavil tu nejlepší nemocnici, vydělal obrovské množství penízků a měl neposkvrněnou reputaci. " .. "O�ekává se, že také koupíte všechny pozemky, které můžete, všechno vylé�íte (a tím myslíme opravdu všechno) a vyhrajete všechna ocenění. " .. "Myslíte, že na to máte? " .. "Vydělejte 650 000$, vyle�te 750 lidí a mějte reputaci alespoň 800, abyste obhájili své správcovské dovednosti.", level17 = "Malé varování - opravdu si hlídejte vaši reputaci - zkušenosti okolí jsou to, co ovlivní kolik lidí z kraje vloží svůj osud do vašich rukou. " .. "Pokud nezabijete příliš mnoho lidí a udržíte je rozumně šťastné, neměli byste mít v této úrovni problémy!\n\n" .. "Te� jste v tom sami. Hodně štěstí a tak dále.", level4 = "Udržte všechny lidi šťastné, zacházejte s nimi jako v rukavi�kách a udržte po�et úmrtí na absolutním minimu. " .. "V sázce je vaše reputace, takže se ujistěte, že ji budete držet tak vysoko, jak je to jen možné. " .. "O peníze se moc nestarejte - ty přijdou spole�ně s růstem vaší reputace. " .. "Máte také možnost u�it Doktory a zlepšit tím jejich schopnosti. " .. "Mohli by mít na starost pacienta, který se zdá být méně neprůhledný než ostatní. " .. "Musíte dosáhnout reputace alespoň 500.", level13 = "Vaše jedine�né triky při správě nemocnice neunikly Bezpe�nostní Informa�ní Službě. " .. "Mají pro vás zvláštní bonus; je tu krysami zamořená nemocnice, která potřebuje ú�inného Terminátora. " .. "Musíte zastřelit tolik krys, kolik můžete, než Údržbáři uklidí všechen bordel. " .. "Myslíte, že to zvládnete?", level6 = "Použijte všechny vaše znalosti k zřízení bezproblémové, dobře spravované nemocnice, která má zdravý příjem a může se vypořádat s �ímkoliv, co na ni nemocná veřejnost může hodit. " .. "Musíte si uvědomit, že zdejší klima je zvláště vhodné k přenášení bacilů a infekcí. " .. "Pokud nebudete vaše zařízení udržovat až punti�kářsky �isté, můžete �elit řadě epidemií mezi pacienty. " .. "Ujistěte se, že si vyděláte 150 000$ a že vaše nemocnice má hodnotu přes 140 000$.", level5 = "Toto bude přelidněná nemocnice, která bude řešit všemožné případy. " .. "Vaši Doktoři jsou všichni přímo z medicíny, takže bude zásadní vybudovat u�ebnu a vyu�it si je. " .. "Máte pouze tři Primáře, kteří vám pomohou s výukou vašich nezkušených zaměstnanců, takže je udržujte šťastné. " .. "Nezapomeňte také, že základy této nemocnice stojí na geologickém zlomu San Robot. " .. "Je tu stále hrozící nebezpe�í zemětřesení. " .. "To může způsobit vážné poškození vašich strojů a narušení hladkého chodu vaší nemocnice. " .. "Dostaňte vaši reputaci na cifru 400 a vydřete suprových 50 000$ abyste uspěli. Navíc vyle�te 200 pacientů.", level8 = "Je na vás zřídit tu nejú�innější a nejefektivnější nemocnici, prací i penězi. " .. "Lidé v okolí se tu nemají vůbec špatně, takže z nich vymá�kněte tolik prašulí, kolik jen můžete. " .. "Nezapomeňte, lé�ení lidí je sice hezké, ale daleko hez�í jsou PEN�ZE, které to přináší. " .. "Nezapomeňte proto své lidi řádně vyprášit. " .. "Nasyslete astronomických 300 000$ k dokon�ení této úrovně.", level7 = "Zde budete pod pe�livou kontrolou Ministerstva Zdravotnictví, takže se ujistěte, že vaše ú�ty ukazují, že vyděláváte hodně peněz, a že vaše reputace �ní vysoko nad okolím. " .. "Nemůžeme si dovolit zbyte�ná úmrtí - z toho dobrý slogan neuděláte. " .. "Ujistěte se, že vaši zaměstnanci jsou v nejlepší formě, a že máte veškeré vybavení, které potřebujete. " .. "Dostaňte reputaci na výši 600 a vaše konto aspoň na 200 000$.", level2 = "V této oblasti je široká škála nemocí. " .. "Postavte vaši nemocnici, aby zvládla přílivy pacientů, a nevyhýbejte se vybudování Výzkumné Laboratoře. " .. "Nezapomeňte udržovat vaše zařízení �isté a zkuste dostat vaši reputaci tak vysoko, jak to jen jde - budete �elit nemocem jako je Ochablý Jazyk, takže potřebujete ORL. " .. "Můžete také postavit Kardiogram, aby vám pomohl odhalovat nové nemoci. " .. "Obě tyto místnosti musí být vynalezeny předtím, než je budete moci postavit. Také si můžete zakoupit dodate�né parcely pozemků k rozšíření vaší nemocnice - pro toto použijte Mapu města. " .. "Miřte k reputaci 300, bankovní bilanci 10 000$ a 40 vylé�eným lidem.", level9 = "Když jste naplnili bankovní ú�et Ministerstva a zaplatili novou limuzínu pro samotného Ministra, můžete se vrátit zpět k vytváření pe�ující, dobře zřízené nemocnice ve prospěch nemocných a potřebných. " .. "Můžete o�ekávat, že se zde objeví spousta různorodých potíží. " .. "Pokud ale máte dostatek dobře vyškolených zaměstnanců a místností, nemělo by se jednat o větší problém. " .. "Vaše nemocnice musí mít hodnotu přes 200 000$ a budete potřebovat 400 000$ v bance. " .. "Cokoliv méně a nebudete moct dokon�it úroveň.", demo = "Vítejte v demo nemocnici!\n\n" .. "Bohužel, demo verze obsahuje pouze tuto úroveň. Nicméně je toho více než dost, abyste se na chvilku zabavili! " .. "Setkáte se s různými nemocemi, které potřebují různé místnosti k lé�bě. Čas od �asu můžete narazit na pohotovosti. A budete potřebovat vyzkoumat dodate�né místnosti pomocí Výzkumné Laboratoře. " .. "Vaším úkolem je vydělat 100 000$, zvýšit hodnotu nemocnice na 70 000$ a reputaci na 700, při�emž musíte vylé�it alespoň 75 % vašich pacientů. " .. "Ujistěte se, že vaše reputace nespadne pod 300 a že nezabijete více než 40 % vašich pacientů, jinak prohrajete.\n\n" .. "Zlomte vaz! (Ale ne doslova prosím.)", level10 = "Stejně jako na zvládnutí všech nemocí, které se v této oblasti vyskytují, vás Ministerstvo žádá, abyste strávili nějaký �as soustředěním se na ú�innost vašich léků. " .. "Z ČasNemoci, Hlídacího Psa Zdravotnictví, se ozývají jisté stížnosti. Tudíž, abyste vypadali dobře, musíte zajistit, že vaše léky jsou mimořádně ú�inné. " .. "Také zajistěte, aby vaše nemocnice nemusela být kárána. Ať ta úmrtnost není příliš vysoká. " .. "Malá nápověda: možná byste měli vyhradit prostor pro Kliniku Slizu. " .. "Zdokonalte všechny svoje léky na ú�innost alespoň 80 procent, mějte reputaci 650 a uložte 500 000$ v bance, abyste vyhráli. ", level11 = "Dostali jste šanci vybudovat tu nejlepší nemocnici ze všech. " .. "Toto je mimořádně prestižní oblast a Ministerstvo by tu rádo vidělo vzorovou nemocnici. " .. "O�ekáváme, že budete vydělávat velké peníze, získáte vysokou reputaci a zvládnete všechny možné nemoci. " .. "Toto je důležitá práce. " .. "Musíte se opravdu snažit, abyste to zvládli. " .. "Nezapomeňte také, že v oblasti byla zpozorována UFO. Ujistěte se, že vaši zaměstnanci jsou připraveni na ne�ekané návštěvníky. " .. "Vaše nemocnice potřebuje mít hodnotu 240 000$, v bance potřebujete 500 000$ a vaše reputace musí dosahovat alespoň 700.", level3 = "Tentokrát budete zřizovat nemocnici v zámožné oblasti. " .. "Ministerstvo zdravotnictví od vás o�ekává, že zde zajistíte �istý a zdravý příjem. " .. "Především budete muset získat dobrou reputaci, ale jakmile se to tu rozběhne, soustře�te se co nejvíce na vydělávání peněz. " .. "Je tu také možnost výskytu Pohotovostí. " .. "To znamená, že přijde najednou velký po�et lidí a všichni mají stejnou nemoc. " .. "Vylé�ení všech v �asovém limitu vám zvýší reputaci a přidá velký finan�ní bonus. " .. "Mohou se objevit nemoci jako Králův Komplex. Také byste měli zahrnout do rozpo�tu výstavbu Opera�ního Sálu a u něj i Lůžkového Oddělení. " .. "Vydělejte 20 000$ abyste dosáhli na další úroveň.", level1 = "Vítejte ve vaší první nemocnici!\n\n" .. "Rozcho�te to tu umístěním Recepce, vybudováním Kanceláře Praktického Lékaře a najmutím Recep�ní a Doktora. " .. "Pak po�kejte, až se objeví příležitost k zisku. " .. "Je dobrý nápad postavit Psychiatrii a najmout Doktora s Psychiatrickou kvalifikací. " .. "Lékárna a Sestra jsou také �asto nutné k lé�bě vašich pacientů. " .. "Dejte si pozor na případy podivné nemoci Nafouknutá Hlava - Hustírna jim pomůže. " .. "Musíte vylé�it alespoň 10 lidí a zajistit, že vaše reputace nespadne pod 200.", } install = { th_directory = "CorsixTH potřebuje kopii datových souborů z původní hry Theme Hospital (nebo alespoň z demoverze), aby mohla běžet. Prosím, použijte okno níže k nalezení instala�ního adresáře Theme Hospital.", title = "-------------------------------- Nastavení CorsixTH --------------------------------", exit = "Odejít", ok = "OK", cancel = "Zrušit", } staff_class = { receptionist = "Recep�ní", surgeon = "Chirurg", handyman = "Údržbář", doctor = "Doktor", nurse = "Sestra", } menu_charts = { bank_manager = " (%1%) SPR�VCE BANKY ", statement = " (%1%) BANKOVN� V�PISY ", staff_listing = " (%1%) SPR�VA ZAMĚSTNANCŮ ", town_map = " (%1%) MAPA MĚSTA ", casebook = " (%1%) SEZNAM NEMOC� ", research = " (%1%) V�ZKUM ", status = " (%1%) POSTUP V ÚROVNI ", graphs = " (%1%) GRAFY ", policy = " (%1%) PRAVIDLA ", machine_menu = " (%1%) SPR�VA STROJŮ ", briefing = " ÚVOD DO ÚROVNĚ ", adviser_history = " (%1%) HISTORIE HL�ŠEN� " } level_progress = { cured_enough_patients = "Vylé�il jste dost svých pacientů, ale k výhře musíte dostat nemocnici do lepšího stavu.", hospital_value_enough = "Neklesněte s hodnotou své nemocnice pod %d a k výhře vám posta�í dořešit zbylé problémy.", } menu_options_volume = { [30] = " 30% ", [10] = " 10% ", [90] = " 90% ", [40] = " 40% ", [20] = " 20% ", [50] = " 50% ", [70] = " 70% ", [60] = " 60% ", [100] = " 100% ", [80] = " 80% ", } drug_companies = { [1] = "Léky Všech n.f.", [2] = "Léky A Alchymie s.p.", [3] = "Nespolknutelná Pilulka v.o.s.", [4] = "Heřman Dobromyslný s.r.o.", [5] = "Placebo a.s.", } options_window = { change_resolution = "Změnit rozlišení", width = "Šířka", fullscreen = "Celá obrazovka", apply = "Použít", caption = "Nastavení", resolution = "Rozlišení", option_off = "Vypnuto", custom_resolution = "Vlastní...", option_on = "Zapnuto", language = "Jazyk hry", height = "Výška", cancel = "Zrušit", back = "Zpět", folder = "Umístění složek", customise = "Přizpůsobit", zoom_speed = "Rychlost přibližování", scrollspeed = "Rychlost kamery", capture_mouse = "Zachytávat myš v okně hry", hotkey = "Klávesové zkratky", shift_scrollspeed = "Rychlost kamery se shiftem", option_enabled = "Povoleno", option_disabled = "Zakázáno", check_for_updates = "Kontrola aktualizací", right_mouse_scrolling = "Scrolling myší", right_mouse_scrolling_option_middle = "Prostřední tla�. myši", right_mouse_scrolling_option_right = "Pravé tla�. myši", autosave_frequency = "Frekvence auto. uložení", scale_ui = "Měřítko UI", sound = "Zvuk", } audio_window = { audio = "Zvuky", jukebox = "Jukebox", back = "Zpět", announcement_volume = "Hlasitost hlasatelky", caption = "Nastavení zvuku", default_midi_api = "Výchozí (software)", default_midi_port = "Výchozí", midi_api = "MIDI API", midi_port = "MIDI port", music_volume = "Hlasitost hudby", sound_volume = "Hlasitost zvuků", soundfont = "SoundFont", soundfont_location_caption = "Vyberte soundfont (%1%)", } folders_window = { new_th_location = "Zde můžete vybrat novou instala�ní adresář Theme Hospital. Jakmile jej zvolíte, hra bude restartována.", data_label = "Data TH", music_label = "MP3", savegames_label = "Uložené hry", music_location = "Vyberte adresář s hudbou, která bude hrát ve hře.", caption = "Umístění složek", screenshots_label = "Snímky obrazovky", font_label = "Písmo", back = "Zpět", savegames_location = "Vyberte adresář, kam budou ukládány vaše hry.", screenshots_location = "Vyberte adresář, kam budou ukládány snímky obrazovky.", } font_location_window = { caption = "Zvolte písmo (%1%)" } multiplayer = { everyone_failed = "Nikdo nesplnil poslední cíl. Všichni tedy s chutí do práce!", players_failed = "Tito hrá�i nezvládli splnit poslední cíl:", } disease_discovered_patient_choice = { need_to_employ = "K lé�bě musíte zaměstnat %s.", } menu_options_wage_increase = { deny = " ZAM�TNOUT", grant = " VYHOVĚT", } hotkey_window = { ingame_scroll_left = "Posun kamery doleva", ingame_panel_research_alt = "Výzkum", ingame_recallPosition_6 = "6", button_accept = "Potvrdit", ingame_panel_casebook_alt = "Sez. nemocí", ingame_loadMenu = "Na�íst hru", ingame_patient_gohome = "Poslat pacienta domů", ingame_recallPosition_0 = "10", ingame_storePosition_0 = "10", ingame_panel_bankStats = "Bankovní výpisy", caption_main = "Nastavení klávesových zkratek", ingame_zoom_in_more = "Přiblížit více", ingame_panel_hireStaff = "Najmout zaměstnance", button_recallPosKeys = "Přepnout na nastavenou pozici kamery", ingame_zoom_in = "Přiblížit", panel_generalInGameKeys = "Zkratky ve hře", ingame_toggleSounds = "Vypnout/zapnout zvuky", ingame_poopLog = "Vypsat log", ingame_panel_casebook = "Sez. nemocí", global_screenshot = "Snímek obrazovky", panel_altPanelKeys = "Náhradní klávesy", ingame_toggleAdvisor = "Vypnout/zapnout poradce", global_connectDebugger = "Debugger", ingame_quickSave = "Rychlé uložení hry", ingame_scroll_up = "Posun kamery nahoru", global_exitApp = "Ukon�it program", global_resetApp = "Restartovat program", panel_toggleKeys = "Zkratky vypnutí/zapnutí", button_back = "Zpět", global_stop_movie_alt = "Vypnout všechna videa", ingame_scroll_right = "Posun kamery vpravo", ingame_toggleInfo = "Vypnout/zapnout info", global_cancel = "Zrušit", ingame_gamespeed_slowest = "Nejpomalejší", ingame_storePosition_8 = "8", panel_scrollKeys = "Posouvání kamery", button_defaults = "Resetovat na výchozí", ingame_storePosition_2 = "2", global_runDebugScript = "Spustit skript pro ladění", ingame_recallPosition_3 = "3", ingame_panel_editRoom = "Upravit místnost", ingame_panel_policy = "Pravidla", ingame_recallPosition_8 = "8", ingame_quitLevel = "Odejít z úrovně", ingame_jukebox = "Jukebox", global_releaseMouse = "Uvolnit kurzor (přestat zachytávat)", ingame_storePosition_9 = "9", ingame_recallPosition_9 = "9", ingame_pause = "Pozastaveno", ingame_panel_map_alt = "Mapa města", ingame_scroll_down = "Posun kamery dolů", panel_storePosKey = "Uložit pozici kamery", ingame_recallPosition_7 = "7", global_showLuaConsole = "Lua konzole", ingame_recallPosition_4 = "4", ingame_saveMenu = "Uložit hru", ingame_gamespeed_slower = "Pomalejší", panel_globalKeys = "Zkratky v celém programu", ingame_storePosition_5 = "5", ingame_openFirstMessage = "Úvod do úrovně", panel_miscInGameKeys = "Další zkratky", ingame_zoom_out_more = "Oddálit více", ingame_showCheatWindow = "Nabídka cheatů", ingame_panel_staffManage = "Správa zaměstnanců", ingame_gamespeed_max = "Max rychlost", ingame_showmenubar = "Zobrazit horní lištu", ingame_gamespeed_speedup = "Zrychlit", ingame_panel_townMap = "Mapa města", panel_recallPosKeys = "Přepnout na pozici kamery", ingame_recallPosition_2 = "2", ingame_panel_research = "Výzkum", global_confirm_alt = "Potvrdit", ingame_toggleMusic = "Vypnout/zapnout hudbu", panel_zoomKeys = "Zkratky přiblížení kamery", ingame_panel_casebook_alt02 = "Sez. nemocí", global_cancel_alt = "Zrušit", ingame_toggleAnnouncements = "Vypnout/zapnout oznámení", ingame_storePosition_7 = "7", button_cancel = "Zrušit", ingame_zoom_out = "Oddálit", ingame_panel_status = "Postup v úrovni", ingame_storePosition_4 = "4", global_fullscreen_toggle = "Celá obrazovka", ingame_panel_bankManager = "Správce banky", ingame_setTransparent = "Zprůhlednit stěny", ingame_restartLevel = "Restartovat úroveň", panel_gameSpeedKeys = "Zkratky rychlosti hry", panel_debugKeys = "Zkratky pro vývojáře", ingame_panel_furnishCorridor = "Vybavit chodbu", ingame_panel_buildRoom = "Postavit místnost", ingame_storePosition_1 = "1", global_confirm = "Potvrdit", ingame_scroll_shift = "Rychlejší posun", ingame_recallPosition_1 = "1", ingame_panel_charts = "Grafy", button_toggleKeys = "Přenastavit klávesy", ingame_gamespeed_thensome = "A ještě o trochu víc", ingame_quickLoad = "Rychlé na�tení hry", ingame_recallPosition_5 = "5", global_window_close_alt = "Zavřít okno", ingame_storePosition_6 = "6", ingame_rotateobject = "Oto�it objekt", ingame_poopStrings = "Vypsat text. řetězce", caption_panels = "Zkratky panelů (výzkum, grafy)", ingame_storePosition_3 = "3", ingame_gamespeed_normal = "Normální", button_gameSpeedKeys = "Zkratky rychlosti hry", ingame_reset_zoom = "Obnovit výchozí přiblížení", panel_storePosKeys = "Uložit pozici kamery", ingame_panel_machineMenu = "Správa strojů", ingame_toggleTransparent = "Vypnout/zapnout průhlednost stěn", ingame_panel_adviserHistory = "Historie hlášení", ingame_sellPickedUpItem = "Prodat předmět", } update_window = { caption = "Vyšla nová verze CorsixTH!", new_version = "Nová verze:", current_version = "Nainstalovaná verze:", download = "Chci novou verzi", ignore = "Prozatím ignorovat", } customise_window = { average_contents = "Objekty navíc", option_on = "Zapnuto", paused = "Stavět při pozastavení", option_off = "Vypnuto", intro = "Přehrát úvodní video", caption = "Další nastavení", back = "Zpět", movies = "Videa", volume = "Změna zkratky sez. nemocí", aliens = "Pacienti s Mimozem. DNA", fractured_bones = "Pacientky se Zlom. Kostmi", remove_destroyed_rooms = "Odstranění zni�ené místnosti", emergency_only = "Pouze pohotovosti", enable_announcer_subtitles= "Titulky hlasatelky", enable_screen_shake = "Třes obrazovky", machine_menu_button = "Tla�ítko Správy strojů", male_and_female = "Muži i ženy", male_only = "Pouze muži", regular_patients = "Standardní pacienti", } custom_campaign_window = { caption = "Vlastní kampaň", start_selected_campaign = "Spustit kampaň", duplicates_warning = "%d kampaní se stejnými jmény bylo skryto (nesmějí mít stejná jména).", } warnings = { levelfile_variable_is_deprecated = "Upozornění: Úroveň '%s' obsahuje starý formát definice nastavení. " .. "Proměnná '%LevelFile' byla změněna na '%MapFile'. Prosím, kontaktujte autora této úrovně.", newersave = "Pozor! Snažíte se spustit hru z novější verze CorsixTH. Nedoporu�ujeme pokra�ovat z důvodu možné nestability hry. Na vlastní riziko.", } map_editor_window = { pages = { paste = "Vložit oblast", camera_3 = "Kamera 3", hedgerow = "Živý plot", delete_wall = "Smazat zdi", road = "Silnice", parcel_7 = "Parcela 7", pond = "Jezírka", heliport_3 = "Heliport 3", outside = "Vnější prostory", parcel_3 = "Parcela 3", helipad = "Přistávací plocha", parcel_1 = "Parcela 1", heliport_4 = "Heliport 4", parcel_6 = "Parcela 6", foliage = "Zeleň", parcel_2 = "Parcela 2", parcel_5 = "Parcela 5", parcel_4 = "Parcela 4", parcel_0 = "Parcela 0", north_wall = "Severní zdi", inside = "Vnitřní prostory", parcel_9 = "Parcela 9", heliport_2 = "Heliport 2", parcel_8 = "Parcela 8", camera_4 = "Kamera 4", camera_1 = "Kamera 1", camera_2 = "Kamera 2", west_wall = "Západní zdi", heliport_1 = "Heliport 1", parcel = "Parcela %d", set_parcel_tooltip = "Vepište �íslo a potvr�te Enterem.", set_parcel = "Nastavit �. parcely", }, checks = { spawn_points_and_path = "Varování: Pacienti se nemohou dostat do nemocnice. Potřebují polí�ka 'Silnice' nebo šedá polí�ka 'Vnějších prostor' na okraji mapy a nepřerušenou cestu z těchto polí�ek až ke dveřím nemocnice." }, } save_map_window = { new_map = "Nová mapa", caption = "Uložit mapu (%1%)", save_button = "Uložit", missing_filename = "Prosím, napište jméno nové uložené mapy, nebo vyberte mapu, kterou chcete přepsat.", } menu_player_count = { players_1 = " 1 HR�Č ", players_2 = " 2 HR�ČI ", players_3 = " 3 HR�ČI ", players_4 = " 4 HR�ČI ", } autosave_frequency = { daily = "Denně", monthly = "Měsí�ně", weekly = "Týdně", } menu_debug_overlay_blocking_off_areas = { choice_1 = " ZCELA ZAK�Z�NO ", choice_2 = " Č�STEČNĚ POVOLENO ", choice_3 = " ZCELA POVOLENO ", } adviser_history = { close = "Zavřít", message = "Zpráva", } subtitles = { alien001 = "Šedý kód! Útok z kosmu!", alien002 = "Marťani právě přistáli, pomoc!", alien003 = "Ve vesmíru nejsme sami! V této budově také ne!", alien004 = "Žádáme mimozemšťany, aby moc nerušili pořádek v nemocnici!", alien005 = "Marťani, zapište se do knihy návštěv.", cheat001 = "Ředitel nemocnice podvádí!", cheat002 = "Pozor! Nemocnici řídí podvodní�ek!", cheat003 = "Podvůdky! Podvůdky!", emerg001 = "Hlášení pro zaměstnance: šourají se pacienti s Nahromaděním Zlatých Žil.", emerg002 = "Hlášení pro zaměstnance: ženou se sem lidé s Hna�kou.", emerg003 = "Hlášení pro zaměstnance: přicházejí TV Osobnosti.", emerg004 = "Hlášení pro zaměstnance: přicházejí pacienti se Silnou Rými�kou.", emerg005 = "Hlášení pro zaměstnance: přicházejí pacienti se Zlomenými Kostmi.", emerg006 = "Hlášení pro zaměstnance: blíží se pacienti s Neviditelností.", emerg007 = "Hlášení pro zaměstnance: přicházejí pacienti s Nafouknutými hlavami.", emerg008 = "Hlášení pro zaměstnance: blíží se pacienti s Chlupatidou.", emerg009 = "Hlášení pro zaměstnance: přicházejí pacienti s Královým Komplexem.", emerg010 = "Hlášení pro zaměstnance: přicházejí Vážně Osvícení pacienti.", emerg011 = "Hlášení pro zaměstnance: blíží se pacienti s Ochablým jazykem.", emerg012 = "Hlášení pro zaměstnance: přicházejí pacienti s Plešatostí.", emerg013 = "Hlášení pro zaměstnance: přicházejí pacienti s Extrémním Svěděním.", emerg014 = "Hlášení pro zaměstnance: blíží se pacienti se Slizitidou.", emerg015 = "Hlášení pro zaměstnance: pomalu přicházejí pacienti se Spánkovou Nemocí.", emerg016 = "Hlášení pro zaměstnance: cítíme příchod pacientů s Odraženými Větry.", emerg017 = "Hlášení pro zaměstnance: blíží se pacienti se Zpocenými Dlaněmi.", emerg018 = "Hlášení pro zaměstnance: přicházejí pacienti s Ne�ekaným Otokem.", emerg019 = "Hlášení pro zaměstnance: přicházejí pacienti se Shnilými Vnitřnostmi.", emerg020 = "Hlášení pro zaměstnance: blíží se pacienti s Mimozemskou DNA.", emerg021 = "Hlášení pro zaměstnance: přicházejí pacienti s Těhotenstvím.", emerg022 = "Hlášení pro zaměstnance: nepozorovaně přicházejí pacienti s Průhledností.", emerg023 = "Hlášení pro zaměstnance: blíží se pacienti s Přebyte�nými Žebry.", emerg024 = "Hlášení pro zaměstnance: přicházejí pacienti s Ledvinovými Fazolemi.", emerg025 = "Hlášení pro zaměstnance: smutně přicházejí pacienti se Zlomeným Srdcem.", emerg026 = "Hlášení pro zaměstnance: blíží se pacienti s Roztrženými Uzlinkami.", emerg027 = "Hlášení pro zaměstnance: slyšíme příchozí pacienty s Nakažlivým Smíchem.", emerg028 = "Hlášení pro zaměstnance: přicházejí pacienti se Zvlněnými Kotníky.", emerg029 = "Hlášení pro zaměstnance: blíží se pacienti s Chronickými Chlupy v Nose.", emerg030 = "Hlášení pro zaměstnance: přicházejí pacienti s Afrofií.", emerg031 = "Hlášení pro zaměstnance: přicházejí pacienti s Falešnou Krví.", emerg032 = "Hlášení pro zaměstnance: slyšíme příchod pacientů s Žalude�ními Výstřelky.", emerg033 = "Hlášení pro zaměstnance: blíží se pacienti s Železnými Plícemi.", emerg034 = "Hlášení pro zaměstnance: přicházejí pacienti s Žulovými Kameny.", epid001 = "Vyhlašujeme stav epidemie!", epid002 = "Hlášení pro zaměstnance: epidemie!", epid003 = "Poplach, epidemie!", epid004 = "Varování!", epid005 = "Konec epidemie, poplach odvolán.", epid006 = "Epidemie je pod kontrolou.", epid007 = "Epidemie zajištěna.", epid008 = "Stav epidemie odvolán.", machwarn = "*Alarm stroje*", maint004 = "Údržbář vyžadován na opravu Kráje�e.", maint005 = "Prosím, údržbář na Rentgen.", maint006 = "Údržbář k opravě Genexu 2000 prosím.", maint007 = "Vyžadována revize Sáze�e vlasů.", maint008 = "Prosím, údržbář k opravě Elektrolyzéru.", maint009 = "Vyžadována revize Formy na sliz.", maint010 = "Vyžadována údržba Kardiogramu.", maint011 = "Prosím, údržbář k opravě diagnostických strojů.", maint012 = "Prosím, údržbář na Oddělení Dekontaminace.", maint013 = "Vyžadujeme údržbáře u Hustilky.", maint014 = "Údržbář vyžadován na Ortopedii.", maint015 = "Prosím, vyžadován údržbář na Hemogramu.", maint016 = "Údržbář na Ultraskener! Hned!", quake001 = "Poplach! Hlášeno zemětřesení.", quake002 = "Poplach! Blíží se zemětřesení.", quake003 = "Pozor! Výstraha před zemětřesením.", quake004 = "Pozor! Přichází zemětřesení.", rand001 = "Bílý pohotovostní telefon.", rand002 = "Doktor Jekyll na psychiatrii prosím.", rand003 = "V nemocnici nekuřte, prosím.", rand005 = "Žádáme pacienty, aby neumírali na chodbách.", rand006 = "Kýchání i kašlání viry šíří na potkání.", rand008 = "Vzkaz pro pacienty: požadovány stravenky.", rand009 = "Vzkaz pro pacienty: požadovány kreditky.", rand010 = "Tiše prosím, pacientům není dobře.", rand012 = "Žádáme pacienty, aby zvraceli s mírou.", rand013 = "Pozor: Toto je upozornění.", rand016 = "Pacienti jsou zde na vlastní riziko.", rand017 = "Žádáme nepří�etné pacienty, aby byli co nejtišší.", rand018 = "Žádáme pacienty o trpělivost.", rand019 = "Prosíme pacienty, aby �ekali tiše.", rand021 = "Prosíme, udržujte �istotu.", rand022 = "Skládky jsou proti řádu nemocnice.", rand024 = "Pacienti, prosím, nechte si své bacily pro sebe.", rand025 = "Žádáme pacienty o nachystání stravenek.", rand026 = "Žádáme pacienty o nachystání kreditek.", rand027 = "Pacienti těsně před smrtí mají přednost.", rand028 = "Prosím, tvořte uspořádané fronty.", rand029 = "Koukněte i na další hry od Bullfrog.", rand030 = "Zákaz lelkování.", rand031 = "Zákaz nepořádku.", rand032 = "Zákaz zvracení.", rand033 = "Připomínáme zaměstnancům, odpo�ívejte �asto.", rand034 = "Dnes v akci: sázení vlasů za polovic.", rand035 = "Milostpáni Burke a Hare k zadnímu východu prosím.", rand036 = "Prosíme, nekrmte zdejší havěť, děkujeme!", rand037 = "Žádáme pacienty, aby úpěli potichu, děkujeme!", rand040 = "Poplach! Odpadková bomba!", rand041 = "Už mě štve hlásit, chci jít domů.", rand044 = "Žádáme osoby na chodbách, aby nebyly nemocné.", rand045 = "Doktor Lecter nechť se hlásí ostraze, doktor Lecter k ostraze.", rand046 = "Vaše zvuková karta funguje.", reqd001 = "Doktor na Kardiogram prosím.", reqd002 = "Doktor na Skener prosím.", reqd003 = "Psychiatr do ordinace prosím.", reqd004 = "Sestra na Ortopedii prosím.", reqd005 = "Doktor vyžadován na ORL.", reqd006 = "Potřebujeme doktora na Hemogramu.", reqd007 = "Doktor na Ultrasken prosím.", reqd008 = "Praktický lékař do ordinace.", reqd009 = "Sestra na Lůžkové oddělení prosím.", reqd010 = "Žádáme dva chirurgy na Opera�ní sál.", reqd011 = "Na Opera�ním sále stále chybí jeden chirurg.", reqd012 = "Sestra do lékárny prosím.", reqd013 = "Některý lékař na Rentgen prosím.", reqd014 = "Doktor vyžadován na Hustilce.", reqd015 = "Doktor na Genex 2000.", reqd016 = "Chybí lékař na Sáze�ce vlasů.", reqd017 = "Profesor do U�ebny prosím.", reqd019 = "Doktor na Oddělení Elektrolýzy prosím.", reqd020 = "Prosím, některý doktor na Kliniku Slizu.", reqd021 = "Doktor na Vyšetřovnu.", reqd023 = "Výzkumník požadován ve Výzkumné Laboratoři.", reqd024 = "Lékař vyžadován na Oddělení Dekontaminace.", sack001 = "Lékař vyhozen.", sack002 = "Lékař odchází.", sack003 = "Lékař na odchodu.", sack004 = "Sestra odchází.", sack005 = "Sestra už odchází.", sack006 = "Vyhozený údržbář odchází pry�.", sack007 = "Recep�ní byla odejita.", sack008 = "Recep�ní odchází.", sack009 = "Zaměstnanec byl přeplacen konkurencí.", sack010 = "Lékař byl přeplacen konkurencí.", sorry001 = "Omlouváme se za nepořádek na chodbách.", sorry002 = "Mrzí nás příliš nízké teploty.", sorry003 = "Omlouváme se za přetopené prostory.", sorry004 = "Odpusťte nám teplotní nepohodlí, nefungují radiátory.", sorry005 = "Žalude�ní nevolnosti, dávejte pozor, kam šlapete.", sorry006 = "Údržbáři, zvratkový poplach na chodbách.", vip001 = "Ale pozor, do nemocnice vešla celebrita.", vip002 = "VIP nás obšťastnilo svojí návštěvou.", vip003 = "Celebrita je u nás na návštěvě.", vip004 = "VIP se prochází nemocnicí.", vip005 = "Je mezi námi celebrita.", vip008 = "Náměstek ministra v nemocnici.", } CorsixTH-0.70.0/CorsixTH/Lua/languages/danish.lua000066400000000000000000004147111522247547500214710ustar00rootroot00000000000000--[[ Copyright (c) 2010 Robin Madsen (RobseRob) Copyright (c) 2010-2011 Ole Frandsen (Froksen) Copyright (c) 2011 Rene Bergfort (Kleeze) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- READ BEFORE DOING ANY CHANGES ------------------------------------------------------------------------------- This danish translation is based apon the Norwegian file by Erlend Mongstad. I have changed it so that is match the formatting of the norwegian file. Danish translations is done by the danish team. Mostly Robin Madsen (RobseRob) or by Ole Frandsen (Froksen). Please read Mongstads description of how the formatting is done. Since the norwegian/DANISH language isn't in the original Theme Hospital game, this file is split in two sections (A and B). The first section contains all the new language strings, made by the Corsix-TH team, and the second section contains the override translation of all the original english strings. FORMATTING AND NORWEGIAN/DANISH LETTERS This file contains UTF-8 text. Make sure your editor is set to UTF-8. For the norwegian/danish letters ø and Ø, you must use the old-style ö and Ö instead. That is because the letters ø and Ø is not included in the original ingame-font. ------------------------------------------------------------------------------- Table of Contents ------------------------------------------------------------------------------- -- SECTION A - NEW STRINGS 1. Global settings 2. Faxes 3. Objects 4. Menu 5. Adviser 6. Dynamic info 7. Tooltip 8. Cheats 9. Dispatcher -- SECTION B - OLD STRINGS (OVERRIDE) Huge section with all original strings, translated from english. -----------------------------------------------------------------------------]] ------------------------------------------------------------------------------- -- SECTION A - NEW STRINGS ------------------------------------------------------------------------------- -- 1. Global settings (do not edit!) Font("cp437") Language("Dansk", "Danish", "da", "dk") Inherit("english") IsArabicNumerals(true) date_format = { daymonth = "%1% %2:months%", } -- 2. Faxes fax = { choices = { return_to_main_menu = "Tilbage til hovedmenuen", accept_new_level = "Gå videre til næste bane", decline_new_level = "Spil videre lidt endnu", }, } letter = { dear_player = "Kære %s", custom_level_completed = "Godt arbejde! Du har opfyldt alle mål på denne speicalbane!", return_to_main_menu = "Vil du gå tilbage til hovedmenuen eller fortsætte med at spille?", } install = { title = "--------------------------------- CorsixTH Installation ---------------------------------", th_directory = "CorsixTH kræver en original installation af Theme Hospital for at fungere. Angiv placeringen af spillet her.", exit = "Afslut", } -- 3. Objects object = { litter = "Skrald", } tooltip.fax.close = "Luk dette vindue uden at fjerne beskeden" tooltip.message.button = "Venstreklik for at læse faxen" tooltip.message.button_dismiss = "Venstreklik for at åbne faxen.Höjreklik for at ignorere den" -- 4. Menu menu_options = { lock_windows = " LÅS VINDUER ", edge_scrolling = " KANTSCROLLING ", settings = " INDSTILLINGER ", } menu_options_game_speed.pause = " PAUSE " -- The demo does not contain this string menu_file.restart = " START FORFRA " menu_debug = { jump_to_level = " Gå til bane ", transparent_walls = " (%1%) Gennemsigtige VæGE ", limit_camera = " BEGRæNS KAMERAET ", disable_salary_raise = " STOP LÖNFORHÖJELSER ", make_debug_fax = " LAV FEJLFINDINGS FAX ", make_debug_patient = " LAV FEJLFINDINGS PATIENT ", spawn_patient = " GENERER TILFæLDIG PATIENT ", make_adviser_talk = " FÄ RÄDGIVEREN TIL AT SNAKKE ", show_watch = " VIS URET ", create_emergency = " LAV ET AKUTTILFæLDE ", place_objects = " PLACER OBJEKTER ", cheats = " (%1%) SNYD ", lua_console = " (%1%) LUA KONSOL ", calls_dispatcher = " KALD På AFSENDER ", dump_strings = " (%1%) DUMP TEKT ", dump_gamelog = " (%1%) DUMP SPILLOG ", map_overlay = " KORTOVERSIGT ", sprite_viewer = " SPRITE VISER ", } menu_debug_overlay = { none = " INTET ", flags = " FLAG ", positions = " KORDINATER ", heat = " TEMPERATUR ", byte_0_1 = " BYTE 0 & 1 ", byte_floor = " BYTE GULV ", byte_n_wall = " BYTE N VÆG ", byte_w_wall = " BYTE W VÆG ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " TOMT ", } -- 5. Adviser adviser = { room_forbidden_non_reachable_parts = "Hvis du placerede rummet her, ville det resultere i, at dele af dit hospital ikke ville være tilgængelige.", cheats = { th_cheat = "Tillykke, du har nu muligheden for at snyde", crazy_on_cheat = "åh nej! Alle lægerne er blevet sköre!", crazy_off_cheat = "Puha... Alle lægerne er blevet normale igen.", roujin_on_cheat = "Roujin's udfordring er blevet aktiveret! Held og lykke...", roujin_off_cheat = "Roujin's udfordring deaktivateret.", hairyitis_cheat = "Skaldethed snydekoden er aktivateret!", hairyitis_off_cheat = "Skaldethed snydekoden deaktivateret.", bloaty_cheat = "Opsvulmet hoved snydekoden deaktivateret.!", bloaty_off_cheat = "Opsvulmet hoved snydekoden deaktivateret.", }, } -- 6. Dynamic info dynamic_info.patient.actions.no_gp_available = "Venter på du bygger en lægekonsultation" dynamic_info.staff.actions.heading_for = "På vej til %s" dynamic_info.staff.actions.fired = "Fyret" -- 7. Tooltip tooltip.research_policy.no_research = "Der forskes ikke på nuværrende tidspunkt i dette område" tooltip.research_policy.research_progress = "Fremskidtet mod den næste opdagelse indenfor dette område: %1%/%2%" tooltip.objects.litter = "Skrald: Smidt af dine patienter, da de ikke kunne finde en skraldespand" -- Misc misc.not_yet_implemented = "(ikke implanteret endnu)" misc.no_heliport = "Enten er der ikke blevet opdaget nogle sygdomme endnu, ellers er der ingen helikopterplads på denne bane." -- Main menu main_menu = { new_game = "Nyt spil", custom_level = "Specialbane", load_game = "Indlæs spil", options = "Indstillinger", exit = "Afslut", } tooltip.main_menu = { new_game = "Start et nyt spil fra begyndelsen", custom_level = "Lav dit eget sygehus på en specialbane", load_game = "Indlæs et gemt spil", options = "Juster dine indstillinger", exit = "Er du sikker på, at du ikke vil spille mere?", } load_game_window = { caption = "Indlæs spil", } tooltip.load_game_window = { load_game = "Indlæs spil %s", load_game_number = "Indlæs spil %d", load_autosave = "Indlæs autogem", } custom_game_window = { caption = "Specialbane", } tooltip.custom_game_window = { start_game_with_name = "Indlæs banen %s", } save_game_window = { caption = "Gem spil", new_save_game = "Nyt gemt spil", } tooltip.save_game_window = { save_game = "Overskriv gemmet %s", new_save_game = "Skriv navnet for det nye gem", } menu_list_window = { back = "Tilbage", } tooltip.menu_list_window = { back = "Luk dette vindue", } options_window = { fullscreen = "Fuldskærm", width = "Bredde", height = "Höjde", change_resolution = "Skift oplösning", browse = "Gennemse", new_th_directory = "Her kan du specificere en ny installationsmappe for Theme Hospital. Så snart du har gjort det vil spillet genstarte.", cancel = "Annullér", back = "Tilbage", } tooltip.options_window = { fullscreen_button = "Klik for at skifte imellem fuldskærmsvisning", width = "Indtast den önskede skærmbrede", height = "Indtast den önskede skærmhöjde", change_resolution = "Skift skærmstörrelsen til dimmensionerne indtastet til höjre", language = "Vælg %s som sprog", browse = "Gennemse et andet sted for installation af Theme Hospital. %1%", back = "Luk indstillingsvinduet", } new_game_window = { easy = "Praktikant (Let)", medium = "Læge (Mellem)", hard = "Konsulent (Svær)", tutorial = "Oplæring", cancel = "Annuller", } tooltip.new_game_window = { easy = "Hvis du ikke har erfaring med simulationsspil, er dette niveau det rette", medium = "Hvis du er usikker på hvad du skal vælge, er dette niveau en mellemting", hard = "Hvis du er sikker på dine evner og önsker udfordring, bör du vælge denne.", tutorial = "Hvis du önsker lidt hjælp til at komme godt igang, skal du mærkere denne boks.", cancel = "Hmm... Var det ikke meningen, at du ville starte et nyt spil?!", } lua_console = { execute_code = "Kör", close = "Luk", } tooltip.lua_console = { textbox = "Skriv den Lua-kode du vil köre her", execute_code = "Kör koden", close = "Luk konsollen", } errors = { dialog_missing_graphics = "Undskyld, men demo datafilerne har ikke en tekst.", save_prefix = "Fejl under gem af spil: ", load_prefix = "Fejl under indlæsning af spil: ", map_file_missing = "Kunne ikke finde kort filen %s for denne bane!", minimum_screen_size = "Indtast en oplösning på mindst %dx%d.", maximum_screen_size = "Indtast en oplösning på maksimalt 3000x2000.", unavailable_screen_size = "Skærmoplösningen du valgte er ikke tilgængelig i fuldskærmsvisning.", } confirmation = { needs_restart = "Hvis du vil benytte disse indstillinger, så kræver det en genstart af CorsixTH. Spil, som ikke er gemt, vil gå tabt. Er du sikker på, at du vil bruge disse indstillinger?", abort_edit_room = "Du er ved at opbygge eller ændre et lokale. Hvis alle obligatoriske genstande er placeret, kan du gemme lokalet. Hvis ikke, skal du slette rummet. Fortsætte?", restart = "Er du sikker på at du vil pröve på ny?", } confirmation.restart_level = "Er du sikker på at du vil begynde forfra?" information = { custom_game = "Velkommen til CorsixTH. Hav det sjovt med denne specialbane!", cannot_restart = "Beklageligvis er denne specialbane lavet för genstartfuntionen blev implanteret.", level_lost = { "Öv! Du gennemförte ikke banen. Bedre held næste gang!", "Derfor tabte du:", reputation = "Dit omdömme var under %d.", balance = "Din bankbalance var under %d.", percentage_killed = "Du har dræbt mere end %d procent af patienterne.", }, } tooltip.information = { close = "Luk informationsvinduet", } totd_window = { tips = { "I ethvert hospital er det nödvendigt at have en reception og en lægekonsultation for at komme i gang. Herefter er det, alt efter hvilke patienter der ankommer til dit hospital, op til dig at bygge de nödvendige rum - et apotek er dog altid godt at have.", "Maskiner, som for eksempel pumperum, har brug for vedligeholdelse. Ansæt en pedel eller to til at vedligeholde dine maskiner, ellers kan du risikere, at dine ansatte eller patienter kommer til skade.", "Med tiden bliver dine ansatte trætte. Husk at bygge et personalerum, så de kan slappe af.", "Placer radiatorer så dine patienter og ansatte kan holde varmen, ellers bliver de sure. Brug oversigtskortet til at lokalisere områder i dit hospital, som bör være varmere.", "En læges kvalifikationsniveau betyder meget for hastigheden og kvaliteten af hans diagnosticering. Hvis du placerer en meget kvalificeret læge i en lægekonsultation, behöver du ikke så mange yderligere diagnoserum.", --Juniors and doctors can improve their skills by learning from a consultant in the training room. If the consultant has a special qualification (surgeon, psychiatrist or researcher), he will also pass on this knowledge to his pupil(s). "Praktikanter og læger kan forbedre deres kvalifikationer ved at blive undervist af en konsulent i et undervisningslokale. Hvis konsulenten har specielle kvalifikationer (kirurg, psykiater eller forsker), vil han også give disse kvalifikationer videre til sine elever.", -- "Did you try to enter the European emergency number (112) into the fax machine? Make sure your sound is on!", "Har du prövet at indtaste det europæriske alarmnummer (1-1-2) på faxmaskinen? Husk at have lyd slået til!", --"You can adjust some settings such as the resolution and language in the options window found both in the main menu and ingame.", "Du kan ændre nogle indstillinger, såsom skærmoplösning og sprog, i indstillingsvinduet som findes både i hovedmenuen og inde i spillet.", --"You selected a language other than English, but there's English text all over the place? Help us by translating missing texts into your language!", "Du har valgt et andet sprog end engelsk, men der er alligevel engelsk over det hele? Hjælp os med at oversætte teksten til dit sprog.", --"The CorsixTH team is looking for reinforcements! Are you interested in coding, translating or creating graphics for CorsixTH? Contact us at our Forum, Mailing List or IRC Channel (corsix-th at freenode).", "Holdet bag CorsixTH er altid på udkig efter forskærkninger! Er du interesseret i kodning, oversættelse eller at lave grafik til CorsixTH? Så kontakt os på vores forum, mailingliste eller IRC kanalen (corsix-th på freenode).", --"If you find a bug, please report it at our bugtracker: th-issues.corsix.org", "Hvis du finder en fejl kan du rapportere den til os på vores bugtracker: th-issues.corsix.org", --"Each level has certain requirements to fulfill before you can move on to the next one. Check the status window to see your progression towards the level goals.", "På hver bane er der forskellige betingelser, som skal være opfyldt för du kan gå videre til den næste bane. Hold öje med statusvinduet for at se, hvor tæt du på at opfylde banens mål.", --"If you want to edit or remove an existing room, you can do so with the edit room button found in the bottom toolbar.", "Hvis du vil ændre eller fjerne eksisterende lokaler, kan du göre det ved at trykke på rediger lokale knappen som findes i væktöjslinjen i bunden af skærmen.", -- "In a horde of waiting patients, you can quickly find out which ones are waiting for a particular room by hovering over that room with your mouse cursor.", "I en gruppe af ventende patienter kan du hurtigt finde ud af, hvilke der er i kö til et specifikt rum, ved at bevæge musen over rummet.", --"Click on the door of a room to see its queue. You can do useful fine tuning here, such as reordering the queue or sending a patient to another room.", "Klik på dören til et rum for at se dens kö. Her kan du lave brugbar tilpasning, som for eksempel sortere i köen eller sende patienter til et andet rum.", --"Unhappy staff will ask for salary rises frequently. Make sure your staff is working in a comfortable environment to keep that from happening.", "Utilfredse medarbejdere vil oftere bede om lönforhöjelse. Husk at lave et komfortablet arbejdsmiljö for at holde dem tilfredse.", --"Patients will get thirsty while waiting in your hospital, even more so if you turn up the heating! Place vending machines in strategic positions for some extra income.", "Patienter bliver törstige mens de venter på, specielt hvis der er meget varmt på dit hospital! Placer drikkeautomater på strategiske steder for lidt ekstra indkomst.", --"You can abort the diagnosis progress for a patient prematurely and guess the cure, if you already encountered the disease. Beware that this may increase the risk of a wrong cure, resulting in death for the patient.", "Du kan afbryde en patients diagnoseproces för tid og gætte på en kur, hvis du allerede har opdaget denne sygdom tidligere. Men pas på! Det kan betyde en forhöjet risiko for fejldiagnosticering, som kan medföre patientens död.", -- "Emergencies can be a good source for some extra cash, provided that you have enough capacities to handle the emergency patients in time.", "Akuttilfælde kan være en god mulighed for at tjene lidt ekstra penge, så længe du har kapaciteten til at håndtere patienter fra akuttilfældet inden tiden löber ud.", }, previous = "Forrige tip", next = "Næste tip", } tooltip.totd_window = { previous = "Vis det forrige tip", next = "Vis det næste tip", } tooltip.cheats_window = { close = "Lukker dialogen", cheats = { money = "Overförer 10.000 til din bankkonto.", all_research = "Du har forsket alt.", emergency = "Skaber et akkuttilfælde.", create_patient = "Skaber en patient ved udkanten af kortet.", end_month = "Går til slutningen af måneden.", end_year = "Går til slutningen af året", lose_level = "Du taber banen.", win_level = "Du vinder banen.", }, } -- Cheats cheats_window = { caption = "Snyd", warning = "Advarsel: Det vil ikke være muligt at få bonuspoint ved slutningen af banen hvis du snyder!", cheated = { no = "Brugt snyd: Nej", yes = "Brugt snyd: Ja", }, cheats = { money = "Snyd med penge", all_research = "Alt er forsket", emergency = "Skab et akkuttilfælde", create_patient = "Lav en patient", end_month = "Afslut måneden", end_year = "Afslut året", lose_level = "Tab runden", win_level = "Vind runden", }, close = "Luk", } -- dispatcher calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d kalder; %d tildelt", staff = "%s - %s", watering = "Vander @ %d,%d", repair = "Reparerer %s", close = "Luk", } ------------------------------------------------------------------------------- -- SECTION B - OLD STRINGS (OVERRIDE) ------------------------------------------------------------------------------- -- Staff class -- each of these corresponds to a sprite staff_class = { nurse = "Sygeplejerske", doctor = "Læge", handyman = "Pedel", receptionist = "Receptionist", surgeon = "Kirurg", } -- Staff titles -- these are titles used e.g. in the dynamic info bar staff_class = { nurse = "Sygeplejerske", doctor = "Læge", handyman = "Pedel", receptionist = "Receptionist", surgeon = "Kirurg", -- S[1][6] unused } staff_title = { receptionist = "Receptionist", general = "Generel", -- unused? nurse = "Sygeplejerske", junior = "Praktikant", doctor = "Læge", surgeon = "Kirurg", psychiatrist = "Psykiater", consultant = "Konsulent", researcher = "Forsker", } -- Pay rises pay_rise = { definite_quit = "Jeg er ligeglad med, hvad du tilbyder mig. Jeg er træt af det her sted!", regular = { "Jeg er helt udkört. Jeg har brug for hvile og en lönforhöjelse på %d, ellers skal du nok ikke forvente at se mere til mig.", -- %d (rise) "Jeg er så træt. Jeg har brug for hvile og en lönforhöjelse på %d, altså en lön på %d ialt. Gör det nu, din tyran!", -- %d (rise) %d (new total) "Helt ærligt. Jeg arbejder som en hund på dit hospital! Giv mig en bonus på %d så bliver jeg på dit hospital.", -- %d (rise) "Jeg er pissesur. Jeg kræver en lönforhöjelse på %d, altså en lön på %d ialt, ellers så er jeg den der er skredet.", -- %d (rise) %d (new total) "Mine forældre fortalte mig, at medicinalindustrien betalte godt. Så giv mig en lönforhöjelse på %d ellers bliver jeg videospilsproducent.", -- %d (rise) "Jeg gider ikke mere. Betal mig en ordenlig lön. En lönforhöjelse på %d skulle klare det.", -- %d (rise) }, poached = "Jeg er blevet tilbudt %d af %s. Med mindre du betaler mig det samme er jeg skredet.", -- %d (new total) %s (competitor) } -------------------- Her til er kigget igennem // Froksen -- Staff descriptions staff_descriptions = { good = { [1] = "Altid glad og en flittig medarbejder. ", [2] = "Meget pligtopfyldende. Meget omsorgsfuld. ", [3] = "Er meget alsidig. ", [4] = "Er venlig og altid i godt humör. ", [5] = "Ekstremt udholdende. Löber en tur hver dag. ", [6] = "Utrolig höflig og er godt opdraget. ", [7] = "Utrolig dygtig og talentfuld. ", [8] = "Er meget opsat på at vise, hvem han er. ", [9] = "Er en perfektionist som aldrig giver op. ", [10] = "Hjælper altid patienter med et smil. ", [11] = "Charmerende, höflig og hjælpsom. ", [12] = "Er motiveret og dedikeret. ", [13] = "Stille af natur, men arbejder meget. ", [14] = "Loyal og venlig. ", [15] = "Eftertænksom og er altid til at stole på i akutte tilfælde. ", }, misc = { [1] = "Spiller golf. ", [2] = "Dykker efter muslinger. ", [3] = "Laver is-skulpturer. ", [4] = "Drikker vin. ", [5] = "Körer rally. ", [6] = "Strikker i fritiden ", [7] = "Samler på frimærker. ", [8] = "Elsker at hoppe ned fra scener til publikums begejstring. ", [9] = "Elsker at surfe. ", [10] = "Elsker at undervise elever.", [11] = "Brænder selv sin whisky. ", [12] = "Gör-det-selv ekspert. ", [13] = "Elsker franske kunstfilm. ", [14] = "Spiller meget Theme Park. ", [15] = "Har stort körekort. ", [16] = "Deltager i motorcykelræs. ", [17] = "Spiller klassisk violin og cello. ", [18] = "Entusiastisk tog-förer. ", [19] = "Hundeelsker. ", [20] = "Hörer meget radio. ", [21] = "Bader ofte. ", [22] = "Instruktör i bambusfletning. ", [23] = "Laver figurer af gröntsager. ", [24] = "Deltids minerydder. ", [25] = "Quizvært. ", [26] = "Samler på splinter fra 2.Verdenskrig. ", [27] = "Elsker at indrette. ", [28] = "Danser til rave og hip-hop musik. ", [29] = "Dræber insekter med deodorantspray. ", [30] = "Buher af dårlige komikere. ", [31] = "Stillet op til sygehusrådet. ", [32] = "Gartner med en hemmelig opskrift. ", [33] = "Smugler uægte malerier. ", [34] = "Vokalist i et rock'n'roll-band. ", [35] = "Elsker at se fjernsyn i dagtimerne. ", [36] = "Fisker efter örret. ", [37] = "Lurer på turister på museum. ", }, bad = { [1] = "Langsom og anmasende. ", [2] = "Træt og meget lidt motiveret. ", [3] = "Dårlig trænet og ubrugelig. ", [4] = "Dum i arbejde. Er en reserve. ", [5] = "Lav udholdenhed. Har en dårlig attitude. ", [6] = "Meget döv. Lugter af kål. ", [7] = "Er ligeglad med jobbet. Tager meget lidt ansvar. ", [8] = "Lider af koncentrationsbesvær og bliver let distraheret. ", [9] = "Stresset og laver mange fejl. ", [10] = "Let at provokere. Sidder meget på en stol. ", [11] = "Uforsigtig og uheldig. ", [12] = "Utroværdig og ubeslutsom. ", [13] = "Dumdristig og laver meget lidt. ", [14] = "Snu, udspekuleret og bagtaler andre. ", [15] = "Arrogant og er en karl-smart. ", }, } -- Staff list staff_list = { -- S[24][1] unused -- S[24][2] -- I have no idea what this is. Me neiter, seems like a early stupid way of doing the text overlay? morale = "MORAL", tiredness = "FRISKHED", skill = "KVALIFIKATION", total_wages = "TOTAL LÖN", } -- Objects object = { -- S[2][ 1] unused desk = "Skrivebord", cabinet = "Arkivskab", door = "Dör", bench = "Bænk", table1 = "Bord", -- unused object chair = "Stol", drinks_machine = "Sodavandsautomat", bed = "Seng", inflator = "Inflator", pool_table = "Billiardbord", reception_desk = "Receptionsbord", table2 = "Bord", -- unused object & duplicate cardio = "Löbebånd", scanner = "Skanner", console = "Konsol", screen = "Skærm", litter_bomb = "Affaldsbombe", couch = "Lænestol", sofa = "Sofa", crash_trolley = "Lægebord", tv = "Fjernsyn", ultrascanner = "Ultraskanner", dna_fixer = "DNA Fixer", cast_remover = "Gibsfjerner", hair_restorer = "Hårgenskaber", slicer = "Tungeskærer", x_ray = "Röntgen", radiation_shield = "Radioaktivitetsskjold", x_ray_viewer = "Röntgenviser", operating_table = "Operationsbord", lamp = "Lampe", -- unused object toilet_sink = "Vask", op_sink1 = "Operationsvask", op_sink2 = "Operationsvask", surgeon_screen = "Operationsskærm", lecture_chair = "Undervisningsstol", projector = "Projektor", bed2 = "Seng", -- unused duplicate pharmacy_cabinet = "Medicinskab", computer = "Computer", atom_analyser = "Atomanalyser", blood_machine = "Blodmaskine", fire_extinguisher = "Brandslukker", radiator = "Radiator", plant = "Plante", electrolyser = "Elektrolyser", jelly_moulder = "Gelé former", gates_of_hell = "Helvedes gab", bed3 = "Seng", -- unused duplicate bin = "Skraldespand", toilet = "Toilet", swing_door1 = "Svingdör", swing_door2 = "Svingdör", shower = "Bruser", auto_autopsy = "Auto obduktion", bookcase = "Bogreol", video_game = "videospil", entrance_left = "Indgang venstre", entrance_right = "Indgang höjre", skeleton = "Skelet", comfortable_chair = "Komfortabel stol", } -- Place objects window place_objects_window = { drag_blueprint = "Træk skitsen ud indtil du er tilfreds med rummets störrelse.", place_door = "Vælg dörens placering.", place_windows = "Placer de vinduer du har lyst til, klik derefter på godkend.", place_objects = "Placer genstandene indtil du er tilfreds, klik derefter på godkend.", confirm_or_buy_objects = "Godkend rummet, köb flere genstande, eller flyt allerede placerede genstande.", pick_up_object = "Klik på genstanden der skal samles op, eller vælg en anden i menuen.", place_objects_in_corridor = "Placer genstanden i et gangareal.", } -- Competitor names -- No need to translate!! //froksen -- Months months = { "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec", } -- Graphs graphs = { money_in = "Indtægter", money_out = "Udgifter", wages = "Lönninger", balance = "Saldo", visitors = "Besögene", cures = "Helbredte", deaths = "Döde", reputation = "Omdömme", time_spans = { "1 år", "12 år", "48 år", } } -- Transactions transactions = { --null = S[8][ 1], -- not needed wages = "Lönninger", hire_staff = "Ansat", buy_object = "Köbt genstand", build_room = "Bygget rum", cure = "Helbredt", buy_land = "Köbt grund", treat_colon = "Behandlet:", final_treat_colon = "Endelige behandling:", cure_colon = "Helbredt:", deposit = "Behandlings indsættelse", advance_colon = "Forskud", research = "Forskningsomkostninger", drinks = "Indtægt: Drikkevarer", jukebox = "Indtægt: Jukebox", -- unused cheat = "Snydepenge", heating = "Varmeregning", insurance_colon = "Forsikring:", bank_loan = "Banklån", loan_repayment = "Lån tilbagebetalning", loan_interest = "Renter på lån", research_bonus = "Forskningsbonus", drug_cost = "Medicinomkostninger", overdraft = "Renter på kredit", severance = "Böde", general_bonus = "Generel bonus", sell_object = "Solgt genstand", personal_bonus = "Personlig bonus", emergency_bonus = "Akuttilfælde bonus", vaccination = "Vaccinering", epidemy_coverup_fine = "Epidemiböde for forsög på mörklægning", compensation = "Kompensation", vip_award = "VIP belönning", epidemy_fine = "Epidemiböde", eoy_bonus_penalty = "Årsafslutning - straf", eoy_trophy_bonus = "Årsafslutning - trofæbonus", machine_replacement = "Udskiftning af maskine", } -- Level names -- No need to translate these // froksen -- Town map town_map = { -- S[13][ 1] -- unused chat = "Oversigtskort", for_sale = "Til salg", not_for_sale = "Ikke til salg", number = "Grundnummer", owner = "Grundejer", area = "Grundområde", price = "Grundpris", } -- Rooms short -- NB: includes some special "rooms" -- reception, destroyed room and "corridor objects" rooms_short = { -- S[14][1] -- unused -- S[14][3] -- unused reception = "Reception", destroyed = "Ödelagt", corridor_objects = "Korridorgenstande", gps_office = "Lægekonsultation", psychiatric = "Psykiatri", ward = "Sengeafsnit", operating_theatre = "Operationsstue", pharmacy = "Apotek", cardiogram = "Kardiogram", scanner = "Skanner", ultrascan = "Ultraskanner", blood_machine = "Blodmaskine", x_ray = "Röntgen", inflation = "Pumperum", dna_fixer = "DNA Fixer", hair_restoration = "Hårgenskaber", tongue_clinic = "Tungeklinik", fracture_clinic = "Knoglebrudsklinik", training_room = "Undervisningsrum", electrolysis = "Elektrolyse", jelly_vat = "Geléröret", -- Hmm. Donno if this is translateable staffroom = "Personalerum", -- rehabilitation = S[14][24], -- unused, i laughed when i saw this though.. They didn't however get so stupid and include this in the game :P general_diag = "General diagnose", research_room = "Forskningsrum", toilets = "Toiletter", decontamination = "Dekontaminering", } rooms_long = { -- S[53][1] -- unused general = "Generelt", -- unused? emergency = "Akuttilfælde", corridors = "Korridorer", gps_office = "Lægekonsultationen", psychiatric = "Psykiateren", ward = "Sengeafsnittet", operating_theatre = "Operationsstuen", pharmacy = "Apotektet", cardiogram = "Kardiogrammet", scanner = "Skannerrum", ultrascan = "Ultraskannerrum", blood_machine = "Blodmaskinerum", x_ray = "Röntgen", inflation = "Pumperum", dna_fixer = "DNA Fixer", hair_restoration = "Hårgenskaber", tongue_clinic = "Tungeklinik", fracture_clinic = "Konglebrudklinik", training_room = "Undervisningsrum", electrolysis = "Elektolyseklinik", jelly_vat = "Geléröret", -- Same as rooms short version staffroom = "Personalerum", -- rehabilitation = S[53][24], -- unused general_diag = "General diagnose", research_room = "Forskningsrum", toilets = "Toiletter", decontamination = "Dekontaminering", } room_descriptions = { ultrascan = { [1] = "Ultraskanner//", [2] = "Ultraskanneren er toppen af poppen indenfor diagnoseudstyr. Den koster spidsen af en jetjager, men pengne er godt givet ud hvis du vil være i stand til at stille meget sikre diagnoser på dit hospital.//", [3] = "Ultraskanneren betjenes af en læge. Den kræver også vedligeholdelse. ", }, gp = { [1] = "Lægekonsultation//", [2] = "Dette er det helt fundementale diagonseredskab på dit hospital. Nye patienter sendes hertil först for at finde ud af, hvad de fejler. Hvis der ikke straks kan stilles en diagnose, sendes patienten videre til andre diagnoserum. Du skal sandsynligvis med tiden bruge flere lægekonsultationer for at undgå lange köer. Jo större rummet er og jo flere genstande du placerer i rummet, des bedre arbejder lægen. Dette gælder for alle rum.//", [3] = "Alle typer læger kan arbejde i lægekonsultationen. ", }, fracture_clinic = { [1] = "Knoglebrudsklinik//", [2] = "Patienter som har fået knoglebrud behandles her. Gipsfjerneren bruger en kraftig industrilaser til at skære gibsen væk, og forårsager kun ganske lidt smerte hos patienten.//", [3] = "En sygeplejerske står får betjeningen af maskinen, som også kræver vedligeholdelse af en pedel. ", }, tv_room = { [1] = "TV RUM IKKE BRUGT", }, inflation = { [1] = "Pumperum//", [2] = "Patienter som har et humoristisk, men dog smertefuldt, ballonhoved, behandles i pumperummet. Her stikkes der hul på hovedet så trykket forsvinder. Herefter pumper lægen hovedet op til normalstörrelse.//", [3] = "Pumperummet kan kun betjenes af læger. Regelmæssig vedligeholdelse er også vigtig. ", }, jelly_vat = { [1] = "Geléröret//", [2] = "Patienter, som lider af denne forfærdelige sygdom, må slingre den lange vej til Geleröret. I röret bliver de helbredt på en måde, som stadig ikke fuldt ud kan forklares af lægevidenskaben.//", [3] = "Geleröret kræver en læge. Det kræver også vedligeholdelse fra af en pedel.", }, scanner = { [1] = "Skanner//", [2] = "Patienter bliver præcist diagnosticeret ved brug af denne sofistikerede skanner. De skal efterfölgende se en læge i lægekonsultationen, som skal se på resultatet af skanningen og stille den endelige diagnose.//", [3] = "Skanneren betjenes af en læge. Den kræver vedligeholdelse af en pedel. ", }, blood_machine = { [1] = "Blodmaskine//", [2] = "Blodmaskinen undersöger patientens blodceller for at finde ud af, hvad de fejler.//", [3] = "Blodmaskinen betjenes af en læge. Den kræver også vedligeholdelse af en pedel. ", }, pharmacy = { [1] = "Apotek//", [2] = "Patienter, som er blevet diagnosticeret med en sygdom som kan kureres med medicin, sendes til apoteket. Efterhånden som flere og flere sygdomme som kan kureres med medicin opdages, kommer flere og flere patienter til apoteket. Det kan være en god idé at bygge flere apoteker når dit hospital vokser.//", [3] = "En sygeplejerske står for udleveringen af medicin i apoteket. ", }, cardiogram = { [1] = "Kardio//", [2] = "Patienter forsöges diagnosticeret her för de sendes tilbage til lægekonsultationen for at finde en kur.//", [3] = "Kardioen betjenes af en læge. Den kræver også vedligeholdelse af en pedel. ", }, ward = { [1] = "Sengeafsnit//", [2] = "Patienter observeres her af en sygeplejerske mens man forsöger at stille en diagnose. Patienter opholder sig også ofte i sengeafsnittet forud for operationer.//", [3] = "Sengeafsnittet kræver en sygeplejserke. ", }, psych = { [1] = "Psykiatri//", [2] = "Patienter som diagnosticeres med en psykiatrisk sygdom, sendes til psykiateren for behandling. Psykiatere kan også holde samtaler med patienter under diagnosticeringsfasen for at finde ud af, hvad de fejler.//", [3] = "Psykiatrien kræver en læge med psykiatrisk uddannelse. ", }, staff_room = { [1] = "Personalerum//", [2] = "Dine ansatte bliver trætte mens de udförer deres arbejde. I personalerummet kan de slappe af og komme til kræfter igen. Trætte ansatte arbejder langsommere, kræver flere penge og vil i sidste ende sige op. De laver også flere fejl. Et personalerum med flere forskellige ting for dine ansatte at give sig til, er bestemt udgiften værd. Sörg for, at der er plads til flere ansatte på samme tid. ", }, operating_theatre = { [1] = "operationsstue//", [2] = "I dette vigtige rum bliver en række sygdomme behandlet. Operationsstuen kræver god plads og en masse dyrt udstyr. Den er en vital del af dit hospital.//", [3] = "Operationsstuen kræver to læger med kirurgisk uddannelse. ", }, training = { [1] = "Undervisningsrum//", [2] = "Dine praktikanter og læger kan få nye, værdifulde færdigheder ved at studere i dette rum. En konsulent med kirurgisk, psikiatrisk eller forskningsmæssig uddannelse vil videregive disse færdigheder til de læger, de underviser. Læger, som allerede har disse færdigheder, bliver bedre til at bruge dem ved at blive undervist.//", [3] = "Undervisningen varetages af en konsulent. ", }, dna_fixer = { [1] = "DNA Klinik//", [2] = "Patienter, som har været udsat for eksperimenter af aliens fra andre planeter, får deres DNA udskiftet i denne klinik. DNA-klinikken er udstyret med en meget avanceret maskine, og det ville nok være en god idé at have en brandslukker stående i rummet, bare for en sikkerheds skyld.//", [3] = "DNA-klinikken betjenes af en forskningsuddannet læge. Den kræver også vedligeholdelse af en pedel. ", }, research = { [1] = "Forskningsrum//", [2] = "Ny medicin og nye kure opdages og forbedres i forskningsrummet. Det er en vital del af dit hospital, og vil med tiden forbedre dine helbredelsesprocenter.//", [3] = "Forskningsuddannede læger kan arbejde i forskningsrummet. ", }, hair_restoration = { [1] = "Hårgenskabelsesklinik//", [2] = "Patienter som lider af en ekstrem grad af ufrivillig skaldethed, sendes til hårgenskabelsesklinikken. En læge vil betjene maskinen og vil hurtigt genskabe patientens mægtige hårpragt.//", [3] = "Hårgenskabelsesklinkken kræver en læge. Den kræver også vedligeholdelse af en pedel. ", }, general_diag = { [1] = "Generel Diagnose//", [2] = "Patienter, som kræver yderligere diagnosticering, sendes hertil for at blive undersögt af en læge. Hvis en læge i lægekonsultationen ikke i förste omgang kan finde ud af, hvad patienten fejler, bliver de ofte sendt til Generel Diagnose for yderligere undersögelse. Herfra sendes de tilbage til lægekonsultationen hvor resultaterne bliver analyseret.//", [3] = "Generel Diagnose kræver en læge. ", }, electrolysis = { [1] = "Elektrolyse//", [2] = "Patienter med eksplosiv hårvækst sendes til dette rum, hvor en speciel maskine kaldet en Elektrolyser, hiver hårene ud og lukker hårsækkene med elektriske stöd.//", [3] = "Betjening af elektrolysemaskinen kræver en læge. Den kræver også vedligeholdelse af en pedel. ", }, slack_tongue = { [1] = "Slap-Tunge Klinik//", [2] = "Patienter som får stillet diagnosen slap tunge, sendes til denne klinik for behandling. Lægen anvender et stykke moderne udstyr til at forlænge tungen og skære den af, for derved at efterlade patienten med en helt normal tunge.//", [3] = "Slap-Tunge klinikken kræver en læge. Den kræver også vedligeholdelse af en pedel. ", }, toilets = { [1] = "Toilet//", [2] = "Patienter som hörer naturens kalden, får brug for at lette byrden i dine komfortable toiletter. Du kan installere ekstra båse og vaske hvis du forventer mange besögende. Det kan være en god idé at bygge flere toiletter i dit hospital, så trængende patienter ikke skal gå for langt. ", }, no_room = { [1] = "", }, x_ray = { [1] = "Röntgen//", [2] = "Röntgenmaskinen fotograferer indersiden af folk med en speciel bestrålingsteknologi, så dine læger kan danne sig et bedre billede af, hvad de fejler.//", [3] = "Röntgenmaskinen betjenes af en læge. Den kræver også vedligeholdelse. ", }, decontamination = { [1] = "DekontamineringsKlinik//", [2] = "Patienter, som har været udsat for radioaktivitet, sendes hurtigt til dekontamineringsklinikken. Dette rum indeholder en brusebad som renser dem for de forfærdelige radiaktive stoffer og mudder.//", [3] = "Dekontamineringsklinikken kræver en læge. Den kræver også vedligeholdelse af en pedel. ", }, } -- Drug companies drug_companies = { "Mediciner-Til-Dig", "Kur-R-Os", "Runde Små Piller Co.", "Dyremedicin AS", "Alle Piller Co.", } -- Build rooms build_room_window = { -- S[16][1], -- unused pick_department = "Vælg afdelning", pick_room_type = "Vælg rumtype", cost = "Pris:", } -- Build objects buy_objects_window = { choose_items = "Vælg genstand", price = "Pris: ", total = "Total: ", } -- Research research = { categories = { cure = "Behandlingsudstyr", diagnosis = "Diagnoseudstyr", drugs = "Medicinforskning", improvements = "Forbedringer", specialisation = "Specialisering", }, funds_allocation = "Forskningsbudget", allocated_amount = "Totale budget", } -- Policy screen policy = { header = "Hospitalets politik", diag_procedure = "Diagnose procedure", diag_termination = "Diagnose annullering", staff_rest = "Send personale til personalerum", staff_leave_rooms = "Personale må forlade rum", sliders = { guess = "GæT PÅ KUR", -- belongs to diag_procedure send_home = "SEND HJEM", -- also belongs to diag_procedure stop = "STOP PROCEDURE", -- belongs to diag_termination staff_room = "TIL PERSONALERUM", -- belongs to staff_rest } } -- Rooms room_classes = { -- S[19][1] -- unused -- S[19][2] -- "corridors" - unused for now -- S[19][3] -- unused diagnosis = "Diagnosticering", treatment = "Behandling", clinics = "Klinikker", facilities = "Faciliteter", } -- Insurance companies insurance_companies = { out_of_business = "GÅET KONKURS", "Nyköbt Lökke", "Bölgen Blå", "Årlige Forskud AS", "Stygge Arr Co.", "Svömmeblære Co.", "Drön Ærlig AS", "Sverres Beholdninger", "Kate Pus Og Kompani", "Larsen Jr. Forsikring", "Glade Forsikringer AS", "Mafia Forsikringer", } -- Menu root -- Keep 2 spaces as prefix and suffix menu = { file = " FILER ", options = " INDSTILLINGER ", display = " GRAFISKE INDSTILLINGER ", charts = " SKEMAER ", debug = " FEJLFINDING ", } menu_file = { load = " (%1%) INDLæS ", save = " (%1%) GEM ", restart = " (%1%) START FORFRA ", quit = " (%1%) AFSLUT ", } menu_file_load = { [1] = " Gemt spil 1 ", [2] = " Gemt spil 2 ", [3] = " Gemt spil 3 ", [4] = " Gemt spil 4 ", [5] = " Gemt spil 5 ", [6] = " Gemt spil 6 ", [7] = " Gemt spil 7 ", [8] = " Gemt spil 8 ", } -- Menu Options menu_options = { sound = " (%1%) LYD ", announcements = " (%1%) ANNONCERINGER ", music = " (%1%) MUSIK ", sound_vol = " LYDSTYRKE ", announcements_vol = " ANNONCERINGSSTYRKE ", music_vol = " MUSIKSTYRKE ", autosave = " AUTOMATISK GEM ", game_speed = " SPILHASTIGHED ", jukebox = " (%1%) JUKEBOX ", edge_scrolling = " KANT SCROLLING ", settings = " INDSTILLINGER ", } -- Menu Options Game Speed menu_options_game_speed = { pause = " (%1%) PAUSE ", slowest = " (%1%) LANGSOMMEST ", slower = " (%1%) LANGSOMMERE ", normal = " (%1%) NORMAL ", max_speed = " (%1%) HURTIGST ", and_then_some_more = " (%1%) OG SÅ LIGE LIDT MERE ", } -- Menu Display menu_display = { high_res = " MANGE DETALJER ", mcga_lo_res = " FÅ DETAILJER ", shadows = " SKYGGER ", } -- Menu Charts menu_charts = { statement = " (%1%) ERKLÆRINGER ", casebook = " (%1%) MEDICINBOG ", policy = " (%1%) POLITIK ", research = " (%1%) FORSKNING ", graphs = " (%1%) DIAGRAMMER ", staff_listing = " (%1%) PERSONALEHÅNDTERING ", bank_manager = " (%1%) BANKKONSULENT ", status = " (%1%) STATUS ", briefing = " BRIEFING ", } -- Menu Debug menu_debug = { object_cells = " OBJEKTCELLER ", entry_cells = " INDGANGSCELLER ", keep_clear_cells = " KEEP-CLEAR CELLER ", nav_bits = " NAV BITS ", remove_walls = " FJERN VÆGGE ", remove_objects = " FJERN OBJEKTER ", display_pager = " VIS PERSONSOEGER ", mapwho_checking = " MAPWHO CHECKING ", plant_pagers = " PLANT PERSONSOEGERE ", porter_pagers = " PORTER PERSONSOEGERE ", pixbuf_cells = " PIXBUE CELLER ", enter_nav_debug = " ENTER NAV FEJLSOEGNING ", show_nav_cells = " VIS NAV CELER ", machine_pagers = " MASKIN PERSONSOEGER ", display_room_status = " VIS RUM STATUS ", display_big_cells = " VIS STORE CELLER ", show_help_hotspot = " VIS HJÆLP HOTSPOTS ", win_game_anim = " VIND SPIL ANIM ", win_level_anim = " VIND RUNDE ANIM ", lose_game_anim = { [1] = " TAPT SPIL 1 ANIM ", [2] = " TAPT SPIL 2 ANIM ", [3] = " TAPT SPIL 3 ANIM ", [4] = " TAPT SPIL 4 ANIM ", [5] = " TAPT SPIL 5 ANIM ", [6] = " TAPT SPIL 6 ANIM ", [7] = " TAPT SPIL 7 ANIM ", }, } -- High score screen high_score = { -- S[25][1] unused pos = "POS", player = "SPILLER", score = "SCORE", best_scores = "HALL OF FAME", worst_scores = "HALL OF SHAME", killed = "DRÆBT", -- is this used? No its not. categories = { money = "RIGESTE", salary = "HÖJESTE LÖN", clean = "RENESTE", cures = "ANTAL HELBREDTE", deaths = "ANTAL DÖDSFALD", cure_death_ratio = "HELBREDT-DÖDSFALDS RATIO", patient_happiness = "PATIENTTILFREDSHED", staff_happiness = "PERSONALETILFREDSHED", staff_number = "MEST PERSONALE", visitors = "FLEST BESÖGENDE", total_value = "TOTAL VÆRDI", }, } --mangler -- Trophy room -- Trophy room trophy_room = { many_cured = { awards = { "Tillykke med Marie Curie-prisen for at have været i stand til at helbrede næsten alle patienter på hospitalet i det forgangne år.", }, trophies = { "Den Internationale Behandlingsfond önsker at ære dig, fordi du har helbredt et stort antal mennesker på hospitalet i det forgangende år. De tildeler dig Kureret-Mange trofæet.", "Du har fået tildelt Sygdom-Gå-Væk trofæet for at have kureret en höj procentdel af patienter på hospitalet i det forgangne år.", }, }, all_cured = { awards = { "Tillykke med Marie Curie-prisen for at have været i stand til at helbrede alle patienter på hospitalet i det forgangne år.", }, trophies = { "Den Internationale Behandlingsfond önsker at ære dig, fordi du har helbredt alle patienter på hospitalet i det forgangne år. De tildeler dig derfor Kureret-Alle trofæet.", "Du har fået tildelt Ingen-Syge-Mennesker trofæet for at have helbredt alle patienter på hospitalet i det forgangne år.", }, }, high_rep = { awards = { "Du er blevet tildelt Statsministerens Glitrende Ærespris, som tildeles det hospital med det bedste omdömme i det forgangne år. Tillykke!", "Smil og vær glad! Du tildeles Bullfrog-prisen for hospitalet med det bedste omdömme i det forgangne år. Nyd det - det er velfortjent!", }, trophies = { "Tillykke med Rent-og-Pænt trofæet som tildeles hospitalet med det bedste omdömme i det forgangne år. Det er faktisk fortjent.", }, }, happy_staff = { awards = { }, trophies = { "Du tildeles Smilets Pris for at holde dit hårdtarbejdende personale i godt humör.", "Instituttet for Humörspredere hædrer dig for ikke at have nogen sure og negative ansatte på hospitalet i det forgangne år, og giver dig derfor dette trofæ.", "Dette trofæ tildeles hermed dig fordi dit personle, på trods af en ihærdig arbejdsindsats, er glade og tilfredse. De ligefrem stråler af glæde!", }, }, happy_vips = { awards = { "Du har vundet Nobelprisen for at imponere VIP'erne. Alle, som besögte dit hospital i det forgangne år, taler ikke om andet.", "Tillykke med VIP-prisen for at have gjort livene for de hårdtarbejdende kendisser bedre, ved at sætte alle som besögte dit hospital i det forgangne år i et bedre lys. Fantastisk.", }, trophies = { "Foreningen for Kendte Mennesker belönner dig med Kendistrofæet for at have taget dig godt af alle VIP'ere som besögte dit hospital i det forgangne år - du nærmer dig kendis-status, du er snart en af os.", }, }, no_deaths = { awards = { "Du har vundet Længe-Leve trofæet for at holde 100 procent af patienterne i live i det forgangne år.", }, trophies = { "Foreningen Livet-Går-Videre belönner dig med dette trofæ for at have nul dödsfald i det forgangne år.", "Du er tildelt Længe Leve Livet trofæet for at have undgået dödsfald på dit hospital i det forgangne år. Storartet.", }, }, rats_killed = { awards = { }, trophies = { "Du er tildelt Ingen-Gnavere trofæet for at have skudt %d rotter på dit sygehuset i det forgangne år.", -- %d (number of rats) "Du modtager dette trofæ af Foreningen For Mus og Rotters Bekæmpelse på grund af dine unikke evner til at skyde gnavere. Du fik ramt på %d af dem i det forgangne år!", -- %d (number of rats) "Du modtager Rotteskydertrofæet for dine unikke evner, som resulterede i udryddelsen af %d rotter på hospitalet i det forgangne år.", -- %d (number of rats) }, }, rats_accuracy = { awards = { }, trophies = { "Du er tildelt Nöjagtige-Skud-I-Håblös-Krig Trofæet for at have en træfprocent på %d%% i jagten på ækle rotter.", -- %d (accuracy percentage) "Dette trofæ er for at ære din nöjagtighed ved dræbe %d%% af rottene i det forgangne år.", -- %d (accuracy percentage) "For at hædre din præstation med at dræbe intet mindre end %d%% af rottene på dit hospital, bliver du tildelt Dungeon Keepers Skadedyrspris, Tillykke!", -- %d (accuracy percentage) }, }, healthy_plants = { awards = { "Tillykke med Grönne-Glæder prisen for at have holdt dine planter ekstremt friske i det forgangne år.", }, trophies = { "Venner-af-Potteplanter önsker at give dig Grön Helse Trofæet, fordi dine planter har strålet de sidste 12 måneder.", "Foreningen For Grönne Gamlinger önsker at give dig Grönfinger Trofæet for at have holdt plantene friske i det forgangne år.", }, }, sold_drinks = { awards = { }, trophies = { "Foreningen for Globale Tandlæger er stolte over at kunne tildele dig dette trofæ for at have solgt utroligt store mængder sodavand på dit hospital i det forgangne år.", "Hospitalet tildeles Kulsyre-prisen for alle de sprudlende sodavand, der er solgt fra dine automater i de sidste 12 måneder.", "På vegne af Hulfyldernes Forening, tildeles du hermed dette trofæ dækket af Chokolade, for at have solgt enorme mængder sodavand på hospitalet i det forgangne år.", }, }, } -- Casebook screen casebook = { reputation = "Omdömme", treatment_charge = "Behandlingspris", earned_money = "Indtjent", cured = "Helbredt", deaths = "Dræbt", sent_home = "Sendt hjem", research = "Fokusér forskning", cure = "Kur", cure_desc = { build_room = "Jeg anbefalder du bygger %s", -- %s (room name) build_ward = "Du mangler stadig at bygge et sengeafsnit.", hire_doctors = "Du mangler at ansætte nogle læger", hire_surgeons = "Du mangler at ansætte kirurger.", hire_psychiatrists = "Du har ikke ansat en psykiatiker.", hire_nurses = "Du skal ansætte sygeplejersker.", no_cure_known = "Ingen kendt kur.", cure_known = "Kur.", improve_cure = "Forbedre kur.", }, } -- Tooltips tooltip = { -- Build room window build_room_window = { room_classes = { diagnosis = "Diagnoserum", treatment = "Behandlingrum", clinic = "Klinikker", facilities = "Faciliteter", }, cost = "Samlede omkostninger for rummet", close = "Afbryd processen og vend tilbage til spillet", }, -- Toolbar toolbar = { bank_button = "Venstreklik for bankkonsulent, höjreklik for kontoudskrift", balance = "Din Balance", reputation = "Dit omdömme: ", -- NB: no %d! Append " ([reputation])". date = "Dato", rooms = "Byg rum", objects = "Köb genstande", edit = "Ændre rum/genstande", hire = "Ansæt personale", staff_list = "Personalhåndtering", town_map = "Oversigtskort", casebook = "Medicinbog", research = "Forskning", status = "Status", charts = "Diagrammer", policy = "Politik", }, -- Hire staff window hire_staff_window = { doctors = "Vis tilgængelige læger på arbejdsmarkedet", nurses = "Vis tilgængelige sygeplejersker på abejdsmarkedet", handymen = "Vis tilgængelige pedeller på arbejdsmarkedet", receptionists = "Vis tilgængelige receptionister på arbejdsmarkedet", prev_person = "Forrige person", next_person = "Næste person", hire = "Ansæt person", cancel = "Afbryd", doctor_seniority = "Lægens evner (Praktikant, Doktor, Konsulent)", staff_ability = "Kvalifikation", salary = "Lönkrav", qualifications = "Lægens specialer", surgeon = "Kirurg", psychiatrist = "Psykiater", researcher = "Forsker", }, -- Buy objects window buy_objects_window = { price = "Pris for genstand", total_value = "Total værdi af köbte genstande", confirm = "Köb genstand(e)", cancel = "Afbryd", increase = "Köb en til af denne genstand", decrease = "Köb en færre af denne genstand", }, -- Staff list staff_list = { doctors = "Se en oversigt over dine læger", nurses = "Se en oversigt over dine sygeplejersker", handymen = "Se en oversigt over dine pedeller", receptionists = "Se en oversigt over dine receptionister", happiness = "Viser hvor tilfredse dine ansatte er", tiredness = "Viser hvor trætte dine ansatte er", ability = "Viser de ansattes evner", salary = "Den pågældendes lön", happiness_2 = "Den ansattes moral", tiredness_2 = "Den ansattes træthedssniveau", ability_2 = "Den ansattes evner", prev_person = "Forrige ansatte", next_person = "Næste ansatte", bonus = "Giv den ansatte 10% i bonus", sack = "Giv den ansatte sparket", pay_rise = "Hæv den ansattes lön med 10%", close = "Luk og vend tilbage til spillet", doctor_seniority = "Lægens evner", detail = "Lægens öje for detaljer", view_staff = "Fölg den ansatte", surgeon = "Kvalificeret Kirurg", psychiatrist = "Kvalificeret Psykiater", researcher = "Kvalificeret Forsker", surgeon_train = "%d%% gennemfört uddannelse som kirurg", -- %d (percentage trained) psychiatrist_train = "%d%% gennemfört uddannelse som psykiater", -- %d (percentage trained) researcher_train = "%d%% gennemfört uddannelse som forsker", -- %d (percentage trained) skills = "Ekstra evner", }, -- Queue window queue_window = { num_in_queue = "Antal patienter i köen", num_expected = "Antal patienter som receptionen forventer ankommer til köen indenfor kort tid", num_entered = "Antal patienter behandlet i dette rum", max_queue_size = "Den maksimale længde köen må have", dec_queue_size = "Mindre makslængde", inc_queue_size = "Större makslængde", front_of_queue = "Træk i en patient for at stille ham/hende forest i köen", end_of_queue = "Træk i en patient for at stille ham/hende bagerst i köen", close = "Luk vinduet", patient = "Træk i en patient for at stille ham/hende i köen. Höjreklik på en patient for at sende patienten hjem eller til et konkurrerende hospital", patient_dropdown = { reception = "Send patienten til receptionen", send_home = "Send patienten hjem", hospital_1 = "Henvis patienten til et andet hospital", hospital_2 = "Henvis patienten til et andet hospital", hospital_3 = "Henvis patienten til et andet hospital", }, }, -- Main menu main_menu = { new_game = "Begynd et nyt spil", load_game = "Hent et gemt spil", continue = "Indlæs et gemt spil", network = "Ændre dine indstillinger", quit = "Er du sikker på du ikke vil spille mere?", load_menu = { load_slot = " SPIL [slotnumber] ", -- NB: no %d! Append " [slotnumber]". empty_slot = " TOM ", }, }, -- Window general window_general = { cancel = "Afbryd", confirm = "Godkend", }, -- Patient window patient_window = { close = "Luk vinduet", graph = "Klik for at skifte mellem en graf over patientens helbred og patientens behandlingshistorik", happiness = "Patientens humör", thirst = "Patientens törst", warmth = "Patientens temperatur", casebook = "Vis detaljer om patientens sygdom", send_home = "Send patienten hjem fra hospitalet", center_view = "Fokusér på patienten", abort_diagnosis = "Send patienten til behandling i stedet for at vente til diagnosen er stillet med sikkerhed", queue = "Se köen patienten er i", }, -- window staff_window = { name = "Den ansattes navn", close = "Luk vinduet", face = "Ansigtet på personen - klik for at administere de ansatte", happiness = "Humörniveau", tiredness = "Træthedsniveau", ability = "Kvalifikation", doctor_seniority = "Lægens særlige evner (Praktikant, Doktor, Konsulent)", skills = "specialisering", surgeon = "Kirurg", psychiatrist = "Psykiater", researcher = "Forsker", salary = "Månedslön", center_view = "Venstreklik for at finde den ansatte, höjreklik for at bladre igennem de ansatte.", sack = "Fyr personen", pick_up = "Saml op", }, -- Machine window machine_window = { name = "Navn", close = "Luk vinduet", times_used = "Antal gange maskinen har været brugt", status = "Maskinstatus", repair = "Kald en pedel til at vedligeholde maskinen", replace = "Udskift maskinen med en ny", }, -- Handyman window -- Spparently handymen have their own set of strings (partly) containing "handyman". -- We could just get rid of this category and include the three prios into staff_window. handyman_window = { name = "Pedellens navn", -- contains "handyman" close = "Luk vinduet", face = "Pedellens ansigt", -- contains "handyman" happiness = "Humörniveau", tiredness = "Træthedsniveau", ability = "Kvalifikation", prio_litter = "Få pedellen til at priotere rengöring höjere", -- contains "handyman" prio_plants = "Få pedellen til at priotere vanding af planter höjere.", -- contains "handyman" prio_machines = "Få pedellen til at priotere vedligeholdelse af maskiner höjere", -- contains "handyman" salary = "Månedslön", center_view = "Fokusér på pedellen", -- contains "handyman" sack = "Fyr pedellen", pick_up = "Saml pedellen op", }, -- Place objects window place_objects_window = { cancel = "Afbryd", buy_sell = "Köb/Sælg genstand", pick_up = "Flyt genstand", confirm = "Godkend", }, -- Casebook casebook = { up = "Rul op", down = "Rul ned", close = "Luk medicinbogen", reputation = "Ry om behandlingen eller diagnosen i nærområdet", treatment_charge = "Pris for behandling", earned_money = "Total tjent indtil nu", cured = "Antal helbredte patienter", deaths = "Antal patienter dræbt som fölge af behandlingen", sent_home = "Antal patienter sendt hjem", decrease = "Sænk pris", increase = "Forhöj pris", research = "Tryk her for at bruge forskningsbudgettet for specialisering til at forske i denne behandling", cure_type = { drug = "Behandlingen kræver medicin", drug_percentage = "Behandlingen kræver medicin, og din er %d%% effektiv", -- %d (effectiveness percentage) psychiatrist = "Sygdommen kræver behandling hos en psykiater", surgery = "Sygdommen kræver operation", machine = "Sygdommen behandles med en maskine", }, cure_requirement = { possible = "Du kan genneföre behandlingen", research_machine = "Du skal forske i maskiner for at kunne behandle denne sygdom", build_room = "Du skal bygge et rum for at kunne udföre behandlingen", -- NB: no %s! hire_surgeons = "Du mangler to kirurger for at kunne gennemföre behandlingen", hire_surgeon = "Du skal bruge en kirurg mere for at kunne gennemföre behandlingen", hire_staff = "Du skal ansætte noget personale for at kunne behandle denne sygdom", build_ward = "Du skal bygge er sengeafsnit for at kunne gennemföre denne behandling", ward_hire_nurse = "Du mangler en sygeplejerske for at kunne gennemföre behandlingen", not_possible = "Du kan ikke håndtere denne behandling endnu", }, }, -- Statement statement = { close = "Luk kontoudskriften", }, -- Research research = { close = "Luk vinduet", cure_dec = "Nedprioriter forskning i behandlingsudstyr", diagnosis_dec = "Nedprioriter forskning i diagnoseudstyr", drugs_dec = "Nedprioriter forskning i medicin", improvements_dec = "Nedprioriter forskning i forbedring af eksisterende udstyr eller medicin", specialisation_dec = "Nedprioriter forskning i specialiseringer", cure_inc = "Opprioriter forskning i behandlingsudstyr", diagnosis_inc = "Opprioriter forskning i diagnoseudstyr", drugs_inc = "Opprioriter forskning i medicin", improvements_inc = "Opprioriter forskning i forbedringer af eksisterende udstyr eller medicin", specialisation_inc = "Opprioriter forskning i specialiseringer", allocated_amount = "Penge afsat til forskning", }, -- Graphs graphs = { close = "Gå til diagramvinduet", scale = "Skala på diagram", money_in = "Vis/skjul indtægter", money_out = "Vis/skjul udgifter", wages = "Vis/skjul Lönninger", balance = "Vis/skjul Balance", visitors = "Vis/skjul Besögende", cures = "Vis/skjul Helbredte", deaths = "Vis/skjul Dödsfald", reputation = "Vis/skjul Omdömme", }, --- nået hertil 28 dec -- Town map town_map = { people = "Vis/Skjul mennesker", plants = "Vis/Skjul planter", fire_extinguishers = "Vis/Skjul brandslukningsudstyr", objects = "Vis/Skjul genstande", radiators = "Vis/Skjul radiatorer", heat_level = "Temperatur", heat_inc = "Skru op for varmen", heat_dec = "Skrue ned for varmen", heating_bill = "varmeomkostninger", balance = "Balance", close = "Luk oversigtskortet", }, -- Jukebox. jukebox = { current_title = "Jukebox", close = "Luk jukebox", play = "Spil jukebox", rewind = "Spol tilbage - jukebox", fast_forward = "Spol frem - jukebox", stop = "Stop jukebox", loop = "Gentag jukebox", }, -- Bank Manager bank_manager = { hospital_value = "Hospitalets samlede værdi", balance = "Balance", current_loan = "Nuværende lån", repay_5000 = "Tilbagebetal 5000 til banken", borrow_5000 = "Lån 5000 af banken", interest_payment = "Månedlige renteomkostninger", inflation_rate = "Årlig inflation", inflation_rate = "Inflationsrate", close = "Luk banken", insurance_owed = "Penge %s skylder dig", -- %s (name of debitor) show_graph = "Vis forventet tilbagebetalingsplan fra %s", -- %s (name of debitor) graph = "Forventet tilbagebetalingsplan fra %s", -- %s (name of debitor) graph_return = "Vend tilbage til forrige billede", }, -- Status status = { percentage_cured = "Du skal helbrede %d % af de besögende på dit hospital. Indtil nu har du helbredt %d %", thirst = "Gennemsnitlig törst for dine patienter", close = "Luk oversigten", population_chart = "Andel af lokalbefolkningen som benytter dit hospital", win_progress_own = "Vis hvor langt du er nået for at klare banens krav", reputation = "Dit omdömme skal være på mindst %d. Indtil nu er det %d", population = "Du skal have %d%% af befolkningen til at bruge dit sygehus", warmth = "Gennemsnitlig temperatur for patienterne på dit sygehus", percentage_killed = "Kriteriet er blandet andet at dræbe færre end %d%% af dine besögende. Indtil nu har du taget livet af %d%%", balance = "Din bankbalance skal være på mindst %d. Indtil nu er den %d", value = "Dit sygehus skal have en værdi på $%d. Indtil nu er det værd $%d", win_progress_other = "Vis progression i forhold til kravene for dette niveau for %s", -- %s (name of competitor) num_cured = "Kriteriet er blandet andet at helbrede %d mennesker. Indtil nu har du helbredt %d", happiness = "Gennemsnitligt humör på personene på dit sygehus", }, -- Policy policy = { close = "Luk sygehuspolitik", staff_leave = "Klik her for at tillade, at dit peronale må forlade de rum, du har placeret dem i", staff_stay = "Klik her for at få personalet til at blive i de rum, du har placeret dem i", diag_procedure = "Hvis lægens diagonse er mindre sikker end angivet her, vil patitenten blive sendt hjem. Hvis diagnosen er mere sikker end fastsat under gæt kur procenten, vil patienten få den relevante behandling", diag_termination = "Dine læger vil blive ved med at söge efter en diagnose indtil lægerne er helt sikre på en kur, eller indtil alle maskiner er afprövet. Du kan dog altid afbryde diagnosticeringen", staff_rest = "Hvor træt dit personale skal være för de går til personalerummet", }, -- Pay rise window pay_rise_window = { accept = "Accepter kravet", decline = "Afvis krav og afsked vedkommende", }, -- Watch watch = { hospital_opening = "Tid indtil hospitalet åbner og patienter begynder at ankomme. Klik på knappen for at åbne hospitalet med det samme.", emergency = "Tilbageværende tid til at få behandlet de akutte patienter.", epidemic = "Resterende tid til at få styr på epidemien. Når tiden er udlöbet, eller når en smittet patient forlader hospitalet, kommer der en sundhedsindpektör forbi og inspicerer hospitalet. Knappen tænder og slukker for vaccinationstilstanden. Tryk på patienterne for at få en sygeplejerske til at vaccinere dem.", }, -- Rooms rooms = { gps_office = "Patienterne modtager deres förste konsultation og resultaterne af efterfölgende undersögelser i lægekonsultationen.", psychiatry = "Psykiateren behandler patienter med psykiatriske lidelser og hjælper med diagnosticering af andre patienter, men forudsætter en læge med psykiatrisk uddannelse.", ward = "Sengeafsnittet er nyttigt både til diagnosticering og behandling. Patienter sendes hertil for observation, men også som forberedelse til operationer. Sengeafsnittet kræver en sygeplejerske.", operating_theatre = "Operationsstuen kræver to læger med speciale i kirurgi.", pharmacy = "Sygeplejersken udleverer medicin på apoteket for at helbrede patienter.", cardiogram = "En læge bruger löbebåndet til at udarbejde et kardiogram som kan bruges til at diagnosticere patienternes sygdomme.", scanner = "En læge bruger skanneren til at diagnosticere patienterne.", ultrascan = "En læge bruger ultraskanneren til at diagnosticere patienterne.", blood_machine = "En læge bruger blodmaskinen til at diagnosticere patienterne.", x_ray = "En læge bruger röntgenmaskinen til at diagnosticere patienterne.", inflation = "En læge bruger pumperummet til at behandle patienter med opsvulmet hoved.", dna_fixer = "En læge bruger DNA-Maskinen til at behandle patienter med Alien DNA.", hair_restoration = "En læge bruger hårmaskinen til at behandle patienter med ekstremt hårtab.", tongue_clinic = "En læge bruger tungeklinikken til at behandle patienter med slap tunge.", fracture_clinic = "En sygeplejerske bruger knoglebrudsklinikken til at behandle knoglebrud.", training_room = "Et undervisningsrum med en konsulent kan bruges til at oplære andre læger.", electrolysis = "En læge bruger elektrolyseklinikken til at behandle patienter med ekstrem hårvækst.", jelly_vat = "En læge bruger geleröret til at behandle patienter med Gelésyndrom.", staffroom = "Læger, sygeplejersker og pedeller bruger personalerummet til at hvile sig og for at hæve moralen.", -- rehabilitation = S[33][27], -- unused general_diag = "En læge udförer forskellige undersögelser af patienter i dette rum. Billigt og ofte meget effektivt.", research_room = "Læger med specialisering inden for forskning kan forske sig frem til ny medicin og maskiner i forskningsafdelingen.", toilets = "Lav toiletter så patienterne ikke skal bruge deres kræfter på at klemme balderne sammen.", decontamination = "En læge bruger dekontaminering til at behandle patienter som har været udsat for radioaktiv stråling.", }, -- Objects objects = { -- NB: most objects do not have a tooltip because they're not (extra-)buyable desk = "Bord: En læge bruger bordet til sin computer.", cabinet = "Arkivskab: Indeholder patientjournaler, noter og forskningsdokumenter.", door = "Dör: Patienter åbner og lukker disse meget.", bench = "Bænk: Giver en plads at sidde på og gör besöget mere behageligt.", table1 = S[40][ 6], -- unused chair = "Stol: Patienten sidder på den og taler om sine problemer.", drinks_machine = "Sodavandsautomat: Forhindrer at patienterne kommer til at törste og tiltrækker insekter.", bed = "Seng: Patienterne ligger i dem.", inflator = "Pumpe: Helbreder patienter med opsvulmet hoved.", pool_table = "Billardbord: Hjælper dit personale til at slappe af.", reception_desk = "Reception: Herfra bliver patienterne sendt videre til andre områder af dit hospital.", table2 = S[40][13], -- unused & duplicate cardio = S[40][14], -- no description scanner = S[40][15], -- no description console = S[40][16], -- no description screen = S[40][17], -- no description litter_bomb = "Skraldebombe: Saboterer konkurrentens hospital", couch = S[40][19], -- no description sofa = "Sofa: Ansatte slapper af i sofaen, hvis der ikke er bedre måder at slappe af på.", crash_trolley = S[40][21], -- no description tv = "TV: Sörg for, at personalet ikke går glip af deres ynligsprogrammer.", ultrascanner = S[40][23], -- no description dna_fixer = S[40][24], -- no description cast_remover = S[40][25], -- no description hair_restorer = S[40][26], -- no description slicer = S[40][27], -- no description x_ray = S[40][28], -- no description radiation_shield = S[40][29], -- no description x_ray_viewer = S[40][30], -- no description operating_table = S[40][31], -- no description lamp = S[40][32], -- unused toilet_sink = "Vask: Her kan dine patienter vaske deres hænder. Hvis der ikke er nok håndvaske bliver de sure. Vaske er gode for hygiejnen.", op_sink1 = S[40][34], -- no description op_sink2 = S[40][35], -- no description surgeon_screen = S[40][36], -- no description lecture_chair = ": Når dine læger sidder her og tager noter, kan de kun blive klogere. Jo flere stole du har, jo större kan klassen være.", projector = S[40][38], -- no description bed2 = S[40][39], -- unused duplicate pharmacy_cabinet = "Apotekskab: Fyldt med medicin.", computer = "Computer: Genialt forskningsværktöj", atom_analyser = "Atomanalyser: Placeres i forskningsafdelingen, og gör hele forskningsprocessen hurtigere.", blood_machine = S[40][43], -- no description fire_extinguisher = "Brandslukker: Mindsker risikoen for, at dine maskiner brænder sammen.", radiator = "Radiator: Holder hospitalet varmt.", plant = "Plante: Holder patienternes humör oppe og renser luften.", electrolyser = S[40][47], -- no description jelly_moulder = S[40][48], -- no description gates_of_hell = S[40][49], -- no description bed3 = S[40][50], -- unused duplicate bin = "Skaldespand: Patienterne smider deres skrald her.. i hvert fald de velopdragne", toilet = "Toilet: Patienterne.. bruger dette.", swing_door1 = S[40][53], -- no description swing_door2 = S[40][54], -- no description shower = S[40][55], -- no description auto_autopsy = "Obduktionsautomat: Godt hjælpemiddel til at opdage nye behandlingsmetoder.", bookcase = "Bogreol: Indeholder opslagsværker til læger.", video_game = "Videospil: Lader personale slappe af med et spil Hi-Octane.", entrance_left = S[40][59], -- no description entrance_right = S[40][60], -- no description skeleton = "Skelet: Bruges til undervisning og til Halloween.", comfortable_chair = S[40][62], -- no description }, } -- 32. adviser = { -- Epidemic epidemic = { hurry_up = "Hvis du ikke tager dig af epidemien nu, kan du få store problemer. Skynd dig!", serious_warning = "Den smitsomme sygdom begynder at blive et seriöst problem. Du må göre noget snart!", multiple_epidemies = "Det ser ud som om du har mere end en epidemi i gang. Dette kan blive en enorm katastrofe for hospitalet!", }, -- Staff advice staff_advice = { need_handyman_machines = "Du bör ansætte flere pedeller til at tage sig af dine maskiner.", need_doctors = "Du har brug for flere læger. Pröv at placere lægerne i de rum, hvor der er længst kö.", need_handyman_plants = "Du skal ansætte en pedel til at vande planterne.", need_handyman_litter = "Folk er begyndt at svine på dit hospital. Få en pedel til at rydde op efter dine patienter og köb eventuelt flere skraldespande.", need_nurses = "Du har brug for flere sygeplejersker. Sengeafsnit og apoteker drives af sygeplejersker.", too_many_doctors = "Jeg tror du har for mange læger. Nogle af dem har ikke noget at lave.", too_many_nurses = "Jeg tror du har ansat for mange sygeplejersker.", }, -- Earthquake earthquake = { damage = "Jordskælvet har skadet %d maskiner og %d patienter i hospitalet.", -- %d (count machines), &d (count patients) alert = "Jordskælvsvarsel! Under et jordskælv tager dine maskiner skade. De kan brænde sammen hvis de ikke er ordentligt vedligeholdt.", ended = "Puha! Det var et stort skælv - det målte %d på Richters skala.", }, -- Multiplayer multiplayer = { objective_completed = "Du har klaret udfordringerne for denne bane - tillykke!", everyone_failed = "Ingen klarede udfordringerne, så alle kan spille videre!", players_failed = "Fölgende spiller(e) klarede ikke den forrige udfordring : ", poaching = { in_progress = "Jeg skal sige fra denne person, at han gerne vil arbejde for dig.", not_interested = "Ha! De er ikke interesserede i at arbejde for dig..", already_poached_by_someone = "Ikke tale om! Andre pröver allerede at overtale personen.", }, objective_failed = "Det lykkedes ikke for dig at klare udfordringerne.", }, -- Goals goals = { win = { money = "Du skal opnå %d for at klare de finansielle krav for denne bane.", cure = "Når du har helbredt yderligere %d patienter har du helbredt nok til et gennemföre banen.", reputation = "Sörg for at have et omdömme på over %d for at du kan genneföre banen.", value = "Dit hospital skal have en værdi på over %d för du kan gennemföre banen", }, lose = { kill = "Dræb %d patienter mere og du har tabt banen!", }, }, -- Information information = { larger_rooms = "Större rum får de ansatte til at föle sig bedre tilpas og forbedrer deres arbejde.", extra_items = "Flere genstande i kontorer og lokaler får dine ansatte til at föle sig bedre tilpas og forbedrer deres præstationer.", epidemic = "Der er en smitsom epidemi på dit hospital. Det skal du göre noget ved, NU!", promotion_to_doctor = "En af dine praktikanter er blevet forfremmet til doktor.", emergency = "Akkuttilfælde på vej, gör plads!", patient_abducted = "En af dine patienter er blevet bortfört af et rumvæsen!", first_cure = "Godt arbejde! Du har netop helbredt din förste patient! Fortsæt det gode arbejde.", promotion_to_consultant = "En af dine læger er blevet forfremmet til konsulent.", handyman_adjust = "Du kan göre en pedel mere effektiv ved at justere på hans prioriteringer.", promotion_to_specialist = "En af dine læger er blevet forfremmet til %s.", patient_leaving_too_expensive = "En patient forlader dit hospital. Dine priser er alt for höje for vedkommende!", vip_arrived = "Tid til fokus! - %s er netop ankommet til dit hospital. Sörg for at alt körer på skinner, så du kan göre et godt indtryk.", epidemic_health_inspector = "Sundhedsmyndighederne har fået besked om din epidemi. Du kan forvente et besög fra myndighederne meget snart.", first_death = "Du har netop dræbt din förste patient. Hvordan har du det med det?!", pay_rise = "En af dine ansatte truer med at sige op. Du skal vælge om du vil gå med til lönkravene eller om du vil fyre vedkommende. Klik på ikonet nede i venstre hjörne for at se, hvem som truer med at sige op.", place_windows = "Vinduer gör rum lysere og forbedrer arbejdsglæden hos dine ansatte.", fax_received = "Du har modtaget en fax. Du finder den i bunden af skærmen. En fax kan indeholde vigtig information som du skal forholde dig til.", initial_general_advice = { rats_have_arrived = "Rotterne har invaderet dit hospital! Pröv at skyde dem med musen.", autopsy_available = "Obduktionsautomaten er færdigudviklet. Med denne kan du få det bedste ud af patienter, som du ikke kan finde ud af hvad fejler. Advarsel! - Brug af denne maskine er meget kontrovatielt, hvis offentligheden får kendskab til den, kan det få negative konsekvenser for dit omdömme.", first_patients_thirsty = "Flere af dine patienter er törstige. De ville sætte pris på flere sodavandsautomater.", research_now_available = "Du har bygget din förste forskningsafdeling. Du kan styre afdelingens arbejde via forskningsskærmen som du finder i bundet af skærmbilledet.", psychiatric_symbol = "Læger med prykiatrisk uddannelse kan genkendes med symbolet: |", decrease_heating = "Folk på dit hospital sveder. Skru ned for varmen, det kan du göre på oversigtskortet.", surgeon_symbol = "Læger kan udföre kirurgiske indgreb hvis de har symbolet: {", first_emergency = "Akutte patienter har et blinkende blåt lys over deres hoved. Hvis du ikke helbreder dem inden tiden löber ud, dör de!", first_epidemic = "Der er udbrudt en epidemi på dit hospital. Du skal tage stilling til, om du vil forsöge at behandle de ramte selv, eller om du vil betale dig fra det.", taking_your_staff = "Nogen pröver at stjæle dit personale. Du må kæmpe for at beholde dem.", place_radiators = "Patienterne fryser - du bör placere flere radiatorer i dit hospital så patienterne kan holde varmen.", epidemic_spreading = "Epidemien spreder sig på dit hospital. Du skal vaccinere de inficerede patienter inden de forlader hospitalet.", research_symbol = "Forskere er læger med symbolet: }", machine_needs_repair = "Du har udstyr i dit hospital som har brug for at blive repareret. Find udstyret - det ryger fra det - og klik på det for at tilkalde en pedel.", increase_heating = "Folk fryser på dit hospital. Du kan Skrue op for varmen på oversigtskortet.", first_VIP = "Du er ved at modtage dit förste VIP-besög. Sörg for at VIP'en ikke ser noget uhygiejnisk eller triste patienter.", }, }, -- Build advice build_advice = { placing_object_blocks_door = "Hvis du placerer genstanden der, kan folk ikke komme til dören.", blueprint_would_block = "Hvis du placerede rummet sådan, ville det blokere for andre rum. Pröv at ændre rumstörrelsen eller flyt rummet til et andet sted!", door_not_reachable = "Folk kan ikke komme til dören.", blueprint_invalid = "Det er ikke en gyldig skitse.", }, } -- Confirmation confirmation = { quit = "Du har valgt at afslutte spillet. Er du sikker på, at du vil forlade spillet?", return_to_blueprint = "Er du sikker på, at du vil returnere til skitsen?", replace_machine = "Er du sikker på du vil erstatte %s for %d?", -- %s (machine name) %d (price) overwrite_save = "Der er allerede et spil gemt på denne plads. Skal det gemte spil overskrives?", delete_room = "Vil du virkeligt slette dette rum?", sack_staff = "Er du sikker på, at du vil give den ansatte sparket?", restart_level = "Er du sikker på, at du vil starte forfra med denne bane?", } -- Bank manager bank_manager = { hospital_value = "Hospitalets værdi", balance = "Balance", current_loan = "Nuværende lån", interest_payment = "Renter", insurance_owed = "Forsikringer skyldet", -- Is this even used in the game? inflation_rate = "Inflationsrate", -- Inflation rate.. never heard of that either. interest_rate = "Rente", statistics_page = { date = "Dato", details = "Detaljer", money_out = "Ud", money_in = "Ind", balance = "Balance", current_balance = "Nuværende balance", }, } -- Letters letter = { --original line-ends: 5 4 2 3 [1] = { [1] = "Kære %s//", [2] = "Fantastisk! Du har drevet hospitalet virkelig godt. Vi i Ministeriet vil höre, om du er intersseret i et deltage i et större projekt. Vi har et job, som vi tror ville passe dig rigtig godt. Vi kan friste med en lön på $%d. Tænk over det.//", [3] = "Er du interessert i jobbet på hospitalet %s?", }, [2] = { [1] = "Kære %s//", [2] = "Imponerende! Hospitalet er undergået en fantastisk udvikling. Vi har et andet sted, som du kan overtage, hvis du klar til nye udfordringer. Du behöver ikke tage udfordringen op, men det vil give en belönning i form af en lön på $%d//", [3] = "Er du interessert i at jobbet på hospitalet %s?", }, [3] = { [1] = "Kære %s//", [2] = "Din tid på dette hospital har været ekstremt vellykket. Vi spår dig en stor fremtid, og önsker at tilbyde dig en stilling et andet sted. Lönnen vil være $%d, og vi tror du vil elske de nye udfordringer, stillingen förer med sig.//", [3] = "Er du interessert i jobbet på hospitalet %s?", }, [4] = { [1] = "Kære %s//", [2] = "Tillykke! Vi i Ministeriet er meget imponerede over dine evner til drive hospitaler. Du er helt sikkert en gulddreng for sundhedsmyndighederne. Vi er overbeviste om, at du er klar til nye udfordringer på et större hospital. Vi er klar til at tilbyde en lön på $%d, men beslutningen er din.//", [3] = "Er du interessert i jobbet på hospitalet %s?", }, [5] = { [1] = "Kære %s//", [2] = "Hej igen. Vi respekterer dine önsker om at ikke forlade dette fantastiske hospital som du har opbygget, men vi beder dig overveje din beslutning igen. Vi er klar til at tilbyde en god lön på $%d hvis du er klar på at flytte til et andet område og få skabt et respektabelt hospital.//", [3] = "Er du klar til nye udfordringer på hospitalet %s?", }, [6] = { [1] = "Kære %s//", [2] = "Ministeriet hilser dig. Vi ved hvor glad du er blevet for dette nydelige og velorganiserede hospital, men vi mener, at du nu bör koncentrere dig om din karriere. Du vil få en respektabel lederlön på $%d hvis du bestemmer dig for at flytte. Det er i hvert fald en overvejelse værd.//", [3] = "Er du interessert i et nyt job på hospitalet %s?", }, [7] = { [1] = "Kære %s//", [2] = "Goddag! Sundhedsministeren tænker på, om du vil revurdere din stilling på dit nuværende hospital. Vi sætter pris på dit nydelige hospital, men vi tror, at du vil göre meget for en lidt mere udfordrende stilling, og en lön på $%d.//", [3] = "Er du interessert i et job på hospitalet %s?", }, [8] = { [1] = "Kære %s//", [2] = "Hej igen. Du tog ikke imod den forrige udfordring, da vi tilböd dig en alle tiders udfordring på et nyt hospital, og en lön på $%d. Vi mener, at tiden er inde til, at du bör revurdere beslutningen. Vi har det perfekte job til dig, tror vi.//", [3] = "Er du interessert i at tage jobbet på hospitalet %s?", }, [9] = { [1] = "Kære %s//", [2] = "Du har mere end en gang bevist, at du er den bedste i sundhedsvæsnet. Ingen tvivl! En så fantastisk præstation skal belönnes, så vi önsker at tilbyde dig stillingen som Administrerende Direktör for Alle Sygehuse. Dette er en ærefuld stilling, og giver dig en lön på hele $%d. Du får din egen Ticker-Tape parade, og folk kommer til at vise deres taknemmelighed, hvor end du går.//", [3] = "Tak for alt du har gjort i din tid som hospitalsdirektör. Vi önsker dig en lang og fantastisk pension.//", }, [10] = { [1] = "Kære %s//", [2] = "Tillykke! Du har drevet alle de hospitaler vi har givet dig ansvaret for på en udmærket facon. En sådan præstation kvalificerer dig til at få friheden til at rejse Jorden rundt. Du bliver belönnet med en pension på $%d, plus en limousine, og alt vi beder dig om er, at du rejser fra by til by, möder dine lidenskabelige fans, og promoverer hospitalets arbejde, hvor end du måtte befinde dig.//", [3] = "Vi er stolte af dig. Vi er alle taknemmelige over dit hårde arbejde som livredder.//", }, [11] = { [1] = "Kære %s//", [2] = "Din karriere har været eksemplarisk, og du er en stor inspiration for os alle. Tak for, at du har drevet så mange hospitaler, og gjort det så godt i alle dine stillinger. Vi önsker at give dig en livslang lön på $%d, og alt vi beder dig om er at rejse officelt fra by til by, og fortælle folk, hvordan du tjente så mange penge.//", [3] = "Du er et pragteksempel for alle os andre, og vi önsker dig al lykke og glæde fremover!//", }, [12] = { [1] = "Kære %s//", [2] = "Din succeskarriere som den beste hospitalsadministrator, den bedste siden Moses' tid, er ved vejs ende. Men siden du har haft så stor indvirkning på den medicinske verden, önsker Ministeriet at tilbyde dig en livsvarig lön på $%d bare for at være til stede på vore vegne, åbne fester, sösætte skibe og stille op i shows. Hele verden efterlyser dig, og du ville være fantastisk PR for os ude i verden!//", [3] = "Vær så venlig at tage imod denne stilling, det bliver ikke hårdt arbejde! Og vi skal sörge for, at du får politieskorte hvorend du kommer.//", }, } -- Humanoid start of names humanoid_name_starts = { [1] = "BJÖRN", [2] = "PER", [3] = "STOR", [4] = "GUL", [5] = "RIG", [6] = "SOL", [7] = "LANGE", [8] = "FLAD", [9] = "HÅRD", [10] = "MYG", [11] = "BAR", [12] = "SKODDE", [13] = "MÖRKE", [14] = "BLÅ", [15] = "KRIG", [16] = "LAT", [17] = "KRABBE", [18] = "FISK", [19] = "VÅD", [20] = "SEN", [21] = "GRAV", [22] = "BAK", [23] = "LAVE", [24] = "UD", [25] = "ENGE", [26] = "GRÖN", [27] = "KUR", [28] = "KVIT", [29] = "KJEVE", [30] = "TRYGLE", [31] = "KVÆAEN", [32] = "KRYKKE", [33] = "SKADE", } -- Humanoid end of names humanoid_name_ends = { [1] = "STAD", [2] = "BERG", [3] = "NES", [4] = "DAL", [5] = "LID", [6] = "HEIM", [7] = "HEM", [8] = "LAND", [9] = "SETH", [10] = "RUD", [11] = "VIK", [12] = "BÖ", [13] = "GAARD", [14] = "GÅRD", [15] = "HAUG", [16] = "LUND", [17] = "LOFT", [18] = "VER", [19] = "SAND", [20] = "LIE", [21] = "VOLD", [22] = "STRÖM", [23] = "LI", [24] = "DALEN", [25] = "DAHL", [26] = "BAKKEN", } -- VIP names vip_names = { health_minister = "Sundhedsministeren", "Peter Brixtofte", -- A guy that liked to drink VERY expensive vine on the whole cities bill. "Prins Henrik", "Master fatman", "Anders Fogh", "Lars Hjortshöj", "Svampebob", "Jes Dorph", "Michael Laudrup", "Lars larsen", -- Jysk sengetöjslager "Justin bæver", -- Dont think i like him.. i hate him! } -- Deseases diseases = { general_practice = { name = "Lægekonsultation", }, bloaty_head = { name = "Opsvulmet hoved", cause = "Årsag - Patienten har sniffet ost og drukket forurenet vand.", symptoms = "Symptomer - Den ramte har det meget ukomfortabelt. Föler mildest talt en vis oppustethed i hovedregionen.", cure = "Behandling - Der stikkes hul på det opsvulmede hoved, og ved hjælp af en genial maskine bliver hovedet sat tilbage til den korekte PSI.", }, hairyitis = { name = "Ekstrem hårvækst", cause = "Årsag - Lange gåture i måneskin medförer en uhensigtsmæssig udsættelse for månens stråler, som beskadiger hovedbunden og forårsager hårvækst i ukontrollabelt omfang på resten af kroppen.", symptoms = "Symptomer - Nedsat fremdrift i vand.", cure = "Behandling - En elektrolysemaskine fjerner hårvæksten og tilbageförer porene til deres normale stadie.", }, king_complex = { name = "Kongekompleks", cause = "Årsag - Elivs' ånd har taget kontrollen over patienten", symptoms = "Symptomer - Går med farvede lædersko, spiser cheesebrugere og udsætter hofter og knæ for ganske akavede stillinger", cure = "Behandling - En psykiater fortæller patienten hvor tåbelig han ser ud", }, invisibility = { name = "Usynlighed", cause = "Årsag - Bidt af en radioaktiv (og usynlig) myre", symptoms = "Symptomer - Patienten lider ikke - tværtimod! De udnytter situationen og lurer på deres familie og venner!", cure = "Behandling - En farverig drik fra apoteket gör patienten fuldt synlig igen", }, serious_radiation = { name = "Alvorlig bestråling", cause = "Årsag - Har forvekslet plutonium-isotoper med tyggegummi", symptoms = "Symptomer - Patienten föler sig meget ukomfortabel", cure = "Behandling - Patienten placeres i en saniteringsbruser og renset fuldstændigt.", }, slack_tongue = { name = "Slap tunge", cause = "Årsag - Kronisk overivrighed i diskussioner om sæbeoperaer.", symptoms = "Symptomer - Tungen hæver til det femdobbelte.", cure = "Behandling - Tungen bliver placeret i en tungeskærer. Hævelsen fjernes derefter hurtigt, effektivt og smertefuldt.", }, alien_dna = { name = "Udenjordisk DNA", cause = "Årsag - Patienten er blevet bidt af iler udstyret med intelligent rumvæsenblod.", symptoms = "Symptomer - Er under gradvis forvandling til et rumvæsen, og udvikler et önske om at overtage verdensherredömmet", cure = "Behandling - Alt DNA fjernes mekanisk, renses for rumvæsenceller, og bliver hurtig erstattet", }, fractured_bones = { name = "Knoglebrud", cause = "Årsag - Fald fra höjder ned på beton", symptoms = "Symptomer - Höje knaselyde og meget lidt bevægelighed på de udsatte steder", cure = "Behandling - Gipsen fjernes ved hjælp af en laserstyret gipsfjerner", }, baldness = { name = "Ekstremt hårtab", cause = "Årsag - Fortæller lögne og opdigter historier for at forbedre sin popularitet.", symptoms = "Symptomer - Forlegen patient med skinnende pande.", cure = "Behandling - Håret bliver hurtigt smeltet fast til patientens hoved med en smertefuld hårmaskine.", }, discrete_itching = { name = "Skrabesyge", cause = "Årsag - Små insekter med skarpe tænder.", symptoms = "Symptomer - Patienten klör intenst, og huden slår revner.", cure = "Behandling - En sygeplejeske giver patienten en sirupagtig drik som heler huden og som hindrer flere revner.", }, jellyitis = { name = "Gelésyndrom", cause = "Årsag - Geletholdig kost og megen motion.", symptoms = "Symptomer - Meget ustabil og falder ofte.", cure = "Behandling - Patienten bliver presset ned i et gelérör i et specielt rum.", }, sleeping_illness = { name = "Sövnsyge", cause = "Årsag - Forårsaget af overaktive sövnkirtler i ganen.", symptoms = "Symptomer - Stærkt önske om at sove, hvor og når som helst.", cure = "Behandling - En stærk dosis af stimulerende medicin uddelt af en sygeplejerske.", }, pregnancy = { name = "Graviditet", cause = "Årsag - Forårsaget af strömafbrydelser i bebyggede områder.", symptoms = "Symptomer - Spiser ustandseligt og udvikler en ölmave.", cure = "Behandling - Sprædbanet fjernes ved kejsersnit, vaskes og præsenteres derefter for sin mor.", }, -- unused transparency = { name = "Gennemsigtighed", cause = "Årsag - Slikket på folien på gamle yougurtkartoner.", symptoms = "Symptomer - Kroppen bliver gennemsigtig og ækel.", cure = "Behandling - En kölig, farverige drik fra apoteket skulle göre underværker.", }, uncommon_cold = { name = "Forkölelse", cause = "Årsag - Små smörpartikler i luften.", symptoms = "Symptomer - Rendende næse, hoste og misfarvet slim fra lungerne.", cure = "Behandling - En rigtig stor mundfuld hostesaft fra apoteket medförer öjeblikkelig lindring.", }, broken_wind = { name = "Forurenende gasser", cause = "Årsag - Löb på en trædemölle umiddelbart efter indtagelse af frokost.", symptoms = "Symptomer - Ubehag hos folk som befinder sig i patientens nærhed.", cure = "Behandling - En stærk blandning af specielle vandatomer der drikkes hurtigt.", }, spare_ribs = { name = "Spareribs", cause = "Årsag - Patienten har siddet for længe på et koldt gulv.", symptoms = "Symptomer - Ubehagelig fölelse i brystet.", cure = "Behandling - Ribbenene fjernes af to kirurger, og leveres til patienten i en doggybag.", }, kidney_beans = { name = "Kikærter", cause = "Årsag - patienten har spist isterninger.", symptoms = "Symptomer - Smerte og hyppige ture til toilettet", cure = "Behandling - To kirurger fjerner de ærtelignende parasitter, uden at beröre nyrerne!", }, broken_heart = { name = "Knust hjerte", cause = "Årsag - Nogen er rigere, yngre og slankere end patienten.", symptoms = "Symptomer - Hysterisk grædende. Blodsprængte fingerspidser efter at have revet feriebilleder i stykker.", cure = "Behandling - To kirurger sprætter brystet op og sætter derefter hjertet forsigtigt sammen, mens de holder vejret.", }, ruptured_nodules = { name = "Ödelagte nödder", cause = "Årsag - Skihop om vinteren.", symptoms = "Symptomer - Umulig at sidde ned med vedbehag.", cure = "Behandling - To kvalificerede kirurger må fjerne nödderne med forsigtige hænder.", }, tv_personalities = { name = "Programledersyndrom", cause = "Årsag - Ser TV i dagstimerne.", symptoms = "Symptomer - Forestiller sig at han/hun er programleder på formiddagstv og elsker at introducere madseancen.", cure = "Behandling - En psykiater må overtale patienten til at köbe en radio og sælge fjernsynet.", }, infectious_laughter = { name = "Smitsom latter", cause = "Årsag - Klassisk komedie på TV.", symptoms = "Symptomer - Ler hjælpelöst hele tiden og gentager dårlige passager som absolut ikke er morsomme.", cure = "Behandling - En kvalificeret psykiater må göre det klart for patienten, at det faktisk er en alvorlig tilstand.", }, corrugated_ankles = { name = "Böjede ankler", cause = "Årsag - Kört med bus over fartbump.", symptoms = "Symptomer - Skoene passer ikke.", cure = "Behandling - En giftig blanding af urter og krydderier må drikkes for at udrette anklerne.", }, chronic_nosehair = { name = "Kronisk næsehår", cause = "Årsag - Snöfter med foragt af folk med lavere indlægt.", symptoms = "Symptomer - Så mange næsehår at en grævling kunne bo der.", cure = "Behandling - En ækel, hårfjernende kur som skal drikkes. Fås på apoteket.", }, third_degree_sideburns = { name = "Tredjegrads bakkenbarter", cause = "Årsag - Længes efter 70-erne.", symptoms = "Symptomer - Stort hår, farverigt töj, lange bakkenbarter og glitter.", cure = "Behandling - Psykiatrisk personale må, ved brug af moderne teknikker, overbevise patienten om, at paryk yt.", }, fake_blood = { name = "Teaterblod", cause = "Årsag - Patienten er ofte udsat for narrestreger.", symptoms = "Symptomer - Rödt blod som fremkommer når der er kontakt med töj.", cure = "Behandling - Eneste måde at behandle dette på er at få en psykiater til at berolige patienten.", }, gastric_ejections = { name = "Sure opstöd", cause = "Årsag - Stærk krydret mexikansk eller indisk mad.", symptoms = "Symptomer - Gylper karrykylling og tacostykker op..", cure = "Behandling - En sygeplejerske giver patienten en speciel indisk komælk som forhindrer sure opstöd.", }, the_squits = { name = "Tynd mave", cause = "Årsag - Har spist pizzastykker som har været på gulvet.", symptoms = "Symptomer - Uh. Tror du kender symptomerne.", cure = "Behandling - En klæbrig blanding af kemikalier der skal drikkes for at stabilisere maven.", }, iron_lungs = { name = "Jernlunger", cause = "Årsag - Forurenet luft indeholdende bly og kebabrester.", symptoms = "Symptomer - Kan lave flammer og råbe höjlydt under vand.", cure = "Behandling - To kirurger blödgör de hårde lunger i operationsstuen.", }, sweaty_palms = { name = "Svedige håndflader", cause = "Årsag - Har lige været til jobsamtale.", symptoms = "Symptomer - At give hånd til patienten er som at give hånd til en våd svamp.", cure = "Behandling - En pskiater taler med patienten om lidelsen.", }, heaped_piles = { name = "Hæmorider", cause = "Årsag - Siddet for længe på det kolde gulv.", symptoms = "Symptomer - Patienten föler, at han/hun sidder på en pose sten.", cure = "Behandling - En behagelig, men syrlig væske som löser hæmorideproblemet.", }, gut_rot = { name = "Dårlig mave", cause = "Årsag - Onkel Georges blanding af hostesaft og whisky.", symptoms = "Symptomer - Ingen hoste, men heller ingen mavesæk.", cure = "Behandling - En sygeplejerske udskriver en række kemikalier som genskaber væggene i mavesækken.", }, golf_stones = { name = "Golfsten", cause = "Årsag - Udsat for giftige gasser fra golfbolde.", symptoms = "Symptomer - Forvirring og en kraftig skamfölelse.", cure = "Behandling - Stenene fjernes hurtigt og effektivt af to kirurger.", }, unexpected_swelling = { name = "Uventet hævelse", cause = "Årsag - Hvad som helst uventet.", symptoms = "Symptomer - Hævelse.", cure = "Behandling - Hævelsen må skæres bort af to kirurger.", }, diag_scanner = { name = "Diag Skanner", }, diag_blood_machine = { name = "Diag Blodmaskine", }, diag_cardiogram = { name = "Diag löbebånd", }, diag_x_ray = { name = "Diag Röntgen", }, diag_ultrascan = { name = "Diag Ultraskanner", }, diag_general_diag = { name = "Diag Generel", }, diag_ward = { name = "Diag Sengeafd.", }, diag_psych = { name = "Diag Psykiatri", }, autopsy = { name = "Obduktion", }, } -- Faxes fax = { -- Debug fax debug_fax = { -- never seen this, must be a debug option of original TH -- TODO: make this nicer if we ever want to make use of it close_text = "Yes, yes, yes!", text1 = "BEST COUNT %d", -- %d text2 = "TOTAL PEOPLE IN HOSPITAL %d CHECKING AGAINST %d", -- %d %d text3 = "FIGURES : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", -- %d %d %d %d %d text4 = "FACTORS : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", -- %d %d %d %d %d text5 = "CONTRIBN : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d PERCENT", -- %d %d %d %d %d text6 = "THE FOLLOWING FACTORS ARE ALSO APPLIED", text7 = "REPUTATION: %d EXPECTED %d REDUCTION %d", -- %d %d %d text8 = "AMENITIES %d PEEPS HANDLED %d REDUCTION %d", -- %d %d %d text9 = "DISASTERS %d ALLOWED (MTHS) %d (%d)REDUCTION %d", -- %d %d %d %d text10 = "KILLS %d ALLOWED (MTHS) %d (%d) REDUCTION %d", -- %d %d %d %d text11 = "PEOPLE THIS MONTH %d", -- %d }, -- Emergency emergency = { choices = { accept = "Ja, jeg kan håndtere dette akkuttilfælde", refuse = "Nej, jeg nægter at tage mig af dette akkuttilfælde", }, location = "Der er sket en ulykke ved %s", num_disease = "Der er %d mennesker med %s som har brug for behandling med det samme.", cure_possible_drug_name_efficiency = "Du har den medicin som er nödvendig for at behandle patienterne. Det er %s og medicinen er %d procent effektiv.", cure_possible = "Du har det nödvendige udstyr og de færdigheder som skal bruges for at håndtere akuttilfældet.", cure_not_possible_build_and_employ = "Det vil være nödvendigt at bygge %s og ansætte en %s", cure_not_possible_build = "Du mangler %s for at håndtere dette", cure_not_possible_employ = "Du mangler en %s for at kunne håndtere dette", cure_not_possible = "Du kan ikke behandle denne sygdom i öjeblikket", bonus = "Hvis du klarer dette akkuttilfælde, vil du modtage en bonus på maksimalt %d. Hvis du derimod fejler, vil det få negative fölger for dit omdömme.", locations = { "A.Tom's Våbenkælder", "Snoppeuniversitetet", "Buskerud Hagecenter", "Forskningsinstituttet For Farlige Emner", "Foreningen For Folkedansende Mænd", "Puben Frosk Og Kyr", "Hallgeir Juniors Begravelses- og Spritbutik", "Mamma-Tai Krydderhus", "Berts Varehus For Brugt Petrokemi", }, }, emergency_result = { close_text = "Klik for at lukke", earned_money = "Af den maksimale bonus på %d, har du tjent %d.", saved_people = "Du reddede %d mennesker af i alt %d.", }, -- Deseace discovered disease_discovered_patient_choice = { choices = { send_home = "Send patienten hjem.", wait = "Få patienten til at vente et stykke tid på hospitalet.", research = "Send patienten til forskningsafdelingen.", }, need_to_build_and_employ = "Hvis du bygger %s og ansætter en %s kan du löse problemet med det samme.", need_to_build = "Du skal bygge %s for at kunne håndtere dette.", need_to_employ = "Ansæt en %s for at hjælpe patienten.", can_not_cure = "Du kan ikke behandle denne sygdom.", disease_name = "Dine ansatte er stödt på et tilfælde af %s.", what_to_do_question = "Hvad skal vi göre med patienten?", guessed_percentage_name = "Dine læger mener, at de ved hvad patienten fejler. Der er %d procent sandsynlighed for at det er %s", }, disease_discovered = { close_text = "Luk.", can_cure = "Du kan behandle denne sygdom.", need_to_build_and_employ = "Hvis du bygger %s og ansætter en %s kan du håndtere dette.", need_to_build = "Du skal bygge %s for at håndtere dette.", need_to_employ = "Ansæt en %s for at behandle patienter med denne sygdom.", discovered_name = "Dine læger har oppdaget et tilfælde af %s.", }, -- Epidemic epidemic = { choices = { declare = "Offentliggör epidemien og betal en böde. Dit omrömme vil blive svækket.", cover_up = "Forsög at behandle alle inficerede patienter inden tiden löber ud, og för nogen smittede forlader hospitalet.", }, disease_name = "Dine læger har opdaget en meget smitsom form for %s.", declare_explanation_fine = "Hvis du offentliggör epidemien, skal du betale en böde på %d og dit omdömme lider et knæk, men samtlige patienter bliver vaccineret automatisk.", cover_up_explanation_1 = "Hvis du derimod forsöger at holde epidemien skjult, skal du behandle samtlige vaccinerede patienter för sundhedsmyndighederne opdager, hvad der foregår.", cover_up_explanation_2 = "Hvis en sundhedsinspektör kommer på besög og finder ud af, at du har forsögt at skjule epidemien, vil han gå drastisk til værks.", }, -- Epidemic result epidemic_result = { close_text = "Hurra!", failed = { part_1_name = "Du forsögte at skjule det faktum, at vi stod overfor et smitsomt udbrud af %s.", part_2 = "Selvfölgelig var dine medarbejdere i stand til at sprede epidemien til alle hospitalets naboer.", }, succeeded = { part_1_name = "Sundhedsinspektören hörte rygter om at dit hospital kæmpede med et alvorligt tilfælde af %s.", part_2 = "Han har dog ikke fundet noget, som har kunne bekræfte rygterne.", }, compensation_amount = "Myndigherne har besluttet at give dig en kompensation på %d for den skade, dit ellers gode rygte har lidt.", fine_amount = "Myndighederne har erklæret en national undtagelsestilstand og forlanger, at du betaler en böde på %d.", rep_loss_fine_amount = "Velkommen på forsiden! Dit rygte har fået en ordenligt lussing! Samtidigt får du en böde på %d.", hospital_evacuated = "Sundhedsmyndighederne ser ingen anden mulighed end at evakuere dit hospital.", }, -- VIP visit query vip_visit_query = { choices = { invite = "Send en officiel invitation.", refuse = "Afvis besöget med en dårlig undskyldning.", }, vip_name = "%s har ytret et önske om at besöge dit hospital", }, -- VIP visit result vip_visit_result = { close_text = "Tak fordi du besögte hospitalet.", telegram = "Telegram!", vip_remarked_name = "Efter sit besög på dit hospital, udtalte %s fölgende:", cash_grant = "Du får %d i kontanter.", rep_boost = "Dit ry i nærområdet har fået en optur.", rep_loss = "Dit ry i nærområdet har taget skade.", remarks = { [1] = "Det er et meget flot hospital. Næste gang jeg bliver alvorligt syg, vil jeg indlægges der.", [2] = "Se det er hvad jeg kalder for et hospital af topklasse!", [3] = "Et super hospital, og det er noget jeg ved en del om, for jeg har været indlagt en hel del gange.", [4] = "Det er et godt organiseret hospital. Tak fordi jeg måtte komme.", [5] = "Hmm. Det er absolut ikke noget dårligt sted, jeg har set.", [6] = "Jeg kan godt lide dit charmerende hospital. Forresten, er der nogen som vil med ud at spise indisk?", [7] = "Nå, jeg har set værre. Men du kunne göre en lang række forbedringer.", [8] = "Åh, min kære tid. Det her er ikke det sted man går hen, hvis man föler sig dårlig.", [9] = "Et helt normalt hospital, for at være ærlig. Jeg havde forventet noget mere.", [10] = "Hvad laver jeg egentlig her?! Det er jo værre end en fire timers opera!", [11] = "Det var ækelt! Kalder du det her et hospital?! Det ligner mere en svinesti!", [12] = "Jeg er træt af at være en offentlig person, og træt af at skulle besöge steder som dette stinkende hul! Jeg siger op!.", [13] = "Föj for et syn! Dette hospital skal jeg nok få lukket ned!", [14] = "Jeg har aldrig set magen. Det er en skandale!", [15] = "Jeg er chokeret! Du kan ikke kalde dette et hospital! Jeg går ud og tager mig en stærk drink!", }, }, -- Diagnosis failed diagnosis_failed = { choices = { send_home = "Send patienten hjem", take_chance = "Tag chancen med den mest sandsynlige diagnose.", wait = "Få patienten til at vente mens du bygger flere diagnoserum.", }, situation = "Vi har prövet alle vores diagnoserum på denne patient, men vi er ikke helt sikre på, hvad patienten fejler.", what_to_do_question = "Hvad skal vi göre med patienten?", partial_diagnosis_percentage_name = "Det er %d procent sikkert at patienten har en type af %s, men hvis vi tager fejl, kan det få alvorlige konsekvenser for patienten.", }, } -- Queue window queue_window = { num_in_queue = "Antal ventende", num_expected = "Yderligere på vej", num_entered = "Antal besög", max_queue_size = "Maks kö", } -- Dynamic info dynamic_info = { patient = { actions = { dying = "Döende", awaiting_decision = "Venter på din beslutning", queueing_for = "I kö til %s", -- %s on_my_way_to = "På vej til %s", -- %s cured = "Helbredt!", fed_up = "Irriteret, forlader hospitalet", sent_home = "Sendt hjem", sent_to_other_hospital = "Henvist til et andet hospital", no_diagnoses_available = "Ikke flere diagnosemuligheder", no_treatment_available = "Ingen behandling er mulig - Jeg går hjem", waiting_for_diagnosis_rooms = "Venter på du byggger flere diagnoserum", waiting_for_treatment_rooms = "Venter på du bygger et behandlingsrum", prices_too_high = "Prisene er for höje - Jeg går hjem", epidemic_sent_home = "Sendt hjem af inspektör", epidemic_contagious = "Jeg er smittebærende", }, diagnosed = "Diagnose: %s", -- %s guessed_diagnosis = "Gættet diagnose: %s", -- %s diagnosis_progress = "Diagnoseproces", emergency = "Akut: %s", -- %s (disease name) }, vip = "Besögende VIP", health_inspector = "Sundhedsinspektör", staff = { psychiatrist_abbrev = "Psyk.", actions = { waiting_for_patient = "Venter på patient", wandering = "Vandrer rundt", going_to_repair = "Skal reparere %s", -- %s (name of machine) }, tiredness = "Udbrændthed", ability = "Evner", -- unused? }, object = { strength = "Udholdenhed: %d", -- %d (max. uses) times_used = "Timer brugt: %d", -- %d (times used) queue_size = "Kölængde: %d", -- %d (num of patients) queue_expected = "Forventet kölængde: %d", -- %d (num of patients) }, } introduction_texts = { level17 = "Dette er sidste advarsel - hold öje med dit omdömme - det er det, som tiltrækker patienter til dit hospital. " .. "Hvis der ikke dör for mange patienter og du samtidig holder resten af patienterne i nogenlunde godt humör, skulle denne bane ikke være noget problem.//" .. "Nu må du klare dig selv. Held og lykke!", level1 = "Velkommen til dit förste hospital!//" .. "Du kan komme godt fra start ved at ved at få placeret en reception, bygge en lægekonsultation og ansætte en læge og en receptionist. " .. "Derefter kan du åbne hospitalet, og de første patienter vil derefter begynde at ankomme til hospitalet." .. "Det vil være fornuftigt at bygge en psykiatri rimelig hurtigt og ansætte en læge med speciale i psykiatri. " .. "Et apotek og en sygeplejerske er essentielle for at helbrede dine patienter. Mange sygdomme behandles nemlig med medicin. " .. "Læg mærke til hvis der er mange tilfælde af opsvulmet hoved - et pumperum kan klare opgaven. " .. "For at gennemföre banen skal du helbrede mindst 10 patienter og sörge for, at dit omdömme ikke dykker under 200. ", level9 = "Efter du har fyldt ministerens bankkonto op og betalt for hans nye limousine, kan du nu koncentrere dig om at lave et omsorgsfuldt, velfungerende hospital for de trængende. " .. "Du må forvente at möde en række problemer her." .. "Hvis du har nok lokaler og flinke ansatte, vil du sikkert få styr på banens udfordringer. " .. "Dit hospital skal have en værdi af 200,000, og du skal have mindst 400,000 i banken. " .. "Mindre kan ikke göre det.", level2 = "Der er store problemer med sygdomme i dette område. " .. "Byg hospitalet med henblik på at behandle flere patienter og anlæg en forskningsafdeling. " .. "Husk at holde hospitalet rent og stræb efter at få så höjt et omdömme som muligt - hvis du vil kunne håndtere sygdomme som slap tunge, bliver det nödvendigt at bygge en tungeklinik. " .. "Du kan også bygge et löbebånd for at forbedre diagnosticeringen. Disse rum er först tilgængelige, når du har forsket i området i din forskningsafdeling. " .. "Du kan udvide hospitalet så du får mere plads at bygge på - brug oversigtskortet til dette " .. "Stræb efter at få et omdömme på 300 og en banksaldo på 10,000, samt helbrede mindst 40 patienter. ", level7 = "Her vil du være under overvågning af sundhedsmyndighederne, så husk at få det til at se ud som om du tjener kassen samtidig med at du opbygger et godt omdömme. " .. "Vi kan ikke holde til unödvendige dödsfald - de er dårlige for virksomheden. " .. "Vær sikker på at dit personale er i tip-top form, og at du har alt det udstyr, de har brug for. " .. "Opbyg dit omdömme til 600, og få 200,000 ind på din bankkonto.", level5 = "Dette bliver et travlt hospital, hvor du skal håndtere en lang række sager. " .. "Alle læger kommer direkte fra fakultetet, så det er vitalt, at du får bygget et undervisningsrum og uddanner lægerne så de bliver dygtigere, hurtigere og gerne så de får et speciale eller to. " .. "Du har kun tre konsulenter til at undervise dit uerfarende personale med, så hold dem glade. " .. "Hold for öje, at hospitalet er bygget på San Androids geologiske undergrund. " .. "Der er derfor en evig risiko for, at der kommer jordskælv. " .. "Jordskælv kan forårsage betydlig skade på dine maskiner og påvirke effektiviteten på dit hospital. " .. "Få dit omdömme op på 400 og din bankbalance op på 50,000 for at gennemföre banen. Du skal også helbrede 200 patienter.", level4 = "Hold alle dine patienter glade, få dem hurtigt igennem systemet og hold dödstallet så lavt som muligt." .. "Dit omdömme er på spil, sörg for at have et så godt omdömme som muligt." .. "Lad være med at fokusere for meget på pengene - de skal nok rulle ind i takt med dit stigende omdömme. " .. "Det vil være muligt for dig at undervise dine læger, så de kan udvikle deres evner og blive endnu hurtigere. " .. "Undervisningen varetages af konsulenter. Hvis de har særlige færdigheder som psykiater eller kirurg, vil deres elever med tiden også blive oplært i disse færdigheder. Og det kan de hurtigt få brug for, når patienter med mere krævende sygdomme begynder at ankomme. " .. "Opnå et omdömme på mere end 500.", level14 = "Der er lige en udfordring mere - det fuldstændigt uregerlige hospital. " .. "Hvis det lykkedes for dig at göre dette hospital til en succes, vil du være en mester af mestrene. " .. "Men forvent ikke, at du kan tage den på rutinen, for dette er den stöste udfordring, du nogensinde vil möde. " .. "Held og lykke!", level15 = "Sådan, det er det mest basale, som holder et hospital sammen.//" .. "Dine læger får brug for al den hjælp de kan få til at diagosticere patienterne. Du kan hjælpe dig ved at" .. "bygge andre diagnose faciliteter, så som et generel diagnoserum.", level8 = "Det er op til dig at skabe det mest effektive og produktive hospital som muligt. " .. "Folk fra dette område er ret velhavende, så pres dem for så mange penge som muligt. " .. "Husk: At helbrede folk er meget rart, men du har VIRKELIG BRUG FOR de penge det giver." .. "Flå disse patienter indtil selv Stein Bagger ville få moralske skrubler! " .. "Opnå et massivt overskud på 300,000 for at gennemföre denne bane.", level13 = "Dine fantastiske evner til at administrere et hospital, er blevet bemærket af en speciel hemmelig afdeling under hemmelige specielle afdelinger. " .. "De har en speciel bonus til dig; der er et rotteproblem på et hospital, som mangler en kærlig hånd. " .. "Du skal skyde så mange rotter som muligt för pedellerne kan rydde op i skidtet. " .. "Tror du, at du kan klare opgaven?", level16 = "Når du har diagnosticeret nogle af patienterne, bliver du nödt til at bygge behandlingsfaciliteter og klinikker til at helbrede dem - en godt sted at begynde med" .. "er et apotek. Du skal bruge en sygeplejerske til at udlevere medicinen.", level6 = "Brug al din viden til at udvikle et velfungerende og komfortabelt hospital, som kan skabe et sundt overskud og håndtere alle former for sygdomme, som samfundet smider efter det. " .. "Du skal være opmærksom på, at atmosfæren i dette område er perfekt til at bære infektioner og sygdomme. " .. "Med mindre du holder dit hospital helt rent, risikerer du, at der udbryder epidemier blandt patienterne. " .. "Tjen 150,000 og forög hospitalets samlede værdi til 140,000.", level12 = "Du möder nu udfordringen over dem alle. " .. "Ministeriet er imponeret over dine succeser og har derfor et top-job til dig: De vil have dig til at bygge det ultimative hospital, hvor du skal tjene en pokkers masse penge og have et skyhöjt omdömme. " .. "Det forventes, at du köber alle bygninger, helbreder alle sygdomme (og vi mener alle!) og opnår banens mål og priser. " .. "Klar til udfordringen?" .. "Tjen 650,000, helbred 750 personer, og få et omdömme på 800 for at gennemföre banen.", level3 = "Du vil denne gang skulle bygge dit hospital i et velhavende kvarter. " .. "Sundhedsmyndighederne holder öje med dig for at sikre, at du skaber et overskud her. " .. "Du begynder med et godt omdömme, men så snart hospitalet er åbent, skal du fokusere på at få tjent så mange penge som muligt. " .. "Der er også stor sandsynlighed for akuttilfælde. " .. "Disse indeholder et stort antal patienter, som ankommer samtidig og som alle har den samme sygdom. " .. "Hvis du helbreder dem indenfor tidsgrænsen, forbedrer det dit omdömme og modtager en stor bonus. Når du ikke at helbrede dem inden tiden löber ud, dör patienterne og dit omdömme falder. " .. "Sygdomme som kongekomplekset kan forekomme, og du bör bygge en operationsstue samt et sengeafsnit i nærheden af operationsstuen. " .. "Tjen 20,000 for at gennemföre banen.", level10 = "Såvel som at kunne behandle alle former for sygdomme, vil Sundhedsmyndighederne gerne have, at du bruger noget tid på at forske i effektiviteten af din medicin. " .. "Der har været nogle klager fra Foreningen af Syge, de syges vagthund. Så for at holde dit omdömme höjt skal du sörge for, at din medicin er effektiv. " .. "Du skal også sikre dig, at dit hospital er over gennemsnittet. Hold dödstallet så lavt som muligt" .. "Et lille tip er at du holder lidt plads fri til et gelérör. " .. "Udvikl al din medicin til mindst 80% i effektivitet og få et omdömme på 650 og en bankbeholdning på 500,000 for at gennemföre banen. ", level11 = "Du har nu fået chancen for at bygge det ultimative hospital. " .. "Dette er et ekstremt velhavende område, hvor Sundhedsmyndighederne gerne vil sig, at der opföres det bedst mulige hospital. " .. "Vi forventer, at du tjener kassen, har et skyhöjt omdömme og håndterer alle uventede situationer. " .. "Dette er en vigtig opgave." .. "Du skal være lavet af noget specielt for at dette skal lykkedes. " .. "Bemærk, at en UFO er set i området. Så forbered dit personale på uventet besög. " .. "Dit hospital skal være mindst 240,000 værd, og du skal have mindst 500,000 i banken samt et omdömme på 700 för syndhedsmyndighederne er tilfredse.", level18 = "", } -- Miscellangelous -- Category of strings that fit nowhere else or we are not sure where they belong. -- If you think a string of these fits somewhere else, please move it there. -- Don't forget to change all references in the code and other language files. misc = { grade_adverb = { mildly = "Mildt", moderately = "Moderat", extremely = "Ekstremt", }, done = "Færdig", pause = "Pause", send_message = "Beskeden er sendt til: %d", -- %d (player number) send_message_all = "Beskeden er sendt til alle", save_success = "Gemt med success", save_failed = "Mislykkedes at gemme", hospital_open = "Åbent hospital", out_of_sync = "Spillet er ikke synkroniseret", load_failed = "Indlæsning fejlede", low_res = "Lav oplösning", balance = "Balance fil: ", mouse = "Mus", force = "Styrke", } ----- Old but strings that failed with previous setup progress_report.quite_unhappy = "Folk er ret triste. " progress_report.header = "Progessionsrapport" progress_report.very_unhappy = "Folk er meget triste. " progress_report.more_drinks_machines = "Opsæt flere sodavandsautomater. " progress_report.too_cold = "Det er alt for koldt. Placer flere radiatorer eller skru op for varmen. " progress_report.too_hot = "Juster varmen. Det er alt for varmt. " progress_report.percentage_pop = "% population" progress_report.win_criteria = "Kriterier for at vinde" debug_patient_window.caption = "Fejlfindingspatient" tooltip.casebook.cure_requirement.hire_staff_old = "Du skal ansætte en %s for at kunne håndtere denne sygdom" tooltip.casebook.cure_type.unknown = "Du kan endnu ikke behandle denne sygdom" tooltip.bank_manager.interest_rate = "Årlig rente" tooltip.calls_dispatcher.assigned = "Denne box er afkrydset hvis nogen har fået den pågældende opgave tildelt." tooltip.calls_dispatcher.task = "Liste over opgaver - Klik på en opgave for at se vinduet over tildelt personale og scroll til opgaven" tooltip.calls_dispatcher.close = "Luk kald på afsender vinduet" adviser.level_progress.halfway_lost = "Du er omkring halvejs mod at tabe denne bane." adviser.level_progress.dont_kill_more_patients = "Du har ikke råd til at lade flere patienter dö!" adviser.level_progress.another_patient_killed = "Åh nej! Du har dræbt endnu en patient. Det giver samlet %d dödsfald." adviser.level_progress.halfway_won = "Du er halvejs mod at vinde denne bane." adviser.level_progress.close_to_win_increase_value = "Du er tæt på at vinde banen. Forög hospitalets værdi med %d." adviser.level_progress.financial_criteria_met = "Du har opnået de finatielle kriterier for denne bane. Nu skal du holde din balance over %d, imens du skal sikre dig at dit hospital körer som smurt" adviser.level_progress.nearly_won = "Du er meget tæt på at gennemföre banen." adviser.level_progress.hospital_value_enough = "Hold hospitalets værdi over %d og arbejd med de andre problemer for at vinde banen." adviser.level_progress.another_patient_cured = "Meget flot - endnu en patient helbredt. Det er samlet %d patienter." adviser.level_progress.three_quarters_lost = "Du er tre fjerdedele fra at tabe runden." adviser.level_progress.reputation_good_enough = "Okay, dit ry er godt nok for at kunne gennemföre runden. Hold det over %d og arbejd med de andre problemer for at vinde runden." adviser.level_progress.cured_enough_patients = "Du har kureret nok patienter, men du skal foröge dit hospitals værdi for at vinde runden." adviser.level_progress.nearly_lost = "Du er meget tæt på at vinde runden." adviser.level_progress.improve_reputation = "Du skal forbedre dit ry med %d for at have en chance for at vinde runden." adviser.level_progress.three_quarters_won = "Du er tre fjerdedele væk fra at vinde runden." adviser.praise.many_benches = "Der er rigelig med siddeplads. Flot arbejde!" adviser.praise.many_plants = "Smukt. Du har masser af planter. Dine patienter sætter pris på det." adviser.praise.plants_are_well = "Hvor dejligt! Du tager dig rigtig godt af dine planter. Smukt." adviser.praise.few_have_to_stand = "Der er næsten ingen der skal stå op på dit hospital mens de venter. Det sætter dine patienter pris på det." adviser.praise.plenty_of_benches = "Der er fornuftigt med siddepladser, så det er ikke et problem." adviser.praise.plants_thriving = "Meget godt. Dine planter trives. De ser fantastiske ud. Bliv ved med det, så kan du måske vinde et trofæ for dem." adviser.praise.patients_cured = "%d patienter helbredt." adviser.surgery_requirements.need_surgeons_ward_op = "Du skal ansætte to kirurger og bygge et sengeafsnit og en operationsstue för du kan udföre operationer." adviser.surgery_requirements.need_surgeon_ward = "Du mangler stadigt at ansætte en kirurg og bygge et sengeafsnit för du kan udföre operationer." adviser.vomit_wave.started = "Der ser ud til du har en mavevirus på dit hospital. Hvis hospitalet var renere var det ikke sket. Måske skulle du ansætte flere pedeller." adviser.vomit_wave.ended = "Puha! Der ser ud til mavevirussen er döet ud. Hold dit hospital rent for fremtiden." adviser.room_requirements.research_room_need_researcher = "Kun læger med speciale i forskning kan arbejde i forskningsrummet." adviser.room_requirements.op_need_another_surgeon = "Du mangler stadigt at ansætte en kirurg mere för operationsstuen er brugbar." adviser.room_requirements.op_need_ward = "Du skal bygge et sengeafsnit så patienterne kan hvile sig för de skal opereres." adviser.room_requirements.reception_need_receptionist = "Du skal ansætte en receptionist til at tage imod dine patienter." adviser.room_requirements.psychiatry_need_psychiatrist = "Du skal ansætte en psykiater, nu da du har bygget en psykiatri." adviser.room_requirements.pharmacy_need_nurse = "Du skal ansætte en sygeplejerske til at passe apoteket." adviser.room_requirements.ward_need_nurse = "Du skal ansætte en sygeplejerske til at arbejde på sengeafsnittet." adviser.room_requirements.op_need_two_surgeons = "Ansæt to kirurger for at kunne udföre operationer." adviser.room_requirements.training_room_need_consultant = "Du skal ansætte en konsulent til at undervise i undervisningslokalet." adviser.room_requirements.gps_office_need_doctor = "Du skal ansætte en læge til at arbejde i lægekonsultationen." confirmation.maximum_screen_size = "Skærmopløsningen du har valgt er større end 3000 x 2000. Større opløsninger kan bruges men vil kræve bedre hardware for at køre med en spilbar FPS. Er du sikker på du vil fortsætte?" confirmation.music_warning = "Før du vælger at bruge mp3'er til musikken i spillet, har du brug for smpeg.dll eller lignende til dit styresystem, ellers vil du ikke have musik i spillet. Vil du fortsætte?" menu_options_wage_increase.deny = " AFVIS " menu_options_wage_increase.grant = " TILLAD " tooltip.audio_window.audio_button = "Slå alle lyde til og fra i spillet " tooltip.audio_window.audio_toggle = "Slå til og fra" tooltip.options_window.folder_button = "Mappeindstillinger" tooltip.options_window.customise_button = "Flere indstillinger som du kan ændre for at tilpasse din spiloplevelse." tooltip.update_window.download = "Gå til downloadsiden for den nyeste version af CorsixTH" tooltip.update_window.ignore = "Ignorer denne opdatering for nu. Du vil blive påmindet igen næste gang du åbner CorsixTH" tooltip.folders_window.browse_font = "Led efter en anden skrifttype fil ( nuværende placering: %1% )" tooltip.folders_window.screenshots_location = "Normalt er skærmbilleder gemt i samme mappe som konfigurationsfilen. Hvis du gerne vil have skærmbilleder gemt et andet sted, skal du blot navigere til den pågældende mappe." tooltip.folders_window.reset_to_default = "Gendan biblioteket til standard placeringen ( %1% )" tooltip.folders_window.back = "Luk denne menu og gå tilbage til indstillinger" tooltip.folders_window.browse = "Find placering af mappe" tooltip.folders_window.browse_screenshots = "Find en anden mappe til dine skærmbilleder ( nuværende placering: %1% ) " tooltip.folders_window.browse_music = "Find en anden mappe til dine lydfiler ( nuværende placering: %1% ) " tooltip.folders_window.no_font_specified = "Du har ikke valgt en skrifttype-placering endnu!" tooltip.folders_window.not_specified = "Du har ikke valgt en mappeplacering endnu!" tooltip.folders_window.browse_saves = "Find en anden mappe til din gemte spil ( nuværende placering %1% ) " tooltip.folders_window.default = "Standard lokation" tooltip.folders_window.data_location = "Placeringen af den originale Theme Hospital installation som kræves for at køre CorsixTH" tooltip.customise_window.back = "Luk denne menu og gå tilbage til indstillinger" tooltip.customise_window.movies = "Global film kontrol, dette vil tillade dig at deaktivere alle film" update_window.caption = "Ny opdatering klar!" update_window.new_version = "Ny Version:" update_window.current_version = "Nuværende Version:" update_window.download = "Gå til downloadsiden" update_window.ignore = "Spring over og gå til hovedmenu" errors.fractured_bones = "NOTE: Animationen for kvindelige patienter med brækkede knogler er ikke perfekt" folders_window.data_label = "TH Data" folders_window.music_location = "Vælg mappen du vil bruge til dit musik" folders_window.music_label = "MP3'er" folders_window.caption = "Mappe placeringer" folders_window.screenshots_label = "Skærmbilleder" folders_window.font_label = "Skrifttype" folders_window.savegames_label = "Gemte spil" folders_window.back = "Tilbage" folders_window.savegames_location = "Vælg mappen du vil bruge til dine gemte spil" folders_window.screenshots_location = "Vælg mappen du vil bruge til dine skærmbilleder" customise_window.average_contents = "Average contents" customise_window.option_on = "Til" customise_window.paused = "Byggeproces sat på pause" customise_window.option_off = "Fra" customise_window.intro = "Afspil Introfilmen" customise_window.caption = "Brugerdefineret indstillinger" customise_window.back = "Tilbage" customise_window.movies = "Global film kontrol" customise_window.volume = "Volume ned tast" customise_window.aliens = "Fremmede patienter" customise_window.fractured_bones = "Brækkede knogler" options_window.folder = "Mapper" options_window.customise = "Tilpasse" audio_window.audio = "Global Lyd" menu_options.twentyfour_hour_clock = " 24-TIMERS UR " menu_options.wage_increase = " LØN ANMODNING" install.ok = "OK" install.cancel = "Anullér" adviser.research.drug_improved_1 = "%s medicin er blevet forbædret af din forskningsafdeling." adviser.warnings.researcher_needs_desk_1 = "En Forsker har brug for et bord til at arbejde ved." adviser.warnings.nurse_needs_desk_1 = "Hver Sygeplejerske har brug sit eget bord til at arbejde fra." adviser.warnings.no_desk_5 = "Nu er det ved at være på tide, du burde snart se patienter ankomme!" adviser.warnings.no_desk_4 = "En receptionist skal have sit eget bord for at tage imod nye patienter" CorsixTH-0.70.0/CorsixTH/Lua/languages/developer.lua000066400000000000000000000031551522247547500222040ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- To enable the developer "language" in the ingame options, uncomment the -- following line. This language causes every translatable string to be -- displayed as the name of the string. --Language("Developer", "Developer", "dev") Font("cp437") Inherit("english") IsArabicNumerals(true) --! Construct a 'translation' with the string names as text value. local function fixup(t, str_name) for k, v in pairs(t) do local name = str_name .. "." .. k if type(v) == "string" then t[k] = name else fixup(v, name) end end end fixup(_G, "_S") CorsixTH-0.70.0/CorsixTH/Lua/languages/dutch.lua000066400000000000000000005365541522247547500213440ustar00rootroot00000000000000--[[ Copyright (c) 2010 RAS 2011 FlyingBastard, L_konings, Nossah, KasperVld 2012-2013 Omni, Maarten 2024 Jetenergy Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- SLEUTELWOORDEN Chirurgen; Onderzoekers; Psychiaters Assistenten; Basisartsen; Specialisten Artsen; Zusters; Conciërges; Receptionistes ---------------------------------------------------------------------------------]] Font("cp437") Language("Nederlands", "Dutch", "nl", "dut", "nld") Inherit("English") IsArabicNumerals(true) newspaper = { [1] = { [1] = "DOC SHOCK HORROR", [2] = "ENGE ARTS SPEELT GOD", [3] = "DR FRANKENSTEIN GEVONDEN", [4] = "WAT ZAT ER OP LABJAS?", [5] = "ONETHISCH ONDERZOEK GESTOPT", }, [2] = { [1] = "BEZOPEN ALS EEN VIS", [2] = "ZATTE CHIRURG ZOEKT SCALPEL", [3] = "STRAALBEZOPEN SPECIALIST", [4] = "IN DE LOREM", [5] = "CHIRURG MET LEGE PLATVINK", [6] = "OPEREREN ONDER INVLOED", }, [3] = { [1] = "DOKTERTJE SPELEN IN ZIEKENHUIS", [2] = "DOKTER BROEKNEER", [3] = "PSYCHIATER GAAT PLAT", [4] = "ONBEVREDIGBARE ONDERZOEKER", }, [4] = { [1] = "CREATIEF GEDOKTERT MET KASBOEK", [2] = "GE-ORGAAN-ISEERDE MISDAAD", [3] = "FINANCIELE OMLEIDINGSOPERATIES", [4] = "GELD VERDWIJNT IN ZIEKENHUIS", }, [5] = { [1] = "SPECIALIST ROOFT UIT KIST", [2] = "ZIEKENHUISPERSONEEL STEELT UIT GRAF", [3] = "MET EEN LIJK IN DE PRAKTIJK", [4] = "TOL BETALEN AAN DOKTER DOOD", [5] = "TERMINALE PRAKTIJKEN", [6] = "GRAVEN IN GRAF GEHEKELD", }, [6] = { [1] = "DOC NAAIT PATIENTEN!", [2] = "KWAKZALVERIJ", [3] = "TERMINALE DIAGNOSE", [4] = "SLONZIGE SPECIALIST", }, [7] = { [1] = "CHIRURG HECHT AAN ZIJDEN DRAADJE", [2] = "CHIRURG 'OPEREERT' ZICHZELF", [3] = "DUISTERE DOKTERS DANS", [4] = "DOKTER BIBBER SCHANDAAL", [5] = "ZOOITJE IN ZIEKENHUIS", }, } misc = { hospital_open = "Ziekenhuis open", save_success = "Spel succesvol opgeslagen", save_failed = "FOUT: opslaan mislukt", low_res = "Lage resolutie", no_heliport = "Er zijn nog geen ziektes ontdekt of er is geen helipad aanwezig", grade_adverb = { extremely = "zeer", mildly = "mild", moderately = "vrij", }, not_yet_implemented = "(nog niet geïmplementeerd)", send_message = "Bericht sturen naar speler %d", out_of_sync = "Spel uit sync", balance = "Balans bestand:", load_failed = "Laden mislukt", mouse = "Muis", done = "Klaar", force = "Forceer", pause = "Pauze", send_message_all = "Bericht sturen naar alle spelers", cant_treat_emergency = "Je ziekenhuis kan deze noodsituatie niet behandelen omdat de ziekte nog niet is ontdekt. Probeer het gerust opnieuw.", earthquakes_off = "Aardbevingen zijn uitgeschakeld", earthquakes_on = "Aardbevingen zijn opnieuw ingeschakeld", epidemics_off = "Epidemieën zijn uitgeschakeld", epidemics_on = "Epidemieën zijn opnieuw ingeschakeld", epidemic_no_diseases = "Kan geen epidemie creëren - er zijn geen beschikbare besmettelijke ziekten.", epidemic_no_icon_to_toggle = "Kan geen geïnfecteerde iconen weergeven/verbergen - er zijn geen lopende epidemieën die niet zijn onthuld.", epidemic_no_receptionist = "Kan geen epidemie aanmaken - geen bemande receptie", } staff_descriptions = { good = { [1] = "Een snelle en ijverige werker. ", [2] = "Werkt nauwkeurig. Geeft veel om mensen. ", [3] = "Zeer competent. ", [4] = "Erg vriendelijk en goedlachs. ", [5] = "Een echte doorzetter. Gaat maar door. ", [6] = "Zeer beleefd en goedgemanierd. ", [7] = "Ongelofelijk getalenteerd en kundig. ", [8] = "Geeft veel om het afgeleverde werk. ", [9] = "Een pietje precies die maar niet opgeeft. ", [10] = "Toegewijd, helpt mensen met een glimlach. ", [11] = "Charmant, beleefd en behulpzaam. ", [12] = "Gemotiveerd en toegewijd. ", [13] = "Een zachtaardige en harde werker. ", [14] = "Trouw en vriendelijk. ", [15] = "Zorgvuldig en betrouwbaar in een noodsituatie. ", }, misc = { [1] = "Speelt golf. ", [2] = "Houdt van duiken. ", [3] = "Maakt ijssculpturen. ", [4] = "Drinkt wijn. ", [5] = "Rijdt in rallyraces. ", [6] = "Doet aan bungee jumpen. ", [7] = "Verzamelt bierviltjes. ", [8] = "Houdt van stage-diving. ", [9] = "Houdt van ruftsurfen. ", [10] = "Programmeert voor CorsixTH. ", --EN: Developer for CorsixTH [11] = "Stookt whisky. ", [12] = "Een goede klusser. ", [13] = "Houdt van artistieke Franse films. ", [14] = "Speelt vaak Theme Park. ", [15] = "Heeft rijbewijs CE. ", [16] = "Doet aan motorracen. ", [17] = "Speelt viool en cello. ", [18] = "Gepassioneerd treinsloper. ", [19] = "Gek op honden. ", [20] = "Luistert graag naar de radio. ", [21] = "Neemt vaak een bad. ", [22] = "Leraar vlechtwerkjes. ", [23] = "Gebruikt uitgeholde groenten als zeepbakjes. ", [24] = "Vrijwillig politieagent. ", [25] = "Presenteerde een televisiequiz. ", [26] = "Verzamelt granaatscherven uit de Tweede Wereldoorlog. ", [27] = "Richt kamers in. ", [29] = "Pest insecten met deodorant. ", [28] = "Luistert naar rave en trip-hop muziek. ", [30] = "Haat slechte cabaretiers. ", [31] = "Spioneert voor de raad. ", [32] = "Tuiniert stiekem. ", [33] = "Smokkelt nephorloges. ", [34] = "Zingt in een rock-'n-roll band. ", [35] = "Aanbidt middagtelevisie. ", [36] = "Kietelt karpers. ", [37] = "Verpatst troep aan museumbezoekers. ", }, bad = { [1] = "Langzaam en verstrooid. ", [2] = "Lui en ongemotiveerd. ", [3] = "Slecht opgeleid en lusteloos. ", [4] = "Grof en opdringerig. Irriteert mensen. ", [5] = "Geeft snel op - kan zich niet gedragen. ", [6] = "Doof als een kwartel. Stinkt naar bloemkool. ", [7] = "Slecht in het vak. Onbetrouwbaar. ", [8] = "Verstrooid en snel afgeleid. ", [9] = "Gespannen en maakt snel fouten. ", [10] = "Labiel en wrokkig - wordt verteerd door haat. ", [11] = "Slordig en onhandig. ", [12] = "Geeft niets om het vak. Luiaard. ", [13] = "Neemt, volledig apathisch, onnodig risico. ", [14] = "Sluw, geniepig en tegendraads. ", [15] = "Verwaand en zelfingenomen. ", }, } information = { custom_game = "Welkom bij CorsixTH. Veel plezier in dit ziekenhuis!", cannot_restart = "Dit level is opgeslagen voordat de herstart-functie was geïmplementeerd.", very_old_save = "Er zijn veel updates geweest sinds je met dit level bent begonnen. Om zeker te zijn dat alles werkt zoals het hoort, kun je dit level beter opnieuw beginnen.", no_custom_game_in_demo = "Sorry, maar in de demo versie kan je niet als uitzendkracht werken.", level_lost = { [1] = "Balen! Je hebt het level verloren. Volgende keer beter!", [2] = "De reden dat je verloor:", reputation = "Je reputatie kwam onder %d", balance = "Je banksaldo was lager dan %d", percentage_killed = "Je hebt meer dan %d procent van je patiënten vermoord", cheat = "Je hebt (hopelijk niet per ongeluk) de \"Verlies het huidige level\" optie gebruikt", -- Zie ook cheats_window.cheats.lose_level }, cheat_not_possible = "Cheat kan niet toegepast worden op dit level.", } staff_list = { morale = "MORAAL", tiredness = "VERMOEIDHEID", skill = "BEKWAAMHEID", total_wages = "SALARIS", } research = { allocated_amount = "Totale hoeveelheid", funds_allocation = "Totaal budget", categories = { improvements = "Verbeteringen", drugs = "Geneesmiddelen", diagnosis = "Diagnostische apparatuur", cure = "Behandelmethoden", specialisation = "Specialisatie", }, } room_classes = { diagnosis = "Diagnose", clinics = "Klinieken", facilities = "Faciliteiten", treatment = "Behandeling", } buy_objects_window = { price = "Prijs: ", choose_items = "Kies voorwerpen", total = "Totaal: ", } place_objects_window = { pick_up_object = "Klik op het voorwerp dat je wil verplaatsen of kies een andere optie.", place_objects_in_corridor = "Plaats de voorwerpen in je ziekenhuis.", place_windows = "Plaats, indien gewenst, ramen en klik op bevestigen.", confirm_or_buy_objects = "Je kunt nu de kamer bevestigen of voorwerpen kopen of verplaatsen", drag_blueprint = "Sleep de blauwdruk tot je de gewenste grootte hebt bereikt.", place_door = "Plaats de deur.", place_objects = "Plaats de voorwerpen naar tevredenheid. Klik ten slotte op bevestigen.", } totd_window = { previous = "Vorige tip", tips = { "Elk ziekenhuis begint met een receptie en een praktijk. Daarna ligt het er helemaal aan wat voor patiënten er langskomen. Een apotheek is altijd een goede volgende keuze.", "Machines zoals de compressor in inflatie hebben onderhoud nodig. Huur één of twee conciërges in om je machines te repareren, anders loop je het risico je personeel en je patiënten te verwonden.", "Op een gegeven moment wordt je personeel moe. Bouw een personeelsruimte zodat ze zich kunnen ontspannen.", "Plaats genoeg radiatoren om je personeel en je patiënten warm, en daarmee tevreden te houden.", "De bekwaamheid van een arts bepaalt hoe snel en hoe goed zijn diagnoses zijn. Als je een goede arts in de praktijk plaatst, heb je ook niet zoveel diagnostische kamers nodig.", "Assistenten en basisartsen kunnen zich laten opleiden door een specialist in het klaslokaal. Als de specialist een specifieke kwalificatie heeft (chirurg, psychiater of onderzoeker), zal hij deze kennis overdragen aan zijn leerling(en).", "Heb je al geprobeerd het alarmnummer (112) te bellen op de faxmachine? Zet wel je geluid eerst aan!", "Je kunt instellingen zoals de schermresolutie en de taal in het instellingen menu wijzigen. Het instellingen menu is in het spel en in het hoofdmenu te vinden.", "De Nederlandse vertaling is up to date. Zie je toch nog Engelse woorden, of heb je een schrijf- of taalfout ontdekt? Meldt het alsjeblieft op het forum (www.corsixth.com).", "Het CorsixTH team zoekt versterking! Zou je willen coden, vertalen of graphics willen maken? Neem dan contact met ons op via ons forum (www.corsixth.com) of ons IRC kanaal (corsix-th op Freenode).", "Als je een bug vindt zouden we het op prijs stellen als je deze meldt via onze bugtracker: th-issues.corsix.org", "Bij elk level moet je aan bepaalde eisen voldoen voordat je door kunt gaan naar het volgende level. Controleer het statusscherm om te zien hoe ver of dicht je bij je doel bent.", "Als je een bestaande kamer wil aanpassen of verwijderen, kun je dat doen met de aanpassen-knop op de werkbalk.", "Je kunt eenvoudig uitvissen welke patiënten, van een grote groep, voor een bepaalde kamer staan te wachten door met je cursor in die kamer te gaan ''staan.''", "Klik op de deur van een kamer om de wachtrij voor die kamer te zien. Je zou ook wat aan kunnen passen, zoals de volgorde van de rij veranderen of een patiënt naar een andere kamer sturen.", "Ongelukkige werknemers zullen vaak om salarisverhoging vragen. Zorg voor een comfortabele werkomgeving om dit soort situaties te voorkomen.", "Patiënten krijgen dorst van het wachten, en het gaat helemaal hard als je de verwarming flink opschroeft! Plaats frisdrankautomaten op strategische locaties voor een extra zakcentje.", "Je kunt het diagnostische proces voor een patiënt vroegtijdig stopzetten als je al weet wat voor ziekte hij of zij heeft. Maar pas op, dit vergroot de kans op een verkeerde behandeling, wat fataal kan zijn voor de patiënt.", "Noodgevallen zijn vaak een goede bron van extra inkomsten. Maar je moet er wel zeker van zijn dat je deze patiënten binnen de tijd kunt behandelen.", "Wist je dat je klusjes mensen aan specifieke percelen kunt toewijzen? Klik gewoon op de tekst 'Overal' in hun personeelsprofiel om er doorheen te bladeren!", }, next = "Volgende tip", } rooms_long = { ultrascan = "Ultrascan", research_room = "Laboratorium", general = "Algemeen", gps_office = "Praktijk", inflation = "Inflatie", staffroom = "Personeelsruimte", jelly_vat = "Gelatinetank", scanner = "Scanner", emergency = "Noodsituatie", decontamination = "Ontsmetting", corridors = "Gangen", cardiogram = "Cardiogram", ward = "Slaapzaal", training_room = "Klaslokaal", psychiatric = "Psychiatrie", operating_theatre = "Operatiekamer", dna_fixer = "DNA hersteller", tongue_clinic = "Lamme tongkliniek", hair_restoration = "Haarrestaurateur", general_diag = "Algemene diagnose", pharmacy = "Apotheek", fracture_clinic = "Gipskamer", toilets = "Toilet", electrolysis = "Elektrolysekliniek", x_ray = "Röntgenkamer", blood_machine = "Bloedmachinekamer", } options_window = { custom_resolution = "Aangepast...", caption = "Opties", option_on = "Aan", option_off = "Uit", resolution = "Resolutie", apply = "Toepassen", language = "Taal", fullscreen = "Volledig scherm", height = "Hoogte", width = "Breedte", change_resolution = "Resolutie wijzigen", back = "Terug", cancel = "Annuleren", folder = "Mappen", customise = "Aangepast", capture_mouse = "Cursor Vangen", check_for_updates = "Controleren op Updates", hotkey = "Sneltoetsen", option_disabled = "Uitgeschakeld", option_enabled = "Ingeschakeld", right_mouse_scrolling = "Muis Scrollen", right_mouse_scrolling_option_middle = "Middelste Knop", right_mouse_scrolling_option_right = "Rechterknop", scrollspeed = "Scrollsnelheid", shift_scrollspeed = "Shift Scrollsnelheid", zoom_speed = "Zoomsnelheid", } audio_window = { audio = "Audio algemeen", jukebox = "Jukebox", back = "Terug", } load_game_window = { caption = "Spel laden (%1%)", } queue_window = { num_in_queue = "Rijlengte", num_entered = "Bezoekers", max_queue_size = "Max lengte", num_expected = "Verwacht", } font_location_window = { caption = "Kies font (%1%)", } update_window = { new_version = "Nieuwe versie:", caption = "Update beschikbaar!", download = "Ga naar de download pagina", current_version = "Huidige versie:", ignore = "Negeer en ga naar het menu", } folders_window = { screenshots_location = "Selecteer de map om screenshots in op te slaan", music_label = "MP3's", back = "Terug", savegames_label = "Opgeslagen spellen", caption = "Bestands locaties", savegames_location = "Selecteer de map om spellen in op te slaan", font_label = "Lettertype", new_th_location = "Kies hier een andere map voor de Them Hospital installatie. Hiervoor wordt het spel opnieuw gestart.", screenshots_label = "Screenshots", music_location = "Selecteer de map die je wilt gebruiken voor muziek.", data_label = "TH Data", } customise_window = { movies = "Video algemeen", option_on = "Aan", option_off = "Uit", back = "Terug", paused = "Bouwen tijdens pause", intro = "Speel intro video", volume = "Volume lager koppeling", caption = "Aangepaste instellingen", fractured_bones = "Gebroken botten", average_contents = "Gemiddeld meubilair", aliens = "Alien patiënten", remove_destroyed_rooms = "Verwijder verwoeste kamers", } trophy_room = { --gebruik hiervoor meer formele tekst happy_vips = { trophies = { [1] = "Door de indruk die je hebt gemaakt op VIPs heb je een nobelprijs gewonnen. Iedereen die je ziekenhuis bezocht sprak niets dan lof.", [2] = "Het Beroemde Personenbureau keert u bij dezen de Celebrity trofee uit voor de lof die u van alle VIPs heeft ontvangen. Beschouw uzelf een beetje beroemd en bijna een van ons.", [3] = "Gefeliciteerd met het winnen van de VIP TRIP. U maakt de levens van hardwerkende beroemdheden een stuk mooier, door het ze allemaal naar hun zin te maken. Fantastisch!", }, }, rats_killed = { awards = { }, trophies = { [1] = "Je hebt de Anti-Ongedierte trofee gewonnen voor het schieten van %d ratten in je ziekenhuis in het afgelopen jaar.", [2] = "Deze trofee wordt aangeboden door de Federatie Tegen Ratten en Muizen om uw uitzonderlijke schietwerk op %d ratten te eren.", [3] = "Deze Rattenknaller trofee wordt u aangeboden voor het afschieten van %d ratten in het afgelopen jaar.", }, }, rats_accuracy = { awards = { }, trophies = { [1] = "U krijgt de Syndicate Wars Precisie trofee omdat %d%% van de schoten die u op ratten afvuurde doel troffen.", [2] = "Deze trofee eert uw fantastische precisie in het afschieten van %d%% van de ratten waar u in het afgelopen jaar op gemikt heeft.", [3] = "Om te vieren dat u afgelopen jaar %d%% van alle ratten in uw ziekenhuis heeft uitgeroeid, belonen wij u met de Dungeon Keeper Ongediertevrij trofee. ProficiRAT", }, }, all_cured = { awards = { [1] = "Gefeliciteerd met het winnen van de Marie Curie Award voor het behandelen van alle patiënten in uw ziekenhuis in het afgelopen jaar.", }, trophies = { [1] = "De Internationale Geneesstichting wil u eren met de Gezondheid voor Iedereen trofee voor het genezen van iedereen die in het afgelopen jaar uw ziekenhuis binnen is komen lopen.", [2] = "U krijgt de Geen Zieke Rochel trofee voor het genezen van alle patiënten die in het afgelopen jaar uw ziekenhuis hebben bezocht.", }, }, many_cured = { awards = { [1] = "Gefeliciteerd met het winnen van de Marie Curie Award voor het behandelen van bijna alle patiënten in uw ziekenhuis in het afgelopen jaar.", [2] = "U ontvangt deze trofee omdat u meer patiënten heeft genezen dan alle andere ziekenhuizen. Een opvallende prestatie.", }, trophies = { [1] = "De Internationale Geneesstichting wil u eren met de Gezondheid voor Alles trofee voor het genezen van massa's mensen die in het afgelopen jaar uw ziekenhuis binnen zijn komen lopen.", [2] = "U krijgt de onderscheiding Het Kwieke Hoentje voor het genezen van een groot aantal patiënten dat in het afgelopen jaar uw ziekenhuis heeft bezocht.", [3] = "Hierbij ontvangt u de Gezonde Gorgel, een prijs voor het genezen van een enorm percentage van uw bezoekers in het afgelopen jaar.", }, penalty = { [1] = "Het lukt uw ziekenhuis niet de patiënten effectief te genezen. Concentreer u op goede behandelmethoden, zodat behandelingen effectiever worden.", [2] = "Uw ziekenhuis is het minst effectief als het gaat om patiënten genezen. U heeft het ministerie teleur gesteld. Moeten we nog meer zeggen?", }, regional = { [1] = "Vanwege het feit dat u meer zieken heeft genezen dan alle andere ziekenhuizen bij elkaar opgeteld, ontvangt u hiervoor de hoogst haalbare onderscheiding. Gefeliciteerd!", }, }, healthy_plants = { awards = { [1] = "Gefeliciteerd met het winnen van de Oei Ik Groei award voor de fantastische staat van de planten in uw ziekenhuis.", }, trophies = { [1] = "De Vrienden van de Potplanten willen u de Groene Gezondheid trofee uitreiken voor de blakende gezondheid waarin uw planten zich de afgelopen twaalf maanden hebben verkeerd", [2] = "De Frisse Narcissen willen u de Groene Vingers trofee uitreiken voor de uitstekende gezondheid van uw planten in het afgelopen jaar.", }, }, no_deaths = { awards = { [1] = "U heeft de Nimmer Vergaan award gewonnen voor het in leven houden van al uw patiënten in het afgelopen jaar.", [2] = "Uw talent heeft gezorgd voor een minimaal aantal sterfgevallen in uw ziekenhuis. U kunt apetrots zijn op dit resultaat.", }, trophies = { [1] = "De 'Het Leven Gaat Door'-corporatie presenteert u deze trofee omdat er in het afgelopen jaar geen mensen zijn overleden.", [2] = "U heeft de Overlijden Vermijden trofee uitgereikt gekregen voor het in leven houden van elke bezoeker van uw fantastische ziekenhuis in het afgelopen jaar. Bravo.", [3] = "Hierbij ontvangt u de 'Ik Leef Nog' prijs omdat dit jaar geen van uw patiënten is overleden in uw mooie ziekenhuis. Heel goed.", }, penalty = { [1] = "Het aantal overledenen in uw ziekenhuis was het afgelopen jaar behoorlijk hoog. Let goed op en zorg dat in de toekomst meer mensen de behandeling overleven.", [2] = "Uw ziekenhuis is een gevaar voor de gezondheid van de patiënt. Er wordt verwacht dat u mensen geneest, niet laat doodgaan!", }, regional = { [1] = "Het dodental in uw ziekenhuis was het laatste jaar lager dan dat van ieder ander ziekenhuis. Daarvoor bieden wij u deze trofee aan.", }, }, sold_drinks = { awards = { }, trophies = { [1] = "De Wereld Tandartsen Vereniging is trots om u deze trofee en plak te presenteren voor het verkopen van massa's frisdrank in uw ziekenhuis.", [2] = "Uw ziekenhuis heeft de Frisse Zaak trofee gewonnen voor de grote hoeveelheid drankjes die uw gasten in het afgelopen jaar hebben gekocht.", [3] = "Uit naam van Goedgevuld Inc. presenteren wij u vol trots deze met chocola overgoten trofee ter ere van uw uitzonderlijk hoge aantal verkochte blikjes frisdrank.", }, }, high_rep = { awards = { [1] = "Hierbij eren wij uw hoge standaarden en een reputatie die dit jaar gewoon niet beter kan zijn. Goed werk.", [2] = "Gefeliciteerd met de Zuijver Op Den Graet trofee voor het ziekenhuis met de hoogste reputatie van het land. En het is welverdiend ook.", }, penalty = { [1] = "Deze maatregel wordt genomen vanwege de zeer slechte reputatie over het afgelopen jaar. We gaan ervan uit dat u verbetering laat zien in de toekomst.", [2] = "De reputatie van uw ziekenhuis is het laagst in de omgeving. U bent een schande. Laat verbetering zien, of zoek een andere baan!", }, regional = { [1] = "Wij bieden u de Bullfrog Award aan voor de hoogste reputatie van alle ziekenhuizen in het afgelopen jaar. Geniet ervan - u heeft het verdiend.", [2] = "Dit jaar behaalde uw ziekenhuis een reputatie die hoger is dan alle andere ziekenhuizen bij elkaar. Een enorme prestatie.", }, }, consistant_rep = { trophies = { [1] = "Hierbij ontvangt u de hoogste onderscheiding van het ministerie voor de meest onberispelijke standaarden en de hoogst mogelijke reputatie dit jaar. Heel goed.", [2] = "Proficiat met het behalen van de Brandschoon Trofee voor het ziekenhuis met de beste reputatie in het afgelopen jaar. Welverdiend.", }, }, happy_patients = { awards = { [1] = "U mag trots zijn op het feit dat bezoekers van uw ziekenhuis in het afgelopen jaar bijzonder tevreden waren.", [2] = "Bezoekers van uw ziekenhuis waren gemiddeld meer tevreden tijdens hun behandeling, dan bezoekers van andere ziekenhuizen in het spel.", }, penalty = { [1] = "Bezoekers van uw ziekenhuis vinden het verschrikkelijk. U zult veel beter moeten presteren om waardering van het ministerie te krijgen.", [2] = "Mensen die in uw ziekenhuis in behandeling zijn, zijn zeer ontevreden over de staat van het ziekenhuis. U moet meer aandacht schenken aan het wel en wee van de patiënten.", }, }, happy_staff = { awards = { [1] = "Deze oorkonde ontvangt u van uw eigen personeel. Er is natuurlijk nog ruimte voor verbetering, maar over het algemeen wordt u als werkgever zeer gewaardeerd.", [2] = "Uw personeel is zo tevreden en gemotiveerd, niets kan hun glimlach nog verpesten. U bent een geweldige manager!", }, trophies = { [1] = "U krijgt de Smiley trofee voor het zo gelukkig mogelijk houden van uw hardwerkende personeel.", [2] = "Het Adami Instituut van Tevredenheid keert u hierbij deze trofee uit omdat uw personeel geen moment blijk heeft gegeven van ontevredenheid.", [3] = "Deze trofee, de Straalmeer Cup, is hierbij de uwe voor uw inzet voor het welzijn en de tevredenheid van uw personeel. Een glimlach van iedereen!", }, penalty = { [1] = "Uw personeel laat officieel weten dat ze ontevreden zijn. Gemotiveerd personeel is waardevol. Werk aan hun tevredenheid voor u ze helemaal zult verliezen.", }, regional_good = { [1] = "Uw personeel is meer tevreden dan dat van andere ziekenhuizen. Tevreden personeel betekent meer inkomsten en minder sterfgevallen. Dit wordt door het ministerie zeer gewaardeerd.", }, regional_bad = { [1] = "Uw personeel heeft zich het afgelopen jaar ontevreden getoond. Heeft u dat niet gemerkt? Op dit moment heeft ieder ander ziekenhuis meer tevreden personeel dan uw ziekenhuis.", }, }, wait_times = { award = { --attention: this string says AWARD, not AWARDS [1] = "Gefeliciteerd. Uw ziekenhuis heeft altijd zeer korte wachttijden. Dit is een belangrijke onderscheiding.", }, penalty = { [1] = "Patiënten in uw ziekenhuis moeten veel te lang wachten. Er zijn altijd enorme wachtrijen. U kunt uw patiënten veel efficiënter helpen, maar daar moet u wel wat voor doen.", }, }, hosp_value = { awards = { [1] = "Het Ministerie van Volksgezondheid wil dit moment graag gebruiken om u te feliciteren met de indrukwekkende waarde die uw ziekenhuis heeft behaald.", }, penalty = { [1] = "Uw ziekenhuis heeft gefaald een behoorlijke waarde te behalen. U heeft slechte financiële keuzes gemaakt. Houd in uw achterhoofd dat een goed ziekenhuis niet goedkoop is.", }, regional = { [1] = "U bent een financieel wonder! Uw ziekenhuis is meer waard dan alle andere ziekenhuizen in de omgeving bij elkaar opgeteld.", }, }, best_value_hosp = { trophies = { [1] = "Proficiat met het behalen van de Brandschoon trofee voor het ziekenhuis met de beste reputatie in het afgelopen jaar. Welverdiend.", }, penalty = { [1] = "Elke ziekenhuis in de omgeving is meer waard dan die van u. Doe iets aan deze beschamende gang van zaken. Zorg voor mooie en dure apparatuur!", }, regional = { [1] = "Gefeliciteerd met het meest waardevolle ziekenhuis in het spel, goed werk. Probeer dat zo te houden.", }, }, curesvdeaths = { awards = { [1] = "Hartelijk gefeliciteerd met het behalen van een indrukwekkende genezen-of-overleden rato in uw ziekenhuis in het afgelopen jaar.", }, penalty = { [1] = "Uw genezen-of-overleden rato is erg slecht. U moet ervoor zorgen u veel meer mensen geneest dan laat sterven. Laat het er niet bij zitten.", }, }, cleanliness = { award = { --attention: this string says AWARD, not AWARDS [1] = "Inspecteurs vinden uw ziekenhuis heel schoon. Schone ziekenhuizen zijn veilige ziekenhuizen. Houden zo.", }, regional_good = { [1] = "Uw ziekenhuis wordt genoemd als een van de minst schone in de omgeving. Een smerig ziekenhuis stinkt en is gevaarlijk. U moet meer aandacht hebben voor troep.", }, regional_bad = { [1] = "Uw ziekenhuis is het smerigst van de regio. Alle andere managers is het gelukt hun gangen schoner te houden. U bent een schande voor de medische wereld.", }, }, gen_repairs = { awards = { [1] = "U ontvangt deze prijs vanwege de oplettendheid van uw conciërges die alle apparatuur heel goed hebben onderhouden. Heel goed. U kunt gerust op vakantie.", [2] = "Uw conciërges hebben beter gepresteerd dan die van andere ziekenhuizen. Dit is een enorme prestatie. Ere wie ere toekomt.", [3] = "Uw apparatuur is fantastisch onderhouden. De motivatie van uw conciërges in uitmuntend. Deze prijs heeft u meer dan verdiend. Geweldig!.", }, penalty = { [1] = "Uw conciërges hebben uw apparatuur niet goed onderhouden. U moet hen beter in de gaten houden, of meer conciërges aannemen als het teveel werk is.", [2] = "Het onderhoud is een drama. Uw personeel moet de apparatuur beter in de gaten houden en zorgvuldiger onderhouden.", }, }, emergencies = { award = { --attention: this string says AWARD, not AWARDS [1] = "Gefeliciteerd: vanwege uw efficiënte en effectieve manier van afhandelen van noodgevallen, ontvangt u deze speciale prijs. Goed werk.", [2] = "Uw werkwijze bij noodgevallen is een unicum. Deze prijs ontvangt u, omdat u absoluut het beste omgaat met grote drommen zieken en zwakken.", }, penalty = { [1] = "U heeft noodgevallen niet goed afgehandeld. Spoed eisende patiënten moeten direct en goed worden geholpen, dat is u niet gelukt.", }, regional_good = { [1] = "Het ministerie heeft het afgelopen jaar gezien dat u noodgevallen beter aankunt dan ieder ander ziekenhuis. Daarvoor ontvangt u deze prijs.", }, regional_bad = { [1] = "Uw ziekenhuis doet het het slechtst van de regio als het gaat om noodgevallen. Het is uw eigen fout dat u onderaan de lokale noodgevallen ranglijst bungelt.", }, }, pop_percentage = { awards = { [1] = "Heeft u gezien dat een groot deel van de lokale bevolking voor uw ziekenhuis heeft gekozen? Goed gedaan.", [2] = "Gefeliciteerd. Vergeleken met andere medische instellingen heeft uw ziekenhuis het grootste aandeel in de bezoekers uit de regio.", [3] = "Briljant! U heeft meer lokale bewoners naar uw ziekenhuis weten te lokken dan alle andere ziekenhuizen bij elkaar opgeteld.", }, penalty = { [1] = "Heel weinig mensen hebben dit jaar uw ziekenhuis bezocht. Om geld te verdienen heeft uw ziekenhuis voldoende betalende zieken nodig!", [2] = "Elk ziekenhuis in de omgeving heeft een groter aandeel lokale bewoners mogen begroeten dan u. Schaamt u zich niet een beetje?", }, }, research = { awards = { [1] = "Uw onderzoekers hebben er het afgelopen jaar voor gezorgd dat uw ziekenhuis volledig up-to-date is met de nieuwste ontwikkelingen. Uw personeel heeft deze onderscheiding verdiend. Heel goed.", [2] = "Het afgelopen jaar heeft u meer medicijnen en apparatuur ontwikkeld dan was verwacht. Wij bieden u deze prijs aan namens het volledige ministerie.", }, penalty = { [1] = "U heeft een minimale hoeveelheid behandelmethoden, medicijnen en apparatuur ontwikkeld. Dit is helemaal niet goed, technologische vooruitgang is essentieel.", }, regional_good ={ [1] = "Uw onderzoekers hebben er het afgelopen jaar voor gezorgd dat uw ziekenhuis volledig up-to-date is met de nieuwste ontwikkelingen. Uw personeel heeft deze onderscheiding verdiend. Heel goed.", }, regional_bad = { [1] = "Ieder ander ziekenhuis in de regio heeft meer en beter onderzoek gedaan dan u. Omdat onderzoek cruciaal is voor een ziekenhuis, noemt het ministerie dit onacceptabel.", }, }, reputation = "REPUTATIE", cash = "GELD", } save_game_window = { caption = "Spel opslaan (%1%)", new_save_game = "Nieuw bestand", } staff_class = { doctor = "Arts", handyman = "Conciërge", receptionist = "Receptioniste", nurse = "Zuster", surgeon = "Chirurg", } fax = { epidemic_result = { fine_amount = "De regering heeft een nationaal alarm afgekondigd en legt u een boete op van %d.", close_text = "Fantastisch!", hospital_evacuated = "De commissie heeft geen andere keus dan het ziekenhuis te evacueren.", succeeded = { part_1_name = "De inspecteur heeft geruchten gehoord dat uw instituut gebukt ging onder zware gevallen van %s.", part_2 = "Hij heeft echter geen bewijzen gevonden ter bevestiging van deze geruchten.", }, compensation_amount = "De regering heeft derhalve besloten u een schadevergoeding toe te kennen ter waarde van %d ter compensatie voor de schade die uw goede naam heeft geleden door deze leugens.", failed = { part_1_name = "Tijdens het verbergen van de uitbraak van %s", part_2 = "heeft je personeel de ziekte verspreidt onder de bevolking.", }, rep_loss_fine_amount = "De media zal hiervan smullen. Dit is een zware klap voor je reputatie. Daarbij moet je een boete betalen van %d.", }, vip_visit_query = { choices = { invite = "De VIP officieel uitnodigen.", refuse = "De VIP met een smoesje afwimpelen.", }, vip_name = "%s wil graag je ziekenhuis bezoeken.", }, vip_visit_result = { telegram = "Telegram!", remarks = { [1] = "Dat ziekenhuis loopt als een trein. Als mijn gezondheid me in de steek laat, wil ik daarnaartoe.", [2] = "Dat is pas een ziekenhuis!", [3] = "Wat een fantastisch ziekenhuis. En ik kan het weten: ik heb er wel een paar van binnen gezien.", [4] = "Dat ziekenhuis draait goed. Bedankt voor de uitnodiging.", [5] = "Hmm. Zeker een niet al te kwade medische instelling.", [6] = "Ik heb genoten van je charmante ziekenhuis. Goed, iemand zin in Nasi Goreng van de Indonees?", [7] = "Nou ja, het kan erger. Maar je moet er wat aan werken.", [8] = "Oh jee. Niet zo een fijne plaats als je je niet lekker voelt.", [9] = "Een matig ziekenhuis, eerlijk gezegd. Ik had meer verwacht.", [10] = "Was dat het nou? Het was nog erger dan een opera van vier uur!", [11] = "Ik walg van wat ik gezien heb. Was dat een ziekenhuis? Het leek meer op een zwijnenstal!", [12] = "Ik ben het zat een publiek figuur te zijn en zulke ranzige hokken te moeten bezoeken! Ik kap ermee.", [13] = "Wat een zooi. Ik ga kijken of ik het kan laten sluiten.", [14] = "Ik heb nog nooit zo'n verschrikkelijk ziekenhuis gezien. Wat een schande!", [15] = "Ik ben geschokt. Dat is toch geen ziekenhuis? Ik heb een biertje nodig.", free_build = { [1] = "U heeft een heel mooi ziekenhuis neergezet. Dat is natuurlijk ook niet zo moeilijk als geld geen rol speelt he?", [2] = "Ik ben geen econoom, maar ik denk dat ik dit ziekenhuis ook wel zou kunnen besturen, als u begrijpt wat ik bedoel...", [3] = "Een heel goed lopend ziekenhuis. Pas wel op voor de economische crisis! Oh nee... Daar hoeft u zich natuurlijk geen zorgen om te maken.", }, }, rep_boost = "Je reputatie is verbeterd!", vip_remarked_name = "Na zijn bezoek zei %s:", cash_grant = "Je hebt een bonus gekregen van %d.", rep_loss = "Je reputatie is heeft een flinke deuk opgelopen.", close_text = "Bedankt voor uw bezoek aan ons ziekenhuis.", }, disease_discovered_patient_choice = { need_to_build = "Je moet een %s bouwen om dit te kunnen behandelen.", need_to_employ = "Huur een %s om deze situatie te behandelen.", what_to_do_question = "Wat moeten we met de patiënt doen?", guessed_percentage_name = "Je team moest raden naar de conditie van de patiënt. De kans dat het %s is bedraagt %d", choices = { send_home = "Stuur de patiënt naar huis.", research = "Stuur de patiënt naar het laboratorium.", wait = "Laat de patiënt even geduld hebben.", }, disease_name = "Je team heeft een nieuwe ziekte ontdekt. Het is %s", need_to_build_and_employ = "Als je een %s bouwt en een %s aanneemt, kun je slagen.", can_not_cure = "Je kunt deze ziekte nu niet genezen.", }, emergency_result = { earned_money = "Van de maximum bonus van %d heb je %d verdiend.", close_text = "Sluiten.", saved_people = "Je hebt %d van de %d patiënten genezen.", }, disease_discovered = { discovered_name = "Je team heeft een nieuwe ziekte ontdekt. Het is %s", need_to_employ = "Neem een %s aan om dit probleem te overwinnen.", need_to_build_and_employ = "Als je een %s bouwt en een %s aanneemt, kun je slagen.", need_to_build = "Je moet een %s bouwen om dit te kunnen behandelen.", close_text = "Een nieuwe ziekte is ontdekt.", can_cure = "Je kunt deze ziekte genezen.", }, emergency = { locations = { [1] = "Bakker's Chemische Fabriek.", [2] = "Schamper Universiteit.", [3] = "het Paraquat Tuincentrum.", [4] = "het instituut voor onderzoek naar gevaarlijke stoffen.", [5] = "het Klompendansers congres.", [6] = "Café de Brullende Kikker.", [7] = "Dikke Davids Bier- en Uitvaartwinkel.", [8] = "de lokale Chinees.", [9] = "Berts Gebruikte Petrochemische Producten Emporium.", }, num_disease = "Er zijn %d mensen met %s die onmiddellijk hulp nodig hebben.", num_disease_singular = "Er is één persoon met %s die onmiddellijk hulp nodig heeft.", cure_possible_drug_name_efficiency = "Je hebt alle benodigde apparatuur en hulpverleners. Je hebt het geneesmiddel voor %s, deze is %d procent effectief.", cure_not_possible_employ = "Je zult een %s moeten aannemen", cure_not_possible = "Je kunt op dit moment de ziekte niet genezen.", cure_possible = "Je hebt de benodigde apparatuur en hulpverleners, dus je zou dit noodgeval aan moeten kunnen.", choices = { accept = "Ja, ik ben klaar om dit noodgeval te behandelen.", refuse = "Nee, ik weiger dit noodgeval te behandelen.", }, location = "Er is een ongeluk gebeurd bij %s", cure_not_possible_build = "Je zult een %s moeten bouwen", cure_not_possible_build_and_employ = "Je zult een %s moeten bouwen en een %s moeten aannemen.", bonus = "De maximumbonus voor dit noodgeval bedraagt %d. Als je echter niet slaagt, zal je reputatie schade oplopen.", free_build = "Als je slaagt, is dit goed voor je reputatie. Als je echter niet slaagt, zal je reputatie schade oplopen.", }, choices = { decline_new_level = "Nog even blijven doorspelen", accept_new_level = "Naar het volgende level", return_to_main_menu = "Terug naar het hoofdmenu", }, debug_fax = { text4 = "FACTORS : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", text5 = "CONTRIBN : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d PERCENT", text3 = "FIGURES : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", text9 = "DISASTERS %d ALLOWED (MTHS) %d (%d)REDUCTION %d", close_text = "Ja ja!", text1 = "BEST COUNT %d", text6 = "THE FOLLOWING FACTORS ARE ALSO APPLIED", text8 = "AMENITIES %d PEEPS HANDLED %d REDUCTION %d", text2 = "TOTAL PEOPLE IN HOSPITAL %d CHECKING AGAINST %d", text10 = "KILLS %d ALLOWED (MTHS) %d (%d) REDUCTION %d", text11 = "PEOPLE THIS MONTH %d", text7 = "REPUTATION: %d EXPECTED %d REDUCTION %d", }, epidemic = { cover_up_explanation_1 = "Als je probeert dit te verbergen, heb je een beperkte tijd om alle geïnfecteerde patiënten te genezen voor de inspectie erachter komt.", cover_up_explanation_2 = "Als je bezoek krijgt van een inspecteur terwijl je nog bezig bent de epidemie op te lossen, kan hij drastische maatregelen tegen je nemen.", choices = { cover_up = "Alle geïnfecteerde patiënten proberen te genezen voor de tijd voorbij is of iemand je ziekenhuis verlaat.", declare = "Een epidemie afkondigen. Betaal de boete en je reputatie eronder laten lijden.", }, disease_name = "Je artsen hebben een besmettelijke variant van %s ontdekt.", declare_explanation_fine = "Als je een epidemie afkondigt, betaal je een boete van %d en worden al je patiënten automatisch ingeënt. Je reputatie zal hieronder lijden.", }, diagnosis_failed = { choices = { send_home = "Stuur patiënt naar huis.", take_chance = "Waag de gok en probeer de behandeling.", wait = "Laat de patiënt even wachten terwijl je meer diagnostische kamers bouwt.", }, situation = "We hebben al onze diagnostische opties al gebruikt, maar we weten nog steeds niet precies wat er met deze patiënt aan de hand is.", what_to_do_question = "Wat moeten we doen met deze patiënt?", partial_diagnosis_percentage_name = "Er is een kans van %d procent dat we weten wat voor soort %s de patiënt heeft.", }, } bank_manager = { current_loan = "Uitstaande lening", balance = "Saldo", interest_payment = "Maandelijkse rente", hospital_value = "Waarde ziekenhuis", interest_rate = "Rentevoet", insurance_owed = "Deb. Verzekeringen", statistics_page = { balance = "Saldo", details = "Omschrijving", date = "Datum", current_balance = "Huidig Saldo", money_in = "Bij", money_out = "Af", }, inflation_rate = "Inflatie", } staff_title = { junior = "Assistent", psychiatrist = "Psychiater", consultant = "Specialist", surgeon = "Chirurg", doctor = "Basisarts", researcher = "Onderzoeker", nurse = "Zuster", receptionist = "Receptioniste", general = "Algemeen", } tooltip = { message = { button = "Klik op de linkermuisknop om het bericht te openen", button_dismiss = "Klik op de linkermuisknop om het bericht te openen, klik op de rechtermuisknop om het te negeren", }, lua_console = { textbox = "Voer LUA code in om uit te voeren", execute_code = "Voer de ingevoerde code uit", close = "Sluit de console", }, fax = { close = "Sluit dit scherm zonder de fax weg te gooien", }, cheats_window = { close = "Sluit het cheatmenu", cheats = { end_month = "Spring naar het einde van de maand.", emergency = "Creëer een noodgeval", vip = "Creëer een VIP", win_level = "Win het huidige level", create_patient = "Creëer een patiënt op de rand van de kaart.", money = "Voegt 10.000 toe aan je saldo", lose_level = "Verlies het huidige level", -- Zie ook information.level_lost.cheat all_research = "Voltooi al het onderzoek", end_year = "Spring naar het einde van het jaar.", earthquake = "Creëer een aardbeving", epidemic = "Maakt een besmette patient aan die mogelijk een epidemie veroorzaakt", toggle_infected = "Aan/uit zetten van weergave van geïnfecteerden van de ontdekte epidemie", increase_prices = "Verhoog alle prijzen met 50% (max. 200%)", decrease_prices = "Verlaag alle prijzen met 50% (min. 50%)", show_infected = "Toon/verberg de geïnfecteerde iconen voor de actieve, ontdekte epidemieën", max_reputation = "Zet de reputatie van het ziekenhuis op maximaal", toggle_epidemic = "Schakel epidemieën in of uit", reset_death_count = "Zet het aantal ziekhuisdoden terug op nul", toggle_earthquake = "Schakel aardbevingen in of uit", }, }, new_game_window = { player_name = "Voer de naam in die je wild gebruiken in het spel", difficulty = "Moeilijkheid", cancel = "Oh, ik wilde eigenlijk helemaal geen nieuw spel starten!", tutorial = "Klik hier als je wat hulp nodig hebt in het spel", start = "Begin het spel met de geselecteerde instellingen", easy = "Als je dit spel nog nooit gespeeld hebt, is deze optie voor jou", medium = "De gulden middenweg, als je geen idee hebt wat je wilt", hard = "Als je het spel kent en meer uitdaging zoekt, kies deze optie.", }, calls_dispatcher = { assigned = "Dit vakje is aangekruist als de taak is toegewezen", task = "Lijst van de taken - klik op een taak om het personeelslid te zien die deze taak uit voert en om naar de locatie van de taak te gaan", close = "Sluit dit scherm", }, hire_staff_window = { prev_person = "Vorige persoon bekijken", cancel = "Annuleren", psychiatrist = "Psychiater", salary = "Salaris", next_person = "Volgende persoon bekijken", nurses = "Beschikbare zusters bekijken", surgeon = "Chirurg", handymen = "Beschikbare conciërges bekijken", doctors = "Beschikbare artsen bekijken", doctor_seniority = "Niveau arts (assistent, basisarts of specialist)", hire = "Aannemen", researcher = "Onderzoeker", qualifications = "Extra kwalificaties", receptionists = "Beschikbare receptionistes bekijken", staff_ability = "Competentie", }, handyman_window = { close = "Annuleren", ability = "Competentie", face = "Foto", prio_machines = "Hogere prioriteit geven aan reparaties", prio_litter = "Hogere prioriteit geven aan schoonmaken", happiness = "Tevredenheid", prio_plants = "Hogere prioriteit geven aan het watergeven van planten", name = "Naam van de conciërge", tiredness = "Moeheid", center_view = "Naar conciërge springen", salary = "Salaris", sack = "Ontslaan", pick_up = "Oppakken", parcel_select = "Het gebouw waar de conciërge taken mag verrichten. Klik om te veranderen", }, staff_list = { ability_2 = "Competentie", next_person = "Volgende persoon in de lijst selecteren", detail = "Precisie", happiness = "Tevredenheid", researcher_train = "%d%% van de opleiding tot onderzoeker voltooid", handymen = "Lijst van conciërges bekijken", tiredness = "Laat zien hoe moe de werknemers zijn", researcher = "Gekwalificeerde onderzoeker", happiness_2 = "Moraal", pay_rise = "Salaris met 10% verhogen", bonus = "Een bonus van 10% geven", prev_person = "Vorige persoon in de lijst selecteren", nurses = "Lijst van zusters bekijken", psychiatrist = "Gekwalificeerde psychiater", salary = "Huidig salaris van deze werknemer", ability = "Competentie van deze werknemers", close = "Terugkeren naar het spel", sack = "Deze werknemer ontslaan", surgeon = "Gekwalificeerde chirurg", tiredness_2 = "Moeheid werknemer", doctors = "Lijst van artsen bekijken", doctor_seniority = "Niveau van arts", view_staff = "Bekijk deze persoon", surgeon_train = "%d%% van de opleiding tot chirurg voltooid", skills = "Extra bekwaamheden", receptionists = "Lijst van receptionistes bekijken", psychiatrist_train = "%d%% van de opleiding tot psychiater voltooid", }, research = { cure_inc = "Budget voor onderzoek verhogen", close = "Onderzoeksscherm sluiten", specialisation_dec = "Budget voor specialisatie verlagen", diagnosis_dec = "Budget voor diagnostische apparatuur verlagen", allocated_amount = "Totaal budget", improvements_inc = "Budget voor verbeteringen verhogen", drugs_dec = "Budget voor medicijnen verlagen", drugs_inc = "Budget voor medicijnen verhogen", cure_dec = "Budget voor behandelmethodes verlagen", specialisation_inc = "Budget voor specialisatie verhogen", improvements_dec = "Budget voor verbeteringen verlagen", diagnosis_inc = "Budget voor diagnostische apparatuur verhogen", }, machine_window = { repair = "Een Conciërge sturen om deze machine te repareren", name = "Naam", close = "Sluiten", times_used = "Aantal keren gebruikt", status = "Status machine", replace = "Machine vervangen", }, place_objects_window = { confirm = "Bevestigen", cancel = "Annuleren", pick_up = "Voorwerp oppakken", buy_sell = "Voorwerp kopen of verkopen", }, totd_window = { previous = "Vorige tip tonen", next = "Volgende tip tonen", }, load_game_window = { load_game = "Laad spel %s", load_autosave = "Laad Autosave", load_game_number = "Laad spel %d", }, queue_window = { end_of_queue = "Sleep een patiënt hier naartoe om hem of haar achteraan in de rij te plaatsen", num_entered = "Aantal patiënten die in deze kamer zijn behandeld", close = "Dit scherm sluiten", num_in_queue = "Aantal patiënten in de rij", num_expected = "Aantal patiënten die door de receptioniste worden verwacht zich aan te sluiten", front_of_queue = "Sleep een patiënt hier naartoe om ze vooraan de rij te plaatsen", dec_queue_size = "Maximum rijlengte verkleinen", max_queue_size = "Maximum rijlengte die de receptioniste zal proberen aan te houden", inc_queue_size = "Maximum rijlengte vergroten", patient = "Sleep een patiënt naar een specifieke plaats in de rij. Klik op de rechtermuisknop om een patiënt naar huis te sturen of naar een rivaliserend ziekenhuis door te verwijzen", patient_dropdown = { send_home = "Patiënt uit ziekenhuis ontslaan", hospital_2 = "Patiënt naar een ander ziekenhuis verwijzen", reception = "Patiënt naar receptioniste verwijzen", hospital_1 = "Patiënt naar een ander ziekenhuis verwijzen", hospital_3 = "Patiënt naar een ander ziekenhuis verwijzen", }, }, jukebox = { rewind = "Vorig nummer", loop = "Nummer herhalen", stop = "Stoppen", close = "Sluiten", current_title = "Jukebox", play = "Afspelen", fast_forward = "Volgend nummer", }, graphs = { deaths = "Doden", close = "Scherm sluiten", scale = "Schaal", money_out = "Uitgaven", visitors = "Bezoekers", wages = "Salarissen", balance = "Saldo", money_in = "Inkomsten", cures = "Genezingen", reputation = "Waarde", }, toolbar = { reputation = "Je reputatie", casebook = "Behandelingen", edit = "Aanpassen", staff_list = "Personeel", policy = "Beleid", date = "Datum", charts = "Grafieken", objects = "Gangartikelen", balance = "Je saldo", research = "Onderzoek", hire = "Personeel inhuren", status = "Status", town_map = "Kaart", rooms = "Bouwen", bank_button = "Klik voor het kasboek. Klik op de rechtermuisknop voor de bankafschriften", }, pay_rise_window = { accept = "Aan de eis voldoen", decline = "Niet betalen en ontslaan.", }, town_map = { close = "Kaart sluiten", plants = "Planten weergeven", fire_extinguishers = "Brandblussers weergeven", people = "Mensen weergeven", balance = "Saldo", heat_dec = "Verwarming lager zetten", heating_bill = "Energierekening", radiators = "Radiatoren weergeven", objects = "Voorwerpen weergeven", heat_level = "Verwarming", heat_inc = "Verwarming hoger zetten", }, custom_game_window = { choose_game = "Klik op een level om meer informatie in te zien", free_build = "Klik hier als je wilt spelen zonder geld, en zonder win en verliesvoorwaarden", --Kan ook overwinningsvoorwaarden worden genoemd, maar is misschien net te weinig info load_selected_level = "laad en speel het geselecteerde level", }, casebook = { sent_home = "Aantal afgewezen patiënten", cure_requirement = { possible = "Je kunt deze behandeling uitvoeren", not_possible = "Je kunt deze behandeling nog niet uitvoeren", ward_hire_nurse = "Je hebt een zuster en een slaapzaal nodig om deze behandeling uit te voeren", build_ward = "Je hebt een slaapzaal nodig om deze behandeling uit te voeren", research_machine = "De benodigde apparatuur is nog niet uitgevonden", hire_staff = "Je hebt een %s nodig om deze behandeling uit te voeren", build_room = "Je mist de relevante kamer om deze behandeling uit te voeren", hire_surgeon = "Je hebt een tweede chirurg nodig om een operatie uit te voeren", hire_surgeons = "Je hebt twee chirurgen nodig om operaties uit te voeren", hire_staff_old = "Je moet een %s aannemen om deze behandeling uit te voeren", }, increase = "Verhogen", up = "Naar boven", reputation = "Reputatie", research = "Klik hier om het laboratorium zich op deze specialisatie te laten concentreren", close = "Scherm sluiten", earned_money = "Tot nu toe verdiend", cure_type = { psychiatrist = "Een psychiater voert deze behandeling uit", drug_percentage = "Deze behandeling gebruikt medicijnen. Die van jou zijn %d%% effectief.", drug = "Deze behandeling maakt gebruik van medicijnen", machine = "Deze behandeling maakt gebruik van apparatuur", surgery = "Deze behandeling maakt gebruik van operaties", unknown = "Je weet nog niet hoe je deze ziekte moet behandelen", }, decrease = "Verlagen", deaths = "Aantal sterfgevallen", cured = "Aantal genezingen", down = "Naar beneden", treatment_charge = "Prijs", }, policy = { diag_termination = "Het diagnoseproces zal doorlopen worden tot artsen zo zeker zijn als STOP PROCEDURE aangeeft, of tot alle diagnostische testen zijn uitgevoerd", close = "Sluit beleidsscherm", staff_leave = "Artsen en zusters mogen bijspringen waar nodig", diag_procedure = "Als de diagnose van een arts minder zeker is dan het WEGSTUREN percentage, zal de patiënt naar huis gestuurd worden. Als de diagnose beter is dan GOKKEN aangeeft, zal de patiënt de betreffende behandeling ondergaan", staff_rest = "Hoe moe personeelsleden moeten zijn voordat ze mogen uitrusten", staff_stay = "Artsen en zusters blijven in de kamer waar je ze plaatst", }, bank_manager = { graph = "Verwachte betalingen van %s", close = "Kasboek sluiten", hospital_value = "Waarde ziekenhuis", graph_return = "Terug naar vorig venster", current_loan = "Nog uitstaande leningen", borrow_5000 = "$5000 lenen van de bank", balance = "Je huidige saldo", interest_payment = "Maandelijkse rente", inflation_rate = "Inflatie", interest_rate = "Rentevoet", repay_5000 = "$5000 aflossen", show_graph = "Toon grafiek met verwachte betalingen van %s", insurance_owed = "Nog tegoed van %s", }, main_menu = { exit = "Nee! Nee! Verlaat ons niet!", custom_level = "Als uitzendkracht ben je verantwoordelijk voor maar één ziekenhuis", network = "Start een netwerkspel", quit = "Afsluiten", continue = "Doorgaan met vorig spel", options = "Verschillende instellingen aanpassen", load_menu = { load_slot = "SPEL LADEN", empty_slot = "LEEG", }, new_game = "Begin met een compleet nieuw spel", load_game = "Een opgeslagen spel laden", custom_campaign = "Start een campagne die door de community is gemaakt", map_edit = "Creëer een aangepaste map" }, patient_window = { graph = "Klik om te schakelen tussen de gezondheid en de geschiedenis van deze persoon", casebook = "Details bekijken van de ziekte van deze patiënt", close = "Venster sluiten", queue = "Bekijk de rij waarin deze persoon staat", happiness = "Tevredenheid van deze patiënt", warmth = "Hoe warm deze persoon het heeft", center_view = "Deze persoon bekijken", thirst = "Hoe dorstig deze patiënt is", send_home = "Uit ziekenhuis ontslaan", abort_diagnosis = "Behandel deze patiënt nu, zonder een complete diagnose", }, menu_list_window = { back = "Dit venster sluiten", save_date = "Klik hier om te sorteren op datum van opslaan", name = "Klik hier om te sorteren op naam", ok = "Bevestig keuze", }, watch = { emergency = "Noodgeval: tijd over om alle patiënten te genezen.", hospital_opening = "Bouwtijd: dit is hoelang het nog duurt voor je ziekenhuis opengaat. Klik op de START knop om je ziekenhuis nu te openen.", epidemic = "Epidemie: tijd over om de epidemie te verbergen. Als de tijd om is OF een besmettelijke patiënt je ziekenhuis verlaat, komt er een inspecteur langs. De knop zet vaccinatiemodus aan en uit. Klik ermee op een patiënt om hem of haar te laten inenten door een zuster.", }, save_game_window = { new_save_game = "Voer hier de naam in", save_game = "Spel %s overschrijven", }, information = { close = "Informatievenster sluiten", }, rooms = { ultrascan = "Een arts gebruikt de echoscopie om diagnoses te stellen", research_room = "Artsen die een kwalificatie hebben als onderzoeker kunnen nieuwe medicijnen en machines ontwikkelen in het laboratorium", fracture_clinic = "Een zuster gebruikt de gipskamer om botfracturen te verhelpen", gps_office = "Patiënten krijgen hun eerste consult en resultaten in de spreekkamer.", inflation = "Een arts gebruikt de inflatiekliniek om patiënten met plofkop te genezen", staffroom = "Artsen en zusters ontspannen in de personeelsruimte en raken zo hun moeheid kwijt", jelly_vat = "Een arts gebruikt de gelatinetank om gelatinis te genezen", scanner = "Een arts gebruikt de scanner om een diagnose te stellen", decontamination = "Een arts gebruikt de ontsmettingscabine om radioactiviteit te genezen", pharmacy = "Een zuster geeft medicijnen uit een apotheek aan patiënten om hen te genezen van verschillende kwalen.", cardiogram = "Een arts gebruikt de cardiogram om een diagnose te stellen", ward = "Slaapzalen worden door zusters gebruikt om diagnoses te stellen en patiënten te behandelen. Patiënten worden hier naartoe gestuurd ter observatie en rusten hier voordat ze een operatie moeten ondergaan", training_room = "Een klaslokaal met een specialist kan worden gebruikt om andere artsen op te leiden", operating_theatre = "De operatiekamer heeft twee gekwalificeerde chirurgen nodig", psychiatry = "De psychiatrie geneest geesteszieke patiënten en helpt het diagnostisch proces. Het vereist echter wel een gekwalificeerde psychiater", hair_restoration = "Een arts gebruikt de haarrestaurateur om kaalheid te genezen", tongue_clinic = "Een arts gebruikt de snijmachine om lamme tong te genezen", dna_fixer = "Een arts gebruikt DNA hersteller om patiënten met buitenaards DNA te genezen", general_diag = "Een arts gebruikt de spreekkamer om een basisdiagnose voor zijn patiënten te stellen. Goedkoop en vaak zeer effectief", toilets = "Bouw toiletten, zodat mensen geen zooi maken van je ziekenhuis!", electrolysis = "Een arts gebruikt de elektrolysekamer om pilitis te genezen", x_ray = "Een arts gebruikt de röntgenkamer om een diagnose te stellen", blood_machine = "Een arts gebruikt de bloedmachinekamer om een diagnose te stellen", }, statement = { close = "Afschriftenscherm sluiten", }, buy_objects_window = { confirm = "Voorwerp(en) kopen", cancel = "Annuleren", increase = "Koop nog een exemplaar van dit voorwerp", total_value = "Totale aankoopwaarde", price = "Prijs per stuk", decrease = "Koop een exemplaar minder van dit voorwerp", }, staff_window = { doctor_seniority = "Niveau - assistent, basisarts of specialist", psychiatrist = "Psychiater", close = "Annuleren", ability = "Competentie", pick_up = "Oppakken", sack = "Ontslaan", surgeon = "Chirurg", happiness = "Tevredenheid", salary = "Salaris per maand", name = "Naam", tiredness = "Moeheid", center_view = "Persoon bekijken", skills = "Speciale bekwaamheden", researcher = "Onderzoeker", face = "Foto", }, status = { percentage_cured = "Je moet %d bezoekers hebben behandeld. Tot nu toe heb je er %d behandeld", thirst = "Gemiddelde dorst van de mensen in je ziekenhuis", close = "Overzicht sluiten", population_chart = "Dit diagram geeft aan welk deel van de zieken naar welk ziekenhuis gaat", win_progress_own = "Laat vooruitgang zien tot je ziekenhuis aan de eisen voldoet", reputation = "Je reputatie moet minimaal %d bedragen. Momenteel bedraagt deze %d", population = "Je moet %d%% van de bevolking aantrekken.", warmth = "Algemene warmte van de mensen in je ziekenhuis", percentage_killed = "Niet meer dan %d%% van je bezoekers mogen overlijden. Tot nu toe is %d%% overleden", balance = "Je saldo moet ten minste %d bedragen. Momenteel bedraagt deze %d", value = "Je ziekenhuis moet $%d waard zijn. Momenteel is deze $%d waard", win_progress_other = "Laat vooruitgang zien tot het ziekenhuis van %s aan de eisen voldoet", num_cured = "Je doel is %d patiënten te genezen. Tot nu toe heb je er %d genezen", happiness = "Algemene tevredenheid van de mensen in je ziekenhuis", }, window_general = { confirm = "Bevestigen", cancel = "Annuleren", }, objects = { chair = "Stoel: patiënten zitten hierop als ze over hun ziekte vertellen.", litter = "Troep: op de grond gegooid door een patiënt, omdat hij geen prullenbak kon vinden.", sofa = "Bankstel: werknemers rusten uit op een bankstel tenzij ze een betere manier vinden om zich te ontspannen.", operating_table = "30 OB_OP_TABLE", bed2 = "unused", bench = "Bank: hier kunnen patiënten comfortabel wachten op hun beurt.", scanner = "14 OB_SCANNER", couch = "18 OB_COUCH", blood_machine = "42 OB_BLOOD_MC", table1 = "Table (REMOVED): holds collection of magazines to keep waiting patients happy.", --[[ Schijnbaar hebben ze geen tafels in ziekenhuizen. --]] video_game = "Videospelletje: laat je personeel zich ontspannen met Hi-Octane.", lamp = "Lamp: geeft licht zodat je personeel kan zien.", op_sink2 = "34 OB_OP_SINK_2", door = "Deur: mensen openen deze vaak. Ook doen ze deze wel eens dicht.", auto_autopsy = "Autopsie: een grote hulp in het ontdekken van nieuwe behandelingen", reception_desk = "Receptie: een receptioniste stuurt mensen vanaf hier door naar artsen.", hair_restorer = "25 OB_HAIR_RESTORER", projector = "Beamer: een specialist gebruikt visuele hulp bij de lesstof", crash_trolley = "20 OB_CRASH", tv = "TV: nu hoeft je personeel hun favoriete programma niet meer te missen.", ultrascanner = "Echo apparaat", surgeon_screen = "35 OB_SURGEON_SCREEN", litter_bomb = "Afvalbom: saboteer het ziekenhuis van je tegenstander", inflator = "Compressor: geneest mensen met plofkop.", table2 = "12 OB_BTABLE", desk = "Bureau: essentieel voor een arts om zijn computer op te zetten.", pool_table = "Biljarttafel: helpt je personeel zich te ontspannen.", x_ray_viewer = "29 OB_XRAY_VIEWER", radiation_shield = "28 OB_RAD_SHIELD", bed = "Bed: erg zieke mensen liggen hierop.", swing_door2 = "53 OB_DOUBLE_DOOR2", console = "15 OB_SCANNER_CONSOLE", op_sink1 = "33 OB_OP_SINK_1", bookcase = "Boekenkast: referentiemateriaal voor artsen.", drinks_machine = "Frisdrankautomaat: lest de dorst van patiënten en zorgt voor inkomsten.", comfortable_chair = "61 OB_COMFY_CHAIR", skeleton = "Geraamte: gebruikt voor opleidingen en Halloween.", computer = "Computer: belangrijk voor onderzoek", bin = "Prullenbak: hier gooien patiënten hun afval in.", pharmacy_cabinet = "Apotheek: waar de medicijnen worden bewaard.", radiator = "Radiator: zo wordt het niet te koud in je ziekenhuis.", cast_remover = "24 OB_CAST_REMOVE", atom_analyser = "Pulsmixer: wordt geplaatst in het laboratorium. Versnelt het onderzoeksproces.", plant = "Plant: houdt patiënten tevreden en zuivert de lucht.", jelly_moulder = "47 OB_JELLY_VAT", cardio = "13 OB_CARDIO", toilet = "Pot: patiënten, eh, gebruiken dit.", electrolyser = "46 OB_ELECTRO", fire_extinguisher = "Blusser: verkleint het gevaar van defecte apparatuur.", bed3 = "unused", swing_door1 = "52 OB_DOUBLE_DOOR1", lecture_chair = "Schoolbank: je studerende artsen zitten hier om aantekeningen te maken, zich dood te vervelen en doelloos poppetjes te tekenen. Hoe meer schoolbanken je plaatst, des te groter je klas kan zijn.", screen = "16 OB_SCREEN", toilet_sink = "Wasbak: de patiënten die zich wat meer bewust zijn van hygiëne kunnen hier hun vieze handen in wassen. Als er niet genoeg wasbakken zijn, raken patiënten nukkig.", shower = "54 OB_DECON_SHOWER", gates_of_hell = "48 OB_HELL", entrance_right = "59 OB_ENT_RDOOR", entrance_left = "58 OB_ENT_LDOOR", slicer = "26 OB_SLICER", dna_fixer = "23 OB_DNA_FIXER", x_ray = "27 OB_XRAY", cabinet = "Dossierkast: bevat dossiers, aantekeningen en rapportages van patiënten.", rathole = "De thuisbasis van een rattenfamilie die uw ziekenhuis vies genoeg vond om hier te komen wonen.", }, build_room_window = { cost = "Kosten van deze kamer", room_classes = { treatment = "Behandelkamers", diagnosis = "Diagnostische kamers", facilities = "Speciale faciliteiten", clinic = "Gespecialiseerde klinieken", }, close = "Venster sluiten en terugkeren naar het spel", }, options_window = { fullscreen = "Wil je het spel in volledig scherm of in een venster spelen?", --Hoe kun je ''Windowed mode'' het beste verwoorden? Omni: wat vind je hiervan?-- resolution = "Verander de resolutie naar wat er rechts is ingevuld", apply = "Pas de ingevoerde resolutie toe", language_dropdown_item = "Kies %s als taal", language = "De taal waarin het spel wordt weergeven", select_language = "Selecteer de taal waarin je het spel wilt spelen", cancel = "Annuleren", select_resolution = "Een andere resolutie selecteren", fullscreen_button = "Volledig scherm", change_resolution = "Verander de resolutie naar wat er links is ingevuld", height = "Voer de gewenste verticale resolutie in", width = "Voer de gewenste horizontale resolutie in", language = "Kies %s als taal", back = "Sluit het instellingenvenster", folder_button = "Mapopties.", customise_button = "Meer instellingen om je spel aan te passen.", apply_scrollspeed = "Pas de ingevoerde scrollsnelheid toe.", apply_shift_scrollspeed = "Pas de ingevoerde shift-scrollsnelheid toe.", apply_zoomspeed = "Pas de ingevoerde zoomsnelheid toe.", cancel_scrollspeed = "Ga terug zonder de scrollsnelheid te wijzigen.", cancel_shift_scrollspeed = "Ga terug zonder de shift-scrollsnelheid te wijzigen.", cancel_zoomspeed = "Ga terug zonder de zoomsnelheid te wijzigen.", capture_mouse = "Klik om de cursor te vangen in het spelvenster", check_for_updates = "Stel in of het spel bij het opstarten naar updates moet zoeken.", hotkey = "Pas sneltoetsen aan.", language_dropdown_no_font = "Selecteer een lettertype in de spelinstellingen om deze taal in te schakelen", right_mouse_scrolling = "Wissel de muisknop die wordt gebruikt om door de kaart te scrollen", scrollspeed = "Stel de scrollsnelheid in tussen 1 (langzaamst) en 10 (snelst). De standaard waarde is 2", shift_scrollspeed = "Stel de shift-scrollsnelheid in tussen 1 (langzaamst) en 10 (snelst). De standaard waarde is 4", zoom_speed = "Stel de zoomsnelheid van de camera in van 10 (langzaamst) en 1000 (snelst). De standaard waarde is 80", }, audio_window = { audio_button = "Zet alle spelgeluiden aan of uit.", audio_toggle = "Zet aan of uit.", jukebox = "Open de Jukebox om de muziek te bedienen", }, research_policy = { research_progress = "Voortgang tot de volgende ontdekking in deze categorie: %1%/%2%", no_research = "Naar deze categorie wordt momenteel geen onderzoek gedaan", }, customise_window = { intro = "Zet de intro video aan of uit. Zet deze instelling aan om de intro video te tonen als CorsixTH wordt gestart.", fractured_bones = "Omdat de animatie niet mooi is, zijn vrouwelijke patiëntien met gebroken botten standaard uitgeschakeld. Om vrouwelijke patiënten met gebroken botten in je ziekenhuis te ontvangen zet je deze instelling uit.", movies = "Met algemene video instellingen zet je alle video's aan of uit.", volume = "Als de 'volume-lager' knop ook het behandelingenboek opent, zet deze instelling aan om de sneltoets naar het behandelingenboek te veranderen naar shift+C", aliens = "Vanwege de sleche animatie bezoeken patiënten met alien-DNA je ziekenhuis alleen bij een noodgeval. Om patiënten met alien-DNA ook buiten noodgevallen je ziekenhuis te laten bezoeken zet je deze instelling uit.", paused = "In Theme Hospital was het niet mogelijk de menubalk te gebruiken als het spel was gepauzeerd. De standaard instelling in CorsixTH is het zelfde, maar met deze instelling aan is dit tijdens pauze wel toegestaan.", average_contents = "Als het spel moet onthouden wat je gemiddeld genomen aan meubilair in een kamer bouwt, zet deze instelling aan.", back = "Sluit dit menu af en ga terug naar het instellingen menu.", remove_destroyed_rooms = "Schakel deze optie in als u vernielde kamers tegen betaling wilt kunnen verwijderen", }, update_window = { download = "Ga naar de download pagina voor de nieuwste versie van CorsixTH", ignore = "Negeer deze update. Je wordt opnieuw herinnerd als je CorsixTH de volgende keer start.", }, folders_window = { browse_font = "Zoek naar een ander lettertype ( huidige locatie: %1% ) ", screenshots_location = "Standaard worden screenshots opgeslagen bij het configuratie bestand. Als dit niet gewenst is, kies dan hier een andere locatie.", browse_music = "Zoek naar een andere locatie voor je muziek bestand ( huidige locatie: %1% ) ", data_location = "De map waar de originele Theme Hospital installatie in staat. Deze is nodig om CorsixTH te laten werken.", browse_data = "Zoek naar een andere locatie van je Theme Hospital installatie ( huidige lacatie: %1% )", savegames_location = "Standaard worden opgeslagen spellen in de saves map bij het configuratie bestand opgeslagen. Als dit niet gewenst is, kies dan hier een andere locatie.", back = "Sluit dit menu af en ga terug naar het instellingen menu.", browse_saves = "Zoek naar een andere locatie voor je saves map ( huidige locatie: %1% ) ", browse = "Zoek naar de lacatie van de map", browse_screenshots = "Zoek naar een andere locatie voor je screenshots map ( huidige locatie: %1% ) ", not_specified = "Nog geen map ingesteld!", font_location = "Locatie van een lettertype bestand dat de Unicode karakters van je taal kan weergeven. Als dit niet is ingesteld is het niet mogelijk talen te kiezen die meer karakters nodig hebben dan het originele spel kan tonen. Bijvoorbeeld Russisch of Chinees.", reset_to_default = "Herstel de map naar de standaard locatie ( %1% )", default = "Standaard locatie.", no_font_specified = "Nog geen lettertype locatie ingesteld!", music_location = "Selecteer de locatie van je MP3 bestanden. Deze moet van te voren zijn gemaakt, zoek vervolgens hier naar de locatie.", }, debug_patient_window = { item = "Creëer een patiënt met %s", }, hotkey_window = { button_accept = "Bewaar sneltoetstoewijzingen", button_back_02 = "Ga terug naar het hoofdvenster voor sneltoetsen. Sneltoetsen die in dit venster zijn gewijzigd, kunnen daar worden geaccepteerd", button_cancel = "Herstel de wijzigingen en ga terug naar het optiemenu", button_defaults = "Herstel alle sneltoetsen naar de standaardinstellingen", button_gameSpeedKeys = "Open het venster van de sneltoetsen voor de spelsnelheid", button_recallPosKeys = "Open het venster van de sneltoetsen voor de cameraposities", caption_panels = "Open het venster om paneeltoetsen toe te wijzen", }, save_map_window = { map = "Overschrijf spel %s", new_map = "Voer een naam in voor het opslagbestand", }, custom_campaign_window = { choose_campaign = "Kies een carrière om er meer over te lezen", start_selected_campaign = "Laad het eerste scenario van deze carrière", }, } menu_debug_overlay = { byte_w_wall = " BYTE W WALL ", byte_6 = " BYTE 6 ", byte_0_1 = " BYTE 0 & 1 ", byte_7 = " BYTE 7 ", byte_5 = " BYTE 5 ", byte_floor = " BYTE FLOOR ", positions = " POSITIES ", flags = " FLAGS ", parcel = " PARCEL ", byte_n_wall = " BYTE N WALL ", none = " NONE ", heat = " TEMPERATUUR " } menu_charts = { bank_manager = " (%1%) KASBOEK ", statement = " (%1%) AFSCHRIFTEN ", staff_listing = " (%1%) PERSONEELSLIJST ", town_map = " (%1%) KAART ", casebook = " (%1%) BEHANDELINGEN ", research = " (%1%) ONDERZOEK ", status = " (%1%) STATUS ", graphs = " (%1%) GRAFIEKEN ", policy = " (%1%) BELEID ", briefing = " OPDRACHT ", } progress_report = { quite_unhappy = "De mensen zijn nogal ongelukkig. ", header = "Voortgang", very_unhappy = "De mensen zijn zeer ongelukkig. ", more_drinks_machines = "Plaats meer frisdrankautomaten. ", too_cold = "Het is veel te koud. Plaats radiatoren. ", too_hot = "Kijk naar je verwarming. Het is veel te heet. ", percentage_pop = "% bevolking", win_criteria = "Overwinningsvoorwaarden", free_build = "VRIJ BOUWEN", } dynamic_info = { --[['' - '' is hier verschillende malen vervangen door een '';''.]]-- patient = { emergency = "Noodgeval: %s", guessed_diagnosis = "Vermoede diagnose: %s ", diagnosis_progress = "Voortgang diagnose", actions = { sent_to_other_hospital = "Ergens anders naartoe verwezen", prices_too_high = "Je bent veel te duur; ik ga naar huis.", no_gp_available = "Wacht tot je een spreekkamer bouwt", waiting_for_treatment_rooms = "Wacht tot je een behandelkamer bouwt voor me", dying = "Sterft!", no_diagnoses_available = "Geen diagnoses meer; ik ga naar huis", epidemic_sent_home = "Naar huis gestuurd door de inspecteur", cured = "Genezen!", waiting_for_diagnosis_rooms = "Wacht tot je meer diagnostische kamers bouwt", epidemic_contagious = "Ik ben besmettelijk", awaiting_decision = "Wacht op je beslissing", sent_home = "Naar huis gestuurd", fed_up = "Heeft er schoon genoeg van en vertrekt", no_treatment_available = "Geen behandeling beschikbaar; ik ga naar huis", on_my_way_to = "Onderweg naar %s", queueing_for = "In de rij voor %s", epidemic_vaccinated = "Ik ben niet langer besmettelijk", }, diagnosed = "Diagnose: %s ", }, health_inspector = "Gezondheidsinspecteur", vip = "VIP", object = { times_used = "%d keer gebruikt", queue_size = "Rijlengte %d", strength = "Kracht %d", queue_expected = "Verwachte rijlengte %d", strength_extra_info = "Vermogen %d (Te verbeteren naar %d)", }, staff = { ability = "Competentie", psychiatrist_abbrev = "Psych.", actions = { waiting_for_patient = "Wacht op patiënt", wandering = "Loopt wat rond", going_to_repair = "Gaat %s repareren", heading_for = "Gaat naar %s", fired = "Ontslagen", vaccine = "Een patiënt vaccineren", }, tiredness = "Moeheid", }, } adviser = { tutorial = { hire_receptionist = "Je hebt ook een receptioniste nodig om je patiënten de weg te wijzen.", build_pharmacy = "Gefeliciteerd! Bouw nu een apotheek en neem een zuster aan, zodat je een werkend ziekenhuis hebt.", hire_doctor = "Je hebt een arts nodig om diagnoses te stellen en de zieken te behandelen.", place_receptionist = "Plaats de receptioniste ergens in je ziekenhuis.", place_windows = "Je kunt ramen op dezelfde manier als deuren plaatsen. Je hebt ze niet echt nodig, maar het houdt je personeel wel tevreden.", confirm_room = "Klik op het knipperende icoontje om je kamer open te stellen of klik op de X om een stap terug te gaan.", rotate_and_place_reception = "Klik op de rechtermuisknop om het Bureau te draaien en klik op de linkermuisknop om het te plaatsen.", build_reception = "Hallo. Ten eerste moet je ziekenhuis een receptie hebben. Klik hiervoor op de gangartikelenknop.", doctor_in_invalid_position = "Hee! Daar kun je de arts niet plaatsen.", receptionist_invalid_position = "Daar kun je de receptioniste niet neerzetten.", room_too_small_and_invalid = "De blauwdruk is te klein en staat niet op bebouwbare grond. Kom op.", window_in_invalid_position = "Dit raam bevindt zich op een onmogelijke positie. Probeer het eens ergens anders te plaatsen.", choose_doctor = "Kijk goed naar wat een arts kan voor je er een aanneemt.", build_gps_office = "Om diagnoses te kunnen stellen moet je eerst een spreekkamer bouwen.", select_doctors = "Klik op het knipperende icoontje om te zien welke artsen je kunt inhuren.", place_objects = "Klik op de rechtermuisknop om voorwerpen te draaien en op de linkermuisknop om ze te plaatsen.", select_receptionists = "Klik op het knipperende icoontje om de beschikbare receptionistes te bekijken. Het nummer onder het icoontje geeft aan uit hoeveel sollicitantes kunt kiezen.", order_one_reception = "Klik eenmaal op de knipperende regel om een receptie te bestellen.", choose_receptionist = "Kies een receptioniste met voldoende competentie en een redelijke salariseis. Klik ten slotte op het knipperende icoontje om haar aan te nemen.", place_doctor = "Plaats de arts ergens in het ziekenhuis. Zodra er een diagnose gesteld moet worden, zal hij zich naar de spreekkamer begeven.", accept_purchase = "Klik op het knipperende icoontje om de bestelling af te ronden.", place_door = "Beweeg de muis langs de muren van de blauwdruk om te bepalen waar je de deur wil hebben.", next_receptionist = "Dit is de eerste receptioniste in de lijst. Klik op het knipperende icoontje om de volgende sollicitante te bekijken.", room_in_invalid_position = "Hé! De kamer kan niet gebouwd worden; de rode vakjes geven aan waar je een andere kamer of een muur overlapt", room_big_enough = "De blauwdruk is nu groot genoeg. Laat de muisknop los en pas eventueel nog de grootte of de locatie aan.", room_too_small = "De blauwdruk is rood omdat hij te klein is. Sleep net zolang door tot de blauwdruk groot genoeg is.", click_gps_office = "Klik op de knipperende regel om de spreekkamer te kiezen.", reception_invalid_position = "De receptie is grijs omdat er iets in de weg staat. Probeer het bureau te draaien of ergens anders neer te zetten.", click_and_drag_to_build = "Om een Praktijk te bouwen moet je eerst beslissen hoe groot hij moet worden. Klik en sleep de blauwdruk uit tot de gewenste grootte.", door_in_invalid_position = "Oeps! Je kunt de deur daar niet plaatsen. Probeer het op een ander stuk muur.", object_in_invalid_position = "Dit voorwerp kan hier niet geplaatst worden. Plaats het ergens anders of draai het tot het past.", select_diagnosis_rooms = "Klik op het knipperende icoontje om de lijst met diagnosekamers te bekijken.", prev_receptionist = "Klik op het knipperende icoontje om de vorige sollicitante te bekijken.", start_tutorial = "Lees je opdracht en druk op de linkermuisknop om te beginnen.", information_window = "De hulpbox verteld je alles over die prachtige spreekkamer die je net gebouwd hebt.", }, epidemic = { hurry_up = "Als je die epidemie nu niet snel oplost zit je straks flink in de knoei. Schiet op!", serious_warning = "Deze besmettelijke ziekte ziet er ernstig uit. Je moet snel actie ondernemen!", multiple_epidemies = "Zo te zien heersen er meerdere epidemieën tegelijk. Dit kan op een enorme ramp uitlopen, dus doe er snel wat aan.", }, staff_advice = { need_handyman_machines = "Je zult conciërges moeten inhuren om je apparatuur te onderhouden.", need_doctors = "Je hebt meer artsen nodig. Zet de beste artsen in de kamers met de langste wachtrijen.", need_handyman_plants = "Je zult een conciërge moeten aannemen om de planten water te geven.", need_handyman_litter = "Mensen maken een zootje van je ziekenhuis. Huur een conciërge in om het op te ruimen.", need_nurses = "Je moet zusters aannemen. Slaapzalen en apotheken hebben zusters nodig.", too_many_doctors = "Je hebt teveel artsen. Sommigen hebben nu niets te doen.", too_many_nurses = "Ik denk dat je teveel zusters hebt aangenomen.", }, earthquake = { damage = "Die aardbeving heeft %d beschadigd en %d bezoekers getroffen.", alert = "Een aardbeving. Tijdens een aardbeving raakt je apparatuur beschadigd. Ze kunnen zelfs vernietigd worden als ze niet goed zijn onderhouden.", ended = "Poeh poeh. Dat zal de moeder geweest zijn: %d op de Schaal van Richter.", }, multiplayer = { everyone_failed = "Niemand heeft dat laatste doel gehaald. Dus iedereen mag vrolijk doorspelen!", players_failed = "De volgende speler(s) hebben het laatste doel niet gehaald: ", poaching = { in_progress = "Ik laat je nog wel weten of deze medewerker voor je wil werken.", not_interested = "Ha! Ze zijn totaal niet geïnteresseerd om voor jou te werken. Ze zijn tevreden met hun huidige baan.", already_poached_by_someone = "Dat gaat niet door! Iemand anders probeert deze medewerker al te stropen.", }, objective_completed = "Je hebt het doel behaald! Gefeliciteerd!", objective_failed = "Je hebt je doel helaas niet behaald", }, surgery_requirements = { need_surgeons_ward_op = "Om operaties uit te kunnen voeren moet je twee chirurgen aannemen, een slaapzaal en een operatiekamer bouwen.", need_surgeon_ward = "Om operaties uit te kunnen voeren moet je nog een chirurg inhuren, een slaapzaal en een operatiekamer bouwen.", }, vomit_wave = { started = "Zo te zien waart er een kotsvirus rond in je ziekenhuis. Dit had je kunnen voorkomen door je ziekenhuis schoner te houden. Misschien moet je meer conciërges aannemen.", ended = "Poeh poeh. Het ziet ernaar uit dat die kotsgolf voorbij is. Hou je ziekenhuis in het vervolg wat beter schoon.", }, level_progress = { nearly_won = "Je hebt dit level bijna gewonnen.", three_quarters_lost = "Je bent driekwart onderweg naar verlies van dit level.", halfway_won = "Je bent halverwege naar de winst van dit level.", halfway_lost = "Je bent halverwege naar verlies van dit level.", nearly_lost = "Je hebt dit level bijna verloren.", three_quarters_won = "Je bent driekwart op weg naar de winst van dit level.", dont_kill_more_patients = "Je kunt echt niet meer patiënten afmaken!", another_patient_killed = "Oh nee! Je hebt nog een patiënt vermoord. Dat zijn er nu al %d.", close_to_win_increase_value = "Je hebt bijna gewonnen, verhoog de waarde van je ziekenhuis met %d.", financial_criteria_met = "Je hebt aan alle financiële eisen van dit level voldaan. Hou je banksaldo boven de %d, en zorg ervoor dat je ziekenhuis soepel draait.", hospital_value_enough = "Hou de waarde van je ziekenhuis boven de %d en los alle andere problemen in de gaten om dit level te winnen", another_patient_cured = "Goed gedaan; nog een patiënt is genezen, dat zijn er nu al %d.", reputation_good_enough = "Oké, je reputatie is goed genoeg om dit level te winnen, hou het boven %d en los andere problemen op om te winnen", cured_enough_patients = "Je hebt genoeg van je patiënten genezen om dit level te winnen, nu moet je je ziekenhuis nog efficiënter maken om te winnen.", improve_reputation = "Je moet je reputatie met %d punten verbeteren om dit level te kunnen winnen.", }, staff_place_advice = { receptionists_only_at_desk = "Receptionistes kunnen alleen op de receptie werken.", only_psychiatrists = "Artsen kunnen alleen in de psychiatrie werken als ze gediplomeerd psychiater zijn.", only_surgeons = "Artsen kunnen alleen in de operatiekamer werken als ze chirurg zijn.", only_nurses_in_room = "Alleen zusters kunnen werken in de %s", only_doctors_in_room = "Alleen artsen kunnen werken in de %s", only_researchers = "Artsen kunnen alleen in het laboratorium werken als ze onderzoekers zijn.", nurses_cannot_work_in_room = "Zusters kunnen niet werken in de %s", doctors_cannot_work_in_room = "Artsen kunnen niet werken in de %s", }, room_forbidden_non_reachable_parts = "Als je de kamer hier bouwt zijn andere delen van het ziekenhuis onbereikbaar.", research = { machine_improved = "De %s is verbeterd door het laboratorium.", autopsy_discovered_rep_loss = "Je Auto-Autopsie machine is ontdekt. Verwacht negatieve reacties van het publiek.", drug_fully_researched = "Je onderzoek op het gebied van %s is voltooid.", new_machine_researched = "Het laboratorium heeft een %s uitgevonden.", drug_improved = "Het medicijn voor %s is verbeterd door het laboratorium.", drug_improved_1 = "%s medicijn is vebeterd door het laboratorium.", --is dit netjes in het spel? of kunnen we beter bovenstaande string kopiëren? new_available = "Er is nu een %s beschikbaar.", new_drug_researched = "Het laboratorium heeft een middel tegen %s uitgevonden.", }, boiler_issue = { minimum_heat = "Aha, daar ben je. De boiler in de kelder is kapot. De mensen in je ziekenhuis zullen het straks nogal fris krijgen.", maximum_heat = "De boiler in de kelder is op hol geslagen. De verwarming zit vast op maximum. Mensen zullen het snikheet krijgen. Plaats wat frisdrankautomaten ter compensatie.", resolved = "Goed nieuws. De boiler en verwarming doen het weer normaal. De temperatuur zou nu weer goed moeten zijn voor je personeel en patiënten.", }, competitors = { staff_poached = "Eén van je personeelsleden is gestroopt door een tegenstander.", hospital_opened = "Er is door %s een concurrerend ziekenhuis geopend.", land_purchased = "%s heeft zojuist land gekocht.", }, room_requirements = { research_room_need_researcher = "Je moet nog een arts met een onderzoeksgraad aannemen voor het laboratorium.", op_need_another_surgeon = "Je hebt nog één chirurg nodig om de operatiekamer te kunnen gebruiken.", op_need_ward = "Je moet nog een slaapzaal bouwen voor de patiënten die uit moeten rusten voor de operatie.", reception_need_receptionist = "Je moet een receptioniste aannemen om je patiënten wegwijs te maken.", psychiatry_need_psychiatrist = "Nu je een psychiatrie gebouwd hebt, zal je een psychiater moeten aannemen.", pharmacy_need_nurse = "Je zult een zuster moeten aannemen voor de apotheek.", ward_need_nurse = "Je moet nog een zuster aannemen om in deze slaapzaal te werken.", op_need_two_surgeons = "Neem twee chirurgen aan om operaties uit te kunnen voeren in de operatiekamer.", training_room_need_consultant = "Je hebt een specialist nodig om les te kunnen geven in dat klaslokaal.", gps_office_need_doctor = "Je moet een arts aannemen voor de spreekkamer.", }, goals = { win = { money = "Je hebt nog %d nodig om het financiële doel te halen voor dit level.", cure = "Genees nog %d patiënten en je hebt genoeg mensen genezen om dit level te winnen.", reputation = "Bouw je reputatie op naar %d punten om je doel te behalen.", value = "Bouw je ziekenhuis uit tot het %d waard is om dit doel te behalen.", }, lose = { kill = "Als er nog %d patiënten overlijden heb je dit level verloren!", }, }, warnings = { charges_too_low = "Je behandelingen zijn te goedkoop. Dit brengt wel mensen binnen, maar je verdient erg weinig aan ze.", charges_too_high = "Je vraagt veel geld. Op de korte termijn brengt dat geld in het laatje, maar uiteindelijk jaag je er mensen mee weg.", plants_thirsty = "Je moet een oogje houden op je planten. Ze zien er dorstig uit.", staff_overworked = "Je personeel is overwerkt. Ze worden inefficiënt en gaan fouten maken, met alle rampzalige gevolgen van dien.", queue_too_long_at_reception = "Er staan teveel mensen te wachten om een kamer toegewezen te krijgen door de receptioniste. Plaats nog een receptie en neem een receptioniste aan.", queue_too_long_send_doctor = "De rij voor de %s is te lang. Is er daar wel een arts aan het werk?", handymen_tired = "Je conciërges zijn erg moe. Laat ze uitrusten.", money_low = "Je hebt bijna geen geld meer!", money_very_low_take_loan = "Je hebt amper geld over. Je kunt een lening afsluiten, weet je.", staff_unhappy = "Je personeel is ongelukkig. Geef ze een bonus, of beter nog: geef ze een personeelsruimte! Je kunt ook je beleid aanpassen in het beleidsscherm.", no_patients_last_month = "Ik ben geschokt! Er is in de afgelopen maand geen enkele nieuwe patiënt binnengekomen.", queues_too_long = "Je wachtrijen zijn te lang.", patient_stuck = "Er is iemand verdwaald. Plan de opzet van je ziekenhuis beter.", patients_too_hot = "De patiënten krijgen het te heet. Verwijder wat radiatoren, zet de verwarming wat lager of plaats meer frisdrankautomaten.", doctors_tired = "Je artsen zijn hartstikke moe. Laat ze onmiddellijk uitrusten.", need_toilets = "Patiënten hebben toiletten nodig. Bouw ze op een plek waar mensen snel bij kunnen komen.", machines_falling_apart = "Je apparatuur valt haast uit elkaar. Stuur er snel conciërges op af!", nobody_cured_last_month = "Er is in de afgelopen maand helemaal niemand genezen.", patients_thirsty = "Mensen krijgen dorst. Misschien zou je wat frisdrankautomaten kunnen plaatsen?", nurses_tired = "Je zusters zijn moe. Laat ze uitrusten.", machine_severely_damaged = "%s is bijna onherstelbaar beschadigd.", reception_bottleneck = "Er is een opstopping bij de receptie. Neem nog een receptioniste aan.", bankruptcy_imminent = "Hé! Straks ben je nog failliet. Pas op!", receptionists_tired = "Je receptionistes zijn erg moe. Laat ze eens uitrusten.", too_many_plants = "Je hebt veel te veel planten. Het lijkt wel een regenwoud.", many_killed = "Je hebt nu %d doden op je geweten. Je weet toch wel dat het de bedoeling is dat je ze geneest, hè?", need_staffroom = "Bouw een personeelsruimte, zodat je werknemers kunnen uitrusten.", staff_too_hot = "Je personeel raakt oververhit. Zet de verwarming wat lager of verwijder radiatoren uit hun kamers.", patients_unhappy = "Patiënten hebben geen hoge pet op van je ziekenhuis. Je zou iets aan hun omgeving kunnen doen.", people_did_it_on_the_floor = "Sommige patiënten konden het niet meer ophouden. Iemand zal het toch op moeten ruimen.", patients_very_thirsty = "Patiënten hebben echt dorst; als je niet snel frisdrankautomaten neerzet zullen veel patiënten je ziekenhuis verlaten en naar huis gaan om cola te drinken.", machinery_very_damaged = "Spoed! Zorg dat een conciërge je machines gaat repareren! Ze exploderen bijna!", handymen_tired2 = "Je conciërges zijn totaal uitgeput, zorg dat ze meteen uit kunnen rusten.", desperate_need_for_watering = "Je moet echt een conciërge inhuren om de planten water te geven.", too_much_litter = "Er is een afvalprobleem, meer conciërges zouden hier tegen kunnen helpen.", place_plants4 = "Vrolijk de patiënten op met wat planten in je ziekenhuis.", change_priorities_to_plants = "Je moet de prioriteiten van je conciërges aanpassen zodat ze meer tijd besteden aan de planten.", finanical_trouble2 = "Zorg dat je wat inkomsten krijgt of je wordt ontslagen. Je zult het level verliezen als je nog %d verder in de min komt.", litter_everywhere = "Er ligt overal troep. Zet er wat conciërges op.", nurses_tired2 = "Je zusters zijn erg moe, zorg dat ze wat rust krijgen.", plants_dying = "Je planten gaan dood: ze zijn wanhopig op zoek naar water. Zorg dat je er meer conciërges op zet want patiënten houden helemaal niet van dode planten.", reduce_staff_rest_threshold = "Verkort de tijd dat je personeel moet doorwerken tussen pauzes op het beleidsscherm, zodat ze wat vaker kunnen rusten. Het is maar een idee.", more_toilets = "Je hebt meer toiletten nodig. Mensen in de rij beginnen kabouters te kleien!", hospital_is_rubbish = "Mensen zeggen openlijk dat je ziekenhuis slecht is. Als je niet oppast, zullen ze hun ziektes ergens anders mee naartoe nemen.", pay_back_loan = "Je hebt meer dan genoeg geld. Misschien kun je nu die lening afbetalen?", financial_trouble3 = "Je banksaldo is zorgelijk. Misschien moet je je inkomsten wat verhogen, je zit %d af van een faillissement.", build_toilet_now = "Bouw nu een toilet, mensen houden het niet meer! Niet lachen, dit is serieus.", more_benches = "Misschien moet je meer bankjes plaatsen, zieke mensen blijven namelijk niet graag staan", many_epidemics = "Het lijkt erop dat er meer dan één epidemie tegelijk plaatsvind. Dit zou een enorme ramp kunnen worden dus doe er snel iets aan.", place_plants_to_keep_people = "Mensen gaan weg. Als je wat planten plaatst, zou dat kunnen helpen.", patients_thirsty2 = "Mensen klagen over dorst. Je zou wat frisdrankautomaten neer moeten zetten of bestaande automaten dichter bij de mensen moeten zetten.", people_freezing = "Onvoorstelbaar. In deze tijd van centrale verwarming vriezen sommige patiënten dood. Bouw radiatoren om het weer warmer te krijgen in je ziekenhuis en zet de thermostaat hoger.", patients_very_cold = "Patiënten hebben het erg koud. Probeer de thermostaat hoger te zetten of plaats meer radiatoren.", build_toilets = "Bouw nu meteen een toilet of je zult iets onplezierigs zien, om over de stank nog maar te zwijgen.", place_plants2 = "Mensen lopen weg. Wat meer planten zou ze misschien op andere gedachten kunnen brengen.", staff_tired = "Je personeel is helemaal kapot. Als je ze niet laat uitrusten in een personeelsruimte kunnen ze gek worden van de stress.", place_plants3 = "Patiënten worden ongelukkig, zet wat meer planten neer om ze op te vrolijken.", staff_unhappy2 = "Je personeel is over het algemeen ongelukkig, dat betekend dat ze binnenkort om een hoger salaris zullen vragen.", cash_low_consider_loan = "Je hoeveelheid cash is erg laag, heb je al eens aan een lening gedacht?", financial_trouble = "Je zit zwaar in de financiële problemen, los dit zo snel mogelijk op! Als je nog %d verliest is al je moeite voor niks geweest!", doctors_tired2 = "Je doktoren zijn ongelofelijk moe, laat ze nu meteen rusten.", patient_leaving = "Er gaat een patiënt weg. De reden? Je slecht draaiende ziekenhuis.", machinery_damaged2 = "Je moet een conciërge aannemen om je machines te laten repareren.", patients_leaving = "Patiënten gaan weg. Verbeter het ziekenhuis voor je bezoekers door bijvoorbeeld planten, bankjes en frisdrankautomaten te plaatsen.", epidemic_getting_serious = "Die besmettelijke ziekte is serieus. Je moet er snel iets aan doen!", machinery_damaged = "Repareer je machines snel. Het zal niet lang meer duren voordat ze uit elkaar gaan vallen.", people_have_to_stand = "Zieke en zwakke mensen moeten blijven staan? Zorg dat ze ergens kunnen zitten!", build_staffroom = "Bouw meteen een personeelsruimte. Je personeel werkt te hard, ze storten bijna in! Kom op!", machinery_slightly_damaged = "Je machines zijn enigszins beschadigd geraakt. Vergeet niet om ze zo af en toe te onderhouden.", patients_getting_hot = "Patiënten hebben het te warm. Probeer de thermostaat wat lager te zetten of verwijder wat radiatoren.", machinery_deteriorating = "Je machines zijn zojuist behoorlijk achteruit gegaan, doordat ze te veel gebruikt worden. Hou een oogje in het zeil.", litter_catastrophy = "Het afvalprobleem heeft epische proporties aangenomen. Trek een blik conciërges open en zet ze aan het werk!", staff_very_cold = "Personeel klaagt over de kou. Zet de thermostaat hoger of plaats meer radiatoren.", deal_with_epidemic_now = "Als je die epidemie niet snel oplost zal je de gevolgen moeten ondervinden. Aan het werk!", patients_really_thirsty = "Patiënten hebben erg veel dorst. Plaats meer frisdrankautomaten of verplaats bestaande automaten naar de langste rijen.", some_litter = "Conciërges kunnen die rommel opruimen voordat het echt een probleem wordt.", patients_annoyed = "Mensen hebben genoeg van de manier waarop je dit ziekenhuis bestuurd en ik kan ze geen ongelijk geven. Verbeter of verdwijn!", receptionists_tired2 = "Je receptionistes zijn erg vermoeid, laat ze zo snel mogelijk rusten.", doctor_crazy_overwork = "Oh nee! Een van je artsen is overspannen door overwerk. Misschien komt hij er nog bovenop als je hem meteen laat rusten.", falling_1 = "Hé! Daar kan ik niet om lachen, kijk uit waar je met die muis klikt; straks raken er mensen gewond!", falling_2 = "Stop daarmee, zou jij dat leuk vinden?", falling_3 = "Au, dat doet vast zeer, is er een dokter in de buurt?!", falling_4 = "Dit is een ziekenhuis, geen pretpark!", falling_5 = "Dit is niet de plek om mensen omver te duwen, je ziet toch dat ze ziek zijn?!", falling_6 = "Het is hier geen bowlingbaan! Zieken horen niet zo behandeld te worden!", no_desk = "Je zult op enig moment wel een receptiebalie moeten bouwen en een receptioniste moeten aannemen!", no_desk_1 = "Als je wilt dat patiënten je ziekenhuis bezoeken, moet je een receptioniste inhuren en een receptiebalie bouwen, zodat ze haar werk kan doen!", no_desk_2 = "Lekker gedaan, dit moet een nieuw record zijn: bijna een jaar zonder patiënten! Als je hier manager wilt blijven, neem dan nu een receptioniste aan en bouw een receptiebalie waar ze kan werken!", no_desk_3 = "Fantastisch, bijna een jaar voorbij en je hebt nog steeds geen bemande receptie. Hoe denk je dat je patiënten gaat krijgen? Los het onmiddellijk op, en stop met dat gerommel!", no_desk_4 = "Een receptioniste moet haar eigen werkplek hebben om de patiënten te begroeten bij binnenkomst.", no_desk_5 = "Nou, het werd tijd! Je zult binnekort een paar patiënten zien arriveren!", no_desk_6 = "Je hebt een receptioniste aangenomen, dus zou je niet een receptiebalie bouwen waar ze haar werk kan doen?", no_desk_7 = "Je hebt een receptiebalie gebouwd, dus zou je niet een receptioniste aannemen? Je zult geen patiënten zien binnenkomen tot je dit opgelost hebt!", cannot_afford = "Je hebt niet genoeg geld op je rekening staan om dit personeelslid aan te nemen.", cannot_afford_2 = "Je hebt niet genoeg geld op de bank staan om dit te kopen!", research_screen_open_1 = "Je moet eerst een laboratorium bouwen, voordat je het onderzoeksscherm kunt bekijken.", research_screen_open_2 = "Onderzoek is in dit level nog niet toegankelijk.", researcher_needs_desk_1 = "Een onderzoeker heeft een bureau nodig om aan te werken.", researcher_needs_desk_2 = "Je onderzoeker is blij dat je hem op pauze laat gaan. Als het je bedoeling was om meer onderzoekers tegelijk te laten werken, dan moet je voor elk van hen een bureau neerzetten zodat ze hun werk kunnen doen.", researcher_needs_desk_3 = "Elke onderzoeker heeft zijn eigen bureau nodig om aan te werken.", nurse_needs_desk_2 = "Je zuster is blij dat je haar een pauze gunt. Als het je bedoeling was om meer zusters tegelijk in de slaapzaal te laten werken, dan moet je voor elk van hen een bureau neerzetten.", nurse_needs_desk_1 = "Elke zuster heeft haar eigen bureau nodig om aan te werken.", patient_not_paying = "Een patiënt is vertrokken zonder te betalen voor %s omdat het te duur is!", cannot_afford_machine = "Je hebt minstens $%1% op de bank nodig om een nieuwe %2% te kunnen betalen!", another_desk = "Je moet een andere balie bouwen voor de nieuwe receptioniste.", fair_prices = "Je kosten voor %s lijken eerlijk en evenwichtig", low_prices = "Je rekent te weinig voor %s. Dit zal mensen naar je ziekenhuis brengen, maar je zult er niet veel winst uit halen.", high_prices = "Je kosten voor %s zijn hoog. Dit zal op korte termijn veel winst opleveren, maar uiteindelijk zul je mensen wegjagen.", }, placement_info = { door_can_place = "Je kunt hier een deur plaatsen als je wilt.", window_can_place = "Jahoor, je kunt hier een raam plaatsen.", door_cannot_place = "Sorry, maar je kunt hier geen deur plaatsen.", object_can_place = "Je kunt dit voorwerp hier plaatsen.", reception_can_place = "Je kunt de receptie hier plaatsen.", staff_cannot_place = "Je kunt hier geen werknemer neerzetten. Sorry.", staff_can_place = "Je kunt hier een werknemer neerzetten. ", object_cannot_place = "Hé, je kunt dat voorwerp daar niet plaatsen.", room_cannot_place = "Je kunt hier de kamer niet bouwen.", room_cannot_place_2 = "De kamer kan hier niet gebouwd worden.", window_cannot_place = "Eh, dat raam kun je daar niet plaatsen", reception_cannot_place = "Je kunt daar geen receptie plaatsen.", }, praise = { many_benches = "Patiënten hebben nu genoeg zitplaats. Netjes.", many_plants = "Heerlijk. Je hebt planten zat. Dat zullen je patiënten fijn vinden.", patients_cured = "%d patiënten genezen.", plants_are_well = "Oh mooi. Je zorgt goed voor je planten, prachtig.", few_have_to_stand = "Bijna niemand hoeft te blijven staan in jouw ziekenhuis. De patiënten zullen daar blij mee zijn", plenty_of_benches = "Er is voldoende zitplaats, dus dat is geen probleem", plants_thriving = "Erg goed. Je planten bloeien prachtig en zien er fantastisch uit. Als dat zo doorgaat kun je een prijs verwachten.", }, information = { larger_rooms = "Grotere kamers strelen het ego van het personeel, waardoor ze beter gaan werken.", extra_items = "Extra voorwerpen in de kamer zorgen voor comfort, waardoor je personeel beter gaan werken.", epidemic = "Je hebt een besmettelijke ziekte in je ziekenhuis. Daar moet je meteen achteraan!", promotion_to_doctor = "Eén van je ASSISTENTEN is zojuist BASISARTS geworden", emergency = "We hebben een noodgeval! Hup hup hup!", patient_abducted = "Eén van je patiënten wordt ontvoerd door aliens!", first_cure = "Goed werk! Je hebt zojuist je eerste patiënt genezen.", promotion_to_consultant = "Eén van je BASISARTSEN is zojuist SPECIALIST geworden.", handyman_adjust = "Je kunt de conciërges effectiever laten werken door hun prioriteiten aan te passen.", promotion_to_specialist = "Een van je artsen is gepromoveerd tot %s.", initial_general_advice = { rats_have_arrived = "Ratten hebben zich in je ziekenhuis genesteld. Schiet ze dood met je muis!", autopsy_available = "De Auto-Autopsie machine is uitgevonden. Als je een lastige patiënt hebt, kun je ze hiermee 'kwijtraken' en onderzoek doen op hun lichaam. Wees gewaarschuwd: deze machine is erg berucht.", --[[''Berucht'' is toch een goede vertaling voor ''controversieel?'' Controversieel kent namelijk niet iedereen.]]-- first_patients_thirsty = "Er zijn dorstige mensen in je ziekenhuis. Plaats een frisdrankautomaat.", research_now_available = "Je hebt je eerste laboratorium gebouwd. Nu kun je naar het onderzoeksscherm gaan.", psychiatric_symbol = "Artsen die psychiatrie hebben gestudeerd dragen het symbool: |", decrease_heating = "Mensen hebben het te heet in je ziekenhuis. Draai de verwarming wat lager. Dit kun je doen bij de kaart.", surgeon_symbol = "Artsen die kunnen opereren dragen het symbool: {", first_emergency = "Patiënten van een Noodgeval hebben een blauwe sirene boven hun hoofd. Genees ze voor ze sterven of de tijd is voorbij.", first_epidemic = "Er is een epidemie gaande! Beslis of je het in de doofpot wil stoppen of wil opbiechten.", taking_your_staff = "Iemand probeert je personeel weg te stropen. Je zult moeten vechten om ze bij je te houden.", place_radiators = "Mensen in je ziekenhuis hebben het koud. Je kunt meer radiatoren in het gangartikelen menu kopen.", epidemic_spreading = "Er waart een besmettelijke ziekte rond. Probeer de geïnfecteerde patiënten te genezen voor ze kunnen vertrekken.", research_symbol = "Dokters die onderzoek kunnen doen dragen dit symbool: }", machine_needs_repair = "Er is een apparaat dat gerepareerd moet worden. Zoek naar een rokend apparaat en klik erop. Klik dan op de conciërgeknop.", increase_heating = "Mensen hebben het koud. Zet de verwarming hoger in het kaartscherm.", first_VIP = "Straks komt er voor het eerst een VIP langs. Zorg ervoor dat de VIP geen onhygiënische dingen of ongelukkige patiënten ziet.", }, patient_leaving_too_expensive = "Een patiënt is vertrokken zonder te betalen voor je %s. Schijnbaar is het te duur.", vip_arrived = "Let op; %s is zojuist gearriveerd! Zorg dat alles gladjes verloopt, zodat hij tevreden is.", epidemic_health_inspector = "Nieuws van je epidemie is aangekomen bij het Ministerie van Volksgezondheid. Verwacht een bezoekje van de inspectie.", first_death = "Je hebt zojuist je eerste patiënt gedood. Hoe voelt dat?", pay_rise = "Een personeelslid dreigt op te stappen. Kies of je de eis inwilligt of hem ontslaat. Klik op het bericht linksonder om te zien welk personeelslid dreigt ontslag te nemen.", place_windows = "Ramen plaatsen zorgt voor lichtere kamers en komt het moraal van je werknemers ten goede.", fax_received = "Het icoontje dat zojuist in de linkeronderhoek omhoog is gekomen, betekent dat er een belangrijk stuk informatie te lezen valt of dat er een beslissing moet worden genomen.", }, build_advice = { placing_object_blocks_door = "Dat voorwerp daar plaatsen, zou de toegang tot een deur blokkeren.", blueprint_would_block = "Met deze blauwdruk zou een andere kamer worden geblokkeerd. Probeer een andere grootte of een andere locatie!", door_not_reachable = "Zo kunnen mensen niet bij een deur komen. Hou je koppie erbij.", blueprint_invalid = "Dat is geen geldige blauwdruk.", }, cheats = { th_cheat = "Gefeliciteerd, je hebt de cheats ontdekt!", roujin_on_cheat = "Roujin's uitdaging geactiveerd, succes...", roujin_off_cheat = "Roujin's uitdaging gedeactiveerd.", norest_on_cheat = "Oh nee! Het lijkt erop dat je personeel te veel cafeïne heeft geconsumeerd en nu geen behoefte meer heeft aan rust.", norest_off_cheat = "Oef! Het lijkt erop dat die buzz eindelijk is verdwenen. Het personeel zal nu goed rusten.", }, staff_place_advice = { not_enough_lecture_chairs = "Elke student-arts heeft een collegestoel nodig om te zitten!", } } room_descriptions = { ultrascan = { [1] = "Echoscopie//", [2] = "De echoscopie is zo'n beetje het ultieme in diagnostische apparatuur. Het kost een aardige duit, maar dan heb je ook wat als je gaat voor fantastische diagnoses in je ziekenhuis.//", [3] = "De echoscopie wordt gebruikt door een arts. Het moet ook onderhouden worden. ", }, gp = { [1] = "Spreekkamer//", [2] = "Dit is het fundament van alle diagnoses. Nieuwe patiënten komen hier langs zodat er gekeken kan worden wat er met hen aan de hand is. Vanaf hier worden ze doorverwezen naar andere diagnostische kamers of naar een kamer waar ze genezen kunnen worden. Als de eerste spreekkamer te druk wordt, zal je er waarschijnlijk nog één willen bouwen. Hoe groter de kamer, hoe meer voorwerpen je erin kwijt kunt, en hoe beter de arts in functie zich zal voelen. Dit geldt trouwens voor alle kamers.//", [3] = "De spreekkamer wordt gebruikt door een arts. ", }, fracture_clinic = { [1] = "Gipskamer//", [2] = "Hier worden patiënten die de pech hebben een Botfactuur te hebben opgelopen geholpen. De gipsverwijderaar gebruikt krachtige industriële lasers om verhard gips weg te snijden, met slechts een kleine martelgang voor de patiënt.//", [3] = "De gipskamer heeft een zuster nodig. Het moet ook eens in de zoveel tijd onderhouden worden. ", }, tv_room = { [1] = "TV ROOM NOT USED", }, inflation = { [1] = "Inflatiekliniek//", [2] = "Patiënten met de pijnlijke doch grappige plofkop worden naar de inflatiekliniek gestuurd, waar het opgeblazen hoofd wordt doorgeprikt en meteen weer opgeblazen tot de juiste luchtdruk is bereikt.//", [3] = "De inflatiekliniek heeft een arts nodig. Het moet ook in de gaten worden gehouden door een conciërge. ", }, jelly_vat = { [1] = "Gelatinekliniek//", [2] = "Patiënten die tot de lachwekkende ziekte gelatinis zijn overgeleverd blubberen zichzelf naar de gelatinekliniek, waar ze in een gelatinetank worden geplaatst. Dit geneest ze op een manier die zelfs de medische wetenschap nog niet helemaal duidelijk is.//", [3] = "De gelatinekliniek heeft een arts nodig, en het waakzame oog van een conciërge voor onderhoud. ", }, scanner = { [1] = "Scanner//", [2] = "Met de moderne scanner kan er een nauwkeurige diagnose gesteld worden. Wanneer de diagnose is afgerond gaat de patiënt weer naar de spreekkamer voor verdere behandelingen.//", [3] = "De scanner heeft zowel een arts als onderhoud nodig. ", }, blood_machine = { [1] = "Bloedmachine//", [2] = "De bloedmachine is een diagnosemachine die de bloedcellen van een patiënt analyseert om te zien wat er mis is.//", [3] = "De bloedmachine wordt gebruikt door een arts. Het heeft ook onderhoud nodig. ", }, pharmacy = { [1] = "Apotheek//", [2] = "Patiënten die behandeld worden met een medicinaal drankje brengen een bezoekje aan de apotheek. Hoe meer geneesmiddelen er worden uitgevonden, hoe drukker het hier zal worden. Waarschijnlijk zal je later nog een apotheek willen bouwen.//", [3] = "Alleen zusters kunnen in een apotheek werken. ", }, cardiogram = { [1] = "Cardio//", [2] = "Patiënten gaan hier naar toe voor controle en diagnose. Daarna gaan ze terug naar de spreekkamer om zich te laten behandelen.", [3] = "De cardio heeft een arts en onderhoud nodig. ", }, ward = { [1] = "Slaapzaal//", [2] = "Patiënten verblijven hier kort voor observatie door een zuster. Ze rusten hier ook uit als ze zich klaar moeten maken voor een operatie.//", [3] = "De slaapzaal heeft een zuster nodig. ", }, psych = { [1] = "Psychiatrie//", [2] = "Patiënten die een psychisch probleem hebben worden naar de psychiatrie gestuurd voor therapie. psychiaters kunnen ook diagnoses stellen. Als een patiënt aan een geestelijk probleem lijdt, kunnen ze met behulp van de trouwe ligbank de patiënt behandelen.//", [3] = "De psychiatrie heeft een arts nodig die een diploma heeft voor psychiater. ", }, staff_room = { [1] = "Personeelsruimte//", [2] = "Op den duur worden je personeelsleden moe en moeten ze uitrusten. Ze gaan dan naar deze kamer toe zodat ze later weer met frisse moed en energie aan de slag kunnen. Personeelsleden die moe zijn gaan langzamer werken, fouten maken, meer geld vragen en zullen uiteindelijk ontslag nemen. Een personeelsruimte met genoeg ruimte is dus het geld en de ruimte waard. Richt de kamer zo in dat er genoeg mensen tegelijk gebruik kunnen maken van de kamer. ", }, operating_theatre = { [1] = "Operatiekamer//", [2] = "De operatiekamer is onmisbaar in een ziekenhuis. Patiënten met verschillende lichamelijke kwalen kunnen hier worden geopereerd door twee chirurgen. Het is van belang dat de operatiekamer groot genoeg is en dat de juiste apparatuur aanwezig is.//", [3] = "Om de operatiekamer te kunnen gebruiken moet je twee chirurgen aannemen. ", }, training = { [1] = "Klaslokaal//", [2] = "Je assistenten en basisartsen kunnen waardevolle ervaring opdoen en kwalificaties behalen door in dit lokaal te studeren onder een specialist. Deze specialist geeft zijn kennis van chirurgie, psychiatrie en/of onderzoek door aan de leerlingen. Artsen die al deze kwalificaties hebben zullen leren hoe ze hun vak nog beter kunnen uitvoeren.//", --[[''en/of:'' wordt de ''/'' hierbij getoond in het spel?]]-- [3] = "Het klaslokaal heeft een specialist en leerlingen nodig. ", }, dna_fixer = { [1] = "DNA hersteller//", [2] = "Patiënten waarmee gerotzooid is door bewoners van een andere wereld moeten hun DNA laten vervangen in deze kamer. De DNA reparatiemachine is een ingewikkeld en duur instrument en er zal altijd, gewoon voor het geval dat, een brandblusser bij de hand gehouden moeten worden.//", [3] = "De DNA reparatiemachine heeft onderhoud nodig van een conciërge. Alleen een arts met een onderzoeksgraad kan van deze machine gebruik maken. ", }, research = { [1] = "Laboratorium//", [2] = "Hier worden nieuwe medicijnen en behandelingen uitgevonden. Dit belangrijke onderdeel van je ziekenhuis zal je beter in staat stellen je patiënten te genezen met als resultaat dat er meer patiënten zijn die je ziekenhuis gezond zullen verlaten.//", [3] = "Het laboratorium heeft een arts met een onderzoeksgraad nodig. ", }, hair_restoration = { [1] = "Haarrestauratiekliniek//", [2] = "Patiënten die last hebben van extreme kaalheid worden naar de haarrestaurateur gestuurd. Een arts zal met deze machine het hoofd van de patiënt van een frisse, nieuwe coupe voorzien.//", [3] = "De haarrestauratie heeft een arts nodig. Ook moet een conciërge zo nu en dan wat onderhoud plegen. ", }, general_diag = { [1] = "Algemene diagnose//", [2] = "Patiënten die een verdere diagnose moeten ondergaan worden hier naartoe gestuurd voor controle. Als men er in de spreekkamer niet achter komt wat er mis is, zal dit na de algemene diagnose vaak wel lukken. Na deze kamer gaan ze terug naar de spreekkamer om de resultaten te laten analyseren.//", [3] = "Algemene diagnose heeft alleen een arts nodig. ", }, electrolysis = { [1] = "Elektrolyse//", [2] = "Patiënten met pilitis worden naar deze kamer gestuurd waar een speciale machine, de elektrolyseerder, de haren uitrukt en de poriën elektrisch sluit met een substantie die veel weg heeft van beton.//", [3] = "De elektrolysekamer wordt gebruikt door een arts en onderhouden door een conciërge. ", }, slack_tongue = { [1] = "Lamme tongkliniek//", [2] = "Patiënten waarvan in de spreekkamer wordt vastgesteld dat ze lijden aan lamme tong, worden naar deze kliniek gestuurd voor een behandeling. De arts gebruikt hier een technisch hoogstandje om de tong uit te rekken en het overtollige spierweefsel weg te snijden. Hierna mag de patiënt weer volledig gezond zijn of haar weg naar huis vinden.//", [3] = "De lamme tongkliniek heeft een arts nodig. Het moet ook zo nu en dan onderhouden worden door een conciërge. ", }, toilets = { [1] = "Toiletten//", [2] = "Ook patiënten voelen af en toe in hun binnenste dat het tijd is om een bruine trui te breien. Dit kunnen ze doen op je comfortabele toiletten. Als je veel bezoekers verwacht, kun je extra wasbakken en toiletten bouwen. Soms zal je meerdere faciliteiten willen bouwen verspreid over het ziekenhuis, zodat iedereen snel zijn behoefte kan doen. ", }, no_room = { [1] = "", }, x_ray = { [1] = "Röntgenkamer//", [2] = "Het röntgenapparaat maakt met speciale stralen een foto van het binnenste van de patiënt zodat ze een goed idee hebben van wat er met hem aan de hand is.//", [3] = "De röntgenkamer heeft een arts nodig. Ook moet het af en toe nagekeken worden door een conciërge. ", }, decontamination = { [1] = "Ontsmettingskliniek//", [2] = "Patiënten die aan Straling zijn blootgesteld worden snel naar de ontsmettingskliniek doorverwezen. Deze kamer heeft een ontsmettingscabine die de patiënt reinigt van al die verschrikkelijke radioactiviteit.//", [3] = "De ontsmettingscabine heeft een arts nodig voor gebruik en een conciërge voor onderhoud. ", }, } introduction_texts = { level17 = "Nog een laatste waarschuwing: hou een oogje op je reputatie. Je reputatie is namelijk iets wat patiënten van heinde en verre naar je ziekenhuis laat komen. " .. "Als je niet teveel mensen doodt en ze redelijk gelukkig houdt, zou je niet al teveel problemen moeten hebben met dit level!//" .. "En nu mag je het zelf opknappen. Veel succes ermee!", level1 = "Welkom in je eerste ziekenhuis!//" .. "Zorg dat de boel op gang komt door een receptie te plaatsen en een spreekkamer te bouwen. Neem ook een receptioniste en een arts in dienst. " .. "Wacht dan tot er mensen langskomen. " .. "Het is een goed idee om een psychiatrische afdeling te bouwen en een arts in te huren met de benodigde kwalificaties. " .. "Een apotheek en een zuster zijn essentieel voor het genezen van je patiënten. " .. "Kijk uit voor ernstige gevallen van plofkop. Een inflatiekliniek lost deze probleempjes op. " .. "Genees, om de spits af te bijten, 10 mensen en hou je reputatie boven de 200.", level9 = "Nu je de kas van het ministerie flink hebt gespekt en de minister dankzij jouw donaties vrolijk in zijn splinternieuwe limousine rondrijdt, kun je nu weer terug naar je echte taak: het bouwen van een ziekenhuis dat niet alleen goed draait maar ook duidelijk om haar arme en zieke patiënten geeft. " .. "Verwacht dat er een boel problemen de kop opsteken. " .. "Als je genoeg kamers en een goed getrainde staf hebt, zal je die problemen makkelijk het hoofd moeten kunnen bieden. " .. "Je ziekenhuis moet uiteindelijk $200,000 waard zijn. Verzamel ook een comfortabele $400.000 op je bankrekening. " .. "Met minder dan dat kun je het level niet uitspelen.", level2 = "Er zijn hier in de omgeving een stuk meer ziektes. " .. "Zet je ziekenhuis zo op dat je de grotere hoeveelheid patiënten kunt behapstukken en bouw ook nog een laboratorium. " .. "Hou je ziekenhuis schoon en je reputatie zo hoog mogelijk. Je zult te maken krijgen met ziektes zoals lamme tong, dus je hebt een lamme tongkliniek nodig. " .. "Je hebt ook een cardio nodig zodat je betere diagnoses kunt stellen en nieuwe ziektes kunt ontdekken. " .. "Beide kamers moeten worden onderzocht voor je ze kunt bouwen. Je kunt nu ook extra gebouwen kopen om je ziekenhuis uit te breiden. Gebruik hier het kaartscherm voor. " .. "Probeer een reputatie van 300 te behalen, een saldo van 10,000 op de teller te hebben staan en 40 mensen te genezen.", level7 = "Je wordt in de gaten gehouden door het Ministerie van Volksgezondheid, dus zorg ervoor dat je flinke winst draait en dat je reputatie constant hoog blijft. " .. "We kunnen ons geen doden veroorloven; dat is slecht voor zaken. " .. "Zorg dat je personeel in vorm is en dat je alle apparatuur hebt die nodig is. " .. "Zorg voor een reputatie van 600 en een saldo $200.000.", level5 = "Dit wordt een druk ziekenhuis met een grote variatie aan ziektebeelden. " .. "Je artsen komen allemaal net van school af, dus bouw een klaslokaal en geef ze een opleiding tot een acceptabel niveau. " .. "Je hebt maar drie specialisten om de rest van je personeel op te leiden, dus hou ze tevreden. " .. "Daarbij is je ziekenhuis gebouwd op de San Androïde-breuk. " .. "Aardbevingen kunnen dus elk moment toeslaan. " .. "Deze zullen je machines beschadigen en je goedlopende ziekenhuis flink verstoren. " .. "Bouw je reputatie op tot boven de 400 en zorg voor een nette $50.000 op je bankrekening. Zorg daarnaast dat je 200 patiënten geneest.", level4 = "Hou al je patiënten tevreden en werk ze zo efficiënt mogelijk af. Voorkom sterfgevallen zoveel mogelijk." .. "Je reputatie staat op het spel, dus hou die zo hoog mogelijk. " .. "Maak je niet al teveel zorgen over geld; dat komt wel als die o zo belangrijke reputatie groeit. " .. "Je kunt nu je ook artsen trainen, zodat ze beter gekwalificeerd zullen zijn. " .. "Waarschijnlijk zal je heel wat patiënten tegenkomen die nogal doorzichtig zijn. " .. "Bouw je reputatie op tot deze de 500 heeft bereikt.", --[[ Level 13 and 14 are rat shooting galleries and are thus not available through the File menu as of yet. --]] level14 = "Je hebt nog een uitdaging gekregen; een compleet onverwacht verrassingsziekenhuis! " .. "Als je hier een succes van kunt maken ben je de winnaar van alle winnaars. " .. "Maar denk niet dat het een eitje is. Het is de moeilijkste opdracht die je ooit zult aannemen. " .. "Veel succes!", --[[ Level 15 is most likely just removed content. I translated it as usual just in case the team finds something to do with it. --]] level15 = "Goed, dat is dus de basis van een ziekenhuis bouwen.//" .. "Je artsen zullen alle hulp nodig hebben die ze kunnen gebruiken bij het stellen van diagnoses. Je kunt ze helpen " .. "door meerdere diagnostische kamers te bouwen, zoals de algemene diagnose.", level8 = "Het is aan jou om het meeste efficiënte ziekenhuis op te zetten voor zo weinig mogelijk geld. " .. "De mensen zitten hier goed in de slappe was, dus pers zoveel mogelijk geld uit ze als mogelijk is. " .. "Ja, mensen genezen is heel leuk, maar je hebt het geld dat ze binnenbrengen echt NODIG. " .. "Schudt die zieke mensen dus maar flink uit. " .. "Verzamel een fortuin van $300.000 om dit level uit te spelen.", level13 = "Je fantastische werk als directeur is ondertussen bij de Speciale Geheime Divisie van de Geheime Speciale Dienst bekend. " .. "Ze hebben een bonus voor je; er is een ziekenhuis geïnfecteerd met ratten en ze hebben een echte Terminator nodig. " .. "Vermorzel zoveel mogelijk ratten voordat de conciërges de boel hebben opgeruimd. " .. "Denk je dat je die taak aankunt?", level16 = "Zodra je wat diagnoses hebt gesteld zal je behandelkamers en klinieken moeten bouwen om voor de mensen te zorgen. Een goede om mee te beginnen is de apotheek. " .. "Je moet ook een zuster inhuren zodat ze de verschillende medicijnen kan toedienen.", level6 = "Gebruik al je kennis om je ziekenhuis soepel te laten draaien, een gezonde winst te maken en alle ziektes te genezen die de mensen met zich meedragen. " .. "Wees je ervan bewust dat de atmosfeer hier erg geschikt is voor het overdragen van bacteriën en infecties. " .. "Hou je ziekenhuis dus schoon, tenzij je een lange rits van epidemieën onder je patiënten wilt brengen. " .. "Zorg ervoor dat je $150.000 verdient en dat je ziekenhuis meer dan $140.000 waard is.", level12 = "Dit is de moeder van alle uitdagingen. " .. "Het ministerie is zo onder de indruk van je succes, dat ze je de hoogste positie hebben aangeboden. Ze willen iemand hebben die nog een ultiem ziekenhuis kan bouwen, veel geld kan verdienen en een fantastische reputatie kan opbouwen. " .. "Je wordt verwacht alle, maar dan ook echt alle ziektes te kunnen genezen en alle prijzen in de wacht te slepen. " .. "Denk je dat je dat aankunt?" .. "Verdien $650.000, genees 750 mensen en verdien krijg een reputatie van 800 om dit te winnen.", level3 = "Dit keer bouw je een ziekenhuis in een rijke buurt. " .. "Het Ministerie van Volksgezondheid vraagt een gezonde winst van je. " .. "Je zult eerst een goede reputatie moeten opbouwen, maar schakel zodra je ziekenhuis volloopt over op zoveel mogelijk geld binnenhalen. " .. "Er kunnen zich ook noodgevallen voordoen. " .. "Dit zijn gevallen waarin er meerdere patiënten binnenkomen met dezelfde ziekte. " .. "Als je ze allemaal binnen een bepaalde tijd geneest, zit er een vette bonus aan vast en gaat je reputatie erop vooruit. " .. "Ziektes als het King Complex kunnen voorkomen en er wordt aangeraden om wat geld opzij te zetten voor een operatiekamer in de buurt van een slaapzaal. " .. "Verdien $20.000 om het level te halen.", level10 = "Het ministerie vraagt nu niet alleen dat je alle ziektes in deze buurt aanpakt, maar ook dat je je concentreert op de efficiëntie van je medicijnen. " .. "Er zijn wat klachten binnengekomen van Ofziek, de waakhond van de gezondheidszorg, dus als je goed over wil komen, zorg je ervoor dat je medicijnen goed werken. " .. "Zorg ook dat er niets te klagen valt over je ziekenhuis zelf. Hou die sterfgevallen zeldzaam. " .. "Hint: Hou wat ruimte vrij voor een gelatinetank. " .. "Ontwikkel al je medicijnen door tot ze ten minste 80 procent effectief zijn, behaal een reputatie van 650 en behaal een saldo van $500.000. ", level11 = "Je hebt de kans gekregen het ultieme ziekenhuis te bouwen. " .. "Dit is een zeer prestigieuze omgeving, en het ministerie wil een zo goed mogelijk ziekenhuis zien. " .. "We verwachten dat je flink geld binnenhaalt, een fantastische reputatie hebt en elke situatie aan kunt. " .. "Dit is een belangrijke taak. " .. "Je bent heel wat als je dit lukt. " .. "Opmerkenswaardig is dat er UFO's in de omgeving gezien zijn. Zorg ervoor dat je personeel klaar is voor onverwachte bezoekers. " .. "Je ziekenhuis moet $240.000 waard zijn en je moet $500.000 op de bank hebben staan. Ook moet je reputatie minimaal 700 bedragen.", level18 = "", demo = "Welkom in het demo ziekenhuis!//" .. "Jammer genoeg bevat de demo versie buiten zelfgemaakte levels alleen dit ziekenhuis, maar er is meer dan genoeg te doen om je voorlopig bezig te houden! " .. "Je zult verschillende kwalen tegenkomen die verschillende ruimtes nodig hebben om genezen te worden, af en toe kunnen zich noodgevallen voordoen, en je zult nieuwe ruimtes uit moeten vinden met het laboratorium. " .. "Jouw doel is om $100,000 te verdienen, de waarde van je ziekenhuis te verhogen naar $70,000 en een reputatie van 700 te behalen, terwijl je 75% van je patiënten geneest. " .. "Zorg er voor dat je reputatie niet lager wordt dan 300 en dat je niet meer dan 40% van je patiënten vermoord, anders zal je ontslagen worden!//" .. "Succes!", } humanoid_name_starts = { [1] = "GOUD", [2] = "HOOGE", [3] = "EEN", [4] = "BENE", [5] = "BAN", [6] = "BILT", [7] = "WIJDE", [8] = "WATER", [9] = "POOT", [10] = "KONINGS", [11] = "VAN BAR", [12] = "DE PET", [13] = "MAR", [14] = "BAAI", [15] = "WARS", [16] = "RIDDER", [17] = "VAN KRAB", [18] = "VIS", [19] = "WATER", [20] = "MOLEN", [21] = "DE BIJ", [22] = "VEEN", [23] = "RICHT", [24] = "SCHOOTS", [25] = "BOERE", [26] = "VAN PRIJK", [27] = "KOERS", [28] = "WIT", [29] = "BINNENS", [30] = "BON", [31] = "VD POOG", [32] = "VAN REGT", [33] = "VD KERK", } humanoid_name_ends = { [1] = "SMID", [2] = "WIJK", [3] = "WEGE", [4] = "SEN", [5] = "TEN", [6] = "VELD", [7] = "WEG", [8] = "ZOON", [9] = "HOUT", [10] = "BEEK", [11] = "BOOM", [12] = "ING", [13] = "LAAT", [14] = "PLAAT", [15] = "DIJK", [16] = "POORTE", [17] = "MARS", [18] = "HEIDE", [19] = "MOND", [20] = "MAN", [21] = "SPRAEK", [22] = "BERGH", [23] = "BOER", [24] = "MOER", [25] = "PLEIJN", [26] = "GRAAF", } vip_names = { [1] = "De Burgemeester van Lagerzand", [2] = "Marko Boerzaato", [3] = "Koning Filip van België", [4] = "Aung Sang Su Kyi, de Myanmarese Oppositieleidster", [5] = "De helderziende Zomanda", [6] = "De schrijver Jan Volkerts", [7] = "Jan Peter Bakellende", [8] = "Hans Spreeuwen", [9] = "Een Eredivise voetballer", [10] = "Albert Zweijn", health_minister = "De Minister van Volksgezondheid", } custom_game_window = { caption = "Uitzendwerk", free_build = "Vrij bouwen", load_selected_level = "Start" } transactions = { --[[Hier geen veranderingen in aanbrengen. Sommige woorden zijn bewust weggelaten vanwege ruimtegebrek ingame!]]-- severance = "Ontslagpremie", research = "Onderzoekskosten", eoy_trophy_bonus = "Prijzengeld", buy_object = "Aankoop", cure_colon = "Genezen:", epidemy_coverup_fine = "Boete verbergen epidemie", final_treat_colon = "Laatste behandeling:", jukebox = "Inkomen: jukebox", loan_interest = "Rente lening", overdraft = "Rente rood staan", wages = "Salaris", loan_repayment = "Afbetaling lening", personal_bonus = "Persoonlijke bonus", drug_cost = "Medicijnen", cure = "Genezen", heating = "Stookkosten", treat_colon = "Behandeld:", compensation = "Compensatie v. overheid", epidemy_fine = "Boete epidemie", buy_land = "Land gekocht", research_bonus = "Bonus onderzoek", general_bonus = "Algemene bonus uitbetaling", deposit = "Treatment Deposit", --[[geen functie]] eoy_bonus_penalty = "Eindejaarsbonus / -boete", cheat = "Gefraudeerd", drinks = "Inkomen: frisdrankautomaat", vaccination = "Inenting", advance_colon = "Advance:", --[[geen functie]] vip_award = "VIP bonus", hire_staff = "Inhuren personeel", bank_loan = "Lening", machine_replacement = "Vervanging apparatuur", emergency_bonus = "Noodgeval bonus", build_room = "Constructie", insurance_colon = "Verzekering:", sell_object = "Verkoop", remove_room = "Constructie: Vernielde kamer", } letter = { [1] = { [1] = "Beste %s//", [2] = "Fantastisch! Je hebt dit ziekenhuis goed onder controle gehouden. Wij, hoge pieten van het Ministerie van Volksgezondheid, zouden graag willen weten of je geïnteresseerd bent in een groter project. Wij denken dat je een perfecte kandidaat bent voor een andere locatie. Het salaris is $%d. Denk er maar eens over na.//", [3] = "Ben je geïnteresseerd in een baan in het %s-ziekenhuis?", }, [2] = { [1] = "Beste %s//", [2] = "Goed werk! Je hebt fantastische vooruitgang geboekt met je ziekenhuis. We hebben een andere locatie die je kunt managen als je eens een andere omgeving en een paar frisse uitdagingen wilt tegemoetzien. Je hoeft het niet te accepteren, maar het is het wel waard. Het salaris is $%d//", [3] = "Wil je een baan in Ziekenhuis %s?", }, [3] = { [1] = "Beste %s//", [2] = "Je bent erg succesvol geweest tijdens je termijn in dit ziekenhuis. We zien grootse dingen in je toekomst en willen je graag een andere positie aanbieden. Het salaris bedraagt $%d, en volgens ons zal je de nieuwe uitdaging fantastisch vinden.//", [3] = "Wil je een positie in het %s-ziekenhuis?", }, [4] = { [1] = "Beste %s//", [2] = "Gefeliciteerd! Wij van het ministerie zijn erg onder de indruk van je kundigheid met ziekenhuizen. Je bent zeker weten een ster in de gezondheidszorg. Toch denken we dat je voorkeur uitgaat naar een iets moeilijkere positie. Je zou een salaris van $%d krijgen, maar de keuze is helemaal aan jou.//", [3] = "Ben je geïnteresseerd in werken in het ziekenhuis bij %s?", }, [5] = { [1] = "Beste %s//", [2] = "We hebben respect voor je beslissing in dit fantastische ziekenhuis te blijven, maar we willen je verzoeken het nog eens te overdenken. We zullen je het fantastische salaris van $%d aanbieden als je bereid bent om te verhuizen naar een ander ziekenhuis, waar je het net zo gladjes kan laten draaien als op je huidige plek.//", [3] = "Wil je nu naar Ziekenhuis %s?", }, [6] = { [1] = "Beste %s//", [2] = "Gegroet. We weten hoe gelukkig je bent met dit prachtige instituut, maar waarschijnlijk zou je eens over de voortgang van je carrière moeten nadenken. Je zult beschikken over een salaris van $%d als je besluit te verhuizen. Het is het overdenken waard.//", [3] = "Wil je een positie in het %s-ziekenhuis?", }, [7] = { [1] = "Beste %s//", [2] = "Goedendag! Het Ministerie van Volksgezondheid wil graag weten of je terug wilt komen op je beslissing om bij het huidige ziekenhuis te blijven. We vinden dat je een prachtig ziekenhuis hebt, maar je zou er goed aan doen een uitdagendere positie aan te nemen met een salaris van $%d.//", [3] = "Wil je een positie in het ziekenhuis van %s accepteren?", }, [8] = { [1] = "Beste %s//", [2] = "Nogmaals goedendag. Op onze afgelopen brief heb je afwijzend gereageerd, toen we je een prachtige positie aanboden in een nieuw ziekenhuis en een salaris van $%d. We denken echter dat je nog eens zou moeten nadenken over deze beslissing. We hebben de perfect baan voor je!//", [3] = "Wil je de positie in het ziekenhuis van %s accepteren? Asjeblieft?", }, [9] = { [1] = "Beste %s//", [2] = "Je hebt bewezen de beste ziekenhuisdirecteur te zijn die de medische wereld ooit heeft gekend. Het is een goliathprestatie die niet onbeloond gelaten kan worden, dus we willen je bij dezen de positie van Opperdirecteur van Alle Ziekenhuizen aanbieden. Dit is een hele eer met het riante salaris van $%d. Je krijgt een parade met confetti en mensen zullen hun dankbaarheid tonen waar je ook gaat.//", [3] = "Bedankt voor alles dat je hebt gedaan. Geniet van je semi-pensionering.//", [4] = "", }, [10] = { [1] = "Beste %s//", [2] = "Gefeliciteerd met het fantastische werk dat je hebt geleverd bij elk ziekenhuis waar we je hebben over aangesteld. Zo'n geweldige prestatie geeft je de vrijheid van alle steden ter wereld. Je krijgt een pensioen van $%d, een limousine en alles wat we vragen is dat je van stad tot stad reist, je aanbidders gedag zeggen en lezingen houden ter promotie van ziekenhuizen waar nodig.//", [3] = "We zijn allemaal erg trots op je. Een ieder van ons is dankbaar voor het harde werk dat je hebt verzet, zodat vele levens gered konden worden.//", [4] = "", }, [11] = { [1] = "Beste %s//", [2] = "Je hebt een voorbeeldige carrière achter de rug en je bent een inspiratie voor ons allen. Hartelijk bedankt voor het geweldige werk dat je hebt gedaan in alle ziekenhuizen waar we je over hebben aangesteld. We willen je eren met een levenslang salaris van $%d als je ons helpt door in een officiële cabrio van stad naar stad te reizen, waar je lezingen geeft over hoe je zo veel, zo snel voor elkaar hebt gekregen.//", [3] = "Je bent een voorbeeld voor elk verstandig mens en iedereen ter wereld, zonder uitzondering. Iedereen ziet je als een geschenk uit de hemel.//", [4] = "", }, [12] = { [1] = "Beste %s//", [2] = "Je succesvolle carrière naar de beste ziekenhuisdirecteur sinds Mozes is tot een einde gekomen. De impact op het knusse wereldje van gezondheidszorg is echter zo groot geweest dat het ministerie je graag een salaris van $%d wil aanbieden om in onze naam festivals te openen, schepen te dopen en in praatprogramma's te verschijnen. De hele wereld kijkt uit naar je eerste verschijning! Het zou fantastische PR zijn voor ons allemaal!//", [3] = "Accepteer asjeblieft deze positie. Het werk is niet zwaar. Ook geven we je een auto en een politie escorte waar je ook gaat.//", [4] = "", }, dear_player = "Beste %s", custom_level_completed = "Goed werk! Je hebt alle doelen voor dit ziekenhuis behaald!", return_to_main_menu = "Wil je teruggaan naar het hoofdmenu of doorspelen?", campaign_completed = "Ongelofelijk! Je hebt alle levels gehaald. Je kunt nu ontspannen en genieten van het vullen van forums op internet over je prestaties. Veel succes!", campaign_level_completed = "Goed gedaan! Je hebt het level gehaald. Maar het is nog niet voorbij!// Wil je een baan bij %s Hospital?", campaign_level_missing = "Sorry, maar het volgende level van deze campagne lijkt te ontbreken. (Naam: %s)", } install = { title = "--------------------------------- CorsixTH Setup ---------------------------------", th_directory = "CorsixTH heeft de databestanden van de originele Theme Hospital (of de demo) nodig om te kunnen draaien. Geef hieronder aan waar Theme Hospital staat geïnstalleerd.", exit = "Afsluiten", ok = "OK", cancel = "Annuleren", } casebook = { sent_home = "weggestuurd", deaths = "doden", treatment_charge = "kosten behandeling", reputation = "reputatie", research = "onderzoek specialiseren", cure = "behandeling", cured = "genezen", earned_money = "omzet", cure_desc = { hire_psychiatrists = "Je moet psychiaters aannemen.", improve_cure = "Behandeling verbeteren.", hire_nurses = "Je moet zusters aannemen.", build_ward = "Je moet nog een slaapzaal bouwen.", no_cure_known = "Geen geneesmiddel bekend.", cure_known = "Geneesmiddel.", build_room = "Ik raad je aan een %s te bouwen", hire_doctors = "Je moet artsen aannemen.", hire_surgeons = "Je moet chirurgen aannemen.", }, } errors = { dialog_missing_graphics = "Sorry, de demobestanden bevatten geen data voor dit scherm.", load_quick_save = "Error, kan de quicksave niet laden, omdat het niet bestaat. Maak je maar geen zorgen, we hebben er eentje voor je aangemaakt!", load_prefix = "Fout bij het laden van het spel: ", save_prefix = "Fout bij het opslaan van het spel: ", map_file_missing = "Bestand %s voor dit level is niet gevonden!", minimum_screen_size = "Voer een resolutie in van minstens %dx%d.", unavailable_screen_size = "De resolutie die je hebt ingevoerd is niet beschikbaar in fullscreen", alien_dna = "LET OP: Er zijn geen animaties voor alien patiënten die zitten, op deuren kloppenen, deuren openen, enz. Daarom veranderen ze naar een normaal mens als ze dit doen en veranderen dan weer terug, net als in Them Hospital. Patiënten met alien-DNA verschijnen alleen wanneer dit in het level is toegestaan.", fractured_bones = "LET OP: De animatie voor vrouwelijke patiënten met gebrokken botten is niet goed.", no_games_to_contine = "Er zijn geen opgeslagen spellen.", dialog_empty_queue = "Een mensachtige is de weg helemaal kwijt, er was geen informatie meer wat vervolgens te gaan doen. Meer gedetailleerde informatie kun je vinden in het kommando scherm. Een window met deze mensachtige is geopend, wil je dat ze het ziekenhuis verlaten?", compatibility_error = { demo_in_full = "Sorry, je kunt geen demo-savegame openen terwijl de volledige gamebestanden zijn geladen. Werk je TH Data-mapinstelling bij.", full_in_demo = "Sorry, je kunt geen savegame van de volledige game openen terwijl de demobestanden zijn geladen. Werk je TH Data-mapinstelling bij.", new_in_old = "Sorry, dit opslagbestand is aangemaakt met een nieuwere versie van CorsixTH en is niet compatibel. Update naar een recentere versie.", }, could_not_find_first_campaign_level = "Kon het eerste level van deze campagne niet vinden: %s", could_not_load_campaign = "Kan de campagne niet laden: %s", load_level_prefix = "Fout bij het laden van level: ", load_map_prefix = "Fout bij het laden van map: ", music = "Er zijn afspeelproblemen met een of meer bestanden in uw muziekfolder. Problematische bestanden worden uitgeschakeld in de jukebox. Zie het consolevenster voor meer informatie.", save_to_tmp = "Poging om naar %s te schrijven is mislukt. Het bestand is in plaats daarvan geschreven naar de tijdelijke locatie %s vanwege de fout: %s", } diseases = { diag_ward = { name = "Diag slaapzaal", }, diag_ultrascan = { name = "Diag echoscopie", }, autopsy = { name = "Autopsie", }, diag_blood_machine = { name = "Diag bloedmachine", }, diag_x_ray = { name = "Diag röntgen", }, diag_psych = { name = "Diag psychiater", }, diag_general_diag = { name = "Diag algemeen", }, general_practice = { name = "Spreekkamerbezoek", }, diag_cardiogram = { name = "Diag cardio", }, diag_scanner = { name = "Diag scanner", }, third_degree_sideburns = { --[[3rd Degree Sideburns (een woordspeling op derdegraads brandwonden en bakkebaarden--]]-- cause = "Oorzaak: nostalgisch verlangen naar de seventies.", cure = "Behandeling: de psychiater probeert de patiënt er via moderne conversatietechnieken van te overtuigen dat die flamboyante stijlen echt niet meer kunnen.", name = "Derdegraads brandhaar", symptoms = "Symptomen: fel geverfd haar, bakkebaarden, plateauschoenen en glitter make-up.", }, discrete_itching = { cause = "Oorzaak: kleine insecten met scherpe tandjes.", cure = "Behandeling: patiënt drinkt een farmaceutische klodder anti-jeuksiroop.", name = "Onregelmatige jeuk", symptoms = "Symptomen: krabben met lokale ontstekingen tot gevolg.", }, the_squits = { cause = "Oorzaak: het eten van aan de binnenkant van de oven aangebakken stukjes pizza.", cure = "Behandeling: een plakkerige mix van draderige chemicaliën drinken om de binnenkant van de patiënt weer wat te laten stollen.", name = "Sproeipoep", symptoms = "Symptomen: ugh. Dat kun je vast zelf wel bedenken.", }, spare_ribs = { cause = "Oorzaak: op koude stenen vloeren zitten.", cure = "Behandeling: het stukje rib wordt verwijderd door twee chirurgen en aan de patiënt in een zakje meegegeven.", name = "Spare Ribs", --its has the same double meaning as in English. symptoms = "Symptomen: een iets te grote borstkas.", }, king_complex = { cause = "Oorzaak: de geest van de King neemt bezit van de patiënt.", cure = "Behandeling: een psychiater vertelt de patiënt hoe belachelijk hij of zij eruit ziet.", name = "King Complex", symptoms = "Symptomen: een dieet van cheeseburgers en felgekleurd suedè schoeisel.", }, pregnancy = { cause = "Oorzaak: stroomuitval in steden.", cure = "Behandeling: de baby wordt verwijderd in de operatiekamer en aan de patiënt gegeven.", name = "Zwangerschap", symptoms = "Symptomen: veel eten met bolle buik tot gevolg.", }, fake_blood = { cause = "Oorzaak: de patiënt is het slachtoffer van een flauwe grap.", cure = "Behandeling: de kalmerende stem van een psychiater is het enige dat dit kan oplossen.", name = "Nepbloed", symptoms = "Symptomen: rode vloeistof in aderen die oplost bij contact met kleding.", }, invisibility = { cause = "Oorzaak: gebeten worden door een radioactieve (en onzichtbare) mier.", cure = "Behandeling: een fel drankje uit de apotheek toont weer de ware kleuren van de patiënt.", name = "Onzichtbaarheid", symptoms = "Symptomen: patiënten lijden er niet onder. Sommigen maken misbruik van de situatie door grapjes uit te halen met hun familie.", }, golf_stones = { cause = "Oorzaak: blootstelling aan giftig gas uit golfballen.", cure = "Behandeling: verwijdering via operatie door twee chirurgen.", name = "Golfstenen", symptoms = "Symptomen: ijlen en grote schaamte.", }, infectious_laughter = { cause = "Oorzaak: klassieke comedyseries.", cure = "Behandeling: een gekwalificeerde psychiater vertelt de patiënt hoe verschrikkelijk zijn ziekte wel niet is.", name = "Aanstekelijke lach", symptoms = "Symptomen: constant gegniffel en het herhalen van flauwe kantlijngrapjes.", }, baldness = { cause = "Oorzaak: liegen en verhalen verzinnen om populair te zijn.", cure = "Behandeling: het haar wordt naadloos vastgesmolten in het hoofd van de patiënt met deze pijnlijke machine.", name = "Kaalheid", symptoms = "Symptomen: een glimmend hoofd en schaamte.", }, heaped_piles = { cause = "Oorzaak: rondhangen bij het koffieautomaat.", cure = "Behandeling: een prettig, krachtig drankje met een zuurgraad waarvan de kruisbessen van binnenuit oplossen.", name = "Kuise kruisbessen", symptoms = "Symptomen: het is voor de patiënt net alsof hij op een zak knikkers zit.", }, unexpected_swelling = { cause = "Oorzaak: iets onverwachts.", cure = "Behandeling: de zwelling kan alleen worden doorgeprikt door twee chirurgen.", name = "Onverwachte zwelling", symptoms = "Symptomen: een zwelling.", }, jellyitis = { cause = "Oorzaak: gelatinerijk dieet en teveel beweging.", cure = "Behandeling: de patiënt wordt in een gelatinetank gegoten om daar een beetje te stollen.", name = "Gelatinis", symptoms = "Symptomen: uitzonderlijke drillerigheid en vallen.", }, hairyitis = { cause = "Oorzaak: overmatige blootstelling aan de maan.", cure = "Behandeling: een elektrolysemachine verwijdert het haar en dicht de poriën.", name = "Pilitis", symptoms = "Symptomen: de zieke ervaart een betere reukzin.", }, alien_dna = { cause = "Oorzaak: gezichtzuigers met het bloed van intelligente aliens.", cure = "Behandeling: het DNA wordt machinaal verwijderd, de buitenaardse elementen worden gefilterd en het DNA wordt snel weer teruggepompt.", name = "Buitenaards DNA", symptoms = "Symptomen: langzame monsterachtige metamorfose en een drang tot het vernietigen van onze steden.", }, bloaty_head = { cause = "Oorzaak: het opsnuiven van kaas en het drinken van ongezuiverd regenwater.", cure = "Behandeling: het opgezwollen hoofd wordt doorgeprikt en weer opgeblazen met een handige machine.", name = "Plofkop", symptoms = "Symptomen: een enorm opgezwollen hoofd; zeer ongemakkelijk voor de zieke.", }, gastric_ejections = { cause = "Oorzaak: pittig Mexicaans of Indiaas eten.", cure = "Behandeling: een speciaal bindend drankje zorgt ervoor dat er niets meer uit wordt geworpen.", name = "Gastrische uitstoot", symptoms = "Symptomen: halfverteerd voedsel wordt in willekeurige clusters uit de patiënt gestoten.", }, uncommon_cold = { cause = "Oorzaak: deeltjes snot in de lucht.", cure = "Behandeling: een grote slok speciale hoestdrank uit de apotheek, gemaakt van speciale ingrediënten.", name = "Verguurheid", symptoms = "Symptomen: loopneus, niezen en verkleurde longen.", }, corrugated_ankles = { cause = "Oorzaak: het rijden over infrastructurele aanpassingen die het verkeer behoren te vertragen.", cure = "Behandeling: het drinken van een licht bijtend kruidenmengsel zou de enkels weer recht moeten trekken.", name = "Geribbelde enkels", symptoms = "Symptomen: schoeisel zit niet zo lekker.", }, sleeping_illness = { cause = "Oorzaak: een overactieve slaapklier in het gehemelte.", cure = "Behandeling: een hoge dosis oppepmiddel wordt door een zuster toegediend.", name = "Slaapkwaal", symptoms = "Symptomen: een onbedwingbare zin om gewoon ergens in slaap te vallen.", }, sweaty_palms = { cause = "Oorzaak: angst voor sollicitaties.", cure = "Behandeling: een psychiater moet de patiënt overtuigen dat dit geen echte ziekte is.", name = "Zweethanden", symptoms = "Symptomen: de hand van de patiënt voelt aan als een natte spons.", }, serious_radiation = { cause = "Oorzaak: plutoniumisotopen verwarren met kauwgom.", cure = "Behandeling: de patiënt wordt voor grondige reiniging in een ontsmettingscabine geplaatst.", name = "Zware straling", symptoms = "Symptomen: patiënten met deze aandoening voelen zich heel, heel erg ziek.", }, gut_rot = { cause = "Oorzaak: tante Triens Vrolijke Whiskey Hoestsiroop.", cure = "Behandeling: een zuster dient een selectie opgeloste chemicaliën toe om het buikje van binnen te bekleden.", name = "Buikrot", symptoms = "Symptomen: geen hoest, maar ook geen maagwand.", }, iron_lungs = { cause = "Oorzaak: smog van de binnenstad vermengd met kebabrestjes.", cure = "Behandeling: twee chirurgen verwijderen de massieve longen in een operatiekamer.", name = "IJzeren longen", symptoms = "Symptomen: vuurspuwen en luid onder water kunnen schreeuwen.", }, broken_wind = { cause = "Oorzaak: een loopband gebruiken net na de maaltijd.", cure = "Behandeling: in de apotheek wordt er snel een zware mix van speciale waterige atomen gedronken.", name = "Wind tegen", symptoms = "Symptomen: de patiënt verschijnt altijd chagrijnig op het werk. Dat geld ook voor mensen die dezelfde kant op fietsen.", }, kidney_beans = { cause = "Oorzaak: kauwen op ijsklontjes uit drankjes.", cure = "Behandeling: twee chirurgen verwijderen het froliet zonder gevoelige lichaamsdelen aan te raken.", name = "Nierfroliet", --combinatie van Nierstenen en synoniem Nefroliet symptoms = "Symptomen: pijn en de patiënt moet heel vaak naar het toilet.", }, transparency = { cause = "Oorzaak: het aflikken van bladfolie-lipjes van vers geopende zuivelproducten.", cure = "Behandeling: een drankje uit de apotheek, gemaakt van speciaal gekoeld en gekleurd water, verhelpt deze ziekte.", name = "Doorzichtigheid", symptoms = "Symptomen: organen worden doorzichtig en zien er ranzig uit.", }, broken_heart = { cause = "Oorzaak: iemand die rijker, jonger en slanker is dan de patiënt.", cure = "Behandeling: twee chirurgen openen de borstkas en herstellen ademloos en liefdevol het hart.", name = "Gebroken hart", symptoms = "Symptomen: huilen en RSI door het constante verscheuren van vakantiefoto's.", }, slack_tongue = { cause = "Oorzaak: eindeloos geklets over soaps.", cure = "Behandeling: de tong wordt in de Snijmachine geplaatst en snel, efficiënt en pijnlijk verwijderd.", name = "Lamme tong", symptoms = "Symptomen: tong zwelt op tot vijf maal de normale lengte.", }, tv_personalities = { cause = "Oorzaak: dagtelevisie.", cure = "Behandeling: een getrainde psychiater moet de patiënt overtuigen zijn televisie te verkopen en een radio aan te schaffen.", name = "TV persoonlijkheid", symptoms = "Symptomen: de patiënt denkt dat hij of zij een kookprogramma kan presenteren.", }, ruptured_nodules = { cause = "Oorzaak: bungeejumpen in de kou.", cure = "Behandeling: twee gekwalificeerde chirurgen verwijderen de knobbels met vaste hand.", name = "Gebarsten knobbels", symptoms = "Symptomen: niet lekker kunnen liggen.", }, fractured_bones = { cause = "Oorzaak: van hoge dingen afvallen en op beton landen.", cure = "Behandeling: er wordt gips gezet en vervolgens verwijderd met een lasergestuurde machine.", name = "Botfractuur", symptoms = "Symptomen: luid gekraak en betreffend ledemaat niet meer kunnen gebruiken.", }, chronic_nosehair = { cause = "Oorzaak: het ophalen van de neus in verachting voor mensen die slechter af zijn dan de patiënt.", cure = "Behandeling: een smerig, haar verwijderend drankje wordt door een zuster in de apotheek klaargemaakt en wordt door de patiënt gedronken.", name = "Chronisch neushaar", symptoms = "Symptomen: neushaar waarin een marter zich zou kunnen nestelen.", }, } policy = { header = "Ziekenhuisbeleid", diag_termination = "diagnose stoppen", sliders = { guess = "GOKKEN", send_home = "WEGSTUREN", stop = "STOP PROCEDURE", staff_room = "GA NAAR DE PERSONEELSRUIMTE", }, diag_procedure = "diagnostische procedures", staff_rest = "personeel laten rusten", staff_leave_rooms = "personeel verlaat kamers", } competitor_names = { [1] = "ORAC", [2] = "HAL", [3] = "COLOSSUS", [4] = "MULTIVAC", [5] = "HOLLY", [6] = "DEEP THOUGHT", [7] = "ZEN", [8] = "LEON", [9] = "AKIRA", [10] = "SAM", [11] = "CHARLIE", [12] = "JAYNE", [13] = "ARTHUR", [14] = "MAGNUS", [15] = "MOTHER", [16] = "SAL", [17] = "MARVIN", [18] = "JOSHUA", [19] = "DANEEL", [20] = "OLIVAW", [21] = "NIC", [22] = "DANEEL", [23] = "OLIVAW", [24] = "NIC", } main_menu = { exit = "Afsluiten", custom_level = "Uitzendwerk", new_game = "Nieuwe carrière", load_game = "Spel laden", options = "Instellingen", version = "Versie: ", savegame_version = "Savegame versie: ", continue = "Zet spel voort", custom_campaign = "Aangepaste carrière", updates_off = "Niet controleren op updates", map_edit = "Kaartbewerker", } confirmation = { --spaces on the end make the text fit properly in text windows quit = "Weet je zeker dat je het spel wilt verlaten? ", return_to_blueprint = "Weet je zeker dat je terug wil gaan naar de blauwdrukmodus? ", needs_restart = "Om deze instellingen toe te passen, moet CorsixTH opnieuw opstarten. Niet opgeslagen vooruitgang zal hierdoor verloren gaan. Weet je zeker dat je dit wil doen? ", overwrite_save = "Er is hier al een spel opgeslagen. Weet je zeker dat je het bestaande spel wilt overschrijven? ", delete_room = "Weet je zeker dat je deze kamer wilt verwijderen? ", sack_staff = "Weet je zeker dat je dit personeelslid wilt ontslaan? ", replace_machine = "Weet je zeker dat je de %s wilt vervangen voor $%d? ", abort_edit_room = "Je bent een ruimte aan het bouwen of aanpassen. Wanneer alle benodigde objecten geplaatst zijn, is de ruimte af. Zo niet, dan wordt de ruimte vernietigd. ", restart_level = "Weet je zeker dat je het level opnieuw wilt beginnen? ", maximum_screen_size = "De resolutie die je hebt ingevoerd is groter dan 3000x2000. Een hoge resolutie is mogelijk, mits je hardware goed genoeg is om een speelbare framerate te behalen. Weet je zeker dat je wilt doorgaan?", replace_machine_extra_info = "De nieuwe machine zal %d vermogen hebben (momenteel %d)", remove_destroyed_room = "Wil je de kamer voor $%d verwijderen?", very_old_save = "Er zijn veel updates geweest sinds je met dit level bent begonnen. Om zeker te zijn dat alles werkt zoals het hoort, zou je nu opnieuw willen beginnen dit level?//Je opgeslagen spel blijft beschikbaar tenzij je het overschrijft.", } menu_display = { mcga_lo_res = " LAGE RES ", shadows = " SHADUWEN ", high_res = " HOGE RES ", } menu_list_window = { back = "Terug", save_date = "Gewijzigd op", name = "Naam", ok = "OK" } menu_options_volume = { [50] = " 50% ", [100] = " 100% ", [30] = " 30% ", [60] = " 60% ", [90] = " 90% ", [10] = " 10% ", [20] = " 20% ", [40] = " 40% ", [80] = " 80% ", [70] = " 70% ", } menu_file_load = { [1] = " GAME 1 ", [2] = " GAME 2 ", [3] = " GAME 3 ", [4] = " GAME 4 ", [5] = " GAME 5 ", [6] = " GAME 6 ", [7] = " GAME 7 ", [8] = " GAME 8 ", } menu_file = { quit = " (%1%) AFSLUITEN ", save = " (%1%) OPSLAAN ", load = " (%1%) LADEN ", restart = " (%1%) HERSTARTEN ", } high_score = { categories = { deaths = "DODEN", total_value = "TOTALE WAARDE", money = "RIJKSTE", cures = "GENEZEN", visitors = "MEESTE BEZOEKERS", staff_number = "MEESTE PERSONEEL", cure_death_ratio = "GENEZINGEN VS DODEN", patient_happiness = "KLANTTEVREDENHEID", staff_happiness = "PERSONEELSTEVREDENHEID", salary = "HOOGSTE SALARIS", clean = "REINHEID", }, player = "SPELER", score = "SCORE", pos = "POS", best_scores = "HALL OF FAME", worst_scores = "HALL OF SHAME", killed = "Gedood", } --[[ Ik denk niet dat het belangrijk is om dit stukje te vertalen. Als iemand geen Engels spreekt, zou hij sowieso niet met debug tools moeten zitten klooien. ]]-- menu_debug = { porter_pagers = " PORTER PAGERS ", --[[ Wat? "portier biepers"? --]] display_pager = " TOON PAGER ", --[[ Een pager is zo een apparaatje dat in de nineties razend populair was... --]] disable_salary_raise = " SALARISVERHOGINGEN UITSCHAKELEN ", display_big_cells = " BIG CELLS TONEN ", make_debug_patient = " DEBUG PATIENT ", mapwho_checking = " MAPWHO CHECKING ", sprite_viewer = " SPRITE VIEWER ", keep_clear_cells = " LEGE CELLS BEHOUDEN ", dump_strings = " (%1%) STRINGDUMP MAKEN ", machine_pagers = " MACHINE PAGERS ", remove_objects = " VOORWERPEN VERWIJDEREN ", enter_nav_debug = " GA NAAR NAV DEBUG ", lose_game_anim = { [1] = " VERLOREN 1 ANIM ", [2] = " VERLOREN 2 ANIM ", [3] = " VERLOREN 3 ANIM ", [4] = " VERLOREN 4 ANIM ", [5] = " VERLOREN 5 ANIM ", [6] = " VERLOREN 6 ANIM ", [7] = " VERLOREN 7 ANIM ", }, map_overlay = " MAP OVERLAYS ", display_room_status = " KAMERSTATUS TONEN ", win_game_anim = " SPEL GEWONNEN ANIM ", object_cells = " VOORWERP CELLS ", limit_camera = " CAMERABEGRENZING ", nav_bits = " NAV BITS ", remove_walls = " MUREN ONZICHTBAAR MAKEN ", dump_gamelog = " (%1%) GAME LOG DUMPEN ", win_level_anim = " LEVEL GEWONNEN ANIM ", pixbuf_cells = " PIXBUF CELLS ", transparent_walls = " (%1%) TRANSPARANTE MUREN ", show_help_hotspot = " HELP HOTSPOTS TONEN ", show_nav_cells = " NAV CELLS TONEN ", entry_cells = " ENTRY CELLS ", plant_pagers = " PLANT PAGERS ", lua_console = " (%1%) LUA CONSOLE ", make_debug_fax = " DEBUG FAX ", calls_dispatcher = " CALLS DISPATCHER ", cheats = " (%1%) CHEATS ", jump_to_level = " SPRING NAAR LEVEL ", debug_script = " (%1%) LAAT FOUTSCRIPT LOPEN ", connect_debugger = " (%1%) MAAK VERBINDING MET LUA DBGp SERVER ", allow_blocking_off_areas = " STA TOE OM GEBIEDEN AF TE SLUITEN ", } drug_companies = { [1] = "Machtige Medicatie", [2] = "GeneesGoed", [3] = "Pimpelpaarse Kruis", [4] = "Per Vers BV.", [5] = "OmniPharma VOF", } graphs = { deaths = "Doden", money_in = "Geld bij", money_out = "Geld af", visitors = "Bezoekers", wages = "Salaris", balance = "Saldo", time_spans = { [1] = "1 Jaar", [2] = "12 Jaar", [3] = "48 Jaar", }, cures = "Genezingen", reputation = "Reputatie", } months = { [1] = "Jan", [2] = "Feb", [3] = "Maa", [4] = "Apr", [5] = "Mei", [6] = "Jun", [7] = "Jul", [8] = "Aug", [9] = "Sep", [10] = "Okt", [11] = "Nov", [12] = "Dec", } date_format.daymonth = "%1% %2:months%" menu_options = { game_speed = " SNELHEID ", sound_vol = " VOLUME GELUID ", music_vol = " VOLUME MUZIEK ", announcements = " OMROEPBERICHTEN ", lock_windows = " VENSTERS VASTZETTEN ", sound = " (%1%) GELUID ", announcements_vol = " (%1%) VOLUME OMROEPBERICHTEN ", music = " (%1%) MUZIEK ", autosave = " AUTOSAVE ", jukebox = " (%1%) JUKEBOX ", edge_scrolling = " RANDSCROLLEN ", adviser_disabled = " (%1%) ADVISEUR ", warmth_colors = " WARMTE KLEUREN ", twentyfour_hour_clock = " 24 UUR KLOK ", wage_increase = " SALARIS VERZOEKEN ", capture_mouse = " MUIS VANGEN ", } menu_options_wage_increase = { deny = " AFWIJZEN ", grant = " TOEKENNEN ", } menu_options_game_speed = { pause = " (%1%) PAUZE ", slowest = " (%1%) EN NOG LANGZAMER ", slower = " (%1%) LANGZAAM ", normal = " (%1%) NORMAAL ", max_speed = " (%1%) MAX SNELHEID ", and_then_some_more = " (%1%) EN NOG EEN BEETJE ", } menu_options_warmth_colors = { choice_1 = " ROOD ", choice_2 = " BLAUW, GROEN EN ROOD ", choice_3 = " GEEL, ORANJE EN ROOD ", } menu = { debug = " DEBUG ", display = " BEELD ", file = " BESTAND ", options = " OPTIES ", charts = " OVERZICHTEN ", player_count = " SPELERSAANTAL ", } rooms_short = { ultrascan = "Echoscopie", research_room = "Laboratorium", fracture_clinic = "Gipskamer", gps_office = "Spreekkamer", destroyed = "Vernietigd", staffroom = "Personeelsruimte", jelly_vat = "Gelatinetank", scanner = "Scanner", decontamination = "Ontsmetting", pharmacy = "Apotheek", cardiogram = "Cardio", reception = "Receptie", training_room = "Klaslokaal", corridor_objects = "Gangartikelen", operating_theatre = "Operatiekamer", dna_fixer = "DNA hersteller", ward = "Slaapzaal", psychiatric = "Psychiatrie", hair_restoration = "Haarrestauratie", general_diag = "Algemene diagnose", inflation = "Inflatie", tongue_clinic = "Lamme tongkliniek", toilets = "Toiletten", electrolysis = "Elektrolyse", x_ray = "Röntgenkamer", blood_machine = "Bloedmachine", } object = { chair = "Stoel", litter = "Afval", sofa = "Sofa", operating_table = "Operatietafel", bed2 = "Bed", bench = "Bank", scanner = "Scanner", couch = "Sofa", blood_machine = "Bloedmachine", table1 = "Tafel", video_game = "Videospel", lamp = "Lamp", op_sink2 = "Wastafel", door = "Deur", auto_autopsy = "Auto Autopsie", reception_desk = "Receptie", hair_restorer = "Haarrestaurateur", projector = "Projector", crash_trolley = "Werktafel", tv = "Televisie", ultrascanner = "Echo apparaat", surgeon_screen = "Omkleedscherm", litter_bomb = "Afvalbom", inflator = "Compressor", table2 = "Tafel", desk = "Bureau", pool_table = "Biljarttafel", x_ray_viewer = "Röntgenscherm", radiation_shield = "Radiatieschild", bed = "Bed", swing_door2 = "Klapdeur", console = "Paneel", op_sink1 = "Wasbak", bookcase = "Boekenkast", drinks_machine = "Frisdrankautomaat", comfortable_chair = "Luie stoel", skeleton = "Geraamte", computer = "Computer", bin = "Prullenbak", pharmacy_cabinet = "Medicijnkast", radiator = "Radiator", cast_remover = "Gipsverwijderaar", atom_analyser = "Pulsmixer", plant = "Plant", jelly_moulder = "Gelatinetank", cardio = "Cardio", toilet = "Toilet", electrolyser = "Elektrolysator", fire_extinguisher = "Brandblusser", bed3 = "Bed", swing_door1 = "Klapdeur", lecture_chair = "Schoolbank", screen = "Screen", toilet_sink = "Wastafel", shower = "Cabine", gates_of_hell = "Poort naar de hel", entrance_right = "Rechterkant ingang", entrance_left = "Linkerkant ingang", slicer = "Snijmachine", dna_fixer = "DNA reparatiemachine", x_ray = "Röntgen", cabinet = "Dossierkast", rathole = "Rattenhol" } pay_rise = { definite_quit = "Niets kan mij hier nog houden. Ik heb hier schoon genoeg van.", regular = { [1] = "Ik ben kapot. Ik moet eens goed uitrusten en een salarisverhoging krijgen van %d, tenzij je graag wil zien hoe ik dit rotbaantje vaarwel zeg.", [2] = "Ik ben erg moe. Ik heb rust nodig en een salarisverhoging van %d naar %d. En snel een beetje, slavendrijver!", [3] = "Kom op! Ik werk me uit de naad. Geef me een bonus van %d, dan blijf ik in je ziekenhuis.", [4] = "Ik ben hier erg ongelukkig. Ik eis een opslag van %d, zodat mijn salaris %d wordt, anders pak ik mijn biezen.", [5] = "Mijn ouders vertelden me dat het salaris van een medicus fantastisch was. Geef me dus een opslag van %d, anders word ik programmeur.", [6] = "Ik ben het zat. Geef me een fatsoenlijk salaris. Een opslag van %d moet genoeg zijn.", }, poached = "Ik heb een aanbod van %d gekregen van %s. Als je me niet hetzelfde betaalt ben ik weg.", } town_map = { number = "Landnummer", not_for_sale = "Niet voor verkoop", chat = "Chatroom", price = "Landprijs", for_sale = "Te koop", owner = "Eigenaar", area = "Gebied", } level_names = { [1] = "Ziekwijk", [2] = "Rustenvreugd", [3] = "Grootzand", [4] = "Uitwijk-aan-Zee", [5] = "Eenwoud", [6] = "Pusch-aan-de-Gaas", [7] = "Groenpoel", [8] = "Manwerf", [9] = "Oostdorp", [10] = "Schakendam", [11] = "Ferekhart", [12] = "Knuppelenburg", [13] = "Laagschorem", [14] = "Klein Hildrecht", [15] = "Diepegraven", } build_room_window = { pick_room_type = "Kies soort", pick_department = "Kies afdeling", cost = "Kosten: ", } insurance_companies = { --[[''VOF'' em ''BV'' regelmatig verwijderd i.v.m. de niet passende tekst.]]-- [1] = "ZwaanBlat BV", [2] = "Oorha", [3] = "FTBA", [4] = "Achweeja", [5] = "Zwemblaas BV", [6] = "Noordelijk Beheer", [7] = "Aagod", [8] = "Leo Katjes NV.", [9] = "Pokkie en Keppie", [10] = "Blij met Blijheid", [11] = "De Familie", out_of_business = "FAILLIET", } menu_file_save = { [1] = " SPEL 1 ", [2] = " SPEL 2 ", [3] = " SPEL 3 ", [4] = " SPEL 4 ", [5] = " SPEL 5 ", [6] = " SPEL 6 ", [7] = " SPEL 7 ", [8] = " SPEL 8 ", } new_game_window = { player_name = "Gebruikersnaam", difficulty = "Selecteer moeilijkheid", hard = "Specialist (Moeilijk)", medium = "Arts (Gemiddeld)", easy = "Assistent (Makkelijk)", start = "Begin", cancel = "Annuleren", tutorial = "Leermodus", option_on = "Aan", option_off = "Uit", caption = "Nieuwe carrière", } calls_dispatcher = { repair = "Reparatie", summary = "%d oproepen, %d toegewezen", close = "Sluiten", watering = "Watergeven @ %d,%d", staff = "%s - %s", } debug_patient_window = { caption = "Debug patiënt", } lua_console = { execute_code = "Uitvoeren", close = "Sluiten", } cheats_window = { cheats = { end_month = "Einde van de maand", emergency = "Creëer noodgeval", vip = "Creëer VIP", win_level = "Win Level", create_patient = "Creëer patiënt", money = "Geld cheat (+ $10.000)", lose_level = "Verlies Level", all_research = "All research cheat", end_year = "Einde van het jaar", earthquake = "Creëer aardbeving", epidemic = "Besmettelijke patient laten verschijnen", toggle_infected = "Aan/uit zetten besmet iconen", decrease_prices = "Prijzen verlagen", increase_prices = "Prijzen verhogen", max_reputation = "Maximale reputatie", reset_death_count = "Reset sterfgevallen", show_infected = "Geïnfecteerde iconen schakelen", toggle_epidemic = "Epidemieën schakelen", toggle_earthquake = "Aardbevingen schakelen", }, cheated = { no = "Cheats gebruikt: Nee", yes = "Cheats gebruikt: Ja", }, close = "Sluiten", caption = "Cheats", warning = "Waarschuwing: wanneer je cheat zul je aan het einde van het level geen bonuspunten verdienen", } handyman_window = { all_parcels = "Overal", --Translates to: Everywhere, because the full Dutch translation would be far too long to fit the ingame window parcel = "Gebouw", } original_credits = { [1] = " ", [2] = " ", [3] = " ", [4] = " ", [5] = " ", [6] = " ", [7] = " ", [8] = " ", [9] = " ", [10] = " ", [11] = " ", [12] = ":Designed and Created by", [13] = ":Bullfrog Productions", [14] = " ", [15] = ":Pluto Development Team", [16] = ",", [17] = "Mark Webley", [18] = "Gary Carr", [19] = "Matt Chilton", [20] = "Matt Sullivan", [21] = "Jo Rider", [22] = "Rajan Tande", [23] = "Wayne Imlach", [24] = "Andy Bass", [25] = "Jon Rennie", [26] = "Adam Coglan", [27] = "Natalie White", [28] = " ", [29] = " ", [30] = " ", [31] = ":Programming", [32] = ",", [33] = "Mark Webley", [34] = "Matt Chilton", [35] = "Matt Sullivan", [36] = "Rajan Tande", [37] = " ", [38] = " ", [39] = " ", [40] = ":Art", [41] = ",", [42] = "Gary Carr", [43] = "Jo Rider", [44] = "Andy Bass", [45] = "Adam Coglan", [46] = " ", [47] = " ", [48] = " ", [49] = ":Additional Programming", [50] = ",", [51] = "Ben Deane", [52] = "Gary Morgan", [53] = "Jonty Barnes", [54] = " ", [55] = " ", [56] = " ", [57] = ":Additional Art", [58] = ",", [59] = "Eoin Rogan", [60] = "George Svarovsky", [61] = "Saurev Sarkar", [62] = "Jason Brown", [63] = "John Kershaw", [64] = "Dee Lee", [65] = " ", [66] = " ", [67] = " ", [68] = ":Intro Sequence", [69] = ",", [70] = "Stuart Black", [71] = " ", [72] = " ", [73] = " ", [74] = ":Music and Sound Effects", [75] = ",", [76] = "Russell Shaw", [77] = "Adrian Moore", [78] = " ", [79] = " ", [80] = " ", [81] = ":Additional Music", [82] = ",", [83] = "Jeremy Longley", [84] = "Andy Wood", [85] = " ", [86] = " ", [87] = " ", [88] = ":Announcer Voiceover", [89] = ",", [90] = "Rebecca Green", [91] = " ", [92] = " ", [93] = " ", [94] = ":Level Design", [95] = ",", [96] = "Wayne Imlach", [97] = "Natalie White", [98] = "Steven Jarrett", [99] = "Shin Kanaoya", [100] = " ", [101] = " ", [102] = " ", [103] = ":Scripting", [104] = ",", [105] = "James Leach", [106] = "Sean Masterson", [107] = "Neil Cook", [108] = " ", [109] = " ", [110] = " ", [111] = ":R&D", [112] = " ", [113] = ":Graphics Engine", [114] = ",", [115] = "Andy Cakebread", [116] = "Richard Reed", [117] = " ", [118] = " ", [119] = " ", [120] = ":R&D Support", [121] = ",", [122] = "Glenn Corpes", [123] = "Martin Bell", [124] = "Ian Shaw", [125] = "Jan Svarovsky", [126] = " ", [127] = " ", [128] = " ", [129] = ":Library and Tools", [130] = " ", [131] = "Dos and Win 95 Library", [132] = ",", [133] = "Mark Huntley", [134] = "Alex Peters", [135] = "Rik Heywood", [136] = " ", [137] = " ", [138] = " ", [139] = ":Network Library", [140] = ",", [141] = "Ian Shippen", [142] = "Mark Lamport", [143] = " ", [144] = " ", [145] = " ", [146] = ":Sound Library", [147] = ",", [148] = "Russell Shaw", [149] = "Tony Cox", [150] = " ", [151] = " ", [152] = " ", [153] = ":Installer Programming", [154] = ",", [155] = "Andy Nuttall", [156] = "Tony Cox", [157] = "Andy Cakebread", [158] = " ", [159] = " ", [160] = " ", [161] = ":Moral Support", [162] = ",", [163] = "Peter Molyneux", [164] = " ", [165] = " ", [166] = " ", [167] = ":Testing Manager", [168] = ",", [169] = "Andy Robson", [170] = " ", [171] = " ", [172] = " ", [173] = ":Lead Testers", [174] = ",", [175] = "Wayne Imlach", [176] = "Jon Rennie", [177] = " ", [178] = " ", [179] = " ", [180] = ":Play Testers", [181] = ",", [182] = "Jeff Brutus", [183] = "Wayne Frost", [184] = "Steven Lawrie", [185] = "Tristan Paramor", [186] = "Nathan Smethurst", [187] = " ", [188] = "Ryan Corkery", [189] = "Simon Doherty", [190] = "James Dormer", [191] = "Martin Gregory", [192] = "Ben Lawley", [193] = "Joel Lewis", [194] = "David Lowe", [195] = "Robert Monczak", [196] = "Dominic Mortoza", [197] = "Karl O'Keeffe", [198] = "Michael Singletary", [199] = "Andrew Skipper", [200] = "Stuart Stephen", [201] = "David Wallington", [202] = " ", [203] = "And all our other Work Experience Play Testers", [204] = " ", [205] = " ", [206] = " ", [207] = ":Technical Support", [208] = ",", [209] = "Kevin Donkin", [210] = "Mike Burnham", [211] = "Simon Handby", [212] = " ", [213] = " ", [214] = " ", [215] = ":Marketing", [216] = ",", [217] = "Pete Murphy", [218] = "Sean Ratcliffe", [219] = " ", [220] = " ", [221] = " ", [222] = ":With thanks to:", [223] = ",", [224] = "Tamara Burke", [225] = "Annabel Roose", [226] = "Chris Morgan", [227] = "Pete Larsen", [228] = " ", [229] = " ", [230] = " ", [231] = ":PR", [232] = ",", [233] = "Cathy Campos", [234] = " ", [235] = " ", [236] = " ", [237] = ":Documentation", [238] = ",", [239] = "Mark Casey", [240] = "Richard Johnston", [241] = "James Lenoel", [242] = "Jon Rennie", [243] = " ", [244] = " ", [245] = " ", [246] = ":Documentation & Packaging Design", [247] = ",", [248] = "Caroline Arthur", [249] = "James Nolan", [250] = " ", [251] = " ", [252] = " ", [253] = ":Localisation Project Manager", [254] = ",", [255] = "Carol Aggett", [256] = " ", [257] = " ", [258] = " ", [259] = ":Localisation", [260] = ",", [261] = "Sandra Picaper", [262] = "Sonia 'Sam' Yazmadjian", [263] = " ", [264] = "Bettina Klos", [265] = "Alexa Kortsch", [266] = "Bianca Normann", [267] = " ", [268] = "C.T.O. S.p.A. Zola Predosa (BO)", [269] = "Gian Maria Battistini", [270] = "Maria Ziino", [271] = "Gabriele Vegetti", [272] = " ", [273] = "Elena Ruiz de Velasco", [274] = "Julio Valladares", [275] = "Ricardo Martinez", [276] = " ", [277] = "Kia Collin", [278] = "CBG Consult", [279] = "Ulf Thor", [280] = " ", [281] = " ", [282] = " ", [283] = ":Production", [284] = ",", [285] = "Rachel Holman", [286] = " ", [287] = " ", [288] = " ", [289] = ":Producer", [290] = ",", [291] = "Mark Webley", [292] = " ", [293] = " ", [294] = " ", [295] = ":Associate Producer", [296] = ",", [297] = "Andy Nuttall", [298] = " ", [299] = " ", [300] = " ", [301] = ":Operations", [302] = ",", [303] = "Steve Fitton", [304] = " ", [305] = " ", [306] = " ", [307] = ":Company Administration", [308] = ",", [309] = "Audrey Adams", [310] = "Annette Dabb", [311] = "Emma Gibbs", [312] = "Lucia Gobbo", [313] = "Jo Goodwin", [314] = "Sian Jones", [315] = "Kathy McEntee", [316] = "Louise Ratcliffe", [317] = " ", [318] = " ", [319] = " ", [320] = ":Company Management", [321] = ",", [322] = "Les Edgar", [323] = "Peter Molyneux", [324] = "David Byrne", [325] = " ", [326] = " ", [327] = ":All at Bullfrog Productions", [328] = " ", [329] = " ", [330] = " ", [331] = ":Special Thanks to", [332] = ",", [333] = "Everyone at Frimley Park Hospital", [334] = " ", [335] = ":Especially", [336] = ",", [337] = "Beverley Cannell", [338] = "Doug Carlisle", [339] = " ", [340] = " ", [341] = " ", [342] = ":Keep On Thinking", [343] = " ", [344] = " ", [345] = " ", [346] = " ", [347] = " ", [348] = " ", [349] = " ", [350] = " ", [351] = " ", [352] = " ", [353] = " ", [354] = " ", [355] = " ", [356] = " ", [357] = " ", [358] = " ", [359] = " ", [360] = " ", [361] = ".", } multiplayer = { everyone_failed = "Niemand slaagde erin om aan dat laatste doel te voldoen. Dus krijgt iedereen nog een kans om te spelen!", players_failed = "De volgende speler(s) slaagden er niet in om het laatste doel te behalen:", } save_map_window = { caption = "Map opslaan (%1%)", new_map = "Nieuwe map", } map_editor_window = { pages = { camera_1 = "Camera 1", camera_2 = "Camera 2", camera_3 = "Camera 3", camera_4 = "Camera 4", delete_wall = "Muren verwijderen", foliage = "Beplanting", hedgerow = "Haag", helipad = "Helikopterplatform", heliport_1 = "Heliport 1", heliport_2 = "Heliport 2", heliport_3 = "Heliport 3", heliport_4 = "Heliport 4", inside = "Binnen", north_wall = "Noordelijke muur", outside = "Buiten", pond = "Vijver", paste = "Gebied plakken", parcel = "Pakket %d", road = "Straat", set_parcel_tooltip = "Kies een nummer en druk op enter.", set_parcel = "Zet pakket nummer", west_wall = "Westelijke muur", }, checks = { spawn_points_and_path = "Waarschuwing: Patiënten kunnen het ziekenhuis niet bereiken. Ze hebben 'weg'-tegels of 'buiten'-grijze tegels nodig aan de rand van de map en een pad van deze tegels naar de ingang van het ziekenhuis.", }, } warnings = { levelfile_variable_is_deprecated = "Let op: Het level '%s' bevat een verouderde variabele definitie in het levelbestand. '%LevelFile' is hernoemd naar '%MapFile'. Geef de maker van dit scenario advies om het level bij te werken.", newersave = "Waarschuwing, je hebt een spel geladen die in een nieuwere versie van CorsixTH is opgeslagen. Het wordt afgeraden om door te gaan, omdat er crashes kunnen optreden. Speel op eigen risico.", } disease_discovered_patient_choice = { need_to_employ = "Schakel een %s in die deze situatie kan behandelen." } hotkeys_file_err = { file_err_01 = "Kan hotkeys.txt-bestand niet laden. Zorg ervoor dat CorsixTH lees-/schrijfrechten heeft ", file_err_02 = ", of gebruik de opdrachtregeloptie --hotkeys-file=bestandsnaam om een beschrijfbaar bestand op te geven. Ter referentie, de fout bij het laden van het hotkeys-bestand was: ", } level_progress = { cured_enough_patients = "Je hebt genoeg patiënten genezen, maar je moet je ziekenhuis beter op orde krijgen om het level te winnen.", hospital_value_enough = "Houd de waarde van je ziekenhuis boven %d en los je andere problemen op om het level te winnen.", } menu_player_count = { players_1 = " 1 SPELER ", players_2 = " 2 SPELERS ", players_3 = " 3 SPELERS ", players_4 = " 4 SPELERS ", } custom_campaign_window = { caption = "Aangepaste carrière", start_selected_campaign = "Start carrière", } hotkey_window = { button_accept = "Opslaan", button_back = "Terug", button_cancel = "Annuleren", button_defaults = "Herstel naar standaardinstellingen", button_gameSpeedKeys = "Spel snelheid toetsen", button_recallPosKeys = "Camera positie toetsen", button_toggleKeys = "Schakel toetsen", caption_main = "Sneltoetsen toewijzen", caption_panels = "Paneeltoetsen", global_cancel = "Annuleren", global_cancel_alt = "Annuleren (alternatief)", global_confirm = "Accepteren", global_confirm_alt = "Accepteren (alternatief)", global_connectDebugger = "Debugger", global_exitApp = "Applicatie afsluiten", global_fullscreen_toggle = "Volledig scherm", global_releaseMouse = "Laat de muis los", global_resetApp = "Applicatie herstarten", global_runDebugScript = "Debugscript", global_showLuaConsole = "Lua-console", global_stop_movie_alt = "Stop Video", global_screenshot = "Schermafbeelding", global_window_close_alt = "Venster Sluiten", panel_debugKeys = "Debug Toetsen", panel_generalInGameKeys = "Algemene Spel Toetsen", panel_globalKeys = "Globale Toetsen", panel_gameSpeedKeys = "Spel Snelheid Toetsen", panel_recallPosKeys = "Camera Positie Laden", panel_scrollKeys = "Scroll Toetsen", panel_toggleKeys = "Schakel Toetsen", panel_storePosKeys = "Camera Positie Opslag", panel_zoomKeys = "Zoom Toetsen", ingame_gamespeed_speedup = "Versnellen", ingame_gamespeed_slowest = "En Nog Langzamer", ingame_gamespeed_slower = "Langzaam", ingame_gamespeed_normal = "Normaal", ingame_gamespeed_max = "Max Snelheid", ingame_gamespeed_thensome = "En Nog Een Beetje", ingame_jukebox = "Jukebox", ingame_loadMenu = "Spel Laden", ingame_openFirstMessage = "Level Bericht", ingame_panel_bankManager = "Kasboek", ingame_panel_bankStats = "Afschriften", ingame_panel_buildRoom = "Kamer Bouwen", ingame_panel_casebook = "Dossier", ingame_panel_casebook_alt = "Dossier 2", ingame_panel_casebook_alt02 = "Dossier 3", ingame_panel_charts = "Grafieken", ingame_panel_editRoom = "Kamer Verbouwen", ingame_panel_furnishCorridor = "Gang Inrichten", ingame_panel_hireStaff = "Personeel Inhuren", ingame_panel_map_alt = "Kaart 2", ingame_panel_policy = "Ziekenhuisbeleid", ingame_panel_research = "Onderzoek", ingame_panel_research_alt = "Onderzoek 2", ingame_panel_staffManage = "Personeel Beheren", ingame_panel_status = "Voortgang", ingame_panel_townMap = "Kaart", ingame_patient_gohome = "Stuur Naar Huis", ingame_pause = "Pauzeren", ingame_poopLog = "Dump Log", ingame_poopStrings = "Dump Vertalingen", ingame_quickLoad = "Snel Laden", ingame_quickSave = "Snel Opslaan", ingame_quitLevel = "Sluit Level", ingame_recallPosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_reset_zoom = "Zoom Resetten", ingame_restartLevel = "Herstart Level", ingame_rotateobject = "Roteer Object", ingame_saveMenu = "Spel Opslaan", ingame_scroll_up = "Omhoog Scrollen", ingame_scroll_down = "Omlaag Scrollen", ingame_scroll_left = "Links Scrollen", ingame_scroll_right = "Rechts Scrollen", ingame_scroll_shift = "Snelheid Aanpassen", ingame_setTransparent = "Transparant", ingame_showCheatWindow = "Cheatsmenu", ingame_showmenubar = "Menu Balk Weergeven", ingame_storePosition_0 = "10", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_toggleAdvisor = "Adviseur", ingame_toggleAnnouncements = "Mededelingen", ingame_toggleInfo = "Informatie", ingame_toggleMusic = "Muziek", ingame_toggleSounds = "Geluiden", ingame_zoom_in = "Inzoomen", ingame_zoom_in_more = "Meer Inzoomen", ingame_zoom_out = "Uitzoomen", ingame_zoom_out_more = "Meer Uitzoomen", } CorsixTH-0.70.0/CorsixTH/Lua/languages/english.lua000066400000000000000000002121721522247547500216510ustar00rootroot00000000000000--[[ Copyright (c) 2010-2024 Manuel "Roujin" Wolf, Edvin "Lego3" Linge, MandrakeHorse, lewri et al. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("cp437") Language("English", "English", "en", "eng") Inherit("original_strings", 0) IsArabicNumerals(true) --Note: All strings should use a single space after full-stops. Only exception is level descriptions. ------------------------------- OVERRIDE ---------------------------------- adviser.warnings.money_low = "Your money is getting low!" -- Funny. Exists in German translation, but not existent in english? tooltip.graphs.reputation = "Toggle reputation" -- Incorrectly said "toggle hospital value" tooltip.status.close = "Close status window" -- Incorrectly said "close overview window" -- tooltip.staff_list.next_person, prev_person is rather next/prev page (also in german, maybe more languages?) tooltip.staff_list.next_person = "Show next page" tooltip.staff_list.prev_person = "Show previous page" tooltip.status.reputation = "Your Reputation should not be less than %d. Currently it's %d" tooltip.status.balance = "Your bank balance should not be less than %d. Currently it's %d" -- The originals of these two contain one space too much fax.emergency.cure_not_possible_build = "You will need to build a %s" fax.emergency.cure_not_possible_build_and_employ = "You will need to build a %s and employ a %s" fax.emergency.num_disease = "There are %d people with %s and they require immediate attention." adviser.goals.lose.kill = "Kill another %d patients to lose the level!" -- Improve tooltips in staff window to mention hidden features tooltip.staff_window.face = "This person's face - click to open management screen" tooltip.staff_window.center_view = "Left click to zoom to staff, right click to cycle through staff members" -- Improve tooltips in Build Rooms menu tooltip.rooms.inflation = "A Doctor uses the Inflation Room to cure patients with Bloaty Head" tooltip.rooms.tongue_clinic = "A Doctor uses the Slack Tongue Clinic to cure Slack Tongue" tooltip.rooms.fracture_clinic = "A Nurse uses the Fracture Clinic to repair Fractured Bones" tooltip.rooms.hair_restoration = "A Doctor uses the Hair Restoration Room to cure Baldness" tooltip.rooms.decontamination = "A Doctor uses the Decontamination Shower to cure Serious Radiation" tooltip.rooms.ward = "Wards are useful for both diagnosis and treatment. Patients are sent here for observation and also prepare for operations in a Ward with a Nurse" tooltip.rooms.research_room = "Doctors with Research skills can discover new drugs and machines in the Research Dept" tooltip.objects.reception_desk = "Reception Desk: requires a Receptionist who directs patients to the GP's office" -- Improve tooltips in Research Screen tooltip.research.cure_dec = "Decrease Cure research percentage" tooltip.research.cure_inc = "Increase Cure research percentage" tooltip.research.diagnosis_dec = "Decrease Diagnosis research percentage" tooltip.research.diagnosis_inc = "Increase Diagnosis research percentage" tooltip.research.drugs_dec = "Decrease Drugs research percentage" tooltip.research.improvements_dec = "Decrease Improvements research percentage" tooltip.research.improvements_inc = "Increase Improvements research percentage" tooltip.research.specialisation_dec = "Decrease Specialisation research percentage" tooltip.research.specialisation_inc = "Increase Specialisation research percentage" -- These strings are missing in some versions of TH (unpatched?) confirmation.restart_level = "Are you sure you want to restart the level?" -- TODO adviser.multiplayer.objective_completed -- TODO adviser.multiplayer.objective_failed -- Replace Billy Savile -- this is only relevant to the English game so does not need adding -- in other language files vip_names = { [6] = "Sir Lancelot Spratt", } -- An override for the squits becoming the the squits see issue 1646 adviser.research.drug_improved_1 = "%s drug has been improved by your Research Department." -- Disease overrides where there are typos diseases.golf_stones.cure = "Cure - These must be removed by an operation requiring two Surgeons." diseases.ruptured_nodules.cure = "Cure - Two qualified Surgeons must remove the nodules using steady hands." diseases.slack_tongue.cause = "Cause - Chronic over-discussion of soap operas." diseases.slack_tongue.cure = "Cure - The tongue is placed in the Slicer Machine and removed quickly, efficiently, and painfully." diseases.the_squits.cure = "Cure - A glutinous mix of stringy pharmaceutical chemicals solidify the patient's innards." diseases.bloaty_head.cure = "Cure - The swollen head is popped, then re-inflated to the correct PSI using a clever machine." -- Rooms overrides where there are typos room_descriptions.inflation[2] = "Patients with the painful-yet-humorous condition of Bloaty Head must come to the Inflation Clinic, where the overlarge cranium will be popped and instantly re-inflated to the correct pressure.//" room_descriptions.staff_room[2] = "Your staff get tired as they carry out their jobs. They require this room to relax and refresh themselves. Tired staff slow down, demand more money, and will eventually quit. They also make more mistakes. Building a staff room with plenty for them to do is very worthwhile. Make sure there is room for several staff members at one time. " -- Staff description overrides where there are typos staff_descriptions.bad[14] = "Sly, cunning, and subversive. " staff_descriptions.misc[11] = "Distils whisky. " -- Correction to a pay rise prompt with typos pay_rise.regular[1] = "I'm totally frazzled. I need a good rest, plus a rise of %d if you don't want to see me jack in this poxy job." -- Level description overrides where there are typos. Note: This is the only portion of the game that SHOULD use double space after fullstops etc. introduction_texts.level17 = " Last word of warning - keep a keen eye on your Reputation - this is what will attract the patients from far and wide to your establishment. If you don't kill too many people and keep them reasonably happy you shouldn't have too much trouble on this level!// You're on you own now. Good luck and all that." introduction_texts.level11 = " You've been given the chance to build the ultimate in hospitals. This is an exceedingly prestigious area, and the Ministry would like to see the best possible hospital. We'll be expecting you to make big money, have a superbly high reputation and cover every possible eventuality. It's an important job, this. You'll have to be something special to pull it off. Note, too, that there have been sightings of UFOs in the area. Make sure your staff are prepared for some unexpected visitors. Your hospital will need to be worth $240,000, you'll need $500,000 in the bank, and your reputation will need to be 700." introduction_texts.level9 = " Having filled the Ministry's bank account and paid for a new limousine for the Minister himself, you can now get back to creating a caring, well-run hospital for the benefit of the unwell and needy. You can expect a lot of different problems to crop up here. If you have enough well-trained staff and rooms, you should have all the angles covered. Your hospital will need to be worth $200,000, and you'll need $400,000 in the bank. Any less and you won't be able to finish the level." introduction_texts.level16 = " Once you have diagnosed some of the patients you will need to build treatment facilities and clinics to cure them - a good one to start off with is the Pharmacy. You'll also need a Nurse to dispense the various drugs in the Pharmacy." introduction_texts.level10 = " As well as covering all the illnesses which crop up in this neck of the woods, the Ministry request that you spend some time concentrating on the efficiency of your drugs. There have been some complaints from Ofsick, the Health Watchdog, so in order to look good you must make sure all your drugs are extremely efficient. Also, make sure your hospital is above reproach as well. Keep those deaths down. As a hint, you might like to keep space free for a Jelly Vat. Develop all your drugs to at least 80 per cent efficiency, get a reputation of 650 and stash $500,000 in the bank to win." introduction_texts.level12 = " You've got the mother of all challenges now. Impressed with your success, the Ministry has got the top job for you; they want someone to build another ultimate hospital, make a vast amount of dosh and have an incredible reputation. You'll also be expected to buy all the land you can, cure everything (and we mean everything) and win all the awards. Think you're up to it? Earn $650,000, cure 750 people, and get a reputation of 800 to win this one." introduction_texts.level15 = " Okay that's the basic mechanics of putting a hospital together.// Your Doctors are going to need all the help they can get to diagnose some of these patients. You can assist them by building another diagnosis facility such as the General Diagnosis Room." -- A small error in the introduction text of level 2 introduction_texts.level2 = " There is a greater variety of ailments in this area. Set up your hospital to deal with more patients, " .. "and plan to build a Research Department. Remember to keep your establishment clean, and try to get your " .. "reputation as high as possible - you'll be dealing with diseases like Slack Tongue, so you'll need a Slack " .. "Tongue Clinic. You can also build a Cardiogram to help you diagnose new illnesses. Both these rooms will " .. "need to be researched before you can build them. Now you can also buy extra plots of land to expand your " .. "hospital - use the Town map for this. Aim for a reputation of 300 a bank balance of $10,000 and 40 people cured." -- Override for level progress typo level_progress.hospital_value_enough = "Keep the value of your hospital above %d and attend to your other problems to win the level." level_progress.cured_enough_patients = "You've cured enough of your patients, but you need to get your hospital in better order to win the level." -- Override for multiplayer typos multiplayer.players_failed = "The following player(s) failed to achieve the last objective:" multiplayer.everyone_failed = "Everyone failed to satisfy that last objective. So everyone gets to play on!" -- Override for a disease patient choice typo disease_discovered_patient_choice.need_to_employ = "Employ a %s to be able to handle this situation." -- Override for shorter messages and a typo in 12.2 letter[9][2] = "You have proved yourself to be the best hospital administrator in medicine's long and chequered history. Such a momentous achievement cannot go unrewarded, so we would like to offer you the honorary post of Supreme Chief of All Hospitals. This comes with a salary of $%d. You will be given a tickertape parade, and people will show their appreciation wherever you go.//" letter[10][2] = "Congratulations on successfully running every hospital we assigned you to. Such a superb performance qualifies you for the freedom of all the world's cities. You are to be given a pension of $%d, and all we ask is that you travel, for free, around the nation, promoting the work of all hospitals to your adoring public.//" letter[11][2] = "Your career has been exemplary, and you are an inspiration to all of us. Thank you for running so many hospitals so well. We would like to grant you a lifetime salary of $%d, and would ask simply that you travel by official open-topped car from city to city, giving lectures about how you achieved so much so fast.//" letter[11][3] = "You are an example to every wise person, and without exception, everybody in the world regards you as a supreme asset.//" letter[12][2] = "Your successful career as the best hospital administrator since Moses is nearing an end. Befitting your impact on the nation, the Ministry would like to offer you a salary of $%d simply to appear on our behalf, opening fetes, launching ships, and doing chat shows. It would be great PR for us all!//" ------------------------------- NEW STRINGS ------------------------------- date_format = { daymonth = "%1% %2:months%", } object.litter = "Litter" tooltip.objects.litter = "Litter: Left on the floor by a patient because he did not find a bin to throw it in." object.rathole = "Rathole" tooltip.objects.rathole = "Home of a rat family that found your hospital dirty enough to live here." tooltip.fax.close = "Close this window without deleting the message" tooltip.message.button = "Left click to open message" tooltip.message.button_dismiss = "Left click to open message, right click to dismiss it" tooltip.casebook.cure_requirement.hire_staff = "You need to employ staff to handle this treatment" tooltip.casebook.cure_type.unknown = "You do not yet know how to treat this disease" tooltip.research_policy.no_research = "No research is being carried out in this category at the moment" tooltip.research_policy.research_progress = "Progress towards the next discovery in this category: %1%/%2%" menu["player_count"] = "PLAYER COUNT" menu_file = { load = " (%1%) LOAD ", save = " (%1%) SAVE ", restart = " (%1%) RESTART", quit = " (%1%) QUIT " } menu_options = { sound = " (%1%) SOUND ", announcements = " (%1%) ANNOUNCEMENTS ", music = " (%1%) MUSIC ", jukebox = " (%1%) JUKEBOX ", lock_windows = " LOCK WINDOWS ", edge_scrolling = " EDGE SCROLLING ", capture_mouse = " CAPTURE MOUSE ", adviser_disabled = " (%1%) ADVISER ", warmth_colors = " WARMTH COLOURS ", wage_increase = " WAGE REQUESTS ", twentyfour_hour_clock = " 24 HOUR CLOCK " } menu_options_game_speed = { pause = " (%1%) PAUSE ", slowest = " (%1%) SLOWEST ", slower = " (%1%) SLOWER ", normal = " (%1%) NORMAL ", max_speed = " (%1%) MAX SPEED ", and_then_some_more = " (%1%) AND THEN SOME MORE ", } menu_options_warmth_colors = { choice_1 = " RED ", choice_2 = " BLUE GREEN RED ", choice_3 = " YELLOW ORANGE RED ", } menu_options_wage_increase = { grant = " GRANT ", deny = " DENY ", } -- Add F-keys to entries in charts menu (except briefing), also town_map was added. menu_charts = { bank_manager = " (%1%) BANK MANAGER ", statement = " (%1%) STATEMENT ", staff_listing = " (%1%) STAFF LISTING ", town_map = " (%1%) TOWN MAP ", casebook = " (%1%) CASEBOOK ", research = " (%1%) RESEARCH ", status = " (%1%) STATUS ", graphs = " (%1%) GRAPHS ", policy = " (%1%) POLICY ", machine_menu = " (%1%) MACHINES MENU", adviser_history = " (%1%) ADVISER HISTORY ", } menu_debug = { jump_to_level = " JUMP TO LEVEL ", connect_debugger = " (%1%) CONNECT LUA DBGp SERVER ", transparent_walls = " (%1%) TRANSPARENT WALLS ", limit_camera = " LIMIT CAMERA ", disable_salary_raise = " DISABLE SALARY RAISE ", allow_blocking_off_areas = " ALLOW BLOCKING OFF AREAS ", make_debug_fax = " MAKE DEBUG FAX ", make_debug_patient = " MAKE DEBUG PATIENT ", cheats = " (%1%) CHEATS ", lua_console = " (%1%) LUA CONSOLE ", debug_script = " (%1%) RUN DEBUG SCRIPT ", calls_dispatcher = " CALLS DISPATCHER ", dump_strings = " (%1%) DUMP STRINGS ", dump_gamelog = " (%1%) DUMP GAME LOG ", map_overlay = " MAP OVERLAY ", sprite_viewer = " SPRITE VIEWER ", } menu_debug_overlay_blocking_off_areas = { choice_1 = " TOTALLY FORBIDDEN ", choice_2 = " PARTIALLY ALLOWED ", choice_3 = " COMPLETELY ALLOWED ", } menu_debug_overlay = { none = " NONE ", flags = " FLAGS ", positions = " POSITIONS ", heat = " TEMPERATURE ", byte_0_1 = " BYTE 0 & 1 ", byte_floor = " BYTE FLOOR ", byte_n_wall = " BYTE N WALL ", byte_w_wall = " BYTE W WALL ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " PARCEL ", } menu_player_count = { players_1 = " 1 PLAYER ", players_2 = " 2 PLAYERS ", players_3 = " 3 PLAYERS ", players_4 = " 4 PLAYERS ", } tooltip.toolbar = { machine_menu = "Machine menu", } adviser = { room_forbidden_non_reachable_parts = "Placing the room in this location would result in parts of the hospital not being reachable.", warnings = { no_desk = "You should build a reception desk and hire a receptionist at some point!", no_desk_1 = "If you want patients to come to your hospital, you will need to hire a receptionist and build her a desk to work at!", no_desk_2 = "Well done, that must be a world record: nearly a year and no patients! If you want to continue as Manager of this hospital, you will need to hire a receptionist and build a reception desk for her to work from!", no_desk_3 = "That's just brilliant, nearly a year and you don't have a staffed reception! How do you expect to get any patients? Now get it sorted out and stop messing around!", no_desk_4 = "A Receptionist needs to have her own work station to greet your patients as they arrive.", no_desk_5 = "Well it's about time, you should start to see some patients arriving soon!", no_desk_6 = "You have a receptionist, so how about building a reception desk for her to work from?", no_desk_7 = "You've built the reception desk, so how about hiring a receptionist? You won't see any patients until you get this sorted out you know!", another_desk = "You'll need to build another desk for that new receptionist.", cannot_buy = "You can't buy more of that item!", cannot_afford = "You don't have enough money in the bank to hire that person!", -- I can't see anything like this in the original strings cannot_afford_2 = "You don't have enough money in the bank to make that purchase!", cannot_afford_machine = "You need at least $%1% in the bank to afford a new %2%!", falling_1 = "Hey! That is not funny, watch where you click that mouse; someone could get hurt!", falling_2 = "Stop messing about, how would you like it?", falling_3 = "Ouch, that had to hurt, someone call a Doctor!", falling_4 = "This is a Hospital, not a Theme Park!", falling_5 = "This is not the place for knocking people over, they're ill you know!", falling_6 = "This is not a bowling alley, sick people should not be treated like that!", research_screen_open_1 = "You have to build a Research Department before you can access the Research screen.", research_screen_open_2 = "Research is disabled for the current level.", researcher_needs_desk_1 = "A Researcher needs to have a desk to work at.", researcher_needs_desk_2 = "Your Researcher is pleased that you have allowed him to have a break. If you were intending to have more staff researching, then you need to provide them each with a desk to work from.", researcher_needs_desk_3 = "Each Researcher needs to have his own desk to work from.", nurse_needs_desk_1 = "Each Nurse needs to have her own desk to work from.", nurse_needs_desk_2 = "Your Nurse is pleased that you have allowed her to have a break. If you were intending to have more than one working in the ward, then you need to provide them each with a desk to work from.", low_prices = "You're charging too little for %s. This will bring people to your hospital, but you won't make a lot of profit from each one.", high_prices = "Your charges for %s are high. This will make big profits in the short-term, but ultimately you'll start to drive people away.", fair_prices = "Your charges for %s seem fair and balanced.", patient_not_paying = "A patient left without paying for %s because it's too expensive!", no_doctor_no_gp_office = "You should build a GP's Office and hire a doctor at some point!", no_gp_office = "You haven't built a GP's Office where your doctors can diagnose the patients!", }, cheats = { th_cheat = "Congratulations, you have unlocked cheats!", roujin_on_cheat = "Roujin's challenge activated! Good luck in the coming months...", roujin_off_cheat = "Roujin's challenge deactivated. Everything will be back to normal soon.", norest_on_cheat = "Oh no! It appears your staff have consumed too much caffeine and no longer feel a need to rest.", norest_off_cheat = "Phew! Looks like that buzz finally wore off. Your staff will now rest properly.", queuejump_on_cheat = "Your patients know how to queue. They let nearly dead patients go to the front of the line.", queuejump_off_cheat = "People have turned selfish and are no longer letting nearly dead patients jump the queues.", superdoctor_on_cheat = "A superb medical school has recommended you to their graduates! Check the staff for hire.", superdoctor_off_cheat = "The medical school chief no longer recommends you to their graduates.", }, staff_place_advice = { not_enough_lecture_chairs = "Each student doctor needs a lecture chair to sit in!", }, } dynamic_info.patient.actions.no_gp_available = "Waiting for you to build a GP's office" dynamic_info.staff.actions.heading_for = "Heading for %s" dynamic_info.staff.actions.fired = "Fired" dynamic_info.staff.actions.vaccine = "Vaccinating a patient" dynamic_info.patient.actions.epidemic_vaccinated = "I am no longer contagious" dynamic_info.object.strength_extra_info = "Strength %d (Upgradeable to %d)" progress_report.free_build = "FREE BUILD" fax = { choices = { return_to_main_menu = "Return to the main menu", accept_new_level = "Move on to the next level", decline_new_level = "Continue playing a while longer", }, emergency = { num_disease_singular = "There is 1 person with %s and they require immediate attention.", free_build = "If you are successful your reputation will increase but if you fail your reputation will be seriously dented.", }, vip_visit_result = { remarks = { free_build = { "It is a very nice hospital you have there! Not very hard to get it working without money limitations though, eh?", "I'm no economist, but I think I could run this hospital too if you know what I mean...", "A very well run hospital. Watch out for the recession though! Right... you don't have to worry about that.", } } } } letter = { dear_player = "Dear %s\n", custom_level_completed = "Well done! You've completed all goals on this custom level!", return_to_main_menu = "Would you like to return to the main menu or continue playing?", campaign_level_completed = "Good job! You beat the level. But it's not over yet!\n Would you like a position at %s Hospital?", campaign_completed = "Incredible! You managed to finish all the levels. You can now relax and enjoy filling forums across the Internet of your achievements. Good luck!", campaign_level_missing = "Sorry, but the next level of this campaign seems to be missing. (Name: %s)", } install = { title = "--------------------------------- CorsixTH Setup ---------------------------------", th_directory = "CorsixTH needs a copy of the data files from the original Theme Hospital game (or demo) in order to run. Please use the below selector to locate the Theme Hospital install directory.", ok = "OK", exit = "Exit", cancel = "Cancel", } misc = { not_yet_implemented = "(not yet implemented)", no_heliport = "Either no diseases have been discovered yet, or there is no heliport on this map. It might be that you need to build a reception desk and hire a receptionist", cant_treat_emergency = "Your hospital cannot treat this emergency because its disease has not been discovered. Feel free to try again.", epidemics_off = "Epidemics are disabled. No new epidemics will be created", epidemics_on = "Epidemics are re-enabled", earthquakes_off = "Earthquakes are disabled", earthquakes_on = "Earthquakes are re-enabled", epidemic_no_icon_to_toggle = "Unable to show/hide infected icons - no epidemics in progress that are not revealed", epidemic_no_diseases = "Cannot create epidemic - no contagious diseases available", epidemic_no_receptionist = "Cannot create epidemic - no staffed reception desk", invulnerable_machines_off = "Machines will wear and break down again.", invulnerable_machines_on = "Machines will no longer wear or break down.", } main_menu = { new_game = "Campaign", custom_campaign = "Custom Campaign", custom_level = "Single Scenario", continue = "Continue Game", load_game = "Load Game", options = "Settings", map_edit = "Map Editor", savegame_version = "Savegame version: ", updates_off = "Not checking for updates", version = "Version: ", exit = "Exit", } tooltip.main_menu = { new_game = "Start the first level on the campaign", custom_campaign = "Play a campaign created by the community", custom_level = "Build your hospital in a single scenario", continue = "Continue your latest saved game", load_game = "Load a saved game", options = "Tweak various settings", map_edit = "Create a custom map", exit = "No, no, please don't leave!", quit = "You are about to quit from CorsixTH. Are you sure this is what you want to do?", } load_game_window = { caption = "Load Game (%1%)", load_button = "Load", } tooltip.load_game_window = { load_game = "Load game %s", load_game_number = "Load game %d", load_autosave = "Load autosave", } custom_game_window = { caption = "Custom Game", free_build = "Free Build", load_selected_level = "Start", } tooltip.custom_game_window = { choose_game = "Click a level to read more about it", free_build = "Tick this box if you want to play without money or winning and losing conditions", load_selected_level = "Load and play the selected level", } custom_campaign_window = { caption = "Custom Campaign", start_selected_campaign = "Start campaign", duplicates_warning = "%d campaign(s) with duplicate names have been hidden", } tooltip.custom_campaign_window = { choose_campaign = "Choose a campaign to read more about it", start_selected_campaign = "Load the first level of this campaign", duplicates_warning = "See the console window for specific errors", } save_game_window = { caption = "Save Game (%1%)", new_save_game = "New Savegame", save_button = "Save", missing_filename = "Please enter the name of the new save or select the save to overwrite.", } tooltip.save_game_window = { save_game = "Overwrite savegame %s", new_save_game = "Enter name for a new savegame", } save_map_window = { caption = "Save Map (%1%)", new_map = "New Map", save_button = "Save", missing_filename = "Please enter the name of the new map file or select the map file to overwrite.", } tooltip.save_map_window = { map = "Overwrite map %s", new_map = "Enter name for a map savegame", } load_map_window = { caption = "Load Map (%1%)", load_button = "Load", } menu_list_window = { name = "Name", save_date = "Modified", ok = "OK", back = "Back", } tooltip.menu_list_window = { name = "Click here to sort the list by name", save_date = "Click here to sort the list by last modification date", ok = "Confirm choice", back = "Close this window", } options_window = { caption = "Settings", option_on = "On", option_off = "Off", option_enabled = "Enabled", option_disabled = "Disabled", fullscreen = "Fullscreen", resolution = "Resolution", scale_ui = "UI Scale", capture_mouse = "Capture Mouse", right_mouse_scrolling = "Mouse Scrolling", right_mouse_scrolling_option_middle = "Middle Button", right_mouse_scrolling_option_right = "Right Button", custom_resolution = "Custom...", width = "Width", height = "Height", customise = "Customise", folder = "Folders", language = "Game Language", apply = "Apply", cancel = "Cancel", back = "Back", scrollspeed = "Scroll Speed", shift_scrollspeed = "Shift Scroll Speed", zoom_speed = "Zoom Speed", autosave_frequency = "Autosave Frequency", hotkey = "Hotkeys", check_for_updates = "Check for Updates", sound = "Sound", } autosave_frequency = { monthly = "Monthly", weekly = "Weekly", daily = "Daily", } tooltip.autosave_frequency = { monthly = "Autosave once per month, on the first day of each month. A total of 12 saves with a depth of 1 year.", weekly = "Autosave once per week on the 1st, 7th, 14th, 21nd, and 28th of each month. A total of 60 saves with a depth of 1 year.", daily = "Autosave once per day at the start of each in-game day. A total of 365 saves with a depth of 1 year. Please note that a typical save can take up to 1 megabyte or even more. This way your autosaves folder can grow to 300-500 MB.", } tooltip.options_window = { fullscreen = "Whether the game should run in fullscreen or windowed mode", fullscreen_button = "Click to toggle fullscreen mode", resolution = "The resolution the game should run in", select_resolution = "Select a new resolution", resolution_unavailable = "Resolution unavailable at current UI Scale", scale_ui = "Scale the user interface. Only scale options that fit the display are shown, for more increase the resolution.", select_ui_scale = "Select a new user interface scale", ui_scale_unavailable = "User interface scaling not available, please select a higher resolution first.", capture_mouse = "Click to toggle capturing the cursor while in game", right_mouse_scrolling = "Toggle the mouse button that is used to scroll the map", width = "Enter desired screen width", height = "Enter desired screen height", apply = "Apply the entered resolution", cancel = "Return without changing the resolution", customise_button = "More settings you can change to customise your game play experience", folder_button = "Folder Options", language = "The language texts in the game will appear in", select_language = "Select the game language", language_dropdown_item = "Choose %s as language", language_dropdown_no_font = "Select a font in the folders settings to enable this language", back = "Close the Settings window", scrollspeed = "Set the scroll speed between 1 (slowest) to 10 (fastest). The default is 2.", shift_scrollspeed = "Set the speed of scrolling while the shift key is pressed. 1 (slowest) to 10 (fastest). The default is 4.", zoom_speed = "Set the camera zoom speed from 10 (slowest) to 1000 (fastest). The default is 80.", autosave_frequency = "Set how often the game will make autosaves.", apply_scrollspeed = "Apply the entered scroll speed.", cancel_scrollspeed = "Return without changing the scroll speed.", apply_shift_scrollspeed = "Apply the entered shift scroll speed.", cancel_shift_scrollspeed = "Return without changing the shift scroll speed.", apply_zoomspeed = "Apply the entered zoom speed.", cancel_zoomspeed = "Return without changing the zoom speed.", hotkey = "Change keyboard hotkeys.", check_for_updates = "Sets whether the game should look for updates on launch.", sound = "Change audio settings", } audio_window = { caption = "Sound Settings", audio = "Global Audio", sound_volume = "Sound Volume", announcement_volume = "Announcement Volume", music_volume = "Music Volume", midi_api = "MIDI API", midi_port = "MIDI Port", soundfont = "SoundFont", default_midi_api = "Default (Software)", default_midi_port = "Default", jukebox = "Jukebox", back = "Back", soundfont_location_caption = "Choose soundfont (%1%)", } tooltip.audio_window = { audio_button = "Turn on or off all game audio", audio_toggle = "Toggle on or off", sound_volume = "Sound volume", announcement_volume = "Announcement volume", music_volume = "Music volume", midi_api = "The API to use for in game music. Not used with custom music folder.", midi_port = "Device port to use for in game music.", soundfont_location = "Location of a Soundfont file for playing MIDI music. A default Soundfont is used if not specified.", browse = "Browse for folder location", browse_soundfont = "Browse for another Soundfont file (sf2, or sf3) ( Current location: %1% ) ", no_soundfont_specified = "Using default soundfont", jukebox = "Open the Jukebox to control the music", back = "Close the window", } customise_window = { caption = "Custom Settings", option_on = "On", option_off = "Off", emergency_only = "Emergency Only", regular_patients = "Regular Patients", male_only = "Male Only", male_and_female = "Male and Female", back = "Back", movies = "Movies", intro = "Play Intro Movie", paused = "Build While Paused", volume = "Volume Down Hotkey", aliens = "Alien Patients", fractured_bones = "Fractured Bones", average_contents = "Average Contents", remove_destroyed_rooms = "Remove destroyed rooms", machine_menu_button = "Machine menu button", enable_screen_shake = "Screen Shake", enable_announcer_subtitles = "Announcer Subtitles", } tooltip.customise_window = { movies = "Global movie control. This will allow you to enable or disable all movies", intro = "Turn the intro movie on and off. Global movies must be on if you want the intro movie to play each time you launch CorsixTH", paused = "In the original Theme Hospital, the player could only use the top menu while the game was paused. This is the default behaviour in CorsixTH, but turning this option on will allow you to build rooms and pick up objects while the game is paused", volume = "If the volume down button causes the Casebook to open, turn this option on to change the hotkey for the Casebook to Shift + C", aliens = "Due to incomplete animations, patients with Alien DNA will only appear via Emergencies by default. To allow patients with Alien DNA to visit your hospital normally, set this option to Regular Patients", fractured_bones = "Due to poor animation, female patients with Fractured Bones will not appear by default. To allow female patients with Fractured Bones to visit your hospital, set this option to Male and Female", average_contents = "If you would like the game to remember which extra objects you usually add while building rooms, turn this option on", remove_destroyed_rooms = "In the original Theme Hospital, exploded machines made rooms permanently unusable. If you would like to be able to remove destroyed rooms for a fee, turn this option on", machine_menu_button = "If you would like to have a machine menu button in bottom panel, turn this option on. Keep in mind that this button will not be available in small screen resolutions", enable_screen_shake = "Earthquakes will cause the entire screen to shake. If you would prefer the screen to remain still, turn this option off", enable_announcer_subtitles = "If you would like the game to display subtitles for your hospital's announcements, turn this option on", back = "Close this menu and go back to the Settings Menu", } folders_window = { caption = "Folder Locations", data_label = "TH Data", font_label = "Font", music_label = "Music", savegames_label = "Saves", screenshots_label = "Screenshots", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "Here you can specify a new Theme Hospital installation directory or ISO file. As soon as you choose the new directory the game will be restarted. Note that file extensions are not currently shown.", savegames_location = "Select the directory you want to use for Saves", music_location = "Select the directory you want to use for your Music", screenshots_location = "Select the directory you want to use for Screenshots", back = "Back", } tooltip.folders_window = { browse = "Browse for folder location", data_location = "The directory or ISO file of the original Theme Hospital installation, which is required to run CorsixTH", font_location = "Location of a font file that is capable of displaying Unicode characters required by your language. If this is not specified you will not be able to choose languages that need more characters than the original game can supply. Example: Russian and Chinese", savegames_location = "By default, the Saves directory is alongside the config file and will be used for storing saved games in. Alternatively, you can choose your own by browsing to the directory that you want to use.", screenshots_location = "By default, the Screenshots are stored in a folder alongside the config file. Alternatively, you can choose your own by browsing to the directory that you want to use.", music_location = "Select a location for your music files by browsing to the directory you want to use (directory must already exist beforehand).", browse_data = "Browse for another location for your Theme Hospital installation ( Current location: %1% ) ", browse_font = "Browse for another font file ( Current location: %1% ) ", browse_saves = "Browse for another location for your Saves directory ( Current location: %1% ) ", browse_screenshots = "Browse for another location for your Screenshots directory ( Current location: %1% ) ", browse_music = "Browse for another location for your Music directory ( Current location: %1% ) ", no_font_specified = "No font location specified yet!", not_specified = "No folder location specified yet!", default = "Default location", reset_to_default = "Reset the directory to its default location ( %1% )", clear_directory = "Clear current directory selection", back = "Close this menu and go back to the Settings Menu", } hotkey_window = { caption_main = "Hotkey Assignment", caption_panels = "Panel Keys", button_accept = "Accept", button_defaults = "Reset to Defaults", button_cancel = "Cancel", button_back = "Back", button_toggleKeys = "Toggle Keys", button_gameSpeedKeys = "Game Speed Keys", button_recallPosKeys = "Recall Position Keys", panel_globalKeys = "Global Keys", panel_generalInGameKeys = "General In-Game Keys", panel_scrollKeys = "Scroll Keys", panel_zoomKeys = "Zoom Keys", panel_gameSpeedKeys = "Game Speed Keys", panel_toggleKeys = "Toggle Keys", panel_debugKeys = "Debug Keys", panel_storePosKeys = "Store Position Keys", panel_recallPosKeys = "Recall Position Keys", panel_altPanelKeys = "Alternate Panel Keys", global_confirm = "Confirm", global_confirm_alt = "Confirm Alt", global_cancel = "Cancel", global_cancel_alt = "Cancel Alt", global_fullscreen_toggle = "Fullscreen", global_exitApp = "Exit App", global_resetApp = "Reset App", global_releaseMouse = "Release Mouse", global_connectDebugger = "Debugger", global_showLuaConsole = "Lua Console", global_runDebugScript = "Debug Script", global_screenshot = "Screenshot", global_stop_movie_alt = "Stop Movie", global_window_close_alt = "Close Window", ingame_scroll_up = "Scroll Up", ingame_scroll_down = "Scroll Down", ingame_scroll_left = "Scroll Left", ingame_scroll_right = "Scroll Right", ingame_scroll_shift = "Speed Shift", ingame_zoom_in = "Zoom In", ingame_zoom_in_more = "Zoom In More", ingame_zoom_out = "Zoom Out", ingame_zoom_out_more = "Zoom Out More", ingame_reset_zoom = "Reset Zoom", ingame_showmenubar = "Show Menu Bar", ingame_showCheatWindow = "Cheat Menu", ingame_loadMenu = "Load Game", ingame_saveMenu = "Save Game", ingame_jukebox = "Jukebox", ingame_openFirstMessage = "Level Message", ingame_pause = "Pause", ingame_gamespeed_slowest = "Slowest", ingame_gamespeed_slower = "Slower", ingame_gamespeed_normal = "Normal", ingame_gamespeed_max = "Max", ingame_gamespeed_thensome = "Then Some", ingame_gamespeed_speedup = "Speed Up", ingame_panel_bankManager = "Bank Manager", ingame_panel_bankStats = "Bank Status", ingame_panel_staffManage = "Manage Staff", ingame_panel_townMap = "Town Map", ingame_panel_casebook = "Casebook", ingame_panel_research = "Research", ingame_panel_status = "Status", ingame_panel_charts = "Charts", ingame_panel_policy = "Policy", ingame_panel_machineMenu = "Machines Menu", ingame_panel_adviserHistory = "Adviser History", ingame_panel_map_alt = "Town Map 2", ingame_panel_research_alt = "Research 2", ingame_panel_casebook_alt = "Casebook 2", ingame_panel_casebook_alt02 = "Casebook 3", ingame_panel_buildRoom = "Build Room", ingame_panel_furnishCorridor = "Furnish Corridor", ingame_panel_editRoom = "Edit Room", ingame_panel_hireStaff = "Hire Staff", ingame_rotateobject = "Rotate Object", ingame_quickSave = "Quick Save", ingame_quickLoad = "Quick Load", ingame_restartLevel = "Restart Level", ingame_quitLevel = "Quit Level", ingame_setTransparent = "Transparent", ingame_toggleTransparent = "Toggle transparent", ingame_toggleAnnouncements = "Announcements", ingame_toggleSounds = "Sounds", ingame_toggleMusic = "Music", ingame_toggleAdvisor = "Advisor", ingame_toggleInfo = "Info", ingame_poopLog = "Dump Log", ingame_poopStrings = "Dump Strings", ingame_patient_gohome = "Send Home", ingame_sellPickedUpItem = "Sell Picked-up Item", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_storePosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_recallPosition_0 = "10", } tooltip.hotkey_window = { button_accept = "Accept and save hotkey assignments", button_defaults = "Reset all hotkeys to the program's defaults", button_cancel = "Cancel the assignment and go back to the options menu", panel_globalKeys = "Assign global hotkeys", panel_generalInGameKeys = "Assign general in-game hotkeys", button_gameSpeedKeys = "Assign hotkeys to control the game speed", panel_scrollKeys = "Assign hotkeys to scroll the screen", panel_zoomKeys = "Assign hotkeys to zoom in and out", panel_toggleKeys = "Assign hotkeys to toggle options", caption_panels = "Assign hotkeys to open panels", button_recallPosKeys = "Assign hotkeys to save and recall camera positions", panel_debugKeys = "Assign hotkeys for debugging", button_back_02 = "Go back to the main hotkey window. Hotkeys changed in this window can be accepted there", } font_location_window = { caption = "Choose font (%1%)", } handyman_window = { all_parcels = "All plots", parcel = "Plot" } tooltip.handyman_window = { parcel_select = "The plot where the handyman accepts tasks, click to change setting" } new_game_window = { caption = "Campaign", player_name = "Player name", option_on = "On", option_off = "Off", difficulty = "Difficulty", easy = "Junior (Easy)", medium = "Doctor (Medium)", hard = "Consultant (Hard)", tutorial = "Tutorial", start = "Start", cancel = "Cancel", } tooltip.new_game_window = { player_name = "Enter the name you wish to be referred to as in the game", difficulty = "Select the difficulty level you want to play the game in", easy = "If you are new to simulation games this is the option for you", medium = "This is the middle way to go if you are unsure what to choose", hard = "If you are used to this kind of game and want more of a challenge, pick this option", tutorial = "Click here to turn on some help to get you started once in the game", start = "Start the game with the chosen settings", cancel = "Oh, I didn't really mean to start a new game!", } lua_console = { execute_code = "Execute", close = "Close", } tooltip.lua_console = { textbox = "Enter Lua code to run here", execute_code = "Run the code you have entered", close = "Close the console", } errors = { dialog_missing_graphics = "Sorry, the demo data files don't contain this dialog.", save_prefix = "Error while saving game: ", load_prefix = "Error while loading game: ", load_map_prefix = "Error while loading map: ", load_level_prefix = "Error while loading level: ", no_games_to_contine = "There are no saved games.", load_quick_save = "Error, cannot load the quicksave as it does not exist, not to worry as we have now created one for you!", map_file_missing = "Could not find the map file %s for this level!", minimum_screen_size = "Please enter a screen size of at least %dx%d.", unavailable_screen_size = "The screen size you requested is not available in fullscreen mode.", alien_dna = "NOTE: There are no animations for Alien patients for sitting down, opening or knocking on doors etc. Like with Theme Hospital, performing those actions will change the patient to normal then back to Alien. Patients with Alien DNA will only appear if they are set to in the level file.", fractured_bones = "NOTE: The animation for female patients with Fractured Bones is not perfect", could_not_load_campaign = "Failed to load the campaign: %s", could_not_find_first_campaign_level = "Could not find the first level of this campaign: %s", save_to_tmp = "Attempt to write to %s failed. File was written instead to temporary location %s because of the error: %s", dialog_empty_queue = "Sorry, a humanoid just had an empty action queue, which means that they didn't know what to do next. Please consult the command window for more detailed information. A dialog with the offending humanoid has been opened. Would you like them to leave the hospital?", compatibility_error = { new_in_old = "Sorry, this save was created with a newer version of CorsixTH and is not compatible. Please update to a more recent version.", demo_in_full = "Sorry, you can't open a demo savegame with the full game files loaded. Please update your TH Data folder setting.", full_in_demo = "Sorry, you can't open a full game save with the demo files loaded. Please update your TH Data folder setting.", }, music = "There are playback issues with one or more files in your music directory. Problematic files will be disabled in the jukebox. See the console window for more information.", missing_corsixth_file = "Warning: Could not find file %s, try reinstalling CorsixTH.", missing_th_data_file = "Warning: Could not find file %s, the Theme Hospital data is incomplete.", missing_level_file = "Error: Could not find the chosen level file.", overlay = { incorrect_difficulty = "Overlay difficulty must be easy, full or hard. Current value is ", incorrect_level_number = "Overlay level number must be 1-12. Current value is ", missing_setting = "No difficulty and level number given in overlay field of custom level.", }, cannot_restart_missing_files = "Sorry, but this level cannot be restarted because of missing files %s or %s.", } warnings = { levelfile_variable_is_deprecated = "Notice: The level '%s' contains a deprecated variable definition in the level file." .. "'%LevelFile' has been renamed to '%MapFile'. Please advise the map creator to update the level.", newersave = "Warning, you have loaded a save from a newer version of CorsixTH. It is not recommended to continue as crashes may occur. Play at your own risk." } confirmation = { needs_restart = "Changing this setting requires CorsixTH to restart. Any unsaved progress will be lost. Are you sure you want to do this?", abort_edit_room = "You are currently building or editing a room. If all required objects are placed it will be finished, but otherwise it will be deleted. Continue?", maximum_screen_size = "The screen size you have entered is greater than 3000 x 2000. Larger resolutions are possible but will require better hardware in order to maintain a playable frame rate. Are you sure you want to continue?", remove_destroyed_room = "Would you like to remove the room for $%d?", replace_machine_extra_info = "The new machine will have %d strength (currently %d).", restart_mapeditor = "Are you sure you want to restart the map editor?", quit_mapeditor = "Are you sure you want to quit the map editor?", very_old_save = "There have been a lot of updates to the game since you started. To be sure that all features work as intended would you like to restart this level now?//" .. "Your old save won't be deleted unless you overwrite it.", } information = { custom_game = "Welcome to CorsixTH. Have fun with this custom map!", no_custom_game_in_demo = "Sorry, but in the demo version you can't play any custom maps.", cannot_restart = "Unfortunately this custom game was saved before the restart feature was implemented.", level_lost = { "Bummer! You failed the level. Better luck next time!", "The reason you lost:", reputation = "Your reputation fell below %d.", balance = "Your bank balance fell below %d.", percentage_killed = "You killed more than %d percent of the patients.", cheat = "Hope you didn't click the Lose Level button by accident!", staff_happiness = "Your average staff happiness fell below %d%.", patient_happiness = "Your average patient happiness fell below %d%.", }, cheat_not_possible = "You cannot use that cheat on this level.", } tooltip.information = { close = "Close the information dialog", } totd_window = { tips = { "Every hospital needs a reception desk and a GP's office to get going. After that, it depends on what kind of patients are visiting your hospital. A pharmacy is always a good choice, though.", "Machines such as the Inflator need maintenance. Employ a handyman or two to repair your machines, or you'll risk your staff and patients getting hurt.", "After a while, your staff will get tired. Be sure to build a staff room, so they can relax.", "Place enough radiators to keep your staff and patients warm, or they will become unhappy. Use the town map to locate any spots in your hospital that need more heating.", "A doctor's skill level greatly influences the quality and speed of his diagnoses. Place a skilled doctor in your GP's office, and you won't need as many additional diagnosis rooms.", "Juniors and doctors can improve their skills by learning from a consultant in the training room. If the consultant has a special qualification (surgeon, psychiatrist, or researcher), he will also pass on this knowledge to his pupil(s).", "Did you try to enter the European emergency number (112) into the fax machine? Make sure your sound is on!", "You can adjust some settings such as the resolution and language in the options window found both in the main menu and ingame.", "You selected a language other than English, but there's English text all over the place? Help us by translating missing texts into your language!", "The CorsixTH team is looking for reinforcements! Are you interested in coding, translating or creating graphics for CorsixTH? Contact us at our Discord Server, Sub-Reddit or Matrix Server. Links are on our website (CorsixTH.com).", "If you find a bug, please report it at our bugtracker: th-issues.corsix.org", "Each level has certain requirements to fulfill before you can move on to the next one. Check the status window to see your progression towards the level goals.", "If you want to edit or remove an existing room, you can do so with the edit room button found in the bottom toolbar.", "In a horde of waiting patients, you can quickly find out which ones are waiting for a particular room by hovering over that room with your mouse cursor.", "Click on the door of a room to see its queue. You can do useful fine tuning here, such as reordering the queue or sending a patient to another room.", "Unhappy staff will ask for salary rises frequently. Make sure your staff is working in a comfortable environment to keep that from happening.", "Patients will get thirsty while waiting in your hospital, even more so if you turn up the heating! Place vending machines in strategic positions for some extra income.", "You can abort the diagnosis progress for a patient prematurely and guess the cure, if you already encountered the disease. Beware that this may increase the risk of a wrong cure, resulting in death for the patient.", "Emergencies can be a good source for some extra cash, provided that you have enough capacities to handle the emergency patients in time.", "Did you know you can assign Handymen to specific plots? Just click the All Plots text in their staff profile to cycle through them!", }, previous = "Previous Tip", next = "Next Tip", } tooltip.totd_window = { previous = "Display the previous tip", next = "Display the next tip", } debug_patient_window = { caption = "Debug Patient", } tooltip.debug_patient_window = { item = "Create a debug patient with %s", } cheats_window = { caption = "Cheats", warning = "Warning: You will not get any bonus points at the end of the level if you cheat!", cheated = { no = "Cheats used: No", yes = "Cheats used: Yes", }, cheats = { money = "Money Cheat", all_research = "All Research Cheat", emergency = "Create Emergency", vip = "Create VIP", toggle_earthquake = "Toggle earthquakes", earthquake = "Create Earthquake", toggle_epidemic = "Toggle epidemics", epidemic = "Spawn contagious patient", show_infected = "Show or hide infected icons", create_patient = "Create Patient", end_month = "End of Month", end_year = "End of Year", lose_level = "Lose Level", win_level = "Win Level", increase_prices = "Increase prices", decrease_prices = "Decrease prices", reset_death_count = "Reset death count", max_reputation = "Max reputation", repair_all_machines = "Repair all machines", toggle_invulnerable_machines = "Toggle invulnerable machines", }, close = "Close", } tooltip.cheats_window = { close = "Close the cheats dialog", cheats = { money = "Adds $10,000 to your bank balance", all_research = "Completes all research", emergency = "Creates an emergency", vip = "Creates a VIP", toggle_earthquake = "Toggle earthquakes", earthquake = "Creates an earthquake", toggle_epidemic = "Toggle whether epidemics can happen", epidemic = "Creates a contagious patient who may cause an epidemic to happen", show_infected = "Show/hide the infected icons for the active, discovered epidemic", create_patient = "Creates a Patient at the map border", end_month = "Jumps to the end of the month", end_year = "Jumps to the end of the year", lose_level = "Lose the current level", win_level = "Win the current level", increase_prices = "Increase all prices by 50% (max. 200%)", decrease_prices = "Decrease all prices by 50% (min. 50%)", reset_death_count = "Reset the hospital death count to zero", max_reputation = "Set the hospital reputation to the maximum", repair_all_machines = "Repairs all machines in the hospital", toggle_invulnerable_machines = "Toggle whether machines wear down when used", } } --Level description, can be double spaced after full-stop introduction_texts = { demo = "Welcome to the demo hospital!//" .. "Unfortunately the demo version only contains this level. However, there is more than enough to do here to keep you busy for a while! " .. "You will encounter various diseases that require different rooms to cure. From time to time, emergencies may occur. And you will need to research additional rooms using a research room. " .. "Your goal is to earn $100,000, have a hospital value of $70,000 and a reputation of 700, while having cured at least 75% of your patients. " .. "Make sure your reputation does not fall below 300 and that you don't kill off more than 40% of your patients, or you will lose.//" .. "Good luck!", } calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d calls; %d assigned", staff = "%s - %s", watering = "Watering @ %d,%d", repair = "Repair %s", close = "Close", } tooltip.calls_dispatcher = { task = "List of tasks - click task to open assigned staff's window and scroll to location of task", assigned = "This box is marked if someone is assigned to the corresponding task.", close = "Close the calls dispatcher dialog", } machine_menu = { machine = "Machine", status = "Status", remaining_strength = "Remain", total_strength = "Strength", close = "Close", } tooltip.machine_menu = { sort = "Click to sort by this value.", machine = "List of machines - click machine to open machine's window and scroll to its location", smoking = "This box is marked if the machine is at risk of exploding. Click to buy a new machine.", assigned = "This box is marked if a handyman is assigned to fix corresponding machine. Click to show assigned handyman.", remaining_strength = "This value shows remaining strength of the machine", total_strength = "This value shows total strength of the machine", header = { smoking = "Danger Indicator", assigned = "Repair assignment Indicator", machine = "Machine name", remaining_strength = "Remaining Strength of the machines.", status = "Status of the machines.", total_strength = "Total Strength of the machines.", }, close = "Close the machine list dialog", } adviser_history = { message = "Message", close = "Close", } tooltip.adviser_history = { delete_message = "Click to dismiss this message", message = "List of adviser messages - Newest messages appear first", header = { message = "Adviser messages", delete_message = "Click to delete all messages" }, close = "Close the adviser history dialog", } update_window = { caption = "Update Available!", new_version = "New Version:", current_version = "Current Version:", download = "Go to download page", ignore = "Skip and go to main menu", } tooltip.update_window = { download = "Go to the download page for the very latest version of CorsixTH", ignore = "Ignore this update for now. You will be notified again when you next open CorsixTH", } map_editor_window = { pages = { inside = "Inside", outside = "Outside", foliage = "Foliage", hedgerow = "Hedgerow", pond = "Pond", road = "Road", north_wall = "North wall", west_wall = "West wall", helipad = "Helipad", set_parcel = "Set parcel num", delete_wall = "Delete walls", parcel = "Parcel %d", set_parcel_tooltip = "Choose a number and press enter.", camera_1 = "Camera 1", camera_2 = "Camera 2", camera_3 = "Camera 3", camera_4 = "Camera 4", heliport_1 = "Heliport 1", heliport_2 = "Heliport 2", heliport_3 = "Heliport 3", heliport_4 = "Heliport 4", paste = "Paste area", }, checks = { spawn_points_and_path = "Warning: Patients cannot reach the hospital. They need 'road' tiles or 'outside' grey tiles at the edge of the map and a path of these tiles to the hospital entrance.", }, } hotkeys_file_err = { file_err_01 = "Unable to load hotkeys.txt file. Please ensure that CorsixTH " .. "has permission to read/write ", file_err_02 = ", or use the --hotkeys-file=filename command line option to specify a writable file. " .. "For reference, the error loading the hotkeys file was: ", } transactions.remove_room = "Build: Remove destroyed room" tooltip.status = { over = { staff_happiness = "Your average staff happiness should be over %d%. Currently it's %d%", patient_happiness = "Your average patient happiness should be over %d%. Currently it's %d%", }, under = { staff_happiness = "Your average staff happiness should not be less than %d%. Currently it's %d%", patient_happiness = "Your average patient happiness should not be less than %d%. Currently it's %d%", } } subtitles = { alien001 = "Red alert! Alien attack!", --unused alien002 = "Aliens have landed, help!", --unused alien003 = "Aliens do exist and are in the building!", --unused alien004 = "Aliens are requested not to disrupt the hospital too much!", --unused alien005 = "Aliens, please sign the visitors book.", --unused cheat001 = "Hospital administrator is cheating!", cheat002 = "Warning! A cheat is running the hospital!", cheat003 = "Cheat alert! Cheat alert!", emerg001 = "Staff announcement: incoming patients with Heaped Piles.", emerg002 = "Staff announcement: patients with The Squits are on the way.", emerg003 = "Staff announcement: incoming patients with Television Personalities.", emerg004 = "Staff announcement: patients with Uncommon Cold on the way.", emerg005 = "Staff announcement: incoming patients with Fractured Bones.", emerg006 = "Staff announcement: patients with Invisibility arriving.", emerg007 = "Staff announcement: incoming patients with Bloaty Head.", emerg008 = "Staff announcement: patients with Hairyitis on the way.", emerg009 = "Staff announcement: incoming patients with the King Syndrome.", emerg010 = "Staff announcement: patients arriving with Serious Radiation.", emerg011 = "Staff announcement: incoming patients with Slack Tongue.", emerg012 = "Staff announcement: incoming patients with Baldness.", emerg013 = "Staff announcement: patients with Discrete Itching arriving.", emerg014 = "Staff announcement: incoming patients with Jellitis.", emerg015 = "Staff announcement: incoming patients with Sleeping Illness.", emerg016 = "Staff announcement: patients with Broken Wind arriving.", emerg017 = "Staff announcement: incoming patients with Sweaty Palms.", emerg018 = "Staff announcement: incoming patients with Unexpected Swelling.", emerg019 = "Staff announcement: patients with Gut Rot arriving.", emerg020 = "Staff announcement: incoming patients with Alien DNA.", emerg021 = "Staff announcement: patients arriving with Pregnancy.", emerg022 = "Staff announcement: incoming patients with Transparency.", emerg023 = "Staff announcement: patients with Spare Ribs incoming.", emerg024 = "Staff announcement: incoming patients with Kidney Beans.", emerg025 = "Staff announcement: patients with Broken Hearts arriving.", emerg026 = "Staff announcement: incoming patients with Ruptured Nodules.", emerg027 = "Staff announcement: incoming patients with Infectious Laughter.", emerg028 = "Staff announcement: patients with Corrugated Ankles on the way.", emerg029 = "Staff announcement: incoming patients with Chronic Nosehair.", emerg030 = "Staff announcement: incoming patients with 3rd Degree Sideburns.", emerg031 = "Staff announcement: patients with Fake Blood incoming.", emerg032 = "Staff announcement: incoming patients with Gastric Ejections.", emerg033 = "Staff announcement: patients arriving with Iron Lungs.", emerg034 = "Staff announcement: incoming patients with Golf Stones.", epid001 = "Epidemic alert, standby!", epid002 = "Staff announcement: epidemic warning!", epid003 = "Warning, epidemic alert!", epid004 = "Warning!", epid005 = "Epidemic over, stand down.", epid006 = "Epidemic now under control.", epid007 = "Epidemic contained.", epid008 = "Epidemic emergency over.", machwarn = "*Machine Alarm*", maint004 = "Handyman call to repair Tongue Slicer.", maint005 = "Handyman to repair X-Ray please.", maint006 = "Handyman call to repair DNA Fixer.", maint007 = "Maintenance required in Hair Restorer.", maint008 = "Handyman, please repair Electrolysis machine.", maint009 = "Maintenance required in Jelly Vat.", maint010 = "Handyman call to Cardio machine.", maint011 = "Handyman, please repair Diagnosis machine.", maint012 = "Maintenance required in Decontamination.", maint013 = "Handyman, please maintain Inflator.", maint014 = "Maintenance required in Fracture machine.", maint015 = "Handyman call to Blood Machine.", maint016 = "Handyman to attend Ultrascanner.", quake001 = "Warning! Earthquake reported.", quake002 = "Warning! Earthquake imminent.", quake003 = "Attention! Earthquake warning.", quake004 = "Attention! Earthquake on the way.", rand001 = "White courtesy phone.", rand002 = "Doctor Jekyll to psychiatry please.", rand003 = "No smoking in the hospital please.", rand005 = "Patients are reminded not to die in the corridors.", rand006 = "Coughs and sneezes spread diseases.", rand008 = "Patient message: chequebooks required.", rand009 = "Patient message: credit cards required.", rand010 = "Quiet please, people are sick.", rand012 = "Patients are asked not to vomit too much.", rand013 = "Warning: This is a warning.", rand016 = "Patients are here at their own risk.", rand017 = "Mad patients are asked to be as quiet as possible.", rand018 = "Patients are asked to be patient.", rand019 = "Patients are asked to wait quietly.", rand021 = "Please do not litter the hospital.", rand022 = "Dropping litter's against the rules.", rand024 = "Patients, please keep your germs to yourself.", rand025 = "Patients must have their chequebooks ready.", rand026 = "Patients, have your credit cards ready.", rand027 = "Terminal patients to the front of the queue.", rand028 = "Please form orderly queues.", rand029 = "Look out for other Bullfrog products.", rand030 = "No loitering.", rand031 = "No littering.", rand032 = "No vomiting.", rand033 = "Staff members are reminded to rest frequently.", rand034 = "Today's special offer: half price hair replacement.", rand035 = "Messrs Burke and Hare to the rear exit please.", rand036 = "Please don't feed the vermin, thank you!", rand037 = "Patients are kindly reminded to groan quietly, thank you!", rand040 = "Litterbomb warning!", rand041 = "I'm fed up with announcing, I want to go home.", rand044 = "Could people please try not to be sick in the corridors.", rand045 = "Doctor Lecter report to security please, Doctor Lecter to security.", rand046 = "Your sound card is working.", reqd001 = "Doctor, attend immediately in Cardio please.", reqd002 = "Doctor, attend in the Scanner room please.", reqd003 = "Doctor, attend in Psychiatry please.", reqd004 = "Nurse required in Fracture Clinic please.", reqd005 = "Doctor needed in Slack Tongue clinic.", reqd006 = "Doctor required in Blood Machine room.", reqd007 = "Doctor wanted in Ultrascan.", reqd008 = "Doctor required in GP's Office.", reqd009 = "Nurse required in Ward.", reqd010 = "Two surgeons required in Operating Theatre.", reqd011 = "Another surgeon required in Operating Theatre.", --unused reqd012 = "Nurse required in Pharmacy.", reqd013 = "Doctor required in X-Ray.", reqd014 = "Doctor required in Inflator room.", reqd015 = "Doctor required in DNA Fixer.", reqd016 = "Doctor needed in Hair Restoration.", reqd017 = "Doctor required in Training.", --unused reqd019 = "Doctor wanted in Electrolysis.", reqd020 = "Doctor required in Jelly Vat.", reqd021 = "Doctor required in General Diagnosis.", reqd023 = "Researcher needed in Research Department.", reqd024 = "Doctor required in Decontamination.", sack001 = "Doctor dismissed.", sack002 = "Doctor is leaving.", sack003 = "Doctor on the way out.", sack004 = "Nurse is leaving.", sack005 = "Nurse is leaving now.", sack006 = "Sacked handyman on the way out.", sack007 = "Receptionist has been asked to leave.", sack008 = "Receptionist is leaving.", sack009 = "Staff member has been poached.", --unused sack010 = "Doctor has been poached.", --unused sorry001 = "We apologise for the amount of litter.", --unused sorry002 = "We apologise for the extreme cold.", sorry003 = "We're sorry for the excessive heat.", sorry004 = "Apologies to patients, the radiators are malfunctioning.", sorry005 = "Vomit warning, mind your feet.", --unused sorry006 = "Maintenance, puke alert in the corridor.", --unused vip001 = "Watch out, we've got a VIP in the building.", vip002 = "A VIP has entered the building.", vip003 = "A VIP is currently visiting.", vip004 = "A VIP is touring the building.", vip005 = "We have a VIP with us.", vip008 = "A man from the ministry's in the hospital.", } -------------------------------- UNUSED ----------------------------------- ------------------- (kept for backwards compatibility) ---------------------- options_window.change_resolution = "Change resolution" tooltip.options_window.change_resolution = "Change the window resolution to the dimensions entered on the left" information.very_old_save = "There have been a lot of updates to the game since you started this level. To be sure that all features work as intended please consider restarting it." machine_menu = { ratio = "Ratio", percentage = "%d%", } tooltip.machine_menu = { ratio = "This value shows ratio of remaining strength and total strength", header = { ratio = "Remaining Strength to Total Strength percentage ratio of the machines.", } } cheats_window.cheats = { toggle_infected = show_infected, } tooltip.cheats_window.cheats = { toggle_infected = show_infected, } CorsixTH-0.70.0/CorsixTH/Lua/languages/finnish.lua000066400000000000000000004517311522247547500216640ustar00rootroot00000000000000--[[ Copyright (c) 2010 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- READ BEFORE DOING ANY CHANGES ------------------------------------------------------------------------------- Since the Finnish language isn't in the original Theme Hospital game, this file is split in two sections (A and B). The first section contains all the new language strings, made by the Corsix-TH team, and the second section contains the override translation of all the original english strings. FORMATING AND FINNISH LETTERS This file contains UTF-8 text. Make sure your editor is set to UTF-8. ------------------------------------------------------------------------------- Table of Contents ------------------------------------------------------------------------------- -- SECTION A - NEW STRINGS 1. Global settings 2. Faxes 3. Menu 4. Adviser 5. Main menu 6. Tooltip 7. Letter 8. Installation 9. Level introduction 10. Tips 11. Room descriptions 12. Lua console 13. Information 14. Handyman window 15. Misc -- SECTION B - OLD STRINGS (OVERRIDE) Huge section with all original strings, translated from english. New strings to existing string sets have been placed here instead of section A to keep similar strings close to each other. -----------------------------------------------------------------------------]] ------------------------------------------------------------------------------- -- SECTION A - NEW STRINGS ------------------------------------------------------------------------------- -- 1. Global settings (do not edit!) Font("cp437") Language("Suomi", "Finnish", "fi", "fin") Inherit("english") IsArabicNumerals(true) -- 2. Faxes fax = { choices = { return_to_main_menu = "Palaa päävalikkoon", accept_new_level = "Siirry seuraavalle tasolle", decline_new_level = "Jatka pelaamista vielä jonkin aikaa", }, } -- 3. Menu menu_debug = { jump_to_level = " SIIRRY TASOLLE ", transparent_walls = " (%1%) LÄPINÄKYVÄT SEINÄT ", limit_camera = " RAJOITETTU KAMERA ", disable_salary_raise = " ESTÄ PALKAN KOROTTAMINEN ", make_debug_fax = " LUO DEBUG-FAKSI ", make_debug_patient = " LISÄÄ DEBUG-POTILAS ", cheats = " (%1%) HUIJAUKSET ", lua_console = " (%1%) LUA-KOMENTORIVI ", calls_dispatcher = " TEHTÄVIEN VÄLITYS ", dump_strings = " (%1%) DUMPPAA TEKSTIT ", dump_gamelog = " (%1%) DUMPPAA PELILOGI ", map_overlay = " KARTTAKERROKSET ", sprite_viewer = " SPRITE-KATSELIN ", } menu_debug_overlay = { none = " TYHJÄ ", flags = " LIPUT ", positions = " SIJAINNIT ", heat = " LÄMPÖTILA ", byte_0_1 = " TAVU 0 & 1 ", byte_floor = " TAVU LATTIA ", byte_n_wall = " TAVU N SEINÄ ", byte_w_wall = " TAVU W SEINÄ ", byte_5 = " TAVU 5 ", byte_6 = " TAVU 6 ", byte_7 = " TAVU 7 ", parcel = " ALUE ", } menu_options_game_speed = { slowest = " (%1%) HITAIN ", slower = " (%1%) HITAAMPI ", normal = " (%1%) NORMAALI ", max_speed = " (%1%) MAKSIMINOPEUS ", and_then_some_more = " (%1%) JA VÄHÄN PÄÄLLE ", pause = " (%1%) PYSÄYTÄ " } menu_options_volume = { [10] = " 10% ", [20] = " 20% ", [30] = " 30% ", [40] = " 40% ", [50] = " 50% ", [60] = " 60% ", [70] = " 70% ", [80] = " 80% ", [90] = " 90% ", [100] = " 100% ", } menu_file_save = { [1] = " PELI 1 ", [2] = " PELI 2 ", [3] = " PELI 3 ", [4] = " PELI 4 ", [5] = " PELI 5 ", [6] = " PELI 6 ", [7] = " PELI 7 ", [8] = " PELI 8 ", } cheats_window = { caption = "Huijaukset", warning = "Varoitus: Et saa yhtään bonuspisteitä tason jälkeen, jos käytät huijauksia!", close = "Sulje", cheated = { no = "Huijauksia käytetty: Ei", yes = "Huijauksia käytetty: Kyllä", }, cheats = { money = "Rahahuijaus", all_research = "Kaikki tutkimus -huijaus", emergency = "Luo hätätilanne", create_patient = "Luo potilas", end_month = "Siirry kuukauden loppuun", end_year = "Siirry vuoden loppuun", lose_level = "Häviä", win_level = "Voita", vip = "Luo VIP", earthquake = "Maanjäristys", }, } debug_patient_window = { caption = "Debug-potilas", } calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d tehtävää; %d välitetty", staff = "%s - %s", watering = "Kastellaan @ %d,%d", repair = "Korjaa %s", close = "Sulje", } -- 4. Adviser adviser = { room_forbidden_non_reachable_parts = "Huoneen sijoittaminen tähän estäisi pääsyn joihinkin sairaalan osiin.", cheats = { th_cheat = "Onnittelut, olet saanut huijaukset käyttöösi! Tai olisit saanut, jos tämä olisi alkuperäinen peli. Kokeile jotain muuta.", crazy_on_cheat = "Voi ei! Kaikki lääkärit ovat tulleet hulluiksi!", crazy_off_cheat = "Huh... lääkärit ovat jälleen tulleet järkiinsä.", roujin_on_cheat = "Roujinin haaste otettu käyttöön! Onnea...", roujin_off_cheat = "Roujinin haaste poistettu käytöstä.", hairyitis_cheat = "Turkinkasvu-huijaus otettu käyttöön!", hairyitis_off_cheat = "Turkinkasvu-huijaus poistettu käytöstä.", bloaty_cheat = "Pallopäisyys-huijaus otettu käyttöön!", bloaty_off_cheat = "Pallopäisyys-huijaus poistettu käytöstä.", }, } -- 5. Main menu main_menu = { custom_level = "Luo oma sairaala", exit = "Lopeta", load_game = "Lataa peli", new_game = "Uusi peli", options = "Asetukset", savegame_version = "Tallennetun pelin versio: ", version = "Versio: ", } load_game_window = { caption = "Lataa peli", } custom_game_window = { caption = "Luo oma sairaala", free_build = "Rakenna vapaasti", } save_game_window = { caption = "Talenna peli", new_save_game = "Uusi tallennus", } menu_list_window = { back = "Takaisin", name = "Nimi", save_date = "Muokattu", } options_window = { fullscreen = "Koko ruutu", width = "Leveys", height = "Korkeus", change_resolution = "Vaihda resoluutio", browse = "Selaa...", new_th_directory = "Tässä voit määrittää uuden Theme Hospital -pelin asennushakemiston. Kun olet valinnut uuden hakemiston, peli käynnistyy uudestaan.", cancel = "Peruuta", back = "Takaisin", } errors = { dialog_missing_graphics = "Pahoittelut, demon pelitiedostot eivät sisällä tämän ikkunan grafiikkaa.", save_prefix = "Virhe tallennettaessa peliä: ", load_prefix = "Virhe ladattaessa peliä: ", map_file_missing = "Tasolle %s ei löydetty karttatiedostoa!", minimum_screen_size = "Ole hyvä ja syötä resoluutio, joka on vähintään %dx%d.", maximum_screen_size = "Ole hyvä ja syötä resoluutio, joka on enintään 3000x2000.", unavailable_screen_size = "Syöttämäsi resoluutio ei ole käytettävissä koko ruutu -tilassa.", } new_game_window = { hard = "Konsultti (Vaikea)", cancel = "Peruuta", tutorial = "Esittely", easy = "Harjoittelija (Helppo)", medium = "Tohtori (Keskitaso)", } -- 6. Tooltip tooltip = { objects = { litter = "Roska: Potilas on jättänyt sen lattialle, koska ei löytänyt roskakoria, johon sen olisi voinut heittää", }, totd_window = { previous = "Näytä edellinen vihje", next = "Näytä seuraava vihje", }, main_menu = { new_game = "Aloita uusi peli aivan alusta", custom_level = "Rakenna oma sairaala itse suunnittelemaasi rakennukseen", load_game = "Lataa aiemmin tallennettu peli", options = "Muuta pelin asetuksia", exit = "Ei, ei, ole kiltti äläkä lähde!", }, load_game_window = { load_game = "Lataa peli %s", load_game_number = "Lataa peli numero %d", load_autosave = "Lataa viimeisin automaattitallennus", }, custom_game_window = { free_build = "Valitse tämä, jos haluat pelata ilman rahaa ja mahdollisuutta voittaa tai hävitä", start_game_with_name = "Lataa taso %s", }, save_game_window = { save_game = "Tallenna tallennuksen %s tilalle", new_save_game = "Anna nimi uudelle tallennukselle", }, menu_list_window = { back = "Sulje tämä ikkuna", name = "Järjestä lista nimen mukaan", save_date = "Järjestä lista viimeisimmän muutoshetken mukaan", }, options_window = { fullscreen_button = "Klikkaa kytkeäksesi koko ruudun -tilan päälle tai pois", width = "Syötä peli-ikkunan haluttu leveys", height = "Syötä peli-ikkunan haluttu korkeus", change_resolution = "Muuta ikkunan resoluutio vasemmalla annettujen arvojen mukaiseksi", language = "Valitse kieleksi %s", browse = "Selaa hakemistoja valitaksesi uuden Theme Hospital -pelin asennushakemiston", back = "Sulje tämä ikkuna", }, new_game_window = { hard = "Jos olet pelannut tällaista peliä aiemminkin ja kaipaat haastetta, valitse tämä", cancel = "Hups, ei minun oikeasti pitänyt aloittaa uutta peliä!", tutorial = "Jos haluat vähän apua alkuun pääsemisessä, valitse tämä", easy = "Jos tämä on ensimmäinen kertasi tämän tyyppisen pelin parissa, tämä vaikeustaso on sinua varten", medium = "Tämä on kultainen keskitie, jos et ole varma, mitä valitsisit", }, lua_console = { textbox = "Syötä suoritettava Lua-koodi tähän", execute_code = "Suorita syöttämäsi koodi", close = "Sulje komentorivi", }, fax = { close = "Sulje ikkuna poistamatta viestiä", }, message = { button = "Avaa viesti klikkaamalla", button_dismiss = "Klikkaa vasemalla avataksesi viestin, klikkaa oikealla poistaaksesi sen", }, cheats_window = { close = "Sulje huijaukset-ikkuna", cheats = { money = "Lisää 10 000$ pankkitilillesi", all_research = "Saat kaiken tutkimuksen valmiiksi", emergency = "Luo hätätilanteen", create_patient = "Luo potilaan kartan reunalle", end_month = "Siirtää aikaa eteenpäin kuukauden loppuun", end_year = "Siirtää aikaa eteenpäin vuoden loppuun", lose_level = "Häviät tämän tason", win_level = "Voitat tämän tason", vip = "Luo VIP-potilaan", earthquake = "Aiheuttaa maanjäristyksen" }, }, calls_dispatcher = { task = "Tehtävälista - klikkaa tehtävää avataksesi sitä suorittavan henkilökunnan jäsenen ikkunan ja keskittääksesi näkymän tehtävän kohteeseen", assigned = "Tässä on merkki, kun vastaava tehtävä on välitetty jonkun tehtäväksi", close = "Sulje tehtävien välitys -ikkuna", }, casebook = { cure_requirement = { hire_staff = "Sinun täytyy palkata lisää henkilökuntaa tämän taudin hoitamiseksi", }, cure_type = { unknown = "Et vielä tiedä, miten tätä tautia pitää hoitaa", }, }, research_policy = { no_research = "Tämän aiheen parissa ei tehdä tutkimusta tällä hetkellä", research_progress = "Edistyminen kohti seuraavaa löytöä tällä aihealueella: %1%/%2%", }, } -- 7. Letter letter = { dear_player = "Hyvä %s", --%s (player's name) custom_level_completed = "Hienosti tehty! Olet suorittanut kaikki tämän itse laaditun tason tavoitteet!", return_to_main_menu = "Haluatko palata takaisin päävalikkoon vai jatkaa pelaamista?", } -- 8. Installation install = { title = "-------------------------------- CorsixTH asennus --------------------------------", th_directory = "CorsixTH tarvitsee kopion alkuperäisen Theme Hospital -pelin (tai demon) tiedostoista toimiakseen. Ole hyvä ja käytä alla olevaa valitsinta Theme Hospital-pelin asennushakemiston etsimiseen.", exit = "Sulje", } -- 9. Level introductions introduction_texts = { demo = "Tervetuloa demosairaalaan!//" .. "Valitettavasti demoversio sisältää ainoastaan tämän tason. Täällä on kuitenkin enemmän kuin tarpeeksi tekemistä! " .. "Kohtaat erilaisia sairauksia, joiden hoitaminen vaatii erilaisia huoneita. Hätätilanteita saattaa tapahtua ajoittain. Lisäksi sinun pitää kehittää lisää huoneita tutkimusosaston avulla. " .. "Tavoitteesi on ansaita 100 000$, nostaa sairaalan arvo yli 70 000$:n ja maineesi yli 700:n parantaen samalla vähintään 75% potilaistasi. " .. "Pidä huoli, ettei maineesi putoa alle 300:n ja ettei yli 40 prosenttia potilaistasi pääse kuolemaan, tai häviät tason.//" .. "Onnea!", level1 = "Tervetuloa ensimmäiseen sairaalaasi!//" .. "Pääset alkuun rakentamalla vastaanottopöydän ja yleislääkärin toimiston sekä palkkaamalla vastaanottoapulaisen ja lääkärin. " .. "Sitten vain odotat asiakkaiden saapumista." .. "Olisi hyvä ajatus rakentaa psykiatrin vastaanotto ja palkata lääkäri, joka on erikoistunut psykiatriaan. " .. "Apteekki ja sairaanhoitaja ovat myös tärkeä yhdistelmä potilaidesi parantamiseksi. " .. "Tarkkaile pallopäisyydestä kärsiviä potilaitasi - pumppaushuone hoitaa heidät alta aikayksikön. " .. "Tavoitteenasi on parantaa kaikkiaan 10 potilasta ja varmistaa, ettei maineesi putoa alle 200:n.", level2 = "Tällä alueella on enemmän erilaisia sairauksia kuin edellisellä. " .. "Sairaalasi pitää selvitä suuremmasta potilasmäärästä, ja sinun kannattaa varautua tutkimusosaston rakentamiseen. " .. "Muista pitää laitoksesi puhtaana, ja yritä nostaa maineesi niin korkeaksi kuin mahdollista - alueella on liikkeellä velttokielisyyttä, joten tarvitset kieliklinikan. " .. "Voit myös rakentaa kardiogrammihuoneen auttamaan uusien sairauksien diagnosoinnissa. " .. "Molemmat näistä huoneista täytyy kehittää ennen kuin voit rakentaa niitä. Nyt voit myös ostaa lisää maata sairaalasi laajentamiseksi - Tämä tapahtuu kartta-ikkunassa. " .. "Tavoitteesi ovat 300:n maine, 10 000$ pankissa and 40 parannettua potilasta.", level3 = "Tällä kertaa sairaalasi sijaitsee varakkaalla alueella. " .. "Terveysministeriö odottaa sinun saavan täältä muhkeat voitot. " .. "Alussa sinun täytyy hankkia sairaalallesi hyvä maine. Kun saat sairaalan pyörimään kunnolla, keskity ansaitsemaan niin paljon rahaa kuin pystyt. " .. "Alueella saattaa myös sattua hätätapauksia. " .. "Näissä tilanteissa suuri joukko samalla tavoin loukkaantuneita potilaita saapuu sairaalaasi yhtä aikaa. " .. "Jos onnistut parantamaan heidät annetun aikarajan puitteissa saat lisää mainetta ja ison bonuksen. " .. "Kuningas-kompleksin kaltaisia sairauksia saattaa esiintyä, joten kannattaa budjetoida rahaa leikkaussalin ja vuodeosaston rakentamiseen lähelle toisiaan. " .. "Ansaitse 20 000$ päästäksesi seuraavalle tasolle.", level4 = "Pidä kaikki potilaasi tyytyväisinä, hoida heitä niin tehokkaasti kuin pystyt ja pidä kuolemantapaukset minimissään. " .. "Maineesi on kyseessä, joten pidä huolta, että se pysyy niin korkealla kuin mahdollista. " .. "Älä huolehdi rahasta liikaa - sitä alkaa kyllä tulla lisää maineesi kasvaessa. " .. "Voit myös kouluttaa lääkäreitäsi parantaaksesi heidän osaamistaan. " .. "He saattavat hyvinkin joutua hoitamaan tavallista läpinäkyvämpiä potilaita. " .. "Nosta maineesi yli 500:n.", level5 = "Tästä tulee kiireinen sairaala, joka joutuu hoitamaan laajaa kirjoa sairauksia. " .. "Kaikki lääkärisi ovat vastavalmistuneita, joten on ensiarvoisen tärkeää, että rakennat koulutushuoneen ja nostat lääkäreidesi osaamisen hyväksyttävälle tasolle. " .. "Sinulla on vain kolme konsulttia opettamassa kokematonta henkilökuntaasi, joten pidä heidät tyytyväisinä. " .. "Huomaa myös, että sairaalasi on rakennettu geologisen siirroksen läheisyyteen. " .. "Maanjäristysten riski on siis koko ajan olemassa. " .. "Ne aiheuttavat sattuessaan mittavia vahinkoja laitteillesi ja häiritsevät sairaalasi sujuvaa toimintaa. " .. "Hanki sairaalallesi 400 mainetta ja kasvata 50 000$:n pankkitili onnistuaksesi. Paranna samalla 200 potilasta.", level6 = "Käytä kaikkea oppimaasi ja rakenna sujuvasti toimiva sairaala, joka on taloudellisesti terveellä pohjalla ja pystyy selviytymään kaikista eteen tulevista tilanteista. " .. "Sinun on hyvä tietää, että ilmasto täällä levittää erityisen tehokkaasti bakteereja ja viruksia. " .. "Ellet onnistu pitämään sairaalaasi putipuhtaana, potilaasi voivat joutua epidemioiden kierteeseen. " .. "Pidä huolta, että ansaitset 150 000$ ja sairaalasi arvo ylittää 140 000$.", level7 = "Täällä joudut terveysministeriön tiukan valvonnan kohteeksi, joten pidä huolta, että tilikirjoissasi näkyy suuria voittoja ja maineesi pysyy korkealla. " .. "Meillä ei ole varaa ylimääräisiin kuolemantapauksiin - ne ovat huonoja liiketoiminnan kannalta. " .. "Varmista, että henkilökuntasi on parasta mahdollista ja heillä on kaikki tarvittavat toimitilat ja tarvikkeet. " .. "Tavoitteesi ovat 600 mainetta ja 200 000$ pankkitilillä.", level8 = "Sinun tehtäväsi on rakentaa tehokkain ja tuottavin mahdollinen sairaala. " .. "Ihmiset täällä ovat melko varakkaita, joten heiltä kannattaa kerätä niin paljon rahaa kuin mahdollista. " .. "Muista, että niin kivaa kuin ihmisten parantaminen onkin, tarvitset kipeästi rahaa, jota se tuottaa. " .. "Putsaa näiltä ihmisiltä tuhkatkin pesästä. " .. "Sinun tulee kerätä vaikuttavat 300 000$ läpäistäksesi tason.", level9 = "Täytettyäsi ministeriön pankkitilin ja kustannettuasi uuden limusiinin ministerille itselleen pääset taas luomaan huolehtivan ja hyvin hoidetun sairaalan sairaiden avuksi. " .. "Voit odottaa monia erilaisia ongelmia tällä alueella." .. "Jos sinulla on riittävästi hyvin koulutettua henkilökuntaa ja huoneita, sinulla pitäisi olla kaikki hallinnassa. " .. "Sairaalasi arvon tulee olla 200 000$ ja sinulla pitää olla 400 000$ pankissa. " .. "Pienemmillä summilla et pääse tätä tasoa läpi.", level10 = "Sen lisäksi, että huolehdit kaikista sairauksista, joita täällä päin ilmenee, ministeriö pyytää, että käytät aikaa lääkkeidesi tehon parantamiseen. " .. "Terveysjärjestöt ovat esittäneet joitakin valituksia, joten näyttääkseen hyvältä sairaalasi täytyy varmistaa, että kaikki käyttettävät lääkkeet ovat erittäin tehokkaita. " .. "Varmista myös, että sairaalasi on arvostelun yläpuolella. Pidä kuolemantapausten määrä kurissa. " .. "Ihan vihjeenä: saattaa olla hyvä idea säästää tilaa hyytelömuovainhuoneelle. " .. "Kehitä kaikki lääkkeesi vähintään 80%%:n tehokkuuteen, nosta maineesi vähintään 650:n ja kokoa 500 000$ pankkitilillesi voittaaksesi. ", level11 = "Sinulle tarjoutuu nyt mahdollisuus rakentaa yksi maailman parhaista sairaaloista. " .. "Tämä on erittäin arvostettu asuinalue ja ministeriö haluaa tänne parhaan mahdollisen sairaalan. " .. "Odotamme sinun ansaitsevan runsaasti rahaa, hankkivan erinomaisen maineen sairaalallesi ja pystyvän hoitamaan vaikeimmatkin tapaukset. " .. "Tämä on hyvin tärkeä työ. " .. "Sinun täytyy käyttää kaikkea osaamistasi selvitäksesi tästä kunnialla. " .. "Huomaa, että alueella on havaittu UFOja. Pidä huolta, että henkilökuntasi on valmiina odottamattomien vierailijoiden varalta. " .. "Sairaalasi arvon pitää olla 240 000$, pankkitililläsi pitää olla 500 000$ ja maineesi pitää olla 700.", level12 = "Tämä on kaikkien haasteiden äiti. " .. "Vaikuttuneena saavutuksistasi ministeriö on päättänyt antaa sinulle huipputyön; he haluavat toisen maailmanluokan sairaalan, joka tuottaa mainiosti ja jolla on erinomainen maine. " .. "Sinun odotetaan myös ostavan kaikki saatavilla olevat maa-alueet, parantavan kaikki sairaudet (ja me tosiaan tarkoitamme kaikki) ja voittavan kaikki palkinnot. " .. "Luuletko onnistuvasi?" .. "Ansaitse 650 000$, paranna 750 ihmistä ja hanki 800 mainetta voittaaksesi tämän.", level13 = "Uskomattomat kykysi sairaalanjohtajana ovat tulleet Salaisen erityispalvelun erityisen salaosaston tietoon. " .. "Heillä on sinulle erityinen bonus: täynnä rottia oleva sairaala, joka kaipaa kipeästi tehokasta tuholaistorjuntaa. " .. "Sinun pitää ampua mahdollisimman monta rottaa ennen kuin huoltomiehet siivoavat kaikki roskat pois. " .. "Uskotko olevasi tehtävän tasalla?", level14 = "Vielä yksi haaste on tarjolla - täysin odottamaton yllätyssairaala. " .. "Jos onnistut saamaan tämän paikan toimimaan, olet todellinen mestareiden mestari. " .. "Älä kuvittelekkaan, että tästä tulee helppoa kuin puistossa kävely, sillä tämä on pahin haaste, jonka saat vastaasi. " .. "Paljon onnea!", level15 = "Nyt olemme käsitelleet perusteet sairaalan saamiseksi toimintaan.//" .. "Lääkärisi tarvitsevat kaiken mahdollisen avun diagnosoidessaan osan näistä potilaista. " .. "Voit auttaa heitä rakentamalla toisen diagnoosihuoneen kuten yleislääkärin vastaanoton.", level16 = "Diagnosoituasi potilaita tarvitset hoitohuoneita ja klinikoita heidän parantamisekseen " .. "Apteekista on hyvä aloittaa. Toimiakseen se tarvitsee sairaanhoitajan annostelemaan lääkkeitä.", level17 = "Viimeinen varoituksen sana: pidä tarkasti silmällä mainettasi, sillä se houkuttelee sairaalaasi potilaita niin läheltä kuin kaukaa. " .. "Jos potilaita ei kuole liikaa ja he pysyvät kohtuullisen tyytyväisinä, sinulla ei ole mitään hätää tällä tasolla!//" .. "Olet nyt omillasi. Onnea ja menestystä!.", level18 = "", } -- 10. Tips totd_window = { tips = { "Jokainen sairaala tarvitsee vastaanoton ja yleislääkärin toimiston. Tämän jälkeen kaikki riippuu siitä, mitä potilaasi tarvitsevat. Apteekki on kuitenkin yleensä hyvä alku.", "Kaikki laitteet, kuten verikone, tarvitsevat huoltoa. Palkkaa huoltomies tai pari korjaamaan laitteitasi tai työntekijöillesi ja potilaillesi saattaa käydä hassusti.", "Työntekijäsi kaipaavat välillä taukoja. Muista rakentaa heille henkilökunnan huone, jossa he voivat käydä lepäämässä.", "Asenna sairaalaasi riittävästi lämpöpattereita, jotta henkilökunnalle ja asiakkaille ei tule kylmä.", "Lääkärin taidot vaikuttavat paljon hänen tekemiensä diagnoosien laatuun ja nopeuteen. Palkkaamalla hyvän lääkärin yleislääkärin toimistoon tarvitset vähemmän muita diagnoosihuoneita.", "Tohtorit ja harjoittelijat voivat parantaa taitojaan oppimalla konsulteilta koulutushuoneessa. Jos konsultti on erikoistunut johonkin alaan (kirurgia, psykiatria tai tutkimus) hän siirtää tämän alan osaamisensa myös oppilailleen.", "Oletko kokeillut syöttää yleisen hätänumeron (112) faksiin? Varmista, että sinulla on äänet päällä!", "Asetukset-valikkoa ei ole vielä toteutettu, mutta voit muuttaa asetuksia kuten resoluutiota ja kieltä muokkaamalla config.txt-tiedostoa pelin asennushakemistossa.", "Olet vaihtanut kielen suomeksi. Jos kuitenkin näet pelissä englannin kielistä tekstiä, voit auttaa suomentamalla puuttuvia tekstejä!", "CorsixTH-tiimi etsii aina vahvistuksia! Oletko kiinnostunut ohjelmoimaan, kääntämään tai laatimaan grafiikkaa CorsixTH:ta varten? Saat meihin yhteyden Foorumimme, Sähköpostilistamme tai IRC-kanavamme (corsix-th at freenode) kautta.", "Jos löydät pelistä bugin, ilmoitathan niistä buginseurantaamme: th-issues.corsix.org.", "Jokaisella tasolla on joukko vaatimuksia, jotka sinun tulee täyttää ennen kuin pääset siirtymään seuraavalle tasolle. Voit tarkastella edistymistäsi tilanne-valikosta.", "Jos haluat muokata huonetta tai poistaa sen, voit tehdä niin ruudun alareunassa olevasta työkalupalkista löytyvän muokkaa huonetta -painikkeen avulla.", "Viemällä hiiren osoittimen huoneen päälle saat nopeasti tietää, ketkä ulkopuolella olevien potilaiden rykelmässä odottavat pääsyä kyseiseen huoneeseen.", "Klikkaa huoneen ovea nähdäksesi sen jonon. Tässä ikkunassa voit tehdä hyödyllistä hienosäätöä kuten järjestää jonon uudestaan tai lähettää potilaita toiseen huoneeseen.", "Tyytymättömät työntekijät pyytävät useammin palkankorotuksia. Pidä huolta, että he työskentelevät mukavassa ympäristössä välttääksesi tätä.", "Potilaat tulevat janoisiksi odottaessaan sairaalassasi; erityisesti, jos nostat lämpötilaa! Aseta juoma-automaatteja strategisesti ympäri sairaalaasi saadaksesi vähän lisätuloja.", "Voit peruuttaa potilaan diagnosoinnin ennenaikaisesti ja arvata hoidon, jos olet törmännyt kyseiseen tautiin jo aiemmin. Muista kuitenkin, että tämä lisää väärästä hoidosta aiheutuvan kuoleman riskiä.", "Hätätilanteet voivat olla hyvä ylimääräisen rahan lähde olettaen, että sairaalallasi on riittävästi kapasiteettia hätätilannepotilaiden hoitamiseen ajoissa.", }, previous = "Edellinen vihje", next = "Seuraava vihje", } -- 11. Room descriptions (These were not present with the old strings so I assume they are new then) room_descriptions = { blood_machine = { [1] = "Verikonehuone//", [2] = "Verikone tutkii potilaan verisoluja selvittääkseen mikä häntä vaivaa.//", [3] = "Verikone tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, cardiogram = { [1] = "Kardiogrammihuone//", [2] = "Potilaan sydän tutkitaan täällä ja hänet lähetetään takaisin yleislääkärin vastaanotolle, jossa määrätään sopiva hoito.//", [3] = "Kardiogrammikone tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, decontamination = { [1] = "Säteilyklinikka//", [2] = "Säteilylle altistuneet potilaat ohjataan nopeasti säteilyklinikalle. Huoneessa on suihku, jolla huuhdellaan potilaista kaikki kammottava radioaktiivinen aines ja lika.//", [3] = "Puhdistussuihku tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, dna_fixer = { [1] = "DNA-klinikka//", [2] = "Potilaat, jotka ovat joutuneet alieneiden kynsiin, tarvitsevat DNA-vaihdon tässä huoneessa. DNA-korjain on hyvin monimutkainen kone, joten on suositeltavaa pitää vaahtosammutin sen kanssa samassa huoneessa varmuuden vuoksi.//", [3] = "DNA-korjain tarvitsee käyttäjäkseen tutkimukseen erikoistuneen lääkärin ja säännöllistä huoltoa huoltomieheltä. ", }, electrolysis = { [1] = "Elektrolyysihuone//", [2] = "Turkinkasvusta kärsivät potilaat ohjataan tähän huoneeseen, jossa elektrolyysikone nyppii karvat pois ja sulkee huokoset sähköisesti käyttäen ainetta joka muistuttaa saumauslaastia.//", [3] = "Elektrolyysikone tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, fracture_clinic = { [1] = "Murtumaklinikka//", [2] = "Ne epäonniset potilaat, joilla on murtumia luissaan lähetetään tänne. Kipsinpoistin leikkaa voimakkailla laser-säteillä kovettuneet kipsit pois aiheuttaen vain vähän tuskaa potilaalle.//", [3] = "Kipsinpoistin tarvitsee käyttäjäkseen sairaanhoitajan ja satunnaista huoltoa huoltomieheltä. ", }, general_diag = { [1] = "Yleinen diagnoosihuone//", [2] = "Potilaat, jotka tarvitsevat jatkotutkimusta lähetetään tänne tutkittaviksi. Jos yleislääkärin vastaanotolla ei selviä, mikä potilasta vaivaa, yleisessä diagnoosihuoneessa monesti selviää. Potilaat lähetetään täältä takaisin yleislääkärin vastaanotolle tulosten analysointia varten.//", [3] = "Yleiseen diagnoosihuoneeseen tarvitaan lääkäri. ", }, gp = { [1] = "Yleislääkärin vastaanotto//", [2] = "Tämä on sairaalasi perusdiagnoosihuone. Kaikki uudet potilaat lähetetään tänne lääkärin tutkittaviksi ja täältä heidät ohjataan joko jatkotutkimuksiin tai huoneeseen, jossa heidät voidaan parantaa. Saatat tarvita toisen yleislääkärin vastaanoton, jos ensimmäisestä tulee liian kiireinen. Mitä suurempi huone ja mitä enemmän lisäkalusteita sinne ostat sitä arvostetummaksi lääkäri tuntee itsensä. Tämä pätee myös kaikkiin muihin huoneisiin, joissa tarvitaan henkilökuntaa.//", [3] = "Yleislääkärin vastaanotolle tarvitaan lääkäri. ", }, hair_restoration = { [1] = "Hiusklinikka//", [2] = "Kaljuudesta kärsivät potilaat ohjataan tällä klinikalla olevalle hiustenpalauttimelle. Lääkäri ohjaa konetta, joka kylvää potilaan päähän nopealla tahdilla tuorreita hiuksia.//", [3] = "Hiustenpalautin tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, inflation = { [1] = "Pumppaushuone//", [2] = "Kivuliaasta mutta huvittavasta pallopäisyydestä kärsivien potilaiden pitää mennä pumppaushuoneeseen, jossa heidän ylisuuri nuppinsa puhkaistaan ja täytetään sopivaan paineeseen.//", [3] = "Pumppauskone tarvitsee käyttäjäkseen lääkärin ja säännöllistä huoltoa huoltomieheltä. ", }, jelly_vat = { [1] = "Hyytelöklinikka//", [2] = "Potilaiden, jotka sairastavat hyytelöitymistä, täytyy huojua hyytelöklinikalle ja asettua hyytelömuovaimeen. Tämä parantaa heidät vielä lääketieteelle tuntemattomalla tavalla.//", [3] = "Hyytelömuovain tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, no_room = { [1] = "", }, operating_theatre = { [1] = "Leikkaussali//", [2] = "Tämä on tärkeä huone, sillä täällä hoidetaan lukuisia eri sairauksia. Leikkaussalin tulee olla riittävän suuri ja siellä pitää olla oikeat välineet. Se on elintärkeä osa sairaalaasi.//", [3] = "Leikkaussaliin tarvitaan kaksi kirurgiaan erikoistunutta lääkäriä. ", }, pharmacy = { [1] = "Apteekki//", [2] = "Potilaat, joilla on diagnosoitu lääkkeillä parantuva sairaus, ohjataan apteekkiin hakemaan lääkkeensä. Sitä mukaa, kun uusia lääkehoitoja kehitetään, apteekki tulee kiireisemmäksi, joten toisen apteekin rakentaminen myöhemmin saattaa tulla tarpeen.//", [3] = "Apteekkiin tarvitaan sairaanhoitaja. ", }, psych = { [1] = "Psykiatrin vastaanotto//", [2] = "Psykologisista sairauksista kärsivät potilaat lähetetään keskustelemaan psykiatrin kanssa. Psykiatrit voivat tarkentaa potilaan diagnoosia ja hoitaa psykologisia sairauksia uskollisen sohvansa avulla.//", [3] = "Psykiatrin vastaanotolle tarvitaan psykiatriaan erikoistunut lääkäri. ", }, research = { [1] = "Tutkimusosasto//", [2] = "Täällä kehitetään uusia lääkkeitä ja hoitoja sekä parannellaan vanhoja. Tutkimusosasto on tärkeä osa tehokasta sairaalaa ja se tekee ihmeitä hoitoprosentillesi.//", [3] = "Tutkimusosastolle tarvitaan tutkimukseen erikoistunut lääkäri. ", }, scanner = { [1] = "Magneettikuvaushuone//", [2] = "Potilaille saadaan tarkka diagnoosi edistyneen magneettikuvaimen avulla. Tämän jälkeen heidät lähetetään takaisin yleislääkärin vastaanotolle, jossa heille määrätään sopiva hoito.//", [3] = "Magneettikuvain tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, slack_tongue = { [1] = "Kieliklinikka//", [2] = "Potilaat, joilla yleislääkäri on todennut velttokielisyyden, lähetetään tänne hoitoon. Lääkäri käyttää kehittynyttä paloittelukonetta kielen venyttämiseen ja katkaisee sen normaaliin mittaansa parantaen potilaan.//", [3] = "Paloittelukone tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, staff_room = { [1] = "Henkilökunnan taukohuone//", [2] = "Henkilökuntasi väsyy suorittaessaan työtehtäviään. He käyttävät tätä huonetta rentoutumiseen ja lepäämiseen. Väsyneet työntekijät toimivat hitaammin, tekevät enemmän kohtalokkaita virheitä, vaativat palkankorotuksia ja eroavat lopulta palveluksestasi. Taukohuoneen rakentaminen on siis hyvin kannattavaa. Varmista, että huone on riittävän suuri useammalle henkilölle ja että siellä on riittävästi tekemistä henkilökunnallesi. ", }, toilets = { [1] = "Käymälä//", [2] = "Potilaat, joita luonto kutsuu, voivat helpottaa oloaan käymälässäsi. Voit rakentaa enemmän eriöitä ja pesualtaita, jos odotat paljon potilaita. Joissain tilanteissa voi olla parempi rakentaa useampia käymälöitä eri puolille sairaalaasi. ", }, training = { [1] = "Koulutushuone//", [2] = "Harjoittelijasi ja tohtorisi voivat oppia arvokkaita erikoistumistaitoja opiskelemalla tässä huoneessa. Konsultti, joka on erikoistunut kirurgiaan, tutkimukseen tai psykiatriaan siirtää näitä taitojaan koulutettavina oleville lääkäreille. Lääkärit, joilla jo on koulutus opetettavista erikoistumisaloista parantavat kykyään käyttää taitojaan täällä.//", [3] = "Koulutushuoneeseen tarvitaan konsultti. ", }, tv_room = { [1] = "TV-HUONE EI KÄYTÖSSÄ", }, ultrascan = { [1] = "Ultraäänihuone//", [2] = "Ultraäänilaite on pitkälle kehittynyt diagnoosilaite. Se maksaa paljon, mutta on sen arvoinen, jos haluat saada ensiluokkaisia diagnooseja sairaalassasi.//", [3] = "Ultraäänilaite tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, ward = { [1] = "Vuodeosasto//", [2] = "Potilaita pidetään täällä vuodelevossa tarkkailtavina diagnosoinnin aikana ja ennen leikkausta.//", [3] = "Vuodeosastolle tarvitaan sairaanhoitaja. ", }, x_ray = { [1] = "Röntgenhuone//", [2] = "Röntgenillä kuvataan potilaiden sisäelimet ja luusto käyttäen erityistä säteilylähdettä. Hoitohenkilökunta saa näin hyvän kuvan siitä, mikä potilasta vaivaa.//", [3] = "Röntgen tarvitsee käyttäjäkseen lääkärin ja huoltoa huoltomieheltä. ", }, } -- 12. Lua console lua_console = { execute_code = "Suorita", close = "Sulje", } -- 13. Information information = { custom_game = "Tervetuloa pelaamaan CorsixTH:ta. Toivottavasti viihdyt tällä itse laaditulla kartalla!", cannot_restart = "Valitettavasti tämä peli on tallennettu ennen uudelleen käynnistämisen toteuttamista.", level_lost = { "Harmin paikka! Olet hävinnyt tämän tason. Parempaa onnea ensi kerralla!", "Syy tappioosi oli:", reputation = "Maineesi putosi alle %d:n.", balance = "Pankkitilisi saldo putosi alle %d$:n.", percentage_killed = "Olet tappanut yli %d prosenttia potilaista.", }, } -- 14. Handyman window handyman_window = { all_parcels = "Kaikkialla", parcel = "Alue", } -- 15. Misc misc = { not_yet_implemented = "(ei toteutettu vielä)", no_heliport = "Joko yhtään tautia ei vielä tunneta tai sairaalalla ei ole helikopterikenttää", } date_format.daymonth = "%1%. %2:months%" ------------------------------------------------------------------------------- -- SECTION B - OLD STRINGS (OVERRIDE) ------------------------------------------------------------------------------- -- Staff class -- each of these corresponds to a sprite staff_class = { nurse = "Sairaanhoitaja", doctor = "Lääkäri", handyman = "Huoltomies", receptionist = "Vastaanottoapulainen", surgeon = "Kirurgi", } -- Staff titles -- these are titles used e.g. in the dynamic info bar staff_title = { receptionist = "Vastaanottoapulainen", general = "Yleinen", -- unused? nurse = "Sairaanhoitaja", junior = "Harjoittelija", doctor = "Tohtori", surgeon = "Kirurgi", psychiatrist = "Psykiatri", consultant = "Konsultti", researcher = "Tutkija", } -- Pay rises pay_rise = { definite_quit = "Et voi enää pidätellä minua mitenkään. Se on loppu nyt!", regular = { "Olen ihan loppuunpalanut. Vaadin kunnon tauon ja %d$:n palkankorotuksen, jos et halua nähdä minun kävelevän ympäriinsä ja valittavan käytävillä.", -- %d (rise) "Olen hyvin väsynyt. Vaadin lepoa ja %d$:n palkankorotuksen eli yhteensä %d$ palkkaa. Se saa kelvata, senkin tyranni!", -- %d (rise) %d (new total) "Anteeksi kuinka? Raadan täällä kuin orja. Anna minulle %d$:n bonus niin tulen sairaalaasi.", -- %d (rise) "Olen niin masentunut, että haluan %d$:n palkankorotuksen, joka tekee yhteensä %d$, tai muuten otan lopputilin.", -- %d (rise) %d (new total) "Vanhempani käskivät opiskella lääkäriksi, että saisin kunnon palkkaa. Anna minulle siis %d$ lisää liksaa, tai lähden täältä nopeammin kuin uskotkaan.", -- %d (rise) "Nyt olen vihainen. Anna minulle enemmän palkkaa. Uskoisin, että %d$ lisää riittää tällä erää.", -- %d (rise) }, poached = "Minulle on tarjottu %d$ palkkaa %s-nimisen kilpailijasi sairaalassa. Siirryn sinne töihin, ellet anna minulle vastaavaa palkankorotusta.", -- %d (new total) %s (competitor) } -- Staff descriptions staff_descriptions = { good = { [1] = "Hyvin nopea ja ahkera työntekijä. ", [2] = "Hyvin velvollisuudentuntoinen. Oikein huolellinen. ", [3] = "Todella monipuolinen. ", [4] = "Ystävällinen ja aina hyvällä tuulella. ", [5] = "Äärimmäisen sisukas. Työskentelee yöt ja päivät. ", [6] = "Uskomattoman kohtelias ja hyvätapainen. ", [7] = "Uskomattoman ammattitaitoinen ja osaava. ", [8] = "Hyvin keskittynyt ja arvostettu työssään. ", [9] = "Perfektionisti, joka ei koskaan luovuta. ", [10] = "Auttaa aina ihmisiä hymyssä suin. ", [11] = "Hurmaava, kohtelias ja auttavainen. ", [12] = "Hyvin motivoitunut ja omistautunut työlleen. ", [13] = "Luonteeltaan kiltti ja ahkera. ", [14] = "Lojaali ja ystävällinen. ", [15] = "Huomaavainen. Rauhallinen ja luotettava hätätilanteissa. ", }, misc = { [1] = "Pelaa Golfia. ", [2] = "Pitää kampasimpukoista. ", [3] = "Veistää jääpatsaita. ", [4] = "Juo viiniä. ", [5] = "Ajaa rallia. ", [6] = "Harrastaa benjihyppyä. ", [7] = "Kerää lasinalusia. ", [8] = "Harrastaa yleisösurffausta. ", [9] = "Nauttii vauhdikkaasta surffaamisesta. ", [10] = "Pitää ankeriaiden venyttämisestä. ", [11] = "Tislaa viskiä. ", [12] = "Tee-se-itse ekspertti. ", [13] = "Pitää ranskalaisista taide-elokuvista. ", [14] = "Pelaa OpenTTD-peliä. ", [15] = "C-ajokortin ylpeä omistaja. ", [16] = "Osallistuu moottoripyöräkilpailuihin. ", [17] = "Soittaa klassista viulua ja selloa. ", [18] = "Innokas junanromuttaja. ", [19] = "Koiraihminen. ", [20] = "Kuuntelee radiota. ", [21] = "Kylpee usein. ", [22] = "Opettaa bambunletitystä. ", [23] = "Valmistaa saippuakuppeja vihanneksista. ", [24] = "Osa-aikainen miinanraivaaja. ", [25] = "Visailumestari. ", [26] = "Kerää sirpaleita 2. maailmansodasta. ", [27] = "Pitää sisustamisesta. ", [28] = "Kuuntelee rave- ja trip-hop-musikkia. ", --see original for trip-hop [29] = "Tappaa hyönteisiä deodorantilla. ", [30] = "Pitää kamalia stand up -esityksiä. ", [31] = "Tekee ostoksia sairaalaneuvostolle. ", [32] = "Salaperäinen puutarhuri. ", [33] = "Salakuljettaa piraattikelloja. ", [34] = "Rock-bändin laulaja. ", [35] = "Rakastaa TV:n katselua päivällä. ", [36] = "Kalastaa taimenia. ", [37] = "Houkuttelee turisteja museoon. ", }, bad = { [1] = "Hidas ja nirso. ", [2] = "Laiska ja heikosti motivoitunut. ", [3] = "Huonosti koulutettu ja hyödytön. ", [4] = "Tyhmä ja ärsyttävä. Toimii sijaisena. ", [5] = "Alhainen kestävyys. Hänellä on huono ryhti. ", [6] = "Tyhmä kuin saapas. Haisee kaalilta. ", [7] = "Ei välitä työstään. Ei ota vastuuta. ", [8] = "Keskittymisvaikeuksia, häiriintyy helposti. ", [9] = "Stressaantunut ja tekee runsaasti virheitä. ", [10] = "Suuttuu helposti. Mököttää vihaisena. ", [11] = "Varomaton ja epäonninen. ", [12] = "Ei välitä työstään. Epäaktiivinen. ", [13] = "Uhkarohkea ja piittaamaton. ", [14] = "Viekas ja ovela. Puhuu muista pahaa. ", [15] = "Ylimielinen ja mahtaileva. ", }, } -- Staff list staff_list = { morale = "MORAALI", tiredness = "VÄSYMYS", skill = "TAITO", total_wages = "KOKONAISPALKKA", } -- Objects object = { desk = "Toimistopöytä", cabinet = "Arkistokaappi", door = "Ovi", bench = "Penkki", table1 = "Pöytä", -- unused object chair = "Tuoli", drinks_machine = "Juoma-automaatti", bed = "Sänky", inflator = "Pumppauskone", pool_table = "Biljardipöytä", reception_desk = "Vastaanottopöytä", table2 = "Pöytä", -- unused object & duplicate cardio = "Kardiogrammikone", scanner = "Magneettikuvain", console = "Konsoli", screen = "Sermi", litter_bomb = "Roskapommi", couch = "Sohva", sofa = "Sohva", crash_trolley = "Kärry", tv = "TV", ultrascanner = "Ultraäänilaite", dna_fixer = "DNA-korjain", cast_remover = "Kipsinpoistin", hair_restorer = "Hiustenpalautin", slicer = "Paloittelukone", x_ray = "Röntgen", radiation_shield = "Säteilysuoja", x_ray_viewer = "Röntgenkatselin", operating_table = "Leikkauspöytä", lamp = "Lamppu", -- unused object toilet_sink = "Pesuallas", op_sink1 = "Allas", op_sink2 = "Lavuaari", surgeon_screen = "Kirurgin sermi", lecture_chair = "Luentotuoli", projector = "Projektori", bed2 = "Sänky", -- unused duplicate pharmacy_cabinet = "Lääkekaappi", computer = "Tietokone", atom_analyser = "Atomianalysaattori", blood_machine = "Verikone", fire_extinguisher = "Vaahtosammutin", radiator = "Lämpöpatteri", plant = "Kasvi", electrolyser = "Elektrolyysikone", jelly_moulder = "Hyytelömuovain", gates_of_hell = "Manalan portit", bed3 = "Sänky", -- unused duplicate bin = "Roskakori", toilet = "Eriö", swing_door1 = "Heiluriovi", swing_door2 = "Heiluriovi", shower = "Puhdistussuihku", auto_autopsy = "Ruumiinavauskone", bookcase = "Kirjahylly", video_game = "Videopeli", entrance_left = "Sisäänkäynnin vasen ovi", entrance_right = "Sisäänkäynnin oikea ovi", skeleton = "Luuranko", comfortable_chair = "Mukava tuoli", litter = "Roska", } -- Place objects window place_objects_window = { drag_blueprint = "Muuta suunnitelmaa kunnes olet tyytyväinen siihen", place_door = "Aseta ovi paikalleen", place_windows = "Aseta joitakin ikkunoita, jos haluat. Vahvista, kun olet valmis", place_objects = "Aseta kalusteet paikalleen. Vahvista, kun olet valmis", confirm_or_buy_objects = "Voit hyväksyä huoneen, jatkaa kalusteiden ostamista tai siirtää kalusteita", pick_up_object = "Klikkaa kalusteita poimiaksesi ne ylös tai tee toinen valinta ikkunasta", place_objects_in_corridor = "Aseta kalusteita käytävään", } -- Competitor names competitor_names = { [1] = "ORAAKKELI", [2] = "TÖPPÖ", [3] = "KOLOSSI", [4] = "NULJASKA", [5] = "PYHIMYS", [6] = "SYVÄ AJATUS", [7] = "ZEN", [8] = "LEO", [9] = "AKIRA", [10] = "SAMI", [11] = "KAARLE", [12] = "JANNE", [13] = "ARTTURI", [14] = "MATTI", [15] = "MAMMA", [16] = "SARI", [17] = "KUNKKU", [18] = "JOONAS", [19] = "TANELI", [20] = "OLIVIA", [21] = "NIKKE", } -- Months months = { "Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou", } -- Graphs graphs = { money_in = "Tulot", money_out = "Menot", wages = "Palkat", balance = "Rahavarat", visitors = "Vierailijoita", cures = "Parantumisia", deaths = "Kuolemia", reputation = "Maine", time_spans = { "1 vuosi", "12 vuotta", "48 vuotta", } } -- Transactions transactions = { --null = S[8][ 1], -- not needed wages = "Palkat", hire_staff = "Palkkaa henkilökuntaa", buy_object = "Osta kalusteita", build_room = "Rakenna huoneita", cure = "Hoitokeino", buy_land = "Osta maata", treat_colon = "Hoito:", final_treat_colon = "Viimeisin hoito:", cure_colon = "Hoitokeino:", deposit = "Hoitomaksut", advance_colon = "Ennakko:", research = "Tutkimuskustannukset", drinks = "Tulot: juoma-automaatti", jukebox = "Tulot: jukeboksi", -- unused cheat = "Huijaukset", heating = "Lämmityskustannukset", insurance_colon = "Vakuutus:", bank_loan = "Pankkilaina", loan_repayment = "Lainan lyhennys", loan_interest = "Lainan korko", research_bonus = "Tutkimusbonus", drug_cost = "Lääkekustannukset", overdraft = "Tilin ylitys", severance = "Irtisanomiskustannukset", general_bonus = "Yleisbonus", sell_object = "Myy kalusteita", personal_bonus = "Henkilökunnan bonukset", emergency_bonus = "Hätätilannebonukset", vaccination = "Rokotukset", epidemy_coverup_fine = "Sakot epidemian peittelystä", compensation = "Valtion tuet", vip_award = "VIP-palkkinnot", epidemy_fine = "Epidemiasakot", eoy_bonus_penalty = "Vuosittaiset bonukset/sakot", eoy_trophy_bonus = "Vuoden palkintobonukset", machine_replacement = "Vaihtolaitteiden kustannukset", } -- Level names level_names = { "Lahjala", "Unikylä", "Isola", "Kotokartano", "Lepikylä", "Susimetsä", "Kaukala", "Puolitie", "Tammikuja", "Tiukylä", "Kaarela", "Kannosto", "Kamukylä", "Pikku-Rajala", "Vaatimala", } -- Town map town_map = { chat = "Chat", for_sale = "Myytävänä", not_for_sale = "Ei myytävänä", number = "Tonttinumero", owner = "Omistaja", area = "Pinta-ala", price = "Hinta", } -- Rooms short -- NB: includes some special "rooms" -- reception, destroyed room and "corridor objects" rooms_short = { reception = "Vastaanotto", destroyed = "Tuhoutunut", corridor_objects = "Käytäväkalusteet", gps_office = "Yleislääkäri", psychiatric = "Psykiatria", ward = "Vuodeosasto", operating_theatre = "Leikkaussali", pharmacy = "Apteekki", cardiogram = "Kardiogrammi", scanner = "Magneettikuvaus", ultrascan = "Ultraääni", blood_machine = "Verikone", x_ray = "Röntgen", inflation = "Pumppaushuone", dna_fixer = "DNA-klinikka", hair_restoration = "Hiusklinikka", tongue_clinic = "Kieliklinikka", fracture_clinic = "Murtumaklinikka", training_room = "Koulutushuone", electrolysis = "Elektrolyysiklinikka", jelly_vat = "Hyytelöklinikka", staffroom = "Taukohuone", -- rehabilitation = "Vieroitushuone", -- unused general_diag = "Yleinen diagnoosi", research_room = "Tutkimusosasto", toilets = "Käymälä", decontamination = "Säteilyklinikka", } -- Rooms long rooms_long = { general = "Yleinen", -- unused? emergency = "Hätätilanne", corridors = "Käytävät", gps_office = "Yleislääkärin vastaanotto", psychiatric = "Psykiatrin vastaanotto", ward = "Vuodeosasto", operating_theatre = "Leikkaussali", pharmacy = "Apteekki", cardiogram = "Kardiogrammihuone", scanner = "Magneettikuvaushuone", ultrascan = "Ultraäänihuone", blood_machine = "Verikonehuone", x_ray = "Röntgenhuone", inflation = "Pumppaushuone", dna_fixer = "DNA-klinikka", hair_restoration = "Hiusklinikka", tongue_clinic = "Kieliklinikka", fracture_clinic = "Murtumaklinikka", training_room = "Koulutushuone", electrolysis = "Elektrolyysiklinikka", jelly_vat = "Hyytelöklinikka", staffroom = "Henkilökunnan taukohuone", -- rehabilitation = "Vieroitushuone", -- unused general_diag = "Yleinen diagnoosihuone", research_room = "Tutkimusosasto", toilets = "Käymälä", decontamination = "Säteilyklinikka", } -- Drug companies drug_companies = { "Hoidake Yhtiöt", "Para 'N' Nus", "Pyöreät pikku-pillerit Oy", "Tyyrislääke Oyj", "Kaik-tabletit Ky", } -- Build rooms build_room_window = { pick_department = "Valitse osasto", pick_room_type = "Valitse huonetyyppi", cost = "Hinta: ", } -- Build objects buy_objects_window = { choose_items = "Valitse kalusteet", price = "Hinta:", total = "Yhteensä:", } -- Research research = { categories = { cure = "Hoitomenetelmät", diagnosis = "Diagnoosimenetelmät", drugs = "Lääketutkimus", improvements = "Laitteisto", specialisation = "Erikoistuminen", }, funds_allocation = "Myönnettävissä rahastosta", allocated_amount = "Myönnetty rahasumma", } -- Policy screen policy = { header = "SAIRAALAN KÄYTÄNNÖT", diag_procedure = "diagnosointikäytäntö", diag_termination = "hoidon lopettaminen", staff_rest = "taukokäytäntö", staff_leave_rooms = "salli tauolle poistuminen", sliders = { guess = "ARVAA HOITO", -- belongs to diag_procedure send_home = "LÄHETÄ KOTIIN", -- also belongs to diag_procedure stop = "LOPETA HOITO", -- belongs to diag_termination staff_room = "PIDÄ TAUKO", -- belongs to staff_rest } } -- Rooms room_classes = { -- S[19][2] -- "Käytävät" - unused for now diagnosis = "Diagnoosi", treatment = "Hoito", clinics = "Klinikat", facilities = "Toimitilat", } -- Insurance companies insurance_companies = { out_of_business = "KONKURSSISSA", "Kuorittu Sipuli Oy", "Pohjanmaalainen", "Sääntövakuutukset Oy", "Itikka Yhtiöt", "Uniturva", "Vam Pyyri Ky", "Sureol Vakuutusyhtiö", "Okto Pus ja kumppanit", "Larinnon Henkiturva", "Glade Vakuutukset Oy", "Mafia Vakuutus Oyj", } -- Menu root -- Keep 2 spaces as prefix and suffix menu = { file = " TIEDOSTO ", options = " VALINNAT ", display = " NÄYTÄ ", charts = " TILASTOT ", debug = " DEBUG ", } -- Menu File menu_file = { load = " (%1%) LATAA ", save = " (%1%) TALLENNA ", restart = " (%1%) ALOITA ALUSTA ", quit = " (%1%) LOPETA ", } menu_file_load = { [1] = " PELI 1 ", [2] = " PELI 2 ", [3] = " PELI 3 ", [4] = " PELI 4 ", [5] = " PELI 5 ", [6] = " PELI 6 ", [7] = " PELI 7 ", [8] = " PELI 8 ", } -- Menu Options menu_options = { adviser_disabled = " (%1%) AVUSTAJA ", announcements = " (%1%) KUULUTUKSET ", announcements_vol = " KUULUTUSTEN VOIMAKKUUS ", autosave = " AUTOMAATTITALLENNUS ", edge_scrolling = " REUNAVIERITYS ", game_speed = " PELINOPEUS ", jukebox = " (%1%) JUKEBOKSI ", lock_windows = " LUKITSE IKKUNAT ", music = " (%1%) MUSIIKKI ", music_vol = " MUSIIKIN VOIMAKKUUS ", settings = " ASETUKSET ", sound = " (%1%) ÄÄNI ", sound_vol = " ÄÄNENVOIMAKKUUS ", } -- Menu Display menu_display = { high_res = " KORKEA RESOLUUTIO ", mcga_lo_res = " MCGA - MATALA RESOLUUTIO ", shadows = " VARJOT ", } -- Menu Charts menu_charts = { statement = " (%1%) TILIOTE ", casebook = " (%1%) TAPAUSKIRJA ", policy = " (%1%) KÄYTÄNNÖT ", research = " (%1%) TUTKIMUS ", graphs = " (%1%) GRAAFIT ", staff_listing = " (%1%) TYÖNTEKIJÄT ", bank_manager = " (%1%) PANKINJOHTAJA ", status = " (%1%) TILANNE ", briefing = " TIIVISTELMÄ ", } -- Menu Debug menu_debug = { object_cells = " KALUSTESOLUT ", entry_cells = " SYÖTESOLUT ", keep_clear_cells = " PIDÄ TYHJÄNÄ -SOLUT ", nav_bits = " NAVIGOINTIBITIT ", remove_walls = " POISTA SEINÄT ", remove_objects = " POISTA KALUSTEET ", display_pager = " NÄYTÄ VIESTIT ", mapwho_checking = " MAPWHO-TARKISTUS ", plant_pagers = " KASVIVIESTIT ", porter_pagers = " KANTOVIESTIT ", pixbuf_cells = " PIXBUF-SOLUT ", enter_nav_debug = " SYÖTÄ NAVIG. DEBUG ", show_nav_cells = " NÄYTÄ NAVIG. SOLUT ", machine_pagers = " LAITEVIESTIT ", display_room_status = " NÄYTÄ HUONEEN TILA ", display_big_cells = " NÄYTÄ SUURET SOLUT ", show_help_hotspot = " NÄYTÄ APUPISTEET ", win_game_anim = " PELIN VOITTOANIM. ", win_level_anim = " KENTÄN VOITTOANIM. ", lose_game_anim = { [1] = " HÄVITTY PELI 1 ANIM ", [2] = " HÄVITTY PELI 2 ANIM ", [3] = " HÄVITTY PELI 3 ANIM ", [4] = " HÄVITTY PELI 4 ANIM ", [5] = " HÄVITTY PELI 5 ANIM ", [6] = " HÄVITTY PELI 6 ANIM ", [7] = " HÄVITTY PELI 7 ANIM ", }, } -- High score screen high_score = { pos = "SIJOITUS", player = "PELAAJA", score = "PISTEITÄ", best_scores = "HALL OF FAME", worst_scores = "HALL OF SHAME", killed = "Kuolleita", -- is this used? categories = { money = "RIKKAIN", salary = "KORKEIN PALKKA", clean = "PUHTAIN", cures = "PARANTUNEIDEN MÄÄRÄ", deaths = "KUOLLEIDEN MÄÄRÄ", cure_death_ratio = "PARANTUNEET-KUOLLEET-SUHDE", patient_happiness = "POTILAIDEN TYYTYVÄISYYS", staff_happiness = "HENKILÖSTÖN TYYTYVÄISYYS", staff_number = "ENITEN HENKILÖKUNTAA", visitors = "ENITEN POTILAITA", total_value = "KOKONAISARVO", }, } -- Trophy room trophy_room = { many_cured = { awards = { "Onnittelut Marie Curie -palkinnosta: olet onnistunut parantamaan suurimman osan sairaalaan saapuneista potilaista viime vuonna.", }, trophies = { "Kansainvälinen lääkintähallitus toivottaa onnea hyvästä paranemisten osuudesta sairaalassasi viime vuonna. He myöntävät täten sinulle Puolet parannettu -kunniamaininnan.", "Sinulle on myönnetty Ei sairaana kotiin -kunniamaininta, koska ole parantanut suurimman osan sairaalaasi saapuneista potilaista viime vuonna.", }, }, all_cured = { awards = { "Onnittelut Marie Curie -palkinnosta: olet onnistunut parantamaan kaikki sairaalaan saapuneet potilaat viime vuonna.", }, trophies = { "Kansainvälinen lääkintähallitus toivottaa onnea hyvästä paranemisten osuudesta sairaalassasi viime vuonna. He myöntävät täten sinulle Kaikki parannettu -kunniamaininnan.", "Sinulle on myönnetty Ei sairaana kotiin -kunniamaininta, koska ole parantanut kaikki sairaalaasi saapuneet potilaat.", }, }, high_rep = { awards = { "Sinulle myönnetään täten sisäministeriön Kiiltävät sairaalastandardit -palkinto, joka myönnetään vuosittain parhaan maineen saavuttaneelle sairaalalle. Onneksi olkoon!", "Ole hyvä ja ota vastaan Bullfrog-palkinto, joka myönnetään maineeltaan vuoden parhaalle sairaalalle. Olet ehdottomasti ansainnut sen!", }, }, happy_staff = { awards = { }, trophies = { "Sinulle on myönnetty Hymynaama-kunniamaininta ahkeran henkilökuntasi pitämisestä niin tyytyväisenä kuin mahdollista.", "Mielialainstituutti on todennut, ettei kenelläkään ollut sinun sairaalassassi huolia tai murheita viime vuonna ja se antaa sinulle tunnustuksena tästä kunniamaininnan.", "Aurinko paistaa aina -kunniamaininta myönnetään täten sinulle, koska olet onnistunut pitämään henkilöstösi tyytyväisenä koko vuoden huolimatta valtaisasta työmäärästä. Hymyä huuleen!", }, }, happy_vips = { trophies = { "Tunnettujen henkilöiden toimisto haluaa palkita sinut Julkkis-kunniamaininnalla, koska olet pitänyt hyvää huolta kaikista VIP-potilaistasi. Olet jo itsekin melkein tunnettu!", }, }, no_deaths = { awards = { "Olet voittanut Elä pitkään -palkinnon pidettyäsi viime vuoden aikana 100 prosenttia potilaistasi hengissä.", }, trophies = { "Elämä jatkuu -komitea on myöntänyt sinulle nimikkokunniamainintansa, koska olet selvinnyt ilman ainuttakaan kuolemantapausta koko viime vuoden.", "Sinulle on myönnetty Pidä elämästä kiinni -kunniamaininnan onnistuttuasi välttämään kuolemantapaukset kuluneena vuonna kokonaan. Mahtavuutta!", }, }, rats_killed = { awards = { }, trophies = { "Sinulle on myönnetty Nolla tuholaista -kunniamaininta, koska sairaalassasi on ammuttu %d rottaa vuoden aikana.", -- %d (number of rats) "Otat vastaaan rottien ja hiirten vastaisen järjestön kunniamaininnan erinomaisen rotta-ammuntasi johdosta. Otit hengiltä %d jyrsijää viime vuonna.", -- %d (number of rats) "Onnittelut Rotta-ampuja-kunniamaininnasta, jonka sait osoitettuasi erityistä lahjakkuutta hävittämällä %d rottaa sairaalastasi kuluneen vuoden aikana.", -- %d (number of rats) }, }, rats_accuracy = { awards = { }, trophies = { "Sinulle on myönnetty Kiitettävä ampuja toivottomassa sodassa -kunniamaininta, koska osamatarkkuutesi inhottavien rottien jahtaamisessa oli %d%% viime vuonna.", -- %d (accuracy percentage) "Tämä kunniamaininta on osoitus taitavuudestasi saatuasi hengiltä %d%% rotista, joita ammuit viime vuonna.", -- %d (accuracy percentage) "Olet osoittanut suurta tarkkuutta tappaessasi %d%% kaikista sairaalasi rotista ja sinulle on myönnetty Dungeon Keeper -kunniamaininta. Rottaiset onnittelut!", -- %d (accuracy percentage) }, }, healthy_plants = { awards = { "Onnittelut Kasvukausi-palkinnosta! Olet onnistunut pitämään sairaalasi kasvit erinomaisessa kunnossa koko vuoden.", }, trophies = { "Ruukasvien ystävät -järjestö myöntää sinulle Vihreä terveys -kunniamaininnan, koska olet pitänyt hyvää huolta sairaalasi kasveista viimeiset 12 kuukautta.", "Sinulle on myönnetty Viherpeukalo-kunniamainnita, koska kasveiltasi ei ole puuttunut vettä eikä hoitoa viime vuonna.", }, }, sold_drinks = { awards = { }, trophies = { "Kansainvälinen automaattiyhdistys on ylpeä voidessaan antaa sinulle kunniamaininnan sairaalassasi viime vuonna myytyjen virvoitusjuomien suuresta määrästä.", "Sairaalallesi on myönnetty Ravistetut tölkit -kunniamaininta viime vuoden aikana myytyjen virvoitusjuomatölkkien määrästä.", "Suomen hammaspaikat Oy on myöntänyt sinulle kunniamaininnan, koska sairaalasi on ansiokkaasti edistänyt virvoitusjuomien myyntiä viime vuonna.", }, }, } -- Casebook screen casebook = { reputation = "maine", treatment_charge = "hoidon hinta", earned_money = "tulot yhteensä", cured = "parannettuja", deaths = "kuolleita", sent_home = "kotiin lähetettyjä", research = "kohdista tutkimusta", cure = "hoito", cure_desc = { build_room = "Tarvitset huoneen: %s", -- %s (room name) build_ward = "Tarvitset nopeasti vuodeosaston.", hire_doctors = "Tarvitset lisää lääkäreitä.", hire_surgeons = "Tarvitset lisää kirurgeja.", hire_psychiatrists = "Tarvitset lisää psykologeja.", hire_nurses = "Tarvitset lisää sairaanhoitajia.", no_cure_known = "Ei tunnettuja hoitoja.", cure_known = "Hoito tunnetaan.", improve_cure = "Parannettu hoito", }, } -- Tooltips tooltip = { -- Build room window build_room_window = { room_classes = { diagnosis = "Valitse diagnoosihuone", treatment = "Valitse yleinen hoitohuone", clinic = "Valitse erityisklinikka", facilities = "Valitse laitokset", }, cost = "Kustannukset nykyisestä huoneesta", close = "Keskeytä toiminto ja palaa peliin", }, -- Toolbar toolbar = { bank_button = "Vasen klikkaus: pankinjohtaja, oikea klikkaus: tiliote", balance = "Tilin saldo", reputation = "Maine:", -- NB: no %d! Append " ([reputation])". date = "Päivä", rooms = "Rakenna huone", objects = "Osta kalusteita", edit = "Muuta huonetta/kalusteita", hire = "Palkkaa henkilökuntaa", staff_list = "Henkilökuntaluettelo", town_map = "Kartta", casebook = "Hoitokirja", research = "Tutkimus", status = "Tilanne", charts = "Kuvaajat", policy = "Sairaalan käytännöt", }, -- Hire staff window hire_staff_window = { doctors = "Näytä työtä etsivät lääkärit", nurses = "Näytä työtä etsivät sairaanhoitajat", handymen = "Näytä työtä etsivät huoltomiehet", receptionists = "Näytä työtä etsivät vastaanottoapulaiset", prev_person = "Näytä edellinen", next_person = "Näytä seuraava", hire = "Palkkaa", cancel = "Peruuta", doctor_seniority = "Kokemus (Harjoittelija, Tohtori, Konsultti)", staff_ability = "Kyvyt", salary = "Palkkavaatimus", qualifications = "Erikoistumisalat", surgeon = "Kirurgi", psychiatrist = "Psykiatri", researcher = "Tutkija", }, -- Buy objects window buy_objects_window = { price = "Kalusteen hinta", total_value = "Ostettujen kalusteiden kokonaisarvo", confirm = "Osta kaluste(et)", cancel = "Peruuta", increase = "Kasvata valitun kalusteen ostetavaa määrää", decrease = "Pienennä valitun kalusteen ostettavaa määrää", }, -- Staff list staff_list = { doctors = "Näytä katsaus lääkäreistäsi", nurses = "Näytä katsaus sairaanhoitajistasi", handymen = "Näytä katsaus huoltomiehistäsi", receptionists = "Näytä katsaus vastaanottoapulaisistasi", happiness = "Näyttää, kuinka tyytyväisiä työntekijäsi ovat", tiredness = "Näyttää, kuinka väsyneitä työntekijäsi ovat", ability = "Näyttää työntekijöidesi kyvyt", salary = "Työntekijälle maksettava palkka", happiness_2 = "Työntekijän tyytyväisyys", tiredness_2 = "Työntekijän väsymys", ability_2 = "Työntekijän kyvyt", prev_person = "Näytä edellinen sivu", next_person = "Näytä seuraava sivu", bonus = "Anna työntekijälle 10%:n bonus", sack = "Anna työntekijälle potkut", pay_rise = "Nosta työntekijän palkkaa 10%", close = "Sulje ikkuna", doctor_seniority = "Lääkärin kokemus", detail = "Yksityiskohtien huomioimiskyky", view_staff = "Näytä työntekijä", surgeon = "Erikoistunut kirurgiaan", psychiatrist = "Erikoistunut psykiatriaan", researcher = "Erikoistunut tutkimukseen", surgeon_train = "%d%% suoritettu kirurgiaan erikoistumisesta", -- %d (percentage trained) psychiatrist_train = "%d%% suoritettu psykiatriaan erikoistumisesta", -- %d (percentage trained) researcher_train = "%d%% suoritettu tutkimukseen erikoistumisesta", -- %d (percentage trained) skills = "Taidot", }, -- Queue window queue_window = { num_in_queue = "Jonottavien potilaiden määrä", num_expected = "Vastaanotosta jonoon pian saapuvien potilaiden määrä", num_entered = "Tässä huoneessa tähän mennessä hoidettujen potilaiden kokonaismäärä", max_queue_size = "Vastaanotosta jonoon päästettävien potilaiden enimmäismäärä", dec_queue_size = "Pienennä jonoon päästettävien potilaiden enimmäismäärää", inc_queue_size = "Kasvata jonoon päästettävien potilaiden enimmäismäärää", front_of_queue = "Vedä potilas tähän asettaaksesi hänet jonon ensimmäiseksi", end_of_queue = "Vedä potilas tähän asettaaksesi hänet jonon viimeiseksi", close = "Sulje ikkuna", patient = "Siirrä potilasta jonossa vetämällä. Klikkaa oikealla lähettääksesi potilas kotiin, vastaanottoon tai kilpailevaan sairaalaan", patient_dropdown = { reception = "Lähetä potilas vastaanottoon", send_home = "Lähetä potilas kotiin", hospital_1 = "Lähetä potilas toiseen sairaalaan", hospital_2 = "Lähetä potilas toiseen sairaalaan", hospital_3 = "Lähetä potilas toiseen sairaalaan", }, }, -- Main menu main_menu = { new_game = "Aloita uusi peli", load_game = "Lataa aiemmin tallennettu peli", continue = "Jatka edellistä peliä", network = "Aloita verkkopeli", quit = "Lopeta", load_menu = { load_slot = " PELI ", -- NB: no %d! Append " [slotnumber]". empty_slot = " TYHJÄ ", }, }, -- Window general window_general = { cancel = "Peruuta", confirm = "Vahvista", }, -- Information dialog information = { close = "Sulje tiedoteikkuna", }, -- Patient window patient_window = { close = "Sulje ikkuna", graph = "Klikkaa vaihtaaksesi potilaan terveyskuvaajan ja hoitohistorian välillä", happiness = "Potilaan tyytyväisyys", thirst = "Potilaan jano", warmth = "Potilaan lämpötila", casebook = "Näytä lisätietoja potilaan sairaudesta", send_home = "Lähetä potilas kotiin sairaalasta", center_view = "Keskitä näkymä potilaaseen", abort_diagnosis = "Lähetä potilas suoraan hoitoon ennen diagnoosin valmistumista", queue = "Näytä jono, jossa potilas on", }, -- window staff_window = { name = "Työntekijän nimi", close = "Sulje ikkuna", face = "Työntekijän kuva - avaa henkilökuntaluettelo klikkaamalla", happiness = "Tyytyväisyys", tiredness = "Väsymys", ability = "Kyvyt", doctor_seniority = "Kokemus (Harjoittelija, Tohtori, Konsultti)", skills = "Erikoistuminen", surgeon = "Kirurgi", psychiatrist = "Psykiatri", researcher = "Tutkija", salary = "Kuukausipalkka", center_view = "Keskitä näkymä työntekijään klikkaamalla vasemmalla, selaa työntekijöitä klikkaamalla oikealla", sack = "Anna potkut", pick_up = "Poimi työntekijä", }, -- Machine window machine_window = { name = "Koneen nimi", close = "Sulje ikkuna", times_used = "Käyttökertojen määrä", status = "Koneen tila", repair = "Kutsu huoltomies huoltamaan kone", replace = "Korvaa kone uudella", }, -- Handyman window -- Apparently handymen have their own set of strings (partly) containing "handyman". -- We could just get rid of this category and include the three prios into staff_window. handyman_window = { ability = "Kyvyt", center_view = "Keskitä näkymä huoltomieheen", -- contains "handyman" close = "Sulje ikkuna", face = "Huoltomiehen kuva", -- contains "handyman" happiness = "Tyytyväisyys", name = "Huoltomiehen nimi", -- contains "handyman" parcel_select = "Alue, jolla huoltomies hoitaa tehtäviään. Klikkaa vaihtaaksesi asetusta", pick_up = "Poimi huoltomies", prio_litter = "Pyydä huoltomiestä keskittymään lattioiden siivoamiseen", -- contains "handyman" prio_plants = "Pyydä huoltomiestä keskittymään kasvien kastelemiseen", -- contains "handyman" prio_machines = "Pyydä huoltomiestä keskittymään koneiden huoltamiseen", -- contains "handyman" sack = "Anna potkut", salary = "Kuukausipalkka", tiredness = "Väsymys", }, -- Place objects window place_objects_window = { cancel = "Peruuta", buy_sell = "Osta/Myy kalusteita", pick_up = "Poimi kaluste", confirm = "Vahvista", }, -- Casebook casebook = { up = "Vieritä ylös", down = "Vieritä alas", close = "Sulje hoitokirja", reputation = "Hoito- ja diagnoosimaine lähialueella", treatment_charge = "Hoidon hinta", earned_money = "Tähän mennessä ansaittu rahasumma", cured = "Parannettujen potilaiden määrä", deaths = "Hoidon seurauksena kuolleiden potilaiden määrä", sent_home = "Kotiin lähetettyjen potilaiden määrä", decrease = "Laske hintaa", increase = "Nosta hintaa", research = "Klikkaa käyttääksesi tutkimusbudjettia taudin tutkimukseen ja sen hoitoon erikoistumiseen", cure_type = { drug = "Tämä tauti vaatii lääkitystä", drug_percentage = "Tämä tauti vaatii lääkitystä - sinun lääkkeesi tehokkuus on %d%%", -- %d (effectiveness percentage) psychiatrist = "Tämä tauti vaatii psykiatrin hoitoa", surgery = "Tämä tauti vaatii leikkauksen", machine = "Tämä tauti vaatii erikoislaitteen", }, cure_requirement = { possible = "Voit hoitaa potilaan terveeksi", research_machine = "Sinun täytyy kehittää erikoislaite hoitaaksesi sairautta", build_room = "Sinun täytyy rakentaa hoitohuone hoitaaksesi sairautta", hire_surgeons = "Tarvitset kaksi kirurgia hoitaaksesi sairautta", -- unused hire_surgeon = "Tarvitset yhden kirurgin hoitaaksesi sairautta", -- unused hire_staff_old = "Sinun täytyy palkata %s hoitaaksesi sairautta", -- %s (staff type), unused. Use hire_staff instead. build_ward = "Sinun täytyy rakentaa vuodeosasto hoitaaksesi sairautta", -- unused ward_hire_nurse = "Tarvitset sairaanhoitajan vuodeosastollesi hoitaaksesi sairautta", -- unused not_possible = "Et voi vielä hoitaa sairautta", -- unused }, }, -- Statement statement = { close = "Sulje tiliote", }, -- Research research = { close = "Poistu tutkimusosastolta", cure_dec = "Laske hoitotutkimuksen tärkeysastetta", diagnosis_dec = "Laske diagnoositutkimuksen tärkeysastetta", drugs_dec = "Laske lääketutkimuksen tärkeysastetta", improvements_dec = "Laske laitteistotutkimuksen tärkeysastetta", specialisation_dec = "Laske erikoistumistutkimuksen tärkeysastetta", cure_inc = "Nosta hoitotutkimuksen tärkeysastetta", diagnosis_inc = "Nosta diagnoositutkimuksen tärkeysastetta", drugs_inc = "Nosta lääketutkimuksen tärkeysastetta", improvements_inc = "Nosta laitteistotutkimuksen tärkeysastetta", specialisation_inc = "Nosta erikoistumistutkimuksen tärkeysastetta", allocated_amount = "Tutkimukseen suunnattu rahoitus", }, -- Graphs graphs = { close = "Sulje kuvaajaikkuna", scale = "Skaalaa diagrammia", money_in = "Näytä/Piilota tulot", money_out = "Näytä/Piilota menot", wages = "Näytä/Piilota palkat", balance = "Näytä/Piilota tilin saldo", visitors = "Näytä/Piilota potilaat", cures = "Näytä/Piilota parannetut", deaths = "Näytä/Piilota kuolleet", reputation = "Näytä/Piilota maine", }, -- Town map town_map = { people = "Näytä/Piilota ihmiset", plants = "Näytä/Piilota kasvit", fire_extinguishers = "Näytä/Piilota vaahtosammuttimet", objects = "Näytä/Piilota kalusteet", radiators = "Näytä/Piilota lämpöpatterit", heat_level = "Lämpötila", heat_inc = "Nosta lämpötilaa", heat_dec = "Laske lämpötilaa", heating_bill = "Lämmityskustannukset", balance = "Tilin saldo", close = "Sulje kartta", }, -- Jukebox. jukebox = { current_title = "Jukeboksi", close = "Sulje jukeboksi-ikkuna", play = "Käynnistä jukeboksi", rewind = "Kelaa jukeboksia taakse", fast_forward = "Kelaa jukeboksia eteen", stop = "Pysäytä jukeboksi", loop = "Toista jukeboksia silmukassa", }, -- Bank Manager bank_manager = { hospital_value = "Sairaalasi tämänhetkinen arvo", balance = "Pankkitilisi saldo", current_loan = "Pankkilainan määrä", repay_5000 = "Maksa pankille 5000 takaisin", borrow_5000 = "Lainaa pankilta 5000 lisää", interest_payment = "Kuukausittaiset korkokustannukset", inflation_rate = "Vuotuinen inflaatio", interest_rate = "Vuotuinen korko", close = "Poistu pankista", insurance_owed = "Määrä, jonka %s on sinulle velkaa", -- %s (name of debitor) show_graph = "Näytä velallisen %s maksusuunnitelma", -- %s (name of debitor) graph = "Velallisen %s maksusuunnitelma", -- %s (name of debitor) graph_return = "Palaa edelliseen näyttöön", }, -- Status status = { win_progress_own = "Näytä pelaajan edistyminen tämän tason vaatimusten suhteen", win_progress_other = "Näytä kilpailijan %s edistyminen tämän tason vaatimusten suhteen", -- %s (name of competitor) population_chart = "Kuvaaja, joka näyttää kuinka suuri osa paikallisesta väestöstä hakeutuu mihinkin sairaalaan hoidettavaksi", happiness = "Kaikkien sairaalassasi olevien keskimääräinen tyytyväisyys", thirst = "Kaikkien sairaalassasi olevien keskimääräinen janoisuus", warmth = "Kaikkien sairaalassasi olevien keskimääräinen lämpötila", close = "Sulje tilanneikkuna", reputation = "Maineesi pitää olla vähintään %d. Tällä hetkellä se on %d", -- %d (target reputation) %d (current reputation) balance = "Sinulla tulee olla rahaa tililläsi vähintää %d$. Tällä hetkellä sitä on %d$", -- %d (target balance) %d (current balance) population = "%d%% alueen väestöstä pitää kuulua asiakaskuntaasi", num_cured = "Tavoitteenasi on parantaa %d ihmistä. Tähän mennessä olet parantanut %d", percentage_killed = "Tavoitteenasi on tappaa vähemmän kuin %d%% potilaistasi. Tähän mennessä olet tappanut %d%% heistä", value = "Sairaalasi arvon tulee olla vähintään $%d. Nyt se on $%d", percentage_cured = "Sinun pitää parantaa %d%% sairaalaasi saapuneista potilaista. Tähän mennessä olet parantanut %d%% heistä", }, -- Policy policy = { close = "Sulje käytännöt-ikkuna", staff_leave = "Klikkaa tästä asettaaksesi henkilökunnan liikkumaan vapaasti huoneiden välillä ja auttamaan kollegojaan tarvittaessa", staff_stay = "Klikkaa tästä asettaaksesi henkilökunnan pysymään huoneissa, joihin olet heidät asettanut", diag_procedure = "Jos lääkärin diagnoosi on epävarmempi kuin LÄHETÄ KOTIIN-prosentti, lähetetään potilas kotiin. Jos diagnoosi on varmempi kuin ANNA HOITO-prosentti, lähetetään potilas suoraan hoitoon", diag_termination = "Potilaan diagnoosia jatketaan, kunnes lääkärit ovat yhtä varmoja kuin KESKEYTÄ PROSESSI-prosentti tai kaikkia diagnoosikoneita on kokeiltu", staff_rest = "Kuinka väsynyttä henkilöstön pitää olla ennen kuin he saavat levätä", }, -- Pay rise window pay_rise_window = { accept = "Myönny vaatimuksiin", decline = "Kieltäydy vaatimuksista - Anna lopputili sen sijaan", }, -- Watch watch = { hospital_opening = "Rakennusaika: sinulla on tämän verran aikaa jäljellä ennen kuin sairaala avataan potilaille. Paina vihreää AVAA-nappia avataksesi sairaalasi välittömästi.", emergency = "Hätätilanne: Akuuttien potilaiden parantamiseen jäljellä oleva aika.", epidemic = "Epidemia: Epidemian taltuttamiseen jäljellä oleva aika. Kun aika kuluu loppuun TAI tartunnan saanut potilas poistuu sairaalasta, terveystarkastaja saapuu vierailulle. Paina nappia aloittaaksesi ja lopettaaksesi rokotukset. Klikkaa potilaita kutsuaksesi sairaanhoitajan rokottamaan heidät.", }, -- Rooms rooms = { gps_office = "Potilaat tutkitaan ja diagnosoidaan alustavasti yleislääkärin toimistossa.", psychiatry = "Psykiatrin vastaanotolla hoidetaan mielenhäiriöistä kärsiviä potilaita ja autetaan diagnosoinnissa. Vaatii psykiatriaan erikoistuneen lääkärin", ward = "Vuodeosasto on hyödyllinen sekä diagnosoinnissa että hoidossa. Potilaita lähetetään tänne tarkkailtavaksi ja toipumaan leikkauksen jälkeen. Vaatii sairaanhoitajan", operating_theatre = "Leikkaussalissa tarvitaan kaksi kirurgiaan erikoistunutta lääkäriä", pharmacy = "Apteekissa sairaanhoitaja jakaa lääkkeitä niitä tarvitseville potilaille", cardiogram = "Lääkäri tutkii potilaiden sydänkäyriä kardiogrammin avulla ja diagnosoi sydäntauteja", scanner = "Lääkäri käyttää magneettikuvausta potilaiden diagnosoimiseen", ultrascan = "Lääkäri käyttää ultraääntä potilaiden diagnosoimiseen", blood_machine = "Lääkäri käyttää verikonetta potilaiden veren tutkimiseen ja diagnosoimiseen", x_ray = "Lääkäri kuvaa röntgenillä potilaiden luut ja tekee niiden perusteella diagnooseja", inflation = "Lääkäri käyttää pumppauskonetta pallopäisyyttä sairastavien potilaiden hoitoon", dna_fixer = "Lääkäri käyttää DNA-konetta alienin DNA:sta kärsivien potilaiden hoidossa", hair_restoration = "Lääkäri käyttää hiustenpalautinta kaljuuntumisesta kärsivien potilaiden hoitoon", tongue_clinic = "Kieliklinikalla lääkäri hoitaa potilaita, joilla on löyhä kieli", fracture_clinic = "Murtumaklinikkalla sairaanhoitaja korjaa potilaiden murtumia", training_room = "Konsultointiin erikoistunut lääkäri pitää luentoja koulutushuoneessa ja opettaa muita lääkäreitä", electrolysis = "Elektrolyysiklinikkalla lääkäri hoitaa turkinkasvua sairastavia potilaita", jelly_vat = "Lääkäri käyttää hyytelömuovainta hyytelöitymisestä kärsivien potilaiden parantamiseen", staffroom = "Lääkärit, sairaanhoitajat ja huoltomiehet käyttävät taukohuonetta lepäämiseen ja mielialansa parantamiseen", -- rehabilitation = S[33][27], -- unused general_diag = "Lääkäri suorittaa täällä perusdiagnoosin yleislääkärillä vierailleille potilaille. Halpa ja monien sairauksien diagnosointiin varsin tehokas huone", research_room = "Tutkimukseen erikoistunut lääkäri voi kehittää täällä uusia lääkkeitä ja koneita sairauksien parantamiseksi", toilets = "Rakenna käymälä, jotta potilaat eivät sotke sairaalaasi!", decontamination = "Säteilyklinikalla lääkäri hoitaa vakavasta säteilystä kärsiviä potilaita", }, -- Objects objects = { -- NB: most objects do not have a tooltip because they're not (extra-)buyable desk = "Pöytä: Lääkäri voi käyttää pöydällä tietokonettaan.", cabinet = "Arkistokaappi: Pitää sisällään potilastietoja, muistiinpanoja ja tutkimusaineistoa.", door = "Ovi: Ihmiset avaavat ja sulkevat tätä vähän väliä.", bench = "Penkki: Tarjoaa potilaille istumapaikan ja tekee odottamisesta mukavampaa.", table1 = S[40][ 6], -- unused chair = "Tuoli: Potilaat istuvat tässä ja kertovat ongelmistaan ja oireistaan.", drinks_machine = "Juoma-automaatti: Pitää potilaiden janon kurissa ja tuottaa tuloja sairaalalle.", bed = "Sänky: Vakavasti sairaat potilaat makaavat näissä.", inflator = "Pumppauskone: Parantaa potilaat, jotka sairastavat pallopäisyyttä.", pool_table = "Biljardipöytä: Auttaa henkilökuntaasi rentoutumaan.", reception_desk = "Vastaanotto: Vaatii vastaanottoapulaisen, joka opastaa potilaita eteenpäin.", table2 = S[40][13], -- unused & duplicate cardio = S[40][14], -- no description scanner = S[40][15], -- no description console = S[40][16], -- no description screen = S[40][17], -- no description litter_bomb = "Roskapommi: Sabotoi kilpailijan sairaalaa", couch = S[40][19], -- no description sofa = "Sohva: Työntekijät, jotka ovat taukohuoneessa, istuvat paikallaan sohvalla kuin parempaa rentoutumistapaa ei olisikaan.", crash_trolley = S[40][21], -- no description tv = "TV: Harmi, ettei henkilökunnallasi ole yleensä aikaa katsoa lempiohjelmaansa loppuun.", ultrascanner = S[40][23], -- no description dna_fixer = S[40][24], -- no description cast_remover = S[40][25], -- no description hair_restorer = S[40][26], -- no description slicer = S[40][27], -- no description x_ray = S[40][28], -- no description radiation_shield = S[40][29], -- no description x_ray_viewer = S[40][30], -- no description operating_table = S[40][31], -- no description lamp = S[40][32], -- unused toilet_sink = "Pesuallas: Hygieniariippuvaiset potilaasi voivat pestä likaantuneet kätensä tässä. Jos altaita ei ole riittävästi, he tulevat tyytymättömiksi.", op_sink1 = S[40][34], -- no description op_sink2 = S[40][35], -- no description surgeon_screen = S[40][36], -- no description lecture_chair = "Luentotuoli: Lääkäriopiskelijasi istuvat tässä ja tuhertavat innokkaasti muistiinpanoja. Mitä enemmän tuoleja luokassa on sitä enemmän opiskelijoita sinne mahtuu.", projector = S[40][38], -- no description bed2 = S[40][39], -- unused duplicate pharmacy_cabinet = "Lääkekaappi: Lääkevalikoimasi löytyy täältä.", computer = "Tietokone: Nerokas tiedonlähde", atom_analyser = "Atomianalysaattori: Sijoitettuna tutkimusosastolle tämä nopeuttaa koko tutkimusprosessia.", blood_machine = S[40][43], -- no description fire_extinguisher = "Vaahtosammutin: Minimoi vaaran, jonka laitteiden vikaantuminen voi aiheuttaa.", radiator = "Lämpöpatteri: Pitää huolta, ettei sairaalassasi pääse tulemaan kylmä.", plant = "Kasvi: Pitää potilaiden mielialan korkealla ja puhdistaa ilmaa.", electrolyser = S[40][47], -- no description jelly_moulder = S[40][48], -- no description gates_of_hell = S[40][49], -- no description bed3 = S[40][50], -- unused duplicate bin = "Roskakori: Potilaat heittävät roskansa tänne.", toilet = "Eriö: Potilaat, öh... tekevät tarpeensa tänne.", swing_door1 = S[40][53], -- no description swing_door2 = S[40][54], -- no description shower = S[40][55], -- no description auto_autopsy = "Ruumiinavauskone: Mahtava apuväline uusien hoitomenetelmien kehittämisessä.", bookcase = "Kirjahylly: Referenssimateriaalia lääkärille.", video_game = "Videopeli: Anna henkilökuntasi rentoutua Hi-Octane-pelin parissa.", entrance_left = S[40][59], -- no description entrance_right = S[40][60], -- no description skeleton = "Luuranko: Käytetään opetuksessa ja Halloween-koristeena.", comfortable_chair = S[40][62], -- no description }, } -- 32. Adviser adviser = { -- Tutorial tutorial = { start_tutorial = "Lue tason kuvaus ja klikkaa hiiren vasemmalla painikkeella aloittaaksesi esittelyn.", build_reception = "Hei! Ensimmäisenä sairaalasi tarvitsee vastaanoton. Löydät sen osta kalusteita -valikosta.", order_one_reception = "Klikkaa hiiren vasemmalla painikkeella kerran vilkkuvaa aluetta valitaksesi yhden vastaanoton.", accept_purchase = "Klikkaa nyt vilkkuvaa aluetta ostaaksesi valitsemasi kalusteet.", rotate_and_place_reception = "Klikkaa hiiren oikeaa painikketta pyörittääksesi vastaanotto haluamaasi suuntaan ja klikkaa vasemalla asettaaksesi se paikalleen.", reception_invalid_position = "Vastaanotto näkyy harmaana, koska sitä ei voida sijoittaa tähän. Kokeile siirtää tai pyörittää sitä.", hire_receptionist = "Nyt tarvitset vastaanottoapulaisen ottamaan potilaasi vastaan ja ohjaamaan heidät oikeisiin huoneisiin.", select_receptionists = "Klikkaa vilkkuvaa ikonia käydäksesi läpi saatavilla olevia vastaanottoapulaisia. Ikonissa näkyvä numero kertoo saatavilla olevien apulaisten määrän.", next_receptionist = "Tämä on listan ensimmäinen vastaanottoapulainen. Klikkaa vilkkuvaa ikonia nähdäksesi seuraavan henkilön.", prev_receptionist = "Klikkaa vilkkuvaa ikonia nähdäksesi edellisen henkilön.", choose_receptionist = "Valitse vastaanottoapulainen, jolla on hyvät taidot ja hyväksyttävä palkkavaatimus. Klikkaa vilkkuvaa ikonia palkataksesi hänet.", place_receptionist = "Poimi vastaanottoapulainen ja aseta hänet minne tahansa sairaalassasi. Hän löytää kyllä rakentamaasi vastaanottoon omin avuin.", receptionist_invalid_position = "Et voi asettaa työntekijääsi tähän. Kokeile asettaa hänet sairaalan sisälle paikkaan, jossa on tyhjää lattiaa.", window_in_invalid_position = "Ikkuna ei sovi tähän. Ole hyvä ja yritä asettaa se toiseen kohtaan seinällä.", choose_doctor = "Käy läpi kaikkien lääkäreiden taidot ja palkkavaatimukset ennen kuin päätät kenet haluat palkata.", click_and_drag_to_build = "Rakentaaksesi yleislääkärin toimiston sinun pitää ensin päättää kuinka suuri siitä tulee. Pidä hiiren vasen nappi pohjassa ja vedä hiirtä muuttaaksesi huoneen kokoa.", build_gps_office = "Jotta voit alkaa diagnosoida potilaita, sinun pitää rakentaa yleislääkärin toimisto.", door_in_invalid_position = "Hupsista! Yritit sijoittaa oven epäsopivaan paikkaan. Kokeile jotain toista kohtaa pohjapiirrustuksen seinässä.", confirm_room = "Klikkaa hiiren vasemmalla painikkeella vilkkuvaa ikonia, kun huone on valmis tai klikkaa X:ää palataksesi edelliseen vaiheeseen.", select_diagnosis_rooms = "Klikkaa hiiren vasemmalla painikkeella vilkkuvaa ikonia nähdäksesi listan diagnoosihuoneista, joita voit rakentaa.", hire_doctor = "Tarvitset lääkärin tutkimaan ja hoitamaan potilaita.", select_doctors = "Klikkaa hiiren vasemmalla painikkeella vilkkuvaa ikonia nähdäksesi lääkärit, jotka ovat saatavilla työmarkkinoilla.", place_windows = "Aseta ikkunat paikalleen samaan tapaan kuin asetit oven. Sinun ei ole pakko rakentaa ikkunoita, mutta työntekijäsi eivät pitäisi siitä lainkaan.", place_doctor = "Aseta lääkäri minne tahansa sairaalassasi. Hän menee yleislääkärin toimistoon heti, kun joku tarvitsee hoitoa.", room_in_invalid_position = "Hups! Tämä pohjapiirrustus ei kelpaa: punaiset alueet näyttävät, missä kohdin suunnitelmasi menee toisen huoneen päälle tai sairaalan ulkoseinien läpi.", doctor_in_invalid_position = "Hei! Et voi laittaa lääkäriä tähän. Koeta sijoittaa hänet tyhjälle lattia-alueelle.", place_objects = "Klikkaa hiiren oikeaa painikketta pyörittääksesi kalusteita ja vasenta asettaaksesi ne paikalleen.", room_too_small = "Tämä pohjapiirrustus näkyy punaisena, koska se on liian pieni. Vedä hiirtä pidempi matka saadaksesi suurempi huone.", click_gps_office = "Klikkaa hiiren vasemmalla painikkeella vilkkuvaa aluetta valitaksesi yleislääkärin toimiston.", room_too_small_and_invalid = "Pohjapiirrustus on liian pieni ja väärin aseteltu. Kokeile uudestaan.", object_in_invalid_position = "Tämä kaluste on väärin asetettu. Ole hyvä ja sijoita se toiseen paikkaan tai pyöritä sitä saadaksesi se sopimaan.", place_door = "Siirrä hiiri pohjapiirrustuksen reunalle asettaaksesi ovi haluamaasi paikkaan.", room_big_enough = "Pohjapiirrustus on riittävän suuri. Kun päästät hiiren painikkeen, asetat sen paikalleen. Voit halutessasi jatkaa sen muokkaamista.", build_pharmacy = "Onnittelut! Seuraavaksi kannattaa rakentaa Apteekki ja palkata sairaanhoitaja, jotta sairaalasi on täysin toimintavalmis.", information_window = "Tiedoteikkunassa kerrotaan lisätietoja juuri rakentamastasi yleislääkärin toimistosta.", }, -- Epidemic epidemic = { hurry_up = "Jos et ota nopeasti epidemiaa hallintaasi, siitä seuraa suuria ongelmia. Kiirehdi!", serious_warning = "Tartuntatauti leviää sairaalassasi ja alkaa muodostua vakavaksi ongelmaksi. Sinun on tehtävä jotain ja pian!", multiple_epidemies = "Sinulla näyttää olevan useampi kuin yksi epidemia riesanasi. Tästä voi seurata pahaa jälkeä, joten nyt on tulenpalava kiire.", }, -- Staff advice staff_advice = { need_handyman_machines = "Sinun täytyy palkata huoltomiehiä, jos haluat koneidesi pysyvän kunnossa.", need_doctors = "Tarvitset useita lääkäreitä. Kokeile siirtää parhaat lääkärisi huoneisiin, joihin on pisin jono.", need_handyman_plants = "Sinun täytyy palkata huoltomies kastelemaan kasvejasi, etteivät ne kuole.", need_handyman_litter = "Ihmiset valittavat, että sairaalasi muistuttaa kaatopaikkaa. Palkkaa huoltomies siivoamaan potilaidesi sotkut.", need_nurses = "Tarvitset useita sairaanhoitajia. Vuodeosastoa ja apteekkia voivat hoitaa vain sairaanhoitajat.", too_many_doctors = "Sairaalassasi on liikaa lääkäreitä. Osalla heistä ei ole mitään tekemistä.", too_many_nurses = "Uskoisin, että sinulla on liikaa sairaanhoitajia palkkalistoillasi.", }, -- Earthquake earthquake = { damage = "Maanjäristys on vioittanut %d laitetta ja %d potilasta on loukkaantunut sairaalassasi.", -- %d (count machines), &d (count patients) alert = "Maanjäristysvaroitus. Maanjäristys vahingoittaa laitteitasi ja ne voivat lakata toimimasta kokonaan, jos niitä ei ole huollettu kunnolla.", ended = "Huh. Se tuntui voimakkaalta järistykseltä - magnitudiksi mitattiin %d Richterin asteikolla.", }, -- Multiplayer multiplayer = { objective_completed = "Olet saavuttanut kaikki tämän tason tavoitteet. Onnittelut!", everyone_failed = "Kukaan ei ole saavuttanut asetettuja tavoitteita. Kaikki saavat siis jatkaa yrittämistä!", players_failed = "Seuraavat pelaajat eivät ole saavuttaneet asetettuja tavoitteita: ", objective_failed = "Et ole onnistunut saavuttamaan tämän tason tavoitteita.", poaching = { in_progress = "Yritän tiedustella josko tämä henkilö olisi kiinnostunut siirtymään palvelukseesi.", not_interested = "Hah! Häntä ei kiinnosta tulla töihin sinulle - hänellä on kaikki hyvin nykyisissä työpaikassaan.", already_poached_by_someone = "Turha haaveilla! Joku muu yrittää jo parhaillaan viedä tätä työntekijää.", }, }, -- Surgery requirements surgery_requirements = { need_surgeons_ward_op = "Tarvitset kaksi kirurgia ja vuodeosaston leikkaussalin lisäksi voidaksesi suorittaa kirurgisia toimenpiteitä.", need_surgeon_ward = "Tarvitset vuodeosaston ja yhden kirurgin lisää voidaksesi suorittaa kirurgisia toimenpiteitä.", }, -- Vomit wave vomit_wave = { started = "Sairaalaasi näyttää levinneen oksennustautia aiheuttava virus. Jos olisit palkannut lisää huoltomiehiä pitämään paikat puhtaina, näin ei olisi päässyt käymään.", ended = "Huh! Viruksen aiheuttama oksennustauti on saatu kuriin. Pidä sairaalasi puhtaampana jatkossa.", }, -- Level progress level_progress = { nearly_won = "Olet miltei saavuttanut tämän tason tavoitteet.", three_quarters_lost = "Vain yksi neljännes erottaa sinut lopullisesta tappiosta.", halfway_won = "Olet jo puolittain voittanut tämän tason.", halfway_lost = "Toinen jalkasi on jo haudassa tavotteiden suhteen.", nearly_lost = "Tappiosi on viimeistä naulaa vaille valmis.", three_quarters_won = "Vain yksi neljännes tavoitteista on enää suorittamatta.", }, -- Staff place advice staff_place_advice = { receptionists_only_at_desk = "Vain vastaanottoapulaiset voivat työskennellä vastaanotossa.", only_psychiatrists = "Vain psykiatriaan erikoistuneet lääkärit voivat työskennellä psykiatrin vastaanotolla.", only_surgeons = "Vain kirurgiaan erikoistuneet lääkärit voivat työskennellä leikkaussalissa.", only_nurses_in_room = "%s sopii ainoastaan sairaanhoitajan hoidettavaksi.", only_doctors_in_room = "%s sopii ainoastaan lääkärin hoidettavaksi.", only_researchers = "Vain tutkimukseen erikoistuneet lääkärit voivat työskennellä tutkimusosastolla.", nurses_cannot_work_in_room = "%s ei sovellu sairaanhoitajan hoidettavaksi.", doctors_cannot_work_in_room = "%s ei sovellu lääkärin hoidettavaksi.", }, -- Research research = { machine_improved = "Kehittyneempi %s on valmistunut tutkimusosastollasi.", autopsy_discovered_rep_loss = "Tieto automaattisesta ruumiinavauskoneestasi on vuotanut julkisuuteen. Ihmisiltä on odotettavissa negatiivinen reaktio.", drug_fully_researched = "Lääkkeen %s kehitystyö on saatu päätökseen.", new_machine_researched = "Uusi %s on saatu kehitettyä.", drug_improved = "Kehittyneempi %s-lääke on valmistunut tutkimusosastollasi.", new_available = "Uusi %s on nyt saatavilla.", new_drug_researched = "Sairauteen %s on kehitetty uusi lääke.", }, -- Boiler issue boiler_issue = { minimum_heat = "Keskuslämmitys on sanonut työsopimuksensa irti. Vaikuttaisi siltä, että sairaalassasi oleville ihmisille tulee pian jäiset oltavat.", maximum_heat = "Kellarissa oleva lämmitysuuni on hajonnut. Uuni on jumiutunut täydelle teholle ja ihmiset sulavat sairaalassasi! Sijoita runsaasti juoma-automaatteja kaikkialle.", resolved = "Hyviä uutisia. Keskuslämmitys toimii taas niin kuin pitääkin. Lämpötilan ei enää pitäisi vaivata potilaita eikä henkilökuntaa.", }, -- Competitors competitors = { staff_poached = "Yksi työntekijöistäsi on palkattu kilpailevaan sairaalaan.", hospital_opened = "Kilpaileva sairaala on avattu lähellä aluetta %s.", land_purchased = "%s on ostanut itselleen tontin.", }, -- Room requirements room_requirements = { research_room_need_researcher = "Sinun täytyy palkata tutkimukseen erikoistunut lääkäri ennen kuin voit ottaa tutkimusosaston käyttöön.", op_need_another_surgeon = "Tarvitset vielä yhden kirurgin lisää ennen kuin voit ottaa leikkaussalin käyttöön.", op_need_ward = "Sinun täytyy rakentaa vuodeosasto, jotta voit valvoa leikkauksessa käyneiden potilaiden paranemista.", reception_need_receptionist = "Sinun täytyy palkata vastaanottoapulainen ottamaan potilaat vastaan sairaalaasi.", psychiatry_need_psychiatrist = "Sinun täytyy palkata psykiatriaan erikoistunut lääkäri nyt, kun olet rakentanut psykiatrin vastaanoton.", pharmacy_need_nurse = "Tarvitset sairaanhoitajan huolehtimaan apteekistasi.", ward_need_nurse = "Sinun täytyy palkata sairaanhoitaja työskentelemään vuodeosastolla.", op_need_two_surgeons = "Sinun täytyy palkata kaksi kirurgia, jotta voit suorittaa kirurgisia toimenpiteitä leikkaussalissasi.", training_room_need_consultant = "Tarvitset konsultti-lääkärin opettamaan nuorempia lääkäreitäsi koulutushuoneessa.", gps_office_need_doctor = "Sinun täytyy palkata lääkäri tekemään alustavia diagnooseja yleislääkärin toimistossa.", }, -- Goals goals = { win = { money = "Sinulta puuttuu %d$ rahaa tämän tason taloudellisten tavoitteiden saavuttamiseksi.", cure = "Sinun pitää parantaa vielä %d potilasta tämän tason vaatimusten täyttämiseksi.", reputation = "Suosiosi pitää olla vähintään %d edetäksesi suraavalle tasolle.", value = "Sairaalasi arvon tulee ylittää %d, jotta saat tämän tason suoritettua onnistuneesti.", }, lose = { kill = "Jos sairaalassasi kuolee vielä %d potilasta, häviät tämän tason!", }, }, -- Warnings warnings = { charges_too_low = "Veloitat palveluistasi liian vähän. Tämä houkuttelee kyllä sairaalaasi runsaasti potilaita, mutta ansaitset vähemmän jokaista potilasta kohden.", charges_too_high = "Hintasi ovat liian korkeat. Se tuottaa sinulle runsaasti rahaa lyhyellä tähtäimellä, mutta pitkällä tähtäimellä korkeat hinnat karkoittavat asiakkaita.", plants_thirsty = "Sinun täytyy huolehtia kasveistasi. Ne ovat janoisia.", staff_overworked = "Työntekijäsi ovat ylityöllistettyjä. Heistä tulee tehottomia ja he tekevät hengenvaarallisia virheitä ollessaan väsyneitä.", queue_too_long_at_reception = "Sinulla on liikaa potilaita odottamassa vastaanotossasi. Rakenna lisää vastaanottoja ja palkkaa niihin vastaanottoapulaiset.", queue_too_long_send_doctor = "Jono huoneeseen %s on liian pitkä. Varmista, että huoneessa on lääkäri.", handymen_tired = "Huoltomiehesi ovat erittäin väsyneitä. Anna heidän levätä riittävästi.", money_low = "Rahasi uhkaavat loppua, jollet puutu asioihin!", money_very_low_take_loan = "Rahasi ovat miltei lopussa. Voit ottaa lainaa pankilta selvitäksesi tästä ainakin hetkeksi.", staff_unhappy = "Henkilökuntasi on tyytymätön. Kokeile antaa heille bonuksia tai rakentaa heille taukohuone. Voit myös muuttaa taukokäytäntöä Sairaalan käytännöt -ikkunasta.", no_patients_last_month = "Sairaalaasi ei tullut ainuttakaan uutta potilasta viime kuussa. Shokki!", queues_too_long = "Jonot ovat liian pitkiä sairaalassasi.", patient_stuck = "Yksi potilaistasi on eksynyt. Sinun pitäisi järjestää sairaalasi paremmin.", patients_too_hot = "Potilailla on liian kuuma. Voit poistaa ylimääräisiä lämpöpattereita, laskea lämmityksen tehoa tai rakentaa lisää juoma-automaatteja.", doctors_tired = "Lääkärisi ovat erittäin väsyneitä. Anna heille lepotaukoja ennen kuin jollekulle käy hassusti.", need_toilets = "Potilaasi tarvitsevat käymälöitä. Rakenna ne helposti saavutettaviin paikkoihin.", machines_falling_apart = "Laitteesi ovat hajoamispisteessä. Käske huoltomiehiäsi huoltamaan niitä välittömästi!", nobody_cured_last_month = "Yhtä ainuttakaan potilasta ei saatu parannettua viime kuussa.", patients_thirsty = "Potilaasi ovat janoisia. Sinun pitäisi antaa heille mahdollisuus ostaa juotavaa.", nurses_tired = "Sairaanhoitajasi ovat erittäin väsyneitä. Anna heidän levätä riittävästi.", machine_severely_damaged = "%s on hyvin lähellä täydellistä tuhoutumista.", reception_bottleneck = "Vastaanotto on sairaalasi pullonkaula. Palkaa toinen vastaanottoapulainen.", bankruptcy_imminent = "Huhuu! Tilanteesi lähestyy uhkaavasti konkurssia. Ole varovainen!", receptionists_tired = "Vastaanottoapulaisesi ovat erittäin väsyneitä. Anna heidän levätä riittävästi.", too_many_plants = "Sinulla on liikaa kasveja. Sairaalasi näyttää jo ihan viidakolta.", many_killed = "Sairaalassasi on kuollut jo %d potilasta. Tiesitkö, että tarkoituksena olisi ollut parantaa heidät.", need_staffroom = "Rakenna henkilökunnan taukohuone viipymättä, jotta he pääsevät välillä lepäämäänkin.", staff_too_hot = "Henkilökuntasi on sulamispisteessä. Laske sairaalasi lämpötilaa tai vähennä lämpöpattereita heidän huoneistaan.", patients_unhappy = "Potilaasi ovat tyytymättömiä sairaalaasi. Sinun pitäisi tehdä jotakin saadaksesi sairaalasi mukavammaksi.", pay_back_loan = "Sinulla on runsaasti rahaa. Voisit harkita lainasi lyhentämistä.", }, -- Placement info placement_info = { door_can_place = "Voit asettaa oven tähän, jos haluat.", window_can_place = "Ikkuna voidaan rakentaa tähän. Se onnistuu hienosti.", door_cannot_place = "Valitettavasti et voi rakentaa ovea tähän.", object_can_place = "Valitsemasi kaluste voidaan sijoittaa tähän.", reception_can_place = "Vastaanotto voidaan asettaa tähän.", staff_cannot_place = "Et voi asettaa työntekijääsi tähän. Pahoittelut.", staff_can_place = "Voit asettaa työntekijän tähän. ", object_cannot_place = "Huhuu, ei tätä kalustetta voi sijoittaa tähän.", room_cannot_place = "Huonetta ei voi sijoittaa tähän.", room_cannot_place_2 = "Huonetta ei voi rakentaa tähän.", window_cannot_place = "Et voi rakentaa ikkunaa tähän.", reception_cannot_place = "Vastaanottoa ei voi sijoittaa tähän.", }, -- Praise praise = { many_benches = "Potilailla on tarpeeksi istumapaikkoja. Hienoa.", many_plants = "Mahtavaa. Sinulla on paljon kasveja. Potilaasi arvostavat sitä varmasti.", patients_cured = "%d potilasta parannettu.", }, -- Information information = { larger_rooms = "Suurempi huone saa työntekijät tuntemaan itsensä tärkeämmiksi, mikä parantaa heidän suoritustasoaan.", extra_items = "Ylimääräiset kalusteet huoneissa parantavat työntekijöiden viihtyvyyttä ja heidän suoritustasonsa paranee.", epidemic = "Sairaalassasi riehuu tarttuva epidemia. Sinun pitää tehdä jotain ja pian!", promotion_to_doctor = "Yhdestä harjoittelijastasi on tullut tohtori.", emergency = "Hätätilanne! Nyt tuli kiire! Vauhtia siellä!", patient_abducted = "Avaruusolennot ovat siepanneet yhden potilaasi.", first_cure = "Hyvää työtä! Olet onnistunut parantamaan ensimmäisen potilaasi.", promotion_to_consultant = "Yhdestä tohtoristasi on tullut konsultti.", handyman_adjust = "Voit parantaa huoltomiestesi tehokkuutta säätämällä heidän prioriteettejaan.", promotion_to_specialist = "Yksi lääkäreistäsi on saanut päätökseen erikoistumisensa %sksi.", patient_leaving_too_expensive = "Eräs potilas lähtee sairaalastasi maksamatta laskuaan hoidosta huoneessa %s. Se oli liian kallista.", vip_arrived = "Huomio! - %s on saapunut sairaalaasi! Tee kaikkesi, jotta hänen jokainen tarpeensa tulee ripeästi täytetyksi.", epidemic_health_inspector = "Terveysministeriö on kuullut sairaalaasi vaivaavasta epidemiasta. Voit valmistautua siihen, että terveystarkastaja saapuu varsin pian.", first_death = "Sairaalassasi on sattunut ensimmäinen kuolemantapaus. Kuinkas tässä nyt näin pääsi käymään?", pay_rise = "Yksi työntekijöistäsi uhkaa irtisanoutua. Valitse haluatko suostua hänen palkkavaatimukseensa vai antaa hänelle potkut. Klikkaa vasemmalla alalaidassa olevaa ikonia nähdäksesi kenestä on kyse.", place_windows = "Ikkunat tekevät huoneista valoisampia ja parantavat työntekijöidesi mielialaa.", fax_received = "Vasempaan alanurkkaan ilmestyvät ikonit ilmoittavat sinulle tärkeistä tiedoista ja päätöksistä, joita voit tehdä.", initial_general_advice = { rats_have_arrived = "Rotat ovat vallanneet sairaalasi. Yritä ampua niitä hiirelläsi.", autopsy_available = "Tutkijasi ovat keksineet ruumiinavauskoneen, jonka avulla voit hankkiutua eroon ei-toivotuista potilaista ja tehdä tutkimusta heidän jäänteillään. Koneen käyttämisen moraalinen hyväksyttävyys on kuitenkin erittäin kiistanalaista.", first_patients_thirsty = "Sairaalassasi on janoisia ihmisiä. Osta lisää juoma-automaatteja heidän käyttöönsä.", research_now_available = "Olet rakentanut ensimmäisen tutkimusosastosi. Nyt pääset käsiksi tutkimus-ikkunaan.", psychiatric_symbol = "Psykiatriaan erikoistuneet lääkärit on merkitty symbolilla: |", decrease_heating = "Ihmisillä on liian kuuma sairaalassasi. Säädä lämmitystäsi pienemälle kartta-ikkunasta.", surgeon_symbol = "Kirurgiaan erikoistuneet lääkärit on merkitty symbolilla: {", first_emergency = "Hätätilannepotilaiden pään päällä on sininen hälytysvalo. Paranna heidät ennen kuin he kuolevat tai aika loppuu kesken.", first_epidemic = "Sairaalassasi on havaittu epidemia! Päätä, haluatko salata sen vai tehdä lain vaatiman ilmoituksen.", taking_your_staff = "Joku yrittää houkutella henkilökuntaasi loikkaamaan palvelukseensa. Sinun täytyy taistella, jos et halua menettää heitä.", place_radiators = "Ihmisillä on liian kylmä sairaalassasi. Voit asentaa lisää lämpöpattereita ostamalla niitä kalusteet-valikosta.", epidemic_spreading = "Sairaalassasi on vakavaan tartuntatautiin sairastuneita. Yritä parantaa sairastuneet ennen kuin he lähtevät kotiin.", research_symbol = "Tutkimukseen erikoistuneet lääkärit on merkitty symbolilla: }", machine_needs_repair = "Sairaalassasi on kone joka täytyy korjata. Etsi rikkoutunut kone, joka epäilemättä jo savuaa, ja klikkaa sitä. Aukeavasta ruudusta saat käskettyä huoltomiehen korjaamaan sen.", increase_heating = "Ihmisillä on liian kylmä sairaalassasi. Säädä lämmitystäsi suuremmalle kartta-ikkunasta.", first_VIP = "Sairaalaasi on saapumassa ensimmäinen VIP-potilas. Yritä varmistaa, ettei hän pääse näkemään mitään epähygienistä tai yhtään tyytymättömiä potilaita.", }, }, -- Build advice build_advice = { placing_object_blocks_door = "Jos sijoitat kalusteita tähän, kukaan ei pääse ovesta sisään eikä ulos.", blueprint_would_block = "Tämä huoneen pohjapiirrustus estäisi pääsyn joihinkin muihin huoneisiin. Kokeile muuttaa huoneen kokoa tai siirrä se toiseen paikkaan!", door_not_reachable = "Ihmiset eivät pääse mitenkään ovelle, jos asetat sen tähän. Mietihän vähän.", blueprint_invalid = "Tämä pohjapiirrustus ei ole kelvollinen.", }, } -- Confirmation confirmation = { quit = "Jos poistut nyt, kaikki tallentamattomat tiedot menetetään. Oletko varma, että haluat lopettaa pelin?", return_to_blueprint = "Oletko varma, että haluat palauttaa tämän huoneen pohjapiirros-tilaan?", replace_machine = "Oletko varma, että haluat korvata koneen %s hintaan %d$?", -- %s (machine name) %d (price) overwrite_save = "Tällä nimellä on jo tallennettu peli. Oletko varma, että haluat tallentaa sen päälle?", delete_room = "Oletko varma, että haluat poistaa tämän huoneen?", sack_staff = "Oletko varma, että haluat irtisanoa tämän työntekijän?", restart_level = "Oletko varma, että haluat aloittaa tason alusta?", needs_restart = "Tämän asetuksen muuttaminen vaatii CorsixTH:n käynnistämisen uudelleen. Kaikki tallentamattomat muutokset menetetään. Oletko varma, että haluat jatkaa?", abort_edit_room = "Huoneen rakentaminen tai muokkaaminen on kesken. Jos kaikki pakolliset kalusteet on asetettu huoneeseen, se valmistuu, mutta muutoin se poistetaan. Oletko varma, että haluat poistua?", } -- Bank manager bank_manager = { hospital_value = "Sairaalan arvo", balance = "Rahaa tilillä", current_loan = "Maksettavaa lainaa", interest_payment = "Vuokrakulut", insurance_owed = "Vakuutusvelka", inflation_rate = "Inflaatio", interest_rate = "Korkotaso", statistics_page = { date = "Päivä", details = "Tiedot", money_out = "Kulut", money_in = "Tulot", balance = "Saldo", current_balance = "Tilillä", }, } -- Newspaper headlines newspaper = { -- Seven categories of funny headlines. I think each category is related -- to one criterion you can lose to. TODO: categorize { "TOHTORI KAUHUN KIROUS", "OUTO LÄÄKÄRI LEIKKII JUMALAA", "TOHTORI EBOLA SHOKEERAA", "KUKA USKOO VIILTÄJÄKIRURGIIN?", "RATSIA PÄÄTTI VAARALLISEN LÄÄKETUTKIMUKSEN" }, { "TOHTORI ANKKURI", "ITKEVÄT PSYKIATRIT", "KONSULTIN PAKOMATKA", "KIRURGINEN LAUKAUS", "KIRURGI JUO LASINSA TYHJÄKSI", "KIRURGIN HENKI" }, { "LEIKKIVÄ PSYKIATRI", "TOHTORI ILMAN-HOUSUJA", "TOHTORI KAUHUISSAAN", "KIRURGIN NÄLKÄ" }, { "LÄÄKÄRI VETÄÄ VÄLISTÄ", "ELINKAUPPA KUKOISTAA", "PANKKIHOLVIN OHITUSLEIKKAUS", "LÄÄKÄRIN PIKKURAHAT" }, { "HOITAJAT PENKOVAT RUUMISARKUN", "LÄÄKÄRI TYHJENSI HAUDAN", "VUOTO VAATEKAAPISSA", "TOHTORI KUOLEMAN HIENO PÄIVÄ", "VIIMEISIN HOITOVIRHE", "KADONNEET LÄÄKÄRIT" }, { "LÄÄKÄRI EROAA!", "LEPSU PUOSKARI", "HENGENVAARALLINEN DIAGNOOSI", "VAROMATON KONSULTTI", }, { "TOHTORI HUOKAA HELPOTUKSESTA", "KIRURGI 'LEIKKAA' ITSENSÄ", "LÄÄKÄRIN PURKAUS", "LÄÄKÄRI LASKEE KAAPELIA", "LÄÄKE OLIKIN KURAA" }, } -- Letters -- TODO letter = { --original line-ends: 5 4 2 3 [1] = { [1] = "Hyvä %s//", [2] = "Mahtavaa! Olet johtanut tätä sairaalaa erinomaisesti. Me täällä hallinnossa haluamme tietää, oletko kiinnostunut lähtemään suuremman projektin johtoon. Meillä on työtarjous, johon uskomme sinun sopivan täydellisesti. Voimme tarjota sinulle palkkaa %d$. Mieti toki kaikessa rauhassa.//", [3] = "Oletko kiinnostunut työskentelemään %sn sairaalassa?", }, [2] = { [1] = "Hyvä %s//", [2] = "Oikein hyvää työtä! Sairaalasi on kehittynyt hienosti. Meillä on toinen instituutio, jonka johtoon haluaisimme sinut sijoittaa, jos olet saatavilla. Voit jättää tarjouksen hyväksymättä, mutta takaamme, että tämä on ainakin harkitsemisen arvoista. Palkka on %d$//", [3] = "Haluatko töihin %sn sairaalaan?", }, [3] = { [1] = "Hyvä %s//", [2] = "Sinun kautesi tässä sairaalassa on ollut todellinen onnistumistarina. Näemme, että sinulla on kirkas tulevaisuus edessäsi ja haluamme tarjota sinulle pestiä toisessa paikassa. Palkka on %d$ ja uskomme sinun ihastuvan sen tarjoamiin uusiin haasteisiin.//", [3] = "Otatko vastaan paikan %sn sairaalassa?", }, [4] = { [1] = "Hyvä %s//", [2] = "Onnittelut! Me täällä hallinnosssa olemme erittäin vaikuttuneita saavutuksistasi sairaalasi johdossa. Olet todellinen terveysministeriön kultapoika. Me uskomme kuitenkin, että kaipaat vähän haastavampaa työtä. Saisit palkkaa %d$, mutta päätös on sinun.//", [3] = "Oletko kiinnostunut ottamaan vastaan työn %sn sairaalassa?", }, [5] = { [1] = "Hyvä %s//", [2] = "Hei taas. Kunnioitamme toiveitasi, jos et halua jättää tätä upeaa sairaalaa taaksesi, mutta pyydämme, että harkitset tarjoustamme vakavasti. Tarjoamme %d$ palkkaa, jos suostut siirtymään toisen sairaalan johtoon ja saat hoidon sujumaan yhtä hyvin kuin tässä sairaalassa.//", [3] = "Haluaisitko siirtyä %sn sairaalaan?", }, [6] = { [1] = "Hyvä %s//", [2] = "Tervehdys. Tiedämme miten onnellinen olet ollut tässä upeassa ja hyvin johdetussa instituutiossa, mutta uskomme, että sinulla olisi nyt oikea hetki edistää uraasi. Saat kunnioitettavan johtajan palkan: %d$, jos päätät suostua. Ainakin sitä kannattaa harkita.//", [3] = "Haluatko ottaa vastaan paikan %sn sairaalassa?", }, [7] = { [1] = "Hyvä %s//", [2] = "Hyvää päivää! Terveysministeriö haluaa tietää suostutko harkitsemaan uudelleen päätöstäsi pysyä tämän sairaalan johdossa. Me arvostamme nykyistä sairaalaasi, mutta uskomme, että haastavampi tehtävä sopisi sinulle paremmin. Palkkatarjouksemme on %d$.//", [3] = "Hyväksytkö työn %sn sairaalassa?", }, [8] = { [1] = "Hyvä %s//", [2] = "Hei taas. Kieltäydyit aiemmasta tarjouksestamme, joka käsitti ensiluokkaisen paikkan upouuden sairaalan johdossa ja korotetun palkan: %d$. Meidän mielestämme sinun kannattaisi harkita päätöstäsi uudelleen. Kyseessä on nimittäin täydellinen työ juuri sinulle.//", [3] = "Otatko paikan vastaan %sn sairaalassa? Ole niin kiltti ja suostu!", }, [9] = { [1] = "Hyvä %s//", [2] = "Olet todistanut olevasi paras sairaalanjohtaja lääketieteen pitkän ja kunniakkaan historian aikana. Tällainen uskomaton saavutus ei voi jäädä palkitsematta, joten tarjoamme sinulle sairaalaosaston pääjohtajan virkaa. Tämä on kunniavirka ja siihen kuuluu %d$ palkkaa. Kunniaksesi järjestetään paraati ja ihmiset osoittavat sinulle kiitollisuuttaan mihin ikinä menetkin.//", [3] = "Kiitokset kaikesta tekemästäsi työstä. Toivotamme sinulle leppoisia puoliaikaisia eläkepäiviä.//", }, [10] = { [1] = "Hyvä %s//", [2] = "Onnittelut! Olet onnistunut menestyksekkäästi johtamaan kaikkia sairaaloita, joiden johtoon olemme sinut asettaneet. Tämän mahtavan saavutuksen johdosta saat vapauden matkustaa ympäri maailmaa, %d$ eläkettä ja limusiinin. Haluaisimme sinun matkoillasi keskustelevan kiitollisten kansalaisten kanssa ja edistävän kaikkien sairaalojen toimintaa kaikkialla.//", [3] = "Olemme kaikki ylpeitä sinusta. Joukossamme ei ole ketään, joka ei olisi kiitollinen ihmishenkien pelastamiseksi tekemästäsi työstä.//", }, [11] = { [1] = "Hyvä %s//", [2] = "Urasi on ollut esimerkillinen ja olet inspiraation lähde meille kaikille. Kiitokset kaikkien näiden sairaaloiden johtamisesta ja hyvästä työstä jokaisessa niistä. Haluamme myöntää sinulle %d$ elinikäistä palkkaa ja pyydämme ainoastaan, että kierrät kaupungista toiseen pitämässä luentoja siitä kuinka sait aikaan niin paljon niin nopeasti.//", [3] = "Olet esimerkki kaikille järkeville ihmisille ja nautit poikkeuksetta kaikkien ihmisten ihailua ympäri maailman.//", }, [12] = { [1] = "Hyvä %s//", [2] = "Voitokas urasi parhaana sairaalanjohtajana sitten Mooseksen aikojen lähestyy loppuaan. Vaikutuksesi lääketieteen ihmeelliseen maailmaan on ollut niin mahtava, että ministeriö haluaa myöntää sinulle %d$ palkkaa, jos suostut silloin tällöin pitämään puheita, osallistumaan laivojen vesillelaskuihin ja esiintymään TV:n chatti-ohjelmissa.//", [3] = "Voit huoletta hyväksyä tämän tarjouksen, sillä työ ei ole rankkaa ja tarjoamme sinulle auton ja poliisisaattueen minne ikinä menetkin.//", }, } -- Humanoid start of names humanoid_name_starts = { [1] = "LEPPÄ", [2] = "VIIMA", [3] = "KUUSI", [4] = "KOIVU", [5] = "MÄNTY", [6] = "PAJU", [7] = "TAMMI", [8] = "PYÖKKI", [9] = "LAUTA", [10] = "NAULA", [11] = "SUUR", [12] = "SUVI", [13] = "VIIMA", [14] = "LOVI", [15] = "HURME", [16] = "KOTO", [17] = "NURMI", [18] = "PALO", [19] = "KULO", [20] = "PAASI", [21] = "KAIVO", [22] = "HAVU", [23] = "KARE", [24] = "HALLA", [25] = "NOKI", [26] = "KYTÖ", [27] = "KIVI", [28] = "KALJU", [29] = "TALAS", [30] = "VESI", [31] = "ILMA", [32] = "KANTO", [33] = "SUMU", } -- Humanoid end of names humanoid_name_ends = { [1] = "KOSKI", [2] = "PELTO", [3] = "JÄRVI", [4] = "MAA", [5] = "LAAKSO", [6] = "MÄKI", [7] = "RINTA", [8] = "RANTA", [9] = "JOKI", [10] = "VAARA", [11] = "PURO", [12] = "VIITA", [13] = "VUORI", [14] = "PIHA", [15] = "VIRTA", [16] = "METSÄ", [17] = "RINNE", [18] = "HARJU", [19] = "LEHTO", [20] = "MALMI", [21] = "KORPI", [22] = "SAARI", [23] = "LAHTI", [24] = "KUNNAS", [25] = "KANGAS", [26] = "PÄÄ", } -- VIP names vip_names = { health_minister = "Terveysministeri", "Namikkalan kunnanjohtaja", -- the rest is better organized in an array. "Walesin Prinssi", "Norjan suurlähettiläs", "Aung Sang Su Kyi", "Kaino Vieno Nuppu Lahdelma", "Sir David", "Dalai Lama", "Nobel-palkittu kirjailija", "Valioliigan jalkapalloilija", "Vuorineuvos Viita", } -- Deseases diseases = { general_practice = { name = "Yleishoito", }, alien_dna = { name = "Alienin DNA", cause = "Aiheuttaja - joutuminen facehugger-alienin uhriksi.", symptoms = "Oireet - vaiheittainen muodonmuutos täysikasvuiseksi alieniksi ja halu tuhota kaikki kaupunkimme.", cure = "Hoito - DNA poistetaan mekaanisesti, puhdistetaan ja siirretään nopeasti takaisin.", }, baldness = { name = "Kaljuus", cause = "Aiheuttaja - valehteleminen ja tarinoiden keksiminen suosion toivossa.", symptoms = "Oireet - kiiltävä kupoli ja nolotus.", cure = "Hoito - Uudet hiukset sulautetaan saumattomasti potilaan päähän käyttäen kivuliasta konetta.", }, bloaty_head = { name = "Pallopäisyys", cause = "Aiheuttaja - juuston haistelu ja puhdistamattoman sadeveden juominen.", symptoms = "Oireet - hyvin epämukavat potilaalle.", cure = "Hoito - Pää puhkaistaan ja pumpataan takaisin oikeaan paineeseen nokkelalla laitteella.", }, broken_heart = { name = "Särkynyt sydän", cause = "Aiheuttaja - joku rikkaampi, nuorempi ja laihempi kuin potilas.", symptoms = "Oireet - hallitsematon itku ja rasitusvamma jatkuvan lomakuvien repimisen johdosta.", cure = "Hoito - Kaksi kirurgia avaa rintakehän ja korjaa sydämen hellästi pidättäen hengitystään.", }, broken_wind = { name = "Kaasujen karkailu", cause = "Aiheuttaja - kuntosalin juoksumaton käyttäminen heti ruoan jälkeen.", symptoms = "Oireet - takana seisovien ihmisten ärsyyntyminen.", cure = "Hoito - Potilas juo nopeasti raskaan sekoituksen erityisiä vetisiä atomeja apteekissa.", }, chronic_nosehair = { name = "Krooniset nenäkarvat", cause = "Aiheuttaja - nenän nyrpistäminen itseään heikompiosaisille ihmisille.", symptoms = "Oireet - nenäparta, johon orava voisi tehdä pesän.", cure = "Hoito - Sairaanhoitaja valmistaa apteekissa ällöttävän rohdon, joka nautitaan suun kautta.", }, corrugated_ankles = { name = "Taipuneet nilkat", cause = "Aiheuttaja - liiallinen hidastetöyssyjen yli ajaminen.", symptoms = "Oireet - kengät eivät sovi hyvin jalkaan.", cure = "Hoito - Lievästi myrkyllinen seos yrttejä ja mausteita juodaan nilkkojen oikaisemiseksi.", }, discrete_itching = { name = "Paikallinen kutina", cause = "Aiheuttaja - pienet hyönteiset, joilla on terävät hampaat.", symptoms = "Oireet - raapiminen, joka johtaa ruumiinosien tulehduksiin.", cure = "Hoito - Potilaalle juotetaan lääkesiirappia kutinan ehkäisemiseksi.", }, fake_blood = { name = "Valeveri", cause = "Aiheuttaja - potilas on yleensä joutunut käytännön pilan uhriksi.", symptoms = "Oireet - suonissa punaista nestettä, joka haihtuu joutuessaan kosketuksiin kankaan kanssa.", cure = "Hoito - Psykiatrinen rauhoittelu on ainoa keino hoitaa ongelmaa.", }, fractured_bones = { name = "Murtuneet luut", cause = "Aiheuttaja - putoaminen korkealta betonille.", symptoms = "Oireet - voimakas napsahdus ja kyvyttömyys käyttää kyseisiä raajoja.", cure = "Hoito - Potilaalle asetetaan kipsi, joka sitten poistetaan laser-toimisella kipsinpoistokoneella.", }, gastric_ejections = { name = "Vääntelehtivä vatsa", cause = "Aiheuttaja - mausteinen meksikolainen tai intialainen ruoka.", symptoms = "Oireet - puolittain sulanutta ruokaa poistuu potilaan elimistöstä satunnaisesti.", cure = "Hoito - Erityisen sitouttamisnesteen juominen estää ruokapäästöjen syntymisen.", }, golf_stones = { name = "Golf-kivet", cause = "Aiheuttaja - altistuminen golfpallojen sisältämälle myrkkykaasulle.", symptoms = "Oireet - sekavuus ja edistynyt häpeä.", cure = "Hoito - Kivet poistetaan leikkauksella, johon tarvitaan kaksi kirurgia.", }, gut_rot = { name = "Mahamätä", cause = "Aiheuttaja - rouva Malisen 'Hauskaa iltaa' -viskiyskänlääke.", symptoms = "Oireet - ei yskää, mutta ei vatsan limakalvojakaan.", cure = "Hoito - Sairaanhoitaja sekoittaa apteekissa lääkeliemen, joka päälystää mahalaukun sisäpinnan.", }, hairyitis = { name = "Turkinkasvu", cause = "Aiheuttaja - pitkittynyt altistuminen kuun valolle.", symptoms = "Oireet - potilaille kehittyy herkistynyt hajuaisti.", cure = "Hoito - Elektrolyysikone poistaa karvat ja sulkee huokoset.", }, heaped_piles = { name = "Kasautuneet pukamat", cause = "Aiheuttaja - vesiautomaatin lähellä seisoskeleminen.", symptoms = "Oireet - potilaasta tuntuu kuin hän istuisi marmorikuulapussin päällä.", cure = "Hoito - Miellyttävä, mutta vahvasti hapokas juoma sulattaa pukamat sisältä.", }, infectious_laughter = { name = "Tarttuva nauru", cause = "Aiheuttaja - klassiset TV:n komediasarjat.", symptoms = "Oireet - avuton hihitys ja kuluneiden fraasien toistelu.", cure = "Hoito - Ammattitaitoisen psykiatrin täytyy muistuttaa potilaalle, kuinka vakava hänen tilansa on.", }, invisibility = { name = "Näkymättömyys", cause = "Aiheuttaja - radioaktiivisen (ja näkymättömän) muurahaisen purema", symptoms = "Oireet - potilaat eivät kärsi lainkaan ja monet heistä hyödyntävät tilaansa tekemällä kepposia perheelleen", cure = "Hoito - Apteekista saatava värikäs juoma palauttaa potilaat pikaisesti näkyviin", }, iron_lungs = { name = "Rautakeuhkot", cause = "Aiheuttaja - kantakaupungin savusumu yhdistettynä kebabin jäänteisiin.", symptoms = "Oireet - kyky syöstä tulta ja huutaa kovaa veden alla.", cure = "Hoito - Kaksi kirurgia poistaa jähmettyneet keuhkot leikkaussalissa.", }, jellyitis = { name = "Hyytelöityminen", cause = "Aiheuttaja - Runsaasti gelatiinia sisältävä ruokavalio ja liiallinen liikunta.", symptoms = "Oireet - liiallinen hytkyminen ja runsas kaatuilu.", cure = "Hoito - Potilas asetetaan vähäksi aikaa hyytelömuovaimeen erityisessä hyytelömuovainhuoneessa.", }, kidney_beans = { name = "Munuaispavut", cause = "Aiheuttaja - jääkuutioiden murskaaminen juomaan.", symptoms = "Oireet - kipuja ja jatkuvaa vessassa käymistä.", cure = "Hoito - Kahden kirurgin täytyy poistaa pavut koskematta munuaisiin.", }, king_complex = { name = "Kuningas-kompleksi", cause = "Aiheuttaja - Kuninkaan henki tunkeutuu potilaan tajuntaan ja ottaa vallan.", symptoms = "Oireet - värikkäisiin samettikenkiin pukeutuminen ja juustohampurilaisten syöminen", cure = "Hoito - Psykiatri kertoo vastaanotollaan potilaalle, kuinka älyttömän typerältä tämä näyttää", }, pregnancy = { name = "Raskaus", cause = "Aiheuttaja - sähkökatkot kaupungistuneilla alueilla.", symptoms = "Oireet - taukoamaton syöminen ja siihen liittyvä kaljamaha.", cure = "Hoito - Lapsi poistetaan keisarinleikkauksella, pestään ja ojennetaan potilaalle.", }, -- unused ruptured_nodules = { name = "Repeytyneet kyhmyt", cause = "Aiheuttaja - benjihyppääminen kylmässä säässä.", symptoms = "Oireet - potilaan on mahdotonta istua mukavasti.", cure = "Hoito - Kaksi kirurgia poistaa kyhmyt vakain käsin.", }, serious_radiation = { name = "Vakava säteily", cause = "Aiheuttaja - erehtyminen plutonium-isotooppien ja purukumin välillä.", symptoms = "Oireet - potilaat tuntevat itsensä hyvin, hyvin huonovointisiksi.", cure = "Hoito - Potilas tulee asettaa puhdistussuihkuun ja pestä huolellisesti.", }, slack_tongue = { name = "Velttokielisyys", cause = "Aiheuttaja - krooninen saippuaoopperoista puhuminen.", symptoms = "Oireet - kieli turpoaa viisi kertaa pidemmäksi kuin normaalisti.", cure = "Hoito - Kieli asetetaan paloittelijaan, joka lyhentää sen nopeasti, tehokkaasti ja kivuliaasti.", }, sleeping_illness = { name = "Unitauti", cause = "Aiheuttaja - yliaktiivinen unirauhanen kitalaessa.", symptoms = "Oireet - ylitsepääsemätön tarve käydä nukkumaan kaikkialla.", cure = "Hoito - Sairaanhoitaja annostelee suuren annoksen voimakasta piristysainetta.", }, spare_ribs = { name = "Liikakyljykset", cause = "Aiheuttaja - kylmillä kivilattioilla istuminen.", symptoms = "Oireet - epämiellyttävä rintavuuden tunne.", cure = "Hoito - Kaksi kirurgia poistaa kyljykset ja antaa ne folioon käärittynä potilaalle kotiin vietäväksi.", }, sweaty_palms = { name = "Hikiset kädet", cause = "Aiheuttaja - työhaastattelujen kammo.", symptoms = "Oireet - kätteleminen potilaan kanssa on kuin pitelisi vastakasteltua pesusientä.", cure = "Hoito - Psykiatrin pitää saada potilas luopumaan päässään luomastaan sairaudesta.", }, the_squits = { name = "Oksennustauti", cause = "Aiheuttaja - lattialta löytyneen pizzan syöminen.", symptoms = "Oireet - yäk, osaat varmaan arvatakin.", cure = "Hoito - Kuitupitoinen sekoitus lankamaisia lääkekemikaaleja kiinteyttää potilaan sisuskalut.", }, third_degree_sideburns = { name = "Kolmannen asteen pulisongit", cause = "Aiheuttaja - kaipuu takaisin 1970-luvulle.", symptoms = "Oireet - iso kampaus, leveälahkeiset housut, korokepohjakengät ja kiillemeikit.", cure = "Hoito - Psykiatrin täytyy vakuuttaa potilas siitä, että hänen karvakehyksensä ovat inhottavat.", }, transparency = { name = "Läpinäkyvyys", cause = "Aiheuttaja - jogurtin nuoleminen purkkien kansista.", symptoms = "Oireet - potilaan liha muuttuu läpinäkyväksi ja kammottavaksi.", cure = "Hoito - Apteekista saatava erityisellä tavalla jäähdytetty ja värjätty vesi parantaa taudin.", }, tv_personalities = { name = "TV-kasvous", cause = "Aiheuttaja - päiväsaikaan lähetettävä ohjelmatarjonta.", symptoms = "Oireet - kuvitelma, että potilas pystyy juontamaan ruoanlaitto-ohjelman.", cure = "Hoito - Psykiatrin tulee suostutella potilas myymään televisionsa ja ostamaan radio sen tilalle.", }, uncommon_cold = { name = "Epätavallinen flunssa", cause = "Aiheuttaja - pienet räkähiukkaset ilmassa.", symptoms = "Oireet - vuotava nenä, aivastelu ja värjäytyneet keuhkot.", cure = "Hoito - Iso kulaus apteekissa valmisteltua epätavallista flunssalääkettä tekee taudista menneen talven lumia.", }, unexpected_swelling = { name = "Odottamaton turvotus", cause = "Aiheuttaja - mikä tahansa odottamaton.", symptoms = "Oireet - turvotus.", cure = "Hoito - Kahden kirurgin suorittama puhkomistoimenpide poistaa turvotuksen.", }, diag_scanner = { name = "Diagn. magn. kuvaus", }, diag_blood_machine = { name = "Diagn. verikone", }, diag_cardiogram = { name = "Diagn. kardiogrammi", }, diag_x_ray = { name = "Diagn. röntgen", }, diag_ultrascan = { name = "Diagn. ultraääni", }, diag_general_diag = { name = "Diagn. yleisdiagn.", }, diag_ward = { name = "Diagn. vuodeosasto.", }, diag_psych = { name = "Diagn. psykiatria", }, autopsy = { name = "Ruumiinavaus", }, } -- Faxes fax = { -- Debug fax debug_fax = { -- never seen this, must be a debug option of original TH -- TODO: make this nicer if we ever want to make use of it close_text = "Kyllä, kyllä, kyllä!", text1 = "PARAS MÄÄRÄ %d", -- %d text2 = "IHMISIÄ YHTEENSÄ SAIRAALASSA %d VERRATTUNA %d:N", -- %d %d text3 = "LUVUT : LÄÄKÄRIT %d HOITAJAT %d ALUE %d HUONEET %d HINTA %d", -- %d %d %d %d %d text4 = "KERTOIMET: LÄÄKÄRIT %d HOITAJAT %d ALUE %d HUONEET %d HINTA %d", -- %d %d %d %d %d text5 = "OSUUS : LÄÄKÄRIT %d HOITAJAT %d ALUE %d HUONEET %d HINTA %d PROSENTTIA", -- %d %d %d %d %d text6 = "SEURAAVAT KERTOIMET OTETAAN MYÖS HUOMIOON", text7 = "MAINE: %d ODOTETTU %d VÄHENNYS %d", -- %d %d %d text8 = "WC-TILAT %d IHMISIÄ PALVELTU %d VÄHENNYS %d", -- %d %d %d text9 = "ONNETTOMUUDET %d SALLITTU (KK) %d (%d)VÄHENNYS %d", -- %d %d %d %d text10 = "KUOLEMAT %d SALLITTU (KK) %d (%d) VÄHENNYS %d", -- %d %d %d %d text11 = "IHMISIÄ TÄSSÄ KUUSSA %d", -- %d }, -- Emergency emergency = { choices = { accept = "Kyllä, minä pystyn hoitamaan sen", refuse = "Ei, en voi ottaa potilaita vastaan", }, location = "%s on sattunut onnettomuus.", num_disease = "%d ihmisellä on diagnosoitu %s, joka vaatii välitöntä hoitoa.", num_disease_singular = "Yhdellä henkilöllä on havaittu %s, joka vaatii välitöntä hoitoa.", cure_possible_drug_name_efficiency = "Sinulla on jo tarvittavat laitteet ja taidot. Tarvittava lääke on %s ja sen teho on %d%%.", cure_possible = "Sinulla on jo tarvittavat laitteet ja taidot, joten sinun pitäisi selviytyä tilanteesta ongelmitta.", cure_not_possible_build_and_employ = "Sinun täytyy rakentaa %s ja palkata %s.", cure_not_possible_build = "Sinun täytyy rakentaa %s.", cure_not_possible_employ = "Sinun täytyy palkata %s.", cure_not_possible = "Et pysty hoitamaan tätä sairautta tällä hetkellä.", bonus = "Jos pystyt hoitamaan tämän hätätapauksen täydellisesti, saat bonuksena %d$. Jos kuitenkin epäonnistut, sairaalasi maine saa aimo kolauksen.", locations = { "Tomin asekellarissa", "Innovaatioyliopistossa", "Puskalan puutarhakeskuksessa", "Vaarallisten aineiden tutkimuskesuksessa", "Tanssimessuilla", "Mykkä Papukaija -baarissa", "Ison Taunon hautajaispaviljongissa", "Taj-curryravintolassa", "Pekan petrokemikaalikirpputorilla", }, }, emergency_result = { close_text = "Sulje ikkuna", earned_money = "Enimmäisbonus oli %d$ ja ansaitsit %d$.", saved_people = "Pelastit %d ihmistä, kun potilaita oli %d.", }, -- Deseace discovered disease_discovered_patient_choice = { choices = { send_home = "Lähetä potilas kotiin.", wait = "Pyydä potilasta odottamaan sairaalassa vähän aikaa.", research = "Lähetä potilas tutkimusosastolle.", }, need_to_build_and_employ = "Sinun täytyy rakentaa %s ja palkkata %s, jotta voit hoitaa sairautta.", need_to_build = "Sinun täytyy rakentaa %s, jotta voit hoitaa sairautta.", need_to_employ = "Palkkaa %s auttamaan potilasta.", can_not_cure = "Et voi hoitaa tätä sairautta.", disease_name = "Työntekijäsi ovat havainneet uuden sairauden, jonka nimi on %s.", what_to_do_question = "Miten haluat meidän toimivan potilaan kanssa?", guessed_percentage_name = "Työntekijäsi ovat joutuneet arvaamaan, mikä potilasta vaivaa. %d%%:n todennäköisyydellä sairaus on %s.", }, disease_discovered = { close_text = "Uusi sairaus on löydetty.", can_cure = "Pystyt parantamaan sairauden.", need_to_build_and_employ = "Sinun täytyy rakentaa %s ja palkata %s, jotta voit hoitaa sairautta.", need_to_build = "Sinun täytyy rakentaa %s, jotta voit hoitaa sairautta.", need_to_employ = "Palkkaa %s hoitamaan potilaita, joilla on tämä sairaus.", discovered_name = "Työntekijäsi ovat havainneet uuden sairauden, jonka nimi on %s.", }, -- Epidemic epidemic = { choices = { declare = "Julkista epidemia, maksa sakko ja hyväksy vahinko sairaalasi maineelle.", cover_up = "Yritä hoitaa kaikki tartunnan saaneet potilaat ennen kuin annettu aika loppuu tai kukaan lähtee sairaalastasi.", }, disease_name = "Lääkärisi ovat löytäneet helposti tarttuvan %s-kannan.", declare_explanation_fine = "Jos julkistat epidemian, sinun täytyy maksaa sakkoja %d$, sairaalasi maine kokee kolauksen ja kaikki potilaasi rokotetaan automaattisesti.", cover_up_explanation_1 = "Toisaalta, jos yrität salata epidemian, sinulla on rajoitetusti aikaa parantaa kaikki tartunnan saaneet potilaat.", cover_up_explanation_2 = "Jos vierailulle saapuva terveystarkastaja saa selville, että olet salaillut epidemiaa, seuraukset voivat olla hyvin vakavat.", }, -- Epidemic result epidemic_result = { close_text = "Hurraa!", failed = { part_1_name = "Yrittäessään salata sairaalassasi riehuneen helposti tarttuvan %s-epidemian", part_2 = "henkilökuntasi on päästänyt sairauden leviämään sairaalan ympärillä asuvaan väestöön.", }, succeeded = { part_1_name = "Terveystarkastaja on kuullut huhuja, että sairaalassasi on riehunut %s-epidemia", part_2 = "Hän ei ole kuitenkaan pystynyt näyttämään näitä huhuja todeksi.", }, compensation_amount = "Hallitus on myöntänyt sinulle %d$ korvauksena vahingoista, joita nämä valheet ovat sairaalasi maineelle aiheuttaneet.", fine_amount = "Hallitus on julistanut kansallisen hätätilan ja määrännyt sinulle %d$ sakkoja.", rep_loss_fine_amount = "Sanomalehdet pääsevät huomenna kirjoittamaan tästä etusivullaan. Maineesi tahrautuu pahasti ja joudut maksamaan %d$ sakkoja.", hospital_evacuated = "Terveyslautakunnalla ei ole muuta vaihtoehtoa kuin evakuoida sairaalasi.", }, -- VIP visit query vip_visit_query = { choices = { invite = "Lähetä virallinen kutsu VIP-potilaalle.", refuse = "Kieltäydy ottamasta VIP-vierasta vastaan jollakin tekosyyllä.", }, vip_name = "%s on esittänyt toiveen päästä käymään sairaalassasi.", }, -- VIP visit result vip_visit_result = { close_text = "Kiitos käynnistä ja tervetuloa uudestaan.", telegram = "Sähke!", vip_remarked_name = "%s kommentoi vierailuaan sairaalassasi seuraavasti:", cash_grant = "Sairaalallesi on tehty käteislahjoitus, jonka arvo on %d$.", rep_boost = "Sairaalasi maine on parantunut.", rep_loss = "Sairaalasi maine on huonontunut.", remarks = { [1] = "Mikä mahtava sairaala. Seuraavan kerran, kun olen sairas, haluan sinne hoitoon.", [2] = "No tuota voi jo kutsua sairaalaksi.", [3] = "Uskomaton sairaala. Ja minun pitäisi tietää; olen käynyt aika monessa.", [4] = "Hyvin johdettu laitos. Kiitos, että kutsuit minut sinne.", [5] = "Hmm. Ei totisesti yhtään hullumpi sairaala.", [6] = "Nautin käynnistä mukavassa sairaalassasi. Tekeekö kenenkään mieli intialaista?", [7] = "No, olen nähnyt huonompiakin, mutta voisit kyllä tehdä hieman parannuksia.", [8] = "Voi että. Ei mikään mukava paikka, jos tuntee olonsa kurjaksi.", [9] = "Rehellisesti sanoen se oli ihan perussairaala. Odotin vähän enemmän.", [10] = "Miksi vaivauduin? Se oli kauheampaa kuin nelituntinen ooppera!", [11] = "Inhottava paikka. Kutsutaanko tuota sairaalaksi? Sikolättihän tuo oli!", [12] = "Olen kyllästynyt käymään tuollaisissa haisevissa koloissa julkisuuden henkilönä. Minä eroan!", [13] = "Mikä läävä! Yritän saada sen lakkautettua.", [14] = "En ole koskaan nähnyt noin kamalaa sairaalaa. Mikä häpeätahra!", [15] = "Olen järkyttynyt. Ei tuota voi kutsua sairaalaksi! Minä tarvitsen juotavaa.", }, }, -- Diagnosis failed diagnosis_failed = { choices = { send_home = "Lähetä potilas kotiin", take_chance = "Ota riski ja kokeile luultavinta hoitoa.", wait = "Pyydä potilasta odottamaan, että saat rakennettua lisää diagnoosihuoneita.", }, situation = "Olemme käyttäneet kaikkia diagnoosimenetelmiämme potilaan tutkimiseen, mutta emme tiedä vieläkään varmasti, mikä on vialla.", what_to_do_question = "Miten toimimme potilaan kanssa?", partial_diagnosis_percentage_name = "Tiedämme %d%%:n todennäköisyydellä, että potilaan sairaus on %s.", }, } -- Queue window queue_window = { num_in_queue = "Jono", num_expected = "Odotettu", num_entered = "Käyntejä", max_queue_size = "Jono enint.", } -- Dynamic info dynamic_info = { patient = { actions = { dying = "Tekee kuolemaa!", awaiting_decision = "Odottaa päätöstäsi", queueing_for = "Jonossa: %s", -- %s on_my_way_to = "Matkalla: %s", -- %s cured = "Parantunut!", fed_up = "Saanut tarpeekseen ja lähtee sairaalasta", sent_home = "Lähetetty kotiin", sent_to_other_hospital = "Lähetetty toiseen sairaalaan", no_diagnoses_available = "Ei diagnosointivaihtoehtoja jäljellä", no_treatment_available = "Hoitoa ei ole tarjolla - Menen kotiin", waiting_for_diagnosis_rooms = "Odottaa, että rakennat lisää diagnoosihuoneita", waiting_for_treatment_rooms = "Odottaa, että rakennat lisää hoitohuoneita", prices_too_high = "Hinnat ovat liian korkeat - Menen kotiin", epidemic_sent_home = "Terveystarkastaja lähettänyt kotiin", epidemic_contagious = "Tautini on tarttuva", no_gp_available = "Odottaa, että rakennat yleislääkärin toimiston", }, diagnosed = "Diagnoosi: %s", -- %s guessed_diagnosis = "Arvattu diagnoosi: %s", -- %s diagnosis_progress = "Diagnosointiprosessi", emergency = "Hätätilanne: %s", -- %s (disease name) }, vip = "Vieraileva VIP", health_inspector = "Terveystarkastaja", staff = { psychiatrist_abbrev = "Psyk.", tiredness = "Väsymys", ability = "Kyvyt", -- unused? actions = { waiting_for_patient = "Odottaa potilasta", wandering = "Vaeltaa ympäriinsä", going_to_repair = "Korjattava: %s", -- %s (name of machine) heading_for = "Matkalla kohteeseen: %s", fired = "Erotettu", }, }, object = { strength = "Kestävyys: %d", -- %d (max. uses) times_used = "Käyttökertoja: %d", -- %d (times used) queue_size = "Jonon pituus: %d", -- %d (num of patients) queue_expected = "Odotettu jonon pituus: %d", -- %d (num of patients) }, } -- Miscellangelous -- Category of strings that fit nowhere else or we are not sure where they belong. -- If you think a string of these fits somewhere else, please move it there. -- Don't forget to change all references in the code and other language files. misc = { grade_adverb = { mildly = "lievästi", moderately = "keskimääräisesti", extremely = "vakavasti", }, done = "Valmis", pause = "Keskeytä", send_message = "Lähetä viesti pelaajalle %d", -- %d (player number) send_message_all = "Lähetä viesti kaikille pelaajille", save_success = "Peli tallennettu", save_failed = "VIRHE: Pelin tallentaminen ei onnistunut", hospital_open = "Sairaala avattu", out_of_sync = "Peli ei ole synkronisoitu", load_failed = "VIRHE: Pelin lataaminen ei onnistunut", low_res = "Matala resol.", balance = "Tasapainotiedosto:", mouse = "Hiiri", force = "Voima", } original_credits = { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", ":Suunnittelu ja toteutus", ":Bullfrog Productions", " ", ":Pluto Development Team", ",", "Mark Webley", "Gary Carr", "Matt Chilton", "Matt Sullivan", "Jo Rider", "Rajan Tande", "Wayne Imlach", "Andy Bass", "Jon Rennie", "Adam Coglan", "Natalie White", " ", " ", " ", ":Ohjelmointi", ",", "Mark Webley", "Matt Chilton", "Matt Sullivan", "Rajan Tande", " ", " ", " ", ":Ulkoasu", ",", "Gary Carr", "Jo Rider", "Andy Bass", "Adam Coglan", " ", " ", " ", ":Oheisohjelmointi", ",", "Ben Deane", "Gary Morgan", "Jonty Barnes", " ", " ", " ", ":Oheisulkoasu", ",", "Eoin Rogan", "George Svarovsky", "Saurev Sarkar", "Jason Brown", "John Kershaw", "Dee Lee", " ", " ", " ", ":Alkuanimaatio", ",", "Stuart Black", " ", " ", " ", ":Musiikki ja äänet", ",", "Russell Shaw", "Adrian Moore", " ", " ", " ", ":Oheismusiikki", ",", "Jeremy Longley", "Andy Wood", " ", " ", " ", ":Kuuluttajan ääni", ",", "Rebecca Green", " ", " ", " ", ":Tasojen suunnittelu", ",", "Wayne Imlach", "Natalie White", "Steven Jarrett", "Shin Kanaoya", " ", " ", " ", ":Skriptaus", ",", "James Leach", "Sean Masterson", "Neil Cook", " ", " ", " ", ":Tuotekehitys", " ", ":Grafiikkamoottori", ",", "Andy Cakebread", "Richard Reed", " ", " ", " ", ":Tuotekehitystuki", ",", "Glenn Corpes", "Martin Bell", "Ian Shaw", "Jan Svarovsky", " ", " ", " ", ":Kirjastot ja työkalut", " ", ":Dos ja Win 95 kirjasto", ",", "Mark Huntley", "Alex Peters", "Rik Heywood", " ", " ", " ", ":Verkkokirjasto", ",", "Ian Shippen", "Mark Lamport", " ", " ", " ", ":Äänikirjasto", ",", "Russell Shaw", "Tony Cox", " ", " ", " ", ":Asennusohjelma", ",", "Andy Nuttall", "Tony Cox", "Andy Cakebread", " ", " ", " ", ":Moraalinen tuki", ",", "Peter Molyneux", " ", " ", " ", ":Testausmanageri", ",", "Andy Robson", " ", " ", " ", ":Päätestaajat", ",", "Wayne Imlach", "Jon Rennie", " ", " ", " ", ":Pelitestaajat", ",", "Jeff Brutus", "Wayne Frost", "Steven Lawrie", "Tristan Paramor", "Nathan Smethurst", " ", "Ryan Corkery", "Simon Doherty", "James Dormer", "Martin Gregory", "Ben Lawley", "Joel Lewis", "David Lowe", "Robert Monczak", "Dominic Mortoza", "Karl O'Keeffe", "Michael Singletary", "Andrew Skipper", "Stuart Stephen", "David Wallington", " ", "Ja kaikki pelitestaajina toimineet harjoittelijat", " ", " ", " ", ":Tekninen tuki", ",", "Kevin Donkin", "Mike Burnham", "Simon Handby", " ", " ", " ", ":Markkinointi", ",", "Pete Murphy", "Sean Ratcliffe", " ", " ", " ", ":Kiittäen:", ",", "Tamara Burke", "Annabel Roose", "Chris Morgan", "Pete Larsen", " ", " ", " ", ":PR", ",", "Cathy Campos", " ", " ", " ", ":Dokumentaatio", ",", "Mark Casey", "Richard Johnston", "James Lenoel", "Jon Rennie", " ", " ", " ", ":Dokumentaatio & pakkaussuunnittelu", ",", "Caroline Arthur", "James Nolan", " ", " ", " ", ":Lokalisaation projektimanageri", ",", "Carol Aggett", " ", " ", " ", ":Lokalisaatio", ",", "Sandra Picaper", "Sonia 'Sam' Yazmadjian", " ", "Bettina Klos", "Alexa Kortsch", "Bianca Normann", " ", "C.T.O. S.p.A. Zola Predosa (BO)", "Gian Maria Battistini", "Maria Ziino", "Gabriele Vegetti", " ", "Elena Ruiz de Velasco", "Julio Valladares", "Ricardo Martínez", " ", "Kia Collin", "CBG Consult", "Ulf Thor", " ", " ", " ", ":Tuotanto", ",", "Rachel Holman", " ", " ", " ", ":Tuottaja", ",", "Mark Webley", " ", " ", " ", ":Apulaistuottaja", ",", "Andy Nuttall", " ", " ", " ", ":Toiminnot", ",", "Steve Fitton", " ", " ", " ", ":Yrityshallinto", ",", "Audrey Adams", "Annette Dabb", "Emma Gibbs", "Lucia Gobbo", "Jo Goodwin", "Sian Jones", "Kathy McEntee", "Louise Ratcliffe", " ", " ", " ", ":Yritysjohto", ",", "Les Edgar", "Peter Molyneux", "David Byrne", " ", " ", ":Kaikki Bullfrog Productions -työntekijät", " ", " ", " ", ":Erityiskiitokset", ",", "Kaikille Frimley Park Hospital -sairaalassa", " ", ":Erityisesti", ",", "Beverley Cannell", "Doug Carlisle", " ", " ", " ", ":Pitäkää ajatukset liikkeessä", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", ".", } CorsixTH-0.70.0/CorsixTH/Lua/languages/french.lua000066400000000000000000002557341522247547500215000ustar00rootroot00000000000000--[[ Copyright (c) 2010-2015 Nicolas "MeV" Elie, 2013-2025 Antoine Lemaire, 2024 Sanndow Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("cp437") Language(utf8 "Français", "French", "fr", "fre", "fra") Inherit("english") Inherit("original_strings", 1) IsArabicNumerals(true) --[[ Notice: Theme Hospital's font lacks support for certain character types used in French, including '«' and '»'. See the "Localisation" page on the Wiki for more information. --]] ----------------------------------------------------------- Override ----------------------------------------------------------- rooms_short.ward = "Salle des malades" rooms_long.ward = "Salle des malades" confirmation.replace_machine = "Voulez-vous vraiment remplacer cette machine %s pour $%d ?" -- French originally did not show machine name or cost misc.save_failed = "ERREUR : partie non sauvegardée." -- Much more french misc.cant_treat_emergency = "Votre hôpital ne peut pas traiter cette urgence car la maladie n'a pas été découverte. N'hésitez pas à réessayer." tooltip.policy.diag_termination = "L'auscultation d'un patient continuera jusqu'à ce que les médecins soient sûrs à hauteur du pourcentage FIN PROCEDURE ou jusqu'à ce que toutes les machines de diagnostic aient été essayées. " -- Remove a superfluous word adviser.goals = { win = { -- Why are these strings uppercase? reputation = "Portez votre réputation à %d pour pouvoir gagner.", value = "Portez la valeur de votre hôpital à %d." } } adviser.goals.lose.kill = "Tuez encore %d patients pour perdre !" -- tooltip.staff_list.next_person, prev_person is rather next/prev page (also in german, maybe more languages?) tooltip.staff_list.next_person = "Voir la page suivante" tooltip.staff_list.prev_person = "Voir la page précédente" -- Improve tooltips in staff window to mention hidden features tooltip.staff_window.face = "Visage - cliquez pour ouvrir la fenêtre de gestion" tooltip.staff_window.center_view = "clic gauche pour focaliser sur la personne, pour faire défiler les membres du personnel" -- Fix Winning texts letter = { [1] = { -- Level one: Fix issue 329 [1] = "Estimable %s", [2] = "Splendide ! Vous avez admirablement géré cet hôpital. Nous, pontes du Ministère de la Santé, souhaitons savoir si vous aimeriez prendre en charge un plus grand projet. Nous comptons sur vous. Le salaire serait de %d$ et ça vaut la peine d'y réfléchir.", [3] = "Que diriez-vous de travailler à l'hôpital de %s ?" }, [2] = { -- Level two: Add missing spaces before punctuation marks [1] = "Estimable %s", [2] = "Formidable ! Vous avez fait de grands progrès dans votre hôpital. Nous vous avons trouvé un autre établissement pour exercer vos talents et relever des défis. Vous pouvez refuser mais ce serait dommage. Le salaire est de %d$.", [3] = "Acceptez-vous le poste à l'hôpital de %s ?" }, [3] = { -- Level three: Add missing spaces before punctuation marks [1] = "Estimable %s", [2] = "Vous avez parfaitement réussi dans cet hôpital. C'est la raison pour laquelle nous vous proposons une nouvelle situation. Le salaire serait de %d$ et nous pensons que vous adorerez relever ce nouveau défi.", [3] = "Acceptez-vous de gérer l'hôpital de %s ?" }, [4] = { -- Level four: Add missing spaces before punctuation marks [1] = "Estimable %s", [2] = "Félicitations ! Le Ministère de la Santé est très impressionné par vos capacités à gérer cet hôpital. Vous êtes un exemple de réussite dans ce domaine. Vous voudrez peut-être une situation plus élevée, toutefois. Vous seriez payé %d$, et la décision vous revient.", [3] = "Êtes-vous prêt à accepter un poste à l'hôpital de %s ?" }, [5] = { -- Level five: Add missing spaces before punctuation marks and between words [1] = "Estimable %s", [2] = "Nouvelles salutations. Nous respectons votre souhait de ne pas quitter ce charmant hôpital, mais nous vous supplions d'y réfléchir. Nous vous proposons la coquette somme de %d$ pour accepter de diriger un autre hôpital avec autant de succès.", [3] = "Aimeriez-vous prendre la tête de l'hôpital de %s ?" }, [6] = { -- Level six: Add missing spaces before punctuation marks, fix last string which contained an anglicism [1] = "Estimable %s", [2] = "Nous savons que vous êtes heureux de vous occuper de cette délicieuse institution mais nous pensons que vous devez penser à l'avenir. Vous pourriez prétendre au salaire de %d$ si vous acceptez de changer de situation. Pensez-y.", [3] = "Voulez-vous un poste à l'hôpital de %s ?" }, [7] = { -- Level seven: Add missing spaces before punctuation marks [1] = "Estimable %s", [2] = "Le Ministère de la Santé souhaite que vous reconsidériez votre décision de rester dans cet hôpital. Nous savons que vous avez un charmant établissement mais il est temps de relever un nouveau défi, avec un salaire attrayant de %d$.", [3] = "Êtes-vous prêt à travailler à l'hôpital de %s ?" }, [8] = { -- Level height: Add missing spaces before punctuation marks [1] = "Estimable %s", [2] = "Vous aviez donné une réponse négative à notre dernière lettre vous proposant un grand poste dans un nouvel hôpital, avec un coquet salaire de %d$. Nous pensons que vous devez revoir votre décision car nous avons pour vous un poste idéal.", [3] = "Voulez-vous bien accepter un poste à l'hôpital de %s ? S'il vous plaît !" }, [9] = { -- Level nine: Add missing spaces before punctuation marks, fix some sentences, add missing diacritics [1] = "Estimable %s", [2] = "Vous vous êtes montré le meilleur directeur d'hôpital jamais connu dans la longue et mouvementée histoire de la médecine. Nous sommes fiers de vous offrir le poste de Chef Suprême des Hôpitaux. Ce titre honorifique vous garantit un salaire de %d$. On fera pour vous une parade pleine de serpentins et les gens vous baiseront les pieds.", [3] = "Merci pour tout ce que vous avez fait. Vous avez mérité cette semi-retraite." }, [10] = { -- Level ten: Fix some sentences [1] = "Estimable %s", [2] = "Félicitations pour avoir réussi dans tous les hôpitaux que vous avez dirigés. Une telle performance fait de vous un héros. Vous recevrez une pension de %d$ plus une limousine. Tout ce que nous vous demandons, c'est d'aller de ville en ville rencontrer votre public en adoration et défendre le renom des hôpitaux.", [3] = "Nous sommes tous fiers de vous et notre coeur déborde de gratitude pour votre dévouement à sauver des vies." }, [11] = { -- Level eleven: No change [1] = "Estimable %s", [2] = "Votre carrière est exemplaire et vous êtes une inspiration pour nous tous. Merci d'avoir géré tous ces hôpitaux avec autant de talent. Nous souhaitons vous offrir une rente à vie de %d$ pour simplement aller de ville en ville à bord d'une voiture de prestige pour saluer la foule et donner des conférences sur votre incroyable réussite.", [3] = "Vous êtes un exemple pour toute personne sensée et tout le monde, sans exception, vous considère comme un modèle absolu." }, [12] = { -- Level twelve: Add missing spaces before punctuation marks [1] = "Estimable %s", [2] = "Votre carrière réussie en tant que meilleur directeur d'hôpital depuis la nuit des temps arrive à sa fin. Toutefois, vous avez eu sur le monde tranquille de la médecine une telle influence que le Ministre vous offre un salaire de %d$ uniquement pour paraître en public, faire des inaugurations, baptiser des navires et participer à des débats. Le monde entier vous acclame et c'est la meilleure des publicités pour le Ministère de la Santé !", [3] = "Veuillez accepter cette situation : ce n'est pas trop difficile et vous aurez, en plus, une escorte de police partout où vous irez." } } -- The originals of some of these string lack a space before punctuation marks and or between words misc.balance = "Ajustage :" tooltip.pay_rise_window.decline = "Ne payez pas, licenciez !" tooltip.watch = { emergency = "Urgence : temps qui reste pour soigner les patients entrés en urgence.", hospital_opening = "Délai : ceci est le temps qui reste avant que votre hôpital soit ouvert. Cliquez sur GO pour l'ouvrir tout de suite.", epidemic = "Épidémie : temps qui reste pour arrêter l'épidémie. Si ce délai expire OU si un malade contagieux quitte l'hôpital, un inspecteur sanitaire viendra... Le bouton active ou désactive la vaccination. Cliquez sur un patient pour lancer la vaccination par une infirmière." } tooltip.objects = { chair = "Chaise : le patient s'y assied pour parler de ses symptômes.", sofa = "Sofa : c'est ce qui permet aux employés de se relaxer... sauf s'ils trouvent mieux...", bench = "Banc : pour que les patients puissent attendre confortablement.", video_game = "Jeu vidéo : l'équipe se relaxe en jouant à Hi-Octane.", lamp = "Lampe : vous avez déjà essayé de travailler dans le noir ?", door = "Porte : les gens aiment les ouvrir et les fermer.", auto_autopsy = "Autopsie : très utile pour la recherche.", tv = "TV : votre équipe ne doit pas manquer ses programmes favoris.", litter_bomb = "Bombe à détritus : pour saboter les hôpitaux concurrents.", inflator = "Gonfleur : pour soigner l'encéphalantiasis.", desk = "Bureau : essentiel pour poser un ordinateur.", pool_table = "Billard : pour la relaxation du personnel.", bed = "Lit : les cas graves ont besoin de rester couchés.", bookcase = "Étagère : pour les ouvrages de référence.", drinks_machine = "Distributeurs : contre la soif et pour ramasser des gros sous.", skeleton = "Squelette : utile pour l'enseignement et pour Halloween.", computer = "Ordinateur : une composante essentielle de la recherche.", bin = "Poubelle : les patients y jettent leurs détritus.", pharmacy_cabinet = "Pharmacie : c'est là qu'on dispense les médicaments.", radiator = "Radiateur : permet de garder l'hôpital au chaud.", atom_analyser = "Mélangeur : installé au Département Recherche, cette machine accélère tout le processus d'étude.", plant = "Plante : plaît aux patients et purifie l'air.", toilet = "Toilettes : les patients en ont, euh, besoin.", fire_extinguisher = "Extincteur : pour minimiser les dangers causés par des machines défectueuses.", lecture_chair = "Chaise : les médecins en formation s'asseyent là pour prendre des notes et s'ennuyer. Plus vous mettrez des chaises, plus vous pourrez former de médecins.", toilet_sink = "Lavabo : s'il n'y en a pas assez, les patients qui apprécient l'hygiène seront mécontents.", cabinet = "Placard : dossiers des patients, notes de recherche.", rathole = "Domicile d'une famille de rats qui a trouvé votre hôpital suffisamment sale pour y vivre." } room_descriptions = { gp = { [2] = "C'est une salle de diagnostic fondamentale pour votre hôpital. Elle accueille les nouveaux patients pour les ausculter. Ils sont ensuite orientés vers une autre salle, soit pour un autre diagnostic soit pour être soignés. Vous devriez construire un autre cabinet de médecine générale au cas où celui-ci serait débordé. Plus l'endroit est grand et plus vous pouvez y placer des équipements, sans compter que c'est bon pour le prestige du médecin. C'est valable pour toutes les salles, en fait." }, pharmacy = { [2] = "Les patients dont le mal a été diagnostiqué et dont le traitement est un médicament peuvent se rendre à la pharmacie. Comme la recherche découvre toujours de nouveaux traitements, l'activité de cette salle est en constante évolution. Vous aurez à construire une autre pharmacie plus tard." }, general_diag = { [3] = "La salle de diagnostic nécessite un médecin. Il faut également un agent de maintenance pour un entretien périodique. " }, fracture_clinic = { [2] = "Les patients dont les os étaient en morceaux se rendront dans cette salle. Le déplâtreur dégagera les membres en ne causant qu'une faible douleur." }, inflation = { [2] = "Les patients souffrant de l'affreuse-mais-si-drôle encéphalantiasis sont soignés à la salle de gonflage, où leur tête démesurée sera dégonflée puis regonflée à la bonne taille." }, hair_restoration = { [2] = "Les patients souffrant de sévère calvitie se rendront dans cette salle équipée d'un moumouteur. Un médecin utilisera la machine pour donner aux patients une nouvelle chevelure." }, electrolysis = { [2] = "Les patients souffrant de pilose viennent dans cette salle où une machine arrache les poils et scelle les pores selon un procédé qui n'est pas sans rappeler la cimentation." }, staff_room = { [2] = "Votre équipe finit par se fatiguer et a besoin de cette salle pour se remettre. Une équipe fatiguée est lente, revendicatrice et peut même envisager de démissionner. De plus, elle risque de commettre des erreurs. Il est avisé de construire une salle de repos bien aménagée et de prévoir assez de place pour plusieurs membres à la fois." } } progress_report.too_hot = "Réglez le chauffage : on étouffe." adviser.tutorial.build_pharmacy = "Félicitations ! Construisez maintenant une pharmacie et embauchez une infirmière." adviser.epidemic.serious_warning = "Cette maladie contagieuse est dangereuse. Vous devez prendre des mesures d'urgence !" adviser.staff_advice.too_many_doctors = "Il y a trop de médecins. Certains n'ont rien à faire !" adviser.earthquake.ended = "Ouh là ! J'ai cru que c'était la fin ! C'était du %d sur l'échelle de Richter." adviser.multiplayer.poaching = { not_interested = "Ha ! Ils ne veulent pas travailler pour vous, ils sont satisfaits comme ça.", already_poached_by_someone = "Eh non ! Quelqu'un s'intéresse déjà à cette personne." } adviser.vomit_wave.ended = "Ouf ! On dirait que le virus qui provoquait des nausées est enfin enrayé. Gardez l'hôpital propre, à l'avenir." adviser.research.new_available = "Nouveau : un(e) %s est disponible." adviser.research.drug_improved_1 = "Le traitement contre la %s a été amélioré par votre département de recherche." adviser.placement_info.object_cannot_place = "Hé ! Vous ne pouvez pas placer cet objet ici." adviser.information = { epidemic = "Une maladie contagieuse sévit dans votre hôpital. Vous devez l'enrayer immédiatement !", emergency = "C'est une urgence ! Vite ! Vite ! VITE !", initial_general_advice = { first_epidemic = "Il y a une épidémie dans votre hôpital ! A vous de voir si vous étouffez l'affaire ou si vous en parlez." }, patient_leaving_too_expensive = "Un patient part sans payer la facture pour %s. Sacrée perte !", vip_arrived = "Attention ! %s arrive pour visiter votre hôpital ! Faites en sorte de lui faire bonne impression.", first_death = "Vous venez de tuer votre premier patient. Alors, heureux ?", promotion_to_doctor = "L'un de vos INTERNES est devenu MÉDECIN.", -- Fix the famous "Level 5 bug" promotion_to_specialist = "L'un de vos MÉDECINS est devenu SPÉCIALISTE." } buy_objects_window = { price = "Prix : ", total = "Total : " } fax = { epidemic_result = { close_text = "Hourra !", rep_loss_fine_amount = "Les journaux vont s'en donner à cœur joie avec cette affaire. Votre réputation va en prendre un coup ! Sans oublier l'amende de %d." }, disease_discovered_patient_choice = { what_to_do_question = "Que voulez-vous faire du patient ?" }, debug_fax = { close_text = "Ouais, ouais, ouais !" }, diagnosis_failed = { what_to_do_question = "Que faire du patient ?", partial_diagnosis_percentage_name = "Il y a %d pour cent de chances que la maladie soit %s." }, epidemic = { declare_explanation_fine = "Si vous déclarez l'épidémie, vous aurez une amende de %d, un changement de réputation et tous les patients seront vaccinés automatiquement." }, emergency = { num_disease = "Il y a %d personnes atteintes de %s qui ont besoin de soins immédiats." }, vip_visit_result = { telegram = "Télégramme !", vip_remarked_name = "Après avoir visité votre hôpital, %s a dit : ", remarks = { free_build = {"C'est vraiment un bel hôpital que vous avez là ! Pas trop difficile d'y arriver sans limite d'argent, hein ?", "Je ne suis pas économiste, mais je pense que je pourrais faire tourner cet hôpital aussi si vous voyez ce que je veux dire...", "Un hôpital très bien tenu. Cependant, attention à la récession ! Ah oui... vous n'avez pas à vous soucier de cela."}, }, }, diagnosis_failed = { what_to_do_question = "Que faire du patient ?", partial_diagnosis_percentage_name = "Il y a %d pour cent de chances que la maladie soit %s." }, diagnosis_failed = { what_to_do_question = "Que faire du patient ?", partial_diagnosis_percentage_name = "Il y a %d pour cent de chances que la maladie soit %s." } } dynamic_info = { patient = { actions = { prices_too_high = "C'est trop cher : je rentre chez moi.", no_diagnoses_available = "Plus de diagnostic : je rentre chez moi.", cured = "Guéri !", no_treatment_available = "Pas de traitement : je rentre chez moi." }, diagnosed = "Ausculté : %s" } } transactions = { cure_colon = "Guérison :", final_treat_colon = "Trait final :", treat_colon = "Trait :", advance_colon = "Avance :", insurance_colon = "Assurance :", remove_room = "Construction : Supprimer la salle détruite" } diseases = { third_degree_sideburns = { cause = "Cause : regret pathologique des années 70.", cure = "Traitement : un psychiatre doit faire comprendre au patient qu'il faut changer d'époque comme de chemise.", name = "Rétrostalgie", symptoms = "Symptômes : passion immodérée des pantalons à pattes d'éléphant et des paillettes." }, discrete_itching = { cause = "Cause : petits bestioles à dents aiguës.", cure = "Traitement : un sirop gluant est administré pour empêcher les démangeaisons.", name = "Morpionnite", symptoms = "Symptômes : le patient se gratte jusqu'au sang." }, the_squits = { cause = "Cause : avoir mangé de la pizza ramassée derrière la cuisinière.", cure = "Traitement : un mélange gluant de diverses substances synthétiques est administré au patient pour solidifier son, euh, contenu.", name = "Courante", symptoms = "Symptômes : hum. Vous voyez le genre." }, spare_ribs = { cause = "Cause : trop de temps passé sur un sol froid.", cure = "Traitement : deux chirurgiens retirent les côtes flottantes et les donnent au patient dans un sac à emporter.", name = "Excès costal", symptoms = "Symptômes : déplaisante sensation de flottement." }, diag_blood_machine = { name = "Diag Sanguimachine" }, king_complex = { cause = "Cause : l'esprit du King s'est emparé de celui du patient et l'a envahi.", cure = "Traitement : un psychiatre explique au patient à quel point tout ceci est ridicule.", name = "Syndrome du King", symptoms = "Symptômes : passion pour les chaussures en daim bleu et pour les cheeseburgers." }, diag_x_ray = { name = "Diag Rayons X" }, pregnancy = { cause = "Cause : pannes de courant en zones urbaines.", cure = "Traitement : le bébé est prélevé en salle d'opération puis soigneusement nettoyé pour faire son entrée dans le monde.", name = "Grossesse", symptoms = "Symptômes : gloutonnerie avec hypertrophie du ventre." }, fake_blood = { cause = "Cause : avoir été victime d'une très mauvaise plaisanterie.", cure = "Traitement : seule une cure psychiatrique peut calmer le patient.", name = "Sang factice", symptoms = "Symptômes : le patient voit son sang s'évaporer." }, diag_psych = { name = "Diag Psychiatre" }, invisibility = { cause = "Cause : morsure par une fourmi radioactive (et invisible).", cure = "Traitement : il suffit de faire boire au patient un liquide coloré dispensé à la pharmacie pour le rendre pleinement observable.", name = "Invisibilité", symptoms = "Symptômes : le patient ne souffre pas mais a une forte propension à utiliser son état pour faire des farces à son entourage." }, golf_stones = { cause = "Cause : exposition au gaz empoisonné contenu dans les balles de golf.", cure = "Traitement : résection des surplus par une équipe de deux chirurgiens.", name = "Pierres de golf", symptoms = "Symptômes : formation nodules excédentaires." }, diag_general_diag = { name = "Diag Généraliste" }, infectious_laughter = { cause = "Cause : exposition à un comique de situation.", cure = "Traitement : un psychiatre doit faire comprendre au patient à quel point son état est sérieux.", name = "Fou rire", symptoms = "Symptômes : gloussement irrépressible et répétition compulsive d'accroches même pas drôles." }, general_practice = { name = "Généraliste" }, baldness = { cause = "Cause : avoir raconté trop de mensonges pour se rendre intéressant.", cure = "Traitement : pose très douloureuse de cheveux à l'aide d'un moumouteur.", name = "Calvitie", symptoms = "Symptômes : tête en boule de billard et gros complexe." }, heaped_piles = { cause = "Cause : s'être assis sur un jet de jacuzzi.", cure = "Traitement : une potion agréable bien que puissamment acide dissout les rectoïdes de l'intérieur.", name = "Rectoïdes", symptoms = "Symptômes : le patient a l'impression de s'asseoir sur un sac de billes." }, unexpected_swelling = { cause = "Cause : n'importe quoi d'inattendu.", cure = "Traitement : le dégonflement est obtenu par une délicate opération pratiquée par deux chirurgiens.", name = "Bouffissure", symptoms = "Symptômes : bouffissure généralisée." }, jellyitis = { cause = "Cause : abus de produits riches en gélifiant et trop d'exercice.", cure = "Traitement : le patient est immergé dans un dégélifiant.", name = "Gélatine", symptoms = "Symptômes : grande mollesse et tendance à l'écroulement." }, hairyitis = { cause = "Cause : exposition prolongée au clair de lune.", cure = "Traitement : on fait disparaître les poils avec un électrolyseur et les pores sont scellés.", name = "Pilose", symptoms = "Symptômes : le patient développe un odorat accru." }, alien_dna = { cause = "Cause : agrippeurs faciaux munis de sang extraterrestre intelligent.", cure = "Traitement : l'ADN est retiré par un correcteur pour être nettoyé puis restitué rapidement.", name = "ADN Alien", symptoms = "Symptômes : le patient se métamorphose progressivement en sale machin d'outre-espace et veut tout détruire." }, bloaty_head = { cause = "Cause : avoir reniflé du fromage et bu de l'eau de pluie.", cure = "Traitement : la tête est éclatée puis regonflée à la bonne dimension à l'aide d'une astucieuse machine.", name = "Encéphalantiasis", symptoms = "Symptômes : affreux maux de tête." }, gastric_ejections = { cause = "Cause : nourriture mexicaine ou indienne très épicée.", cure = "Traitement : administration par voie orale d'une solution spéciale pour endiguer les rejets.", name = "Éjections gastriques", symptoms = "Symptômes : le patient rejette par accès des bribes de nourriture mal digérée." }, uncommon_cold = { cause = "Cause : divers trucmuches volant dans l'air", cure = "Traitement : absorption d'une grande rasade d'un sirop spécial élaboré à la pharmacie.", name = "Catarhume", symptoms = "Symptômes : nez qui coule, éternuements, poumons décolorés." }, corrugated_ankles = { cause = "Cause : avoir roulé trop vite sur des ralentisseurs.", cure = "Traitement : le patient doit absorber un mélange d'herbes et d'épices légèrement toxique dont l'effet redressera illico les chevilles.", name = "Chevilles ondulées", symptoms = "Symptômes : les chaussures ne s'ajustent plus." }, sleeping_illness = { cause = "Cause : hypertrophie de la glande palatale de Morphée.", cure = "Traitement : une infirmière administre une forte dose d'un puissant stimulant.", name = "Roupillance", symptoms = "Symptômes : tendance irrépressible à tomber de sommeil." }, sweaty_palms = { cause = "Cause : terreur des entretiens d'embauche.", cure = "Traitement : un psychiatre détend le patient en lui racontant celle du fou qui repeint son plafond.", name = "Mains moites", symptoms = "Symptômes : serrer la main du patient revient à presser une éponge détrempée." }, serious_radiation = { cause = "Cause : avoir pris du plutonium pour des bonbons.", cure = "Traitement : le patient est passé à la douche de décontamination et consciencieusement récuré.", name = "Radionite", symptoms = "Symptômes : le patient ne se sent vraiment, vraiment pas bien." }, diag_cardiogram = { name = "Diag Cardio" }, diag_scanner = { name = "Diag Scanner" }, gut_rot = { cause = "Cause : la Bonne Vieille Bibine de la Mère Sam.", cure = "Traitement : une infirmière doit administrer diverses substances chimiques pour tenter de colmater le tout.", name = "Tripurulente", symptoms = "Symptômes : aucun microbe mais plus de paroi intestinale non plus." }, iron_lungs = { cause = "Cause : pollution atmosphérique combinée aux remugles de kébab.", cure = "Traitement : deux chirurgiens enlèvent le blindage en salle d'opération.", name = "Poumons de fer", symptoms = "Symptômes : envie de respirer du feu et de hurler sous l'eau." }, broken_wind = { cause = "Cause : utilisation d'un appareil de musculation juste après un repas.", cure = "Traitement : une mixture d'eau lourde est administrée à la pharmacie.", name = "Pétomanie", symptoms = "Symptômes : pollution de l'air des personnes situées derrière le patient." }, kidney_beans = { cause = "Cause : avoir croqué les glaçons de son cocktail.", cure = "Traitement : deux chirurgiens extraient les cristaux sans endommager le rein.", name = "Cristaux rénaux", symptoms = "Symptômes : douleur et fréquentes visites aux toilettes." }, transparency = { cause = "Cause : avoir léché le yaourt adhérent au couvercle à l'ouverture d'un pot.", cure = "Traitement : administration d'une potion fraîche et colorée préparée à la pharmacie.", name = "Transparence", symptoms = "Symptômes : la chair est horrible et transparente." }, broken_heart = { cause = "Cause : avoir croisé quelqu'un de plus riche, plus jeune et plus beau.", cure = "Traitement : deux chirurgiens ouvrent la poitrine et réparent doucement le coeur en retenant leur souffle.", name = "Coeur brisé", symptoms = "Symptômes : pleurnicheries et crampes causées par des heures à regarder de vieilles photos de vacances." }, slack_tongue = { cause = "Cause : trop de discussion à propos des romans-feuilletons.", cure = "Traitement : la langue est placée dans un taille-langue puis elle est coupée rapidement, efficacement et douloureusement.", name = "Hyperlangue", symptoms = "Symptômes : la langue s'étire jusqu'à cinq fois sa longueur normale." }, tv_personalities = { cause = "Cause : avoir abusé des programmes télévisés.", cure = "Traitement : un psychiatre doit convaincre le patient d'échanger sa télévision contre une radio.", name = "Téléincarnation", symptoms = "Symptômes : le patient a l'illusion d'être capable de présenter une émission de cuisine." }, ruptured_nodules = { cause = "Cause : saut à l'élastique par temps froid.", cure = "Traitement : deux chirurgiens doivent réajuster les parties concernées d'une main sûre.", name = "Casse-boules", symptoms = "Symptômes : impossibilité de s'asseoir confortablement." }, fractured_bones = { cause = "Cause : chute spectaculaire sur du béton.", cure = "Traitement : un plâtre est posé puis ôté à l'aide d'un équipement au laser.", name = "Fractures", symptoms = "Symptômes : affreux craquement et incapacité à utiliser les membres touchés." }, chronic_nosehair = { cause = "Cause : avoir reniflé avec dédain à la vue de plus malheureux que soi.", cure = "Traitement : une épouvantable potion dépilatoire est administrée par une infirmière à la pharmacie.", name = "Poilonisme", symptoms = "Symptômes : poils au nez si drus qu'un oiseau pourrait y nicher." } } confirmation = { quit = "Vous avez choisi Quitter. Voulez-vous vraiment quitter la partie ?", return_to_blueprint = "Voulez-vous vraiment revenir au mode Tracé ?", restart_level = "Voulez-vous vraiment relancer ce niveau ?", overwrite_save = "Il y a déjà une partie sauvegardée ici. Voulez-vous vraiment l'écraser ?", delete_room = "Voulez-vous vraiment détruire cette salle ?", sack_staff = "Voulez-vous vraiment licencier ce membre du personnel ?", } -- The originals of these strings contain one space too much trophy_room.sold_drinks.trophies[2] = "Vous recevez le prix Bubulles du Syndicat des Vendeurs de Limonade pour récompenser la quantité de sodas vendus dans votre hôpital au cours de l'année écoulée." tooltip.status.percentage_cured = "Vous devez soigner %d%% des visiteurs de l'hôpital. Actuellement, vous en avez soigné %d%%" tooltip.status.num_cured = "L'objectif est de soigner %d personnes. Pour le moment, vous en avez soigné %d" dynamic_info.staff.actions.going_to_repair = "Pour réparer %s" adviser.staff_place_advice = { only_doctors_in_room = "Seuls les médecins peuvent travailler en %s", nurses_cannot_work_in_room = "Les infirmières ne peuvent travailler en %s", not_enough_lecture_chairs = "Chaque étudiant en médecine a besoin d'une chaise de conférence pour s'asseoir !" } pay_rise.definite_quit = "Rien ne me fera rester ici. J'en ai assez." place_objects_window.confirm_or_buy_objects = "Vous pouvez valider ainsi ou bien soit acheter soit déplacer des objets." ----------------------------------------------------------- New strings ----------------------------------------------------------- date_format = { daymonth = "%1% %2:months%" } -- Objects object.rathole = "Trou à rats." object.litter = "Déchet" tooltip.objects.litter = "Déchet : laissé sur le sol par un patient car il n'a pas trouvé de poubelle où le jeter." tooltip.fax.close = "Fermer cette fenêtre sans supprimer le message" tooltip.message.button = "clic gauche pour ouvrir le message" tooltip.message.button_dismiss = "clic gauche pour ouvrir le message, clic droit pour le rejeter" tooltip.casebook.cure_requirement.hire_staff = "Vous devez embaucher du personnel pour gérer ce traitement" tooltip.casebook.cure_type.unknown = "Vous ne savez pas encore comment traiter cette maladie" tooltip.research_policy.no_research = "Aucune recherche n'est actuellement effectuée dans cette catégorie" tooltip.research_policy.research_progress = "Progrès vers la prochaine découverte dans cette catégorie : %1%/%2%" menu_file = { load = " (%1%) CHARGER ", save = " (%1%) SAUVEGARDER ", restart = " (%1%) RELANCER", quit = " (%1%) QUITTER " } -- Options menu menu_options = { lock_windows = " FIGER LES FENETRES ", edge_scrolling = " DEFILEMENT PAR BORD ", adviser_disabled = " (%1%) ASSISTANT ", warmth_colors = " COULEURS CHAUDES ", wage_increase = " AUGMENTATION DE SALAIRE ", twentyfour_hour_clock = " HORLOGE 24 HEURES ", capture_mouse = " CAPTURER LE CURSEUR " } menu_options_game_speed = { pause = " (%1%) PAUSE ", slowest = " (%1%) LA PLUS LENTE ", slower = " (%1%) PLUS LENTE ", normal = " (%1%) NORMALE ", max_speed = " (%1%) VITESSE MAX ", and_then_some_more = " (%1%) ET ENCORE PLUS " } menu_options_warmth_colors = { choice_1 = " ROUGE ", choice_2 = " BLEU VERT ROUGE ", choice_3 = " JAUNE ORANGE ROUGE " } menu_options_wage_increase = { grant = " ACCORDER ", deny = " REFUSER " } -- Charts Menu ' Temporary; must see in-game for correct translation menu_charts = { bank_manager = " (%1%) GESTION BANCAIRE ", statement = " (%1%) DECLARATION ", staff_listing = " (%1%) LISTE DU PERSONNEL ", town_map = " (%1%) CARTE DE LA VILLE ", casebook = " (%1%) DOSSIER MEDICAL ", research = " (%1%) RECHERCHE ", status = " (%1%) STATUTS ", graphs = " (%1%) GRAPHIQUES ", policy = " (%1%) POLITIQUE ", machine_menu = " (%1%) MENU DES MACHINES", adviser_history = " (%1%) RECAP. CONSEILLER ", } tooltip.toolbar = { machine_menu = "Menu des machines", } -- Debug menu menu_debug = { jump_to_level = " ALLER AU NIVEAU ", connect_debugger = " (%1%) CONNECTER AU SERVEUR DE DÉBOGUAGE ", transparent_walls = " (%1%) MURS TRANSPARENTS ", limit_camera = " LIMITER LA CAMERA ", disable_salary_raise = " DÉSACTIVER LES AUGMENTATIONS DE SALAIRE ", make_debug_fax = " CRÉER UN FAX DE TEST ", make_debug_patient = " CRÉER UN PATIENT DE TEST ", cheats = " (%1%) TRICHES ", lua_console = " (%1%) CONSOLE LUA ", debug_script = " (%1%) ACTIVER LE DÉBOGUAGE PAR SCRIPT ", calls_dispatcher = " RÉPARTITION DES TACHES ", --  not supported by TH Font dump_strings = " (%1%) EXTRAIRE LES TRADUCTIONS ", dump_gamelog = " (%1%) EXTRAIRE LE JOURNAL DE JEU ", map_overlay = " INCRUSTATIONS DE CARTE ", sprite_viewer = " VISIONNEUSE DE SPRITES ", allow_blocking_off_areas = " AUTORISER LE BLOCAGE DES ZONES " } menu_debug_overlay = { none = " AUCUN ", flags = " DRAPEAUX ", positions = " POSITIONS ", heat = " TEMPÉRATURE ", byte_0_1 = " OCTETS 0 & 1 ", byte_floor = " OCTET SOL ", byte_n_wall = " OCTET MUR N ", byte_w_wall = " OCTET MUR O ", byte_5 = " OCTET 5 ", byte_6 = " OCTET 6 ", byte_7 = " OCTET 7 ", parcel = " PARCELLE " } menu_player_count = { players_1 = " 1 JOUEUR ", players_2 = " 2 JOUEURS ", players_3 = " 3 JOUEURS ", players_4 = " 4 JOUEURS " } -- Adviser adviser = { room_forbidden_non_reachable_parts = "Placer la pièce à cet endroit rendrait inaccessibles certaines parties de l'hôpital", warnings = { no_desk = "Vous devriez construire un bureau de réception et engager une réceptionniste un de ces jours !", no_desk_1 = "Si vous voulez que des patients viennent dans votre hôpital, vous devez embaucher une réceptionniste et lui construire un bureau pour travailler !", no_desk_2 = "Bien joué, ça doit être un record : presque un an et pas de patient ! Si vous voulez continuer comme directeur de cet hôpital, vous devez embaucher une réceptionniste et lui construire un bureau pour travailler !", no_desk_3 = "C'est tout simplement génial, presque un an et vous n'avez pas embauché de réceptionniste ! Comment espérez obtenir le moindre patient ? Arrangez-ça et arrêtez de perdre votre temps !", no_desk_4 = "Une réceptionniste aura besoin d'un bureau pour accueillir des patients", no_desk_5 = "Il était temps, maintenant les patients devraient commencer à arriver bientôt !", no_desk_6 = "Vous avez une réceptionniste, peut-être il est temps de construire un bureau où elle peut travailler ?", no_desk_7 = "Maintenant, que vous avez une réception, que diriez-vous d'embaucher une réceptionniste également ? Vous n'aurez pas de patients avant de l'avoir fait !", cannot_afford = "Vous n'avez pas assez d'argent à la banque pour embaucher cette personne !", -- I can't see anything like this in the original strings cannot_afford_2 = "Vous n'avez pas assez d'argent à la banque pour effectuer l'achat !", research_screen_open_1 = "Vous devez construire une salle de recherche avant de pouvoir accéder à l'écran des recherches.", research_screen_open_2 = "La recherche est désactivée pour le niveau en cours.", researcher_needs_desk_1 = "Chaque chercheur a besoin d'un bureau pour travailler.", researcher_needs_desk_2 = "Vos chercheurs sont heureux d'obtenir une pause bien méritée. Si vous voulez que plusieurs chercheurs puissent travailler en même temps.", researcher_needs_desk_3 = "Un chercheur a toujours besoin d'un bureau.", nurse_needs_desk_1 = "Chaque infirmière a besoin de son propre bureau.", nurse_needs_desk_2 = "Votre infirmière est heureuse d'avoir une pause. Si vous comptez y faire travailler plusieurs personnes en même temps, vous devez leur construire un bureau à chacune.", low_prices = "Vous facturez trop peu pour %s. Ça va amener des gens dans votre hôpital, mais vous ne ferez pas beaucoup de profit sur chacun d'eux.", high_prices = "Votre tarif pour %s est trop élevé. Ça va générer plus de profit sur le court-terme, mais à la longue les gens vont fuir.", fair_prices = "Le prix pour %s semble juste et équilibré.", patient_not_paying = "Un patient est parti sans payer pour %s parce que c'est trop cher !", another_desk = "Vous devrez construire un autre bureau pour cette nouvelle réceptionniste.", money_low = "Les fonds sont en baisse !", no_patients_last_month = "Pas de nouveaux patients le mois dernier. Honteux !", machines_falling_apart = "Les machines tombent en panne. Faites-les réparer !", bankruptcy_imminent = "Hé ! Vous courez à la faillite. Attention !", too_many_plants = "Il y a bien trop de plantes. C'est la jungle, ici !", many_killed = "Vous avez laissé mourir %d personnes. Idiot ! Vous êtes censé les soigner.", falling_1 = "Hé ! Ce n'est pas drôle, regardez ou vous cliquez, quelqu'un pourrait être blessé !", falling_2 = "Arrêtez de faire n'importe quoi, qu'en penseriez-vous à leur place ?", falling_3 = "Aïe, ça doit faire mal, qu'on appelle un médecin !", falling_4 = "C'est un hôpital, pas un parc d'attraction !", falling_5 = "Ce n'est pas un endroit pour bousculer les gens, ils sont malades vous savez ?", falling_6 = "Ce n'est pas un bowling, les gens malades ne devraient pas être traités comme ça !", handymen_tired = "Les agents de maintenance sont très fatigués. Laissez-les se reposer.", -- Add a missing letter cannot_afford_machine = "Vous avez besoin de au moins $%1% dans la banque pour pouvoir acheter: %2%!", }, cheats = { th_cheat = "Félicitations, vous avez débloqué les triches !", roujin_on_cheat = "Défi de Roujin activé ! Bonne chance...", roujin_off_cheat = "Défi de Roujin désactivé.", norest_on_cheat = "Oh non ! Il semble que votre personnel ait trop consommé de caféine et n'ait plus besoin de se reposer.", norest_off_cheat = "Ouf ! On dirait que cette excitation s'est enfin dissipée. Votre personnel se reposera maintenant correctement." } } -- Dynamic information dynamic_info.patient.actions.no_gp_available = "Attente d'un cabinet de médecine générale" dynamic_info.staff.actions.heading_for = "Va vers %s" dynamic_info.staff.actions.fired = "Renvoyé" dynamic_info.patient.actions.epidemic_vaccinated = "Je ne suis plus contagieux" dynamic_info.object.strength_extra_info = "Force %d (Améliorable jusqu'à %d)" dynamic_info.staff.actions.vaccine = "Vaccination d'un patient" -- Progress report progress_report.free_build = "CONSTRUCTION LIBRE" -- Fax messages fax = { choices = { return_to_main_menu = "Retourner au menu principal", accept_new_level = "Aller au niveau suivant", decline_new_level = "Continuer la partie encore un peu" }, emergency = { num_disease_singular = "Il y a 1 personne atteinte de %s qui a besoin de soins immédiats.", free_build = "Si vous réussissez votre réputation augmentera mais si vous échouez votre réputation sera sérieusement entachée." }, } -- Winning texts letter = { dear_player = "Cher %s", custom_level_completed = "Félicitations ! Vous avez réussi tous les objectifs de ce niveau personnalisé !", return_to_main_menu = "Voulez-vous retourner au menu principal ou continuer la partie ?", campaign_completed = "Incroyable ! Vous avez réussi à terminer tous les niveaux. Vous pouvez maintenant vous détendre et profiter de remplir des forums sur Internet de vos réalisations. Bonne chance !", campaign_level_missing = "Désolé, mais le prochain niveau de cette campagne semble manquer. (Nom: %s)", campaign_level_completed = "Bon travail ! Vous avez battu le niveau. Mais ce n'est pas fini !\n Aimeriez-vous un poste à l'hôpital %s ?" } -- Installation install = { title = "----------------------------- Installation de CorsixTH -----------------------------", th_directory = "CorsixTH nécessite une copie des données du jeu Theme Hospital originel (ou la démo) pour fonctionner. Veuillez utiliser le sélecteur ci-dessous pour indiquer le dossier d'installation de Theme Hospital.", ok = "OK", exit = "Quitter", cancel = "Annuler" } -- Misc (some other misc strings also exist outside this section) misc = { not_yet_implemented = "(pas encore implémenté)", no_heliport = "Aucune maladie n'a été découverte pour l'instant, ou il n'y a pas d'héliport sur cette carte.", epidemics_off = "Les épidémies sont désactivées", epidemics_on = "Les épidémies sont activées", epidemic_no_receptionist = "Impossible de créer une épidémie - il n'y a pas de réceptionniste", epidemic_no_diseases = "Impossible de créer une épidémie - il n'y a pas de maladie contagieuse disponible", epidemic_no_icon_to_toggle = "Impossible de montrer/cacher les icônes des infectés - il n'y a pas d'épidémies non-révélées", earthquakes_off = "Les tremblements de terre sont désactivés", earthquakes_on = "Les tremblements de terre sont activés" } -- Main menu main_menu = { new_game = "Nouvelle partie", custom_level = "Niveau personnalisé", continue = "Continuer la partie", load_game = "Charger une partie", options = "Options", savegame_version = "Version de la sauvegarde : ", version = "Version : ", exit = "Quitter", map_edit = "Éditeur de carte", custom_campaign = "Campagne personnalisée", updates_off = "Ne pas vérifier les mises à jour" } tooltip.main_menu = { new_game = "Commencer une nouvelle partie", custom_level = "Construire votre hôpital dans un niveau personnalisé", continue = "Continuer la partie", load_game = "Charger une partie sauvegardée", options = "Modifier quelques paramètres", exit = "Non, non, SVP, ne quittez pas !", map_edit = "Créer une carte personnalisée", custom_campaign = "Jouer une campagne créée par la communauté", quit = "Vous êtes sur le point de quitter CorsixTH. Voulez-vous vraiment faire cela ?", } -- Load game window load_game_window = { caption = "Charger une partie (%1%)", load_button = "Charger", } tooltip.load_game_window = { load_game = "Charger la partie %s", load_game_number = "Charger la partie %d", load_autosave = "Charger la sauvegarde automatique" } -- Custom game window custom_game_window = { caption = "Niveau personnalisé", free_build = "Construction libre", load_selected_level = "Démarrer" } tooltip.custom_game_window = { free_build = "Cochez cette case si vous souhaitez jouer sans limite d'argent et sans conditions de victoire ou de défaite", choose_game = "Cliquez sur un niveau pour en savoir plus", load_selected_level = "Charger et jouer le niveau sélectionné" } -- Custom campaign window custom_campaign_window = { caption = "Campagne personnalisée", start_selected_campaign = "Démarrer la campagne" } tooltip.custom_campaign_window = { choose_campaign = "Choisissez une campagne pour en savoir plus à son sujet", start_selected_campaign = "Charger le premier niveau de cette campagne" } -- Save game window save_game_window = { caption = "Sauvegarder la partie (%1%)", new_save_game = "Nouvelle sauvegarde", save_button = "Sauvegarder", missing_filename = "Veuillez indiquer un nom pour la nouvelle sauvegarde ou sélectionner la sauvegarde à écraser.", } tooltip.save_game_window = { save_game = "Écraser la sauvegarde %s", new_save_game = "Entrez un nom pour la sauvegarde" } save_map_window = { caption = "Sauvegarder la carte (%1%)", new_map = "Nouvelle carte", save_button = "Sauvegarder", missing_filename = "Veuillez indiquer un nom pour le fichier de carte ou sélectionner le fichier de carte à écraser.", } tooltip.save_map_window = { map = "Ecraser la carte %s", new_map = "Entrez le nom pour une sauvegarde de la carte" } load_map_window = { caption = "Charger la carte (%1%)", load_button = "Charger", } -- Menu list window menu_list_window = { back = "Précédent", save_date = "Modifié", name = "Nom", ok = "OK" } tooltip.menu_list_window = { back = "Fermer cette fenêtre", save_date = "Cliquez ici pour classer la liste par date de dernière modification", name = "Cliquez ici pour classer la liste par par nom", ok = "Confirmer le choix" } -- Options window options_window = { apply = "Appliquer", back = "Précédent", cancel = "Annuler", caption = "Paramètres", capture_mouse = "Capture de la souris", change_resolution = "Changer la résolution", check_for_updates = "Vérifier mises à jour", custom_resolution = "Personnaliser...", customise = "Personnaliser", folder = "Dossier", fullscreen = "Plein écran", height = "Hauteur", hotkey = "Touches de raccourci", language = "Langue du jeu", option_disabled = "Désactivé", option_enabled = "Activé", option_off = "Désactiver", option_on = "Activer", resolution = "Résolution", scrollspeed = "Vitesse de défilement", shift_scrollspeed = "Vit. de défil. + Maj", width = "Largeur", zoom_speed = "Vitesse de zoom", right_mouse_scrolling = "Défilement Souris", right_mouse_scrolling_option_middle = "Bouton Milieu", right_mouse_scrolling_option_right = "Bouton Droit", scale_ui = "Échelle d'interface", sound = "Son", autosave_frequency = "Fréquence sauv. auto.", } autosave_frequency = { monthly = "Mensuelle", weekly = "Hebdomadaire", daily = "Quotidienne", } tooltip.autosave_frequency = { monthly = "Sauvegarder une fois par mois, le premier jour de chaque mois. Un total de 12 sauvegardes sur une période d'un an.", weekly = "Sauvegarder une fois par semaine le 1er, 7ème, 14ème, 21ème, et 28ème jour de chaque mois. Un total de 60 sauvegardes sur une période d'un an.", daily = "Sauvegarder une fois par jour au début de chaque journée en jeu. Un total de 365 sauvegardes sur une période d'un an. Veuillez noter qu'une sauvegarde classique peut avoir un poids de 1 Mo ou plus, votre dossier Autosaves pourrait donc peser 300-500 Mo.", } tooltip.options_window = { fullscreen = "Mode plein écran ou mode fenêtré", fullscreen_button = "Basculer en mode plein écran/fenêtré", resolution = "La résolution vidéo pour le jeu", select_resolution = "Sélectionner une nouvelle résolution", resolution_unavailable = "Résolution indisponible à cette échelle d'interface", scale_ui = "Mise à l'échelle de l'interface. Seules les options d'échelle applicables à votre écran sont disponibles. Augmentez la résolution pour plus d'options.", select_ui_scale = "Sélectionner une échelle d'interface", ui_scale_unavailable = "Échelle d'interface indisponible, veuillez d'abord choisir une résolution plus élevée.", width = "Entrez la largeur désirée", height = "Entrez la hauteur désirée", change_resolution = "Changer la résolution pour les dimensions entrées à gauche", language = "Utiliser la langue %s", back = "Fermer la fenêtre des options", cancel = "Retour sans changement de résolution", apply = "Appliquer la résolution choisie", language_dropdown_item = "Choisir %s comme langue", select_language = "Sélectionner la langue du jeu", folder_button = "Dossier des paramètres", customise_button = "Paramètres supplémentaires qui peuvent être modifiés pour personnaliser votre expérience de jeu", apply_shift_scrollspeed = "Appliquer la vitesse de défilement en mode Maj.", shift_scrollspeed = "Définir la vitesse de défilement lorsque la touche Maj est enfoncée. De 1 (la plus lente) à 10 (la plus rapide). La valeur par défaut est 4.", hotkey = "Modifier les touches de raccourci du clavier.", check_for_updates = "Choisir si le jeu doit rechercher des mises à jour au démarrage.", zoom_speed = "Définir la vitesse de zoom de la caméra de 10 (la plus lente) à 1000 (la plus rapide). La valeur par défaut est 80.", cancel_zoomspeed = "Revenir sans changer la vitesse de zoom.", apply_zoomspeed = "Appliquer la vitesse de zoom choisie.", cancel_scrollspeed = "Revenir sans changer la vitesse de défilement.", cancel_shift_scrollspeed = "Revenir sans changer la vitesse de défilement de la touche Maj.", scrollspeed = "Réglez la vitesse de défilement de 1 (la plus lente) à 10 (la plus rapide). La valeur par défaut est 2.", apply_scrollspeed = "Appliquer la vitesse de défilement entrée.", capture_mouse = "Cliquez pour activer la capture du curseur dans la fenêtre du jeu.", language_dropdown_no_font = "Sélectionnez une police d'écriture dans les paramètres pour activer ce langage", right_mouse_scrolling = "Activer le bouton qui est utilisé pour faire défiler la carte", sound = "Modifier les réglages audio", autosave_frequency = "Définir la fréquence des sauvegardes automatiques.", } audio_window = { caption = "Paramètres sonores", audio = "Audio global", sound_volume = "Volume des sons", announcement_volume = "Volume des annonces", music_volume = "Volume de la musique", midi_api = "API MIDI", midi_port = "Port MIDI", soundfont = "SoundFont", default_midi_api = "Défaut (Software)", default_midi_port = "Défaut", jukebox = "Jukebox", back = "Précédent", soundfont_location_caption = "Choisir la soundfont (%1%)", } tooltip.audio_window = { audio_button = "Activer ou désactiver le système audio dans le jeu", audio_toggle = "Activer ou désactiver", sound_volume = "Volume des effets sonores", announcement_volume = "Volume des annonces", music_volume = "Volume de la musique", midi_api = "L'API utilisée pour la musique en jeu. Non disponible avec le dossier de musiques personnalisées.", midi_port = "Port système à utiliser pour la musique en jeu.", soundfont_location = "Emplacement du fichier Soundfont pour jouer la musique MIDI. Une Soundfont par défaut est utilisée si aucune n'est spécifiée.", browse = "Parcourir les dossiers", browse_soundfont = "Rechercher un autre fichier Soundfont (sf2, or sf3) ( Emplacement actuel: %1% ) ", no_soundfont_specified = "Utiliser la soundfont par défaut", jukebox = "Ouvrir le Jukebox pour changer la musique", back = "Fermer la fenêtre", } customise_window = { caption = "Paramètres Additionnels", option_on = "Activer", option_off = "Désactiver", back = "Retour", movies = "Contrôle des cinématiques", intro = "Jouer la cinémat. d'intro", paused = "Construction en pause", volume = "Raccourci baisse du volume", aliens = "Extraterrestres", fractured_bones = "Fractures", average_contents = "Achats mémorisés", remove_destroyed_rooms = "Suppr. les salles détruites", machine_menu_button = "Bouton menu des machines", every_month = "Chaque mois", emergency_only = "Urgence seulement", every_day = "Chaque jour", enable_announcer_subtitles = "Sous-titres des annonces", male_only = "Homme seulement", regular_patients = "Patients normaux", enable_screen_shake = "Vibration de l'écran", male_and_female = "Homme et Femme", } tooltip.customise_window = { movies = "Sélectionnez si les cinématiques doivent être joués.", intro = "Passer la cinématique d'introduction lorsque vous démarrez le jeu. Le contrôle des cinématiques doit être activé si vous jouez la cinématique d'introduction à chaque fois que vous chargez CorsixTH", paused = "Dans Theme Hospital, le joueur ne pouvait utiliser le menu supérieur que si le jeu était en pause. Il s'agit également du paramètre par défaut dans CorsixTH, mais activant cette option, il est possible de construire des salles ou prendre des objets lorsque le jeu est en pause", volume = "Si la touche de réduction du volume ouvre également le journal de médecine, activer cette option pour modifier le raccourci des dossiers médicaux à Maj + C", aliens = "Comme il y a des animations appropriées, nous avons fait de sorte que les patients avec l'ADN extraterrestre montrent seulement comme des situations d'urgence. Désactivez cette option pour obtenir cas de l'ADN extraterrestre visites régulières", fractured_bones = "En raison de la faible qualité de l'animation, il n'y a pas de patientes avec des fractures. Désactivez cette option pour recevoir des femmes avec des fractures.", average_contents = "Si vous voulez que le jeu se rappelle des articles supplémentaires que vous avez tendance à normalement magasiner pour une nouvelle salle, activer cette option", remove_destroyed_rooms = "Si vous souhaitez pouvoir retirer les salles détruites, moyennant paiement, activez cette option", machine_menu_button = "Si vous désirez afficher un bouton pour le menu des machines dans le panneau inférieur, activez cette option. Gardez à l'esprit que ce bouton ne sera pas disponible sur des petites résolutions d'écran.", enable_screen_shake = "Les tremblements de terre feront vibrer tout l'écran. Si vous préférez que l'écran reste fixe, désactivez cette option", enable_announcer_subtitles = "Si vous souhaitez afficher des sous-titres pour les annonces de l'hôpital, activez cette option", back = "Fermer ce menu et revenir au menu d'options", } folders_window = { caption = "Paramètres de dossier", data_label = "Données de TH", font_label = "Police", music_label = "MP3", savegames_label = "Sauvegarde", screenshots_label = "Captures d'écran", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "Ici vous pouvez spécifier un nouveau répertoire d'installation de Theme Hospital. Dès que vous choisissez le nouveau répertoire, le jeu sera redémarré.", savegames_location = "Sélectionner le répertoire que vous voulez utiliser pour les sauvegardes", music_location = "Sélectionner le répertoire que vous voulez utiliser pour la musique", screenshots_location = "Sélectionner le répertoire que vous voulez utiliser pour les captures d'écran", back = "Retour" } tooltip.folders_window = { browse = "Parcourir l'emplacement du dossier", data_location = "Le répertoire d'origine de l'installation de Theme Hospital, qui est requis pour faire fonctionner CorsixTH", font_location = "Emplacement d'un fichier de police qui est capable d'afficher des caractères Unicode requises par votre langue. Si aucun emplacement n'est spécifié vous ne serez pas en mesure de choisir des langues qui ont des caractères que le jeu original ne peut pas fournir. Exemple : Russe et Chinois", savegames_location = "Par défaut, le répertoire de sauvegardes est à côté du fichier de configuration et sera utilisé pour stocker les sauvegardes. Si cela n'est pas approprié vous pouvez modifier ce répertoire.", screenshots_location = "Par défaut, les captures d'écran sont stockés dans un dossier avec le fichier de configuration. Si cela ne convient pas vous pouvez choisir votre propre dossier.", music_location = "Sélectionnez un emplacement pour vos fichiers MP3.", browse_data = "Parcourir un autre emplacement d'une installation de Theme Hospital (emplacement actuel : %1%)", browse_font = "Parcourir un autre fichier de police (emplacement actuel : %1%)", browse_saves = "Parcourir un autre répertoire de sauvegardes (emplacement actuel : %1%)", browse_screenshots = "Parcourir un autre répertoire de captures d'écrans (emplacement actuel : %1%)", browse_music = "Parcourir un autre répertoire de musique (emplacement actuel : %1%)", no_font_specified = "Aucun répertoire de police spécifié !", not_specified = "Aucun répertoire spécifié !", default = "Emplacement par défaut", reset_to_default = "Réinitialiser le répertoire à son emplacement par défaut (%1%)", back = "Fermer ce menu et revenir au menu Paramètres" } font_location_window = { caption = "Choisir une police (%1%)" } -- Handyman window handyman_window = { all_parcels = "Partout", parcel = "Parcelle" } tooltip.handyman_window = { parcel_select = "Les parcelles où les agents de maintenance peuvent travailler : cliquez pour changer le paramètre." } --- New game window new_game_window = { easy = "Interne (Facile)", medium = "Médecin (Moyen)", hard = "Consultant (Difficile)", tutorial = "Tutoriel", cancel = "Annuler", option_on = "Activer", option_off = "Désactiver", difficulty = "Difficulté", caption = "Campagne", player_name = "Nom du joueur", start = "Démarrer" } tooltip.new_game_window = { easy = "Si vous jouez pour la première fois à un jeu de simulation, cette option est pour vous", medium = "C'est la voie du milieu à prendre si vous ne savez pas quoi choisir", hard = "Si vous êtes habitué à ce genre de jeu et que vous souhaitez plus d'un défi, choisissez cette option", tutorial = "Si vous voulez un peu d'aide pour démarrer une fois dans le jeu, cochez cette case", cancel = "Oh, je n'avais pas vraiment l'intention de commencer une nouvelle partie !", difficulty = "Sélectionnez le niveau de difficulté que vous voulez dans le jeu", start = "Démarrer le jeu avec les paramètres sélectionnés", player_name = "Entrez le nom par lequel vous voulez être appelé dans le jeu" } -- Lua Console lua_console = { execute_code = "Exécuter", close = "Fermer" } tooltip.lua_console = { textbox = "Entrez du code Lua à exécuter ici", execute_code = "Exécuter le code que vous avez entré", close = "Fermer la console" } -- Errors errors = { dialog_missing_graphics = "Désolé, les données de démo ne contiennent pas cette boîte de dialogue.", save_prefix = "Erreur lors de la sauvegarde de la partie : ", load_prefix = "Erreur lors du chargement de la partie : ", load_map_prefix = "Erreur pendant le chargement de la carte: ", load_level_prefix = "Erreur pendant le chargement du niveau: ", no_games_to_contine = "Pas de parties sauvegardées.", map_file_missing = "Impossible de trouver le fichier de carte %s pour ce niveau !", minimum_screen_size = "Veuillez entrer une résolution supérieure à %dx%d.", unavailable_screen_size = "La résolution que vous avez demandée n'est pas disponible en plein écran.", alien_dna = "NOTE : Il n'y a pas d'animations pour les patients étrangers pour s'asseoir, ouvrir ou de frapper aux portes, etc. Donc, comme avec Theme Hospital pour faire ces choses, ils semblent changer à la normale et ensuite changer de nouveau. Les patients avec l'ADN Alien apparaîtront seulement s'ils sont définis dans le fichier de niveau.", fractured_bones = "NOTE : L'animation pour les patients de sexe féminin avec des os fracturés n'est pas parfaite.", load_quick_save = "Erreur, impossible de charger la sauvegarde rapide car elle n'existe pas, ne vous inquiétez pas nous avons créé une pour vous !", could_not_find_first_campaign_level = "Impossible de trouver le premier niveau de cette campagne : %s", save_to_tmp = "Le fichier à l'emplacement %s n'a pas pu être utilisé. Le jeu a été enregistré sous %s. Erreur : %s", could_not_load_campaign = "Échec du chargement de la campagne : %s", dialog_empty_queue = "Désolé, un être humain vient d'avoir une file d'actions vide, ce qui signifie qu'il ne savait pas quoi faire ensuite. Veuillez consulter la fenêtre de commande pour des informations plus détaillées. Un dialogue avec l'individu fautif a été ouvert. Souhaitez-vous qu'il quitte l'hôpital ?", compatibility_error = { new_in_old = "Désolé, cette sauvegarde a été créée avec une version plus récente de CorsixTH et n'est pas compatible. Veuillez mettre à jour vers une version plus récente.", full_in_demo = "Désolé, vous ne pouvez pas ouvrir une sauvegarde de jeu complet avec les fichiers de démonstration chargés. Veuillez mettre à jour votre paramètre de dossier TH Data.", demo_in_full = "Désolé, vous ne pouvez pas ouvrir une sauvegarde de démonstration avec les fichiers de jeu complet chargés. Veuillez mettre à jour votre paramètre de dossier TH Data." } } -- Confirmation dialog confirmation = { needs_restart = "Changer ce paramètre va nécessiter un redémarrage de CorsixTH. Tout progrès non sauvegardé sera perdu. Voulez-vous vraiment faire cela ?", abort_edit_room = "Vous êtes actuellement en train de construire ou d'éditer une pièce. Si tous les objets requis sont placés, elle sera validée, mais sinon elle sera détruite. Continuer ?", maximum_screen_size = "La taille de l'écran que vous avez entrée est supérieure à 3000 x 2000. Des plus hautes résolutions sont possibles, mais il faudra un meilleur matériel afin de maintenir un taux de trame jouable. Voulez-vous vraiment continuer ?", remove_destroyed_room = "Souhaitez-vous supprimer la salle pour %d $ ?", replace_machine_extra_info = "La nouvelle machine aura une puissance de %d (actuellement %d).", restart_mapeditor = "Voulez-vous vraiment relancer l'éditeur de cartes ?", quit_mapeditor = "Voulez-vous vraiment quitter l'éditeur de cartes ?", very_old_save = "Il y a eu de nombreuses mises à jour du jeu depuis que vous avez commencé. Pour être sûr que toutes les fonctionnalités fonctionnent comme prévu, voudriez-vous recommencer ce niveau maintenant ?//".. "Votre ancienne sauvegarde ne sera pas supprimée à moins que vous ne l'écrasiez." } -- Information dialog information = { custom_game = "Bienvenue dans CorsixTH. Amusez-vous bien avec cette carte personnalisée !", no_custom_game_in_demo = "Désolé, mais dans la version démo vous ne pouvez jouer avec aucune des cartes personnalisées.", cannot_restart = "Malheureusement cette partie personnalisée a été sauvegardée avant que la fonctionnalité de redémarrage soit implémentée.", very_old_save = "Il y a eu beaucoup de mises à jour du jeu depuis que vous avez commencé ce niveau. Pour être sûr que tout fonctionne comme prévu, pensez à recommencer le niveau.", cheat_not_possible = "Vous ne pouvez pas utiliser ce code de triche dans ce niveau.", level_lost = { "Quelle poisse ! Vous avez raté le niveau. Vous ferez mieux la prochaine fois !", "Voilà pourquoi vous avez perdu : ", reputation = "Votre réputation est tombée en dessous de %d.", balance = "Votre solde bancaire est tombé en dessous %d.", percentage_killed = "Vous avez tué plus de %d pourcents de vos patients.", cheat = "J'espère que vous n'avez pas cliqué sur le bouton \" Perdre le niveau \" par accident !" } } tooltip.information = { close = "Fermer cette boîte de dialogue." } -- "Tip of the day" window totd_window = { tips = { "Chaque hôpital a besoin d'un bureau de réception et d'un cabinet de médecine générale. Après, tout dépend du type de patients qui visitent votre hôpital. Une pharmacie est toujours un bon choix malgré tout.", "Les machines telles que le Gonflage ont besoin de maintenance. Embauchez un ou deux agents de maintenance pour réparer vos machines, ou vous risquerez d'avoir des blessés parmi le personnel ou les patients.", "Après un certain temps, vos employés seront fatigués. Pensez à construire une salle de repos où ils pourront se détendre.", "Placez suffisamment de radiateurs pour garder vos employés et patients au chaud, ou ils deviendront mécontents. Utilisez la carte de la ville pour localiser les endroits de votre hôpital qui nécessitent plus de chauffage.", "Le niveau de compétence d'un docteur influence beaucoup la qualité et la rapidité de ses diagnostics. Utilisez un médecin expérimenté comme généraliste et vous n'aurez plus besoin d'autant de salles de diagnostics.", "Les internes et les médecins peuvent augmenter leurs compétences auprès d'un consultant dans la salle de formation. Si le consultant a des qualifications particulières (chirurgien, psychiatre ou chercheur), il transférera ses connaissances à ses élèves.", "Avez-vous essayé d'entrer le numéro d'urgence Européen (112) dans le fax ? Vérifiez que vous avez du son !", "Vous pouvez ajuster certains paramètres tels que la résolution et la langue dans la fenêtre d'options accessible à la fois depuis le menu principal et pendant le jeu.", "Vous avez choisi une autre langue que l'anglais, mais des textes en anglais s'affichent un peu partout ? Aidez-nous à traduire les textes manquants dans votre langue !", "L'équipe de CorsixTH cherche du renfort ! Vous êtes intéressé pour coder, traduire ou créer des graphismes pour CorsixTH ? Contactez-nous sur notre serveur Discord, Sub-Reddit ou serveur Matrix. Les liens sont sur notre site internet (CorsixTH.com).", "Si vous rencontrez un bug, n'hésitez pas à nous le signaler à cette adresse : th-issues.corsix.org", "Chaque niveau possède des objectifs qu'il vous faudra remplir pour pouvoir passer au suivant. Vérifiez la fenêtre de statuts pour voir votre progression dans les objectifs du niveau.", "Si vous voulez éditer ou détruire une pièce, vous pouvez le faire avec le bouton d'édition situé sur la barre d'outils inférieure.", "Dans un groupe de patients en attente, vous pouvez rapidement découvrir lesquels attendent une pièce particulière en survolant cette pièce avec votre curseur de souris.", "Cliquez sur la porte d'une pièce pour visualiser sa file d'attente. Vous pouvez faire des réglages très utiles ici, comme réorganiser la file d'attente ou envoyer un patient vers une autre pièce.", "Le personnel mécontent vous demandera des augmentations de salaires fréquemment. Assurez-vous de leur offrir un environnement de travail confortable pour éviter cela.", "Les patients auront soif en attendant dans votre hôpital, encore plus si vous augmentez le chauffage ! Placez des distributeurs automatiques dans les points stratégiques pour un revenu d'appoint.", "Vous pouvez interrompre le processus de diagnostic d'un patient et proposer un traitement, si vous avez déjà rencontré la maladie. Notez que cela peut accroître le risque d'erreur de traitement, et provoquer la mort du patient.", "Les urgences peuvent être une bonne source de revenus additionnels, à condition que vous ayez les capacités suffisantes pour traiter les patients à temps.", "Saviez-vous que vous pouvez affecter des Agents d'entretien à des parcelles spécifiques ? Cliquez simplement sur le texte 'Toutes les parcelles' dans leur profil du personnel pour les parcourir !", }, previous = "Astuce précédente", next = "Astuce suivante" } tooltip.totd_window = { previous = "Afficher l'astuce précédente", next = "Afficher l'astuce suivante" } -- Debug patient window tooltip.debug_patient_window.item = "Créer un patient de débogage avec %s" debug_patient_window = { caption = "Patient de test" } -- Cheats window cheats_window = { caption = "Triches", warning = "Attention : vous n'aurez aucun point de bonus à la fin du niveau si vous trichez !", cheated = { no = "Triches utilisées : non", yes = "Triches utilisées : oui" }, cheats = { money = "Plus d'argent", all_research = "Toutes les recherches", emergency = "Créer une situation d'urgence", vip = "Créer un VIP", earthquake = "Créer un tremblement de terre", create_patient = "Créer un patient", end_month = "Fin du mois", end_year = "Fin de l'année", lose_level = "Perdre le niveau", win_level = "Gagner le niveau", epidemic = "Reproduire des patients contagieux", toggle_infected = "Faire apparaître des patients contagieux.", increase_prices = "Augmenter les prix", decrease_prices = "Diminuer les prix", reset_death_count = "Remettre à zéro le nombre de décès", toggle_epidemic = "Active la possibilité d'épidémies", show_infected = "Montrer les icônes des infectés", toggle_earthquake = "Activer les tremblements de terre", max_reputation = "Réputation de l'hôpital au maximum", repair_all_machines = "Réparer toutes les machines", toggle_invulnerable_machines = "Machines inusables on/off", }, close = "Fermer" } tooltip.cheats_window = { close = "Fermer le dialogue de triches", cheats = { money = "Ajoute $10.000 à votre solde bancaire.", all_research = "Termine toutes les recherches.", emergency = "Crée une situation d'urgence.", vip = "Crée un VIP.", earthquake = "Crée un tremblement de terre.", create_patient = "Crée un patient au bord de la carte.", end_month = "Va directement à la fin du mois.", end_year = "Va directement à la fin de l'année.", lose_level = "Vous fait perdre le niveau actuel.", win_level = "Vous fait gagner le niveau actuel.", epidemic = "Crée un patient contagieux qui peut causer une épidémie.", toggle_infected = "Bascule les icônes infectés pour l'épidémie, découverte active.", increase_prices = "Augmenter tous les prix de 50% (max. 200%)", decrease_prices = "Diminuer tous les prix de 50% (min. 50%)", reset_death_count = "Remettre à zéro le nombre de décès à l'hôpital", toggle_epidemic = "Activer/Désactiver la possibilité d'épidémies", show_infected = "Montrer/Cacher les icônes des infectés pour les épidémies découvertes et actives", toggle_earthquake = "Activer/Désactiver les tremblements de terre", max_reputation = "Augmenter la réputation de l'hôpital au maximum", repair_all_machines = "Réparer toutes les machines dans l'hôpital", toggle_invulnerable_machines = "Activer/Désactiver l'usure des machines lors de leur utilisation", } } -- Introduction Texts introduction_texts = { demo = "Bienvenue dans l'hôpital de démonstration !// " .. "Malheureusement, la version démo ne contient que ce niveau. Malgré tout, il y a assez à faire ici pour vous occuper un moment !" .. "Vous allez rencontrer différentes maladies qui nécessitent des salles pour les soigner. De temps en temps, des urgences peuvent se produire. Et vous aurez besoin d'une salle de recherche pour trouver des nouvelles salles. " .. "Votre but est de gagner 100,000$, de faire monter la valeur de votre hôpital à 70,000$ et d'obtenir une réputation de 700, tout en ayant soigné au moins 75% de vos patients. " .. "Veillez à ce que votre réputation ne tombe pas en dessous de 300 et de ne pas tuer plus de 40% de vos patients, ou vous perdrez.//" .. "Bonne chance !", level1 = "Bienvenue dans votre premier hôpital !//Démarrez l'activité en installant un bureau de réception et " .. "en construisant un cabinet de médecine générale. Embauchez une réceptionniste et un médecin. Il vous " .. "suffit d'attendre des admissions. Il serait bon de construire un cabinet de psychiatrie et d'embaucher " .. "un médecin formé dans ce domaine. Une pharmacie et une infirmière sont également indispensables pour soigner " .. "les patients. Attention aux cas d'encéphalantiasis : une salle de gonflage suffit pour traiter cette maladie. " .. "Il vous faut soigner 10 personnes et vous assurer que votre réputation ne tombe pas en-dessous de 200.", level8 = "A vous de gérer l'hôpital le plus efficace et le plus rentable possible.//Les gens du coin sont bien nantis alors " .. "pompez-leur tout le fric que vous pourrez. Soigner les gens c'est bien joli mais vous avez BESOIN de l'argent que ça " .. "rapporte. Ratissez tous ces malades ! Amassez un joli paquet de $300.000 pour terminer ce niveau.", level12 = "Côté défi, vous allez être servi ! Impressionné par votre succès, le Ministère veut vous assigner une mission de confiance. " .. "Vous devrez construire un autre hôpital de pointe, gagner des sommes scandaleuses et vous faire une réputation fabuleuse. " .. "Vous devrez également acheter tout le terrain possible, soigner toutes les maladies (nous avons bien dit TOUTES) et remporter " .. "toutes les récompenses. Alors, heureux ? Gagnez $650.000, soignez 750 personnes et affichez une réputation de 800 pour gagner ce niveau.", level13 = "Votre incroyable talent en tant que directeur d'hôpital a attiré l'attention de la Division Spéciale Secrète des " .. "Services Spéciaux Secrets. On vous propose un bonus : il y a un hôpital infesté de rats qui réclame un Nettoyeur efficace. " .. "Vous devez descendre le plus de rats possible avant que les agents de maintenance fassent leur boulot. Vous pensez y arriver ?", level14 = "Et encore un défi ! Eh oui, voici l'hôpital-surprise ! Si vous réussissez cette épreuve, vous serez le gagnant des gagnants. " .. "Mais ça ne sera pas du gâteau car vous n'aviez encore rien vu de pareil... Bonne chance !", level17 = "Un bon conseil : veillez à votre réputation car c'est elle qui vous garantira une clientèle. Si vous ne tuez pas trop de " .. "gens et les gardez raisonnablement satisfaits, vous n'aurez pas trop de difficultés à ce niveau. //A vous de jouer, maintenant. " .. "Bonne chance et tout ça, quoi !" } -- Calls Dispatcher Dialog calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d appels; %d assignés", staff = "%s - %s", watering = "Arrose @ %d,%d", repair = "Répare %s", close = "Fermer" } tooltip.calls_dispatcher = { task = "Liste des tâches - cliquez sur une tâche pour ouvrir la fenêtre du membre du personnel à qui elle est assignée et aller jusqu'à l'endroit où a lieu la tâche.", assigned = "Cette case est cochée si la tâche est assignée à quelqu'un.", close = "Ferme la boîte de dialogue de répartitions des tâches" } machine_menu = { percentage = "%d%", machine = "Machine", status = "Statut", remaining_strength = "Restant", total_strength = "Résistance", ratio = "Ratio", close = "Fermer", } tooltip.machine_menu = { sort = "Cliquer pour trier selon cette valeur.", machine = "Liste des machines – Cliquer pour ouvrir la fenêtre de la machine et se rendre à son emplacement.", smoking = "Cette case est cochée si la machine risque d'exploser. Cliquer pour acheter une nouvelle machine.", assigned = "Cette case est cochée si un agent d'entretien est affecté à la réparation de la machine correspondante. Cliquer pour afficher l'agent assigné.", remaining_strength = "Cette valeur indique la résistance restante de la machine.", total_strength = "Cette valeur indique la résistance totale de la machine.", ratio = "Cette valeur indique le rapport entre la résistance restante et la résistance totale.", header = { smoking = "Indicateur de danger", assigned = "Indicateur d'affectation à la réparation", machine = "Nom de la machine", remaining_strength = "Résistance restante des machines.", total_strength = "Résistance totale des machines.", ratio = "Pourcentage de résistance restante par rapport à la résistance totale des machines.", status = "Statuts des machines.", }, close = "Fermer la fenêtre de la liste des machines.", } adviser_history = { message = "Messages", close = "Fermer", } tooltip.adviser_history = { delete_message = "Cliquer pour supprimer ce message", message = "Liste des messages du conseiller - Les messages les plus récents sont en tête de liste", header = { message = "Messages du conseiller", delete_message = "Cliquer pour supprimer tous les messages" }, close = "Fermer la fenêtre Récapitulatif du conseiller", } -- Updates update_window = { caption = "Une mise à jour est disponible !", new_version = "Nouvelle version :", current_version = "Version actuelle :", download = "Aller à la page de téléchargement", ignore = "Sauter et aller au menu principal" } tooltip.update_window = { download = "Accédez à la page de téléchargement pour la toute dernière version de CorsixTH", ignore = "Ignorer cette mise à jour pour l'instant. Vous serez averti à nouveau lorsque vous ouvrez CorsixTH de nouveau" } map_editor_window = { pages = { inside = "Intérieur", outside = "Extérieur", foliage = "Feuillage", hedgerow = "Haie", pond = "Étang", road = "Route", north_wall = "Mur nord", west_wall = "Mur ouest", helipad = "Héliport", delete_wall = "Suppr. des murs", parcel = "Parcelle %d", parcel_0 = "Parcelle 0", parcel_1 = "Parcelle 1", parcel_2 = "Parcelle 2", parcel_3 = "Parcelle 3", parcel_4 = "Parcelle 4", parcel_5 = "Parcelle 5", parcel_6 = "Parcelle 6", parcel_7 = "Parcelle 7", parcel_8 = "Parcelle 8", parcel_9 = "Parcelle 9", camera_1 = "Caméra 1", camera_2 = "Caméra 2", camera_3 = "Caméra 3", camera_4 = "Caméra 4", heliport_1 = "Héliport 1", heliport_2 = "Héliport 2", heliport_3 = "Héliport 3", heliport_4 = "Héliport 4", paste = "Coller la zone", set_parcel_tooltip = "Choissisez un chiffre et appuyez sur Entrée.", set_parcel = "Choisir le chiffre de la parcelle", }, checks = { spawn_points_and_path = "Attention: les patients ne peuvent pas arriver à l'hôpital. Ils ont besoin de carreaux 'route' ou carreaux gris 'dehors' au bord de la carte et un chemin avec ces carreaux jusqu'à l'entrée de l'hôpital." } } menu.player_count = "COMPTE DE JOUEURS" warnings.levelfile_variable_is_deprecated = "Remarque: Le niveau '%s' contient une définition de variable obsolète dans le fichier de niveau. '%LevelFile' a été renommé '%MapFile'. Veuillez aviser le créateur de la carte pour mettre à jour le niveau." warnings.newersave = "Avertissement, vous avez chargé une sauvegarde d'une version plus récente de CorsixTH. Il n'est pas recommandé de continuer car des plantages peuvent survenir. Jouez à vos propres risques." hotkeys_file_err = { file_err_02 = ", ou utilisez l'option de ligne de commande --hotkeys-file=nomdufichier pour spécifier un fichier inscriptible. Pour référence, l'erreur lors du chargement du fichier de raccourcis était : ", file_err_01 = "Impossible de charger le fichier hotkeys.txt. Assurez-vous que CorsixTH a l'autorisation de lecture/écriture " } hotkey_window = { button_accept = "Accepter", button_back = "Retour", button_cancel = "Annuler", button_defaults = "Réinit. aux valeurs par défaut", button_gameSpeedKeys = "Touches de vitesse du jeu", button_recallPosKeys = "Touches de rappel de position", button_toggleKeys = "Activer/désactiver les touches", caption_main = "Définir les touches de raccourci", caption_panels = "Touches des panneaux", global_cancel = "Annuler", global_cancel_alt = "Annuler Alt", global_confirm = "Confirmer", global_confirm_alt = "Confirmer Alt", global_connectDebugger = "Débogueur", global_exitApp = "Quitter l'application", global_fullscreen_toggle = "Plein écran", global_releaseMouse = "Relâcher la souris", global_resetApp = "Réinitialiser l'application", global_runDebugScript = "Script de débogage", global_screenshot = "Capture d'écran", global_showLuaConsole = "Console Lua", global_stop_movie_alt = "Arrêter le film", global_window_close_alt = "Fermer la fenêtre", ingame_gamespeed_max = "Max", ingame_gamespeed_normal = "Normale", ingame_gamespeed_slower = "Plus lente", ingame_gamespeed_slowest = "La plus lente", ingame_gamespeed_speedup = "Accélérer", ingame_gamespeed_thensome = "Et encore plus", ingame_jukebox = "Jukebox", ingame_loadMenu = "Charger une partie", ingame_openFirstMessage = "Message du niveau", ingame_panel_bankManager = "Gestionnaire de la banque", ingame_panel_bankStats = "Statistiques de la banque", ingame_panel_buildRoom = "Construire une salle", ingame_panel_casebook = "Dossier médical", ingame_panel_casebook_alt = "Dossier médical 2", ingame_panel_casebook_alt02 = "Dossier médical 3", ingame_panel_charts = "Graphiques", ingame_panel_editRoom = "Éditer la salle", ingame_panel_furnishCorridor = "Meubler le couloir", ingame_panel_hireStaff = "Embaucher du personnel", ingame_panel_map_alt = "Carte de la ville 2", ingame_panel_policy = "Politique", ingame_panel_research = "Recherche", ingame_panel_research_alt = "Recherche 2", ingame_panel_staffManage = "Gérer le personnel", ingame_panel_status = "Statut", ingame_panel_townMap = "Carte de la ville", ingame_panel_machineMenu = "Menu des machines", ingame_panel_adviserHistory = "Récapitulatif du conseiller", ingame_toggleTransparent = "Transparent on-off", ingame_sellPickedUpItem = "Vendre l'objet sélectionné", ingame_patient_gohome = "Renvoyer au domicile", ingame_pause = "Pause", ingame_poopLog = "Journal des événements", ingame_poopStrings = "Extraire la traduction", ingame_quickLoad = "Chargement rapide", ingame_quickSave = "Sauvegarde rapide", ingame_quitLevel = "Quitter le niveau", ingame_recallPosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_reset_zoom = "Réinitialiser le zoom", ingame_restartLevel = "Redémarrer le niveau", ingame_rotateobject = "Faire pivoter l'objet", ingame_saveMenu = "Sauvegarder une partie", ingame_scroll_down = "Défiler vers le bas", ingame_scroll_left = "Défilement gauche", ingame_scroll_right = "Défilement droite", ingame_scroll_shift = "Défilement rapide", ingame_scroll_up = "Défiler vers le haut", ingame_setTransparent = "Transparent", ingame_showCheatWindow = "Menu de triche", ingame_showmenubar = "Afficher la barre de menu", ingame_storePosition_0 = "10", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_toggleAdvisor = "Conseiller", ingame_toggleAnnouncements = "Annonces", ingame_toggleInfo = "Info", ingame_toggleMusic = "Musique", ingame_toggleSounds = "Sons", ingame_zoom_in = "Zoom avant", ingame_zoom_in_more = "Zoom avant plus", ingame_zoom_out = "Zoom arrière", ingame_zoom_out_more = "Zoom arrière plus", panel_altPanelKeys = "Touches de panneaux alternatifs", panel_debugKeys = "Touches de débogage", panel_gameSpeedKeys = "Touches de vitesse du jeu", panel_generalInGameKeys = "Touches générales en jeu", panel_globalKeys = "Touches globales", panel_recallPosKeys = "Touches de rappel de position", panel_scrollKeys = "Touches de défilement", panel_storePosKeys = "Touches de stockage de position", panel_toggleKeys = "Touches Activer/Désactiver", panel_zoomKeys = "Touches de zoom" } tooltip.hotkey_window = { button_accept = "Accepter et enregistrer les assignations des touches de raccourci", button_recallPosKeys = "Définir les touches pour stocker et rappeler les positions de la caméra", button_defaults = "Réinitialiser toutes les touches de raccourci aux valeurs par défaut du programme", button_cancel = "Annuler l'assignation et revenir au menu des options", button_back_02 = "Retourner à la fenêtre principale des touches de raccourci. Les touches de raccourci modifiées dans cette fenêtre peuvent y être validées", caption_panels = "Définir les touches des panneaux", button_gameSpeedKeys = "Définir les touches pour contrôler la vitesse du jeu", panel_globalKeys = "Définir les touches globales", panel_generalInGameKeys = "Définir les touches générales en jeu", panel_scrollKeys = "Définir les touches de défilement de l'écran", panel_zoomKeys = "Définir les touches pour zoomer et dézoomer", panel_toggleKeys = "Définir les touches pour activer/désactiver", panel_debugKeys = "Définir les touches pour le débogage", } level_progress.hospital_value_enough = "Maintenez la valeur de votre hôpital au-dessus de %d et gérez vos autres problèmes pour remporter le niveau." level_progress.cured_enough_patients = "Vous avez guéri suffisamment de patients, mais vous devez améliorer votre hôpital pour remporter le niveau." -- Off you go, warnings -- Looking at the code it's doesn't seem to be needed, but it's shown as missing by the extract string process disease_discovered_patient_choice.need_to_employ = "Employez un(e) %s pour pouvoir gérer cette situation." multiplayer.everyone_failed = "Tout le monde a échoué à satisfaire le dernier objectif. Donc, tout le monde peut continuer à jouer !" multiplayer.players_failed = "Le(s) joueur(s) suivant(s) n'ont pas réussi à atteindre le dernier objectif :" original_credits[299] = " " original_credits[300] = " " original_credits[301] = ":Opérations" original_credits[302] = "," original_credits[303] = "Steve Fitton" original_credits[304] = " " original_credits[305] = " " original_credits[306] = " " original_credits[307] = ":Administration de la société" original_credits[308] = "," original_credits[309] = "Audrey Adams" original_credits[310] = "Annette Dabb" original_credits[311] = "Emma Gibbs" original_credits[312] = "Lucia Gobbo" original_credits[313] = "Jo Goodwin" original_credits[314] = "Sian Jones" original_credits[315] = "Kathy McEntee" original_credits[316] = "Louise Ratcliffe" original_credits[317] = " " original_credits[318] = " " original_credits[319] = " " original_credits[320] = ":Gestion de la société" original_credits[321] = "," original_credits[322] = "Les Edgar" original_credits[323] = "Peter Molyneux" original_credits[324] = "David Byrne" original_credits[325] = " " original_credits[326] = " " original_credits[327] = ":Toute l'équipe de Bullfrog Productions" original_credits[328] = " " original_credits[329] = " " original_credits[330] = " " original_credits[331] = ":Remerciements spéciaux à" original_credits[332] = "," original_credits[333] = "Tous ceux de l'hôpital de Frimley Park" original_credits[334] = " " original_credits[335] = ":Particulièrement" original_credits[336] = "," original_credits[337] = "Beverley Cannell" original_credits[338] = "Doug Carlisle" original_credits[339] = " " original_credits[340] = " " original_credits[341] = " " original_credits[342] = ":Continuez à réfléchir" original_credits[343] = " " original_credits[344] = " " original_credits[345] = " " original_credits[346] = " " original_credits[347] = " " original_credits[348] = " " original_credits[349] = " " original_credits[350] = " " original_credits[351] = " " original_credits[352] = " " original_credits[353] = " " original_credits[354] = " " original_credits[355] = " " original_credits[356] = " " original_credits[357] = " " original_credits[358] = " " original_credits[359] = " " original_credits[360] = " " original_credits[361] = "." CorsixTH-0.70.0/CorsixTH/Lua/languages/german.lua000066400000000000000000001571121522247547500214730ustar00rootroot00000000000000 --[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- Thanks to Michael "michederoide" Armbruster for some additional corrections! -- Note: This file contains UTF-8 text. Make sure your editor is set to UTF-8. Font("cp437") Language("Deutsch", "German", "de", "ger", "deu") Inherit("english") Inherit("original_strings", 2) IsArabicNumerals(true) ------------------------------- OVERRIDE ---------------------------------- diseases.broken_wind.cure = " Therapie: Eine spezielle Mixtur aus der Pharma-Theke sorgt für Windstille." -- original string mentioned inflation, which is plain wrong. diseases.corrugated_ankles.cure = "Therapie: Eine Schwester verabreicht dem Patienten ein leicht toxisches Gebräu, welches das Bein wieder strafft." -- original string mentioned applying a cast, which is wrong and misleads people to think of fracture clinic fax.vip_visit_query.vip_name = "%s hat den Wunsch geäußert, Ihr Krankenhaus besuchen zu wollen." -- text was missing fax.vip_visit_query.choices.invite = "Lassen Sie dem V.I.P. eine offizielle Einladung zukommen." -- text was ferusing instead of inviting fax.vip_visit_query.choices.refuse = "Speisen Sie den V.I.P. mit einer Entschuldigung ab." -- text was missing fax.vip_visit_result.vip_remarked_name = "%s hat Ihr Krankenhaus besucht." fax.vip_visit_result.cash_grant = "Ihnen wurde ein Geldbonus von %d gewährt." fax.vip_visit_result.rep_boost = "Ihr Ruf in der Öffentlichkeit hat sich gebessert." fax.vip_visit_result.rep_loss = "Ihr Ruf hat gelitten." fax.vip_visit_result.close_text = "Danke, dass Sie unser Krankenhaus besucht haben." -- text was missing fax.emergency.choices.accept = "Ja, ich übernehme diesen Notfall!" fax.emergency.choices.refuse = "Nein, ich weigere mich diesen Notfall zu übernehmen!" fax.emergency.location = "Wir haben einen Notruf aus dem %s erhalten." -- wrong spelling fax.emergency.num_disease = "Es handelt sich um %d Personen mit %s, die sofort behandelt werden müssen." -- wrong spelling fax.emergency.num_disease_singular = "Es handelt sich um eine Person mit %s, die sofort behandelt werden muss." -- wrong spelling fax.emergency.cure_possible = "Wir können diesen Notfall übernehmen." fax.emergency.cure_not_possible_build_and_employ = "Um den Notfall übernehmen zu können, müssen wir eine %s bauen und zusätzliches Personal einstellen." fax.emergency.cure_not_possible_build = "Um den Notfall übernehmen zu können, müssen wir eine %s bauen." fax.emergency.cure_not_possible_employ = "Um den Notfall übernehmen zu können, müssen wir zusätzliches Personal einstellen." fax.emergency.cure_not_possible = "Wir können diesen Notfall im Moment keinesfalls übernehmen." fax.emergency.bonus = "Wenn wir keinen Patienten verlieren, erhalten wir einen Geldbonus von maximal %d. Sollten wir es jedoch vermasseln, wird unser Ruf Schaden nehmen." fax.emergency_result.close_text = "Danke, ich habe gerne geholfen." fax.emergency_result.earned_money = "Sie erhalten von maximal %d einen Geldbonus von %d." fax.emergency_result.saved_people = "Vielen Dank für Ihre Hilfe! Sie haben %d von insgesamt %d gerettet." fax.disease_discovered_patient_choice.choices.send_home = "Schicken Sie den Patienten nach Hause." -- wrong text for button fax.disease_discovered_patient_choice.choices.wait = "Sorgen Sie dafür, dass der Patient eine Weile im Krankenhaus wartet." -- wrong text for button fax.disease_discovered_patient_choice.choices.research = "Schicken Sie den Patienten in die Forschungsabteilung." -- wrong text for button fax.disease_discovered_patient_choice.need_to_build_and_employ = "Um diese Krankheit heilen zu können, müssen wir eine %s bauen und zusätzliches Personal einstellen." -- text was missing fax.disease_discovered_patient_choice.need_to_build = "Um diese Krankheit heilen zu können, müssen wir eine %s bauen." -- text was missing fax.disease_discovered_patient_choice.need_to_employ = "Um diese Krankheit heilen zu können, müssen wir zusätzliches Personal einstellen." fax.disease_discovered_patient_choice.can_not_cure = "Im Moment können wir diese Krankheit nicht behandeln." fax.disease_discovered_patient_choice.disease_name = "Unser Ärzteteam hat herausgefunden, an was für einer Art von %s der Patient leidet." -- text was missing fax.disease_discovered_patient_choice.what_to_do_question = "Was sollen wir jetzt mit dem Patienten anstellen?" -- text was missing fax.disease_discovered_patient_choice.guessed_percentage_name = "Unser Ärzteteam ist sich zu %d Prozent sicher, dass der Patient an einer Form von %s leidet." -- text was missing fax.disease_discovered.close_text = "Eine neue Krankheit wurde entdeckt." fax.disease_discovered.can_cure = "Wir können diese Krankheit problemlos behandeln." -- text was missing fax.disease_discovered.need_to_build_and_employ = "Um diese Krankheit heilen zu können, müssen wir eine %s bauen und zusätzliches Personal einstellen." -- text was missing fax.disease_discovered.need_to_build = "Um diese Krankheit heilen zu können, müssen wir eine %s bauen." -- text was missing fax.disease_discovered.need_to_employ = "Um diese Krankheit heilen zu können, müssen wir zusätzliches Personal einstellen." fax.disease_discovered.discovered_name = "Unser Ärzteteam hat einen Fall von %s entdeckt." fax.diagnosis_failed.choices.send_home = "Schicken Sie den Patienten nach Hause." -- wrong text for button fax.diagnosis_failed.choices.take_chance = "Nehmen Sie die wahrscheinliche Möglichkeit zur Heilung wahr." -- wrong text for button fax.diagnosis_failed.choices.wait = "Der Patient soll eine Weile im Krankenhaus warten, wir stellen bald neue Diagnosearten zur Verfügung." fax.diagnosis_failed.situation = "Dieser Patient hat all unsere Diagnosegeräte zum qualmen gebracht. Trotzdem wissen wir immer noch nicht genau, was ihm fehlt." -- text was missing fax.diagnosis_failed.what_to_do_question = "Was sollen wir jetzt mit dem Patienten anstellen?" -- wrong spelling fax.diagnosis_failed.partial_diagnosis_percentage_name = "Unser Ärzteteam ist sich zu %d Prozent sicher, dass der Patient an einer Form von %s leidet." fax.epidemic.choices.declare = "Wir melden die Epidemie und zahlen die Geldstrafe!" fax.epidemic.choices.cover_up = "Wir versuchen die Epidemie einzudämmen bevor sie das Krankenhaus verlässt!" fax.epidemic.declare_explanation_fine = "Wenn wir die Epidemie melden, zahlen wir eine Strafe von %d und unser Ruf leidet. Dafür werden die Patienten automatisch geimpft." -- extend to mention reputation hit and automatic vaccination fax.epidemic.cover_up_explanation_1 = "Wenn wir versuchen, die Epidemie zu vertuschen, müssen wir die Infizierten heilen, bevor das Gesundheitsministerium davon Wind bekommt." fax.epidemic.cover_up_explanation_2 = "Wenn der Gesundheitsinspektor die Vertuschungsaktion bemerkt, wird das Konsequenzen haben." fax.epidemic.disease_name = "Unser Ärzteteam hat eine hochgradig ansteckende Form von %s entdeckt!" fax.epidemic_result.close_text = "Hurra!" fax.epidemic_result.failed.part_1_name = "Ihr Versuch diese %s-Epidemie zu vertuschen ist fehlgeschlagen! Sie konnten nicht verhindern," fax.epidemic_result.failed.part_2 = "dass sich die Epidemie in Ihrem ganzen Krankenhaus ausbreitet." fax.epidemic_result.succeeded.part_1_name = "Dem Gesundheitsinspektor ist zu Ohren gekommen, dass Sie mit einem schweren Fall von %s zu kämpfen haben." fax.epidemic_result.succeeded.part_2 = "Allerdings hat er dafür keine Beweise finden können." fax.epidemic_result.compensation_amount = "Die Behörden haben beschlossen, Sie für die entstandene Rufschädigung mit %d zu entschädigen." fax.epidemic_result.fine_amount = "Die Behörden haben den nationalen Notstand ausgerufen und sie zu einer Geldstrafe von %d verurteilt." fax.epidemic_result.rep_loss_fine_amount = "Die Zeitungen haben Wind von der Epidemie bekommen und ziehen Ihren Ruf in den Dreck. Darüber hinaus hat man zu einer Geldstrafe von %d verurteilt." fax.epidemic_result.hospital_evacuated = "Die Behörden haben keine andere Wahl, als Ihr Krankenhaus zu evakuieren." dynamic_info.patient.actions.dying = "Ins Jenseits befördert!" -- wrong verb case dynamic_info.patient.actions.epidemic_vaccinated = "Ich bin nicht mehr infiziert." adviser.research.drug_fully_researched = "Sie haben die Effektivität Ihres %s-Medikaments auf 100% gesteigert." -- grammatical error in original tooltip.graphs.reputation = "Ruf ein- und ausschalten" -- original mentioned hospital value, while it's actually reputation. staff_title.researcher = "Forscher" -- one of the most annoying (since prominent) wrong strings in original bank_manager.insurance_owed = "Zahlungen von Vers." -- original was too long graphs.deaths = "Todesfälle" -- origin was too long insurance_companies[7] = "Leben-und-Tod KG" -- %% in original string (maybe this was rendered as &) object.skeleton = "Skelett" -- second most annoying mistake in german translation tooltip.staff_list.detail = "Aufmerksamkeit" -- was translated as an imperative tooltip.staff_list.surgeon_train = "Wurde zu %d%% zum Chirurgen ausgebildet." -- the three strings made no sense grammatically tooltip.staff_list.psychiatrist_train = "Wurde zu %d%% zum Psychiater ausgebildet." tooltip.staff_list.researcher_train = "Wurde zu %d%% zum Forscher ausgebildet." -- tooltip.staff_list.next_person, prev_person is rather next/prev page (also in english) tooltip.staff_list.next_person = "Zur nächsten Seite blättern" tooltip.staff_list.prev_person = "Zur vorherigen Seite blättern" tooltip.queue_window.inc_queue_size = "Warteschlange vergrößern" tooltip.queue_window.dec_queue_size = "Warteschlange verkleinern" -- Improve tooltips in staff window to mention hidden features tooltip.staff_window.face = "Gesicht dieser Person - klicken, um das Personal-Management zu öffnen" tooltip.staff_window.center_view = "Linksklick, um zur Person zu springen, Rechtsklick um durch das Personal zu blättern" -- These strings are missing in some versions of TH (unpatched?) confirmation.restart_level = "Sind Sie sicher, dass Sie das aktuelle Level von vorne beginnen möchten?" -- reported as missing, although they are only in OVERRIDE section of english.lua level_progress.hospital_value_enough = "Halten Sie den Wert des Krankenhauses über %d und kümmern Sie sich um ihre anderen Probleme um das Level zu gewinnen." level_progress.cured_enough_patients = "Sie haben genug Patienten geheilt, aber die Qualität des Krankenhauses muss zunehmen um das Level zu gewinnen." -- multiplayer.players_failed = "Der/die folgende(n) Spieler hat/haben das letzte Ziel nicht erreicht:" multiplayer.everyone_failed = "Alle haben das letzte Ziel nicht erreicht. Also können alle weiterspielen!" -- disease_discovered_patient_choice.need_to_employ = "Stellen Sie eine(n) %s ein um diese Situation lösen zu können." -- remove invisible hyphens. unfortunately it is impossible to fix the wrong case, since -- the case determines the font policy = { diag_termination = "diagnoseerstellung", diag_procedure = "diagnoseverfahren", } -- remove hyphen since it makes it use the wrong font. again, the case cannot be fixed casebook = { deaths = "ablebensfälle", --the ä looks weird as well } -- only drug_improved_1 is in OVERRIDE section of english.lua -- ..._1 is used to prevent 'the the squits' AKA orig [4,30], which is simply "Durchfall" -- so the sane thing is to duplicate drug_improved adviser = { research = { drug_improved = "Die Effektivität Ihres %s-Medikaments wurde von Ihrer Forschungsabteilung verbessert.", drug_improved_1 = "Die Effektivität Ihres %s-Medikaments wurde von Ihrer Forschungsabteilung verbessert.", }, } ------------------------------- NEW STRINGS ------------------------------- date_format = { daymonth = "%1%. %2:months%", } object.litter = "Müll" tooltip.objects.litter = "Müll: Wurde von einem Patienten fallen gelassen, nachdem er keinen Mülleimer fand." object.rathole = "Rattenloch" tooltip.objects.rathole = "Heimat einer Rattenfamilie, die Ihr Krankenhaus dreckig genug fand um hier zu leben." tooltip.fax.close = "Das Fenster schließen, ohne die Nachricht zu löschen" tooltip.message.button = "Linksklick, um die Nachricht zu öffnen" tooltip.message.button_dismiss = "Linksklick, um die Nachricht zu öffnen, Rechtsklick um sie zu entfernen" tooltip.casebook.cure_requirement.hire_staff = "Sie müssen Personal einstellen, um diese Behandlung durchführen zu können" tooltip.casebook.cure_type.unknown = "Sie wissen noch nicht, wie Sie diese Krankheit behandeln können" tooltip.research_policy.no_research = "In dieser Kategorie wird momentan keine Forschung durchgeführt" tooltip.research_policy.research_progress = "Fortschritt in dieser Kategorie: %1%/%2%" menu["player_count"] = "SPIELERZAHL" menu_file = { load = " (%1%) LADEN ", save = " (%1%) SPEICHERN ", restart = " (%1%) NEUSTART", quit = " (%1%) VERLASSEN " } menu_options = { sound = " (%1%) AUDIO ", announcements = " (%1%) DURCHSAGEN ", music = " (%1%) MUSIK ", jukebox = " (%1%) JUKEBOX ", lock_windows = " FENSTER FESTHALTEN ", edge_scrolling = " AM BILDSCHIRMRAND SCROLLEN ", capture_mouse = " MAUSZEIGER EINFANGEN ", adviser_disabled = " (%1%) BERATER ", warmth_colors = " FARBEN FÜR WÄRMEDARSTELLUNG ", wage_increase = " GEHALTSERHÖHUNGEN ", twentyfour_hour_clock = " 24-STUNDEN-UHR ", } menu_options_game_speed = { pause = " (%1%) PAUSE ", slowest = " (%1%) AM LANGSAMSTEN ", slower = " (%1%) LANGSAM ", normal = " (%1%) NORMAL ", max_speed = " (%1%) MAXIMALE GESCHWINDIGKEIT ", and_then_some_more = " (%1%) UND NOCH MEHR ", } menu_options_warmth_colors = { choice_1 = " ROTTÖNE ", choice_2 = " BLAU-GRÜN-ROT ", choice_3 = " GELB-ORANGE-ROT ", } menu_options_wage_increase = { grant = " GEWÄHREN ", deny = " ABLEHNEN ", } -- Add F-keys to entries in charts menu (except briefing), also town_map was added. menu_charts = { bank_manager = " (%1%) BANK-MANAGER ", statement = " (%1%) BILANZ ", staff_listing = " (%1%) PERSONALLISTE ", town_map = " (%1%) ÜBERSICHTSKARTE ", casebook = " (%1%) BEHANDLUNGSMAPPE ", research = " (%1%) FORSCHUNG ", status = " (%1%) STATUS ", graphs = " (%1%) DIAGRAMME ", policy = " (%1%) EINSTELLUNGEN ", } -- The demo does not contain this string menu_file.restart = " NEUSTART " menu_debug = { jump_to_level = " SPRINGE ZU LEVEL ", connect_debugger = " (%1%) ZUM LUA-DEBUG-SERVER VERBINDEN ", transparent_walls = " (%1%) DURCHSICHTIGE WÄNDE ", limit_camera = " KAMERA BEGRENZEN ", disable_salary_raise = " KEINE GEHALTSERHÖHUNGEN ", allow_blocking_off_areas = " ERLAUBE BEREICHE ZU SPERREN ", make_debug_fax = " DEBUG-FAX ERSTELLEN ", make_debug_patient = " DEBUG-PATIENTEN ERSTELLEN ", cheats = " (%1%) CHEATS ", lua_console = " (%1%) LUA-KONSOLE ", debug_script = " (%1%) DEBUG-SKRIPT STARTEN ", calls_dispatcher = " AUFRUF-VERTEILER ", dump_strings = " TEXTE ABSPEICHERN ", dump_gamelog = " (STRG+D) SPIELPROTOKOLL ABSPEICHERN ", map_overlay = " KARTEN-OVERLAY ", sprite_viewer = " SPRITE-BETRACHTER ", } menu_debug_overlay = { none = " KEIN ", flags = " FLAGS ", positions = " POSITION ", heat = " TEMPERATUR ", byte_0_1 = " BYTE 0 & 1 ", byte_floor = " BYTE BODEN ", byte_n_wall = " BYTE N-WAND ", byte_w_wall = " BYTE W-WAND ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " GRUNDSTÜCK ", } menu_player_count = { players_1 = " 1 Spieler ", players_2 = " 2 Spieler ", players_3 = " 3 Spieler ", players_4 = " 4 Spieler ", } adviser = { room_forbidden_non_reachable_parts = "Sie können den Raum hier nicht bauen, da dann Teile des Krankenhauses nicht mehr erreichbar wären.", warnings = { no_desk ="Sie sollten beizeiten mal eine Rezeption bauen und eine Empfangsdame einstellen!", no_desk_1 = "Wenn Sie wollen, dass Patienten in Ihr Krankenhaus kommen, müssen Sie eine Empfangsdame einstellen und eine Rezeption für sie bauen!", no_desk_2 = "Na Klasse, das muss ja ein Weltrekord sein: Fast ein Jahr ohne einen einzigen Patienten! Wenn Sie dieses Krankenhaus weiter leiten wollen, müssen Sie eine Empfangsdame einstellen und eine Rezeption bauen!", no_desk_3 = "Ich glaub ich spinne, fast ein Jahr ist um und Sie haben keine besetzte Rezeption! Wie denken Sie denn, dass die Patienten zu Ihnen finden? Schauen Sie mal zu, dass Sie Ihren Kram auf die Reihe bekommen!", no_desk_4 = "Eine Empfangsdame muss ihren eigenen Arbeitsplatz haben, um die Patienten bei ihrer Ankunft zu begrüßen.", no_desk_5 = "Na, das wurde aber auch Zeit! Sie sollten in Kürze ein paar Patienten hier eintreffen sehen!", no_desk_6 = "Sie haben eine Empfangsdame, also sollten Sie eine Rezeption für sie bauen.", no_desk_7 = "Sie haben die Rezeption gebaut, also wie wäre es damit, eine Empfangsdame einzustellen? Sie werden keine Patienten sehen, bis sie das geregelt haben, wissen Sie?", another_desk = "Sie müssen einen weitere Rezeption für die neue Empfangsdame bauen.", cannot_afford = "Sie haben nicht genügend Geld auf dem Konto, um diese Person einzustellen!", cannot_afford_2 = "Sie haben nicht genügend Geld auf dem Konto, um dies zu kaufen!", falling_1 = "He! Vorsicht mit dem Mauszeiger, jemand könnte sich verletzen!", falling_2 = "Hören Sie schon auf damit, wie würde das Ihnen denn gefallen?", falling_3 = "Autsch, das sah schmerzhaft aus. Ruft einen Arzt!", falling_4 = "Dies ist ein Krankenhaus, kein Vergnügungspark!", falling_5 = "Sie sind nicht hier um Leute umzustoßen. Sie sind krank, okay?", falling_6 = "Dies ist keine Bowlingbahn. Patienten sollten nicht so behandelt werden!", research_screen_open_1 = "Sie müssen eine Forschungseinrichtung errichten, um auf das Forschungsmenü zugreifen zu können.", research_screen_open_2 = "Forschung ist im aktuellen Level nicht verfügbar.", researcher_needs_desk_1 = "Ein Forscher braucht einen Schreibtisch, um daran arbeiten zu können.", researcher_needs_desk_2 = "Ihr Forscher ist froh darüber, dass Sie ihm eine Pause gegönnt haben. Falls Sie vorhatten, dass noch mehr Personal forscht, dann müssen Sie jedem Forscher einen eigenen Schreibtisch zur Verfügung stellen.", researcher_needs_desk_3 = "Jeder Forscher braucht einen eigenen Schreibtisch, an dem er arbeiten kann.", nurse_needs_desk_1 = "Jede Krankenschwester braucht ihren eignen Schreibtisch, an dem sie arbeiten kann.", nurse_needs_desk_2 = "Ihre Krankenschwester ist froh darüber, dass Sie ihr eine Pause gegönnt haben. Falls Sie vorhatten, dass mehr als nur eine Krankenschwester in der Station arbeitet, dann müssen Sie jeder Krankenschwester einen eigenen Schreibtisch zur Verfügung stellen.", low_prices = "Sie berechnen zu wenig für %s. Dadurch bekommen Sie viele Patienten, verdienen aber wenig an jedem einzelnen von ihnen.", high_prices = "Sie berechnen zu viel für %s. Dadurch verdienen Sie kurzfristig viel Geld, aber langfristig vertreiben Sie die damit Patienten aus ihrem Krankenhaus.", fair_prices = "Die Behandlungskosten für %s sind fair und angemessen.", patient_not_paying = "Ein Patient ist gegangen ohne für %s zu bezahlen weil es zu teuer ist!", }, cheats = { th_cheat = "Gratulation, Sie haben die Cheats aktiviert!", roujin_on_cheat = "Roujins Herausforderungs-Cheat aktiviert! Viel Glück ...", roujin_off_cheat = "Roujins Herausforderung deaktiviert.", }, } dynamic_info.patient.actions.no_gp_available = "Wartet darauf, dass Sie eine Allgemeinmedizin bauen" dynamic_info.staff.actions.heading_for = "Geht zu: %s" dynamic_info.staff.actions.fired = "Gefeuert" dynamic_info.staff.actions.vaccine = "Impft einen Patienten" dynamic_info.patient.actions.epidemic_vaccinated = "Ich bin nicht mehr ansteckend" dynamic_info.object.strength_extra_info = "Stärke %d (Regenerierbar zu %d)" -- literal translation would be "erweiterbar" progress_report.free_build = "FREIES SPIEL" fax = { choices = { return_to_main_menu = "Ins Hauptmenü zurückkehren", accept_new_level = "Zum nächsten Level wechseln", decline_new_level = "Noch ein wenig im aktuellen Level weiterspielen", }, emergency = { num_disease_singular = "Hier ist eine Person mit %s, sie braucht sofortige Aufmerksamkeit.", free_build = "Wenn wir erfolgreich sind, wird unser Ruf steigen. Falls wir versagen, wird unser Ruf Schaden nehmen.", }, vip_visit_result = { remarks = { free_build = { "Echt ein hübsches Krankenhaus haben Sie da! War aber wohl nicht so schwer zum Laufen zu bekommen, so ohne finanzielle Beschränkungen, was? Haha ...", "Ich bin zwar kein BWLer, aber ich denke, dieses Krankenhaus könnte ich auch führen. Sie wissen schon, was ich meine.", "Ein gut organisiertes Krankenhaus. Aber hüten Sie sich vor der Finanzkrise! Ach ja ... da müssen Sie sich ja keine Sorgen machen.", } } } } letter = { dear_player = "Hallo %s\n", custom_level_completed = "Gut gemacht! Sie haben alle Ziele dieses eigenen Levels erreicht!", return_to_main_menu = "Möchten Sie ins Hauptmenü zurückkehren, oder weiterspielen?", campaign_level_completed = "Gute Arbeit! Sie haben das Level geschafft. Aber es ist noch nicht vorbei!\n Möchten Sie eine Position im %s Krankenhaus?", campaign_completed = "Unglaublich! Sie haben alle Level abgeschlossen. Nun können Sie sich entspannen und genießen Foren mit Berichten ihrer Heldentaten zu fluten. Viel Glück!", campaign_level_missing = "Entschuldigung, aber das nächste Level dieser Kampagne scheint zu fehlen. (Name: %s)", } install = { title = "----------------------------- CorsixTH-Konfiguration -----------------------------", th_directory = "CorsixTH benötigt einige Dateien des Originalspiels Theme Hospital (oder der Demo davon), um zu funktionieren. Bitte das Installationsverzeichnis von Theme Hospital auswählen.", ok = "OK", exit = "Beenden", cancel = "Abbrechen", } misc.not_yet_implemented = "(noch nicht implementiert)" misc.no_heliport = "Entweder wurden noch keine Krankheiten entdeckt, oder es existiert kein Heliport auf dieser Karte." misc.cant_treat_emergency = "Ihr Krankenhaus kann diesen Notfall nicht behandeln, da die entsprechende Krankheit noch nicht entdeckt wurde. Versuchen Sie es später wieder." main_menu = { new_game = "Kampagne", custom_campaign = "Benutzerdef. Kampagne", -- everything sensible is too long custom_level = "Einzelnes Level", continue = "Spiel fortsetzen", load_game = "Spiel laden", options = "Optionen", map_edit = "Karten-Editor", savegame_version = "Spielstandsversion: ", version = "Version: ", exit = "Verlassen", } tooltip.main_menu = { new_game = "Das erste Level der Kampagne beginnen", custom_campaign = "Eine von Nutzern erstellte Kampagne spielen", custom_level = "Ein Krankenhaus in einem einzelnem Level errichten", continue = "Den letzten Spielstand fortsetzen", load_game = "Ein zuvor gespeichertes Spiel fortsetzen", options = "Diverse Einstellungen verändern", map_edit = "Eine eigene Karte erstellen", exit = "Bitte lassen Sie mich nicht allein!", quit = "Sie sind im Begriff, CorsixTH zu verlassen. Sind Sie sich sicher, dass Sie das tun wollen?", } load_game_window = { caption = "Spiel laden (%1%)", } tooltip.load_game_window = { load_game = "Spiel %s laden", load_game_number = "Spiel %d laden", load_autosave = "Automatisch gespeichertes Spiel laden", } custom_game_window = { caption = "Einzelnes Level", free_build = "Freies Spiel", load_selected_level = "Los", } tooltip.custom_game_window = { choose_game = "Ein Level auswählen, um mehr über es zu erfahren", free_build = "Auswählen, um mit unbegrenztem Geld und ohne Sieg- bzw. Niederlagebedingungen zu spielen", load_selected_level = "Ausgewähltes Level laden und spielen", } custom_campaign_window = { caption = "Eigene Kampagne", start_selected_campaign = "Kampagne starten", } tooltip.custom_campaign_window = { choose_campaign = "Eine Kampagne auswählen, um mehr über sie zu erfahren", start_selected_campaign = "Das erste Level dieser Kampagne laden", } save_game_window = { caption = "Spiel Speichern", new_save_game = "Neuer Spielstand", } tooltip.save_game_window = { save_game = "Spielstand %s überschreiben", new_save_game = "Namen für einen neuen Spielstand eingeben", } save_map_window = { caption = "Karte speichern (%1%)", new_map = "Neue Karte", } tooltip.save_map_window = { map = "Karte %s überschreiben", new_map = "Namen für Karten-Speicherstand eingeben", } menu_list_window = { name = "Dateiname", save_date = "Änderungsdatum", back = "Zurück", } tooltip.menu_list_window = { name = "Hier klicken, um nach Dateinamen zu sortieren", save_date = "Hier klicken, um nach dem letzten Änderungsdatum zu sortieren", back = "Das Fenster schließen", } -- Scroll vs Scrolling: I would tend to use Scroll, but Duden suggests Scrolling options_window = { caption = "Einstellungen", option_on = "Ein", option_off = "Aus", fullscreen = "Vollbild", resolution = "Auflösung", capture_mouse = "Maus einfangen", custom_resolution = "Benutzerdefiniert...", width = "Breite", height = "Höhe", customise = "Spezialeinstellungen", folder = "Pfade", language = "Spielsprache", apply = "Übernehmen", cancel = "Abbrechen", back = "Zurück", scrollspeed = "Scrolling", -- "Scrolling-Geschwindigkeit" is too long shift_scrollspeed = "Scrolling (Mod.)", --"schnelles Scrollen" or "Umschalt-Scrolling-Geschwindigkeit" are worse zoom_speed = "Zoomen", --"Zoom-Geschwindigkeit" is too long hotkey = "Tastenkürzel", } tooltip.options_window = { fullscreen = "Darstellung im Vollbild- oder Fenstermodus", fullscreen_button = "Klicken, um zwischen Vollbild- und Fenstermodus zu wechseln", resolution = "Die Bildschirmauflösung, in der das Spiel läuft", select_resolution = "Eine neue Auflösung auswählen", capture_mouse = "Ein- bzw. Ausschalten, ob der Mauszeiger das Fenster verlassen kann", width = "Gewünschte Bildschirmbreite eingeben", height = "Gewünschte Bildschirmhöhe eingeben", apply = "Die eingegebene Auflösung übernehmen", cancel = "Zurückkehren, ohne die Auflösung zu ändern", customise_button = "Weitere Einstellungen, die Sie ändern können, um Ihr Spielerlebnis anzupassen", folder_button = "Verzeichniseinstellungen", language = "Die Sprache, in der Texte im Spiel erscheinen", select_language = "Die Spielsprache ändern", language_dropdown_item = "%s als Sprache auswählen", back = "Das Optionsfenster schließen", scrollspeed = "Scrolling-Geschwindigkeit von 1 (langsamste) bis 10 (schnellste) einstellen. Standard ist 2.", shift_scrollspeed = "Scrolling-Geschwindigkeit während der Modifikator (Standard: Umschalttaste) gedrückt wird einstellen. 1 (langsamste) bis 10 (schnellste). Standard ist 4.", zoom_speed = "Zoom-Geschwindigkeit der Kamera von 10 (langsamste) bis 1000 (schnellste) einstellen. Standard ist 80.", apply_scrollspeed = "Eingegebene Scrolling-Geschwindigkeit anwenden.", cancel_scrollspeed = "Ohne Änderung der Scrolling-Geschwindigkeit zurückkehren.", apply_shift_scrollspeed = "Eingegebene Modifikator-Scrolling-Geschwindigkeit anwenden.", cancel_shift_scrollspeed = "Ohne Änderung der Modifikator-Scrolling-Geschwindigkeit zurückkehren.", apply_zoomspeed = "Eingegebene Zoom-Geschwindigkeit anwenden.", cancel_zoomspeed = "Ohne Änderung der Zoom-Geschwindigkeit zurückkehren.", hotkey = "Tastenkürzel ändern.", } audio_window = { audio = "Audio", -- "Globale Audio-Einstellungen" would match eng, but it's too long jukebox = "Jukebox", back = "Zurück", } tooltip.audio_window = { audio_button = "Sämtliche Toneffekte des Spiels ein- bzw. ausschalten", audio_toggle = "Ein- oder ausschalten", } customise_window = { caption = "Spezialeinstellungen", option_on = "Ein", option_off = "Aus", back = "Zurück", movies = "Alle Filme zeigen", intro = "Introfilm abspielen", paused = "In Pause bauen", volume = "Leiser-Taste", aliens = "Alien-Patienten", -- "Außerirdische Patienten"/"Ex­t­ra­ter­res­t­risch Patienten" is too long fractured_bones = "Gebrochene Knochen", average_contents = "Einrichtung merken", remove_destroyed_rooms = "Behebbare Zerstörung", -- "Entfernbare zerstörte Räume" is too long } tooltip.customise_window = { movies = "Globale Filmsteuerung: Hiermit können Sie sämtliche Filme abschalten", intro = "Den Introfilm abschalten. Das Intro wird nur gespielt, wenn Sie nicht auch gleichzeitig alle Filme abgeschaltet haben.", paused = "In Theme Hospital würde es dem Spieler während der Pause nur gestattet sein, das obere Menü zu benutzen. Dies ist in CorsixTH ebenfalls die Standardeinstellung, aber wenn Sie dies einschalten, ist alles in der Pause erlaubt.", volume = "Wenn die Leiser-Taste auch das Fallbuch öffnet, dann schalten Sie dies ein, um die Schnellzugriffstaste für das Fallbuch auf Umschalt + C zu wechseln.", aliens = "Aufgrund des Fehlens einer anständigen Animation haben wir standardmäßig Patienten mit außerirdischer DNA deaktiviert, damit sie nur zu einem Notfall kommen. Um Patienten mit außerirdischer DNA es zu erlauben, Ihr Krankenhaus nicht nur bei Notfällen zu besuchen, schalten Sie dies ab.", fractured_bones = "Aufgrund einer armseligen Animation haben wir uns entschieden, dass es standardmäßig keine weiblichen Patienten mit gebrochenen Knochen gibt. Wenn weibliche Patienten mit gebrochenen Knochen Ihr Krankenhaus besuchen sollen, dann schalten Sie dies ab.", average_contents = "Wenn Sie möchten, dass sich das Spiel merkt, welche zusätzlichen Objekte Sie üblicherweise beim Gebäudebau hinzufügen, dann schalten Sie diese Option ein.", remove_destroyed_rooms = "Aktivieren Sie diese Option wenn Sie wollen, dass zerstörte Räume nach Zahlung einer Gebühr entfernt werden können.", back = "Dieses Menü schließen und zum Einstellungsmenü zurückkehren", } folders_window = { caption = "Pfade", data_label = "TH-Daten", font_label = "Schrift", music_label = "Musik", savegames_label = "Spielstände", screenshots_label = "Screenshots", -- new_th_location = "Hier können Sie ein neues Theme-Hospital-Installationsverzeichnis auswählen. Sobald Sie das neue Verzeichnis auswählen, wird das Spiel neu gestartet.", savegames_location = "Wählen Sie das Verzeichnis aus, das für Spielstände benutzt werden soll.", music_location = "Wählen Sie hier das Verzeichnis aus, in dem sich Ihre Musik befindet.", screenshots_location = "Wählen Sie das Verzeichnis aus, das für Screenshots benutzt werden soll.", back = "Zurück", } tooltip.folders_window = { browse = "Nach einem Verzeichnis durchsuchen", data_location = "Das Verzeichnis der original Theme-Hospital-Installation, die benötigt wird, um CorsixTH zu spielen", font_location = "Pfad einer Schrift-Datei, die Unicode-Zeichen Ihrer Sprache unterstützt. Wenn diese Einstellung nicht vorgenommen wird, können Sie keine Sprachen auswählen, die mehr Zeichen benötigen, als das Originalspiel unterstützt. Beispiel: Russisch und Chinesisch.", savegames_location = "Standardmäßig wird das Spielstandsverzeichnis im selben Verzeichnis wie die Konfigurationsdatei gespeichert und es wird benutzt, um die Spielstände darin abzuspeichern. Sollte das nicht erwünscht sein, können Sie sich ihr eigenes Verzeichnis aussuchen, wählen Sie einfach das Verzeichnis, das Sie verwenden möchten", screenshots_location = "Standardmäßig wird das Screenshotverzeichnis im selben Verzeichnis wie die Konfigurationsdatei gespeichert. Sollte das nicht erwünscht sein, können Sie sich ihr eigenes Verzeichnis aussuchen, wählen Sie einfach das Verzeichnis, das Sie verwenden möchten", music_location = "Wählen Sie einen Ort für ihre Musikddateien aus. Das Verzeichnis muss bereits vorhanden sein.", browse_data = "Nach einem anderem Ort einer Theme-Hospital-Installation durchsuchen (aktueller Ort: %1%)", browse_font = "Nach einer anderen Schriftdatei suchen (aktueller Ort: %1%)", browse_saves = "Nach einem anderem Ort für Ihr Spielstandsverzeichnis durchsuchen (aktueller Ort: %1%)", browse_screenshots = "Nach einem anderem Ort für ihr Screenshotverzeichnis suchen (aktueller Ort: %1%)", browse_music = "Nach einem anderem Ort für Ihr Musikverzeichnis durchsuchen (aktueller Ort: %1%)", no_font_specified = "Kein Schriftverzeichnis festgelegt!", not_specified = "Kein Verzeichnis festgelegt!", default = "Standard", reset_to_default = "Das Verzeichnis zur Standardeinstellung zurücksetzen (%1%)", -- back = "Dieses Menü schließen und zum Einstellungsmenü zurückkehren", } hotkey_window = { caption_main = "Tastenkürzel-Zuweisungen", caption_panels = "Dialog-Tasten", button_accept = "Übernehmen", button_defaults = "Einstellungen zurücksetzen", button_cancel = "Abbrechen", button_back = "Zurück", button_toggleKeys = "Umschalt-Tasten", button_gameSpeedKeys = "Spielgeschwindigkeits-Tasten", button_recallPosKeys = "Positions-Tasten", panel_globalKeys = "Globale Tasten", panel_generalInGameKeys = "Generelle Tasten", panel_scrollKeys = "Scrolling-Tasten", panel_zoomKeys = "Zoom-Tasten", panel_gameSpeedKeys = "Spielgeschwindigkeits-Tasten", panel_toggleKeys = "Umschalt-Tasten", panel_debugKeys = "Debug-Tasten", panel_storePosKeys = "Position merken", panel_recallPosKeys = "Position abrufen", panel_altPanelKeys = "Alternative Dialog-Tasten", global_confirm = "Bestätigen", global_confirm_alt = "Bestätigen (alternativ)", global_cancel = "Abbrechen", global_cancel_alt = "Abbrechen (alternativ)", global_fullscreen_toggle = "Vollbild", global_exitApp = "App verlassen", global_resetApp = "App zurücksetzen", global_releaseMouse = "Mauszeiger freigeben", global_connectDebugger = "Debugger", global_showLuaConsole = "Lua-Konsole", global_runDebugScript = "Skript debuggen", global_screenshot = "Screenshot", global_stop_movie_alt = "Film abbrechen", global_window_close_alt = "Fenster schließen", ingame_scroll_up = "Nach oben scrollen", ingame_scroll_down = "Nach unten scrollen", ingame_scroll_left = "Nach links scrollen", ingame_scroll_right = "Nach rechts scrollen", ingame_scroll_shift = "Geschwindigkeitsmodifikator", ingame_zoom_in = "Herein zoomen", ingame_zoom_in_more = "Weiter herein zoomen", ingame_zoom_out = "Heraus zoomen", ingame_zoom_out_more = "Weiter heraus zoomen", ingame_reset_zoom = "Zoom zurücksetzen", ingame_showmenubar = "Menüleiste zeigen", ingame_showCheatWindow = "Cheat-Menü", ingame_loadMenu = "Spiel laden", ingame_saveMenu = "Spiel speichern", ingame_jukebox = "Jukebox", ingame_openFirstMessage = "Level-Nachrichten", ingame_pause = "Pause", ingame_gamespeed_slowest = "Langsamst", ingame_gamespeed_slower = "Langsam", ingame_gamespeed_normal = "Normal", ingame_gamespeed_max = "Maximum", ingame_gamespeed_thensome = "Noch mehr", ingame_gamespeed_speedup = "Beschleunigen", ingame_panel_bankManager = "Bank-Manager", ingame_panel_bankStats = "Bank-Status", ingame_panel_staffManage = "Personal verwalten", ingame_panel_townMap = "Übersichtskarte", ingame_panel_casebook = "Behandlungsmappe", ingame_panel_research = "Forschung", ingame_panel_status = "Status", ingame_panel_charts = "Diagramme", ingame_panel_policy = "Einstellungen", ingame_panel_map_alt = "Übersichtskarte 2", ingame_panel_research_alt = "Forschung 2", ingame_panel_casebook_alt = "Behandlungsmappe 2", ingame_panel_casebook_alt02 = "Behandlungsmappe 3", ingame_panel_buildRoom = "Raum bauen", ingame_panel_furnishCorridor = "Flur möblieren", ingame_panel_editRoom = "Raum bearbeiten", ingame_panel_hireStaff = "Personal einstellen", ingame_rotateobject = "Gegenstand rotieren", ingame_quickSave = "Schnellspeichern", ingame_quickLoad = "Schnellladen", ingame_restartLevel = "Level zurücksetzen", ingame_quitLevel = "Level verlassen", ingame_setTransparent = "Transparenz", ingame_toggleAnnouncements = "Durchsagen", ingame_toggleSounds = "Klänge", ingame_toggleMusic = "Musik", ingame_toggleAdvisor = "Ratgeber", ingame_toggleInfo = "Info", ingame_poopLog = "Protokoll-Dump", -- Duden says it's okay ingame_poopStrings = "Übersetzungs-Dump", ingame_patient_gohome = "Nach Hause schicken", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_storePosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_recallPosition_0 = "10", } tooltip.hotkey_window = { button_accept = "Tastenkürzel-Zuweisungen übernehmen und speichern", button_defaults = "Alle Tastenkürzel auf Standard zurücksetzen", button_cancel = "Zuweisung abbrechen und zum Optionsmenü zurückkehren", caption_panels = "Fenster zur Zuweisung von Dialog-Tasten öffnen", button_gameSpeedKeys = "Fenster zur Zuweisung von Tasten zur Steuerung der Spielgeschwindigkeit öffnen", button_recallPosKeys = "Fenster zur Zuweisung von Tasten zum Merken und Abrufen der Kameraposition öffnen", button_back_02 = "Zurück zum generellen Tastenkürzel-Fenster. Geänderte Tastenkürzel aus diesem Fenster können dort akzeptiert werden", } font_location_window = { caption = "Schrift wählen (%1%)", } handyman_window = { all_parcels = "Alle Grundstücke", parcel = "Grundstück", } tooltip.toolbar = { machine_menu = "Maschinenmenü", } tooltip.handyman_window = { parcel_select = "Der Arbeitsbereich des Handlangers. Klicken zum Ändern.", } new_game_window = { caption = "Neues Spiel", player_name = "Spielername", option_on = "Ein", option_off = "Aus", difficulty = "Schwierigkeit", easy = "AIP (Einfach)", medium = "Arzt (Mittel)", hard = "Berater (Schwer)", tutorial = "Tutorial", -- Duden says it's okay start = "Start", cancel = "Abbrechen", } tooltip.new_game_window = { player_name = "Geben Sie den Namen ein, mit dem Sie im Spiel genannt werden möchten", difficulty = "Hier kann der Schwierigkeitsgrad des Spiels eingestellt werden", easy = "Die richtige Option für Simulations-Neulinge", medium = "Der Mittelweg - für diejenigen, die sich nicht entscheiden können", hard = "Wer diese Art von Spielen schon gewöhnt ist und eine Herausforderung will, sollte hier klicken", tutorial = "Dieses Feld abhaken, um zu Beginn des Spieles eine Einführung zu erhalten", start = "Das Spiel mit den gewählten Einstellungen starten", cancel = "Oh, eigentlich wollte ich gar kein neues Spiel starten!", } lua_console = { execute_code = "Ausführen", close = "Schließen", } tooltip.lua_console = { textbox = "Hier Lua-Code zum Ausführen eingeben", execute_code = "Den eingegebenen Code ausführen", close = "Die Konsole schließen", } errors = { dialog_missing_graphics = "Entschuldigung, aber dieses Fenster ist in den Demo-Dateien nicht enthalten.", save_prefix = "Fehler beim Speichern: ", load_prefix = "Fehler beim Laden: ", no_games_to_contine = "Es gibt keine Spielstände.", load_quick_save = "Fehler: Der Schnellspeicherspielstand konnte nicht geladen werden, weil er nicht existiert. Kein Grund zur Sorge, wir haben nun einen für Sie erzeugt!", map_file_missing = "Die Kartendatei %s für das Level konnte nicht gefunden werden!", minimum_screen_size = "Bitte eine Auflösung von mindestens %d×%d eingeben.", unavailable_screen_size = "Die gewünschte Auflösung ist im Vollbildmodus nicht verfügbar.", alien_dna = "BEACHTEN SIE: Für außerirdische Patienten gibt es keine Animationen für das Sitzen, das Öffnen von Türen, das Anklopfen, usw. Daher werden sie, wie bei Theme Hospital, normal aussehen und sich dann wieder zurückverwandeln. Patienten mit außerirdischer DNA werden nur auftauchen, wenn sie in der Leveldatei gesetzt sind.", fractured_bones = "BEACHTEN SIE: Die Animation für weibliche Patienten mit gebrochenen Knochen ist nicht perfekt.", could_not_load_campaign = "Konnte die Kampagne nicht laden: %s", could_not_find_first_campaign_level = "Konnte das erste Level dieser Kampagne nicht finden: %s", save_to_tmp = "Die Datei %s konnte nicht verwendet werden. Das Spiel wurde als %s gespeichert. Fehler: %s", dialog_empty_queue = "Entschuldigung, eine Person hat keine weiteren Aktionen geplant und weiß nicht weiter. Weitere Details hierzu können der Konsole entnommen werden. Soll die Person das Krankenhaus verlassen?", compatibility_error = { new_in_old = "Entschuldigung, dieser Spielstand wurde mit einer neueren Version von CorsixTH erstellt und ist inkompatibel. Bitte wechseln Sie zu einer aktuelleren Version.", demo_in_full = "Entschuldigung, ein Spielstand der Demo kann nicht mit den Spieldaten der Vollversion geladen werden. Bitte passen Sie ihre TH-Daten-Einstellung an.", full_in_demo = "Entschuldigung, ein Spielstand der Vollversion kann nicht mit den Spieldaten der Demo geladen werden. Bitte passen Sie ihre TH-Daten-Einstellung an.", }, } warnings = { levelfile_variable_is_deprecated = "Hinweise: Das Level '%s' enthält eine veraltete Variablendefinition." .. "'%LevelFile' wurde in '%MapFile' umbenannt. Bitte informieren Sie den Autor, dass er das Level aktualisieren sollte.", newersave = "Warnung: Sie haben einen Spielstand von einer neueren Version von CorsixTH geladen. Es ist nicht empfehlenswert fortzufahren, da es zu Abstürzen kommen kann. Weiterspielen auf eigenes Risiko." } confirmation = { needs_restart = "Um diese Änderung, vorzunehmen muss CorsixTH neu gestartet werden. Nicht gespeicherter Fortschritt geht verloren. Sicher, dass Sie fortfahren wollen?", abort_edit_room = "Sie bauen oder ändern gerade einen Raum. Wenn alle benötigten Objekte platziert sind, wird der Raum fertiggestellt, ansonsten wird er gelöscht. Fortfahren?", maximum_screen_size = "Die von Ihnen gewählte Bildschirmauflösung ist größer als 3000×2000. Größere Auflösungen sind möglich, aber erfordern eine bessere Hardware, um eine akzeptable Bildwiederholrate zu gewährleisten. Sind Sie sich sicher, dass Sie fortfahren möchten?", remove_destroyed_room = "Möchten Sie den Raum für $%d entfernen?", replace_machine_extra_info = "Die neue Maschine wird eine Stärke von %d haben (aktuell %d).", } information = { custom_game = "Willkommen zu CorsixTH. Viel Spaß mit diesem eigenen Level!", no_custom_game_in_demo = "Tut uns Leid, aber in der Demo-Version sind keine eigenen Level spielbar.", cannot_restart = "Leider wurde dieses eigene Level vor Implementierung des Neustart-Features gespeichert.", very_old_save = "Seit dieses Level gestartet wurde, wurden einige Änderungen am Spiel durchgeführt. Sie sollten ein neues Spiel starten, damit alle Änderungen wirksam werden.", level_lost = { "So ein Mist! Sie haben das Level leider nicht geschafft. Vielleicht klappt's ja beim nächsten Mal!", "Der Grund, warum Sie verloren haben:", reputation = "Ihr Ruf ist unter %d gesunken.", balance = "Ihr Kontostand ist unter %d gesunken.", percentage_killed = "Sie haben mehr als %d Prozent der Patienten getötet.", cheat = "Sie haben das selbst so gewollt. Oder haben Sie etwa auf den falschen Knopf gedrückt? Sie können also nicht mal richtig schummeln. Traurig.", }, cheat_not_possible = "Dieser Cheat ist in diesem Level nicht verfügbar. Sogar beim Schummeln versagen Sie, wie armselig!", } tooltip.information = { close = "Das Informationsfenster schließen", } totd_window = { tips = { "Zu Beginn benötigt jedes Krankenhaus eine Rezeption und eine Allgemeinmedizin. Danach kommt es darauf an, was für Patienten im Krankenhaus auftauchen. Eine Pharma-Theke ist aber immer eine gute Wahl.", "Maschinen wie die Entlüftung müssen gewartet werden. Stellen Sie ein paar Handlanger ein, oder die Patienten und das Personal könnte verletzt werden.", "Nach einer Weile wird das Personal müde. Bauen Sie unbedingt einen Personalraum, damit es sich ausruhen kann.", "Platzieren Sie genug Heizkörper, um das Personal und die Patienten warm zu halten, sonst werden sie unglücklich. Benutzen Sie die Übersichtskarte, um Stellen im Krankenhaus zu finden, die noch etwas besser beheizt werden müssen.", "Der Fähigkeiten-Level eines Arztes beeinflusst die Qualität und Geschwindigkeit seiner Diagnosen deutlich. Ein geübter Arzt in der Allgemeinmedizin erspart so manchen zusätzlichen Diagnoseraum.", "AIPler und Ärzte können ihre Fähigkeiten verbessern, indem sie in der Ausbildung von Beratern lernen. Wenn der Berater eine zusätzliche Qualifikation (Chirurg, Psychiater oder Forscher) besitzt, gibt er dieses Wissen ebenfalls weiter.", "Haben Sie schon versucht, die europäische Notruf-Nummer (112) in das Faxgerät einzugeben? Schalten Sie vorher den Sound an!", "Im Optionsmenü hier im Hauptmenü oder im laufenden Spiel können Einstellungen wie die Auflösung oder die Sprache geändert werden.", "Haben Sie eine andere Sprache als Englisch ausgewählt, aber es erscheinen englische Texte? Helfen Sie uns, die Übersetzung zu vervollständigen, indem Sie fehlende Texte in Ihre Sprache übersetzten!", "Das CorsixTH-Team sucht Verstärkung! Haben Sie Interesse, beim Programmieren, Übersetzen oder der Grafikerstellung zu helfen? Kontaktieren Sie uns in unserem Forum, der Mailing-Liste oder unserem IRC-Kanal (#Corsix-TH auf Freenode).", "Wenn Sie einen Bug finden, bitte melden Sie ihn in unserem Bug-Tracker: th-issues.corsix.org", "In jedem Level müssen bestimmte Voraussetzungen erfüllt werden, bevor man zum Nächsten wechseln kann. Im Status-Fenster können Sie Ihren Fortschritt bezüglich der Levelziele sehen.", "Um existierende Räume zu bearbeiten oder gar zu löschen, kann man den Raum-Bearbeiten-Knopf in der unteren Werkzeugleiste verwenden.", "Um aus einer Horde wartender Patienten diejenigen zu finden, die für einen bestimmten Raum warten, einfach mit dem Mauszeiger über den entsprechenden Raum fahren.", "Klicken Sie auf die Tür eines Raumes, um seine Warteschlange zu sehen. Hier kann man nützliche Feineinstellungen vornehmen, wie etwa die Warteschlange umsortieren oder einen Patienten zu einem anderen Raum senden.", "Unglückliches Personal verlangt öfter Gehaltserhöhungen. Gestalten Sie die Arbeitsumgebung Ihres Personals möglichst angenehm, um dies zu verhindern.", "Patienten werden beim Warten durstig, besonders wenn die Heizungen aufgedreht sind! Strategisch platzierte Getränkeautomaten sind eine nette zusätzliche Einnahmequelle.", "Sie können die Diagnose für einen Patienten vorzeitig abbrechen und ihn direkt zur Behandlung schicken, falls seine Krankheit zuvor schon entdeckt wurde. Allerdings erhöht sich dadurch das Risiko, dass das Heilmittel falsch ist und der Patient stirbt.", "Notfälle können eine gute Einnahmequelle abgeben, sofern genügend Kapazitäten vorhanden sind, um die Notfallpatienten rechtzeitig zu behandeln.", "Wussten Sie, dass sie Handlangern spezifische Grundstücke zuweisen können? Klicken Sie einfach auf den Text 'Alle Grundstücke' im Personalprofil um zwischen ihnen zu wechseln!", }, previous = "Vorheriger Tipp", next = "Nächster Tipp", } tooltip.totd_window = { previous = "Den vorherigen Tipp anzeigen", next = "Den nächsten Tipp anzeigen", } debug_patient_window = { caption = "Debug-Patient", } cheats_window = { caption = "Cheats", warning = "Warnung: Cheater bekommen am Ende des Levels keine Bonus-Punkte!", cheated = { no = "Cheats benutzt: Nein", yes = "Cheats benutzt: Ja", }, cheats = { money = "Geld-Cheat", all_research = "Alle-Forschungen-Cheat", emergency = "Notfall erzeugen", vip = "VIP erzeugen", earthquake = "Erdbeben starten", epidemic = "Infizierten Patienten erzeugen", toggle_infected = "Infektions-Symbole umschalten", create_patient = "Patienten erzeugen", end_month = "Ende des Monats", end_year = "Ende des Jahres", lose_level = "Level verlieren", win_level = "Level gewinnen", increase_prices = "Preise erhöhen", decrease_prices = "Preise senken", }, close = "Schließen", } tooltip.cheats_window = { close = "Das Cheat-Fenster schließen", cheats = { money = "10.000 zum Konto hinzufügen.", all_research = "Alle Forschungen abschließen.", emergency = "Einen Notfall erzeugen.", vip = "Einen VIP vorbeischicken.", earthquake = "Ein Erdbeben starten.", epidemic = "Einen infizierten Patienten, der eine Epidemie auslösen kann, erzeugen.", toggle_infected = "Die Infektions-Symbole für die aktive, entdeckte Epidemie umschalten.", create_patient = "Einen Patienten am Kartenrand erzeugen.", end_month = "Zum Monatsende springen.", end_year = "Zum Jahresende springen.", lose_level = "Das aktuelle Level verlieren.", win_level = "Das aktuelle Level gewinnen.", increase_prices = "Alle Preise um 50% erhöhen (Max. 200%)", decrease_prices = "Alle Preise um 50% senken (Min. 50%)", } } introduction_texts = { demo = "Willkommen im Demo-Krankenhaus!//" .. "Leider beinhaltet die Demo-Version nur dieses eine Level. Dafür gibt es hier aber mehr als genug zu tun, um Sie eine Weile zu beschäftigen! " .. "Sie werden diversen Krankheiten begegnen, die unterschiedliche Räume zur Behandlung benötigen. Ab und zu können auch Notfälle eintreffen. " .. "Und Sie werden mithilfe einer Forschungsabteilung neue Räume erforschen müssen. " .. "Ihr Ziel ist es, 100.000 DM zu verdienen, einen Krankenhauswert von 70.000 DM und einen Ruf von 700 vorzuweisen, und gleichzeitig mindestens 75% der Patienten erfolgreich zu behandeln. " .. "Stellen Sie sicher, dass Ihr Ruf nicht unter 300 fällt und dass Sie nicht mehr als 40% ihrer Patienten sterben lassen, oder Sie werden verlieren.//" .. "Viel Glück!", } calls_dispatcher = { -- summary = "%d Aufrufe; %d zugewiesen", staff = "%s - %s", watering = "Bewässert @ %d,%d", repair = "Repariert %s", close = "Schließen", } tooltip.calls_dispatcher = { task = "Liste der Aufgaben - Aufgabe anklicken, um das Fenster des zugewiesenen Personalmitglieds zu öffnen und zum Ort der Aufgabe zu scrollen.", assigned = "Diese Box ist markiert, wenn jemand der Aufgabe zugewiesen ist.", close = "Das Aufruf-Verteiler-Fenster schließen", } update_window = { caption = "Update verfügbar!", new_version = "Neue Version:", current_version = "Aktuelle Version:", download = "Zur Downloadseite gehen", ignore = "Überspringen und zum Hauptmenü gehen", } tooltip.update_window = { download = "Zur Downloadseite für die allerneueste Version von CorsixTH gehen", ignore = "Dieses Update im Moment ignorieren. Sie werden erneut benachrichtigt, wenn Sie CorsixTH das nächste Mal starten.", } map_editor_window = { pages = { inside = "Innen", outside = "Außen", foliage = "Grünzeug", hedgerow = "Hecke", pond = "Teich", road = "Straße", north_wall = "Nord-Wand", west_wall = "West-Wand", helipad = "Helipad", delete_wall = "Wände löschen", parcel_0 = "Grundstück 0", parcel_1 = "Grundstück 1", parcel_2 = "Grundstück 2", parcel_3 = "Grundstück 3", parcel_4 = "Grundstück 4", parcel_5 = "Grundstück 5", parcel_6 = "Grundstück 6", parcel_7 = "Grundstück 7", parcel_8 = "Grundstück 8", parcel_9 = "Grundstück 9", camera_1 = "Kamera 1", camera_2 = "Kamera 2", camera_3 = "Kamera 3", camera_4 = "Kamera 4", heliport_1 = "Heliport 1", heliport_2 = "Heliport 2", heliport_3 = "Heliport 3", heliport_4 = "Heliport 4", paste = "Bereich einfügen", } } hotkeys_file_err = { file_err_01 = "Konnte hotkeys.txt nicht laden. Bitte stellen Sie sicher, " .. "dass CorsixTH Lese-/Schreibrechte hat ", file_err_02 = ", oder verwenden Sie die --hotkeys-file=filename Kommandozeilenoption um eine schreibbare Datei anzugeben. " .. "Für Referenzzwecke, der Fehler beim laden der Tastenlürzel-Datei war: ", } transactions.remove_room = "Bauen: Entferne zerstörten Raum" ------------------------------- FIX FOR MISSING CREDITS LINES ---------------------------------- original_credits[301] = " " original_credits[302] = " " original_credits[303] = " " original_credits[304] = " " original_credits[305] = " " original_credits[306] = " " original_credits[307] = " " original_credits[308] = " " original_credits[309] = " " original_credits[310] = " " original_credits[311] = " " original_credits[312] = " " original_credits[313] = " " original_credits[314] = " " original_credits[315] = " " original_credits[316] = " " original_credits[317] = " " original_credits[318] = " " original_credits[319] = " " original_credits[320] = " " original_credits[321] = " " original_credits[322] = " " original_credits[323] = " " original_credits[324] = " " original_credits[325] = " " original_credits[326] = " " original_credits[327] = " " original_credits[328] = " " original_credits[329] = " " original_credits[330] = " " original_credits[331] = " " original_credits[332] = " " original_credits[333] = " " original_credits[334] = " " original_credits[335] = " " original_credits[336] = " " original_credits[337] = " " original_credits[338] = " " original_credits[339] = " " original_credits[340] = " " original_credits[341] = " " original_credits[342] = " " original_credits[343] = " " original_credits[344] = " " original_credits[345] = " " original_credits[346] = " " original_credits[347] = " " original_credits[348] = " " original_credits[349] = " " original_credits[350] = " " original_credits[351] = " " original_credits[352] = " " original_credits[353] = " " original_credits[354] = " " original_credits[355] = " " original_credits[356] = " " original_credits[357] = " " original_credits[358] = " " original_credits[359] = " " original_credits[360] = " " original_credits[361] = " " -------------------------------- UNUSED ----------------------------------- ------------------- (kept for backwards compatibility) ---------------------- options_window.change_resolution = "Auflösung ändern" tooltip.options_window.change_resolution = "Die Fensterauflösung auf die links eingegebenen Werte ändern" CorsixTH-0.70.0/CorsixTH/Lua/languages/greek.lua000066400000000000000000010601271522247547500213170ustar00rootroot00000000000000--[[ Copyright (c) 2020 Dimitris Iliadis Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("unicode") Language("Ελληνικά", "Greek", "el", "gre", "ell") Inherit("English") Encoding(utf8) IsArabicNumerals(true) menu_file = { quit = " (%1%) ΕΞΟΔΟΣ ", save = " (%1%) ΑΠΟΘΗΚΕΥΣΗ ", load = " (%1%) ΦΟΡΤΩΣΗ ", restart = " (%1%) ΕΠΑ�ΕΚΚΙ�ΗΣΗ", } staff_descriptions = { misc = { [1] = "Παίζει γκολφ. ", [2] = "Πηγαίνει scuba diving. ", [3] = "Φτιάχνει γλυπτά από πάγο. ", [4] = "Πίνει κ�ασί. ", [5] = "Οδηγεί αγωνιστικά αυτοκίνητα. ", [6] = "Κάνει bungee jumping. ", [7] = "Συλλέγει σουβέ� μπ��ας. ", [8] = "Γουστά�ει το stage-diving. ", [9] = "Απολαμβάνει το fart-surfing. ", [10] = "Απολαμβάνει το river-widening. ", [11] = "Διυλίζει ουίσκι. ", [12] = "Ειδικός στις DIY κατασκευές. ", [13] = "Απολαμβάνει καλλιτεχνικές ταινίες του Γαλλικο� κινηματογ�άφου. ", [14] = "Παίζει πολ� Theme Park. ", [15] = "Έχει άδεια φο�τηγατζή. ", [16] = "Πάει για αγώνες με μοτοσυκλέτες. ", [17] = "Παίζει κλασικό βιολί και τσέλο. ", [18] = "Ενθουσιώδης καταστ�οφέας. ", [19] = "Λάτ�εις των σκ�λων. ", [20] = "Ακο�ει �αδιόφωνο. ", [21] = "Κάνει συχνά μπάνιο. ", [22] = "Raffia-work instructor. ", [23] = "Ανοίγει λαχανικά για να τα χ�ησιμοποιεί σαν σαπωνοθήκες. ", [24] = "Ειδικός Αστυφ�λαξ με�ικής απασχόλησης. ", [25] = "Πα�ουσιαστής τηλεπαιχνιδιών γνώσεων. ", [26] = "Συλλέγει θ�α�σματα βλημάτων του ΒΠΠ. ", [27] = "Αναδιατάσσει έπιπλα. ", [28] = "Ακο�ει rave και trip-hop. ", [29] = "Εκνευ�ίζει έντομα με αποσμητικό σπ�έι. ", [30] = "Διακόπτει και εκνευ�ίζει κακο�ς κωμικο�ς. ", [31] = "Κατασκοπε�ει για το συμβο�λιο. ", [32] = "Μουλωχτός/ή κηπου�ός. ", [33] = "Κάνει λαθ�εμπό�ιο �ολογιών μαϊμο�. ", [34] = "Τ�αγουδάει σε συγκ�ότημα rock and roll. ", [35] = "Λατ�ε�ει την π�ωινή τηλεό�αση. ", [36] = "Γα�γαλάει πέστ�οφες. ", [37] = "Ξεγελάει του�ίστες σε μουσεία. ", }, good = { [1] = "Πολ� γ�ήγο�ος/η και επιμελής ε�γάτης. ", [2] = "Πολ� ευσυνείδητος/η. �οιάζεται βαθ�τατα. ", [3] = "Έχει ευ�εία γκάμα δεξιοτήτων. ", [4] = "Πολ� φιλικός/ή και του/της α�έσει να γελάει. ", [5] = "Εξαι�ετικές αντοχές. Απλά συνεχίζει δίχως σταματημό. ", [6] = "Αξιοσημείωτα ευγενικός/ή με εγκά�δια συμπε�ιφο�ά. ", [7] = "Απίστευτα ταλαντο�χους/α και ικανός/ή. ", [8] = "�οιάζεται πολ� για την δουλειά που έχει αναλάβει. ", [9] = "Είναι τελειομανής που δεν τα πα�ατάει ποτέ. ", [10] = "Αφοσειωμένος/η στο να βοηθάει τους ανθ�ώπους, πάντα με ένα χαμόγελο. ", [11] = "Γοητευτικός/ή, ευγενικός/ή και βοηθητικός/ή. ", [12] = "Γενικά αφοσειωμένός/η με κίνητ�α. ", [13] = "Καλοσυνάτος/η και ε�γάζεται πολ� σκλη�ά. ", [14] = "Πιστός/ή και φιλικός/ή. ", [15] = "Π�οσεκτικός/ή και αξιόπιστος/η σε μια ανάγκη. ", }, bad = { [1] = "Α�γός/ή και γκ�ινιά�ης/α. ", [2] = "Τεμπέλης/α δίχως κίνητ�α. ", [3] = "Ανεπα�κώς εκπαιδευμένος/η και άσκοπος/η. ", [4] = "Αγενής και τ�αχ�ς/τ�αχιά. Εκνευ�ίζει τους άλλους. ", [5] = "Άθλιες αντοχές - έχει κακή συμπε�ιφο�ά. ", [6] = "Στου κουφο� την πό�τα... Τα �ο�χα του/της μυ�ίζουν λάχανο. ", [7] = "Χάλια στην δουλειά. Αναξιόπιστος/η. ", [8] = "Απε�ίσκεπτος/η και η π�οσοχή του/της αποσπάται ε�κολα. ", [9] = "Στ�εσσα�ισμένος/η και επι��επής σε λάθη. ", [10] = "Διεφθα�μένος/η και μνησίκακος/η - καίγεται με μίσος. ", [11] = "Απ�όσεκτος/η και επι��επής σε ατυχήματα. ", [12] = "Δεν ασχολείται με την δουλειά. Τεμπέλης/α ως το κόκαλο. ", [13] = "Παί�νει ανόητα �ίσκα και δεν θα μπο�ο�σε να νοιάζεται λιγότε�ο. ", [14] = "Πονη�ός/ή, �πουλος/η και ανατ�επτικός/ή. ", [15] = "Αγέ�ωχος/η και ψωνισμένος/η. ", }, } handyman_window = { all_parcels = "Όλα τα plots", parcel = "Plot", } months = { [1] = "Ιαν", [2] = "Φεβ", [3] = "Μα�", [4] = "Απ�", [5] = "Μαϊ", [6] = "Ιουν", [7] = "Ιουλ", [8] = "Αυγ", [9] = "Σεπ", [10] = "Οκτ", [11] = "�οε", [12] = "Δεκ", } adviser = { research = { new_drug_researched = "Ένα νέο φά�μακο για την θε�απεία τ@ %s έχει ανακαλυφθεί.", drug_improved = "Το φά�μακο %s έχει βελτιωθεί από το Τμήμα Ε�ευνών σας.", drug_improved_1 = "Το φά�μακο %s έχει βελτιωθεί από το Τμήμα Ε�ευνών σας.", machine_improved = "Το %s έχει αναβαθμιστεί από το Τμήμα Ε�ευνών σας.", autopsy_discovered_rep_loss = "Β�έθηκε το Μηχάνημα Αυτο-Αυτοψίας σας. �α πε�ιμένετε α�νητικές αντιδ�άσεις από την κοινή γνώμη.", new_available = "Ένα νέο %s έγινε διαθέσιμο.", new_machine_researched = "Ένα νέο %s μόλις ανακαλ�φθηκε επιτυχώς.", drug_fully_researched = "Η έ�ευνα για το %s είναι στο 100%.", }, room_requirements = { research_room_need_researcher = "Π�έπει να π�οσλάβετε έναν Γιατ�ό με δεξιότητες Έ�ευνας για να χ�ησιμοποιήσετε το δωμάτιο Ε�ευνών.", op_need_another_surgeon = "Χ�ειάζεται να π�οσλάβετε έναν ακόμη Χει�ου�γό για να μπο�εί να χ�ησιμοποιηθεί το Χει�ου�γείο.", gps_office_need_doctor = "Π�έπει να π�οσλάβετε έναν Γιατ�ό για να δουλέψει στο Γ�αφείο Γενικο� Ιατ�ο�.", pharmacy_need_nurse = "Θα π�έπει να π�οσλάβετε μία �οσοκόμα για εκείνο το Φα�μακείο.", training_room_need_consultant = "Π�έπει να π�οσλάβετε έναν Σ�μβουλο για να διδάξει σε εκείνο το δωμάτιο Εκπαίδευσης.", op_need_ward = "Π�έπει να χτίσετε μια Πτέ�υγα για να στεγάζει ασθενείς π�ιν την διαδικασία της εγχεί�ησης.", op_need_two_surgeons = "Π�οσλάβετε δ�ο Χει�ου�γο�ς για να κάνουν εγχει�ήσεις στο Χει�ου�γείο.", reception_need_receptionist = "Π�έπει να π�οσλάβετε μία Ρεσεψιονίστ για να δείτε τους ασθενείς σας.", psychiatry_need_psychiatrist = "Θα π�έπει να π�οσλάβετε έναν Ψυχίατ�ο, τώ�α που χτίσατε έναν Ψυχιατ�είο.", ward_need_nurse = "Θα π�έπει να π�οσλάβετε μία �οσοκόμα για να δουλέψει σε αυτήν την Πτέ�υγα.", }, cheats = { th_cheat = "Συγχα�ητή�ια, μόλις ξεκλειδώσατε τα cheats!", roujin_on_cheat = "Το Roujin's challenge ενε�γοποιήθηκε! Καλή τ�χη...", roujin_off_cheat = "Το Roujin's challenge απενε�γοποιήθηκε.", }, tutorial = { place_door = "Μετακινείστε τον κέ�σο�α γ��ω από τα τοιχώματα του σχεδίου για να τοποθετήσετε την πό�τα εκεί όπου επιθυμείτε.", select_diagnosis_rooms = "Κάντε α�ιστε�ό κλικ στο εικονάκι που αναβοσβήνει για να εμφανίσετε την λίστα των διαγνωστικών δωματίων.", rotate_and_place_reception = "Κάντε δεξί κλικ για να πε�ιστ�έψετε το Γ�αφείο και τοποθετήστε το στο νοσοκομείο σας με το α�ιστε�ό πλήκτ�ο.", next_receptionist = "Αυτή είναι η π�ώτη Ρεσεψιονίστ στην λίστα. Κάντε α�ιστε�ό κλικ στο εικονάκι που αναβοσβήνει για να δείτε την αμέσως επόμενη διαθέσιμη.", hire_receptionist = "Θα χ�ειαστείτε ακόμα μία Ρεσεψιονίστ για να αντιμετωπίσετε τους ασθενείς σας.", select_doctors = "Κάντε α�ιστε�ό κλικ στο εικονάκι που αναβοσβήνει για να δείτε όλους τους Γιατ�ο�ς που είναι διαθέσιμοι π�ος π�όσληψη.", receptionist_invalid_position = "Δεν μπο�είτε να τοποθετήσετε την Ρεσεψιονίστ σας εκεί.", room_in_invalid_position = "Αμάν! Αυτό το σχεδιάγ�αμμα είναι εσφαλμένο - οι κόκκινες πε�ιοχές αναδεικν�ουν τα σημεία που υπά�χει επικάλυψη με άλλα δωμάτιά ή τους τοίχους του νοσοκομείου.", choose_receptionist = "Αποφασίστε ποια Ρεσεψιονίστ είναι ικανή και ζητάει δίκαιες αποδοχές και έπειτα κάντε α�ιστε�ό κλικ στο εικονάκι που αναβοσβήνει για να την π�οσλάβετε.", build_pharmacy = "Συγχα�ητή�ια! Τώ�α χτίστε ένα Φα�μακείο και π�οσλάβετε μία �οσοκόμα για να έχετε ένα λειτου�γικό νοσοκομείο.", information_window = "Το πλαίσιο Βοήθειας σας ενημε�ώνει για εκείνο το ω�αίο Γ�αφείο Γενικο� Ιατ�ο� που μόλις χτίσατε.", room_big_enough = "Το σχεδιάγ�αμμα τώ�α είναι επα�κώς μεγάλο. Όταν απελευθε�ώσετε το χέ�ι σας από το πλήκτ�ο του ποντικιο� θα το τοποθετήσετε. Εξακολουθείτε να μπο�είτε να το μετακινήσετε ή να αλλάξετε το μέγεθός του αν επιθυμείτε.", room_too_small_and_invalid = "Το Σχεδιάγ�αμμα είναι πολ� μικ�ό και σε λανθασμένη θέση. Κάντε τις απα�αίτητες αλλαγές.", reception_invalid_position = "Το Γ�αφείο Ρεσεψιόν είναι γκ�ιζα�ισμένο επειδή είναι σε εσφαλμένη θέση. Δοκιμάστε να το μετακινήσετε ή να το πε�ιστ�έψετε.", build_reception = "Χαί�ετε. Α�χικά, το νοσοκομείο σας χ�ειάζεται ένα Γ�αφείο Ρεσεψιόν. Διαλέξτε ένα από το μενο� Εξοπλισμο� Διαδ�όμου.", order_one_reception = "Κάντε α�ιστε�ό κλικ μία φο�ά στην γ�αμμή που αναβοσβήνει για να πα�αγγείλετε ένα Γ�αφείο Ρεσεψιόν.", accept_purchase = "Κάντε α�ιστε�ό κλικ στο εικονάκι που αναβοσβήνει για να το αγο�άσετε.", room_too_small = "Αυτό το σχεδιάγ�αμμα δωματίου είναι κόκκινο επειδή είναι πολ� μικ�ό. Τ�αβήξτε το πα�απέ�α για να το μεγαλώσετε.", place_receptionist = "Μετακινείστε την Ρεσεψιονίστ και τοποθετήστε την οπουδήποτε. Πολ� έξυπνα, θα β�ει τον δ�όμο για το γ�αφείο.", start_tutorial = "Διαβάστε την Ενημέ�ωση Αποστολής και κάντε α�ιστε�ό κλικ για να ξεκινήσετε το tutorial.", place_doctor = "Τοποθετήστε τον Γιατ�ό οπουδήποτε στο νοσοκομείο. Θα κατευθυνθεί π�ος το Γ�αφείο Γενικο� Ιατ�ο� όταν θα υπά�χει άτομο π�ος διάγνωση.", click_and_drag_to_build = "Για να χτίσετε ένα Γ�αφείο Γενικο� Ιατ�ο� π�έπει π�ώτα να αποφασίσετε πόσο μεγάλο θα είναι. Κάντε α�ιστε�ό κλικ και κ�ατήστε το πα�ατεταμένα ενώ σέ�νετε το δωμάτιο στο επιθυμητό μέγεθος.", object_in_invalid_position = "Αυτό το αντικείμενο είναι σε εσφαλμένη θέση. Πα�ακαλώ είτε τοποθετήστε το κάπου αλλο�, ή πε�ιστ�έψτε το για να το κάνετε να χω�έσει.", confirm_room = "Κάντε α�ιστε�ό κλικ στο εικονάκι που αναβοσβήνει για να θέσετε σε ετοιμότητα το δωμάτιό σας ή κάντε κλικ στο εικονάκι με το X για να κάνετε πίσω ένα βήμα.", doctor_in_invalid_position = "Έι! Δεν μπο�είτε να τοποθετήσετε τον Γιατ�ό εκεί.", build_gps_office = "Για να α�χίσετε να κάνετε διάγνωση των ασθενειών των ασθενών σας π�έπει να χτίσετε ένα Γ�αφείο Γενικο� Ιατ�ο�.", door_in_invalid_position = "Ωχ! Επιχει�ήσατε να τοποθετήσετε την πό�τα σε εσφαλμένη θέση. Δοκιμάστε κάπου αλλο� στα τοιχώματα του σχεδιαγ�άμματος.", place_objects = "Κάντε δεξί κλικ για να πε�ιστ�έψετε τα αντικείμενα του δωματίου, και α�ιστε�ό κλικ για να τα τοποθετήσετε.", place_windows = "Τοποθετήστε πα�άθυ�α με τον ίδιο τ�όπο όπως την πό�τα. Δεν χ�ειάζεστε πα�άθυ�α, αλλά το π�οσωπικό σας είναι πιο ευτυχισμένο όταν έχει κάπου να δει.", select_receptionists = "Κάντε α�ιστε�ό κλικ στο εικονάκι που αναβοσβήνει για να δείτε τις Ρεσεψιονίστ που είναι αυτή την στιγμή διαθέσιμες για ε�γασία. Εκείνος ο α�ιθμός στο εικονάκι αναδεικν�ει μεταξ� πόσων μπο�είτε να επιλέξετε.", click_gps_office = "Κάντε α�ιστε�ό κλικ στην γ�αμμή που αναβοσβήνει για να διαλέξετε ένα Γ�αφείο Γενικο� Ιατ�ο�.", window_in_invalid_position = "Αυτό το πα�άθυ�ο είναι σε εσφαλμένη θέση. Δοκιμάστε να το τοποθετήσετε κάπου αλλο� στα τοιχώματα, αν θα είχατε την καλοσ�νη.", prev_receptionist = "Κάντε α�ιστε�ό κλικ στο εικονάκι που αναβοσβήνει για να δείτε την π�οηγο�μενη διαθέσιμη Ρεσεψιονίστ.", hire_doctor = "Χ�ειάζεστε έναν Γιατ�ό για να διαγνώσει και να θε�απε�σει τις νοσο�σες μάζες.", choose_doctor = "Ρίξτε μια καλή ματιά στις ικανότητες του κάθε Γιατ�ο� π�οτο� επιλέξετε έναν.", }, surgery_requirements = { need_surgeons_ward_op = "Π�έπει να π�οσλάβετε δ�ο Χει�ου�γο�ς και να χτίσετε μία Πτέ�υγα καθώς και ένα Χει�ου�γείο για να μπο�είτε να π�αγματοποιήσετε μία Εγχεί�ηση.", need_surgeon_ward = "Π�έπει να π�οσλάβετε ακόμη έναν Χει�ου�γό και να χτίσετε μία Πτέ�υγα για να μπο�είτε να π�αγματοποιήσετε μία Εγχεί�ηση.", }, praise = { plenty_of_benches = "Υπά�χουν α�κετά καθίσματα, οπότε αυτό δεν αποτελεί π�όβλημα.", patients_cured = "%d Ασθενείς έχουν θε�απευτεί.", many_benches = "Οι Ασθενείς τώ�α έχουν α�κετές θέσεις. Μπ�άβο.", plants_are_well = "Αυτό είναι ω�αίο. Φ�οντίζετε καλά τα φυτά σας. Εξαι�ετικά.", plants_thriving = "Πολ� καλά. Τα φυτά σας είναι εξαι�ετικά. Δείχνουν τέλεια. Συνεχίστε έτσι και μπο�εί να κε�δίσετε κάποιο β�αβείο για αυτά.", many_plants = "Εξαι�ετικά. Έχετε α�κετά φυτά. Οι Ασθενείς σας θα το εκτιμήσουν αυτό.", few_have_to_stand = "Σχεδόν κανένας δεν π�έπει να στέκεται ό�θιος στο νοσοκομείο σας. Οι ασθενείς θα ικανοποιηθο�ν με αυτό.", }, boiler_issue = { resolved = "Καλά νέα. Ο λέβητας και τα καλο�ιφέ� τώ�α δουλε�ουν σωστά ξανά. Η θε�μοκ�ασία είναι μια χα�ά για τους ασθενείς και το π�οσωπικό σας.", minimum_heat = "Α, να 'μαστε. Ο λέβητας του υπογείου χάλασε. Οι άνθ�ωποι στο νοσοκομείο σας θα την δαγκώσουν σε λίγο.", maximum_heat = "Ο λέβητας του υπογείου τ�ελάθηκε. Η θέ�μανση των καλο�ιφέ� έχει κολλήσει στο μέγιστο. Ο κόσμος θα α�χίσει να λιώνει! Θα βοήθαγε να τοποθετο�σατε πε�ισσότε�α Αναψυκτή�ια.", }, information = { promotion_to_doctor = "Ένας από τους ΑΡΧΑΡΙΟΥΣ σας μόλις έγινε ΓΙΑΤΡΟΣ.", first_cure = "Συγχα�ητή�ια! Μόλις θε�απε�σατε τον π�ώτο σας ασθενή.", emergency = "Υπά�χει μια κ�ίση! Κουνηθείτε! Κουνηθείτε! ΚΟΥ�ΗΘΕΙΤΕ!", fax_received = "Το εικονίδιο που μόλις εμφανίστηκε κάτω α�ιστε�ά στην οθόνη σας, σας ενημε�ώνει σχετικά με μία σημαντική πλη�οφο�ία ή απόφαση που π�έπει να πά�ετε.", place_windows = "Τοποθετώντας πα�άθυ�α κάνετε τα δωμάτιο φωτεινότε�α και βελτιώνετε το κέφι του π�οσωπικο� σας.", extra_items = "Επιπλέον αντικείμενα σε δωμάτια κάνουν το π�οσωπικό σας πιο άνετο και βελτιώνεται η απόδοσή τους.", promotion_to_specialist = "Ένας από τους Γιατ�ο�ς σας έχει π�οαχθεί στην ειδικότητα %s.", initial_general_advice = { research_now_available = "Έχετε χτίσει το π�ώτο σας Δωμάτιο Ε�ευνών. Τώ�α μπο�είτε να έχετε π�όσβαση στην οθόνη Ε�ευνών.", autopsy_available = "Το Μηχάνημα Αυτο-Αυτοψίας έχει ανακαλυφθεί. Με αυτό, μπο�είτε να ξεφο�τώνεστε π�οβληματικο�ς ή ανεπιθ�μητους ασθενείς, και να κάνετε έ�ευνα πάνω στα απομεινά�ια τους. Π�οσοχή - η χ�ήση αυτο� του μηχανήματος είναι εξαι�ετικά αμφιλεγόμενη.", epidemic_spreading = "Υπά�χει μια μεταδοτική ασθένεια στο νοσοκομείο σας. Π�οσπαθήστε να θε�απε�σετε τους μολυσμένους ανθ�ώπους, π�ιν μπο�έσουν να φ�γουν.", taking_your_staff = "Κάποιος λεηλατεί το π�οσωπικό σας. Θα π�έπει να παλέψετε για να τους κ�ατήσετε.", psychiatric_symbol = "Οι γιατ�οί που είναι εξειδικευμένοι σε ζητήματα Ψυχιατ�ικής φέ�ουν το σ�μβολο: |", research_symbol = "Οι γιατ�οί που μπο�ο�ν να κάνουν έ�ευνα φέ�ουν το σ�μβολο: }", first_epidemic = "Υπά�χει μια επιδημία στο νοσοκομείο σας! Αποφασίστε εάν θέλετε να το κουκουλώσετε ή να το πα�αδεχθείτε.", surgeon_symbol = "Οι γιατ�οί που μπο�ο�ν να χει�ου�γήσουν φέ�ουν το σ�μβολο: {", machine_needs_repair = "Διαθέτετε μια μηχανή, η οποία χ�ειάζεται επισκευή. Εντοπίστε τη μηχανή, η οποία θα βγάζει καπνό, και κάντε «κλικ» πάνω της. Στη συνέχεια, κάντε «κλικ» πάνω στο κουμπί του Πολυτεχνίτη.", first_VIP = "Είστε έτοιμοι να υποδεχθείτε τον π�ώτο σας VIP. Π�οσπαθήστε να βεβαιωθείτε ότι ο VIP δεν θα δει τίποτε ανθυγιεινό, ή δυστυχισμένους ασθενείς.", first_patients_thirsty = "Υπά�χουν διψασμένοι άνθ�ωποι στο νοσοκομείο σας. Τοποθετήστε αυτόματους πωλητές �οφημάτων γι' αυτο�ς.", first_emergency = "Οι Ασθενείς σε Κατάσταση Εκτάκτου Ανάγκης έχουν ένα παλλόμενο μπλε φως πάνω από τα κεφάλια τους. Θε�απε�στε τους π�ιν πεθάνουν ή λήξει το χ�ονικό ό�ιο.", rats_have_arrived = "Οι α�ου�αίοι έχουν μολ�νει το νοσοκομείο σας. Π�οσπαθήστε να τους συντ�ίψετε με το ποντίκι σας.", place_radiators = "Οι Άνθ�ωποι στο νοσοκομείο σας κ�υώνουν - μπο�είτε να τοποθετήσετε πε�ισσότε�α καλο�ιφέ�, επιλέγοντάς τα από το Μενο� των Αντικειμένων Διαδ�όμου.", decrease_heating = "Οι Άνθ�ωποι στο νοσοκομείο σας ζεσταίνονται πολ�. Κατεβάστε το επίπεδο θέ�μανσης. Αυτό γίνεται στην Οθόνη Πόλεως.", increase_heating = "Οι Άνθ�ωποι κ�υώνουν. Ανεβάστε την θε�μοκ�ασία πηγαίνοντας στην Οθόνη Πόλεως.", }, promotion_to_consultant = "Ένας από τους ΙΑΤΡΟΥΣ σας μόλις έγινε ΣΥΜΒΟΥΛΟΣ.", patient_abducted = "Ένας από τους ασθενείς σας απαγάγεται από εξωγήινους.", pay_rise = "Ένα μέλος του π�οσωπικο� απειλεί να πα�αιτηθεί. Επιλέξτε εάν συμφωνείτε με τις απαιτήσεις του ή αν θα τον απολ�σετε. Κάντε «κλικ» στο εικονίδιο κάτω και α�ιστε�ά, για να δείτε ποιο μέλος του π�οσωπικο� απειλεί να πα�αιτηθεί.", first_death = "Μόλις σκοτώσατε τον π�ώτο σας ασθενή. Πώς αισθάνεστε;", epidemic_health_inspector = "Η Είδηση της επιδημίας σας έχει φτάσει στο Υπου�γείο Υγείας. Ετοιμαστείτε για μια επίσκεψη ενός Επιθεω�ητή Υγείας σ�ντομα.", larger_rooms = "Τα μεγαλ�τε�α δωμάτια κάνουν το π�οσωπικό να νιώθει πιο σημαντικό και βελτιώνει την επίδοσή τους.", vip_arrived = "Π�οσοχή! Ο %s μόλις έφτασε για να πε�ιηγηθεί στο νοσοκομείο σας! Π�οσπαθήστε να κυλήσουν όλα ομ, ώστε να τον ευα�εστήσετε.", patient_leaving_too_expensive = "Ένας ασθενής φε�γει, δίχως να πλη�ώσει για %s. Είναι πανάκ�ιβα.", handyman_adjust = "Μπο�είτε να κάνετε τους Πολυτεχνίτες να καθα�ίσουν πιο αποτελεσματικά, με το να �υθμίσετε τις π�οτε�αιότητές τους.", epidemic = "Υπά�χει μια μεταδοτική ασθένεια στο νοσοκομείο σας. Π�έπει να την αντιμετωπίσετε αμέσως!", }, epidemic = { hurry_up = "Αν αυτή η επιδημία δεν αντιμετωπιστεί αμέσως, θα βυθιστείτε στα π�οβλήματα. Κουνηθείτε!", serious_warning = "Αυτή η Μεταδοτική Ασθένεια σοβα�ε�ει. Π�έπει να κάνετε κάτι σ�ντομα!", multiple_epidemies = "Φαίνεται πως υπά�χει πάνω από μία επιδημία η οποία συμβαίνει ταυτόχ�ονα. Αυτό μπο�εί να μετατ�απεί σε μια τε�άστια καταστ�οφή, γι' αυτό κινηθείτε γ�ήγο�α.", }, room_forbidden_non_reachable_parts = "Το να τοποθετήσετε το δωμάτιο σε αυτήν την τοποθεσία θα οδηγο�σε σε μη π�οσπελάσιμα σημεία του νοσοκομείου σας.", warnings = { place_plants_to_keep_people = "Ο κόσμος φε�γει. Τοποθετήστε φυτά και μπο�εί να τους πείσετε να μείνουν.", no_desk_3 = "Τέλεια, έχει πε�άσει σχεδόν ένας χ�όνος και ακόμη να π�οσλάβετε Ρεσεψιονίστ! Πώς πε�ιμένετε να έχετε ασθενείς, τακτοποιήστε το τώ�α και σταματήστε τις χαζομά�ες!", staff_unhappy = "Το π�οσωπικό σας είναι δυσα�εστημένο. Δοκιμάστε να τους δώσετε ένα μπόνους ή, ακόμα καλ�τε�α, να χτίσετε ένα Δωμάτιο Π�οσωπικο�. Θα μπο�ο�σατε ακόμα να αλλάξετε την πολιτική ξεκο��ασης π�οσωπικο� στην οθόνη Πολιτικής.", doctors_tired = "Οι Ιατ�οί σας είναι πολ� κου�ασμένοι. Ξεκου�άστε τους.", patients_thirsty = "Ο κόσμος α�χίζει να διψάει. Ίσως θα μπο�ο�σατε να τους π�ομηθε�σετε με αναψυκτή�ια.", researcher_needs_desk_3 = "Ο κάθε Ε�ευνητής χ�ειάζεται το δικό του γ�αφείο για να ε�γάζεται.", plants_thirsty = "Π�έπει να φ�οντίσετε τα φυτά σας. Έχουν α�χίσει και διψάνε.", patients_annoyed = "Ο κόσμος είναι τ�ομε�ά ενοχλημένος από τον τ�όπο με τον οποίο «τ�έχετε» το νοσοκομείο σας. Και δεν μπο�ώ να πω ότι τους κατηγο�ώ. Συγκεντ�ωθείτε ή αντιμετωπίστε τις συνέπειες!", too_many_plants = "Έχετε υπε�βολικά πολλά φυτά. Είναι μια ζο�γκλα εκεί μέσα.", queue_too_long_send_doctor = "Οι ου�ές σας για %s είναι πολ� μεγάλες. Σιγου�ευτείτε ότι υπά�χει ένας Γιατ�ός στο δωμάτιο.", hospital_is_rubbish = "Ο κόσμος λέει ανοιχτά ότι το νοσοκομείο σας είναι για τα σκουπίδια. Μετά έχει σει�ά να πά�ουν τις ασθένεις τους... και σ' άλλη πα�αλία.", receptionists_tired2 = "Οι Ρεσεψιονίστ σας είναι πολ� κου�ασμένες. Αφήστε τες να ξεκου�αστο�ν αυτή τη στιγμή.", no_desk_7 = "Έχετε χτίσει το γ�αφείο �εσεψιόν, οπότε τι λέτε να π�οσλάβετε μια �εσεψιονίστ; Δεν θα δείτε κανέναν ασθενή μέχ�ι να το τακτοποιήσετε αυτό, ξέ�ετε!", no_desk_2 = "Συγχα�ητή�ια, αυτό π�έπει να είναι παγκόσμιο �εκό�: κοντά ένας χ�όνος και κανένας ασθενής! Αν θέλετε να συνεχίσετε ως Διευθυντής αυτο� του νοσοκομείου, θα χ�ειαστεί να π�οσλάβετε μία �εσεψιονίστ και να χτίσετε ένα γ�αφείο �εσεψιόν για να μπο�εί να ε�γαστεί!", many_epidemics = "Φαίνεται ότι έχετε πε�ισσότε�ες από μία τ�έχουσες επιδημίες. Αυτή θα μπο�ο�σε να είναι μία τε�άστια καταστ�οφή, οπότε κινηθείτε γ�ήγο�α.", staff_too_hot = "Το π�οσωπικό σας υπε�θε�μαίνεται. Χαμηλώστε την θε�μοκ�ασία ή αφαι�έστε καλο�ιφέ� από τα δωμάτιά τους.", cash_low_consider_loan = "Η κατάσταση με τα οικονομικά σας είναι πολ� άσχημη. Έχετε σκεφτεί να πά�ετε κάποιο δάνειο;", people_have_to_stand = "Ο κόσμος υποφέ�ει και π�έπει να στέκεται ό�θιος. Τοποθετήστε πε�ισσότε�α παγκάκια τώ�α.", pay_back_loan = "Έχετε α�κετά χ�ήματα. Τι λέτε να πλη�ώσετε αυτό το νοίκι;", finanical_trouble2 = "Αυξήστε τα έσοδά σας ή ξοφλήσατε. Θα αποτ�χετε το επίπεδο αν χάσετε ακόμα %d.", staff_overworked = "Το π�οσωπικό σας είναι απίστευτα εξουθενωμένο. Η απόδοσή τους πέφτει και θα α�χίσουν να κάνουν καταστ�οφικά λάθη.", build_toilets = "Χτίστε μια Τουαλέτα εδώ και τώ�α ή θα δείτε κάτι πολ� δυσά�εστο. Και φανταστείτε πως θα μυ�ίζει το νοσοκομείο σας.", researcher_needs_desk_2 = "Ο Ε�ευνητής σας είναι ικανοποιημένος που του επιτ�έψατε να κάνει ένα διάλειμμα. Αν έχετε την π�όθεση να έχετε πε�ισσότε�ο π�οσωπικό στον τομέα της έ�ευνας, τότε π�έπει να πα�έχετε στον καθένα το δικό του γ�αφείο για να ε�γαστεί.", no_desk_1 = "Αν θέλετε να έ�θουν ασθενείς στο νοσοκομείο σας, θα χ�ειαστεί να π�οσλάβετε μία �εσεψιονίστ και να της χτίσετε ένα γ�αφείο!", place_plants3 = "Οι ασθενείς α�χίζουν και γίνονται δυσα�εστημένοι. Τοποθετήστε πε�ισσότε�α φυτά για να τους ανεβάσετε το ηθικό.", patients_too_hot = "Οι ασθενείς έχουν α�χίσει και ζεσταίνονται πολ�. Είτε αφαι�έστε με�ικά καλο�ιφέ�, χαμηλώστε την θε�μοκ�ασία ή τοποθετήστε πε�ισσότε�α αναψυκτή�ια.", falling_3 = "Άουτς, αυτό π�έπει να πόνεσε, κάποιος να καλέσει έναν Γιατ�ό!", place_plants2 = "Ο κόσμος α�χίζει και φε�γει. Αν υπή�χαν πε�ισσότε�α φυτά ίσως να έμεναν εδώ κι άλλο.", change_priorities_to_plants = "Π�έπει να αλλάξετε τις π�οτε�αιότητες των Πολυτεχνιτών σας έτσι ώστε να πε�νο�ν πε�ισσότε�ο χ�όνο ποτίζοντας τα φυτά σας.", staff_tired = "Το π�οσωπικό σας είναι υπε�βολικά κου�ασμένο. Αν δεν τους αφήσετε λίγο χ�όνο να ξεκου�αστο�ν σε ένα Δωμάτιο Π�οσωπικο�, κάποιοι μπο�εί να λυγίσουν από την πίεση.", machinery_very_damaged = "Έκτακτο! Καλέστε έναν Πολυτεχνίτη να επιδιο�θώσει τα μηχανήματά σας αμέσως! Π�όκειται να ανατιναχθο�ν!", research_screen_open_2 = "Η Έ�ευνα είναι απενε�γοποιημένη για το τ�έχον επίπεδο.", build_toilet_now = "Χτίστε μια τουαλέτα τώ�α. Ο κόσμος δεν μπο�εί να κ�ατηθεί άλλο. Μην χαμογελάτε - είναι σοβα�ά τα π�άγματα.", handymen_tired2 = "Οι Πολυτεχνίτες σας έχουν γίνει κομμάτια. Δώστε τους χ�όνο για ξεκο��αση αμέσως.", nurse_needs_desk_1 = "Κάθε �οσοκόμα π�έπει να έχει το δικό της γ�αφείο για να ε�γαστεί.", cannot_afford = "Δεν έχετε α�κετά χ�ήματα για να π�οσλάβετε αυτό το άτομο!", doctors_tired2 = "Οι Γιατ�οί σας είναι υπε�βολικά κου�ασμένοι. Χ�ειάζονται άμεση ξεκο��αση.", plants_dying = "Τα φυτά σας πεθαίνουν. Είναι απεγνωσμένα για νε�ό. Βάλτε πε�ισσότε�ους Πολυτεχνίτες να τα φ�οντίσουν. Τα νεκ�ά φυτά δεν α�έσουν στους ασθενείς.", nurse_needs_desk_2 = "Η �οσοκόμα σας είναι ευχα�ιστημένη που την αφήσατε να κάνει ένα διάλειμμα. Αν θέλατε να ε�γαζέται πα�απάνω από μία σε μια Πτέ�υγα, τότε π�έπει να πα�έχετε στην καθεμία το δικό της γ�αφείο.", doctor_crazy_overwork = "Ωχ όχι! Ένας από τους Γιατ�ο�ς σας τ�ελάθηκε από την πολλή δουλειά. Μπο�εί να ανα��ώσει αν τον ξεκου�άσετε αμέσως.", falling_6 = "Εδώ δεν είναι γήπεδο, δεν π�έπει να φέ�εστε έτσι στον ά��ωστο κόσμο!", many_killed = "Έχετε πλέον σκοτώσει %d ανθ�ώπους. Π�έπει να τους κάνετε να αισθάνονται καλ�τε�α, ξέ�ετε.", patient_stuck = "Κάποιος έχει κολλήσει. Σχεδιάστει καλ�τε�α την δομή του νοσοκομείου σας.", need_staffroom = "Χτίστε ένα Δωμάτιο Π�οσωπικο� για να ξεκου�άζονται οι υπάλληλοί σας.", queue_too_long_at_reception = "Υπά�χουν πά�α πολλοί ασθενείς που πε�ιμένουν για κατανομή δωματίων στη �εσεψιόν. Τοποθετήστε άλλον έναν Χώ�ο υποδοχής και π�οσλάβετε κι άλλη Ρεσεψιονίστ.", cannot_afford_2 = "Δεν έχετε α�κετά χ�ήματα στην τ�άπεζα, ώστε να π�αγματοποιήσετε αυτήν την αγο�ά!", litter_catastrophy = "Η κατάσταση των απο��ιμμάτων είναι αβυσσαλέα. Βάλτε μια ομάδα Πολυτεχνιτών να ε�γαστο�ν πάνω σε αυτό αμέσως!", litter_everywhere = "Υπά�χουν απο��ίμματα παντο�. Βάλτε με�ικο�ς Πολυτεχνίτες ν' ασχοληθο�ν με το π�όβλημα.", high_prices = "Οι αλλαγές σας για το %s είναι υψηλές. Αυτό θα αποφέ�ει υψηλά κέ�δη β�αχυπ�όθεσμα, ωστόσο εν τέλει θ' α�χίσετε να απωθείτε τους ανθ�ώπους.", patient_not_paying = "Ένας ασθενής έφυγε δίχως να πλη�ώσει για τα %s επειδή είναι πολ� ακ�ιβά!", patients_really_thirsty = "Οι Ασθενείς διψάνε πά�α πολ�. Τοποθετήστε πε�ισσότε�ους αυτόματους πωλητές ποτών, ή μετακινήστε ήδη υπά�χουντες κοντά στις μεγαλ�τε�ες ου�ές.", reception_bottleneck = "Υπά�χει μποτιλιά�ισμα στη Ρεσεψιόν. Π�οσλάβετε κι άλλη Ρεσεψιονίστ.", financial_trouble3 = "Ο τ�απεζικός σας ισολογισμός μοιάζει κάπως ανησυχητικός. Σκεφτείτε να βγάλετε πε�ισσότε�α χ�ήματα. Β�ίσκεστε %d μακ�ιά από την καταστ�οφή.", machine_severely_damaged = "Η %s είναι πολ� κοντά στο να της π�οκληθεί ανεπανό�θωτη ζημιά.", charges_too_high = "Οι τιμές σας είναι υψηλές. Αυτό θα αποφέ�ει υψηλά κέ�δη β�αχυπ�όθεσμα, ωστόσο εν τέλει θ' α�χίσετε να απωθείτε τους ανθ�ώπους.", reduce_staff_rest_threshold = "Π�οσπαθήστε να μειώσετε το Ό�ιο Άδειας Π�οσωπικο� στην οθόνη Πολιτικής, ώστε να ξεκου�άζονται πιο συχνά. Απλώς μια ιδέα>", nurses_tired2 = "Οι �οσοκόμες σας είναι πολ� κου�ασμένες. Ξεκου�άστε τες αμέσως.", no_desk_5 = "Λοιπόν, έφτασε σχεδόν η ώ�α, σιγά-σιγά θα δείτε ασθενείς να φτάνουν σ�ντομα!", machinery_damaged = "Επισκευάστε τις μηχανές σας σ�ντομα. Δεν θ' α�γήσουν ν' α�χίσουν να διαλ�ονται.", no_desk_6 = "Έχετε μία �εσεψιονίστ, οπότε τι θα λέγατε να κατασκευάσετε έναν χώ�ο υποδοχής, ώστε να ε�γάζεται από εκεί;", patients_very_cold = "Οι ασθενείς κ�υώνουν πολ�. Π�οσπαθήστε να ανεβάσετε τη θέ�μανση ή να τοποθετήσετε πε�ισσότε�α καλο�ιφέ� στο νοσοκομείο σας.", falling_4 = "Εδώ είναι �οσοκομείο, όχι Θεματικό Πά�κο!", patient_leaving = "Ένας Ασθενής φε�γει. Ο λόγος; Το νοσοκομείο σας έχει κακή διαχεί�ιση και κακή στελέχωση.", staff_unhappy2 = "Το π�οσωπικό σας είναι γενικά ανικανοποίητο. Σ�ντομα όλοι θα θέλουν πε�ισσότε�α χ�ήματα.", researcher_needs_desk_1 = "Ένας Ε�ευνητής χ�ειάζεται ένα γ�αφείο για να ε�γάζεται.", patients_thirsty2 = "Οι άνθ�ωποι πα�απονιο�νται ότι διψο�ν. Καλό θα ήταν να τοποθετήσετε με�ικο�ς ακόμη Αυτόματους Πωλητές Ποτών ή να μετακινήσετε ήδη υπά�χοντες πιο κοντά σε αυτο�ς.", research_screen_open_1 = "Π�έπει να χτίσετε ένα Τμήμα Ε�ευνών π�ιν αποκτήσετε π�όσβαση στην Οθόνη Έ�ευνας.", falling_1 = "Έι! Αυτό δεν είναι αστείο, π�όσεχετε πο� κάνετε «κλικ»: μπο�εί να χτυπήσει κανείς!", fair_prices = "Οι τιμές σας για τα %s φαίνονται λογικές και ισο��οπημένες.", money_very_low_take_loan = "Ο Τ�απεζικός σας Ισολογισμός είναι τ�ομε�ά χαμηλός. Ξέ�ετε, μπο�είτε να πά�ετε ένα δάνειο.", financial_trouble = "Έχετε σοβα�ά οικονομικά π�οβλήματα. Τακτοποιήστε τα οικονομικά σας αυτήν τη στιγμή! Αν χάσετε άλλα %d, θα το χάσετε αυτό το επίπεδο!", more_toilets = "Χ�ειάζεστε πε�ισσότε�ες τουαλέτες. Ο κόσμος κοντε�ει να τα κάνει επάνω του.", no_desk = "Θα π�έπει να χτίσετε ένα γ�αφείο �εσεψιόν και να π�οσλάβετε μια �εσεψιονίστ κάποια στιγμή!", receptionists_tired = "Οι Ρεσεψιονίστ σας είναι πά�α πολ� κου�ασμένες. Ξεκου�άστε τες αυτήν τη στιγμή.", no_desk_4 = "Μια Ρεσεψιονίστ π�έπει να έχει τον δικό της χώ�ο ε�γασίας για να καλωσο�ίζει τους ασθενείς καθώς φτάνουν", patients_leaving = "Οι ασθενείς φε�γουν. Βελτιώστε το νοσοκομείο για τους επισκέπτες σας τοποθετώντας φυτά, παγκάκια, αναψυκτή�ια και ο�τω καθεξής.", build_staffroom = "Χτίστε ένα Δωμάτιο Π�οσωπικο� αμέσως. Το π�οσωπικό σας ε�γάζεται πολ� σκλη�ά και είναι στα π�όθυ�α κατά��ευσης. Ελάτε στα λογικά σας!", people_did_it_on_the_floor = "Κάποιοι από τους ασθενείς σας δεν μπό�εσαν να κ�ατηθο�ν. Το καθά�ισμα θα είναι μεγάλη δουλειά για κάποιον.", queues_too_long = "Οι ου�ές σας είναι πολ� μεγάλες.", patients_unhappy = "Στους ασθενείς δεν α�έσει το νοσοκομείο σας. Π�έπει να κάνετε κάτι για να βελτιώσετε το πε�ιβάλλον τους.", need_toilets = "Οι ασθενείς χ�ειάζονται τουαλέτες. Χτίστε τες σε ένα ε�κολα π�οσβάσιμο μέ�ος.", falling_2 = "Τι θα λέγατε να σταματήσετε να χαζολογάτε;", people_freezing = "Απίστευτο, στην εποχή της κεντ�ικής θέ�μανσης, κάποιοι από τους ασθενείς σας έχουν γίνει παγάκια. Χτίστε καλο�ιφέ� για να τους ζεστάνετε και αυξήστε την θε�μοκ�ασία.", patients_very_thirsty = "Οι ασθενείς υποφέ�ουν π�αγματικά από την δίψα. Αν δεν βάλετε Αναψυκτή�ια σ�ντομα, θα έ�θετε αντιμέτωποι με μια μεγάλη αποχώ�ηση καθώς όλος ο κόσμος θα πάει σπίτι να πιει μια κόλα.", charges_too_low = "Χ�εώνετε πολ� λίγα. Αυτό θα φέ�ει κόσμο στο νοσοκομείο σας, αλλά δεν θα βγάλετε πολλά κέ�δη από τον καθένα τους.", handymen_tired = "Οι Πολυτεχνίτες σας είναι πολ� κου�ασμένοι. Ξεκου�άστε τους τώ�α.", money_low = "Τα χ�ήματά σας λιγοστε�ουν!", more_benches = "Σκεφτείτε να τοποθετήσετε πε�ισσότε�α παγκάκια. Στον ά��ωστο κόσμο δεν α�έσει να στέκεται ό�θιος.", machines_falling_apart = "Τα μηχανήματά σας διαλ�ονται. Οδηγήστε Πολυτεχνίτες σε αυτά τώ�α!", machinery_deteriorating = "Τα μηχανήματά σας έχουν α�χίσει να φθεί�ονται λόγω της υπε�χ�ησίας. Ρίχτε τους μια ματιά.", place_plants4 = "Βελτιώστε την διάθεση των Ασθενών τοποθετώντας πε�ισσότε�α φυτά τ�ιγ��ω.", nurses_tired = "Οι �οσοκόμες σας είναι κου�ασμένες. Ξεκου�άστε τις τώ�α.", no_patients_last_month = "Τον τελευταίο μήνα δεν είχατε κανέναν νέο ασθενή στο νοσοκομείο σας. Σοκα�ιστικό!", staff_very_cold = "Το π�οσωπικό πα�απονιέται για το κ��ο. Αυξήστε την θε�μοκ�ασία ή τοποθετήστε πε�ισσότε�α καλο�ιφέ�.", machinery_slightly_damaged = "Ο εξοπλισμός του νοσοκομείου σας είναι ελαφ�ώς φθα�μένος. Μην ξεχάσετε να π�αγματοποιήσετε ε�γασίες συντή�ησης κάποια στιγμή.", falling_5 = "Αυτό δεν είναι μέ�ος για να σπ�ώχνετε ανθ�ώπους, είναι ά��ωστοι ξέ�ετε!", low_prices = "Χ�εώνετε πολ� λίγα για %s. Αυτό θα φέ�ει κόσμο στο νοσοκομείο σας, αλλά δεν θα βγάλετε πολ� κέ�δος από τον καθένα τους.", nobody_cured_last_month = "Κυ�ιολεκτικά κανείς δεν θε�απε�τηκε τον π�οηγο�μενο μήνα.", patients_getting_hot = "Οι ασθενείς α�χίζουν και ζεσταίνονται πολ�. Δοκιμάστε να χαμηλώσετε την θε�μοκ�ασία ή ακόμα και να αφαι�έσετε με�ικά καλο�ιφέ�.", some_litter = "Οι Πολυτεχνίτες μπο�ο�ν να ξεφο�τωθο�ν αυτά τα σκουπιδιά π�ιν α�χίσουν να αποτελο�ν σοβα�ά π�όβλημα.", bankruptcy_imminent = "Έι! Οδε�ετε π�ος την χ�εοκοπία. Π�οσοχή!", too_much_litter = "Υπά�χει θέμα με τα σκουπίδια. Πε�ισσότε�οι Πολυτεχνίτες μπο�εί να δώσουν λ�ση.", machinery_damaged2 = "Θα π�έπει σ�ντομα να π�οσλάβετε έναν Πολυτεχνίτη να επιδιο�θώσει τα μηχανήματά σας.", epidemic_getting_serious = "Εκείνη η Μεταδοτική Ασθένεια α�χίζει και γίνεται σοβα�ή. Π�έπει να κάνετε κάτι σ�ντομα!", deal_with_epidemic_now = "Αν αυτή η επιδημία δεν αντιμετωπιστεί τώ�α, θα είστε βουτηγμένοι μέχ�ι το κεφάλι στα π�οβλήματα. Κουνηθείτε!", desperate_need_for_watering = "Χ�ειάζεστε απεγνωσμένα να π�οσλάβετε έναν Πολυτεχνίτη για να φ�οντίσει τα φυτά σας.", }, goals = { win = { value = "Π�έπει να αυξήσετε την αξία του νοσοκομείου σας σε %d", reputation = "Αυξήστε την φήμη σας σε %d για να ικανοποιήσετε τα κ�ιτή�ια νίκης του επιπέδου", money = "Χ�ειάζεστε ακόμα %d για να εκπλη�ώσετε τα οικονομικά κ�ιτή�ια σε αυτό το επίπεδο.", cure = "Θε�απε�στε ακόμα %d ασθενείς και θα έχετε θε�απε�σει α�κετο�ς για να κε�δίσετε αυτό το επίπεδο.", }, lose = { kill = "Σκοτώστε ακόμα %d ασθενείς για να χάσετε το επίπεδο!", }, }, competitors = { land_purchased = "Ο ανταγωνιστής %s μόλις αγό�ασε με�ική γη.", hospital_opened = "Ένα ανταγωνιστικό νοσοκομείο μόλις άνοιξε στην πε�ιοχή από %s.", staff_poached = "Ένα αντίπαλο �οσοκομείο έκλεψε ένα μέλος από το π�οσωπικό σας.", }, staff_place_advice = { only_researchers = "Οι Γιατ�οί μπο�ο�ν να ε�γαστο�ν σε ένα Τμήμα Ε�ευνών μόνο αν έχουν δεξιότητες Έ�ευνας.", only_surgeons = "Οι Γιατ�οί μπο�ο�ν να ε�γαστο�ν σε ένα Χει�ου�γείο μόνο αν έχουν δεξιότητες Εγχεί�ησης.", only_nurses_in_room = "Μόνο �οσοκόμες μπο�ο�ν να ε�γαστο�ν στο %s", receptionists_only_at_desk = "Οι Ρεσεψιονίστ μπο�ο�ν να ε�γαστο�ν μόνο σε γ�αφείο Ρεσεψιόν.", doctors_cannot_work_in_room = "Οι Γιατ�οί δεν μπο�ο�ν να ε�γαστο�ν στο %s", nurses_cannot_work_in_room = "Οι �οσοκόμες δεν μπο�ο�ν να ε�γαστο�ν στο %s", only_doctors_in_room = "Μόνο οι Γιατ�οί μπο�ο�ν να ε�γαστο�ν στο %s", only_psychiatrists = "Οι Γιατ�οί μπο�ο�ν να ε�γαστο�ν σε ένα Ψυχιατ�είο μόνο αν έχουν Ψυχιατ�ικές δεξιότητες.", }, build_advice = { door_not_reachable = "Ο κόσμος δεν θα μπο�ο�σε να έχει π�όσβαση αυτήν την πό�τα. Σκεφτείτε το.", blueprint_would_block = "Αυτό το σχεδιάγ�αμμα θα μπλόκα�ε άλλα δωμάτια. Δοκιμάστε να αλλάξετε το μέγεθός του, ή να το μετακινήσετε κάπου αλλο�!", blueprint_invalid = "Αυτό το σχεδιάγ�αμμα δεν είναι έγκυ�ο.", placing_object_blocks_door = "Αν τοποθετήσετε αυτό το αντικείμενο εκεί θα αποτ�έψετε τον κόσμο από το να έχει π�όσβαση σε μια πό�τα.", }, placement_info = { door_cannot_place = "Συγγνώμη αλλά δεν μπο�είτε να τοποθετήσετε αυτήν την πό�τα εδώ.", room_cannot_place_2 = "Δεν μπο�είτε να τοποθετήσετε αυτό το δωμάτιο εδώ.", staff_cannot_place = "Δεν μπο�είτε να τοποθετήσετε αυτό το π�οσωπικό εδώ. Συγγνώμη.", object_can_place = "Μπο�είτε να τοποθετήσετε αυτό το αντικείμενο εδώ.", reception_cannot_place = "Δεν μπο�είτε να τοποθετήσετε αυτό το γ�αφείο Ρεσεψιόν εδώ.", window_can_place = "Μπο�είτε να τοποθετήσετε αυτό το πα�άθυ�ο εδώ. Είναι εντάξει.", window_cannot_place = "Α. Δεν μπο�είτε να τοποθετήσετε αυτό το πα�άθυ�ο εδώ.", object_cannot_place = "Έι, δεν μπο�είτε να τοποθετήσετε αυτό το αντικείμενο εδώ.", door_can_place = "Μπο�είτε να τοποθετήσετε αυτήν την πό�τα εδώ αν θέλετε.", reception_can_place = "Μπο�είτε να τοποθετήσετε αυτό το γ�αφείο Ρεσεψιόν εδώ.", staff_can_place = "Μπο�είτε να τοποθετήσετε αυτό το π�οσωπικό εδώ. ", room_cannot_place = "Δεν μπο�είτε να τοποθετήσετε αυτό το δωμάτιο εδώ.", }, earthquake = { alert = "Π�οειδοποίηση σεισμο�. Κατά την διά�κεια ενός σεισμο� τα μηχανήματά σας θα υποστο�ν ζημιές. Αν δεν είναι καλά συντη�ημμένα μπο�εί να καταστ�αφο�ν.", damage = "Αυτός ο σεισμός έκανε ζημιές σε %d μηχανήματα και %d ανθ�ώπους στο νοσοκομείο.", ended = "Ουφ. �όμιζα ότι ήταν ο «Big One» - ήταν %d στην Κλίμακα Ρίχτε�.", }, level_progress = { another_patient_cured = "Συγχα�ητή�ια - ακόμη ένας θε�απευμένος ασθενής. Ανέ�χονται σε %d.", close_to_win_increase_value = "Πλησιάζετε κοντά στην νίκη. Αυξήστε την αξία του νοσοκομείου σας κατά %d.", three_quarters_won = "Έχετε διαν�σει τα τ�ία τέτα�τα του δ�όμου π�ος την νίκη αυτο� του επιπέδου.", three_quarters_lost = "Έχετε διαν�σει τα τ�ία τέτα�τα του δ�όμου π�ος την αποτυχία αυτο� του επιπέδου.", another_patient_killed = "Ωχ όχι! Έχετε σκοτώσει ακόμη έναν ασθενή. Οι θάνατοι τώ�α ανέ�χονται σε %d.", halfway_lost = "Είστε πε�ίπου στα μισά π�ος την αποτυχία αυτο� του επιπέδου.", improve_reputation = "Π�έπει να αυξήσετε την φήμη σας κατά %d για να έχετε πιθανότητα να κε�δίσετε αυτό το επίπεδο.", halfway_won = "Είστε πε�ίπου στα μισά για την νίκη αυτο� του επιπέδου.", cured_enough_patients = "Έχετε θε�απε�σει α�κετο�ς ασθενείς άλλα π�έπει να βελτιώσετε την λειτου�γία του νοσοκομείου σας για να κε�δίσετε αυτό το επίπεδο.", hospital_value_enough = "Κ�ατήστε την αξία του νοσοκομείου σας πάνω από %d και τακτοποιήστε τα υπόλοιπα π�οβλήματά σας για να κε�δίσετε το επίπεδο.", reputation_good_enough = "Εντάξει, η φήμη σας είναι α�κετά καλή για να κε�δίσετε αυτό το επίπεδο. Κ�ατήστε την πάνω από %d και τακτοποιήστε οποιαδήποτε άλλα π�οβλήματα για να το ολοκλη�ώσετε.", financial_criteria_met = "Έχετε ικανοποιήσει τα οικονομικά κ�ιτή�ια για αυτό το επίπεδο. Τώ�α κ�ατήστε τον π�οϋπολογισμό σας πάνω από %d, ενώ σιγου�ε�ετε ότι το νοσοκομείο σας λειτου�γεί αποτελεσματικά", dont_kill_more_patients = "Π�αγματικά δεν έχετε το πε�ιθώ�ιο να πεθάνουν κι άλλοι ασθενείς!", nearly_won = "Είστε πολ� κοντά στο να κε�δίσετε αυτό το επίπεδο.", nearly_lost = "Είστε πολ� κοντά στο να χάσετε αυτό το επίπεδο.", }, staff_advice = { need_doctors = "Χ�ειάζεστε πε�ισσότε�ους Γιατ�ο�ς. Δοκιμάστε να τοποθετήσετε τους καλ�τε�ους Γιατ�ο�ς σας στα δωμάτια με τις μεγαλ�τε�ες ου�ές.", need_handyman_plants = "Θα χ�ειαστεί να π�οσλάβετε έναν Πολυτεχνίτη για να ποτίσει τα φυτά.", need_handyman_litter = "Ο κόσμος έχει α�χίσει να �υπαίνει με σκουπίδια το νοσοκομείο σας. Π�οσλάβετε έναν Πολυτεχνίτη για να τα καθα�ίσει.", too_many_doctors = "Έχετε πά�α πολλο�ς Γιατ�ο�ς. Κάποιοι από αυτο�ς δεν έχουν να απασχοληθο�ν με κάτι.", too_many_nurses = "�ομίζω ότι αυτήν την στιγμή έχετε πά�α πολλές �οσοκόμες.", need_handyman_machines = "Θα χ�ειαστεί να π�οσλάβετε Πολυτεχνίτες αν θέλετε να συντη�ήσετε τα μηχανήματα στο νοσοκομείο σας.", need_nurses = "Θα χ�ειαστεί να π�οσλάβετε πε�ισσότε�ες �οσοκόμες. Οι Πτέ�υγες και τα Φα�μακεία χ�ειάζονται μια �οσοκόμα.", }, multiplayer = { players_failed = "Οι ακόλουθοι παίκτες απέτυχαν να ολοκλη�ώσουν τον τελευταίο στόχο : ", objective_completed = "Έχετε ολοκλη�ώσει τον στόχο. Συγχα�ητή�ια!", everyone_failed = "Κανείς δεν κατάφε�ε να ολοκλη�ώσει εκείνο τον τελευταίο στόχο. Οπότε όλοι συνεχίζουν το παιχνίδι !", objective_failed = "Αποτ�χατε να ολοκλη�ώσετε τον στόχο.", poaching = { in_progress = "Θα σας ενημε�ώσω σχετικά με το αν αυτό το άτομο επιθυμεί να έ�θει να ε�γαστεί για εσάς.", already_poached_by_someone = "Αποκλείεται! Κάποιος ήδη π�οσπαθεί να βουτήξει αυτό το άτομο.", not_interested = "Χα! Δεν ενδιαφέ�ονται να ε�γαστο�ν για εσάς - είναι χα�ο�μενοι εκεί που είναι.", }, }, vomit_wave = { started = "Φαίνεται πως έχετε έναν ιό εμετο� στο νοσοκομείο σας, αν το είχατε κ�ατήσει καθα�ότε�ο αυτό δεν θα είχε συμβεί. Ίσως π�έπει να π�οσλάβετε πε�ισσότε�ους Πολυτεχνίτες.", ended = "Ουφ! Φαίνεται πως ο ιός που π�οκάλεσε εκείνον τον εμετό έχει λίγο-πολ� εξασθενήσει. Κ�ατήστε το νοσοκομείο σας καθα�ό μελλοντικά.", }, } menu_options_volume = { [80] = " 80% ", [50] = " 50% ", [100] = " 100% ", [70] = " 70% ", [40] = " 40% ", [90] = " 90% ", [60] = " 60% ", [20] = " 20% ", [30] = " 30% ", [10] = " 10% ", } newspaper = { [1] = { [1] = "ΓΙΑΤΡΟΣ ΔΗΜΙΟΥΡΓΕΙ ΚΟΙ�Ω�ΙΚΗ ΚΑΤΑΚΡΑΥΓΗ", [2] = "ΤΡΕΛΟΣ ΓΙΑΤΡΟΣ ΠΑΡΙΣΤΑ�ΕΙ ΤΟ ΘΕΟ", [3] = "ΣΟΚ ΦΑΡΣΕΡ-ΣΤΑΪ�", [4] = "ΖΩ�ΤΑ�Ο �ΕΚΡΟΤΟΜΕΙΟ", [5] = "ΕΠΙΔΡΟΜΗ ΒΑΖΕΙ ΤΕΛΟΣ ΣΕ ΕΠΙΚΙ�ΔΥ�Η ΕΡΕΥ�Α", }, [2] = { [1] = "ΜΕΘ-ΥΣΜΕ�ΟΣ ΓΙΑΤΡΟΣ", [2] = "ΧΕΙΡΟΥΡΓΟΣ �ΤΕΦΙ", [3] = "ΞΕΦΑ�ΤΩΜΕ�ΟΣ ΣΥΜΒΟΥΛΟΣ", [4] = "ΧΕΙΡΟΥΡΓΙΚΟ ΣΦΗ�ΑΚΙ", [5] = "ΧΕΙΡΟΥΡΓΟΣ �ΕΡΟΧΥΤΗΣ", [6] = "ΧΕΙΡΟΥΡΓΙΚΑ Π�ΕΥΜΑΤΑ", }, [3] = { [1] = "ΧΕΙΡΟΥΡΓΟΣ ΠΟΥ ΣΚΙΖΕΙ", [2] = "ΔΟΚΤΩΡ ΤΣΙΤΣΙΔΗΣ", [3] = "ΔΟΚΤΩΡ ΚΑΤΡΑΚΥΛΑΕΙ", [4] = "ΑΧΟΡΤΑΓΟΣ ΧΕΙΡΟΥΡΓΟΣ", }, [4] = { [1] = "ΓΙΑΤΡΕΥΟ�ΤΑΣ ΤΑ �ΟΥΜΕΡΑ", [2] = "ΟΡΓΑ�Ο-ΜΕ�Ο ΕΓΚΛΗΜΑ", [3] = "ΕΓΧΕΙΡΗΣΗ BYPASS ΤΡΑΠΕΖΗΣ", [4] = "ΓΙΑΤΡΟΣ ΚΑΤΟΧΟΣ FUND", }, [5] = { [1] = "ΓΙΑΤΡΟΣ ΚΑ�ΕΙ ΕΠΙΔΡΟΜΗ ΣΕ ΦΕΡΕΤΡΟ", [2] = "ΓΙΑΤΡΟΣ ΑΔΕΙΑΖΕΙ ΤΑΦΟΥΣ", [3] = "ΠΙΑΣΤΗΚΕ ΜΕ ΠΤΩΜΑ", [4] = "ΗΜΕΡΑ ΤΗΣ ΚΡΙΣΗΣ ΤΟΥ ΔΡ. ΘΑ�ΑΤΟΥ", [5] = "ΤΕΡΜΑΤΙΚΗ ΑΜΕΛΕΙΑ", [6] = "ΣΚΑΨΙΜΟ ΓΙΑΤΡΟΥ ΚΑΤΑΔΙΚΑΖΕΤΑΙ", }, [6] = { [1] = "ΓΙΑΤΡΟΣ ΜΕ ΡΑΜΜΑΤΑ!", [2] = "SLACK QUACK", [3] = "Ε�ΟΧΟΠΟΙΗΤΙΚΗ ΔΙΑΓ�ΩΣΗ", [4] = "ΑΤΣΟΥΜΠΑΛΟΣ ΣΥΜΒΟΥΛΟΣ", }, [7] = { [1] = "ΓΙΑΤΡΟΣ ΔΕ� ΕΧΕΙ ΤΙΠΟΤΑ �Α ΚΑ�ΕΙ", [2] = "ΧΕΙΡΟΥΡΓΟΣ 'ΕΓΧΕΙΡΙΖΕΙ' ΤΟ� ΕΑΥΤΟ ΤΟΥ", [3] = "BOG BISHOP-BASHING", [4] = "DOCTOR'S HANDLE SCANDAL", [5] = "ΓΙΑΤΡΟΣ ΤΑ ΚΑ�ΕΙ Α�Ω ΚΑΤΩ", }, } menu = { player_count = "ΑΡΙΘΜΟΣ ΠΑΙΚΤΩ�", options = " ΕΠΙΛΟΓΕΣ ", file = " ΑΡΧΕΙΟ ", debug = " DEBUG ", display = " ΕΜΦΑ�ΙΣΗ ", charts = " ΓΡΑΦΗΜΑΤΑ ", } misc = { no_heliport = "Είτε δεν έχουν ανακαλυφθεί ακόμη ασθένειες, είτε δεν υπά�χει ελικοδ�όμιο σε αυτόν τον χά�τη. Μπο�εί να χ�ειάζεται να χτίσετε έναν χώ�ο υποδοχής και να π�οσλάβετε μια �εσεψιονίστ.", not_yet_implemented = "(δεν έχει υλοποιηθεί ακόμη)", save_failed = "ΣΦΑΛΜΑ: Το παιχνίδι δεν ήταν δυνατόν να αποθηκευτεί", done = "Όλα έτοιμα", low_res = "Χαμηλή ανάλυση", load_failed = "Το αποθηκευμένο παιχνίδι δεν φο�τώθηκε", save_success = "Το παιχνίδι αποθηκε�τηκε", grade_adverb = { moderately = "μέτ�ια", extremely = "ακ�αία", mildly = "ήπια", }, send_message_all = "Στείλτε Μήνυμα σε Όλους τους Παίκτες", mouse = "Ποντίκι", hospital_open = "�οσοκομείο Ανοιχτό", out_of_sync = "Το παιχνίδι β�ίσκεται εκτός συγχ�ονισμο�", pause = "Πα�ση", balance = "Α�χείο Ισο��οπίας:", force = "Δ�ναμη", send_message = "Στείλτε Μήνυμα στον Παίκτη %d", } menu_debug = { sprite_viewer = " SPRITE VIEWER ", display_pager = " DISPLAY PAGER ", remove_walls = " REMOVE WALLS ", connect_debugger = " (%1%) CONNECT LUA DBGp SERVER ", lose_game_anim = { [1] = " LOSE GAME 1 ANIM ", [2] = " LOSE GAME 2 ANIM ", [3] = " LOSE GAME 3 ANIM ", [4] = " LOSE GAME 4 ANIM ", [5] = " LOSE GAME 5 ANIM ", [6] = " LOSE GAME 6 ANIM ", [7] = " LOSE GAME 7 ANIM ", }, make_debug_fax = " MAKE DEBUG FAX ", keep_clear_cells = " KEEP CLEAR CELLS ", make_debug_patient = " MAKE DEBUG PATIENT ", map_overlay = " MAP OVERLAY ", entry_cells = " ENTRY CELLS ", debug_script = " (%1%) RUN DEBUG SCRIPT ", show_help_hotspot = " SHOW HELP HOTSPOTS ", enter_nav_debug = " ENTER NAV DEBUG ", porter_pagers = " PORTER PAGERS ", limit_camera = " LIMIT CAMERA ", cheats = " (%1%) CHEATS ", jump_to_level = " JUMP TO LEVEL ", machine_pagers = " MACHINE PAGERS ", pixbuf_cells = " PIXBUF CELLS ", dump_strings = " (%1%) DUMP STRINGS ", mapwho_checking = " MAPWHO CHECKING ", nav_bits = " NAV BITS ", win_game_anim = " WIN GAME ANIM ", disable_salary_raise = " DISABLE SALARY RAISE ", dump_gamelog = " (%1%) DUMP GAME LOG ", lua_console = " (%1%) LUA CONSOLE ", transparent_walls = " (%1%) TRANSPARENT WALLS ", display_room_status = " DISPLAY ROOM STATUS ", calls_dispatcher = " CALLS DISPATCHER ", show_nav_cells = " SHOW NAV CELLS ", remove_objects = " REMOVE OBJECTS ", win_level_anim = " WIN LEVEL ANIM ", object_cells = " OBJECT CELLS ", display_big_cells = " DISPLAY BIG CELLS ", plant_pagers = " PLANT PAGERS ", } customise_window = { average_contents = "Μέσα πε�ιεχόμενα", caption = "Π�οσα�μοσμένες Ρυθμίσεις", fractured_bones = "Σπασμένα Κόκαλα", intro = "Αναπα�αγωγή Βίντεο Εισαγωγής", back = "Πίσω", option_on = "On", aliens = "Εξωγήινοι Ασθενείς", option_off = "Off", paused = "Χτίσιμο κατά την Πα�ση", movies = "Global Movie Control", volume = "Volume down hotkey", } rooms_long = { research_room = "Τμήμα Ε�ευνών", emergency = "Έκτακτη Ανάγκη", blood_machine = "Δωμάτιο Μηχανήματος Αίματος", scanner = "Δωμάτιο Σα�ωτή", inflation = "Δωμάτιο Ξεφουσκώματος", x_ray = "Δωμάτιο Ακτινογ�αφίας", operating_theatre = "Χει�ου�γείο", staffroom = "Δωμάτιο Π�οσωπικο�", jelly_vat = "Δεξαμενή Ζελέ", psychiatric = "Ψυχιατ�είο", pharmacy = "Φα�μακείο", toilets = "Τουαλέτα", cardiogram = "Κα�διογ�άφημα", general = "Γενική", ward = "Πτέ�υγα", dna_fixer = "Επιδιο�θωτής DNA", ultrascan = "Δωμάτιο Ultrascan", tongue_clinic = "Κλινική Χαλα�ής Γλώσσας", general_diag = "Γενική Διάγνωση", fracture_clinic = "Κλινική Καταγμάτων", corridors = "Διάδ�ομοι", training_room = "Δωμάτιο Εκπαίδευσης", gps_office = "Γ�αφείο Γενικο� Ιατ�ο�", decontamination = "Απολ�μανση", hair_restoration = "Αποκατάσταση Μαλλιών", electrolysis = "Κλινική Ηλεκτ�όλυσης", } menu_options_warmth_colors = { choice_1 = " ΚΟΚΚΙ�Ο ", choice_2 = " ΜΠΛΕ ΠΡΑΣΙ�Ο ΚΟΚΚΙ�Ο ", choice_3 = " ΚΙΤΡΙ�Ο ΠΟΡΤΟΚΑΛΙ ΚΟΚΚΙ�Ο ", } map_editor_window = { pages = { heliport_4 = "Ελικοδ�όμιο 4", parcel_4 = "Οικόπεδο 4", delete_wall = "Διαγ�αφή τοίχων", hedgerow = "Θαμνοσει�ά", inside = "Εσωτε�ικό", pond = "Λιμνο�λα", road = "Δ�όμος", foliage = "Βλάστηση", heliport_3 = "Ελικοδ�όμιο 3", helipad = "Ελικοδ�όμιο", camera_2 = "Κάμε�α 2", camera_1 = "Κάμε�α 1", paste = "Πε�ιοχή επικόλλησης", north_wall = "Βό�ειος τοίχος", heliport_1 = "Ελικοδ�όμιο 1", parcel_8 = "Οικόπεδο 8", west_wall = "Δυτικός τοίχος", parcel_0 = "Οικόπεδο 0", parcel_1 = "Οικόπεδο 1", parcel_2 = "Οικόπεδο 2", camera_3 = "Κάμε�α 3", parcel_5 = "Οικόπεδο 5", parcel_7 = "Οικόπεδο 7", heliport_2 = "Ελικοδ�όμιο 2", camera_4 = "Κάμε�α 4", parcel_9 = "Οικόπεδο 9", parcel_3 = "Οικόπεδο 3", outside = "Έξω", parcel_6 = "Οικόπεδο 6", }, } menu_player_count = { players_4 = " 4 ΠΑΙΚΤΕΣ ", players_1 = " 1 ΠΑΙΚΤΗΣ ", players_2 = " 2 ΠΑΙΚΤΕΣ ", players_3 = " 3 ΠΑΙΚΤΕΣ ", } competitor_names = { [1] = "ORAC", [2] = "COLOSSUS", [3] = "HAL", [4] = "MULTIVAC", [5] = "HOLLY", [6] = "DEEP THOUGHT", [7] = "ZEN", [8] = "LEON", [9] = "MARVIN", [10] = "AKIRA", [11] = "MOTHER", [12] = "JAYNE", [13] = "CORSIX", [14] = "ROUJIN", [15] = "EDVIN", [16] = "SAM", [17] = "CHARLIE", [18] = "ARTHUR", [19] = "MAGNUS", [20] = "SAL", [21] = "JOSHUA", [22] = "DANEEL", [23] = "OLIVAW", [24] = "NIC", } town_map = { for_sale = "Π�ος Πώληση", chat = "Τσατ Λεπτομε�ειών Πόλης", number = "Α�ιθμός Οικοπέδου", area = "Πε�ιοχή Οικοπέδου", price = "Τιμή Οικοπέδου", not_for_sale = "Δεν Πωλείται", owner = "Ιδιοκτήτης Οικοπέδου", } drug_companies = { [1] = "Drugs-U-Like", [2] = "Cures R Us", [3] = "Jagged Little Pill Co.", [4] = "Pootle Fenster Ltd.", [5] = "Omnidrug Corp.", } progress_report = { percentage_pop = "% πληθυσμο�", more_drinks_machines = "Χτίστε πε�ισσότε�α αναψυκτή�ια. ", win_criteria = "ΚΡΙΤΗΡΙΑ �ΙΚΗΣ", header = "Αναφο�ά Π�οόδου", quite_unhappy = "Ο κόσμος σας είναι ιδιαίτε�α δυσα�εστημένος. ", too_hot = "Τακτοποιήστε το σ�στημα θέ�μανσή σας. Έχει υπε�βολική ζέστη. ", very_unhappy = "Ο κόσμος σας είναι πολ� δυσα�εστημένος. ", free_build = "ΕΛΕΥΘΕΡΟ ΧΤΙΣΙΜΟ", too_cold = "Πα�αείναι κ��α. Τοποθετήστε καλο�ιφέ�. ", } humanoid_name_starts = { [1] = "GOLD", [2] = "HIGH", [3] = "AND", [4] = "BEN", [5] = "BAN", [6] = "BILL", [7] = "WY", [8] = "WAT", [9] = "POD", [10] = "KING", [11] = "BAR", [12] = "PET", [13] = "MAN", [14] = "BOY", [15] = "WAR", [16] = "JACK", [17] = "CRAB", [18] = "FISH", [19] = "WATER", [20] = "MIL", [21] = "BY", [22] = "FEN", [23] = "RICH", [24] = "SCOT", [25] = "BUR", [26] = "PIKE", [27] = "CUR", [28] = "WHIT", [29] = "BINN", [30] = "BONN", [31] = "POG", [32] = "WRIGHT", [33] = "KER", } confirmation = { replace_machine = "Είστε σίγου�οι ότι θέλετε να αντικαταστήσετε το %s για το $%d?", overwrite_save = "Ένα παιχνίδι είναι ήδη αποθηκευμένο σε αυτήν τη θέση. Είστε σίγου�οι ότι θέλετε να το αντικαταστήσετε;", sack_staff = "Είστε σίγου�οι ότι επιθυμείτε να απολ�σετε αυτό το μέλος του π�οσωπικο�;", maximum_screen_size = "Το μέγεθος οθόνης που έχετε καταχω�ήσει είναι μεγαλ�τε�ο από 3000 x 2000. Αναλ�σεις μεγαλ�τε�ες από αυτήν είναι πιθανές, ωστόσο θα απαιτήσουν καλ�τε�ο hardware, ώστε να διατη�ήσουν ένα μια αναπα�άξιμη συχνότητα λήψεων (frame rate). Είστε σίγου�οι ότι θέλετε να συνεχίσετε;", needs_restart = "Αλλάζοντας αυτήν την επιλογή απαιτείται η επανεκκίνηση του CorsixTH. Οποιαδήποτε μη-αποθηκευμένη π�όοδος θα χαθεί. Είστε σίγου�οι ότι θέλετε να το κάνετε;", return_to_blueprint = "Είστε σίγου�οι ότι θέλετε να επιστ�έψετε στη λειτου�γία Σχεδιαγ�άμματος;", delete_room = "Είστε σίγου�οι ότι επιθυμείτε να διαγ�άψετε αυτό το δωμάτιο;", quit = "Επιλέξατε την Έξοδο. Είστε σίγου�οι ότι θέλετε να φ�γετε από το παιχνίδι;", restart_level = "Είστε σίγου�οι ότι θέλετε να ξεκινήσετε το επίπεδο από την α�χή;", abort_edit_room = "Αυτή τη στιγμή χτίζετε ή επεξε�γάζεστε ένα δωμάτιο. Αν όλα τα απαιτο�μενα αντικείμενα τοποθετηθο�ν, τότε θα ολοκλη�ωθεί, διαφο�ετικά θα διαγ�αφεί. Θέλετε να συνεχίσετε;", } place_objects_window = { place_windows = "Τοποθετήστε με�ικά πα�άθυ�α, αν θέλετε. Στη συνέχεια, κάντε «κλικ» στην επιβεβαίωση.", place_door = "Τοποθετήστε την πό�τα", drag_blueprint = "Τ�αβήξτε π�ος τα έξω το σχεδιάγ�αμμα μέχ�ι να είστε ευχα�ιστημένοι με το μέγεθός του", confirm_or_buy_objects = "Μπο�είτε να επιβεβαιώσετε το δωμάτιο, ή να αγο�άσετε ή να μετακινήσετε με�ικά αντικείμενα", place_objects = "Τοποθετήστε τα αντικείμενα και μετακινήστε τα μέχ�ι να είστε ευχα�ιστημένοι. Στη συνέχεια, επιβεβαιώστε", pick_up_object = "Κάντε «κλικ» στο αντικείμενο για να το σηκώσετε, ή επιλέξτε μια διαφο�ετική επιλογή από τον αιτο�ντα", place_objects_in_corridor = "Τοποθετήστε τα αντικείμενα κάτω σε έναν διάδ�ομο", } main_menu = { map_edit = "Επεξε�γασία Χά�τη", custom_campaign = "Π�οσα�μοσμένη Καμπάνια", new_game = "Καμπάνια", savegame_version = "Έκδοση αποθηκευμένου παιχνιδιο�: ", exit = "Έξοδος", options = "Ρυθμίσεις", custom_level = "Μοναδικό Σενά�ιο", continue = "Συνέχεια Παιχνιδιο�", load_game = "Φό�τωση Παιχνιδιο�", version = "Έκδοση: ", } pay_rise = { definite_quit = "Δεν μπο�είτε να κάνετε τίποτα για να με κ�ατήσετε. Ως εδώ έχω φτάσει με αυτό το μέ�ος.", poached = "Μου έχουν π�οσφέ�ει %d από %s. Εκτός και αν με πλη�ώσετε τα ίδια, την έκανα.", regular = { [1] = "Είμαι τελείως εξουθενωμένος. Χ�ειάζομαι μια καλή ξεκο��αση, και μια α�ξηση των %d αν δεν θέλετε να πα�ατήσω αυτήν την παλιοδουλειά.", [2] = "Είμαι πολ� κου�ασμένος. Χ�ειάζομαι ξεκο��αση και μια α�ξηση μισθο� των %d, βάζοντάς με στα %d. Κάν'το τώ�α, τ��αννε.", [3] = "Έλα τώ�α. Δουλε�ω σαν το σκυλί εδώ. Δώστε μου μπόνους των %d και θα πα�αμείνω στο νοσοκομείο σας.", [4] = "Είμαι πολ� δυσα�εστημένος. Απαιτώ α�ξηση των %d, τοποθετώντας τον μισθό μου στα %d, αλλιώς την έκανα από δω.", [5] = "Οι γονείς μου μου είπαν ότι τα ιατ�ικά επαγγέλματα πλή�ωναν καλά. Οπότε δώστε μου α�ξηση των %d ή θα γίνω πα�αγωγός βιντεοπαιχνιδιών.", [6] = "�ισάφι πια. Πλη�ώστε με έναν αξιοπ�επή μισθό. Θεω�ώ πως μια α�ξηση των %d θα κάνει την δουλειά.", }, } menu_list_window = { back = "Πίσω", save_date = "Τ�οποποιημένο", name = "Όνομα", } policy = { diag_procedure = "διαδικασία διάγνωσης", diag_termination = "τε�ματισμός διάγνωσης", staff_leave_rooms = "το π�οσωπικό αποχω�εί από δωμάτια", header = "ΠΟΛΙΤΙΚΗ �ΟΣΟΚΟΜΕΙΟΥ", sliders = { stop = "ΠΑΥΣΗ ΔΙΑΔΙΚΑΣΙΑΣ", send_home = "ΑΠΟΣΤΟΛΗ ΣΤΟ ΣΠΙΤΙ", staff_room = "ΜΕΤΑΒΑΣΗ ΣΤΟ ΔΩΜΑΤΙΟ ΠΡΟΣΩΠΙΚΟΥ", guess = "ΕΙΚΑΣΙΑ ΘΕΡΑΠΕΙΑΣ", }, staff_rest = "αποστολή π�οσωπικο� για ξεκο��αση", } buy_objects_window = { price = "Τιμή: ", choose_items = "Επιλογή Αντικειμένων", total = "Σ�νολο: ", } menu_file_load = { [1] = " ΠΑΙΧ�ΙΔΙ 1 ", [2] = " ΠΑΙΧ�ΙΔΙ 2 ", [3] = " ΠΑΙΧ�ΙΔΙ 3 ", [4] = " ΠΑΙΧ�ΙΔΙ 4 ", [5] = " ΠΑΙΧ�ΙΔΙ 5 ", [6] = " ΠΑΙΧ�ΙΔΙ 6 ", [7] = " ΠΑΙΧ�ΙΔΙ 7 ", [8] = " ΠΑΙΧ�ΙΔΙ 8 ", } menu_charts = { status = " (%1%) ΚΑΤΑΣΤΑΣΗ ", bank_manager = " (%1%) ΜΑ�ΑΤΖΕΡ ΤΡΑΠΕΖΑΣ ", graphs = " (%1%) ΓΡΑΦΗΜΑΤΑ ", town_map = " (%1%) ΧΑΡΤΗΣ ΠΟΛΗΣ ", staff_listing = " (%1%) ΛΙΣΤΑ ΠΡΟΣΩΠΙΚΟΥ ", policy = " (%1%) ΠΟΛΙΤΙΚΗ ", briefing = " Ε�ΗΜΕΡΩΣΗ ", casebook = " (%1%) ΑΡΧΕΙΟ ΥΠΟΘΕΣΕΩ� ", statement = " (%1%) ΔΗΛΩΣΗ ", research = " (%1%) ΕΡΕΥ�Α ", } errors = { could_not_find_first_campaign_level = "Δεν ήταν δυνατή η ε��εση του π�ώτου επιπέδου αυτή της καμπάνιας: %s", save_prefix = "Σφάλμα κατά την αποθήκευση του παιχνιδιο�: ", no_games_to_contine = "Δεν υπά�χουν αποθηκευμένα παιχνίδια.", load_prefix = "Σφάλμα κατά την φό�τωση του παιχνιδιο�: ", dialog_missing_graphics = "Συγγνώμη, τα α�χεία δεδομένων του demo δεν πε�ιλαμβάνουν αυτόν τον διάλογο.", map_file_missing = "Δεν ήταν δυνατή η φό�τωση του α�χείου χά�τη %s για αυτό το επίπεδο!", load_quick_save = "Σφάλμα, δεν είναι δυνατή η φό�τωση του quicksave καθώς δεν υπά�χει, αλλά μην ανησυχείτε καθώς δημιου�γήσαμε ένα τώ�α για εσάς!", unavailable_screen_size = "Το μέγεθος οθόνης που απαιτήσατε δεν είναι διαθέσιμο στην λειτου�γία πλή�ης οθόνης.", minimum_screen_size = "Πα�ακαλώ εισάγετε ένα μέγεθος οθόνης τουλάχιστον %dx%d.", alien_dna = "ΣΗΜΕΙΩΣΗ: Δεν υπά�χουν animations για Εξωγήινους ασθενείς για να κάθονται, να ανοίγουν ή να χτυπάνε πό�τες κτλ. Έτσι, όπως με το Theme Hospital, για να κάνουν αυτές τις ενέ�γειες θα φαίνονται να αλλάζουν σε κανονικο�ς ασθενείς και μετά να επανέ�χονται. Οι ασθενείς με Εξωγήινο DNA θα εμφανίζονται μόνο αν έχουν �υθμιστεί στο α�χείο επιπέδου", fractured_bones = "ΣΗΜΕΙΩΣΗ: Το animation για τους θηλυκο�ς ασθενείς με Σπασμένα Κόκαλα δεν είναι τέλειο", could_not_load_campaign = "Σφάλμα κατά την φό�τωση της καμπάνιας: %s", } vip_names = { [1] = "Δήμα�χος του Greater Trumpton", [2] = "Lawrence Nightingale", [3] = "Βασιλιάς Βε�νά�δος της Ολλανδίας", [4] = "Aung Sang Su Kyi, ο Βι�μανός Ηγέτης της Δημοκ�ατικής Αντιπολίτευσης", [5] = "Sir Reginald Crumbly", [6] = "Sir Lancelot Spratt", [7] = "Σ�μβουλος Crawford Purves", [8] = "Rocket Ronnie Jepson", [9] = "Ποδοσφαι�ιστής π�ώτης εθνικής", [10] = "L. F. Probst, III", health_minister = "Υπου�γός Υγείας", } save_game_window = { caption = "Αποθηκευμένο Παιχνίδι (%1%)", new_save_game = "�έο Savegame", } fax = { debug_fax = { text11 = "Α�ΘΡΩΠΟΙ ΑΥΤΟ ΤΟ ΜΗ�Α %d", text3 = "�ΟΥΜΕΡΑ : ΓΙΑΤΡΟΙ %d �ΟΣΟΚΟΜΕΣ %d ΠΕΡΙΟΧΗ %d ΔΩΜΑΤΙΑ %d ΤΙΜΗ %d", text10 = "ΘΑ�ΑΤΟΙ %d ΕΠΙΤΡΕΠΤΟΙ (MTHS) %d (%d) ΜΕΙΩΣΗ %d", text5 = "ΣΥ�ΕΙΣΦΟΡΑ : ΓΙΑΤΡΟΙ %d �ΟΣΟΚΟΜΕΣ %d ΠΕΡΙΟΧΗ %d ΔΩΜΑΤΙΑ %d ΤΙΜΗ %d ΠΟΣΟΣΤΟ", text8 = "AMENITIES %d PEEPS HANDLED %d REDUCTION %d", text2 = "TOTAL PEOPLE IN HOSPITAL %d CHECKING AGAINST %d", text9 = "DISASTERS %d ALLOWED (MTHS) %d (%d)REDUCTION %d", text6 = "THE FOLLOWING FACTORS ARE ALSO APPLIED", close_text = "Yeah, yeah, yeah!", text7 = "REPUTATION: %d EXPECTED %d REDUCTION %d", text4 = "FACTORS : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", text1 = "BEST COUNT %d", }, vip_visit_result = { rep_boost = "Η φήμη σας στην κοινότητα έχει ενισχυθεί.", telegram = "Τηλέγ�αμμα!", vip_remarked_name = "Αφο� επισκέφτηκε το νοσοκομείο σας, ο %s σχολίασε:", close_text = "Ευχα�ιστο�με που επισκεφτήκατε το νοσοκομείο.", rep_loss = "Η φήμη σας έχει υποστεί ανάλογες μειώσεις.", cash_grant = "Σας έχει απονεμηθεί χ�ηματικό β�αβείο των %d.", remarks = { free_build = { [1] = "Έχετε ένα πολ� ω�αίο νοσοκομείο! Δεν είναι και τόσο δ�σκολο να το διαχει�ίζεστε δίχως πε�ιο�ισμο�ς στα χ�ήματα όμως, ε;", [2] = "Δεν είμαι οικονομολόγος, αλλά πιστε�ω ότι θα μπο�ο�σα να τ�έξω και εγώ αυτό το νοσοκομείο αν καταλαβαίνετε τι εννοώ...", [3] = "Ένα νοσοκομείο που λειτου�γεί άψογα. Π�οσέχτε την άνοδο της οικονομικής κ�ίσης όμως! Σωστά... δεν χ�ειάζεται να ανησυχείτε για αυτό.", }, [1] = "Τι φανταστικό νοσοκομείο. Όταν θα ξαναα��ωστήσω βα�ιά, πηγαίντε με εκεί.", [2] = "ΑΥΤΟ είναι νοσοκομείο.", [3] = "Καταπληκτικό νοσοκομείο. Αν ξέ�ει κάποιος, αυτός είμαι εγώ, έχω πάει σε α�κετά.", [4] = "Β�ίσκω πολ� καλή την λειτου�γία του νοσοκομείου. Σας ευχα�ιστώ που με π�οσκαλέσατε.", [5] = "Χμμ. Καθόλου κακό ιατ�ικό ίδ�υμα, αυτό είναι σίγου�ο.", [6] = "Απόλαυσα το μαγευτικό νοσοκομείο σας. Τώ�α, ψήνεται κανείς για curry στο Taj;", [7] = "Λοιπόν, έχω δει και χει�ότε�α. Αλλά π�έπει να κάνετε ο�ισμένες βελτιώσεις.", [8] = "Ω Θεέ μου. Όχι και τόσο ευχά�ιστο μέ�ος για να πάει κανείς αν δεν αισθάνεται καλά.", [9] = "Είναι ένα νο�μάλ νοσοκομείο, για να είμαι ειλικ�ινής. Ειλικ�ινά, πε�ίμενα πε�ισσότε�α.", [10] = "Γιατί ασχολο�μαι καν; Ήταν χει�ότε�ο από το να παω να δω τετ�άω�η όπε�α!", [11] = "Είμαι αηδιασμένος από αυτό που είδα. Αυτό το λέτε νοσοκομείο; Πιο πολ� σε χοι�οστάσιο κάνει!", [12] = "Έχω κου�αστεί να είμαι στο φως της δημοσιότητας και να επισκέπτομαι β�ωμε�ά αχο��ια σαν και αυτό! Πα�αιτο�μαι.", [13] = "Τι αχο��ι. Θα π�οσπαθήσω να τε�ματίσω την λειτου�γία του.", [14] = "Δεν έχω δει ξανά ένα τόσο αξιοθ�ήνητο νοσοκομείο. Τι απαίσιο!", [15] = "Είμαι σοκα�ισμένος. Δεν μπο�είτε να το αποκαλείτε αυτό νοσοκομείο! Έφυγα για μπ��α.", }, }, diagnosis_failed = { choices = { send_home = "Αποστόλη Ασθενή στο σπίτι.", take_chance = "Δοκιμάστε μια πιθανή θε�απεία.", wait = "Αφήστε τον Ασθενή να πε�ιμένει, ενώ χτίζετε και άλλα διαγνωστικά δωμάτια.", }, what_to_do_question = "Τι να κάνουμε με τον ασθενή;", situation = "Έχουμε εξαντλήσει όλα μας τα μηχανήματα διάγνωσης σε αυτόν τον ασθενή και ακόμα δεν είμαστε σίγου�οι τι δεν πάει καλά.", partial_diagnosis_percentage_name = "Υπά�χει %d τοις εκάτο πιθανότητα να έχουμε αναγνω�ίσει σωστά τι τ�πο %s έχει ο ασθενής.", }, choices = { return_to_main_menu = "Επιστ�οφή στο κ��ιο μενο�", accept_new_level = "Μετάβαση στο επόμενο επίπεδο", decline_new_level = "Συνεχίστε να παίζετε λίγο πα�απάνω", }, disease_discovered_patient_choice = { guessed_percentage_name = "Η όμαδα σας έπ�επε να μαντέψει σχετικά με την ασθένεια ενός ασθενή. Υπά�χει %d τοις εκατό πιθανότητα να είναι %s", disease_name = "Η ομάδα σας έχει ανακαλ�ψει μια καινο��ια ασθένεια. Ονομάζεται %s", need_to_build_and_employ = "Αν χτίσετε ένα %s και π�οσλάβετε %s μπο�είτε να επιτ�χετε.", need_to_build = "Π�έπει να χτίσετε ένα %s για να μπο�έσετε να το αντιμετωπίσετε αυτό.", can_not_cure = "Δεν μπο�είτε να θε�απε�σετε αυτήν την ασθένεια.", what_to_do_question = "Τι επιθυμείτε να κάνετε με τον ασθενή;", need_to_employ = "Π�οσλάβετε έναν/μία %s για να αντιμετώπισετε αυτήν την κατάσταση.", choices = { send_home = "Αποστολή Ασθενή στο σπίτι.", research = "Αποστολή ασθενή στο Τμήμα Ε�ευνών.", wait = "Αφήστε τον Ασθενή να πε�ιμένει στο νοσοκομείο για λίγο.", }, }, vip_visit_query = { choices = { invite = "Αποστόλη Επίσης Π�όσκλησης στον V.I.P.", refuse = "Ξεφο�τωθείτε τον V.I.P με δικαιολογίες.", }, vip_name = "Ο %s εξέφ�ασε την επιθυμία να επισκεφτεί το νοσοκομείο σας", }, disease_discovered = { need_to_build = "Π�έπει να χτίσετε ένα %s για να μπο�έσετε να το αντιμετωπίσετε.", need_to_build_and_employ = "Αν χτίσετε ένα %s και π�οσλάβετε έναν %s μπο�είτε να επιτ�χετε.", close_text = "Μια νέα πάθηση έχει β�εθεί.", can_cure = "Μπο�είτε να αντιμετωπίσετε αυτήν την ασθένεια.", need_to_employ = "Π�οσλάβετε έναν %s για να μπο�έσετε να χει�ιστείτε την κ�ίση.", discovered_name = "Η ομάδα σας ανακάλυψε μια νέα πάθηση. Είναι η %s", }, emergency_result = { close_text = "Κάντε «κλικ» για να π�αγματοποιήσετε έξοδο.", earned_money = "Από το μέγισο μπόνους των %d, έχετε κε�δίσει %d.", saved_people = "Σώσατε %d ανθ�ώπους από τους %d συνολικά.", }, emergency = { choices = { accept = "�αι. Είμαι έτοιμος/η να χει�ιστώ το επείγον πε�ιστατικό. ", refuse = "Όχι. Α�νο�μαι να χει�ιστώ το επείγον πε�ιστατικό.", }, num_disease = "Υπά�χουν %d άνθ�ωποι με %s και χ�ήζουν άμεσης πα�ακολο�θησης.", cure_not_possible = "Δεν μπο�είτε να θε�απε�σετε αυτήν την ασθένεια αυτήν τη στιγμή.", locations = { [1] = "Χημική Βιομηχανία Θάτσε�.", [2] = "Πανεπιστήμιο Σνάιντ.", [3] = "το Ανθοκομικό Κέντ�ο Πα�ακουάτ.", [4] = "το Ινστιτο�το Ε�ευνών Επικίνδυνων Ουσιών.", [5] = "το Συνέδ�ιο Χο�ευτών Μό��ις.", [6] = "η παμπ «Βάτ�αχος και Τα��ος».", [7] = "Γ�αφείο Κηδειών και Κάβα του Μεγάλου �τέιβ.", [8] = "το Ινδικό εστιατό�ιο Ταζ.", [9] = "Πολυκατάστημα Χ�ησιμοποιημένων Πετ�οχημικών του Μπε�τ.", }, free_build = "Εαν είστε επιτυχής, η φήμη σας θα αυξηθεί, ωστόσο αν αποτ�χετε, η φήμη σας θα πληγεί δ�αματικά.", cure_possible = "Έχετε τα σωστά ε�γαλεία και δεξιότητες, οπότε ίσως να μπο�έσετε να χει�ιστείτε αυτό το επείγον πε�ιστατικό.", cure_possible_drug_name_efficiency = "Ήδη έχετε τα απα�αίτητα ε�γαλεία και δεξιότητες. Έχετε το φά�μακο που χ�ειάζεστε. Είναι %s και το φά�μακο είναι το %d τοις εκατό αποτελεσματικό.", num_disease_singular = "Υπά�χει 1 άτομο με %s και χ�ήζει άμεσης πα�ακολο�θησης.", location = "Υπά�χει ένα πε�ιστατικό στην τοποθεσία %s", cure_not_possible_employ = "Θα χ�ειαστεί να π�οσλάβετε έναν/μία %s", cure_not_possible_build_and_employ = "Θα χ�ειαστεί να χτίσετε ένα/μία %s και να π�οσλάβετε έναν/μία %s", cure_not_possible_build = "Θα χ�ειαστεί να χτίσετε ένα/μία %s", bonus = "Υπά�χει ένα μέγιστο μπόνους από %d διαθέσιμο για να χει�ιστείτε αυτό το επείγον πε�ιστατικό. Αν αποτ�χετε, ωστόσο, η φήμη σας θα πληγεί δ�αματικά.", }, epidemic = { choices = { cover_up = "Π�οσπαθήστε να θε�απε�σετε όλους τους μολυσμένους ασθενείς στον π�οκαθο�ισμένο χ�όνο και π�οτο� κάποιος φ�γει από το νοσοκομείο σας.", declare = "Δηλώστε μία Επιδημία. Πλη�ώστε π�όστιμο με το ανάλογο πλήγμα στην φήμη σας.", }, disease_name = "Οι Γιατ�οί σας ανακάλυψαν ένα μεταδοτικό στέλεχος από %s.", cover_up_explanation_1 = "Ωστόσο, αν π�οσπαθήσετε να το κουκουλώσετε, θα έχετε πε�ιο�ισμένο χ�όνο για να θε�απε�σετε όλους τους μολυσμένους ασθενείς, π�ιν το ανακαλ�ψουν οι Υγειονομικές Α�χές.", declare_explanation_fine = "Αν κη��ξετε επιδημία, θα πλη�ώσετε π�όστιμο των %d, η φήμη σας θα κλωνιστεί και όλοι οι ασθενείς σας θα εμβολιαστο�ν αυτομάτως.", cover_up_explanation_2 = "Αν ένας Επιθεω�ητής Υγείας σας επισκεφτεί και ανακαλ�ψει ένα τ�έχον κουκο�λωμα επιδημίας, μπο�εί να λάβει δ�αστικά μέτ�α εναντίον σας.", }, epidemic_result = { rep_loss_fine_amount = "Οι εφημε�ίδες θα έχουν την τιμητική τους πάνω σε αυτό. Η φήμη σας θα αμαυ�ωθεί βα�ιά. Συν τοις άλλοις, θα σας επιβληθεί π�όστιμο των %d.", failed = { part_2 = "το π�οσωπικό του νοσοκομείο σας έχει π�οκαλέσει την εξάπλωση της ασθένειας στο κοινό που ζει κοντά στο νοσοκομείο.", part_1_name = "Έχοντας π�οσπαθήσει να αποκ��ψετε το γεγονός πως αντιμετώπιζαν μια μεταδοτική έξα�ση του %s", }, compensation_amount = "Η Κυβέ�νηση αποφάσισε να σας απονείμει %d αποζημίωση για τη ζημιά που π�οκάλεσαν αυτά τα ψέματα στο καλό όνομα του νοσοκομείου σας.", close_text = "Ζήτω!", succeeded = { part_2 = "Ωστόσο, δεν κατάφε�ε να β�ει αποδείξεις για να υποστη�ίξει αυτές τις φήμες.", part_1_name = "Ο Επιθεω�ητής Υγείας άκουσε φήμες ότι το ίδ�υμά σας αντιμετώπιζε μια σοβα�ή πε�ίπτωση %s.", }, fine_amount = "Η Κυβέ�νηση κή�υξε εθνική έκτακτη ανάγκη και σας επιβάλλουν π�όστιμο %d.", hospital_evacuated = "Το Υπου�γείο Υγείας δεν είχε άλλη επιλογή από το να εκκενώσει το νοσοκομείο σας.", }, } menu_options_game_speed = { slower = " (%1%) ΠΙΟ ΑΡΓΟ ", slowest = " (%1%) ΤΟ ΠΙΟ ΑΡΓΟ ", pause = " (%1%) ΠΑΥΣΗ ", max_speed = " (%1%) ΜΕΓΙΣΤΗ ΤΑΧΥΤΗΤΑ ", normal = " (%1%) ΚΑ�Ο�ΙΚΟ ", and_then_some_more = " (%1%) ΚΑΙ ΛΙΓΟ ΠΑΡΑΠΑ�Ω ", } high_score = { categories = { total_value = "ΣΥ�ΟΛΙΚΗ ΑΞΙΑ", cures = "ΑΡΙΘΜΟΣ ΘΕΡΑΠΕΙΩ�", staff_number = "ΠΕΡΙΣΣΟΤΕΡΟ ΠΡΟΣΩΠΙΚΟ", salary = "ΥΨΗΛΟΤΕΡΟΣ ΜΙΣΘΟΣ", deaths = "ΑΡΙΘΜΟΣ ΘΑ�ΑΤΩ�", patient_happiness = "ΙΚΑ�ΟΠΟΙΗΣΗ ΠΕΛΑΤΩ�", staff_happiness = "ΙΚΑ�ΟΠΟΙΗΣΗ ΠΡΟΣΩΠΙΚΟΥ", cure_death_ratio = "ΛΟΓΟΣ ΘΕΡΑΠΕΙΩ�-ΘΑ�ΑΤΩ�", visitors = "ΠΕΡΙΣΣΟΤΕΡΟΙ ΕΠΙΣΚΕΠΤΕΣ", money = "ΠΛΟΥΣΙΟΤΕΡΟΣ", clean = "ΚΑΘΑΡΙΟΤΗΤΑ", }, pos = "ΘΕΣΗ", worst_scores = "ΤΟΙΧΟΣ ΤΗΣ �ΤΡΟΠΗΣ", best_scores = "HALL OF FAME", killed = "Σκότωσε", player = "ΠΑΙΚΤΗΣ", score = "ΣΚΟΡ", } insurance_companies = { [1] = "SwanLeaf Ltd.", [2] = "Norfolk Onion", [3] = "Mutual Wavekrest", [4] = "Beagle Scar Ltd.", [5] = "Swim Bladder Ltd.", [6] = "Terry Honest plc.", [7] = "Sir Chubby Holdings", [8] = "Leon Katz Corp.", [9] = "Prigg and Bong Ltd.", [10] = "Happy Insurance Co.", [11] = "Syndicate Insurance", out_of_business = "ΧΡΕΟΚΟΠΗΣΕ", } hotkeys_file_err = { file_err_01 = "Δεν ήταν δυνατή η φό�τωση του α�χείου hotkeys.txt. Πα�ακαλώ βεβαιωθείτε ότι το CorsixTH έχει άδειες ανάγνωσης/εγγ�αφής", file_err_02 = ", ή χ�ησιμοποιήστε την πα�άμετ�ο γ�αμμής εντολών --hotkeys-file=filename για να επισημάνετε ένα εγγ�άψιμο α�χείο. Για αναφο�ά, το σφάλμα φό�τωσης του α�χείου hotkeys ήταν: ", } update_window = { caption = "Ενημέ�ωση Διαθέσιμη!", new_version = "�έα Έκδοση:", ignore = "Πα�άβλεψη και επιστ�οφή στο κ��ιο μενο�", current_version = "Τ�έχουσα Έκδοση:", download = "Μετάβαση στην σελίδα λήψης", } information = { cheat_not_possible = "Δεν είναι δυνατή η χ�ήση του συγκεκ�ιμένου cheat σε αυτό το επίπεδο. Αποτυγχάνετε ακόμα και στο να κλέψετε, όχι και τόσο αστείο ε;", no_custom_game_in_demo = "Συγγνώμη, αλλά στην demo έκδοση δεν μπο�είτε να παίξετε π�οσα�μοσμένα επίπεδα.", very_old_save = "Έχουν γίνει πολλές ενημε�ώσεις στο παιχνίδι από την στιγμή που ξεκινήσατε να παίζετε αυτό το επίπεδο. Για να βεβαιωθείτε ότι όλες οι λειτου�γίες δουλε�ουν όπως π�έπει πα�ακαλώ σκεφτείτε να το ξεκινήσετε από την α�χή.", level_lost = { [1] = "Ατυχία! Αποτ�χατε αυτό το επίπεδο. Καλή τ�χη την επόμενη φο�ά!", [2] = "Ο λόγος που χάσατε:", reputation = "Η φήμη σας έπεσε κάτω από %d.", balance = "Το τ�απεζικό σας υπόλοιπο έπεσε κάτω από %d.", percentage_killed = "Σκοτώσατε πε�ισσότε�ο από το %d τοις εκατό των ασθενών.", cheat = "Αυτό ήταν επιλογή σας ή επιλέξατε το λάθος κουμπί; Ο�τε να κλέψετε σωστά δεν μπο�είτε, όχι και τόσο αστείο ε;", }, custom_game = "Καλώς ή�θατε στο CorsixTH. Καλή διασκέδαση με αυτόν τον π�οσα�μοσμένο χά�τη!", cannot_restart = "Δυστυχώς αυτό το π�οσα�μοσμένο παιχνίδι είχε αποθηκευτεί π�ιν να υλοποιηθεί η λειτου�γία επανεκκίνησης επιπέδου.", } calls_dispatcher = { staff = "%s - %s", close = "Κλείσιμο", watering = "Πότισμα @ %d,%d", summary = "%d κλήσεις; %d έχουν ανατεθεί", repair = "Επιδιό�θωση %s", } totd_window = { tips = { [1] = "Κάθε νοσοκομείο χ�ειάζεται ένα γ�αφείο �εσεψιόν και ένα Γ�αφείου Γενικο� Ιατ�ο� για να ξεκινήσει. Μετά από αυτό, εξα�τάται από το είδος των ασθενών που επισκέπτονται το νοσκομείο σας. Ένα φα�μακείο είναι πάντα καλή επιλογή, πάντως.", [2] = "Μηχανήματα όπως ο Φουσκωτής χ�ειάζονται συντή�ηση. Π�οσλάβετε κάνα δυο πολυτεχνίτες για να επιδιο�θώσουν τα μηχανήματά σας, ή θα �ισκά�ετε τον τ�αυματισμό του π�οσωπικο� και των ασθενών σας.", [3] = "Μετά από λίγο, το π�οσωπικό σας θα α�χίσει να κου�άζεται. Σιγου�ευτείτε να χτίσετε ένα δωμάτιο π�οσωπικο�, ώστε να μπο�ο�ν να χαλα�ώσουν.", [4] = "Τοποθετήστε α�κετά καλο�ιφέ� για να κ�ατάτε το π�οσωπικό και τους ασθενείς σας ζεστο�ς, ή θα δυσα�εστηθο�ν. Χ�ησιμοποιήστε τον χά�τη πόλης για να εντοπίσετε οποιαδήποτε σημεία στο νοσοκομείο σας χ�ειάζονται πε�ισσότε�η θέ�μανση.", [5] = "Το επίπεδο δεξιότητας ενός γιατ�ο� επη�εάζει σημαντικά την ποιότητα και την ταχ�τητα των διαγνώσεών του. Τοποθετήστε έναν ικανό γιατ�ό στο Γ�αφείο Γενικο� Ιατ�ο� σας, και δεν θα χ�ειαστείτε τόσα πολλά επιπλέον διαγνωστικά δωμάτια.", [6] = "Οι Μαθητευόμενοι και οι γιατ�οί μπο�ο�ν να βελτιώσουν τις δεξιότητές τους μαθαίνοντας από έναν σ�μβουλο στο δωμάτιο εκπαίδευσης. Αν ο σ�μβουλος έχει κάποια εξειδίκευση (χει�ου�γός, ψυχίατ�ος ή ε�ευνητής), θα μεταλαμπαδε�σει αυτήν την γνώση και στους μαθητές του.", [7] = "Δοκιμάσατε να εισάγετε τον Ευ�ωπαϊκό α�ιθμό έκτακτης ανάγκης (112) στην μηχανή του φαξ; Σιγου�ευτείτε ότι ο ήχος σας είναι ενε�γοποιημένος!", [8] = "Μπο�είτε να τ�οποποιήσετε κάποιες �υθμίσεις όπως την ανάλυση και την γλώσσα στο πα�άθυ�ο επιλογών που β�ίσκεται τόσο στο κ��ιο μενο� όσο και μέσα στο παιχνίδι.", [9] = "Έχετε επιλέξει μια γλώσσα διαφο�ετική των Αγγλικών, αλλά υπά�χει παντο� Αγγλικό κείμενο; Βοηθήστε μας μεταφ�άζοντας τα κείμενα που λείπουν στην γλώσσα σας!", [10] = "Η ομάδα του CorsixTH ψάχνει για ενισχ�σεις! Ενδιαφέ�εστε να γ�άψετε κώδικα, να μεταφ�άσετε ή να δημιου�γήσετε γ�αφικά για το CorsixTH; Επικοινωνήστε μαζί μας στο Forum μας, το Mailing List ή IRC Channel (corsix-th at freenode).", [11] = "Αν β�είτε κάποιο bug, πα�ακαλώ όπως αναφέ�ετε το στον bugtracker μας: th-issues.corsix.org", [12] = "Κάθε επίπεδο έχει ο�ισμένες απαιτήσεις που π�έπει να εκπλη�ωθο�ν π�ιν να μπο�είτε να μεταβείτε στο επόμενο. Τσεκά�ετε το πα�άθυ�ο κατάστασης για να δείτε την π�όοδο σας όσον αφο�ά τους στόχους του επιπέδου.", [13] = "Αν θέλετε να επεξε�γαστείτε ή να αφαι�έσετε ένα υπά�χον δωμάτιο, μπο�είτε να το κάνετε με το κουμπί επεξε�γασίας δωματίου το οποίο β�ίσκεται στην κάτω ε�γαλειοθήκη.", [14] = "Σε μια ο�δή ασθενών που πε�ιμένουν, μπο�είτε γ�ήγο�α να β�είτε ποιοι πε�ιμένουν για κάποιο συγκεκ�ιμένο δωμάτιο πε�νώντας τον κέ�σο�ά σας πάνω από εκείνο το δωμάτιο.", [15] = "Κάντε κλικ στην πό�τα ενός δωματίου για να δείτε την ου�ά του. Μπο�είτε να κάνετε χ�ήσιμες τ�οποποιήσεις εδώ, όπως να αλλάξετε την σει�ά ή να στείλετε έναν ασθενή σε άλλο δωμάτιο.", [16] = "Δυσα�εστημένο π�οσωπικό θα ζητάει αυξήσεις μισθο� συχνά. Σιγου�ευτείτε ότι το π�οσωπικό σας δουλε�ει σε ένα άνετο πε�ιβάλλον για να μην συμβεί αυτό.", [17] = "Οι ασθενείς σας θα διψάσουν καθώς πε�ιμένουν στο νοσοκομείο σας, ακόμα πε�ισσότε�ο αν αυξήσετε την θε�μοκ�ασία! Τοποθετήστε αναψυκτή�ια σε στ�ατηγικές θέσεις για λίγα πα�απάνω έσοδα.", [18] = "Μπο�είτε να ακυ�ώσετε την διαγνωστική διαδικασία για έναν ασθενή π�όω�α και να μαντέψετε την θε�απεία, αν έχετε ήδη αντιμετωπίσει την ασθένεια. Σημειώστε πως αυτό μπο�εί να αυξήσει το �ίσκο λανθασμένης θε�απείας, με αποτέλεσμα τον θάνατο του ασθενή.", [19] = "Οι καταστάσεις έκτακτης ανάγκης μπο�ο�ν να αποτελέσουν καλή πηγή επιπλέον εισοδήματος, με την π�οϋπόθεση ότι έχετε τις υποδομές να χει�ιστείτε τους επείγοντες ασθενείς εγκαί�ως.", }, previous = "Π�οηγο�μενη Συμβουλή", next = "Επόμενη Συμβουλή", } cheats_window = { caption = "Cheats", warning = "Π�οσοχή: Δεν θα λάβετε μπόνους πόντους στο τέλος του επιπέδου εάν κλέψετε!", cheated = { yes = "Χ�ησιμοποιήθηκαν cheats: �αι", no = "Χ�ησιμοποιήθηκαν cheats: Όχι", }, cheats = { all_research = "Ολοκλη�ωμένη Έ�ευνα", emergency = "Δημιου�γία Κατάστασης Έκτακτης Ανάγκης", vip = "Δημιου�γία VIP", win_level = "Κε�δίστε το Επίπεδο", epidemic = "Δημιου�γία μεταδοτικο� ασθενή", toggle_infected = "Εμφάνιση εικονιδιών για μολυσμένους", end_year = "Τέλος Έτους", lose_level = "Χάστε το Επίπεδο", increase_prices = "Α�ξηση τιμών", earthquake = "Δημιου�γία Σεισμο�", decrease_prices = "Μείωση τιμών", create_patient = "Δημιου�γία Ασθενή", money = "Cheat Χ�ημάτων", end_month = "Τέλος Μήνα", }, close = "Κλείσιμο", } bank_manager = { current_loan = "Τ�έχον Δάνειο", hospital_value = "Αξία �οσοκομείου", interest_payment = "Πλη�ωμή Τόκου", insurance_owed = "Οφειλόμενη Ασφάλιση", inflation_rate = "Ρυθμός Πληθω�ισμο�", balance = "Υπόλοιπο", statistics_page = { details = "Λεπτομέ�ειες", money_in = "Έσοδα", date = "Ημε�ομηνία", money_out = "Έξοδα", balance = "Υπόλοιπο", current_balance = "Τ�έχον Υπόλοιπο", }, interest_rate = "Επιτόκιο", } queue_window = { num_expected = "Π�οσδοκόμενο", num_in_queue = "Μέγεθος Ου�άς", num_entered = "Πλήθος Επισκεπτών", max_queue_size = "Μέγιστο Μέγιθος", } warnings = { levelfile_variable_is_deprecated = "Σημείωση: Το επίπεδο '%s' πε�ιέχει έναν απα�χαιωμένο ο�ισμό μεταβλητής στο α�χείο επιπέδου. Το α�χείο '%LevelFile' έχει μετονομαστεί σε '%MapFile'. Πα�ακαλώ συμβουλέψτε τον δημιου�γό του χά�τη να ανανεώσει το επίπεδο.", } lua_console = { execute_code = "Εκτέλεση", close = "Κλείσμιο", } new_game_window = { hard = "Σ�μβουλος (Δ�σκολο)", caption = "Καμπάνια", option_on = "On", easy = "Μαθητευόμενος (Ε�κολο)", medium = "Γιατ�ός (Μέτ�ιο)", tutorial = "Tutorial", difficulty = "Δυσκολία", option_off = "Off", cancel = "Ακ��ωση", player_name = "Όνομα παίκτη", start = "Εκκίνηση", } font_location_window = { caption = "Επιλογή γ�αμματοσει�άς (%1%)", } humanoid_name_ends = { [1] = "SMITH", [2] = "WICK", [3] = "CLIFFE", [4] = "SON", [5] = "INGTON", [6] = "BURY", [7] = "TON", [8] = "SON", [9] = "LEY", [10] = "BERRY", [11] = "BAUM", [12] = "LAN", [13] = "HAM", [14] = "SILL", [15] = "WIN", [16] = "LET", [17] = "ERS", [18] = "TON", [19] = "MOND", [20] = "MAN", [21] = "ELTON", [22] = "E", [23] = "MORE", [24] = "MOOR", [25] = "LET", [26] = "LIN", } date_format = { daymonth = "%1% %2:months%", } build_room_window = { cost = "Κόστος: ", pick_department = "Διαλέξτε Τμήμα", pick_room_type = "Διαλέξτε Τ�πο Δωματίου", } staff_class = { surgeon = "Χει�ου�γός", receptionist = "Ρεσεψιονίστ", doctor = "Γιατ�ός", nurse = "�οσοκόμα", handyman = "Πολυτεχνίτης", } folders_window = { caption = "Τοποθεσίες Φακέλων", data_label = "Δεδομένα TH", music_label = "Μουσική", font_label = "Γ�αμματοσει�ά", screenshots_location = "Επιλέξτε τον π�οο�ισμό που θέλετε να χ�ησιμοποιήσετε για τα Screenshots", screenshots_label = "Screenshots", savegames_label = "Αποθηκευμένα Παιχνίδια", back = "Πίσω", savegames_location = "Επιλέξτε τον π�οο�ισμό που θέλετε να χ�ησιμοποιήσετε για τα Αποθηκευμένα Παιχνίδια", music_location = "Επιλέξτε τον π�οο�ισμό που θέλετε να χ�ησιμοποιήσετε για την Μουσική σας", new_th_location = "Εδώ μπο�είτε να ο�ίσετε έναν νέο π�οο�ισμό εγκατάστασης για το Theme Hospital. Όταν επιλέξετε τον καινο��ιο π�οο�ισμό το παιχνίδι θα επανεκκινηθεί.", } options_window = { capture_mouse = "Capture Mouse", caption = "Ρυθμίσεις", folder = "Φάκελοι", option_on = "On", option_off = "Off", customise = "Τ�οποποίηση", scrollspeed = "Ταχ�τητα Κ�λησης", fullscreen = "Πλή�ης Οθόνη", shift_scrollspeed = "Ταχ�τητα Κ�λησης Shift", hotkey = "Hotkeys", change_resolution = "Αλλαγή ανάλυσης", height = "Ύψος", language = "Γλώσσα παιχνιδιο�", width = "Πλάτος", zoom_speed = "Ταχ�τητα Ζουμ", resolution = "Ανάλυση", apply = "Εφα�μογή", cancel = "Ακ��ωση", custom_resolution = "Π�οσα�μοσμένη...", back = "Πίσω", } audio_window = { audio = "Καθολικός Ήχος", jukebox = "Jukebox", back = "Πίσω", } research = { categories = { specialisation = "Ειδίκευση", drugs = "Έ�ευνα Φα�μάκων", improvements = "Βελτιώσεις", diagnosis = "Διαγνωστικός Εξοπλισμός", cure = "Εξοπλισμός Θε�απείας", }, allocated_amount = "Κατανεμημένο Ποσό", funds_allocation = "Κατανομή Χ�ημάτων", } introduction_texts = { level18 = "", level6 = " Χ�ησιμοποιήστε όλη σας την γνώση για να δημιου�γήσετε ένα καλά ο�γανωμένο και λειτου�γικό νοσοκομείο που έχει υγιή κέ�δη και μπο�εί να αντιμετωπίσει οτιδήποτε του �ίχνει ο ά��ωστος ντουνιάς. Θα π�έπει να γνω�ίζετε ότι η ατμόσφαι�α εδώ πέ�α είναι πολ� καλή στο να κουβαλάει μικ�όβια και μολ�νσεις. Εκτός και αν κ�ατήσετε το νοσοκομείο σας σχολαστικά καθα�ό θα έ�θετε αντιμέτωποι με μια πληθώ�α επιδημιών μεταξ� των ασθενών. Σιγο�ευτείτε πως έχετε κέ�δη της τάξεως των $150,000, καθώς και ότι η συνολική αξία του νοσοκομείου σας είναι πάνω από $140,000.", level3 = " Θα δημιου�γήσετε το νοσοκομείο σας σε μια ε�πο�η πε�ιοχή αυτήν την φο�ά. Το Υπου�γείο Υγείας π�οσδοκεί να βγάλετε έναν καλό τζί�ο. Για α�χή θα π�έπει να αποκτήσετε καλή φήμη, αλλά μόλις το νοσοκομείο είναι πλή�ως λειτου�γικό, συγκεντ�ωθείτε στο να έχετε όσες πε�ισσότε�ες εισφο�ές γίνεται. Υπά�χει επίσης πιθανότητα να έχετε Επείγοντα Πε�ιστατικά. Αυτά συμβαίνουν είναι όταν έ�χονται ένας μεγάλος α�ιθμός ατόμων ταυτόχ�ονα, όλοι με την ίδια ασθένεια. Το να τους θε�απε�σετε εντός του χ�ονικο� ο�ίου σας εξασφαλίζει καλ�τε�η φήμη και ένα μεγάλο χ�ηματικό μπόνους. Ασθένειες όπως το Σ�νδ�ομο Βασιλιά μπο�εί να εμφανιστο�ν, και θα π�έπει να αποταμιε�σετε χ�ήματα για το χτίσιμο ενός Χει�ου�γείου με μια Πτέ�υγα κοντά του. Κε�δίστε $20,000 για να επιτ�χετε.", level16 = " Όταν θα έχετε διαγνώσει με�ικο�ς από τους ασθενείς θα χ�ειαστεί να φτιάξετε μονάδες θε�απείας και κλινικές για να τους θε�απε�σετε - μία καλή για να ξεκινήσετε είναι το Φα�μακείο. Θα χ�ειαστείτε ακόμα μία �οσοκόμα για να χο�ηγεί τα διάφο�α φά�μακα στο Φα�μακείο.", level11 = " Σας έχει δοθεί η ευκα�ία να χτίσετε το απόλυτο νοσοκομείο. Αυτή είναι μια πε�ιοχή υπε�βολικά υψηλο� κ��ους, και το Υπου�γείο θα ήθελε να δει το καλ�τε�ο δυνατό νοσοκομείο. Αναμένουμε να έχετε μεγάλα κέ�δη, εξαι�ετικά υψηλή φήμη καθώς και να καλ�ψετε κάθε πιθανό ενδεχόμενο. Αυτή η δουλειά είναι πολ� σημαντική. Θα π�έπει να είστε άτομο ξεχω�ιστό για να τα καταφέ�ετε. Σημειώστε, επίσης, ότι έχουν θεαθεί UFO στην πε�ιοχή. Σιγου�ευτείτε ότι το π�οσωπικό σας είναι π�οετοιμασμένο για με�ικο�ς αναπάντεχους επισκέπτες. Το νοσοκομείο σας θα π�έπει να έχει αξία $240,000, θα χ�ειαστείτε $500,000 στην τ�άπεζα και η φήμη σας θα π�έπει να είναι τουλάχιστον 700.", level12 = " Έ�χεστε αντιμέτωποι με την μητέ�α όλων των π�οκλήσεων τώ�α. Εντυπωσιασμένοι από την επιτυχία σας, το Υπου�γείο σας έχει την πλέον κο�υφαία δουλειά; θέλουν κάποιον να χτίσει και άλλο απόλυτο νοσοκομείο, να βγάλει ένα τε�άστιο χ�ηματικό ποσό και να έχει απίστευτη φήμη. Επίσης αναμένεται από εσάς να αγο�άσετε όλη την γη που μπο�είτε, να θε�απε�σετε τα πάντα (και εννοο�με τα πάντα) και να κε�δίσετε όλα τα β�αβεία. �ομίζετε ότι μπο�είτε να ανταπεξέλθετε; Κε�δίστε $650,000, θε�απε�στε 750 ανθ�ώπους, και αποκτήστε σκο� φήμης 800 για να κε�δίσετε.", level9 = " Έχοντας γεμίσει τον τ�απεζικό λογα�ιασμό του Υπου�γείου και πλη�ώσει για μια νέα λιμουζίνα για τον Υπου�γό τον ίδιο, μπο�είτε τώ�α να επιστ�έψετε στην δημιου�γία ενός νοσοκομείου που λειτου�γεί καλά και εξυπη�ετεί τις ανάγκες των άπο�ων και των εχόντων ανάγκη. Αναμένετε να μαζευτεί πληθώ�α διαφο�ετικών π�οβλήματων. Εάν έχετε α�κετό καλά εκπαιδευμένο π�οσωπικό και επα�κή δωμάτια, τότε θα είστε καλυμμένοι από όλες τις πλευ�ές. Το νοσοκομείο σας θα π�έπει να αξίζει $200,000, και επίσης θα χ�ειαστεί να έχετε $400,000 στην τ�άπεζα. Οτιδήποτε λιγότε�ο και δεν θα μπο�έσετε να ολοκλη�ώσετε το επίπεδο.", level17 = " Τελευταία π�οειδοποίηση - να δίνετε π�οσοχή στην Φήμη σας - αυτή είναι που θα π�οσελκ�σει τους ασθενείς από μακ�ιά στο ίδ�υμά σας. Αν δεν σκοτώσετε πά�α πολλο�ς ανθ�ώπους και τους κ�ατήσετε χα�ο�μενους σε λογικά πλαίσια δεν θα έχετε και τόσο θέμα σε αυτό το επίπεδο !// Είστε μόνοι σας τώ�α. Καλή τ�χη και τα λοιπά.", level7 = " Εδώ θα είστε σε στενό έλεγχο από το Υπου�γείο Υγείας, οπότε σιγου�ευτείτε ότι οι λογα�ιασμοί σας δείχνουν ότι βγάζετε πολ� χ�ήμα, καθώς και ότι η φήμη σας πα�αμένει υψηλή. Δεν υπά�χει δυνατότητα για πε�ιττο�ς θανάτους - κάνουν κακό στην δουλειά. Σιγου�ευτείτε ότι το π�οσωπικό σας β�ίσκεται σε εξαι�ετική φό�μα, καθώς και οτι διαθέτετε όλον τον εξοπλισμό που χ�ειάζεστε. Αποκτήστε 600 φήμη, καθώς και $200,000 στην τ�άπεζα.", level15 = " Εντάξει αυτοί είναι οι βασικοί μηχανισμοί για την λειτου�γία ενος νοσοκομείου.// Οι Γιατ�οί θα χ�ειαστο�ν την μέγιστη δυνατή βοήθεια για να διαγνώσουν κάποιους από αυτο�ς τους ασθενείς. Μπο�είτε να τους βοηθήσετε χτίζοντας κι άλλες διαγνωστικές εγκαταστάσεις όπως το Δωμάτιο Γενικής Διάγνωσης.", level1 = " Καλώς ή�θατε στο π�ώτο σας νοσοκομείο!// Εκκινήστε την λειτου�γία του τοποθετώντας ένα Γ�αφείο Ρεσεψιόν, χτίζοντας ένα Γ�αφείο Γενικο� Ιατ�ο� και π�οσλαμβάνοντας μία Ρεσεψιονίστ και έναν Γιατ�ό. Έπειτα πε�ιμένετε την άφιξη κάποιων ασθενών. Θα ήταν καλή ιδέα να χτίσετε ένα Ψυχιατ�είο και να π�οσλάβετε έναν Γιατ�ό με Ψυχιατ�ικές ικανότητες. Ένα Φα�μακείο και μια �οσοκόμα είναι επίσης απα�αίτητα για την θε�απεία των ασθενών σας. �α είστε π�οσεκτικοί για κατε�γά�ικες πε�ιπτώσεις Φουσκωμένου Κεφαλιο� - ένα δωμάτιο Φουσκώματος θα τις τακτοποιήσει. Θα π�έπει να θε�απε�σετε 10 ανθ�ώπους και να σιγου�έψετε ότι η φήμη σας δεν θα πέσει κάτω από 200.", level10 = " Πέ�α από το να καλ�ψετε όλες τις πε�ιπτώσεις ασθενειών που συγκεντ�ώνονται στην πε�ιοχή αυτή, το Υπου�γείο ζητάει να αφιε�ώσετε κάποιο χ�όνο στην αποτελεσματικότητα των φα�μάκων σας. Υπή�ξαν κάποια πα�άπονα από τον Ofsick, την Επιτ�οπή Δεοντολογίας Υγείας, έτσι για να έχετε μια καλή εικόνα π�έπει να σιγου�έψετε ότι όλα τα φά�μακά σας είναι εξαι�ετικά αποτελεσματικά. Επίσης, σιγου�ευτείτε ότι το νοσοκομείο σας είναι υπε�άνω μομφής. Κ�ατήστε τους θανάτους σε χαμηλό επίπεδο. Σαν συμβουλή, μπο�εί να θέλετε να κ�ατήσετε ελε�θε�ο χώ�ο για μια Κλινική Ζελέ. Βελτιώστε όλα τα φά�μακά σας βαθμό αποτελεσματικότητας τουλάχιστον 80 τοις εκατό, αποκτήστε 650 φήμη και τζί�ο $500,000 στην τ�άπεζα για να κε�δίσετε. ", level4 = " Κ�ατήστε όλους τους ασθενείς σας χα�ο�μενους, αντιμετωπίστε τους όσο αποτελεσματικά μπο�είτε και κ�ατήστε τους θανάτους στο απολ�τως ελάχιστο. Διακυβε�βεται η φήμη σας, οπότε σιγου�έψτε ότι θα την φτάσετε όσο πιο ψηλά γίνεται. Μην ανησυχείτε πά�α πολ� για τα χ�ήματα - αυτά θα έ�θουν καθώς αυξάνεται η ζωτική σας φήμη. Θα μπο�είτε, επίσης, να εκπαιδε�σετε τους Γιατ�ο�ς σας για να διευ��νετε τις ικανότητές τους. Θα μπο�ο�σαν κάλλιστα να έ�θουν αντιμέτωποι με ασθενείς που είναι πε�ισσότε�ο διαφανείς από το συνηθισμένο. Αποκτήστε φήμη πάνω από 500.", demo = "Καλώς ή�θατε στο demo νοσοκομείο!//Δυστυχώς η έκδοση του the demo πε�ιέχει μόνο αυτό το επίπεδο. Ωστόσο, υπά�χουν πολλά που μπο�είτε να κάνετε εδώ για να σας κ�ατήσουν απασχολημένους για α�κετή ώ�α! Θα έ�θετε αντιμέτωποι με διάφο�ες ασθένειες οι οποίες απαιτο�ν διαφο�ετικά δωμάτια για θε�απεία. Ανά διαστήματα, ενδέχεται να π�οκληθο�ν καταστάσεις έκτακτης ανάγκης. Επίσης θα π�έπει να ανακαλ�ψετε επιπλέον δωμάτια χ�ησιμοποιώντας ένα δωμάτιο ε�ευνών. Ο στόχος σας είναι να κε�δίσετε $100,000, να έχετε αξία νοσοκομείου $70,000 και φήμη 700, έχοντας πα�άλληλα θε�απε�σει τουλάχιστον το 75% των ασθενών σας. Σιγου�ευτείτε ότι η φήμη σας δεν θα πέσει κάτω από 300 και ότι δεν θα σκοτώσετε πε�ισσότε�ο από το 40% των ασθενών σας, ειδάλλως θα χάσετε.//Καλή τ�χη!", level5 = " Αυτό θα είναι ένα πολυάσχολο νοσοκομείο, το οποίο θα αντιμετωπίζει μια πληθώ�α ασθενειών. Οι Γιατ�οί σας είναι όλοι φ�έσκοι από την ιατ�ική σχολή, οπότε κ�ίνεται ζωτικής σημασίας να χτίσετε ένα δωμάτιο εκπαίδευσης και να τους εκπαιδε�σετε σε αποδεκτά επίπεδα. Έχετε μόνο τ�εις Συμβο�λους για να βοηθήσουν στην εκπαίδευση του άπει�ου π�οσωπικο� σας, οπότε κ�ατήστε τους χα�ο�μενους. Σημειώστε, επίσης, ότι τα θεμέλια του νοσοκομείου σας εκτείνονται πάνω από το σεισμογενές έδαφος του San Android. Υπά�χει μόνιμο ενδεχόμενο σεισμών. Θα π�οκαλέσουν σημαντικές υλικές ζημιές στα μηχανήματά σας, και θα ανατα�άξουν την ομαλή λειτου�γία του νοσοκομείου σας. Αποκτήστε φήμη 400, και κάντε καθα�ό τζί�ο $50,000 στην τ�άπεζα για να επιτ�χετε. Επίσης, θε�απε�στε 200 ασθενείς.", level8 = " Είναι επάνω σας το να χτίσετε το πιο αποτελεσματικό και οικονομικά αποδοτικό νοσοκομείο δυνατόν. Ο κόσμος εδώ τ�ιγ��ω είναι α�κετά καλά οικονομικά, οπότε α�μέξτε τους για όσα πε�ισσότε�α χ�ήματα μπο�είτε. �α θυμάστε, το να θε�απε�εις κόσμο είναι ω�αίο, ναι, αλλά αυτό που π�αγματικά ΧΡΕΙΑΖΕΣΤΕ είναι τα λεφτά που αυτό αποφέ�ει. Πηγαίντε αυτο�ς τους α��ώστους στο καθα�ιστή�ιο. Συγκεντ�ώστε το γιγάντιο ποσό των $300,000 για να ολοκλη�ώσετε αυτό το επίπεδο.", level13 = " Οι εκπληκτικές σας ικανότητες ως διαχει�ιστής νοσοκομείου έχουν τ�αβήξει την π�οσοχή του Ειδικο� Μυστικο� Τμήματος της Μυστικής Ειδικής Υπη�εσίας. Έχουν ένα ειδικό μπόνους για εσάς: υπά�χει ένα κατακλυσμένο από α�ου�αίους νοσοκομείο σε ανάγκη για έναν αποτελεσματικό Εξολοθ�ευτή. Π�έπει να πυ�οβολήσετε όσους πε�ισσότε�ους α�ου�αίους γίνεται π�ιν οι Πολυτεχνίτες μαζέψουν όλα τα σκουπίδια. Πιστε�ετε ότι μπο�είτε να το κάνετε;", level2 = "Υπά�χει μεγαλ�τε�η ποικιλία ασθενειών σε αυτήν την πε�ιοχή. Σετά�ετε το νοσοκομείο σας για να χει�ίζεστε πε�ισσότε�ους ασθενείς, και σχεδιάστε να χτίσετε ένα Τμήμα Ε�ευνών. �α θυμάστε να κ�ατάτε το ίδ�υμά σας καθα�ό, και π�οσπαθήστε να φτάσετε την φήμη σας όσο πιο ψηλά γίνεται - θα έ�θετε αντιμέτωποι με ασθένειες όπως Χαλα�ωμένη Γλώσσα, οπότε θα χ�ειαστείτε μια Κλινική Χαλα�ωμένης Γλώσσας. Μπο�είτε επίσης να χτίσετε ένα Δωμάτιο Κα�διογ�αφήματος για να σας βοηθήσει να διαγνώσετε νέες ασθένειες. Και τα δ�ο αυτά δωμάτια θα π�έπει π�ώτα να ανακαλυφθο�ν π�ιν να μπο�ο�ν να χτιστο�ν. Τώ�α μπο�είτε επίσης να αγο�άσετε επιπλέον κομμάτια γης για να επεικτείνετε το νοσοκομείο σας - χ�ησιμοποιήστε τον Χά�τη Πόλης για αυτό. Στοχε�στε για φήμη 300 και τ�απεζικό υπόλοιπο $10,000 και θε�απε�στε 40 άτομα.", level14 = " Υπά�χει ακόμα μια π�όκληση - το εντελώς αναπάντεχο νοσοκομείο-έκπληξη. Αν επιτ�χετε σε αυτό, θα είστε ο νικητής πάνω από όλους τους άλλους νικητές. Μην πε�ιμένετε να είναι ευκολάκι, ωστόσο, επειδή θα είναι η δυσκολότε�η δοκιμασία που αντιμετωπίσατε ποτέ σας. Καλή τ�χη!", } custom_campaign_window = { start_selected_campaign = "Ένα�ξη καμπάνιας", caption = "Π�οσα�μοσμένη Καμπάνια", } trophy_room = { gen_repairs = { awards = { [1] = "Σας απονέμεται ένα ειδικό β�αβείο για την ετοιμότητα των Πολυτεχνιτών σας στο να διατη�ο�ν σε ά�ιστη κατάσταση τον εξοπλισμό του νοσοκομείου σας. Συγχα�ητή�ια. Πά�τε λίγο χ�όνο για διακοπές.", [2] = "Οι Πολυτεχνίτες σας έχουν καλ�τε�ες επιδόσεις συγκ�ιτικά με αυτο�ς οποιουδήποτε άλλου νοσοκομείου. Αυτό είναι ένα μεγάλο κατό�θωμα για το οποίο π�έπει να σας συγχα�ο�με.", [3] = "Τα μηχανήματά σας είναι συντη�ημένα εξαι�ετικά. Η αφοσίωση που δείχνουν οι Πολυτεχνίτες σας είναι εξωπ�αγματική. Όλοι σας αξίζετε αυτό το β�αβείο υψηλο� κ��ους. Φανταστική δουλειά.", }, penalty = { [1] = "Οι Πολυτεχνίτες σας δεν έχουν συντη�ήσει επα�κώς τα μηχανήματά σας. Π�έπει να τους επιβλέπετε με μεγαλ�τε�η π�οσοχή ή να π�οσλάβετε πε�ισσότε�ους για να αντιμετωπίσουν τον φό�το ε�γασίας.", [2] = "Τα έχετε κάνει χάλια με την συντή�ηση. Το π�οσωπικό σας θα π�έπει να συντη�εί τον εξοπλισμό σας με αμεσότητα και φ�οντίδα.", }, }, happy_vips = { trophies = { [1] = "Έχετε κε�δίσει το β�αβείο �όμπελ για Εντυπωσιασμό VIPs. Όλοι που επισκέφτηκαν το νοσοκομείο σας τον τελευταίο χ�όνο είχαν πολ� θετικές εντυπώσεις.", [2] = "Η Υπη�εσία Διάσημων Ατόμων θα ήθελε να σας απονείμει το Τ�όπαιο Σελέμπ�ιτι για την ικανοποίηση κάθε VIP που επισκέφτηκε τις εγκαταστάσεις σας. Θεω�είστε τον εαυτό σας ελαφ�ώς διάσημο, και (σχεδόν) έναν από εμάς.", [3] = "Συγχα�ητή�ια που κε�δίσατε το β�αβείο VIP TRIP για την βελτίωση της ζωής των σκλη�ά ε�γαζόμενων ατόμων στα μάτια της δημοσιότητας, ικανοποιώντας όλους όσους επισκέφτηκαν το νοσοκομείο σας. Εξαίσια.", }, }, research = { regional_good = { [1] = "Η έ�ευνά σας έχει κ�ατήσει το νοσοκομείο σας μπ�οστά από όλες τις τελευταίες τεχνολογικές εξελίξεις. Στο π�οσωπικό ε�ευνών σας αξίζει αυτό το β�αβείο. Μπ�άβο.", }, penalty = { [1] = "Η π�οσπάθειά σας στην έ�ευνα νέων θε�απειών, εξοπλισμο� και φα�μάκων είναι ιδιαίτε�α ανεπα�κής. Αυτό είναι πολ� κακό, καθώς η τεχνολογική π�όοδος είναι ζωτικής σημασίας.", }, awards = { [1] = "Η έ�ευνά σας έχει κ�ατήσει το νοσοκομείο σας μπ�οστά από όλες τις τελευταίες τεχνολογικές εξελίξεις. Στο π�οσωπικό ε�ευνών σας αξίζει αυτό το β�αβείο. Μπ�άβο.", [2] = "Κατά την διά�κεια του π�οηγο�μενου χ�όνου, ανακαλ�ψατε πολλά πε�ισσότε�α φά�μακα και εξοπλισμό απ' ό,τι θα ήλπιζε κανείς. Πα�ακαλο�με αποδεχτείτε αυτό το β�αβείο από όλους εμάς στο Υπου�γείο.", }, regional_bad = { [1] = "Κάθε άλλο νοσοκομείο στην πε�ιοχή είναι καλ�τε�ο στην έ�ευνα από εσάς. Καθώς η έ�ευνα είναι υψίστης σημασίας για το νοσοκομείο σας, το Υπου�γείο είναι έξω φ�ενών.", }, }, no_deaths = { trophies = { [1] = "Έχετε κε�δίσει το β�αβείο No-Croak επειδή κ�ατήσατε το 100 τοις εκατό των ασθενών σας ζωντανό τον τελευταίο χ�όνο.", [2] = "Η Life Goes On Corporation σας απονέμει αυτό το τ�όπαιο επειδή κατο�θώσατε να έχετε μηδενικο�ς θανατο�ς τον τελευταίο χ�όνο.", [3] = "Σας έχει απονεμηθεί το τ�όπαιο Staying Alive λόγω του ότι κατο�θώσατε να μην έχετε καθόλου θανάτους στο εξαι�ετικό νοσοκομείο σας τον τελευταίο χ�όνο. Έξοχα.", }, penalty = { [1] = "Ο α�ιθμός των θανάτων στο νοσοκομείο σας τον τελευταίο χ�όνο ήταν υψηλός σε αποδεκτά επίπεδα. Δώστε πε�ισσότε�η π�οσοχή στην δουλειά σας. Σιγου�έψτε ότι πε�ισσότε�ος κόσμος θα επιβιώνει μελλοντικά.", [2] = "Το νοσοκομείο σας αποτελεί �ίσκο στην υγεία των ασθενών. Π�οσδοκείται από εσάς να θε�απε�ετε πολ� κόσμο, όχι να τους αφήνετε να πεθαίνουν.", }, awards = { [1] = "Κε�δίσατε αυτό το β�αβείο για να τιμηθεί ο χαμηλός α�ιθμός θανάτων στο νοσοκομείο σας, αυτή τη χ�ονιά. Είναι απίθανο!", [2] = "Η ιδιοφυ�α σας κ�άτησε τους θανάτους στο νοσοκομείο σας στο ελάχιστο. Π�έπει να είστε υπε�βολικά ευχα�ιστημένος με αυτό το αποτέλεσμα!", }, regional = { [1] = "Ο α�ιθμός θανάτων στο νοσοκομείο σας πέ�σι ήταν χαμηλότε�ος από κάθε άλλο νοσοκομείο. Πα�ακαλώ, δεχθείτε αυτό το β�αβείο.", }, }, cash = "CASH", emergencies = { award = { [1] = "Συγχα�ητή�ια: ο αποδοτικός κι αποτελεσματικός χει�ισμός σας των επειγόντων πε�ιστατικών, σας απέσπασαν αυτό το ξεχω�ιστό β�αβείο. Καλή δουλειά!", [2] = "Ο χει�ισμός σας των επειγόντων πε�ιστατικών είναι εξαι�ετικός! Αυτό το β�αβείο είναι γιατί είστε ο απόλυτος χει�ιστής μεγάλων εισ�οών ασθενών και ταλαίπω�ων.", }, penalty = { [1] = "Ο χει�ισμός σας των επειγόντων πε�ιστατικών είναι ανεπα�κής. Οι εισε�χόμενοι ασθενείς αξίζουν άμεση και σωστή π�οσοχή, την οποία αποτ�χατε να τους δώσετε.", }, regional_good = { [1] = "Το Υπου�γείο Υγείας αναγνω�ίζει ότι το νοσοκομείο σας χει�ίστηκε επείγοντα πε�ιστατικά καλ�τε�α από κάθε άλλο νοσοκομείο, πέ�σι και σας πα�ουσιάζει αυτό το β�αβείο.", }, regional_bad = { [1] = "Το νοσοκομείο σας ήταν το χει�ότε�ο στην πε�ιοχή στον χει�ισμό επειγόντων πε�ιστατικών. Εσείς φταίτε που μα�αζώνετε στον πάτο του τοπικο� συνδέσμου π�ώτων βοηθειών.", }, }, happy_staff = { awards = { [1] = "Το π�οσωπικό σας σάς πα�ουσιάζει αυτό το β�αβείο. Λένε ότι υπά�χει χώ�ος για βελτίωση, αλλά η συμπε�ιφο�ά σας π�ος αυτο�ς ήταν γενικά καλή.", [2] = "Το π�οσωπικό σας είναι τόσο χα�ο�μενο που δουλε�ει για εσάς, που δεν μπο�ο�ν να σταματήσουν να χαμογελάνε. Είστε ένας υπέ�οχος διευθυντής!", }, regional_good = { [1] = "Το π�οσωπικό σας είναι πιο χα�ο�μενο από οποιουδήποτε άλλου νοσοκομείου. Χα�ο�μενο π�οσωπικό σημαίνει πιο πολ� κέ�δος και λιγότε�οι θάνατοι. Το Υπου�γείο Υγείας είναι ευχα�ιστημένο.", }, penalty = { [1] = "Το π�οσωπικό σας θέλει να σας γνωστοποιήσει ότι είναι πολ� δυσα�εστημένοι. Το καλό π�οσωπικό είναι π�οσόν. Κάντε το δικό σας πιο χα�ο�μενο, αλλιώς μια μέ�α θα χάσετε τα πάντα μια μέ�α.", }, regional_bad = { [1] = "Ολόκλη�ο το π�οσωπικό σας είναι πολ� θλιμμένο το πε�ασμένο έτος. Π�έπει να το έχετε πα�ατη�ήσει. Όπως έχουν τα π�άγματα, κάθε άλλο νοσοκομείο έχει πιο χα�ο�μενο π�οσωπικό από το δικό σας.", }, trophies = { [1] = "Σας απονέμεται το Χαμογελαστό Β�αβείο, καθώς κ�ατήσατε το σκλη�ά ε�γαζόμενο π�οσωπικό σας όσο πιο χα�ο�μενο γίνεται.", [2] = "Το Ινστιτο�το Χα�άς Αδάμη σας ανταμείβει, καθώς δεν έχετε καθόλου λυπημένο π�οσωπικό στο νοσοκομείο σας πέ�σι, δίνοντάς σας αυτό το β�αβείο.", [3] = "Αυτό το Β�αβείο, το Χαμογέλα-πιο-πλατιά Κ�πελλο σας απονέμεται, καθώς κ�ατήσατε όλο σας το π�οσωπικό χα�ο�μενο με υπε�βάλλοντα ζήλο πέ�σι. Παντο� γ��ω σας υπά�χουν χαμόγελα!", }, }, happy_patients = { awards = { [1] = "Μπο�είτε να καυχηθείτε για το γεγονός ότι ο κόσμος στο νοσοκομείο σας ήταν πολ� ευχα�ιστημένος τον τελευταίο χ�όνο.", [2] = "Τα άτομα που επισκέπτονται το νοσοκομείο σας έμειναν κάτα μέσο ό�ο πιο ικανοποιημένα κατά την θε�απεία συγκ�ιτικά με οποιοδήποτε άλλο νοσοκομείο στο παιχνίδι.", }, penalty = { [1] = "Ο κόσμος που έ�χεται στο νοσοκομείο σας β�ίσκει τ�αγική την εμπει�ία. Θα π�έπει να τα πάτε πολ� καλ�τε�α αν θέλετε να κε�δίσετε τον σεβασμό του Υπου�γείου.", [2] = "Τα άτομα που λαμβάνουν θε�απεία στο νοσοκομείο σας ήταν πολ� δυσα�εστημένοι για την κατάσταση του μέ�ους. Π�έπει να σκεφτείτε πιο διεξοδικά την π�όνοια των ασθενών.", }, }, curesvdeaths = { awards = { [1] = "Θε�μά συγχα�ητή�ια που κατο�θώσατε μια εντυπωσιακή αναλογία θε�απειών-θανάτων στο νοσοκομείο σας τον τελευταίο χ�όνο.", }, penalty = { [1] = "Έχετε πολ� κακή αναλογία θε�απειών π�ος θανάτους. Π�έπει να σιγου�έψετε οτι θε�απε�ετε πολ� πε�ισσότε�ο κόσμο απ' όσους αφήνετε να πεθαίνουν. Μην απογοητε�σετε τους συναδέλφους σας.", }, }, rats_killed = { trophies = { [1] = "Κε�δίσατε το Β�αβείο Κατά των Πα�ασίτων, επειδή πυ�οβολήσατε %d α�ου�αίους στο νοσοκομείο σας το επ�ασμένο έτος.", [2] = "Έχετε τα π�οσόντα να λάβετε αυτό το β�αβείο από την Ομοσπονδία Εναντίον των Α�ου�αίων και των Ποντικιών, λόγω των εξαι�ετικών ικανοτήτων σας να πυ�οβολείτε α�ου�αίους, σκοτώνοντας %d από αυτο�ς.", [3] = "Έχετε τα π�οσόντα να λάβετε το Β�αβείο Ανατίναξης Α�ου�αίων, λόγω των εξαι�ετικών ικανοτήτων σας να ξεκάνετε %d α�ου�αίους στο νοσοκομείο σας το πε�ασμένο έτος.", }, }, best_value_hosp = { penalty = { [1] = "Κάθε νοσοκομείο στην γ��ω πε�ιοχή αξίζει πε�ισσότε�ο από το δικό σας. Κάντε κάτι γι' αυτήν την ντ�οπιαστική κατάσταση. Εισάγετε με�ικά πιο ακ�ιβά π�άγματα!", }, trophies = { [1] = "Συγχα�ητή�ια για την πα�αλαβή του Β�αβείου Πεντακαθα�ιότητας για το νοσοκομείο με την καλ�τε�η φήμη το πε�ασμένο έτος. Το αξίζετε π�αγματικά!", }, regional = { [1] = "Συγχα�ητή�ια που έχετε το πιο πολ�τιμο νοσοκομείο στο παιχνίδι. Καλή δουλειά. Π�οσπαθήστε πα�ακαλώ να συνεχίσετε έτσι.", }, }, healthy_plants = { awards = { [1] = "Συγχα�ητή�ια για τη νίκη του β�αβείου Μεγάλωσε-Πιο-Πολ� Λίπασμα, επειδή κ�ατήσατε τα φυτά σας εξαι�ετικά υγιή κατά τη διά�κεια του πε�ασμένου έτους.", }, trophies = { [1] = "Οι φίλοι των Φυτών Γλάστ�ας θα ήθελαν να σας απονέμουν το Π�άσινο Β�αβείο Υγείας, επειδή κ�ατήσατε όλα τα φυτά σας σε καλή κατάσταση κατά τη διά�κεια του τελευταίου δωδεκαμήνου.", [2] = "Τα Τ�ομε�ά Τ�ιφίδια θα ήθελαν να σας π�οσφέ�ουν το Β�αβείο Π�ασινοδάχτυλου, επειδή κ�ατήσατε τα φυτά του νοσοκομείου σας στο καλ�τε�ο επίπεδο υγείας το πε�ασμένο έτος.", }, }, all_cured = { awards = { [1] = "Συγχα�ητή�ια για τη νίκη του Β�αβείου Μα�ί Κιου�ί, λόγω της επιτυχο�ς θε�απείας όλων των ασθενών στο νοσοκομείο σας το πε�ασμένο έτος.", }, trophies = { [1] = "Το Διεθνές Ίδ�υμα Θε�απείας θα ήθελε τιμήσει το γεγονός ότι θε�απε�σατε όλους στο νοσοκομείο σας το πε�ασμένο έτος, απονέμοντάς σας το Β�αβείο Θε�απείας των Πάντων.", [2] = "Σας απονέμεται το Β�αβείο Μη-ά��ωστου Γα�γά�α, επειδή καταφέ�ατε να θε�απε�σετε κάθε ασθενή στο νοσοκομείο σας το πε�ασμένο έτος.", }, }, sold_drinks = { trophies = { [1] = "Η Παγκόσμια Ένωση Οδοντιάτ�ων είναι πε�ήφανη να σας απονείμει αυτό το τ�όπαιο και την τιμητική πλακέτα επειδή πουλήσατε πολλά αναψυκτικά στο νοσοκομείο σας.", [2] = "Έχει απονεμηθεί στο νοσοκομείο σας το τ�όπαιο Fizzy-Bizz για λιανική πώληση αναψυκτικών ως αναγνώ�ιση του α�ιθμόυ των αναψυκτικών που πουλήθηκαν στο νοσοκομείο σας τον τελευταίο χ�όνο.", [3] = "Εκ μέ�ους της DK Fillings Inc, σας απονέμεται αυτό το επικαλυμμένο από σοκολάτα τ�όπαιο για να τιμήσει τον εξαι�ετικό α�ιθμό αναψυκτικών που πουλήθηκαν στο νοσοκομείο σας αυτόν τον χ�όνο.", }, }, consistant_rep = { trophies = { [1] = "Δια του πα�όντος σας απονέμεται το β�αβείο του Υπου�γο� της Κυβε�νήσεως για τα πιο εξαι�ετικά standards και την υψηλότε�η δυνατή φήμη φέτος. Ω�αία.", [2] = "Συγχα�ητή�ια για την πα�αλαβή του τ�όπαιου SqueakiKlean για το νοσοκομείο με την καλ�τε�η φήμη τον τελευταίο χ�όνο. Και το αξίζετε με το πα�απάνω.", }, }, reputation = "ΦΗΜΗ", cleanliness = { award = { [1] = "Οι επιθεω�ητές επισημαίνουν ότι το νοσοκομείο σας είναι πολ� καθα�ό. Τα καθα�ά νοσοκομεία είναι ασφαλή νοσοκομεία. Συνεχίστε την καλή δουλειά.", }, regional_good = { [1] = "Το νοσοκομείο σας έχει σημειωθεί ως ένα από τα λιγότε�ο καθα�ά στην πε�ιοχή. Ένα β�ώμικο νοσοκομείο είναι β�ωμε�ό και επικίνδυνο. Π�έπει να δίνετε πε�ισσότε�η π�οσοχή στο χάλι.", }, regional_bad = { [1] = "Το νοσοκομείο σας είναι το πιο β�ώμικο στην πε�ιοχή. Κάθε άλλος Διαχει�ιστής έχει καταφέ�ει να έχει καθα�ότε�ους διαδ�όμους από εσάς. Είστε ντ�οπή για το ιατ�ικό επάγγελμα.", }, }, hosp_value = { penalty = { [1] = "Το νοσοκομείο σας έχει αποτ�χει να αποκτήσει καλή αξία. Έχετε λάβει κακές αποφάσεις όσον αφο�ά την διαχεί�ιση των χ�ημάτων. �α θυμάστε, ένα καλό νοσοκομείο είναι επίσης ένα ακ�ιβό νοσοκομείο.", }, awards = { [1] = "Το Υπου�γείο Υγείας θα ήθελε να πά�ει την ευκα�ία να σας συγχα�εί για την εντυπωσιακή γενική αξία του νοσοκομείου σας.", }, regional = { [1] = "Είστε μια οικονομική ιδιοφυία. Το νοσοκομείο σας έχει μεγαλ�τε�η αξία από όλα τα υπόλοιπα νοσοκομεία της πε�ιοχής μαζί.", }, }, pop_percentage = { awards = { [1] = "Σημειώστε πως κε�δίσατε ένα μεγάλο με�ίδιο του πληθυσμο� της πόλης ως επισκέπτες στο νοσοκομείο σας τον τελευταίο χ�όνο. Μπ�άβο σας.", [2] = "Συγχα�ητή�ια. Ένα μεγαλ�τε�ο μέ�ος του τοπικο� πληθυσμο� επισκέπτεται το νοσοκομείο σας συγκ�ιτικά με οποιαδήποτε από τα υπόλοιπα νοσοκομεία.", [3] = "Έξοχα. Έχετε π�οσελκ�σει πε�ισσότε�ο κόσμο στον νοσοκομείο σας από ό,τι έχουν επισκεφτεί όλα τα άλλα νοσοκομεία μαζί.", }, penalty = { [1] = "Πολ� λίγος κόσμος επισκέφθηκε το νοσοκομείο σας φέτος. Για να βγάλετε χ�ήματα, η επιχεί�ησή σας χ�ειάζεται παθόντες να τα ακουμπήσουν χοντ�ά.", [2] = "Κάθε νοσοκομείο στην πε�ιοχή κατό�θωσε να έχει μεγαλ�τε�η με�ίδα του πληθυσμο� να το επισκέπτεται, συγκ�ιτικά με εσάς. Θα έπ�επε να ντ�έπεστε πολ�.", }, }, rats_accuracy = { trophies = { [1] = "Σας απονέμεται το β�αβείο Syndicate Wars Accurate Shooting Trophy επειδή είχατε %d%% ακ�ίβεια στο να πυ�οβολείτε α�ου�αίους.", [2] = "Αυτό το τ�όπαιο έχει σκοπό να τιμήσει την απίστευτη ακ�ίβειά σας, καθώς σκοτώσατε το %d%% των α�ου�αίων που σημαδέψατε στο νοσοκομείο σας τον πε�ασμένο χ�όνο.", [3] = "Για να τιμηθεί η πε�ίσταση της θανάτωσης του %d%% όλων των α�ου�αίων στο νοσοκομείο σας, σας απονέμεται το β�αβείο Dungeon Keeper Vermin-Free. CongRATulations!", }, }, many_cured = { trophies = { [1] = "Συγχα�ητή�ια για τη β�άβευσή σας με το Β�αβείο Μα�ί Κιου�ί, λόγω της επιτυχο�ς θε�απείας σχεδόν όλων των ασθενών του νοσοκομείου σας πέ�σι.", [2] = "Το Διεθνές Ίδ�υμα Θε�απείας θα ήθελε τιμήσει το γεγονός ότι θε�απε�σατε έναν μεγάλο α�ιθμό ανθ�ώπων στο νοσοκομείο σας πέ�σι, απονέμοντάς σας το Β�αβείο Θε�απείας των Πάντων..", [3] = "Σας απονέμεται το Β�αβείο Μη-ά��ωστου Γα�γά�α, επειδή καταφέ�ατε να θε�απε�σετε ένα τε�άστιο ποσοστό των ασθενών του νοσοκομείου σας το πε�ασμένο έτος.", }, penalty = { [1] = "Το νοσοκομείο σας αποτυγχάνει να δώσει αποτελεσματικές θε�απείες στους ασθενείς που τις χ�ειάζονται. Συγκεντ�ωθείτε στις θε�απείες σας, ώστε να τις κάνετε πιο αποτελεσματικές.", [2] = "Το νοσοκομείο σας είναι λιγότε�ο αποτελεσματικό στην θε�απεία ασθενών από κάθε άλλο. Απογοητε�σατε το Υπου�γείο Υγείας και τον εαυτό σας. Δεν θα πο�με τίποτε άλλο.", }, awards = { [1] = "Συγχα�ητή�ια που θε�απε�σατε ένα σω�ό ανθ�ώπους το πε�ασμένο έτος. Πολλοί άνθ�ωποι νιώθουν πολ� καλ�τε�α, χά�η στη δουλειά σας.", [2] = "Πα�ακαλώ δεχθείτε αυτό το β�αβείο, επειδή θε�απε�σατε πε�ισσότε�ους ασθενείς από κάθε άλλο νοσοκομείο. Άψογη επίδοση!", }, regional = { [1] = "Διά του πα�όντος σας απονέμεται το Β�αβείο Απόλυτης Θε�απείας, επειδή θε�απε�σατε πε�ισσότε�ους ανθ�ώπους από όλα τα υπόλοιπα νοσοκομεία μαζί.", }, }, high_rep = { penalty = { [1] = "Θα επιπλαγείτε, επειδή διατη�ήσατε πολ� κακή φήμη κατά το πε�ασμένο έτος. Βεβαιωθείτε ότι θα βελτιωθεί στο μέλλον.", [2] = "Η φήμη του νοσοκομείου σας είναι η χει�ότε�η στην πε�ιοχή. �τ�οπή σας! Βελτιωθείτε ή αλλάξτε επάγγελμα.", }, awards = { [1] = "Μπ�άβο! Κε�δίσατε ένα μικ�ο�λι β�αβείο, επειδή η φήμη σας πέ�σι ήταν κάπως εντυπωσιακή.", [2] = "Θαυμάσια! Το νοσοκομείο σας κέ�δισε ένα β�αβείο, επειδή χτίσατε την καλ�τε�η φήμη κατά το πε�ασμένο έτος.", }, regional = { [1] = "Πα�ακαλώ αποδεχθείτε το Β�αβείο Βουβαλοβατ�άχου για την υψηλότε�η φήμη το πε�ασμένο έτος για κάθε νοσοκομείο. Απολα�στε το - το δικαιο�στε!", [2] = "Αυτό το έτος, η φήμη του νοσοκομείου σας έχει ξεπε�άσει αυτήν όλων των άλλων νοσοκομείων μαζί. Ένα σημαντικό επίτευγμα!", }, }, wait_times = { award = { [1] = "Συγχα�ητή�ια! Το νοσοκομείο σας έχει συστηματικά πολ� χαμηλο�ς χ�όνους αναμονής. Αυτό είναι ένα σημαντικό β�αβείο!", }, penalty = { [1] = "Οι άνθ�ωποι στο νοσοκομείο σας π�έπει να πε�ιμένουν πολλή ώ�α. Πάντα υπά�χουν απα�άδεκτες ου�ές. Θα μπο�ο�σατε να διαχει�ιστείτε τους ασθενείς σας πιο αποδοτικά, αν θέλατε.", }, }, } transactions = { epidemy_fine = "Π�όστιμο Επιδημίας", general_bonus = "Γενική Πλη�ωμή Μπόνους", wages = "Μισθοί", compensation = "Κ�ατική Αποζημείωση", jukebox = "Έσοδα: Jukebox", heating = "Έξοδα Θέ�μανσης", severance = "Αποζημείωση Λόγω Απόλυσης", treat_colon = "Θε�απεία:", drug_cost = "Κόστος Φα�μάκου", eoy_trophy_bonus = "End of year Trophy Bonus", vip_award = "Χ�ηματικό Β�αβείο VIP", drinks = "Έσοδα: Αναψυκτή�ια", machine_replacement = "Κόστος Αντικατάστασης Μηχανήματος", research = "Έξοδα Έ�ευνας", bank_loan = "Δάνειο Τ�άπεζας", buy_object = "Αγο�ά Αντικειμένου", vaccination = "Εμβολιασμός", build_room = "Χτίσιμο Δωματίου", sell_object = "Πώληση Αντικειμένου", cure_colon = "Θε�απεία:", personal_bonus = "Π�οσωπική Πλη�ωμή Μπόνους", research_bonus = "Μπόνους Έ�ευνας", epidemy_coverup_fine = "Π�όστιμο Συγκάληψης Επιδημίας", cheat = "Cheat Money", loan_repayment = "Αποπλη�ωμή Δανείου", eoy_bonus_penalty = "End of year Μπόνους/Ποινή", final_treat_colon = "Τελική Θε�απεία:", emergency_bonus = "Μπόνους Πλη�ωμή Έκτακτης Ανάγκης", loan_interest = "Τόκος Δανείου", insurance_colon = "Ασφάλιση:", advance_colon = "Π�οκαταβολή:", deposit = "Κατάθεση Αγωγής", hire_staff = "Π�όσληψη Π�οσωπικο�", buy_land = "Αγο�ά Γης", overdraft = "Τόκος Υπε�ανάληψης", cure = "Θε�απεία", } custom_game_window = { free_build = "Free Build", caption = "Π�οσα�μοσμένο Παιχνίδι", load_selected_level = "Εκκίνηση", } load_game_window = { caption = "Φό�τωση Παιχνιδιο� (%1%)", } install = { title = "--------------------------------- CorsixTH Setup ---------------------------------", ok = "OK", th_directory = "Το CorsixTH χ�ειάζεται ένα αντίγ�αφο των δεδομένων από το αυθεντικό Theme Hospital (ή το demo) για να τ�έξει. Πα�ακαλώ χ�ησιμοποιείστε τον πα�ακάτω selector για να εντοπίσετε την διαδ�ομή εγκατάστασης του Theme Hospital.", cancel = "Ακ��ωση", exit = "Έξοδος", } hotkey_window = { panel_recallPosKeys = "Πλήκτ�α Επαναφο�άς Θέσης", ingame_panel_staffManage = "Διαχεί�ιση Π�οσωπικο�", ingame_recallPosition_3 = "3", button_defaults = "Επαναφο�ά Π�οεπιλογών", ingame_quickLoad = "Γ�ήγο�η Φό�τωση", ingame_recallPosition_2 = "2", ingame_showmenubar = "Εμφάνισης Μπά�ας Μενο�", ingame_recallPosition_6 = "6", ingame_patient_gohome = "Αποστολή στο Σπίτι", ingame_storePosition_2 = "2", ingame_panel_buildRoom = "Χτίσιμο Δωματίου", global_connectDebugger = "Debugger", ingame_panel_furnishCorridor = "Επίπλωση Διαδ�όμου", global_resetApp = "Επαναφο�ά Εφα�μογής", panel_debugKeys = "Debug Keys", ingame_panel_research = "Έ�ευνα", global_fullscreen_toggle = "Πλή�ης οθόνη", ingame_panel_townMap = "Χά�της Πόλης", ingame_recallPosition_8 = "8", ingame_zoom_in_more = "Πε�ισσότε�ο Zoom In", global_screenshot = "Screenshot", ingame_recallPosition_1 = "1", ingame_loadMenu = "Φό�τωση Παιχνιδιο�", ingame_scroll_right = "Κ�λιση Δεξιά", ingame_setTransparent = "Διαφάνεια", ingame_gamespeed_normal = "Normal", ingame_toggleAdvisor = "Βοηθός", ingame_storePosition_0 = "10", ingame_storePosition_3 = "3", panel_gameSpeedKeys = "Πλήκτ�α Ταχ�τητας Παιχνιδιο�", panel_globalKeys = "Global Keys", global_runDebugScript = "Debug Script", global_releaseMouse = "Απελευθέ�ωση Ποντικιο�", ingame_recallPosition_7 = "7", button_accept = "Αποδοχή", ingame_gamespeed_slowest = "Το πιο α�γό", ingame_panel_map_alt = "Χά�της Πόλης 2", global_cancel = "Ακ��ωση", ingame_zoom_in = "Zoom In", button_toggleKeys = "Toggle Keys", panel_altPanelKeys = "Alternate Panel Keys", global_stop_movie_alt = "Stop Movie", ingame_scroll_left = "Κ�λιση Α�ιστε�ά", ingame_rotateobject = "Πε�ιστ�οφή Αντικειμένου", global_confirm = "Επιβεβαίωση", ingame_zoom_out = "Zoom Out", ingame_showCheatWindow = "Μενο� Cheat", ingame_jukebox = "Jukebox", ingame_saveMenu = "Αποθήκευση Παιχνιδιο�", ingame_scroll_shift = "Αλλαγή Ταχ�τητας", ingame_openFirstMessage = "Μήνυμα Επιπέδου", ingame_recallPosition_9 = "9", global_cancel_alt = "Cancel Alt", ingame_storePosition_6 = "6", ingame_panel_research_alt = "Έ�ευνα 2", ingame_recallPosition_4 = "4", ingame_pause = "Pause", ingame_scroll_down = "Κ�λιση Κάτω", ingame_gamespeed_slower = "Πιο α�γά", ingame_storePosition_9 = "9", ingame_gamespeed_max = "Max", ingame_scroll_up = "Κ�λιση Πάνω", ingame_restartLevel = "Επανεκκίνηση Επιπέδου", ingame_quickSave = "Γ�ήγο�η Αποθήκευση", ingame_panel_casebook = "Casebook", global_window_close_alt = "Κλείσιμο Πα�αθ��ου", ingame_panel_policy = "Πολιτική", ingame_panel_bankManager = "Διευθυντής Τ�απέζης", ingame_zoom_out_more = "Πε�ισσότε�ο Zoom Out", ingame_panel_bankStats = "Κατάσταση Τ�απέζης", ingame_panel_status = "Κατάσταση", ingame_panel_charts = "Γ�αφήματα", ingame_panel_editRoom = "Επεξε�γασία Δωματίου", ingame_toggleSounds = "Ήχοι", panel_toggleKeys = "Πλήκτ�α Toggle", panel_generalInGameKeys = "Γενικά In-Game Πλήκτ�α", global_showLuaConsole = "Κονσόλα Lua", ingame_poopLog = "Dump Log", global_confirm_alt = "Confirm Alt", ingame_poopStrings = "Dump Strings", ingame_gamespeed_speedup = "Επιτάχυνση", global_exitApp = "Έξοδος Εφα�μογής", ingame_toggleInfo = "Πλη�οφο�ίας", caption_main = "Ανάθεση Hotkey", panel_storePosKey = "Πλήκτ�α Αποθήκευσης Θέσης", ingame_panel_hireStaff = "Π�όσληψη Π�οσωπικο�", ingame_panel_casebook_alt = "Casebook 2", button_cancel = "Ακ��ωση", button_back = "Πίσω", caption_panels = "Πλήκτ�α Panel", ingame_quitLevel = "Έξοδος Επιπέδου", ingame_storePosition_1 = "1", ingame_toggleAnnouncements = "Ανακοινώσεις", ingame_toggleMusic = "Μουσική", ingame_panel_casebook_alt02 = "Casebook 3", panel_scrollKeys = "Πλήκτ�α Κ�λισης", ingame_storePosition_8 = "8", ingame_recallPosition_0 = "10", ingame_gamespeed_thensome = "Κι Άλλο Τόσο", ingame_recallPosition_5 = "5", ingame_storePosition_4 = "4", panel_zoomKeys = "Πλήκτ�α Zoom", ingame_storePosition_7 = "7", button_recallPosKeys = "Πλήκτ�α Ανάκλησης Θέσης", ingame_storePosition_5 = "5", } menu_file_save = { [1] = " ΠΑΙΧ�ΙΔΙ 1 ", [2] = " ΠΑΙΧ�ΙΔΙ 2 ", [3] = " ΠΑΙΧ�ΙΔΙ 3 ", [4] = " ΠΑΙΧ�ΙΔΙ 4 ", [5] = " ΠΑΙΧ�ΙΔΙ 5 ", [6] = " ΠΑΙΧ�ΙΔΙ 6 ", [7] = " ΠΑΙΧ�ΙΔΙ 7 ", [8] = " ΠΑΙΧ�ΙΔΙ 8 ", } level_names = { [1] = "ToxiCity", [2] = "Sleepy Hollow", [3] = "Largechester", [4] = "Frimpton-on-Sea", [5] = "Simpleton", [6] = "Festering-on-the-Wold", [7] = "Greenpool", [8] = "Manquay", [9] = "Eastville", [10] = "Eggsenham", [11] = "Croaking", [12] = "Battenburg", [13] = "Chumleigh", [14] = "Little Drubbing", [15] = "Bury Bury", } casebook = { cure_desc = { hire_psychiatrists = "Π�έπει να π�οσλάβετε Ψυχίατ�ους.", no_cure_known = "Καμία γνωστή Θε�απεία.", hire_surgeons = "Π�έπει να π�οσλάβετε Χει�ου�γο�ς.", build_ward = "Π�έπει ακόμα να χτίσετε μια Πτέ�υγα.", cure_known = "Θε�απεία.", improve_cure = "Βελτίωση Θε�απείας.", build_room = "Συνιστώ να χτίσετε %s", hire_doctors = "Π�έπει να π�οσλάβετε με�ικο�ς Γιατ�ο�ς.", hire_nurses = "Π�έπει να π�οσλάβετε με�ικές �οσοκόμες.", }, research = "συγκέντ�ωση έ�ευνας", earned_money = "κέ�δη", reputation = "φήμη", deaths = "θάνατοι", treatment_charge = "χ�έωση αγωγής", sent_home = "απο��ίφθηκαν", cured = "ανα��ώσεις", cure = "θε�απεία", } menu_debug_overlay = { byte_floor = " BYTE FLOOR ", none = " NONE ", byte_n_wall = " BYTE N WALL ", parcel = " PARCEL ", flags = " FLAGS ", positions = " POSITIONS ", byte_5 = " BYTE 5 ", byte_0_1 = " BYTE 0 & 1 ", byte_7 = " BYTE 7 ", heat = " TEMPERATURE ", byte_w_wall = " BYTE W WALL ", byte_6 = " BYTE 6 ", } menu_options_wage_increase = { deny = " ΑΠΟΡΡΙΨΗ ", grant = " ΧΟΡΗΓΗΣΗ ", } tooltip = { save_game_window = { save_game = "Αντικατάσταση αποθηκευμένου παιχνιδιο� %s", new_save_game = "Εισάγετε όνομα για νέο αποθηκευμένο παιχνίδι", }, fax = { close = "Κλείστε αυτό το πα�άθυ�ο χω�ίς να διαγ�αφεί το μήνυμα", }, watch = { epidemic = "Επιδημία: ο χ�όνος που απομένει για να συγκαλ�ψετε την επιδημία. Όταν αυτός ο χ�όνος λήξει Ή ένας μεταδοτικός ασθενής αποχω�ήσει από το νοσοκομείο σας, ένας Επιθεω�ητής Υγείας θα σας επισκεφτεί. Το κουμπί κάνει toggle την λειτου�γία εμβολιασμο� σε on ή off. Κάντε κλικ σε έναν ασθενή για να εμβολιαστεί από μια �οσοκόμα.", emergency = "Επείγον Πε�ιστατικό: ο χ�όνος που απομένει για να θε�απε�σετε όλους τους ασθενείς έκτακτης ανάγκης.", hospital_opening = "Χ�όνος χτισίματος: αυτός είναι ο χ�όνος που απομένει π�ιν το νοσοκομείο σας δηλωθεί ως ανοιχτό. Κάνοντας κλικ στο κουμπί GO θα έχει ως αποτέλεσμα το νοσοκομείο σας να ανοίξει αμέσως.", }, jukebox = { rewind = "Rewind jukebox", stop = "Πα�ση jukebox", current_title = "Jukebox", play = "Αναπα�αγωγή jukebox", close = "Κλείσιμο jukebox", loop = "Loop play jukebox", fast_forward = "Fast Forward jukebox", }, handyman_window = { face = "Π�όσωπο Πολυτεχνίτη", close = "Ακ��ωση αιτο�ντα", prio_machines = "Α�ξηση π�οτε�αιότητας Πολυτεχνίτη για επιδιό�θωση εξοπλισμο�", salary = "Μισθός", happiness = "Ευτυχία", parcel_select = "Το οικόπεδο (πε�ιοχή) στο οποίο ο πολυτεχνίτης αναλαμβάνει δουλειές, κλικ για αλλαγή �υθμίσεων", ability = "Ικανότητα", center_view = "Εστίαση σε Πολυτεχνίτη", name = "Όνομα Πολυτεχνίτη", prio_plants = "Α�ξηση π�οτε�αιότητας Πολυτεχνίτη για πότισμα φυτών", pick_up = "Α�πάξτε", sack = "Απολ�στε", tiredness = "Κο��αση", prio_litter = "Αυξήση π�οτε�αιότητας Πολυτεχνίτη για καθα�ισμό σκουπιδιών", }, hire_staff_window = { nurses = "Π�οβολή �οσοκόμων διαθέσιμων π�ος π�όσληψη", hire = "Π�όσληψη ατόμου", psychiatrist = "Ψυχίατ�ος", qualifications = "Επιπλέον Π�οσόντα Γιατ�ο�", researcher = "Ε�ευνητής", next_person = "Π�οβολή επόμενου ατόμου", doctor_seniority = "Παλαιότητα Γιατ�ο� (Μαθητευόμενος, Γιατ�ός, Σ�μβουλος)", handymen = "Π�οβολή Πολυτεχνιτών διαθέσιμων π�ος π�όσληψη", surgeon = "Χει�ου�γός", prev_person = "Π�οβολή π�οηγο�μενου ατόμου", salary = "Μισθός", staff_ability = "Ικανότητα π�οσωπικο�", cancel = "Ακ��ωση", doctors = "Π�οβολή Γιατ�ών διαθέσιμων π�ος π�όσληψη", receptionists = "Π�οβολή Ρεσεψιονίστ διαθέσιμων π�ος π�όσληψη", }, information = { close = "Κλείσιμο διαλόγου πλη�οφο�ιών", }, totd_window = { previous = "Εμφάνιση π�οηγο�μενης συμβουλής", next = "Εμφάνιση επόμενης συμβουλής", }, bank_manager = { close = "Κλείσιμο οθόνης Διευθυντή Τ�άπεζας", graph_return = "Επιστ�οφή στην π�οηγο�μενη οθόνγ", balance = "Το τ�απεζικό σας υπόλοιπο", inflation_rate = "Ετήσιος �υθμός πληθω�ισμο�", interest_payment = "Μηνιαίες πλη�ωμές τόκων", hospital_value = "Τ�έχουσα αξία του νοσοκομείου σας", current_loan = "Τ�έχοντα δάνεια που εκκ�εμο�ν", repay_5000 = "Αποπλη�ωμή $5000 στην τ�άπεζα", insurance_owed = "Χ�ήματα που σας χ�ωστο�νται από %s", graph = "Γ�άφημα αναμενόμενων πλη�ωμών από %s", borrow_5000 = "Δανειστείτε $5000 από την τ�άπεζα", interest_rate = "Ετήσιο επιτόκιο", show_graph = "Π�οβολή γ�αφήματος αναμενόμενων πλη�ωμών από %s", }, rooms = { research_room = "Οι Γιατ�οί με ικανότητες Έ�ευνας μπο�ο�ν να ανακαλ�ψουν νέα φά�μακα και μηχανήματα στο Δωμάτιο Ε�ευνών", hair_restoration = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Αποκατάστασης Μαλλιών για να θε�απε�σει την Φαλάκ�α", blood_machine = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Μηχανήματος Αίματος για να διαγνώσει Ασθενείς", scanner = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Σά�ωσης για να διαγνώσει Ασθενείς", inflation = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Φουσκώματος για να θε�απε�ει Ασθενείς με Φουσκωτά Κεφάλια", x_ray = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Ακτινογ�αφίας για να διαγνώσει Ασθενείς", operating_theatre = "Το Χει�ου�γείο χ�ειάζεται δ�ο Γιατ�ο�ς με χει�ου�γικές δεξιότητες", staffroom = "Οι Γιατ�οί και οι �οσοκόμες χαλα�ώνουν στο δωμάτιο π�οσωπικο� και ξεκου�άζονται", jelly_vat = "Ένας Γιατ�ός χ�ησιμοποιεί την Δεξαμενή Ζελέ για να θε�απε�σει την Ζελετίτιδα", psychiatry = "Το Ψυχιατ�είο θε�απε�ει τ�ελο�ς ασθενείς και βοηθάει στην διάγνωση άλλων ασθενών, αλλά χ�ειάζεται έναν Γιατ�ό με Ψυχιατ�ικές δεξιότητες", toilets = "Χτίστε Τουαλέτες για να αποτ�έψετε τους Ασθενείς από το να τα κάνουν χάλια στο νοσοκομείο σας!", cardiogram = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Κα�διογ�αφήματος για να διαγνώσει Ασθενείς", ward = "Οι Πτέ�υγες είναι χ�ήσιμες τόσο για διαγνώσεις όσο και για αγωγές. Οι ασθενείς στέλνονται εδώ για ιατ�ική πα�ακολο�θηση και επίσης για να ανα��ώσουν σε μια κλινή από εγχει�ήσεις, με την φ�οντίδα μιας �οσοκόμας", ultrascan = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Ultrascan για να διαγνώσει Ασθενείς", tongue_clinic = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Τεμαχίσματος Γλώσσας για να θε�απε�σει Χαλα�ές Γλώσσες", pharmacy = "Η �οσοκόμα χο�ηγεί φά�μακα για να θε�απε�σει ασθενείς σε ένα Φα�μακείο", fracture_clinic = "Μια �οσοκόμα χ�ησιμοποιεί την Κλινική Καταγμάτων για να επιδιο�θώσει Σπασμένα Κόκκαλα", dna_fixer = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Επιδιο�θωτή DNA για να θε�απε�σει ασθενείς με Εξωγήινο DNA", general_diag = "Ένας Γιατ�ός χ�ησιμοποιεί το Δωμάτιο Γενικής Διάγνωσης για βασική διάγνωση των ασθενών. Φθηνή και πολλές φο�ές πολ� αποτελεσματική", gps_office = "Οι Ασθενείς λαμβάνουν την α�χική τους γνωμάτευση και τα αποτελέσματα στο Γ�αφείο του Γενικο� Ιατ�ο�", decontamination = "Ένας Γιατ�ός χ�ησιμοποιεί το �τουζ Απολ�μανσης για να θε�απε�σει την Ραδιενέ�γεια", training_room = "Ένα δωμάτιο Εκπαίδευσης μαζί με έναν Σ�μβουλο Ιατ�ό μπο�εί να χ�ησιμοποιηθεί για την εκπαίδευση πε�αιτέ�ω Γιατ�ών", electrolysis = "Ένας Γιατ�ός χ�ησιμοποιεί το δωμάτιο Ηλεκτ�όλυσης για να θε�απε�σει την Μαλλίτιδα", }, queue_window = { patient_dropdown = { hospital_2 = "Πα�απομπή ασθενο�ς σε άλλο νοσοκομείο", reception = "Αποστολή ασθενή στην Ρεσεψιονίστ", send_home = "Δώστε στον ασθενή εξιτή�ιο από το νοσοκομείο", hospital_1 = "Πα�απομπή ασθενο�ς σε άλλο νοσοκομείο", hospital_3 = "Πα�απομπή ασθενο�ς σε άλλο νοσοκομείο", }, num_entered = "Α�ιθμός ασθενών οι οποίοι έχουν λάβει ιατ�ική αγωγή σε αυτό το δωμάτιο μέχ�ι τώ�α", max_queue_size = "Μέγιστο μέγεθος ου�άς που μπο�εί η Ρεσεψιονίστ να αποπει�αθεί να επιτ�έψει", num_in_queue = "Α�ιθμός ασθενών στην ου�ά", dec_queue_size = "Μείωση μέγιστου μεγέθους ου�άς", inc_queue_size = "Α�ξηση μέγιστου μεγέθους ου�άς", front_of_queue = "Σ��ετε έναν ασθενή σε αυτό το εικονίδιο για να τους μεταφέ�ετε στην α�χή της ου�άς", num_expected = "Α�ιθμός ασθενών που η Ρεσεψιονίστ αναμένει να έ�θουν στην ου�ά π�οσεχώς", patient = "Σ��ετε έναν ασθενή για να αλλάξετε την θέση του στην ου�ά. Κάντε δεξί κλικ σε έναν ασθενή για να τον στείλετε στο σπίτι ή να τον πα�απέμψετε σε ένα αντίπαλο νοσοκομείο", end_of_queue = "Σ��ετε έναν ασθενή σε αυτό το εικονίδιο για να τον μετακινήσετε στο τέλος της ου�άς", close = "Κλείσιμο αυτο� του πα�αθ��ου", }, update_window = { download = "Πηγαίντε στην σελίδα λήψης για την τελευταία έκδοση του CorsixTH", ignore = "Αγνοήστε αυτήν την ενημέ�ωση για τώ�α. Θα ειδοποιηθείτε ξανά όταν ξανανοίξετε το CorsixTH", }, staff_list = { tiredness = "Δείχνει πόσο κου�ασμένοι είναι αυτοί οι υπάλληλοι", salary = "Τ�έχοντας μισθός αυτο� του ατόμου", researcher_train = "Ο %d%% εκπαιδε�τηκε για να γίνει Ε�ευνητής", receptionists = "Π�οβολή λίστας Ρεσεψιονίστ που ε�γάζονται στο νοσοκομείο", surgeon = "Πιστοποιημένος Χει�ου�γός", psychiatrist = "Πιστοποιημένος Ψυχίατ�ος", pay_rise = "Α�ξηση του μισθο� αυτο� του ατόμου κατά 10%", prev_person = "Π�οβολή π�οηγο�μενης σελίδας", next_person = "Π�οβολή επόμενης σελίδας", tiredness_2 = "Κο��αση Υπαλλήλου", bonus = "Πλη�ώστε αυτό το άτομο μπόνους 10%", nurses = "Π�οβολή λίστας �οσοκόμων που ε�γάζονται στο νοσοκομείο", close = "Έξοδος και επιστ�οφή στο παιχνίδι", skills = "Επιπλέον δεξιότητες", researcher = "Πιστοποιημένος Ε�ευνητής", ability_2 = "Επίπεδο Ικανότητας Υπαλλήλου", happiness = "Δείχνει πόσο ικανοποιημένοι είναι αυτοί οι υπάλληλοι", psychiatrist_train = "Ο %d%% εκπαιδε�τηκε για να γίνει Ψυχίατ�ος", doctor_seniority = "Παλαιότητα Γιατ�ο�", view_staff = "Π�οβολή ατόμου εν ώ�α ε�γασίας", handymen = "Π�οβολή λίστας Πολυτεχνιτών που ε�γάζονται στο νοσοκομείο", happiness_2 = "Ηθικό Υπαλλήλου", surgeon_train = "Ο %d%% εκπαιδε�τηκε για να γίνει Χει�ου�γός", doctors = "Π�οβολή λίστας Γιατ�ών που ε�γάζονται στο νοσοκομείο", sack = "Απολ�στε αυτό το άτομο", detail = "Π�οσοχή στις Λεπτομέ�ειες", ability = "Π�οβολή του επιπέδου ικανοτήτων αυτών των υπαλλήλων", }, objects = { desk = "Γ�αφείο: απα�αίτητο για να τοποθετο�ν επάνω του οι Γιατ�οί τον υπολογιστή τους.", toilet_sink = "�ιπτή�ας: οι ασθενείς σας που νοιάζονται πα�απάνω για την π�οσωπική τους υγιεινή μπο�ο�ν να πλ�νουν εδώ τα λιγδιασμένα χέ�ια τους. Αν δεν υπά�χουν α�κετοί νιπτή�ες, οι ασθενείς γίνονται δυσα�εστημένοι.", fire_extinguisher = "Πυ�οσβεστή�ας: ελαχιστοποιεί τον κίνδυνο από τυχόν δυσλειτου�γικό εξοπλισμό.", skeleton = "Σκελετός: χ�ησιμοποιείται για εκπαιδευτικο�ς σκοπο�ς για το Halloween.", scanner = "14 OB_SCANNER", x_ray = "27 OB_XRAY", litter_bomb = "Βόμβα Σκουπιδιών: σαμποτό�ατε τα νοσοκομεία των αντιπάλων", rathole = "Σπίτι μιας οικογένειας α�ου�αίων που β�ήκε το νοσοκομείο σας α�κετά β�ώμικο ώστε να ζήσει εδώ.", video_game = "Βιντεοπαιχνίδι: αφήστε το π�οσωπικό σας να ξεκου�αστεί με το Hi-Octane.", electrolyser = "46 OB_ELECTRO", litter = "Σκουπίδι: το πέταξε στο πάτωμα ασθενής γιατί δεν β�ήκε έναν κάδο να το πετάξει.", swing_door2 = "53 OB_DOUBLE_DOOR2", bookcase = "Βιβλιοθήκη: βιβλιογ�αφική αναφο�ά για Γιατ�ο�ς.", couch = "18 OB_COUCH", lamp = "Λάμπα: εκπέμπει φως και βοηθάει το π�οσωπικό να δει.", x_ray_viewer = "29 OB_XRAY_VIEWER", bed3 = "δεν χ�ησιμοποιείται", chair = "Κα�έκλα: οι ασθενείς κάθονται εδώ και συζητάνε σχετικά με τις ασθένειές τους.", bench = "Πάγκος: π�οσφέ�ει κάθισμα για έναν ασθενή, καθιστώντας πια άνετη την αναμονή.", operating_table = "30 OB_OP_TABLE", crash_trolley = "20 OB_CRASH", entrance_right = "59 OB_ENT_RDOOR", inflator = "Φουσκωτής: θε�απε�ει άτομα με Φουσκωτό Κεφάλι.", op_sink1 = "33 OB_OP_SINK_1", radiator = "Καλο�ιφέ�: κ�ατάει το νοσοκομείο σας ζεστό.", drinks_machine = "Αναψυκτή�ιο: αποτ�έπει τους ασθενείς από το να διψάσουν και π�οσφέ�ει εισόδημα.", cast_remover = "24 OB_CAST_REMOVE", ultrascanner = "22 OB_ULTRASCAN", hair_restorer = "25 OB_HAIR_RESTORER", dna_fixer = "23 OB_DNA_FIXER", plant = "Φυτό: κ�ατάει τους ασθενείς χα�ο�μενος και εξαγνίζει τον αέ�α.", slicer = "26 OB_SLICER", auto_autopsy = "Αυτοψία: βοηθάει εξαι�ετικά στην ανακάλυψη νέων θε�απειών", computer = "Υπολογιστής: απα�αίτητο ε�γαλείο έ�ευνας", projector = "37 OB_PROJECTOR", radiation_shield = "28 OB_RAD_SHIELD", op_sink2 = "34 OB_OP_SINK_2", table2 = "12 OB_BTABLE", jelly_moulder = "47 OB_JELLY_VAT", cardio = "13 OB_CARDIO", blood_machine = "42 OB_BLOOD_MC", door = "Πό�τα: ο κόσμος τις ανοίγει και τις κλείνει πολ� συχνά.", pool_table = "Τ�απέζι μπιλιά�δου: βοηθάει το π�οσωπικό σας να χαλα�ώσει.", cabinet = "Α�χειοθήκη: πε�ιέχει τα α�χεία των ασθενών, σημειώσεις και έγγ�αφα ε�ευνών.", shower = "54 OB_DECON_SHOWER", surgeon_screen = "35 OB_SURGEON_SCREEN", gates_of_hell = "48 OB_HELL", table1 = "Τ�απέζει (ΕΧΕΙ ΑΦΑΙΡΕΘΕΙ): φιλοξενεί συλλογές πε�ιοδικών για να κ�ατήσουν χα�ο�μενους τους ασθενείς που πε�ιμένουν.", bed2 = "δεν χ�ησιμοποιείται", sofa = "Καναπές: Οι Υπάλληλοι που ξεκου�άζονται στο Δωμάτιο Π�οσωπικο� θα κάτσουν ήσυχα σε έναν καναπέ εκτός και αν υπά�χει κάποιος καλ�τε�ος τ�όπος χαλά�ωσης.", comfortable_chair = "61 OB_COMFY_CHAIR", console = "15 OB_SCANNER_CONSOLE", atom_analyser = "Χημικό μίξε�: αυτό το μηχάνημα που β�ίσκεται στο Τμήμα Ε�ευνών, επιταχ�νει την όλη διαδικασία της έ�ευνας.", tv = "TV: σιγου�έψτε ότι το π�οσωπικό σας δεν θα χάσει τα αγαπημένα του π�ογ�άμματα.", bed = "Κ�εβάτι: οι πολ� ά��ωστοι άνθ�ωποι ξαπλώνουν σε αυτά.", pharmacy_cabinet = "Φα�μακείο: εκεί όπου φυλάσσονται τα φά�μακα", toilet = "Τουαλέτα: ασθενείς.. χ�ησιμοποιήστε την.", lecture_chair = "Κα�έκλα διάλεξης: οι μαθητευόμενοι Γιατ�οί σας κάθονται εδώ για να πά�ουν σημειώσεις, να βα�εθο�ν και να κάνουν μουτζο��ες. Όσο πε�ισσότε�ες κα�έκλες τοποθετείτε, τόσο μεγαλ�τε�ο μπο�εί να είναι το μέγεθος της τάξης σας.", screen = "16 OB_SCREEN", bin = "Κάδος: οι ασθενείς πετάνε τα σκουπίδια τους εδώ.", swing_door1 = "52 OB_DOUBLE_DOOR1", entrance_left = "58 OB_ENT_LDOOR", reception_desk = "Γ�αφείο Ρεσεψιόν: απαιτεί μια Ρεσεψιονίστ που κατευθ�νει τους ασθενείς στους Γιατ�ο�ς σας.", }, calls_dispatcher = { close = "Κλείσιμο διαλόγου αποστολέα κλήσεων", assigned = "Αυτό το κουτί μα�κά�εται εάν σε κάποιον έχει ανατεθεί η ε�γασία που αντιστοιχεί.", task = "Λίστα ε�γασιών - κάντε κλικ σε μια ε�γασία για να ανοίξετε το πα�άθυ�ο του π�οσωπικο� στο οποίο έχει ανατεθεί και να κάνετε μετακ�λιση στην τοποθεσία της ε�γασίας", }, customise_window = { average_contents = "Αν επιθυμείτε το παιχνίδι να θυμάται ποια επιπλέον αντικείμενα π�οσθέτετε συνήθως όταν χτίζετε δωμάτια, τότε ενε�γοποιήστε αυτήν την επιλογή", intro = "Απενε�γοποιήστε ή ενε�γοποιήστε το εισαγωγικό βίντεο, η ��θμιση global movies θα π�έπει να είναι on αν θέλετε το εισαγωγικό βίντεο να παίζει κάθε φο�ά που φο�τώνετε το CorsixTH", paused = "Στο Theme Hospital ο παίκτης μπο�ο�σε να χ�ησιμοποιήσει το top menu μόνο αν το παιχνίδι ήταν σε πα�ση. Αυτή είναι και η π�οεπιλεγμένη ��θμιση στο CorsixTH, αλλά ενε�γοποιώντας το τα πάντα επιτ�έπονται ακόμα και εάν το παιχνίδι β�ίσκεται σε πα�ση", aliens = "Λόγω της έλλειψης των κατάλληλων animations έχουμε ο�ίσει από π�οεπιλογή ότι οι ασθενείς με Εξωγήινο DNA θα έ�χονται μόνο στα επείγοντα πε�ιστατικά. Για να επιτ�έψετε τους ασθενείς με Εξωγήινο DNA να επισκεφτο�ν το νοσοκομείο σας, σε πε�ιπτώσεις εκτός των πε�ιστατικών έκτακτης ανάγκης, απενε�γοποιήστε αυτήν την ��θμιση", fractured_bones = "Λόγω ενός poor animation έχουμε ο�ίσει από π�οεπιλογή το να μην υπά�χουν θηλυκοί ασθενείς με Σπασμένα Κόκκαλα. Για να επιτ�έψεται σε θηλυκο�ς ασθενείς με Σπασμένη Κόκκαλα να επισκέπτονται το νοσοκομείο σας, απενε�γοποιήστε αυτήν την ��θμιση", back = "Κλείσιμο αυτο� του μενο� και επιστ�οφή στο Μενο� Ρυθμίσεων", movies = "Καθολικός ελεγχτής βίντεο (global movie control), αυτή η ��θμιση θα σας επιτ�έψει να απενε�γοποιήσετε όλα τα βίντεo", volume = "Αν το πλήκτ�ο volume down ανοίγει επίσης και το casebook, ενε�γοποιήστε αυτήν την ��θμιση για να αλλάξετε το hotkey για το casebook σε Shift + C", }, status = { close = "Κλείσιμο οθόνης Επισκόπησης", win_progress_other = "Εμφάνιση π�οόδου αναφο�ικά με τα κ�ιτή�ια νίκης για %s", thirst = "Γενικό επίπεδο δίψας των ανθ�ώπων στο νοσοκομείο σας", happiness = "Γενικό επίπεδο ευτυχίας των ανθ�ώπων στο νοσοκομείο σας", percentage_cured = "Θα π�έπει να έχετε θε�απε�σει το %d%% των επισκεπτών στο νοσοκομείο σας. Μέχ�ι στιγμής έχετε θε�απε�σει το %d%%", win_progress_own = "Εμφάνιση π�οόδου αναφο�ικά με τα κ�ιτή�ια νίκης για το δικό σας νοσοκομείο", reputation = "Η Φήμη σας δεν π�έπει να είναι λιγότε�ο από %d. Π�ος το πα�όν είναι %d", balance = "Το τ�απεζικό σας υπόλοιπο δεν π�έπει να είναι κάτω από %d. Π�ος το πα�όν είναι %d", warmth = "Γενικό επίπεδο ζεστασιάς των ανθ�ώπων στο νοσοκομείο σας", population_chart = "Γ�άφημα το οποίο δείχνει τι με�ίδα του τοπικο� πληθυσμο� π�οσελκ�ει το κάθε νοσοκομείο", value = "Το νοσοκομείο σας π�έπει να αξίζει $%d. Π�ος το πα�όν αξίζει $%d", percentage_killed = "Η αποστολή είναι να έχετε σκοτώσει λιγότε�ο από το %d%% των επισκεπτών. Π�ος το πα�όν έχετε σκοτώσει το %d%%", num_cured = "Η αποστολή είναι να θε�απε�σετε %d ανθ�ώπους. Μέχ�ι στιγμής έχετε θε�απε�σει %d", population = "Θα π�έπει το %d%% του γενικο� πληθυσμο� να επισκέπτεται το νοσοκομείο σας", }, research = { close = "Κλείσιμο οθόνης Έ�ευνας", cure_dec = "Μείωση ποσοστο� της έ�ευνας για Θε�απείες", drugs_dec = "Μείωση ποσοστο� Φα�μακευτικής έ�ευνας", specialisation_dec = "Μείωση ποσοστο� Ειδικής Έ�ευνας", specialisation_inc = "Α�ξηση ποσοστο� Ειδικής Έ�ευνας", drugs_inc = "Α�ξηση ποσοστο� Φα�μακευτικής έ�ευνας", allocated_amount = "Δεσμευμένο ποσό του π�οϋπολογισμο�", diagnosis_dec = "Μείωση ποσοστο� διαγνωστικής Έ�ευνας", improvements_dec = "Μείωση ποσοστο� φα�μακευτικών Βελτιώσεων", diagnosis_inc = "Α�ξηση ποσοστο� έ�ευνας Εξοπλισμο�", cure_inc = "Α�ξηση ποσοστο� Έ�ευνας", improvements_inc = "Α�ξηση ποσοστο� Βελτιώσεων", }, custom_game_window = { load_selected_level = "Φο�τώστε και παίξτε το επιλεγμένο επίπεδο", free_build = "Τσεκά�ετε αυτό το κουτί αν θέλετε να παίζετε χω�ίς χ�ήματα ή συνθήκες νίκης και ήττας", choose_game = "Κλικά�ετε ένα επίπεδο για να διαβάσετε πε�ισσότε�α σχετικά με αυτό", }, new_game_window = { difficulty = "Επιλέξτε το επίπεδο δυσκολίας που θέλετε να παίξετε το παιχνίδι", medium = "Αυτή είναι ο μέσος δ�όμος για να ακολουθήσετε αν δεν είστε σίγου�οι το να επιλέξετε", player_name = "Εισάγετε το όνομα που θα θέλατε να σας αναφέ�ουν στο παιχνίδι", tutorial = "Κάντε κλικ εδώ για να ενε�γοποιήσετε κάποιες συμβουλές για να σας βοηθήσουν να ξεκινήσετε στο παιχνίδι", hard = "Αν είστε συνηθισμένοι σε αυτό το είδος παιχνιδιο� και θέλετε μια μεγαλ�τε�η π�όκληση, διαλέξτε αυτήν την επιλογή", cancel = "Ωπ, δεν ήθελα όντως να ξεκινήσω καινο��ιο παιχνίδι!", easy = "Αν είστε νέος σε παιχνίδια π�οσομοίωσης τότε αυτή είναι η κατάλληλη επιλογή για εσάς", start = "Ξεκινήστε το παιχνίδι με τις επιλεγμένες �υθμίσεις", }, message = { button = "Κάντε α�ιστε�ό κλικ για να ανοίξετε το μήνυμα", button_dismiss = "Κάντε α�ιστε�ό κλικ για να ανοίξετε το μήνυμα, δεξί κλικ για να το αποσ��ετε", }, graphs = { close = "Κλείσιμο Οθόνης Γ�αφήματος", visitors = "Εμφάνιση επισκεπτών", scale = "Κλίμακα γ�αφήματος", balance = "Εμφάνιση υπολοίπου", cures = "Εμφάνιση θε�απειών", wages = "Εμφάνιση μισθών", reputation = "Εμφάνιση Αξίας �οσοκομείου", deaths = "Εμφάνιση θανάτων", money_out = "Εμφάνιση εξόδων", money_in = "Εμφάνιση εσόδων", }, folders_window = { browse_screenshots = "Αναζητήστε άλλη τοποθεσία για φάκελο Screenshots ( Τ�έχουσα τοποθεσία: %1% ) ", browse_font = "Αναζητήστε άλλο α�χείο γ�αμματοσει�άς ( τ�έχουσα τοποθεσία: %1% )", not_specified = "Δεν έχει ο�ιστεί τοποθεσία φακέλου!", savegames_location = "Από π�οεπιλογή, ο φάκελος των Saves β�ίσκεται μαζί με το α�χείο �υθμίσεων και θα χ�ησιμοποιηθεί για την διατή�ηση των αποθηκευμένων παιχνιδιών σας. Αν αυτό δεν είναι επιθυμητό, τότε μπο�είτε να διαλέξετε τον δικό σας φάκελο, απλώς πε�ιηγηθείτε στην διαδ�ομή δίσκου που θέλετε να χ�ησιμοποιήσετε.", browse = "Αναζήτηση τοποθεσίας φακέλου", data_location = "Ο φάκελος της α�χικής εγκατάστασης του Theme Hospital, η οποία απαιτείται για να τ�έξει το CorsixTH", browse_data = "Αναζητήστε άλλη τοποθεσία εγκατάστασης του Theme Hospital (τ�έχουσα τοποθεσία: %1%)", reset_to_default = "Επαναφο�ά διαδ�ομής στην π�οεπιλεγμένη τοποθεσία ( %1% )", browse_saves = "Αναζητήστε άλλη τοποθεσία για τον φάκελο των Saves σας ( Τ�έχουσα τοποθεσία: %1% ) ", screenshots_location = "Από π�οεπιλογή, τα Screenshots αποθηκε�ονται σε έναν φάκελο μαζί με το α�χείο �υθμίσεων. Αν αυτό δεν είναι επιθυμητό, τότε μπο�είτε να διαλέξετε τον δικό σας φάκελο, απλώς πε�ιηγηθείτε στην διαδ�ομή δίσκου που θέλετε να χ�ησιμοποιήσετε.", browse_music = "Αναζητήστε άλλη τοποθεσία για τον φάκελο της μουσικής σας ( Τ�έχουσα τοποθεσία: %1% ) ", no_font_specified = "Δεν έχει ο�ιστεί τοποθεσία γ�αμματοσει�άς!", back = "Κλείσιμο αυτο� του μενο� και επιστ�οφή στο Μενο� Ρυθμίσεων", default = "Π�οεπιλεγμένη τοποθεσία", music_location = "Επιλέξτε τοποθεσία για τα α�χεία μουσικής σας. Π�έπει να έχετε δημιου�γήσει ήδη τον φάκελο, και �στε�α να πε�ιηγηθείτε σε αυτόν που μόλις δημιου�γήσατε.", font_location = "Τοποθεσία α�χείου γ�αμματοσει�άς που είναι ικανό να εμφανίσει χα�ακτή�ες Unicode οι οποίοι απαιτο�νται από την γλώσσα σας. Αν αυτό δεν έχει ο�ιστεί, τότε δεν θα μπο�έσετε να επιλέξετε γλώσσες που χ�ειάζονται πε�ισσότε�ους χα�ακτή�ες από όσους μπο�εί να πα�έχει το α�χικό παιχνίδι. Πα�αδείγματα τέτοιων γλωσσών: Ρωσικά και Κινέζικα", }, toolbar = { hire = "Π�όσληψη π�οσωπικο�", research = "Έ�ευνα", status = "Κατάσταση", bank_button = "Α�ιστε�ό Κλικ για Διαχει�ιστή Τ�απέζης, Δεξί Κλικ για Τ�απεζική Δήλωση", balance = "Το υπόλοιπό σας", edit = "Επεξε�γασία δωματίων/αντικειμένων", charts = "Γ�αφήματα", reputation = "Η φήμη σας", town_map = "Χά�της πόλης", rooms = "Χτίσιμο δωματίων", policy = "Πολιτικές", date = "Η ημε�ομηνία", casebook = "Α�χείο υποθέσεων (casebook) φα�μάκων", staff_list = "Διαχεί�ιση π�οσωπικο�", objects = "Επίπλωση διαδ�όμων", }, hotkey_window = { button_accept = "Αποδοχή της πα�απάνω ανάθεσης hotkeys και αποθήκευση στον δίσκο", button_defaults = "Επαναφο�ά όλων των hotkeys στις π�οεπιλογές του π�ογ�άμματος", button_back_02 = "Επιστ�οφή στο βασικό πα�άθυ�ο hotkey. Εκεί μπο�είτε να αποδεχτείτε τα hotkeys που άλλαξαν σε αυτό εδώ το πα�άθυ�ο", button_cancel = "Ακ��ωση ανάθεσης και επιστ�οφή στο μενο� επιλογών", button_recallPosKeys = "Άνοιγμα πα�αθ��ου για ο�ισμό πλήκτ�ων για αποθήκευση και επανάκληση των θέσεων της κάμε�ας", caption_panels = "Άνοιγμα πα�αθ��ου για ανάθεση πλήκτ�ων του panel", }, town_map = { heat_dec = "Μείωση θε�μοκ�ασίας", close = "Έξοδος από την οθόνη πόλης", balance = "Υπόλοιπο", people = "Εμφάνιση ανθ�ώπων", heating_bill = "Λογα�ιασμός θέ�μανσης", heat_level = "Επίπεδο θέ�μανσης", radiators = "Εμφάνιση καλο�ιφέ�", fire_extinguishers = "Εμφάνιση πυ�οσβεστή�ων", plants = "Εμφάνιση φυτών", heat_inc = "Α�ξηση θε�μοκ�ασίας", objects = "Εμφάνιση αντικειμένων", }, custom_campaign_window = { start_selected_campaign = "Φό�τωση του π�ώτου επιπέδου αυτής της καμπάνιας", choose_campaign = "Επιλέξτε μια καμπάνια για να διαβάσετε πε�ισσότε�α σχετικά με αυτήν", }, casebook = { cured = "Α�ιθμός ανα��ώσεων", sent_home = "Α�ιθμός ασθενών που απο��ίφθησαν", increase = "Α�ξηση ποσο�", cure_type = { surgery = "Αυτή η ασθένεια απαιτεί εγχεί�ηση", drug = "Αυτή η αγωγή χ�ησιμοποιεί φά�μακο", psychiatrist = "Ο Ψυχίατ�ος εκτελεί αυτήν την αγωγή", machine = "Αυτή η αγωγή απαιτεί ένα μηχάνημα", drug_percentage = "Αυτή η αγωγή χ�ησιμοποιεί φά�μακο - το δικό σας είναι %d%% αποδοτικό", unknown = "Δεν γνω�ίζετε ακόμα πως να θε�απε�σετε αυτήν την ασθένεια", }, earned_money = "Συνολικά κέ�δη μέχ�ι τώ�α", close = "Κλείσιμο Α�χείου Υποθέσεων", reputation = "Φήμη Αναφο�ικά με Θε�απείες ή Διαγνώσεις", down = "Κ�λιση κάτω", research = "Κάντε κλικ εδώ για να χ�ησιμοποιήσετε μπάτζετ της Ειδικευμένης Έ�ευνας σε αυτήν την θε�απεία", deaths = "Α�ιθμός θανόντων", treatment_charge = "Κόστος", decrease = "Μείωση ποσο�", cure_requirement = { hire_staff = "Απαιτείται να π�οσλάβετε π�οσωπικό για να χει�ιστείτε αυτήν την θε�απεία", possible = "Μπο�είτε να χει�ιστείτε αυτήν την θε�απεία", hire_surgeon = "Απαιτείται να π�οσλάβετε έναν δε�τε�ο Χει�ου�γό για να π�αγματοποιείτε εγχει�ήσεις", hire_surgeons = "Απαιτείται να π�οσλάβετε δ�ο Χει�ου�γο�ς για να π�αγματοποιείτε εγχει�ήσεις", build_ward = "Π�έπει να χτίσετε μια Πτέ�υγα για να χει�ιστείτε αυτήν την θε�απεία", research_machine = "Π�έπει να ε�ευνήσετε εξοπλισμό για αυτήν την θε�απεία", ward_hire_nurse = "Χ�ειάζεστε μια �οσοκόμα να δουλέψει σε μια Πτέ�υγα για να χει�ιστείτε αυτήν την θε�απεία", build_room = "Απαιτείται να χτίσετε ένα δωμάτιο για να χει�ιστείτε αυτήν την θε�απεία", hire_staff_old = "Π�έπει να π�οσλάβετε έναν/μία %s για να χει�ιστείτε αυτήν την θε�απεία", not_possible = "Δεν μπο�είτε ακόμα να χει�ιστείτε αυτήν την θε�απεία", }, up = "Κ�λιση πάνω", }, pay_rise_window = { accept = "Ανταποκ�ιθείτε στην ζήτηση για α�ξηση πλη�ωμής", decline = "Μην δεχτείτε την α�ξηση - απολ�στε τους αντί αυτο�", }, window_general = { confirm = "Επιβεβαίωση", cancel = "Ακ��ωση", }, options_window = { capture_mouse = "Κάντε κλικ για να ενε�γοποιήσετε/απενε�γοποιήσετε την δέσμευση του κέ�σο�α από το πα�άθυ�ο του παιχνιδιο�", apply_zoomspeed = "Εφα�μογή της καταχω�ημένης ταχ�τητας zoom.", language_dropdown_item = "Επιλέξτε τα %s ως γλώσσα", select_language = "Επιλέξτε την γλώσσα του παιχνιδιο�", cancel_zoomspeed = "Επιστ�οφή χω�ίς αλλαγή της ταχ�τητας zoom.", resolution = "Η ανάλυση στην οποία τ�έχει το παιχνίδι", back = "Κλείσιμο πα�αθ��ου Ρυθμίσεων", language = "Η γλώσσα στην οποία θα εμφανιστο�ν τα κείμενα του παιχνιδιο�", scrollspeed = "Θέστε την ταχ�τητα κ�λισης μεταξ� 1 (η πιο α�γή) και 10 (η ταχ�τε�η). Η π�οεπιλογή είναι 2.", width = "Εισάγετε επιθυμητό πλάτος οθόνης", fullscreen = "Επιλέξτε αν το παιχνίδι θα τ�έχει σε λειτου�γία πλή�ης οθόνης ή πα�αθ��ου", cancel_scrollspeed = "Επιστ�οφή χω�ίς να αλλάξετε την ταχ�τητα κ�λισης.", hotkey = "Αλλαγή hotkeys πληκτ�ολογίου.", apply_shift_scrollspeed = "Εφα�μόστε την καταχω�ημένη ταχ�τητα κ�λισης με Shift.", apply = "Εφα�μογή της καταχω�ημένης ανάλυσης", change_resolution = "Αλλαγή της ανάλυσης του πα�αθ��ου στις διαστάσεις που καταχω�ήθηκαν στα α�ιστε�ά", apply_scrollspeed = "Εφα�μογή της καταχω�ημένης ταχ�τητας κ�λισης.", fullscreen_button = "Κάντε κλικ για ενε�γοποίηση/απενε�γοποίηση λειτου�γίας πλή�ης οθόνης", cancel_shift_scrollspeed = "Επιστ�οφή χω�ίς να αλλάξετε την ταχ�τητα κ�λισης με Shift.", select_resolution = "Επιλέξτε μια νέα ανάλυση", zoom_speed = "Θέστε την ταχ�τητα zoom της κάμε�ας από 10 (η πιο α�γή) σε 1000 (η ταχ�τε�η). Η π�οεπιλογή είναι 80.", customise_button = "Πε�ισσότε�ες �υθμίσεις που μπο�είτε να τ�οποποιήσετε για να π�οσα�μόσετε την εμπει�ία του game play", folder_button = "Επιλογές Φακέλων", cancel = "Επιστ�οφή χω�ίς να αλλάξετε την ανάλυση", shift_scrollspeed = "Θέστε την ταχ�τητα της κ�λισης όταν πιέζετε πα�ατεταμένα το Shift καθώς κάνετε scrolling. 1 (η πιο α�γή) με 10 (η ταχ�τε�η). Π�οεπιλογή: 4.", height = "Εισάγετε επιθυμητό �ψος οθόνης", }, audio_window = { audio_button = "Ενε�γοποιήστε ή απενε�γοποιήστε όλους τους ήχους του παιχνιδιο�", audio_toggle = "Ενε�γοποιήστε ή απενε�γοποιήστε", }, cheats_window = { close = "Κλείσιμο διαλόγου cheats", cheats = { all_research = "Ολοκλη�ώνει όλη την έ�ευνα.", emergency = "Δημιου�γεί ένα επείγον πε�ιστατικό.", vip = "Δημιου�γεί έναν VIP.", win_level = "Κε�δίζει το τ�έχον επίπεδο.", epidemic = "Δημιου�γεί έναν μεταδοτικό ασθενεί που μπο�εί να π�οκαλέσει επιδημία", toggle_infected = "Εμφανίζει τα εικονίδια των μολυσμένων για την ενε�γή επιδημία που ανακαλ�φθηκε", end_year = "Μετάβαση στο τέλος του χ�όνου.", lose_level = "Χάστε το τ�έχον επίπεδο.", increase_prices = "Α�ξηση όλων των τιμών κατά 50% (μέγιστο 200%)", earthquake = "Δημιου�γεί έναν σεισμό.", decrease_prices = "Μείωση όλων των τιμών κατά 50% (ελάχιστο 50%)", create_patient = "Δημιου�γεί έναν Ασθενή στα ό�ια του χά�τη.", money = "Π�οσθέτει 10.000 στο τ�απεζικό σας υπόλοιπο.", end_month = "Μετάβαση στο τέλος του μήνα.", }, }, place_objects_window = { buy_sell = "Αγο�απώληση αντικειμένων", cancel = "Ακ��ωση", pick_up = "Σήκωμα αντικειμένου", confirm = "Επιβεβαίωση", }, staff_window = { face = "Το π�όσωπο αυτο� του ατόμου - κλικ για άνοιγμα οθόνης διαχεί�ισης", close = "Ακ��ωση αιτο�ντα", tiredness = "Επίπεδο κο��ασης", salary = "Μηνιαίος μισθός", happiness = "Επίπεδο ευτυχίας", researcher = "Ε�ευνητής", doctor_seniority = "Βαθμός - Μαθητευόμενος, Γιατ�ός ή Σ�μβουλος", skills = "Ειδικές Δεξιότητες", surgeon = "Χει�ου�γός", center_view = "Α�ιστε�ό κλικ για εστίαση στο π�οσωπικό, δεξί κλικ για εναλλαγή μεταξ� ανθ�ώπινου δυναμικο�", name = "Όνομα π�οσωπικο�", pick_up = "Α�παγή", sack = "Απόλυση", psychiatrist = "Ψυχίατ�ος", ability = "Επίπεδο ικανοτήτων", }, load_game_window = { load_game_number = "Φό�τωση παιχνιδιο� %d", load_game = "Φό�τωση παιχνιδιο� %s", load_autosave = "Φό�τωση autosave", }, machine_window = { close = "Ακ��ωση αιτο�ντα", status = "Κατάσταση του εξοπλισμο�", name = "Όνομα", times_used = "Α�ιθμός φο�ών που έχει χ�ησιμοποιηθεί ο εξοπλισμός", repair = "Καλέστε Πολυτεχνίτη για επιδιό�θωση εξοπλισμο�", replace = "Αντικατάσταση εξοπλισμο�", }, lua_console = { close = "Κλείσιμο κονσόλας", textbox = "Εισάγετε κώδικα Lua για να τ�έξετε εδώ", execute_code = "Τ�έξτε τον κώδικα που έχετε εισάγει", }, menu_list_window = { back = "Κλείσιμο αυτο� του πα�αθ��ου", save_date = "Κάντε κλικ εδώ για να ταξινομήσετε την λίστα κατά τελευταία ημε�ομηνία τ�οποποίησης", name = "Κάντε κλικ εδώ για να ταξινομήσετε την λίστα κατά όνομα", }, save_map_window = { map = "Αντικατάσταση χά�τη %s", new_map = "Εισάγετε όνομα αποθηκευμένου παιχνιδιο� για τον χά�τη", }, research_policy = { research_progress = "Π�όοδος για την επόμενη ανακάλυψη σε αυτήν την κατηγο�ία: %1%/%2%", no_research = "Δεν διεξάγεται κάποια έ�ευνα για την συγκεκ�ιμένη κατηγο�ία αυτήν την στιγμή", }, build_room_window = { cost = "Κόστος του τ�έχοντος επιλεγμένου δωματίου", room_classes = { treatment = "Επιλέξτε δωμάτια Γενικής Θε�απείας", facilities = "Επιλέξτε δωμάτια Ειδικών Εγκαταστάσεων", diagnosis = "Επιλέξτε δωμάτια Διάγνωσης", clinic = "Επιλέξτε δωμάτια Ειδικευμένων Κλινικών", }, close = "Ακ��ωση αυτο� του αιτο�ντα και επιστ�οφή στο παιχνίδι", }, policy = { close = "Κλείσιμο οθόνης Πολιτικής", staff_stay = "Κάντε κλικ εδώ για να κάνετε ο�ισμένα άτομα του π�οσωπικο� σας να πα�αμένουν στο δωμάτιο που τους τοποθετήσατε", diag_procedure = "Αν η διάγνωση ενός Γιατ�ο� είναι λιγότε�ο ακ�ιβής από το ποσοστό ΑΠΟΣΤΟΛΗΣ ΣΤΟ ΣΠΙΤΙ τότε ο ασθενής θα σταλθεί στο σπίτι του. Αν η διάγνωση είναι καλ�τε�η από το ποσοστό ΕΙΚΑΣΙΑΣ ΘΕΡΑΠΕΙΑΣ τότε ο ασθενής θα σταλθεί για την κατάλληλη θε�απεία", staff_rest = "Πόσο κου�ασμένο π�έπει να είναι το π�οσωπικό σας π�ιν πάνε για ξεκο��αση", diag_termination = "Η διάγνωση ενός ασθενο�ς θα συνεχιστεί έως ότου οι Γιατ�οί είναι τόσο σίγου�οι όσο το ποσοστό ΔΙΑΚΟΠΗΣ ΔΙΑΔΙΚΑΣΙΑΣ ή μέχ�ι να εξαντληθεί όλος ο διαγνωστικός εξοπλισμός σας", staff_leave = "Κάντε κλικ εδώ για να καλέσετε π�οσωπικό το οποίο δεν είναι απασχολημένο π�ος βοήθεια συναδέλφων που την χ�ειάζονται", }, buy_objects_window = { decrease = "Αγο�άστε ένα λιγότε�ο από αυτό το αντικείμενο", total_value = "Συνολική αξία αντικειμένων που έχετε πα�αγγείλει", confirm = "Αγο�ά αντικειμένων", price = "Τιμή αντικειμένου", cancel = "Ακ��ωση", increase = "Αγο�άστε ένα πε�ισσότε�ο από αυτό το αντικείμενο", }, main_menu = { load_menu = { load_slot = "ΦΟΡΤΩΣΗ ΠΑΙΧ�ΙΔΙΟΥ", empty_slot = "ΚΕ�Ο", }, map_edit = "Δημιου�γία π�οσα�μοσμένου χά�τη", custom_campaign = "Παίχτε μια καμπάνια δημιου�γημένη από την κοινότητα", new_game = "Εκκίνηση του π�ώτου επιπέδου στην καμπάνια", network = "Εκκίνηση παιχνιδιο� δικτ�ου", exit = "Όχι, όχι, σας πα�ακαλώ μην φε�γετε!", quit = "Π�όκειται να κάνετε έξοδο από το CorsixTH. Είστε σίγου�οι πως αυτό θέλετε να κάνετε;", options = "Τ�οποποιήστε διάφο�ες �υθμίσεις", custom_level = "Χτίστε το νοσοκομείο σας σε ένα μοναδικό σενά�ιο", load_game = "Φό�τωση αποθηκευμένου παιχνιδιο�", continue = "Συνέχεια του πιο π�όσφατου αποθηκευμένου παιχνιδιο�", }, patient_window = { close = "Ακ��ωση αιτο�ντα", queue = "Π�οβολή λεπτομε�ειών για την θέση αυτο� του ατόμου στην ου�ά", center_view = "Εστίαση οθόνης σε αυτό το άτομο", thirst = "Πόσο διψασμένο είναι αυτό το άτομο", happiness = "Ευτυχία ατόμου", casebook = "Π�οβολή λεπτομε�ειών ασθένειας", graph = "Κλικ για εναλλαγή μεταξ� του γ�αφήματος της υγείας του ατόμου και το ιστο�ικό θε�απείας", send_home = "Απομάκ�υνση του ατόμου από το νοσοκομείο", abort_diagnosis = "Αποστολή ατόμου για θε�απεία τώ�α αντί να πε�ιμένετε την ολοκλή�ωση της διάγνωσης", warmth = "Επίπεδο ζεστασιάς ατόμου", }, statement = { close = "Κλείσιμο οθόνης Δήλωσης", }, } original_credits = { [1] = " ", [2] = " ", [3] = " ", [4] = " ", [5] = " ", [6] = " ", [7] = " ", [8] = " ", [9] = " ", [10] = " ", [11] = " ", [12] = ":Σχεδιάστηκε και Δημιου�γήθηκε από", [13] = ":Bullfrog Productions", [14] = " ", [15] = ":Ομάδα Ανάπτυξης Pluto", [16] = ",", [17] = "Mark Webley", [18] = "Gary Carr", [19] = "Matt Chilton", [20] = "Matt Sullivan", [21] = "Jo Rider", [22] = "Rajan Tande", [23] = "Wayne Imlach", [24] = "Andy Bass", [25] = "Jon Rennie", [26] = "Adam Coglan", [27] = "Natalie White", [28] = " ", [29] = " ", [30] = " ", [31] = ":Π�ογ�αμματισμός", [32] = ",", [33] = "Mark Webley", [34] = "Matt Chilton", [35] = "Matt Sullivan", [36] = "Rajan Tande", [37] = " ", [38] = " ", [39] = " ", [40] = ":Art", [41] = ",", [42] = "Gary Carr", [43] = "Jo Rider", [44] = "Andy Bass", [45] = "Adam Coglan", [46] = " ", [47] = " ", [48] = " ", [49] = ":Επιπλέον Π�ογ�αμματισμός", [50] = ",", [51] = "Ben Deane", [52] = "Gary Morgan", [53] = "Jonty Barnes", [54] = " ", [55] = " ", [56] = " ", [57] = ":Επιπλέον Art", [58] = ",", [59] = "Eoin Rogan", [60] = "George Svarovsky", [61] = "Saurev Sarkar", [62] = "Jason Brown", [63] = "John Kershaw", [64] = "Dee Lee", [65] = " ", [66] = " ", [67] = " ", [68] = ":Ακολουθία Intro", [69] = ",", [70] = "Stuart Black", [71] = " ", [72] = " ", [73] = " ", [74] = ":Μουσική και Ηχητικά Εφέ", [75] = ",", [76] = "Russell Shaw", [77] = "Adrian Moore", [78] = " ", [79] = " ", [80] = " ", [81] = ":Επιπλέον Μουσική", [82] = ",", [83] = "Jeremy Longley", [84] = "Andy Wood", [85] = " ", [86] = " ", [87] = " ", [88] = ":Φωνή Σχολιαστή", [89] = ",", [90] = "Rebecca Green", [91] = " ", [92] = " ", [93] = " ", [94] = ":Σχεδιασμός Επιπέδων", [95] = ",", [96] = "Wayne Imlach", [97] = "Natalie White", [98] = "Steven Jarrett", [99] = "Shin Kanaoya", [100] = " ", [101] = " ", [102] = " ", [103] = ":Scripting", [104] = ",", [105] = "James Leach", [106] = "Sean Masterson", [107] = "Neil Cook", [108] = " ", [109] = " ", [110] = " ", [111] = ":R&D", [112] = " ", [113] = ":Μηχανή Γ�αφικών", [114] = ",", [115] = "Andy Cakebread", [116] = "Richard Reed", [117] = " ", [118] = " ", [119] = " ", [120] = ":Υποστή�ιξη R&D", [121] = ",", [122] = "Glenn Corpes", [123] = "Martin Bell", [124] = "Ian Shaw", [125] = "Jan Svarovsky", [126] = " ", [127] = " ", [128] = " ", [129] = ":Βιβλιοθήκη και Ε�γαλεία", [130] = " ", [131] = "Βιβλιοθήκη Dos και Win 95", [132] = ",", [133] = "Mark Huntley", [134] = "Alex Peters", [135] = "Rik Heywood", [136] = " ", [137] = " ", [138] = " ", [139] = ":Βιβλιοθήκη Δικτ�ου", [140] = ",", [141] = "Ian Shippen", [142] = "Mark Lamport", [143] = " ", [144] = " ", [145] = " ", [146] = ":Βιβλιοθήκη Ήχου", [147] = ",", [148] = "Russell Shaw", [149] = "Tony Cox", [150] = " ", [151] = " ", [152] = " ", [153] = ":Π�ογ�αμματισμός Installer", [154] = ",", [155] = "Andy Nuttall", [156] = "Tony Cox", [157] = "Andy Cakebread", [158] = " ", [159] = " ", [160] = " ", [161] = ":Ηθική Υποστή�ιξη", [162] = ",", [163] = "Peter Molyneux", [164] = " ", [165] = " ", [166] = " ", [167] = ":Testing Manager", [168] = ",", [169] = "Andy Robson", [170] = " ", [171] = " ", [172] = " ", [173] = ":Lead Testers", [174] = ",", [175] = "Wayne Imlach", [176] = "Jon Rennie", [177] = " ", [178] = " ", [179] = " ", [180] = ":Play Testers", [181] = ",", [182] = "Jeff Brutus", [183] = "Wayne Frost", [184] = "Steven Lawrie", [185] = "Tristan Paramor", [186] = "Nathan Smethurst", [187] = " ", [188] = "Ryan Corkery", [189] = "Simon Doherty", [190] = "James Dormer", [191] = "Martin Gregory", [192] = "Ben Lawley", [193] = "Joel Lewis", [194] = "David Lowe", [195] = "Robert Monczak", [196] = "Dominic Mortoza", [197] = "Karl O'Keeffe", [198] = "Michael Singletary", [199] = "Andrew Skipper", [200] = "Stuart Stephen", [201] = "David Wallington", [202] = " ", [203] = "And all our other Work Experience Play Testers", [204] = " ", [205] = " ", [206] = " ", [207] = ":Τεχνική Υποστή�ιξη", [208] = ",", [209] = "Kevin Donkin", [210] = "Mike Burnham", [211] = "Simon Handby", [212] = " ", [213] = " ", [214] = " ", [215] = ":Marketing", [216] = ",", [217] = "Pete Murphy", [218] = "Sean Ratcliffe", [219] = " ", [220] = " ", [221] = " ", [222] = ":Με ευχα�ιστίες σε:", [223] = ",", [224] = "Tamara Burke", [225] = "Annabel Roose", [226] = "Chris Morgan", [227] = "Pete Larsen", [228] = " ", [229] = " ", [230] = " ", [231] = ":PR", [232] = ",", [233] = "Cathy Campos", [234] = " ", [235] = " ", [236] = " ", [237] = ":Documentation", [238] = ",", [239] = "Mark Casey", [240] = "Richard Johnston", [241] = "James Lenoel", [242] = "Jon Rennie", [243] = " ", [244] = " ", [245] = " ", [246] = ":Documentation & Σχεδιασμός Συσκευασίας", [247] = ",", [248] = "Caroline Arthur", [249] = "James Nolan", [250] = " ", [251] = " ", [252] = " ", [253] = ":Project Manager Μετάφ�ασης", [254] = ",", [255] = "Carol Aggett", [256] = " ", [257] = " ", [258] = " ", [259] = ":Μετάφ�αση", [260] = ",", [261] = "Sandra Picaper", [262] = "Sonia 'Sam' Yazmadjian", [263] = " ", [264] = "Bettina Klos", [265] = "Alexa Kortsch", [266] = "Bianca Normann", [267] = " ", [268] = "C.T.O. S.p.A. Zola Predosa (BO)", [269] = "Gian Maria Battistini", [270] = "Maria Ziino", [271] = "Gabriele Vegetti", [272] = " ", [273] = "Elena Ruiz de Velasco", [274] = "Julio Valladares", [275] = "Ricardo Martínez", [276] = " ", [277] = "Kia Collin", [278] = "CBG Consult", [279] = "Ulf Thor", [280] = " ", [281] = " ", [282] = " ", [283] = ":Πα�αγωγή", [284] = ",", [285] = "Rachel Holman", [286] = " ", [287] = " ", [288] = " ", [289] = ":Πα�αγωγός", [290] = ",", [291] = "Mark Webley", [292] = " ", [293] = " ", [294] = " ", [295] = ":Συμπα�αγωγός", [296] = ",", [297] = "Andy Nuttall", [298] = " ", [299] = " ", [300] = " ", [301] = ":Operations", [302] = ",", [303] = "Steve Fitton", [304] = " ", [305] = " ", [306] = " ", [307] = ":Διαχεί�ιση Εται�ίας", [308] = ",", [309] = "Audrey Adams", [310] = "Annette Dabb", [311] = "Emma Gibbs", [312] = "Lucia Gobbo", [313] = "Jo Goodwin", [314] = "Sian Jones", [315] = "Kathy McEntee", [316] = "Louise Ratcliffe", [317] = " ", [318] = " ", [319] = " ", [320] = ":Εται�ικό Μάνατζμεντ", [321] = ",", [322] = "Les Edgar", [323] = "Peter Molyneux", [324] = "David Byrne", [325] = " ", [326] = " ", [327] = ":Όλοι στην Bullfrog Productions", [328] = " ", [329] = " ", [330] = " ", [331] = ":Ειδικές Ευχα�ιστίες σε", [332] = ",", [333] = "Όλους στο Frimley Park Hospital", [334] = " ", [335] = ":Ειδικά", [336] = ",", [337] = "Beverley Cannell", [338] = "Doug Carlisle", [339] = " ", [340] = " ", [341] = " ", [342] = ":Keep On Thinking", [343] = " ", [344] = " ", [345] = " ", [346] = " ", [347] = " ", [348] = " ", [349] = " ", [350] = " ", [351] = " ", [352] = " ", [353] = " ", [354] = " ", [355] = " ", [356] = " ", [357] = " ", [358] = " ", [359] = " ", [360] = " ", [361] = ".", } dynamic_info = { staff = { actions = { heading_for = "Κατευθ�νεται για %s", wandering = "Απλά πε�ιπλανιέται", going_to_repair = "Πηγαίνει να επιδιο�θώσει %s", waiting_for_patient = "Πε�ιμένει ασθενή", fired = "Απολ�θηκε", }, psychiatrist_abbrev = "Ψυχ.", tiredness = "Κο��αση", ability = "Ικανότητα", }, object = { times_used = "Χ�ησιμοποιήθηκε %d Φο�ές", strength = "Δ�ναμη %d", queue_expected = "Αναμενόμενη Ου�ά %d", queue_size = "Μέγεθος Ου�άς %d", }, health_inspector = "Επιθεω�ητής Υγείας", patient = { diagnosis_progress = "Π�όοδος διάγνωσης", emergency = "Επείγον πε�ιστατικό: %s", actions = { fed_up = "Κου�άστηκε και φε�γει", cured = "Θε�απε�τηκε!", queueing_for = "Στην ου�ά για %s", epidemic_sent_home = "Στάλθηκε σπίτι από τον Επιθεω�ητή", waiting_for_diagnosis_rooms = "Πε�ιμένει να χτίσετε πε�ισσότε�ες διαγνωστικές εγκαταστάσεις", no_treatment_available = "Δεν υπά�χει διαθέσιμη θε�απεία - πάω σπίτι", waiting_for_treatment_rooms = "Πε�ιμένω να χτίσετε ένα δωμάτιο θε�απείας για εμένα", no_diagnoses_available = "Δεν υπά�χουν διάθεσιμες πε�ισσότε�ες διαγνώσεις - πάω σπίτι", awaiting_decision = "Πε�ιμένω την απόφασή σας", on_my_way_to = "Στο δ�όμο για %s", epidemic_vaccinated = "Δεν είμαι πλέον μεταδοτικός", dying = "Πεθαίνει!", sent_home = "Στάλθηκε Σπίτι", no_gp_available = "Πε�ιμένει να χτίσετε ένα Γ�αφείο Γενικο� Ιατ�ο�", sent_to_other_hospital = "Πα�απέμφθηκε αλλο�", epidemic_contagious = "Είμαι μεταδοτικός", prices_too_high = "Οι τιμές σας πα�αείναι υψηλές - πάω σπίτι", }, diagnosed = "Διαγνώσθηκε: %s ", guessed_diagnosis = "Διάγνωση που εικάζεται: %s ", }, vip = "Επισκέπτης VIP", } object = { desk = "Γ�αφείο", toilet_sink = "�ιπτή�ας", fire_extinguisher = "Πυ�οσβεστή�ας", skeleton = "Σκελετός", scanner = "Σα�ωτής", x_ray = "Ακτινογ�αφία", litter_bomb = "Βόμβα Σκουπιδιών", rathole = "Ποντικότ�υπα", video_game = "Βιντεοπαιχνίδι", electrolyser = "Μηχάνημα Ηλεκτ�όλυσης", litter = "Σκουπίδι", swing_door2 = "Πε�ιστ�εφόμενη πό�τα", bookcase = "Βιβλιοθήκη", couch = "Καναπές", lamp = "Λάμπα", x_ray_viewer = "Π�οβολέας ακτινογ�αφίας", bed3 = "Κ�εβάτι", chair = "Κα�έκλα", bench = "Πάγκος", operating_table = "Χει�ου�γικό τ�απέζι", crash_trolley = "Κινο�μενη συ�τα�ιέ�α", entrance_right = "Δεξιά πό�τα εισόδου", inflator = "Φουσκωτής", op_sink1 = "�ιπτή�ας", radiator = "Καλο�ιφέ�", drinks_machine = "Αναψυκτή�ιο", cast_remover = "Μηχάνημα αφαί�εσης γ�ψου", ultrascanner = "Ultrascanner", hair_restorer = "Μηχάνημα αποκατάστασης μαλλιών", dna_fixer = "Επιδιο�θωτής DNA", plant = "Φυτός", slicer = "Τεμαχιστής", auto_autopsy = "Αυτο-αυτοψία", computer = "Υπολογιστής", projector = "Π�οβολέας", radiation_shield = "Π�οστασία �αδιενέ�γειας", op_sink2 = "�ιπτή�ας", table2 = "Τ�απέζι", jelly_moulder = "Διαμο�φωτής Ζελέ", cardio = "Κα�διόγ�αμμα", blood_machine = "Μηχάνημα Αίματος", door = "Πό�τα", pool_table = "Τ�απέζι μπιλιά�δου", cabinet = "Α�χειοθήκη", shower = "�τους", surgeon_screen = "Οθόνη χει�ου�γείου", gates_of_hell = "Π�λες της Κολάσεως", table1 = "Τ�απέζι", bed2 = "Κ�εβάτι", sofa = "Καναπές", comfortable_chair = "Αναπαυτική κα�έκλα", console = "Κονσόλα", atom_analyser = "Ατομικός Αναλυτής", tv = "TV", bed = "Κ�εβάτι", pharmacy_cabinet = "�τουλάπι φα�μακείου", toilet = "Τουαλέτα", lecture_chair = "Κα�έκλα διάλεξης", screen = "Οθόνη", bin = "Κάδος", swing_door1 = "Ταλαντευόμενη πό�τα", entrance_left = "Α�ιστε�ή πό�τα εισόδου", reception_desk = "Γ�αφείο �εσεψιόν", } staff_title = { researcher = "Ε�ευνητής", general = "Γενικός", surgeon = "Χει�ου�γός", junior = "Α�χά�ιος", consultant = "Σ�μβουλος", receptionist = "Ρεσεψιονίστ", doctor = "Γιατ�ός", nurse = "�οσοκόμα", psychiatrist = "Ψυχίατ�ος", } rooms_short = { research_room = "Τμήμα Ε�ευνών", hair_restoration = "Επανό�θωση Μαλλιών", blood_machine = "Μηχάνημα Αίματος", scanner = "Σα�ωτής", inflation = "Κλινική Ξεφουσκώματος", x_ray = "Ακτινογ�αφία", reception = "Ρεσεψιόν", staffroom = "Δωμάτιο Π�οσωπικο�", destroyed = "Κατεστ�αμμένο", psychiatric = "Ψυχιατ�είο", pharmacy = "Φα�μακείο", toilets = "Τουαλέτες", cardiogram = "Κα�διογ�άφημα", ward = "Πτέ�υγα", operating_theatre = "Χει�ου�γείο", general_diag = "Γενική Διάγ", ultrascan = "Ultrascan", tongue_clinic = "Κλινική Χαλα�ωμένης Γλώσσας", corridor_objects = "Αντικείμενα Διαδ�όμου", training_room = "Εκπαίδευση", dna_fixer = "Επιδιο�θωτής DNA", gps_office = "Γ�αφείο Γενικο� Ιατ�ο�", jelly_vat = "Jelly Vat", decontamination = "Απολ�μανση", fracture_clinic = "Κλινική Καταγμάτων", electrolysis = "Κλινική Ηλεκτ�όλυσης", } room_descriptions = { hair_restoration = { [1] = "Κλινική Επανό�θωσης Μαλλιών//", [2] = "Οι Ασθενείς που υποφέ�ουν από την ακ�αία πάθηση της Φαλάκ�ας θα πα�απεμφθο�ν στο Μηχάνημα Επανό�θωσης Μαλλιών σε αυτήν την Κλινική. Το μηχάνημα, το οποίο χει�ίζεται ένας Γιατ�ός, �αγδαία θα φυτέψει φ�έσκα μαλλιά στο κεφάλι του ασθενο�ς.//", [3] = "Η Κλινική Επανό�θωσης Μαλλιών απαιτεί έναν οποιονδήποτε Γιατ�ό. Επίσης χ�ήζει πε�ιστασιακής συντή�ησης. ", }, blood_machine = { [1] = "Μηχάνημα Αίματος//", [2] = "Το Μηχάνημα Αίματος είναι ένα κομμάτι διαγνωστικο� εξοπλισμο� το οποίο ελέγχει τα κ�ττα�α στο αίμα ενός ασθενή για να ανακαλ�ψει τι π�όβλημα υγείας αντιμετωπίζει.//", [3] = "Το Μηχάνημα Αίματος απαιτεί έναν οποιονδήποτε Γιατ�ό. Χ�ήζει επίσης συντή�ησης. ", }, scanner = { [1] = "Σα�ωτής//", [2] = "Οι ασθενείς λαμβάνουν μία ακ�ιβή διάγνωση χ�ησιμοποιώντας αυτόν τον σ�νθετο Σα�ωτή. Ύστε�α πηγαίνουν να δουν έναν Γιατ�ό στο Γ�αφείο του Γενικο� Ιατ�ο� για πε�αιτέ�ω θε�απεία.//", [3] = "Ο Σα�ωτής απαιτεί έναν οποιονδήποτε Γιατ�ό. Χ�ήζει επίσης συντή�ησης. ", }, inflation = { [1] = "Κλινική Φουσκώματος//", [2] = "Οι ασθενείς με την οδυνη�ή αλλά πα�άλληλα αστεία πάθηση του Φουσκωτο� Κεφαλιο� π�έπει να έ�θουν στην Κλινική Φουσκώματος, όπου θα του σκάσουν το υπε�μέγεθος κ�ανίο και άμεσα θα το ξαναφουσκώσουν στην κατάλληλη πίεση.//", [3] = "Η Κλινική Φουσκώματος απαιτεί έναν οποιονδήποτε Γιατ�ό. Επίσης χ�ήζει συχνής συντή�ησης από έναν Πολυτεχνίτη. ", }, x_ray = { [1] = "Ακτινογ�αφία//", [2] = "Το μηχάνημα Ακτινογ�αφίας φωτογ�αφίζει το εσωτε�ικό των ανθ�ώπων χ�ησιμοποιώντας ειδική ακτινοβολία για να δώσουν στο ιατ�ικό π�οσωπικό σας μια καλή ιδέα του τι πάει στ�αβά.//", [3] = "Το δωμάτιο Ακτινογ�αφίας απαιτεί έναν οποιονδήποτε Γιατ�ό. Χ�ήζει επίσης συντή�ησης. ", }, operating_theatre = { [1] = "Χει�ου�γείο//", [2] = "Αυτή η σημαντική εγκατάσταση είναι το μέ�ος που γιατ�ε�εται μια πληθώ�α παθήσεων. Το Χει�ου�γείο π�έπει να έχει μεγάλο μέγεθος, και π�έπει να εξοπλιστεί με τον κατάλληλο εξοπλισμό. Είναι ζωτικό κομμάτι του νοσοκομείου σας.//", [3] = "Το Χει�ου�γείο απαιτεί δ�ο Γιατ�ο�ς με πιστοποίηση Χει�ου�γο�. ", }, jelly_vat = { [1] = "Κλινική Ζελέ//", [2] = "Οι ασθενείς που έχουν κατα�αστεί με την γελοία ασθένεια Ζελετίτιδα π�έπει να ταλαντευτο�ν π�ος την Κλινική Ζελέ, και να τοποθετηθο�ν στην Δεξαμενή Ζελέ. Η συγκεκ�ιμένη δεξαμενή τους θε�απε�ει με έναν τ�όπο ο οποίος ακόμα δεν είναι πλή�ως κατανοητός από το ιατ�ικό επάγγελμα.//", [3] = "Η Κλινική Ζελέ απαιτεί έναν οποιονδήποτε Γιατ�ό. Χ�ειάζεται επίσης έναν Πολυτεχνίτη για συντή�ηση. ", }, staff_room = { [1] = "Δωμάτιο Π�οσωπικο�//", [2] = "Το π�οσωπικό σας κου�άζεται καθώς κάνουν την δουλειά τους. Χ�ειάζονται αυτό το δωμάτιο για να χαλα�ωσο�ν και να ανανεωθο�ν. Το κου�ασμένο π�οσωπικό γίνεται α�γό, ζητά μεγαλ�τε�ες απολαβές και στο τέλος θα πα�αιτηθεί. Κάνουν επίσης πε�ισσότε�α λάθη. Αξίζει πολ� να χτίσετε ένα δωμάτιο π�οσωπικο� που έχει πολλές δ�αστη�ιότητες για αυτο�ς. Σιγο�ευτείτε ότι υπά�χει χώ�ος για α�κετά μέλη του π�οσωπικο� ανά φο�ά. ", }, pharmacy = { [1] = "Φα�μακείο//", [2] = "Οι ασθενείς που έχουν διαγνωστεί και χ�ήζουν φα�μακευτικής θε�απείας π�έπει να επισκεφτο�ν το Φα�μακείο για να λάβουν τα φά�μακά τους. Καθώς πε�ισσότε�ες φα�μακευτικές θε�απείες ανακαλ�πτονται και γίνονται διαθέσιμες, αυτό το δωμάτιο γίνεται όλο και πιο απασχολημένο. Μπο�εί να θέλετε να φτιάξετε κι άλλο Φα�μακείο α�γότε�α.//", [3] = "Το Φα�μακείο απαιτεί μια �οσοκόμα. ", }, no_room = { [1] = "", }, cardiogram = { [1] = "Κα�διογ�άφημα//", [2] = "Οι ασθενείς ελέγχονται εδώ και λαμβάνουν την διάγνωσή τους, π�οτο� επιστ�έψουν σε ένα Γ�αφείο Γενικο� Ιατ�ο� για να τους ανατεθεί μια θε�απεία.//", [3] = "Το δωμάτιο Κα�διογ�αφήματος απαιτεί έναν οποιονδήποτε Γιατ�ό. Χ�ήζει, επιπλέον, συντή�ησης. ", }, gp = { [1] = "Γ�αφείο Γενικο� Ιατ�ο�//", [2] = "Αυτό είναι το θεμελιώδες δωμάτιο διάγνωσης στο νοσοκομείο σας. �έοι ασθενείς στέλνονται εδώ για να ανακαλ�ψουν τι δεν πάει καλά μαζί τους. Ύστε�α πα�απέμπονται για πε�αιτέ�ω διαγνώσεις είτε σε ένα δωμάτιο στο οποίο μπο�ο�ν να λάβουν την θε�απεία τους. Μπο�εί να θέλετε να χτίσετε κι άλλο Γ�αφείο Γενικο� Ιατ�ο� αν το π�ώτο γίνει πολ� απασχολημένο. Όσο μεγαλ�τε�ο είναι το δωμάτιο, και όσα πε�ισσότε�α αντικείμενα τοποθετήσετε μέσα του, τόσο μεγαλ�τε�ο το κ��ος για τον Γιατ�ό. Αυτό ισχ�ει επίσης και για τα υπόλοιπα δωμάτια.//", [3] = "Το Γ�αφείο Γενικο� Ιατ�ο� απαιτεί έναν οποιονδήποτε Γιατ�ό. ", }, psych = { [1] = "Ψυχιατ�είο//", [2] = "Οι ασθενείς που διαγνώσκονται με ψυχιατ�ικές ασθένειες π�έπει να επισκεφτο�ν το Ψυχιατ�ικό Τμήμα για να λάβουν ψυχοθε�απεία. Οι Ψυχίατ�οι μπο�ο�ν επίσης να π�αγματοποιήσουν διαγνώσεις, ανακαλ�πτοντας τον τ�πο των ασθενειών που αντιμετωπίζουν, αν είναι ψυχικής φ�σεως, και να τις θε�απε�σουν χ�ησιμοποιώντας αυτόν τον αξιόπιστο καναπέ.//", [3] = "Το Ψυχιατ�ικό Τμήμα απαιτεί έναν Γιατ�ό ειδικευμένο στην επιστήμη της Ψυχιατ�ικής. ", }, ward = { [1] = "Πτέ�υγα//", [2] = "Οι Ασθενείς κ�ατο�νται εδώ για πα�ακολο�θηση από μια �οσοκόμα κατά την διά�κεια μιας διάγνωσης. Πα�αμένουν εδώ επίσης π�ιν να εγχει�ηθο�ν.//", [3] = "Η Πτέ�υγα απαιτεί μια �οσοκόμα. ", }, general_diag = { [1] = "Γενική Διάγνωση//", [2] = "Οι ασθενείς που απαιτο�ν πε�αιτέ�ω διάγνωση στέλνονται εδώ για να εξεταστο�ν. Αν το Γ�αφείο Γενικο� Ιατ�ο� δεν εξακ�ιβώσει τι δεν πάει καλά, η Γενική Διάγνωση συχνά θα τα καταφέ�ει. Από εδώ θα σταλθο�ν πίσω στο Γ�αφείο του Γενικο� Ιατ�ο� για ανάλυση των αποτελεσμάτων που πα�ήχθησαν εδώ.//", [3] = "Το δωμάτιο Γενικής Διάγνωσης απαιτεί έναν οποιονδήποτε Γιατ�ό. ", }, ultrascan = { [1] = "Ultrascan//", [2] = "Το Ultrascan είναι το απόλυτο ε�γαλείο στον διαγνωστικό εξοπλισμό. Κοστίζει α�κετά αλλά αξίζει τα χ�ήματα αν θέλετε οι διαγνώσεις που π�αγματοποιείτε στο νοσοκομείο σας να είναι ά�ιστες.//", [3] = "Το Ultrascanner απαιτεί έναν οποιονδήποτε Γιατ�ό. Χ�ήζει επίσης συντή�ησης. ", }, toilets = { [1] = "Τουαλέτα//", [2] = "Οι ασθενείς που νιώθουν το κάλεσμα της φ�σης θα χ�ειαστεί να ξαλαφ�ώσουν υπό την άνεση των εγκαταστάσεων υγεινής σας. Μπο�είτε να χτίσετε επιπλέον τουαλέτες και νιπτή�ες αν αναμένετε πολλο�ς επισκέπτες. Σε ο�ισμένες πε�ιπτώσεις, ίσως θα ήταν καλή ιδέα να χτίσετε τουαλέτες σε διαφο�ετικά σημεία του νοσοκομείου σας. ", }, tv_room = { [1] = "ΤΟ ΔΩΜΑΤΙΟ ΤΗΛΕΟΡΑΣΗΣ ΔΕ� ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ", }, fracture_clinic = { [1] = "Κλινική Καταγμάτων//", [2] = "Οι ασθενείς εκείνοι που έχουν την ατυχία να έχουν Σπασμένα Κόκκαλα έ�χονται εδώ. Το Μηχάνημα Αφαί�εσης Γ�ψου θα χ�ησιμοποιήσει ισχυ�ά βιομηχανικά laser για να κόψε οποιονδήποτε γ�ψο, π�οκαλώντας μόνο ελάχιστη οδ�νη στον ασθενή.//", [3] = "Η Κλινική Καταγμάτων απαιτεί μια �οσοκόμα. Χ�ήζει επιπλέον τακτικής συντή�ησης. ", }, dna_fixer = { [1] = "Κλινική DNA//", [2] = "Ασθενείς που έχουν πει�αχτεί γενετικά από εξωγήινους από έναν άλλο κόσμο π�έπει να υποβληθο�ν σε αντικατάσταση DNA σε αυτό εδώ το δωμάτιο. Το Μηχάνημα Επιδιό�θωσης DNA είναι ένα πολ� πε�ίπλοκο κομμάτι εξοπλισμο� και θα ήταν φ�όνιμο να έχετε έναν πυ�οσβεστή�α στο δωμάτιο, για παν ενδεχόμενο.//", [3] = "Το Μηχάνημα Επιδιό�θωσης DNA απαιτεί πε�ιστασιακή συντή�ηση από έναν Πολυτεχνίτη. Απαιτεί επίσης έναν Γιατ�ό ειδικευμένο στην Έ�ευνα για να το χει�ιστεί. ", }, slack_tongue = { [1] = "Κλινική Χαλα�ωμένης Γλώσσας//", [2] = "Οι ασθενείς που διαγνώσκονται με Χαλα�ωμένη Γλώσσα στο Γ�αφείο Γενικο� Ιατ�ο� στέλνονται σε αυτήν την κλινική για θε�απεία. Ο Γιατ�ός θα χ�ησιμοποιήσει ένα κομμάτι εξοπλισμο� υψίστης τεχνολογίας για να επεκτείνει την γλώσσα και να την τεμαχίσει, επιστ�έφοντας έτσι τον ασθενή σε συνθήκες άκ�ας υγείας.//", [3] = "Η Κλινική Χαλα�ωμένης Γλώσσας απαιτεί έναν οποιονδήποτε Γιατ�ό. Χ�ήζει επίσης τακτικής συντή�ησης. ", }, research = { [1] = "Δωμάτιο Ε�ευνών//", [2] = "�έα φά�μακα και θε�απείες ανακαλ�πτονται ή βελτιώνονται στο Δωμάτιο Ε�ευνών. Είναι ζωτικό κομμάτι του νοσοκομείου σας, και θα κάνει θα�ματα για τα ποσοστά επιτυχίας των θε�απειών σας.//", [3] = "Το Δωμάτιο Ε�ευνών απαιτεί έναν Γιατ�ό ειδικευμένο στην Έ�ευνα. ", }, decontamination = { [1] = "Κλινική Απολ�μανσης//", [2] = "Οι ασθενείς που έχουν εκτεθεί σε Ακτινοβολία πα�απέμπονται γ�ήγο�α στην Κλινική Απολ�μανσης. Αυτό το δωμάτιο πε�ιέχει ένα ντουζ το οποίο καθα�ίζει τον ασθενή από όλη την φ�ικιαστική �αδιενέ�γεια και μάκα.//", [3] = "Το �τουζ Απολ�μανσης απαιτεί έναν οποιονδήποτε Γιατ�ό. Χ�ήζει επίσης συντή�ησης από έναν Πολυτεχνίτη. ", }, training = { [1] = "Δωμάτιο Εκπαίδευσης//", [2] = "Οι Μαθητευόμενοι και οι Γιατ�οί σας μπο�ο�ν να κε�δίσουν πολ�τιμες επιπλέον εξειδικε�σεις μελετώντας σε αυτό το δωμάτιο. Έναν Σ�μβουλος με Χει�ου�γικές, Ε�ευνητικές ή Ψυχιατ�ικές δεξιότητες θα τις μεταλαμπαδε�σει σε όποιους Γιατ�ο�ς εκπαιδε�ονται. Οι Γιατ�οί που ήδη κατέχουν αυτές τις δεξιότητες θα ανακαλ�ψουν ότι η ικανότητά τους να τις χ�ησιμοποιο�ν βελτιώνεται εδώ.//", [3] = "Το Δωμάτιο Εκπαίδευσης απαιτεί έναν Σ�μβουλο. ", }, electrolysis = { [1] = "Δωμάτιο Ηλεκτ�όλυσης//", [2] = "Οι ασθενείς με Μαλλίτιδα πα�απέμπονται σε αυτό το δωμάτιο, όπου το ειδικό Μηχάνημα Ηλεκτ�όλυσης τους ξε�ιζώνει τα μαλλιά και κλείνει τους πό�ους ηλεκτ�ικά χ�ησιμοποιώντας μια ουσία που δεν διαφέ�ει και πολ� από σοβά.//", [3] = "Το Δωμάτιο Ηλεκτ�όλυσης απαιτεί έναν οποιονδήποτε Γιατ�ό. Χ�ήζει επίσης συντή�ησης από έναν Πολυτεχνίτη. ", }, } menu_options = { capture_mouse = " ΔΕΣΜΕΥΣΗ ΚΕΡΣΟΡΑ ", wage_increase = " ΑΙΤΗΣΕΙΣ ΑΥΞΗΣΗΣ ΜΙΣΘΩ� ", game_speed = " ΤΑΧΥΤΗΤΑ ΠΑΙΧ�ΙΔΙΟΥ ", twentyfour_hour_clock = " 24ΩΡΟ ΡΟΛΟΪ ", lock_windows = " ΚΛΕΙΔΩΜΑ ΠΑΡΑΘΥΡΩ� ", sound_vol = " Ε�ΤΑΣΗ ΗΧΟΥ ", edge_scrolling = " ΚΥΛΙΣΗ ΑΚΡΩ� ", sound = " (%1%) ΗΧΟΣ ", warmth_colors = " ΧΡΩΜΑΤΑ ΘΕΡΜΟΤΗΤΑΣ ", announcements_vol = " ΗΧΟΣ Α�ΑΚΟΙ�ΩΣΕΩ� ", music_vol = " Ε�ΤΑΣΗ ΜΟΥΣΙΚΗΣ ", jukebox = " (%1%) JUKEBOX ", announcements = " (%1%) Α�ΑΚΟΙ�ΩΣΕΙΣ ", adviser_disabled = " (%1%) ΒΟΗΘΟΣ ", music = " (%1%) ΜΟΥΣΙΚΗ ", autosave = " AUTOSAVE ", } save_map_window = { new_map = "�έος Χά�της", caption = "Αποθήκευση Χά�τη (%1%)", } diseases = { diag_scanner = { name = "Διαγνωστικός Σα�ωτής", }, autopsy = { name = "Αυτοψία", }, sweaty_palms = { name = "Ιδ�ωμένα Χέ�ια", cause = "Αιτία - φόβος συνεντε�ξεων για δουλειά.", symptoms = "Συμπτώματα - οι χει�αψίες με τον ασθενή είναι σαν να σφίγγεις ένα π�όσφατα β�εγμένο σφουγγά�ι.", cure = "Θε�απεία - Ένας Ψυχίατ�ος βοηθάει τον ασθενή να ξεπε�άσει αυτήν την φανταστική πάθηση.", }, diag_general_diag = { name = "Γενική Διάγνωση", }, third_degree_sideburns = { name = "Φαβο�ίτες 3ου Βαθμο�", cause = "Αιτία - νοσταλγική λαχτά�α για τα 70s (ΣτΜ: λογοπαίγνιο με τα εγκα�ματα 3ου βαθμο�, 3rd Degree Sideburns)", symptoms = "Συμπτώματα - μεγάλο μαλλί, παντελόνια καμπάνες, πλατφό�μες και μέικ-απ από γκλίτε�.", cure = "Θε�απεία - Ο Ψυχίατ�ος π�έπει, κάνοντας χ�ήση σ�γχ�ονων μεθόδων και τεχνικών, να πείσει τον ασθενή ότι αυτά τα μαλλια�ά αξεσουά� είναι για τα σκουπίδια.", }, ruptured_nodules = { name = "Σπασμένοι Όζοι", cause = "Αιτία - bungee jumping με κ��ο και�ό.", symptoms = "Συμπτώματα - ανικανότητα να κάτσουν με άνεση.", cure = "Θε�απεία - Δ�ο ειδικευμένοι Χει�ου�γοί π�έπει να αφαι�έσουν τους όζους με σταθε�ά χέ�ια.", }, diag_x_ray = { name = "Διαγ Ακτινογ�αφίας", }, diag_psych = { name = "Διαγ Ψυχίατ�ου", }, slack_tongue = { name = "Χαλα�ωμένη Γλώσσα", cause = "Αιτία - χ�όνιες υπε�αναλ�σεις και συζητήσεις γ��ω από σαπουνόπε�ες.", symptoms = "Συμπτώματα - η γλώσσα π�ήζεται και γίνεται πέντε φο�ές μεγαλ�τε�η από το κανονικό.", cure = "Θε�απεία - Η γλώσσα τοποθετείται στο Μηχάνημα Τεμαχισμο�, και αφαι�είται γ�ήγο�α, αποτελεσματικά και επίπονα.", }, alien_dna = { name = "Εξωγήινο DNA", cause = "Αιτία - ευφυείς εξωγήινες μο�φές που π�οσκολλάνε σε π�όσωπα.", symptoms = "Συμπτώματα - σταδιακή μεταμό�φωση σε εξωγήινο και επιθυμία για καταστ�οφή πόλεων.", cure = "Θε�απεία - Το DNA αφαι�είται μηχανικά, καθα�ίζεται από εξωγήινα στοιχεία και αντικαθίσταται γ�ήγο�α.", }, infectious_laughter = { name = "Μεταδοτικό Γέλιο", cause = "Αιτία - κλασική κωμωδία καταστάσεων.", symptoms = "Συμπτώματα - ατελείωτα πνιχτά γελάκια και επανάληψη μη αστείων φ�άσεων.", cure = "Θε�απεία - Ένας πιστοποιημένος Ψυχίατ�ος π�έπει να υπενθυμίσει στον ασθενή πόσο σοβα�ή είναι αυτή η ασθένεια.", }, gastric_ejections = { name = "Γαστ�ικές Αποβολές", cause = "Αιτία - πικάντικο Μεξικάνικο ή Ινδικό φαγητό.", symptoms = "Συμπτώματα - μισο-χωνευμένο φαγητό που αποβάλλονται από τον ασθενή σε τυχαία συμπλέγματα.", cure = "Θε�απεία - Ο ασθενής πίνει ένα ειδικό π�οσκολλητικό διάλυμα που αποτ�έπει την πε�αιτέ�ω αποβολή των πε�ιεχομένων του στομαχιο�.", }, bloaty_head = { name = "Φουσκωτό Κεφάλι", cause = "Αιτία - το να σνιφά�εις τυ�ί και να πιεις μη απιονισμένο β�οχόνε�ο.", symptoms = "Συμπτώματα - πολ� άβολο για τον πάσχοντα.", cure = "Θε�απεία - Το π�ησμένο κεφάλι σκάει σαν φο�σκα, και ξαναφουσκώνει στην σωστή πίεση χ�ησιμοποιώντας ένα έξυπνο μηχάνημα.", }, discrete_itching = { name = "Διακ�ιτική Φαγο��α", cause = "Αιτία - μικ�οσκοπικά έντομα με κοφτε�ά δόντια.", symptoms = "Συμπτώματα - φαγο��α, που οδηγεί σε φλεγμονές στο σώμα.", cure = "Θε�απεία - Ο ασθενής πίνει ένα φα�μακευτικό κολλώδες σι�όπι για να αποτ�έψει την φαγο��α.", }, invisibility = { name = "Αο�ατότητα", cause = "Αιτία - τσίμπημα από �αδιενε�γό (και αό�ατο) μυ�μήγκι.", symptoms = "Συμπτώματα - οι ασθενείς δεν αντιμετωπίζουν καμία ενόχληση. Π�άγματι, κάποιοι από αυτο�ς χ�ησιμοποιο�ν την πάθησή τους για να κάνουν πλάκες στην οικογένειά τους.", cure = "Θε�απεία - Ένα χ�ωματιστό διάλυμα στο Φα�μακείο σ�ντομα αποκαθιστά τον ασθενή σε πλή�η αδιαφάνεια.", }, king_complex = { name = "Σ�μπλεγμα του Βασιλιά", cause = "Π�οκαλείται όταν το πνε�μα του Βασιλιά (ΣτΜ: Έλβις) εισέ�χεται στο μυαλό του ασθενο�ς και τον διακατέχει.", symptoms = "Συμπτώματα - ο ασθενής φο�άει σουέντ χ�ωματιστά παπο�τσια και τ�ώει cheeseburgers.", cure = "Θε�απεία - Ένας Ψυχίατ�ος λέει στον ασθενή πόσο γελοίος δείχνει.", }, iron_lungs = { name = "Σιδε�ένια Πνευμόνια", cause = "Αιτία - αιθαλομίχλη του κέντ�ου της πόλης σε συνδυασμό με κατάλοιπα κεμπάμπ.", symptoms = "Συμπτώματα - ικανότητα να βγάζεις φωτιές από το στόμα και να φωνάζεις δυνατά κάτω από το νε�ό.", cure = "Θε�απεία - Δ�ο Χει�ου�γοί ε�γάζονται για να χει�ου�γήσουν και να αφαι�έσουν τα, σκλη�ά σαν από γ�ψο, πνευμόνια στο Χει�ου�γείο.", }, diag_ultrascan = { name = "Διαγ Ultrascan", }, pregnancy = { name = "Έγκυος", cause = "Αιτία - διακοπές �ε�ματος σε αστικές πε�ιοχές.", symptoms = "Συμπτώματα - τάσεις κατανάλωσης μεγάλων ποσοτήτων φαγητο� και επακόλουθη μπυ�οκοιλιά.", cure = "Θε�απεία - Το μω�ό αφαι�είται στο Χει�ου�γείο, πλένεται και πα�ουσιάζεται στον ασθενή.", }, kidney_beans = { name = "�εφ�οφάσολα", cause = "Αιτία - να μασουλάς παγάκια σε ποτά.", symptoms = "Συμπτώματα - πόνος και τακτικές επισκέψεις στην τουαλέτα.", cure = "Θε�απεία - Δ�ο Χει�ου�γοί π�έπει να αφαι�έσουν τα φασόλια χω�ίς να αγγίξουν τα τοιχώματα των νεφ�ών.", }, hairyitis = { name = "Μαλλίτιδα", cause = "Αιτία - πα�ατεταμένη έκθεση στο φεγγά�ι.", symptoms = "Συμπτώματα - οι πάσχοντες βιώνουν έχουν ενισχυμένη αίσθηση όσφ�ησης.", cure = "Θε�απεία - Ένα μηχάνημα ηλεκτ�όλυσης αφαι�εί το τ�ίχωμα και κλείνει τους πό�ους.", }, spare_ribs = { name = "Πε�ίσσια Πλευ�ά", cause = "Αιτία - το να κάθεσαι σε κ��α πατώματα.", symptoms = "Συμπτώματα - μη ευχά�ιστο αίσθημα μεγαλωμένου στήθους.", cure = "Θε�απεία - Τα πλευ�ά π�έπει να αφαι�εθο�ν από δ�ο Χει�ου�γο�ς, και να δοθο�ν στον ασθενή σε πακέτο για να τα φάει ο σκ�λος στο σπίτι.", }, broken_heart = { name = "Ραγισμένη Κα�διά", cause = "Αιτία - κάποιος πλουσιότε�ος, νεότε�ος και πιο λεπτός από τον ασθενή.", symptoms = "Συμπτώματα - κλάμα και κακώσεις λόγω επαναλαμβανόμενης καταπόνησης στα χέ�ια λόγω σκισίματος φωτογ�αφιών από διακοπές.", cure = "Θε�απεία - Δ�ο Χει�ου�γοί ανοίγουν το στήθος και απαλά και π�οσεκτικά μπαλώνουν την κα�διά κ�ατώντας την αναπνοή τους.", }, sleeping_illness = { name = "Ασθένεια Ύπνου", cause = "Αιτία - υπε�ενε�γός αδένας �πνου στον ου�ανό του στόματος.", symptoms = "Συμπτώματα - Ακατανίκητη επιθυμία του ασθενο�ς να ξαπλώσει και να �ίξει έναν υπνάκο όπου και να β�ίσκεται.", cure = "Θε�απεία - Υψηλή δόση ένος ισχυ�ο� διεγε�τικο� το οποίο χο�ηγείται από μία �οσοκόμα.", }, broken_wind = { name = "Κλανίδι", cause = "Αιτία - το να χ�ησιμοποιήσεις έναν διάδ�ομο γυμναστη�ίου μετά από ένα μεγάλο γε�μα.", symptoms = "Συμπτώματα - εκνευ�ισμός και αναστάτωση των ανθ�ώπων ακ�ιβώς πίσω από τον ασθενή.", cure = "Θε�απεία - μια βα�ιά μείξη από ειδικά υδάτινα άτομα πίνεται σβέλτα στο Φα�μακείο.", }, diag_blood_machine = { name = "Διαγ Μηχάνημα Αίματος", }, serious_radiation = { name = "Σοβα�ή Ακτινοβολία", cause = "Αιτία - το να μπε�δέψεις ισότοπα πλουτωνίου για τσίχλες.", symptoms = "Συμπτώματα - οι ασθενείς με αυτήν την πάθηση νιώθουν πολ�, πολ� άσχημα.", cure = "Θε�απεία - Ο ασθενής π�έπει να τοποθετηθεί σε ένα �τουζ Απολ�μανσης και να καθα�ιστεί καταλλήλως.", }, tv_personalities = { name = "TV Πε�σόνα", cause = "Αιτία - π�ωινάδικα και μεσημε�ιανάδικα.", symptoms = "Συμπτώματα - ψευδαισθήσεις σχετικά με την ικανότητα του ατόμου να πα�ουσιάσει εκπομπή μαγει�ικής.", cure = "Θε�απεία - Ένας εκπαιδευμένος Ψυχίατ�ος π�έπει να πείσει τον ασθενή να πουλήσει την τηλεό�ασή του και να αγο�άσει �αδιόφωνο.", }, fake_blood = { name = "Ψε�τικο Αίμα", cause = "Αιτία - ο ασθενής συνήθως έχει πέσει θ�μα φά�σας.", symptoms = "Συμπτώματα - Κόκκινο υγ�ό στις φλέβες το οποίο εξατμίζεται σε επαφή με �ο�χα.", cure = "Θε�απεία - Καθησυχασμός από την Ψυχίατ�ο είναι ο μόνος τ�όπος αντιμετώπισης αυτο� του π�οβλήματος.", }, general_practice = { name = "Γενική Ιατ�ική", }, chronic_nosehair = { name = "Χ�όνιο Τ�ίχωμα στην Μ�τη", cause = "Αιτία - Το να �ουφάει πε�ιφ�ονητικά την μ�τη του ο ασθενής σε κοινωνικά κατώτε�α άτομα από αυτόν.", symptoms = "Συμπτώματα - τ�ίχωμα στην μ�τη τόσο μεγάλο που ένας ασβός θα μπο�ο�σε να κάνει φωλιά.", cure = "Θε�απεία - Ένα αηδιαστικό φίλτ�ο αφαί�εσης τ�ιχών χο�ηγείται διά της στοματικής οδο�, το οποίο ετοιμάζεται από μία �οσοκόμα στο Φα�μακείο.", }, diag_ward = { name = "Διαγ Πτέ�υγα", }, gut_rot = { name = "Σαπισμένη Κοιλιά", cause = "Αιτία - Mrs. O'Malley's Good Time Whisky Cough Mixture.", symptoms = "Συμπτώματα - δεν υπά�χει πια βήχας αλλά ο�τε και στομαχικά τοιχώματα.", cure = "Θε�απεία - Μία �οσοκόμα χο�ηγεί μια επιλογή από διαλυμμένα χυμικά για να επικαλ�ψει την κοιλίτσα.", }, corrugated_ankles = { name = "Πτυχωτοί Αστ�άγαλοι", cause = "Αιτία - το να οδηγάς το αυτοκίνητό σου πάνω από τα μέτ�α αποσυμφό�ησης της κυκλοφο�ίας στον δ�όμο.", symptoms = "Συμπτώματα - Τα παπο�τσια δεν φο�ιο�νται άνετα.", cure = "Θε�απεία - Ένα ελαφ�ώς τοξικό μείγμα βοτάνων και μυ�ωδικών πίνεταιγια να ισιώσουν οι αστ�άγαλοι.", }, baldness = { name = "Φαλάκ�α", cause = "Αιτία - να λες ψέματα και να επινοείς ιστο�ίες για να είσαι δημοφιλής.", symptoms = "Συμπτώματα - αστ�αφτε�ό κεφάλι και ντ�οπιασμός.", cure = "Θε�απεία - Το μαλλί συγχωνε�εται στο κεφάλι του ασθενή πολ� ε�κολα χ�ησιμοποιώντας αυτό το οδυνη�ό μηχάνημα.", }, golf_stones = { name = "Πέτ�ες του Γκολφ", cause = "Αιτία - έκθεση σε δηλητη�ιώδες αέ�ιο μέσα σε μπαλάκια του γκολφ. (ΣτΜ: λογοπαίγνιο, Golf Stones από Gallstones, δηλαδή πέτ�ες στην χολή)", symptoms = "Συμπτώματα - πα�αλή�ημα και μεγάλη ντ�οπή.", cure = "Θε�απεία - Οι πέτ�ες π�έπει να αφαι�εθο�ν μέσω εγχεί�ησης η οποία απαιτεί δ�ο Χει�ου�γο�ς.", }, heaped_piles = { name = "Ενοχλητικές Ζοχάδες", cause = "Αιτία - το να στέκεσαι κοντά σε ψ�κτες.", symptoms = "Συμπτώματα - Ο ασθενής αισθάνεται σαν να κάθεται πάνω σε μια σακο�λα από βόλους.", cure = "Θε�απεία - Ένα ευχά�ιστο αλλά πολ� όξινο ποτό διαλ�ει τις αιμο��ο�δες εκ των έσω.", }, transparency = { name = "Διαφάνεια", cause = "Αιτία - το να γλείφεις το γιαο��τι από το αλουμινένιο καπάκι μιας συσκευασίας γιαου�τιο�.", symptoms = "Συμπτώματα - η σά�κα γίνεται διάφανη και αηδιαστική.", cure = "Θε�απεία - Ένα διάλυμα από το Φα�μακείο που εμπε�ιέχει ειδικά ψυγμένο και χ�ωματισμένο νε�ό θε�απε�ει αυτήν την ασθένεια.", }, uncommon_cold = { name = "Μη Συνηθισμένο Κ�υολόγημα", cause = "Αιτία - μικ�ά σωματίδια μ�ξας στον αέ�α. (ΣτΜ: λογοπαίγνιο, Uncommon Cold έναντι Common Cold)", symptoms = "Συμπτώματα - μ�τη που τ�έχει, φτέ�νισμα και ξεθω�ιασμένα πνευμόνια.", cure = "Θε�απεία - Μια μεγάλη γουλιά από σι�όπι μη συνηθισμένου κ�υολογήματος φτιαγμένο από ειδικά συστατικά στο Φα�μακείο θα θε�απε�σει αυτήν την ασθένεια.", }, diag_cardiogram = { name = "Διαγ Κα�διογ�άφημα", }, fractured_bones = { name = "Σπασμένα Κόκκαλα", cause = "Αιτία - πέφτοντας από μεγάλα �ψη πάνω σε τσιμέντο.", symptoms = "Συμπτώματα - ηχη�ό κ�ακ και ανικανότητα χ�ήσης των εμπλεκόμενων άκ�ων.", cure = "Θε�απεία - Τοποθετείται ο γ�ψος και �στε�α αφαι�είται χ�ησιμοποιώντας ένα μηχάνημα αφαί�εσης με λέιζε�.", }, jellyitis = { name = "Ζελετίτιδα", cause = "Αιτία - δίαιτα υψηλή σε ζελατίνη και υπε�βολική άσκηση.", symptoms = "Συμπτώματα - υπε�βολικό τα�ακο�νημα και γε�ές πτώσεις.", cure = "Θε�απεία - Ο ασθενής βυθίζεται για λίγο στην Δεξαμενή Ζελέ που β�ίσκεται σε ένα ειδικό δωμάτιο.", }, unexpected_swelling = { name = "Αναπάντεχο Π�ήξιμο", cause = "Αιτία - οτιδήποτε αναπάντεχο.", symptoms = "Σ�μπτωμα - π�ήξιμο.", cure = "Θε�απεία - Το π�ήξιμο μπο�εί να μειωθεί μόνο ανοίγοντας το σημείο σε μια εγχεί�ηση που απαιτεί δ�ο Χει�ου�γο�ς.", }, the_squits = { name = "Τσι�λιπιπί", cause = "Αιτία - το να τ�ως πίτσα που έχει πέσει κάτω από την ηλεκτ�ική κουζίνα.", symptoms = "Συμπτώματα - εεε. Σίγου�α μπο�είτε να μαντέψετε.", cure = "Θε�απεία - Ένα γλουτενικό μιξ από ινώδη φα�μακευτικά χημικά στε�εοποιεί τα μέσα του ασθενο�ς.", }, } debug_patient_window = { caption = "Ασθενής Αποσφαλμάτωσης", } menu_display = { high_res = " HIGH RES ", shadows = " ΣΚΙΕΣ ", mcga_lo_res = " MCGA LO-RES ", } letter = { [1] = { [1] = "Αγαπητέ/ή %s//", [2] = "Θαυμάσια! Χει�ιστήκατε την διαχεί�ιση αυτο� του νοσοκομείου εξαι�ετικά. Εμείς οι φί�μες στο Υπου�γείο Υγείας ανα�ωτιόμαστε αν θα σας ενδιέφε�ε να αναλάβετε ένα μεγαλ�τε�ο έ�γο. Υπά�χει μια δουλειά για την οποία θεω�ο�με πως θα ήσασταν τέλειος/α. Ο μισθός είναι $%d. Σκεφτείτε το.//", [3] = "Θα σας ενδιέφε�ε μια δουλειά στο �οσοκομείο %s ;", }, [2] = { [1] = "Αγαπητέ/ή %s//", [2] = "Πε�ίφημα! Έχετε κάνει φανταστική π�όοδο στο νοσοκομείο σας. Έχουμε β�ει κάπου αλλο� να αναλάβετε, αν θέλετε μια αλλαγή σκηνικο� και μία φ�έσκια σει�ά π�οκλήσεων. Δεν είναι ανάγκη να δεχτείτε, αλλά ίσως αξίζει αν το κάνετε. Ο μισθός είναι $%d//", [3] = "Θέλετε μια δουλειά στο �οσοκομείο %s ;", }, [3] = { [1] = "Αγαπητέ/ή %s//", [2] = "Είχατε τε�άστια επιτυχία κατά την διά�κεια της θητείας σας σε αυτό το νοσοκομείο. Ως εκ το�του, π�οβλέπουμε μεγάλα π�άγματα για εσάς, και θα θέλαμε να σας π�οσφέ�ουμε μια θέση αλλο�. Ο μισθός είναι $%d, και πιστε�ουμε ότι θα λατ�ε�ατε την νέα π�όκληση που θα συνιστο�σε.//", [3] = "Θέλετε μια θέση στο �οσοκομείο %s ;", }, [4] = { [1] = "Αγαπητέ/ή %s//", [2] = "Συγχα�ητή�ια! Εμείς στο Υπου�γείο είμαστε πολ� εντυπωσιασμένοι από τις ικανότητες σας στην διαχεί�ιση ενός νοσοκομείου. Είστε σίγου�α ένα χ�υσό αγό�ι/κο�ίτσι στον τομέα της Υγείας. Πιστε�ουμε ότι θα π�οτιμο�σατε μια ελαφ�ώς δυσκολότε�η δουλειά, ωστόσο. Θα πλη�ωθείτε μισθό της τάξεως των $%d, αλλά η απόφαση είναι δική σας.//", [3] = "Ενδιαφέ�εστε να δουλέψετε στο �οσοκομείο %s ;", }, [5] = { [1] = "Αγαπητέ/ή %s//", [2] = "Γεια και πάλι. Σεβόμαστε την επιθυμία σας να μην αποχω�ήσετε από αυτό το μαγευτικό νοσοκομείο, αλλά θα σας πα�οτ��ναμε να το ξανασκεφτείτε. Θα σας π�οσφέ�ουμε τον μεγάλο μισθό των $%d αν είστε έτοιμοι να εγκατασταθείτε σε άλλο νοσοκομείο και να το τ�έξετε εξίσου καλά.//", [3] = "Θα θέλατε να εγκατασταθείτε στο �οσοκομείο %s τώ�α;", }, [6] = { [1] = "Αγαπητέ/ή %s//", [2] = "Χαι�ετισμοί. Γνω�ίζουμε πόσοι ευχα�ιστημένοι ήσασταν σε αυτό το αξιαγάπητο ίδ�υμα το οποίο έχετε διαχει�ιστεί εξαι�ετικά καλά, αλλά πιστε�ουμε ότι π�έπει να σκεφτείτε να π�οχω�ήσετε την κα�ιέ�α σας τώ�α. Φυσικά, θα λάβετε το ποσό των $%d αν αποφασίσετε να μετακομίσετε. Αξίζει να το σκεφτείτε.//", [3] = "Θα θέλατε μια θέση στο �οσοκομείο %s ;", }, [7] = { [1] = "Αγαπητέ/ή %s//", [2] = "Καλή σας μέ�α! Το Υπου�γείο Υγείας θα ήθελε να γνω�ίζει αν θα αναθεω�ο�σατε την απόφασή σας να μείνετε στο τ�έχον νοσοκομείο σας. Εκτιμο�με το γεγονός ότι έχετε ένα εξαι�ετικό νοσοκομείο, αλλά αισθανόμαστε ότι θα ήταν πολ� καλό για εσάς αν αποδεχόσασταν ένα πιο απαιτητικό πόστο, και έναν μισθό της τάξεως των $%d.//", [3] = "Θα επιθυμο�σατε μια θέση στο �οσοκομείο %s ;", }, [8] = { [1] = "Αγαπητέ/ή %s//", [2] = "Γεια σας και πάλι. Α�νηθήκατε την π�όταση μας στο π�οηγο�μενο γ�άμμα, στο οποίο σας π�οσφέ�αμε μια πολυπόθητη θέση σε έναν νέο νοσοκομείο, και έναν μεγαλ�τε�ο μισθό της τάξεως των $%d. Αισθανόμαστε, ωστόσο, πως π�έπει να αναθεω�ήσετε αυτή σας την απόφαση. Έχουμε την τέλεια δουλειά για εσάς, βλέπετε.//", [3] = "Θα λάβετε το πόστο στο �οσοκομείο %s ; Πα�ακαλώ πολ�;", }, [9] = { [1] = "Αγαπητέ/ή %s//", [2] = "Αποδείξατε πως είστε οι πιο ικανοί διαχει�ιστές νοσοκομείου στην μακ�ιά και πολυτά�α�χη ιστο�ία της ιατ�ικής. Ένα τέτοιο τε�άστιο κατό�θωμα δεν μπο�εί να μείνει αβ�άβευτο, έτσι θα θέλαμε να σας π�οσφέ�ουμε το πόστο του Ανώτατου Π�οέδ�ου Όλων των �οσοκομείων. Αυτή είναι μια τιμητική δουλειά, και έ�χεται μαζί με έναν μισθό της τάξεως των $%d. Θα σας δοθεί η δικιά σας π�οσωπική πομπή η οποία θα είναι αντάξια των κατο�θωμάτων σας και θα είναι μακ�ιά σαν τε�άστια απόδειξη σουπε�μά�κετ, και επιπλέον ο κόσμος θα σας δείχνει την εκτίμησή του όπου και αν β�ίσκεστε.//", [3] = "Ευχα�ιστο�με για όλα όσα έχετε κάνει. Είθε να απολα�σετε μια μακ�όχ�ονη ημι-συνταξιοδότηση.//", [4] = "", }, [10] = { [1] = "Αγαπητέ/ή %s//", [2] = "Συγχα�ητή�ια που διοικήσατε επιτυχώς όλα τα νοσοκομεία στα οποία σας αναθέσαμε. Μια τέτοια εξαι�ετική επίδοση σας καθιστά άξιους για δω�εάν μετάβαση σε όλες τις πόλεις του κόσμου. Θα σας δοθεί σ�νταξη της τάξεως των $%d, και επιπλέον μια λιμουζίνα, και το μόνο που ζητάμε είναι να ταξιδε�ετε από πολή σε πόλη, να συναντάτε τους θαυμαστές σας και να π�οωθείτε την δουλειά όλων των νοσοκομείων παντο�.//", [3] = "Είμαστε όλοι πε�ήφανοι για εσάς. Δεν υπά�χει ο�τε ένα άτομο ανάμεσα μας που δεν αισθάνεται ευγνωμοσ�νη για όλη την σκλη�ή δουλειά που έχετε κάνει στο να σώζετε ζωές.//", [4] = "", }, [11] = { [1] = "Αγαπητέ/ή %s//", [2] = "Η κα�ιέ�α σας είναι υποδειγματική, και αποτελείτε έμπνευση για όλους μας. Σας ευχα�ιστο�με για την διαχεί�ιση τόσων πολλών νοσοκομειακών ιδ�υμάτων και για το ότι τα καταφέ�ατε εξίσου καλά σε όλα. Θα θέλαμε να σας π�οσφέ�ουμε αποδοχές εφ' ό�ου ζωής της τάξεως των $%d, και ζητάμε μονάχα να ταξιδε�ετε από πόλη σε πόλη με επίσημο κάμπ�ιο αυτοκίνητο, κάνοντας διαλέξεις για το πως κατο�θώσατε τόσα πολλά σε τόσο σ�ντομο χ�ονικό διάστημα.//", [3] = "Αποτελείτε πα�άδειγμα για κάθε ο�θά σκεπτόμενο άτομο, και ανεξαι�έτως, όλοι στον κόσμο σας θεω�ο�ν ως το υπέ�τατο απόκτημα στον χώ�ο της ιατ�ικής.//", [4] = "", }, [12] = { [1] = "Αγαπητέ/ή %s//", [2] = "Η επιτυχής κα�ιέ�α σας ως ο/η σπουδαιότε�ος/η διαχει�ιστής/στ�ια νοσοκομείου από την εποχή του Μωυσή φτάνει κοντά στο τέλος της. Ωστόσο, τέτοιος ήταν ο αντίκτυπός σας στον χώ�ο της ιατ�ικής, που το Υπου�γείο επιθυμεί να σας π�οσφε�εί αποδοχές της τάξεως των $%d απλά για να κάνετε εμφανίσεις εκ μέ�ους μας, ανοίγοντας πανηγ��ια, να πα�ευ�ίσκεστε σε καθελκ�σεις πλοίων και να πηγαίνεται σε talk shows. Όλος ο κόσμος ζητωκ�αυγάζει για εσάς, συν το ότι θα ήταν καλή δημοσιότητα για όλους μας!//", [3] = "Πα�ακαλο�με αποδεχτείτε αυτήν την θέση. Δεν θα είναι δ�σκολη δουλειά, και θα σας π�οσφέ�ουμε αυτοκίνητο και αστυνομική συνοδεία οπουδήποτε και αν πηγαίνετε.//", [4] = "", }, custom_level_completed = "Συγχα�ητή�ια! Έχετε ολοκλη�ώσει όλους τους στόχους σε αυτό το π�οσα�μοσμένο επίπεδο!", campaign_completed = "Απίστευτο! Καταφέ�ατε να ολοκλη�ώσετε όλα τα επίπεδα. Τώ�α μπο�είτε να χαλα�ώσετε και να απολα�σετε τον χ�όνο σας γ�άφοντας σε forums στο Ίντε�νετ για τα κατο�θώματά σας. Καλή τ�χη!", campaign_level_missing = "Συγγνώμη, αλλά το επόμενο επίπεδο αυτής της καμπάνιας φαίνεται να λείπει. (Όνομα: %s)", return_to_main_menu = "Θα θέλατε να επιστ�έψετε πίσω στο κ��ιο μενο� ή να συνεχίσετε να παίζετε;", dear_player = "Αγαπητέ/ή %s", campaign_level_completed = "Καλή δουλειά! Κε�δίσατε το επίπεδο. Αλλά δεν τελείωσε ακόμα! Θα επιθυμο�σατε μια θέση στο �οσοκομείο %s;", } room_classes = { clinics = "Κλινικές", treatment = "Θε�απεία", diagnosis = "Διάγνωση", facilities = "Μονάδες", } graphs = { money_in = "Έσοδα", visitors = "Επισκέπτες", balance = "Π�οϋπολογισμός", cures = "Θε�απείες", wages = "Μισθοί", reputation = "Φήμη", time_spans = { [1] = "1 Χ�όνος", [2] = "12 Χ�όνια", [3] = "48 Χ�όνια", }, deaths = "Θάνατοι", money_out = "Έξοδα", } staff_list = { skill = "ΔΕΞΙΟΤΗΤΑ", total_wages = "ΣΥ�ΟΛΙΚΟΙ ΜΙΣΘΟΙ", tiredness = "ΚΟΥΡΑΣΗ", morale = "ΗΘΙΚΟ", } CorsixTH-0.70.0/CorsixTH/Lua/languages/hungarian.lua000066400000000000000000002303771522247547500222030ustar00rootroot00000000000000 --[[ Copyright (c) 2011 David "ChronosHD" Horváth & Adam Kirkósa Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- A FEW NOTES ------------------------------------------------------------------------------- As the Nowegian translation seemd very well structured, i've used that file. Thanks for the Norwegian translators for their work. ------------------------------------------------------------------------------- READ BEFORE DOING ANY CHANGES ------------------------------------------------------------------------------- Since the Hungarian language isn't in the original Theme Hospital game, this file is split in two sections (A and B). The first section contains all the new language strings, made by the Corsix-TH team, and the second section contains the override translation of all the original english strings. FORMATING AND HUNGARIAN LETTERS This file contains UTF-8 text. Make sure your editor is set to UTF-8. ------------------------------------------------------------------------------- Table of Contents ------------------------------------------------------------------------------- -- SECTION A - NEW STRINGS 1. Global settings 2. Faxes 3. Objects 4. Menu 5. Adviser 6. Dynamic info 7. Tooltip -- SECTION B - OLD STRINGS (OVERRIDE) Huge section with all original strings, translated from english. -----------------------------------------------------------------------------]] ------------------------------------------------------------------------------- -- SECTION A - NEW STRINGS ------------------------------------------------------------------------------- Font("unicode") Language("Magyar", "Hungarian", "hu", "hun") Inherit("English") Encoding(utf8) IsArabicNumerals(true) -- 2. Faxes fax = { choices = { return_to_main_menu = "Vissza a főmenübe", accept_new_level = "Ugrás a következő pályára", decline_new_level = "Pálya folytatása még egy kicsit", }, } letter = { dear_player = "Kedves %s", custom_level_completed = "Ez igen! Minden kitűzött célt elértél ezen az egyedi pályán!", return_to_main_menu = "Szeretnél visszaugrani a főmenübe, vagy inkább játszol tovább?", } install = { title = "--------------------------------- CorsixTH Beállítások ---------------------------------", th_directory = "CorsixTH-nak a futáshoz szüksége van az eredeti (teljes vagy demó) játék adatfájljaira. Kérlek az alábbi választómenü segítségével keresd ki a Theme Hospital telepítőfájljait tartalmazó könyvtárat.", exit = "Kilépés", } -- 3. Objects object = { litter = "Szemét", } tooltip.fax.close = "Ablak bezárása az üzenet törlése nélkül" tooltip.message.button = "Bal klikk az üzenet megnyitásához" tooltip.message.button_dismiss = "Bal klikk az üzenet megnyitásához, jobb klikk a figyelmen kívül hagyáshoz" -- 4. Menu menu_options = { lock_windows = " Ablak rögzítése ", edge_scrolling = " Görgetés széleknél ", settings = " Beállítások ", } menu_options_game_speed.pause = " Játék megállítása " -- The demo does not contain this string menu_file.restart = " Újrakezdés " menu_debug = { jump_to_level = " UGR�S P�LY�RA ", transparent_walls = " (%1%) �TL�TSZÓ FALAK ", limit_camera = " KAMERA HAT�ROL�SA ", disable_salary_raise = " FIZETÉSEMELÉS KIKAPCSOL�SA ", make_debug_fax = " FAX HIBAKERESÉS ", make_debug_patient = " BETEG HIBAKERESÉS ", cheats = " (%1%) CSAL�SOK ", lua_console = " (%1%) LUA KONZOL ", calls_dispatcher = " H�V�S ELOSZTÓ ", dump_strings = " (%1%) SZTRINGEK LEMENTÉSE ", dump_gamelog = " (%1%) J�TÉK LOG LEMENTÉSE ", map_overlay = " TÉRKÉP RÉTEG ", sprite_viewer = " SPRITE NÉZEGET� ", } menu_debug_overlay = { none = " SEMMI ", flags = " Z�SZLÓK ", positions = " POZ�CIÓK ", heat = " H�MÉRSÉKLET ", byte_0_1 = " BYTE 0 & 1 ", byte_floor = " BYTE TALAPZAT ", byte_n_wall = " BYTE N FAL ", byte_w_wall = " BYTE W FAL ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " TELEKRÉSZ ", } -- 5. Adviser adviser = { room_forbidden_non_reachable_parts = "A szoba jelenlegi elhelyezése elérhetetlenné tenne bizonyos részeket a kórház területén.", praise = { plants_are_well = "Kellemes látvány. Ügyesen gondoskodtál a növényekről. Szép munka.", few_have_to_stand = "Majdhogynem senkinek se kell állnia a kórházadban. A betegek hálásak ezért.", plenty_of_benches = "Rengetek az ülőhely, úgyhogy gond egy szál se.", plants_thriving = "Nagyon jó. A növények virítanak. Kellemes látvány. Ha így folytatod, még trófeát is kaphatsz értük." }, } -- 6. Dynamic info dynamic_info.patient.actions.no_gp_available = "Várakozás, hogy több általános rendelőt építs" dynamic_info.staff.actions.heading_for = "Ide megy: %s" dynamic_info.staff.actions.fired = "Elbocsájtott" -- 7. Tooltip tooltip.objects.litter = "Szemét: Egy haszontalan tárgy, amit a beteg azért dobott a földre, mert nem talált szemetest." -- Misc misc.not_yet_implemented = "(Még nem beépített)" misc.no_heliport = "Nem lett még új betegség felfedezve, vagy nincs helikopterleszálló ezen a pályán." -- Main menu main_menu = { new_game = "Új játék", custom_level = "Egyedi pálya", load_game = "Betöltés", options = "Beállítások", exit = "Kilépés", } tooltip.main_menu = { new_game = "Egy teljesen új játék kezdése az alapoktól", custom_level = "Saját kórház építése egy egyedi pályán", load_game = "Elmentett játék betöltése", options = "Beállítások megváltoztatása", exit = "Ne, ne! Kérlek ne lépj ki!", } load_game_window = { caption = "Játék betöltése", } tooltip.load_game_window = { load_game = "%s betöltése", load_game_number = "%d betöltése", load_autosave = "Automatikus mentés betöltése", } custom_game_window = { caption = "Egyedi játék", } tooltip.custom_game_window = { start_game_with_name = "%s pálya betöltése", } save_game_window = { caption = "Játék mentése", new_save_game = "Új mentés", } tooltip.save_game_window = { save_game = "%s mentés felülírása", new_save_game = "�rd be az új mentés nevét", } menu_list_window = { back = "Vissza", } tooltip.menu_list_window = { back = "Ablak bezárása", } options_window = { fullscreen = "Teljes képernyő", width = "Szélesség", height = "Magasság", change_resolution = "Felbontás megváltoztatása", browse = "Tallózás...", new_th_directory = "Itt egy új Theme Hospital telepítési útvonalat adhatsz meg. Amint kiválasztottad az új könyvtárat, a játék újraindul.", cancel = "Mégse", back = "Vissza", } tooltip.options_window = { fullscreen_button = "Kattints a teljes képernyős módba való váltáshoz", width = "Add meg a kívánt szélességet", height = "Add meg a kívánt magasságot", change_resolution = "Az ablak felbontásának alkalmazása a bal oldalon lévő adatok szerint", language = "%s nyelv kiválasztása", browse = "Másik elérési útvonal kiválasztása a Theme Hospital fájljaihoz", back = "Beállítások ablak bezárása", } calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d hívás; %d hozzárendelve", staff = "%s - %s", watering = "Öntözés @ %d,%d", repair = "%s Javítás", close = "Bezárás", } tooltip.calls_dispatcher = { task = "Teendők listája - kattints, hogy megnyitsd a beosztott személyzet ablakát és a teendő helyszínéhez gördülj.", assigned = "Ez a doboz akkor van bejelölve, ha a teendőhöz már van rendelve alkalmazott.", close = "Hozzárendelő ablak bezárása", } cheats_window = { caption = "Csalás", warning = "Figyelem: Nem fogsz bónuszpontokat kapni a pálya végén, ha csalsz!", cheated = { no = "Csalás aktív: Nem", yes = "Csalás aktív: Igen", }, cheats = { money = "Pénz csalás", all_research = "Minden kutatás kész csalás", emergency = "Vészhelyzet létrehozása", create_patient = "Beteg létrehozása", end_month = "Ugrás hónap végére", end_year = "Ugrás év végére", lose_level = "Pálya elvesztése", win_level = "Pálya megnyerése", }, close = "Bezárás", } tooltip.cheats_window = { close = "Csalás párbeszédablak bezárása", cheats = { money = "Egyenleghez $10.000 hozzáadása.", all_research = "Összes kutatás kész.", emergency = "Vészhelyzet előidézése.", create_patient = "Beteg létrehozása a térkép határán.", end_month = "Ugrás hónap végére.", end_year = "Ugrás év végére.", lose_level = "Pálya elvesztése.", win_level = "Pálya megnyerése.", } } new_game_window = { easy = "Rezidens (Könnyű)", medium = "Doktor (Közepes)", hard = "Konzuláns (Nehéz)", tutorial = "Oktatópálya", cancel = "Mégse", } tooltip.new_game_window = { easy = "Amennyiben a szimulációs játék fogalma számodra új, ez az opció való neked.", medium = "Ez a középút, ajánlott ha bizonytalan vagy melyiket válaszd.", hard = "Ha hozzá vagy szokva az ilyenfajta játékokhoz és szeretnél kihívást, válaszd ezt", tutorial = "Ha szeretnél játék közben segítséget kapni a kezdéshez, jelöld be ezt a négyzetet", cancel = "�h, nem is akarok igazán új játékot kezdeni!!", } lua_console = { execute_code = "Végrehajtás", close = "Bezárás", } tooltip.lua_console = { textbox = "�rd ide a Lua kódot a futtatáshoz", execute_code = "Beírt kód futtatása", close = "Konzol bezárása", } errors = { dialog_missing_graphics = "Sajnálom, a demó fájlok nem tartalmazzák ezt a párbeszédet", save_prefix = "Hiba mentés közben", load_prefix = "Hiba betöltés közben", map_file_missing = "Nem találom a %s fájlt ehhez a pályához!", minimum_screen_size = "Kérlek írj be olyan felbontást ami nagyobb mint %dx%d.", maximum_screen_size = "Kérlek olyan felbontást írj be ami kisebb mint 3000x2000.", unavailable_screen_size = "A felbontás amit szeretnél nem elérhető teljes képernyős módban.", } confirmation = { needs_restart = "Ezen beállítás megváltoztatása megköveteli CorsixTH újraindulását. Minden nem mentett állás el fog veszni. Biztos vagy benne hogy ezt szeretnéd?", abort_edit_room = "Éppen építesz vagy szerkesztesz egy szobát. Ha minden szükséges tárgyat elhelyezel, a szoba kész lesz, ellenkező esetben azonban törlődik. Folytatod?", } information = { custom_game = "Üdvözöllek a CorsixTH-ban. Jó szórakozást ehhez az egyedi pályához!", cannot_restart = "Sajnos ez az egyedi pálya az újrakezdés funkció implementálása előtt lett mentve.", level_lost = { "A fenébe! Elbuktál a pályán. Több szerencsét legközelebb!", "A vesztés oka:", reputation = "A hírneved %d alá esett.", balance = "A banki egyenleged %d alá esett.", percentage_killed = "Több mint %d százalékát ölted meg a betegeknek.", }, } tooltip.information = { close = "Információs ablak bezárása", } -- Tips totd_window = { tips = { "A kezdéshez minden kórháznak szüksége van egy recepciós asztalra és egy orvosi irodára (GP's office). Innentől kezdve minden azon múlik, hogy milyen betegek látogatják a kórházadat. Akárhogy is: egy gyógyszertár mindenképpen jó döntés.", "A gépek, mint például a Felfújó, karbantartást igényelnek. Alkalmazz egy-két ezermestert, hogy megjavítság a készülékeidet, máskülönben a személyzetet és a betegeket teszed ki veszélynek.", "Kis idő elteltével a személyezeted elfárad. Bizonyosodj meg róla, hogy építettél személyzeti szobát, hogy pihenni tudjanak.", "Helyezz el megfelelő mennyiségű radiátort, hogy a személyzeted és a betegek ne fázzanak, máskülönben szomorúak lesznek. Használd a térképet, hogy megtaláld azokat a helyeket a kórházadban, melyek fűtést igányelnek.", "Egy doktor szakképzettsége nagyban befolyásolja a diagnózisainak minőségét és gyorsaságát. Helyezz az orvosi irodába (GP's office) egy szakképzett doktort és nem lesz szükséged annyi diagnózishoz szükséges szobára.", "Rezidensek (junior) és doktorok úgy tudják fejleszteni a szaktudásukat, hogy a tréning szobában (training room) tanulnak egy konzutlánstól. Ha a konzultánsnak különleges szaktudása is van (segész, pszichológus vagy kutató), azt is átadja a tanulóinak.", "Próbáltad már beütni a faxba az európai segélyhívó számot (112)? Legyenek bekapcsolva a hangszóróid!", "A képernyőfelbontást, a nyelvet és más jellegzetességeket a beállítások alatt tudod meghatározni, mely elérhető a főmenüben és a játék közben is.", "Nem angol nyelvet választottál ki és angol szöveget látsz mindenfelé? Segíts nekünk lefordítani a hiányzó szövegeket a saját nyelvedre!", "A CorsixTH csapatnak erősítésre van szüksége! Szeretnél programozni, fordítani vagy grafikákat készíteni a CorsixTH-nak? Értesíts minket a Fórumban, a levelező listánkon vagy az IRC csatornánkon(corsix-th at freenode).", "Ha találsz valamilyen hibát, kérünk téged, jelezd azt a hibanyomkövetőnknél, a: th-issues.corsix.org címen!", "Minden szint teljesítéséhez különböző követelményeknek kell megfelelned, hogy a következő szintre léphess. Ellenőrizd az állapotjelző ablakot, hogy hogy állsz.", "Ha szerkeszteni vagy törölni szeretnél egy szobát, azt az alsó eszközsoron található szerkesztő gombbal tudod megtenni.", "Ha nagyon sok várakozó beteggel futsz össze, úgy tudod gyorsan megállapítani, hogy ki mire vár, hogy a szobák fölé húzod az egered mutatóját, .", "Kattints egy szoba ajtajára, hogy megjelenítsd az oda várakozó sort. Itt további finomhangolásokra van lehetőséged, mint például a sorrend megváltoztatása vagy egy-egy beteg másik szobához küldése.", "A nem elégedett személyzet gyakran fog fizetésemelést kérni. Győződj meg róla, hogy a személyzeted kényelmes körülmények között dolgozik és így elkerülheted ezt.", "A betegek várakozás közben szomlyasak lesznek, különösen akkor, ha a fűtés nagyon fel van tekerve! Helyezz el italautomatákat megfelelő helyeken, hogy egy kis pluszbevételhez juss.", "Véglegesen megszakíthatod egy beteg diagnózisának felállítását és megtippelheted a betegségét, ha már találkoztál azzal a kórral. Tudd viszont, hogy ez növeli a rossz gyógymód veszélyét, ami a páciens halálát jelenti.", "A vészhelyzetek kiváló pluszbevételt jelentenek abban az esetben, ha elegendő kapacitásod van ahhoz, hogy időben ellásd a betegeket.", }, previous = "Előző tipp", next = "Következő tipp", } tooltip.totd_window = { previous = "Mutasd az előző tippet", next = "Mutasd az következő tippet", } ------------------------------------------------------------------------------- -- SECTION B - OLD STRINGS (OVERRIDE) ------------------------------------------------------------------------------- -- Staff class -- each of these corresponds to a sprite staff_class = { nurse = "Nővér", doctor = "Orvos", handyman = "Gondnok", receptionist = "Recepciós", surgeon = "Sebész", } -- Staff titles -- these are titles used e.g. in the dynamic info bar staff_title = { receptionist = "Recepciós", general = "�ltalános", -- unused? nurse = "Nővér", junior = "Rezidens", doctor = "Doktor", surgeon = "Sebész", psychiatrist = "Pszichiáter", consultant = "Konzuláns", researcher = "Kutató", } -- Pay rises pay_rise = { definite_quit = "Semmit sem tehetsz annak érdekében, hogy itt tarts. Elegem van ebből a helyből!", regular = { "Teljesen kimerültem. Szükségem van egy kis pihenésre és egy %d -os fizetésemelésre ha nem akarod látni, ahogy a folyosón nyafogok.", "Nagyon fáradt vagyok. Szükségem van egy kis pihenésre és egy %d -os emelésre, hogy összesen total% d -t keressek, te zsarnok!", --% d (rise)% d (new total) "Ne csináld már! Úgy dolgozom itt, mint egy igás ló. Adj egy %d -os bónuszt és a kórháznál maradok.", --% d (rise) "Annyira el vagyok keseredve. Követelek egy %d -os emelést, amivel összesen % d -t fogok keresni, különben végeztem ezzel a hellyel.", --% d (rise)% d (new total) "A szüleim azt mondták nekem, hogy az orvosi pályán sok pénzt fogok keresni. Úgyhogy adj nekedm egy %d -os emelést, máskülönben végeztünk egymással.", --% d (rise) "Mérges vagyok! Adj nekem rendes fizetést! Nagyjából %d elegendő is volna.", --% d (rise) }, poached = "% d ajánlott nekem % s. Ha nem kapok ugyanennyit, lelépek.", --% d (new total)% s (Competitor) } -- Staff descriptions staff_descriptions = { good = { [1] = "Nagyon gyors és szorgalmas.", [2] = "Nagyon lelkiismeretes és gondos.", [3] = "Nagyon sokoldalú.", [4] = "Barátságos és mindig jókedvű.", [5] = "Rettenetesen kitartó. Reggeltől estig dolgozik.", [6] = "Nagyon udvarias és jó modorú.", [7] = "Hihetetlenül tehetséges és hozzáértő.", [8] = "Nagyon szeret teljesíteni a munkában.", [9] = "Maximalista, aki soha nem adja fel.", [10] = "Mosolyával mindig jobb kedvre deríti az embereket.", [11] = "Elragadó, udvarias és segítőkész.", [12] = "Motivált és elkötelezett a munka iránt.", [13] = "Természetesen viselkedik és keményen dolgozik.", [14] = "Hűséges és barátságos.", [15] = "Figyelmes és lehet rá számítani vészhelyzetekben.", }, misc = { [1] = "Golfozik.", [2] = "Kagylóbúvárkodik.", [3] = "Jégszobrai vannak.", [4] = "Szereti a borokat.", [5] = "Versenyez.", [6] = "Bungee jumpingol.", [7] = "Poháralátéteket gyűjt.", [8] = "Szeret koncerten a közönségre ugrani.", [9] = "Szeret szörfölni.", [10] = "Szeret folyókat tágítani.", [11] = "Whiskey-t párol.", [12] = "Csináld-magad szakember.", [13] = "Szereti a francia művészfilmeket.", [14] = "Sokszor játszik a Theme Park-kal.", [15] = "C-típusú bizonyítványa van.", [16] = "Motorversenyző.", [17] = "Hegedűn és csellón játszik.", [18] = "Megszállott vonatrajongó.", [19] = "Kutyabarát.", [20] = "Rádiós.", [21] = "Gyakran jár fürdőkbe.", [22] = "Bambuszács szakkör vezetője.", [23] = "Zöldségből készült szappantartói vannak.", [24] = "Részmunkaidős bányászengedélye van.", [25] = "Egy kvíműsor házigazdája.", [26] = "2. világháborús ereklyéket gyűjt.", [27] = "Szeret átalakítani.", [28] = "Rave és trip-hop zenét hallgat.", [29] = "Dezodorral öli meg a rovarokat.", [30] = "Kiszúrja a rossz standup-osokat.", [31] = "Vásárol a kórház bizottságának.", [32] = "Titokban kertészkedik.", [33] = "Hamis karórákat csempész.", [34] = "Egy rock'n'roll bandában énekes.", [35] = "Imád napközben televíziót nézni.", [36] = "Pisztrángra horgászik.", [37] = "Turista minden múzeumban.", }, bad = { [1] = "Lassú és kicsinyes.", [2] = "Lusta és nem ambíciózus.", [3] = "Rosszul képzett és használhatatlan.", [4] = "Buta és fárasztó. Tartalékos katona.", [5] = "Alacsony tűrőképességű. Rossz a magatartása.", [6] = "Süket mint az ágyú. Káposzta szaga van.", [7] = "Piszkos munkát végez. Nem vállal nagy felelősséget.", [8] = "Nehezen koncentrál és könnyen elterelődik a figyelme. ", [9] = "Stresszre hajlamos és sok hibát vét.", [10] = "könnyen dühbe jön. Sok gyűlölet van benne.", [11] = "Inkorrekt és alkalmatlan.", [12] = "nem érdekli a munka. Tétlen.", [13] = "Felelőtlen és gondatlan.", [14] = "Zsémbes, ravasz és mindenki agyára megy.", [15] = "Arogáns és felsőbbrendűsködő.", }, } -- Staff list staff_list = { morale = "Morál", tiredness = "Fáradtság", skill = "Szakismeret", total_wages = "Teljes kereset", } -- Objects object = { desk = "�róasztal", cabinet = "Szekrény", door = "Ajtó", bench = "Pad", table1 = "Asztal", -- unused object chair = "Szék", drinks_machine = "Üdítőautomata", bed = "�gy", inflator = "Pumpa", pool_table = "Biliárdasztal", reception_desk = "Recepcióspult", table2 = "Asztal", -- unused object & duplicate cardio = "Kardió", scanner = "Szkenner", console = "Konzol", screen = "Képernyő", litter_bomb = "Szemétbomba", couch = "Dívány", sofa = "Szófa", crash_trolley = "Gurulós szekrény", tv = "TV", ultrascanner = "Ultrahang", dna_fixer = "DNS javító", cast_remover = "Gipszhámozó", hair_restorer = "Hajvisszanövesztő", slicer = "Szeletelő", x_ray = "Röntgen", radiation_shield = "Sugárzás elleni pajzs", x_ray_viewer = "Röntgenvizsgáló", operating_table = "Operálóasztal", lamp = "Lámpa", -- unused object toilet_sink = "WC kagyló", op_sink1 = "WC kagyló", op_sink2 = "WC kagyló", surgeon_screen = "Függöny", lecture_chair = "Hallgatói szék", projector = "Vetítő", bed2 = "�gy", -- unused duplicate pharmacy_cabinet = "Gyógyszeres vitrin", computer = "Számítógép", atom_analyser = "Atomelemző", blood_machine = "Vérkezelő-gép", fire_extinguisher = "Tűzoltókészülék", radiator = "Fűtőtest", plant = "Növény", electrolyser = "Elektrolizáló", jelly_moulder = "Zselésítő", gates_of_hell = "Pokol kapuja", bed3 = "�gy", -- unused duplicate bin = "Szemetes", toilet = "Mosdó", swing_door1 = "Lengőajtó", swing_door2 = "Lengőajtó", shower = "Zuhany", auto_autopsy = "Auto-boncoló", bookcase = "Könyvespolc", video_game = "Videojáték", entrance_left = "Bejárat bal ajtó", entrance_right = "Bejárat jobb ajtó", skeleton = "Csontváz", comfortable_chair = "Kényelmes szék", } -- Place objects window place_objects_window = { drag_blueprint = "Addig állítsd az alaprejzot, amíg megfelelő méretűnek nem találod,", place_door = "Válaszd ki az ajtó helyét,", place_windows = "Csinálj pár ablakot, ha szeretnél. Véglegesítsd, ha kész vagy", place_objects = "Helyezd el a tárgyakat. Véglegesítsd, ha boldog vagy,", confirm_or_buy_objects = "Befejezheted a szobát vagy vásárolhatsz még további tárgyakat is,", pick_up_object = "Kattints egy tárgyra, hogy felemeld vagy válassz ki valami mást a dobozból", place_objects_in_corridor = "Helyezd el a tárgyakat a folyosón", } -- Months months = { "Jan", "Feb", "Már", "�pr", "Máj", "Jún", "Júl", "Aug", "Szep", "Okt", "Nov", "Dec", } -- Date format date_format.daymonth = "%1% %2:months%" -- Graphs graphs = { money_in = "Bevétel", money_out = "Kiadás", wages = "Fizetések", balance = "Mérleg", visitors = "Látogatók", cures = "Gyógyulások", deaths = "Halálesetek", reputation = "Hírnév", time_spans = { "1 óra", "12 óra", "48 óra", } } -- Transactions transactions = { --null = S[8][ 1], -- not needed wages = "Fizetések", hire_staff = "Személyzet felvétele", buy_object = "Tárgy vásárlása.", build_room = "Szoba építése", cure = "Gyógyítás", buy_land = "Telek felvásárlása", treat_colon = "Kezelés:", final_treat_colon = "Teljes kezelés:", cure_colon = "Gyógyult:", deposit = "Letét", advance_colon = "Előlép:", research = "Kutatás költsége", drinks = "Bevétel: Üdítők", jukebox = "Bevétel: Zenegép", -- unused cheat = "Monopolipénz", heating = "Fűtésköltség", insurance_colon = "Biztosítás:", bank_loan = "Hitel", loan_repayment = "Banki letét", loan_interest = "Banki kamat", research_bonus = "Kutatási bónusz", drug_cost = "Gógyszerár", overdraft = "Hiteltúllépési kamat", severance = "Végkielégítés", general_bonus = "�ltalános bónusz", sell_object = "Tárgy eladás", personal_bonus = "Személyi bónsuz", emergency_bonus = "Vészhelyzet bónusz", vaccination = "Védőoltás", epidemy_coverup_fine = "Járványeltitkolási bírság", compensation = "Kompenzáció", vip_award = "VIP-jutalom", epidemy_fine = "Járványbírság", eoy_bonus_penalty = "Év végi bónusz/büntetés", eoy_trophy_bonus = "Év végi trófea-bónusz", machine_replacement = "Gépcsere", } -- Town map town_map = { chat = "Térképcsevegés", for_sale = "Eladó", not_for_sale = "Nem eladó", number = "Telekszám", owner = "Tulajdonos", area = "Telekfelszín", price = "Telekár", } -- Rooms short -- NB: includes some special "rooms" -- reception, destroyed room and "corridor objects" rooms_short = { reception = "Recepció", destroyed = "Megsemmisült", corridor_objects = "Folyosói tárgyak", gps_office = "Orvosi iroda", psychiatric = "Pszichiátria", ward = "Kórterem", operating_theatre = "Műtő", pharmacy = "Gyógyszertár", cardiogram = "Kardiogramm", scanner = "Szkenner", ultrascan = "Ultrahang", blood_machine = "Vérgép", x_ray = "Röntgen", inflation = "Pumpa", dna_fixer = "DNS-klinika", hair_restoration = "Hajklinika", tongue_clinic = "Nyelvklinika", fracture_clinic = "Gipszelő", training_room = "Tréningszoba", electrolysis = "Elektrolizáló", jelly_vat = "Kocsonyakád", staffroom = "Személyzeti szoba", -- rehabilitation = "Rehabilitering", -- unused general_diag = "�ltalános vizsgáló", research_room = "Kutatószoba.", toilets = "WC", decontamination = "Fertőtlenítő", } -- Rooms long rooms_long = { general = "�Ltalános", -- unused? emergency = "Vészhelyzet", corridors = "Folyosó", gps_office = "Orvosi iroda", psychiatric = "Pszichiátria", ward = "Kórterem", operating_theatre = "Műtő", pharmacy = "Gyógyszertár", cardiogram = "Kardiogramm", scanner = "Szkenner", ultrascan = "Ultrahang", blood_machine = "Vérgép", x_ray = "Röntgen", inflation = "Pumpa", dna_fixer = "DNS-klinika", hair_restoration = "Hajklinika", tongue_clinic = "Nyelvklinika", fracture_clinic = "Gipszelő", training_room = "Tréning szoba", electrolysis = "Elektrolizáló", jelly_vat = "Kocsonyakád", staffroom = "Személyzeti szoba", -- rehabilitation = "Rehabiliteringsrom", -- unused general_diag = "�ltalános vizsgáló", research_room = "Kutatószoba", toilets = "WC", decontamination = "Fertőtlenítő", } -- Drug companies drug_companies = { "Gyógyi Neked Kft.", "Meggyógyít Zrt.", "Tabi Mámor Kft.", "Jótabletta Zrt.", "Mindenre Jó Zrt.", } -- Build rooms build_room_window = { pick_department = "Osztály kiválasztása", pick_room_type = "Típus kiválasztása", cost = "�r: ", } -- Build objects buy_objects_window = { choose_items = "Elemek kiválasztása", price = "�r:", total = "Összesen:", } -- Research research = { categories = { cure = "Gyógymód", diagnosis = "Diagnózis", drugs = "Gyógyszerek", improvements = "Fejlesztések", specialisation = "Specializáció", }, funds_allocation = "Tőke elosztás", allocated_amount = "Elosztott összeg", } -- Research policy tooltip tooltip.research_policy = { research_progress = "Előrehaladottság ebben a felfedezés-kategóriában: %1%/%2%", no_research = "Nem végzel kutatást ebben a kategóriában", } -- Policy screen policy = { header = "Kórházi szabályzat", diag_procedure = "Diagnózis állása", diag_termination = "Diagnózis lezárása", staff_rest = "Személyzet pihenőre küldése", staff_leave_rooms = "Személyzet szobákból való kiküldése", sliders = { guess = "Gyógykezelés megtippelése", -- belongs to diag_procedure send_home = "Hazaküldés", -- also belongs to diag_procedure stop = "Kezelés leállítása", -- belongs to diag_termination staff_room = "Személyzeti szobába küldés", -- belongs to staff_rest } } -- Rooms room_classes = { -- S[19][2] -- "corridors" - unused for now diagnosis = "Diagnózis", treatment = "Kezelés", clinics = "Klinikák", facilities = "Egyéb létesítmények", } -- Insurance companies insurance_companies = { out_of_business = "Üzemen kívül", "Hattyúlevél Kft.", "Norfolk Hagyma Bt.", "Darázsheg Kft.", "Úszó Hólyag Zrt.", "Barát Béla Kft.", "DagiDezső Holdings", "Lusta Leon Vállalat", "Ping és Pong Kft.", "Vidám Biztosító Vállalat", "Szakszervezeti Biztosító", "Kölcsönös Előny Zrt.", } -- Menu root -- Keep 2 spaces as prefix and suffix menu = { file = " Fájl ", options = " Beállítások ", display = " Nézet ", charts = " Grafikonok ", debug = " Hibakeresés ", } -- Menu File menu_file = { load = " (%1%) Betöltés ", save = " (%1%) Mentés ", restart = " (%1%) Újrakezdés ", quit = " (%1%) Kilépés ", } menu_file_load = { [1] = " Mentés 1 ", [2] = " Mentés 2 ", [3] = " Mentés 3 ", [4] = " Mentés 4 ", [5] = " Mentés 5 ", [6] = " Mentés 6 ", [7] = " Mentés 7 ", [8] = " Mentés 8 ", } menu_file_save = { [1] = " Mentés 1 ", [2] = " Mentés 2 ", [3] = " Mentés 3 ", [4] = " Mentés 4 ", [5] = " Mentés 5 ", [6] = " Mentés 6 ", [7] = " Mentés 7 ", [8] = " Mentés 8 ", } -- Menu Options menu_options = { sound = " (%1%) Hang ", announcements = " (%1%) Hangosbemondó ", music = " (%1%) Zene ", sound_vol = " Hangerő ", announcements_vol = " Hangosbemondó hangereje ", music_vol = " Zene hangereje ", autosave = " Automatikus mentés ", game_speed = " Játék sebessége ", jukebox = " (%1%) Zenegép ", } -- Menu Options Volume menu_options_volume = { [10] = " 10% ", [20] = " 20% ", [30] = " 30% ", [40] = " 40% ", [50] = " 50% ", [60] = " 60% ", [70] = " 70% ", [80] = " 80% ", [90] = " 90% ", [100] = " 100% ", } -- Menu Options Game Speed menu_options_game_speed = { slowest = " (%1%) Leglassabb ", slower = " (%1%) Lassú ", normal = " (%1%) Normál ", max_speed = " (%1%) Maximum sebesség ", and_then_some_more = " (%1%) Még egy kicsivel több ", } -- Menu Display menu_display = { high_res = " Jó felbontás ", mcga_lo_res = " MCGA alacsony felbontás ", shadows = " �rnyékok ", } -- Menu Charts menu_charts = { statement = " (%1%) Egyenleg ", casebook = " (%1%) Esetek ", policy = " (%1%) Szabályzat ", research = " (%1%) Kutatás ", graphs = " (%1%) Grafikonok ", staff_listing = " (%1%) Személyzet ", bank_manager = " (%1%) Bankár ", status = " (%1%) �llapot ", briefing = " Eligazítás ", } -- Menu Debug menu_debug = { object_cells = " Objektumcellák ", entry_cells = " Bejáratcellák ", keep_clear_cells = " Szabadon hagyandó cellák ", nav_bits = " Navigációs bitek ", remove_walls = " Falak eltávolítása ", remove_objects = " Objektumok eltávolítása ", display_pager = " Személyhívó megjelenítése ", mapwho_checking = " MAPWHO ellenőrzés ", plant_pagers = " PLANT PAGERS ", porter_pagers = " PORTER PAGERS ", pixbuf_cells = " PIXBUff CELLS ", enter_nav_debug = " NAV hibakereső beütése ", show_nav_cells = " Navigációs cellák mutatása ", machine_pagers = " Gép PAGEREK ", display_room_status = " Szoba állapotának mutatása ", display_big_cells = " Nagy cellák mutatása ", show_help_hotspot = " Segédpontok mutatása ", win_game_anim = " Játék megnyerésének animációja ", win_level_anim = " Pálya megnyerésének animációja ", lose_game_anim = { [1] = " Játék elveszítése animáció 1 ", [2] = " Játék elveszítése animáció 2 ", [3] = " Játék elveszítése animáció 3 ", [4] = " Játék elveszítése animáció 4 ", [5] = " Játék elveszítése animáció 5 ", [6] = " Játék elveszítése animáció 6 ", [7] = " Játék elveszítése animáció 7 ", }, } debug_patient_window = { caption = "Próbabeteg", } -- High score screen high_score = { pos = "Poz", player = "Játékos", score = "Eredmény", best_scores = "Legjobbak csarnoka", worst_scores = "Szégyenfal", killed = "Megölt", -- is this used? categories = { money = "Pénz", salary = "Kereset", clean = "Tiszta", cures = "Gyógyulás", deaths = "Haláleset", cure_death_ratio = "Gyógyulás és halálesetek aránya", patient_happiness = "Betegek elégedettsége", staff_happiness = "Személyzet elégedettsége", staff_number = "Személyzet száma", visitors = "Látogatók", total_value = "Teljes érték", }, } -- Casebook screen casebook = { reputation = "népszerűség", treatment_charge = "gyógyítás díja", earned_money = "összegyüjtött pénz", cured = "meggyógyítottak", deaths = "halálesetek sázma", sent_home = "hazaküldöttek száma", research = "kutatás", cure = "gyógymód", cure_desc = { build_room = "Javaslom építs ilyen szobát: %s", -- %s (room name) build_ward = "Még mindíg szükség van egy kórteremre.", hire_doctors = "Szükség van még orvosra.", hire_surgeons = "Vegyél fel sebészt.", hire_psychiatrists = "Vegyél fel pszichológust.", hire_nurses = "Vegyél fel nővért.", no_cure_known = "Nincs ismert gyógymód.", cure_known = "Van gyógymód.", improve_cure = "Gyógymód fejlesztése", }, } -- Tooltips tooltip = { -- Build room window build_room_window = { room_classes = { diagnosis = "Diagnózis", treatment = "Kezelés", clinic = "Klinikák", facilities = "Egyéb létesítmények", }, cost = "�r", close = "Bezárás", }, -- Toolbar toolbar = { bank_button = "Bal gombbal a bankmenedzser-ablakod nyitod meg, jobbal pedig a banki kimutatást", balance = "Egyenleged", reputation = "Hírneved: ", -- NB: no %d! Append " ([reputation])". date = "A dátum", rooms = "Szobák építése", objects = "Folyosók díszítése", edit = "Szobák/tárgyak szerkesztése", hire = "Alkalmazottak szerződtetése", staff_list = "Személyzetmenedzsment", town_map = "Várostérkép", casebook = "Esetnapló", research = "Kutatás", status = "�llapot", charts = "Grafikonok", policy = "Házirend", }, -- Hire staff window hire_staff_window = { doctors = "Az elérhető doktorok áttekintése", nurses = "Az elérhető nővérek áttekintése", handymen = "Az elérhető ezermesterek áttekintése", receptionists = "Az elérhető recepciósok áttekintése", prev_person = "Előző személy", next_person = "Következő személy", hire = "A személy felvétele", cancel = "Mégsem", doctor_seniority = "A doktor fokozata (rezidens, doktor, konzuláns)", staff_ability = "A jelentkező képességei", salary = "Fizetés", qualifications = "A doktor további végzettségei", surgeon = "Sebész", psychiatrist = "Pszichológus", researcher = "Kutató", }, -- Buy objects window buy_objects_window = { price = "A tárgy ára", total_value = "A megrendelt tárgyak összára", confirm = "Tárgy(ak) megvásárlása", cancel = "Mégsem", increase = "Eggyel több tárgy vásárlása ebből", decrease = "Eggyel kevesebb tárgy vásárlása ebből", }, -- Staff list staff_list = { doctors = "Az alkalmazott doktorok listájának megjelenítése", nurses = "Az alkalmazott nővérek listájának megjelenítése", handymen = "Az alkalmazott ezermesterek listájának megjelenítése", receptionists = "Az alkalmazott recepciósok listájának megjelenítése", happiness = "A kiválasztott alkalmazottak boldogsága", tiredness = "A kiválasztott alkalmazottak fáradtsága", ability = "A kiválasztott alkalmazottak képessége", salary = "Az alkalmazott jelenlegi fizetése", happiness_2 = "Az alkalmazott morálja", tiredness_2 = "Az alkalmazottak fáradtsága", ability_2 = "Az alkalmazott képessége", prev_person = "Következő oldal", next_person = "Előző oldal", bonus = "10 suzázalékos bónusz fizetése ennek az alkalmazottnak", sack = "Az alkalmazott kirúgása", pay_rise = "Az alkalmazott fizetésének megemelése 10 százalékkal", close = "Kilépés és visszatérés a játékba", doctor_seniority = "A doktor fokozata", detail = "Részleteknek odafigyelés", view_staff = "Személyre közelítés", surgeon = "Képzett sebész", psychiatrist = "Képzett pszichológus", researcher = "Képzett kutató", surgeon_train = "Sebésszé képzés mértéke: %d%%", -- %d (percentage trained) psychiatrist_train = "Pszichológussá képzés mértéke: %d%%", -- %d (percentage trained) researcher_train = "Kutatóvá képzés mértéke: %d%%", -- %d (percentage trained) skills = "További készségek", }, -- Queue window queue_window = { num_in_queue = "A sor hossza", num_expected = "A recepciós szerint ennyien fognak nemsokára a sorba állni", num_entered = "Ennyian jártak a szobában", max_queue_size = "A sor maximális mérete", dec_queue_size = "Sor maximális méretének csökkentése", inc_queue_size = "Sor maximális méretének növelése", front_of_queue = "Húzz egy beteget ehhez az ikonhoz, hogy a sor elejére állítsd", end_of_queue = "Húzz egy beteget ehhez az ikonhoz, hogy a sor végére állítsd", close = "Bezárás", patient = "Húzd a betegeket a soron belül bal gombbal, küldd haza vagy a rivális kórházak valamelyikébe jobb gombbal.", patient_dropdown = { reception = "Beteg küldése a recepcióhoz", send_home = "Beteg hazaküldése", hospital_1 = "Beteg átirányítása egy másik kórházba", hospital_2 = "Beteg átirányítása egy másik kórházba", hospital_3 = "Beteg átirányítása egy másik kórházba", }, }, -- Main menu main_menu = { new_game = "Új kampány kezdése", load_game = "Korábbi játék betöltése", continue = "Korábbi játék folytatása", network = "Hálózati játék kezdése", quit = "Kilépés", load_menu = { load_slot = " Mentés [slotnumber] ", -- NB: no %d! Append " [slotnumber]". empty_slot = " Üres ", }, }, -- Window general window_general = { cancel = "Mégse", confirm = "Megerősít", }, -- Patient window patient_window = { close = "Ablak bezárása", graph = "Kattints, hogy átválts a beteg egészség-grafikonja és kezelésnaplója között", happiness = "A beteg boldogsága", thirst = "A beteg szomjúsága", warmth = "A beteg melegség érzete", casebook = "Részletek megjelenítése a személy betegségéről", send_home = "A beteg elbocsátása ebből a kórházból", center_view = "A kamera betegre rögzítése", abort_diagnosis = "A beteg azonnali kezelése, a diagnózis befejezése helyett", queue = "Részletek megjelenítése a beteg előtt álló sorról", }, -- window staff_window = { name = "Alkalmazott neve", close = "Ablak bezárása", face = "A személy arca - kattints, hogy megnyitsd a kezelőablakot", happiness = "Boldogság", tiredness = "Fáradtság", ability = "Képesség", doctor_seniority = "Doktor fokozata (Rezidens, Doktor, Konzuláns)", skills = "Képességek", surgeon = "Sebész", psychiatrist = "Pszichológus", researcher = "Kutató", salary = "Fizetés", center_view = "Kattints bal gombbal a közelítéshez, jobb gombbal pedig az alkalmazottak közötti lapozáshoz.", sack = "Kirúgás", pick_up = "Felkapás", }, -- Machine window machine_window = { name = "Név", close = "Ablak bezárása", times_used = "Ennyiszer volt használatban a gép", status = "A gép állapota", repair = "Ezermester hívása, hogy megjavítsa a gépet", replace = "Gép kicserélése", }, -- Handyman window -- Spparently handymen have their own set of strings (partly) containing "handyman". -- We could just get rid of this category and include the three prios into staff_window. handyman_window = { name = "Ezermester neve", -- contains "handyman" close = "Ablak bezárása", face = "Ezermester arca", -- contains "handyman" happiness = "Boldogság", tiredness = "Fáradtság", ability = "Képesség", prio_litter = "Szemétszedés prioritásának növelése ennél az ezermesternél", -- contains "handyman" prio_plants = "Növényápolás prioritásának növelése ennél az ezermesternél", -- contains "handyman" prio_machines = "Gépszerelés prioritásának növelése ennél az ezermesternél", -- contains "handyman" salary = "Fizetés", center_view = "Ugrás az ezermesterre", -- contains "handyman" sack = "Kirúgás", pick_up = "Felkapás", }, -- Place objects window place_objects_window = { cancel = "Mégsem", buy_sell = "Tárgyak vásárlása/eladása", pick_up = "Tárgy felemelése", confirm = "Megerősít", }, -- Casebook casebook = { up = "Felfelé gördítés", down = "Lefelé gördítés", close = "Gyógyszeres könyv bezárása", reputation = "A kezelés népszerűsége", treatment_charge = "Kezelés költsége", earned_money = "A kezelésből eddig befolyt bevétel", cured = "Sikeres kezelések száma", deaths = "Halálesetet előidéző kezelések száma", sent_home = "Elutasított betegek száma", decrease = "�r csökkentése", increase = "�r növelése", research = "Kattints, hogy a specializációkra szánt kutatási pénzt erre a kezelésre használd", cure_type = { drug = "A kezeléshez gyógyszerre van szükség", drug_percentage = "A kezeléshez gyógyszerre van szükség - a tiéd %d%% hatásos", -- %d (effectiveness percentage) psychiatrist = "Pszichológus végzi ezt a kezelést", surgery = "Sebész végzi ezt a kezelést", machine = "Ehhez a kezeléshez egy gépre van szükség", unknown = "Egyelőre nem tudod, hogy miként kell kezelni ezt a betegséget", }, cure_requirement = { possible = "Kezelni tudod ezt a betegséget", research_machine = "Fel kell találnod pár gépet, hogy ezt a betegséget kezelni tudd", build_room = "Egy szoba megépítésére van szükség, hogy ezt a betegséget kezelni tudd", -- NB: no %s! hire_surgeons = "Két sebészt kell alkalmaznod, hogy operációkat tudj végrehajtani", hire_surgeon = "Egy második sebészre is szükséged van, hogy operációkat tudj végrehajtani", hire_staff = "Az alábbi személyzetre van szükséged ehhez a kezeléshez: %s", -- %s (staff type) hire_staff_old = "Az alábbi személyzetre van szükséged ehhez a kezeléshez: %s", build_ward = "Ehhez a kezeléshez egy kórteremre van szükséged", ward_hire_nurse = "Egy kórteremben dolgozó nővérre van szükséged ennek a betegségnek a kezeléséhez", not_possible = "Még nem tudod kezelni ezt a betegséget", }, }, -- Statement statement = { close = "Bezárás", }, -- Research research = { close = "Kutatás ablak bezárása", cure_dec = "Kutatás mértékének csökkentése", diagnosis_dec = "Berendezéskutatás mértékének csökkentése", drugs_dec = "Gyógyszerkutatás mértékének csökkentése", improvements_dec = "Fejlesztéskutatás mértékének csökkentése ", specialisation_dec = "Specializációs kutatás mértékének csökkentése", cure_inc = "Kutatás mértékéne növelése", diagnosis_inc = "Berendezéskutatás mértékének növelése", drugs_inc = "Gyógyszerkutatás mértékének növelése", improvements_inc = "Fejlesztéskutatás mértékének növelése", specialisation_inc = "Specializációs kutatás mértékének növelése", allocated_amount = "A büdzséből erre szánt összeg", }, -- Graphs graphs = { close = "Grafikonok ablak bezárása", scale = "Skála", money_in = "Bevétel bekapcsolása/kikapcsolása", money_out = "Kiadás bekapcsolása/kikapcsolása", wages = "Fizetések bekapcsolása/kikapcsolása", balance = "Banki egyenleg bekapcsolása/kikapcsolása", visitors = "Látogatók számának bekapcsolása/kikapcsolása", cures = "Sikeres kezelések számának bekapcsolása/kikapcsolása", deaths = "Halálozások számának bekapcsolása/kikapcsolása", reputation = "Hírnév bekapcsolása/kikapcsolása", }, -- Town map town_map = { people = "Emberek bekapcsolása/kikapcsolása", plants = "Növények bekapcsolása/kikapcsolása", fire_extinguishers = "Poroltók bekapcsolása/kikapcsolása", objects = "Táryak bekapcsolása/kikapcsolása", radiators = "Radiátorok bekapcsolása/kikapcsolása", heat_level = "Hő bekapcsolása/kikapcsolása", heat_inc = "Hőmérséklet növelése", heat_dec = "Hőmérséklet csökkentése", heating_bill = "Gázszámla", balance = "Egyenleg", close = "Térkép bezárása", }, -- Jukebox. jukebox = { current_title = "Zenegép", close = "Zenegép bezárása", play = "Zenegép elindítása", rewind = "Visszatekerés", fast_forward = "Előretekerés", stop = "Zenedoboz megállítása", loop = "Lejtászás végtelenítése", }, -- Bank Manager bank_manager = { hospital_value = "A kórház pillanatnyi értéke", balance = "Bankegyenleged", current_loan = "Kölcsöneid jelenlegi mértéke", repay_5000 = "$5000 visszafizetése a banknak", borrow_5000 = "$5000 hitel felvétele", interest_payment = "Havi kamat", inflation_rate = "Éves inflációs ráta", interest_rate = "Éves kamatráta", close = "Ablak bezárása", insurance_owed = "Ennyivel tartozik neked %s", -- %s (name of debitor) show_graph = "%s várható kifizetésének mértéke", -- %s (name of debitor) graph = "%s várható kifizetéseinek grafikonja", -- %s (name of debitor) graph_return = "Visszatérés az előző nézetre", }, -- Status status = { percentage_cured = "A betegek %d% -át kell meggyógyítanod. Egyelőre %d% -ot gyógyítottál meg", thirst = "A betegek szomjúsága összesen", close = "Az áttekintő ablak bezárása", population_chart = "A diagramm, ami a azt mutatja, hogy a helyi lakosság mekkora részét gyógyította meg egy-egy kórház", win_progress_own = "A nyeréshez szükséges kritérium teljesítettségének mutatása", reputation = "A népszerűségednek legalább ennyinek kell lennie: %d. Jelenleg ennyi: %d", population = "A helyi lakosság legalább %d%% -ának kell a te kórházadba jönnie", warmth = "A betegek melegség érzete összesen", percentage_killed = "A cél az, hogy a betegeid legfeljebb %d%% -át öld meg. Eddig %d%% -ukat ölted meg", balance = "A banki egyenlegednek legalább ennyinek kell lennie: %d. Jelenleg ennyi: %d", value = "A kórházad értékének legalább ennyinek kell lennie: $%d. Jelenleg ennyi: $%d", win_progress_other = "%s nyerési előremenetelének mutatása", -- %s (name of competitor) num_cured = "Legalább %d beteget kell meggyógyítanod. Eddig ennyit gyógyítottál meg: %d", happiness = "A kórházad betegeinek boldogsága", }, -- Policy policy = { close = "Ablak bezárása", staff_leave = "Kattintással utasíthatod a jelenleg nem elfoglalt orvosaidat a többiek megsegítésére", staff_stay = "Kattintással maradásra utasítod az adott orvost abban a szobában, ahová helyezted", diag_procedure = "Ha egy orvos diagnózisa kevésbé biztos, mint a HAZAKÜLDÉS korlátja, a beteget hazaküldik. Ha a diagnózis biztosabb, mint a KEZELÉS MEGTIPPELÉSE mérték, a beteget kezelni fogják", diag_termination = "Egy beteg diagnosztizálása addig tart, ameddig a doktorok bizonyossága el nem éri a FOLYAMAT LE�LL�T�SA szintet vagy pedig meg nem próbálnak minden lehetséges diagnósztizáló eszközt", staff_rest = "Azt mutatja, hogy mennyire lehet fáradt a személyzet, mielőtt a személyzeti szobába menne", }, -- Pay rise window pay_rise_window = { accept = "Beleegyezés a fizetésemelésbe", decline = "Nem emeled a fizetést - inkább kirúgod", }, -- Watch watch = { hospital_opening = "Építési idő: ennyi időd maradt a kórházad nyitásáig. Kattintással azonnal megnyithatod a kórházat.", emergency = "Vészhelyzet: azt mutatja, hogy mennyi időd van az összes veszélyeztetett beteged meggyógyítására", epidemic = "Járvány: ennyi időd maradt felszámolni a járványt. Ha az időd lejárt VAGY egy fertőző beteg elhagyja a kórházadat, egy tisztiorvos jön látogatóba. A gombbal az beoltás üzemmódot tudod be illetve kikapcsolni. Kattints egy betegre, hogy beoltasd egy nővérrel.", }, -- Rooms rooms = { gps_office = "A betegek az orvosi irodában konzultálnak orvosaikkal és kapják meg leleteik eredményét", psychiatry = "Az pszichiátra meggyógyítja az őrülteket és segít más betegséket diagnosztizálásában, azonban a működtetéséhez szükséged van egy pszichológus végzettségű orvosra", ward = "A kórtermek mind a diagnosztizálásra, mind pedig a kezelésre alkalmasak. Ide kerülnek a betegek megfigyelésre és felépülésre egyaránt, melyhez egy nővérre van szükség", operating_theatre = "A műtőnek a működéshez két szebész végzettségű orvosra van szüksége", pharmacy = "Egy nővér osztja ki a megfelelő gyógyszereket a betegeknek", cardiogram = "Egy doktor kezeli a kardiogrammot a diagnózis felállításához", scanner = "Egy doktor kezeli a szkennert a diagnózis felállításához", ultrascan = "Egy doktor kezeli az ultrahangot a diagnózis felállításához", blood_machine = "Egy doktor kezeli a vérgépet a diagnózis felállításához", x_ray = "Egy doktor kezeli a röntgent a diagnózis felállításához", inflation = "Egy doktor kezeli a fejfúvót a duzzadt fejű betegek kezeléséhez", dna_fixer = "Egy doktor kezeli a DNS-javítót az idegen DNS-es betegek kezeléséhez", hair_restoration = "Egy doktor kezeli a hajnövesztőt a kopasz betegek kezeléséhez ", tongue_clinic = "Egy doktor kezeli a nyelvmetszőt a petyhüdt nyelvű betegek kezeléséhez", fracture_clinic = "Egy nővér üzemelteti a gipszklinikát a törött csontok helyreállításához", training_room = "A tréning szoba doktorok továbbképzésére alkalmas, ha egy konzuláns fokozatú doktor üzemelteti", electrolysis = "Egy doktor kezeli az elektrolizálót a hajitiszes betegek kezeléséhez ", jelly_vat = "Egy doktor kezeli a zselékádat a kocsonyásodott betegek gyógyításához ", staffroom = "Doktorok, nővérek és ezermesterek pihennek a személyzeti szobában, hogy kiheverjék fáradalmaikat", -- rehabilitation = S[33][27], -- unused general_diag = "Egy doktor tudja ellátni az általános kivizsgálót az elsődleges diagnózis felállításához. Olcsó és sokszor nagyon hatásos", research_room = "Kutató végzettségű orvosok tudnak kifejleszteni új gépeket és gyógyszereket a kutatószobában", toilets = "Építs WC-t annak érdekében, hogy a betegeid ne csináljanak nagy felfordulást a kórházadban!", decontamination = "Egy doktor kezeli a fertőtlenítő készüléket a radioaktív betegek gyógyításához", }, -- Objects objects = { -- NB: most objects do not have a tooltip because they're not (extra-)buyable desk = "�róasztal: Nélkülönözhetetlen az orvosok számára. Erre teszik a számítógépüket.", cabinet = "Szekrény: Kórlapokat, jegyzeteket és kutatási anyagokat tartalmaz.", door = "Ajtó: az emberek gyakran nyitják és csukják ezeket.", bench = "Pad: helyet teremt a várakozó betegeknek, kényelmesebbé téve ezzel a múló perceket.", table1 = "Asztal (eltávolított): magazinokat tartalmaz, hogy a betegeknek gyorsabban teljes az idő.", chair = "Szék: ide ül a beteg, hogy elmondja a bajait.", drinks_machine = "Italautomata: Csökkenti a betegek szomját és egy kis bevételt hoz neked.", bed = "�gy: az igazán beteg emberek ezen fekszenek.", inflator = "Pumpa: .", }, } -- Confirmation confirmation = { quit = "Tényleg ki szeretnél lépni a játékból? ", return_to_blueprint = "Biztosan vissza szeretnél lépni tervrajz módba?", replace_machine = "Biztosan ki szeretnéd cserélni %s-t ennyiért $%d?", -- %s (machine name) %d (price) overwrite_save = "Egy állás már létezik ezen a helyen. Biztos hogy felül akarod írni?", delete_room = "Biztosan le akarod bontani ezt a szobát?", sack_staff = "Biztos hogy ki akarod rúgni ezt a dolgozót?", restart_level = "Biztos hogy újra akarod kezdeni ezt a pályát?", } -- Miscellangelous -- Category of strings that fit nowhere else or we are not sure where they belong. -- If you think a string of these fits somewhere else, please move it there. -- Don't forget to change all references in the code and other language files. misc = { grade_adverb = { mildly = "lágyan", moderately = "közepesen", extremely = "extrémen", }, done = "Kész", pause = "Megállít", send_message = "Üzenet küldése %d játékosnak", -- %d (player number) send_message_all = "Üzenet küldése az összes játékosnak", save_success = "Mentés sikeres", save_failed = "HIBA: Mentés sikertelen", hospital_open = "Korház megnyitott", out_of_sync = "A játék kiesett a szinkronból", load_failed = "Nem tudtam betölteni az állást", low_res = "Alacsony felbontás.", balance = "Egyenleg:", mouse = "Egér", force = "Kényszerít", } -- Original credits (untranslated) original_credits = { [1] = " ", [2] = " ", [3] = " ", [4] = " ", [5] = " ", [6] = " ", [7] = " ", [8] = " ", [9] = " ", [10] = " ", [11] = " ", [12] = ":Designed and Created by", [13] = ":Bullfrog Productions", [14] = " ", [15] = ":Pluto Development Team", [16] = ",", [17] = "Mark Webley", [18] = "Gary Carr", [19] = "Matt Chilton", [20] = "Matt Sullivan", [21] = "Jo Rider", [22] = "Rajan Tande", [23] = "Wayne Imlach", [24] = "Andy Bass", [25] = "Jon Rennie", [26] = "Adam Coglan", [27] = "Natalie White", [28] = " ", [29] = " ", [30] = " ", [31] = ":Programming", [32] = ",", [33] = "Mark Webley", [34] = "Matt Chilton", [35] = "Matt Sullivan", [36] = "Rajan Tande", [37] = " ", [38] = " ", [39] = " ", [40] = ":Art", [41] = ",", [42] = "Gary Carr", [43] = "Jo Rider", [44] = "Andy Bass", [45] = "Adam Coglan", [46] = " ", [47] = " ", [48] = " ", [49] = ":Additional Programming", [50] = ",", [51] = "Ben Deane", [52] = "Gary Morgan", [53] = "Jonty Barnes", [54] = " ", [55] = " ", [56] = " ", [57] = ":Additional Art", [58] = ",", [59] = "Eoin Rogan", [60] = "George Svarovsky", [61] = "Saurev Sarkar", [62] = "Jason Brown", [63] = "John Kershaw", [64] = "Dee Lee", [65] = " ", [66] = " ", [67] = " ", [68] = ":Intro Sequence", [69] = ",", [70] = "Stuart Black", [71] = " ", [72] = " ", [73] = " ", [74] = ":Music and Sound Effects", [75] = ",", [76] = "Russell Shaw", [77] = "Adrian Moore", [78] = " ", [79] = " ", [80] = " ", [81] = ":Additional Music", [82] = ",", [83] = "Jeremy Longley", [84] = "Andy Wood", [85] = " ", [86] = " ", [87] = " ", [88] = ":Announcer Voiceover", [89] = ",", [90] = "Rebecca Green", [91] = " ", [92] = " ", [93] = " ", [94] = ":Level Design", [95] = ",", [96] = "Wayne Imlach", [97] = "Natalie White", [98] = "Steven Jarrett", [99] = "Shin Kanaoya", [100] = " ", [101] = " ", [102] = " ", [103] = ":Scripting", [104] = ",", [105] = "James Leach", [106] = "Sean Masterson", [107] = "Neil Cook", [108] = " ", [109] = " ", [110] = " ", [111] = ":R&D", [112] = " ", [113] = ":Graphics Engine", [114] = ",", [115] = "Andy Cakebread", [116] = "Richard Reed", [117] = " ", [118] = " ", [119] = " ", [120] = ":R&D Support", [121] = ",", [122] = "Glenn Corpes", [123] = "Martin Bell", [124] = "Ian Shaw", [125] = "Jan Svarovsky", [126] = " ", [127] = " ", [128] = " ", [129] = ":Library and Tools", [130] = " ", [131] = "Dos and Win 95 Library", [132] = ",", [133] = "Mark Huntley", [134] = "Alex Peters", [135] = "Rik Heywood", [136] = " ", [137] = " ", [138] = " ", [139] = ":Network Library", [140] = ",", [141] = "Ian Shippen", [142] = "Mark Lamport", [143] = " ", [144] = " ", [145] = " ", [146] = ":Sound Library", [147] = ",", [148] = "Russell Shaw", [149] = "Tony Cox", [150] = " ", [151] = " ", [152] = " ", [153] = ":Installer Programming", [154] = ",", [155] = "Andy Nuttall", [156] = "Tony Cox", [157] = "Andy Cakebread", [158] = " ", [159] = " ", [160] = " ", [161] = ":Moral Support", [162] = ",", [163] = "Peter Molyneux", [164] = " ", [165] = " ", [166] = " ", [167] = ":Testing Manager", [168] = ",", [169] = "Andy Robson", [170] = " ", [171] = " ", [172] = " ", [173] = ":Lead Testers", [174] = ",", [175] = "Wayne Imlach", [176] = "Jon Rennie", [177] = " ", [178] = " ", [179] = " ", [180] = ":Play Testers", [181] = ",", [182] = "Jeff Brutus", [183] = "Wayne Frost", [184] = "Steven Lawrie", [185] = "Tristan Paramor", [186] = "Nathan Smethurst", [187] = " ", [188] = "Ryan Corkery", [189] = "Simon Doherty", [190] = "James Dormer", [191] = "Martin Gregory", [192] = "Ben Lawley", [193] = "Joel Lewis", [194] = "David Lowe", [195] = "Robert Monczak", [196] = "Dominic Mortoza", [197] = "Karl O'Keeffe", [198] = "Michael Singletary", [199] = "Andrew Skipper", [200] = "Stuart Stephen", [201] = "David Wallington", [202] = " ", [203] = "And all our other Work Experience Play Testers", [204] = " ", [205] = " ", [206] = " ", [207] = ":Technical Support", [208] = ",", [209] = "Kevin Donkin", [210] = "Mike Burnham", [211] = "Simon Handby", [212] = " ", [213] = " ", [214] = " ", [215] = ":Marketing", [216] = ",", [217] = "Pete Murphy", [218] = "Sean Ratcliffe", [219] = " ", [220] = " ", [221] = " ", [222] = ":With thanks to:", [223] = ",", [224] = "Tamara Burke", [225] = "Annabel Roose", [226] = "Chris Morgan", [227] = "Pete Larsen", [228] = " ", [229] = " ", [230] = " ", [231] = ":PR", [232] = ",", [233] = "Cathy Campos", [234] = " ", [235] = " ", [236] = " ", [237] = ":Documentation", [238] = ",", [239] = "Mark Casey", [240] = "Richard Johnston", [241] = "James Lenoel", [242] = "Jon Rennie", [243] = " ", [244] = " ", [245] = " ", [246] = ":Documentation & Packaging Design", [247] = ",", [248] = "Caroline Arthur", [249] = "James Nolan", [250] = " ", [251] = " ", [252] = " ", [253] = ":Localisation Project Manager", [254] = ",", [255] = "Carol Aggett", [256] = " ", [257] = " ", [258] = " ", [259] = ":Localisation", [260] = ",", [261] = "Sandra Picaper", [262] = "Sonia 'Sam' Yazmadjian", [263] = " ", [264] = "Bettina Klos", [265] = "Alexa Kortsch", [266] = "Bianca Normann", [267] = " ", [268] = "C.T.O. S.p.A. Zola Predosa (BO)", [269] = "Gian Maria Battistini", [270] = "Maria Ziino", [271] = "Gabriele Vegetti", [272] = " ", [273] = "Elena Ruiz de Velasco", [274] = "Julio Valladares", [275] = "Ricardo Martínez", [276] = " ", [277] = "Kia Collin", [278] = "CBG Consult", [279] = "Ulf Thor", [280] = " ", [281] = " ", [282] = " ", [283] = ":Production", [284] = ",", [285] = "Rachel Holman", [286] = " ", [287] = " ", [288] = " ", [289] = ":Producer", [290] = ",", [291] = "Mark Webley", [292] = " ", [293] = " ", [294] = " ", [295] = ":Associate Producer", [296] = ",", [297] = "Andy Nuttall", [298] = " ", [299] = " ", [300] = " ", [301] = ":Operations", [302] = ",", [303] = "Steve Fitton", [304] = " ", [305] = " ", [306] = " ", [307] = ":Company Administration", [308] = ",", [309] = "Audrey Adams", [310] = "Annette Dabb", [311] = "Emma Gibbs", [312] = "Lucia Gobbo", [313] = "Jo Goodwin", [314] = "Sian Jones", [315] = "Kathy McEntee", [316] = "Louise Ratcliffe", [317] = " ", [318] = " ", [319] = " ", [320] = ":Company Management", [321] = ",", [322] = "Les Edgar", [323] = "Peter Molyneux", [324] = "David Byrne", [325] = " ", [326] = " ", [327] = ":All at Bullfrog Productions", [328] = " ", [329] = " ", [330] = " ", [331] = ":Special Thanks to", [332] = ",", [333] = "Everyone at Frimley Park Hospital", [334] = " ", [335] = ":Especially", [336] = ",", [337] = "Beverley Cannell", [338] = "Doug Carlisle", [339] = " ", [340] = " ", [341] = " ", [342] = ":Keep On Thinking", [343] = " ", [344] = " ", [345] = " ", [346] = " ", [347] = " ", [348] = " ", [349] = " ", [350] = " ", [351] = " ", [352] = " ", [353] = " ", [354] = " ", [355] = " ", [356] = " ", [357] = " ", [358] = " ", [359] = " ", [360] = " ", [361] = ".", } confirmation.maximum_screen_size = "Az általad beállított képernyőfelbontás magasabb mint 3000 X 2000. Van lehetőség ilyen felbontások beállítására, viszont ezekhez erősebb hardver szükségeltetik az akadozásmentes futtatáshoz. Biztosan folytatod?" confirmation.music_warning = "Mielőtt kiválaszthatnád az mp3-akat amelyek játék közben fognak szólni szükséged lesz az smpeg.dll nevű (vagy azzal egyenértékű) file-ra, különben nem lesz zene. Folytatod?" menu_options_wage_increase.deny = " MEGTAGAD" menu_options_wage_increase.grant = " ENGEDÉLYEZ" tooltip.audio_window.audio_button = "Minden hang ki/be kapcsolása" tooltip.audio_window.audio_toggle = "Ki vagy bekapcsol" tooltip.options_window.folder_button = "Könyvtár opciók" tooltip.options_window.customise_button = "További beállítások, hogy finomhangolhasd a játékélményt" tooltip.update_window.download = "Látogasd meg a letöltőoldalt, hogy megszerezhesd a CorsixTH legfrissebb verzióját" tooltip.update_window.ignore = "A frissítés kihagyása. Újra értesítést fogsz kapni róla, amikor legközelebb elindítod a CorsixTH-t" tooltip.folders_window.browse_font = "Válassz másik betűtípusfile-t ( jelenlegi hely: %1% )" tooltip.folders_window.screenshots_location = "Alaphelyzetben a kilopott képek a konfigurációs file-ok könyvtárába kerülnek. Amennyiben máshova szeretnéd menteni őket csak tallózd ki a számodra megfelelő célkönyvtárat." tooltip.folders_window.reset_to_default = "Elérési út alaphelyzetbe állítása ( %1% )" tooltip.folders_window.back = "Menü bezárása, és vissza a Beállításokhoz" tooltip.folders_window.music_location = "Válaszd ki az mp3 file-jaid elérési útját. A könyvtárt először létre kell hoznod, utána pedig ki kell választanod." tooltip.folders_window.font_location = "Szükség van egy olyan betűtípusfile elérési útjára, amely alkalmas a magyar nyelv betűit Unicode karakterek segítségével megjeleníteni. Amennyiben ezt elmulasztod nem leszel képes olyan nyelveket beállítani, amelyeknek szükségük van a játék eredeti nyelvében nem fellelhető karakterekre. Például: orosz és kínai" tooltip.folders_window.savegames_location = "Alaphelyzetben a játék mentéseit tartalmazó file-ok a konfigurációs file-ok könyvtárába kerülnek. Amennyiben máshova szeretnéd menteni őket csak tallózd ki a számodra megfelelő célkönyvtárat." tooltip.folders_window.browse_data = "Tallózd ki a Theme Hospital telepítési helyét (jelenlegi hely: %1%)" tooltip.folders_window.browse = "Tallózz elérési utat" tooltip.folders_window.browse_screenshots = "Válassz másik könyvtárat a kilopott képeidnek ( jelenlegi hely: %1% )" tooltip.folders_window.browse_music = "Válassz másik könyvtárat a zenéidnek ( jelenlegi hely: %1% )" tooltip.folders_window.no_font_specified = "Még nem adtál meg betűtípusfile elérési utat!" tooltip.folders_window.not_specified = "Még nem adtál meg könyvtár elérési utat!" tooltip.folders_window.browse_saves = "Válassz másik könyvtárat az elmentett játékállásaidnak ( jelenlegi hely: %1% )" tooltip.folders_window.default = "Alapértelmezett elérési út" tooltip.folders_window.data_location = "Az eredeti Theme Hospital telepítési helye (szükséges a CorsixTH futtatásához)" tooltip.customise_window.aliens = "Mivel nincsenek megfelelő animációink az idegen DNA-val rendelkező páciensek megjelenítésére, ezért ők csak vészhelyzetek esetén jelennek meg a kórházadban. Ha szeretnéd, hogy ne csak ilyen esetekben jöjjenek, akkor ezt kapcsold ki" tooltip.customise_window.average_contents = "Ha szeretnéd, hogy a játék megjegyezze milyen extra tárgyakkal szoktad a szobákat általában berendezni, akkor kapcsold be ezt" tooltip.customise_window.back = "Menü bezárása, és vissza a Beállításokhoz" tooltip.customise_window.movies = "Ezzel le tudod tiltani az összes átvezető videót" tooltip.customise_window.fractured_bones = "Mivel csak félkész animációink van a törött csontú női páciensek megjelenítésére, ezért ők nem jelennek meg a kórházadban. Ha mégis szeretnéd, hogy érkezzenek ilyen betegek is, akkor ezt kapcsold ki" tooltip.customise_window.volume = "Ha hangerő halkítása gomb használata megnyitja az esetleírásokat is, akkor ezt bekapcsolva átállíthatod az esetleírások gyorsbillentyű kombinációját Shift + C -re" tooltip.customise_window.intro = "A bevezető videó (intro) ki/be kapcsolása - az átvezető videóknak engedélyezve kell lenniük, ha szeretnéd ezt bekapcsolni" tooltip.customise_window.paused = "Az eredeti Theme Hospitalban a játékos csak a felső menüt használhatta ha a játék szüneteltetve volt. Ez az alapbeállítás a CorsixTH-ban is, de ha ezt bekapcsolod, akkor szüneteltetés alatt is elérsz minden menüt" update_window.caption = "Frissítés elérhető!" update_window.new_version = "Új verzió:" update_window.current_version = "Jelenlegi verzió:" update_window.download = "Ugrás a letöltőoldalra" update_window.ignore = "Kihagy és tovább a főmenühöz" errors.fractured_bones = "MEGJEGYZÉS: a törött csontú női páciens animációja nem tökéletes" errors.alien_dna = "MEGJEGYZÉS: nincsenek megfelelő animációink az idegen DNA-val rendelkező páciensek helyes megjelenítésére (például: leülés, ajtón kopogás, stb.), ezért amikor ezeket a cselekvéseket végzik olyankor átváltoznak normális kinézetűre, majd annak végeztével vissza. Az idegen DNA-val rendelkező páciensek csak akkor jelennek meg, ha a pálya file-jában ezt beállítottad" errors.load_quick_save = "Hiba történt: a gyorsmentés betöltése sikertelen volt, mivel nem állt rendelkezésre betölthető állás. Nincs ok az aggodalomra, ugyanis most létrehoztunk neked egyet!" folders_window.data_label = "TH adat" folders_window.music_location = "Válaszd ki a könyvtárat ahol a zenéidet tárolod" folders_window.music_label = "MP3-ak" folders_window.new_th_location = "Itt tudsz beállítani új Theme Hospital telepítési könyvtárat. Mihelyst kiválasztod a játék újra fog indulni." folders_window.caption = "Könyvtár elérési utak" folders_window.screenshots_label = "Kilopott képek" folders_window.font_label = "Betűtípus" folders_window.savegames_label = "Játékállások" folders_window.back = "Vissza" folders_window.savegames_location = "Válaszd ki a könyvtárat ahová a játékállásaid kerüljenek" folders_window.screenshots_location = "Válaszd ki a könyvtárat ahová a kilopott képeid kerüljenek" customise_window.average_contents = "�tlagos tartalmak" customise_window.option_on = "Be" customise_window.paused = "Építés szüneteltetés közben" customise_window.option_off = "Ki" customise_window.intro = "Bevezető videó lejátszása" customise_window.caption = "Egyéni beállítások" customise_window.back = "Vissza" customise_window.movies = "�ltalános átvezető videó vezérlő" customise_window.volume = "Halkítás gyorsbillentyű" customise_window.aliens = "Alien páciensek" customise_window.fractured_bones = "Törött Csontok" options_window.folder = "Könyvtárak" options_window.customise = "Személyre szab" audio_window.audio = "Fő hangerő" menu_options.twentyfour_hour_clock = " 24 ÓR�S MEGJELEN�TÉS" menu_options.wage_increase = " FIZETÉSIGÉNYEK" install.ok = "OK" install.cancel = "Mégse" adviser.research.drug_improved_1 = "A kutatórészleged feljavította a %s szer hatását." adviser.warnings.no_desk_7 = "Most hogy leraktál egy recepciós pultot mi lenne ha felvennél egy recepcióst is? Amíg ez meg nincs nem fogsz tudni páciensekkel foglalkozni!" adviser.warnings.researcher_needs_desk_1 = "A Kutatónak szüksége van egy íróasztalra aminél dolgozhatna." adviser.warnings.no_desk_6 = "Már van egy recepciósod. Mi lenne, ha leraknál neki egy recepciós pultot, ahol dolgozhatna?" adviser.warnings.nurse_needs_desk_1 = "Minden Nővérkének szüksége van egy saját íróasztalra, ahol dolgozhat." adviser.warnings.researcher_needs_desk_2 = "A kutatód boldog, hogy megengedted neki, hogy szünetet tartson. Ha a kutatórészleg személyzetének bővítését fontolgatod ne felejtsd el, hogy mindegyiknek szüksége lesz külön asztalra." adviser.warnings.no_desk_5 = "Éppen ideje volt már, hamarosan megérkeznek az első betegek!" adviser.warnings.no_desk_4 = "A recepciósnak szüksége van egy saját pultra, hogy üdvözölhesse az érkező betegeket" adviser.warnings.researcher_needs_desk_3 = "Minden Kutatónak szüksége van egy íróasztalra aminél dolgozhat." adviser.warnings.cannot_afford_2 = "Nincs elég pénzed a számládon ehhez a vásárláshoz!" adviser.warnings.nurse_needs_desk_2 = "A nővérke boldog, hogy megengedted neki, hogy szünetet tartson. Ha a kórtermeid személyzetének bővítését fontolgatod ne felejtsd el, hogy mindegyiknek szüksége lesz külön asztalra." CorsixTH-0.70.0/CorsixTH/Lua/languages/iberic_portuguese.lua000066400000000000000000001060341522247547500237360ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf, "Fabiomsouto" Copyright (c) 2011 Sérgio "Get_It" Ribeiro Copyright (c) 2012 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("cp437") Language(utf8 "Português", "Portuguese", "pt", "pt") Inherit("english") IsArabicNumerals(true) ------------------------------- OVERRIDE ---------------------------------- adviser.warnings.money_low = "Estás a ficar sem dinheiro!" -- Funny. Exists in German translation, but not existent in english? -- TODO: tooltip.graphs.reputation -- this tooltip talks about hospital value. Actually it should say reputation. -- TODO: tooltip.status.close -- it's called status window, not overview window. -- The originals of these two contain one space too much fax.emergency.cure_not_possible_build = "Vais precisar de construir %s" fax.emergency.cure_not_possible_build_and_employ = "Vais precisar de construir um %s e empregar um %s" -- Improve tooltips in staff window to mention hidden features tooltip.staff_window.face = "A cara desta pessoa - clique para abrir o ecrã de gestão de pessoal" tooltip.staff_window.center_view = "Clique esquerdo para ir para onde está a pessoa, clique direito para navegador através dos funcionários" -- These strings are missing in some versions of TH (unpatched?) confirmation.restart_level = "Tem a certeza que deseja reiniciar este nível?" ------------------------------- NEW STRINGS ------------------------------- confirmation.maximum_screen_size = "A resolução de ecrã que escolheu é maior que 3000 x 2000. Resoluções mais altas são possíveis, mas requerem melhor hardware de forma a manter uma taxa de fotogramas (FPS) jogável. De certeza que deseja continuar?" confirmation.music_warning = "Antes de escolher usar mp3 para a música dentro do jogo, necessita de ter o smpeg.dll ou equivalente para o seu sistema operativo, caso contrário, não terá música no jogo. Deseja continuar?" menu_options_wage_increase.deny = " NEGAR " menu_options_wage_increase.grant = " PERMITIR " tooltip.audio_window.audio_button = "Ligar ou desligar todo o som do jogo" tooltip.audio_window.audio_toggle = "Ligar ou desligar" tooltip.options_window.folder_button = "Opções de pastas" tooltip.options_window.customise_button = "Mais opões que pode alterar para personalizar a sua experiência de jogo." tooltip.update_window.download = "Vá para a página de transferências para a última versão de CorsixTH" tooltip.update_window.ignore = "Ignorar esta actualização agora. Será notificado de novo na próxima vez que inicializar CorsixTH" tooltip.folders_window.browse_font = "Procurar outro tipo de letra (localização actual: %1% )" tooltip.folders_window.screenshots_location = "Por defeito, as capturas de ecrã são armazenadas numa pasta junto do ficheiro de configuração. Caso isto não seja apropriado, pode escolher a sua própria, simplesmente indique qual a pasta que deseja utilizar." tooltip.folders_window.reset_to_default = "Reinicializar a directoria para a localização por defeito ( %1% )" tooltip.folders_window.clear_directory = "Limpar seleção de diretório atual" tooltip.folders_window.back = "Fechar este menu e voltar às definições." tooltip.folders_window.music_location = "Escolha a localização dos seus ficheiros mp3. A pasta já deve ter sido criada, e agora escolha o directório que acabou de criar." tooltip.folders_window.font_location = "Localização de um tipo de letra capaz de mostrar caracteres Unicode requeridos pela sua língua. Se isto não for especificado, não será capaz de escolher línguas que necessitam de mais caracteres que o jogo original consegue fornecer. Exemplo: Russo e Chinês." tooltip.folders_window.savegames_location = "Por defeito, os jogos gravados são armazenados numa pasta junto do ficheiro de configuração. Caso isto não seja apropriado, pode escolher a sua própria, simplesmente indique qual a pasta que deseja utilizar." tooltip.folders_window.browse_data = "Escolha outra localização da instalação do Theme Hospital (localização actual: %1% )" tooltip.folders_window.browse = "Escolha a localização da pasta" tooltip.folders_window.browse_screenshots = "Escolha outra localização para a pasta das capturas de ecrã (Localização actual: %1%) " tooltip.folders_window.browse_music = "Escolha outra localização para a pasta da música (Localização actual: %1%) " tooltip.folders_window.no_font_specified = "Nenhum tipo de letra especificado!" tooltip.folders_window.not_specified = "Nenhuma pasta especificada!" tooltip.folders_window.browse_saves = "Escolha outra localização para a pasta dos jogos gravados (Localização actual: %1%) " tooltip.folders_window.default = "Localização por defeito" tooltip.folders_window.data_location = "O directório da instalação do Theme Hospital original, que é necessário para correr o CorsixTH" tooltip.customise_window.aliens = "Devido à falta de animações apropriadas, colocamos por defeito que pacientes com ADN Extraterrestre só possam surgir numa emergência. Para permitir que estes pacientes possam visitar o hospital de outra forma, desligue esta opção." tooltip.customise_window.average_contents = "Se quer que o jogo lhe lembre que objectos adicionais costuma adicionar quando cria uma sala, ligue esta opção." tooltip.customise_window.back = "Fechar este menu e voltar às definições." tooltip.customise_window.movies = "Controle geral de vídeos, isto irá permitir desligar todos os vídeos" tooltip.customise_window.fractured_bones = "Devido a uma má animação colocamos por defeito que não existem pacientes femininas com Ossos Partidos. De forma a permitir que pacientes femininas com Ossos Partidos visitem o hospital, desligue esta opção." tooltip.customise_window.volume = "Se o botão para baixar o volume está a abrir também o livro médico, ligue esta opção para mudar o atalho para o livro médico para Shift + C" tooltip.customise_window.intro = "Ligar ou desligar o vídeo de introdução, o controle geral de vídeos tem que estar ligado se quer ver a introdução cada vez que começa o CorsixTH" tooltip.customise_window.paused = "No Theme Hospital o jogador apenas podia utilizar o menu de topo se o jogo estivesse pausado. Esta é também a opção por defeito no CorsixTH, mas ao activar esta opção, tudo é permitido com o jogo pausado." update_window.caption = "Actualização Disponível!" update_window.new_version = "Nova Versão:" update_window.current_version = "Versão Actual:" update_window.download = "Ir à página de transferências" update_window.ignore = "Saltar e ir para o menu principal" errors.fractured_bones = "AVISO: A animação para pacientes femininas com Ossos Partidos não é perfeita." errors.alien_dna = "AVISO: Não existem animação para pacientes Extraterrestres a sentarem-se, abrir ou bater em portas, etc. Então, como no Theme Hospital, para executarem estas animações eles ficam com um aspecto normal, e depois voltam ao aspecto original. Pacientes com ADN Extraterrestre só irão aparecer se estiver previsto no nível." errors.load_quick_save = "Erro, não foi possível carregar o quick save já que não existe. Nada de preocupações, já que criamos agora um para si!" folders_window.data_label = "Dados TH" folders_window.music_location = "Escolha a directoria que usar para a sua música" folders_window.music_label = "MP3's" folders_window.new_th_location = "Aqui pode especificar uma nova pasta de instalação do Theme Hospital. Assim que escolher a nova directoria, o jogo irá reiniciar." folders_window.caption = "Localizações de pastas" folders_window.screenshots_label = "Capturas de ecrã" folders_window.font_label = "Tipos de letra" folders_window.savegames_label = "Jogos gravados" folders_window.back = "Retroceder" folders_window.savegames_location = "Escolha a directoria que usar para jogos gravados" folders_window.screenshots_location = "Escolha a directoria que usar para capturas de ecrã" customise_window.average_contents = "Itens comuns" customise_window.option_on = "Ligado" customise_window.paused = "Construir com o jogo pausado" customise_window.option_off = "Desligado" customise_window.intro = "Reproduzir vídeo de introdução" customise_window.caption = "Definições Personalizadas" customise_window.back = "Retroceder" customise_window.movies = "Controle Geral de Vídeos" customise_window.volume = "Atalho para baixar o volume" customise_window.aliens = "Pacientes Extraterrestres" customise_window.fractured_bones = "Ossos Partidos" options_window.folder = "Pastas" options_window.customise = "Personalizar" audio_window.audio = "Som Geral" menu_options.twentyfour_hour_clock = " RELÓGIO DE 24 HORAS " menu_options.wage_increase = " EXIGÊNCIAS SALARIAIS" install.ok = "OK" install.cancel = "Cancelar" adviser.research.drug_improved_1 = "A droga para %s foi melhorada pelo Departamento de Pesquisa" adviser.warnings.no_desk_7 = "Já construiu o balcão de atendimento, então que tal contratar uma recepcionista? Não irá atender clientes até que resolva isto!" adviser.warnings.researcher_needs_desk_1 = "Um Investigador precisa de ter uma secretária onde trabalhar." adviser.warnings.no_desk_6 = "Já tem a recepcionista, então que tal construir uma balcão de atendimento para ela trabalhar?" adviser.warnings.nurse_needs_desk_1 = "Cada Enfermeira necessita de uma secretária onde trabalhar." adviser.warnings.researcher_needs_desk_2 = "O seu Investigador está satisfeito que o tenha deixado descansar um pouco. Se quer ter mais pessoal a fazer pesquisa, então precisa de dar uma secretária a cada um deles." adviser.warnings.no_desk_5 = "Está na hora, devem estar a chegar pacientes a qualquer momento!" adviser.warnings.no_desk_4 = "Uma recepcionista precisa de ter o seu posto de trabalho para atender os pacientes assim que chegam." adviser.warnings.researcher_needs_desk_3 = "Cada Investigador necessita de uma secretária onde trabalhar." adviser.warnings.cannot_afford_2 = "Não tem dinheiro suficiente no banco para fazer essa compra!" adviser.warnings.nurse_needs_desk_2 = "A sua Enfermeira está satisfeita que a tenha deixado descansar um pouco. Se quer ter mais que uma a trabalhar na enfermaria, então precisa de dar uma secretária a cada uma delas." object.litter = "Lixo" tooltip.objects.litter = "Lixo: Deitado fora por um paciente porque não encontrou um caixote do lixo onde o colocar." menu_options.lock_windows = " BLOQUEAR JANELAS " menu_options_game_speed.pause = " (%1%) PAUSA " menu_debug = { transparent_walls = " (%1%) PAREDES TRANSPARENTES ", limit_camera = " LIMITAR CAMARA ", disable_salary_raise = " DESACTIVAR AUMENTO DOS SAL�RIOS ", make_debug_patient = " MAKE DEBUG PATIENT ", spawn_patient = " GERAR PACIENTE ", make_adviser_talk = " MAKE ADVISER TALK ", show_watch = " MOSTRAR RELÓGIO ", create_emergency = " CRIAR EMERGENCIA ", place_objects = " COLOCAR OBJECTOS ", dump_strings = " (%1%) DUMP DAS STRINGS ", map_overlay = " OVERLAY DO MAPA ", sprite_viewer = " VISUALIZAR SPRITES ", } menu_debug_overlay = { none = " NENHUM ", flags = " FLAGS ", positions = " POSIÇOES ", byte_0_1 = " BYTE 0 & 1 ", byte_floor = " BYTE FLOOR ", byte_n_wall = " BYTE N WALL ", byte_w_wall = " BYTE W WALL ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " PARCEL ", } adviser.room_forbidden_non_reachable_parts = "Colocar o espaço neste sítio bloquearia o acesso a zonas do hospital." dynamic_info.patient.actions.no_gp_available = "À espera que seja construidos um consultório de CG." dynamic_info.staff.actions.heading_for = "Indo para %s" misc.not_yet_implemented = "(not yet implemented)" misc.no_heliport = "Hm... Ou não foram desocbertas novas doenças ou não existe um heliporto neste mapa." main_menu = { new_game = "Novo jogo", custom_level = "Nível Personalizado", load_game = "Carregar Jogo", options = "Opçoes", exit = "Sair", } tooltip.main_menu = { new_game = "Começar um jogo de raíz", custom_level = "Construir o meu hospital", load_game = "Carregar um jogo", options = "Ajustar preferencias", exit = "Nao, por favor, nao saias!", } load_game_window = { back = "Voltar", } tooltip.load_game_window = { load_game_number = "Carregar o jogo %d", load_autosave = "Carregar o jogo gravado automaticamente", back = "Fechar a janela de carregamento", } errors = { dialog_missing_graphics = "Desculpa, mas a versão de demonstração não tem este diálogo!", save_prefix = "Erro durante a gravação do jogo: ", load_prefix = "Erro durante o carregamento do jogos: ", } totd_window = { tips = { "Todos os hospitais precisam de uma recepção e de um consultório de CG para começar. Depois disso, depende do tipo de pacientes que recebes. Uma farmácia é sempre uma boa escolha, no entanto.", "Máquinas como a Bomba de Encher Cabeças precisam de manutenção. Contrata um ou dois funcionários para reparar as tuas máquinas, ou arriscas-te a que o pessoal ou os pacientes se aleijem quando elas avariarem.", "Após algum tempo, o teu pessoal vai ficar cansado. Constrói um Quarto do Pessoal, para que eles possam relaxar.", "Coloca radiadores em quantidade suficiente para que o teu pessoal e pacientes estejam quentinhos... caso contrário irao ficar aborrecidos!", "O nível de perícia de um médico influencia a qualidade e velocidade do seu diagnóstico. Coloca um médico com perícia nas salas de CGs, e não precisarás de tantas salas de diagnóstico.", "Médicos júniores e regulares podem aumentar a sua perícia se aprenderem com um consultante numa Sala de Treino. Se o consultante for especialista (cirurgiao, psiquiatra ou investigador), também ensinará a sua especialização aos seus pupilos.", "Já tentaste escrever o número de emergência (112) no fax? Não te esqueças de ligar as colunas!", "O menu de opçoes ainda não está implementado, mas podes ajustar algumas preferencias tais como resoluçao e língua no ficheiro config.txt na pasta do jogo.", "Seleccionaste outra linguagem além do Ingles, mas ves Ingles em todo o lado? Ajuda-nos a traduzir esse texto!", "A equipa do CorsixTH está à procura de reforços! Estás interessado em programar, traduzir ou criar arte gráfica para o CorsixTH? Contacta-nos no fórum, IRC (corsix-th no freenode) ou via Mailing List.", "Se encontrares um bug, diz-nos em: th-issues.corsix.org", "Tens que cumprir certos requisitos para poder avançar de nível. Consulta a tua janela de status para veres o progresso em relaçao aos objectivos do nível.", -- dicas juntas "Se quiseres alterar ou remover alguma sala existente,utiliza o botao editar na barra de ferramentas em baixo no teu ecra.", "Se tiveres muitos pacientes na fila de espera, podes saber rapidamente quais estao à espera de uma determinada sala passando com o cursor por cima desta.", "Clica numa porta para ver a lista de espera.Podes alterar a ordem dos pacientes ou mandá-los para outra sala.", "Staffs descontentes irao pedir aumentos de salário frequentemente , assegura que tens um bom ambiente de trabalho para isto não acontecer!", "Os pacientes ficarao com sede enquanto esperam no hospital,ainda mais se os radiadores estiverem muito quentes.Coloca máquinas de bebidas em locais estratégicos para ganhares mais uns trocos.", "Podes abortar o processo de diagnóstico para um paciente e tentar adivinhar a cura caso já tenhas descoberto a doença. Cuidado que este processo pode aumentar o risco de uma cura errada levando à morte do paciente.", "Emergencias sao uma boa forma de ganhar algum dinheiro extra,garante que o teu hospital tem condiçoes para as completar.", }, previous = "Dica anterior", next = "Próxima dica", } tooltip.totd_window = { previous = "Mostrar dica anterior", next = "Mostrar a próxima dica", } debug_patient_window.caption = "Debug Paciente" totd_window = { tips = { "Tens que cumprir certos requisitos para poder avançar de nível. Consulta a tua janela de status para veres o progresso em relaçao aos objectivos do nível.", "Se quiseres alterar ou remover alguma sala existente,utiliza o botao editar na barra de ferramentas em baixo no teu ecra.", "Se tiveres muitos pacientes na fila de espera, podes saber rapidamente quais estao à espera de uma determinada sala passando com o cursor por cima desta.", "Clica numa porta para ver a lista de espera.Podes alterar a ordem dos pacientes ou mandá-los para outra sala.", "Staffs descontentes irao pedir aumentos de salário frequentemente , assegura que tens um bom ambiente de trabalho para isto não acontecer!", "Os pacientes ficarao com sede enquanto esperam no hospital,ainda mais se os radiadores estiverem muito quentes.Coloca máquinas de bebidas em locais estratégicos para ganhares mais uns trocos.", "Podes abortar o processo de diagnóstico para um paciente e tentar adivinhar a cura caso já tenhas descoberto a doença. Cuidado que este processo pode aumentar o risco de uma cura errada levando à morte do paciente.", "Emergencias sao uma boa forma de ganhar algum dinheiro extra,garante que o teu hospital tem condiçoes para as completar.", }, } tooltip.casebook.cure_requirement.hire_staff = "Precisas de contratar alguém para fazer este tratamento." tooltip.casebook.cure_type.unknown = "Ainda não sabes tratar esta doença." tooltip.information.close = "Fecha o diálogo de informação" tooltip.load_game_window.load_game = "Ler jogo: %s" tooltip = { message = { button = "Clica com o botão esquerdo para abrir a mensagem.", button_dismiss = "Click esquerdo para abrir a mensagem,click direito para apagar", }, custom_game_window = { start_game_with_name = "Ir para o nível %s", }, cheats_window = { close = "Fecha a janela dos truques", cheats = { end_month = "Salta para o final do mês.", create_patient = "Cria um paciente no mapa.", money = "Adiciona 10000 à tua conta bancária", emergency = "Cria uma emergência", win_level = "Vence o nível.", lose_level = "Perde o nível.", vip = "Cria um VIP.", all_research = "Completa toda a pesquisa.", end_year = "Salta para o final do ano.", }, }, menu_list_window = { save_date = "Coloca a lista por data de modificação.", name = "Coloca a lista por nome.", back = "Fecha esta janela.", }, new_game_window = { hard = "Se estás habituado a este tipo de jogos e procuras um desafio escolhe esta opçao.", cancel = "Oh mas eu não queria começar um jogo de novo!", tutorial = "Se precisas de umas dicas para começar a jogar,marca esta caixa.", easy = "Se és novo em jogos de simulaçoes,esta é a opçao para ti.", medium = "Se já te sentes à vontade tenta a opção média!", }, save_game_window = { new_save_game = "Nome para salvar o jogo.", save_game = "Gravar por cima da gravação? %s", }, calls_dispatcher = { assigned = "Esta caixa estrá marcada, se alguém esttiver a tratar da tarefa correspondente.", task = "Lista de tarefas - Clica em tarefas para abrir as tarefas atribuídas ao staff e encontrares a localização de determinada tarefa.", close = "Fecha a janela de diálogo do expedidor de chamadas.", }, research_policy = { research_progress = "Progresso em relação à próxima descoberta: %1%/%2%", no_research = "Não está a ser feita nenhuma pesquisa de momento.", }, lua_console = { textbox = "Coloca aqui o código Lua para executar", execute_code = "Executa o código colocado.", close = "Fecha a consola.", }, fax = { close = "Fecha esta janela sem apagar a mensagem.", }, options_window = { fullscreen_button = "Clica para modo de tela cheia", browse = "Procura outra localizaçao da instalaçao original. %1%", change_resolution = "Altera a resoluçao da janela para as dimensoes colocadas à esquerda", height = "Coloca a altura desejada.", width = "Coloca a largura desejada.", language = "Escolhe %s como a tua linguagem.", back = "Fecha a janela de opçoes.", }, } custom_game_window.caption = "Jogo Customizado" cheats_window = { cheats = { end_month = "Fim do Mês", create_patient = "Criar Paciente", money = "Truque para Dinheiro", emergency = "Criar emergência", win_level = "Vencer nível", lose_level = "Perder nível", vip = "Criar VIP", all_research = "Pesquisa Completa", end_year = "Fim do Ano", }, close = "Fechar", caption = "Truques", cheated = { no = "Truques usados?: Nao", yes = "Truques usados?: Sim", }, warning = "Aviso:Se utilizares truques não irás ganhar pontos de reputação no final do nível!", } errors = { unavailable_screen_size = "Esta resolução não está disponível no modo de tela cheia.", maximum_screen_size = "Resolução máxima de 3000x2000.", map_file_missing = "Não foi encontrado o ficheiro do mapa %s para este nível!", minimum_screen_size = "Resolução mínima de %dx%d.", } date_format.daymonth = "%1% - %2% -" menu_debug = { lua_console = " (%1%) CONSOLA LUA", make_debug_fax = " DEBUG FAX", calls_dispatcher = " CHAMAR EXPEDIDOR", cheats = " (%1%) TRUQUES", dump_gamelog = " (%1%) CRIAR LOG DO JOGO", jump_to_level = " SALTAR PARA OUTRO NIVEL", } menu_options = { edge_scrolling = " EDGE SCROLLING ", settings = " PREFERENCIAS ", } lua_console = { execute_code = "Executar", close = "Fechar", } install= { exit = "Sair", th_directory = "CorsixTH precisa dos ficheiros de dados da instalação original de Theme Hospital(ou demo) para funcionar. Localize a sua instalação atráves da caixa em baixo.", title = "--------------------------------- Instalação CorsixTH ---------------------------------", } load_game_window.caption = "Ler Jogo" adviser = { cheats = { th_cheat = "Parabéns batoteiro! Acabaste de desbloquear os truques!", hairyitis_cheat = "Activado cheat da doença Olfatis", roujin_on_cheat = "Activado o desafio Roujin! Boa sorte...", crazy_on_cheat = "Oh não! Os teus médicos estão malucos!", bloaty_off_cheat = "Desactivado truque das Cabeças Gigantes!", bloaty_cheat = "Activado truque das Cabeças Gigantes!", crazy_off_cheat = "Ufa... os teus médicos voltaram ao normal.", roujin_off_cheat = "Desafio Roujin desactivado.", hairyitis_off_cheat = "Desactivado truque da doença Olfatis", }, warnings = { no_desk_2 = "Bom trabalho! Deve ser um recorde mundial: quase um ano completo e não há pacientes! Se desejas continuar a gerir este hospital tens que contratar uma recepcionista e construir uma recepção para receberes os pacientes!", no_desk = "Constrói uma recepçao e uma recepcionista para começar!", no_desk_1 = "Se queres que os pacientes venham ao teu hospital vais precisar de uma recepçao e uma recepcionista!", }, } calls_dispatcher = { repair = "Reparar %s", summary = "%d Chamadas; %d atribuídas", close = "Fechar", watering = "Regar @ %d,%d", staff = "%s - %s ", } information = { level_lost = { "Que chatice! Perdeste. Mais sorte para a próxima!", "Razões da derrota:", reputation = "A tua reputação ficou abaixo de %d.", balance = "A tua conta bancària ficou abaixo de %d.", percentage_killed = "Mataste mais do que %d por cento dos pacientes.", }, cannot_restart = "Infelizmente este jogo customizado foi gravado antes da implementação da função de reinício.", custom_game = "Bem-vindo ao CorsixTH. Diverte-te neste mapa customizado!", } new_game_window = { hard = "Consultor (Difícil)", cancel = "Cancelar", tutorial = "Tutorial ", easy = "Junior (Fácil)", medium = "Doutor (Médio)", } options_window = { fullscreen = "Tela cheia", cancel = "Cancelar", browse = "Procurar...", width = "Largura", height = "Altura", new_th_directory = "Aqui podes escolher uma nova localizaçao da instalaçao de Theme Hospital,assim que o fizeres o jogo será reiniciado.", change_resolution = "Alterar resoluçao", back = "Voltar", } audio_window = { back = "Voltar", } menu_list_window = { save_date = "Modificado", name = "Nome", back = "Voltar", } save_game_window = { caption = "Gravar jogo", new_save_game = "Nova gravaçao", } fax.emergency.num_disease_singular = "Existe uma pessoa com %s e necessita de atenção imediata!" fax.choices = { decline_new_level = "Continuar a jogar", accept_new_level = "Avançar para o nível seguinte", return_to_main_menu = "Voltar para o menu principal", } menu_debug_overlay.heat = " TEMPERATURA " confirmation.abort_edit_room = "Estás a construir ou a editar uma sala. Se todos os objectos necessários estiverem colocados a sala estará terminada, caso contrário será eliminada. Continuar?" confirmation.needs_restart = "Estas alterações requerem que reinicies o jogo,O progresso não gravado será perdido. Desejas continuar?" dynamic_info.staff.actions.fired = "Despedido" introduction_texts.demo = "Bem-vindo ao hospital do demo!//" .. "Infelizmente este demo só tem este nível.Contudo existe aqui muito trabalho para te manter ocupado! " .. "Encontrarás várias doenças que requerem salas diferentes para os seus tratamentos.Ao longo do tempo " .. "irão ocorrer algumas emergências e precisarás de descobrir novos tratamentos atráves da sala de pesquisa. " .. "O teu objectivo é ganhar 100,000$,ter um hospital avaliado em 70,000$,uma reputação de 700 e uma cura de 75% dos pacientes. " .. "Garante que a tua reputação não cai abaixo de 300 e que não mates 40% dos teus pacientes senão perderás o nível.//" .. "Boa sorte!" letter = { custom_level_completed = "Bom trabalho!Completaste todos os objectivos deste nível!", dear_player = "Caro %s", return_to_main_menu = "Desejas regressar ao menu principal ou continuar a jogar?", } staff_class = { nurse = "Enfermeira", doctor = "Doutor", handyman = "Contínuo", receptionist = "Recepcionista", surgeon = "Cirurgião", } -- Staff titles -- these are titles used e.g. in the dynamic info bar staff_title = { receptionist = "Recepcionista", general = "General", -- unused? nurse = "Enfermeira", junior = "Junior", doctor = "Doutor", surgeon = "Cirurgião", psychiatrist = "Psiquiatra", consultant = "Consultor", researcher = "Pesquisador", } staff_list = { morale = "MORAL", tiredness = "CANSAÇO", skill = "QUALIFICAÇOES", total_wages = "SAL�RIO", } -- Objects object = { desk = "Secretária", cabinet = "Arquivador", door = "Porta", bench = "Banco", table1 = "Mesa", -- unused object chair = "Cadeira", drinks_machine = "Máquina de Bebidas", bed = "Cama", inflator = "Inflador", pool_table = "Mesa de Bilhar", reception_desk = "Recepçao", table2 = "Mesa", -- unused object & duplicate cardio = "Cardio", scanner = "Scanner", console = "Consola", screen = "Ecra", litter_bomb = "Bomba de lixo", couch = "Sofá", sofa = "Sofá", crash_trolley = "Trolley", tv = "TV", ultrascanner = "Ultrascanner", dna_fixer = "Fixador de DNA", cast_remover = "Removedor de Gesso", hair_restorer = "Recuperador de Cabelo", slicer = "Fatiador", x_ray = "Raio-X", radiation_shield = "Escudo de Radiaçao", x_ray_viewer = "Visualizador de Radiação", operating_table = "Mesa de Operação", lamp = "Lampâda", -- unused object toilet_sink = "Pia", op_sink1 = "Pia", op_sink2 = "Pia", surgeon_screen = "Ecra de Operaçao", lecture_chair = "Cadeira de aluno", projector = "Projector", bed2 = "Cama", -- unused duplicate pharmacy_cabinet = "Gabinete de Farmácia", computer = "Computador", atom_analyser = "Analisador de �tomos", blood_machine = "Máquina de Análise Sanguínea", fire_extinguisher = "Extintor", radiator = "Radiador", plant = "Planta", electrolyser = "Electrolisador", jelly_moulder = "Moldador gelatinoso", gates_of_hell = "Portões do Inferno", bed3 = "Cama", -- unused duplicate bin = "Balde do lixo", toilet = "WC", swing_door1 = "Porta", swing_door2 = "Porta", shower = "Chuveiro", auto_autopsy = "Auto-Autópsia", bookcase = "Estante", video_game = "Máquina de Arcade", entrance_left = "Entrada esquerda", entrance_right = "Entrada direita", skeleton = "Esqueleto", comfortable_chair = "Cadeira de conforto", } -- Months months = { "Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez", } -- Rooms short -- NB: includes some special "rooms" -- reception, destroyed room and "corridor objects" rooms_short = { reception = "Recepçao", destroyed = "Destruído", corridor_objects = "Objectos de Corredor", gps_office = "Consultório Geral", psychiatric = "Psiquiatria", ward = "Enfermaria", operating_theatre = "Sala de Operações", pharmacy = "Farmácia", cardiogram = "Cardio", scanner = "Scanner", ultrascan = "Ultrascanner", blood_machine = "Sala de Análises Sanguíneas", x_ray = "Raio-X", inflation = "Inflador", dna_fixer = "Fixador de DNA", hair_restoration = "Recuperador de Cabelo", tongue_clinic = "Fatiador", fracture_clinic = "Clínica de Fracturas", training_room = "Sala de Aprendizagem", electrolysis = "Sala de Electrolisador", jelly_vat = "Moldador Gelatinoso", staffroom = "Sala do Pessoal", -- rehabilitation = "Reabilitação", -- unused general_diag = "Diagnóstico Geral", research_room = "Sala de Pesquisa", toilets = "Casas de Banho", decontamination = "Descontaminação", } -- Menu Options Game Speed menu_options_game_speed = { slowest = " (%1%) MUITO LENTO ", slower = " (%1%) LENTO ", normal = " (%1%) NORMAL ", max_speed = " (%1%) RAPIDO ", and_then_some_more = " (%1%) AINDA MAIS RAPIDO ", } -- Menu Display menu_display = { high_res = " ALTA RESOLUÇAO ", mcga_lo_res = " BAIXA RESOLUCAO ", shadows = " SOMBRAS ", } -- Menu Charts menu_charts = { statement = " (%1%) INDICACOES ", casebook = " (%1%) PONTUARIO DE DOENÇAS ", policy = " (%1%) POLITICAS DO HOSPITAL ", research = " (%1%) PESQUISA ", graphs = " (%1%) GRAFICOS ", staff_listing = " (%1%) LISTA DO STAFF ", bank_manager = " (%1%) CONTA BANCARIA ", status = " (%1%) STATUS ", briefing = " BRIEFING ", } menu = { file = " FICHEIRO ", options = " OPÇOES ", display = " DISPLAY", charts = " TABELAS ", debug = " DEBUG ", } -- Menu File menu_file = { load = " (%1%) LER JOGO ", save = " (%1%) SALVAR JOGO ", restart = " (%1%) REINICIAR ", quit = " (%1%) SAIR ", } -- Menu Options menu_options = { sound = " (%1%) SOM ", announcements = " (%1%) ANUNCIOS ", music = " (%1%) MUSICA ", sound_vol = " VOLUME DOS SONS ", announcements_vol = " SOM DOS ANUNCIOS ", music_vol = " VOLUME DA MUSICA ", autosave = " AUTOSAVE ", game_speed = " VELOCIDADE DO JOGO ", jukebox = " (%1%) JUKEBOX ", } -- Menu Options Volume menu_options_volume = { [10] = " 10% ", [20] = " 20% ", [30] = " 30% ", [40] = " 40% ", [50] = " 50% ", [60] = " 60% ", [70] = " 70% ", [80] = " 80% ", [90] = " 90% ", [100] = " 100% ", } confirmation = { abort_edit_room = "Estás a construir ou a editar uma sala. Se todos os objectos necessários estiverem colocados a sala estará terminada, caso contrário será eliminada. Continuar?", return_to_blueprint = "Tens a certeza que desejas voltar ao modo de desenho?", restart_level = "Tens a certeza que queres reiniciar o nível?", delete_room = "Desejas apagar esta sala?", quit = "Queres mesmo sair do jogo?", needs_restart = "Estas alterações requerem que reinicies o jogo,O progresso não gravado será perdido. Desejas continuar?", overwrite_save = "Já existe uma gravação nesta slot.Desejas gravar por cima?", sack_staff = "Queres mesmo despedir este membro do staff?", replace_machine = "Queres mesmo repor %s por $%d?", } vip_names = { [1] = "Presidente da Cruz Vermelha", [2] = "Ricardo Araújo Pereira", [3] = "D. Duarte Pio de Bragança", [4] = "Joe Berardo", [5] = "José Mourinho", [6] = "Alberto João Jardim", [7] = "Marcelo Rebelo de Sousa", [8] = "Cavaco Silva", [9] = "Cristiano Ronaldo", [10] = "Tradutor Filipe Carvalho", health_minister = "Ministro da Saúde", } -- Rooms room_classes = { -- S[19][2] -- "corridors" - unused for now diagnosis = "Diagnóstico", treatment = "Tratamento", clinics = "Clínicas", facilities = "Acomodaçoes", } CorsixTH-0.70.0/CorsixTH/Lua/languages/italian.lua000066400000000000000000001377651522247547500216570ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf, 2024 Peppe "Inkub0" Malara, 2024 Sebastiano Pistore Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("cp437") Language("Italiano", "Italian", "it", "ita") Inherit("english") Inherit("original_strings", 3) Encoding(utf8) IsArabicNumerals(true) -- override -- TODO? Any more original strings that are off in italian translation? adviser.warnings.money_low = "Stai finendo i soldi!" -- TODO: tooltip.graphs.reputation -- this tooltip talks about hospital value. Actually it should say reputation. -- TODO: tooltip.status.close -- it's called status window, not overview window. -- The originals of these two contain one space too much fax.emergency.cure_not_possible_build = "E' necessario costruire un %s" -- È unsupported by TH font fax.emergency.cure_not_possible_build_and_employ = "E' necessario costruire un %s e assumere un %s" -- È unsupported in TH font -- An override for the squits becoming the the squits see issue 1646 adviser.research.drug_improved_1 = "Il medicinale per %s è stato migliorato dal Reparto ricerca." ------------------------------- NEW STRINGS ------------------------------- date_format = { daymonth = "%1% %2:months%", } object.litter = "Spazzatura" tooltip.objects.litter = "Spazzatura: Lasciata sul pavimento da un paziente perché non ha trovato un cestino in cui gettarla." object.rathole = "Tana di ratti" tooltip.objects.rathole = "Casa di una famiglia di ratti che trova l'ospedale abbastanza sporco da poterci vivere." tooltip.fax.close = "Chiudi questa finestra senza cancellare il messaggio" tooltip.message.button = "Click sinistro per aprire il messaggio" tooltip.message.button_dismiss = "Click sinistro per aprire il messaggio, click destro per eliminarlo" tooltip.casebook.cure_requirement.hire_staff = "Hai bisogno di assumere personale per somministrare questa cura" tooltip.casebook.cure_type.unknown = "Ancora non sei a conoscenza di una cura per questa malattia" tooltip.research_policy.no_research = "Non c'è nessuna ricerca in corso in questa categoria al momento" tooltip.research_policy.research_progress = "Progresso verso una nuova scoperta in questa categoria: %1%/%2%" menu["player_count"] = "NUMERO GIOCATORI" menu_file = { load = " (%1%) CARICA ", save = " (%1%) SALVA ", restart = " (%1%) RIAVVIA", quit = " (%1%) ESCI " } menu_options = { sound = " (%1%) SUONO ", announcements = " (%1%) ANNUNCI ", music = " (%1%) MUSICA ", jukebox = " (%1%) JUKEBOX ", lock_windows = " BLOCCA FINESTRE ", edge_scrolling = " SCORRIMENTO AI BORDI ", capture_mouse = " CATTURA MOUSE ", adviser_disabled = " (%1%) CONSIGLIERE ", warmth_colors = " COLORI RISCALDAMENTO ", wage_increase = " RICHIESTE STIPENDI", twentyfour_hour_clock = " OROLOGIO 24 ORE " } menu_options_game_speed = { pause = " (%1%) PAUSA ", slowest = " (%1%) LENTISSIMO ", slower = " (%1%) LENTO ", normal = " (%1%) NORMALE ", max_speed = " (%1%) VELOCITA' MASSIMA ", and_then_some_more = " (%1%) E ANCORA DI PIU' ", } menu_options_warmth_colors = { choice_1 = " ROSSO ", choice_2 = " BLU VERDE ROSSO ", choice_3 = " GIALLO ARANCIONE ROSSO ", } menu_options_wage_increase = { grant = " CONCEDI ", deny = " NEGA ", } -- Add F-keys to entries in charts menu (except briefing), also town_map was added. menu_charts = { bank_manager = " (%1%) BANCA ", statement = " (%1%) RENDICONTO ", staff_listing = " (%1%) PERSONALE ", town_map = " (%1%) MAPPA CITTADINA ", casebook = " (%1%) REGISTRO CURE ", research = " (%1%) RICERCA ", status = " (%1%) RIEPILOGO ", graphs = " (%1%) GRAFICI ", policy = " (%1%) GESTIONE ", } -- The demo does not contain this string menu_file.restart = " RIAVVIA " menu_debug = { jump_to_level = " SALTA AL LIVELLO ", connect_debugger = " (%1%) CONNETTI SERVER LUA DBGp ", transparent_walls = " (%1%) MURI TRASPARENTI ", limit_camera = " LIMITA TELECAMERA ", disable_salary_raise = " DISABILITA AUMENTI DI SALARIO ", make_debug_fax = " CREA FAX DI DEBUG ", make_debug_patient = " CREA PAZIENTE DI DEBUG ", cheats = " (%1%) CHEAT ", lua_console = " (%1%) CONSOLE LUA ", debug_script = " (%1%) ESEGUI SCRIPT DI DEBUG ", calls_dispatcher = " GESTORE CHIAMATE ", dump_strings = " (%1%) DUMP DELLE STRINGHE ", dump_gamelog = " (%1%) DUMP DEL GAMELOG ", map_overlay = " MAPPA IN SOVRAPPOSIZIONE ", sprite_viewer = " VISUALIZZATORE SPRITE ", allow_blocking_off_areas = " CONSENTI IL BLOCCO DI ALCUNE AREE ", } menu_debug_overlay = { none = " NESSUN OVERLAY ", flags = " FLAG ", positions = " POSIZIONI ", heat = " TEMPERATURA ", byte_0_1 = " BYTE 0 & 1 ", byte_floor = " BYTE PAVIMENTO ", byte_n_wall = " BYTE N MURO ", byte_w_wall = " BYTE W MURO ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " LOTTO ", } menu_player_count = { players_1 = " 1 GIOCATORE ", players_2 = " 2 GIOCATORI ", players_3 = " 3 GIOCATORI ", players_4 = " 4 GIOCATORI ", } adviser = { room_forbidden_non_reachable_parts = "Mettere la stanza in questa posizione bloccherebbe l'accesso ad alcune parti dell'ospedale.", staff_place_advice = { not_enough_lecture_chairs = "Agli studenti di medicina serve sempre uno sgabello per sedersi!", }, warnings = { no_desk = "Dovresti costruire un banco di accettazione ed assumere una receptionist!", no_desk_1 = "Se vuoi che i pazienti vengano nel tuo ospedale dovrai assumere una receptionist e costruirle un banco accettazione dove farla lavorare!", no_desk_2 = "Ben fatto, deve essere un record mondiale: quasi un anno e nessun paziente! Se vuoi continuare come Manager di questo ospedale dovrai assumere una receptionist e costruire un banco di accettazione dove farla lavorare!", no_desk_3 = "Grandioso, quasi un anno e ancora non hai personale all'accettazione! Come ti aspetti di trovare pazienti, ora vedi di rimediare e di non fare più casini!", no_desk_4 = "Una receptionist ha bisogno del banco accettazione per accogliere i clienti quando arrivano", no_desk_5 = "Beh, era ora, presto dovresti cominciare a vedere arrivare i pazienti!", no_desk_6 = "Hai una receptionist, che ne dici quindi di costruirle un banco di accettazione dove poter lavorare?", no_desk_7 = "Hai costruito il banco di accettazione, quindi che ne dici di assumere una receptionist? Non vedrai pazienti finché non risolvi questa cosa!", cannot_afford = "Non hai abbastanza soldi in banca per assumere quella persona!", -- I can't see anything like this in the original strings cannot_afford_2 = "Non hai abbastanza soldi in banca per fare quell'acquisto!", falling_1 = "Ehi! Non è divertente, attento a dove clicchi: qualcuno potrebbe farsi male!", falling_2 = "Basta fare casini, a te piacerebbe?", falling_3 = "Ahi, deve far male, qualcuno chiami un dottore!", falling_4 = "Questo è un ospedale, non un parco giochi!", falling_5 = "Non è il luogo adatto per far cadere le persone, sono malate sai!", falling_6 = "Non è una sala da bowling, i malati non dovrebbero essere trattati così!", research_screen_open_1 = "Devi costruire un Reparto Ricerca prima di poter accedere alla schermata Ricerca.", research_screen_open_2 = "La ricerca è disabilitata in questo livello.", researcher_needs_desk_1 = "Un ricercatore ha bisogno di una scrivania su cui lavorare.", researcher_needs_desk_2 = "Al tuo ricercatore ha fatto piacere tu gli abbia concesso una pausa. Se invece volevi assegnare più personale alla ricerca devi procurare a ognuno di loro una scrivania sulla quale lavorare.", researcher_needs_desk_3 = "Ogni ricercatore ha bisogno della propria scrivania su cui poter lavorare.", nurse_needs_desk_1 = "Ogni infermiera ha bisogno della propria scrivania su cui poter lavorare.", nurse_needs_desk_2 = "Alla tua infermiera ha fatto piacere tu le abbia concesso una pausa. Se invece volevi assegnare più personale al reparto devi procurare a ognuna di loro una scrivania sulla quale lavorare.", low_prices = "I tuoi prezzi per %s sono troppo bassi. Questo attirerà più persone nel tuo ospedale, ma non guadagnerai molto da ognuno di loro.", high_prices = "I tuoi prezzi per %s sono alti. In questo modo vedrai buoni guadagni sul breve periodo, ma a lungo andare spingerai molte persone ad andarsene.", fair_prices = "I tuoi prezzi per %s sembrano giusti ed equilibrati.", patient_not_paying = "Un paziente è andato via senza pagare %s perché è troppo costosa!", another_desk = "Dovrai costruire un'altra scrivania per la nuova receptionist.", cannot_afford_machine = "Ti servono almeno $%1% in banca per pagare %2%!", }, cheats = { th_cheat = "Congratulazioni, hai sbloccato i cheat!", roujin_on_cheat = "Sfida di Roujin attivata! Buona fortuna...", roujin_off_cheat = "Sfida di Roujin disattivata.", norest_off_cheat = "Uff! Sembra che quel ronzio finalmente sia svanito. Ora il tuo staff riposerà adeguatamente.", norest_on_cheat = "Oh no! Sembra che il tuo personale abbia assunto troppa caffeina e non senta più il bisogno di riposare.", }, } dynamic_info.patient.actions.no_gp_available = "In attesa che venga costruito un ambulatorio" dynamic_info.staff.actions.heading_for = "Sta andando verso %s" dynamic_info.staff.actions.fired = "Licenziato" dynamic_info.patient.actions.epidemic_vaccinated = "Non sono più infetto" dynamic_info.object.strength_extra_info = "Forza %d (Migliorabile a %d)" dynamic_info.staff.actions.vaccine = "Sta vaccinando un paziente" progress_report.free_build = "COSTRUZIONE LIBERA" fax = { choices = { return_to_main_menu = "Ritorna al menu principale", accept_new_level = "Vai al livello successivo", decline_new_level = "Continua a giocare un altro po'", }, emergency = { num_disease_singular = "C'è una persona con %s che richiede la tua immediata attenzione.", free_build = "Se hai successo la tua reputazione aumenterà, ma se fallisci la tua reputazione verrà intaccata pesantemente.", }, vip_visit_result = { remarks = { free_build = { "Hai proprio un bell'ospedale! Anche se non è difficile ottenerlo con fondi illimitati, eh?", "Non sono un economista, ma penso che anch'io avrei potuto dirigere quest'ospedale, non so se mi spiego...", "Un ospedale molto ben gestito. Attento alla crisi economica però! Ah, giusto... non te ne sei dovuto preoccupare.", } } } } letter = { dear_player = "Caro %s\n", custom_level_completed = "Ben fatto! Hai completato tutti gli obiettivi di questo livello personalizzato!", return_to_main_menu = "Vuoi tornare al menu principale o vuoi continuare a giocare?", campaign_level_completed = "Ottimo lavoro! Hai completato il livello. Ma non è ancora finita!\n Saresti interessato a una posizione nell'ospedale %s?", campaign_completed = "Incredibile! Sei riuscito a completare tutti i livelli. Ora puoi rilassarti e divertirti a riempire i forum su internet con i tuoi fantastici risultati. Buona fortuna!", campaign_level_missing = "Mi dispiace, ma sembra che il livello successivo di questa campagna non sia presente. (Nome: %s)", } install = { title = "----------------------------- Installazione CorsixTH -----------------------------", th_directory = "CorsixTH ha bisogno di una copia dei file dati di Theme Hospital (o della demo) per essere eseguito. Per favore indica la posizione della cartella HOSP nell'installazione di Theme Hospital.", ok = "Ok", exit = "Esci", cancel = "Annulla", } misc = { not_yet_implemented = "(non ancora implementato)", no_heliport = "Non è stata ancora scoperta nessuna malattia, non c'è un eliporto sulla mappa oppure potrebbe essere necessario costruire un banco accettazione e assumere una receptionist", epidemic_no_icon_to_toggle = "Impossibile mostrare/nascondere icone infezione - non ci sono epidemie in corso che non siano gia' state rivelate", epidemic_no_diseases = "Impossibile creare epidemia - non ci sono malattie contagiose disponibili.", cant_treat_emergency = "Il tuo ospedale non può affrontare questa emergenza perché la sua malattia non è stata scoperta. Sentiti libero di riprovare.", earthquakes_on = "I terremoti sono abilitati", epidemics_on = "Le epidemie sono abilitate", epidemic_no_receptionist = "Impossibile creare epidemia - nessuna reception funzioante", epidemics_off = "Le epidemie sono disabilitate", earthquakes_off = "I terremoti sono disabilitati", } hotkeys_file_err.file_err_01 = "Impossibile caricare il file hotkeys.txt. Assicurati che CorsixTH abbia permessi in lettura/scrittura " hotkeys_file_err.file_err_02 = ", oppure usa l'opzione --hotkeys-file=filename in riga di comando per specificare un file con tali permessi. Per riferimento, l'errore durante il caricamento era: " main_menu = { new_game = "Nuova partita", custom_campaign = "Campagna personalizzata", custom_level = "Livello personalizzato", continue = "Continua partita", load_game = "Carica partita", options = "Opzioni", map_edit = "Editor mappe", savegame_version = "Versione salvataggi: ", version = "Versione: ", exit = "Esci", updates_off = "Disabilita aggiornamenti", } tooltip.main_menu = { new_game = "Nuova partita", custom_campaign = "Gioca una campagna creata dalla comunità", custom_level = "Costruisci il tuo ospedale in un livello personalizzato", load_game = "Carica una partita salvata in precedenza", options = "Modifica le impostazioni", map_edit = "Crea una mappa personalizzata", exit = "No, per favore non andartene!", } load_game_window = { caption = "Carica partita (%1%)", } tooltip.load_game_window = { load_game = "Carica la partita %s", load_game_number = "Carica la partita %d", load_autosave = "Carica autosalvataggio", } custom_game_window = { caption = "Partita personalizzata", free_build = "Costruzione libera", load_selected_level = "Inizia", } tooltip.custom_game_window = { choose_game = "Clicca su un livello per avere più informazioni", free_build = "Spunta questa casella per giocare senza soldi, né vittoria o sconfitta", load_selected_level = "Carica e gioca il livello selezionato", } custom_campaign_window = { caption = "Campagna personalizzata", start_selected_campaign = "Inizia campagna", } tooltip.custom_campaign_window = { choose_campaign = "Seleziona una campagna per avere più informazioni", start_selected_campaign = "Carica il primo livello di questa campagna", } save_game_window = { caption = "Salva partita (%1%)", new_save_game = "Nuovo salvataggio", } tooltip.save_game_window = { save_game = "Sovrascrivere salvataggio %s", new_save_game = "Inserisci il nome per un nuovo salvataggio", } save_map_window = { caption = "Salva mappa (%1%)", new_map = "Nuova mappa", } tooltip.save_map_window = { map = "Sovrascrivi mappa %s", new_map = "Inserisci il nome per il salvataggio della mappa", } menu_list_window = { name = "Nome", save_date = "Modificata", back = "Indietro", ok = "OK", } tooltip.menu_list_window = { name = "Clicca qui per ordinare la lista in ordine alfabetico", save_date = "Clicca qui per ordinare la lista in base alla data dell'ultima modifica", back = "Chiudi questa finestra", ok = "Conferma scelta", } -- Width / height's translation doesn't fit - had to write "larghezza" and "altezza" shorter options_window = { caption = "Opzioni", option_on = "On", option_off = "Off", fullscreen = "Schermo intero", resolution = "Risoluzione", capture_mouse = "Cattura Mouse", custom_resolution = "Personalizzata...", width = "Largh", option_enabled = "Attiv.", height = "Alt", scrollspeed = "Vel. scorrimento", shift_scrollspeed = "Vel. scorrimento veloce", zoom_speed = "Velocità zoom", check_for_updates = "Cerca aggiornamenti", customise = "Personalizza", folder = "Cartelle", language = "Lingua del gioco", apply = "Applica", hotkey = "Scorciatoie", cancel = "Cancella", back = "Indietro", option_disabled = "Disabilitato", hotkey = "Scorciatoie", option_enabled = "Abilitato", zoom_speed = "Velocità zoom", right_mouse_scrolling_option_right = "Bottone Destro", right_mouse_scrolling_option_middle = "Bottone Centrale", right_mouse_scrolling = "Scorrimento con Mouse", } tooltip.options_window = { fullscreen = "Decidi se il gioco verrà eseguito a schermo intero o in finestra", fullscreen_button = "Clicca per attivare o disattivare la modalità a schermo intero", resolution = "La risoluzione alla quale verrà eseguito il gioco", select_resolution = "Seleziona una nuova risoluzione", capture_mouse = "Clicca per attivare o disattivare la cattura del puntatore all'interno della finestra di gioco", width = "Inserisci la larghezza dello schermo desiderata", height = "Inserisci l'altezza dello schermo desiderata", apply = "Applica la risoluzione inserita", cancel = "Esci senza cambiare la risoluzione", customise_button = "Altre impostazioni che puoi cambiare per personalizzare la tua esperienza di gioco", folder_button = "Opzioni cartelle", language = "La lingua in cui verrà mostrato il testo", select_language = "Seleziona la lingua del gioco", language_dropdown_item = "Seleziona %s come lingua", scrollspeed = "Imposta la velocità di scorrimento con il mouse tra 1 (più bassa) e 10 (più veloce). Il default è 2.", shift_scrollspeed = "Imposta la velocità di scorrimento con il tasto MAIUSC premuto tra 1 (più bassa) e 10 (più veloce). Il default è 4.", back = "Chiudi la finestra delle opzioni", scrollspeed = "Imposta la velocità di scorrimento tra 1 (minimo) e 10 (massimo). Il valore predefinito è 2.", shift_scrollspeed = "Imposta la velocità di scorrimento mentre si tiene premuto il tasto Maiusc. Da 1 (minimo) a 10 (massimo). Il valore predefinito è 4.", hotkey = "Cambia le scorciatoie da tastiera.", apply_shift_scrollspeed = "Applica la velocità di scorrimento dello spostamento selezionata.", right_mouse_scrolling = "Attiva/disattiva il pulsante del mouse utilizzato per scorrere la mappa", cancel_scrollspeed = "Esci senza cambiare la velocità di scorrimento.", zoom_speed = "Imposta la velocità di zoom della telecamera da 10 (minimo) a 1000 (massimo). Il valore predefinito è 80.", language_dropdown_no_font = "Seleziona un font nelle impostazioni delle cartelle per abilitare questa lingua", cancel_zoomspeed = "Esci senza cambiare la velocità di zoom", cancel_shift_scrollspeed = "Esci senza cambiare la velocità di scorrimento con Maiusc.", check_for_updates = "Imposta se il gioco deve cercare aggiornamenti all'avvio.", apply_zoomspeed = "Applica la velocità di zoom selezionata.", apply_scrollspeed = "Applica la velocità di scorrimento selezionata.", } audio_window = { audio = "Audio globale", jukebox = "Jukebox", back = "Indietro", } tooltip.audio_window = { audio_button = "Attiva o disattiva tutti i suoni del gioco", audio_toggle = "Attiva o Disattiva Audio", jukebox = "Apri il Jukebox per controllare la musica", } customise_window = { caption = "Impostazioni personalizzate", option_on = "On", option_off = "Off", back = "Indietro", movies = "Controllo filmati globale", intro = "Riproduci filmato introduttivo", paused = "Costruzione durante la pausa", volume = "Scorciatoia volume basso", aliens = "Pazienti alieni", fractured_bones = "Ossa rotte", average_contents = "Oggetti frequenti", remove_destroyed_rooms = "Rimuovi stanze distrutte", } tooltip.customise_window = { movies = "Controllo filmati globale, questo ti permette di disattivare tutti i filmati", intro = "Disattiva o attiva la riproduzione del filmato introduttivo. I filmati globali devono essere attivati se vuoi che il filmato introduttivo venga riprodotto ogni volta che avvii CorsixTH", paused = "In Theme Hospital al giocatore è consentito utilizzare il menu in alto solo se il gioco è in pausa. Questa è l'impostazione predefinita anche in CorsixTH, ma attivandola tutto è consentito mentre il gioco è in pausa", volume = "Se il pulsante per abbassare il volume ti fa aprire anche il Registro Cure, attiva questa opzione per impostare Shift + C come scorciatoia per il Registro Cure", aliens = "A causa dell'assenza delle giuste animazioni abbiamo fatto sì che i pazienti con DNA Alieno possano arrivare solo con un'emergenza. Per permettere ai pazienti con DNA Alieno di visitare il tuo ospedale anche al di fuori delle emergenze disattiva questa opzione", fractured_bones = "A causa della scarsa qualità di alcune animazioni abbiamo fatto sì che non ci siano pazienti donne con Ossa Rotte. Per far sì che donne con Ossa Rotte visitino il tuo ospedale, disattiva questa opzione", average_contents = "Se vuoi che il gioco ricordi quali oggetti extra aggiungi di solito quando crei una stanza attiva questa opzione", back = "Chiudi questo menù e torna al menù delle impostazioni", remove_destroyed_rooms = "Se desideri poter rimuovere le stanze distrutte a pagamento, attiva questa opzione", } folders_window = { caption = "Posizione cartelle", data_label = "Posizione TH", font_label = "Font", music_label = "Musica", savegames_label = "Salvataggi", screenshots_label = "Screenshot", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "Qui puoi specificare una nuova directory di installazione di Theme Hospital o un file ISO. Non appena scegli la nuova directory, il gioco verrà riavviato. Tieni presente che le estensioni dei file non sono attualmente visualizzate.", savegames_location = "Seleziona la cartella che vuoi usare per i salvataggi", music_location = "Seleziona la cartella che vuoi usare per la tua musica", screenshots_location = "Seleziona la cartella che vuoi usare per i tuoi screenshot", back = "Indietro", } tooltip.folders_window = { browse = "Sfoglia le cartelle", data_location = "La cartella dell'installazione originale di Theme Hospital, che è richiesto per eseguire CorsixTH", font_location = "Posizione di un font che è in grado di mostrare i caratteri Unicode richiesti dalla tua lingua. Se non specificata, non potrai scegliere lingue che hanno bisogno di più caratteri rispetto a quelli di cui dispone il gioco originale. Esempio: Russo e Cinese", savegames_location = "Per impostazione predefinita, la cartella dei salvataggi si trova accanto al file di configurazione e verrà utilizzata per archiviare i giochi salvati. In alternativa, puoi usarne un'altra selezionando quella che desideri utilizzare.", screenshots_location = "Per impostazione predefinita, la cartella dei salvataggi si trova accanto al file di configurazione. In alternativa, puoi usarne un'altra selezionando quella che desideri utilizzare.", music_location = "Seleziona la posizione per i tuoi file MP3. Devi aver già creato la cartella e poi selezionare la cartella che hai creato.", browse_data = "Sfoglia per selezionare un percorso diverso per l'installazione di Theme Hospital ( Percorso attuale: %1% )", browse_font = "Sfoglia per selezionare un altro file font ( posizione attuale: %1% )", browse_saves = "Sfoglia per selezionare un percorso diverso per la tua cartella dei salvataggi ( Percorso attuale: %1% ) ", browse_screenshots = "Sfoglia per selezionare percorso diverso per la tua cartella degli screenshot ( Percorso attuale: %1% ) ", browse_music = "Sfoglia per selezionare un percorso diverso per la tua cartella della musica ( Percorso attuale: %1% ) ", no_font_specified = "Non è stata ancora specificata nessuna posizione per il font!", not_specified = "Non è stato ancora specificato nessun percorso per la cartella!", default = "Posizione di default", reset_to_default = "Ripristina la cartella al suo percorso originario ( %1% )", back = "Chiudi questo menù e torna al menù delle impostazioni", } hotkey_window = { button_accept = "Accetta", button_back = "Indietro", button_cancel = "Cancella", button_defaults = "Ripristina impostazioni predefinite", button_gameSpeedKeys = "Tasti Velocità Gioco", button_recallPosKeys = "Richiama tasti Posizione", button_toggleKeys = "Attiva/Disattiva Tasti", caption_main = "Assegnazione Scorciatoie", caption_panels = "Tasti Pannello", global_cancel = "Cancella", global_cancel_alt = "Cancel Alt", global_confirm = "Conferma", global_confirm_alt = "Conferma Alt", global_connectDebugger = "Debugger", global_exitApp = "Esci da App", global_fullscreen_toggle = "Schermo Intero", global_releaseMouse = "Rilascia Puntatore", global_resetApp = "Reset App", global_runDebugScript = "Script per Debug", global_screenshot = "Screenshot", global_showLuaConsole = "Console Lua", global_stop_movie_alt = "Ferma Video", global_window_close_alt = "Chiudi Finestra", ingame_gamespeed_max = "Max", ingame_gamespeed_normal = "Normale", ingame_gamespeed_slower = "Rallenta", ingame_gamespeed_slowest = "Lentissimo", ingame_gamespeed_speedup = "Accellera", ingame_gamespeed_thensome = "E ancora", ingame_jukebox = "Jukebox", ingame_loadMenu = "Carica Gioco", ingame_openFirstMessage = "Messaggio Livello", ingame_panel_bankManager = "Azioni Banca", ingame_panel_bankStats = "Saldo in Banca", ingame_panel_buildRoom = "Costruisci Stanza", ingame_panel_casebook = "Diario clinico", ingame_panel_casebook_alt = "Diario clinico 2", ingame_panel_casebook_alt02 = "Diario clinico 3", ingame_panel_charts = "Grafici", ingame_panel_editRoom = "Modifica Stanza", ingame_panel_furnishCorridor = "Arreda Corridoio", ingame_panel_hireStaff = "Assumi Personale", ingame_panel_map_alt = "Mappa Città 2", ingame_panel_policy = "Policy", ingame_panel_research = "Ricerca", ingame_panel_research_alt = "Ricerca 2", ingame_panel_staffManage = "Gestisci il Personale", ingame_panel_status = "Status", ingame_panel_townMap = "Mappa Città", ingame_patient_gohome = "Manda a Casa", ingame_pause = "Pausa", ingame_poopLog = "Visualizza Log", ingame_poopStrings = "Visualizza Stringhe", ingame_quickLoad = "Carica Salvataggio Veloce", ingame_quickSave = "Salvataggio Veloce", ingame_quitLevel = "Esci dal Livello", ingame_recallPosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_reset_zoom = "Reimposta Zoom", ingame_restartLevel = "Riavvia Livello", ingame_rotateobject = "Ruota Oggetto", ingame_saveMenu = "Salva Gioco", ingame_scroll_down = "Scorri in Basso", ingame_scroll_left = "Scorri a Sinistra", ingame_scroll_right = "Scorri a Destra", ingame_scroll_shift = "Velocità Maiusc", ingame_scroll_up = "Scorri in Alto", ingame_setTransparent = "Trasparente", ingame_showCheatWindow = "Menu Cheat", ingame_showmenubar = "Mostra barra dei Menu", ingame_storePosition_0 = "10", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_toggleAdvisor = "Consulente", ingame_toggleAnnouncements = "Annunci", ingame_toggleInfo = "Info", ingame_toggleMusic = "Musica", ingame_toggleSounds = "Suoni", ingame_zoom_in = "Zoom", ingame_zoom_in_more = "Ingrandisci", ingame_zoom_out = "Rimpicciolisci", ingame_zoom_out_more = "Rimpicciolisci", panel_altPanelKeys = "Tasti Pannello Alternativi", panel_debugKeys = "Tasti Debug", panel_gameSpeedKeys = "Tasti Velocità Gioco", panel_generalInGameKeys = "Tasti Generali di Gioco", panel_globalKeys = "Tasti Generali", panel_recallPosKeys = "Richiama Tasti di Posizione", panel_scrollKeys = "Tasti Scorrimento", panel_storePosKeys = "Salvare Tasti di Posizione", panel_toggleKeys = "Attiva/Disattiva Tasti", panel_zoomKeys = "Tasti Zoom", } font_location_window = { caption = "Scegli il font (%1%)", } handyman_window = { all_parcels = "Tutti i lotti", parcel = "Lotto" } tooltip.handyman_window = { parcel_select = "Il lotto dove l'inserviente può operare, clicca per cambiarlo" } new_game_window = { caption = "Campagna", player_name = "Nome del giocatore", option_on = "On", option_off = "Off", difficulty = "Difficoltà", easy = "Assistente (Facile)", medium = "Dottore (Medio)", hard = "Consulente (Difficile)", tutorial = "Tutorial", start = "Comincia", cancel = "Annulla", } tooltip.new_game_window = { player_name = "Inserisci il nome col quale vuoi essere chiamato nel gioco", difficulty = "Seleziona il livello di difficoltà a cui vuoi giocare", easy = "Se non sei pratico di simulatori questa è l'opzione per te", medium = "Questa è la via di mezzo se non sei sicuro su cosa scegliere", hard = "Se sei abituato a questo tipo di giochi e vuoi una sfida più impegnativa, scegli questa opzione", tutorial = "Se vuoi aiuto per cominciare mentre sei in gioco, spunta questa casella", start = "Avvia il gioco con le impostazioni scelte", cancel = "Oh, non volevo davvero cominciare una nuova partita!", } lua_console = { execute_code = "Esegui", close = "Chiudi", } tooltip.lua_console = { textbox = "Inserisci qui il codice Lua da eseguire", execute_code = "Esegui il codice che hai inserito", close = "Chiudi la console", } errors = { dialog_missing_graphics = "I file dei dati della demo non contengono questa stringa.", save_prefix = "Errore durante il salvataggio: ", load_prefix = "Errore durante il caricamento: ", no_games_to_contine = "Non ci sono partite salvate.", load_quick_save = "Errore, non è possibile caricare il salvataggio veloce perché non esiste, ma non preoccuparti: ne abbiamo appena creato uno al posto tuo!", map_file_missing = "Non ho potuto trovare la mappa %s per questo livello!", minimum_screen_size = "Per favore inserisci almeno una risoluzione di %dx%d.", unavailable_screen_size = "La risoluzione che hai richiesto non è disponibile a schermo intero.", alien_dna = "NOTA: Non ci sono animazioni per i pazienti Alieni per quando si siedono, aprono o bussano sulle porte etc. Quindi, così come in Theme Hospital, mentre fanno queste cose appariranno normali per poi tornare ad apparire alieni. I pazienti con DNA Alieno appariranno solo se impostati dal file del livello", fractured_bones = "NOTA: L'animazione per i pazienti donne con Ossa Rotte non è perfetta", could_not_load_campaign = "Errore nel caricare la campagna: %s", could_not_find_first_campaign_level = "Non è stato possibile trovare il primo livello di questa campagna: %s", load_map_prefix = "Errore nel caricamento della Mappa: ", save_to_tmp = "Il file al percorso %s non può essere usato. Il gioco è stato salvato qui %s. Errore: %s", load_level_prefix = "Errore durante il caricamento del livello: ", compatibility_error = { new_in_old = "Mi dispiace, ma questo salvataggio è stato creato con una versione più recente di CorsixTH e non è compatibile. Per favore, aggiorna a una versione più recente.", full_in_demo = "Mi dispicae, non puoi aprire un salvataggio completo del gioco con i file demo caricati. Aggiorna il percorso della cartella Dati di TH.", demo_in_full = "Spiacenti, non puoi aprire un salvataggio demo con i file di gioco completi caricati. Aggiorna il percorso della cartella Dati di TH.", }, dialog_empty_queue = "Mi dispiace, un umanoide aveva una coda di azioni vuota, il che significa che non sapeva cosa doveva fare. Consultare la finestra di comando per informazioni più dettagliate. È stato aperto un dialogo con l'umanoide incriminato. Vorresti che lasciasse l'ospedale?", } warnings = { levelfile_variable_is_deprecated = "Attenzione: Il livello %s contiene una definizione di variabile deprecata nel file di livello." .. "'%LevelFile' è stato rinominato in '%MapFile'. Per favore richiedi al creatore della mappa di aggiornare il livello.", newersave = "Attenzione, hai caricato un salvataggio da una versione più recente di CorsixTH. Non è consigliabile continuare poiché potrebbero verificarsi arresti anomali. Gioca a tuo rischio.", } confirmation = { needs_restart = "Cambiare questa impostazione richiede che CorsixTH sia riavviato. Ogni progresso non salvato sarà perduto. Sei sicuro di volerlo fare?", abort_edit_room = "Stai attualmente costruendo o modificando una stanza. Se tutti gli oggetti richiesti sono stati posizionati sarà completata, altrimenti sarà cancellata. Continuare?", maximum_screen_size = "La risoluzione che hai inserito è superiore a 3000x2000. Risoluzioni maggiori sono supportate, ma richiederanno un hardware migliore per mantenere un livello di frame rate giocabile. Sei sicuro di voler continuare?", music_warning = "Nota: è necessario avere la libreria smpeg.dll o equivalente nel tuo sistema operativo, altrimenti non sentirai alcuna musica nel gioco. Vuoi continuare?", --This next line isn't in the english.lua, but when strings are dump it is reported missing restart_level = "Sei sicuro di voler riavviare il livello?", remove_destroyed_room = "Vuoi rimuovere la stanza per $X?", } information = { custom_game = "Benvenuto in CorsixTH. Divertiti con questa mappa personalizzata!", no_custom_game_in_demo = "Spiacente, ma nella versione demo non puoi giocare mappe personalizzate.", cannot_restart = "Sfortunatamente questa mappa personalizzata è stata salvata prima che venisse implementata la funzione per riavviare.", very_old_save = "Il gioco è stato molto aggiornato da quando hai avviato questo livello. Per assicurarti che tutto funzioni a dovere, considera l'idea di riavviarlo.", level_lost = { "Peccato! Hai perso il livello. Avrai più fortuna la prossima volta!", "Hai perso perchè:", reputation = "Hai ucciso più del %d percento dei pazienti.", balance = "Il tuo conto in banca è sceso sotto %d.", percentage_killed = "Hai ucciso più del %d dei pazienti.", cheat = "È stata una tua scelta o hai selezionato il pulsante sbagliato? Non riesci nemmeno a barare correttamente. Divertente, vero?", }, cheat_not_possible = "Non puoi usare questo cheat in questo livello. Non riesci nemmeno a barare correttamente. Divertente, vero?", } tooltip.information = { close = "Chiudi la finestra delle informazioni", } totd_window = { tips = { "Ogni ospedale per funzionare ha bisogno di alcune strutture di base. Inizia con una reception e un ambulatorio, e il personale necessario. Una volta iniziato, dipenderà tutto dal tipo di pazienti che visiteranno il tuo ospedale. Qualche stanza per le diagnosi e una farmacia sono una buona scelta per iniziare.", "I macchinari come la Pompa hanno bisogno di manutenzione più o meno costante. Assumi qualche tuttofare per ripararle, o rischierai che i pazienti e il tuo staff si facciano male.", "Il tuo staff lavora duramente, e ogni tanto ha bisogno di riposare. Costruisci una sala del personale per loro.", "Ricordati di fornire il tuo ospedale di un impianto di riscaldamento funzionante, o lo staff ed i pazienti rimarranno infelici e infreddoliti.", "Il livello di competenza influenza in maniera enorme la qualità e la velocità delle diagnosi. Assegnando un dottore molto abile al tuo ambulatorio non avrai bisogno di costruire molte strutture di diagnosi addizionali.", "Assistenti e dottori possono aumentare il loro livello di competenza imparando da un consulente nella sala tirocinio. Se il consulente è anche uno specialista (chirurgo, psichiatra e/o ricercatore), passerà le sue conoscente ai suoi studenti.", "Hai provato a digitare il numero di emergenza europea (112) nel fax? Assicurati di avere l'audio attivato!", "Il menu d'opzioni non è ancora implementato, ma puoi regolare le impostazioni modificando il file config.txt nella directory di gioco.", "Hai selezionato la tua lingua, ma è tutto in Inglese? Aiutaci a tradurre il gioco!", "Il team di CorsixTH sta cercando rinforzi! Ti piacerebbe programmare, tradurre o creare nuovi elementi grafici per CorsixTH? Contattaci nei forum, tramite mail o sul canale IRC (corsix-th su freenode).", "Hai trovato un bug? Vuoi segnalare un errore di qualsiasi genere? Invia una segnalazione al nostro bug tracker: th-issues.corsix.org", "Ogni livello ha degli obiettivi da raggiungere prima di poter passare al successivo. Controlla la finestra di riepilogo per vedere a che punto sei.", "Se vuoi modificare o rimuovere una stanza esistente, puoi farlo con il tasto modifica stanza nella barra degli strumenti in basso.", "In un'orda di pazienti in attesa, puoi vedere velocemente chi sta aspettando il proprio turno per una stanza particolare spostando il mouse sulla stanza.", "Clicca sulla porta di una stanza per vederne la coda. Puoi fare diverse cose utili, come riordinare la coda o mandare il paziente in un'altra stanza.", "Se il personale è infelice chiederà spesso aumenti di salario. Assicurati che il tuo staff stia lavorando in un'ambiente di lavoro confortevole per evitare che accada.", "I pazienti avranno sete durante le attese, soprattutto se alzi il riscaldamento! Piazza i distributori di bevande in posizioni strategiche per un po' di guadagni extra. ", "Puoi cancellare prematuramente il processo di diagnosi per un paziente e deciderne la cura se hai già incontrato la malattia. Fai attenzione però, dato che fare ciò può incrementare il rischio di una cura sbagliata, risultando nella morte del paziente.", "Le emergenze possono essere una buona fonte di guadagno extra, sempre che tu abbia i mezzi sufficienti a gestire l'emergenza in tempo.", "Sapevi che puoi assegnare i Tuttofare ad aree specifiche? Basta fare clic sul testo Tutte le aree nel profilo dello staff per scorrerle!", }, previous = "Suggerimento precedente", next = "Suggerimento successivo", } tooltip.totd_window = { previous = "Passa al suggerimento precedente", next = "Passa al suggerimento successivo", } debug_patient_window = { caption = "Debug paziente", } tooltip.debug_patient_window = { item = "Crea un paziente debug con %s", } cheats_window = { caption = "Cheat", warning = "Attenzione: non riceverai alcun punto bonus alla fine del livello se usi i trucchi!", cheated = { no = "Cheat usati: No", yes = "Cheat usati: Sì", }, cheats = { money = "Cheat soldi", all_research = "Completa ricerche", emergency = "Crea emergenza", vip = "Crea VIP", earthquake = "Crea terremoto", epidemic = "Genera paziente contagioso", toggle_infected = "Attiva o disattiva icone infetti", create_patient = "Crea paziente", end_month = "Fine mese", end_year = "Fine anno", lose_level = "Perdi livello", win_level = "Vinci livello", increase_prices = "Aumenta prezzi", decrease_prices = "Diminuisci prezzi", toggle_earthquake = "Attiva/Disattiva terremoti", reset_death_count = "Azzera il conto dei decessi", max_reputation = "Reputazione Massima", toggle_epidemic = "Attiva/Disattiva epidemie", show_infected = "Mostra/Nascondi icone infezione", }, close = "Chiudi", } tooltip.cheats_window = { close = "Chiudi il menu dei trucchi", cheats = { money = "Aggiunge 10.000 al tuo conto in banca.", all_research = "Completa tutte le ricerche.", emergency = "Crea un'emergenza.", vip = "Crea un VIP.", earthquake = "Crea un terremoto.", epidemic = "Crea un paziente contagioso che potrebbe causare un'epidemia", toggle_infected = "Attiva o disattiva le icone infetti per le epidemie attive scoperte", create_patient = "Crea un paziente sul bordo della mappa.", end_month = "Salta alla fine del mese.", end_year = "Salta alla fine dell'anno.", lose_level = "Perdi il livello corrente.", win_level = "Vinci il livello corrente.", increase_prices = "Aumenta tutti i prezzi del 50% (max 200%)", decrease_prices = "Diminuisci tutti i prezzi del 50% (min 50%)", toggle_earthquake = "Attiva/Disattiva terremoti", reset_death_count = "Azzerare il conteggio dei decessi in ospedale", max_reputation = "Imposta la reputazione dell'ospedale al massimo", toggle_epidemic = "Attiva/Disattiva la possibilità di epidemie", show_infected = "Mostra/nascondi le icone infezione per l'epidemia attiva e scoperta", } } introduction_texts = { demo = "Benvenuto nell'ospedale demo!//" .. "Sfortunatamente la versione demo contiene solo questo livello. Ad ogni modo c'è abbastanza da fare per tenerti occupato per un bel po'! " .. "Incontrerai diverse malattie che richiederanno diverse cliniche per essere curate. Ogni tanto potrebbero presentarsi delle emergenze. " .. "E avrai bisogno di ricercare nuove strumentazioni tramite il centro ricerche. " .. "Il tuo obiettivo è di guadagnare $100,000, avere un ospedale che valga $70,000 e una reputazione di 700, oltre che curare almeno il 75% dei tuoi pazienti. " .. "Assicurati che la tua reputazione non scenda al di sotto di 300 e di non uccidere più del 40% dei tuoi pazienti, o perderai.//" .. "Buona fortuna!", } calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d chiamate; %d assegnate", staff = "%s - %s", watering = "Annaffiare @ %d,%d", repair = "Riparazione %s", close = "Chiudi", } tooltip.calls_dispatcher = { task = "Lista dei compiti - clicca il compito per aprire la finestra del membro del personale assegnato e scorrere alla posizione del compito", assigned = "Questo box è segnato se qualcuno è assegnato al compito corrispondente.", close = "Chiude la finestra del gestore chiamate", } update_window = { caption = "Aggiornamento disponibile!", new_version = "Nuova versione:", current_version = "Versione attuale:", download = "Vai alla pagina del download", ignore = "Salta e vai al menù principale", } tooltip.update_window = { download = "Vai alla pagina di download per trovare l'ultima versione di CorsixTH", ignore = "Ignora l'aggiornamento per ora. Questa notifica apparirà di nuovo al prossimo avvio di CorsixTH", } map_editor_window = { pages = { inside = "Interno", outside = "Esterno", foliage = "Fogliame", hedgerow = "Siepe", pond = "Laghetto", road = "Strada", north_wall = "Muro nord", west_wall = "Muro ovest", helipad = "Eliporto", delete_wall = "Cancella muri", parcel = "Pacco %d", set_parcel = "Imposta num pacco", set_parcel_tooltip = "Scegli un numero e premi Invio.", camera_1 = "Telecamera 1", camera_2 = "Telecamera 2", camera_3 = "Telecamera 3", camera_4 = "Telecamera 4", heliport_1 = "Eliporto 1", heliport_2 = "Eliporto 2", heliport_3 = "Eliporto 3", heliport_4 = "Eliporto 4", paste = "Incolla area", }, checks = { spawn_points_and_path = "Avvertenza: i pazienti non possono raggiungere l'ospedale. Hanno bisogno di caselle 'strada' o caselle grigie 'esterne' sul bordo della mappa e di un percorso fino all'ingresso dell'ospedale.", }, } tooltip = { hotkey_window = { button_accept = "Accetta e salva i tasti scorciatoia", button_cancel = "Cancella l'assegnazione e torna al menu opzioni", button_recallPosKeys = "Apri una finestra per impostare scorciatoie per salvare e richiamare posizioni della telecamera", caption_panels = "Open window to assign panel keys", button_back_02 = "Torna alla finestra principale delle scorciatoie. Cio' che hai cambiato in questa finestra può essere salvato li'", button_defaults = "Ripristina tutte le scorciatoie alle impostazioni predefinite del programma", button_gameSpeedKeys = "Apri la finestra per impostare i tasti che controllano la velocità del gioco", } } level_progress = { cured_enough_patients = "Hai curato abbastanza pazienti, ma devi migliorare ancora il tuo ospedale per vincere il livello.", hospital_value_enough = "Mantieni il valore del tuo ospedale al di sopra di %d e occupati dei tuoi altri problemi per vincere il livello.", } disease_discovered_patient_choice.need_to_employ = "Assumi un %s per poter gestire questa sitazione." transactions.remove_room = "Costruzione: rimuovi stanza distrutta" multiplayer.everyone_failed = "Nessuno è riuscito ad arrivare a duell'ultimo obiettivo. Quindi tutti possono continuare a giocare!" multiplayer.players_failed = "I seguenti giocatori non sono riusciti a raggiungere l'ultimo obiettivo:" -------------------------------- UNUSED ----------------------------------- ------------------- (kept for backwards compatibility) ---------------------- options_window.change_resolution = "Cambia risoluzione" tooltip.options_window.change_resolution = "Cambia la risoluzione della finestra con le dimensioni inserite a sinistra" -- I added those lines because I didn't like 'em to show up in every diff dump! original_credits[302] = "," original_credits[303] = "Steve Fitton" original_credits[304] = " " original_credits[305] = " " original_credits[306] = " " original_credits[307] = ":Company Administration" original_credits[308] = "," original_credits[309] = "Audrey Adams" original_credits[310] = "Annette Dabb" original_credits[311] = "Emma Gibbs" original_credits[312] = "Lucia Gobbo" original_credits[313] = "Jo Goodwin" original_credits[314] = "Sian Jones" original_credits[315] = "Kathy McEntee" original_credits[316] = "Louise Ratcliffe" original_credits[317] = " " original_credits[318] = " " original_credits[319] = " " original_credits[320] = ":Company Management" original_credits[321] = "," original_credits[322] = "Les Edgar" original_credits[323] = "Peter Molyneux" original_credits[324] = "David Byrne" original_credits[325] = " " original_credits[326] = " " original_credits[327] = ":Tutti alla Bullfrog Productions" original_credits[328] = " " original_credits[329] = " " original_credits[330] = " " original_credits[331] = ":Un Ringraziamento Speciale A" original_credits[332] = "," original_credits[333] = "Tutti al Frimley Park Hospital" original_credits[334] = " " original_credits[335] = ":Specialmente" original_credits[336] = "," original_credits[337] = "Beverley Cannell" original_credits[338] = "Doug Carlisle" original_credits[339] = " " original_credits[340] = " " original_credits[341] = " " original_credits[342] = ":Keep On Thinking" original_credits[343] = " " original_credits[344] = " " original_credits[345] = " " original_credits[346] = " " original_credits[347] = " " original_credits[348] = " " original_credits[349] = " " original_credits[350] = " " original_credits[351] = " " original_credits[352] = " " original_credits[353] = " " original_credits[354] = " " original_credits[355] = " " original_credits[356] = " " original_credits[357] = " " original_credits[358] = " " original_credits[359] = " " original_credits[360] = " " original_credits[361] = "." CorsixTH-0.70.0/CorsixTH/Lua/languages/japanese.lua000066400000000000000000005063021522247547500220070ustar00rootroot00000000000000--[[ Copyright (c) 2024 ShimaKen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("unicode") Language("日本語", "Japanese", "ja", "jp") Inherit("english") Inherit("original_strings", 6) Encoding(utf8) IsArabicNumerals(false) main_menu = { new_game = "新��始�る", custom_campaign = "カスタムキャンペーン", custom_level = "カスタムシナリオ", continue = "続��ら始�る", load_game = "ロード", options = "オプション", map_edit = "マップエディター", savegame_version = "セーブデータ��ージョン: ", updates_off = "アップデートをオフ��る", version = "�ージョン: ", exit = "ゲームを終了�る", } tooltip.main_menu = { new_game = "キャンペーン�最��レベルを開始���", network = "マル�プレイを開始���", custom_campaign = "コミュニティ�よ��作��れ�キャンペーン�����", custom_level = "�一シナリオ�����", continue = "最後��ん�����ら�開���", load_game = "セーブデータを�択���開���", options = "�����設定を���", map_edit = "カスタムマップを作り��", exit = "�や�や�ゲームをや���������", quit = "CorsixTHをや�よ�������。 本当�や�������?", } new_game_window = { caption = "キャンペーン", player_name = "プレイヤー�", option_on = "オン", option_off = "オフ", difficulty = "難易度", easy = "ジュニア (イージー)", medium = "ドクター (ミディアム)", hard = "コンサルタント (�ード)", tutorial = "�ュートリアル", start = "スタート", cancel = "キャンセル", } menu_options_warmth_colors = { choice_1 = " 赤 ", choice_2 = " � 緑 赤 ", choice_3 = " 黄 橙 赤 ", } date_format = { daymonth = "%2%/%1%", } custom_game_window = { caption = "カスタムシナリオ", free_build = "フリービルド", load_selected_level = "スタート", } tooltip.custom_game_window = { choose_game = "レベルをクリック�る�詳細�表示�れ��", free_build = "�金や��負���件���プレイ���場�����ボックス��ェックを入れ�����", load_selected_level = "�択��レベルをロード������", } load_game_window = { caption = "ゲームをロード�る (%1%)", load_button = "ロード", } save_game_window = { caption = "ゲームをセーブ�る (%1%)", new_save_game = "新��セーブ", missing_filename = "新��セーブデータ�を入力�る� 上書��るセーブデータを�択������", save_button = "セーブ", } folders_window = { caption = "フォルダ�場所", data_label = "テーマホスピタル�データ", font_label = "フォント", music_label = "ミュージック", savegames_label = "セーブデータ", screenshots_label = "スクリーンショット", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "����新��テーマホスピタル� インストール�れ�ディレクトリ ��� ISOファイルを指定����。 新��ディレクトリを�択�る����ゲーム��起動�れ��。 ファイル拡張���在表示�れ��ん。", savegames_location = "�存�使用�るディレクトリを�択������", music_location = "音楽�使用�るディレクトリを�択������", screenshots_location = "スクリーンショット�使用�るディレクトリを�択������", back = "戻る", } tooltip.folders_window = { browse = "フォルダ�場所を�照", data_location = "CorsixTHを実行�る���必���元�テーマホスピタルをインストール��ディレクトリ���ISOファイル�場所", font_location = "�択��言語�必��Unicode文字を表示��るフォントファイル�場所 。�れを指定���場��元�ゲーム��供�れ��る文字種よりも多��文字を必���る言語を�択�����り��。 例: 日本語�ロシア語や中国語", savegames_location = "デフォルト����存ディレクトリ�設定ファイル�隣��り�セーブデータを�存�る���使用�れ��。 ����使用�るディレクトリを�照��独自�ディレクトリを�択�る��も����。", screenshots_location = "デフォルト���スクリーンショット�設定ファイル�隣��るフォルダ��存�れ��。 ����使用�るディレクトリを�照��独自�ディレクトリを�択�る��も����。", music_location = "ディレクトリを�照��音楽ファイル�場所を�択���。 (ディレクトリ�既�存在���る必���り��)", browse_data = "テーマホスピタル�インストール�れ��る別�場所を�択��� (�在�場所: %1% ) ", browse_font = "別�フォントを�択��� ( �在�場所: %1% ) ", browse_saves = "セーブデータを�存�る別�場所を�択��� ( �在�場所: %1% ) ", browse_screenshots = "スクリーンショットを�存�る別�場所を�択��� ( �在�場所: %1% ) ", browse_music = "音楽�使用�る別�場所を�択��� ( �在�場所: %1% ) ", no_font_specified = "フォント�設定�れ����ん�", not_specified = "フォルダ�設定�れ����ん�", default = "デフォルト設定���", reset_to_default = "デフォルト設定�リセット��� ( %1% )", back = "メニューを閉��設定メニュー�戻り��", } customise_window = { caption = "カスタム設定", option_on = "オン", option_off = "オフ", back = "戻る", movies = "グロー�ルムービー�設定", intro = "オープニングムービー��生", paused = "一時�止中�建築�る", volume = "音�を下�るホットキー", aliens = "エイリアンDNA病", fractured_bones = "骨折", average_contents = "��も�設備", remove_destroyed_rooms = "破壊�れ�部屋を撤去", } tooltip.customise_window = { movies = "����ムービーをオフ�設定����", intro = "オープニングムービーをオン/オフ����。 CorsixTHをロード�る���オープニングムービーを�生���場���グロー�ルムービーをオン��る必���り��", paused = "テーマホスピタル��ゲーム�一時�止�れ��る場��プレーヤー�メニュー��を使用����。 �れ�CorsixTH�もデフォルト設定�����れをオン��る��ゲーム�一時�止�れ��る間�����行動�許��れ��", volume = "ボリュームを下�るボタン�ケースブックも開�����場�����れをオン���ケースブック�ホットキーを Shift + C �変更���", aliens = "�切�アニメーション������エイリアンDNA病�患者�緊急�請�場�����院�る設定をデフォルト������。 エイリアンDNA病�患者�緊急�請以外�も�院�るよ���る����れをオフ����。", fractured_bones = "アニメーション���分��る���骨折��女性患者��院���設定をデフォルト������。 骨折��女性患者も�院�るよ���る�����オプションをオフ�������。", average_contents = "部屋を建�る���������も追加�る設備をゲーム�記憶����場�����オプションをオン�������", remove_destroyed_rooms = "破壊�れ�部屋を有料�撤去���場�����オプションをオン�������", back = "メニューを閉��設定メニュー�戻り��", } options_window = { caption = "設定", fullscreen = "フルスクリーン", option_on = "オン", option_off = "オフ", check_for_updates = "アップデート�確�", option_enabled = "オン", option_disabled = "オフ", resolution = "解�度", capture_mouse = "カーソル�移動範囲", right_mouse_scrolling = "マップスクロール", right_mouse_scrolling_option_middle = "真ん中�ボタン", right_mouse_scrolling_option_right = "��ボタン", custom_resolution = "カスタム...", width = "横幅 / width", height = "高� / Height", customise = "カスタム設定", folder = "フォルダ�場所", language = "言語", apply = "決定", cancel = "キャンセル", back = "戻る", scrollspeed = "スクロール速度", shift_scrollspeed = "スクロール速度 (+Shift)", zoom_speed = "ズーム速度", hotkey = "ホットキー�設定", change_resolution = "解�度�変更", } tooltip.options_window = { fullscreen = "ゲームをフルスクリーンモード�ウィンドウモード���ら�実行�る�を設定����", fullscreen_button = "オン��る�フルスクリーンモード��り��", resolution = "ゲーム�解�度を設定����", select_resolution = "新��解�度を�択������", capture_mouse = "オン��る�マウスカーソル�画�外�出���り��", right_mouse_scrolling = "マップをスクロール�るマウスボタンを切り替���", width = "�希望�画�幅を入力������", height = "�希望�画�高�を入力������", apply = "入力��解�度�決定�る", cancel = "解�度を変更���戻る", customise_button = "ゲーム体験����より詳細�設定�����", folder_button = "フォルダオプション��", language = "ゲーム内�使用言語��", select_language = "言語を�択������", language_dropdown_item = " %s を�択�る", language_dropdown_no_font = "��言語を�択�る����フォルダ�設定�らフォントを�択������", back = "ウインドウを閉��戻り��", scrollspeed = "スクロール速度を 1(��) �ら 10(速�) �間�設定���。デフォルト�2��。", shift_scrollspeed = "Shiftキーを押��時�スクロール速度を 1(��) �ら 10(速�) �間�設定���。 デフォルト�4��。", zoom_speed = "カメラ�ズーム速度を 10(��) �ら 1000(速�) �間�設定���。 デフォルト�80��。", apply_scrollspeed = "入力��スクロール速度�決定�る", cancel_scrollspeed = "スクロール速度を変更���戻る", apply_shift_scrollspeed = "入力��+Shiftスクロール速度�決定�る", cancel_shift_scrollspeed = "+Shiftスクロール速度を変更���戻る", apply_zoomspeed = "入力��ズーム速度�決定�る", cancel_zoomspeed = "ズーム速度を変更���戻る", hotkey = "ホットキー�設定を変更�る", check_for_updates = "アップデート����確��る", } audio_window = { audio = "オーディオ", jukebox = "ジュークボックス", back = "戻る", } tooltip.audio_window = { audio_button = "����音楽をオン/オフ�る", audio_toggle = "オン / オフを設定������", jukebox = "ジュークボックスを開�", } menu_list_window = { name = "��", back = "戻る", save_date = "更新日", ok = "決定", } update_window = { caption = "アップデート��り���", new_version = "新���ージョン:", current_version = "最新�ージョン: ", download = "ダウンロードページヘ", ignore = "スキップ��メインメニュー�", } save_map_window = { caption = "マップをセーブ�る (%1%)", new_map = "新��マップ", missing_filename = "新��マップ�を入力�る� 上書��るデータを�択������", save_button = "セーブ", } hotkey_window = { caption_main = "ホットキー�割り当�", caption_panels = "パ�ルキー", button_accept = "決定", button_defaults = "デフォルト�戻�", button_cancel = "キャンセル", button_back = "戻る", button_toggleKeys = "トグルキー", button_gameSpeedKeys = "ゲームスピードキー", button_recallPosKeys = "元�戻�キー", panel_globalKeys = "グロー�ルキー", panel_generalInGameKeys = "一般的�ゲーム内キー", panel_scrollKeys = "スクロールキー", panel_zoomKeys = "ズームキー", panel_gameSpeedKeys = "ゲームスピードキー", panel_toggleKeys = "トグルキー", panel_debugKeys = "デ�ッグキー", panel_storePosKeys = "場所を決定�るキー", panel_recallPosKeys = "場所を元�戻�キー", panel_altPanelKeys = "代替パ�ルキー", global_confirm = "確��る", global_confirm_alt = "確��る Alt", global_cancel = "キャンセル", global_cancel_alt = "キャンセル Alt", global_fullscreen_toggle = "フルスクリーン", global_exitApp = "ゲームをや�る", global_resetApp = "ゲームをリセット�る", global_releaseMouse = "マウスを放�", global_connectDebugger = "デ�ッガー", global_showLuaConsole = "Lua Console", global_runDebugScript = "Debug Script", global_screenshot = "スクリーンショット", global_stop_movie_alt = "ムービーを止�る", global_window_close_alt = "ウィンドウを閉�る", ingame_scroll_up = "上�スクロール", ingame_scroll_down = "下�スクロール", ingame_scroll_left = "左�スクロール", ingame_scroll_right = "��スクロール", ingame_scroll_shift = "スピード�変更", ingame_zoom_in = "ズームイン", ingame_zoom_in_more = "も��ズームイン", ingame_zoom_out = "ズームアウト", ingame_zoom_out_more = "も��ズームアウト", ingame_reset_zoom = "ズーム�リセット", ingame_showmenubar = "メニュー�ーを表示�る", ingame_showCheatWindow = "�ートメニュー", ingame_loadMenu = "ゲームをロード�る", ingame_saveMenu = "ゲームをセーブ�る", ingame_jukebox = "ジュークボックス", ingame_openFirstMessage = "レベル�メッセージ", ingame_pause = "一時�止", ingame_gamespeed_slowest = "最�", ingame_gamespeed_slower = "��", ingame_gamespeed_normal = "普通", ingame_gamespeed_max = "最速", ingame_gamespeed_thensome = "早�", ingame_gamespeed_speedup = "スピードアップ", ingame_panel_bankManager = "銀行マ�ージャー", ingame_panel_bankStats = "�座�状�", ingame_panel_staffManage = "Manage Staff", ingame_panel_townMap = "タウンマップ", ingame_panel_casebook = "治療記録", ingame_panel_research = "研究", ingame_panel_status = "経営状態", ingame_panel_charts = "Charts", ingame_panel_policy = "方�", ingame_panel_map_alt = "タウンマップ 2", ingame_panel_research_alt = "研究 2", ingame_panel_casebook_alt = "治療記録 2", ingame_panel_casebook_alt02 = "治療記録 3", ingame_panel_buildRoom = "部屋を建�る", ingame_panel_furnishCorridor = "設備�設置", ingame_panel_editRoom = "部屋を編集�る", ingame_panel_hireStaff = "スタッフを雇�", ingame_rotateobject = "設備を回転��る", ingame_quickSave = "クイックセーブ", ingame_quickLoad = "クイックロード", ingame_restartLevel = "レベルをリセット�る", ingame_quitLevel = "レベルをや�る", ingame_setTransparent = "Transparent", ingame_toggleAnnouncements = "アナウンス", ingame_toggleSounds = "サウンド", ingame_toggleMusic = "音楽", ingame_toggleAdvisor = "アド�イザー", ingame_toggleInfo = "Info", ingame_poopLog = "Dump Log", ingame_poopStrings = "Dump Strings", ingame_patient_gohome = "家��り返�", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_storePosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_recallPosition_0 = "10", } tooltip.hotkey_window = { button_accept = "ホットキー�設定を決定���存�る", button_defaults = "����ホットキー�設定をデフォルト�戻���", button_cancel = "変更をキャンセル��オプションメニュー�戻り��", caption_panels = "パ�ルキー�設定画�を開���", button_gameSpeedKeys = "ゲームスピードを変更�るキー設定�設定画�を開���", button_recallPosKeys = "カメラ�ジションを変更�るキー設定�設定画�を開���", button_back_02 = "ホットキー�設定メイン画��戻り��。 ��画���変更内容��用・�存�れ��", } tooltip.new_game_window = { player_name = "������ゲーム内�������を入力������", difficulty = "����ゲーム�難易度を�択������", easy = "シミュレーションゲームを���������れ���らを���", medium = "�れを�����迷���る�ら��ら�中間択��", hard = "��種�ゲーム�得��今回も挑戦����れ���ら�オススメ��", tutorial = "ゲーム���方�基本�キを学���クリック��オン�������", start = "�択��内容�ゲームを始���", cancel = "や��り新��ゲームを始�る�やー���", } tooltip.totd_window = { previous = "��ヒントを表示���", next = "次�ヒントを表示���", } tooltip.cheats_window = { close = "�ートダイアログを閉�る", cheats = { money = "$10,000を資金�追加�る", all_research = "����研究を完了�る", emergency = "緊急�請を1件起��", vip = "VIP�訪を1件起��", toggle_earthquake = "地震イベント�起�るよ���る", earthquake = "地震を発生��る", toggle_epidemic = "�染病イベント�起�るよ���る", epidemic = "�染病を引�起���能性��る�染性患者を作����", show_infected = "発見�れ��染病�感染者アイコンを表示/�表示����", create_patient = "1人�新�患者をマップ境界�作����", end_month = "月末�ジャンプ���", end_year = "年末�ジャンプ���", lose_level = "�在�レベルを失敗���", win_level = "�在�レベルをクリア���", increase_prices = "����料金を50%値上����(最大200%��)", decrease_prices = "����料金を50%値下����(最�50%��)", reset_death_count = "死者�数を��リセット���", max_reputation = "病院�評判を最大�設定���", } } custom_campaign_window = { caption = "カスタムキャンペーン", start_selected_campaign = "キャンペーンを始�る", } tooltip = { custom_campaign_window = { choose_campaign = "キャンペーンをクリック�る�詳細�表示�れ��", start_selected_campaign = "キャンペーン�最��レベルを開始���", }, information = { close = "情報ダイアログを閉�る", }, save_game_window = { save_game = "セーブデータ %s を上書��る", new_save_game = "新��セーブデータ���を入力�る", }, pay_rise_window = { accept = "支払��求�応�る", decline = "支払�������代�り�解雇�る", }, } load_map_window = { caption = "マップをロード�る (%1%)", load_button = "ロード", } dynamic_info = { patient = { emergency = "緊急事態: %s", guessed_diagnosis = "%s �推定診断", diagnosis_progress = "診断�進歩", actions = { sent_to_other_hospital = "他�病院��られ���", prices_too_high = "料金�高��る - 家�帰り��", no_gp_available = "新��診断設備���る�を待�����", waiting_for_treatment_rooms = "治療��る施設���る�を待�����", dying = "死���...", no_diagnoses_available = "正確�診断��れ����ん", epidemic_sent_home = "衛生検査官�よ��自宅��られ�", cured = "治��!", waiting_for_diagnosis_rooms = "診断設備�早���る�を待�����", epidemic_contagious = "�染病��!", awaiting_decision = "����決定待���", sent_home = "家�帰り��", fed_up = "����得����!", no_treatment_available = "治療�る設備��り��ん!", on_my_way_to = "%s �移動中", queueing_for = "%s �順番待�", epidemic_vaccinated = "ワク�ン接種済!", }, diagnosed = "診断確定: %s ", }, health_inspector = "衛生検査官", vip = "VIP", object = { times_used = "使用回数: %d", queue_size = "順番待�: %d", strength = "強�: %d", queue_expected = "列予想数: %d", strength_extra_info = "強度%d(最大強度 %d)" }, staff = { actions = { going_to_repair = "%s �修���������", fired = "クビ��れ���", waiting_for_patient = "患者待�", wandering = "ブラブラ�����", heading_for = "%s �移動中", vaccine = "ワク�ン", }, tiredness = "疲労度", -- psychiatrist_abbrev = "П�их.", ability = "能力:", }, } handyman_window = { all_parcels = "全��エリア", parcel = "エリア", } font_location_window = { caption = "フォントを�択������ (%1%)", } research = { allocated_amount = "資金�分", funds_allocation = "予算�分�計", categories = { diagnosis = "診断研究", cure = "治療研究", improvements = "改良研究", drugs = "薬�研究", specialisation = "特殊研究", }, } progress_report = { more_drinks_machines = "も��自販機を設置������。", quite_unhappy = "人々�本当��幸���。", header = "進�レ�ート", too_cold = "��ゃ��ゃ寒���。暖房機を設置������。", percentage_pop = "% �集団/人�", very_unhappy = "人々��幸���。", too_hot = "��ゃ��ゃ暑���。 暖房を調整������。", win_criteria = "�利�件", free_build = "自由建築", } policy = { staff_leave_rooms = "人手�足り��部屋�行�", header = "病院�方�", staff_rest = "休憩��る疲労度", diag_procedure = "診断手法", diag_termination = "診断終了", sliders = { guess = "����治療", send_home = "家�帰ら�る", stop = "処置をストップ", staff_room = "休憩を�る", }, } tooltip.policy = { staff_stay = "スタッフ��置�れ�部屋�ら出��よ���る����をクリック", close = "方�画�を閉�る", staff_rest = "スタッフ�休憩��るよ���る���疲労度", staff_leave = "暇���るスタッフ�人手を必�����る部屋�手���行��る����をクリック", diag_procedure = "医師�診断�「家�帰ら�る��値未満�場��患者�自宅��り返�れ��。 診断�「����治療�以上�場��患者��切�治療�施�れ��。", diag_termination = "患者�診断��医師�診断判定�「処置をストップ��指�値�����る����病院内全��診断機�検査を��終�る��続���。", } menu_charts = { casebook = " (%1%) 帳簿 ", staff_listing = " (%1%) スタッフリスト ", briefing = " BRIEFING ", town_map = " (%1%) タウンマップ ", research = " (%1%) 研究 ", status = " (%1%) 経営状態 ", statement = " (%1%) 状�報告 ", policy = " (%1%) 方� ", graphs = " (%1%) グラフ ", bank_manager = " (%1%) 銀行マ�ージャー ", } misc = { hospital_open = "開院", save_success = "セーブ��功����", save_failed = "注�:セーブ�失敗����", low_res = "ローレゾ", no_heliport = "病気���発見�れ��������地図��ヘリ�ート��り��ん。 �付デスクを建���付係を雇�必���る�も�れ��ん。", grade_adverb = { extremely = "��り", mildly = "����", moderately = "����", }, not_yet_implemented = "(��実装�れ����ん)", send_message = "プレイヤー�メッセージを�る %d", out_of_sync = "ゲーム��期�れ����ん", balance = "銀行残高", load_failed = "セーブデータをロード����ん���", mouse = "�ズミ", -- done = "Зроблено", -- force = "При�коренн�", pause = "一時�止", send_message_all = "����プレイヤー�メッセージを�信�る", cant_treat_emergency = "病気�発見�れ�����������病院���緊急事態を治療����ん。 �慮��も�一度試������。", epidemic_no_diseases = "�染病を作�����ん - 利用�能��染病��り��ん", earthquakes_on = "地震�無効�������", earthquakes_off = "地震���有効��り��", epidemics_off = "�染病�無効�������", epidemics_on = "�染病���有効��り��", epidemic_no_receptionist = "�染病を作�����ん - �付デスク�����付係����ん", epidemic_no_icon_to_toggle = "感染��アイコンを表示/�表示�����ん - アクティブ�未検出��染病��り��ん", } staff_list = { morale = "モラル", tiredness = "疲労度", skill = "スキル", total_wages = "賃金", } build_room_window = { pick_room_type = "部屋�タイプを�択������", pick_department = "部門を�択", cost = "コスト: ", } room_classes = { diagnosis = "検査", treatment = "治療", clinics = "処置", facilities = "施設", } rooms_short = { gps_office = "診察室", general_diag = "検査室", ultrascan = "超音波検査室", research_room = "研究室", fracture_clinic = "整骨科", staffroom = "スタッフルーム", jelly_vat = "ゼリー槽室", scanner = "スキャナー室", decontamination = "汚染除去室", pharmacy = "薬局", cardiogram = "心臓科", reception = "�付", training_room = "講義室", corridor_objects = "廊下��置", operating_theatre = "手術室", dna_fixer = "DNA修復室", ward = "病室", psychiatric = "精神科", hair_restoration = "増毛科", inflation = "空気注入室", tongue_clinic = "ベロ出�病クリニック", toilets = "トイレ", electrolysis = "電気脱毛室", x_ray = "レントゲン室", blood_machine = "血液調整機室", destroyed = "破壊", } rooms_long = { gps_office = "診察室", general_diag = "検査室", ultrascan = "超音波検査室", research_room = "研究室", fracture_clinic = "整骨科", staffroom = "スタッフルーム", jelly_vat = "ゼリー槽室", scanner = "スキャナー室", inflation = "空気注入室", decontamination = "汚染除去室", corridors = "廊下", cardiogram = "心臓科", ward = "病室", training_room = "講義室", psychiatric = "精神科", operating_theatre = "手術室", dna_fixer = "DNA修復室", tongue_clinic = "ベロ出�病クリニック", hair_restoration = "増毛科", pharmacy = "薬局", toilets = "トイレ", electrolysis = "電気脱毛室", x_ray = "レントゲン室", blood_machine = "血液調整機室", emergency = "緊急事態", general = "一般", } buy_objects_window = { price = "�価: ", choose_items = "項目を�択�る", total = "�計: ", } object = { chair = "イス", litter = "ガラクタ", sofa = "ソファー", operating_table = "手術�", bench = "ベン�", scanner = "スキャナー", couch = "カウ�", blood_machine = "血液調整機", video_game = "ビデオゲーム", op_sink2 = "���", door = "ドア", auto_autopsy = "自動解剖機", reception_desk = "�付デスク", hair_restorer = "毛髪調整機", projector = "プロジェクター", -- crash_trolley = "�варійний візок", tv = "テレビ", ultrascanner = "超音波検査機", surgeon_screen = "外科医用スクリーン", jelly_moulder = "ゼリー槽", x_ray_viewer = "X線�視装置", radiation_shield = "放射線シールド", cardio = "心電計", slicer = "舌切り機", inflator = "空気注入機", dna_fixer = "DNA修復機", x_ray = "X線", litter_bomb = "ゴミ爆弾", desk = "デスク", pool_table = "ビリヤード�", bed = "ベッド", swing_door2 = "スイングドア", console = "コンソール", op_sink1 = "���", bookcase = "本棚", drinks_machine = "自販機", comfortable_chair = "安楽イス", skeleton = "骨格標本", computer = "コンピュータ", bin = "ゴミ箱", pharmacy_cabinet = "薬�棚", radiator = "暖房機", cast_remover = "整骨マシン", atom_analyser = "原�分�機", plant = "観葉�物", toilet = "トイレ", electrolyser = "電解槽", fire_extinguisher = "消�器", swing_door1 = "スイングドア", lecture_chair = "講義イス", screen = "スクリーン", toilet_sink = "���", shower = "シャワー", gates_of_hell = "地��ゲート", cabinet = "キャビ�ット", lamp = "ランプ", entrance_left = "左開�ドア", table2 = "テーブル", bed2 = "ベッド", bed3 = "ベッド", entrance_right = "�開�ドア", table1 = "テーブル", rathole = "�ズミ�巣穴", } room_descriptions = { gp = { [1] = "診察室//", [2] = "����病院�治療�中心��る����診察室�� 。����患者�自分����悪���を知る�����最������られ��。 彼ら����ら�ら�る検査���治療�����施設��られ��。 患者�多��る場��別�部屋を建������。 充実��設備�広々���部屋�治療�効率を上���。 �れ�����部屋�当���り��。//", [3] = "�ん�医師�も診察室����������。", }, general_diag = { [1] = "検査室//", [2] = "追加�検査�必��患者�������。 ��部屋��診察室よりも医師�患者をより詳細�診察�る�������。 患者�診断を決定�る���検査��果を���診察室�戻り��。//", [3] = "�ん�医師�も検査室����������。", }, ultrascan = { [1] = "超音波検査室//", [2] = "超音波検査機�最高�検査ツール�1���。 患者�最高�検査を�供���場����導入������。 検査�後��診察���診察室�行���。//", [3] = "�ん�医師�も診察室����������。��装置�定期メンテナンス�必���。", }, scanner = { [1] = "スキャナー室//", [2] = "患者�スキャナーを使用��より正確�診断を����。 ��後��診察���診察室�行���。//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, blood_machine = { [1] = "血液調整機室//", [2] = "血液調整機��患者�血��色を�ェック��状態を判断���。 血液�調査を行��後��診察���診察室�行���。//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, x_ray = { [1] = "レントゲン室//", [2] = "レントゲン�特殊�放射線を利用���患者�体内を撮影��病気�原因�特定�治療�役立���。//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, cardiogram = { [1] = "心臓科//", [2] = "���������ス�ーツを���患者��血圧を激��上昇��る嫌��ランニングを��られ��。 �れら�指標��医師�診断を下���役立���。//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, fracture_clinic = { [1] = "整骨科//", [2] = "骨を折�������幸�患者�������。 接骨マシン�患者体内�ら����骨を除去���。 石�カッター�強力�工業用レーザーを使用���患者���ん�痛�を感���間�硬化��ギプスを切断���。//", [3] = "看護師���整骨科����������。��装置�定期メンテナンス�必���。", }, inflation = { [1] = "空気注入室//", [2] = "風船���病を��患者��������。 巨大化��頭蓋骨�穴を開���ら��切�空気圧��るよ�空気を注入���。//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, jelly_vat = { [1] = "ゼリー槽室//", [2] = "ゼリー病�苦�ん��る患者��ゼリー槽室�����れ��り��ん。 ゼリー病�ゼリー槽�よ��直�れ��������方法�直る���医学的�解明�れ����ん。//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, pharmacy = { [1] = "薬局//", [2] = "診断�よ��薬�必���れ�患者��薬局を訪れる����。 新��治療薬�開発�れる�従���薬局�忙��も増��������ょ�。 も�必��ら追加�薬局を建�るよ�����ょ�。//", [3] = "看護師���薬局����������。", }, ward = { [1] = "病室//", [2] = "診断�間�観察�������時間を�����。彼ら���手術���休�も�り��。 横����レモンティーを飲む���治療を��る人も���。//", [3] = "看護師���病室����������", }, psych = { [1] = "精神科//", [2] = "精神疾患��る患者�精神科医�オフィスを訪れ��れ��り��ん。����精神科医�快��椅��座��待�����。 �れ�ら彼ら�カウ��横����診断�れ�最終的��魔法�賄賂�治療�れ��。//", [3] = "精神科医�資格を��医師���精神科����������", }, operating_theatre = { [1] = "手術室//", [2] = "����メス�時���ェーンソーも必���るよ���様々�病気を治療�る���部屋��。 �度�広�室内���切�設備�必���。//", [3] = "外科医�資格を��2人�医師を必�����。定期メンテナンスも必���。", }, dna_fixer = { [1] = "DNA修復室//", [2] = "宇宙人�よ�����組�を���人々��DNAを体�ら抽出��完全�精製���患者�����細胞�戻���れ��り��ん。 DNA修復機��常�繊細�機械�����事故�備��部屋�消�器を用��る��賢明��。//", [3] = "DNA修復機�扱����研究医�資格を��医師�必���。定期メンテナンスも必���。", }, hair_restoration = { [1] = "増毛科//", [2] = "�ゲ病�極端�症状�苦�む患者��増毛科��られ��。 医師�機械を�作��患者�頭�新鮮�毛を��付���。 も��ん性格�治療����ん�...//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, electrolysis = { [1] = "電気脱毛室", [2] = "毛む��ゃら病�患者���部屋��られ��。 ���電気脱毛機�呼�れる特別�機械�電気的�毛を引�抜��粘性��る混�溶液�毛穴を閉���。//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, slack_tongue = { [1] = "ベロ��病クリニック//", [2] = "ベロ出�病�診断�れ�患者����クリニック��られ��。 医師�最新�精密�装置を使用��舌を伸����ょん切���舌を正��長��戻���。//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, no_room = { [1] = "", }, decontamination = { [1] = "汚染除去室//", [2] = "�剰�放射線を浴��患者����汚染除去室��られ��。 ��部屋������放射線�死��を洗���シャワー��り���後患者�髪を���れ��。//", [3] = "装置を�作�る��医師�必���。��装置�定期メンテナンス�必���。", }, tv_room = { [1] = "TV室��在使用�れ����ん", }, staff_room = { [1] = "スタッフルーム//", [2] = "スタッフ��������疲れ������。 彼ら��休��体力�回復������部屋�必���。 疲れ�スタッフ�仕事����り�より多��賃金を�求�始��最終的��辞������も�れ��ん も��んミスも多��り��。 広�部屋�テレビを見�りビデオゲームを��り��るよ���る��より疲れ�ら解放�れる��ょ�。 複数�スタッフ��時�ゆ��り��るスペース��る��を確�������。", }, training = { [1] = "講義室//", [2] = "ジュニア�ドクター����部屋�学習�る����貴��追加スキルを習得����。 外科医�精神科医�研究医�スキルを��コンサルタント��勉強中�医師��れら�スキルを�������。//", [3] = "講義室�コンサルタントを必�����。", }, toilets = { [1] = "トイレ//", [2] = "自然�欲求�従���患者����や�����。 も��院数�多�場���追加�個室�洗��を建設����。 他�場所�追加�トイレを建設�る��をも検討�る必���る�も�れ��ん。", }, research = { [1] = "研究室//", [2] = "��病院�最も賢明�医師����新��薬や設備を発明��改良�����。 治癒率を高�る���信�られ�������を行��病院����部分���//", [3] = "研究医�資格を��医師���研究室����������", }, } place_objects_window = { place_objects_in_corridor = "�れら�設備を廊下�設置���", drag_blueprint = "部屋を希望�サイズ�拡張���。", place_door = "ドアを設置���", place_windows = "必��応��窓を追加��「確��をクリック���", confirm_or_buy_objects = "項目を追加�削除����移動����。", place_objects = "アイテムを�択��目的�場所��置���。", pick_up_object = "アイテムをクリック���択�る��別�オプションを�択���。", } tooltip = { build_room_window = { cost = "�択��アイテム�価格", room_classes = { diagnosis = "診断を�る���部屋��", treatment = "治療を�る���部屋��", clinic = "病気を治療�る���個別クリニック��", facilities = "��他病院サービス����設備��", }, close = "ゲーム�戻る", }, hire_staff_window = { prev_person = "��候補者", next_person = "次�候補者", salary = "給料", staff_ability = "能力", doctors = "医師を表示", nurses = "看護師を表示", handymen = "作業員を表示", receptionists = "�付係を表示", doctor_seniority = "学� (ジュニア, ドクター, コンサルタント)", qualifications = "医師�追加スキル", surgeon = "外科医", psychiatrist = "精神科医", researcher = "研究者", hire = "雇�", cancel = "キャンセル", }, place_objects_window = { confirm = "確�", cancel = "キャンセル", pick_up = "アイテムを��む", buy_sell = "買�/売る", }, buy_objects_window = { cancel = "キャンセル", confirm = "アイテムを購入�る", price = "アイテム�値段", increase = "購入数を1�増や�", decrease = "購入数を1�減ら�", total_value = "注文アイテム��計金�", }, queue_window = { num_in_queue = "待機中�患者数", close = "��リクエストを閉�る", inc_queue_size = "最大待�人数を増や�", patient = "患者をドラッグ��順番待��順番を移動����。 �クリック�患者を自宅��る��他�病院��り��", end_of_queue = "患者を��アイコン�ドラッグ��待機列�最後�移動����", num_expected = "�付係�並������る予想人数", max_queue_size = "�付係�最大待�人数", dec_queue_size = "最大待�人数を減ら�", patient_dropdown = { reception = "患者を�付係��る", hospital_1 = "患者を他�病院��る", hospital_2 = "患者を他�病院��る", hospital_3 = "患者を他�病院��る", send_home = "患者を病院�ら追�出�", }, front_of_queue = "患者を��アイコン�ドラッグ��順番待��先頭�移動����", num_entered = "�れ�����部屋�治療�れ�患者�数", }, message = { button = "メッセージを開���左クリック", button_dismiss = "メッセージを開���左クリック�無視�る���クリック", }, research_policy = { research_progress = "��カテゴリ���る次�発見��進�: %1%/%2%", no_research = "��カテゴリ���在研究�行�れ����ん", }, town_map = { close = "タウンマップ画�を終了", heat_inc = "設定温度を上�る", heat_dec = "設定温度を下�る", heating_bill = "暖房費", objects = "オブジェクト�表示切替", fire_extinguishers = "消�器�表示切替", plants = "観葉�物�表示切替", heat_level = "暖房レベル", radiators = "ラジエーター�表示切替", people = "人々�表示切替", balance = "銀行残高", }, rooms = { gps_office = "診察室���患者�診察を���検査�果を���り病気�診断を行���", general_diag = "検査室�患者�簡��診断�使用���。コストも安��多��場����も有効��。", cardiogram = "心臓科�患者�病気を診断�る���使���", ultrascan = "超音波検査機�患者�病気を診断�る���使���", scanner = "スキャナー室�患者�病気を診断�る���使���", x_ray = "レントゲン室�患者�病気を診断�る���使���", blood_machine = "血液調整機室�患者�病気を診断�る���使���", fracture_clinic = "看護師�整骨マシンを使用��骨折��骨を元�戻���", inflation = "空気中入室��風船���病�治療�行�れ��", jelly_vat = "ゼリー槽室��ゼリー病�治療�行�れ��", hair_restoration = "増毛科���ゲ病�治療�行�れ��", tongue_clinic = "ベロ出�病クリニック��ベロ出�病�治療�行�れ��", dna_fixer = "DNA修復室��エイリアンDNA病�治療�行�れ��", electrolysis = "電気脱毛室��毛む��ゃら病�治療�行�れ��", decontamination = "汚染除去室�患者�宇宙放射線を除去�る���使���", pharmacy = "薬局��看護師�患者�薬を与���", ward = "病室�診断�治療�両方�有効��。病状�観察�行�れ���手術��休�も�り��。看護師�必���。", operating_theatre = "手術室��2人�外科医資格を���医師を必�����", psychiatry = "精神科��心�病気を治療��他�患者�診察を手助������精神科医�スキルを��医師�必���。", training_room = "講義室��専門医�他�医師を教育���", research_room = "研究者スキルを��医師�研究室�新��薬や機器を開発���", staffroom = "スタッフルーム��医師・看護師・作業員���休憩を��体力を回復���", toilets = "患者�����病院をトイレ����よ��トイレを建�������", }, objects = { litter = "ゴミ: ��る���ゴミ箱�見��ら�������患者�床�放り投����", bench = "ベン�:患者1人分�座席を�供��痛�を伴�処置�待�時間をより快�����。", sofa = "ソファ: スタッフルーム�休ん��るスタッフ��他�何�気を紛ら��良�方法����り����ソファ�座り��", video_game = "ビデオゲーム: スタッフをペトリス�リラックス����ょ�", auto_autopsy = "自動解剖機: 新治療法�発見��常�役立���", reception_desk = "�付デスク: �付係�患者を最��診察室�紹介���", tv = "テレビ: スタッフ��気�入り�メロドラマを見逃���よ��������。", inflator = "空気注入機: 風船���病を直���", desk = "医師�自分�パソコンを置�場所�必���", pool_table = "ビリヤード�: スタッフ�ビリヤード��りを�る�������", bed = "ベッド: �病人���上�横��り��", bookcase = "本棚: 医師を賢�見�る未開��本�コレクション", drinks_machine = "自販機: 患者�喉�乾�を軽減���銭を稼��������", skeleton = "骨格標本: 解剖学�ガイド�������ロウィン�使用�れ��", computer = "コンピュータ: 研究�����", bin = "ゴミ箱: 患者����ゴミを����", pharmacy_cabinet = "薬�棚: ����医薬���管�れ����", radiator = "暖房機: 病院��り�����ら守り��", atom_analyser = "原�分�機: 研究室�設置�る�����研究プロセスを高速化���", plant = "観葉�物: 患者�満足度を上��空気を浄化���", fire_extinguisher = "消�器: 機器�故障�よる�険を軽減���", lecture_chair = "講義イス: 生徒������座���メモを�り�退屈�����絵を������。 椅�を置��置����より多��医師�勉強��るよ���り��。", toilet = "トイレ: 患者�ん�����トイレを使������", toilet_sink = "���: 衛生的�患者�汚れ�手を���洗��������。 �����分�����患者��満を抱���ょ�。", cabinet = "キャビ�ット: 患者カード�メモ�検査�果�入�����", }, machine_window = { repair = "修�����作業員を呼���", name = "��", close = "閉�る", times_used = "使用回数", status = "ステータス", replace = "機械を交��る", }, toolbar = { date = "日付", town_map = "タウンマップ", casebook = "治療�記録", reputation = "����評判", edit = "部屋/設備を編集", charts = "グラフ", staff_list = "スタッフを管��る", objects = "アイテムを設置�る", research = "研究", policy = "方�", status = "ステータス", hire = "スタッフを雇�", rooms = "部屋を建築", bank_button = "左クリック�銀行マ�ージャー��クリック�銀行明細", balance = "残高", }, casebook = { up = "上�スクロール", down = "下�スクロール", cured = "治療��患者�数", deaths = "死亡者数", increase = "金�を増や�", decrease = "金�を減ら�", close = "治療記録を閉�る", earned_money = "�在���利益", reputation = "治療���診断�評判", sent_home = "家��り返�れ�患者�数", treatment_charge = "治療費", research = "��治療�特化��研究予算を使用�る����をクリック������", cure_requirement = { hire_staff = "��治療を行����スタッフを雇�必���り��", hire_staff_old = "��治療を行����%sを雇�必���り��", ward_hire_nurse = "��治療を行������病室�看護師�必���", research_machine = "��治療�必��機器を研究�る必���り��", hire_surgeons = "手術を行����2人�外科医を雇�必���り��", possible = "��治療を行��������", not_possible = "��治療を行����������ん", build_room = "��治療を行����部屋を建設�る必���り��", hire_surgeon = "手術を行����2人目�外科医を雇�必���り��", build_ward = "��治療を行����病室を建設�る必���り��", }, cure_type = { drug_percentage = "��治療��薬を使用��� - �在薬�%d%%有効��", unknown = "����治療を行�事�����ん", psychiatrist = "精神科医���治療を行���", machine = "��治療��設備�必���", drug = "��治療��薬を使用���", surgery = "��治療��手術�必���", }, }, calls_dispatcher = { assigned = "��ボックス��対応�るタスク�誰��割り当�られ��る場��マーク�れ��。", task = "タスク�一覧 - タスクをクリック�る��割り当�られ�スタッフ�ウィンドウ�開��タスク�場所��スクロール���。", close = "タスク管�画�を閉�る", }, research = { cure_inc = "治療研究�割�を増や�", cure_dec = "治療研究�割�を減ら�", specialisation_inc = "特別研究�割�を増や�", specialisation_dec = "特別研究�割�を減ら�", improvements_inc = "改良研究�割�を増や�", improvements_dec = "改良研究�割�を減ら�", diagnosis_inc = "診断研究�割�を増や�", diagnosis_dec = "診断研究�割�を減ら�", drugs_inc = "薬�研究�割�を増や�", drugs_dec = "薬�研究�割�を減ら�", allocated_amount = "割り当�られ�予算�金�", close = "研究画�を閉�る", }, watch = { hospital_opening = "建設時間: 病院�開院�る���残り時間��。 GOボタンをクリック�る�病院��座�開院���。", emergency = "緊急事態: ����緊急患者を治療�る���残り時間��。", epidemic = "�染病: �染病を隠蔽�る���残り時間��。 ��時間�切れる��感染患者�病院を去る���康検査官�訪れ��。 ��ボタン�予防接種モード�オン/オフを切り替���。 患者をクリック���看護師�よる予防接種を���������。", }, } queue_window = { num_in_queue = "順番待�", num_entered = "�計訪�数", max_queue_size = "最大待�人数", num_expected = "列予想数", } staff_title = { junior = "ジュニア", doctor = "ドクター", consultant = "コンサルタント", surgeon = "外科医", psychiatrist = "精神科医", researcher = "研究医", nurse = "看護師", receptionist = "�付係", general = "作業員", } staff_class = { doctor = "医師", handyman = "作業員", receptionist = "�付係", nurse = "看護師", surgeon = "外科医", } staff_descriptions = { good = { [1] = "�常�迅速�勤勉�労�者。", [2] = "勤勉����細部���気を�り��。", [3] = "文字通り何�も����。", [4] = "信�られ����フレンドリー����も笑顔��。", [5] = "驚異的�スタミナ。ノンストップ���続���。", [6] = "�常�礼儀正���常�フレンドリー��。", [7] = "信�られ�����能��り�有能��。", [8] = "仕事�対���常�責任感��り��。", [9] = "決��諦���完璧を目指��努力���。", [10] = "笑顔�人々を助���。", [11] = "魅力的�礼儀正�����も親切��。", [12] = "��もやる気��り�献身的��。", [13] = "親切���も勤勉��。", [14] = "忠実��好的。ユーモア��る。", [15] = "慎��温和。�害時�頼り��る。", }, misc = { [1] = "象�置物を集���る。。", [2] = "スキュー�ダイビング�趣味。", [3] = "氷�彫刻を作る。", [4] = "『北�国�ら��1話�出演��。", [5] = "スーパーカー�オーナー。", [6] = "ビールグラス用コースター��集家。", [7] = "�ンジージャンプ�好�。", [8] = "ライブ�ダイブ���。", [9] = "丘サーファー。", [10] = "������好�。", [11] = "ウィスキー�ブレンド�趣味。", [12] = "熟練�日曜大工。", [13] = "フランス映画�好�。", [14] = "テーマパーク�よ�����。", [15] = "大型�許を����る。", [16] = "ラリーカードライ�ー。", [17] = "�イオリン��ェロを演����。", [18] = "撮り鉄。", [19] = "超犬好�。", [20] = "甘�も��目���。", [21] = "�風呂好�。", [22] = "手芸インストラクター", [23] = "家庭�園��れ�野�を�る。", [24] = "�常勤特別巡査。", [25] = "元クイズショー��会者", [26] = "戦争マニア�武器�集�趣味。", [27] = "部屋�模様替��趣味。", [28] = "�メロ��り��。", [29] = "昆虫マニア。", [30] = "コメディアンを野次る��好�。", [31] = "議会��マニア。", [32] = "庭��り�好�。", [33] = "�造時計を密輸���。", [34] = "ロックンロール�ンド�ボーカル。", [35] = "連続テレビ�説�欠����", [36] = "釣り�カ。", [37] = "趣味�御朱�集�。", }, bad = { [1] = "仕事����話���ら��。", [2] = "怠�者�やる気���。", [3] = "無気力�訓練�足。", [4] = "横柄�失礼。人�神経を逆���る。", [5] = "スタミナゼロ。態度悪�。", [6] = "キャベツ������る。アホ。", [7] = "訳も��怒���る。", [8] = "�動的�集中力��。軽率。", [9] = "役立��。責任感�少々。", [10] = "無作法�陰�を��。", [11] = "���ょ��ょ��トラブルメーカー。", [12] = "無�味�リスクを負�。", [13] = "���よ�も�����見�。", [14] = "�る賢�破壊分�。", [15] = "傲慢�自信家。", }, } tooltip = { handyman_window = { prio_machines = "修��優先順�を上�る", prio_litter = "清掃�優先順�を上�る", prio_plants = "水やり�優先順�を上�る", }, patient_window = { graph = "クリック�る��患者��康状態グラフ�検査履歴��切り替�り��", casebook = "患者�病気�詳細を表示", close = "閉�る", queue = "患者�並ん��る部屋�順番待�列を表示", happiness = "患者様�満足度", warmth = "患者�感�る温��", center_view = "患者�焦点を当�る", thirst = "患者�喉�乾��レベル", send_home = "患者を自宅�帰ら�る", abort_diagnosis = "検査�完了�る��待����今��治療を始���", }, staff_window = { doctor_seniority = "学� (ジュニア�ドクター�コンサルタント)", psychiatrist = "精神科医", close = "ウィンドウを閉�る", ability = "能力", pick_up = "��む", sack = "解放�る", surgeon = "外科医", happiness = "満足度", salary = "給料", name = "��", tiredness = "疲労度", center_view = "左キー: 画�を中央��置��キー: 次�従業員を�択", skills = "スキル", researcher = "研究者", face = "スタッフ�写真: クリック��スタッフ管�画��移動", }, } pay_rise = { definite_quit = "も�我慢����� �ん��件�引�止��も無駄�� ��病院���ん�り��", regular = { [1] = "も�疲れ�。 休��$%d�昇給���れ�病院をや��やる�", [2] = "も�ヘトヘト�� $%d�昇給�休�を�求�る。 今��やれよ�悪徳経営者��", [3] = "����俺�馬車馬�よ������るん��� $%d�ボーナスを�れれ�や������やる。", [4] = "�満����よ。 %d�賃金アップを�求�る� �も��れ�出�行�よ。", [5] = "医療��給料�高���������� $%d�給料アップを����らゲーム�プロデューサー�転��るよ。", [6] = "も��ん�り。��も�給料を払��� $%d�昇給�手を���も��よ。", }, poached = "%s �ら%d�オファーを����る。��給料を払����ら辞��ゃ�よ。", } confirmation = { abort_edit_room = "�在部屋を設置���編集中��。 必��アイテム�����置�れ��れ�完了���。 �置�れ����場��削除�れ��。 続����?", return_to_blueprint = "部屋�設置モード�戻り���?", delete_room = "��部屋を削除��もよ������?", quit = "ゲームを終了���。本当�よ������?", needs_restart = "��オプションを変更�る���CorsixTH��起動�必���。 �存�れ����内容����失�れ��。 本当��れを実行����?", overwrite_save = "ゲーム�既�������存�れ����。上書���もよ������?", sack_staff = "��スタッフを解雇��よ������?", replace_machine = "%s を$%d�置����もよ������?", restart_level = "レベルをリスタート��もよ������?", maximum_screen_size = "入力��画�解�度� 3000 x 2000 を超�����。 スムーズ�フレームレート�ゲームを処���る�ードウェア��る場�����解�度を変更����。 続行��もよ������?", remove_destroyed_room = "$%d��り����破壊�れ�部屋を撤去��もよ������?", replace_machine_extra_info = "新��マシン�状態�%d(�在 %d) ��り��。", quit_mapeditor = "マップエディターを終了��もよ������?", restart_mapeditor = "マップエディターを�起動��もよ������?", } diseases = { general_practice = { name = "一般診察", }, diag_ward = { name = "日帰り入院", }, diag_ultrascan = { name = "診断: 超音波検査", }, diag_blood_machine = { name = "診断: 血液検査", }, diag_x_ray = { name = "診断: レントゲン", }, diag_psych = { name = "診断: 精神科", }, diag_general_diag = { name = "診断: 一般検査", }, diag_cardiogram = { name = "診断: 心臓科", }, diag_scanner = { name = "診断: スキャナー", }, autopsy = { name = "解剖", }, third_degree_sideburns = { name = "も���症候群", symptoms = "症状�巨大�髪型�ラメ入り衣装�厚底��派手派手�化粧等。", cause = "原因�70年代��強烈�回帰願望。", cure = "治療�精神科医�患者を�代�連れ戻�����患者�格好��ん�����も����解��る。", }, discrete_itching = { name = "�ゆ�ゆ病", symptoms = "症状�常�����傷を負���る。", cause = "原因�鋭�歯を��微��昆虫�咬�れる。", cure = "治療�薬局�処方�れ��汗�一緒�放出�れる粘液質�シロップを飲む。�れ�より蚊�近寄れ���り��。", }, the_squits = { name = "下痢", symptoms = "症状����…言����も分�る��ょ�?", cause = "原因�残り物�ピザを食�る。", cure = "治療��������消化管を�����る特別製�胃腸薬を飲む。", }, spare_ribs = { name = "スペアリブ病", symptoms = "症状�胸部��快感。", cause = "原因�錠剤を飲���飲�込ん���。", cure = "治療�余��肋骨�2人�外科医�よ��切除�れ�病院�ロゴ�入��ビニール袋�入れ�患者�渡�れ��。", }, serious_radiation = { name = "宇宙放射線病", symptoms = "症状��常��快感を覚�る。", cause = "原因��ューインガム�プルトニウムを間���食��。", cure = "治療�汚染物質を�汚染除去装置�綺麗�洗���。", }, infectious_laughter = { name = "�染性オヤジ病", cure = "治療�精神科医�患者��症状��大�を�解��る。", cause = "原因�昔�ら�るコメディー。", symptoms = "症状���笑��超��ら��フレーズ�連発。", }, hairyitis = { name = "毛む��ゃら病", cure = "治療�電気脱毛機�毛を�り去り�毛穴を塞�。", cause = "原因�月�光�当�り��。", symptoms = "症状�嗅覚�異常�発�。", }, broken_heart = { name = "�度失�病", cure = "治療�2人�外科医�開胸手術を����を止���ら優��心臓を修復�る。", cause = "原因�患者より金����若���や���る誰�。", symptoms = "症状��カンス�写真を見��長時間泣�。", }, sweaty_palms = { name = "手�汗��り病", cure = "治療�精神科医�������病気������を患者�説明�る。", cause = "原因�就��接��緊張。", symptoms = "症状��手�る��水を���り�ん�ス�ンジを���よ��感���る。", }, transparency = { name = "スケスケ病", cure = "治療�薬局�よ�冷��色水を飲��る。", cause = "原因�ヨーグルトを開���ら�蓋を��る事。", symptoms = "症状�肉����見�る。", }, alien_dna = { name = "エイリアンDNA病", cure = "治療�エイリアン�DNAを機械的�除去�る。", cause = "原因�凶悪�エイリアン�襲�れる。", symptoms = "症状�外見�次第�エイリアン化��街を破壊������欲望�生�れる。", }, broken_wind = { name = "��ら病", cure = "治療�薬局�水分�を混���スペシャルドリンクを素早�飲��る。", cause = "原因�食事�後�ジム�ランニングマシン�走る。", symptoms = "症状�患者���後���る人々を�快���る。", }, baldness = { name = "�ゲ病", cure = "治療�強�痛�を伴�機械を使用��患者�頭�毛髪を����る。", cause = "原因�人気者��������嘘を��。", symptoms = "症状�頭�ツルピカ��り���も�����。", }, sleeping_illness = { name = "居眠り病", cure = "治療�看護婦�強力�興奮剤を大��処方�る。", cause = "原因��蓋��る�眠腺�異常活動。", symptoms = "症状�����も飛�出������圧倒的�欲求。", }, corrugated_ankles = { name = "足首����病", cure = "治療�脱法�ーブ�スパイスを混��も�を飲ん��足首を������る。", cause = "原因�ガタガタ��上を車�通る。", symptoms = "症状�履物������る。", }, tv_personalities = { name = "テレビ症候群", cure = "治療�精神科医��患者�テレビを売��ラジオを買�よ��説得�る。", cause = "原因�昼間�テレビを見��る。", symptoms = "症状�料�番組を実演�る妄想。", }, slack_tongue = { name = "ベロ��病 ", cure = "治療�舌切り機�素早��効率的����痛�を伴��舌を�ょん切る。", cause = "原因�昼�メロドラマ�噂����。", symptoms = "症状�舌�元�5��長��腫れる", }, king_complex = { name = "王様症候群", cure = "治療�精神科医��患者��れ�����も��見�る�を説明�る。", cause = "王様�霊�患者�乗り移��。", symptoms = "症状�派手�衣装��ーズ�ーガーを食�る。", }, invisibility = { name = "�明病", cure = "治療�薬局�カラフル�飲�物を���ん飲�患者�姿を����。", cause = "原因�放射性�目�見���アリ�噛�れ�。", symptoms = "症状�患者��快感を感���ん。実際�多��人���症状を利用��家��悪���を���。", }, pregnancy = { name = "妊娠", cure = "治療�手術室�赤�ゃんを�り出���洗���ら患者�見���。", cause = "原因�都市エリア��電。", symptoms = "症状�食生活�体型�変化。", }, iron_lungs = { name = "鉄�肺病", cure = "治療�二人�外科医�手術を��固����肺を摘出�����。", cause = "原因�都市部�スモッグ�焼�鳥屋�煙。", symptoms = "症状��を���り水中��ん�り��る。", }, chronic_nosehair = { name = "鼻毛����病", cure = "治療�薬局�看護婦�処方�れる���も���毛抜�剤を飲む。", cause = "原因�自分より目下�人を鼻�笑�。", symptoms = "症状�鳥�巣���る���鼻毛�生�る。", }, fake_blood = { name = "熱血症候群", cure = "治療�精神科医�患者を����患者�心を�����る。", cause = "原因���もジョーク��タ��れ��ら��れる。", symptoms = "症状��脈内�赤�液体�衣��触れる�蒸発���。", }, gastric_ejections = { name = "ゲロゲロ病", cure = "治療���気を抑�る特別製�胃腸薬を飲む。", cause = "原因�スパイシー�メキシコ&インド料�。", symptoms = "症状��分消化�れ�食物���ゃ��ゃ����患者�ら排出�れ��。", }, bloaty_head = { name = "風船���病", cure = "治療�頭を一度������ら空気注入機��ょ����大����膨ら��る。", cause = "原因��ーズ����を嗅��り�汚�雨水を飲ん�り�る。", symptoms = "症状��常��快感を覚�る。", }, fractured_bones = { name = "骨折", cure = "治療�整骨マシン�レーザー�骨�破片を除去�る。", cause = "原因�高所�らコンクリート���下。", symptoms = "症状�大��音�鳴り�患肢�動����る。", }, jellyitis = { name = "ゼリー病", cure = "治療�患者を特別�部屋��るゼリー�容器���ら�浸�。", cause = "原因�ゼラ�ン質�富ん�食事���剰��動。", symptoms = "症状�体�グニャグニャ��り�よ�転����る。", }, uncommon_cold = { name = "���風邪", cure = "治療�薬局�特別��分�ら作られ����咳止�薬を一�飲む。", cause = "原因�空気中�鼻水�。", symptoms = "症状���ゃ��鼻水�肺�変色。", }, ruptured_nodules = { name = "�瘤破裂", cure = "治療�外科医2人��瘤を摘出�る。", cause = "原因�寒����ンジージャンプを�る。", symptoms = "症状�正常�イス�座れ���る。", }, kidney_beans = { name = "豆入り腎臓病", cure = "治療�2人�外科医�腎臓����触れ��豆を�り除�。", cause = "原因�飲�物�入���る氷を噛ん�食�る。", symptoms = "症状�腹痛��頻��トイレ�行�。 ", }, heaped_piles = { name = "毛玉症候群", cure = "治療�強酸性�飲�物�体内�毛玉を強力�分解�る。", cause = "原因�ウォータークーラー�周り�立�。", symptoms = "症状�ビー玉�袋�上�座���るよ��気��る", }, golf_stones = { name = "ゴルフ病", cure = "治療�ゴルフ�悪影響を2人�外科医�よる手術�よ��除去�る。", cause = "原因�ゴルフボール�中�有毒ガス��引。", symptoms = "症状��発的�狂喜�る��強烈������る。", }, gut_rot = { name = "内蔵�食病", cure = "治療�胃�中をコーティング�る薬�を処方�る。", cause = "原因�オマリー婦人�咳止�入りウィスキー。", symptoms = "症状�咳�出��代�り�内蔵�溶�����。", }, unexpected_swelling = { name = "����病", cure = "治療�2人�外科医�手術�身体�穴を開�る。", cause = "原因�原因�明。", symptoms = "症状�腫れ。", }, } adviser = { level_progress = { halfway_won = "��レベルをクリア�る�����分��。", close_to_win_increase_value = "も���クリア��。 病院価値を��$%dアップ�������。", another_patient_killed = "���大変���を殺��������よ。 �れ�死亡者数�%d人��り���...", reputation_good_enough = "よ��病院�評判���レベルをクリア�る���分��。 %d以上を��よ�心�������。 他��題を解決�れ�完了��。", financial_criteria_met = "��レベル�財務基準を満�����。 引�続�病院�効率的��営�れ��る��を確����ら�残高$%d以上を維�������。", dont_kill_more_patients = "も�1人も患者を死��る��������ん�", hospital_value_enough = "病院�価値を%d以上�維�����他��題�対処����レベルをクリア���ょ�。", halfway_lost = "��レベルを失敗�る�����分��。", three_quarters_lost = "��レベル���4分�1�失敗��。", three_quarters_won = "��レベル�クリア����4分�1��。", improve_reputation = "��レベルをクリア�る���%d以上�評判�必���。", another_patient_cured = "よ�やり���� ��1人患者�回復����。 �れ�%d人目��よ。", nearly_lost = "も���ゲームオー�ー���", cured_enough_patients = "��レベルをクリア�る���分�患者を治療����。 ���病院をも����������。", nearly_won = "も���クリア���", }, vomit_wave = { started = "病院�嘔�ウイルス�蔓延���るよ���。病院をも��清潔����れ���ん������ら������ょ�。作業員をも��雇��������も�れ��ん。", ended = "��!��ゲロ爆弾を引�起���ウイルス���消滅��よ����。今後�病院を清潔��������。", }, warnings = { patient_stuck = "誰��行�詰������。 病院をよりよ�計画������。", need_staffroom = "スタッフ���休�るスタッフルームを建���ょ�。", build_staffroom = "���スタッフルームを建������。 スタッフ������崩壊寸���。 ����性を�り戻�������", doctors_tired = "医師��常�疲れ����。 早�休����������。", doctors_tired2 = "医師�クタクタ��。 ���休����������。", nurses_tired = "看護師��常�疲れ����。 早�休����������。", nurses_tired2 = "看護師�クタクタ��。 ���休����������。", handymen_tired = "作業員��常�疲れ����。 早�休����������。", handymen_tired2 = "作業員�クタクタ��。 ���休����������。", receptionists_tired = "�付係��常�疲れ����。 早�休����������。", receptionists_tired2 = "�付係�クタクタ��。 ���休����������。", staff_tired = "スタッフ��常�疲れ����。 スタッフルーム�休憩を�ら������労�倒れ������よ。", staff_overworked = "スタッフを�������。 疲れ�ストレス�効率�悪��り�悲惨�ミスを犯�始�る��ょ�。", doctor_crazy_overwork = "��大変� 医師�1人��労�気�狂��������。 ���休��れ�回復�る�も�れ��ん。", reduce_staff_rest_threshold = "設定画��スタッフ�休憩閾値を下���スタッフ�も��頻��休憩��るよ����������。 ��る��付����。", staff_unhappy = "スタッフ��満�広������。 彼ら�ボーナスを与�る��も��良�方法����スタッフルームを作��������。 ���方�画��スタッフ�休憩基準を変更�る��も����。", staff_unhappy2 = "スタッフ��満�広������。金銭���満も大��よ���。", falling_1 = "��!�����ゃ���。 マウスをクリック�る場所�気を���。 誰��怪我を�る�も�れ����", falling_2 = "���る��や���ょ�。 何����ん���?", falling_3 = "痛������痛�����ょ��。 誰�医師を呼ん��", falling_4 = "���病院�����テーマパーク���り��ん�", falling_5 = "���人を倒�場所�ゃ����よ�彼ら�病気�ん���ら�", falling_6 = "���ボーリング場���り��ん� 病人を�ん�風�扱������り��ん�", -- �研究者】 research_screen_open_1 = "研究画��アクセス�る���研究室を建�る必���り��。", research_screen_open_2 = "�在�レベル��研究�無効��。", researcher_needs_desk_1 = "研究者��作業用�デスク�必���。", researcher_needs_desk_2 = "研究者�休憩を�ら��もら��喜ん����。 も��多��スタッフ�研究��る�もり�ら��れ�れ�作業用�デスクを用��る必���り��。", researcher_needs_desk_3 = "�研究者�研究室�������人数分�デスク�必���。", -- �看護師】 nurse_needs_desk_1 = "�看護師�病室�������人数分�デスク�必���。", nurse_needs_desk_2 = "看護師�休憩を�ら��もら��喜ん����。 病室�複数人���る������れ�れ�デスクを用��る必���り��。", -- �作業員】 -- 観葉�物 plants_dying = "観葉�物�枯れ����。 も��作業員を雇用������。 枯れ�観葉�物�好��患者����んよ。", place_plants3 = "患者�病院�居心地�悪��言�����。 観葉�物�病院内�雰囲気を������?", place_plants4 = "患者を元気��る����施設�������物をも��置������。", desperate_need_for_watering = "観葉�物�水やりを�る���作業員を雇�必���り��。", too_many_plants = "観葉�物�多����。 中�ジャングル�よ���。", place_plants2 = "�ん�病院を去������。 観葉�物�引�止�����������?", plants_thirsty = "�物�世話を�る必���り��。 水�欲����������。", change_priorities_to_plants = "観葉�物�水を��よ��作業員�仕事�優先順�を変���れ��り��ん。 ", place_plants_to_keep_people = "人々�去������。 観葉�物�引�止�られる�も�れ��ん。", -- ゴミ litter_everywhere = "��る����ゴミ�散乱�����。 ���題�対処�る���作業員を雇������。", people_did_it_on_the_floor = "患者�中����られ��人も���。 清掃���も大切�仕事��。", litter_catastrophy = "ゴミ�題�深刻化�����。 今��作業員��ームを雇��対処��もら���ょ��", some_litter = "深刻��題��る��作業員�ゴミを処分��もら���ょ�。", too_much_litter = "ゴミ��題��り��。 も��作業員を雇��解決��る�も�れ��ん。", -- 設備�修� machinery_slightly_damaged = "病院�設備�少�傷ん������。 メンテナンスを���り������。", machinery_damaged = "設備を���直������。 ���故障を起�������よ�", machinery_damaged2 = "設備修��������作業員を雇用�������", machinery_very_damaged = "緊急��� ���作業員を呼ん�設備を修��������。も���壊れ�����", machines_falling_apart = "設備�壊れ������。 作業員を���呼ん������", machine_severely_damaged = "%s�も���修復��能����壊れ����。", machinery_deteriorating = "設備�酷使�れ�壊れ������よ� 注��必���。", -- ��付係】 queue_too_long_at_reception = "�付�待���る患者�多����。 �付デスクをも�1�設置���付係をも�1人雇������。", another_desk = "新���付係�����も�1��付デスクを設置�る必���り��。", reception_bottleneck = "�付�ボトル�ック�������。�付係をも�1人雇���ょ�。", no_desk = "�����付デスクを作���付係を雇������", no_desk_1 = "患者を病院�呼���れ��付係を雇��彼女���デスクを用������������んよ�", no_desk_2 = "よ�やり�����れ�世界記録����り��ん� ��1年経��も患者����ん� ��病院�経営を続����ら��付係を雇���彼女�������付デスクを作る必���り���", no_desk_3 = "素晴ら������1年近�も�付スタッフ�����ん�� ��や��患者を呼�る�������? 今��準備��������る��や�������", no_desk_4 = "�付係��患者�到������出迎�る���自分�ワークステーション�必���。", no_desk_5 = "����時間��。も���患者�到��始�る�����", no_desk_6 = "�付係��る���彼女�������付デスクを�����������?", no_desk_7 = "�付デスク�作�����次��付係を雇�����������? �れ�準備��る���患者を診る�������んよ�", -- �染病 deal_with_epidemic_now = "�染病��大��題�������。 一刻も早�対処を� も�今�染病を防���れ�����事��り��よ�", epidemic_getting_serious = "�染病��大��題�������。 何�手を打��下���", many_epidemics = "�時�複数��染病�発生���るよ���。 �れ�大惨事��る�れ��り�����迅速�行動������。", -- 料金 fair_prices = "%s�料金�公平��ランス��れ��るよ���。", charges_too_high = "料金�高����。 短期的��大��利益��り����最終的��患者�離れ������。", high_prices = "%s�料金�高����。 短期的��大��利益��り����最終的��患者�離れ������。", patient_not_paying = "患者�%s�支払�を����帰������。 料金�高��るよ���。", charges_too_low = "料金�安����。 �れ��患者�病院��や����り����一人��り�利益���り上�り��ん。", low_prices = "%s �料金�安����。 �れ�患者�病院��る��ょ���一人��り�利益���り上�り��ん。", -- 財務状� cash_low_consider_loan = "財政状����り良������。 ローンを考�����?", money_very_low_take_loan = "銀行残高����少����。 ローン��り��よ。", financial_trouble = "深刻�財政難�陥�����。 今���ん��������。 ��$%d減��ら��レベルを無駄����������り��。", finanical_trouble2 = "財政状���機的��。 も���$%dを失����レベル�失敗��。 ", financial_trouble3 = "銀行残高�少�心���。 も���金を稼���を考������。 ��$%d�大惨事��。", pay_back_loan = "�金����り�り��。 ローン�返済����考�����������?", money_low = "銀行残高�少���������", cannot_afford = "��人を雇����金�足り��ん�", cannot_afford_2 = "�れを買������金�足り��ん�", -- 暖房 patients_very_cold = "患者�寒������。 暖房機をも��設置�る��設定温度を上������。", people_freezing = "信�られ����������セントラルヒーティング�時代��患者�中����る��寒�人も���。 部屋を温�る���暖房機を設置��設定温度を上������。", patients_getting_hot = "患者�暑��言�����。 暖房機を減ら���設定温度を下������。", patients_too_hot = "患者�暑��り������。 暖房機を����撤去�る��設定温度を下�る��自販機をも��設置������。", staff_very_cold = "スタッフ�寒��文�を言�����。 暖房機をも��設置�る��設定温度を上������。", staff_too_hot = "スタッフ�暑��文�を言�����。 暖房機を減ら���設定温度を下������。", -- 自販機 patients_thirsty = "患者�喉�渇�����。自販機を設置��方����も�れ��ん。", patients_thirsty2 = "�ん�喉�渇���る�文�を言������自販機をも��設置�る��今�る自販機を彼ら�近��動�������。 ", patients_really_thirsty = "患者�本当�喉�渇�����。自販機をも��設置�る��既存�自販機を最も長�列�近��移動�������", patients_very_thirsty = "患者���本当�喉�渇��苦�ん����。���自販機を設置������ん�コーラを求��家�帰�������よ。", -- 長イス more_benches = "も��長イスを設置���������。患者���立�������哀想��。", people_have_to_stand = "病人���立�������。座れる場所を準備���������。", -- トイレ build_toilets = "今���トイレを建������。�も����愉快�も�を目��る����り��よ。病院��ん�臭���る�...", need_toilets = "患者��トイレ�必���。も��便利�場所�トイレを建������。", more_toilets = "トイレ�も��必���。�ん�も�我慢��界���", build_toilet_now = "今��トイレを建������。�ん�も�我慢����ん。ニヤニヤ��������。�れ�深刻��題��。", -- 悪評 nobody_cured_last_month = "先月�一人も治療����ん���。", no_patients_last_month = "先月�新��患者�一人も���ん���。 �撃���", hospital_is_rubbish = "����病院�����噂�������。 患者���他�病院�行�始�����よ。", bankruptcy_imminent = "���破産���������ら�� 。気を付���", patients_unhappy = "患者�����病院を嫌�����。 �院者を増や����努力を������。", many_killed = "����今���%d人を殺��������。 治療���ゃ������������よ�。", patient_leaving = "患者�1人去������。 �由���?������ん�経営�������", patients_leaving = "患者�去�����。�物�ベン��飲料機��を設置����院者����病院を改善������。", patients_annoyed = "����病院��営方法�人々��常�腹を立�����。 彼らを責�る�������ん。 ���り��������も���酷��末�直��る����り���", queues_too_long = "待�時間�長�����", queue_too_long_send_doctor = "%s�待�時間�長����。 部屋�医師��る��を確�������。", }, competitors = { land_purchased = "%s �土地を購入����。", hospital_opened = "競��る病院: %s ���地域�開設�れ���。", staff_poached = "スタッフ� 1 人�他�病院�引�抜�れ���。", }, research = { new_machine_researched = "新��%s�研究�完了����。", drug_improved = "%s�薬�研究部門�よ��改良�れ���。", drug_improved_1 = "%s�薬�研究部門�よ��改良�れ���。", drug_fully_researched = "%s �研究�100%完了����。", new_drug_researched = "%sを治療�る新��薬�研究�れ���。", machine_improved = "%s�研究部門�よ��強化�れ���。", autopsy_discovered_rep_loss = "自動解剖機�発見�れ���。 一般大衆�ら��定的��応�予想�れ��。", new_available = "新��%s�利用�能��り���。", }, earthquake = { alert = "震警報�病院内�設備��傷���。 メンテナンス���分��破壊�れる�能性��り��。", damage = "地震�病院内�%d��機械��%d人�患者�ダメージを与����。", ended = "��ゃー� ���地震����? 地震計��震度%d���。", }, multiplayer = { players_failed = "以下�プレイヤー�最後�目標を������ん���: ", poaching = { not_interested = "�ッ� 彼ら�����病院������興味��り��ん。 彼ら�今�る場所�満足�����。", already_poached_by_someone = "�ん�����ょ�� 誰����スタッフを引�抜��������。", in_progress = "��スタッフ�����病院����������知ら����。", }, objective_failed = "����目標を������ん���。", everyone_failed = "全員�最後�目的を������ん���。�����全員�プレイを続行�����", objective_completed = "����目的を������。�����������", }, epidemic = { serious_warning = "�染病��大��題�������。 何�手を打��下���", hurry_up = "�染病��大��題�������。 一刻も早�対処を� も�今�染病を防���れ�����事��り��よ�", multiple_epidemies = "�時�複数��染病�発生���るよ��� 。�れ�大惨事��る�れ��り�����迅速�行動������。", }, cheats = { th_cheat = "����������。 �ートを解除�����", norest_on_cheat = "���嘘��ょ� スタッフ�カフェインを摂り����も�休む必�を感�����よ���。", norest_off_cheat = "やれやれ。や��興奮����������。 スタッフ��れ��ゃん�休�る��ょ�。", roujin_on_cheat = "Roujin��ャレンジ�起動����� 今後数�月間�幸�を祈り��...", roujin_off_cheat = "Roujin��ャレンジ�無効��り���。 ������正常�戻り��。", }, goals = { win = { money = "��レベル�財務基準を満�������$%d必���。", reputation = "��レベル�クリア基準を満�����評判を%d��上������。", value = "病院�価値を%d��上������。", cure = "��%d人�患者を治療�れ����レベルをクリア�る���分��。", }, lose = { kill = "��%d人�患者を殺�����レベル�失敗���", }, }, room_forbidden_non_reachable_parts = "��場所�部屋を設置�る��病院�一部�アクセス�����り��。", praise = { many_benches = "患者用�座席��分�確��れ���。素晴ら����。", plants_thriving = "素晴ら��。�物�間����元気�育�����。 ��も�����。 ����続�れ��トロフィーをもら�る�も�れ��ん。", plenty_of_benches = "座席��分��る����題�り��ん。", plants_are_well = "�����。�物を��ん�手入れ������。 素晴ら����。", few_have_to_stand = "����病院���立���る人���ん����ん。 患者��も喜���ょ�。", many_plants = "素晴ら����。�物����ん�り��。 患者��も喜���ょ�。", patients_cured = "%d人�患者�治癒�れ���。", }, room_requirements = { pharmacy_need_nurse = "薬局��看護師を雇用���れ��り��ん。", psychiatry_need_psychiatrist = "精神科室を建設�����精神科医を雇用�る必���り��。", research_room_need_researcher = "研究室を使用�る���研究スキルを��医師を雇用�る必���り��。", op_need_two_surgeons = "手術室�手術を行����外科医を2人雇用�る������。", op_need_another_surgeon = "手術室を使用��るよ���る���外科医をも�1人雇用�る必���り��。", gps_office_need_doctor = "診察室���医師を雇用�る必���り��。", reception_need_receptionist = "患者を案内�る����付係を雇用�る必���り��。", ward_need_nurse = "病室��看護師を雇用���れ��り��ん。", training_room_need_consultant = "講義室を使用�る��コンサルタントを雇用�る必���り��。", op_need_ward = "患者�手術を待�るよ���病室を建��下��。", }, surgery_requirements = { need_surgeon_ward = "手術を行����外科医をも�1人雇用��病室を建設�る必���り��。", need_surgeons_ward_op = "手術を行����外科医を2人雇用��病室�手術室を建設�る必���り��", }, boiler_issue = { minimum_heat = "�����������。地下�ボイラー�壊れ���。 病院内�人々�寒��襲�れ������ょ�。", maximum_heat = "地下室�ボイラー������り��� 。暖房機�出力�最大�������。人々�溶�始�����! 自販機を置��少�状�を改善��る��ょ�。", resolved = "朗報��。ボイラー�暖房機�正常�転を�開����。 温度�患者�スタッフ�����切�も���る����。", }, staff_advice = { need_handyman_litter = "病院�ゴミ�散乱�����。 片付�を�る���作業員を雇用������。", need_doctors = "も��多��医師�必���。 最も長�待�行列��る部屋��最も優秀�医師を�置��������。", need_handyman_machines = "病院�機械をメンテナンス�る���作業員を雇用�る必���り��。", too_many_doctors = "医師�多����。 �在暇���る医師も���。", need_handyman_plants = "観葉�物�水やりを�る���作業員を雇�必���り��。", need_nurses = "看護師をも��雇用�る必���り��。 病室�薬局��看護師�必���。", too_many_nurses = "看護師を雇�����るよ���。", }, staff_place_advice = { only_researchers = "研究医資格を����る医師���研究室����������。", not_enough_lecture_chairs = "�学生医師�座る���講義用�椅��必����", only_psychiatrists = "精神科医資格を����る医師���精神科����������。", receptionists_only_at_desk = "�付係����付デスク����������。", only_surgeons = "外科医資格を����る医師���手術室����������。", doctors_cannot_work_in_room = "医師�%s������ん。", only_nurses_in_room = "看護師���%s����������。", only_doctors_in_room = "医師���%s����������。", nurses_cannot_work_in_room = "看護師�%s������ん。", }, build_advice = { door_not_reachable = "人々���ドア���り���������ん。考��������。", blueprint_would_block = "��設置�他�部屋をブロック�������。 部屋�サイズを変更�る��別�場所�移動��������。", placing_object_blocks_door = "��オブジェクトを���置���人々�ドア���り�����り��。", blueprint_invalid = "��設置�無効��。", }, information = { first_cure = "よ�やり����一人目�患者を治療����よ。", place_windows = "窓を設置�る�部屋�明る��り�スタッフ�やる気も�上���。", extra_items = "部屋�追加�アイテムを設置�る����スタッフ�快�性�高�り�パフォーマンス��上���。", emergency = "緊急事態��������急���早�!", epidemic_health_inspector = "�染病�ニュース�����耳�入り���。 �����検査官�視察�備������。", epidemic = "病院��染病�発生����。���対処�る必���り��。", handyman_adjust = "作業員�優先順�を調整�る����より効率的�ゴミ掃除�る�������。.", patient_abducted = "患者�1人�エイリアン�誘��れ����。", promotion_to_doctor = "1人�ジュニア�ドクター�昇格����。", patient_leaving_too_expensive = "患者�%s�料金を支払���去�����。高����。", promotion_to_specialist = "����医師�1人�%s�昇格����。", fax_received = "画��左下�表示�れ�アイコン�����情報や決定�必����を知ら�るも���。", promotion_to_consultant = "1人�ドクター�コンサルタント�昇格����。", initial_general_advice = { place_radiators = "患者���寒������。メニュー�ら暖房機を�ら�設置����。", first_patients_thirsty = "患者���喉�渇�����。彼ら����飲料機を設置������。", research_now_available = "����最��研究室を建設����。�れ�研究画��アクセス����。", psychiatric_symbol = "精神科医�資格を��医師�: |�アイコンを����。", surgeon_symbol = "手術��能�医師�: {�アイコンを����。", research_symbol = "研究��能�医師�: }�アイコンを����。", taking_your_staff = "誰������スタッフを引�抜�����。 彼らを引�留�る���戦���れ��り��ん。", epidemic_spreading = "病院��染病�発生�����。 感染��人�病院を出る��治療������。", first_epidemic = "����病院��染病�発生�����。 隠蔽�る��白状�る�を決������。", autopsy_available = "自動解剖機�開発�れ���。 �れを使用���厄介�患者や歓迎�れ��患者を処分��研究�活用�る�������。 警告 - ��機械�使用��常�物議を醸��能性��り��。", first_VIP = "最�� VIP訪�を��入れよ�������。 VIP��衛生�も�や�機嫌�患者を見��よ��注�������。", machine_needs_repair = "修��必��機械��り��。 煙�出��る機械を見���クリック������。 次�作業員便利屋ボタンをクリック������。", increase_heating = "人々�寒������。 タウンマップ�画��ら設定温度を上������。", rats_have_arrived = "病院��ズミ���������。 マウス�マウスを撃退���ょ�。", first_emergency = "緊急患者�頭上����光�点滅�����。 死��時間切れ��る��治療������。", decrease_heating = "人々�暑������。 タウンマップ�画��ら設定温度を上������。", }, first_death = "�������今����患者を殺��������。 �ん�気分���?", pay_rise = "スタッフ�1人�仕事を辞��やる�脅�����。 彼ら��求����る��彼らを解雇�る�を�択������。 左下�アイコンをクリック�る����スタッフ�辞�る�脅���る����り��。", larger_rooms = "部屋�広���スタッフ�より大切��れ��る�感��パフォーマンス��上���。", vip_arrived = "気を�������� %s�����病院を見学�る���到������ 彼を喜��る�������をスムーズ�進������。", }, placement_info = { door_can_place = "��ドア�����置����。", door_cannot_place = "申�訳�り��ん����ドア�����置����ん。", room_cannot_place = "��部屋�����置����ん。", room_cannot_place_2 = "��部屋������置����ん。", object_can_place = "��オブジェクト�����置����。", window_can_place = "��窓�����置����。�����。", window_cannot_place = "�����窓������置����ん。", reception_can_place = "���付デスク�����置����。", reception_cannot_place = "���付デスク�����置����ん。", staff_cannot_place = "��スタッフ�����置����ん。申�訳�り��ん。", staff_can_place = "��スタッフ�����置����。", object_cannot_place = "�����オブジェクト�����置����んよ。", }, tutorial = { place_receptionist = "�付係を動���好��場所��置���。 賢������付係�デスク��や�����。", accept_purchase = "点滅���るアイコンを左クリック��購入���。", click_gps_office = "点滅���る線を左クリック���診察室を�択���。", door_in_invalid_position = "���� ドアを無効��置��置�よ������。 設計図���別�場所を試������。", start_tutorial = "ミッション説明を読ん��ら�マウス�左ボタンをクリック���ュートリアルを開始������。", room_too_small = "��部屋�設計図�����る��赤�������。 �ら�ドラッグ��大��������。", hire_receptionist = "患者を部屋�案内�る����付係�必���り��。", hire_doctor = "病気�人を診断�治療�る��医師�必���。", room_in_invalid_position = "������設計図�無効��。 赤�部分�他�部屋や病院��������る場所を示�����。", reception_invalid_position = "�付デスク�グレーアウト�れ��る���無効��置��る�ら��。移動���回転���������。", place_doctor = "医師を病院内������置������。 診断�る患者��れ��医師�診察室������。", select_doctors = "点滅���るアイコンを左クリック���雇������る医師を確�������。", build_reception = "�ん���。���病院���付デスク�必���。 設備メニュー�ら�ん�����。", receptionist_invalid_position = "�付係を��場所��置�る�������ん。", select_diagnosis_rooms = "点滅���るアイコンを左クリック���診断設備�リストを表示������。", click_and_drag_to_build = "診察室を建設�る�������大��を決�る必���り��。 左マウスボタンを押���らドラッグ��部屋�サイズを決������。", rotate_and_place_reception = "�マウスボタンをクリック��デスクを回転���左マウスボタン��置������。", select_receptionists = "点滅���るアイコンを左クリック�る���在雇������る�付係�表示�れ��。 アイコン�数字�候補者�人数を示�����。", next_receptionist = "�れ�リスト内�最���付係��。 点滅���るアイコンを左クリック��次��付係を確�������。", prev_receptionist = "点滅���るアイコンを左クリック������付係を確�������。", choose_receptionist = "良�能力��正�給与を���付係を���点滅���るアイコンを左クリック��雇用������。", confirm_room = "点滅���るアイコンを左クリック��部屋を設置�る��Xアイコンをクリック����ステップ�戻������。", place_objects = "�クリック�部屋�アイテムを回転���左クリック��置������。", choose_doctor = "�医師�能力をよ�確����ら�ん�����。", doctor_in_invalid_position = "���� ���医師を�置�る�������ん。", room_too_small_and_invalid = "設計図������無効�場所��り��。 設置を続������。", information_window = "ヘルプボックス�������ょ��建設��素敵�診察室�����情報を教���れ��。", place_door = "設計図���沿��マウスを動���ドアを�置���場所�作�������。", place_windows = "ドア���よ��窓を�置������。 窓�必須���り��ん��スタッフ�外を見る�����る�より幸���。", window_in_invalid_position = "��窓�無効�場所��り��。 も�よ���れ���他�場所��置��������。", room_big_enough = "設計図�大����分��り���。 マウスボタンを離���置�れ��。必��応��移動���サイズ変更�����。", order_one_reception = "点滅���るラインを左マウスボタン�一度クリック����付デスクを注文������。", build_pharmacy = "����������� �れ��薬局を建設��看護師を雇��稼��る病院を作������。", build_gps_office = "患者�病気�診断を開始�る���診察室を建設������。", object_in_invalid_position = "��アイテム�無効�場所��り��。 別�場所��置�る��回転���設置��るよ��������。", }, } totd_window = { previous = "��ヒント", tips = { [1] = "病院���付デスク�診察室�必���。 ��後�必�設備�病院を訪れる患者�種類�応��決�り��。 薬局�常�良��択肢�����。", [2] = "空気注入機�よ��機械�メンテナンス�必���。 修�����作業員を1〜2人雇用������。 �も���スタッフや患者��険��ら�れ��。", [3] = "スタッフ���ら��る�疲れ������。 スタッフルームを建���スタッフ�リラックス��るよ��������。", [4] = "スタッフ�患者�暖��感�るよ���分�暖房機を�置������。 タウンマップを使用���病院内�より多��暖房�必��場所を特定���。", [5] = "医師�スキルレベル�診断�質�速度�大��影響を与���。 診察室�熟練��医師を�置�る�追加�検査施設��れ��必��り��ん。", [6] = "ジュニアやドクター�講義室�コンサルタント�ら学����スキルを�上��る�������。 コンサルタント�特別�資格(外科医�精神科医����研究者)を����る場����スキルも教�られ��。", [7] = "ヨーロッパ�緊急番�(112)をファックス機�入力�������? サウンド�オン�����る��を確��������", [8] = "解�度や言語���設定��メインメニュー�ゲーム内�オプションウィンドウ�調整����。", [9] = "英語以外�言語を�択������至る所�英語�テキスト��り���? �足���るテキストを����言語�翻訳�る手助�を�������", [10] = "CorsixTH�ーム�強化を求������コーディング�翻訳����グラフィックス�作��興味��り���?Discordサー�ー�Sub-Reddit�Matrixサー�ー�連絡������。リンク�����ウェブサイト(CorsixTH.com)��り��。", [11] = "�グを見���場����グトラッカー�報告������:th-issues.corsix.org", [12] = "�レベル���次�レベル�進む���満�����件��り��。 レベル目標��進�を確��る���ステータスウィンドウを�ェック������。", [13] = "既存�部屋を編集���削除���場���下�ツール�ー��る編集ボタンを使用������。", [14] = "待���る患者�多�場��マウスカーソルを��部屋���る������部屋を待���る患者を���見��る�������。", [15] = "部屋�ドアをクリック�����部屋�待�状�を表示���。 待�状��並�替�や�患者を他�部屋��る���微調整�����。", [16] = "�満を���スタッフ�頻��給与�引�上�を�求���。 スタッフ�快��環境�����る��を確�����れを防���。", [17] = "病院�待���る間�患者�喉�渇���ょ�。 暖房�設定温度を上�る��ら�喉�渇���� 戦略的�場所�自動販売機を�置��追加��入を得��ょ�。", [18] = "���発見��病気��れ��診断プロセスを早期�中止���推測�より治療を行��������。 ����誤��治療�リスク�高�り�患者�死����る�能性��る��注�������。", [19] = "緊急事態�余裕��るキャパシティ��れ��追加�資金を稼�良�機会��り��。", [20] = "�存知����? 作業員を特定�作業�割り当�る�������。 スタッフ�プロフィール画���れ�れ�作業ボタンをクリック��割り当��������", }, next = "次�ヒント", } fax = { emergency = { cure_not_possible_build = "��治療を行����%sを建設�る必���り��", location = "%s�事件�発生����", choices = { accept = "���ん����", refuse = "��ん。勘���。", }, free_build = "も���混乱を��る事���れ�評判�上�り����も�失敗�れ�����評判�������ょ�。", locations = { [1] = "サッ�ャー化学プラント", [2] = "�や��大学", [3] = "宇宙園芸センター", [4] = "�険物質研究所", [5] = "モリスダンサーズ集会", [6] = "フロッグ&ブル パブ", [7] = "ビッグデーブ酒店�葬�商会", [8] = "タージカレー�ウス", [9] = "�ート中�石油化学製�商店", }, num_disease = "�在%d人�%s�患者�治療を待�����。注�������。", bonus = "��緊急事態�対応�る����最大$%d�ボーナス�得られ��。����も�失敗�れ�����評判�������ょ�。", cure_not_possible = "�時点����病気を治療����ん。", cure_possible = "必��設備�技術�������。|�����緊急事態を�拾�����", cure_not_possible_build_and_employ = "%sを建設��%sを雇�必���り��。", num_disease_singular = "�在1人�%s患者�����時�対応�必���。", cure_possible_drug_name_efficiency = "必��機器�技術を既�������。必��薬も�り��。�れ�%s��り�効果�%d パーセント��。", cure_not_possible_employ = "%sを雇用�る必���り��。", }, epidemic = { cover_up_explanation_1 = "����隠蔽を試�る場������発見�る����られ�時間内�感染��患者全員を治療�る必���り��。", cover_up_explanation_2 = "���検査官�訪����染病�隠蔽���進行中��発見��場��厳��措置を�られる�能性��り��。", disease_name = "医師��染性�病気%sを発見����。", declare_explanation_fine = "も��染病を宣言�れ��罰金$%dを支払�評判を�����。��代�り�����患者�ワク�ン�自動的�接種�れ��。", choices = { cover_up = "患者�1人も病院を出��よ��気を付���ら�制�時間内�感染者全員を治療�る。", declare = "�染病を発表��罰金を払��評判を���。", }, }, disease_discovered = { close_text = "新��症例�発見�れ���。", need_to_build = "�れ�対処�る����%sを建設���れ��り��ん。", need_to_employ = "���機�対処�る���%sを雇用������。", need_to_build_and_employ = "%s を建設��%sを雇用�れ��������ょ�。", discovered_name = "�ーム�新��症例を発見����。�れ�%s��。", can_cure = "��病気�対処�る�������。", }, vip_visit_query = { vip_name = "%s �����病院を訪�����希望�����。", choices = { invite = "VIP�正��招待状を出�。", refuse = "言�訳を���VIP�訪�を��る。", }, }, diagnosis_failed = { situation = "����診断機を試��������何�病気�判り��ん。", choices = { take_chance = "イ�����治療�る。", send_home = "患者を家��り返�。", wait = "も��診断室を建�る��患者を待��る。", }, what_to_do_question = "��患者を�����ょ�?", partial_diagnosis_percentage_name = "%dパーセント�確率�「%s������果�出���。.", }, emergency_result = { earned_money = "最大ボーナス$%d����$%dを�得����。", close_text = "クリック��閉�る", saved_people = "����%d人中%d人を救����。", }, choices = { accept_new_level = "次�レベル�進む", decline_new_level = "も�少�プレイを続�る", return_to_main_menu = "メインメニュー�戻る", }, vip_visit_result = { ordered_remarks = { [1] = "�ん�素晴ら��病院�。次�本当�具��悪����ら�絶対����入院�る�。", [2] = "�れ���本当�病院��", [3] = "�れ�素晴ら��病院�。�����病院�入������る�ら��り��よ。", [4] = "驚���病院経営��。招待�������感����。", [5] = "���悪�������...", [6] = "良�病院���。����皆�ん�タージ�カレー�も�����?", [7] = "�む�も�����所も見������...改善�必����言���も�����。", [8] = "�や�や�気分�悪����も��������������。", [9] = "率直�言��何�変哲も��病院���。も��期待����ん���。", [10] = "�ん�������ん���?4時間連続�オペラ�方�マシ��", [11] = "目���も�����り��よ。�れを病院�呼���?豚�屋�言��方��似�����", [12] = "公�場�注目を浴���ん�臭�場所を訪れ��られる����ん�り��も��ん�仕事辞��やる。", [13] = "�ん����場所�。��を閉鎖�る����動を開始�る�", [14] = "�ん��酷�病院�見������。�ん�����", [15] = "正直ショックを�����。�れ�病院�呼�る代物�ゃ��。一�引����行���", }, cash_grant = "$%d��助金を���り���。", vip_remarked_name = "����病院を訪れ�後�%s���発表����。", close_text = "�訪������り���������。", rep_loss = "�れ�応�������評判�下�り���。", remarks = { [1] = "�ん�素晴ら��病院�。次�本当�具��悪����ら�絶対����入院�る�。", [2] = "�れ���本当�病院��", [3] = "�れ�素晴ら��病院�。�����病院�入������る�ら��り��よ。", [4] = "驚���病院経営��。招待�������感����。", [5] = "���悪�������...", [6] = "良�病院���。����皆�ん�タージ�カレー�も�����?", [7] = "�む�も�����所も見������...改善�必����言���も�����。", [8] = "�や�や�気分�悪����も��������������。", [9] = "率直�言��何�変哲も��病院���。も��期待����ん���。", [10] = "�ん�������ん���?4時間連続�オペラ�方�マシ��", [11] = "目���も�����り��よ。�れを病院�呼���?豚�屋�言��方��似�����", [12] = "公�場�注目を浴���ん�臭�場所を訪れ��られる����ん�り��も��ん�仕事辞��やる。", [13] = "�ん����場所�。��を閉鎖�る����動を開始�る�", [14] = "�ん��酷�病院�見������。�ん�����", [15] = "正直ショックを�����。�れ�病院�呼�る代物�ゃ��。一�引����行���", bad = { [1] = "�ん�������ん���?4時間連続�オペラ�方�マシ��", [2] = "目���も�����り��よ。�れを病院�呼���?豚�屋�言��方��似�����", [3] = "公�場�注目を浴���ん�臭�場所を訪れ��られる����ん�り��も��ん�仕事辞��やる。", }, mediocre = { [1] = "�む�も�����所も見������...改善�必����言���も�����。", [2] = "�や�や�気分�悪����も��������������。", [3] = "率直�言��何�変哲も��病院���。も��期待����ん���。", }, super = { [1] = "�ん�素晴ら��病院�。次�本当�具��悪����ら�絶対����入院�る�。", [2] = "�れ���本当�病院��", [3] = "�れ�素晴ら��病院�。�����病院�入������る�ら��り��よ。", }, very_bad = { [1] = "�ん����場所�。��を閉鎖�る����動を開始�る�", [2] = "�ん��酷�病院�見������。�ん�����", [3] = "正直ショックを�����。�れ�病院�呼�る代物�ゃ��。一�引����行���", }, free_build = { [1] = "��も素晴ら��病院�������資金�制����れ��営�る���れ��難������よ�?", [2] = "��経済学者���り��ん����も��病院を�営��る�����。���味��り��よ�?", [3] = "��もよ��営�れ��る病院��。�������気を���������…���������関係��話����。", }, good = { [1] = "驚���病院経営��。招待�������感����。", [2] = "���悪�������...", [3] = "良�病院���。����皆�ん�タージ�カレー�も�����?", }, }, rep_boost = "��地域������評判��上����。", telegram = "電報�", }, disease_discovered_patient_choice = { guessed_percentage_name = "�ーム�患者�病状を推測�る必���り���。�れ�%s��る確率�%dパーセント��。", need_to_employ = "��状��対処�る����%sを雇用������。", disease_name = "研究�ーム�新��病気「%s�を発見����。", choices = { wait = "患者を��ら�病院�待��る。", send_home = "患者を自宅��り返�。", research = "患者を研究科��る。", }, need_to_build = "�れ�対処�る����%sを建設�る必���り��。", need_to_build_and_employ = "%sを設置��%sを雇用�れ��������。", can_not_cure = "��病気を治療�る�������ん。", what_to_do_question = "患者を������?", }, epidemic_result = { rep_loss_fine_amount = "新�����染病事件を大���り上�る��ょ�。����評判�大��傷����ら�罰金���$%d�科�れ��。", succeeded = { part_1_name = "検査官�����病院�%s�広������噂を�������。", part_2 = "�����ら�検査官�噂を�付�る証拠を見��る事�����ん���。", }, close_text = "や���", hospital_evacuated = "�康委員会�����病院を閉鎖�る以外�手��り��ん���。", fine_amount = "政府�国家緊急事態を宣言��罰金���%d�科�れ��。", compensation_amount = "政府���噂�����病院�与���害�代償金���$%dを授与�る��を決定����。", failed = { part_1_name = "�染病%s�発生を隠������果�", part_2 = "����病院スタッフ�地域��染病を広��������。", }, }, } vip_names = { [1] = "豊臣家康市長", [2] = "俳優ジェームズ・�ンド", [3] = "�ヤト=ミヤザキ監�", [4] = "野々�英世", [5] = "ア�ルート・アインシュイタン�", [6] = "�泉進三郎 民主自由党代表", [7] = "�ャー�ル・�ャップリソ市議会議員", [8] = "音楽家 ジャン・レノ", [9] = "大リーガー �谷翔平", [10] = "アイザック ニュートソ三世", health_minister = "���大臣", } disease_discovered_patient_choice = { need_to_employ = "��状��対処�る����%sを雇用������。", } introduction_texts = { demo = " デモ病院�よ����//残念��らデモ版����レベル����れ����ん。 �����������を忙����る���分�も�����ん�り��� 様々�病気�対応�る����異�る部屋�必���。 時々緊急事態�発生�る��も�り��。 ���研究室を使用��追加�部屋を研究�る必�も�り��。 ����目標��$100,000を稼��病院�価値を$70,000���評判を700��る����。 �時��患者�少���も75%を治療������。 評判�300を下回��り�患者�40%以上を死亡�������ゲームオー�ー��り��。//頑張�������", level1 = " 最��病院�よ����//�付デスクを�置��診察室を建設���付係�医師を雇����病院を�営�始���ょ�。 �れ�ら患者��る�を待���。 精神科を設置��精神科�資格を��医師を雇��も良�アイデア��。 薬局�看護師も患者を治療�る�����欠��。 風船���病�患者��注�������。 空気注入室��れを���解決���。 10人�患者を治療��評判�200以下��ら��よ�����ょ�。", level2 = " ��エリア��より多��種類�病気��り�����研究科を建�る���勧����。 より多��患者を治療��るよ��病院を設計������。 病院を清潔������る��評判を高�るよ��心�������。 ベロ��病�対応�る�����ベロ出�病クリニック�必���。 新��病気を診断�る���心臓科も建設����。 �れら�部屋���らも建設�る��研究�る必���り��。 ���病院を拡張�る����追加�土地を購入�る��も����。 タウンマップ�ら購入��能��。 評判300�銀行残高$10,000�40人�患者を治療�る��を目指������。", level3 = " 今回�裕��エリア�病院を設立���。 ������������全��益を上�る�期待�����。 最��良�評判を得る必���り����病院�順調��営�れ始��ら���る��多��資金を稼����集中������。 �れ�������緊急事態�発生�る�能性も�り��。 ��症状を��人��時�大挙��押�寄�������全員を時間内�治療�れ�評判�上�多��ボーナスを���れ��。 王様症候群�よ��病気�発生�る�能性��り�手術室�病室�建設を予算�組�込ん�������。 $20,000を稼��基準を��������。 ", level4 = " ����患者を満足�����る��効率的�対応��死者を最���抑������。 評判も��る��高���よ��������。 ��り�金�事を心����る�も良��り��ん。 病院�評判�上�れ���金�後�ら付�����。 医師�訓練を行��能力を上�る��も����。 他�人よりも���見�る患者も�る�も�れ��ん�����り対処������。 評判を500以上����ょ�。", level5 = " ��レベル�様々�症例を扱�必��忙��病院��り��。 登場�る医師�皆�大学を出���り��心者�����講義室を建���切�レベル�訓練�る�������。 医者�訓練��能�コンサルタント�3人�����ん�ら�彼ら�幸�度��気を付��下��。 �ら����病院�サンアンドロイド断層�上�建���る��も注��必���。 地震�リスク�常�存在���。 地震�機械を破壊��病院�スムーズ��営を妨�る��ょ�。 評判を400��上��$50,000を銀行�貯���功を�������。�ら�200人�患者を治療������。", level6 = " ����知識をフル活用���スムーズ�よ�管��れ�病院を設立���全�利益を上��病気�人々�投���る�����題�対処��るよ��������。 ��地域�環境�特�細�や感染症��殖�や����を�識������。 徹底的�衛生管��行���れ��患者��染病�広�る����られ����ょ�。 $150,000を稼��病院�価値�$140,000を超�るよ��������。", level7 = " ��������厳��目�光�����。 銀行残高を高����良�評判を得られるよ��気を付������。 �必��死亡�許�れ��ん ― 死亡者�経営����最大�敵��。 一��スタッフを常�����必��機器��������る��を確�������。 評判600�銀行残高$200,000を目指������。", level8 = " 効率よ�利益を生�出�素晴ら��病院を作れる�����������������。��地域��民���り裕���。 彼ら�ら��ら巻�上�られる�������腕次第��。 人々を治療�る��素晴ら���������れよりも本当�大切����金も����。 病気�人々�ら��る��多���金を稼���ょ�。 ��レベルを完了�る���$300,000を集������。", level9 = " ����銀行�座��金を入れ�大臣����新��リムジン代を支払��後�病人�困���る人々�役�立���やり��りよ�管��れ�病院を作る���戻れ��。 ����多��異�る�題�発生�る���予想�れ����よ�訓練�れ�スタッフ�必��設備��れ���ん��題も解決��る����。 病院�価値�$200,000��り�銀行�$400,000�必���。 �れ以下���レベルをクリア�る�������ん。", level10 = " �������地域�発生�る����病気�対応�る������薬�効�目�も集中�るよ�求�����。���検査官シック�ら�警告��り����������薬��常�効率的��る��を確�������。���病院自体も�難�余地���よ���死亡者数も最低�抑������。ヒント����ゼリー槽����スペースを確�������を�勧����。����薬を少���も80%�効�目�開発��評判を650���銀行�500,000ドルを貯��クリア���ょ�。", level11 = " 究極�病院を構築�る�ャンス�与�られ���。 ��������期待�る��世界最高�病院��。 大金を稼���常�高�評判を����らゆる�能性�対応�る���期待�れ����。 �れ����仕事��。 �功��る��特別�能力�必���ょ�。 �����地域��UFO�目撃情報も�る���スタッフ�予想外�訪�者�対応��るよ��準備������。 病院�価値を240,000ドル���銀行�500,000ドルを貯��評判を700�������。", level12 = " �れ�最大�挑戦��。����仕事�感銘を������������最高�仕事を用�����。 ��もや究極�病院を建設��巨万�富を稼��驚異的�評判を得る����� ����能��り����土地を購入������病気を治療�(�����1�残ら�����味��)�����賞を�得�る��も期待�れ����。 �������? 650,000ドルを稼��750人を治療��評判を800���クリア���ょ�。", level13 = " 病院管�者��������驚異的�手腕��秘密特殊部隊�特別秘密部門�目�止�り���。 彼ら�����スペシャルボーナスを用������。 �ズミ汚染病院��ズミターミ�ーターを必�������。 作業員�����ゴミを片付�る�����る��多���ズミを撃���れ��り��ん。 準備OK���?", level14 = " ��新��挑戦��。 �れ�完全�予期���驚���病院��。 �れを�功��れ�������者�中��者��り��。 ����簡�������������。�れ���直��る最高�タフ�ミッション��。幸�を祈り���", level15 = "病院経営�基礎��ん������。 医師��患者�診断�関�������助�を必�������。 彼らを助�る���検査室等�部屋を建������ょ�。", level16 = " 患者�診断��る程度進ん�ら�治療施設やクリニックを建設�る必���り��。��手始��薬局を建�る��良���ょ�。薬を投与�る���看護師も必���。", level17 = " 最後�一言。病院�評判��気を�������。 評判�良�れ���方�ら患者�訪れるよ���り��。 も�����ん死者を出��り�人々を�幸�����れ����レベルをクリア�る����難��������� ���や�����ょ�。幸�を祈り��。頑張�������", level18 = "", } letter = { [1] = { [1] = "親愛�る%s様//", [2] = "素晴ら��� 病院経営����素晴ら��手腕を発��れ���� 我々���������も��大��病院���気�����尋����。 �������り�プロジェクト��る�����。 ����給料�$%d��り��。 御一考下��。//", [3] = "%s病院��仕事�興味��り���?", }, [2] = { [1] = "親愛�る%s様//", [2] = "エクセレント� ����病院��業績�素晴ら����。 景色を変��新��挑戦を望む���れ��新��プロジェクトを用�����。 無�を�る必���り��ん��や���る価値��分�る�����。 給与�$%d��。//", [3] = "%s病院��仕事を望����?", }, [3] = { [1] = "親愛�る%s様//", [2] = "������病院��在任期間中�大�功を�����。 ������我々�����大��期待を寄���り�他�場所���ジションを�供����考�����。 給与�$%d����新��挑戦を気�入���れる�����。//", [3] = "s病院���ジション�興味��り���?", }, [4] = { [1] = "親愛�る%s様//", [2] = "����������� 我々���一�������病院�営手腕��常�感銘を������。 ��������金����る���間���り��ん。 �������能力を試�事���るよ���難��仕事を好む�������ょ��。 給与�$%d����決定�����委���。//", [3] = "%s病院��仕事を引�����れ���?", }, [5] = { [1] = "親愛�る%s様//", [2] = "�度��願���。 ������魅力的�病院を離れ����気���尊����。 ����今一度��検討を�願����。 も�他�病院�移り�円滑��営����る���れ��素晴ら��給与$%dを�供���。//", [3] = "今��%s病院�移り�����?", }, [6] = { [1] = "親愛�る%s様//", [2] = "�機嫌������。 ������素晴ら���営�れ�病院を�れ��愛���る�を�解�����。 �����ら�今後�キャリアも考�る��������。 も�異動��決断を����る�ら�$%d�給与を用������。 �考�価値��る�����。//", [3] = "%s病院���ジションを希望����?", }, [7] = { [1] = "親愛�る%s様//", [2] = "�久��り��。 ����������在�病院�留�る決定を�考�る����を��������。 �在�素晴ら��病院�満足���る��当然��������������更�る発展�時������。 より挑戦的��スト�給与$%dを��入れる������より良�未��繋����る�信�����。//", [3] = "%s病院���ストを引�����れ���?", }, [8] = { [1] = "親愛�る%s様//", [2] = "���んよ�。 �回��手紙���共�申�出を���頂���ん����。 今回�更�る好�件―新��病院��最高��ジション�給与$%dを�案�����。 �回�決定を�考頂�る����考�����。 ������? �������り�仕事������。//", [3] = "%s病院���ジションを引�����れ���?", }, [9] = { [1] = "親愛�る%s様//", [2] = "����医学�長�歴��中�最も優れ�病院経営者��る��を証明����。 ��大���果�報�れる�������全病院�会�会長�を�供��������。 給与�$%d��。 �れ�ら��訪れる全��病院��熱狂的�歓迎�れる��ょ��//", [3] = "�れ�������感����。長��引退生活を楽�ん�����。//", }, [10] = { [1] = "親愛�る%s様//", [2] = "����������。 ����我々�任命������病院を見事��営���������。 ��素晴ら��業績�より�世界中�都市を自由�行���る資格��り��。 年金���$%d�支給�れ��。 全国を無料�旅行��熱心�支�者�����病院�活動を宣�������れ������。//", [3] = "����皆����を誇り�������。命を救����尽力����������感������。//", }, [11] = { [1] = "親愛�る%s様//", [2] = "����仕事�り�����人々��手本���。 多��病院を�れ��見事�経営�れ����感��尊敬��を表���。 ��������生涯給与���$%dを�供��オフィシャルオープンカー�都市�ら都市�移動��������よ�����れ����果を�����を講演���������考�����。//", [3] = "��������知的階級�人々�����模範��り�世界中�誰も����を人類����見������。//", }, [12] = { [1] = "親愛�る%s様//", [2] = "今世紀始���以��最高�病院管�者�����功��キャリア�終�り�近������。 ����国��影響�������フェスティ�ル�開会�船�進水�トークショー�出演��を行�����������給与���$%dを�供����考�����。 �れ����全員���素晴ら��PR��る����//", [3] = "���ジションを��入れ�����。難��仕事��������行��も車�警察�護衛を�供���。//", }, custom_level_completed = "よ�やり������カスタムレベル�����目標を�������", return_to_main_menu = "メインメニュー�戻り���?�れ�もプレイを続����?", campaign_level_completed = "よ�やり���� レベルをクリア����。 �も���終�り���り��ん� %s病院���ジション�興味��り���?", campaign_completed = "素晴ら��� ����レベルをクリア����。 �れ�リラックス���インター�ット上�フォーラム������果を報告�����。 �疲れ様����", dear_player = "親愛�る%s様", campaign_level_missing = "申�訳�り��ん����キャンペーン�次�レベル�見��ら��よ���。 (��:%s)", } information = { level_lost = { [1] = "残念���レベル�失敗����。次回�������������", [2] = "失敗��由:", balance = "銀行残高�%d以下��り���。", reputation = "評判�%d以下��り���。", percentage_killed = "患者�%dパーセント以上を死亡�����", cheat = "�れ������択���?�れ�も間���ボタンを�択�����?�れ�も正���ート�る���ら��������?�白�������?", }, cheat_not_possible = "��レベル�����ート�使用����ん。�ート�も失敗�����。�白�����よ��?", custom_game = "CorsixTH�よ���。��カスタムマップを楽�ん������", no_custom_game_in_demo = "申�訳�り��ん��デモ�ージョン��カスタムマップをプレイ����ん。", very_old_save = "��レベルを開始���らゲーム�多��更新��り���。����機能��図通り�動作�る��を確��る����開始を検討������。", cannot_restart = "残念��ら���カスタムゲーム�リスタート機能�実装�れる���存�れ���。", } warnings = { newersave = "警告: より新���ージョン�CorsixTH�らセーブデータをロード����。 クラッシュ�発生�る�能性��る���続行�推奨�れ��ん。 自己責任�プレイ������。", levelfile_variable_is_deprecated = "通知: レベル '%s' ��レベルファイル内�廃止予定�変数定義���れ����。 '%LevelFile' � '%MapFile' ����変更�れ���。 マップ�作�者�レベルを更新�るよ���������。", } trophy_room = { reputation = "REPUTATION", cash = "CASH", pop_percentage = { awards = { [1] = "昨年度�����病院�地域��高�支�率を得����� よ�やり����", [2] = "����������。 地域�全病院中最高�支�率を得���。", [3] = "素晴ら��� 地域�他病院�����計よりも高�支�率を�得�����", }, penalty = { [1] = "今年��院者数���り�低����。 �金を稼���患者�必���。", [2] = "地域最低�支�率を記録����。 �常����������。", }, }, curesvdeaths = { awards = { [1] = "昨年�����病院�治療率�素晴ら��も����。 ���申�上���。", }, penalty = { [1] = "����病院�治療率�地域�最低��。 より多��人を治療��死����よ��������。 ���り���������。", }, }, best_value_hosp = { trophies = { [1] = "����病院��常�高�価値を表彰���。 高価�設備�高�治療を�供���。 素晴ら�����", }, regional = { [1] = "ゲーム内�最も価値��る病院を����を������。 素晴ら���果��� ��調��続������。", }, penalty = { [1] = "地域最低�病院価値を記録����。 ������事態�何�手を打������。 も��高価�も�を手�入れ��ょ��", }, }, rats_accuracy = { trophies = { [1] = "�ズミ�射撃精度�%d%%������を称���シンジケートウォーズ賞を贈り��。", [2] = "昨年�病院�狙���ズミ�%d%%を退治�る���正確無比�腕を称�����トロフィーを授与���。", [3] = "病院内������ズミ�%d%%を殺����を記念���ダンジョンキーパートロフィーを授与���。 ����������ュ~�", }, }, no_deaths = { trophies = { [1] = "ノー�悔や�賞��賞������ 昨年�1人�死人も出���ん����。", [2] = "ライフ フォーエ�ー コー�レーション��昨年�死亡者ゼロ���を称����トロフィーを贈り��。", [3] = "����素晴ら��病院�死亡者ゼロを��������サ�イ�ル賞を授与�れ���。 素晴ら����。", }, awards = { [1] = "今年�����病院��死亡者数��常�少����を記念�����賞を贈り��。 素晴ら����。", [2] = "����素晴ら��能力�より�病院��死亡者数を最���抑����。 ���果��常�満足������ょ�。", }, regional = { [1] = "昨年�他���病院よりも低�患者死亡者数を記念�����賞を贈り��。", }, penalty = { [1] = "����病院��昨年多数�死亡者数を出����。 ��も残念��。 より多��人々を生�延��������。", [2] = "����病院�患者�����険����り��ん。 死亡��る������患者を治療������。", }, }, gen_repairs = { awards = { [1] = "病院�機械をよ�整備���る作業員����対��特別賞�授与�れ��。 よ�やり���。 休暇を����ょ�。", [2] = "作業員���他���病院よりも優れ�パフォーマンスを発�����。�れ�����果��り�称賛�値���。", [3] = "����病院�設備�素晴ら��整備�れ����。 作業員���示��献身�並外れ�も���素晴ら��仕事�り��脱帽����", }, penalty = { [1] = "作業員�機械�メンテナンスをサボ�����。 も��よ�監��る��より多��作業員を雇�����。", [2] = "機械�メンテナンス�最低��。 も��スタッフ�管��気を使�よ�躾������。", }, }, many_cured = { trophies = { [1] = "昨年�病院�������患者を治療������マリー・キュリー賞を�賞����。 ����������。", [2] = "国際治療財団��昨年����病院��常�多��人々を治療����を称��キュアーオールトロフィーを授与���。", [3] = "昨年�病院�患者�大部分を治療������「病気�負������薬�トロフィー�授与�れ���。", }, awards = { [1] = "昨年����ん�人を治療��������を申�上���。 多��人々�����仕事�����元気��り���。", [2] = "他���病院よりも多��患者を治療����を称�����賞を���������。素晴ら��業績��。", }, regional = { [1] = "他�����病院を����よりも多��患者を治療������究極�治療賞を授与���。", }, penalty = { [1] = "効果的�治療��供������ん。 も��治療�質を上�る���専念������。", [2] = "����病院��他���病院よりも患者�治療率�低���。 ���を失望������。 も�言�����り��ん。", }, }, research = { regional_bad = { [1] = "地域内�他�����病院�方�����病院よりも研究�優れ����。 研究�病院�進歩��常������������カンカン��。", }, regional_good = { [1] = "薬�設備�研究�関���昨年����病院�地域�1番��績を修����� 研究スタッフ�頑張り��果��。", }, awards = { [1] = "����病院�研究科�常�最新�技術を�り入れ�����。 研究スタッフ���賞�値���。 素晴ら����。", [2] = "昨年�期待以上�薬�や機器を研究����。 ��賞を����ら���������。", }, penalty = { [1] = "新治療法�設備�新薬�開発��れ����。 技術�進歩�病院�進歩。 深刻��題��。", }, }, consistant_rep = { trophies = { [1] = "今年最も完璧�基準�最高�評判を得�����内閣大臣賞を授与�れ��。 素晴ら�����", [2] = "昨年�最高�評判を��病院���SqueakiKlean賞を�賞����を������。 当然��果���。", }, }, sold_drinks = { trophies = { [1] = "病院内��甘�飲�物�消費を促進�������世界歯科医�会�ら��トロフィー�表彰状を授与�れ��。", [2] = "病院�今年売られ�清涼飲料�数を記念���ソフトドリンク�売業�コラコーラトロフィー�授与�れ���。", [3] = "飲料充填株�会社を代表���今年病院�販売�れ�ソフトドリンク�驚異的�数を称�����ョコレートコーティングトロフィーを授与���。", }, }, rats_killed = { trophies = { [1] = "昨年病院�%d匹��ズミを撃退������害虫撲滅トロフィー�授与�れ��。", [2] = "トロフィー��賞��� �れ�病院�%d匹��ズミを�情�も退治��功績�よるも���。", [3] = "昨年病院�%d匹��ズミを退治��優れ�スキル�より�ラットブラスタートロフィーを�賞����。", }, }, happy_staff = { trophies = { [1] = "一生懸命��スタッフを��る��幸���������スマイル賞を授与���。", [2] = "幸��アダミ�会������病院��幸�スタッフ�昨年1人も居������を称����トロフィーを授与���。", [3] = "��トロフィー「大�����昨年�1年間�����スタッフを幸���������与�られ��。 笑顔���れ�����", }, regional_good = { [1] = "����スタッフ�他���病院よりも幸���。 幸��スタッフ��より多��利益�より少��死亡者を�味���。 ���もニッコリ��。", }, penalty = { [1] = "スタッフ�皆�満を抱�����。 良�スタッフ��病院�資産����命��下��。 スタッフをも��幸����������全員失�����り��。", }, awards = { [1] = "スタッフ���賞を贈り��。 改善�余地��り����全体的��良好�扱�を����言�����。", [2] = "����スタッフ�����下�������常�満足���り�笑顔�絶���ん。 ����素晴ら��経営者���", }, regional_bad = { [1] = "����気�付��������も�れ��ん��昨年�����スタッフ�皆��満を抱���ら�������。 他�����病院�����病院よりもスタッフを幸�������。", }, }, all_cured = { awards = { [1] = "昨年�病院�����患者を治療������マリー・キュリー賞を�賞����。 ����������。", }, trophies = { [1] = "国際治療財団��昨年����病院を訪れる����患者を治療����を称��キュアーオールトロフィーを授与���。", [2] = "昨年�病院�����患者を治療������「病気�負������薬�トロフィー�授与�れ���。", }, }, emergencies = { regional_bad = { [1] = "����病院�緊急事態対応�地域�最悪��。 地域�緊急治療リーグ�最下��沈ん��る�������責任��。", }, regional_good = { [1] = "昨年�����病院�他���病院よりも緊急事態�対処����を�������ら��賞を授与���。", }, award = { [1] = "����������。 緊急事態��効率的��効果的�対応����特別賞をも�ら����。 よ�やり���。", [2] = "����緊急事態対応��越�����。 ��最優秀緊急対応賞��多��病気や苦���対処�る最高�能力を示����を称�����。", }, penalty = { [1] = "����緊急時�対応��粗末���。 急患�正確��切�処置を必�������������れを�供����ん���。", }, }, happy_patients = { awards = { [1] = "昨年�����病院�訪れ�人�����も満足������� 誇ら�����。", [2] = "ゲーム内�他���病院よりも�患者������病院�治療���も満足�������", }, penalty = { [1] = "治療を���人����病院�����皆�顔を�������。 ����尊敬を得�����れ��も��良��果を出�必���り��。", [2] = "����病院�患者���皆���病院を最低��言���。 患者�幸�をも��考慮�る����。", }, }, high_rep = { awards = { [1] = "上出���。 昨年���り�象的�評判を築��功績�より���賞を�賞����。", [2] = "素晴ら��� 昨年度最高�評判を得����より賞を�賞�����", }, regional = { [1] = "��れ�病院よりも最高�評判を���功績��ブルフロッグ賞を����り����。 最高栄誉賞��賞������", [2] = "����病院�今年度�他病院全�を����も��������評判を得���� 大���果���", }, penalty = { [1] = "昨年を通���常�悪�評判を維���������懲戒処分を����。 改善を期待���。", [2] = "����病院�評判�地域�最悪��。 �������ら�りゃ���ん。 も��努力�る��転�先を探������。", }, }, hosp_value = { awards = { [1] = "���������病院�高�病院価値を表彰������ �����������", }, regional = { [1] = "����財テク王���� ����病院��地域内�他�����病院を����よりも価値��り��。", }, penalty = { [1] = "����病院�価値��世辞�も高���言���ん。 財政���失敗�原因��。 良�病院�高価�病院��る��を忘れ�������。", }, }, wait_times = { award = { [1] = "����������。 ����病院�一貫��待�時間��常�短��評価�れ����。 �れ����賞���", }, penalty = { [1] = "待�時間�����病院��長����。常�許容����行列��り��。も��患者�整�を���や������。", }, }, cleanliness = { regional_good = { [1] = "����病院�地域�最も清潔��評価�れ����。 作業員���昇進�値���。 ���も尊敬�れ�然る����。", }, award = { [1] = "検査官�����病院��常�清潔��る�評価�����。 清潔�病院�安全�病院��。 引�続�作業員�����良�仕事を続��������。", }, regional_bad = { [1] = "����病院�地域�1番��潔�を誇�����。 周辺�����病院�廊下をも��清潔�������。 ����医療界�������。 �ん��������。", }, }, healthy_plants = { awards = { [1] = "昨年�����観葉�物を見事�育����を評�����緑育肥料賞を授与�����。", }, trophies = { [1] = "�去12ヶ月間���り�����物を良好�状態����功績��観葉�物���会より�グリーントロフィー・オブ・ヘルスを授与�����。", [2] = "昨年�病院��物を最良��康状態����功績��グリーンフィンガートロフィーを����り����。", }, }, happy_vips = { trophies = { [1] = "昨年病院を訪れ�VIP��好�象を与�����より�ノーベル賞を�り��。 皆����病院��常�好�的�コメントを寄����。", [2] = "有�人エージェンシー�ら�����病院を訪れ�����VIPを満足�������セレブリティトロフィーを授与�れる��を������。 少�有���り�������仲間入り��。", [3] = "����病院を訪れ�����著�人�生活を�上�������VIP訪�賞を�賞����。 素晴ら���", }, }, } bank_manager = { current_loan = "�在�ローン", interest_rate = "利率", interest_payment = "利�", hospital_value = "病院�価値", statistics_page = { date = "日付", money_in = "�入", money_out = "支出", balance = "残高", current_balance = "�在�残高", details = "詳細", }, balance = "残高", insurance_owed = "未払��険", inflation_rate = "インフレ率", } CorsixTH-0.70.0/CorsixTH/Lua/languages/korean.lua000066400000000000000000004773761522247547500215220ustar00rootroot00000000000000--[[ Copyright (c) 2013 nullstein Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("unicode") Language("한국어", "Korean", "ko", "kor") Inherit("English") Encoding(utf8) IsArabicNumerals(false) misc = { hospital_open = "병�� 문� 열었습니다", save_success = "게임� 저장�었습니다", save_failed = "오류: 게임� 저장하지 못했습니다", low_res = "저해��", no_heliport = "아� 아무 질병� 발견�지 않았거나 � 지�� 헬리콥터 �착륙장� 없습니다. 아니면 접수대를 배치하고 접수�� 고용해야 �지� 모릅니다.", grade_adverb = { extremely = "매우", mildly = "약간", moderately = "�당히", }, not_yet_implemented = "(미구현)", send_message = "플레�어 %d �게 메시지를 보냅니다", out_of_sync = "게임 �기화� 실패했습니다", balance = "밸런스 파�:", load_failed = "저장� 게임� 불러오지 못했습니다", mouse = "마우스", done = "모� 완료�", --[[force = "Force",--]] pause = "�시 정지", send_message_all = "모든 플레�어�게 메시지를 보냅니다", } font_location_window = { caption = "�트를 선�하세요 (%1%)", } staff_list = { morale = "사기", tiredness = "피로�", skill = "기술", total_wages = "전체 임금", } research = { allocated_amount = "할당량", funds_allocation = "�금 할당", categories = { improvements = "개선", drugs = "신약 개발", diagnosis = "진단 장비", cure = "치료 장비", specialisation = "집중 연구", }, } debug_patient_window = { caption = "환� 디버그", } totd_window = { previous = "�전 �", tips = { [1] = "모든 병�� 접수대와 진료실� 있어야 �아갑니다. 그 �후�는 어떤 종류� 환�가 방문하는지� 달려있습니다. 약국� 설치하는건 언제나 좋� 선��지만요.", [2] = "팽창기와 같� 기계들� 정비를 해줘야 합니다. 잡역부를 한 �명 고용해서 기계들� 수리하지 않으면, ��들�나 환�들� 다첼 수 있습니다.", [3] = "어� 정� 지나면 ��들� 지치게 �니다. �� 휴게실� 만들어서 ��들� 쉴 수 있게 해주세요.", [4] = "�디��터를 충분히 배치해서 ��들과 환�들� 따뜻하게 해주지 않으면 그들� �차 불행해질 �니다. 마� 지�를 �용해서 난방� � 필요한 지�� 찾으세요.", [5] = "�사� 숙련�는 진단� 정확�와 ��� � �향� 미칩니다. 진료실� 숙련� �사를 배치하면 추가�� 진단 시설� 많� 필요하지 않게 �니다.", [6] = "수련�와 전공�는 �육실�서 전문��게 배움으로� 숙련�를 올릴 수 있습니다. 가르치는 전문�가 전문 분야 �격� 있다면 (외과, 정신과, �는 연구), 전문 지�� 함께 전수�니다.", [7] = "팩스 기계� 비�전화 번호(112)를 입력해 보셨나요? 소리가 켜져있는지 꼭 확�하세요!", [8] = "화면 해��나 언어등� 설정� 메� 메뉴 혹� 게임 내� 옵션 창�서 조절할 수 있습니다.", [9] = "�어가 아닌 언어를 선�했지만 여기저기� �어로� 글들� 보�시나요? 빠진 글들� 여러분� 언어로 번역하는 �� �와주세요!", [10] = "CorsixTX 팀�는 �� 부대가 필요합니다! CorsixTH � 코딩, 번역, 혹� 그래픽 작업� 관심� 있으신가요? �럼, 메�� 리스트, �는 IRC 채� (freenode� corsix-th)� 통해서 우리�게 연� 주세요.", [11] = "버그를 발견하면 버그 트래커(th-issues.corsix.org) � 제보해주세요", [12] = "� 레벨� 다� 레벨로 넘어가기 위해 달성해야할 복표들� 있습니다. 레벨 목표 달성� 진행 �황� 보려면 �태 창� 확�하세요.", [13] = "�미 지어진 방� 삭제하거나 편집하기 �할 때는 아래쪽 툴바� 있는 편집 버튼� 사용하면 �니다.", [14] = "기다리는 환�가 너무 많� 때�는, 마우스 커서를 특정 방 위� 올려서 그 방� 기다리고 있는 환�들� 누구�지 금방 알아낼 수 있습니다.", [15] = "특정 방� 문� �릭하면 그 방� 대기열� 볼 수 있습니다. 여기서 대기 순서를 변경하거나 환�를 다른 방으로 보내는 등� 유용한 조율� 가능합니다.", [16] = "불행한 ��� 급여 ��� �주 요구할 것입니다. �런 �� �어나지 않�� ��들� �하기 편안한 환경� 조성해주세요.", [17] = "환�들� 병� 안�서 기다리는 �안 목� ��지며, 난방� 강할 수� �욱 그렇습니다! ��기를 전략�� 위치� 설치해서 추가 수입� 노리세요.", [18] = "환�� 진단 절차를 중단하고 추측� �한 치료를 하는 것� 가능합니다 (해당 질병� 만났� �� 있는 경우). 하지만 잘못� 치료를 해 환�를 죽�� �르게 할 위험� �수해야 합니다.", [19] = "�급 환�들� 시간 내� 치료할 수 있는 설비를 충분히 갖추고 있다는 전제 하�, �급 사태는 좋� 추가 수입�� � 수 있습니다.", }, next = "다� �", } queue_window = { num_in_queue = "줄 길�", num_entered = "방문� 수", max_queue_size = "최대 줄 길�", num_expected = "예�", } staff_class = { doctor = "�사", handyman = "잡역부", receptionist = "접수�", nurse = "간호사", surgeon = "외과�", } tooltip = { hire_staff_window = { prev_person = "�전 사람 보기", cancel = "취소", psychiatrist = "정신과 �사", salary = "급여", next_person = "다� 사람 보기", nurses = "고용 가능한 간호사 보기", surgeon = "외과 �사", handymen = "고용 가능한 잡역부 보기", doctors = "고용 가능한 �사 보기", doctor_seniority = "�사� 계급 (수련�, 전공�, 전문�)", hire = "고용", researcher = "연구�", qualifications = "전문 분야 �격", receptionists = "고용 가능한 접수� 보기", staff_ability = "�� 능력", }, handyman_window = { parcel_select = "잡역부가 �하는 구�입니다. 설정� 변경하려면 �릭하세요.", close = "요청 취소", ability = "능력", face = "잡역부� 얼굴", prio_machines = "기계 수리� 우선순위를 높입니다.", prio_litter = "바닥 쓰레기 청소� 우선순위를 높입니다.", happiness = "행복�", prio_plants = "화초 물주기� 우선순위를 높입니다.", name = "잡역부� �름", tiredness = "피로�", center_view = "잡역부 살펴보기", salary = "급여", sack = "해고", pick_up = "집어 들기", }, staff_list = { ability_2 = "고용�� 능력", next_person = "다� 페�지 보기", detail = "세부 사항� 대한 주�력", happiness = "고용�들� 얼마나 만족하고 있는지 보여�니다", researcher_train = "연구� �육� %d%% �수함", handymen = "� 병�� 고용� 잡역부 목� 보기", tiredness = "고용�들� 얼마나 피곤한지 보여�니다", researcher = "연구� �격 소지", happiness_2 = "고용�� 행복�", pay_rise = "� 사람� 급여를 10% ��", bonus = "� 사람�게 10%� 보너스 지급", prev_person = "�전 페�지 보기", nurses = "� 병�� 고용� 간호사 목� 보기", psychiatrist = "정신과 �사 �격 소지", salary = "� 사람� 현재 급여", ability = "고용�들� 능력 수치를 보여�니다", close = "게임으로 �아가기", sack = "� 사람� 해고", surgeon = "외과 �사 �격 소지", tiredness_2 = "고용�� 피로�", doctors = "� 병�� 고용� �사 목� 보기", doctor_seniority = "�사� 계급", view_staff = "� 사람� �하는 모습 보기", surgeon_train = "외과 �사 �육� %d%% �수함", skills = "특수 기술", receptionists = "� 병�� 고용� 접수� 목� 보기", psychiatrist_train = "정신과 �사 �육� %d%% �수함", }, research = { cure_dec = "치료 장비 연구 비율 �소", cure_inc = "치료 장비 연구 비율 �가", diagnosis_dec = "진단 장비 연구 비율 �소", diagnosis_inc = "진단 장비 연구 비율 �가", drugs_dec = "신약 개발 연구 비율 �소", drugs_inc = "신약 개발 연구 비율 �가", improvements_dec = "개선 연구 비율 �소", improvements_inc = "개선 연구 비율 �가", specialisation_dec = "집중 연구 비율 �소", specialisation_inc = "집중 연구 비율 �가", allocated_amount = "할당� 예산", close = "연구 화면 닫기", }, customise_window = { intro = "�트로 ��� 켜거나 �니다. CorsixTH 를 플레�할 때마다 �트로 ��� 재�하게 하려면 �� 컨트롤� 켜져 있어야 합니다", fractured_bones = "조잡한 애니메�션� 문제로, 기본�으로 여성 골절 환�는 등장하지 않�� �어있습니다. 여성 골절 환�들� 병�� 방문하게 하려면 � 옵션� �세요", movies = "� 옵션� �면 게임 내� 모든 ��� 재��지 않습니다", volume = "�량 �소 버튼� 약물 사례집� 열게 �는 경우, � 옵션� 켜서 약물 사례집 단축키를 Shift + C 로 변경하세요", aliens = "�절한 애니메�션� 부재로, 외계� DNA 환�들� �급 �황�서만 방문하�� �어있습니다. 외계 DNA 환�들� 병�� �소�� 방문하게 하려면 � 옵션� �세요", paused = "테마 병��서 기본�으로 플레�어는 게임� �시 정지 �었� 때 �위 메뉴만� 사용할 수 있고, CorsixTH �서� 마찬가지 입니다. � 옵션� 켜면 게임� 정지� �태�서� 모든 기능� 활성화 �니다", average_contents = "방� 건설할 때 당신� 보통 어떤 비품들� 추가로 배치하는지 게임� 기억하�� 하려면 � 옵션� 켜세요", back = "� 메뉴를 닫고 옵션 메뉴로 �아�", }, machine_window = { repair = "잡역부를 불러서 수리하기", name = "�름", close = "요청 취소", times_used = "기계가 사용� 횟수", status = "기계� �태", replace = "기계 �환", }, place_objects_window = { confirm = "확�", cancel = "취소", pick_up = "물건 집어 들기", buy_sell = "물건 구매/�매", }, totd_window = { previous = "�전 � 보기", next = "다� � 보기", }, status = { percentage_cured = "당신� 병��서 %d 명� 환�를 치료해야 합니다. 지금까지 %d 명� 치료했습니다.", population_chart = "� 병�� 현지 �님� �어오는 비율� 나타내는 �표", win_progress_own = "당신� 병�� 승리 요건 진행 �황 보기", win_progress_other = "%s 병�� 승리 요건 진행 �황 보기", reputation = "당신� ��� %d ���어야 합니다. 현재 ��� %d 입니다.", population = "당신� %d%% ��� 현지 �님� �어와야 합니다.", percentage_killed = "� 목표는 %d%% 미만� 환�를 죽�는 것입니다. 지금까지 당신� %d%% � 환�를 죽였습니다.", balance = "당신� �행 잔고는 %d ���어야 합니다. 현재 잔고는 %d 입니다.", value = "당신� 병� 가치는 $%d ���어야 합니다. 현재 가치는 $%d 입니다.", num_cured = "� 목표는 %d 명� 환�를 치료하는 것입니다. 지금까지 당신� %d 명� 치료했습니다.", happiness = "당신� 병�� 있는 사람들� 전체�� 행복�", thirst = "당신� 병�� 있는 사람들� 전체�� 목마름 정�", warmth = "당신� 병�� 있는 사람들� 전체�� 온�", close = "개요 창 닫기", }, queue_window = { front_of_queue = "환�를 줄 맨 앞으로 보내려면 드래그해서 � 아�콘 위� 놓으세요", end_of_queue = "환�를 줄 맨 �으로 보내려면 드래그해서 � 아�콘 위� 놓으세요", num_entered = "지금까지 � 방�서 치료� 환� 수", num_in_queue = "대기중� 환� 수", num_expected = "접수�� 예�하는 � 곳�서 곧 추가로 대기하게 � 환� 수", dec_queue_size = "최대 줄 길� �소", max_queue_size = "접수�� 유지하려고 노력해야 하는 최대 줄 길�", inc_queue_size = "최대 줄 길� �가", patient = "환�를 줄 내� 특정 위치로 옮기려면 드래그 하세요. 오른�릭으로 집으로 �려 보내거나 경� 병�� 보내세요.", patient_dropdown = { send_home = "환�를 병��서 내보냄", hospital_1 = "환��게 다른 병� 소개하기", hospital_2 = "환��게 다른 병� 소개하기", hospital_3 = "환��게 다른 병� 소개하기", reception = "환�를 접수��게 보내기", }, close = "닫기", }, jukebox = { rewind = "주�박스 ��기", loop = "주�박스 반복 재�", stop = "주�박스 정지", current_title = "주�박스", play = "주�박스 재�", fast_forward = "주�박스 빨리 �기", close = "주�박스 닫기", }, graphs = { deaths = "죽� 환� 수 켜기/�기", scale = "그래프 비율", money_out = "� 지출 켜기/�기", visitors = "방문� 수 켜기/�기", wages = "급여 켜기/�기", balance = "잔고 켜기/�기", money_in = "� 수입 켜기/�기", cures = "치료 수 켜기/�기", reputation = "병� 가치 켜기/�기", close = "그래프 창 닫기", }, toolbar = { reputation = "당신� ��", casebook = "약물 사례집", edit = "방/아�템 편집", staff_list = "�� 관리", policy = "정책", date = "날짜", charts = "�표", objects = "복�� 물건 설치", balance = "당신� 잔고", research = "연구", hire = "작� 고용", status = "�태", town_map = "마� 지�", rooms = "방 만들기", bank_button = "�행 지�장� 보려면 왼쪽 �릭, 명세서를 보려면 오른쪽 �릭", }, message = { button = "메시지를 보려면 왼쪽 �릭", button_dismiss = "메시지를 보려면 왼쪽 �릭, 무시하려면 오른쪽 �릭", }, pay_rise_window = { accept = "급여 �� 요구를 들어줌", decline = "��하지 않� - 해고", }, town_map = { people = "사람 켜기/�기", plants = "화초 켜기/�기", fire_extinguishers = "소화기 켜기/�기", objects = "기물 켜기/�기", radiators = "�디��터 켜기/�기", heat_dec = "난방 �소", heat_inc = "난방 �가", heat_level = "난방 정�", heating_bill = "난방비", balance = "잔고", close = "마� 창 닫기", }, custom_game_window = { start_game_with_name = "%s 레벨 불러오기", free_build = "��나 승리/패배 조건 없� �유롭게 플레�하려면 체�하세요", }, cheats_window = { cheats = { end_month = "� 달� 마지막으로 �프", create_patient = "지� 가장�리� 환�를 �성", money = "�행 잔고� 10.000 추가", emergency = "�급 �황 만들기", win_level = "현재 레벨 승리", vip = "VIP �성", lose_level = "현재 레벨 패배", earthquake = "지진 �성", all_research = "모든 연구 완료", end_year = "� 해� 마지막으로 ��", }, close = "치트 창 닫기", }, casebook = { reputation = "치료 혹� 진단 ��", treatment_charge = "치료 비용", decrease = "비용 �소", increase = "비용 �가", earned_money = "지금까지 벌어들� �", cured = "치료 환� 수", deaths = "사� 환� 수", sent_home = "�려보낸 환� 수", research = "집중 연구 예산� � 치료� 투�하려면 �릭하세요", cure_type = { psychiatrist = "정신과 �사가 치료할 수 있습니다", drug_percentage = "약물로 치료 가능합니다 - 당신� 약� %d%% 효과가 있습니다", drug = "약물로 치료 가능합니다", machine = "치료하기 위해서는 치료 장비가 필요합니다", surgery = "수술로 치료 가능합니다", unknown = "당신� � 병� 어떻게 치료하는지 모릅니다", }, cure_requirement = { hire_staff_old = "치료를 위해서는 %s를 한 명 고용해야 합니다", hire_staff = "치료를 위해서는 ��� 고용해야 합니다", possible = "당신� � 병� 치료할 수 있습니다", not_possible = "당신� 아� � 병� 치료할 수 없습니다", ward_hire_nurse = "치료를 위해서는 병��서 �하는 간호사가 필요합니다", hire_surgeon = "수술하기 위해서는 � 명째 외과 �사를 고용해야 합니다", research_machine = "치료를 위한 장비를 연구해야 합니다", build_room = "치료를 위해서는 방� 만들어야 합니다", build_ward = "치료를 위해서는 병�� 만들어야 합니다", hire_surgeons = "수술하기 위해서는 � 명� 외과 �사를 고용해야 합니다", }, up = "위로 스�롤", down = "아래로 스�롤", close = "사례집 닫기", }, policy = { diag_procedure = "�사� 진단� [�려 보내기] �센트 미만으로 확실할 경우�는 환�를 집으로 �려 보냅니다. 진단� [추측� �한 치료] �센트 ��으로 확실할 경우�는 환�를 �절한 치료 시설로 보냅니다.", diag_termination = "환�� 대한 진단� �사들� [절차 중지] �센트 만� 확신� 있거나, 모든 진단 장비들� 시�해볼 때까지 계��니다.", staff_rest = "��� 휴�� 취하러 갈 수 있는 최소한� 피로�", staff_leave = "바�지 않� ��� �움� 필요로 하는 �료를 ��� 하려면 여기를 �릭하세요.", staff_stay = "특정 ��� 배치� 방 안�서 계� �하�� 하려면 여기를 �릭하세요.", close = "정책 화면 닫기", }, bank_manager = { hospital_value = "당신� 병�� 현재 가치", balance = "당신� �행 잔고", current_loan = "지불해야할 대출금", repay_5000 = "�행� $5000 갚기", borrow_5000 = "�행�서 $5000 빌리기", interest_payment = "매달 지불하는 ��", insurance_owed = "%s 가 당신�게 지불해야할 금액", show_graph = "%s � 예� 지불 그래프 보기", graph = "%s � 예� 지불 그래프", inflation_rate = "연간 �플레�션 비율", interest_rate = "연간 ��율", graph_return = "�전 화면으로 �아가기", close = "�행 지�장 화면 닫기", }, main_menu = { exit = "안�요, 제발 나가지 마세요!", custom_level = "단� 시나리오 내�서 병�� 짓기", network = "네트워� 게임 시작", quit = "종료", continue = "지난 게임 �어하기", options = "설정 변경", load_menu = { load_slot = "게임 불러오기", empty_slot = "비어있�", }, new_game = "캠페� 시작", load_game = "저장� 게임 불러오기", }, patient_window = { graph = "� 사람� 건강 그래프와 병력 사�를 오가려면 �릭", close = "닫기", queue = "� 사람� �한 줄 �세히 보기", happiness = "� 사람� 행복�", thirst = "� 사람� 목마름 정�", warmth = "� 사람� 따뜻함 정�", casebook = "� 사람� 병� 대해 �세히 보기", center_view = "� 사람� 위치로 ��", send_home = "� 사람� 집으로 �려보내기", abort_diagnosis = "진단 �나기 기다리지 않고 � 사람� 치료 시설로 보냄", }, menu_list_window = { save_date = "마지막으로 수정� 날짜를 기준으로 목�� 정렬하려면 여기를 �릭", name = "�름� 기준으로 목�� 정렬하려면 여기를 �릭", back = "� 창 닫기", }, watch = { emergency = "�급 �황: �급 환�들� 모� 치료하기 위해 남� 시간", hospital_opening = "건설 시간: � 시간� 당신� 병�� 개�� 선언하기까지 남� 시간입니다. 버튼� 누르면 병� 문� 즉시 엽니다.", epidemic = "전염병: 전염병� 처리하기 위해 남� 시간. 제한 시간� 다 지나거나 �는 전염병� 걸린 환�가 당신� 병�� 떠나게 �면, 건강 검사관� 병�� 방문할 것입니다. 버튼� 누르면 백신 모드가 켜지거나 꺼집니다. 환�를 �릭하여 간호사�게 예방 접종� 맞게 할 수 있습니다.", }, new_game_window = { player_name = "게임 내�서 당신� 불리기 �하는 �름� 입력하세요", tutorial = "�릭하여 게임 내�서 플레�하는 방법� 배울 수 있습니다", difficulty = "게임� 난��를 선�하세요", easy = "시뮬레�션 게임� 처� 접한다면, �것� 당신� 위한 옵션입니다", medium = "어떤 난��를 선�할지 잘 모르겠다면 중간 난��로 플레� 하세요", hard = "�런 종류� 게임� �숙하며 좀 � �전하고 싶다면 � 옵션� 선�하세요", start = "선�한 설정으로 게임� 시작합니다", cancel = "새 게임� 시작할 ��� 없었어요!", }, save_game_window = { new_save_game = "저장� 게임� �름� 입력하세요", save_game = "저장� 게임 %s �어쓰기", }, update_window = { download = "가장 최신 버전� CorsixTH 다운로드 페�지로 ��합니다", ignore = "� 업��트를 무시합니다. 다� 번� CorsixTH 를 열 때 다시 알립니다", }, calls_dispatcher = { assigned = "누군가가 해당 과업� 할당�어 있으면 � ��가 표시�니다", task = "과업 목� - 할당� ��� 정보와 과업� 위치를 보려면 과업� �릭하세요", close = "콜 디스패� 창 닫기", }, research_policy = { research_progress = "� 분야�서 새로운 발견� 하기 위한 진행 �황: %1%/%2%", no_research = "지금� � 분야� 대한 연구가 �뤄지고 있지 않습니다", }, information = { close = "정보 창 닫기", }, lua_console = { textbox = "실행할 루아 코드를 여기 입력하세요", execute_code = "입력한 코드 실행", close = "콘솔 닫기", }, folders_window = { browse_font = "다른 �트 파�� 지정합니다 ( 현재 위치: %1% )", screenshots_location = "기본�으로, 스�린샷들� 설정 파�� 있는 곳� 함께 저장�니다. 필요한 경우 스�린샷� �하는 곳� 저장할 수 있습니다. 사용하기 �하는 디렉토리를 선�하세요.", browse_music = "다른 �악 디렉토리를 지정합니다 ( 현재 위치: %1% )", music_location = "mp3 �악 파�들� 있는 위치를 지정하세요. 디렉토리는 미리 만들어져 있어야 합니다.", data_location = "오리지� 테마 병� 설치 경로 (CorsixTH 를 플레� 하기 위해 필요)", browse_data = "테마 병� 설치 경로를 다시 설정합니다 ( 현재 위치: %1% )", savegames_location = "기본�으로, 저장� 게임들� 설정 파�� 있는 곳� 함께 저장�니다. 필요한 경우 저장� 게임들� �하는 곳� 저장할 수 있습니다. 사용하기 �하는 디렉토리를 선�하세요.", back = "� 메뉴를 닫고 설정 메뉴로 �아갑니다", browse_saves = "다른 저장 디렉토리를 지정합니다 ( 현재 위치: %1% )", browse = "�� 위치를 지정합니다", browse_screenshots = "다른 스�린샷 디렉토리를 지정합니다 ( 현재 위치: %1% )", not_specified = "�� 위치 지정�지 않�!", font_location = "사용중� 언어를 표시하는� 필요한 �트 파�� 위치를 지정합니다. �것� 설정하지 않으면 오리지� 게임� �함�지 않� 문�들� 표시�지 않습니다 (예: 러시아어, 중국어)", reset_to_default = "디렉토리를 기본 위치로 ��립니다 ( %1% )", default = "기본 위치", no_font_specified = "�트 위치 지정�지 않�!", }, staff_window = { name = "�� �름", face = "� 사람� 얼굴 - 관리 화면� 보려면 �릭", happiness = "행복�", tiredness = "피로�", ability = "능력", doctor_seniority = "계급 - 수련�, 전공�, �는 전문�", skills = "전문 분야 �격", surgeon = "외과 �사", psychiatrist = "정신과 �사", researcher = "연구�", salary = "월급", center_view = "왼쪽 �릭으로 �� 보기, 오른쪽 �릭으로 다� ��으로 넘어가기", sack = "해고", pick_up = "집어 들기", close = "닫기", }, rooms = { gps_office = "환�는 진료실�서 최초� �담� 받습니다", general_diag = "�사는 �반 진단실� 사용해 환�들� 기본 진단� 수행합니다. 값� 싸고 매우 효과�� 편입니다", psychiatry = "정신과�서는 미친 환�들� 치료하거나, 다른 환�들� 진단� �울 수 있지만 정신과 �사 �격� 있는 �사가 필요합니다", cardiogram = "�사는 심전�실� 사용해 환�들� 진단합니다", scanner = "�사는 스�너실� 사용해 환�들� 진단합니다", x_ray = "�사는 X-레�실� 사용해서 환�들� 진단합니다", ultrascan = "�사는 울트�스캔 시설� 사용해 환�들� 진단합니다", blood_machine = "�사는 혈액 분�실� 사용해 환�들� 진단합니다", pharmacy = "간호사는 약국�서 환�들� 치료할 약� 조제합니다", ward = "병�� 진단과 치료� 모� 유용합니다. 환�들� �곳� 보내서 간호사를 통해 관찰하거나 수술 후 회복기간� 갖게 합니다", operating_theatre = "수술실�는 외과 �사 �격� 있는 �사 � 명� 필요합니다", inflation = "�사는 팽창기를 사용해서 부� 머리를 치료합니다", tongue_clinic = "�사는 혀 절단실� 사용해 늘어진 혀를 치료합니다", fracture_clinic = "간호사는 골절 �리닉� 사용해서 부러진 뼈를 고칩니다", jelly_vat = "�사는 젤리통으로 젤리염� 치료합니다", electrolysis = "�사는 전기분해실� 사용해서 모발과다�� 치료합니다", hair_restoration = "�사는 모발 재�기를 사용해 대머리를 치료합니다", decontamination = "�사는 오염제거 샤워를 통해 방사능 오염� 치료합니다", dna_fixer = "�사는 DNA 정정실� 사용해 외계� DNA를 가진 환�들� 치료합니다", research_room = "연구� �격� 가진 �사들� 연구실�서 신약과 새로운 기계등� 발견해낼 수 있습니다", training_room = "�육실�서는 전문�가 다른 �사들� �육시킬 수 있습니다", toilets = "화장실� 지어 환�들� 당신� 병�� 어지럽히는걸 막으세요!", staffroom = "�사들과 간호사들� �� 휴게실�서 긴장� 풀고 피로를 풉니다", }, statement = { close = "명세서 화면 닫기", }, buy_objects_window = { price = "� 물건� 가격", confirm = "선�� 기물(들) 구매", cancel = "취소", decrease = "� 물건 하나 � 구매", increase = "� 물건 하나 � 구매", total_value = "주문하는 물건들� � 가격", }, load_game_window = { load_game = "%s 게임 불러오기", load_autosave = "�� 저장 불러오기", load_game_number = "%d번 게임 불러오기", }, window_general = { confirm = "확�", cancel = "취소", }, fax = { close = "메시지를 삭제하지 않고 창 닫기", }, objects = { chair = "��: 환�들� 여기 앉아서 병� 대해 �담합니다", litter = "쓰레기: 환�가 버릴 쓰레기통� 찾기 못해서 바닥� 버려�", sofa = "소파: �� 휴게실�서 쉬는 ��들� 특별히 나� 휴� 방법� 없다면 소파� 조용히 앉아있습니다", bench = "벤치: 환� 한 명� 편하게 앉아서 기다릴 수 있는 �리를 제공합니다", video_game = "비디오 게임: 당신� ��� Hi-Octane � �기며 긴장� 풀게 해�니다", lamp = "전등: 빛� 비춰서 ��들� 볼 수 있게 합니다", door = "문: 사람들� 시� 때� 없� 열고 닫습니다", auto_autopsy = "��부검기: 새로운 치료법� 발견하는 � � �움� �니다", reception_desk = "접수대: 환�들� �사들�게 안내하는 접수�� 필요로 합니다", tv = "TV: 당신� ��� 좋아하는 방송� 놓치지 않게 해주세요", litter_bomb = "쓰레기 �탄: 경� 병�� 고�로 방해합니다", inflator = "팽창기: 부� 머리 환�들� 치료합니다", desk = "책�: �사가 PC를 사용하는 � 필요합니다", pool_table = "당구대: 당신� ��� 긴장� 푸는 � 좋습니다", bed = "침대: 굉장히 아픈 사람들� 침대� 눕습니다", drinks_machine = "��기: 환�들� 목마르지 않게 하고 �윤� 남�니다", bookcase = "책장: �사들� 참고 �료", skeleton = "해골: �육과 할로윈 용�로 사용", computer = "컴퓨터: 핵심 연구 요소", bin = "쓰레기통: 환�들� 쓰레기를 여기 버립니다", pharmacy_cabinet = "약장: 약� 보관�는 장소", radiator = "�디��터: 당신� 병�� 추워지지 않게 합니다", atom_analyser = "화학 혼합기: 연구소� 배치�어 연구 프로세스 전체를 가�화 합니다", plant = "화초: 환�들� 행복하게 하고 공기를 정화합니다", toilet = "변소: 환�들� �걸, �, 어쨌든 사용합니다", fire_extinguisher = "소화기: 오�작하는 기계� 위험� 최소화합니다", lecture_chair = "강� ��: �육 받는 �사들� 여기� 앉아서 필기하고, 지루해하며 빈둥거립니다. ��를 많� 배치할 수� 많� 학�� 수업� 들� 수 있습니다", toilet_sink = "세면대: 위�� 신경쓰는 환�들� 여기서 �러운 �� 씻�지� 모릅니다. 충분한 수� 세면대가 없으면 환�들� 불행해집니다", cabinet = "�비넷: 환�들� 대한 서류철, 노트, 연구 문서 등� 보관합니다", }, build_room_window = { cost = "현재 선�� 방� 비용", room_classes = { diagnosis = "진료 시설� 선�", treatment = "�반 치료 시설� 선�", clinic = "특화 �리닉 시설� 선�", facilities = "편�, 특수 시설 선�", }, close = "요청� 취소하고 게임으로 �아�", }, options_window = { fullscreen = "게임� 전체화면으로 플레�할 것�지 설정합니다", cancel = "해��를 변경하지 않고 �아갑니다", back = "옵션 창� 닫습니다", language = "게임 내� 글� 표시할 언어", apply = "입력� 해��를 �용합니다", change_resolution = "왼쪽� 입력� 해��로 변경합니다", fullscreen_button = "전체화면 설정� 변경하려면 �릭하세요", width = "�하는 화면 너비를 입력하세요", language_dropdown_item = "%s �(를) 언어로 선�합니다", height = "�하는 화면 높�를 입력하세요", select_language = "게임 언어를 선�하세요", select_resolution = "새로운 해��를 선�하세요", resolution = "게임� 실행� 해��", audio_button = "게임 전체� 오디오를 켜고 �니다", folder_button = "�� 옵션", customise_button = "게임 플레� 경험� 커스터마�즈 하기 위한 세부 설정", }, audio_window = { audio_toggle = "켜고 �기", } } menu_charts = { bank_manager = " (%1%) �행 지�장 ", statement = " (%1%) 명세서 ", staff_listing = " (%1%) �� 목� ", town_map = " (%1%) 마� 지� ", casebook = " (%1%) 사례집 ", research = " (%1%) 연구 ", status = " (%1%) �태 ", graphs = " (%1%) 그래프 ", policy = " (%1%) 정책 ", briefing = " 브리핑 ", } town_map = { number = "구� 번호", not_for_sale = "소유 불가", price = "구� 가격", for_sale = "�매중", owner = "구� 소유주", area = "구� 면�", } custom_game_window = { caption = "커스텀 게임", free_build = "�유 건설", } cheats_window = { caption = "치트", warning = "경고: 치트를 사용하면 레벨� �나고 보너스 �수를 전혀 받� 수 없게 �니다!", cheats = { money = "� 치트", all_research = "모든 연구 치트", emergency = "�급 �황 �성", vip = "VIP �성", earthquake = "지진 �성", create_patient = "환� �성", end_month = "월�", end_year = "연�", lose_level = "레벨 패배", win_level = "레벨 승리", }, close = "닫기", cheated = { no = "치트 사용�: 아니오", yes = "치트 사용�: 예", }, } room_descriptions = { ultrascan = { [1] = "울트�스캔//", [2] = "울트�스캔� �극� 진단 장비�고 할 수 있습니다. 비용� 많� 들지만 최고� 진단� �한다면 충분히 가치가 있습니다.//", [3] = "울트�스캔� 작�하려면 �사가 필요합니다. 기계� 정비 �한 필요합니다.", }, gp = { [1] = "진료실//", [2] = "�것� 병�� 가장 기본� �는 진료실입니다. 새로 방문한 환�는 어떤 ��� 있는지 알아보기 위해 �단 진료실로 보내집니다. 그러고 나서는 다른 진단 시설로 보내지거나 치료할 수 있는 시설로 보내집니다. 만약 � 진료실� 너무 바빠진다면 다른 진료실� 추가로 지� 수� 있습니다. 방� �기가 � 수�, 추가 기물들� 많� 배치할 수� �사� 위신� 서게 �니다. �것� 다른 방들� 대해서� 마찬가지로 �용�니다.//", [3] = "진료실�는 �사가 필요합니다.", }, fracture_clinic = { [1] = "골절 �리닉//", [2] = "운� 없� 뼈가 부러진 환�들� �곳으로 옵니다. �스 제거기는 강력한 공업용 레�저로 굳� �스를 잘�내면서 환��게는 아주 미약한 통�만� 유발합니다.//", [3] = "골절 �리닉�는 간호사가 필요합니다. 그리고 기계� �주 정비해 주어야 합니다.", }, tv_room = { [1] = "TV실� 사용�지 않�", }, inflation = { [1] = "팽창 �리닉//", [2] = "고통스럽지만 우스운 모습� 부� 머리 ��� 가진 환�들� 팽창 �리닉� 오면, 그들� 대�를 터뜨려서 곧바로 �정 압력으로 부풀립니다.//", [3] = "팽창 �리닉�는 �사가 필요합니다. 그리고 잡역부가 기계를 정비해 주어야 합니다.", }, jelly_vat = { [1] = "젤리 �리닉//", [2] = "우스운 병� 젤리염� 저주를 받� 환�들� 비틀거리며 젤리 �리닉� 와서 젤리 통� 들어가야 합니다. 그러면 �학�으로 완전히 해명�지 않� 신기한 방법으로 치료�니다.//", [3] = "젤리 �리닉�는 �사가 필요합니다. 그리고 잡역부� 정비� 필요합니다.", }, scanner = { [1] = "스�너//", [2] = "정�한 스�너로 환�들� 정확히 진단합니다. 그러고 나서 환�들� 다시 진료실로 �아가 다� 처방� 받습니다.//", [3] = "스�너�는 �사가 필요합니다. 그리고 정비� 필요합니다.", }, blood_machine = { [1] = "혈액 분�기//", [2] = "혈액 분�기는 환�� 혈액 내� 세�를 확�하여 어디가 잘못�었는지 확�하는 진단 장비입니다.//", [3] = "혈액 분�기�는 �사가 필요합니다. 그리고 정비� 필요합니다.", }, pharmacy = { [1] = "약국//", [2] = "약물 처방� 받� 환�들� 약국� 가서 약� 받아야 합니다. � 많� 약물 치료법� 연구�수� 약국� � 바빠집니다. 나중�는 약국� � 짓는 것� 좋습니다.//", [3] = "약국�는 간호사가 필요합니다.", }, cardiogram = { [1] = "심전�실//", [2] = "환�들� 다시 진료실� �아가서 처방� 받기 전� �곳� 와서 진단� 받습니다.//", [3] = "심전�실�는 �사가 필요합니다. 그리고 정비� 필요합니다.", }, ward = { [1] = "병�//", [2] = "환�들� 진단 �중 �곳� 와서 간호사가 살펴볼 수 있습니다. 환�들� 수술� 받기 전까지 �곳� 머무릅니다.//", [3] = "병��는 간호사가 필요합니다.", }, psych = { [1] = "정신과//", [2] = "정진 질환으로 �명� 환�들� 정신과� 방문해서 �담� 받아야 합니다. 정신과 �사들� �한 환�들� 어떤 병� 있는지 진단� 가능하고, 그것� 정신 질환� 경우�는 침�� 사용해 치료할 수 있습니다.//", [3] = "정신과�는 정신과 �육� 받� �사가 필요합니다.", }, staff_room = { [1] = "�� 휴게실//", [2] = "��들� �� 하다보면 지치게 �니다. 그들� 긴장� 풀고 �기를 찾기 위해서 � 방� 필요로 합니다. 피로한 ��� �하는 ��가 �려지고, 급여를 � 요구하며, 결국�는 병�� 나가게 �니다. �한 피로한 ��들� 실수를 � �주 합니다. 다양한 할 것들� 있는 �� 휴게실� 지� 만한 가치가 있습니다. 여러 명� ��� �시� 쉴 수 있는 공간� 나오�� 해주세요.", }, operating_theatre = { [1] = "수술실//", [2] = "� 중요한 시설�서 다양한 ��들� 치료�니다. 수술실� �기는 �절해야 하며, 올바른 장비들로 채워져야 합니다. � 시설� 병�� 필수 불가결한 존재입니다.//", [3] = "수술실�는 외과 �사 �격� 있는 �사 � 명� 필요합니다.", }, training = { [1] = "�육실//", [2] = "수련�와 전공�는 여기서 �육받으면서 추가 �격� 취�할 수 있습니다. 외과, 연구�, 정신과 �격� 가진 전문�는 �신�게 �육받는 �사들�게 �런 전문 분야 지�� 함께 전수하게 �니다. �미 �격� 있는 �사들�, 여기서 �육받는 �안 해당 지�� 어떻게 � 잘 사용할 수 있는지 깨우치게 � �니다.//", [3] = "�육실�는 전문�가 한 명 필요합니다.", }, dna_fixer = { [1] = "DNA �리닉//", [2] = "다른 세계�서 온 외계��게 �염� 환�들� 그들� DNA 를 �체받아야 합니다. DNA 정정기는 굉장히 복잡한 설비�므로, 만약� 위해 소화기를 비치해 �는 것� 현명할 것입니다.//", [3] = "DNA 정정기는 잡역부가 주기�으로 정비해주어야 합니다. �한, DNA 정정기를 작�하려면 연구� �격� 갖춘 �사가 필요합니다.", }, research = { [1] = "연구실//", [2] = "연구실�서는 신약과 치료법 등� 새로 발견�거나 개선�니다. 병�� 중요한 부분으로서, 당신� 치료율� 기�� 선사할 것입니다.//", [3] = "연구실�는 연구� �격� 있는 �사가 필요합니다.", }, hair_restoration = { [1] = "모발 재� �리닉//", [2] = "극단�� 탈모를 겪는 환�들� � �리닉� 모발 재�기로 오게 �니다. �사가 기계를 작�하면, 환�� 머리� 새로운 머리카�� 신�하게 심겨집니다.//", [3] = "모발 재� �리닉�는 �사가 필요합니다. 그리고 주기�� 정비가 필요합니다.", }, general_diag = { [1] = "�반 진단실//", [2] = "� 진단받아야 하는 환�들� �곳으로 보내집니다. 진료실�서 ��� 발견하지 못한 경우, �반 진단실�서는 대개 발견�니다. 여기서 나온 결과를 분�하기 위해 환�들� 다시 진료실로 보내집니다.//", [3] = "�반 진단실�는 �사가 필요합니다.", }, electrolysis = { [1] = "전기분해실//", [2] = "모발 과다� 환�들� �곳으로 보내지며, 여기서는 전기분해기 �고 불리는 특수한 기계로 털� 확 잡아뺀 뒤, 시멘트와 �게 다르지 않� 물질로 모공� 전기�으로 봉쇄합니다.//", [3] = "전기분해실�는 �사가 필요합니다. 그리고 잡역부가 정비해 주어야 합니다.", }, slack_tongue = { [1] = "늘어진 혀 �리닉//", [2] = "진료실�서 늘어진 혀로 진단받� 환�들� � �리닉� 와서 치료 받게 �니다. �사는 고� 기술� 기계로 혀를 연장해서 잘�내어 환�를 ��� 건강한 �태로 �려놓습니다.//", [3] = "늘어진 혀 �리닉�는 �사가 필요합니다. 그리고 �주 정비해 주어야 합니다.", }, toilets = { [1] = "화장실//", [2] = "�리 현�� ��는 환�들� 화장실� 가서 �� � 주어야 합니다. 방문�가 아주 많� 것으로 예��다면, 당신� 추가로 칸�나 세면대를 � 지� 수 있습니다. 어떤 경우�는 병� 안� 다른 곳� 화장실 시설� � 짓는 것� 고려해야 할 지� 모릅니다.", }, no_room = { [1] = "", }, x_ray = { [1] = "X-레�//", [2] = "X-레� 기계는 특수 방사선� 통해서 �체� 내부 사진� �어서, 환�� 어디가 ��� 있는지 � 잘 �해하게 해 �니다.//", [3] = "X-레��는 �사가 필요합니다. 그리고 정비� 필요합니다.", }, decontamination = { [1] = "오염제거 �리닉//", [2] = "방사선� 노출� 환�들� 신�하게 오염 제거 �리닉으로 오게 �니다. � 방�는 온갖 무시무시한 방사능과 진창� 씻어주는 샤워기가 설치�어 있습니다.//", [3] = "오염제거 �리닉�는 �사가 필요합니다. 그리고 잡역부가 정비해 주어야 합니다.", }, } errors = { unavailable_screen_size = "요청한 화면 �기는 전체화면�서 지��지 않습니다.", dialog_missing_graphics = "죄송합니다, �모 ��터 파�� � 대화창� �함�어 있지 않습니다.", load_prefix = "게임� 불러오는 중 오류 발�: ", load_quick_save = "�러, 빠른 저장� 존재하지 않아 �어올 수 없습니다. 지금 막 빠른 저장 파�� �성했습니다!", save_prefix = "게임� 저장하는 중 오류 발�: ", map_file_missing = "� 레벨� 맵 파�(%s)� 찾� 수 없습니다!", minimum_screen_size = "최소 %dx%d � 화면 �기를 입력해 주세요.", alien_dna = "주�: 외계� 환�들� 앉� 때, 문� 열거나 �드릴 때 등� 애니메�션� 없습니다. 따�서, �본 테마 병��서와 같� 환�들� �런 행�� 취할 때 잠시�안 ��시� 모습으로 변했다가 ��아오게 �니다. 외계 DNA 환�들� 해당 레벨�서 나타나�� 설정�어 있� 경우�만 나타납니다", fractured_bones = "주�: 여성 골절 환�들� 애니메�션� 완전하지 못합니다", } menu_options_warmth_colors = { choice_2 = " 파랑 초� 빨강 ", choice_1 = " 빨강 ", choice_3 = " 노랑 주황 빨강 ", } bank_manager = { hospital_value = "병� 가치", balance = "잔고", current_loan = "대출금", interest_payment = "��", insurance_owed = "보험금", inflation_rate = "�플레�션 비율", interest_rate = "��율", statistics_page = { date = "날짜", details = "�세", money_out = "지출", money_in = "수입", balance = "잔고", current_balance = "현재 잔고", }, } main_menu = { exit = "종료", custom_level = "단� 시나리오", version = "버전: ", new_game = "캠페�", load_game = "불러오기", options = "옵션", savegame_version = "저장 버전: ", } date_format = { daymonth = "%2%월 %1%�", } menu_display = { mcga_lo_res = " MCGA 저해�� ", shadows = " 그림� ", high_res = " 고해�� ", } pay_rise = { definite_quit = "당신� 무슨짓� 해� 날 붙잡� 수 없습니다. 여기와는 �제 ���요.", regular = { [1] = "난 너무 지쳤어요. � �할 �장 때려치는 것 보고싶지 않으면, 좀 쉬게 해주고, %d 만� 급여를 올려주세요.", [2] = "정� 피곤합니다. 휴�� 좀 필요하고, 월급� %d 만� 올려서 %d 로 만들어줘요. 지금 당장�요, 노�력 착취� 양반.", [3] = "��요. 난 지금 개처럼 �하고 있어요. %d 만� 보너스를 주면 � 병�� 남�� 하죠.", [4] = "난 굉장히 불행해요. 급여를 %d ��해서 %d 로 만들어주지 않으면 난 나가겠어요.", [5] = "우리 부모님� �료계로 오면 � 잘 벌거�고 하셨는�. 그러니까 %d 만� 급여 ��해주지 않으면 컴퓨터 게임 제작�가 �버리고 �겠어요.", [6] = "�젠 넌�머리가 나요. 월급� 웬만� 올려주세요. %d 정� ��해주면 �당할 것 같군요.", }, poached = "저�게 %d 만� 주겠다고 %s �서 �� 제�가 왔어요. 최소한 �만� 주지 않으면 떠나겠어요.", } menu_debug = { jump_to_level = " 다� 레벨로 �프 ", transparent_walls = " (%1%) 투명한 벽 ", limit_camera = " 카메� 제한 ", disable_salary_raise = " 급여 �� 비활성화 ", make_debug_fax = " 디버그 팩스 만들기 ", make_debug_patient = " 디버그 환� 만들기 ", cheats = " (%1%) 치트 ", lua_console = " (%1%) 루아 콘솔 ", calls_dispatcher = " 콜 디스패� ", dump_strings = " (%1%) 문�열 �프 ", dump_gamelog = " (%1%) 게임 로그 �프 ", map_overlay = " 맵 오버레� ", sprite_viewer = " 스프��트 뷰어 ", } progress_report = { free_build = "�유 건설", too_hot = "난방 시스템� 좀 추려내세요. 지금� 너무 �워요.", percentage_pop = "% �구", win_criteria = "승리 요건", very_unhappy = "사람들� 굉장히 불행합니다.", quite_unhappy = "사람들� 꽤 불행합니다.", header = "진행 �황 보고서", too_cold = "너무 춥습니다. �디��터를 좀 설치하세요.", more_drinks_machines = "��기를 � 설치하세요.", } menu_options = { sound = " (%1%) 효과� ", announcements = " (%1%) 공지 ", music = " (%1%) �악 ", sound_vol = " 효과� 볼륨 ", announcements_vol = " 공지 볼륨 ", music_vol = " �악 볼륨 ", jukebox = " (%1%) 주�박스 ", lock_windows = " 창 잠그기 ", edge_scrolling = " 가장�리 스�롤 ", adviser_disabled = " (%1%) 조언� ", twentyfour_hour_clock = " 24 시간 시계 ", warmth_colors = " 온� 표시 색 ", game_speed = " 게임 �� ", autosave = " �� 저장 ", wage_increase = " 급여 �� ", } menu_options_game_speed = { pause = " (%1%) �시 정지 ", slowest = " (%1%) 가장 �림 ", slower = " (%1%) �림 ", normal = " (%1%) 보통 ", max_speed = " (%1%) 최고 �� ", and_then_some_more = " (%1%) �서 � 빠르게 ", } rooms_short = { gps_office = "진료실", general_diag = "�반 진단실", ultrascan = "울트�스캔", research_room = "연구실", fracture_clinic = "골절 �리닉", destroyed = "파괴�", staffroom = "�� 휴게실", jelly_vat = "젤리 �리닉", scanner = "스�너", decontamination = "오염제거 �리닉", pharmacy = "약국", cardiogram = "심전�실", reception = "접수처", training_room = "�육실", corridor_objects = "복� 기물", operating_theatre = "수술실", dna_fixer = "DNA 정정기", ward = "병�", psychiatric = "정신과", hair_restoration = "모발 재� �리닉", inflation = "팽창 �리닉", tongue_clinic = "늘어진 혀 �리닉", toilets = "화장실", electrolysis = "전기분해실", x_ray = "X-레�", blood_machine = "혈액 분�기", } lua_console = { execute_code = "실행", close = "닫기", } staff_descriptions = { good = { [1] = "�당히 빠르고 성실함. ", [2] = "굉장히 세심하고 사려깊�. ", [3] = "다양한 능력� 보유. ", [4] = "굉장히 친절하고 잘 웃�. ", [5] = "체력� 뛰어남. 오래 지�할 수 있�. ", [6] = "놀랄만� 공�하고 온화함. ", [7] = "재능� 특출남. ", [8] = "주어진 �� 최선� 다함. ", [9] = "�기하지 않는 완벽주��. ", [10] = "미소로 사람들� �는� 전�함. ", [11] = "매력��고, 공�하며, �움� �. ", [12] = "�욕��고 헌신�임. ", [13] = "사람� 좋고 아주 열심히 �함. ", [14] = "성실하고 친근함. ", [15] = "신중하고 �급 �황� 믿�만함. ", }, misc = { [1] = "골프를 침. ", [2] = "스쿠버 다�버. ", [3] = "얼� 조�� 제작. ", [4] = "와� 애호가. ", [5] = "경주용 ��차 운전. ", [6] = "번지 �프를 함. ", [7] = "맥주잔 받침 수집가. ", [8] = "무대 아래로 뛰어내리는 것� �김. ", [9] = "방귀대장. ", [10] = "강� 넓히는 것� �김. ", [11] = "위스키를 �류. ", [12] = "DIY � 능숙함. ", [13] = "프랑스 예술 �화를 �김. ", [14] = "테마 공�� 플레� 함. ", [15] = "대형 트럭 운전 면허 소지�. ", [16] = "오토바� 경주� 나�. ", [17] = "�래� 바�올린과 첼로를 연주. ", [18] = "철� 약탈� 능함. ", [19] = "개 애호가. ", [20] = "�디오 청취�. ", [21] = "목욕� �주 �김. ", [22] = "짚 공예 강사. ", [23] = "채소 �� 파내어 비누통으로 사용함. ", [24] = "파트타임 특수 경찰. ", [25] = "전 퀴즈 쇼 진행�. ", [26] = "WW2 유산탄 파편 수집가. ", [27] = "가구 재배치를 �김. ", [28] = "광란� 댄스 �악� ��. ", [29] = "�오드란트 스프레�로 곤충들� 화를 �굼. ", [30] = "재미없는 개그맨들�게 야유함. ", [31] = "�회를 기웃거리며 �청함. ", [32] = "�밀한 정�사. ", [33] = "�� 시계들� 거래. ", [34] = "�앤롤 밴드�서 노래함. ", [35] = "오후 시간대 텔레비전� 열광함. ", [36] = "송어 간지럼� 대가. ", [37] = "박물관�서 여행�들� 꼬심. ", }, bad = { [1] = "�리고 귀찮�. ", [2] = "게으르고 �기 부여가 안�. ", [3] = "훈련� ��고 무능함. ", [4] = "무례하고 불쾌함. 사람들� �대시함. ", [5] = "최악� 체력 - 태�가 불량함. ", [6] = "귀머거리. 양배추 냄새 같� 것� 남. ", [7] = "�하는 � 거치�거림. 없는게 나� 수 있�. ", [8] = "성질 급하고 쉽게 산만해�. ", [9] = "스트레스가 심하고 실수가 잦�. ", [10] = "심성� 뒤틀려있고 화를 잘 냄 - 미움으로 가� 차 있�. ", [11] = "주�력� 없고 사고를 잘 냄. ", [12] = "�� 신경� 쓰지 않�. 엄청나게 게으름. ", [13] = "바보같� 위험� �수하려 함. ", [14] = "�활하고 간사하며, 질서를 파괴함. ", [15] = "거만하고 잘난체 함. ", }, } room_classes = { diagnosis = "진단", clinics = "�리닉", facilities = "부대시설", treatment = "치료", } install = { ok = "확�", cancel = "취소", exit = "종료", th_directory = "CorsixTH 를 실행하기 위해서는 테마병� �본 (�는 �모) 게임 ��터가 필요합니다. 아래� 선� 버튼� 눌러서 테마 병� 설치 디렉토리를 지정하세요.", title = "--------------------------------- CorsixTH 설치 ---------------------------------", } place_objects_window = { drag_blueprint = "마�� 드는 �기가 � 때까지 청사진� 드래그 하세요", place_door = "문� 배치하세요", place_windows = "�하는 만� 창문� 배치하고 확� 버튼� 누르세요", confirm_or_buy_objects = "방� 모습� 확정짓거나, 기물들� 구매/��시킬 수 있습니다", place_objects_in_corridor = "기물들� 복�� 배치하세요", pick_up_object = "물건� �릭해서 집어 올리거나, 다른 기능� 선�하세요", place_objects = "마�� 들 때까지 기물들� 배치/��시키고 확�� 누르세요", } load_game_window = { caption = "게임 불러오기 (%1%)", } staff_title = { junior = "수련�", psychiatrist = "정신과 �사", consultant = "전문�", surgeon = "외과 �사", doctor = "전공�", researcher = "연구�", nurse = "간호사", receptionist = "접수�", general = "�반", } graphs = { deaths = "사�", money_in = "수입", money_out = "지출", visitors = "방문�", wages = "급여", balance = "잔액", time_spans = { [1] = "1 년", [2] = "12 년", [3] = "48 년", }, cures = "치료", reputation = "��", } adviser = { tutorial = { hire_receptionist = "환�들� 접수하려면 접수�� 고용해야 할 �니다.", build_pharmacy = "축하합니다! �제 병�� 제대로 �아가게 하려면 약국� 짓고 간호사를 고용하면 �니다.", hire_doctor = "아픈 사람들� 진단하고 치료하려면 �사를 고용해야 합니다.", place_receptionist = "접수�� �려다가 아무 �나 놓아보세요. 똑똑하게�, 알아서 접수대 쪽으로 ��할 것입니다.", place_windows = "문� 설치한 것과 ��한 방�으로 창문들� 배치하세요. 꼭 창문� 있어야 하는 것� 아니지만, 밖� 볼 것� 있으면 ��들� � 행복해 할 것입니다.", confirm_room = "�멸하는 아�콘� 왼쪽 �릭해서 방� 가�하거나 X 버튼� �릭해서 뒤로 �아가세요.", rotate_and_place_reception = "오른쪽 �릭으로 책�� �리거나 왼쪽 버튼으로 책�� 병� 내� 배치하세요.", build_reception = "안녕하세요. 우선, 당시늬 병��는 접수대가 필요합니다. 복� 기물 메뉴�서 접수대를 선�하세요.", doctor_in_invalid_position = "��요! 여기�는 �사를 배치할 수 없어요.", start_tutorial = "임무 브리핑� �고 나서 튜토리얼� 시작하기 위해 마우스 왼쪽 버튼� �릭하세요.", receptionist_invalid_position = "접수�� 여기� 배치할 수 없습니다.", room_too_small_and_invalid = "청사진� 너무 작거나 잘못� 곳� 배치�었습니다. 제대로 해보세요.", window_in_invalid_position = "창문� 잘못� 곳� 배치�었습니다. 벽 위� 다른 곳� 설치해 보세요.", choose_doctor = "고용할 �사를 고르기 전� 능력� 얼마나 �는지 잘 살펴보세요.", information_window = "정보 창� 당신� 방금 지� 진료실� 대한 모든 것� 알려�니다.", build_gps_office = "환�들� 질병� 진단하기 시작하려면 먼저 진료실� 지어야 합니다.", select_doctors = "�멸하는 아�콘� 왼쪽 �릭하여 고용할 수 있는 �사들� 목�� 보세요.", select_diagnosis_rooms = "�멸하는 아�콘� 왼쪽 �릭하여 진단 시설들� 목�� 보세요.", select_receptionists = "�멸하는 아�콘� �릭하여 고용할 수 있는 접수�들� 목�� 보세요. 아�콘� �힌 숫�는 몇 명� 접수� 중�서 고를 수 있는지를 나타냅니다.", order_one_reception = "�멸하는 아�템� 왼쪽 �릭하여 접수대를 하나 주문하세요.", choose_receptionist = "어� 접수�� 괜찮� 능력� 가졌으며 �절한 급료를 �하는지 정한 후� �멸하는 아�콘� �릭하여 고용하세요.", prev_receptionist = "�멸하는 아�콘� 왼쪽 �릭하여 고용 가능한 �전 접수�� 확�하세요.", accept_purchase = "�멸하는 아�콘� 왼쪽 �릭하여 구매하세요.", place_door = "청사진�� 벽 주위로 마우스를 움�여서 �하는 곳� 출입문� 배치하세요.", click_and_drag_to_build = "진료실� 짓기 위해서는 우선 얼마나 �게 지� 것�지를 결정해야 합니다. 왼쪽 마우스 버튼� �릭한 채로 드래그 하여 방� �기를 결정하세요.", room_in_invalid_position = "�런! � 청사진� 부�절합니다 - 붉� �역� 병�� 벽 밖으로 나갔거나 다른 방과 겹치는 부분� 나타냅니다.", place_objects = "오른쪽 �릭으로 기물� 회전시키고, 왼쪽 �릭으로 기물� 배치하세요.", room_too_small = "� 방� 청사진� 너무 작기 때문� 붉� 색으로 표시�니다. 드래그 하여 방� � �게 만드세요.", click_gps_office = "�멸하는 아�템� 왼쪽 �릭해서 진료실� 선�하세요.", reception_invalid_position = "접수대가 회색으로 표시�는 �유는 배치할 수 없는 위치� 있기 때문입니다. 다른 곳으로 옮기거나 회전시켜 보세요.", next_receptionist = "� 사람� 목�� 첫 번째 접수�입니다. �멸하는 아�콘� 왼쪽 �릭해서 다� 사람� 확�하세요.", room_big_enough = "�제 청사진� 충분히 �니다. 마우스 버튼� 놓으면 방� 배치�니다. �한다면 � �태�서 방� 위치를 옮기거나 �기를 변경할 수� 있습니다.", object_in_invalid_position = "� 기물� 잘못� 위치� 있습니다. 다른 곳으로 옮기거나 회전시켜서 기물� 들어맞�� 조정하세요.", door_in_invalid_position = "아차! 잘못� 위치� 출입문� 설치하려고 했군요. 청사진 벽� 다른 곳� 시�해 보세요.", place_doctor = "�사를 병� 내� 아무 곳�나 배치하세요. 진료받� 환�가 �기면 �사가 알아서 진료실로 ��할 것입니다.", }, epidemic = { hurry_up = "전염병� 지금 당장 해결�지 않으면, 당신� 곤경� 처하게 � �니다. 빨리 빨리 움��세요!", serious_warning = "그 전염성 질병� �� 심�해 지고 있습니다. 빠른 시간 내� 뭔가 조치를 취해야 합니다!", multiple_epidemies = "� 가지 ��� 전염병� �시� �고 있는 것 같네요. 어마어마한 재앙� �지 모르니 신�하게 움��세요.", }, staff_advice = { need_handyman_machines = "병� 내� 있는 기계 장치들� 정비하려면 잡역부를 고용해야 합니다.", need_doctors = "�사가 � 많� 필요합니다. 당신� 가장 뛰어난 �사들� 대기열� 긴 방� 배치하�� 해 보세요.", need_handyman_plants = "화초� 물� 주려면 잡역부를 고용해야 합니다.", need_handyman_litter = "사람들� 병�� 쓰레기를 버리기 시작했습니다. 잡역부를 고용해서 바닥� 청소하�� 하세요.", need_nurses = "간호사가 � 필요합니다. 병�과 약국�는 간호사가 필요합니다.", too_many_doctors = "�사가 너무 많습니다. 몇몇�게는 아예 할 �� 배정�지 않았습니다.", too_many_nurses = "간호가를 너무 많� 고용한 것 같습니다.", }, earthquake = { damage = "지진� %d 개� 기계 장치와 %d 명� 사람들�게 피해를 입혔습니다.", alert = "지진 경보. 지진� �어나면 기계 장치들� 피해를 입게 �니다. 제대로 정비�지 않� 기계들� 부서지는 수� 있습니다.", ended = "휴. 거대한 지진�었네요. 리히터 척�로 진� %d � 지진�었습니다.", }, multiplayer = { everyone_failed = "마지막 목표를 아무� 달성하지 못했습니다. 따�서 모�가 계�해서 플레� 합니다!", players_failed = "다� 플레�어가 마지막 목표를 달성하지 못했습니다:", poaching = { in_progress = "� 사람� 당신과 함께 �하기 �하는지 알아보겠습니다.", not_interested = "허 참! 그들� 당신과 �하는 �� 별 관심� 없군요 - 지금 있는 곳� 만족스럽답니다.", already_poached_by_someone = "�런! 다른 사람� �미 � 사람�게 접촉중입니다.", }, }, surgery_requirements = { need_surgeons_ward_op = "수술� 위해서 � 명� 외과 �사를 고용하고, 병�과 수술질� 지어야 합니다.", need_surgeon_ward = "외과 �사를 한 명 � 고용하고 병�� 지어야 수술� 시작할 수 있습니다.", }, vomit_wave = { started = "병�� 구토 바�러스가 �진 것 같네요. 애초� 병�� 깨�하게 관리했다면 벌어지지 않았� �입니다. 잡역부를 � 고용해야 할 것 같습니다.", ended = "휴! 구토를 유발하� 바�러스가 거� 잡힌 것 같네요. 앞으로 병�� 깨�하게 유지하세요.", }, cheats = { th_cheat = "축하합니다, 치트를 해제했습니다!", roujin_on_cheat = "로우진� �전� 활성화 �었습니다! 행운� 빌어요...", roujin_off_cheat = "로우진� �전� 비활성화 �었습니다.", }, level_progress = { halfway_lost = "레벨 패배 조건� 절반정� �달했습니다.", dont_kill_more_patients = "� �� 환�들� 죽게 하면 안�니다!", another_patient_killed = "�런! �다른 환�가 사�했군요. 지금까지 � %d 명� 환�가 사�했습니다.", halfway_won = "� 레벨� 승리하는 � 절반정� 왔습니다.", close_to_win_increase_value = "승리가 눈앞� 있습니다. 병� 가치를 %d 만� �어올리세요.", financial_criteria_met = "� 레벨� 재정 관련 목표는 모� 달성했습니다. �행 잔고를 %d ��으로 유지하고 병�� 효율�으로 �아가�� 신경쓰세요.", nearly_won = "� 레벨� 거� 승리했습니다.", hospital_value_enough = "병� 가치를 %d ��으로 유지하면서 다른 문제들� 해결하면 승리할 수 있습니다.", another_patient_cured = "잘 했어요 - � 한 명� 환�를 치료했군요. 지금까지 � %d 명� 치료했습니다.", three_quarters_lost = "� 레벨� 패배하는� 3/4 정� 왔습니다.", reputation_good_enough = "좋아요, 당신� ��� 레벨� �리어하기� 충분할 정�로 올�갔습니다. %d ��으로 유지하면서 다른 문제들� 해결하면 승리할 수 있습니다.", cured_enough_patients = "충분한 수� 환�들� 치료했지만, 병�� � 잘 운�해야 승리할 수 있습니다.", nearly_lost = "� 레벨� 거� 실패했습니다.", improve_reputation = "당신� ��� %d 만� � 올려야 � 레벨� 승리할 수 있습니다.", three_quarters_won = "� 레벨� 승리하는 � 3/4 정� 왔습니다.", }, staff_place_advice = { receptionists_only_at_desk = "접수�들� 접수대�서만 �할 수 있습니다.", only_psychiatrists = "�사들� 정신과 �격� 있는 경우�만 정신과실�서 �할 수 있습니다.", only_surgeons = "�사들� 외과 �격� 있는 경우�만 수술실�서 �할 수 있습니다.", only_nurses_in_room = "간호사들만� %s�서 �할 수 있습니다.", only_doctors_in_room = "�사들만� %s�서 �할 수 있습니다.", only_researchers = "�사들� 연구 �격� 있는 경우�만 연구소�서 �할 수 있습니다.", nurses_cannot_work_in_room = "간호사는 %s�서 �할 수 없습니다.", doctors_cannot_work_in_room = "�사는 %s�서 �할 수 없습니다.", }, room_forbidden_non_reachable_parts = "방� � 곳� 배치하면 당신� 병�� 사람들� 갈 수 없는 지역� �기게 �니다.", research = { machine_improved = "%s 기계가 연구소�서 개선�었습니다.", autopsy_discovered_rep_loss = "당신� �� 부검 기계가 발명�었습니다. 대중�게서 부정�� 반�� 나올 것� �오하세요.", drug_fully_researched = "%s 약� 100% 연구했습니다.", new_machine_researched = "새로운 %s 기계가 성공�으로 연구�었습니다.", drug_improved = "%s 약� 연구소�서 개선�었습니다.", drug_improved_1 = "%s 약� 연구소�서 개선�었습니다.", new_available = "새로운 %s �(를) 사용할 수 있습니다.", new_drug_researched = "%s 질병� 치료약� 연구�었습니다.", }, boiler_issue = { minimum_heat = "아, 거기 계셨군요. 지하� 보�러가 고장입니다. 병� 안� 사람들� 한�안 춥겠군요.", maximum_heat = "지하� 보�러가 발광하고 있습니다. �디��터 출력� 최대로 고정�어 버렸습니다. 사람들� 녹아내리기 시작할 �니다! �료 ��기를 � 설치하는 것� �움� � 지� 모릅니다.", resolved = "좋� 소�입니다. 보�러와 �디��터가 다시 정��으로 작�하시 시작했습니다. 환�들과 ��들� 위한 실내 온�가 �절히 유지� 것입니다.", }, competitors = { staff_poached = "당신� �� 중 한 명� 다른 병�으로부터 스카웃 당했습니다.", hospital_opened = "%s 지역� 경� 병�� 개�했습니다.", land_purchased = "%s �(가) 약간� 토지를 매입했습니다.", }, room_requirements = { research_room_need_researcher = "연구실� 사용하기 위해서는 연구 능력� 갖춘 �사를 고용해야 합니다.", op_need_another_surgeon = "수술실� 사용하기 위해서는 외과 �사가 한 명 � 필요합니다.", op_need_ward = "환�들� 수술� 받으려면 먼저 병�� 지어서 수술전 처방� 받�� 해야 합니다.", reception_need_receptionist = "환�들� 보려면 먼저 접수�� 고용해야 합니다.", psychiatry_need_psychiatrist = "정신과실� 지었으니 �제 정신과 �사를 고용해야 합니다.", pharmacy_need_nurse = "그 약국� �아가게 하려면 간호사를 고용해야 합니다.", ward_need_nurse = "� 병��서 �할 간호사를 고용해야 할 것입니다.", op_need_two_surgeons = "수술실�서 수술� 진행하려면 � 명� 외과 �사를 고용하세요.", training_room_need_consultant = "그 �육실�서 �사들� 훈련시키려면 전문�를 고용해서 강�하게 해야 합니다.", gps_office_need_doctor = "�사를 고용해서 진료실�서 �하�� 하세요.", }, goals = { win = { money = "%d 만� � 벌어야 � 레벨� 재정 조건� 만족할 수 있습니다.", cure = "%d 명� 환�를 � 치료하면 � 레벨� 승리하는� 필요한 수를 채우게 �니다.", reputation = "당신� ��� %d 까지 올려서 승리 조건� 만족하세요.", value = "당신� 병�� 가치를 %d 만� 올려야 합니다.", }, lose = { kill = "%d 명� 환�를 � 죽�게 �면 � 레벨� 실패하게 �니다!", }, }, warnings = { bankruptcy_imminent = "��요! 당신 지금 파산으로 치닫고 있습니다. 조심하세요!", build_staffroom = "지금 당장 �� 휴게실� 지어주세요. 당신� ��들� 너무 과하게 �하고 있고 부서지기 �전입니다. ���으로 ��� 좀 해보세요!", build_toilet_now = "지금 화장실� 지으세요. 사람들� � �� 참지 못하고 있습니다. 웃지 마요, 지금 심�합니다.", build_toilets = "지금 당장 화장실� 짓지 않으면 굉장히 불쾌한 것� 보게�지� 모릅니다. 그리고 당신� 병�� 어떤 냄새가 날지 한 번 ��해 보세요.", cannot_afford = "그 사람� 고용할만�� 충분한 �� 없습니다!", cannot_afford_2 = "그것� 구매할만� 충분한 �� �행� 없습니다!", cash_low_consider_loan = "당신 현금 사정� 매우 좋지 않네요. 대출� 고려해 보셨습니까?", change_priorities_to_plants = "잡역부들� 업무 우선순위를 바꿔서 화초� 물� 잘 주�� 해야 합니다.", charges_too_high = "당신� 너무 많� 청구하고 있습니다. 단기�으로 보면 �윤� 많� 남겠지만, 결과�으로 환�들� 많� 잃게 � 것입니다.", charges_too_low = "당신� 환�들�게 너무 �게 청구하고 있습니다. 물론 � 많� 사람들� 병�� 방문하겠지만, � 환�로부터 얻는 ��� 미미할 것입니다.", deal_with_epidemic_now = "그 전염병� 지금 당장 처리�지 않으면, 못볼 꼴� 보게 � �니다. 당장 움�여요!", desperate_need_for_watering = "당신� 화초들� �볼 잡역부가 절실히 필요합니다.", doctor_crazy_overwork = "�런! 당신� �사들중 한 명� 과로로 �해 정신� 나갔습니다. 당장 쉬게 해주면 회복� 수 있� 것입니다.", doctors_tired = "당신� �사들� 많� 지쳤습니다. 가�씩 쉬게� 해 주세요.", doctors_tired2 = "�사들� �� 안�게 지�있습니다. 그들� 즉시 휴�� 취해야 합니다.", epidemic_getting_serious = "그 전염성 질병� �� 심�해지고 있습니다. 당장 뭔가 해줘야 합니다!", falling_1 = "��요! 그거 장난� 아니�요. 마우스로 어디를 �릭하는지 잘 보세요. 누군가 다칠 수� 있어요!", falling_2 = "그만 장난치세요, 그러면 좋아요?", falling_3 = "아야, 다쳤잖아요, 누가 �사좀 불러줘!", falling_4 = "여긴 병��지 놀� 공�� 아니�요!", falling_5 = "여긴 사람들� 넘어뜨리는 곳� 아니�요. 아픈 사람들��고요, 알잖아요!", falling_6 = "여긴 볼�장� 아니�요. 아픈 사람들� 그렇게 다루면 안�요!", financial_trouble = "당신� 지금 심�한 재정난� 겪고 있습니다. 재정 �황� 당장 확�하세요! %d 만� � �해를 보면 � 레벨� 실패하게 ��니다!", finanical_trouble2 = "�� � 들어오�� 하지 않으면 당신� 완전히 쓸모없어질 것입니다. %d 만�� � 잃으면 � 레벨� 실패하게 �니다.", financial_trouble3 = "당신� �행 잔고가 불안해 보�는군요. �� � 벌�� 하세요. 실패하는� %d 밖� 남지 않았습니다.", handymen_tired = "잡역부들� 많� 지쳤습니다. 좀 쉬게 해주세요.", handymen_tired2 = "잡역부들� 완전히 기진맥진 했습니다. 지금 당장 어떻게든 좀 쉬게 해주세요.", hospital_is_rubbish = "사람들� 공공연하게 당신� 병�� 지저분하다고 �하고 다닙니다. �대로�면 사람들� �� 다른 병�� 찾게 � 것입니다.", litter_catastrophy = "쓰레기 �황� 아주 지옥같습니다. 지금 잡역부 팀� 꾸려서 쓰레기들� 정리하�� 하세요!", litter_everywhere = "온통 쓰레기 천지입니다. 잡역부�게 �� 좀 시키세요.", machine_severely_damaged = "%s 기계가 고칠 수 없는 �황� 거� 다다�습니다.", machines_falling_apart = "당신� 기계들� 고장나고 있습니다. 지금 당장 잡역부들� 고치�� 하세요!", machinery_slightly_damaged = "병�� 기계들� 약간 ���었습니다. 어� 시��서 수리해 주는 것� 잊지 마세요.", machinery_deteriorating = "당신� 기계 장치들� 지나친 사용으로 악화�고 있습니다. 주� 깊게 지켜보세요.", machinery_damaged = "당신� 기계들� 빠른 시� 내� 수리하세요. 고장나기 시작하는� 그리 오래 걸리지 않��니다.", machinery_damaged2 = "잡역부를 고용해서 어서 기계들� 수리해주어야 합니다.", machinery_very_damaged = "긴급�황! 지금 당장 잡역부를 불러서 기계들� 수리하세요! �발하기 �전입니다!", many_epidemics = "둘 ��� 전염병� �시� �고 있는 것으로 보�는군요. �거 아주 엄청난 재난� �지� 모르니 어서 조치를 취하세요.", many_killed = "지금까지 %d 명� 환�를 죽였군요. 알고 있겠지만 � 잘 해야 합니다.", money_low = "�� 거� 바닥나고 있습니다!", money_very_low_take_loan = "�행 잔고가 절��으로 낮습니다. 필요하다면 대출� 할 수� 있습니다.", more_benches = "벤치를 � 배치하는 것� 고려해 보세요. 아픈 사람들� 서서 기다려야 하는 것� ��합니다.", more_toilets = "화장실� � 필요합니다. 사람들�게 변비가 �기고 있어요.", need_staffroom = "�� 휴게실� 지어서 ��들� 쉴 수 있게 해 주세요.", need_toilets = "환�들� 화장실� 필요로 합니다. 쉽게 접근할 수 있는 곳� 배치해 주세요.", no_desk = "어� 시��는 반드시 접수대를 배치하고 접수�� 고용해야 합니다!", no_desk_1 = "환�들� 병�� 방문하�� 하려면, 접수�� 고용하고 접수�� �할 접수대를 마련해 주어야 합니다!", no_desk_2 = "아주 좋~아요, 아마 세계 기��겠군요: 1년� 다 �어가는� 환�가 한 명� 없다니! � 병�� 관리�로 계� 남고 싶다면, 접수�� 고용하고 접수대를 설치해주어야 할 �니다!", no_desk_3 = "아주 �내주는군요, 1년� 다 �었는� 접수�조차 없다니! 환�가 방문하길 바�기는 하는건지 모르겠군요. 어서 해결하세요!", no_desk_4 = "접수�� 방문하는 환�들� 안내하기 위해서 �할 장소가 필요합니다.", no_desk_5 = "�, �제 시간� �었군요. �제 곧 환�들� 방문하는 것� 볼 수 있� 것입니다!", no_desk_6 = "접수�� 고용했으니, �제 접수�� �할 접수대를 설치해주는 것� 어때요?", no_desk_7 = "접수대를 설치했으니 �제 접수�� 고용하는 것� 어때요? 아시겠지만 �게 제대로 해결�지 않으면 환�들� 방문하지 않��니다!", no_patients_last_month = "지난 달� 새로운 환�가 한 명� 오지 않았습니다. 충격�네요!", nobody_cured_last_month = "지난달�는 정� 아무� 치료하지 못했군요.", nurse_needs_desk_1 = "� 간호사는 �할 책�� 필요합니다.", nurse_needs_desk_2 = "당신� 간호사는 당신� 허�한 휴�� �거워하고 있습니다. 병�� � 명 ��� 간호사가 �하�� 하려면 한 사람당 책� 하나씩� 배치해 주어야 합니다.", nurses_tired = "간호사들� 지쳤습니다. 좀 쉬게 해주세요.", nurses_tired2 = "간호사들� 매우 지쳤습니다. 지금 바로 휴�� 취하게 해주세요.", patient_leaving = "환�가 떠나고 있군요. �유가 ��고요? 당신 병�� 형편없는 운�과 불친절한 ��들, 부족한 설비 때문�죠.", patient_stuck = "누군가가 길� 잃었네요. 병� 설계를 좀 � 잘 해보세요.", patients_annoyed = "사람들� 당신� 병�� 운�하는 방�� 굉장히 불만� 많습니다. 그 사람들� ��고 할 수가 없네요. 제대로 관리하거나 아니면 그� 따르는 결과를 �면하세요!", patients_getting_hot = "환�들� 굉장히 �워하고 있습니다. 온�를 낮추거나 �디��터가 너무 많다면 조금씩 제거해주세요.", patients_leaving = "환�들� 떠나고 있습니다. 화초, 벤치, ��기 등� � 설치해서 병�� 방문하는 사람들�게 좋� ��� 주세요.", patients_really_thirsty = "환�들� 매우 목마릅니다. �료 ��기를 � 설치하거나, 긴 대기열 주변으로 위치를 옮겨보세요.", patients_thirsty = "사람들� 목�� 하고 있습니다. ��기를 � 설치해면 좋� 것 같네요.", patients_thirsty2 = "사람들� 목마르다고 불�하고 있습니다. ��기를 � 설치하거나 �미 있는 ��기들� 사람들 근처로 옮겨 보세요.", patients_too_hot = "환�들� 너무 �워합니다. �디��터들� 좀 제거하거나, 온�를 낮추거나, 아니면 �료 ��기들� � 많� 배치해 주세요.", patients_unhappy = "환�들� 당신� 병�� 싫어합니다. 병� 환경� 개선하기 위해서 뭔가 해야 합니다.", patients_very_cold = "환�들� 매우 추워합니다. 난방� 올리거나 병�� �디��터를 � 많� 배치하세요.", patients_very_thirsty = "환�들� 심�한 갈�� ��고 있습니다. 어서 �료 ��기를 설치하지 않으면, 사람들� 콜�를 마시러 집으로 �아가버릴지� 모릅니다.", pay_back_loan = "�� 많� 쌓여있습니다. 대출금� �환하는 것� 어떤가요?", people_did_it_on_the_floor = "몇몇 환�들� �리현�� 참지 못했군요. 치우려면 누군가가 고�하겠네요.", people_freezing = "놀�군요. �런 중앙 난방� 시대� 얼어죽�만� 추워하는 환�들� 있다니요. �디��터들� � 설치하고 온�를 높여서 환�들� 따뜻하게 해주세요.", people_have_to_stand = "앓고 있는 사람들� 서서 기다려야 합니다. 지금 당장 앉� �리를 � 만들어 주세요.", place_plants_to_keep_people = "사람들� 떠나고 있습니다. 화초들� 배치하면 그들� 머물�� 설�하는 � �움� � 수 있습니다.", place_plants2 = "사람들� 나가고 있습니다. 화초를 � 많� 배치하면 그들� 여기 좀 � 오래 머물게 할 수 있�지� 모릅니다.", place_plants3 = "환�들� 불행해 하고 있습니다. 화초를 좀 � 배치해서 기분� 풀어주세요.", place_plants4 = "� 많� 화초로 � 곳 주변� 환�들� 격려해 주세요.", plants_dying = "화초들� 죽어갑니다. 물� 절실히 필요로 하고 있습니다. 잡역부들� 시켜서 물� 주게 하세요. 환�들� 죽� 화초를 보고 싫어 합니다.", plants_thirsty = "화초를 좀 ��야 하겠습니다. 화초들� 목�� 하고 있어요.", queue_too_long_at_reception = "접수대�서 안내를 기다리는 환�들� 너무 많습니다. 접수대를 추가로 설치하고 접수�� 새로 고용하세요.", queue_too_long_send_doctor = "당신� %s 대기열� 너무 �니다. 방� �사가 있는지 반드시 확�하세요.", queues_too_long = "대기열� 너무 �니다.", reception_bottleneck = "접수대가 병목� �고 있습니다. 접수�� � 고용하세요.", receptionists_tired = "접수�들� 심하게 지쳤습니다. 지금 바로 쉬게 해주세요.", receptionists_tired2 = "접수�들� 많� 피로한 �태입니다. 바로 휴�� 좀 취하게 해주세요.", reduce_staff_rest_threshold = "��들� � �주 휴�� 취할 수 있��, 정책 화면�서 �� 휴� 문턱� 낮춰보세요. 그냥 아�디어 입니다.", research_screen_open_1 = "연구 화면� 사용하려면 먼저 연구실� 지어야 합니다.", research_screen_open_2 = "� 레벨�서는 연구 기능� 사용할 수 없습니다.", researcher_needs_desk_1 = "연구��게는 �할 책�� 필요합니다.", researcher_needs_desk_2 = "당신� 연구�� 당신� 쉴 수 있�� 해준 것� �사하고 있습니다. � 많� 연구�� 배치하고 싶었� 것��면, 한 사람당 책� 하나씩� 배치해 주어야 합니다.", researcher_needs_desk_3 = "��� 연구�� �신� �할 책�� 있어야 합니다.", some_litter = "잡역부는 쓰레기 문제가 심�해지기 전� 그것들� 없앨 수 있습니다.", staff_overworked = "당신� ��� 심�하게 과로한 �태입니다. 그들� �� 비효율�� �어 가고 ��한 실수들� 저지르기 시작할 �니다.", staff_tired = "당신� ��들� ��안�게 지쳤습니다. �� 휴게실�서 쉬게 해주지 않으면 그들� 무리해서 완전히 녹초가 �어버릴 �니다.", staff_too_hot = "당신� ��들� 과열�고 있습니다. 난방� 낮추거나 방� 배치한 �디��터들� 제거하세요.", staff_unhappy = "��들� 불행합니다. 보너스를 지급해 주거나, 아니면 �� 휴게실� 지어 주는 것� � 낫겠습니다. �한 병� 정책 화면�서 �� 휴� 정책� 조정할 수� 있습니다.", staff_unhappy2 = "당신� ��들� �래저래 불만입니다. 그리고 곧 �� � 달�고 요구하게 � �니다.", staff_very_cold = "��들� 춥다고 불�하고 있습니다. 난방� 올리거나 �디��터를 � 설치하세요.", too_many_plants = "화초가 지나치게 많습니다. �거 � 완전히 정글�네요.", too_much_litter = "바닥� 쓰레기가 문제가 �고 있습니다. 잡역부를 � 고용하는 것� 답�겠지요.", }, placement_info = { door_can_place = "�한다면 문� 여기� 설치할 수 있습니다.", door_cannot_place = "죄송하시만 문� 여기� 설치할 수 없습니다.", window_can_place = "창문� 여기 설치할 수 있습니다.", window_cannot_place = "아. 여기�는 창문� 설치할 수 없습니다.", object_can_place = "� 물건� 여기 배치할 수 있습니다.", object_cannot_place = "저기, 여기�는 � 물건� 배치할 수 없습니다.", reception_can_place = "� 접수대를 여기 설치할 수 있습니다.", reception_cannot_place = "� 접수대는 여기� 설치할 수 없습니다.", staff_can_place = "� ��� 여기 배치할 수 있습니다.", staff_cannot_place = "미안하지만, � ��� 여기 배치할 수 없습니다.", room_cannot_place = "� 방� 여기 배치할 수 없습니다.", room_cannot_place_2 = "� 방� 여기 배치할 수 없습니다.", }, praise = { many_benches = "환�들� 앉� ��가 충분하군요. 잘했어요.", many_plants = "멋지군요. 화초가 아주 많네요. 환�들� 좋아할 �니다.", plants_are_well = "화초들� 잘 관리하고 있군요. 아주 좋아요.", few_have_to_stand = "병� 내� 사람들� 서 있어야 하는 �� 거� 없군요. 환�들� 기�할 것입니다.", plenty_of_benches = "앉� �리가 충분하니 문제 없� �니다.", plants_thriving = "아주 좋아요. 화초들� 무럭무럭 ��고 있군요. 아주 멋져 보입니다. 계� 잘 관리한다면 �� 받� 수� 있겠군요.", patients_cured = "%d 명� 환�가 치료�었습니다.", }, information = { larger_rooms = "방� �면 �수� ��들� �신� 중요하게 여기며 성과가 올�갑니다.", extra_items = "방� 있는 추가저� 기물들� ��들� 편안하게 하며 그들� 성과를 높입니다.", epidemic = "당신� 병�� 전염병� 들어왔습니다. 당장 조치를 취해야 합니다!", promotion_to_doctor = "당신� 수련�중 한 명� 전공�가 �었습니다.", emergency = "�급 �황입니다! 어서 움�여요! 어서!", patient_abducted = "환�들중 한 명� 외계�� �해 납치�고 있습니다.", first_cure = "잘 했습니다! 첫 환�를 치료했군요.", promotion_to_consultant = "당신� 전공�중 한 명� 전문�가 �었습니다.", handyman_adjust = "당신� 잡역부� 업무 우선순위를 조정해서 �욱 효과�으로 �하�� 할 수 있습니다.", promotion_to_specialist = "당신� �사중 한 명� %s로 승진했습니다.", initial_general_advice = { rats_have_arrived = "병�� �가 창�했습니다. 마우스로 �들� 날려버리세요.", autopsy_available = "�� 부검 기계가 연구�었습니다. �것으로 문제를 �삼거나 귀찮� 환�를 처치할 수 있고, 남� 것으로 연구� 진행할 수 있습니다. 주�하세요 - � 기계를 사용하면 엄청난 물�를 �으키게 � �니다.", first_patients_thirsty = "병� 내� 목��하는 사람들� 있습니다. 그런 사람들� 위해 �료 ��기들� 배치하세요.", research_now_available = "당신� 첫 연구실� 지었군요. �제 당신� 연구 화면� 사용할 수 있습니다.", psychiatric_symbol = "정신과 훈련� 받� �사들� 다�과 같� 표�� 지닙니다: |", decrease_heating = "병�� 너무 �습니다. 난방� 좀 낮추세요. 마� 지� 화면�서 조절할 수 있습니다.", surgeon_symbol = "수술� 집�할 수 있는 �사들� 다�과 같� 표�� 지닙니다: {", first_emergency = "�급 환�들� 머리 위�는 파란 불� 깜빡거립니다. 그들� 사�하기 전�, 혹� 제한� 시간� 지나기 전� 치료하세요.", first_epidemic = "병�� 전염병� �기 시작했군요! � 사실� 숨긴채 조용히 처리할지, 아니면 사실대로 공개할지 결정하세요.", taking_your_staff = "누군가가 당신� ��� 꼬시고 있습니다. ��들� �기지 않으려면 싸워야 할 �니다.", place_radiators = "병�� 너무 춥습니다 - 복� 기물 메뉴�서 추가로 �디��터를 주문해서 병�� 배치할 수 있습니다.", epidemic_spreading = "병�� 전염병� �고 있습니다. �염� 환�들� 떠나기 전� 치료하�� 시�하세요.", research_symbol = "연구 능력� 있는 �사들� 다�과 같� 표�� 지닙니다: }", machine_needs_repair = "수리가 필요한 기계가 있습니다. 우선 기계를 찾아낸 뒤 - 연기가 나고 있� 거예요 - �릭하세요. 그런 뒤 잡역부 버튼� 누르세요.", increase_heating = "사람들� 추워합니다. 마� 지� 화면으로 가서 난방� 올리세요.", first_VIP = "당신� 첫 VIP가 곧 방문할 예정입니다. VIP가 비위��� 모습�나 불행해보�는 환�를 보지 못하�� 주�를 기울�세요.", }, patient_leaving_too_expensive = "환�가 %s � 비용� 지불하지 않고 병�� 떠납니다. 너무 비싸요.", vip_arrived = "조심하세요! - %s �(가) 당신� 병�� 방문했습니다! 모든 것� �만하게 �아가�� 하고 그를 만족시키세요.", epidemic_health_inspector = "보건부� 당신� 전염병 �황� 보고�었습니다. 건강 �시관� 방문� 대비하세요.", first_death = "첫 번째 환�를 죽였군요. 기분� 어때요?", pay_rise = "��중 한 명� 그만�겠다고 협박하고 있습니다. 요구를 들어줄지 해고해 버릴지 결정하세요. 왼쪽 아래� 있는 아�콘� �릭해서 어떤 ��� 협박하고 있는지 확�하세요.", place_windows = "창문� 배치하면 방� �아지고 ��� 사기가 올�갑니다.", fax_received = "화면 왼쪽 아래� 방금 나타난 아�콘� 중요한 정보 혹� 당신� 결정해야할 �황� 알려�니다.", }, build_advice = { placing_object_blocks_door = "그 물건� 거기 배치하면 사람들� 문� 사용하지 못하게 �니다.", blueprint_would_block = "그 청사진� 다른 방� 가로막� �니다. 방� �기를 조절하거나 다른 곳으로 옮기세요!", door_not_reachable = "사람들� 그 문� 사용할 수 없� 것입니다. ��� 해보세요.", blueprint_invalid = "올바른 청사진� 아닙니다.", }, } update_window = { new_version = "새 버전:", caption = "업��트 가능!", download = "다운로드 페�지로 ��", current_version = "현재 버전:", ignore = "건너 뛰고 메� 메뉴로 ��", } calls_dispatcher = { repair = "%s �(를) 수리", summary = "%d 건� 요청; %d 건 할당�", close = "닫기", watering = "%d,%d �서 물주는 중", staff = "%s - %s", } information = { cheat_not_possible = "� 레벨�서는 해당 치트를 사용할 수 없습니다. 치트하면서까지 실패하네요, 웃기지 않아요?", very_old_save = "� 레벨� 시작한 �후로 수많� 업��트가 있었습니다. 모든 기능� �활히 �작하게 하려면 재시작하는 것� 권합니다.", no_custom_game_in_demo = "죄송합니다. �모 버전�서는 커스텀 맵� 플레�할 수 없습니다.", cannot_restart = "안타�지만, � 커스텀 게임� 재시작 기능� 구현�기 전� 만들어졌습니다.", custom_game = "CorsixTH � 오신 것� 환�합니다. � 커스텀 맵� 마�� �겨주세요!", level_lost = { [1] = "�런! 당신� � 레벨� 실패했습니다. 다� 기회�!", [2] = "실패한 �유:", reputation = "당신� ��� %d 아래로 떨어졌습니다.", balance = "당신� �행 잔고가 %d 아래로 떨어졌습니다.", percentage_killed = "당신� %d �센트보다 많� 환�를 사�하게 했습니다.", cheat = "당신� �부러 그랬거나 버튼� 잘못 눌렀나�요? 치트� 하나 제대로 못하다니 어�없죠?", }, } new_game_window = { hard = "전문� (어려움)", cancel = "취소", tutorial = "튜토리얼", option_on = "켜�", option_off = "꺼�", difficulty = "난��", easy = "수련� (쉬움)", caption = "캠페�", player_name = "플레�어 �름", start = "시작", medium = "전공� (보통)", } casebook = { sent_home = "�려 보냄", deaths = "치사", treatment_charge = "치료 비용", reputation = "��", research = "집중 연구", cure = "치료방법", cured = "치료", earned_money = "벌어들� �", cure_desc = { hire_doctors = "당신� �사들� 고용해야 합니다.", hire_psychiatrists = "당신� 정신과 �사를 고용해야 합니다.", hire_surgeons = "당신� 외과 �사들� 고용해야 합니다.", hire_nurses = "간호사들� 고용해야 합니다.", build_ward = "당신� 여전히 병�� 지어야 합니다.", no_cure_known = "알려진 치료법 없�.", improve_cure = "치료법 개선.", cure_known = "치료 가능.", build_room = "%s �(를) 지� 것� 추천합니다.", }, } handyman_window = { all_parcels = "모든 구�", parcel = "구�", } folders_window = { screenshots_location = "스�린샷� 저장할 디렉토리를 선�하세요", music_label = "MP3들", back = "뒤로", savegames_label = "저장� 게임들", caption = "�� 위치", savegames_location = "게임� 저장할 디렉토리를 선�하세요", font_label = "�트", new_th_location = "여기서 테마 병� 설치 디렉토리를 새로 지정할 수 있습니다. 새 위치를 지정하는 즉시 게임� 재시작 �니다.", screenshots_label = "스�린샷", music_location = "�악� 재�할 디렉토리를 선�하세요", data_label = "테마 병� ��터", } customise_window = { movies = "�� 컨트롤", option_on = "켜�", option_off = "꺼�", back = "뒤로", paused = "정지 �태�서 건설", intro = "�트로 �� 재�", volume = "�량 �소 단축키", caption = "커스텀 설정", fractured_bones = "골절", average_contents = "�반 비품", aliens = "외계� 환�", } diseases = { alien_dna = { name = "외계 DNA", cause = "�� - 사람� 얼굴� 달�붙는 지�� 외계 �명� 혈액.", symptoms = "�� - 서서히 외계 �명체로 변해가며 �간� �시를 파괴하고 싶� 욕�� �김.", cure = "치료 - 환�� DNA 를 기계�으로 추출한 뒤, 외계 요소를 제거하고 다시 집어 넣�.", }, autopsy = { name = "부검", }, baldness = { name = "대머리", cause = "�� - �기를 얻기 위해 거짓�� 하고 지어낸 �야기들� 함.", symptoms = "�� - 반��는 머리와 �반�는 부�러움.", cure = "치료 - 고통스러운 기계를 사용해 환�� �부� 머리카�� 심�.", }, bloaty_head = { name = "부� 머리", cause = "�� - 치즈 냄새를 맡고 정수�지 않� 빗물� 마심.", symptoms = "�� - 굉장히 불편해�.", cure = "치료 - 팽창� 머리를 뻥 터뜨린 뒤, 똑똑한 기계를 사용해 정확한 압력으로 재 팽창시킴.", }, broken_heart = { name = "가슴 앓�", cause = "�� - 환�보다 부유하거나 젊고 날씬한 사람.", symptoms = "�� - 울�과 나들� 사진들� 반복�으로 찢어서 �기는 근육 ��.", cure = "치료 - 외과 �사 � 명� 환�� �부를 열고 숨� 참� 채로 조심스레 심장� 고침.", }, broken_wind = { name = "지�성 방귀", cause = "�� - �사 �후� 헬스장�서 런�머신� 뜀.", symptoms = "�� - 환� 바로 뒤� 있는 사람들� 불편하게 함.", cure = "치료 - 물같� 특수한 물질들� 섞� 혼합 용액� 약국�서 신�하게 마심.", }, chronic_nosehair = { name = "만성 콧털", cause = "�� - 환�보다 가난한 사람들� 심하게 경멸하며 코웃� 침.", symptoms = "�� - 오소리가 둥지를 틀어� �만� 거대한 콧털.", cure = "치료 - 약국�서 간호사가 조제한 역겨운 모발 제거 물약� 마심.", }, corrugated_ankles = { name = "주름잡힌 발목", cause = "�� - �로 �� 서행 표지를 차로 밟고 지나�.", symptoms = "�� - 신발 등� 신기가 매우 불편해�.", cure = "치료 - 발목� 펴기 위해 약간� �성� 있는 허브와 향신료 혼합물� 마심.", }, diag_blood_machine = { name = "혈액 분�기 진단", }, diag_cardiogram = { name = "심전� 진단", }, diag_general_diag = { name = "�반 진단", }, diag_psych = { name = "정신과 진단", }, diag_scanner = { name = "스�너 진단", }, diag_ultrascan = { name = "울트�스캔 진단", }, diag_ward = { name = "병� 진단", }, diag_x_ray = { name = "X-레� 진단", }, fake_blood = { name = "가짜피", cause = "�� - 환�가 짓궂� 장난� 너무 쉽게 당함.", symptoms = "�� - 정맥� 혈액 대신 천� 닿으면 �발하는 붉� 액체가 �름.", cure = "치료 - 정신과�� 진정� 유�한 해결책.", }, discrete_itching = { name = "간�성 가려움�", cause = "�� - 날카로운 �빨� 지닌 작� 곤충.", symptoms = "�� - 심하게 �어서 몸 여기저기� 염�� �김.", cure = "치료 - 피부� 가려움� 방지하기 위해 ����한 시럽� 마심.", }, fractured_bones = { name = "골절", cause = "�� - 높� 곳�서 콘�리트 위로 떨어�.", symptoms = "�� - 쿵 하는 소리와 함께 부러진 팔/다리를 사용할 수 없게 �.", cure = "치료 - �스를 한 뒤 레�저 기반 제거 기계로 제거함.", }, gastric_ejections = { name = "위액 분출", cause = "�� - 아주 매운 멕시코, �� ��.", symptoms = "�� - 반쯤 소화� ��� 환��게서 닥치는 대로 분출�.", cure = "치료 - 특수한 경화 용액� 마셔서 토하는 것� 막�.", }, general_practice = { name = "진료", }, golf_stones = { name = "골프 결�", cause = "�� - 골프공 내부� �가스� 노출�.", symptoms = "�� - 정신 착란 �세와 심�한 수치심.", cure = "치료 - � 명� 외과 �사가 수술� 통해 결�� 제거해야 함.", }, gut_rot = { name = "�� 창�", cause = "�� - O'Malley 부�� �내주는 기침약 위스키.", symptoms = "�� - 기침� 사�지지만, 위장벽� 보호막� 함께 사��.", cure = "치료 - 간호사가 �절히 선�한 용해 혼합물로 위장벽� 코팅.", }, hairyitis = { name = "모발 과다�", cause = "�� - 달빛� 오랫�안 노출�.", symptoms = "�� - 환�들� 후�� 굉장히 예민해�.", cure = "치료 - 전기분해 기계로 모발� 제거하고 모공� 봉함.", }, heaped_piles = { name = "치질", cause = "�� - 냉�기 주위� 서있�.", symptoms = "�� - 마치 구슬 주머니 위� 앉아있는 것 같� �낌� 받�.", cure = "치료 - 기분좋�, 그러나 아주 강력한 산성� �료를 마셔서 장� 쌓� 물질� 녹임.", }, infectious_laughter = { name = "전염성 웃�병", cause = "�� - 고전 �황 코메디.", symptoms = "�� - �없� 킥킥거리며 웃고 재미없는 �치프레�즈를 반목해서 �함.", cure = "치료 - �격� 갖춘 정신과 �사가 환��게 지금 �황� 얼마나 심�한지 �기시킴.", }, invisibility = { name = "투명�간", cause = "�� - 눈� 안보�는 방사능 개미�게 물림.", symptoms = "�� - 환�는 특별히 불편하지 않�. 사실 많� 환�들� � 병으로 가족들�게 짓궂� 장난� 침.", cure = "치료 - 약국�서 다채로운 색� 액체를 마시면 곧 눈� 보�게 �.", }, iron_lungs = { name = "철화� �", cause = "�� - �시 내� 스모그와 케밥 찌꺼기가 섞여서 �김.", symptoms = "�� - 불� 뿜거나 깊� 물 ��서 소리지를 수 있�.", cure = "치료 - � 명� 외과 �사가 수술실�서 �� 굳� 부분� 제거함.", }, jellyitis = { name = "젤리염", cause = "�� - 젤�틴 성분� �부한 �단과 너무 과한 운�.", symptoms = "�� - 엄청난 비틀거림과 �주 넘어�.", cure = "치료 - 특수한 방�서 젤리통� 환�� 몸� 잠시�안 담금.", }, kidney_beans = { name = "콩팥콩", cause = "�� - �료수� 든 얼�� 씹어먹�.", symptoms = "�� - 통�과 잦� 화장실 출입.", cure = "치료 - �명� 외과 �사가 콩팥� 유지한 채 콩만 제거해내야 함.", }, king_complex = { name = "왕�병", cause = "�� - 왕� �혼� 환�� 정신� 지배함.", symptoms = "�� - 색�� 화려한 스웨�드 신발� 신으며 치즈버거를 먹�.", cure = "치료 - 정신과 �사가 지금 환�가 얼마나 우습게 보�는지 �해줌.", }, pregnancy = { name = "임신", cause = "�� - �시 지역� 정전.", symptoms = "�� - 변�스럽게 ��� 먹으며 결과�으로 배불��가 �.", cure = "치료 - 수술실�서 아기를 받아 씻긴 뒤 환��게 �려줌.", }, ruptured_nodules = { name = "혹 파열", cause = "�� - 추운 날씨� 번지 �프를 함.", symptoms = "�� - 편안하게 앉지를 못함.", cure = "치료 - � 명� �격있는 외과 �사가 떨림 없는 �으로 혹� 제거해야 함.", }, serious_radiation = { name = "심�한 방사능 오염", cause = "�� - 플루토늄 �위 �소를 껌으로 착�함.", symptoms = "�� - � �태� 환�는 아주 많� 기분� 좋지 않�.", cure = "치료 - 환�를 오염제거 샤워기로 깨�하게 씻어줘야 함.", }, slack_tongue = { name = "늘어진 혀", cause = "�� - 아침 드�마� 대한 지��� 과다 논�.", symptoms = "�� - 혀가 �래 �기� 다섯 배 정�로 팽창함.", cure = "치료 - 혀를 절단기� 넣고 효과��지만 고통스러운 방법으로 재빨리 절단해냄.", }, sleeping_illness = { name = "수면�", cause = "�� - 입 천장� 수면 분비선� 과활성화.", symptoms = "�� - 아무�서나 �어나는 압��� 수면욕.", cure = "치료 - 간호사� 관리 하� 강력한 �극제를 충분히 투약.", }, spare_ribs = { name = "여분� 늑골", cause = "�� - 차가운 �바닥� 앉�.", symptoms = "�� - 가슴 부위� 불편한 �낌.", cure = "치료 - 2명� 외과 �사가 여분� 늑골� 제거한 뒤, 강아지 간�용 봉투� 넣어 환��게 �려줌.", }, sweaty_palms = { name = "다한�", cause = "�� - 구� 면접� 대한 �려움.", symptoms = "�� - 환�와 악수하는 것� 마치 방금 물� 푹 �신 스펀지를 잡는 것 같�.", cure = "치료 - 정신과 �사가 환�와 대화하여 � 만들어진 병�서 벗어나게 해야 함.", }, the_squits = { name = "설사병", cause = "�� - 오� 밑� 떨어져 있� 피�를 섭취.", symptoms = "�� - 으. � 안해� 알겠죠.", cure = "치료 - 섬유질 성분� �성� 액체로 환�� 내부를 굳힘.", }, third_degree_sideburns = { name = "3� 구렛나룻", cause = "�� - 70년대� 대한 진한 향수", symptoms = "�� - �성한 머리, 나팔바지, 플랫�과 현란한 화장.", cure = "치료 - 정신과 �사가 최신 기술들� 사용해서 �런 �실�실한 치장� 지저분해 보�다고 확신시켜야 함.", }, transparency = { name = "투과�", cause = "�� - 열려 있� 항아리 뚜껑� 묻� 요구르트를 핥�.", symptoms = "�� - 살� 투명해지며 �� 비� ��한 모습� �.", cure = "치료 - 특수하게 냉� � 착색� �료를 약국�서 마심.", }, tv_personalities = { name = "TV 중�", cause = "�� - 낮시간 텔레비전 프로그램.", symptoms = "�� - �신� 요리 프로그램� ��할 수 있�거�는 착�.", cure = "치료 - 훈련� 정신과 �사가 환�를 설�해서 TV를 팔고 �디오를 구매하�� 함.", }, uncommon_cold = { name = "�한한 �기", cause = "�� - 공기중� 떠다니는 작� 콧물 방울.", symptoms = "�� - �르는 콧물, 재채기, 변색� �.", cure = "치료 - 약국�서 조제한 특� �기약� 쭉 들�키면 나�.", }, unexpected_swelling = { name = "뜻밖� 팽창", cause = "�� - 뭔가 예�치 못한 것.", symptoms = "�� - 팽창.", cure = "치료 - � 명� 외과 �사가 수술� 통해 팽창� 부분� 찔러서 터뜨리는 수 밖� 없�.", }, } policy = { header = "병� 정책", diag_procedure = "진단 절차", diag_termination = "진단 종료", staff_rest = "��� 휴�", staff_leave_rooms = "��� 방� 떠남", sliders = { guess = "추측� �한 치료", send_home = "�려 보내기", stop = "절차 중지", staff_room = "�� 휴게실로 ��", }, } options_window = { fullscreen = "전체화면", cancel = "취소", custom_resolution = "커스텀...", option_on = "켜�", option_off = "꺼�", back = "뒤로", caption = "옵션", language = "게임 언어", apply = "�용", width = "너비", change_resolution = "해�� 변경", height = "높�", resolution = "해��", folder = "��", customise = "커스터마�즈", } audio_window = { audio = "오디오", back = "뒤로", } trophy_room = { all_cured = { awards = { [1] = "작년 한해 �안 모든 환�들� 성공�으로 치료한 것으로 '마리 퀴리 � (Marie Curie Award)'� 수�하게 � 것� 축하합니다.", }, trophies = { [1] = "국제 치료 재단� 당신� 작년 한해 �안 모든 사람� 치료했다는 사실�, '전�치료 트로피 (Cure-All Trophy)'를 수여하는 것으로 기리고� 합니다.", [2] = "당신� 작년� 방문한 모든 환�를 치료한 공로로 '무병 가글러 트로피 (No-ill Gargler Trophy)'를 수�했습니다.", }, }, best_value_hosp = { trophies = { [1] = "작년 한해 �안 가장 높� �가를 받� 병��게 주어지는 '완전무결 트로피 (SqueakiKlean Trophy)'를 수�하게 � 것� 축하합니다. 당신� 충분히 받� �격� 있습니다.", }, penalty = { [1] = "주변� 모든 병�� 당신 병�보다 � 가치가 있습니다. � 수치스러운 �황� 수습해 보세요. 비싼 물건들� 좀 들여놓으세요!", }, regional = { [1] = "게임 내�서 가장 가치 있는 병�� 가진 것� 축하드립니다. 잘 해냈군요. 계� 분발해 주세요.", }, }, consistant_rep = { trophies = { [1] = "금년� 가장 모범� �며 가장 높� ��� 유지한 것� �거, 당신� '내� 장관 � (Cabinet Minister's Award)'� 수�했습니다. 훌륭합니다.", [2] = "작년 한해 �안 가장 높� �가를 받� 병��게 주어지는 '완전무결 트로피 (SqueakiKlean Trophy)'를 수�하게 � 것� 축하합니다. 당신� 충분히 받� �격� 있습니다.", }, }, cleanliness = { regional_good = { [1] = "당신� 병�� 지역 내�서 가장 깨�하지 못한 병� 중 하나로 꼽혔습니다. 지저분한 병�� 냄새나고 위험합니다. 당신� � 어지러운 것들� 신경� � �야 합니다.", }, award = { [1] = "검사관들� 당신� 병�� 매우 청결하다고 �가했습니다. 청결한 병�� 안전한 병�입니다. 계� 힘�주세요.", }, regional_bad = { [1] = "당신� 병�� 지역 내�서 가장 지저분한 병�입니다. 다른 모든 병� 책임�들� 그들� 복�를 � 깨�하게 유지해 냈습니다. 당신� �료계� 수치입니다.", }, }, curesvdeaths = { awards = { [1] = "작년 당신� 병�� ���� 치료대 사� 비율� 달성한 것� 진심어린 축하를 드립니다.", }, penalty = { [1] = "당신� 치료수 대 사� 수는 극�로 나�니다. 죽는 환�� 수 보다 치료하는 환�� 수가 훨씬 많아지�� 유지해야 합니다. 우리를 실�시키지 마세요.", }, }, emergencies = { regional_good = { [1] = "보건부는 작년 한해 �안 당신� 다른 어떤 병�보다 �급�황� 잘 처리한 것� �사하며 � �� 수여합니다.", }, penalty = { [1] = "당신� �급�황� 제대로 처리하지 못했습니다. �급 환�들�게 필요한 신�하고 정확한 처치를 하는 � 실패했습니다.", }, regional_bad = { [1] = "당신� 병�� 지역 내�서 �급�황� 처리하는� 최악�었습니다. 지역내 �급 처치 순위권�서 최하위로 머물게 � 것� 모� 당신 책임입니다.", }, award = { [1] = "축하합니다: 당신� 신�하고 효과�� �급 처치가 � 특별 �� 수�하게 했습니다. 잘 했습니다.", [2] = "당신� �급 처리는 특별합니다. � �� 대규모� 환�들� 치료하는 � 절대�으로 최고임� �명한 당신�게 수여합니다.", }, }, gen_repairs = { awards = { [1] = "당신� 잡역부들� 빈틈없� 병�� 기계 장치들� 정비한 것� 대한 특별 �� 수여합니다. 잘 했습니다. 휴가�� 다녀오세요.", [2] = "당신� 잡역부들� 다른 어떤 병�� 잡역부들 보다 잘 �해주었습니다. �것� 축하받� 만한 주요 성과입니다.", [3] = "당신� 기계들� 최�� �태로 정비�었습니다. 잡역부들� 헌신�� 노력� 놀랄 만한 �입니다. 당신� � 권위있는 �� 받� �격� 있습니다. 훌륭합니다.", }, penalty = { [1] = "당신� 잡역부들� 기계들� 제대로 정비하지 못했습니다. 그들� � 잘 관리하거나 좀 � 고용해서 �� 분담시킬 필요가 있� 것 같군요.", [2] = "기계들� 정비하는 � 아주 엉�입니다. ��들� 설비들� 신�하고 세심하게 정비하�� 해야 합니다.", }, }, happy_patients = { awards = { [1] = "작년 한해 �안 귀하� 병�내� 사람들� 매우 만족했다는 것� �랑할만 한 �입니다.", [2] = "당신� 병�� 방문하는 사람들� 게임 내� 다른 병�� 방문한 사람들보다 �균�으로 치료� � 만족했습니다.", }, penalty = { [1] = "당신� 병�� 방문하는 사람들� 아주 형편없는 취급� 받고 있습니다. 보건부로부터 �정� 받고 싶다면 � 잘해야 할 �니다.", [2] = "당신� 병��서 치료받는 사람들� � 곳� �태� 대해 굉장히 불만족스러워 합니다. 환�들� 복지를 좀 � 세심하게 신경�야 합니다.", }, }, happy_staff = { trophies = { [1] = "열심히 �하는 당신� ��들� 계� 행복하게 유지한 공로로 '미소 트로피 (Smiley Trophy)'를 수여합니다.", [2] = "'아다미 행복 연구소'는 작년 한해 �안 불행한 ��� 하나� 없�� 관리한 것� 대한 보�으로 � 트로피를 수여합니다.", [3] = "� 트로피, '�욱 환한 미소 컵 (Beam-more Cup)'� 작년 한해간 �반�� 기대를 훨씬 뛰어 넘�� 귀하� ��들� 행복하게 해준 당신�게 수여합니다. 모��게 미소를!", }, awards = { [1] = "당신� ��들� � �� �니다. ��들� �� 따르면, 약간� 개선� 여지는 있지만 당신� 처우는 전체�으로 좋았다는군요.", [2] = "당신� ��들� 당신 밑�서 �하는 것� 너무 �거워서 웃�� 떠나지 않는다고 합니다. 당신� 훌륭한 매니저 입니다.", }, penalty = { [1] = "당신� ��들� 지금� 처우� 대해 굉장히 불만스럽다는 것� 알리고 싶어 합니다. 좋� ��들� 재산입니다. 그들� 행복하게 해주지 못한다면 당신� 떠나버리고 � �니다.", }, regional_good = { [1] = "당신� ��들� 다른 모든 병�들� 비해 만족�가 높았습니다. 행복한 ��� 곧 높� �윤과 �� 사�으로 �어집니다. 보건부는 � 소�� 기�� 표합니다.", }, regional_bad = { [1] = "당신� ��들� 작년 내내 아주 최악� 대우를 받았습니다. 당신� 눈치를 좀 챘어야 합니다. 지금 �태로는 다른 모든 병�들� 당신보다 � 행복한 ��들� �리고 있는 셈입니다.", }, }, happy_vips = { trophies = { [1] = "귀하는 '노벨 VIP �명 � (Nobel Prize for Impressing VIPs)'� 수�했습니다. 작년� 당신� 병�� 방문한 VIP 들 모�가 입� 마르�� 칭찬� 하고 있습니다.", [2] = "'유명�사국'� 귀하�게 당신� 기관� 방문한 모든 VIP 를 만족시킨 공로로 '유명� 트로피 (Celebrity Trophy)'를 수여하고� 합니다.", [3] = "'VIP 여행� (VIP TRIP award)'� 수�하게� 것� 축하합니다. � �� 공공� 눈 아래�서 열심히 �하는 유명 �사들� 만족시킨 공로를 기리기 위함입니다. 훌륭합니다.", }, }, healthy_plants = { awards = { [1] = "작년 내내 화초들� 매우 ��하게 관리한 공로로 '무럭무럭 비료 � (Gro-More Fertiliser award)'� 수�하게 � 것� 축하합니다.", }, trophies = { [1] = "화분 �물 연합 ��� '건강� 녹색 트로피 (Green Trophy of Health)'로 당신� 지난 12개월간 화초들� 건강하게 관리해준 것� 기리고� 합니다.", [2] = "트리피드 연합� 당신� 병� 화초들� 작년 한해 �안 최고� �태로 유지한 것� 대해 '녹색�가� 트로피 (Greenfinger Trophy)'를 수여합니다.", }, }, high_rep = { penalty = { [1] = "당신� 작년 한해간 ��� 형편없었� 것� 대해 징계를 받게 ��니다. 추후�는 개선� 수 있�� 해주세요.", [2] = "당신 병�� ��� 지역 내�서 가장 나�니다. 아주 불명예스럽군요. 앞으로 � 잘 하거나 다른 �업� 찾아보시죠.", }, awards = { [1] = "잘 하셨습니다. 작년� 꽤 ���� 좋� ��� 남겼� 공로로 소정� �� 수여합니다.", [2] = "훌륭합니다! 귀하� 병�� 작년 한해�안 가장 높� 명성� 쌓� 것으로 � �� 수여합니다.", }, regional = { [1] = "작년 한해간 모든 병�중� 가장 높� ��� 쌓� 병��게 주어지는 '불프로그 � (Bullfrog Award)'� 받아주세요. �기세요 - 당신� 받� 만한 �격� 있습니다.", [2] = "�번 해� 당신 병�� ���, 다른 모든 병�� ��� 합친 것� �회했습니다. �드러진 성과입니다.", }, }, hosp_value = { penalty = { [1] = "당신 병�� 가치를 �정 수준 ��으로 유지하는� 실패했습니다. �과 관련� 잘못� 결정� 많� 내렸군요. 기억하세요, 좋� 병�� �한 값비싼 병��기� 합니다.", }, awards = { [1] = "보건부는 � �리를 빌어 전체�으로 매우 높� 귀하� 병� 가치를 축하하고� 합니다.", }, regional = { [1] = "당신� 재정분야� 귀재로군요. 당신� 병�� 지역 내� 다른 병�들� 모� 합친 것보다 가치가 높습니다.", }, }, many_cured = { trophies = { [1] = "작년 한해 �안 거� 모든 환�들� 성공�으로 치료한 것으로 '마리 퀴리 � (Marie Curie Award)'� 수�하게 � 것� 축하합니다.", [2] = "국제 치료 재단� 당신� 작년 한해 �안 대단히 많� 사람� 치료했다는 사실�, '많�치료 트로피 (Cure-A-Lot Trophy)'를 수여하는 것으로 기리고� 합니다.", [3] = "당신� 작년� 방문한 환�들� 대다수를 치료한 공로로 '무병 가글러 트로피 (No-ill Gargler Trophy)'를 수�했습니다.", }, penalty = { [1] = "당신� 병�� 환�들�게 필요한 �절한 치료를 제공해주지 못하고 있습니다. 치료법들� � 잘 듣�� 개선하는 � 집중하세요.", [2] = "당신� 병�� 다른 모든 병�들� 비해 환�를 치료하는� � 능숙합니다. 당신 �신 �만 아니� 보건부� 얼굴� 먹칠� 하고 있군요. � 긴 � 하지 않겠습니다.", }, awards = { [1] = "작년�안 대량� 환�들� 치료한 것� 축하드립니다. 많� 사람들� 당신 �분� 몸� 한결 좋아졌습니다.", [2] = "다른 모든 병�보다 � 많� 환�들� 치료한 것� 대한 � �� 받아주세요. 아주 확실한 성과입니다.", }, regional = { [1] = "당신� 다른 모든 병�� 치료 환� 수를 합친 것보다� � 많� 환�를 치료한 공로로 �극� 치료 �� 수�했습니다.", }, }, no_deaths = { trophies = { [1] = "당신� 작년�안 100%� 환�를 살린 공로로 '해치지 않아요 � (No-Croak Award)'� 수�했습니다.", [2] = "'사단 법� 지��는 ��'� 작년�안 아무� 죽게 하지 않� 것� 대해 � 트로피를 수여합니다.", [3] = "당신� 올해� 어떠한 사��� 나오지 않�� 하는 � 성공한 공로로 '�존 트로피 (Staying Alive Trophy)'를 수�했습니다. 훌륭합니다.", }, penalty = { [1] = "작년� 당신� 병� 내 사�� 수는 너무 많았습니다. � 신경� � 주세요. 추후�는 반드시 � 많� 사람� 살아남�� 하세요.", [2] = "당신� 병�� 환�들� 건강� 있어 위험요소 입니다. 당신� �� 많� 사람들� 치료하는 것�지, 그들� 죽게 놔�는 것� 아닙니다.", }, awards = { [1] = "올해 귀 병�� �� 사�� 수를 기�하기 위해 � �� 수여합니다.", [2] = "당신� 능력� 병�� 사�� 수를 최소한으로 유지했습니다. 아주 기�할만한 성과입니다.", }, regional = { [1] = "작년 귀 병�� 치사율� 다른 어떤 병�보다� 낮았습니다. � �� 받아주세요.", }, }, pop_percentage = { awards = { [1] = "작년 한해간 귀 병�� �시 �구� 높� �유율� 기�했�� 주목하세요. 잘 하셨습니다.", [2] = "축하합니다. 다른 기관들보다 당신� 병�� � 많� 지역 주민들� 방문하였습니다.", [3] = "멋지군요. 당신� 병�� 다른 병�들� 환� 수를 합친 것보다 � 많� 환�들� �어들였습니다.", }, penalty = { [1] = "올해 당신� 병��는 사람들� 거� 오지 않았습니다. �� 벌기 위해서는 �� 내 줄 환�들� 필요하겠죠.", [2] = "지역 내� 다른 모든 병�� 당신� 병�보다 많� 비율� 환�들� �려오는 � 성공했습니다. 부�러운줄 아세요.", }, }, rats_accuracy = { trophies = { [1] = "당신� �들� 저격하는 � %d%% � 정확�를 가진 것� 기�하여 '신디케�트 워즈 저격 트로피 (Syndicate Wars Accurate Shooting Trophy)'를 수�하였습니다.", [2] = "� 트로피는 작년�안 �를 %d%% � 확률로 사살한 당신� 놀�운 정확�를 기�하기 위함입니다.", [3] = "당신� 병�� 나타는 �들� %d%% 박멸한 것� 기�하기 위해 '�전 키� 해수제로 트로피 (Dungeon Keeper Vermin-Free Trophy)'를 수여합니다. 축하합니다!", }, }, rats_killed = { trophies = { [1] = "당신� 작년� 병� 내�서 %d 마리� �를 저격한 공로로 '반-해수 트로피 (Anti-Vermin Trophy)'를 수�하였습니다.", [2] = "당신� 놀�운 � 저격 능력� %d 마리� �를 퇴치하여 '� 퇴치 연맹' 으로부터 � 트로피를 받� �격� 갖추었습니다.", [3] = "귀하는 작년� 병�내� %d 마리� �를 해치움으로� '날려버리� 트로피 (Ratblast Trophy)'를 수�할 �격� 얻었습니다.", }, }, research = { regional_good = { [1] = "귀하� 연구 수준� 최신 기술들과 어깨를 나란히 했습니다. 귀하� 연구진� � �� 받� �격� 있습니다. 잘 하셨습니다.", }, penalty = { [1] = "당신� 새로운 치료법, 기계, 약물 등� 개발하는 � 매우 부진했습니다. 기술�� 진보가 필수�는 것� �안할 때, �것� 매우 나� 징조입니다.", }, regional_bad = { [1] = "지역 내� 다른 모든 병�들� 당신� 병�보다 연구 수준� 높습니다. 연구가 병�� �치는 중요한 역할� 기�하여 보건부는 귀 병�� 분노하고 있습니다.", }, awards = { [1] = "귀하� 연구 수준� 최신 기술들과 어깨를 나란히 했습니다. 귀하� 연구진� � �� 받� �격� 있습니다. 잘 하셨습니다.", [2] = "작년 한해 �안 귀하는 사람들� 기대 ��으로 많� 신약과 치료장비들� 연구해냈습니다. 보건부� 모�가 드리는 � �� 받아주세요.", }, }, sold_drinks = { trophies = { [1] = "'세계 치과 �사 연맹'� 당신� 병��서 대량� 캔�료를 �매한 것� 대해 � 트로피와 �장� 수여합니다.", [2] = "당신� 병�� 작년� 병��서 팔린 막대한 양� 탄산 �료를 기�하여 � '탄산 트로피 (Fizzy-Bizz Trophy)'를 수�했습니다.", [3] = "주�회사 'DK Fillings'를 대표하여, � 초콜릿 �� 트로피로 올해 당신� 병�� 탄산 �료를 특출나게 많� �매한 것� 기�하고� 합니다.", }, }, wait_times = { award = { [1] = "축하합니다. 당신� 병�� 꾸준하게 짧� 대기시간� 유지해왔습니다. �것� 아주 중요한 �입니다.", }, penalty = { [1] = "당신 병�� 환�들� 너무 오랫�안 기다려야 합니다. 어디를 가든 납�� 안�는 긴 줄� 있습니다. 할 마�만 있다면 환�들� 좀 � 효율�으로 관리할 수 있� �니다.", }, }, reputation = "��", cash = "소지금", } buy_objects_window = { price = "가격: ", choose_items = "기물 선�", total = "합계: ", } menu_list_window = { save_date = "수정�", name = "�름", back = "뒤로", } menu_options_volume = { [50] = " 50% ", [100] = " 100% ", [30] = " 30% ", [60] = " 60% ", [90] = " 90% ", [10] = " 10% ", [20] = " 20% ", [40] = " 40% ", [80] = " 80% ", [70] = " 70% ", } menu_file_load = { [1] = " 게임 1 ", [2] = " 게임 2 ", [3] = " 게임 3 ", [4] = " 게임 4 ", [5] = " 게임 5 ", [6] = " 게임 6 ", [7] = " 게임 7 ", [8] = " 게임 8 ", } menu_file = { quit = " (%1%) 종료 ", save = " (%1%) 저장 ", load = " (%1%) 불러오기 ", restart = " (%1%) 재시작", } menu_options_wage_increase = { deny = " 거절 ", grant = " 승� ", } save_game_window = { caption = "저장 게임 (%1%)", new_save_game = "새로운 저장 게임", } rooms_long = { ultrascan = "울트�스캔실", research_room = "연구 부서", general = "�반", gps_office = "진료실", inflation = "팽창실", staffroom = "�� 휴게실", jelly_vat = "젤리 통", scanner = "스�너실", emergency = "�급실", decontamination = "오염 제거실", corridors = "복�", cardiogram = "심전�실", ward = "병�", training_room = "�육실", psychiatric = "정신과실", operating_theatre = "수술실", dna_fixer = "DNA 정정기", tongue_clinic = "늘어진 혀 �리닉", hair_restoration = "모발 재� �리닉", general_diag = "�반 진단실", pharmacy = "약국", fracture_clinic = "골절 �리닉", toilets = "화장실", electrolysis = "전기분해 �리닉", x_ray = "X-레�실", blood_machine = "혈액 분�실", } fax = { epidemic_result = { fine_amount = "정부는 국가� 비�사태를 선언했으며 당신�게 %d � 벌금� 청구합니다.", close_text = "만세!", hospital_evacuated = "보건 위�회는 당신� 병�� 비우는 수 밖� 없었습니다.", succeeded = { part_1_name = "건강 검사관� 당신� 기관� 악성� %s �(를) 겪고 있다는 소문� 들었습니다.", part_2 = "그러나 �러한 소문� 뒷받침하는 어떤 근거� 찾� 수 없었습니다.", }, compensation_amount = "정부는 �러한 거짓�� 당신� 병�� 명성� �친 악�향� 대해 %d 만�� 보�� 지불하기로 결정했습니다.", failed = { part_1_name = "전염성 %s �(를) 겪고 있다는 사실� 숨기려 함으로�", part_2 = "당신� 병� ��들� 질병� 병� 주변� 대중�게 �져나가�� 방치했습니다.", }, rep_loss_fine_amount = "언론사들� �를 집중 취재할 것�며, 당신� ��� 심�하게 훼�� 것입니다. �한, 당신� %d � 벌금� 물게 � 것입니다.", }, vip_visit_query = { choices = { invite = "공��으로 V.I.P. 를 초대", refuse = "�당한 핑계로 V.I.P. 를 회피", }, vip_name = "%s �(가) 당신� 병�� 방문하고 싶어합니다", }, vip_visit_result = { telegram = "전문!", remarks = { free_build = { [1] = "굉장히 멋진 병��네요! 그치만 � 제한 없� �렇게 운�하는게 �게 어려운�� 아니죠, 안그래요?", [2] = "내가 특별히 경제학��거나 한 것� 아니지만, 나�� �런 병�� 운�할 수 있겠네요.. 무슨��지 알죠?", [3] = "훌륭하게 운��는 병��네요. 그치만 불경기를 조심하세요! 아, 그러고보니... 당신� 그런 걱정 할 필요가 없군요.", }, [1] = "훌륭한 병��군요. 제가 다�� 많� 아프게 �면 거기로 �려다 주세요.", [2] = "바로 �런게 병��� 불릴 만 하죠.", [3] = "굉장한 병��네요. 몇몇 다른 병�들� 둘러보았으니 확실히 �할 수 있어요.", [4] = "괜찮게 운��는 병��군요. 초대해 주셔서 �사합니다.", [5] = "�. 확실히 나�지 않� �료 시설�로군요.", [6] = "좋� 병�� 방문하게 �어 �거웠습니다. �제 저와 함께 괜찮� 카레�� 드실 분?", [7] = "�, � 심한곳� 봤는걸요. 그래� 당신 병�� 좀 개선할 필요가 있겠어요.", [8] = "오 �런. 아플 때 갈만한 장소는 아니로군요.", [9] = "솔�히 �해서 그냥 �범한 병��네요. 사실 좀 � 낫길 바�어요.", [10] = "내가 �하러 방문했나 몰�요? 네시간 짜리 오페�를 보러가는 것보다� 나빴어요!", [11] = "거기서 본 것 때문� 메스�네요. 그게 병���고요? �지우리� � 가�죠!", [12] = "공�으로서 �런 냄새나는 소굴� 방문해야 하는 것� 질렸어요! �젠 그만�겠어요.", [13] = "�런 지저분할 �가. 어떻게든 � 병� 문� 닫게� 해야겠어요.", [14] = "�런 ��한 병�� 본 �� 없어요. �런 �신� 있나요!", [15] = "충격��군요. �런건 병���고 할 수� 없어요! 가서 한잔 해야겠어요.", }, rep_boost = "당신� ��� 올�습니다.", vip_remarked_name = "당신� 병�� 방문한 뒤, %s �(가) �했습니다:", cash_grant = "당신� 현찰로 %d � 지�금� 받았습니다.", rep_loss = "�로�해 당신� ��� 떨어졌습니다.", close_text = "병�� 방문해 주셔서 �사합니다.", }, disease_discovered_patient_choice = { need_to_build = "�것� 해결하기 위해서 당신� %s �(를) 지어야 합니다.", need_to_employ = "� �황� 해결하려면 %s �(를) 고용해야 합니다.", what_to_do_question = "� 환�를 어떻게 하시겠습니까?", guessed_percentage_name = "당신� �료진� 환�� �태� 대해서 추측할 수 밖� 없었습니다. � 환�는 %d � 확률로 %s 입니다.", choices = { send_home = "환�를 집으로 �려보냄.", research = "환�를 연구실로 보냄.", wait = "환�를 얼마�안 병� 안�서 기다리�� 함.", }, disease_name = "당신� �료진� 새로운 병� 발견했습니다. %s 입니다.", need_to_build_and_employ = "당신� %s �(를) 짓고 %s �(를) 고용하면 치료할 수 있습니다.", can_not_cure = "당신� � 질병� 치료할 수 없습니다.", }, emergency_result = { earned_money = "최대로 받� 수 있는 보너스 %d 중�서 당신� %d 만� 벌었습니다.", close_text = "나가려면 �릭.", saved_people = "당신� %d 명� 환�를 구했습니다. (� %d 명� �급환� 중)", }, disease_discovered = { discovered_name = "당신� �료진� 새로운 병� 발견했습니다. %s 입니다.", need_to_employ = "� �황� 해결하려면 %s �(를) 고용해야 합니다.", need_to_build_and_employ = "당신� %s �(를) 짓고 %s �(를) 고용하면 치료할 수 있습니다.", need_to_build = "�것� 해결하기 위해서 당신� %s �(를) 지어야 합니다.", close_text = "새로운 질병� 발견�었습니다.", can_cure = "당신� � 병� 치료할 수 있습니다.", }, emergency = { num_disease = "%d 명� 환�들� %s �(를) 앓고 있으며, 당장 치료해야만 합니다.", cure_possible_drug_name_efficiency = "당신� �미 치료� 필요한 장비와 능력� 갖추고 있습니다. 당신� 그들�게 필요한 약� 가지고 있습니다. %s 병� 대한 당신� 약� %d �센트� 효과가 있습니다.", cure_not_possible_employ = "당신� %s �(를) 고용해야 합니다.", free_build = "당신� 성공하면 ��� 오르겠지만, 실패할 경우 당신� ��� 심�하게 훼�� 것입니다.", cure_not_possible = "지금� � 질병� 치료할 수 없습니다.", num_disease_singular = "한 명� 환�가 %s �(를) 앓고 있으며, 당장 치료해야만 합니다.", cure_possible = "당신� 치료� 필요한 장비와 능력� 갖추고 있으며, � �급�황� 해결할 수 있� 것입니다.", choices = { accept = "예. � �급 환�들� 치료하겠습니다.", refuse = "아니오. � �급 �황� 해결하는 것� 거절합니다.", }, location = "%s �서 사건� �어났습니다.", cure_not_possible_build = "당신� %s �(를) 지어야 할 것입니다.", cure_not_possible_build_and_employ = "당신� %s �(를) 짓고 %s �(를) 고용해야 할 것입니다.", bonus = "� �급 �황� 해결하면 최대 %d � 보너스를 받� 수 있습니다. 하지만 실패한다면, 당신� ��� 심�하게 훼�� 것입니다.", }, choices = { decline_new_level = "얼마간 � 플레� 하기", accept_new_level = "다� 레벨로 넘어가기", return_to_main_menu = "메� 메뉴로 �아가기", }, epidemic = { cover_up_explanation_1 = "하지만, 당신� 전염병� 숨기고 �접 치료하려 하면, 당신� 보건 당국� 눈치채기 전� �염� 모든 환�를 제한� 시간 내� 치료해야 합니다.", cover_up_explanation_2 = "만약 건강 검사관� 방문하여 전염병 치료가 여전히 진행중� 것� 알게�면, 그는 당신� 병�� 강경한 조치를 취할 수 있습니다.", choices = { cover_up = "주어진 시간 내�, 그리고 아무� 병��서 나가기 전� 모든 �염� 환�들� 치료를 시�함", declare = "전염병� 선언함. 벌금� 물고 �� 하�� �수함.", }, disease_name = "당신� �사들� 유행성� %s �(를) 발견했습니다.", declare_explanation_fine = "당신� 전염병� �고 있다고 선언하면, %d � 벌금� 물고 ��� 하�하겠지만 당신� 모든 환�들� ��으로 백신� 맞게 �니다.", }, diagnosis_failed = { choices = { send_home = "환�를 집으로 �려보냄.", take_chance = "가능한 치료를 시�해봄.", wait = "진단 시설� 좀 � 짓는 �안 환�가 병� 안�서 기다리�� 함", }, situation = "병�� 모든 진단 장비들� ��해 보았지만 � 환�� 문제를 정확히 알아내지 못했습니다.", what_to_do_question = "� 환�를 어떻게 할까요?", partial_diagnosis_percentage_name = "%d �센트� 확률로 � 환�가 %s � 질병� 가지고 있다는 것� 알아냈습니다.", }, } confirmation = { abort_edit_room = "현재 방� 짓거나 편집하는 중입니다. 모든 기물들� 배치�면 완료�지만, 그렇지 않� 경우 방� 삭제� 것입니다. 계�하시겠습니까?", return_to_blueprint = "정�로 청사진 모드로 �아가기 �합니까?", restart_level = "정�로 현재 레벨� 처�부터 다시 시작하기 �합니까?", delete_room = "정�로 � 방� 삭제합니까?", quit = "종료를 선�했습니다. 정�로 게임� �내기 �합니까?", needs_restart = "� 설정� 바꾸려면 CorsixTH 를 재시작해야 합니다. 저장�지 않� 부분� 모� 잃어버리게 �니다. 정�로 바꾸기 �합니까?", overwrite_save = "� 슬롯� �미 다른 게임� 저장�어 있습니다. 정�로 �어쓰기 �합니까?", sack_staff = "정�로 � ��� 해고하기 �합니까?", replace_machine = "정�로 %s 기계를 $%d � 비용으로 �체합니까?", maximum_screen_size = "입력한 화면 �기가 3000 x 2000 보다 �니다. � 해��� 가능하지만, 플레�할만한 프레임 수를 유지하려면 하드웨어 성능� 충분히 좋아야 합니다. 계�하시겠습니까?", music_warning = "게임중� mp3 파�들� 재�하�� 하기 전�, smpeg.dll 파��나 그� ��하는 파�� 운� 체제� 설치�어 있어야 합니다. 그렇지 않으면 �악� 재��지 않� 것입니다. 계�하시겠습니까?", } months = { [1] = "1월", [2] = "2월", [3] = "3월", [4] = "4월", [5] = "5월", [6] = "6월", [7] = "7월", [8] = "8월", [9] = "9월", [10] = "10월", [11] = "11월", [12] = "12월", } dynamic_info = { patient = { emergency = "�급: %s", guessed_diagnosis = "추측� 진단: %s ", diagnosis_progress = "진단 프로세스", actions = { sent_to_other_hospital = "다른 병�� 소개받�", prices_too_high = "가격� 너무 비싸요 - 그냥 집� 갈래요", no_gp_available = "당신� 진료실� 짓기를 기다리고 있�", waiting_for_diagnosis_rooms = "당신� 진료 시설� � 짓기를 기다리고 있�", waiting_for_treatment_rooms = "당신� 치료 시설� 짓기를 기다리고 있�", dying = "죽어�!", no_diagnoses_available = "��� 진단할 방법� 없군요 - �아갈래요", epidemic_sent_home = "검사관� �해 �려보내�", cured = "치료�!", epidemic_contagious = "전염병� 걸렸어요", awaiting_decision = "당신� 결정� 기다리는 중", sent_home = "집으로 �려보내�", fed_up = "질려서 떠나는중", no_treatment_available = "치료할 방법� 없네요 - �아갈래요", on_my_way_to = "%s� 가는 중", queueing_for = "%s� 대기 중", }, diagnosed = "진단: %s ", }, health_inspector = "건강 검사관", vip = "VIP 방문�", object = { times_used = "사용� 횟수 %d", queue_size = "대기열 길� %d", strength = "힘 %d", queue_expected = "예� 대기열 %d", }, staff = { ability = "능력", psychiatrist_abbrev = "정신과 �사", actions = { going_to_repair = "다� 기계를 수리하러 가는 중: %s", fired = "해고�", waiting_for_patient = "환�를 기다리는 중", wandering = "그냥 �아다니는 중", heading_for = "다�으로 향하는 중: %s", }, tiredness = "피로�", }, } introduction_texts = { demo = "�모 병�� 오신 것� 환�합니다!//" .. "안타�게� �모 버전�서는 (커스텀 레벨� 제외하면) � 레벨만 플레�할 수 있습니다. 그렇지만, 여기�� 당신� 한�안 바�게 할만�� �거리는 충분히 있습니다! " .. "당신� 치료를 위해 다른 종류� 시설� 필요로 하는 다양한 질병� 만나게 � 것입니다. 가�� �급 �황� 발�할지� 모릅니다. 그리고 당신� 연구실� 지어 새로운 시설들� 연구해야 할 것입니다. " .. "당신� 목표는 $100,000 를 벌고, 병� 가치를 $70,000 만� 올리며, ��� 700 만� 유지하고, 방문하는 환�� 75% ��� 완치시키는 것입니다. " .. "당신� ��� 300 아래로 떨어지거나 40% ��� 환�들� 죽게 하지 마세요. 어� 하나�� 발�하면 당신� 게임�서 지게 �니다.//" .. "행운� 바�니다!", level1 = "당신� 첫 병�� 오신 것� 환�합니다!//" .. "접수대와 진료실� 짓고 접수�과 �사를 고용해서 � 곳� 제대로 �아가게� 하세요. " .. "그러고 나서 할�� �길 때까지 어� 정� 기다리세요. " .. "정신과를 짓고 정신과 �격� 있는 �사를 고용하는 것� 좋� ��입니다. " .. "약국� 짓고 간호사를 고용하는 것� 환�들� 치료하는 � 꼭 필요합니다. " .. "부� 머리 ��� 호소하는 환�들� 주�하세요 - 팽창실� 지으면 � 문제를 해결할 수 있� 것입니다. " .. "당신� 목표는 10 명� 환�를 치료하고 ��� 200 아래로 떨어지지 않�� 하는 것입니다.", level2 = "� 지역�는 � 다양한 병� �사리고 있습니다. " .. "� 많� 환�들� 치료할 수 있�� 병�� 구성하고, 연구 시설� 지� 계�� 세우세요. " .. "당신� 시설들� 깨�하게 유지하는 것� 잊지 �고, ��� 최대한 높� 유지하�� 노력하세요. 당신� 늘어진 혀를 발견하게 ���, 늘어진 혀 �리닉� 지어서 치료할 수 있습니다. " .. "�한, 심전�실� 지으면 새로운 질병들� 진단하는 � �움� � 것입니다. " .. "� � 가지 방� 짓기 위해서는 먼저 연구를 해야 합니다. 그리고 �제 당신� 병�� 확장하기 위한 새로운 토지를 구매할 수� 있습니다. 그러려면 마� 지�를 사용하세요. " .. "300 � ��과, $10,000 � �행 잔고, 그리고 40 명� 환�를 치료하는 것� 목표로 하세요.", level3 = "�번�는 부유한 지역� 당신� 병�� 세우게 � 것입니다. " .. "보건부는 � 곳�서 당신� �당한 ��� 남기기를 바�고 있습니다. " .. "처��는 어� 정� ��� 쌓아야 하겠지만, 병�� 안정�으로 �아가기 시작하면, 최대한 �� 많� 버는 것� 집중하세요. " .. "�한 �급 �황� 발�할 가능성� 있습니다. " .. "�급 �황�는 ��한 질병� 가진 많� 사람들� 한꺼번� 몰려오게 �니다. " .. "제한� 시간 내� 모�를 치료하게 �면 당신� ��� 올�가며 � 보너스를 받게 �니다. " .. "왕�병과 같� 질병� 발�할 수 있으며, 당신� 수술실� 짓고 �한 가까운 곳� 병�� 지� 예산� 마련해 �어야 할 것입니다. " .. "성공하기 위해 $20,000 만�� 버세요.", level4 = "모든 환�들� 행복하게 해주고, 그들� 가능한한 효율�으로 치료하며, 사��� 수는 정� 최소한으로 유지하세요. " .. "당신� ��� � 레벨� 성공� 좌우하므로, ��� 최대한 높게 유지하�� 노력하세요. " .. "�� 대해서는 너무 신경쓰지 마세요. �� ��� 높아지면 �연스럽게 따�오게 � �니다. " .. "�한, 당신� �제 �사들� 능력� 향�시키기 위해 그들� �육시키는 것� 가능합니다. " .. "�육받� �사들�, 어떤 질병�지 아주 확실치 않� 환�들� � 잘 치료할 수 있� 것입니다. " .. "500 ��� ��� 달성하세요.", level5 = "여기는 가지�색� 질병들� 치료하�� 아주 분주한 병�� � �니다. " .. "당신� 고용할 수 있는 �사들� 모� �대를 갓 졸업한 신입들�기 때문�, �육실� 지어서 �정 수준으로 훈련시키는 것� 필수입니다. " .. "�사들� �육할 수 있는 딱 세 명� 전문�들만 주어져 있으므로, �들� 행복하게 해 주세요. " .. "� 유�해야할 것�, 병�� 샌 안드로�드 단층 위� 지어져 있다는 것입니다. " .. "다시�해, � 병�� 언제나 지진� 위험� 노출�어 있습니다. " .. "지진� 당신� 기계들� ��시키고, 병�� �만하게 운�하는 것� 방해할 것입니다. " .. "성공하려면 ��� 400 만� 올리고, $50,000 를 예금하세요. �한, 200 명� 환�를 치료하세요.", level6 = "당신� 모든 지�� ��해서, �절한 �윤� 남기면서� 병약한 대중� 가진 온갖 질병들� 치료할 수 있�� �만하게 운��는 병�� 지으세요. " .. "� 곳 주변� 공기는 특별히 세균과 질병� 옮기는 � 좋다는 것� 알아�세요. " .. "병�� 정� 구�구� 깨�하게 유지하지 않으면, 환�들 사��서 아주 심�한 전염병� �는 것� 보게 � 것입니다. " .. "�� $150,000 만� 벌고, 병�� 가치가 $140,000 ��� ��� 하세요.", level7 = "�번�는 당신� 병�� 보건부� 철저한 �시 하� 놓여있게 � 것�므로, 당신� �� 충분히 많� 벌고 있다는 것� �행 잔고로 보여주고, ��� 올리�� 하세요. " .. "환�들� 사�하는 것� 최대한 피해야 합니다 - 사업하는� 전혀 �움� 안�니까요. " .. "최고� ��들� 고용하�� 하고, 필요한 장비들� 갖추�� 하세요. " .. "600 � ��과 $200,000 � 잔고를 얻으세요.", level8 = "얼마나 비용대비 효율� 높� 병�� 짓는 것� 당신�게 달렸습니다. " .. "� 주변 주민들� �당히 부유한 편�니, 할 수 있는 만� �어 짜내세요. " .. "사람들� 치료하는 것� 좋지만, �� 모으는 것� 목표�는 것� 기억해야 합니다. " .. "� 아픈 사람들� 아주 빈털터리로 만들어 버리세요. " .. "� 레벨� 완료하려면 재산� $300,000 만� 쌓아야 합니다.", level9 = "보건부� 재산� 좀 불려주고 장관님께 리무진� 한 대 뽑아드렸으니, �제 다시 몸� 아픈 사람들� 잘 �보는 훌륭한 병�� 짓는 �� 재개할 수 있습니다. " .. "여기서는 굉장히 다양한 문제들� 마주치게 � 것입니다. " .. "당신� 충분히 훈련받� ��들과 필요한 시설들� 갖춘다면, � 천사 같� 사람들� 회복시켜줄 수 있습니다. " .. "당신� 병� 가치가 $200,000 ��� �어야 하고, �행� $400,000 만�� �� 있어야 합니다. " .. "�것 보다 �다면 � 레벨� �리어 하는 것� 어림� 없습니다.", level10 = "� �네� 창�하는 질병들� 치료하는 것 �만 아니�, 보건부는 당신� �약품� 효용성� 높� 것� 요구합니다. " .. "보건 검사관� Ofsick 으로부터 불만� 접수�었기 때문�, 좋� ��� 주기 위해서는 당신� 약들� 엄청나게 잘 듣�� 만들어야 합니다. " .. "�한, 당신� 병�� 비난 받지 않�� 하는 것� 잊지 마세요. 사�� 수를 낮게 유지하세요. " .. "힌트를 주�면, 젤리통� 지� 공간� 미리 확보해 �는 것� 좋� �니다. " .. "모든 약� 효율� 80% ��으로 �어 올리고, 650 � ��과 $500,000 � 벌면 승리할 수 있습니다.", level11 = "당신� �극� 병�� 지� 기회를 얻었습니다. " .. "� 곳� 굉장히 �름난 지역�고, 보건부는 가능한 최고� 병�� 보고 싶어 합니다. " .. "우리는 당신� � �� 벌고, 엄청나게 높� ��� 얻으며 모든 질병들� 치료할 있기를 기대합니다. " .. "�건 굉장히 중요한 �입니다. " .. "성공하기 위해서는 당신� 특별한 사람� �어야 할 �니다. " .. "� 주�할 것�, � 지역�서 UFO 가 여러번 목격�었다는 것입니다. 당신� ��들� 뜻밖� 방문� 대비할 수 있�� 해 주세요. " .. "당신� 병�� $240,000 ��� 가치를 해야 하고, �행� $500,000 � �과 700 � ��� 얻어야 할 �니다.", level12 = "당신� 최고� �전� �면해 있습니다. " .. "지금까지� 당신� 성공� �게 ��� 받� 보건부가 당신� 최고� �리� 앉혀주었습니다. 그들� 당신� �다른 �극� 병�� 짓고, 막대한 �� 벌며 놀�운 ��� 얻기를 �합니다. " .. "�한 당신� 매입할 수 있는 모든 부지를 사들�고, 모든 질병� 치료하며 (정� '모든' 질병 ���요), 모든 �� 수�하기를 �합니다. " .. "�전해 볼 준비가 �었나요?" .. "$650,000 � 벌고, 750 명� 환�를 치료하며, 800 � ��� 얻어 � 레벨� �리어 하세요.", level13 = "병� 책임�로서� 놀�운 능력� 보고 '비밀 특수 관청'� '비밀 특수 부서'�서 당신�게 관심� 가지기 시작했습니다. " .. "그들� 당신�게 주는 보너스가 있습니다. �가 �실거리는 병��서 �를 없애야 합니다. " .. "당신� 잡역부들� �러운 것들� 치우기 전� 최대한 �들� �아 맞춰야 합니다. " .. "준비 �셨나요?", level14 = "�다른 �전입니다 - 전혀 예�치 못한 놀�운 병�� 짓는 것�죠. " .. "�것� 성공한다면, 당신� 승� 중� 승�로 기억� 것입니다. " .. "쉬운 �� � 것��고 기대하지 마세요. 당신� 마주하게 � 가장 어려운 과제가 � 테니까요. " .. "행운� 빕니다!", level15 = "좋아요, 그게 바로 병�� 운�하는 기본�� 방법입니다.//" .. "당신� �료진� 특정 환�들� 진단하기 위해서 �움� 필요로 할 수 있습니다." .. "�반 진단실 등과 같� 진단 설비들� � 많� 지어서 �료진� 정확한 진단� 할 수 있�� �울 수 있습니다.", level16 = "환�들� 진단한 후�는, 치료 시설과 �리닉 등� 지어서 환�들� 치료해야 합니다. " .. "약국�서부터 시작하는 것� 좋습니다. 약국�서 제대로 약� 조제하기 위해서는 간호사� 필요할 것입니다.", level17 = "마지막 당부입니다 - 당신� ���서 눈� 떼지 마세요. ��� 높아야 � 먼 곳� 환�들� �어올 수 있습니다. " .. "너무 많� 환�들� 죽게 하지 않고 �절히 행복�를 유지해 준다면 � 레벨� �리어 하는 � � 문제는 없� 것입니다!//" .. "�제 모든 것� 당신�게 달렸습니다. 행운� 빌어요.", } transactions = { severance = "퇴�금", research = "연구비", eoy_trophy_bonus = "연� 기� 보너스", buy_object = "기물 구매", cure_colon = "치료:", epidemy_coverup_fine = "전염병 �� 벌금", final_treat_colon = "최종 처방:", jukebox = "수입: 주�박스", loan_interest = "대출 ��", overdraft = "당좌 대월 ��", wages = "급여", loan_repayment = "대출 �환", personal_bonus = "개� 보너스 지급", drug_cost = "약물 비용", cure = "치료", heating = "난방비", treat_colon = "처방:", compensation = "정부 보�금", epidemy_fine = "전염병 벌금", buy_land = "토지 매입", research_bonus = "연구 보너스", general_bonus = "�반 보너스 지급", deposit = "처방 보�금", eoy_bonus_penalty = "연� 보너스/벌금", cheat = "� 치트", drinks = "수입: �료 ��기", vaccination = "백신", advance_colon = "가불:", vip_award = "VIP 현금 �여", hire_staff = "�� 고용", bank_loan = "�행 ��", machine_replacement = "기계 �환 비용", emergency_bonus = "�급 �황 보너스 지급", build_room = "방 건설", insurance_colon = "보험:", sell_object = "기물 �매", } object = { chair = "��", litter = "쓰레기", sofa = "소파", operating_table = "수술대", bed2 = "침대", bench = "벤치", scanner = "스�너", couch = "침�", blood_machine = "혈액 분�기", table1 = "��", video_game = "비디오 게임", lamp = "전등", op_sink2 = "세면대", door = "문", auto_autopsy = "��부검기", reception_desk = "접수대", hair_restorer = "모발 재�기", projector = "�사기", crash_trolley = "운반차", tv = "TV", ultrascanner = "울트�스�너", surgeon_screen = "외과 �사용 스�린", litter_bomb = "쓰레기 �탄", inflator = "팽창기", table2 = "��", desk = "책�", pool_table = "당구대", x_ray_viewer = "X-레� 뷰어", radiation_shield = "방사선 차�기", bed = "침대", swing_door2 = "여닫� 문", console = "콘솔", op_sink1 = "세면대", bookcase = "책장", drinks_machine = "��기", comfortable_chair = "안���", skeleton = "해골", computer = "컴퓨터", bin = "쓰레기통", pharmacy_cabinet = "약장", radiator = "�디��터", cast_remover = "�스 제거기", atom_analyser = "�� 분�기", plant = "화초", jelly_moulder = "젤리 주형기", cardio = "심전�", toilet = "변소", electrolyser = "전기분해기", fire_extinguisher = "소화기", bed3 = "침대", swing_door1 = "여닫� 문", lecture_chair = "강� ��", screen = "스�린", toilet_sink = "세면대", shower = "샤워", gates_of_hell = "지옥� 문", entrance_right = "우측 문", entrance_left = "좌측 문", slicer = "절단기", dna_fixer = "DNA-정정기", x_ray = "X-레�", cabinet = "서류 �비넷", } letter = { [1] = { [1] = "%s 님�게//", [2] = "멋지군요! 당신� � 병�� 운�하는 �� 훌륭하게 해냈습니다. 우리 보건부 고위 �사들� 당신� � � 프로�트를 진행할 ��� 있는지 �금합니다. 당신�게 딱 맞는 �리가 있습니다. 연봉� $%d 만� 드릴 수 있습니다. ��해 보시고 연� 부�드립니다.//", [3] = "%s 병��서 �해볼 ��� 있습니까?", }, [2] = { [1] = "%s 님�게//", [2] = "아주 좋아요! 당신� 병�� 뛰어나게 발전시켰습니다. 당신� 다른 �경과 새로운 �전� �한다면, 우리가 찾아낸 곳� 있습니다. � 제�를 반드시 수�해야 하는 것� 아니지만, 수�할만한 가치는 있� 것입니다. 급여는 $%d 입니다.//", [3] = "%s 병�� �리를 �하십니까?", }, [3] = { [1] = "%s 님�게//", [2] = "� 병��서 재�하는 중 당신� 대단히 � 성공� 거�었습니다. 우리는 당신� 가능성� 높� �가하며, 다른 곳�서� �지션� 제�하고� 합니다. 연봉� $%d 가 � 것�고, 당신� � 새로운 곳�서� �전� �기리�고 믿습니다.//", [3] = "%s 병��서� �하고 싶습니까?", }, [4] = { [1] = "%s 님�게//", [2] = "축하드립니다! 보건부� 우리는 병�� 운�하는 당신� 능력� � ��� 받고 있습니다. 당신� 확실히 보건계� � �입니다. 하지만 당신� 조금 � 어려운 �� 하기 �하지 않�까 싶군요. 당신� $%d � 급여를 받게 �겠지만, 결정� 당신 몫입니다.//", [3] = "%s 병��서 �하는 것� �미가 있습니까?", }, [5] = { [1] = "%s 님�게//", [2] = "오랜만�군요. � 매력�� 병�� 남기 �하는 당신� ��� 존중하지만, 그것� 대해 재고해보셨으면 합니다. 당신� 우리가 지정하는 다른 병�으로 옮겨서 �만하게 운�해 낸다면 $%d � 높� 급여를 드릴 �향� 있습니다.//", [3] = "%s 병�으로 지금 ��하시겠습니까?", }, [6] = { [1] = "%s 님�게//", [2] = "안녕하세요. 당신� �렇게 부드럽게 �아가는 멋진 병�� 있는 것� 얼마나 행복하게 여기는지는 잘 알지만, 우리는 당신� 커리어를 좀 � 키우는 것� 좋� 것��고 ��합니다. 물론 ��하실 경우 $%d 만�� �� 드리겠습니다. 고려해볼만 할 �니다.//", [3] = "%s 병�� �리를 수�하시겠습니까?", }, [7] = { [1] = "%s 님�게//", [2] = "안녕하십니까! 보건부는 당신� 지금� 병�� 머물겠다는 ��� 재고해볼 여지가 있는지 �금합니다. 당신� 멋진 병�� 높� �가하고 있지만, $%d � 급료를 받고 � �전�� �� 해보는 것� 어떨까 하고 ��합니다.//", [3] = "%s 병�� �지션� 수�하시겠습니까?", }, [8] = { [1] = "%s 님�게//", [2] = "안녕하세요. 지난 번� 당신� $%d � 급료와 최�� 조건으로 ��하겠�는 제안� 거절했습니다. 하지만 � 제안� 다시 고려해보실 것� 부� 드립니다. 단언컨대, 당신�게 꼭 맞는 완벽한 �리입니다.//", [3] = "%s 병��서 �하�는 제안� 수�하시겠습니까? 제발요?", }, [9] = { [1] = "%s 님�게//", [2] = "당신� 변화무�한 �료계 역사� 최고� 병� 책임�로서� �신� 능력� �명했습니다. �런 중대한 업�� 대한 보�� �미로, 당신� 모든 병�� 최고 책임�로 모시려 합니다. �것� 명예로운 �책�며, $%d � 연봉� 보장�니다. 당신� 위해 사람들� 색종� 테�프를 뿌리며 행진할 것�고, 당신� 어디를 가든지 사람들� �사를 표할 것입니다.//", [3] = "당신� �룩한 모든 것� �사합니다. 당신� �퇴 �활� �기기를 바�니다.//", [4] = "", }, [10] = { [1] = "%s 님�게//", [2] = "우리가 배정한 모든 병�� 성공�으로 운�한 것� 축하드립니다. �러한 놀�운 성과로 볼 때, 당신� 세계� 모든 �시들� �유롭게 방문할 �격� 있습니다. 당신� $%d 만�� 연금과 리무진� 방게 � 것�며, 다만 우리가 당신�게 �하는 것� � �시들� 여행하며 당신� �경하는 대중� 만나고, 여기 저기� 있는 병�� 고무시키는 것입니다.//", [3] = "우리는 당신� �랑스럽게 ��합니다. 단 한 사람� �명� 구하는 �� 헌신한 당신� 노력� �사를 표하지 않는 사람� 없습니다.//", [4] = "", }, [11] = { [1] = "%s 님�게//", [2] = "귀하� 커리어는 타� 모범� �며, 우리 모��게 ��� �니다. 그렇게 많� 병�� 운�하면서 모든 �� 훌륭히 처리해낸 것� �사를 표합니다. 우리는 당신�게 �� $%d � 급료를 지급하고� 하며, 단 한가지 부�드리는 것� 공� 오픈카를 타고 � �시 저 �시를 여행하며, 어떻게 그 짧� 기간�안 그렇게 많� �� �룰 수 있었는지 강연� 해주셨으면 합니다.//", [3] = "당신� 바른 ��� 가진 모든 사람들� 귀��며, 한 사람� 예외 없� 당신� 귀한 재산으로 여기고 있습니다.//", [4] = "", }, [12] = { [1] = "%s 님�게//", [2] = "모세 �후� 최고� 병� 책임�로서� 당신� 커리어가 �� 향해가고 있습니다. 그러나, �료계�서� 당신� �향력� 지대하며, 보건부는 당신�게 $%d � 급료를 지급하고 우리를 대표해서 여기 저기�서 행사� 참여하고 토�쇼 등� 출연해주셨으면 합니다. 온 세계가 당신으로 �해 떠들�한 � 때�, 우리를 �보하는 � � �움� � �니다!//", [3] = "� 제안� 꼭 수�해 주세요. �게 어려운 �� 아� 것�고, 승용차� 지급할 것�며 어디로 가시든지 경찰� �스코트가 �반� 것입니다.//", [4] = "", }, custom_level_completed = "잘했습니다! � 커스텀 레벨� 목표를 모� 달성했습니다!", dear_player = "%s 님�게", return_to_main_menu = "메� 메뉴로 �아갑니까, 아니면 계� 플레� 합니까?", } high_score = { categories = { deaths = "사� 수", total_value = "� 가치", money = "�", cures = "치료 수", visitors = "방문� 수", staff_number = "�� 수", cure_death_ratio = "치료 사� 비율", patient_happiness = "고� 만족�", staff_happiness = "�� 만족�", salary = "높� 임금", clean = "청결함", }, player = "플레�어", score = "�수", best_scores = "명예� 전당", worst_scores = "수치� 전당", killed = "죽임", } menu_file_save = { [1] = " 게임 1 ", [2] = " 게임 2 ", [3] = " 게임 3 ", [4] = " 게임 4 ", [5] = " 게임 5 ", [6] = " 게임 6 ", [7] = " 게임 7 ", [8] = " 게임 8 ", } build_room_window = { pick_department = "범주를 선�하세요", pick_room_type = "방 종류를 선�하세요", cost = "가격: ", } menu = { debug = " 디버그 ", display = " 화면 표시 ", file = " 파� ", options = " 옵션 ", charts = " �표 ", } CorsixTH-0.70.0/CorsixTH/Lua/languages/norwegian.lua000066400000000000000000005372061522247547500222210ustar00rootroot00000000000000--[[ Copyright (c) 2018 Erlend Mongstad, Ola Skogrand Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- READ BEFORE DOING ANY CHANGES ------------------------------------------------------------------------------- Since the norwegian language isn't in the original Theme Hospital game, this file is split in two sections (A and B). The first section contains all the new language strings, made by the Corsix-TH team, and the second section contains the override translation of all the original english strings. FORMATING AND NORWEGIAN LETTERS This file contains UTF-8 text. Make sure your editor is set to UTF-8. For the norwegian letters ø and Ø, you must use the old-style ö and Ö instead. That is because the letters ø and Ø is not included in the original ingame-font. ------------------------------------------------------------------------------- Table of Contents ------------------------------------------------------------------------------- -- SECTION A - NEW STRINGS 1. Global settings 2. Faxes 3. Objects 4. Menu 5. Adviser 6. Dynamic info 7. Tooltip -- SECTION B - OLD STRINGS (OVERRIDE) Huge section with all original strings, translated from english. -----------------------------------------------------------------------------]] -- TODO GENERAL: Skal det benevnes "spill", "brett", "nivå" eller noe annet? ------------------------------------------------------------------------------- -- SECTION A - NEW STRINGS ------------------------------------------------------------------------------- -- 1. Global settings (do not edit!) --Font("unicode") --todo: Add unicode/freefont Font("cp437") Language("Norsk", "Norwegian", "nb", "nob") Inherit("english") Encoding(utf8) IsArabicNumerals(true) -- 2. Faxes fax = { choices = { return_to_main_menu = "Gå tilbake til hovedmenyen", accept_new_level = "Fortsett til neste nivå", decline_new_level = "Fortsett å spille litt til", }, } letter = { dear_player = "Kjære %s", custom_level_completed = "Bra gjort! Du har fullfört alle utfordringene på dette brukerdefinerte brettet.!", return_to_main_menu = "Vil du gå tilbake til hovedmenyen eller fortsette å spille?", } install = { title = "--------------------------------- CorsixTH Setup ---------------------------------", exit = "Avslutt", th_directory = "CorsixTH trenger en kopi av datafilene fra et ekte Theme Hospital spill (eller demo) for å kjöre. Vennligst velg plasseringen til originalspillet nedenfor.", ok = "Ok", cancel = "Avbryt", } -- 3. Objects object = { litter = "Söppel", rathole = "Rottehull", } -- 4. Menu menu_options = { lock_windows = " LÅS VINDUER ", edge_scrolling = " KANTSCROLLING ", adviser_disabled = " RÅDGIVER ", warmth_colors = " VARMEFARGER", --Todo: Open for suggestions for a better word for it (warmth colours). } menu_options_game_speed.pause = " PAUSE " -- The demo does not contain this string menu_file.restart = " (%1%) RESTART " menu_debug = { jump_to_level = " GÅ TIL NIVÅ ", transparent_walls = " (%1%) GJENNOMSIKTIGE VEGGER ", limit_camera = " BEGRENS KAMERA ", disable_salary_raise = " DEAKTIVER LÖNNSÖKNINGER ", make_debug_patient = " LAG TESTPASIENT ", cheats = " (%1%) JUKSEKODER ", make_debug_fax = " LAG DEBUG FAKS ", dump_strings = " (%1%) DUMP SPRÅKSTRENGER ", dump_gamelog = " (%1%) DUMP SPILL-LOGGEN ", map_overlay = " KARTOVERLEGG ", sprite_viewer = " SPRITE-VISNING ", lua_console = " (%1%) LUA KONSOLL ", calls_dispatcher = " ANROPSEKSPEDERING ", } menu_debug_overlay = { none = " INGEN ", flags = " FLAGG ", positions = " POSISJONER ", heat = " TEMPERATUR ", byte_0_1 = " BYTE 0 & 1 ", byte_floor = " BYTE GULV ", byte_n_wall = " BYTE N VEGG ", byte_w_wall = " BYTE W VEGG ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " TOMT ", } -- 5. Adviser adviser = { room_forbidden_non_reachable_parts = "Ved å plassere et rom her vil noen områder på sykehuset bli utilgjengelig.", praise = { plants_are_well = "Det er fint. Du tar godt vare på plantene dine. Storartet.", few_have_to_stand = "Nesten ingen trenger å stå i Sykehuset ditt. Pasientene dine vil være glade for det.", plenty_of_benches = "Det er masse sitteplasser, så det er ikke noe problem.", plants_thriving = "Veldig bra. Plantene dine blomstrer. De ser fantastiske ut. Fortsett slik, så vinner du kanskje en trofé for dem." }, } -- 6. Dynamic info dynamic_info.patient.actions.no_gp_available = "Venter på at du skal bygge Allmennpraksis" dynamic_info.staff.actions.heading_for = "På vei til %s" dynamic_info.staff.actions.fired = "Sparket" -- 7. Tooltip tooltip = { fax = { close = "Lukk dette vinduet uten å slette meldingen", }, message = { button = "Venstreklikk for å lese faksen", button_dismiss = "Venstreklikk for å åpne faksen, höyreklikk for å ignorere den", }, options_window = { fullscreen_button = "Klikk for å gå i fullskjermmodus", width = "Skriv inn önsket skjermbredde", height = "Skriv inn önsket skjermhöyde", change_resolution = "Endre opplösningen til dimensjonene du har angitt til venstre.", language = "Velg %s som språk", back = "Lukk vinduet med innstillinger", fullscreen = "Om spillet skal kjöre i fullskjerm eller vindusmodus", cancel = "Returner uten å endre opplösning", apply = "Bruk den innskrevne opplösningen", language_dropdown_item = "Velg %s som språk", select_language = "Velg språk", select_resolution = "Velg en ny opplösning", resolution = "Opplösningen spillet skal kjöres i.", folder_button = "Mappeinnstillinger", customise_button = "¨Flere innstillinger", --todo: mer utfyllende beskrivelse? var "More settings you can change to customise your game play experience" capture_mouse = "Slå av eller på låsing av musepeker i spillvinduet", }, audio_window = { audio_button = "Slå av eller på all lyd", audio_toggle = "Slå av eller på", }, folders_window = { --todo: skrive mer konsekvent på "se etter", "velg" osv. browse_font = "Se etter en annen font-fil ( nåværende beliggenhet: %1% )", screenshots_location = "Skjermdumper er normalt lagret i en mappe sammen med konfigurasjonsfila. Om du önsker kan du plassere den et annet sted.", browse_music = "Se etter en annen lokasjon for musikk ( nåværende beliggenhet: %1% ) ", music_location = "Velg en lokasjon for mp3-musikk. Mappen må være laget på forhånd.", data_location = "Banen til den originale Theme Hospital-installasjonen, som du trenger for å spille CorsixTH", browse_data = "Se etter en annen lokasjon for Theme Hospital-installasjonen ( nåværende beliggenhet: %1%)", savegames_location = "Normalt er de lagrede spillene lagret i en mappe sammen med konfigurasjonsfila. Om du önsker kan du plassere den et annet sted.", back = "Lukk denne menyen og gå tilbake", browse_saves = "Se etter en annen lokasjon for dine lagrede spill ( nåværende beliggenhet: %1% ) ", browse = "Se etter mappelokasjon", browse_screenshots = "Se etter en annen lokasjon for skjermdumper ( nåværende beliggenhet: %1% ) ", not_specified = "Ingen mappe er valgt enda!", font_location = "Lokasjon for en font som kan vise Unicode-bokstaver som er nödvendig for ditt språk. Om denne ikke velges så er bokstavtyåene begrenset til de som er i Theme Hospital.", reset_to_default = "Tilbakestill mappen til standard lokasjon ( %1% )", default = "Standard lokasjon", no_font_specified = "Ingen font-fil er valgt enda!", }, update_window = { download = "Gå til nedlastingssiden for den seneste versjonen av CorsixTH", ignore = "Ignorer oppdateringen denne gangen. Du vil få en ny beskjed neste gang du starter CorsixTH", }, menu_list_window = { back = "Lukk dette vinduet", name = "Klikk her for å sortere listen etter navn", save_date = "Klikk her for å sortere listen etter siste endringer", }, save_game_window = { save_game = "Overskriv spill %s", new_save_game = "Skriv navn på nytt spill", }, custom_game_window = { free_build = "Huk av denne boksen om du vil spille uten penger og uten bestemte forutsetninger for å vinne eller tape", --todo: finne en bedre oversettelse eller omskrive load_selected_level = "Last og spill valgt brett", choose_game = "Klikk på et brett for å lese mer om det", }, load_game_window = { load_game = "Last spill %s", load_game_number = "Last spill %d", load_autosave = "Last autolagring", }, calls_dispatcher = { assigned = "Denne boksen er huket av om noen er tildet oppdraget.", task = "Liste over oppdrag - Klikk på oppdrag for å se lokasjonen", close = "Lukk ekspedisjonsvinduet", }, cheats_window = { close = "Lukk juksekodevinduet", cheats = { decrease_prices = "Senk alle priser med 50 % (min. 50 %)", increase_prices = "Hev alle priser med 50 % (maks. 200 %)", end_month = "Gå til slutten av denne måneden.", emergency = "Lag en nödssituasjon.", win_level = "Vinn dette nivået.", create_patient = "Lag en pasient på enden av kartet.", vip = "Lag en VIP.", money = "Sett 10,000 i bankkontoen din.", lose_level = "Tap dette nivået.", all_research = "Fullförer all forskning.", end_year = "Gå til slutten av dette året.", earthquake = "Forårsaker et jordskjelv.", epidemic = "Lager en smittsom pasient som kan forårsake en epidemi", toggle_infected = "Slå av eller på ikoner for smittsomme pasienter for den aktive, oppdagede epidemien", }, }, customise_window = { --todo kanskje en opprensking her. få det mer konsekvent. movies = "Slår av alle videoer i spillet", paused = " I Theme Hospital ville spilleren kun få lov til å bruke toppmenyen om spillet var satt til pause. Dette er standard i CorsixTH også, men ved å slå denne på, så er alle bevegelser lov", back = "Gå tilbake", intro = "Slå av eller på introfilmen. Den andre filminnstillingen må også være på for å spille av introfilmen hver ganger du starter spillet", volume = "Om en fysisk volum ned-knapp åpner Medisinboka i spillet, så kan du slå på denne for å endre hurtigtasten til Shift+C", fractured_bones = "På grunn av mangelfulle animasjoner har vi stilt standardoppsettet til å slå av kvinnelige benbrudd. For å tillate dette, slå denne av", aliens = "På grunn av manglende animasjoner har vi slått av pasienter med Utenomjordisk DNA slik at de bare kan komme fra nödstilfeller. For å tillate pasienter med Utenomjordisk DNA å gå til sykehuset, slå denne av.", average_contents = "Om du önsker at spillet skal huske hvilke objekter du vanligvis kjöper til hver rom (gjennomsnittlig), så bör du slå på denne", }, new_game_window = { easy = "Om du ikke har erfaring med simulatorspill er dette tingen for deg", medium = "Om du er usikker på hva du skal velge, så er dette mellomtingen", hard = "Om du er komfortabel med slike spill og önsker utfordring, bör du velge dette.", tutorial = "Om du önsker litt hjelp for å komme i gang må du merke av denne boksen.", cancel = "Hmm... Det var ikke meningen å starte et nytt spill!", difficulty = "Velg vanskelighetsgrad du vil spille på", start = "Start spillet med de valgte innstillingene", player_name = "Skriv inn hva du vil hete i spillet", }, lua_console = { textbox = "Skriv Lua-kode du vil kjöre her", execute_code = "Kjör koden", close = "Lukk konsollen", }, save_map_window = { map = "Overskriv brett %s", -- Overskriv/lagre? new_map = "Skriv inn navn for nytt brett", }, information = { close = "Lukk informasjonsdialogen", }, totd_window = { previous = "Vis forrige tips", next = "Vis neste tips", }, -- Research policy tooltip research_policy = { research_progress = "Progresjon mot den nesten oppdagelsen i denne kategorien: %1%/%2%", no_research = "Ingen forskning blir utfört i denne kategorien for öyeblikket", }, -- Build room window build_room_window = { room_classes = { diagnosis = "Velg diagnoserom", treatment = "Velg generelle behandlingsrom", clinic = "Velg spesielle klinikker", facilities = "Velg fasiliteter", }, cost = "Kostnad for gjeldende rom", close = "Avbryt prosessen og returner til spillet", }, -- Toolbar toolbar = { bank_button = "Venstreklikk for Bankmanager, höyreklikk for Kontoutskrift", balance = "Din Balanse", reputation = "Ditt omdömme: ", -- NB: no %d! Append " ([reputation])". date = "Dato", rooms = "Bygg rom", objects = "Kjöp gjenstander", edit = "Endre rom/gjenstander", hire = "Ansett personale", staff_list = "Personalbehandling", town_map = "Områdekart", casebook = "Medisinbok", research = "Forskning", status = "Status", charts = "Diagrammer", policy = "Sykehuspolicy", }, -- Hire staff window hire_staff_window = { doctors = "Vis Leger tilgjengelig på arbeidsmarkedet", nurses = "Vis Sykepleiere tilgjengelig på arbeidsmarkedet", handymen = "Vis Vaktmestere tilgjengelig på arbeidsmarkedet", receptionists = "Vis Resepsjonister tilgjengelig på arbeidsmarkedet", prev_person = "Vis forrige person", next_person = "Vis neste person", hire = "Ansett person", cancel = "Avbryt", doctor_seniority = "Legens erfaring (Turnuslege, Doktor, Konsulent)", staff_ability = "Evner", salary = "Lönnskrav", qualifications = "Legens spesialisering", surgeon = "Kirurg", psychiatrist = "Psykiater", researcher = "Forsker", }, -- Buy objects window buy_objects_window = { price = "Pris på gjenstand", total_value = "Total verdi på kjöpte gjenstander", confirm = "Kjöp gjenstand(er)", cancel = "Avbryt", increase = "Kjöp en til av denne gjenstanden", decrease = "Kjöp en mindre av denne gjenstanden", }, -- Staff list staff_list = { doctors = "Se en oversikt over dine Leger", nurses = "Se en oversikt over dine Sykepleiere", handymen = "Se en oversikt over dine Vaktmestere", receptionists = "Se en oversikt over dine Resepsjonister", happiness = "Viser hvordan humöret på dine ansatte er", tiredness = "Viser hvor trött dine ansatte er", ability = "Viser evnene til dine ansatte", salary = "Den enkeltes gjeldende lönn", happiness_2 = "Den ansattes moral", tiredness_2 = "Den ansattes tretthetsnivå", ability_2 = "Den ansattes evner", prev_person = "Velg forrige side", next_person = "Velg neste side", bonus = "Gi denne ansatte 10% bonus", sack = "Si opp denne ansatte", pay_rise = "Hev lönnen til denne ansatte med 10%", close = "Lukk og returner til spillet", doctor_seniority = "Legens erfaring", detail = "Oppmerksom på detaljer", view_staff = "Vis ansatt på jobb", surgeon = "Kvalifisert Kirurg", psychiatrist = "Kvalifisert Psykiater", researcher = "Kvalifisert Forsker", surgeon_train = "%d%% ferdig med fordypning innen kirurgi", -- %d (percentage trained) psychiatrist_train = "%d%% ferdig med fordypning innen psykiatri", -- %d (percentage trained) researcher_train = "%d%% ferdig med fordypning innen forskning", -- %d (percentage trained) skills = "Ekstra evner", }, -- Queue window queue_window = { num_in_queue = "Antall pasienter i köen", num_expected = "Antall pasienter Resepsjonisten forventer i köen innen kort tid", num_entered = "Antall pasienter som er behandlet i dette rommet så langt", max_queue_size = "Maksimal lengde på köen som Resepsjonisten skal etterstrebe", dec_queue_size = "Senk maksimal kölengde", inc_queue_size = "Ök maksimal kölengde", front_of_queue = "Dra en pasient hit for å stille han/henne fremst i köen", end_of_queue = "Dra en pasient hit for å stille han/henne bakerst i köen", close = "Lukk vindu", patient = "Dra en pasient for å flytte han/henne i köen. Höyreklikk på en pasient for å sende han/henne hjem eller til et konkurrerende sykehus", patient_dropdown = { reception = "Henvis pasient til Resepsjonist", send_home = "Send pasienten hjem", hospital_1 = "Henvis pasienten til et annet sykehus", hospital_2 = "Henvis pasienten til et annet sykehus", hospital_3 = "Henvis pasienten til et annet sykehus", }, }, -- Main menu main_menu = { new_game = "Start en ny karriere", -- todo: Nytt ord fore karriere (campaign)? custom_campaign = "Start en ny karriere skapt av andre spillere", -- todo: Nytt ord fore karriere (campaign)? custom_level = "Bygg sykehuset ditt på et brett skapt av andre spillere", -- todo: forbedre tekst? load_game = "Last inn et lagret spill", continue = "Fortsett på sist spilte spill", network = "Start nettverksspill", map_edit = "Lag ditt eget brett", quit = "Du er på vei til å avslutte spillet. Er du sikker på at du vil dette?", options = "Endre spillets innstillinger", exit = "Nei, nei, vær så snill, ikke avslutt!", load_menu = { load_slot = " SPILL [slotnumber] ", -- NB: no %d! Append " [slotnumber]". empty_slot = " TOM ", }, }, -- Window general window_general = { cancel = "Avbryt", confirm = "Bekreft", }, -- Custom campaign custom_campaign_window = { choose_campaign = "Velg en karriere for å lese mer om den", start_selected_campaign = "Last det förste brettet i denne karrieren", }, -- Patient window patient_window = { close = "Lukk vindu", graph = "Klikk for å veksle mellom graf med personens helse og personens behandlingshistorikk", happiness = "Personens humör", thirst = "Personens törste", warmth = "Personens temperatur", casebook = "Vis detaljer for pasientens sykdom", send_home = "Send pasienten hjem fra sykehuset", center_view = "Sentrer personen i skjermbildet", abort_diagnosis = "Send personen til behandling istedenfor å vente til diagnosen er ferdigstilt", queue = "Se köen pasienten befinner seg i", }, -- window staff_window = { name = "Den ansattes navn", close = "Lukk vindu", face = "Ansiktet til personen - Klikk for å administrere de ansatte", happiness = "Humörnivå", tiredness = "Tretthetsnivå", ability = "Evner", doctor_seniority = "Stilling (Turnuslege, Doktor, Konsulent)", skills = "Spesialisering", surgeon = "Kirurg", psychiatrist = "Psykiater", researcher = "Forsker", salary = "Månedslönn", center_view = "Venstreklikk for å finne den ansatte, höyreklikk for å bla gjennom de ansatte.", sack = "Si opp", pick_up = "Plukk opp", }, -- Machine window machine_window = { name = "Navn", close = "Lukk vindu", times_used = "Antall gangen maskinen er brukt", status = "Maskinstatus", repair = "Kall på Vaktmester for å fikse maskinen", replace = "Erstatt maskin", }, -- Handyman window -- Apparently handymen have their own set of strings (partly) containing "handyman". -- We could just get rid of this category and include the three prios into staff_window. handyman_window = { name = "Vaktmesterens navn", -- contains "handyman" close = "Lukk vindu", face = "Vaktmesterens ansikt", -- contains "handyman" happiness = "Humörnivå", tiredness = "Tretthetsnivå", ability = "Evner", prio_litter = "Be Vaktmesteren om å prioritere rengjöring av gulv höyere", -- contains "handyman" prio_plants = "Be Vaktmesteren om å prioritere vanning av planter höyere", -- contains "handyman" prio_machines = "Be Vaktmesteren om å prioritere reparasjon av maskiner höyere", -- contains "handyman" salary = "Månedslönn", center_view = "Sentrer i skjermbildet", -- contains "handyman" sack = "Si opp", pick_up = "Plukk opp", parcel_select = "Steder hvor Vaktmesteren utförer oppgaver. Klikk for å endre innstilling.", }, -- Place objects window place_objects_window = { cancel = "Avbryt", buy_sell = "Kjöp/Selg gjenstander", pick_up = "Plukk opp en gjenstand", confirm = "Bekreft", }, -- Casebook casebook = { up = "Rull oppover", down = "Rull nedover", close = "Lukk medisinbok", reputation = "Ryktet behandlingen eller diagnosen har i nærområdet", treatment_charge = "Pris for behandling", earned_money = "Totalt opptjente penger frem til i dag", cured = "Antall kurerte pasienter", deaths = "Antall pasienter drept som fölge av behandlingen", sent_home = "Antall pasienter som har snudd og gått hjem", decrease = "Senk pris", increase = "Ök pris", research = "Trykk her for å bruke forskingsbudsjettet for spesialisering til å forske på denne behandlingen", cure_type = { drug = "Denne behandlingen krever medisin", drug_percentage = "Denne behandlingen krever medisin - din er %d%% effektiv", -- %d (effectiveness percentage) psychiatrist = "En Psykiater kreves for behandling", surgery = "Denne sykdommen krever en operasjon", machine = "Denne sykdommen krever en maskin for behandling", unknown = "Du vet ikke hvordan du skal behandle denne sykdommen enda", }, cure_requirement = { possible = "Du kan gjennomföre behandling", research_machine = "Du må forske på maskiner for å gjennomföre behandlingen", build_room = "Du må bygge et rom for å gjennomföre behandlingen", -- NB: no %s! hire_surgeons = "Du trenger to Kirurger for å gjennomföre behandlingen", hire_surgeon = "Du trenger en Kirurg til for å gjennomföre behandlingen", hire_staff = "Du må ansette en %s for å gjennomföre behandlingen", -- %s (staff type) hire_staff_old = "Du må ansette en %s for å gjennomföre behandlingen", build_ward = "Du må bygge en Sykestue for å kunne gjennomföre behandlingen", ward_hire_nurse = "Du trenger en Sykepleier på Sengeavdelingen for å gjennomföre behandlingen", not_possible = "Du kan ikke håndtere denne behandlingen enda", }, }, -- Statement statement = { close = "Lukk kontoutskriften", }, -- Research research = { close = "Gå ut av forskningsavdelingen", cure_dec = "Senk prioritering av forskning på behandlingsutstyr", diagnosis_dec = "Senk prioritering av forskning på diagnoseutstyr", drugs_dec = "Senk prioritering av forskning på medisiner", improvements_dec = "Senk prioritering av forskning på forbedringer", specialisation_dec = "Senk prioritering av forskning på spesialiseringer", cure_inc = "Ök prioritering av forskning på behandlingsutstyr", diagnosis_inc = "Ök prioritering av forskning på diagnoseutstyr", drugs_inc = "Ök prioritering av forskning på medisiner", improvements_inc = "Ök prioritering av forskning på forbedringer", specialisation_inc = "Ök prioritering av forskning på spesialiseringer", allocated_amount = "Penger satt av til forskning", }, -- Graphs graphs = { close = "Gå ut av diagramvinduet", scale = "Skala på diagram", money_in = "Vis/skjul Inntekter", money_out = "Vis/skjul Utgifter", wages = "Vis/skjul Lönninger", balance = "Vis/skjul Balanse", visitors = "Vis/skjul Besökende", cures = "Vis/skjul Kurerte", deaths = "Vis/skjul Dödsfall", reputation = "Vis/skjul Omdömme", }, -- Town map town_map = { people = "Vis/Skjul mennesker", plants = "Vis/Skjul planter", fire_extinguishers = "Vis/Skjul brannslukningsapparat", objects = "Vis/Skjul gjenstander", radiators = "Vis/Skjul radiatorer", heat_level = "Temperatur", heat_inc = "Skru opp temperaturen", heat_dec = "Skru ned temperaturen", heating_bill = "Varmekostnader", balance = "Balanse", close = "Lukk områdekart", }, -- Jukebox. jukebox = { current_title = "Jukebox", close = "Lukk jukebox", play = "Spill jukebox", rewind = "Spol tilbake jukebox", fast_forward = "Spol fremover jukebox", stop = "Stopp jukebox", loop = "Repeter jukebox", }, -- Bank Manager bank_manager = { hospital_value = "Nåværende verdi på sykehuset ditt", balance = "Din balanse i banken", current_loan = "Gjeldende lån i banken", repay_5000 = "Betal tilbake 5000 til banken", borrow_5000 = "Lån 5000 av banken", interest_payment = "Månedlige rentekostnader", inflation_rate = "Årlig inflasjon", interest_rate = "Årlig rente", close = "Lukk bankmanageren", insurance_owed = "Penger %s skylder deg", -- %s (name of debitor) show_graph = "Vis forventet tilbakebetalingsplan fra %s", -- %s (name of debitor) graph = "Forventet tilbakebetalingsplan fra %s", -- %s (name of debitor) graph_return = "Returner til forrige visning", }, -- Status status = { percentage_cured = "Du må kurere %d% besökende på sykehuset ditt. Nå har du kurert %d%", thirst = "Gjennomsnittlig törste på personene på ditt sykehus", close = "Lukk oversikten", population_chart = "Figur som viser hvor stor andel av lokalbefolkningen hvert sykehus tiltrekker seg", win_progress_own = "Vis progresjon i forhold til kravene for dette nivået", reputation = "Omdömmet ditt må være minst %d. Nå er det %d", population = "Du må ha %d%% av befolkningen til å bruke ditt sykehus", warmth = "Gjennomsnittlig temperatur på personene på ditt sykehus", percentage_killed = "Du må drepe færre enn %d%% av dine besökende. Så langt har du tatt livet av %d%%", balance = "Din bankbalanse må være på minst %d. Nå er den %d", value = "Sykehuset ditt må være verdt $%d. Så langt er det verdt $%d", win_progress_other = "Vis progresjon i forhold til kravene for dette nivået for %s", -- %s (name of competitor) num_cured = "Du må kurere %d mennesker. Så langt har du kurert %d", happiness = "Gjennomsnittlig humör på personene på ditt sykehus", }, -- Policy policy = { close = "Lukk sykehuspolicy", staff_leave = "Klikk her for å få personale som ikke er opptatt til å hjelpe kollegaer som trenger det", staff_stay = "Klikk her for å få personale til å bli i rommene du plasserer dem i", diag_procedure = "Om en Leges stilte diagnose er mindre sikker enn SEND HJEM prosenten, vil pasienten bli sendt hjem. Om diagnosen er sikrere enn GJETT KUR prosenten, vil pasienten sendes til aktuell behandling", diag_termination = "En pasients diagnostisering vil fortsette helt til Legene er så sikker som AVBRYT PROSESS prosenten, eller til alle diagnosemaskiner er forsökt på pasienten", staff_rest = "Hvor trött personalet må være för de kan hvile", }, -- Pay rise window pay_rise_window = { accept = "Imötekom kravene", decline = "Ikke godta kravene - Si opp istedenfor", }, -- Watch watch = { hospital_opening = "Byggetid: Dette er tiden du har igjen för sykehuset åpner. Klikk på ÅPNE-knappen, så vil sykehuset åpne umiddelbart.", emergency = "Nödstilfelle: Tid som gjenstår til å behandle alle akutte pasienter.", epidemic = "Epidemi: Tid som gjenstår til å skjule epidemien. Når tiden er ute ELLER en smittsom pasient forlater sykehuset, så kommer en Helseinspektör på besök. Knappen skrur av og på vaksineringsmodus. Klikk på pasienter for å få en Sykepleier til å vaksinere dem.", }, -- Rooms rooms = { gps_office = "Pasientene får sin förste konsultasjon og tilhörende resultater på Allmennpraksisen", psychiatry = "Psykiatrien kurerer gale pasienter og hjelper til med diagnostiseringen av andre pasienter, men trenger en Lege med spesialisering innenfor Psykiatri", ward = "Sengeavdelinger er nyttige for både diagnostisering og behandling. Pasienter blir sendt hit for observasjon men også for overvåkning etter operasjoner. Sengeavdelingen krever en Sykepleier", operating_theatre = "Operasjonssalen krever to Leger med spesialisering innenfor Kirurgi", pharmacy = "Sykepleieren skriver ut medisiner på apoteket for å kurere pasienter", cardiogram = "En Lege bruker Kardio for å diagnostisere pasienter", scanner = "En Lege bruker Skanneren for å diagnostisere pasienter", ultrascan = "En Lege bruker Ultraskanneren for å diagnostisere pasienter", blood_machine = "En Lege bruker Blodmaskinen for å diagnostisere pasienter", x_ray = "En Lege bruker Röntgen for å diagnostisere pasienter", inflation = "En Lege bruker Pumperommet for å behandle pasienter med Ballonghode", dna_fixer = "En Lege bruker DNA-maskinen for å behandle pasienter med Utenomjordisk DNA", hair_restoration = "En Lege bruker Hårklinikken for å behandle pasienter med Flintskalle", tongue_clinic = "En Lege bruker Tungekutteren for å behandle pasienter med Lös tunge", fracture_clinic = "En Sykepleier bruker Benbruddsklinikken for å reparere Benbrudd", training_room = "Et klasserom med en Konsulent kan brukes til å lære opp andre Leger", electrolysis = "En Lege bruker Elektrolyseklinikken for å behandle pasienter med Pelssyndrom", jelly_vat = "En Lege bruker Gelétönnen for å behandle pasienter med Gelésyndrom", staffroom = "Leger, Sykepleiere og Vaktmestre bruker personalrommet for å hvile og heve humöret", -- rehabilitation = S[33][27], -- unused general_diag = "En Lege bruker trallen for å stille grunnleggende diagnose på pasienter. Billig og ofte veldig effektivt", research_room = "Leger med spesialisering innen Forskning kan forske frem nye medisiner og maskiner på Forskningsavdelingen", toilets = "Bygg toaletter for å få pasientene til å stoppe å skitne til sykehuset!", decontamination = "En Lege bruker Saneringsdusjen for å behandle pasienter med Alvorlig Stråling", }, -- Objects objects = { -- NB: most objects do not have a tooltip because they're not (extra-)buyable desk = "Pult: en Lege kan bruke pulten til PC-en sin.", cabinet = "Kabinett: inneholder pasientdata, notater og forskningsdokumenter.", door = "Dör: personer åpner og lukker disse en del.", bench = "Benk: gir pasienter en plass å sitte og gjör ventingen mer komfortabel.", table1 = S[40][ 6], -- unused chair = "Stol: Pasienter sitter her og diskuterer sine problemer.", drinks_machine = "Brusautomat: hindrer pasientene å bli törste og genererer inntekter.", bed = "Seng: virkelig syke pasienter ligger i disse.", inflator = "Pumpe: Kurerer pasienter med Ballonghode.", pool_table = "Biljardbord: Hjelper personalet ditt med å slappe av.", reception_desk = "Resepsjon: trenger en Resepsjonist som kan henvise pasienter videre.", table2 = S[40][13], -- unused & duplicate cardio = S[40][14], -- no description scanner = S[40][15], -- no description console = S[40][16], -- no description screen = S[40][17], -- no description litter_bomb = "Söppelbombe: saboterer konkurrenters sykehus", couch = S[40][19], -- no description sofa = "Sofa: ansatte som slapper av på Personalrommet vil sitte stille i en sofa så fremt det ikke er en bedre måte å slappe av på.", crash_trolley = S[40][21], -- no description tv = "TV: sörg for at personalet ditt ikke går glipp av favorittprogrammet sitt.", ultrascanner = S[40][23], -- no description dna_fixer = S[40][24], -- no description cast_remover = S[40][25], -- no description hair_restorer = S[40][26], -- no description slicer = S[40][27], -- no description x_ray = S[40][28], -- no description radiation_shield = S[40][29], -- no description x_ray_viewer = S[40][30], -- no description operating_table = S[40][31], -- no description lamp = S[40][32], -- unused toilet_sink = "Vask: dine hygienebevisste pasienter kan vaske sine tilgrisede hender i disse. Om det ikke er nok vasker, blir pasientene sure.", op_sink1 = S[40][34], -- no description op_sink2 = S[40][35], -- no description surgeon_screen = S[40][36], -- no description lecture_chair = "Forelesningsstol: dine Legestudenter sitter her og tar notater, kjeder seg og rabler ivrig. Jo flere stoler du har, jo större kan klassen være.", projector = S[40][38], -- no description bed2 = S[40][39], -- unused duplicate pharmacy_cabinet = "Apotekskap: medisinbeholdningen din finnes her", computer = "Datamaskin: genialt forskningsverktöy", atom_analyser = "Atomanalyser: plassert i Forskningsavdelingen, gjör denne gjenstanden hele forskningsprosessen raskere.", blood_machine = S[40][43], -- no description fire_extinguisher = "Brannslukningsapparat: minimerer faren for feil i dine maskiner.", radiator = "Radiator: sörger for at sykehuset ditt ikke blir kaldt.", plant = "Plante: holder pasientenes humör oppe og renser luften.", electrolyser = S[40][47], -- no description jelly_moulder = S[40][48], -- no description gates_of_hell = S[40][49], -- no description bed3 = S[40][50], -- unused duplicate bin = "Söppelbötte: pasientene kaster söppelet her.", toilet = "Toalett: pasientene, æh..., bruker dette.", swing_door1 = S[40][53], -- no description swing_door2 = S[40][54], -- no description shower = S[40][55], -- no description auto_autopsy = "Obduksjonsautomat: flott hjelpemiddel for å oppdage nye behandlingsmetoder.", bookcase = "Bokhylle: referansemateriell for Leger.", video_game = "Videospill: la personalet ditt slappe av med Hi-Octane.", entrance_left = S[40][59], -- no description entrance_right = S[40][60], -- no description skeleton = "Skjelett: brukt til undervisning og Halloween.", comfortable_chair = S[40][62], -- no description rathole = "Hjemmet til en rottefamilie som syns sykehuset ditt er mökkete nok til å bo i.", litter = "Söppel: Slengt på gulvet av en pasient, fordi vedkommende ikke fant en söppelbötte i nærheten.", }, -- TOOLTIP END } -- STRINGS BELOW ARE NOT YET FULLY SORTED -- Misc misc.not_yet_implemented = "(ikke implementert enda)" misc.no_heliport = "Enten er ingen sykdommer utforsket enda, eller så er det ingen heliport ved dette sykehuset." -- Main menu main_menu = { new_game = "Ny karriere", custom_level = "Valgfritt brett", load_game = "Last inn", options = "Innstillinger", version = "Versjon: ", continue = "Fortsett siste spill", savegame_version = "Lagringsversjon: ", --todo: en bedre oversettelse eller omskriving? custom_campaign = "Brukerskapt karriere", -- todo: en bedre oversettelse eller omskriving? map_edit = "Brettkonstruksjon", exit = "Avslutt", } load_game_window = { caption = "Last inn spill", } custom_game_window = { caption = "Brukerdefinert spill", free_build = "Bygg fritt", load_selected_level = "Start", } save_game_window = { caption = "Lagre spill", new_save_game = "Nytt spill", } menu_list_window = { back = "Tilbake", name = "Navn", save_date = "Endret", } options_window = { fullscreen = "Fullskjerm", width = "Bredde", height = "Höyde", change_resolution = "Endre opplösning", back = "Tilbake", cancel = "Avbryt", custom_resolution = "Egendefinert...", option_on = "På", option_off = "Av", caption = "Innstillinger", language = "Språk", apply = "Bruk", resolution = "Opplösning", folder = "Mapper", customise = "Tilpass", capture_mouse = "Lås musepeker", } audio_window = { audio = "Global lyd", back = "Tilbake", } folders_window = { screenshots_location = "Velg banen du vil bruke for skjermdumper", music_label = "MP3", --todo: annet ordvalg? "MP3's" back = "Tilbake", savegames_label = "Lagrede spill", --todo: annet ordvalg? "saves" caption = "Mappebane", --todo: annet ordvalg? "folder locations" savegames_location = "Velg banen du vil bruke for lagrede spill", font_label = "Font", new_th_location = "Her kan du spesifisere en ny bane for Theme Hospital. Spillet startes på nytt når du velger en ny bane.", screenshots_label = "Skjermdumper", music_location = "Velg banen du vil bruke for musikk", data_label = "TH-data", --todo: annet ordvalg? "TH Data" } update_window = { current_version = "Gjeldende versjon:", ignore = "Hopp over og gå til hovedmenyen", new_version = "Ny versjon:", caption = "Oppdatering tilgjengelig!", download = "Gå til nedlastingsside", } font_location_window = { caption = "Velg font (%1%)", } calls_dispatcher = { repair = "Reparere %s", summary = "%d Tilkallinger; %d tildelt", close = "Lukk", watering = "Vanne @ %d,%d", staff = "%s - %s", } cheats_window = { close = "Lukk", caption = "Juksekoder", warning = "Advarsel: Du vil ikke få noen bonuspoeng på slutten av nivået om du bruker juksekoder!", cheated = { no = "Juksekoder benyttet: Nei", yes = "Juksekoder benyttet: Ja", }, cheats = { decrease_prices = "Senk prisene", increase_prices = "Hev prisene", end_month = "Slutten av måneden", emergency = "Lag nödstilfelle", win_level = "Vinn nivå", create_patient = "Lag pasient", vip = "Lag VIP", money = "Penger", lose_level = "Tap nivå", all_research = "All forskning", end_year = "Slutten av året", earthquake = "Lag jordskjelv", epidemic = "Lag smittsom pasient", toggle_infected = "Slå av/på smitte-ikoner", }, } new_game_window = { easy = "Turnuslege (Lett)", medium = "Lege (Medium)", hard = "Konsulent (Vanskelig)", tutorial = "Innföring", cancel = "Avbryt", option_on = "På", option_off = "Av", difficulty = "Vanskelighetsgrad", caption = "Karriere", player_name = "Spillernavn", start = "Start", } customise_window = { movies = "Global videostyring", option_on = "På", option_off = "Av", back = "Tilbake", paused = "Bygging i pause", intro = "Spill introvideo", volume = "Hurtigtast volumsenking", caption = "Egendefinerte innstillinger", fractured_bones = "Benbrudd", average_contents = "Gjennomsnittlig rominnhold", aliens = "Utenomjordiske pasienter", } lua_console = { execute_code = "Kjör", close = "Lukk", } errors = { dialog_missing_graphics = "Beklager, datafilene i demoen tillater ikke denne dialogen.", save_prefix = "Feil under lagring av spill: ", load_prefix = "Feil under lasting av spill: ", load_quick_save = "Spillet kunne ikke laste inn sist hurtiglagring, siden den ikke eksisterer. Vi har ikke tenkt til å lage en for deg!", map_file_missing = "Kunne ikke finne kartfilen %s for dette nivået!", minimum_screen_size = "Vennligst sett opplösningen til minst %dx%d.", unavailable_screen_size = "Skjermopplösningen du valgte er ikke tilgjengelig i fullskjermmodus.", alien_dna = "Merk: Det er ingen originale animasjoner for utenomjordiske pasienter som sitter, åpner eller banker på dörer osv. Utenomjordiske vil bare komme på besök om det er slått på i levelfila", --todo: bedre beskrivelse? levelfila? var "NOTE: There are no animations for Alien patients for sitting down, opening or knocking on doors etc. So, like with Theme Hospital to do these things they will appear to change to normal looking and then change back. Patients with Alien DNA will only appear if they are set to in the level file" fractured_bones = "Merk: De originale animasjonene for kvinnelige personer med benbrudd er ikke perfekte", no_games_to_contine = "Det fins ingen lagrede spill", could_not_load_campaign = "Lasting av brettet feilet: %s", -- todo: skal det kalles "brett" her? could_not_find_first_campaign_level = "Kunne ikke finne det förste brettet i denne karrieren: %s", -- todo: skal det hete karrieren her? } confirmation = { needs_restart = "Å forandre denne innstillingen krever en omstart av CorsixTH. Spill som ikke er lagret vil gå tapt. Er du sikker på at du vil endre innstillingen?", abort_edit_room = "Du holder på å bygge eller endre et rom. Om alle obligatoriske gjenstander er plassert ut, ferdigstilles rommet. Om ikke, slettes rommet. Fortsette?", } information = { custom_game = "Velkommen til CorsixTH. Kos deg med dette egenutviklede kartet!", no_custom_game_in_demo = "Unnskyld, men i demoversjonen kan du ikke spille egenutviklede kart.", cannot_restart = "Dette spillet ble dessverre lagret för restartfunksjonen ble implementert.", very_old_save = "Det har vært mange oppdateringer siden du startet på dette nivået. For å være sikker på at alle funksjoner virker riktig, vennligst vurder å starte nivået på nytt.", cheat_not_possible = "Juksekoder kan ikke brukes på dette nivået. Du klarer ikke engang å jukse!", level_lost = { "Kjipt! Du klarte ikke brettet. Bedre lykke neste gang!", "Grunnen til at du tapte:", reputation = "Omdömmet ditt gikk under %d.", balance = "Banksaldoen din (minus lån) falt under %d.", percentage_killed = "Du drepte mer enn %d prosent av pasientene.", --bruke %-tegn? cheat = "Dette var ditt eget valg, eller trykket du bare på feil knapp? Du klarer ikke engang å jukse skikkelig. Det var ikke så morsomt likevel?", }, } -- Tips totd_window = { tips = { "Ethvert sykehus trenger en Resepsjon og en Allmennpraksis for å fungere. Etter det avhenger det av hvilke pasienter som besöker sykehuset. Apotek er som regel en god start.", "Maskiner som f.eks. Pumpen i Pumperommet trenger vedlikehold. Ansett en Vaktmester eller to for å vedlikeholde maskinene, ellers risikerer du å skade ansatte og pasienter.", "Etter en stund blir personalet ditt trött. Sörg for å bygge et Personalrom så de kan hvile seg.", "Plasser radiatorer nok til å holde pasientene og personalet varme, ellers blir de fort misfornöyd. Bruk kartet for å lokalisere områder på sykehuset ditt som trenger mer varme.", "En Lege sine evner påvirker hvor langt tid han bruker på å stille diagnose, samt kvaliteten på diagnosen. Plasser en flink Lege i Allmennpraksisen, da trenger du færre diagnoserom.", "Turnusleger og Doktorer kan utvikle sine evner ved å bli undervist av en Konsulent i Klasserommet. Om Konsulenten har spesielle kvalifikasjoner (Kirurgi, Psykiatri eller Forskning) vil han også lære sine elever dette.", "Har du prövd å slå inn det europeiske nödnummeret (112) på faksen? Sörg for at lyden er på!", "Du kan forandre noen innstillinger som opplösning og språk i innstillinger-vinduet som du finner på hovedmenyen eller på menyen inne i spillet.", "Hvert nivå har en rekke utfordringer som må fullföres för du kan gå videre til neste nivå. Sjekk statusen på utfordringene for nivået i Statusvinduet.", "Om du vil endre eller fjerne et rom, kan du gjöre det med å klikke på Endre Rom knappen på panelet i bunnen av skjermen.", "Du kan alltids finne fort ut hvilke pasienter som venter på å slippe inn i de ulike rommene, ved å flytte musepekeren over rommet.", "Klikk på dören til et rom for å se köen. Du kan gjöre nyttige finjusteringer her, som å organisere köen og sende pasienter til andre lignende rom.", "Irritert personale vil spörre om lönnspålegg jevnlig. Sörg for at dine ansatte jobber i komfortable omgivelser for å hindre at det skjer.", "Pasientene svetter av spenning når de venter på behandling, og gjerne enda mer om du fyrer opp varmen. Plasser noen Brusautomater i strategiske punkter på sykehuset for å tjene noen ekstra lapper.", "Du kan avbryte diagnose-prosessen ganske tidlig og gjette på riktig behandling, dersom du allerede har truffet på tilfeller av sykdommen. Vær oppmerksom på at dette öker sjangsen for feilbehandling. Du vil vel ikke avlive pasientene dine, vel?", "Nödtilfeller kan gjöre deg rik, så sant du har kapasitet til å behandle pasientene i tide.", "Har du valgt norsk språk, men ser likevel engelsk tekst rundt omkring i spillet? Hjelp oss å oversette resten av spillet til norsk!", "CorsixTH-teamet er ute etter forsterkninger! Er du interessert i å programmere, oversette, eller kanskje lage grafikk til CorsixTH? Kontakt oss gjennom Forum, Nyhetsbrev eller IRC (corsix-th på freenode).", "Om du finner feil eller mangler, vær snill å rapportere det gjennom vår feilmeldingstjeneste: th-issues.corsix.org", }, previous = "Forrige tips", next = "Neste tips", } -- Mapmaker? save_map_window = { -- Usikker på om denne hörer til her, eller om den skal flyttes? caption = "Lagre brett (%1%)", new_map = "Nytt brett", } -- Custom campaign custom_campaign_window = { caption = "Brukerskapte karrierer", -- todo: Forbedre? Sjekke om det passer når spillet har implementer dette. start_selected_campaign = "Start karriere", } map_editor_window = { -- Sjekkes når de er implementert. Mulig hjelpeteksten må korrigeres! pages = { pond = "Dam", hedgerow = "Hekk", inside = "Innside", -- Riktig? Innvendig? outside = "Utside", road = "Vei", delete_wall = "Slett vegger", parcel_9 = "Tomt 9", camera_1 = "Kamera 1", camera_2 = "Kamera 2", camera_3 = "Kamera 3", camera_4 = "Kamera 4", foliage = "Beplantning", west_wall = "Vestvegg", north_wall = "Nordvegg", helipad = "Helikopterplass", parcel_0 = "Tomt 0", parcel_1 = "Tomt 1", parcel_2 = "Tomt 2", parcel_3 = "Tomt 3", parcel_4 = "Tomt 4", parcel_5 = "Tomt 5", parcel_6 = "Tomt 6", -- Riktig å bruke "tomt"? parcel_7 = "Tomt 7", parcel_8 = "Tomt 8", paste = "Innlimingsområde", heliport_1 = "Helikopterplass 1", heliport_2 = "Helikopterplass 2", heliport_3 = "Helikopterplass 3", heliport_4 = "Helikopterplass 4", }, } ------------------------------------------------------------------------------- -- SECTION B - OLD STRINGS (OVERRIDE) ------------------------------------------------------------------------------- -- Staff class -- each of these corresponds to a sprite staff_class = { nurse = "Sykepleier", doctor = "Lege", handyman = "Vaktmester", receptionist = "Resepsjonist", surgeon = "Kirurg", } -- Staff titles -- these are titles used e.g. in the dynamic info bar staff_title = { receptionist = "Resepsjonist", general = "Generelt", -- unused? nurse = "Sykepleier", junior = "Turnuslege", doctor = "Doktor", surgeon = "Kirurg", psychiatrist = "Psykiater", consultant = "Konsulent", researcher = "Forsker", } -- Pay rises pay_rise = { definite_quit = "Du kan ikke gjöre noe for å beholde meg lenger. Jeg er ferdig her!", regular = { "Jeg er helt utslitt. Jeg trenger en god pause, pluss en lönnsökning på %d om du ikke vil se meg gå rundt å sutre i korridorene.", -- %d (rise) "Jeg er veldig trött. Jeg trenger hvile og en lönnsökning på %d, totalt %d. Fiks det nå, din tyrann!", -- %d (rise) %d (new total) "Kom igjen. Jeg jobber som en hund her. Gi meg en bonus på %d og jeg blir på sykehuset ditt.", -- %d (rise) "Jeg er så deppa. Jeg krever en lönnsökning på %d, som blir totalt %d, ellers er jeg ferdig her.", -- %d (rise) %d (new total) "Foreldrene mine sa at medisinyrket ville gi meg mye penger. Så gi meg en lönnsökning på %d, ellers blir jeg spillutvikler istedenfor.", -- %d (rise) "Nå er jeg sint. Gi meg en anstendig lönn. Jeg tror en ökning på %d skal gjöre susen.", -- %d (rise) }, poached = "Jeg er blitt tilbudt %d av %s. Om ikke du gir meg det samme, så stikker jeg.", -- %d (new total) %s (competitor) } -- Staff descriptions staff_descriptions = { good = { [1] = "Veldig rask og flittig arbeider. ", [2] = "Veldig pliktoppfyllende. Meget omsorgsfull. ", [3] = "Er meget allsidig. ", [4] = "Vennlig og alltid i godt humör. ", [5] = "Ekstremt utholden. Jobber dag og natt. ", [6] = "Utrolig höflig og har gode manerer. ", [7] = "Utrolig talentfull og dyktig. ", [8] = "Er meget opptatt av å prestere på jobben. ", [9] = "Er en perfeksjonist som aldri gir opp. ", [10] = "Hjelper alltid mennesker med et smil. ", [11] = "Sjarmerende, höflig og hjelpsom. ", [12] = "Godt motivert og dedikert til jobben. ", [13] = "Snill av natur og meget hardt arbeidende. ", [14] = "Lojal og vennlig. ", [15] = "Omtenksom og til å stole på i akutte situasjoner. ", }, misc = { [1] = "Spiller golf. ", [2] = "Dykker etter kamskjell. ", [3] = "Lager isskulpturer. ", [4] = "Drikker vin. ", [5] = "Kjörer rally. ", [6] = "Bedriver strikkhopping på fritiden. ", [7] = "Samler på ölbrikker. ", [8] = "Liker å stage-dive. ", [9] = "Morer seg med fjert-surfing. ", [10] = "Liker å utvide elver. ", [11] = "Destillerer whisky. ", [12] = "Gjör-det-selv ekspert. ", [13] = "Liker franske kunstfilmer. ", [14] = "Spiller mye Theme Park. ", [15] = "Har sertifikat klasse C. ", [16] = "Deltar i motorsykkelrace. ", [17] = "Spiller klassisk fiolin og cello. ", [18] = "Entusiastisk tog-vraker. ", [19] = "Hundeelsker. ", [20] = "Hörer på radio. ", [21] = "Bader ofte. ", [22] = "Instruktör i bambusfletting. ", [23] = "Lager såpeholdere av grönnsaker. ", [24] = "Deltids minerydder. ", [25] = "Quizvert. ", [26] = "Samler på splinter fra 2.verdenskrig. ", [27] = "Liker å ommöblere. ", [28] = "Hörer på rave og trip-hop musikk. ", [29] = "Dreper insekter med deodorantspray. ", [30] = "Piper ut dårlige standupartiser. ", [31] = "Gjör innkjöp for sykehusrådet. ", [32] = "Hemmelighetsfull gartner. ", [33] = "Smugler falske klokker. ", [34] = "Vokalist i et rockeband. ", [35] = "Forguder tv-titting på dagtid. ", [36] = "Fisker etter örret. ", [37] = "Lurer turister på museum. ", }, bad = { [1] = "Langsom og masete. ", [2] = "Lat og lite motivert. ", [3] = "Dårlig trent og ubrukelig. ", [4] = "Dum og slitsom. Er en reserve. ", [5] = "Lav utholdenhet. Har en dårlig holdning. ", [6] = "Döv som et papir. Lukter kål. ", [7] = "Skitner til jobben. Tar lite ansvar. ", [8] = "Konsentrasjonsvansker og lett distrahert. ", [9] = "Stresset og gjör mye feil. ", [10] = "Lett antennelig. Sitter inne med mye hat. ", [11] = "Uforsiktig og uheldig. ", [12] = "Bryr seg ikke om jobben. Inaktiv. ", [13] = "Dumdristig og bryr seg lite. ", [14] = "Slu, utspekulert og baksnakker andre. ", [15] = "Arrogant og ovenpå. ", }, } -- Staff list staff_list = { morale = "MORAL", tiredness = "TRETTHET", skill = "FERDIGHETER", total_wages = "TOTAL LÖNN", } -- Objects object = { desk = "Kontorpult", cabinet = "Arkivskap", door = "Dör", bench = "Benk", table1 = "Bord", -- unused object chair = "Stol", drinks_machine = "Brusautomat", bed = "Seng", inflator = "Pumpe", pool_table = "Biljardbord", reception_desk = "Resepsjon", table2 = "Bord", -- unused object & duplicate cardio = "Kardio", scanner = "Skanner", console = "Konsoll", screen = "Skjerm", litter_bomb = "Söppelbombe", couch = "Sofa", sofa = "Sofa", crash_trolley = "Tralle", tv = "TV", ultrascanner = "Ultraskanner", dna_fixer = "DNA-fikser", cast_remover = "Gipsfjerner", hair_restorer = "Hårrenoverer", slicer = "Tungekutter", x_ray = "Röntgen", radiation_shield = "Strålingsvern", x_ray_viewer = "Röntgenfremviser", operating_table = "Operasjonsbord", lamp = "Lampe", -- unused object toilet_sink = "Vask", op_sink1 = "Vask", op_sink2 = "Vask", surgeon_screen = "Forheng", lecture_chair = "Forelesningsstol", projector = "Prosjektor", bed2 = "Seng", -- unused duplicate pharmacy_cabinet = "Medisinskap", computer = "Datamaskin", atom_analyser = "Atomanalyser", blood_machine = "Blodmaskin", fire_extinguisher = "Brannslukningsapp.", radiator = "Radiator", plant = "Plante", electrolyser = "Elektrolysator", jelly_moulder = "Gelétönne", gates_of_hell = "Helvetesporten", bed3 = "Seng", -- unused duplicate bin = "Söppelbötte", toilet = "Toalett", swing_door1 = "Svingdör", swing_door2 = "Svingdör", shower = "Saneringsdusj", auto_autopsy = "Obdksjonsautomat", bookcase = "Bokhylle", video_game = "Videospill", entrance_left = "Inngang venstre dör", entrance_right = "Inngang höyre dör", skeleton = "Skjelett", comfortable_chair = "Komfortabel stol", } -- Place objects window place_objects_window = { drag_blueprint = "Juster blåkopien til du er fornöyd med störrelsen", place_door = "Velg hvor dören skal være", place_windows = "Lag noen vinduer om du vil. Bekreft når du er ferdig", place_objects = "Plasser gjenstandene. Bekreft når du er fornöyd", confirm_or_buy_objects = "Du kan ferdigstille rommet, evt. fortsette å kjöpe eller flytte gjenstander", pick_up_object = "Klikk på gjenstander for å plukke de opp, eller gjör et annet valg fra boksen", place_objects_in_corridor = "Plasser gjenstander i korridoren", } -- Competitor names competitor_names = { [1] = "ORAKEL", [2] = "HALL", [3] = "KOLOSS", [4] = "SLAMSUGER", [5] = "HELLIG", [6] = "DYPE TANKER", [7] = "ZEN", [8] = "LEO", [9] = "AKIRA", [10] = "SAM", [11] = "CHARLIE", [12] = "JANNE", [13] = "ARTUR", [14] = "MAGNUS", [15] = "MAMMA", [16] = "STEFAN", [17] = "MATS", [18] = "JONAS", [19] = "DANIEL", [20] = "OLIVIA", [21] = "NILS", [22] = "THOR", [23] = "RISK", [24] = "NIC", } -- Months months = { "Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des", } -- Date format date_format.daymonth = "%1% %2:months%" -- Graphs graphs = { money_in = "Inntekter", money_out = "Utgifter", wages = "Lönninger", balance = "Balanse", visitors = "Besökende", cures = "Kurerte", deaths = "Dödsfall", reputation = "Omdömme", time_spans = { "1 år", "12 år", "48 år", } } -- Transactions transactions = { --null = S[8][ 1], -- not needed wages = "Lönninger", hire_staff = "Ansett personale", buy_object = "Kjöp inv.", build_room = "Bygg rom", cure = "Kur", buy_land = "Kjöp område", treat_colon = "Behandling:", final_treat_colon = "Siste behandling:", cure_colon = "Kurert:", deposit = "Behandlingsinnskudd", advance_colon = "Forskudd:", research = "Forskningskostnader", drinks = "Inntekt: Brusautomater", jukebox = "Inntekt: Jukebox", -- unused cheat = "Monopolpenger", heating = "Oppvarmingskostnader", insurance_colon = "Forsikring:", bank_loan = "Banklån", loan_repayment = "Bankinnskudd", loan_interest = "Lånerente", research_bonus = "Forskningsbonus", drug_cost = "Medisinkostnader", overdraft = "Strafferente", severance = "Oppsigelseskostnader", general_bonus = "Bonus Generell", sell_object = "Salg inventar", personal_bonus = "Bonusutbetaling Personale", emergency_bonus = "Bonusutbetaling Nödstilfeller", vaccination = "Vaksinering", epidemy_coverup_fine = "Opprydningskostnader epidemiutbrudd", compensation = "Statlig erstatning", vip_award = "Pengepremier VIP", epidemy_fine = "Epidemiböter", eoy_bonus_penalty = "Årsbonus/böter", eoy_trophy_bonus = "Årets trofé bonus", machine_replacement = "Utskiftning av maskiner", } -- Level names level_names = { "Giftigby", "Soveby", "Storestad", "Frimpton-på-Sjöen", "Lettåker", "Varberget", "Langtbort", "Halvestrad", "Austby", "Eggtorp", "Kvekkestad", "Snylteby", "Polartorp", "Lille Riseby", "Gravland", } -- Town map town_map = { chat = "Bykart Chat", for_sale = "Til salgs", not_for_sale = "Ikke til salgs", number = "Tomt nummer", owner = "Tomt eier", area = "Tomt område", price = "Tomt pris", } -- Rooms short -- NB: includes some special "rooms" -- reception, destroyed room and "corridor objects" rooms_short = { reception = "Resepsjon", destroyed = "Ödelagt", corridor_objects = "Korridorgjenstander", gps_office = "Allmennpraksis", psychiatric = "Psykiatri", ward = "Sykestue", operating_theatre = "Operasjonssal", pharmacy = "Apotek", cardiogram = "Kardio", scanner = "Skanner", ultrascan = "Ultraskanner", blood_machine = "Blodmaskin", x_ray = "Röntgen", inflation = "Pumperom", dna_fixer = "DNA-klinikk", hair_restoration = "Hårklinikk", tongue_clinic = "Tungeklinikk", fracture_clinic = "Benbruddsklinikk", training_room = "Klasserom", electrolysis = "Elektrolyseklinikk", jelly_vat = "Gelétönne", staffroom = "Personalrom", -- rehabilitation = "Rehabilitering", -- unused general_diag = "Generell diagnose", research_room = "Forskningsavd.", toilets = "Toalett", decontamination = "Saneringsklinikk", } -- Rooms long rooms_long = { general = "Generell", -- unused? emergency = "Nödstilfelle", corridors = "Korridorer", gps_office = "Allmennpraksis", psychiatric = "Psykiatri", ward = "Sykestue", operating_theatre = "Operasjonssal", pharmacy = "Apotek", cardiogram = "Kardiorom", scanner = "Skannerrom", ultrascan = "Ultraskanner", blood_machine = "Blodmaskinrom", x_ray = "Röntgenrom", inflation = "Pumperom", dna_fixer = "DNA-klinikk", hair_restoration = "Hårklinikk", tongue_clinic = "Tungeklinikk", fracture_clinic = "Benbruddsklinikk", training_room = "Klasserom", electrolysis = "Elektrolyseklinikk", jelly_vat = "Gelétönnerom", staffroom = "Personalrom", -- rehabilitation = "Rehabiliteringsrom", -- unused general_diag = "Generell diagnose", research_room = "Forskningsavd.", toilets = "Toalett", decontamination = "Saneringsklinikk", } room_descriptions = { ultrascan = { [1] = "Ultraskanner//", [2] = "Ultraskanneren er virtuelt i toppklassen innenfor diagnoseutstyr. Den koster mye, men det lönner seg om du vil ha superb diagnostisering på ditt sykehus.//", [3] = "Ultraskanneren kan kun håndteres av ".. staff_class.doctor .."r. Den krever også vedlikehold. ", }, gp = { [1] = "Allmennpraksis//", [2] = "Dette er det fundamentale diagnoserommet på ditt sykehus. Nye pasienter blir sendt hit for å finne ut hva som feiler dem. Videre blir de sendt enten til dypere diagnostisering eller til et rom hvor de kan få behandling for sine plager. Du trenger sannsynligvis flere Allmennpraksiser om det oppstår lange köer. Jo större rommet er og jo mer utstyr du plasserer i rommet, desto bedre presterer Legen. Dette gjelder også for alle andre rom.//", [3] = "Allmennpraksisen kan kun håndteres av Leger. ", }, fracture_clinic = { [1] = "Benbruddsklinikk//", [2] = "Pasienter som uheldigvis har Benbrudd vil bli behandlet her. Gipsfjerneren bruker en kraftig industrilaser for å kutte vekk gipsen, og forårsaker bare litt smerte for pasienten.//", [3] = "Benbruddsklinikken kan kun håndteres av Sykepleiere. Den krever også vedlikehold. ", }, tv_room = { [1] = "TV ROOM NOT USED", }, inflation = { [1] = "Pumperom//", [2] = "Pasienter med sitt smertefulle, men dog humoristiske Ballonghode, må behandles på Pumperommet. Her blir hodet stukket hull på, trykket forsvinner, og en Lege pumper hodet opp til riktig trykknivå.//", [3] = "Pumperommet kan kun håndteres av Leger. Regelmessig vedlikehold er også viktig. ", }, jelly_vat = { [1] = "Gelétönne//", [2] = "Pasienter med den snodige sykdommen gelésyndrom må skjelve seg fram til gelétönnerommet, for så å bli plassert i gelétönnen. Dette vil kurere dem på en måte som ikke er helt begripelig for det medisinske faget.//", [3] = "Gelétönnen kan kun håndteres av Leger. Det kreves også vedlikehold. ", }, scanner = { [1] = "Skanner//", [2] = "Pasienter får veldig nöyaktig diagnostisert sin sykdom ved bruk av den sofistikerte Skanneren. Deretter går de til Allmennpraksisen og snakker med en Lege for videre behandling.//", [3] = "Skanneren kan kun håndteres av Leger. Det kreves også vedlikehold. ", }, blood_machine = { [1] = "Blodmaskin//", [2] = "Blodmaskinen er et diagnoseverktöy som sjekker alle cellene i pasientens blod for å finne ut hva som feiler dem.//", [3] = "Blodmaskinen kan kun håndteres av Leger. Det kreves også vedlikehold. ", }, pharmacy = { [1] = "Apotek//", [2] = "Pasienter som har blitt diagnostisert og trenger behandling av et medikament må besöke Apoteket for å få medisinen sin. Ettersom fler og fler medisinkurer er forsket på og blir tilgjengelige, blir dette rommet stadig travlere. Du önsker kanskje å bygge et nytt Apotek senere.//", [3] = "Apoteket kan kun håndteres av Sykepleiere. ", }, cardiogram = { [1] = "Kardiorom//", [2] = "Pasienter blir undersökt og diagnostisert her, för de går tilbake til Allmennpraksisen for å få utpekt en kur.//", [3] = "Kardiorommet kan kun håndteres av Leger. Det kreves også vedlikehold. ", }, ward = { [1] = "Sykestue//", [2] = "Pasientene blir lagt inn her for observasjon av en Sykepleier mens de diagnostiseres. De forblir her til de er klare for å legges under kniven på Operasjonssalen.//", [3] = "Sengeavdelingen kan kun håndteres av Sykepleiere. ", }, psych = { [1] = "Psykiatri//", [2] = "Pasienter diagnostisert med psykiske lidelser må gå til Psykiatrien for å få rådgivning. Psykiatrene kan kjöre diagnose for å finne ut hva slags type sykdom pasientene lider av, og hvis mental opprinnelse, så behandle dem ved å benytte den trygge sofaen.//", [3] = "Psykiatrien kan kun håndteres av kvalifisert Psykiater. ", }, staff_room = { [1] = "Personalrom//", [2] = "De ansatte blir slitne etter hvert som de utförer pliktene sine. De trenger dette rommet for å slappe av og heve humöret. Om de ansatte er slitne, så blir de tregere, krever mer lönn og vil til slutt si opp. De gjör også flere feilgrep. Å bygge et Personalrom med masse aktiviteter for dem er vel anvendte penger. Pass på at det er plass til flere ansatte på en gang. ", }, operating_theatre = { [1] = "Operasjonssal//", [2] = "Denne viktige installasjonen er der en rekke forhold blir behandlet. Operasjonssalen må være av en god störrelse, og må fylles med riktig utstyr. Det er en viktig del av sykehuset.//", [3] = "Operasjonssalen kan kun håndteres av to Kvalifiserte Kirurger. ", }, training = { [1] = "Klasserom//", [2] = "Turnuslegene og Doktorene dine kan få, verdifulle, ekstra kvalifikasjoner ved å studere i dette rommet. En Konsulent med Kirurgi-, Forsker- eller Psykiatri-fordypning vil lære bort dette til de Legene som sitter i rommet. Leger som allerede har disse ferdighetene vil bli enda flinkere mens de er her.//", [3] = "Klasserommet kan kun håndteres av en Konsulent. ", }, dna_fixer = { [1] = "DNA-klinikk//", [2] = "Pasienter som har befattet seg med romvesener fra en annen verden må få DNA-et sitt byttet ut i dette rommet. DNA-fikseren er en veldig kompleks maskin, og det ville være fornuftig å holde et brannslukningsapparat i nærheten av den, bare i tilfelle.//", [3] = "DNA-fikseren kan kun håndteres av en kvalifisert Forsker. Den behöver periodisk vedlikehold av en Vaktmester. ", }, research = { [1] = "Forskningsavdeling//", [2] = "Nye medikamenter og kurer blir funnet opp og forbedret i Forskningsavdelingen. Det er en vital del av sykehuset ditt, og vil gjöre underverker for kureringsstatistikken din.//", [3] = "Forskningsavdelingen kan kun håndteres av en kvalifisert Forsker. ", }, hair_restoration = { [1] = "Hårklinikk//", [2] = "Pasienter som lider av ekstreme tilfeller av Flintskallethet må henvende seg til Hårrenoveringsmaskinen i denne klinikken. En Lege vil operere maskinen, og den vil sette avleggere i pasientens hode som raskt blir til nytt hår.//", [3] = "Hårklinikken kan kun håndteres av Leger. Det kreves også periodisk vedlikehold. ", }, general_diag = { [1] = "Generell Diagnose//", [2] = "Pasienter som trenger videre diagnose blir sendt hit for undersökelse. Om Allmennpraksisen ikke finner ut hva som feiler dem, så vil Generell Diagnose ofte finne det ut. Herfra vil de bli sendt tilbake til Allmennpraksisen for analyse av resultatet.//", [3] = "Generell Diagnose kan kun håndteres av Leger. ", }, electrolysis = { [1] = "Elektrolyseklinikk//", [2] = "Pasienter med Pelssyndrom blir sendt hit, hvor en spesialmaskin brenner av håret og forsegler porene elektrisk med en sammensetning som ikke er ulik fugemasse.//", [3] = "Elektrolyseklinikken kan kun håndteres av Leger. Den behöver vedlikehold av en Vaktmester. ", }, slack_tongue = { [1] = "Tungeklinikk//", [2] = "Pasienter som blir diagnostisert med Lös tunge fra Allmennpraksisen, vil bli sendt til denne klinikken for behandling. Legen bruker en höyteknologisk maskin som forlenger tungen og kutter den av, dermed bringes pasienten tilbake til normal, god helse.//", [3] = "Tungekutteren kan kun håndteres av Leger. Det kreves også vedlikehold nok så ofte. ", }, toilets = { [1] = "Toalett//", [2] = "Pasienter som föler at naturen kaller, må gå og lette på trykket i dine behagelige toalettfasiliteter. Du kan bygge ekstra toalettbåser og vasker om du forventer mange besökende. I noen tilfeller bör du kanskje vurdere å bygge flere Toaletter andre steder i sykehuset. ", }, no_room = { [1] = "", }, x_ray = { [1] = "Röntgenrom//", [2] = "Röntgenmaskinen fotograferer pasientenes innside ved bruk av spesiell stråling for å gi en god indikasjon på hva som er galt med dem.//", [3] = "Röntgenmaskinen kan kun håndteres av Leger. Det kreves også vedlikehold. ", }, decontamination = { [1] = "Saneringsklinikk//", [2] = "Pasienter som har blitt utsatt for Stråling blir fort henvist til Saneringsklinikken. Dette rommet inneholder en dusj som skyller av dem all den vemmelige Radioaktiviteten og skitt.//", [3] = "Saneringsdusjen kan kun håndteres av Leger. Den behöver vedlikehold av en Vaktmester. ", }, } -- Drug companies drug_companies = { "Medisiner-For-Deg", "Kur R Oss", "Runde Små Piller Co.", "Dyremedisin AS", "Alle Piller Co.", } -- Build rooms build_room_window = { pick_department = "Velg avdeling", pick_room_type = "Velg romtype", cost = "Pris: ", } -- Build objects buy_objects_window = { choose_items = "Velg gjenstander", price = "Pris:", total = "Sum:", } -- Research research = { categories = { cure = "Behandlingsutstyr", diagnosis = "Diagnoseutstyr", drugs = "Medisinforskning", improvements = "Forbedringer", specialisation = "Spesialisering", }, funds_allocation = "Tildelt fondmiddel", allocated_amount = "Tildelt belöp", } -- Policy screen policy = { header = "SYKEHUSPOLICY", diag_procedure = "diagnoserutiner", diag_termination = "diagnostisering", staff_rest = "pauserutiner", staff_leave_rooms = "forlate rom", sliders = { guess = "GJETT KUR", -- belongs to diag_procedure send_home = "SEND HJEM", -- also belongs to diag_procedure stop = "AVBRYT PROSESS", -- belongs to diag_termination staff_room = "TIL PERSONALROM", -- belongs to staff_rest } } -- Rooms room_classes = { -- S[19][2] -- "corridors" - unused for now diagnosis = "Diagnose", treatment = "Behandling", clinics = "Klinikker", facilities = "Fasiliteter", } -- Insurance companies insurance_companies = { out_of_business = "IKKE I DRIFT", "Nykjöpt Lök", "Böljan Blå", "Årlige Forskudd AS", "Stygge Arr Co.", "Svömmeblære Co.", "Dönn Ehrlig AS", "Sverres Beholdninger", "Kate Pus Og Kompani", "Larsen Jr. Forsikring", "Glade Forsikringer AS", "Mafia Forsikringer", } -- Menu root -- Keep 2 spaces as prefix and suffix menu = { file = " FIL ", options = " INNSTILLINGER ", display = " VIS ", charts = " OVERSIKTER ", player_count = "SPILLERANTALL", -- In map editor debug = " DEBUG ", } -- Menu File menu_file = { load = " (%1%) LAST INN ", save = " (%1%) LAGRE ", restart = " (%1%) START PÅ NYTT ", quit = " (%1%) AVSLUTT ", } menu_player_count = { -- In map editor players_1 = " 1 SPILLER ", players_2 = " 2 SPILLERE ", players_3 = " 3 SPILLERE ", players_4 = " 4 SPILLERE ", } menu_file_load = { [1] = " SPILL 1 ", [2] = " SPILL 2 ", [3] = " SPILL 3 ", [4] = " SPILL 4 ", [5] = " SPILL 5 ", [6] = " SPILL 6 ", [7] = " SPILL 7 ", [8] = " SPILL 8 ", } menu_file_save = { [1] = " SPILL 1 ", [2] = " SPILL 2 ", [3] = " SPILL 3 ", [4] = " SPILL 4 ", [5] = " SPILL 5 ", [6] = " SPILL 6 ", [7] = " SPILL 7 ", [8] = " SPILL 8 ", } -- Menu Options menu_options = { sound = " (%1%) LYD ", announcements = " (%1%) SPEAKER ", music = " (%1%) MUSIKK ", sound_vol = " LYDVOLUM ", announcements_vol = " SPEAKERVOLUM ", music_vol = " MUSIKKVOLUM ", autosave = " AUTOLAGRING ", game_speed = " SPILLHASTIGHET ", jukebox = " (%1%) JUKEBOX ", twentyfour_hour_clock = " 24 TIMERS KLOKKE ", wage_increase = " LÖNNSBEGJÆRINGER", --todo: annet ord? "wage requests" capture_mouse = " LÅS MUSEPEKER ", } menu_options_wage_increase = { deny = " AVSLÅ ", grant = " GODKJENN ", } -- Menu Options Volume menu_options_volume = { [10] = " 10% ", [20] = " 20% ", [30] = " 30% ", [40] = " 40% ", [50] = " 50% ", [60] = " 60% ", [70] = " 70% ", [80] = " 80% ", [90] = " 90% ", [100] = " 100% ", } -- Menu Options Game Speed menu_options_game_speed = { slowest = " (%1%) TREGEST ", slower = " (%1%) TREGERE ", normal = " (%1%) NORMAL ", max_speed = " (%1%) MAKSIMAL HASTIGHET ", and_then_some_more = " (%1%) ENDA LITT RASKERE ", } -- Menu Options Warmth Colours menu_options_warmth_colors = { choice_1 = " RÖD ", choice_2 = " BLÅ GRÖNN RÖD ", choice_3 = " GUL ORANGE RÖD ", } -- Menu Display menu_display = { high_res = " HÖY OPPLÖSNING ", mcga_lo_res = " MCGA LAV OPPL. ", shadows = " SKYGGER ", } -- Menu Charts menu_charts = { statement = " (%1%) KONTOUTSKRIFT ", casebook = " (%1%) MEDISINBOK ", policy = " (%1%) SYKEHUSPOLICY ", research = " (%1%) FORSKNING ", graphs = " (%1%) DIAGRAMMER ", staff_listing = " (%1%) PERSONALBEHANDLING ", bank_manager = " (%1%) BANKMANAGER ", status = " (%1%)STATUS ", briefing = " BRIEFING ", town_map = " (%1%) BYKART ", } -- Menu Debug menu_debug = { object_cells = " OBJEKTCELLER ", entry_cells = " INNGANGSCELLER ", keep_clear_cells = " KEEP-CLEAR CELLER ", nav_bits = " NAV BITS ", remove_walls = " FJERN VEGGER ", remove_objects = " FJERN GJENSTANDERER ", display_pager = " VIS PAGER ", mapwho_checking = " MAPWHO SJEKK ", plant_pagers = " PLANT PAGERS ", porter_pagers = " PORTER PAGERS ", pixbuf_cells = " PIXBUE CELLS ", enter_nav_debug = " SKRIV INN NAV DEBUG ", show_nav_cells = " VIS NAV CELLS ", machine_pagers = " MASKIN PAGERS ", display_room_status = " VIS ROMSTATUS ", display_big_cells = " VIS STORE CELLER ", show_help_hotspot = " VIS HJELP HOTSPOTS ", win_game_anim = " VINN SPILL ANIM ", win_level_anim = " VINN BANE ANIM ", debug_script = " (%1%) KJÖR DEBUG SCRIPT ", connect_debugger = " (%1%) KOBLE TIL LUA DEBUG SERVER ", lose_game_anim = { [1] = " TAPT SPILL 1 ANIM ", [2] = " TAPT SPILL 2 ANIM ", [3] = " TAPT SPILL 3 ANIM ", [4] = " TAPT SPILL 4 ANIM ", [5] = " TAPT SPILL 5 ANIM ", [6] = " TAPT SPILL 6 ANIM ", [7] = " TAPT SPILL 7 ANIM ", }, } debug_patient_window = { caption = "Testpasient", } -- High score screen high_score = { pos = "POS", player = "SPILLER", score = "POENG", best_scores = "HALL OF FAME", worst_scores = "HALL OF SHAME", killed = "Drepte", -- is this used? categories = { money = "RIKEST", salary = "HÖYESTE LÖNN", clean = "RENSLIGHET", cures = "ANTALL KURERT", deaths = "ANTALL DÖDSFALL", cure_death_ratio = "ANTALL BEHANDLINGSDÖDSFALL", patient_happiness = "TILFREDSTILLHET PASIENTER", staff_happiness = "TILFREDSTILLHET PERSONALE", staff_number = "MEST PERSONALE", visitors = "FLEST PASIENTER", total_value = "TOTAL VERDI", }, } -- Trophy room trophy_room = { reputation = "OMDÖMME", cash = "KONTANTER", wait_times = { award = { [1] = "Gratulerer. Sykehuset ditt har lav kötid i lang tid. Dette er en viktig pris.", --todo: skal det brukes ordet "pris"? }, penalty = { [1] = "Pasienter i sykehuset ditt må stå for lenge i kö. Det er alltid uakseptabelt lange köer. Du kunne behandlet pasientene dine mer effektivt, om du bare hadde gått inn for det.", }, }, pop_percentage = { awards = { [1] = "Legg merke til at du har fått en höy andel av byen befolkning til ditt sykehus det siste året. Bra gjort", [2] = "Gratulerer. En höyere andel av lokalbefolkningen besöker sykehuset ditt enn noen andre institusjoner.", [3] = "Strålende. Du har lokket mer av befolkningen inn ditt sykehus enn det som har besökt alle de andre sykehusene til sammen.", }, penalty = { [1] = "Merk deg at du fikk en höy andel av byen befolkningen til sykehuset ditt det siste året. Godt gjort.", [2] = "Gratulerer. En höyere andel av lokalbefolkningen besöker sykehuset ditt enn noen av de andre institusjonene.", }, }, many_cured = { awards = { [1] = "Gratulerer med Marie Curie Prisen for å ha klart å kurere nesten alle pasientene på sykehuset ditt i fjor.", [2] = "Gratulerer med å ha kurert mengder av pasienter det siste året. Mange mennesker föler seg mye bedre på grunn av ditt arbeid.", }, trophies = { [1] = "Den Internasjonale Behandlingsstiftelsen önsker å ære deg fordi du kurerte en haug med mennesker på sykehuset ditt i fjor. De gir deg derfor Kurert-En-Haug Trofeet.", [2] = "Du er blitt tildelt Ingen-Syke-Gurglere troféet for å ha kurert en stor prosent av pasientene på sykehuset ditt i fjor.", [3] = "Du er blitt tildelt Ingen-Syke-Gurglere troféet for å ha kurert en stor prosent av pasientene på sykehuset ditt i fjor.", --todo: Denne er overflödig (dobbelt opp), men debug-strings-diff.txt insisterer på at denne linjen skal være her. }, penalty = { [1] = "Ditt sykehus klarer ikke å gi effektive botemidler til pasienter som trenger det. Konsentrer deg om dine kurer for å gjöre dem mer effektive.", [2] = "Ditt sykehus er mindre effektivt ved kurering av pasienter enn noen annen. Du har sviktet departementet og du har sviktet deg selv. Vi sier ikke mer.", }, regional = { [1] = "Du er herved tildelt Den-Ultimate-Kur-prisen for å ha kurert flere mennesker enn alle de andre sykehusene til sammen.", }, }, research = { regional_good = { [1] = "Din forskning har holdt ditt sykehus à jour med den siste utviklingen. Ditt forskningspersonale fortjener denne prisen. Godt gjort.", }, regional_bad = { [1] = "Alle andre sykehus i regionen er bedre på forskning enn deg. Forskning bör være en avgjörende del av sykehuset ditt. Departementet er rasende.", }, penalty = { [1] = "Du har vært dårlig på å forske på nye kurer, utstyr og legemidler. Dette er svært dårlig. Teknologisk utvikling er viktig.", }, awards = { [1] = "Din forskning har holdt ditt sykehus à jour med den siste utviklingen. Ditt forskningspersonale fortjener denne prisen. Godt gjort.", [2] = "I löpet av det siste året, har du forsket på flere legemidler og utstyr enn noen kunne ha håpet på. Vennligst godta denne prisen fra alle oss i departementet.", }, }, gen_repairs = { awards = { [1] = "Du er tildelt en spesiell premie for dine Vaktmesteres evne til å holde sykehusets maskiner velholdt. Godt gjort. Ta en ferie.", [2] = "Dine Vaktmestere har gjort det bedre enn noen andre sykehus. Dette er en stor prestasjon for deg.", [3] = "Dine maskiner er praktfullt vedlikeholdt. Dedikasjonen til dine Vaktmestere er ekstraordinær. Dere fortjener denne utmerkelsen. Strålende arbeid.", }, penalty = { [1] = "Vaktmesterne har ikke vedlikeholdt dine maskiner godt. Du bör kontrollere dem mer nöye, eller ansette flere til å håndtere arbeidsmengden.", [2] = "Du har gjort et dårlig vedlikehold. Vaktmesterne bör se til utstyret straks.", }, }, curesvdeaths = { awards = { [1] = "Solide gratulasjoner på å oppnå et imponerende kurerte kontra dödsfall-forhold på sykehuset det siste året.", }, penalty = { [1] = "Din andel av kurerte-vs-dödsfall-forhold er ekstremt dårlig. Du bör sörge for at du kurerer mange flere mennesker enn du lot dö. Ikke svikt oss.", }, }, emergencies = { regional_good = { [1] = "Departementet erkjenner at sykehuset håndterte kriser bedre enn noen andre sykehus i fjor og gir deg denne prisen.", }, regional_bad = { [1] = "Ditt sykehus er det verste i regionen til å håndtere kriser. Det er din skyld at du blir liggende nederst i den lokale akuttbehandlingsligaen.", }, penalty = { [1] = "Du har vært dårlig til å håndtere kriser. Innkommende beredskap pasientene fortjener rask og nöyaktig oppmerksomhet, som du har unnlatt å gi.", }, award = { [1] = "Gratulerer: din effektive håndtering av kriser har gjort deg fortjent til denne spesielle prisen. Godt arbeid.", [2] = "Din håndtering av kriser er eksepsjonell. Denne prisen er for å være den absolutt beste på å håndtere stor tilströmning av syke og lidende.", }, }, cleanliness = { award = { [1] = "Inspektörer gjör oppmerksom på at sykehuset er veldig rent. Rene sykehus er trygge sykehus. Hold oppe det gode arbeidet.", }, regional_good ={ [1] = "Ditt sykehus har blitt bemerket som en av de minst rene i området. Et skitten sykehus er stinkende og farlig. Du bör sette mer oppmerksomhet på å fjerne rot.", }, regional_bad = { [1] = "Ditt sykehus er det skitneste i regionen. Alle andre har klart å beholde sine korridorer renere. Du er en skam for den medisinske profesjon.", }, }, happy_patients = { awards ={ [1] = "Du kan være selvtilfreds om det faktum at folk i sykehuset har vært svært fornöyde i löpet av det siste året.", [2] = "Personer som besöker sykehuset ditt var gjennomsnittlig lykkeligere under deres behandling hos deg enn på noe annet sykehus i spillet.", }, penalty = { [1] = "Folk som kommer til sykehuset ditt synes opplevelsen er elendig. Du må gjöre det mye bedre hvis du önsker å få respekt av departementet.", [2] = "Folk som får behandling på sykehuset ditt var svært misfornöyd med tilstanden der. Du bör sette mer fokus på pasientenes velferd.", }, }, consistant_rep = { trophies = { [1] = "Du er herved tildelt statsrådens pris for de mest plettfrie standarder og höyest mulig omdömme i år. Bra gjort.", [2] = "Gratulerer. Du mottar GnukkiRen-Troféet for sykehuset med best omdömme det siste året. Vel fortjent er det også.", }, }, all_cured = { awards = { "Gratulerer med Marie Curie Prisen for å ha klart å kurere alle pasienter på sykehuset ditt i fjor.", }, trophies = { "Den Internasjonale Behandlingsstiftelsen önsker å ære deg fordi du kurerte alle pasienter på sykehuset ditt i fjor. De gir deg derfor Kurert-Alle Trofeet.", "Du er blitt tildelt Ingen-Syke-Gurglere Trofeet for å ha kurert alle pasienter på sykehuset ditt i fjor.", }, }, high_rep = { awards = { [1] = "Du er herved tildelt statsministerens Glitrende Sykehusstandard Pris, som tildeles sykehuset med best omdömme i fjor. Flott!", [2] = "Vær snill å ta imot Bullfrog-prisen som tildeles sykehuset med best omdömme i fjor. Nyt det - det er vel fortjent!", }, penalty = { [1] = "Man skal være veldig disiplinert for å klare å opprettholde et så dårlig rykte gjennom hele det siste året. Sörg for at det forbedrer i fremtiden.", [2] = "Ditt Sykehus sitt omdömme er det verste i området. Du er en skam. Gjör det bedre eller få deg en annen jobb.", }, regional = { [1] = "Vennligst godta Bullfrog-prisen for det höyeste omdömmet det siste året. Nyt det - du har fortjent det.", [2] = "I år har ditt sykehus sitt omdömme overgått alle de andre sykehusene til sammen. En stor prestasjon.", }, }, happy_staff = { awards = { [1] = "De ansatte gir deg denne prisen. De sier det er rom for forbedringer, men behandlingen av dem var generelt god.", [2] = "De ansatte er så glad å arbeide for deg at kan de ikke holde smilet borte fra ansiktene sine. Du er en ypperlig sjef.", }, trophies = { "Du er tildelt Smilefjes Trofeet for å holde ditt hardt-arbeidende personale så blid og fornöyd som mulig.", "Instituttet for Humörspredere berömmer deg for at du ikke hadde noen sure og sinte ansatte på sykehuset ditt i fjor, og gir deg derfor dette trofeet.", "Dette troféet, Stråle Mer Begeret, er herved tildelt deg for å ha klart å holde alt personell blid og fornöyd, tross en iherdig arbeidsinnsats i fjor. Dine ansatte stråler!", }, penalty = { [1] = "De ansatte önsker det skal bli kjent at de er svært misfornöyde. Gode ansatte er en ressurs. Gjör dine lykkeligere, ellers vil du miste dem en dag.", }, regional_good = { [1] = "De ansatte er lykkeligere enn på noe annet sykehus. Glade ansatte betyr mer overskudd og mindre död. Departementet er fornöyd.", }, regional_bad = { [1] = "De ansatte har alle vært veldig sure det siste året. Du burde ha lagt merke til at alle andre sykehus har lykkeligere personalet enn deg.", }, }, happy_vips = { trophies = { [1] = "Du har vunnet Nobelprisen for Mest Imponerte VIP-er. Alle som besökte sykehuset i fjor var svært komplimenterende.", [2] = "Byrået for Kjente Personer vil belönne deg med Kjendistroféet for å ha tatt godt vare på alle VIP-er som besökte institusjonen din i fjor. Du nærmer deg kjendis-status, nesten en av oss.", [3] = "Gratulerer med VIP-prisen for å ha gjort livene til hardtarbeidende kjendiser bedre, ved å sette alle som besökte sykehuset ditt i fjor i et bedre lys. Fantastisk.", }, }, no_deaths = { awards = { [1] = "Du har vunnet Leve Lenge-troféet for å holde 100 prosent av pasientene levende i hele fjor.", [2] = "Du har fått denne prisen til minne om lavt antall dödsfall på ditt sykehus dette året. Dette er flott.", }, trophies = { [1] = "Livet Går Videre Stiftelsen belönner deg med dette trofeet for å ha oppnådd null dödsfall i hele fjor.", [2] = "Du er tildelt Holde Seg I Live-troféet for å ha unngått dödsfall på ditt flotte sykehus dette året. Storartet.", [3] = "Du er tildelt Holde Seg I Live-troféet for å ha unngått dödsfall på ditt flotte sykehus dette året. Storartet.", --todo: Denne er overflödig (dobbelt opp), men debug-strings-diff.txt insisterer på at denne linjen skal være her. }, penalty = { [1] = "Antallet dödsfall i sykehuset ditt i fjor var uakseptabelt höyt. Gi mer oppmerksomhet til ditt arbeid. Vær sikker på at flere mennesker overlever i fremtiden.", [2] = "Ditt sykehus er en risiko for pasientenes helse. Du forventes å kurere mange mennesker, ikke la dem dö.", }, regional = { [1] = "Dödstallene i ditt sykehus i fjor var lavere enn noen andre sykehus. Vennligst godta denne prisen.", }, }, rats_killed = { awards = { }, trophies = { "Du er tildelt Null Uhyrer Trofeet for å ha skutt %d rotter på sykehuset ditt i löpet av fjoråret.", -- %d (number of rats) "Du mottar dette trofeet fra Organisasjonen Mot Rotter og Mus, pga. dine unike rotteskytende evner. Du drepte %d dyr i fjor.", -- %d (number of rats) "Du mottar Rotteskytter Trofeet for å ha vist unike evner i utryddelsen av %d rotter på sykehuset ditt i fjor.", -- %d (number of rats) }, }, rats_accuracy = { awards = { }, trophies = { "Du er tildelt Nöyaktige Skudd I Håplös Krig Trofeet for å ha en treffprosent på %d%% i jakten på ekle rotter.", -- %d (accuracy percentage) "Dette trofeet er for å berömme din nöyaktighet ved å drepe %d%% av rottene du sköyt på i fjor.", -- %d (accuracy percentage) "For å hedre prestasjonen det er å drepe %d%% av alle rottene på sykehuset ditt, blir du tildelt Dungeon Keepers Skadedyrfrie Trofe, gRATulerer!", -- %d (accuracy percentage) }, }, healthy_plants = { awards = { "Gratulerer med Voks-Videre prisen for å ha holdt plantene dine ekstremt friske i hele år.", }, trophies = { "Venner Av Potteplanter önsker å gi deg Grönn Helse Trofeet, for å ha tatt godt vare på plantene dine de siste tolv måneder.", "Foreningen For Grönne Gamlinger önsker å gi deg Grönnfinger Trofeet for å ha holdt plantene dine friske i hele fjor.", }, }, hosp_value = { awards = { [1] = "Helsedepartementet vil gjerne benytte anledningen til å gratulere deg med den imponerende samlede verdien av sykehuset ditt.", }, penalty = { [1] = "Ditt sykehus har unnlatt å oppnå en anstendig verdi. Du har gjort dårlige pengebeslutninger. Husk at et godt sykehus også er et kostbart sykehus.", }, regional = { [1] = "Du er en fremgangsrik ung forretningsmann. Ditt sykehus er mer verdifullt enn alle de andre sykehusene i området til sammen.", }, }, best_value_hosp = { trophies = { [1] = "Gratulerer. Du mottar GnukkiRen-Troféet for sykehuset med best omdömme det siste året. Vel fortjent er det også.", }, penalty = { [1] = "Hvert sykehus i nærområdet er verdt mer enn ditt. Gjör noe med denne skammelige situasjonen. Få inn noen dyrere ting!", }, regional = { [1] = "Gratulerer med å ha det mest verdifulle sykehuset i spillet. Godt arbeid. Pröv å holde det slik.", }, }, sold_drinks = { awards = { }, trophies = { "Foreningen for Globale Tannleger er stolt over å kunne gi deg dette trofeet for å ha solgt store menger brus på sykehuset ditt i fjor.", "Sykehuset ditt er blitt tildelt Sprudlende-Begjær Trofeet for antall leskedrikker som ble solgt på sykehuset ditt i fjor.", "På vegne av DK Fyllinger Co., tildeles du herved dette trofeet dekket av sjokolade, for å ha solgt enorme mengder leskedrikker på sykehuset ditt forrige år.", }, }, } -- Casebook screen casebook = { reputation = "omdömme", treatment_charge = "behandlingspris", earned_money = "totale inntekter", cured = "behandlet", deaths = "dödsfall", sent_home = "sendt hjem", research = "konsentrer forskning", cure = "kur", cure_desc = { build_room = "Jeg anbefaler deg å bygge %s", -- %s (room name) build_ward = "Du trenger fremdeles en Sykestue.", hire_doctors = "Du må ansette noen Leger.", hire_surgeons = "Du må ansette Kirurger.", hire_psychiatrists = "Du må ansette Psykiatere.", hire_nurses = "Du må ansette Sykepleiere.", no_cure_known = "Ingen kjente kurer.", cure_known = "Kur.", improve_cure = "Forbedre kur", }, } -- 32. Adviser adviser = { -- Tutorial tutorial = { start_tutorial = "Les Oppdragsbriefingen og klikk venstre museknapp for å starte innföring.", information_window = "Hjelpeboksen forteller deg alt om den fine Allmennpraksisen du nettopp har bygd.", build_reception = "Heisann. Först, trenger sykehuset ditt en Resepsjon. Velg en fra Inventarmenyen.", order_one_reception = "Klikk en gang på den blinkende linjen med venstre museknapp for å kjöpe en Resepsjon.", accept_purchase = "Venstreklikk på den blinkende linjen for å kjöpe den.", rotate_and_place_reception = "Klikk med höyre museknapp for å rotere Resepsjonen, og venstreklikk for å plassere den i sykehuset.", reception_invalid_position = "Resepsjonen er nå grå fordi det er en ugyldig plassering. Pröv å flytte eller rotere den.", hire_receptionist = "Du trenger nå en Resepsjonist til å stå i resepsjonen og henvise dine pasienter.", select_receptionists = "Venstreklikk på det blinkende ikonet for å se gjennom tilgjengelige Resepsjonister. Nummeret på ikonet viser antall som er tilgjengelig.", next_receptionist = "Dette er den förste Resepsjonisten i listen. Venstreklikk på det blinkende ikonet for å se på neste person.", prev_receptionist = "Venstreklikk på det blinkende ikonet for å se på forrige person.", choose_receptionist = "Avgjör hvilken Resepsjonist som har gode evner og akseptable lönnskrav, og venstreklikk på det blinkende ikonet for å ansette henne.", place_receptionist = "Flytt Resepsjonisten og plasser henne hvor som helst. Hun klarer å finne veien til resepsjonen selv.", receptionist_invalid_position = "Du kan ikke plassere henne der.", window_in_invalid_position = "Dette vinduet kan ikke være her. Pröv å plassere det en annen plass på veggen, er du snill.", choose_doctor = "Se nöye gjennom evnene til hver enkelt Lege för du bestemmer deg for hvem du vil ansette.", click_and_drag_to_build = "For å bygge en Allmennpraksis, må du först avgjöre hvor stor den skal være. Klikk og hold inne venstre museknapp for å justere rommets störrelse.", build_gps_office = "For å starte å diagnostisere pasientene dine, må du ha en Allmennpraksis.", door_in_invalid_position = "Oj, sann! Du prövde å plassere dören i en ugyldig posisjon. Pröv en annen plass på veggen av blåkopien.", confirm_room = "Venstreklikk på det blinkende ikonet for å ferdigstille rommet ditt, eller klikk på X-en for å gå et trinn tilbake.", select_diagnosis_rooms = "Venstreklikk på det blinkende ikonet for å se en liste over diagnoserom du kan bygge.", hire_doctor = "Du trenger en Lege for å diagnostisere og behandle syke mennesker.", select_doctors = "Venstreklikk på det blinkende ikonet for å se hvilke Leger som er tilgjengelig i arbeidsmarkedet.", place_windows = "Plasser vinduer på samme måten som du plasserte dören. Du trenger ikke vinduer, men de ansatte setter veldig pris på det, og blir blidere når de har noe å se ut gjennom.", place_doctor = "Plasser Legen hvor som helst i Sykehuset. Han vil spasere til Allmennpraksisen så snart noen trenger å diagnostiseres.", room_in_invalid_position = "Oj! Denne blåkopien er ikke gyldig - det röde området indikerer hvor du har overlappet et annet rom eller sykehusets vegger.", doctor_in_invalid_position = "Hei! Du kan ikke slippe Legen her.", place_objects = "Höyreklikk for å rotere gjenstander, og venstreklikk for å plassere dem.", room_too_small = "Denne blåkopien er röd fordi den er for liten. Strekk den ut for å gjöre den större.", click_gps_office = "Venstreklikk på den blinkende linjen for å velge en Allmennpraksis.", room_too_small_and_invalid = "Blåkopien er for liten og er ugyldig plassert. Kom igjen.", object_in_invalid_position = "Denne gjenstanden er ugyldig plassert. Vær vennlig å plasser den et annet sted, eller roter den for å få den til å passe.", place_door = "Flytt musen rundt om kring på blåkopiens vegger for å plassere dören der du vil ha den.", room_big_enough = "Blåkopien er nå stor nok. Når du slipper museknappen, plasserer du den. Du kan allikevel fortsette å flytte den eller endre störrelse om du vil.", build_pharmacy = "Gratulerer! Nå må du bygge et Apotek og ansette en Sykepleier for å ha et fungerende sykehus.", }, -- Cheats cheats = { th_cheat = "Gratulerer du har låst opp juksekodene!", roujin_on_cheat = "Roujins utfordring aktivert! Lykke til...", roujin_off_cheat = "Roujins utfordring deaktivert.", }, -- Epidemic epidemic = { hurry_up = "Om du ikke tar deg av epidemien nå, får du store problemer. Fort deg!", serious_warning = "Den smittsomme sykdomen begynner å bli et seriöst problem. Du må gjöre noe snart!", multiple_epidemies = "Det ser ut som at du har mer enn en epidemi gående samtidig. Dette kan bli en enorm katastrofe, så fort deg.", }, -- Staff advice staff_advice = { need_handyman_machines = "Du må ansette Vaktmestre om du vil holde maskinene dine ved like.", need_doctors = "Du trenger flere Leger. Pröv å plassere dine beste Leger i rommene med lengst kö.", need_handyman_plants = "Du må ansette en Vaktmester for å vanne plantene.", need_handyman_litter = "Folk har begynt å forsöple sykehuset ditt. Ansett en Vaktmester for å rydde opp etter pasientene dine.", need_nurses = "Du trenger flere Sykepleiere. Sengeavdelinger og Apotek kan bare driftes av Sykepleiere.", too_many_doctors = "Du har for mange Leger. Noen av dem har ingenting å gjöre.", too_many_nurses = "Jeg tror du har for mange Sykepleiere.", }, -- Earthquake earthquake = { damage = "Det jordskjelvet skadet %d maskiner og %d pasienter på sykehuset.", -- %d (count machines), &d (count patients) alert = "Jordskjelv-varsel. Under et jordskjelv blir maskinene dine skadet. De kan bli ödelagt om de er dårlig vedlikeholdt.", ended = "Puh. Jeg trodde det var et stort skjelv - Det målte %d på Richters skala.", }, -- Multiplayer multiplayer = { objective_completed = "Du har fullfört utfordringene for dette nivået. Gratulerer!", everyone_failed = "Ingen klarte de forrige utfordringene. Så alle får spille videre !", players_failed = "Fölgende spiller(e) klarte ikke den forrige utfordringen : ", poaching = { in_progress = "Jeg skal si ifra om denne personen vil komme å jobbe for deg.", not_interested = "Ha! De er ikke interessert i å jobbe for deg - de har det bra der de er.", already_poached_by_someone = "Ikke snakk om! Noen pröver allerede å overtale personen.", }, objective_failed = "Du har ikke lykkes i å fullföre utfordringene.", }, -- Surgery requirements surgery_requirements = { need_surgeons_ward_op = "Du trenger to Kirurger og en Sykestue i tillegg til Operasjonssal for å gjöre kirurgiske inngrep.", need_surgeon_ward = "Du trenger en Kirurg til og en Sykestue for å gjöre kirurgiske inngrep.", }, -- Vomit wave vomit_wave = { started = "Ser ut som du har et magevirus på sykehuset ditt. Om du hadde holdt det renere ville ikke dette skjedd. Kanskje du burde hatt flere Vaktmestre.", ended = "Puh! Ser ut som viruset som forårsaket bölgen med oppkast er så godt som borte. Hold sykehuset ditt rent i fremtiden.", }, -- Level progress level_progress = { nearly_won = "Du har nesten fullfört dette nivået nå.", three_quarters_lost = "Du er nå tre fjerdedeler på vei til å tape dette nivået.", halfway_won = "Du er nå omtrent halvveis på dette nivået.", halfway_lost = "Du er omtrent halvveis til å tape dette nivået.", nearly_lost = "Det er like för du taper dette nivået nå.", three_quarters_won = "Du er nå tre fjerdedeler på vei til å fullföre dette nivået.", dont_kill_more_patients = "Du har virkelig ikke råd til å drepe flere pasienter!", another_patient_killed = "Å nei! Du har drept enda en pasient. Du har drept %d nå.", close_to_win_increase_value = "Du er virkelig nær ved å vinne. Ök sykehusets verdi med %d.", financial_criteria_met = "Du har tilfredsstilt de finansielle kriteriene for dette nivået. Hold banksaldoen din over %d, mens du passer på at sykehuset ditt drives effektivt.", hospital_value_enough = "Hold verdien av ditt sykehus over %d og forsök å fölge med på de andre problemene for å vinne dette nivået.", another_patient_cured = "Bra jobbet - enda en pasient kurert. Det blir den %d.", reputation_good_enough = "Ok, omdömmet ditt er er godt nok for å vinne dette nivået. Hold det over %d og fiks eventuelle andre problemet for klare det.", cured_enough_patients = "Du har kurert nok pasienter, men du trenger å få sykehuset ditt i bedre stand for å vinne dette nivået.", improve_reputation = "Du må forbedre omdömmet ditt med %d for å ha en sjanse til å vinne dette nivået.", }, -- Staff place advice staff_place_advice = { receptionists_only_at_desk = "Resepsjonister kan kun jobbe i Resepsjoner.", only_psychiatrists = "Leger kan bare jobbe i Psykiatri dersom de er kvalifiserte Psykiatere.", only_surgeons = "Leger kan bare jobbe i Operasjonssalen dersom de er kvalifiserte Kirurger.", only_nurses_in_room = "Det er kun Sykepleiere som kan jobbe på %s", only_doctors_in_room = "%s kan kun håndteres av Leger", only_researchers = "Leger kan bare jobbe på Forskningsavdelingen dersom de er kvalifiserte Forskere.", nurses_cannot_work_in_room = "%s kan ikke håndteres av Sykepleiere", doctors_cannot_work_in_room = "%s kan ikke håndteres av Leger", }, -- Research research = { machine_improved = "%s er forbedret av Forskningsavdelingen.", autopsy_discovered_rep_loss = "Din Obduseringsautomat er blitt offentlig kjent. Forvent en negativ reaksjon fra allmennheten.", drug_fully_researched = "Du har utforsket %s til 100%.", new_machine_researched = "En ny %s er akkurat utviklet.", drug_improved = "%s medisinen er forbedret av Forskningsavdelingen din.", drug_improved_1 = "%s medisinen er forbedret av Forskningsavdelingen din.", --todo: Denne er overflödig (dobbelt opp), men debug-strings-diff.txt insisterer på at denne linjen skal være her. new_available = "En ny %s er tilgjengelig.", new_drug_researched = "En ny medisin for å kurere %s er utviklet.", }, -- Boiler issue boiler_issue = { minimum_heat = "Der er du! Sentralfyren i kjelleren er gått i stykker. Ser ut som at personene på sykehuset ditt kommer til å fryse litt.", maximum_heat = "Sentralfyren i kjelleren er löpt löpsk. Radiatorene har hengt seg opp på maksimal varme. Folk kommer til å smelte! Plasser ut flere Brusautomater.", resolved = "Gode nyheter. Sentralvarmen fungerer slik som den skal nå. Temperaturen skal nå være grei både for pasientene og personalet.", }, -- Competitors competitors = { staff_poached = "En av dine ansatte har fått seg jobb på et annet sykehus.", hospital_opened = "Et konkurrerende sykehus er åpnet i området av %s.", land_purchased = "%s har akkurat kjöpt en tomt.", }, -- Room requirements room_requirements = { research_room_need_researcher = "Du må ansette en Lege med spesialisering innenfor Forskning for å kunne ta i bruk Forskningsavdelingen.", op_need_another_surgeon = "Du trenger fremdeles en Kirurg til, for å kunne ta i bruk Operasjonssalen.", op_need_ward = "Du må bygge en Sykestue for å overvåke pasienter som skal opereres.", reception_need_receptionist = "Du må ansette en Resepsjonist for å ta imot pasientene.", psychiatry_need_psychiatrist = "Du må ansette en Psykiater nå som du har bygget Psykiatri.", pharmacy_need_nurse = "Du må ansette en Sykepleier for å drifte Apoteket.", ward_need_nurse = "Du må ansette en Sykepleier som kan jobbe på denne Sengeavdelingen.", op_need_two_surgeons = "Ansett to Kirurger for å utföre kirurgiske inngrep i Operasjonssalen.", training_room_need_consultant = "Du må ansette en Konsulent som kan undervise i Klasserommet.", gps_office_need_doctor = "Du må ansette en Lege som kan jobbe på Allmennpraksisen.", }, -- Goals goals = { win = { money = "Du trenger %d til for å oppnå de finansielle kriteriene på dette nivået.", cure = "Kurer %d pasienter til og du har kurert nok for å fullföre dette nivået.", reputation = "Sörg for å ha et omdömme på over %d for at du skal kunne fullföre nivået.", value = "Sykehuset ditt må ha en verdi på over %d for at du skal kunne fullföre dette nivået.", }, lose = { kill = "Drep %d pasienter til for å tape dette nivået!", }, }, -- Warnings warnings = { low_prices = "Du tar deg for lite betalt for %s. Dette vil tiltrekke mange syke mennesker til sykehuset ditt, men du tjener mindre på hver pasient.", fair_prices = "Prisene dine for %s virker rettferdige og balanserte.", high_prices = "Prisene for %s er for høye. Dette gir deg god avkastning på kort sikt, men på lengre sikt vil de höye prisene skremme bort pasientene.", patient_not_paying = "En pasient har dratt uten å betale for %s fordi det var for dyrt!", charges_too_low = "Du tar deg for lite betalt. Dette vil tiltrekke mange syke mennesker til sykehuset ditt, men du tjener mindre på hver pasient", charges_too_high = "Dine priser er for höye. Dette gir deg god avkastning på kort sikt, men på lengre sikt vil de höye prisene skremme bort pasientene.", plants_thirsty = "Du må huske på plantene dine. De er törste.", staff_overworked = "Personalet ditt er meget overarbeidet. De blir ineffektive og gjör fatale feil når de er trötte.", queue_too_long_at_reception = "Du har for mange pasienter som venter ved Resepsjonen. Plasser ut flere Resepsjoner og ansett en Resepsjonist til.", queue_too_long_send_doctor = "Köen til %s er for lang. Sörg for at det er en Lege i rommet.", handymen_tired = "Dine Vaktmestere er veldig trött. Gi dem hvile nå.", money_low = "Du begynner å gå tom for penger!", money_very_low_take_loan = "Din bankbalanse er ganske så lav. Du kan jo alltids låne penger av banken.", staff_unhappy = "Personalet ditt er i dårlig humör. Pröv å gi dem bonuser, eller bedre, bygg et Personalrom. Du kan også forandre Hvilepraksisen på Sykehuspolicy-skjermen.", no_patients_last_month = "Ingen nye pasienter besökte sykehuset ditt forrige måned. Sjokkerende!", queues_too_long = "Köene dine er for lange.", patient_stuck = "Noen har gått seg vill. Du må organisere sykehuset ditt bedre.", patients_too_hot = "Pasientene er for varme. Du må enten fjerne noen radiatorer, skru ned temperaturen, eller plassere ut flere Brusautomater.", doctors_tired = "Dine Leger er veldig trötte. Gi dem hvile snarest.", need_toilets = "Pasientene trenger toaletter. Bygg dem på lett tilgjengelige steder.", machines_falling_apart = "Maskinene dine faller sammen. Få Vaktmestre til å fikse de snarest!", nobody_cured_last_month = "Absolutt ingen ble kurert forrige måned.", patients_thirsty = "Pasientene dine er törste. Du burde gi dem tilgang på brus.", nurses_tired = "Sykepleierne dine er trötte. Gi dem hvile nå.", machine_severely_damaged = "%s er veldig nær å bli totalskadet.", reception_bottleneck = "Det er en flaskehals i Resepsjonen. Ansett en Resepsjonist til.", bankruptcy_imminent = "Hallo! Du nærmer deg konkurs. Vær forsiktig!", receptionists_tired = "Resepsjonistene dine er meget trötte. Gi dem hvile nå.", too_many_plants = "Du har for mange planter. Dette er jo rene jungelen.", many_killed = "Du har nå drept %d mennesker. Poenget er liksom å gjöre de friske, vet du.", need_staffroom = "Bygg et Personalrom slik at dine ansatte kan slappe av.", staff_too_hot = "Dine ansatte holder på å smelte bort. Skru ned temperaturen eller fjern noen radiatorer fra rommene deres.", patients_unhappy = "Pasientene misliker sykehuset ditt. Du burde gjöre noe for å forbedre miljöet på sykehuset.", people_did_it_on_the_floor = "Noen av pasientene dine klarte ikke å holde seg. Oppryddingen vil bli en stor jobb for noen.", -- Bruke ordet opprydning eller vasking? patients_very_thirsty = "Pasientene dine er virkelig törste. Om du ikke setter opp noen Brusautomater snart, vil du snart se at alle går hjem for å hente cola.", machinery_very_damaged = "Hastesak! Få en Vaktmester til å reparere maskinene dine öyeblikkelig! De kommer til å sprenge!", handymen_tired2 = "Vaktmestrene dine er helt utkjörte. Gi dem litt hvile med en gang.", desperate_need_for_watering = "Du trenger sårt å ansette en Vaktmester for å stelle med plantene dine.", too_much_litter = "Det er et söppelproblem. Flere Vaktmestere kan være svaret.", place_plants4 = "Få pasientene i bedre humör ved å sette ut litt flere planter rundt omkring.", change_priorities_to_plants = "Du må endre prioriteringene for Vaktmestrene dine slik at de bruker mer tid på plantene.", finanical_trouble2 = "Du må få inn litt penger snart, ellers er du snart ute på söppeldynga. Du vil tape nivået om du mister %d til.", litter_everywhere = "Det er söppel over alt. Sett noen Vaktmestere på saken.", nurses_tired2 = "Sykepleierne dine er veldig trötte. La dem hvile med en gang.", plants_dying = "Plantene dine dör. De er desperate etter vannr. Få flere Vaktmestere til å jobbe med dette. Pasientene liker ikke döde planter.", reduce_staff_rest_threshold = "Pröv å endre Personalets hvileterskel i Sykehuspolicy-vinduet, slik at Personalet hviler oftere. Det var bare en idé.", more_toilets = "Du trenger flere Toaletter. Folk begynner å få præriehunder.", --"People are getting the turtle's head" hospital_is_rubbish = "Folk sier åpenlyst at sykehuset ditt bare er söppel. För du vet ordet av det, så tar de med seg sykdommene sine til et annet sted.", pay_back_loan = "Du har masse penger. Hvorfor har du ikke tenkt på å betale tilbake lånet?", financial_trouble3 = "Banksaldoen din ser bekymringsfull ut. Vurder å skaffe mer penger. Du er %d unna fra en katastrofe.", build_toilet_now = "Bygg et Toalett nå. Folk kan ikke holde seg lenger. Ikke glis - Dette er seriöst.", more_benches = "Vurder å plassere flere benker. Syke folk anser det som en fornærmelse å måtte stå oppreist.", many_epidemics = "Det ser ut som du har mer enn en epidemi på samme tid. Dette kan bli en kjempekatastrofe, så du må handle raskt.", place_plants_to_keep_people = "Folk stikker av. Å plassere noen planter kan kanskje overtale dem til å bli.", patients_thirsty2 = "Folk klager over at de er törste. Du burde plassere noen fler Brusmaskiner eller flytte de eksisterende nærmere dem.", people_freezing = "Utrolig, med nåtidens sentralfyring, så klager noen av pasientene dine over at det er iskaldt. Sett ut noen radiatorer for å varme dem opp, og skru opp temperaturen.", patients_very_cold = "Pasientene er veldig kalde. Pröve å skru opp temperaturen eller å plassere flere radiatorer i sykehuset.", build_toilets = "Bygg et Toalett med en gang, ellers vil du se noe virkelig ubehagelig. Og forestill deg hva sykehuset ditt vil lukte da.", place_plants2 = "Folk går hjem. Litt flere planter ville kanskje holdt dem her lenger.", staff_tired = "Dine ansatte er veldig slitne. Om du ikke lar dem få litt hvile i Personalrommet, så kan noen knekke av presset.", place_plants3 = "Pasientene din er utilfreds. Plasser litt flere planter for muntre dem opp.", staff_unhappy2 = "Personalet ditt er generelt ulykkelige. Snart vil de ha mer penger.", cash_low_consider_loan = "Pengesituasjonen din er ganske dårlig. Har du tenkt på å ta opp et lån?", financial_trouble = "Du er i en seriös finansiell krise. Få orden på ökonomien med en gang! Om du taper %d til, så har du kastet bort dette nivået!", doctors_tired2 = "Legene dine er utrolig slitne. De burde hvule umiddelbart.", patient_leaving = "En pasient drar hjem. Grunnen til det? Ditt dårlig styrte, dårlig bemannet og dårlig utstyrt sykehus.", machinery_damaged2 = "Du må ansette en Vaktmester for å reparere maskinene dine snart.", patients_leaving = "Pasientene forlater sykehuset. Forbedre sykehuset for de besökende ved å plassere planter, benker, brusmaskiner og så videre.", epidemic_getting_serious = "Den smittsomme sykdommen begynner å bli alvorlig. Du må gjöre noe snart!", machinery_damaged = "Reparer maskinene dine snart. Det er ikke lenge för de begynner å falle fra hverandre.", people_have_to_stand = "Lidende mennesker må stå oppreist. Skaff flere sitteplasser nå.", build_staffroom = "Bygg et Personalrom nå. Personalet ditt jobber for hardt og er på randen til kollaps. Kom igjen - se sammenhengen!", machinery_slightly_damaged = "Sykehusmaskineriet ditt er lettere skadet. Ikke glem å få det vedlikeholdt ved en anledning.", patients_getting_hot = "Pasientene er veldig varme. Pröv å skru ned temperaturen litt, eller til og med fjerne noen radiatorer.", machinery_deteriorating = "Maskinene dine har nettopp begynt å bli dårligere på grunn av overforbruk. Hold et öye med dem.", litter_catastrophy = "Söppelsituasjonen er bunnlös. Få et lag av Vaktmestere til å ta fatt i det nå!", staff_very_cold = "Personalet klager over at det er kaldt. Skru opp temperaturen eller plasser ut flere radiatorer.", deal_with_epidemic_now = "Om den epidemien ikke blir behandlet med en gang, så vil få tröbbel helt opp til örene. Få opp farten!", patients_really_thirsty = "Pasientene er virkelig törste. Plasser flere brusmaskiner, eller flytt de eksisterende nærmere de störste köene.", some_litter = "Vaktmestere kan bli kvitt söpla för den blir et alvorlig problem.", patients_annoyed = "Folk er utrolig misfornöyd med måten du driver sykehuset ditt. Og jeg kan ikke si jeg klandrer dem. Ta deg sammen eller ta konsekvensene!", receptionists_tired2 = "Resepsjonistene din er veldig slitne. La dem hvile med en gang.", doctor_crazy_overwork = "Å nei! En av dine Doktorer har blitt gal på grunn av overarbeid. Han kan komme seg hvis du lar ham hvile umiddelbart.", no_desk = "Du burde bygge en resepsjon og ansette en Resepsjonist snart.", no_desk_1 = "Om du vil at pasienter skal komme til sykehuset ditt bör du ansette en Resepsjonsist og bygge en resepsjon der hun kan arbeide!", no_desk_2 = "Bra gjort! Dette må være en verdensrekord: nesten ett år uten å få noen pasienter! Om du vil fortsette som sjef for dette sykehuset bör du ansette en Resepsjonist og bygg en respsjon der hun kan arbede!", no_desk_3 = "Glimrende! Nesten et år har gått og du har ikke engang en betjent resepsjon! Hvordan tror du at du skal få noen pasienter? Slutt å tulle rundt og få orden på problemet!", no_desk_4 = "En Resepsjonist må ha sin egen arbeidsplass for å motta pasientene som ankommer", no_desk_5 = "Det var på tide! Du burde se noen pasienter ankomme snart.", no_desk_6 = "Du har en Resepsjonist, så hva med å sette opp en resepsjon hun kan jobbe i?", no_desk_7 = "Du har bygd en resepsjon, så hva med å ansette en Resepsjonist? Du får ingen pasienter för du har fikset dette!", nurse_needs_desk_1 = "Hver Sykepleier trenger sin egen kontorpult å arbeide ved.", nurse_needs_desk_2 = "Sykepleieren din er glad for at du har gitt henne en pause. Om hensikten var å ha mer enn én Sykepleier arbeidende her, så må du gi dem begge en kontorpult.", cannot_afford = "Du har ikke nok penger på konto til å ansette denne personen!", cannot_afford_2 = "Du har ikke nok penger på konto til å gjöre dette kjöpet!", falling_1 = "Hei! Det der er ikke moro. Pass på hvor du klikker med den musa; noen kan bli skadet!", falling_2 = "Slutt å tulle. Hvordan ville du likt det?", falling_3 = "Au, det måtte gjöre vondt. Noen burde ringe etter en Lege!", falling_4 = "Dette er et sykehus, ikke en temapark!", falling_5 = "Dette er ikke et sted der du kan dytte folk over ende, de er jo syke!", falling_6 = "Dette er ingen bowlingbane. Syke folk bör ikke behandles slik!", research_screen_open_1 = "Du må bygge en forskningsavdeling för du får tilgang til forskningsvinduet.", research_screen_open_2 = "Forskning er deaktivert for dette nivået.", researcher_needs_desk_2 = "En av dine Forskere er glad for at du gir ham en pause. Om du önsker å ha flere ansatte som faktisk forsker, så må du gi dem et skrivebord hver.", researcher_needs_desk_1 = "En Forsker må ha et skrivebord for å kunne arbeide.", researcher_needs_desk_3 = "Hver Forsker må ha hvert sitt skrivebord for å kunne gjöre jobben sin.", }, -- Placement info placement_info = { door_can_place = "Du kan plassere dören her, om du vil.", window_can_place = "Du kan plassere vinduet her. Det går fint.", door_cannot_place = "Beklager, men du kan ikke plassere dören her.", object_can_place = "Du kan plassere gjenstanden her.", reception_can_place = "Du kan plassere Resepsjonen her.", staff_cannot_place = "Du kan ikke plassere den ansatte her. Beklager.", staff_can_place = "Du kan plassere den ansatte her. ", object_cannot_place = "Hallo, du kan ikke plassere gjenstanden her.", room_cannot_place = "Du kan ikke plassere rommet her.", room_cannot_place_2 = "Du kan ikke bygge rommet her.", window_cannot_place = "Ah. Du kan faktisk ikke plassere vinduet her.", reception_cannot_place = "Du kan ikke plassere Resepsjonen her.", }, -- Praise praise = { many_benches = "Pasientene har nok sitteplasser nå. Fint.", many_plants = "Flott. Du har mange planter. Pasientene vil sette pris på det.", patients_cured = "%d pasienter kurert.", }, -- Information information = { larger_rooms = "Större rom gjör at de ansatte föler seg viktigere, og det forbedrer deres prestasjoner.", extra_items = "Ekstra gjenstander i rommene får de ansatte til å föle seg mer komfortabel og prestasjonene blir bedre.", epidemic = "Du har en smittsom epidemi på sykehuset ditt. Det må du gjöre noe med nå!", promotion_to_doctor = "En av dine TURNUSLEGER er nå blitt DOKTOR.", emergency = "Nödstilfelle! Unna vei! Flytt dere!", patient_abducted = "En av dine pasienter er blitt bortfört av romvesen.", first_cure = "Bra jobbet! Du har akkurat kurert din förste pasient.", promotion_to_consultant = "En av dine DOKTORER er nå blitt KONSULENT.", handyman_adjust = "Du kan gjöre Vaktmestrene mer effektiv ved å justere deres prioriteringer.", promotion_to_specialist = "En av dine Leger er blitt forfremmet til %s.", patient_leaving_too_expensive = "En pasient forlater sykehuset ditt uten å gjöre opp for seg ved %s. Det er for dyrt.", vip_arrived = "Pass på! - %s har akkurat ankommet sykehuset ditt! La alt gå på skinner nå, for å tilfredstille han.", epidemic_health_inspector = "Helseministeren har nå fått med seg nyhetene om epidemien din. Du må forberede deg på et besök av ministeren ganske snart.", first_death = "Du har akkurat drept din förste pasient. Hvordan föles det?", pay_rise = "En av dine ansatte truer med å si opp. Velg om du vil gå med på lönnskravene eller om du vil sparke han/henne. Klikk på ikonet nede i venstre hjörne for å se hvem som truer med oppsigelse.", place_windows = "Vinduer gjör rommene lysere og öker arbeidslysten til dine ansatte.", fax_received = "Ikonet som akkurat poppet opp nede i venstre hjörne av skjermen, varsler deg om viktig informasjon og beslutninger du må ta.", initial_general_advice = { rats_have_arrived = "Rotter har infisert sykehuset ditt. Pröv å skyt dem med musen din.", autopsy_available = "Obduksjonsautomaten er nå ferdigutviklet. Med denne kan du kvitte deg med tröblete eller ikke-velkomne pasienter, og gjöre forskning ut av restene. Advarsel - Å benytte denne er svært kontroversielt.", first_patients_thirsty = "Flere av pasientene dine begynner å bli dehydrert. De ville satt pris på en Brusautomat.", research_now_available = "Du har bygd din förste Forskningsavdeling. Du har nå tilgang til Forskningsskjermen.", psychiatric_symbol = "Leger med spesialisering innen Psykiatri gjenkjennes med symbolet: |", decrease_heating = "Folk på sykehuset ditt svetter. Skru ned sentralvarmen. Dette gjöres på Områdekartet.", surgeon_symbol = "Leger kan utföre kirurgiske inngrep om de har symbolet: {", first_emergency = "Akutte pasienter har et blinkende blått lys over hodet. Behandle dem i tide, ellers dör de.", first_epidemic = "Du har en epidemi på sykehuset ditt! Avgjör om du vil rydde opp, eller legge deg paddeflat.", taking_your_staff = "Noen pröver å stjele personalet ditt. Du må kjempe for å beholde de.", place_radiators = "Pasientene fryser - du kan plassere flere radiatorer ved å gå inn på oversikten med gjenstander.", epidemic_spreading = "Det er smittefare på sykehuset. Kurer infiserte pasienter för de forlater sykehuset.", research_symbol = "Forskere er leger med symbolet: }", machine_needs_repair = "Du har utstyr som trenger reparasjon. Finn utstyret - det ryker av det - og klikk på den. Klikk deretter på Vaktmestersymbolet.", increase_heating = "Folk fryser. Skru opp sentralvarmen på Områdekartet.", first_VIP = "Du er i ferd med å ta imot ditt förste VIP-besök. Sörg for at VIP-er ikke ser noe uhygienisk eller pasienter som henger med hodet.", }, }, -- Build advice build_advice = { placing_object_blocks_door = "Om du plasserer gjenstander der, kommer ikke folk seg til dören.", blueprint_would_block = "Den blåkopien kommer til å blokkere andre rom. Pröv å endre rommets störrelse, eller flytt det en annen plass!", door_not_reachable = "Folk kommer ikke til å komme seg til den dören. Tenk litt.", blueprint_invalid = "Det er ikke en gyldig blåkopi.", }, } -- Warnings (more warnings in adviser.warnings) warnings = { levelfile_variable_is_deprecated = "Merk: Brett '%s' inneholder en forringet variabeldefinisjon i brettfilen.'%LevelFile' har fått endret navn til '%MapFile'. Vennligst gi beskjed til brett-designeren om å oppdatere brettet", -- Forbedre tekst? } -- Confirmation confirmation = { quit = "Du har valgt å avslutte. Er du sikker på at du vil forlate spillet?", return_to_blueprint = "Er du sikker på at du vil returnere til Blåkopi-modus?", replace_machine = "Er du sikker på at du vil erstatte %s for $%d?", -- %s (machine name) %d (price) overwrite_save = "Et spill er allerede lagret her. Er du sikker på at du vil overskrive det?", delete_room = "Önsker du virkelig å fjerne dette rommet?", sack_staff = "Er du sikker på at du vil si opp denne personen?", restart_level = "Er du sikker på at du vil starte dette nivået på nytt?", maximum_screen_size = "Opplösningen du har valgt er större enn 3000 x 2000. Större opplösninger er mulig, men det krever bedre maskinvare om det ikke skal hakke. Önsker du å fortsette?", music_warning = "För du får brukt mp3-er som spillmusikk, så må du ha smpeg.dll eller tilsvarende for operativsystemet ditt. Eller vil du ikke få musikk i spillet. Önsker du å fortsette?", } -- Bank manager bank_manager = { hospital_value = "Sykehusets verdi", balance = "Din balanse", current_loan = "Nåværende lån", interest_payment = "Rentekostnader", insurance_owed = "Forsikringsgjeld", inflation_rate = "Inflasjon", interest_rate = "Rentesats", statistics_page = { date = "Dato", details = "Detaljer", money_out = "Utg.", money_in = "Innt.", balance = "Saldo", current_balance = "Balanse", }, } -- Progress Report window progress_report = { quite_unhappy = "Folket ditt er i dårlig humör. ", header = "Progresjonsrapport", very_unhappy = "Folket ditt er i svært dårlig humör. ", more_drinks_machines = "Bygg flere Brusautomater. ", too_cold = "Det er alt for kaldt. Sett ut noen radiatorer. ", too_hot = "Du bör regulere sentralvarmen. Det er alt for varmt. ", percentage_pop = "% befolkning", win_criteria = "KRITERIER FOR Å VINNE", free_build = "FRI BYGGING", } -- Newspaper headlines newspaper = { -- Seven categories of funny headlines. I think each category is related -- to one criterion you can lose to. TODO: categorize { "DR SKREKK OG GRU", "SKUMMEL LEGE LEKER GUD", "DR ACULA SJOKKERER", "HVEM FALT FOR KNIVEN?", "FARLIG FORSKNING STOPPET ETTER RAZZIA" }, { "DR ANKER", "KNUST KIRURG", "KONSULENT PÅ KJÖRET", "KIRURGISK SHOT", "KIRURG DRIKKER OPP", "KIRURGISK SPIRIT" }, { "LEKENDE KIRURG", "DOKTOR PANTSDOWN", "DOKTOR LANGT NEDE", "GLUPSK KIRURG" }, { "LEGE TUKLER MED BALANSEN", "ORGAN-ISERT KRIMINALITET", "BANKMESSIG BYPASS-OPERASJON", "LEGE MED KONTANTBEHOLDNING" }, { "MEDISINSK RAID AV KISTER", "DOKTOR TÖMMER GRAVPLASS", "LIK I GARDEROBEN", "FIN DAG FOR DR DÖD", "SISTE FEILBEHANDLING", "GRAVENDE DOKTOR OPPDAGET" }, { "LEGE SPIST OPP!", "SLAKK KVAKK", "LIVSFARLIG DIAGNOSE", "UFORSIKTIG KONSULENT", }, { "DOKTOR BLÅSER LETTET UT", "KIRURG 'OPERERER' SEG SELV", "LEGE MED UTBLÅSNING", "DOKTOR LEGGER KABEL", "MEDISIN ER NOE DRITT" }, } -- Letters -- TODO letter = { campaign_level_completed = "Bra jobbet! Du klarte brettet, men det er ike over enda! Kunne du tenkt den en stilling hos %s Sykehus?", campaign_completed = "Utrolig! Du har fullført alle brettene. Nå kan du slappe av og skryte på utallige nettforum om dine bragder!", campaign_level_missing = "Beklaer, men det neste brette i denne karrieren ser ut til å mangle (Navn: %s).", --original line-ends: 5 4 2 3 [1] = { [1] = "Kjære %s//", [2] = "Fantastisk! Dette sykehuset har du driftet helt utmerket. Vi i departementet vil vite om du er interessert i å gå lös på et större prosjekt. Vi har en jobbstilling vi tror du ville passet perfekt i. Vi kan friste deg med en lönn på $%d. Tenk litt på det.//", [3] = "Er du interessert i å jobbe på sykehuset %s?", }, [2] = { [1] = "Kjære %s//", [2] = "Veldig bra! Sykehuset ditt har hatt en fantastisk utvikling. Vi har en annen institusjon vi vil du skal ta over, om du er klar for forandringer. Du MÅ ikke ta utfordringen, men det vil nok lönne seg. Lönnen er $%d//", [3] = "Vil du jobbe på sykehuset %s?", }, [3] = { [1] = "Kjære %s//", [2] = "Din tid på dette sykehuset har vært enormt vellykket. Vi spår en stor fremtid for deg, og önsker å tilby deg en stilling et annet sted. Lönnen vil være $%d, og vi tror du vil elske de nye utfordringene stillingen förer med seg.//", [3] = "Vil du ha stillingen på sykehuset %s?", }, [4] = { [1] = "Kjære %s//", [2] = "Gratulerer! Vi i departementet er meget imponert over dine evner til å drifte sykehus. Du er definitivt en gullgutt i Helsedepartementet. Vi tror derimot at du foretrekker en litt töffere jobb. Du får en lönn på $%d, men det er din beslutning.//", [3] = "Er du interessert i å jobbe på sykehuset %s?", }, [5] = { [1] = "Kjære %s//", [2] = "Hei igjen. Vi respekterer dine önsker om å ikke forlate dette sjarmerende sykehuset, men vi ber deg om å ta en ny vurdering. Vi vil tilby deg en god lönn på $%d om du er klar for å flytte til et annet sykehus, og får opp driften til et respektabelt nivå.//", [3] = "Er du interessert i å flytte til sykehuset %s nå?", }, [6] = { [1] = "Kjære %s//", [2] = "Departementet hilser deg. Vi vet hvor glad du er blitt i denne nydelige, velorganiserte institusjonen, men vi tror du bör vurdere å fremme karrieren din nå. Du vil få en respektabel lederlönn på $%d om du bestemmer deg for å flytte. Det er verdt å tenke på det i hvertfall.//", [3] = "Vil du ta imot stillingen på sykehuset %s?", }, [7] = { [1] = "Kjære %s//", [2] = "God dag! Helseministeren lurer på om du vil revurdere din stilling på ditt nåværende sykehus. Vi setter pris på ditt nydelige sykehus, men vi tror du vil gjöre mye for en litt mer utfordrende stilling, og en lönn på $%d.//", [3] = "Tar du utfordringen på sykehuset %s?", }, [8] = { [1] = "Kjære %s//", [2] = "Hallo igjen. Du tok ikke vår forrige utfordring, der vi tilba deg en alle tiders stilling på et nytt sykehus, og en ökt lönn på $%d. Vi mener, derimot, at du bör revurdere beslutningen din. Vi har den perfekte jobben for deg, skjönner du.//", [3] = "Tar du imot stillingen på sykehuset %s? Vær så snill?", }, [9] = { [1] = "Kjære %s//", [2] = "Du har nok en gang bevist at du er den beste innen helseadministrasjon. Ingen tvil! En slik betydningsfull prestasjon må belönnes, så vi önsker å tilby deg stillingen som Administrerende Direktör for Alle Sykehus. Dette er en ærefull stilling, og gir deg en lönn på hele $%d. Du får din egen Ticker-Tape parade, og folk kommer til å vise sin takknemlighet ovenfor deg, hvor enn du går.//", [3] = "Takk for alt du har gjort. Vi önsker deg en lang og trivelig pensjonstid.//", [4] = "", }, [10] = { [1] = "Kjære %s//", [2] = "Gratulerer! Du har driftet alle sykehus vi har gitt deg på en utmerket måte. En slik prestasjon kvalifiserer deg for friheten til å reise rundt i verden. Du blir belönnet med en pensjon på $%d, pluss en limousin, og alt vi ber om er at du reiser fra by til by, möter dine lidenskaplige fans, og promoterer sykehusets arbeid hvor enn du måtte befinne deg.//", [3] = "Vi er alle stolte av deg. Det er ikke en av oss som ikke er takknemlig for ditt harde arbeid som livredder.//", [4] = "", }, [11] = { [1] = "Kjære %s//", [2] = "Din karriere har vært eksemplarisk, og du er en stor inspirasjon for oss alle. Takk for at du har driftet så mange sykehus, og gjort det så bra i alle jobbene. Vi önsker å gi deg en livslang lönn på $%d, og alt vi ber deg om er å reise offisielt med kabriolet fra by til by, og fortelle folk hvordan du tjente så mye penger så fort.//", [3] = "Du er et prakteksempel for alle höyrepolitiske mennesker, og alle i verden, uten unntak, er dine kjæreste eiendeler.//", [4] = "", }, [12] = { [1] = "Kjære %s//", [2] = "Din suksessrike karriere som den beste sykehusadministratoren siden Moses sin tid er ved veis ende. Men siden du har hatt så stor innvirkning på den koselige medisinverdenen, önsker departementet å tilby deg en lönn på $%d bare for å være til stede på våre vegne i åpne fester, sjösette skip og stille opp på show. Hele verden etterlyser deg og det ville vært god PR for oss alle!//", [3] = "Vær så snill å ta imot denne stillingen, det blir ikke hardt arbeid!//", [4] = "", }, } -- Humanoid start of names humanoid_name_starts = { [1] = "BJÖRN", [2] = "HÖY", [3] = "STOR", [4] = "GULL", [5] = "RIK", [6] = "SOL", [7] = "LANGE", [8] = "FLAT", [9] = "HARD", [10] = "MYK", [11] = "BAR", [12] = "SKODDE", [13] = "MÖRKE", [14] = "BLÅ", [15] = "KRIG", [16] = "LAT", [17] = "KRABBE", [18] = "FISK", [19] = "VÅT", [20] = "SEN", [21] = "GRAV", [22] = "BAK", [23] = "LAVE", [24] = "UT", [25] = "ENGE", [26] = "GRÖN", [27] = "KUR", [28] = "KVIT", [29] = "KJEVE", [30] = "TRYGLE", [31] = "KVERN", [32] = "KRYKKE", [33] = "SKADE", } -- Humanoid end of names humanoid_name_ends = { [1] = "STAD", [2] = "BERG", [3] = "NES", [4] = "DAL", [5] = "LID", [6] = "HEIM", [7] = "HEM", [8] = "LAND", [9] = "SETH", [10] = "RUD", [11] = "VIK", [12] = "BÖ", [13] = "GAARD", [14] = "GÅRD", [15] = "HAUG", [16] = "LUND", [17] = "LOFT", [18] = "VER", [19] = "SAND", [20] = "LIE", [21] = "VOLD", [22] = "STRÖM", [23] = "LI", [24] = "DALEN", [25] = "DAHL", [26] = "BAKKEN", } -- VIP names vip_names = { health_minister = "Helseministeren", [1] = "Ordföreren i Greater Trumpton", -- the rest is better organized in an array. [2] = "Lawrence Nightingale", [3] = "Kong Bernard av Nederland", [4] = "Aung Sang Su Kyi, den Burmesisk Demokratiske Opposisjonslederen", [5] = "Sir Reginald Crumbly", -- [6] requires replacement (English uses 'Sir Lancelot Spratt') [7] = "Rådgiver Crawford Purves", [8] = "Rocket Ronnie Jepson", [9] = "En Fotballspiller i Eliteserien", [10] = "L. F. Probst, III", } -- Deseases diseases = { general_practice = { name = "Allmennpraksis", }, bloaty_head = { name = "Ballonghode", cause = "Årsak - Pasienten har sniffet ost og drukket forurenset vann.", symptoms = "Symptomer - Den rammede er meget ukomfortabel.", cure = "Behandling - Man stikker hull på det oppsvulmede hodet, og pumper det opp igjen til korrekt PSI med en intelligent maskin.", }, hairyitis = { name = "Pelssyndrom", cause = "Årsak - Fullmåne.", symptoms = "Symptomer - Ökt luktesans.", cure = "Behandling - En elektrosjokkmaskin fjerner håret og tetter igjen porene.", }, king_complex = { name = "Rock'n'Roll syndrom", cause = "Årsak - Elivs' ånd tar over kontrollen over pasientens hode", symptoms = "Symptomer - Går med fargede lærsko, og spiser cheeseburgere", cure = "Behandling - En Psykiater forteller pasienten hvor tåpelig han eller hun ser ut", }, invisibility = { name = "Usynlighet", cause = "Årsak - Bitt av en radioaktiv (og usynlig) maur", symptoms = "Symptomer - Pasienten lider ikke - tvert imot! De utnytter situasjonen, og lurer familie og venner trill rundt", cure = "Behandling - En fargerik kur fra apoteket gjör pasienten fullt synlig igjen", }, serious_radiation = { name = "Alvorlig stråling", cause = "Årsak - Har forvekslet plutonium-isotoper med tyggegummi.", symptoms = "Symptomer - Pasienten föler seg meget ukomfortabel.", cure = "Behandling - Pasienten blir plassert i en saneringsdusj og renset fullstendig.", }, slack_tongue = { name = "Lös tunge", cause = "Årsak - Kronisk overivrig i diskusjoner om såpeopera.", symptoms = "Symptomer - Tungen hever seg til det femdoble.", cure = "Behandling - Tungen blir plassert i en tungekutter. Hevelsen fjernes deretter hurtig, effektivt og smertefullt.", }, alien_dna = { name = "Utenomjordisk DNA", cause = "Årsak - Bitt av facehuggere utstyrt med intelligent utenomjordisk blod.", symptoms = "Symptomer - Er under gradvis forvandling til romvesen, og har et önske om å ta over våre byer.", cure = "Behandling - Alt DNA blir fjernet mekanisk, renset for utenomjordiske celler, og blir hurtig erstattet.", }, fractured_bones = { name = "Benbrudd", cause = "Årsak - Fall fra store höyder mot betong.", symptoms = "Symptomer - Höye knaselyder og liten bevegelighet på utsatte steder.", cure = "Behandling - Gipsen blir fjernet ved hjelp av en laserstyrt gipsfjerner.", }, baldness = { name = "Flintskalle", cause = "Årsak - Forteller lögner og dikter opp historier for å öke sin popularitet.", symptoms = "Symptomer - Forlegen pasient med skinnende skalle.", cure = "Behandling - Hår blir hurtig smeltet fast til pasientens hode med en smertefull hårmaskin.", }, discrete_itching = { name = "Skrapesyke", cause = "Årsak - Små insekter med skarpe tenner.", symptoms = "Symptomer - Pasienten klör intenst, og huden flasser.", cure = "Behandling - En Sykepleier gir pasienten en sirupaktig drikk som leger huden og hindrer videre klöe.", }, jellyitis = { name = "Gelésyndrom", cause = "Årsak - Gelatinrik diett og for mye mosjon.", symptoms = "Symptomer - Meget ustödig og faller mye.", cure = "Behandling - Pasienten blir presset ned i en gelétönne i et spesielt rom.", }, sleeping_illness = { name = "Sövnsyke", cause = "Forårsaket av overaktive sövnkjertler i munnens gane.", symptoms = "Symptomer - Sterkt önske om å sove, hvor og når som helst.", cure = "Behandling - En sterk dose stimulerende medisin blir delt ut av en Sykepleier.", }, pregnancy = { name = "Graviditet", cause = "Forårsaket av strömbrudd i urbane strök.", symptoms = "Symptomer - Lei av å spise med konstant ölmage.", cure = "Behandling - Spedbarnet blir fjernet med keisersnitt, blir deretter vasket og presentert for sin nye mor.", }, -- unused transparency = { name = "Gjennomsiktighet", cause = "Årsak - Slikket folien på et gammelt yoghurtbeger.", symptoms = "Symptomer - Kroppen blir gjennomsiktig og ekkel.", cure = "Behandling - En kald og fargerik drikk fra apoteket gjör susen.", }, uncommon_cold = { name = "Forkjölelse", cause = "Årsak - Små snörrpartikler i luften.", symptoms = "Symptomer - Rennende nese, hoste og misfarget slim fra lungene.", cure = "Behandling - En real slurk hostesaft fra apoteket vil gjöre susen.", }, broken_wind = { name = "Forurensende gasser", cause = "Årsak - Har löpt på 3d-mölle rett etter middag.", symptoms = "Symptomer - Ubehag hos folk som befinner seg rett bak pasienten.", cure = "Behandling - En sterk blanding av spesielle vannatomer må svelges hurtig.", }, spare_ribs = { name = "Juleribbe", cause = "Årsak - Pasienten har sittet på kalde steingulv.", symptoms = "Symptomer - Ubehagelig fölelse i brystet.", cure = "Behandling - Ribben fjernes av to Kirurger, og leveres til pasienten i en doggybag.", }, kidney_beans = { name = "Kikkerter", cause = "Årsak - Pasienten har spist isbiter.", symptoms = "Symptomer - Smerte og hyppige turer til toalettet.", cure = "Behandling - To Kirurger fjerner de erteliknende parasittene, uten å beröre nyrene!", }, broken_heart = { name = "Knust hjerte", cause = "Årsak - Noen er rikere, yngre og slankere enn pasienten.", symptoms = "Symptomer - Hysterisk gråtende. Blodsprengte fingertupper etter å ha revet opp feriebilder.", cure = "Behandling - To Kirurger spretter opp brystet og setter deretter hjertet forsiktig sammen, mens de holder pusten.", }, ruptured_nodules = { name = "Knekte nötter", cause = "Årsak - Strikkhopp om vinteren.", symptoms = "Symptomer - Umulig å sitte behagelig.", cure = "Behandling - To kvalifiserte Kirurger må fjerne nöttene med stödige hender.", }, tv_personalities = { name = "Programledersyndrom", cause = "Årsak - TV-titting på dagtid.", symptoms = "Symptomer - Forestiller seg at han eller hun er programleder i frokost-tv, og elsker å introdusere kjökkenseansen.", cure = "Behandling - En Psykiater må overtale pasienten til å selge fjernsynet og heller kjöpe radio.", }, infectious_laughter = { name = "Smittsom latter", cause = "Årsak - Klassisk situasjonskomedie på TV.", symptoms = "Symptomer - Ler hjelpelöst hele tiden, og repeterer stadig dårlige poeng som absolutt ikke er morsomme.", cure = "Behandling - En kvalifisert Psykiater må minne pasienten på at dette faktisk er en alvorlig tilstand.", }, corrugated_ankles = { name = "Böyde ankler", cause = "Årsak - Busskjöring over fartsdempere.", symptoms = "Symptomer - Skoene passer ikke.", cure = "Behandling - En giftig blanding av urter og krydder må drikkes for å rette ut anklene.", }, chronic_nosehair = { name = "Kronisk nesehår", cause = "Årsak - Snöfter med forakt på folk med lavere inntekt.", symptoms = "Symptomer - Så mye nesehår at en grevling kunne bodd der.", cure = "Behandling - En ekkel hårfjernende drikk blir inntatt gjennom munnen. Fås på apoteket.", }, third_degree_sideburns = { name = "Tredjegrads koteletter", cause = "Årsak - Lengter tilbake til 70-tallet.", symptoms = "Symptomer - Stort hår, tettsittende klær, langt skinnskjegg og glitter.", cure = "Behandling - Psykiatrisk personell må, ved hjelp av nymoderne teknikker, overbevise pasienten om at parykk er noe tull.", }, fake_blood = { name = "Teaterblod", cause = "Årsak - Pasienten er ofte utsatt for narrestreker.", symptoms = "Symptomer - Rödt blod som dunster ved kontakt med klær.", cure = "Behandling - Eneste måten å behandle dette på, er å få en Psykiater til å roe ned pasienten.", }, gastric_ejections = { name = "Krydrede oppstöt", cause = "Årsak - Sterkt krydret meksikansk eller indisk mat har skylden.", symptoms = "Symptomer - Gulper karrikylling og tacolefser.", cure = "Behandling - En Sykepleier gir pasienten en bindende indisk kumelk-blanding som forhindrer nye oppstöt.", }, the_squits = { name = "Lös mage", cause = "Årsak - Har spist pizzabiter som har falt bak komfyren.", symptoms = "Symptomer - Æsj! Tipper du vet symptomene.", cure = "Behandling - En klebrig blanding kjemikalier må drikkes for å stabilisere magen innvendig.", }, iron_lungs = { name = "Jernlunger", cause = "Årsak - Forurenset byluft blandet med kebabrester.", symptoms = "Symptomer - Kan puste flammer og bröle höyt under vann.", cure = "Behandling - To Kirurger mykner de solide lungene i operasjonssalen.", }, sweaty_palms = { name = "Håndsvette", cause = "Årsak - Er livredd jobbintervjuer.", symptoms = "Symptomer - Å håndhilse på pasienten er som å ta tak i en våt svamp.", cure = "Behandling - En Psykiater må snakke pasienten ut av denne oppdiktede lidelsen.", }, heaped_piles = { name = "Hemoroider", cause = "Årsak - Står i nærheten av drikkevannskjölere.", symptoms = "Symptomer - Pasienten föler at han eller hun sitter på en pose med stein.", cure = "Behandling - En behagelig, men meget syrlig drikk, lösner opp hemoroidene innenifra.", }, gut_rot = { name = "Mageråte", cause = "Årsak - Onkel Georgs miks av hostesaft og whisky.", symptoms = "Symptomer - Ingen hoste, men ingen magesekk heller.", cure = "Behandling - En Sykepleier skriver ut en rekke kjemikalier og gjenskaper veggen i magesekken.", }, golf_stones = { name = "Golfsteiner", cause = "Årsak - Utsatt for giftige gasser fra golfballer.", symptoms = "Symptomer - Forvirring og kraftig skamfölelse.", cure = "Behandling - Steinene fjernes kjapt og effektivt av to Kirurger.", }, unexpected_swelling = { name = "Uventet hevelse", cause = "Årsak - Hva som helst uventet.", symptoms = "Symptomer - Hevelse.", cure = "Behandling - Hevelsen må skjæres bort av to Kirurger.", }, diag_scanner = { name = "Diag Skanner", }, diag_blood_machine = { name = "Diag Blodmaskin", }, diag_cardiogram = { name = "Diag Kardio", }, diag_x_ray = { name = "Diag Röntgen", }, diag_ultrascan = { name = "Diag Ultraskanner", }, diag_general_diag = { name = "Diag Generell", }, diag_ward = { name = "Diag Sengeavd.", }, diag_psych = { name = "Diag Psykiatri", }, autopsy = { name = "Obduksjon", }, } -- Faxes fax = { -- Debug fax debug_fax = { -- never seen this, must be a debug option of original TH -- TODO: make this nicer if we ever want to make use of it close_text = "Yes, yes, yes!", text1 = "BEST COUNT %d", -- %d text2 = "TOTAL PEOPLE IN HOSPITAL %d CHECKING AGAINST %d", -- %d %d text3 = "FIGURES : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", -- %d %d %d %d %d text4 = "FACTORS : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", -- %d %d %d %d %d text5 = "CONTRIBN : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d PERCENT", -- %d %d %d %d %d text6 = "THE FOLLOWING FACTORS ARE ALSO APPLIED", text7 = "REPUTATION: %d EXPECTED %d REDUCTION %d", -- %d %d %d text8 = "AMENITIES %d PEEPS HANDLED %d REDUCTION %d", -- %d %d %d text9 = "DISASTERS %d ALLOWED (MTHS) %d (%d)REDUCTION %d", -- %d %d %d %d text10 = "KILLS %d ALLOWED (MTHS) %d (%d) REDUCTION %d", -- %d %d %d %d text11 = "PEOPLE THIS MONTH %d", -- %d }, -- Emergency emergency = { choices = { accept = "Ja, jeg er klar til å håndtere dette", refuse = "Nei, jeg nekter å ta meg av dette", }, location = "Det har skjedd en ulykke ved %s", num_disease = "Det er %d mennesker med %s som trenger akutt behandling.", num_disease_singular = "Det er 1 person med %s som trenger akutt behandling.", cure_possible_drug_name_efficiency = "Du har det som trengs av nödvendig utstyr og ferdigheter, og du har medisinen de trenger. Det er %s og medisinen er %d prosent effektiv.", cure_possible = "Du har nödvendig utstyr og de ferdigheter som trengs for å ta deg av dette.", cure_not_possible_build_and_employ = "Du vil måtte bygge %s og ansette en %s", cure_not_possible_build = "Du mangler %s for å håndtere dette", cure_not_possible_employ = "Du mangler en %s for å kunne håndtere dette", cure_not_possible = "Du kan ikke behandle denne sykdommen for öyeblikket", bonus = "Om du klarer å håndtere dette nödstilfellet, vil du få en bonus på maksimalt %d. Om du feiler derimot, vil ryktet ditt få en kraftig smell.", free_build = "Hvis du lykkes, vil ditt omdömme vil öke. Men hvis du mislykkes, vil ditt omdömme bli alvorlig svekket!", locations = { "A.Toms Våpenkjeller", "Snobbeuniversitetet", "Buskerud Hagesenter", "Forskningsinstituttet For Farlige Emner", "Foreningen For Folkedansende Menn", "puben Frosk Og Kyr", "Hallgeir Juniors Begravelsesbyrå Og Spritbutikk", "Mama-Tai Krydderhus", "Berts Varehus For Brukt Petrokjemi", }, }, emergency_result = { close_text = "Klikk for å gå ut", earned_money = "Av en maksimal bonus på %d, har du tjent %d.", saved_people = "Du reddet %d personer av totalt %d.", }, -- Disease discovered disease_discovered_patient_choice = { choices = { send_home = "Send pasienten hjem.", wait = "Få pasienten til å vente litt på sykehuset.", research = "Send pasienten til forskningsavdelingen.", }, need_to_build_and_employ = "Om du bygger %s og ansetter en %s kan du löse problemet med en gang.", need_to_build = "Du må bygge %s for å håndtere dette.", need_to_employ = "Ansett en %s for å hjelpe pasienten.", can_not_cure = "Du kan ikke behandle denne sykdommen.", disease_name = "Dine ansatte har stött på et tilfelle av %s.", what_to_do_question = "Hva vil du gjöre med pasienten?", guessed_percentage_name = "Teamet ditt mener de vet hva som feiler pasienten. Det er %d prosent sannsynlighet for at det er %s", }, disease_discovered = { close_text = "En ny sykdom er oppdaget.", can_cure = "Du kan behandle denne sykdommen.", need_to_build_and_employ = "Om du bygger %s og ansetter en %s kan du håndtere dette.", need_to_build = "Du må bygge %s for å håndtere dette.", need_to_employ = "Ansett en %s for å behandle pasienter med denne sykdommen.", discovered_name = "Ditt team har oppdaget et tilfelle av %s.", }, -- Epidemic epidemic = { choices = { declare = "Offentliggjör epidemi, betal boten og godta at ryktet ditt blir svekket.", cover_up = "Forsök å behandle alle infiserte pasienter för tiden renner ut, og för noen forlater sykehuset.", }, disease_name = "Dine Leger har oppdaget en svært smittsom form for %s.", declare_explanation_fine = "Om du offentliggjör epidemien, må du betale en bot på %d, ditt rykte får en smell, og samtlige pasienter blir vaksinert automatisk.", cover_up_explanation_1 = "Om du derimot forsöker å holde epidemien skjult, må du behandle samtlige infiserte pasienter för helsemyndighetene får rede på det.", cover_up_explanation_2 = "Om en Helseinspektör kommer på besök og finner ut at du pröver å skjule epidemien, kan han gå drastisk til verks.", }, -- Epidemic result epidemic_result = { close_text = "Hurra!", failed = { part_1_name = "Gjennom forsöket på å skjule det faktum at vi sto ovenfor et smittsomt utbrudd av %s", part_2 = "klarte personalet ditt selvfölgelig å spre epidemien ut til alle sykehusets naboer.", }, succeeded = { part_1_name = "Helseinspektören hörte rykter om at institusjonen din slet med et alvorlig tilfelle av %s.", part_2 = "Han har derimot ikke lykkes i å finne beviser som bekrefter ryktene.", }, compensation_amount = "Myndighetene har besluttet å gi deg %d i kompensasjon for skaden disse lögnene har påfört ditt gode rykte.", fine_amount = "Myndighetene har erklært nasjonal unntakstilstand og bötelegger deg med %d.", rep_loss_fine_amount = "Avisene har nå nytt forsidestoff, og ditt rykte får en kraftig smell. I tillegg blir du bötelagt med %d.", hospital_evacuated = "Helserådet har ikke annet valg enn å evakuere sykehuset ditt.", }, -- VIP visit query vip_visit_query = { choices = { invite = "Send offisiell invitasjon til V.I.P.", refuse = "Avvis forespörselen fra V.I.P med dårlige unnskyldninger.", }, vip_name = "%s har ytret et önske om å få besöke sykehuset ditt", }, -- VIP visit result vip_visit_result = { close_text = "Takk for at du besökte sykehuset.", telegram = "Telegram!", vip_remarked_name = "Etter sitt besök på sykehuset ditt, sa %s fölgende:", cash_grant = "Du er blitt tildelt %d i kontanter.", rep_boost = "Ditt rykte i nærområdet har fått en opptur.", rep_loss = "Ditt rykte har fått seg en smell.", remarks = { free_build = { [1] = "Det er et veldig fint sykehus du har der! Men det er ikke veldig vanskelig å få det til å fungerer uten pengebegrensninger.", [2] = "Jeg er ingen ökonom, men jeg tror jeg kunne styrt dette sykehuset også, hvis du skjönner hva jeg mener.", [3] = "Et meget veldrevet sykehus. Men se opp for ökonomiske nedgangstider! Å, det er sant. Du trenger ikke å bekymre deg for det.", }, [1] = "For et flott sykehus. Neste gang jeg blir alvorlig syk vil jeg hit.", [2] = "Dette er hva jeg kaller et sykehus.", [3] = "Et supert sykehus. Og jeg vet hva jeg snakker om, for jeg har vært med på en del.", [4] = "For et velorganisert sykehus. Takk for at jeg fikk komme hit.", [5] = "Hmm. Ingen dårlig medisinsk institusjon dette, det skal være visst.", [6] = "Jeg likte ditt sjarmerende sykehus. Forresten, noen som blir med å spise indisk?", [7] = "Vel, jeg har sett verre. Men du burde gjöre noen forbedringer.", [8] = "Å kjære min tid. Dette er ikke stedet å gå om du föler deg dårlig.", [9] = "Et helt alminnelig sykehus, for å være ærlig. Jeg hadde forventet meg noe mer.", [10] = "Hva gjör jeg her egentlig? Dette her var verre enn en firetimers opera!", [11] = "Dette var ekkelt. Kaller du dette et sykehus? Ser mer ut som en svinesti!", [12] = "Jeg er lei av å være en offentlig person og lei stinkende hull som dette! Jeg sier opp.", [13] = "For et syn. Dette sykehuset skal jeg pröve å få lagt ned.", [14] = "Jeg har aldri sett på maken. For en skandale!", [15] = "Jeg er sjokkert. Du kan ikke kalle dette et sykehus! Jeg går og tar meg en sterk drink.", }, }, -- Diagnosis failed diagnosis_failed = { choices = { send_home = "Send pasienten hjem", take_chance = "Gjett sannsynlig behandling.", wait = "Få pasienten til å vente mens du bygger flere diagnoserom.", }, situation = "Vi har brukt alle våre diagnosemetoder på denne pasienten, men vi vet fremdeles ikke sikkert hva som er galt.", what_to_do_question = "Hva skal vi gjöre med pasienten?", partial_diagnosis_percentage_name = "Det er %d prosent sannsynlighet for at vi vet hvilken type %s pasienten har.", }, } -- Queue window queue_window = { num_in_queue = "Kölengde", num_expected = "Ventet", num_entered = "Antall besök", max_queue_size = "Maks str.", } -- Handyman window handyman_window = { parcel = "Tomt", all_parcels = "Alle tomter", } -- Dynamic info dynamic_info = { patient = { actions = { dying = "Döende", awaiting_decision = "Venter din beslutning", queueing_for = "I köen til %s", -- %s on_my_way_to = "På vei til %s", -- %s cured = "Kurert!", fed_up = "Sint, forlater sykehuset", sent_home = "Sendt hjem", sent_to_other_hospital = "Henvist til annet sykehus", no_diagnoses_available = "Ingen flere diagnosemuligheter", no_treatment_available = "Ingen behandling mulig - Jeg går hjem", waiting_for_diagnosis_rooms = "Venter på at du skal bygge flere diagnoserom for meg", waiting_for_treatment_rooms = "Venter på at du skal bygge behandlingsrom for meg", prices_too_high = "Prisene er for höye - Jeg går hjem", epidemic_sent_home = "Sendt hjem av inspektör", epidemic_contagious = "Jeg er smittsom", epidemic_vaccinated = "Jeg er ikke smittsom lenger", }, diagnosed = "Diagnose: %s", -- %s guessed_diagnosis = "Gjettet diagnose: %s", -- %s diagnosis_progress = "Diagnoseprosess", emergency = "Akutt: %s", -- %s (disease name) }, vip = "Besökende VIP", health_inspector = "Helseinspektör", staff = { psychiatrist_abbrev = "Psyk.", actions = { waiting_for_patient = "Venter på pasient", wandering = "Vandrer rundt omkring", going_to_repair = "Skal reparere %s", -- %s (name of machine) }, tiredness = "Tretthet", ability = "Evner", -- unused? }, object = { strength = "Holdbarhet: %d", -- %d (max. uses) times_used = "Ganger brukt: %d", -- %d (times used) queue_size = "Kölengde: %d", -- %d (num of patients) queue_expected = "Forventet kölengde: %d", -- %d (num of patients) }, } introduction_texts = { demo = "Velkommen til demonstrasjonssykehuset!//" .. "Uheldigvis inneholder demoversjonen kun dette nivået. Uansett så er det mer enn nok å gjöre her for å holde deg opptatt en stund! " .. "Du vil möte på forskjellige sykdommer som krever forskjellige rom for å kureres. Fra tid til annen kan nödstilfeller oppstå. Du må også forske frem nye rom ved hjelp av en forskningsavdeling. " .. "Målet ditt er å tjene $100,000, ha et sykehus som er verdt $70,000 og et omdömme på 700, samt kurert minst 75% av pasientene. " .. "Pass på at omdömmet ditt ikke faller under 300 og at du ikke dreper mer enn 40% av pasientene, for ellers vil du tape nivået.//" .. "Lykke til!", level1 = "Velkommen til ditt förste sykehus!//" .. "Få stedet opp og gå ved å plassere en Resepsjon, bygge en Allmennpraksis, og ansette en Resepsjonist og en Lege. " .. "Vent så til det begynner å skje ting." .. "Det er smart å bygge Psykiatri og ansette en Lege med fordypning innenfor psykiatri. " .. "Et Apotek og en Sykepleier er essensielt for å kurere pasientene dine. " .. "Se opp for mange tilfeller av Ballonghode - et Pumperom vil fort kunne være til stor hjelp. " .. "Du må kurere 10 pasienter og sörge for at omdömmet ditt ikke blir mindre enn 200. ", level2 = "Det er et större spekter av plager i dette området. " .. "Bygg sykehuset for å behandle flere pasienter, og planlegg en egen Forskningsavdeling. " .. "Husk å holde institusjonen ren, og streb etter så höyt omdömme som mulig - du vil måtte håndtere plager som Lös tunge, så du trenger en Tungeklinikk. " .. "Du kan også bygge Kardiorom for å forbedre diagnostisering. " .. "Begge disse rommene vil måtte forskes på för du kan bygge de. Du kan også utvide sykehustomten slik at du får mer plass å boltre deg på - Bruk Områdekartet til dette. " .. "Streb etter et omdömme på 300 og en banksaldo på $10,000, samt 40 kurerte pasienter. ", level3 = "Du setter opp et sykehus i et velstående område denne gangen. " .. "Helsedepartementet er ute etter at du klarer å sikre en sunn profitt her. " .. "Du må få et godt rykte til å begynne med, men når sykehuset går av seg selv, så konsentrer deg om å tjene så mye penger du klarer. " .. "Det er også en sjanse for at nödssituasjoner oppstår. " .. "Dette er når store mengder mennesker kommer på en gang med samme tilstand. " .. "Kurerer du alle innen tidsfristen så får du et bedre rykte, og en stor xbonus. " .. "Sykdommer som Rock'n'Roll-syndrom kan inntreffe og du bör budsjettere for en Operasjonssal med en Sykestue i nærheten. " .. "Tjen opp $20,000 for å klare nivået.", level4 = "Hold alle pasientene dine fornöyde, ta deg av dem så effektivt som mulig og hold dödsfall til et absolutt minimum. " .. "Ditt omdömme står på spill, så sörg for at du får det så höyt som mulig. " .. "Ikke bekymre deg for mye over penger - det vil komme etter som ditt vitale omdömme vokser. " .. "Du vil kunne skolere Leger til å utvide sine evner. " .. "Du kan komme til få pasienter som synes å være mer gjennomsiktig enn de fleste. " .. --sjekk english.lua er det bra nok oversettelse? "Oppnå et omdömme på over 500.", level5 = "Dette blir et travelt sykehus, siden du må håndtere et bredt spekter av tilfeller. " .. "Legene du kan ansette kommer rett fra skolen, så det kommer til å være avgjörende for deg å bygge et Klasserom og skolere dem til et akseptabelt nivå. " .. "Du har kun tre Konsulenter til å lære opp de uerfarne medarbeiderne, så hold dem lykkelige slik at de ikke slutter. " .. "Merk deg også at sykehusets fundament står på en grunn full av geologiske feil. " .. "Faren for jordskjelv er alltid tilstedeværende. " .. "De vil forårsake betydelig skade på maskiner, og forstyrre den jevne driften av sykehuset. " .. "Få omdömmet ditt opp til 400, og ha $50,000 i banken for å lykkes. Du må også kurere 200 pasienter.", level6 = "Bruk all din kunnskap til å sette opp et velsmurt og kompetent sykehus som gjör et sunt overskudd og kan håndtere alt som den sykelige offentligheten kan kaste på det. " .. --todo - godt nok oversatt? "Du bör være klar over at atmosfæren rundt her er kjent for å bære med seg bakterier og infeksjoner. " .. "Med mindre du klarer å holde institusjonen din omhyggelig ren, kan du stå overfor en rekke epidemier blant pasientene. " .. "Pass på at du skaffer deg $150,000, og at sykehuset er verdt over $140,000.", level7 = "Her vil du være under nöye gransking fra Helsedepartementet, så sörg for at kontoene dine viser at du tjener en masse penger, og at omdömmet ditt er svært bra. " .. "Vi har ikke råd til unödvendige dödsfall - det er dårlig for forretningene. " .. "Sörg for at personalet er i tipp-topp form, og at du har alt utstyret du trenger. " .. "Få et omdömme på 600, pluss $200,000 i banken.", level8 = "Det er opp til deg å sette opp det mest effektive og kostnadseffektive sykehuset som mulig. " .. "Menneskene rundt her er ganske velstående, så flå dem for så mye grunker du bare klarer. " .. "Husk at det å kurere mennesker er veldig fint, men du trenger virkelig pengene det bringer. " .. "Behandle disse syke personene med Pengeutsugeren. " .. "Samle opp en pengehaug på $300,000 for å fullföre dette nivået.", level9 = "Etter å ha fylt opp Ministerens bankkonto og finansiert Ministerens nye limousin, kan du nå konsentrere deg om å lage et omsorgsfullt og velfungerende sykehus for de trengende. " .. "Du må forvente å stöte på en rekke problemer her." .. "Om du har nok av rom og flinke ansatte, skal du kunne ha dette under kontroll. " .. "Sykehuset ditt må ha en verdi på $200,000, og du må ha $400,000 i banken. " .. "Med noe mindre får du ikke fullfört dette nivået.", level10 = "I tillegg til å få bukt med alle sykdommene som dukker opp i denne skogkanten, så vil Departementet at du bruker litt tid på å konsentrere deg om effektiviteten av legemidlene dine. " .. "Det har kommet noen klager fra Ofsick, Helsedepartementets vakthund, så for at alt skal se bra ut du må sörge for at alle legemidler er svært effektive. " .. --todo (bytte ut "Ofsick" med et norskt navn).. "Kontroller også at sykehuset i tillegg er uklanderlig. Hold dödsfallene nede. " .. "Som et hint, så kanskje du bör holde av litt plass til en Gelétönne. " .. "Utvikle alle dine medisiner til minst 80 prosent effektivitet, få et omdömme på 650 og gjem unna $500,000 i banken for å vinne. ", level11 = "Du har fått muligheten til å bygge det ultimate innen sykehus. " .. "Dette er et meget prestisjefylt område, og Departementet önsker å se det best mulige sykehuset. " .. "Vi vil forvente at du gjör store penger, har et ypperlig og godt omdömme og dekker alle mulige hendelser. " .. "Dette er en viktig jobb. " .. "Du må være virkelig begavet for å gjennomföre det. " .. "Merk også at det har vært observasjoner av UFO-er i området. Sörg for at personalet er forberedt på noen uventede gjester. " .. "Sykehuset ditt må være verdt $240,000, du må ha $500,000 i banken og ditt omdömme må være på minst 700.", level12 = "Du har fått moderen av alle utfordringer nå. " .. "Departementet er imponert over din suksess, og har skaffet toppjobben for deg; de vil at du skal bygge enda et storslagent sykehus, skaffe en stor haug med penger og få et bra utrolig rykte. " .. "Det forventes at du kjöper opp alle områdene du klarer, kurerer alle sykdommer (og da mener vi alle) og vinner alle premiene. " .. "Tror du at du klarer det?" .. "Tjen $650,000, kurer 750 pasienter og få et omdömme på 800 for å vinne dette nivået.", level13 = "Din enestående dyktighet som sykehusadministrator har blitt oppdaget av Hemmelig Super-avdeling fra Superhemmelige Tjenester. " .. "De har en spesiell bonus for deg; det er et rotteinfisert sykehus som trenger en effektiv Terminator. " .. "Du må skyte så mange rotter som mulig för Vaktmesterne rydder opp all söpla. " .. "Tror du at du klarer oppgaven?", level14 = "Det er nok en utfordring - det helt uventede overraskelsessykehuset. " .. "Om du klarer å gjöre en suksess ut av dette, vil du bli vinneren over alle andre vinnere. " .. "Ikke forvent at det skal være fort gjort, ettersom det er det töffeste oppdraget du noensinne vil få. " .. "Lykke til!", level15 = "Ok, det var den grunnleggende teknikken i å sette et sykehus sammen.//" .. "Legene dine kommer til å trenge all den hjelpen de kan få til å diagnostisere noen av disse pasientene. Du kan hjelpe dem ved å " .. "bygg et ny diagnoserom, for eksempel Generell Diagnose.", level16 = "Når du har diagnostisert noen av pasientene må du bygge behandlingsrom og klinikker for å kurere dem - en god idé å begynne " .. "med Apoteket. Du trenger også en Sykepleier for å utlevere ulike legemidler fra Apoteket.", level17 = "Siste advarsel - hold öye med omdömmet ditt - det er dette som tiltrekker pasienter til sykehuset ditt. " .. "Om du ikke dreper for mange mennesker og samtidig holder pasientene noenlunde i godt humör, skal du ikke ha for store problemer med dette nivået!//" .. "Nå må du klare deg selv. Lykke til med det.", level18 = "", } -- Miscellaneous -- Category of strings that fit nowhere else or we are not sure where they belong. -- If you think a string of these fits somewhere else, please move it there. -- Don't forget to change all references in the code and other language files. misc = { grade_adverb = { mildly = "mild", moderately = "moderat", extremely = "ekstrem", }, done = "Ferdig", pause = "Pause", send_message = "Send beskjed til spiller %d", -- %d (player number) send_message_all = "Send beskjed til alle spillere", save_success = "Spill lagret", save_failed = "FEIL: Kunne ikke lagre spill", hospital_open = "Sykehus åpent", out_of_sync = "Spillet ute av synk", load_failed = "Kunne ikke laste tidligere spill", low_res = "Lav oppl.", balance = "Balansefil:", mouse = "Mus", force = "Styrke", } -- Original credits (untranslated) original_credits = { [1] = " ", [2] = " ", [3] = " ", [4] = " ", [5] = " ", [6] = " ", [7] = " ", [8] = " ", [9] = " ", [10] = " ", [11] = " ", [12] = ":Designed and Created by", [13] = ":Bullfrog Productions", [14] = " ", [15] = ":Pluto Development Team", [16] = ",", [17] = "Mark Webley", [18] = "Gary Carr", [19] = "Matt Chilton", [20] = "Matt Sullivan", [21] = "Jo Rider", [22] = "Rajan Tande", [23] = "Wayne Imlach", [24] = "Andy Bass", [25] = "Jon Rennie", [26] = "Adam Coglan", [27] = "Natalie White", [28] = " ", [29] = " ", [30] = " ", [31] = ":Programming", [32] = ",", [33] = "Mark Webley", [34] = "Matt Chilton", [35] = "Matt Sullivan", [36] = "Rajan Tande", [37] = " ", [38] = " ", [39] = " ", [40] = ":Art", [41] = ",", [42] = "Gary Carr", [43] = "Jo Rider", [44] = "Andy Bass", [45] = "Adam Coglan", [46] = " ", [47] = " ", [48] = " ", [49] = ":Additional Programming", [50] = ",", [51] = "Ben Deane", [52] = "Gary Morgan", [53] = "Jonty Barnes", [54] = " ", [55] = " ", [56] = " ", [57] = ":Additional Art", [58] = ",", [59] = "Eoin Rogan", [60] = "George Svarovsky", [61] = "Saurev Sarkar", [62] = "Jason Brown", [63] = "John Kershaw", [64] = "Dee Lee", [65] = " ", [66] = " ", [67] = " ", [68] = ":Intro Sequence", [69] = ",", [70] = "Stuart Black", [71] = " ", [72] = " ", [73] = " ", [74] = ":Music and Sound Effects", [75] = ",", [76] = "Russell Shaw", [77] = "Adrian Moore", [78] = " ", [79] = " ", [80] = " ", [81] = ":Additional Music", [82] = ",", [83] = "Jeremy Longley", [84] = "Andy Wood", [85] = " ", [86] = " ", [87] = " ", [88] = ":Announcer Voiceover", [89] = ",", [90] = "Rebecca Green", [91] = " ", [92] = " ", [93] = " ", [94] = ":Level Design", [95] = ",", [96] = "Wayne Imlach", [97] = "Natalie White", [98] = "Steven Jarrett", [99] = "Shin Kanaoya", [100] = " ", [101] = " ", [102] = " ", [103] = ":Scripting", [104] = ",", [105] = "James Leach", [106] = "Sean Masterson", [107] = "Neil Cook", [108] = " ", [109] = " ", [110] = " ", [111] = ":R&D", [112] = " ", [113] = ":Graphics Engine", [114] = ",", [115] = "Andy Cakebread", [116] = "Richard Reed", [117] = " ", [118] = " ", [119] = " ", [120] = ":R&D Support", [121] = ",", [122] = "Glenn Corpes", [123] = "Martin Bell", [124] = "Ian Shaw", [125] = "Jan Svarovsky", [126] = " ", [127] = " ", [128] = " ", [129] = ":Library and Tools", [130] = " ", [131] = "Dos and Win 95 Library", [132] = ",", [133] = "Mark Huntley", [134] = "Alex Peters", [135] = "Rik Heywood", [136] = " ", [137] = " ", [138] = " ", [139] = ":Network Library", [140] = ",", [141] = "Ian Shippen", [142] = "Mark Lamport", [143] = " ", [144] = " ", [145] = " ", [146] = ":Sound Library", [147] = ",", [148] = "Russell Shaw", [149] = "Tony Cox", [150] = " ", [151] = " ", [152] = " ", [153] = ":Installer Programming", [154] = ",", [155] = "Andy Nuttall", [156] = "Tony Cox", [157] = "Andy Cakebread", [158] = " ", [159] = " ", [160] = " ", [161] = ":Moral Support", [162] = ",", [163] = "Peter Molyneux", [164] = " ", [165] = " ", [166] = " ", [167] = ":Testing Manager", [168] = ",", [169] = "Andy Robson", [170] = " ", [171] = " ", [172] = " ", [173] = ":Lead Testers", [174] = ",", [175] = "Wayne Imlach", [176] = "Jon Rennie", [177] = " ", [178] = " ", [179] = " ", [180] = ":Play Testers", [181] = ",", [182] = "Jeff Brutus", [183] = "Wayne Frost", [184] = "Steven Lawrie", [185] = "Tristan Paramor", [186] = "Nathan Smethurst", [187] = " ", [188] = "Ryan Corkery", [189] = "Simon Doherty", [190] = "James Dormer", [191] = "Martin Gregory", [192] = "Ben Lawley", [193] = "Joel Lewis", [194] = "David Lowe", [195] = "Robert Monczak", [196] = "Dominic Mortoza", [197] = "Karl O'Keeffe", [198] = "Michael Singletary", [199] = "Andrew Skipper", [200] = "Stuart Stephen", [201] = "David Wallington", [202] = " ", [203] = "And all our other Work Experience Play Testers", [204] = " ", [205] = " ", [206] = " ", [207] = ":Technical Support", [208] = ",", [209] = "Kevin Donkin", [210] = "Mike Burnham", [211] = "Simon Handby", [212] = " ", [213] = " ", [214] = " ", [215] = ":Marketing", [216] = ",", [217] = "Pete Murphy", [218] = "Sean Ratcliffe", [219] = " ", [220] = " ", [221] = " ", [222] = ":With thanks to:", [223] = ",", [224] = "Tamara Burke", [225] = "Annabel Roose", [226] = "Chris Morgan", [227] = "Pete Larsen", [228] = " ", [229] = " ", [230] = " ", [231] = ":PR", [232] = ",", [233] = "Cathy Campos", [234] = " ", [235] = " ", [236] = " ", [237] = ":Documentation", [238] = ",", [239] = "Mark Casey", [240] = "Richard Johnston", [241] = "James Lenoel", [242] = "Jon Rennie", [243] = " ", [244] = " ", [245] = " ", [246] = ":Documentation & Packaging Design", [247] = ",", [248] = "Caroline Arthur", [249] = "James Nolan", [250] = " ", [251] = " ", [252] = " ", [253] = ":Localisation Project Manager", [254] = ",", [255] = "Carol Aggett", [256] = " ", [257] = " ", [258] = " ", [259] = ":Localisation", [260] = ",", [261] = "Sandra Picaper", [262] = "Sonia 'Sam' Yazmadjian", [263] = " ", [264] = "Bettina Klos", [265] = "Alexa Kortsch", [266] = "Bianca Normann", [267] = " ", [268] = "C.T.O. S.p.A. Zola Predosa (BO)", [269] = "Gian Maria Battistini", [270] = "Maria Ziino", [271] = "Gabriele Vegetti", [272] = " ", [273] = "Elena Ruiz de Velasco", [274] = "Julio Valladares", [275] = "Ricardo Martínez", [276] = " ", [277] = "Kia Collin", [278] = "CBG Consult", [279] = "Ulf Thor", [280] = " ", [281] = " ", [282] = " ", [283] = ":Production", [284] = ",", [285] = "Rachel Holman", [286] = " ", [287] = " ", [288] = " ", [289] = ":Producer", [290] = ",", [291] = "Mark Webley", [292] = " ", [293] = " ", [294] = " ", [295] = ":Associate Producer", [296] = ",", [297] = "Andy Nuttall", [298] = " ", [299] = " ", [300] = " ", [301] = ":Operations", [302] = ",", [303] = "Steve Fitton", [304] = " ", [305] = " ", [306] = " ", [307] = ":Company Administration", [308] = ",", [309] = "Audrey Adams", [310] = "Annette Dabb", [311] = "Emma Gibbs", [312] = "Lucia Gobbo", [313] = "Jo Goodwin", [314] = "Sian Jones", [315] = "Kathy McEntee", [316] = "Louise Ratcliffe", [317] = " ", [318] = " ", [319] = " ", [320] = ":Company Management", [321] = ",", [322] = "Les Edgar", [323] = "Peter Molyneux", [324] = "David Byrne", [325] = " ", [326] = " ", [327] = ":All at Bullfrog Productions", [328] = " ", [329] = " ", [330] = " ", [331] = ":Special Thanks to", [332] = ",", [333] = "Everyone at Frimley Park Hospital", [334] = " ", [335] = ":Especially", [336] = ",", [337] = "Beverley Cannell", [338] = "Doug Carlisle", [339] = " ", [340] = " ", [341] = " ", [342] = ":Keep On Thinking", [343] = " ", [344] = " ", [345] = " ", [346] = " ", [347] = " ", [348] = " ", [349] = " ", [350] = " ", [351] = " ", [352] = " ", [353] = " ", [354] = " ", [355] = " ", [356] = " ", [357] = " ", [358] = " ", [359] = " ", [360] = " ", [361] = ".", } CorsixTH-0.70.0/CorsixTH/Lua/languages/original_strings.lua000066400000000000000000002012641522247547500235750ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- Note: This is a pseudo language that defines the mapping between new string -- identifiers and original strings. This language cannot be selected directly. Language("original_strings") SetSpeechFile("Sound-".. ... ..".dat") local S = LoadStrings("Lang-".. ... ..".dat") Encoding(utf8) -- Fix inconsistencies/bugs in german lang file. local function fixGermanStrings(lang_num) if lang_num ~= 2 then return end -- Strings [44][168] (which contains a %s) and [44][169] (contains %d) were -- replaced with a single string [44][168] with %s and %d in german full version. -- Due to this, the remaining strings in section 44 were also off by one. -- Solve it by splitting the string into two. -- NB: ONLY in full version, in demo this is NOT broken (thus do length check) if #S[44][168] == 108 then for str = 218, 169, -1 do S[44][str+1] = S[44][str] end S[44][169] = S[44][168]:sub(46) S[44][168] = S[44][168]:sub(1, 45) end -- Strings [28][32] and [28][33] are equal in the German translation of the full -- version, this causes a mismatch with the English strings -- eng-strings [28][33] to [28][63] are equal to ger-strings [28][34] to [28][64] -- NB: ONLY in full version, demo version is not affected (thus do checks) if S[28][32] == S[28][33] and #S[28] == 64 then for str = 33, 63 do S[28][str] = S[28][str+1] end end -- German spelling reform: eszett changed to double s in a number of words. -- Mass-apply this change here, so we don't have to override all those strings. local repl = { ["daß"] = "dass", ["muß"] = "muss", -- includes occurrences of mußte, mußten ["läßt"] = "lässt", -- includes occurrences of verläßt ["Engpaß"] = "Engpass", ["bißchen"] = "bisschen", ["Streß"] = "Stress", ["Biß"] = "Biss", ["Freßpaket"] = "Fresspaket", ["Paßt"] = "Passt", ["Läßt"] = "Lässt", ["verantwortungsbewußt"] = "verantwortungsbewusst", ["verläßlich"] = "verlässlich", ["Schlußlicht"] = "Schlusslicht", ["unerläßlich"] = "unerlässlich", } for c, cat in ipairs(S) do for s, str in ipairs(cat) do for from, to in pairs(repl) do while str:find(from) do str = str:gsub(from, to) end end S[c][s] = str end end -- good and bad (but not misc) staff description strings are missing space at the end for s, _ in ipairs(S[47]) do S[47][s] = S[47][s] .. " " end for s, _ in ipairs(S[48]) do S[48][s] = S[48][s] .. " " end end fixGermanStrings(...) deprecated = S -- For compatibility -- each of these corresponds to a sprite staff_class = { nurse = S[1][1], doctor = S[1][2], handyman = S[1][3], receptionist = S[1][4], surgeon = S[1][5], -- S[1][6] unused } -- these are titles used e.g. in the dynamic info bar staff_title = { receptionist = S[34][1], general = S[34][2], -- unused? nurse = S[34][3], junior = S[34][4], doctor = S[34][5], surgeon = S[34][6], psychiatrist = S[34][7], consultant = S[34][8], researcher = S[34][9], } object = { -- S[2][ 1] unused desk = S[2][ 2], cabinet = S[2][ 3], door = S[2][ 4], bench = S[2][ 5], table1 = S[2][ 6], -- unused object chair = S[2][ 7], drinks_machine = S[2][ 8], bed = S[2][ 9], inflator = S[2][10], pool_table = S[2][11], reception_desk = S[2][12], table2 = S[2][13], -- unused object & duplicate cardio = S[2][14], scanner = S[2][15], console = S[2][16], screen = S[2][17], litter_bomb = S[2][18], couch = S[2][19], sofa = S[2][20], crash_trolley = S[2][21], tv = S[2][22], ultrascanner = S[2][23], dna_fixer = S[2][24], cast_remover = S[2][25], hair_restorer = S[2][26], slicer = S[2][27], x_ray = S[2][28], radiation_shield = S[2][29], x_ray_viewer = S[2][30], operating_table = S[2][31], lamp = S[2][32], -- unused object toilet_sink = S[2][33], op_sink1 = S[2][34], op_sink2 = S[2][35], surgeon_screen = S[2][36], lecture_chair = S[2][37], projector = S[2][38], bed2 = S[2][39], -- unused duplicate pharmacy_cabinet = S[2][40], computer = S[2][41], atom_analyser = S[2][42], blood_machine = S[2][43], fire_extinguisher = S[2][44], radiator = S[2][45], plant = S[2][46], electrolyser = S[2][47], jelly_moulder = S[2][48], gates_of_hell = S[2][49], bed3 = S[2][50], -- unused duplicate bin = S[2][51], toilet = S[2][52], swing_door1 = S[2][53], swing_door2 = S[2][54], shower = S[2][55], auto_autopsy = S[2][56], bookcase = S[2][57], video_game = S[2][58], entrance_left = S[2][59], entrance_right = S[2][60], skeleton = S[2][61], comfortable_chair = S[2][62], } -- S[3][1]: unused -- S[3][2]: what's this for? Apparently some command line option of original TH -- let you start a specific level directly - on difficult and named HORZA. pay_rise = { definite_quit = S[3][3], regular = { S[3][ 4], -- %d (rise) S[3][ 5], -- %d (rise) %d (new total) S[3][ 6], -- %d (rise) S[3][ 7], -- %d (rise) %d (new total) S[3][ 8], -- %d (rise) S[3][ 9], -- %d (rise) }, poached = S[3][10], -- %d (new total) %s (competitor) } place_objects_window = { drag_blueprint = S[3][11], place_door = S[3][12], place_windows = S[3][13], place_objects = S[3][14], confirm_or_buy_objects = S[3][15], pick_up_object = S[3][16], place_objects_in_corridor = S[3][17], } -- Category of strings that fit nowhere else or we are not sure where they belong. -- If you think a string of these fits somewhere else, please move it there. -- Don't forget to change all references in the code and other language files. misc = { grade_adverb = { mildly = S[3][18], moderately = S[3][19], extremely = S[3][20], }, done = S[3][21], pause = S[3][22], send_message = S[3][23], -- %d (player number) send_message_all = S[3][24], save_success = S[3][25], save_failed = S[3][26], hospital_open = S[3][27], out_of_sync = S[3][28], load_failed = S[3][29], low_res = S[3][30], balance = S[3][31], mouse = S[11][5], force = S[11][6], } -- 4: diseases. This also already handles disease descriptions in 44. -- helper function for diseases local function D(name_str, cause_str) local list = {} list.name = S[4][name_str] if cause_str then list.cause = S[44][cause_str] list.symptoms = S[44][cause_str + 1] list.cure = S[44][cause_str + 2] end return list end diseases = { -- none = D( 1), -- not used/needed? general_practice = D( 2), bloaty_head = D( 3, 62), hairyitis = D( 4, 65), king_complex = D( 5, 68), invisibility = D( 6, 71), serious_radiation = D( 7, 74), slack_tongue = D( 8, 77), alien_dna = D( 9, 80), fractured_bones = D(10, 83), baldness = D(11, 86), discrete_itching = D(12, 89), jellyitis = D(13, 92), sleeping_illness = D(14, 95), pregnancy = D(15, 98), -- unused transparency = D(16, 101), uncommon_cold = D(17, 104), broken_wind = D(18, 107), spare_ribs = D(19, 110), kidney_beans = D(20, 113), broken_heart = D(21, 116), ruptured_nodules = D(22, 119), tv_personalities = D(23, 122), infectious_laughter = D(24, 125), corrugated_ankles = D(25, 128), chronic_nosehair = D(26, 131), third_degree_sideburns = D(27, 134), fake_blood = D(28, 137), gastric_ejections = D(29, 140), the_squits = D(30, 143), iron_lungs = D(31, 146), sweaty_palms = D(32, 149), heaped_piles = D(33, 152), gut_rot = D(34, 155), golf_stones = D(35, 158), unexpected_swelling = D(36, 161), diag_scanner = D(37), diag_blood_machine = D(38), diag_cardiogram = D(39), diag_x_ray = D(40), diag_ultrascan = D(41), diag_general_diag = D(42), diag_ward = D(43), diag_psych = D(44), autopsy = D(45), -- mixer = D(46), -- not used/needed? } competitor_names = { S[5][ 1], S[5][ 3], S[5][ 2], S[5][ 4], S[5][ 5], S[5][ 6], S[5][ 7], S[5][ 8], S[5][17], S[5][ 9], S[5][15], S[5][12], "CORSIX", -- Main developers just for fun. "ROUJIN", "EDVIN", S[5][10], S[5][11], S[5][13], S[5][14], S[5][16], S[5][18], S[5][19], S[5][20], S[5][21], } months = { S[6][ 1], S[6][ 2], S[6][ 3], S[6][ 4], S[6][ 5], S[6][ 6], S[6][ 7], S[6][ 8], S[6][ 9], S[6][10], S[6][11], S[6][12], } -- S[7][ 1], -- not needed? -- S[7][ 2], -- unused(?) -- S[7][ 3], -- unused(?) graphs = { money_in = S[7][ 4], money_out = S[7][ 5], wages = S[7][ 6], balance = S[7][ 7], visitors = S[7][ 8], cures = S[7][ 9], deaths = S[7][10], reputation = S[7][11], time_spans = { S[7][12], S[7][13], S[7][14], } } transactions = { --null = S[8][ 1], -- not needed wages = S[8][ 2], hire_staff = S[8][ 3], buy_object = S[8][ 4], build_room = S[8][ 5], cure = S[8][ 6], buy_land = S[8][ 7], treat_colon = S[8][ 8], final_treat_colon = S[8][ 9], cure_colon = S[8][10], deposit = S[8][11], advance_colon = S[8][12], research = S[8][13], drinks = S[8][14], jukebox = S[8][15], -- unused cheat = S[8][16], heating = S[8][17], insurance_colon = S[8][18], bank_loan = S[8][19], loan_repayment = S[8][20], loan_interest = S[8][21], research_bonus = S[8][22], drug_cost = S[8][23], overdraft = S[8][24], severance = S[8][25], general_bonus = S[8][26], sell_object = S[8][27], personal_bonus = S[8][28], emergency_bonus = S[8][29], vaccination = S[8][30], epidemy_coverup_fine = S[8][31], compensation = S[8][32], vip_award = S[8][33], epidemy_fine = S[8][34], eoy_bonus_penalty = S[8][35], eoy_trophy_bonus = S[8][36], machine_replacement = S[8][37], } humanoid_name_starts = S[9] -- 33 entries humanoid_name_ends = S[10] -- 26 entries adviser = { tutorial = { -- 1) build reception build_reception = S[11][30], -- start of the tutorial order_one_reception = S[11][41], accept_purchase = S[11][43], rotate_and_place_reception = S[11][42], reception_invalid_position = S[11][47], -- 2) hire receptionist hire_receptionist = S[11][31], select_receptionists = S[11][34], next_receptionist = S[11][38], prev_receptionist = S[11][39], choose_receptionist = S[11][35], place_receptionist = S[11][37], receptionist_invalid_position = S[11][61], -- 3) build GP's office -- 3.1) room window build_gps_office = S[11][33], select_diagnosis_rooms = S[11][44], click_gps_office = S[11][45], -- 3.2) blueprint -- [11][58] was maybe planned to be used in this place, but is not needed. click_and_drag_to_build = S[11][48], room_in_invalid_position = S[11][52], room_too_small = S[11][53], room_too_small_and_invalid = S[11][62], room_big_enough = S[11][57], -- 3.3) door and windows place_door = S[11][49], door_in_invalid_position = S[11][54], place_windows = S[11][50], window_in_invalid_position = S[11][55], -- 3.4) objects place_objects = S[11][51], object_in_invalid_position = S[11][56], confirm_room = S[11][59], information_window = S[11][64], -- 4) hire doctor hire_doctor = S[11][32], select_doctors = S[11][36], choose_doctor = S[11][46], place_doctor = S[11][40], doctor_in_invalid_position = S[11][60], -- (currently) unused start_tutorial = S[11][63], build_pharmacy = S[11][65], }, staff_advice = { need_doctors = S[11][ 8], too_many_doctors = S[11][ 9], -- too_many_doctors_2 = S[21][ 4] -- duplicate need_handyman_litter = S[11][ 70], need_handyman_plants = S[11][ 93], need_handyman_machines = S[11][ 94], need_nurses = S[11][101], too_many_nurses = S[11][102], }, -- used when you place staff in a wrong place staff_place_advice = { only_researchers = S[11][124], -- in research center only_surgeons = S[11][125], -- in operating theatre only_psychiatrists = S[11][126], -- in psychiatry only_nurses_in_room = S[11][127], -- %s (room name) doctors_cannot_work_in_room = S[11][128], -- %s (room name) nurses_cannot_work_in_room = S[11][129], -- %s (room name) only_doctors_in_room = S[11][130], -- %s (room name) receptionists_only_at_desk = S[11][131], }, build_advice = { blueprint_invalid = S[21][5], blueprint_would_block = S[21][6], door_not_reachable = S[21][7], placing_object_blocks_door = S[21][8], }, -- these are used when completing a room with certain requirements (if they are not met yet) room_requirements = { psychiatry_need_psychiatrist = S[11][ 79], pharmacy_need_nurse = S[11][ 80], training_room_need_consultant = S[11][ 81], research_room_need_researcher = S[11][ 84], op_need_two_surgeons = S[11][ 85], op_need_another_surgeon = S[11][ 86], op_need_ward = S[11][ 87], ward_need_nurse = S[11][ 88], gps_office_need_doctor = S[11][105], reception_need_receptionist = S[11][106], }, surgery_requirements = { need_surgeons_ward_op = S[11][103], need_surgeon_ward = S[11][104], }, warnings = { money_low = S[11][ 2], money_very_low_take_loan = S[11][ 73], cash_low_consider_loan = S[28][ 16], bankruptcy_imminent = S[11][ 3], financial_trouble = S[28][ 29], -- %d amount left before level is lost finanical_trouble2 = S[28][ 30], -- %d same as above financial_trouble3 = S[28][ 31], -- %d same again pay_back_loan = S[28][ 57], machines_falling_apart = S[11][ 4], no_patients_last_month = S[11][ 10], nobody_cured_last_month = S[11][ 11], queues_too_long = S[11][ 12], patient_stuck = S[11][ 13], patients_unhappy = S[11][ 15], patient_leaving = S[28][ 50], patients_leaving = S[28][ 51], patients_really_thirsty = S[28][ 52], patients_annoyed = S[28][ 8], patients_thirsty = S[11][ 16], patients_thirsty2 = S[28][ 5], patients_very_thirsty = S[28][ 6], patients_too_hot = S[11][ 18], patients_getting_hot = S[28][ 53], patients_very_cold = S[28][ 54], people_freezing = S[28][ 14], staff_overworked = S[11][ 17], staff_tired = S[28][ 9], staff_too_hot = S[11][ 19], staff_very_cold = S[28][ 55], staff_unhappy = S[11][ 89], staff_unhappy2 = S[28][ 15], doctor_crazy_overwork = S[11][ 95], reduce_staff_rest_threshold = S[28][ 45], nurses_tired = S[11][ 96], doctors_tired = S[11][ 97], handymen_tired = S[11][ 98], receptionists_tired = S[11][ 99], nurses_tired2 = S[28][ 46], doctors_tired2 = S[28][ 47], handymen_tired2 = S[28][ 48], receptionists_tired2 = S[28][ 49], -- What? need_toilets = S[11][ 20], build_toilets = S[28][ 11], build_toilet_now = S[28][ 39], more_toilets = S[28][ 12], people_did_it_on_the_floor = S[28][ 13], need_staffroom = S[11][ 74], build_staffroom = S[28][ 10], many_killed = S[11][ 77], -- %d (number of killed patients) plants_thirsty = S[11][ 91], too_many_plants = S[11][ 92], charges_too_high = S[11][119], charges_too_low = S[11][120], machine_severely_damaged = S[11][121], -- %s (name of machine) machinery_slightly_damaged = S[28][ 32], machinery_damaged = S[28][ 33], machinery_damaged2 = S[28][ 34], machinery_very_damaged = S[28][ 35], machinery_deteriorating = S[28][ 36], queue_too_long_send_doctor = S[11][132], -- %s (name of room) queue_too_long_at_reception = S[11][133], reception_bottleneck = S[11][134], -- TODO find out why there's 133 and 134. epidemic_getting_serious = S[28][ 2], deal_with_epidemic_now = S[28][ 3], many_epidemics = S[28][ 4], hospital_is_rubbish = S[28][ 7], more_benches = S[28][ 25], people_have_to_stand = S[28][ 28], too_much_litter = S[28][ 17], litter_everywhere = S[28][ 18], litter_catastrophy = S[28][ 19], some_litter = S[28][ 20], place_plants_to_keep_people = S[28][ 21], place_plants2 = S[28][ 22], place_plants3 = S[28][ 23], place_plants4 = S[28][ 24], desperate_need_for_watering = S[28][ 40], change_priorities_to_plants = S[28][ 41], plants_dying = S[28][ 42], }, praise = { many_plants = S[11][75], plants_are_well = S[28][43], plants_thriving = S[28][44], many_benches = S[11][76], plenty_of_benches = S[28][26], few_have_to_stand = S[28][27], patients_cured = S[11][82], -- %d (number of cured patients) }, information = { epidemic = S[11][ 14], emergency = S[11][ 22], promotion_to_doctor = S[11][ 23], promotion_to_specialist = S[11][ 69], -- %s (type: psychiatrist, scientist, surgeon) promotion_to_consultant = S[11][138], first_death = S[11][ 72], first_cure = S[11][ 83], place_windows = S[11][108], larger_rooms = S[11][109], extra_items = S[11][110], patient_abducted = S[11][111], -- what the heck is this? I never got that far in the original... patient_leaving_too_expensive = S[11][118], pay_rise = S[11][ 29], -- Once only handyman_adjust = S[11][ 71], -- Once only fax_received = S[11][136], -- Once only vip_arrived = S[21][ 9], -- %s (name of VIP) epidemic_health_inspector = S[21][ 10], initial_general_advice = { research_now_available = S[62][02], research_symbol = S[62][03], surgeon_symbol = S[62][04], psychiatric_symbol = S[62][05], rats_have_arrived = S[62][06], autopsy_available = S[62][07], first_epidemic = S[62][08], first_VIP = S[62][09], taking_your_staff = S[62][10], machine_needs_repair = S[62][11], epidemic_spreading = S[62][12], increase_heating = S[62][13], place_radiators = S[62][14], decrease_heating = S[62][15], first_patients_thirsty = S[62][16], first_emergency = S[62][17], }, }, earthquake = { alert = S[11][107], damage = S[11][100], -- %d (damaged machines) %d (injured people) ended = S[11][ 78], -- %d (severance of earthquake) }, boiler_issue = { maximum_heat = S[21][ 11], minimum_heat = S[21][ 12], resolved = S[21][ 13], }, vomit_wave = { started = S[21][ 14], ended = S[21][ 15], }, goals = { win = { money = S[11][ 21], -- %d (remaining amount) reputation = S[11][ 67], -- %d (required amount) value = S[11][ 68], -- %d (required amount) cure = S[11][137], -- %d (remaining amount) }, lose = { kill = S[11][ 66], -- %d (remaining amount) }, }, level_progress = { nearly_won = S[11][112], three_quarters_won = S[11][113], halfway_won = S[11][114], nearly_lost = S[11][115], three_quarters_lost = S[11][116], halfway_lost = S[11][117], another_patient_cured = S[28][37], another_patient_killed = S[28][38], financial_criteria_met = S[28][56], -- %d money threshold for the level cured_enough_patients = S[28][58], dont_kill_more_patients = S[28][59], reputation_good_enough = S[28][60], -- %d rep threshold for the level improve_reputation = S[28][61], -- %d amount to improve by hospital_value_enough = S[28][62], -- %d keep it above this value close_to_win_increase_value = S[28][63], }, research = { new_machine_researched = S[11][ 24], -- %s (machine(?) name) new_drug_researched = S[11][ 25], -- %s (disease name) drug_improved = S[11][ 26], -- %s (disease name) machine_improved = S[11][ 27], -- %s (machine name) new_available = S[11][ 28], -- %s TODO What is this? Where to use this and where [11][24]? -- ANSWER: It is used if research is not conducted in an area for very long. Some diagnosis equipment -- becomes available anyway after some years. Then this message is displayed instead of [11][24] drug_fully_researched = S[11][122], -- %s (drug(?) name) autopsy_discovered_rep_loss = S[11][123], }, competitors = { hospital_opened = S[11][135], -- %s (competitor name) land_purchased = S[11][ 7], -- %s (competitor name) staff_poached = S[11][ 90], }, multiplayer = { -- S[21][1] unused everyone_failed = S[21][ 2], players_failed = S[21][ 3], poaching = { already_poached_by_someone = S[21][16], not_interested = S[21][17], in_progress = S[21][18], }, objective_completed = S[21][19], -- missing in some TH versions objective_failed = S[21][20], -- missing in some TH versions }, placement_info = { -- S[22][1] unused room_cannot_place = S[22][ 2], room_cannot_place_2 = S[22][ 3], -- hmm. why? maybe the previous one should've been "can" reception_can_place = S[22][ 4], reception_cannot_place = S[22][ 5], door_can_place = S[22][ 6], door_cannot_place = S[22][ 7], window_can_place = S[22][ 8], window_cannot_place = S[22][ 9], staff_can_place = S[22][10], staff_cannot_place = S[22][11], object_can_place = S[22][12], object_cannot_place = S[22][13], }, epidemic = { -- S[28][1] unused serious_warning = S[28][ 2], hurry_up = S[28][ 3], multiple_epidemies = S[28][ 4], }, } level_names = { -- S[12][ 1] -- unused S[12][ 2], S[12][ 3], S[12][ 4], S[12][ 5], S[12][ 6], S[12][ 7], S[12][ 8], S[12][ 9], S[12][10], S[12][11], S[12][12], S[12][13], S[12][14], S[12][15], S[12][16], } town_map = { -- S[13][ 1] -- unused chat = S[13][ 2], for_sale = S[13][ 3], not_for_sale = S[13][ 4], number = S[13][ 5], owner = S[13][ 6], area = S[13][ 7], price = S[13][ 8], } -- NB: includes some special "rooms" -- reception, destroyed room and "corridor objects" rooms_short = { -- S[14][1] -- unused -- S[14][3] -- unused reception = S[14][ 2], destroyed = S[14][ 4], corridor_objects = S[14][29], gps_office = S[14][ 5], psychiatric = S[14][ 6], ward = S[14][ 7], operating_theatre = S[14][ 8], pharmacy = S[14][ 9], cardiogram = S[14][10], scanner = S[14][11], ultrascan = S[14][12], blood_machine = S[14][13], x_ray = S[14][14], inflation = S[14][15], dna_fixer = S[14][16], hair_restoration = S[14][17], tongue_clinic = S[14][18], fracture_clinic = S[14][19], training_room = S[14][20], electrolysis = S[14][21], jelly_vat = S[14][22], staffroom = S[14][23], -- rehabilitation = S[14][24], -- unused general_diag = S[14][25], research_room = S[14][26], toilets = S[14][27], decontamination = S[14][28], } rooms_long = { -- S[53][1] -- unused general = S[53][2], -- unused? emergency = S[53][3], corridors = S[53][29], gps_office = S[53][ 5], psychiatric = S[53][ 6], ward = S[53][ 7], operating_theatre = S[53][ 8], pharmacy = S[53][ 9], cardiogram = S[53][10], scanner = S[53][11], ultrascan = S[53][12], blood_machine = S[53][13], x_ray = S[53][14], inflation = S[53][15], dna_fixer = S[53][16], hair_restoration = S[53][17], tongue_clinic = S[53][18], fracture_clinic = S[53][19], training_room = S[53][20], electrolysis = S[53][21], jelly_vat = S[53][22], staffroom = S[53][23], -- rehabilitation = S[53][24], -- unused general_diag = S[53][25], research_room = S[53][26], toilets = S[53][27], decontamination = S[53][28], } drug_companies = { -- S[15][1], -- unused S[15][2], S[15][3], S[15][4], S[15][5], S[15][6], } build_room_window = { -- S[16][1], -- unused pick_department = S[16][2], pick_room_type = S[16][3], cost = S[16][5], } buy_objects_window = { choose_items = S[16][4], price = S[16][6], total = S[16][7], } research = { categories = { cure = S[17][1], diagnosis = S[17][2], drugs = S[17][3], improvements = S[17][4], specialisation = S[17][5], }, funds_allocation = S[17][6], allocated_amount = S[17][7], } policy = { header = S[18][1], diag_procedure = S[18][2], diag_termination = S[18][3], staff_rest = S[18][4], staff_leave_rooms = S[18][5], sliders = { guess = S[18][6], -- belongs to diag_procedure send_home = S[18][7], -- also belongs to diag_procedure stop = S[18][8], -- belongs to diag_termination staff_room = S[18][9], -- belongs to staff_rest } } room_classes = { -- S[19][1] -- unused -- S[19][2] -- "corridors" - unused for now -- S[19][3] -- unused diagnosis = S[19][4], treatment = S[19][5], clinics = S[19][6], facilities = S[19][7], } -- These are better of in a list with numbers insurance_companies = { out_of_business = S[20][ 1], S[20][ 2], S[20][ 3], S[20][ 4], S[20][ 5], S[20][ 6], S[20][ 7], S[20][ 8], S[20][ 9], S[20][10], S[20][11], S[20][12], } -- 21 and 22: some more adviser strings, see above. -- 23: menu strings -- Menu strings are a little complicated: Different versions of the original -- game have slightly different menu strings. The strings are also organised -- by more levels than traditional strings. For the most part, this extra -- organisation can be use to offset the differences in menu string indices. local M = {{}} do local i = 2 local section = 1 while true do local s = S[23][i] if s == "." then section = section + 1 M[section] = {} elseif s == ".." then break else M[section][#M[section] + 1] = s end i = i + 1 end end menu = { file = M[1][1], options = M[1][2], display = M[1][3], charts = M[1][4], debug = M[1][5], } menu_file = { load = M[2][1], save = M[2][2], restart = #M[2] == 4 and M[2][3] or "(no string) restart", quit = M[2][#M[2]], } menu_file_load = M[7] menu_file_save = menu_file_load --[[{ [1] = S[23][73], [2] = S[23][74], [3] = S[23][75], [4] = S[23][76], [5] = S[23][77], [6] = S[23][78], [7] = S[23][79], [8] = S[23][80], }]] menu_options = { sound = M[3][1], announcements = M[3][2], music = M[3][3], sound_vol = M[3][4], announcements_vol = M[3][5], music_vol = M[3][6], autosave = M[3][7], game_speed = M[3][8], jukebox = M[3][9], } menu_options_volume = { -- redundant in original strings: M[10] and M[11] [100] = M[9][ 1], [ 90] = M[9][ 2], [ 80] = M[9][ 3], [ 70] = M[9][ 4], [ 60] = M[9][ 5], [ 50] = M[9][ 6], [ 40] = M[9][ 7], [ 30] = M[9][ 8], [ 20] = M[9][ 9], [ 10] = M[9][10], } menu_options_game_speed = { slowest = M[12][1], slower = M[12][2], normal = M[12][3], max_speed = M[12][4], and_then_some_more = M[12][5], } menu_display = { high_res = M[4][1], mcga_lo_res = M[4][2], shadows = M[4][3], } menu_charts = { statement = M[5][1], casebook = M[5][2], policy = M[5][3], research = M[5][4], graphs = M[5][5], staff_listing = M[5][6], bank_manager = M[5][7], status = M[5][8], briefing = M[5][#M[5]], } menu_debug = { object_cells = M[6][ 1], entry_cells = M[6][ 2], keep_clear_cells = M[6][ 3], nav_bits = M[6][ 4], remove_walls = M[6][ 5], remove_objects = M[6][ 6], display_pager = M[6][ 7], mapwho_checking = M[6][ 8], plant_pagers = M[6][ 9], porter_pagers = M[6][10], pixbuf_cells = M[6][11], enter_nav_debug = M[6][12], show_nav_cells = M[6][13], machine_pagers = M[6][14], display_room_status = M[6][15], display_big_cells = M[6][16], show_help_hotspot = M[6][17], win_game_anim = M[6][18], win_level_anim = M[6][19], lose_game_anim = { M[6][20], M[6][21], M[6][22], M[6][23], M[6][24], M[6][25], M[6][26], }, } staff_list = { -- S[24][1] unused -- S[24][2] -- I have no idea what this is. morale = S[24][3], tiredness = S[24][4], skill = S[24][5], total_wages = S[24][6], } high_score = { -- S[25][1] unused pos = S[25][2], player = S[25][3], score = S[25][4], best_scores = S[25][5], worst_scores = S[25][6], killed = S[25][7], -- is this used? categories = { money = S[26][ 1], salary = S[26][ 2], clean = S[26][ 3], cures = S[26][ 4], deaths = S[26][ 5], cure_death_ratio = S[26][ 6], patient_happiness = S[26][ 7], staff_happiness = S[26][ 8], staff_number = S[26][ 9], visitors = S[26][10], total_value = S[26][11], }, } trophy_room = { -- S[27][1] unused many_cured = { awards = { S[55][ 5], S[55][ 6], }, penalty = { S[56][ 5], S[56][ 6], }, trophies = { S[27][ 2], -- for around 100% cure rate S[27][ 3], -- for around 100% cure rate S[27][ 4], -- for around 100% cure rate }, regional = { S[55][ 7], }, }, all_cured = { awards = { S[27][29], -- for 100% treat rate (none sent home or killed) }, trophies = { S[27][30], -- for 100% cure rate S[27][31], -- for 100% cure rate }, }, hosp_value = { awards = { S[55][20], }, penalty = { S[56][20], }, regional = { S[55][22], }, }, best_value_hosp = { -- not implemented trophies = { S[27][ 6], }, regional = { S[55][21], }, penalty = { S[56][21], }, }, consistant_rep = { trophies = { S[27][ 5], S[27][ 6], }, }, high_rep = { awards = { S[55][ 2], S[55][ 3], }, penalty = { S[56][ 2], -- is this the penalty for consistant poor rep? S[56][ 3], }, regional = { -- not implemented S[27][ 7], S[55][ 4], }, }, happy_staff = { -- not implemented awards = { S[55][23], S[55][25], }, penalty = { S[56][23], }, regional_good = { S[55][24], }, regional_bad = { S[56][24], }, trophies = { S[27][ 8], S[27][ 9], S[27][10], }, }, happy_vips = { trophies = { S[27][11], S[27][12], S[27][13], }, }, no_deaths = { awards = { S[55][ 8], S[55][10], }, penalty = { S[56][ 8], -- this may need an over-ride as it looks wrong "unacceptably" not "acceptably" IMO S[56][ 9], }, trophies = { S[27][14], S[27][15], S[27][16], }, regional = { -- not implemented S[55][ 9], }, }, rats_killed = { -- not implemented trophies = { S[27][17], -- %d (number of rats) S[27][18], -- %d (number of rats) S[27][19], -- %d (number of rats) }, }, rats_accuracy = { -- not implemented trophies = { S[27][20], -- %d (accuracy percentage) S[27][21], -- %d (accuracy percentage) S[27][22], -- %d (accuracy percentage) }, }, healthy_plants = { -- not implemented awards = { S[27][23], }, trophies = { S[27][24], S[27][25], }, }, sold_drinks = { trophies = { S[27][26], S[27][27], S[27][28], }, }, pop_percentage = { -- not implemented awards = { S[55][11], S[55][12], S[55][13], }, penalty = { S[56][11], S[56][12], }, }, gen_repairs = { -- not implemented awards = { S[55][38], S[55][39], S[55][40], }, penalty = { S[56][38], S[56][39], }, }, curesvdeaths = { awards = { S[55][14], }, penalty = { S[56][14], }, }, research = { -- not implemented awards = { S[55][35], S[55][37], }, penalty = { S[56][35], }, regional_good = { S[55][35], }, regional_bad = { S[56][36], }, }, cleanliness = { -- not implemented award = { S[55][26], }, regional_good = { S[56][26], }, regional_bad = { S[56][27], }, }, emergencies = { -- not implemented award = { S[55][32], S[55][34], }, penalty = { S[56][32], }, regional_good = { S[55][33], }, regional_bad = { S[56][33], }, }, wait_times = { -- not implemented award = { S[55][29], }, penalty = { S[56][29], }, }, happy_patients = { -- not implemented awards = { S[55][17], S[55][18], }, penalty = { S[56][17], S[56][18], }, }, -- Strings used in the plaques to show what has been won reputation = S[63][1], cash = S[63][2], } -- Section 28: more adviser strings (see above) casebook = { reputation = S[29][ 1], treatment_charge = S[29][ 2], earned_money = S[29][ 3], cured = S[29][ 4], deaths = S[29][ 5], sent_home = S[29][ 6], research = S[29][ 7], cure = S[29][ 8], cure_desc = { build_room = S[29][ 9], -- %s (room name) build_ward = S[29][10], hire_doctors = S[29][11], hire_surgeons = S[29][12], hire_psychiatrists = S[29][13], hire_nurses = S[29][14], no_cure_known = S[29][15], cure_known = S[29][16], improve_cure = S[29][17], }, } -- 30, 31: multiplayer. not needed for now. tooltip = { -- S[32][1] unused build_room_window = { room_classes = { diagnosis = S[32][ 2], treatment = S[32][ 3], clinic = S[32][ 4], facilities = S[32][ 5], }, cost = S[32][ 6], close = S[32][ 7], }, toolbar = { bank_button = S[32][ 8], balance = S[32][ 9], reputation = S[32][ 10], -- NB: no %d! Append " ([reputation])". date = S[32][ 11], rooms = S[32][ 12], objects = S[32][ 13], edit = S[32][ 14], hire = S[32][ 15], staff_list = S[32][ 16], town_map = S[32][ 17], casebook = S[32][ 18], research = S[32][ 19], status = S[32][ 20], charts = S[32][ 21], policy = S[32][ 22], }, hire_staff_window = { doctors = S[32][ 23], nurses = S[32][ 24], handymen = S[32][ 25], receptionists = S[32][ 26], prev_person = S[32][ 27], next_person = S[32][ 28], hire = S[32][ 29], cancel = S[32][ 30], doctor_seniority = S[32][ 31], staff_ability = S[32][ 32], salary = S[32][ 33], qualifications = S[32][ 34], surgeon = S[32][ 35], psychiatrist = S[32][ 36], researcher = S[32][ 37], }, buy_objects_window = { price = S[32][ 38], total_value = S[32][ 39], confirm = S[32][ 40], cancel = S[32][ 41], decrease = S[32][ 42], increase = S[32][ 43], }, staff_list = { doctors = S[32][ 44], nurses = S[32][ 45], handymen = S[32][ 46], receptionists = S[32][ 47], happiness = S[32][ 48], tiredness = S[32][ 49], ability = S[32][ 50], salary = S[32][ 51], happiness_2 = S[32][ 52], tiredness_2 = S[32][ 53], ability_2 = S[32][ 54], prev_person = S[32][ 55], next_person = S[32][ 56], bonus = S[32][ 57], sack = S[32][ 58], pay_rise = S[32][ 59], close = S[32][ 60], doctor_seniority = S[32][ 61], detail = S[32][ 62], view_staff = S[32][ 63], surgeon = S[32][ 64], psychiatrist = S[32][ 65], researcher = S[32][ 66], surgeon_train = S[32][ 67], -- %d (percentage trained) psychiatrist_train = S[32][ 68], -- %d (percentage trained) researcher_train = S[32][ 69], -- %d (percentage trained) skills = S[32][ 70], }, queue_window = { num_in_queue = S[32][ 71], num_expected = S[32][ 72], num_entered = S[32][ 73], max_queue_size = S[32][ 74], dec_queue_size = S[32][ 75], inc_queue_size = S[32][ 76], front_of_queue = S[32][ 77], end_of_queue = S[32][ 78], close = S[32][ 79], patient = S[32][ 80], patient_dropdown = { reception = S[32][186], send_home = S[32][187], hospital_1 = S[32][188], hospital_2 = S[32][189], hospital_3 = S[32][190], }, }, main_menu = { new_game = S[32][ 81], load_game = S[32][ 82], continue = S[32][ 83], network = S[32][ 84], quit = S[32][ 85], load_menu = { load_slot = S[41][ 1], -- NB: no %d! Append " [slotnumber]". empty_slot = S[41][ 2], }, }, window_general = { cancel = S[32][ 86], confirm = S[32][ 87], }, patient_window = { close = S[32][ 88], graph = S[32][ 89], happiness = S[32][ 90], thirst = S[32][ 91], warmth = S[32][ 92], casebook = S[32][ 93], send_home = S[32][ 94], center_view = S[32][ 95], abort_diagnosis = S[32][ 96], queue = S[32][ 97], }, staff_window = { name = S[32][ 98], close = S[32][ 99], face = S[32][100], happiness = S[32][101], tiredness = S[32][102], ability = S[32][103], doctor_seniority = S[32][104], skills = S[32][105], surgeon = S[32][106], psychiatrist = S[32][107], researcher = S[32][108], salary = S[32][109], center_view = S[32][110], sack = S[32][111], pick_up = S[32][112], }, machine_window = { name = S[32][113], close = S[32][114], times_used = S[32][115], status = S[32][116], repair = S[32][117], replace = S[32][118], }, -- Apparently handymen have their own set of strings (partly) containing "handyman". -- We could just get rid of this category and include the three prios into staff_window. handyman_window = { name = S[32][119], -- contains "handyman" close = S[32][120], face = S[32][121], -- contains "handyman" happiness = S[32][122], tiredness = S[32][123], ability = S[32][124], prio_litter = S[32][125], -- contains "handyman" prio_plants = S[32][126], -- contains "handyman" prio_machines = S[32][127], -- contains "handyman" salary = S[32][128], center_view = S[32][129], -- contains "handyman" sack = S[32][130], pick_up = S[32][131], }, place_objects_window = { cancel = S[32][132], buy_sell = S[32][133], pick_up = S[32][134], confirm = S[32][135], }, casebook = { up = S[32][136], down = S[32][137], close = S[32][138], reputation = S[32][139], treatment_charge = S[32][140], earned_money = S[32][141], cured = S[32][142], deaths = S[32][143], sent_home = S[32][144], decrease = S[32][145], increase = S[32][146], research = S[32][147], cure_type = { drug = S[32][148], drug_percentage = S[32][149], -- %d (effectiveness percentage) psychiatrist = S[32][150], surgery = S[32][151], machine = S[32][152], }, cure_requirement = { possible = S[32][153], research_machine = S[32][154], build_room = S[32][155], hire_surgeons = S[32][156], -- unused hire_surgeon = S[32][157], -- unused hire_staff_old = S[32][158], -- %s (staff type), unused. Use hire_staff instead. build_ward = S[32][159], -- unused ward_hire_nurse = S[32][160], -- unused not_possible = S[32][161], -- unused }, }, statement = { close = S[32][162], }, research = { close = S[32][163], cure_dec = S[32][164], diagnosis_dec = S[32][165], drugs_dec = S[32][166], improvements_dec = S[32][167], specialisation_dec = S[32][168], cure_inc = S[32][169], diagnosis_inc = S[32][170], drugs_inc = S[32][171], improvements_inc = S[32][172], specialisation_inc = S[32][173], -- S[32][174] unused allocated_amount = S[32][175], }, graphs = { close = S[32][176], scale = S[32][177], money_in = S[32][178], money_out = S[32][179], wages = S[32][180], balance = S[32][181], visitors = S[32][182], cures = S[32][183], deaths = S[32][184], reputation = S[32][185], }, -- S[32][186] through S[32][190] inserted further above town_map = { people = S[32][191], plants = S[32][192], fire_extinguishers = S[32][193], objects = S[32][194], radiators = S[32][195], heat_level = S[32][196], heat_inc = S[32][197], heat_dec = S[32][198], heating_bill = S[32][199], balance = S[32][200], close = S[32][201], }, -- S[32][202] unused. jukebox = { current_title = S[32][203], close = S[32][204], play = S[32][205], rewind = S[32][206], fast_forward = S[32][207], stop = S[32][208], loop = S[32][209], }, bank_manager = { hospital_value = S[32][210], balance = S[32][211], current_loan = S[32][212], repay_5000 = S[32][213], borrow_5000 = S[32][214], interest_payment = S[32][215], inflation_rate = S[32][216], interest_rate = S[32][217], close = S[32][218], insurance_owed = S[32][219], -- %s (name of debitor) show_graph = S[32][220], -- %s (name of debitor) graph = S[32][221], -- %s (name of debitor) graph_return = S[32][222], }, status = { win_progress_own = S[32][223], win_progress_other = S[32][224], -- %s (name of competitor) population_chart = S[32][225], happiness = S[32][226], thirst = S[32][227], warmth = S[32][228], close = S[32][229], -- Criteria to win reputation = S[64][ 1], balance = S[64][ 2], population = S[64][ 3], num_cured = S[64][ 4], percentage_killed = S[64][ 5], value = S[64][ 6], percentage_cured = S[64][ 7], }, policy = { close = S[32][230], staff_leave = S[32][231], staff_stay = S[32][232], diag_procedure = S[32][233], diag_termination = S[32][234], staff_rest = S[32][235], }, pay_rise_window = { accept = S[32][236], decline = S[32][237], }, watch = { hospital_opening = S[32][238], emergency = S[32][239], epidemic = S[32][240], }, rooms = { -- S[33][1] through S[33][7] unused. gps_office = S[33][ 8], psychiatry = S[33][ 9], ward = S[33][10], operating_theatre = S[33][11], pharmacy = S[33][12], cardiogram = S[33][13], scanner = S[33][14], ultrascan = S[33][15], blood_machine = S[33][16], x_ray = S[33][17], inflation = S[33][18], dna_fixer = S[33][19], hair_restoration = S[33][20], tongue_clinic = S[33][21], fracture_clinic = S[33][22], training_room = S[33][23], electrolysis = S[33][24], jelly_vat = S[33][25], staffroom = S[33][26], -- rehabilitation = S[33][27], -- unused general_diag = S[33][28], research_room = S[33][29], toilets = S[33][30], decontamination = S[33][31], }, objects = { -- S[40][1] unused. -- NB: most objects do not have a tooltip because they're not (extra-)buyable desk = S[40][ 2], cabinet = S[40][ 3], door = S[40][ 4], bench = S[40][ 5], table1 = S[40][ 6], -- unused chair = S[40][ 7], drinks_machine = S[40][ 8], bed = S[40][ 9], inflator = S[40][10], pool_table = S[40][11], reception_desk = S[40][12], table2 = S[40][13], -- unused & duplicate cardio = S[40][14], -- no description scanner = S[40][15], -- no description console = S[40][16], -- no description screen = S[40][17], -- no description litter_bomb = S[40][18], couch = S[40][19], -- no description sofa = S[40][20], crash_trolley = S[40][21], -- no description tv = S[40][22], ultrascanner = S[40][23], -- no description dna_fixer = S[40][24], -- no description cast_remover = S[40][25], -- no description hair_restorer = S[40][26], -- no description slicer = S[40][27], -- no description x_ray = S[40][28], -- no description radiation_shield = S[40][29], -- no description x_ray_viewer = S[40][30], -- no description operating_table = S[40][31], -- no description lamp = S[40][32], -- unused toilet_sink = S[40][33], op_sink1 = S[40][34], -- no description op_sink2 = S[40][35], -- no description surgeon_screen = S[40][36], -- no description lecture_chair = S[40][37], projector = S[40][38], -- no description bed2 = S[40][39], -- unused duplicate pharmacy_cabinet = S[40][40], computer = S[40][41], atom_analyser = S[40][42], blood_machine = S[40][43], -- no description fire_extinguisher = S[40][44], radiator = S[40][45], plant = S[40][46], electrolyser = S[40][47], -- no description jelly_moulder = S[40][48], -- no description gates_of_hell = S[40][49], -- no description bed3 = S[40][50], -- unused duplicate bin = S[40][51], toilet = S[40][52], swing_door1 = S[40][53], -- no description swing_door2 = S[40][54], -- no description shower = S[40][55], -- no description auto_autopsy = S[40][56], bookcase = S[40][57], video_game = S[40][58], entrance_left = S[40][59], -- no description entrance_right = S[40][60], -- no description skeleton = S[40][61], comfortable_chair = S[40][62], -- no description }, } -- 34: staff titles, inserted further above confirmation = { quit = S[35][1], return_to_blueprint = S[35][2], replace_machine = S[35][3], -- %s (machine name) %d (price) overwrite_save = S[35][4], delete_room = S[35][5], sack_staff = S[35][6], restart_level = S[35][7], -- missing in some TH versions } bank_manager = { hospital_value = S[36][1], balance = S[36][2], current_loan = S[36][3], interest_payment = S[36][4], insurance_owed = S[36][5], inflation_rate = S[36][6], interest_rate = S[36][7], statistics_page = { date = S[37][1], details = S[37][2], money_out = S[37][3], money_in = S[37][4], balance = S[37][5], current_balance = S[37][6], }, } -- Lose movie headlines newspaper = { -- LOSE1.SMK (Frankenstein) { S[38][ 1], S[38][ 2], S[38][ 3], S[38][ 4], S[38][ 5] }, -- LOSE2.SMK (Drunk/party mess) { S[38][ 7], S[38][ 8], S[38][ 9], S[38][10], S[38][11], S[38][12] }, -- LOSE3.SMK (closet with nurse) { S[38][14], S[38][15], S[38][16], S[38][17] }, -- LOSE4.SMK (sports car) { S[38][19], S[38][20], S[38][21], S[38][22] }, -- LOSE5.SMK (grave digging) { S[38][24], S[38][25], S[38][26], S[38][27], S[38][28], S[38][29] }, -- Unused headlines -- { S[38][31], S[38][32], S[38][33], S[38][34] }, -- LOSE6.SMK (toilet with magazine) { S[38][36], S[38][37], S[38][38], S[38][39], S[38][40] }, } -- 39: letters -- Letters are organized in another level, just like menu strings. local L = {{""}} do local i = 1 local section = 1 while true do local s = S[39][i] if s == "." then section = section + 1 L[section] = {} L[section][1] = "" elseif s == ".." then L[section] = nil break else L[section][#L[section]] = L[section][#L[section]] .. s if s:find("//") then L[section][#L[section] + 1] = "" end end i = i + 1 end end letter = L -- table of 12 tables (one for each level) -- each sub-table contains a varying number of strings that form the letter together -- 40: object tooltips, inserted further above -- 41: load menu, inserted further above vip_names = { health_minister = S[42][1], S[42][ 2], -- the rest is better organized in an array. S[42][ 3], S[42][ 4], S[42][ 5], S[42][ 6], S[42][ 7], S[42][ 8], S[42][ 9], S[42][10], S[42][11], } -- 43: credits -- Maybe we could include them somewhere as a tribute. Maybe not. -- Translators, please do not bother translating these... original_credits = S[43] -- 44: faxes and disease descriptions (cause/symptoms/cure) -- diseases were already covered above fax = { debug_fax = { -- never seen this, must be a debug option of original TH -- TODO: make this nicer if we ever want to make use of it close_text = S[44][ 1], text1 = S[44][ 3], -- %d text2 = S[44][ 4], -- %d %d text3 = S[44][ 5], -- %d %d %d %d %d text4 = S[44][ 6], -- %d %d %d %d %d text5 = S[44][ 7], -- %d %d %d %d %d text6 = S[44][ 8], text7 = S[44][ 9], -- %d %d %d text8 = S[44][10], -- %d %d %d text9 = S[44][11], -- %d %d %d %d text10 = S[44][12], -- %d %d %d %d text11 = S[44][13], -- %d }, emergency = { choices = { accept = S[44][15], refuse = S[44][16], }, location = S[44][18], num_disease = S[44][19], cure_possible_drug_name_efficiency = S[44][20], cure_possible = S[44][21], cure_not_possible_build_and_employ = S[44][22], cure_not_possible_build = S[44][23], cure_not_possible_employ = S[44][24], cure_not_possible = S[44][25], bonus = S[44][26], locations = { S[44][27], S[44][28], S[44][29], S[44][30], S[44][31], S[44][32], S[44][33], S[44][34], S[44][35], }, }, emergency_result = { close_text = S[44][38], earned_money = S[44][40], saved_people = S[44][41], }, disease_discovered_patient_choice = { choices = { send_home = S[44][43], wait = S[44][44], research = S[44][45], }, need_to_build_and_employ = S[44][47], need_to_build = S[44][48], need_to_employ = S[44][49], can_not_cure = S[44][50], disease_name = S[44][51], what_to_do_question = S[44][52], guessed_percentage_name = S[44][53], }, disease_discovered = { close_text = S[44][55], can_cure = S[44][57], need_to_build_and_employ = S[44][58], need_to_build = S[44][59], need_to_employ = S[44][60], discovered_name = S[44][61], -- After this come cause, symptoms and cure of disease }, epidemic = { choices = { declare = S[44][165], cover_up = S[44][166], }, disease_name = S[44][168], declare_explanation_fine = S[44][169], cover_up_explanation_1 = S[44][170], cover_up_explanation_2 = S[44][171], }, epidemic_result = { close_text = S[44][173], failed = { part_1_name = S[44][175], part_2 = S[44][176], }, succeeded = { part_1_name = S[44][177], part_2 = S[44][178], }, compensation_amount = S[44][179], fine_amount = S[44][180], rep_loss_fine_amount = S[44][181], hospital_evacuated = S[44][182], }, vip_visit_query = { choices = { invite = S[44][184], refuse = S[44][185], }, vip_name = S[44][187], }, vip_visit_result = { close_text = S[44][189], telegram = S[44][191], vip_remarked_name = S[44][192], cash_grant = S[44][193], rep_boost = S[44][194], rep_loss = S[44][195], remarks = { -- Ordered from best to worst [1] = S[44][196], [2] = S[44][197], [3] = S[44][198], [4] = S[44][199], [5] = S[44][200], [6] = S[44][201], [7] = S[44][202], [8] = S[44][203], [9] = S[44][204], [10] = S[44][205], [11] = S[44][206], [12] = S[44][207], [13] = S[44][208], [14] = S[44][209], [15] = S[44][210], }, }, diagnosis_failed = { choices = { send_home = S[44][212], take_chance = S[44][213], wait = S[44][214], }, situation = S[44][216], what_to_do_question = S[44][217], partial_diagnosis_percentage_name = S[44][218], }, } -- 45: strange texts, maybe linked to some cheat codes.. -- Seems we won't need them. staff_descriptions.misc = S[46] staff_descriptions.good = S[47] staff_descriptions.bad = S[48] -- remove last string from each category (".") staff_descriptions.misc[38] = nil staff_descriptions.good[16] = nil staff_descriptions.bad[16] = nil queue_window = { num_in_queue = S[49][1], num_expected = S[49][2], num_entered = S[49][3], max_queue_size = S[49][4], } -- TODO: continue here with section 50 -- ... -- 54: Introduction texts to each level local T = {} local level_index = 0 local text_index = 2 while true do local text = S[54][text_index] if text == "." then level_index = level_index + 1 T["level" .. level_index] = "" elseif text == ".." then break else T["level" .. level_index] = T["level" .. level_index] .. " " .. text end text_index = text_index + 1 end introduction_texts = T -- 55: Award texts inserted in the trophy room section (27) -- 57: Information texts for the different rooms local R = {} -- Note that if an id of a room is changed this will need to be changed too. -- TODO: A better solution maybe? local ids = { "gp", "psych", "ward", "operating_theatre", "pharmacy", "cardiogram", "scanner", "ultrascan", "blood_machine", "x_ray", "inflation", "dna_fixer", "hair_restoration", "slack_tongue", "fracture_clinic", "training", "electrolysis", "jelly_vat", "staff_room", "tv_room", "general_diag", "research", "toilets", "decontamination", "no_room", } local id_index = 0 text_index = 14 while true do local text = S[57][text_index] if text == "." then id_index = id_index + 1 R[ids[id_index]] = {""} elseif text == ".." then break else R[ids[id_index]][#R[ids[id_index]]] = R[ids[id_index]][#R[ids[id_index]]] .. text if R[ids[id_index]][#R[ids[id_index]]]:sub(-1) == "." then R[ids[id_index]][#R[ids[id_index]]] = R[ids[id_index]][#R[ids[id_index]]] .. " " end if text:find("//") then R[ids[id_index]][#R[ids[id_index]] + 1] = "" end end text_index = text_index + 1 end room_descriptions = R -- 59: The dynamic info bar dynamic_info = { patient = { actions = { dying = S[59][ 5], awaiting_decision = S[59][ 6], queueing_for = S[59][ 7], -- %s on_my_way_to = S[59][ 8], -- %s cured = S[59][ 9], fed_up = S[59][10], sent_home = S[59][11], sent_to_other_hospital = S[59][12], no_diagnoses_available = S[59][16], no_treatment_available = S[59][17], waiting_for_diagnosis_rooms = S[59][18], waiting_for_treatment_rooms = S[59][19], prices_too_high = S[59][20], epidemic_sent_home = S[59][25], epidemic_contagious = S[59][26], }, diagnosed = S[59][13], -- %s guessed_diagnosis = S[59][14], -- %s diagnosis_progress = S[59][15], emergency = S[59][23], -- %s (disease name) }, vip = S[59][21], health_inspector = S[59][22], staff = { psychiatrist_abbrev = S[59][27], actions = { waiting_for_patient = S[59][24], wandering = S[59][28], going_to_repair = S[59][35], -- %s (name of machine) }, tiredness = S[59][29], ability = S[59][30], -- unused? }, object = { strength = S[59][31], -- %d (max. uses) times_used = S[59][32], -- %d (times used) queue_size = S[59][33], -- %d (num of patients) queue_expected = S[59][34], -- %d (num of patients) }, } -- 60: The progress report window progress_report = { header = S[60][1], very_unhappy = S[60][2], quite_unhappy = S[60][3], more_drinks_machines = S[60][4], too_hot = S[60][5], too_cold = S[60][6], percentage_pop = S[60][7], win_criteria = S[60][8], } -- 62: Some initial advice from the adviser. These are under the adviser variable above. -- 63: Two strings inserted in trophy_room, used for trophies. -- 64: Tooltip for the winning conditions -- These are inserted in the tooltip section under status. -- ... CorsixTH-0.70.0/CorsixTH/Lua/languages/polish.lua000066400000000000000000004765211522247547500215300ustar00rootroot00000000000000--[[ Copyright (c) 2013 - translation - BuTcHeR (extragry.pl) The study, diagnosis and surgery on the translation performed by: - Bemberg, the anesthesiologist - translation, corrections, testing (grajpopolsku.pl) - Butcher, as the head - the originator, translation, corrections, fonts, tests (extragry.pl) - Johnny, as a doctor - correction (grajpopolsku.pl) - Machiner, as a GP - translation, corrections (grajpopolsku.pl) - Mziab, as a surgeon - translation, font, corrections, tools and preparing script to CAT software (mziab.grajpopolsku.pl) - Spec0071, as a doctor - correction, tests - Twig, as a consultant - technical issues (grajpopolsku.pl) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("unicode") Language("Polski", "Polish", "pl", "pol") Inherit("English") Encoding(utf8) IsArabicNumerals(true) font_location_window.caption = "Wybierz czcionkę (%1%)" misc = { hospital_open = "Szpital otwarty", save_success = "Gra zapisana poprawnie", save_failed = "B�ĄD: Gra nie została zapisana", low_res = "Niska Rozdz.", no_heliport = "Albo nadal nie odkryto żadnych chorób, bądź na tej mapie nie ma lądowiska dla helikopterów.", grade_adverb = { extremely = "maksymalnie", mildly = "nieznacznie", moderately = "średnio", }, not_yet_implemented = "(jeszcze nie wdrożono)", send_message = "Wyślij wiadomość do gracza %d", out_of_sync = "Błąd synchronizacji gry", balance = "Poziom Trudności:", load_failed = "Wczytywanie nieudane", mouse = "Mysz", done = "Zrobione", force = "Siła", pause = "Pauza", send_message_all = "Wyślij wiadomość do wszystkich graczy", } handyman_window = { all_parcels = "Wszystkie", parcel = "Parcela", } staff_list = { morale = "MORALE", tiredness = "ZMĘCZENIE", skill = "UMIEJĘTNOŚCI", total_wages = "WYP�ATY", } research = { allocated_amount = "Przeznaczona Suma", funds_allocation = "Przeznaczenie Funduszy", categories = { improvements = "Ulepszenia", drugs = "Badania nad Lekami", diagnosis = "Sprzęt do Diagnozowania", cure = "Sprzęt do Leczenia", specialisation = "Specjalizacje", }, } debug_patient_window = { caption = "Debug Pacjenta", } totd_window = { previous = "Poprzednia Porada", tips = { [1] = "Każdy szpital potrzebuje recepcji oraz Gabinetu Lekarskiego, aby móc normalnie funkcjonować. Później to zależy od rodzaju pacjentów którzy odwiedzają szpital. Budowa apteki to zawsze dobry wybór.", [2] = "Maszyny takie jak Napowietrzacz wymagają konserwacji. Zatrudnienij dozorcę albo dwóch do naprawy twoich urządzeń, w przeciwnym wypadku będziesz ryzykował, że twój personel oraz pacjenci zostaną ranni.", [3] = "Po chwili Twój personel będzie zmęczony. Upewnij się, że wybudujesz pokój socjalny, aby mogli się oni zrelaksować.", [4] = "Umieść odpowiednią ilość kaloryferów aby utrzymać personel oraz pacjentów w cieple, w przeciwnym razie będą oni niezadowoleni. Skorzystaj z mapy miasta aby zlokalizować miejsca w szpitalu, które potrzebują więcej ogrzewania.", [5] = "Poziom umiejśtności lekarzy ma ogromny wpływ na prędkość oraz jakość diagnozowania. Umieść wykwalifikowanego lekarza w Gabinecie Lekarskim a nie będziesz potrzebował wielu dodatkowych gabinetów diagnostycznych.", [6] = "Asystenci oraz doktorzy mogą doskonalić swoje umiejętności ucząc się od konsultanta w sali treningowej. Jeżeli konsultant posiada specjalne kwalifikacje (chirurg, psychiatra, naukowiec), będzie on również przekazywał i tą wiedzę swoim uczniom.", [7] = "Czy próbowałeś wpisać Europejski numer alarmowy (112) na faxie? Upewnij się, że masz włączony dźwięk!", [8] = "Niektóre ustawienia gry, takie jak rozdzielczość oraz język, możesz dostosować w oknie opcji, dostępnym w głównym menu gry.", [9] = "Wybrano język inny niż angielski jednak cały tekst jest wyświetlany po angielsku? Pomóż nam przetłumaczyć brakujące teksty na Twój język ojczysty!", [10] = "Ekipa CorsixTH poszukuje wzmocnień! Czy jesteś zainteresowany kodowaniem, tłumaczeniem lub tworzeniem grafiki dla CorsixTH? Skontaktuj się z nami na naszym forum, liście email lub kanale IRC (corsix-th na freenode).", [11] = "Jeśli znajdziesz jakiś błąd, zgłoś go w naszym systemie: th-issues.corsix.org", [12] = "Na każdym poziomie należy spełnić pewne wymagania, zanim będzie można przejść do kolejnego. Sprawdź, w oknie statusu, aby zobaczyć postęp w realizacji celów poziou.", [13] = "Jeśli chcesz edytować lub usunąć istniejące pomieszczenia, można to zrobić za pomocą przycisku edycji pomieszczenia znajdującego się w pasku narzędzi na dole.", [14] = "W tłumie oczekujących pacjentów, można szybko dowiedzieć się, którzy z nich czekają do danego gabinetu. Wystarczy najechać kursorem myszy na pacjenta.", [15] = "Kliknij na drzwi gabinetu, aby zobaczyć oczekującą do niego kolejkę. Można dokonać tam również przydatnych zmian, takich jak na przykład zmiana kolejności w kolejce lub wysyłanie pacjenta do innego gabinetu.", [16] = "Niezadowolony personel będzie często prosił o podwyżki. Upewnij się, że Twój personel pracuje w komfortowych warunkach aby tego uniknąć.", [17] = "Pacjenci będą spragnieni podczas czekania w szpitalu, tym bardziej jeśli podkręcisz ogrzewanie! Umiejscowienie Automatów do napoi w strategicznych miejscach przyniesie dodatkowy dochód.", [18] = "Jeżeli już spotkał się z daną chorobą, w każdym momencie możesz przerwać diagnozowanie pacjenta i odgadnąć jak go wyleczyć. Pamiętaj jednak, że może to zwiększyć ryzyko błędnej kuracji, co może prowadzić do śmierci pacjenta.", [19] = "Nagłe wypadki mogą być dobrym źródłem dodatkowych pieniędzy, pod warunkiem, że posiadasz niezbędne gabinety do wyleczenia pacjentów w wyznaczonym czasie.", }, next = "Następna Porada", } queue_window = { num_in_queue = "Długość Kolejki", num_entered = "Odwiedzono", max_queue_size = "Maks. Roz.", num_expected = "Spodziewani", } staff_class = { doctor = "Lekarz", handyman = "Dozorca", receptionist = "Recepcjonistka", nurse = "Pielęgniarka", surgeon = "Chirurg", } tooltip = { hire_staff_window = { prev_person = "Zobacz poprzednią osobę", cancel = "Anuluj", psychiatrist = "Psychiatra", salary = "Pensja", next_person = "Zobacz następną osobę", nurses = "Zobacz dostępne Pielęgniarki", surgeon = "Chirurg", handymen = "Zobacz dostępnych Dozorców", doctors = "Zobacz dostępnych Lekarzy", doctor_seniority = "Rangi Lekarzy (Asystent, Doktor, Konsultant)", hire = "Zatrudnij", researcher = "Naukowiec", qualifications = "Dodatkowe specjalizacje Lekarzy", receptionists = "Zobacz dostępne Recepcjonistki", staff_ability = "Umiejętności personelu", }, handyman_window = { parcel_select = "Miejsce, w którym dozorca przyjmuje zadania, kliknij aby zmienić ustawienia.", close = "Anuluj żądanie", ability = "Umiejętności", face = "Twarz Dozorcy", prio_machines = "Zwiększ priorytet naprawy urządzeń", prio_litter = "Zwiększ priorytet sprzątania", happiness = "Zadowolenie", prio_plants = "Zwiększ priorytet podlewania roślin", name = "Imię Dozorcy", tiredness = "Zmęczenie", center_view = "Zbliżenie na Dozorcę", salary = "Pensja", sack = "Zwolnij", pick_up = "Podnieś", }, staff_list = { ability_2 = "Poziom Umiejętności Pracowników", next_person = "Zobacz następną osobę", detail = "Troska o Detale", happiness = "Zadowolenie pracowników", researcher_train = "%d%% szkolony na Naukowca", handymen = "Zobacz listę Dozorców zatrudnionych w tym szpitalu", tiredness = "Zmęczenie pracowników", researcher = "Wykwalifikowany Naukowiec", happiness_2 = "Morale Pracowników", pay_rise = "Podnieś pensję tej osoby o 10%", bonus = "Daj tej osobie 10% premii", prev_person = "Zobacz poprzednią osobę", nurses = "Zobacz listę Pielęgniarek zatrudnionych w tym szpitalu", psychiatrist = "Wykwalifikowany Psychiatra", salary = "Indywidualne pensje pracowników", ability = "Umiejętności pracowników", close = "Wyjdź i wróć do gry", sack = "Zwolnij tę osobę", surgeon = "Wykwalifikowany Chirurg", tiredness_2 = "Zmęczenie Pracowników", doctors = "Zobacz listę Lekarzy zatrudnionych w tym szpitalu", doctor_seniority = "Ranga Lekarza", view_staff = "Zobacz osobę w pracy", surgeon_train = "%d%% szkolony na Chirurga", skills = "Dodatkowe specjalizacje", receptionists = "Zobacz listę Recepcjonistek zatrudnionych w tym szpitalu", psychiatrist_train = "%d%% szkolony na Psychiatrę", }, research = { cure_inc = "Zwiększ procenty", close = "Zamknij ekran Badań", specialisation_dec = "Zmniejsz procenty", diagnosis_dec = "Zmniejsz procenty", allocated_amount = "Ilość przeznaczonego budżetu", improvements_inc = "Zwiększ procenty", drugs_dec = "Zmniejsz procenty", drugs_inc = "Zwiększ procenty", cure_dec = "Zmniejsz procenty", specialisation_inc = "Zwiększ procenty", improvements_dec = "Zmniejsz procenty", diagnosis_inc = "Zwiększ procenty", }, machine_window = { repair = "Wyślij Dozorcę do naprawy urządzenia", name = "Nazwa", close = "Anuluj żądanie", times_used = "Liczba użyć", status = "Stan urządzenia", replace = "Wymień urządzenie", }, place_objects_window = { confirm = "Potwierdź", cancel = "Anuluj", pick_up = "Podnieś obiekt", buy_sell = "Kup/sprzedaj obiekty", }, totd_window = { previous = "Pokaż poprzednią poradę", next = "Pokaż następną poradę", }, status = { percentage_cured = "Musisz wyleczyć przynajmniej %d%% pacjentów odwiedzających twój szpital. Do tej pory wyleczyłeś %d%%", thirst = "Ogólny poziom pragnienia ludzi w twoim szpitalu", close = "Zamknij okno Statystyk", population_chart = "Diagram pokazuje jaki odsetek ludności odwiedza każdy szpital", win_progress_own = "Pokaż postęp twojego szpitala ku wygranej", reputation = "Poziom reputacji musi wynosić co najmniej %d. Obecnie jest to %d", population = "Musisz ściągnąć do swego szpitala %d%% ogólnej populacji", warmth = "Ogólny poziom ciepła w twoim szpitalu", percentage_killed = "W tej misji umrzeć może nie więcej niż %d%% pacjentów szpitala. Do tej pory umarło %d%%", balance = "Stan twojego konta musi wynosić co najmniej %d. Obecnie jest to %d", value = "Twój szpital musi być wart przynajmniej %d PLN. Obecna jego wartość to %d PLN", win_progress_other = "Pokaż postęp %s ku wygranej", num_cured = "W tej misji musisz wyleczyć %d ludzi. Do tej pory wyleczyłeś %d", happiness = "Ogólne zadowolenie ludzi w twoim szpitalu", }, queue_window = { end_of_queue = "Przeciągnij pacjenta na tę ikonę, aby przesunąć go na tył kolejki", num_entered = "Liczba pacjentów odwiedzających do tej pory", close = "Zamknij to okno", num_in_queue = "Liczba pacjentów w kolejce", num_expected = "Liczba pacjentów oczekiwanych wkrótce ", front_of_queue = "Przeciągnij pacjenta na tę ikonę, aby przesunąć go na przód kolejki", dec_queue_size = "Zmniejsz maksymalny rozmiar kolejki", max_queue_size = "Maksymalny rozmiar kolejki", inc_queue_size = "Zwiększ maksymalny rozmiar kolejki", patient = "Przeciągnij pacjenta, aby przesunąć go w kolejce. Prawy-klik na pacjencie, aby wysłać go do domu lub do szpitala konkurencji", patient_dropdown = { send_home = "Wypisz pacjenta ze szpitala", hospital_2 = "Wyślij pacjenta do innego szpitala", reception = "Wyślij pacjenta do Recepcji", hospital_1 = "Wyślij pacjenta do innego szpitala", hospital_3 = "Wyślij pacjenta do innego szpitala", }, }, jukebox = { rewind = "Poprzedni utwór", loop = "Odtwarzanie zapętlone", stop = "Stop", close = "Zamknij szafę grającą", current_title = "Szafa grająca", play = "Odtwarzaj", fast_forward = "Następny utwór", }, graphs = { deaths = "Przełącz zgony", close = "Zamknij Wykresy", scale = "Skala wykresu", money_out = "Przełącz wydatki", visitors = "Przełącz odwiedzających", wages = "Przełącz wypłaty", balance = "Przełącz stan konta", money_in = "Przełącz dochody", cures = "Przełącz wyleczonych", reputation = "Przełącz reputację", }, toolbar = { reputation = "Twoja reputacja", casebook = "Teczka z lekami", edit = "Edytuj pomieszczenia/przedmioty", staff_list = "Przegląd personelu", policy = "Strategia szpitala", date = "Data", charts = "Wykresy", objects = "Wyposaż korytarz", balance = "Twój stan konta", research = "Badania", hire = "Zatrudnij personel", status = "Pozycja", town_map = "Mapa miasta", rooms = "Zbuduj pomieszczenie", bank_button = "Lewe Kliknięcie - Menadżer Banku, Prawe Kliknięcie - Raport Bankowy", }, message = { button = "Kliknij lewym przyciskiem myszy aby otworzyć wiadomość", button_dismiss = "Lewy przycisk myszy otwiera wiadomość, prawy ją usuwa", }, pay_rise_window = { accept = "Spełnij żądania płacowe", decline = "Nie dawaj podwyżki, tylko zwolnij", }, town_map = { close = "Wyjdź z mapy miasta", plants = "Przełącz rośliny", fire_extinguishers = "Przełącz gaśnice", people = "Przełącz ludzi", balance = "Bilans", heat_dec = "Zmniejsz ogrzewanie", heating_bill = "Rachunek za ogrzewanie", radiators = "Przełącz kaloryfery", objects = "Przełącz obiekty", heat_level = "Poziom ciepła", heat_inc = "Zwiększ ogrzewanie", }, custom_game_window = { start_game_with_name = "Wczytaj poziom %s", free_build = "Zaznacz, jeżeli chcesz grać bez limitów finansowych oraz ustalonych warunków przegranej lub zwycięstwa", }, cheats_window = { close = "Zamknij okno oszustw", cheats = { end_month = "Przeskakuje na koniec miesiąca.", create_patient = "Tworzy pacjenta na skraju mapy.", money = "Dodaje 10.000 do swojego konta.", emergency = "Tworzy nagły wypadek.", win_level = "Wygrywa obecny poziom.", vip = "Tworzy VIP'a.", lose_level = "Przegrywa obecny poziom.", earthquake = "Tworzy trzęsienie ziemi.", all_research = "Dokańcza wszystkie badania.", end_year = "Przeskakuje na koniec roku.", }, }, casebook = { sent_home = "Liczba pacjentów odesłanych do domu", cure_requirement = { hire_staff_old = "Musisz zatrudnić %s, aby leczyć to schorzenie", possible = "Możesz leczyć to schorzenie", not_possible = "Nie możesz jeszcze leczyć tego schorzenia", ward_hire_nurse = "Potrzebujesz Pielęgniarki do pracy na Oddziale, aby leczyć to schorzenie", hire_surgeon = "Musisz zatrudnić drugiego Chirurga, aby przeprowadzać operacje", hire_staff = "Musisz zatrudnić personel aby poradzić sobie z tym schorzeniem", research_machine = "Musisz wynaleźć urządzenie do tej kuracji", build_room = "Musisz zbudować gabinet, aby leczyć to schorzenie", build_ward = "Musisz zbudować Oddział, aby prowadzić kuracje", hire_surgeons = "Musisz zatrudnić dwóch Chirurgów, aby przeprowadzać operacje", }, increase = "Zwiększ kwotę", up = "Przewiń w górę", reputation = "Reputacja Leczenia lub Diagnozowania", research = "Kliknij tutaj, aby użyć specjalnego budżetu badawczego na tę kurację", close = "Zamknij Teczkę", earned_money = "Całkowity zarobek", cure_type = { psychiatrist = "Psychiatra zajmuje się tą kuracją", drug_percentage = "Ta kuracja używa leku, który jest efektywny w %d%%", drug = "Ta kuracja wymaga leków", machine = "Ta kuracja wymaga urządzenia", unknown = "Nadal nie wiesz jak leczyć to schorzenie", surgery = "To schorzenie wymaga operacji", }, decrease = "Zmniejsz kwotę", deaths = "Liczba zgonów", cured = "Liczba wyleczonych osób", down = "Przewiń w dół", treatment_charge = "Koszt", }, policy = { diag_termination = "Diagnozowanie pacjenta będzie kontynuowane, dopóki Lekarz nie będzie pewny jak ustawiony jest wskaźnik ZATRZYMAJ PROCEDURĘ, lub dopóki wszystkie urządzenia diagnostyczne nie zostaną sprawdzone", close = "Zamknij okno Strategii Szpitala", staff_leave = "Kliknij tutaj, aby wysłać wolnych pracowników do pomocy swoim kolegom", diag_procedure = "Jeżeli diagnoza Lekarza jest mniej pewna niż ustalony wskaźnik WYPISZ DO DOMU, pacjent będzie odesłany do domu. Jeżeli diagnoza jest lepsza niż wskaźnik POSTAW DIAGNOZĘ, pacjent zostanie wysłany na odpowiednie leczenie", staff_rest = "Jak bardzo personel musi być zmęczony, zanim pójdzie odpocząć", staff_stay = "Kliknij tutaj, aby pracownicy pozostali w gabinetach, które im przydzieliłeś", }, bank_manager = { graph = "Wykres spodziewanych wpłat od %s", close = "Zamknij okno banku", hospital_value = "Wartość szpitala", graph_return = "Wróć do poprzedniego widoku", current_loan = "Zaciągnięte pożyczki", borrow_5000 = "Pożycz 5000 PLN z banku", balance = "Stan konta", interest_payment = "Miesięczne odsetki", inflation_rate = "Roczna stawka inflacji", interest_rate = "Roczna stawka odsetek", repay_5000 = "Spłać 5000 PLN bankowi", show_graph = "Pokaż wykres spodziewanych wpłat od %s", insurance_owed = "Ilość pieniędzy, które jest winien %s", }, main_menu = { exit = "Nie, nie, proszę nie odchodź!", custom_campaign = "Rozegraj kampanię stworzoną przez społeczność", custom_level = "Zbuduj swój szpital na dodatkowych poziomach", network = "Rozpocznij grę sieciową", quit = "Wyjdź", continue = "Kontynuuj poprzednią grę", options = "Zmień różne ustawienia gry", load_menu = { load_slot = "WCZYTAJ GRĘ", empty_slot = "PUSTY", }, new_game = "Zacznij grę od samego początku�", load_game = "Wczytaj zapisaną grę", map_edit = "Stwórz własną mapę", }, patient_window = { graph = "Kliknij, aby przełączyć się pomiędzy wykresem zdrowia osób a ich historią leczenia", casebook = "Pokaż detale choroby", close = "Anuluj żądanie", queue = "Zobacz detale kolejki", happiness = "Zadowolenie", warmth = "Temperatura", center_view = "Zbliżenie na osobę", thirst = "Pragnienie", send_home = "Wypisz osobę ze szpitala", abort_diagnosis = "Wyślij osobę na leczenie bez skończenia diagnozowania choroby", }, menu_list_window = { save_date = "Kliknij tutaj aby sortować listę według ostatniej daty modyfikacji", name = "Kliknij tutaj aby sortować listę według nazwy", back = "Wróć", }, watch = { emergency = "Nagły wypadek: czas pozostały na wyleczenie wszystkich pacjentów z wypadku.", hospital_opening = "Czas budowy: to czas pozostały do oficjalnego otwarcia szpitala. Kliknij na przycisk, aby natychmiast otworzyć szpital.", epidemic = "Epidemia: czas pozostały na opanowanie epidemii. Gdy czas upłynie lub zarażony pacjent opuści szpital, odwiedzi cię Inspektor Zdrowia. Przycisk włącza/wyłącza tryb szczepienia. Kliknij na pacjenta, aby zaszczepiła go Pielęgniarka.", }, new_game_window = { player_name = "Wprowadź nazwę jaka będzie używana podczas gry", difficulty = "Wybierz poziom trudności na jakim chcesz rozpocząć grę", easy = "Jeżeli jesteś początkującym graczem, jest to dla ciebie odpowiedni poziom", medium = "Jest to średni poziom trudności, zalecany dla większości graczy", hard = "Jeżeli chcesz mieć więcej wyzwań a tego typu gry to twój chleb powszedni wybierz tą opcję", tutorial = "Jeżeli potrzebujesz pomocy przy rozpoczęciu gry zaznacz to pole.", start = "Rozpocznij grę z wybranymi ustawieniami", cancel = "Och, tak naprawdę nie chcę rozpoczynać nowej gry!", }, save_game_window = { new_save_game = "Wprowadź nazwę dla zapisanej gry", save_game = "Nadpisz zapisaną grę %s", }, calls_dispatcher = { assigned = "To pole jest zaznaczone, jeśli ktoś jest przypisany do wybranego zadania.", task = "Lista zadań - kliknij na zadanie, aby otworzyć okno poleceń dla personelu i przejść do wybranej lokacji zadania.", close = "Zamknij okno dyspozycji.", }, research_policy = { research_progress = "Postęp w kierunku nowego odkrycia w tej dziedzinie: %1%/%2%", no_research = "W tym momencie nie są prowadzone żadne badania w tej dziedzinie", }, information = { close = "Zamknij okno informacji", }, lua_console = { textbox = "Tutaj wprowadź kod Lua aby go uruchomić", execute_code = "Uruchom kod który wprowadziłeś", close = "Zamknij konsolę", }, staff_window = { doctor_seniority = "Ranga - Asystent, Doktor lub Konsultant", psychiatrist = "Psychiatra", close = "Anuluj żądanie", ability = "Poziom umiejętności", pick_up = "Podnieś", sack = "Zwolnij", surgeon = "Chirurg", happiness = "Poziom zadowolenia", salary = "Miesięczna pensja", name = "Imię i nazwisko pracownika", tiredness = "Poziom zmęczenia", center_view = "Lewe kliknięcie przybliża pracownika, prawe kliknięcie przełącza między pracownikami", skills = "Specjalizacje", researcher = "Naukowiec", face = "Twarz tej osoby - kliknij aby otworzyć ekran zarządzania", }, rooms = { ultrascan = "Lekarz używa Ultraskanera do diagnozowania pacjentów", research_room = "Lekarze ze specjalizacją Naukowca mogą wynajdować nowe leki i urządzenia w Dziale Badawczym", fracture_clinic = "Pielęgniarka korzysta z Gabinetu Ortopedycznego do składania Zgruchotanych Kości", gps_office = "Pacjenci otrzymują wstępną konsultację w Gabinecie Lekarskim", inflation = "Lekarz używa Napowietrzacza do leczenia pacjentów z Głowowzdęciem", staffroom = "Lekarze i Pielęgniarki odpoczywają i regenerują siły w pokoju dla personelu", jelly_vat = "Lekarz używa Galaretownicę do leczenia Galaretowatości", scanner = "Lekarz używa Skanera do diagnozowania pacjentów", decontamination = "Lekarz używa Prysznica Odkażającego, aby wyleczyć Radioaktywność", pharmacy = "Pielęgniarka wydaje pacjentom leki w Aptece", cardiogram = "Lekarz używa Kardiografu do diagnozowania pacjentów", ward = "Oddział jest przydatny zarówno do diagnozowania jak i leczenia. Pacjenci są tu przysyłani na obserwację oraz rekonwalescencję pooperacyjną", training_room = "Sala Szkoleniowa z Konsultantem może być używana do szkolenia innych Lekarzy", operating_theatre = "Sala Operacyjna potrzebuje dwóch Lekarzy ze specjalizacją chirurga", psychiatry = "Gabinet Psychiatryczny leczy szalonych pacjentów i diagnozuje różne choroby, potrzebuje jednak lekarza ze specjalizacją Psychiatry", hair_restoration = "Lekarz używa Przeszczepiacza Włosów do leczenia łysych pacjentów", tongue_clinic = "Lekarz używa Krajalnicy do leczenia Obwisłego Języka", dna_fixer = "Lekarz używa Re-GEN-eratora do leczenia pacjentów z DNA Obcych", general_diag = "Lekarz używa gabinetu do przeprowadzenia Podstawowych Badań. Tanie a zarazem bardzo efektywne", toilets = "Zbuduj Toalety, aby pacjenci nie zapaskudzili szpitala!", electrolysis = "Lekarz używa Elektrolizera do leczenia Włochacizny", x_ray = "Lekarz używa Rentgena do diagnozowania pacjentów", blood_machine = "Lekarz używa Analizatora Krwi do diagnozowania pacjentów", }, statement = { close = "Zamknij ekran Raportu", }, buy_objects_window = { confirm = "Kup przedmiot(y)", cancel = "Anuluj", increase = "Kup o jeden przedmiot więcej", total_value = "Wartość zamówionych przedmiotów", price = "Cena przedmiotu", decrease = "Kup o jeden przedmiot mniej", }, load_game_window = { load_game = "Wczytaj grę %s", load_autosave = "Wczytaj autozapis", load_game_number = "Wczytaj grę %d", }, window_general = { confirm = "Potwierdź", cancel = "Anuluj", }, fax = { close = "Zamknij okno bez usuwania wiadomości", }, objects = { chair = "Krzesło: tutaj siedzą pacjenci i mówią o swoich dolegliwościach.", litter = "Odpadek: Rzucony przez pacjenta na podłogę, gdyż nie znalazł on śmietnika, do którego mógł go wyrzucić.", sofa = "Sofa: pracownicy będą grzecznie na niej siedzieli, dopóki nie znajdą sobie lepszej formy relaksu.", operating_table = "30 OB_OP_TABLE", bed2 = "nieużywane", bench = "�awka: zapewnia siedzenie dla jednego pacjenta, dzięki czemu oczekiwanie jest komfortowe.", scanner = "14 OB_SCANNER", couch = "18 OB_COUCH", blood_machine = "42 OB_BLOOD_MC", table1 = "Stół (REMOVED): na nim leżą czasopisma, aby pacjenci się nie nudzili.", video_game = "Gra video: personel relaksuje się grając w Hi-Octane.", lamp = "Lampa: świeci i zapewnia widoczność personelowi.", op_sink2 = "34 OB_OP_SINK_2", door = "Drzwi: ludzie je często otwierają i zamykają.", auto_autopsy = "Autopsja: znacznie pomaga w odkrywaniu nowych leków", reception_desk = "Biurko Recepcji: wymaga Recepcjonistki, która pokieruje pacjentów do Lekarzy.", hair_restorer = "25 OB_HAIR_RESTORER", projector = "37 OB_PROJECTOR", crash_trolley = "20 OB_CRASH", tv = "TV: dzięki niemu pracownicy nie przegapią ulubionych programów.", ultrascanner = "22 OB_ULTRASCAN", surgeon_screen = "35 OB_SURGEON_SCREEN", litter_bomb = "Bomba Śmieciowa: sabotuje konkurencyjne szpitale", inflator = "Napowietrzacz: leczy ludzi z Głowowzdęciem.", table2 = "12 OB_BTABLE", desk = "Biurko: Wymagane do postawienia na nim komputera.", pool_table = "Bilard: pomaga personelowi się zrelaksować.", x_ray_viewer = "29 OB_XRAY_VIEWER", radiation_shield = "28 OB_RAD_SHIELD", bed = "�óżko: leżą tutaj ciężko chorzy ludzie.", swing_door2 = "53 OB_DOUBLE_DOOR2", console = "15 OB_SCANNER_CONSOLE", op_sink1 = "33 OB_OP_SINK_1", bookcase = "Biblioteczka: źródło informacji dla Lekarzy.", drinks_machine = "Automat do napoi: zapobiega pragnieniu oraz przynosi dochody.", comfortable_chair = "61 OB_COMFY_CHAIR", skeleton = "Szkielet: używany w celach szkoleniowych oraz na Halloween.", computer = "Komputer: klucz do prowadzenia badań", bin = "Śmietnik: pacjenci wrzucają tu odpadki.", pharmacy_cabinet = "Apteka: tutaj trzymane są leki", radiator = "Kaloryfer: zapewnia ciepło w całym szpitalu.", cast_remover = "24 OB_CAST_REMOVE", atom_analyser = "Analizator Atomów: umieszczony w Dziale Badawczym, przyspiesza cały proces badawczy.", plant = "Roślina: zwiększa zadowolenie pacjentów i oczyszcza powietrze.", jelly_moulder = "47 OB_JELLY_VAT", cardio = "13 OB_CARDIO", toilet = "Klozet: pacjenci, noo... używają go.", electrolyser = "46 OB_ELECTRO", fire_extinguisher = "Gaśnica: minimalizuje zagrożenie ze strony uszkodzonych urządzeń.", bed3 = "nieużywane", swing_door1 = "52 OB_DOUBLE_DOOR1", lecture_chair = "Krzesło ucznia: twoi uczący się lekarze siedzą tutaj i robią notatki, nudzą się i bezmyślnie bazgrolą. Im więcej krzeseł, tym większa może być klasa.", screen = "16 OB_SCREEN", toilet_sink = "Zlew: twoi bardziej świadomi higieny pacjenci mogą umyć tu brudne ręce. Jeśli zabraknie zlewów, pacjenci robią się niezadowoleni.", shower = "54 OB_DECON_SHOWER", gates_of_hell = "48 OB_HELL", entrance_right = "59 OB_ENT_RDOOR", entrance_left = "58 OB_ENT_LDOOR", slicer = "26 OB_SLICER", dna_fixer = "23 OB_DNA_FIXER", x_ray = "27 OB_XRAY", cabinet = "Szafka: zawiera akta pacjentów, notatki oraz dokumenty naukowe.", }, build_room_window = { cost = "Koszt wybranego pomieszczenia", room_classes = { treatment = "Wybierz gabinety Podstawowego Leczenia", diagnosis = "Wybierz gabinety Diagnostyczne", facilities = "Wybierz gabinety Udogodnień", clinic = "Wybierz gabinety Specjalistyczne", }, close = "Przerwij i wróć do gry", }, options_window = { fullscreen = "Wybór pomiędzy trybem pełnoekranowym lub grą w oknie", fullscreen_button = "Kliknij aby włączyć tryb pełnoekranowy", resolution = "Rozdzielczość w jakiej powinna działać gra", select_resolution = "Wybierz nową rozdzielczość", folder_button = "Opcje folderów", customise_button = "Dodatkowe ustawienia modifikujące twoją rozgrywkę", width = "Wpisz żądaną szerokość ekranu", height = "Wpisz żądaną wysokość ekranu", apply = "Zatwierdź wybraną rozdzielczość", cancel = "Powrót bez zmiany rozdzielczośći", data_location = "Katalog z zainstalowaną oryginalną grą Theme Hospital, która wymagana jest do uruchomienia CorsixTH", font_location = "Lokalizacja pliku z czcionką, która jest w stanie wyświetlić znaki wymagane przez twój język. Jeżeli nie będzie ona wybrana, wybór języka obsługującego inne znaki niż oryginalna gra nie będzie możliwy. Przykłady: Rosyjski i Chiński", language = "Język, w którym wyświetlone zostaną teksty gry", select_language = "Wybierz język gry", language_dropdown_item = "Wybierz %s jako język gry", browse = "Zmień ścieżkę zainstalowanej gry Theme Hospital (obecna lokalizacja: %1%)", browse_font = "Zmień ścieżkę dla innego pliku z czcionką (obecna lokalizacja: %1%)", no_font_specified = "Lokalizacja czcionki nie została jeszcze wybrana!", back = "Zamknij okno opcji", }, audio_window = { audio_toggle = "Włącz/wyłącz", } } menu_charts = { bank_manager = " (%1%) MENADŻER BANKU ", statement = " (%1%) RAPORT ", staff_listing = " (%1%) LISTA PERSONELU ", town_map = " (%1%) MAPA MIASTA ", casebook = " (%1%) TECZKA ", research = " (%1%) BADANIA ", status = " (%1%) POZYCJA ", graphs = " (%1%) WYKRESY ", policy = " (%1%) STRATEGIA SZPITALA ", briefing = " ODPRAWA ", } town_map = { number = "Numer Gruntu", not_for_sale = "Nie na Sprzedaż", chat = "Inf. o Mieście", price = "Cena Gruntu", for_sale = "Na Sprzedaż", owner = "Właściciel", area = "Rozmiar", } vip_names = { [1] = "Burmistrz Trumpton", [2] = "Lawrence Nightingale", [3] = "Bernard, król Niderlandów", [4] = "Aung Sang Su Kyi, lider birmańskiej opozycji demokratycznej", [5] = "Sir Reginald Crumbly", -- [6] requires replacement (English uses 'Sir Lancelot Spratt') [7] = "Radny Crawford Purves", [8] = "Rakieta Ronnie Jepson", [9] = "Piłkarz ligi Premiership", [10] = "L. F. Probst III", health_minister = "Minister Zdrowia", } custom_game_window = { caption = "Gra niestandardowa", free_build = "Wolna budowa", } cheats_window = { cheats = { end_month = "Koniec miesiąca", create_patient = "Stwórz pacjenta", money = "Pieniądze", emergency = "Nagły wypadek", win_level = "Wygraj poziom", vip = "Stwórz VIP", lose_level = "Przegraj poziom", earthquake = "Stwórz trzęsienie ziemi", all_research = "Dokończ badania", end_year = "Koniec roku", }, close = "Zamknij", caption = "Oszustwa", cheated = { no = "Używano oszustw: Nie", yes = "Używano oszustw: Tak", }, warning = "Uwaga: Jeżeli będziesz oszukiwć nie dostaniesz dodatkowych punktów na koniec poziomu!", } room_descriptions = { ultrascan = { [1] = "Ultraskaner//", [2] = "Udoskonalony przyrząd diagnozujący. Jest wart swej wysokiej ceny, o ile chcesz zapewnić pacjentom najlepsze warunki diagnozowania.//", [3] = "Ultraskaner wymaga Lekarza. Musi być także konserwowany. ", }, gp = { [1] = "Gabinet Lekarski//", [2] = "To najważniejszy gabinet w Twoim szpitalu. Nowi pacjenci są tu wysyłani, aby dowiedzieć się co im dolega. Następnie odsyłani są do dalszej diagnozy lub do gabinetów, w których mogą zostać wyleczeni. Możesz zbudować kolejny Gabinet Lekarski, jeżeli w tym będzie zbyt tłoczno. Rozmiar gabinetu i liczba urządzeń są wyznacznikiem autorytetu jakim cieszy się pracujący w nim Lekarz. To dotyczy również innych pomieszczeń.//", [3] = "Do funkcjonowania Gabinetu Lekarskiego niezbędny jest Lekarz. ", }, fracture_clinic = { [1] = "Gabinet Ortopedyczny//", [2] = "Usuwacz Gipsu używa potężnego przemysłowego lasera do przecięcia stwardniałego gipsu, wywołując przy tym nieznaczny ból u pacjenta.//", [3] = "Gabinet Ortopedyczny potrzebuje Pielęgniarki. Wymaga również częstej konserwacji. ", }, tv_room = { [1] = "SALA TV NIE UŻYWANA", }, inflation = { [1] = "Napowietrzalnia//", [2] = "Pacjenci z bolesnym, acz zabawnym Głowowzdęciem muszą odwiedzić Napowietrzalnię, gdzie przerośnięta głowa zostaje przebita, a następnie napompowana do odpowiednich rozmiarów.//", [3] = "Napowietrzalnia musi mieć Lekarza do obsługi. Musi być także pod stałym nadzorem Dozorcy. ", }, jelly_vat = { [1] = "Przychodnia Galaretowatości//", [2] = "Pacjenci dotknięci przezabawnym choróbskiem Galaretowatość, muszą dokiwać się do Przychodni Galaretowatości, gdzie umieszcza się ich w Galaretownicy. Właśnie w ten, nie do końca jasny dla medycyny sposób, zostają wyleczeni.//", [3] = "Przychodnia Galaretowatości potrzebuje Lekarza. Jak również nadzoru Dozorcy. ", }, scanner = { [1] = "Skaner//", [2] = "Pacjenci są diagnozowani przy użyciu wymyślnego Skanera, po czym wracają do Gabinetu Lekarskiego w celu dalszego leczenia.//", [3] = "Skaner wymaga Lekarza. Musi być także konserwowany. ", }, blood_machine = { [1] = "Analizator Krwi//", [2] = "Analizator Krwi jest częścią wyposażenia diagnozującego, które sprawdza komórki krwi pacjenta i określa ich stan.//", [3] = "Analizator Krwi wymaga Lekarza. Musi być także konserwowany. ", }, pharmacy = { [1] = "Apteka//", [2] = "Pacjenci, którzy zostali zdiagnozowani i mogą być wyleczeni dzięki lekom, muszą zgłosić się po nie do Apteki. W miarę jak będą wymyślane nowe leki, ten gabinet stanie się naprawdę oblegany. Prawdopodobnie będziesz musiał wtedy zbudować drugą Aptekę.//", [3] = "Do pracy w Aptece potrzebna jest Pielęgniarka. ", }, cardiogram = { [1] = "Kardiograf//", [2] = "Diagnozuje się tutaj pacjentów zanim wrócą do Gabinetu Lekarskiego i zostaną wysłani na leczenie.//", [3] = "Kardiograf wymaga Lekarza. Musi być także konserwowany. ", }, ward = { [1] = "Oddział//", [2] = "Pacjenci przebywają tu na obserwacji podczas diagnozy. Poza tym kierowani są tu przed zabiegiem chirurgicznym.//", [3] = "Oddział potrzebuje Pielęgniarki. ", }, psych = { [1] = "Psychiatra//", [2] = "Pacjenci ze zdiagnozowaną chorobą psychiczną muszą odwiedzić Gabinet Psychiatryczny, aby otrzymać poradę. Psychiatra diagnozuje pacjenta pod kątem dolegliwości i jeśli mają one podłoże psychiczne, leczy go z wykorzystaniem swej niezawodnej kozetki.//", [3] = "W Gabinecie Psychiatrycznym wymagany jest Lekarz ze specjalizacją Psychiatry. ", }, staff_room = { [1] = "Pokój Socjalny//", [2] = "Twój personel podczas pracy męczy się. W tym pokoju pracownicy mogą się odprężyć i zrelaksować. Gdy są zmęczeni, pracują wolniej, domagają się większych podwyżek i popełniają więcej błędów. Budowa Pokoju Socjalnego z bogatym wyposażeniem jest bardzo opłacalna. Upewnij się, że znajdzie się tam miejsce dla kilku osób jednocześnie. ", }, operating_theatre = { [1] = "Sala Operacyjna//", [2] = "Ważne pomieszczenie, w którym leczy się różnorodne schorzenia. Sala musi mieć sporą powierzchnię oraz powinna zawierać odpowiednie wyposażenie. Jest to nieodzowna część twojego szpitala.//", [3] = "Sala operacyjna wymaga dwóch Lekarzy ze specjalizacją Chirurga. ", }, training = { [1] = "Sala Szkoleniowa//", [2] = "Twoi Asystenci oraz Doktorzy mogą tutaj zdobywać dodatkowe specjalizacje. Konsultant ze specjalizacją Chirurga, Psychiatry lub Naukowca przekazuje swoją wiedzę każdemu szkolonemu Lekarzowi. Lekarze, którzy posiadają już te specjalizacje, będą mogli je tutaj rozwijać.//", [3] = "Sala Szkoleniowa potrzebuje Konsultanta. ", }, dna_fixer = { [1] = "Przychodnia DNA//", [2] = "DNA pacjentów, którzy zostali porwani przez obcych, musi zostać wymienione w tym gabinecie. Re-GEN-erator to bardzo skomplikowane urządzenie, dlatego wskazane jest mieć w pogotowiu gaśnicę, tak na wszelki wypadek.//", [3] = "Re-GEN-erator wymaga okresowego przeglądu przez Dozorcę. Potrzebny jest także Lekarz ze specjalizacją Naukowca. ", }, research = { [1] = "Dział Badawczy//", [2] = "Tutaj wymyśla się lub ulepsza leki oraz sposoby leczenia. To bardzo ważna część szpitala, dzięki której liczba wyleczonych poszybuje w górę.//", [3] = "W Dziale Badawczym musi pracować Lekarz ze specjalizacją Naukowca. ", }, hair_restoration = { [1] = "Gabinet Przeszczepu Włosów//", [2] = "Pacjenci cierpiący na ekstremalne �ysienie są kierowani do tego gabinetu w celu przeszczepienia włosów. Lekarz obsługuje maszynę, która szybko obsiewa łysą głowę pacjenta nowymi cebulkami.//", [3] = "W gabinecie Przeszczepu Włosów potrzebny jest Lekarz. Wymaga on także okresowej konserwacji. ", }, general_diag = { [1] = "Badania Podstawowe//", [2] = "Pacjenci wymagający dalszej diagnozy są wysyłani tutaj. Jeżeli w Gabinecie Lekarskim nie wykryta zostanie przypadłość pacjenta, zazwyczaj zostanie to dokonane w gabinecie Badań Podstawowych. Stąd pacjenci zostają odesłani do Gabinetu Lekarskiego w celu analizy wyników przeprowadzonych tu badań.//", [3] = "Do pracy w gabinecie Badań Podstawowych wymagany jest Lekarz. ", }, electrolysis = { [1] = "Gabinet Elektrolizy//", [2] = "Pacjenci cierpiący na Włochaciznę są kierowani do tego gabinetu, gdzie specjalna maszyna zwana Elektrolizerem wyszarpuje włosy i zalepia elektrycznie pory specjalną mieszaniną podobną do tynku.//", [3] = "Gabinet Elektrolizy potrzebuje Lekarza. Musi być także doglądany przez Dozorcę. ", }, slack_tongue = { [1] = "Przychodnia Obrzynania//", [2] = "Pacjenci zdiagnozowani w Gabinecie Lekarskim z chorobą Obwisłego Języka są kierowani do tego gabinetu. Przy pomocy nowoczesnej aparatury Lekarz wyciąga i obcina język, przywracając pacjenta do zdrowia.//", [3] = "Przychodnia Obrzynania potrzebuje Lekarza. Wymaga również częstej konserwacji. ", }, toilets = { [1] = "Toalety//", [2] = "Pacjenci, którzy poczują zew matki natury, będą musieli skorzystać z twoich komfortowych toalet. Jeżeli spodziewasz się dużo gości, możesz zbudować dodatkowe latryny i umywalki. Być może trzeba będzie rozważyć budowę kolejnych toalet w innych częściach szpitala. ", }, no_room = { [1] = "", }, x_ray = { [1] = "Rentgen//", [2] = "Rentgen używa specjalnych promieni, aby zrobić zdjęcie wnętrza pacjenta. Dzięki temu lekarz wie, co dzieje się wewnątrz chorego.//", [3] = "Rentgen wymaga Lekarza. Musi być także konserwowany. ", }, decontamination = { [1] = "Gabinet Odkażania//", [2] = "Pacjenci, którzy zostali narażeni na Napromieniowanie są natychmiast kierowani do Gabinetu Odkażania. Pomieszczenie to posiada prysznic, który oczyszcza ich ze strasznego napromieniowania i brudu.//", [3] = "Do obsługi Prysznica wymagany jest Lekarz. Musi być także nadzorowany przez Dozorcę. ", }, } errors = { unavailable_screen_size = "Rozmiar ekranu, który podałeś, nie jest obsługiwany w trybie pełnoekranowym.", dialog_missing_graphics = "Niestety, demo nie zawiera tego dialogu.", maximum_screen_size = "Proszę wpisać rozmiar ekranu, maksimum 3000x2000.", load_prefix = "Błąd podczas ładowania gry: ", no_games_to_contine = "Nie ma zapisanych gier.", save_prefix = "Błąd podczas zapisywania gry: ", map_file_missing = "Nie można znaleźć pliku z mapą %s dla tego poziomu!", minimum_screen_size = "Proszę wpisać rozmiar ekranu, minimum %dx%d.", } bank_manager = { current_loan = "Pożyczka", balance = "Bilans", interest_payment = "Odsetki", hospital_value = "Wartość Szpitala", interest_rate = "Poziom Odsetek", insurance_owed = "Ubezpieczalnie", statistics_page = { balance = "Bilans", details = "Szczegóły", date = "Data", current_balance = "Obecny Stan Konta", money_in = "Dochody", money_out = "Wydatki", }, inflation_rate = "Poziom Inflacji", } main_menu = { exit = "Wyjście", custom_level = "Gra niestandardowa", version = "Wersja: ", new_game = "Nowa gra", custom_campaign = "Własna kampania", continue = "Powrót do gry", load_game = "Wczytaj grę", options = "Ustawienia", savegame_version = "Wersja zapisu: ", map_edit = "Edytor map" } date_format = { daymonth = "%1% %2:months%", } menu_display = { mcga_lo_res = " NISKA ROZDZIELCZOŚĆ", shadows = " CIENIE ", high_res = " WYSOKA ROZDZIELCZOŚĆ", } original_credits = { [1] = " ", [2] = " ", [3] = " ", [4] = " ", [5] = " ", [6] = " ", [7] = " ", [8] = " ", [9] = " ", [10] = " ", [11] = " ", [12] = ":Zaprojektowane i stworzone przez", [13] = ":Bullfrog Productions", [14] = " ", [15] = ":ekipa Pluto Development ", [16] = ",", [17] = "Mark Webley", [18] = "Gary Carr", [19] = "Matt Chilton", [20] = "Matt Sullivan", [21] = "Jo Rider", [22] = "Rajan Tande", [23] = "Wayne Imlach", [24] = "Andy Bass", [25] = "Jon Rennie", [26] = "Adam Coglan", [27] = "Natalie White", [28] = " ", [29] = " ", [30] = " ", [31] = ":Programowanie", [32] = ",", [33] = "Mark Webley", [34] = "Matt Chilton", [35] = "Matt Sullivan", [36] = "Rajan Tande", [37] = " ", [38] = " ", [39] = " ", [40] = ":Oprawa graficzna", [41] = ",", [42] = "Gary Carr", [43] = "Jo Rider", [44] = "Andy Bass", [45] = "Adam Coglan", [46] = " ", [47] = " ", [48] = " ", [49] = ":Dodatkowe programowanie", [50] = ",", [51] = "Ben Deane", [52] = "Gary Morgan", [53] = "Jonty Barnes", [54] = " ", [55] = " ", [56] = " ", [57] = ":Dodatkowa grafika", [58] = ",", [59] = "Eoin Rogan", [60] = "George Svarovsky", [61] = "Saurev Sarkar", [62] = "Jason Brown", [63] = "John Kershaw", [64] = "Dee Lee", [65] = " ", [66] = " ", [67] = " ", [68] = ":Intro", [69] = ",", [70] = "Stuart Black", [71] = " ", [72] = " ", [73] = " ", [74] = ":Muzyka i efekty dźwiękowe", [75] = ",", [76] = "Russell Shaw", [77] = "Adrian Moore", [78] = " ", [79] = " ", [80] = " ", [81] = ":Dodatkowa muzyka", [82] = ",", [83] = "Jeremy Longley", [84] = "Andy Wood", [85] = " ", [86] = " ", [87] = " ", [88] = ":Lektor", [89] = ",", [90] = "Rebecca Green", [91] = " ", [92] = " ", [93] = " ", [94] = ":Projekty poziomów", [95] = ",", [96] = "Wayne Imlach", [97] = "Natalie White", [98] = "Steven Jarrett", [99] = "Shin Kanaoya", [100] = " ", [101] = " ", [102] = " ", [103] = ":Skrypty", [104] = ",", [105] = "James Leach", [106] = "Sean Masterson", [107] = "Neil Cook", [108] = " ", [109] = " ", [110] = " ", [111] = ":R&D", [112] = " ", [113] = ":Silnik graficzny", [114] = ",", [115] = "Andy Cakebread", [116] = "Richard Reed", [117] = " ", [118] = " ", [119] = " ", [120] = ":Wsparcie R&D", [121] = ",", [122] = "Glenn Corpes", [123] = "Martin Bell", [124] = "Ian Shaw", [125] = "Jan Svarovsky", [126] = " ", [127] = " ", [128] = " ", [129] = ":Biblioteki i narzędzia", [130] = " ", [131] = "Biblioteki Dos i Win 95", [132] = ",", [133] = "Mark Huntley", [134] = "Alex Peters", [135] = "Rik Heywood", [136] = " ", [137] = " ", [138] = " ", [139] = ":Biblioteki sieciowe", [140] = ",", [141] = "Ian Shippen", [142] = "Mark Lamport", [143] = " ", [144] = " ", [145] = " ", [146] = ":Biblioteki dźwięku", [147] = ",", [148] = "Russell Shaw", [149] = "Tony Cox", [150] = " ", [151] = " ", [152] = " ", [153] = ":Instalator", [154] = ",", [155] = "Andy Nuttall", [156] = "Tony Cox", [157] = "Andy Cakebread", [158] = " ", [159] = " ", [160] = " ", [161] = ":Wsparcie duchowe", [162] = ",", [163] = "Peter Molyneux", [164] = " ", [165] = " ", [166] = " ", [167] = ":Menadżer testowania", [168] = ",", [169] = "Andy Robson", [170] = " ", [171] = " ", [172] = " ", [173] = ":Główni testerzy", [174] = ",", [175] = "Wayne Imlach", [176] = "Jon Rennie", [177] = " ", [178] = " ", [179] = " ", [180] = ":Testerzy", [181] = ",", [182] = "Jeff Brutus", [183] = "Wayne Frost", [184] = "Steven Lawrie", [185] = "Tristan Paramor", [186] = "Nathan Smethurst", [187] = " ", [188] = "Ryan Corkery", [189] = "Simon Doherty", [190] = "James Dormer", [191] = "Martin Gregory", [192] = "Ben Lawley", [193] = "Joel Lewis", [194] = "David Lowe", [195] = "Robert Monczak", [196] = "Dominic Mortoza", [197] = "Karl O'Keeffe", [198] = "Michael Singletary", [199] = "Andrew Skipper", [200] = "Stuart Stephen", [201] = "David Wallington", [202] = " ", [203] = "oraz pozostali testerzy", [204] = " ", [205] = " ", [206] = " ", [207] = ":Wsparcie techniczne", [208] = ",", [209] = "Kevin Donkin", [210] = "Mike Burnham", [211] = "Simon Handby", [212] = " ", [213] = " ", [214] = " ", [215] = ":Marketing", [216] = ",", [217] = "Pete Murphy", [218] = "Sean Ratcliffe", [219] = " ", [220] = " ", [221] = " ", [222] = ":Z podziękowaniami dla:", [223] = ",", [224] = "Tamara Burke", [225] = "Annabel Roose", [226] = "Chris Morgan", [227] = "Pete Larsen", [228] = " ", [229] = " ", [230] = " ", [231] = ":PR", [232] = ",", [233] = "Cathy Campos", [234] = " ", [235] = " ", [236] = " ", [237] = ":Dokumentacja", [238] = ",", [239] = "Mark Casey", [240] = "Richard Johnston", [241] = "James Lenoel", [242] = "Jon Rennie", [243] = " ", [244] = " ", [245] = " ", [246] = ":Dokumentacja i projekt pudełka", [247] = ",", [248] = "Caroline Arthur", [249] = "James Nolan", [250] = " ", [251] = " ", [252] = " ", [253] = ":Menadżer lokalizacji", [254] = ",", [255] = "Carol Aggett", [256] = " ", [257] = " ", [258] = " ", [259] = ":Lokalizacja", [260] = ",", [261] = "Sandra Picaper", [262] = "Sonia 'Sam' Yazmadjian", [263] = " ", [264] = "Bettina Klos", [265] = "Alexa Kortsch", [266] = "Bianca Normann", [267] = " ", [268] = "C.T.O. S.p.A. Zola Predosa (BO)", [269] = "Gian Maria Battistini", [270] = "Maria Ziino", [271] = "Gabriele Vegetti", [272] = " ", [273] = "Elena Ruiz de Velasco", [274] = "Julio Valladares", [275] = "Ricardo Martínez", [276] = " ", [277] = "Kia Collin", [278] = "CBG Consult", [279] = "Ulf Thor", [280] = " ", [281] = " ", [282] = " ", [283] = ":Realizacja", [284] = ",", [285] = "Rachel Holman", [286] = " ", [287] = " ", [288] = " ", [289] = ":Producent", [290] = ",", [291] = "Mark Webley", [292] = " ", [293] = " ", [294] = " ", [295] = ":Współproducent", [296] = ",", [297] = "Andy Nuttall", [298] = " ", [299] = " ", [300] = " ", [301] = ":Wdrożenie", [302] = ",", [303] = "Steve Fitton", [304] = " ", [305] = " ", [306] = " ", [307] = ":Administracja firmy", [308] = ",", [309] = "Audrey Adams", [310] = "Annette Dabb", [311] = "Emma Gibbs", [312] = "Lucia Gobbo", [313] = "Jo Goodwin", [314] = "Sian Jones", [315] = "Kathy McEntee", [316] = "Louise Ratcliffe", [317] = " ", [318] = " ", [319] = " ", [320] = ":Zarząd spółki", [321] = ",", [322] = "Les Edgar", [323] = "Peter Molyneux", [324] = "David Byrne", [325] = " ", [326] = " ", [327] = ":Zespół Bullfrog Productions", [328] = " ", [329] = " ", [330] = " ", [331] = ":Specjalne podziękowania dla", [332] = ",", [333] = "Pracowników szpitala Frimley Park", [334] = " ", [335] = ":a zwłaszcza dla", [336] = ",", [337] = "Beverley Cannell", [338] = "Doug Carlisle", [339] = " ", [340] = " ", [341] = " ", [342] = ":Do spolszczenia szpitalnych perypetii przyczynili się", [343] = "bemberg, jako anestezjolog - tłumaczenie, korekta, testy", [344] = "Butcher, jako ordynator - pomysłodawca, tłumaczenie, korekta, czcionka, testy", [345] = "Johnny, jako pielęgniarz - korekta", [346] = "Machiner, jako lekarz pierwszego kontaktu - tłumaczenie, korekta", [347] = "mziab, jako chirurg - tłumaczenie, czcionka, korekta,", [348] = "narzędzia i przygotowanie skryptu do oprogramowania CAT", [349] = "spec0071, jako pielęgniarz - korekta, testy", [350] = "twig, jako konsultant - sprawy techniczne", [351] = " ", [352] = ":Miej głowę na karku", [353] = " ", [354] = " ", [355] = " ", [356] = " ", [357] = " ", [358] = " ", [359] = " ", [360] = " ", [361] = ".", } pay_rise = { definite_quit = "Cokolwiek zrobisz, nic mnie tu już nie zatrzyma. Mam dość tego miejsca.", regular = { [1] = "Jestem wykończony. Jeżeli nie chcesz, bym rzucił tę zakichaną robotę, pozwól mi odpocząć oraz daj podwyżkę o %d.", [2] = "Jestem bardzo zmęczony. Żądam odpoczynku i podwyżki o %d, z pensją %d. No dalej, tyranie!", [3] = "Daj spokój. Haruję tu jak pies. Daj mi premię %d, to zostanę w twoim szpitalu.", [4] = "Jestem bardzo niezadowolony. Żądam podwyżki o %d, dającej mi pensję %d, inaczej spadam stąd.", [5] = "Rodzice mówili mi, że w medycynie można sporo zarobić. Albo więc dasz mi podwyżkę o %d, albo zostanę producentem gier.", [6] = "Mam dosyć. Daj mi przyzwoitą pensję. Podwyżka o %d powinna wystarczyć.", }, poached = "%s zaproponowali mi %d. Jeśli nie zapłacisz mi tyle samo, odchodzę.", } menu_debug = { lua_console = " (%1%) KONSOLA LUA ", porter_pagers = " PORTER PAGERS ", object_cells = " OBJECT CELLS ", display_pager = " DISPLAY PAGER ", disable_salary_raise = " DISABLE SALARY RAISE ", make_debug_fax = " MAKE DEBUG FAX ", display_big_cells = " DISPLAY BIG CELLS ", make_debug_patient = " MAKE DEBUG PATIENT ", mapwho_checking = " MAPWHO CHECKING ", sprite_viewer = " SPRITE VIEWER ", keep_clear_cells = " KEEP CLEAR CELLS ", dump_strings = " (%1%) DUMP STRINGS ", machine_pagers = " MACHINE PAGERS ", remove_walls = " USUŃ ŚCIANY ", enter_nav_debug = " ENTER NAV DEBUG ", lose_game_anim = { [1] = " LOSE GAME 1 ANIM ", [2] = " LOSE GAME 2 ANIM ", [3] = " LOSE GAME 3 ANIM ", [4] = " LOSE GAME 4 ANIM ", [5] = " LOSE GAME 5 ANIM ", [6] = " LOSE GAME 6 ANIM ", [7] = " LOSE GAME 7 ANIM ", }, map_overlay = " MAP OVERLAY ", calls_dispatcher = " CALLS DISPATCHER ", show_nav_cells = " SHOW NAV CELLS ", win_game_anim = " WIN GAME ANIM ", display_room_status = " DISPLAY ROOM STATUS ", cheats = " (%1%) CHEATS ", remove_objects = " USUŃ OBIEKTY ", nav_bits = " NAV BITS ", win_level_anim = " WIN LEVEL ANIM ", dump_gamelog = " (%1%) DUMP GAME LOG ", limit_camera = " LIMIT CAMERA ", pixbuf_cells = " PIXBUF CELLS ", transparent_walls = " (%1%) TRANSPARENT WALLS ", show_help_hotspot = " SHOW HELP HOTSPOTS ", jump_to_level = " JUMP TO LEVEL ", entry_cells = " ENTRY CELLS ", plant_pagers = " PLANT PAGERS ", } progress_report = { free_build = "WOLNA BUDOWA", too_hot = "Zrób coś z centralnym ogrzewaniem. Jest za gorąco. ", percentage_pop = "% populacji", win_criteria = "KRYTERIA ZWYCIĘSTWA", very_unhappy = "Twoi ludzie są bardzo niezadowoleni. ", quite_unhappy = "Twoi ludzie są niezadowoleni. ", header = "Informacje o postępie", too_cold = "Jest zdecydowanie za zimno. Dokup kaloryfery. ", more_drinks_machines = "Kup więcej Automatów do napoi. ", } menu_options = { game_speed = " SZYBKOŚĆ GRY ", music_vol = " G�OŚNOŚĆ MUZYKI ", sound_vol = " G�OŚNOŚĆ DŹWIĘKU ", adviser_disabled = " (%1%) DORADCA ", warmth_colors = " CIEP�OŚĆ BARW ", wage_increase = " ŻĄDANIA PODWYŻKI", twentyfour_hour_clock = " ZEGAR 24 GODZINNY ", edge_scrolling = " PRZEWIJANIE PRZY KRAWĘDZIACH ", announcements = " (%1%) POWIADOMIENIA ", lock_windows = " ZABLOKUJ OKNA ", settings = " USTAWIENIA ", sound = " (%1%) DŹWIĘK ", announcements_vol = " G�OŚNOŚĆ POWIADOMIEŃ ", music = " (%1%) MUZYKA ", autosave = " AUTOZAPIS ", jukebox = " (%1%) SZAFA GRAJĄCA ", } menu_options_wage_increase = { grant = " PRZYZNAWAJ ", deny = " ODMAWIAJ ", } menu_options_warmth_colors = { choice_1 = " CZERWONY ", choice_2 = " NIEBIESKI ZIELONY CZERWONY ", choice_3 = " ŻÓ�TY POMARAŃCZOWY CZERWONY ", } menu_options_game_speed = { pause = " (%1%) PAUZA ", slowest = " (%1%) NAJWOLNIEJ ", slower = " (%1%) WOLNO ", normal = " (%1%) NORMALNIE ", max_speed = " (%1%) NAJSZYBCIEJ ", and_then_some_more = " (%1%) I JESZCZE TROCHĘ ", } rooms_short = { ultrascan = "Ultraskaner", research_room = "Dział Badawczy", fracture_clinic = "Gab. Ortopedyczny", gps_office = "Gabinet Lekarski", destroyed = "Zniszczone", staffroom = "Pokój Socjalny", jelly_vat = "Galaretownica", scanner = "Skaner", decontamination = "Gabinet Odkażania", pharmacy = "Apteka", cardiogram = "Kardiograf", reception = "Recepcja", training_room = "Sala Szkoleniowa", corridor_objects = "Obiekty Korytarza", operating_theatre = "Sala Operacyjna", dna_fixer = "Re-GEN-erator", ward = "Oddział", psychiatric = "Psychiatra", hair_restoration = "Przeszczep Włosów", general_diag = "Podst. Badania", inflation = "Napowietrzalnia", tongue_clinic = "Przych. Obrzynania", toilets = "Toalety", electrolysis = "Gabinet Elektrolizy", x_ray = "Rentgen", blood_machine = "Analizator Krwi", } level_names = { [1] = "BIA�OBYL", [2] = "ŚPIOCHY DUŻE", [3] = "ŚWIĄDEK ZDRÓJ", [4] = "ZASTRZYKI GÓRNE", [5] = "PROSTACZKOWO", [6] = "ROPIEŃ DOLNY", [7] = "ZIELONA GULA", [8] = "ZAKICHANE", [9] = "SZARYSTOK", [10] = "JAJECZNICA MA�A", [11] = "ŻABOBRZEGI", [12] = "CHORUŃ", [13] = "MI�OGRÓD", [14] = "WYCISK MA�Y", [15] = "ZIELSKO-BIA�A", } insurance_companies = { [1] = "�abądek Ltd.", [2] = "Cebula z Norfolk ", [3] = "Lodołamacz S.A.", [4] = "Potężny Żołądź Ltd.", [5] = "Pęcherz Walenia", [6] = "Poczciwy Józef S.A.", [7] = "Holding Pulchnego", [8] = "Leon Katz Corp.", [9] = "Buch i Faja S.A.", [10] = "Fikuśne Westalki", [11] = "Ubezp. Syndykatowe", out_of_business = "ZAKOŃCZY� DZIA�ALNOŚĆ", } lua_console = { execute_code = "Start", close = "Zamknij", } staff_descriptions = { good = { [1] = "Bardzo szybki i pilny pracownik. ", [2] = "Bardzo sumienny pracownik. Przykłada się. ", [3] = "Ma szeroką skalę umiejętności. ", [4] = "Bardzo przyjazny i lubiący śmiech pracownik. ", [5] = "Super wytrzymały pracownik. Ciągle brnie naprzód. ", [6] = "Nadzwyczaj uprzejmy i miły pracownik. ", [7] = "Niewiarygodnie utalentowany pracownik. ", [8] = "Zawsze dba o to, co robi. ", [9] = "Perfekcjonista, który się nie poddaje. ", [10] = "Pomaga ludziom z uśmiechem na ustach. ", [11] = "Czarujący, miły i pomocny pracownik. ", [12] = "Generalnie dobrze zmotywowany i oddany pracownik. ", [13] = "Przyjacielski i bardzo wydajny pracownik. ", [14] = "Lojalny i przyjazny pracownik. ", [15] = "Pracownik staranny i niezawodny w nagłych wypadkach. ", }, misc = { [1] = "Gra w golfa. ", [2] = "Nurkuje. ", [3] = "Rzeźbi w lodzie. ", [4] = "Pija wino. ", [5] = "Jeździ wyścigówkami. ", [6] = "Skacze na bungie. ", [7] = "Kolekcjonuje pokale. ", [8] = "Lubi skoki ze sceny. ", [9] = "Lubi surfing. ", [10] = "Poszerza rzeki. ", [11] = "Destyluje bimber. ", [12] = "Złota rączka. ", [13] = "Lubi francuskie kino. ", [14] = "Często gra w Theme Park. ", [15] = "Jeździ TIRem. ", [16] = "Ściga się na motorach. ", [17] = "Gra na skrzypcach i wiolonczeli. ", [18] = "Wysadza pociągi. ", [19] = "Uwielbia psy. ", [20] = "Słucha radia. ", [21] = "Bierze częste kąpiele. ", [22] = "Plecie kosze z wikliny. ", [23] = "Przerabia warzywa na mydelniczki. ", [24] = "Pracuje w policji na pół etatu. ", [25] = "Była hostessa w TV. ", [26] = "Kolekcjonuje szrapnele. ", [27] = "Przestawia meble. ", [28] = "Słucha muzyki rave i trip-hopu. ", [29] = "Rozwściecza insekty dezodorantami. ", [30] = "Przeszkadza satyrykom w występach. ", [31] = "Węszy w urzędach. ", [32] = "Skryty ogrodnik. ", [33] = "Przemyca trefne zegarki. ", [34] = "Śpiewa w zespole rockowym. ", [35] = "Uwielbia telewizję śniadaniową. ", [36] = "�askocze pstrągi. ", [37] = "Drażni turystów w muzeach. ", }, bad = { [1] = "Powolny i kapryśny pracownik. ", [2] = "Leniwy i słabo zmotywowany pracownik. ", [3] = "Niekompetentny i nieudolny pracownik. ", [4] = "Niegrzeczny i zgryźliwy pracownik. Czepia się ludzi. ", [5] = "Ma straszliwą wytrzymałość - i złe nastawienie. ", [6] = "Głuchy jak pień pracownik. Trochę cuchnie kapustą. ", [7] = "W pracy do niczego. Jest jak kula u nogi. ", [8] = "Lekkomyślny i roztargniony pracownik. ", [9] = "Zestresowany pracownik, popełnia błędy. ", [10] = "Pracownik zgorzkniały i obrażony - płonący z nienawiści. ", [11] = "Flejtuch powodujący wypadki. ", [12] = "Nie dba o pracę. W sumie nie dba o nic. ", [13] = "Bezmyślny ryzykant, któremu wszystko zwisa. ", [14] = "Szczwany, przebiegły wywrotowiec. ", [15] = "Arogancki i próżny pracownik. ", }, } room_classes = { diagnosis = "Diagnozy", clinics = "Przychodnie", facilities = "Udogodnienia", treatment = "Leczenie", } install = { exit = "Wyjście", th_directory = "CorsixTH potrzebuje plików z originalnej gry Theme Hospital (lub dema), do poprawnego działania. Proszę użyć poniższego pola, w celu zlokalizowania zainstalowanej gry Theme Hospital.", title = "--------------------------------- Ustawienia CorsixTH ---------------------------------", } place_objects_window = { pick_up_object = "Kliknij na obiekt, aby go podnieść lub wybierz inną opcję", place_objects_in_corridor = "Rozmieść obiekty na korytarzu", place_windows = "Jeżeli chcesz, wstaw okna i kliknij zatwierdź", confirm_or_buy_objects = "Możesz zatwierdzić pokój lub dokupić nowe przedmioty", drag_blueprint = "Rozciągnij niebieskie pole do odpowiedniego rozmiaru", place_door = "Wstaw drzwi", place_objects = "Rozmieść i poprzesuwaj wszystkie obiekty, następnie zatwierdź", } newspaper = { [1] = { [1] = "ORTOPEDA WILKO�AKIEM!", [2] = "INTERNISTA UDAJE BOGA!", [3] = "SZOK FRANKENSTEINA", [4] = "CO KRY�A MASKA CHIRURGA?", [5] = "RYZYKOWNE BADANIA ZATRZYMANE ", }, [2] = { [1] = "ULULANY KONOWA�", [2] = "CHIRURG P�UCZE NERKI", [3] = "KONSULTANT NA GAZIE", [4] = "BE�T NA ZNIECZULENIE", [5] = "ON ZA KITEL NIE WYLEWA", [6] = "ORDYNATORYJNY DENATURAT", }, [3] = { [1] = "CHCIWY CHIRURG", [2] = "LEKARZ Z RĘKĄ W BASENIE", [3] = "ZEJŚCIE DOKTORA", [4] = "NIENASYCONY CHIRURG", }, [4] = { [1] = "NIEULECZALNY PRZEKRĘT", [2] = "WRZÓD PRZESTĘPCZY", [3] = "OPERACJA PRZESZCZEPU PIENIĘDZY", [4] = "ZATOR FINANSOWY", }, [5] = { [1] = "ZDROWOTNE �UPIENIE GROBÓW", [2] = "LEKARZ HIENĄ CMENTARNĄ", [3] = "PO JEGO TRUPIE", [4] = "DZIEŃ ROZRACHUNKU DOKTORA ŚMIERCI", [5] = "ŚMIERTELNA NIEDBA�OŚĆ", [6] = "CMENTARNE WYKOPKI", }, [6] = { [1] = "DOKTOR ZASZYTY!", [2] = "NIEUWAŻNY ZNACHOR", [3] = "PONURA DIAGNOZA", [4] = "NIESPECJALNY SPECJALISTA", }, [7] = { [1] = "DOKTOROWI POSYPA�Y SIĘ KULKI", [2] = "CHIRURG SAM SIĘ ZOPEROWA�", [3] = "ROBÓTKI RĘCZNE W LATRYNIE", [4] = "DOKTOR GWIAZDĄ SKANDALU", [5] = "LEKARZ ZDROWO NAMIESZA�", }, } load_game_window = { caption = "Wczytaj Grę (%1%)", } staff_title = { junior = "Asystent", psychiatrist = "Psychiatra", consultant = "Konsultant", surgeon = "Chirurg", doctor = "Lekarz", researcher = "Naukowiec", nurse = "Pielęgniarka", receptionist = "Recepcjonistka", general = "Ogólne", } graphs = { deaths = "Zgony", money_in = "Dochody", money_out = "Wydatki", visitors = "Pacjenci", wages = "Wypłaty", balance = "Bilans", time_spans = { [1] = "1 Rok", [2] = "12 Lat", [3] = "48 Lat", }, cures = "Wyleczeni", reputation = "Reputacja", } adviser = { tutorial = { hire_receptionist = "Będzie ci także potrzebna Recepcjonistka do rejestrowania pacjentów.", build_pharmacy = "Gratulacje! Teraz zbuduj Aptekę i zatrudnij w niej Pielęgniarkę, aby szpital wreszcie mógł zacząć pracę.", hire_doctor = "Potrzebujesz Lekarza do diagnozowania i leczenia chorych.", place_receptionist = "Umieść Recepcjonistkę w którymkolwiek miejscu szpitala. Jest ona na tyle sprytna, że sama znajdzie drogę do biurka.", place_windows = "Umieść okna w ten sam sposób co drzwi. Okna nie są wymagane, jednak twój personel będzie szczęśliwszy, gdy wyjrzy sobie na zewnątrz.", confirm_room = "Kliknij na migającą ikonę, aby otworzyć gabinet lub kliknij X, aby anulować.", rotate_and_place_reception = "Kliknij prawym przyciskiem myszy, aby obrócić Biurko, a lewym, aby umieścić je w wybranym miejscu.", build_reception = "Witaj. Na początku twój szpital potrzebuje Biurko Recepcji. Wybierz je z menu Wyposażenie Korytarza.", doctor_in_invalid_position = "Hej! Nie możesz tutaj umieścić Lekarza.", start_tutorial = "Przeczytaj Zadania Misji, a następnie kliknij, aby rozpocząć szkolenie.", receptionist_invalid_position = "Nie możesz tutaj umieścić Recepcjonistki.", room_too_small_and_invalid = "Pomieszczenie jest za małe i stoi w niewłaściwym miejscu. Bez żartów.", window_in_invalid_position = "To okno jest w niewłaściwym miejscu. Byłoby miło, gdybyś wstawił je gdzie indziej.", choose_doctor = "Sprawdź dokładnie kwalifikacje każdego Lekarza, zanim któregoś wybierzesz.", information_window = "Okno pomocy powie ci wszystko na temat tego pięknego Gabinetu Lekarskiego, który właśnie zbudowałeś.", build_gps_office = "Aby rozpocząć diagnozowanie chorych, musisz wybudować Gabinet Lekarski.", select_doctors = "Kliknij lewym przyciskiem myszy na migającej ikonie, aby zobaczyć dostępnych Lekarzy.", select_diagnosis_rooms = "Kliknij w migającą ikonę, aby wyświetlić listę gabinetów diagnostycznych.", select_receptionists = "Kliknij na migającej ikonie, aby wyświetlić dostępne Recepcjonistki. Numer na ikonie informuje, ile jest chętnych do pracy.", order_one_reception = "Kliknij lewym przyciskiem myszy w migającą linię, aby zamówić jedno Biurko Recepcyjne.", choose_receptionist = "Wybierz Recepcjonistkę, która ma dobre kwalifikacje oraz jest niedroga, a następnie kliknij na migającej ikonie, aby ją zatrudnić.", prev_receptionist = "Kliknij w migającą ikonę, aby zobaczyć poprzednią Recepcjonistkę.", accept_purchase = "Kliknij w migającą ikonę, aby je zakupić.", place_door = "Przesuń kursor po niebieskiej linii, aby umieścić drzwi w wybranym miejscu.", click_and_drag_to_build = "Zanim zbudujesz Gabinet Lekarski, musisz zdecydować o jego rozmiarach. Przytrzymaj lewy przycisk myszy i rozciągnij gabinet do odpowiedniej wielkości.", room_in_invalid_position = "Ojej! Rozmiar pomieszczenia jest niewłaściwy - czerwona strefa pokazuje miejsce, gdzie nachodzi on na inne pomieszczenia lub na ściany szpitala.", place_objects = "Prawy przycisk myszy obraca przedmioty, lewy ustawia je w danym miejscu.", room_too_small = "Kolor czerwony oznacza, że pokój jest za mały. Rozciągnij go trochę, aby go powiększyć.", click_gps_office = "Kliknij w migającą linię, aby wybrać Gabinet Lekarski.", reception_invalid_position = "Biurko Recepcji jest szare, gdyż znajduje się w niewłaściwym miejscu. Spróbuj je przesunąć lub obrócić.", next_receptionist = "To pierwsza Recepcjonistka na liście. Kliknij w migającą ikonę, aby zobaczyć następną Recepcjonistkę.", room_big_enough = "Rozmiar gabinetu jest teraz odpowiedni. Kiedy puścisz przycisk, gabinet zostanie zbudowany. Pamiętaj, że zawsze możesz go przesunąć lub zmienić jego rozmiary.", object_in_invalid_position = "Ten przedmiot jest w niewłaściwym miejscu. Obróć go lub umieść gdzie indziej.", door_in_invalid_position = "Ech! Próbujesz umieścić drzwi w niewłaściwym miejscu. Spróbuj wstawić je gdzie indziej.", place_doctor = "Umieść doktora w którymkolwiek miejscu szpitala. Samodzielnie uda się do Gabinetu Lekarskiego i rozpocznie pracę.", }, epidemic = { hurry_up = "Jeżeli natychmiast nie zaradzisz tej epidemii, znajdziesz się w niezłych tarapatach. Rusz się!", serious_warning = "Ta Zaraźliwa Choroba zaczyna być poważna. Musisz szybko coś zrobić!", multiple_epidemies = "Wygląda na to, że w szpitalu szaleje więcej niż jedna epidemia. To może skończyć się kolosalna katastrofą, więc lepiej zacznij działać.", }, staff_advice = { need_handyman_machines = "Jeśli chcesz zachować przyrządy szpitalne w dobrym stanie, musisz zatrudnić Dozorcę.", need_doctors = "Potrzebujesz więcej Lekarzy. Umieść najlepszych Lekarzy w gabinetach z najdłuższą kolejką.", need_handyman_plants = "Musisz zatrudnić Dozorcę, aby podlewał rośliny.", need_handyman_litter = "Ludzie zaczęli zaśmiecać twój szpital. Zatrudnij Dozorcę, aby po nich sprzątał.", need_nurses = "Musisz zatrudnić więcej Pielęgniarek. Oddział oraz Apteka potrzebują Pielęgniarki.", too_many_doctors = "Masz za dużo Lekarzy. Niektórzy z nich nie mają w tej chwili co robić.", too_many_nurses = "Myślę, że obecnie zatrudniasz zbyt wiele Pielęgniarek.", }, earthquake = { damage = "W wyniku trzęsienia ziemi %d urządzeń zostało uszkodzonych i %d ludzi rannych.", alert = "Zbliża się trzęsienie ziemi, podczas którego przyrządy szpitalne ulegną uszkodzeniu. Mogą też zostać zniszczone, jeśli są w kiepskim stanie.", ended = "Uff... A już myślałem, że to Gruba Berta - %d w skali Richtera.", }, multiplayer = { objective_completed = "Poradziłeś sobie z ostatnim zadaniem. Gratulacje!", everyone_failed = "Nikt nie poradził sobie z ostatnim zadaniem. W związku z tym wszyscy pozostają w grze!", players_failed = "Następujący gracz(e) nie wykonali ostatniego zadania: ", poaching = { in_progress = "Dam ci znać, czy ta osoba chce pracować dla ciebie.", not_interested = "Ha! Nie mają ochoty pracować dla ciebie - dobrze im tam, gdzie teraz są.", already_poached_by_someone = "Niemożliwe! Ktoś próbuje podkupić tę osobę.", }, objective_failed = "Nie poradziłeś sobie z ostatnim zadaniem.", }, surgery_requirements = { need_surgeons_ward_op = "Musisz zatrudnić dwóch Chirurgów oraz zbudować Oddział i Salę Operacyjną, aby rozpocząć przeprowadzanie operacji.", need_surgeon_ward = "Musisz zatrudnić jeszcze jednego Chirurga i wybudować Oddział, aby rozpocząć prowadzenie Operacji.", }, vomit_wave = { started = "Wygląda na to, że w twoim szpitalu zalągł się wirus wymiocin. Gdybyś bardziej dbał o czystość, ta sytuacja nie miałaby miejsca. Może powinieneś zatrudnić więcej Dozorców?", ended = "Uff! Zdaje się, że wirus, który wywołał tę falę wymiotów prawie całkiem zginął. Od tej chwili staraj się utrzymywać szpital w czystości.", }, cheats = { th_cheat = "Gratulacje, odblokowałeś oszustwa!", hairyitis_cheat = "Oszustwo Włochacizna aktywowane!", roujin_on_cheat = "Wyzwanie Roujinowa aktywowane! Powodzenia...", crazy_on_cheat = "O nie! Wszyscy lekarze oszaleli!", bloaty_off_cheat = "Oszustwo Głowowzdęcie deaktywowane.", bloaty_cheat = "Oszustwo Głowowzdęcie aktywowane!", crazy_off_cheat = "Uff... lekarze wrócili do zdrowych zmysłów.", roujin_off_cheat = "Wyzwanie Roujinowa deaktywowane.", hairyitis_off_cheat = "Oszustwo Włochacizna deaktywowane.", }, level_progress = { halfway_lost = "Jesteś w połowie drogi do przegrania tego poziomu.", dont_kill_more_patients = "Nie możesz sobie pozwolić na śmierć kolejnych pacjentów!", another_patient_killed = "O nie! Zabiłeś kolejnego pacjenta. Masz już na koncie %d zgonów.", halfway_won = "Jesteś w połowie drogi do ukończenia tego poziomu.", close_to_win_increase_value = "Zbliżasz się do zwycięstwa. Zwiększ wartość swojego szpitala o %d.", financial_criteria_met = "Osiągnąłeś kryteria finansowe tego poziomu. Teraz utrzymaj stan konta powyżej %d i upewnij się, że szpital jest sprawnie prowadzony.", nearly_won = "Jesteś już bardzo blisko wygrania poziomu.", hospital_value_enough = "Utrzymaj wartość szpitala powyżej %d i zajmij się innymi problemami, aby wygrać ten poziom.", another_patient_cured = "Dobra robota - kolejny pacjent wyleczony. To juz %d.", three_quarters_lost = "Jeżeli nic nie zmienisz przegrasz ten poziom.", reputation_good_enough = "Twoja reputacja jest wystarczająca, aby wygrać ten poziom. Utrzymaj ją powyżej %d i rozwiąż pozostałe problemy, aby go ukończyć.", cured_enough_patients = "Wyleczyłeś wystarczająco pacjentów, ale musisz zaprowadzić w szpitalu większy porządek, aby wygrać ten poziom.", nearly_lost = "Jesteś bardzo bliski przegrania tego poziomu.", improve_reputation = "Musisz zwiększyć swoją reputację o %d, aby mieć szansę na zwycięstwo.", three_quarters_won = "Jeszcze trochę zostało ci do wygranej na tym poziomie.", }, staff_place_advice = { receptionists_only_at_desk = "Recepcjonistka może pracować tylko w Recepcji.", only_psychiatrists = "Tylko Lekarz, który posiada specjalizację Psychiatry, może pracować w Gabinecie Psychiatrycznym.", only_surgeons = "Tylko Lekarz, który posiada specjalizację Chirurga, może pracować na Sali Operacyjnej.", only_nurses_in_room = "Jedynie Pielęgniarka może pracować w %s", only_doctors_in_room = "Jedynie Lekarz może pracować w %s", only_researchers = "Tylko Lekarz, który posiada specjalizację Naukowca, może pracować w Dziale Badawczym.", nurses_cannot_work_in_room = "Pielęgniarka nie może pracować w %s", doctors_cannot_work_in_room = "Lekarz nie może pracować w %s", }, room_forbidden_non_reachable_parts = "Budując tutaj to pomieszczenie, zablokujesz dostęp do pozostałych części szpitala.", research = { machine_improved = "Urządzenie %s zostało ulepszone przez Dział Badawczy.", autopsy_discovered_rep_loss = "Wyciekły informacje o używaniu maszyny do Auto-Autopsji. Spodziewaj się negatywnych reakcji opinii publicznej.", drug_fully_researched = "Doprowadziłeś badanie %s do 100%.", new_machine_researched = "Nowy %s właśnie został odkryty.", drug_improved = "Lek %s właśnie został udoskonalony przez twój Dział Badawczy.", new_available = "Nowy %s został udostępniony.", new_drug_researched = "Nowy specyfik leczący %s właśnie został odkryty.", }, boiler_issue = { minimum_heat = "Ach, tutaj jesteś. Bojler w piwnicy się zepsuł. Wygląda na to, że ludzie w twoim szpitalu zaczną nieco marznąć.", maximum_heat = "Bojler w piwnicy dostał bzika i kaloryfery strasznie się rozgrzały. Ludzie zaraz zaczną się roztapiać! Postaw więcej Automatów do napoi.", resolved = "Dobra wiadomość. Bojler i kaloryfery znowu działają poprawnie. Temperatura powinna być już odpowiednia dla pacjentów i personelu.", }, competitors = { staff_poached = "Jeden z twoich pracowników został podkupiony przez inny Szpital.", hospital_opened = "%s otworzył w okolicy konkurencyjny szpital. ", land_purchased = "%s właśnie kupił nowe tereny.", }, room_requirements = { research_room_need_researcher = "W Gabinecie Badawczym musisz zatrudnić Lekarza że specjalizacją Naukowca.", op_need_another_surgeon = "Musisz zatrudnić jeszcze jednego Chirurga, aby możliwe było prowadzenie operacji.", op_need_ward = "Zanim poddasz pacjentów operacji, musisz zbudować Oddział Przedzabiegowy.", reception_need_receptionist = "Musisz zatrudnić Recepcjonistkę, aby rejestrować pacjentów.", psychiatry_need_psychiatrist = "Zbudowałeś Gabinet Psychiatryczny, musisz jeszcze zatrudnić Psychiatrę.", pharmacy_need_nurse = "Musisz zatrudnić Pielęgniarkę w tej Aptece.", ward_need_nurse = "Musisz zatrudnić Pielęgniarkę do pracy na tym Oddziale.", op_need_two_surgeons = "Zatrudnij dwóch Chirurgów do pracy w Sali Operacyjnej.", training_room_need_consultant = "Musisz zatrudnić Konsultanta w tej Sali Szkoleniowej.", gps_office_need_doctor = "Musisz zatrudnić Lekarza do pracy w Gabinecie Lekarskim.", }, goals = { win = { money = "Potrzebujesz kolejnych %d, aby spełnić wymogi finansowe tego poziomu.", cure = "Wylecz kolejnych %d pacjentów, a będziesz miał ich wystarczająco dużo, aby wygrać ten poziom.", reputation = "Zwiększ swoja reputację do %d, aby spełnić wymóg misji.", value = "Musisz zwiększyć wartość swojego szpitala do %d", }, lose = { kill = "Zabij kolejnych %d pacjentów, a przegrasz misję!", }, }, warnings = { charges_too_low = "Pobierasz za niskie opłaty. Ludzie będą wybierać twój szpital, jednak nie zostawią w nim dużo pieniędzy.", charges_too_high = "Wprowadziłeś zbyt wysokie opłaty. Przez jakiś czas będziesz miał spore zyski, ale potem pacjenci zaczną rezygnować z twoich usług.", staff_overworked = "Twoi pracownicy są niezmiernie przepracowani. Stają się nieefektywni i mogą popełniać katastrofalne błędy.", doctor_crazy_overwork = "O nie! Jeden z twoich Lekarzy oszalał z przepracowania. Jeżeli natychmiast pozwolisz mu odpocząć, to może wyzdrowieje.", doctors_tired = "Twoi Lekarze są bardzo zmęczeni. Daj im odpocząć.", people_did_it_on_the_floor = "Niektórzy z twoich pacjentów nie wytrzymali. Szykuje się dla kogoś duże sprzątanie.", queues_too_long = "Kolejki w twoim szpitalu są za długie.", money_very_low_take_loan = "Stan twojego konta jest zatrważająco niski. Mógłbyś rozważyć wzięcie kredytu.", falling_2 = "Przestaniesz się w końcu wygłupiać?", patients_very_thirsty = "Pacjenci naprawdę są spragnieni. Jeżeli nie kupisz szybko Automatów do napoi, będziesz świadkiem wielkiej migracji ludzi do domu po własną colę.", machinery_very_damaged = "Pilne! Bezzwłocznie wezwij Dozorcę! Urządzenia za chwilę eksplodują!", handymen_tired2 = "Twoi Dozorcy słaniają się ze zmęczenia. Daj im natychmiast odpocząć.", desperate_need_for_watering = "Musisz koniecznie zatrudnić Dozorcę, aby dbał o twoje rośliny.", nurses_tired = "Twoje Pielęgniarki są zmęczone. Daj im odpocząć.", too_much_litter = "Jest problem ze śmieciami, który rozwiązać może większa liczba Dozorców.", reception_bottleneck = "W recepcji utworzył się korek. Zatrudnij nową Recepcjonistkę.", place_plants4 = "Rozwesel pacjentów stawiając wokół więcej roślin.", place_plants3 = "Pacjenci są przygnębieni. Kup więcej roślin, aby ich rozweselić.", staff_too_hot = "Twoim pracownikom jest za gorąco. Obniż temperaturę lub usuń kaloryfery z ich gabinetów.", finanical_trouble2 = "Zdobądź jakieś pieniądze albo szpital pójdzie pod młotek. Nie ukończysz poziomu, jeśli stracisz kolejne %d.", plants_thirsty = "Musisz dbać o szpitalne rośliny. Zaczynają usychać.", litter_everywhere = "Śmieci są wszędzie. Niech Dozorcy zajmą się tym problemem.", nurses_tired2 = "Twoje Pielęgniarki są bardzo zmęczone. Daj im natychmiast odpocząć.", no_desk_2 = "Dobra robota, to musi być rekord świata: prawie rok bez pacjentów! Jeżeli chcesz nadal być kierownikiem tego szpitala, musisz zatrudnić recepcjonistkę i kupić jej biurko aby mogła pracować!", plants_dying = "Rośliny umierają błagając o kroplę wody. Niech Dozorcy się tym zajmą. Pacjenci nie lubią martwych roślin.", reduce_staff_rest_threshold = "Spróbuj obniżyć próg zmęczenia personelu na ekranie Strategii Szpitala tak, aby załoga mogła częściej odpoczywać.", more_toilets = "Potrzebujesz więcej Toalet. Ludzie muszą się załatwić.", hospital_is_rubbish = "Ludzie otwarcie mówią, że twój szpital jest do niczego. Chyba wiesz co będzie dalej: zabiorą się ze swoimi choróbskami do innego szpitala.", pay_back_loan = "Masz dużo pieniędzy. Może byś pomyślał o spłacie pożyczki?", financial_trouble3 = "Stan twojego konta wygląda niepokojąco. Pomyśl jak zarobić więcej pieniędzy. Jesteś o %d od katastrofy.", bankruptcy_imminent = "Hej! Zmierzasz do bankructwa. Bądź ostrożny!", build_toilet_now = "Zbuduj Toalety! Ludzie nie mogą już dłużej wytrzymać. Nie śmiej się, to poważna sprawa.", patient_stuck = "Ktoś się zaklinował. Musisz lepiej rozplanować swój szpital.", no_patients_last_month = "W poprzednim miesiącu żaden nowy pacjent nie pojawił się w twoim szpitalu. Tragedia!", falling_5 = "To nie miejsce na przewracanie ludzi, wiesz przecież, że są chorzy!", patients_too_hot = "Pacjentom jest za gorąco. Usuń kilka kaloryferów, obniż temperaturę, albo dokup automaty do napoi.", many_epidemics = "Wygląda na to, że w szpitalu szaleje więcej niż jedna epidemia. To może skończyć się kolosalna katastrofą, więc lepiej zacznij działać.", falling_4 = "To jest szpital, nie wesołe miasteczko!", place_plants_to_keep_people = "Ludzie odchodzą. Umieszczenie roślin mogłoby ich przekonać do pozostania.", patients_thirsty2 = "Ludziom chce się pić. Powinieneś kupić więcej Automatów do napoi, albo przesunąć te, które już masz bliżej pacjentów.", money_low = "Kończą ci się pieniądze!", staff_unhappy = "Twoi pracownicy są niezadowoleni. Daj im podwyżkę, a najlepiej zbuduj dla nich Pokój Socjalny. Możesz także przydzielić im więcej czasu wolnego w dziale Strategia.", people_freezing = "Aż trudno uwierzyć, ale w epoce centralnego ogrzewania niektórzy z twoich pacjentów marzną na kość. Zamontuj kaloryfery i podkręć ogrzewanie.", falling_6 = "To nie kręgielnia, chorzy nie powinni być traktowani w taki sposób!", need_toilets = "Pacjenci potrzebują toalet. Zbuduj je w łatwo dostępnym miejscu.", falling_3 = "Auć, to musiało boleć, niech ktoś wezwie doktora!", nobody_cured_last_month = "W poprzednim miesiącu nie wyleczyłeś absolutnie nikogo.", financial_trouble = "Jesteś w poważnych finansowych tarapatach. Natychmiast uporządkuj swoje finanse! Jeżeli stracisz kolejne %d, zawalisz ten poziom!", patients_very_cold = "Pacjentom jest bardzo zimno. Spróbuj podkręcić ogrzewanie lub zamontuj więcej kaloryferów.", no_desk_3 = "Po prostu wspaniale, minął prawie rok a ty nadal nie masz recepcji! W jako sposób zamierzasz zdobyć pacjentów? Zajmij się tym natychmiast i przestań się w końcu wygłupiać!", build_toilets = "Czym prędzej zbuduj Toalety, albo ujrzysz coś nieprzyjemnego. Wyobraź sobie także zapach swojego szpitala.", cannot_afford = "Nie masz wystarczającej ilości pieniędzy aby zatrudnić tą osobę!", no_desk = "Powinieneś zakupić biurko recepcji i zatrudnić recepcjonistkę!", patients_annoyed = "Ludzie są strasznie zdenerwowani twoim sposobem prowadzenia szpitala. I wcale im się nie dziwię. Weź się do roboty albo poniesiesz konsekwencje!", many_killed = "Masz już na sumieniu %d ludzi. A powinieneś ich leczyć i dobrze o tym wiesz.", place_plants2 = "Ludzie odchodzą. Więcej roślin mogłoby ich tu zatrzymać dłużej.", staff_tired = "Twoi pracownicy są strasznie zmęczeni. Jeżeli nie dasz im choć trochę odpocząć, niektórzy mogą paść z wycieńczenia.", machines_falling_apart = "Przyrządy w twoim szpitalu psują się. Wyślij natychmiast Dozorcę do ich naprawy!", patients_unhappy = "Pacjenci nie lubią twojego szpitala. Powinieneś coś zrobić, by poprawić im warunki.", no_desk_1 = "Jeżeli chcesz aby pacjenci odwiedzali twój szpital, będziesz musiał zatrudnić recepcjonistkę i zakupić jej biurko, przy którym będzie pracować!", staff_unhappy2 = "Twoi pracownicy są niezadowoleni. Poza tym wkrótce będą chcieli więcej pieniędzy.", cash_low_consider_loan = "Twoja sytuacja finansowa jest bardzo zła. Czy rozważałeś wzięcie kredytu?", queue_too_long_at_reception = "Zbyt wielu pacjentów czeka na rejestrację. Postaw nowe Biurko Recepcji i zatrudnij Recepcjonistkę.", queue_too_long_send_doctor = "Kolejki do %s są za długie. Upewnij się, że w gabinecie jest Lekarz.", falling_1 = "Hej! To nie jest śmieszne, uważaj gdzie klikasz tą myszką; komuś może stać się krzywda!", doctors_tired2 = "Twoi Lekarze ledwo żyją. Potrzebują natychmiastowego odpoczynku.", handymen_tired = "Twoi Dozorcy są bardzo zmęczeni. Daj im odpocząć.", patient_leaving = "Jakiś pacjent odchodzi. Powód? Twój kiepsko zarządzany i słabo wyposażony szpital.", deal_with_epidemic_now = "Jeżeli natychmiast nie zaradzisz tej epidemii, znajdziesz się w niezłych tarapatach. Rusz się!", patients_leaving = "Pacjenci odchodzą. Ulepsz swój szpital umieszczając w nim rośliny, ławki, automaty do napoi, itd.", machinery_damaged2 = "Musisz zatrudnić Dozorcę do naprawy urządzeń.", epidemic_getting_serious = "Ta Zaraźliwa Choroba zaczyna być poważna. Musisz szybko coś zrobić!", people_have_to_stand = "Zmuszasz cierpiący lud do stania. Kup natychmiast więcej ławek.", receptionists_tired = "Twoje Recepcjonistki są strasznie zmęczone. Daj im odpocząć.", build_staffroom = "Natychmiast zbuduj Pokój Socjalny! Twój personel pracuje ponad siły i jest na skraju wyczerpania. Nabierz wreszcie rozumu!", machinery_slightly_damaged = "Maszyny w szpitalu są nieco uszkodzone. Nie zapomnij o ich konserwacji.", need_staffroom = "Zbuduj Pokój Socjalny, aby twoi pracownicy mieli gdzie odpocząć.", patients_getting_hot = "Pacjentom jest bardzo gorąco. Spróbuj zmniejszyć ogrzewanie lub usuń niektóre kaloryfery.", machinery_deteriorating = "Twoje urządzenia właśnie zaczęły niszczeć na skutek zużycia. Miej na nie oko.", machinery_damaged = "Niedługo będziesz musiał zająć się naprawą urządzeń szpitalnych, bo zaczną się rozpadać.", patients_thirsty = "Ludziom chce się pić. Może powinieneś kupić jakieś automaty do napoi.", machine_severely_damaged = "%s wkrótce ulegnie nieodwracalnemu uszkodzeniu.", litter_catastrophy = "Sytuacja ze śmieciami wygląda strasznie. Niech brygada Dozorców szybko się tym zajmie!", staff_very_cold = "Personel narzeka na zimno. Podkręć ogrzewanie lub zamontuj więcej kaloryferów.", more_benches = "Pomyśl o wstawieniu większej liczby ławek. Pacjenci nie znoszą stania.", too_many_plants = "Masz zdecydowanie za dużo roślin. Tu jest jak w dżungli.", change_priorities_to_plants = "Musisz zmienić zadania swoim Dozorcom tak, aby spędzali więcej czasu na podlewaniu roślin.", some_litter = "Dozorcy mogą pozbyć się śmieci, zanim staną się one poważnym problemem.", receptionists_tired2 = "Twoje Recepcjonistki opadły z sił. Daj im trochę odpocząć.", patients_really_thirsty = "Pacjenci są naprawdę spragnieni. Wstaw nowe Automaty do napoi, lub przesuń stare bliżej dużych kolejek.", research_screen_open_2 = "Na obecnym poziomie badania są niedostępne.", research_screen_open_1 = "Najpierw musisz wybudować Dział Badawczy aby mieć dostęp do ekranu badań.", }, placement_info = { door_can_place = "Jeżeli chcesz, możesz umieścić tutaj drzwi.", window_can_place = "Możesz wstawić to okno tutaj. Będzie pasowało.", door_cannot_place = "Niestety nie możesz tu wstawić drzwi.", object_can_place = "Możesz umieścić ten przedmiot tutaj.", reception_can_place = "Nie możesz tu umieścić Biurka Recepcji.", staff_cannot_place = "Przykro mi, ale nie możesz tu umieścić tego pracownika.", staff_can_place = "Możesz umieścić tego pracownika tutaj. ", object_cannot_place = "Hej, nie możesz tu umieścić tego przedmiotu.", room_cannot_place = "Nie możesz tu zbudować pomieszczenia.", room_cannot_place_2 = "Nie możesz tu zbudować pomieszczenia.", window_cannot_place = "Ach, prawdę mówiąc nie możesz tu wstawić okna.", reception_cannot_place = "Nie możesz tu umieścić Biurka Recepcji.", }, praise = { many_benches = "Teraz pacjenci mają wystarczającą liczbę ławek. Świetnie.", many_plants = "Wspaniale. W twoim szpitalu jest mnóstwo roślin. Pacjenci to docenią.", plants_are_well = "Jak miło. Widzę, że dbasz o swoje rośliny. To wspaniale.", few_have_to_stand = "Nikt nie musi stać w twoim szpitalu. Pacjenci będą zadowoleni.", plenty_of_benches = "Jest dużo miejsc do siedzenia, więc nie ma problemu.", plants_thriving = "Bardzo dobrze. Twoje rośliny dosłownie rozkwitają. Wyglądają cudownie. Tak trzymaj, a może wygrasz za nie trofeum.", patients_cured = "Wyleczono %d pacjentów.", }, information = { larger_rooms = "Większe pomieszczenia zwiększają zadowolenie i wydajność twojego personelu.", extra_items = "Dodatkowe przedmioty w pokojach zapewniają pracownikom większy komfort i zwiększają ich wydajność.", epidemic = "W twoim szpitalu rozpleniła się zaraźliwa choroba. Musisz natychmiast rozwiązać ten problem!", promotion_to_doctor = "Jeden z twoich ASYSTENTÓW awansował na DOKTORA.", emergency = "Mamy nagły wypadek! Ruchy! Ruchy! RUCHY!", patient_abducted = "Jednego z twoich pacjentów próbują uprowadzić kosmici.", first_cure = "Dobra robota! Właśnie wyleczyłeś swojego pierwszego pacjenta.", promotion_to_consultant = "Jeden z twoich LEKARZY awansował na KONSULTANTA.", handyman_adjust = "Możesz zmusić Dozorców do efektywniejszego sprzątania poprzez zmianę ich priorytetów.", promotion_to_specialist = "Jeden z twoich Lekarzy awansował do stopnia: %s.", initial_general_advice = { rats_have_arrived = "Szczury nawiedziły twój szpital. Spróbuj wystrzelać je za pomocą myszy.", autopsy_available = "Wynaleziono urządzenie do Auto Autopsji. Dzięki temu możesz pozbyć się kłopotliwych lub niepożądanych pacjentów i prowadzić badania na ich zwłokach. Uważaj jednak - używanie tej maszyny jest bardzo kontrowersyjne.", first_patients_thirsty = "Ludzie w twoim szpitalu są spragnieni. Postaw więcej Automatów do napoi.", research_now_available = "Zbudowałeś swój pierwszy Dział Badawczy. Teraz masz dostęp do ekranu Badań.", psychiatric_symbol = "Lekarze wyszkoleni w psychiatrii posiadają symbol: |", decrease_heating = "Ludziom w twoim szpitalu jest za gorąco. Zmniejsz poziom ogrzewania. Możesz tego dokonać w ekranie Mapy Miasta.", surgeon_symbol = "Lekarze mogący przeprowadzać operacje posiadają symbol: {", first_emergency = "Pacjenci z nagłych wypadków maja nad głowami niebieskie lampki. Wylecz ich zanim umrą lub upłynie limit czasu.", first_epidemic = "W twoim szpitalu wybuchła epidemia! Zdecyduj czy chcesz zakamuflować czy ujawnić ten problem.", taking_your_staff = "Ktoś podkupuje twoich pracowników. Będziesz musiał walczyć, aby ich zatrzymać.", place_radiators = "Ludzie w twoim szpitalu marzną - możesz zamontować więcej kaloryferów kupując je w menu Wyposażenie Korytarza.", epidemic_spreading = "W twoim szpitalu wykryto zakażenie. Spróbuj wyleczyć wszystkich zakażonych pacjentów, nim opuszczą szpital.", research_symbol = "Lekarze mogący prowadzić badania posiadają symbol: }", machine_needs_repair = "Jedno z twoich urządzeń wymaga naprawy. Zlokalizuj je - będzie dymiło - i kliknij na nie. Następnie kliknij na przycisk Dozorcy.", increase_heating = "Ludziom jest zimno. Podkręć ogrzewanie na ekranie Mapy Miasta.", first_VIP = "Twój szpital czeka pierwsza wizytacja VIPa. Upewnij się, że nie zobaczy on niczego niehigienicznego ani nie spotka niezadowolonych pacjentów.", }, patient_leaving_too_expensive = "Pacjent wychodzi bez płacenia za %s. To zbyt kosztowna usługa.", vip_arrived = "Uwaga! Przed chwilą przyjechał %s w celu wizytacji twojego szpitala! Miej wszystko pod kontrolą, aby był zadowolony.", epidemic_health_inspector = "Wieści o epidemii z twojego szpitala dotarły do Ministerstwa Zdrowia. Przygotuj się na wizytę Inspektora Zdrowia.", first_death = "Właśnie zabiłeś swojego pierwszego pacjenta. Jakie to uczucie?", pay_rise = "Członek personelu grozi odejściem. Zdecyduj czy zgadzasz się na jego żądania czy też zwolnisz go z pracy. Kliknij na ikonie po lewej stronie, aby zobaczyć kto grozi odejściem.", place_windows = "Dzięki oknom pomieszczenia są nasłonecznione, a twoi pracownicy mają lepszy nastrój.", fax_received = "Ikona, która właśnie pojawiła się w lewej, dolnej części ekranu, alarmuje cię o ważnych informacjach lub decyzjach, które musisz podjąć.", }, build_advice = { placing_object_blocks_door = "Umieszczenie tego obiektu tutaj uniemożliwi dostanie się do drzwi.", blueprint_would_block = "Projekt blokuje inne pomieszczenia. Spróbuj zmienić rozmiar pomieszczenia lub przesunąć je gdzie indziej!", door_not_reachable = "Ludzie nie będą mogli dostać się do tych drzwi. Zastanów się.", blueprint_invalid = "Projekt pomieszczenia jest niewłaściwy.", }, } calls_dispatcher = { repair = "Naprawa %s", summary = "%d wezwań; %d przydzielono", close = "Zamknij", watering = "Podlewanie @ %d,%d", staff = "%s - %s", } information = { cheat_not_possible = "Nie można używać oszustwa na tym poziomie. Nie potrafisz nawet oszukiwać, niezbyt to śmieszne co?", very_old_save = "Zaszło sporo zmian w grze od czasu, gdy rozpoczęty został ten poziom. Aby mieć pewność, że wszystko działa jak należy, zaleca się rozpoczęcie poziomu od nowa.", no_custom_game_in_demo = "Przepraszamy ale w wersji demonstracyjnej nie można grać na niestandardowych mapach.", cannot_restart = "Niestety ta dodatkowa mapa była zapisana zanim wprowadzona została możliwość ponownego rozpoczynania gry.", custom_game = "Witaj w CorsixTH. Życzymy dużo zabawy z dodatkowymi mapami!", level_lost = { [1] = "Pech! Nie udało Ci się ukończyć poziomu. Powodzenia następnym razem!", [2] = "Powód dla którego przegrałeś:", reputation = "Twoja reputacja spadła poniżej %d.", balance = "Twój stan konta był mniejszy niż %d.", percentage_killed = "Zabiłeś więcej niż %d procent pacientów.", cheat = "To był twój wybór czy wcisnąłeś zły przycisk? Więc nawet nie wiesz jak oszukiwać, nie jest ci teraz do śmiechu co?", }, } casebook = { sent_home = "odprawionych", deaths = "zgony", treatment_charge = "koszt leczenia", reputation = "reputacja", research = "skoncentruj badania", cure = "leczenie", cured = "wyleczonych", earned_money = "zarobiono", cure_desc = { hire_psychiatrists = "Musisz zatrudnić Psychiatrów.", improve_cure = "Ulepsz Leczenie.", hire_nurses = "Powinieneś zatrudnić Pielęgniarki.", build_ward = "Musisz jeszcze zbudować Oddział.", no_cure_known = "Nieznane Leczenie.", cure_known = "Leczenie.", build_room = "Zalecam, abyś zbudował %s", hire_doctors = "Musisz zatrudnić Lekarzy.", hire_surgeons = "Musisz zatrudnić Chirurgów.", }, } new_game_window = { caption = "Kampania", player_name = "Imię gracza", option_on = "Włączone", option_off = "Wyłączone", difficulty = "Poziom trudności", easy = "Asystent (�atwy)", medium = "Doktor (Średni)", hard = "Konsultan (Trudny)", tutorial = "Samouczek", start = "Rozpocznij", cancel = "Anuluj", } diseases = { diag_ward = { name = "Diag. Oddział", }, diag_ultrascan = { name = "Diag. Ultraskan", }, autopsy = { name = "Sekcja zwłok", }, third_degree_sideburns = { cause = "Przyczyna - tęsknota za latami 70-tymi.", cure = "Leczenie - używając najnowszych metod Psychiatra musi przekonać pacjenta, że brokat i buty na koturnach to obciach.", name = "Bokobrody", symptoms = "Objawy - fryzura afro, spodnie dzwony i brokatowy makijaż.", }, discrete_itching = { cause = "Przyczyna - małe insekty z ostrymi zębami.", cure = "Leczenie - Pacjent pije apteczny kleisty syrop zapobiegający swędzeniu.", name = "Intymny Świąd", symptoms = "Objawy - drapanie, prowadzące do częściowego zapalenia ciała.", }, the_squits = { cause = "Przyczyna - jedzenie pizzy znalezionej pod kuchenką.", cure = "Leczenie - kleista mieszanina włóknistych chemikaliów zespala wnętrzności pacjenta.", name = "Rozwolnienie", symptoms = "Objawy - fuj, pewnie się domyślasz.", }, spare_ribs = { cause = "Przyczyna - siadanie na zimnej podłodze.", cure = "Leczenie - to coś musi być usunięte przez dwóch Chirurgów i oddane pacjentowi w papierowej torbie.", name = "Żeberka", symptoms = "Objawy - nieprzyjemne uczucie w klatce piersiowej.", }, diag_blood_machine = { name = "Diag. Morfologia", }, king_complex = { cause = "Wywołane przez ducha Króla, przejmującego kontrolę nad umysłem pacjenta.", cure = "Leczenie - Psychiatra mówi pacjentowi jak idiotycznie wygląda.", name = "Kompleks Króla", symptoms = "Objawy - przywdziewanie kolorowego, zamszowego obuwia i jedzenie cheeseburgerów.", }, diag_x_ray = { name = "Diag. Rentgen", }, pregnancy = { cause = "Przyczyna - braki prądu w obszarach miejskich.", cure = "Leczenie - owoc obżarstwa jest usuwany operacyjnie, myty i pokazywany pacjentowi.", name = "Ciąża", symptoms = "Objawy - mięsień piwny jako następstwo objadania się.", }, fake_blood = { cause = "Przyczyna - osoba będąca zwykle ofiarą psikusów.", cure = "Leczenie - psychiatryczne uspokajanie jest jedynym rozwiązaniem tego problemu.", name = "Sztuczna Krwistość", symptoms = "Objawy - czerwony płyn w żyłach, który wyparowuje przy kontakcie z odzieżą.", }, diag_psych = { name = "Diag. Psychiatra", }, invisibility = { cause = "Przyczyna - ugryzienie przez radioaktywną (i niewidzialną) mrówkę.", cure = "Leczenie - kolorowy płyn wypity w Aptece szybko przywróci pacjenta do pełnej widzialności.", name = "Niewidzialność", symptoms = "Objawy - żaden dyskomfort dla pacjenta; wielu wręcz używa tej przypadłości, by robić kawały swym rodzinom.", }, golf_stones = { cause = "Przyczyna - wdychanie gazu z wnętrza piłek golfowych.", cure = "Leczenie - objawy usuwane operacyjnie przez dwóch Chirurgów.", name = "Kamienie Golfowe", symptoms = "Objawy - delirium i wielki wstyd.", }, diag_general_diag = { name = "Podst. Badania", }, infectious_laughter = { cause = "Przyczyna - typowy serial komediowy.", cure = "Leczenie - Psychiatra uświadamia pacjentowi, że w tej dolegliwości nie ma nic zabawnego.", name = "Zaraźliwy Śmiech", symptoms = "Objawy - ciągły chichot i powtarzanie nieśmiesznych dowcipów.", }, general_practice = { name = "Wizyta u Lekarza", }, baldness = { cause = "Przyczyna - mówienie kłamstw i niestworzonych historii, aby być popularnym.", cure = "Leczenie - włosy są gładko nakładane na głowę pacjenta przy użyciu bolesnej maszynerii.", name = "�ysienie", symptoms = "Objawy - lśniąca glaca i zakłopotanie.", }, heaped_piles = { cause = "Przyczyna - przebywanie w pobliżu automatów z zimnymi napojami.", cure = "Leczenie - smaczny, choć mocno kwaśny napój rozpuszcza hemoroidy od wewnątrz.", name = "Hemoroidy", symptoms = "Objawy - Pacjent czuje się jakby siedział na torbie z kulkami.", }, unexpected_swelling = { cause = "Przyczyna - coś niespodziewanego.", cure = "Leczenie - opuchlizna może być zmniejszona tylko przez chirurgiczne nacięcie.", name = "Nagłe Wzdęcia", symptoms = "Objawy - opuchlizna.", }, jellyitis = { cause = "Przyczyna - dieta bogata w żelatynę i nadmiar ćwiczeń.", cure = "Leczenie - Pacjent jest zanurzany na chwilę w Galaretownicy.", name = "Galaretowatość", symptoms = "Objawy - drżenie i częste upadki.", }, hairyitis = { cause = "Przyczyna - nadmiar naświetlenia księżycowego.", cure = "Leczenie - maszyna do elektrolizy usuwa włosy i uszczelnia pory.", name = "Włochacizna", symptoms = "Objawy - poszkodowani posiadają wyostrzony zmysł węchu.", }, alien_dna = { cause = "Przyczyna - twarzołapy z inteligentną krwią obcych.", cure = "Leczenie - DNA jest mechanicznie usuwane, czyszczone z obcych elementów i szybko wymieniane.", name = "DNA Obcego", symptoms = "Objawy - stopniowa metamorfoza w obcego i chęć niszczenia miasta.", }, bloaty_head = { cause = "Przyczyna - wąchanie sera i picie nieoczyszczonej deszczówki.", cure = "Leczenie - opuchnięta głowa jest przebijana, następnie nadmuchiwana do odpowiedniej wielkości.", name = "Głowowzdęcie", symptoms = "Objawy - bardzo przykre dla ofiary.", }, gastric_ejections = { cause = "Przyczyna - pikantne meksykańskie lub hinduskie jedzenie.", cure = "Leczenie - wypicie specjalnego roztworu zapobiega wypuszczaniu czegokolwiek.", name = "U-Pierdliwość", symptoms = "Objawy - wpół strawione jedzenie uchodzi z pacjenta w małych ilościach.", }, uncommon_cold = { cause = "Przyczyna - małe cząsteczki smarków w powietrzu.", cure = "Leczenie - duży łyk niezwykłej medycznej mikstury ze specjalnych składników zrobionych w Aptece.", name = "Nietypowa Grypa", symptoms = "Objawy - zasmarkany nos, kichanie i przebarwione płuca.", }, corrugated_ankles = { cause = "Przyczyna - rozjeżdżanie autem znaków ostrzegawczych.", cure = "Leczenie - lekko toksyczna mieszanka ziół i przypraw pita w celu naprostowania kostek.", name = "Sfałdowane Kostki", symptoms = "Objawy - problemy z wkładaniem butów.", }, sleeping_illness = { cause = "Przyczyna - nadaktywny gruczoł snu w podniebieniu.", cure = "Leczenie - stężona dawka silnego stymulanta podawana przez Pielęgniarkę.", name = "Narkolepsja", symptoms = "Objawy - przeszywająca chęć spania gdzie popadnie.", }, sweaty_palms = { cause = "Przyczyna - strach przed rozmowami kwalifikacyjnymi.", cure = "Leczenie - Psychiatra musi wybić pacjentowi z głowy tę urojoną chorobę.", name = "Spocone Dłonie", symptoms = "Objawy - uścisk dłoni pacjenta to jak ściskanie nasiąkniętej gąbki.", }, serious_radiation = { cause = "Przyczyna - pomylenie izotopów plutonu z gumą do żucia.", cure = "Leczenie - Pacjent musi być umieszczony w Prysznicu Odkażającym i porządnie umyty.", name = "Napromieniowanie", symptoms = "Objawy - pacjenci z tą przypadłością czują się bardzo, bardzo źle.", }, diag_cardiogram = { name = "Diag. Kardiograf", }, diag_scanner = { name = "Diag. Skaner", }, gut_rot = { cause = "Przyczyna - picie domowej roboty syropów na kaszel.", cure = "Leczenie - specjalna mikstura na odbudowanie warstwy ochronnej brzuszka.", name = "Gnijące Jelita", symptoms = "Objawy - brak kaszlu - oraz brak żołądka.", }, iron_lungs = { cause = "Przyczyna - smog miejski zmieszany z pozostałościami kebabu.", cure = "Leczenie - dwaj Chirurdzy usuwają dużą bryłę z płuc pacjenta.", name = "Żelazne Płuca", symptoms = "Objawy - umiejętnosć ziania ogniem i krzyczenia pod wodą.", }, broken_wind = { cause = "Przyczyna - korzystanie z bieżni gimnastycznej po posiłku.", cure = "Leczenie - sążnista wodna mikstura wypijana szybko w Aptece.", name = "Trujące Wiatry", symptoms = "Objawy - pacjent niepokoi ludzi znajdujących się tuż za nim.", }, kidney_beans = { cause = "Przyczyna - miażdżenie kostek lodu w drinkach.", cure = "Leczenie - dwóch Chirurgów usuwa kamienie bez naruszania nerek.", name = "Kamionka Nerkowa", symptoms = "Objawy - ból i częste wizyty w toalecie.", }, transparency = { cause = "Przyczyna - oblizywanie sreberka z jogurtu po otwarciu pojemniczka.", cure = "Leczenie - specjalnie barwiona i chłodzona woda apteczna leczy tę chorobę.", name = "Przezroczystość", symptoms = "Objawy - ciało staje się obrzydliwie przezroczyste.", }, broken_heart = { cause = "Przyczyna - ktoś bogatszy, młodszy i szczuplejszy od pacjenta.", cure = "Leczenie - Chirurdzy otwierają klatkę piersiową i, wstrzymując oddech, zszywają serce.", name = "Złamane serce", symptoms = "Objawy - płacz i ból mięśni spowodowane godzinami darcia zdjęć z wakacji.", }, slack_tongue = { cause = "Przyczyna - nałogowe dyskusje o telenowelach.", cure = "Leczenie - język umieszczany jest w Krajalnicy i usuwany szybko, skutecznie i boleśnie.", name = "Obwisły Język", symptoms = "Objawy - pięciokrotnie powiększony, obwisły język.", }, tv_personalities = { cause = "Przyczyna - telewizja śniadaniowa.", cure = "Leczenie - doświadczony Psychiatra musi przekonać pacjenta do sprzedaży TV i zakupu radia.", name = "Osobowość Medialna", symptoms = "Objawy - złudzenie, że można poprowadzić program o gotowaniu.", }, ruptured_nodules = { cause = "Przyczyna - skoki na bungie podczas mrozu.", cure = "Leczenie - dwóch wykwalifikowanych Chirurgów usuwa bąble swymi opanowanymi dłońmi.", name = "Przepuklina", symptoms = "Objawy - niemożność komfortowego siedzenia.", }, fractured_bones = { cause = "Przyczyna - spadanie z dużych wysokości na beton.", cure = "Leczenie - gips jest zakładany, po czym zdejmowany przez maszynę sterowaną laserowo.", name = "Połamane Kości", symptoms = "Objawy - głośne pęknięcie i niemożność używania chorych kończyn.", }, chronic_nosehair = { cause = "Przyczyna - Wtykanie nosa w nie swoje sprawy.", cure = "Leczenie - obrzydliwy, usuwający włosy napój, zażywany doustnie, robiony przez Pielęgniarkę w Aptece.", name = "Włosy w Nosie", symptoms = "Objawy - włosów w nosie starczyłoby na gniazdo dla borsuka.", }, } policy = { header = "STRATEGIA SZPITALA", diag_termination = "zatrzymanie diagnozowania", sliders = { guess = "POSTAW DIAGNOZĘ", send_home = "WYPISZ DO DOMU", stop = "ZATRZYMAJ", staff_room = "IDŹ ODPOCZĄĆ", }, diag_procedure = "procedura diagnozowania", staff_rest = "wyślij personel na odpoczynek", staff_leave_rooms = "personel opuszcza gabinet", } competitor_names = { [1] = "ORAC", [2] = "COLOSSUS", [3] = "HAL", [4] = "MULTIVAC", [5] = "HOLLY", [6] = "DEEP THOUGHT", [7] = "ZEN", [8] = "LEON", [9] = "MARVIN", [10] = "AKIRA", [11] = "MOTHER", [12] = "JAYNE", [13] = "CORSIX", [14] = "ROUJIN", [15] = "EDVIN", [16] = "EMIL", [17] = "CHARLIE", [18] = "ARTUR", [19] = "MAGNUS", [20] = "SAL", [21] = "JOSHUA", [22] = "DANEEL", [23] = "OLIVAW", [24] = "NIC", } options_window = { caption = "Opcje", option_on = "Włączone", option_off = "Wyłączone", fullscreen = "Pełny ekran", resolution = "Rozdzielczość", custom_resolution = "Niestandardowa...", browse = "Przeglądaj...", width = "Szerokość", height = "Wysokość", new_th_directory = "Tutaj możesz określić nowy katalog z zainstalowaną grą Theme Hospital. Jak tylko dokonasz wyboru gra będzie uruchomiona ponownie.", apply = "Zatwierdź", cancel = "Anuluj", data_location = "Lokalizacja danych", font_location = "Lokalizacja czcionki", language = "Język gry", cancel = "Anuluj", back = "Wróć", customise = "Modyfikuj", folder = "Foldery", } audio_window = { audio = "Dźwięk", back = "Wróć", } folders_window = { caption = "Ścieżki folderów", data_label = "Dane TH", font_label = "Czcionka", music_label = "MP3", savegames_label = "Zapisane stany gry", screenshots_label = "Zrzuty ekranu", new_th_location = "Tutaj możesz na nowo wybrać folder, w którym zainstalowana jest gra Theme Hospital. Po wybraniu folderu gra zostanie uruchomiona ponownie.", savegames_location = "Wybierz folder, w którym chcesz zapisywać stany gry", music_location = "Wybierz folder z muzyką, której chcesz użyć", screenshots_location = "Wybierz folder, w którym chcesz zapisywać zrzuty ekranu", back = "Wstecz", } tooltip.folders_window = { browse = "Przeglądaj foldery", data_location = "Folder z orginalną grą Theme Hospital, wymagany do uruchomienia CorsixTH", font_location = "Ścieżka do pliku czcionki będącej w stanie wyświetlić znaki Unicode wymagane przez twój język. Bez podania czcionki nie będzie możliwe wybrania języka, który używa znaki niewspierane przez orginalną grę. Przykład: Rosujski, Chinski, Polski.", savegames_location = "Domyślnie folder 'Saves', w którym umieszczane są stany gry, leży obok pliku konfiguracyjnego. Jeśli to Ci nie odpowiada możesz wybrać swój własny folder.", screenshots_location = "Domyślnie folder 'Screenshots', w którym umieszczane są zrzuty ekranu, leży obok pliku konfiguracyjnego. Jeśli to Ci nie odpowiada możesz wybrać swój własny folder.", music_location = "Wybierz folder z plikami MP3. Folder musi już być stworzony.", browse_data = "Wskaż inną ścieżkę instalacji Theme Hospital (aktualnie: %1%)", browse_font = "Wskaż inny plik czcionki ( aktualnie: %1% )", browse_saves = "Wskaż inną ścieżkę folderu ze stanami gry ( aktualnie: %1% ) ", browse_screenshots = "Wskaż inną ścieżkę folderu ze zrzutami ekranu ( aktualnie: %1% ) ", browse_music = "Wskaż inną ścieżkę folderu z twoją muzyką ( aktualnie: %1% ) ", no_font_specified = "Nie podano jeszcze pliku czcionki!", not_specified = "Nie podano jeszcze ścieżki folderu!", default = "Domyślna ścieżka", reset_to_default = "Przywróć domyślną ścieżkę dla folderu ( %1% )", back = "Zamknij to menu i wróć do ustawień", } customise_window = { caption = "Własne ustawienia", option_on = "Wł", option_off = "Wył", back = "Wróć", movies = "Zarządzanie filmami", intro = "Odtwórz intro", paused = "Budoowanie w czasie pauzy", volume = "Skrót ściszania", aliens = "Pacjenci Obcy", fractured_bones = "Pogruchotane kości", average_contents = "Standardowe wyposarzenie", } tooltip.customise_window = { movies = "Globalne zarządzanie filmami pozwoli Tobie na wyłączenie wszystkich filmików", intro = "Włącz lub wyłącz intro. Filmiki muszą być globalnie włączone jeśli chcesz oglądać intro przy każdym uruchomieniu CorsixTH", paused = "W grze Theme Hospital gracz mógł jedynie używać górnego menu podczas pauzy. Jest to również domyślne ustawianie CorsixTH, ale przez włączenie tej opcji wszystko jest dozwolone podczas pauzy", volume = "Jeśli przycisk ściszania otwiera również 'Teczkę z lekami' , włącz tę opcję aby zmienić skrót do 'Teczki...' na Shift + C", aliens = "Z powodu braku dobrych animacji dokonaliśmy zmian aby pacjęci z DNA Obcego domyślnie przybywali tylko z nagłych wypadków. Jeśli chcesz aby pacjensi z DNA Obcego mogli odwiedzać twój szpital nie tylko po nagłym wypadku wyłącz tę opcję", fractured_bones = "Z powodu kiepskich animacji domyślnie wyłączyliśmy damskie modele pacjętów ze Zgruchotanymi Koścmi. Aby zezwolić, żeby pacjentki ze Zgruchotanymi koścmi odwiedzały twój szpital, wyłącz tę opcję", average_contents = "Jeśli chcesz, żeby gra zapamiętała jakie dodatkowe wyposarzenie używasz zazwyczaj budując dany typ pomieszczenia, włącz tę opcję", back = "Zamknij to menu i wróć do ustawień", } buy_objects_window = { price = "Cena: ", choose_items = "Wybierz Przedmioty", total = "Suma: ", } trophy_room = { wait_times = { award = { [1] = "Gratulacje. Kolejki w twoim szpitalu są zawsze wyjątkowo krótkie. To bardzo ważne wyróżnienie.", }, penalty = { [1] = "Ludzie w twoim szpitalu muszą zbyt długo czekać. Kolejki są za długie. Gdybyś tylko chciał, mógłbyś bardziej efektywnie obsługiwać pacjentów.", }, }, happy_vips = { trophies = { [1] = "Agencja Znani&Bogaci chciałaby cię nagrodzić Trofeum Sławy za uszczęśliwienie każdego VIPa, jaki odwiedził twój szpital. Możesz uznać się za dość sławnego i prawie jednego z nas.", [2] = "Agencja Znani&Bogaci chciałaby cię nagrodzić Trofeum Sławy za uszczęśliwienie każdego VIPa, jaki odwiedził twój szpital. Możesz uznać się za dość sławnego i prawie jednego z nas.", [3] = "Gratulacje z okazji nagrody JAZDA VIPa, za pokazanie odwiedzającym jaką to ciężko pracującą placówką jest twój szpital. Wyśmienicie.", }, awards = { [1] = "Zdobyłeś Nagrodę Nobla za zaimponowanie VIPom. Wszyscy odwiedzający twój szpital w ostatnim roku byli z niego bardzo zadowoleni.", [2] = "Gratulacje z okazji nagrody JAZDA VIPa, za pokazanie odwiedzającym jaką to ciężko pracującą placówką jest twój szpital. Wyśmienicie.", }, }, hosp_value = { penalty = { [1] = "Twój szpital nie osiągnął przyzwoitej wartości. Podejmujesz decyzje błędne pod względem finansowym. Pamiętaj, dobry szpital to także drogi szpital.", }, awards = { [1] = "Ministerstwo Zdrowia chciałoby ci pogratulować imponującej wartości, jaką osiągnął twój szpital.", }, regional = { [1] = "Jesteś geniuszem finansów. Twój szpital jest wart więcej niż wszystkie inne razem wzięte.", }, }, rats_accuracy = { trophies = { [1] = "Otrzymałeś Trofeum Najcelniejszego Strzelca im. gry Syndicate Wars za %d%% precyzję w strzelaniu do szczurów.", [2] = "Tym trofeum pragniemy uczcić niezwykłą precyzję z jaką wymordowałeś %d%% szczurów, strzelając do nich w zeszłym roku.", [3] = "Aby upamiętnić wybicie %d%% wszystkich szczurów w twoim szpitalu, przyznano ci Trofeum Lochy Bez Gryzoni im. Dungeon Keepera. Gratulacje!", }, awards = { }, }, all_cured = { awards = { [1] = "Gratulacje z okazji zdobycia nagrody im. Marii Curie, za udane wyleczenie wszystkich pacjentów w ostatnim roku.", }, trophies = { [1] = "Międzynarodowa Fundacja Zdrowia, za fakt wyleczenia wszystkich pacjentów twojego szpitala w ostatnim roku, honoruje cię Trofeum Wyleczę Wszystko.", [2] = "Zostałeś obdarowany Trofeum Nie-Chorobom, za wyleczenie wszystkich pacjentów szpitala w zeszłym roku.", }, }, best_value_hosp = { trophies = { [1] = "Gratulacje z okazji otrzymania Trofeum, za szpital z najlepszą reputacją w ciągu ostatniego roku. Cóż, zasłużyłeś na to.", }, penalty = { [1] = "Każdy szpital w okolicy jest wart więcej niż twój. Zrób coś z tym, bo jest to żenujące. Dokup jakieś droższe urządzenia!", }, regional = { [1] = "Gratulacje, twój szpital jest najbardziej wartościowy w całej grze. Dobra robota i oby tak dalej.", }, }, high_rep = { trophies = { [1] = "Gratulacje z okazji otrzymania Trofeum, za szpital z najlepszą reputacją w ciągu ostatniego roku. Cóż, zasłużyłeś na to.", }, penalty = { [1] = "Zostajesz ukarany za utrzymywanie bardzo niskiej reputacji w przeciągu ostatniego roku. Postaraj się, by w przyszłości było lepiej.", [2] = "Reputacja twojego szpitala jest najgorsza w okolicy. To hańba. Jak tak dalej pójdzie, możesz szukać nowej pracy.", }, awards = { [1] = "Niniejszym zostajesz nominowany do Nagrody Rządowej, za nieskazitelne standardy i najwyższą możliwą reputację w tym roku. Pięknie.", [2] = "Przyjmij, proszę, Nagrodę Bullfroga, za najwyższą reputację wśród szpitali w ciągu ostatniego roku. Masz powody do zadowolenia, zapracowałeś na to.", [3] = "Dobra robota. Zdobywasz niewielką nagrodę za osiągniecie całkiem niezłej reputacji w ostatnim roku.", [4] = "Cudownie! Twój szpital wygrywa nagrodę za osiągniecie najlepszej reputacji w zeszłym roku.", [5] = "W tym roku reputacja twojego szpitala przekroczyła reputację wszystkich szpitali razem wziętych. Znaczące osiągnięcie.", }, regional = { [1] = "Przyjmij, proszę, Nagrodę Bullfroga, za najwyższą reputację wśród szpitali w ciągu ostatniego roku. Masz powody do zadowolenia, zapracowałeś na to.", [2] = "W tym roku reputacja twojego szpitala przekroczyła reputację wszystkich szpitali razem wziętych. Znaczące osiągnięcie.", }, }, consistant_rep = { trophies = { [1] = "Niniejszym zostajesz nominowany do Nagrody Rządowej, za nieskazitelne standardy i najwyższą możliwą reputację w tym roku. Pięknie.", [2] = "Gratulacje z okazji otrzymania Trofeum, za szpital z najlepszą reputacją w ciągu ostatniego roku. Cóż, zasłużyłeś na to.", }, }, curesvdeaths = { awards = { [1] = "Szczere gratulacje za osiągnięcie imponującej proporcji wyleczeń-zgonów w twoim szpitalu w zeszłym roku.", }, penalty = { [1] = "Twój współczynnik wyleczeń w stosunku do zgonów jest bardzo mały. Powinieneś się upewnić, że leczysz więcej ludzi niż zabijasz. Nie zawiedź nas.", }, }, cleanliness = { regional_good = { [1] = "Twój szpital jest znany jako jeden z najmniej czystych w okolicy. Brudny szpital jest śmierdzący i niebezpieczny. Powinieneś zwracać większą uwagę na bałagan.", }, award = { [1] = "Inspekcja odnotowała, że twój szpital jest bardzo czysty. Czysty szpital to bezpieczny szpital. Tak trzymać.", }, regional_bad = { [1] = "Twój szpital jest najbrudniejszy w okolicy. Inni administratorzy zdołali utrzymać korytarze w czystości. Przynosisz wstyd środowisku medycznemu.", }, }, happy_patients = { awards = { [1] = "Możesz być zadowolony z faktu, że ludzie w twoim szpitalu byli bardzo zadowoleni podczas ostatniego roku.", [2] = "Ludzie odwiedzający twój szpital byli bardziej zadowoleni z kuracji niż gdziekolwiek indziej.", }, penalty = { [1] = "Ludzie uważają wizyty w twoim szpitalu za niemiłe doświadczenie. Musisz coś z tym zrobić, jeżeli chcesz zdobyć poważanie Ministerstwa.", [2] = "Ludzie leczący się w twoim szpitalu byli bardzo niezadowoleni ze stanu tego miejsca. Pamiętaj, najważniejsze jest dobro pacjenta.", }, }, emergencies = { regional_good = { [1] = "Ministerstwo zauważyło, że twój szpital radził sobie lepiej z nagłymi wypadkami niż inne szpitale w zeszłym roku i przyznało ci nagrodę.", }, penalty = { [1] = "Nie radzisz sobie z nagłymi wypadkami. Pacjenci z nagłych wypadków potrzebują natychmiastowej i właściwej opieki, której ty nie zapewniasz.", }, regional_bad = { [1] = "Twój szpital najgorzej w regionie w radzi sobie z nagłymi wypadkami. To twoja wina, że wylądowałeś na szarym końcu lokalnej opieki zdrowotnej.", }, award = { [1] = "Gratulacje: skuteczne leczenie nagłych wypadków pozwoliło nam przyznać ci to specjalne wyróżnienie. Dobra robota. ", [2] = "Twoja zaradność w nagłych wypadkach jest wyjątkowa. Ta nagroda jest dla najlepszych za radzenie sobie z dużym napływem chorych i cierpiących.", }, }, gen_repairs = { awards = { [1] = "Zostałeś nominowany do specjalnej nagrody za błyskotliwość twoich Dozorców w naprawianiu sprzętu szpitalnego. Dobra robota. Weź urlop.", [2] = "Twoi Dozorcy są lepsi niż w innych szpitalach. To znaczące osiągnięcie, za które ci gratulujemy.", [3] = "Twój sprzęt jest w świetnym stanie. Poświęcenie twoich Dozorców jest niezwykłe. Wszyscy zasługujecie na tę prestiżową nagrodę. Świetna robota.", }, penalty = { [1] = "Dozorcy nie dbają za bardzo o twoje urządzenia. Powinieneś ich lepiej nadzorować lub zatrudnić nowych, aby poradzić sobie z natłokiem pracy.", [2] = "Masz bałagan w konserwacji urządzeń. Twoi pracownicy powinni szybko i starannie opiekować się wyposażeniem.", }, }, no_deaths = { trophies = { [1] = "Towarzystwo Życie Płynie Dalej przyznało ci to trofeum za absolutny brak zgonów w zeszłym roku.", [2] = "Zostałeś nominowany do Trofeum Pozostań Żywy za uniknięcie jakichkolwiek zgonów w twoim świetnym szpitalu w tym roku. Super.", [3] = "Zostałeś nominowany do Trofeum Pozostań Żywy za uniknięcie jakichkolwiek zgonów w twoim świetnym szpitalu w tym roku. Super.", }, penalty = { [1] = "Liczba zgonów w twoim szpitalu przez ostatni rok jest nie do przyjęcia. Zwróć większą uwagę na to, co robisz. Spraw, aby w przyszłości wyleczyć więcej osób.", [2] = "Twój szpital niesie ryzyko dla zdrowia pacjentów. Oczekujemy od ciebie leczenia ludzi a nie ich zabijania.", }, awards = { [1] = "Zdobyłeś Nagrodę Nie-Odwal-Kity za utrzymanie przy życiu 100 procent pacjentów w ostatnim roku.", [2] = "Otrzymujesz tę nagrodę, aby uczcić niską liczbę zgonów w twoim szpitalu w tym roku. Świetna robota.", [3] = "Śmiertelność w twoim szpitalu w ubiegłym roku była niższa niż w innych szpitalach. Proszę, przyjmij tę nagrodę.", [4] = "Dzięki twojemu talentowi poziom zgonów nie przekroczył minimum. Możesz być z siebie dumny.", }, regional = { [1] = "Śmiertelność w twoim szpitalu w ubiegłym roku była niższa niż w innych szpitalach. Proszę, przyjmij tę nagrodę.", }, }, rats_killed = { trophies = { [1] = "Przyznano ci Trofeum Anty-Szkodnik za zeszłoroczny odstrzał %d szczurów w twoim szpitalu.", [2] = "Zakwalifikowano cię do trofeum z Federacji Przeciw Szczurom i Myszom, dzięki twym wyjątkowym umiejętnościom w wystrzeleniu %d tych stworzeń.", [3] = "Zakwalifikowałeś się do otrzymania Trofeum Wysadzić-Szczura za niebywałą umiejętność likwidacji %d szczurów w szpitalu w zeszłym roku.", }, awards = { }, }, happy_staff = { trophies = { [1] = "Zostałeś nagrodzony Radosnym Trofeum za utrzymanie szczęśliwym ciężko pracującego personelu.", [2] = "Instytut Szczęścia nagrodził cię, za brak niezadowolonego personelu w twoim szpitalu w ciągu ostatniego roku.", [3] = "To trofeum, Więcej Radości jest niniejszym wręczone tobie, za utrzymanie zadowolonego personelu podczas ostatniego roku. Uśmiechajcie się wszyscy!", }, awards = { [1] = "Twoi pracownicy fundują ci tę nagrodę. Mówią, że można wprowadzić jeszcze kilka usprawnień, ale ogólnie jest dobrze.", [2] = "Twój pracownicy są tak zadowoleni, że uśmiech nie schodzi im z ust. Jesteś wyśmienitym menadżerem.", }, penalty = { [1] = "Twój personel nie kryje faktu, że jest bardzo niezadowolony. Dobrzy pracownicy to skarb. Uszczęśliw ich albo dużo na tym stracisz.", }, regional_good = { [1] = "Twój personel jest szczęśliwszy niż w innych szpitalach. Zadowolona załoga oznacza większe profity i mniej zgonów.", }, regional_bad = { [1] = "Twoi pracownicy podczas ostatniego roku byli bardzo przygnębieni. Powinieneś był to zauważyć. Każdy inny szpital ma szczęśliwszych pracowników niż twój.", }, }, healthy_plants = { awards = { [1] = "Gratulacje z okazji wygrania nagrody Jak Na Drożdżach za utrzymywanie roślin w dobrym stanie przez ostatni rok.", }, trophies = { [1] = "Przyjaciele Roślin Doniczkowych fundują ci Zielone Trofeum Zdrowia za utrzymanie roślin w dobrym stanie przez ostatni rok.", [2] = "Od Słodkich Rosiczek otrzymujesz Trofeum Wielkiego Ogrodnika za utrzymanie szpitalnych roślin w rewelacyjnej kondycji przez ostatni rok.", }, }, sold_drinks = { trophies = { [1] = "Światowe Stowarzyszenie Dentystów ma zaszczyt przyznać ci trofeum i odznakę za wysoką sprzedaż napojów w puszkach w twoim szpitalu.", [2] = "Twój szpital otrzymał nagrodę Gazowanego Zeusa Handlu Detalicznego za sprzedaż dużej liczby napojów w ostatnim roku.", [3] = "W imieniu kompanii Plomba Bomba Inc, otrzymujesz to pokryte czekoladą trofeum, aby uczcić niezwykle wysoką tegoroczną sprzedaż napojów w twoim szpitalu.", }, awards = { }, }, many_cured = { trophies = { [1] = "Za wyleczenie ogromnej liczby ludzi w ciągu ostatniego roku, Międzynarodowa Fundacja Zdrowia chce uhonorować cię Trofeum WieloLecz.", [2] = "Za wyleczenie znacznego odsetka pacjentów odwiedzających twój szpital w ciągu ostatniego roku, przyznano ci Płukankowe Trofeum Nie Chorobom!", [3] = "Za wyleczenie znacznego odsetka pacjentów odwiedzających twój szpital w ciągu ostatniego roku, przyznano ci Płukankowe Trofeum Nie Chorobom!", }, penalty = { [1] = "Twój szpital zawodzi w skutecznym niesieniu pomocy potrzebującym. Skoncentruj się na większej wydajności w leczeniu ludzi.", [2] = "Twój szpital jest mniej efektywny w leczeniu niż jakikolwiek inny. Zawiodłeś Ministerstwo i zawiodłeś samego siebie. Nic więcej nie mamy do powiedzenia.", }, awards = { [1] = "Gratulacje! Zdobywasz Nagrodę Marii Curie za wyleczenie prawie wszystkich pacjentów twojego szpitala w ciągu ostatniego roku.", [2] = "Gratulacje za wyleczenie masy ludzi podczas ostatniego roku. Dużo pacjentów czuje się znacznie lepiej dzięki twojej pracy.", [3] = "Przyjmij tę nagrodę, za wyleczenie większej liczby pacjentów niż inne szpitale. Niebagatelny uczynek.", [4] = "Z zaszczytem wręczamy ci nagrodę za wyleczenie większej ilości pacjentów, niż wszystkie szpitale razem wzięte.", }, regional = { [1] = "Z zaszczytem wręczamy ci nagrodę za wyleczenie większej ilości pacjentów, niż wszystkie szpitale razem wzięte.", }, }, pop_percentage = { awards = { [1] = "Wiedz, że twój szpital w zeszłym roku odwiedziło bardzo dużo ludzi. Dobra robota.", [2] = "Gratulacje. Liczba miejscowej ludności odwiedzającej twój szpital w zeszłym roku była dużo wyższa niż gdzie indziej.", [3] = "Wspaniale. Zwabiłeś więcej populacji do swojego szpitala, niż było odwiedzających we wszystkich innych szpitalach razem.", }, penalty = { [1] = "Bardzo mało ludzi odwiedziło twój szpital w tym roku. Aby zarabiać pieniądze, ta instytucja potrzebuje pacjentów.", [2] = "Każdy szpital w tej okolicy zdołał przyjąć większą liczbę pacjentów, niż twój. Powinieneś się wstydzić.", }, }, research = { regional_good = { [1] = "Dzięki badaniom naukowym twój szpital przoduje w nowoczesności. Twój sztab naukowy zasłużył na tę nagrodę. Świetnie.", }, penalty = { [1] = "Nie radziłeś sobie z wynajdowaniem nowych kuracji, urządzeń i leków. To niedobrze, gdyż postęp technologiczny jest niezwykle ważny.", }, regional_bad = { [1] = "Jesteś najsłabszy w okolicy pod względem badań naukowych. Ministerstwo jest wściekłe, ponieważ powinno ci na tym szczególnie zależeć.", }, awards = { [1] = "Dzięki badaniom naukowym twój szpital przoduje w nowoczesności. Twój sztab naukowy zasłużył na tę nagrodę. Świetnie.", [2] = "Podczas ostatniego roku wynalazłeś więcej leków i sprzętu, niż ktokolwiek mógł przypuszczać. Proszę, przyjmij tę nagrodę od całego Ministerstwa.", }, }, reputation = "REPUTACJA", cash = "GOTÓWKA", } menu_list_window = { save_date = "Utworzony", name = "Nazwa", back = "Wróć", } menu_options_volume = { [50] = " 50% ", [100] = " 100% ", [30] = " 30% ", [60] = " 60% ", [90] = " 90% ", [10] = " 10% ", [20] = " 20% ", [40] = " 40% ", [80] = " 80% ", [70] = " 70% ", } menu_file_load = { [1] = " GRA 1 ", [2] = " GRA 2 ", [3] = " GRA 3 ", [4] = " GRA 4 ", [5] = " GRA 5 ", [6] = " GRA 6 ", [7] = " GRA 7 ", [8] = " GRA 8 ", } menu_file = { quit = " (%1%) WYJDŹ ", save = " (%1%) ZAPISZ ", load = " (%1%) WCZYTAJ ", restart = " (%1%) ZACZNIJ OD NOWA ", } rooms_long = { ultrascan = "Ultraskaner", research_room = "Dział Badawczy", general = "Ogólne", gps_office = "Gabinet Lekarski", inflation = "Napowietrzalnia", staffroom = "Pokój Socjalny", jelly_vat = "Galaretownica", scanner = "Skaner", emergency = "Nagły Wypadek", decontamination = "Gabinet Odkażania", corridors = "Korytarz", cardiogram = "Kardiograf", ward = "Oddział", training_room = "Sala Szkoleniowa", psychiatric = "Psychiatra", operating_theatre = "Sala Operacyjna", dna_fixer = "Re-GEN-erator", tongue_clinic = "Przych. Obrzynania", hair_restoration = "Przeszczepiacz Włosów", general_diag = "Podst. Badania", pharmacy = "Apteka", fracture_clinic = "Gab. Ortopedyczny", toilets = "Toalety", electrolysis = "Gabinet Elektrolizy", x_ray = "Rentgen", blood_machine = "Analizator Krwi", } save_game_window = { caption = "Zapisz Grę (%1%)", new_save_game = "Nowy Zapis", } fax = { epidemic_result = { fine_amount = "Rząd ogłosił stan zagrożenia i nałożył na ciebie grzywnę %d.", close_text = "Hura!", hospital_evacuated = "Komisja Zdrowia nie miała wyboru i postanowiła ewakuować twój szpital.", succeeded = { part_1_name = "Inspektor Zdrowia usłyszał plotki, że twoja instytucja miała do czynienie ze złą sytuacją z %s.", part_2 = "Jednakże nie dał rady znaleźć dowodów potwierdzających te plotki.", }, compensation_amount = "Rząd postanowił wypłacić ci odszkodowanie %d za oszczerstwa, które naruszyły dobre imię twojego szpitala.", failed = { part_1_name = "Usiłujesz ukryć fakt zetknięcia się z zaraźliwym wybuchem %s", part_2 = "Twój personel spowodował, że choroba przeszła na ludność żyjącą w pobliżu szpitala.", }, rep_loss_fine_amount = "Prasa będzie miała używanie w związku z tą sprawą, która poważnie zszarga twoją reputację. Poza tym dostaniesz grzywnę %d.", }, vip_visit_query = { choices = { invite = "Wyślij VIPowi Oficjalne Zaproszenie .", refuse = "Spróbuj zbyć VIPa jakąś wymówką.", }, vip_name = "%s wyraził chęć odwiedzenia twojego szpitala", }, vip_visit_result = { telegram = "Telegram!", remarks = { free_build = { [1] = "Masz tu bardzo ładny szpital! Nie trudno się go prowadzi bez ograniczeń finansowych czyż nie?", [2] = "Nie jestem ekonomistą ale wydaje mi się, że też mógłbym poprowadzić ten szpital, jeżeli wiesz o czym mówię...", [3] = "Bardzo dobrze prowadzony szpital. Pamiętaj jednak o recesji! Racja... nie musisz się o to martwić.", }, [1] = "Cóż za fantastyczny szpital. Jeśli poważnie zachoruję, przywieźcie mnie tutaj.", [2] = "To jest dopiero szpital!", [3] = "Super szpital. A wiem co mówię, bo już ich trochę widziałem.", [4] = "Doskonale zarządzany szpital. Dziękuję, że mnie tu zaprosiłeś.", [5] = "Hmm. Całkiem niezła placówka służby zdrowia.", [6] = "Podobał mi się twój czarujący szpital. No dobrze, idzie ktoś na tajskie curry?", [7] = "No cóż, widywałem gorsze, ale powinieneś się bardziej postarać.", [8] = "Ojej. Jeśli kiepsko się czujesz, to nie jest miejsce dla ciebie.", [9] = "Szczerze mówiąc, to zwyczajny szpital. Oczekiwałem czegoś więcej.", [10] = "Po co sobie zawracałem głowę? To było gorsze, niż oglądanie czterogodzinnej opery!", [11] = "Odrażający widok. To ma być szpital?! Chyba raczej chlew!", [12] = "Jako osoba publiczna mam już dosyć odwiedzania takich nor jak ta! Rezygnuję.", [13] = "Co za melina. Zrobię co w mojej mocy, żeby ją zamknęli.", [14] = "Skandal! W życiu nie widziałem tak koszmarnego szpitala. ", [15] = "Jestem w szoku. Tego nie da się nazwać szpitalem! Idę na piwo.", }, rep_boost = "Twoja reputacja w środowisku umocniła się.", vip_remarked_name = "Po wizycie w twoim szpitalu %s zdecydował:", cash_grant = "Otrzymasz dotację w wysokości %d.", rep_loss = "Dlatego też twoja reputacja ucierpiała.", close_text = "Dziękuję za odwiedzenie szpitala.", }, disease_discovered_patient_choice = { need_to_build = "Musisz zbudować %s, aby sobie z tym poradzić.", need_to_employ = "Zatrudnij %s żeby poradzić sobie z tą sytuacją.", what_to_do_question = "Co chcesz zrobić z pacjentem?", guessed_percentage_name = "Twoja ekipa musiała domyślać się przypadłości pacjenta. Jest %d procent szans, że to jest %s", choices = { send_home = "Wypisz Pacjenta do domu.", research = "Wyślij pacjenta do Działu Badawczego.", wait = "Każ Pacjentowi zaczekać chwilę w szpitalu.", }, disease_name = "Twoja ekipa odkryła nową dolegliwość: %s", need_to_build_and_employ = "Jeżeli zbudujesz %s i zatrudnisz %s możesz osiągnąć cel.", can_not_cure = "Nie możesz wyleczyć tej choroby.", }, emergency_result = { earned_money = "Mogłeś otrzymać maksymalnie %d, zarobiłeś %d.", close_text = "Kliknij, aby wyjść.", saved_people = "Uratowałeś %d ludzi z %d poszkodowanych.", }, disease_discovered = { discovered_name = "Twoja ekipa odkryła nową dolegliwość: %s", need_to_employ = "Zatrudnij %s, aby poradzić sobie z tym kryzysem.", need_to_build_and_employ = "Jeżeli zbudujesz %s i zatrudnisz %s możesz osiągnąć cel.", need_to_build = "Musisz zbudować %s, aby sobie z tym poradzić.", close_text = "Dokonano odkrycia.", can_cure = "Możesz wyleczyć tę chorobę.", }, emergency = { locations = { [1] = "Palmiarni Rośliny Chemiczne Rosiczka", [2] = "Lipnym Uniwersytecie", [3] = "Centrum Ogrodniczym Parakwiat", [4] = "Instytucie Naukowym Niebezpieczne Substancje", [5] = "Zajeździe Od Zmierzchu do Świtu", [6] = "Knajpie pod Żabą i Bykiem", [7] = "Salonie Pogrzebowym i Sklepie Monopolowym Radość", [8] = "Tajskim Sklepie z Curry", [9] = "Imperium Używana Petrochemia", }, num_disease = "Jest %d ludzi z %s wymagających natychmiastowej pomocy.", cure_possible_drug_name_efficiency = "Już masz niezbędny sprzęt i umiejętności. Masz lek, którego potrzebują. To %s, a lek jest skuteczny w %d procentach.", cure_not_possible_employ = "Musisz zatrudnić %s", free_build = "Jeżeli ci się powiedzie, twoja reputacja wzrośnie, jeżeli jednak zawiedziesz, twoja reputacja poważnie ucierpi.", cure_not_possible = "W tej chwili nie możesz wyleczyć tej choroby.", num_disease_singular = "Jest 1 osoba z %s i wymaga natychmiastowej pomocy..", cure_possible = "Masz odpowiedni sprzęt i umiejętności, więc powinieneś poradzić sobie z tym nagłym wypadkiem.", choices = { accept = "Tak, jestem gotowy przyjąć nagły wypadek. ", refuse = "Nie, odmawiam przyjęcia nagłego wypadku.", }, location = "W %s miał miejsce wypadek", cure_not_possible_build = "Musisz zbudować %s", cure_not_possible_build_and_employ = "Musisz zbudować %s i zatrudnić %s", bonus = "Za przyjęcie tego wypadku dostaniesz maksymalną premię w wysokości %d. Jeżeli zawiedziesz, twoja reputacja poważnie ucierpi.", }, choices = { decline_new_level = "Kontynuuj grę jeszcze chwilę", accept_new_level = "Przejdź do następnego poziomu", return_to_main_menu = "Wróc do głównego menu", }, debug_fax = { text4 = "PARAMETRY : LEKARZE %d PIELĘGNIARKI %d OBSZAR %d POKOJE %d CENNIK %d", text5 = "WK�AD : LEKARZE %d PIELĘGNIARKI %d OBSZAR %d POKOJE %d CENNIK %d PROCENT", text3 = "LICZBY : LEKARZE %d PIELĘGNIARKI %d OBSZAR %d POKOJE %d CENNIK %d", text9 = "KATASTROFY %d DOZWOLONE (MIES) %d (%d)REDUKCJA %d", close_text = "Tak, tak, tak!", text1 = "NAJLEPSZY WYNIK %d", text6 = "NASTĘPUJĄCE PARAMETRY RÓWNIEŻ SĄ LICZONE", text8 = "U�ATWIENIA %d PORADY %d REDUKCJA %d", text2 = "SUMA LUDZI W SZPITALU %d PORÓWNUJĄC DO %d", text10 = "ZGONY %d DOZWOLONE (MIES) %d (%d) REDUKCJA %d", text11 = "LUDZI W TYM MIES %d", text7 = "REPUTACJA: %d OCZEKIWANA %d REDUKCJA %d", }, epidemic = { cover_up_explanation_1 = "Jeśli jednak spróbujesz to zataić, dostaniesz limit czasu na wyleczenie wszystkich pacjentów, nim o sprawie dowiedzą się władze.", cover_up_explanation_2 = "Jeżeli Inspektor Zdrowia przeprowadzi wizytację i odkryje epidemię, może powziąć zdecydowane kroki przeciwko tobie.", choices = { cover_up = "Wylecz wszystkich zainfekowanych pacjentów w wyznaczonym czasie, nim ktokolwiek opuści szpital.", declare = "Ogłoś Epidemię. Zapłać karę i przyjmij cios w reputację.", }, disease_name = "Twoi Lekarze odkryli zaraźliwy szczep wirusa: %s.", declare_explanation_fine = "Jeżeli ogłosisz epidemię, zapłacisz karę %d, ucierpi twoja reputacja i wszyscy pacjenci zostaną zaszczepieni automatycznie.", }, diagnosis_failed = { choices = { send_home = "Wypisz Pacjenta do domu.", take_chance = "Podejmij ryzyko leczenia.", wait = "Zatrzymaj pacjenta, aż wybudujesz więcej gabinetów diagnostycznych.", }, situation = "Próbowaliśmy wszystkich urządzeń na tym pacjencie i nadal nie jesteśmy pewni co mu dolega.", what_to_do_question = "Co powinniśmy zrobić z pacjentem?", partial_diagnosis_percentage_name = "Jest %d procent szans, że zidentyfikowaliśmy jaki typ %s dolega pacjentowi.", }, } drug_companies = { [1] = "U Goździkowej", [2] = "Proszki i Groszki", [3] = "Harda Pigułka i Spółka", [4] = "Ropiejący Czopek S.A.", [5] = "MegaProch Corp.", } humanoid_name_ends = { [1] = "SMITH", [2] = "WICK", [3] = "CLIFFE", [4] = "SON", [5] = "INGTON", [6] = "BURY", [7] = "TON", [8] = "SON", [9] = "LEY", [10] = "BERRY", [11] = "BAUM", [12] = "LAN", [13] = "HAM", [14] = "SILL", [15] = "WIN", [16] = "LET", [17] = "ERS", [18] = "TON", [19] = "MOND", [20] = "MAN", [21] = "ELTON", [22] = "E", [23] = "MORE", [24] = "MOOR", [25] = "LET", [26] = "LIN", } menu_debug_overlay = { heat = " TEMPERATURA ", byte_0_1 = " BYTE 0 & 1 ", byte_6 = " BYTE 6 ", flags = " FLAGS ", byte_7 = " BYTE 7 ", byte_5 = " BYTE 5 ", byte_floor = " BYTE FLOOR ", positions = " POSITIONS ", byte_w_wall = " BYTE W WALL ", parcel = " PARCEL ", byte_n_wall = " BYTE N WALL ", none = " NONE ", } confirmation = { abort_edit_room = "W chwili obecnej budujesz lub edytujesz gabinet. Jeżeli wszystkie wymagane obiekty są w nim umieszczone, będzie on ukończony, w przeciwnym razie zostanie on usunięty. Czy na pewno chcesz kontynuować?", return_to_blueprint = "Czy na pewno chcesz powrócić do trybu Projektowania?", restart_level = "Czy na pewno chcesz rozpocząć poziom od początku?", delete_room = "Czy na pewno chcesz usunąć ten gabinet?", quit = "Wybrałeś wyjście z gry. Czy na pewno chcesz zakończyć grę?", needs_restart = "Zmiana tego ustawienia wymaga ponownego uruchomienia CorsixTH. Wszystkie niezapisane postępy zostaną utracone. Czy na pewno chcesz kontynuować?", overwrite_save = "Masz tu już zapisaną grę. Czy na pewno chcesz ją nadpisać?", sack_staff = "Czy na pewno chcesz zwolnić tę osobę?", replace_machine = "Czy na pewno chcesz wymienić %s za %d PLN?", } months = { [1] = "sty", [2] = "lut", [3] = "mar", [4] = "kwi", [5] = "maj", [6] = "cze", [7] = "lip", [8] = "sie", [9] = "wrz", [10] = "paź", [11] = "lis", [12] = "gru", } dynamic_info = { patient = { emergency = "Nagły wypadek: %s", guessed_diagnosis = "Odgadnięta diagnoza: %s ", diagnosis_progress = "Postęp diagnozy", actions = { sent_to_other_hospital = "Odesłany gdzie indziej", prices_too_high = "Twoje ceny są za wysokie - idę do domu", no_gp_available = "Czekam, aż zbudujesz Gabinet Lekarski", waiting_for_treatment_rooms = "Czekam, aż zbudujesz gabinet, w którym mnie wyleczysz", dying = "Umiera!", no_diagnoses_available = "Brak możliwości dalszej diagnozy - idę do domu", epidemic_sent_home = "Odesłany do domu przez Inspektora", cured = "Wyleczony!", waiting_for_diagnosis_rooms = "Czekam, aż zbudujesz więcej gabinetów diagnostycznych", epidemic_contagious = "Jestem zakażony", awaiting_decision = "Czeka na twoją decyzję", sent_home = "Wypisany do domu", fed_up = "Ma dosyć i wychodzi", no_treatment_available = "Brak możliwości leczenia - idę do domu", on_my_way_to = "W drodze do %s", queueing_for = "W kolejce do %s", }, diagnosed = "Zdiagnozowano: %s ", }, health_inspector = "Inspektor Zdrowia", vip = "Wizytator - VIP", object = { times_used = "Liczba użyć %d", queue_size = "Długość kolejki %d", strength = "Wytrzymałość %d", queue_expected = "Spodziewana kolejka %d", }, staff = { ability = "Umiejętności", psychiatrist_abbrev = "Psych.", actions = { going_to_repair = "Idzie naprawić %s", fired = "Fired", waiting_for_patient = "Czeka na pacjenta", wandering = "Chodzi w kółko bez celu", heading_for = "Zmierza do %s", }, tiredness = "Zmęczenie", }, } introduction_texts = { level17 = "Ostatnia rada - dbaj o Reputację - to ona przyciąga lub zniechęca do twojej placówki pacjentów z całej okolicy. " .. "Jeśli tylko uda ci się nie zabić zbyt wielu ludzi i będą oni w miarę zadowoleni, nie powinieneś mieć problemów z tym poziomem!//" .. "Teraz już musisz radzić sobie sam. Życzę powodzenia.", level1 = "Witaj w swoim pierwszym szpitalu!//" .. "Aby rozpocząć działalność, postaw Biurko Recepcji, zbuduj Gabinet Lekarski i zatrudnij Recepcjonistkę oraz Lekarza. " .. "Następnie zaczekaj, aż pojawią się kolejne zadania. " .. "Dobrym pomysłem jest budowa Gabinetu Psychiatrycznego oraz zatrudnienie Lekarza Psychiatry. " .. "Apteka i Pielęgniarka są także niezbędne w leczeniu pacjentów. " .. "Zwróć uwagę na ciężkie przypadki Głowowzdęcia - Napowietrzalnia rozwiąże ten problem. " .. "Będziesz musiał wyleczyć 10 ludzi i upewnić się, że twoja reputacja nie spadnie poniżej 200.", level9 = "Skoro już wzbogaciłeś konto Ministerstwa oraz ufundowałeś nową limuzynę samemu Ministrowi, możesz wracać do szpitala i nieść pomoc chorym i potrzebującym. " .. "Tutaj napotkasz wiele różnych trudności. " .. "Z dobrze wyszkolonym personelem i gabinetami, nie powinieneś się niczego obawiać. " .. "Twój szpital musi być wart 200,000 PLN, a na konto ma trafić 400,000 PLN. " .. "Ani grosza mniej, bo nie ukończysz poziomu.", level2 = "Na tym obszarze jest dużo więcej rodzajów schorzeń. " .. "Urządź swój szpital tak, aby przyjął więcej pacjentów oraz zaplanuj budowę Działu Badawczego. " .. "Pamiętaj o utrzymywaniu czystości i postaraj się o możliwie najwyższą reputację - będziesz miał do czynienia z chorobami takimi jak Obwisły Język, więc potrzebujesz Przychodni Obrzynania. " .. "Możesz także zbudować Kardiograf, aby lepiej diagnozować nowe choroby. " .. "Oba te gabinety muszą zostać wynalezione zanim będziesz mógł je zbudować. Teraz możesz także kupić dodatkowy grunt, aby rozwinąć swój szpital - w tym celu użyj Mapy Miasta. " .. "Twój cel to reputacja na poziomie 300, stan konta 10000 PLN, i 40 wyleczonych osób.", level7 = "Będziesz tu pod ścisłym nadzorem Ministerstwa Zdrowia, dopilnuj więc by twoje konto wykazywało duże zyski, a reputacja szybowała w górę. " .. "Nie stać nas na niepotrzebne zgony - nie służy to biznesowi. " .. "Upewnij się, że personel jest w dobrej formie i że masz wszystkie wymagane urządzenia. " .. "Wypracuj reputację 600 oraz 200,000 PLN na koncie.", level5 = "To będzie szpital pełen życia, leczący wiele różnych dolegliwości. " .. "Twoi Lekarze dopiero skończyli studia, więc trzeba będzie wybudować salę szkoleniową, aby zdobyli niezbędne kwalifikacje. " .. "Masz tylko trzech Konsultantów szkolących twój personel. Dbaj więc o to, by byli zadowoleni. " .. "Zauważ także, że fundamenty szpitala znajdują się na uskoku tektonicznym San Android. " .. "Występuje tu duże ryzyko trzęsień ziemi. " .. "Trzęsienia mogą w znacznym stopniu uszkodzić urządzenia i zakłócić pracę szpitala. " .. "Aby odnieść sukces, dociągnij reputację do 400, zgromadź w banku okrągłe 50,000 PLN i wylecz 200 pacjentów.", level4 = "Staraj się zadowolić swych pacjentów, obłsuguj ich najlepiej jak potrafisz, utrzymaj również liczbę zgonów na absolutnym minimum." .. "Stawką jest twoja reputacja, więc dopilnuj żeby osiągnęła wysoki poziom. " .. "Nie martw się za bardzo o pieniądze - uzyskasz je wraz z rosnącą reputacją. " .. "Będziesz też mógł szkolić swoich Lekarzy, aby zwiększać ich umiejętności. " .. "Wyszkolony personel będzie lepiej zajmować się pacjentami, którzy wyglądają na ciężej chorych niż pozostali. " .. "Osiągnij reputację na poziomie ponad 500.", level14 = "Jest jeszcze jedno wyzwanie - totalnie niespodziewany szpital niespodzianka. " .. "Jeżeli tutaj odniesiesz sukces, będziesz zwycięzcą wszech czasów. " .. "Tylko nie myśl, że to będzie bułka z masłem, ponieważ jest to najtrudniejsze zadanie jakiemu stawisz czoła. " .. "Powodzenia!", level15 = "Tak wyglądają podstawowe mechanizmy działalności szpitala.//" .. "Twoi Lekarze będą potrzebować wszelkiej możliwej pomocy do diagnozowania niektórych pacjentów. Możesz im pomóc budując " .. "kolejne obiekty, takie jak Gabinet Badań Podstawowych.", level8 = "Do ciebie należy zadanie urządzenia wydajnego i opłacalnego szpitala. " .. "Ludzie tutaj są dość zamożni, więc oskub ich z forsy jak tylko się da. " .. "Miło jest leczyć ludzi, ale pamiętaj, że tak naprawdę liczą się PIENIĄDZE. " .. "Wyczyść tych chorych ludzi z pieniędzy. " .. "Aby ukończyć ten poziom, zgromadź sumę 300,000 PLN.", level13 = "Twoje niewiarygodne umiejętności w administrowaniu szpitala zwróciły uwagę Trzeciego Wydziału Tajnych Służb Specjalnych. " .. "Mają dla ciebie ekstra zadanie: w szpitalu zaatakowanym przez szczury potrzeba Terminatora. " .. "Musisz ustrzelić tyle szczurów, ile zdołasz, zanim Dozorcy uprzątną bałagan. " .. "Myślisz, że poradzisz sobie z zadaniem?", demo = "Witaj w szpitalu demonstracyjnym!//" .. "Niestety wersja demo zawiera tylko ten poziom. Jednakże, jest to więcej niż wystarczająco, aby zając ci trochę czasu! " .. "Napotkasz tutaj rozmaite choroby, które będą wymagały różnych gabinetów do ich wyleczenia. Od czasu do czasu moga tu również wystąpić nagłe wypadki. Będziesz musiał równiez wynaleźć nowe pomieszczenia przy użyciu gabinetu badawczego. " .. "Twoim celem jest zarobienie 100,000 PLN, mieć szpital warty 70,000 PLN i reputację 700, przy czym musisz wyleczyć co najmniej 75% swoich pacjentów. " .. "Upewnij się, że Twoja reputacja nie spadnie poniżej 300 oraz, że nie zabijesz więcej niż 40% pacjentów, albo przegrasz.//" .. "Powodzenia!", level16 = "Kiedy już przebadasz część pacjentów, będziesz musiał zbudować pomieszczenia lecznicze oraz przychodnie, aby ich leczyć - " .. "dobrze jest zacząć od budowy Apteki. Do wydawania leków w Aptece będzie potrzebna Pielęgniarka .", level6 = "Użyj całej swojej wiedzy, aby gładko poprowadzić szpital, który przyniesie dobry zysk i poradzi sobie ze wszystkim, co przyniesie mu chore społeczeństwo. " .. "Powinieneś uważać na panujący tu klimat, gdyż sprzyja on rozwojowi bakterii i infekcji. " .. "Jeśli nie utrzymasz tego miejsca we wzorowej czystości, musisz się liczyć z wybuchem epidemii wśród pacjentów. " .. "Powinieneś zarobić 150,000 PLN a twój szpital osiągnąć wartość co najmniej 140,000 PLN.", level12 = "Masz teraz do czynienia z matką wszystkich wyzwań. " .. "Zachwycone twoimi sukcesami Ministerstwo ma dla ciebie zadanie specjalne. Masz zbudować kolejny wspaniały szpital, zarobić bajeczną ilość kasy i zyskać gigantyczną reputację. " .. "Musisz także wykupić wszystkie możliwe grunty, wyleczyć wszystko (tak - wszystko) oraz zgarnąć wszystkie nagrody. " .. "I jak? Dasz radę?" .. "Zarób 650,000 PLN, wylecz 750 ludzi oraz osiągnij reputację 800, aby wygrać.", level3 = "Tym razem urządzisz swój szpital w zamożej okolicy. " .. "Ministerstwo Zdrowia ma nadzieję, że osiągniesz tu znaczne zyski. " .. "Musisz wypracować dobrą reputację, jednak gdy szpital będzie już działał, skoncentruj się na zarabianiu tak dużo, jak tylko możliwe. " .. "Prawdopodobnie wystąpią tu też Nagłe Wypadki. " .. "Mają miejsce, gdy do szpitala przybywa duża grupa ludzi z tą samą dolegliwością. " .. "Wyleczenie ich wszystkich przed upływem czasu podnosi twoją reputację i zapewnia premię. " .. "Mogą wystąpić choroby takie jak Syndrom Króla. Przeznacz więc pieniądze na budowę Sali Operacyjnej z Oddziałem tuż obok. " .. "Aby stanąć na wysokości zadania, zarób 20,000 PLN.", level10 = "Ministerstwo prosi, abyś poza leczeniem chorób typowych dla tych stron, poświęcił nieco czasu na poprawę skuteczności leków. " .. "Zrzeszenie Pacjentów Bolibrzuch zgłosiło kilka krytycznych uwag. Nie daj im powodów do skarg i dopilnuj, by leki były jak najskuteczniejsze. " .. "Nikt nie powinien też czynić zarzutów samemu szpitalowi. Zmniejsz poziom umieralności. " .. "Dobrze będzie, jeśli zarezerwujesz trochę miejsca na Galaretownicę. " .. "Aby wygrać, udoskonal wszystkie leki do 80% skuteczności, zdobądź reputację 650 i zbierz w banku 500,000 PLN. ", level11 = "Dostałeś szansę budowy szpitala najdoskonalszego ze wszystkich. " .. "W tej niezwykle renomowanej okolicy Ministerstwo chciałoby mieć szpital najlepszy z możliwych. " .. "Oczekujemy, że zarobisz mnóstwo pieniędzy, zyskasz znakomitą reputację i poradzisz sobie ze wszelkimi ewentualnościami. " .. "To jest bardzo ważna robota. " .. "Będziesz musiał naprawdę się czymś wyróżnić. " .. "Trzeba ci wiedzieć, że w tych okolicach widywane jest UFO. Twój personel powinien być przygotowany na niespodziewanych gości. " .. "Warunki wygranej to: wartość szpitala 240,000 PLN, 500,000 PLN na koncie i reputacja na poziomie co najmniej 700.", level18 = "", } humanoid_name_starts = { [1] = "GOLD", [2] = "HIGH", [3] = "AND", [4] = "BEN", [5] = "BAN", [6] = "BILL", [7] = "WY", [8] = "WAT", [9] = "POD", [10] = "KING", [11] = "BAR", [12] = "PET", [13] = "MAN", [14] = "BOY", [15] = "WAR", [16] = "JACK", [17] = "CRAB", [18] = "FISH", [19] = "WATER", [20] = "MIL", [21] = "BY", [22] = "FEN", [23] = "RICH", [24] = "SCOT", [25] = "BUR", [26] = "PIKE", [27] = "CUR", [28] = "WHIT", [29] = "BINN", [30] = "BONN", [31] = "POG", [32] = "WRIGHT", [33] = "KER", } transactions = { severance = "Odprawa", research = "Koszty Badań", eoy_trophy_bonus = "Trofeum za Cały Rok", buy_object = "Zakup Przedmiotu", cure_colon = "Wyleczony:", epidemy_coverup_fine = "Kara za Tuszowanie Epidemii", final_treat_colon = "Końcowe Leczenie:", jukebox = "Dochody: Szafa Grająca", loan_interest = "Koszty Pożyczki", overdraft = "Koszty Debetu", wages = "Wypłaty", loan_repayment = "Spłata Pożyczki", personal_bonus = "Premia Indywidualna", drug_cost = "Koszty Leków", cure = "Leczenie", heating = "Koszty Ogrzewania", treat_colon = "Leczenie:", compensation = "Odszkodowanie Rządowe", epidemy_fine = "Kara za Epidemię", buy_land = "Kupno Terenu", research_bonus = "Premia za Badania", general_bonus = "Premia Ogólna", deposit = "Depozyt Leczenia", eoy_bonus_penalty = "Premia/Kara za Cały Rok", cheat = "Kasa za Przekręty", drinks = "Dochody: Automaty do Napoi", vaccination = "Szczepienie", advance_colon = "Awans:", vip_award = "Nagroda Pieniężna od VIPa", hire_staff = "Zatrudnienie Personelu", bank_loan = "Pożyczka Bankowa", machine_replacement = "Koszt Wymiany Urządzeń", emergency_bonus = "Premia za Nagłe Wypadki", build_room = "Budowa Pomieszczenia", insurance_colon = "Ubezp. :", sell_object = "Sprzedaż Obiektu", } object = { chair = "Krzesło", litter = "Śmieci", sofa = "Sofa", operating_table = "Stół Operacyjny", bed2 = "�óżko", bench = "�awka", scanner = "Skaner", couch = "Kozetka", blood_machine = "Analizator Krwi", table1 = "Stół", video_game = "Gra Wideo", lamp = "Lampa", op_sink2 = "Zlew", door = "Drzwi", auto_autopsy = "Auto Autopsja", reception_desk = "Biurko Recepcji", hair_restorer = "Przeszczepiacz", projector = "Projektor", crash_trolley = "Wózek Lekarski", tv = "Telewizor", ultrascanner = "Ultraskaner", surgeon_screen = "Parawan", litter_bomb = "Bomba Śmieciowa", inflator = "Napowietrzacz", table2 = "Stół", desk = "Biurko", pool_table = "Bilard", x_ray_viewer = "Monitor", radiation_shield = "Komputer Sterujący", bed = "�óżko", swing_door2 = "Drzwi obrotowe", console = "Konsola", op_sink1 = "Zlew", bookcase = "Biblioteczka", drinks_machine = "Automat do napoi", comfortable_chair = "Fotel", skeleton = "Szkielet", computer = "Komputer", bin = "Śmietnik", pharmacy_cabinet = "Szafka z Lekami", radiator = "Kaloryfer", cast_remover = "Usuwacz Gipsu", atom_analyser = "Analizator Atomów", plant = "Rośliny", jelly_moulder = "Galaretownica", cardio = "Kardiograf", toilet = "Toalety", electrolyser = "Elektrolizer", fire_extinguisher = "Gaśnica", bed3 = "�óżko", swing_door1 = "Drzwi obrotowe", lecture_chair = "Krzesło ucznia", screen = "Parawan", toilet_sink = "Zlew", shower = "Prysznic", gates_of_hell = "Bramy Piekieł", entrance_right = "Prawe drzwi wejściowe", entrance_left = "Lewe drzwi wejściowe", slicer = "Krajalnica", dna_fixer = "Re-GEN-erator", x_ray = "Rentgen", cabinet = "Szafka z aktami", } letter = { [1] = { [1] = "Drogi %s//", [2] = "Cudownie! Poradziłeś sobie wspaniale z prowadzeniem tego szpitala. My, grube ryby z Ministerstwa Zdrowia, chcemy wiedzieć czy byłbyś zainteresowany większym projektem. Mamy pracę, do której wydajesz się być wręcz stworzony. Wynagrodzenie będzie wynosiło %d PLN. Bądź łaskaw rozważyć naszą propozycję.//", [3] = "Czy jesteś zainteresowany pracą w Szpitalu %s?", }, [2] = { [1] = "Drogi %s//", [2] = "Wyśmienicie! Dokonałeś wielkiego postępu w swoim szpitalu. Chcielibyśmy przenieść cię w inne miejsce, o ile masz ochotę na zmianę scenerii oraz nowe wyzwania. Nie musisz się zgadzać, jednak to może być w sam raz coś dla ciebie. Oferujemy pensję w wysokości %d PLN//", [3] = "Czy chcesz pracę w Szpitalu %s?", }, [3] = { [1] = "Drogi %s//", [2] = "Przez ostatni czas bardzo pomyślnie zarządzałeś tą placówką. Uważamy, że możesz dokonać wielkich rzeczy i chcemy zaoferować ci pozycję w innym szpitalu. Twoja pensja wyniesie %d PLN. Jesteśmy przekonani, że pokochasz tamtejsze nowe wyzwania.//", [3] = "Czy chcesz przyjąć posadę w Szpitalu %s?", }, [4] = { [1] = "Drogi %s//", [2] = "Gratulacje! My w Ministerstwie, jesteśmy zachwyceni twoimi umiejętnościami. Prawdę mówiąc, cały Departament Zdrowia uważa cię za złotego chłopaka. Wydaje nam się jednak, że wolałbyś nieco większe wyzwanie. Oferujemy ci pensję w wysokości %d PLN, ale decyzja należy do ciebie.//", [3] = "Czy jesteś zainteresowany pracą dla Szpitala %s?", }, [5] = { [1] = "Drogi %s//", [2] = "Witamy ponownie. Respektujemy twoje życzenie, aby pozostać w tym uroczym szpitalu, jednak zachęcamy cię do zmiany decyzji. Zaoferujemy ci pensję w wysokości %dPLN, jeżeli odejdziesz do innego szpitala i dobrze go poprowadzisz.//", [3] = "Czy zechcesz się teraz przenieść do Szpitala %s?", }, [6] = { [1] = "Drogi %s//", [2] = "Witamy. Wiemy jak szczęśliwy jesteś w tej uroczej i świetnie prowadzonej instytucji, jednak powinieneś posunąć swą karierę do przodu. Za przeniesienie będziesz miał prawo żądać %d PLN wynagrodzenia. Co ty na to?//", [3] = "Czy zechcesz poprowadzić Szpital %s?", }, [7] = { [1] = "Drogi %s//", [2] = "Dzień dobry! Ministerstwo Zdrowia chce wiedzieć, czy zdecydowałbyś się opuścić obecny szpital. Zdajemy sobie sprawę, że jest on uroczy i wspaniale prowadzony. Wiemy jednak, że sprostałbyś większym wyzwaniom, za które dostałbyś pensję w wysokości %d PLN.//", [3] = "Czy akceptujesz stanowisko w Szpitalu %s?", }, [8] = { [1] = "Drogi %s//", [2] = "Witamy ponownie. Odpowiedziałeś negatywnie na list, w którym oferowaliśmy ci czołowe stanowisko w nowym Szpitalu, z wynagrodzeniem %d PLN. Wydaje nam się jednak, że powinieneś przemyśleć tę decyzję. Tak się składa, że mamy dla ciebie idealną pracę.//", [3] = "Czy przyjmiesz stanowisko w Szpitalu %s?", }, [9] = { [1] = "Drogi %s//", [2] = "Udowodniłeś, że jesteś najlepszym administratorem szpitala w całej historii medycyny. Tak wspaniałe osiągnięcie nie mogło zostać niezauważone, chcielibyśmy więc powierzyć ci stanowisko Naczelnego Szefa Wszystkich Szpitali. Z tą prestiżową posadą wiąże się pensja w wysokości %d PLN. Od teraz ludzie będą witali cię brawami i okazywali uznanie, gdziekolwiek byś się nie znalazł.//", [3] = "Dziękujemy za wszystko co zrobiłeś. Niech ci służy ta ciepła posadka.//", [4] = "", }, [10] = { [1] = "Drogi %s//", [2] = "Gratulujemy udanego kierowania wszystkimi placówkami jakie ci powierzyliśmy. Dzięki tak wspaniałym wynikom cały świat stoi przed tobą otworem. Oferujemy ci pensję w wysokości %d PLN oraz limuzynę. W zamian prosimy tylko, byś podróżował z miasta do miasta, spotykał się z wielbiącym cię społeczeństwem i promował ideę płatnego szpitalnictwa.//", [3] = "Jesteśmy z ciebie dumni. Nie ma wśród nas nikogo, kto nie doceniałby twej ciężkiej pracy na rzecz ratowania życia.//", [4] = "", }, [11] = { [1] = "Drogi %s//", [2] = "Twoja wzorowa kariera stanowi inspirację dla każdego z nas. Dziękujemy za prowadzenie tak wielu szpitali i świetne radzenie sobie z każdym problemem. Pragniemy uhonorować cię dożywotnim wynagrodzeniem w wysokości %d PLN. Czy zechciałbyś podróżować odkrytą limuzyną od miasta do miasta i prowadzić wykłady o tym, jak osiągnąłeś tak wiele w tak krótkim czasie?//", [3] = "Jesteś przykładem dla wszystkich myślących istot i każdy bez wyjątku uważa cię za bezcenny skarb.//", [4] = "", }, [12] = { [1] = "Drogi %s//", [2] = "Twoja kariera najlepszego zarządcy szpitala od czasów Mojżesza dobiega końca. Mając jednak na uwadze wpływ jaki wywarłeś na kameralny świat medycyny, Minister oferuje ci honorarium w wysokości %d PLN. Twoim jednym zadaniem byłoby otwierać festiwale w naszym imieniu, wodować statki i uczestniczyć w różnych pokazach. Cały świat pada przed tobą na kolana, a my skorzystalibyśmy na twojej popularności!//", [3] = "Usilnie prosimy, przyjmij tę propozycję. To nie będzie ciężka praca, a dostaniesz samochód i eskortę policji, gdziekolwiek się wybierzesz.//", [4] = "", }, custom_level_completed = "Dobra robota! Ukończyłeś wszystkie zadania w tym niestandardowym poziomie!", dear_player = "Drogi %s", return_to_main_menu = "Czy chcesz wrócić do głównego menu czy kontynuować grę?", } high_score = { categories = { deaths = "LICZBA ZGONÓW", total_value = "CA�KOWITA WARTOŚĆ", money = "NAJBOGATSZY", cures = "LICZBA WYLECZEŃ", visitors = "NAJWIĘCEJ ODWIEDZAJĄCYCH", staff_number = "NAJWIĘCEJ PERSONELU", cure_death_ratio = "STOSUNEK WYLECZENI/ZGONY", patient_happiness = "ZADOWOLENIE KLIENTÓW", staff_happiness = "ZADOWOLENIE PERSONELU", salary = "NAJLEPSZE ZAROBKI", clean = "NAJCZYSTSZY", }, player = "GRACZ", score = "WYNIK", pos = "POZ", best_scores = "SALA S�AWY", worst_scores = "SALA WSTYDU", killed = "Zabici", } menu_file_save = { [1] = " GRA 1 ", [2] = " GRA 2 ", [3] = " GRA 3 ", [4] = " GRA 4 ", [5] = " GRA 5 ", [6] = " GRA 6 ", [7] = " GRA 7 ", [8] = " GRA 8 ", } build_room_window = { pick_room_type = "Wybierz Gabinet", pick_department = "Wybierz Dział", cost = "Koszt: ", } menu = { debug = " B�ĄD ", display = " WYŚWIETLANIE", file = " PLIK ", options = " OPCJE ", charts = " STATYSTYKI ", } map_editor_window = { pages = { inside = "Wnętrze", outside = "Na zewnątrz", foliage = "Ulistowienie", hedgerow = "Żywopłot", pond = "Sadzawka", road = "Droga", north_wall = "Ściana północna", west_wall = "Ściana zachodnia", helipad = "Lądowisko", delete_wall = "Usuń ściany", parcel_0 = "Parcela 0", parcel_1 = "Parcela 1", parcel_2 = "Parcela 2", parcel_3 = "Parcela 3", parcel_4 = "Parcela 4", parcel_5 = "Parcela 5", parcel_6 = "Parcela 6", parcel_7 = "Parcela 7", parcel_8 = "Parcela 8", parcel_9 = "Parcela 9", camera_1 = "Kamera 1", camera_2 = "Kamera 2", camera_3 = "Kamera 3", camera_4 = "Kamera 4", heliport_1 = "Lądowisko 1", heliport_2 = "Lądowisko 2", heliport_3 = "Lądowisko 3", heliport_4 = "Lądowisko 4", paste = "Wklej obszar", } } menu["player_count"] = "LICZBA GRACZY" menu_player_count = { players_1 = " 1 GRACZ ", players_2 = " 2 GRACZY ", players_3 = " 3 GRACZY ", players_4 = " 4 GRACZY ", } -------------------------------- UNUSED ----------------------------------- ------------------- (kept for backwards compatibility) ---------------------- options_window.change_resolution = "Zmień rozdzielczość" tooltip.options_window.change_resolution = "Zmień rozdzielczość okna do rozmiarów wpisanych po lewo" CorsixTH-0.70.0/CorsixTH/Lua/languages/russian.lua000066400000000000000000010742301522247547500217060ustar00rootroot00000000000000 --[[ Copyright (c) 2011 Sergei Larionov, Alexey Pinyagin, 2021-2025 "Matroftt", 2024-2025 Artem Argus (ARGAMX) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("mik") Language("Ру��кий", "Russian", "ru", "rus") Inherit("English") Encoding(utf8) IsArabicNumerals(true) --[[ Оглавление 1. Главное меню 2. Игровое меню и панель ин�трументов 3. Отчеты 4. Окна интерфей�а 5. Болезни 6. Фак�ы 7. Советчик 8. Пи�ьма из мини�тер�тва (WIP) 9. Имена и названи� 10. WIP 11. Отладка --]] -- 1. Главное меню main_menu = { new_game = "�ова� игра", continue = "Продолжить игру", custom_level = "Дополнительные уровни", custom_campaign = "Дополнительные кампании", load_game = "Загрузить игру", map_edit = "Редактор карт", options = "�а�тройки", exit = "Выход", savegame_version = "Вер�и� файлов �охранений: ", updates_off = "Обновлени� не провер�ют��", version = "Вер�и�: ", } new_game_window = { tutorial = "Обучение", easy = "Студент (Легкий)", medium = "Доктор (Средний)", hard = "Кон�ультант (Трудный)", cancel = "Отмена", difficulty = "Сложно�ть", option_on = "Вкл", option_off = "Выкл", caption = "Кампани�", player_name = "Им� Игрока", start = "Старт", } custom_campaign_window = { caption = "Дополнительные кампании", start_selected_campaign = "�ачать кампанию", duplicates_warning = "%d кампаний � повтор�ющими�� названи�ми были �крыты", } menu_options_warmth_colors = { choice_2 = " Синий, зеленый, кра�ный ", choice_1 = " Кра�ный ", choice_3 = " Желтый, оранжевый, кра�ный ", } date_format = { daymonth = "%1% %2:months%", } custom_game_window = { free_build = "Свободное �троитель�тво", caption = "Дополнительные уровни", load_selected_level = "Старт", } load_game_window = { caption = "Загрузить игру", load_button = "Загрузить", } save_game_window = { caption = "Сохранить игру", new_save_game = "�овое �охранение", save_button = "Сохранить", missing_filename = "Пожалуй�та, введите название нового �охранени� или выберите �тарое дл� перезапи�и.", } folders_window = { data_label = "Данные TH", music_location = "Выберите папку, которую хотите и�пользовать под вашу музыку", music_label = "Музыка MP3", new_th_location = "Зде�ь вы можете указать новую папку � у�тановкой оригинальной Theme Hospital. Как только вы выберете новую папку, игра будет перезапущена.", caption = "Ра�положение папок", screenshots_label = "Скриншоты", font_label = "Шрифт", savegames_label = "Сохранени�", back = "�азад", savegames_location = "Выберите папку дл� размещени� �охраненных игр.", screenshots_location = "Выберите папку дл� размещени� �криншотов.", } customise_window = { caption = "Пользователь�кие на�тройки", option_on = "Вкл", option_off = "Выкл", back = "�азад", average_contents = "Типичное наполнение", paused = "Строить во врем� паузы", intro = "Проигрывать за�тавку", movies = "Управление видероликами", volume = "Гор�ча� клавиша убавлени� громко�ти", aliens = "Инопланетные пациенты", fractured_bones = "Сломанные ко�ти", remove_destroyed_rooms = "Удал�ть разрушенные комнаты", machine_menu_button = "Кнопка меню аппаратов", emergency_only = "Только Чрезвычайные", regular_patients = "Обычные Пациенты", male_only = "Только Мужчины", male_and_female = "Мужчины и Женщины", enable_screen_shake = "Тр��ка Экрана", enable_announcer_subtitles = "Субтитры Диктора", } options_window = { fullscreen = "Во ве�ь �кран", height = "Вы�ота", width = "Ширина", change_resolution = "Изменить разрешение", back = "�азад", browse = "Выбрать папку", folder = "Папки", right_mouse_scrolling = "Прокрутка карты", right_mouse_scrolling_option_middle = "Средней кнопкой мыши", right_mouse_scrolling_option_right = "Правой кнопкой мыши", option_off = "Выкл", apply = "Применить", option_on = "Вкл", option_enabled = "Вкл", option_disabled = "Выкл", custom_resolution = "Выбрать...", caption = "�а�тройки", cancel = "Отмена", customise = "�а�троить", resolution = "Разрешение", language = "Язык в игре", zoom_speed = "Скоро�ть приближени�", capture_mouse = "Прив�зка мышки", shift_scrollspeed = "Скоро�ть прокрутки � Shift", hotkey = "Гор�чие клавиши", scrollspeed = "Скоро�ть прокрутки", check_for_updates = "Проверка обновлений", scale_ui = "Ма�штабирование UI", autosave_frequency = "Ча�тота авто�охранени�", sound = "Звук", } autosave_frequency = { monthly = "Ежеме��чно", weekly = "Еженедельно", daily = "Ежедневно", } audio_window = { audio = "Звук", jukebox = "Муз. �втомат", back = "�азад", } menu_list_window = { back = "�азад", save_date = "Изменено", ok = "OK", name = "Им�", } update_window = { caption = "До�тупно обновление!", new_version = "�ова� Вер�и�:", current_version = "Текуща� Вер�и�: ", download = "Перейти на �траницу загрузки", ignore = "Пропу�тить и перейти в Главное меню", caption = "До�тупно новое обновление!", } save_map_window = { caption = "Сохранить карту (%1%)", new_map = "�ова� карта", save_button = "Сохранить", missing_filename = "Пожалуй�та, введите название новой карты или выберите �тарое дл� перезапи�и.", } load_map_window = { caption = "Загрузить карту (%1%)", load_button = "Загрузить", } hotkey_window = { right_mouse_scrolling = "Переключить клавишу мыши, котора� отвечает за прокрутку карты", ingame_rotateobject = "Повернуть объект", global_showLuaConsole = "Кон�оль Lua", global_confirm = "Подтвердить", panel_recallPosKeys = "Изменить клавиши положени�", global_runDebugScript = "Скрипт отладки", ingame_zoom_in_more = "Бы�трее приближать", ingame_panel_machineMenu = "Меню аппаратов", global_fullscreen_toggle = "Полный �кран", panel_storePosKeys = "Клавиши покупки", ingame_storePosition_8 = "8", ingame_restartLevel = "Переиграть уровень", ingame_panel_map_alt = "План 2", caption_panels = "Панельные клавиши", global_resetApp = "Перезапу�тить CorsixTH", panel_debugKeys = "Клавиши отладки", ingame_saveMenu = "Сохранить игру", ingame_panel_casebook_alt = "Запи�на� книжка 2", ingame_scroll_down = "Прокрутить вниз", ingame_panel_status = "Стату�", button_defaults = "Во��тановить в�е по умолчанию", global_stop_movie_alt = "О�тановить видео", ingame_panel_editRoom = "Редактировать комнату", ingame_gamespeed_speedup = "Увеличить �коро�ть", panel_gameSpeedKeys = "Клавиши игровой �коро�ти", ingame_recallPosition_6 = "6", ingame_storePosition_6 = "6", ingame_storePosition_0 = "10", global_confirm_alt = "Подтвердить альт", ingame_showmenubar = "Показать меню", panel_scrollKeys = "Клавиши прокрутки", ingame_toggleAdvisor = "Советник", ingame_showCheatWindow = "Чит-меню", ingame_recallPosition_7 = "7", global_cancel = "Отмена", panel_globalKeys = "Общие клавиши", global_window_close_alt = "Закрыть окно", ingame_recallPosition_8 = "8", panel_zoomKeys = "Изменение размера", button_accept = "Применить", ingame_panel_policy = "Политика больницы", ingame_storePosition_1 = "1", global_exitApp = "Выйти", ingame_quickLoad = "Бы�тра� загрузка", global_screenshot = "Снимок �крана", ingame_recallPosition_3 = "3", ingame_scroll_right = "Прокрутить вправо", ingame_storePosition_5 = "5", panel_altPanelKeys = "�льтернативные Клавиши Панели", button_recallPosKeys = "Вызов клавишей положени�", ingame_openFirstMessage = "Сообщение уровн�", global_cancel_alt = "Отменить альт", ingame_panel_research_alt = "И��ледовани� 2", ingame_recallPosition_2 = "2", ingame_scroll_left = "Прокрутить влево", ingame_zoom_out = "Уменьшить размер", ingame_poopLog = "Дамп-лог", ingame_reset_zoom = "Размер по умолчанию", caption_main = "�азначение гор�чих клавиш", ingame_gamespeed_slower = " Медленна� ", global_releaseMouse = "Отпу�тить мышку", ingame_gamespeed_slowest = " Черепашь� ", panel_toggleKeys = "Клавиши переключени�", ingame_gamespeed_normal = " Обычна� ", ingame_gamespeed_max = " Бы�тра� ", ingame_panel_buildRoom = "Строить кабинеты", ingame_gamespeed_thensome = " Еще бы�трее ", ingame_toggleInfo = "Информаци�", ingame_panel_bankManager = "Банк-Менеджер", ingame_jukebox = "Музыкальный проигрыватель", ingame_storePosition_3 = "3", ingame_panel_bankStats = "Стату� банка", ingame_panel_staffManage = "Управл�ть пер�оналом", ingame_zoom_in = "Увеличить размер", ingame_panel_casebook = "Запи�на� книжка", ingame_quitLevel = "Выйти", ingame_storePosition_4 = "4", global_connectDebugger = "Отладчик", ingame_zoom_out_more = "Бы�трее уменьшить размер", panel_generalInGameKeys = "Общие внутриигровые клавиши", button_cancel = "Отмена", ingame_quickSave = "Бы�трое �охранение", ingame_panel_furnishCorridor = "Об�тавл�ть коридор", ingame_scroll_shift = "Скоро�ть � Shift", ingame_panel_casebook_alt02 = "Запи�на� книжка 3", ingame_pause = " Пауза ", ingame_panel_hireStaff = "�ан�ть пер�онал", ingame_setTransparent = "Прозрачные �тены", ingame_toggleTransparent = "Вкл/Выкл прозрачные �тены", ingame_panel_research = "И��ледовани�", ingame_toggleAnnouncements = "Объ�влени�", ingame_toggleSounds = "Звуки", ingame_toggleMusic = "Музыка", ingame_scroll_up = "Прокрутить вверх", button_back = "�азад", ingame_poopStrings = "Строки дампа", ingame_patient_gohome = "Отправить домой", ingame_recallPosition_0 = "10", ingame_panel_charts = "Графики", ingame_recallPosition_9 = "9", ingame_storePosition_7 = "7", button_gameSpeedKeys = "Клавиши изменени� �коро�ти", ingame_recallPosition_5 = "5", ingame_recallPosition_4 = "4", ingame_panel_townMap = "Карта", ingame_storePosition_9 = "9", ingame_loadMenu = "Загрузить игру", ingame_recallPosition_1 = "1", button_toggleKeys = "Переключить клавиши", ingame_storePosition_2 = "2", ingame_panel_adviserHistory = "И�тори� �ообщений �оветника", ingame_sellPickedUpItem = "Продать подобранный предмет", } tooltip = { main_menu = { exit = "Стой! Пожалуй�та, не уходи!", custom_level = "Играть в отдельный уровень", options = "Изменить различные параметры", new_game = "�ачать новую игру � �амого начала", continue = "Продолжить по�леднюю �охраненную игру", load_game = "Загрузить �охраненную ранее игру", network = "�ачать �етевую игру", quit = "Вы �обираете�ь выйти из CorsixTH. Вы уверены в том что хотите именно �того?", custom_campaign = "Играть в кампанию, �деланную �ообще�твом", map_edit = "Создать �об�твенную карту", load_menu = { load_slot = "З�ГРУЗИТЬ ИГРУ", empty_slot = "ПУСТО", }, }, new_game_window = { tutorial = "По�тавьте галочку зде�ь, чтобы пройти режим обучени�", difficulty = "Выберите уровень �ложно�ти игры", easy = "�ажимите �юда, е�ли вы новичок в подобных играх", medium = "Самый обычный �редний уровень �ложно�ти", hard = "Выберите �тот вариант, е�ли хотите у�ложнить �ебе игру", player_name = "Введите им�, которым вы хотите пред�тавл�ть�� в игре", start = "�ачать игры � выбранными на�тройками", cancel = "Отмена", }, totd_window = { previous = "Показать предыдущий �овет", next = "Показать �ледующий �овет", }, audio_window = { back = "Закрыть окно", audio_button = "Включить/Выключить в�ё аудио в игре", audio_toggle = "Включить/Выключить", jukebox = "Открыть музыкальный автомат, дл� на�тройки музыки", soundfont_location = "Ра�положение файла Soundfont дл� во�произведени� MIDI-музыки. Е�ли не указан, и�пользует�� Soundfont по умолчанию.", sound_volume = "Громко�ть звука", midi_api = "API дл� и�пользовани� внутриигровой музыки. �е и�пользует�� � пользователь�кой папкой � музыкой MP3.", browse_soundfont = "Выбрать другой файл Soundfont (sf2 или sf3) (Текущее ра�положение: %1%)", announcement_volume = "Громко�ть объ�влени�", browse = "Указать ра�положение папки", midi_port = "Порт у�трой�тва дл� и�пользовани� внутриигровой музыки.", no_soundfont_specified = "И�пользование Soundfont по умолчанию", music_volume = "Громко�ть музыки", }, save_game_window = { new_save_game = "Введите им� дл� �охраненной игры", save_game = "Перезапи�ать игру «%s»", }, load_game_window = { load_game = "Загрузить игру «%s»", load_autosave = "Загрузить авто�охранение", load_game_number = "Загрузить игру %d", }, hotkey_window = { caption_panels = "Открыть окно дл� назначени� клавиш панели", button_gameSpeedKeys = "Откройте окно, чтобы у�тановить клавиши дл� управлени� �коро�тью игры", button_accept = "Прин�ть и �охранить назначени� гор�чих клавиш", button_back_02 = "Вернуть�� к главному окну гор�чих клавиш. Гор�чие клавиши, измененные в �том окне, могут быть прин�ты там", button_defaults = "Cбро�ить в�е гор�чие клавиши, и вернуть их на на�тройки по умолчанию", button_cancel = "Отменить изменени� и вернуть�� в меню на�троек", button_recallPosKeys = "Откройте окно дл� у�тановки клавиш дл� �охранени� и вызовов положений камеры", panel_globalKeys = "�азначить глобальные гор�чие клавиши.", panel_debugKeys = "�азначить гор�чие клавиши дл� отладки.", panel_generalInGameKeys = "�азначить общие внутриигровые гор�чие клавиши.", panel_zoomKeys = "�азначить гор�чие клавиши дл� увеличени� и уменьшени� ма�штаба.", panel_scrollKeys = "�азначить гор�чие клавиши дл� прокрутки �крана.", panel_toggleKeys = "�азначить гор�чие клавиши дл� переключени� параметров.", }, custom_campaign_window = { choose_campaign = "Выберите кампанию, чтобы узнать про нее больше.", start_selected_campaign = "�ачать играть в первый уровень �той кампании.", duplicates_warning = "См. окно кон�оли дл� получени� информации о конкретных ошибках.", }, cheats_window = { close = "Закрыть окно � читами", cheats = { end_month = "Перепрыгивает в конец ме��ца.", emergency = "Создает чрезвычайную �итуацию.", win_level = "Выиграть уровень.", create_patient = "Создает Пациента в конце карты.", money = "Добавл�ет 10.000 к Вашему балан�у.", lose_level = "Проиграть уровень.", all_research = "Завершает в�е и��ледовани�.", end_year = "Перепрыгивает в конец года.", show_infected = "Показывает/пр�чет значки заражени� пациентов дл� активной, обнаруженной �пидемии", decrease_prices = "Уменьшить в�е цены на 50% (мин. 50%)", epidemic = "Создает заразного пациента, который может вызвать �пидемию", increase_prices = "Увеличить в�е цены на 50% (мак�. 200%)", toggle_earthquake = "Переключает землетр��ени�", toggle_epidemic = "Переключает по�вление �пидемии в больнице", earthquake = "Вызвать землетр��ение.", vip = "Пригла�ить VIP.", reset_death_count = "У�тановить �четчик �мертей на ноль", max_reputation = "Увеличить репутацию больницы на мак�имум ", repair_all_machines = "Отремонтировать в�е аппараты в больнице.", toggle_invulnerable_machines = "Вкл/Выкл режим изно�а аппаратов при и�пользовании.", }, }, toolbar = { bank_button = "Лева� кнопка - управл�ющий банка, права� - балан� банка", balance = "Ваш балан�", reputation = "Ваша репутаци�", date = "Дата", rooms = "Строить кабинеты", objects = "Об�тавл�ть коридор", edit = "Редактировать кабинеты/мебель", hire = "�ан�ть пер�онал", staff_list = "Управление пер�оналом", town_map = "Карта", casebook = "Лабораторный журнал", research = "И��ледовани�", status = "Со�то�ние", charts = "Графики", policy = "Политика", machine_menu = "Меню аппаратов", }, options_window = { select_language = "Выбрать �зык игры", select_resolution = "Выбрать новое разрешение", language_dropdown_item = "Выбрать %s �зык", audio_button = "Включить или выключить ве�ь игровой звук", resolution = "Разрешение в котором игра должна работать", audio_toggle = "Переключатель вкл. или выкл.", fullscreen = "Игра должна работать в полно�кранном или оконном режиме", apply = "И�пользовать введенное разрешение", cancel = "Вернуть�� без изменени� разрешени�", folder_button = "�а�тройки файловых путей", customise_button = "Вы можете изменить больше на�троек дл� улучшени� игрового опыта", zoom_speed = "Измените �коро�ть приближени� камеры от 10 (Сама� медленна�) до 1000 (Сама� бы�тра�). По умолчанию �то 80.", capture_mouse = "Включить прив�зку кур�ора в игровом окне.", cancel_shift_scrollspeed = "Продолжить без изменени� �коро�ти прокрутки � нажатой клавишей shift.", cancel_zoomspeed = "Продолжить без изменени� �коро�ти приближени�.", cancel_scrollspeed = "Продолжить без изменени� �коро�ти прокрутки.", apply_zoomspeed = "Применить введёную �коро�ть приближени�.", apply_shift_scrollspeed = "Применить введёную �коро�ть прокрутки � нажатой клавишей shift.", scrollspeed = "У�тановите �коро�ть прокрутки от 1 (Сама� медленна�) до 10 (Сама� бы�тра�). По умолчанию �то 2.", hotkey = "Измените гор�чие клавиши на клавиатуре.", shift_scrollspeed = "У�тановите �коро�ть прокрутки при нажатой клавише shift. от 1 (�ама� медленна�) до 10 (�ама� бы�тра�). Значение по умолчанию равно 4.", apply_scrollspeed = "Применить введенную �коро�ть прокрутки.", check_for_updates = "Указывает, должна ли игра провер�ть обновлени� при запу�ке", language_dropdown_no_font = "Выберите шрифт в на�тройках папок, чтобы включить �тот �зык.", ui_scale_unavailable = "Ма�штабирование пользователь�кого интерфей�а недо�тупно, �начала выберите более вы�окое разрешение.", scale_ui = "Ма�штабируйте пользователь�кий интерфей�. Отображают�� только параметры ма�штабировани�, �оответ�твующие �крану; дл� большего ма�штабировани� увеличьте разрешение.", select_ui_scale = "Выберите новый ма�штаб пользователь�кого интерфей�а.", resolution_unavailable = "Разрешение недо�тупно при текущем ма�штабе пользователь�кого интерфей�а.", sound = "Изменение на�трек звука.", autosave_frequency = "У�тановите ча�тоту авто�охранений игры.", fullscreen_button = "Включить/отключить полно�кранный режим", change_resolution = "Сменить разрешение �крана на указанное �лева", height = "Введите разрешение �крана по вертикали", width = "Введите разрешение �крана по горизонтали", language = "Выбрать %s �зык", back = "Закрыть окно на�троек", folder_button = "Свой�тва папки", right_mouse_scrolling = "Переключение кнопки, котора� и�пользует�� дл� прокрутки карты", }, menu_list_window = { ok = "Подтвердить выбор", name = "�ажмите тут дл� �ортировки �пи�ка по имени", save_date = "�ажмите тут дл� �ортировки �пи�ка по дате по�леднего изменени�", back = "Закрыть окно", }, update_window = { download = "Перейти на �траницу загрузки �амой по�ледней вер�ии CorsixTH", new_version = "�ова� вер�и�:", current_version = "�ынешн�� вер�и�:", download = "Перейти на �траницу загрузки", ignore = "Проигнорировать и выйти в главное меню", }, save_map_window = { map = "Перезапи�ать карту %s", new_map = "Введите название дл� �охранени� карты", }, folders_window = { browse_font = "Выбрать другой файл шрифта ( текущее ме�тоположение: %1% )", screenshots_location = "По-умолчанию, �криншоты �охран�ют�� в папке р�дом � файлом конфигурации. По желанию, Вы можете выбрать другую папку. Про�то укажите нужный путь к ней.", reset_to_default = "Сбро�ить в ра�положение по-умолчанию ( %1% )", back = "Закрыть �то меню и вернуть�� в Меню �а�троек", music_location = "Выберите ра�положение ваших mp3 аудиофайлов", font_location = "Ме�тонахождение файла шрифта, �по�обного отображать Unicode кодировку, необходимую дл� вашего �зыка. Е�ли он не указан, то вы не можете выбрать �зыки, требующие дл� отображени� больше �имволов, чем были в оригинальной игре. �апример: Ру��кий и Китай�кий ", savegames_location = "По умолчанию, папка дл� �охраненных игр находит�� вме�те � конфигурационным файлом. Е�ли �то не удобно, вы можете выбрать любую другую папку, про�то укажите нужный путь к ней.", browse_data = "Указать другое ме�то нахождени� файлов Theme Hospital (текущее ме�тоположение: %1%)", browse = "Про�мотр папок", browse_screenshots = "Указать другое ме�тоположение папки �о �криншотами ( текущее ме�тоположение: %1% ) ", browse_music = "Указать другое ра�положение папки � Музыкой ( текущее ме�тоположение: %1% ) ", no_font_specified = "Ра�положение файла �о шрифтом ещё не задано!", not_specified = "Ра�положение папки ещё не задано!", browse_saves = "Указать ме�тонахождение папки � �охранени�ми игры ( текущее ме�тоположение: %1% ) ", default = "Ра�положение по умолчанию", data_location = "Папка � оригинальной вер�ией Theme Hospital, котора� нужна CorsixTH дл� запу�ка", clear_directory = "Сбро�ить выбор выбранного каталога.", }, customise_window = { aliens = "К �ожалению, пациенты � инопланетной Д�К недо�таточно проанимированы, по�тому в больницу они приход�т только по �к�тренным �луча�м. Е�ли вы хотите, чтобы они приходили так же как и обычные пациенты, выключите �ту опцию.", average_contents = "Е�ли вы хотите, чтобы игра запоминала какие дополнительные объекты вы у�танавливаете в том или ином кабинете, когда его �троите, включите �ту опцию.", back = "Закрыть �то меню и вернуть�� в Главное меню", movies = "Общий контроль за видеороликами. Это позволит вам отключить в�е видеоролики.", fractured_bones = "Из-за плохой анимации, по-умолчанию мы отключили в�ех пациентов женщин �о Сломанными ко�т�ми. Дл� того чтобы женщины �о �ломанными ко�т�ми приходили в вашу больницу, выключите �ту опцию.", volume = "Е�ли кнопка понижени� громко�ти открывает журнал, включите �ту опцию, чтобы изменить гор�чую клавишу журнала на Shift+C", intro = "Включить или выключить показ в�тупительного ролика. Общий контроль за видеороликами должен быть включен, е�ли вы хотить видеть в�тупление каждый раз, когда запу�каете CorsixTH", paused = "В оригинальном Theme Hospital и�пользовать меню �верху �крана можно было только е�ли по�тавить игру на паузу. Мы о�тавили �то по-умолчанию и в CorsixTH. Е�ли вы включите �ту опцию, то на паузе можно будет делать в�е что угодно.", remove_destroyed_rooms = "Е�ли вы хотите иметь возможно�ть удал�ть разрушенные комнаты за отдельную плату, включите �ту опцию.", machine_menu_button = "Е�ли вы хотите видеть кнопку меню аппаратов в нижней панели во врем� игры, включите �ту опцию. Кнопка также не будет отображать�� при маленьком разрешении �крана", enable_announcer_subtitles = "Е�ли вы хотите, чтобы игра отображала �убтитры объ�влений, включите �ту опцию.", enable_screen_shake = "Землетр��ени� вызывают дрожание в�его �крана. Е�ли вы предпочитаете, чтобы �кран о�тавал�� неподвижным, отключите �ту опцию.", }, handyman_window = { happiness = "Сча�тье", salary = "Зарплата", tiredness = "У�тало�ть", sack = "Уволить", close = "Закрыть", face = "Изображение рабочего", pick_up = "Подн�ть", center_view = "Центрировать �кран на рабочем", name = "Им� рабочего", ability = "Спо�обно�ти", parcel_select = "Уча�ток, в котором рабочий выполн�ет �вои функции. �ажмите, чтобы изменить.", prio_machines = "Увеличить приоритет ремонта", prio_litter = "Увеличить приоритет уборки", prio_plants = "Увеличить приоритет поливки", }, debug_patient_window = { item = "Создать те�т-пациента � %s", }, research_policy = { research_progress = "Прогре��, необходимый до �ледующего открыти� в �той категории: %1%/%2%", no_research = "В на�то�щее врем� и��ледований в �той категории не производит��", }, objects = { atom_analyser = "�томный анализатор: �тот аппарат у�кор�ет в�е и��ледователь�кие проце��ы", auto_autopsy = "�втов�крывалка: очень помогает в и��ледовании заболеваний", bed = "Койка: на ней �могут прилечь те, кто уже не в �илах �то�ть", bed2 = "неи�пользовала�ь", bed3 = "неи�пользовала�ь", bench = "Скамь�: предо�тавл�ет одно �ид�чее ме�то, �крашива� ча�ы, проведенные в очеред�х", bin = "Корзина: чтобы пациентам было куда деть �вой му�ор", blood_machine = "42 М�ШИ�� ДЛЯ З�БОР� КРОВИ", bookcase = "Книжный шкаф: полон �правочных материалов на медицин�кие темы", cabinet = "Картотека: �одержит карточки пациентов, запи�и и научные документы", cardio = "13 К�РДИО �ПП�Р�Т", cast_remover = "24 УД�ЛИТЕЛЬ ГИПС�", chair = "Стул: пациенты �ид�т на нем и об�уждают �вое заболевание.", comfortable_chair = "61 КОМФОРТ�ЫЙ СТУЛ", computer = "Компьютер: незаменимый ин�трумент и��ледовател�", console = "15 КО�СОЛЬ УПР�ВЛЕ�ИЯ", couch = "18 КУШЕТК�", crash_trolley = "20 КРЭШ-ТЕЛЕЖКИ", desk = "Стол: надо ведь доктору куда-то по�тавить �вой компьютер", dna_fixer = "23 ВОССТ��ОВИТЕЛЬ Д�К", door = "Дверь: люди могут открывать и закрывать ее много раз.", drinks_machine = "Торговый автомат: не дает пациентам умереть от жажды и прино�ит прибыль", electrolyser = "46 ЭЛЕКТРОЛИЗ�ТОР", entrance_left = "58 ЛЕВ�Я ВХОД��Я ДВЕРЬ", entrance_right = "59 ПР�В�Я ВХОД��Я ДВЕРЬ", fire_extinguisher = "Огнетушитель: уменьшает веро�тно�ть взрыва аппарата", gates_of_hell = "48 ВОРОТ� В �Д", hair_restorer = "25 ВОССТ��ОВИТЕЛЬ ВОЛОС", inflator = "�адуватель: излечивает раздутие головы", jelly_moulder = "47 Р�ЗЖЕЛИВ�ТЕЛЬ", lamp = "Лампа: излучает �вет и позвол�ет пер�оналу видеть.", lecture_chair = "Лекционный �тул: ваши доктора на нем �ид�т, запи�ывают лекции, �кучают и ри�уют каракули. Чем больше �тульев вы по�тавите, тем больше докторов �может обучать�� одновременно", litter = "Му�ор: какому-то пациенту не удало�ь найти в вашей больнице му�орной корзины, и он бро�ил �то пр�мо зде�ь", litter_bomb = "Му�орна� бомба: �аботирует работу в больнице конкурента", op_sink1 = "33 Р�КОВИ��", op_sink2 = "34 Р�КОВИ��", operating_table = "30 СТОЛ ДЛЯ ОПЕР�ЦИЙ", pharmacy_cabinet = "�птечный шкаф: тут хран�т�� в�е лекар�тва", plant = "Ра�тение: нравит�� пациентам и очищает воздух", pool_table = "Биль�рдный �тол: помогает вашим работникам ра��лабить��", projector = "37 ПРОЕКТОР", radiation_shield = "28 Р�ДИ�ЦИО��ЫЙ ЩИТ", radiator = "Батаре�: поддерживает тепло в вашей больнице", rathole = "Семь� кры� нашла вашу больницу гр�зной и, по�тому, они будут жить зде�ь.", reception_desk = "Реги�тратура: от�юда реги�траторша направит пациента к врачу", scanner = "14 СК��ЕР", screen = "16 ШИРМ�", shower = "54 ОБЕЗЗ�Р�ЖИВ�ЮЩИЙ ДУШ", skeleton = "Скелет: и�пользует�� как учебное по�обие и на Х�ллоуин", slicer = "26 ЯЗЫКОРЕЗК�", sofa = "Диван: е�ли у ва� в комнате отдыха нет ничего интере�нее, то хот� бы можно по�идеть на диване", surgeon_screen = "35 ШИРМ� ДЛЯ ОПЕР�ЦИЙ", swing_door1 = "52 Р�СП�Ш��Я ДВУСТВОРЧ�Т�Я ДВЕРЬ", swing_door2 = "53 Р�СП�Ш��Я ДВУСТВОРЧ�Т�Я ДВЕРЬ", table1 = "Стол (УД�ЛЕ�): �одержит коллекцию журналов, чтобы зан�ть ожидающих пациентов.", table2 = "12 СТОЛ", toilet = "Стульчак: пациенты... мм... пользуют�� им", toilet_sink = "Раковина: наиболее чи�топлотные пациенты моют зде�ь �вои гр�зные руки. Они будут очень недовольны, е�ли не найдут �вободной раковины", tv = "Тель-а-визор: вы же не хотите, чтобы ваши �отрудники пропу�тили �вои любимые передачи", ultrascanner = "22 �ПП�Р�Т УЗИ", video_game = "Игральный автомат: предо�тавл�ет вашим �отрудникам возможно�ть порубить�� в Hi-Octane", x_ray = "27 РЕ�ТГЕ�-�ПП�Р�Т", x_ray_viewer = "29 РЕ�ТГЕ� ЭКР��", }, autosave_frequency = { monthly = "�вто�охранение один раз в ме��ц, первого чи�ла каждого ме��ца. В�его 12 �охранений � глубиной в 1 год.", weekly = "�вто�охранение один раз в неделю: 1-го, 7-го, 14-го, 21-го и 28-го чи�ла каждого ме��ца. В�его 60 �охранений � глубиной в 1 год.", daily = "�вто�охранение один раз в день в начале каждого игрового дн�. В�его 365 �охранений � глубиной в 1 год. Обратите внимание, что типичное �охранение может занимать до 1 мегабайта или даже больше. Таким образом, папка � авто�охранени�ми может разра�ти�ь до 300-500 МБ.", }, staff_list = { prev_person = "Предыдуща� �траница", next_person = "Следующа� �траница", detail = "Внимание к детал�м", happiness = "�а�колько ваши �отрудники довольны �воей работой в целом", tiredness = "Показывает �колько ваши �отрудники еще �могут поработать без отдыха", ability = "Квалификаци� ваших �отрудников в �реднем по больнице", happiness_2 = "Моральное �о�то�ние", ability_2 = "Профе��иональные навыки", tiredness_2 = "Запа� �ил", researcher_train = "�а %d%% готов к получению диплома и��ледовател�", surgeon_train = "�а %d%% готов к получению диплома хирурга", psychiatrist_train = "�а %d%% готов к получению диплома п�ихиатра", researcher = "Дипломированный и��ледователь", psychiatrist = "Дипломированный п�ихиатр", surgeon = "Дипломированный хирург", handymen = "Показать �пи�ок в�ех рабочих вашей больницы", nurses = "Показать �пи�ок в�ех мед�е�тер вашей больницы", doctors = "Показать �пи�ок в�ех докторов вашей больницы", receptionists = "Показать �пи�ок в�ех реги�траторов вашей больницы", pay_rise = "Подн�ть оклад на 10%", bonus = "Выплатить премию в размере 10% от оклада", salary = "Текуща� зарплата", close = "�азад к игре", sack = "Вышвырнуть на улицу", doctor_seniority = "�вторитет доктора", view_staff = "�аблюдать за работой", skills = "Дополнительные умени�", total_wages = "Обща� зарплата", }, town_map = { close = "Закрыть", plants = "Показывать ра�тени�", fire_extinguishers = "Показывать огнетушители", people = "Показывать людей", balance = "Балан�", heat_dec = "Уменьшить температуру", heating_bill = "Счет за отопление", radiators = "Показывать батареи", objects = "Показывать мебель", heat_level = "Температура", heat_inc = "Увеличить температуру", }, policy = { diag_termination = "Об�ледование пациента будет продолжать��, пока доктора не будут на �только процентов уверены в диагнозе или пока у них не закончат�� �ред�тва диагно�тики", close = "Закрыть окно политики", staff_leave = "�ажмите зде�ь чтобы разрешить �отрудникам покидать кабинеты и идти туда где нужна их помощь", diag_procedure = "Е�ли доктор уверен в �воем диагнозе менее, чем значение «Отправить домой», пациент будет отправлен домой. Е�ли же шан�ы выше чем «Диагноз наугад», он будет отправлен на лечение. В о�тальных �луча�х потребует�� ваше решение", staff_rest = "�а�колько у�талым должен быть �отрудник, чтобы получить право на отдых", staff_stay = "�ажмите зде�ь чтобы �отрудники о�тавали�ь в тех кабинетах, где вы их по�тавили", }, bank_manager = { graph = "График ожидаемых выплат от %s", close = "Закрыть окно", hospital_value = "Текуща� �тоимо�ть го�питал� вме�те �о в�ем оборудованием", graph_return = "Вернуть�� назад", current_loan = "Размер текущего займа", borrow_5000 = "Зан�ть у банка 5000$", balance = "Ваш балан�", interest_payment = "Ежеме��чные выплаты по займу", inflation_rate = "Размер инфл�ции за год", interest_rate = "Годовой процент по займу", repay_5000 = "Отдать банку 5000$", show_graph = "Показать график ожидаемых выплат от %s", insurance_owed = "Сколько денег вам должны %s", }, casebook = { sent_home = "Количе�тво пациентов, которым было отказано в лечении", increase = "Подн�ть �тоимо�ть", decrease = "Снизить �тоимо�ть", up = "Вверх", down = "Вниз", reputation = "Обща� репутаци� �той практики", research = "�ажмите зде�ь, чтобы �о�редоточить у�или� из пункта 'Специализаци�' на �кране и��ледований на и��ледование �того заболевани�", close = "Закрыть", earned_money = "В�его заработано на �том", deaths = "Количе�тво летальных и�ходов", cured = "Количе�тво вылеченных", treatment_charge = " Стоимо�ть дл� пациентов", cure_type = { psychiatrist = "Это лечит п�ихиатр", drug_percentage = "От �того е�ть лекар�тво. Ваше �ффективно на %d%", machine = "Дл� лечени� нужно �пециальное оборудование", surgery = "Лечение требует операции", drug = "Это лечение будет и�пользовать лекар�тво", unknown = "Вы в�е ещё не знаете как лечить �то заболевание", }, cure_requirement = { possible = "Вы можете �то вылечить", not_possible = "Вы в�е ещё не можете �править�� � �тим лечением", build_room = "Вам нужно по�троить �пециальный кабинет дл� лечени�", build_ward = "Вам необходимо по�троить Палату дл� проведени� �того лечени�", research_machine = "Дл� лечени� нужно изобре�ти аппарат", hire_staff = "Вам нужно нан�ть �пециали�та дл� лечени�", hire_surgeon = "Вы должны нан�ть второго Хирурга дл� проведени� операции", hire_staff_old = "Вам нужно нан�ть %s дл� проведени� �того лечени�", hire_surgeons = "Дл� проведени� операций вам нужно нан�ть двух Хирургов", ward_hire_nurse = "Вам нужна Мед�е�тра дл� работы в Палате дл� проведени� �того лечени�", }, }, status = { over = { staff_happiness = "Ваш �редний уровень �ча�ть� �отрудников должен быть выше %d%. Сейча� он �о�тавл�ет %d%", patient_happiness = "Ваш �редний уровень �ча�ть� пациентов должен быть выше %d%. Сейча� он �о�тавл�ет %d%", }, under = { staff_happiness = "Ваш �редний уровень �ча�ть� �отрудников должен быть не ниже чем %d%. Сейча� он �о�тавл�ет %d%", patient_happiness = "Ваш �редний уровень �ча�ть� пациентов должен быть не ниже чем %d%. Сейча� он �о�тавл�ет %d%", }, population_chart = "Показывает �оотношение чи�ла по�етителей в разных больницах", percentage_cured = "Вам нужно вылечить %d% в�ех по�етителей. �а данный момент вам удало�ь вылечить %d%", num_cured = "Вам нужно вылечить %d людей. Пока вам удало�ь и�целить %d", thirst = "Средний уровень жажды людей в больнице", close = "Закрыть окно", win_progress_own = "Показать у�пехи вашей больницы", reputation = "Ваша репутаци� должна до�тигать %d. Сейча� она �о�тавл�ет %d", population = "Добейте�ь чтобы к вам приходили лечить�� %d%% в�ех пациентов", warmth = "Средн�� температура по больнице", percentage_killed = "По�тарайте�ь не убивать более чем %d%% по�етителей. �а данный момент вы угробили %d%%", balance = "�а вашем �чету должно быть не менее %d$. Сейча� у ва� %d$", value = "Ваша больница должна �тоить %d$. Сейча� она �тоит %d$", win_progress_other = "Показать как идут дела у %s", happiness = "Общее �о�то�ние пациентов в вашей больнице", }, build_room_window = { cost = "Цена выбранного кабинета", room_classes = { treatment = "Показать процедурные кабинеты", diagnosis = "Показать комнаты дл� диагно�тики", facilities = "Показать �лужебные помещени�", clinic = "Показать �пециализированные кабинеты дл� лечени�", }, close = "�ичего не �троить и вернуть�� к игре", }, hire_staff_window = { prev_person = "Предыдущий кандидат", cancel = "Отмена", psychiatrist = "П�ихиатр", surgeon = "Хирург", researcher = "И��ледователь", salary = "Зарплата", next_person = "Следующий кандидат", nurses = "По�мотреть мед�е�тер", handymen = "По�мотреть рабочих", doctors = "По�мотреть докторов", receptionists = "По�мотреть реги�траторов", doctor_seniority = "�вторитет (Студент, Доктор, Кон�ультант)", hire = "�ан�ть", qualifications = "Дополнительные дипломы доктора", staff_ability = "Компетентно�ть", }, place_objects_window = { confirm = "Подтвердить", cancel = "Отмена", pick_up = "Подн�ть объект", buy_sell = "Купить/продать", }, rooms = { ultrascan = "Доктор об�ледует пациентов при помощи ультра�канера", research_room = "И��ледователи придумывают новые лекар�тва и аппараты в и��ледователь�ком отделе", fracture_clinic = "Зде�ь мед�е�тра �нимает гип� � пациентов �о �ломанными ко�т�ми", gps_office = "У терапевта пациенты начинают диагно�тику, и зде�ь же им �ообщают неутешительные результаты", inflation = "При помощи надувател� доктор лечит пациентов � раздутой головой", staffroom = "В комнате пер�онала доктора и мед�е�тры отдыхают и набирают�� �ил", jelly_vat = "При помощи �пециального аппарата доктор лечит ожеление", scanner = "Доктор и�пользует �канер дл� диагно�тики пациентов", decontamination = "При помощи обеззараживающего душа доктор лечит облученных пациентов", pharmacy = "В аптеке мед�е�тра раздает больным медикаменты", cardiogram = "Доктор �нимает кардиограмму дл� диагно�тики пациентов", ward = "Палата и�пользует�� как дл� диагно�тики, так и дл� лечени�. Зде�ь пациенты готов�т�� к операции под наблюдением мед�е�тры", training_room = "В лекционной кон�ультант может обучать других докторов", operating_theatre = "В операционной работают �разу два хирурга", psychiatry = "Зде�ь квалифицированный п�ихиатр об�ледует пациентов и вправл�ет мозги �амым �ума�шедшим", hair_restoration = "При помощи оволо�ител� доктор лечит плешиво�ть", tongue_clinic = "При помощи �зыкорезки доктор подрезает длинные �зыки", dna_fixer = "Зде�ь доктор лечит пациентов � инопланетной Д�К", general_diag = "Зде�ь доктор проводит общий о�мотр пациентов. Дешево и �ердито", toilets = "По�тройте туалеты, е�ли не хотите чтобы пациенты загадили вам в�ю больницу", electrolysis = "При помощи �лектролизатора доктор лечит воло�ение", x_ray = "Доктор и�пользует рентген дл� диагно�тики пациентов", blood_machine = "Доктор и�пользует анализатор крови дл� диагно�тики пациентов", }, machine_window = { repair = "Вызвать рабочего дл� ремонта", name = "�азвание", close = "Закрыть", times_used = "Количе�тво и�пользований", status = "Со�то�ние", replace = "Заменить аппарат", }, patient_window = { graph = "Щелкните чтобы увидеть и�торию лечени� или график график �амочув�тви�", casebook = "По�мотреть �тати�тику по болезни", close = "Закрыть", queue = "По�мотреть очередь", happiness = "Самочув�твие пациента", warmth = "Согрето�ть пациента", center_view = "Центрировать �кран на пациенте", thirst = "Уровень жажды пациента", send_home = "Вы�тавить из больницы", abort_diagnosis = "Отправить на лечение немедленно, не дожида��ь окончани� диагно�тики", }, staff_window = { ability = "Компетентно�ть", center_view = "Лева� кнопка - центрировать �кран, права� - выбрать �ледующего �отрудника", close = "Закрыть окно", doctor_seniority = "�вторитет (Студент, Доктор, Кон�ультант)", face = "Портрет - нажмите, чтобы перейти к �крану управлени� пер�оналом", happiness = "�а�троение", name = "Им�", pick_up = "Вз�ть", psychiatrist = "П�ихиатр", researcher = "И��ледователь", sack = "Уволить", salary = "Ежеме��чна� зарплата", skills = "О�обые умени�", surgeon = "Хирург", tiredness = "Запа� �ил", }, queue_window = { end_of_queue = "Перетащите пациента на �тот значок, чтобы переме�тить его в конец очереди", num_entered = "Количе�тво пациентов, по�етивших кабинет", close = "Закрыть запро�", num_in_queue = "Количе�тво пациентов в очереди", num_expected = "Количе�тво пациентов, направленных �юда из реги�тратуры", front_of_queue = "Перетащите пациента на �тот значок, чтобы переме�тить его в начало очереди", dec_queue_size = "Уменьшить мак�имальный размер очереди", max_queue_size = "Мак�имальный размер очереди в реги�тратуру", inc_queue_size = "Увеличить мак�имальный размер очереди", patient = "Перетащите пациента в нужное ме�то очереди. Щелкните на пациенте правой кнопкой, чтобы отправить его домой или в другую больницу", patient_dropdown = { send_home = "Выгнать пациента из больницы", hospital_2 = "�аправить пациента в другую больницу", reception = "Отправить в реги�тратуру", hospital_1 = "�аправить пациента в другую больницу", hospital_3 = "�аправить пациента в другую больницу", }, }, jukebox = { rewind = "Предыдуща� дорожка", loop = "Повтор�ть текущую дорожку", stop = "О�тановить", close = "Закрыть", current_title = "Текуща� дорожка", play = "Во�произве�ти", fast_forward = "Следующа� дорожка", }, graphs = { deaths = "Показать/�крыть умерших", close = "Закрыть окно", scale = "Ма�штаб графика", money_out = "Показать/�крыть ра�ходы", visitors = "Показать/�крыть по�етителей", wages = "Показать/�крыть зарплаты", balance = "Показать/�крыть балан�", money_in = "Показать/�крыть доход", cures = "Показать/�крыть вылеченных", reputation = "Показать/�крыть репутацию", }, message = { button = "Щелкните, чтобы открыть �ообщение", button_dismiss = "Щелкните левой кнопкой, чтобы про�мотреть �ообщение, правой - чтобы отклонить его", }, pay_rise_window = { accept = "Повы�ить зарплату", decline = "Отказать в повышении зарплаты", }, custom_game_window = { start_game_with_name = "Загрузить уровень %s", load_selected_level = "Старт", choose_game = "�ажмите на уровень, чтобы узнать про него больше.", load_selected_level = "Загрузите и играйте в выбранный уровень", free_build = "Отметьте тут, е�ли вы хотите играть без денег и у�ловий победы и поражени�", }, watch = { emergency = "Чрезвычайное прои�ше�твие: врем�, о�тавшее�� на лечение �рочных пациентов.", hospital_opening = "Врем� на по�тройку: по и�течении �того времени больница будет открыта. Е�ли вы хотите открыть больницу уже �ейча�, нажмите зеленую кнопку.", epidemic = "Эпидеми�: врем� на о�тановку �пидемии. Когда врем� закончит�� или зараженный пациент покинет больницу, приедет ин�пектор. Кнопка включает/отключает режим вакцинации. Щелкните на пациенте, и мед�е�тра введет ему вакцину.", }, calls_dispatcher = { assigned = "Это окошко отмечено, е�ли кому-то при�воено �оответ�твующее задание.", task = "Спи�ок заданий - нажмите на задание, чтобы открыть окно назначенного пер�онала и прокрутить до ра�положени� задачи", close = "Закрыть окно ди�петчера", }, machine_menu = { sort = "�ажмите, чтобы от�ортировать �пи�ок по �тому значению.", machine = "Спи�ок аппаратов - нажмите на запи�ь, чтобы открыть �оответ�твующее окно и показать аппарат на карте", smoking = "Это окошко отмечено, е�ли аппарат �коро �ломает��.", assigned = "Это окошко отмечено, е�ли разнорабочий назначен на починку аппарата.", remaining_strength = "Это поле отображает о�таток прочно�ти аппарата", total_strength = "Это поле отображает полную прочно�ть аппарата", ratio = "Это значение показывает �оотношение о�тавшей�� прочно�ти и мак�имальной прочно�ти.", close = "Закрыть меню аппаратов", header = { smoking = "Индикатор тревоги", assigned = "Индикатор назначени�", machine = "�азвание аппарата", remaining_strength = "О�таток прочно�ти аппарата.", total_strength = "Полна� прочно�ть аппарата.", status = "Со�то�ние аппарата.", ratio = "Процентное �оотношение о�тавшей�� прочно�ти к мак�имальной прочно�ти аппарата.", }, }, information = { close = "Закрыть информационное окно", }, lua_console = { textbox = "Введите �юда код, напи�анный на Lua", execute_code = "Запу�тить код", close = "Закрыть кон�оль", }, research = { cure_dec = "Понизить приоритет и��ледований оборудовани� лечени�", cure_inc = "Повы�ить приоритет и��ледований оборудовани� лечени�", diagnosis_dec = "Понизить приоритет и��ледований оборудовани� диагно�тики", diagnosis_inc = "Повы�ить приоритет и��ледований оборудовани� диагно�тики", drugs_dec = "Понизить приоритет и��ледований лекар�тв", drugs_inc = "Повы�ить приоритет и��ледований лекар�тв", specialisation_dec = "Понизить приоритет и��ледований �пециализации", specialisation_inc = "Повы�ить приоритет и��ледований �пециализации", improvements_dec = "Понизить приоритет и��ледований улучшений", improvements_inc = "Повы�ить приоритет и��ледований улучшений", allocated_amount = "Выделенные ре�ур�ы", close = "Закрыть �кран и��ледований", }, statement = { close = "Закрыть �кран балан�а", }, buy_objects_window = { confirm = "Купить предмет(ы)", cancel = "Отмена", increase = "Купить на один предмет больше", total_value = "Обща� �умма покупки", price = "Стоимо�ть предмета", decrease = "Купить на один предмет меньше", }, fax = { close = "Закрыть окно, не удал�� �ообщение", }, window_general = { confirm = "Подтвердить", cancel = "Отмена", }, adviser_history = { header = { message = "Сообщени� �оветника.", delete_message = "�ажмите, чтобы удалить в�е �ообщени�.", }, delete_message = "�ажмите, чтобы закрыть �то �ообщение.", message = "Спи�ок �ообщений �оветника — �амые новые �ообщени� отображают�� первыми.", close = "Закрыть окно и�тории �оветника.", }, } -- 2. Игровое меню и панель ин�трументов menu = { file = " Файл", player_count = "Кол-во игроков", options = " Опции", charts = " Отчеты", display = " Отображение ", debug = " Отладка ", } menu_file = { save = " (%1%) Сохранить", load = " (%1%) Загрузить", restart = " (%1%) �ачать заново", quit = " (%1%) Выйти в главное меню", } menu_options = { game_speed = " Скоро�ть игры", sound_vol = " Громко�ть звука", music_vol = " Громко�ть музыки", edge_scrolling = " Прокрутка мышью", announcements = " (%1%) Сообщени�", lock_windows = " �е двигать окна", settings = " �а�тройки", sound = " (%1%) Звуки", announcements_vol = " Громко�ть �ообщений", music = " (%1%) Музыка", autosave = " �вто�охранение", jukebox = " (%1%) Музыкальный автомат", twentyfour_hour_clock = " 24-х ча�овой формат времени ", wage_increase = " Запро�ы о повышении ЗП ", warmth_colors = " Цвета отоплени� ", adviser_disabled = " (%1%) Советник ", capture_mouse = " Прив�зка мышки ", } menu_options_game_speed = { pause = " (%1%) Пауза", slowest = " (%1%) Черепашь�", slower = " (%1%) Медленна�", normal = " (%1%) Обычна�", max_speed = " (%1%) Бы�тра�", and_then_some_more = " (%1%) Еще бы�трее", } menu_options_wage_increase = { grant = " Повышать ЗП ", deny = " Увольн�ть ", } menu_charts = { statement = " (%1%) Балан� банка", casebook = " (%1%) Лабораторный журнал", policy = " (%1%) Политика", research = " (%1%) И��ледовани�", graphs = " (%1%) Графики", staff_listing = " (%1%) Спи�ок �отрудников", bank_manager = " (%1%) Управл�ющий банка", status = " (%1%) Со�то�ние", town_map = " (%1%) Карта города ", machine_menu = " (%1%) Меню аппаратов ", adviser_history = " (%1%) И�тори� �ообщений �оветника", briefing = " Ин�труктаж", } menu_file_load = { [1] = " ИГР� 1 ", [2] = " ИГР� 2 ", [3] = " ИГР� 3 ", [4] = " ИГР� 4 ", [5] = " ИГР� 5 ", [6] = " ИГР� 6 ", [7] = " ИГР� 7 ", [8] = " ИГР� 8 ", } menu_file_save = { [1] = " ИГР� 1 ", [2] = " ИГР� 2 ", [3] = " ИГР� 3 ", [4] = " ИГР� 4 ", [5] = " ИГР� 5 ", [6] = " ИГР� 6 ", [7] = " ИГР� 7 ", [8] = " ИГР� 8 ", } menu_display = { shadows = " ТЕ�И ", mcga_lo_res = " MCGA �ИЗ. Р�ЗРЕШЕ�ИЕ ", high_res = " ВЫСОКОЕ Р�ЗРЕШЕ�ИЕ ", } menu_player_count = { players_1 = " 1 Игрок ", players_4 = " 4 Игрока ", players_2 = " 2 Игрока ", players_3 = " 3 Игрока ", } information = { custom_game = "Добро пожаловать в CorsixTH. Удачи на �той пользователь�кой карте!", no_custom_game_in_demo = "Извините, но в демо-вер�ии нельз� играть в пользователь�кие уровни.", cannot_restart = "К �ожалению, �та игра была �охранена до того, когда функци� перезапу�ка игры была введена.", very_old_save = "Прошло много обновлений � тех пор, когда �тот уровень был начат. Чтобы убедить��, что в�е функции работают как положено, перезапу�тите уровень.", level_lost = { "Облом Обломович! Вы провалили уровень. Удачи в �ледующий раз!", "Причина, по которой уровень был провален:", reputation = "Ваша репутаци� упала ниже %d.", balance = "Ваш балан� упал ниже %d.", percentage_killed = "Вы убили больше, чем %d процентов пациентов.", cheat = "�адеем��, вы не нажали на �ту кнопку по �лучайно�ти!", staff_happiness = "Ваш �редний уровень �ча�ть� �отрудников опу�тил�� ниже %d%.", patient_happiness = "Ваш �редний уровень �ча�ть� пациентов опу�тил�� ниже %d%.", }, cheat_not_possible = "�ельз� и�пользовать �тот чит на �том уровне.", } install = { title = "--------------------------------- У�тановка CorsixTH ---------------------------------", th_directory = "CorsixTH дл� нормальной работы требует�� оригинальна� у�тановленна� игра Theme Hospital. �ажмите кнопку и выберите папку, в которую у�тановлена оригинальна� игра.", exit = "Выход", ok = "OK", cancel = "Отмена", } dynamic_info = { patient = { emergency = "Чрезвычайна� �итуаци�: %s", guessed_diagnosis = "Диагноз нав�кидку: %s ", diagnosis_progress = "Проце�� диагно�тики", actions = { sent_to_other_hospital = "Отправлен в другую больницу", prices_too_high = "У ва� �лишком дорого, - � иду домой", no_gp_available = "Ждет по�тройки кабинета терапевта", waiting_for_treatment_rooms = "Ждет по�тройки кабинета дл� лечени�", dying = "Умирает!", no_diagnoses_available = "Раз не знаете что �о мной, - � иду домой", epidemic_sent_home = "Отправлен домой ин�пектором", cured = "Вылечен!", waiting_for_diagnosis_rooms = "Ждет по�тройки диагно�тиче�кого кабинета", epidemic_contagious = "Заразный", awaiting_decision = "Ждет вашего решени�", sent_home = "Отправлен домой", fed_up = "Сыт по горло и уходит", no_treatment_available = "Раз не можете вылечить, - � иду домой", on_my_way_to = "Идет в %s", queueing_for = "Стоит в очереди в %s", epidemic_vaccinated = "Я больше не заразен", }, diagnosed = "По�тавлен диагноз: %s ", }, health_inspector = "Ин�пектор Здравоохранени�", vip = "Шишка", object = { times_used = "И�пользовано раз: %d", queue_size = "Длина очереди: %d", strength = "Прочно�ть: %d", queue_expected = "Ожидает�� очередь: %d", strength_extra_info = "Прочно�ть: %d (Можно обновить до %d)", }, staff = { actions = { going_to_repair = "Идет чинить %s", fired = "Уволен", waiting_for_patient = "Ждет пациента", wandering = "Слон�ет�� без дела", heading_for = "Идет в %s", vaccine = "Вакцинаци� пациента", }, tiredness = "У�тало�ть", psychiatrist_abbrev = "П�их.", ability = "Спо�обно�ть", }, } handyman_window = { all_parcels = "В�е уча�т.", parcel = "Уча�ток", } font_location_window = { caption = "Выберите шрифт (%1%)", } staff_title = { junior = "Интерн", psychiatrist = "П�ихиатр", consultant = "Кон�ультант", surgeon = "Хирург", doctor = "Доктор", researcher = "И��ледователь", nurse = "Мед�е�тра", receptionist = "Реги�тратор", general = "Общий", } misc = { hospital_open = "Открыть больницу", save_success = "Игра у�пешно �охранена", save_failed = "Ошибка: не удало�ь �охранить игру", low_res = "�изкое разрешение", no_heliport = "Либо заболевани� не обнаружены, либо на �той карте нет вертолетной площадки.", grade_adverb = { extremely = "�к�тремально", mildly = "�редне", moderately = "умеренно", }, not_yet_implemented = "(еще не реализовано)", send_message = "Отправить �ообщение игроку %d", out_of_sync = "Ра��инхронизаци� игры", balance = "Файл балан�а:", load_failed = "Сохранение не загружено", mouse = "Мышь", done = "Готово", force = "У�корение", pause = "Пауза", send_message_all = "Отправить �ообщение в�ем игрокам", cant_treat_emergency = "Ваша больница не может лечить �ту чрезвычайную �итуацию, потому что ее заболевание не было обнаружено.", epidemics_off = "Эпидемии отключены", epidemics_on = "Эпидемии заново включены", earthquakes_off = "Землетр��ени� отключены", earthquakes_on = "Землетр��ени� заново включены", epidemic_no_icon_to_toggle = "�е получает�� показать/�пр�тать значки �пидемий, так как �пидемии нет.", epidemic_no_diseases = "�е получает�� �оздать �пидемию - нет болезней, дл� которых можно было бы при�воить �пидемию.", epidemic_no_receptionist = "�е получает�� �оздать �пидемию - нет �тойки реги�трации � �отрудником.", invulnerable_machines_on = "Техника больше не будет изнашивать�� и выходить из �тро�.", invulnerable_machines_off = "Техника �нова �о временем будет изнашивает�� и выходить из �тро�.", } errors = { dialog_missing_graphics = "Сожалеем, но файлы демо вер�ии не �одержат �тот диалог.", save_prefix = "Ошибка �охранени� игры: ", load_prefix = "Ошибка загрузки игры: ", load_map_prefix = "Ошибка во врем� загрузки карты: ", load_level_prefix = "Ошибка во врем� загрузки уровн�: ", no_games_to_contine = "�ет �охраненных игр", load_quick_save = "Ошибка, не удало�ь загрузить бы�трое �охранение, так как оно не �уще�твовало, но мы �оздали дл� Ва� новое!", map_file_missing = "�е найден файл карты %s дл� �того уровн�!", minimum_screen_size = "Размер �крана не должен быть менее, чем %dx%d.", maximum_screen_size = "Мак�имальный размер �крана не должен превышать 3000x2000.", unavailable_screen_size = "У�тановленный размер �крана не поддерживает�� в полно�кранном режиме.", alien_dna = "По��нение: не �уще�твует анимации как инопланетные пациенты �ид�т, открывают или �тучат�� в дверь и т.п. В оригинальной Theme Hospital они при �том превращали�ь в обычного пациента и потом обратно. пациенты � инопланетной Д�К будут до�тупны только е�ли они разрешены в файле � уровнем.", fractured_bones = "По��нение: анимаци� пациентов �о �ломанными ко�т�ми жен�кого пола плоха�", could_not_load_campaign = "Сбой при загрузке кампании: %s", could_not_find_first_campaign_level = "�е удало�ь найти первый уровень в �той кампании: %s", save_to_tmp = "Файл в %s не может быть и�пользован. Игра была �охранена в %s. Ошибка: %s", dialog_empty_queue = "Извините, у пер�онажа только что была пу�та� очередь дей�твий, то е�ть он не знал, что делать дальше. Пожалуй�та, прочитайте окно командной �троки дл� получени� подробной информации. Диалог � проблемным гуманоидом был открыт. Хотите ли вы, чтобы он покинул больницу?", music = "Возникли проблемы � во�произведением одного или не�кольких файлов в вашей папке � музыкой. Проблемные файлы будут отключены. Дополнительную информацию читайте в окне кон�оли.", compatibility_error = { new_in_old = "Извините, �то �охранение было �оздано в более новой вер�ией CorsixTH и не�овме�тимо. Пожалуй�та, обновите до более поздней вер�ии.", demo_in_full = "Извините, но вы не можете открыть �охранение из демо-вер�ии пока загружены файлы полной вер�ии. Пожалуй�та, обновите ме�тоположение файлов Theme Hospital в на�тройках.", full_in_demo = "Извините, но вы не можете открыть �охранение из полной вер�ии пока загружены файлы демо-вер�ии. Пожалуй�та, обновите ме�тоположение файлов Theme Hospital в на�тройках.", }, missing_corsixth_file = "Предупреждение: �е найден файл %s, попробуйте переу�тановить CorsixTH", missing_th_data_file = "Предупреждение: �е найден файл %s, файлы данных Theme Hospital неполные", missing_level_file = "Ошибка: �е удало�ь найти указанный файл уровн�.", overlay = { incorrect_difficulty = "Сложно�ть в оверлее должна быть easy, full или hard. Текущее значение ", incorrect_level_number = "�омер уровн� в оверлее должен быть от 1 до 12. Текущее значение ", missing_setting = "Сложно�ть и номер уровн� не были указаны в оверлее дл� дополнительного уровн�", }, cannot_restart_missing_files = "Извините, но уровень не может быть начат заново, так как от�ут�вуют файлы %s или %s.", } hotkeys_file_err = { file_err_01 = " �е удает�� загрузить файл hotkeys.txt. Пожалуй�та, убедите�ь, что у CorsixTH е�ть разрешение на чтение/запи�ь. ", file_err_02 = " , или и�пользуйте параметр командной �троки --hotkeys-file=filename, чтобы указать файл, до�тупный дл� запи�и. Дл� �правки, ошибка при загрузке файла гор�чих клавиш была: ", } map_editor_window = { pages = { paste = "Разме�тить объекты", delete_wall = "Удаление �тен", set_parcel = "Выбрать уча�ток по номеру", parcel = "Уча�ток %d", set_parcel_tooltip = "Выберите чи�ло и нажмите Enter", helipad = "Верт. Площадка", pond = "Пруд", foliage = "Ра�тительно�ть", road = "Дорога", inside = "Пол", west_wall = "Западные �тены", north_wall = "Северные �тены", hedgerow = "Изгородь", outside = "Тропы", camera_1 = "Камера 1", camera_2 = "Камера 2", camera_3 = "Камера 3", camera_4 = "Камера 4", heliport_1 = "Верт. Площадка 1", heliport_2 = "Верт. Площадка 2", heliport_3 = "Верт. Площадка 3", heliport_4 = "Верт. Площадка 4", }, checks = { spawn_points_and_path = "Внимание: Пациенты не �могут войти в больницу. Им нужен путь от кра� карты до дверь больницы, вы�троенный из вкладок 'Дорога' или 'Тропы' в редакторе карт.", }, } -- 3. Отчеты staff_list = { morale = "Мораль", tiredness = "Бодро�ть", skill = "Компетентно�ть", total_wages = "ВСЕГО З�РПЛ�ТЫ", } bank_manager = { current_loan = "Текущий заем", balance = "Балан�", interest_payment = "Выплачиваемый процент", hospital_value = "Стоимо�ть го�питал�", interest_rate = "Процентна� �тавка", inflation_rate = "Уровень инфл�ции", insurance_owed = "Выплаты �траховщиков", statistics_page = { balance = "Балан�", details = "Причина", date = "Дата", current_balance = "Текущий балан�", money_in = "Приход", money_out = "Ра�ход", }, } transactions = { severance = "Выходное по�обие", research = "Финан�ирование и��ледований", eoy_trophy_bonus = "Приз по итогам года", buy_object = "Покупка", cure_colon = "Лечение:", wages = "Выплата зарплат", personal_bonus = "Выплата премии", drug_cost = "Покупка лекар�тв", heating = "Счет за отопление", treat_colon = "Об�ледование:", hire_staff = "Прием на работу", bank_loan = "Заем у банка", insurance_colon = "Страховка:", sell_object = "Продажа", loan_interest = "Выплата процента по займу", loan_repayment = "Возврат по займу", buy_land = "Покупка уча�тка", machine_replacement = "Замена аппарата", build_room = "По�тройка", drinks = "Продажа напитков", cure = "Вылечено", eoy_bonus_penalty = "Призы/�аказани� в конце года", cheat = "Чит � деньгами", general_bonus = "Оплата Главной премии", emergency_bonus = "Оплата премии за чрезвычайные �лучаи", epidemy_coverup_fine = "Штраф за �окрытие �пидемий", research_bonus = "Преми� и��ледований", final_treat_colon = "Окончательное лечение: ", jukebox = "Вход�щее: музыкальный автомат", vaccination = "Вакцинаци�", vip_award = "Денежна� преми� от VIP", epidemy_fine = "Штраф за �пидемию", compensation = "Компен�аци� от Правитель�тва", deposit = "Депозит на лечение", advance_colon = "Дополнительно: ", overdraft = "Проценты по кредиту", remove_room = "Удалите разрушенную комнату", } town_map = { number = "�омер уча�тка", not_for_sale = "�е продает��", price = "Цена уча�тка", for_sale = "Продает��", owner = "Владелец уч-ка", area = "Площадь уч-ка", chat = "Окно детализации города", } high_score = { categories = { deaths = "Пациентов угроблено", total_value = "Обща� �тоимо�ть", money = "Самый богатый", cures = "Пациентов вылечено", visitors = "Количе�тво по�етителей", salary = "Размер зарплаты", clean = "Чи�тота", patient_happiness = "Удовлетворенно�ть пациентов", cure_death_ratio = "Соотношение убитых и вылеченных", staff_happiness = "Удовлетворенно�ть пер�онала", staff_number = "Самое большое количе�тво пер�онала", }, player = "ИГРОК", pos = "ПОЗ", best_scores = "З�Л СЛ�ВЫ", killed = "Убито", worst_scores = "З�Л ПОЗОР�", score = "ОЧКИ", } research = { allocated_amount = "Ра�пределенное количе�тво", funds_allocation = "Ра�пределение финан�ировани�", categories = { improvements = "Улучшени�", drugs = "И��ледование лекар�тв", diagnosis = "Диагно�тиче�кое оборудование", cure = "Оборудование дл� лечени�", specialisation = "Специализаци�", }, } policy = { header = "Политика больницы", diag_termination = "Длительно�ть об�ледовани�", sliders = { guess = "Диагноз наугад", send_home = "Отправить домой", stop = "Прекратить", staff_room = "Идти отдыхать", }, diag_procedure = "Процедура об�ледовани�", staff_rest = "Отправл�ть пер�онал отдыхать", staff_leave_rooms = "Покидать кабинеты", } casebook = { sent_home = "Отправлено домой", deaths = "Жертвы", treatment_charge = "Взимаема� плата", reputation = "Репутаци�", research = "Со�редоточить и��ледовани�", cure = "Лекар�тво", cured = "Вылечено", earned_money = "Денег получено", cure_desc = { hire_surgeons = "Вам необходимо нан�ть хирургов.", improve_cure = "Улучшить лечение.", no_cure_known = "�ет изве�тного лечени�.", build_room = "Я рекомендую вам по�троить %s", hire_psychiatrists = "Вы должны нан�ть п�ихиатра.", build_ward = "Вам по прежнему нужно по�троить Палату.", hire_nurses = "Вам нужно нан�ть мед�е�тер.", cure_known = "Вылечен.", hire_doctors = "Вам нужно нан�ть докторов.", }, } progress_report = { quite_unhappy = "Люди вами недовольны", header = "Отчет об у�пехах", very_unhappy = "Люди ва� не люб�т. Удел�йте им больше внимани�", more_drinks_machines = "Пациенты умирают от жажды. По�тавьте автоматы � напитками", too_cold = "У ва� �лишком холодно, по�тавьте еще батарей", too_hot = "�а�тройте �и�тему отоплени�, у ва� �лишком жарко", percentage_pop = "Дол� клиентов", win_criteria = "У�лови� дл� победы", free_build = "Свободное �троитель�тво", } -- 4. Другие окна -- 4.1 Строитель�тво и об�тановка build_room_window = { pick_room_type = "Выберите тип кабинета", pick_department = "Выберите кабинет", cost = "Стоимо�ть: ", } room_classes = { diagnosis = "Диагно�тика", treatment = "Процедуры", clinics = "Лечение", facilities = "Служебные комнаты", } rooms_short = { gps_office = "Кабинет терапевта", general_diag = "Обща� диагно�тика", ultrascan = "Ультра�канер", research_room = "И��ледователь�кий отдел", fracture_clinic = "Лечение переломов", destroyed = "Разрушено", staffroom = "Комната отдыха", jelly_vat = "Лечение ожелени�", scanner = "Сканер", decontamination = "Обеззараживание", pharmacy = "�птека", cardiogram = "Кардиографи�", reception = "Реги�тратура", training_room = "Лекционна�", corridor_objects = "Об�тановка коридоров", operating_theatre = "Операционна�", dna_fixer = "И�правление Д�К", ward = "Палата", psychiatric = "П�ихиатри�", hair_restoration = "Во��тановление воло�", inflation = "�адувание", tongue_clinic = "Языкорезка", toilets = "Туалет", electrolysis = "Электротерапи�", x_ray = "Рентген", blood_machine = "�нализатор крови", } rooms_long = { ultrascan = "Кабинет ультра�канировани�", research_room = "И��ледователь�кий отдел", general = "Общий", gps_office = "Кабинет терапевта", inflation = "Кабинет надувани�", staffroom = "Комната отдыха", jelly_vat = "Кабинет лечени� ожелени�", scanner = "Кабинет �канировани�", emergency = "Реанимаци�", decontamination = "Кабинет обеззараживани�", corridors = "Коридоры", cardiogram = "Кабинет кардиографии", ward = "Палата", training_room = "Лекционна� комната", psychiatric = "Кабинет п�ихиатра", operating_theatre = "Операционна�", dna_fixer = "Кабинет и�правлени� Д�К", tongue_clinic = "Кабинет обрезани� �зыка", hair_restoration = "Кабинет во��тановлени� воло�", general_diag = "Обща� диагно�тика", pharmacy = "�птека", fracture_clinic = "Кабинет лечени� переломов", toilets = "Туалет", electrolysis = "Кабинет �лектротерапии", x_ray = "Рентген-кабинет", blood_machine = "Кабинет анализа крови", } buy_objects_window = { price = "Стоимо�ть: ", choose_items = "Выберите предметы", total = "Итого: ", } object = { chair = "Стул", litter = "Му�ор", sofa = "Диван", operating_table = "Операционный �тол", bench = "Скамь�", scanner = "Сканер", couch = "Кушетка", blood_machine = "�нализатор крови", video_game = "Видеоигра", op_sink2 = "Раковина", door = "Дверь", auto_autopsy = "�втов�крывалка", reception_desk = "Реги�тратура", hair_restorer = "Оволо�итель", projector = "Проектор", crash_trolley = "Скора� тележка", tv = "Ящик", ultrascanner = "Ультра�канер", surgeon_screen = "Хирургиче�ка� ширма", litter_bomb = "Му�орна� бомба", inflator = "�адуватель", desk = "Пи�ьменный �тол", pool_table = "Биль�рд", x_ray_viewer = "�егато�коп", radiation_shield = "Защита от излучени�", bed = "Койка", swing_door2 = "Дву�творчата� дверь", console = "Кон�оль", op_sink1 = "Раковина", bookcase = "Книжный шкаф", drinks_machine = "�втомат � газировкой", comfortable_chair = "Удобное кре�ло", skeleton = "Скелет", computer = "Компьютер", bin = "Корзина дл� му�ора", pharmacy_cabinet = "�птечный шкаф", radiator = "Батаре�", cast_remover = "Разгип�ователь", atom_analyser = "�томный анализатор", plant = "Ра�тение", jelly_moulder = "Форма дл� желе", cardio = "Бегова� дорожка", toilet = "Туалет", electrolyser = "Электролизатор", fire_extinguisher = "Огнетушитель", swing_door1 = "Дву�творчата� дверь", lecture_chair = "Лекционный �тул", screen = "Ширма", toilet_sink = "Раковина", shower = "Обеззараживающий душ", gates_of_hell = "Врата в ад", slicer = "Языкорезка", dna_fixer = "И�правитель Д�К", x_ray = "Рентген", cabinet = "Картотека", lamp = "Лампа", entrance_left = "Лева� входна� дверь", table2 = "Стол", bed2 = "Кровать", bed3 = "Кровать", entrance_right = "Права� входна� дверь", table1 = "Стол", rathole = "�орка кры�ы", } room_descriptions = { gp = { [1] = "Кабинет терапевта//", [2] = "Это о�новной диагно�тиче�кий кабинет в вашей больнице. В�е новые пациенты приход�т �юда чтобы узнать, что � ними не так. От�юда они отправл�ют�� на дальнейшую диагно�тику или �разу на лечение. Вам может понадобить�� не�колько таких кабинетов, е�ли пациентов будет �лишком много. Чем про�торнее помещение, и чем больше в нем предметов, тем выше пре�тиж работающего зде�ь доктора. Впрочем, �то отно�ит�� ко в�ем кабинетам.//", [3] = "В кабинете терапевта может работать любой доктор.", }, general_diag = { [1] = "Обща� диагно�тика//", [2] = "Сюда направл�ют�� пациенты, которым требует�� дополнительна� диагно�тика. Зде�ь у врача значительно больше ин�трументов дл� об�ледовани�, чем у терапевта. Пациент вернет�� к терапевту � результатами об�ледовани� дл� по�тановки диагноза.//", [3] = "В кабинете общей диагно�тики может работать любой доктор.", }, ultrascan = { [1] = "Ультра�канер//", [2] = "Ультра�канер - �то практиче�ки вершина прогре��а диагно�тиче�кого оборудовани�. Он очень дорогой, но он того �тоит.//", [3] = "Ультра�канеру дл� полноценной работы требует�� доктор. Также, ему требует�� об�луживание.", }, fracture_clinic = { [1] = "Лечение переломов.//", [2] = "Сюда приход�т пациенты � поломанными ко�т�ми. И�пользу� мощный промышленный лазер, разгип�овочный аппарат �резает за�тывший гип�, что может вызывать незначительную агонию у пациента.//", [3] = "В �том кабинете работает мед�е�тра. Машине также требует�� ча�тый ремонт.", }, inflation = { [1] = "Кабинет надувани�//", [2] = "В кабинет надувани� направл�ют пациентов � вывод�щим из �тро� и очень болезненным недугом раздутой головы. Зде�ь их безразмерные черепа хлопнут и немедленно �нова надуют до точно ра��читанного нормального давлени�.//", [3] = "В кабинете надувани� может работать любой доктор. �ппарату требует�� регул�рный ремонт.", }, jelly_vat = { [1] = "Лечение ожелени�//", [2] = "Пациенты, �традающие забавной болезнью ожелени�, должны дотр��ти�ь до �того кабинета, где их поме�т�т в �пециальный бак. Медицин�ка� наука не знает, что там прои�ходит, но по�ле процедуры им �тановит�� лучше.//", [3] = "В �том кабинете может работать любой доктор. Вам также понадобит�� рабочий дл� об�луживани� аппаратов.", }, scanner = { [1] = "Сканер//", [2] = "При помощи �того �ложного оборудовани� можно по�тавить очень точный диагноз.//", [3] = "Со �канером может работать любой доктор. Это у�трой�тво требует регул�рного об�луживани�.", }, blood_machine = { [1] = "�нализатор крови//", [2] = "Этот аппарат раздел�ет кровь пациента на клетки и вы��н�ет что � ними не в пор�дке.//", [3] = "С анализатором крови может работать любой доктор. Это у�трой�тво требует регул�рного об�луживани�.", }, pharmacy = { [1] = "�птека//", [2] = "Пациенты, которым по�тавлен диагноз и пропи�ано лекар�тво, получают его в аптеке. По�кольку многие болезни излечивают�� медикаментами, �о временем тут может �тать те�новато, и вам понадобит�� еще одна аптека.//", [3] = "В аптеке работает мед�е�тра.", }, cardiogram = { [1] = "Кардиографи�//", [2] = "Зде�ь пациентов провер�ют на наличие болезней �ердца и провод�т �тре��-те�т на беговой дорожке. Затем � полученными результатами возвращают к терапевту.//", [3] = "В кардиографии может работать любой доктор. Беговой дорожке требует�� регул�рное об�луживание.", }, ward = { [1] = "Палата//", [2] = "Во врем� об�ледовани� пациенты �одержат�� зде�ь под наблюдением мед�е�тры. Также, тут они готов�т�� к операции.//", [3] = "В палате работает мед�е�тра.", }, psych = { [1] = "П�ихиатри�//", [2] = "Пациенты, �традающие от душевных недугов, должны по�етить кабинет п�ихиатра. Доктор об�ледует пациентов, и, е�ли у них не в�е в пор�дке � головой, предложит прилечь на кушетку и побе�едовать.//", [3] = "В �том кабинете может работать только �пециально обученный п�ихиатр.", }, staff_room = { [1] = "Комната пер�онала//", [2] = "По�ле т�желого рабочего дн�, ваши �отрудники могут по�етить �ту комнату, чтобы отдохнуть и ра��лабить��. У�талые медики тормоз�т, хот�т повышени� зарплаты и могут даже уволить��. Также, они начинают чаще ошибать��. Убедите�ь, что в вашей комнате до�таточно ме�та и развлечений дл� не�кольких человек �разу.", }, operating_theatre = { [1] = "Операционна�//", [2] = "В �том важном помещении излечивают целый р�д заболеваний. Операционна� должна быть про�торной и хорошо о�нащенной. Это очень важна� ча�ть любой больницы.//", [3] = "В операционной должны работать два квалифицированных хирурга.", }, training = { [1] = "Лекционна�//", [2] = "Ваши доктора могут повышать �вою квалификацию в �той комнате. Лектор � дипломом хирурга, п�ихиатра или и��ледовател� может научить �воих коллег в�ему, что знает. Те же, кто уже имеет диплом, зде�ь могут научить�� лучше примен�ть знани� на практике.//", [3] = "Читать лекции зде�ь может только кон�ультант.", }, dna_fixer = { [1] = "Во��тановление Д�К//", [2] = "Пациенты, имевшие не�ча�тье войти в контакт � пришельцами из других миров, должны пройти процедуру починки Д�К. По�кольку во��тановитель Д�К – аппарат �ложна� и вы�окотехнологична�, на�то�тельно рекомендуем разме�тить в кабинете огнетушитель, на в��кий пожарный.//", [3] = "Во��тановитель требует регул�рного об�луживани�. И работать � ним могут только доктора � дипломом и��ледовател�.", }, research = { [1] = "И��ледователь�кий отдел//", [2] = "Зде�ь �овершают�� открыти� и улучшают�� �уще�твующие лекар�тва и методы лечени�. Это очень полезный отдел, его работа творит чуде�а в деле улучшени� вашей �тати�тики.//", [3] = "В и��ледователь�ком отделе могут работать только доктора � дипломом и��ледовател�.", }, hair_restoration = { [1] = "Во��тановление воло�//", [2] = "Машина во��тановител� воло� – по�ледн�� надежда дл� пациентов, �традающих плешиво�тью в терминальной �тадии. При помощи �того аппарата доктор может бы�тро на�адить �овершенно новый воло��ной покров.//", [3] = "В кабинете оволо�ител� может работать любой доктор. Врем� от времени аппарату требует�� ремонт.", }, electrolysis = { [1] = "Комната �лектролиза//", [2] = "Больные оволо�ением направл�ют�� в �ту комнату, где �пециальный аппарат, называема� �лектролизатором, уничтожает излишние воло�ы и �лектриче�ки запаивает поры при помощи �о�тава, �ильно напоминающего цемент.//", [3] = "В кабинете �лектролиза может работать любой доктор. Машина также требует об�луживани�.", }, slack_tongue = { [1] = "Лечение длинного �зыка//", [2] = "Пациенты � �тим неутешительным диагнозом направл�ют�� в �ту комнату дл� лечени�. При помощи вы�окоточного оборудовани�, квалифицированный �пециали�т возвращает �зыку нормальные размер и форму, а пациенту – хорошее �амочув�твие.//", [3] = "Зде�ь может работать любой доктор. Машину также надо иногда чинить.", }, toilets = { [1] = "Туалет//", [2] = "Следу� зову природы, пациентам надо иногда облегчить�� в комфортной об�тановке ваших �анитарных помещений. Вы можете у�тановить дополнительные раковины и кабинки, е�ли ожидаете наплыва по�етителей. Иногда бывает полезно разме�тить дополнительные помещени� в разных ча�т�х больницы.", }, no_room = { [1] = "", }, x_ray = { [1] = "Рентген//", [2] = "Сделанные при помощи �пециального излучени� �нимки внутренно�тей пациентов помогают врачам у�тановить, что там не в пор�дке.//", [3] = "В кабинете рентгена может работать любой доктор. Также, аппарату требует�� об�луживание.", }, decontamination = { [1] = "Комната обеззараживани�//", [2] = "Пациенты, подвергшие�� воздей�твию радиации, незамедлительно направл�ют�� в комнату обеззараживани�. При�тный душ �моет � них в�ю ужа�ную радиацию и опа�ные отходы.//", [3] = "Оперировать душем может любой доктор. Также, аппарату требует�� об�луживание.", }, tv_room = { [1] = "Телевизионна� комната не и�пользовала�ь", }, } place_objects_window = { place_objects_in_corridor = "Разме�тите �ти предметы в коридорах.", place_windows = "Добавьте окон, е�ли хотите, и нажмите «Подтвердить».", confirm_or_buy_objects = "Вы можете добавить, убрать или передвинуть объекты.", drag_blueprint = "Ра�т�ните комнату до желаемого размера.", place_door = "Разме�тите дверь", place_objects = "Выберите объект и переме�тите его на нужное ме�то, потом подтвердите", pick_up_object = "�ажмите на объект, чтобы его подн�ть или выберете другую опцию из �пи�ка", } staff_class = { doctor = "Доктор", handyman = "Рабочий", receptionist = "Реги�тратор", nurse = "Мед�е�тра", surgeon = "Хирург", } staff_descriptions = { good = { [1] = "Работает каче�твенно и у�ердно. ", [2] = "Работает на �ове�ть. ", [3] = "Ответ�твенно отно�ит�� к работе. ", [4] = "Ма�тер на в�е руки. ", [5] = "�икогда не у�тает. Работает без о�тановки. ", [6] = "Имеет хорошее во�питание и утонченные манеры. ", [7] = "Про�вл�ет талант и трудолюбие. ", [8] = "Очень о�новательно подходит к делу. ", [9] = "В�егда �тремит�� к �овершен�тву и никогда не �дает��. ", [10] = "За�тавл�ет людей улыбать��. ", [11] = "В�егда подбодрит и поможет. ", [12] = "Полно�тью отдает�� работе. ", [13] = "Легко заводит друзей и любит по�ме�ть��. ", [14] = "�икогда не подведет и не обидит. ", [15] = "В�егда придет на помощь. �икогда не о�тавит в беде. ", }, misc = { [1] = "Разговаривает � ра�тени�ми. ", [2] = "Разводит мадага�кар�ких тараканов. ", [3] = "Собирает кубик Рубика. ", [4] = "Ходит на �обрани� �атанин�кой �екты. ", [5] = "Танцует тверк. ", [6] = "В�жет �витера дл� кошек. ", [7] = "Собирает под�тавки под пиво. ", [8] = "Любит прыгать в толпу �о �цены. ", [9] = "Пердит в лифте. ", [10] = "Запи�ывает ТикТоки � подро�тками. ", [11] = "Говорит на ��перанто. ", [12] = "Само�то�тельно �обирает мебель из ИКЕ�. ", [13] = "Любит француз�кий артхау�. ", [14] = "Любит играть в компьютерные игры. ", [15] = "Спит � плюшевым медвежонком. ", [16] = "Спорит в интернете. ", [17] = "Играет на барабанах. ", [18] = "Коллекционирует катышки из пупка. ", [19] = "Подкармливает бездомных �обак. ", [20] = "Играет в а�рохоккей. ", [21] = "Плачет во врем� про�мотра мелодрам. ", [22] = "Пытает�� �в�зать�� � инопланет�нами. ", [23] = "Любит уча�твовать в ночном �тритрей�инге. ", [24] = "Верит в горо�копы. ", [25] = "Судит футбольные матчи дет�кой лиги. ", [26] = "Ходит по бардел�м. ", [27] = "Гонит �амогон. ", [28] = "Слушает хеви-метал и д�т-рок. ", [29] = "Любит турецкие �ериалы. ", [30] = "Ведет видеоблог о жизни �воего хом�ка. ", [31] = "Шпионит на правитель�тво. ", [32] = "Выращивает травку. ", [33] = "Поет в караоке. ", [34] = "Любит аниме и занимает�� ко�плеем. ", [35] = "Обожает передачу 'Беременна в 16'. ", [36] = "Коллекционирует упаковки от чип�ов. ", [37] = "Доедает � чужих �толиков в Макдональд�е. ", }, bad = { [1] = "Ча�то тормозит и ошибает��. ", [2] = "�е любит работать. По�то�нно филонит. ", [3] = "Выпивает на работе. ", [4] = "Хамит и ерничает. ", [5] = "По�то�нно ноет и жалует�� на в�е. ", [6] = "Обзывает�� и же�токо подшучивает над другими. ", [7] = "Плюет на работу. Преда�т при первой возможно�ти. ", [8] = "�е �по�обен �о�редотачивать�� и легко отвлекает��. ", [9] = "�ервничает и ча�то ошибает��. ", [10] = "�а в�е обижает�� и по�то�нно м�тит. ", [11] = "�е �облюдает технику безопа�но�ти. ", [12] = "По�то�нно у�траивает �клоки. ", [13] = "Дерзит и �мотрит на в�ех �вы�ока. ", [14] = "�агло врет и �троит козни. ", [15] = "�енавидит в�ех и в��. ", }, } -- 4.2 Стату� queue_window = { num_in_queue = "Длина очереди", num_entered = "В�его по�ещений", max_queue_size = "Мак�. длина", num_expected = "Ожидает��", } -- 4.3 Запро�ы confirmation = { abort_edit_room = "Вы �ейча� �троите или редактируете кабинет. Е�ли в�е необходимое уже на ме�те, он будет по�троен, иначе же он будет удален. Продолжить?", return_to_blueprint = "Точно вернуть�� к режиму разметки?", delete_room = "Вы точно хотите удалить �ту комнату?", quit = "Вы выбрали выход. � вы в �том уверены?", needs_restart = "Изменение �того параметра требует перезапу�ка CorsixTH. В�е не�охраненные данные при �том будут потер�ны. Продолжить?", overwrite_save = "В �том файле уже е�ть �охраненна� игра. Перезапи�ать ее?", sack_staff = "Вы правда хотите уволить �того �отрудника?", replace_machine = "Вы правда хотите заменить %s за %d$?", restart_level = "Вы �ерьёзно хотите начать уровень заново?", maximum_screen_size = "Разрешение �крана, которое вы ввели, больше 3000 x 2000. Большее разрешение возможно, но оно может потребовать более производительного оборудовани�, чтобы поддерживать играбельную ча�тоту кадров. Вы уверены, что хотите продолжить?", music_warning = "Перед тем, как выбрать mp3 в каче�тве игровой музыки, вам потребует�� smpeg.dll или аналог дл� вашей операционной �и�темы, иначе музыка не �может быть проиграна. Вы уверены, что хотите продолжить?", remove_destroyed_room = "Вы хотите удалить комнату за $%d?", replace_machine_extra_info = "�овый аппарат будет иметь прочно�ть %d (в на�то�щее врем� %d).", restart_mapeditor = "Вы уверены, что хотите перезапу�тить редактор карт?", quit_mapeditor = "Вы уверены, что хотите выйти из редактора карт?", very_old_save = "Прошло много обновлений � тех пор, когда �тот уровень был начат. Чтобы убедить�� что в�е функции работают как положено, желаете ли вы начать уровень заново?//" .. "Ваше �тарое �охранение не удалит��, е�ли вы не будете перезапи�ывать его.", } pay_rise = { definite_quit = "Я увольн�ю�ь, и точка. Я �ыт по горло �тим ме�том.", regular = { [1] = "Я крайне у�таю. Мне нужен хороший отдых плю� повышение зарплаты на %d$, е�ли хотите мен� видеть на �той никчемной работе.", [2] = "Я очень у�таю. Мне надо отдохнуть и не помешает получить надбавку в %d$ до %d$. Пошевеливай��, де�пот.", [3] = "�у в�е. Я тут тружу�ь как лошадь. Прибавьте мне %d$, а то уволю�ь.", [4] = "Я в негодовании. Требую добавить к зарплате %d$, чтобы �тало %d$, или � ухожу.", [5] = "Родители в�егда говорили мне что в �том деле хорошо плат�т. Так что повы�ьте мне зарплату на %d$, или � пойду издавать компьютерные игры.", [6] = "С мен� хватит. Платите мне как �ледует. Я хочу, чтобы мне повы�или зарплату на %d$.", }, poached = "Мне предлагают %d$ у %s. Платите мне не меньше, или � ухожу.", } -- 5. Болезни diseases = { general_practice = { name = "Об�ледование: терапевт", }, diag_ward = { name = "Об�ледование: палата", }, diag_ultrascan = { name = "Об�ледование: ультра�канер", }, diag_blood_machine = { name = "Об�ледование: анализатор крови", }, diag_x_ray = { name = "Об�ледование: рентген", }, diag_psych = { name = "Об�ледование: п�ихиатр", }, diag_general_diag = { name = "Об�ледование: обща� диагно�тика", }, diag_cardiogram = { name = "Об�ледование: кардиограмма", }, diag_scanner = { name = "Об�ледование: �канер", }, autopsy = { name = "В�крытие", }, third_degree_sideburns = { cause = "Причина - непреодолима� то�ка по �емиде��тым.", cure = "Лечение - п�ихиатр должен, и�пользу� �амые �овременные методы, убедить пациента, что чрезмерна� воло�ато�ть уже не в моде.", name = "Бакенбарды третьей �тепени", symptoms = "Симптомы - длинные воло�ы, �мешные штаны, обувь на платформе и �веркающий маки�ж.", }, discrete_itching = { cause = "Причина - крошечные на�екомые � очень о�трыми зубами.", cure = "Лечение - пациент выпивает липкий фармацевтиче�кий �ироп, который защищает кожу.", name = "Спонтанный зуд", symptoms = "Симптомы - интен�ивное че�ание вплоть до во�пламенени�.", }, the_squits = { cause = "Причина - поедание ку�очков пиццы, упавших за плиту.", cure = "Лечение - клейка� �ме�ь в�зких фармацевтиче�ких реактивов �гущает в�е внутри у пациента.", name = "Хрониче�ка� диаре�", symptoms = "Симптомы - фу, кака� гадо�ть. Давайте опу�тим �том.", }, spare_ribs = { cause = "Причина - �идение на холодном каменном полу.", cure = "Лечение - два хирурга должны удалить лишние ребра и завернуть их пациенту � �обой.", name = "Лишние ребра", symptoms = "Симптомы - непри�тные ощущени� от ма��ивной груди.", }, king_complex = { cause = "Причина - пациент один раз угадал итоговый �чет матча в керлинг. С тех пор он �читает �еб� ��новид�щим и на�ледником трона в�еленной.", cure = "Лечение - п�ихиатр ра��казывает пациенту как нелепо тот выгл�дит.", name = "Мани� величи�", symptoms = "Симптомы - �лабо�ть к цвета�той замшевой обуви и чизбургерам.", }, fake_blood = { cause = "Причина - �корее в�его, пациент �тал жертвой розыгрыша.", cure = "Лечение - п�ихиатр должен помочь пациенту у�покоить��.", name = "Фальшива� кровь", symptoms = "Симптомы - кра�на� жидко�ть в венах, котора� и�пар�ет�� при контакте � одеждой.", }, invisibility = { cause = "Причина - уку� радиоактивного (и, �амо �обой, невидимого) муравь�.", cure = "Лечение - напиток на�ыщенного цвета, приготовленный в аптеке, во��танавливает видимо�ть пациента.", name = "�евидимо�ть", symptoms = "Симптомы - пациент чув�твует �еб� нормально и даже может и�пользовать болезнь чтобы разыгрывать близких.", }, golf_stones = { cause = "Причина - вдыхание �довитого газа, �одержащего�� в м�чиках дл� гольфа.", cure = "Лечение - образовани� удал�ют�� хирургами в операционной.", name = "М�чики в почках", symptoms = "Симптомы - бред и чув�тво �тыда.", }, infectious_laughter = { cause = "Причина - переизбыточный про�мотр комедий.", cure = "Лечение - квалифицированный п�ихиатр должен напомнить пациенту, что не в�е в �той жизни �мешно.", name = "Смеховиру�", symptoms = "Симптомы - непроизвольное фырканье и повторение не�мешных шуток.", }, baldness = { cause = "Причина - вранье и �очинение небылиц � целью привлечени� внимани�.", cure = "Лечение - в ходе болезненной процедуры �пециальный аппарат плавно во��танавливает воло��ной покров.", name = "Плешиво�ть", symptoms = "Симптомы - о�лепл�юща� лы�ина и за�тенчиво�ть.", }, heaped_piles = { cause = "Причина - привычка торчать возле питьевых фонтанчиков.", cure = "Лечение - при�тна� на вку� �ме�ь �ильных ки�лот ра�твор�ет кучи изнутри.", name = "Во�паление геморро�", symptoms = "Симптомы - у пациента такое чув�тво, будто он/она �идит на мешке � твердыми шариками.", }, unexpected_swelling = { cause = "Причина - в�е внезапное.", cure = "Лечение - возбухание может быть уменьшено хирургами при помощи автогена.", name = "Внезапное возбухание", symptoms = "Симптом - возбухание.", }, jellyitis = { cause = "Причина - пища, богата� желатином и избыток физиче�кой активно�ти.", cure = "Лечение - пациента помещают в разжелетиватель в �пециальном кабинете.", name = "Желеобразно�ть", symptoms = "Симптомы - пациент чрезмерно тр��ет�� и ча�то падает.", }, hairyitis = { cause = "Причина - длительные прогулки в �вете луны.", cure = "Лечение - �лектролизатор удал�ет воло�ы и запаивает поры.", name = "Оволо�ение", symptoms = "Симптомы - обо�тренное обон�ние.", }, alien_dna = { cause = "Причина - прыгающие личинки разумных видов пришельцев.", cure = "Лечение - в �пециальном аппарате Д�К извлекает��, очищает�� от фрагментов пришельцев и бы�тро в�тавл�ет�� на ме�то.", name = "Инопланетна� Д�К", symptoms = "Симптомы - по�тепенное превращение в пришельца и �тремление уничтожить человече�тво.", }, bloaty_head = { cause = "Причина - нюхание �ыра и питье неочищенной дождевой воды.", cure = "Лечение - раздута� голова лопает�� и затем надувает�� до нормального давлени� при помощи хитроумного аппарата.", name = "Раздутие головы", symptoms = "Симптомы - очень непри�тны дл� пациента.", }, gastric_ejections = { cause = "Причина - о�тра� мек�икан�ка� и индий�ка� пища.", cure = "Лечение - выпивание �пециального �в�зующего �о�тава предотвращает какие бы то ни было извержени�.", name = "Га�тральные извержени�", symptoms = "Симптомы - полупереваренна� пища периодиче�ки извергает�� из пациента в �лучайных ме�тах.", }, uncommon_cold = { cause = "Причина - крошечные капли �оплей в воздухе.", cure = "Лечение - большой глоток необычной мик�туры от кашл�, �варенной из �екретных ингредиентов в аптеке.", name = "Загадочна� про�туда", symptoms = "Симптомы - �опли, чихание и обе�цвечивание легких.", }, corrugated_ankles = { cause = "Причина - езда через а�фальтовые гребни на дорогах.", cure = "Лечение - �легка ток�ична� �ме�ь трав и �пеций позвол�ет пациенту выпр�мить лодыжки.", name = "Гофрированне щиколотки", symptoms = "Симптомы - привычна� обувь больше не подходит пациенту.", }, sleeping_illness = { cause = "Причина - чрезмерна� активно�ть �онной железы в глотке пациента.", cure = "Лечение - мед�е�тра должна дать пациенту большую дозу �ильных �тимул�торов.", name = "Сонна� болезнь", symptoms = "Симптомы - непреодолимое желание по�пать пре�ледует пациента.", }, sweaty_palms = { cause = "Причина - бо�знь �обе�едований.", cure = "Лечение - п�ихиатр должен уговорить пациента избавить�� от �той выдуманной болезни.", name = "Потение ладоней", symptoms = "Симптомы - рукопожатие пациента напоминает �жимание мокрой губки.", }, serious_radiation = { cause = "Причина - жевание изотопов плутони�.", cure = "Лечение - пациента нужно как �ледует промыть под обеззараживающим душем.", name = "Серьезное облучение", symptoms = "Симптомы - пациент �еб� очень, очень плохо чув�твует.", }, gut_rot = { cause = "Причина - Стара� добра� крепка� мик�тура от кашл� тетушки О'М�лли.", cure = "Лечение - мед�е�тра приготовит �пециальную �ме�ь химикатов дл� покрыти� внутренно�тей пациента.", name = "Гнилые кишки", symptoms = "Симптомы - никакого кашл�, но и никаких �тенок желудка.", }, iron_lungs = { cause = "Причина - город�кой �мог и дым от шашлыков.", cure = "Лечение - два хирурга провод�т операцию чтобы удалить затвердевшие легкие.", name = "Железные легкие", symptoms = "Симптомы - �по�обно�ть выдыхать огонь и громко кричать под водой.", }, broken_wind = { cause = "Причина - упражнени� на беговой дорожке по�ле еды.", cure = "Лечение - на�ыщенна� о�обыми вод�ни�тыми атомами мик�тура выпивает�� залпом.", name = "Взрывной метеоризм", symptoms = "Симптомы - пред�тавл�ют опа�но�ть дл� наход�щих�� позади пациента.", }, kidney_beans = { cause = "Причина - разгрызание лед�ных кубиков в напитках.", cure = "Лечение - два хирурга должны удалить бобы, не прика�а��ь к почкам.", name = "Почечные бобы", symptoms = "Симптомы - боль и ча�тые визиты в туалет.", }, transparency = { cause = "Причина - �лизывание йогурта � крышечек упаковок.", cure = "Лечение - �пециально охлажденна� и подкрашенна� в аптеке вода вылечит �ту болезнь.", name = "Прозрачно�ть", symptoms = "Симптомы - плоть �тановит�� прозрачной и ужа�но выгл�дит.", }, broken_heart = { cause = "Причина - кто-нибудь более молодой, богатый и �тройный чем пациент.", cure = "Лечение - два хирурга в�крывают грудную клетку и, затаив дыхание, аккуратно �обирают �ердце.", name = "Разбитое �ердце", symptoms = "Симптомы - плач и боли в мышцах от разрывани� праздничных фотографий.", }, slack_tongue = { cause = "Причина - хрониче�кое об�уждение мыльных опер.", cure = "Лечение - �зык помещает�� в �зыкорезку и укорачивает�� бы�тро, точно, безжало�тно.", name = "В�лый �зык", symptoms = "Симптомы - �зык примерно в п�ть раз увеличен в размерах.", }, tv_personalities = { cause = "Причина - про�мотр телепередач в дневное врем�.", cure = "Лечение - квалифицированный п�ихиатр должен убедить пациента выкинуть телевизор и купить радио.", name = "ТВ-Мани�", symptoms = "Симптомы - пациент думает, что может ве�ти �об�твенное кулинарное шоу.", }, ruptured_nodules = { cause = "Причина - прыжки � тарзанкой в холодную погоду.", cure = "Лечение - хирург удал�ет грыжу твердой, уверенной рукой.", name = "Лопнувша� грыжа", symptoms = "Симптомы - невозможно�ть �идеть � комфортом.", }, fractured_bones = { cause = "Причина - падение � большой вы�оты на бетонные поверхно�ти.", cure = "Лечение - �перва накладывает�� гип�, затем он удал�ет�� при помощи у�трой�тва � лазером.", name = "Трещины в ко�т�х", symptoms = "Симптомы - громкий тре�к и не�по�обно�ть и�пользовать поврежденные конечно�ти.", }, chronic_nosehair = { cause = "Причина - вы�окомерное фыркание в при�ут�твии менее у�пешных людей.", cure = "Лечение - отвратительное противоволо��ное зелье приготавливает�� в аптеке.", name = "Запущенное но�оволо�ение", symptoms = "Симптомы - но�оборода, в которой можно �вить гнездо.", }, pregnancy = { cure = "Вылечено - ребенка до�тали в Операционной, отмыли и познакомили � пациентом.", cause = "Причина - отключение �лектриче�тва в жилых районах.", name = "Беременно�ть", symptoms = "Симптомы - �транное питание � по�ледующей непроходимо�тью кишечника.", }, } -- 6. Фак�ы fax = { -- Эпидеми� epidemic = { cover_up_explanation_1 = "Или вы можете попытать�� вылечить в�ех зараженных, пока про �то не узнали в мини�тер�тве здравоохранени�.", cover_up_explanation_2 = "Е�ли к приезду ин�пектора �пидеми� в�е еще будет бушевать, приготовьте�ь к непри�тно�т�м.", choices = { cover_up = "Попытать�� вылечить в�ех зараженных пациентов пока е�ть врем� и пока он еще в больнице.", declare = "Объ�вить об �пидемии. Признать �вою вину и заплатить штраф.", }, disease_name = "Ваши доктора обнаружили о�обо заразный подвид %s.", declare_explanation_fine = "Вы можете объ�вить об �пидемии, заплатить штраф в %d$, тогда вам немедленно окажут помощь в вакцинации. Ваша репутаци� не�колько по�традает.", }, epidemic_result = { fine_amount = "Правитель�тво объ�вило чрезвычайное положение, а ва� оштрафовали на %d$.", close_text = "Ура!", hospital_evacuated = "У коми��ии не о�тало�ь другого выбора, кроме как объ�вить �вакуацию.", succeeded = { part_1_name = "До департамента здоровь� дошли �лухи, что в вашей больнице бушует �пидеми� %s.", part_2 = "Однако, ин�пектору не удало�ь найти им подтверждение.", }, compensation_amount = "Правитель�тво решило компен�ировать ущерб, который �ти враки нане�ли репутации вашей больницы, в �умме %d$.", failed = { part_1_name = "В попытке �крыть наличие заразной инфекции %s,", part_2 = "ваши �отрудники вызвали ра�про�транение болезни по округе.", }, rep_loss_fine_amount = "Журнали�ты уже заточили карандаши. Ваша репутаци� �ерьезно по�традает. К тому же, ва� оштрафовали на %d$.", }, -- Визит шишки vip_visit_query = { choices = { invite = "Отправить шишке официальное приглашение", refuse = "�аврать что-нибудь, чтобы не приходил", }, vip_name = "%s выразил желание по�етить вашу больницу", }, vip_visit_result = { telegram = "Телеграмма!", remarks = { [1] = "Что за неверо�тна� больница! Е�ли � вдруг заболею, отвезите мен� туда.", [2] = "Вот �то � понимаю - больница!", [3] = "Это �упербольница. Уж �-то в них разбираю�ь.", [4] = "Кака� хороша� больница! Спа�ибо за приглашение.", [5] = "Хмм... Определенно, неплохое медицин�кое учреждение.", [6] = "Мне очень понравила�ь ваша мила� больничка. �у, кто �о мной в ре�торан?", [7] = "Что ж, � видал и похуже. Им е�ть куда ра�ти.", [8] = "�е знаю, �тоит ли туда обращать��, е�ли почув�твуете �еб� неважно.", [9] = "Что � могу �казать, больница как больница. Я ожидал большего.", [10] = "�е надо было мне приходить. Лучше бы � про�идел четырех ча�овую оперу!", [11] = "Мне до �их пор не по �ебе. Они правда называют �вое заведение больницей? Больше похоже на �винарник!", [12] = "Я �ыт по горло визитами в подобные выгребные �мы и по�то�нным вниманием пре��ы! Я подаю в от�тавку.", [13] = "�у и �валка! Я приложу в�е у�или� чтобы ее закрыли.", [14] = "�икогда не видел больницы хуже. Какой позор!", [15] = "Я потр��ен. Это нельз� назвать больницей! Мне надо выпить.", free_build = { [1] = "У ва� очень мила� больница. �е �ложно будет за�тавить ее работать без ограничений по деньгам, правда?", [2] = "Я не �кономи�т, но � думаю что � тоже �могу управл�ть �той больницей. Е�ли понимаете о чем �то �...", [3] = "Отлично работающа� больница. Берегите�ь кризи�ов! Хот�... вам тут не о чем бе�покоить��.", }, }, rep_boost = "Ваша репутаци� улучшила�ь.", vip_remarked_name = "По�ле по�ещени� вашей больницы, %s заметил:", cash_grant = "Вам выдали грант в размере %d$.", rep_loss = "Ваша репутаци� по�традала.", close_text = "Спа�ибо за приглашение.", }, -- Болезни disease_discovered = { discovered_name = "Ваша команда обнаружила новое заболевание. Это %s", can_cure = "Вы можете вылечить �ту болезнь.", close_text = "�овое заболевание было обнаружено.", need_to_build = "Вы должны по�троить %s чтобы вылечить �то.", need_to_build_and_employ = "Е�ли вы по�троите %s и наймете %s то �можете преу�петь.", need_to_employ = "�аймите %s дл� того чтобы �править�� � �тим кризи�ом.", }, disease_discovered_patient_choice = { need_to_build = "Дл� лечени� нам потребует�� %s.", need_to_employ = "�аймите или и�пользуйте %s чтобы вылечить �то.", what_to_do_question = "Что нам делать � �тим пациентом?", guessed_percentage_name = "Мы не �ов�ем уверены, что � �тим пациентом. Суще�твует веро�тно�ть в %d% что �то %s", choices = { send_home = "Отправить пациента домой.", research = "Отправить пациента в и��ледователь�кий отдел.", wait = "Задержать пациента в больнице на какое-то врем�.", }, disease_name = "Ваша команда обнаружила новое заболевание. Это %s", need_to_build_and_employ = "Можно будет попробовать, е�ли вы по�троите %s и наймете %s .", can_not_cure = "Мы не можем �то вылечить.", }, diagnosis_failed = { choices = { send_home = "Отправить пациента домой.", take_chance = "Ри�кнуть и попытать�� вылечить.", wait = "Задержать пациента, пока вы не по�троите еще кабинетов диагно�тики.", }, situation = "Мы проверили �того пациента на в�ех наших аппаратах, но так и не пон�ли, что � ним �лучило�ь.", what_to_do_question = "Что нам � ним делать?", partial_diagnosis_percentage_name = "Е�ть шан� в %d%, что мы правильно угадаем какой вид %s у �того пациента.", }, -- Чрезвычайна� �итуаци� emergency = { locations = { [1] = "�овоуренгой�кий химзавод", [2] = "Фальшивый Универ�итет", [3] = "Центр Принудительного Озеленени�", [4] = "Ин�титут Разработки Опа�ных Штук", [5] = "Клуб Хороших Танцоров", [6] = "Издатель�тво «МакулатураПре��»", [7] = "Похоронное бюро «Безенчук и нимфы»", [8] = "Китай�кий ре�торанчик д�ди Вонга", [9] = "ГлавХимСбытСтыдПромТорг", }, num_disease = "У на� тут %d человек � диагнозом %s и им требует�� немедленное лечение.", cure_possible_drug_name_efficiency = "У ва� е�ть в�е необходимое оборудование и �пециали�ты. У ва� е�ть нужное лекар�тво. Это %s и оно �ффективно на %d%", cure_not_possible_employ = "Вам потребует�� нан�ть %s", cure_not_possible = "Сейча� вы не можете �то вылечить.", cure_possible = "У ва� е�ть в�е необходимое оборудование и �пециали�ты, так что вы, наверное, �правите�ь.", choices = { accept = "Да. Я разберу�ь � �той �итуацией.", refuse = "�ет. Я отказываю�ь в �том уча�твовать.", }, location = "�а предпри�тии %s чрезвычайна� �итуаци�.", cure_not_possible_build = "Вам надо будет по�троить %s", cure_not_possible_build_and_employ = "Вам надо будет по�троить %s и нан�ть %s", bonus = "Вознаграждение за помощь �о�тавит %d0. Е�ли вы не �правите�ь, ваша репутаци� �ерьезно по�традает.", free_build = "Е�ли вы преу�пеете, то ваша репутаци� повы�ит��, е�ли облажаете�ь, то она будет �ерьезно подпорчена.", num_disease_singular = "Тут 1 пациент � %s и они требуют немедленного внимани�.", }, emergency_result = { earned_money = "Из в�ей �уммы %d$ вы заработали %d$.", close_text = "�ажмите чтобы закрыть.", saved_people = "Вы �па�ли %d из %d человек.", }, choices = { return_to_main_menu = "Вернуть�� в главное меню", accept_new_level = "Перейти к �ледующему уровню", decline_new_level = "Продолжить играть ещё некоторое врем�", }, debug_fax = { text2 = "ВСЕГО ЛЮДЕЙ В БОЛЬ�ИЦЕ %d ПРОВЕРЕ�О %d", text7 = "РЕПУТ�ЦИЯ: %d ОЖИД�ЕТСЯ %d С�ИЖЕ�ИЕ %d", text9 = "К�Т�СТРОФЫ %d Р�ЗРЕШЕ�Ы (MTHS) %d (%d)С�ИЖЕ�ИЕ %d", text4 = "Ф�КТОРЫ : ДОКТОР� %d МЕДСЕСТРЫ %d ТЕРРИТОРИЯ %d К�БИ�ЕТ %d СТОИМОСТЬ %d", text1 = "ЛУЧШИЙ СЧЕТ %d", text6 = "СЛЕДУЮЩИЕ Ф�КТОРЫ Т�К ЖЕ ПРИМЕ�Е�Ы", close_text = "Да, Да, Да!", text3 = "КОЛИЧЕСТВ� : ДОКТОР� %d МЕДСЕСТРЫ %d ТЕРРИТОРИЯ %d К�БИ�ЕТЫ %d СТОИМОСТЬ %d", text5 = "CONTRIBN : ДОКТОР� %d МЕДСЕСТРЫ %d ТЕРРИТОРИЯ %d К�БИ�ЕТЫ %d СТОИМОСТЬ %d ПРОЦЕ�Т(ОВ)", text8 = "AMENITIES %d PEEPS HANDLED %d REDUCTION %d", text10 = "УБИЙСТВ� %d ДОПУЩЕ�О (MTHS) %d (%d) С�ИЖЕ�ИЕ %d", text11 = "пациентОВ В ЭТОМ МЕСЯЦЕ %d", }, } disease_discovered_patient_choice = { need_to_employ = "�аймите или и�пользуйте %s чтобы вылечить �то.", } -- 7. Советчик adviser = { tutorial = { build_reception = "Привет. Прежде в�его, вашей новой больнице понадобит�� реги�тратура. Выберите ее в меню об�тановки коридоров.", order_one_reception = "Щелкните один раз на мигающей �троке, чтобы заказать �тойку реги�тратуры.", accept_purchase = "Щелкните на мигающей кнопке, чтобы подтвердить заказ.", reception_invalid_position = "Стойка �ейча� �ерого цвета, потому что ее нельз� разме�тить зде�ь. Попробуйте передвинуть или развернуть ее.", rotate_and_place_reception = "Пощелкайте правой кнопкой, чтобы развернуть �тойку и у�тановите ее левой кнопкой.", hire_receptionist = "� еще вам понадобит�� реги�тратор, чтобы принимать новых по�етителей.", select_receptionists = "�ажмите мигающую кнопку, чтобы про�мотреть реги�траторов, которые ищут работу. Чи�ло на кнопке показывает, �колько кандидатур до�тупно.", next_receptionist = "Это резюме первой реги�траторши в нашем �пи�ке. �ажмите мигающую кнопку, чтобы по�мотреть �ледующее.", prev_receptionist = "�ажмите мигающую кнопку, чтобы вернуть�� к предыдущему резюме.", choose_receptionist = "Выберите реги�тратора, чьи профе��иональные �по�обно�ти и зарплата ва� у�траивают и нажмите мигающую кнопку чтобы нан�ть ее.", receptionist_invalid_position = "Зде�ь нельз� её по�тавить.", place_receptionist = "По�тавьте вашу новую реги�траторшу, где хотите. Она до�таточно умна, чтобы добрать�� до �воего �тола.", build_gps_office = "Чтобы начать прием пациентов, первым делом по�тройте кабинет терапевта.", select_diagnosis_rooms = "�ажмите мигающую кнопку, чтобы увидеть �пи�ок комнат диагно�тики.", click_gps_office = "�ажмите мигающую кнопку, чтобы выбрать кабинет терапевта.", click_and_drag_to_build = "Дл� начала решите, какого размера будет новый кабинет. Удерживайте левую кнопку мыши и ра�т�ните чертеж до нужного размера.", room_too_small = "Чертеж �ейча� кра�ного цвета потому, что он �лишком мал. Ра�т�ните его побольше.", room_in_invalid_position = "Ой! Такой чертеж не пойдет, кра�на� обла�ть перекрывает другие кабинеты или находит�� за �тенами больницы.", room_big_enough = "Такого размера до�таточно. Вы можете передвинуть кабинет или изменить размер еще раз, е�ли хотите.", place_door = "Двигайте мышью вдоль �тен кабинета, чтобы выбрать ме�то дл� двери.", door_in_invalid_position = "�ет! Зде�ь нельз� �делать вход в кабинет. Щелкните где-нибудь на �тене чертежа.", place_windows = "Проделайте не�колько окон точно так же, как вы �делали дверь. Это �ов�ем не об�зательно, но так у ваших работников будет, куда глазеть в �вободное врем�.", window_in_invalid_position = "Тут нельз� �делать окно. Будьте добры указать другое ме�то на �тене кабинета.", place_objects = "Права� кнопка вращает мебель, а лева� у�танавливает ее.", object_in_invalid_position = "Это предмет нельз� по�тавить зде�ь. Пожалуй�та, переме�тите его или попробуйте повращать, возможно он �танет �юда боком.", confirm_room = "�ажмите мигающую кнопку, чтобы завершить �троитель�тво, или нажмите на кре�тик, чтобы вернуть�� к предыдущему шагу.", information_window = "Справочное �ообщение ра��казывает вам о кабинете терапевта, который вы только что по�троили.", hire_doctor = "Чтобы об�ледовать и лечить пациентов, вам понадобит�� доктор.", select_doctors = "�ажмите мигающую кнопку, чтобы про�мотреть докторов, которые ищут работу.", choose_doctor = "Как �ледует изучите резюме и рекомендации кандидатов прежде чем �делаете выбор.", place_doctor = "По�тавьте доктора где-нибудь в пределах больницы. Он направит�� в кабинет терапевта, когда к вам придет первый пациент.", doctor_in_invalid_position = "Эй! Тут его по�тавить нельз�.", start_tutorial = "Прочитайте ваше задание а потом нажмите левую кнопку мыши, чтобы начать обучение.", room_too_small_and_invalid = "Кабинет �лишком маленький, да еще размещен в недопу�тимом ме�те.", build_pharmacy = "Поздравл�ем! Теперь по�тройте �птеку и наймите Мед�е�тру, чтобы у ва� получила�ь работающа� больница.", }, epidemic = { hurry_up = "Е�ли что-то не �делать � �той �пидемией, мы окажем�� в беде по �амые ноздри. Шевелите�ь!", serious_warning = "Эта заразна� болезнь ра�про�тран�ет�� � невиданной �коро�тью. Сделайте же что-нибудь!", multiple_epidemies = "Похоже, у на� тут не�колько �пидемий �разу. Какой кошмар.", }, staff_advice = { need_handyman_machines = "Вам понадобит�� рабочий, чтобы ремонтировать аппараты в больнице.", need_doctors = "У ва� не хватает врачей. Можно попробовать отправить �амых лучших докторов в кабинеты � наибольшими очеред�ми, вдруг поможет.", need_handyman_plants = "Вам понадобит�� рабочий, чтобы поливать ра�тени�.", need_handyman_litter = "По�етители �ов�ем загадили нашу больницу. �аймите рабочего, чтобы подметать за ними.", need_nurses = "Вам нужно нан�ть мед�е�тру. �птека и палата не могут работать �ами по �ебе.", too_many_doctors = "У ва� �лишком много докторов. �екоторые из них болтают�� без дела.", too_many_nurses = "Я думаю что у ва� �лишком много мед�е�тер... Они вам так нрав�т��?", }, earthquake = { damage = "От землетр��ени� по�традали %d аппаратов и %d человек.", alert = "Приближает�� землетр��ение. Ваши аппараты могут по�традать от него, а е�ли они в плохом �о�то�нии, то и вов�е развалить��.", ended = "Фух! Это было довольно �ильно. Примерно %d по шкале Рихтера.", }, surgery_requirements = { need_surgeons_ward_op = "Чтобы выполн�ть операции, вам надо нан�ть двух хирургов, а также по�троить палату и операционную.", need_surgeon_ward = "Чтобы начать оперировать, вам нужен еще один хирург и палата.", }, vomit_wave = { started = "Похоже, в нашей больнице завел�� рвотный виру�. Е�ли бы вы поддерживали чи�тоту, �того бы не �лучило�ь. �аймите больше рабочих.", ended = "Уф! Похоже, волна тошноты от�тупила. �а будущее, по�тарайте�ь �одержать больницу в чи�тоте.", }, level_progress = { halfway_lost = "Вы на полпути к поражению.", dont_kill_more_patients = "Вы больше не можете �ебе позволить убивать пациентов.", another_patient_killed = "�у вот! Еще один �клеил ла�ты. И таких уже %d по больнице.", halfway_won = "Вы на полпути к победе.", close_to_win_increase_value = "Вы почти выиграли. Увеличьте �тоимо�ть больницы на %d.", financial_criteria_met = "Вы уже заработали до�таточно денег. �е давайте балан�у опу�тить�� ниже %d и продолжайте �ффективно управл�ть больницей.", nearly_won = "Вы уже почти выиграли �тот уровень.", hospital_value_enough = "�е давайте �тоимо�ти больницы упа�ть ниже %d и разберите�ь � о�тальными проблемами, чтобы победить.", another_patient_cured = "Отлично, еще один пациент покинул больницу живым и здоровым. Мы вылечили уже %d.", three_quarters_lost = "Вы на три четверти проиграли �тот уровень.", reputation_good_enough = "Хорошо, ваша репутаци� до�таточно вы�ока. �е опу�кайте ее ниже %d и разберите�ь � имеющими�� проблемами, чтобы победить.", cured_enough_patients = "Вы вылечили до�таточно пациентов, но ваша больница еще недо�таточно хороша.", nearly_lost = "Еще чуть-чуть - и вы проиграете.", improve_reputation = "Вам надо подн�ть репутацию еще на %d, чтобы выиграть �тот уровень.", three_quarters_won = "Вы прошли три четверти пути к победе.", cured_enough_patients = "Вы вылечили до�таточно пациентов, но вам нужно приве�ти �вою больницу в пор�док, чтобы пройти уровень.", hospital_value_enough = "Держите �тоимо�ть вашей больницы выше %d и решайте другие проблемы, чтобы выиграть уровень.", }, staff_place_advice = { receptionists_only_at_desk = "Реги�траторы могут работать только в реги�тратуре.", only_psychiatrists = "В п�ихиатрии могут работать только доктора � дипломом п�ихиатра.", only_surgeons = "Только хирурги могут работать в операционной.", only_doctors_in_room = "Только Доктора могут работать в %s", only_nurses_in_room = "Только Мед�е�тры могут работать в %s", nurses_cannot_work_in_room = "Мед�е�тры не могут работать в %s", only_researchers = "Доктора могут работать в кабинете и��ледователей, только е�ли у них е�ть квалификаци� и��ледовател�.", doctors_cannot_work_in_room = "Доктора не могут работать в %s", not_enough_lecture_chairs = "Дл� каждого обучающего�� нужен отдельный �вободный лекционный �тул.", }, room_forbidden_non_reachable_parts = "Так вы заблокируете до�туп к другим ча�т�м больницы.", research = { machine_improved = "%s улучшен вашим и��ледователь�ким отделом.", drug_fully_researched = "Вы и��ледовали '%s' на 100%.", new_machine_researched = "И��ледователь�кий отдел �делал новое открытие: '%s'.", drug_improved = "И��ледователь�кий отдел улучшил ваше лекар�тво от '%s'.", drug_improved_1 = "Лекар�тво '%s' было улучшено Вашим департаментом и��ледований.", new_available = "�овый '%s' �тал до�тупен.", new_drug_researched = "Было и��ледовано новое лекар�тво дл� лечени� '%s' ", autopsy_discovered_rep_loss = "О вашем аппарате �втоматиче�кого В�крыти� �тало изве�тно обще�твенно�ти. Ждите негативную реакцию.", }, boiler_issue = { minimum_heat = "Я ва� везде ищу! Паровой котел в подвале развалил��. Скоро у на� в больнице �танет ве�ьма прохладно.", maximum_heat = "Паровой котел в подвале заклинило! Регул�тор температуры вышел из �тро� и мы тут в�е �коро помрем от жары! Можно попробовать по�тавить еще автоматов � газировкой.", resolved = "�у �лава Богу! Си�тема отоплени� �нова работает как надо. Теперь температура в больнице �танет нормальной.", }, room_requirements = { research_room_need_researcher = "В и��ледователь�ком отделе должен работать доктор-и��ледователь.", op_need_another_surgeon = "Вам нужен еще один хирург, чтобы операционна� наконец заработала.", op_need_ward = "Вам нужна палата, чтобы готовить пациентов к операции.", reception_need_receptionist = "Прием пациентов ведет реги�тратор.", psychiatry_need_psychiatrist = "Раз уж у ва� е�ть кабинет п�ихиатра, наймите и �амого п�ихиатра.", pharmacy_need_nurse = "�аймите мед�е�тру, чтобы работать в аптеке.", ward_need_nurse = "Вам нужно нан�ть мед�е�тру на работу в �той палате.", op_need_two_surgeons = "�аймите двух хирургов, чтобы начать выполн�ть операции.", training_room_need_consultant = "Вам нужен кон�ультант, чтобы читать лекции.", gps_office_need_doctor = "Вам нужно нан�ть доктора, который будет ве�ти прием в �том кабинете.", }, goals = { win = { money = "Заработайте еще %d$, чтобы �оответ�твовать финан�овым требовани�м �того уровн�.", cure = "Вылечите еще %d пациентов, чтобы выиграть �тот уровень.", reputation = "Поднимите �вою репутацию до %d, чтобы удовлетворить требовани� уровн�.", value = "Вам нужно подн�ть �тоимо�ть больницы до %d$", }, lose = { kill = "Убейте еще %d пациентов и вы проиграете!", }, }, warnings = { another_desk = "Вам нужно будет купить еще один �тол реги�тратурны дл� нового реги�тратора.", bankruptcy_imminent = "Эй! Еще немного и вы обанкротите�ь. Тратьте о�торожнее!", build_staffroom = "�емедленно по�тройте комнату пер�онала. Ваши люди �коро начнут падать в обморок от у�тало�ти. �еужели дл� ва� нет ничего �в�того!", build_toilet_now = "Терпение ваших клиентов подходит к концу! �емедленно по�тройте туалет, или по�лед�тви� не за�тав�т �еб� ждать. И пере�таньте ухмыл�ть��, �то �ерьезно!", build_toilets = "По�тройте туалет или �толкнете�ь � анти�анитарными по�лед�тви�ми!", cannot_afford = "У ва� недо�таточно денег, чтобы нан�ть �того человека!", cannot_afford_2 = "У ва� недо�таточно денег в банке, чтобы �делать �ту покупку!", cannot_afford_machine = "Вам нужно как минимум $%1% на банков�ком �чету, чтобы позволить купить новый %2%!", cannot_buy = "Вы не можете заказать �того еще больше!", cash_low_consider_loan = "У ва� на �чету не гу�то. Как на�чет кредита?", change_priorities_to_plants = "Прикажите вашим рабочим чаще поливать ра�тени�.", charges_too_high = "У ва� очень вы�окие цены. Вы заработаете больше денег, но так вы отпугиваете потенциальных клиентов.", charges_too_low = "Вы берете мало денег за у�луги. Хоть �то и привлекает новых клиентов, вы недо�таточно получаете.", deal_with_epidemic_now = "Е�ли что-то не �делать � �той �пидемией, мы окажем�� в беде по �амые ноздри. Шевелите�ь!", desperate_need_for_watering = "Ваши ра�тени� умирают от жажды. �аймите рабочего, чтобы поливать их.", doctor_crazy_overwork = "О �ет! Один из ваших докторов �тал безумным из-за переработки! Он может вернуть�� в норму, е�ли вы немедленно отправите его отдыхать.", doctors_tired = "Ваши доктора �ильно у�тали. Скорее отправьте их отдохнуть.", doctors_tired2 = "Ваши доктора неверо�тно у�тали. Им нужен отдых.", epidemic_getting_serious = "Эта заразна� болезнь бы�тро ра�про�тран�ет��. Сделайте же что-нибудь!", fair_prices = "Ваши �боры за %s кажут�� �праведливыми и �балан�ированными.", falling_1 = "Э��й! �то не �мешно! Смотри куда кликаешь мышью, кое-кто может и по�традать!", falling_2 = "Хватит занимать�� ерундой! Как вам �то нравит��?", falling_3 = "�уч, �то было больно, кто-нибудь вызовите доктора!", falling_4 = "Это больница, а не Парк Развлечений!", falling_5 = "Это не ме�то, чтобы выпинывать из него людей! Они больны, знаете ли!", falling_6 = "Это не боулинг, � больными людьми нельз� обращать�� подобным образом!", financial_trouble = "Ваше финан�овое положение удручает. Сделайте же что-нибудь! Потратьте еще %d$ и вы проиграете!", finanical_trouble2 = "�ачинайте зарабатывать деньги или окажете�ь за воротами. Потер�йте еще %d$ и вы проиграете.", financial_trouble3 = "Со�то�ние вашего банков�кого �чета внушает опа�ени�. Вам очень нужны деньги. Вы в�его в %d$ от банкрот�тва.", handymen_tired = "Ваши рабочие неверо�тно у�тали. Им нужен отдых.", handymen_tired2 = "Ваши рабочие �п�т на ходу. �емедленно отправьте их в комнату отдыха.", hospital_is_rubbish = "Везде говор�т, что ваша больница ни к черту. Это ничем не помогает нам привлекать новых клиентов.", litter_catastrophy = "Му�ор в вашей больнице выходит из под контрол�. Скорее направьте еще рабочих на уборку!", litter_everywhere = "У ва� �валка, а не больница. Перера�пределите больше рабочих на уборку.", low_prices = "Вы берете �лишком мало за %s. Это приведет людей в вашу больницу, но вы не получите большой прибыли от каждого из них.", high_prices = "Ваши �боры за %s вы�оки. Это прине�ет большую прибыль в кратко�рочной пер�пективе, но в конечном �чете вы начнете отталкивать людей.", machine_severely_damaged = "%s �коро �ов�ем развалит��.", machinery_damaged = "Скорее почините �вои аппараты! Скоро они начнут взрывать��!", machinery_damaged2 = "Вашим аппаратам требует�� ремонт, наймите рабочего!", machinery_deteriorating = "Ваши аппараты изнашивают�� от ча�того и�пользовани�. При�матривайте за ними.", machinery_slightly_damaged = "Оборудование вашего го�питал� понемногу изнашивает��. �е забывайте чинить его врем� от времени.", machinery_very_damaged = "Срочно найдите ремонтника, чтобы чинить ваши аппараты, а то кто-нибудь �ерьезно по�традает!", machines_falling_apart = "Ваши аппараты разваливают��. �аймите ремонтника немедленно!", many_epidemics = "Похоже, у на� тут не�колько �пидемий �разу. Это может обернуть�� �ерьезными проблемами.", many_killed = "Вы уже убили %d человек. Вы же их вроде лечить должны.", money_low = "У ва� заканчивают�� деньги!", money_very_low_take_loan = "Ваш банков�кий балан� ниже плинту�а.", more_benches = "�е помешает по�тавить �камеек. �е за�тавл�йте больных �то�ть.", more_toilets = "Больнице нужны туалеты. Ваши клиенты � трудом �держивают �еб�.", need_staffroom = "Вашим �отрудникам нужна комната дл� отдыха.", need_toilets = "Пациентам нужны туалеты. И, желательно, по�корее.", no_desk = "Вам �ледует по�троить Реги�тратуру и нан�ть реги�тратора, наконец!", no_desk_1 = "Е�ли вы хотите, чтобы пациенты приходили в вашу больницу, вам �ледует по�троить Реги�тратуру и нан�ть реги�тратора, котора� будет в ней работать.", no_desk_2 = "Кла��но �работано! Это должно быть мировой рекорд: почти год и ни одного пациента! Е�ли вы и дальше хотите управл�ть �той больницей вам нужно по�троить Реги�тратуру и нан�ть реги�тратора дл� работы в ней.", no_desk_3 = "Это про�то необыкновенно, прошел почти года, а вы так и не нан�ли реги�тратора! Как вы ра��читываете получить пациентов? Теперь разберите�ь � �тим и прекратите занимать�� ерундой.", no_desk_4 = "Каждому реги�тратору нужен �об�твенный приёмный �тол, чтобы он мог работать � пациентами.", no_desk_5 = "Что ж, �то вопро� времени, �ледует подождать и пациенты �коро начнуть приходить!", no_desk_6 = "Вы нан�ли реги�тратора, теперь что на�чет покупки приёмной Реги�тратуры дл� нее?", no_desk_7 = "Вы купили приёмную Реги�тратуру, как на�чёт нан�ть реги�тратора? У Ва� не будет пациентов, пока Вы не решите �ту проблему!", no_patients_last_month = "В �том ме��це у на� не было ни одного клиента. Вот так �юрприз.", no_doctor_no_gp_office = "В конце концов вам �ледует по�троить кабинет общей практики и нан�ть врача!", no_gp_office = "Вы так и не по�троили кабинет общей практики, где ваши врачи могли бы �тавить диагнозы пациентам!", nobody_cured_last_month = "В прошедшем ме��це вы никого не вылечили.", nurse_needs_desk_1 = "Кажда� мед�е�тра нуждает�� в �об�твенном рабочем �толе дл� работы.", nurse_needs_desk_2 = "Ваша Мед�е�тра очень благодарна, что вы разрешили ей отдохнуть. Е�ли вы хотите, чтобы в Палате работало больше 1 мед�е�тры предо�тавьте каждой из них �об�твенное рабочее ме�то.", nurses_tired = "Ваши мед�е�тры вал�т�� � ног от у�тало�ти. Им очень нужен отдых.", nurses_tired2 = "Ваши мед�е�тры за�ыпают на работе. Отправьте их отдыхать.", patient_leaving = "Вот уходит пациент. Причина? У ва� никчемна� и бе�полезна� больница.", patient_not_paying = "Пациент ушел, не заплатив за %s, потому что цена �лишком больша�!", patient_stuck = "Кто-то заблудил�� в ваших коридорах. У ва� тут больница или парк развлечений?", patients_annoyed = "Люди терпеть не могут вашу больницу, и � не могу их винить за �то. Разберите�ь � вашими проблемами, или будет хуже!", patients_getting_hot = "В вашей больнице �лишком жарко. Пожалуй�та, �низьте нагрев или уберите ча�ть батарей.", patients_leaving = "Клиенты уход�т. Сделайте вашу больницу более терпимой, по�тавив �камейки, ра�тени�, автоматы � газировкой и прочее.", patients_really_thirsty = "Пациенты очень хот�т пить. По�тавьте ваши торговые автоматы туда, где �амые длинные очереди.", patients_thirsty = "Пациенты хот�т пить. Может быть, �тоит по�тавить торговые автоматы?", patients_thirsty2 = "Пациенты хот�т пить. Купите еще торговых автоматов или пере�тавьте те, что е�ть, поудобнее.", patients_too_hot = "Пациенты жалуют�� на жару. Уберите лишние батареи, �низьте температуру или по�тавьте еще автоматов � газировкой.", patients_unhappy = "Люд�м не нравит�� ваша больница. Предпримите что-нибудь по �тому поводу.", patients_very_cold = "Пациенты замерзают. Увеличьте нагрев и по�тавьте побольше батарей в больнице.", patients_very_thirsty = "Ваши пациенты �традают от жажды. Е�ли вы не по�тавите торговые автоматы, они пойдут пить домой, а лечить�� - в другую больницу!", pay_back_loan = "У ва� полно денег. Как на�чет возврата долгов?", people_did_it_on_the_floor = "Один из пациентов не �мог найти туалет. Теперь кому-то придет�� в�е �то отмывать.", people_freezing = "�еверо�тно, в наш век центрального отоплени� ваши пациенты дрожат от холода. По�тавьте батареи отоплени� и увеличьте нагрев.", people_have_to_stand = "�е�ча�тные больные вынуждены �то�ть. По�тавьте еще �камеек.", place_plants2 = "Люди уход�т. Может, им не хватает зеленых ра�тений?", place_plants3 = "Пациенты пребывают в печали. По�тавьте горшков � цветами, чтобы подбодрить их.", place_plants4 = "По�тавьте еще горшков � ра�тени�ми, чтобы облегчить �традани� пациентов.", place_plants_to_keep_people = "Люди зл�т�� и уход�т. Может горшков � цветами по�тавить?", plants_dying = "Ваши ра�тени� за�ыхают на глазах, они в жизни не видели лейки. Мертвые ра�тени� нагон�ют то�ку на пациентов.", plants_thirsty = "При�матривайте за ра�тени�ми, их не помешает поливать почаще.", queue_too_long_at_reception = "У ва� в реги�тратуре огромна� очередь. По�тавьте еще одну �тойку и наймите реги�тратора.", queue_too_long_send_doctor = "В больнице огромна� очередь в %s. Убедите�ь, что там ведет�� прием.", queues_too_long = "У ва� в больнице длинные очереди.", reception_bottleneck = "Реги�тратура не �правл�ет�� � наплывом по�етителей. Вам нужно ра�ширить ее и нан�ть еще реги�тратора.", receptionists_tired = "Ваши реги�траторы очень у�тали. �емедленно отправьте их отдыхать!", receptionists_tired2 = "Ваши реги�траторы очень у�тали. Дайти ем отдохнуть немедленно!", reduce_staff_rest_threshold = "Я тут подумал, может �тоит уменьшить порог у�тало�ти дл� пер�онала в на�тройках политики больницы? Я не то, чтобы на�таиваю.", research_screen_open_1 = "Дл� до�тупа к разделу и��ледований, �начала нужно по�троить И��ледователь�кий кабинет.", research_screen_open_2 = "И��ледовани� отключены на �том уровне.", researcher_needs_desk_1 = "И��ледователю нужно рабочее ме�то", researcher_needs_desk_2 = "Ваш и��ледователь благодарен вам, что вы разрешили ему отдохнуть. Е�ли Вы хотели, чтобы у Ва� работали не�колько и��ледователей, то каждому из них нужно купить отдельный �тол дл� работы.", researcher_needs_desk_3 = "Каждому и��ледователю нужен отдельный �тол дл� работы.", some_litter = "Дайте рабочим указание прибрать�� в больнице, пока проблема � му�ором не разро�ла�ь.", staff_overworked = "Ваши люди �ильно у�тают. От �того они работают кое-как и могут �овершать ошибки.", staff_tired = "Ваши �отрудники неверо�тно у�тали. Е�ли вы не дадите им отдохнуть в комнате пер�онала, они могут �лететь � катушек.", staff_too_hot = "Вашим �отрудникам жарко. Уберите лишние батареи из кабинетов или уменьшите нагрев.", staff_unhappy = "Ваши �отрудники недовольны работой. Попробуйте подбодрить их преми�ми, а лучше по�тройте комнату пер�онала. Еще можно изменить политику больницы.", staff_unhappy2 = "Ваши �отрудники недовольно ворчат. Скоро они захот�т повышени� зарплаты.", staff_very_cold = "Сотрудники жалуют�� на холод. Увеличьте температуру или по�тавьте еще батарей.", too_many_plants = "Я вижу, вы любите цветы. У ва� тут на�то�щие джунгли.", too_much_litter = "У ва� проблемы � му�ором. Ее можно решить, нан�в еще рабочих.", }, placement_info = { door_cannot_place = "Извините, тут дверь проделать нельз�.", staff_cannot_place = "К �ожалению, �того человека нельз� зде�ь по�тавить.", object_cannot_place = "Сюда не поме�тит��.", room_cannot_place = "Зде�ь нельз� у�троить кабинет.", room_cannot_place_2 = "Тут кабинет не поме�тит��.", window_cannot_place = "Зде�ь нельз� �делать окно.", reception_cannot_place = "Реги�тратура �юда не в�танет.", reception_can_place = "Вы можете у�тановить реги�тратуру зде�ь.", window_can_place = "Вы можете ра�положить окно тут. Оно прекра�но.", door_can_place = "Вы можете ра�положить дверь тут, е�ли хотите.", object_can_place = "Вы можете по�тавить �тот объект зде�ь.", staff_can_place = "Вы можете разме�тить �того �отрудника тут. ", }, information = { larger_rooms = "Большие кабинеты повышают �амооценку и производительно�ть людей, которые в них работают.", extra_items = "Дополнительные предметы в кабинетах нрав�т�� вашим �отрудникам и повышают производительно�ть.", epidemic = "У ва� в больнице ра�про�тран�ет�� заразна� болезнь. Это нужно немедленно пре�ечь!", promotion_to_doctor = "Один из ваших интернов �тал доктором.", emergency = "Чрезвычайна� �итуаци�! Караул! Спа�ай�� кто может!", patient_abducted = "Вашего клиента похищают пришельцы!", first_cure = "Отлична� работа! Вы только что вылечили �воего первого пациента.", promotion_to_consultant = "Один из ваших докторов �тал кон�ультантом.", handyman_adjust = "Вы можете повы�ить �ффективно�ть рабочих, перера�пределив их приоритеты.", promotion_to_specialist = "Один из ваших докторов получил новую квалификацию: %s.", initial_general_advice = { rats_have_arrived = "В вашей больнице завели�ь кры�ы. Попробуйте по�трел�ть их �воей мышью.", first_patients_thirsty = "По�етители в вашей больнице хот�т пить. По�тавьте дл� них автоматы � газировкой.", research_now_available = "Вы по�троили и��ледователь�кий отдел. Теперь вы можете открыть окно и��ледований.", decrease_heating = "По�етители жалуют�� на жару. Понизьте уровень нагрева. Это можно �делать в окне карты.", first_emergency = "�ад головой чрезвычайных пациентов крутит�� мигалка. Вылечите их до того, как закончит�� врем�.", first_epidemic = "У ва� в больнице �пидеми�! Примите решение, объ�вите ли вы о ней или попытаете�ь �крыть.", taking_your_staff = "У ва� пытают�� переманить �отрудника. Вам придет�� побороть��, е�ли хотите удержать его.", place_radiators = "По�етители жалуют�� на холод. Вы можете заказать дополнительные батареи из меню об�тановки коридоров.", epidemic_spreading = "Заразна� болезнь ра�про�тран�ет�� по больнице. По�тарайте�ь вылечить зараженных до того, как они уйдут домой.", machine_needs_repair = "Один из ваших аппаратов требует ремонта. �айдите дым�щий�� аппарат и щелкните на него. Затем нажмите кнопку вызова рабочего.", increase_heating = "Пациенты замерзают. Увеличьте нагрев в окне карты.", first_VIP = "Скоро ва� по�етит � �к�кур�ией кака�-то больша� шишка. По�тарайте�ь, чтобы он не заметил анти�анитарии и недовольных пациентов.", psychiatric_symbol = "Доктора, разбирающие�� в вопро�ах п�ихиатрии, обозначены �имволом: |", research_symbol = "Доктора, умеющие проводить и��ледовани�, обозначены �имволом: }", surgeon_symbol = "Доктора, которые могут проводить операции, обозначены �имволом: {", autopsy_available = "И��ледован аппарат дл� автоматиче�кого в�крыти�. С его помощью вы можете избавл�ть�� от проблемных или нежелательных пациентов и проводить и��ледовани� над их о�танками. �о предупреждаем, что и�пользование �того аппарат - �то крайне �порна� и �омнительна� практика.", }, patient_leaving_too_expensive = "Пациент ушел, не заплатив за %s. Дл� него �то �лишком дорого.", vip_arrived = "Внимание! %s прибыл в вашу больницу � официальным визитом! Про�ледите, чтобы в�е прошло как по ма�лу.", epidemic_health_inspector = "Слухи об �пидемии в вашей больнице до�тигли мини�тер�тва здравоохранени�. Приготовьте�ь в приезду ин�пектора.", first_death = "Вы только что угробили �воего первого пациента. �адею�ь, вы �обой довольны?", pay_rise = "Кто-то из ваших �отрудников угрожает уволить��. Вы можете �огла�ить�� на повышение зарплаты или отказать. �ажмите на значок �лева внизу чтобы увидеть за�вление.", place_windows = "Дополнительные окна делают комнаты �ветлее, а пер�онал - �ча�тливее.", fax_received = "Значок, который �ейча� вылез �лева внизу �крана �ообщает вам что-то важное или требует ваше решение по какому-либо вопро�у.", }, competitors = { staff_poached = "Один из �отрудников вашей больницы перешел на работу в другой го�питаль.", land_purchased = "%s купил уча�ток земли.", hospital_opened = "%s открыл конкурирующую больницу.", }, praise = { many_benches = "Пациентам хватает �ид�чих ме�т. Прекра�но.", few_have_to_stand = "Очень немногим приходит�� �то�ть в вашей больнице. пациенты благодарны вам за �то.", plenty_of_benches = "Тут е�ть много �камеек, так что �то не проблема.", plants_thriving = "Очень хорошо. Ваши ра�тени� про�то процветают. Они выгл�д�т чуде�но. Поддерживайте их и вы можете выйграть за них приз.", plants_are_well = "Мило. Вы хорошо заботите�ь о �воих ра�тени�х.", many_plants = "Прекра�но. У ва� е�ть много ра�тений. пациенты будут благодарны за �то.", patients_cured = "%d пациентов вылечено." }, build_advice = { placing_object_blocks_door = "Ра�положение �того объекта зде�ь не позволит люд�м входить в дверь.", door_not_reachable = "Люди не �могут пройти через �ту дверь. В чем же может быть проблема?", blueprint_would_block = "Така� планировка будет блокировать другие комнаты. Попробуйте изменить размер комнаты или переме�тить ее в другое ме�то!", blueprint_invalid = "Это недопу�тима� планировка.", }, multiplayer = { poaching = { not_interested = " Ха! Им не интере�но работать на ва� - они �ча�тливы на �воем ме�те.", already_poached_by_someone = "�евозможно! Кто-то уже пытает�� переманить �того человека.", in_progress = "Я дам вам знать когда �тот человек захочет перейти работать на ва�.", }, objective_failed = "Вы не �могли выполнить по�тавленную задачу.", objective_completed = "Вы выполнили по�тавленную задачу. Поздравл�ю!", players_failed = "�иже�ледующим игрокам не удало�ь до�тичь по�ледней цели : ", everyone_failed = "В�ем не удало�ь до�тичь по�ледней цели. По�тому каждый может поиграть на !", }, cheats = { th_cheat = "Поздравл�ем, вы разблокировали читы!", bloaty_cheat = "Чит Раздутой головы активирован!", bloaty_off_cheat = "Чит Раздутой головы деактивирован.", hairyitis_cheat = "Чит Оволо�ени� активирован!", hairyitis_off_cheat = "Чит Оволо�ени� деактивирован.", crazy_on_cheat = "О нет! В�е доктора �ошли � ума!", crazy_off_cheat = "Уффф... врачи во��тановили �вое здравомы�лие.", roujin_on_cheat = "Со�т�зание Roujin'а активировано! Удачи...", roujin_off_cheat = "Со�т�зание Roujin'а деактивировано.", queuejump_on_cheat = "Пациенты �тали �ердечнее. Теперт умирающие пациенты будут автоматиче�ки продвигать�� вперед очереди отно�ительно других пациентов.", queuejump_off_cheat = "Пациенты �тали �гои�тичными и больше не позвол�ют пациентам, наход�щим�� на грани �мерти, проходить без очереди.", norest_on_cheat = "О нет! Похоже, ваши �отрудники выпили �лишком много кофеина и больше не чув�твуют необходимо�ти отдыхать.", norest_off_cheat = "Фух! Похоже, кофейна� �йфори� наконец-то прошла. Ваши �отрудники теперь �могут как �ледует отдохнуть.", superdoctor_on_cheat = "Первокла�нный медицин�кий ВУЗ рекомендовал Ва� �воим выпу�кникам! Ознакомьте�ь � вакан�и�ми.", superdoctor_off_cheat = "Руководитель медицин�кого факультета больше не рекомендует ва� �воим выпу�кникам.", }, } -- 8. Пи�ьма из мини�тер�тва introduction_texts = { demo = "Добро пожаловать в демон�трационную больницу!//" .. "К �ожалению демон�трационна� вер�и� �одержит только �тот уровень. �о �того более чем до�таточно, чтобы зан�ть ва� на некоторое врем�! " .. "Вы будете �талкивать�� � разными заболевани�ми, которые будет требовать разных кабинетов дл� лечени�. Врем� от времени, будут по�тупать пациенты, требующие немедленного лечени�. Так же вам необходимо разрабатывать новые кабинеты и�пользу� и��ледователь�кий кабинет. " .. "Ваша цель заработать $100 000, �тоимо�ть больницы должна быть $70 000, а репутаци� 700. Кроме того, вы должны вылечивать не менее 75% �воих пациентов. " .. "Удо�товерьте�ь, что ваша репутаци� не упадет ниже 300 и вы не убиваете более 40% ваших пациентов. Иначе вы проиграете.//" .. "Удачи!", level1 = "Добро пожаловать в вашу первую больницу!//" .. "Чтобы начать принимать пациентов, по�тройте реги�тратуру и кабинет терапевта, наймите реги�траторшу и доктора. " .. "Потом про�то ждите когда придут первые пациенты." .. "Также, вам не помешает по�троить кабинет п�ихиатра и нан�ть доктора � �оответ�твующим дипломом. " .. "Чтобы лечить больных, вам потребует�� аптека и мед�е�тра. " .. "Приготовьте�ь принимать пациентов � раздутой головой. Дл� них надо будет по�троить кабинет �о �пециальным аппаратом. " .. "Попробуйте вылечить 10 человек и �мотрите, чтобы ваша репутаци� не упала ниже 200.", level2 = "В �той ме�тно�ти в�тречает�� больше разных заболеваний. " .. "Подготовьте больницу к наплыву пациентов и не забудьте по�троить и��ледователь�кий отдел. " .. "Очень важно поддерживать ваше заведение в чи�тоте и �тарать�� повы�ить �вою репутацию. Ожидайте прибыти� пациентов � длинными �зыками - по�тройте дл� них �пециальный кабинет. " .. "Комната кардиографии поможет вам точнее �тавить диагнозы. " .. "Оба �тих кабинета должны быть и��ледованы прежде, чем вы �можете их по�троить. В окне карты вы теперь можете приобретать дополнительные корпу�а дл� вашей больницы. " .. "Ваша цель - заработать 10 000$, вылечить 40 человек и не уронить репутацию ниже 300.", level3 = "�а �тот раз ваша больница будет ра�положена в богатом районе. " .. "Мини�тер�тво здравоохранени� ожидает получить зде�ь нехилую прибыль. " .. "Дл� начала, вам пред�тоит заработать хорошую репутацию, затем �о�редоточьте�ь на превращении ее в деньги. " .. "Знайте, что вы можете �толкнуть�� � чрезвычайными �итуаци�ми. " .. "Это означает, что к вам в больницу прибудет группа людей � �ерьезным заболеванием. " .. "Е�ли вы у�пеете их вылечить за ограниченное врем�, то заработаете �олидный бону� и хорошую репутацию. " .. "Вам придет�� �толкнуть�� � �индромом Корол�, а также выделить деньги на по�тройку палаты и операционной. " .. "Заработайте 20 000$ чтобы добить�� у�пеха.", level4 = "Про�ледите, чтобы пациенты были довольны, хорошо об�лужены и не умирали. " .. "Ваша репутаци� имеет большое значение, так что по�тарайте�ь подн�ть ее как можно выше. " .. "�е бе�покойте�ь о деньгах - они придут вме�те � вы�окой репутацией. " .. "Теперь вы также можете обучать ваших докторов, чтобы повы�ить их навыки. " .. "Так они �могут �правл�ть�� даже � �амыми необычными болезн�ми. " .. "Поднимите вашу репутацию до 500.", level5 = "С таким разнообразием заболеваний, как в �той больнице, вам не придет�� �идеть без дела." .. "Ваши доктора - вчерашние �туденты, так что им необходимо будет подучить��." .. "У ва� е�ть три кон�ультанта, которые помогут обучить новичков, по�тарайте�ь их не разозлить." .. "� еще наша больница �тоит пр�мо над разломом Сан �ндроид." .. "Ожидайте землетр��ений." .. "Они могут повредить ваши аппараты и нарушить работу больницы." .. "Поддерживайте репутацию не ниже 400 и заработайте 50 000$. Также, вылечите 200 пациентов.", level6 = "Опира��ь на ве�ь �вой опыт, по�тройте хорошо организованную больницу, прино��щую �табильный доход и �по�обную вылечить в�е, что угодно." .. "Знайте, что в �той ме�тно�ти о�обенно бы�тро ра�про�тран�ют�� в��кие инфекции." .. "Е�ли в вашей больнице не будет идеально чи�то, ждите в�пышек �пидемий �реди пациентов." .. "Заработайте 150 000$ и доведите �тоимо�ть больницы до 140 000$.", level7 = "Зде�ь вы будете под неу�ыпным наблюдением мини�тер�тва здравоохранени�, так что по�тарайте�ь, чтобы деньги текли рекой, а репутаци� �тремила�ь ввы�ь. " .. "Мы не можем вам позволить убивать пациентов - �то плохо дл� бизне�а. " .. "Про�ледите, чтобы у ва� было в�е необходимое оборудование и вы�ококла��ные �пециали�ты. " .. "Заработайте 600 репутации плю� 200 000$ на банков�кий �чет.", level8 = "Ваша задача - по�троить как можно более �ффективную и рентабельную больницу. " .. "�арод зде�ь живет на широкую ногу, так что не �те�н�йте�ь �тричь капу�ту изо в�ех �ил. " .. "�ет, конечно, лечить людей - хорошо, и в�е такое, но вам ОЧЕ�Ь нужны их деньги. " .. "Про�ледите, чтобы ваши пациенты были в �о�то�нии дойти до ка��ы. " .. "�акопите на �чету, ни много ни мало, 300 000$ чтобы завершить �тот уровень.", level9 = "Теперь, когда на �чету мини�тер�тва полно денег, и �ам мини�тр разъезжает на новеньком лимузине, вы вновь можете зан�ть�� по�тройкой приличной, хорошо организованной больницы дл� �амых нуждающих��. " .. "Будьте готовы к любым непри�тно�т�м." .. "Е�ли вы озаботите�ь приобретением в�его необходимого оборудовани� и кадров, ничто не �может причинить вам проблем. " .. "Ваша больница должна �тоить 200 000$, а на вашем �чету должно быть 400 000$. " .. "Мы не примем меньшего.", level10 = "Помимо излечени� в�ех болезней, которые бывают в �том захолу�тье, мини�тер�тво про�ит ва� уделить внимание и��ледованию лекар�тв." .. "К нам по�тупают жалобы от некоего Ов�ика, ме�тного активи�та, так что улучшайте �вои лекар�тва, чтобы не ударить в гр�зь лицом." .. "Также, не давайте поводов дл� упреков. Сведите чи�ло трупов к минимуму." .. "К�тати, отведите ме�то дл� кабинета лечени� ожелени�." .. "Улучшите в�е лекар�тва до 80% �ффективно�ти, повы�ьте репутацию до 650 и �оберите 500 000$.", level11 = "Вам предо�тавл�ет�� шан� по�троить идеальную больницу. " .. "Это неверо�тно пре�тижное ме�то, и мини�тер�тво хотело бы видеть зде�ь �оответ�твующее лечебное учреждение. " .. "Мы ожидаем от ва� большой прибыли, вы�окой репутации и и�пользовани� в�ех возможных �ред�тв дл� до�тижени� цели. " .. "Это очень важна� работа. " .. "Чтобы ее выполнить, вам придет�� лезть из кожи вон. " .. "К�тати, в �той ме�тно�ти замечены �ЛО. Интере�но, ваш пер�онал готов к подобным �юрпризам? " .. "Доведите �тоимо�ть больницы до $240,000, �оберите $500,000 и поднимите репутацию до 700.", level12 = "Эта задача - вершина в�ех задач. " .. "Во�хищенное вашим у�пехом, мини�тер�тво предлагает вам �ложную работу: им нужен кто-то, кто по�троит еще одну идеальную больницу, прине�ет огромное количе�тво денег и заработает неверо�тную репутацию. " .. "От ва� ожидает��, что вы �купите в�ю землю в округе, вылечите в�ех (да-да, именно в�ех) и получите в�е награды. " .. "Возьмете�ь за дело?" .. "Заработайте $650,000, вылечите 750 человек и ваша репутаци� не должна быть ниже 800, чтобы выиграть.", level13 = "Ваше неверо�тное ма�тер�тво владени� больницей заинтере�овало �верх�екретный отдел �верх�екретной �лужбы. " .. "У них е�ть дл� ва� �юрприз: переполненна� кры�ами больница требует �ффективного вмешатель�тва. " .. "Уничтожьте как можно больше кры�, пока рабочие не убрали ве�ь му�ор. " .. "Справите�ь?", level14 = "Перед вами очередное задание: �та больница богата разного рода неожиданно�т�ми. " .. "Приведите ее к у�пеху и �таньте победителем из победителей. " .. "�е думайте, что в�е будет очень легко. Перед вашим лицом пред�танут ве�ьма же�ткие у�лови� " .. "Удачи!", level15 = "Итак, о�воим важные моменты дл� �оздани� хорошей больницы.//" .. "Иногда вашим врачам требует�� помощь в по�тановке правильного диагноза. Дл� дополнительных об�ледований " .. "необходимо по�троить �пециальные кабинеты, например, кабинет общей диагно�тики.", level16 = "Вы уже по�тавили диагнозы не�кольким пациентам, и пора принимать�� за их лечение. Дл� �того необходимо по�троить различные кабинеты. " .. "Дл� начала по�тройте аптеку и наймите мед�е�тру, котора� будет выдавать пациентам �па�ительные лекар�тва.", level17 = "По�леднее предупреждение: зорко �ледите за репутацией, ведь именно она привлекает к вам пациентов из �амых дальних уголков �траны, а �оответ�твенно и их деньги. " .. "Е�ли вы не будете убивать много людей и они будут довольны вашей больницей, о�обых проблем у ва� не возникнет.//" .. "Теперь вы �ами �ебе хоз�ин. Удачи! �а �том в�е.", level18 = "", } letter = { [1] = { [1] = "Уважаемый %s,//", [2] = "Великолепно! Вы прево�ходно �правл�ете�ь � управлением �той больницей. Мы, большие шишки из мини�тер�тва здравоохранени�, хотим предложить вам зан�ть�� более крупным проектом. Вы идеально подходите нам дл� �той работы. Мы готовы платить вам %d$. Подумайте над нашим предложением.//", [3] = "Ва� интере�ует работа в больнице «%s»?", }, [2] = { [1] = "Уважаемый %s,//", [2] = "Очень хорошо! Вы добили�ь больших у�пехов в вашей больнице. Е�ли вы не прочь �менить об�тановку и не боите�ь трудно�тей, мы можем предложить вам работу в другом ме�те. Соглашайте�ь, и вы не пожалеете. Ваша зарплата �о�тавит %d$//", [3] = "Вы хотите работать в больнице «%s»?", }, [3] = { [1] = "Уважаемый %s,//", [2] = "Вы добили�ь огромных у�пехов, управл�� �той больницей. По�ему, мы пред�казываем вам большое будущее и хотим предложить новый по�т. Мы готовы платить вам %d$ и думаем, вы не прочь прин�ть �тот вызов.//", [3] = "Вы хотите управл�ть больницей «%s»?", }, [4] = { [1] = "Уважаемый %s,//", [2] = "Поздравл�ем! У на� тут в мини�тер�тве в�е под впечатлением от ваших управленче�ких �по�обно�тей. Мы возлагаем на ва� большие надежды! По�тому, мы хотим предложить вам работу по�ложнее. Ваша зарплата �о�тавит %d$, решение за вами.//", [3] = "Ва� интере�ует работа в больнице «%s»?", }, [5] = { [1] = "Уважаемый %s,//", [2] = "Снова здрав�твуйте. Мы понимаем, как вам неохота покидать �ту уютную больничку, но в�е же убедительно про�им ва� пере�мотреть �вое мнение. Мы будем платить вам %d$, е�ли вы отправите�ь в другую больницу и организуете ее работу так же хорошо.//", [3] = "Вы �огла�ны отправить�� работать в больницу «%s»?", }, [6] = { [1] = "Уважаемый %s,//", [2] = "Поздравл�ем. Пред�тавл�ем, как вы �ча�тливы владеть �той прекра�ной больницей, но �ледующа� �тупенька карьерной ле�тницы уже ждет ва�. Вы будете получать $%d, е�ли �огла�ите�ь. �адеем��, вы �делаете правильный выбор.//", [3] = "Согла�ны ли вы зан�ть �вое ме�то в больнице «%s»?", }, [7] = { [1] = "Уважаемый %s,//", [2] = "Добрый день! В мини�тер�тве здравоохранени� в�ем очень интере�но, что держит ва� в вашей больнице. Может быть, ваше заведение и прево�ходно, но, в�е же, хотим предложить вам перевод в новую больницу, где ва� ожидают новые пер�пективы и зарплата в $%d.//", [3] = "Вы �огла�ны перейти работать в больницу «%s»?", }, [8] = { [1] = "Уважаемый %s//,", [2] = "И еще раз, здрав�твуйте. Вы отклонили наше предыдущее предложение новой работы � зарплатой в %d$. Однако, мы на�таиваем на пере�мотре вами �воего решени�. Вот увидите, новое ме�то работы намного лучше!//", [3] = "Пожалуй�та, �огла�ите�ь зан�ть по�т руководител� в больнице «%s».", }, [9] = { [1] = "Уважаемый %s//,", [2] = "�а прот�жении длительного времени вы зарекомендовали �еб� как отличный руководитель. Така� за�луга не может о�тать�� без награды, и мы рады предложить вам по�т главного управл�ющего больницами. Это важна� должно�ть, и размер зарплаты �о�тавит $%d. Вы взойдете на по�т по ковровой дорожке, и люди в�трет�т ва� � почетом.//", [3] = "Вами пройден большой путь. Спа�ибо за в�е, что вы делаете.//", [4] = "", }, [10] = { [1] = "Уважаемый %s//,", [2] = "Примите наши поздравлени�: вы изумительно �правл�ете�ь �о в�еми по�тавленными задачами. Ваш профе��ионализм открывает дл� ва� множе�тво путей. Вы будете получать пен�ию в размере $%d и иметь личный лимузин, е�ли �огла�ите�ь на наше предложение разъезжать по городам, провод� организационную работу в больницах.//", [3] = "Мы гордим�� вами. Еще никто не отдавал �только �ил на �па�ение человече�ких жизней.//", [4] = "", }, [11] = { [1] = "Уважаемый %s//,", [2] = "Ваша карьера была образцовой, вы вдохновл�ли на�. Спа�ибо за по�ещение такого количе�тва больниц и огромную проделанную работу. Предлагаем вам пожизненные выплаты в размере $%d, а вы будете разъезжать в ро�кошном кабриолете по больницам городов и проводить ма�тер-кла��ы по до�тижению у�пеха в карьере.//", [3] = "Вы �вл�ете�ь примером дл� каждого здравомы�л�щего человека, и в�е, без и�ключени�, хотели бы �тать такими же у�пешными, как вы.//", [4] = "", }, [12] = { [1] = "Уважаемый %s//,", [2] = "Ваша у�пешна� карьера лучшего �о времен Мои�е� управл�ющего больницей близит�� к завершению. Однако, учитыва� ваши за�луги в медицине, мини�тер�тво здравоохранени� готово предложить вам $%d про�то за то, что вы будете по�вл�ть�� на презентаци�х, открыти�х, запу�ках кораблей и иногда на ток-шоу. Ве�ь мир жаждет видеть ва�, и ваше им� будет отличной рекламой дл� на�!//", [3] = "Пожалуй�та, примите наше предложение. Работа не�ложна�, и вам будет предо�тавлен автомобиль и полицей�кий ��корт, куда бы вы ни отправили�ь.//", [4] = "", }, custom_level_completed = "Отлична� работа! Вы выполнили в�е задачи на �той карте!", dear_player = "Уважаемый %s", return_to_main_menu = "Вернете�ь в главное меню или продолжите игру?", campaign_level_missing = "Извините, но �ледующий уровень �той кампании, похоже, от�ут�твует. (Им�: %s)", campaign_level_completed = "Хороша� работа! Вы прошли уровень. �о �то еще не конец! Вы хотели бы продолжить играть в больнице %s?", campaign_completed = "�еверо�тно! Вам удало�ь пройти в�е уровни. Теперь вы можете ра��лабить�� и на�ладить�� заполнением форумов в Интернете �воими до�тижени�ми. Удачи! :)" } -- 9. Имена и названи� months = { [1] = "Янв", [2] = "Фев", [3] = "Мар", [4] = "�пр", [5] = "Ма�", [6] = "Июн", [7] = "Июл", [8] = "�вг", [9] = "Сен", [10] = "Окт", [11] = "�о�", [12] = "Дек", } humanoid_name_starts = { [1] = "Клизм", [2] = "Таблет", [3] = "Халат", [4] = "Бахил", [5] = "Кры�", [6] = "Дрыщ", [7] = "Зануд", [8] = "Хрюк", [9] = "Гоп", [10] = "Шептун", [11] = "Со�и�", [12] = "Жбан", [13] = "Бутыл", [14] = "Жоп", [15] = "Дур", [16] = "Чудак", [17] = "Пук", [18] = "Шмат", [19] = "Очк", [20] = "Дрын", [21] = "Жир", [22] = "Рвот", [23] = "�еуклюж", [24] = "Соплеж", [25] = "Морд", [26] = "Шмар", [27] = "Срам", [28] = "Бомж", [29] = "Жмот", [30] = "Рыгал", [31] = "Коз�в", [32] = "Пердун", [33] = "Хрен", } humanoid_name_ends = { [1] = "енко", [2] = "ович", [3] = "ич", [4] = "ец", [5] = "атюк", [6] = "юк", [7] = "ко", [8] = "идзе", [9] = "ин�н", [10] = "ам�н", [11] = "ов�ки", [12] = "евич", [13] = "�он", [14] = "�ки", [15] = "берг", [16] = "енюк", [17] = "ишко", [18] = "�ких", [19] = "ейко", [20] = "ена�", [21] = "уна�", [22] = "ецки", [23] = "иди�", [24] = "они�", [25] = "ан�н", [26] = "ман", } vip_names = { [1] = "М�р �ижнего Магнитошахтин�ка", [2] = "Леонид Канев�кий", [3] = "«В�езнающий» Онотоле Ва��ерман", [4] = "�лек�ей Ле�оповальный, пред�тавитель демократиче�кой оппозиции", [5] = "�рти�т Филипп Иркоров", [6] = "Телеведущий Иван Шмургант", [7] = "Музыкант �иколай Жироба�ков", [8] = "�ктер Олег Кабаков", [9] = "Пи�атель Бори� Макунин", [10] = "Градоначальник Сергей Соб�кин", health_minister = "Мини�тр здравоохранени�", } -- 10 WIP -- 10.2 �е дл� перевода menu_options_volume = { [50] = " 50% ", [100] = " 100% ", [30] = " 30% ", [60] = " 60% ", [90] = " 90% ", [10] = " 10% ", [20] = " 20% ", [40] = " 40% ", [80] = " 80% ", [70] = " 70% ", } cheats_window = { cheats = { end_month = "Закончить ме��ц", emergency = "Создать чрезвычайную �итуацию", win_level = "Выиграть уровень", create_patient = "Создать пациента", money = "Чит на деньги", lose_level = "Проиграть уровень", all_research = "Чит на В�е И��ледовани�", end_year = "Закончить Год", earthquake = "Вызвать землетр��ение", vip = "Вызвать VIP", show_infected = "Показать/�пр�тать значки �пидемии пациентов", decrease_prices = "Снизить цены на 50%", epidemic = "Создать заразного пациента", increase_prices = "Повы�ить цены на 50%", toggle_earthquake = "Вкл/Выкл землетр��ени�", toggle_epidemic = "Вкл/Выкл �пидемии", reset_death_count = "Обнулить �четчик �мертей", max_reputation = "Мак�имальна� репутаци�", repair_all_machines = "Отремонтировать в�ю технику", toggle_invulnerable_machines = "Вкл/Выкл неу�звимо�ть техники", }, close = "Закрыть", caption = "Читы", cheated = { no = "И�пользование читов: �ет", yes = "И�пользование читов: Да", }, warning = "Внимание: Вы не получите бону�ные очки в конце уровн�, е�ли Вы будете и�пользовать читы!", } original_credits = { [1] = " ", [2] = " ", [3] = " ", [4] = " ", [5] = " ", [6] = " ", [7] = " ", [8] = " ", [9] = " ", [10] = " ", [11] = " ", [12] = ":Designed and Created by", [13] = ":Bullfrog Productions", [14] = " ", [15] = ":Pluto Development Team", [16] = ",", [17] = "Mark Webley", [18] = "Gary Carr", [19] = "Matt Chilton", [20] = "Matt Sullivan", [21] = "Jo Rider", [22] = "Rajan Tande", [23] = "Wayne Imlach", [24] = "Andy Bass", [25] = "Jon Rennie", [26] = "Adam Coglan", [27] = "Natalie White", [28] = " ", [29] = " ", [30] = " ", [31] = ":Programming", [32] = ",", [33] = "Mark Webley", [34] = "Matt Chilton", [35] = "Matt Sullivan", [36] = "Rajan Tande", [37] = " ", [38] = " ", [39] = " ", [40] = ":Art", [41] = ",", [42] = "Gary Carr", [43] = "Jo Rider", [44] = "Andy Bass", [45] = "Adam Coglan", [46] = " ", [47] = " ", [48] = " ", [49] = ":Additional Programming", [50] = ",", [51] = "Ben Deane", [52] = "Gary Morgan", [53] = "Jonty Barnes", [54] = " ", [55] = " ", [56] = " ", [57] = ":Additional Art", [58] = ",", [59] = "Eoin Rogan", [60] = "George Svarovsky", [61] = "Saurev Sarkar", [62] = "Jason Brown", [63] = "John Kershaw", [64] = "Dee Lee", [65] = " ", [66] = " ", [67] = " ", [68] = ":Intro Sequence", [69] = ",", [70] = "Stuart Black", [71] = " ", [72] = " ", [73] = " ", [74] = ":Music and Sound Effects", [75] = ",", [76] = "Russell Shaw", [77] = "Adrian Moore", [78] = " ", [79] = " ", [80] = " ", [81] = ":Additional Music", [82] = ",", [83] = "Jeremy Longley", [84] = "Andy Wood", [85] = " ", [86] = " ", [87] = " ", [88] = ":Announcer Voiceover", [89] = ",", [90] = "Rebecca Green", [91] = " ", [92] = " ", [93] = " ", [94] = ":Level Design", [95] = ",", [96] = "Wayne Imlach", [97] = "Natalie White", [98] = "Steven Jarrett", [99] = "Shin Kanaoya", [100] = " ", [101] = " ", [102] = " ", [103] = ":Scripting", [104] = ",", [105] = "James Leach", [106] = "Sean Masterson", [107] = "Neil Cook", [108] = " ", [109] = " ", [110] = " ", [111] = ":R&D", [112] = " ", [113] = ":Graphics Engine", [114] = ",", [115] = "Andy Cakebread", [116] = "Richard Reed", [117] = " ", [118] = " ", [119] = " ", [120] = ":R&D Support", [121] = ",", [122] = "Glenn Corpes", [123] = "Martin Bell", [124] = "Ian Shaw", [125] = "Jan Svarovsky", [126] = " ", [127] = " ", [128] = " ", [129] = ":Library and Tools", [130] = " ", [131] = "Dos and Win 95 Library", [132] = ",", [133] = "Mark Huntley", [134] = "Alex Peters", [135] = "Rik Heywood", [136] = " ", [137] = " ", [138] = " ", [139] = ":Network Library", [140] = ",", [141] = "Ian Shippen", [142] = "Mark Lamport", [143] = " ", [144] = " ", [145] = " ", [146] = ":Sound Library", [147] = ",", [148] = "Russell Shaw", [149] = "Tony Cox", [150] = " ", [151] = " ", [152] = " ", [153] = ":Installer Programming", [154] = ",", [155] = "Andy Nuttall", [156] = "Tony Cox", [157] = "Andy Cakebread", [158] = " ", [159] = " ", [160] = " ", [161] = ":Moral Support", [162] = ",", [163] = "Peter Molyneux", [164] = " ", [165] = " ", [166] = " ", [167] = ":Testing Manager", [168] = ",", [169] = "Andy Robson", [170] = " ", [171] = " ", [172] = " ", [173] = ":Lead Testers", [174] = ",", [175] = "Wayne Imlach", [176] = "Jon Rennie", [177] = " ", [178] = " ", [179] = " ", [180] = ":Play Testers", [181] = ",", [182] = "Jeff Brutus", [183] = "Wayne Frost", [184] = "Steven Lawrie", [185] = "Tristan Paramor", [186] = "Nathan Smethurst", [187] = " ", [188] = "Ryan Corkery", [189] = "Simon Doherty", [190] = "James Dormer", [191] = "Martin Gregory", [192] = "Ben Lawley", [193] = "Joel Lewis", [194] = "David Lowe", [195] = "Robert Monczak", [196] = "Dominic Mortoza", [197] = "Karl O'Keeffe", [198] = "Michael Singletary", [199] = "Andrew Skipper", [200] = "Stuart Stephen", [201] = "David Wallington", [202] = " ", [203] = "And all our other Work Experience Play Testers", [204] = " ", [205] = " ", [206] = " ", [207] = ":Technical Support", [208] = ",", [209] = "Kevin Donkin", [210] = "Mike Burnham", [211] = "Simon Handby", [212] = " ", [213] = " ", [214] = " ", [215] = ":Marketing", [216] = ",", [217] = "Pete Murphy", [218] = "Sean Ratcliffe", [219] = " ", [220] = " ", [221] = " ", [222] = ":With thanks to:", [223] = ",", [224] = "Tamara Burke", [225] = "Annabel Roose", [226] = "Chris Morgan", [227] = "Pete Larsen", [228] = " ", [229] = " ", [230] = " ", [231] = ":PR", [232] = ",", [233] = "Cathy Campos", [234] = " ", [235] = " ", [236] = " ", [237] = ":Documentation", [238] = ",", [239] = "Mark Casey", [240] = "Richard Johnston", [241] = "James Lenoel", [242] = "Jon Rennie", [243] = " ", [244] = " ", [245] = " ", [246] = ":Documentation & Packaging Design", [247] = ",", [248] = "Caroline Arthur", [249] = "James Nolan", [250] = " ", [251] = " ", [252] = " ", [253] = ":Localisation Project Manager", [254] = ",", [255] = "Carol Aggett", [256] = " ", [257] = " ", [258] = " ", [259] = ":Localisation", [260] = ",", [261] = "Sandra Picaper", [262] = "Sonia 'Sam' Yazmadjian", [263] = " ", [264] = "Bettina Klos", [265] = "Alexa Kortsch", [266] = "Bianca Normann", [267] = " ", [268] = "C.T.O. S.p.A. Zola Predosa (BO)", [269] = "Gian Maria Battistini", [270] = "Maria Ziino", [271] = "Gabriele Vegetti", [272] = " ", [273] = "Elena Ruiz de Velasco", [274] = "Julio Valladares", [275] = "Ricardo Mart®ez", [276] = " ", [277] = "Kia Collin", [278] = "CBG Consult", [279] = "Ulf Thor", [280] = " ", [281] = " ", [282] = " ", [283] = ":Production", [284] = ",", [285] = "Rachel Holman", [286] = " ", [287] = " ", [288] = " ", [289] = ":Producer", [290] = ",", [291] = "Mark Webley", [292] = " ", [293] = " ", [294] = " ", [295] = ":Associate Producer", [296] = ",", [297] = "Andy Nuttall", [298] = " ", [299] = " ", [300] = " ", [301] = ":Operations", [302] = ",", [303] = "Steve Fitton", [304] = " ", [305] = " ", [306] = " ", [307] = ":Company Administration", [308] = ",", [309] = "Audrey Adams", [310] = "Annette Dabb", [311] = "Emma Gibbs", [312] = "Lucia Gobbo", [313] = "Jo Goodwin", [314] = "Sian Jones", [315] = "Kathy McEntee", [316] = "Louise Ratcliffe", [317] = " ", [318] = " ", [319] = " ", [320] = ":Company Management", [321] = ",", [322] = "Les Edgar", [323] = "Peter Molyneux", [324] = "David Byrne", [325] = " ", [326] = " ", [327] = ":All at Bullfrog Productions", [328] = " ", [329] = " ", [330] = " ", [331] = ":Special Thanks to", [332] = ",", [333] = "Everyone at Frimley Park Hospital", [334] = " ", [335] = ":Especially", [336] = ",", [337] = "Beverley Cannell", [338] = "Doug Carlisle", [339] = " ", [340] = " ", [341] = " ", [342] = ":Keep On Thinking", [343] = " ", [344] = " ", [345] = " ", [346] = " ", [347] = " ", [348] = " ", [349] = " ", [350] = " ", [351] = " ", [352] = " ", [353] = " ", [354] = " ", [355] = " ", [356] = " ", [357] = " ", [358] = " ", [359] = " ", [360] = " ", [361] = ".", } totd_window = { previous = "Предыдуща� под�казка", tips = { [1] = "Люба� больница нуждает�� в реги�тратуре и кабинете терапевта. Именно в них решает�� дальнейша� �удьба пациента и он направл�ет�� на дальнейшее лечение. К�тати, аптека тоже не помешает.", [2] = "�ппараты, например, аппарат надувани�, требуют регул�рного ремонта. Дл� �того нужно нан�ть одного-двух работников. Изношенные аппараты могут до�тавить много непри�тно�тей как пер�оналу, так и пациентам.", [3] = "Пер�оналу �вой�твенно у�тавать. �е забывайте �троить комнаты отдыха дл� них.", [4] = "У�танавливайте до�таточно батарей отоплени� дл� поддержани� тепла в больнице, иначе пер�онал и пациенты будут недовольны. Ра�пределение тепла по помещению можно по�мотреть на карте города.", [5] = "Профе��ионализм доктора �ильно вли�ет на �коро�ть по�тановки диагноза и каче�тво лечени�. Один профе��иональный терапевт �по�обен заменить двух неопытных.", [6] = "Студенты и доктора могут повышать �вой профе��иональный уровень на лекци�х кон�ультанта. Е�ли кон�ультант обладает �пециальными навыками (п�ихиатра, хирурга или и��ледовател�), он �может передать их ученикам.", [7] = "� вы пробовали набирать европей�кий номер �лужбы �па�ени� (112) на фак�е? Перед тем, как пробовать, включите звук!", [8] = "Вы можете изменить некоторые на�тройки, например разрешение �крана или �зык игры, перейд� в меню на�троек из главного меню или непо�ред�твенно из игры.", [9] = "Везде англий�кие �лова, хот� вы выбрали в на�тройках �ов�ем не англий�кий �зык? Помогите закончить перевод игры!", [10] = "Команда CorsixTH нуждает�� в вашей помощи! Е�ли вы хотите помочь в напи�ании кода, �оздании графики или перевода игры, �в�жите�ь � нами на Ди�корд-�ервере, Саб-реддите или на �ервере Matrix. С�ылки на нашем веб�айте (CorsixTH.com)", [11] = "Е�ли вы нашли ошибки, пишите на наш багтрекер: th-issues.corsix.org", [12] = "Каждый уровень игры требует выполнени� определенных у�ловий дл� его завершени�. Периодиче�ки загл�дывайте в окно �тату�а, чтобы знать, какие у�лови� выполнены, а какие - еще нет.", [13] = "Дл� редактировани� или удалени� кабинета е�ть �пециальна� кнопка на панели внизу �крана.", [14] = "Чтобы разобрать�� в толпе пациентов, наведите кур�ор на кабинет, и ожидающие �воей очереди по�етители будут выделены.", [15] = "Щелкните на двери кабинета дл� про�мотра очереди. Пациентов, �то�щих в очереди можно перемещать, направл�ть в другие кабинеты и даже выгон�ть.", [16] = "�едовольный пер�онал требует повышени� зарплат. Убедите�ь в том, что ваши работники пребывают в комфортабельных у�лови�х труда.", [17] = "Е�ли в помещении больницы �тановит�� �лишком жарко, пациентов начинает мучать жажда! Во избежание �того у�тановите до�таточное количе�тво автоматов � водой в коридорах.", [18] = "Вы можете прервать диагно�тику пациента, будучи уверенным в по�тановке диагноза. �о будьте о�торожны: ваша ошибка может повлечь за �обой �мерть пациента.", [19] = "Чрезвычайные �итуации могут прине�ти вам неплохой доход, конечно, при у�ловии, что у ва� е�ть возможно�ть и врем� дл� лечени� таких пациентов.", [20] = "Разнорабочим можно у�тановить работу только в одном уча�тке. Про�то нажмите плашку 'В�е уча�тки' в их профиле, чтобы переключать�� между ними.", }, next = "Следующа� под�казка", } trophy_room = { reputation = "РЕПУТ�ЦИЯ", gen_repairs = { penalty = { [1] = "Ваши рабочие не об�луживают оборудование должным образом. Вам �ледует управл�ть ими рабочими лучше, возможно потребует�� нан�ть больше рабочих, чтобы �править�� � нагрузкой.", [2] = "У ва� ужа�ное об�луживание аппаратов. Ваши �отрудники должны ухаживать за оборудованием клиники бы�тро и � заботой.", }, awards = { [1] = "Вы удо�тоены �пециальной награды дл� рабочих за поддержание оборудовани� клиники в хорошем �о�то�нии. Отлично �работано! У�тройте �ебе выходной.", [2] = "Ваши рабочие �правл�ют�� лучше �воих коллег в других больницах. Это главное до�тижение, � которым ва� �тоит поздравить.", [3] = "Оборудование больницы поддерживает�� в великолепном �о�то�нии. У�или� ваших рабочих неверо�тны. Вы в�е за�луживаете �той пре�тижной награды. Удивительна� работа.", }, }, pop_percentage = { awards = { [1] = "Заметим, что вы привлекли большую ча�ть на�елени� города в прошлом году. Отлично �работано.", [2] = "Поздравл�ем. Более вы�ока� дол� ме�тного на�елени� по�ещает вашу больницу, нежели любую другую.", [3] = "Прево�ходно. Вы привлекли в �вою больницу больше на�елени�, чем по�етило в�е о�тальные больницы вме�те вз�тые.", }, penalty = { [1] = "Очень немногие пришли лечить�� в вашу больницу в прошлом году. Чтобы заработать денег вам нужны платеже�по�обные �традальцы.", [2] = "Через двери любой больницы в �той ме�тно�ти проходит больша� дол� на�елени�, чем через ваши. Вам должно быть очень �тыдно.", }, }, happy_vips = { awards = { [1] = "Вы получили �обелев�кую премию за впечатлени�, произведенное на вы�окопо�тавленных о�об. В�е большие шишки, по�ещавшие вашу больницу за прошедший год, оценили ее выше в��ких похвал.", [2] = "Поздравл�ем! Вы награждены орденом «Подлиза» за потакание в�ем большим шишкам, по�ещавшим вашу больницу в прошедшем году. Шикарно!", }, trophies = { [1] = "Клуб Важных Пер�он вручает вам кубок Попул�рно�ти за оказанное внимание в�ем VIP-пер�онам, по�етившим ваше заведение в прошедшем году. Теперь вы можете �читать �еб� немного изве�тнее.", [2] = "�гент�тво Изве�тных Людей вручает вам Знаменитую �аграду за удовлетворение каждого VIP, кто по�етил ваше предпри�тие. Считайте �еб� немного изве�тным, почти одним из на�.", [3] = "Поздравл�ем � выигрышем Путеше�тви� в награду за то, что �делали жизнь трудолюбивых людей в глазах обще�твенно�ти лучше, угожда� каждому из них, кто по�етил вашу больницу. Про�то чуде�но.", }, }, happy_patients = { awards = { [1] = "Вы может быть �амодовольны по поводу того, что в прошлом году пациенты были очень довольны находить�� в вашей больнице.", [2] = "Люди, по�етившие вашу больницу, в �реднем были более довольны �воим лечением, нежели в любой другой больнице в игре.", }, penalty = { [1] = "Люди, приход�щие в вашу больницу, наход�т ее ужа�ной. Вам нужно лучше работать, чтобы за�лужить уважение Мини�тер�тва.", [2] = "Люди, лечащие�� в вашей больнице, очень недовольны ее �о�то�нием. Вы должны тщательнее �ледить за �о�то�нием пациента.", }, }, rats_killed = { awards = { }, trophies = { [1] = "Вы награждены кубком И�требител� за уничтожение %d кры� в вашей больнице за прошедший год.", [2] = "Вы номинированы на награду от �нтикры�иной Коалиции за выдающие�� у�пехи в и�треблении %d �тих мерзких тварей за прошедший год.", [3] = "Вы награждены орденом «Кры�обой» за отвагу и добле�ть в уничтожении �тих гадких �озданий. Было убито %d кры� за прошедший год.", }, }, happy_staff = { awards = { [1] = "Ваши �отрудники номинировали ва� на �ту награду. Они �казали, что хот� и е�ть что улучшать, ваша забота о них о�тавала�ь, в целом, хорошей.", [2] = "Ваши �отрудники �ча�тливы работать на ва�, у них не �ходит улыбка � лица. Вы потр��ающий управл�ющий.", }, trophies = { [1] = "Вы награждены кубком Улыбки за поддержание хорошего на�троени� ваших тружеников в течении прошедшего года.", [2] = "Ин�титут В�елен�кого Сча�ть� вручает вам приз за от�ут�твие в вашем прекра�ном заведении не�ча�тных работников в прошедшем году.", [3] = "Эта награда, Си�ющий Позолоченный кубок, вручает�� вам за поддержание в прошедшем году хорошего на�троени� работников в любой �итуации!", }, regional_bad = { [1] = "Ваши �отрудники были очень не�ча�тны в течение прошлого года. Вы должны знать об �том. �а �амом деле, в любой другой больнице пер�онал чув�твует �еб� лучше, чем в вашей.", }, regional_good = { [1] = "Ваш пер�онал �ча�тливее коллег в любой другой больнице. Довольный пер�онал значит больше прибыль и меньше �мертно�ть. Мини�тер�тво �тим довольно.", }, penalty = { [1] = "Ваши �отрудники хот�т чтобы было изве�тно о том, что они не�ча�тны. Хороший пер�онал - �то преимуще�тво. Сделайте ваших людей �ча�тливее или однажды вы многое потер�ете.", }, }, rats_accuracy = { awards = { }, trophies = { [1] = "Вы не�омненно за�лужили уважение Обще�тва �найперов за %d%% точно�ть при от�треле кры�.", [2] = "Эта награда торже�твенно вручает�� вам за %d%% попадани� по кры�ам вашей больницы в прошедшем году.", [3] = "Чтобы отметить и�требление %d%% кры� в вашей больнице, вам вручает�� преми� Почётного кры�олова!", }, }, all_cured = { awards = { [1] = "Поздравл�ем � получением ордена «�икола� Бурденко» за у�пешное излечение в�ех пациентов, по�етивших вашу больницу в прошедшем году!", }, trophies = { [1] = "Международна� ���оциаци� Излечени� � гордо�тью вручает вам кубок «В�ездрави�» за �топроцентное излечение пациентов в прошедшем году.", [2] = "Вы получаете здоровенную премию за заботу о выздоровлении каждого пациента больницы!", }, }, no_deaths = { awards = { [1] = "Поздравл�ем! Вы получаете орден имени «В. Безтрупова» за �топроцентное выживание ваших пациентов.", [2] = "Ваш гений �вел количе�тво �мертей в го�питале к минимуму. Вы можете быть очень довольны �тим результатом.", }, trophies = { [1] = "Сообще�тво «Жизнь Продолжает��» вручает вам награду за от�ут�твие �мертей �реди пациентов в прошедшем году.", [2] = "Вы награждены кубком «О�тать�� в живых» за то, что в прошедшем году �охранили жизни в�ех �воих пациентов. Поразительно!", [3] = "Вы награждены орденом «�оль �мертей» за то, что в �том году избежали �мертей �реди пациентов в вашей милой больнице. Отлично!", }, penalty = { [1] = "Количе�тво �мертей в вашей больнице в прошлом году было неприемлемо вы�окое. Удел�йте больше времени �воей работе. Убедите�ь, что в будущем выживет больше людей.", [2] = "Ваша больница опа�на дл� здоровь� пациентов. От ва� ждали, что вы будете лечить �воих пациентов, а не убивать их.", }, regional = { [1] = "Чи�ло погибших в вашей больнице в прошлом году было ниже, чем в любой другой в округе. Пожалуй�та, примите �ту награду.", }, }, many_cured = { awards = { [1] = "Примите наши поздравлени� � получением ордена «Матери Терезы» за большин�тво вылеченных пациентов в прошедшем году.", [2] = "Пожалуй�та примите �ту награду за то, что вылечили пациентов больше, чем люба� друга� больница.", }, trophies = { [1] = "Международна� ���оциаци� «Излечение» торже�твенно вручает вам награду за излечение почти в�ех пациентов, обратившим�� в больницу в прошедшем году.", [2] = "Вы получаете такую ценную награду, как кубок «Жизнь Продолжает��» за неверо�тно вы�окий процент вылеченных пациентов вашего заведени� за прошедший год.", [3] = "Вы были пред�тавлены к вручению ордена «�икола� Пирогова» за поддержание вы�окого процента вылеченных людей в прошлом году.", }, penalty = { [1] = "Ваша больница не �могла предо�тавить �ффективное лечение, нуждающим�� в нем, пациентам. Сконцентрируйте�ь на том, чтобы �делать лечение более �ффективным.", [2] = "Ваша больница наименее �ффективна� из в�ех, что ка�ает�� лечени� пациентов. Вы тащите Мини�тер�тво на дно и �ами опу�каете�ь туда же. Мне больше нечего �казать.", }, regional = { [1] = "Вы пред�тавлены к награде за бе�прецедентное и�целение. Это за то, что вы вылечили больше пациентов, чем в�е о�тальные больницы вме�те вз�тые.", }, }, curesvdeaths = { awards = { [1] = "Сердечно поздравл�ем � до�тижением впечатл�ющего �оотношени� вылеченных к убитым в вашей больнице в прошлом году.", }, penalty = { [1] = "Ваше �оотношение вылеченных к убитым крайне плохое. Вы должны быть уверены в том, что вылечите больше людей, чем убьете. Помните - не наоборот.", }, }, emergencies = { award = { [1] = "Поздравл�ем: ваша �ффективно�ть и �ффективное решение �к�тренных �лучаев прино�ит вам �ту о�обенную награду. Отлична� работа!", [2] = "Вы и�ключительно хорошо �правл�ете�ь � �к�тренными �луча�ми. Эта награда за то что вы лучше в�ех �правл�ете�ь � большим потоком больных и �траждущих.", }, regional_good = { [1] = "Мини�тер�тво вы��нило, что ваша больница в прошлом году �правл�ла�ь � �к�тренными �луча�ми лучше чем люба� друга�. По�тому оно вручает вам �ту награду.", }, penalty = { [1] = "Вы ужа�но �правл�ете�ь � �к�тренными пациентами. Прилетающие пациенты дл� немедленного лечени� требуют точного и �воевременного внимани�, чего вы не �могли им дать.", }, regional_bad = { [1] = "Что ка�ает�� �к�тренных �лучаев � пациентами, ваша больница была �амой ужа�ной в регионе. Это ваша вина в том, что вы томите�ь в нижней ча�ти ме�тной лиги �к�тренного лечени�.", }, }, high_rep = { awards = { [1] = "Вам торже�твенно вручает�� награда Кабинета Мини�тров за поддержание �табильно вы�окой репутации больницы в прошедшем году. Отлично!", [2] = "Пожалуй�та, примите награду команды CorsixTH за вы�очайшую репутацию вашего заведени�. Вы �то за�лужили.", }, trophies = { [1] = "Поздравл�ем � получением Кубка «Здоровье нации» за лучшую репутацию �реди больницу в прошедшем году. Так держать!", }, penalty = { [1] = "Вы были ди�циплинированы в поддержании очень плохой репутации на прот�жение прошлого года. Убедите�ь в том, что она поднимет�� в будущем.", [2] = "Репутаци� вашей больницы �ама� ужа�на� в городе. Вы опозорены. Улучшите ее или найдите другую работу.", }, regional = { [1] = "Пожалуй�та примите награду от Bullfrog за �амую вы�окую репутацию из в�ех больниц. �а�лаждайте�ь - вы �то заработали.", [2] = "В �том году, репутаци� вашей больницы превы�ила в�е о�тальные вме�те вз�тые. Это крупное до�тижение.", } }, consistant_rep = { trophies = { [1] = "�а�то�щим, вы получаете награду от Кабинета Мини�тров за �амые безупречные �тандарты и наивы�шую репутацию кака� только может быть. Хорошо �работано.", [2] = "Поздравл�ем � получением Кубка «Здоровье нации» за лучшую репутацию �реди больницу в прошедшем году. Так держать!", }, }, sold_drinks = { awards = { }, trophies = { [1] = "Международна� ���оциаци� Стоматологов вручает вам награду и медальку за огромное количе�тво проданных газированных напитков за прошедший год.", [2] = "Ваша больница награждает�� кубком «Пыщь-пыщь» в че�ть продажи неверо�тного количе�тва прохладительных напитков в прошедшем году.", [3] = "Позвольте нам, при поддержке кондитер�кой фабрики «Синий Пролетарий», вручить вам покрытый шоколадом кубок за вы�окий уровень продаж газированных напитков в прошедшем году.", }, }, wait_times = { award = { [1] = "Поздравл�ем. В вашей больнице пациенты почти не провод�т врем� в очеред�х. Это важна� награда.", }, penalty = { [1] = "Люд�м в вашей больнице приходит�� ждать �лишком долго. В ней в�егда неприемлемые очереди. Вы должны управл�ть�� � вашими пациентами более �ффективно, раз уж за �то вз�ли�ь.", }, }, healthy_plants = { awards = { [1] = "Поздравл�ем! Вы награждены орденом «Лопаты и Т�пки» за поддержание ра�тений в добром здравии круглый год.", }, trophies = { [1] = "В че�ть того, что вы поддерживали ра�тени� в отличном �о�то�нии ве�ь прошедший год, �ациональный Ботаниче�кий Сад вручает вам премию «Ли�товоротки Дикопроизра�тающей».", [2] = "Компани� «Семе�а, получи» награждает ва� премией имени Мичурина в че�ть �воевременного ухода за ра�тени�ми в прошедшем году.", }, }, cleanliness = { regional_good = { [1] = "Ваша больница была отмечена как одна из �амых не прибранных в округе. В гр�зной больнице опа�но и вон�ет. Вы лучше должны за �тим �ледить.", }, award = { [1] = "Ин�пекторы отметили, что ваша больница очень чи�та�. Чи�та� больница - �то безопа�на� больница. Поддерживайте ее в том же виде.", }, regional_bad = { [1] = "Ваша больница �ама� гр�зна� в округе. Любой другой управл�ющий поддерживает �вои коридоры более чи�тыми. Вы - позор медицины!", }, }, hosp_value = { awards = { [1] = " Мини�тер�тво Здравоохранени� поздравл�ет ва� � впечатл�ющей общей �тоимо�тью вашей больницы.", }, penalty = { [1] = "Вашей больнице не удало�ь до�тичь до�тойной �тоимо�ти. Вы прин�ли плохие решени� по управлению капиталом. Помните, хороша� больница - �то так же дорога� больница.", }, regional = { [1] = "Вы финан�овый волшебник. Ваша больница �тоить больше чем в�е о�тальные вме�те вз�тые.", }, }, best_value_hosp = { regional = { [1] = "Поздравл�ем � владением �амой дорогой больницей в игре. Хороша� работа. По�тарайте�ь �охранить �то в дальнейшем.", }, penalty = { [1] = "Люба� больница в округе �тоит дороже вашей. Сделайте что-нибудь � �той позорной ча�тью дел. Закупите больше дорого�то�щего оборудовани�!", }, trophies = { [1] = "Поздравл�ем � получением Кубка «Здоровье нации» за лучшую репутацию �реди больницу в прошедшем году. Так держать!", }, }, research = { regional_good = { [1] = "Ваши и��ледователи поддерживали вашу больницу в кур�е по�ледних разработок. Ваши и��ледователи за�лужили �ту награду. Продолжайте в том же духе!", }, regional_bad = { [1] = "Люба� больница в округе продвинула�ь в и��ледовани�х лучше вашей. Так как и��ледовани� критиче�ки важны дл� вашей больницы, то Мини�тер�тво пребывает в �ро�ти.", }, penalty = { [1] = "Вы не преу�пели в и��ледовании новых лекар�тв оборудовани� и методов лечени�. Это очень плохо. Технологиче�кое прево�ход�тво жизненно необходимо.", }, awards = { [1] = "Ваши и��ледовани� �охранили вашу больницу в кур�е по�ледних �обытий. Ваш и��ледователь�кий пер�онал за�лужил �ту награду. Хорошо �работано.", [2] = "В течение прошлого года вы и��ледовали больше лекар�тв и оборудовани�, чем можно было бы даже наде�ть��. Пожалуй�та примите �ту награду от в�ех на� из Мини�тер�тва.", }, }, cash = "ДЕ�ЬГИ", } drug_companies = { [1] = "Го�ФармХимПром", [2] = "ИП Таблекин", [3] = "ООО Коле�оПлю�", [4] = "ИП Пилюл� Сча�ть�", [5] = "ООО Таблетланди�", } insurance_companies = { [1] = "ИП Сча�тливый �ппендицит", [2] = "ООО Шприц-Гарант", [3] = "ЧП Страхуй и не кипишуй", [4] = "Го�Сбыт�аркСтрах", [5] = "ИП Клизьма и Бахилы", [6] = "ЧП Доктор Страховкин", [7] = "ООО �нтиболезнь", [8] = "ИП За�трахуй-ка", [9] = "ЧП Доктор �йболит", [10] = "ООО Страховой Синдикат", [11] = "ИП Гиппократ и Ко", out_of_business = "ВЫШЕЛ ИЗ БИЗ�ЕС�", } competitor_names = { [1] = "�ЙБОЛИТ", [2] = "ГР�ДУС", [3] = "ВИТ�", [4] = "Г�РМО�ИЯ", [5] = "ТО�УС", [6] = "ЗДОРОВЬЕ", [7] = "ЦИРЮЛЬ�ИК", [8] = "УЛЫБК�", [9] = "ЖИЗ�Ь", [10] = "ИСЦЕЛЕ�ИЕ", [11] = "ЧУДОМЕД", [12] = "ЗДР�В�ИЦ�", [13] = "Ф�РМ�ЦИЯ", [14] = "МОЛЕКУЛ�", [15] = "К�ЛИ��", [16] = "ЗВЕЗД�", [17] = "ЧИСТОТ�", [18] = "О�ЗИС", [19] = "�МБУЛ��Т�", [20] = "ПУЛЬС", [21] = "СОЮЗ", [22] = "ГИППОМЕД", [23] = "Э�ЕРГИЯ", [24] = "ДЗЕ�", } level_names = { [1] = "Отравин�к", [2] = "Сонна� лощина", [3] = "Пол�н�к", [4] = "Правобережино", [5] = "Про�тецк", [6] = "Холмопупинка", [7] = "Зеленоград", [8] = "Белочкино", [9] = "Пограничин�к", [10] = "Яичкино", [11] = "Квакушкино", [12] = "Избиваловка", [13] = "Большие Чумли", [14] = "Мелкопоповецк", [15] = "Клептоман�к", } graphs = { deaths = "Умерло", money_in = "Доход", money_out = "Ра�ход", visitors = "По�етители", wages = "Зарплата", balance = "Балан�", time_spans = { [1] = "1 год", [2] = "12 лет", [3] = "48 лет", }, cures = "Вылечено", reputation = "Репутаци�", } newspaper = { [1] = { [1] = "УЖ�СЫ ��ШЕГО К�БИ�ЕТ�", [2] = "ТЕР�ПЕВТ ВОЗОМ�ИЛ СЕБЯ БОГОМ", [3] = "КРУЧЕ ФР��КЕ�ШТЕЙ��", [4] = "ЧТО У ��С �� СТОЛЕ?", [5] = "ОБЛ�В� �� СУМ�СШЕДШИХ ВР�ЧЕЙ", }, [2] = { [1] = "ВР�Ч УПОРОЛСЯ В ХЛ�М", [2] = "ОТЪЯВЛЕ��ЫЙ ХИРУРГ", [3] = "КО�СУЛЬТ��Т-ДЕБОШИР", [4] = "�ЛКО-ХИРУРГИЯ", [5] = "ХИРУРГ ПОД ��РКОЗОМ", [6] = "ВР�Ч ДЫШ�Л ПЕРЕГ�РОМ", }, [3] = { [1] = "�ЕУД�Ч��Я ХИРУРГИЯ", [2] = "ВР�Ч� З�СТ�ЛИ ВР�СПЛОХ", [3] = "ПРОВ�Л ВР�Ч�", [4] = "�Е��СЫТ�ЫЙ ХИРУРГ", }, [4] = { [1] = "ПОДПОЛЬ�ЫЕ ОПЕР�ЦИИ", [2] = "ОРГ��-ИЗОВ���ОЕ ПРЕСТУПЛЕ�ИЕ", [3] = "ОПЕР�ЦИИ...С ДЕ�ЬГ�МИ", [4] = "ВР�Ч ГРЕБ ДЕ�ЬГИ ЛОП�ТОЙ", }, [5] = { [1] = "МЕДИЦИ�СК� �ЕКРОФИЛИЯ", [2] = "ВР�Ч Р�СК�ПЫВ�Л МОГИЛЫ", [3] = "З�СТУК�ЛИ С ТРУПОМ", [4] = "СУД�ЫЙ ДЕ�Ь ДЛЯ ДОКТОР�", [5] = "ТЕРМИ��ЛЬ��Я СТ�ДИЯ ПР�КТИКИ", [6] = "ДОК�З�ТЕЛЬСТВ� ВЫКОП��Ы!", }, [6] = { [1] = "ВР�Ч� ПОВЯЗ�ЛИ!", [2] = "Р�З! И ВСЕ!", [3] = "ДИ�Г�ОСТИК� �� КОФЕЙ�ОЙ ГУЩЕ", [4] = "КО�СУЛЬТ��Т-�ЕВЕЖД�", [5] = "ВР�Ч УСТРОИЛ МЕСИВО", }, [7] = { [1] = "ДОКТОР З��Л, ЧЕМ ВСЕ КО�ЧИТСЯ", [2] = "ХИРУРГ ВСКРЫЛ С�М СЕБЯ", [3] = "В ПУЧИ�Е КОРРУПЦИИ", [4] = "ВР�Ч В ЦЕ�ТРЕ СК��Д�Л�", [5] = "ДОКТОР З�ПУТ�ЛСЯ В СЛОВ�Х", }, } -- 11. Отладка debug_patient_window = { caption = "Те�товый пациент", } menu_debug = { allow_blocking_off_areas = " Разрешить блокирование обла�тей ", connect_debugger = " (%1%) Соединение � LUA DBGp �ервером ", debug_script = " (%1%) Запу�к �крипта отладки ", transparent_walls = " (%1%) Прозрачные �тены ", make_debug_fax = " Создать тек�товый фак� ", display_pager = " Отобразить пейджер ", cheats = " (%1%) Читы ", remove_objects = " Удалить объекты ", remove_walls = " Удалить �тены ", sprite_viewer = " Про�мотр �прайтов ", map_overlay = " Оверлей ", disable_salary_raise = " Отключить подн�тие зарплаты ", limit_camera = " Ограничение камеры ", calls_dispatcher = " Спи�ок дел пер�онала ", jump_to_level = " Перейти на уровень ", dump_gamelog = " (%1%) Создать дамп лога игры ", dump_strings = " (%1%) Создать дамп �зыковых �трок ", win_game_anim = " �нимаци� победы ", make_debug_patient = " Создать те�тового пациента ", lua_console = " (%1%) Кон�оль Lua ", allow_falling = " Позволить падать пациентам ", } menu_debug_overlay = { heat = " Температура ", byte_0_1 = " Байт 0 & 1 ", -- Not sure how "BYTE" should be translated here byte_6 = " Байт 6 ", flags = " �трибуты ", byte_7 = " Байт 7 ", byte_5 = " Байт 5 ", byte_floor = " Байт пола ", positions = " Координаты ", byte_w_wall = " Байт зап. �тен ", parcel = " Уча�тки ", byte_n_wall = " Байт �ев. �тен ", none = " Убрать оверлей ", } menu_debug_overlay_blocking_off_areas = { choice_1 = " ПОЛ�ОСТЬЮ З�ПРЕЩЕ�О ", choice_2 = " Ч�СТИЧ�О Р�ЗРЕШЕ�О ", choice_3 = " ПОЛ�ОСТЬЮ Р�ЗРЕШЕ�О ", } lua_console = { execute_code = "Выполнить", close = "Закрыть", } calls_dispatcher = { repair = "Починить %s", summary = "%d вызовов; %d назначено", close = "Закрыть", watering = "Полить @ %d,%d", staff = "%s - %s", } machine_menu = { machine = "Mашина", status = "Со�то�ние", remaining_strength = "О�таток", total_strength = "Прочно�ть", close = "Закрыть", ratio = "Соотношение", } level_progress = { hospital_value_enough = "�е дайте �тоимо�ти больницы упа�ть ниже %d и разберите�ь � о�тальными проблемами, чтобы победить.", cured_enough_patients = "Вы вылечили до�таточно пациентов, но ваша больница еще недо�таточно хороша.", } multiplayer = { players_failed = "Следующие игроки не �могли до�тичь по�ледней цели:", everyone_failed = "�икто не �мог до�тичь по�ледней цели. Так что в�е могут играть дальше!", } warnings = { newersave = " Внимание, вы загрузили �охранение из более новой вер�ии CorsixTH. �е рекомендует�� продолжать, так как могут произойти �бои. Играйте на �вой �трах и ри�к. ", levelfile_variable_is_deprecated = "Обратите внимание: Уровень '%s' �одержит у�таревшее определение переменной в файле уровн�. '%LevelFile' был переименован в '%MapFile'. Пожалуй�та, по�оветуйте �оздателю карты обновить уровень.", } adviser_history = { message = "Сообщение", close = "Закрыть", } audio_window = { default_midi_api = "По умолчанию (Software)", sound_volume = "Громко�ть звука", default_midi_port = "По умолчанию", midi_api = "MIDI API", announcement_volume = "Громко�ть объ�влений", music_volume = "Громко�ть музыки", soundfont = "Звуковой шрифт (SoundFont)", midi_port = "Порт MIDI", caption = "�а�тройки звука", soundfont_location_caption = "Выберите звуковой шрифт (SoundFont) (%1%)", } subtitles = { alien001 = "Кра�на� тревога! Инопланетна� атака!", alien002 = "Приземлили�ь инопланет�не, помогите!", alien003 = "Инопланет�не �уще�твуют и наход�т�� в здании!", alien004 = "Инопланет�н про��т не разрушать больницу �лишком �ильно!", alien005 = "Инопланет�не, пожалуй�та, запишите�ь в книге по�етителей.", cheat002 = "Внимание! Больницой управл�ет мошенник!", cheat001 = "�дмини�тратор больницы жульничает!", cheat003 = "О�торожно, читинг! О�торожно, читинг!", emerg019 = "Объ�вление дл� пер�онала: прибывают пациенты � Гнилыми кишками.", emerg031 = "Объ�вление дл� пер�онала: прибывают пациенты � Фальшивой кровью.", emerg014 = "Объ�вление дл� пер�онала: прибывают пациенты � Желеобразно�тью.", emerg006 = "Объ�вление дл� пер�онала: прибывают пациенты � �евидимо�тью.", emerg029 = "Объ�вление дл� пер�онала: прибывают пациенты � Запущенным но�оволо�ением.", emerg026 = "Объ�вление дл� пер�онала: прибывают пациенты � Лопнувшей грыжой.", emerg001 = "Объ�вление дл� пер�онала: прибывают пациенты � Во�палением геморро�.", emerg002 = "Объ�вление дл� пер�онала: прибывают пациенты � Хрониче�кой диареей.", emerg003 = "Объ�вление дл� пер�онала: прибывают пациенты � ТВ-Манией.", emerg004 = "Объ�вление дл� пер�онала: прибывают пациенты � Загадочной про�тудой.", emerg005 = "Объ�вление дл� пер�онала: прибывают пациенты � Трещинами в ко�т�х.", emerg007 = "Объ�вление дл� пер�онала: прибывают пациенты � Раздутием головы.", emerg008 = "Объ�вление дл� пер�онала: прибывают пациенты � Оволо�ением.", emerg009 = "Объ�вление дл� пер�онала: прибывают пациенты � Манией величи�.", emerg010 = "Объ�вление дл� пер�онала: прибывают пациенты � Серьезным облучением.", emerg011 = "Объ�вление дл� пер�онала: прибывают пациенты � В�лым �зыком.", emerg012 = "Объ�вление дл� пер�онала: прибывают пациенты � Плешиво�тью.", emerg013 = "Объ�вление дл� пер�онала: прибывают пациенты � Спонтанным зудом.", emerg015 = "Объ�вление дл� пер�онала: прибывают пациенты � Сонной болезнью.", emerg016 = "Объ�вление дл� пер�онала: прибывают пациенты � Взрывном метеоризмом.", emerg017 = "Объ�вление дл� пер�онала: прибывают пациенты � Потеющими ладон�ми.", emerg018 = "Объ�вление дл� пер�онала: прибывают пациенты � Внезапным возбуханием.", emerg020 = "Объ�вление дл� пер�онала: прибывают пациенты � Инопланетным Д�К.", emerg021 = "Объ�вление дл� пер�онала: прибывают пациенты � Беременно�тью.", emerg022 = "Объ�вление дл� пер�онала: прибывают пациенты � Прозрачно�тью.", emerg023 = "Объ�вление дл� пер�онала: прибывают пациенты � Лишними ребрами.", emerg024 = "Объ�вление дл� пер�онала: прибывают пациенты � Почечными бобами.", emerg025 = "Объ�вление дл� пер�онала: прибывают пациенты � Разбитым �ердцем.", emerg027 = "Объ�вление дл� пер�онала: прибывают пациенты � Смеховиру�ом.", emerg028 = "Объ�вление дл� пер�онала: прибывают пациенты � Гофрированными щиколотками.", emerg030 = "Объ�вление дл� пер�онала: прибывают пациенты � Бакенбардами 3-й �тепени.", emerg032 = "Объ�вление дл� пер�онала: прибывают пациенты � Га�тральными извержени�ми.", emerg033 = "Объ�вление дл� пер�онала: прибывают пациенты � Железными легкими.", emerg034 = "Объ�вление дл� пер�онала: прибывают пациенты � М�чиками в почках.", epid001 = "Эпидемиче�ка� тревога, внимание!", epid002 = "Объ�вление дл� пер�онала: предупреждение об �пидемии!", epid003 = "Внимание, �пидемиче�ка� тревога!", epid004 = "Внимание!", epid005 = "Эпидеми� закончила�ь, можно выдохнуть.", epid006 = "Эпидеми� под контролем.", epid007 = "Эпидеми� локализована.", epid008 = "Чрезвычайна� �пидемиологиче�ка� �итуаци� завершена.", quake001 = "Внимание! Сообщает�� о землетр��ении.", quake002 = "Внимание! Землетр��ение неизбежно.", quake003 = "Внимание! Предупреждение о землетр��ении.", quake004 = "Внимание! Приближает�� землетр��ение.", rand001 = "Белый �лужебный телефон.", rand002 = "Доктор Джекил, пожалуй�та, в п�ихиатриче�кое отделение.", rand003 = "Курение в больнице запрещено.", rand005 = "Пациентам напоминаем, чтобы они не умирали в коридорах.", rand006 = "Кашель и чихание ра�про�тран�ют болезни.", rand008 = "Сообщение дл� пациентов: оплата принимает�� чеками.", rand009 = "Сообщение дл� пациентов: оплата принимает�� кредитными картами.", rand010 = "Пожалуй�та, �облюдайте тишину, люди больны.", rand012 = "Пациенты, про�ьба не блевать �лишком �ильно.", rand016 = "Пациенты наход�т�� зде�ь на �вой �трах и ри�к.", rand017 = "Бе�поконых пациентов про��т ве�ти �еб� как можно тише.", rand019 = "Пациентов про��т ждать без шума.", rand022 = "Му�орить запрещено.", rand025 = "Пациенты должны иметь наготове �вои чековые книжки.", rand026 = "Пациенты, приготовьте �вои кредитные карты.", rand027 = "Терминально неизлечимо больных пациентов — в начало очереди.", rand028 = "Пожалуй�та, вы�траивайте�ь в организованные очереди.", rand029 = "Следите за другими продуктами Bullfrog.", rand030 = "�е �лон�йте�ь без дела.", rand031 = "�е му�орить.", rand032 = "�е блевать.", rand035 = "Го�подинам Берку и Х�ру про�ьба пройти к заднему выходу.", rand036 = "Пожалуй�та, не кормите вредителей, �па�ибо!", rand037 = "Пациентам напоминаем, пожалуй�та, �тоните тихо, �па�ибо!", rand040 = "Предупреждение о му�орной бомбе!", rand041 = "Мне надоело объ�вл�ть! Я хочу домой.", rand013 = "Внимание: �то предупреждение.", rand018 = "Пациентов про��т про�вить терпение.", rand024 = "Пациенты, пожалуй�та, держите �вои микробы при �ебе.", rand021 = "Пожалуй�та, не му�орите в больнице.", rand034 = "Специальное предложение �егодн�: замена воло� за полцены.", rand033 = "Сотрудникам напоминаем о необходимо�ти ча�то отдыхать.", rand046 = "Ваша звукова� карта работает.", rand044 = "Про�им в�ех, пожалуй�та, не блевать в коридорах.", rand045 = "Доктор Лектер, пожалуй�та, обратите�ь к охране.", reqd001 = "Доктора про��т пройти в Кардиологиче�кий кабинет.", reqd002 = "Доктора про��т пройти в кабинет Сканировани�.", reqd003 = "Доктора про��т пройти в П�ихиатрию.", reqd004 = "Мед�е�тра требует�� в Клинике во��тановлени� ко�тей.", reqd005 = "Доктора про��т пройти в Языкорезку.", reqd006 = "Доктора про��т пройти в кабинет Машины крови.", reqd007 = "Доктора про��т пройти в Ультра�канирование.", reqd008 = "Доктора про��т пройти в кабинет Терапевта.", reqd009 = "Мед�е�тра требует�� в Палате.", reqd011 = "Второй Хирург требует�� в Операционной.", reqd012 = "Мед�е�тра требует�� в �птеке.", reqd013 = "Доктора про��т пройти в Рентген.", reqd014 = "Доктора про��т пройти в кабинет � Воздуходувкой.", reqd015 = "Доктора про��т пройти в кабинет Во��тановлени� Д�К.", reqd016 = "Доктора про��т пройти в кабинет Во��тановлени� воло�.", reqd017 = "Доктора про��т пройти в кабинет Обучени�.", reqd020 = "Доктора про��т пройти в кабинет � Желе-ванной.", reqd021 = "Доктора про��т пройти в кабинет Общей диагно�тики.", reqd023 = "Требует�� и��ледователь в И��ледователь�ком отделе.", reqd010 = "Два хирурга требуют�� в Операционной.", reqd019 = "Доктора про��т пройти в кабинет Электро�пил�ции.", reqd024 = "Доктора про��т пройти в кабинет � Обеззараживающим душем.", sack001 = "Врач уволен.", sack002 = "Врач уходит.", sack003 = "Врач уходит.", sack004 = "Мед�е�тра уходит.", sack005 = "Мед�е�тра уходит.", sack006 = "Уволенный ма�тер идет на выход.", sack007 = "Ре�епшиони�тке предложено покинуть помещение.", sack008 = "Ре�епшиони�т уходит.", sack009 = "Сотрудник переманен.", sack010 = "Врача переманили.", sorry001 = "Прино�им извинени� за количе�тво му�ора.", sorry002 = "Прино�им извинени� за �ильный холод.", sorry003 = "Прино�им извинени� за �ильную жару.", sorry004 = "Прино�им извинени� пациентам, радиаторы неи�правны.", sorry005 = "Предупреждение о рвоте, будьте о�торожны.", sorry006 = "Об�луживание, предупреждение о рвоте в коридоре.", vip001 = "Внимание, у на� в здании VIP-пер�она.", vip002 = "В здание вошел VIP-го�ть.", vip003 = "Визит VIP-го�т�.", vip004 = "VIP-пер�она о�матривает здание.", vip005 = "К нам пожаловала VIP-пер�она.", vip008 = "В больницу пожаловал пред�тавитель мини�тер�тва.", maint004 = "Требует�� ма�тер дл� ремонта Языкорезки.", maint005 = "Требует�� ма�тер дл� ремонта Рентгенов�кого аппарата.", maint006 = "Требует�� ма�тер дл� ремонта И�правител� Д�К.", maint007 = "Требует�� ма�тер дл� ремонта Во��тановител� воло�.", maint008 = "Требует�� ма�тер дл� ремонта Электро�пил�тора.", maint009 = "Требует�� ма�тер дл� ремонта Желе-ванны.", maint010 = "Требует�� ма�тер дл� ремонта Кардиоаппарата.", maint011 = "Требует�� ма�тер дл� ремонта Диагно�тиче�кого аппарата.", maint012 = "Требует�� ма�тер дл� ремонта Обеззараживающего душа., ", maint013 = "Требует�� ма�тер дл� ремонта Воздуходувки.", maint014 = "Требует�� ма�тер дл� ремонта Во��тановител� ко�тей.", maint015 = "Требует�� ма�тер дл� ремонта �нализатора крови.", maint016 = "Требует�� ма�тер дл� ремонта Ультра�канера.", machwarn = "*Сигнал тревоги аппарата*.", } CorsixTH-0.70.0/CorsixTH/Lua/languages/simplified_chinese.lua000066400000000000000000005056761522247547500240610ustar00rootroot00000000000000--[[ Copyright (c) 2012 lwglwsss Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- Note: This file contains UTF-8 text. Make sure your editor is set to UTF-8. Font("unicode") Language("简体中文", "Chinese (simplified)", "zh(s)", "chi(s)", "zho(s)") Inherit("english") Encoding(utf8) IsArabicNumerals(false) -- Search OVERRIDE and NEW STRINGS for workspace ------------------------------- OLD STRINGS ------------------------------- -- Generated from official Simplified Chinese datapack, do not modify! -- Use OVERRIDE if errors present staff_class = { nurse = "护士", doctor = "医生", handyman = "清�工", receptionist = "接待员", surgeon = "外科医生", } staff_title = { receptionist = "接待员", general = "普通人", -- unused? nurse = "护士", junior = "实习医生", doctor = "医生", surgeon = "外科医生", psychiatrist = "精神病医生", consultant = "专家", researcher = "研究员", } object = { desk = "办公桌", cabinet = "文件柜", door = "房门", bench = "长椅", table1 = "桌�", -- unused object chair = "椅�", drinks_machine = "饮料机", bed = "床", inflator = "充气机", pool_table = "��桌", reception_desk = "接待�", table2 = "桌�", -- unused object & duplicate cardio = "心电图仪", scanner = "扫�仪", console = "控制�", screen = "�风", litter_bomb = "垃圾炸弹", couch = "长沙�椅", sofa = "沙�", crash_trolley = "诊断仪器�推车", tv = "电视机", ultrascanner = "超级扫�仪", dna_fixer = "DNA 修�装置", cast_remover = "石�剥离装置", hair_restorer = "毛���机", slicer = "舌头治疗机", x_ray = "X 光机", radiation_shield = "射线防护", x_ray_viewer = "X 光�视仪", operating_table = "手术�", lamp = "�", -- unused object toilet_sink = "洗手池", op_sink1 = "洗手池", op_sink2 = "洗手池", surgeon_screen = "外科�风", lecture_chair = "教室座�", projector = "放映机", bed2 = "床", -- unused duplicate pharmacy_cabinet = "医�柜", computer = "计算机", atom_analyser = "原�分�仪", blood_machine = "血液机器", fire_extinguisher = "��器", radiator = "暖气", plant = "�物", electrolyser = "电分解机器", jelly_moulder = "胶桶", gates_of_hell = "地狱之门", bed3 = "床", -- unused duplicate bin = "垃圾桶", toilet = "厕所", swing_door1 = "转门", swing_door2 = "转门", shower = "淋浴", auto_autopsy = "自动验尸仪", bookcase = "书柜", video_game = "电视游�", entrance_left = "�入�", entrance_right = "左入�", skeleton = "骨骼模型", comfortable_chair = "舒适座椅", } pay_rise = { definite_quit = "�论您�什么都无法留�我了。", regular = { "我真的太累了。如果您�希望我辞�的�,请让我好好休�,并增加工资%d 。", -- %d (rise) "我真的太累了。我需�休�,以�增加工资%d 。立�答应,你这个暴�。", -- %d (rise) %d (new total) "好�。我在这里工作就象一�狗一样。给我奖金%d 我就还留在这个医院里。", -- %d (rise) "我很�快�。我�求增加工资%d ,使我的工资达到%d ,�则我就�干了。", -- %d (rise) %d (new total) "我的父�告诉我医学专家的待�是很高的。因此,请给我加薪%d ,�则我将辞�去�电脑游�。", -- %d (rise) "我已��够了。请调整我的工资到��程度。我希望加薪%d 。", -- %d (rise) }, poached = "%s 答应给我工资%d 。如果您无法达到这个数目,那么我就�跳槽了。", -- %d (new total) %s (competitor) } place_objects_window = { drag_blueprint = "拉伸�图直到您满�的尺寸", place_door = "设置房门", place_windows = "请设置一些窗户,点击鼠标表示确定", place_objects = "�以设置并移动这些物�直到满�为止,���确定", confirm_or_buy_objects = "您�以确认该房间,或买入或移动其中的一些物�", pick_up_object = "点击物��以将其拾起,也�以选择��的选项", place_objects_in_corridor = "将物�放在走廊上", } misc = { grade_adverb = { mildly = "柔和的", moderately = "适当的", extremely = "�端的", }, done = "完�", pause = "暂�", send_message = "�玩家%d ��信�", -- %d (player number) send_message_all = "�所有玩家��信�", save_success = "游�存档�功", save_failed = "错误:无法存档", hospital_open = "医院开门", out_of_sync = "游�失去�步", load_failed = "存档游�没有被读�", low_res = "低清晰度", balance = "难度选择:", mouse = "�鼠", force = "力�", cant_treat_emergency = "你的医院尚未了解这�新的疾病。请下次�试。", } diseases = { golf_stones = { cure = "治疗�由两�外科医生执行手术。", name = "高尔夫症", cause = "病因��入了高尔夫�内部的有毒气体。", symptoms = "症状�神�错乱且胡言乱言。", }, uncommon_cold = { cure = "治疗��用�房�制的特效�。", name = "感冒", cause = "病因��进了空气中的�尘。", symptoms = "症状��鼻涕,打喷�。", }, third_degree_sideburns = { cure = "治疗�精神病医生必须使用最新科技,使病人认识到这些奇装异�都是垃圾。", name = "络腮胡�", cause = "病因��往20 世纪70 年代。", symptoms = "症状�长头�,全身闪闪�光。", }, heaped_piles = { cure = "治疗��用�剂。", name = "痔疮", cause = "病因�站立在水冷�器�边。", symptoms = "症状�病人感觉就象�在大�石上。", }, broken_heart = { cure = "治疗�由两�外科医生打开病人的胸腔,轻轻地修补其心�缺陷。", name = "破碎的心", cause = "病因�一些人比病人富有,年轻,瘦。", symptoms = "症状�痛哭�涕。", }, kidney_beans = { cure = "治疗�由两�外科医生执行手术。", name = "肾豆", cause = "病因�饮料中加入了大�冰�。", symptoms = "症状�疼痛且�常去厕所。", }, pregnancy = { cure = "治疗�在手术中心中将婴儿�出,洗净�到病人��。", name = "产妇", cause = "病因�怀孕", symptoms = "症状��断增大的啤酒肚。", }, chronic_nosehair = { cure = "治疗���令人厌�的毛�去除剂,该�剂由护士在�房�制。", name = "鼻毛过多症", cause = "病因��常对�如自己的人嗤之以鼻。", symptoms = "症状�鼻毛过长过多,快�鸟巢了。", }, infectious_laughter = { cure = "治疗�一�精神病医生必须让病人了解其当�严�的病情。", name = "狂笑症", cause = "病因�观看�典喜剧。", symptoms = "症状���狂笑。", }, the_squits = { cure = "治疗��用粘性�剂修补病人的内�。", name = "呕�", cause = "病因��了�质的比�饼。", symptoms = "症状�噢。想必您也�以猜得到。", }, fractured_bones = { cure = "治疗�将已打好的石�使用仪器去除。", name = "骨折", cause = "病因�从高处摔到混�土地�上。", symptoms = "症状�剧痛且无法使用四肢。", }, general_practice = { name = "一般诊断", }, ruptured_nodules = { cure = "治疗�两�称�的外科医生必须使用稳定的�手切除肿瘤。", name = "肿瘤", cause = "病因�在寒冷的季节中跳跃。", symptoms = "症状�无法舒适地�下。", }, sweaty_palms = { cure = "治疗�精神病医生使病人走出心�误区。", name = "手心出汗症", cause = "病因�害怕找工作时的�试。", symptoms = "症状�当与病人�手时,感觉就象攥�一��满了水的海绵。", }, diag_cardiogram = { name = "心电图仪诊断", }, slack_tongue = { cure = "治疗�将舌头放入舌头切片机中,将快速有效地得到治疗。", name = "舌头�弛症", cause = "病因�过多地讨论肥皂剧。", symptoms = "症状�舌头增长到正常的5 �。", }, diag_general_diag = { name = "一般诊断", }, broken_wind = { cure = "治疗��用�房�制的特效�。", name = "臭�症", cause = "病因�饭�使用�身房的脚�车进行�动。", symptoms = "症状�使身�的人感到�度的�舒�。", }, invisibility = { cure = "治疗�在�房�下彩色液体,将很快使病人��正常。", name = "�身", cause = "病因�被有放射性的蚂��咬。", symptoms = "症状�病人本身感觉�到任何�适,并常常和家里人开玩笑。", }, baldness = { cure = "治疗�使用仪器将头���到病人的头上。", name = "秃顶", cause = "病因��公众说谎�。", symptoms = "症状�脑门�亮,�分困窘。", }, sleeping_illness = { cure = "治疗�由护士�制一剂�力强大的兴奋剂给病人�用。", name = "嗜�症", cause = "病因�内分泌失调", symptoms = "症状�无论走到那里都想�觉。", }, gastric_ejections = { cure = "治疗��用特殊�固剂从而阻止呕�。", name = "�胃症", cause = "病因��了过辣的四��。", symptoms = "症状��消化的食物被病人�时�出。", }, transparency = { cure = "治疗��用�房�制的特殊清凉彩色冲剂就�以治愈疾病。", name = "�明症", cause = "病因�舔了打开的容器的铅箔上的酸乳酪。", symptoms = "症状�肌肉�得�明,对光�感。", }, corrugated_ankles = { cure = "治疗��用少�毒�和香料制�的�剂,从而打通关节。", name = "脚�弯曲", cause = "病因�驾驶时间过长。", symptoms = "症状�脚�感觉�舒�。", }, diag_ultrascan = { name = "超级扫�仪诊断", }, serious_radiation = { cure = "治疗�病人必须被放置在净化淋浴器内彻底清洗。", name = "放射病", cause = "病因���心错误��了�有钚元素的�香糖。", symptoms = "症状�病人感到�常�常的�舒�。", }, iron_lungs = { cure = "治疗�两�外科医生在手术中心执行手术。", name = "�肺", cause = "病因�城市中浑浊的空气。", symptoms = "症状�浑身难�。", }, bloaty_head = { cure = "治疗�打破肿胀脑袋,并使用充气机使脑袋��正常。", name = "头部肿胀", cause = "病因�闻到了�乳酪并�了�干净的雨水。", symptoms = "症状��常�舒�。", }, diag_scanner = { name = "扫�仪诊断", }, hairyitis = { cure = "治疗�使用电分解机器去掉毛�并填补�留的毛孔。", name = "多毛症", cause = "病因�在月光下�留过长时间。", symptoms = "症状�嗅觉特别��。", }, diag_x_ray = { name = "X 光诊断", }, fake_blood = { cure = "治疗��有精神病医生�能使病人安�下�。", name = "�血", cause = "病因�病人常常开玩笑。", symptoms = "症状��出红色液体。", }, jellyitis = { cure = "治疗�将病人浸入到胶桶中。", name = "失衡症", cause = "病因�日常饮食�有过多的胶状物并完�太多的练习。", symptoms = "症状�走路摇摇晃晃并�时摔倒。", }, alien_dna = { cure = "治疗�利用仪器快速清除病人体内的DNA 。", name = "外星人DNA", cause = "病因�拥有了外星人的DNA", symptoms = "症状���蜕��外星人并阴谋摧�我们的城市。", }, gut_rot = { cure = "治疗�由护士�制�剂,交给病人�下。", name = "内��烂", cause = "病因��了太多的�士忌酒。", symptoms = "症状��咳嗽,但胃�也没有了。", }, king_complex = { cure = "治疗�由精神病医生告诉病人其�谬的举止。", name = "猫王综�症", cause = "病因�猫王的�想进入病人大脑并�而代之。", symptoms = "症状�穿�举止怪异。", }, tv_personalities = { cure = "治疗�一�精神病医生必须使病人有信心�掉电视机,而购买收音机。", name = "电视病", cause = "病因�日间电视节目。", symptoms = "症状�产生错觉,以为自己正在表演。", }, diag_blood_machine = { name = "血液机器诊断", }, discrete_itching = { cure = "治疗�病人�下胶状糖浆阻止皮肤�痒。", name = "�痒症", cause = "病因�昆虫�咬。", symptoms = "症状�到处乱抓,引起全身�炎。", }, unexpected_swelling = { cure = "治疗�由两�外科医生实行手术。", name = "肿胀", cause = "病因��外事件。", symptoms = "症状�肿胀。", }, autopsy = { name = "验尸", }, diag_ward = { name = "病房诊断", }, spare_ribs = { cure = "治疗�由两�外科医生执行手术。", name = "瘦骨", cause = "病因��在冰冷的石地�上。", symptoms = "症状�胸部感觉�适。", }, diag_psych = { name = "精神病诊断", }, } competitor_names = { "神谕", "巨人", "黑尔", "马笛维克", "冬�树", "沉�", "禅", "里昂", "玛文", "晶体", "�亲", "�尼", "CORSIX", -- Main developers just for fun. "ROUJIN", "EDVIN", "�姆", "查�", "亚瑟", "马格尼斯", "赛尔", "约书亚", "丹尼尔", "奥利文", "尼克", } months = { "1 月", "2 月", "3 月", "4 月", "5 月", "6 月", "7 月", "8 月", "9 月", "10 月", "11 月", "12 月", } -- "Null", -- not needed? -- "银行�户", -- unused(?) -- "现金", -- unused(?) graphs = { money_in = "收入", money_out = "支出", wages = "工资", balance = "现金", visitors = "访问者", cures = "治愈", deaths = "死亡", reputation = "声望", time_spans = { "1 年", "12 年", "48 年", } } transactions = { --null = "Null", -- not needed wages = "工资", hire_staff = "雇佣员工", buy_object = "购买物�", build_room = "建造房屋", cure = "治愈", buy_land = "购买土地", treat_colon = "治疗", final_treat_colon = "最终治疗", cure_colon = "治疗:", deposit = "治疗收入", advance_colon = "进步:", research = "研究花费", drinks = "收入:饮料机", jukebox = "收入:投�音�盒", -- unused cheat = "骗钱", heating = "供暖费", insurance_colon = "�险费:", bank_loan = "银行贷款", loan_repayment = "贷款�还", loan_interest = "贷款利率", research_bonus = "研究奖金", drug_cost = "��花费", overdraft = "�支利率", severance = "隔离花费", general_bonus = "支付一般奖金", sell_object = "�出物�", personal_bonus = "支付个人奖金", emergency_bonus = "支付紧急事件奖金", vaccination = "接�疫苗", epidemy_coverup_fine = "�瞒传染病罚款", compensation = "政府赔�金", vip_award = "贵宾现金奖励", epidemy_fine = "传染病罚款", eoy_bonus_penalty = "年度奖金/ 罚款", eoy_trophy_bonus = "年度物�奖励", machine_replacement = "汰�机器花费", remove_room = "移除已��的房间", } humanoid_name_starts = { "欧得", "黑尔", "安德", "本", "�", "比尔", "维", "瓦特", "�得", "金", "巴", "派特", "曼", "�艾", "沃", "�克", "克�伯", "费什", "瓦特", "米尔", "白", "芬", "里奇", "斯科特", "伯尔", "派克", "科", "维特", "比�", "��", "伯格", "怀特", "科尔", } humanoid_name_ends = { "斯密斯", "�克", "克利夫", "桑", "因格顿", "�里", "顿", "桑", "�", "伯利", "波姆", "兰", "汉默", "希尔", "温", "莱特", "艾尔斯", "顿", "蒙德", "曼", "爱尔顿", "�", "摩", "摩尔", "莱特", "林", } adviser = { tutorial = { -- 1) build reception build_reception = "你好。首先,您的医院需�一个接待�,您�以从布置走廊��中选�。", -- start of the tutorial order_one_reception = "使用鼠标左键�击闪动的光�,�以定购一个接待�。", accept_purchase = "点击闪动的�标表示购买。", rotate_and_place_reception = "点击鼠标�键�以旋转桌�,并用鼠标左键将其放在医院中�适�置。", reception_invalid_position = "如果接待�是�色的,则表示当��置是�法的。应�试移动或旋转它。", -- 2) hire receptionist hire_receptionist = "您也需�一�接待员�接待病人。", select_receptionists = "使用鼠标左键�击闪动的�标�查看当��选择的接待员。�标下方的数字表示共有多少个接待员�供选择。", next_receptionist = "这是接待员列表中的第一个。左键�击闪动的�标�以�览下一个�供选用的接待员。", prev_receptionist = "左键�击闪动的�标将�以�览到�一个�供选择的接待员。", choose_receptionist = "判断哪一个接待员拥有好的能力与�适的工资,�左键�击闪动的�标�雇佣她。", place_receptionist = "移动接待员并将她放到任��置。她将很�明地自己走到接待�。", receptionist_invalid_position = "您�能将接待员放在那里。", -- 3) build GP's office -- 3.1) room window build_gps_office = "您必须建造一般诊断室��以诊断病人。", select_diagnosis_rooms = "点击闪动的�标将弹出诊断类房间列表。", click_gps_office = "点击闪动光�表示选择一般诊断室。", -- 3.2) blueprint -- [11][58] was maybe planned to be used in this place, but is not needed. click_and_drag_to_build = "建造一般诊断室时应先决定具体的尺寸。点击并按�鼠标左键�以设置房间尺寸。", room_in_invalid_position = "该�图是�法的,红色区域表示�图与其它房间或墙���。", room_too_small = "该房间的�图为红色是因为其尺寸太�了。通过拖动使其尺寸增大。", room_too_small_and_invalid = "�图尺寸太�了且处于�法�置。", room_big_enough = "�图尺寸已�足够大了。当您�开鼠标按键表示确认。如果需�的�,以�还�以根�需�移动或改�其尺寸。", -- 3.3) door and windows place_door = "沿��图墙�移动鼠标,寻找放置房门的�适�置。", door_in_invalid_position = "房门设置�置�法。请�试�图墙�上的其它�置。", place_windows = "设置窗户的方法与设置房门的方法相�。您�以�需�窗户,但是当您的员工�以从窗户�外张望时,他们将感到快�。", window_in_invalid_position = "该窗�处于�法�置。请�试�图墙�上的其它�置。", -- 3.4) objects place_objects = "�击�以旋转房屋中的��物�,�左击表示确认。", object_in_invalid_position = "该物�当��置�法。请�么将其放到其它�置,�么对其进行旋转。", confirm_room = "左键�击闪动�标就�以开业了,也�以通过点击交�按钮返回上一步。", information_window = "帮助�将告诉您刚刚建造的一般诊断室信�。", -- 4) hire doctor hire_doctor = "您需�一个医生�诊断和治疗病人。", select_doctors = "点击闪动的�标挑选�被雇佣的医生。", choose_doctor = "在选择医生之�,应�点考虑其能力。", place_doctor = "将医生放在医院中的任��置。他将直奔一般诊断室,为病人诊断。", doctor_in_invalid_position = "嗨�您�能将医生放在那里。", -- (currently) unused start_tutorial = "阅读任务简报,��点击鼠标左键就�以�动教程。", build_pharmacy = "�喜�现在应建造一个�房并雇佣一�护士,使医院正常�转。", }, staff_advice = { need_doctors = "您需�更多的医生。请将最得力的医生放在排队等候人数最多的房间内。", too_many_doctors = "您雇佣的医生太多了。其中有一些人当�正闲�。", -- too_many_doctors_2 = "您雇佣的医生太多了。" -- duplicate need_handyman_litter = "医院中出现了垃圾。请雇佣一个清�工人打扫垃圾。", need_handyman_plants = "您需�雇佣一�清�工人�为�物浇水。", need_handyman_machines = "如果希望维护医院内的��医疗机器,则需�雇佣清�工人。", need_nurses = "您需�雇佣更多的护士。病房和�房都需�护士。", too_many_nurses = "我认为您现在雇佣了太多的护士。", }, -- used when you place staff in a wrong place staff_place_advice = { only_researchers = "�有拥有研究技能的医生��以在研究部门工作。", -- in research center only_surgeons = "�有拥有外科技能的医生��以在手术中心工作。", -- in operating theatre only_psychiatrists = "�有具有精神病治疗技能的医生��以在精神病诊断治疗室中工作。", -- in psychiatry only_nurses_in_room = "�有护士�以在%s 中工作", -- %s (room name) doctors_cannot_work_in_room = "医生无法在%s 中工作", -- %s (room name) nurses_cannot_work_in_room = "护士无法在%s 中工作", -- %s (room name) only_doctors_in_room = "�有医生�以在%s 中工作", -- %s (room name) receptionists_only_at_desk = "接待员�能在接待�工作。", not_enough_lecture_chairs = "��医生学员需�一个教室座�", }, build_advice = { blueprint_invalid = "�图�置�法。", blueprint_would_block = "�图与其它房间��了。请�试�新设置�图尺寸,或移动�图�置。", door_not_reachable = "病人无法进入那扇门。仔细想一想。", placing_object_blocks_door = "设置该物��以阻止其他人接近", }, -- these are used when completing a room with certain requirements (if they are not met yet) room_requirements = { psychiatry_need_psychiatrist = "您需�雇佣一�精神病医生,现在您已�建�了一个精神病诊断治疗室。", pharmacy_need_nurse = "您应该为�房雇佣一�护士。", training_room_need_consultant = "您应该为培训室雇佣一�专家,负责讲演。", research_room_need_researcher = "您需�为研究室雇佣一个拥有研究技巧的医生。", op_need_two_surgeons = "请为手术中心雇佣两�外科医生完�手术。", op_need_another_surgeon = "您至少还需�为手术中心雇佣一�外科医生。", op_need_ward = "您必须为外科手术�的患者建造病房。", ward_need_nurse = "您需�为病房雇佣一�护士。", gps_office_need_doctor = "您需�为一般诊断室雇佣一�医生。", reception_need_receptionist = "您必须为病人雇佣一�接待员。", }, surgery_requirements = { need_surgeons_ward_op = "您需�雇佣两�外科医生,并修建一个病房和手术中心,这样��以完�外科手术。", need_surgeon_ward = "为了完�外科手术,您还需�雇佣一�外科医生,以�修建一个病房。", }, warnings = { money_low = "", money_very_low_take_loan = "您的现金�太少了。您�以�试贷款。", cash_low_consider_loan = "您的�动资金状况�分�妙。是�考虑贷款?", bankruptcy_imminent = "嗨! 您快破产了。�心啊!", financial_trouble = "您正�临�严�的财政�机。立�整��户�如果您���$%d ,本关任务将失败。", -- %d amount left before level is lost finanical_trouble2 = "多增加一些收入。如果���$%d 任务就会失败。", -- %d same as above financial_trouble3 = "您的现金状况�太妙。想办法增加一些收入。您�离失败还差$%d 。", -- %d same again pay_back_loan = "您已�挣到了很多钱。为什么�考虑�还贷款?", machines_falling_apart = "您的机器快爆炸了。请立�让清�工进行维修�", no_patients_last_month = "上个月,没有新的病人��您的医院。太�怕了�", nobody_cured_last_month = "上个月几乎没有治愈一个病人。", queues_too_long = "队�太长了。", patient_stuck = "有人被��了,更好地规划您的医院。", patients_unhappy = "病人�喜欢您的医院。您必须为�高环境质��一些事情。", patient_leaving = "一个病人离开了。原因?医院管��善,员工工作�力,�加上设施�全。", patients_leaving = "病人们正在离去。在医院中多摆放一些�物,长椅,饮料机等物�将有助于挽留他们。", patients_really_thirsty = "病人们感到�渴。多放置一些饮料机,或将已有的饮料机移动到最长的队��边。", patients_annoyed = "人们对医院的管�感到�端愤怒。我�能责备他们,抓紧时间解决问题��", patients_thirsty = "人们感到�渴。也许您应该�他们�供饮料机。", patients_thirsty2 = "人们抱怨�渴。您应该在医院中多设置一些饮料机,或将已有的饮料机移动到他们身边。", patients_very_thirsty = "人们感到太�渴了。如果您�立�设置一些饮料机,则将看到大多数人回家去���。", patients_too_hot = "病人们感到太热了。�么拆除一些暖气,调低供热标准,�么为他们多设置一些饮料机。", patients_getting_hot = "病人们感到太热了。请�低医院的供热,或移走一些暖气。", patients_very_cold = "病人们感到太冷了。请增加医院的供热,或在医院中多摆放一些暖气。", people_freezing = "无法相信,在这个拥有中央空调的时代,您的一些病人竟然快被冻僵了。赶快摆放一些暖气并打开供暖开关使他们感到温暖。", staff_overworked = "您的员工已�劳累过度。他们的办事效率正在下�,并将有�能�生医疗事故。", staff_tired = "您的员工感到太疲倦了。如果您��让他们到员工休�室休�一会儿,则�些人会由于长时间的紧张疲劳导致崩溃。", staff_too_hot = "您的工作人员感到太热了。请调低供热标准或拆除房间内的暖气。", staff_very_cold = "员工们感觉太冷了。请增加医院的供热,或在医院中多摆放一些暖气。", staff_unhappy = "您的工作人员�是很快�。�以�试给他们一些奖金,或为他们建造一个员工休�室。您也�以在医院制度画�中调整员工需�休�时的疲劳程度。", staff_unhappy2 = "您的员工都�是很快�。很快他们就会�求�奖金。", doctor_crazy_overwork = "喔,��您的一�医生已�由于劳累过度快��狂了。如果能够立�让他休�,他将得到��。", reduce_staff_rest_threshold = "�试在医院制度画�中�少员工休�时的疲劳程度,这样员工将�常休�。这�是一个主�。", nurses_tired = "您的护士感到疲倦了。立�让她们休�。", doctors_tired = "您的医生太累了。立�让他们休�。", handymen_tired = "您的清�工人太劳累了。立�让他们休�。", receptionists_tired = "您的接待员太疲劳了。立�让她们休�。", nurses_tired2 = "您的护士太疲倦了。立�让她们休�。", doctors_tired2 = "您的医生太疲倦了。立�让他们休�。", handymen_tired2 = "您的清�工太疲倦了。立�让他们休�。", receptionists_tired2 = "您的接待员太疲倦了。立�让她们休�。", -- What? need_toilets = "病人需�洗手间。请在一些易找的地方建造洗手间。", build_toilets = "立�建造一个洗手间,�则您将看到�常�雅的事情�生。想象一下医院中将会出现的味�。", build_toilet_now = "立�建造洗手间。人们已��无��了。别傻笑,这�是一个严�问题。", more_toilets = "您需�更多的马桶。人们都已急��待了。", people_did_it_on_the_floor = "您的一些病人����了。赶快打扫干净。", need_staffroom = "建造一个员工休�室使您的员工得以休�。", build_staffroom = "立�建造一个员工休�室。您的员工工作太辛苦了,而且将�精神崩溃了。快点�", many_killed = "您已��死了%d 个病人。您本应该治愈他们的病。", -- %d (number of killed patients) plants_thirsty = "您需�对�物进行照料。它们正感到干渴。", too_many_plants = "您已�布置了足够多的�物了。医院都快��丛林了", charges_too_high = "治疗费用太高了。短期内它将产生很好的效益,但最终会把病人�跑的。", charges_too_low = "治疗费用太低了。它将使更多的病人到医院就诊,但您无法从�个病人身上获�太多的利润。", machine_severely_damaged = "%s 已�快彻底��了。", -- %s (name of machine) machinery_slightly_damaged = "您的医疗仪器有轻微�伤。别忘了维护。", machinery_damaged = "立�修�您的机器。它们无法支撑太久。", machinery_damaged2 = "您必须立�雇佣一�清�工去负责修�维护机器。", machinery_very_damaged = "紧急�立�派清�工去修�机器�它们�爆炸了�", machinery_deteriorating = "您的机器由于过度使用已�出现�化现象。�心。", queue_too_long_send_doctor = "您的%s 队�太长了。请确认房间中是�有医生。", -- %s (name of room) queue_too_long_at_reception = "在接待��排队等待的病人太多了。请�建一个接待�并雇佣一�接待员。", reception_bottleneck = "接待�已无法满足需�。�雇佣一�接待员。", -- TODO find out why there's 133 and 134. epidemic_getting_serious = "传染病疫情越�越严�。您必须立�行动�", deal_with_epidemic_now = "如果无法立�控制传染病那么您的医院将出大乱�。加油�", many_epidemics = "看�医院里�时有��一�传染病。这将是一场空��难,加油�", hospital_is_rubbish = "人们在到处宣扬您的医院是垃圾。�知�您的医院很快就会臭�远洋。", more_benches = "是�考虑多摆放一些长椅。一些病情严�的病人现在正被迫站�等待治疗。", people_have_to_stand = "病人�得�站立等待。立�多摆放一些长椅。", too_much_litter = "医院中的废弃物�断增多。派几个清�工人就�以解决。", litter_everywhere = "医院中的废弃物到处都是。多派几个清�工人就�以解决。", litter_catastrophy = "医院中的废弃物太多了。立�派一队清�工人解决这个问题。", some_litter = "清�工人�以在垃圾�堆之�清除所有垃圾。", place_plants_to_keep_people = "人们正在离开。多摆放一些�物�以挽留他们。", place_plants2 = "人们正在离开。多摆放一些�物�以使他们多�留一会儿。", place_plants3 = "人们的情绪很糟。多摆放一些�物使他们快�。", place_plants4 = "在医院中多摆放一些�物使所有病人感到快�。", desperate_need_for_watering = "您需�雇佣一�清�工照料医院中的�物。", change_priorities_to_plants = "您必须改�清�工的工作优先级,使他们更多地为�物浇水。", plants_dying = "您的�物快干死了。它们需�水。多为�物派些清�工。病人��愿�看到枯死的�物。", another_desk = "新雇用的接待员需�添加一个接待�", }, praise = { many_plants = "太�爱了。您已�布置了足够的�物。病人将感到满�。", plants_are_well = "太棒了。�物被照料得很好。", plants_thriving = "太棒了。医院中的�物生长得很茂盛。它们看起�令人感到惊奇。��。,您将有�能赢得一个大奖。", many_benches = "病人拥有足够的座�。太棒了。", plenty_of_benches = "座椅已�足够了。", few_have_to_stand = "在您的医院中几乎�个人都有座�。所有的病人都感到快�。", patients_cured = "已�治愈了%d 个病人。", -- %d (number of cured patients) }, information = { epidemic = "在您的医院中�现了一�传染病。您必须立�处��", emergency = "紧急情况�快�快�快�", promotion_to_doctor = "您的一个实习医生��为医生了。", promotion_to_specialist = "您的一个医生被��为%s 。", -- %s (type: psychiatrist, scientist, surgeon) promotion_to_consultant = "您的一�医生已���为专家了。", first_death = "这是您第一次�死病人。感觉如何?", first_cure = "干得好�您已�治愈了第一个病人。", place_windows = "设置窗户将使房间更加明亮,并振奋员工的精神。", larger_rooms = "大的房间将使员工感觉到自己的��,并�高他们的表现。", extra_items = "房间中摆放物�将使员工感到舒�并�高他们的表现。", patient_abducted = "您的一�病人被外星人诱�了。", -- what the heck is this? I never got that far in the original... patient_leaving_too_expensive = "一�病人没有为%s 付款就离开了。这�失太大了。", pay_rise = "您的一个员工���辞�。选择是���其请求,或将其解雇。点击�幕左下方的�标�以查看���辞�的员工信�。", -- TODO only in tutorial / first time? handyman_adjust = "您�以通过调整清�工人工作的优先级使其打扫得更干净。", -- TODO only in tutorial / first time? fax_received = "在�幕左下角刚刚弹出的�标表示一些��事件的相关信�,或�些需�您决定的事情。", -- Once only vip_arrived = "�心�%s 正准备访问您的医院���医院�转正常,这样�能使他感到愉快。", -- %s (name of VIP) epidemic_health_inspector = "您的医院中出现传染病的消�已�到达了�生部。�生巡查员很快就�到达,快�准备。", initial_general_advice = { research_now_available = "您已�建造了第一个研究房间。现在您�以进入研究画�。", research_symbol = "拥有研究技能的医生�跟符�:}", surgeon_symbol = "拥有外科手术技能的医生�跟符�:{", psychiatric_symbol = "拥有精神病技能的医生�跟符�:|", rats_have_arrived = "�鼠在您的医院中到处乱跑。使用鼠标打死它们。", autopsy_available = "自动验尸机被研制出�了。通过它,您�以处置惹麻烦或�欢迎的病人,还�以对他们进行研究。�注��能�使用该机器还有很大的争议。", first_epidemic = "在医院中爆�了传染病请决定是掩盖病情还是将其清除出去。", first_VIP = "您�接待�访的第一�贵宾。一定�确�贵宾没有看到任何�良事件,或其他�高兴的病人。", taking_your_staff = "有人想�挖走您的员工。您�抓紧与他们进行斗争。", machine_needs_repair = "您有一�机器需�维修。确定机器�置�它�能正在冒烟�在机器上点击一下,�点击清�工人按钮。", epidemic_spreading = "您的医院中�现传染病。在病人离开医院之�一定�治愈他们。", increase_heating = "人们感到寒冷。打开城镇地图画�中的供暖设施。", place_radiators = "医院中的人们感到寒冷�您�以多摆放一些暖气。", decrease_heating = "医院中的人们感到太热了。在城镇地图画�中,�低供热�。", first_patients_thirsty = "医院中的人们感到�渴。为他们多摆放一些饮料机。", first_emergency = "急救病人的头顶有一个闪亮的�色急救�。在死亡之�或时间倒数结�之�治愈他们。", }, }, earthquake = { alert = "地震警报。在地震过程中,医院中的机器将��。如果它们没有得到�时维护将彻底��。", damage = "地震��了医院中%d �机器,并使%d 个人�伤。", -- %d (damaged machines) %d (injured people) ended = "我认为这是一个大家伙�按照�查标准为%d 。", -- %d (severance of earthquake) }, boiler_issue = { maximum_heat = "锅炉快失控了。暖气的供暖能力已�达到��了。医院里的人都快被熔化了�多设置一些饮料机。", minimum_heat = "噢,终于找到您了。锅炉�了。也就是说医院里的人将感到有点冷。", resolved = "好消�。锅炉和暖气现在工作正常。气温很快就�以��到正常水平。", }, vomit_wave = { started = "请赶快处�医院中的呕�物,�则呕�现象会四处传播。也许您需�多雇佣几个清�工人。", ended = "嗨�呕�现象已被控制。今�一定���医院的清�。", }, goals = { win = { money = "您还需�%d �能完�本关中的财政指标。", -- %d (remaining amount) reputation = "�高声望%d 将达到胜利完�本任务的�求", -- %d (required amount) value = "您需�增加医院收入到$%d", -- %d (required amount) cure = "�治愈%d 个病人您就�以满足本关任务的�求了。", -- %d (remaining amount) }, lose = { kill = "��死%d 病人将导致本任务失败", -- %d (remaining amount) }, }, level_progress = { nearly_won = "您已��离胜利�常接近了。", three_quarters_won = "您�离胜利还差四分之三。", halfway_won = "您�离胜利还差一�。", nearly_lost = "您�离失败�有一步之�了。", three_quarters_lost = "您�离失败还差四分之三。", halfway_lost = "您�离失败还差一�。", another_patient_cured = "干得好�治愈了一个病人。收入$%d 。", another_patient_killed = "哦,��您已��死了一个病人。这已�是第%d 个了。", financial_criteria_met = "您已�完�了本任务�求达到的财政目标。现在请��现金在%d 以上,使我们确信您的医院�行良好。", -- %d money threshold for the level cured_enough_patients = "您已�治愈了足够多的病人,但是您�有达到更高的标准�能胜利完�任务。", dont_kill_more_patients = "您实际上无力支付太多的医疗事故赔款�", reputation_good_enough = "好的,您的声望已�达到任务�求了。��在%d 以上,并解决好其它方�的问题。", -- %d rep threshold for the level improve_reputation = "您需��高声望%d ,这样�能有机会完�任务。", -- %d amount to improve by hospital_value_enough = "��医院价值在%d 以上,并解决好其它问题,就能胜利完�任务了。", -- %d keep it above this value close_to_win_increase_value = "您�离胜利�有一步之�了。�增加医院价值%d 。", }, research = { new_machine_researched = "一个新的%s 刚刚被�功研究出�。", -- %s (machine(?) name) new_drug_researched = "治疗%s 的一�新�被研究�功。", -- %s (disease name) drug_improved = "治疗%s 的��被您的研究部门改良了。", -- %s (disease name) drug_improved_1 = "治疗%s 的��被您的研究部门改良了。", -- %s (disease name) machine_improved = "%s 的疗效被您的研究部门增强了。", -- %s (machine name) new_available = "一�新的%s �以使用了", -- %s TODO What is this? Where to use this and where [11][24]? -- ANSWER: It is used if research is not conducted in an area for very long. Some diagnosis equipment -- becomes available anyway after some years. Then this message is displayed instead of [11][24] drug_fully_researched = "您已�研究%s 到达100% 了。", -- %s (drug(?) name) autopsy_discovered_rep_loss = "您的自动验尸机已�研制�功。对公众将产生副作用。", }, competitors = { hospital_opened = "竞争对手%s 的医院在本区域内已�开张了。", -- %s (competitor name) land_purchased = "%s 已�购买了一些土地。", -- %s (competitor name) staff_poached = "您的一�员工被其它医院挖走了。", }, multiplayer = { -- "NULL" unused everyone_failed = "�个人都没有完�最终目标。因此�个人都�继续努力�", players_failed = "下�的玩家没有完�最终目标:", poaching = { already_poached_by_someone = "没门�有人想�挖走这个人。", not_interested = "哈哈�他们对为您工作�感兴趣�他们希望找寻自我价值。", in_progress = "我将让您了解这个人是�愿�为您工作。", }, objective_completed = "您已�完�任务了。�喜�", -- missing in some TH versions objective_failed = "任务失败。", -- missing in some TH versions }, placement_info = { -- "Null" unused room_cannot_place = "您无法在这里建房。", room_cannot_place_2 = "您无法在这里建房。", -- hmm. why? maybe the previous one should've been "can" reception_can_place = "您�以在这里放置接待�。", reception_cannot_place = "您无法在这里放置接待�", door_can_place = "如果您愿�的��以在这里设置房门。", door_cannot_place = "抱歉,您无法在这里设置房门。", window_can_place = "你�以在这里设置窗户,这样很好。", window_cannot_place = "您实际上无法在这里设置窗户。", staff_can_place = "您�以在这里安置员工。", staff_cannot_place = "您无法在这里安置员工。对�起。", object_can_place = "您�以在这里摆放物�。", object_cannot_place = "嗨,您无法在这里摆放物�。", }, epidemic = { -- "NULL" unused serious_warning = "传染病疫情越�越严�。您必须立�行动�", hurry_up = "如果无法立�控制传染病那么您的医院将出大乱�。加油�", multiple_epidemies = "看�医院里�时有��一�传染病。这将是一场空��难,加油�", }, } level_names = { -- "Null" -- unused "毒气城", "��城", "大柴斯特城", "��明顿城", "新普顿城", "世界之疮", "绿池城", "曼葵城", "�斯特�尔", "爱格森海姆城", "蛙鸣城", "巴登堡", "查姆雷城", "�爪槟城", "葬礼城", } town_map = { -- "Null" -- unused chat = "城镇细节", for_sale = "出售", not_for_sale = "��购买", number = "地区编�", owner = "地区所有", area = "地区�积", price = "地区售价", } -- NB: includes some special "rooms" -- reception, destroyed room and "corridor objects" rooms_short = { -- "Null" -- unused -- "尚未使用" -- unused reception = "接待�", destroyed = "已��", corridor_objects = "走廊物�", gps_office = "一般诊断室", psychiatric = "精神病诊疗室", ward = "病房", operating_theatre = "手术中心", pharmacy = "�房", cardiogram = "心电图仪", scanner = "扫�仪", ultrascan = "超级扫�仪", blood_machine = "血液机器", x_ray = "X 光仪器", inflation = "充气机", dna_fixer = "DNA 修�装置", hair_restoration = "毛���机器", tongue_clinic = "舌头治疗机", fracture_clinic = "骨折诊所", training_room = "培训室", electrolysis = "电分解诊所", jelly_vat = "胶桶诊所", staffroom = "员工休�室", -- rehabilitation = "病人�原室", -- unused general_diag = "高级诊断室", research_room = "研究部门", toilets = "洗手间", decontamination = "净化设备", } rooms_long = { -- "Null" -- unused general = "一般", -- unused? emergency = "紧急事件", corridors = "走廊", gps_office = "一般诊断室", psychiatric = "精神病诊断治疗室", ward = "病房", operating_theatre = "手术中心", pharmacy = "�房", cardiogram = "心电图仪房间", scanner = "扫�仪房间", ultrascan = "终�扫�仪房间", blood_machine = "血液机器房间", x_ray = "X 光房间", inflation = "充气房间", dna_fixer = "DNA 修�装置", hair_restoration = "毛���装置", tongue_clinic = "舌头�弛诊治所", fracture_clinic = "骨折诊所", training_room = "培训室", electrolysis = "电分解诊所", jelly_vat = "胶桶", staffroom = "员工休�室", -- rehabilitation = "没有使用", -- unused general_diag = "高级诊断室", research_room = "研究部门", toilets = "洗手间", decontamination = "净化", } disease_discovered_patient_choice = { need_to_employ = "雇用一�%s就�以处�该情况。", } drug_companies = { -- "Null", -- unused "良�公�", "�医公�", "��片公�", "普芬公�", "欧米尼公�", } build_room_window = { -- "Null", -- unused pick_department = "选择部门", pick_room_type = "选择房间类型", cost = "花费:", } buy_objects_window = { choose_items = "选择物�", price = "价格:", total = "总共:", } research = { categories = { cure = "治疗仪器", diagnosis = "诊断仪器", drugs = "��研究", improvements = "改良", specialisation = "专项", }, funds_allocation = "资金�置", allocated_amount = "已分��", } policy = { header = "医院制度", diag_procedure = "诊断程�", diag_termination = "诊断结�", staff_rest = "员工休�", staff_leave_rooms = "员工离开房间", sliders = { guess = "�试治疗", -- belongs to diag_procedure send_home = "��回家", -- also belongs to diag_procedure stop = "�止治疗", -- belongs to diag_termination staff_room = "去员工休�室", -- belongs to staff_rest } } room_classes = { -- "Null" -- unused -- "走廊" -- "corridors" - unused for now -- "尚未使用" -- unused diagnosis = "诊断室", treatment = "治疗室", clinics = "诊所", facilities = "附属设施", } -- These are better of in a list with numbers insurance_companies = { out_of_business = "无", "天鹅绒有�公�", "诺�克洋葱公�", "�峰公�", "刀疤有�公�", "潜水艇有�公�", "诚实的泰瑞公�", "矮胖先生股份有�公�", "里昂猫公�", "普里邦有�公�", "快��险公�", "辛迪加�险公�", } menu = { file = " 文件 ", options = " 选项 ", display = " 显示 ", charts = " 图表 ", debug = " DEBUG ", } menu_file = { load = " 读� ", save = " 存储 ", restart = " �新开始 ", quit = " 退出 ", } menu_file_load = { " 存档一 ", " 存档二 ", " 存档三 ", " 存档四 ", " 存档五 ", " 存档六 ", " 存档七 ", " 存档八 ", } menu_file_save = menu_file_load menu_options = { sound = " 音效 ", announcements = " 语音 ", music = " 音� ", sound_vol = " 音效音� ", announcements_vol = " 语音音� ", music_vol = " 音�音� ", autosave = " 自动存盘 ", game_speed = " 游�速度 ", jukebox = " 音�盒 ", } menu_options_volume = { -- redundant in original strings: M[10] and M[11] [100] = " 100% ", [ 90] = " 90% ", [ 80] = " 80% ", [ 70] = " 70% ", [ 60] = " 60% ", [ 50] = " 50% ", [ 40] = " 40% ", [ 30] = " 30% ", [ 20] = " 20% ", [ 10] = " 10% ", } menu_options_game_speed = { slowest = " �常慢 ", slower = " 较慢 ", normal = " 正常 ", max_speed = " 快速 ", and_then_some_more = " �快 ", } menu_display = { high_res = " 阴影", -- mcga_lo_res = M[4][2], -- shadows = M[4][3], } menu_charts = { statement = " 银行�户 ", casebook = " 治疗手册 ", policy = " 制度 ", research = " 研究 ", graphs = " 图表 ", staff_listing = " 员工列表 ", bank_manager = " 银行�� ", status = " 状� ", briefing = " 任务简报 ", } menu_debug = { object_cells = " OBJECT CELLS ", entry_cells = " ENTRY CELLS ", keep_clear_cells = " KEEP CLEAR CELLS ", nav_bits = " NAV BITS ", remove_walls = " REMOVE WALLS ", remove_objects = " REMOVE OBJECTS ", display_pager = " DISPLAY PAGER ", mapwho_checking = " MAPWHO CHECKING ", plant_pagers = " PLANT PAGERS ", porter_pagers = " PORTER PAGERS ", pixbuf_cells = " PIXBUF CELLS ", enter_nav_debug = " ENTER NAV DEBUG ", show_nav_cells = " SHOW NAV CELLS ", machine_pagers = " MACHINE PAGERS ", display_room_status = " DISPLAY ROOM STATUS ", display_big_cells = " DISPLAY BIG CELLS ", show_help_hotspot = " SHOW HELP HOTSPOTS ", win_game_anim = " WIN GAME ANIM ", win_level_anim = " WIN LEVEL ANIM ", lose_game_anim = { " LOSE GAME 1 ANIM ", " LOSE GAME 2 ANIM ", " LOSE GAME 3 ANIM ", " LOSE GAME 4 ANIM ", " LOSE GAME 5 ANIM ", " LOSE GAME 6 ANIM ", " LOSE GAME 7 ANIM ", }, } staff_list = { -- "NULL" unused -- "工作 �字 技能 工资 士气疲劳程度" -- I have no idea what this is. morale = "士气", tiredness = "疲劳程度", skill = "技能", total_wages = "工资总�", } high_score = { -- "Null" unused pos = "�次", player = "玩家", score = "分数", best_scores = "�誉堂", worst_scores = "耻辱堂", killed = "�死病人数目", -- is this used? categories = { money = "最富有", salary = "工资最高", clean = "最干净", cures = "治愈人数", deaths = "死亡人数", cure_death_ratio = "医治无效死亡率", patient_happiness = "顾客满�", staff_happiness = "员工满�", staff_number = "员工数目最多", visitors = "访问者最多", total_value = "总价值", }, } trophy_room = { -- "NULL" unused many_cured = { awards = { "�喜您在过去一年中治愈了这么多的病人。很多人都感觉�错,感谢您的工作。", "由于您的医院治愈了比其它医院更多的病人,所以请接�这个奖励。您的表现太棒了。", }, penalty = { "您的医院无法使病人得到很好的治疗。请关注并加以改进。", "您的医院对病人的治疗效果�如其它医院。您使�生部和您自己都�声扫地。下�为例。", }, trophies = { "由于您的医院在过去一年中�功地治疗了几乎所有病人,特此�喜您�获玛丽治疗奖。", -- for around 100% cure rate "由于您的医院在过去一年中治愈了大�患者,国际治疗基金会特此�您��悬壶济世奖。", -- for around 100% cure rate "由于您的医院在过去一年中治愈了大�患者,特此��疾病克星奖。", -- for around 100% cure rate }, regional = { "由于您的医院治愈的病人数目比其它医院的总和还多,特此��奖励。", }, }, all_cured = { awards = { "由于您的医院在过去一年中�功地治疗了所有病人,特此��玛丽治疗奖。", -- for 100% treat rate (does that mean none sent home or killed?) }, trophies = { "由于您的医院在过去一年中�功地治疗了就诊的�个病人,国际治疗基金会特此�您��全部治愈奖。", -- for 100% cure rate "由于您的医院在过去一年中治愈了大�患者,特此��急病克星奖。", -- for 100% cure rate }, }, hosp_value = { awards = { "由于您的医院价值��,因此�生部�您表示�喜。", }, penalty = { "您的医院价值太低了。您的�财能力太次了。记�一个好的医院通常也是价值最高的医院。", }, regional = { "您真是一个�财高手。您的医院的价值比其它医院的总和还�多。", }, }, best_value_hosp = { trophies = { "由于您的医院在过去一年中赢得了最高的声望,特此��白衣天使奖。这是您应得的。", }, regional = { "�喜您管�的医院�为最有价值的医院。干得好。��下去。", }, penalty = { "周围�个医院都比您的医院富有。您�加油啊。多购买一些昂贵的东西。", }, }, consistant_rep = { trophies = { "由于您的医院在过去一年中无懈�击的��以�最高的声望,您被授予内�大臣奖。干得好。", "由于您的医院在过去一年中赢得了最高的声望,特此��白衣天使奖。这是您应得的。", }, }, high_rep = { awards = { "干得好。在上一个年度,由于您获得了很高的声望,特此��一个��的奖励。", "太棒了! 由于您在过去一年中�得了很高的声望,特此��奖励。", }, penalty = { "在过去一年中,您赢得了很低的声望。以�一定�加油啊。", -- is this the penalty for consistant poor rep? "您的声望是本区域最低的。真丢人。加油干。", }, regional = { "由于您的医院在过去一年中赢得了最高的声望,特此��牛蛙奖。这是您应得的。", "在这一年中,您的医院的声望超过了其它所有医院的总和。真是一项伟大的�就。", }, }, happy_staff = { awards = { "您的员工表示��您�奖。他们说虽然还有很多需�改进的地方,但您对待他们的�度使他们感到很快�。", "您的员工感到能够为您工作是一件�常快�的事情,他们的笑容挂在脸上。您真是一个超级管�人�。", }, penalty = { "您的员工希望您知�他们�常�高兴。好的员工就是最有价值的资产。使他们快�,�则您将在一天之内失去全部。", }, regional_good = { "您的员工比其它医院的员工都�快�。快�的员工�味�更高的利润和更低的死亡率。�生部感到�常高兴。", }, regional_bad = { "您的员工在上一年度中�常�幸。您一定�加以留�。其它医院的员工都比您的员工快�。", }, trophies = { "由于您的医院在过去一年中使努力工作的员工��快�,特此��微笑奖。", "由于您的医院在过去一年中没有�快�的员工,特此��阿达尼学院奖。", "由于您的医院在过去一年中使努力工作的员工��快�,特此��笑星奖�。快�地笑��", }, }, happy_vips = { trophies = { "由于您的医院在过去一年中给�访的贵宾们留下了深深地好感,特此�您��诺�尔奖。", "由于您的医院使��造访贵宾都感到快�,特此由�人机构��著�人士奖。您已��为我们�人行列中的一员。", "由于您的医院在过去一年中使�一��访贵宾都感到了员工的工作热情,特此��贵宾满�奖。", }, }, no_deaths = { awards = { "由于您的医院在本年度��了很低的死亡人数,特此��奖励。太棒了。", "由于您的天�管�使医院的死亡人数达到最低点。这真是令人高兴的事情。", }, penalty = { "在过去一年中,您的医院的死亡人数始终很高。一定�多加注�。以�一定�确�病人的存活。", -- this may need an over-ride as it looks wrong "unacceptably" not "acceptably" IMO "您的医院对于病人的�康简直就是在冒险。您应该治愈大�的病人,而�是让他们加速死亡。", }, trophies = { "由于您的医院在过去一年中没有�生任何病人死亡事件,特此��安全奖。", "由于您的医院在过去一年中没有�生病人死亡事件,特此由生命�展组织�您�奖。", "由于您的医院在过去一年中���生病人死亡事件,特此��挽留妙手回春奖。", }, regional = { "您的医院的死亡人数比其它医院都低。请接�这个奖励。", }, }, rats_killed = { trophies = { "由于您的医院在过去一年中共击毙了%d ��鼠,特此��除害奖。", -- %d (number of rats) "由于您高超的击鼠技巧共击毙�鼠%d �,特此���邦�鼠奖。", -- %d (number of rats) "由于您的医院在过去一年中共击毙了%d ��鼠,特此���鼠克星奖。", -- %d (number of rats) }, }, rats_accuracy = { trophies = { "由于您击打�鼠的命中率为%d%% ,特此����枭雄2 射击准确奖。", -- %d (accuracy percentage) "由于您的医院在过去一年中以难以置信的命中率%d%% 击毙�鼠,特此�奖。", -- %d (accuracy percentage) "由于您的医院在过去一年中击毙了%d%% 的�鼠,特此��地下城守护者除害奖。�喜�", -- %d (accuracy percentage) }, }, healthy_plants = { awards = { "由于您的医院在过去一年中是�物���康�长,特此���壮�长奖。", }, trophies = { "由于您的医院在过去�二个月中使所有�物长势良好,特此盆栽�物�会�您��绿色�康奖。", "由于您的医院在过去一年中使所有�物长势良好,特此��绿色�人奖。", }, }, sold_drinks = { trophies = { "由于您的医院在过去一年中售出了大�的�装饮料,特此由全�牙医��会�您�奖。", "由于您的医院在过去一年中�出大�饮料,特此软饮料零售组织�您��清凉饮料奖。", "由于您的医院在过去一年中�出大�软饮料,特此由DK 填充公��您��巧克力奖�。", }, }, pop_percentage = { awards = { "在过去一年中,您的医院在城镇人�中获得了很高的份�。干得好。", "�喜。访问您的医院的居民人数超过了其它任何一个医院。", "干得好。访问您的医院的居民人数超过了其它医院的总和。", }, penalty = { "在过去一年中,您的医院�有很少的就诊病人。如果希望赚钱,就应该先付出。", "在本区域中的�个医院都比您拥有更多的�有�。您应该感到羞愧。", }, }, gen_repairs = { awards = { "由于您的清�工人使医院内的仪器设备�行良好,特此��特别奖金。干得好。�期愉快。", "您的清�工人比其它医院的都�好。这真是一件值得庆�的事情。", "您的仪器维护得很好。这一切都离�开清�工人的努力。干得好。", }, penalty = { "您的清�工人在维护机器方�表现�是很好。您应该让他们更多地关心维护�养工作,或者�多雇佣几�清�工人。", "维修工作一团糟。您的清�工人无法很好的照料��医疗仪器。", }, }, curesvdeaths = { awards = { "�喜您在过去一年中使医院��了很高的治愈率和很低的死亡率。", }, penalty = { "您的治愈率实在是太低了。您应该使治愈的病人多于死亡的病人。��颠倒了。", }, }, research = { awards = { "您的研究使您的医院始终紧跟最新�展。这是您的科研人员应得的奖励。", "在过去一年中,您比其它医院研究出更多的��和仪器设备。请接��生部��的这个奖励。", }, penalty = { "您研究开�新治疗方案,仪器和��的速度太慢了。这将无法赶上时代的步�。", }, regional_good = { "您的研究使您的医院始终紧跟最新�展。这是您的科研人员应得的奖励。", }, regional_bad = { "本区域中的�个医院在研究方�都强于您的医院。这一点使�生部感到震怒。", }, }, cleanliness = { award = { "�生巡查员注�到您的医院�常干净。干净的医院�味�安全的医院。��下去。", }, regional_good = { "您的医院是最�乱的医院之一。一个�乱的医院�仅味�难闻,而且是�分�险的。请密切留�。", }, regional_bad = { "您的医院是本区域中最�乱的。其它医院都使走廊��整�。您使医学界蒙羞。", }, }, emergencies = { award = { "�喜:由于您的努力和�有�效的紧急事件处�能力,使您�获该特别大奖。干得好。", "您处�紧急事件的能力�常�出。由于您最佳的处�能力,特此��奖励。", }, penalty = { "您处�紧急事件的能力实在太差了。��就诊的急救病人并没有得到正确的治疗。", }, regional_good = { "�生部认识到您的医院在处�紧急事件时比其它医院都�好,特此��奖励。", }, regional_bad = { "您的医院是本区域中处�紧急事件最差的。这都是您的过错。", }, }, wait_times = { award = { "�喜。您的医院的排队等待时间�常短。这是给您的奖励。", }, penalty = { "病人在您的医院中排队等待时间太长了。您应该好好地管���就诊的病人。", }, }, happy_patients = { awards = { "在过去一年中,您的医院使所有访问的病人都感到快�,您将为此感到骄傲。", "访问您的医院的病人比其它医院内的病人�快�得多。", }, penalty = { "�去您的医院就诊的病人感到�常�满。您必须改进�高��以获得�生部的尊�。", "在您的医院中接�治疗的病人感到�常�高兴。您应多为病人的�利�想。", }, }, -- Strings used in the plaques to show what has been won reputation = "声望", cash = "现金", } -- Section 28: more adviser strings (see above) casebook = { reputation = "声望", treatment_charge = "治疗花费", earned_money = "收入", cured = "��", deaths = "事故", sent_home = "��回家", research = "集中研究", cure = "治疗", cure_desc = { build_room = "我建议您修建%s", -- %s (room name) build_ward = "您�需�建造一个病房。", hire_doctors = "您需�雇佣一些医生。", hire_surgeons = "您需�雇佣一些外科医生。", hire_psychiatrists = "您需�雇佣一些精神病医生。", hire_nurses = "您需�雇佣一些护士。", no_cure_known = "未治愈。", cure_known = "治愈。", improve_cure = "�高疗效。", }, } -- 30, 31: multiplayer. not needed for now. tooltip = { -- "没有帮助" unused build_room_window = { room_classes = { diagnosis = "选择诊断类房间", treatment = "选择处�类房间", clinic = "选择治疗类房间", facilities = "选择附属类房间", }, cost = "当�被选择房间价格", close = "�消并返回游�", }, toolbar = { bank_button = "左击进入银行��画�,�击进入银行�户", balance = "现金", reputation = "声望", -- NB: no %d! Append " ([reputation])". date = "日期", rooms = "建造房屋", objects = "设置走廊", edit = "编辑房间/ 物�", hire = "雇佣员工", staff_list = "员工管�", town_map = "城镇地图", casebook = "治疗手册", research = "研究", status = "状�", charts = "图表", policy = "制度", }, hire_staff_window = { doctors = "查看�雇佣的医生", nurses = "查看�雇佣的护士", handymen = "查看�雇佣的清�工人", receptionists = "查看�雇佣的接待员", prev_person = "查看�一个人", next_person = "查看�一个人", hire = "雇佣", cancel = "�消", doctor_seniority = "医生资历(实习医生,医生,专家)", staff_ability = "员工能力", salary = "工作", qualifications = "医生的特殊技能", surgeon = "外科医生", psychiatrist = "精神病医生", researcher = "科研人员", }, buy_objects_window = { price = "物�价格", total_value = "定购物�总值", confirm = "购买物�", cancel = "�消", decrease = "少买一个", increase = "多买一个", }, staff_list = { doctors = "查看医院中被雇佣医生��", nurses = "查看医院中被雇佣护士��", handymen = "查看医院中被雇佣清�工人��", receptionists = "查看医院中被雇佣接待员��", happiness = "显示员工满�程度", tiredness = "显示员工疲劳程度", ability = "显示员工能力水平", salary = "该员工当�工资", happiness_2 = "员工士气", tiredness_2 = "员工的疲劳程度", ability_2 = "员工的能力水平", prev_person = "选择��上一页", next_person = "选择��下一页", bonus = "付给该员工10% 奖金", sack = "解雇员工", pay_rise = "�高员工工资10%", close = "退出并返回游�", doctor_seniority = "医生资历", detail = "细心程度", view_staff = "查看员工工作情况", surgeon = "�格外科医生", psychiatrist = "�格精神病医生", researcher = "�格研究人员", surgeon_train = "已�接�了%d%% 的外科培训", -- %d (percentage trained) psychiatrist_train = "已�接�了%d%% 的精神病治疗培训", -- %d (percentage trained) researcher_train = "已�接�了%d%% 的研究技能培训", -- %d (percentage trained) skills = "特殊技能", }, queue_window = { num_in_queue = "排队等候的病人数目", num_expected = "�将加入队�的病人数目", num_entered = "到目�为止该房间已处�病人数目", max_queue_size = "接待员�许的最大排队人数", dec_queue_size = "�少队�的最大长度", inc_queue_size = "增加队�的最大长度", front_of_queue = "拖动一�病人到该按钮处,将使其移动到队首", end_of_queue = "拖动一�病人到该按钮处,将使其移动到队尾", close = "关闭��", patient = "拖动病人将改�其排队�置。�击�个病人�以选择将其��回家或��到竞争对手的医院。", patient_dropdown = { reception = "将病人�到接待员处", send_home = "让病人离开医院", hospital_1 = "将病人�到其它医院", hospital_2 = "将病人�到其它医院", hospital_3 = "将病人�到其它医院", }, }, main_menu = { new_game = "开始新游�", load_game = "读入进度", continue = "继续游�", network = "开始网络游�", quit = "退出", load_menu = { load_slot = "读�进度", -- NB: no %d! Append " [slotnumber]". empty_slot = "空", }, }, window_general = { cancel = "�消", confirm = "确定", }, patient_window = { close = "�消请求", graph = "通过点击�以在�康情况和病�之间切�", happiness = "快�程度", thirst = "干渴程度", warmth = "温暖程度", casebook = "查看有关疾病的详细情况", send_home = "把病人赶出医院", center_view = "切�到当�人物", abort_diagnosis = "无需诊断直接去治疗", queue = "查看队�详细资料", }, staff_window = { name = "员工�字", close = "�消��", face = "�孔", happiness = "快�程度", tiredness = "疲劳程度", ability = "能力", doctor_seniority = "资历�是实习医生,医生还是专家", skills = "特殊技术", surgeon = "外科", psychiatrist = "精神病", researcher = "研究", salary = "月薪", center_view = "切�到当�人物", sack = "解雇", pick_up = "拾起", }, machine_window = { name = "�字", close = "�消请求", times_used = "机器被使用次数", status = "机器状况", repair = "呼�清�工维修机器", replace = "汰�机器", }, -- Apparently handymen have their own set of strings (partly) containing "handyman". -- We could just get rid of this category and include the three prios into staff_window. handyman_window = { name = "清�工的�字", -- contains "handyman" close = "�消请求", face = "清�工的�孔", -- contains "handyman" happiness = "快�程度", tiredness = "疲劳程度", ability = "能力", prio_litter = "�高清�工清除垃圾的优先级", -- contains "handyman" prio_plants = "�高清�工给�物浇水的优先级", -- contains "handyman" prio_machines = "�高清�工维修机器的优先级", -- contains "handyman" salary = "工资", center_view = "切�到当�人物", -- contains "handyman" sack = "解雇", pick_up = "拾起", }, place_objects_window = { cancel = "�消", buy_sell = "买/ �物�", pick_up = "拾起物�", confirm = "确认", }, casebook = { up = "�上滚动", down = "�下滚动", close = "关闭治疗手册", reputation = "治疗或诊断接待�", treatment_charge = "花费", earned_money = "总收入", cured = "治愈人数", deaths = "事故人数", sent_home = "��回家人数", decrease = "�少", increase = "增加", research = "点击这里�以为治疗使用专门研究预算", cure_type = { drug = "治疗时将使用��", drug_percentage = "治疗使用���其疗效为%d%%", -- %d (effectiveness percentage) psychiatrist = "由精神病医生完�治疗工作", surgery = "该疾病需�手术", machine = "该疾病需�仪器辅助治疗", }, cure_requirement = { possible = "您有能力治疗这�疾病", research_machine = "您需�研究一些仪器�治疗这�疾病", build_room = "您需�修建一个房间�治疗这�疾病", hire_surgeons = "您需�雇佣两�外科医生完�手术", -- unused hire_surgeon = "您需�雇佣第二�外科医生�完�手术", -- unused hire_staff_old = "您需�雇佣一�%s �治疗该疾病", -- %s (staff type), unused. Use hire_staff instead. build_ward = "您需�建造一个病房�治疗该疾病", -- unused ward_hire_nurse = "您需�一�护士在病房中照料病人", -- unused not_possible = "您还没有能力治疗该�疾病", -- unused }, }, statement = { close = "关闭银行�户画�", }, research = { close = "关闭研究画�", cure_dec = "�低疗效研究百分比", diagnosis_dec = "�低科研百分比", drugs_dec = "�低��研究百分比", improvements_dec = "�低改良研究百分比", specialisation_dec = "�低专门研究百分比", cure_inc = "�高科研百分比", diagnosis_inc = "�高仪器研究百分比", drugs_inc = "�高��研究百分比", improvements_inc = "�高改良研究百分比", specialisation_inc = "�高专门研究百分比", -- "" unused allocated_amount = "已分�预算", }, graphs = { close = "关闭图表画�", scale = "比例尺", money_in = "切�收入", money_out = "切�支出", wages = "切�工资", balance = "切�现金", visitors = "切�访问人数", cures = "切�治愈人数", deaths = "切�死亡人数", reputation = "切�医院价值", }, -- "将病人�到接待员处" through "将病人�到其它医院" inserted further above town_map = { people = "切�人员", plants = "切��物", fire_extinguishers = "切���器", objects = "切�物�", radiators = "切�暖气", heat_level = "供热强度", heat_inc = "增加供热", heat_dec = "�少供热", heating_bill = "供暖费", balance = "现金", close = "退出城镇地图画�", }, -- "" unused. jukebox = { current_title = "音�盒", close = "关闭音�盒", play = "播放", rewind = "��", fast_forward = "��", stop = "�止播放", loop = "循环播放", }, bank_manager = { hospital_value = "医院当�价值", balance = "银行现金", current_loan = "当�未�还贷款", repay_5000 = "�银行�还$5000", borrow_5000 = "�银行借款$5000", interest_payment = "�月利�支付", inflation_rate = "年通货膨胀率", interest_rate = "年利率", close = "关闭银行��画�", insurance_owed = "%s 欠款的金�", -- %s (name of debitor) show_graph = "显示%s 支付曲线", -- %s (name of debitor) graph = "显示%s 支付曲线", -- %s (name of debitor) graph_return = "返回上个画�", }, status = { win_progress_own = "显示当�进展情况", win_progress_other = "显示当�%s 方�的进展情况", -- %s (name of competitor) population_chart = "图表显示�个医院对当地居民的�引程度", happiness = "医院中所有人的总体快�程度", thirst = "医院中所有人的总体干渴程度", warmth = "医院中所有人的总体温暖程度", close = "关闭总览画�", -- Criteria to win reputation = "您的声望必须至少有%d 。当�值为%d", balance = "您的现金必须至少有$%d 。当�值为$%d", population = "您至少需�总人�的%d%% �访问您的医院", num_cured = "您的目标是治愈%d 个病人。现在您已�治愈%d", percentage_killed = "任务�求最多�能�死%d 个就诊病人。到目�为止,您已��死了%d%% 个病人。", value = "您的医院价值必须至少有$%d 。当�值为$%d", percentage_cured = "您需�治疗%d%% 个��就诊的病人。当�您已�治疗了%d%%", }, policy = { close = "关闭制度画�", staff_leave = "点击这里�以让处于空闲状�的员工帮助其他员工", staff_stay = "点击这里�以使所有员工�留在设定的房间内", diag_procedure = "如果医生的诊断结果为,治愈概率�于设定的��回家百分比,则该病人将被自动��回家。如果治愈概率大于设定的�试治疗百分比,则该病人将被自动�去进行治疗", diag_termination = "对于一个病人的诊断将一直�续到设定的治疗结�百分比,或所有的诊断机器都已��试一�", staff_rest = "员工休�时的最低疲劳程度", }, pay_rise_window = { accept = "满足�求", decline = "�付款�将他们解雇", }, watch = { hospital_opening = "建造计时器:它主�用�指示�离医院开门的时间多少。直接点击开门按钮就�以立�开门迎接客人。", emergency = "紧急情况:剩余时间内尽快治愈所有急救病人。", epidemic = "传染。:剩余时间内尽快阻止传染病蔓延。当时间耗尽或一个被传染病人离开医院,则�生巡查员将出现。通过按钮�以切�预防接�模�开或者关。点击病人就�以让护士为其接�。", }, rooms = { -- "" through "" unused. gps_office = "病人在一般诊断室内接��始诊断", psychiatry = "精神病诊断治疗室�以治疗精神病患者�时也能帮助诊断其他病人,但是需�一�拥有精神病治疗技能的医生", ward = "病房对于诊断和治疗都是�常有用的。病人手术��在病房中观察一段时间。病房需�护士", operating_theatre = "手术中心需�两�具备外科技能的医生", pharmacy = "护士在�房为病人��治疗", cardiogram = "医生使用心电图室诊断病人", scanner = "医生使用扫�仪房间诊断病人", ultrascan = "医生使用超级扫�仪房间诊断病人", blood_machine = "医生使用血液机器房间诊断病人", x_ray = "医生使用X 光房间诊断病人", inflation = "医生使用充气机房间治疗头部肿胀病人", dna_fixer = "医生使用DNA ��装置房间治疗外星人DNA 病人", hair_restoration = "医生使用毛���房间治疗秃顶病人", tongue_clinic = "医生使用舌头�弛诊断室治疗舌头�弛症病人", fracture_clinic = "护士使用骨折诊所治疗骨折病人", training_room = "专家使用培训室对其他医生进行培训", electrolysis = "医生使用电分解房间治疗多毛症病人", jelly_vat = "医生使用胶桶诊所治疗失衡患者", staffroom = "医生和护士在员工休�室内�以��疲劳", -- rehabilitation = "电视间报废", -- unused general_diag = "医生使用高级诊断室为患者进行基本诊断。花费很少但效率很高", research_room = "拥有研究技能的医生�以在研究部门开�新的��和机器。", toilets = "建造洗手间�以防止病人把医院弄得一团糟�", decontamination = "医生使用净化淋浴装置�以治疗放射病", }, objects = { -- "0 NULL OBJECT" unused. -- NB: most objects do not have a tooltip because they're not (extra-)buyable desk = "办公桌:医生�以在上�放置电脑。", cabinet = "文件柜:包�了病人文件,备忘录以�研究档案。", door = "房门:人们出入房间时必需。", bench = "长椅:为病人�供一个座�,使其�以比较舒适地等待。", table1 = "桌�(已删除):摆放大��志,使等待的病人感到快�。", -- unused chair = "椅�:供病人使用,以讨论病情。", drinks_machine = "饮料机:为病人止渴,也是收入��之一。", bed = "床:病情严�的病人需��床。", inflator = "充气机:治疗头部肿胀病患者。", pool_table = "��桌:帮助员工放�。", reception_desk = "接待�:需�一�接待员为病人�务。", table2 = "12 OB_BTABLE", -- unused & duplicate cardio = "13 OB_CARDIO", -- no description scanner = "14 OB_SCANNER", -- no description console = "15 OB_SCANNER_CONSOLE", -- no description screen = "16 OB_SCREEN", -- no description litter_bomb = "垃圾炸弹:�自对手医院的破�活动", couch = "18 OB_COUCH", -- no description sofa = "沙�:摆放在员工休�室中,员工如果没有更好的放�方�,则�以�在上���疲劳。", crash_trolley = "20 OB_CRASH", -- no description tv = "电视:使员工�会错过喜爱的节目。", ultrascanner = "22 OB_ULTRASCAN", -- no description dna_fixer = "23 OB_DNA_FIXER", -- no description cast_remover = "24 OB_CAST_REMOVE", -- no description hair_restorer = "25 OB_HAIR_RESTORER", -- no description slicer = "26 OB_SLICER", -- no description x_ray = "27 OB_XRAY", -- no description radiation_shield = "28 OB_RAD_SHIELD", -- no description x_ray_viewer = "29 OB_XRAY_VIEWER", -- no description operating_table = "30 OB_OP_TABLE", -- no description lamp = "�:照明用。", -- unused toilet_sink = "洗手池:讲�生的病人�以在洗手池中洗净�手。如果没有足够的洗手池,病人将感到�高兴。", op_sink1 = "33 OB_OP_SINK_1", -- no description op_sink2 = "34 OB_OP_SINK_2", -- no description surgeon_screen = "35 OB_SURGEON_SCREEN", -- no description lecture_chair = "教室座�:接�培训的医生�在上�,收�无�的演讲。座�摆放得越多,则教室越大。", projector = "37 OB_PROJECTOR", -- no description bed2 = "未使用", -- unused duplicate pharmacy_cabinet = "�房:用��存��", computer = "计算机:关键的研究部件", atom_analyser = "化学混�器:摆放在研究部门中,该机器�以加速全部研究进程。", blood_machine = "42 OB_BLOOD_MC", -- no description fire_extinguisher = "��器:�低治疗仪器爆炸所产生的�险。", radiator = "暖气:��医院内的温度。", plant = "�物:使病人快�并净化空气。", electrolyser = "46 OB_ELECTRO", -- no description jelly_moulder = "47 OB_JELLY_VAT", -- no description gates_of_hell = "48 OB_HELL", -- no description bed3 = "未使用", -- unused duplicate bin = "垃圾桶:放置垃圾。", toilet = "洗手间:�供给病人使用。", swing_door1 = "52 OB_DOUBLE_DOOR1", -- no description swing_door2 = "53 OB_DOUBLE_DOOR2", -- no description shower = "54 OB_DECON_SHOWER", -- no description auto_autopsy = "验尸机:对研究新的治疗方法有很大帮助。", bookcase = "书柜:放置医生的�考资料。", video_game = "视频游�:让您的员工在游�中彻底放�。", entrance_left = "58 OB_ENT_LDOOR", -- no description entrance_right = "59 OB_ENT_RDOOR", -- no description skeleton = "骨骼模型:主�用于培训", comfortable_chair = "61 OB_COMFY_CHAIR", -- no description }, } -- 34: staff titles, inserted further above confirmation = { quit = "您已�选择了退出。您是�确定真的�退出游�?", return_to_blueprint = "您是�确定返回�图模�?", replace_machine = "您是�确定将%s 汰�,需花费$%d ?", -- %s (machine name) %d (price) overwrite_save = "该�置已储存游�进度。您是�确定�将其覆盖?", delete_room = "您是�希望拆除这个房间?", sack_staff = "您是�确定�解雇该员工?", restart_level = "您是�希望�新开始这个任务?", -- missing in some TH versions remove_destroyed_room = "你希望支付 $%d 拆除这个房间�?", replace_machine_extra_info = "新机器的强度为 %d (现在 %d).", } bank_manager = { hospital_value = "医院价值", balance = "现金", current_loan = "当�贷款", interest_payment = "应付利�", insurance_owed = "�险公�欠款", inflation_rate = "通货膨胀率", interest_rate = "利率", statistics_page = { date = "日期", details = "细节", money_out = "支出", money_in = "收入", balance = "现金", current_balance = "当�现金", }, } newspaper = { -- Seven categories of funny headlines. I think each category is related -- to one criterion you can lose to. TODO: categorize { "医生震惊四座", "玩弄上�", "科学狂人的震撼", "实验室地�上摆放�什么", "查获一项�险的研究" }, { "酗酒", "外科医生醉酒", "挑剔的顾问", "外科医生的酒�", "外科医生痛饮失�", "外科医生的�魂" }, { "粗�的医生", "医生臭�远扬", "医生完了", "贪得无厌的医生" }, { "篡改数�", "器官买�犯罪", "银行�机", "调查基金数�" }, { "医学工作者盗墓", "医生盗墓", "医生盗墓,人赃并获", "医生死期�远了", "超级渎�", "医生盗墓" }, { "医生?庸医�", "庸医露馅了", "令人诅咒的诊断", "笨蛋专家", }, { "医生真情放纵", "医生自我“手术�", "医生完了", "医生大丑闻", "医生�得一团糟" }, } -- 39: letters -- Letters are organized in another level, just like menu strings. letter = { { "亲爱的%s//", "太令人惊奇了�您已��功地��了这个医院。�生部的官员想�知�您是�有兴趣接手一个大项目。我们认为有一个工作对您很适�。薪水将达到$%d。怎么样。//", "您是�对%s医院的工作感兴趣?", }, { "亲爱的%s//", "太棒了�您的医院��得很好。我们�有了一些新的任务如果您喜欢新的挑战,�以接�这项任务。您��勉强,但这项工作确实很适�您。薪水是$%d//", "您希望接管%s医院�?", }, { "亲爱的%s//", "在您接管这座医院期间,管��常�功。因此,我们对您寄予厚望,并为您找到了一个新的工作。薪水将达到$%d,�时我们也希望您喜欢新的挑战。//", "您希望接手%s医院�?", }, { "亲爱的%s//", "�喜�部门官员对您的能力赞���。您是�生部的第一高手。我们觉得您一定喜欢更困难的工作。您的薪水将达到$%d,但决定�在您手中。//", "您是�愿�在%s医院工作?", }, { "亲爱的%s//", "您好。我们尊�您�希望离开这个迷人的医院,但是�醒您�仔细考虑。您的薪水将达到$%d,如果您愿�到其它医院工作并将其�行得很好。//", "您现在是�愿�移动到%s医院?", }, { "亲爱的%s//", "�喜。我们�解您在这个�爱的�行良好医院中工作的快�心情,但是我们认为您现在应该为未�考虑。您的薪水将达到$%d,如果您决定调任。这是很值得考虑的。//", "您是�愿�接手%s医院?", }, { "亲爱的%s//", "您好��生部想�知�您�过�新考虑是�决定�然留在当�的医院中。我们很欣�您现在那个�爱的医院,但我们觉得您如果愿�接�这个�富挑战性的工作,也一定能干得很好,并且您的薪水将达到$%d。//", "您是�愿�接手%s医院?", }, { "亲爱的%s//", "您好。您�定了我们上一�信中�供的新医院,以�薪水$%d。我们觉得�论怎样,您必须�新考虑这个决定。我们已�为您准备了一个很好的工作。//", "您是�愿�接手%s医院?怎么样?", }, { "亲爱的%s//", "您已��功地�明了自己是医学界有�以�最棒的管�者。这样的�就一定�给予奖励,因此我们决定任命您为所有医院的至尊主席。这是一项光�的工作,且薪水�以达到$%d。�论您走到那里,都将�到人们的热烈欢迎。//", "感谢您的努力工作。希望您好好享�未�的�退休生活。//", "", }, { "亲爱的%s//", "�喜您在我们指派的�个医院中的�功管�。您的�功表现使您�以自由出入世界�大城市。您将获得退休金$%d,�加上一辆轿车,我们希望您在旅途中能够促进�个医院管�水平的�高。//", "我们都为您感到骄傲。我们中间�个人都为您挽救生命感到由衷的感谢。//", "", }, { "亲爱的%s//", "您的工作�分�功,我们从您身上获得了�感。谢谢您管�了这么多个医院,并使它们都�行得很出色。我们将给予您终身工资$%d,并�供政府敞蓬轿车使您�以从一个城市到�一个城市,�表演讲告诉公众您是怎样在这么短的时间内达到如此�就。//", "您是所有人的榜样,毫无例外,世界上�个人都以您为�。//", "", }, { "亲爱的%s//", "您的�就使您�为最好的医院管�者。�生部将�您�供$%d作为奖励,并�开庆�会。整个世界都在为您沸腾,太棒了�//", "请接�我们的安排。如果您��希望辛苦工作,我们将�您�供一辆轿车,且无论走到那里,都有警察为您开路。//", "", }, } -- 40: object tooltips, inserted further above -- 41: load menu, inserted further above vip_names = { health_minister = "�生部部长", [1] = "伟大的查普顿市长", -- the rest is better organized in an array. [2] = "��格尔", [3] = "�自�兰的伯那德国王", [4] = "缅甸民主党领袖:昂山�蒂", [5] = "克朗伯先生", -- [6] requires replacement (English uses 'Sir Lancelot Spratt') [7] = "克劳�议员", [8] = "罗尼", [9] = "一个超级�赛�星", [10] = "拉里普罗斯特", } -- 43: credits -- Maybe we could include them somewhere as a tribute. Maybe not. -- Translators, please do not bother translating these... original_credits = { "", "", "", "", "", "", "", "", "", "", "", ":设计制作", ":牛蛙制造", "", ":冥王星开�组", ",", "Mark Webley", "Gary Carr", "Matt Chilton", "Matt Sullivan", "Jo Rider", "Rajan Tande", "Wayne Imlach", "Andy Bass", "Jon Rennie", "Adam Coglan", "Natalie White", "", "", "", ":编程", ",", "Mark Webley", "Matt Chilton", "Matt Sullivan", "Rajan Tande", "", "", "", ":美工", ",", "Gary Carr", "Jo Rider", "Andy Bass", "Adam Coglan", "", "", "", ":助�编程", ",", "Ben Deane", "Gary Morgan", "Jonty Barnes", "", "", "", ":助�美工", ",", "Eoin Rogan", "George Svarovsky", "Saurev Sarkar", "Jason Brown", "John Kershaw", "Dee Lee", "", "", "", ":游�介�", ",", "Stuart Black", "", "", "", ":音�音效", ",", "Russell Shaw", "Adrian Moore", "", "", "", ":助�音�", ",", "Jeremy Longley", "Andy Wood", "", "", "", ":�音", ",", "Rebecca Green", "", "", "", ":任务设计", ",", "Wayne Imlach", "Natalie White", "Steven Jarrett", "Shin Kanaoya", "", "", "", ":剧本", ",", "James Leach", "Sean Masterson", "Neil Cook", "", "", "", ":R&D", "", ":图形引擎", ",", "Andy Cakebread", "Richard Reed", "", "", "", ":R&D 支�", ",", "Glenn Corpes", "Martin Bell", "Ian Shaw", "Jan Svarovsky", "", "", "", ":库和工具", "", "Dos 和Win 95 库", ",", "Mark Huntley", "Alex Peters", "Rik Heywood", "", "", "", ":网络库", ",", "Ian Shippen", "Mark Lamport", "", "", "", ":声音库", ",", "Russell Shaw", "Tony Cox", "", "", "", ":安装程�", ",", "Andy Nuttall", "Tony Cox", "Andy Cakebread", "", "", "", ":支�", ",", "Peter Molyneux", "", "", "", ":测试��", ",", "Andy Robson", "", "", "", ":测试主管", ",", "Wayne Imlach", "Jon Rennie", "", "", "", ":测试", ",", "Jeff Brutus", "Wayne Frost", "Steven Lawrie", "Tristan Paramor", "Nathan Smethurst", "", "Ryan Corkery", "Simon Doherty", "James Dormer", "Martin Gregory", "Ben Lawley", "Joel Lewis", "David Lowe", "Robert Monczak", "Dominic Mortoza", "Karl O'Keeffe", "Michael Singletary", "Andrew Skipper", "Stuart Stephen", "David Wallington", "", "And all our other Work Experience Play Testers", "", "", "", ":技术支�", ",", "Kevin Donkin", "Mike Burnham", "Simon Handby", "", "", "", ":市场", ",", "Pete Murphy", "Sean Ratcliffe", "", "", "", ":特别感谢", ",", "Tamara Burke", "Annabel Roose", "Chris Morgan", "Pete Larsen", "", "", "", ":公关", ",", "Cathy Campos", "", "", "", ":文档", ",", "Mark Casey", "Richard Johnston", "James Lenoel", "Jon Rennie", "", "", "", ":文档�包装盒设计", ",", "Caroline Arthur", "James Nolan", "", "", "", ":本地化项目��", ",", "Carol Aggett", "", "", "", ":本地化工作", ",", "Sandra Picaper", "Sonia 'Sam' Yazmadjian", "", "Bettina Klos", "Alexa Kortsch", "Bianca Normann", "", "C 。T 。O 。S 。p 。A 。Zola Predosa (BO)", "Gian Maria Battistini", "Maria Ziino", "Gabriele Vegetti", "", "Elena Ruiz de Velasco", "Julio Valladares", "Ricardo Mart*nez", "", "Kia Collin", "CBG Consult", "Ulf Thor", "", "", "", ":生产", ",", "Rachel Holman", "", "", "", ":制片人", ",", "Mark Webley", "", "", "", ":��制片人", ",", "Andy Nuttall", "", "", "", ":�作", ",", "Steve Fitton", "", "", "", ":行政", ",", "Audrey Adams", "Annette Dabb", "Emma Gibbs", "Lucia Gobbo", "Jo Goodwin", "Sian Jones", "Kathy McEntee", "Louise Ratcliffe", " ", " ", " ", ":公�管�", ",", "Les Edgar", "Peter Molyneux", "David Byrne", " ", " ", ":All at Bullfrog Productions", " ", " ", " ", ":特别感谢", ",", "弗莱利公园医院中�个人", "", ": 特别是", ",", "Beverley Cannell", "Doug Carlisle", "", "", "", ":中文版制作", ",", "飞龙工作室", "", "", "", ":监制/项目主管", ",", "曲洋", "", "", ":翻译:刘波", "", ":录音师:�信刚", "", "", ":�音:�莉莉", "", "", "", ":中文版包装/手册设计", ",", "骆智中王越�", "", "", ":生产", ",", "�平 张�", "", "", "", ":测试", ",", "罗耀 陈雷 赫闻 汤宇力", "", "", ":特别感谢", ",", "Les Edgar", "Rajan Tande", "Steve Fitton", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ".", } -- 44: faxes and disease descriptions (cause/symptoms/cure) -- diseases were already covered above fax = { debug_fax = { -- never seen this, must fbe a debug option of original TH -- TODO: make this nicer i we ever want to make use of it close_text = "嗨,哈,哈�", text1 = "BEST COUNT %d", -- %d text2 = "TOTAL PEOPLE IN HOSPITAL %d CHECKING AGAINST %d", -- %d %d text3 = "FIGURES : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", -- %d %d %d %d %d text4 = "FACTORS : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", -- %d %d %d %d %d text5 = "CONTRIBN : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d PERCENT", -- %d %d %d %d %d text6 = "THE FOLLOWING FACTORS ARE ALSO APPLIED", text7 = "REPUTATION: %d EXPECTED %d REDUCTION %d", -- %d %d %d text8 = "AMENITIES %d PEEPS HANDLED %d REDUCTION %d", -- %d %d %d text9 = "DISASTERS %d ALLOWED (MTHS) %d (%d)REDUCTION %d", -- %d %d %d %d text10 = "KILLS %d ALLOWED (MTHS) %d (%d) REDUCTION %d", -- %d %d %d %d text11 = "PEOPLE THIS MONTH %d", -- %d }, emergency = { choices = { accept = "好的。我已�好准备处�紧急事件。", refuse = "�。我拒�处�这个紧急事件。", }, location = "在%s �生了事故", num_disease = "%d 个病人患有%s ,他们需�紧急治疗。", cure_possible_drug_name_efficiency = "您已�拥有了�求的设备和技能。您拥有他们所需�的��。��%s 的疗效为%d%% 。", cure_possible = "由于您拥有准备和技能,所以您应该�以处�这个紧急事件。", cure_not_possible_build_and_employ = "您将需�建造一间%s 并雇佣一�%s", cure_not_possible_build = "您将需�建造一间%s", cure_not_possible_employ = "您将需�雇佣一�%s", cure_not_possible = "现在您还�能治疗这�疾病。", bonus = "处�这个紧急事件的最大奖金�为%d 。如果您失败了,则您的声望将大幅下�。", locations = { "赛澈化学��工厂。", "斯尼得大学。", "派拉奎特园艺中心。", "�险物质研究机构。", "莫�斯舞蹈家�会。", "�蛙与公牛酒店。", "大戴维殡葬馆", "太�制�店。", "伯特二手石化产�商场", }, }, emergency_result = { close_text = "点击这里退出。", earned_money = "最大奖金�为$%d ,您得到了$%d 。", saved_people = "您挽救了%d 个病人,总共需�治愈%d 个。", }, disease_discovered_patient_choice = { choices = { send_home = "�病人回家。", wait = "让病人在医院中等一会儿。", research = "将病人�到研究部门。", }, need_to_build_and_employ = "如果您建造了一个%s 并雇佣了一�%s ,则您将获胜。", need_to_build = "您必需建造一个%s �能处�该疾病。", need_to_employ = "雇佣一�%s 就�以处�该情况。", can_not_cure = "您无法治疗该疾病。", disease_name = "�现了新情况。该疾病为%s", what_to_do_question = "您打算怎样处�这个病人?", guessed_percentage_name = "您的员工正在�试治疗该病人。我们有%d%% 的几率治愈该病:%s", }, disease_discovered = { close_text = "新�现了一�疾病。", can_cure = "您�以处�这�疾病。", need_to_build_and_employ = "如果您建造了一个%s 并雇佣了一�%s ,则您将获胜。", need_to_build = "您必需建造一个%s �能处�该疾病。", need_to_employ = "雇佣一�%s 就�以处�这��机。", discovered_name = "您的员工�现了一�新的疾病。它是%s", -- After this come cause, symptoms and cure of disease }, epidemic = { choices = { declare = "宣布一�传染病。支付罚款且�誉��。", cover_up = "在指定时间内且病人离开医院之�,尽�治愈所有被感染的病人。", }, disease_name = "医生�现了传染病%s 。", declare_explanation_fine = "如果您宣布出现传染。,则您将支付罚款%d ,且�誉��。所有病人将自动被接�疫苗。", cover_up_explanation_1 = "如果您想�掩盖传染。,您将必须在有�时间内,��生巡查员到�之�,治愈所有被传染的病人。", cover_up_explanation_2 = "如果�生巡查员到达,并�现了您正在试图掩盖传染。,则他将对您采�严厉的惩罚。", }, epidemic_result = { close_text = "哈�", failed = { part_1_name = "�试掩盖病情,他们正�临�传染病%s 爆�。", part_2 = "医院中的员工已�制止了传染病�医院附近居民传播。", }, succeeded = { part_1_name = "�生巡查员�到了传闻,您的医院正在处�严�疾病%s 。", part_2 = "然而他还没有能够找到�实传闻的��。", }, compensation_amount = "政府决定奖励您%d 作为补�谣言对您医院声誉所造�的�失。", fine_amount = "政府宣布全国紧急状�,并对您罚款%d 。", rep_loss_fine_amount = "报纸将整版报�此事。您的声望将大幅��。�外,还�缴纳罚款%d 。", hospital_evacuated = "会议决定�能�散您的医院。", }, vip_visit_query = { choices = { invite = "�贵宾�出邀请。", refuse = "找借�阻止贵宾访问。", }, vip_name = "%s 希望能够访问您的医院�", }, vip_visit_result = { close_text = "感谢您访问医院。", telegram = "电报�", vip_remarked_name = "%s 访问医院结���表评论:", cash_grant = "您将得到奖金%d 。", rep_boost = "您的声望在公众中是很好的。", rep_loss = "您的声望因此�到�害。", remarks = { [1] = "医院太棒了。下次我生病一定�到那里去就诊。", [2] = "那就是我访问的医院。", [3] = "那是一个超级医院。并且我想知�更多一点。", [4] = "医院��得太棒了。感谢您能够邀请我�访问。", [5] = "嗯。医院��得还�以。", [6] = "我很欣�您的医院。", [7] = "喔,有点差劲。您应多�一些改进。", [8] = "喔,亲爱的。这个地方��怎么样。", [9] = "这是一个比较一般的医院。但�白地讲,我希望能够�得更好。", [10] = "我为什么烦�?这比看一场�续4 个�时的歌剧好多了�", [11] = "我为我所看到的感到�心。这也是医院?胡说八��", [12] = "我已��够了�", [13] = "真是一个垃圾。我�争�关闭它。", [14] = "我从没有�过这样�怕的医院。真是丢人�", [15] = "我被震惊了。这也能称为医院�给我一点酒。", }, }, diagnosis_failed = { choices = { send_home = "�病人回家。", take_chance = "�试治疗病人。", wait = "让病人多等待一会儿,您需�多建造一些诊断室。", }, situation = "我们已�对该病人�试了所有�供使用的机器,但是�然没有�现病因。", what_to_do_question = "我们将怎样处置这个病人?", partial_diagnosis_percentage_name = "我们有%d%% 的概率确定该病人所患疾病类型。", }, } -- 45: strange texts, maybe linked to some cheat codes.. -- Seems we won't need them. staff_descriptions = { misc = { "打高尔夫�。", "潜水�动。", "冰雕。", "�葡�酒。", "拉力车赛。", "蹦跳。", "收集啤酒盖�。", "喜欢跳水。", "喜欢冲浪�动。", "喜欢游泳。", "蒸��士忌酒。", "DIY专家。", "喜欢欣�法国电影。", "玩地下城守护者游�。", "拥有HGV执照。", "摩托车比赛。", "弹��典��。", "训练�救员。", "喜欢养狗。", "�收音机。", "�常洗澡。", "工作指导。", "��蔬�。", "义务巡警。", "展览。", "收集二战武器。", "�新摆放家具。", "�刺激音�。", "�虫。", "喜剧演员。", "议会调查人员。", "园艺家。", "走��手表。", "唱歌。", "喜欢日间电视。", "喜欢鲑鱼。", "�观光者介��物馆。", }, good = { "手脚勤快并努力的员工。", "很有责任心。�常细心。", "掌�了很多技术。", "很�善并爱笑。", "富有活力。", "很有礼貌并和蔼�亲。", "富有�干和能力。", "工作能力�强。", "�志�强。", "微笑�为病人�务。", "迷人的,有礼貌的并爱帮助别人。", "专注于工作。", "本性善良,工作努力。", "忠实且待人�善。", "细心并能够独立处�紧急事件。", }, bad = { "动作缓慢,且爱烦�。", "懒惰。", "培训很少且没有精神。", "待人粗�。", "�度�劣。", "耳�。且身上有一股�心�的味�。", "�用心工作。", "�莽而且容易犯错误。", "容易犯错误。", "心���。", "粗心大�。", "懒散。", "愚蠢。", "狡猾且有破�欲。", "傲慢自大。", }, } queue_window = { num_in_queue = "队�长度", num_expected = "预期", num_entered = "访问者人数", max_queue_size = "最大长度", } -- TODO: continue here with section 50 -- ... -- 54: Introduction texts to each level introduction_texts = { level1 = "欢迎�到您的第一座医院�//" .. "首先�摆放接待�,建造一般诊断室,并雇佣一�接待员和一�医生。" .. "��就�以等待开张了。" .. "建造精神病诊断治疗室并雇佣一�精神病医生是一个好主�。" .. "�房和护士也是治疗病人所必需的。" .. "建造一个充气机房间就�以治疗头部肿胀患者。" .. "您需�治愈10个病人,并使声望��在200以上。", level2 = "在该区域内还有一些其它的疾病。" .. "建造医院从而�以治疗更多的病人,并应该考虑建造研究部门。" .. "记���内部的清�,从而使声望尽�能地高�您将�到患有舌头�弛症的病人,因此需�建造舌头诊治房间。" .. "您也�以建造心电图房间�帮助诊断疾病。" .. "这些房间都需��过研究�能够被建造。现在你�以购买其它土地扩展医院�使用城镇地图就�以购买土地。" .. "目标是声望300,银行现金为10000,且治愈40个病人。", level3 = "这次您将在一个富裕地区建造医院。" .. "�生部希望您能够在这里赚�更多的利润。" .. "开始时您被�求获�好的声望,但是一旦医院步入正轨,就�以集中精力赚�更多的钱。" .. "有�能会�生紧急事件。" .. "也就是说一次会有大�病人就诊,且他们的病情都一样。" .. "在时间�制内如果能够治愈他们,则�仅�以拿到奖金,声望也会�高。" .. "一些疾病如猫王综�症等有�能�生,因此最好建造一间手术中心和附属病房。" .. "胜利�件是赚�$20,000。", level4 = "使所有的病人快�,��治疗的高效率并尽��低死亡人数。" .. "声望是�分��的,因此尽�赢得更高的声望。" .. "��太多担心收入情况�当声望�高了,收入也自然会�高。" .. "您需�培训您的医生,拓宽他们的能力。" .. "这样他们就�以更好的为病人�务。" .. "胜利�件是声望达到500以上。", level5 = "医院将�常�忙,处����样的病人。" .. "医生都是刚刚毕业的实习医生,因此需�建造一间培训室对他们进行培训,�高能力。" .. "您�有3�专家�以帮助培训这些员工,因此一定�让专家快�。" .. "�外�注�的是,医院的�置�是很好。" .. "�常会�生地震。" .. "地震将对医院中的机器产生��,从而影�医院的��。" .. "使您声望达到400以上,现金达到$50,000。�外需�治愈200个病人。", level6 = "使用您的所有知识�建造一个�行平稳的医院,从而�以赚�利润并处�任何问题。" .. "您需�注�一点,医院周围的空气对细��殖,传染病�行�常适宜。" .. "如果您没有��医院的清�,则将�对传染病的�行。" .. "赚�$150,000,并使医院价值超过$140,000。", level7 = "在这里您将�到�生部的密切监察,因此�在赚钱的�时,努力�高自己的声望。" .. "我们无法处�太多的医疗事故�这对于医院的��是�分�利的。" .. "确认所有员工都很快�,并确认已�购买了所有需�的仪器装备。" .. "声望需�达到600,且银行里需�有$200,000。", level8 = "需�您�建造一座高效的医院。" .. "很多人都无事��,因此需�适�的�员以��高效。" .. "记�治愈病人是很��的一件事情,但是您更�从中赚钱。" .. "让�心呕�的病人�近清�工人。" .. "需�赚�$300,000就�以过关。", level9 = "当填满了�生部的银行�户并为部长大人购买了一辆轿车�,您现在��开始新的工作了。" .. "在这里您��对很多问题。" .. "�有拥有足够�验充分的员工和房间,您�能够顺利过关。" .. "医院价值需�达到$200,000,且银行�户上�有$400,000。" .. "如果无法达到上述�求,则无法胜利完�任务。", level10 = "��您的�验�断增长,�生部�求您集中精力�高��的治疗效果。" .. "有人对您颇有微辞,为此您必须使所有的�物都�常有效。" .. "�外,一定��低医疗事故的�生次数,�少死亡人数。" .. "作为�示,您需�为建造胶桶留一些空地。" .. "使所有�物的疗效都达到80%%,声望达到650且在银行�户上有$500,000,这样就�以胜利过关。", level11 = "现在您有机会建造一座终�医院。" .. "该地区享有�高的声望,因此�生部希望能够看到最好的医院建造在这里。" .. "我们希望您能够赚�大�的金钱,获得很高的声望,并能够�功地处�任何事件。" .. "这是一项�常��的工作。" .. "这需�您的努力工作。" .. "注�一点,该区域常常会看到�明飞行物。因此请让您的员工�好准备迎接�速之客。" .. "您的医院价值需�达到$240,000,在银行�户内需�$500,000,且声望需�达到700。", level12 = "您现在�到了最大的挑战。" .. "我们为您的�功感到由衷地高兴,�生部为您准备了一项顶级工作;他们需�有人建造�一个超级医院,赚钱的�时获�较高的声望。" .. "您�以购买任何需�的土地,治疗��疾病赢得��奖励。" .. "动心了�?" .. "赚�$650,000,治愈750个病人,使声望达到800就�以胜利过关。", level13 = "您的高超管�技能被特殊机密部门获知。" .. "他们将�您�高特别奖金,因为他们有一座被�鼠困扰的医院需�有效管�。" .. "您必须�死尽�能多的�鼠,并让清�工人打扫干净。" .. "接�这个任务?", level14 = "这里还有一个挑战�一个充满惊奇的医院。" .. "如果您能够�功完�这个任务,则您将�为所有胜利者中的佼佼者。" .. "��认为完�这个任务就象�蛋糕一样,这将是您所�到的最艰苦的工作。" .. "�您好��", level15 = "好的,下�是管�医院的一些技巧。//" .. "医生需���帮助�诊断病人。您�以" .. "建造�一个诊断类房间,例如高级诊断室。", level16 = "当对病人完�诊断�,需�建造处�和治疗类房间完�对病人的治疗工作。�以从" .. "建造�房开始。在�房中需�一�护士分�����。", level17 = "最�的警告�时刻关注您的声望�这是真正�引病人��就诊的关键。" .. "如果您没有�死太多的病人,且使就诊病人��快�,则�必太担心声望�" .. "决定�就在您的手中。�您好�。", level18 = "", } -- 55: Award texts inserted in the trophy room section (27) -- 57: Information texts for the different rooms room_descriptions = { ultrascan = { "超级扫�仪//", "超级扫�仪是诊断类仪器中最��的。它虽然花费惊人,但效果�著,�以使医院对病人的诊断达到完美。//", "超级扫�仪需�医生。它也需�维护。", }, gp = { "一般诊断室//", "这是您的医院中一个基本诊断房间。就诊病人将到这里�检查病因。���决定是�进一步的诊断还是立�治疗。如果一间普通诊断室�够用,则您�以�建造�一间。房间越大,则�以在里�摆放更多的特殊物�,从而使医生的�信越高。这对于其它房间也是一样的。//", "一般诊断室需�一�医生。", }, fracture_clinic = { "骨折诊所//", "骨折患者将到这里�接�治疗。石�剥离装置将使用高能激光将�硬的石�切开,而病人�需��很�的痛苦。//", "骨折诊所需�一�护士。它也需�日常维护。", }, tv_room = { "电视房间没有使用", }, inflation = { "充气机诊所//", "患有头部肿胀症的病人需�在充气机诊所接�治疗,病人膨胀的头盖骨将被去掉,并对脑袋�新充气到正常大�。//", "充气机诊所需�医生。它也需�清�工人的维护。", }, jelly_vat = { "胶桶诊所//", "对于患有失衡症的患者需�到胶桶诊所接�治疗,在这里将被放入胶桶中。该治疗方法的原�医学界目�还无法完全�解。//", "胶桶诊所需�医生。它也需�清�工维护机器。", }, scanner = { "扫�仪//", "通过扫�仪病人得到确诊。��他们就�以到一般诊断室接�进一步的治疗指示。//", "扫�仪需�医生。它也�样需�维护。", }, blood_machine = { "血液机器//", "血液机器也是一�诊断用仪器,通过它�以检查病人的血液细胞,从而找出病人的病因。//", "血液机器需�医生。它也需�维护。", }, pharmacy = { "�房//", "被诊断且需�接��物治疗的病人一定�到�房去抓�。当越�越多的��被研制出�。该房间也将�得越�越�忙。这时就需��建造一间�房。//", "�房需�一�护士。", }, cardiogram = { "心电图仪//", "病人在这里被诊断检查,���到一般诊断室接�治疗�示。//", "心电图仪需�医生。当然它也需�维护。", }, ward = { "病房//", "病人在病房中�留一段时间,以便护士进行观察。����手术。//", "病房需�一�护士。", }, psych = { "精神病诊断治疗室//", "被诊断为精神有问题的病人必须到精神病诊断治疗室中接�治疗。精神病医生�以对病人进行诊断,�现其病因,且如果确实是心�问题,将使用长沙�椅对其进行治疗。//", "精神病诊断治疗室需�一�具有精神病治疗技能的医生。", }, staff_room = { "员工休�室//", "您的员工感觉疲劳时,需�房间�放�紧张的神�,从而��疲劳。处于�度疲劳的员工效率很低,并�时�求加薪,甚至�辞而别。他们还会常常犯错误。建造一个员工休�室,并在里�摆放尽�能多的物�,这是�分值得的。请确认该房间�以�时使多�员工得到休�。", }, operating_theatre = { "手术中心//", "它�以�供�常��的治疗手段。手术中心必须�有足够的尺寸,必须�置适当的仪器设备。它将是医院中最��的部门。//", "手术中心需�两�拥有外科技能的医生。", }, training = { "培训室//", "您的实习医生和医生在该房间内�以得到特殊技能的培训。拥有外科,研究或精神病技能的专家将把自己的�验传授给接�培训的医生。对于已拥有这些技能的医生,他们的能力将大幅�高。//", "培训室需�一�专家。", }, dna_fixer = { "DNA诊所//", "这些有外星人DNA的病人必须在这里��其原有的DNA。DNA修�装置是最��的仪器,因此一定�在其房间内摆放一个��器,以防万一。//", "这�DNA修�装置需�清�工�时维护。它也需�一�具有研究能力的医生�能够正常工作。", }, research = { "研究室//", "在研究室�以研制新的��和治疗方法,并对��仪器进行改进�高。这是医院中的一个��部门,并对�高医院的治愈率产生�对影�。//", "研究室需�一�拥有研究技能的医生。", }, hair_restoration = { "毛���诊所//", "对于身患秃顶的病人将被�到该毛���诊所,使用其中的毛���装置进行治疗。需�一�医生�作机器,且该机器将很快地使病人的脑袋长满头�。//", "毛���诊所需�医生。它也需�维护。", }, general_diag = { "高级诊断室//", "需�进一步诊断的病人将被�到这里。如果一般诊断室无法�现病人的病因,高级诊断室将有�能找出。诊断结��,他们将返回一般诊断室分�结果。//", "高级诊断室需�医生。", }, electrolysis = { "电分解房间//", "多毛症患者将到该房间接�电分解机器的治疗,该机器将猛拉毛�并使用一�混�物填充毛孔。//", "电分解房间需�医生。它也需�清�工进行维护。", }, slack_tongue = { "舌头�弛治疗诊所//", "在普通诊断室中被诊断为舌头�弛的病人将被�到该诊所接�治疗。医生将使用一�高科技的仪器使舌头伸直并切掉多余部分,从而使病人��正常。//", "舌头�弛诊所需�医生。它也需�日常维护。", }, toilets = { "洗手间//", "当病人感到需�上厕所时就需�洗手间这类设施。如果您希望洗手间多一些访问者,�以在其中多摆放洗手池和马桶请考虑在医院的其它�置也建造一些附属设施。", }, no_room = { "", }, x_ray = { "X光机//", "X光机�以使用特殊�射为病人照内部�视照片。它对于医生诊断病因有很大帮助。//", "X光机需�医生。它也需�维护。", }, decontamination = { "净化诊所//", "对于被暴露在强放射性的病人需�快速�到净化诊所。该房间包�了一个淋浴器,�以将病人身上的放射能清除干净。//", "净化淋浴器需�医生。它也需�清�工人维护。", }, } -- 59: The dynamic info bar dynamic_info = { patient = { actions = { dying = "快死了�", awaiting_decision = "等待您的决定", queueing_for = "排队等待%s", -- %s on_my_way_to = "在去%s 的路上", -- %s cured = "治愈�", fed_up = "�够了,�离开", sent_home = "��回家", sent_to_other_hospital = "指派到其它医院", no_diagnoses_available = "无法诊断�我�回家了", no_treatment_available = "无法治疗�我�回家了", waiting_for_diagnosis_rooms = "等待建造更多的诊断室", waiting_for_treatment_rooms = "等待为我建造一间治疗室", prices_too_high = "费用太高了�我�回家了", epidemic_sent_home = "被巡查员赶回家", epidemic_contagious = "我有传染病", }, diagnosed = "诊断:%s", -- %s guessed_diagnosis = "�试诊断:%s", -- %s diagnosis_progress = "诊断过程", emergency = "紧急情况:%s", -- %s (disease name) }, vip = "�访贵宾", health_inspector = "�生巡查员", staff = { psychiatrist_abbrev = "精神分�", actions = { waiting_for_patient = "等待病人", wandering = "正在到处走动", going_to_repair = "�往维修%s", -- %s (name of machine) vaccine = "正在注射疫苗", }, tiredness = "疲劳", ability = "能力", -- unused? }, object = { strength = "强度%d", -- %d (max. uses) times_used = "使用次数%d", -- %d (times used) queue_size = "排队人数%d", -- %d (num of patients) queue_expected = "�将加入队�人数%d", -- %d (num of patients) strength_extra_info = "强度 %d (�级到 %d)", }, } -- 60: The progress report window progress_report = { header = "进展报告", very_unhappy = "人们感到�常�高兴。", quite_unhappy = "人们有点�高兴。", more_drinks_machines = "多摆放一些饮料机。", too_hot = "调节供热系统。太热了。", too_cold = "太冷了。多摆放一些暖气。", percentage_pop = "% 人�", win_criteria = "获胜�件", } ------------------------------- OVERRIDE ---------------------------------- vip_names[4] = "缅甸民主党领袖:昂山素季" -- 昂山�蒂 menu.debug = " 调试 " progress_report.win_criteria = "获胜�件" ------------------------------- NEW STRINGS ------------------------------- date_format = { daymonth = "%2%月 %1%日", } object.litter = "废弃物" tooltip.objects.litter = "废弃物:病人找�到垃圾桶,所以��丢在了地上。" object.rathole = "�鼠洞" tooltip.objects.rathole = "�鼠一家,您的医院够�了,��很舒�。" tooltip.fax.close = "关闭此窗�,但�删除消�" tooltip.message.button = "点击打开消�" tooltip.message.button_dismiss = "点击打开消�,�键点击忽略" tooltip.casebook.cure_requirement.hire_staff = "您需�雇佣人员�治疗该疾病" tooltip.casebook.cure_type.unknown = "您还�知�如何治疗该疾病" tooltip.research_policy.no_research = "当�没有任何此类研究在进行中" tooltip.research_policy.research_progress = "此类研究下次�现的进度: %1%/%2%" menu["player_count"] = "玩家数" menu_file = { load = " (%1%) 读�", save = " (%1%) 存储", restart = " (%1%) �新开始", quit = " (%1%) 退出" } menu_options = { sound = " (%1%) 音效 ", announcements = " (%1%) 公告 ", music = " (%1%) 音� ", jukebox = " (%1%) 音�盒 ", lock_windows = " �定窗� ", edge_scrolling = " 边缘滚动 ", capture_mouse = " �获鼠标 ", adviser_disabled = " (%1%) 建议 ", warmth_colors = " 暖气区域显示 ", wage_increase = " 涨工资�求 ", twentyfour_hour_clock = " 24�时时钟 " } menu_options_game_speed = { pause = " (%1%) 暂� ", slowest = " (%1%) �常慢 ", slower = " (%1%) 较慢 ", normal = " (%1%) 正常 ", max_speed = " (%1%) 快速 ", and_then_some_more = " (%1%) �快 ", } menu_options_warmth_colors = { choice_1 = " 红 ", choice_2 = " � 绿 红 ", choice_3 = " 黄 橙 红 ", } menu_options_wage_increase = { grant = " �许 ", deny = " 拒� ", } -- Add F-keys to entries in charts menu (except briefing), also town_map was added. menu_charts = { bank_manager = " (%1%) 银行��", statement = " (%1%) 银行账户", staff_listing = " (%1%) 员工管�", town_map = " (%1%) 城镇地图", casebook = " (%1%) 治疗手册", research = " (%1%) 研究", status = " (%1%) 状�", graphs = " (%1%) 图表", policy = " (%1%) 制度", } menu_debug = { jump_to_level = " 跳关 ", connect_debugger = " (%1%) 连接 LUA DBGp �务器 ", transparent_walls = " (%1%) �明墙� ", limit_camera = " �制镜头 ", disable_salary_raise = " 关闭涨工资�求 ", allow_blocking_off_areas = " �许导致空间无法到达的建造 ", make_debug_fax = " 创建调试传真 ", make_debug_patient = " 创建调试病人 ", cheats = " (%1%) 作弊 ", lua_console = " (%1%) LUA 控制� ", debug_script = " (%1%) �行调试脚本 debug_script.lua", calls_dispatcher = " 签派窗� ", dump_strings = " (%1%) 转存字符串 ", dump_gamelog = " (%1%) 转存游�日志 ", map_overlay = " 地图层次 ", sprite_viewer = " 贴图�览器 ", } menu_debug_overlay = { none = " 无 ", flags = " 标记 ", positions = " �标 ", heat = " 温度 ", byte_0_1 = " 字节 0 & 1 ", byte_floor = " 字节 地� ", byte_n_wall = " 字节 北墙 ", byte_w_wall = " 字节 西墙 ", byte_5 = " 字节 5 ", byte_6 = " 字节 6 ", byte_7 = " 字节 7 ", parcel = " 地区 ", } menu_player_count = { players_1 = " 1 玩家 ", players_2 = " 2 玩家 ", players_3 = " 3 玩家 ", players_4 = " 4 玩家 ", } adviser = { room_forbidden_non_reachable_parts = "在这个地方放置房间会导致医院的部分空间无法到达。", warnings = { no_desk = "你总得有个接待���", no_desk_1 = "你得有个接待�,这样�会有病人��", no_desk_2 = "干的�错,基本上也是个世界纪录了�:快一年了,一个病人都没有�如果你想继续当这个��的�,你需�去雇一个接待员,然�给她一张接待�工作�", no_desk_3 = "你真是个天�,一年了连个接待�都没有�你怎么�能有任何的病人�?赶紧给我�定,别在那里�务正业了�", no_desk_4 = "接待�需�一�接待员�接待�访的病人", no_desk_5 = "行了,接下�就是时间问题,应该很快就会有病人��", no_desk_6 = "你已�雇了一�接待员,���给她建个接待�?", no_desk_7 = "你已�建了一个接待�,���雇一�接待员?除�解决这个问题,�则�会有病人��", cannot_afford = "你没有足够的存款�雇这个人�", -- I can't see anything like this in the original strings cannot_afford_2 = "你没有足够的存款��这件事�", falling_1 = "嘿�别开玩笑了,看看你都是怎么点鼠标的,你�能会伤到人�", falling_2 = "���胡�了,跟有病似的?", falling_3 = "啊~有人�伤了,赶紧�医生�", falling_4 = "这里是医院,�是主题公园�", falling_5 = "这里�适�逗人玩,他们是病人好�?", falling_6 = "这里�是�龄�馆,应该对待病人如春天般温暖�", research_screen_open_1 = "你需�建设一个研究科室�能访问研究页�。", research_screen_open_2 = "这一关�能开展研究。", researcher_needs_desk_1 = "研究员需�一张桌�展开工作。", researcher_needs_desk_2 = "你的研究员对你�许他休�片刻表示感谢,但如果你想让�个人都工作,你需�给�个人一张桌�。", researcher_needs_desk_3 = "�个研究院需�自己的桌�。", nurse_needs_desk_1 = "�个护士都需�自己的桌�。", nurse_needs_desk_2 = "你的护士对你�许他休�片刻表示感谢,但如果你想让�个人都工作,你需�给�个人一张桌�。", low_prices = "%s的收费太低了。虽然�的人很多,但你赚�到什么钱。", high_prices = "%s的收费太贵了。虽然短期内能获得�观的利润,但最终没人会愿��。", fair_prices = "%s的收费看起�很��。", patient_not_paying = "病人没有支付%s的医�费,因为太贵�", }, cheats = { th_cheat = "�喜,你解�了作弊选项�", roujin_on_cheat = "Roujin's challenge 已�开���你好�...", roujin_off_cheat = "Roujin's challenge 关闭。", norest_on_cheat = "哇喔�似乎咖啡因使你的员工�分兴奋,永远�用休�。", norest_off_cheat = "呼~精神亢奋剂的效力过去了,员工现在��正常作�", }, } dynamic_info.patient.actions.no_gp_available = "您需�建造一般诊断室" dynamic_info.staff.actions.heading_for = "�往%s" dynamic_info.staff.actions.fired = "已解雇" dynamic_info.patient.actions.epidemic_vaccinated = "我已�没有传染性" progress_report.free_build = "自由建设" fax = { choices = { return_to_main_menu = "返回到主��", accept_new_level = "接手下一个医院", decline_new_level = "继续��这个医院", }, emergency = { num_disease_singular = "那里有一个人患了%s,他们需�马上救治。", free_build = "�功的�,你的声望就会上�,但你�是失败了,就会一��丈。", }, vip_visit_result = { remarks = { free_build = { "你的医院相当�错�没有预算的�制,�定很容易�?", "我�是一个�济学家,但我�是你我也行。你懂我啥��……", "医院��的�错。但��心�济�景气。哦对了,你���那个心。", } } } } letter = { dear_player = "亲爱的 %s", custom_level_completed = "�得好�你已完�自定义游�的所有目标�", return_to_main_menu = "你想�回到主��还是继续游�?", campaign_level_completed = "干得好�你完�了这一关。但是还没有结��\n您想在%s医院工作�?", campaign_completed = "难以置信�你�功完�了所有关�。你现在�以放�一下,然�去网上炫耀一番。�你好��", campaign_level_missing = "很抱歉,游�的下一关似乎已丢失。(�称:%s)", } install = { title = "-------------------------------- CorsixTH 游�设置 -------------------------------", th_directory = "CorsixTH 需�原版主题医院(或演示版)的数�文件�能�行。请指定原版主题医院游�的安装文件夹。", ok = "确定", exit = "退出", cancel = "�消", } misc.not_yet_implemented = "(尚未实现)" misc.no_heliport = "还没有疾病被�现,或者地图上需�一个直�机场。你�能需�建一个接待�,并雇用一�接待员" main_menu = { new_game = "开始游�", custom_campaign = "自定义任务", custom_level = "场景游�", continue = "继续游�", load_game = "载入游�", options = "选项", map_edit = "地图编辑器", savegame_version = "存档版本:", updates_off = "已�用更新检查", version = "版本:", exit = "退出", } tooltip.main_menu = { new_game = "从第一关开始新游�", custom_campaign = "玩由社区设计的任务", custom_level = "在一个场景下建医院", continue = "从最近的存档继续玩", load_game = "载入存档", options = "调整��设置", map_edit = "创建自定义地图", exit = "��,��,请��退出游��", quit = "你将退出 CorsixTH。确定?", } load_game_window = { caption = "载入游� (%1%)", } tooltip.load_game_window = { load_game = "载入游� %s", load_game_number = "载入游� %d", load_autosave = "载入自动�存的游�", } custom_game_window = { caption = "自定义游�", free_build = "自由建设", load_selected_level = "开始", } tooltip.custom_game_window = { choose_game = "点击一个关�以了解更多信�", free_build = "勾选此框,你将�需�为钱以�胜利失败而�心", load_selected_level = "加载并玩选定的关�", } custom_campaign_window = { caption = "自定义任务", start_selected_campaign = "开始任务", } tooltip.custom_campaign_window = { choose_campaign = "点击一项任务以了解更多信�", start_selected_campaign = "加载任务第一关", } save_game_window = { caption = "�存游� (%1%)", new_save_game = "新游�存档", } tooltip.save_game_window = { save_game = "覆盖游�存档 %s", new_save_game = "输入新存档的�称", } save_map_window = { caption = "�存地图 (%1%)", new_map = "新地图", } tooltip.save_map_window = { map = "覆盖地图 %s", new_map = "输入新地图的�称", } menu_list_window = { name = "�称", save_date = "已修改", back = "返回", ok = "确定", } tooltip.menu_list_window = { name = "点击此按�称排�", save_date = "点击此按最�修改日期排�", back = "关闭此窗�", ok = "确定选�", } options_window = { caption = "设置", option_on = "开", option_off = "关", option_enabled = "已�用", option_disabled = "已�用", fullscreen = "全�幕", resolution = "分辨率", capture_mouse = "�获鼠标", custom_resolution = "自定义...", width = "宽度", height = "高度", customise = "自定义", folder = "文件夹", language = "语言", apply = "应用", cancel = "�消", back = "返回", scrollspeed = "滚动速度", shift_scrollspeed = "加速滚动速度", zoom_speed = "缩放速度", hotkey = "快�键", check_for_updates = "自动检查更新", } tooltip.options_window = { fullscreen = "应该在全�还是窗�模��行", fullscreen_button = "点击切�全�模�", resolution = "在此分辨率下�行游�", select_resolution = "选择新的分辨率", capture_mouse = "点击切�是�将光标�获在游�窗�中", width = "输入想�的�幕宽度", height = "输入想�的�幕高度", apply = "应用此分辨率", cancel = "返回而�更改分辨率", customise_button = "更多�以改�游�体验的选项", folder_button = "文件夹选项", language = "游�文字使用的语言", select_language = "选择语言", language_dropdown_item = "选择 %s 为语言", back = "关闭设置窗�", scrollspeed = "将滚动速度设为1(最慢)到10(最快)。默认为2。", shift_scrollspeed = "设定在滚动时按下 Shift 键时的滚动速度。1(最慢)到10(最快)。默认:4。", zoom_speed = "将相机�焦速度设为10(最慢)到1000(最快)。默认值为80。", apply_scrollspeed = "应用输入的滚动速度。", cancel_scrollspeed = "返回而�更改滚动速度。", apply_shift_scrollspeed = "应用输入的加速滚动速度。", cancel_shift_scrollspeed = "返回而�更改加速滚动速度。", apply_zoomspeed = "应用输入的缩放速度。", cancel_zoomspeed = "返回而�更改缩放速度。", hotkey = "更改键盘热键。", check_for_updates = "游��动时自动检查更新", } audio_window = { audio = "全局音效", back = "返回", } tooltip.audio_window = { audio_button = "开关所有的声音", audio_toggle = "切�开关", } customise_window = { caption = "自定义设置", option_on = "开", option_off = "关", back = "返回", movies = "全局 CG 控制", intro = "播放�动 CG", paused = "建造时暂�", volume = "��音�热键", aliens = "外星人��紧急情况", fractured_bones = "骨折��男性", average_contents = "房间常用物件", remove_destroyed_rooms = "移除已��的房间", } tooltip.customise_window = { movies = "全局 CG 控制,这将�许您�用所有 CG", intro = "关闭或打开�动 CG,如果您希望�次�动 CorsixTH 时都播放�动 CG,则必须打开全局 CG", paused = "在主题医院中,�有在游�暂�的情况下,��许玩家使用顶部��,这也是 CorsixTH 的默认设置。但是将此选项打开,游�暂�时�以进行所有�作", volume = "如果��音�按钮�时打开了治疗手册,请将打开治疗手册的快�键更改为 Shift + C", aliens = "因为缺少�适的动画,默认外星人 DNA 病人�会�自紧急事件。��许紧急事件外出现外星人 DNA 病人,请关闭此选项", fractured_bones = "由于动画效果�佳,默认�会有女性骨折患者。��许女性骨折患者就诊,请关闭此功能", average_contents = "如果您想让游�记�在建造房间时通常会添加哪些其他对象,请�用此选项。", remove_destroyed_rooms = "打开这个选项,使已��的房间�以付费移除。", back = "关闭此��,并返回设置��", } folders_window = { caption = "文件夹�置", data_label = "TH 数�", font_label = "字体", music_label = "音�", savegames_label = "存档", screenshots_label = "截图", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "您�以在此处指定新的主题医院安装目录。选择新目录�,游�将�新�动。", savegames_location = "选择�用于�存的目录", music_location = "选择您�用于音�的目录", screenshots_location = "选择您�用于�幕截图的目录", back = "返回", } tooltip.folders_window = { browse = "�览文件夹�置", data_location = "原版主题医院安装的目录,CorsixTH �行所必需", font_location = "选择�以显示您的语言所需 Unicode 字体的�置。如果没有指定,您将�能使用原游��供字体之外的语言,例如中文和俄语。(你一定已�选了,��怎么�以看到这��呢?)", savegames_location = "默认情况下,游�存档存储在�置文件�边的文件夹中。如果��适,�以选择自己的目录,�需�览到�使用的目录��。", screenshots_location = "默认情况下,�幕快照存储在�置文件�边的文件夹中。如果��适,�以选择自己的目录,�需�览到�使用的目录��。", music_location = "选择存储音�文件的�置。此目录必须已�存在,然��能�览到刚创建的目录。", browse_data = "�览�一处主题医院安装�置(当��置:%1%)", browse_font = "�览�一个字体(当��置:%1%)", browse_saves = "�览�一处游�存档储存�置(当��置:%1%)", browse_screenshots = "�览�一处�幕截图储存�置(当��置:%1%)", browse_music = "�览�一处音�储存�置(当��置:%1%)", no_font_specified = "没有指定字体的�置�", not_specified = "没有指定文件夹�置�", default = "默认�置", reset_to_default = "�置到默认文件夹 ( %1% )", back = "关闭此��,并返回设置��", } hotkey_window = { caption_main = "快�键分�", caption_panels = "��键", button_accept = "接�", button_defaults = "�置为默认值", button_cancel = "�消", button_back = "返回", button_toggleKeys = "切�键", button_gameSpeedKeys = "游�速度键", button_recallPosKeys = "载入视点键", panel_globalKeys = "全局键", panel_generalInGameKeys = "一般游�内键", panel_scrollKeys = "滚动键", panel_zoomKeys = "缩放键", panel_gameSpeedKeys = "游�速度键", panel_toggleKeys = "切�键", panel_debugKeys = "调试键", panel_storePosKeys = "�存视点键", panel_recallPosKeys = "载入视点键", panel_altPanelKeys = "替代��键", global_confirm = "确认", global_confirm_alt = "确认(替代)", global_cancel = "�消", global_cancel_alt = "�消(替代)", global_fullscreen_toggle = "全�", global_exitApp = "退出应用", global_resetApp = "�置应用", global_releaseMouse = "释放鼠标", global_connectDebugger = "调试器", global_showLuaConsole = " Lua 控制�", global_runDebugScript = "调试脚本", global_screenshot = "�幕截图", global_stop_movie_alt = "�止 CG", global_window_close_alt = "关闭窗�", ingame_scroll_up = "�上滚动", ingame_scroll_down = "�下滚动", ingame_scroll_left = "�左滚动", ingame_scroll_right = "��滚动", ingame_scroll_shift = "速度切�", ingame_zoom_in = "放大", ingame_zoom_in_more = "放大更多", ingame_zoom_out = "缩�", ingame_zoom_out_more = "缩�更多", ingame_reset_zoom = "�置缩放", ingame_showmenubar = "显示���", ingame_showCheatWindow = "作弊��", ingame_loadMenu = "载入游�", ingame_saveMenu = "�存游�", ingame_jukebox = "音�盒", ingame_openFirstMessage = "关�消�", ingame_pause = "暂�", ingame_gamespeed_slowest = "�常慢", ingame_gamespeed_slower = "较慢", ingame_gamespeed_normal = "正常", ingame_gamespeed_max = "快速", ingame_gamespeed_thensome = "�快", ingame_gamespeed_speedup = "加速", ingame_panel_bankManager = "银行��", ingame_panel_bankStats = "银行状�", ingame_panel_staffManage = "员工管�", ingame_panel_townMap = "城镇地图", ingame_panel_casebook = "治疗手册", ingame_panel_research = "研究", ingame_panel_status = "状�", ingame_panel_charts = "图表", ingame_panel_policy = "制度", ingame_panel_map_alt = "城镇地图2", ingame_panel_research_alt = "研究2", ingame_panel_casebook_alt = "治疗手册2", ingame_panel_casebook_alt02 = "治疗手册3", ingame_panel_buildRoom = "建造房间", ingame_panel_furnishCorridor = "设置走廊", ingame_panel_editRoom = "编辑房间/物�", ingame_panel_hireStaff = "雇佣员工", ingame_rotateobject = "旋转对象", ingame_quickSave = "快速�存", ingame_quickLoad = "快速加载", ingame_restartLevel = "��关�", ingame_quitLevel = "退出关�", ingame_setTransparent = "�明墙�", ingame_toggleAnnouncements = "公告", ingame_toggleSounds = "声音", ingame_toggleMusic = "音�", ingame_toggleAdvisor = "顾问", ingame_toggleInfo = "信�", ingame_poopLog = "转储日志", ingame_poopStrings = "转储字符串", ingame_patient_gohome = "��回家", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_storePosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_recallPosition_0 = "10", } tooltip.hotkey_window = { button_accept = "接�上�的热键分�,并将其�存到�盘", button_defaults = "将所有热键�置为程�的默认值", button_cancel = "�消分�,并返回选项��", caption_panels = "打开分���键的窗�", button_gameSpeedKeys = "开�游�速度热键的窗�", button_recallPosKeys = "打开窗�以设置用于存储和调用摄�机�置的键", button_back_02 = "返回主热键窗�。在此窗�中更改的热键�在此处接�", } font_location_window = { caption = "选择字体 (%1%)", } handyman_window = { all_parcels = "所有地区", parcel = "地区" } tooltip.handyman_window = { parcel_select = "清�工工作的地区,�击以更改设置" } new_game_window = { caption = "竞争上岗", player_name = "玩家�称", option_on = "开", option_off = "关", difficulty = "难度", easy = "实习医生(容易)", medium = "医生(一般)", hard = "专家(难)", tutorial = "游�教程", start = "开始", cancel = "返回", } tooltip.new_game_window = { player_name = "输入你游�中的�字", difficulty = "选择您�玩的游�难度等级", easy = "如果您刚开始玩模拟游�,选择此项", medium = "如果�确定�选择什么,选择中间这项", hard = "如果您熟悉这个游�,想�有点挑战,选择此项", tutorial = "�击此处�用游�上手教程", start = "使用当�设置开始游�", cancel = "哦,我没打算真的开始新游��", } lua_console = { execute_code = "执行", close = "关闭", } tooltip.lua_console = { textbox = "输入 Lua 代�以�行", execute_code = "�行输入的代�", close = "关闭控制�", } errors = { dialog_missing_graphics = "哎呀,演示版数�文件�包�这个对�框。", save_prefix = "�存游�失败:", load_prefix = "载入游�失败:", no_games_to_contine = "无游�存档。", load_quick_save = "错误,�存在快速存档,无法加载。�用担心,我们已�为您创建了一个�", map_file_missing = "找�到该关�的地图文件 %s�", minimum_screen_size = "最��幕大�为 %dx%d。", unavailable_screen_size = "您设置的�幕大�无法应用于全�模�。", alien_dna = "注�:对于外星人病人�说,�下�打开或敲门等都没有动画。因此,�在主题医院中�这些事情一样,它们看起�会��正常外观,然���回原状。外星人 DNA 仅当它们在关�文件中设置�动时�会显示", fractured_bones = "注�:女性骨折患者的动画效果��想", could_not_load_campaign = "无法加载任务:%s", could_not_find_first_campaign_level = "找�到该任务的第一关:%s", save_to_tmp = "文件无法�存到 %s 。文件改为�存到 %s 。问题: %s", dialog_empty_queue = "抱歉,程��到bug了。弹出窗�显示的这个人员没有被安排指令(empty action queue),请你决定把他�离医院或进行其他动作。", compatibility_error = { demo_in_full = "抱歉,这是演示版的游�存档,无法在完整版中打开。请更新原版主题医院目录内容。", full_in_demo = "抱歉,这是完整版的游�存档,无法在演示版中打开。请更新原版主题医院目录内容。", new_in_old = "抱歉,此游�存档需�较新版本的 CorsixTH �能打开。", }, } warnings = { levelfile_variable_is_deprecated = "注�:关�'%s'在关�文件中包�弃用的��定义。" .. "'%LevelFile'已�命�为'%MapFile'。请建议地图创建者更新关�。", newersave = "警告:此游�存档是由较新版本 CorsixTH 创建的。�建议继续进行游�,�则�能会出现错误。一般�说,仅作测试用途。", } confirmation = { needs_restart = "这项设置的改动需��新�动 CorsixTH。尚未�存的进度将会丢失。确定�这么��?", abort_edit_room = "您正在修建或者修改一间房间。如果所有必需的物�都被放置了就没有问题,�则所�的修改将被删除。继续�?", maximum_screen_size = "您输入的�幕尺寸大于 3000x2000。�以使用更大的分辨率,但需�更好的硬件�能���播放的帧速率。继续�?", } information = { custom_game = "欢迎�到 CorsixTH。尽情享�自定义地图��", no_custom_game_in_demo = "抱歉,在演示版本中,您无法玩任何自定义地图。", cannot_restart = "�幸的是这个自定义地图是在 �新开始 功能开�之�创建的。", very_old_save = "从您开始玩此关以�,游�已有许多更新。为确�所有功能�按预期工作,请考虑�新�动它。", level_lost = { "您失败了�游�结�。下次好��", "由于:", reputation = "声望低于%d。", balance = "银行账户资金低于%d。", percentage_killed = "�死了多于%d%%的病人。", cheat = "这是你的选择,还是选择了错误的按钮?你甚至连作弊都�会,�是那么有趣�?", }, cheat_not_possible = "无法在这关上使用此项作弊。你甚至连作弊都失败了,�是那么有趣�?", } tooltip.information = { close = "关闭信�对�框", } totd_window = { tips = { "医院想开张就需�一个��桌�和一个问诊室。这之�还需�根���病人建立��房间。但有个�房总是对的。", "有一些机器需�维护,比如说充气机。所以雇一两个修�人员还是必�的,�然那就是个定时炸弹。", "你的员工会�时感到疲倦。所以建一间休闲室也很必�。", "多放点几个暖气,让你的员工和病人感到春天般温暖。用全景地图�查看它们的覆盖�积以决定是�还需�多放些。", "一个医生的医疗水平很大程度影�他的诊断速度。把最牛逼的医生放在问诊室,这样你会�下其他的问诊室。", "实习生和医生们�以通过在学习室�专家学习��高水平。如果请�的专家拥有�一项专长(外科医生,精神病医生或研究员),他也会教给他的学生们。", "有没有试过在传真机上拨112?这是欧洲的急救电�。记得将音�调到最大�", "在主��和游���里�,找到选项窗�,在那里�以调整分辨率和语言。", "你选择了中文,但是你还是�能会在游�中��地看到英文。把他们翻译了�,我们需�你的帮助�", "CorsixTH �组正在壮大�如果你对编程�翻译�创作主题医院需�的图片等等任何方�感兴趣,�以到 CorsixTH 网站找到开��社群等信�。", "如果你碰到了 bug,请�交给我们: th-issues.corsix.org", "�一关都需�满足特定的�件�能过关。你�以通过状�窗�看到你的进度。", "如果你需�编辑或者删除一间房间,�幕下方找到工具�,然�点编辑房间按钮。", "在�群结队等待就诊的病人中,你�以通过指�房间的门�找到哪些病人在等。", "点击房间门�以看到等待队列。你�以�些调整让�些人走个�门,或者�到�一个房间去。", "�开心的员工�有通过涨薪�平衡自己了。你���你的员工的工作环境�家一样,�能让他们甘心给你�命。", "病人等的时间长了,会�渴,如果开了暖气,�渴得会更快�放些自动贩�机�,还能多些零花钱。", "如果你�过��病,你�以中断诊疗过程直接去治,治死了��找我。", "从紧急事件总能赚一大笔,但是你�按时处�好�行。", "你知��以指定清�工人工作的地区�?打开他的数�窗�,点击“所有地区�文字便�设置地区。", }, previous = "�一项�示", next = "下一项�示", } tooltip.totd_window = { previous = "显示上一项�示", next = "显示下一项�示", } debug_patient_window = { caption = "调试病人", } cheats_window = { caption = "作弊", warning = "警告: 如果作弊关�结�时你将得�到任何奖励�", cheated = { no = "作弊了�: �", yes = "作弊了�: 是", }, cheats = { money = "给我钱��", all_research = "所有研究", emergency = "紧急事件", vip = "贵宾", earthquake = "地震", epidemic = "生�传染性病人", toggle_infected = "切�感染图标", create_patient = "生�病人", end_month = "月末", end_year = "年末", lose_level = "失败", win_level = "获胜", increase_prices = "涨价", decrease_prices = "�价", }, close = "关闭", } tooltip.cheats_window = { close = "关闭作弊对�框", cheats = { money = "增加10,000存款。", all_research = "完�所有的研究。", emergency = "创建一次紧急事件。", vip = "创建一�贵宾。", earthquake = "制造一次地震。", epidemic = "创建一��能导致�行病传染的传染性患者", toggle_infected = "切�感染图标,以�现活跃的�行病", create_patient = "在地图的边缘生�一个病人。", end_month = "跳到月末。", end_year = "跳到年末。", lose_level = "在当�关�败北。", win_level = "赢得当�关�。", increase_prices = "所有项目涨价50%(最大200%)", decrease_prices = "所有项目�价50%(最�50%)", }, } introduction_texts = { demo = "欢迎�到演示版医院�//" .. "演示版本�有当�这一个关�。但有一堆事情足够你忙一阵了� " .. "你将会�到��疾病需���医疗室�救治。紧急情况也会�常性地�生。你需�通过研究室�研�更多的医疗室。" .. "你的目标是挣够$100,000,使医院的价值达到$70,000以�得到700声望值,�时你还需�救治超过75%的病人。" .. "确�你的声望值�会掉到300以下,你的病人死亡率�超过40%,�则你就完了。//" .. "�你好��", } calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d项呼�;%d项已分�", staff = "%s - %s", watering = "浇水 @ %d,%d", repair = "修� %s", close = "关闭", } tooltip.calls_dispatcher = { task = "任务列表 - 点击任务打开人员分�窗�,然�滚动到任务的�置", assigned = "这个框代表是�有人被分�给此任务。", close = "关闭签派窗�", } update_window = { caption = "��级新版本�", new_version = "新版本:", current_version = "当�版本:", download = "打开下载页�", ignore = "回到主��" } tooltip.update_window = { download = "�往下载页�下载最新版 CorsixTH", ignore = "忽略这次更新。您将在下次�动 CorsixTH 时�次收到通知", } map_editor_window = { pages = { inside = "内部", outside = "外部", foliage = "�木", hedgerow = "树篱", pond = "池塘", road = "�路", north_wall = "北墙", west_wall = "西墙", helipad = "�机�", delete_wall = "删除墙�", parcel_0 = "包 0", parcel_1 = "包 1", parcel_2 = "包 2", parcel_3 = "包 3", parcel_4 = "包 4", parcel_5 = "包 5", parcel_6 = "包 6", parcel_7 = "包 7", parcel_8 = "包 8", parcel_9 = "包 9", camera_1 = "相机 1", camera_2 = "相机 2", camera_3 = "相机 3", camera_4 = "相机 4", heliport_1 = "直�机场 1", heliport_2 = "直�机场 2", heliport_3 = "直�机场 3", heliport_4 = "直�机场 4", paste = "Paste area", } } hotkeys_file_err = { file_err_01 = "无法加载 hotkeys.txt 文件。请确� CorsixTH " .. "具有读/写��", file_err_02 = ",或使用 --hotkeys-file=filename 命令行选项指定一个�写文件。" .. "作为�考,加载快�键文件的错误是:", } -- Override for level progress typo level_progress.hospital_value_enough = "��医院价值在%d以上,并解决好其他问题,就能完�任务了。" level_progress.cured_enough_patients = "您已�治愈了足够多的病人,但是您�有达到更高的标准�能完�任务。" -- Override for multiplayer typos multiplayer.players_failed = "以下玩家没有完�最终目标:" multiplayer.everyone_failed = "所有玩家都没有完�最终目标。因此�个人都�继续努力�" -------------------------------- UNUSED ----------------------------------- ------------------- (kept for backwards compatibility) ---------------------- options_window.change_resolution = "更改分辨率" tooltip.options_window.change_resolution = "更改窗�分辨率为左方的值" CorsixTH-0.70.0/CorsixTH/Lua/languages/spanish.lua000066400000000000000000002602111522247547500216620ustar00rootroot00000000000000--[[ Copyright (c) 2016 Víctor González a.k.a. "mccunyao" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("cp437") Language("Español", "Spanish", "es", "spa", "esp", "sp") Inherit("english") Inherit("original_strings", 4) IsArabicNumerals(true) ------------------------------- OVERRIDE ---------------------------------- tooltip.graphs.reputation = "Cambiar reputación" tooltip.status.close = "Cerrar pantalla de estado" -- tooltip.staff_list.next_person, prev_person is rather next/prev page (also in german, maybe more languages?) tooltip.staff_list.next_person = "Mostrar la página siguiente" tooltip.staff_list.prev_person = "Mostrar la página anterior" tooltip.status.reputation = "Tu reputación no debe estar por debajo de %d. Actualmente tienes %d" tooltip.status.balance = "No debes tener menos de $%d en el banco. Actualmente tienes $%d" fax.emergency.cure_not_possible_build = "Necesitas construir un %s" fax.emergency.cure_not_possible_build_and_employ = "Necesitas construir un %s y contratar un/a %s" fax.emergency.num_disease = "Hay %d personas con %s y necesitan ser atendidas inmediatamente." adviser.goals.lose.kill = "Mata otros %d pacientes para perder el nivel!" -- Improve tooltips in staff window to mention hidden features tooltip.staff_window.face = "Rostro de la persona - pulsa para abrir la pantalla de personal." tooltip.staff_window.center_view = "Botón izquierdo para fijarse en la persona, botón derecho para rotar entre los miembros del personal." -- Improve tooltips in Research Screen tooltip.research.cure_dec = "Disminuir porcentaje de investigación de Curas" tooltip.research.cure_inc = "Aumentar porcentaje de investigación de Curas" tooltip.research.diagnosis_dec = "Disminuir porcentaje de investigación de Diagnóstico" tooltip.research.diagnosis_inc = "Aumentar porcentaje de investigación de Diagnóstico" tooltip.research.drugs_dec = "Disminuir porcentaje de investigación de Medicamentos" tooltip.research.drugs_inc = "Aumentar porcentaje de investigación de Medicamentos" tooltip.research.improvements_dec = "Disminuir porcentaje de investigación de Mejoras" tooltip.research.improvements_inc = "Aumentar porcentaje de investigación de Mejoras" tooltip.research.specialisation_dec = "Disminuir porcentaje de investigación de Especialización" tooltip.research.specialisation_inc = "Aumentar porcentaje de investigación de Especialización" -- These strings are missing in some versions of TH (unpatched?) confirmation.restart_level = "¿Seguro que quieres reiniciar el nivel?" -- TODO adviser.multiplayer.objective_completed -- TODO adviser.multiplayer.objective_failed tooltip.handyman_window.close = "Cerrar ventana" tooltip.machine_window.close = "Cerrar ventana" tooltip.queue_window.close = "Cerrar ventana" tooltip.jukebox.rewind = "Rebobinar reproductor de música" tooltip.jukebox.loop = "El reproductor de música funciona continuamente" tooltip.jukebox.stop = "Parar reproductor de música" tooltip.jukebox.close = "Cerrar reproductor de música" tooltip.jukebox.current_title = "Reproductor de música" tooltip.jukebox.play = "Encender reproductor de música" tooltip.jukebox.fast_forward = "Avance rápido del reproductor de música" tooltip.patient_window.close = "Cerrar ventana" tooltip.staff_window.close = "Cerrar ventana" tooltip.build_room_window.close = "Salir de esta ventana y volver al juego" misc.hospital_open = "Hospital abierto" misc.save_success = "Partida guardada correctamente" misc.save_failed = "ERROR: No se ha podido guardar la partida" misc.out_of_sync = "Partida desincronizada" -- Some overrides as original texts were too long see issue 1355 MarkL high_score = { categories = { deaths = "FALLECIMIENTOS", total_value = "VALOR TOTAL", money = "RIQUEZA", cures = "CURACIONES", visitors = "VISITANTES", staff_number = "PLANTILLA", cure_death_ratio = "PROPORCIÓN", patient_happiness = "CLIENTES CONTENTOS", staff_happiness = "PERSONAL CONTENTO", salary = "SUELDO MAS ALTO", clean = "LIMPIEZA", }, player = "JUGADOR", score = "PUNTOS", pos = "POS", best_scores = "TABLA DEL HONOR", worst_scores = "TABLA DE LA VERGUENZA", killed = "Muerto" } --String text gets outside of window confirmation.quit = "¿Seguro que quieres salir del juego? " --Typos found on the official Spanish translation tooltip.rooms.dna_fixer = "El médico usa el Reparador de ADN para curar a los pacientes con ADN alienígena" diseases.broken_heart.cause = "Causa - alguien más rico, más joven y más delgado que el paciente." fax.emergency.locations[1] = "Planta química González" fax.emergency.locations[3] = "Centro de plantas acuáticas" fax.emergency.locations[5] = "Congreso de bailarines rusos" fax.emergency.locations[8] = "La casa del curry" fax.emergency.locations[9] = "Emporio petroquímico usado Díaz y Díaz" fax.epidemic.cover_up_explanation_2 = "Si un inspector sanitario te visita y encuentra una epidemia encubierta tomará medidas drásticas en tu contra." fax.epidemic.disease_name = "Tus médicos han descubierto una variedad contagiosa de %s." tooltip.main_menu.continue = "Continuar la última partida guardada." tooltip.watch.epidemic = "Epidemia: tiempo que queda para encubrir la epidemia. Cuando este tiempo expire O un paciente contagioso abandone tu hospital, un Inspector de Sanidad puede visitarte. El botón activa o desactiva el modo vacuna. Pulsa en un paciente para que lo vacune una Enfermera." tooltip.watch.hospital_opening = "Tiempo de construcción: es el tiempo que queda para que tu hospital sea declarado abierto. Si pulsas el botón verde abrirás el hospital inmediatamente." rooms_short.decontamination = "Descontaminación" adviser.room_requirements.op_need_another_surgeon = "Tienes que contratar a otro cirujano para poder usar el quirófano." adviser.information.patient_abducted = "Los alienígenas han raptado a uno de tus pacientes." adviser.praise.plants_thriving = "Muy bien. Tus plantas están muy lozanas. Tienen un aspecto maravilloso. Si las mantienes así podrás ganar un premio." adviser.level_progress.reputation_good_enough = "De acuerdo, tu reputación lo es bastante buena para ganar este nivel, manténla por encima de %d y soluciona otros problemas para terminar." adviser.staff_place_advice.only_nurses_in_room = "Sólo pueden trabajar las Enfermeras en el(la) %s" adviser.tutorial.select_receptionists = "Haz clic en el icono que parpadea para ver qué recepcionistas están disponibles." rooms_long.decontamination = "Consulta de Descontaminación" dynamic_info.staff.ability = "Habilidad" dynamic_info.staff.actions.going_to_repair = "Yendo a reparar %s" dynamic_info.object.queue_expected = "Fila esperada: %d" research.categories.drugs = "Investigación farmacéutica" transactions = { machine_replacement = "Coste de máquina de reemplazo", eoy_trophy_bonus = "Primas por trofeo Fin de Año", drinks = "Ingreso: Máquinas de bebidas", jukebox = "Ingreso: Gramolas", cheat = "Dinero de trampas", eoy_bonus_penalty = "Primas/Multas en fin de año", } confirmation.return_to_blueprint = "¿Seguro que quieres sustituir el(la) %s por $%d?" staff_descriptions = { misc = { [9] = "Le gusta hacer surf. ", [10] = "Le gusta el piragüismo. ", [11] = "Destila whisky. ", [12] = "Es un experto en formación. ", [13] = "Le gusta el cine francés. ", [15] = "Conduce coches de carreras. ", [25] = "Participó en un concurso. ", [26] = "Colecciona metralla de la segunda guerra mundial. ", [29] = "Pone furiosos a los insectos rociándolos con desodorante. ", }, good = { [3] = "Sabe de todo.", }, } progress_report.percentage_pop = "% población" letter = { [1] = { [1] = "¡Hola, %s!//", [2] = "¡Estupendo! Diriges este hospital de una manera excelente. Los peces gordos del Ministerio de Sanidad queremos saber si estarías interesado en hacerte cargo de un gran proyecto. Hay un trabajo para el que creemos eres la persona perfecta. El sueldo sería de %d. Piénsalo.//", }, [2] = { [1] = "¡Hola, %s!//", [2] = "¡Felicidades! Has realizado notables mejoras en tu hospital. Tenemos otra cosa de la que podrías encargarte, si te apetece un cambio y afrontar nuevos retos. No tienes que aceptar, pero estaría bien que lo hicieras. El sueldo es de %d//", }, [3] = { [1] = "¡Hola, %s!//", [2] = "Has dirigido con notable acierto este hospital. Creemos que tienes un brillante futuro y nos gustaría ofrecerte un puesto en otra parte. El sueldo sería de %d y creemos que te encantaría el reto que ello supondría.//", }, [4] = { [1] = "¡Hola, %s!//", [2] = "¡Felicidades! En el Ministerio estamos muy impresionados por tu capacidad como director de hospital. Eres sin duda una persona valiosa para el Departamento de Sanidad, pero creemos que preferirías un trabajo más cualificado. Recibirías un sueldo de %d, si bien la decisión es tuya.//", }, [5] = { [1] = "¡Hola, %s!//", [2] = "Saludos de nuevo. Respetamos tus deseos de no trasladarte de tu estupendo hospital, pero te pedimos que lo reconsideres. Te ofreceremos un mejor sueldo de %d si decides marcharte a otro hospital y te encargas de la dirección del mismo.//", }, [6] = { [1] = "¡Hola, %s!//", [2] = "Recibe nuestros saludos. Sabemos lo mucho que has disfrutado de tu estancia en esta institución, tan agradable y bien dirigida, pero creemos que ahora deberías pensar en tu futuro. Naturalmente, tendrías un sueldo de %d si decidieras trasladarte. Merece la pena que lo pienses.//", }, [7] = { [1] = "¡Hola, %s!//", [2] = "¡Buenos días! El Ministerio de Sanidad quisiera saber si vas a reconsiderar tu decisión de quedarte en tu hospital. Comprendemos que tienes un estupendo hospital, pero creemos que harías muy bien en aceptar un trabajo más estimulante, con un sueldo de %d.//", }, [8] = { [1] = "¡Hola, %s!//", [2] = "Buenas de nuevo. Recibimos tu negativa a nuestra última carta, en la que te ofrecíamos un puesto de dirección en otro hospital y un alto sueldo de %d. No obstante, creemos que deberías reconsiderar esta decisión. Como verás, tenemos el trabajo perfecto para ti.//", }, [9] = { [1] = "¡Hola, %s!//", [2] = "Has demostrado ser el mejor director de hospital en la larga y azarosa historia de la medicina. Este importantísimo logro no puede quedar sin recompensa, por lo que nos gustaría ofrecerte el puesto de Director Jefe de Todos los Hospitales. Es un puesto honorífico, con un sueldo de %d. Tendrás una presentación con todos los honores y la gente te demostrará su reconocimiento vayas donde vayas.//", }, [10] = { [1] = "¡Hola, %s!//", [2] = "Enhorabuena, has gestionado tus hospitales satisfactoriamente. Este logro te permitirá viajar dónde quieras, con una paga de %d y una limusina. Aunque por supuesto esperamos que en tus viajes, no defraudes a tu público y sigas promocionando los hospitales.//" }, [11] = { [1] = "¡Hola, %s!//", [3] = "Eres un ejemplo para todos los hombres de bien y todo el mundo, sin excepción, te considera una persona de enorme valía.//", }, [12] = { [1] = "¡Hola, %s!//", [2] = "Tu exitosa carrera como el mejor director de hospital desde Moisés está llegando a su fin. No obstante, has provocado tal efecto en los círculos médicos, que el Ministerio quiere ofrecerte un sueldo de %s sólo por actuar en nuestro nombre inaugurando festejos, botando barcos y organizando coloquios. ¡El mundo entero te aclamaría y serías un excelente relaciones públicas!//", }, } tooltip.staff_window.ability = "Nivel de cualificación" tooltip.policy.diag_termination = "Se mantendrá el diagnóstico de un paciente hasta que los médicos estén seguros del porcentaje de DETENER, o hasta que se hayan usado todos los diagnosticadores" tooltip.staff_list.ability = "Muestra el nivel de habilidad de estos empleados" introduction_texts = { level1 = "¡Bienvenido a tu primer hospital!//" .. "Para hacer que empiece a funcionar, coloca una recepción, construye una consulta y contrata a una recepcionista y a un médico. " .. "Luego espera a que lleguen los pacientes. " .. "Sería una buena idea que construyeras una consulta de psiquiatría y contrataras a un psiquiatra. " .. "Una farmacia y una enfermera son fundamentales para curar a tus pacientes. " .. "Cuidado con los casos malignos de pacientes cabezudos; se solucionan pronto en la consulta de inflatoterapia. " .. "Tendrás que curar a 10 personas y asegurarte de que tu reputación no sea inferior a 200.", level2 = "Hay una gran variedad de indisposiciones en esta zona.//" .. "Prepara tu hospital para tratar a más pacientes y proyecta la construcción de un Departamento de Investigación. " .. "Recuerda que debes mantener limpio el hospital y procura conseguir que tu reputación sea lo más alta posible. Tratarás enfermedades como la Lengua Larga, así que necesitarás una consulta de laringología. " .. "También puedes construir un cardiómetro para diagnosticar nuevas enfermedades. " .. "Estas dos consultas deberán ser investigadas antes de construirlas. También puedes comprar más terreno para ampliar tu hospital. Para ello, utiliza un mapa de la ciudad. ", "Intenta alcanzar una reputación de 300, un saldo bancario de 10.000 dólares y cura a 40 personas.", level3 = "Esta vez colocarás tu hospital en una zona acaudalada.//" .. "El Ministerio de Sanidad espera que consigas curar a muchos pacientes. " .. "Tendrás que ganarte una buena reputación para empezar, pero una vez que el hospital empiece a funcionar, concéntrate en ganar todo el dinero que puedas. " .. "También puede haber urgencias. " .. "Se producen cuando llega mucha gente que padece la misma enfermedad. " .. "Si los curas dentro de un plazo determinado, conseguirás aumentar tu reputación y ganar una prima extra. " .. "Habrá enfermedades, como el síndrome de rey, y deberás tener presupuesto para construir un quirófano y una enfermería adyacente. " .. "Tienes que ganar 20.000 dólares para superar este nivel.", level4 = "Haz que todos tus pacientes estén contentos, atiéndelos con la mayor eficacia e intenta que mueran los menos posibles.//" .. "Tu reputación está en juego, así que procura aumentarla todo lo que puedas. " .. "No te preocupes demasiado por el dinero; Lo irás ganando a medida que crezca tu reputación. " .. "También podrás formar a tus médicos para ampliar sus conocimientos: " .. "ellos podrán curar a los pacientes más difíciles. " .. "Alcanza una reputación por encima de 500.", level5 = "Este será un hospital concurrido, que tratará casos muy variados.//" .. "Tus médicos acaban de salir de la facultad, por lo que es fundamental que construyas una sala de formación para que alcancen el nivel de formación necesario. " .. "Sólo tienes tres especialistas para enseñar a tu personal inexperto, así que procura que estén contentos. " .. "Tienes que tener en cuenta que el hospital está ubicado encima de la falla geológica de San Androide. " .. "Siempre hay riesgo de terremoto. " .. "Los terremotos provocarán daños importantes en tus máquinas y alterarán el buen funcionamiento de tu hospital. " .. "Aumenta tu reputación hasta 400 y consigue unos ingresos de 50.000 dólares para triunfar. También debes curar a 200 pacientes. ", level6 = "Utiliza toda tu capacidad para conseguir un hospital que funcione bien y consiga curar a muchos pacientes y que pueda tratar cualquier caso que presenten los enfermos.//" .. "Estás avisado de que el ambiente, aquí, es especialmente propenso a gérmenes e infecciones. " .. "A menos que mantengas una escrupulosa limpieza en tu institución, tendrás que hacer frente a una serie de epidemias entre los pacientes. " .. "Procura obtener unos ingresos de 20.000 dólares y que el valor de tu hospital supere los 140.000 dólares. ", level7 = "Aquí estarás bajo la estricta vigilancia del Ministerio de Sanidad, así que procura que tus cuentas tengan unos ingresos excelentes y que aumente tu reputación.//" .. "No podemos permitirnos que haya muertes innecesarias; no son nada buenas para el negocio. " .. "Asegúrate de que tu personal está en plena forma y de que tienes todos los equipos necesarios. " .. "Consigue una reputación de 600, y un saldo bancario de 200.000 dólares.", level8 = "De ti depende que puedas construir el hospital más eficiente y rentable posible.//" .. "La gente de por aquí es bastante adinerada, así que sabléalos todo lo que puedas. " .. "Recuerda, curar a la gente está muy bien, pero lo que de verdad NECESITAS es su dinero. " .. "Despluma vivos a estos pacientes. " .. "Acumula 300.000 dólares para completar este nivel. ", level9 = "Después de ingresar dinero en la cuenta bancaria del Ministerio y pagar una nueva limusina para el Ministro, ahora puedes dedicarte a crear un buen hospital para cuidar a los enfermos y necesitados. " .. "Aquí tendrás un montón de problemas diferentes. " .. "Si tu personal tiene una buena formación y cuentas con suficientes consultas, podrás resolver cualquier situación. " .. "Tu hospital tendrá que valer 200.000 dólares y necesitarás tener 400.000 dólares en el banco. " .. "Si no lo consigues no podrás terminar el nivel.", level10 = "Además de ocuparte de curar todas las enfermedades que pueda haber, el Ministerio te pide que emplees algo de tiempo en aumentar la eficacia de tus medicinas.//" .. "Ha habido algunas quejas por parte de D. Salutísimo, el Perro Guardián de la Salud, así que debes procurar que todas tus medicinas sean sumamente eficaces para quedar bien. " .. "También debes asegurarte de que tu hospital tenga una reputación intachable. Procura que mueran pocos pacientes. " .. "Como sugerencia, deberías dejar espacio para un baño gelatinoso. " .. "Para ganar, tus medicinas deberán tener una eficacia de, al menos, un 80%, tienes que conseguir una reputación de 650 y guardar 500.000 dólares en el banco.", level11 = "Tienes la oportunidad de construir el no va más en hospitales. " .. "Esta es una zona de enorme prestigio y al Ministerio le gustaría que éste fuera el mejor hospital. " .. "Esperamos que ganes mucho dinero, alcances una excelente reputación y te ocupes de todos los casos que se presenten. " .. "Este es un trabajo importante. " .. "Tendrás que ser muy hábil para llevarlo a cabo. " .. "También debes tener en cuenta que se han visto ovnis en la zona. Asegúrate de que tu personal esté preparado para recibir alguna visita inesperada. " .. "Tu hospital tendrá que alcanzar un valor de 240.000 dólares, necesitarás tener 500.000 dólares en el banco y una reputación de 700.", level12 = "Ahora te enfrentas al mayor de los retos. " .. "El Ministerio ha quedado impresionado con tus logros y tiene una tarea difícil para ti, quieren que se construya otro magnífico hospital, que tenga unos excelentes ingresos y una reputación increíble. " .. "También se espera que compres todo el terreno que puedas, cures todo (y queremos decir todas las enfermedades) y ganes todos los premios. " .. "¿Crees que podrás conseguirlo? " .. "Gana 650.000 dólares, cura a 750 personas y consigue una reputación de 800 para ganar este nivel. ", level13 = "Tu increíble habilidad como director de hospital ha atraído la atención de la División Secreta Especial del Servicio Secreto Especial. " .. "Tienen un trabajo especial para ti. Hay un hospital infestado de ratas que necesita un exterminador eficiente. " .. "Tienes que matar todas las ratas que puedas antes de que el personal de Mantenimiento limpie toda la suciedad. " .. "¿Crees que eres apto para la misión?", level14 = "Aún tienes un reto más: el hospital sorpresa totalmente imprevisible. " .. "Si consigues tener éxito, serás el ganador de todos los ganadores. " .. "Y no esperes que sea pan comido, porque es la tarea más difícil que jamás afrontarás. " .. "¡Buena suerte!", level15 = "Bien, estos son los mecanismos básicos para poner en marcha un hospital.//" .. "Tus Médicos van a necesitar toda la ayuda que puedan obtener para diagnosticar a algunos de los pacientes. " .. "Puedes ayudarles construyendo otros equipos de diagnóstico como la Sala de Diagnóstico General.", level16 = "Una vez que hayas diagnosticado a alguno de los pacientes necesitarás construir salas de tratamiento y clínicas para curarles: " .. "puedes comenzar con una Farmacia, y necesitarás una Enfermera que dispense las medicinas en la Farmacia.", level17 = "Un último aviso: estate atento a tu Reputación, es lo que atraerá pacientes a tu establecimiento. " .. "¡Si no matas a mucha gente y los mantienes razonablemente felices no deberías tener muchos problemas en este nivel!//" .. "Ahora es cosa tuya, buena suerte y todo eso.", demo = "¡Bienvenido al hospital de demostración!//" .. "Por desgracia, la versión de demostración solo contiene este nivel. Sin embargo, tienes más que suficiente para estar entretenido por un rato. " .. "Te enfrentarás a varias enfermedades que necesitan de ciertas habitaciones para su cura. De vez en cuando pueden surgir emergencias. Y necesitarás " .. "investigar sobre las enfermedades construyendo un Departamento de investigación. " .. "Tu objetivo es ganar 100.000 dólares, que el valor de tu hospital llegue hasta 70.000 dólares y tengas una reputación de 700, con un porcentaje de pacientes curados del 75%. " .. "Procura que tu reputación no caiga por debajo de 300 y que no mates a más del 40% de tus pacientes, o fracasarás.//" .. "¡Buena suerte!", } town_map.area = "Zona" trophy_room = { rats_killed = { trophies = { [2] = "Mereces este premio de la Federación Matarratas por tu excepcional habilidad para eliminar ratas, demostrándolo al acabar con %s ejemplares.", [3] = "Se te concede el Trofeo Exterminador de Ratas por tu gran habilidad para eliminar %d ratas en tu hospital el año pasado.", }, }, hosp_value = { penalty = { [1] = "Tu hospital no ha alcanzado un valor razonable. Has administrado mal el dinero. Recuerda, un buen hospital también es un hospital caro.", }, regional = { [1] = "Eres una promesa de los negocios. Tu hospital es el más valioso de toda la zona.", }, }, happy_patients = { awards = { [2] = "Los pacientes que visitaron tu hospital se sintieron más contentos con su tratamiento que en el resto de los hospitales.", }, penalty = { [1] = "La gente que acude al hospital tiene una experiencia terrible. Tendrás que esforzarte más si quieres ganarte el respeto del Ministerio.", [2] = "La gente que fue atendida en tu hospital se quejó del estado del mismo. Deberías tener más en cuenta el bienestar de los pacientes.", }, }, research = { penalty = { [1] = "Has sido poco eficiente investigando curaciones, máquinas y medicinas nuevas. Esto no es bueno, ya que el avance tecnológico es algo fundamental.", }, regional_bad = { [1] = "Los demás hospitales son mejores que el tuyo en investigación. En el Ministerio están furiosos, tu hospital debería concederle más importancia.", }, }, many_cured = { regional = { [1] = "Se te concede el premio a la curación total por haber curado a más gente que todos los demás hospitales juntos.", }, awards = { [1] = "Felicidades por curar a un montón de gente el año pasado. Un gran número de personas se sienten mucho mejor gracias a tu trabajo.", }, }, best_value_hosp = { penalty = { [1] = "Todos los hospitales de la zona valen más que el tuyo. Haz algo respecto a esta vergonzosa situación. ¡Consigue cosas más caras!", }, }, healthy_plants = { trophies = { [2] = "Salvar a las Plantas quiere concederte el Premio del Ecologista Mayor por mantener bien sanas las plantas de tu hospital durante el pasado año.", }, }, high_rep = { regional = { [1] = "Por favor, acepta el Premio Bullfrog por dirigir el mejor hospital del año. ¡Disfrútalo, te lo has ganado!", }, }, consistant_rep = { trophies = { [2] = "Felicidades por ganar el Premio Sábanas Limpias por ser el hospital con la mejor reputación del año. Te lo has merecido.", }, }, wait_times = { penalty = { [1] = "En tu hospital, los pacientes esperan demasiado tiempo. Siempre hay colas inaceptables. Podrías tratar a tus pacientes con más eficacia si quisieras.", }, }, happy_staff = { awards = { [2] = "Tu personal está tan contento de trabajar para ti que no pueden dejar de sonreír. Eres un director excelente.", }, trophies = { [1] = "Has ganado el Premio Médico Sonriente por mantener lo más contento posible a tu personal.", [3] = "Te concedemos el premio Copa de la Sonrisa Radiante por mantener contento a todo tu personal por encima de todo durante el año pasado.", }, }, emergencies = { award = { [1] = "¡Felicidades! Has ganado este premio por la eficacia con la que has solucionado las urgencias. Buen trabajo.", }, }, } diseases = { corrugated_ankles = { cause = "Causa: Atropellar señales de tráfico en la carretera.", symptoms = "Síntomas: Los pies no entran en los zapatos.", cure = "Cura: Los tobillos se enderezan bebiendo una infusión ligeramente tóxica de hierbas y plantas.", }, jellyitis = { cause = "Causa: Una dieta rica en gelatina y demasiado ejercicio.", symptoms = "Síntomas: Un temblor excesivo y caerse al suelo muchas veces.", cure = "Cura: Se sumerge al paciente durante un rato en el baño gelatinoso en una consulta especial.", }, kidney_beans = { cause = "Causa: Masticar los cubitos de hielo de las bebidas.", symptoms = "Síntomas: Dolor e ir con frecuencia al baño.", cure = "Cura: Dos cirujanos extraen los cálculos sin rozar los bordes del riñón.", }, fractured_bones = { cause = "Causa: Caída de cosas voluminosas sobre el cemento.", symptoms = "Síntomas: Un gran crujido y la imposibilidad de usar los miembros afectados.", cure = "Cura: Se pone una escayola, que después se quita con un láser quitaescayolas.", }, spare_ribs = { cause = "Causa: Sentarse sobre suelos muy fríos.", symptoms = "Síntomas: Malestar en el pecho.", cure = "Cura: Dos cirujanos extraen las costillas y se las dan al paciente en una bolsita.", }, alien_dna = { cause = "Causa: Enfrentarse a gigantes que tienen sangre alienígena inteligente.", symptoms = "Síntomas: Metamorfosis gradual en alienígena y deseos de destruir nuestras ciudades.", cure = "Cura: Se extrae el ADN con una máquina, se purifica de elementos alienígenas y se vuelve a inyectar rápidamente.", }, invisibility = { cause = "Causa: El picotazo de una hormiga radiactiva (e invisible).", symptoms = "Síntomas: Los pacientes no sufren. Muchos aprovechan su enfermedad para gastar bromas a sus familiares.", cure = "Cura: Beber un líquido coloreado en la farmacia que hará completamente visible al paciente.", }, infectious_laughter = { cause = "Causa: Una comedia clásica de situación", symptoms = "Síntomas: No poder parar de reír y repetir frases hechas nada divertidas.", cure = "Cura: Un psiquiatra cualificado debe recordar al paciente que su enfermedad es grave.", }, broken_wind = { cause = "Causa: Usar un aparato gimnástico después de las comidas.", symptoms = "Síntomas: Molestar a la gente que está justo detrás del paciente.", cure = "Cura: En la farmacia se bebe rápidamente una fuerte mezcla de átomos acuosos.", }, chronic_nosehair = { cause = "Causa: Oler con desprecio a aquellos que están peor que el paciente.", symptoms = "Síntomas: Tener tanto pelo en la nariz como para hacer una peluca.", cure = "Cura: Se toma por vía oral un jarabe quitapelo preparado en la farmacia.", }, bloaty_head = { name = "Paciente cabezudo", cause = "Causa: Oler queso y beber agua de lluvia no purificada.", symptoms = "Síntomas: Muy incómodos para el paciente.", cure = "Cura: Se pincha la cabeza hinchada y luego se vuelve a inflar hasta el tamaño correcto con una máquina inteligente.", }, serious_radiation = { name = "Radiación grave", cause = "Causa: Confundir isótopos de plutonio con chicle.", symptoms = "Síntomas: Los pacientes que padecen esta enfermedad se sienten muy, pero que muy mal.", cure = "Cura: Se debe dar al paciente una buena ducha descontaminadora.", }, ruptured_nodules = { cause = "Causa: Tirarse de cabeza al agua fría.", symptoms = "Síntomas: Imposibilidad de sentarse cómodamente.", cure = "Cura: Dos cirujanos cualificados colocan ciertas partes con manos firmes.", }, gastric_ejections = { cause = "Causa: Comida mejicana o india muy condimentada.", symptoms = "Síntomas: El paciente vomita la comida a medio digerir en cualquier momento.", cure = "Cura: Beber un preparado astringente especial para detener los vómitos.", }, hairyitis = { cause = "Causa: Exposición prolongada a la luna.", symptoms = "Síntomas: Los pacientes experimentan un aumento del olfato.", cure = "Cura: Una máquina de electrólisis elimina el vello y cierra los poros.", }, sweaty_palms = { cause = "Causa: Temer las entrevistas de trabajo.", symptoms = "Síntomas: Dar la mano al paciente es como coger una esponja empapada.", cure = "Cura: Un psiquiatra debe discutir a fondo con el paciente sobre esta enfermedad inventada.", }, diag_x_ray = { name = "Diag. de rayos X", }, the_squits = { cause = "Causa: Comer pizza que se ha encontrado debajo de la cocina.", symptoms = "Síntomas: ¡Agh! Seguro que te los puedes imaginar.", cure = "Cura: Una mezcla de sustancias viscosas preparada en la farmacia solidifica las tripas del paciente.", }, slack_tongue = { name = "Lengua caída", cause = "Causa: Hablar sin parar sobre culebrones.", symptoms = "Síntomas: La lengua crece hasta cinco veces su tamaño original.", cure = "Cura: Se coloca la lengua en el acortalenguas y se elimina de forma rápida, eficaz y dolorosa.", }, pregnancy = { cause = "Causa: Cortes de electricidad en zonas urbanas.", symptoms = "Síntomas: Comer por antojo con el consecuente malestar de estómago.", cure = "Cura: Se extrae al bebé en el quirófano, se limpia y se entrega al paciente.", }, sleeping_illness = { cause = "Causa: Una glándula del sueño hiperactiva en el paladar.", symptoms = "Síntomas: Deseo imperioso de echarse una cabezadita en cualquier parte.", cure = "Cura: Una enfermera administra una elevada dosis de un poderoso estimulante.", }, transparency = { cause = "Causa: Lamer el yogur que queda en las tapas de los envases.", symptoms = "Síntomas: La carne se transparenta y se ve horrible.", cure = "Cura: Tomar un preparado de agua enfriada y coloreada en la farmacia.", }, broken_heart = { cause = "Causa: Alguien más rico, más joven y más delgado que el paciente.", symptoms = "Síntomas: Llorar y reír después de pasarse horas rompiendo fotos de las vacaciones", cure = "Cura: Dos cirujanos abren el pecho y miman con delicadeza el corazón mientras contienen la respiración.", }, unexpected_swelling = { cause = "Causa: Cualquier cosa imprevista.", symptoms = "Síntomas: Inflamación.", cure = "Cura: Sólo puede reducirse la inflamación con una lanceta durante una operación que requiere dos cirujanos.", }, discrete_itching = { cause = "Causa: Insectos diminutos con los dientes afilados.", symptoms = "Síntomas: Rascarse, lo que conduce a una inflamación de la parte afectada.", cure = "Cura: El paciente bebe un jarabe pegajoso que evita que la piel pique.", }, third_degree_sideburns = { cause = "Causa: Anhelar con ansia los años 70.", symptoms = "Síntomas: Pelo largo, ropa ancha, zapatos con plataformas y mucho maquillaje.", cure = "Cura: El personal psiquiátrico debe, empleando técnicas actualizadas, convencer al paciente de que esta moda es horrible.", }, uncommon_cold = { cause = "Causa: Pequeñas partículas de moco en el aire.", symptoms = "Síntomas: Mucosidad, estornudos y pulmones descoloridos.", cure = "Cura: Beber un gran trago de una medicina para la tos anormal que se fabrica en la farmacia con ingredientes especiales.", }, heaped_piles = { cause = "Causa: Permanecer de pie junto a refrigeradores de agua.", symptoms = "Síntomas: El paciente se siente como si se sentara sobre una bolsa de canicas.", cure = "Cura: Una bebida agradable, aunque muy ácida, disuelve las hemorroides internas.", }, golf_stones = { cause = "Causa: Inhalar el gas venenoso que contienen las pelotas de golf.", symptoms = "Síntomas: Delirar y sentir mucha vergüenza.", cure = "Cura: Dos cirujanos operan para extraer los cálculos.", }, baldness = { cause = "Causa: Contar mentiras e inventar historias para ser famoso.", symptoms = "Síntomas: Tener la cabeza brillante y pasar vergüenza.", cure = "Cura: El pelo se cose a la cabeza del paciente con una dolorosa máquina.", }, fake_blood = { cause = "Causa: El paciente suele ser la víctima de todas las bromas.", symptoms = "Síntomas: Fluido rojo en las venas que se evapora al contacto con la ropa.", cure = "Cura: Este problema sólo se resuelve con tratamiento psiquiátrico.", }, gut_rot = { cause = "Causa: El jarabe para la tos, a base de whisky, de la Sra. McGuiver.", symptoms = "Síntomas: El paciente no tose, pero tampoco tiene paredes en el estómago.", cure = "Cura: Una enfermera administra una variada disolución de sustancias químicas para revestir el estómago.", }, iron_lungs = { cause = "Causa: Contaminación urbana mezclada con restos de kebab.", symptoms = "Síntomas: Capacidad para aspirar fuego y gritar debajo del agua.", cure = "Cura: Dos cirujanos realizan una operación para eliminar las partes duras del pulmón en el quirófano.", }, king_complex = { cause = "Causa: El espíritu del rey se introduce en la mente del paciente y se apodera de ella.", symptoms = "Síntomas: Calzar unos zapatos de ante teñidos y comer hamburguesas.", cure = "Cura: Un psiquiatra le dice al paciente lo ridículo o ridícula que está.", }, tv_personalities = { cause = "Causa: Ver la televisión durante el día.", symptoms = "Síntomas: Tener la ilusión de presentar en la tele un programa de cocina.", cure = "Cura: Un psiquiatra experto debe convencer al paciente de que venda su televisor y se compre una radio.", }, } room_descriptions = { staff_room = { [1] = "Sala de personal//", [2] = "Tu personal se cansa cuando realiza su trabajo. Necesitan esta sala para descansar y reponer energías. El personal cansado es más lento, pide más dinero, comete más errores y al final dimite. Merece la pena construir una sala para el personal que tenga muchos pasatiempos. Asegúrate de que hay sitio para varios miembros del personal al mismo tiempo. ", }, gp = { [2] = "Esta es la consulta más importante de tu hospital. Los nuevos pacientes son enviados aquí para averiguar qué es lo que les pasa. Entonces, o se les hace otro diagnóstico o se les manda a una consulta donde puedan ser curados. Quizá quieras construir otra consulta si la primera tiene mucho trabajo. Cuanto más grande sea la consulta y cuantos más objetos pongas en ella, mayor prestigio tendrá el médico. Lo mismo sucede con todas las consultas abiertas.//", }, blood_machine = { [3] = "El transfusiómetro requiere un médico. También necesita mantenimiento. ", }, x_ray = { [2] = "Los rayos X fotografían el interior del paciente empleando una radiación especial para ayudar al personal a descubrir lo que le pasa.//", [3] = "La consulta de rayos X requiere un médico. También necesita mantenimiento. ", }, ultrascan = { [1] = "Ultra escáner//", }, training = { [1] = "Sala de formación//", }, fracture_clinic = { [2] = "Los pacientes que tienen la desgracia de tener fracturas vienen aquí. El quitaescayolas emplea un potente láser industrial para cortar las escayolas más duras, causando al paciente sólo una pequeña molestia.//", }, slack_tongue = { [2] = "Los pacientes a los que se les diagnostica lengua caída en la consulta serán enviados aquí para recibir tratamiento. El médico utilizará una máquina de alta tecnología para estirar la lengua y acortarla, con lo que el paciente volverá a estar sano.//", }, jelly_vat = { [1] = "Baño gelatinoso//", }, general_diag = { [1] = "Diagnosis general//", }, } -- An override for the squits becoming the the squits see issue 1646 adviser.research.drug_improved_1 = "Tu departamento de investigación ha mejorado el medicamento para la %s." ------------------------------- NEW STRINGS ------------------------------- date_format = { daymonth = "%1% %2:months%", } object.litter = "Basura" tooltip.objects.litter = "Basura: Un paciente la ha tirado porque no ha encontrado una papelera." object.rathole = "Ratonera" tooltip.objects.rathole = "El hogar de una familia de ratas a la que le ha gustado la suciedad de tu hospital." tooltip.fax.close = "Cierra esta ventana sin eliminar el mensaje." tooltip.message.button = "Haz clic izquierdo para abrir el mensaje." tooltip.message.button_dismiss = "Haz clic izquierdo para abrir el mensaje, clic derecho para rechazarlo." tooltip.casebook.cure_requirement.hire_staff = "Necesitas contratar empleados para realizar este tratamiento." tooltip.casebook.cure_type.unknown = "Todavía no sabes cómo curar esta enfermedad." tooltip.research_policy.no_research = "En este momento no se está investigando ningún apartado de esta categoría." tooltip.research_policy.research_progress = "Progreso del siguiente descubrimiento de esta categoría: %1%/%2%" menu["player_count"] = "CANTIDAD DE JUGADORES" menu_file = { load = " (%1%) CARGAR ", save = " (%1%) GUARDAR ", restart = " (%1%) REINICIAR ", quit = " (%1%) SALIR " } --These menus lack uppercase accented characters, so lowercase are a must. menu_options = { sound = " (%1%) SONIDO ", announcements = " (%1%) ANUNCIOS ", music = " (%1%) MUSICA ", jukebox = " (%1%) REPRODUCTOR DE MUSICA ", lock_windows = " BLOQUEAR VENTANAS ", edge_scrolling = " DESPLAZAR POR BORDES ", capture_mouse = " CAPTURAR RATON ", adviser_disabled = " (%1%) CONSEJERO ", warmth_colors = " COLORES DE TEMPERATURA ", wage_increase = " PETICIONES DE SUELDO ", twentyfour_hour_clock = " RELOJ DE 24 HORAS " } menu_options_game_speed = { pause = " (%1%) PAUSA ", slowest = " (%1%) MUY LENTA ", slower = " (%1%) LENTA ", normal = " (%1%) NORMAL ", max_speed = " (%1%) VELOCIDAD M�XIMA ", and_then_some_more = " (%1%) VELOCIDAD ABSURDA ", } menu_options_warmth_colors = { choice_1 = " ROJO ", choice_2 = " AZUL, VERDE, ROJO ", choice_3 = " AMARILLO, NARANJA, ROJO ", } menu_options_wage_increase = { grant = " CONCEDER ", deny = " RECHAZAR ", } -- Add F-keys to entries in charts menu (except briefing), also town_map was added. menu_charts = { bank_manager = " (%1%) DIRECTOR DEL BANCO ", statement = " (%1%) ESTADO DE CUENTAS ", staff_listing = " (%1%) LISTA DE PERSONAL ", town_map = " (%1%) MAPA DE LA CIUDAD ", casebook = " (%1%) HISTORIAL ", research = " (%1%) INVESTIGACION ", status = " (%1%) ESTADO ", graphs = " (%1%) GRAFICAS ", policy = " (%1%) NORMAS ", machine_menu = " (%1%) MENU DE MAQUINAS", adviser_history = " (%1%) HISTORIAL DEL CONSEJERO ", } menu_debug = { jump_to_level = " CAMBIAR DE NIVEL ", connect_debugger = " (%1%) CONECTAR A SERVIDOR DBGp LUA ", transparent_walls = " (%1%) PAREDES TRANSPARENTES ", limit_camera = " LIMITAR CAMARA ", disable_salary_raise = " DESACTIVAR SUBIDA DE SUELDO ", allow_blocking_off_areas = " PERMITIR BLOQUEAR AREAS ", allow_falling = " PERMITIR CAIDAS ", make_debug_fax = " CREAR FAX DE DEPURACION ", make_debug_patient = " CREAR PACIENTE DE DEPURACION ", cheats = " (%1%) TRUCOS ", lua_console = " (%1%) CONSOLA LUA ", debug_script = " (%1%) EJECUTAR SCRIPT DE DEPURACION ", calls_dispatcher = " LLAMAR A CONTROLADOR ", dump_strings = " (%1%) VOLCAR TEXTOS DEL JUEGO ", dump_gamelog = " (%1%) VOLCAR REGISTRO DEL JUEGO ", map_overlay = " SOBREPONER MAPA ", sprite_viewer = " VISUALIZADOR DE ANIMACIONES ", } menu_debug_overlay = { none = " NADA ", flags = " MARCAS ", positions = " POSICIONES ", heat = " TEMPERATURA ", byte_0_1 = " BYTE 0 Y 1 ", byte_floor = " BYTE SUELO ", byte_n_wall = " BYTE PARED NORTE ", byte_w_wall = " BYTE PARED OESTE ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " PARCELA ", } menu_player_count = { players_1 = " 1 JUGADOR ", players_2 = " 2 JUGADORES ", players_3 = " 3 JUGADORES ", players_4 = " 4 JUGADORES ", } adviser = { room_forbidden_non_reachable_parts = "Si colocas la habitación ahí bloquearás el acceso a ciertas partes del hospital.", warnings = { no_desk = "¡Deberías construir una mesa de recepción y contratar a una recepcionista en algún momento!", no_desk_1 = "¡Si quieres que los pacientes vayan a tu hospital, necesitas contratar a una recepcionista y construir una mesa donde pueda trabajar!", no_desk_2 = "¡Enhorabuena, has batido un récord mundial: ha pasado un año y no ha aparecido ni un paciente! ¡Si quieres seguir mandando en este hospital, tendrás que contratar a una recepcionista y construir una mesa donde pueda trabajar!", no_desk_3 = "¡Fabuloso, casi ha pasado un año y no tienes recepcionistas! ¿Cómo quieres que vengan los pacientes? ¡Arréglalo y deja de perder el tiempo!", no_desk_4 = "Una recepcionista necesita una mesa para atender a los pacientes que vengan.", no_desk_5 = "¡Ya era hora! Los pacientes empezarán a llegar pronto.", no_desk_6 = "Tienes una recepcionista, ¿qué tal si construyes una mesa de recepción para que pueda trabajar?", no_desk_7 = "Has construido una mesa de recepción, ¿y si contratas a una recepcionista? No verás a ningún paciente hasta que lo arregles, ¿lo sabes, no?", another_desk = "Necesitarás construir otro escritorio para la nueva recepcionista.", cannot_afford = "¡No tienes dinero para contratar a esa persona!", -- I can't see anything like this in the original strings cannot_afford_2 = "¡No tienes dinero para comprar eso!", cannot_afford_machine = "Necesitas al menos $%1% en el banco para poder adquirir un nuevo %2%!", falling_1 = "¡Eh! No tiene gracia. Mira dónde haces clic con ese ratón, ¡vas a hacer daño a alguien!", falling_2 = "¿Te importaría dejar de perder el tiempo?", falling_3 = "¡Ay! Eso ha tenido que doler. ¡Llamen a un médico!", falling_4 = "¡Esto es un hospital, no un parque de atracciones!", falling_5 = "¡Este no es lugar para tirar personas al suelo, que están enfermas!", falling_6 = "¡Esto no es una bolera, no trates así a los enfermos!", research_screen_open_1 = "Para acceder a la pantalla de investigación, tienes que construir un departamento de investigación.", research_screen_open_2 = "No se pueden realizar investigaciones en este nivel.", researcher_needs_desk_1 = "Un investigador necesita una mesa en la que trabajar.", researcher_needs_desk_2 = "Tu investigador agradece que le hayas dado un descanso. Si pretendías tener a más personas investigando, tienes que dar a cada uno una mesa para que trabajen.", researcher_needs_desk_3 = "Cada investigador necesita una mesa para trabajar.", nurse_needs_desk_1 = "Cada enfermera necesita una mesa para trabajar.", nurse_needs_desk_2 = "Tu enfermera agradece que le hayas dado un descanso. Si pretendías tener a más personas trabajando en la enfermería, tienes que dar a cada una una mesa para que trabajen.", low_prices = "Estás cobrando muy poco por %s. Así atraerás a más personas a tu hospital, pero no te darán muchos beneficios.", high_prices = "Estás cobrando mucho por %s. Esto traerá muchos beneficios a corto plazo, pero harás que los pacientes dejen de venir.", fair_prices = "El precio de %s parece justo.", patient_not_paying = "¡Un paciente se ha ido sin pagar por %s porque es demasiado caro!", no_doctor_no_gp_office = "Deberias construir una Consulta y contratar un doctor en algun momento!", no_gp_office = "No has construido una Consulta donde tus doctores puedan diagnosticar a los pacientes!", money_low = "Te estás quedando sin dinero.", cannot_buy = "¡No puedes comprar más de ese objeto!", }, cheats = { th_cheat = "¡Felicidades, has desbloqueado los trucos!", roujin_on_cheat = "¡Desafío de Roujin activado! Buena suerte en los próximos meses...", roujin_off_cheat = "Desafío de Roujin desactivado. Todo volverá a la normalidad pronto.", norest_on_cheat = "Vaya! Parece que el personal consumió demasiada cafeína y ya no necesitan descansar.", norest_off_cheat = "Uf! Parece que el subidón se acabó. Tu personal ahora podrá descansar apropiadamente.", }, staff_place_advice = { not_enough_lecture_chairs = "Cada estudiante necesita una silla donde sentarse!", }, } dynamic_info.patient.actions.no_gp_available = "Esperando a que construyas una consulta" dynamic_info.staff.actions.heading_for = "Dirigiéndose a %s" dynamic_info.staff.actions.fired = "Despedido" dynamic_info.staff.actions.vaccine = "Vacunando a un paciente" dynamic_info.patient.actions.epidemic_vaccinated = "Ya no soy contagioso" dynamic_info.object.strength_extra_info = "Resistencia %d (Mejorable a %d)" progress_report.free_build = "CONSTRUCCIÓN LIBRE" fax = { choices = { return_to_main_menu = "Volver al menú principal", accept_new_level = "Continuar al siguiente nivel", decline_new_level = "Seguir jugando un poco más", }, emergency = { num_disease_singular = "Hay 1 persona con %s y necesita ser atendida inmediatamente.", free_build = "Si tienes éxito, mejorarás tu reputación, pero si fracasas tu reputación caerá en picado.", }, vip_visit_result = { remarks = { free_build = { "¡Su hospital es muy bueno! No es difícil mantenerlo sin limitaciones económicas, ¿eh?", "No soy economista, pero hasta yo podría dirigir este hospital, si usted me entiende...", "Un hospital muy bien cuidado. ¡Pero ojo con la crisis financiera! Ah... que a usted no le afecta.", }, } } } letter = { dear_player = "Estimado %s,", custom_level_completed = "¡Bien hecho! ¡Has completado todos los objetivos de este nivel personalizado!", return_to_main_menu = "¿Quieres volver al menú principal o seguir jugando?", campaign_level_completed = "¡Buen trabajo! Has superado este nivel, ¡pero aún no has acabado!\n ¿Te interesaría aceptar un puesto en el hospital %s?", campaign_completed = "¡Increíble! Has conseguido superar todos los niveles. Ya puedes relajarte y disfrutar mientras hablas de tus logros en los foros de Internet. ¡Buena suerte!", campaign_level_missing = "Parece que el siguiente nivel de esta campaña está desaparecido. (Nombre: %s)", } install = { title = "--------------------------------- Configuración de CorsixTH ---------------------------------", th_directory = "CorsixTH necesita una copia de los archivos de datos del Theme Hospital original (o de la demo) para poder funcionar. Utiliza el selector de debajo para localizar la carpeta de instalación de Theme Hospital.", ok = "Aceptar", exit = "Salir", cancel = "Cancelar", } misc = { not_yet_implemented = "(aún no implementado)", no_heliport = "O no se han descubierto enfermedades, o no hay un helipuerto en este nivel. Quizás te haga falta comprar una mesa de recepción y contratar a una recepcionista.", cant_treat_emergency = "Tu hospital no puede tratar esta emergencia debido a que la enfermedad no ha sido descubierta. Inténtalo de nuevo.", epidemics_off = "Las epidemias se han deshabilitado. No se crearán nuevas epidemias", epidemics_on = "Las epidemias han sido habilitadas nuevamente", earthquakes_off = "Los terremotos se han deshabilitado", earthquakes_on = "Los terremotos han sido habilitados nuevamente", epidemic_no_icon_to_toggle = "No es posible mostrar/ocultar iconos de infección - no hay epidemias en progreso que no hayan sido reveladas", epidemic_no_diseases = "No es posible crear una epidemia - no hay enfermedades contagiosas disponibles", epidemic_no_receptionist = "No es posible crear una epidemia - no hay una recepcion que cuente con personal", invulnerable_machines_off = "Las máquinas volverán a estropearse y romperse.", invulnerable_machines_on = "Las máquinas ya no se estropearán ni romperán.", } main_menu = { new_game = "Campaña", custom_campaign = "Campaña personalizada", custom_level = "Misión individual", continue = "Continuar partida", load_game = "Cargar partida", options = "Opciones", map_edit = "Editor de mapas", savegame_version = "Versión del guardado: ", updates_off = "No se buscarán actualizaciones", version = "Versión: ", exit = "Salir", } tooltip.main_menu = { new_game = "Empezar el primer nivel de la campaña.", custom_campaign = "Juega una campaña creada por la comunidad.", custom_level = "Construir tu hospital en un nivel concreto.", continue = "Reanuda tu última partida guardada.", load_game = "Cargar una partida guardada.", options = "Ajustar la configuración.", map_edit = "Crear un mapa personalizado.", exit = "¡No, no, por favor, no te vayas!", quit = "Estás a punto de salir de CorsixTH. ¿Seguro que quieres continuar?", } load_game_window = { caption = "Cargar partida (%1%)", load_button = "Cargar", } tooltip.load_game_window = { load_game = "Cargar partida %s", load_game_number = "Cargar partida %d", load_autosave = "Cargar autoguardado", } custom_game_window = { caption = "Partida personalizada", free_build = "Construcción libre", load_selected_level = "Comenzar", } tooltip.custom_game_window = { choose_game = "Haz clic en un nivel para ver más información sobre el mismo.", free_build = "Marca esta casilla si quieres jugar sin dinero ni condiciones para ganar o perder.", load_selected_level = "Cargar e iniciar el nivel seleccionado.", } custom_campaign_window = { caption = "Campaña personalizada", start_selected_campaign = "Comenzar campaña", duplicates_warning = "Se han ocultado %d campañas con nombres duplicados", } tooltip.custom_campaign_window = { choose_campaign = "Selecciona una campaña para ver más información sobre la misma.", start_selected_campaign = "Cargar el primer nivel de esta campaña.", duplicates_warning = "Verifica la consola para ver errores especificos", } save_game_window = { caption = "Guardar partida (%1%)", new_save_game = "Nueva partida guardada", save_button = "Guardar", missing_filename = "Por favor ingresa el nombre de la partida que deseas guardar o selecciona una existente para sobreescribirla.", } tooltip.save_game_window = { save_game = "Sobrescribir partida guardada %s", new_save_game = "Introduce el nombre de la partida guardada.", } save_map_window = { caption = "Guardar mapa (%1%)", new_map = "Nuevo mapa", save_button = "Guardar", missing_filename = "Por favor ingresa el nombre del nuevo archivo de mapa o selecciona uno existente para sobreescribirlo.", } tooltip.save_map_window = { map = "Sobrescribir el mapa %s.", new_map = "Introduce el nombre del mapa guardado.", } load_map_window = { caption = "Cargar Mapa (%1%)", load_button = "Cargar", } menu_list_window = { name = "Nombre", save_date = "Modificado", ok = "OK", back = "Atrás", } tooltip.menu_list_window = { name = "Pulsa aquí para ordenar la lista por nombres.", save_date = "Pulsa aquí para ordenar la lista por la última fecha de modificación.", ok = "Confirmar elección", back = "Cerrar esta ventana.", } options_window = { caption = "Opciones", option_on = "Sí", option_off = "No", option_enabled = "Activado", option_disabled = "Desactivado", fullscreen = "Pantalla Completa", resolution = "Resolución", custom_resolution = "Personalizar...", capture_mouse = "Capturar Ratón", right_mouse_scrolling = "Desplazamiento con el Ratón", right_mouse_scrolling_option_middle = "Botón Central", right_mouse_scrolling_option_right = "Botón Derecho", width = "Ancho", height = "Alto", customise = "Personalizar", folder = "Carpetas", language = "Idioma del juego", apply = "Aplicar", cancel = "Cancelar", back = "Atrás", scrollspeed = "Vel. de Desplazamiento", shift_scrollspeed = "Vel. de Despl. (Shift)", zoom_speed = "Vel. de Acercamiento", hotkey = "Atajos de Teclado", check_for_updates = "Buscar Actualizaciones", } tooltip.options_window = { fullscreen = "Ejecuta el juego en pantalla completa o en una ventana.", fullscreen_button = "Haz clic aquí para activar el modo de pantalla completa.", resolution = "Cambia la resolución en la que funcionará el juego.", select_resolution = "Selecciona una nueva resolución.", capture_mouse = "Haz clic aquí para activar o desactivar la captura del cursor dentro del juego", right_mouse_scrolling = "Cambiar el boton del ratón usado para desplazarse por el mapa", width = "Introduce el ancho de la pantalla.", height = "Introduce la altura de la pantalla.", apply = "Aplica la resolución seleccionada.", cancel = "Vuelve sin cambiar la resolución.", customise_button = "Más opciones para personalizar tu experiencia de juego.", folder_button = "Opciones de carpetas.", language = "Selecciona el idioma de los textos.", select_language = "Selecciona el idioma del juego.", language_dropdown_item = "Seleccionar el idioma %s.", language_dropdown_no_font = "Selecciona una fuente en las opciones de carpeta para habilitar este lenguaje.", back = "Cierra la ventana de opciones.", scrollspeed = "Establece la velocidad de desplazamiento de 1 (más lenta) a 10 (más rápida). El valor por defecto es 2.", shift_scrollspeed = "Establece la velocidad de desplazamiento (cuando la tecla Shift se encuentra presionada) de 1 (más lenta) a 10 (más rápida). El valor por defecto es 4.", zoom_speed = "Establece la velocidad de acercamiento de la cámara de 10 (más lenta) a 1000 (más rápida). El valor por defecto 80.", apply_scrollspeed = "Aplica la velocidad de desplazamiento ingresada.", cancel_scrollspeed = "Vuelve sin cambiar la velocidad de acercamiento.", apply_shift_scrollspeed = "Aplica la velocidad de desplazamiento (tecla Shift) ingresada.", cancel_shift_scrollspeed = "Vuelve sin cambiar la velocidad de desplazamiento (tecla Shift).", apply_zoomspeed = "Aplica la velocidad de acercamiento ingresada.", cancel_zoomspeed = "Vuelve sin cambiar la velocidad de acercamiento.", hotkey = "Cambia las teclas de acceso rápido.", check_for_updates = "Establece si el juego debería buscar actualizaciones al iniciar.", } audio_window = { audio = "Sonido", jukebox = "Reproductor", back = "Atrás", } tooltip.audio_window = { audio_button = "Activa o desactiva todos los sonidos del juego.", audio_toggle = "Activa o desactiva el sonido.", jukebox = "Abre el Reproductor para controlar la música", } customise_window = { caption = "Opciones personalizadas", option_on = "Activado", option_off = "Desactivado", option_enabled = "Activado", option_disabled = "Desactivado", back = "Atrás", movies = "Control de vídeos", intro = "Mostrar introducción", paused = "Construir en pausa", volume = "Tecla de volumen", aliens = "Pacientes alienígenas", fractured_bones = "Fracturas óseas", average_contents = "Contenidos habituales", remove_destroyed_rooms = "Eliminar habitaciones destruidas", machine_menu_button = "Botón del menú de máquinas", } tooltip.customise_window = { movies = "Control global de videos, permite desactivar todos los videos.", intro = "Activa o desactiva el video de introducción. Necesitas activar el control global de videos si quieres ver la introducción cada vez que inicies CorsixTH.", paused = "En Theme Hospital el jugador solo podía utilizar el menú superior si la partida estaba en pausa. CorsixTH funciona así de forma predeterminada, pero al activar esta opción se puede realizar cualquier acción mientras el juego esté en pausa.", volume = "Si la tecla de bajar volumen abre también el botiquín, utiliza esta opción para cambiar el acceso directo a Mayúsculas + C.", aliens = "Debido a la falta de animaciones decentes disponibles, hemos hecho que los pacientes con ADN alienígena solo aparezcan en una emergencia. Para permitir que los pacientes con ADN alienígena puedan visitar tu hospital, desactiva esta opción.", fractured_bones = "Debido a una animación deficiente, hemos hecho que no existan pacientes con Fracturas óseas femeninas. Para permitir que las pacientes con Fracturas óseas visiten tu hospital, desactiva esta opción.", average_contents = "Activa esta opción si quieres que el juego recuerde los objetos adicionales que sueles añadir cuando construyes habitaciones.", remove_destroyed_rooms = "Activa esta opcion si te gustaría poder eliminar habitaciones destruidas (por un precio)", machine_menu_button = "Si quieres tener un botón para abrir el menú de máquinas en el panel inferior, activa esta opción. Ten en cuenta que este botón no estará visible si la resolución de pantalla es pequeña.", back = "Cerrar este menú y volver al menú de opciones.", } folders_window = { caption = "Ubicación de carpetas", data_label = "Datos de TH", font_label = "Fuente", music_label = "MP3", savegames_label = "Part. guardadas", screenshots_label = "Capt. de pantalla", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "Aquí puedes especificar una nueva carpeta de instalación de Theme Hospital. El juego se reiniciará en cuanto selecciones la nueva carpeta.", savegames_location = "Selecciona la carpeta que quieres utilizar para tus partidas guardadas.", music_location = "Selecciona la carpeta que quieres utilizar para tu música.", screenshots_location = "Selecciona la carpeta que quieres utilizar para tus capturas de pantalla.", back = "Atrás", } tooltip.folders_window = { browse = "Buscar la ubicación de la carpeta", data_location = "La carpeta con la instalación del Theme Hospital original, necesario para ejecutar CorsixTH.", font_location = "La ubicación de una fuente de letra capaz de mostrar caracteres Unicode necesarios para tu idioma. Si no se indica, no podrás seleccionar idiomas que tengan más caracteres de los que puede dar el juego original, por ejemplo, ruso y chino.", savegames_location = "La carpeta de partidas guardadas se ubica de forma predeterminada junto al archivo de configuración y se utilizará para almacenar las partidas guardadas. Si no te gusta, puedes seleccionar otra buscando la carpeta que quieres usar.", screenshots_location = "Las capturas de pantalla se guardan de forma predeterminada en una carpeta junto al archivo de configuración. Si no te gusta, puedes seleccionar otra buscando la carpeta que quieres usar.", music_location = "Selecciona una carpeta con tus archivos de música en formato MP3. Necesitas una carpeta ya existente, entonces podrás buscarla.", browse_data = "Buscar otra ubicación con una instalación de Theme Hospital. (Ubicación actual: %1%)", browse_font = "Buscar otro archivo de fuente de letra. (Ubicación actual: %1%)", browse_saves = "Buscar otra ubicación para tu carpeta de partidas guardadas. (Ubicación actual: %1%)", browse_screenshots = "Buscar otra ubicación para tu carpeta de capturas de pantalla. (Ubicación actual: %1%)", browse_music = "Buscar otra ubicación para tu carpeta de música. (Ubicación actual: %1%)", no_font_specified = "¡No se ha especificado una carpeta de fuentes!", not_specified = "¡No se ha especificado una carpeta!", default = "Ubicación predeterminada", reset_to_default = "Vuelve a asignar la carpeta a su ubicación predeterminada ( %1% )", clear_directory = "Borrar la selección de directorio actual", back = "Cerrar este menú y volver al menú de Opciones.", } hotkey_window = { caption_main = "Teclas de Acceso Rápido", caption_panels = "Teclas de Paneles", button_accept = "Aceptar", button_defaults = "Reestablecer Valores", button_cancel = "Cancelar", button_back = "Atrás", button_toggleKeys = "Teclas para Activar Opciones", button_gameSpeedKeys = "Teclas de Velocidad del Juego", button_recallPosKeys = "Teclas de Posiciones de Cámara", panel_globalKeys = "Teclas Globales", panel_generalInGameKeys = "Teclas Generales del Juego", panel_scrollKeys = "Teclas de Desplazamiento", panel_zoomKeys = "Teclas de Acercamiento", panel_gameSpeedKeys = "Teclas de Velocidad del Juego", panel_toggleKeys = "Teclas para Activar Opciones", panel_debugKeys = "Teclas de Depuración", panel_storePosKeys = "Teclas para Almacenar Pos.", panel_recallPosKeys = "Teclas para Recuperar Pos.", panel_altPanelKeys = "Teclas de Panel Alternativas", global_confirm = "Confirmar", global_confirm_alt = "Confirmar (alternativa)", global_cancel = "Cancelar", global_cancel_alt = "Cancelar (alternativa)", global_fullscreen_toggle = "Pantalla Completa", global_exitApp = "Salir de la Aplicación", global_resetApp = "Reiniciar Aplicación", global_releaseMouse = "Soltar Ratón", global_connectDebugger = "Depurador", global_showLuaConsole = "Consola de Lua", global_runDebugScript = "Ejecutar Script de Depuración", global_screenshot = "Captura de Pantalla", global_stop_movie_alt = "Detener Video", global_window_close_alt = "Cerrar Ventana", ingame_scroll_up = "Desplazar Hacia Arriba", ingame_scroll_down = "Desplazar Hacia Abajo", ingame_scroll_left = "Desplazar Hacia la Izquierda", ingame_scroll_right = "Desplazar Hacia la Derecha", ingame_scroll_shift = "Acelerar Desplazamiento", ingame_zoom_in = "Acercar", ingame_zoom_in_more = "Acercar Más", ingame_zoom_out = "Alejar", ingame_zoom_out_more = "Alejar Más", ingame_reset_zoom = "Reiniciar Acercamiento", ingame_showmenubar = "Mostrar Barra de Menues", ingame_showCheatWindow = "Menu de Trampas", ingame_loadMenu = "Cargar Partida", ingame_saveMenu = "Guardar Partida", ingame_jukebox = "Reproductor de Música", ingame_openFirstMessage = "Mostrar Introducción", ingame_pause = "Pausar", ingame_gamespeed_slowest = "Más Lenta", ingame_gamespeed_slower = "Lenta", ingame_gamespeed_normal = "Normal", ingame_gamespeed_max = "Máxima", ingame_gamespeed_thensome = "Absurda", ingame_gamespeed_speedup = "Acelerar", ingame_panel_bankManager = "Director del Banco", ingame_panel_bankStats = "Estado de Cuentas", ingame_panel_staffManage = "Administrar Personal", ingame_panel_townMap = "Mapa de la Ciudad", ingame_panel_casebook = "Historial", ingame_panel_research = "Investigación", ingame_panel_status = "Estado", ingame_panel_charts = "Charts", ingame_panel_policy = "Normas", ingame_panel_machineMenu = "Menu de Máquinas", ingame_panel_map_alt = "Mapa de la Ciudad 2", ingame_panel_research_alt = "Investigación 2", ingame_panel_casebook_alt = "Historial 2", ingame_panel_casebook_alt02 = "Historial 3", ingame_panel_buildRoom = "Construir Habitación", ingame_panel_furnishCorridor = "Amoblar Corredor", ingame_panel_editRoom = "Editar Habitación", ingame_panel_hireStaff = "Contratar Personal", ingame_rotateobject = "Rotar Objeto", ingame_quickSave = "Guardado Rápido", ingame_quickLoad = "Carga Rápida", ingame_restartLevel = "Reiniciar Nivel", ingame_quitLevel = "Salir del Nivel", ingame_setTransparent = "Transparente", ingame_toggleTransparent = "Activar Transparencias", ingame_toggleAnnouncements = "Activar Anuncios", ingame_toggleSounds = "Activar Sonidos", ingame_toggleMusic = "Activar Música", ingame_toggleAdvisor = "Activar Consejero", ingame_toggleInfo = "Activar Información", ingame_poopLog = "Volcar registro del juego", ingame_poopStrings = "Volcar textos del juego", ingame_patient_gohome = "Enviar a casa", } tooltip.hotkey_window = { button_accept = "Aceptar y guardar las teclas de acceso rápido asignadas", button_defaults = "Reestablecer las teclas de acceso rápido a los valores por defecto", button_cancel = "Cancelar las teclas asignadas y volver al menú de opciones", caption_panels = "Abre la ventana para asignar las teclas de acceso a los paneles", panel_globalKeys = "Asignar atajos globales de teclado", panel_generalInGameKeys = "Asignar atajos de teclado dentro del juego", button_gameSpeedKeys = "Abre la ventana para configurar las teclas que controlan la velocidad del juego", button_recallPosKeys = "Abre la ventana para configurar las teclas que permiten almacenar y recuperar posiciones de la cámara", button_back_02 = "Volver a la ventana principal de teclás de acceso rápido. Las teclas de acceso rápido modificadas en esta ventana pueden ser aceptadas allí", panel_scrollKeys = "Asignar atajos para desplazar la pantalla", panel_zoomKeys = "Asigna atajos para acercar o alejar la vista", panel_toggleKeys = "Asignar atajos para activar/desactivar opciones", caption_panels = "Abre la ventana para asignar las teclas de acceso a los paneles", panel_debugKeys = "Asignar atajos para depurar el juego", } font_location_window = { caption = "Seleccionar fuente (%1%)", } handyman_window = { all_parcels = "Todas las parcelas", parcel = "Parcela" } tooltip.handyman_window = { parcel_select = "Parcela donde el bedel acepta encargos, haz clic para cambiar el ajuste" } new_game_window = { caption = "Campaña", player_name = "Nombre", option_on = "Activado", option_off = "Desactivado", difficulty = "Dificultad", easy = "Novato (Fácil)", medium = "Médico (Normal)", hard = "Especialista (Difícil)", tutorial = "Tutorial", start = "Comenzar", cancel = "Cancelar", } tooltip.new_game_window = { player_name = "Introduce el nombre que usará el juego para dirigirse a ti.", difficulty = "Selecciona el nivel de dificultad con el que quieres jugar.", easy = "Si acabas de conocer los juegos de simulación, esta dificultad es para ti.", medium = "Esta es la dificultad intermedia, si no estás seguro de a dónde quieres ir.", hard = "Si ya estás acostumbrado a este tipo de juegos y quieres un buen desafío, aquí lo tendrás.", tutorial = "Selecciona esta casilla si necesitas ayuda para empezar a jugar.", start = "Empezar la partida con la configuración seleccionada.", cancel = "¡Perdón, yo no quería empezar una nueva partida!", } lua_console = { execute_code = "Ejecutar", close = "Cerrar", } tooltip.lua_console = { textbox = "Introduce aquí el código Lua que quieres ejecutar", execute_code = "Ejecutar el código Lua que has introducido", close = "Cerrar la consola", } errors = { dialog_missing_graphics = "Los archivos de datos de la demo no contienen esta ventana.", save_prefix = "Error al guardar la partida: ", load_prefix = "Error al cargar la partida: ", load_map_prefix = "Error al cargar el mapa: ", load_level_prefix = "Error al cargar el nivel: ", no_games_to_contine = "No hay partidas guardadas.", load_quick_save = "Error, no existe el guardado rápido y por tanto no se puede cargar, pero tranquilo, que acabamos de generar uno para ti.", map_file_missing = "¡No se ha podido encontrar el archivo de mapa %s de este nivel!", minimum_screen_size = "Introduce un tamaño de pantalla como mínimo de %dx%d.", unavailable_screen_size = "El tamaño de pantalla que has seleccionado no está disponible en el modo de pantalla completa.", alien_dna = "NOTA: Los pacientes alienígenas no tienen animaciones para sentarse, abrir puertas, llamar a puertas, etc. Por lo tanto, al igual que en Theme Hospital, para hacer estas cosas aparentarán cambiar a una imagen normal y luego volverán a su estado. Los pacientes con ADN alienígena solo aparecerán si el archivo del nivel lo indica.", fractured_bones = "NOTA: La animación de las pacientes femeninas con Fracturas óseas no es perfecta.", could_not_load_campaign = "Error al cargar la campaña %s.", could_not_find_first_campaign_level = "No se ha encontrado el primer nivel de la campaña %s.", save_to_tmp = "El archivo en %s no pudo ser utilizado. El juego ha sido guardado en %s. Error: %s", dialog_empty_queue = "Lo siento, un humanoide tenía una cola de acciones vacía, lo que significa que no sabía que hacer. Por favor consulta la ventana de comandos para obtener información más detallada. Se ha abierto un dialogo con el humanoide que causó el problema. ¿Te gustaría que abandone el hospital?", compatibility_error = { new_in_old = "Lo siento, esta partida guardada fue creada con una version más nueva de CorsixTH y no es compatible. Por favor actualiza a una versión más reciente.", demo_in_full = "Lo siento, no puedes abrir una partida guardada de la demo cuando los archivos del juego completo se encuentran cargados. Por favor actualiza la configuracion referente a tu carpeta de datos de Theme Hospital.", full_in_demo = "Lo siento, no puedes abrir una partida guardada del juego completo cuando los archivos de la demo se encuentran cargados. Por favor actualiza la configuracion referente a tu carpeta de datos de Theme Hospital.", }, music = "Hay problemas al intentar reproducir uno o más archivos en tu directorio de música. Los archivos problemáticos serán deshabilitados en el reproductor. Verifica la consola para obtener mas información.", missing_corsixth_file = "Advertencia: No se pudo encontrar el archivo %s, intenta reinstalar CorsixTH.", missing_th_data_file = "Advertencia: No se pudo encontrar el archivo %s, faltan datos de Theme Hospital.", missing_level_file = "Error: No se pudo encontrar el archivo de nivel seleccionado.", overlay = { incorrect_difficulty = "La dificultad debe ser facil, full o dificil. El valor actual es ", incorrect_level_number = "El número nivel debe estar entre 1 y 12. El valor actual es ", missing_setting = "No se ha especificado la dificultad ni el numero de nivel para el nivel personalizado.", }, cannot_restart_missing_files = "Lo siento, pero este nivel no se puede reiniciar debido a archivos faltantes %s o %s.", } warnings = { levelfile_variable_is_deprecated = "Aviso: El nivel %s contiene una definición de variable obsoleta en el archivo del nivel." .. "'%LevelFile' ha sido renombrado como '%MapFile'. Avisa al creador del mapa para que actualice el nivel.", newersave = "Advertencia, has cargado una partida guardada de una versión más reciente de CorsixTH. No se recomienda continuar, ya que el juego podría cerrarse. Juega bajo tu propio riesgo." } confirmation = { needs_restart = "Para cambiar este ajuste debes reiniciar CorsixTH. Se perderá todo el progreso que no hayas guardado. ¿Seguro que quieres continuar?", abort_edit_room = "Ahora mismo estás construyendo o editando una habitación. Si has colocado todos los objetos necesarios será terminada, de lo contrario se borrará. ¿Quieres continuar?", maximum_screen_size = "El tamaño de pantalla que has introducido es mayor que 3000x2000. Es posible utilizar una resolución más grande, pero necesitarás un ordenador potente para que la velocidad de fotogramas sea aceptable. ¿Seguro que quieres continuar?", music_warning = "Nota: Necesitas el archivo smpeg.dll o el equivalente para tu sistema operativo, de lo contrario no tendrás música en el juego. ¿Quieres continuar?", remove_destroyed_room = "¿Te gustaría eliminar la habitación por $%d?", replace_machine_extra_info = "La nueva máquina tendrá una resistencia de %d (actualmente es de %d).", very_old_save = "Han habido muchas actualizaciones en el juego desde que comenzaste el nivel. Para asegurarte de que todas las características funcionen es debido, ¿te gustaría reiniciar este nivel ahora?//" .. "Tu archivo de guardado anterior no se eliminará a menos que lo sobrescribas.", restart_mapeditor = "¿Estás seguro que quieres reiniciar el editor de mapas?", quit_mapeditor = "¿Estás seguro que quieres salir del editor de mapas?", } information = { custom_game = "Bienvenido a CorsixTH. ¡Diviértete con este mapa personalizado!", no_custom_game_in_demo = "La versión demo no permite jugar a mapas personalizados.", cannot_restart = "Esta partida personalizada se guardó antes de que se implementara la característica de reiniciar.", very_old_save = "Han habido muchas actualizaciones en el juego desde que comenzaste. Para asegurarte de que todas las características funcionen como se espera, considera reiniciar el nivel.", level_lost = { "¡Qué pena! Has fracasado en este nivel. ¡Ya tendrás más suerte la próxima vez!", "La razón por la que has perdido es:", reputation = "Tu reputación ha caído por debajo de %d.", balance = "Tu cuenta bancaria ha llegado a tener menos de %d.", percentage_killed = "Has matado a más de un %d por ciento de los pacientes.", cheat = "¡Espero que no hayas hecho clic en el botón 'Perder Nivel' por accidente!", }, staff_happiness = "La felicidad promedio del personal cayó debajo de %d%.", patient_happiness = "La felicidad promedio de los pacientes cayó debajo de %d%.", cheat_not_possible = "No puedes usar ese truco en este nivel.", } tooltip.information = { close = "Cerrar la ventana de información", } totd_window = { tips = { "Todo hospital necesita una mesa de recepción y una consulta para empezar a funcionar. A partir de ahí depende del tipo de pacientes que visite tu hospital. Eso sí, una farmacia siempre es una buena opción.", "Las máquinas como el inflador necesitan mantenimiento. Contrata a un par de bedeles para que reparen tus máquinas o podrías herir a tus pacientes y a tu personal.", "Tu personal se cansará pasado un tiempo. Procura construir una sala de personal para que puedan relajarse.", "Coloca varios radiadores para mantener calentitos a tu personal y empleados o se enfadarán. Usa el mapa de la ciudad para buscar las zonas que no tienen calefacción en tu hospital.", "El nivel de cualificación de un médico influye en la calidad y la velocidad de sus diagnósticos. Si asignas un médico cualificado a tu consulta no necesitarás tantas consultas de diagnosis.", "Los principiantes y los médicos pueden mejorar su cualificación si un especialista les enseña en la sala de formación. Si el especialista tiene una cualificación especial (cirujano, psiquiatra o investigador), también enseñará sus conocimientos a sus alumnos.", "¿Has probado a meter el número de emergencias (112) en el fax? ¡Asegúrate de tener el sonido activado!", "Puedes ajustar algunos parámetros como la resolución y el idioma del juego en la ventana de opciones, que se encuentra tanto en el menú principal como dentro del juego.", "¿Has seleccionado el castellano, pero sigues viendo textos en inglés en algún lugar? ¡Avísanos de qué líneas de texto están en inglés para que podamos traducirlas!", "¡El equipo de CorsixTH busca refuerzos! ¿Te interesa programar, traducir o crear gráficos para CorsixTH? Contáctanos en nuestro foro, lista de correo o canal IRC (corsix-th en freenode).", "Si encuentras un fallo, puedes enviarnos un informe en nuestro registro de fallos: th-issues.corsix.org", "Cada nivel tiene unos requisitos concretos que debes conseguir antes de poder avanzar al siguiente nivel. Mira en la ventana de estado para ver como llevas los objetivos del nivel.", "Si quieres editar o quitar una habitación ya existente, puedes hacerlo con el botón Editar habitación, en la barra de herramientas inferior.", "Cuando tengas muchos pacientes esperando, puedes averiguar quienes están esperando para una habitación en concreto pasando el cursor por encima de la habitación.", "Pulsa en la puerta de una habitación para ver su cola. Aquí puedes afinar ciertas cosas, como el orden la cola o mandar a un paciente hacia otra habitación.", "El personal que no esté contento pedirá aumentos de sueldo con frecuencia. Asegúrate de que tu personal trabaja en un entorno cómodo para evitar que esto ocurra.", "Los pacientes tendrán sed mientras esperan en tu hospital, ¡y más si subes la calefacción! Coloca máquinas de bebidas en lugares estratégicos para ganar un dinerillo extra.", "Puedes cancelar el progreso del diagnóstico de un paciente y adivinar la cura si ya has descubierto la enfermedad. Ten en cuenta que esto aumentará el riesgo de darle el tratamiento equivocado, lo que matará al paciente.", "Las emergencias pueden ser una buena forma de ganar un dinerillo extra, siempre y cuando tengas la capacidad suficiente para ocuparte de los pacientes de la emergencia a tiempo.", "¿Sabías que puedes asignar bedeles a terrenos específicos? Solo clickea el texto 'Todas las parcelas' en su ficha de personal para cambiarlo!", }, previous = "Siguiente consejo", next = "Consejo anterior", } tooltip.totd_window = { previous = "Mostrar el consejo anterior", next = "Mostrar el consejo siguiente", } debug_patient_window = { caption = "Paciente de depuración", } tooltip.debug_patient_window = { item = "Crear un paciente de depuración con %s", } cheats_window = { caption = "Trucos", warning = "Advertencia: ¡No conseguirás bonificaciones al acabar este nivel si haces trampas!", cheated = { no = "Se han usado trucos: No", yes = "Se han usado trucos: Sí", }, cheats = { money = "Truco de dinero", all_research = "Truco de todo investigado", emergency = "Crear una emergencia", vip = "Crear un VIP", toggle_earthquake = "Activar terremotos", earthquake = "Crear terremoto", toggle_epidemic = "Activar epidemias", epidemic = "Crear un paciente contagioso", show_infected = "Mostrar/ocultar iconos de infección", create_patient = "Crear un paciente", end_month = "Fin de mes", end_year = "Fin del año", lose_level = "Perder el nivel", win_level = "Ganar el nivel", increase_prices = "Subir precios", decrease_prices = "Bajar precios", reset_death_count = "Reiniciar contador de muertes", max_reputation = "Reputación máxima", repair_all_machines = "Reparar todas las máquinas", toggle_invulnerable_machines = "Activar máquinas invulnerables", }, close = "Cerrar", } tooltip.cheats_window = { close = "Cerrar la ventana de trucos", cheats = { money = "Añade 10.000 dólares a tu cuenta bancaria.", all_research = "Completa todas las investigaciones.", emergency = "Crea una emergencia.", vip = "Crea un VIP.", toggle_earthquake = "Activar terremotos", earthquake = "Crea un terremoto.", toggle_epidemic = "Permite elegir si las epidemias ocurrirán", epidemic = "Crea un paciente contagioso que podría provocar una epidemia.", show_infected = "Muestra u oculta los iconos de infección para la epidemia activa.", create_patient = "Crea un paciente en el borde del mapa.", end_month = "Avanza hasta el fin del mes actual.", end_year = "Avanza hasta el final del año actual.", lose_level = "Hace que pierdas el nivel actual.", win_level = "Hace que ganes el nivel actual.", increase_prices = "Aumenta los precios en un 50% (200% máximo).", decrease_prices = "Reduce los precios en un 50% (50% mínimo).", reset_death_count = "Reinicia el contador de muertes del hospital a cero", max_reputation = "Establece la reputación del hospital al máximo", repair_all_machines = "Repara todas las máquinas del hospital", toggle_invulnerable_machines = "Permite elegir si las máquinas pueden estropearse o romperse luego de ser usadas", } } introduction_texts = { demo = "¡Bienvenido al hospital de demostración!" .. "Por desgracia, la demo sólo contiene este nivel. ¡Pero tiene más que suficiente para distraerte un buen rato!" .. "Te enfrentarás a varias enfermedades que deberás curar construyendo varias salas. De vez en cuando pueden aparecer emergencias. Necesitarás investigar varios tipos de consultas utilizando una consulta de investigación." .. "Tu objetivo es ganar 100.000 dólares, una reputación de 700, que tu hospital tenga un valor de 70.000 dólares y que hayas curado al menos al 75% de tus pacientes." .. "Procura que tu reputación no caiga por debajo de 300 y no mates a más del 40% de tus pacientes o perderás el nivel." .. "¡Suerte!", } introduction_texts[1] = "Intenta alcanzar una reputación de 300, un saldo bancario de 10.000 dólares y cura a 40 personas." calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d llamadas, %d asignadas", staff = "%s - %s", watering = "Regando @ %d,%d", repair = "Reparar %s", close = "Cerrar", } tooltip.calls_dispatcher = { task = "Lista de tareas: Pulsa en una tarea para abrir la ventana del personal asignado y desplázate hasta la posición de la tarea.", assigned = "Esta opción está activada si alguien ha sido asignado a la tarea correspondiente.", close = "Cerrar la ventana de llamadas de control.", } tooltip.machine_window = { toggle_machine_menu = "Haz clic para abrir el menú de máquinas", } machine_menu = { machine = "Máquina", remaining_strength = "Restante", total_strength = "Fuerza", ratio = "�ndice", close = "Cerrar", } tooltip.machine_menu = { sort = "Haz clic para ordenar por esta valor.", machine = "Lista de máquinas - haz clic en una máquina para abrir su interfaz y desplazarte a su ubicación", smoking = "Esta casilla estará marcada si la máquina corre riesgo de explotar", assigned = "Esta casilla estará marcada si un operario de mantenimiento está asignado para reparar la máquina correspondiente", remaining_strength = "Esta etiqueta muestra la fuerza restante de la máquina", total_strength = "Muestra la fuerza total de la máquina", ratio = "Muestra la relación entre la fuerza restante y la fuerza total", header = { smoking = "Indicador de peligro", assigned = "Indicador de asignación", machine = "Nombre y posición de la máquina", remaining_strength = "Fuerza restante de las máquinas.", total_strength = "Fuerza total de las máquinas.", ratio = "Porcentaje de fuerza restante en relación con la fuerza total de las máquinas", times_used = "Cantidad de veces que se ha usado la máquina.", }, close = "Cerrar la lista de máquinas", } adviser_history = { message = "Mensaje", close = "Cerrar", } tooltip.adviser_history = { delete_message = "Haz clic para eliminar este mensaje", message = "Lista de mensajes del consejero - los mensajes más nuevos aparecerán al principio", header = { message = "Mensajes del consejero", delete_message = "Haz clic para eliminar todos los mensajes" }, close = "Cerrar el diálogo de historial del consejero", } update_window = { caption = "¡Actualización disponible!", new_version = "Versión nueva:", current_version = "Versión actual:", download = "Ir a la página de descargas", ignore = "Saltar e ir al menú principal", } tooltip.update_window = { download = "Ir a la página de descargas para obtener la última versión de CorsixTH.", ignore = "Ignorar esta actualización por el momento. Volverás a ser notificado la próxima vez que ejecutes CorsixTH.", } map_editor_window = { pages = { inside = "Interior", outside = "Exterior", foliage = "Vegetación", hedgerow = "Setos", pond = "Estaque", road = "Camino", north_wall = "Muro norte", west_wall = "Muro oeste", helipad = "Helipuerto", delete_wall = "Borrar muros", parcel_0 = "Parcela 0", parcel_1 = "Parcela 1", parcel_2 = "Parcela 2", parcel_3 = "Parcela 3", parcel_4 = "Parcela 4", parcel_5 = "Parcela 5", parcel_6 = "Parcela 6", parcel_7 = "Parcela 7", parcel_8 = "Parcela 8", parcel_9 = "Parcela 9", parcel = "Parcela %d", set_parcel_tooltip = "Ingresa un número y presiona enter.", set_parcel = "Ingresar número de parcela", camera_1 = "Cámara 1", camera_2 = "Cámara 2", camera_3 = "Cámara 3", camera_4 = "Cámara 4", heliport_1 = "Helipuerto 1", heliport_2 = "Helipuerto 2", heliport_3 = "Helipuerto 3", heliport_4 = "Helipuerto 4", paste = "Pegar zona", }, checks = { spawn_points_and_path = "Advertencia: Los pacientes no pueden llegar al hospital. Se necesitan casillas de 'carretera' o casillas grises de 'exterior' desde el borde del mapa hasta la entrada del hospital.", }, } tooltip.toolbar = { machine_menu = "Menú de máquinas", } hotkey_window = { ingame_panel_machineMenu = "Menú de Máquinas", ingame_toggleTransparent = "Habilitar transparencias", } hotkeys_file_err = { file_err_01 = "No se pudo cargar el archivo 'hotkeys.txt'. Por favor asegúrate de que CorsixTH " .. "tiene permisos para leer/escribir ", file_err_02 = ", o usa la opcion de línea de comandos --hotkeys-file=filename para especificar un archivo que pueda ser escrito. " .. "Para referencia, el error al cargar el archivo de teclas de acceso rápido fue: ", } transactions.remove_room = "Construir: Eliminar habitación destruida" tooltip.status = { over = { staff_happiness = "La felicidad promedio del personal debería ser mayor a %d%. Actualmente es %d%", patient_happiness = "La felicidad promedio de tus pacientes deberia ser mayor a %d%. Actualmente es %d%", }, under = { staff_happiness = "La felicidad promedio del personal no debería ser menor a %d%. Actualmente es %d%", patient_happiness = "La felicidad promedio de tus pacientes no debería ser menor a %d%. Actualmente es %d%", } } level_progress = { cured_enough_patients = "Has curado suficientes pacientes, pero necesitas organizar mejor tu hospital para superar el nivel.", hospital_value_enough = "Mantén el valor de tu hospital por encima de %d y atiende tus otros problemas para superar el nivel." } multiplayer = { players_failed = "Los siguientes jugadores no lograron completar el último objetivo:", everyone_failed = "Ninguno de los jugadores ha logrado completar el último objetivo, por lo que todos pueden continuar jugando!" } disease_discovered_patient_choice.need_to_employ = "Emplea a un %s para poder manejar esta situación." -------------------------------- UNUSED ----------------------------------- ------------------- (kept for backwards compatibility) ---------------------- options_window.change_resolution = "Cambiar resolución" tooltip.options_window.change_resolution = "Cambia la resolución de la ventana utilizando la dimensión indicada a la izquierda." cheats_window.cheats = { toggle_infected = show_infected, } tooltip.cheats_window.cheats = { toggle_infected = show_infected, } CorsixTH-0.70.0/CorsixTH/Lua/languages/swedish.lua000066400000000000000000001060641522247547500216700ustar00rootroot00000000000000--[[ Copyright (c) 2010-2016 Manuel "Roujin" Wolf, Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("cp437") Language("Svenska", "Swedish", "sv", "swe") Inherit("english") Inherit("original_strings", 5) Encoding(utf8) IsArabicNumerals(true) ------------------------------- OVERRIDE ---------------------------------- object.reception_desk = "Reception" -- "Psyket" means something entirely different than "Psykiatrin" rooms_long.psychiatric = "Den psykiatriska avdelningen" rooms_short.psychiatric = "Psykiatri" tooltip.rooms.psychiatry = "I den psykiatriska avdelningen kureras galningar och man hjälper också till med diagnoser av andra patienter. Här behövs en läkare med psykiatrisk kompetens" adviser.staff_place_advice.only_psychiatrists = "Läkare utan psykiatrisk examen kan inte arbeta inom psykiatrin." adviser.room_requirements.psychiatry_need_psychiatrist = "Nu när du byggt en psykiatrisk avdelning måste du också anställa en psykiater." room_descriptions.psych = { "Den psykiatriska avdelningen//", "Patienter som får diagnosen psykisk sjukdom måste uppsöka den psykiatriska avdelningen för att få behandling. Psykiatriker kan också ställa diagnoser, ta reda på vilken typ av sjukdom patienterna har och, i det fall det är mentalt behandla dem på den pålitliga gamla britsen.//", "Här behövs en läkare utbildad i psykiatri. " } introduction_texts.level1 = "Välkommen till ditt första sjukhus!//Sätt igång genom att placera ut en reception och bygga en allmänpraktik, anställ en receptionist och en läkare. " .. "Vänta därefter på att jobben ska trilla in. En bra idé vore att bygga en psykmottagning och anställa en läkare med psykiatrisk kompetens. " .. "Ett apotek och en syster behövs också för att du ska kunna bota dina patienter. Se upp för svåra fall av pöshuvud - ett pumprum behövs för att greja dessa. " .. "Försök bota 10 personer och se till att ditt anseende inte sjunker under 200." tooltip.staff_list.next_person = "Visa nästa sida" tooltip.staff_list.prev_person = "Visa föregående sida" -- Improve tooltips in staff window to mention hidden features tooltip.staff_window.face = "Vederbörandes ansikte - klicka för att öppna personalhanteraren" tooltip.staff_window.center_view = "Vänsterklicka för att komma till personen, högerklicka för att gå igenom personalen en och en" confirmation.restart_level = "Är du säker på att du vill starta om nivån?" -- In English the squits becomes the the squits, see issue 1646. In Swedish it stays the same, but it -- still needs to be defined. adviser.research.drug_improved_1 = "Medicinen mot %s har förbättrats av din forskaravdelning." ------------------------------- NEW STRINGS ------------------------------- object.litter = "Skräp" tooltip.objects.litter = "Skräp: Lämnat åt sitt öde eftersom patienten inte kunde hitta någon papperskorg." tooltip.fax.close = "Stäng fönstret utan att ta bort meddelandet" tooltip.message.button = "Vänsterklicka för att öppna meddelandet" tooltip.message.button_dismiss = "Vänsterklicka för att öppna meddelandet, högerklicka för att ta bort det" tooltip.casebook.cure_requirement.hire_staff = "Du behöver anställa personal att hantera behandlingen" tooltip.casebook.cure_type.unknown = "Du vet ännu inte hur denna sjukdom botas" tooltip.research_policy.no_research = "Det pågår ingen forskning i den här kategorin just nu" tooltip.research_policy.research_progress = "Framsteg inför nästa upptäckt i denna kategori: %1%/%2%" handyman_window.all_parcels = "Alla tomter" handyman_window.parcel = "Tomt" tooltip.handyman_window.parcel_select = "Tomten där vaktmästaren accepterar uppdrag. Klicka för att ändra" tooltip.new_game_window.player_name = "Skriv in det namn du vill kallas i spelet" new_game_window.player_name = "Namn" menu.player_count = "ANTAL SPELARE" menu_options = { lock_windows = " LÅS FÖNSTER ", edge_scrolling = " KANTRULLNING ", adviser_disabled = " (%1%) MEDHJÄLPARE ", warmth_colors = " VÄRMEFÄRGER ", wage_increase = " LÖNFÖRFRÅGNINGAR ", twentyfour_hour_clock = " 24-TIMMARSKLOCKA " } menu_options_game_speed = { pause = " (%1%) PAUSA ", slowest = " (%1%) LÅNGSAMMAST ", slower = " (%1%) LÅNGSAMMARE ", normal = " (%1%) NORMAL ", max_speed = " (%1%) MAXHASTIGHET ", and_then_some_more = " (%1%) OCH SÅ LITE TILL ", } menu_options_warmth_colors = { choice_1 = " RÖD ", choice_2 = " BLÅ GRÖN RÖD ", choice_3 = " GUL ORANGE RÖD ", } menu_options_wage_increase = { grant = " BEVIJLA ", deny = " NEKA ", } -- Add F-keys to entries in charts menu (except briefing), also town_map was added. menu_charts = { bank_manager = " (%1%) BANKKAMRER ", statement = " (%1%) KONTOUTDRAG ", staff_listing = " (%1%) PERSONALLEDNING ", town_map = " (%1%) STADSKARTA ", casebook = " (%1%) MEDICINJOURNAL ", research = " (%1%) FORSKNING ", status = " (%1%) STATUS ", graphs = " (%1%) GRAFER ", policy = " (%1%) POLICY ", } menu_file.restart = " (%1%) STARTA OM " menu_debug = { jump_to_level = " HOPPA TILL NIVÅ ", connect_debugger = " (%1%) KOPPLA LUA DBGp SERVER ", transparent_walls = " (%1%) TRANSPARENTA VÄGGAR ", limit_camera = " BEGRÄNSA KAMERAN ", disable_salary_raise = " STÄNG AV LÖNEÖKNINGAR ", make_debug_fax = " SKAPA DEBUGFAX ", make_debug_patient = " SKAPA DEBUGPATIENT ", cheats = " (%1%) FUSK ", lua_console = " (%1%) LUATERMINAL ", debug_script = " (%1%) KÖR DEBUGSKRIPT ", calls_dispatcher = " ANROPSKLARERARE ", dump_strings = " (%1%) SKAPA TEXTFILER ", dump_gamelog = " (%1%) DUMPA SPELLOGG ", map_overlay = " KARTÖVERSIKT ", sprite_viewer = " GRAFIKVISARE ", } menu_debug_overlay = { none = " INGET ", flags = " FLAGGOR ", positions = " KOORDINATER ", heat = " TEMPERATUR ", byte_0_1 = " BYTE 0 & 1 ", byte_floor = " BYTE GOLV ", byte_n_wall = " BYTE N VÄGG ", byte_w_wall = " BYTE W VÄGG ", byte_5 = " BYTE 5 ", byte_6 = " BYTE 6 ", byte_7 = " BYTE 7 ", parcel = " TOMT ", } menu_player_count = { players_1 = " 1 SPELARE ", players_2 = " 2 SPELARE ", players_3 = " 3 SPELARE ", players_4 = " 4 SPELARE ", } adviser = { room_forbidden_non_reachable_parts = "Rummet kan inte placeras här eftersom delar av sjukhuset då blir oåtkomliga.", warnings = { no_desk = "Det kanske börjar bli dags att bygga en reception och anställa en receptionist?", no_desk_1 = "Om du vill att det ska komma patienter till sjukhuset så behövs en receptionist och en reception där hon kan jobba!", no_desk_2 = "Snyggt jobbat, det måste vara ett världsrekord: nästan ett år och inte en enda patient! Om du vill fortsätta som chef på det här sjukhuset så måste du anställa en receptionist och bygga en reception som hon kan jobba i!", no_desk_3 = "Helt otroligt, nästan ett år och du har fortfarande ingen bemannad reception! Tror du det kommer några patienter då? Sluta leka omkring och fixa till det här nu!", no_desk_4 = "En receptionist behöver ha en egen disk som hon kan hälsa patienterna välkomna vid", no_desk_5 = "Det var på tiden, nu borde det snart börja dyka upp patienter!", no_desk_6 = "Du har en receptionist, det kanske är dags att bygga en reception som hon kan arbeta vid?", no_desk_7 = "Nu har du en reception, vad sägs om att anlita en receptionist också? Det lär inte komma några patienter förrän du gjort det!", cannot_afford = "Du har inte tillräckligt med pengar på banken för att anställa den personen!", cannot_afford_2 = "du har inte tillräckligt med pengar på banken för att genomföra det köpet!", falling_1 = "Nämen! Det där inte kul, om du inte ser dig för var du klickar så kan någon skada sig!", falling_2 = "Sluta strula omkring, hur tror du det känns?", falling_3 = "Ajaj, det måste ha gjort ont. Ring en läkare!", falling_4 = "Det här är ett sjukhus, inte ett nöjesfält!", falling_5 = "Jag tror inte det här är rätt arena att knuffa omkull folk på, det är sjuka vet du!", falling_6 = "Det här är inte en bowlinghall, sjuka människor ska inte behandlas så!", research_screen_open_1 = "Du behöver bygga en forskningsavdelning innan du får tillgång till forskningsskärmen.", research_screen_open_2 = "På den här nivån finns det ingen möjlighet till forskning.", researcher_needs_desk_1 = "Varje forskare behöver ett skrivbord att jobba vid.", researcher_needs_desk_2 = "Din forskare är nöjd över att få en välbehövlig paus. Om du ville ha flera forskare aktiva samtidigt så behöver de få var sitt skrivbord.", researcher_needs_desk_3 = "En forskare behöver alltid ett skrivbord.", nurse_needs_desk_1 = "Varje sköterska behöver ett eget skrivbord.", nurse_needs_desk_2 = "Din sköterska är glad att få en paus. Du kanske ville ha flera personer att jobba på avdelningen? Då behöver de var sitt skrivbord.", low_prices = "Du tar för lite betalt för %s. Det lockar visserligen fler patienter, men du kommer inte att tjäna så mycket på var och en.", high_prices = "Avgiften på %s är hög. Du tjänar mycket kortsiktigt, men till slut kommer du att driva iväg folk.", fair_prices = "Avgiften på %s verkar rimlig och balanserad.", patient_not_paying = "En patient lämnade just sjukhuset utan att betala för %s eftersom det är alldeles för dyrt!", }, cheats = { th_cheat = "Ojoj, nån vill fuska sig till segern!", roujin_on_cheat = "Roujin's utmaning aktiverad! Lycka till...", roujin_off_cheat = "Roujin's utmaning avaktiverad.", }, } dynamic_info.patient.actions.no_gp_available = "Väntar på att du ska bygga en allmänpraktik" dynamic_info.staff.actions.heading_for = "På väg till %s" dynamic_info.staff.actions.fired = "Sparkad" dynamic_info.patient.actions.epidemic_vaccinated = "Jag smittar inte längre" progress_report.free_build = "FRITT BYGGANDE" fax = { choices = { return_to_main_menu = "Gå till huvudmenyn", accept_new_level = "Gå vidare till nästa nivå", decline_new_level = "Fortsätt spela ett tag till", }, emergency = { num_disease_singular = "Vi har 1 person som kräver omedelbar vård med %s.", free_build = "Om du lyckas ökar ditt anseende, men om du misslyckas kommer ditt anseende att få en rejäl känga." }, vip_visit_result = { remarks = { free_build = { "Det var ju ett trevligt sjukhus du har! Inte så svårt att få det så bra utan begränsande budget dock, eller hur?", "Jag är ingen ekonom, men jag tror att jag också hade kunnat driva det här sjukhuset, om du förstår vad jag menar...", "Ett mycket väld fungerande sjukhus må jag säga. Akta lågkonjunkturen bara! Just det... du behöver inte oroa dig över pengar nä.", } } } } letter = { dear_player = "Käre %s", custom_level_completed = "Bra gjort! Du klarade alla mål på den här specialnivån!", return_to_main_menu = "Vill du gå tillbaka till huvudmenyn eller fortsätta spela?", campaign_level_completed = "Bra jobbat! Du klarade nivån, men det är inte över än!\n Vill du ha jobbet som chef vid %s?", campaign_completed = "Otroligt! Du lyckades med alla nivåer. Nu är det bara att mysa och njuta av att fylla forum överallt på nätet om dina bedrifter. Lycka till!", campaign_level_missing = "Ledsen, men det verkar som att nästa nivå på den här kampanjen saknas. (Namn: %s)", } install = { title = "--------------------------------- CorsixTH Setup ---------------------------------", th_directory = "CorsixTH behöver en kopia av filerna från det ursprungliga spelet (eller dess demo) för att kunna köras. Använd väljaren nedan för att lokalisera mappen där Theme Hospital installerats.", ok = "OK", exit = "Avsluta", cancel = "Avbryt", } misc.not_yet_implemented = "(ej tillgänglig ännu)" misc.no_heliport = "Antingen har inga sjukdomar upptäckts ännu, eller så finns det ingen helikopterplatta på den här nivån." main_menu = { new_game = "Originalkampanjen", custom_campaign = "Nya kampanjer", custom_level = "Enskild nivå", continue = "Fortsätt spel", load_game = "Ladda spel", options = "Alternativ", map_edit = "Kartredigerare", savegame_version = "Sparningsversion: ", version = "Version: ", exit = "Avsluta", } tooltip.main_menu = { new_game = "Starta nivå ett i originalkampanjen från Theme Hospital", custom_campaign = "Spela en kampanj som är skapad av andra spelare", custom_level = "Bygg ditt sjukhus på en valfri nivå", load_game = "Ladda ett sparat spel", options = "Fixa till dina inställningar", map_edit = "Starta kartredigeraren för att skapa din egen karta", exit = "Nej! Du vill väl inte sluta redan?", quit = "Du håller på att avsluta CorsixTH. Är du säker på att du vill det?" } load_game_window = { caption = "Ladda spel", } tooltip.load_game_window = { load_game = "Ladda %s", load_game_number = "Ladda spel %d", load_autosave = "Ladda autosparningen", } custom_game_window = { caption = "Enskilda nivåer", free_build = "Bygg fritt", load_selected_level = "Starta", } tooltip.custom_game_window = { choose_game = "Välj en nivå för att läsa mer om den", free_build = "Bocka för den här rutan om du vill spela utan pengar och vinst- och förlustkriterier", load_selected_level = "Ladda och spela den valda nivån", } custom_campaign_window = { caption = "Nya kampanjer", start_selected_campaign = "Starta kampanj", } tooltip.custom_campaign_window = { choose_campaign = "Välj en kampanj för att läsa mer om den", start_selected_campaign = "Ladda den första nivån på den valda kampanjen", } save_game_window = { caption = "Spara spel", new_save_game = "Ny sparfil", } tooltip.save_game_window = { save_game = "Skriv över %s", new_save_game = "Skriv namnet på den nya filen", } save_map_window = { caption = "Spara karta (%1%)", new_map = "Ny karta", } tooltip.save_map_window = { map = "Skriv över kartan %s", new_map = "Skriv ett kartnamn", } menu_list_window = { name = "Namn", save_date = "Senast ändrad", back = "Tillbaka", } tooltip.menu_list_window = { name = "Klicka här för att sortera listan efter namn", save_date = "Klicka här för att sortera listan efter daturm då spelen sparades", back = "Stäng detta fönster", } options_window = { caption = "Alternativ", option_on = "På", option_off = "Av", fullscreen = "Helskärm", resolution = "Upplösning", custom_resolution = "Anpassad...", width = "Bredd", height = "Höjd", customise = "Anpassa", folder = "Mappar", language = "Spelspråk", apply = "Tillämpa", cancel = "Avbryt", back = "Tillbaka", } tooltip.options_window = { fullscreen = "Om spelet ska köras i fullskärmsläge eller fönsterläge", fullscreen_button = "Klicka för att gå mellan fönster och helskärm", resolution = "Upplösning spelet ska köras i", select_resolution = "Välj en ny upplösning", width = "Fyll i önskad skärmbredd", height = "Fyll i önskad skärmhöjd", apply = "Tillämpa den valda upplösningen", cancel = "Återvänd utan att ändra upplösning", customise_button = "Fler inställningar som kan ändras för att anpassa din spelupplevelse", folder_button = "Mappinställningar", language = "Text i spelet kommer att visas på det här språket", select_language = "Väljs spelspråk", language_dropdown_item = "Ändra till %s som språk", back = "Stäng alternativmenyn", } audio_window = { audio = "Globalt ljud", back = "Tillbaka", } tooltip.audio_window = { audio_button = "Stäng av eller sätt på allt ljud i spelet", audio_toggle = "Slå av eller på", } customise_window = { caption = "Extra inställningar", option_on = "På", option_off = "Av", back = "Tillbaka", movies = "Global filmkontroll", intro = "Spela introfilmen", paused = "Bygg i pausläge", volume = "Tangent: volym ner", aliens = "Utomjordingar", fractured_bones = "Krossad patient", average_contents = "Genomsnittsinnehåll", } tooltip.customise_window = { movies = "Välj om filmer ska spelas överhuvudtaget", intro = "Skippa introfilmen när du startar spelet. Global filmkontroll måste vara påslagen om du spela introfilmen varje gång du laddar CorsixTH", paused = "I Theme Hospital fick spelaren bara använda verktygsfältet längst upp när spelet var pausat. Så är det i CorsixTH också såvida du inte aktiverar funktionen att bygga även när spelet är pausat här", volume = "Om du råkat ut för att tangenten som sänker volymen även öppnar medicinjournalen, slå på det här alternativet för att ändra snabbkommando till medicinjournalen till Shift + C", aliens = "Eftersom det inte finns ordentliga animeringar har vi gjort så att patienter med utomjordiskt DNA endast dyker upp som akutfall. Stäng av det här för att kunna få utomjordiskt DNA-fall även som vanliga besök", fractured_bones = "På grund av en dålig animering har vi stängt av kvinnliga patienter med frakturer (Krossad patient). Stäng av det här, så kommer det att dyka upp även kvinnor med den åkomman", average_contents = "Om du vill att spelet ska komma ihåg vilka extra föremål du normalt sett brukar handla till nya rum, slå på detta alternativ", back = "Stäng den här menyn och gå tillbaka till Alternativmenyn", } folders_window = { caption = "Mappinställningar", data_label = "TH Data", font_label = "Typsnitt", music_label = "MP3", savegames_label = "Sparningar", screenshots_label = "Skärmbilder", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "Här kan du välja en ny sökväg där Theme Hospital ligger. Så fort du väljer en ny mapp kommer spelet att startas om!", savegames_location = "Välj var sparade spel ska läggas.", music_location = "Välj en mapp med musik i för att spela den i spelet.", screenshots_location = "Välj vilken mapp du vill spara skärmbilder till.", back = "Tillbaka", } tooltip.folders_window = { browse = "Bläddra efter mappsökväg", data_location = "Mapp där originalspelet Theme Hospital finns. Krävs för att spela CorsixTH", font_location = "Sökväg till en typsnittsfil som kan visa Unicode-tecken som krävs för ditt språk. Om detta inte är specificerat kommer du inte att kunna välja sådana språk, till exempel ryska och kinesiska", savegames_location = "Som standard läggs sparade spel i en mapp som ligger bredvid konfigurationsfilen. Om det inte fungerar kan du välja en egen här", screenshots_location = "Skärmbilder sparas som standard i en mapp bredvid konfigurationsfilen. Här kan du välja en annan mapp istället", music_location = "Välj en sökväg där du har mp3-filer. Mappen måste redan finnas", browse_data = "Bläddra efter en ny sökväg till Theme Hospital ( nuvarande sökväg: %1% )", browse_font = "Bläddra efter en annan typsnittsfil ( nuvarande sökväg:: %1% )", browse_saves = "Bläddra efter en annan mapp att lägga sparade spel i ( nuvarande sökväg:: %1% ) ", browse_screenshots = "Bläddra efter en annan mapp för skärmbilder ( nuvarande sökväg:: %1% ) ", browse_music = "Bläddra efter en annan mapp med musik ( nuvarande sökväg:: %1% ) ", no_font_specified = "Ingen typsnittsfil vald än!", not_specified = "Ingen sökväg vald än!", default = "Standardsökväg", reset_to_default = "Återställ mappen till standardsökvägen ( %1% )", back = "Stäng den här dialogen och återgå till alternativmenyn", } font_location_window = { caption = "Välj typsnitt (%1%)", } new_game_window = { caption = "Kampanj", option_on = "På", option_off = "Av", difficulty = "Svårighetsgrad", easy = "Junior (Lätt)", medium = "Läkare (Medel)", hard = "Konsult (Svår)", tutorial = "Starthjälp", start = "Börja", cancel = "Avbryt", } tooltip.new_game_window = { easy = "Om du känner dig ny på denna typ av spel är detta läget för dig", medium = "Detta är den gyllene medelvägen om du är osäker på vad du ska välja", hard = "Känner du för en utmaning och är van vid den här typen av spel är det här rätt val", difficulty = "Välj vilken svårighetsgrad spelet ska ha", start = "Börja spela med dessa inställningar", tutorial = "Vill du ha lite hjälp på traven i början, tryck ner den här rutan", cancel = "Oj, det var ju egentligen inte meningen att starta ett nytt spel!", } lua_console = { execute_code = "Exekvera", close = "Stäng", } tooltip.lua_console = { textbox = "Skriv in Luakod att köra här", execute_code = "Kör koden du skrivit", close = "Stäng terminalen", } errors = { dialog_missing_graphics = "Tyvärr innehåller demon inte den här dialogrutan.", save_prefix = "Fel när spelet skulle sparas: ", load_prefix = "Fel när spelet skulle laddas: ", no_games_to_contine = "Det finns inga sparade spel.", load_quick_save = "Fel, kan inte ladda en snabbsparning eftersom det inte finns någon. Men oroa dig inte, nu har vi skapat en åt dig!", map_file_missing = "Kunde inte hitta kartfilen %s till den här nivån!", minimum_screen_size = "Skärmupplösningen måste vara åtminstone %dx%d.", unavailable_screen_size = "Skärmupplösningen du valde finns inte i fullskärmsläge.", alien_dna = "NOTERA: Det finns inga animeringar för patienter med utomjordiskt DNA när de sitter ner, öppnar dörrar osv. Precis som i Theme Hospital gör de därför det i mänsklig skepnad. Dessa patienter anländer som vanligt endast om nivån du spelar definierat att sjukdomen ska finnas", fractured_bones = "NOTERA: Animeringen för kvinnliga Krossade patienter är inte perfekt", could_not_load_campaign = "Kunde inte ladda kampanjen %s", could_not_find_first_campaign_level = "Kunde inte hitta den första nivån på den här kampanjen: %s", } warnings = { levelfile_variable_is_deprecated = "Notera: Nivån '%s' innehåller en föråldrad variabeldefinition i nivåfilen." .. "'%LevelFile' har bytt namn till '%MapFile'. Meddela nivåskaparen att uppdatera nivån.", } confirmation = { needs_restart = "Att ändra denna inställning kräver en omstart av spelet. Osparad data kommer att gå förlorad. Är du säker på att du vill göra detta?", abort_edit_room = "Du håller på att bygga eller ändra ett rum. Om alla obligatoriska föremål är placerade kommer rummet att färdigställas som det är, annars tas det bort. Fortsätta?", maximum_screen_size = "Upplösningen du valt är större än 3000 x 2000. Större upplösningar är möjliga, men kräver bättre hårdvara. Är du säker på att du vill fortsätta?", music_warning = "Notera: När du väljer att använda mp3-filer som spelmusik behövs smpeg.dll eller motsvarande för ditt operativsystem, annars blir det ingen musik i spelet. Vill du fortsätta?", } information = { custom_game = "Välkommen till CorsixTH. Ha nu riktigt kul med den här specialnivån!", no_custom_game_in_demo = "Ledsen, men det går inte att spela enskilda nivåer med demofilerna.", cannot_restart = "Tyvärr sparades detta spel innan funktionen att starta om hade implementerats.", very_old_save = "Det har hänt en hel del med spelet sedan du startade den här nivån. För att vara säker på att allt fungerar som det är tänkt kan det vara bra att överväga att starta om nivån.", level_lost = { "Attans! Du förlorade. Bättre lycka nästa gång!", "Anledning till att du förlorade:", reputation = "Ditt anseende föll under %d.", balance = "Din bankbalans sjönk till under %d.", percentage_killed = "Du dödade mer än %d procent av dina patienter.", cheat = "Var det verkligen ditt val eller tryckte du bara på fel knapp? Så du kan inte ens fuska ordentligt, tråkigt för dig...", }, cheat_not_possible = "Det går inte att använda det fusket på den här nivån. Du misslyckas till och med att fuska, det kan inte vara roligt!", } tooltip.information = { close = "Stäng informationsrutan", } totd_window = { tips = { "Alla sjukhus behöver en reception och en allmänpraktik för att fungera. Sedan beror allt på vad det är för patienter som besöker sjukhuset. Ett hett tips är att börja med ett apotek.", "Maskiner som till exempel pumpen behöver underhåll då och då. Anställ en vaktmästare eller två för att reparera dem, annars riskeras personalens och patienternas hälsa.", "Efter ett tag kommer din personal att bli trött. Se till att göra ett personalrum så att de kan slappna av lite.", "För att inte dina anställda och alla patienter ska bli arga gäller det att ha tillräckligt med element utplacerade lite här och där. Använd stadskartan för att hitta ställen som behöver mer värme.", "En läkares kompetensnivå påverkar kvaliteten och hastigheten på hans diagnoser ganska mycket. Sätt en riktigt kompetent läkare i allmänpraktiken så behövs det inte så många andra diagnosrum.", "Juniorer och läkare kan höja sin kompetensnivå genom att gå i träning hos en konsult i utbildningsrummet. Om konsulten har någon färdighet (kirurg, psykiater eller forskare) kommer han också att lära ut detta till sina elever.", "Har du testat att slå numret till SOS Alarm på faxen? Se till att ljudet är påslaget...", "Det går att göra vissa inställningar som till exempel upplösning och språk i alternativmenyn som finns både i huvudmenyn och inuti spelet.", "Hittar du en massa text på engelska i spelet? Hjälp oss översätta färdigt till Svenska!", "Teamet bakom CorsixTH söker förstärkning! Vill du koda, översätta eller skapa grafik till spelet? Kontakta oss i forumet, på mejllistan eller i IRC-kanalen (corsix-th at freenode).", "Om du hittar en bugg, rapportera den gärna i vår bugghanterare på adressen th-issues.corsix.org.", "Varje nivå har vissa krav som ska uppfyllas innan du kan gå vidare till nästa. Kolla statusfönstret för att se hur nära målen du är.", "Om du vill ändra eller ta bort ett existerande rum kan du göra det med hjälp av ändra rum-knappen i panelen längst ner (saxen).", "Om du ur högen av patienter vill ta reda på vilka som köar till ett visst rum är det bara att föra muspekaren över rummet.", "Klicka på dörren till ett rum för att se kön till det. Sedan går det att genomföra finlir som att ändra ordning eller skicka en patient till ett annat likadant rum.", "Olycklig personal frågar efter löneökning ofta. Se till att de jobbar i en behaglig miljö så händer det inte.", "Patienter blir törstiga när de väntar på sin tur, ännu mer om du sätter upp värmen! Sätt ut läskautomater på strategiska platser för lite extra inkomst.", "Det går att avbryta diagnosprocessen för en patient i förtid och gissa behandling om sjukdomen är känd. Notera att detta ökar risken för felbehandling - och dödsfall.", "Akutfall kan vara ett smidigt sätt att få in lite extra stålar, såvida du har kapacitet att hantera alla patienter i tid vill säga.", }, previous = "Föregående tips", next = "Nästa tips", } tooltip.totd_window = { previous = "Visa föregående tips", next = "Visa nästa tips", } debug_patient_window = { caption = "Debug Patient", } cheats_window = { caption = "Fusk", warning = "Varning: Du kommer inte att få bonuspoäng på slutet av nivån om du fuskar!", cheated = { no = "Har fuskat: Nej", yes = "Har fuskat: Ja", }, cheats = { money = "Pengar", all_research = "All forskning", emergency = "Skapa akutfall", vip = "Skapa VIP", earthquake = "Skapa jordbävning", epidemic = "Skapa en smittande patient", toggle_infected = "Visa infekterad-ikonen", create_patient = "Skapa patient", end_month = "Månadsslut", end_year = "Hoppa till nyår", lose_level = "Förlora nivå", win_level = "Vinn nivå", increase_prices = "Öka priser", decrease_prices = "Minska priser", }, close = "Stäng", } tooltip.cheats_window = { close = "Stäng fuskfönstret", cheats = { money = "Ökar din balans med 10 000.", all_research = "Färdigställer all forskning.", emergency = "Skapar ett akutfall.", vip = "Skapar en Mycket Viktig Person (VIP)", earthquake = "Skapar en jordbävning med slumpad styrka", epidemic = "Skapar en person som smittar så att en epidemi kan starta", toggle_infected = "Växlar mellan att visa ikoner vid en upptäckt, aktiv epidemi", create_patient = "Skapar en patient vid kanten av kartan.", end_month = "Hoppar till slutet av månaden.", end_year = "Hoppar till slutet av året.", lose_level = "Förlora nuvarande nivå.", win_level = "Vinn nuvarande nivå.", increase_prices = "Öka alla priser med 50% (max. 200%)", decrease_prices = "Minska alla priser med 50% (min. 50%)", } } introduction_texts = { demo = "Välkommen till demosjukhuset!//" .. "Tyvärr innehåller demon bara denna nivå. Ändå finns det garanterat tillräckligt att göra ett tag framöver! " .. "Du kommer att råka ut för diverse sjukdomar som kräver olika rum för att botas. " .. "Ibland kan olyckor hända, så att det kommer akutfall till sjukhuset. Dessutom behöver du forska för att upptäcka fler rum. " .. "Målet är att tjäna $100,000, ha ett sjukhusvärde av $70,000 och 700 i anseende, samtidigt som du botar minst 75% av patienterna. " .. "Se till att ditt anseende inte sjunker under 300 och att du inte dödar mer än 40% av dina patienter, annars förlorar du.//" .. "Lycka till!", } calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d anrop; %d tilldelade", staff = "%s - %s", watering = "Vattnar @ %d,%d", repair = "Reparera %s", close = "Stäng", } tooltip.calls_dispatcher = { task = "Lista över uppgifter - klicka på en uppgift för att öppna tilldelad personals fönster och flytta vyn till det ställe där uppgiften finns.", assigned = "Denna ruta är markerad om någon har fått uppgiften tilldelad till sig.", close = "Stäng anropsklarerardialogen", } update_window = { caption = "Updatering tillgänglig!", new_version = "Ny version:", current_version = "Din version:", download = "Gå till nedladdningssidan", ignore = "Skippa och gå till huvudmenyn", } tooltip.update_window = { download = "gå till nedladdningssidan där du hittar den absolut senaste versionen av CorsixTH", ignore = "Skippa updateringen just nu. Du kommer att få en ny notis nästa gång du öppnar CorsixTH", } map_editor_window = { pages = { inside = "Inomhus", outside = "Utomhus", foliage = "Grönska", hedgerow = "Häck", pond = "Damm", road = "Väg", north_wall = "Nordlig vägg", west_wall = "Västlig vägg", helipad = "Helikopterplatta", delete_wall = "Ta bort väggar", parcel_0 = "Tomt 0", parcel_1 = "Tomt 1", parcel_2 = "Tomt 2", parcel_3 = "Tomt 3", parcel_4 = "Tomt 4", parcel_5 = "Tomt 5", parcel_6 = "Tomt 6", parcel_7 = "Tomt 7", parcel_8 = "Tomt 8", parcel_9 = "Tomt 9", camera_1 = "Kamera 1", camera_2 = "Kamera 2", camera_3 = "Kamera 3", camera_4 = "Kamera 4", heliport_1 = "Heliport 1", heliport_2 = "Heliport 2", heliport_3 = "Heliport 3", heliport_4 = "Heliport 4", paste = "Klistra in", } } date_format.daymonth = "%1% %2:months%" original_credits[301] = ":Operations" original_credits[302] = "," original_credits[303] = "Steve Fitton" original_credits[304] = " " original_credits[305] = " " original_credits[306] = " " original_credits[307] = ":Company Administration" original_credits[308] = "," original_credits[309] = "Audrey Adams" original_credits[310] = "Annette Dabb" original_credits[311] = "Emma Gibbs" original_credits[312] = "Lucia Gobbo" original_credits[313] = "Jo Goodwin" original_credits[314] = "Sian Jones" original_credits[315] = "Kathy McEntee" original_credits[316] = "Louise Ratcliffe" original_credits[317] = " " original_credits[318] = " " original_credits[319] = " " original_credits[320] = ":Company Management" original_credits[321] = "," original_credits[322] = "Les Edgar" original_credits[323] = "Peter Molyneux" original_credits[324] = "David Byrne" original_credits[325] = " " original_credits[326] = " " original_credits[327] = ":All at Bullfrog Productions" original_credits[328] = " " original_credits[329] = " " original_credits[330] = " " original_credits[331] = ":Special Thanks to" original_credits[332] = "," original_credits[333] = "Everyone at Frimley Park Hospital" original_credits[334] = " " original_credits[335] = ":Especially" original_credits[336] = "," original_credits[337] = "Beverley Cannell" original_credits[338] = "Doug Carlisle" original_credits[339] = " " original_credits[340] = " " original_credits[341] = " " original_credits[342] = ":Keep On Thinking" original_credits[343] = " " original_credits[344] = " " original_credits[345] = " " original_credits[346] = " " original_credits[347] = " " original_credits[348] = " " original_credits[349] = " " original_credits[350] = " " original_credits[351] = " " original_credits[352] = " " original_credits[353] = " " original_credits[354] = " " original_credits[355] = " " original_credits[356] = " " original_credits[357] = " " original_credits[358] = " " original_credits[359] = " " original_credits[360] = " " original_credits[361] = "." -------------------------------- UNUSED ----------------------------------- ------------------- (kept for backwards compatibility) ---------------------- options_window.change_resolution = "Ändra upplösning" tooltip.options_window.change_resolution = "Ändra upplösning till de dimensioner ifyllda till vänster" CorsixTH-0.70.0/CorsixTH/Lua/languages/traditional_chinese.lua000066400000000000000000004577501522247547500242450ustar00rootroot00000000000000--[[ Copyright (c) 2012 lwglwsss Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- Note: This file contains UTF-8 text. Make sure your editor is set to UTF-8. Font("unicode") Language("�體中文", "Chinese (traditional)", "zh(t)", "chi(t)", "zho(t)") Inherit("english") Encoding(utf8) IsArabicNumerals(false) -- Search OVERRIDE and NEW STRINGS for workspace ------------------------------- OLD STRINGS ------------------------------- -- Not generated from official Traditional Chinese datapack, as I don't know -- if that ever exists... misc = { hospital_open = "醫院開門營業", save_success = "�戲存檔�功", save_failed = "錯誤:無法存檔", low_res = "低解�度", grade_adverb = { extremely = "極端的", mildly = "柔和的", moderately = "�當的", }, send_message = "�玩家%d傳�訊�", out_of_sync = "�戲失去�步", balance = "難度�擇:", load_failed = "�戲存檔讀�失敗", mouse = "�鼠", done = "完�", force = "力�", pause = "暫�", send_message_all = "�所有玩家傳�訊�", cant_treat_emergency = "你的醫院尚未了解這種新的疾病。請下次�試。", } staff_list = { morale = "士氣", tiredness = "疲勞程度", skill = "技能", total_wages = "工資總�", } research = { allocated_amount = "已分��", funds_allocation = "資金�置", categories = { improvements = "改良", drugs = "藥�研究", diagnosis = "診斷儀器", cure = "治療儀器", specialisation = "專項", }, } queue_window = { num_in_queue = "隊�長度", num_entered = "造訪者人數", max_queue_size = "最大長度", num_expected = "�期", } staff_class = { doctor = "醫生", handyman = "清潔工人", receptionist = "接待員", nurse = "護士", surgeon = "外科醫生", } tooltip = { hire_staff_window = { prev_person = "查看�一個人", cancel = "�消", psychiatrist = "精神病醫生", salary = "月薪", next_person = "查看後一個人", nurses = "查看�僱用的護士", surgeon = "外科醫生", handymen = "查看�僱用的清潔工人", doctors = "查看�僱用的醫生", doctor_seniority = "醫生資歷(實習醫生,醫生,專家)", hire = "僱用", researcher = "科研人員", qualifications = "醫生的特殊技能", receptionists = "查看�僱用的接待員", staff_ability = "員工能力", }, handyman_window = { close = "�消請求", ability = "能力", face = "清潔工的�孔", prio_machines = "�高清潔工維修機器的優先級", prio_litter = "�高清潔工清除垃圾的優先級", happiness = "快樂程度", prio_plants = "�高清潔工給盆栽澆水的優先級", name = "清潔工的�字", tiredness = "疲勞程度", center_view = "切�到當�人物", salary = "工資", sack = "解僱", pick_up = "拾起", }, staff_list = { ability_2 = "員工的能力水準", next_person = "下一�", detail = "細心程度", happiness = "顯示員工滿�程度", researcher_train = "已經接�了%d%%的研究技能培訓", handymen = "查看醫院中被僱用清潔工人�單", tiredness = "顯示員工疲勞程度", researcher = "�格研究人員", happiness_2 = "員工士氣", pay_rise = "�高員工工資10%", bonus = "付給該員工10%�金", prev_person = "上一�", nurses = "查看醫院中被僱用護士�單", psychiatrist = "�格精神病醫生", salary = "該員工當�工資", ability = "顯示員工能力水準", close = "退出並返回�戲", sack = "解僱員工", surgeon = "�格外科醫生", tiredness_2 = "員工的疲勞程度", doctors = "查看醫院中被僱用醫生�單", doctor_seniority = "醫生資歷", view_staff = "查看員工工作情�", surgeon_train = "已經接�了%d%%的外科培訓", skills = "特殊技能", receptionists = "查看醫院中被僱用接待員�單", psychiatrist_train = "已經接�了%d%%的精神病治療培訓", }, research = { cure_inc = "�高科研百分比", close = "關閉研究畫�", specialisation_dec = "�低專門研究百分比", diagnosis_dec = "�低科研百分比", allocated_amount = "已分��算", improvements_inc = "�高改良研究百分比", drugs_dec = "�低藥�研究百分比", drugs_inc = "�高藥�研究百分比", cure_dec = "�低療效研究百分比", specialisation_inc = "�高專門研究百分比", improvements_dec = "�低改良研究百分比", diagnosis_inc = "�高儀器研究百分比", }, machine_window = { repair = "呼�清潔工維修機器", name = "�字", close = "關閉", times_used = "機器被使用次數", status = "機器狀�", replace = "汰�機器", }, place_objects_window = { confirm = "確�", cancel = "�消", pick_up = "拾起物�", buy_sell = "買/賣物�", }, status = { percentage_cured = "您需�治療%d%%�來就診的病人。當�您已經治療了%d%%", thirst = "醫院中所有人的總體�渴程度", close = "關閉總覽畫�", population_chart = "圖表顯示�個醫院�當地居民的�引程度", win_progress_own = "顯示當�進展情�", reputation = "您的�望必須至少有%d。當�值為%d", population = "您至少需�總人�的%d%%來訪�您的醫院", warmth = "醫院中所有人的總體溫暖程度", percentage_killed = "任務�求最多�能殺死%d%%的就診病人。到目�為止,您已經殺死了%d%%的病人。", balance = "您的�金必須至少有$%d。當�值為$%d", value = "您的醫院價值必須至少有$%d。當�值為$%d", win_progress_other = "顯示當�%s方�的進展情�", num_cured = "您的目標是治癒%d個病人。�在您已經治癒%d個", happiness = "醫院中所有人的總體快樂程度", }, queue_window = { end_of_queue = "拖動一�病人到該按鈕處,將使其移動到隊尾", num_entered = "到目�為止該房間已處�病人數目", close = "關閉��", num_in_queue = "排隊等候的病人數目", num_expected = "�將加入隊�的病人數目", front_of_queue = "拖動一�病人到該按鈕處,將使其移動到隊首", dec_queue_size = "減少隊�的最大長度", max_queue_size = "接待員�許的最大排隊人數", inc_queue_size = "增加隊�的最大長度", patient = "拖動病人將改變其排隊�置。�擊�個病人�以�擇將其��回家或��到競爭�手的醫院。", patient_dropdown = { send_home = "讓病人離開醫院", hospital_2 = "將病人�到其他醫院", reception = "將病人�到接待員處", hospital_1 = "將病人�到其他醫院", hospital_3 = "將病人�到其他醫院", }, }, jukebox = { rewind = "�後", loop = "循環播放", stop = "�止播放", close = "關閉音樂盒", current_title = "音樂盒", play = "播放", fast_forward = "��", }, graphs = { deaths = "切�死亡人數", close = "關閉圖表畫�", scale = "比例尺", money_out = "切�支出", visitors = "切�訪�人數", wages = "切�工資", balance = "切��金", money_in = "切�收入", cures = "切�治癒人數", reputation = "切�醫院價值", }, toolbar = { reputation = "�望", casebook = "治療手冊", edit = "編輯房間/物�", staff_list = "員工管�", policy = "制度", date = "日期", charts = "圖表", objects = "設置走廊", balance = "�金", research = "研究", hire = "僱用員工", status = "狀態", town_map = "城鎮地圖", rooms = "建造房屋", bank_button = "左擊進入銀行經�畫�,�擊進入銀行帳戶", }, pay_rise_window = { accept = "滿足�求", decline = "拒絕�將其解僱", }, town_map = { close = "退出城鎮地圖畫�", plants = "切�盆栽", fire_extinguishers = "切�滅�器", people = "切�人員", balance = "�金", heat_dec = "減少供熱", heating_bill = "供暖費", radiators = "切�暖氣", objects = "切�物�", heat_level = "供熱強度", heat_inc = "增加供熱", }, casebook = { sent_home = "��回家人數", cure_requirement = { hire_staff_old = "您需�僱用一�%s來治療該疾病", possible = "您有能力治療這種疾病", not_possible = "您還沒有能力治療該種疾病", ward_hire_nurse = "您需�一�護士在病房中照料病人", hire_surgeon = "您需�僱用第二�外科醫生來完�手術", research_machine = "您需�研究一些儀器來治療這種疾病", build_room = "您需�修建一個房間來治療這種疾病", build_ward = "您需�建造一個病房來治療該疾病", hire_surgeons = "您需�僱用兩�外科醫生完�手術", }, increase = "增加", up = "�上�動", reputation = "治療或診斷�望", research = "點擊這裡�以為治療使用專門研究�算", close = "關閉治療手冊", earned_money = "總收入", cure_type = { psychiatrist = "由精神病醫生完�治療工作", drug_percentage = "治療使用藥��其療效為%d%%", drug = "治療時將使用藥�", machine = "該疾病需�儀器輔助治療", surgery = "該疾病需�手術", }, decrease = "減少", deaths = "死亡人數", cured = "治癒人數", down = "�下�動", treatment_charge = "花費", }, policy = { diag_termination = "�於一個病人的診斷將一直�續到設定的治療��百分比,或所有的診斷機器都已經嘗試一�", close = "關閉制度畫�", staff_leave = "點擊這裡�以讓處於空閒狀態的員工幫助其他員工", diag_procedure = "如果醫生的診斷�果為,治癒機率�於設定的��回家百分比,則該病人將被自動��回家。如果治癒機率大於設定的嘗試治療百分比,則該病人將被自動�去進行治療", staff_rest = "員工休�時的最低疲勞程度", staff_stay = "點擊這裡�以使所有員工�留在設定的房間內", }, bank_manager = { graph = "顯示%s支付曲線", close = "關閉銀行經�畫�", hospital_value = "醫院當�價值", graph_return = "返回上個畫�", current_loan = "當�未償還貸款", borrow_5000 = "�銀行借款$5000", balance = "銀行�金", interest_payment = "�月利�支付", inflation_rate = "年通貨膨脹率", interest_rate = "年利率", repay_5000 = "�銀行償還$5000", show_graph = "顯示%s支付曲線", insurance_owed = "%s欠款的金�", }, main_menu = { network = "開始網路�戲", quit = "退出", continue = "繼續�戲", load_menu = { load_slot = "讀�進度", empty_slot = "空", }, new_game = "開始新�戲", load_game = "讀入進度", }, patient_window = { graph = "通�點擊�以在�康情�和病歷之間切�", casebook = "查看有關疾病的詳細情�", close = "關閉", queue = "查看隊�詳細資料", happiness = "快樂程度", warmth = "溫暖程度", center_view = "切�到當�人物", thirst = "�渴程度", send_home = "把病人趕出醫院", abort_diagnosis = "無需診斷直接去治療", }, watch = { emergency = "緊急情�:剩餘時間內儘快治癒所有急救病人。", hospital_opening = "建造計時器:它主�用來指示�離醫院開門的時間多少。直接點擊開門按鈕就�以立�開門迎接客人。", epidemic = "傳染病:剩餘時間內儘快阻止傳染病蔓延。當時間耗盡或一個被傳染病人離開醫院,則衛生巡查員將出�。通�按鈕�以切��防接種模�開或者關。點擊病人就�以讓護士為其接種。", }, staff_window = { doctor_seniority = "資歷�是實習醫生,醫生還是專家", psychiatrist = "精神病", close = "關閉", ability = "能力", pick_up = "拾起", sack = "解僱", surgeon = "外科", happiness = "快樂程度", salary = "月薪", name = "員工�字", tiredness = "疲勞程度", center_view = "點擊滑鼠��切�人物", skills = "特殊技術", researcher = "研究", face = "�孔�點擊進入管�", }, rooms = { ultrascan = "醫生使用超級掃瞄儀房間診斷病人", research_room = "�有研究技能的醫生�以在研究部門開發新的藥�和機器。", fracture_clinic = "護士使用骨折診所治療骨折病人", gps_office = "病人在一般診斷室內接��始診斷", inflation = "醫生使用充氣機房間治療頭部腫脹病人", staffroom = "醫生和護士在員工休�室內�以�復疲勞", jelly_vat = "醫生使用膠桶診所治療失衡患者", scanner = "醫生使用掃�儀房間診斷病人", decontamination = "醫生使用淨化淋浴�置�以治療放射病", pharmacy = "護士在藥房為病人�藥治療", cardiogram = "醫生使用心電圖室診斷病人", ward = "病房�於診斷和治療都是�常有用的。病人手術��在病房中觀察一段時間。病房需�護士", training_room = "專家使用培訓室�其他醫生進行培訓", operating_theatre = "手術中心需�兩�具備外科技能的醫生", psychiatry = "精神病診斷治療室�以治療精神病患者�時也能幫助診斷其他病人,但是需�一��有精神病治療技能的醫生", hair_restoration = "醫生使用毛髮�復房間治療禿頂病人", tongue_clinic = "醫生使用舌頭鬆弛診斷室治療舌頭鬆弛症病人", dna_fixer = "醫生使用DNA�復�置房間治療外星人DNA病人", general_diag = "醫生使用高級診斷室為患者進行基本診斷。花費很少但效率很高", toilets = "建造洗手間�以防止病人把醫院弄得一團糟�", electrolysis = "醫生使用電分解房間治療多毛症病人", x_ray = "醫生使用X光房間診斷病人", blood_machine = "醫生使用血液機器房間診斷病人", }, statement = { close = "關閉銀行帳戶畫�", }, buy_objects_window = { confirm = "購買物�", cancel = "�消", increase = "多買一個", total_value = "訂購物�總值", price = "物�價格", decrease = "少買一個", }, window_general = { confirm = "確定", cancel = "�消", }, objects = { chair = "椅�:供病人使用,以討論病情。", sofa = "沙發:擺放在員工休�室中,員工如果沒有更好的放鬆方�,則�以�在上��復疲勞。", operating_table = "30 OB_OP_TABLE", bed2 = "未使用", bench = "長椅:為病人�供一個座�,使其�以比較舒�地等待。", scanner = "14 OB_SCANNER", couch = "18 OB_COUCH", blood_machine = "42 OB_BLOOD_MC", table1 = "桌�(已刪除):擺放大�雜誌,使等待的病人感到快樂。", video_game = "電視�戲:讓您的員工在�戲中徹底放鬆。", lamp = "燈:照明用。", op_sink2 = "34 OB_OP_SINK_2", door = "房門:人們出入房間時必需。", auto_autopsy = "驗�機:�研究新的治療方法有很大幫助。", reception_desk = "�務�:需�一�接待員為病人�務。", hair_restorer = "25 OB_HAIR_RESTORER", projector = "37 OB_PROJECTOR", crash_trolley = "20 OB_CRASH", tv = "電視:使員工�會錯�喜愛的節目。", ultrascanner = "22 OB_ULTRASCAN", surgeon_screen = "35 OB_SURGEON_SCREEN", litter_bomb = "垃圾炸彈:來自�手醫院的破壞活動", inflator = "充氣機:治療頭部腫脹病患者。", table2 = "12 OB_BTABLE", desk = "辦公桌:醫生�以在上�放置電腦。", pool_table = "撞�桌:幫助員工放鬆。", x_ray_viewer = "29 OB_XRAY_VIEWER", radiation_shield = "28 OB_RAD_SHIELD", bed = "床:病情嚴�的病人需�臥床。", swing_door2 = "53 OB_DOUBLE_DOOR2", console = "15 OB_SCANNER_CONSOLE", op_sink1 = "33 OB_OP_SINK_1", bookcase = "書櫃:放置醫生的�考資料。", drinks_machine = "飲料販賣機:為病人止渴,也是收入來�之一。", comfortable_chair = "61 OB_COMFY_CHAIR", skeleton = "骨骼模型:主�用於培訓。", computer = "電腦:關�的研究部件。", bin = "垃圾桶:放置垃圾。", pharmacy_cabinet = "藥房:用來�存藥�", radiator = "暖氣:��醫院內的溫度。", cast_remover = "24 OB_CAST_REMOVE", atom_analyser = "化學混�器:擺放在研究部門中,該機器�以加速全部研究進程。", plant = "盆栽:使病人快樂並淨化空氣。", jelly_moulder = "47 OB_JELLY_VAT", cardio = "13 OB_CARDIO", toilet = "洗手間:�供給病人使用。", electrolyser = "46 OB_ELECTRO", fire_extinguisher = "滅�器:�低治療儀器爆炸所產生的�險。", bed3 = "未使用", swing_door1 = "52 OB_DOUBLE_DOOR1", lecture_chair = "教室座�:接�培訓的醫生�在上�,收�無�的演講。座�擺放得越多,則教室越大。", screen = "16 OB_SCREEN", toilet_sink = "洗手�:講衛生的病人�以在洗手�中洗淨髒手。如果沒有足夠的洗手�,病人將感到�高興。", shower = "54 OB_DECON_SHOWER", gates_of_hell = "48 OB_HELL", entrance_right = "59 OB_ENT_RDOOR", entrance_left = "58 OB_ENT_LDOOR", slicer = "26 OB_SLICER", dna_fixer = "23 OB_DNA_FIXER", x_ray = "27 OB_XRAY", cabinet = "文件櫃:包�了病人文件,備忘錄以�研究檔案。", }, build_room_window = { cost = "當�被�擇房間價格", room_classes = { treatment = "�擇處�類房間", diagnosis = "�擇診斷類房間", facilities = "�擇附屬類房間", clinic = "�擇治療類房間", }, close = "�消並返回�戲", }, } menu_charts = { briefing = " 任務簡報", casebook = " (%1%) 治療手冊", graphs = " (%1%) 圖表", policy = " (%1%) 制度", bank_manager = " (%1%) 銀行經�", statement = " (%1%) 銀行帳戶", staff_listing = " (%1%) 員工列表", research = " (%1%) 研究", status = " (%1%) 狀態", } town_map = { number = "地�編號", not_for_sale = "��購買", chat = "城鎮細節", price = "地�售價", for_sale = "出售", owner = "地�所有", area = "地���", } vip_names = { [1] = "�大的查普頓市長", [2] = "��格爾", [3] = "來自�蘭的伯那德國王", [4] = "緬甸民主黨領袖:�山蘇姬", [5] = "克朗伯先生", -- [6] requires replacement (English uses 'Sir Lancelot Spratt') [7] = "克勞�議員", [8] = "羅尼", [9] = "一個超級�賽�星", [10] = "拉裡普羅斯特", health_minister = "衛生署部長", } room_descriptions = { ultrascan = { [1] = "超級掃瞄儀//", [2] = "超級掃瞄儀是診斷類儀器中最��的。它雖然花費驚人,但效果�著,�以使醫院�病人的診斷�到完美。//", [3] = "超級掃瞄儀需�醫生。它也需�維護。", }, gp = { [1] = "一般診斷室//", [2] = "這是您的醫院中一個基本診斷房間。就診病人將到這裡來檢查病因。隨後�決定是�進一步的診斷還是立�治療。如果一間普通診斷室�夠用,則您�以�建造�一間。房間越大,則�以在裡�擺放更多的特殊物�,從而使醫生的�信越高。這�於其他房間也是一樣的。//", [3] = "一般診斷室需�一�醫生。", }, fracture_clinic = { [1] = "骨折診所//", [2] = "骨折患者將到這裡來接�治療。石��離�置將使用高能雷射將堅硬的石�切開,而病人�需��很�的痛苦。//", [3] = "骨折診所需�一�護士。它也需�日常維護。", }, tv_room = { [1] = "電視房間沒有使用", }, inflation = { [1] = "充氣機診所//", [2] = "患有頭部腫脹症的病人需�在充氣機診所接�治療,病人膨脹的頭蓋骨將被去掉,並�腦袋�新充氣到正常大�。//", [3] = "充氣機診所需�醫生。它也需�清潔工人的維護。", }, jelly_vat = { [1] = "膠桶診所//", [2] = "�於患有失衡症的患者需�到膠桶診所接�治療,在這裡將被放入膠桶中。該治療方法的原�醫學界目�還無法完全�解。//", [3] = "膠桶診所需�醫生。它也需�清潔工維護機器。", }, scanner = { [1] = "掃�儀//", [2] = "通�掃�儀病人得到確診。隨後他們就�以到一般診斷室接�進一步的治療指示。//", [3] = "掃�儀需�醫生。它也�樣需�維護。", }, blood_machine = { [1] = "血液機器//", [2] = "血液機器也是一種診斷用儀器,通�它�以檢查病人的血液細胞,從而找出病人的病因。//", [3] = "血液機器需�醫生。它也需�維護。", }, pharmacy = { [1] = "藥房//", [2] = "被診斷且需�接�藥物治療的病人一定�到藥房去抓藥。當越來越多的藥�被研製出來。該房間也將變得越來越�忙。這時就需��建造一間藥房。//", [3] = "藥房需�一�護士。", }, cardiogram = { [1] = "心電圖儀//", [2] = "病人在這裡被診斷檢查,隨後�到一般診斷室接�治療�示。//", [3] = "心電圖儀需�醫生。當然它也需�維護。", }, ward = { [1] = "病房//", [2] = "病人在病房中�留一段時間,以便護士進行觀察。隨後��手術。//", [3] = "病房需�一�護士。", }, psych = { [1] = "精神病診斷治療室//", [2] = "被診斷為精神有�題的病人必須到精神病診斷治療室中接�治療。精神病醫生�以�病人進行診斷,發�其病因,且如果確實是心��題,將使用長沙發椅�其進行治療。//", [3] = "精神病診斷治療室需�一�具有精神病治療技能的醫生。", }, staff_room = { [1] = "員工休�室//", [2] = "您的員工感覺疲勞時,需�房間來放鬆緊張的神經,從而�復疲勞。處於極度疲勞的員工效率很低,並�時�求加薪,甚至�辭而別。他們還會常常犯錯誤。建造一個員工休�室,並在裡�盡�能擺放多一點物�,這是�分值得的。請確�該房間�以�時使多�員工得到休�。", }, operating_theatre = { [1] = "手術中心//", [2] = "它�以�供�常��的治療手段。手術中心必須�有足夠的尺寸,必須�置�當的儀器設備。它將是醫院中最��的部門。//", [3] = "手術中心需�兩��有外科技能的醫生。", }, training = { [1] = "培訓室//", [2] = "您的實習醫生和醫生在該房間內�以得到特殊技能的培訓。�有外科,研究或精神病技能的專家將把自己的經驗傳授給接�培訓的醫生。�於已�有這些技能的醫生,他們的能力將大幅�高。//", [3] = "培訓室需�一�專家。", }, dna_fixer = { [1] = "DNA診所//", [2] = "這些有外星人DNA的病人必須在這裡�復其原有的DNA。DNA修復�置是最複雜的儀器,因此一定�在其房間內擺放一個滅�器,以防�一。//", [3] = "這�DNA修復�置需�清潔工�時維護。它也需�一�具有研究能力的醫生�能夠正常工作。", }, research = { [1] = "研究室//", [2] = "在研究室�以研製新的藥�和治療方法,並��種儀器進行改進�高。這是醫院中的一個��部門,並��高醫院的治癒率產生絕�影響。//", [3] = "研究室需�一��有研究技能的醫生。", }, hair_restoration = { [1] = "毛髮�復診所//", [2] = "�於身患禿頂的病人將被�到該毛髮�復診所,使用其中的毛髮�復�置進行治療。需�一�醫生�作機器,且該機器將很快地使病人的腦袋長滿頭髮。//", [3] = "毛髮�復診所需�醫生。它也需�維護。", }, general_diag = { [1] = "高級診斷室//", [2] = "需�進一步診斷的病人將被�到這裡。如果一般診斷室無法發�病人的病因,高級診斷室將有�能找出。診斷��後,他們將返回一般診斷室分��果。//", [3] = "高級診斷室需�醫生。", }, electrolysis = { [1] = "電分解房間//", [2] = "多毛症患者將到該房間接�電分解機器的治療,該機器將猛拉毛髮並使用一種混�物填充毛孔。//", [3] = "電分解房間需�醫生。它也需�清潔工進行維護。", }, slack_tongue = { [1] = "舌頭鬆弛治療診所//", [2] = "在普通診斷室中被診斷為舌頭鬆弛的病人將被�到該診所接�治療。醫生將使用一種高科技的儀器使舌頭伸直並切掉多餘部分,從而使病人�復正常。//", [3] = "舌頭鬆弛診所需�醫生。它也需�日常維護。", }, toilets = { [1] = "洗手間//", [2] = "當病人感到需�上�所時就需�洗手間這類設施。如果您希望洗手間多一些造訪者,�以在其中多擺放洗手�和馬桶請考慮在醫院的其他�置也建造一些附屬設施。", }, no_room = { [1] = "", }, x_ray = { [1] = "X光機//", [2] = "X光機�以使用特殊輻射為病人照內部�視照片。它�於醫生診斷病因有很大幫助。//", [3] = "X光機需�醫生。它也需�維護。", }, decontamination = { [1] = "淨化診所//", [2] = "�於被暴露在強放射性的病人需�快速�到淨化診所。該房間包�了一個淋浴器,�以將病人身上的放射能清除乾淨。//", [3] = "淨化淋浴器需�醫生。它也需�清潔工人維護。", }, } bank_manager = { current_loan = "當�貸款", balance = "�金", interest_payment = "應付利�", hospital_value = "醫院價值", interest_rate = "利率", insurance_owed = "�險公�欠款", statistics_page = { balance = "�金", details = "細節", date = "日期", current_balance = "當��金", money_in = "收入", money_out = "支出", }, inflation_rate = "通貨膨脹率", } menu_display = { high_res = " 陰影 ", } -- Original credits -- lewri: I have done my best to re-align these, but likely this one needs checking over with the original strings in English. original_credits = { [1] = " ", [2] = " ", [3] = " ", [4] = " ", [5] = " ", [6] = " ", [7] = " ", [8] = " ", [9] = " ", [10] = " ", [11] = " ", [12] = ":設計製作", [13] = ":牛蛙製造", [14] = "", [15] = ":冥王星開發�組", [16] = ",", [17] = "Mark Webley", [18] = "Gary Carr", [19] = "Matt Chilton", [20] = "Matt Sullivan", [21] = "Jo Rider", [22] = "Rajan Tande", [23] = "Wayne Imlach", [24] = "Andy Bass", [25] = "Jon Rennie", [26] = "Adam Coglan", [27] = "Natalie White", [28] = " ", [29] = " ", [30] = " ", [31] = ":編程", [32] = ",", [33] = "Mark Webley", [34] = "Matt Chilton", [35] = "Matt Sullivan", [36] = "Rajan Tande", [37] = " ", [38] = " ", [39] = " ", [40] = ":美工", [41] = ",", [42] = "Gary Carr", [43] = "Jo Rider", [44] = "Andy Bass", [45] = "Adam Coglan", [46] = " ", [47] = " ", [48] = " ", [49] = ":助�編程", [50] = ",", [51] = "Ben Deane", [52] = "Gary Morgan", [53] = "Jonty Barnes", [54] = " ", [55] = " ", [56] = " ", [57] = ":助�美工", [58] = ",", [59] = "Eoin Rogan", [60] = "George Svarovsky", [61] = "Saurev Sarkar", [62] = "Jason Brown", [63] = "John Kershaw", [64] = "Dee Lee", [65] = " ", [66] = " ", [67] = " ", [68] = ":�戲介紹", [69] = ",", [70] = "Stuart Black", [71] = " ", [72] = " ", [73] = " ", [74] = ":音樂音效", [75] = ",", [76] = "Russell Shaw", [77] = "Adrian Moore", [78] = " ", [79] = " ", [80] = " ", [81] = ":助�音樂", [82] = ",", [83] = "Jeremy Longley", [84] = "Andy Wood", [85] = " ", [86] = " ", [87] = " ", [88] = ":�音", [89] = ",", [90] = "Rebecca Green", [91] = " ", [92] = " ", [93] = " ", [94] = ":任務設計", [95] = ",", [96] = "Wayne Imlach", [97] = "Natalie White", [98] = "Steven Jarrett", [99] = "Shin Kanaoya", [100] = " ", [101] = " ", [102] = " ", [103] = ":劇本", [104] = ",", [105] = "James Leach", [106] = "Sean Masterson", [107] = "Neil Cook", [108] = " ", [109] = " ", [110] = " ", [111] = ":R&D", [112] = " ", [113] = ":圖形引擎", [114] = ",", [115] = "Andy Cakebread", [116] = "Richard Reed", [117] = " ", [118] = " ", [119] = " ", [120] = ":R&D 支�", [121] = ",", [122] = "Glenn Corpes", [123] = "Martin Bell", [124] = "Ian Shaw", [125] = "Jan Svarovsky", [126] = " ", [127] = " ", [128] = " ", [129] = ":函�庫和工具", [130] = " ", [131] = "Dos 和Win 95 函�庫", [132] = ",", [133] = "Mark Huntley", [134] = "Alex Peters", [135] = "Rik Heywood", [136] = " ", [137] = " ", [138] = " ", [139] = ":網路函�庫", [140] = ",", [141] = "Ian Shippen", [142] = "Mark Lamport", [143] = " ", [144] = " ", [145] = " ", [146] = ":�音函�庫", [147] = ",", [148] = "Russell Shaw", [149] = "Tony Cox", [150] = " ", [151] = " ", [152] = " ", [153] = ":安�程�", [154] = ",", [155] = "Andy Nuttall", [156] = "Tony Cox", [157] = "Andy Cakebread", [158] = " ", [159] = " ", [160] = " ", [161] = ":支�", [162] = ",", [163] = "Peter Molyneux", [164] = " ", [165] = " ", [166] = " ", [167] = ":測試經�", [168] = ",", [169] = "Andy Robson", [170] = " ", [171] = " ", [172] = " ", [173] = ":測試主管", [174] = ",", [175] = "Wayne Imlach", [176] = "Jon Rennie", [177] = " ", [178] = " ", [179] = " ", [180] = ":測試", [181] = ",", [182] = "Jeff Brutus", [183] = "Wayne Frost", [184] = "Steven Lawrie", [185] = "Tristan Paramor", [186] = "Nathan Smethurst", [187] = " ", [188] = "Ryan Corkery", [189] = "Simon Doherty", [190] = "James Dormer", [191] = "Martin Gregory", [192] = "Ben Lawley", [193] = "Joel Lewis", [194] = "David Lowe", [195] = "Robert Monczak", [196] = "Dominic Mortoza", [197] = "Karl O'Keeffe", [198] = "Michael Singletary", [199] = "Andrew Skipper", [200] = "Stuart Stephen", [201] = "David Wallington", [202] = " ", [203] = "And all our other Work Experience Play Testers", [204] = " ", [205] = " ", [206] = " ", [207] = ":技術支�", [208] = ",", [209] = "Kevin Donkin", [210] = "Mike Burnham", [211] = "Simon Handby", [212] = " ", [213] = " ", [214] = " ", [215] = ":市場", [216] = ",", [217] = "Pete Murphy", [218] = "Sean Ratcliffe", [219] = " ", [220] = " ", [221] = " ", [222] = ":特別感�", [223] = ",", [224] = "Tamara Burke", [225] = "Annabel Roose", [226] = "Chris Morgan", [227] = "Pete Larsen", [228] = " ", [229] = " ", [230] = " ", [231] = ":公關", [232] = ",", [233] = "Cathy Campos", [234] = " ", [235] = " ", [236] = " ", [237] = ":文檔", [238] = ",", [239] = "Mark Casey", [240] = "Richard Johnston", [241] = "James Lenoel", [242] = "Jon Rennie", [243] = " ", [244] = " ", [245] = " ", [246] = ":文檔�包�盒設計", [247] = ",", [248] = "Caroline Arthur", [249] = "James Nolan", [250] = " ", [251] = " ", [252] = " ", [253] = ":中文化產�經�", [254] = ",", [255] = "Carol Aggett", [256] = " ", [257] = " ", [258] = " ", [259] = ":本地化工作", [260] = ",", [261] = "Sandra Picaper", [262] = "Sonia 'Sam' Yazmadjian", [263] = " ", [264] = "Bettina Klos", [265] = "Alexa Kortsch", [266] = "Bianca Normann", [267] = " ", [268] = "C 。T 。O 。S 。p 。A 。Zola Predosa (BO)", [269] = "Gian Maria Battistini", [270] = "Maria Ziino", [271] = "Gabriele Vegetti", [272] = " ", [273] = "Elena Ruiz de Velasco", [274] = "Julio Valladares", [275] = "Ricardo Martínez", [276] = " ", [277] = "Kia Collin", [278] = "CBG Consult", [279] = "Ulf Thor", [280] = " ", [281] = " ", [282] = " ", [283] = ":生產", [284] = ",", [285] = "Rachel Holman", [286] = " ", [287] = " ", [288] = " ", [289] = ":製片", [290] = ",", [291] = "Mark Webley", [292] = " ", [293] = " ", [294] = " ", [295] = ":��制片", [296] = ",", [297] = "Andy Nuttall", [298] = " ", [299] = " ", [300] = " ", [301] = ":�作", [302] = ",", [303] = "Steve Fitton", [304] = " ", [305] = " ", [306] = " ", [307] = ":行政", [308] = ",", [309] = "Audrey Adams", [310] = "Annette Dabb", [311] = "Emma Gibbs", [312] = "Lucia Gobbo", [313] = "Jo Goodwin", [314] = "Sian Jones", [315] = "Kathy McEntee", [316] = "Louise Ratcliffe", [317] = " ", [318] = " ", [319] = " ", [320] = ":公�管�", [321] = ",", [322] = "Les Edgar", [323] = "Peter Molyneux", [324] = "David Byrne", [325] = " ", [326] = " ", [327] = ":All at Bullfrog Productions", [328] = " ", [329] = " ", [330] = " ", [331] = ":特別感�", [332] = ",", [333] = "Everyone at Frimley Park Hospital", [334] = " ", [335] = ": 特別是", [336] = ",", [337] = "Beverley Cannell", [338] = "Doug Carlisle", [339] = " ", [340] = " ", [341] = " ", [342] = ":Keep On Thinking", [343] = " ", [344] = " ", [345] = " ", [346] = " ", [347] = " ", [348] = " ", [349] = " ", [350] = " ", [351] = " ", [352] = " ", [353] = " ", [354] = " ", [355] = " ", [356] = " ", [357] = " ", [358] = " ", [359] = " ", [360] = " ", [361] = ".", } pay_rise = { definite_quit = "�論您�什麼都無法留�我了。", regular = { [1] = "我真的太累了。如果您�希望我辭�的話,請讓我好好休�,並增加工資$%d。", [2] = "我真的太累了。我需�休�,以�增加工資$%d。立�答應,你這個暴�。", [3] = "好�。我在這裡工作就�一隻狗一樣。給我�金$%d我就還留在這個醫院裡。", [4] = "我很�快樂。我�求增加工資$%d,使我的工資�到$%d,�則我就�幹了。", [5] = "我的父�告訴我醫學專家的待�是很高的。因此,請給我加薪$%d,�則我將辭�去�電腦�戲。", [6] = "我已經�夠了。請調整我的工資到��程度。我希望加薪$%d。", }, poached = "%s答應給我工資%d。如果您無法�到這個數目,那麼我就�跳槽了。", } menu_debug = { porter_pagers = " PORTER PAGERS ", object_cells = " OBJECT CELLS ", display_pager = " DISPLAY PAGER ", display_big_cells = " DISPLAY BIG CELLS ", mapwho_checking = " MAPWHO CHECKING ", keep_clear_cells = " KEEP CLEAR CELLS ", machine_pagers = " MACHINE PAGERS ", remove_walls = " REMOVE WALLS ", enter_nav_debug = " ENTER NAV DEBUG ", lose_game_anim = { [1] = " LOSE GAME 1 ANIM ", [2] = " LOSE GAME 2 ANIM ", [3] = " LOSE GAME 3 ANIM ", [4] = " LOSE GAME 4 ANIM ", [5] = " LOSE GAME 5 ANIM ", [6] = " LOSE GAME 6 ANIM ", [7] = " LOSE GAME 7 ANIM ", }, show_nav_cells = " SHOW NAV CELLS ", win_game_anim = " WIN GAME ANIM ", display_room_status = " DISPLAY ROOM STATUS ", remove_objects = " REMOVE OBJECTS ", nav_bits = " NAV BITS ", win_level_anim = " WIN LEVEL ANIM ", pixbuf_cells = " PIXBUF CELLS ", show_help_hotspot = " SHOW HELP HOTSPOTS ", entry_cells = " ENTRY CELLS ", plant_pagers = " PLANT PAGERS ", } progress_report = { quite_unhappy = "人們有點�高興。", header = "進展報告", very_unhappy = "人們感到�常�高興。", more_drinks_machines = "多擺放一些飲料販賣機。", too_cold = "太冷了。多擺放一些暖氣。", too_hot = "調節供熱系統。太熱了。", percentage_pop = "% 人�", win_criteria = "�利�件", } menu_options = { game_speed = " �戲速度", sound_vol = " 音效音�", music_vol = " 音樂音�", announcements = " (%1%) 語音", sound = " (%1%) 音效", announcements_vol = " 語音音�", music = " (%1%) 音樂", autosave = " 自動儲存", jukebox = " (%1%) 音樂盒", } menu_options_game_speed = { normal = " (%1%) 正常", slower = " (%1%) 較慢", max_speed = " (%1%) 快速", slowest = " (%1%) �常慢", and_then_some_more = " (%1%) 極快", } rooms_short = { ultrascan = "超級掃瞄儀", research_room = "研究部門", fracture_clinic = "骨折診所", gps_office = "一般診斷室", destroyed = "已毀壞", staffroom = "員工休�室", jelly_vat = "膠桶診所", scanner = "掃�儀", decontamination = "淨化設備", pharmacy = "藥房", cardiogram = "心電圖儀", reception = "�務�", training_room = "培訓室", corridor_objects = "走廊物�", operating_theatre = "手術中心", dna_fixer = "DNA修復�置", ward = "病房", psychiatric = "精神病診療室", hair_restoration = "毛髮�復機器", general_diag = "高級診斷室", inflation = "充氣機", tongue_clinic = "舌頭治療機", toilets = "洗手間", electrolysis = "電分解診所", x_ray = "X光儀器", blood_machine = "血液機器", } level_names = { [1] = "毒氣城", [2] = "��城", [3] = "大柴斯特城", [4] = "�來明頓城", [5] = "新普頓城", [6] = "世界之窗", [7] = "綠池城", [8] = "曼葵城", [9] = "�斯特�爾", [10] = "愛格森海姆城", [11] = "蛙鳴城", [12] = "巴登堡", [13] = "查姆雷城", [14] = "�爪檳城", [15] = "葬禮城", } insurance_companies = { [1] = "天�絨有�公�", [2] = "諾�克洋蔥公�", [3] = "雙峰公�", [4] = "刀疤有�公�", [5] = "潛水艇有�公�", [6] = "誠實的泰瑞公�", [7] = "矮胖先生股份有�公�", [8] = "裡昂貓公�", [9] = "普裡邦有�公�", [10] = "快樂�險公�", [11] = "辛迪加�險公�", out_of_business = "無", } staff_descriptions = { good = { [1] = "手腳勤快並努力的員工。", [2] = "很有責任心。�常細心。", [3] = "掌�了很多技術。", [4] = "很�善並愛笑。", [5] = "富有活力。", [6] = "很有禮貌並和藹�親。", [7] = "富有�幹和能力。", [8] = "工作能力極強。", [9] = "�志堅強。", [10] = "微笑著為病人�務。", [11] = "迷人的,有禮貌的並愛幫助別人。", [12] = "專注於工作。", [13] = "本性善良,工作努力。", [14] = "忠實且待人�善。", [15] = "細心並能夠�立處�緊急事件。", }, misc = { [1] = "打高爾夫�。", [2] = "潛水�動。", [3] = "冰雕。", [4] = "�葡�酒。", [5] = "拉力車賽。", [6] = "蹦跳。", [7] = "收集啤酒蓋�。", [8] = "喜歡跳水。", [9] = "喜歡�浪�動。", [10] = "喜歡游泳。", [11] = "蒸餾�士忌酒。", [12] = "DIY專家。", [13] = "喜歡欣賞法國電影。", [14] = "玩地下城守護者�戲。", [15] = "�有HGV執照。", [16] = "摩托車比賽。", [17] = "彈��典��。", [18] = "訓練營救員。", [19] = "喜歡養狗。", [20] = "�收音機。", [21] = "經常洗澡。", [22] = "工作指導。", [23] = "種�蔬�。", [24] = "義務巡警。", [25] = "展覽。", [26] = "收集二次大戰武器。", [27] = "�新擺設家具。", [28] = "�刺激音樂。", [29] = "殺蟲。", [30] = "喜劇演員。", [31] = "議會調查人員。", [32] = "園�家。", [33] = "走��手錶。", [34] = "唱歌。", [35] = "喜歡日間電視。", [36] = "喜歡魚。", [37] = "�觀光者介紹�物館。", }, bad = { [1] = "動作緩慢,且愛煩惱。", [2] = "懶惰。", [3] = "培訓很少且沒有精神。", [4] = "待人粗魯。", [5] = "態度惡劣。", [6] = "耳�。且身上有一股�心�的味�。", [7] = "�用心工作。", [8] = "魯莽而且容易犯錯誤。", [9] = "容易犯錯誤。", [10] = "心�變態。", [11] = "粗心大�。", [12] = "懶散。", [13] = "愚蠢。", [14] = "狡猾且有破壞欲。", [15] = "傲慢自大。", }, } room_classes = { diagnosis = "診斷室", clinics = "診所", facilities = "附屬設施", treatment = "治療室", } place_objects_window = { pick_up_object = "點擊物��以將其拾起,也�以�擇��的�項", place_objects_in_corridor = "將物�放在走廊上", place_windows = "請設置一些窗戶,點擊滑鼠表示確定", confirm_or_buy_objects = "您�以確�該房間,或買入或移動其中的一些物�", drag_blueprint = "拉伸�圖直到您滿�的尺寸", place_door = "設置房門", place_objects = "�以設置並移動這些物�直到滿�為止,隨後�確定", } newspaper = { [1] = { [1] = "醫生震驚四座", [2] = "這醫生扮演玩弄上�", [3] = "科學狂人的震撼", [4] = "實驗室地�上擺放著什麼?", [5] = "查�一項�險的研究", }, [2] = { [1] = "酗酒", [2] = "外科醫生酒醉", [3] = "挑剔的顧�", [4] = "外科醫生的酒�", [5] = "外科醫生狂飲失態", [6] = "外科醫生的�魂", }, [3] = { [1] = "粗魯的醫生", [2] = "醫生臭���", [3] = "醫生完了", [4] = "貪得無厭的醫生", }, [4] = { [1] = "篡改數據", [2] = "器官買賣犯罪", [3] = "銀行�機", [4] = "調查基金數據", }, [5] = { [1] = "醫學工作者盜墓", [2] = "醫生盜墓", [3] = "醫生盜墓,人贓並�", [4] = "醫生死期��了", [5] = "超級瀆�", [6] = "醫生盜墓", }, [6] = { [1] = "醫生?庸醫�", [2] = "庸醫露出馬腳了", [3] = "令人詛咒的診斷", [4] = "笨蛋專家", }, [7] = { [1] = "醫生真情放縱", [2] = "醫生自我“手術�", [3] = "醫生完了", [4] = "醫生大醜�", [5] = "醫生�得一團糟", }, } staff_title = { junior = "實習醫生", psychiatrist = "精神病醫生", consultant = "專家", surgeon = "外科醫生", doctor = "醫生", researcher = "研究員", nurse = "護士", receptionist = "接待員", general = "普通人", } graphs = { deaths = "死亡", money_in = "收入", money_out = "支出", visitors = "造訪者", wages = "工資", balance = "�金", time_spans = { [1] = "1 年", [2] = "12 年", [3] = "48 年", }, cures = "治癒", reputation = "�望", } adviser = { room_forbidden_non_reachable_parts = "在這個地方放置房間會導致醫院的部分空間無法到�。", tutorial = { hire_receptionist = "您也需�一�接待員來接待病人。", build_pharmacy = "�喜��在應建造一個藥房並僱用一�護士,使醫院正常�轉。", hire_doctor = "您需�一個醫生來診斷和治療病人。", place_receptionist = "移動接待員並將她放到任��置。她將很�明地自己走到�務�。", place_windows = "設置窗戶的方法與設置房門的方法相�。您�以�需�窗戶,但是當您的員工�以從窗戶�外張望時,他們將感到快樂。", confirm_room = "左�單擊閃動圖標就�以開業了,也�以通�點擊交�按鈕返回上一步。", rotate_and_place_reception = "點擊滑鼠���以旋轉桌�,並用滑鼠左�將其放在醫院中���置。", build_reception = "你好。首先,您的醫院需�一個�務�,您�以從佈置走廊�單中��。", doctor_in_invalid_position = "嘿�您�能將醫生放在那裡。", start_tutorial = "閱讀任務簡報,隨後點擊滑鼠左�就�以啟動教程。", receptionist_invalid_position = "您�能將接待員放在那裡。", room_too_small_and_invalid = "�圖尺寸太�了且處於�法�置。", window_in_invalid_position = "該窗�處於�法�置。請嘗試�圖牆�上的其他�置。", choose_doctor = "在�擇醫生之�,應�點考慮其能力。", information_window = "�助視窗將告訴您剛剛建造的一般診斷室資訊。", build_gps_office = "您必須建造一般診斷室��以診斷病人。", select_doctors = "點擊閃動的圖標挑��被僱用的醫生。", select_diagnosis_rooms = "點擊閃動的圖標將彈出診斷類房間列表。", select_receptionists = "使用滑鼠左�單擊閃動的圖標來查看當���擇的接待員。圖標下方的數字表示共有多少個接待員�供�擇。", order_one_reception = "使用滑鼠左�單擊閃動的光�,�以訂購一個�務�。", choose_receptionist = "判斷哪一個接待員�有好的能力與��的工資,�按左�單擊閃動的圖標來僱用她。", prev_receptionist = "左�單擊閃動的圖標將�以�覽到�一個�供�擇的接待員。", accept_purchase = "點擊閃動的圖標表示購買。", place_door = "沿�圖牆�移動滑鼠,尋找放置房門的���置。", click_and_drag_to_build = "建造一般診斷室時應先決定具體的尺寸。點擊並按�滑鼠左��以設置房間尺寸。", room_in_invalid_position = "該�圖是�法的,紅色�域表示�圖與其他房間或牆��疊。", place_objects = "�擊�以旋轉房屋中的�種物�,�左擊表示確�。", room_too_small = "該房間的�圖為紅色是因為其尺寸太�了。通�拖動使其尺寸增大。", click_gps_office = "點擊閃動圖標表示�擇一般診斷室。", reception_invalid_position = "如果�務�是�色的,則表示當��置是�法的。應嘗試移動或旋轉它。", next_receptionist = "這是接待員列表中的第一個。左�單擊閃動的圖標�以�覽下一個�供�用的接待員。", room_big_enough = "�圖尺寸已經足夠大了。當您鬆開滑鼠按�表示確�。如果需�的話,以後還�以根據需�移動或改變其尺寸。", object_in_invalid_position = "該物�當��置�法。請�麼將其放到其他�置,�麼�其進行旋轉。", door_in_invalid_position = "房門設置�置�法。請嘗試�圖牆�上的其他�置。", place_doctor = "將醫生放在醫院中的任��置。他將直奔一般診斷室,為病人診斷。", }, epidemic = { hurry_up = "如果無法立�控制傳染病那麼您的醫院將出大亂�。加油�", serious_warning = "傳染病疫情越來越嚴�。您必須立�行動�", multiple_epidemies = "看來醫院裡�時有��一種傳染病。這將是一場空��難,加油�", }, staff_advice = { need_handyman_machines = "如果希望維護醫院內的�種醫療機器,則需�僱用清潔工人。", need_doctors = "您需�更多的醫生。請將最得力的醫生放在排隊等候人數最多的房間內。", need_handyman_plants = "您需�僱用一�清潔工人來為盆栽澆水。", need_handyman_litter = "醫院中出�了垃圾。請僱用一個清潔工人打掃垃圾。", need_nurses = "您需�僱用更多的護士。病房和藥房都需�護士。", too_many_doctors = "您僱用的醫生太多了。其中有一些人�在正閑。", too_many_nurses = "我�為您�在僱用了太多的護士。", }, earthquake = { damage = "地震�壞了醫院中%d�機器,並使%d個人�傷。", alert = "地震警報。在地震�程中,醫院中的機器將��。如果它們沒有得到�時維護將徹底毀壞。", ended = "我�為這是一個大傢伙�按照芮�標準為%d。", }, multiplayer = { objective_completed = "您已經完�任務了。�喜�", everyone_failed = "�個人都沒有完�最終目標。因此�個人都�繼續努力�", players_failed = "以下的玩家沒有完�最終目標:", poaching = { in_progress = "我將讓您瞭解這個人是�願�為您工作。", not_interested = "哈哈�他們�為您工作�感興趣�他們希望找尋自我價值。", already_poached_by_someone = "別想�有人想�挖走這個人。", }, objective_failed = "任務失敗。", }, surgery_requirements = { need_surgeons_ward_op = "您需�僱用兩�外科醫生,並修建一個病房和手術中心,這樣��以完�外科手術。", need_surgeon_ward = "為了完�外科手術,您還需�僱用一�外科醫生,以�修建一個病房。", }, vomit_wave = { started = "請趕快處�醫院中的嘔�物,�則嘔��象會四處傳播。也許您需�多僱用幾個清潔工人。", ended = "嗨�嘔��象已被控制。今後一定���醫院的清潔。", }, level_progress = { halfway_lost = "您�離失敗還差一�。", dont_kill_more_patients = "您實際上無力支付太多的醫療事故賠款�", another_patient_killed = "哦,��您已經殺死了一個病人。這已經是第%d個了。", halfway_won = "您�離�利還差一�。", close_to_win_increase_value = "您�離�利�有一步之�了。�增加醫院價值%d。", financial_criteria_met = "您已經完�了本任務�求�到的財政目標。�在請���金在%d以上,使我們確信您的醫院�行良好。", nearly_won = "您已經�離�利�常接近了。", hospital_value_enough = "��醫院價值在%d以上,並解決好其他�題,就能�利完�任務了。", another_patient_cured = "幹得好�治癒了一個病人。收入$%d。", three_quarters_lost = "您�離失敗還差四分之三。", reputation_good_enough = "好的,您的�望已經�到任務�求了。��在%d以上,並解決好其他方�的�題。", cured_enough_patients = "您已經治癒了足夠多的病人,但是您�有�到更高的標準�能�利完�任務。", nearly_lost = "您�離失敗�有一步之�了。", improve_reputation = "您需��高�望%d,這樣�能有機會完�任務。", three_quarters_won = "您�離�利還差四分之三。", }, staff_place_advice = { receptionists_only_at_desk = "接待員�能在�務�工作。", only_psychiatrists = "�有具有精神病治療技能的醫生��以在精神病診斷治療室中工作。", only_surgeons = "�有�有外科技能的醫生��以在手術中心工作。", only_nurses_in_room = "�有護士�以在%s中工作", only_doctors_in_room = "�有醫生�以在%s中工作", only_researchers = "�有�有研究技能的醫生��以在研究部門工作。", nurses_cannot_work_in_room = "護士無法在%s中工作", doctors_cannot_work_in_room = "醫生無法在%s中工作", not_enough_lecture_chairs = "��醫生學員需�一個教室座�", }, research = { machine_improved = "%s的療效被您的研究部門增強了。", autopsy_discovered_rep_loss = "您的自動驗�機已經研製�功。�公眾將產生副作用。", drug_fully_researched = "您已經研究%s到�100%%了。", new_machine_researched = "一個新的%s剛剛被�功研究出來。", drug_improved = "治療%s的藥�被您的研究部門改良了。", drug_improved_1 = "治療%s的藥�被您的研究部門改良了。", new_available = "一種新的%s�以使用了。", new_drug_researched = "治療%s的一種新藥被研究�功。", }, boiler_issue = { minimum_heat = "噢,終於找到您了。��壞了。也就是說醫院裡的人將感到有點冷。", maximum_heat = "��快失控了。暖氣的供暖能力已經�到極�了。醫院裡的人都快被熔化了�多設置一些飲料販賣機。", resolved = "好消�。��和暖氣�在工作正常。氣溫很快就�以�復到正常水準。", }, competitors = { staff_poached = "您的一�員工被其他醫院挖走了。", hospital_opened = "競爭�手%s的醫院在本�域內已經開張了。", land_purchased = "%s已經購買了一些土地。", }, room_requirements = { research_room_need_researcher = "您需�為研究室僱用一個�有研究技巧的醫生。", op_need_another_surgeon = "您至少還需�為手術中心僱用一�外科醫生。", op_need_ward = "您必須為外科手術�的患者建造病房。", reception_need_receptionist = "您必須為病人僱用一�接待員。", psychiatry_need_psychiatrist = "您需�僱用一�精神病醫生,�在您已經建�了一個精神病診斷治療室。", pharmacy_need_nurse = "您應該為藥房僱用一�護士。", ward_need_nurse = "您需�為病房僱用一�護士。", op_need_two_surgeons = "請為手術中心僱用兩�外科醫生完�手術。", training_room_need_consultant = "您應該為培訓室僱用一�專家,負責演講。", gps_office_need_doctor = "您需�為一般診斷室僱用一�醫生。", }, goals = { win = { money = "您還需�%d�能完�本關中的財政指標。", cure = "�治癒%d個病人您就�以滿足本關任務的�求了。", reputation = "�高�望%d將�到�利完�本任務的�求", value = "您需�增加醫院收入到$%d", }, lose = { kill = "�殺死%d個病人將導致本任務失敗�", }, }, warnings = { charges_too_low = "治療費用太低了。它將使更多的病人到醫院就診,但您無法從�個病人身上��太多的利潤。", charges_too_high = "治療費用太高了。短期內它將產生很好的效益,但最終會把病人嚇跑的。", staff_overworked = "您的員工已經勞累�度。他們的辦事效率正在下�,並將有�能發生醫療事故。", doctor_crazy_overwork = "喔,��您的一�醫生已經由於勞累�度快�發狂了。如果能夠立�讓他休�,他將得到�復。", doctors_tired = "您的醫生太累了。立�讓他們休�。", people_did_it_on_the_floor = "您的一些病人堅���了。趕快打掃乾淨。", queues_too_long = "隊�太長了。", money_very_low_take_loan = "您的�金�太少了。您�以嘗試貸款。", patients_very_thirsty = "人們感到太�渴了。如果您�立�設置一些飲料販賣機,則將看到大多數人回家去��樂。", machinery_very_damaged = "緊急�立�派清潔工去修�機器�它們�爆炸了�", handymen_tired2 = "您的清潔工太疲倦了。立�讓他們休�。", desperate_need_for_watering = "您需�僱用一�清潔工照料醫院中的盆栽。", nurses_tired = "您的護士感到疲倦了。立�讓她們休�。", too_much_litter = "醫院中的廢棄物�斷增多。派幾個清潔工人就�以解決。", reception_bottleneck = "�務�已無法滿足需�。�僱用一�接待員。", place_plants4 = "在醫院中多擺放一些盆栽使所有病人感到快樂。", change_priorities_to_plants = "您必須改變清潔工的工作優先級,使他們更多地為盆栽澆水。", staff_too_hot = "您的工作人員感到太熱了。請調低供熱標準或拆除房間內的暖氣。", finanical_trouble2 = "多增加一些收入。如果�虧�$%d任務就會失敗。", plants_thirsty = "您需��盆栽進行照料。它們正感到�渴。", litter_everywhere = "醫院中的廢棄物到處都是。多派幾個清潔工人就�以解決。", nurses_tired2 = "您的護士太疲倦了。立�讓她們休�。", plants_dying = "您的盆栽快幹死了。它們需�水。多為盆栽派些清潔工。病人��願�看到枯死的盆栽。", reduce_staff_rest_threshold = "嘗試在醫院制度畫�中減少員工休�時的疲勞程度,這樣員工將經常休�。這�是一個主�。", more_toilets = "您需�更多的馬桶。人們都已急��待了。", hospital_is_rubbish = "人們在到處宣�您的醫院是垃圾。�知�您的醫院很快就會臭���。", pay_back_loan = "您已經掙到了很多錢。為什麼�考慮償還貸款?", financial_trouble3 = "您的�金狀��太妙。想辦法增加一些收入。您�離失敗還差$%d。", bankruptcy_imminent = "嗨�您快破產了。�心啊�", build_toilet_now = "立�建造洗手間。人們已經�無��了。別傻笑,這�是一個嚴��題。", patient_stuck = "有人被��了,更好地�劃您的醫院。", no_patients_last_month = "上個月,沒有新的病人�來您的醫院。太�怕了�", more_benches = "是�考慮多擺放一些長椅。一些病情嚴�的病人�在正被迫站著等待治療。", many_epidemics = "看來醫院裡�時有��一種傳染病。這將是一場空��難,加油�", place_plants_to_keep_people = "人們正在離開。多擺放一些盆栽�以挽留他們。", patients_thirsty2 = "人們抱怨�渴。您應該在醫院中多設置一些飲料販賣機,或將已有的飲料販賣機移動到他們身邊。", money_low = "", staff_unhappy = "您的工作人員�是很快樂。�以嘗試給他們一些�金,或為他們建造一個員工休�室。您也�以在醫院制度畫�中調整員工需�休�時的疲勞程度。", people_freezing = "無法相信,在這個�有中央空調的時代,您的一些病人竟然快被�僵了。趕快擺放一些暖氣並打開供暖開關使他們感到溫暖。", need_toilets = "病人需�洗手間。請在一些易找的地方建造洗手間。", nobody_cured_last_month = "上個月幾乎沒有治癒一個病人。", patients_very_cold = "病人們感到太冷了。請增加醫院的供熱,或在醫院中多擺放一些暖氣。", build_toilets = "立�建造一個洗手間,�則您將看到�常�雅的事情發生。想�一下醫院中將會出�的味�。", another_desk = "新僱用的接待員需�新增一個�務�", many_killed = "您已經殺死了%d個病人。您本來應該治癒他們的病。", place_plants2 = "人們正在離開。多擺放一些盆栽�以使他們多�留一會兒。", staff_tired = "您的員工感到太疲倦了。如果您��讓他們到員工休�室休�一會兒,則�些人會由於長時間的緊張疲勞導致崩潰。", machines_falling_apart = "您的機器快爆炸了。請立�讓清潔工進行維修�", patients_unhappy = "病人�喜歡您的醫院。您必須為�高環境質��一些事情。", place_plants3 = "人們的情緒很糟。多擺放一些盆栽使他們快樂。", staff_unhappy2 = "您的員工都�是很快樂。很快他們就會�求發�金。", cash_low_consider_loan = "您的�動資金狀��分�妙。是�考慮貸款?", queue_too_long_at_reception = "在�務��排隊等待的病人太多了。請�建一個�務�並僱用一�接待員。", queue_too_long_send_doctor = "您的%s隊�太長了。請確�房間中是�有醫生。", financial_trouble = "您正�臨著嚴�的財政�機。立�整�帳戶�如果您�虧�$%d,本關任務將失敗。", doctors_tired2 = "您的醫生太疲倦了。立�讓他們休�。", handymen_tired = "您的清潔工人太勞累了。立�讓他們休�。", patient_leaving = "一個病人離開了。原因?醫院管��善,員工工作�力,�加上設施�全。", machinery_damaged2 = "您必須立�僱用一�清潔工去負責修�維護機器。", patients_leaving = "病人們正在離去。在醫院中多擺放一些盆栽,長椅,飲料販賣機等物�將有助於挽留他們。", epidemic_getting_serious = "傳染病疫情越來越嚴�。您必須立�行動�", machinery_damaged = "立�修�您的機器。它們無法支�太久。", people_have_to_stand = "病人�得�站立等待。立�多擺放一些長椅。", receptionists_tired = "您的接待員太疲勞了。立�讓她們休�。", build_staffroom = "立�建造一個員工休�室。您的員工工作太辛苦了,而且將�精神崩潰了。快點�", machinery_slightly_damaged = "您的醫療儀器有輕微�傷。別忘了維護。", need_staffroom = "建造一個員工休�室使您的員工得以休�。", patients_getting_hot = "病人們感到太熱了。請�低醫院的供熱,或移走一些暖氣。", machinery_deteriorating = "您的機器由於�度使用已經出��化�象。�心。", patients_too_hot = "病人們感到太熱了。�麼拆除一些暖氣,調低供熱標準,�麼為他們多設置一些飲料販賣機。", patients_thirsty = "人們感到�渴。也許您應該�他們�供飲料販賣機。", machine_severely_damaged = "%s已經快徹底毀壞了。", litter_catastrophy = "醫院中的廢棄物太多了。立�派一隊清潔工人解決這個�題。", staff_very_cold = "員工們感覺太冷了。請增加醫院的供熱,或在醫院中多擺放一些暖氣。", deal_with_epidemic_now = "如果無法立�控制傳染病那麼您的醫院將出大亂�。加油�", too_many_plants = "您已經佈置了足夠多的盆栽了。醫院都快變��林了。", patients_really_thirsty = "病人們感到�渴。多放置一些飲料販賣機,或將已有的飲料販賣機移動到最長的隊��邊。", some_litter = "清潔工人�以在垃圾�堆之�清除所有垃圾。", patients_annoyed = "人們�醫院的管�感到極端憤怒。我�能責備他們,抓緊時間解決�題��", receptionists_tired2 = "您的接待員太疲倦了。立�讓她們休�。", no_desk = "你總得有個�務���", no_desk_1 = "你得有個�務�,這樣�會有病人來�", no_desk_2 = "乾的�錯,基本上也是個世界紀錄了�:快一年了,一個病人都沒有�如果你想繼續當這個經�的話,你需�去僱一個接待員,然後給她一張�務�工作�", no_desk_3 = "你真是個天�,一年了連個�務�都沒有�你怎麼�能有任何的病人來?趕緊給我�定,別在那裡�務正業了�", no_desk_4 = "�務�需�一�接待員來接待來訪的病人", no_desk_5 = "行了,接下來就是時間�題,應該很快就會有病人來�", no_desk_6 = "你已經僱了一�接待員,���給她建個�務�?", no_desk_7 = "你已經建了一個�務�,���僱一�接待員?除�解決這個�題,�則�會有病人來�", cannot_afford = "你沒有足夠的存款來僱這個人�", -- I can't see anything like this in the original strings cannot_afford_2 = "你沒有足夠的存款來�這件事�", falling_1 = "嘿�別開玩笑了,看看你都是怎麼點滑鼠的,你�能會傷到人�", falling_2 = "���胡�了,跟有病似的?", falling_3 = "啊~有人�傷了,趕緊�醫生�", falling_4 = "這裡是醫院,�是主題公園�", falling_5 = "這裡���逗人玩,他們是病人好嗎?", falling_6 = "這裡�是�齡�館,應該�待病人如春天般溫暖�", research_screen_open_1 = "你需�建設一個研究科室�能訪�研究��。", research_screen_open_2 = "這一關�能開展研究。", researcher_needs_desk_1 = "研究員需�一張桌�展開工作。", researcher_needs_desk_2 = "你的研究員�你�許他休�片刻表示感�,但如果你想讓�個人都工作,你需�給�個人一張桌�。", researcher_needs_desk_3 = "�個研究院需�自己的桌�。", nurse_needs_desk_1 = "�個護士都需�自己的桌�。", nurse_needs_desk_2 = "你的護士�你�許他休�片刻表示感�,但如果你想讓�個人都工作,你需�給�個人一張桌�。", low_prices = "%s的收費太低了。雖然來的人很多,但你賺�到什麼錢。", high_prices = "%s的收費太貴了。雖然短期內能�得�觀的利潤,但最終沒人會願�來。", fair_prices = "%s的收費看起來很��。", patient_not_paying = "病人沒有支付%s的醫藥費,因為太貴�", }, placement_info = { door_can_place = "如果您願�的話�以在這裡設置房門。", window_can_place = "你�以在這裡設置窗戶,這樣很好。", door_cannot_place = "抱歉,您無法在這裡設置房門。", object_can_place = "您�以在這裡擺放物�。", reception_can_place = "您�以在這裡放置�務�。", staff_cannot_place = "您無法在這裡安置員工。��起。", staff_can_place = "您�以在這裡安置員工。", object_cannot_place = "嗨,您無法在這裡擺放物�。", room_cannot_place = "您無法在這裡建房。", room_cannot_place_2 = "您無法在這裡建房。", window_cannot_place = "您實際上無法在這裡設置窗戶。", reception_cannot_place = "您無法在這裡放置�務�", }, praise = { many_benches = "病人�有足夠的座�。太棒了。", many_plants = "太�愛了。您已經佈置了足夠的盆栽。病人將感到滿�。", plants_are_well = "太棒了。盆栽被照料得很好。", few_have_to_stand = "在您的醫院中幾乎�個人都有座�。所有的病人都感到快樂。", plenty_of_benches = "座椅已經足夠了。", plants_thriving = "太棒了。醫院中的盆栽生長得很茂盛。它們看起來令人感到驚奇。堅��,您將有�能�得一個大�。", patients_cured = "已經治癒了%d個病人。", }, information = { larger_rooms = "大的房間將使員工感覺到自己的��,並�高他們的表�。", extra_items = "房間中擺放物�將使員工感到舒�並�高他們的表�。", epidemic = "在您的醫院中發�了一種傳染病。您必須立�處��", promotion_to_doctor = "您的一個實習醫生��為醫生了。", emergency = "緊急情��快�快�快�", patient_abducted = "您的一�病人被外星人誘�了。", first_cure = "幹得好�您已經治癒了第一個病人。", promotion_to_consultant = "您的一�醫生已經��為專家了。", handyman_adjust = "您�以通�調整清潔工人工作的優先級使其打掃得更乾淨。", promotion_to_specialist = "您的一個醫生被��為%s。", initial_general_advice = { rats_have_arrived = "�鼠在您的醫院中到處亂跑。使用滑鼠打死它們。", autopsy_available = "自動驗�機被研製出來了。藉著它,您�以處置惹麻煩或�歡迎的病人,還�以�他們進行研究。�注��能�使用該機器還有很大的爭議。", first_patients_thirsty = "醫院中的人們感到�渴。為他們多擺放一些飲料販賣機。", research_now_available = "您已經建造了第一個研究房間。�在您�以進入研究畫�。", psychiatric_symbol = "�有精神病技能的醫生後跟符號:|", decrease_heating = "醫院中的人們感到太熱了。在城鎮地圖畫�中,�低供熱�。", surgeon_symbol = "�有外科手術技能的醫生後跟符號:{", first_emergency = "急救病人的頭頂有一個閃亮的�色急救燈。在死亡之�或時間倒數��之�治癒他們。", first_epidemic = "在醫院中爆發了傳染病請決定是掩蓋病情還是將其清除出去。", taking_your_staff = "有人想�挖走您的員工。您�抓緊與他們進行鬥爭。", place_radiators = "醫院中的人們感到寒冷�您�以多擺放一些暖氣。", epidemic_spreading = "您的醫院中發�傳染病。在病人離開醫院之�一定�治癒他們。", research_symbol = "�有研究技能的醫生後跟符號:}", machine_needs_repair = "您有一�機器需�維修。確定機器�置�它�能正在冒煙�在機器上點擊一下,�點擊清潔工人按鈕。", increase_heating = "人們感到寒冷。打開城鎮地圖畫�中的供暖設施。", first_VIP = "您�接待來訪的第一�貴賓。一定�確�貴賓沒有看到任何�良事件,或其他�高興的病人。", }, patient_leaving_too_expensive = "一�病人沒有為%s付款就離開了。這�失太大了。", vip_arrived = "�心�%s正準備訪�您的醫院���醫院�轉正常,這樣�能使他感到愉快。", epidemic_health_inspector = "您的醫院中出�傳染病的消�已經到�了衛生署。衛生巡查員很快就�到�,快�準備。", first_death = "這是您第一次殺死病人。感覺如何?", pay_rise = "您的一個員工�脅�辭�。�擇是���其請求,或將其解僱。點擊�幕左下方的圖標�以查看�脅�辭�的員工資訊。", place_windows = "設置窗戶將使房間更加明亮,並振奮員工的精神。", fax_received = "在�幕左下角剛剛彈出的圖標表示一些��事件的相關資訊,或�些需�您決定的事情。", }, cheats = { th_cheat = "�喜,你解鎖了作弊�項�", roujin_on_cheat = "Roujin's challenge 已經開啟��你好�...", roujin_off_cheat = "Roujin's challenge 關閉,一切將會回復正常。", norest_on_cheat = "哇喔�似乎咖啡因使你的員工�分興奮,永��用休�。", norest_off_cheat = "呼~精神亢奮劑的效力�去了,員工�在�復正常作�", }, build_advice = { placing_object_blocks_door = "設置該物��以阻止其他人接近。", blueprint_would_block = "�圖與其他房間�疊了。請嘗試�新設置�圖尺寸,或移動�圖�置。", door_not_reachable = "病人無法進入那扇門。仔細想一想。", blueprint_invalid = "�圖�置��。", }, } casebook = { sent_home = "��回家", deaths = "死亡", treatment_charge = "治療花費", reputation = "�望", research = "集中研究", cure = "治療", cured = "治癒", earned_money = "收入", cure_desc = { hire_psychiatrists = "您需�僱用一些精神病醫生。", improve_cure = "�高療效。", hire_nurses = "您需�僱用一些護士。", build_ward = "您�需�建造一個病房。", no_cure_known = "未治癒。", cure_known = "治癒。", build_room = "我建議您修建%s", hire_doctors = "您需�僱用一些醫生。", hire_surgeons = "您需�僱用一些外科醫生。", }, } diseases = { diag_ward = { name = "病房診斷", }, diag_ultrascan = { name = "超級掃瞄儀診斷", }, autopsy = { name = "驗�", }, third_degree_sideburns = { cause = "病因�嚮往20世紀70年代。", cure = "治療�精神病醫生必須使用最新科技,使病人�識到這些奇�異�都是垃圾。", name = "絡腮��", symptoms = "症狀�長頭髮,全身閃閃發光。", }, discrete_itching = { cause = "病因�昆蟲�咬。", cure = "治療�病人�下膠狀糖漿阻止皮膚發癢。", name = "�癢症", symptoms = "症狀�到處亂抓,引起全身發炎。", }, the_squits = { cause = "病因��了變質的比薩餅。", cure = "治療��用粘性藥劑修補病人的內臟。", name = "嘔�", symptoms = "症狀�噢。想必您也�以猜得到。", }, spare_ribs = { cause = "病因��在冰冷的石地�上。", cure = "治療�由兩�外科醫生執行手術。", name = "瘦骨", symptoms = "症狀�胸部感覺��。", }, diag_blood_machine = { name = "血液機器診斷", }, king_complex = { cause = "病因�貓王的�想進入病人大腦並�而代之。", cure = "治療�由精神病醫生告訴病人其�謬的舉止。", name = "貓王症侯群", symptoms = "症狀�穿著舉止怪異。", }, diag_x_ray = { name = "X光診斷", }, pregnancy = { cause = "病因�懷孕。", cure = "治療�在手術中心中將嬰兒�出,洗淨�到病人��。", name = "產婦", symptoms = "症狀��斷增大的啤酒肚。", }, fake_blood = { cause = "病因�病人常常開玩笑。", cure = "治療��有精神病醫生�能使病人安�下來。", name = "�血", symptoms = "症狀��出紅色液體。", }, diag_psych = { name = "精神病診斷", }, invisibility = { cause = "病因�被有放射性的螞蟻�咬。", cure = "治療�在藥房�下彩色液體,將很快使病人�復正常。", name = "隱身", symptoms = "症狀�病人本身感覺�到任何��,並常常和家裡人開玩笑。", }, golf_stones = { cause = "病因��入了高爾夫�內部的有毒氣體。", cure = "治療�由兩�外科醫生執行手術。", name = "高爾夫症", symptoms = "症狀�神經錯亂且胡言亂語。", }, diag_general_diag = { name = "一般診斷", }, infectious_laughter = { cause = "病因�觀看�典喜劇。", cure = "治療�精神病醫生必須讓病人瞭解其當�嚴�的病情。", name = "狂笑症", symptoms = "症狀���狂笑。", }, general_practice = { name = "一般診斷", }, baldness = { cause = "病因��公眾說謊話。", cure = "治療�使用儀器將頭髮縫�到病人的頭上。", name = "禿頂", symptoms = "症狀�腦門發亮,�分困窘。", }, heaped_piles = { cause = "病因�站立在水冷�器�邊。", cure = "治療��用藥劑。", name = "痔瘡", symptoms = "症狀�病人感覺就��在大�石上。", }, unexpected_swelling = { cause = "病因��外事件。", cure = "治療�由兩�外科醫生實行手術。", name = "腫脹", symptoms = "症狀�腫脹。", }, jellyitis = { cause = "病因�日常飲食�有�多的膠狀物並完�太多的練習。", cure = "治療�將病人浸入到膠桶中。", name = "失衡症", symptoms = "症狀�走路��晃晃並�時摔倒。", }, hairyitis = { cause = "病因�在月光下�留�長時間。", cure = "治療�使用電分解機器去掉毛髮並填補�留的毛孔。", name = "多毛症", symptoms = "症狀�嗅覺特別��。", }, alien_dna = { cause = "病因��有了外星人的DNA。", cure = "治療�利用儀器快速清除病人體內的DNA。", name = "外星人DNA", symptoms = "症狀��漸蛻變�外星人並陰謀摧毀我們的城市。", }, bloaty_head = { cause = "病因��到了壞乳酪並�了�乾淨的雨水。", cure = "治療�打破腫脹腦袋,並使用充氣機使腦袋�復正常。", name = "頭部腫脹", symptoms = "症狀��常�舒�。", }, gastric_ejections = { cause = "病因��了�辣的四��。", cure = "治療��用特殊�固劑從而阻止嘔�。", name = "�胃症", symptoms = "症狀��消化的食物被病人�時�出。", }, uncommon_cold = { cause = "病因��進了空氣中的�塵。", cure = "治療��用藥房�製的特效藥。", name = "感冒", symptoms = "症狀��鼻涕,打噴�。", }, corrugated_ankles = { cause = "病因�駕駛時間�長。", cure = "治療��用少�毒�和香料製�的藥劑,從而打通關節。", name = "腳�彎曲", symptoms = "症狀�腳�感覺�舒�。", }, sleeping_illness = { cause = "病因�內分泌失調。", cure = "治療�由護士�置一劑�力強大的興奮劑給病人�用。", name = "嗜�症", symptoms = "症狀�無論走到那裡都想�覺。", }, sweaty_palms = { cause = "病因�害怕找工作時的�試。", cure = "治療�精神病醫生使病人走出心�誤�。", name = "手心出汗症", symptoms = "症狀�當與病人�手時,感覺就�攥著一塊�滿了水的海綿。", }, serious_radiation = { cause = "病因���心錯誤��了�有鈽元素的�香糖。", cure = "治療�病人必須被放置在淨化淋浴器內徹底清洗。", name = "放射病", symptoms = "症狀�病人感到�常�常的�舒�。", }, diag_cardiogram = { name = "心電圖儀診斷", }, diag_scanner = { name = "掃�儀診斷", }, gut_rot = { cause = "病因��了太多的�士忌酒。", cure = "治療�由護士�置藥劑,交給病人�下。", name = "內臟�爛", symptoms = "症狀��咳嗽,但胃�也沒有了。", }, iron_lungs = { cause = "病因�城市中渾�的空氣。", cure = "治療�兩�外科醫生在手術中心執行手術。", name = "�肺", symptoms = "症狀�渾身難�。", }, broken_wind = { cause = "病因�飯後使用�身房的腳�車進行�動。", cure = "治療��用藥房�製的特效藥。", name = "臭�症", symptoms = "症狀�使身後的人感到極度的�舒�。", }, kidney_beans = { cause = "病因�飲料中加入了大�冰塊。", cure = "治療�由兩�外科醫生執行手術。", name = "腎豆", symptoms = "症狀�疼痛且經常去�所。", }, transparency = { cause = "病因�舔了打開的容器的鉛箔上的酸乳酪。", cure = "治療��用藥房�製的特殊清涼彩色沖劑就�以治癒疾病。", name = "�明症", symptoms = "症狀�肌肉變得�明,�光�感。", }, broken_heart = { cause = "病因�一些人比病人富有,年輕,瘦。", cure = "治療�由兩�外科醫生打開病人的胸腔,輕輕地修補其心臟缺陷。", name = "破碎的心", symptoms = "症狀�痛哭�涕。", }, slack_tongue = { cause = "病因��多地討論肥皂劇。", cure = "治療�將舌頭放入舌頭切片機中,將快速有效地得到治療。", name = "舌頭鬆弛症", symptoms = "症狀�舌頭增長到正常的5�。", }, tv_personalities = { cause = "病因�日間電視節目。", cure = "治療�精神病醫生必須使病人有信心賣掉電視機,而購買收音機。", name = "電視病", symptoms = "症狀�產生錯覺,以為自己正在表演。", }, ruptured_nodules = { cause = "病因�在寒冷的季節中跳�。", cure = "治療�兩�稱�的外科醫生必須使用穩定的雙手切除腫瘤。", name = "腫瘤", symptoms = "症狀�無法舒�地�下。", }, fractured_bones = { cause = "病因�從高處摔到混�土地�上。", cure = "治療�將已打好的石�使用儀器去除。", name = "骨折", symptoms = "症狀�劇痛且無法使用四肢。", }, chronic_nosehair = { cause = "病因�經常��如自己的人嗤之以鼻。", cure = "治療���令人厭惡的毛髮去除劑,該藥劑由護士在藥房�製。", name = "鼻毛�多症", symptoms = "症狀�鼻毛�長�多,快�鳥巢了。", }, } policy = { header = "醫院制度", diag_termination = "診斷��", sliders = { guess = "嘗試治療", send_home = "��回家", stop = "�止治療", staff_room = "進入休�室", }, diag_procedure = "診斷程�", staff_rest = "員工休�", staff_leave_rooms = "員工離開房間", } competitor_names = { [1] = "神諭", [2] = "巨人", [3] = "黑爾", [4] = "馬笛維克", [5] = "冬�樹", [6] = "沉�", [7] = "禪", [8] = "里昂", [9] = "瑪文", [10] = "晶體", [11] = "�親", [12] = "潔尼", [13] = "CORSIX", [14] = "ROUJIN", [15] = "EDVIN", [16] = "薩姆", [17] = "查�", [18] = "亞瑟", [19] = "馬格尼斯", [20] = "賽爾", [21] = "約書亞", [22] = "丹尼爾", [23] = "奧利文", [24] = "尼克", } buy_objects_window = { price = "價格:", choose_items = "�擇物�", total = "總共:", } trophy_room = { wait_times = { award = { [1] = "�喜。您的醫院的排隊等待時間�常短。這是給您的�勵。", }, penalty = { [1] = "病人在您的醫院中排隊等待時間太長了。您應該好好地管��來就診的病人。", }, }, happy_vips = { trophies = { [1] = "由於您的醫院在�去一年中給來訪的貴賓們留下了深深地好感,特此�您頒發諾�爾�。", [2] = "由於您的醫院使��造訪貴賓都感到愉快,特此由�人機構頒發著�人士�。您已經�為我們�人行列中的一員。", [3] = "由於您的醫院在�去一年中使�一�來訪貴賓都感到了員工的工作熱情,特此頒發貴賓滿��。", }, }, hosp_value = { penalty = { [1] = "您的醫院價值太低了。您的�財能力太爛了。記�一個好的醫院通常也是價值最高的醫院。", }, awards = { [1] = "由於您的醫院價值��,因此衛生署�您表示�喜。", }, regional = { [1] = "您真是一個�財高手。您的醫院的價值比其他醫院的總和還�多。", }, }, rats_accuracy = { trophies = { [1] = "由於您擊打�鼠的命中率為%d%%,特此頒發極�梟雄射擊準確�。", [2] = "由於您的醫院在�去一年中以難以置信的命中率%d%%擊斃�鼠,特此頒�。", [3] = "由於您的醫院在�去一年中擊斃了%d%%的�鼠,特此頒發地城守護者除害�。�喜�", }, }, all_cured = { awards = { [1] = "由於您的醫院在�去一年中�功地治療了所有病人,特此頒發瑪麗治療�。", }, trophies = { [1] = "由於您的醫院在�去一年中�功地治療了就診的�個病人,國際治療基金會特此�您頒發全部治癒�。", [2] = "由於您的醫院在�去一年中治癒了大�患者,特此頒發疾病剋星�。", }, }, best_value_hosp = { trophies = { [1] = "由於您的醫院在�去一年中�得了最高的�望,特此頒發白衣天使�。這是您應得的。", }, penalty = { [1] = "周��個醫院都比您的醫院富有。您�加油啊。多購買一些昂貴的�西。", }, regional = { [1] = "�喜您管�的醫院�為最有價值的醫院。幹得好。��下去。", }, }, high_rep = { penalty = { [1] = "在�去一年中,您�得了很低的�望。以後一定�加油啊。", [2] = "您的�望是本�域最低的。真丟人。加油。", }, awards = { [1] = "幹得好。在上一個年度,由於您�得了很高的�望,特此頒發一個��的�勵。", [2] = "太棒了! 由於您在�去一年中�得了很高的�望,特此頒發�勵。", }, regional = { [1] = "由於您的醫院在�去一年中�得了最高的�望,特此頒發牛蛙�。這是您應得的。", [2] = "在這一年中,您的醫院的�望超�了其他所有醫院的總和。真是一項�大的�就。", }, }, consistant_rep = { trophies = { [1] = "由於您的醫院在�去一年中無懈�擊的營�以�最高的�望,您被授予內閣大臣�。幹得好。", [2] = "由於您的醫院在�去一年中�得了最高的�望,特此頒發白衣天使�。這是您應得的。", }, }, curesvdeaths = { awards = { [1] = "�喜您在�去一年中使醫院��了很高的治癒率和很低的死亡率。", }, penalty = { [1] = "您的治癒率實在是太低了。您應該使治癒的病人多於死亡的病人。��顛倒了。", }, }, cleanliness = { regional_good = { [1] = "您的醫院是最�清潔的醫院之一。一個�清潔的醫院�僅味�難�,而且是�分�險的。請密切留�。", }, award = { [1] = "衛生巡查員注�到您的醫院�常乾淨。乾淨的醫院�味安全的醫院。堅�下去。", }, regional_bad = { [1] = "您的醫院是本�域中最�清潔的。其他醫院都使走廊��整潔。您使醫學界蒙羞。", }, }, happy_patients = { awards = { [1] = "在�去一年中,您的醫院使所有訪�的病人都感到快樂,您將為此感到驕傲。", [2] = "訪�您的醫院的病人比其他醫院內的病人�快樂得多。", }, penalty = { [1] = "�去您的醫院就診的病人感到�常�滿。您必須改進�高��以�得衛生署的尊�。", [2] = "在您的醫院中接�治療的病人感到�常�高興。您應多為病人的�利著想。", }, }, emergencies = { regional_good = { [1] = "衛生署�識到您的醫院在處�緊急事件時比其他醫院都�好,特此頒發�勵。", }, penalty = { [1] = "您處�緊急事件的能力實在太差了。�來就診的急救病人並沒有得到正確的治療。", }, regional_bad = { [1] = "您的醫院是本�域中處�緊急事件最差的。這都是您的�錯。", }, award = { [1] = "�喜:由於您的努力和�有�效的緊急事件處�能力,使您榮�該特別大�。幹得好。", [2] = "您處�緊急事件的能力�常�出。由於您最佳的處�能力,特此頒發�勵。", }, }, gen_repairs = { awards = { [1] = "由於您的清潔工人使醫院內的儀器設備�行良好,特此頒發特別�金。幹得好。�期愉快。", [2] = "您的清潔工人比其他醫院的都�好。這真是一件值得慶�的事情。", [3] = "您的儀器維護得很好。這一切都離�開清潔工人的努力。幹得好。", }, penalty = { [1] = "您的清潔工人在維護機器方�表��是很好。您應該讓他們更多地關心維護�養工作,或者�多僱用幾�清潔工人。", [2] = "維修工作一團糟。您的清潔工人無法很好的照料�種醫療儀器。", }, }, no_deaths = { trophies = { [1] = "由於您的醫院在�去一年中沒有發生任何病人死亡事件,特此頒發安全�。", [2] = "由於您的醫院在�去一年中沒有發生病人死亡事件,特此由生命發展組織�您頒�。", [3] = "由於您的醫院在�去一年中��發生病人死亡事件,特此頒發挽留妙手回春�。", }, penalty = { [1] = "在�去一年中,您的醫院的死亡人數始終很高。一定�多加注�。以後一定�確�病人的存活。", [2] = "您的醫院�於病人的�康簡直就是在冒險。您應該治癒大�的病人,而�是讓他們加速死亡。", }, awards = { [1] = "由於您的醫院在本年度��了很低的死亡人數,特此頒發�勵。太棒了。", [2] = "由於您的天�管�使醫院的死亡人數�到最低點。這真是令人高興的事情。", }, regional = { [1] = "您的醫院的死亡人數比其他醫院都低。請接�這個�勵。", }, }, rats_killed = { trophies = { [1] = "由於您的醫院在�去一年中共擊斃了%d��鼠,特此頒發除害�。", [2] = "由於您高超的擊鼠技巧共擊斃�鼠%d�,特此頒發�邦滅鼠�。", [3] = "由於您的醫院在�去一年中共擊斃了%d��鼠,特此頒發�鼠剋星�。", }, }, happy_staff = { trophies = { [1] = "由於您的醫院在�去一年中使努力工作的員工��快樂,特此頒發微笑�。", [2] = "由於您的醫院在�去一年中沒有�快樂的員工,特此頒發阿�尼學院�。", [3] = "由於您的醫院在�去一年中使努力工作的員工��快樂,特此頒發笑星�盃。快樂地笑��", }, awards = { [1] = "您的員工表示��您頒�。他們說雖然還有很多需�改進的地方,但您�待他們的態度使他們感到很快樂。", [2] = "您的員工感到能夠為您工作是一件�常快樂的事情,他們的笑容掛在臉上。您真是一個超級管�人�。", }, penalty = { [1] = "您的員工希望您知�他們�常�高興。好的員工就是最有價值的資產。使他們快樂,�則您將在一天之內失去全部。", }, regional_good = { [1] = "您的員工比其他醫院的員工都�快樂。快樂的員工�味。更高的利潤和更低的死亡率。衛生署感到�常高興。", }, regional_bad = { [1] = "您的員工在上一年度中�常�幸。您一定�加以留�。其他醫院的員工都比您的員工快樂。", }, }, healthy_plants = { awards = { [1] = "由於您的醫院在�去一年中是盆栽���康�長,特此頒發�壯�長�。", }, trophies = { [1] = "由於您的醫院在�去�二個月中使所有盆栽長勢良好,特此盆栽盆栽�會�您頒發綠色�康�。", [2] = "由於您的醫院在�去一年中使所有盆栽長勢良好,特此頒發綠色�人�。", }, }, sold_drinks = { trophies = { [1] = "由於您的醫院在�去一年中售出了大�的��飲料,特此由全�牙醫��會�您頒�。", [2] = "由於您的醫院在�去一年中賣出大�飲料,特此飲料零售組織�您頒發清涼飲料�。", [3] = "由於您的醫院在�去一年中賣出大�飲料,特此由飲料公��您頒發巧克力�盃。", }, }, many_cured = { trophies = { [1] = "由於您的醫院在�去一年中�功地治療了幾乎所有病人,特此�喜您榮�瑪麗治療�。", [2] = "由於您的醫院在�去一年中治癒了大�患者,國際治療基金會特此�您頒發懸壺濟世�。", [3] = "由於您的醫院在�去一年中治癒了大�患者,特此頒發疾病剋星�。", }, penalty = { [1] = "您的醫院無法使病人得到很好的治療。請關注並加以改進。", [2] = "您的醫院�病人的治療效果�如其他醫院。您使衛生署和您自己都��掃地。下�為例。", }, awards = { [1] = "�喜您在�去一年中治癒了這麽多的病人。很多人都感覺�錯,感�您的工作。", [2] = "由於您的醫院治癒了比其他醫院更多的病人,所以請接�這個�勵。您的表�太棒了。", }, regional = { [1] = "由於您的醫院治癒的病人數目比其他醫院的總和還多,特此頒發�勵。", }, }, pop_percentage = { awards = { [1] = "在�去一年中,您的醫院在城鎮人�中�得了很高的份�。幹得好。", [2] = "�喜。訪�您的醫院的居民人數超�了其他任何一個醫院。", [3] = "幹得好。訪�您的醫院的居民人數超�了其他醫院的總和。", }, penalty = { [1] = "在�去一年中,您的醫院在城鎮人�中�得了很高的份�。幹得好。", [2] = "�喜。訪�您的醫院的居民人數超�了其他任何一個醫院。", }, }, research = { regional_good = { [1] = "您的研究使您的醫院始終緊跟最新發展。這是您的科研人員應得的�勵。", }, penalty = { [1] = "您研究開發新治療方案,儀器和藥�的速度太慢了。這將無法趕上時代的步�。", }, regional_bad = { [1] = "本�域中的�個醫院在研究方�都強於您的醫院。這一點使衛生署感到震怒。", }, awards = { [1] = "您的研究使您的醫院始終緊跟最新發展。這是您的科研人員應得的�勵。", [2] = "在�去一年中,您比其他醫院研究出更多的藥�和儀器設備。請接�衛生署頒發的這個�勵。", }, }, reputation = "�望", cash = "�金", } menu_options_volume = { [50] = " 50%", [100] = " 100%", [30] = " 30%", [60] = " 60%", [90] = " 90%", [10] = " 10%", [20] = " 20%", [40] = " 40%", [80] = " 80%", [70] = " 70%", } menu_file_load = { [1] = " 存檔一 ", [2] = " 存檔二 ", [3] = " 存檔三 ", [4] = " 存檔四 ", [5] = " 存檔五 ", [6] = " 存檔六 ", [7] = " 存檔七 ", [8] = " 存檔八 ", } menu_file = { quit = " (%1%) 退出", save = " (%1%) 儲存", load = " (%1%) 讀�", restart = " (%1%) �新開始", } rooms_long = { ultrascan = "超級掃�儀房間", research_room = "研究部門", general = "一般", gps_office = "一般診斷室", inflation = "充氣房間", staffroom = "員工休�室", jelly_vat = "膠桶", scanner = "掃�儀房間", emergency = "緊急事件", decontamination = "淨化", corridors = "走廊", cardiogram = "心電圖儀房間", ward = "病房", training_room = "培訓室", psychiatric = "精神病診斷治療室", operating_theatre = "手術中心", dna_fixer = "DNA修復�置", tongue_clinic = "舌頭鬆弛診治所", hair_restoration = "毛髮�復�置", general_diag = "高級診斷室", pharmacy = "藥房", fracture_clinic = "骨折診所", toilets = "洗手間", electrolysis = "電分解診所", x_ray = "X光房間", blood_machine = "血液機器房間", } fax = { epidemic_result = { fine_amount = "政府宣佈全國緊急狀態,並�您罰款%d。", close_text = "哈�", hospital_evacuated = "會議決定�能�散您的醫院。", succeeded = { part_1_name = "衛生巡查員�到了傳�,您的醫院正在處�嚴�疾病%s。", part_2 = "然而他還沒有能夠找到證實傳�的證據。", }, compensation_amount = "政府決定�勵您%d作為補償謠言�您醫院�譽所造�的�失。", failed = { part_1_name = "嘗試掩蓋病情,他們正�臨著傳染病%s爆發。", part_2 = "醫院中的員工已經制止了傳染病�醫院附近居民傳播。", }, rep_loss_fine_amount = "報紙將整版報�此事。您的�望將大幅��。�外,還�繳�罰款%d。", }, vip_visit_query = { choices = { invite = "�貴賓發出邀請。", refuse = "找藉�阻止貴賓訪�。", }, vip_name = "%s希望能夠訪�您的醫院�", }, vip_visit_result = { telegram = "電報�", remarks = { [1] = "醫院太棒了。下次我生病一定�到那裡去就診。", [2] = "那就是我訪�的醫院。", [3] = "那是一個超級醫院。並且我想知�更多一點。", [4] = "醫院經營得太棒了。感�您能夠邀請我來訪�。", [5] = "嗯。醫院經營得還�以。", [6] = "我很欣賞您的醫院。", [7] = "喔,有點差�。您應多�一些改進。", [8] = "喔,親愛的。這個地方��怎麼樣。", [9] = "這是一個比較一般的醫院。但�白地講,我希望能夠�得更好。", [10] = "我為什麼煩惱?這比看一場�續4個�時的歌劇好多了�", [11] = "我為我所看到的感到�心。這也是醫院?胡說八��", [12] = "我已經�夠了�", [13] = "真是一個垃圾。我�爭�關閉它。", [14] = "我從沒有見�這樣�怕的醫院。真是丟人�", [15] = "我被震驚了。這也能稱為醫院�給我一點酒。", }, rep_boost = "您的�望在公眾中是很好的。", vip_remarked_name = "%s訪�醫院��後發表評論:", cash_grant = "您將得到�金%d。", rep_loss = "您的�望因此�到�害。", close_text = "感�您訪�醫院。", }, disease_discovered_patient_choice = { need_to_build = "您必須建造一個%s�能處�該疾病。", need_to_employ = "僱用一�%s就�以處�該情�。", what_to_do_question = "您打算怎樣處�這個病人?", guessed_percentage_name = "您的員工正在嘗試治療該病人。我們有%d%%的幾率治癒該病:%s", choices = { send_home = "�病人回家。", research = "將病人�到研究部門。", wait = "讓病人在醫院中等一會兒。", }, disease_name = "發�了新情�。該疾病為%s", need_to_build_and_employ = "如果您建造了一個%s並僱用了一�%s,您就能�功。", can_not_cure = "您無法治療該疾病。", }, emergency_result = { earned_money = "最大�金�為$%d,您得到了$%d。", close_text = "點擊這裡退出。", saved_people = "您挽救了%d個病人,總共需�治癒%d個。", }, disease_discovered = { discovered_name = "您的員工發�了一種新的疾病。它是%s", need_to_employ = "僱用一�%s就�以處�這種�機。", need_to_build_and_employ = "如果您建造了一個%s並僱用了一�%s,您就能�功。", need_to_build = "您必須建造一個%s�能處�該疾病。", close_text = "新發�了一種疾病。", can_cure = "您�以處�這種疾病。", }, emergency = { locations = { [1] = "賽澈化學藥�工廠。", [2] = "斯尼得大學。", [3] = "派拉奎特園�中心。", [4] = "�險物質研究機構。", [5] = "莫�斯舞蹈家�會。", [6] = "�蛙與公牛酒店。", [7] = "大戴維殯葬館。", [8] = "太�製�店。", [9] = "伯特二手石化產�商場。", }, num_disease = "%d個病人患有%s,他們需�緊急治療。", cure_possible_drug_name_efficiency = "您已經�有了�求的設備和技能。您�有他們所需�的藥�。藥�%s的療效為%d%%。", cure_not_possible_employ = "您將需�僱用一�%s", cure_not_possible = "�在您還�能治療這種疾病。", cure_possible = "由於您�有準備和技能,所以您應該�以處�這個緊急事件。", choices = { accept = "好的。我已�好準備處�緊急事件。", refuse = "�。我拒絕處�這個緊急事件。", }, location = "在%s發生了事故", cure_not_possible_build = "您將需�建造一間%s", cure_not_possible_build_and_employ = "您將需�建造一間%s並僱用一�%s", bonus = "處�這個緊急事件的最大�金�為%d。如果您失敗了,則您的�望將大幅下�。", }, debug_fax = { text4 = "FACTORS : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", text5 = "CONTRIBN : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d PERCENT", text3 = "FIGURES : DOCS %d NURSES %d AREA %d ROOMS %d PRICING %d", text9 = "DISASTERS %d ALLOWED (MTHS) %d (%d)REDUCTION %d", close_text = "嗨,哈,哈�", text1 = "BEST COUNT %d", text6 = "THE FOLLOWING FACTORS ARE ALSO APPLIED", text8 = "AMENITIES %d PEEPS HANDLED %d REDUCTION %d", text2 = "TOTAL PEOPLE IN HOSPITAL %d CHECKING AGAINST %d", text10 = "KILLS %d ALLOWED (MTHS) %d (%d) REDUCTION %d", text11 = "PEOPLE THIS MONTH %d", text7 = "REPUTATION: %d EXPECTED %d REDUCTION %d", }, epidemic = { cover_up_explanation_1 = "如果您想�掩蓋傳染病,您將必須在有�時間內,�衛生巡查員到來之�,治癒所有被傳染的病人。", cover_up_explanation_2 = "如果衛生巡查員到�,並發�了您正在試圖掩蓋傳染病,則他將�您採�嚴厲的懲罰。", choices = { cover_up = "在指定時間內且病人離開醫院之�,儘�治癒所有被感染的病人。", declare = "宣佈一種傳染病。支付罰款且�譽��。", }, disease_name = "醫生發�了傳染病%s。", declare_explanation_fine = "如果您宣佈出�傳染病,則您將支付罰款%d,且�譽��。所有病人將自動被接種疫苗。", }, diagnosis_failed = { choices = { send_home = "�病人回家。", take_chance = "嘗試治療病人。", wait = "讓病人多等待一會兒,您需�多建造一些診斷室。", }, situation = "我們已經�該病人嘗試了所有�供使用的機器,但是�然沒有發�病因。", what_to_do_question = "我們將怎樣處置這個病人?", partial_diagnosis_percentage_name = "我們有%d%%的機率確定該病人所患疾病類型。", }, } disease_discovered_patient_choice = { need_to_employ = "僱用一�%s就�以處�該情�。", } drug_companies = { [1] = "良藥公�", [2] = "�醫公�", [3] = "�藥片公�", [4] = "普芬公�", [5] = "�米尼公�", } humanoid_name_ends = { [1] = "斯密斯", [2] = "�克", [3] = "克利夫", [4] = "桑", [5] = "因格頓", [6] = "�裡", [7] = "頓", [8] = "桑", [9] = "�", [10] = "伯利", [11] = "波姆", [12] = "蘭", [13] = "漢默", [14] = "希爾", [15] = "溫", [16] = "�特", [17] = "艾爾斯", [18] = "頓", [19] = "蒙德", [20] = "曼", [21] = "愛爾頓", [22] = "�", [23] = "摩", [24] = "摩爾", [25] = "�特", [26] = "林", } confirmation = { return_to_blueprint = "您是�確定返回�圖模�?", restart_level = "您是�希望�新開始這個任務?", delete_room = "您是�希望拆除這個房間?", quit = "您已經�擇了退出。您是�確定真的�退出�戲?", overwrite_save = "該�置已儲存�戲進度。您是�確定�將其覆蓋?", sack_staff = "您是�確定�解僱該員工?", replace_machine = "您是�確定將%s汰�,需花費$%d?", } months = { [1] = "1 月", [2] = "2 月", [3] = "3 月", [4] = "4 月", [5] = "5 月", [6] = "6 月", [7] = "7 月", [8] = "8 月", [9] = "9 月", [10] = "10 月", [11] = "11 月", [12] = "12 月", } dynamic_info = { patient = { emergency = "緊急情�:%s", guessed_diagnosis = "嘗試診斷:%s", diagnosis_progress = "診斷�程", actions = { sent_to_other_hospital = "指派到其他醫院", prices_too_high = "費用太高了�我�回家了", waiting_for_treatment_rooms = "等待為我建造一間治療室", dying = "快死了�", no_diagnoses_available = "無法診斷�我�回家了", epidemic_sent_home = "被巡查員趕回家", cured = "治癒�", waiting_for_diagnosis_rooms = "等待建造更多的診斷室", epidemic_contagious = "我有傳染病", awaiting_decision = "等待您的決定", sent_home = "��回家", fed_up = "�夠了,�離開", no_treatment_available = "無法治療�我�回家了", on_my_way_to = "在去%s的路上", queueing_for = "排隊等待%s", }, diagnosed = "診斷:%s", }, health_inspector = "衛生巡查員", vip = "來訪貴賓", object = { times_used = "使用次數%d", queue_size = "排隊人數%d", strength = "強度%d", queue_expected = "�將加入隊�人數%d", strength_extra_info = "強度 %d (�級到 %d)", }, staff = { ability = "能力", psychiatrist_abbrev = "精神分�", actions = { going_to_repair = "�往維修%s", waiting_for_patient = "等待病人", wandering = "正在到處走動", vaccine = "正在注射疫苗", }, tiredness = "疲勞", }, } introduction_texts = { level17 = "最後的警告�隨時關注您的�望�這是真正�引病人�來就診的關�。 " .. "如果您沒有醫死太多的病人,且使就診病人��快樂,則�必太擔心�望� " .. "決定權就在您的手中。�您好�。", level1 = "歡迎來到您的第一座醫院�// " .. "首先�擺放�務�,建造一般診斷室,並僱用一�接待員和一�醫生。 " .. "隨後就�以等待開張了。 " .. "建造精神病診斷治療室並僱用一�精神病醫生是一個好主�。 " .. "藥房和護士也是治療病人所必需的。 " .. "建造一個充氣機房間就�以治療頭部腫脹患者。 " .. "您需�治癒10個病人,並使�望��在200以上。", level9 = "當填滿了衛生署的銀行帳戶並為部長大人購買了一輛轎車後,您�在��開始新的工作了。 " .. "在這裡您���很多�題。 " .. "�有�有足夠經驗充分的員工和房間,您�能夠順利�關。 " .. "醫院價值需��到$200,000,且銀行帳戶上�有$400,000。 " .. "如果無法�到上述�求,則無法�利完�任務。", level2 = "在該�域內還有一些其他的疾病。//" .. "建造醫院從而�以治療更多的病人,並應該考慮建造研究部門。 " .. "記���內部的清潔,從而使�望盡�能地高�您將�到患有舌頭鬆弛症的病人,因此需�建造舌頭診治房間。 " .. "您也�以建造心電圖房間來幫助診斷疾病。 " .. "這些房間都需�經�研究�能夠被建造。�在你�以購買其他土地擴展醫院�使用城鎮地圖就�以購買土地。 " .. "目標是�望300,銀行�金為10000,且治癒40個病人。", level7 = "在這裡您將�到衛生署的密切監察,因此�在賺錢的�時,努力�高自己的�望。 " .. "我們無法處�太多的醫療事故�這�於醫院的�營是�分�利的。 " .. "確�所有員工都很快樂,並確�已經購買了所有需�的儀器�備。 " .. "�望需��到600,且銀行裡需�有$200,000。", level5 = "醫院將�常�忙,處��種�樣的病人。 " .. "醫生都是剛剛畢業的實習醫生,因此需�建造一間培訓室�他們進行培訓,�高能力。 " .. "您�有3�專家�以幫助培訓這些員工,因此一定�讓專家快樂。 " .. "�外�注�的是,醫院的�置�是很好。 " .. "經常會發生地震。 " .. "地震將�醫院中的機器產生�壞,從而影響醫院的�營。 " .. "使您�望�到400以上,�金�到$50,000。�外需�治癒200個病人。", level4 = "使所有的病人快樂,��治療的高效率並儘��低死亡人數。 " .. "�望是�分��的,因此儘��得更高的�望。 " .. "��太多擔心收入情��當�望�高了,收入也自然會�高。 " .. "您需�培訓您的醫生,拓寬他們的能力。 " .. "這樣他們就�以更好的為病人�務。 " .. "�利�件是�望�到500以上。", level14 = "這裡還有一個挑戰�一個充滿驚奇的醫院。 " .. "如果您能夠�功完�這個任務,則您將�為所有�利者中的佼佼者。 " .. "���為完�這個任務就��蛋糕一樣,這將是您所�到的最艱苦的工作。 " .. "�您好��", level15 = "好的,下�是管�醫院的一些技巧。// " .. "醫生需��種幫助來診斷病人。您�以 " .. "建造�一個診斷類房間,例如高級診斷室。", level8 = "需�您來建造一座高效的醫院。 " .. "很多人都無事��,因此需���的�員以��高效。 " .. "記�治癒病人是很��的一件事情,但是您更�從中賺錢。 " .. "讓�心嘔�的病人�近清潔工人。 " .. "需�賺�$300,000就�以�關。", level13 = "您的高超管�技能被特殊機密部門�知。 " .. "他們將�您�高特別�金,因為他們有一座被�鼠困擾的醫院需�有效管�。 " .. "您必須殺死盡�能多的�鼠,並讓清潔工人打掃乾淨。 " .. "接�這個任務?", level16 = "當�病人完�診斷後,需�建造處�和治療類房間完��病人的治療工作。�以從 " .. "建造藥房開始。在藥房中需�一�護士分��種藥�。", level6 = "使用您的所有知識來建造一個�行平穩的醫院,從而�以賺�利潤並處�任何�題。 " .. "您需�注�一點,醫院周�的空氣�細��殖,傳染病�行�常�宜。 " .. "如果您沒有��醫院的清潔,則將��傳染病的�行。 " .. "賺�$150,000,並使醫院價值超�$140,000。", level12 = "您�在�到了最大的挑戰。 " .. "我們為您的�功感到由衷地高興,衛生署為您準備了一項頂級工作;他們需�有人建造�一個超級醫院,賺錢的�時��較高的�望。 " .. "您�以購買任何需�的土地,治療�種疾病�得�種�勵。 " .. "動心了嗎? " .. "賺�$650,000,治癒750個病人,使�望�到800就�以�利�關。", level3 = "這次您將在一個富裕地�建造醫院。 " .. "衛生署希望您能夠在這裡賺�更多的利潤。 " .. "開始時您被�求��好的�望,但是一旦醫院步入正軌,就�以集中精力賺�更多的錢。 " .. "有�能會發生緊急事件。 " .. "也就是說一次會有大�病人就診,且他們的病情都一樣。 " .. "在時間�制內如果能夠治癒他們,則�僅�以拿到�金,�望也會�高。 " .. "一些疾病如貓王症侯群等有�能發生,因此最好建造一間手術中心和附屬病房。 " .. "�利�件是賺�$20,000。", level10 = "隨著您的經驗�斷增長,衛生署�求您集中精力�高藥�的治療效果。 " .. "有人�您頗有微辭,為此您必須使所有的藥物都�常有效。 " .. "�外,一定��低醫療事故的發生次數,減少死亡人數。 " .. "作為�示,您需�為建造膠桶留一些空地。 " .. "使所有藥物的療效都�到80%%,�望�到650且在銀行帳戶上有$500,000,這樣就�以�利�關。", level11 = "�在您有機會建造一座終極醫院。 " .. "該地�享有極高的�望,因此衛生署希望能夠看到最好的醫院建造在這裡。 " .. "我們希望您能夠賺�大�的金錢,�得很高的�望,並能夠�功地處�任何事件。 " .. "這是一項�常��的工作。 " .. "這需�您的努力工作。 " .. "注�一點,該�域常常會看到�明飛行物。因此請讓您的員工�好準備迎接�速之客。 " .. "您的醫院價值需��到$240,000,在銀行帳戶內需�$500,000,且�望需��到700。", level18 = "", } humanoid_name_starts = { [1] = "�得", [2] = "黑爾", [3] = "安德", [4] = "本", [5] = "�", [6] = "比爾", [7] = "維", [8] = "瓦特", [9] = "寶得", [10] = "金", [11] = "巴", [12] = "派特", [13] = "曼", [14] = "寶艾", [15] = "沃", [16] = "傑克", [17] = "克來伯", [18] = "費什", [19] = "瓦特", [20] = "米爾", [21] = "白", [22] = "芬", [23] = "裡奇", [24] = "斯科特", [25] = "伯爾", [26] = "派克", [27] = "科", [28] = "維特", [29] = "比�", [30] = "寶�", [31] = "伯格", [32] = "懷特", [33] = "科爾", } transactions = { severance = "隔離花費", research = "研究花費", eoy_trophy_bonus = "年度物��勵", buy_object = "購買物�", cure_colon = "治療:", epidemy_coverup_fine = "隱瞞傳染病罰款", final_treat_colon = "最終治療:", jukebox = "收入:音樂盒", loan_interest = "貸款利率", overdraft = "�支利率", wages = "工資", loan_repayment = "貸款償還", personal_bonus = "支付個人�金", drug_cost = "藥�花費", cure = "治癒", heating = "供暖費", treat_colon = "治療:", compensation = "政府賠償金", epidemy_fine = "傳染病罰款", buy_land = "購買土地", research_bonus = "研究�金", general_bonus = "支付一般�金", deposit = "治療收入", eoy_bonus_penalty = "年度�金/罰款", cheat = "騙錢", drinks = "收入:飲料販賣機", vaccination = "接種疫苗", advance_colon = "進階:", vip_award = "貴賓�金�勵", hire_staff = "僱用員工", bank_loan = "銀行貸款", machine_replacement = "汰�機器花費", emergency_bonus = "支付緊急事件�金", build_room = "建造房屋", insurance_colon = "�險費:", sell_object = "賣出物�", remove_room = "移除已毀壞的房間", } object = { chair = "椅�", sofa = "沙發", operating_table = "手術臺", bed2 = "床", bench = "長椅", scanner = "掃�儀", couch = "長沙發椅", blood_machine = "血液機器", table1 = "桌�", video_game = "電視�戲", lamp = "燈", op_sink2 = "洗手�", door = "房門", auto_autopsy = "自動驗�儀", reception_desk = "�務�", hair_restorer = "毛髮�復機", projector = "放映機", crash_trolley = "診斷儀器�推車", tv = "電視機", ultrascanner = "超級掃瞄儀", surgeon_screen = "外科�風", litter_bomb = "垃圾炸彈", inflator = "充氣機", table2 = "桌�", desk = "辦公桌", pool_table = "撞�桌", x_ray_viewer = "X光�視儀", radiation_shield = "射線防護", bed = "床", swing_door2 = "轉門", console = "控制�", op_sink1 = "洗手�", bookcase = "書櫃", drinks_machine = "自動販賣機", comfortable_chair = "舒�座椅", skeleton = "骨骼模型", computer = "計算機", bin = "垃圾桶", pharmacy_cabinet = "醫藥櫃", radiator = "暖氣", cast_remover = "石��離�置", atom_analyser = "原�分�儀", plant = "盆栽", jelly_moulder = "膠桶", cardio = "心電圖儀", toilet = "�所", electrolyser = "電分解機器", fire_extinguisher = "滅�器", bed3 = "床", swing_door1 = "轉門", lecture_chair = "教室座�", screen = "�風", toilet_sink = "洗手�", shower = "淋浴", gates_of_hell = "地�之門", entrance_right = "左入�", entrance_left = "�入�", slicer = "舌頭治療機", dna_fixer = "DNA修復�置", x_ray = "X光機", cabinet = "文件櫃", } letter = { [1] = { [1] = "親愛的%s//", [2] = "太令人驚奇了�您已經�功地經營了這個醫院。衛生署的官員想�知�您是�有興趣接手一個大項目。我們�為有一個工作�您很��。薪水將�到$%d。怎麼樣。//", [3] = "您是��%s醫院的工作感興趣?", }, [2] = { [1] = "親愛的%s//", [2] = "太棒了�您的醫院經營得很好。我們�有了一些新的任務如果您喜歡新的挑戰,�以接�這項任務。您��勉強,但這項工作確實很��您。薪水是$%d//", [3] = "您希望接管%s醫院嗎?", }, [3] = { [1] = "親愛的%s//", [2] = "在您接管這座醫院期間,管��常�功。因此,我們�您寄予厚望,並為您找到了一個新的工作。薪水將�到$%d,�時我們也希望您喜歡新的挑戰。//", [3] = "您希望接手%s醫院嗎?", }, [4] = { [1] = "親愛的%s//", [2] = "�喜�部門官員�您的能力讚�絕�。您是衛生署的第一高手。我們覺得您一定喜歡更困難的工作。您的薪水將�到$%d,但決定權在您手中。//", [3] = "您是�願�在%s醫院工作?", }, [5] = { [1] = "親愛的%s//", [2] = "您好。我們尊�您�希望離開這個迷人的醫院,但是�醒您�仔細考慮。您的薪水將�到$%d,如果您願�到其他醫院工作並將其�行得很好。//", [3] = "您�在是�願�移動到%s醫院?", }, [6] = { [1] = "親愛的%s//", [2] = "�喜。我們�解您在這個�愛的�行良好醫院中工作的快樂心情,但是我們�為您�在應該為未來考慮。您的薪水將�到$%d,如果您決定調任。這是很值得考慮的。//", [3] = "您是�願�接手%s醫院?", }, [7] = { [1] = "親愛的%s//", [2] = "您好�衛生署想�知�您經��新考慮是�決定�然留在當�的醫院中。我們很欣賞您�在那個�愛的醫院,但我們覺得您如果願�接�這個極富挑戰性的工作,也一定能幹得很好,並且您的薪水將�到$%d。//", [3] = "您是�願�接手%s醫院?", }, [8] = { [1] = "親愛的%s//", [2] = "您好。您�定了我們上一�信中�供的新醫院,以�薪水$%d。我們覺得�論怎樣,您必須�新考慮這個決定。我們已經為您準備了一個很好的工作。//", [3] = "您是�願�接手%s醫院?怎麼樣?", }, [9] = { [1] = "親愛的%s//", [2] = "您已經�功地證明了自己是醫學界有�以來最棒的管�者。這樣的�就一定�給予�勵,因此我們決定任命您為所有醫院的至尊主席。這是一項光榮的工作,且薪水�以�到$%d。�論您走到那裡,都將�到人們的熱烈歡迎。//", [3] = "感�您的努力工作。希望您好好享�未來的�退休生活。//", [4] = "", }, [10] = { [1] = "親愛的%s//", [2] = "�喜您在我們指派的�個醫院中的�功管�。您的�功表�使您�以自由出入世界�大城市。您將�得退休金$%d,�加上一輛轎車,我們希望您在旅途中能夠促進�個醫院管�水準的�高。//", [3] = "我們都為您感到驕傲。我們中間�個人都為您挽救生命感到由衷的感�。//", [4] = "", }, [11] = { [1] = "親愛的%s//", [2] = "您的工作�分�功,我們從您身上�得了�感。��您管�了這麼多個醫院,並使它們都�行得很出色。我們將給予您終身工資$%d,並�供政府敞蓬轎車使您�以從一個城市到�一個城市,發表演講告訴公眾您是怎樣在這麼短的時間內�到如此�就。//", [3] = "您是所有人的榜樣,毫無例外,世界上�個人都以您為榮。//", [4] = "", }, [12] = { [1] = "親愛的%s//", [2] = "您的�就使您�為最好的醫院管�者。衛生署將�您�供$%d作為�勵,並�開慶�會。整個世界都在為您沸騰,太棒了�//", [3] = "請接�我們的安排。如果您��希望辛苦工作,我們將�您�供一輛轎車,且無論走到那裡,都有警察為您開路。//", [4] = "", }, } high_score = { categories = { deaths = "死亡人數", total_value = "總價值", money = "最富有", cures = "治癒人數", visitors = "造訪者最多", staff_number = "員工數目最多", cure_death_ratio = "醫治無效死亡率", patient_happiness = "顧客滿�", staff_happiness = "員工滿�", salary = "工資最高", clean = "最乾淨", }, player = "玩家", score = "分數", pos = "�次", best_scores = "榮譽堂", worst_scores = "�辱堂", killed = "殺死病人數目", } menu_file_save = { [1] = " 存檔一 ", [2] = " 存檔二 ", [3] = " 存檔三 ", [4] = " 存檔四 ", [5] = " 存檔五 ", [6] = " 存檔六 ", [7] = " 存檔七 ", [8] = " 存檔八 ", } build_room_window = { pick_room_type = "�擇房間類型", pick_department = "�擇部門", cost = "花費:", } menu = { debug = " DEBUG", display = " 顯示", file = " 文件", options = " �項", charts = " 圖表", } ------------------------------- OVERRIDE ---------------------------------- menu.debug = " 除錯 " progress_report.win_criteria = "���件" ------------------------------- NEW STRINGS ------------------------------- date_format = { daymonth = "%2%月 %1%日", } object.litter = "廢棄物" tooltip.objects.litter = "廢棄物:病人找�到垃圾桶,所以隨�丟在了地上。" object.rathole = "�鼠洞" tooltip.objects.rathole = "�鼠一家,您的醫院夠髒了,�著很舒�。" tooltip.fax.close = "關閉此視窗,但�刪除訊�" tooltip.message.button = "點�開啟訊�" tooltip.message.button_dismiss = "點�開啟訊�,��點�忽略" tooltip.casebook.cure_requirement.hire_staff = "您需�僱傭人員來治療該疾病" tooltip.casebook.cure_type.unknown = "您還�知�如何治療該疾病" tooltip.research_policy.no_research = "當�沒有任何此類研究在進行中" tooltip.research_policy.research_progress = "此類研究下次發�的進度: %1%/%2%" menu["player_count"] = "玩家數" menu_file = { load = " (%1%) 讀�", save = " (%1%) 儲存", restart = " (%1%) �新開始", quit = " (%1%) 退出" } menu_options = { sound = " (%1%) 音效 ", announcements = " (%1%) 公告 ", music = " (%1%) 音樂 ", jukebox = " (%1%) 音樂盒 ", lock_windows = " 鎖定視窗 ", edge_scrolling = " 邊緣�動 ", capture_mouse = " ��滑鼠 ", adviser_disabled = " (%1%) 建議 ", warmth_colors = " 暖氣�域顯示 ", wage_increase = " 漲工資�求 ", twentyfour_hour_clock = " 24�時時� " } menu_options_game_speed = { pause = " (%1%) 暫� ", slowest = " (%1%) �常慢 ", slower = " (%1%) 較慢 ", normal = " (%1%) 正常 ", max_speed = " (%1%) 快速 ", and_then_some_more = " (%1%) 極快 ", } menu_options_warmth_colors = { choice_1 = " 紅 ", choice_2 = " � 綠 紅 ", choice_3 = " 黃 橙 紅 ", } menu_options_wage_increase = { grant = " �許 ", deny = " 拒絕 ", } -- Add F-keys to entries in charts menu (except briefing), also town_map was added. menu_charts = { bank_manager = " (%1%) 銀行經�", statement = " (%1%) 銀行賬戶", staff_listing = " (%1%) 員工管�", town_map = " (%1%) 城鎮地圖", casebook = " (%1%) 治療手冊", research = " (%1%) 研究", status = " (%1%) 狀態", graphs = " (%1%) 圖表", policy = " (%1%) 制度", } menu_debug = { jump_to_level = " 跳關 ", connect_debugger = " (%1%) 連線 LUA DBGp 伺�器 ", transparent_walls = " (%1%) �明牆� ", limit_camera = " �制�頭 ", disable_salary_raise = " 關閉漲工資�求 ", allow_blocking_off_areas = " �許導致空間無法到�的建造 ", make_debug_fax = " 建立測試傳真 ", make_debug_patient = " 建立測試病人 ", cheats = " (%1%) 作弊 ", lua_console = " (%1%) LUA 控制檯 ", debug_script = " (%1%) 執行除錯指令碼 debug_script.lua ", calls_dispatcher = " 籤派視窗 ", dump_strings = " (%1%) 轉存字串 ", dump_gamelog = " (%1%) 轉存�戲日誌 ", map_overlay = " 地圖層次 ", sprite_viewer = " 貼圖�覽器 ", } menu_debug_overlay = { none = " 無 ", flags = " 標記 ", positions = " 座標 ", heat = " 溫度 ", byte_0_1 = " �元組 0 & 1 ", byte_floor = " �元組 地� ", byte_n_wall = " �元組 北牆 ", byte_w_wall = " �元組 西牆 ", byte_5 = " �元組 5 ", byte_6 = " �元組 6 ", byte_7 = " �元組 7 ", parcel = " 地� ", } menu_player_count = { players_1 = " 1 玩家 ", players_2 = " 2 玩家 ", players_3 = " 3 玩家 ", players_4 = " 4 玩家 ", } dynamic_info.patient.actions.no_gp_available = "您需�建造一般診斷室" dynamic_info.staff.actions.heading_for = "�往%s" dynamic_info.staff.actions.fired = "已解僱" dynamic_info.patient.actions.epidemic_vaccinated = "我已經沒有傳染性" progress_report.free_build = "自由建設" fax = { choices = { return_to_main_menu = "返回到主�單", accept_new_level = "接手下一個醫院", decline_new_level = "繼續經營這個醫院", }, emergency = { num_disease_singular = "那裡有一個人患了%s,他們需�馬上救治。", free_build = "�功的話,你的�望就會上�,但你�是失敗了,就會一��丈。", }, vip_visit_result = { remarks = { free_build = { "你的醫院相當�錯�沒有�算的�制,�定很容易�?", "我�是一個經濟學家,但我�是你我也行。你懂我啥��……", "醫院經營的�錯。但��心經濟�景氣。哦�了,你���那個心。", } } } } letter = { dear_player = "親愛的 %s", custom_level_completed = "�得好�你已完�自訂�戲的所有目標�", return_to_main_menu = "你想�回到主�單還是繼續�戲?", campaign_level_completed = "幹得好�你完�了這一關。但是還沒有���\n您想在%s醫院工作嗎?", campaign_completed = "難以置信�你�功完�了所有關�。你�在�以放鬆一下,然後去網上炫耀一番。�你好��", campaign_level_missing = "很抱歉,�戲的下一關似乎已丟失。(�稱:%s)", } install = { title = "-------------------------------- CorsixTH �戲設定 -------------------------------", th_directory = "CorsixTH 需�原版�林也瘋狂(或演示版)的資料檔案�能執行。請指定原版�林也瘋狂�戲的安�資料夾。", ok = "確定", exit = "退出", cancel = "�消", } misc.not_yet_implemented = "(尚未實�)" misc.no_heliport = "還沒有疾病被發�,或者地圖上需�一個直�機場。你�能需�建一個�務�,並僱用一�接待員" main_menu = { new_game = "開始�戲", custom_campaign = "自訂任務", custom_level = "場景�戲", continue = "繼續�戲", load_game = "載入�戲", options = "�項", map_edit = "地圖編輯器", savegame_version = "存檔版本:", updates_off = "已�用更新檢查", version = "版本:", exit = "退出", } tooltip.main_menu = { new_game = "從第一關開始新�戲", custom_campaign = "玩由社群設計的任務", custom_level = "在一個場景下建醫院", continue = "從最近的存檔繼續玩", load_game = "載入存檔", options = "調整�種設定", map_edit = "建立自訂地圖", exit = "��,��,請��退出�戲�", quit = "你將退出 CorsixTH。確定?", } load_game_window = { caption = "載入�戲 (%1%)", } tooltip.load_game_window = { load_game = "載入�戲 %s", load_game_number = "載入�戲 %d", load_autosave = "載入自動儲存的�戲", } custom_game_window = { caption = "自訂�戲", free_build = "自由建設", load_selected_level = "開始", } tooltip.custom_game_window = { choose_game = "點�一個關�以瞭解更多資訊", free_build = "勾�此框,你將�需�為錢以��利失敗而�心", load_selected_level = "載入並玩�定的關�", } custom_campaign_window = { caption = "自訂任務", start_selected_campaign = "開始任務", } tooltip.custom_campaign_window = { choose_campaign = "點�一項任務以瞭解更多資訊", start_selected_campaign = "載入任務第一關", } save_game_window = { caption = "儲存�戲 (%1%)", new_save_game = "新�戲存檔", } tooltip.save_game_window = { save_game = "覆蓋�戲存檔 %s", new_save_game = "輸入新存檔的�稱", } save_map_window = { caption = "儲存地圖 (%1%)", new_map = "新地圖", } tooltip.save_map_window = { map = "覆蓋地圖 %s", new_map = "輸入新地圖的�稱", } menu_list_window = { name = "�稱", save_date = "已修改", back = "返回", ok = "確定��", } tooltip.menu_list_window = { name = "點�此按�稱排�", save_date = "點�此按最後修改日期排�", back = "關閉此視窗", } options_window = { caption = "設定", option_on = "開", option_off = "關", option_enabled = "已啟用", option_disabled = "已�用", fullscreen = "全螢幕", resolution = "解�度", capture_mouse = "��滑鼠", custom_resolution = "自訂...", width = "寬度", height = "高度", customise = "自訂", folder = "資料夾", language = "語言", apply = "應用", cancel = "�消", back = "返回", scrollspeed = "�動速度", shift_scrollspeed = "加速�動速度", zoom_speed = "縮放速度", hotkey = "熱�", check_for_updates = "自動檢查更新", } tooltip.options_window = { fullscreen = "應該在全�還是視窗模�執行", fullscreen_button = "點�切�全�模�", resolution = "在此解�度下�行�戲", select_resolution = "�擇新的解�度", capture_mouse = "點�切�是�將游標��在�戲視窗中", width = "輸入想�的螢幕寬度", height = "輸入想�的螢幕高度", apply = "應用此解�度", cancel = "返回而�更改解�度", customise_button = "更多�以改變�戲體驗的�項", folder_button = "資料夾�項", language = "�戲文字使用的語言", select_language = "�擇語言", language_dropdown_item = "�擇 %s 為語言", back = "關閉設定視窗", scrollspeed = "將�動速度設為1(最慢)到10(最快)。�設為2。", shift_scrollspeed = "設定在�動時按下 Shift �時的�動速度。1(最慢)到10(最快)。�設:4。", zoom_speed = "將相機變焦速度設為10(最慢)到1000(最快)。�設值為80。", apply_scrollspeed = "應用輸入的�動速度", cancel_scrollspeed = "返回而�更改�動速度", apply_shift_scrollspeed = "應用輸入的加速�動速度", cancel_shift_scrollspeed = "返回而�更改加速�動速度", apply_zoomspeed = "應用輸入的縮放速度", cancel_zoomspeed = "返回而�更改縮放速度", hotkey = "更改�盤熱�", check_for_updates = "�戲啟動時自動檢查更新", } audio_window = { audio = "全域性音效", back = "返回", } tooltip.audio_window = { audio_button = "開關所有的�音", audio_toggle = "切�開關", } customise_window = { caption = "自訂設定", option_on = "啟用", option_off = "關閉", back = "返回", movies = "全域性 CG 控制", intro = "播放啟動 CG", paused = "建造時暫�", volume = "減�音�熱�", aliens = "外星人��緊急情�", fractured_bones = "骨折��男性", average_contents = "房間常用物件", remove_destroyed_rooms = "移除已毀壞的房間", } tooltip.customise_window = { movies = "全域性 CG 控制,這將�許您�用所有 CG", intro = "關閉或開啟啟動 CG,如果您希望�次啟動 CorsixTH 時都播放啟動 CG,則必須開啟全域性 CG", paused = "在�林也瘋狂中,�有在�戲暫�的情�下,��許玩家使用頂部�單,這也是 CorsixTH 的�設設定。但是將此�項開啟,�戲暫�時�以進行所有�作", volume = "如果減�音�按鈕�時打開了治療手冊,請將開啟治療手冊的熱�更改為 Shift + C", aliens = "因為缺少��的動畫,�設外星人 DNA 病人�會來自緊急事件。��許緊急事件外出�外星人 DNA 病人,請關閉此�項", fractured_bones = "由於動畫效果�佳,�設�會有女性骨折患者。��許女性骨折患者就診,請關閉此功能", average_contents = "如果您想讓�戲記�在建造房間時通常會新增哪些其他物件,請啟用此�項。", remove_destroyed_rooms = "開啟這個�項,使已毀壞的房間�以付費移除。", back = "關閉此�單,並返回設定�單", } folders_window = { caption = "資料夾�置", data_label = "TH 資料", font_label = "字型", music_label = "音樂", savegames_label = "存檔", screenshots_label = "截圖", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "您�以在此處指定新的�林也瘋狂安�目錄。�擇新目錄後,�戲將�新啟動。", savegames_location = "�擇�用於儲存的目錄", music_location = "�擇您�用於音樂的目錄", screenshots_location = "�擇您�用於螢幕截圖的目錄", back = "返回", } tooltip.folders_window = { browse = "�覽資料夾�置", data_location = "原版�林也瘋狂安�的目錄,CorsixTH 執行所必需", font_location = "�擇�以顯示您的語言所需 Unicode 字型的�置。如果沒有指定,您將�能使用原�戲�供字型之外的語言,例如中文和俄語。(你一定已經�了,��怎麼�以看到這�話呢?)", savegames_location = "�設情�下,�戲存檔儲存在�置檔案�邊的資料夾中。如果���,�以�擇自己的目錄,�需�覽到�使用的目錄��。", screenshots_location = "�設情�下,螢幕快照儲存在�置檔案�邊的資料夾中。如果���,�以�擇自己的目錄,�需�覽到�使用的目錄��。", music_location = "�擇儲存音樂檔案的�置。此目錄必須已經存在,然後�能�覽到剛建立的目錄。", browse_data = "�覽�一處�林也瘋狂安��置(當��置:%1%)", browse_font = "�覽�一個字型(當��置:%1%)", browse_saves = "�覽�一處�戲存檔儲存�置(當��置:%1%)", browse_screenshots = "�覽�一處螢幕截圖儲存�置(當��置:%1%)", browse_music = "�覽�一處音樂儲存�置(當��置:%1%)", no_font_specified = "沒有指定字型的�置�", not_specified = "沒有指定資料夾�置�", default = "�設�置", reset_to_default = "�置到�設資料夾 (%1%)", back = "關閉此�單,並返回設定�單", } hotkey_window = { caption_main = "熱�分�", caption_panels = "���", button_accept = "確定", button_defaults = "�置為�設值", button_cancel = "�消", button_back = "返回", button_toggleKeys = "切��", button_gameSpeedKeys = "�戲速度�", button_recallPosKeys = "載入視點�", panel_globalKeys = "全域性�", panel_generalInGameKeys = "一般�戲內�", panel_scrollKeys = "�動�", panel_zoomKeys = "縮放�", panel_gameSpeedKeys = "�戲速度�", panel_toggleKeys = "切��", panel_debugKeys = "除錯�", panel_storePosKeys = "儲存視點�", panel_recallPosKeys = "載入視點�", panel_altPanelKeys = "替代���", global_confirm = "確�", global_confirm_alt = "確�(替代)", global_cancel = "�消", global_cancel_alt = "�消(替代)", global_fullscreen_toggle = "全�", global_exitApp = "退出程�", global_resetApp = "�置程�", global_releaseMouse = "釋放滑鼠", global_connectDebugger = "�錯程�", global_showLuaConsole = " Lua 控制檯", global_runDebugScript = "除錯指令碼", global_screenshot = "螢幕截圖", global_stop_movie_alt = "�止 CG", global_window_close_alt = "關閉視窗", ingame_scroll_up = "�上�動", ingame_scroll_down = "�下�動", ingame_scroll_left = "�左�動", ingame_scroll_right = "���動", ingame_scroll_shift = "速度切�", ingame_zoom_in = "放大", ingame_zoom_in_more = "放大更多", ingame_zoom_out = "縮�", ingame_zoom_out_more = "縮�更多", ingame_reset_zoom = "�設縮放", ingame_showmenubar = "顯示�單欄", ingame_showCheatWindow = "作弊�單", ingame_loadMenu = "載入�戲", ingame_saveMenu = "儲存�戲", ingame_jukebox = "音樂盒", ingame_openFirstMessage = "關�訊�", ingame_pause = "暫�", ingame_gamespeed_slowest = "�常慢", ingame_gamespeed_slower = "較慢", ingame_gamespeed_normal = "正常", ingame_gamespeed_max = "快速", ingame_gamespeed_thensome = "極快", ingame_gamespeed_speedup = "加速", ingame_panel_bankManager = "銀行經�", ingame_panel_bankStats = "銀行狀態", ingame_panel_staffManage = "員工管�", ingame_panel_townMap = "城鎮地圖", ingame_panel_casebook = "治療手冊", ingame_panel_research = "研究", ingame_panel_status = "狀態", ingame_panel_charts = "圖表", ingame_panel_policy = "制度", ingame_panel_map_alt = "城鎮地圖2", ingame_panel_research_alt = "研究2", ingame_panel_casebook_alt = "治療手冊2", ingame_panel_casebook_alt02 = "治療手冊3", ingame_panel_buildRoom = "建造房間", ingame_panel_furnishCorridor = "設定走廊", ingame_panel_editRoom = "編輯房間/物�", ingame_panel_hireStaff = "僱用員工", ingame_rotateobject = "旋轉物件", ingame_quickSave = "快速儲存", ingame_quickLoad = "快速載入", ingame_restartLevel = "�啟關�", ingame_quitLevel = "退出關�", ingame_setTransparent = "�明牆�", ingame_toggleAnnouncements = "公告", ingame_toggleSounds = "�音", ingame_toggleMusic = "音樂", ingame_toggleAdvisor = "顧�", ingame_toggleInfo = "資訊", ingame_poopLog = "轉存�戲日誌", ingame_poopStrings = "轉存字串", ingame_patient_gohome = "��回家", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_storePosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_recallPosition_0 = "10", } tooltip.hotkey_window = { button_accept = "確定上�的熱�分�,並將其儲存", button_defaults = "將所有熱��置為程�的�設值", button_cancel = "�消設定,並返回�項�單", caption_panels = "開啟設定��熱�的視窗", button_gameSpeedKeys = "開啟�戲速度熱�的視窗", button_recallPosKeys = "開啟視窗以設定用於儲存和載入視點的�", button_back_02 = "返回主熱�視窗。在此視窗中更改的熱��在此處設定", } font_location_window = { caption = "�擇字型 (%1%)", } handyman_window = { all_parcels = "所有地�", parcel = "地�" } tooltip.handyman_window = { parcel_select = "清潔工人工作的地�,單擊以更改設定" } new_game_window = { caption = "競爭上崗", player_name = "玩家�稱", option_on = "開", option_off = "關", difficulty = "難度", easy = "實習醫生(容易)", medium = "醫生(一般)", hard = "專家(難)", tutorial = "�戲教程", start = "開始", cancel = "返回", } tooltip.new_game_window = { player_name = "輸入你�戲中的�字", difficulty = "�擇您�玩的�戲難度等級", easy = "如果您剛開始玩模擬�戲,�擇此項", medium = "如果�確定��擇什麼,�擇中間這項", hard = "如果您熟悉這個�戲,想�有點挑戰,�擇此項", tutorial = "單擊此處啟用�戲上手教程", start = "使用當�設定開始�戲", cancel = "哦,我沒打算真的開始新�戲�", } lua_console = { execute_code = "執行", close = "關閉", } tooltip.lua_console = { textbox = "輸入 Lua 程�碼以執行", execute_code = "執行輸入的程�碼", close = "關閉控制檯", } errors = { dialog_missing_graphics = "哎呀,演示版資料檔案�包�這個�話方塊。", save_prefix = "儲存�戲失敗:", load_prefix = "載入�戲失敗:", no_games_to_contine = "無�戲存檔。", load_quick_save = "錯誤,�存在快速存檔,無法載入。�用擔心,我們已經為您建立了一個�", map_file_missing = "找�到該關�的地圖檔案 %s�", minimum_screen_size = "最�螢幕大�為 %dx%d。", unavailable_screen_size = "您設定的螢幕大�無法應用於全�模�。", alien_dna = "注�:�於外星人病人來說,�下�開啟或敲門等都沒有動畫。因此,�在�林也瘋狂中�這些事情一樣,它們看起來會�復正常外觀,然後�變回原狀。外星人 DNA 僅當它們在關�檔案中設定啟動時�會顯示", fractured_bones = "注�:女性骨折患者的動畫效果��想", could_not_load_campaign = "無法載入任務:%s", could_not_find_first_campaign_level = "找�到該任務的第一關:%s", save_to_tmp = "檔案無法儲存到 %s 。檔案改為儲存到 %s 。�題: %s", dialog_empty_queue = "抱歉,程��到bug了。彈出視窗顯示的這個人員沒有被安排指令(empty action queue),請你決定把他�離醫院或執行其他動作。", compatibility_error = { demo_in_full = "抱歉,這是演示版的�戲存檔,無法在完整版中開啟。請更新原版�林也瘋狂目錄內容。", full_in_demo = "抱歉,這是完整版的�戲存檔,無法在演示版中開啟。請更新原版�林也瘋狂目錄內容。", new_in_old = "抱歉,此�戲存檔需�較新版本的 CorsixTH �能開啟。", }, } warnings = { levelfile_variable_is_deprecated = "注�:關�'%s'在關�檔案中包�棄用的變數定義。" .. "'%LevelFile'已�新命�為'%MapFile'。請建議地圖建立者更新關�。", newersave = "警告:此�戲存檔是由較新版本 CorsixTH 建立的。�建議繼續進行�戲,�則�能會出�錯誤。一般來說,僅作測試用途。", } confirmation = { needs_restart = "這項設定的改動需��新啟動 CorsixTH。尚未儲存的進度將會丟失。確定�這麼�嗎?", abort_edit_room = "您正在修建或者修改一間房間。如果所有必需的物�都被放置了就沒有�題,�則所�的修改將被刪除。繼續嗎?", maximum_screen_size = "您輸入的螢幕尺寸大於 3000x2000。�以使用更大的解�度,但需�更好的硬體�能���播放的幀速率。繼續嗎?", remove_destroyed_room = "你希望付費 $%d 清除這個房間嗎?", replace_machine_extra_info = "新機器的強度為 %d (�在 %d).", } information = { custom_game = "歡迎來到 CorsixTH。盡情享�自訂地圖��", no_custom_game_in_demo = "抱歉,在演示版本中,您無法玩任何自訂地圖。", cannot_restart = "�幸的是這個自訂地圖是在 �新開始 功能開發之�建立的。", very_old_save = "從您開始玩此關以來,�戲已有許多更新。為確�所有功能�按�期工作,請考慮�新啟動它。", level_lost = { "您失敗了��戲��。下次好��", "由於:", reputation = "�望低於%d。", balance = "銀行賬戶資金低於%d。", percentage_killed = "殺死了多於%d%%的病人。", cheat = "這是你的�擇,還是�擇了錯誤的按鈕?你甚至連作弊都�會,�是那麼有趣�?", }, cheat_not_possible = "無法在這關上使用此項作弊。你甚至連作弊都失敗了,�是那麼有趣�?", } tooltip.information = { close = "關閉資訊�話方塊", } totd_window = { tips = { "醫院想開張就需�一個�臺桌�和一個�診室。這之後還需�根據��病人建立�種房間。但有個藥房總是�的。", "有一些機器需�維護,比如說充氣機。所以僱一兩個修�人員還是必�的,�然那就是個定時炸彈。", "你的員工會�時感到疲倦。所以建一間休閒室也很必�。", "多放點幾個暖氣,讓你的員工和病人感到春天般溫暖。用全景地圖來檢視它們的覆蓋��以決定是�還需�多放些。", "一個醫生的醫療水平很大程度影響他的診斷速度。把最厲害的醫生放在�診室,這樣你會�下其他的�診室。", "實習生和醫生們�以通�在學習室�專家學習來�高水平。如果請來的專家�有�一項專長(外科醫生,精神病醫生或研究員),他也會教給他的學生們。", "有沒有試�在傳真機上撥112?這是�洲的急救電話。記得將音�調到最大�", "在主�單和�戲�單裡�,找到�項視窗,在那裡�以調整解�度和語言。", "你�擇了中文,但是你還是�能會在�戲中��地看到英文。把他們翻譯了�,我們需�你的幫助�", "CorsixTH �組正在壯大�如果你�程�設計�翻譯�創作�林也瘋狂需�的圖片等等任何方�感興趣,�以到 CorsixTH 網站找到開發�社群等資訊。", "如果你碰到了 bug,請�交給我們: th-issues.corsix.org", "�一關都需�滿足特定的�件�能�關。你�以通�狀態視窗看到你的進度。", "如果你需�編輯或者刪除一間房間,螢幕下方找到工具欄,然後點編輯房間按鈕。", "在�群�隊等待就診的病人中,你�以通�指�房間的門來找到哪些病人在等。", "點�房間門�以看到等待佇列。你�以�些調整讓�些人走個後門,或者�到�一個房間去。", "�開心的員工�有通�漲薪來平衡自己了。你��證你的員工的工作環境�家一樣,�能讓他們甘心給你賣命。", "病人等的時間長了,會�渴,如果開了暖氣,�渴得會更快�放些自動販賣機�,還能多些零花錢。", "如果你見��種病,你�以中斷診療�程直接去治,治死了��找我。", "從緊急事件總能賺一大筆,但是你�按時處�好�行。", "你知��以指定清潔工人工作的地�嗎?打開他的資料視窗,點擊「所有地��文字便�設定地�。", }, previous = "�一項�示", next = "下一項�示", } tooltip.totd_window = { previous = "顯示上一項�示", next = "顯示下一項�示", } debug_patient_window = { caption = "除錯病人", } cheats_window = { caption = "作弊", warning = "警告: 如果作弊關���時你將得�到任何�勵�", cheated = { no = "作弊了嗎: �", yes = "作弊了嗎: 是", }, cheats = { money = "給我錢��", all_research = "所有研究", emergency = "緊急事件", vip = "貴賓", earthquake = "地震", epidemic = "生�傳染性病人", toggle_infected = "切�感染圖示", create_patient = "生�病人", end_month = "月末", end_year = "年末", lose_level = "失敗", win_level = "��", increase_prices = "漲價", decrease_prices = "�價", }, close = "關閉", } tooltip.cheats_window = { close = "關閉作弊�話方塊", cheats = { money = "增加10,000存款。", all_research = "完�所有的研究。", emergency = "建立一次緊急事件。", vip = "建立一�貴賓。", earthquake = "製造一次地震。", epidemic = "建立一��能導致�行病傳染的傳染性患者", toggle_infected = "切�感染圖示,以發�活�的�行病", create_patient = "在地圖的邊緣生�一個病人。", end_month = "跳到月末。", end_year = "跳到年末。", lose_level = "在當�關�敗北。", win_level = "�得當�關�。", increase_prices = "所有項目漲價50%(最大200%)", decrease_prices = "所有項目�價50%(最�50%)", }, } introduction_texts = { demo = "歡迎來到演示版醫院�//" .. "演示版本�有當�這一個關�。但有一堆事情足夠你忙一陣了� " .. "你將會�到�種疾病需��種醫療室來救治。緊急情�也會經常性地發生。你需�通�研究室來研發更多的醫療室。" .. "你的目標是掙夠$100,000,使醫院的價值�到$70,000以�得到700�望值,�時你還需�救治超�75%的病人。" .. "確�你的�望值�會掉到300以下,你的病人死亡率�超�40%,�則你就完了。//" .. "�你好��", } calls_dispatcher = { -- Dispatcher description message. Visible in Calls Dispatcher dialog summary = "%d項呼�;%d項已分�", staff = "%s - %s", watering = "澆水 @ %d,%d", repair = "修� %s", close = "關閉", } tooltip.calls_dispatcher = { task = "任務列表 - 點�任務開啟人員分�視窗,然後�動到任務的�置", assigned = "這個框代表是�有人被分�給此任務。", close = "關閉籤派視窗", } update_window = { caption = "��級新版本�", new_version = "新版本:", current_version = "當�版本:", download = "開啟下載��", ignore = "回到主�單" } tooltip.update_window = { download = "�往下載��下載最新版 CorsixTH", ignore = "忽略這次更新。您將在下次啟動 CorsixTH 時�次收到通知", } map_editor_window = { pages = { inside = "內部", outside = "外部", foliage = "�木", hedgerow = "樹籬", pond = "池塘", road = "�路", north_wall = "北牆", west_wall = "西牆", helipad = "�機�", delete_wall = "刪除牆�", parcel_0 = "包 0", parcel_1 = "包 1", parcel_2 = "包 2", parcel_3 = "包 3", parcel_4 = "包 4", parcel_5 = "包 5", parcel_6 = "包 6", parcel_7 = "包 7", parcel_8 = "包 8", parcel_9 = "包 9", camera_1 = "相機 1", camera_2 = "相機 2", camera_3 = "相機 3", camera_4 = "相機 4", heliport_1 = "直�機場 1", heliport_2 = "直�機場 2", heliport_3 = "直�機場 3", heliport_4 = "直�機場 4", paste = "Paste area", } } hotkeys_file_err = { file_err_01 = "無法載入 hotkeys.txt 檔案。請確� CorsixTH " .. "具有讀/寫許�權", file_err_02 = ",或使用 --hotkeys-file=filename 命令列�項指定一個�寫檔案。" .. "作為�考,載入熱�檔案的錯誤是:", } -- Override for level progress typo level_progress.hospital_value_enough = "��醫院價值在%d以上,並解決好其他�題,就能完�任務了。" level_progress.cured_enough_patients = "您已經治癒了足夠多的病人,但是您�有�到更高的標準�能完�任務。" -- Override for multiplayer typos multiplayer.players_failed = "以下玩家沒有完�最終目標:" multiplayer.everyone_failed = "所有玩家都沒有完�最終目標。因此�個人都�繼續努力�" -------------------------------- UNUSED ----------------------------------- ------------------- (kept for backwards compatibility) ---------------------- options_window.change_resolution = "修改解�度" tooltip.options_window.change_resolution = "修改視窗解�度為左方的值" CorsixTH-0.70.0/CorsixTH/Lua/languages/ukrainian.lua000066400000000000000000010254261522247547500222060ustar00rootroot00000000000000 --[[ Copyright (c) 2024 by Yurii (JurecStrongman) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] Font("unicode") Language("Україн�ька", "Ukrainian", "uk", "ukr") Inherit("english") Encoding(utf8) IsArabicNumerals(true) main_menu = { new_game = "�ова гра", custom_campaign = "Кори�тувацька гра", custom_level = "Кори�тувацький рівень", continue = "Продовжити гру", load_game = "Завантажити гру", options = "�алаштуванн�", map_edit = "Редактор рівнів", savegame_version = "Вер�і� збереженн�: ", updates_off = "�е перевір�ти оновленн�", version = "Вер�і�: ", exit = "Вихід", } new_game_window = { caption = "�ова гра", player_name = "Ім'� гравц�", option_on = "Увімк", option_off = "Вимк", difficulty = "Складні�ть", easy = "Інтерн (Легкий)", medium = "Лікар (Середній)", hard = "Спеціалі�т (Складний)", tutorial = "�авчанн�", start = "Почати", cancel = "Відмінити", } menu_options_warmth_colors = { choice_1 = " ЧЕРВО�ИЙ ", choice_2 = " СИ�ІЙ ЗЕЛЕ�ИЙ ЧЕРВО�ИЙ ", choice_3 = " ЖОВТИЙ ПОМ�Р��ЧЕВИЙ ЧЕРВО�ИЙ ", } date_format = { daymonth = "%1% %2:months%", } custom_game_window = { caption = "Кори�тувацький рівень", free_build = "Вільне будівництво", load_selected_level = "Почати", } load_game_window = { caption = "Завантажити гру (%1%)", load_button = "Завантажити", } save_game_window = { caption = "Зберегти гру (%1%)", new_save_game = "�ове збереженн�", missing_filename = "Введіть нове ім'� дл� збереженн� або виберіть дл� перезапи�у", save_button = "Зберегти", } folders_window = { caption = "Мі�цезнаходженн� папок", data_label = "Дані гри TH", font_label = "Шрифт", music_label = "Музика", savegames_label = "Збереженн�", screenshots_label = "Скріншоти", -- next four are the captions for the browser window, which are called from the folder setting menu new_th_location = "Тут ви можете вибрати папку де зберігаєть�� в�тановлена гра Theme Hospital чи ISO файл. Коли ви виберете нову папку гра буде перезавантажена. Примітка: Типи файлів не відображають��.", savegames_location = "Виберіть папку розташуванн� збережень гри", music_location = "Виберіть папку дл� додаванн� �воєї музики у гру", screenshots_location = "Виберіть папку дл� збереженн� �воїх Скріншотів", back = "�азад", } customise_window = { caption = "Кори�тувацькі налаштуванн�", option_on = "Увімк", option_off = "Вимк", back = "�азад", movies = "Загальне керуванн� відеор�дом", intro = "Програвати Інтро", paused = "Будувати у паузі", volume = "Зменш. гучно�ті Хоткей", aliens = "Пацієнти з Інопланетною Д�К", fractured_bones = "Зламані кі�тки", average_contents = "Зберігати предмети кімнат", remove_destroyed_rooms = "Видал�ти знищені кабінети", } options_window = { caption = "�алаштуванн�", option_on = "Увімк", option_off = "Вимк", option_enabled = "Заді�но", option_disabled = "�е заді�но", fullscreen = "Повний екран", resolution = "Роздільна здатні�ть", capture_mouse = "Захопити мишу", right_mouse_scrolling = "Гортанн� мишею", right_mouse_scrolling_option_middle = "Середн� кнопка", right_mouse_scrolling_option_right = "Права кнопка", custom_resolution = "Кори�тувацька...", width = "Ширина", height = "Ви�ота", customise = "Більше налаштувань", folder = "Папки", language = "Мова гри", apply = "За�то�увати", cancel = "Відмінити", back = "�азад", scrollspeed = "Швидкі�ть гортанн�", shift_scrollspeed = "Пришвидшене гортаннн�", zoom_speed = "Швидкі�ть наближенн�", hotkey = "Гар�чі клавіші", check_for_updates = "Перевірити оновленн�", change_resolution = "Змінити розд. здат.", } audio_window = { audio = "Загальні аудіо", jukebox = "Програвач", back = "�азад", } menu_list_window = { name = "Ім'�", back = "�азад", save_date = "Змінено", ok = "Добре", } update_window = { caption = "Є �віже оновленн�!", new_version = "�ова Вер�і�:", current_version = "Поточна Вер�і�: ", download = "Перейти на �торінку завантаженн�", ignore = "Пропу�тити і повернути�ь у Головне меню", } save_map_window = { caption = "Збережені мапи (%1%)", new_map = "�ова мапа", missing_filename = "Будь ла�ка введіть назву нового файлу мапи чи виберіть файл мапи дл� перезапи�у.", save_button = "Зберегти", } hotkey_window = { caption_main = "�азначити гар�чі клавіші", caption_panels = "Клавіші панелі", button_accept = "Прийн�ти", button_defaults = "Скинути до початкових", button_cancel = "Відмінити", button_back = "�азад", button_toggleKeys = "Клавіші перемиканн�", button_gameSpeedKeys = "Клавіші швидко�ті гри", button_recallPosKeys = "Клавіші відновленн� позиції", panel_globalKeys = "Загальні клавіші", panel_generalInGameKeys = "О�новні внутрішньоігрові клавіші", panel_scrollKeys = "Клавіші гортанн�", panel_zoomKeys = "Клавіші збільшенн�", panel_gameSpeedKeys = "Клавіші швидко�ті гри", panel_toggleKeys = "Клавіші перемиканн�", panel_debugKeys = "Debug клавіші", panel_storePosKeys = "Клавіші збереженн� позиції", panel_recallPosKeys = "Клавіші відновленн� позиції", panel_altPanelKeys = "Клавіші додаткової панелі", global_confirm = "Підтвердити", global_confirm_alt = "Підтвердити Дод.", global_cancel = "Відмінити", global_cancel_alt = "Відмінити Дод.", global_fullscreen_toggle = "Повний екран", global_exitApp = "Вийти з додатка", global_resetApp = "Скинути додаток", global_releaseMouse = "Звільнити мишу", global_connectDebugger = "Debugger", global_showLuaConsole = "Lua Кон�оль", global_runDebugScript = "Debug Script", global_screenshot = "Скріншот", global_stop_movie_alt = "Зупинити Відеор�д", global_window_close_alt = "Закрити вікно", ingame_scroll_up = "Гортати вверх", ingame_scroll_down = "Гортати вниз", ingame_scroll_left = "Гортати вліво", ingame_scroll_right = "Гортати вправо", ingame_scroll_shift = "Пришвидшене гортанн�", ingame_zoom_in = "Збільшити", ingame_zoom_in_more = "Збільшити Ще", ingame_zoom_out = "Зменшити", ingame_zoom_out_more = "Зменшити Ще", ingame_reset_zoom = "Скинути збільшенн�", ingame_showmenubar = "Відобразити р�док меню", ingame_showCheatWindow = "Меню Чітів", ingame_loadMenu = "Завантажити гру", ingame_saveMenu = "Зберегти гру", ingame_jukebox = "Програвач", ingame_openFirstMessage = "Повідомленн� рівн�", ingame_pause = "Пауза", ingame_gamespeed_slowest = "�айповільніша", ingame_gamespeed_slower = "Повільна", ingame_gamespeed_normal = "�ормальна", ingame_gamespeed_max = "Швидка", ingame_gamespeed_thensome = "Ще трохи", ingame_gamespeed_speedup = "При�корена", ingame_panel_bankManager = "Менеджер банку", ingame_panel_bankStats = "Показники банку", ingame_panel_staffManage = "Керуванн� пер�оналом", ingame_panel_townMap = "Мапа мі�течка", ingame_panel_casebook = "Книга захворювань", ingame_panel_research = "До�лідженн�", ingame_panel_status = "Стату�", ingame_panel_charts = "Графіки", ingame_panel_policy = "Політика", ingame_panel_map_alt = "Мапа мі�течка 2", ingame_panel_research_alt = "До�лідженн� 2", ingame_panel_casebook_alt = "Книга захворювань 2", ingame_panel_casebook_alt02 = "Книга захворювань 3", ingame_panel_buildRoom = "Будувати кімнату", ingame_panel_furnishCorridor = "Оздобити коридор", ingame_panel_editRoom = "Змінити кімнату", ingame_panel_hireStaff = "�айн�ти пер�онал", ingame_rotateobject = "Обертати об'єкт", ingame_quickSave = "Швидке збереженн�", ingame_quickLoad = "Швидке завантаженн�", ingame_restartLevel = "Перезапу�тити рівень", ingame_quitLevel = "Покинути рівень", ingame_setTransparent = "Прозорий", ingame_toggleAnnouncements = "�нон�и", ingame_toggleSounds = "Звуки", ingame_toggleMusic = "Музика", ingame_toggleAdvisor = "Радник", ingame_toggleInfo = "Інформаці�", ingame_poopLog = "Dump Log", ingame_poopStrings = "Dump Strings", ingame_patient_gohome = "Відправити додому", ingame_storePosition_1 = "1", ingame_storePosition_2 = "2", ingame_storePosition_3 = "3", ingame_storePosition_4 = "4", ingame_storePosition_5 = "5", ingame_storePosition_6 = "6", ingame_storePosition_7 = "7", ingame_storePosition_8 = "8", ingame_storePosition_9 = "9", ingame_storePosition_0 = "10", ingame_recallPosition_1 = "1", ingame_recallPosition_2 = "2", ingame_recallPosition_3 = "3", ingame_recallPosition_4 = "4", ingame_recallPosition_5 = "5", ingame_recallPosition_6 = "6", ingame_recallPosition_7 = "7", ingame_recallPosition_8 = "8", ingame_recallPosition_9 = "9", ingame_recallPosition_0 = "10", } tooltip = { main_menu = { new_game = "Почніть перший рівень кампанії", custom_campaign = "Зіграйте кампанію �творену �пільнотою", custom_level = "Збудуйте вашу лікарню на кори�тувацькій мапі", continue = "Продовжіть �вою о�танню збережену гру", load_game = "Завантажте збережену гру", options = "�алаштуйте різні а�пекти гри", map_edit = "Створіть кори�тувацьку мапу", exit = "Ой ні, ні! Будь ла�ка не йдіть!", quit = "Ви майже вийшли з CorsixTH. Ви цілком впевнені, що хочете так вчинити?", }, new_game_window = { player_name = "Введіть ім'� �ким би хотіли назвати�ь у грі", difficulty = "Вибертіть �кладні�ть гри з �кою ви б хотіли грати", easy = "Якщо Ви новачок у економічних �имул�торах, ц� опці� �аме дл� Ва�", medium = "Це найоптимальніший вибір, �кщо Ви не можете визначити�ь", hard = "Якщо Ви �ильні у цьому типі гри і хочете �правжнього виклику, обирайте цей варіант", tutorial = "�ати�ніть тут, щоб увімкнути невеличку допомогу на початку гри", start = "Почати гру з вибраними налаштуванн�ми", cancel = "ОЙ, Я і не думав починати нову гру!", }, totd_window = { previous = "Показати попередню підказку", next = "Показати на�тупну підказку", }, options_window = { fullscreen = "Запу�кати гру на ве�ь екран чи у вікні?", fullscreen_button = "�ати�ніть щоб змінити режим вікна", resolution = "Роздільна здатні�ть з �кою повинна запу�кати�ь гра", select_resolution = "Вибрати нову роздільну здатні�ть", capture_mouse = "�ати�ніть, чи захоплювати кур�ор мищі у вікні гри", right_mouse_scrolling = "Перемкнути клавішу миші �ка викори�товуєть�� дл� гортаннн�", width = "Введіть бажану ширинку вікна", height = "Введіть бажану ви�оту вікна", apply = "За�то�увати введену роздільну здатні�ть", cancel = "�е за�то�овувати зміну роздільної здатно�ті", customise_button = "Більше налаштувань, щоб пер�оналізувати �вій ігровий до�від", folder_button = "�алаштуванн� папки", language = "Мова, �ка викори�товуватиметь�� у грі", select_language = "Виберіть мову гри", language_dropdown_item = "%s буде мовою гри", language_dropdown_no_font = "Виберіть шрифт у налаштованій папці, щоб заді�ти цю мову", back = "Закрити вікно налаштувань", scrollspeed = "Виберіть швидкі�ть гортанн� від 1 (найповільніша) до 10 (найшвидша). За замовчуванн�м - 2.", shift_scrollspeed = "Виберіть швидкі�ть гортанн� коли клавіша Shift зати�нута. 1 (найповільніша) до 10 (найшвидша). За замовчуванн�м - 4.", zoom_speed = "Виберіть швидкі�ть приближенн� камери від 10 (найповільніша) до 1000 (найшвидша). За замовчуванн�м - 80.", apply_scrollspeed = "Заді�ти введену швидкі�ть гортанн�.", cancel_scrollspeed = "Повернути�ь без зміни швидко�ті гортанн�.", apply_shift_scrollspeed = "Заді�ти введену пришвидшену швидкі�ть гортаннн�.", cancel_shift_scrollspeed = "Повернути�ь без зміни пришвидшеної швидко�ті гортаннн�.", apply_zoomspeed = "Заді�ти швидкі�ть приближенн�.", cancel_zoomspeed = "Повернути�ь без зміни швидко�ті приближенн�.", hotkey = "Змінити гар�чі клавіші.", check_for_updates = "Чи повинна гра перевір�ти оновленн� пі�л� запу�ку?", change_resolution = "Змінити роздільну здатні�ть на розміри, що вказані зліва", }, audio_window = { audio_button = "Ввімкнути або вимкнути в�е ігрове аудіо", audio_toggle = "Ввімкнути або вимкнути", jukebox = "Відкрити програвач, щоб налаштувати музику", }, save_game_window = { save_game = "Перезапи�ати гру «%s»", new_save_game = "Введіть ім'� нової гри", }, load_game_window = { load_game = "Завантажити гру %s", load_game_number = "Завантажити гру %d", load_autosave = "Завантажити автозбереженн�", }, hotkey_window = { button_accept = "Заді�ти та зберегти задані гар�чі клавіші", button_defaults = "Скинути в�і гар�чі клавіші до �тандартних", button_cancel = "Відмінити заданн� клавіш і повернути�ь у вікно налаштувань", caption_panels = "Відкрити вікно дл� заданн� гар�чих клавіш панелі", button_gameSpeedKeys = "Відкрити вікно дл� заданн� клавіш керуванн� швидкі�тю гри", button_recallPosKeys = "Відкрити вікно дл� заданн� клавіш зберіганн� і відновленн� позиції камери", button_back_02 = "Повернути�ь до о�новного меню гар�чих клавіш. Зміни із цього вікна за�то�ують� там", }, custom_campaign_window = { choose_campaign = "Виберіть кампанію, щоб дізнати�ь про неї більше", start_selected_campaign = "Почати перший рівень цієї кампанії.", }, } load_map_window = { caption = "Завантажити мапу (%1%)", load_button = "Завантажити", } menu = { file = " ГР� ", player_count = " КІЛЬКІСТЬ ГР�ВЦІВ ", options = " ��Л�ШТУВ���Я ", charts = " ГР�ФІКИ ", display = " ДИСПЛЕЙ ", debug = " ДЕБ�Г ", } menu_file = { load = " (%1%) З�В��Т�ЖИТИ ", save = " (%1%) ЗБЕРЕГТИ ", restart = " (%1%) ПЕРЕЗ�ПУСТИТИ ", quit = " (%1%) У ГОЛОВ�Е МЕ�Ю ", } menu_options = { game_speed = " ШВИДКІСТЬ ГРИ ", sound_vol = " ГУЧ�ІСТЬ ЗВУКІВ ", music_vol = " ГУЧ�ІСТЬ МУЗИКИ ", edge_scrolling = " ГОРТ���Я МИШЕЮ ", announcements = " (%1%) ПОВІДОМЛЕ��Я ", lock_windows = " З�ФІКСУВ�ТИ ВІК�� ", sound = " (%1%) ЗВУКИ ", announcements_vol = " ГУЧ�ІСТЬ ПОВІДОМЛЕ�Ь ", music = " (%1%) МУЗИК� ", autosave = " �ВТОЗБЕРЕЖЕ��Я ", jukebox = " (%1%) ПРОГР�В�Ч ", twentyfour_hour_clock = " 24-Х ГОДИ��ИЙ ФОРМ�Т Ч�СУ ", wage_increase = " З�ПИТИ ��ДБ�ВКИ ", warmth_colors = " КОЛЬОРИ ОП�ЛЕ��Я ", adviser_disabled = " (%1%) Р�Д�ИК ", capture_mouse = " З�ХОПЛЕ��Я МИШІ ", } menu_options_game_speed = { pause = " (%1%) П�УЗ� ", slowest = " (%1%) ��ЙПОВІЛЬ�ІШ� ", slower = " (%1%) ПОВІЛЬ�� ", normal = " (%1%) ЗВИЧ�Й�� ", max_speed = " (%1%) ШВИДК� ", and_then_some_more = " (%1%) І ЩЕ ТРОШКИ ", } menu_options_wage_increase = { grant = " ДОЗВОЛИТИ ", deny = " З�БОРО�ИТИ ", } menu_charts = { bank_manager = " (%1%) МЕ�ЕДЖЕР Б��КУ ", statement = " (%1%) ПОК�З�ИКИ Б��КУ ", staff_listing = " (%1%) СПИСОК ПЕРСО��ЛУ ", town_map = " (%1%) М�П� МІСТЕЧК� ", casebook = " (%1%) К�ИГ� З�ХВОРЮВ��Ь ", research = " (%1%) ДОСЛІДЖЕ��Я ", status = " (%1%) СТ�ТУС ", graphs = " (%1%) ГР�ІФКИ ", policy = " (%1%) ПОЛІТИК� ", briefing = " І�СТРУКЦІЇ", } menu_file_load = { [1] = " ГР� 1 ", [2] = " ГР� 2 ", [3] = " ГР� 3 ", [4] = " ГР� 4 ", [5] = " ГР� 5 ", [6] = " ГР� 6 ", [7] = " ГР� 7 ", [8] = " ГР� 8 ", } menu_debug_overlay = { heat = " ТЕМПЕР�ТУР� ", byte_0_1 = " Б�ЙТ 0 & 1 ", byte_6 = " Б�ЙТ 6 ", flags = " �ТРИБУТИ ", byte_7 = " Б�ЙТ 7 ", byte_5 = " Б�ЙТ 5 ", byte_floor = " Б�ЙТ ФЛУР ", positions = " КООРДИ��ТИ ", byte_w_wall = " Б�ЙТ З�Х. СТІ� ", parcel = " ДІЛЯ�КИ ", byte_n_wall = " Б�ЙТ ПІВ�. СТІ� ", none = " ПРИБР�ТИ ОВЕРЛЕЙ ", object_cells = " КЛІТИ�И ОБ'ЄКТІВ ", display_big_cells = " ВІДОБР�ЗИТИ ВЕЛИКІ КЛІТИ�И ", entry_cells = " КЛІТИ�И ВХОДІВ ", enter_nav_debug = " УВІЙТИ ��В. ДЕБ�Г ", allow_falling = " ДОЗВОЛИТИ П�Д�ТИ ", plant_pagers = " ПЕЙДЖЕРИ РОСЛИ� ", show_help_hotspot = " SHOW HELP HOTSPOTS ", pixbuf_cells = " PIXBUF CELLS ", keep_clear_cells = " КЛІТИ�И ТРИМ�ТИ ЧИСТИМИ ", win_level_anim = " ВИГР�ТИ ГРУ ��ІМ ", show_nav_cells = " ПОК�З�ТИ ��В. КЛІТИ�И ", lose_game_anim = { [1] = " ПРОГР�ТИ ГРУ 1 ��ІМ ", [2] = " ПРОГР�ТИ ГРУ 2 ��ІМ ", [3] = " ПРОГР�ТИ ГРУ 3 ��ІМ ", [4] = " ПРОГР�ТИ ГРУ 4 ��ІМ ", [5] = " ПРОГР�ТИ ГРУ 5 ��ІМ ", [6] = " ПРОГР�ТИ ГРУ 6 ��ІМ ", [7] = " ПРОГР�ТИ ГРУ 7 ��ІМ ", }, porter_pagers = " ПЕЙДЖЕРИ ПЕРЕ�ЕСЕ��Я ", machine_pagers = " ПЕЙДЖЕРИ �П�Р�ТІВ ", nav_bits = " ��В. БІТИ ", display_room_status = " ВІДОБР�ЗИТИ СТ�ТУС КІМ��ТИ ", mapwho_checking = " MAPWHO CHECKING ", } menu_file_save = { [1] = " ГР� 1 ", [2] = " ГР� 2 ", [3] = " ГР� 3 ", [4] = " ГР� 4 ", [5] = " ГР� 5 ", [6] = " ГР� 6 ", [7] = " ГР� 7 ", [8] = " ГР� 8 ", } menu_display = { shadows = " ТІ�І ", mcga_lo_res = " MCGA �ИЗЬК� РОЗД. ЗД�Т. ", high_res = " ВИСОК� РОЗД. ЗД�Т. ", } menu_player_count = { players_1 = " 1 Гравець ", players_2 = " 2 Гравці ", players_3 = " 3 Гравці ", players_4 = " 4 Гравці ", } install = { title = "--------------------------------- В�тановленн� CorsixTH ---------------------------------", th_directory = "Дл� CorsixTH потрібні оригінальні файли Theme Hospital (�бо її Демо вер�ії). Вкажить шл�х до даних гри нижче.", exit = "Вихід", ok = "OK", cancel = "Відмінити", } dynamic_info = { patient = { emergency = "�адзвичайна �итуаці�: %s", guessed_diagnosis = "Діагноз навманн�: %s ", diagnosis_progress = "Прогре� діагно�туванн�", actions = { sent_to_other_hospital = "Відправлений у іншу лікарню", prices_too_high = "Ваші ціни занадто ви�окі, - � йду додому", no_gp_available = "Чекає, коли ж ви збудуєте кабінет терапевта", waiting_for_treatment_rooms = "Очікує по�ви кабінету дл� лікуванн�", dying = "Помирає...", no_diagnoses_available = "У ва� немає нормального діагно�туванн�! Я йду.", epidemic_sent_home = "Відправлений додому �ан. ін�пектором", cured = "Вилікуваний!", waiting_for_diagnosis_rooms = "Очікує, най�корішої по�ви кабінету дл� діагно�туанн�", epidemic_contagious = "Заразливий!", awaiting_decision = "Очікує вашого рішенн�", sent_home = "Відправлений додому", fed_up = "Ді�тало в�е!", no_treatment_available = "У ва� немає належного ліківанн�. Бувайте!", on_my_way_to = "Йде до кабінету: %s", queueing_for = "У черзі в кабінет: %s", epidemic_vaccinated = "Вакцинований!", }, diagnosed = "Визначено захворюванн�: %s ", }, health_inspector = "Сан. Ін�пектор", vip = "ВІП", object = { times_used = "Викори�тано разів: %d", queue_size = "Довжина черги: %d", strength = "Міцні�ть: %d", queue_expected = "Очікувана черга: %d", strength_extra_info = "Міцні�ть %d (Покращуєть�� до %d)" }, staff = { actions = { going_to_repair = "Йде ремонтувати %s", fired = "Звільнений", waiting_for_patient = "Очікує пацієнта", wandering = "Безцільно блукає", heading_for = "Йде в кабінет: %s", vaccine = "Вакцинуванн�", }, tiredness = "Втома", psychiatrist_abbrev = "П�их.", ability = "Здібно�ті:", }, } handyman_window = { all_parcels = "В�і діл�нки", parcel = "Діл�нка", } font_location_window = { caption = "Виберіть шрифт (%1%)", } staff_title = { junior = "Інтерн", doctor = "Лікар", consultant = "Спеціалі�т", psychiatrist = "П�ихіатр", surgeon = "Хірург", researcher = "До�лідник", nurse = "Мед�е�тра", receptionist = "Рецепціоні�тка", general = "Загальна", } tooltip = { toolbar = { bank_button = "Ліва кнопка - Менеджер банку, права - Показники банку", balance = "Балан� лікарні", reputation = "Репутаці� лікарні", date = "Дата", rooms = "Кабінети дл� будуванн�", objects = "Об'єкти дл� оздобленн� коридору", edit = "Змінити кабінет або облаштуванн�", hire = "�айн�ти новий пер�онал", staff_list = "Керувати найн�тими працівниками", town_map = "Мапа", casebook = "Книга захворювань", research = "До�лідженн�", status = "Стату�", charts = "Графіки", policy = "Політика", }, menu_list_window = { name = "�ати�ніть тут, щоб �ортувати �пи�ок за ім'�м", save_date = "�ати�ніть тут, щоб �ортувати �пи�ок за датою зміни файлу", ok = "Підтвердити вибір", back = "Закрити це вікно", }, custom_game_window = { choose_game = "Виберіть рівень, щоб прочитати про нього більше", free_build = "Клікніть тут, �кщо Ви хочете пограти не задумуючи�ь про гроші чи цілі", load_selected_level = "Завантажити та запу�тити вибраний рівень", }, casebook = { cure_type = { drug = "Дл� лікуванн� будуть викори�тані такі ліки:", unknown = "Ви ще не знаєте �к вилікувати цю заразу", }, cure_requirement = { hire_staff = "Вам потрібно найн�ти працівника, щоб почати лікуванн�", hire_surgeon = "�айміть другого Хірурга дл� проведенн� операцій", not_possible = "Зараз Ви не�проможні вилікувати цю хворобу", hire_staff_old = "%s потрібен дл� проведенн� лікуванн�", hire_surgeons = "Дл� проведенн� операцій найміть ДВОХ Хірургів", build_ward = "Вам необхідно побудувати Палату дл� проведенн� цього лікуванн�", ward_hire_nurse = "Потрібно найн�ти Мед�е�тру дл� роботи у Палаті і проведенн� цього лікуванн�", }, }, main_menu = { load_menu = { load_slot = "З�В��Т�ЖИТИ ГРУ", empty_slot = "ПОРОЖ�ЬО", network = "З�ПУСТИТИ МЕРЕЖЕВУ ГРУ", }, }, update_window = { download = "Перейти на �торінку завантаженн� актуальної вер�ії CorsixTH", ignore = "Ігнорувати це оновленн� поки. Вам нагадають про нього пі�л� на�тупного запу�ку CorsixTH", }, save_map_window = { map = "Перезапи�ати мапу %s", new_map = "Введіть ім'� дл� збереженої мапи", }, folders_window = { browse_font = "Вибрати інший файл шрифта ( Поточне розташуванн�: %1% )", screenshots_location = "За замовчуванн�м, Скріншоти зберігають�� у папці, котра пор�д із файлом конфігурації. �атомі�ть Ви можете вибрати вла�ну папку вибравши директорію, �ку ви хочете викори�товувати.", reset_to_default = "В�тановити папку за замовчуванн�м ( %1% )", back = "Закрити це меню і повернути�ь до Меню налаштувань", music_location = "Виберіть розташуванн� вла�ної музики вибравши директорію, �ку ви збираєте�ь викори�товувати (Директорі� вже має бути �твореною).", font_location = "Виберіть розташуванн� файлу шрифта, �кий підтримує Unicode �имволи, �кщо цього потребує вибрана Вами мова. Якщо його не вказати, Ви не зможете вибрати мову, �имволів �кої не було у оригінаьній грі.", savegames_location = "За замовчуванн�м, Файли збережень зберігають�� у папці, котра пор�д із файлом конфігурації. �атомі�ть Ви можете вибрати вла�ну папку вибравши директорію, �ку ви хочете викори�товувати.", browse_data = "Виберіть інше розташуванн� файлів гри в�тановленої Theme Hospital ( Поточне розташуванн�: %1% ) ", browse = "Перегл�д папок", browse_screenshots = "Виберіть інше розташуванн� папки Скріншоти ( Поточне розташуванн�: %1% ) ", browse_music = "Виберіть інше розташуванн� папки Музика ( Поточне розташуванн�: %1% ) ", no_font_specified = "Розташуванн� файлу Шрифта поки не вказане!", not_specified = "Розташуванн� папки поки не вказане!", browse_saves = "Виберіть інше розташуванн� папки дл� Файлів збережень ( Поточне розташуванн�: %1% ) ", default = "Мі�цезнаходженн� за замовчуванн�м", data_location = "Папка, де зберігаєть�� в�тановлена гра Theme Hospital чи ISO файл, вона необхідна дл� запу�ку CorsixTH", }, customise_window = { movies = "Загальне управлінн� відеор�дом, це дозволить Вам відключити ве�ь відеор�д.", intro = "Увімкнути або вимкнути в�тупний ролик. Загальний відеор�д має бути ввімкненим, �кщо Ви хочете бачити в�тупний ролик кожного разу, �к запу�каєте CorsixTH.", paused = "У Theme Hospital гравець міг викори�товувати тільки меню у верхньому краю екрана, коли гра була на паузі. У CorsixTH так �амо за замовчуванн�м, але увімкнувши цю опцію можна робити в�е що завгодно, коли гра на паузі.", volume = "Якщо клавіша зниженн� гучно�ті також відкриває Книгу захворювань, увімкніть цю опцію, щоб змінити гар�чу клавішу Книги захворювань на Shift+C.", aliens = "Через від�утні�ть коректних анімацій, за замовчуванн�м пацієнти з Інопланетною Д�К будуть приходити лише під ча� �адзвичайної �итуації. Вимкніть цю опцію, щоб пацієнти з Інопланетною Д�К відвідували лікарню, �к і звичайні пацієнти.", fractured_bones = "Через погані анімації з оригінальної гри, не буде Пацієнток зі Зламаними кі�тками. Щоб дозволити Пацієнткам зі Зламаними кі�тками відвідувати Вашу лікарню, вимкніть цю опцію.", average_contents = "Якщо Ви хочете щоб гра запам'�товувала додаткові об'єкти, �кі ви викори�товуєте при облаштуванні кімнат, увімкніть цю опцію.", remove_destroyed_rooms = "Якщо хочете мати змогу видал�ти знищені кабінети, за певну платню, увімкніть цю опцію.", back = "Закрити це меню і повернути�ь до Головного меню", }, handyman_window = { happiness = "Задовільні�ть", salary = "Зарплатн�", parcel_select = "Діл�нка де Різноробочий виконує �вою роботу, нати�ніть щоб змінити", tiredness = "Втома", sack = "Звільнити", close = "Закрити", face = "Фото працівника", pick_up = "Підн�ти", center_view = "Центрувати екран на працівнику", name = "Ім'� працівнка", ability = "Здібно�ті", }, debug_patient_window = { item = "Створити те�тового пацієнта з хворобою: %s", }, research_policy = { no_research = "У цей момент до�ліджень цієї категорії не виконуєть��", research_progress = "Прогре� до на�тупного відкритт� у цій категорії: %1%/%2%", }, objects = { lamp = "Лампа: випромінює �вітло і дозвол�є бачити хоч що�ь.", op_sink1 = "33 Р�КОВИ��", litter_bomb = "Сміттєва бомба: �аботує роботу лікарні конкурента", x_ray = "27 РЕ�ТГЕ�", projector = "37 ПРОЕКТОР", radiation_shield = "28 ПРОТИР�ДІ�ЦІЙ�ИЙ ЩИТ", entrance_left = "58 ЛІВІ ВХІД�І ДВЕРІ", table2 = "12 СТІЛ", bed2 = "невикори�товувала�ь", console = "15 КО�СОЛЬ КЕРУВ���Я", operating_table = "30 ОПЕР�ЦІЙ�ИЙ СТІЛ", x_ray_viewer = "29 РЕ�ТГЕ� ЕКР��", crash_trolley = "20 �В�РІЙ�ИЙ ВІЗОК", shower = "54 З�ЕЗ�Р�ЖУЮЧИЙ ДУШ", electrolyser = "46 ЭЛЕКТРОЛІЗ�ТОР", hair_restorer = "25 ВІД�ОВЛЮВ�Ч ВОЛОССЯ", jelly_moulder = "47 З�ЕЖЕЛЕЮВ�Ч", couch = "18 КУШЕТК�", surgeon_screen = "35 ОПЕР�ЦІЙ�� ШИРМ�", bed3 = "невикори�товувала�ь", dna_fixer = "23 ВІД�ОВЛЮВ�Ч Д�К", chair = "Стілець: пацієнти на ньому �ид�ть і обговорюють �вої захворюванн�.", cast_remover = "24 ГІПСОВИД�ЛЯТОР", entrance_right = "59 ПР�ВІ ВХІД�І ДВЕРІ", cardio = "13 К�РДІОГР�Ф", slicer = "26 РІЗ�К", table1 = "Стіл (ВИД�ЛЕ�ИЙ): у ньому є журнали, щоб пацієнти трохи відволікли�ь.", ultrascanner = "22 �П�Р�Т КТ", scanner = "14 �П�Р�Т МРТ", op_sink2 = "34 Р�КОВИ��", door = "Двері: люди можуть відчин�ти і зачин�ти ї безліч разів.", swing_door2 = "53 РОЗП�Ш�І ДВЕРІ", screen = "16 ШИРМ�", gates_of_hell = "48 ВОРОТ� ДО ПЕКЛ�", blood_machine = "42 КРОВОЗБИР�Ч", comfortable_chair = "61 КОМФОРТ�Е КРІСЛО", swing_door1 = "52 РОЗП�Ш�І ДВЕРІ", rathole = "Дім �ім'ї пацючат, дл� �ких Ваша лікарн� до�ить брудна, щоб вважати її затишним домом.", }, } misc = { hospital_open = "Відкрити лікарню", save_success = "Гру збережено", save_failed = "Помилка: не вдало�� зберегти гру", low_res = "�изька роздільна здатні�ть", no_heliport = "�бо не до�ліджено жодного захворюванн�, або ж на мапі немає по�адкової площадки дл� гелікоптера. Можливо Вам потрібно по�тавити Рецепці� та найн�ти Рецепціоні�тку", grade_adverb = { extremely = "�к�тремально", mildly = "по�ереднє", moderately = "помірно", }, not_yet_implemented = "(ще не реалізовано)", send_message = "Відправити повідомленн� гравцю %d", out_of_sync = "Роз�инхронізаці� гри", balance = "Файл балан�у:", load_failed = "Збереженн� не завантажено", mouse = "Миша", done = "Зроблено", force = "При�коренн�", pause = "Пауза", send_message_all = "Відправити повідомленн� в�ім гравц�м", cant_treat_emergency = "Ваша лікарн� не зможе впорати�ь з цією �адзвичайною �итуацією, бо це захворюванн� ще недо�ліджене. Можете �пробувати ще раз", epidemic_no_diseases = "�еможливо �творити епідемію - немає інфекційних захворювань", earthquakes_on = "Землетру�и реактивовані", earthquakes_off = "Землетру�и деактивовані", epidemics_off = "Епідемії деактивовані", epidemics_on = "Епідемії реактивовані", epidemic_no_receptionist = "�еможливо �творити епідемію - у ва� немає рецепції", epidemic_no_icon_to_toggle = "�еможливо відобразити/приховати іконки інфікованих - немає активних, неви�влених епідемій", } errors = { unavailable_screen_size = "В�тановлений розмір екрану не підтримуєть�� у повноекранному режимі.", dialog_missing_graphics = "Вибачте, у файлах демо вер�ії немає цих діалогів.", load_prefix = "Помилка під ча� запу�ку гри: ", no_games_to_contine = "�емає збережених ігор", save_prefix = "Помилка при збереженні гри: ", map_file_missing = "�езнайдено файл мапи %s дл� цього рівн�!", minimum_screen_size = "Будь ла�ка введіть роздільну здатні�ть хоча б %dx%d.", alien_dna = "Примітка: У грі немає анімацій �идінн�, відкритт� чи �туканн� у двері і т.п., дл� пацієнтів з Інопланетною Д�К. Так �амо �к і в Theme Hospital, коли відбуватимуть�� ці дії пацієнти змін�ть�� на нормальних, а потім знов на прибульців. Пацієнти з Інопланетною Д�К з'�вл�тимуть�� тільки �кщо вони пропи�ані у файлі цього рівн�.", fractured_bones = "Примітка: �німації пацієнток зі Зламаними кі�тками неідеальні.", load_quick_save = "Помилка, не вдало�ь завантажити Швидке збереженн�, бо його немає, не хвилюйте�ь, тепер ми �творили його дл� ва�!", could_not_find_first_campaign_level = "�е вдало�ь знайти перший рівень цієї кампанії: %s", save_to_tmp = "Файл у %s не може бути викори�таним. Гра була збережена у %s. Помилка: %s", could_not_load_campaign = "�еможливо завантажити кампанію: %s", compatibility_error = { new_in_old = "Вибачте, це збереженн� �творено більш новою вер�ією CorsixTH, тому немає �умі�но�ті. Будь ла�ка оновіть до більш актуальної вер�ії.", demo_in_full = "Вибачте, ви не можете завантажити збережену гру із демо вер�ії, коли ви запу�тили повну вер�ію гри. Будь ла�ка змініть розташуванн� Дані гри TH у налаштуванн�х.", full_in_demo = "Вибачте, ви не можете завантажити збережену гру з повної вер�ії, коли ви запу�тили демо вер�ію гри. Будь ла�ка змініть розташуванн� Дані гри TH у налаштуванн�х.", }, dialog_empty_queue = "Вибачте, гуманоїд має порожню чергу дій, тому вони не знають, що їм робити далі. Будьла�ка перегл�ньте командне вікно, щоб дізнати�ь детальніше про це. Діалог з неправильним гуманоїдом відкритий. Хочете, щоб він покинув лікарню?", load_map_prefix = "Помилка під ча� завантаженн� мапи: ", music = "Є проблема із програванн�м одного чи більше аудіодоріжок у вашій папці з музикою. Проблемні файли будуть недо�тупні у програвачі. Перегл�ньте кон�оль дл� отриманн� детальної інформації.", load_level_prefix = "Помилка під ча� завантаженн� рівн�: ", } hotkeys_file_err = { file_err_01 = "�е вдало�ь завантажити hotkeys.txt. Будь ла�ка впевніть��, що у CorsixTH є дозволи на читанн�/запи�. ", file_err_02 = ", або викори�тайте параметр командної �троки --hotkeys-file=filename, щоб вказали файл, що до�тупний дл� запи�у. До відома, файл, що не завантажив�� був тут: ", } staff_list = { morale = "Задовільні�ть", tiredness = "Бадьорі�ть", skill = "�авички", total_wages = "УСЬОГО З�РПЛ�Т�І", } bank_manager = { current_loan = "Поточна позика", balance = "Балан�", interest_payment = "Від�откова плата", hospital_value = "Ціна лікарні", interest_rate = "Від�откова �тавка", inflation_rate = "Рівень інфл�ції", insurance_owed = "Страховий борг", statistics_page = { balance = "Балан�", details = "Детально", date = "Дата", current_balance = "Поточний балан�", money_in = "Заробіток", money_out = "Розтрати", }, } transactions = { severance = "Вихідна допомога", research = "Фінан�уванн� до�ліджень", eoy_trophy_bonus = "�агороди за під�умками року", buy_object = "Купівл�", cure_colon = "Лікуванн�:", wages = "Виплата зарплат", personal_bonus = "Виплата премії", drug_cost = "Ціна ліків", heating = "Рахунок за тепло", treat_colon = "Об�теженн�:", hire_staff = "�айн�ти на роботу", bank_loan = "Заборговані�ть у банку", insurance_colon = "Страхуванн�:", sell_object = "Продаж", loan_interest = "Виплата від�отку за позику", loan_repayment = "Погашенн� позики", buy_land = "Купівл� діл�нки", machine_replacement = "Заміна апарату", build_room = "Будівництво", drinks = "Продаж напоїв", cure = "Вилікувано", eoy_bonus_penalty = "�агороди/Штрафи за під�умками року", cheat = "Чіт на гроші", general_bonus = "Загальна нагорода", emergency_bonus = "�агорода за �адзвичайні �итуації", epidemy_coverup_fine = "Штраф за Покритт� епідемій", research_bonus = "�агорода за До�лідженн�", final_treat_colon = "О�таточне лікуванн�: ", jukebox = "Вхідне: програвач", vaccination = "Вакцинаці�", vip_award = "�агорода від ВІП", epidemy_fine = "Штраф за епідемію", compensation = "Компен�аці� від Ур�ду", deposit = "Депозит на лікуванн�", advance_colon = "Додатково: ", overdraft = "Овердрафт", remove_room = "Видаліть знищений кабінет", } town_map = { number = "�омер діл�нки", not_for_sale = "�е продаєть��", price = "Ціна діл�нки", for_sale = "Продаєть��", owner = "Вла�ник діл�нки", area = "Площа діл�нки", chat = "Інформаці� про мі�то", } high_score = { categories = { deaths = "Кількі�ть померлих", total_value = "Загальна варті�ть", money = "�айбагатший", cures = "Кількі�ть вилікуваних", visitors = "Кількі�ть відвідувачів", salary = "Розмір зарплати", clean = "Чи�тота", patient_happiness = "Задовільні�ть пацієнтів", cure_death_ratio = "Співвідношенн� вилікуваних/померлих", staff_happiness = "Задовільні�ть працівників", staff_number = "�айн�то працівників", }, player = "ГР�ВЕЦЬ", pos = "ПОЗ", best_scores = "З�Л� ПОШ��И", killed = "ПОМЕРЛО", worst_scores = "З�Л� Г��ЬБИ", score = "Р�ХУ�ОК", } research = { allocated_amount = "Розподілена кількі�ть", funds_allocation = "Розподіл фінан�уванн�", categories = { improvements = "Покращенн�", drugs = "До�лідженн� ліків", diagnosis = "Діагно�тичне обладнанн�", cure = "Обладнанн� дл� лікуваннн�", specialisation = "Спеціфлізаці�", }, } policy = { header = "Політика лікарні", diag_termination = "Припиненн� об�теженн�", sliders = { guess = "Діагноз навманн�", send_home = "Відправити додому", stop = "Зупинити", staff_room = "Відправити на відпочинок", }, diag_procedure = "Процедура об�теженн�", staff_rest = "Відправл�ти працівників на відпочинок", staff_leave_rooms = "Лишати кабінети", } casebook = { sent_home = "Відправлено додому", deaths = "Померлих", treatment_charge = "Плата за лікуванн�", reputation = "Репутаці�", research = "Зо�ередити до�лідженн�", cure = "Ліки", cured = "Вилікувано", earned_money = "Грошей зароблено", cure_desc = { hire_surgeons = "Вам необхідно найн�ти Хірургів.", improve_cure = "Покращити лікуванн�.", no_cure_known = "�емає відомого лікуванн�.", build_room = "Рекомендую вам збудувати %s", hire_psychiatrists = "Вам потрібно найн�ти П�ихіатра.", build_ward = "Вам потрібна Палата.", hire_nurses = "�айміть мед�е�тер.", cure_known = "Вилікуваний.", hire_doctors = "Візьміть на роботу Лікарів.", }, } progress_report = { quite_unhappy = "Відвідувачам не подобаєть�� у Вашій лікарні", header = "Звіти про прогре�", very_unhappy = "Відвідувачі дуже незадоволені об�луговуванн�м у Вашій лікарні!", more_drinks_machines = "По�тавте �втомати з напо�ми. Люди хочуть пити.", too_cold = "У лікарні занадто холодно, додайте ще Батарей", too_hot = "�алаштуйте �и�тему опаленн�, у ва� за�пекотно", percentage_pop = "Дол� відвідувачів", win_criteria = "Умови дл� перемоги", free_build = "Вільне будуванн�", } tooltip = { staff_list = { prev_person = "Попередн� �торінка", next_person = "�а�тупна �торінка", detail = "Увага до деталей", happiness = "�а�кільки ваші працівники задоволені �воєю роботою", tiredness = "Відображає �кільки ще зможе працівники працювати без відпочинку", ability = "Середні здібно�ті працівників по в�ій лікарні", happiness_2 = "Задовільні�ть працівника", ability_2 = "Здібно�ті працівника", tiredness_2 = "Запа� �ил працівника", researcher_train = "�а %d%% готовий отримати диплом До�лідника", surgeon_train = "�а %d%% готовий отримати диплом Хірурга", psychiatrist_train = "�а %d%% готовий отримати диплом П�ихіатра", researcher = "Дипломований до�лідник", psychiatrist = "Дипломований п�ихіатр", surgeon = "Дипломований хірург", handymen = "Показати �пи�ок в�іх Різноробочий вашої лікарні", nurses = "Показати �пи�ок в�іх Мед�е�тер вашої лікарні", doctors = "Показати �пи�ок в�іх Лікарів вашої лікарні", receptionists = "Показати �пи�ок в�іх Рецепціоні�ток вашої лікарні", pay_rise = "Підн�ти зарплату на 10%", bonus = "Виплатити премію у 10% від зарплати", salary = "Поточна зарплата", close = "Повернути�ь до гри", sack = "Звільнити працівника", doctor_seniority = "Ступінь доктора", view_staff = "Спо�терігати за працівником", skills = "Додаткові навички", }, town_map = { close = "Закрити", plants = "Відобразити ро�лини", fire_extinguishers = "Відобразити вогнега�ники", people = "Відобразити людей", balance = "Балан�", heat_dec = "Зменшити температуру", heating_bill = "Рахунок за опаленн�", radiators = "Відобразити батареїм", objects = "Відобразити меблі", heat_level = "Температура", heat_inc = "Збільшити температуру", }, policy = { diag_termination = "Об�теженн� буде продовжувати�ь допоки лікарі не будуть в певнені на �тільки від�отків у діагнозі або поки не закінчать�� у�і на�вні методи об�теженн�.", close = "Закрити вікно політики", staff_leave = "�ати�ніть тут, щоб дозволити працівникам лишати �вої кабінети і йти на поміч �воїм колегам.", diag_procedure = "Якщо лікар впевнений у діагнозі менше за значенн� «Відправити додому», пацієнта відпраіл�ть додому. Якщо впевнені�ть вища за «Діагноз навманн�», він буде відправлений на лікуванн�. У інших випадках вирішуєте о�оби�то Ви!", staff_rest = "Стомлені�ть працівника, коли він може піти на відпочинок.", staff_stay = "�ати�ніть тут, щоб лікарі не могли лишати кабінети, у �кі Ви їх назначили.", }, bank_manager = { graph = "Графік очікуваних виплат від %s", close = "Закрити вікно Банку", hospital_value = "Поточна варті�ть лікарні з у�ім обладнанн�м", graph_return = "Повернути�ь назад", current_loan = "Розмір поточної позики", borrow_5000 = "Позика у банку 5000$", balance = "Ваш балан�", interest_payment = "Щомі��чна виплата за позику", inflation_rate = "Розмір річної інфл�ці�", interest_rate = "Річний від�оток за позикою", repay_5000 = "Пога�ити позику 5000$", show_graph = "Відобразити графік очікуваних виплат від %s", insurance_owed = "Скільки грошей Вам повинні віддати %s", }, casebook = { sent_home = "Кількі�ть пацієнтів відправлених додому", increase = "Підн�ти варті�ть", decrease = "Знизити варті�ть", up = "Уверх", down = "Униз", reputation = "Репутаці� за лікуванн�", research = "�ати�ніть, щоб зо�ередити �пеціальний бюджет до�ліджень на цій пробемі", close = "Закрити", earned_money = "В�ього зароблено грошей", deaths = "Кількі�ть померлих", cured = "Кількі�ть вилікуваних", treatment_charge = "Варті�ть лікуванн�", cure_type = { psychiatrist = "Цим займаєть�� П�ихіатр", drug_percentage = "У Ва� є ліки від цього і вони ефективні на %d%", machine = "Дл� цього потрібен �пеціальний апарат", surgery = "Потребує Хірургічного втручанн�", }, cure_requirement = { possible = "Ви здатні це вилікувати", build_room = "Вам необхідно побудувати відповідний кабінет дл� лікуванн�", research_machine = "Дл� лікуванн� потрібно до�лідити новий апарат", hire_staff = "Вам потрібен лікар з відповідними навичками", }, }, status = { population_chart = "Відображає �піввідношенн� кілько�ті відвідувачів різних лікарень", percentage_cured = "Вам потрібно вилікувати принаймні %d% відвідувачів Вашої лікарні. �аразі Ви вилікували %d%", num_cured = "У цьому рівні Вам потрібно вилікувати %d пацієнтів. �азараз Вам вдало�ь вилікувати %d", thirst = "Середній рівень �праги відвідувачів Вашої лікарні", close = "Закрити вікно Стати�тики", win_progress_own = "Показати прогре� на шл�ху до Вашої перемоги", reputation = "Рівень Вашої репутації має бути хоча б %d. Поточна репутаці� %d", population = "Вам потрібно, щоб у Вашій лікарні об�луговували�ь хоча б %d%% від у�ього на�еленн�", warmth = "Средн� температура по в�ій лікарні", percentage_killed = "У цій мі�ії важливо не допу�тити більше %d%% померлих від в�іх відвідувачів. �азараз - %d%%", balance = "Сума на рахунку лікарні має бути %d$. Зараз у Ва� %d$", value = "Варті�ть Вашої лікарні має бути %d$. Поточна варті�ть %d$", win_progress_other = "Відобразити прогре� %s", happiness = "Загальна задовільні�ть об�луговуванн�м у Вашій лікарні", }, } build_room_window = { pick_room_type = "Виберіть тип кабінету", pick_department = "Виберіть кабінет", cost = "Варті�ть: ", } room_classes = { diagnosis = "Об�теженн�", treatment = "Терапі�", clinics = "Лікуванн�", facilities = "Службові", } rooms_short = { gps_office = "Кабінет терапевта", general_diag = "Загальне об�теженн�", ultrascan = "Кабінет КТ", research_room = "Кабінет до�лідництва", fracture_clinic = "Лікуванн� переломів", destroyed = "Знищено", staffroom = "Кімната відпочинку", jelly_vat = "Лікуванн� ожелеюванн�", scanner = "Кабінет МРТ", decontamination = "Знезаражуванн�", pharmacy = "Фармакологі�", cardiogram = "Кардіографі�", reception = "Рецепці�", training_room = "Лекційна кімната", corridor_objects = "Облаштуванн� коридору", operating_theatre = "Операційна", dna_fixer = "Виправленн� Д�К", ward = "Палата", psychiatric = "П�ихіатрі�", hair_restoration = "Відновленн� воло���", inflation = "Кабінет надуванн�", tongue_clinic = "Лікуванн� �зика", toilets = "Туалет", electrolysis = "Електроліз", x_ray = "Рентген", blood_machine = "Лабораторі� крові", } rooms_long = { ultrascan = "Кабінет комп'ютерної томографії", research_room = "До�лідницький відділ", general = "Загальні", gps_office = "Кабінет терапевта", inflation = "Кабінет надуванн�", staffroom = "Кімната відпочинку", jelly_vat = "Кабінет лікуванн� ожелеюванн�", scanner = "Кабінет магнітно-резонан�ної томографії", emergency = "Реанімаці�", decontamination = "Кабінет знезаражуванн�", corridors = "Коридори", cardiogram = "Кабінет кардіографії", ward = "Палата", training_room = "Лекційна кімната", psychiatric = "Кабінет п�ихіатра", operating_theatre = "Операційна", dna_fixer = "Кабінет виправленн� Д�К", tongue_clinic = "Кабінет обрізанн� довгого �зика", hair_restoration = "Кабінет відновленн� воло���", general_diag = "Кабінет загального об�теженн�", pharmacy = "Фармакологічний кабінет", fracture_clinic = "Кабінет лікуванн� переломів", toilets = "Туалет", electrolysis = "Кабінет електролізу", x_ray = "Рентген-кабінет", blood_machine = "Лабораторі� крові", } buy_objects_window = { price = "Варті�ть: ", choose_items = "Виберіть предмети", total = "Загалом: ", } object = { chair = "Стілець", litter = "Смітт�", sofa = "Диван", operating_table = "Операційний �тіл", bench = "Лавка", scanner = "�парат МРТ", couch = "Кушетка", blood_machine = "�налізатор крові", video_game = "Відеогра", op_sink2 = "Раковина", door = "Двері", auto_autopsy = "�второзтинач", reception_desk = "Рецепці�", hair_restorer = "Воло�овідновлювач", projector = "Проектор", crash_trolley = "�варійний візок", tv = "Телевізор", ultrascanner = "�парат КТ", surgeon_screen = "Хірургічна ширма", litter_bomb = "Сміттєва бомба", inflator = "�адувач", desk = "Пи�ьмовий �тіл", pool_table = "Біль�рд", x_ray_viewer = "�егато�коп", radiation_shield = "Протирадіаційний щит", bed = "Ліжко", swing_door2 = "Розпашні двері", console = "Кон�оль", op_sink1 = "Раковина", bookcase = "Книжкова шафа", drinks_machine = "�втомат з напо�ми", comfortable_chair = "Комфортне крі�ло", skeleton = "Скелет", computer = "Комп'ютер", bin = "Відро дл� �мітт�", pharmacy_cabinet = "Фармацептична шафа", radiator = "Батаре�", cast_remover = "Гіп�овидал�тор", atom_analyser = "�томний аналізатор", plant = "Ро�лина", jelly_moulder = "Формувач желе", cardio = "Кардіо доріжка", toilet = "Туалет", electrolyser = "Электролізер", fire_extinguisher = "Вогнега�ник", swing_door1 = "Розпашні двері", lecture_chair = "Лекційний �тілець", screen = "Ширма", toilet_sink = "Раковина", shower = "Душ", gates_of_hell = "Ворота до пекла", slicer = "Різак", dna_fixer = "Чи�тоген 2000", x_ray = "Рентген", cabinet = "Картотека", lamp = "Лампа", entrance_left = "Ліві вхідні двері", table2 = "Стіл", bed2 = "Ліжко", bed3 = "Ліжко", entrance_right = "Праві вхідні двері", table1 = "Стіл", rathole = "Пацюча нірка", } room_descriptions = { gp = { [1] = "Кабінет терапевта//", [2] = "Це найважливіший кабінет Вашої лікарні. В�і відвідувачі першочергово приход�ть �юди, щоб дізнати�ь, що з ними. Звід�и їх направл�ють на подальше об�теженн� або одразу на лікуванн�. Якщо пацієнтів буде забагато, можливо Вам знадобл�ть�� декілька таких кабінетів. Повні�тю об�тавлений і про�торний кабінет відображає пре�тиж лікар�, що у ньому працює. Також це �то�уєть�� і інших кімнат.//", [3] = "У кабінеті терапевта може працювати будь-�кий лікар.", }, general_diag = { [1] = "Загальне об�теженн�//", [2] = "Сюди приход�ть пацієнти, котрі потребують додаткового об�теженн�. В цьому кабінеті лікар має ширші можливо�ті дл� об�теженн� пацієнта, ніж у кабінеті терапевта. Пацієнт повернеть�� до терапевта з результатами об�теженн� дл� визначенн� діагнозу.//", [3] = "У кабінеті загального об�теженн� може працювати будь-�кий лікар.", }, ultrascan = { [1] = "Кабінет КТ//", [2] = "Комп'ютерна томографі� - один з кращих ін�турментів дл� об�теженн�. Якщо Ви хочете забезпечити пацієнтам найкращі умови об�теженн�, купуйте його. Він вартий кожної копійки!//", [3] = "Із КТ може працювати будь-�кий лікар. � також він потребує об�луговуванн�.", }, fracture_clinic = { [1] = "Лікуванн� переломів//", [2] = "Гіп�овидал�тор викори�товує потужний проми�ловий лазер, щоб прорізати затверділий гіп�, а пацієнт тим ча�ом відчуває незначний біль.//", [3] = "Дл� роботи цього кабінету необхідна мед�е�тра. �парат також вимагає ча�того об�луговуванн�.", }, inflation = { [1] = "Кабінет надуванн�//", [2] = "Пацієнти з хворобливою, але ве�елою �адутою головою отримують направленн� у кабінет надуванн�, де надута голова проколюєть��, з характерним звуком лу�нутої кульки, а потім надуваєть�� до звичайного розміру.//", [3] = "Дл� ек�плуатації апарату потрібен лікар. Вона також повинна перебувати під по�тійним нагл�дом Різноробочого.", }, jelly_vat = { [1] = "Лікуванн� ожелеюванн�//", [2] = "Пацієнти, �кі �траждають на кумедну хворобу Ожелеюванн�, повинні дотр��ти�� до цього кабінету, де їх поміщають у Формувач желе. Такими не зов�ім зрозумілими дл� медицини проце�ами вони виліковують��.//", [3] = "Цьому апарату потрібен лікар, а також Різноробочий, дл� його об�луговуванн�", }, scanner = { [1] = "Кабінет МРТ//", [2] = "Пацієнтів діагно�тують за допомогою цього модного �канера, а потім відправл�ють до кабінету терапевта дл� подальшого лікуванн�.//", [3] = "З МРТ може працювати будь-�кий лікар. �парат потребує регул�рного об�луговуванн�.", }, blood_machine = { [1] = "Лабораторі� крові//", [2] = "Ц� апаратура є ча�тиною діагно�тичного обладнанн�, �ка перевір�є колір клітин крові пацієнта та визначає їх �тан.//", [3] = "З Лабораторією крові може впорати�ь будь-�кий лікар. Вона потребує регул�рного об�луговуванн�.", }, pharmacy = { [1] = "Фармакологі�//", [2] = "Пацієнти, �ким в�тановлено діагноз, котрий можна вилікувати за допомогою ліків, повинні звернути�ь у Фармакологічний кабінет. О�кільки будуть винайдені нові ліки, кількі�ть відвідувачів кратно зро�те і �тане дуже ті�но, тож можливо знадобить�� ще одна Фармакологі�.//", [3] = "�а роботу в аптеку потрібна мед�е�тра.", }, cardiogram = { [1] = "Кардіографі�//", [2] = "Тут пацієнти, що ніколи не займають�� �портом, піддають�� ненави�ному бігу, �кий люто підвищує артеріальний ти�к. Ці показники допомагають лікарю по�тавити діагноз.//", [3] = "У Кардіографії може працювати будь �кий лікар. Біговій доріжці потрібне об�луговуванн�.", }, ward = { [1] = "Палата//", [2] = "Під ча� об�теженн�, паієнти лежать тут під нагл�дом мед�е�три. Також вони приход�ть �юди, щоб підготувати�� до операції. Дл� де�ких лікуванн� - це полежати із чаєм з лимоном.//", [3] = "В палаті нагл�дає мед�е�тра.", }, psych = { [1] = "П�ихіатрі�//", [2] = "Пацієнти з п�ихічним захворюванн�м повинні відвідувати кабінет п�ихіатра, де їх чекає лікар у зручному крі�лі. Потім вони л�гають на диван, їм �тавл�ть належний діагноз і, зрештою, лікують за допомогою магії та хабарів.//", [3] = "Дл� цього кабінету потрібен лікар, �кий має навички П�ихіатра.", }, staff_room = { [1] = "Кімната відпочинку//", [2] = "Ваші працівники втомлюють��, виконуючи �вою роботу. Їм ц� кімната потрібна дл� відпочинку та відновленн� �воїх �ил. Втомлені працівники повільні, починають вимагати більше грошей і врешті-решт можуть звільнити�ь. Вони також робл�ть більше помилок. Облаштуванн� кімнати дл� теревень, перегл�ду ТБ і можливі�ть захопленн� відеоіграми позбавить їх втоми. Переконайте��, що є мі�це дл� кількох працівників одноча�но.", }, operating_theatre = { [1] = "Операційна//", [2] = "Це важливе приміщенн�, де лікують різні хвороби, що потребують втручанн� �кальпел�, а деколи й бензопили. Приміщенн� повинно мати велику площу і в ньому повинно бути відповідне обладнанн�.//", [3] = "В операційну потрібні два лікарі з навичками Хірурга. Операційний �тіл потрібно рівн�ти ча� від ча�у пі�л� вибриків пацієнтів", }, training = { [1] = "Лекційна кімната//", [2] = "Ваші Інтерни та Лікарі можуть отримати цінні додаткові навички, навчаючи�ь у цій кімнаті. Спеціалі�т з навичками хірурга, до�лідника або п�ихіатра переда�ть їх будь-�кому лікарю, �кий навчаєть�� тут. Лікарі, �кі вже мають ці навички, раптом ви�вл�ть, що можуть викори�товувати їх більш ефективно.//", [3] = "Проводити навчанн� може тільки Спеціалі�т.", }, dna_fixer = { [1] = "Виправленн� Д�К//", [2] = "Пацієнтам, чи� Д�К мі�тить, �еред іншого, гени інопланет�н, необхідно виділити Д�К з тіла, ретельно очи�тити та повернути в у�і клітини назад у пацієнта. Чи�тоген 2000 є дуже �кладним обладнанн�м, тому про в��к випадок �лід мати пор�д вогнега�ник.//", [3] = "Чи�тоген 2000 потребує регул�рного технічного об�луговуванн� Різноробочим. Крім того, дл� роботи з ним потрібен лікар з навичкою До�лідника.", }, research = { [1] = "Кабінет до�лідництва//", [2] = "�айрозумніші лікарі цього кабінету винаход�ть і вдо�коналюють ліки та обладнанн�. Це важлива ча�тина Вашої лікарні, �ка робить неймовірне дл� того, щоб Ваш від�оток вилікуваних тільки зро�тав!.//", [3] = "У кабінеті до�лідництва можуть працювати тільки лікарі з навичкою До�лідника.", }, hair_restoration = { [1] = "Відновленн� воло���//", [2] = "Пацієнти, �кі �траждають на Ек�тремальне обли�інн�, направл�ють�� в цей кабінет дл� тран�плантації воло���. Лікар керує апаратом, �кий швидко ви�аджує нові воло��ні цибулини на ли�ину пацієнта.//", [3] = "З Воло�овідновлювачем може працювати будь-�кий лікар. Інколи потребує об�луговуванн�.", }, electrolysis = { [1] = "Кабінет електролізу//", [2] = "Пацієнтів із Заволошенн�м відправл�ють у цю кімнату, де �пеціальна машина під назвою Електролізер електрично ви�микує воло��� та закриває пори за допомогою �уміші, �хожої на в'�зкий розчин.//", [3] = "Електролізеру потрібен будь-�кий лікар. Він також потребує об�луговуванн� з боку Різноробочого.", }, slack_tongue = { [1] = "Лікуванн� �зика//", [2] = "У цю клініку направл�ють на лікуванн� пацієнтів з діагнозом «Заплетений �зик». Лікар за допомогою дуже �уча�ного та точного апарату розт�гуватиме та зрізатиме �зик, повертаючи йому належну форму.//", [3] = "Тут може працювати будь-�кий лікар. �парат також вимагає ча�того об�луговуванн�.", }, toilets = { [1] = "Туалет//", [2] = "Пацієнти, �кі відчувають поклик природи, повинні закривати �вої потреби в зручному туалеті. Ви можете побудувати додаткові кабінки та раковини, �кщо очікуєте багато відвідувачів. Можливо Вам �лід розгл�нути ідею будівництва додаткових туалетів в інших ча�тинах лікарні.", }, no_room = { [1] = "", }, x_ray = { [1] = "Рентген//", [2] = "Рентген робить знімки внутрішнього �віту пацієнтів за допомогою рентгенів�ьких променів, даючи пер�оналу гарне у�вленн� про те, що там в них відбуваєть��.//", [3] = "Із Рентгеном може працювати будь-�кий лікар. � також він потребує об�луговуванн�.", }, decontamination = { [1] = "Знезаражуванн�//", [2] = "Пацієнтів, �кі зазнали �адмірної радіоактивно�ті, негайно направл�ють до кабінету знезаражуванн�. У цій кімнаті є душ, �кий очищає їх від жахливої ​​радіації та бруду, пі�л� �кого пацієнта ще й причешуть.//", [3] = "Знезаражуючий душ вимагає уча�ті будь-�кого лікар�. Також він потребує перевірок технічного об�луговуванн� Різноробочим.", }, tv_room = { [1] = "Телевізійна кімната невикори�товувала�ь", }, } place_objects_window = { place_objects_in_corridor = "Роз�тавте ці предмети у коридорах.", place_windows = "Додайте вікон, �кщо хочете і нати�ніть «Підтвердити».", confirm_or_buy_objects = "Ви можете додати, прибрати або пере�унути предмети.", drag_blueprint = "Розт�гуєте кімнату до бажаного розміру.", place_door = "По�тавте двері.", place_objects = "Виберіть об'єкт та по�тавте його у потрібне мі�це, потім підтвердіть.", pick_up_object = "�ати�ніть на об'єкт щоб підн�ти його або виберіть іншу опцію.", } staff_class = { doctor = "Лікар", handyman = "Різноробочий", receptionist = "Рецепціоні�тка", nurse = "Мед�е�тра", surgeon = "Хірург", } staff_descriptions = { good = { [1] = "Дуже швидкий та �таранний працівник. ", [2] = "Сумлінно працює. Уважний до деталей. ", [3] = "Може буквально в�е. ", [4] = "�еймовірно доброзичливий і любить по�мі�ти��. ", [5] = "Дивовижна витривалі�ть. Працює без упину. ", [6] = "�адзвичайно ввічливий і завжди привітний. ", [7] = "�еймовірно талановитий і здібний. ", [8] = "Дуже відповідальний відно�но �воєї роботи. ", [9] = "�іколи не здаєть�� і прагне до�конало�ті. ", [10] = "Допомагає люд�м з по�мішкою. ", [11] = "Чарівний, ввічливий і завжди допоможе. ", [12] = "Загалом добре мотивований і відданий �праві. ", [13] = "Добрий і дуже працьовитий. ", [14] = "Відданий і дружній. ", [15] = "Обережний та надійний в надзвичайних �итуаці�х. ", }, misc = { [1] = "Збирає фігурки �лонів. ", [2] = "Любить дайвінг. ", [3] = "Робить �кульптури з льоду. ", [4] = "З'�вив�� в одному епізоді «�е вагай��, обертай��!» ", [5] = "Вла�ник �уперкарів. ", [6] = "Любить банджі-джампінг. ", [7] = "Збирає під�тавки під бокали пива. ", [8] = "Він любить �трибати зі �цени. ", [9] = "Він любить �ерфінг із пукальним при�коренн�м. ", [10] = "Розширює ру�ла річок. ", [11] = "Переган�є ві�кі. ", [12] = "До�відчений май�тер. ", [13] = "Любить фільми французьких режи�ерів. ", [14] = "Ча�то грає у Theme Park. ", [15] = "Має по�відченн� воді� вантажівки. ", [16] = "Бере уча�ть у перегонах на мотоциклах. ", [17] = "Грає на �крипці та віолончелі. ", [18] = "Завз�тий дивер�ант залізничних колій. ", [19] = "Обожнює �обак. ", [20] = "Співає у душі. ", [21] = "Він ча�то купаєть�� у фонтанах. ", [22] = "Ін�труктор з плетінн� кошиків. ", [23] = "Перетворює �віжі овочі на мильниці. ", [24] = "Комі�ар поліції за �умі�ництвом. ", [25] = "Колишній ведучий вікторини. ", [26] = "Збирає уламки �нар�діа Другої �вітової війни. ", [27] = "Любить переміщувати меблі. ", [28] = "Слухає рейв і тріп-хоп. ", [29] = "Він дратує комах �преєм-дезодорантом. ", [30] = "Перекрикує коміків на їх ви�тупах. ", [31] = "�ишпорить по кабінетах. ", [32] = "Він �адівник, але �криває це. ", [33] = "Торгує контрабандою підроблених годинників. ", [34] = "Співає в рок-н-рол гурті. ", [35] = "Обожнює денне телебаченн�. ", [36] = "Ло�коче форель. ", [37] = "Заманює тури�тів у музеї. ", }, bad = { [1] = "Повільний і дріб'�зковий. ", [2] = "Лінивий і немотивований. ", [3] = "Погано навчений і некомпетентний. ", [4] = "�ахабний і грубий. Діє люд�м на нерви. ", [5] = "Жахлива витривалі�ть та безвідповідальні�ть. ", [6] = "Глухий, �к колода. Тхне капу�тою. ", [7] = "Безкори�ний т�гар на роботі. ", [8] = "Імпуль�ивний і легко відволікаєть��. ", [9] = "Дуже хвилюєть�� тому �хильний до помилок. ", [10] = "Збочений і злий - палає ненави�тю до люду. ", [11] = "�еобережний, підвищує ризик неща�них випадків. ", [12] = "Він не зацікавлений у роботі. Вкрай ледачий. ", [13] = "Безглуздо ризикує і йому в�е одно. ", [14] = "Хитрий, під�тупний, дивер�ант. ", [15] = "Зарозумілий і �амовпевнений. ", }, } tooltip = { build_room_window = { cost = "Ціна обраного кабінета", room_classes = { treatment = "Відобразити терапевтичні кабінети", diagnosis = "Відобразити кабінети об�теженн�", facilities = "Відобразити �лужбові приміщенн�", clinic = "Відобразити кабінети лікуванн�", }, close = "Повернути�ь до гри", }, hire_staff_window = { prev_person = "Попередній кандидат", cancel = "Відмінити", psychiatrist = "П�ихіатр", surgeon = "Хірург", researcher = "До�лідник", salary = "Зарплатн�", next_person = "�а�тупний кандидат", nurses = "Перегл�нути мед�е�тер", handymen = "Перегл�нути різноробочих", doctors = "Перегл�нути лікарів", receptionists = "Перегл�нути рецепціоні�ток", doctor_seniority = "Ступінь (Інтерн, Лікар, Спеціалі�т)", hire = "�айн�ти", qualifications = "Додаткові навички лікар�", staff_ability = "Здібно�ті", }, place_objects_window = { confirm = "Підтвердити", cancel = "Відмінити", pick_up = "Підн�ти об'єкт", buy_sell = "Купити/Продати", }, rooms = { ultrascan = "Лікар оперує Комп'ютерною томографією дл� об�теженн� пацієнтів", research_room = "Лікарі з навичкою До�лідника винаход�ть нові ліки та апарати у Кабінеті до�лідництва", fracture_clinic = "Мед�е�тра викори�товує кабінет Лікуванн� переломів, щоб повторно зібрати Зламані кі�тки", gps_office = "Пацієнти отримують первинну кон�ультацію та результати об�теженн� у Кабінеті терапевта", inflation = "Лікар, за допомогою �адувача, лікує пацієнтів з хворобою �адута голова", staffroom = "Лікарі та мед�е�три відпочивають і відновлюють �или в Кімнаті відпочинку", jelly_vat = "За допомогою �пеціального апарату лікар виліковує Ожелеюванн�", scanner = "Лікар викори�товує МРТ дл� діагно�тики пацієнтів", decontamination = "Лікар викори�товує Знезаражуючий душ, щоб вилікувати �адмірну радіоактивні�ть", pharmacy = "В аптеці мед�е�тра роздає ліки �воїм пацієнтам", cardiogram = "Лікар викори�товує Кабінет кардіографії дл� об�теженн� пацієнтів", ward = "Палата кори�на �к дл� об�теженн�, так і дл� лікуванн�. Хворих направл�ють �юди дл� �по�тереженн� за ними, а також дл� відновленн� �ил перед операцією", training_room = "У лекційній Спеціалі�т може навчати інших лікарів", operating_theatre = "В операційну потрібні два лікар� з навичками Хірурга, щоб розважати�ь з нутрощами пацієнта", psychiatry = "П�ихіатрі� лікує п�ихічно хворих пацієнтів і допомагає об�тежити інших пацієнтів, але вимагає лікар� з навичками П�ихіатра", hair_restoration = "За допомогою Воло�овідновлювача лікар виліковує Ек�тремальне обли�інн�", tongue_clinic = "Лікар, оперуючи Різаком підрізатиме �зик, повертаючи йому належну форму", dna_fixer = "Тут лікують�� пацієнти з Інопланетною Д�К", general_diag = "Дл� загального об�теженн� пацієнтів лікар викори�товує цей кабінет. Дешево і ча�то дуже ефективно", toilets = "Будуйте туалети, щоб пацієнти не перетворили на них Вашу лікарню!", electrolysis = "Лікар викори�товує Електролізер дл� лікуванн� Заволошенн�", x_ray = "Лікар викори�товує Рентген дл� об�теженн� пацієнтів", blood_machine = "Лікар викори�товує Лабораторію крові дл� об�теженн� пацієнтів", }, objects = { litter = "Смітт�: �кий�ь пацієнт залишив його на підлозі, тому що не зміг знайти відро дл� �мітт�, щоб його викинути", sofa = "Диван: працівники, �кі відпочивають у Кімнаті відпочинку, тихо �идітимуть на дивані, �кщо немає кращого �по�обу розві�ти�ь", bench = "Лавка: забезпечує �ид�че мі�це дл� одного пацієнта, що робить очікуванн� болі�них процедур більш комфортним", video_game = "Відеогра: дозвольте �воїм �півробітникам відпочити в Petris", auto_autopsy = "�второзтинач: дуже кори�ний у до�лідженні нового", reception_desk = "Рецепці�: тут ве�ь ча� �тоїть Рецепціоні�тка, �ка направл�є пацієнтів до �вого першого лікар�", tv = "Телевізор: подбайте про те, щоб �півробітники не пропу�кали �вої улюблені мильні опери", inflator = "�адувач: надуває людей з �адутою головою", desk = "Стіл: важливо, щоб лікар по�тавив на нього �вій ПК", pool_table = "Біль�рдний �тіл: �півробітники можуть вдавати, що вміють грати в біль�рд", bed = "Ліжко: на них лежать вже занадто хворі люди", bookcase = "Книжкова шафа: зібранн� нерозкритих книг, завд�ки �ким лікарі вигл�дають розумнішими", drinks_machine = "�втомат з напо�ми: знижує �ередню �прагу пацієнтів і забезпечує невеликий дохід лікарні", skeleton = "Скелет: викори�товуєть�� �к по�ібник з анатомії і на Хелловін", computer = "Комп’ютер: невід'ємна ча�тина проце�у об�теженн�", bin = "Відро дл� �мітт�: пацієнти викидають �мітт� �юди", pharmacy_cabinet = "Фармацептична шафа: мі�це зберіганн� в�іх ліків", radiator = "Батаре�: захищає лікарню від утворенн� ожеледі", atom_analyser = "�томний аналізатор: цей апарат, розташований у Кабінеті до�лідника, при�корює в�і проце�и до�лідженн�", plant = "Ро�лина: робить пацієнтів ща�ливими та очищає повітр�", toilet = "Туалет: пацієнти, е-ем, тогой, кори�тують�� ним", fire_extinguisher = "Вогнега�ник: зменшує небезпеку від не�правних апаратів", lecture_chair = "Лекційний �тілець: ваші лікарі-інтерни �ид�ть тут, робл�ть нотатки, нудьгують і про�то малюють. Чим більше ви роз�тавите �тільців, тим більшим лікарів зможе навчати�ь", toilet_sink = "Раковина: Ваші пацієнти, �кі в�е ж дотримують�� гігієни, можуть мити в ній �вої брудні руки. Якщо раковин недо�татньо, пацієнти будуть незадоволені", cabinet = "Картотека: мі�тить картки пацієнтів, нотатки та результати об�тежень", }, } queue_window = { num_in_queue = "Довжина черги", num_entered = "У�ього відвідувань", max_queue_size = "Мак�. довжина", num_expected = "Очікуєть��", } tooltip = { handyman_window = { prio_machines = "Збільшити пріоритет Ремонту", prio_litter = "Збільшити пріоритет Прибиранн�", prio_plants = "Збільшити пріоритет Поливу", }, machine_window = { repair = "Викликати Різноробочого дл� ремонту", name = "�азва", close = "Закрити", times_used = "Кількі�ть викори�тань", status = "Стан", replace = "Замінити апарат", }, patient_window = { graph = "�ати�ніть, щоб переключити�� між графіком �амопочутт� пацієнта та і�торією його об�тежень", casebook = "Перегл�нути деталі хвороби пацієнта", close = "Закрити", queue = "Показати чергу кабінета, де чекає пацієнт", happiness = "Задовільні�ть пацієнта", warmth = "Відчутт� тепла пацієнта", center_view = "Зконцентрувати�ь на пацієнті", thirst = "Рівень �праги пацієнта", send_home = "Відправити пацієнта додому", abort_diagnosis = "�аправте пацієнта на лікуванн� пр�мо зараз і не чекайте завершенн� об�теженн�", }, staff_window = { doctor_seniority = "Ступінь (Інтерн, Лікар, Спеціалі�т)", psychiatrist = "П�ихіатр", close = "Закрити вікно", ability = "Здібно�ті", pick_up = "Підн�ти", sack = "Звільнити", surgeon = "Хірург", happiness = "Задовільні�ть", salary = "Щомі��чна зарплатн�", name = "Ім'�", tiredness = "Втома", center_view = "Ліва клавіша - центрувати екран, права - вибрати на�тупного працівника", skills = "Додаткові навички", researcher = "До�лідник", face = "Фото працівника - нати�ніть, щоб перейти до екрану керуванн� працівниками", }, } confirmation = { abort_edit_room = "Ви зараз будуєте або редагуєте кімнату. Якщо в�і необхідні об'єкти розміщені, вона буде завершена, інакше вона буде видалена. Продовжити?", return_to_blueprint = "Ви впевнені, що хочете повернути�� до режиму кре�ленн�?", delete_room = "Ви впевнені, що хочете видалити цю кімнату?", quit = "Ви вирішили вийти з гри. Ви в цьому впевнені?", needs_restart = "Зміна цього параметра вимагає перезапу�ку CorsixTH. Будь-�кий незбережений прогре� буде втрачено. Ви впевнені, що хочете це зробити?", overwrite_save = "Гра вже була збережена з цим ім'�м. Ви впевнені, що хочете її перезапи�ати?", sack_staff = "Ви впевнені, що хочете звільнити цього працівника?", replace_machine = "Ви впевнені, що бажаєте замінити %s за %d$?", restart_level = "Ви впевнені, що хочете перезапу�тити рівень?", maximum_screen_size = "Роздільна здатні�ть екрана, �ку ви ввели, перевищує 3000 x 2000. Цю роздільну здатні�ть можна змінити за умови, що у ва� є апаратне забезпеченн�, здатне опрацьовувати гру з плавною ча�тотою кадрів. Ви впевнені, що бажаєте продовжити?", remove_destroyed_room = "Ви впевнені, що хочете зруйнувати кімнату? Це буде коштувати %d$.?", replace_machine_extra_info = "�овий апарат буде мати �тан %d (зараз %d).", quit_mapeditor = "Ви впевнені, що хочете вийти з редактора мап?", restart_mapeditor = "Ви впевнені, що хочете перезапу�тити редактор мап?", } pay_rise = { definite_quit = "Ви не переконаєте мене залишити�ь, що б не робили. �удить вже від цього мі�ц�!", regular = { [1] = "Я повні�тю ви�нажений. Мені потрібно багато ча�у на відпочинок, до того ж � хочу підвищенн�. %d - і не менше, �кщо Ви зві�но не хочете, щоб � залишив цю дурну роботу.", [2] = "Я дуже втомив��. Мені потрібно дати відпочинок і підвищенн� зарплатні на %d, що загалом �тановитиме %d. Зроби це зараз, де�поте!", [3] = "Значить так. Я тут працюю, �к віл. Дай мені %d бону�у, і нехай, � залишу�ь у твоїй лікарні.", [4] = "Я дуже незадоволений. Я прошу %d підвищенн�, це зробить мою зарплату %d, інакше � піду від Ва�.", [5] = "Мої батьки �казали мені, що медична профе�і� добре оплачуєть��. Тож підвищте мою зарплату на %d, або � піду працювати розробником комп’ютерних ігор.", [6] = "До�ить вже з мене. Ви повинні платити мені при�тойну зарплату! Я думаю, %d підвищенн� має бути до�татньо.", }, poached = "%s запропонував мені %d. Якщо ви не заплатите мені �тільки ж, � піду до нього.", } diseases = { general_practice = { name = "Об�теженн�: терапевт", }, diag_ward = { name = "Об�теженн�: палата", }, diag_ultrascan = { name = "Об�теженн�: КТ", }, diag_blood_machine = { name = "Об�теженн�: лабораторі� крові", }, diag_x_ray = { name = "Об�теженн�: рентген", }, diag_psych = { name = "Об�теженн�: п�ихіатр", }, diag_general_diag = { name = "Об�теженн�: загальгне об�теженн�", }, diag_cardiogram = { name = "Об�теженн�: кардіограма", }, diag_scanner = { name = "Об�теженн�: МРТ", }, autopsy = { name = "Розтин", }, third_degree_sideburns = { cause = "Причина - журба за 70-ми.", cure = "Лікуванн� - за допомогою новітніх методів п�ихіатр повинен переконати пацієнта, що бли�к і туфлі на платформі не такі вже й зручні.", name = "Бакенбарди третього �тупен�", symptoms = "Симптоми - довге воло���, штани кльош, взутт� на платформі та ��ючий макі�ж.", }, discrete_itching = { cause = "Причина - маленька комаха з го�трими зубками.", cure = "Лікуванн� - пацієнт п'є аптечний липкий �ироп, що виділ�єть�� з потом. Це не дає кома�і на�олодити�ь ку��ми і вона йде.", name = "�адзвичайний �вербіж", symptoms = "Симптоми - пацієнт завжди роздр�паний.", }, the_squits = { cause = "Причина - пацієнт з'їв піцу, знайдену за плитою.", cure = "Лікуванн� - липка �уміш в'�зких фармакологічних хімікатів за�покоїть не�покійний травний тракт.", name = "Діаре�", symptoms = "Симптоми - Гм... Ви, мабуть і �амі знаєте.", }, spare_ribs = { cause = "Причина - ковтанн� таблеток, не запиваючи їх.", cure = "Лікуванн� - ребра повинні бути видалені двома хірургами та віддані пацієнту в поліетиленовому пакеті з логотипом лікарні.", name = "Зайві ребра", symptoms = "Симптоми - неприємні відчутт� в обла�ті грудної клітини.", }, king_complex = { cause = "Причина - дух корол� проникає в під�відомі�ть пацієнта, повні�тю захоплюючи його розум.", cure = "Лікуванн� - п�ихіатр розповідає пацієнту, на�кільки �міховинно він вигл�дає.", name = "Синдром Корол�", symptoms = "Симптоми - но�інн� різнокольорових замшевих туфель і вживанн� черезмірної кілько�ті чізбургерів.", }, fake_blood = { cause = "Причина - пацієнт ча�то �тає жертвою в�іл�ких розіграшів", cure = "Лікуванн� - по�иденьки у п�ихіатра в за�покійливому �ередовищі є єдиним �по�обом боротьби з цим розладом.", name = "Фальшива кров", symptoms = "Симптоми - такого неприємного крикуна неможливо прогледіти в натовпі.", }, invisibility = { cause = "Причина - уку� радіоактивного (і зві�но ж невидимого) мурахи.", cure = "Лікуванн� - кольорова рідина, випита в аптеці, незабаром поверне пацієнту повну палітру кольорів його зовнішнього вигл�ду.", name = "�евидимі�ть", symptoms = "Симптоми - Пацієнти жодним чином не �траждають. �авпаки, де�кі зловживають цією хворобою, щоб влаштовувати розіграші над друз�ми.", }, golf_stones = { cause = "Причина - вплив на пацієнта отруйного газу, що мі�тить�� у м'�чиках дл� гольфу.", cure = "Лікуванн� - камінчики видал�ють�� за допомогою операції, �ка вимагає двох хірургів.", name = "Гольфові камінчики", symptoms = "Симптоми - �тан �плутано�ті �відомо�ті і підвищене відчутт� �орому.", }, infectious_laughter = { cause = "Причина - ча�тий перегл�д кла�ичних комедій.", cure = "Лікуванн� - кваліфікований п�ихіатр повинен нагадати пацієнту про т�жкі�ть його хвороби і �амого житт�.", name = "Заразливий �міх", symptoms = "Симптоми - безнадійні �проби �тримуванн� �міху та повторенн� одних і тих же жартів.", }, baldness = { cause = "Причина - брехн� та вигадуванн� і�торій дл� підвищенн� попул�рно�ті.", cure = "Лікуванн� - штучне воло��� з непридатних дл� продажу перук повертаєть�� на голову пацієнта.", name = "Ек�тремальне обли�інн�", symptoms = "Симптоми - ��йво поверхні голови, що за�ліплює в�іх навколо.", }, heaped_piles = { cause = "Причина - �идінн� на холодних кам'�них �ходах.", cure = "Лікуванн� - �мачний, хоча і �ильноки�лий напій розчин�є геморой з�ередини.", name = "Зат�гнутий геморой", symptoms = "Симптоми - пацієнт відчуває �ебе так ніби �идить на мішку з кульками дл� на�тільного тені�у.", }, unexpected_swelling = { cause = "Причина - що�ь не�подіване.", cure = "Лікуванн� - набр�к можна зменшити за допомогою набору акупунктурних голок під ча� операції, що потребує двох хірургів.", name = "�еочікуваний набр�к", symptoms = "Симптом - набр�к.", }, jellyitis = { cause = "Причина - дієта, багата на желатин, і надмірні фізичні вправи.", cure = "Лікуванн� - пацієнта тимча�ово кладуть у Формувач желе в �пеціальній кімнаті.", name = "Ожелеюванн�", symptoms = "Симптоми - надмірне тремтінн�, ча�ті падінн� та дивна кон�и�тенці�.", }, hairyitis = { cause = "Причина - тривале перебуванн� під повним мі��цем.", cure = "Лікуванн� - електроліз видал�є воло��� та закриває пори.", name = "Заволошенн�", symptoms = "Симптоми - у пацієнта значно розвинений нюх.", }, alien_dna = { cause = "Причина - �трибаючі в обличч� мікроорганізми з кров'ю інопланет�н.", cure = "Лікуванн� - за допомогою �пеціального апарату необхідно виділити Д�К з тіла, ретельно очи�тити та повернути в у�і клітини назад у пацієнта", name = "Інопланетна Д�К", symptoms = "Симптоми - по�тупове перетворенн� на інопланет�н і бажанн� знищити земні по�еленн�.", }, bloaty_head = { cause = "Причина - нюханн� �иру та вживанн� неочищеної дощової води.", cure = "Лікуванн� - надута голова дуже обережно здуваєть��, а потім обережно й дуже точно надуваєть�� до потрібного ти�ку за допомогою розумного апарату.", name = "�адута голова", symptoms = "Симптоми - пацієнт відчуває �ебе дуже некомфортно.", }, gastric_ejections = { cause = "Причина - го�тра мек�икан�ька або індій�ька їжа.", cure = "Лікуванн� - вживанн� �пеціального клею запобігає виходу будь-чого з�ередини пацієнта.", name = "Кишечні виверженн�", symptoms = "Симптоми - напівперетравлена ​​їжа виходить з пацієнта в невеликих кілько�т�х і в непередбачений ча�.", }, uncommon_cold = { cause = "Причина - кашель з �опл�ми, �кі розно�ить �у�ід.", cure = "Лікуванн� - великий ковток надзвичайного лікувального зілл� зі �пеціальних інгредієнтів, виготовлених у Фармакології.", name = "�езвичайна за�туда", symptoms = "Симптоми - �опливий ні�, чханн� та зміна кольору легенів.", }, corrugated_ankles = { cause = "Причина - роки за кермом без перерви.", cure = "Лікуванн� - �пазм, викликаний злегка отруйною �умішшю трав, поверне щиколоткам перві�ну форму.", name = "Зкручені щиколотки", symptoms = "Симптоми - улюблене взутт� пацієнта не підходить.", }, sleeping_illness = { cause = "Причина - гіперактивна �онна залоза на піднебінні.", cure = "Лікуванн� - мед�е�тра зробить дуже міцної кави у маленькій філіжанці.", name = "Сонна хвороба", symptoms = "Симптоми - непереборне бажанн� �пати в�юди.", }, sweaty_palms = { cause = "Причина - �трах перед �півбе�ідами.", cure = "Лікуванн� - п�ихіатр повинен буквально відговорити пацієнта від цієї хвороби.", name = "Пітніючі долоні", symptoms = "Симптоми - руко�ти�канн� пацієнта в�е одно, що �ти�кати щойно зібраний гриб.", }, serious_radiation = { cause = "Причина - помилкове прийн�тт� ізотопів плутонію за жувальну гумку.", cure = "Лікуванн� - пацієнта необхідно помі�тити в знезаражуючий душ і ретельно вимити.", name = "�адмірна радіоактивні�ть", symptoms = "Симптоми - пацієнти почувають�� дуже, дуже погано.", }, gut_rot = { cause = "Причина - �ироп від кашлю «Ві�кі �тарих добрих ча�ів тітоньки О'Мейлі».", cure = "Лікуванн� - мед�е�тра може зробити мік�туру з розчинених хімічних речовин, щоб покрити шлунок.", name = "Прогнивщі кишки", symptoms = "Симптоми - немає кашлю, але і �лизової оболонки шлунка теж нема.", }, iron_lungs = { cause = "Причина - мі�ький �мог, змішаний з крихтами шашлику.", cure = "Лікуванн� - два хірурги виконують операцію з видаленн� залізних легень і в�тановленн� нових зі �кладу.", name = "Залізні легені", symptoms = "Симптоми - здатні�ть дихати вогнем і голо�но кричати під водою.", }, broken_wind = { cause = "Причина - вправи на біговій доріжці одразу пі�л� вживанн� їжі.", cure = "Лікуванн� - пацієнту дають ліки з ароматом фіалки.", name = "Отруйні вітри", symptoms = "Симптоми - прищіпки на но�ах людей, що знаход�ть�� позаду пацієнта.", }, kidney_beans = { cause = "Причина - вживанн� кубиків льоду в напо�х.", cure = "Лікуванн� - два хірурги повинні видалити боби, не торкаючи�ь нирок.", name = "Боби в нирках", symptoms = "Симптоми - біль і ча�ті походи в туалет.", }, transparency = { cause = "Причина - злизуванн� залишків йогурту з кришечки.", cure = "Лікуванн� - дорогі ліки, виготовлені з підфарбованої води, вилікують цю хворобу.", name = "Прозорі�ть", symptoms = "Симптоми - тіло пацієнта вигл�дає �к тов�те �кло", }, broken_heart = { cause = "Причина - хто�ь багатший, молодший і �трункіший за пацієнта.", cure = "Лікуванн� - два хірурги розкривають грудну клітку і, затримуючи диханн�, обережно заклеюють �ерце клейкою �трічкою.", name = "Розбите �ерце", symptoms = "Симптоми - безперервний плач і руки, повні фотографій із відпу�тки з другою половинкою.", }, slack_tongue = { cause = "Причина - вічне обговоренн� �еріалів.", cure = "Лікуванн� - �зик поміщаєть�� в різак і швидко, філігранно та безболі�но видал�єть��.", name = "Заплетений �зик", symptoms = "Симптоми - п'�тикратно збільшений, зви�аючий �зик.", }, tv_personalities = { cause = "Причина - перегл�д телевізора щодн�.", cure = "Лікуванн� - кваліфікований п�ихіатр повинен переконати пацієнта продати �вій телевізор і купити радіо.", name = "Медійна о�оби�ті�ть", symptoms = "Симптоми - ілюзі� того, що ви можете ве�ти телепрограму Шеф-кухар.", }, ruptured_nodules = { cause = "Причина - банджі-джампінг у холодну погоду.", cure = "Лікуванн� - два кваліфіковані хірурги повинні видалити грижі, викори�товуючи �вої міцні руки.", name = "Грижі", symptoms = "Симптоми - неможливі�ть зручно �идіти.", }, fractured_bones = { cause = "Причина - падінн� з ви�оти его до рівн� IQ пацієнта", cure = "Лікуванн� - пацієнта муміфікують у гіп�і. Потім надлишки гіп�у потрібно зрізати.", name = "Зламані кі�тки", symptoms = "Симптоми - гучний хру�кіт і неможливі�ть викори�товувати уражені кінцівки.", }, chronic_nosehair = { cause = "Причина - підне�енн� �ебе над іншими.", cure = "Лікуванн� - пацієнт отримує ліки такої ж �ко�ті, �к і в�і інші в аптеці.", name = "Хронічне но�оволо��інн�", symptoms = "Симптоми - ву�а з воло��� в но�і, в �ких навіть бор�ук міг би зробити �обі барліг.", }, pregnancy = { cure = "Лікуванн� - дитину ді�тають в операційній, миють і знайомл�ть з пацієнтом.", cause = "Причина - відключенн� електроенергії в мі�тах.", name = "Вагітні�ть", symptoms = "Симптоми - безперервна т�га до їжі та відчутт� похмілл�.", }, } fax = { epidemic = { cover_up_explanation_1 = "З іншого боку, �кщо Ви �пробуєте це приховати, у Ва� буде обмежений ча�, щоб вилікувати в�іх інфікованих пацієнтів до того, �к про це дізнають�� у міні�тер�тві охорони здоров'�.", cover_up_explanation_2 = "Якщо �ан. ін�пектор відвідає лікарню та ви�вить, що епідемію в�е ще приховують, він може вжити рішучих заходів проти Ва�.", choices = { cover_up = "Спробуйте вилікувати в�іх інфікованих пацієнтів за в�тановлений ча� і до того, �к хто�ь з них покине лікарню.", declare = "Оголо�ити епідемію. Сплатити штраф підмочивши репутацію лікарні.", }, disease_name = "Ваші лікарі ви�вили заразний штам %s.", declare_explanation_fine = "Якщо ви оголо�ите про епідемію, Ви �платите %d штрафу, отримаєте удар по репутації, а в�і Ваші пацієнти будуть автоматично вакциновані.", }, epidemic_result = { fine_amount = "Ур�д оголо�ив надзвичайний �тан і штрафує Ва� на %d$.", close_text = "Ура!", hospital_evacuated = "Міні�тер�тво охорони здоров'� не мало вибору, окрім �к евакуювати в�ю лікарню.", succeeded = { part_1_name = "До �ан. ін�пектора дійшли чутки, що ваш заклад має �праву з важким випадком %s.", part_2 = "Однак він не зміг знайти доказів дл� підтвердженн� цих чуток.", }, compensation_amount = "Ур�д вирішив нагородити ва� %d$ �к компен�ацію за шкоду, завдану цією маленькою брехнею доброму імені вашої лікарні.", failed = { part_1_name = "�амагаючи�ь приховати той факт, що попереду �палах %s,", part_2 = "пер�онал Вашої лікарні �причинив поширенн� хвороби по в�ьому району лікарні.", }, rep_loss_fine_amount = "Ц� новина буде в у�іх газетах! Ваша репутаці� буде �ерйозно запл�мована. � також Ва� очікує штраф у розмірі %d$.", }, vip_visit_query = { choices = { invite = "Видати офіційне запрошенн� дл� ВІП", refuse = "Відхилити візит ВІП з найщирішими вибаченн�ми", }, vip_name = "%s ви�ловив бажанн� відвідати вашу лікарню", }, vip_visit_result = { telegram = "Телеграма!", remarks = { [1] = "Це дивовижна лікарн�! Коли � знову підхоплю �ку�ь заразу, везіть мене одразу �юди.", [2] = "Оце � називаю Лікарнею!", [3] = "У ва� чудова лікарн�. І � знаю про що кажу, відвідав � їх не мало.", [4] = "Яка файно організована лікарн�. Д�кую за запрошенн�.", [5] = "Хм. � й �правді, гарний медичний заклад", [6] = "Мені �подобала�� ваша чарівна лікарн�. �у, гаразд, хто�ь хоче переку�ити тай�ьким каррі?", [7] = "Я... бачив і гірше. �езважаючи на це, є а�пекти, �кі можна було б покращити.", [8] = "О боже. Я б не хотів опинити�� тут, �кби � був хворий.", [9] = "Що можу �казати, до�ить звичайна лікарн�. Че�но кажучи, � очікував більшого.", [10] = "Чому � взагалі тут швенд�в��? Це було гірше, ніж чотиригодинна опера!", [11] = "Мені огидно від того, що � у Ва� побачив. Ви називаєте це лікарнею? Скоріше �мітником!", [12] = "Мені набридло бути на очах громад�ько�ті та відвідувати такі діри, �к Ваша! Я подаю у від�тавку!", [13] = "Хіба це не мі�ьке звалище? Я зроблю в�е, що в моїх �илах, щоб закрити цей заклад!", [14] = "Я ніколи раніше не бачив такої жахливої ​​лікарні. Яка ганьба!", [15] = "Я в шоці. Це не можна назвати лікарнею! Я йду пити пиво...", free_build = { [1] = "У ва� дуже мила лікарн�. �е �кладно буде запу�тити її без обмежень щодо грошей, правда?", [2] = "Я не економі�т, але � думаю, що � теж зможу керувати цією лікарнею. Якщо розумієте про що це �...", [3] = "Файно працююча лікарн�. Стережіть�� криз! Хоча ... вам тут нема про що турбувати��.", }, }, rep_boost = "Ваша репутаці� зро�ла.", vip_remarked_name = "Пі�л� візиту до Вашої лікарні %s зазначив:", cash_grant = "Ви отримали грошову підтримку у розмірі %d$.", rep_loss = "Ваша репутаці� по�траждала.", close_text = "Д�куємо, що відвідали лікарню.", }, disease_discovered = { discovered_name = "Ваша команда ви�вила нову хворобу. Це %s", can_cure = "Ви можете вилікувати цю хворобу.", close_text = "Було ви�влено нову хворобу.", need_to_build = "Вам потрібно побудувати %s дл� лікуванн�.", need_to_build_and_employ = "Якщо ви побудуєте %s і наймете %s, ви зможете вилікувати цю хворобу.", need_to_employ = "�айміть %s дл� вирішенн� цієї проблеми.", }, disease_discovered_patient_choice = { need_to_build = "Вам потрібно збудувати %s, щоб мати змогу лікувати людей з такою хворобою.", need_to_employ = "�айміть %s дл� вирішенн� цієї проблеми.", what_to_do_question = "Що робити з пацієнтом?", guessed_percentage_name = "Ваша команда, провівши об�теженн� в�іма на�вними методами, ви�унула теорію, що це %s з імовірні�тю в %d%", choices = { send_home = "Відправити пацієнта додому.", research = "Відправити пацієнта у Кабінет до�лідництва.", wait = "Хай пацієнт почекає де�кий ча� у лікарні.", }, disease_name = "Ваша команда ви�вила нову хворобу. Це %s", need_to_build_and_employ = "Якщо ви збудуєте %s і наймете %s, ви зможете до��гти у�піху у лікуванні.", can_not_cure = "Ви не можете вилікувати цю хворобу.", }, diagnosis_failed = { choices = { send_home = "Відправити пацієнта додому.", take_chance = "Спробувати вилікувати за на�вними результатами об�теженн�.", wait = "�ехай пацієнт чекає, доки не буде побудовано більше кабінетів дл� об�теженн�.", }, situation = "Ми вичерпали в�і на�вні методи об�теженн� дл� цього пацієнта, і в�е ще не впевнені, що з ним не так.", what_to_do_question = "Що нам робити з пацієнтом?", partial_diagnosis_percentage_name = "Можливо ми визначили, що з пацієнтом. І�нує ймовірні�ть у %d від�отків, що у нього %s.", }, emergency = { locations = { [1] = "Липецький хімічний завод", [2] = "Липовий Універ�итет", [3] = "Садовий центр вибіркового озелененн�", [4] = "Ін�титут до�лідженн� небезпечних речовин", [5] = "З'їзд танцюри�тів випу�ку Поплав�ького", [6] = "Паб «Bullfrog»", [7] = "Похоронний �алон «�а�олода і Монополі�»", [8] = "Магазин тай�ького каррі", [9] = "Імпері� оброблених нафтохімікатів Барта", }, num_disease = "До на� пр�мують %d людей з хворобою %s, і вони потребують негайної допомоги.", cure_possible_drug_name_efficiency = "У ва� вже є необхідне обладнанн� та навички. У ва� є препарат, �кий їм потрібен. Це %s, і ліки ефективні на %d від�отків.", cure_not_possible_employ = "Вам потрібно найн�ти %s", cure_not_possible = "Зараз ви не можете вилікувати хворобу.", cure_possible = "У ва� є відповідне обладнанн� та навички, тому ви зможете впорати�� з цією �С.", choices = { accept = "Так. Я готовий впорати�ь з цією надзвичайною �итуацією.", refuse = "�і. Я відмовл�ю�� займати�ь цією надзвичайною �итуацією.", }, location = "Стала�� аварі� у мі�ці під назвою %s", cure_not_possible_build = "Вам потрібно побудувати %s", cure_not_possible_build_and_employ = "Вам потрібно побудувати %s та найн�ти %s", bonus = "За вирішенн� цієї �С Ви можете отримати �к мак�имум %d$ бону�у. �ле �кщо ви не впораєте�ь, ваша репутаці� буде �ильно запл�мована.", free_build = "Якщо Ви впораєте�ь, Ваша репутаці� підвищить��, але �кщо ви зазнаєте невдачі, це матиме �ильний негативний вплив на вашу репутацію.", num_disease_singular = "Є 1 о�оба з %s і вона потребує невідкладної допомоги.", }, emergency_result = { earned_money = "Ви могли отримати %d$, а вдало�ь заробити %d$.", close_text = "�ати�ніть, щоб закрити.", saved_people = "Ви вр�тували %d людей із %d у�ього.", }, choices = { return_to_main_menu = "Повернути�� до головного меню", accept_new_level = "Перейти до на�тупного рівн�", decline_new_level = "Пограти ще трохи", }, debug_fax = { text2 = "ВСЬОГО %d ЛЮДЕЙ В ЛІК�Р�І З�РЕЄСТРОВ��О, ПЕРЕВІРЕ�О %d", text7 = "РЕПУТ�ЦІЯ %d ОЧІКУВ��О %d З�ИЖЕ��Я %d", text9 = "К�Т�СТРОФИ %d ДОЗВОЛЕ�О (MTHS) %d (%d)ЗМЕ�ШЕ��Я %d", text4 = "Ф�КТОРИ: ЛІК�РІ %d МЕДСЕСТРИ %d ПЛОЩ� %d КІМ��ТИ %d ЦІ�� %d", text1 = "КР�ЩИЙ Р�ХУ�ОК %d", text6 = "Т�КОЖ УВІМК�Е�І ��СТУП�І Ф�КТОРИ", close_text = "Так, так, так!", text3 = "КІЛЬКОСТІ: ДОКТОР %d МЕДСЕСТРИ %d ПЛОЩ� %d КІМ��ТИ %d ЦІ�� %d", text5 = "УЧ�С�ИКИ: ЛІК�Р %d МЕДСЕСТРИ %d ПЛОЩ� %d кімнати %d ЦІ�� %d ВІДСОТОК", text8 = "ЗРУЧ�ІСТЬ %d ЛЮДЕЙ ОПР�ЦЬОВ��О %d �БО ЗМЕ�ШЕ��Я %d", text10 = "СМЕРТЬ %d ДОЗВОЛЕ�О (MTHS) %d (%d) ЗМЕ�ШЕ��Я %d", text11 = "ЛЮДЕЙ ЦЬОГО МІСЯЦЯ %d", }, } adviser = { tutorial = { build_reception = "Вітаю. Спочатку вашій лікарні потрібна Рецепці�. Виберіть її в меню облаштуванн� коридорів.", order_one_reception = "Щоб замовити одну Рецепцію, клацніть один раз лівою кнопкою миші на блимаючому р�дку.", accept_purchase = "Клацніть лівою кнопкою миші на блимаючу кнопку, щоб купити.", reception_invalid_position = "Рецепці� �ірого кольору, тому що вона знаходить�� в неправильному мі�ці. Спробуйте перемі�тити або повернути її.", rotate_and_place_reception = "Клацніть правою кнопкою миші, щоб повернути Рецепцію та розмі�тіть її у вашій лікарні лівою кнопкою миші.", hire_receptionist = "Вам також знадобить�� Рецепціоні�тка дл� першого прийому пацієнтів.", select_receptionists = "Клацніть лівою кнопкою миші на блимаючу кнопку, щоб побачити, �кі �екретарі в даний момент до�тупні дл� найму. Чи�ло на піктограмі вказує, з �кої кілько�ті ви можете вибрати.", next_receptionist = "Це перша Рецепціоні�тка зі �пи�ку потенційних працівників. Клацніть лівою кнопкою миші блимаючий значок, щоб побачити на�тупну.", prev_receptionist = "Клацніть лівою кнопкою миші на блимаючий значок, щоб перегл�нути попередню до�тупну Рецепціоні�тку.", choose_receptionist = "Вирішіть, �ка Рецепціоні�тка має хороші навички та �піввідно�ну зарплату, а потім клацніть лівою кнопкою миші блимаючий значок, щоб найн�ти її.", receptionist_invalid_position = "Ви не можете по�тавити тут Рецепціоні�тку.", place_receptionist = "Винайміть Рецепціоні�тку і розмі�тіть її де завгодно. Вона знайте �воє робоче мі�це вла�норуч.", build_gps_office = "Дл� того, щоб розпочати об�теженн� нових пацієнтів, вам потрібно побудувати Кабінет терапевта.", select_diagnosis_rooms = "Клацніть лівою кнопкою миші блимаючий значок, щоб відобразити �пи�ок до�тупних кабінетів об�теженн�.", click_gps_office = "Клацніть лівою кнопкою миші на р�дку, щоб вибрати Кабінет терапевта.", click_and_drag_to_build = "Щоб побудувати Кабінет терапевта, ви повинні �початку визначити�ь з його розміром. �ати�ніть і утримуйте ліву кнопку, розт�гніть кре�ленн� до потрібного розміру.", room_too_small = "Кре�ленн� цієї кімнати червоне, тому що вона занадто мала. Розт�гніть її побільше.", room_in_invalid_position = "�а жаль! Так не можна вчинити - червоні обла�ті вказують на те, що кре�ленн� пере�ікаєть�� з іншою кімнатою або �тінами лікарні.", room_big_enough = "Кре�ленн� тепер до�татньо великого розміру. Коли ви відпу�тите кнопку миші, воно буде розміщене. Ви в�е ще зможете пере�увати його або змінювати розмір.", place_door = "Переміщайте мишу по �тінам кре�ленн� кабінету, щоб розташувати двері там, де Вам потрібно.", door_in_invalid_position = "�х! Ви намагали�� розташувати двері в неправильному мі�ці. Спробуйте по�тавити її в іншому.", place_windows = "Розташуйте вікна так �амо, �к і двері. Вам не обов'�зково розташовувати вікна, але ваші �півробітники ща�ливіші, коли їм є куди погледіти. (Де�кі навіть оцін�ть, �кщо зазирне незнайомець.)", window_in_invalid_position = "Це вікно знаходить�� в неправильному мі�ці. Спробуйте розмі�тити його в іншому, будьте люб'�зні.", place_objects = "Клацніть правою кнопкою миші, щоб обертати елементи кімнати, і клацніть лівою кнопкою миші, щоб по�тавити їх.", object_in_invalid_position = "Цей об'єкт знаходить�� в неправильному мі�ці. Будь ла�ка, розмі�тіть його в іншому мі�ці або повертіть його.", confirm_room = "Клацніть лівою кнопкою миші блимаючий значок, щоб завершити ваш кабінет, або нати�ніть хре�тик, щоб повернути�� до попереднього кроку будівництва.", information_window = "Вікно довідки розпові�ть вам у�е про той гарний кабінет, �кий ви щойно побудували.", hire_doctor = "Вам потрібен Лікар дл� об�теженн� та лікуванн� хворих людей.", select_doctors = "Клацніть лівою кнопкою миші на блимаючу кнопку, щоб перегл�нути до�тупних дл� найму лікарів.", choose_doctor = "Уважно подивіть�� на навички кожного Лікар�, перш ніж вибрати.", place_doctor = "Розташуйте Лікар� в будь-�кому мі�ці в �ередині лікарні. Як тільки у черзі до кабінеті буде хто�ь, кого потрібно об�тежити, він піде туди.", doctor_in_invalid_position = "Гей! Ви не можете по�тавити Лікар� тут.", start_tutorial = "Прочитайте в�туп до мі�ії, потім клацніть лівою кнопкою миші, щоб почати навчанн�.", room_too_small_and_invalid = "Кімната занадто мала і знаходить�� в неприпу�тимому мі�ці. Так не годить��.", build_pharmacy = "Вітаємо! Тепер побудуйте Фармакологічний кабінет та найміть Мед�е�тру, щоб у результаті отримати функціонуючу лікарню.", }, epidemic = { hurry_up = "Якщо найближчим ча�ом хоч що�ь не буде зроблено з цією епідемією, у ва� буде набагато більше проблем. Тож рухайте��!", serious_warning = "Ц� зараза �тає �ерйозною. Вам потрібно що�ь зробити із цим і �кнайшвидше!", multiple_epidemies = "Схоже, що у ва� більше ніж одна епідемі� одноча�но. Це може �тати величезною ката�трофою, тому негайно зробіть що�ь із цим.", }, staff_advice = { need_handyman_machines = "Якщо ви хочете об�луговувати апарати у вашій лікарні, вам потрібно найн�ти Різноробочого.", need_doctors = "Вам потрібно більше лікарів. Спробуйте розмі�тити ваших най�притніших лікарів у кімнатах із довгими чергами.", need_handyman_plants = "Вам потрібно найн�ти Різноробочого дл� поливу ро�лин.", need_handyman_litter = "Люди почали влаштовувати безлад у вашій лікарні. �айміть Різноробочого, щоб він прибирав за ними.", need_nurses = "Вам потрібно найн�ти більше мед�е�тер. Палати та аптеки потребують мед�е�тер.", too_many_doctors = "У ва� забагато лікарів. Де�ким зараз нічим зайн�ти��.", too_many_nurses = "Я думаю, що зараз у ва� занадто багато мед�е�тер.", }, earthquake = { damage = "Цей землетру� пошкодив %d обладнанн� та по�траждали %d людей у ​​лікарні.", alert = "�адійшло попередженн� про землетру�. Під ча� землетру�у ваші при�трої будуть пошкоджені. Якщо ви не подбаєте про них зараз, ва� чекає феєрверк.", ended = "Фух. Думаю, що це був �ильний землетру� - це було %d за шкалою Ріхтера.", }, surgery_requirements = { need_surgeons_ward_op = "Вам потрібно найн�ти двох хірургів і побудувати палату, а також операційну, щоб виконати операцію.", need_surgeon_ward = "Вам в�е ще потрібно найн�ти іншого хірурга та побудувати Палату дл� виконанн� операцій.", }, vomit_wave = { started = "У на� тут що�ь погане... Блювотна епідемі�. Можливо допоможе, �кщо ви наймете більше Різноробочих, тож лікарн� пі�л� цього не буде так �ильно �мердіти.", ended = "Фух! Схоже, ви тут в�е вичи�тили. Люди більше не блюють. Підтримуюте чи�тоту в лікарні і надалі.", }, level_progress = { halfway_lost = "Ви на півдорозі до програшу у цьому рівні.", dont_kill_more_patients = "Ви лікарн�, а не кладовище! �амагайте�� більше не вбивати пацієнтів.", another_patient_killed = "О ні! Ще один пацієнт помер на ваших руках. Загалом %d �мертей зараз.", halfway_won = "Ви на півдорозі до перемоги!", close_to_win_increase_value = "Ви дуже близькі до перемоги. Збільшіть варті�ть вашої лікарні на %d.", financial_criteria_met = "Ви виконали фінан�ові критерії дл� цього рівн�. Тепер утримуйте �вій балан� вище %d, одноча�но переконавши�ь, що ваша лікарн� функціонує добре.", nearly_won = "Виграш у цьому рівні вже у ваших руках.", hospital_value_enough = "Тримайте варті�ть лікарні вище %d і займайте�� іншими проблемами, щоб виграти рівень.", another_patient_cured = "Чудово - ще один пацієнт вилікуваний! �азараз %d.", three_quarters_lost = "Ви на три чверті шл�ху до програшу цього рівн�.", reputation_good_enough = "Чудово, ваша репутаці� до�татньо ви�ока, щоб виграти цей рівень. Тримайте її вище %d і вирішіть інші проблеми, щоб пройти його.", nearly_lost = "Ви дуже близькі до програшу цього рівн�.", improve_reputation = "Вам потрібно покращити �вою репутацію на %d, щоб наблизити�ь до перемогу на цьому рівні.", three_quarters_won = "Ви пройшли три чверті шл�ху до перемоги на цьому рівні.", cured_enough_patients = "Ви вилікували до�татньо пацієнтів, але вам потрібно буде приве�ти �вою лікарню до ладу, щоб виграти рівень.", }, staff_place_advice = { receptionists_only_at_desk = "Рецепціоні�тки можуть працювати лише на Рецепції.", only_psychiatrists = "Лікарі можуть працювати в п�ихіатрії, �кщо вони мають навичку П�ихіатра.", only_surgeons = "Лікарі можуть оперувати в операційній, лише �кщо вони мають навичку Хірург.", only_doctors_in_room = "Тільки лікарі можуть працювати в %s.", only_nurses_in_room = "Тільки мед�е�три можуть працювати в %s.", nurses_cannot_work_in_room = "Мед�е�три не можуть працювати в %s.", only_researchers = "Лікарі можуть до�ліджувати в Кабінеті до�лідництва, лише �кщо вони мають навичку До�лідника.", doctors_cannot_work_in_room = "Лікарі не можуть працювати в %s.", not_enough_lecture_chairs = "Кожному лікарю, що навчаєть�� треба треба лекційний �тілець, щоб бути при�утнім тут!", }, room_forbidden_non_reachable_parts = "Якщо ви розмі�тите приміщенн� тут, ча�тина лікарні буде недо�тупною.", research = { machine_improved = "%s було покращено вашою командою до�лідників.", drug_fully_researched = "Ви до�лідили %s на в�і 100%", new_machine_researched = "�овий %s щойно був у�пішно винайдений.", drug_improved = "Ліки від %s були вдо�коналені Вашою командою до�лідників", drug_improved_1 = "Ліки %s були вдо�коналені Вашими до�лідниками.", new_available = "�овий %s до�тупний.", new_drug_researched = "Було винайдено новий препарат дл� лікуванн� %s.", autopsy_discovered_rep_loss = "Ваш �второзтинач побачили в дії! Дуже необачно з Вашої �торони. Громад�ькі�ть за�удить Ва� за це!", }, boiler_issue = { minimum_heat = "О, а о�ь і ви! Котел у підвалі зламав��. Схоже, у відвідувачів вашої лікарні �коро зацокочуть зуби.", maximum_heat = "Котел у підвалі перегріваєть��. Радіатори віддають мак�имум �вого тепла. Люди �тікають від перегріву! Поліпшити �итуацію допомогли б більше автоматів з напо�ми.", resolved = "Маю гарні новини. Тепер котел і радіатори знову працюють належним чином. Через де�кий ча� люди в лікарні знову будуть у комфортних умовах.", }, room_requirements = { research_room_need_researcher = "Дл� викори�танн� Кабінета до�лідництва вам потрібно найн�ти лікар� з до�відом до�ліджень.", op_need_another_surgeon = "Вам в�е ще потрібно найн�ти ще одного хірурга, щоб операційна нарешті запрацювала.", op_need_ward = "Вам потрібно побудувати Палату дл� передопераційного огл�ду пацієнтів, перш ніж вони зможуть піти на процедуру.", reception_need_receptionist = "Вам потрібно найн�ти Рецепціоні�тку, інакше ніхто і ніколи ніколи до ва� не прийдуть.", psychiatry_need_psychiatrist = "Тепер, коли ви побудували Кабінет п�ихіатра, вам також потрібно найн�ти лікар� з навичкою П�ихіатр.", pharmacy_need_nurse = "Вам потрібно найн�ти мед�е�тру дл� Фармакології.", ward_need_nurse = "Вам потрібно найн�ти мед�е�тру дл� палати.", op_need_two_surgeons = "�айміть двох хірургів дл� виконанн� операцій в операційній.", training_room_need_consultant = "Вам потрібно найн�ти Спеціалі�та дл� навчанн� в Лекційній кімнаті.", gps_office_need_doctor = "Вам потрібно найн�ти лікар� дл� роботи в цьому кабінеті.", }, goals = { win = { money = "Вам потрібно ще %d$, щоб відповідати грошовому критерію на цьому рівні.", cure = "Вилікуйте ще %d пацієнтів, і у ва� буде до�татньо, щоб виграти цей рівень.", reputation = "Збільште �вою репутацію до %d, щоб відповідати критерію дл� перемоги на рівні", value = "Вам потрібно збільшити варті�ть лікарні до %d$", }, lose = { kill = "Вбийте ще %d пацієнтів і ви програєте рівень!", }, }, warnings = { charges_too_low = "Ціна за ваші по�луги занадто мала. Це приведе більше людей до лікарні, але ви не заробите багато грошей з кожного.", charges_too_high = "Ваші ціни зави�окі. Хоча ви матимете ви�окий дохід у коротко�троковій пер�пективі, пізніше люди віддадуть перевагу більш дешевій лікарні.", staff_overworked = "Ваші �півробітники �трашенно перевтомлені. Вони �тають некомпетентними і починають робити ката�трофічні помилки.", doctors_tired = "Ваші лікарі майже за�инають на роботі. Дайте їм відпочити врешті-решт.", people_did_it_on_the_floor = "Де�кі пацієнти вже не могли більше терпіти. Дл� кого�ь прибиранн� �тане великим викликом.", queues_too_long = "Черги т�гнуть�� аж на вулицю. Як щодо того, щоб побудувати більше кабінетів?", money_very_low_take_loan = "Ваш рахунок �к Маріан�ька впадина. Ви могли б вз�ти позику, знаєте?", patients_very_thirsty = "Відвідувачів мучить �прага. Якщо ви найближчим ча�ом не в�тановите �втомати з напо�ми, ви зіткнете�� з великим відтоком пацієнтів у �у�ідній паб.", machinery_very_damaged = "Терміново! Скажіть �воєму Різноробочому негайно відремонтувати ваші апарати! Вони о�ь-о�ь вибухнуть!", handymen_tired2 = "Ваші Різноробочі повні�тю ви�нажені. Дайте їм перерву, інакше вони попадають з ніг… а ваші апарати не буде кому ремонтувати.", desperate_need_for_watering = "Вам конче потрібно найн�ти Різноробочого, щоб догл�дати за вашими ро�линами.", nurses_tired = "Ваші мед�е�три втомили��. Дайте їм відпочити.", too_much_litter = "У ва� проблема зі �мітт�м. Різноробочий повинен мати можливі�ть його прибрати.", reception_bottleneck = "Рецепці� не може впорати�ь з напливом людей, по�тавте ще одну та найміть додатково Рецепціоні�тку.", place_plants4 = "Потіште пацієнтів більшою кількі�тю зелені в навколишньому �ередовищі.", change_priorities_to_plants = "Ви повинні збільшити пріоритети �воїх Різноробочих на полив ро�лин, інакше вони зав'�нуть.", staff_too_hot = "Ваші �півробітники перегрівають��. Знизьте температуру в лікарні або приберіть зайві радіатори з кабінетів.", finanical_trouble2 = "Заробл�йте більші гроші, або ви повні�тю розорите�ь. Ви програєте рівень, �кщо втратите ще %d$.", plants_thirsty = "Подбайте про �вої ро�лини. Вони не штучні, їм потрібна вода.", litter_everywhere = "В�юди �мітт�. �адішліть побільше Різноробочих дл� вирішенн� цієї проблеми.", nurses_tired2 = "Ваші �е�три вже за�инають на робочому мі�ці. Відправте їх відпочивати.", plants_dying = "Ваші ро�лини гинуть. Вода дл� них, мабуть, чуже �лово. Відвідувачі не оцін�ть вигл�ду �ухого ли�т� замі�ть квітучих ро�лин.", reduce_staff_rest_threshold = "Спробуйте знизити порогове значенн� дл� відпочинку �півробітників на екрані Політики, щоб ваші �півробітники відпочивали ча�тіше. Про�то пропоную.", more_toilets = "Вам потрібно більше туалетів. Інакше незабаром вам доведеть�� замовл�ти підгузки.", hospital_is_rubbish = "Люди відкрито говор�ть, що ваша лікарн� жахлива. Перш ніж ви це у�відомите, вони почнуть лікувати �вої хвороби в іншому мі�ці.", pay_back_loan = "У ва� багато грошей. Як щодо того, щоб подумати про виплату позики?", financial_trouble3 = "Ваш банків�ький балан� вигл�дає дещо тривожним. Подумайте, �к можна підзаробити. Втратите ще %d$ і буде ката�трофа.", bankruptcy_imminent = "Гей! Ще мить, і ви будете банкрутом! �е хочете що�ь змінити, а?", build_toilet_now = "Побудуйте туалет зараз же, інакше люди більше не витримають. �е �мійте�� - бо потім буде не до жартів.", patient_stuck = "Хто�ь заблукав, йому навіть рецепціоні�тка не допомогла. �амагайте�� не будувати лабіринти.", no_patients_last_month = "Минулого мі��ц� до вашої лікарні не приходили нові пацієнти. Я вважаю, що без них лікарн� зов�ім втрачає �ен�.", more_benches = "Розгл�ньте можливі�ть розміщенн� більшої кілько�ті Лавок. Хворі люди ненавид�ть �то�ти.", many_epidemics = "Схоже, що у ва� більше ніж одна епідемі� одноча�но. Це може �тати величезною ката�трофою, тому негайно зробіть що�ь із цим.", place_plants_to_keep_people = "Люди йдуть. Розмі�тіть більше квітів, може ви переконаєте їх залишити��.", patients_thirsty2 = "У лікарні люди, а не какту�и. Варто по�тавити більше автоматів з напо�ми або перене�ти на�вні ближче до людей.", money_low = "Грошики капають не так, �к �лід, тому можуть закінчити�ь!", staff_unhappy = "Ваші працівники незадоволені. Спробуйте дати їм премію, а ще краще – побудуйте дл� них Кімнату відпочинку. Ви також можете змінити правила відпочинку �воїх �півробітників на екрані «Політика».", people_freezing = "�еймовірно, незважаючи на винахід під назвою Котел, де�кі з ваших пацієнтів замерзають до �мерті. По�тавте радіатори, щоб їм було тепліше або підвищте тепло.", need_toilets = "Пацієнтам потрібні туалети. Побудуйте їх у легкодо�тупному мі�ці.", nobody_cured_last_month = "Минулого мі��ц� взагалі ніхто не вилікував��. Це �правді лікарн�?", patients_very_cold = "Хворі вже �к крижані �кульптури. Спробуйте збільшити температуру опаленн� або розмі�тити більше радіаторів у вашій лікарні.", build_toilets = "Побудуйте туалет зараз, інакше ви побачите що�ь дуже відразне. І у�віть, �к пахнутиме ваша лікарн�.", many_killed = "�азараз ви вбили %d людей. Ви знаєте, що ви лікарн�, а не бійн�?", place_plants2 = "Люди йдуть. Трохи більше ро�лин допоможе затримати їх надовше.", staff_tired = "Ваші �півробітники дуже втомлюють��. Якщо ви не да�те їм трохи розві�ти�ь в Кімнаті відпочинку, де�кі з них можуть збожеволіти під ти�ком.", machines_falling_apart = "Ваші апарати починають розвалювати��. �егайно надішліть до них Різноробочого з клейкою �трічкою!", patients_unhappy = "Пацієнтам не подобаєть�� ваша лікарн�. Ви повинні зробити що�ь, щоб покращити їхнє �ередовище.", place_plants3 = "Пацієнти �тають неща�ними. Розмі�тіть більше ро�лин, щоб за�покоїти їх.", staff_unhappy2 = "Ваші �півробітники, �к правило, незадоволені. Це поведе за �обою певні витрати.", cash_low_consider_loan = "Ваш рахунок близький до аб�олютного нул�. Ви думали про позику?", queue_too_long_at_reception = "У ва� занадто багато пацієнтів, �кі чекають �воєї черги на Рецепції. Розмі�тіть іншу рецепцію та найміть ще одну Рецепціоні�тку.", queue_too_long_send_doctor = "Ваші черги у %s довші за банани. Переконайте��, що в кімнаті є лікар.", financial_trouble = "У ва� �ерйозні фінан�ові проблеми. Організуйте викори�танн� �воїх грошей! Якщо ви втратите ще %d$, ви програєте цей рівень!", doctors_tired2 = "Ваші лікарі неймовірно втомлені. Їм потрібен негайний відпочинок, інакше навіть поцілунок їх не розбудить.", handymen_tired = "Ваші різноробочі втомили��. Залиште їх на де�кий ча� на дивані.", patient_leaving = "Хворий йде. Причина? Ваша погано керована, погано укомплектована та погано обладнана лікарн�!", machinery_damaged2 = "Вам потрібно найближчим ча�ом найн�ти Різноробочого дл� ремонту ваших апаратів.", patients_leaving = "Пацієнти втікають. Покращуйте лікарню дл� �воїх відвідувачів, розмі�тивши ро�лини, лавки, автомати з напо�ми тощо.", epidemic_getting_serious = "Ц� епідемі� �трімко �тає �ерйозною. Треба швидше що�ь робити!", machinery_damaged = "Відремонтуйте �вої апарати �к можна �коріше, інакше незабаром вам не буде чим лікувати.", people_have_to_stand = "Люди, �кі �траждають від хвороб, повинні ще й �то�ти? Придумайте чарівний за�іб від �то�нн�.", build_staffroom = "�егайно побудуйте кімнату відпочинку. Ваші �півробітники працюють занадто багато і знаход�ть�� на межі зриву. Давайте - будьте роз�удливим!", machinery_slightly_damaged = "Ваше обладнанн� в лікарні незначно пошкоджено. Тримайте його у належному �тані, інакше що�ь зламаєть��.", need_staffroom = "Побудуйте кімнату відпочинку, щоб вони могли відволікти�ь від рутини.", patients_getting_hot = "Де�ккі пацієнти починають буквально випаровувати��. Спробуйте зменшити опаленн� або видалити де�кі радіатори", machinery_deteriorating = "Ваші апарати почали зношувати�ь через надмірне викори�танн�. Слідкуйте за ними, інакше ви будете збирати їх по ча�тинах.", patients_too_hot = "Пацієнтам �тає дуже жарко. Рекомендую: приберіть кілька радіаторів, знизите температуру або в�тановіть більше автоматів з напо�ми.", patients_thirsty = "Люди починають з�ихати�ь �к родзинки. Можливо, ви могли б напоїти їх за допомогою торгових автоматів.", machine_severely_damaged = "%s от-от вибухне!", litter_catastrophy = "Ситуаці� зі �мітт�м безраді�на. �ехай команда різноробочих негайно почне працювати над цим!", staff_very_cold = "Працівники �каржать�� на холод. Збільште температуру опаленн� або по�тавте більше радіаторів.", deal_with_epidemic_now = "Якщо з цією епідемією найближчим ча�ом нічого не зробити, то матимете бід до лоба. Тож рухайте��!", too_many_plants = "У ва� занадто багато квітів. Ми ж у лікарні, а не в джунгл�х.", patients_really_thirsty = "Ваша лікарн� нагадує Сахару. Розмі�тіть більше автоматів з напо�ми або перене�іть і�нуючі ближче до �купченн� людей.", some_litter = "Більше різноробочих могли б позбути�� �мітт� швидше, перш ніж в�е це перетворить�� на звалище.", patients_annoyed = "Люди �трашенно незадоволені тим, �к ви керуєте лікарнею. І це не дивно. Лікуйте краще або зіткнете�� з на�лідками!", doctor_crazy_overwork = "О ні! Один із ваших лікарів збожеволів від перевтоми. Якщо ви негайно відправите його на відпочинок, він видужає. Мабуть.", no_desk_7 = "Ви побудували рецепцію, тепер вам залишило�� найн�ти Рецепціоні�тку. �авіть ви не знаєте куди треба відправл�ти пацієнтів, тільки вона!", researcher_needs_desk_1 = "До�ліднику дл� роботи потрібен його �тіл.", no_desk_3 = "Вам подобаєть�� тиша? Майже рік пройшов, а у ва� немає рецепції! Як ви думаєте, чи будуть �юди приходити ваші пацієнти? Виправте це зараз і припиніть тин�ти��!", no_desk_6 = "У ва� є рецепціоні�тка, то �к щодо того, щоб побудувати дл� неї Рецепцію, де вона зможе почати працювати?", no_desk_1 = "Якщо ви хочете, щоб люди приходили до вашої лікарні, вам потрібно буде найн�ти Рецепціоні�тку і побудувати дл� неї Рецепцію, де вона зможе працювати.", falling_5 = "Це мі�це не дл� того, щоб виштурхувати людей, ти ж знаєш, що вони хворі!", no_desk = "В�е ж ви повинні побудувати Рецепцію і найн�ти Рецепціоні�тку!", no_desk_2 = "Ви молодець, це, мабуть, �вітовий рекорд: майже рік і жодного хворого! Якщо ви хочете продовжувати працювати адміні�тратором цієї лікарні, вам потрібно найн�ти Рецепціоні�тку та побудувати рецепцію, де вона зможе працювати!", cannot_afford = "Ваша банків�ький рахунок не переконає цю людину працювати на ва�!", research_screen_open_1 = "Ви повинні побудувати Кабінет До�лідника, перш ніж ви зможете відкрити Екран до�лідженн�.", nurse_needs_desk_1 = "Кожній мед�е�трі дл� роботи потрібен вла�ний �тіл.", researcher_needs_desk_2 = "Ваш до�лідник задоволений вашою щедрі�тю, �ка дозволила йому відпочити від роботи. Якщо ви плануєте, щоб кілька до�лідників працювали одноча�но, вам потрібно �творити дл� кожного з них окремий �тіл.", research_screen_open_2 = "�аразі до�лідженн� недо�тупні.", falling_1 = "Гей! Це не жарти, диви�ь, куди клацаєш цією �воєю мишкою, ти можеш кого�ь ранити!", receptionists_tired2 = "Ваші рецепціоні�тки дуже ви�нажені. �ехай тепер відпочинуть.", falling_3 = "�ай, бол�че, хто-небудь покличте лікар�!", no_desk_5 = "Що ж, пора. Скоріше починайте приймати пацієнтів!", no_desk_4 = "Рецепціоні�тці потрібне вла�не робоче мі�це, щоб зу�трічати пацієнтів, коли вони прибувають.", falling_2 = "Припиніть вошкати�ь! Вам це �правді подобаєть��?", researcher_needs_desk_3 = "Кожен до�лідник повинен мати вла�ний �тіл.", cannot_afford_2 = "�і, це не дорого, ти про�то недо�татньо багатий!", falling_6 = "Це не боулінг, не можна так поводити�� з хворими!", nurse_needs_desk_2 = "Ваша мед�е�тра в захваті від кілько�ті вільного ча�у, �кий ви їй надаєте. Якщо ви маєте намір включити її в робочого проце�у, можливо, буде гарною ідеєю дати кожній �тіл, за �ким в�і зможуть працювати.", receptionists_tired = "Ваші рецепціоні�тки �ерйозно втомили��. Дозвол�йте їм іноді ви�лизнути з-за �тійки реє�трації.", falling_4 = "Це лікарн�, а не Theme Park!", another_desk = "Ви повинні побудувати рецепцію дл� �воєї рецепціоні�тки.", fair_prices = "Ваша ціна за %s вигл�дає прийн�тною та збалан�ованою.", high_prices = "Ви берете занадто багато за %s. Хоч з пацієнтів ви більше здерете, та вони швидше підуть до конкурентів ніж ви заробите �таток.", low_prices = "Ви берете дуже мало за %s. Це залучить до лікарні більше пацієнтів, але багато на них не заробиш.", patient_not_paying = "Пацієнт пішов не �плативши за %s, тому що це занадто дорого!", cannot_afford_machine = "Вам потрібно хоча б %1%$ у банку, щоб купити нову %2%!", }, placement_info = { door_cannot_place = "Вибачте, але ви не можете зробити тут двері.", staff_cannot_place = "Ви не можете по�тавити тут �вого працівника. Вибачте.", object_cannot_place = "Гей, ви не можете розмі�тити цей об'єкт тут!", room_cannot_place = "Ви не можете розмі�тити цю кімнату тут.", room_cannot_place_2 = "Цю кімнату не можна тут розмі�тити.", window_cannot_place = "�ажаль... Ви практично не можете зробити тут вікно.", reception_cannot_place = "Ви не можете розмі�тити тут рецепцію.", reception_can_place = "Ви можете розмі�тити рецепцію пр�мо тут.", window_can_place = "Ви можете зробити це вікно тут. Воно �тане �к рідне.", door_can_place = "Ви можете розмі�тити ці двері тут, �кщо хочете.", object_can_place = "Ви можете розмі�тити тут цей об'єкт.", staff_can_place = "Тут можна по�тавити вашого робітника.", }, information = { larger_rooms = "Більші кімнати допомагають �півробітникам відчувати �ебе важливими та покращують їх продуктивні�ть.", extra_items = "Додаткові предмети в кімнатах за�покоюють ваших �півробітників і покращують їх продуктивні�ть.", epidemic = "Вашою лікарнею ширить�� інфекційна хвороба. Ви повинні негайно що�ь з цим зробити!", promotion_to_doctor = "Один із ваших Інтернів �тав Лікарем.", emergency = "Увага! �адзвичайна �итуаці�! Рухайте�ь! Рухайте�ь! РУХ�ЙТЕСЬ!", patient_abducted = "Одного з ваших пацієнтів викрадають прибульці!", first_cure = "Чудово! Ви щойно вилікували �вого першого пацієнта!", promotion_to_consultant = "Один із ваших лікарів �тав Спеціалі�том.", handyman_adjust = "Різноробочі можуть прибирати ефективніше, �кщи ви нада�те їм відповідні пріоритети.", promotion_to_specialist = "Один з ваших лікарів отримав навичку %s.", initial_general_advice = { rats_have_arrived = "У вашій лікарні більше щурів, ніж пацієнтів. Спробуйте по�тріл�ти в щурів �воїм кур�ором миші.", first_patients_thirsty = "Люди відчувають �прагу у вашій лікарні. Торговий автомат може �ильно допомогти.", research_now_available = "Ви �творили �вій перший Кабінет до�лідництва. Тепер ви можете перейти на Екран до�лідженн�.", decrease_heating = "Люди тануть у вашій лікарні! Можливо, на�тав ча� зменшити температуру опаленн� в Екрані мі�течка.", first_emergency = "Пацієнти з надзвичайної �итуації мають �иню миготілку над їхніми головами. Вилікуйте їх, перш ніж вони помруть або ча� закінчить��.", first_epidemic = "У вашій лікарні епідемі�! Вирішіть, чи хочете ви це приховати, чи визнати її на�вні�ть.", taking_your_staff = "Хто�ь переманює вашого працівника. Вам доведеть�� побороти��, щоб утримати його тут.", place_radiators = "Люд�м у вашій лікарні холодно - ви можете розмі�тити більше радіаторів, вибравши їх у меню Оздобленн� коридору.", epidemic_spreading = "У вашій лікарні панує епідемі�. Спробуйте вилікувати інфікованих людей, перш ніж вони підуть від ва�.", machine_needs_repair = "У ва� є апарат, �кий потребує ремонту. Знайдіть його - він буде диміти - і нати�ніть на нього. Потім нати�ніть кнопку ремонтника.", increase_heating = "У людей з но�а зви�ають бурульки! Можливо, вам варто підвищити температуру нагріву на Екрані мі�течка.", first_VIP = "Ви збираєте�� прийн�ти �вій перший ВІП-візит. Спробуйте зробити так щоб ВІП не помітив нічого анти�анітарного або ваших незадоволених пацієнтів.", psychiatric_symbol = "Лікарі, �кі мають додаткову навичку п�ихіатра, мають �имвол: |", research_symbol = "Лікарі, здатні проводити до�лідженн�, мають �имвол: }", surgeon_symbol = "Лікарі, �кі можуть виконувати операції, мають �имвол: {", autopsy_available = "Було винайдено машину дл� автоматичного розтину. За допомогою неї ви можете позбути�� проблемних і небажаних пацієнтів і прове�ти до�лідженн� їхніх решток. Майте на увазі, що викори�танн� цієї машини є дуже неприйн�тним у цивілізованому �віті.", }, patient_leaving_too_expensive = "Пацієнт йде, не заплативши за %s. Дл� нього це занадто дорого.", vip_arrived = "Увага! ВІП - %s, щойно прибув дл� огл�ду вашої лікарні! Переконайте��, що в�е йде гладко, аби порадувати його.", epidemic_health_inspector = "�овини про вашу епідемію дійшли до Міні�тер�тва охорони здоров'�. Приготуйте�� до візиту �ан. ін�пектора.", first_death = "Ви щойно вбили �вого першого пацієнта. І що, �кі відчутт�?", pay_rise = "Один із ваших працівників погрожує звільнити��. Виберіть погодити�� з їхніми вимогами або вигнати їх. �ати�ніть на піктограму ліворуч, щоб побачити, �кий �вме працівник погрожує піти.", place_windows = "Розміщенн� вікон зробить кімнату �вітлішою та покращить на�трій ваших працівників.", fax_received = "Піктограма, �ка з'�вила�� в нижній лівій ча�тині екрана, �повіщає ва� про важливу інформацію або рішенн�, �ке вам потрібно прийн�ти.", }, competitors = { staff_poached = "Один із ваших працівників був перехоплений іншою лікарнею.", land_purchased = "%s щойно придбав діл�нку.", hospital_opened = "%s відкрив конкуруючу лікарню в цьому районі.", }, praise = { many_benches = "Пацієнти тепер можуть по�идіти в�юди! Плю� один бал вам.", few_have_to_stand = "Мало людей можуть по�то�ти у вашій лікарні. Багато �ид�чих пацієнтів неймовірно ща�ливі.", plenty_of_benches = "В лікарні багато де можна при�і�ти. Дуже добре.", plants_thriving = "Чудово. Ваші ро�лини зеленіють. Продовжуйте, і ви можете виграти за них медаль.", plants_are_well = "Кра�а змінюєть�� ще більшою кра�ою. Продовжуйте дбати про �вої квіти.", many_plants = "Як добре. У ва� багато ро�лин! Ваші пацієнти це точно оцін�ть.", patients_cured = "%d пацієнтів вилікувано." }, build_advice = { placing_object_blocks_door = "Якщо розмі�тити цей об'єкт тут, люди не зможуть ді�тати�� до дверей.", door_not_reachable = "Люди не зможуть ді�тати�� до дверей. У чому ж проблема, мм?", blueprint_would_block = "Це кре�ленн� блокуватиме інші кімнати. Спробуйте змінити його розмір або перемі�тити в інше мі�це.", blueprint_invalid = "Це кре�ленн� не відповідає вимогам.", }, multiplayer = { poaching = { not_interested = "Ха! Вони не зацікавлені працювати на ва� - вони ща�ливі там, де вони є.", already_poached_by_someone = "Це неможливо! Хто�ь уже намагаєть�� переманити цю людину.", in_progress = "Я дам вам знати, �кщо ц� людина захоче працювати на ва�.", }, objective_failed = "Ви не впорали�� з ціллю. Жодних опле�ків.", objective_completed = "Ви до��гли цілі. Ми аплодуємо вам �то�чи!", players_failed = "�а�тупні гравці не змогли виконати о�таннє завданн�: ", everyone_failed = "�іхто не зміг виконати о�таннє завданн�. Тож у�і продовжують грати!", }, cheats = { th_cheat = "Вітаємо, ви розблокували чіти!", roujin_off_cheat = "Змаганн� Roujin'а деактивовано.", roujin_on_cheat = "Змаганн� Roujin'а активовано! Удачі...", norest_off_cheat = "Фух! Схоже ефект каву�ьки закінчив��. Тепер ваш пер�онал може �покійно відпочивати.", norest_on_cheat = "О ні! Ви�вл�єть�� ваш пер�онал перепив кохфе і їм тепер зов�ім не потрібен відпочинок.", }, } introduction_texts = { demo = "Ла�каво про�имо у демо вер�ію лікарні//" .. "�а жаль, демовер�і� мі�тить лише цей рівень. Однак його більш ніж до�татньо, щоб розважити ва� де�кий ча�! " .. "Ви зіткнете�� з різними захворюванн�ми, дл� лікуванн� �ких потрібні різні кімнати. Ча� від ча�у ви можете зіткнути�� з надзвичайними �итуаці�ми. І вам потрібно буде до�ліджувати додаткові кімнати за допомогою Кабинета до�лідництва. " .. "Ваше завданн� — заробити 100,000$, мати варті�ть лікарні 70,000$ і репутацію 700, при цьому ви повинні вилікувати щонайменше 75% �воїх пацієнтів. " .. "Переконайте��, що ваша репутаці� не впаде на 300 і ви не вб’єте більше 40% �воїх пацієнтів, інакше ви програєте.//" .. "Удачі!", level1 = "Ла�каво про�имо до вашої першої лікарні!//" .. "Ви можете розміщувати�ь тут. По�тавте рецепцію, побудуйте Кабінет терапевта та найміть рецепціоні�тку і лікар�. " .. "Тоді зачекайте, поки прийде �кий�ь відвідувач. " .. "Також не зайвим буде �творити Кабінет п�ихиатра та найн�ти лікар� з відповідною додатковою навичкою. " .. "Фармакологі� і мед�е�тра також необхідні дл� лікуванн� ваших пацієнтів. " .. "Стережіть�� випадків дивної хвороби «�адута голова» — їх вилікує лікар зі �пеціальним апаратом. " .. "Вам потрібно вилікувати принаймні 10 людей і �тежити, щоб ваша репутаці� не впала нижче 200. ", level2 = "У цьому районі більший �пектр захворювань. " .. "Будуйте �вою лікарню, дл� об�луговуванн� великої кілько�ті пацієнтів і готуйте�� побудувати Кабінет до�лідництва. " .. "�е забувайте підтримувати чи�тоту і намагайте�� підн�ти �вою репутацію �комога вище — ви зіткнете�� з такими хворобами, �к «Заплетений �зик», тому вам потрібен відповідний апарат. " .. "Ви також можете побудувати Кабінет кардіографії, це допоможе вам діагно�тувати нові захворюванн�. " .. "Обидві ці кімнати потрібно до�лідити, перш ніж ви зможете їх побудувати. Ви також можете придбати додаткові діл�нки землі, щоб розширити �вою лікарню — �кори�тайте�� дл� цього Екраном мі�течка. " .. "До��гніть репутації 300, 10,000$ на банків�ькому рахунку та 40 вилікуваних відвідувачів. ", level3 = "Цього разу ви будуватимете лікарню в заможному районі. " .. "Міні�тер�тво охорони здоров’� очікує, що ви забезпечите тут великий приток грошей. " .. "По-перше, вам доведеть�� заробити хорошу репутацію, а коли вона буде працювати на лікарню, зо�ередьте�� �комога більше на тому, щоб заробл�ти гроші. " .. "Також і�нує ймовірні�ть виникненн� надзвичайних �итуацій. " .. "Це означає, що відразу прийде велика кількі�ть людей з однаковою хворобою. " .. "Вилікуйте в�іх за відведений ча� і це покращить вашу репутацію та дода�ть великий грошовий бону�. " .. "Можуть з’�вити�� такі хвороби, �к «Синдром Корол�». Також варто закладати в коштори� будівництво Операційної та Палати поруч. " .. "Заробіть 20,000$, щоб перейти на на�тупний рівень. ", level4 = "Слідкуйте за тим щоб в�і люди були ща�ливими, поводьте�� з ними �комога краще і зведіть до мінімуму кількі�ть �мертей. " .. "Репутаці� лікарні під загрозою, тому по�тарайте�ь підн�ти і утримувати її �комога вище. " .. "�е надто хвилюйте�� про гроші - вони прийдуть разом зі зро�танн�м вашої репутації. " .. "У ва� також буде можливі�ть навчати лікарів і підвищувати їх додаткову навичку. " .. "Добре навчений пер�онал зможе краще огл�дати пацієнтів, �кі здають�� більш �ерйозним викликом, ніж інші. " .. "До��гніть 500 репутації і тримайте її вище. ", level5 = "Цей район на�ичений різноманітними захворюванн�ми, тож очікуєть�� вражаючий наплив відвідувачів. " .. "У ва� є лише інтерни, котрі щойно закінчили навчанн�, тому дл� них потрібно побудувати навчальний кабінет, щоб отримати необхідну вам додаткову навичку. " .. "У вашому розпор�дженні три кон�ультанти, �кі можуть навчати ваш пер�онал. Тож заохочуєте їх, щоб вони й не думали піти. " .. "Також �лід зазначити, що лікарн� розташована �краз на тектонічному розломі Сан �ндроїд. " .. "Завжди і�нує можливі�ть невеличкого землетру�у. " .. "Він може пошкодити ваше обладнанн� та порушити налагоджену роботу вашої лікарні. " .. "Підвищте �вою репутацію до 400 і заробіть на балан� лікарні 50,000$, щоб до��гти у�піху. Також вилікуйте 200 пацієнтів. ", level6 = "Викори�тайте в�і �вої знанн�, щоб �творити �табільну, добре працюючу лікарню, �ка матиме файний прибуток і здатна впорати�� з у�ім, що може їй підкинути хворе �у�піль�тво. " .. "Варто прийн�ти той факт, що тут о�обливо �при�тлива атмо�фера дл� розмноженн� мікробів та інфекцій. " .. "Якщо ви не будете підтримувати �вою лікарню в чи�тоті, ви аб�олютно точно зіткнете�ь з епідемією �еред відвідувачів. " .. "Заробіть 150000$ і підніміть варті�ть вашої лікарні вище 140,000$.", level7 = "Тут ви будете під пильним нагл�дом Міні�тер�тва охорони здоров’�, тому переконайте��, що ваш балан� відобразить величезні прибутки і що ваша репутаці� буде ви�оті. " .. "Смерті, в даному, випадку - неприпу�тимі! Вони погано впливають на бізне�. " .. "Переконайте��, що ваші �півробітники відмінно навчені, і що у ва� є в�е необхідне обладнанн�. " .. "Отримайте 600 репутації плю� заробіть 200,000$ на рахунок у банку.", level8 = "Створіть мак�имально ефективну та прибуткову лікарню. " .. "Люди тут зов�ім непогано живуть, тож вичавіть з них �комога більше грошен�т. " .. "Пам’�тайте, лікувати людей – це добре, але вам дій�но ПОТРІБ�І їх гроші. " .. "Звільніть цих хворих людей від їхніх грошей по повній. " .. "�акопичте а�трономічні 300,000$ дл� Міні�тер�тва охорони здоров’�, щоб пройти цей рівень.", level9 = "Тепер, коли ви переказали гроші до міні�тер�тва та оплатили цим новий лімузин дл� �амого міні�тра, ви зможете повернути�� до �творенн� дбайливої, охайної лікарні дл� хворих і нужденних. " .. "Тут ви зіткнете�ь з великою кількі�тю різноманітних труднощів. " .. "�ле �кщо у ва� є до�татньо добре навчений пер�онал і необхідна апаратура, це не повинно �тати проблемою. " .. "Ваша лікарн� має коштувати 200,000$, а на рахунку лікарні вам необхідно накопичити 400,000$. " .. "Доларом менше, і ви не зможете завершити рівень.", level10 = "Міні�тер�тво про�ить, щоб, окрім лікуванн� хвороб, характерних дл� цих країв, ви приділили ча� підвищенню ефективно�ті ліків. " .. "Їм надход�ть �карги від журналу Здоров'� та Житт� без Ліків. Тому, щоб не запл�мити репутацію, ви повинні переконати��, у надзвичайній ефективно�ті ваших ліків. " .. "Також дивіть��, щоб вашій лікарні не докор�ли. �ехай �мертні�ть не буде занадто ви�окою. " .. "Маленька підказка: можливо, вам варто відве�ти вільне мі�це дл� Кабінету лікуванн� ожелеюванн�. " .. "Щоб виграти, покращте в�і ліки до 80% ефективно�ті, здобудьте репутацію 650 і заробіть 500,000$ у банку. ", level11 = "Вам була надана унікальна можливі�ть побудувати найдо�коналішу лікарню з у�іх. " .. "Міні�тер�тво хотіло б мати найкращу лікарню в цьому надзвичайно відомому районі. " .. "Ми очікуємо, що ви заробите купу грошей, �творите чудову репутацію та зможете впорати�� з у�іма �піткаючими негараздами. " .. "Це дуже важлива робота. " .. "Вам доведеть�� �правді перевершити �ебе. " .. "Також вам �лід знати, що в цьому районі було помічено �ЛО. Переконайте��, що ваш пер�онал готовий до не�подіваних відвідувачів. " .. "Умови виграшу: варті�ть лікарні 240,000$, 500,000$ на рахунку та репутаці� не менше 700. ", level12 = "Тепер перед вами виклик у�іх викликів. " .. "Міні�тер�тво вражене вашим у�піхом та дає вам найвищу по�аду! Вони хочуть, щоб хто�ь побудував найкращу лікарню, заробив величезні гроші та мав неймовірну репутацію. " .. "Від ва� також очікуєть��, що ви купите в�ю землю мі�течка, вилікуєте в�іх (і ми дій�но маємо на увазі в�іх), тоді в�і нагороди ваші. " .. "То �к? Ви готові вз�ти�ь за це? " .. "Заробіть 650,000$, вилікуйте 750 людей і до��гніть репутації 800, щоб виграти. ", level13 = "Чутки про ваші неймовірні навички �к керівника лікарні не пройшли повз Служби безпеки та розвідки. " .. "У них є �пеціальна задача дл� ва�; є лікарн�, захоплена щурами, �кій потрібен ефективний Винищувач! " .. "Ви повинні знищити �комога більше пацючат, перш ніж різноробочі приберуть ве�ь безлад. " .. "Думаєте впораєте�ь? ", level14 = "Є ще один виклик — аб�олютно непередбачувана лікарн�-�юрприз. " .. "Якщо ви до��гнете у�піху і тут, ви �танете переможцем з переможців. " .. "�ле не чекайте, що це буде легко, тому що це най�кладніше завданн�, �ке ви коли-небудь бачили. " .. "Удачі!", level15 = "Це о�нови роботи будь-�кої лікарні.//" .. "Вашим лікар�м знадобить�� в�� допомога, �ку вони можуть отримати, щоб об�тежити пацієнтів. Ви можете допомогти їм " .. "збудувавши �кий�ь кабінет діагно�тики, наприклад Кабінет загального об�теженн�.", level16 = "Пі�л� діагно�туванн� пацієнтів, вам потрібно буде побудувати кабінети дл� лікуванн� хвороб. " .. "Гарною ідеєю буде почати з будівництва Фармакології. Вам знадобить�� мед�е�тра, щоб видавати там ліки. ", level17 = "Попереджаю! �а�тав ча� �ерйозно �тежити за �воєю репутацією — �аме вона приваблює пацієнтів звіду�іль у ваш заклад. " .. "Поки ви не вбиватимете багато людей і вони будуть йти від ва� ща�ливими, у ва� не повинно виникнути проблем на цьому рівні!//" .. "Тепер ти один на один із цим в�ім. У�піхів і бла бла бла.", level18 = "", } letter = { [1] = { [1] = "Шановний %s//", [2] = "Чудово! Ви вправно виконали �вою роботу, керуючи цією лікарнею. Ми, ВІПи з Міні�тер�тва охорони здоров’�, хочемо знати, чи зацікавить ва� більший проект. У на� є робота, дл� �кої ви, �к нам здаєть��, готові. Заробітна плата �тановитиме %d$. Будь ла�ка, розгл�ньте нашу пропозицію.//", [3] = "Ви зацікавлені перейти працювати в лікарню «%s»?", }, [2] = { [1] = "Шановний %s//", [2] = "Дуже добре! Ви до��гли чудових у�піхів у �воїй лікарні. Ми знайшли дл� ва� дещо інше, �кщо ви хочете змінити об�тановку та отримати нові цілі. Вам не обов'�зково погоджувати�� одразу, але �кщо так, то нова зарплата буде %d$//", [3] = "Ви хочете отримати роботу в лікарні «%s»?", }, [3] = { [1] = "Шановний %s//", [2] = "Ви до��гли надзвичайного у�піху під ча� роботи в цій лікарні. Ми очікуємо від ва� великих звершень і надалі, тому хотіли б запропонувати вам по�аду в іншому мі�ці. Зарплата �тановитиме %d$, і ми думаємо, що вам �подобають�� нові виклики, �кі по�тануть перед вами на новому мі�ці.//", [3] = "Ви бажаєте отримати по�аду в лікарні «%s»?", }, [4] = { [1] = "Шановний %s//", [2] = "Вітаємо! Ми в Міні�тер�тві дуже вражені вашою здатні�тю керувати лікарнею. Ви, безперечно, працівник року Департаменту охорони здоров’�. �ле ми хочему, щоб ви віддали перевагу трохи важчій роботі. Вам платили б %d$, але в�е ж рішенн� за вами.//", [3] = "Ви зацікавлені у роботі в лікарні «%s»?", }, [5] = { [1] = "Шановний %s//", [2] = "Вітаю, ще раз. Ми цінуємо ваше бажанн� не залишати цю чарівну лікарню, але ми закликаємо ва� ще раз подумати. Ми запропонуємо вам кращу зарплату, у розмірі %d$, �кщо ви готові перейти до іншої лікарні та зробити її такою ж до�коналою, �к і ц�.//", [3] = "Ви згодні зараз же переїхати до лікарні «%s»?", }, [6] = { [1] = "Шановний %s//", [2] = "Вітаємо. Ми знаємо, що ви ща�ливі в цьому чудовому та налагодженому під ва� закладі, але ми вважаємо, що вам вже варто подумати про кар’єрний зрі�т. Звичайно, вам піднімуть платню до %d$, �кщо ви вирішите переїхати. Є над чим задумати�ь, чи не так?//", [3] = "Ви б хотіли зайн�ти мі�це в лікарні «%s»?", }, [7] = { [1] = "Шановний %s//", [2] = "Вітаємо! Міні�тер�тво охорони здоров’� хотіло б знати, чи бажаєте ви перегл�нути �воє рішенн� залишити�� в цій лікарні. Ми визнаємо, що у ва� чудова лікарн�, але ми також вважаємо, що вам було б добре прийн�ти мі�це з більш �кладним завданн�м і більшою зарплатою у %d$.//", [3] = "Чи бажаєте ви прийн�ти по�аду в лікарні «%s»?", }, [8] = { [1] = "Шановний %s//,", [2] = "Вітаю, ще раз. Ви негативно відповіли на наш о�танній ли�т із пропозицією про першокла�ну по�аду в новій лікарні та підвищенн� зарплати до %d$. Проте наша думка незмінна, вам �лід перегл�нути це рішенн�. Ми пропонуємо ідеальну роботу дл� ва�!//", [3] = "Ви займете мі�це в лікарні «%s». Будь ла�ка?", }, [9] = { [1] = "Шановний %s//,", [2] = "Ви продемон�трували, що є найкращим керівником лікарні за довгу та різноманітну і�торію медицини. Таке значне до��гненн� не може залишити�� без винагороди, тому ми хотіли б запропонувати вам по�аду керівника в�іх лікарень. Це поче�на робота тому буде і відопівдна зарплата у %d$ . Дл� ва� буде парад, і люди ви�вл�тимуть вам �вою вд�чні�ть, куди б ви не пішли!//", [3] = "Д�куємо за в�е, що ви зробили. �а�олоджуйте�ь довгою напівпен�ією.//", [4] = "", }, [10] = { [1] = "Шановний %s//,", [2] = "Вітаємо з у�пішно виконаною роботою в у�іх лікарн�х, до �ких ми ва� призначили. Такі видатні результати дають вам право на �вободу в у�іх мі�тах �віту. Вам дають %d$ пен�ії, плю� лімузин і в�е, що ми прошу від ва� їздити з мі�та в мі�то, зу�трічати людей, �кі ва� обожнюють, і рекламувати роботу в�іх лікарень у�юди.//", [3] = "Ми в�і пишаємо�� вами. Серед на� немає нікого, хто б не відчував вд�чно�ті за вашу наполегливу працю, р�туючи житт�!//", [4] = "", }, [11] = { [1] = "Шановний %s//,", [2] = "Ваша кар’єра була взірцевою, і ви надихаєте в�іх на�! Д�куємо, що керували багатьма лікарн�ми та добре виконуєвали �вою роботу. Ми б хотіли при�воїти вам довічну зарплату в розмірі %d$, і можливі�ть їздити у міні�тер�ькому кабріолеті із мі�та в мі�то, щоб читати лекції про те, �к ви цього в�ього до��гли.//", [3] = "Ви є прикладом дл� кожної адекватно ми�л�чої людини, у�і без вин�тку у �віті вважають ва� неперевершеним.//", [4] = "", }, [12] = { [1] = "Шановний %s//,", [2] = "Ваша у�пішна кар’єра найкращого керівника лікарні з ча�ів Мой�е� добігає кінц�. Проте ваш вплив на вразливий �віт медицини був на�тільки значним, що Міні�тер�тво з раді�тю пропонує вам зарплату %d$ лише дл� того, щоб ви ви�тупали �к наш пред�тавник, відвідувати відкритт� �в�т, �пу�кати на воду кораблі та ве�ти телевізійну розважальну програму. Ве�ь �віт кличе ва� і це буде гарною рекламою дл� в�іх на�!//", [3] = "Будь ла�ка, прийміть цю по�аду. Це не буде важкою роботою, а ми надамо вам автомобіль і поліцей�ький �упровід, куди б ви не пішли.//", [4] = "", }, custom_level_completed = "Чудова робота! Ви виконали в�і завданн� на цьому �пец рівні.", dear_player = "Шановний %s", return_to_main_menu = "Ви хочете повернути�� до головного меню чи продовжити гру?", campaign_level_missing = "Вибачте, але на�тупного рівн� цієї кампанії, �хоже, немає. (�азва: %s)", campaign_level_completed = "Гарна робота! Ви пройшли рівень, але ще є чим зайн�ти�ь! Ви б хотіли прийн�ти по�аду в лікарні %s?", campaign_completed = "�еймовірно! Вам вдало�� пройти в�і рівні. Тепер ви можете роз�лабити�� і почати про�лавл�ти �ебе на в�іх форумах в Інтернеті. У�піхів!" } months = { [1] = "Січ", [2] = "Лют", [3] = "Бер", [4] = "Кві", [5] = "Тра", [6] = "Чер", [7] = "Лип", [8] = "Сер", [9] = "Вер", [10] = "Жов", [11] = "Ли�", [12] = "Гру", } humanoid_name_starts = { [1] = "КЛИМ", [2] = "ЛУКЯ�", [3] = "Б�К�Л", [4] = "Г�ЙД��", [5] = "Б�Б�Ч", [6] = "РЕД", [7] = "ТК�Ч", [8] = "ЗОЛОЧ", [9] = "Т�Р�С", [10] = "ТК�Ч", [11] = "Б�Б", [12] = "ВЕРЕC", [13] = "ДІД", [14] = "ФЕДОР", [15] = "СКРИП", [16] = "ЖД��", [17] = "ФЕДИШ", [18] = "��СТЬОШ", [19] = "ВОЛОШ", [20] = "ПЕРЕДЕР", [21] = "�ЕЧ", [22] = "БУС", [23] = "Б��Д", [24] = "ГОРЖ", [25] = "КОЛОМ", [26] = "КУЗЬМ", [27] = "КОЛ", [28] = "ХОЛ", [29] = "СІЧ", [30] = "БОЛЮБ", [31] = "К�ЙД", [32] = "ШМИГ", [33] = "�ЕЩ�Д", } humanoid_name_ends = { [1] = "Е�КО", [2] = "ЧУК", [3] = "�", [4] = "КО", [5] = "ЮК", [6] = "ИК", [7] = "ІВ", [8] = "ІЧ", [9] = "�ИК", [10] = "ОК", [11] = "И�", [12] = "ІЙ", [13] = "ЕР�", [14] = "УЙ", [15] = "ИЯ", [16] = "�Ш", [17] = "ИМ", [18] = "ЮК", [19] = "�ИК", [20] = "ІЙ", [21] = "Е�КО", [22] = "ІВ", [23] = "ІЧ", [24] = "КО", [25] = "И�", [26] = "КО", } vip_names = { [1] = "Мер Великого Житомира", [2] = "Валерій Хмельницький", [3] = "Сагайдачний, владика Запорізький", [4] = "Саша, �пон�ор демократії", [5] = "Міні�тр ВС Литвиненко", [6] = "Пан Ю. Попович", [7] = "Радник президента Демченко", [8] = "Депутат III �кликанн� Рибачок", [9] = "Футболі�т �. Шевченко", [10] = "Л. Ф. Кучма III", health_minister = "Міні�тр охорони здоров'�", } menu_options_volume = { [50] = " 50% ", [100] = " 100% ", [30] = " 30% ", [60] = " 60% ", [90] = " 90% ", [10] = " 10% ", [20] = " 20% ", [40] = " 40% ", [80] = " 80% ", [70] = " 70% ", } cheats_window = { cheats = { end_month = "Закінчити мі��ць", emergency = "Створити �адзвичайну �итуацію", win_level = "Виграти рівень", create_patient = "Створити Пацієнта", money = "Чіт на Гроші", lose_level = "Програти рівень", all_research = "Чіт на В�і до�лідженн�", end_year = "Закінчити Рік", earthquake = "Викликати землетру�", vip = "Викликати ВІП", toggle_infected = "Перемкнути іконки інфікованих", decrease_prices = "Знизити ціни", epidemic = "Створити заразного пацієнта", increase_prices = "Підвищити ціни", toggle_earthquake = "Перемкнути землетру�", show_infected = "Показати/Скрити іконки інфікованих", max_reputation = "Мак�. репутаці�", reset_death_count = "Скинути к-ть �мертей", toggle_epidemic = "Перемкнути епідемії", }, close = "Закрити", caption = "Чіти", cheated = { no = "Викори�танн� чітів: �і", yes = "Викори�танн� чітів: Так", }, warning = "Увага: Ви не отримаєте додаткових очок в кінці рівн�, �кщо викори�товуватимете чіти!", } original_credits = { [1] = " ", [2] = " ", [3] = " ", [4] = " ", [5] = " ", [6] = " ", [7] = " ", [8] = " ", [9] = " ", [10] = " ", [11] = " ", [12] = ":Designed and Created by", [13] = ":Bullfrog Productions", [14] = " ", [15] = ":Pluto Development Team", [16] = ",", [17] = "Mark Webley", [18] = "Gary Carr", [19] = "Matt Chilton", [20] = "Matt Sullivan", [21] = "Jo Rider", [22] = "Rajan Tande", [23] = "Wayne Imlach", [24] = "Andy Bass", [25] = "Jon Rennie", [26] = "Adam Coglan", [27] = "Natalie White", [28] = " ", [29] = " ", [30] = " ", [31] = ":Programming", [32] = ",", [33] = "Mark Webley", [34] = "Matt Chilton", [35] = "Matt Sullivan", [36] = "Rajan Tande", [37] = " ", [38] = " ", [39] = " ", [40] = ":Art", [41] = ",", [42] = "Gary Carr", [43] = "Jo Rider", [44] = "Andy Bass", [45] = "Adam Coglan", [46] = " ", [47] = " ", [48] = " ", [49] = ":Additional Programming", [50] = ",", [51] = "Ben Deane", [52] = "Gary Morgan", [53] = "Jonty Barnes", [54] = " ", [55] = " ", [56] = " ", [57] = ":Additional Art", [58] = ",", [59] = "Eoin Rogan", [60] = "George Svarovsky", [61] = "Saurev Sarkar", [62] = "Jason Brown", [63] = "John Kershaw", [64] = "Dee Lee", [65] = " ", [66] = " ", [67] = " ", [68] = ":Intro Sequence", [69] = ",", [70] = "Stuart Black", [71] = " ", [72] = " ", [73] = " ", [74] = ":Music and Sound Effects", [75] = ",", [76] = "Russell Shaw", [77] = "Adrian Moore", [78] = " ", [79] = " ", [80] = " ", [81] = ":Additional Music", [82] = ",", [83] = "Jeremy Longley", [84] = "Andy Wood", [85] = " ", [86] = " ", [87] = " ", [88] = ":Announcer Voiceover", [89] = ",", [90] = "Rebecca Green", [91] = " ", [92] = " ", [93] = " ", [94] = ":Level Design", [95] = ",", [96] = "Wayne Imlach", [97] = "Natalie White", [98] = "Steven Jarrett", [99] = "Shin Kanaoya", [100] = " ", [101] = " ", [102] = " ", [103] = ":Scripting", [104] = ",", [105] = "James Leach", [106] = "Sean Masterson", [107] = "Neil Cook", [108] = " ", [109] = " ", [110] = " ", [111] = ":R&D", [112] = " ", [113] = ":Graphics Engine", [114] = ",", [115] = "Andy Cakebread", [116] = "Richard Reed", [117] = " ", [118] = " ", [119] = " ", [120] = ":R&D Support", [121] = ",", [122] = "Glenn Corpes", [123] = "Martin Bell", [124] = "Ian Shaw", [125] = "Jan Svarovsky", [126] = " ", [127] = " ", [128] = " ", [129] = ":Library and Tools", [130] = " ", [131] = "Dos and Win 95 Library", [132] = ",", [133] = "Mark Huntley", [134] = "Alex Peters", [135] = "Rik Heywood", [136] = " ", [137] = " ", [138] = " ", [139] = ":Network Library", [140] = ",", [141] = "Ian Shippen", [142] = "Mark Lamport", [143] = " ", [144] = " ", [145] = " ", [146] = ":Sound Library", [147] = ",", [148] = "Russell Shaw", [149] = "Tony Cox", [150] = " ", [151] = " ", [152] = " ", [153] = ":Installer Programming", [154] = ",", [155] = "Andy Nuttall", [156] = "Tony Cox", [157] = "Andy Cakebread", [158] = " ", [159] = " ", [160] = " ", [161] = ":Moral Support", [162] = ",", [163] = "Peter Molyneux", [164] = " ", [165] = " ", [166] = " ", [167] = ":Testing Manager", [168] = ",", [169] = "Andy Robson", [170] = " ", [171] = " ", [172] = " ", [173] = ":Lead Testers", [174] = ",", [175] = "Wayne Imlach", [176] = "Jon Rennie", [177] = " ", [178] = " ", [179] = " ", [180] = ":Play Testers", [181] = ",", [182] = "Jeff Brutus", [183] = "Wayne Frost", [184] = "Steven Lawrie", [185] = "Tristan Paramor", [186] = "Nathan Smethurst", [187] = " ", [188] = "Ryan Corkery", [189] = "Simon Doherty", [190] = "James Dormer", [191] = "Martin Gregory", [192] = "Ben Lawley", [193] = "Joel Lewis", [194] = "David Lowe", [195] = "Robert Monczak", [196] = "Dominic Mortoza", [197] = "Karl O'Keeffe", [198] = "Michael Singletary", [199] = "Andrew Skipper", [200] = "Stuart Stephen", [201] = "David Wallington", [202] = " ", [203] = "And all our other Work Experience Play Testers", [204] = " ", [205] = " ", [206] = " ", [207] = ":Technical Support", [208] = ",", [209] = "Kevin Donkin", [210] = "Mike Burnham", [211] = "Simon Handby", [212] = " ", [213] = " ", [214] = " ", [215] = ":Marketing", [216] = ",", [217] = "Pete Murphy", [218] = "Sean Ratcliffe", [219] = " ", [220] = " ", [221] = " ", [222] = ":With thanks to:", [223] = ",", [224] = "Tamara Burke", [225] = "Annabel Roose", [226] = "Chris Morgan", [227] = "Pete Larsen", [228] = " ", [229] = " ", [230] = " ", [231] = ":PR", [232] = ",", [233] = "Cathy Campos", [234] = " ", [235] = " ", [236] = " ", [237] = ":Documentation", [238] = ",", [239] = "Mark Casey", [240] = "Richard Johnston", [241] = "James Lenoel", [242] = "Jon Rennie", [243] = " ", [244] = " ", [245] = " ", [246] = ":Documentation & Packaging Design", [247] = ",", [248] = "Caroline Arthur", [249] = "James Nolan", [250] = " ", [251] = " ", [252] = " ", [253] = ":Localisation Project Manager", [254] = ",", [255] = "Carol Aggett", [256] = " ", [257] = " ", [258] = " ", [259] = ":Localisation", [260] = ",", [261] = "Sandra Picaper", [262] = "Sonia 'Sam' Yazmadjian", [263] = " ", [264] = "Bettina Klos", [265] = "Alexa Kortsch", [266] = "Bianca Normann", [267] = " ", [268] = "C.T.O. S.p.A. Zola Predosa (BO)", [269] = "Gian Maria Battistini", [270] = "Maria Ziino", [271] = "Gabriele Vegetti", [272] = " ", [273] = "Elena Ruiz de Velasco", [274] = "Julio Valladares", [275] = "Ricardo Mart®ez", [276] = " ", [277] = "Kia Collin", [278] = "CBG Consult", [279] = "Ulf Thor", [280] = " ", [281] = " ", [282] = " ", [283] = ":Production", [284] = ",", [285] = "Rachel Holman", [286] = " ", [287] = " ", [288] = " ", [289] = ":Producer", [290] = ",", [291] = "Mark Webley", [292] = " ", [293] = " ", [294] = " ", [295] = ":Associate Producer", [296] = ",", [297] = "Andy Nuttall", [298] = " ", [299] = " ", [300] = " ", [301] = ":Operations", [302] = ",", [303] = "Steve Fitton", [304] = " ", [305] = " ", [306] = " ", [307] = ":Company Administration", [308] = ",", [309] = "Audrey Adams", [310] = "Annette Dabb", [311] = "Emma Gibbs", [312] = "Lucia Gobbo", [313] = "Jo Goodwin", [314] = "Sian Jones", [315] = "Kathy McEntee", [316] = "Louise Ratcliffe", [317] = " ", [318] = " ", [319] = " ", [320] = ":Company Management", [321] = ",", [322] = "Les Edgar", [323] = "Peter Molyneux", [324] = "David Byrne", [325] = " ", [326] = " ", [327] = ":All at Bullfrog Productions", [328] = " ", [329] = " ", [330] = " ", [331] = ":Special Thanks to", [332] = ",", [333] = "Everyone at Frimley Park Hospital", [334] = " ", [335] = ":Especially", [336] = ",", [337] = "Beverley Cannell", [338] = "Doug Carlisle", [339] = " ", [340] = " ", [341] = " ", [342] = ":Keep On Thinking", [343] = " ", [344] = " ", [345] = " ", [346] = " ", [347] = " ", [348] = " ", [349] = " ", [350] = " ", [351] = " ", [352] = " ", [353] = " ", [354] = " ", [355] = " ", [356] = " ", [357] = " ", [358] = " ", [359] = " ", [360] = " ", [361] = ".", } tooltip = { queue_window = { end_of_queue = "Перет�гніть пацієнта до цієї іконки, щоб відправити його в кінець черги", num_entered = "Кількі�ть пацієнтів, що відвідали кабінет", close = "Закрити", num_in_queue = "Кількі�ть пацієнтів у черзі", num_expected = "Кількі�ть пацієнтів, �кі �коро приєднають�� до черги", front_of_queue = "Перет�гніть пацієнта до цієї іконки, щоб відправити його на початок черги", dec_queue_size = "Зменшити мак�имальний розмір черги", max_queue_size = "Мак�имальний розмір черги рецепції", inc_queue_size = "Збільшити мак�имальний розмір черги", patient = "Перет�гніть пацієнта, щоб перемі�тити його у черзі. Клацніть правою кнопкою миші на пацієнті, щоб відправити його додому або направити до конкуруючої лікарні", patient_dropdown = { send_home = "Відправити пацієнта додому", hospital_2 = "�аправити пацієнта до іншої лікарні", reception = "Відправити на рецепцію", hospital_1 = "Відправити пацієнта лікувати�ь деінде", hospital_3 = "Віддати пацієнта до лап конкурентів", }, }, jukebox = { rewind = "Попередн� доріжка", loop = "Повторювати поточну доріжку", stop = "Зупинити", close = "Закрити програвач", current_title = "Поточна доріжка", play = "Грати", fast_forward = "�а�тупна доріжка", }, graphs = { deaths = "Відобразити/Приховати померлих", close = "Закрити вікно", scale = "Ма�штаб графіку", money_out = "Відобразити/Приховати витрати", visitors = "Відобразити/Приховати відвідувачів", wages = "Відобразити/Приховати зарплати", balance = "Відобразити/Приховати балан�", money_in = "Відобразити/Приховати дохід", cures = "Відобразити/Приховати вилікуваних", reputation = "Відобразити/Приховати репутацію", }, message = { button = "Клікніть, щоб відкрити повідомленн�", button_dismiss = "Клікніть лівою клавішою миші, щоб перегл�нути повідомленн�, правою - щоб його відхилити", }, pay_rise_window = { accept = "Підвищити зарплату", decline = "Відмовити у підвищенні зарплати", }, cheats_window = { close = "Закрити вікно з чітами", cheats = { end_month = "Пропу�кає цілий мі��ць.", emergency = "Створює надзвичайну �итуацію.", win_level = "Виграє рівень.", create_patient = "Створює нового відвідувача.", money = "Додає 10.000 на ваш балан�.", lose_level = "Програти рівень.", all_research = "Відкриває в�і до�ідженн�.", end_year = "Пропу�кає цілий рік!", toggle_infected = "Відобразити/Приховати іконки інфікованих дл� активної, ви�вленої епідемії", decrease_prices = "Зменшити в�і ціни на 50% (мін. 50%)", epidemic = "Створює інфікованого пацієнта, котрий може викликати епідемію", increase_prices = "Збільшити в�і ціни на 50% (мак�. 200%)", earthquake = "Викликати землетру�.", vip = "Запро�ити ВІП.", toggle_earthquake = "Перемкнути �тан землетру�у", show_infected = "Відобразити/Приховати іконки інфікованих дл� активної, ви�вленої епідемії", max_reputation = "Зробити репутацію лікарні мак�имальною", reset_death_count = "Скинути кількі�ть �мертей до нул�", toggle_epidemic = "Перемкнути, чи можливі епідемії", }, }, menu_list_window = { back = "Закрити вікно", save_date = "Змінювало�ь", name = "Ім'�", }, watch = { emergency = "�адзвичайна �итуаці�: ча�, що залишив�� на лікуванн� термінових пацієнтів.", hospital_opening = "Ча� на будуванн�: коли ча� закінчить�� - лікарн� відкриєть��. Якщо ви хочете відкрити лікарню зараз, нати�ніть на зелену кнопку.", epidemic = "Епідемі�: ча� відведений на зупинку епідемії. Коли ча� закінчить�� або інфікований пацієнт покине лікарню, приїде ін�пектор. Кнопка включає/відключає режим вакцинації. Клікніть на пацієнта і мед�е�тра вакцинує його.", }, calls_dispatcher = { assigned = "Це поле позначено, коли кому�ь призначено завданн�.", task = "Спи�ок завдань - клацніть завданн�, щоб відкрити вікно призначеного працівника та перейти до завданн�", close = "Закрити вікно ди�петчера", }, information = { close = "Закрити вікно інформації", }, lua_console = { textbox = "Введіть тут Lua код дл� запу�ку", execute_code = "Запу�тити введенний Вами код", close = "Закрити кон�оль", }, staff_window = { doctor_seniority = "Ступінь (Інтерн, Лікар, Спеціалі�т)", psychiatrist = "П�ихіатр", close = "Закрити вікно", ability = "Здібно�ті", pick_up = "Підн�ти", sack = "Звільнити", surgeon = "Хірург", happiness = "Задовільні�ть", salary = "Щомі��чна зарплатн�", name = "Ім'�", tiredness = "Втома", center_view = "Ліва клавіша - центрувати екран, права - вибрати на�тупного працівника", skills = "Додаткові навички", researcher = "До�лідник", face = "Фото працівника - нати�ніть, щоб перейти до екрану керуванн� працівниками", }, research = { cure_inc = "Підвищити пріоритет до�лідженн� нових захворювань", close = "Закрити вікно до�ліджень", specialisation_dec = "Знизити пріоритет �пеціальних до�ліджень", diagnosis_dec = "Знизити пріоритет до�ліджень діагно�тичного обладнанн�", allocated_amount = "Виділені ре�ур�и", improvements_inc = "Підвищити пріоритет до�лідженн� покращень", drugs_dec = "Знизити пріоритет до�лідженн� ліків", drugs_inc = "Підвищити пріоритет до�лідженн� ліків", cure_dec = "Знизити пріоритет до�лідженн� нових захворювань", specialisation_inc = "Підвищити пріоритет �пеціальних до�ліджень", improvements_dec = "Знизити пріоритет до�лідженн� покращень", diagnosis_inc = "Підвищити пріоритет до�ліджень діагно�тичного обладнанн�", }, statement = { close = "Закрити вікно балан�у", }, buy_objects_window = { confirm = "Купити предмет(и)", cancel = "Відмінити", increase = "Купити на один предмет більше", total_value = "Загальна �ума", price = "Варті�ть предмета", decrease = "Купити на один предмет меньше", }, fax = { close = "Закрити вікно, не видал�ючи повідомленн�", }, window_general = { confirm = "Підтвердити", cancel = "Відмінити", }, } totd_window = { previous = "Попередн� підказка", tips = { [1] = "Кожна лікарн�, дл� базового функціонуванн�, потребує Рецепції та Кабінету терапевта. Коли вони є, в�е залежить від того, �кі пацієнти відвідують вашу лікарню. �ле Фармакологічний кабінет завжди є хорошим вибором.", [2] = "Такі апарати, �к наприклад �адувач, потребують технічного об�луговуванн�. �аймайте Різноробочих дл� їх ремонту, інакше ви ризикуєте травмувати пацієнтів і �вій пер�онал.", [3] = "Через де�кий ча� кропітливої роботи ваші �півробітники втомл�ть��. Обов’�зково побудуйте дл� них Кімнату відпочинку.", [4] = "Розміщуйте до�татньо радіаторів, щоб зігріти ваших пацієнтів і пер�онал, інакше вони не будуть раді, що прийшли до ва�. Викори�товуйте Мапу мі�течка, щоб визначити мі�ц� у вашій лікарні, �кі недо�татньо опалюють��.", [5] = "Рівень здібно�тей лікар� значною мірою впливає на �кі�ть і швидкі�ть діагно�тики його пацієнта. По�тавте у �вій кабінет до�відченого лікар�, і вам не знадобить�� �тільки додаткових діагно�тичних кабінетів.", [6] = "Інтерни та Лікарі можуть покращити �вої навички, навчаючи�ь у Спеціалі�та у Лекційній. Якщо �пеціалі�т має додаткову навичку (хірург, п�ихіатр або до�лідник), він також передаватиме ці знанн� �воїм �тудентам.", [7] = "Ви пробували вве�ти європей�ький номер �лужби ек�треної допомоги (112) у фак�? Перед цим, не забудьте увімкнути звук!", [8] = "Певні налаштуванн�, такі �к роздільна здатні�ть екрана та мова, можна змінити у вікні налаштувань, �ке можна знайти �к у головному меню, так і під ча� грі.", [9] = "Ви вибрали мову, відмінну від англій�ької, але �крізь є англій�ький тек�т? Допоможіть нам перекла�ти від�утні �троки вашою мовою!", [10] = "Команда CorsixTH шукає помічників! Ви зацікавлені в програмуванні, перекладі або �творенні графіки дл� CorsixTH? Зв’�жіть�� з нами на нашому Discord або відвідайте наш веб-�айт (CorsixTH.com)", [11] = "Якщо ви знайшли помилку, будь ла�ка, повідомте про це у наш багтрекер: th-issues.corsix.org", [12] = "Кожний рівень має певні цілі, �кі ви повинні виконати, перш ніж перейти до на�тупного. Перейдіть у вікно �тату�у, щоб побачити �вій прогре� у виконанні цілей цього рівн�.", [13] = "Якщо ви хочете відредагувати або видалити на�вну кімнату, ви можете зробити це за допомогою кнопки Змінити кімнату внизу панелі ін�трументів.", [14] = "У натовпі пацієнтів, �кі очікують, ви можете швидко знайти тих, хто очікує на певну кімнату, навівши кур�ор на двері цієї кімнати.", [15] = "�ати�ніть на двері кімнати, щоб побачити її чергу. Тут ви можете вне�ти незначні зміни, наприклад змінити пор�док черги або відправити пацієнта в іншу кімнату.", [16] = "�езадоволені працівники ча�тіше вимагатимуть підвищенн�. Переконайте��, що ваші �півробітники працюють у комфортних умовах, щоб запобігти цьому.", [17] = "Пацієнти будуть відчувати �прагу, поки вони чекатимуть у вашій лікарні, і �кщо ви підвищите температуру, вона буде ще більше! Розмі�тіть �втомат з напо�ми у �тратегічних мі�ц�х дл� додаткового прибутку.", [18] = "Ви можете передча�но завершити проце� об�теженн� і вгадати лікуванн�, �кщо ви вже �тикали�� з хворобою. �ле майте на увазі, що це може збільшити ризик неправильного лікуванн�, �ке �причинить �мерть пацієнта.", [19] = "�адзвичайні �итуації можуть бути гарним джерелом додаткового доходу, �кщо у ва� є до�татньо можливо�тей дл� �воєча�ної допомоги невідкладним пацієнтам.", [20] = "Чи знали ви, що можна призначити Різноробочим чим �аме їм займати�ь? Про�то нати�кайте на одну із задач у їх профілі щоб задати пріоритет!" }, next = "�а�тупна підказка", } trophy_room = { reputation = "РЕПУТ�ЦІЯ", gen_repairs = { penalty = { [1] = "Ваші різноробочі не дуже добре об�луговувують ваші апарати. Вам �лід ретельніше нагл�дати за ними або найн�ти їх більше, щоб вони могли впорати�� з об��гом роботи.", [2] = "Технічне об�луговуванн� - це жах. Ваші працівники повинні піклувати�� про апарати, �к про �вої вла�ні.", }, awards = { [1] = "Ви отримали о�обливу нагороду за �притні�ть ваших різноробочих, �кі підтримують ваші апарати в хорошому �тані. Чудово. Ви можете дати їм відпу�тку.", [2] = "Ваші різноробочі працювали краще, ніж працівники інших лікарень. Це величезне до��гненн�, за �ке ва� �лід привітати.", [3] = "Ваші апарати добре об�луговують��. Віддані�ть ваших різноробочих вин�ткова. Ви в�і за�луговуєте на цю пре�тижну нагороду. �еперевершено.", }, }, pop_percentage = { awards = { [1] = "Зверніть увагу, що минулого року у вашій лікарні була доволі ви�ока ча�тка жителів мі�та. Вітаю.", [2] = "Вітаємо. Ваша лікарн� приймає більшу ча�тку мі�цевого на�еленн�, ніж будь-�ка інша.", [3] = "Дивовижно. Ви залучили до вашої лікарні більше пацієнтів, ніж в�і лікарні разом уз�ті.", }, penalty = { [1] = "Минулого року зов�ім невелика ча�тка жителів відвідала вашу лікарню. Щоб заробл�ти гроші вам потрібно залучити більше плато�проможних хворих.", [2] = "У будь-�ку лікарню в цій мі�цині ходить більше людей, ніж до ва�. Сором вам, �ором.", }, }, happy_vips = { trophies = { [1] = "Клуб відомих людей хоче вручити вам кубок Попул�рно�ті за приділену увагу в�ім VIP-пер�онам, що відвідали ва� минулого року. Тепер ви можете вважати �ебе більш відомим.", [2] = "Клуб відомих людей хоче вручити вам кубок Знаменито�ті за те, що ви радуєте відвідувачів вашого закладу. Вважайте �ебе відомим і майже одним із на�.", [3] = "Вітаємо з отриманн�м ВІП Путівки за полегшенн� житт� звичайних працівників в очах громад�ько�ті, задовольн�ючи тих, хто відвідав вашу лікарню. Це чудово.", }, }, happy_patients = { awards = { [1] = "Ви можете пишати�� тим, що минулого року люди були дуже ща�ливі у вашій лікарні.", [2] = "Люди, �кі відвідували вашу лікарню, були в задоволеними об�луговуванн�м більше, ніж у будь-�кій іншій лікарні в грі.", }, penalty = { [1] = "Люди, �кі приход�ть до лікарні, переживають про�то жахливий до�від. Якщо ви хочете за�лужити повагу Міні�тер�тва, вам доведеть�� по�тарати�� набагато більше.", [2] = "Люди, �кі проход�ть лікуванн� у вашій лікарні, дуже незадоволені її �таном. Ви повинні приділ�ти більше уваги благоу�трою пацієнтів.", }, }, rats_killed = { awards = { }, trophies = { [1] = "Ва� було нагороджено Кубком винищувача шкідників за від�тріл %d пацюків у вашій лікарні прот�гом минулого року.", [2] = "Вашими вин�тковими навичками �трільби по щурах ви вибороли цей трофей від Федерації боротьби з щурами та мишами, убивши %d гризунів.", [3] = "Ви пройшли кваліфікацію на Кубок Rat Sniper Cup за вин�ткову май�терні�ть у позбавленні �воєї лікарні від %d пацюків за минулий рік.", }, }, happy_staff = { awards = { [1] = "Ваші �півробітники при�удили Вам цю нагороду. Вони кажуть, що хоча є можливо�ті дл� покращень, ваше �тавленн� до них до�ить хороше.", [2] = "Вашим �півробітникам так подобаєть�� працювати на ва�, що вони не можуть пере�тати по�міхати��. Ви чудовий керівник.", }, trophies = { [1] = "Ви отримуєте Кубок �міху за те, що підтримуєте на�трій �воїх працівників, що вони не можуть припинити по�міхати�ь.", [2] = "Ін�титут радо�ті вд�чний вам за від�утні�ть незадоволених працівників у вашій лікарні минулого року, і нагороджує ва� цим кубком.", [3] = "Ц� нагорода, «Кубок «Більше по�мішок», вручаєть�� вам за те, що прот�гом минулого року ваші �півробітники залишали�� ща�ливими виконуючи �вої обов’�зки. По�мішки в�юди!", }, regional_bad = { [1] = "Минулого року в�і ваші працівники були дуже незадоволені. Ви повинні були це помітити. � от у в�іх інших лікарн�х працюють ща�ливіші працівники.", }, regional_good = { [1] = "Ваші працівники ща�ливіші, ніж в інших лікарн�х. Задоволені працівники прино��ть більше прибутку і менше �мертей. Міні�тер�тво задоволене цим.", }, penalty = { [1] = "Ваші �півробітники хочуть, щоб ви їх помітили, вони дуже неща�ні. Ща�ливі �півробітники - це цінні�ть. Зробіть їх ща�ливішими або в один момент можете тратити їх.", }, }, rats_accuracy = { awards = { }, trophies = { [1] = "Ви отримуєте приз «Кубок «Пацючий �найпер» за %d%% точні�ть під ча� �трільби по пацюкам.", [2] = "Цей кубок вшановує вашу неймовірну точні�ть у винищенні %d%% пацюків, і �ких ви поцілили у �воїй лікарні минулого року.", [3] = "Щоб від�в�ткувати подію, коли ви вбили %d%% у�іх пацюків у вашій лікарні, ви отримуєте «Кубок «Винищувач ніркових пацюків». Вітаємо!", }, }, all_cured = { awards = { [1] = "Вітаємо з отриманн�м нагороди Марії Кюрі за у�пішне лікуванн� в�іх пацієнтів у вашій лікарні за минулий рік.", }, trophies = { [1] = "Міжнародний фонд зціленн� бажає визнати той факт, що ви зцілили в�іх прот�гом о�таннього року, нагородивши ва� «Кубком «�еймовірні зціленн�».", [2] = "Ва� було нагороджено «Кубком «Поціновувач здорових дупок» за у�пішне лікуванн� в�іх пацієнтів у вашій лікарні минулого року.", }, }, no_deaths = { awards = { [1] = "Ви отримали нагороду «Жодно�мерт�» за збереженн� житт� 100 від�отків пацієнтів за о�танній рік.", [2] = "Ми даруємо вам цю нагороду на згадку про низьку кількі�ть �мертей у вашій лікарні цього року. Це неможе не радувати.", }, trophies = { [1] = "Комітет «Житт� продовжуєть��!» нагороджує ва� цим кубком за запобіганн� �мертей за о�танній рік.", [2] = "Ва� було нагороджено кубком «Залишити�� в живих» за те, що ви уникли в�іх можливих �мертей у вашій лікарні минулого року. Чудово.", [3] = "Ви нагороджені кубком «Житт�» за те, що взагалі не було �мертей у вашій лікарні минулого року. �еймовірно!", }, penalty = { [1] = "Кількі�ть �мертей у вашій лікарні минулого року була неприйн�тно ви�ока. Приділіть більше уваги �воїй роботі. У майбутньому переконайте��, що виживає більше людей.", [2] = "У вашій лікарні пацієнти ризикують більше втратити �воє здоров'�, ніж вилікувати��. Від ва� очікуєть��, що ви зцілите багато людей, а не вбиватимете їх.", }, regional = { [1] = "Кількі�ть �мертей у вашій лікарні минулого року була нижчою, ніж в інших лікарн�х. Будь ла�ка, прийміть цю нагороду.", }, }, many_cured = { awards = { [1] = "Вітаємо з одужанн�м багатьох пацієнтів за минулий рік. Завд�ки вашій роботі багато людей почувають�� добре.", [2] = "Будь ла�ка, прийміть цю нагороду за лікуванн� більшої кілько�ті пацієнтів, ніж будь-�ка інша лікарн�. Справжнє до��гненн�.", }, trophies = { [1] = "Міжнародний фонд одужанн� бажає визнати той факт, що ви вилікували величезну кількі�ть людей у ​​вашій лікарні минулого року, нагородивши ва� кубком «Багацько здоровецьких».", [2] = "Ва� було нагороджено кубком «Капітан оздоровленн�» за у�пішне лікуванн� ви�окого від�отка пацієнтів у вашій лікарні минулого року.", [3] = "Вітаємо з отриманн�м нагороди Марії Кюрі за у�пішне лікуванн� майже в�іх пацієнтів вашої лікарні минулого року", }, penalty = { [1] = "Ваша лікарн� не може забезпечити ефективне лікуванн� пацієнтів, �кі його потребують. Зо�ередьте�� на �воїх методах лікуванн�, щоб зробити їх ефективнішими.", [2] = "Ваша лікарн� менш ефективна в лікуванні пацієнтів, ніж будь-�ка інша. Ви підвели Міні�тер�тво і ви підвели �ебе. Це в�е, що ми хотіли �казати.", }, regional = { [1] = "Ми урочи�то вручаємо вам нагороду «В�емогутн� медицина» за те, що ви вилікували більше людей, ніж у�і інші лікарні разом уз�ті.", }, }, curesvdeaths = { awards = { [1] = "Щирі вітанн� з до��гненн�м дивовижного �піввідношенн� вилікуваних до померлих у вашій лікарні минулого року.", }, penalty = { [1] = "Ваше �піввідношенн� одужаних до померлих дуже погане. Ви повинні переконати��, що ви виліковуєте набагато більше людей, ніж доводите їх до �мерті. �е нервуйте на�.", }, }, emergencies = { award = { [1] = "Вітаємо: ваше ефективне та дієве вирішенн� надзвичайних �итуацій прине�ло вам цю о�обливу нагороду. Молодці!", [2] = "Ваше вийн�ткові дії під ча� надзвичайних �итуацій - неймовірні. Ц� нагорода при�уджена за те, що ви найкраще �правл�єте�� з великим потоком хворих і �траждаючих.", }, regional_good = { [1] = "Міні�тер�тво визнає, що минулого року ваша лікарн� впорала�� з надзвичайними �итуаці�ми краще, ніж будь-�ка інша лікарн�, і при�уджує вам цю нагороду.", }, penalty = { [1] = "Ви погано �правл�єте�� з надзвичайними �итуаці�ми. Пацієнти невідкладної допомоги потребують швидкої та належної уваги, �ку ви не надали.", }, regional_bad = { [1] = "Ваша лікарн� є найгіршою в регіоні, що відгукають�� на надзвичайні �итуації. Саме Ви винні в тому, що опинили�� в кінці мі�цевої ліги невідкладної допомоги.", }, }, high_rep = { awards = { [1] = "Чудово. Ви отримуєте невелику нагороду за до��гненн� дуже поважної репутації за о�танній рік.", [2] = "Чудово! Ваша лікарн� отримала нагороду за найкращу репутацію за о�танній рік.", }, penalty = { [1] = "Ви будете покарані за �творенн� дуже поганої репутації лікарні в минулому році. Вам краще переконати��, що вона покращить�� в майбутньому.", [2] = "Репутаці� вашої лікарні найгірша в регіоні. Яка ганьба! Покращіть її або доведеть�� шукати іншу роботу!", }, regional = { [1] = "Будь ла�ка, прийміть нагороду Bullfrog за найвищу репутацію з у�іх лікарень цього року. �а�олоджуйте�ь - ви цього за�луговуєте.", [2] = "Цього року репутаці� вашої лікарні перевершила репутацію в�іх інших лікарні разом уз�ті. Це значне до��гненн�.", } }, consistant_rep = { trophies = { [1] = "Пр�мо зараз ви отримуєте нагороду Кабінету міні�трів за до�коналі �тандарти та найвищу можливу репутацію цього року! Опле�ки дл� ва�!", [2] = "Вітаємо з отриманн�м нагороди «Кришталева лілі�» дл� лікарні з найкращою репутацією за минулий рік. Зайве говорити, що ви на це за�луговуєте.", }, }, sold_drinks = { awards = { }, trophies = { [1] = "В�е�вітн� �томатологічна а�оціаці� з горді�тю відзначає ва� цією нагородою та табличкою за продаж великої кілько�ті газованих напоїв у вашій лікарні.", [2] = "Ваша лікарн� була нагороджена «Кубком підтримки бізне�у з продажів безалкогольних напоїв» на знак визнанн� вражаючої кілько�ті проданих напоїві за минулий рік.", [3] = "Від імені �томат кабінету «32 пломби» ви нагороджені цією чашкою в шоколаді, щоб відзначити надзвичайну кількі�ть безалкогольних напоїв, проданих у вашій лікарні цього року.", }, }, wait_times = { award = { [1] = "Вітаємо! У вашій лікарні немає довгих черг. Це важлива нагорода.", }, penalty = { [1] = "Люд�м у вашій лікарні доводить�� чекати занадто довго. Черги тут довші, ніж у магазинах з акці�ми. Якби ви �тарали�� більше, ваших пацієнтів можна було б лікувати ефективніше.", }, }, healthy_plants = { awards = { [1] = "Вітаємо з отриманн�м нагороди «Збагачена земл�» за належний долг�л та збереженн� ваших ро�лин прот�гом минулого року.", }, trophies = { [1] = "Друзі кімнатних ро�лин хочуть нагородити ва� «Зеленою чашкою здоров’�» за те, що ви підтримували в�і ваші квіти в хорошому �тані прот�гом о�танніх дванадц�ти мі��ців.", [2] = "Спільнота захи�ників довкілл� хоче нагородити ва� кубком «Зелена долонька» за те, що ви підтримували ваші ро�лини в лікарні в найкращому �тані прот�гом минулого року.", }, }, cleanliness = { regional_good = { [1] = "Ваша лікарн� була визнана однією з найчи�тіших у в�ьому �віті. Ваші різноробочі за�луговують на підвищенн�. Ви також за�луговуєте на їх повагу.", }, award = { [1] = "Ін�пектори відзначили, що ваша лікарн� дуже чи�та. Чи�ті лікарні — безпечні лікарні. Так тримати.", }, regional_bad = { [1] = "Ваша лікарн� найбрудніша в районі. Іншим керівникам вдало�� зберегти �вої коридори чи�тішими. Ви ганьба дл� медичної профе�ії.", }, }, hosp_value = { awards = { [1] = "Міні�тер�тво охорони здоров'� хотіло б �кори�тати�� цією можливі�тю, щоб привітати ва� із вражаючою загальною варті�тю вашої лікарні.", }, penalty = { [1] = "Ваша лікарн� не до��гла гідної варто�ті. Ви прийн�ли неправильні рішенн� щодо розтрати грошей. Пам'�тайте, що хороша лікарн� також є дорогою лікарнею.", }, regional = { [1] = "Ви фінан�овий вундеркінд. Ваша лікарн� коштує більше, ніж у�і інші лікарні в регіоні разом уз�ті.", }, }, best_value_hosp = { regional = { [1] = "Вітаємо з найціннішою лікарнею в грі. Гарна робота. Будь ла�ка, намагайте�� і далі підтримувати цю планку.", }, penalty = { [1] = "Кожна лікарн� в цьому районі коштує більше, ніж ваша. Виправте цю ганебну �итуацію. Вкладіть більше грошей у лікарню!", }, trophies = { [1] = "Вітаємо з отриманн�м нагороди «Золота �крин�» дл� лікарні, �ка отримала найвищу цінні�ть за минулий рік. Це, без�умнівно, за�лужено.", }, }, research = { regional_good = { [1] = "До�лідженн� вашої лікарні відповідають новітнім знанн�м. Ваші до�лідники за�луговують цієї нагороди. Чудово!", }, regional_bad = { [1] = "У в�іх найближчих лікарн�х є кращі до�лідженн�, але не у ва�. Міні�тер�тво за�мучено, о�кільки до�лідженн� повинні мати найвищий пріоритет у вашій лікарні.", }, penalty = { [1] = "Ви від�тали в до�лідженні нових методів лікуванн�, обладнанн� та ліків. Це дуже погано, тому що технологічний прогре� є важливим.", }, awards = { [1] = "До�лідженн� вашої лікарні відповідають новітнім знанн�м. Ваші до�лідники за�лужили цю нагороду.", [2] = "За минулий рік ви до�лідили більше ліків і апаратів, ніж будь-хто міг �подівати��. Будь ла�ка, прийміть цю нагороду від у�іх на� у Міні�тер�тві.", }, }, cash = "ГРОШІ", } drug_companies = { [1] = "Марі�-Фарм", [2] = "Славі� 2000", [3] = "П�Т Вітаміни", [4] = "ТОВ �ВФ Мікрохім", [5] = "ТОВ �атур", } insurance_companies = { [1] = "К�ЯЖ�", [2] = "ДЕРЖСТР�ХУВ���Я", [3] = "�РХ СТР�ХУВ���Я", [4] = "ВУС�", [5] = "Ю�ІВЕРС�Л", [6] = "�РСЕ��Л", [7] = "�ЛЬЯ�С УЛЬТ�", [8] = "БОР��Т�", [9] = "Т�К Страхуванн�", [10] = "Ю�ІК�", [11] = "М�КССТР�Х", out_of_business = "ПОЗ� БІЗ�ЕСОМ", } competitor_names = { [1] = "ПРОФІТ", [2] = "М�РВІ�", [3] = "ДР�КУЛ�", [4] = "ЛУГОВИ��", [5] = "ТО�УС", [6] = "ЛІЩИ��", [7] = "ДЗЕ�", [8] = "С�ЛІВ��", [9] = "�КУР�", [10] = "ПУЛЬТМ��", [11] = "Ч�РЛІ", [12] = "ШЕДОУ", [13] = "ГОРГО��", [14] = "ОЛ�Ф", [15] = "К�ЛИ��", [16] = "�ОРМ�Л", [17] = "ВІ�СЕ�Т", [18] = "МОЗЕС", [19] = "СК�Т", [20] = "ГОР�", [21] = "М�РКСВЕЛ", [22] = "Д��ІЄЛЬ", [23] = "ОЛИВ�", [24] = "�ІК", } level_names = { [1] = "Хімі�то", [2] = "Сонна Лощина", [3] = "Великомі�т�", [4] = "Свобода-бережна", [5] = "Звичайнецьк", [6] = "Затх-на-Донцю", [7] = "Зеленопіль", [8] = "Мужчинкокрай", [9] = "Східнецьк", [10] = "Яйцевина", [11] = "Каркарине", [12] = "Дупцекрай", [13] = "Чумнокрай", [14] = "�ечекан�ьк", [15] = "Цвинтар�ьк", } graphs = { deaths = "Померло", money_in = "Дохід", money_out = "Витрати", visitors = "Відвідувачі", wages = "Зарплата", balance = "Балан�", time_spans = { [1] = "1 рік", [2] = "12 років", [3] = "48 років", }, cures = "Вилікувано", reputation = "Репутаці�", } newspaper = { [1] = { [1] = "ШОКУЮЧИЙ ЛІК�Р�Я�ИЙ Ж�Х", [2] = "ДИВ�КУВ�ТИЙ ТЕР�ПЕВТ ДУМ�Є ЩО ВІ� БОГ", [3] = "�ІБИ З ФІЛЬМУ ПИЛ�", [4] = "ЩО БУЛО �� Л�БОР�ТОР�ОМУ СТОЛІ?", [5] = "РЕЙД ЗУПИ�ИВ РИЗИКОВ��І ДОСЛІДИ", }, [2] = { [1] = "ЛІК�Р З ПОХМІЛЛЯМ", [2] = "П'Я�ИЙ ХІРУРГ", [3] = "СПЕЦІ�ЛІСТ-ДУШОГУБ", [4] = "��РКО-ХІРУРГІЯ", [5] = "ХІРУРГ ПІД ��ЕСТЕЗІЄЮ", [6] = "ПЕРЕГ�Р ВСЮДИ", }, [3] = { [1] = "Ж�ДІБ�ИЙ ХІРУРГ", [2] = "ШИРОКІ К�РМ��И ЛІК�РІВ", [3] = "ЛІК�Р �Е ВПОР�ВСЯ", [4] = "ХІРУРГУ ВСЕ М�ЛО", }, [4] = { [1] = "ЛІК�Р ПІДКОРЕГОВУЄ ЦИФРИ", [2] = "ОРГ��ІЗОВ��ИЙ ЗЛОЧИ�", [3] = "ОПЕР�ЦІЇ З ПЕРЕК�З�МИ", [4] = "КОШТ�МИ ЙДУТЬ ЧЕРЕЗ ЛІК�РЯ", }, [5] = { [1] = "ОЗДОРОВЧЕ ВСКРИТТЯ МОГИЛ", [2] = "ЛІК�Р СПОРОЖ�ЯЄ МОГИЛИ", [3] = "СПІЙМ��ИЙ З ТРУПОМ", [4] = "ДЕ�Ь ВИКРИТТЯ СМЕРТІ ДОКТОР�", [5] = "Ф�Т�ЛЬ�� �ЕДБ�ЛІСТЬ", [6] = "РОЗКОПКИ МОГИЛЬ�ИК� З�ВЕРШЕ�І", }, [6] = { [1] = "ЛІК�РСЬК� Т�ЄМ�� ЗМОВ�!", [2] = "�ЕУВ�Ж�� МЕДСЕСТР�", [3] = "ДІ�Г�ОЗ ��ВМ���Я", [4] = "�ЕСПЕЦІ�ЛЬ�ИЙ СПЕЦІ�ЛІСТ", }, [7] = { [1] = "ПСИХІ�ТР Г��ЯЄ СОБ�К", [2] = "ХІРУРГ ОПЕРУЄ С�М СЕБЕ", [3] = "М�СТУРБ�ЦІЯ �� РЕЦЕПЦІЇ", [4] = "МЕДСЕСТР� - ЗІРК� СК��Д�ЛУ", [5] = "В К�БІ�ЕТІ ЛІК�РЯ БОРДЕЛЬ", }, } debug_patient_window = { caption = "Те�товий пацієнт", } menu_debug = { allow_blocking_off_areas = " ДОЗВОЛИТИ БЛОКУВ���Я ОБЛ�СТЕЙ ", connect_debugger = " (%1%) З'ЄД����Я З LUA DBGp СЕРВЕРОМ ", debug_script = " (%1%) З�ПУСК ДЕБ�ГУ СКРИПТ� ", transparent_walls = " (%1%) ПРОЗОРІ СТІ�И ", make_debug_fax = " СТВОРИТИ ТЕСТОВИЙ Ф�КС ", display_pager = " DISPLAY PAGER ", cheats = " (%1%) ЧІТИ ", remove_objects = " ВИД�ЛИТИ ОБ'ЄКТИ ", remove_walls = " ВИД�ЛИТИ СТІ�И ", sprite_viewer = " ПЕРЕГЛЯД СПР�ЙТІВ ", map_overlay = " ОВЕРЛЕЙ ", disable_salary_raise = " ВИМК�УТИ ПІД�ЯТТЯ З�РПЛ�ТИ ", limit_camera = " ОБМЕЖЕ��Я К�МЕРИ ", calls_dispatcher = " СПИСОК СПР�В РІЗ�ОРОБОЧИХ ", jump_to_level = " ПЕРЕЙТИ �� РІВЕ�Ь ", dump_gamelog = " (%1%) СТВОРИТИ Д�МП ", dump_strings = " (%1%) СТВОРИТИ Д�МП СТРОК ", win_game_anim = " ��ІМ�ЦІЯ ПЕРЕМОГИ ", make_debug_patient = " СТВОРИТИ ТЕСТОВОГО П�ЦІЄ�Т� ", lua_console = " (%1%) КО�СОЛЬ LUA " } lua_console = { execute_code = "Виконати", close = "Закрити", } calls_dispatcher = { repair = "Відремонтувати %s", summary = "%d виклик; %d призначено", close = "Закрити", watering = "Полити @ %d,%d", staff = "%s - %s", } information = { level_lost = { [1] = "Ц� тактика не зов�ім �працювала. Удачі на�тупного разу!", [2] = "Причина програшу:", reputation = "Ваша репутаці� куди�ь випарила�ь, впала нижче %d.", balance = "Ваш балан� впав нижче мінімального, зокрема нижче %d.", percentage_killed = "Ми лікарн�, а не бійн�. Ви вбили понад %d від�отків пацієнтів.", cheat = "Це те, що ти хотів, чи, може, ти вибрав не ту кнопку? Ти навіть не вмієш обманювати? Сміх та й годі.", }, cannot_restart = "�а жаль, ц� гра була збережена до того, �к була реалізована функці� перезапу�ку.", custom_game = "Ла�каво про�имо до CorsixTH. �а�олоджуйте�ь цією кори�тувацькою мапою!", very_old_save = "Вийшло багато оновлень з моменту о�таннього запу�ку цього рівн�. Щоб переконати��, що в�і функції працюють належним чином, почніть цей рівень наново.", cheat_not_possible = "Ви не можете викори�товувати цей чит на цьому рівні. Ви навіть більше не можете чітерити, таке �обі житт�, га?", no_custom_game_in_demo = "�ам дуже шкода, але ви не можете грати кори�тувацькі мапи у демон�траційній вер�ії.", } map_editor_window = { pages = { heliport_2 = "Гелік. майданчик 2", pond = "Ставок", foliage = "Ро�линні�ть", road = "Дорога", heliport_4 = "Гелік. майданчик 4", heliport_1 = "Гелік. майданчик 1", delete_wall = "Видаленн� �тін", west_wall = "Західні �тіни", heliport_3 = "Гелік. майданчик 3", inside = "Підлога", helipad = "Гелік. майданчик", camera_2 = "Камера 2", camera_1 = "Камера 1", hedgerow = "Огорожа", outside = "Стежки", camera_3 = "Камера 3", paste = "Розмі�тити об'єкти", camera_4 = "Камера 4", north_wall = "Північні �тіни", parcel = "Діл�нка %d", set_parcel = "Задати номер діл�нки", set_parcel_tooltip = "Виберіть номер і нати�ніть Еnter.", }, checks = { spawn_points_and_path = "Попередженн�: Пацієнти не можуть потрапити у лікарню. Їм потрібні 'Дорожні' плити або �ірі плити 'Подвір'�' на краю мапи і шл�х має бути прокладеним до входу у лікарню.", }, } custom_campaign_window = { caption = "Додаткові кампанії", start_selected_campaign = "Почати кампанію", } level_progress = { hospital_value_enough = "�е знижуйте варті�ть вашої лікарні нижче %d, і вам потрібно буде вирішити лише ті проблеми, що залишили��, щоб виграти.", cured_enough_patients = "Ви вилікували до�татньо �воїх пацієнтів, але щоб перемогти, вам потрібно приве�ти лікарню в кращий �тан.", } disease_discovered_patient_choice.need_to_employ = "Викори�товуйте %s щоб впорати�� з цією �итуацією." multiplayer = { players_failed = "Ці гравці не змогли виконати о�таннє завданн�:", everyone_failed = "�іхто не виконав о�танню ціль. Тож у�і до роботи і далі!", } warnings = { newersave = "Увага! Ви завантажили збережену гру з новішої вер�ії. Ми не рекомендуємо продовжувати через можливі збої в грі. Можете продовжити на �вій �трах і ризик.", levelfile_variable_is_deprecated = "Попередженн�: Рівень «%s» мі�тить у �воєму файлі визначенн� змінної, �ке не підтримуєть��. «%LevelFile» було перейменовано на «%MapFile». Будь ла�ка, викори�товуйте редактор мап, щоб оновити рівень.", } CorsixTH-0.70.0/CorsixTH/Lua/map.lua000066400000000000000000000767751522247547500170500ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Lua extensions to the C++ THMap class class "Map" ---@type Map local Map = _G["Map"] local math_floor, tostring, table_concat = math.floor, tostring, table.concat local thMap = require("TH").map function Map:Map(app) self.width = false self.height = false self.th = thMap() self.app = app self.debug_text = false self.debug_flags = false self.debug_font = false self.debug_tick_timer = 1 self:setTemperatureDisplayMethod(app.config.warmth_colors_display_default) -- Difficulty of the level (string) "easy", "full", "hard". -- Use map:getDifficulty() to query the value. self.difficulty = nil end local flag_cache = {} --! Get the value of the given flag from the tile at x, y in the map. --!param x (int) Horizontal position of the tile to query in the map. --!param x (int) Vertical position of the tile to query in the map. --!param flag (string) Name of the queried flag. --!return (?) value of the queried flag. function Map:getCellFlag(x, y, flag) return self.th:getCellFlags(math.floor(x), math.floor(y), flag_cache)[flag] end --! Get the ID of the room of the tile at x, y in the map. --!param x (int) Horizontal position of the tile to query in the map. --!param x (int) Vertical position of the tile to query in the map. --!return ID of the room at the queried tile. function Map:getRoomId(x, y) return self.th:getRoomId(math.floor(x), math.floor(y)) end function Map:setPlayerCount(count) self.th:setPlayerCount(count) end function Map:getPlayerCount(count) return self.th:getPlayerCount(count) end --! Set the camera tile for the given player on the map --!param x (int) Horizontal position of tile to set camera on --!param y (int) Vertical position of the tile to set the camera on --!param player (int) Player number (1-4) function Map:setCameraTile(x, y, player) self.th:setCameraTile(x, y, player) end --! Set the heliport tile for the given player on the map --!param x (int) Horizontal position of tile to set heliport on --!param y (int) Vertical position of the tile to set the heliport on --!param player (int) Player number (1-4) function Map:setHeliportTile(x, y, player) self.th:setHeliportTile(x, y, player) end --! Set how to display the room temperature in the hospital map. --!param method (int) Way of displaying the temperature. See also THMapTemperatureDisplay enum. --! 1=red gradients, 2=blue/green/red colour shifts, 3=yellow/orange/red colour shifts function Map:setTemperatureDisplayMethod(method) if method ~= 1 and method ~= 2 and method ~= 3 then method = 1 end self.temperature_display_method = method self.app.config.warmth_colors_display_default = method self.th:setTemperatureDisplay(method) end --! Copy the temperature display method from the Lua data, if available, else use the default. function Map:registerTemperatureDisplayMethod() if not self.temperature_display_method then self:setTemperatureDisplayMethod(self.app.config.warmth_colors_display_default) end self.th:setTemperatureDisplay(self.temperature_display_method) end -- Convert between world coordinates and screen coordinates -- World coordinates are (at least for standard maps) in the range [1, 128) -- for both x and y, with the floor of the values giving the cell index. -- Screen coordinates are pixels relative to the map origin - NOT relative to -- the top-left corner of the screen (use UI:WorldToScreen and UI:ScreenToWorld -- for this). function Map:WorldToScreen(x, y) if x == nil then x = 0 end if y == nil then y = 0 end -- Adjust origin from (1, 1) to (0, 0) and then linear transform by matrix: -- 32 -32 -- 16 16 return 32 * (x - y), 16 * (x + y - 2) end function Map:ScreenToWorld(x, y) -- Transform by matrix: (inverse of the WorldToScreen matrix) -- 1/64 1/32 -- -1/64 1/32 -- And then adjust origin from (0, 0) to (1, 1) y = y / 32 + 1 x = x / 64 local tile_x, tile_y = y + x, y - x if self.width ~= nil and self.height ~= nil then if tile_x < 1 then tile_x = 1 end if tile_x > self.width then tile_x = self.width end if tile_y < 1 then tile_y = 1 end if tile_y > self.height then tile_y = self.height end end return tile_x, tile_y end local function bits(n) local vals = {} local m = 256 while m >= 1 do if n >= m then vals[#vals + 1] = m n = n - m end m = m / 2 end if vals[1] then return unpack(vals) else return 0 end end --[[! Loads the specified level. If a string is passed it looks for the file with the same name in the "Levels" and/or "Campaigns" folder of CorsixTH, if it is a number it tries to load that level from the original game. !param level (string or int) The name (or number) of the level to load. If this is a number the game assumes the original game levels are considered. !param level_name (string) The name of the actual map/area/hospital as written in the config file. !param map_file (string) The path to the map file as supplied by the config file. !param level_intro (string) If loading a custom level this message will be shown as soon as the level has been loaded. !return objects (table) The loaded map objects if successfully loaded !return errors (string) A localised error message if objects were not successfully loaded ]] function Map:load(level, difficulty, level_name, map_file, level_intro, map_editor) local objects if not difficulty then difficulty = "full" end -- Load CorsixTH base configuration for all levels. local base_config = loadfile(self.app:getFullPath({"Lua", "base_config.lua"})) if not base_config then return nil, _S.errors.missing_corsixth_file:format("base_config.lua") end base_config = base_config() assert(base_config, "No base config has been loaded!") if type(level) == "number" then -- Playing the original campaign. local errors, data, _, result self.level_number = level data, errors = self:getRawData(map_file) if data then _, objects = self.th:load(data) else return nil, errors end self.level_name = _S.level_names[level]:upper() -- Check if we're using the demo files. If we are, that special config should be loaded. if self.app.using_demo_files then -- Try to load our own configuration file for the demo. local demo_path = self.app:getFullPath({"Levels", "demo.level"}) errors, result = self:loadMapConfig(demo_path, base_config, true) if errors then return nil, _S.errors.missing_corsixth_file:format("demo.level") end self.difficulty = "full" self.level_config = result else errors, result = self:_loadOriginalCampaignLevel(difficulty, level, base_config) if errors then return nil, errors end self.level_config = result end elseif map_editor then local _ -- We're being fed data by the map editor. self.level_name = "MAP EDITOR" self.level_number = "MAP EDITOR" if level == "" then _, objects = self.th:loadBlank() else local data, errors = self:getRawData(level) if data then _, objects = self.th:load(data) else return nil, errors end end self.level_config = base_config else local _, result -- We're loading a custom level. self.level_name = level_name self.level_intro = level_intro self.level_number = level self.level_filename = level:match(".+" .. package.config:sub(1, 1) .. "(.+)$") self.map_file = map_file local data, errors = self:getRawData(map_file) if data then _, objects = self.th:load(data) else return nil, errors end errors, result = self:loadMapConfig(level, base_config, true) if errors then return nil, errors end self.level_config = result end self.width, self.height = self.th:size() self.parcelTileCounts = {} for plot = 1, self.th:getPlotCount() do self.parcelTileCounts[plot] = self.th:getParcelTileCount(plot) if not map_editor then self:setPlotOwner(plot, plot <= self.th:getPlayerCount() and plot or 0) end end self:_fixTiles() return objects end -- A set of the TH campaign levels with additional CorsixTH config files, found in CorsixTH/Levels. local additional_config = list_to_set({"05", "07", "08", 11, 12}) --! Load further level configurations for the main campaign. --!param difficulty (string) --!param level_number (integer) --!param config (table) The level config created so far --!return error (string) Localised error message if error happens --!return config (table) Level config, if loaded successfully function Map:_loadOriginalCampaignLevel(difficulty, level_number, config) local errors if level_number < 10 then level_number = "0" .. level_number end -- Add TH's base config if possible, otherwise our own config, -- which roughly corresponds to "full". local filename_diff = difficulty .. "00.SAM" errors, config = self:loadMapConfig(filename_diff, config) if errors then return _S.errors.missing_th_data_file:format(filename_diff) end self.difficulty = difficulty -- Load the Theme Hospital configuration for this difficulty and level local filename_th_data = difficulty .. level_number .. ".SAM" errors, config = self:loadMapConfig(filename_th_data, config) if errors then return _S.errors.missing_th_data_file:format(filename_th_data) end if additional_config[level_number] then -- Load additional CorsixTH config per level. local filename_cth = "original" .. level_number .. ".level" local level_path = self.app:getFullPath({"Levels", filename_cth}) errors, config = self:loadMapConfig(level_path, config, true) if errors then return _S.errors.missing_corsixth_file:format(filename_cth) end end return nil, config end --! Get the difficulty of the level. Custom levels and campaign always have medium difficulty. --!return (int) difficulty of the level, 1=easy, 2=medium, 3=hard. function Map:getDifficulty() if self.difficulty == "easy" then return 1 end if self.difficulty == "hard" then return 3 end return 2 end --[[! Sets the plot owner of the given plot number to the given new owner. Makes sure that any room adjacent to the new plot have walls in all directions after the purchase. !param plot_number (int) Number of the plot to change owner of. Plot 0 is the outside and should never change owner. !param new_owner (int) The player number that should own plot_number. 0 means no owner. ]] function Map:setPlotOwner(plot_number, new_owner) local split_tiles = self.th:setPlotOwner(plot_number, new_owner) for _, coordinates in ipairs(split_tiles) do local x = coordinates[1] local y = coordinates[2] local _, north_wall, west_wall = self.th:getCell(x, y) local cell_flags = self.th:getCellFlags(x, y) local north_cell_flags = self.th:getCellFlags(x, y - 1) local west_cell_flags = self.th:getCellFlags(x - 1, y) local wall_dirs = { south = { layer = north_wall, block_id = 2, room_cell_flags = cell_flags, adj_cell_flags = north_cell_flags, tile_cat = 'inside_tiles', wall_dir = 'north' }, north = { layer = north_wall, block_id = 2, room_cell_flags = north_cell_flags, adj_cell_flags = cell_flags, tile_cat = 'outside_tiles', wall_dir = 'north' }, east = { layer = west_wall, block_id = 3, room_cell_flags = cell_flags, adj_cell_flags = west_cell_flags, tile_cat = 'inside_tiles', wall_dir = 'west' }, west = { layer = west_wall, block_id = 3, room_cell_flags = west_cell_flags, adj_cell_flags = cell_flags, tile_cat = 'outside_tiles', wall_dir = 'west' }, } for _, dir in pairs(wall_dirs) do if dir.layer == 0 and dir.room_cell_flags.roomId ~= 0 and dir.room_cell_flags.parcelId ~= dir.adj_cell_flags.parcelId then local room = self.app.world.rooms[dir.room_cell_flags.roomId] local wall_type = self.app.walls[room.room_info.wall_type][dir.tile_cat][dir.wall_dir] self.th:setCell(x, y, dir.block_id, wall_type) end end end -- Refresh the map's paths and flags self.th:updatePathfinding() self:_fixTiles() end --[[! Saves the map to a .map file !param filename (string) Name of the file to save the map in ]] function Map:save(filename) self.th:save(filename) end -- A set of the level difficulties. Full is default local correct_difficulties = list_to_set({"easy", "full", "hard"}) --[[! Loads map configurations from files. !param filename (string) The absolute path to the config file to load !param config (string) If a base config already exists and only some values should be overridden this is the base config !param custom If true The configuration file is searched for where filename points, otherwise it is assumed that we're looking in the theme_hospital_install path. !return error The specific localised error message, if error occurred !return config The successfully loaded config ]] function Map:loadMapConfig(filename, config, custom) local function iterator() if custom then return io.lines(filename) else return self.app.fs:readContents("Levels", filename):gmatch"[^\r\n]+" end end if filename and (self.app.fs:readContents("Levels", filename) or io.open(filename)) then for line in iterator() do if line:sub(1, 1) == "#" then local parts = {} local nkeys = 0 for part in line:gmatch("%.?[-?a-zA-Z0-9%[_%]]+") do if part:sub(1, 1) == "." and #parts == nkeys + 1 then nkeys = nkeys + 1 end parts[#parts + 1] = part end if nkeys == 0 then parts[3] = parts[2] parts[2] = ".Value" nkeys = 1 end for i = 2, nkeys + 1 do local key = parts[1] .. parts[i] local t, n for match in key:gmatch("[^.%[%]]+") do local name = tonumber(match) or match if t then if not t[n] then t[n] = {} end t = t[n] else t = config end n = name end t[n] = tonumber(parts[nkeys + i]) or parts[nkeys + i] end end end -- If the level file overlay field gives a difficulty and number (from the TH campaign), -- try to load that on top of the config loaded so far. if config.overlay then local difficulty, level_number = config.overlay.difficulty, config.overlay.level_number local errors config.overlay = nil -- Prevent recursive loop if difficulty and level_number then -- Validate the difficulty and level number if not correct_difficulties[difficulty] then return _S.errors.overlay.incorrect_difficulty .. difficulty end if type(level_number) ~= "number" or level_number < 1 or level_number > 12 then return _S.errors.overlay.incorrect_level_number .. level_number end -- Load difficulty and level from Theme Hospital and CorsixTH configs errors, config = self:_loadOriginalCampaignLevel(difficulty, level_number, config) if errors then return errors end else return _S.errors.overlay.missing_setting end end return nil, config else return _S.errors.missing_level_file end end local temp_debug_text local temp_debug_flags local temp_updateDebugOverlay local temp_thData -- Keep debug information in temporary local vars, do not save them function Map:prepareForSave() temp_debug_text = self.debug_text self.debug_text = false temp_debug_flags = self.debug_flags self.debug_flags = false temp_updateDebugOverlay = self.updateDebugOverlay self.updateDebugOverlay = nil temp_thData = self.thData self.thData = nil end -- Restore the temporarily stored debug information after saving function Map:afterSave() self.debug_text = temp_debug_text temp_debug_text = nil self.debug_flags = temp_debug_flags temp_debug_flags = nil self.updateDebugOverlay = temp_updateDebugOverlay temp_updateDebugOverlay = nil self.thData = temp_thData temp_thData = nil end function Map:clearDebugText() self.debug_text = false self.debug_flags = false self.updateDebugOverlay = nil end function Map:getRawData(map_file) if not self.thData then local data, errors if not map_file then data, errors = self.app:readDataFile("Levels", "Level.L".. self.level_number) else data, errors = self.app:readDataFile("Levels", map_file) end if data then self.thData = data else return nil, errors end end return self.thData end function Map:updateDebugOverlayFlags() for x = 1, self.width do for y = 1, self.height do local xy = (y - 1) * self.width + x - 1 self.th:getCellFlags(x, y, self.debug_flags[xy]) end end end function Map:updateDebugOverlayHeat() for x = 1, self.width do for y = 1, self.height do local xy = (y - 1) * self.width + x - 1 self.debug_text[xy] = ("%02.1f"):format(self.th:getCellTemperature(x, y) * 50) end end end function Map:updateDebugOverlayParcels() for x = 1, self.width do for y = 1, self.height do local xy = (y - 1) * self.width + x - 1 self.debug_text[xy] = self.th:getCellFlags(x, y).parcelId if self.debug_text[xy] == 0 then self.debug_text[xy] = '' end end end end function Map:updateDebugOverlayCamera() for x = 1, self.width do for y = 1, self.height do local xy = (y - 1) * self.width + x - 1 self.debug_text[xy] = '' end end for p = 1, self.th:getPlayerCount() do local x, y = self.th:getCameraTile(p) if x and y then local xy = (y - 1) * self.width + x - 1 self.debug_text[xy] = 'C'..p end end end function Map:updateDebugOverlayHeliport() for x = 1, self.width do for y = 1, self.height do local xy = (y - 1) * self.width + x - 1 self.debug_text[xy] = '' end end for p = 1, self.th:getPlayerCount() do local x, y = self.th:getHeliportTile(p) if x and y then local xy = (y - 1) * self.width + x - 1 self.debug_text[xy] = 'H'..p end end end -- If both 'first' and 'last' are numbers, they are indices starting at 0. function Map:loadDebugText(first, last, bits_) self.debug_text = false self.debug_flags = false self.updateDebugOverlay = nil if first == "flags" then self.debug_flags = {} for x = 1, self.width do for y = 1, self.height do local xy = (y - 1) * self.width + x - 1 self.debug_flags[xy] = {} end end self.updateDebugOverlay = self.updateDebugOverlayFlags self:updateDebugOverlay() elseif first == "positions" then self.debug_text = {} for x = 1, self.width do for y = 1, self.height do local xy = (y - 1) * self.width + x - 1 self.debug_text[xy] = x .. "," .. y end end elseif first == "heat" then self.debug_text = {} self.updateDebugOverlay = self.updateDebugOverlayHeat self:updateDebugOverlay() elseif first == "parcel" then self.debug_text = {} self.updateDebugOverlay = self.updateDebugOverlayParcels self:updateDebugOverlay() elseif first == "camera" then self.debug_text = {} self.updateDebugOverlay = self.updateDebugOverlayCamera self:updateDebugOverlay() elseif first == "heliport" then self.debug_text = {} self.updateDebugOverlay = self.updateDebugOverlayHeliport self:updateDebugOverlay() else for x = 1, self.width do for y = 1, self.height do local raw = self.th:getCellRaw(x, y) if bits_ then self:setDebugText(x, y, bits(raw:byte(first + 1, last + 1))) else self:setDebugText(x, y, raw:byte(first + 1, last + 1)) end end end end end function Map:onTick() if self.debug_tick_timer == 1 then if self.updateDebugOverlay then self:updateDebugOverlay() end self.debug_tick_timer = 10 else self.debug_tick_timer = self.debug_tick_timer - 1 end end --! Set the sprites to be used by the map. --!param blocks (object) Sprite sheet for the map. function Map:setBlocks(blocks) self.blocks = blocks self.th:setSheet(blocks) end function Map:setCellFlags(...) self.th:setCellFlags(...) end function Map:setDebugFont(font) self.debug_font = font self.cell_outline = TheApp.gfx:loadSpriteTable("Bitmap", "aux_ui", true) end function Map:setDebugText(x, y, msg, ...) if not self.debug_text then self.debug_text = {} end local text if ... then text = {msg, ...} for i, v in ipairs(text) do text[i] = tostring(v) end text = table_concat(text, ",") else text = msg ~= 0 and msg or nil end self.debug_text[(y - 1) * self.width + x - 1] = text end function Map:_drawDebugTiles(canvas, x, y, xpos, ypos) local xy = y * self.width + x if self.debug_flags then local flags = self.debug_flags[xy] if flags.passable then self.cell_outline:draw(canvas, 3, xpos, ypos) end if flags.hospital then self.cell_outline:draw(canvas, 8, xpos, ypos) end if flags.buildable then self.cell_outline:draw(canvas, 9, xpos, ypos) end if flags.travelNorth and self.debug_flags[xy - self.width].passable then self.cell_outline:draw(canvas, 4, xpos, ypos) end if flags.travelEast and self.debug_flags[xy + 1].passable then self.cell_outline:draw(canvas, 5, xpos, ypos) end if flags.travelSouth and self.debug_flags[xy + self.width].passable then self.cell_outline:draw(canvas, 6, xpos, ypos) end if flags.travelWest and self.debug_flags[xy - 1].passable then self.cell_outline:draw(canvas, 7, xpos, ypos) end if flags.thob ~= 0 then self.debug_font:draw(canvas, "T"..flags.thob, xpos, ypos, 64, 16) end if flags.roomId ~= 0 then self.debug_font:draw(canvas, "R"..flags.roomId, xpos, ypos + 16, 64, 16) end else local msg = self.debug_text[xy] if msg and msg ~= "" then self.cell_outline:draw(canvas, 2, xpos, ypos) self.debug_font:draw(canvas, msg, xpos, ypos, 64, 32) end end end --! Draws the rectangle of the map given by (sx, sy, sw, sh) at position (dx, dy) on the canvas --!param canvas --!param sx Horizontal start position at the screen. --!param sy Vertical start position at the screen. --!param sw (int) Width of the screen. --!param sh (int) Height of the screen. --!param dx (jnt) Horizontal destination at the canvas. --!param dy (int) Vertical destination at the canvas. --]] function Map:draw(canvas, sx, sy, sw, sh, dx, dy) -- All the heavy work is done by C code: self.th:draw(canvas, sx, sy, sw, sh, dx, dy) if not self.debug_font or not (self.debug_text or self.debug_flags) then return end -- Draw any debug overlays local startX = 0 local startY = math_floor((sy - 32) / 16) if startY < 0 then startY = 0 elseif startY >= self.height then startX = startY - self.height + 1 startY = self.height - 1 if startX >= self.width then startX = self.width - 1 end end local baseX = startX local baseY = startY while true do -- TODO: replace this with a scanline local x = baseX local y = baseY local screenX = 32 * (x - y) - sx local screenY = 16 * (x + y) - sy local ypos = dy + screenY if screenY >= sh + 70 then break elseif screenY > -32 then repeat if screenX >= -32 then if screenX < sw + 32 then self:_drawDebugTiles(canvas, x, y, dx + screenX - 32, ypos) else break end end x = x + 1 y = y - 1 screenX = screenX + 64 until y < 0 or x >= self.width end if baseY == self.height - 1 then baseX = baseX + 1 if baseX == self.width then break end else baseY = baseY + 1 end end end --! Get the price of a parcel --!param parcel (int) Parcel number being queried. --!return Price of the queried parcel. function Map:getParcelPrice(parcel) local conf = self.level_config conf = conf and conf.gbv conf = conf and conf.LandCostPerTile return self:getParcelTileCount(parcel) * (conf or 25) end --! Get the number of tiles in a parcel. --!param parcel (int) Parcel number being queried. --!return Number of tiles in the queried parcel. function Map:getParcelTileCount(parcel) return self.parcelTileCounts[parcel] or 0 end --! Expandable private function to fix tile issues on loading a map. --! Each fix should be rendered in a local function. function Map:_fixTiles() local function isOriginalCampaign() return type(self.level_number) == "number" and not self.map_file end -- Fix the original campaign's outdoor tiles from being marked with bad flags local function fixOutdoorTiles() local function unsetFlags(cell, x, y, allowed_set, flags_to_set) if not allowed_set[cell] then self:setCellFlags(x, y, flags_to_set) end end -- Only buildings should be part of the hospital. local hosp_tiles = list_to_set( { 17, 70, 18, 19, 23, 16, 21, 22, 66, 76, 20 -- indoor tiles } ) local non_hosp_flags = { hospital = false } -- Only indoor and certain outdoor tiles should be transverable. local pathable_tiles = list_to_set( { 17, 70, 18, 19, 23, 16, 21, 22, 66, 76, 20, -- indoor tiles 4, 15, 5, -- concrete paths and helipad 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 -- road tiles } ) -- Also make ineligible outdoor tiles non-buildable, which sometimes got set in -- the original campaign. local non_path_flags = { passable = false, buildable = false, buildableNorth = false, buildableEast = false, buildableSouth = false, buildableWest = false } for x=1, self.width do for y=1, self.height do local cell = self.th:getCell(x, y, 1) unsetFlags(cell, x, y, hosp_tiles, non_hosp_flags) unsetFlags(cell, x, y, pathable_tiles, non_path_flags) end end end -- Fix the original level 6 map local function fixLevel6Flags() if self.level_number ~= 6 then return end self:setCellFlags(56, 71, { hospital = true, buildable = true, buildableNorth = true, buildableSouth = true, buildableEast = true, buildableWest = true }) self:setCellFlags(58, 72, {passable = false}) end if isOriginalCampaign() then fixOutdoorTiles() fixLevel6Flags() end end function Map:afterLoad(old, new) if old < 6 then self.parcelTileCounts = {} for plot = 1,self.th:getPlotCount() do self.parcelTileCounts[plot] = self.th:getParcelTileCount(plot) end end if old < 18 then self.difficulty = "full" end if old < 44 then self.level_config.expertise[2].MaxDiagDiff = 700 self.level_config.expertise[3].MaxDiagDiff = 250 self.level_config.expertise[4].MaxDiagDiff = 250 self.level_config.expertise[5].MaxDiagDiff = 250 self.level_config.expertise[6].MaxDiagDiff = 250 self.level_config.expertise[7].MaxDiagDiff = 250 self.level_config.expertise[8].MaxDiagDiff = 350 self.level_config.expertise[9].MaxDiagDiff = 250 self.level_config.expertise[10].MaxDiagDiff = 250 self.level_config.expertise[11].MaxDiagDiff = 700 self.level_config.expertise[12].MaxDiagDiff = 1000 self.level_config.expertise[13].MaxDiagDiff = 700 self.level_config.expertise[14].MaxDiagDiff = 400 self.level_config.expertise[15].MaxDiagDiff = 350 self.level_config.expertise[16].MaxDiagDiff = 350 self.level_config.expertise[17].MaxDiagDiff = 1000 self.level_config.expertise[18].MaxDiagDiff = 350 self.level_config.expertise[19].MaxDiagDiff = 700 self.level_config.expertise[20].MaxDiagDiff = 700 self.level_config.expertise[21].MaxDiagDiff = 700 self.level_config.expertise[22].MaxDiagDiff = 350 self.level_config.expertise[23].MaxDiagDiff = 350 self.level_config.expertise[24].MaxDiagDiff = 700 self.level_config.expertise[25].MaxDiagDiff = 700 self.level_config.expertise[26].MaxDiagDiff = 700 self.level_config.expertise[27].MaxDiagDiff = 350 self.level_config.expertise[28].MaxDiagDiff = 700 self.level_config.expertise[29].MaxDiagDiff = 1000 self.level_config.expertise[30].MaxDiagDiff = 700 self.level_config.expertise[31].MaxDiagDiff = 1000 self.level_config.expertise[32].MaxDiagDiff = 700 self.level_config.expertise[33].MaxDiagDiff = 1000 self.level_config.expertise[34].MaxDiagDiff = 700 self.level_config.expertise[35].MaxDiagDiff = 700 end if old < 57 then local flags_to_set = {buildableNorth = true, buildableSouth = true, buildableWest = true, buildableEast = true} for x = 1, self.width do for y = 1, self.height do self:setCellFlags(x, y, flags_to_set) end end end if old < 120 then -- Issue #1105 update pathfinding (rebuild walls) potentially broken by side object placement self.th:updatePathfinding() end if old < 161 then -- Permanently fix the 0.65 trophy bug (#2004) -- make sure we erase the hofix variable too self.hotfix1 = nil self.level_config.awards_trophies.TrophyAllCuredBonus = 20000 self.level_config.awards_trophies.AllCuresBonus = 5000 end if old < 164 then -- New feature, by default non-visual illnesses were always available -- at the start self.level_config.non_visuals_available = { [0] = {Value = 0}, -- I_UNCOMMON_COLD {Value = 0}, -- I_BROKEN_WIND {Value = 0}, -- I_SPARE_RIBS {Value = 0}, -- I_KIDNEY_BEANS {Value = 0}, -- I_BROKEN_HEART {Value = 0}, -- I_RUPTURED_NODULES {Value = 0}, -- I_MULTIPLE_TV_PERSONALITIES {Value = 0}, -- I_INFECTIOUS_LAUGHTER {Value = 0}, -- I_CORRUGATED_ANKLES {Value = 0}, -- I_CHRONIC_NOSEHAIR {Value = 0}, -- I_3RD_DEGREE_SIDEBURNS {Value = 0}, -- I_FAKE_BLOOD {Value = 0}, -- I_GASTRIC_EJECTIONS {Value = 0}, -- I_THE_SQUITS {Value = 0}, -- I_IRON_LUNGS {Value = 0}, -- I_SWEATY_PALMS {Value = 0}, -- I_HEAPED_PILES {Value = 0}, -- I_GUT_ROT {Value = 0}, -- I_GOLF_STONES {Value = 0}, -- I_UNEXPECTED_SWELLING } end if old < 175 then -- Set max salary value for existing saves self.level_config.payroll = { MaxSalary = 2000, } end if old < 187 then local gbv = self.level_config.gbv gbv.Tired = gbv.Tired or 600 gbv.VeryTired = gbv.VeryTired or 700 gbv.CrackUpTired = gbv.CrackUpTired or 800 end if old < 209 then self.level_config.gbv.SodaPrice = 20 end if old < 217 then self:_fixTiles() end end CorsixTH-0.70.0/CorsixTH/Lua/movie_player.lua000066400000000000000000000310741522247547500207450ustar00rootroot00000000000000--[[ Copyright (c) 2012 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Layer which handles the Lua-facing side of loading and playing video. local TH = require("TH") local pathsep = package.config:sub(1, 1) class "MoviePlayer" ---@type MoviePlayer local MoviePlayer = _G["MoviePlayer"] --! Calculate the position and size for a movie --! --! Returns x and y position, width and height, and the scale factor of the --! movie to be displayed based on the native size of the movie and the current --! screen dimensions. --! --! Theme Hospital movies were 320x240 but played in game at 640x480 so when --! scaling other assets to match the movies they should be scaled by half --! the returned scaling factor. Some movies were 320x200 and those should --! be aspect corrected to 4:3 during scaling. --! --!param me The MoviePlayer object local calculateSize = function(me) -- calculate target dimensions local x, y, w, h, scale local screen_w, screen_h = me.app.config.width, me.app.config.height local native_w = me.moviePlayer:getNativeWidth() local native_h = me.moviePlayer:getNativeHeight() if native_w == 320 and native_h == 200 then -- This resolution was intended to be stretched for a 4:3 screen native_h = 240 end if native_w ~= 0 and native_h ~= 0 then local ar = native_w / native_h if math.abs((screen_w / screen_h) - ar) < 0.001 then x, y = 0, 0 w, h = screen_w, screen_h scale = screen_h / native_h else if screen_w > screen_h / native_h * native_w then w = math.floor(screen_h / native_h * native_w) h = screen_h x = math.floor((screen_w - w) / 2) y = 0 scale = screen_h / native_h else w = screen_w h = math.floor(screen_w / native_w * native_h) x = 0 y = math.floor((screen_h - h) / 2) scale = screen_w / native_w end end else x, y = 0, 0 w, h = screen_w, screen_h scale = 1 end return x, y, w, h, scale end local destroyMovie = function(me) me.moviePlayer:unload() if me.opengl_mode_index then me.app.modes[me.opengl_mode_index] = "opengl" end if me.channel >= 0 then me.audio:releaseChannel(me.channel) me.channel = -1 end if me.holding_bg_music then -- If possible we want to continue playing music where we were me.audio:pauseBackgroundTrack() me.holding_bg_music = false end if me.sound then me.audio:stopSound(me.sound) me.sound = nil end me.refresh_overlay = nil me.playing = false me.movie_over = false if me.callback_on_destroy_movie then me.callback_on_destroy_movie() me.callback_on_destroy_movie = nil end end local loseMovieOverlay = function(me, lose_movie_index) -- These are the times in milliseconds when the headline should appear as -- determined experimentally local start_movie_pts = { me.movie_length - 1760, me.movie_length - 860, me.movie_length - 1600, me.movie_length - 1000, me.movie_length - 860, me.movie_length - 780, } local start_pts = start_movie_pts[lose_movie_index] local headlines = _S.newspaper[lose_movie_index] local headline = headlines[math.random(#headlines)] -- The LOSE movies are 320x240 but are drawn in the original game at 640x480 -- before drawing the font over them. The headline area at double size is 40px -- tall and 590px wide if we exclude the padding which has no other ink. If we -- let the headline fill the entire width of the paper it could be 618px wide. -- -- The widest original english headline is headline 4 for LOSE5 which is 708px -- wide in standard font and 520px wide in narrow font. local hl_font = me.lose_font local hl_top = 132 local hl_w, hl_h = me.lose_font:sizeOf(headline) if me.lose_font:isBitmap() then if hl_w > 590 then hl_font = me.lose_font_narrow -- The narrow font and standard font have a different baseline so we need -- to adjust the top. hl_top = 138 end else -- For TTF fonts we try to vertically center them in the headline area hl_top = 132 + math.floor((52 - hl_h) / 2) end return function(player, x, y, w, h, scale, pts) if pts >= start_pts then local vs = scale * 0.5 player.video:scale(vs) hl_font:draw(player.video, headline, math.floor(x / vs), math.floor(y / vs) + hl_top, 640, 0, "center") player.video:scale(1) end end end function MoviePlayer:MoviePlayer(app, audio, video) self.app = app self.audio = audio self.video = video self.playing = false self.holding_bg_music = false self.channel = -1 self.sound = nil self.lose_movies = {} self.advance_movies = {} self.intro_movie = nil self.demo_movie = nil self.win_game_movie = nil self.win_level_movie = nil self.wait_for_stop = false self.wait_for_over = false self.movie_over = false self.movie_length = 0 self.lose_font = nil self.lose_font_narrow = nil end --! Initialises the different movies used in the game function MoviePlayer:init() self.moviePlayer = TH.moviePlayer() self.moviePlayer:setRenderer(self.video) local lose_palette = self.app.gfx:getPalette("lose.pl8") self.lose_font = self.app.gfx:loadFontAndSpriteTable("QData", "Font39v", false, lose_palette) self.lose_font_narrow = self.app.gfx:loadFontAndSpriteTable("QData", "Font40v", false, lose_palette) --find movies in Anims folder local fs = self.app.fs local movies = fs:listFiles("Anims") if movies then for _, movie in pairs(movies) do local num --lose level movies num = movie:upper():match(pathsep .. "LOSE(%d+)%.[^" .. pathsep .. "]+$") if num then self.lose_movies[tonumber(num, 10)] = fs:fileUri(movie) end --advance level movies num = movie:upper():match(pathsep .. "AREA(%d+)V%.[^" .. pathsep .. "]+$") if num then self.advance_movies[tonumber(num, 10)] = fs:fileUri(movie) end --win game movie if movie:upper():match(pathsep .. "WINGAME%.[^" .. pathsep .. "]+$") then self.win_game_movie = fs:fileUri(movie) end --win level movie if movie:upper():match(pathsep .. "WINLEVEL%.[^" .. pathsep .. "]+$") then self.win_level_movie = fs:fileUri(movie) end end end --find intro and demo movies movies = self.app.fs:listFiles("Intro") if movies then for _, movie in pairs(movies) do if movie:upper():match(pathsep .. "INTRO%.SM4$") then self.intro_movie = fs:fileUri(movie) elseif movie:upper():match(pathsep .. "ATTRACT.SMK$") then self.demo_movie = fs:fileUri(movie) end end end end --! Plays the opening movie from TH --!param callback_after_movie (function) What to do once movie ends function MoviePlayer:playIntro(callback_after_movie) self:playMovie(self.intro_movie, false, callback_after_movie) end --! Plays the demo gameplay footage movie from TH function MoviePlayer:playDemoMovie() self:playMovie(self.demo_movie, false) end --! Plays the movie for winning the game function MoviePlayer:playWinMovie() self:playMovie(self.win_game_movie, false) end --! Play the movie for winning the level function MoviePlayer:playWinLevelMovie() self:playMovie(self.win_level_movie, true) end --! Plays the level advance movie, which is going to the next level on the game board --! This is for the original campaign only. --!param level (number) What level we're going to. function MoviePlayer:playAdvanceMovie(level) local filename = self.advance_movies[level] if self.moviePlayer == nil or not self.moviePlayer:getEnabled() or not self.app.config.movies or filename == nil then return end if self.audio.background_music then self.holding_bg_music = self.audio:pauseBackgroundTrack() end if level == 12 then self.sound = self.audio:playSound("DICE122M.WAV") else self.sound = self.audio:playSound("DICEYFIN.WAV") end self:playMovie(filename, true) end --! Plays one of the lose scenario movies at random function MoviePlayer:playLoseMovie() if #self.lose_movies > 0 then local lose_movie_index = math.random(#self.lose_movies) local filename = self.lose_movies[lose_movie_index] self:playMovie(filename, true) self.refresh_overlay = loseMovieOverlay(self, lose_movie_index) end end --! Function used to tell the Movie Player to play something. --!param filename (string) Location of the movie file --!param wait_for_stop (boolean) If true, movie will not dismiss automatically --! (requires a mouse/key press) --!param callback (function) What to do after the movie ends function MoviePlayer:playMovie(filename, wait_for_stop, callback) local success, warning if self.moviePlayer == nil or not self.moviePlayer:getEnabled() or not self.app.config.movies or filename == nil then if callback then callback() end return end success, warning = self.moviePlayer:load(filename) if warning ~= nil and warning ~= "" then local message = "MoviePlayer:playMovie - Warning: " .. warning if self.app.world then self.app.world:gameLog(message) elseif self.app.config.debug then print(message) end end if not success then -- Indicates failure to load movie if callback then callback() end return end -- Abort any loading of music self.audio.load_music = false if self.moviePlayer:hasAudioTrack() then self.channel = self.audio:reserveChannel() if self.audio.background_music then self.holding_bg_music = self.audio:pauseBackgroundTrack() end end self.movie_length = self.moviePlayer:getLength() self.video:startFrame() self.video:fillBlack() self.video:endFrame() self.wait_for_stop = wait_for_stop self.wait_for_over = true self.callback_on_destroy_movie = callback self.opengl_mode_index = nil for i=1, #self.app.modes do if self.app.modes[i] == "opengl" then self.opengl_mode_index = i end end if self.opengl_mode_index then self.app.modes[self.opengl_mode_index] = "" end warning = self.moviePlayer:play(self.channel) if warning ~= nil and warning ~= "" then local message = "MoviePlayer:playMovie - Warning: " .. warning if self.app.world then self.app.world:gameLog(message) elseif self.app.config.debug then print(message) end end self.playing = true end --NB: Call after any changes to TH.surface function MoviePlayer:allocatePictureBuffer() if self.moviePlayer == nil then return end self.moviePlayer:allocatePictureBuffer() end --NB: Call before any changes to TH.surface function MoviePlayer:deallocatePictureBuffer() if self.moviePlayer == nil then return end self.moviePlayer:deallocatePictureBuffer() end --! Handles when the movie ends function MoviePlayer:onMovieOver() if self.moviePlayer == nil then return end self.movie_over = true self.wait_for_over = false if not self.wait_for_stop then destroyMovie(self) end end --! Handles ending the movie prematurely (user input) function MoviePlayer:stop() if self.moviePlayer == nil then return end self.moviePlayer:stop() self.wait_for_stop = false if not self.wait_for_over then destroyMovie(self) end end function MoviePlayer:refresh() if self.moviePlayer == nil then return end local x, y, w, h, scale = calculateSize(self) local pts = self.moviePlayer:refresh(x, y, w, h) if self.refresh_overlay then self.refresh_overlay(self, x, y, w, h, scale, pts) end end function MoviePlayer:updateRenderer() if self.moviePlayer == nil then return end self.moviePlayer:setRenderer(self.video) end function MoviePlayer:togglePause() if self.moviePlayer == nil then return end self.moviePlayer:togglePause() if self.sound then self.audio:togglePauseSound(self.sound) end end CorsixTH-0.70.0/CorsixTH/Lua/objects/000077500000000000000000000000001522247547500171735ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/objects/analyser.lua000066400000000000000000000042601522247547500215160ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "analyser" object.thob = 41 object.research_category = "cure" object.research_fallback = 45 object.name = _S.object.atom_analyser object.tooltip = _S.tooltip.objects.atom_analyser object.ticks = true object.class = "AtomAnalyser" object.build_preview_animation = 5092 object.show_in_town_map = true object.idle_animations = { north = 2134, south = 2134, } local function copy_north_to_south(t) t.south = t.north return t end object.usage_animations = copy_north_to_south { north = { in_use = { Doctor = {4878, object_visible = true} }, }, } object.orientations = { north = { footprint = { {-1, -1}, {0, -1}, {1, -1}, {-1, 0}, {0, 0, only_passable = true}, {1, 0} }, use_position = {0, 0}, }, east = { footprint = { {-1, -1}, {0, -1}, {-1, 0}, {0, 0, only_passable = true}, {-1, 1}, {0, 1} }, use_position = {0, 0}, }, } class "AtomAnalyser" (Object) ---@type AtomAnalyser local AtomAnalyser = _G["AtomAnalyser"] function AtomAnalyser:AtomAnalyser(...) self:Object(...) end function AtomAnalyser:getDrawingLayer() return DrawingLayers.AtomAnalyser end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/autopsy.lua000066400000000000000000000105461522247547500214100ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "autopsy" object.thob = 55 object.research_category = "cure" object.name = _S.object.auto_autopsy object.tooltip = _S.tooltip.objects.auto_autopsy object.ticks = true object.build_preview_animation = 5102 object.crashed_animation = 3304 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2146, } object.usage_animations = copy_north_to_south { north = { in_use = { Handyman = 3566, }, }, } object.multi_usage_animations = {} local function anim_set(patient_type, invite_in, configure, taken_in, closing) local anims = { -- Machine door opens and bed comes out begin_use = 2154, secondary = { begin_use = Humanoid.getIdleAnimation(patient_type), }, -- Patient gets onto the bed begin_use_2 = invite_in, -- Doctor presses some buttons with patient on bed begin_use_3 = configure, -- Bed withdraws back into machine in_use = taken_in, -- Machine door closes finish_use = closing, -- Doctor stands by machine while it flashes finish_use_2 = 4010, } object.multi_usage_animations["Doctor - ".. patient_type] = { north = anims, south = anims, } end anim_set("Standard Male Patient" , 2166, 3334, 4548, 4552) anim_set("Standard Female Patient" , 3196, 3200, 3188, 3192) anim_set("Alien Male Patient" , 2166, 3334, 4548, 4552) anim_set("Alien Female Patient" , 3196, 3200, 3188, 3192) anim_set("Alternate Male Patient" , 4544, 3334, 4548, 4552) -- Incomplete anim_set("Chewbacca Patient" , 4118, 4126, 4130, 4134) anim_set("Elvis Patient" , 4086, 4090, 4094, 4098) anim_set("Slack Male Patient" , 4332, 4336, 4340, 4552) anim_set("Slack Female Patient" , 3196, 3200, 3188, 3192) -- Incomplete anim_set("Transparent Male Patient" , 4460, 4856, 4456, 4626) anim_set("Transparent Female Patient", 4860, 4804, 4796, 4800) anim_set("Invisible Patient" , 4212, 4224, 4216, 4220) object.orientations = { north = { use_position_secondary = {-2, 1}, use_position = {0, 1}, handyman_position = {0, 1}, footprint = { {-2, -1, complete_cell = true}, {-2, 0, complete_cell = true}, {-2, 1, only_passable = true}, {-1, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {-1, 1, only_passable = true}, {0, -1, complete_cell = true}, {0, 0, complete_cell = true}, {0, 1, only_passable = true}, }, early_list = true, }, east = { render_attach_position = {-1, 0}, use_position_secondary = {1, -2}, use_position = {1, 0}, handyman_position = {1, 0}, footprint = { {-1, -2, complete_cell = true}, {-1, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, -2, complete_cell = true}, {0, -1, complete_cell = true}, {0, 0, complete_cell = true}, {1, -2, only_passable = true}, {1, -1, only_passable = true}, {1, -0, only_passable = true}, }, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.idle_animations.north, {0.0 , 0.0}) -- In (some versions of?) the original animations, 4086 has a builtin repeat, -- which looks very wrong, hence trim it to the length of a similar animation. anim_mgr:setAnimLength(4086, anim_mgr:getAnimLength(2166)) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/bed.lua000066400000000000000000000073301522247547500204330ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "bed" object.thob = 8 object.research_category = "diagnosis" object.name = _S.object.bed object.tooltip = _S.tooltip.objects.bed object.ticks = false object.build_preview_animation = 910 object.show_in_town_map = true object.idle_animations = { north = 2644, east = 2646, } object.usage_animations = { north = { begin_use = { -- Patient lies down ["Standard Male Patient"] = 4686, ["Standard Female Patient"] = 4710, }, in_use = { -- Use "animation" ["Standard Male Patient"] = 4694, ["Standard Female Patient"] = 4718, }, finish_use = { -- Patient stands up again ["Standard Male Patient"] = 4702, ["Standard Female Patient"] = 4726, }, }, east = { begin_use = { -- Patient lies down ["Standard Male Patient"] = 4688, ["Standard Female Patient"] = 4712, }, in_use = { -- Use "animation" ["Standard Male Patient"] = 4696, ["Standard Female Patient"] = 4720, }, finish_use = { -- Patient stands up again ["Standard Male Patient"] = 4704, ["Standard Female Patient"] = 4728, }, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2, kf3 = {1, -1}, {0.4, -1}, {-0.3, -1} anim_mgr:setPatientMarker(object.usage_animations.north.begin_use, 0, kf1, 4, kf2, 12, kf2, 18, kf3) anim_mgr:setPatientMarker(object.usage_animations.north.in_use, kf3) anim_mgr:setPatientMarker(object.usage_animations.north.finish_use, 0, kf3, 6, kf3, 12, kf2, 14, kf1) -- TODO: The other direction setPatientMarker object.orientations = { north = { footprint = { {1, -1, only_passable = true}, {-1, -1, complete_cell = true}, {0, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, 0, complete_cell = true} }, use_position = {1, -1}, early_list = true, }, east = { footprint = { {0, 1, only_passable = true}, {-1, -1, complete_cell = true}, {0, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, 0, complete_cell = true} }, use_position = {0, 1}, early_list = true, }, south = { footprint = { {1, 0, only_passable = true}, {-1, -1, complete_cell = true}, {0, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, 0, complete_cell = true} }, use_position = {1, 0}, render_attach_position = {{-2,0},{-1,0},{0,0},{0,-1,}}, }, west = { footprint = { {-1, 1, only_passable = true}, {-1, -1, complete_cell = true}, {0, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, 0, complete_cell = true} }, use_position = {-1, 1}, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/bench.lua000066400000000000000000000160541522247547500207630ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "bench" object.class = "Bench" object.thob = 4 object.name = _S.object.bench object.tooltip = _S.tooltip.objects.bench object.ticks = false object.corridor_object = 2 object.build_preview_animation = 902 object.dynamic_info = true object.idle_animations = { north = 112, east = 114, } object.walk_in_to_use = true object.usage_animations = { north = { begin_use = { ["Standard Male Patient" ] = 96, ["Standard Female Patient" ] = 232, ["Slack Female Patient" ] = 232, ["Transparent Male Patient" ] = 1080, ["Slack Male Patient" ] = 1500, ["Invisible Patient" ] = 1812, ["Alternate Male Patient" ] = 2732, ["Transparent Female Patient"] = 3028, ["Elvis Patient" ] = 3642, ["Chewbacca Patient" ] = 3744, ["Alien Male Patient" ] = 96, -- TEMP ["Alien Female Patient" ] = 232, -- TEMP }, in_use = { ["Standard Male Patient" ] = 146, ["Standard Female Patient" ] = 224, ["Slack Female Patient" ] = 224, ["Transparent Male Patient" ] = 1088, ["Slack Male Patient" ] = 1508, ["Invisible Patient" ] = 1820, ["Alternate Male Patient" ] = 2724, ["Transparent Female Patient"] = 3036, ["Chewbacca Patient" ] = 3760, ["Elvis Patient" ] = 4110, ["Alien Male Patient" ] = 146, -- TEMP ["Alien Female Patient" ] = 224, -- TEMP }, finish_use = { ["Standard Male Patient" ] = 216, ["Standard Female Patient" ] = 240, ["Slack Female Patient" ] = 240, ["Transparent Male Patient" ] = 1096, ["Slack Male Patient" ] = 1516, ["Invisible Patient" ] = 1828, ["Alternate Male Patient" ] = 2740, ["Transparent Female Patient"] = 3044, ["Chewbacca Patient" ] = 3752, ["Elvis Patient" ] = 4102, ["Alien Male Patient" ] = 216, -- TEMP ["Alien Female Patient" ] = 240, -- TEMP }, }, east = { begin_use = { ["Standard Male Patient" ] = 98, ["Standard Female Patient" ] = 234, ["Transparent Male Patient" ] = 1082, ["Slack Female Patient" ] = 234, ["Slack Male Patient" ] = 1502, ["Invisible Patient" ] = 1814, ["Alternate Male Patient" ] = 2734, ["Transparent Female Patient"] = 3030, ["Elvis Patient" ] = 3644, ["Chewbacca Patient" ] = 3746, ["Alien Male Patient" ] = 98, -- TEMP ["Alien Female Patient" ] = 234, -- TEMP }, in_use = { ["Standard Male Patient" ] = 148, ["Standard Female Patient" ] = 226, ["Slack Female Patient" ] = 226, ["Transparent Male Patient" ] = 1090, ["Slack Male Patient" ] = 1510, ["Invisible Patient" ] = 1822, ["Alternate Male Patient" ] = 2726, ["Transparent Female Patient"] = 3038, ["Chewbacca Patient" ] = 3762, ["Elvis Patient" ] = 4112, ["Alien Male Patient" ] = 148, -- TEMP ["Alien Female Patient" ] = 226, -- TEMP }, finish_use = { ["Standard Male Patient" ] = 218, ["Standard Female Patient" ] = 242, ["Slack Female Patient" ] = 242, ["Transparent Male Patient" ] = 1098, ["Slack Male Patient" ] = 1518, ["Invisible Patient" ] = 1830, ["Alternate Male Patient" ] = 2742, ["Transparent Female Patient"] = 3046, ["Chewbacca Patient" ] = 3754, ["Elvis Patient" ] = 4104, ["Alien Male Patient" ] = 218, -- TEMP ["Alien Female Patient" ] = 242, -- TEMP }, }, } object.orientations = { north = { render_attach_position = { {0, 0}, {-1, 0}, {0, -1} }, footprint = { {0, 0, complete_cell = true}, {0, -1, only_passable = true, invisible = true, shareable = true} }, use_position = "passable", }, east = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true, invisible = true, shareable = true} }, use_position = "passable", }, south = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true, invisible = true, shareable = true} }, use_position = "passable", }, west = { footprint = { {0, 0, complete_cell = true}, {-1, 0, only_passable = true, invisible = true, shareable = true} }, use_position = "passable", }, } class "Bench" (Object) ---@type Bench local Bench = _G["Bench"] function Bench:Bench(...) self:Object(...) end --Called when the patient sits up from a bench for whatever reason --Maybe related to Humanoid:removedObject(object) function Bench:removeUser(user) if user then local has_idle = false for _, action in pairs(user.action_queue) do if action.name == "idle" then has_idle = true end end -- patient must idle && action:isStanding() == true at this point if has_idle == true then user:notifyNewObject("bench") end end return Object.removeUser(self, user) end function Bench:resetUsageAndReservaton() -- make sure that action:isStanding() will be true, see issue 404 if self.user then for i, action in pairs(self.user.action_queue) do if action.name == "queue" then self.user.action_queue[i].current_bench_distance = nil end end end -- if patient is heading to a bench that is not serving then do the same -- things as if they were sitting on it if self.reserved_for ~= nil then self.reserved_for:handleRemovedObject(self) self:removeUser(self.reserved_for) end Object.resetUsageAndReservaton(self) end --! This function is automatically called after loading a game and serves for compatibility. function Bench:afterLoad(old, new) if old < 119 then self.footprint = object.orientations[self.direction].footprint end Object.afterLoad(self, old, new) end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/bin.lua000066400000000000000000000030001522247547500204370ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "bin" object.thob = 50 object.name = _S.object.bin object.tooltip = _S.tooltip.objects.bin object.ticks = false object.corridor_object = 6 object.class = "SideObject" object.build_preview_animation = 5096 object.idle_animations = { north = 1752, south = 1752, } object.orientations = { north = { footprint = { {0, 0, only_side = true} } }, east = { footprint = { {0, 0, only_side = true} } }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/bookcase.lua000066400000000000000000000035751522247547500214760ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "bookcase" object.thob = 56 object.name = _S.object.bookcase object.tooltip = _S.tooltip.objects.bookcase object.ticks = false object.build_preview_animation = 5104 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2406, } object.usage_animations = copy_north_to_south { north = { in_use = {Doctor = 2414}, }, } object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, east = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/cabinet.lua000066400000000000000000000043571522247547500213140ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "cabinet" object.thob = 2 object.name = _S.object.cabinet object.tooltip = _S.tooltip.objects.cabinet object.ticks = false object.build_preview_animation = 5054 object.idle_animations = { north = 80, east = 82, } object.usage_animations = { north = { in_use = { Doctor = 88, }, }, east = { in_use = { Doctor = 90, }, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setStaffMarker(object.usage_animations.east.in_use, {0, 0}) anim_mgr:setStaffMarker(object.usage_animations.north.in_use, {0, 0}) object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, east = { footprint = { {0, 0, complete_cell = true}, {-1, 0, only_passable = true} }, use_position = "passable", }, south = { footprint = { {0, 0, complete_cell = true}, {0, -1, only_passable = true} }, use_position = "passable", }, west = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/chair.lua000066400000000000000000000151631522247547500207720ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "chair" object.thob = 6 object.name = _S.object.chair object.tooltip = _S.tooltip.objects.chair object.ticks = false object.build_preview_animation = 5056 object.idle_animations = { north = 686, east = 688, } object.walk_in_to_use = true local function make_list(not_talking, nodding, talking) local list = {} for _ = 1, 16 do list[#list+1] = not_talking end if nodding then for _ = 1, 3 do list[#list+1] = nodding end end if talking then for _ = 1, 1 do list[#list+1] = talking end end return list end object.usage_animations = { north = { begin_use = { ["Standard Male Patient" ] = 678, ["Slack Male Patient" ] = 4580, ["Elvis Patient" ] = 1054, ["Standard Female Patient" ] = 2824, ["Slack Female Patient" ] = 2824, ["Chewbacca Patient" ] = 3792, ["Invisible Patient" ] = 4228, ["Transparent Male Patient" ] = 4360, ["Alternate Male Patient" ] = 4480, ["Transparent Female Patient"] = 4816, ["Alien Male Patient" ] = 678, -- TEMP ["Alien Female Patient" ] = 2824, -- TEMP }, in_use = { -- Note that patient mouth not visible in this orientation, so we only -- need one animation, and not the collection of animations. ["Standard Male Patient" ] = 702, ["Slack Male Patient" ] = 4588, ["Elvis Patient" ] = 1038, ["Standard Female Patient" ] = 2814, ["Slack Female Patient" ] = 2814, ["Chewbacca Patient" ] = 3784, ["Invisible Patient" ] = 4236, ["Transparent Male Patient" ] = 4344, ["Alternate Male Patient" ] = 4488, ["Transparent Female Patient"] = 4808, ["Alien Male Patient" ] = 702, -- TEMP ["Alien Female Patient" ] = 2814, -- TEMP }, finish_use = { ["Standard Male Patient" ] = 694, ["Slack Male Patient" ] = 4596, ["Standard Female Patient" ] = 2832, ["Slack Female Patient" ] = 2832, ["Chewbacca Patient" ] = 3776, ["Elvis Patient" ] = 4070, ["Invisible Patient" ] = 4244, ["Transparent Male Patient" ] = 4368, ["Alternate Male Patient" ] = 4504, ["Transparent Female Patient"] = 4824, ["Alien Male Patient" ] = 694, -- TEMP ["Alien Female Patient" ] = 2832, -- TEMP } }, east = { begin_use = { ["Standard Male Patient" ] = 680, ["Elvis Patient" ] = 1056, ["Slack Male Patient" ] = 1540, ["Standard Female Patient" ] = 2826, ["Slack Female Patient" ] = 2826, ["Chewbacca Patient" ] = 3794, ["Invisible Patient" ] = 4230, ["Transparent Male Patient" ] = 4362, ["Alternate Male Patient" ] = 4482, ["Transparent Female Patient"] = 4818, ["Alien Male Patient" ] = 680, -- TEMP ["Alien Female Patient" ] = 2826, -- TEMP }, in_use = { -- Not talking, head nodding, talking ["Standard Male Patient" ] = make_list( 704, 736, 744), ["Elvis Patient" ] = make_list(1040, nil, 4080), ["Slack Male Patient" ] = make_list(1544, nil, 4606), ["Standard Female Patient" ] = make_list(2818, 3002, 2994), ["Slack Female Patient" ] = make_list(2818, 3002, 2994), ["Chewbacca Patient" ] = make_list(3786, nil, 4144), ["Invisible Patient" ] = make_list(4238, nil, 4250), ["Transparent Male Patient" ] = make_list(4378, 4346, 4354), ["Alternate Male Patient" ] = make_list(4490, nil, 4498), -- NB: 4498 also seems to include big-head patients ["Transparent Female Patient"] = make_list(4810, 4842, 4834), ["Alien Male Patient" ] = make_list( 704, 736, 744), -- TEMP ["Alien Female Patient" ] = make_list(2818, 3002, 2994), -- TEMP }, finish_use = { ["Standard Male Patient" ] = 696, ["Slack Male Patient" ] = 1552, ["Standard Female Patient" ] = 2834, ["Slack Female Patient" ] = 2834, ["Chewbacca Patient" ] = 3778, ["Elvis Patient" ] = 4072, ["Invisible Patient" ] = 4246, ["Transparent Male Patient" ] = 4370, ["Alternate Male Patient" ] = 4506, ["Transparent Female Patient"] = 4826, ["Alien Male Patient" ] = 696, -- TEMP ["Alien Female Patient" ] = 2834, -- TEMP } }, } object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, -1, only_passable = true, invisible = true, shareable = true} }, use_position = "passable", }, east = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true, invisible = true, shareable = true} }, use_position = "passable", }, south = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true, invisible = true, shareable = true} }, use_position = "passable", }, west = { footprint = { {0, 0, complete_cell = true}, {-1, 0, only_passable = true, invisible = true, shareable = true} }, use_position = "passable", }, } class "Chair" (Object) ---@type Chair local Chair = _G["Chair"] function Chair:Chair(...) self:Object(...) end --! This function is automatically called after loading a game and serves for compatibility. function Chair:afterLoad(old, new) if old < 119 then self.footprint = object.orientations[self.direction].footprint end Object.afterLoad(self, old, new) end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/comfortable_chair.lua000066400000000000000000000050511522247547500233420ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "comfortable_chair" object.thob = 61 object.name = _S.object.comfortable_chair object.tooltip = _S.tooltip.objects.comfortable_chair object.ticks = false object.build_preview_animation = 5110 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2524, } object.usage_animations = copy_north_to_south { north = { begin_use = {Doctor = 2516}, begin_use_2 = {Doctor = 2512}, in_use = {Doctor = 2544}, finish_use = {Doctor = 2520}, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2, kf3 = {0, -2, "px"}, {2, -6, "px"}, {6, -11, "px"} local kf4, kf5 = {10, -9, "px"}, {16, -10, "px"} anim_mgr:setStaffMarker(2516, 0, kf1, 1, kf2, 2, kf3, 3, kf4, 4, kf5) kf1, kf2, kf3 = {17, -8, "px"}, {26, -12, "px"}, {34, -12, "px"} anim_mgr:setStaffMarker(2512, 0, kf5, 1, kf1, 2, kf2, 3, kf3) anim_mgr:setStaffMarker(2544, kf3) kf4, kf5, kf1, kf2 = {28, -12, "px"}, {15, -11, "px"}, {11, -7, "px"}, {7, -4, "px"} anim_mgr:setStaffMarker(2520, 0, kf3, 1, kf4, 2, kf5, 3, kf1, 4, kf2) object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, east = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/computer.lua000066400000000000000000000037041522247547500215400ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "computer" object.thob = 40 object.research_category = "cure" object.research_fallback = 46 object.name = _S.object.computer object.tooltip = _S.tooltip.objects.computer object.ticks = false object.build_preview_animation = 5090 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2094, } object.usage_animations = copy_north_to_south { north = { in_use = { Doctor = 2098, }, }, } object.orientations = { north = { use_position = "passable", use_animate_from_use_position = true, footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, }, east = { use_position = "passable", use_animate_from_use_position = true, footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/console.lua000066400000000000000000000044421522247547500213440ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "console" object.thob = 15 object.name = _S.object.console object.tooltip = _S.tooltip.objects.console object.ticks = true object.build_preview_animation = 922 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 794, } object.usage_animations = copy_north_to_south { north = { begin_use = {Doctor = 798}, -- Doctor sits down begin_use_2 = {Doctor = 806}, -- Pulls the handle in_use = {Doctor = { 810, -- Sits idle 814, -- Pushing buttons }}, finish_use = {Doctor = 802}, -- Doctor stands up }, } object.orientations = { north = { footprint = { {-1, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, -1, complete_cell = true}, {0, 0, complete_cell = true, only_passable = true} }, render_attach_position = {0, -1}, use_position = "passable" }, east = { footprint = { {-1, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, -1, complete_cell = true}, {0, 0, complete_cell = true, only_passable = true} }, render_attach_position = {-1, 0}, use_position = "passable" }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/couch.lua000066400000000000000000000044641522247547500210070ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "couch" object.thob = 18 object.research_category = "diagnosis" object.name = _S.object.couch object.tooltip = _S.tooltip.objects.couch object.ticks = false object.build_preview_animation = 5064 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2540, } object.usage_animations = copy_north_to_south { north = { begin_use = { ["Elvis Patient" ] = 1014, ["Standard Male Patient" ] = 2528, ["Standard Female Patient"] = 3180, }, in_use = { ["Elvis Patient" ] = 942, ["Standard Male Patient" ] = 2536, ["Standard Female Patient"] = 3330, }, finish_use = { ["Elvis Patient" ] = 938, ["Standard Male Patient" ] = 2532, ["Standard Female Patient"] = 3326, }, }, } object.orientations = { north = { footprint = { {-1, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, -1, only_passable = true}, {0, 0, only_passable = true} }, render_attach_position = {-1, 0}, }, east = { footprint = { {-1, -1, complete_cell = true}, {-1, 0, only_passable = true}, {0, -1, complete_cell = true}, {0, 0, only_passable = true} } }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/crash_trolley.lua000066400000000000000000000130621522247547500225520ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "crash_trolley" object.thob = 20 object.research_category = "diagnosis" object.name = _S.object.crash_trolley object.tooltip = _S.tooltip.objects.crash_trolley object.ticks = false object.build_preview_animation = 916 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 3838 --1134, there's also a back view (1132), but animation is missing for that } object.multi_usage_animations = { ["Stripped Male Patient - Doctor"] = copy_north_to_south { north = { begin_use = {3740, 3736, 3818}, -- Also possibly 548, 556 and 560 for a more smooth animation? in_use = {540, 544, 552}, finish_use = {3802, 3806, 3826}, }, }, ["Stripped Female Patient - Doctor"] = copy_north_to_south { north = { begin_use = {3732, 3728, 3822}, -- 532 in_use = {524, 528, 536}, finish_use = {3810, 3814, 3830}, }, }, ["Stripped Male Patient 2 - Doctor"] = copy_north_to_south { north = { begin_use = {3740, 3736, 3818}, -- Also possibly 548, 556 and 560 for a more smooth animation? in_use = {540, 544, 552}, finish_use = {3802, 3806, 3826}, }, }, ["Stripped Female Patient 2 - Doctor"] = copy_north_to_south { north = { begin_use = {3732, 3728, 3822}, -- 532 in_use = {524, 528, 536}, finish_use = {3810, 3814, 3830}, }, }, ["Stripped Male Patient 3 - Doctor"] = copy_north_to_south { north = { begin_use = {3740, 3736, 3818}, -- Also possibly 548, 556 and 560 for a more smooth animation? in_use = {540, 544, 552}, finish_use = {3802, 3806, 3826}, }, }, ["Stripped Female Patient 3 - Doctor"] = copy_north_to_south { north = { begin_use = {3732, 3728, 3822}, -- 532 in_use = {524, 528, 536}, finish_use = {3810, 3814, 3830}, }, }, } object.orientations = { north = { render_attach_position = { {0, 0}, {-1, 1} }, footprint = { {-1, 0, complete_cell = true}, {-1, 1, only_passable = true}, {0, 0, only_passable = true}, {0, 1, only_passable = true} }, use_position = {-1, 1}, use_position_secondary = {0, 0}, }, east = { render_attach_position = { {0, 0}, {1, -1} }, footprint = { {0, -1, complete_cell = true}, {0, 0, only_passable = true}, {1, -1, only_passable = true}, {1, 0, only_passable = true} }, use_position = {1, -1}, use_position_secondary = {0, 0}, }, } local anim_mgr = TheApp.animation_manager local kf1 = {-39, 11, "px"} anim_mgr:setStaffMarker(524, kf1) kf1 = {-63, -2, "px"} anim_mgr:setPatientMarker(524, kf1) local kf2 = {-34, 7, "px"} anim_mgr:setStaffMarker(528, kf2) anim_mgr:setPatientMarker(528, kf1) local kf3, kf4, kf5 = {-25, 7, "px"}, {-22, 8, "px"}, {-29, 10, "px"} local kf6, kf7 = {-31, 11, "px"}, {-36, 10, "px"} kf2 = {-35, 11, "px"} anim_mgr:setStaffMarker({536, 552}, 0, kf2, 1, kf3, 2, kf4, 17, kf4, 18, kf5, 19, kf6, 20, kf7) anim_mgr:setPatientMarker({536, 552}, kf1) anim_mgr:setStaffMarker(540, kf7) anim_mgr:setPatientMarker(540, kf1) local kf8, kf9, kf10 = {-38, 13, "px"}, {-34, 10, "px"}, {-31, 14, "px"} local kf11 = {-33, 11, "px"} anim_mgr:setStaffMarker(544, 0, kf8, 36, kf8, 37, kf9, 38, kf10, 40, kf11) anim_mgr:setPatientMarker(544, kf1) kf8, kf9, kf10, kf11 = {0, 0, "px"}, {-1, 0, "px"}, {-9, 2, "px"}, {-10, 4, "px"} kf2, kf3, kf5, kf6 = {-12, 7, "px"}, {-17, 5, "px"}, {-22, 10, "px"}, {-25, 11, "px"} kf7 = {-31, 15, "px"} anim_mgr:setStaffMarker({3728, 3732, 3736, 3740}, 0, kf8, 4, kf8, 5, kf9, 6, kf10, 7, kf11, 8, kf2, 9, kf3, 10, kf5, 11, kf6, 12, kf7) anim_mgr:setPatientMarker({3728, 3732, 3736, 3740}, kf1) local kf12 = {3, 4, "px"} kf9, kf10, kf2, kf3 = {-30, 17, "px"}, {-22, 12, "px"}, {-17, 11, "px"}, {-13, 9, "px"} kf5, kf6 = {-8, 9, "px"}, {-1, 8, "px"} anim_mgr:setStaffMarker({3802, 3806, 3810, 3814}, 0, kf9, 1, kf10, 2, kf2, 3, kf3, 4, kf5, 5, kf6, 6, kf12, 7, kf8) anim_mgr:setPatientMarker({3802, 3806, 3810, 3814}, kf1) local kf13, kf14, kf15 = {-10, 7, "px"}, {-12, 6, "px"}, {-17, 8, "px"} local kf16, kf17 = {-25, 10, "px"}, {-31, 17, "px"} kf12 = {-1, 2, "px"} anim_mgr:setStaffMarker({3818, 3822}, 0, kf8, 1, kf8, 2, kf12, 3, kf11, 4, kf13, 5, kf14, 6, kf15, 7, kf4, 8, kf16, 9, kf17, 10, kf7) anim_mgr:setPatientMarker({3818, 3822}, kf1) anim_mgr:setStaffMarker({3826, 3830}, 0, kf9, 1, kf10, 2, kf2, 3, kf3, 4, kf5, 5, kf6) anim_mgr:setPatientMarker({3826, 3830}, kf1) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/desk.lua000066400000000000000000000101411522247547500206210ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "desk" object.thob = 1 object.name = _S.object.desk object.tooltip = _S.tooltip.objects.desk object.ticks = false object.build_preview_animation = 900 object.show_in_town_map = true object.idle_animations = { north = 48, east = 50, } object.usage_animations = { north = { begin_use = { Doctor = 56, Nurse = 3240, }, in_use = { -- Note: 72 (normal usage) should happen a lot more often than 718 (head -- scratching), hence it appears in the list many times. Doctor = {72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 718}, Nurse = 3256, }, finish_use = { Doctor = 64, Nurse = 3248, }, }, east = { begin_use = { Doctor = 58, Nurse = 3242, }, in_use = { Doctor = 74, -- No analogue to 718 :( Nurse = 3258, }, finish_use = { Doctor = 66, Nurse = 3250, }, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2, kf3 = {0, 0}, {-1, -0.3}, {-0.9, -0.1} anim_mgr:setStaffMarker( 56, 0, kf1, 10, kf2, 13, kf3) anim_mgr:setStaffMarker(3240, 0, kf1, 10, kf2, 13, kf3) anim_mgr:setStaffMarker( 72, kf3) anim_mgr:setStaffMarker( 718, kf3) anim_mgr:setStaffMarker(3256, kf3) anim_mgr:setStaffMarker( 64, 0, kf3, 3, kf2, 12, kf1) anim_mgr:setStaffMarker(3248, 0, kf3, 3, kf2, 12, kf1) kf1, kf2, kf3 = {-1, 0}, {-1, -1.1}, {-0.8, -0.9} anim_mgr:setStaffMarker( 58, 0, kf1, 9, kf2, 11, kf3) anim_mgr:setStaffMarker(3242, 0, kf1, 9, kf2, 11, kf3) kf1 = {-0.7, -1} anim_mgr:setStaffMarker( 74, kf1) anim_mgr:setStaffMarker(3258, kf1) kf2, kf1 = {-0.8, -1}, {-1, -2} anim_mgr:setStaffMarker( 66, 0, kf3, 3, kf2, 8, kf1) anim_mgr:setStaffMarker(3250, 0, kf3, 3, kf2, 8, kf1) object.orientations = { north = { footprint = { {-2, -1, complete_cell = true}, {-1, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, -1, need_north_side = true}, {0, 0, only_passable = true} }, render_attach_position = {0, -1}, use_position = "passable", }, east = { footprint = { {0, -2, need_east_side = true}, {-1, -1, complete_cell = true}, {0, -1, complete_cell = true}, {-1, 0, only_passable = true}, {0, 0, complete_cell = true}, {-1, -2, only_passable = true}}, render_attach_position = {0, -1}, use_position = {-1, 0}, finish_use_position = {-1, -2}, }, south = { footprint = { {0, -1, only_passable = true}, {-2, 0, need_south_side = true}, {-1, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {0, 0, complete_cell = true}, {-2, -1, only_passable = true} }, render_attach_position = {-2, 0}, use_position = {0, -1}, finish_use_position = {-2, -1}, }, west = { footprint = { {-1, -2, complete_cell = true}, {0, 0, only_passable = true}, {-1, -1, complete_cell = true}, {0, -1, complete_cell = true}, {-1, 0, need_west_side = true} }, render_attach_position = {-1, 0}, use_position = "passable", }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/door.lua000066400000000000000000000152371522247547500206510ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "door" object.thob = 3 object.name = _S.object.door object.tooltip = _S.tooltip.objects.door object.class = "Door" object.ticks = false object.idle_animations = { north = 104, west = 106, } corsixth.require("queue") class "Door" (Object) ---@type Door local Door = _G["Door"] function Door:Door(...) self:Object(...) self.queue = Queue() -- Priority should be given to humanoids already inside the door's room, as -- otherwise we could end up in a situation where a patient trying to leave -- a room is in the queue behind a patient trying to enter, and the entering -- one cannot enter until the leaving one has left, etc. self.queue:setPriorityForSameRoom(self) self.hover_cursor = TheApp.gfx:loadMainCursor("queue") -- self.user = "locked" -- prevents doors from being used (debug aid) end --! Updates room new door with values from previous door. -- New door is typically result of room editing. --!param room (Room) The room this door belongs to. --!param old_door (Door) Previous door of this room. function Door:setupDoor(room, old_door) if old_door and old_door.queue then -- for room edit case update new queue with values from old queue self.queue.visitor_count = old_door.queue.visitor_count self.queue.max_size = old_door.queue.max_size end self.room = room end function Door:getRoom() return self.room end --! Updates a door's dynamic info function Door:updateDynamicInfo() if self.room and self.queue then if not self.room:hasQueueDialog() then self:setDynamicInfo('text', { self.room.room_info.name }) else self:setDynamicInfo('text', { self.room.room_info.name, _S.dynamic_info.object.queue_size:format(self.queue:reportedSize()), _S.dynamic_info.object.queue_expected:format(self.queue:expectedSize()) }) end end end function Door:onClick(ui, button) local room = self:getRoom() if button == "left" and room:hasQueueDialog() and self.queue then local queue_window = UIQueue(ui, self.queue) ui:addWindow(queue_window) end end local door_flag_name = { north = {"doorNorth", "tallNorth"}, west = {"doorWest", "tallWest"}, } function Door:setTile(x, y) local map = self.world.map local flag_names = door_flag_name[self.direction] local todo_cleanup if self.tile_x then -- NB: unsetting buildable flag has to be done AFTER removing the object -- from its former tile in Object.setTile todo_cleanup = self:getWalkableTiles() map:setCellFlags(self.tile_x, self.tile_y, { [flag_names[1]] = false, [flag_names[2]] = false, }) for _, xy in ipairs(self:getWalkableTiles()) do map:setCellFlags(xy[1], xy[2], {doNotIdle = false}) end end Object.setTile(self, x, y) if todo_cleanup then -- passable tiles can "belong" to multiple objects, so we have to check that -- assumption: no object defines a passable tile further than 10 tiles away from its origin for _, xy in ipairs(todo_cleanup) do if not self.world:isTilePartOfNearbyObject(xy[1], xy[2], 10) then map:setCellFlags(xy[1], xy[2], {buildable = true}) end end end if x then map:setCellFlags(x, y, { [flag_names[1]] = true, [flag_names[2]] = true, }) for _, xy in ipairs(self:getWalkableTiles()) do map:setCellFlags(xy[1], xy[2], {buildable = false, doNotIdle = true}) end end map.th:updateShadows() return self end function Door:getWalkableTiles() local x, y = self.tile_x, self.tile_y if self.direction == "west" then x = x - 1 else y = y - 1 end return { {self.tile_x, self.tile_y}, {x, y} } end local flag_early_list = 1024 function Door:setAnimation(animation, flags) flags = (flags or 0) if self.direction == "north" then flags = flags + flag_early_list end return Object.setAnimation(self, animation, flags) end function Door:closeDoor() if self.queue then self.queue:rerouteAllPatients(self:getRoom().room_info.id) self.queue = nil end self:clearDynamicInfo(nil) self.hover_cursor = nil end function Door:getDrawingLayer() return DrawingLayers.Door end function Door:checkForDeadlock() -- In an ideal world, deadlocks should not occur, as they indicate errors in -- some logic elsewhere. From a practical point of view, we should check for -- deadlocks from time to time and attempt to fix them. if self.queue and self.reserved_for then -- If the door is reserved for someone, then that person should either be -- at the front of the queue, or not in any queues at all. for _, action in ipairs(self.reserved_for.action_queue) do if action.name == "queue" then if action.queue ~= self.queue or self.queue[1] ~= self.reserved_for then self.world:gameLog("Warning: Trying to resolve door deadlock at (" .. tostring(self.tile_x) .. ", " .. tostring(self.tile_y) .. ")") self.reserved_for = nil self:getRoom():tryAdvanceQueue() end break end end end end function Door:afterLoad(old, new) if old < 57 then local flags_to_set local map = self.world.map if self.direction == "west" then flags_to_set = {buildableNorth = false, buildableSouth = false} map:setCellFlags(self.tile_x, self.tile_y, flags_to_set) map:setCellFlags(self.tile_x - 1, self.tile_y, flags_to_set) else flags_to_set = {buildableEast = false, buildableWest = false} map:setCellFlags(self.tile_x, self.tile_y, flags_to_set) map:setCellFlags(self.tile_x, self.tile_y - 1, flags_to_set) end end self:updateDynamicInfo() Object.afterLoad(self, old, new) end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/doors/000077500000000000000000000000001522247547500203215ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/objects/doors/entrance_left_door.lua000066400000000000000000000025641522247547500246670ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "entrance_left_door" object.thob = 58 object.name = _S.object.entrance_left object.tooltip = _S.tooltip.objects.entrance_left object.class = "EntranceDoor" object.ticks = false object.idle_animations = { north = 316, west = 318, } object.supports_creation_for_map = true return object CorsixTH-0.70.0/CorsixTH/Lua/objects/doors/entrance_right_door.lua000066400000000000000000000131031522247547500250410ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "entrance_right_door" object.thob = 59 object.name = _S.object.entrance_right object.tooltip = _S.tooltip.objects.entrance_right object.class = "EntranceDoor" object.ticks = false object.idle_animations = { north = 308, west = 312, } object.supports_creation_for_map = true class "EntranceDoor" (Object) ---@type EntranceDoor local EntranceDoor = _G["EntranceDoor"] function EntranceDoor:EntranceDoor(hospital, object_type, x, y, direction, etc) self.is_master = object_type == object self:Object(hospital, object_type, x, y, direction, etc) self.occupant_count = 0 self.is_open = false -- We need to link the master to the slave but we don't know in which order they will be initialized if self.is_master then -- The master will check for an adjacent slave local slave_type = "entrance_left_door" self.slave = self.world:getObject(x - 1, y, slave_type) or self.world:getObject(x, y - 1, slave_type) or nil if self.slave then self.slave.master = self end else -- The slave will check for an adjacent master local master_type = "entrance_right_door" self.master = self.world:getObject(x + 1, y, master_type) or self.world:getObject(x, y + 1, master_type) or nil if self.master then self.master.slave = self end end local anim = self.object_type.idle_animations[self.direction] local anims = self.world.anims self.anim_frames = {anims:getFirstFrame(anim)} while true do local nxt = anims:getNextFrame(self.anim_frames[#self.anim_frames]) if nxt == self.anim_frames[1] then break end self.anim_frames[#self.anim_frames + 1] = nxt end self.frame_index = 1 end function EntranceDoor:onOccupantChange(count_delta) self.occupant_count = self.occupant_count + count_delta local is_open = self.occupant_count > 0 if is_open ~= self.is_open then self:playSound("eledoor2.wav") self.is_open = is_open self.ticks = true end if self.slave then self.slave:onOccupantChange(count_delta) end end local additional_walkable_tiles = { north = { {0, -1}, }, west = { {-1, 0}, }, } local additional_walkable_tiles_master = { north = { {0, -1}, {1, 0}, {1, -1}, }, west = { {-1, 0}, {0, 1}, {-1, 1}, }, } function EntranceDoor:setTile(x, y) local offsets = self.is_master and additional_walkable_tiles_master or additional_walkable_tiles offsets = offsets[self.direction] local flag_name = self.direction == "north" and "tallNorth" or "tallWest" if self.tile_x then if self.is_master then -- NB: only the tile of the door itself and the one additional tile from additional_walkable_tiles notify the door self.world:notifyObjectOfOccupants(self.tile_x, self.tile_y, nil) for _, offset in ipairs(additional_walkable_tiles[self.direction]) do self.world:notifyObjectOfOccupants(self.tile_x + offset[1], self.tile_y + offset[2], nil) end end self.world.map:setCellFlags(self.tile_x, self.tile_y, {[flag_name] = false, buildable = true, doNotIdle = false}) for _, offset in ipairs(offsets) do self.world.map:setCellFlags(self.tile_x + offset[1], self.tile_y + offset[2], {buildable = true, doNotIdle = false}) end end Object.setTile(self, x, y) if x then if self.is_master then self.world:notifyObjectOfOccupants(x, y, self) for _, offset in ipairs(additional_walkable_tiles[self.direction]) do self.world:notifyObjectOfOccupants(x + offset[1], y + offset[2], self) end end self.world.map:setCellFlags(x, y, {[flag_name] = true, buildable = false, doNotIdle = true}) for _, offset in ipairs(offsets) do self.world.map:setCellFlags(x + offset[1], y + offset[2], {buildable = false, doNotIdle = true}) end end self.world.map.th:updateShadows() end function EntranceDoor:getWalkableTiles() local result = {} local offsets = self.is_master and additional_walkable_tiles_master or additional_walkable_tiles result[1] = {self.tile_x, self.tile_y} for _, offset in ipairs(offsets[self.direction]) do result[#result + 1] = {self.tile_x + offset[1], self.tile_y + offset[2]} end return result end function EntranceDoor:tick() local target_index = self.is_open and #self.anim_frames or 1 if self.frame_index == target_index then self.ticks = false elseif self.frame_index < target_index then self.frame_index = self.frame_index + 1 elseif self.frame_index > target_index then self.frame_index = self.frame_index - 1 end self.th:setFrame(self.anim_frames[self.frame_index]) end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/doors/swing_door_left.lua000066400000000000000000000025021522247547500242070ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "swing_door_left" object.thob = 52 object.name = _S.object.swing_door1 object.tooltip = _S.tooltip.objects.swing_door1 object.class = "SwingDoor" object.ticks = false object.idle_animations = { north = 1996, west = 1998, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/doors/swing_door_right.lua000066400000000000000000000156151522247547500244030ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "swing_door_right" object.thob = 53 object.name = _S.object.swing_door2 object.tooltip = _S.tooltip.objects.swing_door2 object.class = "SwingDoor" object.ticks = false object.idle_animations = { north = 2006, --west = 2050,--1998 } class "SwingDoor" (Door) ---@type SwingDoor local SwingDoor = _G["SwingDoor"] function SwingDoor:SwingDoor(hospital, object_type, x, y, direction, etc) self.is_master = object_type == object self:Door(hospital, object_type, x, y, direction, etc) self.paired = false self:pairDoors(x, y) self.old_anim = self.th:getAnimation() self.old_flags = self.th:getFlag() local --[[persistable:swing_door_creation]] function _() end -- Stub from Oct 2023, savegame version 181 end --! Links the master to the slave swing door. This allows the slave to mimic the --! master in interactions --!param x (num) Coordinate --!param y (num) Coordinate function SwingDoor:pairDoors(x, y) -- Because we don't know the build order of each door we must accommodate for this if self.is_master then -- The master will check for an adjacent slave local slave_type = "swing_door_left" self.slave = self.world:getObject(x - 1, y, slave_type) or self.world:getObject(x, y - 1, slave_type) if self.slave then self.slave.master = self self.paired = true self.slave.master.paired = true end else -- The slave will check for an adjacent master local master_type = "swing_door_right" self.master = self.world:getObject(x + 1, y, master_type) or self.world:getObject(x, y + 1, master_type) if self.master then self.master.slave = self self.paired = true self.master.slave.paired = true end end -- The second run of this function must check there was a successful pairing self:checkPaired(x, y) end --! Checks to see if the swing doors have paired correctly function SwingDoor:checkPaired(x, y) if self.paired then assert((self.master and self.master.slave == self) or (self.slave and self.slave.master == self), "Swing doors did not pair at (" .. x .. ", " .. y .. ")") else -- The other door should not yet exist local other_door_type = self.is_master and "swing_door_left" or "swing_door_right" local other_door_offset = self.is_master and - 1 or 1 local other_door = self.world:getObject(x + other_door_offset, y, other_door_type) or self.world:getObject(x, y + other_door_offset, other_door_type) assert(not other_door, "Swing doors did not pair at (" .. x .. ", " .. y .. ")") end end -- Depending on if this is a master or slave different onClick functions are called. function SwingDoor:onClick(ui, button) if self.is_master then Door.onClick(self, ui, button) elseif self.master then Door.onClick(self.master, ui, button) end end -- Depending on if this is a master or slave update the correct information. function SwingDoor:updateDynamicInfo() if self.is_master then Door.updateDynamicInfo(self) elseif self.master then Door.updateDynamicInfo(self.master) end end -- Depending on if this is a master or slave show the correct information. function SwingDoor:getDynamicInfo() return self.master and self.master.dynamic_info or self.dynamic_info end --[[ Tell the associated slave door to start swinging. !param direction (string) The direction in which to swing. Allowed values are "in" and "out". ]] function SwingDoor:swingSlave(direction) local flags = (self.direction == "east" or self.direction == "west") and 1 or 0 local anim = 2034 if direction == "in" then anim = 2032 end self:swing(anim, flags) end --[[ Makes the pair of swing doors start swinging in the correct fashion. !param direction (string) The direction in which to swing. Allowed values are "in" and "out". !param length (integer) How long the swing animation is for the entering/leaving entity. ]] function SwingDoor:swingDoors(direction, length) -- First tell the slave door to start swinging self.slave:swingSlave(direction) -- Then wait for a while before flapping back this door local --[[persistable:swing_door_waiting]] function callback() local flags = (self.direction == "east" or self.direction == "west") and 1 or 0 local anim = 2052 if direction == "in" then anim = 2048 end self:swing(anim, flags) end self:setTimer(length, callback) self.ticks = true end --[[ The actual swinging is done in this class. !param anim (integer) The animation to use. !param flags (integer) Flags, if any, associated with the animation. ]] function SwingDoor:swing(anim, flags) self:setAnimation(anim, flags) self.ticks = true local --[[persistable:swing_door_opening]] function callback() self:setAnimation(self.old_anim, self.old_flags) self.ticks = false if self.is_master then -- We're now ready to let another humanoid walk through self:removeUser() self:getRoom():tryAdvanceQueue() end end self:setTimer(TheApp.animation_manager:getAnimLength(anim), callback) end function SwingDoor:getWalkableTiles() if not self.is_master then return {} end local x, y = self.tile_x, self.tile_y if self.direction == "west" then return { {x-1, y-1}, {x, y-1}, {x-1, y }, {x, y }, {x-1, y+1}, {x, y+1}, } else return { {x-1, y-1}, {x, y-1}, {x+1, y-1}, {x-1, y }, {x, y }, {x+1, y }, } end end function SwingDoor:afterLoad(old, new) if old < 184 then if (self.is_master and not self.slave) or (not self.is_master and not self.master) then local x, y = self.tile_x, self.tile_y self.paired = false -- other door will be rectified by pairDoors self:pairDoors(x, y) else self.paired = true if self.is_master then self.slave.paired = true else self.master.paired = true end end end Door.afterLoad(self, old, new) end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/drinks_machine.lua000066400000000000000000000075541522247547500226670ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "drinks_machine" object.thob = 7 object.name = _S.object.drinks_machine object.tooltip = _S.tooltip.objects.drinks_machine object.ticks = false object.corridor_object = 3 object.build_preview_animation = 906 object.multiple_users_allowed = true object.dynamic_info = true object.idle_animations = { south = 170, west = 172, north = 174, east = 176, } object.usage_animations = { south = { in_use = { ["Standard Male Patient" ] = 190, ["Standard Female Patient" ] = 250, ["Slack Female Patient" ] = 250, ["Transparent Male Patient" ] = 1112, ["Slack Male Patient" ] = 1532, ["Invisible Patient" ] = 1804, ["Alternate Male Patient" ] = 2756, ["Transparent Female Patient"] = 3060, -- is 426 an initial try at this? ["Chewbacca Patient" ] = 3768, ["Elvis Patient" ] = 198, ["Alien Male Patient" ] = 190, ["Alien Female Patient" ] = 250, }, }, east = { in_use = { ["Standard Male Patient" ] = 196, ["Standard Female Patient" ] = 256, ["Slack Female Patient" ] = 256, ["Transparent Male Patient" ] = 1118, ["Slack Male Patient" ] = 1538, ["Invisible Patient" ] = 1810, ["Alternate Male Patient" ] = 2762, ["Transparent Female Patient"] = 3066, ["Chewbacca Patient" ] = 3774, ["Elvis Patient" ] = 204, ["Alien Male Patient" ] = 196, ["Alien Female Patient" ] = 256, }, }, west = { in_use = { ["Standard Male Patient" ] = 192, ["Standard Female Patient" ] = 252, ["Slack Female Patient" ] = 252, ["Transparent Male Patient" ] = 1114, ["Slack Male Patient" ] = 1534, ["Invisible Patient" ] = 1806, ["Alternate Male Patient" ] = 2758, ["Transparent Female Patient"] = 3062, ["Chewbacca Patient" ] = 3770, ["Elvis Patient" ] = 200, ["Alien Male Patient" ] = 192, ["Alien Female Patient" ] = 252, }, }, } object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, -1, only_passable = true} }, use_position = "passable", added_animation_offset_while_in_use = {-1, 0}, }, east = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, south = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, west = { footprint = { {0, 0, complete_cell = true}, {-1, 0, only_passable = true} }, use_position = "passable", }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/fire_extinguisher.lua000066400000000000000000000032531522247547500234240ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "extinguisher" object.thob = 43 object.name = _S.object.fire_extinguisher object.tooltip = _S.tooltip.objects.fire_extinguisher object.ticks = false object.corridor_object = 4 object.class = "SideObject" object.build_preview_animation = 912 object.idle_animations = { north = 178, east = 468, south = 470, } object.orientations = { north = { footprint = { {0, 0, only_side = true} } }, east = { footprint = { {0, 0, only_side = true} } }, south = { footprint = { {0, 0, only_side = true} } }, west = { footprint = { {0, 0, only_side = true} } }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/gates_to_hell.lua000066400000000000000000000042311522247547500225070ustar00rootroot00000000000000--[[ Copyright (c) 2013 Luís "driverpt" Duarte Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "gates_to_hell" object.name = "Gates to Hell" object.thob = 48 object.ticks = true object.walk_in_to_use = true object.idle_animations = { south = 1602, east = 1602 } object.usage_animations = { south = { in_use = { ["Standard Male Patient"] = 4560, }, }, east = { in_use = { ["Standard Male Patient"] = 4560, }, } } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.usage_animations.south.in_use, 0, {0,0}) anim_mgr:setPatientMarker(object.usage_animations.east.in_use, 0, {0,0}) -- Orientation directions are relative to the patient's death location: object.orientations = { south = { use_position = {0, 0}, footprint = { {1, 0, only_passable = true}, {0, 0, complete_cell = true}, {-1, 0, only_passable = true} }, use_animate_from_use_position = false }, east = { use_position = {0, 0}, footprint = { {0, -1, only_passable = true}, {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_animate_from_use_position = false } } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/helicopter.lua000066400000000000000000000075451522247547500220470ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("announcer") local AnnouncementPriority = _G["AnnouncementPriority"] local object = {} object.id = "helicopter" object.thob = 63 object.name = "helicopter" -- Not seen anywhere object.class = "Helicopter" object.ticks = true object.idle_animations = { north = 2456, } object.orientations = { north = { -- Helicopter is outside the hospital, so does not need a footprint footprint = {} }, } --! An `Object` which drops off emergency patients. class "Helicopter" (Object) ---@type Helicopter local Helicopter = _G["Helicopter"] function Helicopter:Helicopter(hospital, object_type, direction, etc) local x, y = hospital:getHeliportPosition() -- Helicopter needs to land below tile to be positioned correctly y = y + 1 self:Object(hospital, object_type, x, y, direction, etc) self.th:makeInvisible() self:setPosition(0, -600) self.phase = -120 self.hospital = hospital -- TODO: Shadow: 3918 hospital.emergency_patients = {} end function Helicopter:tick() local phase = self.phase local ui = TheApp.ui if phase == 0 then self.th:makeVisible() self:setSpeed(0, 10) ui:playAnnouncement(ui.hospital.emergency.disease.emergency_sound, AnnouncementPriority.Critical) elseif phase == 60 then self:setSpeed(0, 0) self.spawned_patients = 0 ui.adviser:say(_A.information.emergency) elseif phase == 85 then if self.spawned_patients < self.hospital.emergency.victims then self:spawnPatient() phase = 60 end elseif phase == 87 then self:setSpeed(0, -10) elseif phase == 147 then self.world:destroyEntity(self) end self.phase = phase + 1 Object.tick(self) end --! When the helicopter has landed this method is called each time a patient should spawn from it. function Helicopter:spawnPatient() local hospital = self.hospital self.spawned_patients = self.spawned_patients + 1 local patient = self.world:newEntity("Patient", 2, 1) patient:setDisease(hospital.emergency.disease) patient.diagnosis_progress = 1 patient.is_emergency = self.spawned_patients patient:setDiagnosed() patient:setMood("emergency", "activate") hospital.emergency_patients[self.spawned_patients] = patient local x, y = hospital:getHeliportSpawnPosition() patient:setNextAction(SpawnAction("spawn", {x = x, y = y}):setOffset({y = 1})) patient:setHospital(hospital) -- TODO: If new combined diseases are added this will not work correctly anymore. patient.cure_rooms_visited = #patient.disease.treatment_rooms - 1 local no_of_rooms = #patient.disease.treatment_rooms -- a spawning emergency patient might rather leave than pay if not patient:agreesToPay(patient.disease.id) then patient:goHome("over_priced", patient.disease.id) else patient:queueAction(SeekRoomAction(patient.disease.treatment_rooms[no_of_rooms])) end end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/lecture_chair.lua000066400000000000000000000044501522247547500225120ustar00rootroot00000000000000--[[ Copyright (c) 2010 Justin Pasher Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "lecture_chair" object.thob = 36 object.name = _S.object.lecture_chair object.tooltip = _S.tooltip.objects.lecture_chair object.ticks = false object.build_preview_animation = 5084 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = { north = 2626, south = 2626, } object.usage_animations = copy_north_to_south { north = { begin_use = { Doctor = 2632 }, in_use = { Doctor = 2622 }, finish_use = { Doctor = 2636 }, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2 = {0, 0}, {-1, -0.1} anim_mgr:setStaffMarker(object.usage_animations.north.begin_use, 0, kf1, 10, kf2) anim_mgr:setStaffMarker(object.usage_animations.north.in_use, kf2) anim_mgr:setStaffMarker(object.usage_animations.north.finish_use, 0, kf2, 11, kf2, 18, kf1) object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, early_list = true, }, east = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/litter.lua000066400000000000000000000120231522247547500211770ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") local object = {} object.id = "litter" object.thob = 62 -- previously unused object.name = _S.object.litter -- currently not shown anywhere object.tooltip = _S.tooltip.objects.litter -- currently not shown anywhere object.ticks = false object.class = "Litter" local litter_types = {} -- All types of "litter", i.e. small objects on the ground or walls. litter_types["pee"] = 2248 litter_types["dead_rat"] = 2242 litter_types["puke"] = 2060 litter_types["soda_can"] = 1894 litter_types["banana"] = 1896 litter_types["paper"] = 1898 litter_types["bottle"] = 1900 litter_types["soot_floor"] = 3416 litter_types["soot_wall"] = 3408 litter_types["soot_window"] = 3412 -- When randomising litter, only these should come up. litter_types[1] = 1894 litter_types[2] = 1896 litter_types[3] = 1898 litter_types[4] = 1900 class "Litter" (Entity) ---@type Litter local Litter = _G["Litter"] function Litter:Litter(hospital, object_type, x, y) local th = TH.animation() self:Entity(th) self.ticks = object_type.ticks self.object_type = object_type self.hospital = hospital self.world = hospital.world self:setTile(x, y) end function Litter:setTile(x, y) Entity.setTile(self, x, y) if x then self.world:addObjectToTile(self, x, y) end end -- Litter is an Entity and not an Object so it does not inherit this method -- This is an (effective) hack, see issue 918 --cgj function Litter:getWalkableTiles() --emulate Object:getWalkableTiles() and return the tile (x,y) local tiles = {} tiles[0] = { self.tile_x, self.tile_y } return tiles end function Litter:setLitterType(anim_type, mirrorFlag) if anim_type then local anim = litter_types[anim_type] if anim then self:setAnimation(anim, mirrorFlag) else error("Unknown litter type") end if self:isCleanable() then self.hospital:addHandymanTask(self, "cleaning", 1, self.tile_x, self.tile_y) end end end --! Remove the litter from the world. function Litter:remove() assert(self:isCleanable() or TheApp.config.remove_destroyed_rooms) if self.tile_x then self.world:removeObjectFromTile(self, self.tile_x, self.tile_y) local taskIndex = self.hospital:getIndexOfTask(self.tile_x, self.tile_y, "cleaning", self) self.hospital:removeHandymanTask(taskIndex, "cleaning") else print("Warning: Removing litter that has already been removed.") end self.world:destroyEntity(self) end function Litter:getDrawingLayer() return DrawingLayers.Litter end function Litter:vomitInducing() local anim = self.animation_idx if anim == litter_types["puke"] or anim == litter_types["pee"] or anim == litter_types["dead_rat"] then return true end return false end function Litter:isCleanable() return self:vomitInducing() or self:anyLitter() end function Litter:anyLitter() local anim = self.animation_idx if anim == litter_types["soda_can"] or anim == litter_types["banana"] or anim == litter_types["paper"] or anim == litter_types["bottle"] then return true end return false end function Litter:afterLoad(old, new) if old < 52 then if self.tile_x then self.hospital:addHandymanTask(self, "cleaning", 1, self.tile_x, self.tile_y) else -- This object was not properly removed from the world. self.world:destroyEntity(self) end end if old < 54 then if not self:isCleanable() then local taskIndex = self.hospital:getIndexOfTask(self.tile_x, self.tile_y, "cleaning", self) self.hospital:removeHandymanTask(taskIndex, "cleaning") end end if old < 121 then self.ticks = object.ticks end if old < 151 then self.hospital = self.world:getHospital(self.tile_x, self.tile_y) end if old < 162 then -- Afterload 151 could cause nil hospital if the litter was outside it. -- For ease, remove affected litter if not self.hospital then self.hospital = TheApp.world:getLocalPlayerHospital() self:remove() end end Entity.afterLoad(self, old, new) end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/loo.lua000066400000000000000000000122341522247547500204710ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "loo" object.thob = 51 object.name = _S.object.toilet object.tooltip = _S.tooltip.objects.toilet object.ticks = false object.build_preview_animation = 5098 object.dynamic_info = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 1760, } object.usage_animations = copy_north_to_south { north = { begin_use = { ["Standard Male Patient" ] = 1712, ["Standard Female Patient" ] = 3132, ["Slack Female Patient" ] = 3132, ["Transparent Male Patient" ] = 4388, ["Slack Male Patient" ] = 4292, ["Invisible Patient" ] = 4256, ["Alternate Male Patient" ] = 4520, ["Transparent Female Patient"] = 4432, ["Chewbacca Patient" ] = 4158, ["Elvis Patient" ] = 950, ["Alien Male Patient" ] = 1712, ["Alien Female Patient" ] = 3132, }, begin_use_2 = { ["Standard Male Patient" ] = 1716, ["Standard Female Patient" ] = 3136, ["Slack Female Patient" ] = 3136, ["Transparent Male Patient" ] = 4392, ["Slack Male Patient" ] = 4296, ["Invisible Patient" ] = 4260, ["Alternate Male Patient" ] = 4524, ["Transparent Female Patient"] = 4436, ["Chewbacca Patient" ] = 4162, ["Elvis Patient" ] = 954, ["Alien Male Patient" ] = 1716, ["Alien Female Patient" ] = 3136, }, in_use = { ["Standard Male Patient" ] = {1728, 1732}, ["Standard Female Patient" ] = 3144, ["Slack Female Patient" ] = 3144, ["Transparent Male Patient" ] = 4400, ["Slack Male Patient" ] = 4308, -- 4304 is bugged for layer 0, 6 ["Invisible Patient" ] = 4272, ["Alternate Male Patient" ] = 4528, ["Transparent Female Patient"] = 4440, ["Chewbacca Patient" ] = 4170, ["Elvis Patient" ] = 962, ["Alien Male Patient" ] = {1728, 1732}, ["Alien Female Patient" ] = 3144, }, finish_use = { ["Standard Male Patient" ] = 1740, ["Standard Female Patient" ] = 3152, ["Slack Female Patient" ] = 3152, ["Transparent Male Patient" ] = 4404, ["Slack Male Patient" ] = 4316, ["Invisible Patient" ] = 4280, ["Alternate Male Patient" ] = 4536, ["Transparent Female Patient"] = 4444, ["Chewbacca Patient" ] = 4174, ["Elvis Patient" ] = 966, ["Alien Male Patient" ] = 1740, ["Alien Female Patient" ] = 3152, }, finish_use_2 = { ["Standard Male Patient" ] = 1744, ["Standard Female Patient" ] = 3156, ["Slack Female Patient" ] = 3156, ["Transparent Male Patient" ] = 4408, ["Slack Male Patient" ] = 4320, ["Invisible Patient" ] = 4284, ["Alternate Male Patient" ] = 4540, ["Transparent Female Patient"] = 4448, ["Chewbacca Patient" ] = 4740, ["Elvis Patient" ] = 1158, ["Alien Male Patient" ] = 1744, ["Alien Female Patient" ] = 3156, }, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2 = {0, 0}, {-0.1, -0.9} anim_mgr:setPatientMarker(object.usage_animations.north.begin_use, 1, kf1, 6, kf2) kf1 = {-0.1, -0.9} anim_mgr:setPatientMarker(object.usage_animations.north.begin_use_2, kf1) anim_mgr:setPatientMarker(object.usage_animations.north.in_use, kf1) anim_mgr:setPatientMarker(object.usage_animations.north.finish_use, kf1) kf1, kf2 = {-0.1, -0.9}, {0, 0} anim_mgr:setPatientMarker(object.usage_animations.north.finish_use_2, 0, kf1, 1, kf1, 6, kf2) object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, east = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/000077500000000000000000000000001522247547500207625ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/blood_machine.lua000066400000000000000000000120011522247547500242420ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "blood_machine" object.thob = 42 object.research_fallback = 37 object.research_category = "diagnosis" object.name = _S.object.blood_machine object.tooltip = _S.tooltip.objects.blood_machine object.ticks = false object.build_preview_animation = 5094 object.default_strength = 12 object.crashed_animation = 3372 object.show_in_town_map = true object.smoke_animation = 3460 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2228, } -- Note that for this particular machine the staff is the primary user, not the patient -- This was done in order to be able to let the patient be visible a while longer. object.multi_usage_animations = { ["Doctor - Standard Male Patient"] = copy_north_to_south { north = { begin_use = 2232, -- empty door opened begin_use_2 = 2236, -- empty chair goes out begin_use_3 = 2554, -- Patient invited onto machine begin_use_4 = 2220, -- The chair goes in begin_use_5 = 2224, -- door closes in_use = 2566, -- The machine does its work TODO: 2562, 2574 finish_use = 2252, -- The door is opened finish_use_2 = 2256, -- Patient comes out again finish_use_3 = 2558, -- Stands up finish_use_4 = 2204, -- empty chair in finish_use_5 = 2274, -- empty door closed }, }, ["Doctor - Standard Female Patient"] = copy_north_to_south { north = { begin_use = 2232, -- empty door opened begin_use_2 = 2236, -- empty chair goes out begin_use_3 = 4614, -- Patient invited onto machine 3224 begin_use_4 = 3232, -- The chair goes in begin_use_5 = 3236, -- door closes in_use = 2566, -- The machine does its work TODO: 2562, 2574 finish_use = 1172, -- The door is opened finish_use_2 = 4738, -- Patient comes out again, 4734 with shadow finish_use_3 = 4618, -- Stands up 3228 finish_use_4 = 2204, -- empty chair in finish_use_5 = 2274, -- empty door closed }, }, ["Doctor - Slack Male Patient"] = copy_north_to_south { -- Only for baldness north = { begin_use = 2232, -- empty door opened begin_use_2 = 2236, -- empty chair goes out begin_use_3 = 5146, -- Patient invited onto machine begin_use_4 = 5150, -- The chair goes in begin_use_5 = 2224, -- door closes in_use = 2566, -- The machine does its work TODO: 2562, 2574 finish_use = 2252, -- The door is opened finish_use_2 = 5154, -- Patient comes out again finish_use_3 = 622, -- Stands up finish_use_4 = 2204, -- empty chair in finish_use_5 = 2274, -- empty door closed }, }, } object.usage_animations = copy_north_to_south { north = {in_use = {["Handyman"] = {3498, 3484}}} } object.orientations = { north = { handyman_position = {0, -1}, use_position_secondary = {1, 0}, use_position = {0, -1}, footprint = { {-1, -1, only_passable = true, need_east_side = true, need_west_side = true}, {0, -1, only_passable = true, need_north_side = true}, {-2, 0, need_south_side = true, need_north_side = true}, {-1, 0}, {0, 0, complete_cell = true}, {1, 0, only_passable = true}, {-1, 1, need_east_side = true, need_west_side = true} }, smoke_position = {0, 0}, }, east = { handyman_position = {-1, 0}, use_position_secondary = {0, 1}, use_position = {-1, 0}, footprint = { {0, -2, need_east_side = true, need_west_side = true}, {-1, -1, only_passable = true, complete_cell = true}, {0, -1}, {1, -1, need_south_side = true, need_north_side = true}, {-1, 0, only_passable = true, need_west_side = true}, {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, smoke_position = {0, 0}, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.idle_animations.north, {-1.5, -0.8}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/cardio.lua000066400000000000000000000117371522247547500227370ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "cardio" object.thob = 13 object.research_fallback = 38 object.research_category = "diagnosis" object.name = _S.object.cardio object.tooltip = _S.tooltip.objects.cardio object.ticks = false object.build_preview_animation = 918 object.default_strength = 12 object.crashed_animation = 3308 object.show_in_town_map = true object.smoke_animation = 3432 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 648, } object.usage_animations = copy_north_to_south { north = { in_use = { ["Handyman"] = 890 }, finish_use = { ["Handyman"] = 894 }, }, } local kfp1, kfp2, kfp3, kfp4, kfp5, kfp6, kfp7 kfp1, kfp2, kfp3, kfp4 = {-10, -7, "px"}, {-13, -11, "px"}, {-17, -11, "px"}, {-21, -13, "px"} kfp5, kfp6, kfp7 = {-27, -14, "px"}, {-31, -16, "px"}, {-37, -17, "px"} TheApp.animation_manager:setStaffMarker(object.usage_animations.north.in_use.Handyman, 0, kfp1, 1, kfp2, 2, kfp3, 3, kfp4, 4, kfp5, 5, kfp6, 6, kfp7 ) kfp1, kfp2, kfp3, kfp4 = {-37, -17, "px"}, {-29, -15, "px"}, {-25, -15, "px"}, {-20, -13, "px"} kfp5, kfp6, kfp7 = {-19, -13, "px"}, {-18, -13, "px"}, {-12, -10, "px"} TheApp.animation_manager:setStaffMarker(object.usage_animations.north.finish_use.Handyman, 0, kfp1, 5, kfp1, 6, kfp2, 7, kfp3, 8, kfp4, 9, kfp5, 10, kfp6, 11, kfp7 ) object.multi_usage_animations = { ["Stripped Male Patient - Doctor"] = copy_north_to_south { north = { begin_use = 1018, in_use = 652, finish_use = 3282, secondary = { begin_use = 1030, in_use = 656, finish_use = 1030, }, }, }, ["Stripped Female Patient - Doctor"] = copy_north_to_south { north = { begin_use = 3008, in_use = 2840, finish_use = 4556, secondary = { begin_use = 1030, in_use = 656, finish_use = 1030, }, }, }, ["Stripped Male Patient 2 - Doctor"] = copy_north_to_south { north = { begin_use = 1018, in_use = 652, finish_use = 3282, secondary = { begin_use = 1030, in_use = 656, finish_use = 1030, }, }, }, ["Stripped Female Patient 2 - Doctor"] = copy_north_to_south { north = { begin_use = 3008, in_use = 2840, finish_use = 4556, secondary = { begin_use = 1030, in_use = 656, finish_use = 1030, }, }, }, ["Stripped Male Patient 3 - Doctor"] = copy_north_to_south { north = { begin_use = 1018, in_use = 652, finish_use = 3282, secondary = { begin_use = 1030, in_use = 656, finish_use = 1030, }, }, }, ["Stripped Female Patient 3 - Doctor"] = copy_north_to_south { north = { begin_use = 3008, in_use = 2840, finish_use = 4556, secondary = { begin_use = 1030, in_use = 656, finish_use = 1030, }, }, }, } object.orientations = { north = { footprint = { {-1, -1, complete_cell = true}, {-1, 0, complete_cell = true}, {1, -1, only_passable = true}, {0, -1, need_north_side = true}, {0, 0, only_passable = true} }, render_attach_position = {-1, 0}, use_position = {1, -1}, use_position_secondary = {0, 0}, added_handyman_animate_offset_while_in_use = {1, -1}, smoke_position = {0, 0}, }, east = { footprint = { {-1, -1, complete_cell = true}, {-1, 0}, {0, -1, complete_cell = true}, {0, 0, only_passable = true}, {-1, 1, only_passable = true} }, render_attach_position = {0, -1}, use_position = {-1, 1}, use_position_secondary = {0, 0}, added_handyman_animate_offset_while_in_use = {-1, 1}, smoke_position = {0, 0}, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.idle_animations.north, {-0.9, -0.9}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/cast_remover.lua000066400000000000000000000152201522247547500241560ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "cast_remover" object.thob = 24 object.research_category = "cure" object.research_fallback = 9 object.name = _S.object.cast_remover object.tooltip = _S.tooltip.objects.cast_remover object.ticks = false object.build_preview_animation = 5072 object.default_strength = 10 object.crashed_animation = 3388 object.show_in_town_map = true object.smoke_animation = 3468 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2492, } object.walk_in_to_use = true -- This is only considered by use_object, not multi_use_object. object.usage_animations = copy_north_to_south { north = { in_use = {["Handyman"] = 3514}, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setStaffMarker(object.usage_animations.north.in_use.Handyman, {-1, -38, "px"}) object.multi_usage_animations = { ["Alternate Male Patient - Nurse"] = copy_north_to_south { north = { begin_use = 2720, -- Patient invited onto machine begin_use_2 = 2696, -- Machine closes begin_use_3 = 2692, -- Nurse introduces the almighty black bucket in_use = 2688, -- The machine spits in the bucket finish_use = 3662, -- Nurse takes the bucket again (different tile than 3658!) finish_use_2 = 3658, -- The machine opens and the patient stands up }, }, ["Standard Female Patient - Nurse"] = copy_north_to_south { north = { begin_use = 4658, -- Patient invited onto machine begin_use_2 = 4666, -- Machine closes begin_use_3 = 4670, -- Nurse introduces the almighty black bucket in_use = 4674, -- The machine spits in the bucket finish_use = 5112, -- Nurse takes the bucket again finish_use_2 = 4682, -- The machine opens up and patient leaves }, }, } local kf1, kf2, kf3 = {-10, -5, "px"}, {-11, -7, "px"}, {-15, -12, "px"} local kf4, kf5, kf6 = {-20, -14, "px"}, {-26, -18, "px"}, {-31, -17, "px"} local kf7 = {-35, -17, "px"} anim_mgr:setPatientMarker({2720, 4658}, 0, kf1, 1, kf2, 2, kf3, 3, kf4, 4, kf5, 5, kf6, 6, kf7, 7, kf7) kf1 = {29, -18, "px"} anim_mgr:setStaffMarker({2720, 4658}, kf1) anim_mgr:setPatientMarker({2696, 4666}, kf7) anim_mgr:setStaffMarker({2696, 4666}, kf1) anim_mgr:setPatientMarker({2692, 4670}, kf7) local kf8, kf9, kf10 = {19, -20, "px"}, {11, -18, "px"}, {5, -13, "px"} local kf11, kf12, kf13 = {-4, -4, "px"}, {5, -4, "px"}, {14, -8, "px"} local kf14, kf15, kf16 = {19, -10, "px"}, {27, -17, "px"}, {29, -17, "px"} kf2, kf3, kf4, kf5 = {31, -19, "px"}, {22, -20, "px"}, {16, -23, "px"}, {11, -22, "px"} kf6 = {16, -20, "px"} anim_mgr:setStaffMarker({2692, 4670}, 0, kf2, 1, kf3, 2, kf4, 3, kf5, 6, kf5, 7, kf6, 8, kf8, 9, kf9, 10, kf10, 11, kf10, 12, kf11, 15, kf11, 16, kf12, 17, kf13, 18, kf14, 19, kf15, 20, kf16) anim_mgr:setPatientMarker({2688, 4676}, kf7) anim_mgr:setStaffMarker({2688, 4674}, kf1) anim_mgr:setPatientMarker({3662, 5112}, kf7) local kf17, kf18, kf19 = {17, -23, "px"}, {11, -21, "px"}, {15, -19, "px"} local kf20, kf21, kf22 = {19, -21, "px"}, {27, -19, "px"}, {31, -17, "px"} local kf23, kf24, kf25 = {38, -16, "px"}, {42, -13, "px"}, {49, -8, "px"} local kf26, kf27, kf28 = {52, -8, "px"}, {55, -7, "px"}, {59, -4, "px"} kf2, kf3, kf4, kf5 = {30, -17, "px"}, {27, -14, "px"}, {23, -15, "px"}, {20, -11, "px"} kf6, kf8, kf9, kf10 = {15, -9, "px"}, {10, -7, "px"}, {-2, -5, "px"}, {3, -7, "px"} kf11, kf12, kf13, kf14 = {8, -10, "px"}, {14, -13, "px"}, {22, -14, "px"}, {27, -16, "px"} kf15, kf16, kf1 = {31, -14, "px"}, {27, -20, "px"}, {24, -20, "px"} anim_mgr:setStaffMarker({3662, 5112}, 0, kf2, 1, kf3, 2, kf4, 3, kf5, 4, kf6, 5, kf8, 6, kf9, 9, kf9, 10, kf10, 11, kf11, 12, kf12, 13, kf13, 14, kf14, 15, kf15, 16, kf16, 17, kf1, 18, kf17, 20, kf18, 23, kf18, 24, kf19, 25, kf20, 26, kf1, 27, kf21, 28, kf22, 29, kf23, 30, kf24, 31, kf25, 32, kf26, 33, kf27, 34, kf28) kf2, kf3, kf4, kf5 = {-26, -16, "px"}, {-17, -11, "px"}, {-9, -10, "px"}, {-7, -9, "px"} anim_mgr:setPatientMarker({3658, 4682}, 0, kf7, 11, kf7, 12, kf2, 13, kf3, 14, kf4, 15, kf5) kf6 = {62, 1, "px"} anim_mgr:setStaffMarker({3658, 4682}, kf6) object.orientations = { north = { use_position = {0, 0}, handyman_position = {{0, -2}, {-1, -1}}, walk_in_tile = {0, -1}, use_position_secondary = {0, -1}, finish_use_position_secondary = {1, -1}, footprint = { {-1, -1, complete_cell = true}, {0, -1, only_passable = true}, {1, -1, only_passable = true}, {-1, 0, complete_cell = true}, {0, 0, only_passable = true, complete_cell = true}, {-1, 1, only_passable = true, need_west_side = true}, {-1, -2, only_passable = true, invisible = true, optional = true}, {-2, -1, only_passable = true, invisible = true, optional = true} }, render_attach_position = {-1, 1}, smoke_position = {0, 0}, }, east = { use_position = {0, 0}, handyman_position = {{-1, -1}, {-2, 0}}, walk_in_tile = {-1, 0}, use_position_secondary = {-1, 0}, finish_use_position_secondary = {-1, 1}, footprint = { {-1, -1}, {0, -1, complete_cell = true}, {1, -1, only_passable = true, need_north_side = true}, {-1, 0, only_passable = true}, {0, 0, only_passable = true, complete_cell = true}, {-1, 1, only_passable = true}, {-2, -1, only_passable = true, invisible = true, optional = true}, {-1, -2, only_passable = true, invisible = true, optional = true} }, early_list = true, smoke_position = {0, 0}, }, } anim_mgr:setPatientMarker(object.idle_animations.north, {-1.6, -0.8}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/dna_fixer.lua000066400000000000000000000065661522247547500234410ustar00rootroot00000000000000--[[ Copyright (c) 2011 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "dna_fixer" object.thob = 23 object.research_fallback = 8 object.research_category = "cure" object.name = _S.object.dna_fixer object.tooltip = _S.tooltip.objects.dna_fixer object.ticks = false object.build_preview_animation = 5070 object.default_strength = 7 object.crashed_animation = 3376 -- TODO correct? object.show_in_town_map = true object.smoke_animation = 3444 local function copy_north_to_south(t) t.south = t.north return t end -- 2350 another idle? -- 3848, 3850, 3852 sparks during transformation? -- TODO: No repair animation?? object.idle_animations = copy_north_to_south { north = 3840, } object.usage_animations = copy_north_to_south { north = { -- NB: SOME (not all) of the animations are provided for east rather than north. There the mirror / mirror_morph flag is used. begin_use = { ["Standard Female Patient"] = 3614, ["Standard Male Patient" ] = 3614, }, in_use = { -- TODO fix the object being displayed in front of the other anim ["Standard Female Patient"] = {"morph", 3594, 1150, mirror_morph = true, object_visible = true, length = 10}, -- 3594 (normal) morph to 1150 (mirrored) ["Standard Male Patient" ] = {"morph", 3594, 3618, mirror_morph = true, object_visible = true, length = 10}, -- 3594 (normal) morph to 3618 (mirrored) }, finish_use = { -- Patient leaves machine, mirrored ["Standard Female Patient"] = {1154, mirror = true}, ["Standard Male Patient" ] = {3622, mirror = true}, }, }, } object.orientations = { north = { footprint = { {-2, -1, complete_cell = true}, {-1, -1, complete_cell = true}, {0, -1}, {-2, 0, complete_cell = true}, {-1, 0}, {0, 0, need_south_side = true}, {-1, 1, only_passable = true} }, use_position = "passable", early_list = true, smoke_position = {0, 0} }, east = { footprint = { {-1, -2, complete_cell = true}, {0, -2, complete_cell = true}, {-1, -1, complete_cell = true}, {0, -1, complete_cell = true}, {-1, 0}, {0, 0}, {1, -1, only_passable = true} }, use_position = "passable", smoke_position = {0, 0} }, } -- TODO --local anim_mgr = TheApp.animation_manager --anim_mgr:setMarker(object.idle_animations.north, {-1.3, -1.2}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/electrolyser.lua000066400000000000000000000067271522247547500242150ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "electrolyser" object.thob = 46 object.research_category = "cure" object.research_fallback = 3 object.name = _S.object.electrolyser object.tooltip = _S.tooltip.objects.electrolyser object.ticks = false object.build_preview_animation = 930 object.default_strength = 10 object.crashed_animation = 3300 object.show_in_town_map = true object.smoke_animation = 3456 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 1262, } object.usage_animations = copy_north_to_south { north = { begin_use = { -- Patient invited onto machine ["Standard Female Patient"] = 1266, ["Standard Male Patient" ] = 1266, ["Handyman" ] = 3546, }, in_use = { -- Patient gets electrocuted ["Standard Female Patient"] = 1274, ["Standard Male Patient" ] = 1274, ["Handyman" ] = 3550, }, finish_use = { -- Patient sparks ["Standard Female Patient"] = 1278, ["Standard Male Patient" ] = 1278, ["Handyman" ] = 3554, }, finish_use_2 = { -- Hair falls off ["Standard Female Patient"] = 2940, ["Standard Male Patient" ] = 1286, }, finish_use_3 = { -- Patient leaves machine ["Standard Female Patient"] = 2944, ["Standard Male Patient" ] = 1294, }, }, } object.orientations = { north = { render_attach_position = {-1, -1}, footprint = { {-2, -2, need_west_side = true}, {-1, -2}, {0, -2, need_east_side = true}, {-2, -1, complete_cell = true}, {-1, -1}, {0, -1, complete_cell = true}, {-2, 0, complete_cell = true}, {-1, 0}, {0, 0, complete_cell = true}, {-1, 1, only_passable = true, need_south_side = true} }, use_position = "passable", smoke_position = {0, 0}, }, east = { render_attach_position = {-1, -1}, footprint = { {-2, -2, need_north_side = true}, {-1, -2}, {0, -2, complete_cell = true}, {-2, -1}, {-1, -1}, {0, -1, complete_cell = true}, {-2, 0, need_south_side = true}, {-1, 0}, {0, 0, complete_cell = true}, {1, -1, only_passable = true, need_east_side = true} }, use_position = "passable", smoke_position = {0, 0}, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.idle_animations.north, {-1.3, -1.2}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/hair_restorer.lua000066400000000000000000000057001522247547500243370ustar00rootroot00000000000000--[[ Copyright (c) 2010 Miika-Petteri Matikainen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "hair_restorer" object.thob = 25 object.research_category = "cure" object.research_fallback = 10 object.name = _S.object.hair_restorer object.tooltip = _S.tooltip.objects.hair_restorer object.ticks = false object.build_preview_animation = 5074 object.default_strength = 8 object.crashed_animation = 5116 object.show_in_town_map = true object.smoke_animation = 3460 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2070, } object.usage_animations = copy_north_to_south { north = { begin_use = { -- Patient sits down ["Slack Male Patient"] = 2074 }, begin_use_2 = { -- Hair cap goes down ["Slack Male Patient"] = 2078 }, in_use = { -- Use animation ["Slack Male Patient"] = 2082, ["Handyman"] = 568 }, finish_use = { -- Hair cap goes up and patient stands up ["Slack Male Patient"] = 2086 }, }, } object.orientations = { north = { use_position = {0, 1}, handyman_position = {0, -1}, added_handyman_animate_offset_while_in_use = {0, 2}, finish_use_position = {0, 1}, footprint = { {0, -1, only_passable = true}, {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_animate_from_use_position = true, smoke_position = {0, 0}, }, east = { use_position = {1, 0}, handyman_position = {-1, 0}, added_handyman_animate_offset_while_in_use = {2, 0}, finish_use_position = {1, 0}, footprint = { {-1, 0, only_passable = true}, {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_animate_from_use_position = true, smoke_position = {0, 0}, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.idle_animations.north, {-1.0, -1.1}) anim_mgr:setStaffMarker(object.usage_animations.north.in_use["Handyman"], {61, -36, "px"}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/inflator.lua000066400000000000000000000072111522247547500233040ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "inflator" object.thob = 9 object.research_category = "cure" object.research_fallback = 2 object.name = _S.object.inflator object.tooltip = _S.tooltip.objects.inflator object.ticks = false object.build_preview_animation = 908 object.default_strength = 10 object.crashed_animation = 3362 object.show_in_town_map = true object.smoke_animation = 3424 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 572, } object.multi_usage_animations = { ["Standard Male Patient - Doctor"] = copy_north_to_south { north = { begin_use = 464, -- Patient invited onto machine begin_use_2 = 478, -- Doctor pops patient's head begin_use_3 = 482, -- Doctor moves to other side of machine in_use = 496, -- Doctor re-inflates head (do not loop) finish_use = 576, -- Patients walks off machine }, }, } object.usage_animations = copy_north_to_south { north = {in_use = {["Handyman"] = 3480}} } object.orientations = { north = { handyman_position = {1, -1}, use_position = {0, 1}, use_position_secondary = {-1, 1}, finish_use_position = {1, 0}, finish_use_position_secondary = {1, -1}, footprint = { {-1, -1}, {0, -1, need_north_side = true}, {1, -1, only_passable = true}, {-1, 0}, {0, 0}, {1, 0, only_passable = true}, {-1, 1, only_passable = true}, {0, 1, only_passable = true}, {1, 1, only_passable = true} }, smoke_position = {0, 0}, }, east = { handyman_position = {-1, 1}, use_position = {1, 0}, use_position_secondary = {1, -1}, finish_use_position = {0, 1}, finish_use_position_secondary = {-1, 1}, footprint = { {-1, -1}, {0, -1}, {1, -1, only_passable = true}, {-1, 0, need_west_side = true}, {0, 0}, {1, 0, only_passable = true}, {-1, 1, only_passable = true}, {0, 1, only_passable = true}, {1, 1, only_passable = true} }, smoke_position = {0, 0}, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2 = {0, 1}, {0, 0} anim_mgr:setPatientMarker(object.multi_usage_animations["Standard Male Patient - Doctor"].north.begin_use, 0, kf1, 5, kf2) kf1, kf2 = {0, 0}, {1, 0} anim_mgr:setPatientMarker(object.multi_usage_animations["Standard Male Patient - Doctor"].north.finish_use, 1, kf1, 11, kf2) anim_mgr:setPatientMarker(object.idle_animations.north, {-0.9, -1.0}) anim_mgr:setStaffMarker(object.usage_animations.north.in_use.Handyman, {59, -3, "px"}) anim_mgr:setStaffMarker(object.usage_animations.south.in_use.Handyman, {59, -3, "px"}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/jelly_moulder.lua000066400000000000000000000114021522247547500243310ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "jelly_moulder" object.thob = 47 object.research_category = "cure" object.research_fallback = 12 object.name = _S.object.jelly_moulder object.tooltip = _S.tooltip.objects.jelly_moulder object.ticks = false object.build_preview_animation = 928 object.default_strength = 7 object.crashed_animation = 3312 object.show_in_town_map = true object.smoke_animation = 3440 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 1302, } -- Animations in order: -- male female -- idle 1302 -- patient enters room .. -- doctor goes to button, presses 1382 -- door opens 1310 -- patient climbs stairs 1334 3958 -- patient stands on top 1338 3962 (repeatable) NYI -- gets sucked in 1342 3966 -- floor opens 1314 -- floor stays open 1318 (repeatable) NYI -- skeleton rises 1322 -- door closes 1326 -- door stays closed 1330 (repeatable) NYI -- patient on skeleton 1346 3970 -- patient stands inside 1350 3974 (repeatable) NYI -- door opens 1354 3978 -- patient steps out 1358 3982 -- door closes 1306 object.walk_in_to_use = true -- This is only considered by use_object, not multi_use_object. object.usage_animations = copy_north_to_south { north = { in_use = {["Handyman"] = 3502}, -- (3508: duplicate with error?) }, } -- Note that for this particular machine the staff is the primary user, not the patient -- This was done in order to be able to let the patient be visible a while longer. object.multi_usage_animations = { ["Doctor - Standard Male Patient"] = copy_north_to_south { north = { begin_use = 1382, begin_use_2 = 1310, begin_use_3 = 1334, begin_use_4 = 1342, begin_use_5 = 1314, in_use = 1322, finish_use = 1326, finish_use_2 = 1346, finish_use_3 = 1354, finish_use_4 = 1358, finish_use_5 = 1306, }, }, ["Doctor - Standard Female Patient"] = copy_north_to_south { north = { begin_use = 1382, begin_use_2 = 1310, begin_use_3 = 3958, begin_use_4 = 3966, begin_use_5 = 1314, in_use = 1322, finish_use = 1326, finish_use_2 = 3970, finish_use_3 = 3978, finish_use_4 = 3982, finish_use_5 = 1306, }, }, } object.orientations = { north = { handyman_position = {2, -1}, walk_in_tile = {1, -1}, use_position = {-1, 1}, use_position_secondary = {1, -1}, finish_use_position = {-1, 1}, finish_use_position_secondary = {1, 0}, finish_use_orientation_secondary = "east", footprint = { {-1, -1}, {0, -1}, {1, -1, only_passable = true}, {-1, 0}, {0, 0, complete_cell = true}, {1, 0, only_passable = true}, {-1, 1, only_passable = true, need_east_side = true}, }, render_attach_position = {0, -1}, smoke_position = {0, 0}, }, east = { handyman_position = {-1, 2}, walk_in_tile = {-1, 1}, use_position = {1, -1}, use_position_secondary = {-1, 1}, finish_use_position = {1, -1}, finish_use_position_secondary = {0, 1}, finish_use_orientation_secondary = "south", footprint = { {-1, -1}, {0, -1}, {1, -1, only_passable = true, need_south_side = true}, {-1, 0}, {0, 0, complete_cell = true}, {-1, 1, only_passable = true}, {0, 1, only_passable = true}, }, render_attach_position = {-1, 0}, smoke_position = {0, 0}, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/operating_table.lua000066400000000000000000000104541522247547500246300ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "operating_table" object.slave_id = "operating_table_b" object.class = "OperatingTable" object.thob = 30 object.research_category = "cure" object.research_fallback = 19 -- Kidney beans object.name = _S.object.operating_table object.tooltip = _S.tooltip.objects.operating_table object.ticks = false object.build_preview_animation = 5080 object.default_strength = 8 object.crashed_animation = 3392 object.show_in_town_map = true object.smoke_animation = 3472 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2314, } object.usage_animations = copy_north_to_south { north = { in_use = { Handyman = 660, }, }, } object.multi_usage_animations = { ["Surgeon - Gowned Male Patient"] = copy_north_to_south { north = { begin_use = 2318, begin_use_2 = 2322, in_use = 2348, finish_use = 2346, finish_use_2 = 2338, secondary = { begin_use = 416, finish_use_2 = 416, }, }, }, ["Surgeon - Gowned Female Patient"] = copy_north_to_south { north = { begin_use = 2318, begin_use_2 = 2932, in_use = 2938, finish_use = 2936, finish_use_2 = 2338, secondary = { begin_use = 2886, finish_use_2 = 2886, }, }, }, } local anim_mgr = TheApp.animation_manager -- Slight hack: there seems to be no animation for a patient just lying on the -- table, so we take a duplicate of the animation for the patient leaving the -- table, and force its length to be 1, hence causing just the first frame to -- be used. anim_mgr:setAnimLength(2348, 1) anim_mgr:setAnimLength(2938, 1) -- Mood icon positions anim_mgr:setPatientMarker(object.idle_animations.north, {-1.59, -2.41}) anim_mgr:setStaffMarker({2318, 2322, 2348, 2346, 2338, 2318, 2932, 2938, 2936, 2238}, {-1, -2}) anim_mgr:setStaffMarker(object.usage_animations.north.in_use.Handyman, {29, -52, "px"}) object.orientations = { north = { use_position = {-1, -2}, use_position_secondary = {-2, -1}, footprint = { {-2, -1, only_passable = true}, {-1, -1, complete_cell = true}, {-1, -2, only_passable = true}, {0, -1, complete_cell = true}, {0, -2, complete_cell = true}, {1, 0, complete_cell = true}, {1, -2, complete_cell = true}, {1, -1, only_passable = true}, }, render_attach_position = {0, -1}, slave_position = {1, -1}, smoke_position = {0, 0}, }, east = { use_position = {-2, -1}, use_position_secondary = {-1, -2}, footprint = { {-1, -2, only_passable = true}, {-1, -1, complete_cell = true}, {-2, -1, only_passable = true}, {-1, 0, complete_cell = true}, {-2, 0, complete_cell = true}, {0, 1, complete_cell = true}, {-2, 1, complete_cell = true}, {-1, 1, only_passable = true}, {0, 0} }, slave_position = {-1, 1}, render_attach_position = {-1, 0}, smoke_position = {0, 0}, }, } class "OperatingTable" (Machine) ---@type OperatingTable local OperatingTable = _G["OperatingTable"] OperatingTable:slaveMixinClass() function OperatingTable:machineUsed(...) -- Only if the table is the primary/master of the pair if not self.master then return Machine.machineUsed(self, ...) end end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/operating_table_b.lua000066400000000000000000000041601522247547500251260ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "operating_table_b" object.class = "OperatingTable" object.thob = 12 object.name = _S.object.operating_table object.tooltip = _S.tooltip.objects.operating_table object.ticks = false object.crashed_animation = 0 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2310, } object.usage_animations = copy_north_to_south { north = { begin_use = { Surgeon = 2306 }, begin_use_2 = { Surgeon = 2330 }, in_use = { Surgeon = {4890, 2326} }, finish_use = { Surgeon = 2334 }, finish_use_2 = { Surgeon = 2342 }, } } local anim_mgr = TheApp.animation_manager local kf1, kf2 = {0, 0}, {-0.7, -0.4} anim_mgr:setStaffMarker({2306, 2342}, kf1) anim_mgr:setStaffMarker(2330, kf1, kf2) anim_mgr:setStaffMarker({4890, 2326}, kf2) anim_mgr:setStaffMarker(2334, kf2, kf1) object.orientations = { north = { use_position = {0, 0}, footprint = {}, }, east = { use_position = {0, 0}, footprint = {}, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/scanner.lua000066400000000000000000000210341522247547500231160ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "scanner" object.thob = 14 object.research_category = "diagnosis" object.research_fallback = 36 object.name = _S.object.scanner object.tooltip = _S.tooltip.objects.scanner object.ticks = false object.build_preview_animation = 920 object.default_strength = 12 object.crashed_animation = 3316 object.show_in_town_map = true object.smoke_animation = 3428 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 1398, } --[[This is incomplete as the scanner and console should be in sync with each other i.e. Dr sits down and pushes some buttons and the scanner scans, the he pushes the lever and it will tip back etc.]] object.usage_animations = copy_north_to_south { north = { begin_use = { -- goes down ["Transparent Male Patient"] = 874, ["Chewbacca Patient"] = 1176, ["Stripped Male Patient"] = 1402, ["Stripped Female Patient"] = 1442, ["Stripped Male Patient 2"] = 1406, ["Stripped Female Patient 2"] = 1446, ["Stripped Male Patient 3"] = 1402, ["Stripped Female Patient 3"] = 1442, ["Elvis Patient"] = 4914, ["Transparent Female Patient"] = 4926, ["Invisible Patient"] = 4942, ["Alternate Male Patient"] = 4958, ["Slack Male Patient"] = 4974, ["Slack Female Patient"] = 5158, }, begin_use_2 = { -- stays down ["Transparent Male Patient"] = 874, ["Chewbacca Patient"] = 1176, ["Stripped Male Patient"] = 1402, ["Stripped Female Patient"] = 1442, ["Stripped Male Patient 2"] = 1410, ["Stripped Female Patient 2"] = 1450, ["Stripped Male Patient 3"] = 1402, ["Stripped Female Patient 3"] = 1442, ["Elvis Patient"] = 4914, ["Transparent Female Patient"] = 4926, ["Invisible Patient"] = 4942, ["Alternate Male Patient"] = 4958, ["Slack Male Patient"] = 4974, ["Slack Female Patient"] = 5158, ["Handyman"] = 564, }, begin_use_3 = { -- goes up ["Transparent Male Patient"] = 878, ["Chewbacca Patient"] = 1180, ["Stripped Male Patient"] = 1406, ["Stripped Female Patient"] = 1446, ["Stripped Male Patient 2"] = 1414, ["Stripped Female Patient 2"] = 1454, ["Stripped Male Patient 3"] = 1418, ["Stripped Female Patient 3"] = 1458, ["Elvis Patient"] = 4916, ["Transparent Female Patient"] = 4930, ["Invisible Patient"] = 4946, ["Alternate Male Patient"] = 4962, ["Slack Male Patient"] = 4978, ["Slack Female Patient"] = 5162, }, begin_use_4 = { -- stays up ["Transparent Male Patient"] = 886, ["Chewbacca Patient"] = 1188, ["Stripped Male Patient"] = 1410, ["Stripped Female Patient"] = 1450, ["Stripped Male Patient 2"] = 1402, ["Stripped Female Patient 2"] = 1442, ["Stripped Male Patient 3"] = 1422, ["Stripped Female Patient 3"] = 1462, ["Elvis Patient"] = 4922, ["Transparent Female Patient"] = 4938, ["Invisible Patient"] = 4954, ["Alternate Male Patient"] = 4970, ["Slack Male Patient"] = 4986, ["Slack Female Patient"] = 5166, }, begin_use_5 = { -- goes down/go back ["Transparent Male Patient"] = 882, ["Chewbacca Patient"] = 1184, ["Stripped Male Patient"] = 1414, ["Stripped Female Patient"] = 1454, ["Stripped Male Patient 2"] = 1418, ["Stripped Female Patient 2"] = 1458, ["Stripped Male Patient 3"] = 1426, ["Stripped Female Patient 3"] = 1466, ["Elvis Patient"] = 4918, ["Transparent Female Patient"] = 4934, ["Invisible Patient"] = 4950, ["Alternate Male Patient"] = 4966, ["Slack Male Patient"] = 4982, ["Slack Female Patient"] = 5170, }, finish_use = { -- stays down/stay back ["Transparent Male Patient"] = 874, ["Chewbacca Patient"] = 1176, ["Stripped Male Patient"] = 1402, ["Stripped Female Patient"] = 1442, ["Stripped Male Patient 2"] = 1422, ["Stripped Female Patient 2"] = 1462, ["Stripped Male Patient 3"] = 1430, ["Stripped Female Patient 3"] = 1470, ["Elvis Patient"] = 4914, ["Transparent Female Patient"] = 4926, ["Invisible Patient"] = 4942, ["Alternate Male Patient"] = 4958, ["Slack Male Patient"] = 4974, ["Slack Female Patient"] = 5158, }, finish_use_2 = { -- goes up/forwards scan ["Transparent Male Patient"] = 878, ["Chewbacca Patient"] = 1180, ["Stripped Male Patient"] = 1406, ["Stripped Female Patient"] = 1446, ["Stripped Male Patient 2"] = 1426, ["Stripped Female Patient 2"] = 1466, ["Stripped Male Patient 3"] = 1434, ["Stripped Female Patient 3"] = 1474, ["Elvis Patient"] = 4916, ["Transparent Female Patient"] = 4930, ["Invisible Patient"] = 4946, ["Alternate Male Patient"] = 4962, ["Slack Male Patient"] = 4978, ["Slack Female Patient"] = 5162, }, finish_use_3 = { -- goes down/stay forwards ["Transparent Male Patient"] = 886, ["Chewbacca Patient"] = 1188, ["Stripped Male Patient"] = 1410, ["Stripped Female Patient"] = 1450, ["Stripped Male Patient 2"] = 1430, ["Stripped Female Patient 2"] = 1470, ["Stripped Male Patient 3"] = 1422, ["Stripped Female Patient 3"] = 1462, ["Elvis Patient"] = 4922, ["Transparent Female Patient"] = 4938, ["Invisible Patient"] = 4954, ["Alternate Male Patient"] = 4970, ["Slack Male Patient"] = 4986, ["Slack Female Patient"] = 5166, }, finish_use_4 = { -- stays down/reverse scan ["Transparent Male Patient"] = 882, ["Chewbacca Patient"] = 1184, ["Stripped Male Patient"] = 1414, ["Stripped Female Patient"] = 1454, ["Stripped Male Patient 2"] = 1434, ["Stripped Female Patient 2"] = 1474, ["Stripped Male Patient 3"] = 1422, ["Stripped Female Patient 3"] = 1462, ["Elvis Patient"] = 4918, ["Transparent Female Patient"] = 4934, ["Invisible Patient"] = 4950, ["Alternate Male Patient"] = 4966, ["Slack Male Patient"] = 4982, ["Slack Female Patient"] = 5170, }, finish_use_5 = { -- goes up/tips forward ["Transparent Male Patient"] = 874, ["Chewbacca Patient"] = 1176, ["Stripped Male Patient"] = 1402, ["Stripped Female Patient"] = 1442, ["Stripped Male Patient 2"] = 1438, ["Stripped Female Patient 2"] = 1478, ["Stripped Male Patient 3"] = 1438, ["Stripped Female Patient 3"] = 1478, ["Elvis Patient"] = 4914, ["Transparent Female Patient"] = 4926, ["Invisible Patient"] = 4942, ["Alternate Male Patient"] = 4958, ["Slack Male Patient"] = 4974, ["Slack Female Patient"] = 5158, }, }, } object.orientations = { north = { use_position = {0, 0}, footprint = { {-2, -1}, {-1, -1}, {0, -1}, {-2, 0}, {-1, 0, need_south_side = true}, {0, 0, complete_cell = true, only_passable = true} }, render_attach_position = {0, -1}, smoke_position = {0, 0}, }, east = { use_position = {0, 0}, footprint = { {-1, -2} , {0, -2}, {-1, -1}, {0, -1, need_east_side = true}, {-1, 0}, {0, 0, complete_cell = true, only_passable = true} }, render_attach_position = {-1, 0}, smoke_position = {0, 0}, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.idle_animations.north, {-1.1, -1.1}) anim_mgr:setStaffMarker(object.usage_animations.north.begin_use_2["Handyman"], {-3, -3, "px"}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/shower.lua000066400000000000000000000057671522247547500230130ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "shower" object.thob = 54 object.research_category = "cure" object.research_fallback = 6 object.name = _S.object.shower object.tooltip = _S.tooltip.objects.shower object.ticks = false object.build_preview_animation = 5100 object.default_strength = 10 object.crashed_animation = 3380 object.show_in_town_map = true object.smoke_animation = 3448 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2014, } object.usage_animations = copy_north_to_south { north = { begin_use = { ["Standard Male Patient"] = 2018, ["Standard Female Patient"] = 2852, ["Handyman"] = 3534, }, in_use = { ["Standard Male Patient"] = 2150, ["Standard Female Patient"] = 2856, ["Handyman"] = 3538, }, finish_use = { ["Standard Male Patient"] = 2026, ["Standard Female Patient"] = 2860, ["Handyman"] = 3542, }, }, } object.orientations = { north = { use_position = {-1, 1}, footprint = { {-2, -2, complete_cell = true}, {-1, -2, complete_cell = true}, {0, -2}, {-2, -1, complete_cell = true}, {-1, -1, complete_cell = true}, {0, -1, complete_cell = true}, {-2, 0, complete_cell = true}, {-1, 0, complete_cell = true}, {0, 0, complete_cell = true}, {-1, 1, only_passable = true}, }, render_attach_position = {-1, 0}, smoke_position = {0, 0}, }, east = { use_position = {1, -1}, footprint = { {-2, -2, complete_cell = true}, {-1, -2, complete_cell = true}, {0, -2, complete_cell = true}, {-2, -1, complete_cell = true}, {-1, -1, complete_cell = true}, {0, -1, complete_cell = true}, {1, -1, only_passable = true}, {-2, 0}, {-1, 0, complete_cell = true}, {0, 0, complete_cell = true}, }, render_attach_position = {-1, 0}, smoke_position = {0, 0}, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/slicer.lua000066400000000000000000000055571522247547500227620ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "slicer" object.thob = 26 object.research_category = "cure" object.research_fallback = 7 object.name = _S.object.slicer object.tooltip = _S.tooltip.objects.slicer object.ticks = false object.build_preview_animation = 932 object.default_strength = 8 object.crashed_animation = 3400 object.show_in_town_map = true object.smoke_animation = 3464 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 1386, } object.usage_animations = copy_north_to_south { north = { in_use = {["Handyman"] = 3490}, }, } object.multi_usage_animations = { ["Slack Male Patient - Doctor"] = copy_north_to_south { north = { in_use = 1390, -- Patient gets the tongue drawn out }, }, ["Slack Female Patient - Doctor"] = copy_north_to_south { north = { in_use = 1394, -- Patient gets the tongue drawn out }, }, } object.orientations = { north = { footprint = { {-1, -1, only_passable = true}, {-1, 0}, {-1, 1}, {0, -1, only_passable = true}, {0, 0, only_passable = true, need_east_side = true}, {0, 1, only_passable = true}, }, use_position = {0, 0}, handyman_position = {1, -1}, use_position_secondary = {-1, -1}, smoke_position = {0, 0}, }, east = { footprint = { {-1, -1, only_passable = true}, {0, -1}, {1, -1}, {-1, 0, only_passable = true}, {0, 0, only_passable = true, need_south_side = true}, {1, 0, only_passable = true}, }, use_position = {0, 0}, handyman_position = {-1, 1}, use_position_secondary = {-1, -1}, early_list = true, smoke_position = {0, 0}, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.idle_animations.north, {-1.2, -0.8}) anim_mgr:setStaffMarker(3490, {28, -20, "px"}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/ultrascanner.lua000066400000000000000000000074411522247547500241740ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "ultrascanner" object.thob = 22 object.research_category = "diagnosis" object.research_fallback = 40 object.name = _S.object.ultrascanner object.tooltip = _S.tooltip.objects.ultrascanner object.ticks = false object.build_preview_animation = 5068 object.default_strength = 12 object.crashed_animation = 3396 object.show_in_town_map = true object.smoke_animation = 3436 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 1556, --1556 or 3844? } object.usage_animations = copy_north_to_south { north = { in_use = { ["Handyman"] = 664, }, }, } object.multi_usage_animations = { ["Standard Male Patient - Doctor"] = copy_north_to_south { north = { begin_use = 1560, -- Patient climbs to the bed begin_use_2 = 1568, -- Doctor takes the instrument in_use = 1614, -- Doctor examines the patient finish_use = 1574, -- Doctor puts away the instrument finish_use_2 = 1610, -- Patient climbs out of the bed }, }, ["Standard Female Patient - Doctor"] = copy_north_to_south { north = { begin_use = 3084, -- Patient climbs to the bed begin_use_2 = 3092, -- Doctor takes the instrument in_use = 3096, -- Doctor examines the patient finish_use = 3100, -- Doctor puts away the instrument finish_use_2 = 1618, -- Patient climbs out of the bed }, }, } object.orientations = { north = { footprint = { {-1, -1, need_west_side = true}, {0, -1, complete_cell = true}, {1, -1, only_passable = true, complete_cell = true}, {-1, 0, only_passable =true, need_west_side = true}, {0, 0}, {1, 0, only_passable = true}, {-1, 1, only_passable = true, need_west_side = true}, {0, 1, only_passable = true} }, use_position = {-1, 0, need_west_side = true}, use_position_secondary = {1, -1}, handyman_position = {2, 0}, smoke_position = {0, 0}, }, east = { render_attach_position = { {0, 0}, {1, 0}, {-1, 1} }, footprint = { {-1, -1, complete_cell = true}, {0, -1, only_passable = true, need_north_side = true}, {1, -1, only_passable = true, need_north_side = true}, {-1, 0, complete_cell = true}, {0, 0}, {1, 0, only_passable = true}, {-1, 1, only_passable = true, complete_cell = true}, {0, 1, only_passable = true} }, use_position = {0, -1}, use_position_secondary = {-1, 1}, handyman_position = {0, 2}, smoke_position = {0, 0}, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.idle_animations.north, {-0.9, -0.9}) anim_mgr:setStaffMarker(object.usage_animations.north.in_use.Handyman, {60, -4, "px"}) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/machines/x_ray.lua000066400000000000000000000077511522247547500226210ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "x_ray" object.thob = 27 object.research_category = "diagnosis" object.research_fallback = 39 object.name = _S.object.x_ray object.tooltip = _S.tooltip.objects.x_ray object.ticks = false object.build_preview_animation = 5076 object.default_strength = 12 object.crashed_animation = 3384 object.show_in_town_map = true object.smoke_animation = 3440 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 1988, } object.usage_animations = copy_north_to_south { north = { begin_use = { -- Patient walks into X-ray ["Standard Male Patient"] = 1964, ["Standard Female Patient"] = 2948, ["Slack Female Patient"] = 2948, ["Slack Male Patient"] = 5178, ["Elvis Patient"] = 5120, ["Chewbacca Patient"] = 5132, ["Invisible Patient"] = 614, ["Handyman"] = 3558, }, in_use = { -- Radiation ["Standard Male Patient"] = 1960, ["Standard Female Patient"] = 2952, ["Slack Female Patient"] = 2952, ["Slack Male Patient"] = 5174, ["Elvis Patient"] = 5128, ["Chewbacca Patient"] = 610, ["Invisible Patient"] = 5140, ["Handyman"] = 3562, }, finish_use = { -- Patient walks away ["Standard Male Patient"] = 1992, ["Standard Female Patient"] = 2956, ["Slack Female Patient"] = 2956, ["Slack Male Patient"] = 5182, ["Elvis Patient"] = 5124, ["Chewbacca Patient"] = 5136, -- or 5138? ["Invisible Patient"] = 618, ["Handyman"] = 3562, -- TODO: Another glitch in the original. This sprite is missing. }, }, } object.orientations = { north = { use_position = {1, -1}, render_attach_position = {-1, -1}, footprint = { {-2, -2}, {-1, -2}, {-2, -1}, {-1, -1}, {0, -1}, {1, -1, only_passable = true}, {-2, 0}, {-1, 0}, {0, 0} }, smoke_position = {0, 0}, }, east = { use_position = {-1, 1}, render_attach_position = {-1, -1}, footprint = { {-2, -2}, {-1, -2}, {0, -2}, {-2, -1}, {-1, -1}, {0, -1}, {-1, 0}, {0, 0}, {-1, 1, only_passable = true} }, smoke_position = {0, 0}, }, } local anim_mgr = TheApp.animation_manager anim_mgr:setPatientMarker(object.idle_animations.north, {-2, -2}) local kf0 = {59, -4, "px"} local kf1 = {55, -8, "px"} local kf2 = {51, -8, "px"} local kf3 = {47, -11, "px"} local kf4 = {43, -12, "px"} local kf5 = {43, -13, "px"} local kf6 = {39, -15, "px"} local kf7 = {34, -18, "px"} local kf8 = {31, -20, "px"} local kf9 = {29, -21, "px"} local kf10 = {24, -23, "px"} local kf11 = {18, -27, "px"} local kf12 = {15, -33, "px"} local kf13 = {14, -34, "px"} local kf14 = {6, -36, "px"} anim_mgr:setStaffMarker(3558, 0, kf0, 1, kf1, 2, kf2, 3, kf3, 4, kf4, 5, kf5, 6, kf6, 7, kf7, 8, kf8, 9, kf9, 10, kf10, 11, kf11, 12, kf12, 13, kf13, 14, kf14) anim_mgr:setStaffMarker(3562, kf14) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/op_sink1.lua000066400000000000000000000043711522247547500214260ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "op_sink1" object.slave_id = "op_sink2" object.class = "OperatingSink" object.thob = 33 object.name = _S.object.op_sink1 object.tooltip = _S.tooltip.objects.op_sink1 object.ticks = false object.walk_in_to_use = true object.show_in_town_map = true object.locked_to_wall = { -- permittable wall -> orientation north = "east", west = "north", } local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2354, } object.usage_animations = copy_north_to_south { north = { in_use = { Surgeon = 2362 } }, } object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, -1, complete_cell = true}, {1, 0, only_passable = true, invisible = true}, }, use_position = {1, 0}, slave_position = {0, -1}, }, east = { footprint = { {0, 0, complete_cell = true}, {-1, 0, complete_cell = true}, {0, 1, only_passable = true, invisible = true}, }, use_position = {0, 1}, slave_position = {-1, 0}, }, } class "OperatingSink" (Object) ---@type OperatingSink local OperatingSink = _G["OperatingSink"] OperatingSink:slaveMixinClass() return object CorsixTH-0.70.0/CorsixTH/Lua/objects/op_sink2.lua000066400000000000000000000030141522247547500214200ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "op_sink2" object.class = "OperatingSink" object.thob = 34 object.name = _S.object.op_sink2 object.tooltip = _S.tooltip.objects.op_sink2 object.ticks = false object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2358, } object.orientations = { north = { footprint = {}, }, east = { footprint = {}, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/pharmacy_cabinet.lua000066400000000000000000000062331522247547500231730ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "pharmacy_cabinet" object.thob = 39 object.research_category = "cure" object.research_fallback = 13 -- Sleeping illness object.name = _S.object.pharmacy_cabinet object.tooltip = _S.tooltip.objects.pharmacy_cabinet object.ticks = false object.build_preview_animation = 5088 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 1578, } local function anim_set(begin,finish,idle,in_use,idle2) return { begin_use = 1590, -- Nurse-only begin_use_2 = 1594, -- Nurse-only begin_use_3 = begin, in_use = 1666, -- Nurse-only finish_use = finish, finish_use_2 = 1598, -- Nurse-only secondary = { begin_use = idle, begin_use_2 = idle, in_use = in_use, finish_use_2 = idle2 or idle, }, } end object.multi_usage_animations = { ["Nurse - Standard Male Patient"] = copy_north_to_south { north = anim_set(1630, 1638, 26, 1662), }, ["Nurse - Standard Female Patient"] = copy_north_to_south { north = anim_set(3104, 3112, 10, 3108), }, ["Nurse - Invisible Patient"] = copy_north_to_south { north = anim_set(1704, 1638, 1842, {"morph", 1700, 1662, layers = "cured_layers"}, 26), }, ["Nurse - Transparent Male Patient"] = copy_north_to_south { north = anim_set(1686, 1638, 1074, {"morph", 1694, 1662}, 26), }, ["Nurse - Transparent Female Patient"] = copy_north_to_south { north = anim_set(3120, 3112, 3022, {"morph", 3124, 3108}, 10), }, } object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true}, {0, 2, only_passable = true}, {-1, 1, only_passable = true} }, use_position = {0, 1}, use_position_secondary = {-1, 1}, use_animate_from_use_position = true, }, east = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true}, {2, 0, only_passable = true}, {1, -1, only_passable = true} }, use_position = {1, 0}, use_position_secondary = {1, -1}, use_animate_from_use_position = true, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/plant.lua000066400000000000000000000256161522247547500210260ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "plant" object.thob = 45 object.name = _S.object.plant object.class = "Plant" object.tooltip = _S.tooltip.objects.plant object.ticks = false object.corridor_object = 7 object.build_preview_animation = 934 object.idle_animations = { north = 1950, south = 1950, east = 1950, west = 1950, } object.usage_animations = { north = { begin_use = { ["Handyman"] = {1972, object_visible = true} }, in_use = { ["Handyman"] = {1980, object_visible = true} }, }, east = { begin_use = { ["Handyman"] = {1974, object_visible = true} }, in_use = { ["Handyman"] = {1982, object_visible = true} }, }, } object.orientations = { north = { footprint = { {0, 0, complete_cell = true} }, use_animate_from_use_position = true }, east = { footprint = { {0, 0, complete_cell = true} }, use_animate_from_use_position = true }, south = { footprint = { {0, 0, complete_cell = true} }, use_animate_from_use_position = true }, west = { footprint = { {0, 0, complete_cell = true} }, use_animate_from_use_position = true }, } local kf1, kf2 = {-1, 1, "px"}, {4, -1, "px"} local anim_mgr = TheApp.animation_manager anim_mgr:setStaffMarker(1972, 0, kf1, 12, kf1, 13, kf2) local kf3, kf4 = {2, -1, "px"}, {6, 0, "px"} anim_mgr:setStaffMarker(1974, 0, kf1, 19, kf1, 20, kf3, 21, kf4) -- For litter: put broom back 356 -- take broom out: 1874 -- swoop: 1878 -- Frames for plant states are -- * healthy: 1950 -- * drooping1: 1951 -- * drooping2: 1952 -- * dying: 1953 -- * dead: 1954 -- TH uses rough 50 days between state transitions -- to approximate that same average rate at ideal temperatures local days_between_states = 64 -- days before we reannouncing our watering status if we were unreachable local days_unreachable = 10 --! An `Object` which needs watering now and then. class "Plant" (Object) ---@type Plant local Plant = _G["Plant"] function Plant:Plant(hospital, object_type, x, y, direction, etc) -- It doesn't matter which direction the plant is facing. It will be rotated so that an approaching -- handyman uses the correct usage animation when appropriate. self:Object(hospital, object_type, x, y, direction, etc) self.current_state = 0 self.base_frame = self.th:getFrame() self.days_left = days_between_states self.unreachable = false self.unreachable_counter = days_unreachable self.phases = 5 end --! Goes one step forward (or backward) in the states of the plant. --!param restoring (boolean) If true the plant improves its health instead of drooping. function Plant:setNextState(restoring) if restoring then if self.current_state > 0 then self.current_state = self.current_state - 1 end elseif self.current_state < self.phases - 1 then self.current_state = self.current_state + 1 end self.th:setFrame(self.base_frame + self.current_state) end local plant_restoring; plant_restoring = permanent"plant_restoring"( function(plant) local phase = plant.phase plant:setNextState(true) if phase > 0 then plant.phase = phase - 1 plant:setTimer(math.floor(14 / plant.cycles), plant_restoring) else plant.ticks = false end end) --! Restores the plant to its initial state. (i.e. healthy) function Plant:restoreToFullHealth() self.ticks = true self.phase = self.current_state self.cycles = self.current_state self:setTimer((self.direction == "south" or self.direction == "east") and 35 or 20, plant_restoring) self.days_left = days_between_states local taskIndex = self.hospital:getIndexOfTask(self.tile_x, self.tile_y, "watering") if taskIndex ~= -1 then self.hospital:removeHandymanTask(taskIndex, "watering") end end --! Overridden since the plant animates slowly over time function Plant:tick() local timer = self.timer_time if timer then timer = timer - 1 if timer == 0 then self.timer_time = nil local timer_function = self.timer_function self.timer_function = nil timer_function(self) else self.timer_time = timer end end end --! Returns whether the plant is in need of watering right now. function Plant:needsWatering() return self.current_state ~= 0 end --! When the plant needs water it periodically calls for a nearby handyman. function Plant:callForWatering() -- If self.ticks is true it means that a handyman is currently watering the plant. -- If there are no tiles to water from, just die. if not self.ticks then if not self.unreachable then local index = self.hospital:getIndexOfTask(self.tile_x, self.tile_y, "watering") if index == -1 then local call = self.world.dispatcher:callForWatering(self) self.hospital:addHandymanTask(self, "watering", self.current_state + 1, self.tile_x, self.tile_y, call) else self.hospital:modifyHandymanTaskPriority(index, self.current_state + 1, "watering") end end -- If very thirsty, make user aware of it. if self.current_state > 1 and not self.plant_announced then self.hospital:giveAdvice({ _A.warnings.plants_thirsty }) self.plant_announced = true end end end --! When a handyman is about to be summoned this function queues the complete set of actions necessary, -- including entering and leaving any room involved. It also queues a meander action at the end. -- Note that if there are more plants that need watering inside the room he will continue to water -- those too before leaving. --!param handyman (Staff) The handyman that is about to get the actions. function Plant:createHandymanActions(handyman) local this_room = self:getRoom() local handyman_room = handyman:getRoom() local ux, uy = self:getBestUsageTileXY(handyman.tile_x, handyman.tile_y) if not ux or not uy then -- The plant cannot be reached. self.unreachable = true self.unreachable_counter = days_unreachable local index = self.hospital:getIndexOfTask(self.tile_x, self.tile_y, "watering") if index ~= -1 then self.hospital:removeHandymanTask(index, "watering") end -- Release Handyman handyman:setCallCompleted() if handyman_room then handyman:setNextAction(handyman_room:createLeaveAction()) handyman:queueAction(MeanderAction()) else handyman:setNextAction(MeanderAction()) end return end self.reserved_for = handyman local walk_action = WalkAction(ux, uy):setIsEntering(this_room and true or false) if handyman_room and handyman_room ~= this_room then handyman:setNextAction(handyman_room:createLeaveAction()) handyman:queueAction(walk_action) else handyman:setNextAction(walk_action) end handyman:queueAction(UseObjectAction(self):enableWateringPlant()) CallsDispatcher.queueCallCheckpointAction(handyman) handyman:queueAction(AnswerCallAction()) end --! When a handyman should go to the plant he should approach it from the -- closest reachable tile within hospital buildings. --!param from_x (integer) The x coordinate of tile to calculate from. --!param from_y (integer) The y coordinate of tile to calculate from. function Plant:getBestUsageTileXY(from_x, from_y) local access_points = {{dx = 0, dy = 1, direction = "north"}, {dx = 0, dy = -1, direction = "south"}, {dx = -1, dy = 0, direction = "east"}, {dx = 1, dy = 0, direction = "west"}} local shortest local best_point = nil local room_here = self:getRoom() for _, point in ipairs(access_points) do local dest_x, dest_y = self.tile_x + point.dx, self.tile_y + point.dy local room_there = self.world:getRoom(dest_x, dest_y) if room_here == room_there and self.hospital:isInHospital(dest_x, dest_y) then local distance = self.world:getPathDistance(from_x, from_y, dest_x, dest_y) if distance and (not best_point or shortest > distance) then best_point = point shortest = distance end end end if best_point then self.direction = best_point.direction return self.tile_x + best_point.dx, self.tile_y + best_point.dy else self.direction = "north" return end end --! Counts down to eventually let the plant droop. function Plant:tickDay() if not self.picked_up then -- The plant will need water a little more often if it is hot where it is. local temp = self.world.map.th:getCellTemperature(self.tile_x, self.tile_y) self.days_left = self.days_left - (1 + temp) if self.days_left < 1 then self.days_left = days_between_states self:setNextState() elseif not self.reserved_for and self:needsWatering() and not self.unreachable then self:callForWatering() end if self.unreachable then self.unreachable_counter = self.unreachable_counter - 1 if self.unreachable_counter == 0 then self.unreachable = false end end end end --! The plant needs to retain its animation and reset its unreachable flag when being moved function Plant:onClick(ui, button) if button == "right" then self.unreachable = false self.picked_up = true self.current_frame = self.base_frame + self.current_state end Object.onClick(self, ui, button) end --! Plant health/state should be used on evaluations of pleasantness --! returns (integer) score of this plants health, 1 to 5 (best) function Plant:isPleasingFactor() return self.phases - self.current_state end --! Check if a plant is dying or about to start dying function Plant:isDying() if self.current_state ~= 0 or self.days_left < 3 then return true end return false end function Plant:resetUsageAndReservaton() local index = self.hospital:getIndexOfTask(self.tile_x, self.tile_y, "watering") if index ~= -1 then self.hospital:removeHandymanTask(index, "watering") end Object.resetUsageAndReservaton(self) end function Plant:afterLoad(old, new) if old < 52 then self.hospital = self.world:getLocalPlayerHospital() end if old < 150 then self.phases = 5 end Object.afterLoad(self, old, new) end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/pool_table.lua000066400000000000000000000066421522247547500220260ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "pool_table" object.thob = 10 object.name = _S.object.pool_table object.tooltip = _S.tooltip.objects.pool_table object.ticks = false object.build_preview_animation = 5058 object.idle_animations = { north = 2130, south = 2130, } -- There are five animations, for each the doctor and the handyman. -- The nurses don't like pool, apparently. -- -- anim | doctor | handyman -- ----------------------------- -- aim | 1230 | 3924 -- shoot | 1234 | 3928 -- chalk | 1238 | 3932 -- take cue | 1244 | 3936 -- leave cue | 1248 | 3940 -- -- the playing procedure is: take cue, chalk, aim, shoot, leave cue object.usage_animations = { north = { begin_use = { Doctor = 1244, Handyman = 3936, }, begin_use_2 = { Doctor = 1238, Handyman = 3932, }, begin_use_3 = { Doctor = 1230, Handyman = 3924, }, in_use = { Doctor = 1234, Handyman = 3928, }, finish_use = { Doctor = 1248, Handyman = 3940, }, }, south = { -- duplicate of north begin_use = { Doctor = 1244, Handyman = 3936, }, begin_use_2 = { Doctor = 1238, Handyman = 3932, }, begin_use_3 = { Doctor = 1230, Handyman = 3924, }, in_use = { Doctor = 1234, Handyman = 3928, }, finish_use = { Doctor = 1248, Handyman = 3940, }, }, } object.orientations = { north = { footprint = { {-1, -2, only_passable = true}, {0, -2, need_north_side = true},{1, -2, only_passable = true}, {-1, -1, only_passable = true}, {0, -1}, {1, -1, only_passable = true}, {-1, 0, only_passable = true}, {0, 0, only_passable = true, complete_cell = true}, {1, 0, only_passable = true} }, render_attach_position = {-1, 0}, use_position = {0, 0}, }, east = { footprint = {{-2, -1, only_passable = true}, {-1, -1, only_passable = true}, {0, -1, only_passable = true}, {-2, 0, complete_cell = true}, {-1, 0}, {0, 0, only_passable = true, complete_cell = true}, {-2, 1, only_passable = true}, {-1, 1, only_passable = true}, {0, 1, only_passable = true} }, render_attach_position = {0, -1}, use_position = {0, 0}, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/projector.lua000066400000000000000000000050061522247547500217060ustar00rootroot00000000000000--[[ Copyright (c) 2010 Justin Pasher Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "projector" object.thob = 37 object.name = _S.object.projector object.tooltip = _S.tooltip.objects.projector object.ticks = false object.build_preview_animation = 5086 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = { north = 2586, south = 2586, } object.usage_animations = copy_north_to_south { north = { begin_use = { Doctor = 2594 }, begin_use_2 = { Doctor = 2590 }, -- 2802 is probably better, but it's anchored differently begin_use_3 = { Doctor = 2598 }, in_use = { Doctor = 2602 }, finish_use = { Doctor = 2606 }, finish_use_2 = { Doctor = 2610 }, finish_use_3 = { Doctor = 2684 }, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2 = {0, 0}, {-0.4, 0.5} anim_mgr:setStaffMarker(object.usage_animations.north.begin_use_2, kf2) anim_mgr:setStaffMarker(object.usage_animations.north.begin_use_3, kf2) anim_mgr:setStaffMarker(object.usage_animations.north.in_use, kf2) anim_mgr:setStaffMarker(object.usage_animations.north.finish_use, kf2) anim_mgr:setStaffMarker(object.usage_animations.north.finish_use_2, 0, kf2, 11, kf2, 16, kf1) object.orientations = { north = { footprint = { {0, 0, only_passable = true}, {0, 1}, {-1, 0}, {-1, 1} }, use_position = "passable" }, east = { footprint = { {0, 0, only_passable = true}, {0, -1}, {1, 0}, {1, -1} }, use_position = "passable" }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/radiation_shield.lua000066400000000000000000000050141522247547500232000ustar00rootroot00000000000000--[[ Copyright (c) 2010 Wendell Misiedjan Edited by: Wendell Misiedjan Based on: Manuel König files. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "radiation_shield" object.slave_id = "radiation_shield_b" object.class = "RadiationShield" object.thob = 28 object.name = _S.object.radiation_shield object.tooltip = _S.tooltip.objects.radiation_shield object.ticks = true object.build_preview_animation = 922 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 794, } object.usage_animations = copy_north_to_south { north = { begin_use = {Doctor = 798}, -- Doctor sits down begin_use_2 = {Doctor = 806}, -- Pulls the handle in_use = {Doctor = { 810, -- Sits idle 814, -- Pushing buttons }}, finish_use = {Doctor = 802}, -- Doctor stands up }, } object.orientations = { north = { render_attach_position = {0, -1}, footprint = { {-2, -1}, {-1, -1}, {0, -1}, {-2, 0}, {-1, 0}, {0, 0, only_passable = true}, {-2, 1}, {-1, 1}, {0, 1}}, use_position = {0, 0} }, east = { render_attach_position = {0, -1}, footprint = { {-1, -2}, {0, -2},{1, -2}, {-1, -1}, {0, -1},{1, -1}, {-1, 0}, {0, 0, only_passable = true},{1, 0} }, use_position = {0, 0} }, } class "RadiationShield" (Object) ---@type RadiationShield local RadiationShield = _G["RadiationShield"] RadiationShield:slaveMixinClass() return object CorsixTH-0.70.0/CorsixTH/Lua/objects/radiation_shield_b.lua000066400000000000000000000033001522247547500234750ustar00rootroot00000000000000--[[ Copyright (c) 2010 Wendell Misiedjan Edited with some help of Corsix. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "radiation_shield_b" object.class = "RadiationShield" object.thob = 28 object.name = _S.object.radiation_shield object.tooltip = _S.tooltip.objects.radiation_shield object.show_in_town_map = true object.ticks = false local function copy_east_to_west(t) t.west = t.east return t end object.idle_animations = copy_east_to_west { east = 1968, } object.orientations = { north = { render_attach_position = {0, 2}, use_position = {0, 0}, footprint = {}, }, east = { render_attach_position = {1, 1}, use_position = {0, 0}, footprint = {}, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/radiator.lua000066400000000000000000000032061522247547500215040ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "radiator" object.thob = 44 object.name = _S.object.radiator object.tooltip = _S.tooltip.objects.radiator object.ticks = false object.class = "SideObject" object.corridor_object = 5 object.build_preview_animation = 914 object.idle_animations = { north = 750, east = 752, } object.orientations = { north = { footprint = { {0, 0, only_side = true} } }, east = { footprint = { {0, 0, only_side = true} } }, south = { footprint = { {0, 0, only_side = true} } }, west = { footprint = { {0, 0, only_side = true} } }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/rathole.lua000066400000000000000000000042231522247547500213350ustar00rootroot00000000000000--[[ Copyright (c) 2016 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "rathole" object.thob = 64 object.name = _S.object.rathole object.class = "Rathole" object.tooltip = _S.tooltip.objects.rathole object.ticks = false object.idle_animations = { north = 1904, } object.orientations = { -- Empty footprint, so you can build any other object on top of it. north = { footprint = {} }, south = { footprint = {} }, west = { footprint = {} }, east = { footprint = {} }, } -- For ratholes: -- 1904: hole in north wall -- 1908: rat moving north -- 1910: rat moving north-east -- 1912: rat moving east -- 1914: rat moving south-east -- 1916: rat moving south -- 1918: rat moving south-west -- 1920: rat moving west -- 1922: rat moving north-west -- 1924: rat entering hole north wall -- 1926: rat entering hole west wall -- 1928: rat leaving hole north wall class "Rathole" (Object) ---@type Rathole local Rathole = _G["Rathole"] function Rathole:Rathole(hospital, oject_type, x, y, direction, etc) self:Object(hospital, oject_type, x, y, direction, etc) end function Rathole:getDrawingLayer() return DrawingLayers.RatHole end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/reception_desk.lua000066400000000000000000000215671522247547500227070ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "reception_desk" object.thob = 11 object.class = "ReceptionDesk" object.name = _S.object.reception_desk object.tooltip = _S.tooltip.objects.reception_desk object.ticks = true object.corridor_object = 1 object.build_preview_animation = 5060 object.idle_animations = { north = 2062, east = 2064, } object.orientations = { north = { footprint = { {0, 0}, {0, -1, only_passable = true}, {0, 1, only_passable = true}, {1, 0, need_north_side = true, need_south_side = true}, {-1, 0, need_north_side = true, need_south_side = true} }, use_position = {0, -1}, use_position_secondary = {0, 1}, }, east = { footprint = { {0, 0}, {0, -1, need_west_side = true, need_east_side = true}, {0, 1, need_west_side = true, need_east_side = true}, {1, 0, only_passable = true}, {-1, 0, only_passable = true} }, use_position = {1, 0}, use_position_secondary = {-1, 0}, }, south = { footprint = { {0, 0}, {0, -1, only_passable = true}, {0, 1, only_passable = true}, {1, 0, need_north_side = true, need_south_side = true}, {-1, 0, need_north_side = true, need_south_side = true} }, use_position = {0, 1}, use_position_secondary = {0, -1}, }, west = { footprint = { {0, 0}, {0, -1, need_west_side = true, need_east_side = true}, {0, 1, need_west_side = true, need_east_side = true}, {1, 0, only_passable = true}, {-1, 0, only_passable = true} }, use_position = {-1, 0}, use_position_secondary = {1, 0}, }, } corsixth.require("queue") class "ReceptionDesk" (Object) ---@type ReceptionDesk local ReceptionDesk = _G["ReceptionDesk"] function ReceptionDesk:ReceptionDesk(...) self:Object(...) self.queue = Queue() self.queue:setBenchThreshold(3) -- Keep 3 people standing in the queue even if there are benches self.queue:setMaxQueue(20) -- larger queues for reception desk self.hover_cursor = TheApp.gfx:loadMainCursor("queue") self.queue_advance_timer = 0 end function ReceptionDesk:onClick(ui, button) if button == "left" then local queue_window = UIQueue(ui, self.queue) ui:addWindow(queue_window) else return Object.onClick(self, ui, button) end end function ReceptionDesk:tick() --! Handle a patient at the reception desk. --!param patient The patient at the front of queue. --!param is_new (boolean) Have they just entered the hospital? --!return action taken by patient local function handlePatient(patient, is_new) if not is_new then -- Patient redirected to reception, send them on their way local id = patient.next_room_to_visit.room_info.id return patient:queueAction(SeekRoomAction(id)) end --else: a new patient has arrived in the hospital if patient:agreesToPay("diag_gp") then return patient:queueAction(SeekRoomAction("gp")) end --Patient goes home, too costly return patient:goHome("over_priced", "diag_gp") end -- Sends the VIP on their way. local function handleVIP(vip) vip:queueAction(IdleAction()) vip.waiting = 1 end -- Let the Inspector conclude the epidemic, then send them on their way. local function handleInspector(inspector) if inspector.going_home then return end local epidemic = self.hospital.epidemic if epidemic then epidemic:handleInspectorArrival() inspector:goHome() end end --! Advance the front humanoid of the queue. --!param humanoid (entity) NPC to be checked/advanced --!return (boolean) true if ready to be dealt with, else false. local function advanceQueue(humanoid) if humanoid:getCurrentAction().name == "idle" then self.queue_advance_timer = self.queue_advance_timer + 1 end return self.queue_advance_timer >= 4 + Date.hoursPerDay() * (1.0 - self.receptionist.profile.skill) end -- Start of the ReceptionDesk:tick function. local front_humanoid = self.queue:front() local reset_timer = true if self.receptionist and front_humanoid then if not advanceQueue(front_humanoid) then -- Not ready to deal with humanoid, continue waiting reset_timer = false elseif class.is(front_humanoid, Patient) then handlePatient(front_humanoid, not front_humanoid.next_room_to_visit) elseif class.is(front_humanoid, Inspector) then handleInspector(front_humanoid) elseif class.is(front_humanoid, Vip) then handleVIP(front_humanoid) else error("Unexpected humanoid " .. class.type(front_humanoid) .. " at reception desk.") end if reset_timer then -- Humanoid dealt with, call the next one self.queue:pop() self.queue.visitor_count = self.queue.visitor_count + 1 front_humanoid.has_passed_reception = true end end if reset_timer then self.queue_advance_timer = 0 end return Object.tick(self) end --! Reception desk looks for a receptionist. --!return (boolean) Desk has a receptionist attached to it (may still be on her way to the desk). function ReceptionDesk:checkForNearbyStaff() if self.receptionist or self.reserved_for then -- Already got staff, or a staff member is on the way return true end local nearest_staff, nearest_d local use_x, use_y = self:getSecondaryUsageTile() for _, entity in ipairs(self.world.entities) do if class.is(entity, Receptionist) and not entity.associated_desk and not entity.fired then local distance = self.world.pathfinder:findDistance(entity.tile_x, entity.tile_y, use_x, use_y) if not nearest_d or distance < nearest_d then nearest_staff = entity nearest_d = distance end end end if not nearest_staff then return false end self:occupy(nearest_staff) return true end -- how many tiles further are we willing to walk for 1 person fewer in the queue local tile_factor = 10 function ReceptionDesk:getUsageScore() local score = self.queue:patientSize() * tile_factor -- Add constant penalty if queue is full if self.queue:isFull() then score = score + 1000 end return score end function ReceptionDesk:setTile(x, y) Object.setTile(self, x, y) if x and y then self:checkForNearbyStaff() self.hospital:buildReceptionDesksCache() end return self end function ReceptionDesk:onPickUp() self.hospital:buildReceptionDesksCache() Object.onPickUp(self) end function ReceptionDesk:resetUsageAndReservaton() self.being_destroyed = true -- temporary flag for receptionist (re-)routing logic local receptionist = self.receptionist or self.reserved_for if receptionist then receptionist:handleRemovedObject(self) self.receptionist = nil self.reserved_for = nil -- Find a new reception desk for the receptionist self.world:findObjectNear(receptionist, "reception_desk", nil, false, function(x, y) local obj = self.world:getObject(x, y, "reception_desk") -- Make sure we are not selecting the same desk again if obj and obj ~= self then return obj:occupy(receptionist) end end) end self.queue:rerouteAllPatients(nil) self.being_destroyed = nil Object.resetUsageAndReservaton(self) end --[[ Create orders for the specified receptionist to walk to and then staff the reception desk, if not already staffed or someone is on the way !param receptionist (Staff) the receptionist to occupy this desk !return true if the receptionist was ordered to the desk ]] function ReceptionDesk:occupy(receptionist) if not self.receptionist and not self.reserved_for then self.reserved_for = receptionist receptionist.associated_desk = self local use_x, use_y = self:getSecondaryUsageTile() receptionist:setNextAction(WalkAction(use_x, use_y):setMustHappen(true)) receptionist:queueAction(StaffReceptionAction(self)) return true end end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/screen.lua000066400000000000000000000056351522247547500211660ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "screen" object.thob = 16 object.name = _S.object.screen object.tooltip = _S.tooltip.objects.screen object.ticks = false object.build_preview_animation = 926 object.show_in_town_map = true -- More than one idle animation exists, but we can only set one to the object object.idle_animations = { north = 1022, } object.orientations = { north = { footprint = { {-1, -1, only_passable = true}, {-1, 0}, {0, -1}, {0, 0} }, render_attach_position = {-1, 0}, use_position = "passable", }, } -- Animation numbers below correspond to non-operating theatre uses only -- See surgeon_screen.lua for that room object.usage_animations = { north = { in_use = { ["Elvis Patient"] = 946, -- specifically, transformation ["Standard Male Patient"] = { undress = 1048, dress = 1052, }, ["Standard Female Patient"] = { undress = 2848, dress = 2844, }, }, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2, kf3 = {-1, -1}, {-0.9, -0.8}, {-0.6, -0.6} local anims = { object.idle_animations.north, 1204 } -- idle anims anim_mgr:setPatientMarker(anims, kf1) anim_mgr:setStaffMarker(anims, kf1) anims = object.usage_animations.north.in_use anim_mgr:setPatientMarker(anims["Elvis Patient"], 0, kf1, 6, kf1, 7, kf2, 11, kf2, 12, kf1, 24, kf1, 28, kf3, 32, kf3, 36, kf1, 43, kf1) anim_mgr:setPatientMarker(anims["Standard Male Patient"].undress, 0, kf1, 7, kf1, 8, kf2, 12, kf2, 13, kf1) anim_mgr:setPatientMarker(anims["Standard Male Patient"].dress, 0, kf1, 10, kf1, 11, kf2, 21, kf2, 22, kf1) anim_mgr:setPatientMarker(anims["Standard Female Patient"].undress, 0, kf1, 2, kf2, 3, kf2, 9, kf2, 11, kf1, 17, kf1, 18, kf2, 25, kf2, 26, kf1) anim_mgr:setPatientMarker(anims["Standard Female Patient"].dress, 0, kf1, 2, kf1, 3, kf2, 12, kf2, 13, kf1) return object CorsixTH-0.70.0/CorsixTH/Lua/objects/sink.lua000066400000000000000000000047051522247547500206500ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "sink" object.thob = 32 object.name = _S.object.toilet_sink object.tooltip = _S.tooltip.objects.toilet_sink object.ticks = false object.build_preview_animation = 5082 local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 1748, } object.usage_animations = copy_north_to_south { north = { begin_use = { ["Standard Male Patient"] = 1776, ["Standard Female Patient"] = 3160, }, in_use = { ["Standard Male Patient"] = 1780, ["Standard Female Patient"] = 3164, }, finish_use = { ["Standard Male Patient"] = 1784, ["Standard Female Patient"] = 3168, }, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2 = {0, 0}, {0, -0.7} anim_mgr:setPatientMarker(object.usage_animations.north.begin_use, 0, kf1, 4, kf2) anim_mgr:setPatientMarker(object.usage_animations.north.in_use, kf2) anim_mgr:setPatientMarker(object.usage_animations.north.finish_use, 0, kf2, 34, kf2, 39, kf1) object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, east = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/skeleton.lua000066400000000000000000000035711522247547500215300ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "skeleton" object.thob = 60 object.name = _S.object.skeleton object.tooltip = _S.tooltip.objects.skeleton object.ticks = false object.build_preview_animation = 5108 object.show_in_town_map = true local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = { north = 2402, south = 2402, } object.usage_animations = copy_north_to_south { north = { in_use = { Doctor = 2614 }, }, } object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true }, east = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/sofa.lua000066400000000000000000000074361522247547500206400ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "sofa" object.thob = 19 object.name = _S.object.sofa object.tooltip = _S.tooltip.objects.sofa object.ticks = false object.build_preview_animation = 5066 object.show_in_town_map = true object.idle_animations = { north = 2122, east = 2124, } object.usage_animations = { north = { begin_use = { Doctor = 2178, Nurse = 3878, Handyman = 3570, }, begin_use_2 = { Doctor = 2186, Nurse = 3886, Handyman = 3578, }, in_use = { Doctor = 2208, Nurse = 4780, -- also 4786, duplicate? Handyman = 4772, }, finish_use = { Doctor = 2194, Nurse = 3894, Handyman = 3586, }, }, east = { begin_use = { Doctor = 2180, Nurse = 3880, Handyman = 3572, }, begin_use_2 = { Doctor = 2188, Nurse = 3888, Handyman = 3580, }, in_use = { Doctor = 2210, Nurse = 4782, -- also 4784, duplicate? Handyman = 4774, -- also 4776, duplicate? }, finish_use = { Doctor = 2196, Nurse = 3896, Handyman = 3588, }, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2 = {-1, -1}, {-1, -0.6} anim_mgr:setStaffMarker(object.usage_animations.north.begin_use, 0, kf1, 2, kf2) kf1 = {-0.6, 0.3} anim_mgr:setStaffMarker(object.usage_animations.north.begin_use_2, 0, kf2, 2, kf1) anim_mgr:setStaffMarker(object.usage_animations.north.in_use, kf1) kf2 = {-1, -0.6} local kf3 = {-1, -1} anim_mgr:setStaffMarker(object.usage_animations.north.finish_use, 0, kf1, 2, kf2, 5, kf3) kf1, kf2 = {1, -1}, {0.6, -1} anim_mgr:setStaffMarker(object.usage_animations.east.begin_use, 0, kf1, 2, kf2) kf1 = {0.3, -0.6} anim_mgr:setStaffMarker(object.usage_animations.east.begin_use_2, 0, kf2, 3, kf1) anim_mgr:setStaffMarker(object.usage_animations.east.in_use, kf1) kf2 = {0.6, -1} kf3 = {1, -1} anim_mgr:setStaffMarker(object.usage_animations.east.finish_use, 0, kf1, 1, kf1, 3, kf2, 5, kf3) object.orientations = { north = { footprint = { {-1, 0, complete_cell = true}, {0, 0, complete_cell = true}, {-1, -1, only_passable = true} }, render_attach_position = {-1, 0}, use_position = "passable", }, east = { footprint = { {0, -1, complete_cell = true}, {0, 0, complete_cell = true}, {1, -1, only_passable = true} }, use_position = "passable", }, south = { render_attach_position = { {0, 0}, {-1, 1} }, footprint = { {-1, 0, complete_cell = true}, {0, 0, complete_cell = true}, {-1, 1, only_passable = true} }, use_position = "passable", }, west = { footprint = { {0, -1, complete_cell = true}, {0, 0, complete_cell = true}, {-1, -1, only_passable = true} }, use_position = "passable", }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/surgeon_screen.lua000066400000000000000000000101471522247547500227220ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "surgeon_screen" object.class = "SurgeonScreen" object.thob = 35 object.name = _S.object.surgeon_screen object.tooltip = _S.tooltip.objects.surgeon_screen object.ticks = false object.build_preview_animation = 926 object.show_in_town_map = true -- More than one idle animation exists, but we can only set one to the object object.idle_animations = { north = 2772, } object.orientations = { north = { footprint = { {-1, -1, only_passable = true}, {-1, 0}, {0, -1}, {0, 0} }, render_attach_position = {-1, 0}, use_position = "passable", }, } -- Animation numbers below correspond to operating theatre uses only. -- See screen.lua for everything else. object.usage_animations = { north = { --[[ unused begin_use = { scrubs_on = 2786, scrubs_off = 2788 }, ]]-- in_use = { Surgeon = { scrubs_on_t1 = 2780, scrubs_on_t2 = 2782, scrubs_on_t3 = 2784, scrubs_off_t1 = 2790, scrubs_off_t2 = 2792, scrubs_off_t3 = 2794, scrubs_off_t4 = 2796, }, ["Standard Male Patient"] = { gown_on = 4760, gown_off = 4768, }, ["Standard Female Patient"] = { gown_on = 4762, gown_off = 4770, }, }, }, } local anim_mgr = TheApp.animation_manager local kf1, kf2, kf3 = {-1.23, -1.14}, {-0.9, -0.8}, {-0.7, -0.6} local anims = { object.idle_animations.north, 2774, 2776 } -- idle anims anim_mgr:setPatientMarker(anims, kf1) anim_mgr:setStaffMarker(anims, kf1) anims = object.usage_animations.north.in_use anim_mgr:setStaffMarker(anims.Surgeon.scrubs_on_t1, 0, kf1, 2, kf1, 7, kf3, 22, kf3, 25, kf1, 26, kf1) anim_mgr:setStaffMarker(anims.Surgeon.scrubs_on_t2, 0, kf1, 3, kf1, 6, kf2, 8, kf2, 9, kf3, 14, kf3, 18, kf1, 22, kf1, 27, kf3, 34, kf3, 37, kf1) anim_mgr:setStaffMarker(anims.Surgeon.scrubs_on_t3, 0, kf1, 3, kf1, 6, kf3, 14, kf3, 18, kf1, 23, kf1, 28, kf3, 33, kf3, 36, kf1) anim_mgr:setStaffMarker(anims.Surgeon.scrubs_off_t1, 0, kf1, 4, kf3, 12, kf3, 17, kf1, 24, kf1, 28, kf3, 35, kf3, 39, kf1) anim_mgr:setStaffMarker(anims.Surgeon.scrubs_off_t2, 0, kf1, 4, kf1, 8, kf3, 16, kf3, 21, kf1, 31, kf1, 34, kf3, 42, kf3, 46, kf1) anim_mgr:setStaffMarker(anims.Surgeon.scrubs_off_t3, 0, kf1, 5, kf3, 15, kf3, 21, kf1) anim_mgr:setStaffMarker(anims.Surgeon.scrubs_off_t4, 0, kf1, 4, kf3, 17, kf3, 21, kf1) kf1, kf2 = {-1, -1}, {-0.6, -0.6} anim_mgr:setPatientMarker(anims["Standard Male Patient"].gown_on, 0, kf1, 4, kf2, 16, kf2, 19, kf1) anim_mgr:setPatientMarker(anims["Standard Male Patient"].gown_off, 0, kf1, 2, kf1, 5, kf2, 11, kf2, 15, kf1) anim_mgr:setPatientMarker(anims["Standard Female Patient"].gown_on, 0, kf1, 5, kf2, 16, kf2, 19, kf1) anim_mgr:setPatientMarker(anims["Standard Female Patient"].gown_off, 0, kf1, 3, kf1, 10, kf2, 15, kf1) class "SurgeonScreen" (Object) ---@type SurgeonScreen local SurgeonScreen = _G["SurgeonScreen"] function SurgeonScreen:SurgeonScreen(...) self:Object(...) self.num_green_outfits = 2 self.num_white_outfits = 0 end return object CorsixTH-0.70.0/CorsixTH/Lua/objects/tv.lua000066400000000000000000000033101522247547500203240ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "tv" object.thob = 21 object.name = _S.object.tv object.tooltip = _S.tooltip.objects.tv object.ticks = false object.build_preview_animation = 5052 object.idle_animations = { north = 396, east = 398, } object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, -1, only_passable = true} } }, east = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} } }, south = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} } }, west = { footprint = { {0, 0, complete_cell = true}, {-1, 0, only_passable = true} } }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/video_game.lua000066400000000000000000000042411522247547500217760ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "video_game" object.thob = 57 object.name = _S.object.video_game object.tooltip = _S.tooltip.objects.video_game object.ticks = false object.build_preview_animation = 5106 object.idle_animations = { north = 3696, south = 3696, } -- There are only animations for the doctor and the nurse. -- It seems the handyman doesn't play video games. -- -- For the Doctor, there's an additional animation standing still. -- Don't know how to use that one... object.usage_animations = { north = { in_use = { Doctor = 3700, -- also 3692, standing still in front of the game Nurse = 4764, }, }, south = { -- duplicate of north in_use = { Doctor = 3700, Nurse = 4764, }, }, } object.orientations = { north = { footprint = { {0, 0, complete_cell = true}, {0, 1, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, east = { footprint = { {0, 0, complete_cell = true}, {1, 0, only_passable = true} }, use_position = "passable", use_animate_from_use_position = true, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/objects/x_ray_viewer.lua000066400000000000000000000033611522247547500224040ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local object = {} object.id = "x_ray_viewer" object.thob = 29 object.name = _S.object.x_ray_viewer object.tooltip = _S.tooltip.objects.x_ray_viewer object.ticks = false object.build_preview_animation = 5078 object.show_in_town_map = true object.locked_to_wall = { -- permittable wall -> orientation north = "east", west = "north", } local function copy_north_to_south(t) t.south = t.north return t end object.idle_animations = copy_north_to_south { north = 2390, } object.orientations = { north = { footprint = { {0, 0, need_west_side = true }, }, }, east = { footprint = { {0, 0, need_north_side = true}, }, early_list = true, }, } return object CorsixTH-0.70.0/CorsixTH/Lua/persistance.lua000066400000000000000000000236351522247547500205760ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local persist = require("persist") local saved_permanents = {} strict_declare_global "permanent" strict_declare_global "unpermanent" local th_getfenv local th_getupvalue -- luacheck: ignore 231 if _G._VERSION == "Lua 5.1" then th_getfenv = debug.getfenv th_getupvalue = debug.getupvalue else th_getfenv = function(f) local _, val = nil, nil if type(f) == "function" then _, val = debug.getupvalue(f, 1) elseif type(f) == "userdata" then val = debug.getuservalue(f) else print('Unhandled argument to th_getfenv') end return val end th_getupvalue = function(f, n) return debug.getupvalue(f, n + 1) end end function permanent(name, ...) if select('#', ...) == 0 then return function (...) return permanent(name, ...) end end local value = ... assert(value ~= nil) assert(saved_permanents[name] == nil) saved_permanents[name] = value return value end function unpermanent(name) assert(saved_permanents[name] ~= nil) saved_permanents[name] = nil end local --[[persistable:persistance_global_fetch]] function global_fetch(...) local val = _G for _, k in ipairs({...}) do val = val[k] end return val end local function MakePermanentObjectsTable(inverted) local return_val = setmetatable({}, {}) local permanent = return_val if inverted then getmetatable(permanent).__newindex = function(t, k, v) rawset(t, v, k) end end -- Global functions for k, v in pairs(_G) do if type(v) == "function" then permanent[v] = k end end -- Lua class methods for name, class in pairs(_G) do repeat if type(class) ~= "table" then break -- continue end local class_mt = getmetatable(class) if not class_mt or class_mt.__class_name ~= name then break -- continue end permanent[class] = name .. ".1" permanent[class_mt] = name .. ".2" for k, v in pairs(class) do if type(v) == "function" then permanent[v] = name .. "." .. k end end for k, v in pairs(class._metatable) do if type(v) == "function" then permanent[v] = name .. "._metatable." .. k end end until true end -- C/class/library methods for name, lib in pairs(package.loaded) do if not name:find(".", 1, true) then permanent[lib] = name end if type(lib) == "table" then for k, v in pairs(lib) do local type_of_lib = type(v) if type_of_lib == "function" or type_of_lib == "table" or type_of_lib == "userdata" then permanent[v] = name .. "." .. k if name == "TH" and type_of_lib == "table" then -- C class metatables local callenv = th_getfenv(getmetatable(v).__call) permanent[callenv] = name .. "." .. k .. "." end end end else print("Warning: Expected table but got " .. type(lib) .. ". A library probably failed to load.") end end -- Bits of the app permanent[TheApp] = "TheApp" for _, key in ipairs({"config", "modes", "video", "strings", "audio", "gfx", "fs", "moviePlayer"}) do permanent[TheApp[key]] = inverted and "TheApp." .. key or {global_fetch, "TheApp", key} end for _, collection in ipairs({"walls", "objects", "rooms", "humanoid_actions", "diseases"}) do for k, v in pairs(TheApp[collection]) do if type(k) == "string" then permanent[v] = inverted and "TheApp." .. collection .. "." .. k or {global_fetch, "TheApp", collection, k} end end end -- If loading a game from the main menu, there will be no menu bar, so make one local menu_bar = TheApp.ui and TheApp.ui.menu_bar if not menu_bar then -- The menu bar wants a UI, but it is happy with just something naming an App menu_bar = UIMenuBar({app = TheApp}) end permanent[menu_bar] = "TheApp.ui.menu_bar" -- Graphics bits are persisted as instructions to reload them or reuse if already loaded if inverted then -- as the object was persisted as a table, we need to add some magic to -- the __index metamethod to interpret this table as a function call getmetatable(return_val).__index = function(_, k) if type(k) == "table" then return k[1](unpack(k, 2)) end end else -- load_info is a table containing a method and parameters to load obj pause_gc_and_use_weak_keys(function(p) for obj, load_info in pairs(TheApp.gfx.load_info) do p[obj] = load_info end end, permanent) end -- Things requested to be permanent by other bits of code for name, value in pairs(saved_permanents) do permanent[value] = name end return return_val end local function NameOf(obj) -- Debug aid local explored = {[_G] = true} local to_explore = {[_G] = "_G"} while true do local exploring, name = next(to_explore) if exploring == nil then break end to_explore[exploring] = nil if exploring == obj then return name end if type(exploring) == "table" then for key, val in pairs(exploring) do if not explored[val] then to_explore[val] = name .. "." ..tostring(key) explored[val] = true end end elseif type(exploring) == "function" then local i = 0 while true do i = i + 1 local dbg_name, val = debug.getupvalue(exploring, i) if not dbg_name then break end if val ~= nil and not explored[val] then to_explore[val] = name .. "." explored[val] = true end end end local mt = debug.getmetatable(exploring) if mt and not explored[mt] then to_explore[mt] = name .. "." explored[mt] = true end mt = th_getfenv(exploring) if mt and not explored[mt] then to_explore[mt] = name .. "." explored[mt] = true end end return "" end strict_declare_global "SaveGame" strict_declare_global "SaveGameFile" strict_declare_global "LoadGame" strict_declare_global "LoadGameFile" function SaveGame() local state = { ui = TheApp.ui, world = TheApp.world, map = TheApp.map, random = math.randomdump(), } state.map:prepareForSave() --local status, res = xpcall(function() local result, err, obj = persist.dump(state, MakePermanentObjectsTable(false)) state.map:afterSave() if not result then print(obj, NameOf(obj)) -- for debugging error(err) else return result end --end, persist.errcatch) end --! Save a game to disk. --!param filename (string) Path of the file to write. function SaveGameFile(filename) local data = SaveGame() local f = TheApp:writeToFileOrTmp(filename, "wb") f:write(data) f:close() end --! Compatibility function to work out the game's graphics set --!param map The savegame map data --!param world The savegame world data local function gfxSetHeuristic(map, world) -- First eliminate all but the first campaign level (same in demo and full) local toxicity = tostring(_S.level_names[1]:upper()) local level_name = tostring(map.level_name) if level_name ~= toxicity then return "full" end -- Now check a disease only in the demo (baldness) for _, disease in ipairs(world.available_diseases) do if disease.id == "baldness" then return "demo" end end return "full" end --! Puts loaded file into the game --!param data The file function LoadGame(data) --local status, res = xpcall(function() local objtable = MakePermanentObjectsTable(true) local state = assert(persist.load(data, objtable)) -- Graphics set types were defined in savegame version 166+. if not state.world.gfx_set then state.world.gfx_set = gfxSetHeuristic(state.map, state.world) end -- Check the game we're loading is compatible with program if not TheApp:checkCompatibility(state.world.savegame_version, state.world.gfx_set) then return end state.ui:resync(TheApp.ui) TheApp.ui = state.ui TheApp.world = state.world TheApp.map = state.map math.randomseed(state.random) local cursor = TheApp.ui.cursor TheApp.ui.cursor = nil TheApp.ui:setCursor(cursor) -- The menu bar is a permanent object, so its ui field needs updating to -- the depersisted ui value. TheApp.ui.menu_bar.ui = TheApp.ui TheApp.ui.menu_bar:onChangeLanguage() --end, persist.errcatch) TheApp.world.map:registerTemperatureDisplayMethod() -- TODO: sound effects on/off are saved too, but should be a global value? TheApp.audio:playSoundEffects(TheApp.config.play_sounds) TheApp:afterLoad() TheApp.world:resetAnimations() TheApp.ui:onChangeResolution() -- Check if the blueish tone should be applied. -- Note: Blue filter control should be handled from world or ui, however when -- loading a game we should let persistence do it. TheApp.world:updateUserActionsAllowed() TheApp.world:updateScreenBlueFilter() end function LoadGameFile(filename) local f = assert(io.open(filename, "rb")) local data = f:read("*a") f:close() LoadGame(data) end CorsixTH-0.70.0/CorsixTH/Lua/queue.lua000066400000000000000000000316441522247547500174010ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --! Manages a list of `Humanoid`s which are waiting to use an `Object`. --! A queue stores a list of humanoids waiting to use an object. -- For a reception desk, this is as expected. -- For a room, the queue is for the door, not the room. Hence the queue stores -- the list of patients waiting to enter (the traditional queue for the room), -- the list of staff waiting to enter (because of the door being in use for -- example), the list of staff and patients waiting to leave (again due to door -- being in use). -- Queues are currently implemented as normal Lua arrays, but you should access -- a queue via its methods rather than directly. class "Queue" ---@type Queue local Queue = _G["Queue"] --! Constructor of a queue. function Queue:Queue() -- Number of real patients that can be observed in the door queue interface. self.reported_size = 0 -- Expected humanoids self.expected = {} self.callbacks = {} -- Number of expected patients self.expected_count = 0 self.visitor_count = 0 -- Maximum queue length (default value) self.max_size = 6 self.bench_threshold = 0 end --! A humanoid is expected in a queue. --!param humanoid - any humanoid expected for the room --!param callback - register a callback for when queue is 'destroyed' function Queue:expect(humanoid, callback) if not self.expected[humanoid] then self.expected[humanoid] = callback -- only count patients in the expected count if class.is(humanoid, Patient) then self.expected_count = self.expected_count + 1 end end end --! A humanoid is canceled as expected in a queue. --!param humanoid - Humanoid that is not coming to this queue. function Queue:unexpect(humanoid) if self.expected[humanoid] then self.expected[humanoid] = nil -- only count patients in the expected count if class.is(humanoid, Patient) then self.expected_count = self.expected_count - 1 end end end --! Lower the max queue length. --!param amount (int) Decrement length value of the queue. function Queue:decreaseMaxSize(amount) self.max_size = math.max(0, self.max_size - amount) end --! Increase max queue length. --!param amount (int) Increment length value of the queue. function Queue:increaseMaxSize(amount) self.max_size = math.min(30, self.max_size + amount) end function Queue:setBenchThreshold(standing_count) self.bench_threshold = standing_count end --! Set max queue length. --!param queue_count (int) New max queue length to set. function Queue:setMaxQueue(queue_count) self.max_size = queue_count end --! Total size of the queue, which are various people wanting in or out of the room. --! For a true patient queue count, use Queue:reportedSize. --!return (int) Number of various people in the queue. function Queue:size() -- Remember, the size includes people waiting to leave and staff waiting to enter -- For just the patients waiting to be served, use Queue:reportedSize() -- Most of the time, size() == reportedSize(), so it won't be immediately obvious -- if you're using the wrong method, but from time to time, staff or exiting -- patients will be in the queue, at which point the sizes will differ. return #self end --! Retrieve whether the queue is full. --!return (boolean) Whether the queue is full. function Queue:isFull() return self:size() >= self.max_size end --! Get the number of real patients in the queue. --!return (int) Number of real patients in the queue. function Queue:reportedSize() return self.reported_size end --! Get the number of expected patients. --!return (int) Number of expected patients (in the near future). function Queue:expectedSize() return self.expected_count end --! Check if the queue has an emergency patient. --!return (boolean) Whether an emergency patient was found in the queue. function Queue:hasEmergencyPatient() for _, humanoid in ipairs(self) do if humanoid.is_emergency then return true end end return false end --! Retrieve the total number of queued and expected patients. --return (int) Number of patients. function Queue:patientSize() return self.reported_size + self.expected_count end --! Get the 'index' real patient. --!param index (int) Index of the patient to retrieve (runs up to Queue:reportedSize). --!return Patient at the queried point in the queue. function Queue:reportedHumanoid(index) return self[self:size() - self.reported_size + index] end function Queue:setPriorityForSameRoom(entity) self.same_room_priority = entity end local function _isLeaving(queue, humanoid) return queue.same_room_priority and queue.same_room_priority:getRoom() == humanoid:getRoom() end --! Get queue priority for given humanoid --! Humanoids with priority lower that 'reported_priority_threshold' -- are not displayed in the door queue interface. --!param queue (object) target Queue. --!param humanoid (object) Humanoid for which we're asking the priority. --return (int) priority. Lower value means more significant priority. local function _getHumanoidQueuePriority(queue, humanoid) if _isLeaving(queue, humanoid) then -- If humanoid is leaving they have the highest priority -- To prevent cases like #873 return 1 elseif class.is(humanoid, Staff) then -- Next are staff members return 2 elseif class.is(humanoid, Vip) or class.is(humanoid, Inspector) then -- Next is a Vip and other hospital guests. -- Who are served instantly and do not delay others. return 3 elseif humanoid.is_emergency then -- Next are Emergency patients return 4 elseif humanoid.hospital.hosp_cheats:isCheatActive("queuejump") and humanoid:getAttribute("health") < 0.10 then -- If the queue jump cheat is enabled, let these nearly dead patients move ahead return 5 else -- All other regular patients receive this priority return 6 end end --! Determines whether Humanoid priority is sufficient -- to display this Humanoid in door queue interface. --!param priority (int) humanoid priority. --return (bool) true if patient should be displayed. local function _shouldDisplayInDoorQueueInterface(priority) local reported_priority_threshold = 3 return priority > reported_priority_threshold end --! Insert the humanoid at the proper spot in the queue. --!param humanoid (object) Humanoid we want to put in the queue. function Queue:push(humanoid, callbacks_on) -- The queue is ordered on decreasing priority of the the humanoids for using the door. -- Higher priority is a smaller number. -- Starting from the back of the queue, and moving towards the front of the queue until -- the humanoid in front has an equal or higher priority (an equal of lower number). local index = self:size() + 1 local priority = _getHumanoidQueuePriority(self, humanoid) -- Calculate under what 'index' we should insert new humanoid into the queue while index > 1 do -- Abort the loop when the humanoid before it has equal or higher priority. if _getHumanoidQueuePriority(self, self[index - 1]) <= priority then break end index = index - 1 end if _shouldDisplayInDoorQueueInterface(priority) then self.reported_size = self.reported_size + 1 end self.callbacks[humanoid] = callbacks_on table.insert(self, index, humanoid) for i = index + 1, self:size() do local queued_humanoid = self[i] local callbacks = self.callbacks[queued_humanoid] if callbacks then callbacks:onChangeQueuePosition(queued_humanoid) end end end --! Get the first person in the queue (queue is not changed). --! Note that first person may not be a patient, use Queue:reportedHumanoid to get patients --!return First person in the queue. function Queue:front() return self[1] end --! Get the last person in the queue (queue is not changed). --!return Last person in the queue. function Queue:back() return self[self:size()] end --! Pop first person from the queue. --! Note that first person may not be a patient, use Queue:reportedHumanoid to get patients --!return First person in the queue. function Queue:pop() if self.reported_size == self:size() then self.reported_size = self.reported_size - 1 end local oldfront = self[1] table.remove(self, 1) oldfront:setMood("queue", "deactivate") local callbacks = self.callbacks[oldfront] if callbacks then callbacks:onLeaveQueue(oldfront) end self.callbacks[oldfront] = nil for _, humanoid in ipairs(self) do callbacks = self.callbacks[humanoid] if callbacks then callbacks:onChangeQueuePosition(humanoid) end end return oldfront end --! Remove person from the queue by index number. --! Note that the person may not be a patient. --!param index (jnt) Index in the queue of the person to remove. --!return The removed person. function Queue:remove(index) if self[index] == nil then return end local value = self[index] if index > self:size() - self.reported_size then self.reported_size = self.reported_size - 1 end value:setMood("queue", "deactivate") table.remove(self, index) self.callbacks[value] = nil for i = self:size(), index, -1 do local humanoid = self[i] if humanoid.onAdvanceQueue then humanoid:onAdvanceQueue(self, i - 1) end end return value end --! Remove a person by value from the queue. --!param value Person to remove. --!return Whether the person could be found (and was removed). function Queue:removeValue(value) for i = 1, self:size() do if self[i] == value then self:remove(i) return true end end return false end --! Move the person at position 'index' to position 'new_index'. --! Persons between 'index' and 'new_index' move one place to 'index'. --!param index (int) Index number of the person to move. --!param new_index (int) Destination of the person being moved. function Queue:move(index, new_index) if self[index] == nil or self[new_index] == nil or index == new_index then return end local i if new_index < index then i = -1 else i = 1 end while new_index ~= index do local temp = self[index + i] self[index + i] = self[index] self[index] = temp index = index + i end end --! Move an entering patient in the queue at position 'index' to position 'new_index'. --! Persons between 'index' and 'new_index' move one place to 'index'. --! Values are relative to the reported humanoids in the queue --!param index (int) Index number of the person to move. --!param new_index (int) Destination of the person being moved. --!param new_index (string) 'front' or 'back' as relative markers function Queue:movePatient(index, new_index) local first_patient_index = self:size() - self:reportedSize() + 1 if type(new_index) == "string" then if new_index == 'front' then new_index = first_patient_index else new_index = self:size() end else new_index = first_patient_index + new_index end self:move(first_patient_index + index - 1, new_index) end --! Called when reception desk is destroyed, or when a room is destroyed from a crashed machine. --!param room_id Id of the room to reroute to, 'nil' for reception. function Queue:rerouteAllPatients(room_id) for _, humanoid in ipairs(self) do -- check by class type as staff/vips shouldn't get a SeekRoomAction if class.is(humanoid, Patient) then -- slight delay so the desk is really destroyed before rerouting humanoid:setNextAction(IdleAction():setCount(1)) local action if room_id then action = SeekRoomAction(room_id) else action = SeekReceptionAction() end humanoid:queueAction(action) elseif class.is(humanoid, Staff) then -- likewise believe we need action here to stop humanoid:setNextAction(IdleAction():setCount(1)) humanoid:queueAction(MeanderAction()) else -- other humanoids don't enter rooms humanoid:setNextAction(MeanderAction()) end end for humanoid, callback in pairs(self.expected) do -- call the callback if registered as door is closing if callback then callback.callback() end self:unexpect(humanoid) end end CorsixTH-0.70.0/CorsixTH/Lua/research_department.lua000066400000000000000000000673621522247547500223020ustar00rootroot00000000000000--[[ Copyright (c) 2011 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] --[[ Notes about research speed. Original game times at 20 % in all categories with a medium doctor at level 3: Slicer discovered in about 120 days. (10000 points) Pump improved in about 60 days. (30000 points * 20 % as first improvement) Invisibility improved in about 90 days. (10000 points) Note that the original requires a nurse and a pharmacy before drugs get improved. On the other hand it appears that the research is stored for future use anyway. --]] --! Manages all things related to research for one hospital. class "ResearchDepartment" ---@type ResearchDepartment local ResearchDepartment = _G["ResearchDepartment"] function ResearchDepartment:ResearchDepartment(hospital) self.hospital = hospital self.world = hospital.world -- This list contains a lot of information. -- Progress of object discovery, object improvement, drug improvement -- dito costs and room build costs. self.research_progress = {} self:initResearch() end -- Initialize research for the level. function ResearchDepartment:initResearch() local hospital = self.hospital local cfg_objects = self.world.map.level_config.objects local cure, diagnosis, improve, drug -- Initialize object research for _, object in ipairs(TheApp.objects) do if cfg_objects[object.thob] and cfg_objects[object.thob].AvailableForLevel == 1 and object.research_category then self.research_progress[object] = { points = 0, start_strength = cfg_objects[object.thob].StartStrength, cost = not self.world.free_build_mode and cfg_objects[object.thob].StartCost or 0, discovered = cfg_objects[object.thob].StartAvail == 1, strength_imp = 0, cost_imp = 0, } if cfg_objects[object.thob].StartAvail == 0 then if object.research_category == "cure" then cure = object elseif object.research_category == "diagnosis" then diagnosis = object end end if object.default_strength and cfg_objects[object.thob].StartAvail == 1 then improve = object end end end -- Now add drug research for _, disease in pairs(hospital.disease_casebook) do if disease.drug then self.research_progress[disease] = { points = 0, effect_imp = 1, cost_imp = 1, } if disease.discovered then drug = disease end end end -- Add a dummy to specialisation. The difference is that while it still says -- 20 % in that area it doesn't cost anything to the player local drain = {dummy = true} self.research_progress[drain] = {points = 0} self.drain = drain local policy = { cure = {frac = cure and 20 or 0, current = cure}, diagnosis = {frac = diagnosis and 20 or 0, current = diagnosis}, drugs = {frac = 20, points = 0, current = drug and drug or drain}, improvements = {frac = improve and 20 or 0, points = 0, current = improve}, specialisation = {frac = 20, points = 0, current = drain}, } local sum = 0 for _, cat in pairs(policy) do sum = sum + cat.frac end if sum == 20 then -- No research to be done policy.specialisation.frac = 0 policy.total = 0 else -- If some category is already done, put the free points in another one. if sum < 100 then for _, tab in pairs(policy) do if tab.frac > 0 then tab.frac = tab.frac + 100 - sum sum = 100 break end end end policy.total = sum end self.research_policy = policy if not hospital.research_dep_built then hospital.research_dep_built = false end end function ResearchDepartment:checkAutomaticDiscovery(month) for object, progress in pairs(self.research_progress) do -- Only check objects if object.default_strength then local avail_at = self.world.map.level_config.objects[object.thob].WhenAvail if not progress.discovered and avail_at ~= 0 and month >= avail_at then self:discoverObject(object, true) end end end end --! Find a disease (if it exists) on which research can be concentrated and concentrate on it. function ResearchDepartment:setResearchConcentration() local casebook = self.hospital.disease_casebook if self.research_policy.specialisation.current ~= self.drain then return end for _, disease in pairs(casebook) do if disease.discovered and self.hospital:canConcentrateResearch(disease.disease.id) then self:concentrateResearch(disease.disease.id) return end end end --! Function that redistributes research points from a finished category to --! all the other categories. function ResearchDepartment:redistributeResearchPoints() local sum, all_finished = 0, true local policy = {"cure", "diagnosis", "drugs", "improvements"} local specialisation_point = self.research_policy["specialisation"].frac for _, research_category in ipairs(policy) do sum = sum + self.research_policy[research_category].frac if self.research_policy[research_category].current and self.research_policy[research_category].current ~= self.drain then all_finished = false end end if not all_finished then self.research_policy.total = self.research_policy.total - specialisation_point if sum == 0 then local num_cat = 0 for _, categ in ipairs(policy) do if self.research_policy[categ].current then num_cat = num_cat + 1 end end for _, categ in ipairs(policy) do if self.research_policy[categ].current then self.research_policy[categ].frac = math.floor(self.research_policy.total / num_cat) end end sum = math.floor(self.research_policy.total / num_cat) * num_cat for _, categ in ipairs(policy) do if self.research_policy[categ].current then if sum == self.research_policy.total then break end self.research_policy[categ].frac = self.research_policy[categ].frac + 1 sum = sum + 1 end end else local new_sum, max_value, max_category = 0, 0, "" new_sum = new_sum + specialisation_point for _, categ in ipairs(policy) do local research_cat = self.research_policy[categ] if research_cat.frac > max_value then max_value = research_cat.frac max_category = categ end research_cat.frac = math.floor(self.research_policy.total * research_cat.frac / sum) new_sum = new_sum + research_cat.frac end --if there are still some points left redistribute them to the research category with the maximum points if new_sum < self.research_policy.total then local frac = self.research_policy[max_category].frac + self.research_policy.total - new_sum self.research_policy[max_category].frac = frac end end self.research_policy.total = self.research_policy.total + specialisation_point else self.research_policy.total = 0 self.research_policy.specialisation.current = nil end end --[[! Finds out what to research next in the given research area. !param category The research area. One of cure, diagnosis, drugs, improvements and specialisation --]] function ResearchDepartment:nextResearch(category) local current = self.research_policy[category].current -- First make sure that the current research target actually has been discovered. -- Otherwise don't do anything. if not (current.drug or self.research_progress[current].discovered) then return end local hospital = self.hospital self.research_policy[category].current = nil local found_one = false if category == "drugs" then local worst_effect = 100 for _, disease in pairs(hospital.disease_casebook) do if disease.cure_effectiveness < worst_effect then found_one = true if disease.discovered then self.research_policy[category].current = disease worst_effect = disease.cure_effectiveness end end end elseif category == "improvements" then -- Find the object which needs improvements the most. local max_strength = self.world.map.level_config.gbv.MaxObjectStrength local min_strength = max_strength for object, progress in pairs(self.research_progress) do if object.default_strength then -- Don't improve those that already have the max strength if progress.start_strength < max_strength then if progress.discovered and progress.start_strength < min_strength then self.research_policy[category].current = object min_strength = progress.start_strength else found_one = true end end end end else for object, progress in pairs(self.research_progress) do if object.research_category == category and not progress.discovered then self.research_policy[category].current = object end end end if found_one and not self.research_policy[category].current then -- There is a drug or machine which needs improving, but it -- has not been discovered yet. self.research_policy[category].current = self.drain self.research_progress[self.drain] = {points = 0} end if not self.research_policy[category].current then local cat = self.research_policy[category] -- Nothing more to research cat.current = nil cat.frac = 0 self:redistributeResearchPoints() self.hospital:giveAdvice({_A.research.drug_fully_researched :format(_S.research.categories[category])}) -- Notify any research window local window = self.world.ui:getWindow(UIResearch) if window then window:updateCategories() end end end --[[ Returns how many points are required to discover something about the given thing. It may be an object or a drug, being improved or researched. If this thing cannot be processed nil is returned. !param thing The thing to check, either a drug or an object. --]] function ResearchDepartment:getResearchRequired(thing) local required local level_config = self.world.map.level_config local expert = level_config.expertise if thing.thob then -- An object required = level_config.objects[thing.thob].RschReqd if not required then -- It didn't know, so use the fallback instead. if not thing.research_fallback then -- This object is not researchable! print(("Warning: %s has been defined as "):format(thing.id) .. "researchable, but no requirements to fulfil could be found.") else required = expert[thing.research_fallback].RschReqd end end -- Actually want to know how much to improve? local research_info = self.research_progress[thing] if research_info.discovered then local improve_percent = level_config.gbv.RschImproveCostPercent local increment = level_config.gbv.RschImproveIncrementPercent improve_percent = improve_percent + increment * research_info.cost_imp required = required * improve_percent / 100 end elseif thing.drug then -- A drug required = expert[thing.disease.expertise_id].RschReqd end return required end --! This function will give research points to the treatment of the illness of an autopsied patient. --!param target_room_id (string) The name of the room function ResearchDepartment:addResearchPointsForAutopsy(target_room_id) local level_config = self.world.map.level_config local room_discovery = self.hospital.room_discoveries[target_room_id] -- Do something only if the room is among those not yet discovered. if room_discovery.is_discovered then return end -- Find an object within this room that needs research points. for object, _ in pairs(room_discovery.room.objects_needed) do local research = self.research_progress[TheApp.objects[object]] if research and not research.discovered then local required = self:getResearchRequired(TheApp.objects[object]) -- Research points are added as according to the level config. local advance = required * level_config.gbv.AutopsyRschPercent / 100 research.points = research.points + advance -- Maybe we now have enough to discover the object? if research.points > required then self:discoverObject(TheApp.objects[object]) end break end end end --! Add some more research points to research progress. --! It will be divided according to the research policy into the different research areas. --!param points (integer) The total amount of points before applying any level specific divisors to add to research. function ResearchDepartment:addResearchPoints(points) local level_config = self.world.map.level_config -- Divide the points into the different areas. If total is not at 100 % -- the total amount is lowered, but then cost is also reduced. -- Fetch the level research divisor. local divisor = level_config.gbv.ResearchPointsDivisor or 5 points = math.ceil(points * self.research_policy.total / (100 * divisor)) -- Divide the points into the different categories and check if -- it is time to discover something local areas = self.research_policy for _, info in pairs(areas) do -- Don't touch the value "total". if type(info) == "table" then -- Some categories may be finished if info.current then -- Add new points to this category's current focus. local research_info = self.research_progress[info.current] local stored = research_info.points -- Add just a little randomness research_info.points = stored + math.t_random(0.75, 1, 1.25) * points * info.frac / 100 local required = self:getResearchRequired(info.current) if required and required < research_info.points then research_info.points = 0 -- On the specialisation pass any of these categories are eligible. ---------------- Discovering objects ---------------------- if info.current.thob and not research_info.discovered then self:discoverObject(info.current) ----------------- Improving drugs ------------------------- elseif info.current.drug then self:improveDrug(info.current) --------------- Improving machines ------------------------ elseif info.current.thob then self:improveMachine(info.current) end end end end end end --[[ Called when it is time to improve a drug's strength or cost. !param drug The drug to improve, table taken from world.available_diseases --]] function ResearchDepartment:improveDrug(drug) local disease = self.hospital.disease_casebook[drug.disease.id] local level_config = self.world.map.level_config local min_drug_cost = level_config.gbv.MinDrugCost -- Work out the improvement to make local function decideImprovement() local at_max_effectiveness = disease.cure_effectiveness >= 100 local at_min_cost = disease.drug_cost <= min_drug_cost local improvement if at_max_effectiveness and at_min_cost then -- Nothing left to improve return false end if at_max_effectiveness then -- Only cost improvement remains improvement = "cost" elseif at_min_cost then -- Only effectiveness improvement remains improvement = "effectiveness" else -- Either can be improved improvement = math.random(1, 2) == 1 and "cost" or "effectiveness" -- A 1/7 chance both are improved improvement = math.random(1, 7) == 1 and "both" or improvement end return improvement end -- Decrease the cost of the drug -- Set to 10%, provides good balance vs number of steps on the effectiveness ladder local function decreaseDrugCost() local new_cost = math.max(min_drug_cost, math.floor(disease.drug_cost * 0.9)) disease.drug_cost = new_cost end -- Improve a drug's effectiveness local function improveEffectiveness() local improve_rate = level_config.gbv.DrugImproveRate disease.cure_effectiveness = math.min(100, disease.cure_effectiveness + improve_rate) end -- Work out how to proceed with the next drug research local function decideNextResearch() -- Check if the player's research specialisation is still valid. -- Note, once a drug is 100% effective, it can no longer be specialised. -- TODO: This should only really happen if both cost+effectiveness can't be improved? if disease.cure_effectiveness >= 100 then -- Did the researchers concentrate on this drug? if self.research_policy.specialisation.current == drug then self.research_policy.specialisation.current = self.drain self:setResearchConcentration() end end -- Get a new drug to research if self.research_policy.drugs.current == drug then self:nextResearch("drugs") end end local imp = decideImprovement() if not imp then -- Nothing to improve, reset anyway decideNextResearch() return end if imp == "cost" or imp == "both" then decreaseDrugCost() end if imp == "effectiveness" or imp == "both" then improveEffectiveness() end decideNextResearch() if drug.disease.id == "the_squits" then self.hospital:giveAdvice({_A.research.drug_improved_1:format(drug.disease.name)}) else self.hospital:giveAdvice({_A.research.drug_improved:format(drug.disease.name)}) end end --[[ Called when it is time to improve a machine's strength or cost. !param machine The machine to improve, table taken from TheApp.objects --]] function ResearchDepartment:improveMachine(machine) local research_info = self.research_progress[machine] -- Improving strength and cost should alternate if research_info.strength_imp > research_info.cost_imp then -- Time to improve cost -- TODO: This is now 12.5%, based on observations by -- Mark L. Maybe add a new config option for this? local decrease = math.round(research_info.cost*0.125/10)*10 research_info.cost = research_info.cost - decrease -- Now find rooms where this object is used and lower the build_cost for them. for _, room in ipairs(self.world.available_rooms) do for obj, no in pairs(room.objects_needed) do if TheApp.objects[obj] == machine then local progress = self.research_progress[room] progress.build_cost = progress.build_cost - decrease * no -- Each room only defines the same object once, so break -- from the inner loop. break end end end research_info.cost_imp = research_info.cost_imp + 1 local max = self.world.map.level_config.gbv.MaxObjectStrength if research_info.start_strength >= max then if self.research_policy.specialisation.current == machine then self.research_policy.specialisation.current = self.drain self:setResearchConcentration() end end -- No matter what, check if another machine needs improvements more urgently. if self.research_policy.improvements.current == machine then self:nextResearch("improvements") end else -- Time to improve strength local improve_rate = self.world.map.level_config.gbv.ResearchIncrement research_info.start_strength = research_info.start_strength + improve_rate research_info.strength_imp = research_info.strength_imp + 1 if self.world.ui.app.config.new_machine_extra_info then self:updateMachinesDynamicInfo(machine.id) end end -- Tell the player that something has been improved self.hospital:giveAdvice({_A.research.machine_improved:format(machine.name)}) end --[[ Updates the dynamic info for each matching machine found in the player's hospital rooms. !param machine_id The machine ID for determining matches. --]] function ResearchDepartment:updateMachinesDynamicInfo(machine_id) for _, room in pairs(self.world.rooms) do if room.hospital == self.hospital then for obj, _ in pairs(room.objects) do if obj.object_type.id == machine_id then obj:updateDynamicInfo() break end end end end end --[[ Called when it is time to discover an object. This may currently only happen from research. !param object The object to discover, a table from TheApp.objects !param automatic If true the discovery was not made by the player's research department. --]] function ResearchDepartment:discoverObject(object, automatic) self.research_progress[object].discovered = true -- Go through all rooms to see if another one can be made available. for _, room_disc in pairs(self.hospital.room_discoveries) do if not room_disc.is_discovered then local room = room_disc.room local unveil_room = true for needed, _ in pairs(room.objects_needed) do local obj = self.research_progress[TheApp.objects[needed]] if obj and not obj.discovered then unveil_room = false break end end if unveil_room then room_disc.is_discovered = true if automatic then self.hospital:giveAdvice({_A.research.new_available:format(object.name)}) else self.hospital:giveAdvice({_A.research.new_machine_researched:format(object.name)}) end -- It may now be possible to continue researching machine improvements local current_improvement_research = self.research_policy.improvements.current local max_strength = self.world.map.level_config.gbv.MaxObjectStrength local min_strength = max_strength -- If we're not researching any improvement right now, and the newest discovery was -- a machine that requires an improvement, switch the current policy. if (not current_improvement_research or current_improvement_research.dummy) then for research_object, progress in pairs(self.research_progress) do if research_object.default_strength then -- Don't improve those that already have the max strength if progress.start_strength < max_strength then if progress.discovered and progress.start_strength < min_strength then self.research_policy["improvements"].current = research_object min_strength = progress.start_strength end end end end end end end end -- Now find out what to do next. self:nextResearch(object.research_category) end --[[ Called when it is time to discover a disease (i.e. after diagnosis in the GP) !param disease The disease to discover, a table from world.available_diseases --]] function ResearchDepartment:discoverDisease(disease) self.hospital.disease_casebook[disease.id].discovered = true local index = #self.hospital.discovered_diseases + 1 self.hospital.discovered_diseases[index] = disease.id self.hospital:adviseDiscoverDisease(disease) -- It may now be possible to continue researching drug improvements local casebook_disease = self.hospital.disease_casebook[disease.id] local current_drug_research = self.research_policy.drugs.current -- If we're not researching any drug right now, and the newest discovery was -- a disease that requires a drug, switch the current policy. if (not current_drug_research or current_drug_research.dummy) and casebook_disease.drug then self.research_policy.drugs.current = casebook_disease end self:setResearchConcentration() end --[[! It also costs to research. TODO: This is now just $3 per day and doctor (if at 100%), what should it be? --]] function ResearchDepartment:researchCost() local acc_cost = self.hospital.acc_research_cost local fraction = 0 for _, tab in pairs(self.research_policy) do -- Don't pay for categories where nothing is really researched at the moment. if type(tab) == "table" then if tab.current and not tab.current.dummy then fraction = fraction + tab.frac end end end -- Find out how many doctors are currently doing research local doctors = 0 for _, room in pairs(self.world.rooms) do if room.room_info.id == "research" then for _, _ in pairs(room.staff_member_set) do doctors = doctors + 1 end end end acc_cost = acc_cost + math.ceil(3 * doctors * fraction/100) self.hospital.acc_research_cost = acc_cost end --[[ Concentrates research on a given disease. Concentrating on a machine will improve it if it's been discovered and help researching it otherwise. Concentrating on a drug will improve the drug provided the pharmacy is discovered. Otherwise it will research the cabinet. TODO: Make it possible to concentrate on psychological diseases if the psychiatry hasn't been discovered. !param disease_id The id of the disease to focus on. --]] function ResearchDepartment:concentrateResearch(disease_id) local book_entry = self.hospital.disease_casebook[disease_id] -- First set flags so that the casebook shows the right thing. if book_entry.concentrate_research then -- Already concentrated, we actually just want to cancel that. book_entry.concentrate_research = nil -- Make specialisation a dummy again self.research_policy.specialisation.current = self.drain else for key, disease in pairs(self.hospital.disease_casebook) do -- Set flag on previously concentrated disease if disease.concentrate_research then self.hospital.disease_casebook[key].concentrate_research = nil end end -- Concentrate on the new one book_entry.concentrate_research = true -- Now, find the object related to the disease. -- TODO: This assumes it is the last room in the treatment_rooms list -- which is the one to concentrate on. local room if book_entry.disease.treatment_rooms then local index = #book_entry.disease.treatment_rooms room = book_entry.disease.treatment_rooms[index] else -- This is a pseudo-disease, it should represent a piece of diagnosis -- machinery that we can improve via research. assert(book_entry.disease.id:sub(1, 5) == "diag_", "Trying to " .. "concentrate research on disease without treatment rooms that " .. "isn't a diagnosis machine pseudodisease") room = book_entry.disease.id:sub(6) end local object -- TODO: Can these loops be improved upon? for obj, _ in pairs(self.world.available_rooms[room].objects_needed) do for research, _ in pairs(self.research_progress) do if research.id == obj and research.thob then object = research break end end end assert(object, "An object that was about to be improved or discovered".. "could not be found") if book_entry.drug and self.research_progress[object].discovered then -- A drug should be improved self.research_policy.specialisation.current = book_entry else -- No matter if it's a drug or some machine - -- we want to discover (including the cabinet) or improve it. self.research_policy.specialisation.current = object end end end function ResearchDepartment:afterLoad(old, new) if old < 106 then self.level_config = nil end if old < 238 then self.research_policy.total = self.research_policy['global'] self.research_policy['global'] = nil end end CorsixTH-0.70.0/CorsixTH/Lua/room.lua000066400000000000000000001274251522247547500172340ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "Room" ---@type Room local Room = _G["Room"] local COST_RECOVERY = 0.40 -- Percentage cost recovery of destroyed room items function Room:Room(x, y, w, h, id, room_info, world, hospital, door, door2) self.id = id self.world = world self.hospital = hospital -- Serving staff in single occupancy rooms (like GD, Pharmacy and etc) self.staff_member = nil -- Serving staff list in multi-occupancy rooms (like Operating Theatre) -- Only set this for multi-occupancy, otherwise single occupancy rooms break self.staff_member_set = nil -- Override with {} in derived class self.room_info = room_info self:initRoom(x, y, w, h, door, door2) end --! Initialises primary components of the room. -- Additionally, if there is already a room, e.g. it is being moved, -- we can just reinit it by calling this, not make a new one. --!param x (coordinate) starting tile --!param y (coordinate) starting tile --!param w (num) width of room --!param h (num) height of room --!param door (object) primary door for room --!param door2 (object) optional secondary door (e.g. swing doors) function Room:initRoom(x, y, w, h, door, door2) self.x = x self.y = y self.width = w self.height = h self.maximum_patients = 1 -- A good default for most rooms -- setup new door and new queue local new_door = door local old_door = self.door new_door:setupDoor(self, old_door) self.door = new_door -- If it's a swing door we have two doors self.door2 = door2 if not self:hasQueueDialog() then door:setDynamicInfo('text', { self.room_info.name }) else door:setDynamicInfo('text', { self.room_info.name, _S.dynamic_info.object.queue_size:format(0), _S.dynamic_info.object.queue_expected:format(0) }) end self.built = false self.crashed = false self.world.map.th:markRoom(x, y, w, h, self.room_info.floor_tile, self.id) self.humanoids = {--[[a set rather than a list]]} self.objects = {--[[a set rather than a list]]} -- the set of humanoids walking to this room self.humanoids_enroute = {--[[a set rather than a list]]} self.world:prepareRectangleTilesForBuild(self.x, self.y, self.width, self.height) end --! Get the tile next to the door. --!param inside (bool) If set, get the tile inside the room, else get the tile outside. --!return x,y (tile coordinates) of the tile next to the door. function Room:getEntranceXY(inside) local door = self.door local x, y = door.tile_x, door.tile_y if (inside and self.world:getRoom(x, y) ~= self) or (not inside and self.world:getRoom(x, y) == self) then if door.direction == "north" then y = y - 1 elseif door.direction == "west" then x = x - 1 end end return x, y end --! Construct an 'walk' action to the tile next to the door, just outside the room. --!return Action to move to the tile just outside the room. function Room:createLeaveAction() local x, y = self:getEntranceXY(false) return WalkAction(x, y):setIsLeaving(true):truncateOnHighPriority() end function Room:createEnterAction(humanoid_entering, callback) local x, y = self:getEntranceXY(true) if not callback then if class.is(humanoid_entering, Patient) then callback = --[[persistable:room_patient_enroute_cancel]] function() humanoid_entering:setNextAction(SeekRoomAction(self.room_info.id)) end elseif class.is(humanoid_entering, Vip) then callback = --[[persistable:room_vip_enroute_cancel]] function() humanoid_entering:setNextAction(IdleAction()) humanoid_entering.waiting = 1 end else callback = --[[persistable:room_humanoid_enroute_cancel]] function() local room = humanoid_entering:getRoom() -- if the room is one we should 'cycle' in, resume that -- otherwise staff member will meander in room incorrectly again if room and room.doStaffUseCycle and humanoid_entering.user_of ~= room.door then room:commandEnteringStaff(humanoid_entering) else humanoid_entering:setNextAction(MeanderAction()) end end end end if self.is_active then self.door.queue:expect(humanoid_entering, {callback = callback}) end return WalkAction(x, y):setIsEntering(true) end --! Get a table of all patients using the room --! A room usually only has one patient, however in the ward can have multiple --! patients at once. --!return patients (table) All patients actively using the room function Room:getPatients() local patients = {} -- Are there patients using the room? if self:getPatientCount() == 0 then return patients end for humanoid in pairs(self.humanoids) do if class.is(humanoid, Patient) then patients[#patients + 1] = humanoid end end return patients end --! Get any patient in the room. --!return A patient (humanoid) if there is a patient, nil otherwise. function Room:getPatient() for humanoid in pairs(self.humanoids) do if class.is(humanoid, Patient) then return humanoid end end end --! Count the number of patients in the room. --!return Number of patients in the room. function Room:getPatientCount() local count = 0 for humanoid in pairs(self.humanoids) do if class.is(humanoid, Patient) then count = count + 1 end end return count end -- function that sets a given attribute to a given value for all staff members. -- Should be overridden for rooms that have more than one staff member. function Room:setStaffMembersAttribute(attribute, value) if self.staff_member then self.staff_member[attribute] = value end end function Room:dealtWithPatient(patient) patient = patient or self:getPatient() -- If the patient was sent home while in the room, don't -- do anything apart from removing any leading idle action. if not patient.hospital or patient.going_home then if patient:getCurrentAction().name == "idle" then patient:finishAction() end return end patient:setNextAction(self:createLeaveAction()) patient:addToTreatmentHistory(self.room_info) if self.staff_member then self:setStaffMembersAttribute("dealing_with_patient", false) end if patient.disease then if not patient.diagnosed then -- Patient not yet diagnosed, hence just been in a diagnosis room. -- Increment diagnosis_progress, and send patient back to GP. patient:completeDiagnosticStep(self) self.hospital:receiveMoneyForTreatment(patient) if patient:agreesToPay("diag_gp") then patient:queueAction(SeekRoomAction("gp")) else patient:goHome("over_priced", "diag_gp") end else -- Patient just been in a cure room, so either patient now cured, or needs -- to move onto next cure room. patient.cure_rooms_visited = patient.cure_rooms_visited + 1 local next_room = patient.disease.treatment_rooms[patient.cure_rooms_visited + 1] if next_room then -- Do not say that it is a treatment room here, since that check should already have been made. patient:queueAction(SeekRoomAction(next_room)) else -- Patient is "done" at the hospital patient:treatDisease() end end else patient:queueAction(MeanderAction():setCount(2)) patient:queueAction(IdleAction()) end end local profile_attributes = { Psychiatrist = "is_psychiatrist", Surgeon = "is_surgeon", Researcher = "is_researcher", } -- Given any type of staff criteria (required/maximum), subtract the staff in the room and return the result function Room:getMissingStaff(criteria) local result = {} for attribute, count in pairs(criteria) do for humanoid in pairs(self.humanoids) do -- check state of humanoid is appropriate for room -- check they are staff and meet requirements for the room -- ensure not leaving (going to staff room) or fired -- check if answering a call to another room if class.is(humanoid, Staff) and humanoid:fulfillsCriterion(attribute) and not humanoid:isLeaving() and not humanoid.fired and not (humanoid.on_call and humanoid.on_call.object ~= self) and not humanoid.going_to_staffroom then count = count - 1 end end if count <= 0 then count = nil end result[attribute] = count end return result end function Room:testStaffCriteria(criteria, extra_humanoid) -- criteria should be required_staff or maximum_staff table. -- if extra_humanoid is nil, then returns true if the humanoids in the room -- meet the given criteria, and false otherwise. -- if extra_humanoid is not nil, then returns true if the given humanoid -- would assist in satisfying the given criteria, and false if they would not. local missing = self:getMissingStaff(criteria) if extra_humanoid then local class = extra_humanoid.humanoid_class if class == "Surgeon" then class = "Doctor" end if missing[class] then return true end if class == "Doctor" then -- check for special proficiencies for attribute, profile_attribute in pairs(profile_attributes) do if extra_humanoid.profile and extra_humanoid.profile[profile_attribute] == 1.0 and missing[attribute] then return true end end end return false else return next(missing) == nil end end local no_staff = {} -- Constant denoting 'no staff at all' in a room. --! Get the type and number of maximum staff for the room. --!return (table) Type and number of maximum staff. function Room:getMaximumStaffCriteria() -- Some rooms have dynamic criteria (i.e. dependent upon the number of items -- in the room), so this method is provided for such rooms to override it. return self.room_info.maximum_staff or self.room_info.required_staff or no_staff end --! Get the type and number of required staff for the room. --!return (table) Type and number of required staff. function Room:getRequiredStaffCriteria() return self.room_info.required_staff or no_staff end function Room:onHumanoidEnter(humanoid) assert(not self.humanoids[humanoid], "Humanoid entering a room that they are already in") humanoid.in_room = self humanoid.last_room = self -- Remember where the staff was for them to come back after staffroom rest -- Do not set humanoids[humanoid] here, because it affect staffFitsInRoom test -- If this humanoid for some strange reason happens to enter a non-active room, -- just leave. if not self.is_active then print('Warning: humanoid entering non-active room') self.humanoids[humanoid] = true if class.is(humanoid, Patient) then self:makeHumanoidLeave(humanoid) humanoid:queueAction(SeekRoomAction(self.room_info.id)) else humanoid:setNextAction(self:createLeaveAction()) humanoid:queueAction(MeanderAction()) end return end if class.is(humanoid, Handyman) then -- Handymen can always enter a room (to repair stuff, water plants, etc.) self.humanoids[humanoid] = true -- Check for machines which need repair or plants which need watering if -- the handyman didn't arrive as a part of a job if humanoid.on_call then assert(humanoid.on_call.object:getRoom() == self, "Handyman arrived is on call but not arriving to the designated room") local machine = self:getRoomMachine() if machine then local handyman = machine.repairing if humanoid == handyman then -- The handyman arrived to fix the machine. Should lock the room to keep patients out. self:lockRoomOnRepair() end end else -- If the handyman was not assigned for the job (e.g. drop by manual pickup), do answer a call humanoid:setNextAction(AnswerCallAction()) end self:tryAdvanceQueue() return end local researcher_desks = { (_A.warnings.researcher_needs_desk_1), (_A.warnings.researcher_needs_desk_2), (_A.warnings.researcher_needs_desk_3), } local nurse_desks = { (_A.warnings.nurse_needs_desk_1), (_A.warnings.nurse_needs_desk_2), } if class.is(humanoid, Staff) then -- If the room is already full of staff, or the staff member isn't relevant -- to the room, then make them leave. Otherwise, take control of them. local staff_entered = humanoid if not self:staffFitsInRoom(staff_entered) then if self:getStaffMember() and self:staffMeetsRoomRequirements(staff_entered) then local staff_in_room = self:getStaffMember() self.humanoids[staff_entered] = true if staff_in_room.profile.is_researcher and self.room_info.id == "research" then self.hospital:giveAdvice(researcher_desks) end if class.is(staff_in_room, Nurse) and self.room_info.id == "ward" then self.hospital:giveAdvice(nurse_desks) end if not staff_in_room.dealing_with_patient or staff_in_room:isMeandering() then -- Previous staff in the room not currently occupied by serving patient in room. -- Send out the previous staff and appoint new one. staff_in_room:setNextAction(self:createLeaveAction()) staff_in_room:queueAction(MeanderAction()) self.staff_member = staff_entered staff_entered:setCallCompleted() self:commandEnteringStaff(staff_entered) else -- Previous staff in the room currently occupied by serving patient in room. -- Send out the entered staff. It's not needed here. staff_entered:setNextAction(self:createLeaveAction()) staff_entered:queueAction(MeanderAction()) end else -- Inappropriate staff for this room self.humanoids[staff_entered] = true staff_entered:setNextAction(self:createLeaveAction()) staff_entered:queueAction(MeanderAction()) staff_entered:adviseWrongPersonForThisRoom() end else self.humanoids[staff_entered] = true staff_entered:setCallCompleted() self:commandEnteringStaff(staff_entered) end self:tryAdvanceQueue() return end self.humanoids[humanoid] = true self:tryAdvanceQueue() if class.is(humanoid, Patient) then -- An infect patient's disease may have changed so they might have -- been sent to an incorrect diagnosis room, they should leave and go -- back to the gp for redirection local patient_entered = humanoid if patient_entered.infected and not patient_entered.diagnosed and not self:isDiagnosisRoomForPatient(patient_entered) then patient_entered:queueAction(self:createLeaveAction()) patient_entered.needs_redirecting = true patient_entered:queueAction(SeekRoomAction("gp")) return end -- Check if the staff requirements are still fulfilled (the staff might have left / been picked up meanwhile) if self:testStaffCriteria(self:getRequiredStaffCriteria()) then if self.staff_member then self:setStaffMembersAttribute("dealing_with_patient", true) end self:commandEnteringPatient(patient_entered) else patient_entered:setNextAction(self:createLeaveAction()) patient_entered:queueAction(self:createEnterAction(patient_entered)) end end end --! Get the current staff member. -- In multi-occupancy rooms this returns the staff member with the minimum service quality --!return (staff) The current staff member. function Room:getStaffMember() if not self.staff_member_set then return self.staff_member end local staff for staff_member, _ in pairs(self.staff_member_set) do if not staff_member.fired and not staff_member:hasLeavingAction() then if not staff or staff:getServiceQuality() > staff_member:getServiceQuality() then staff = staff_member end end end return staff end --! Set the current staff member. --!param staff (staff) Staff member to denote as current staff. function Room:setStaffMember(staff) self.staff_member = staff end --! Does the given staff member fit in the room? -- Returns false if the room is already full of staff or if the given member of staff cannot help out. -- Otherwise returns true. --!return (bool) True if the staff member can work in the room, else False. function Room:staffFitsInRoom(staff) local criteria = self:getMaximumStaffCriteria() if self:testStaffCriteria(criteria) or not self:testStaffCriteria(criteria, staff) then return false end return true end --! Returns true if the humanoid meets (one of) the required staff criteria of the room function Room:staffMeetsRoomRequirements(humanoid) local criteria = self:getRequiredStaffCriteria() for attribute, _ in pairs(criteria) do if humanoid:fulfillsCriterion(attribute) then return true end end return false end --! When a valid member of staff enters the room this function is called. -- Can be extended in derived classes. --!param staff (object) The staff in question --!param already_initialized (bool) If true, this means that the staff has already got order -- what to do. function Room:commandEnteringStaff(staff, already_initialized) if not already_initialized then self.staff_member = staff staff:setNextAction(MeanderAction()) end self:tryToFindNearbyPatients() staff:setDynamicInfoText("") -- This variable is used to avoid multiple calls for staff (sound played only) self.sound_played = nil if self:testStaffCriteria(self:getRequiredStaffCriteria()) then self.world.dispatcher:dropFromQueue(self) end end --! Activates and deactivates the staff waiting for patient mood icon -- and dynamic info text --!param activate (bool) - true to activate, false or nil to deactivate function Room:_staffWaitToggle(activate) if not self.staff_member and not self.staff_member_set then return -- No staff in room end local state = "deactivate" local dynamic_text = "" if activate then dynamic_text = _S.dynamic_info.staff.actions.waiting_for_patient state = "activate" end if not self.staff_member_set and self.staff_member then -- single occupancy rooms (like GD, Pharmacy and etc) self.staff_member:setMood("staff_wait", state) self.staff_member:setDynamicInfoText(dynamic_text) else -- multi-occupancy rooms (like Operating Theatre) for staff_member in pairs(self.staff_member_set) do staff_member:setMood("staff_wait", state) staff_member:setDynamicInfoText(dynamic_text) end end end --! Check the target room for a staff wait toggle is not staff room/training/toilets, --! and the front humanoid is a patient. function Room:_checkWaitToggleValidTarget() return self:hasQueueDialog() and self.room_info.id ~= "toilets" and class.is(self.door.queue:front(), Patient) end --! Handle the patient coming into the room --! To be extended in derived classes. --!param humanoid The patient entering function Room:commandEnteringPatient(humanoid) self.door.queue.visitor_count = self.door.queue.visitor_count + 1 humanoid:updateDynamicInfo("") self:_staffWaitToggle(false) -- Staff no longer waiting end function Room:tryAdvanceQueue() if self.door.queue and self.door.queue:size() > 0 and not self.door.user and not self.door.reserved_for then local front = self.door.queue:front() -- These two conditions differ by the waiting symbol if self:canHumanoidEnter(front) then self.door.queue:pop() self.door:updateDynamicInfo() if self:_checkWaitToggleValidTarget() then self:_staffWaitToggle(true) -- Staff are now waiting end elseif self.humanoids[front] then self.door.queue:pop() self.door:updateDynamicInfo() end end end --! Handles the departure of a humanoid from the room --!param humanoid The subject entity function Room:onHumanoidLeave(humanoid) if self.staff_member == humanoid then self.staff_member = nil end humanoid.in_room = nil if not self.humanoids[humanoid] then print("Warning: Humanoid leaving a room that they are not in") return end self.humanoids[humanoid] = nil local staff_leaving = false -- used only for staff leaving immediately after a patient if class.is(humanoid, Patient) then -- Some staff member in the room might be waiting to get to the staffroom. for room_humanoid in pairs(self.humanoids) do -- A patient leaving allows doctors/nurses inside to go to staffroom, if needed -- In a rare case a handyman that just decided he wants to go to the staffroom -- could be in the room at the same time as a patient leaves. if class.is(room_humanoid, Staff) and not class.is(room_humanoid, Handyman) then if room_humanoid.staffroom_needed then room_humanoid.staffroom_needed = nil room_humanoid:goToStaffRoom() staff_leaving = true end end end -- There might be other similar rooms with patients queueing if self.door.queue and self.door.queue:reportedSize() == 0 and self.is_active then self:tryToFindNearbyPatients() end end if not staff_leaving then self:tryAdvanceQueue() else -- Staff is leaving. If there is still a need for this room (people are in the queue) then call -- someone new. if self.active and self.door.queue:patientSize() > 0 then -- This call might not be effective, if the doctor last action is -- walking/must_happen but is_leaving not set (psych likes to walk around in the room) -- hence testStaffCriteria still pass. -- This is guarded by onHumanoidLeave(Staff) self.world.dispatcher:callForStaff(self) end end if class.is(humanoid, Staff) then -- Make patients leave the room (except wards) if there are no longer enough staff if not self:testStaffCriteria(self:getRequiredStaffCriteria()) or self:getStaffMember() == nil then local call_for_new_staff = self.door.queue:patientSize() > 0 for room_humanoid in pairs(self.humanoids) do if class.is(room_humanoid, Patient) and self:shouldHavePatientReenter(room_humanoid) then call_for_new_staff = true if self.room_info.id ~= "ward" then self:makeHumanoidLeave(room_humanoid) room_humanoid:queueAction(self:createEnterAction(room_humanoid)) end end end -- Call for staff if needed if self.is_active and call_for_new_staff then self.world.dispatcher:callForStaff(self) end end -- Remove any unwanted moods the staff member might have humanoid:setMood("staff_wait", "deactivate") end if class.is(humanoid, Handyman) then local machine = self:getRoomMachine() if machine then local handyman = machine.repairing if humanoid == handyman and not self.manual_repair then -- The handyman arrived to fix the machine was grabbed from the room before repair finished. self:unlockRoomOnRepair() self:tryAdvanceQueue() end end end -- The player might be waiting to edit this room if not self.is_active then local people_in_room = 0 for _ in pairs(self.humanoids) do people_in_room = people_in_room + 1 end if people_in_room == 0 then self:enterEditMode() end end end function Room:enterEditMode() local ui = self.world.ui -- If we have the window for this room machine open, close it local window = ui:getWindow(UIMachine) if window and window.machine and window.machine:getRoom() == self then window:close() end ui:addWindow(UIEditRoom(ui, self)) ui:setCursor(ui.default_cursor) end function Room:shouldHavePatientReenter(patient) return not patient:hasLeavingAction() end local tile_factor = 10 -- how many tiles further are we willing to walk for 1 person fewer in the queue local readiness_bonus = 50 -- how many tiles further are we willing to walk if the room has all the required staff --! Score function to decide how desirable a room is for a patient. --!return (int) The score, lower is better. function Room:getUsageScore() local queue = self.door.queue local score = queue:patientSize() + self:getPatientCount() - self.maximum_patients score = score * tile_factor if self:testStaffCriteria(self:getRequiredStaffCriteria()) then score = score - readiness_bonus end -- Add constant penalty if queue is full if queue:isFull() then score = score + 1000 end return score end function Room:canHumanoidEnter(humanoid) -- If the room is not active nobody can enter if not self.is_active then return false end -- By default, staff can always enter if class.is(humanoid, Staff) then return true end -- By default, patients can only enter if there are sufficient staff and not -- too many patients. if class.is(humanoid, Patient) and not self.needs_repair then return self:testStaffCriteria(self:getRequiredStaffCriteria()) and self:getPatientCount() < self.maximum_patients end -- By default, other classes of humanoids cannot enter return false end -- Function stub for rooms to implement. Called when the final confirm -- button has been pressed when building/editing a room. function Room:roomFinished() -- True once the room has been finished after initial construction, and then -- as long as the user doesn't edit it and go back beyond the first phase (place objects) self.built = true -- Only true when not editing the room at all. self.is_active = true -- Some rooms should not have the door cursor for the queue dialog if not self:hasQueueDialog() then self.door.hover_cursor = TheApp.gfx:loadMainCursor("default") end -- Show information about the room if not already shown. -- Also only show them if the player is playing the original campaign. if tonumber(self.world.map.level_number) and self.world.room_information_dialogs then if not self.world.room_built[self.room_info.id] then self.world.ui:addWindow(UIInformation(self.world.ui, _S.room_descriptions[self.room_info.id])) self.world.room_built[self.room_info.id] = true end end self:tryToFindNearbyPatients() -- It may also happen that there are patients queueing for this room already (e.g after editing) if self.door.queue:patientSize() > 0 then self.world.dispatcher:callForStaff(self) end self:tryAdvanceQueue() self:calculateHappinessFactor() end --! Private function to check for any patients outside the door queueing, --! or about to come in --!return (boolean) true if any patient wants to come in function Room:_arePatientsWantingToEnter() local door = self.door return (door.queue and door.queue:patientSize() > 0) or (door.reserved_for and class.is(door.reserved_for, Patient)) or (door.user and class.is(door.user, Patient) and door.user:getCurrentAction().is_entering) end --! Check if a room is actively required by patients --! A room is deemed in demand should any patient be in a state of using, or --! wanting to use the room. --!return (boolean) true if the room is currently needed function Room:isRoomInDemand() if self:getPatientCount() > 0 then -- Maybe a patient is using the room right now? for _, patient in ipairs(self:getPatients()) do if not patient:isLeaving() then return true end end end return self:_arePatientsWantingToEnter() end --! Try to move a patient from the old room to the new room. --!param old_room (Room) Room that currently has the patient in the queue. --!param new_room (Room) Room that wants the patient in the queue. --!param patient (Humanoid) Patient to move. --!return (boolean) Whether we are done with the old room (no more patients will come from it). local function tryMovePatient(old_room, new_room, patient) local world = new_room.world local px, py = patient.tile_x, patient.tile_y -- Don't reroute the patient if he just decided to go to the toilet or is going home if patient.going_to_toilet ~= "no" or patient.going_home or patient.going_to_die then return false end local new_x, new_y = new_room:getEntranceXY(true) local old_x, old_y = old_room:getEntranceXY(true) local new_distance = world:getPathDistance(px, py, new_x, new_y) if not new_distance then return true end -- Patient cannot reach us, quit trying local new_score = new_room:getUsageScore() + new_distance local old_score local old_distance = world:getPathDistance(px, py, old_x, old_y) if old_distance then old_score = old_room:getUsageScore() + old_distance else old_score = new_score + 1 -- Make condition below fail. end if new_score >= old_score then return true end -- Update the queues local old_queue = old_room.door.queue old_queue:removeValue(patient) -- Rewrite the action queue for i, action in ipairs(patient.action_queue) do if i ~= 1 then action.todo_interrupt = true end -- The patient will most likely have a queue action for the other -- room that must be cancelled. To prevent the after_use callback -- of the drinks machine to enqueue the patient in the other queue -- again, is_in_queue is set to false so the callback won't run if action.name == 'queue' then action.is_in_queue = false elseif action.name == "walk" and action.x == old_x and action.y == old_y then patient:queueAction(new_room:createEnterAction(patient), i) break end end -- next_room_to_visit is guarded in checks in WalkAction from being incorrectly -- interrupted, there is possibility walk above isn't found and there is no new -- room to go to, but this remains mostly safe, see #1561 patient.next_room_to_visit = new_room new_room.door:updateDynamicInfo() old_room.door:updateDynamicInfo() local interrupted = patient:getCurrentAction() local on_interrupt = interrupted.on_interrupt if on_interrupt then interrupted.on_interrupt = nil on_interrupt(interrupted, patient, false) end return false end --! Try to find new patients for this room by 'stealing' them from other rooms nearby. function Room:tryToFindNearbyPatients() if not self.door.queue then return end for _, old_room in pairs(self.world.rooms) do if old_room.hospital == self.hospital and old_room ~= self and old_room.room_info == self.room_info and old_room.door.queue and old_room.door.queue:reportedSize() >= 2 then local old_queue = old_room.door.queue local pat_number = old_queue:reportedSize() while pat_number > 1 do local patient = old_queue:reportedHumanoid(pat_number) if tryMovePatient(old_room, self, patient) then break end -- tryMovePatient may have just removed patient 'pat_number', but it does -- not change the queue in front of it. 'pat_number - 1' thus still exists. pat_number = pat_number - 1 end end end end --! Explode the room. function Room:crashRoom() self.door:closeDoor() if self.door2 then self.door2.hover_cursor = nil end -- A patient might be about to use the door (staff are dealt with elsewhere): if self.door.reserved_for then local person = self.door.reserved_for if not person:isLeaving() then if class.is(person, Patient) then --Delay so that room is destroyed before the SeekRoom search. person:setNextAction(IdleAction():setCount(1)) person:queueAction(SeekRoomAction(self.room_info.id)) end end person:finishAction() self.door.reserved_for = nil end local remove_humanoid = function(humanoid) humanoid:queueAction(IdleAction(), 1) humanoid.user_of = nil -- Make sure any emergency list is not messed up. -- Note that these humanoids might just have been kicked. (No hospital set) if humanoid.is_emergency then table.remove(self.world:getLocalPlayerHospital().emergency_patients, humanoid.is_emergency) end humanoid:die() humanoid:despawn() self.world:destroyEntity(humanoid) end -- Remove all humanoids in the room for humanoid, _ in pairs(self.humanoids) do remove_humanoid(humanoid) end self.humanoids = {} -- There might also be someone using the door, even if that person is just about to exit -- he/she is killed too. local walker = self.door.user if walker then self.door:removeUser(walker) remove_humanoid(walker) end -- Remove all objects in the room local fx, fy = self:getEntranceXY(true) for object, _ in pairs(self.world:findAllObjectsNear(fx, fy)) do -- Machines (i.e. objects with strength) are already done. if object.object_type.class == "Plant" then local index = self.hospital:getIndexOfTask(object.tile_x, object.tile_y, "watering") if index ~= -1 then self.hospital:removeHandymanTask(index, "watering") end object.unreachable = true end if object.object_type.id ~= "door" and not object.strength and object.object_type.class ~= "SwingDoor" then object.user = nil object.user_list = nil object.reserved_for = nil object.reserved_for_list = nil self.world:destroyEntity(object) end end local map = self.world.map.th -- TODO: Explosion, animations: 4612, 3280 -- Make every floor tile have soot on them for x = self.x, self.x + self.width - 1 do for y = self.y, self.y + self.height - 1 do local soot = self.world:newObject("litter", x, y) soot:setLitterType("soot_floor", 0) end end -- Make walls have soot on them too local ty = self.y local soot_type, soot, block for x = self.x, self.x + self.width - 1 do block = map:getCell(x, ty, 2) soot_type = "soot_wall" if self.world:getWallSetFromBlockId(block) == "window_tiles" then soot_type = "soot_window" end soot = self.world:newObject("litter", x, ty) soot:setLitterType(soot_type, 1) end local x = self.x for y = self.y, self.y + self.height - 1 do block = map:getCell(x, y, 3) soot_type = "soot_wall" if self.world:getWallSetFromBlockId(block) == "window_tiles" then soot_type = "soot_window" end soot = self.world:newObject("litter", x, y) soot:setLitterType(soot_type, 0) end self.hospital.num_explosions = self.hospital.num_explosions + 1 local value_change = self.hospital.research.research_progress[self.room_info].build_cost self.hospital:changeValue(value_change * -1) self.hospital:changeReputation("room_crash") self.crashed = true self:deactivate() end -- Tells a humanoid in the room to leave it. This can be overridden for special -- handling, e.g. if the humanoid needs to change before leaving the room. function Room:makeHumanoidLeave(patient) local leave = self:createLeaveAction():setMustHappen(true) patient:setNextAction(leave) end function Room:makeHumanoidDressIfNecessaryAndThenLeave(humanoid) if not humanoid:isLeaving() then local leave = self:createLeaveAction():setMustHappen(true) if not string.find(humanoid.humanoid_class, "Stripped") then --The humanoid is dressed humanoid:setNextAction(leave) return end local screen, sx, sy = self.world:findObjectNear(humanoid, "screen") local use_screen = UseScreenAction(screen):setMustHappen(true):setIsLeaving(true) --Make old saved game action queues compatible with the changes made by the #293 fix commit: for actions_index, action in ipairs(humanoid.action_queue) do if action.name == "use screen" or (action.name == "walk" and action.x == sx and action.y == sy) then if not action.is_leaving then humanoid.humanoid_actions[actions_index].is_leaving = true end if action.name == "walk" and action.must_happen then action.must_happen = false end end end if humanoid:getCurrentAction().name == "use_screen" then --The humanoid must be using the screen to undress because this isn't a leaving action: if not humanoid:hasDressingAndLeavingAction() then humanoid:getCurrentAction().after_use = nil humanoid:setNextAction(use_screen) end else --The humanoid undressed but not using use_screen humanoid:setNextAction(WalkAction(sx, sy):setMustHappen(true):disableTruncate():setIsLeaving(true)) humanoid:queueAction(use_screen) end humanoid:queueAction(leave) end end --! Deactivate the room from the world. function Room:deactivate() self.is_active = false -- So that no more patients go to it. self.world:notifyRoomRemoved(self) -- crashRoom might have deactivated the door already if self.door.queue then self.door.queue:rerouteAllPatients(self.room_info.id) end self.hospital:removeRatholesAroundRoom(self) end function Room:tryToEdit() self:deactivate() local people_in_room = 0 -- Tell all humanoids that they should leave -- If someone is entering the room right now they are also counted. if self.door.user and self.door.user:getCurrentAction().is_entering then people_in_room = 1 end for humanoid, _ in pairs(self.humanoids) do if not humanoid:isLeaving() then if class.is(humanoid, Patient) then self:makeHumanoidLeave(humanoid) humanoid:queueAction(SeekRoomAction(self.room_info.id)) else humanoid:setNextAction(self:createLeaveAction()) humanoid:queueAction(MeanderAction()) end end people_in_room = people_in_room + 1 end -- If there were no people inside we're ready to edit the room if people_in_room == 0 then self:enterEditMode() end end function Room:hasQueueDialog() return not self.room_info.has_no_queue_dialog end --! Stub to be extended in subclasses, if needed. function Room:afterLoad(old, new) if old < 46 then self.humanoids_enroute = {--[[a set rather than a list]]} end if old < 137 then if self.door.queue then -- reset expected count so we can recalculate it self.door.queue.expected = {} self.door.queue.expected_count = 0 for enroute, callback in pairs(self.humanoids_enroute) do -- Go through all registered callbacks local clear_this_callback = true -- Presume the callback must be cleared for _, action in pairs(enroute.action_queue) do -- Go through the action queue if action.name == "walk" then -- Only look at walk actions if self == self.world:getRoom(action.x, action.y) and -- This walk action leads into the room self ~= enroute:getRoom() then -- The entity is not already in the room clear_this_callback = false -- Assume the callback is valid, don't clear end end end if not clear_this_callback then -- still expecting self.door.queue:expect(enroute, callback) end end self.door:updateDynamicInfo() end -- no longer using this so empty it self.humanoids_enroute = {} end if old < 186 then self:calculateHappinessFactor() end if old < 233 then if self.waiting_staff_member then -- Cancel delayed replace existing staff member in room self.waiting_staff_member:setNextAction(self:createLeaveAction()) self.waiting_staff_member:queueAction(MeanderAction()) self.waiting_staff_member.waiting_on_other_staff = nil end self.waiting_staff_member = nil self.dealt_patient_callback = nil end -- Patch the saves post 233 that labelled all rooms as having a staff_member_set if old >= 233 and old < 235 then local room_name = self.room_info.id if room_name ~= "ward" and room_name ~= "operating_theatre" and room_name ~= "research" then self.staff_member_set = nil end end end --[[ Is the room one of the diagnosis rooms for the patient? -- This used for epidemics when the disease and therefore the diagnosis -- rooms of a patient may change. -- @param patient (Patient) patient to verify if treatment room ]] -- @return result (boolean) true if is suitable diagnosis room, false otherwise function Room:isDiagnosisRoomForPatient(patient) if self.room_info.id ~= "gp" then for _, room_name in ipairs(patient.disease.diagnosis_rooms) do if self.room_info.id == room_name then return true end end return false else return true end end --! Get the average service quality of the staff members in the room. --!return (float) [0-1] Average staff service quality. function Room:getStaffServiceQuality() local quality = 0.5 if self.staff_member_set then -- For rooms with multiple staff member (like operating theatre) quality = 0 local count = 0 for member, _ in pairs(self.staff_member_set) do quality = quality + member:getServiceQuality() count = count + 1 end quality = quality / count elseif self.staff_member then -- For rooms with one staff member quality = self.staff_member:getServiceQuality() end return quality end local window_tile = list_to_set({116, 117, 118, 119, 120, 121, 124, 125, 126, 127}) --! Count the number of windows in the room --!return (int) Number of windows function Room:countWindows() local map, count = self.world.ui.app.map.th, 0 for x = self.x, self.x + self.width do for y = self.y, self.y + self.height do if window_tile[map:getCell(x, y, 2)] or window_tile[map:getCell(x, y, 3)] then count = count + 1 end end end return count end --! Get the removal cost --!return (int) cost of the room function Room:calculateRemovalCost() -- Charge double to clean it up local progress = self.hospital.research.research_progress local cost = math.floor(progress[self.room_info].build_cost * 2) -- Recover some cost as scrap for obj, _ in pairs(self.room_info.objects_needed) do -- Get how much this item costs. local obj_cost = self.hospital:getObjectBuildCost(obj) -- recover a percentage of cost as scrap value cost = cost - math.floor(obj_cost * COST_RECOVERY) end return cost end --! Calculate the effect the room has on humanoid happiness function Room:calculateHappinessFactor() -- The number of windows affects happiness local window_factor, space_factor, window_count = 0, 0, self:countWindows() if window_count > 0 then if self.room_info.id == "staff_room" then -- Staff are pleased to rest in a staff room with windows window_count = window_count * 2 end -- More windows help but in smaller increments window_factor = math.round(math.log(window_count)) / 1000 end -- Extra space in the room affects happiness local extraspace = (self.width * self.height) / (self.room_info.minimum_size * self.room_info.minimum_size) if extraspace > 1 then -- Greater space helps but in smaller increments space_factor = math.round(math.log(extraspace)) / 1000 end self.happiness_factor = window_factor + space_factor end --! Get this room machine, if it there --!return (object) machine object function Room:getRoomMachine() local fx, fy = self:getEntranceXY(true) for object, _ in pairs(self.world:findAllObjectsNear(fx, fy)) do if object.strength ~= nil then return object end end end --! Locks the room to prevent patient from entering due to repair in room. function Room:lockRoomOnRepair() self.needs_repair = true end --! Unlocks the room so repair no longer prevents patients from enter the room. function Room:unlockRoomOnRepair() self.needs_repair = false end ----- BEGIN Save game compatibility ----- -- These function are merely for save game compatibility. -- For 0.69.x gamesaves and below. -- And they does not participate in the current game logic. local --[[persistable:room_dealt_with_patient_callback]] function _(staff_humanoid) end ----- END Save game compatibility ----- CorsixTH-0.70.0/CorsixTH/Lua/rooms/000077500000000000000000000000001522247547500167015ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/rooms/blood_machine_room.lua000066400000000000000000000056431522247547500232330ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "blood_machine" room.vip_must_visit = false room.level_config_id = 15 room.class = "BloodMachineRoom" room.name = _S.rooms_short.blood_machine room.long_name = _S.rooms_long.blood_machine room.tooltip = _S.tooltip.rooms.blood_machine room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { blood_machine = 1 } room.build_preview_animation = 5094 room.categories = { diagnosis = 6, } room.minimum_size = 4 room.wall_type = "yellow" room.floor_tile = 19 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd006.wav" room.handyman_call_sound = "maint015.wav" class "BloodMachineRoom" (Room) ---@type BloodMachineRoom local BloodMachineRoom = _G["BloodMachineRoom"] function BloodMachineRoom:BloodMachineRoom(...) self:Room(...) end function BloodMachineRoom:commandEnteringPatient(patient) local staff = self.staff_member local machine, stf_x, stf_y = self.world:findObjectNear(patient, "blood_machine") local pat_x, pat_y = machine:getSecondaryUsageTile() staff:setNextAction(WalkAction(stf_x, stf_y)) patient:setNextAction(WalkAction(pat_x, pat_y)) patient:queueAction(IdleAction():setDirection(machine.direction == "north" and "west" or "north")) local length = math.random(2, 4) local loop_callback = --[[persistable:blood_machine_loop_callback]] function(action) if length <= 0 then action.prolonged_usage = false end length = length - 1 end local after_use = --[[persistable:blood_machine_after_use]] function() staff:setNextAction(MeanderAction()) self:dealtWithPatient(patient) end staff:queueAction(MultiUseObjectAction(machine, patient):setProlongedUsage(true) :setInvisiblePhaseSpan({-3, 3}):setLoopCallback(loop_callback):setAfterUse(after_use)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/cardiogram.lua000066400000000000000000000103771522247547500215240ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "cardiogram" room.vip_must_visit = false room.level_config_id = 12 room.class = "CardiogramRoom" room.name = _S.rooms_short.cardiogram room.long_name = _S.rooms_long.cardiogram room.tooltip = _S.tooltip.rooms.cardiogram room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { cardio = 1, screen = 1 } room.build_preview_animation = 918 room.categories = { diagnosis = 3, } room.minimum_size = 4 room.wall_type = "yellow" room.floor_tile = 19 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd001.wav" room.handyman_call_sound = "maint010.wav" class "CardiogramRoom" (Room) ---@type CardiogramRoom local CardiogramRoom = _G["CardiogramRoom"] function CardiogramRoom:CardiogramRoom(...) self:Room(...) end function CardiogramRoom:commandEnteringPatient(patient) local screen, sx, sy = self.world:findObjectNear(patient, "screen") patient:walkTo(sx, sy) local screen_after_use = --[[persistable:cardiogram_screen_after_use1]] function() local staff = self.staff_member local cardio, cx, cy = self.world:findObjectNear(patient, "cardio") staff:walkTo(cardio:getSecondaryUsageTile()) local staff_idle = IdleAction() staff:queueAction(staff_idle) patient:walkTo(cx, cy) local timer = 6 local phase = -2 local cardio_loop_callback = --[[persistable:cardiogram_cardio_loop_callback]] function(action) if not action.on_interrupt then action.prolonged_usage = false patient.num_animation_ticks = 1 return end timer = timer - 1 if timer == 0 then phase = phase + 1 if phase == 3 then action.prolonged_usage = false else patient.num_animation_ticks = 3 - math.abs(phase) end timer = 6 else action.secondary_anim = 1030 end end local cardio_after_use = --[[persistable:cardiogram_cardio_after_use]] function() if #staff.action_queue == 1 then staff:setNextAction(MeanderAction()) else staff:finishAction(staff_idle) end end patient:queueAction(MultiUseObjectAction(cardio, staff):setMustHappen(false) :setProlongedUsage(true):setLoopCallback(cardio_loop_callback):setAfterUse(cardio_after_use)) patient:queueAction(WalkAction(sx, sy):setIsLeaving(true):setMustHappen(false):disableTruncate()) local leaving_after_use = --[[persistable:cardiogram_screen_after_use2]] function() if #patient.action_queue == 1 then self:dealtWithPatient(patient) end end patient:queueAction(UseScreenAction(screen):setIsLeaving(true):setMustHappen(true):setAfterUse(leaving_after_use)) end patient:queueAction(UseScreenAction(screen):setAfterUse(screen_after_use)) return Room.commandEnteringPatient(self, patient) end function CardiogramRoom:makeHumanoidLeave(humanoid) self:makeHumanoidDressIfNecessaryAndThenLeave(humanoid) end function CardiogramRoom:onHumanoidLeave(humanoid) if self.staff_member == humanoid then self.staff_member = nil end Room.onHumanoidLeave(self, humanoid) end function CardiogramRoom:shouldHavePatientReenter(patient) return not patient:isLeaving() end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/decontamination.lua000066400000000000000000000101341522247547500225570ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "decontamination" room.vip_must_visit = false room.level_config_id = 30 room.class = "DecontaminationRoom" room.name = _S.rooms_short.decontamination room.long_name = _S.rooms_long.decontamination room.tooltip = _S.tooltip.rooms.decontamination room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { shower = 1, console = 1 } room.build_preview_animation = 5100 room.categories = { clinics = 8, } room.minimum_size = 5 room.wall_type = "blue" room.floor_tile = 19 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd024.wav" room.handyman_call_sound = "maint012.wav" class "DecontaminationRoom" (Room) ---@type DecontaminationRoom local DecontaminationRoom = _G["DecontaminationRoom"] function DecontaminationRoom:DecontaminationRoom(...) self:Room(...) end function DecontaminationRoom:commandEnteringStaff(staff) self.staff_member = staff staff:setNextAction(MeanderAction()) return Room.commandEnteringStaff(self, staff) end function DecontaminationRoom:commandEnteringPatient(patient) local staff = self.staff_member local shower, pat_x, pat_y = self.world:findObjectNear(patient, "shower") local console, stf_x, stf_y = self.world:findObjectNear(staff, "console") local --[[persistable:decontamination_shared_loop_callback]] function loop_callback() if staff:getCurrentAction().shower_ready and patient:getCurrentAction().shower_ready then staff:finishAction() patient:finishAction() end end staff:walkTo(stf_x, stf_y) local idle_action = IdleAction():setDirection(console.direction == "north" and "west" or "north") :setLoopCallback(loop_callback) idle_action.shower_ready = true staff:queueAction(idle_action) staff:queueAction(UseObjectAction(console)) patient:walkTo(pat_x, pat_y) idle_action = IdleAction():setDirection(shower.direction == "north" and "north" or "west") :setLoopCallback(loop_callback) idle_action.shower_ready = true patient:queueAction(idle_action) local prolonged = true local length = math.random() * 3 - staff.profile.skill if length < 1 then prolonged = false -- Really short usage else length = length - 1 end local shower_loop_callback = --[[persistable:shower_loop_callback]] function(action) length = length - 1 if length <= 0 then action.prolonged_usage = false end end local shower_after_use = --[[persistable:shower_after_use]] function() if not self.staff_member then return end self.staff_member:setNextAction(MeanderAction()) if not patient.going_home then self:dealtWithPatient(patient) end end patient:queueAction(UseObjectAction(shower):setProlongedUsage(prolonged) :setLoopCallback(shower_loop_callback):setAfterUse(shower_after_use)) return Room.commandEnteringPatient(self, patient) end function DecontaminationRoom:onHumanoidLeave(humanoid) if self.staff_member == humanoid then self.staff_member = nil end Room.onHumanoidLeave(self, humanoid) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/dna_fixer.lua000066400000000000000000000066021522247547500213470ustar00rootroot00000000000000--[[ Copyright (c) 2011 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "dna_fixer" room.vip_must_visit = true room.level_config_id = 23 room.class = "DNAFixerRoom" room.name = _S.rooms_short.dna_fixer room.long_name = _S.rooms_long.dna_fixer room.tooltip = _S.tooltip.rooms.dna_fixer room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { dna_fixer = 1, console = 1 } room.build_preview_animation = 5070 room.categories = { clinics = 6, } room.minimum_size = 5 room.wall_type = "blue" room.floor_tile = 17 room.swing_doors = true room.required_staff = { Researcher = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd015.wav" room.handyman_call_sound = "maint006.wav" class "DNAFixerRoom" (Room) ---@type DNAFixerRoom local DNAFixerRoom = _G["DNAFixerRoom"] function DNAFixerRoom:DNAFixerRoom(...) self:Room(...) end function DNAFixerRoom:commandEnteringPatient(patient) local staff = self.staff_member local dna_fixer, pat_x, pat_y = self.world:findObjectNear(patient, "dna_fixer") local console, stf_x, stf_y = self.world:findObjectNear(staff, "console") local --[[persistable:dna_fixer_shared_loop_callback]] function loop_callback() -- If the other humanoid has already started to idle we move on if staff:getCurrentAction().name == "idle" and patient:getCurrentAction().name == "idle" then -- We need to change to another type before starting, to be able -- to have different animations depending on gender. patient:setType(patient.change_into) local fixer_after_use = --[[persistable:dna_fixer_after_use]] function() self:dealtWithPatient(patient) staff:setNextAction(MeanderAction()) end patient:setNextAction(UseObjectAction(dna_fixer):setProlongedUsage(false) :setAfterUse(fixer_after_use)) staff:setNextAction(UseObjectAction(console)) end end -- As soon as one starts to idle the callback is called to see if the other one is already idling. patient:walkTo(pat_x, pat_y) patient:queueAction(IdleAction():setDirection(dna_fixer.direction == "north" and "north" or "west") :setLoopCallback(loop_callback)) staff:walkTo(stf_x, stf_y) staff:queueAction(IdleAction():setDirection(console.direction == "north" and "north" or "west") :setLoopCallback(loop_callback)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/electrolysis.lua000066400000000000000000000107671522247547500221400ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "electrolysis" room.vip_must_visit = false room.level_config_id = 23 room.class = "ElectrolysisRoom" room.name = _S.rooms_short.electrolysis room.long_name = _S.rooms_long.electrolysis room.tooltip = _S.tooltip.rooms.electrolysis room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { electrolyser = 1, console = 1 } room.build_preview_animation = 930 room.categories = { clinics = 5, } room.minimum_size = 5 room.wall_type = "blue" room.floor_tile = 17 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd019.wav" room.handyman_call_sound = "maint008.wav" class "ElectrolysisRoom" (Room) ---@type ElectrolysisRoom local ElectrolysisRoom = _G["ElectrolysisRoom"] function ElectrolysisRoom:ElectrolysisRoom(...) self:Room(...) end function ElectrolysisRoom:commandEnteringPatient(patient) local staff = self.staff_member local electrolyser, pat_x, pat_y = self.world:findObjectNear(patient, "electrolyser") local console, stf_x, stf_y = self.world:findObjectNear(staff, "console") local --[[persistable:electrolysis_shared_loop_callback]] function loop_callback() -- If the other humanoid has already started to idle we move on if staff:getCurrentAction().name == "idle" and patient:getCurrentAction().name == "idle" then -- Skilled doctors require less electrocutions local num_electrocutions = math.random(1, 5) * (2 - staff.profile.skill) -- We need to change to another type before starting, to be able -- to have different animations depending on gender. if math.random(0, 1) == 1 then patient:setType("Standard Male Patient") -- Other attributes already set else patient:setType("Standard Female Patient") patient:setLayer(0, math.random(1, 4) * 2) patient:setLayer(1, math.random(0, 3) * 2) patient:setLayer(2, 0) end local loop_callback_electrolysis = --[[persistable:electrolysis_loop_callback]] function(action) num_electrocutions = num_electrocutions - 1 if num_electrocutions <= 0 then -- Tired doctors can continue electrocuting for a bit too long... -- Fatigue 0.00 - normal number of electrocutions -- Fatigue 0.45 - normal number of electrocutions -- Fatigue 0.80 - expect 1 extra electrocution -- Fatigue 1.00 - expect 9 extra electrocutions if math.random() <= 0.1 + 2 * (1 - staff:getAttribute("fatigue")) then action.prolonged_usage = false end end end local after_electrolysis = --[[persistable:electrolysis_after_use]] function() self:dealtWithPatient(patient) staff:setNextAction(MeanderAction()) end patient:setNextAction(UseObjectAction(electrolyser):setLoopCallback(loop_callback_electrolysis) :setAfterUse(after_electrolysis)) staff:setNextAction(UseObjectAction(console)) end end -- As soon as one starts to idle the callback is called to see if the other one is already idling. patient:walkTo(pat_x, pat_y) patient:queueAction(IdleAction():setDirection(electrolyser.direction == "north" and "east" or "south") :setLoopCallback(loop_callback)) staff:walkTo(stf_x, stf_y) staff:queueAction(IdleAction():setDirection(console.direction == "north" and "east" or "south") :setLoopCallback(loop_callback)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/fracture_clinic.lua000066400000000000000000000054611522247547500225460ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "fracture_clinic" room.vip_must_visit = false room.level_config_id = 21 room.class = "FractureRoom" room.name = _S.rooms_short.fracture_clinic room.long_name = _S.rooms_long.fracture_clinic room.tooltip = _S.tooltip.rooms.fracture_clinic room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { cast_remover = 1 } room.build_preview_animation = 5072 room.categories = { clinics = 3, } room.minimum_size = 4 room.wall_type = "blue" room.floor_tile = 17 room.required_staff = { Nurse = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd004.wav" room.handyman_call_sound = "maint014.wav" class "FractureRoom" (Room) ---@type FractureRoom local FractureRoom = _G["FractureRoom"] function FractureRoom:FractureRoom(...) self:Room(...) end function FractureRoom:commandEnteringPatient(patient) local staff = self.staff_member local cast, pat_x, pat_y = self.world:findObjectNear(patient, "cast_remover") local stf_x, stf_y = cast:getSecondaryUsageTile() staff:walkTo(stf_x, stf_y) staff:queueAction(IdleAction():setDirection(cast.direction == "north" and "west" or "north")) patient:walkTo(pat_x, pat_y) local after_fracture = --[[persistable:fracture_clinic_after_use]] function() patient:setLayer(2, 0) -- Remove casts patient:setLayer(3, 0) patient:setLayer(4, 0) -- if no other actions for staff member meander in room if #staff.action_queue == 1 then staff:setNextAction(MeanderAction()) else staff:finishAction(staff:getCurrentAction()) end self:dealtWithPatient(patient) end patient:queueAction(MultiUseObjectAction(cast, staff):setAfterUse(after_fracture)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/general_diag.lua000066400000000000000000000114051522247547500220060ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "general_diag" room.vip_must_visit = false room.level_config_id = 27 room.class = "GeneralDiagRoom" room.name = _S.rooms_short.general_diag room.long_name = _S.rooms_long.general_diag room.tooltip = _S.tooltip.rooms.general_diag room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { screen = 1, crash_trolley = 1 } room.build_preview_animation = 916 room.categories = { diagnosis = 2, } room.minimum_size = 5 room.wall_type = "green" room.floor_tile = 21 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd021.wav" class "GeneralDiagRoom" (Room) ---@type GeneralDiagRoom local GeneralDiagRoom = _G["GeneralDiagRoom"] function GeneralDiagRoom:GeneralDiagRoom(...) self:Room(...) end function GeneralDiagRoom:commandEnteringPatient(patient) local screen, sx, sy = self.world:findObjectNear(patient, "screen") -- Patient walks to screen patient:walkTo(sx, sy) local after_use_screen1 = --[[persistable:general_diag_screen_after_use1]] function() local after_use_screen2 = --[[persistable:general_diag_screen_after_use2_next]] function() end local staff = self:getStaffMember() if staff then local trolley, cx, cy = self.world:findObjectNear(patient, "crash_trolley") -- Doctor walks to trolley local ox, oy = trolley:getSecondaryUsageTile() local staff_prepare = WalkAction(ox, oy) :setMustHappen(true) :disableTruncate() :setUninterruptible(true) staff:setNextAction(staff_prepare) -- Doctor waits for patient near trolley local staff_idle = IdleAction() :setMustHappen(true) :disableTruncate() :setUninterruptible(true) staff:queueAction(staff_idle) -- Patient walks to trolley local go_to_trolley = WalkAction(cx, cy) :setMustHappen(true) :disableTruncate() patient:queueAction(go_to_trolley) local after_use_trolley = --[[persistable:general_diag_trolley_after_use]] function() -- Release doctor after procedure and finish his IdleAction() near trolley staff:queueAction(MeanderAction()) staff:finishAction(staff_idle) end -- Patient uses trolley (trolly animation with patient and doctor) local use_trolley = MultiUseObjectAction(trolley, staff) :disableTruncate() :setMustHappen(true) :setProlongedUsage(false) :setAfterUse(after_use_trolley) patient:queueAction(use_trolley) -- Patient walks back to screen local go_to_screen2 = WalkAction(sx, sy) :setIsLeaving(true) :setMustHappen(true) :disableTruncate() patient:queueAction(go_to_screen2) after_use_screen2 = --[[persistable:general_diag_screen_after_use2]] function() if #patient.action_queue == 1 then self:dealtWithPatient(patient) end end else -- Patient didn't get served self:makeHumanoidLeave(patient) patient:queueAction(SeekRoomAction(self.room_info.id)) end -- Patient dresses back to their clothes local dress_back = UseScreenAction(screen) :setIsLeaving(true) :setMustHappen(true) :setAfterUse(after_use_screen2) patient:queueAction(dress_back) end -- Patient undresses for procedure local undress = UseScreenAction(screen):setAfterUse(after_use_screen1) patient:queueAction(undress) return Room.commandEnteringPatient(self, patient) end function GeneralDiagRoom:makeHumanoidLeave(humanoid) self:makeHumanoidDressIfNecessaryAndThenLeave(humanoid) end function GeneralDiagRoom:shouldHavePatientReenter(patient) return not patient:isLeaving() end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/gp.lua000066400000000000000000000172141522247547500200170ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "gp" room.vip_must_visit = false room.level_config_id = 7 room.class = "GPRoom" room.name = _S.rooms_short.gps_office room.long_name = _S.rooms_long.gps_office room.tooltip = _S.tooltip.rooms.gps_office room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { desk = 1, cabinet = 1, chair = 1 } room.build_preview_animation = 900 room.categories = { diagnosis = 1, } room.minimum_size = 4 room.wall_type = "white" room.floor_tile = 18 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd008.wav" class "GPRoom" (Room) ---@type GPRoom local GPRoom = _G["GPRoom"] function GPRoom:GPRoom(...) self:Room(...) end function GPRoom:doStaffUseCycle(humanoid) local obj, ox, oy = self.world:findObjectNear(humanoid, "cabinet") humanoid:walkTo(ox, oy) humanoid:queueAction(UseObjectAction(obj)) obj, ox, oy = self.world:findObjectNear(humanoid, "desk") humanoid:queueAction(WalkAction(ox, oy)) -- A skilled doctor requires less time at the desk to diagnose the patient local inv_skill = 1 - humanoid.profile.skill local desk_use_time = math.random(math.floor(3 + 5 * inv_skill), math.ceil (8 + 10 * inv_skill)) local gp_loop_callback = --[[persistable:gp_loop_callback]] function() desk_use_time = desk_use_time - 1 if desk_use_time == 0 then -- Consultants who aren't tired might not need to stretch their legs -- to remain alert, so might just remain at the desk and deal with the -- next patient quicker. if humanoid.profile.is_consultant and math.random() >= humanoid:getAttribute("fatigue") then desk_use_time = math.random(7, 14) else self:doStaffUseCycle(humanoid) end local patient = self:getPatient() if patient then if math.random() <= (0.7 + 0.3 * humanoid.profile.skill) or self.max_times <= 0 then if patient.user_of and not class.is(patient.user_of, Door) then self:dealtWithPatient(patient) end else self.max_times = self.max_times - 1 end end end end humanoid:queueAction(UseObjectAction(obj):setLoopCallback(gp_loop_callback)) end function GPRoom:commandEnteringStaff(humanoid) self.staff_member = humanoid self:doStaffUseCycle(humanoid) return Room.commandEnteringStaff(self, humanoid, true) end function GPRoom:commandEnteringPatient(humanoid) local obj, ox, oy = self.world:findObjectNear(humanoid, "chair") humanoid:walkTo(ox, oy) humanoid:queueAction(UseObjectAction(obj)) self.max_times = 3 return Room.commandEnteringPatient(self, humanoid) end function GPRoom:shouldHavePatientReenter(patient) return not patient.diagnosed and Room.shouldHavePatientReenter(self, patient) end function GPRoom:dealtWithPatient(patient) patient = patient or self:getPatient() -- If patients are slow to leave the chair, and staff are quick in their -- usage cycle, then dealtWithPatient() might get called twice for the -- same patient, in which case the second call must be ignored (otherwise -- if the first call resulted in the patient being diagnosed, the following -- logic would cause the patient to leave the room and stand indefinitely). if patient == self.just_dealt_with then return else self.just_dealt_with = patient end patient:setNextAction(self:createLeaveAction()) patient:addToTreatmentHistory(self.room_info) -- If the patient got sent to the wrong room and needs telling where -- to go next - this happens when a disease changes for an epidemic if patient.needs_redirecting then self:sendPatientToNextDiagnosisRoom(patient) patient.needs_redirecting = false elseif patient.disease and not patient.diagnosed then self.hospital:receiveMoneyForTreatment(patient) patient:completeDiagnosticStep(self) local no_need_diagnose_further = patient.diagnosis_progress >= self.hospital.policies["stop_procedure"] local cant_diagnose_further_but_can_set_diagnosis = (patient.diagnosis_progress >= 1.0) and (not patient:hasMoreDiagnosisRoomsAvailable()) if no_need_diagnose_further or cant_diagnose_further_but_can_set_diagnosis then patient:setDiagnosed() if patient:agreesToPay(patient.disease.id) then patient:queueAction(SeekRoomAction(patient.disease.treatment_rooms[1]):enableTreatmentRoom()) else patient:goHome("over_priced", patient.disease.id) end self.staff_member:setMood("idea3", "activate") -- Show the light bulb over the doctor -- Check if this disease has just been discovered if not self.hospital.disease_casebook[patient.disease.id].discovered then self.hospital.research:discoverDisease(patient.disease) end else self:sendPatientToNextDiagnosisRoom(patient) end else patient:queueAction(MeanderAction():setCount(2)) patient:queueAction(IdleAction()) end if self.staff_member then self:setStaffMembersAttribute("dealing_with_patient", false) end end function GPRoom:sendPatientToNextDiagnosisRoom(patient) if not patient:hasMoreDiagnosisRoomsAvailable() then -- The very rare case where the patient has visited all his/her possible diagnosis rooms -- There's not much to do then... Send home patient:goHome("kicked") patient:setDynamicInfoText(_S.dynamic_info.patient.actions.no_diagnoses_available) else self.staff_member:setMood("reflexion", "activate") -- Show the uncertainty mood over the doctor local next_room_id = math.random(1, #patient.available_diagnosis_rooms) local next_room = patient.available_diagnosis_rooms[next_room_id] if patient:agreesToPay("diag_" .. next_room) then patient:queueAction(SeekRoomAction(next_room):setDiagnosisRoom(next_room_id)) else patient:goHome("over_priced", "diag_" .. next_room) end end end function GPRoom:onHumanoidLeave(humanoid) -- Reset moods when either the patient or the doctor leaves the room. if not class.is(humanoid, Handyman) then for staff, _ in pairs(self.humanoids) do staff:setMood("idea3", "deactivate") staff:setMood("reflexion", "deactivate") end end if self.staff_member == humanoid then self.staff_member = nil end if self.just_dealt_with == humanoid then self.just_dealt_with = nil end Room.onHumanoidLeave(self, humanoid) end function GPRoom:roomFinished() if self.hospital:countStaffOfCategory("Doctor") == 0 and not self.world.ui.start_tutorial then self.hospital:giveAdvice({_A.room_requirements.gps_office_need_doctor}) end return Room.roomFinished(self) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/hair_restoration.lua000066400000000000000000000066021522247547500227640ustar00rootroot00000000000000--[[ Copyright (c) 2010 Miika-Petteri Matikainen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "hair_restoration" room.vip_must_visit = false room.level_config_id = 19 room.class = "HairRestorationRoom" room.name = _S.rooms_short.hair_restoration room.long_name = _S.rooms_long.hair_restoration room.tooltip = _S.tooltip.rooms.hair_restoration room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { hair_restorer = 1, console = 1 } room.build_preview_animation = 5074 room.categories = { clinics = 4, } room.minimum_size = 4 room.wall_type = "blue" room.floor_tile = 17 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd016.wav" room.handyman_call_sound = "maint007.wav" class "HairRestorationRoom" (Room) ---@type HairRestorationRoom local HairRestorationRoom = _G["HairRestorationRoom"] function HairRestorationRoom:HairRestorationRoom(...) self:Room(...) end function HairRestorationRoom:commandEnteringPatient(patient) local staff = self.staff_member local hair_restorer, pat_x, pat_y = self.world:findObjectNear(patient, "hair_restorer") local console, stf_x, stf_y = self.world:findObjectNear(staff, "console") local --[[persistable:hair_restoration_shared_loop_callback]] function loop_callback() if staff:getCurrentAction().name == "idle" and patient:getCurrentAction().name == "idle" then local loop_callback_restore = --[[persistable:hair_restoration_loop_callback]] function(action) action.prolonged_usage = false end local after_use_restore = --[[persistable:hair_restoration_after_use]] function() patient:setLayer(0, patient.layers[0] + 2) -- Change to normal hair staff:setNextAction(MeanderAction()) self:dealtWithPatient(patient) end patient:setNextAction(UseObjectAction(hair_restorer) :setLoopCallback(loop_callback_restore):setAfterUse(after_use_restore)) staff:setNextAction(UseObjectAction(console)) end end patient:walkTo(pat_x, pat_y) patient:queueAction(IdleAction():setDirection(hair_restorer.direction == "north" and "east" or "south") :setLoopCallback(loop_callback)) staff:walkTo(stf_x, stf_y) staff:queueAction(IdleAction():setDirection(console.direction == "north" and "east" or "south") :setLoopCallback(loop_callback)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/inflation.lua000066400000000000000000000054741522247547500214010ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "inflation" room.vip_must_visit = false room.level_config_id = 17 room.class = "InflationRoom" room.name = _S.rooms_short.inflation room.long_name = _S.rooms_long.inflation room.tooltip = _S.tooltip.rooms.inflation room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { inflator = 1 } room.build_preview_animation = 908 room.categories = { clinics = 1, } room.minimum_size = 4 room.wall_type = "blue" room.floor_tile = 17 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd014.wav" room.handyman_call_sound = "maint013.wav" class "InflationRoom" (Room) ---@type InflationRoom local InflationRoom = _G["InflationRoom"] function InflationRoom:InflationRoom(...) self:Room(...) end function InflationRoom:commandEnteringPatient(patient) local staff = self.staff_member local inflator, pat_x, pat_y = self.world:findObjectNear(patient, "inflator") local stf_x, stf_y = inflator:getSecondaryUsageTile() staff:setNextAction(WalkAction(stf_x, stf_y)) staff:queueAction(IdleAction():setDirection(inflator.direction == "north" and "east" or "south")) patient:setNextAction(WalkAction(pat_x, pat_y)) local inflation_after_use = --[[persistable:inflation_after_use]] function() patient:setLayer(0, patient.layers[0] - 10) -- Change to normal head -- if no other actions for staff member meander in room if #staff.action_queue == 1 then staff:setNextAction(MeanderAction()) else staff:finishAction(staff:getCurrentAction()) end self:dealtWithPatient(patient) end patient:queueAction(MultiUseObjectAction(inflator, staff):setAfterUse(inflation_after_use)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/jelly_vat.lua000066400000000000000000000051571522247547500214050ustar00rootroot00000000000000--[[ Copyright (c) 2010 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "jelly_vat" room.vip_must_visit = false room.level_config_id = 24 room.class = "JellyVatRoom" room.name = _S.rooms_short.jelly_vat room.long_name = _S.rooms_long.jelly_vat room.tooltip = _S.tooltip.rooms.jelly_vat room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { jelly_moulder = 1 } room.build_preview_animation = 928 room.categories = { clinics = 7, } room.minimum_size = 4 room.wall_type = "blue" room.floor_tile = 17 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd020.wav" room.handyman_call_sound = "maint009.wav" class "JellyVatRoom" (Room) ---@type JellyVatRoom local JellyVatRoom = _G["JellyVatRoom"] function JellyVatRoom:JellyVatRoom(...) self:Room(...) end function JellyVatRoom:commandEnteringPatient(patient) local staff = self.staff_member local moulder, stf_x, stf_y = self.world:findObjectNear(patient, "jelly_moulder") local pat_x, pat_y = moulder:getSecondaryUsageTile() staff:setNextAction(WalkAction(stf_x, stf_y)) local jellyvat_after_use = --[[persistable:jelly_vat_after_use]] function() staff:setNextAction(MeanderAction()) self:dealtWithPatient(patient) end staff:queueAction(MultiUseObjectAction(moulder, patient):setInvisiblePhaseSpan({-3, 4}) :setAfterUse(jellyvat_after_use)) patient:setNextAction(WalkAction(pat_x, pat_y)) patient:queueAction(IdleAction():setDirection(moulder.direction == "north" and "west" or "north")) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/operating_theatre.lua000066400000000000000000000323251522247547500231150ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "operating_theatre" room.vip_must_visit = true room.level_config_id = 10 room.class = "OperatingTheatreRoom" room.name = _S.rooms_short.operating_theatre room.long_name = _S.rooms_long.operating_theatre room.tooltip = _S.tooltip.rooms.operating_theatre room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { operating_table = 1, surgeon_screen = 1, op_sink1 = 1, x_ray_viewer = 1 } room.build_preview_animation = 5080 room.categories = { treatment = 3, } room.minimum_size = 6 room.wall_type = "white" room.floor_tile = 21 room.swing_doors = true room.required_staff = { Surgeon = 2, } room.call_sound = "reqd010.wav" -- TODO: There is also an unused sound -- "Another surgeon needed [...]", reqd011.wav -- room.handyman_call_sound = "maint007.wav" TODO: No sound for this room? class "OperatingTheatreRoom" (Room) ---@type OperatingTheatreRoom local OperatingTheatreRoom = _G["OperatingTheatreRoom"] function OperatingTheatreRoom:OperatingTheatreRoom(...) self:Room(...) self.staff_member_set = {} end function OperatingTheatreRoom:roomFinished() -- Find the X-ray viewer local fx, fy = self:getEntranceXY(true) local objects = self.world:findAllObjectsNear(fx, fy) for object in pairs(objects) do local id = object.object_type.id if id == "x_ray_viewer" then self[id] = object end end -- Tell the player what is missing, if anything. if self.hospital:countRoomOfType("ward", 1) == 0 then self.hospital:giveAdvice({_A.room_requirements.op_need_ward}) end local numSurgeons = self.hospital:countStaffOfCategory("Surgeon", 2) if numSurgeons == 0 then self.hospital:giveAdvice({_A.room_requirements.op_need_two_surgeons}) elseif numSurgeons == 1 then self.hospital:giveAdvice({_A.room_requirements.op_need_another_surgeon}) end return Room.roomFinished(self) end local function wait_for_object(humanoid, obj, must_happen) assert(type(must_happen) == "boolean", "must happen must be true or false") local loop_callback_wait = --[[persistable:operatring_theatre_wait]] function(action) if action.todo_interrupt or not obj.user then humanoid:finishAction(action) else humanoid:queueAction(IdleAction():setCount(5):setMustHappen(true), 0) end end return IdleAction():setMustHappen(must_happen):setLoopCallback(loop_callback_wait) end --! Builds the second operation action (i.e. with the surgeon whose we --! see the back). Called either when the operation starts or when the --! operation is resumed after interruption caused by the picking up of --! the second surgeon. --! Note: Must be part of OperatingTheatreRoom and not a local function --! because of the use in the persisted callback function operation_standby. --!param multi_use (action): the first operation action (built with via buildTableAction1()). --!param operation_table_b (OperatingTable): slave object representing the operation table. function OperatingTheatreRoom._buildTableAction2(multi_use, operation_table_b) -- number of cutting and sewing animation local num_loops = math.random(2, 5) local loop_callback_use_object = --[[persistable:operatring_theatre_use_callback]] function(action) num_loops = num_loops - 1 if num_loops <= 0 then action.prolonged_usage = false end end local after_use_use_object = --[[persistable:operatring_theatre_after_use]] function() multi_use.prolonged_usage = false end return UseObjectAction(operation_table_b) :setLoopCallback(loop_callback_use_object) :setAfterUse(after_use_use_object) :setMustHappen(true) :disableTruncate() :setUninterruptible(true) end function OperatingTheatreRoom:commandEnteringStaff(staff) -- Put surgeon outfit on local screen, screen_x, screen_y = self.world:findObjectNear(staff, "surgeon_screen") staff:walkTo(screen_x, screen_y) staff:queueAction(wait_for_object(staff, screen, false)) staff:queueAction(UseScreenAction(screen)) self.staff_member_set[staff] = true -- Wait around for patients local loop_callback_more_patients = --[[persistable:operatring_theatre_after_surgeon_clothes_on]] function() self.staff_member_set[staff] = "ready" self:tryAdvanceQueue() end staff:queueAction(MeanderAction() :setMustHappen(true) :setLoopCallback(loop_callback_more_patients)) -- Ensure that surgeons turn back into doctors when they leave staff:queueAction(WalkAction(screen_x, screen_y) :setMustHappen(true) :setIsLeaving(true) :truncateOnHighPriority()) staff:queueAction(UseScreenAction(screen) :setMustHappen(true) :setIsLeaving(true)) return Room.commandEnteringStaff(self, staff, true) end function OperatingTheatreRoom:setStaffMembersAttribute(attribute, value) for staff_member, _ in pairs(self.staff_member_set) do staff_member[attribute] = value end end --! Builds the first operation action (i.e. with the surgeon whose we see the front). --!param surgeon1 (Staff): the surgeon who does this operation action. He must --! be the same as the surgeon who gets the action on his queue. --!param patient (Patient): the patient to be operated. --!param operation_table (OperatingTable): master object representing --! the operation table. function OperatingTheatreRoom:_buildTableAction1(surgeon1, patient, operation_table) local loop_callback_multi_use = --[[persistable:operatring_theatre_multi_use_callback]] function() -- dirty hack to make the truncated animation work surgeon1.animation_idx = nil end local after_use_table = --[[persistable:operatring_theatre_table_after_use]] function() self:dealtWithPatient(patient) -- Tell the patient that it's time to leave, but only if the first action -- is really an idle action. if patient:getCurrentAction().name == "idle" then patient:finishAction() end end return MultiUseObjectAction(operation_table, patient) :setProlongedUsage(true) :setLoopCallback(loop_callback_multi_use) :setAfterUse(after_use_table) :setMustHappen(true) :disableTruncate() end --! Sends the surgeon to the nearest operation sink ("op_sink1") --! and makes him wash his hands --!param before_other_actions (boolean): If true, add the actions at the front the action queue. --! Add the actions at the end of the queue otherwise. --! Default value is true. function OperatingTheatreRoom:queueWashHands(surgeon, before_other_actions) local sink, sink_x, sink_y = self.world:findObjectNear(surgeon, "op_sink1") local walk = WalkAction(sink_x, sink_y) :setMustHappen(true) :disableTruncate() local wait = wait_for_object(surgeon, sink, true) :setMustHappen(true) :disableTruncate() :setUninterruptible(true) local wash = UseObjectAction(sink) :setMustHappen(true) :disableTruncate() :setUninterruptible(true) for pos, action in pairs({walk, wait, wash}) do if (before_other_actions) then surgeon:queueAction(action, pos) else surgeon:queueAction(action) end end end --! Turn on/off x-ray viewer - if it's been found --!param turn_on (boolean): true to switch on and false to switch off function OperatingTheatreRoom:setXRayOn(turn_on) if self.x_ray_viewer then self.x_ray_viewer:setLayer(11, (turn_on and 2 or 0)) end end function OperatingTheatreRoom:commandEnteringPatient(patient) -- Turn on x-ray viewer self:setXRayOn(true) -- Identify the staff local surgeon1 = next(self.staff_member_set) local surgeon2 = next(self.staff_member_set, surgeon1) assert(surgeon1 and surgeon2, "Not enough staff in operating theatre") local screen, sx, sy = self.world:findObjectNear(patient, "surgeon_screen") -- Patient walk to surgeon screen patient:setNextAction(WalkAction(sx, sy) :setMustHappen(true) :disableTruncate()) -- Patient changes into surgical gown patient:queueAction(UseScreenAction(screen) :setMustHappen(true) :disableTruncate()) -- Meanwhile, surgeons wash their hands -- TODO: They sometimes overlap each other when doing that. Can we avoid that? -- TODO: The "op_sink2" animation is missing to fix that. self:queueWashHands(surgeon1, true) self:queueWashHands(surgeon2, true) local num_ready = {0} ----- BEGIN Save game compatibility ----- -- These function are merely for save game compatibility. -- And they does not participate in the current game logic. -- Do not move or edit local --[[persistable:operatring_theatre_wait_for_ready]] function wait_for_ready(action) action.on_interrupt = nil if not action.done_ready then num_ready[1] = num_ready[1] + 1 action.done_ready = true end if num_ready[1] == 3 then surgeon1:finishAction() surgeon2:finishAction() end end local after_use = --[[persistable:operatring_theatre_after_multi_use]] function() self:dealtWithPatient(patient) patient:finishAction() end ----- END Save game compatibility ----- local --[[persistable:operatring_theatre_operation_standby]] function operation_standby(action, humanoid) action.on_interrupt = nil if not action.done_ready then num_ready[1] = num_ready[1] + 1 action.done_ready = true end if self.staff_member_set[humanoid] and self.staff_member_set[humanoid] == "abort" then humanoid:finishAction() elseif num_ready[1] == 3 then -- Only if everyone (2 Surgeons and Patient) ready, we schedule the operation action local obj, _, _ = self.world:findObjectNear(surgeon1, "operating_table") local table_action1 = self:_buildTableAction1(surgeon1, patient, obj) surgeon1:queueAction(table_action1, 1) obj, _, _ = self.world:findObjectNear(surgeon2, "operating_table_b") local table_action2 = self._buildTableAction2(table_action1, obj) surgeon2:queueAction(table_action2, 1) -- Kick off surgeon1:finishAction() surgeon2:finishAction() end end ---- Everyone standby...and sync start the operation -- -- first surgeon walk over to the operating table to the patient side (surgeon face to camera) local obj, ox, oy = self.world:findObjectNear(surgeon1, "operating_table") surgeon1:queueAction(WalkAction(ox, oy) :setMustHappen(true) :disableTruncate(), 4) surgeon1:queueAction(IdleAction() :setLoopCallback(operation_standby) :setMustHappen(true) :disableTruncate() :setUninterruptible(true), 5) -- Patient walk to the side of the operating table ox, oy = obj:getSecondaryUsageTile() patient:queueAction(WalkAction(ox, oy) :setMustHappen(true) :disableTruncate()) patient:queueAction(IdleAction() :setLoopCallback(operation_standby) :setMustHappen(true)) -- Patient changes out of the gown afterwards patient:queueAction(WalkAction(sx, sy) :setMustHappen(true) :disableTruncate()) patient:queueAction(UseScreenAction(screen) :setMustHappen(true)) -- Meanwhile, second surgeon walks over to other side of operating table (surgeon back to camera) local _ _, ox, oy = self.world:findObjectNear(surgeon1, "operating_table_b") surgeon2:queueAction(WalkAction(ox, oy):setMustHappen(true) :disableTruncate(), 4) surgeon2:queueAction(IdleAction() :setLoopCallback(operation_standby) :setMustHappen(true) :disableTruncate() :setUninterruptible(true), 5) return Room.commandEnteringPatient(self, patient) end function OperatingTheatreRoom:onHumanoidLeave(humanoid) self.staff_member_set[humanoid] = nil if class.is(humanoid, Patient) then -- Turn off x-ray viewer -- (FIXME: would be better when patient dress back?) self:setXRayOn(false) local surgeon1 = next(self.staff_member_set) local surgeon2 = next(self.staff_member_set, surgeon1) if surgeon1 then self.staff_member_set[surgeon1] = "abort" end if surgeon2 then self.staff_member_set[surgeon2] = "abort" end end return Room.onHumanoidLeave(self, humanoid) end function OperatingTheatreRoom:canHumanoidEnter(humanoid) local can = Room.canHumanoidEnter(self, humanoid) if can and class.is(humanoid, Patient) then -- Patients can only enter once all doctors are in surgeon clothes for staff, is_ready in pairs(self.staff_member_set) do if not staff:isType("Surgeon") or is_ready ~= "ready" then return false end end end return can end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/pharmacy.lua000066400000000000000000000073221522247547500212140ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "pharmacy" room.vip_must_visit = false room.level_config_id = 11 room.class = "PharmacyRoom" room.name = _S.rooms_short.pharmacy room.long_name = _S.rooms_long.pharmacy room.tooltip = _S.tooltip.rooms.pharmacy room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { pharmacy_cabinet = 1 } room.build_preview_animation = 5088 room.categories = { treatment = 4, } room.minimum_size = 4 room.wall_type = "white" room.floor_tile = 19 room.required_staff = { Nurse = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd012.wav" class "PharmacyRoom" (Room) ---@type PharmacyRoom local PharmacyRoom = _G["PharmacyRoom"] function PharmacyRoom:PharmacyRoom(...) self:Room(...) end function PharmacyRoom:roomFinished() if self.hospital:countStaffOfCategory("Nurse", 1) == 0 then self.hospital:giveAdvice({ _A.room_requirements.pharmacy_need_nurse }) end return Room.roomFinished(self) end function PharmacyRoom:commandEnteringPatient(patient) local staff = self.staff_member local cabinet, stf_x, stf_y = self.world:findObjectNear(patient, "pharmacy_cabinet") local pat_x, pat_y local orientation = cabinet.object_type.orientations[cabinet.direction] pat_x = stf_x - orientation.use_position[1] + orientation.use_position_secondary[1] pat_y = stf_y - orientation.use_position[2] + orientation.use_position_secondary[2] local layer3 local patient_class = patient.humanoid_class if patient_class == "Standard Female Patient" or patient_class == "Transparent Female Patient" then -- Female patients cannot use flask colour 2, as in their idle animation, -- layer 3 item 2 is a bandage. layer3 = math.random(0, 1) * 4 else layer3 = math.random(0, 2) * 2 end patient:setNextAction(WalkAction(pat_x, pat_y)) patient:queueAction(IdleAction():setDirection(cabinet.direction == "north" and "east" or "south")) staff:setNextAction(WalkAction(stf_x, stf_y)) local after_use_pharmacy = --[[persistable:pharmacy_after_use]] function() --if we haven't tried to edit the room while she's animating, meander if #staff.action_queue == 1 then staff:setNextAction(MeanderAction()) end if patient_class == "Invisible Patient" or patient_class == "Transparent Male Patient" then patient:setType "Standard Male Patient" elseif patient_class == "Transparent Female Patient" then patient:setType "Standard Female Patient" end self:dealtWithPatient(patient) end staff:queueAction(MultiUseObjectAction(cabinet, patient):setAfterUse(after_use_pharmacy) :setLayer3(layer3)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/psych.lua000066400000000000000000000115041522247547500205330ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "psych" room.vip_must_visit = false room.level_config_id = 8 room.class = "PsychRoom" room.name = _S.rooms_short.psychiatric room.long_name = _S.rooms_long.psychiatric room.tooltip = _S.tooltip.rooms.psychiatry room.objects_additional = { "extinguisher", "radiator", "plant", "bin", "bookcase", "skeleton" } room.objects_needed = { screen = 1, couch = 1, comfortable_chair = 1 } room.build_preview_animation = 924 room.categories = { treatment = 1, diagnosis = 8, } room.minimum_size = 5 room.wall_type = "white" room.floor_tile = 18 room.required_staff = { Psychiatrist = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd003.wav" class "PsychRoom" (Room) ---@type PsychRoom local PsychRoom = _G["PsychRoom"] function PsychRoom:PsychRoom(...) self:Room(...) end function PsychRoom:roomFinished() if self.hospital:countStaffOfCategory("Psychiatrist", 1) == 0 then self.hospital:giveAdvice({_A.room_requirements.psychiatry_need_psychiatrist}) end return Room.roomFinished(self) end function PsychRoom:commandEnteringStaff(staff) self.staff_member = staff local obj, ox, oy = self.world:findFreeObjectNearToUse(staff, "bookcase", "near") if not obj then staff:setNextAction(MeanderAction()) else staff:walkTo(ox, oy) staff:queueAction(UseObjectAction(obj)) local num_meanders = math.random(2, 8) local loop_callback_meanders = --[[persistable:psych_meander_loop_callback]] function() num_meanders = num_meanders - 1 if num_meanders == 0 then self:commandEnteringStaff(staff) end end staff:queueAction(MeanderAction():setLoopCallback(loop_callback_meanders)) end return Room.commandEnteringStaff(self, staff, true) end function PsychRoom:commandEnteringPatient(patient) local staff = self.staff_member local obj, ox, oy = self.world:findObjectNear(patient, "couch") patient:walkTo(ox, oy) patient:queueAction(UseObjectAction(obj)) local duration = math.random(16, 72) local bookcase, bx, by local --[[persistable:psych_loop_callback]] function loop_callback() if bookcase == nil then bookcase, bx, by = self.world:findObjectNear(staff, "bookcase") end if patient and patient.user_of and patient.user_of.object_type.id == "couch" then duration = duration - 1 end if duration == 0 then if patient.diagnosed and patient.disease.id == "king_complex" then -- Diagnosed patients (Elvis) need to change clothes local after_use_screen = --[[persistable:psych_screen_after_use]] function() if self:getStaffMember() then self:getStaffMember():setNextAction(MeanderAction()) end self:dealtWithPatient(patient) end obj, ox, oy = self.world:findObjectNear(patient, "screen") patient:walkTo(ox, oy) patient:queueAction(UseScreenAction(obj):setAfterUse(after_use_screen)) else if self:getStaffMember() then self:getStaffMember():setNextAction(MeanderAction()) end self:dealtWithPatient(patient) end return else if patient:getRoom() ~= self and self:getStaffMember() then self:getStaffMember():setNextAction(MeanderAction()) return end end if bookcase and (duration % 10) == 0 and math.random(1, 2) == 1 then staff:walkTo(bx, by) staff:queueAction(UseObjectAction(bookcase)) staff:queueAction(WalkAction(ox, oy)) staff:queueAction(UseObjectAction(obj):setLoopCallback(loop_callback)) duration = math.max(8, duration - 72) end end obj, ox, oy = self.world:findObjectNear(staff, "comfortable_chair") staff:walkTo(ox, oy) staff:queueAction(UseObjectAction(obj):setLoopCallback(loop_callback)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/research.lua000066400000000000000000000156761522247547500212170ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "research" room.vip_must_visit = true room.level_config_id = 28 room.class = "ResearchRoom" room.name = _S.rooms_short.research_room room.long_name = _S.rooms_long.research_room room.tooltip = _S.tooltip.rooms.research_room room.objects_additional = { "extinguisher", "radiator", "plant", "bin", "computer", "desk", "cabinet", "analyser" } room.objects_needed = { desk = 1, cabinet = 1, autopsy = 1 } room.build_preview_animation = 5102 room.categories = { facilities = 2, } room.minimum_size = 5 room.wall_type = "green" room.floor_tile = 21 room.required_staff = { Researcher = 1, } room.call_sound = "reqd023.wav" class "ResearchRoom" (Room) ---@type ResearchRoom local ResearchRoom = _G["ResearchRoom"] function ResearchRoom:ResearchRoom(...) self:Room(...) self.staff_member_set = {} end local staff_usage_objects = { desk = true, cabinet = true, computer = true, analyser = true, -- Not autopsy: it should be free for when a patient arrives } function ResearchRoom:doStaffUseCycle(staff, previous_object) local obj, ox, oy = self.world:findFreeObjectNearToUse(staff, staff_usage_objects, "near", previous_object) if obj then obj.reserved_for = staff staff:walkTo(ox, oy) if obj.object_type.id == "desk" then local desk_use_time = math.random(7, 14) local loop_callback_desk = --[[persistable:research_desk_loop_callback]] function(action) desk_use_time = desk_use_time - 1 if action.todo_interrupt or desk_use_time == 0 then action.prolonged_usage = false end end local after_use_desk = --[[persistable:research_desk_after_use]] function() -- TODO: Should interactions give points? self.hospital.research:addResearchPoints(100) end staff:queueAction(UseObjectAction(obj):setLoopCallback(loop_callback_desk) :setAfterUse(after_use_desk)) else local after_use_obj = --[[persistable:research_obj_after_use]] function() if obj.object_type.id == "computer" then self.hospital.research:addResearchPoints(500) elseif obj.object_type.id == "analyser" then self.hospital.research:addResearchPoints(800) -- TODO: Balance value, find it in level config? end end staff:queueAction(UseObjectAction(obj):setAfterUse(after_use_obj)) end end local num_meanders = math.random(2, 4) local loop_callback_meander = --[[persistable:research_meander_loop_callback]] function() num_meanders = num_meanders - 1 if num_meanders == 0 then self:doStaffUseCycle(staff) end end staff:queueAction(MeanderAction():setLoopCallback(loop_callback_meander)) end function ResearchRoom:roomFinished() local fx, fy = self:getEntranceXY(true) local objects = self.world:findAllObjectsNear(fx, fy) local number = 0 for object, _ in pairs(objects) do -- The number of desks in the room determines how many researchers -- can work there at once. if object.object_type.id == "desk" then number = number + 1 end end self.maximum_staff = { Researcher = number, } -- Is this the first research department built? if not self.hospital.research_dep_built and not TheApp.using_demo_files then self.hospital.research_dep_built = true self.hospital:giveAdvice({_A.information.initial_general_advice .research_now_available}) end -- Also check if it would be good to hire a researcher. if self.hospital:countStaffOfCategory("Researcher", 1) == 0 then self.hospital:giveAdvice({_A.room_requirements.research_room_need_researcher}) end return Room.roomFinished(self) end function ResearchRoom:getMaximumStaffCriteria() return self.maximum_staff end function ResearchRoom:commandEnteringStaff(staff) self.staff_member_set[staff] = true self:doStaffUseCycle(staff) return Room.commandEnteringStaff(self, staff, true) end function ResearchRoom:commandEnteringPatient(patient) local staff = self:getStaffMember() local autopsy, stf_x, stf_y = self.world:findObjectNear(patient, "autopsy") local pat_x, pat_y = autopsy:getSecondaryUsageTile() patient:walkTo(pat_x, pat_y) patient:queueAction(IdleAction():setDirection("east")) staff:walkTo(stf_x, stf_y) local after_use_autopsy = --[[persistable:autopsy_after_use]] function() self:commandEnteringStaff(staff) -- Patient dies :( self:onHumanoidLeave(patient) -- Some research is done. :) Might trigger a loss of reputation though. local hosp = self.hospital local patient_room = patient.disease.treatment_rooms[#patient.disease.treatment_rooms] hosp.research:addResearchPointsForAutopsy(patient_room) -- average morale of all staff affects chances local avg_happiness = hosp:getAverageStaffAttribute("happiness", nil) local autopsy_discovered -- low morale - more likely to discover if avg_happiness < 0.25 then autopsy_discovered = math.random(1,3) ~= 1 else autopsy_discovered = math.random(1,3) == 1 end if autopsy_discovered then hosp:changeReputation("autopsy_discovered") hosp:giveAdvice({_A.research.autopsy_discovered_rep_loss}) end if patient.hospital then hosp:removePatient(patient) end patient.world:destroyEntity(patient) end staff:queueAction(MultiUseObjectAction(autopsy, patient):setAfterUse(after_use_autopsy)) return Room.commandEnteringPatient(self, patient) end function ResearchRoom:setStaffMember(staff) self.staff_member_set[staff] = true end function ResearchRoom:setStaffMembersAttribute(attribute, value) for staff_member, _ in pairs(self.staff_member_set) do staff_member[attribute] = value end end function ResearchRoom:onHumanoidLeave(humanoid) self.staff_member_set[humanoid] = nil Room.onHumanoidLeave(self, humanoid) end function ResearchRoom:afterLoad(old, new) if old < 56 then self.hospital.research_dep_built = true end Room.afterLoad(self, old, new) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/scanner_room.lua000066400000000000000000000125741522247547500221020ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "scanner" room.vip_must_visit = false room.level_config_id = 13 room.class = "ScannerRoom" room.name = _S.rooms_short.scanner room.long_name = _S.rooms_long.scanner room.tooltip = _S.tooltip.rooms.scanner room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { scanner = 1, console = 1, screen = 1 } room.build_preview_animation = 920 room.categories = { diagnosis = 4, } room.minimum_size = 5 room.wall_type = "yellow" room.floor_tile = 19 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd002.wav" -- Handyman is called to "diagnosis machine", all other diagnosis rooms have -- their own, more specific handyman call though --room.handyman_call_sound = "maint011.wav" class "ScannerRoom" (Room) ---@type ScannerRoom local ScannerRoom = _G["ScannerRoom"] function ScannerRoom:ScannerRoom(...) self:Room(...) end function ScannerRoom:commandEnteringPatient(patient) local staff = self.staff_member local console, stf_x, stf_y = self.world:findObjectNear(staff, "console") local scanner, pat_x, pat_y = self.world:findObjectNear(patient, "scanner") local screen, sx, sy = self.world:findObjectNear(patient, "screen") local do_change = (patient:isType("Standard Male Patient")) or (patient:isType("Standard Female Patient")) local --[[persistable:scanner_shared_loop_callback]] function loop_callback() if staff:getCurrentAction().scanner_ready and patient:getCurrentAction().scanner_ready then staff:finishAction() patient:finishAction() end end staff:walkTo(stf_x, stf_y) local idle_action = IdleAction():setDirection(console.direction == "north" and "west" or "north") :setLoopCallback(loop_callback) idle_action.scanner_ready = true staff:queueAction(idle_action) staff:queueAction(UseObjectAction(console)) if do_change then patient:walkTo(sx, sy) patient:queueAction(UseScreenAction(screen)) patient:queueAction(WalkAction(pat_x, pat_y)) else patient:walkTo(pat_x, pat_y) end idle_action = IdleAction():setDirection(scanner.direction == "north" and "east" or "south") :setLoopCallback(loop_callback) idle_action.scanner_ready = true patient:queueAction(idle_action) local length = math.random(10, 20) * (2 - staff.profile.skill) local loop_callback_scan = --[[persistable:scanner_loop_callback]] function(action) if length <= 0 then action.prolonged_usage = false end length = length - 1 end local after_use_scan = --[[persistable:scanner_after_use]] function() if not self.staff_member or patient.going_home then -- If we aborted somehow, don't do anything here. -- The patient already has orders to change back if necessary and leave. -- makeHumanoidLeave() will make this function nil when it aborts the scanner's use. return end self.staff_member:setNextAction(MeanderAction()) self:dealtWithPatient(patient) end patient:queueAction(UseObjectAction(scanner):setLoopCallback(loop_callback_scan) :setAfterUse(after_use_scan)) return Room.commandEnteringPatient(self, patient) end function ScannerRoom:onHumanoidLeave(humanoid) if self.staff_member == humanoid then self.staff_member = nil end Room.onHumanoidLeave(self, humanoid) end function ScannerRoom:makeHumanoidLeave(humanoid) if humanoid:getCurrentAction().name == "use_object" and humanoid:getCurrentAction().object == self.world:findObjectNear(humanoid, "scanner") then humanoid:getCurrentAction().after_use = nil end self:makeHumanoidDressIfNecessaryAndThenLeave(humanoid) end function ScannerRoom:dealtWithPatient(patient) if string.find(patient.humanoid_class, "Stripped") then local screen, sx, sy = self.world:findObjectNear(patient, "screen") patient:setNextAction(WalkAction(sx, sy):setMustHappen(true):setIsLeaving(true) :disableTruncate()) local after_use_patient = --[[persistable:scanner_exit]] function() Room.dealtWithPatient(self, patient) end patient:queueAction(UseScreenAction(screen):setMustHappen(true):setIsLeaving(true) :setAfterUse(after_use_patient)) patient:queueAction(self:createLeaveAction()) else Room.dealtWithPatient(self, patient) end end function ScannerRoom:shouldHavePatientReenter(patient) return not patient:isLeaving() end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/slack_tongue.lua000066400000000000000000000057371522247547500220760ustar00rootroot00000000000000--[[ Copyright (c) 2009 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "slack_tongue" room.vip_must_visit = false room.level_config_id = 20 room.class = "SlackTongueRoom" room.name = _S.rooms_short.tongue_clinic room.long_name = _S.rooms_long.tongue_clinic room.tooltip = _S.tooltip.rooms.tongue_clinic room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { slicer = 1 } room.build_preview_animation = 932 room.categories = { clinics = 2, } room.minimum_size = 4 room.wall_type = "blue" room.floor_tile = 17 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd005.wav" room.handyman_call_sound = "maint004.wav" class "SlackTongueRoom" (Room) ---@type SlackTongueRoom local SlackTongueRoom = _G["SlackTongueRoom"] function SlackTongueRoom:SlackTongueRoom(...) self:Room(...) end function SlackTongueRoom:commandEnteringPatient(patient) local staff = self.staff_member local slicer, pat_x, pat_y = self.world:findObjectNear(patient, "slicer") local stf_x, stf_y = slicer:getSecondaryUsageTile() staff:setNextAction(WalkAction(stf_x, stf_y)) staff:queueAction(IdleAction():setDirection(slicer.direction == "north" and "east" or "south")) patient:setNextAction(WalkAction(pat_x, pat_y)) local after_use_slack_tongue = --[[persistable:slack_tongue_after_use]] function() if patient:isType("Slack Male Patient") then patient:setType "Standard Male Patient" -- Change to normal head else patient:setLayer(0, patient.layers[0] - 8) -- Change to normal head end -- if no other actions for staff member meander in room if #staff.action_queue == 1 then staff:setNextAction(MeanderAction()) else staff:finishAction(staff:getCurrentAction()) end self:dealtWithPatient(patient) end patient:queueAction(MultiUseObjectAction(slicer, staff):setAfterUse(after_use_slack_tongue)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/staff_room.lua000066400000000000000000000047551522247547500215560ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "staff_room" room.vip_must_visit = false room.level_config_id = 25 room.class = "StaffRoom" room.name = _S.rooms_short.staffroom room.long_name = _S.rooms_long.staffroom room.tooltip = _S.tooltip.rooms.staffroom room.objects_additional = { "extinguisher", "radiator", "plant", "sofa", "pool_table", "tv", "video_game" } room.objects_needed = { sofa = 1 } room.build_preview_animation = 5066 room.categories = { facilities = 1, } room.minimum_size = 4 room.wall_type = "green" room.floor_tile = 17 room.has_no_queue_dialog = true class "StaffRoom" (Room) ---@type StaffRoom local StaffRoom = _G["StaffRoom"] function StaffRoom:StaffRoom(...) self:Room(...) end function StaffRoom:onHumanoidEnter(humanoid) self.humanoids[humanoid] = true self:tryAdvanceQueue() humanoid:setDynamicInfoText("") -- Other humanoids shouldn't be entering, so don't worry about them if class.is(humanoid, Staff) then -- Receptionists cannot enter, so we do not have to worry about them -- If it is a handyman and he is here to do a job, let him pass if not humanoid.on_call then humanoid:setNextAction(UseStaffRoomAction()) self.door.queue.visitor_count = self.door.queue.visitor_count + 1 end end end function StaffRoom:testStaffCriteria(criteria, extra_humanoid) -- The staff room always accept more tired staff members. if extra_humanoid then return true else return false end end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/toilets.lua000066400000000000000000000151751522247547500211000ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "toilets" room.vip_must_visit = false room.level_config_id = 29 room.class = "ToiletRoom" room.name = _S.rooms_short.toilets room.long_name = _S.rooms_long.toilets room.tooltip = _S.tooltip.rooms.toilets room.objects_additional = { "extinguisher", "radiator", "plant", "bin", "loo", "sink" } room.objects_needed = { loo = 1, sink = 1 } room.build_preview_animation = 5098 room.categories = { facilities = 3, } room.minimum_size = 4 room.wall_type = "green" room.floor_tile = 21 class "ToiletRoom" (Room) ---@type ToiletRoom local ToiletRoom = _G["ToiletRoom"] function ToiletRoom:ToiletRoom(...) self:Room(...) self.door.queue:setBenchThreshold(3) end function ToiletRoom:roomFinished() local fx, fy = self:getEntranceXY(true) local objects = self.world:findAllObjectsNear(fx, fy) local number = 0 for object, _ in pairs(objects) do if object.object_type.id == "loo" then number = number + 1 end end self.maximum_patients = number Room.roomFinished(self) end function ToiletRoom:dealtWithPatient(patient) -- Continue going to the room before going to the toilets. patient:setNextAction(self:createLeaveAction()) if patient.next_room_to_visit then patient:queueAction(SeekRoomAction(patient.next_room_to_visit.room_info.id)) else patient:queueAction(SeekReceptionAction()) end end function ToiletRoom:onHumanoidEnter(humanoid) if class.is(humanoid, Patient) then local loo, lx, ly = self.world:findFreeObjectNearToUse(humanoid, "loo") if loo and lx and ly then humanoid:walkTo(lx, ly) loo.reserved_for = humanoid local use_time = math.random(0, 2) -- One class only have a 1 tick long usage animation if humanoid:isType("Transparent Female Patient") then use_time = math.random(15, 40) end local loop_callback_toilets = --[[persistable:toilets_loop_callback]] function() use_time = use_time - 1 if use_time <= 0 then humanoid:setMood("poo", "deactivate") humanoid:changeAttribute("toilet_need", -(0.85 + math.random() * 0.15)) humanoid.going_to_toilet = "no" -- There are only animations for standard patients to use the sinks. if humanoid:isType("Standard Female Patient") or humanoid:isType("Standard Male Patient") then local --[[persistable:toilets_find_sink]] function after_use() local sink, sx, sy = self.world:findFreeObjectNearToUse(humanoid, "sink") if sink then humanoid:walkTo(sx, sy) local after_use_sink = --[[persistable:toilets_after_use_sink]] function() self:dealtWithPatient(humanoid) end humanoid:queueAction(UseObjectAction(sink):setProlongedUsage(false) :setAfterUse(after_use_sink)) sink.reserved_for = humanoid -- Make sure that the mood waiting is no longer active. humanoid:setMood("patient_wait", "deactivate") else -- if there is a queue to wash hands there is a chance we might not bother -- but the patient won't be happy about this. if math.random(1, 4) > 2 then -- Wait for a while before trying again. humanoid:setNextAction(IdleAction():setCount(5):setAfterUse(after_use) :setDirection(loo.direction == "north" and "south" or "east")) else self:dealtWithPatient(humanoid) humanoid:changeAttribute("happiness", -0.08) humanoid:setMood("patient_wait", "deactivate") end -- For now, activate the wait icon to show the player that the patient hasn't -- got stuck. TODO: Make a custom mood? Let many people use the sinks? humanoid:setMood("patient_wait", "activate") end end after_use() else self:dealtWithPatient(humanoid) end end end humanoid:queueAction(UseObjectAction(loo):setLoopCallback(loop_callback_toilets)) else --[[ If no loo is found, perhaps the patient followed another one in and they were heading for the same one. Now there is no free loo, so wait for a bit and then leave the room to wait outside. No need for a warning as this is what happens in busy toilets]] humanoid:setNextAction(MeanderAction():setCount(1)) humanoid:queueAction(self:createLeaveAction()) humanoid:queueAction(self:createEnterAction(humanoid)) end end return Room.onHumanoidEnter(self, humanoid) end -- Override the standard way to count the number of patients to take into account -- that some of them may not be using the loo, allowing others to enter the room earlier than normal; -- but not if there is only one loo in the room, then it becomes a private toilet with only one person at a time. function ToiletRoom:getPatientCount() local number_users = 0 local not_using_loo = 0 for humanoid in pairs(self.humanoids) do if class.is(humanoid, Patient) then number_users = number_users + 1 if humanoid:getCurrentAction().name == "use_object" and humanoid:getCurrentAction().object.object_type.id ~= "loo" then not_using_loo = not_using_loo + 1 end end end if self.maximum_patients == 1 then return number_users else return number_users - not_using_loo end end function ToiletRoom:afterLoad(old, new) if old < 110 then room.free_loos = nil end Room.afterLoad(self, old, new) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/training.lua000066400000000000000000000240401522247547500212170ustar00rootroot00000000000000--[[ Copyright (c) 2010 Justin Pasher Copyright (c) 2023 lewri Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "training" room.vip_must_visit = false room.level_config_id = 22 room.class = "TrainingRoom" room.long_name = _S.rooms_long.training_room room.name = _S.rooms_short.training_room room.tooltip = _S.tooltip.rooms.training_room room.objects_additional = { "extinguisher", "radiator", "plant", "bin", "lecture_chair", "bookcase", "skeleton" } room.objects_needed = { lecture_chair = 1, projector = 1 } room.build_preview_animation = 5086 room.categories = { facilities = 4, } room.minimum_size = 4 room.wall_type = "green" room.floor_tile = 17 room.has_no_queue_dialog = true class "TrainingRoom" (Room) ---@type TrainingRoom local TrainingRoom = _G["TrainingRoom"] function TrainingRoom:TrainingRoom(...) self:Room(...) end function TrainingRoom:roomFinished() -- Training rate and max occupancy based on objects in the room local fx, fy = self:getEntranceXY(true) local objects = self.world:findAllObjectsNear(fx, fy) local chairs = 0 for object, _ in pairs(objects) do if object.object_type.id == "lecture_chair" then chairs = chairs + 1 end end -- Total staff occupancy: number of lecture chairs plus projector self.maximum_staff = { Doctor = chairs + 1 } self.training_factor = self:calculateTrainingFactor(objects) -- Also tell the player if he/she doesn't have a consultant yet. if self.hospital:countStaffOfCategory("Consultant", 1) == 0 then self.hospital:giveAdvice({_A.room_requirements.training_room_need_consultant}) end Room.roomFinished(self) end --! Determine the training factor of this room for teaching specialisms --!param objects (table) the list of objects in this room --!return total (number) The final training factor function TrainingRoom:calculateTrainingFactor(objects) -- Tally relevant objects that affect training local function countTrainingObjects() local counts = { projector = 0, skeleton = 0, bookcase = 0 } for object, _ in pairs(objects) do local obj_id = object.object_type.id counts[obj_id] = counts[obj_id] and counts[obj_id] + 1 or nil end return counts end -- Work out total training factor using two averaging methods, choosing the best one -- param factors(table) An array containing a count of each object and its raw -- training value -- returns the total effect local function calculateTotalEffect(factors) assert(factors, "Unable to determine the training factor of a training room! " .. "Reason: No inputs given") local total_objects = 0 local total_value = 0 local num_factors = #factors for _, factor in ipairs (factors) do total_objects = total_objects + factor.count -- Check we have at least one of this object and action accordingly local multiplier = factor.count > 0 and (math.log(factor.count) + 1) or 0 total_value = total_value + (multiplier * factor.value) end assert(total_value > 0 and total_objects > 0, "Unable to determine the training factor of a training room! " .. "Reason: total_value and total_objects are both 0") local average_1 = total_value / num_factors local average_2 = total_value / total_objects return math.max(average_1, average_2) end -- Object values and training rate set in level config local level_config = self.world.map.level_config local training_objects = countTrainingObjects() -- Consolidate elements of training factor to an array local training_value = level_config.gbv.TrainingValue local training_factors = { {count = training_objects.projector, value = training_value[0]}, {count = training_objects.skeleton, value = training_value[1]}, {count = training_objects.bookcase, value = training_value[2]}, } return calculateTotalEffect(training_factors) end function TrainingRoom:getStaffCount() local count = 0 for humanoid in pairs(self.humanoids) do if class.is(humanoid, Staff) then count = count + 1 end end return count end function TrainingRoom:testStaffCriteria(criteria, extra_humanoid) if extra_humanoid and extra_humanoid.profile and extra_humanoid.profile.is_consultant and self.staff_member then -- Training room can only have one consultant return false end return Room.testStaffCriteria(self, criteria, extra_humanoid) end function TrainingRoom:getTrainingFactor() return self.training_factor end function TrainingRoom:getMaximumStaffCriteria() return self.maximum_staff end function TrainingRoom:doStaffUseCycle(humanoid) local projector, ox, oy = self.world:findObjectNear(humanoid, "projector") humanoid:queueAction(WalkAction(ox, oy)) local projector_use_time = math.random(6,20) local loop_callback_training = --[[persistable:training_loop_callback]] function() projector_use_time = projector_use_time - 1 if projector_use_time == 0 then local skeleton, sox, soy = self.world:findFreeObjectNearToUse(humanoid, "skeleton", "near") local bookcase, box, boy = self.world:findFreeObjectNearToUse(humanoid, "bookcase", "near") if math.random(0, 1) == 0 and bookcase then skeleton = nil end -- choose bookcase or skeleton if skeleton then humanoid:walkTo(sox, soy) for _ = 1, math.random(3, 10) do humanoid:queueAction(UseObjectAction(skeleton)) end elseif bookcase then humanoid:walkTo(box, boy) for _ = 1, math.random(3, 10) do humanoid:queueAction(UseObjectAction(bookcase)) end end -- go back to the projector self:doStaffUseCycle(humanoid) elseif projector_use_time < 0 then -- reset variable to avoid potential overflow (over a VERY long -- period of time) projector_use_time = 0 end end humanoid:queueAction(UseObjectAction(projector):setLoopCallback(loop_callback_training)) end function TrainingRoom:onHumanoidEnter(humanoid) if not class.is(humanoid, Doctor) then -- use default behavior for staff other than doctors return Room.onHumanoidEnter(self, humanoid) end assert(not self.humanoids[humanoid], "Humanoid entering a room that they are already in") humanoid.in_room = self humanoid.last_room = self -- Remember where the staff was for them to come back after staffroom rest humanoid:setCallCompleted() self:commandEnteringStaff(humanoid) self.humanoids[humanoid] = true self:tryAdvanceQueue() end function TrainingRoom:commandEnteringStaff(humanoid) local obj, ox, oy local profile = humanoid.profile if class.is(humanoid, Doctor) then if profile.is_consultant then -- Consultant entered/placed in room. obj, ox, oy = self.world:findObjectNear(humanoid, "projector") local projector = obj -- Check if another consultant is teaching the lecture if self.staff_member then -- Release projector and dismiss current lector projector.reserved_for = nil self.staff_member:setNextAction(self:createLeaveAction(), true) self.staff_member:queueAction(MeanderAction()) end -- Start lecture with entered consultant projector.reserved_for = humanoid humanoid:walkTo(ox, oy) self:doStaffUseCycle(humanoid) self:setStaffMember(humanoid) else -- Student entered/placed in room obj, ox, oy = self.world:findFreeObjectNearToUse(humanoid, "lecture_chair") local lecture_chair = obj -- If any chair available if lecture_chair then -- Student occupy chair lecture_chair.reserved_for = humanoid humanoid:walkTo(ox, oy) humanoid:queueAction(UseObjectAction(obj)) humanoid:queueAction(MeanderAction()) else -- Student leave room self.hospital:giveAdvice({_A.staff_place_advice.not_enough_lecture_chairs}) humanoid:setNextAction(self:createLeaveAction()) humanoid:queueAction(MeanderAction()) humanoid.last_room = nil -- Prevent Doctor returning to this room automatically end end elseif not class.is(humanoid, Handyman) then self.hospital:giveAdvice({_A.staff_place_advice.only_doctors_in_room :format(_S.rooms_long.training_room)}) humanoid:setNextAction(self:createLeaveAction()) humanoid:queueAction(MeanderAction()) return end return Room.commandEnteringStaff(self, humanoid, true) end function TrainingRoom:onHumanoidLeave(humanoid) if class.is(humanoid, Doctor) then -- unreserve whatever it was they we using local fx, fy = self:getEntranceXY(true) local objects = self.world:findAllObjectsNear(fx,fy) for object, _ in pairs(objects) do if object.reserved_for == humanoid then object:removeReservedUser() end end end Room.onHumanoidLeave(self, humanoid) end function TrainingRoom:afterLoad(old, new) if old < 234 then -- Calculate the new training factor, unless we're currently editing the room if self.built then local fx, fy = self:getEntranceXY(true) local objects = self.world:findAllObjectsNear(fx, fy) self.training_factor = self:calculateTrainingFactor(objects) end end Room.afterLoad(self, old, new) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/ultrascan.lua000066400000000000000000000053611522247547500214050ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "ultrascan" room.vip_must_visit = false room.level_config_id = 14 room.class = "UltrascanRoom" room.name = _S.rooms_short.ultrascan room.long_name = _S.rooms_long.ultrascan room.tooltip = _S.tooltip.rooms.ultrascan room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { ultrascanner = 1 } room.build_preview_animation = 5068 room.categories = { diagnosis = 5, } room.minimum_size = 4 room.wall_type = "yellow" room.floor_tile = 19 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd007.wav" room.handyman_call_sound = "maint016.wav" class "UltrascanRoom" (Room) ---@type UltrascanRoom local UltrascanRoom = _G["UltrascanRoom"] function UltrascanRoom:UltrascanRoom(...) self:Room(...) end function UltrascanRoom:commandEnteringPatient(patient) local staff = self.staff_member local ultrascan, pat_x, pat_y = self.world:findObjectNear(patient, "ultrascanner") local stf_x, stf_y = ultrascan:getSecondaryUsageTile() staff:setNextAction(WalkAction(stf_x, stf_y)) staff:queueAction(IdleAction():setDirection(ultrascan.direction == "north" and "west" or "north")) patient:setNextAction(WalkAction(pat_x, pat_y)) local after_use_scan = --[[persistable:ultrascan_after_use]] function() -- if no other actions for staff member meander in room if #staff.action_queue == 1 then staff:setNextAction(MeanderAction()) else staff:finishAction(staff:getCurrentAction()) end self:dealtWithPatient(patient) end patient:queueAction(MultiUseObjectAction(ultrascan, staff):setAfterUse(after_use_scan)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/ward.lua000066400000000000000000000205241522247547500203440ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "ward" room.vip_must_visit = true room.level_config_id = 9 room.class = "WardRoom" room.name = _S.rooms_short.ward room.tooltip = _S.tooltip.rooms.ward room.long_name = _S.rooms_long.ward room.objects_additional = { "extinguisher", "radiator", "plant", "desk", "bin", "bed" } room.objects_needed = { desk = 1, bed = 1 } room.build_preview_animation = 910 room.categories = { treatment = 2, diagnosis = 9, } room.minimum_size = 6 room.wall_type = "white" room.floor_tile = 21 room.swing_doors = true room.required_staff = { Nurse = 1, } room.call_sound = "reqd009.wav" class "WardRoom" (Room) ---@type WardRoom local WardRoom = _G["WardRoom"] function WardRoom:WardRoom(...) self:Room(...) self.staff_member_set = {} self.healing_amount = 0 -- The size of progress towards a diagnostic step end function WardRoom:roomFinished() local fx, fy = self:getEntranceXY(true) local objects = self.world:findAllObjectsNear(fx, fy) local beds = 0 local desks = 0 for object, _ in pairs(objects) do if object.object_type.id == "bed" then beds = beds + 1 end if object.object_type.id == "desk" then desks = desks + 1 end end self.maximum_staff = { Nurse = desks, } self.maximum_patients = beds if self.hospital:countStaffOfCategory("Nurse", 1) == 0 then self.hospital:giveAdvice({_A.room_requirements.ward_need_nurse}) end Room.roomFinished(self) end function WardRoom:getMaximumStaffCriteria() return self.maximum_staff end function WardRoom:commandEnteringStaff(humanoid) self.staff_member_set[humanoid] = true self:doStaffUseCycle(humanoid) return Room.commandEnteringStaff(self, humanoid, true) end function WardRoom:doStaffUseCycle(humanoid) local meander_time = math.random(4, 10) humanoid:setNextAction(MeanderAction():setCount(meander_time)) local obj, ox, oy = self.world:findFreeObjectNearToUse(humanoid, "desk") if obj then obj.reserved_for = humanoid humanoid:walkTo(ox, oy) if obj.object_type.id == "desk" then local desk_use_time = math.random(7, 14) local desk_loop = --[[persistable:ward_desk_loop_callback]] function() desk_use_time = desk_use_time - 1 if desk_use_time == 0 then self:doStaffUseCycle(humanoid) end end humanoid:queueAction(UseObjectAction(obj):setLoopCallback(desk_loop)) end end local num_meanders = math.random(2, 4) local meanders_loop = --[[persistable:ward_meander_loop_callback]] function() num_meanders = num_meanders - 1 if num_meanders == 0 then self:doStaffUseCycle(humanoid) end end humanoid:queueAction(MeanderAction():setLoopCallback(meanders_loop)) end function WardRoom:updateHealingAmount() local patient_count = 1 local nurse_factor = 0 for humanoid in pairs(self.humanoids) do if not humanoid:isLeaving() then if class.is(humanoid, Patient) then patient_count = patient_count + 1 elseif class.is(humanoid, Nurse) and not humanoid.fired then nurse_factor = nurse_factor + 0.5 + humanoid:getServiceQuality() end end end if nurse_factor > 0 then -- Difficulty of healing - 10% faster on easier, 10% slower on hard mode local difficulty_factor = 0.8 + self.world.map:getDifficulty() * 0.1 self.healing_amount = nurse_factor / math.log(patient_count) / difficulty_factor else self.healing_amount = 0 end end function WardRoom:commandEnteringPatient(patient) local bed, pat_x, pat_y = self.world:findFreeObjectNearToUse(patient, "bed") self:setStaffMembersAttribute("dealing_with_patient", nil) if not bed then patient:setNextAction(self:createLeaveAction()) patient:queueAction(self:createEnterAction(patient)) self.world:gameLog("Warning: A patient was called into the ward even though there are no free beds.") return Room.commandEnteringPatient(self, patient) end bed.reserved_for = patient -- Old callback kept for persistence in savegame version 155, April 2021 local --[[persistable:ward_loop_callback]] function _(action) if length <= 0 then -- luacheck: ignore 113 action.prolonged_usage = false end length = length - 1 -- luacheck: ignore 111 113 end -- New callback local --[[persistable:ward_loop_callback2]] function loop_callback(action) action.remaining_work = action.remaining_work - self.healing_amount if action.remaining_work <= 0 then -- The patient is diagnosed or healed action.prolonged_usage = false end end local after_use = --[[persistable:ward_after_use]] function() self:dealtWithPatient(patient) end patient:walkTo(pat_x, pat_y) local bed_action = UseObjectAction(bed):setProlongedUsage(true) :setLoopCallback(loop_callback):setAfterUse(after_use) bed_action.remaining_work = math.random(150, 600) patient:queueAction(bed_action) return Room.commandEnteringPatient(self, patient) end function WardRoom:setStaffMember(staff) self.staff_member_set[staff] = true end function WardRoom:setStaffMembersAttribute(attribute, value) for staff_member, _ in pairs(self.staff_member_set) do staff_member[attribute] = value end end function WardRoom:onHumanoidLeave(humanoid) self.staff_member_set[humanoid] = nil Room.onHumanoidLeave(self, humanoid) self:updateHealingAmount() end function WardRoom:onHumanoidEnter(humanoid) Room.onHumanoidEnter(self, humanoid) self:updateHealingAmount() end function WardRoom:afterLoad(old, new) if old < 11 then -- Make sure all three tiles outside of the door are unbuildable. local door = self.door local x = door.tile_x local y = door.tile_y local dir = door.direction local map = self.world.map.th local flags = {} local function checkLocation(xpos, ypos) if self.world:getRoom(xpos, ypos) or not map:getCellFlags(xpos, ypos, flags).passable then local message = "Warning: An update has resolved a problem concerning " .. "swing doors, but not all tiles adjacent to them could be fixed." self.world.ui:addWindow(UIInformation(self.world.ui, {message})) return false end return true end if dir == "west" then -- In west or east wall if self.world:getRoom(x, y) == self then -- In west wall if checkLocation(x - 1, y + 1) then map:setCellFlags(x - 1, y + 1, {buildable = false}) end else -- East wall if checkLocation(x, y + 1) then map:setCellFlags(x, y + 1, {buildable = false}) end end else -- if dir == "north", North or south wall if self.world:getRoom(x, y) == self then -- In north wall if checkLocation(x + 1, y - 1) then map:setCellFlags(x + 1, y - 1, {buildable = false}) end else -- South wall if checkLocation(x + 1, y) then map:setCellFlags(x + 1, y, {buildable = false}) end end end end if old < 74 then -- add some new variables self.staff_member_set = {} self.nursecount = 0 -- reset any wards that already exist self:roomFinished() -- if there is already a nurse in the ward -- make her leave so she gets counted properly local nurse = self.staff_member if nurse then nurse:setNextAction(self:createLeaveAction()) nurse:queueAction(MeanderAction()) end end Room.afterLoad(self, old, new) end return room CorsixTH-0.70.0/CorsixTH/Lua/rooms/x_ray_room.lua000066400000000000000000000063611522247547500215700ustar00rootroot00000000000000--[[ Copyright (c) 2009 Manuel König Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local room = {} room.id = "x_ray" room.vip_must_visit = false room.level_config_id = 16 room.class = "XRayRoom" room.name = _S.rooms_short.x_ray room.long_name = _S.rooms_long.x_ray room.tooltip = _S.tooltip.rooms.x_ray room.objects_additional = { "extinguisher", "radiator", "plant", "bin" } room.objects_needed = { x_ray = 1, radiation_shield = 1 } room.build_preview_animation = 5076 room.categories = { diagnosis = 7, } room.minimum_size = 6 room.wall_type = "yellow" room.floor_tile = 19 room.required_staff = { Doctor = 1, } room.maximum_staff = room.required_staff room.call_sound = "reqd013.wav" room.handyman_call_sound = "maint005.wav" class "XRayRoom" (Room) ---@type XRayRoom local XRayRoom = _G["XRayRoom"] function XRayRoom:XRayRoom(...) self:Room(...) end function XRayRoom:commandEnteringPatient(patient) local staff = self.staff_member local x_ray, pat_x, pat_y = self.world:findObjectNear(patient, "x_ray") local console, stf_x, stf_y = self.world:findObjectNear(staff, "radiation_shield") local --[[persistable:x_ray_shared_loop_callback]] function loop_callback() if staff:getCurrentAction().name == "idle" and patient:getCurrentAction().name == "idle" then local length = math.random(2, 4) * (2 - staff.profile.skill) local loop_callback_xray = --[[persistable:x_ray_loop_callback]] function(action) if length <= 0 then action.prolonged_usage = false end length = length - 1 end local after_use_xray = --[[persistable:x_ray_after_use]] function() staff:setNextAction(MeanderAction()) self:dealtWithPatient(patient) end patient:setNextAction(UseObjectAction(x_ray):setLoopCallback(loop_callback_xray) :setAfterUse(after_use_xray)) staff:setNextAction(UseObjectAction(console)) end end patient:walkTo(pat_x, pat_y) patient:queueAction(IdleAction():setDirection(x_ray.direction == "north" and "east" or "south") :setLoopCallback(loop_callback)) staff:walkTo(stf_x, stf_y) staff:queueAction(IdleAction():setDirection(console.direction == "north" and "east" or "south") :setLoopCallback(loop_callback)) return Room.commandEnteringPatient(self, patient) end return room CorsixTH-0.70.0/CorsixTH/Lua/sprite_viewer.lua000066400000000000000000000171261522247547500211430ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- This is a poor replacement for the sprite viewing facility of AnimView, but -- when you don't have a copy of AnimView, or the means to compile it, then a -- crude sprite viewer is better than no sprite viewer. local is_open = false local gfx = TheApp.gfx local font -- Set on open local need_draw = true local sprite_table_paths = {} local palettes = {} local palette_index = 1 local palette_name local sprite_table_index local sprite_table local is_complex = false local wdown = false local sdown = false local scale = 1 local bg_colour_index = 1 local y_off local old_event_handlers local old_gfx_cache = {} local sprite_viewer_gfx_cache = {} local mpalette_index local background_colours = { Colours.Black, Colours.White, Colours.Magenta, Colours.Cyan, Colours.Yellow, } for _, dir in ipairs({"Data", "QData", "DataM", "QDataM"}) do for item in pairs(TheApp.fs:listFiles(dir) or {}) do if item:match("%.TAB$") then local basename = item:sub(1, -5) if TheApp.fs:fileExists(dir, basename .. ".DAT") then sprite_table_paths[#sprite_table_paths + 1] = {dir, item:sub(1, -5)} else print("Sprite table " .. dir .. "/" .. item .. " has no matching .DAT file. Skipping.") end end end end table.sort(sprite_table_paths, function(lhs, rhs) return lhs[1] < rhs[1] or (lhs[1] == rhs[1] and lhs[2] < rhs[2]) end) for name, _ in pairs(TheApp.gfx:allPalettes()) do palettes[#palettes + 1] = name end table.sort(palettes) for i, name in ipairs(palettes) do if name == "MPalette.dat" then mpalette_index = i break end end -- Find the palette with the longest common prefix with the sprite table path, -- as this is likely the correct palette to use for the sprite table. -- Avoids hardcoding a mapping of sprites to palettes and accounts for THs -- naming e.g. AWARD01.PAL and AWARD02.PAL used for AWARD03.TAB -- --!param sprite_table_name (string) The name of the sprite table, without the -- .TAB extension --!return (number) The index of the closest matching palette in the palettes local function closest_matching_palette(sprite_table_name) local best_score = 0 local best_index local lower_st = sprite_table_name:lower() for i, pal_name in ipairs(palettes) do local score = 0 local lower_pal = pal_name:lower() for j = 3, math.min(#lower_pal, #lower_st) do if lower_pal:sub(1, j) == lower_st:sub(1, j) then score = j else break end end if score > best_score then best_score = score best_index = i end end return best_index end local function LoadTable(n, complex, detect_palette) sprite_table_index = n is_complex = complex local path = sprite_table_paths[n] local pal if detect_palette then palette_index = closest_matching_palette(path[2]) or mpalette_index end palette_name = palettes[palette_index] pal = gfx:getPalette(palette_name) sprite_table = gfx:loadSpriteTable(path[1], path[2], complex, pal) need_draw = true y_off = 0 end LoadTable(1, false, true) local function DoKey(_, rawchar) local key = rawchar:lower() if key == "c" then gfx.cache.tabled = {} LoadTable(sprite_table_index, not is_complex, false) elseif key == "a" then if sprite_table_index > 1 then LoadTable(sprite_table_index - 1, is_complex, true) end elseif key == "d" then if sprite_table_index < #sprite_table_paths then LoadTable(sprite_table_index + 1, is_complex, true) end elseif key == "p" then palette_index = (palette_index or 1) % #palettes + 1 gfx.cache.tabled = {} LoadTable(sprite_table_index, is_complex, false) elseif key == "w" then wdown = true need_draw = true elseif key == "s" then sdown = true need_draw = true elseif key == "-" then if scale > 1 then scale = scale - 1 need_draw = true end elseif key == "=" then if scale < 8 then scale = scale + 1 need_draw = true end elseif key == "b" then bg_colour_index = bg_colour_index % #background_colours + 1 need_draw = true end return need_draw end local function DoKeyUp(_, rawchar) local key = rawchar:lower() if key == "q" then -- Exit sprite viewer TheApp.eventHandlers = old_event_handlers sprite_viewer_gfx_cache = gfx.cache.tabled gfx.cache.tabled = old_gfx_cache is_open = false return end if key == "w" then wdown = false end if key == "s" then sdown = false end end local function DoTextInput() return false end local function Render(canvas) local encoding = is_complex and " (Complex) " or " (Simple) " local msg = table.concat(sprite_table_paths[sprite_table_index], package.config:sub(1, 1)) .. encoding .. palette_name local _, fonth = font:sizeOf(msg) local sep = 2 local y = y_off font:draw(canvas, "CorsixTH Debug Sprite Viewer", 0, y) y = y + (fonth + sep) font:draw(canvas, "W/A/S/D to navigate, C to change mode, P to switch palette, -/= to scale, B to change background, Q to quit", 0, y) y = y + (fonth + sep) font:draw(canvas, msg, 0, y) y = y + fonth + sep local x = 0 local sw, sh = TheApp.config.width, TheApp.config.height local tallest = 0 for i = 0, #sprite_table - 1 do local w, h = sprite_table:size(i) w = w * scale h = h * scale local lbl = "#" .. i .. " (" .. w .. "x" .. h .. ")" local lw = font:sizeOf(lbl) if lw > w then w = lw end h = h + fonth + sep if x + w > sw then x = 0 y = y + tallest if y > sh then break end end if h > tallest then tallest = h end font:draw(canvas, lbl, x, y) sprite_table:draw( canvas, i, x, y + fonth, { scaleFactor = scale }) x = x + w + sep end end local function DoFrame(app) local canvas = app.video canvas:startFrame() if need_draw then need_draw = app.config.track_fps canvas:fillColour(background_colours[bg_colour_index]) Render(canvas) end canvas:endFrame() end local function DoTimer() if wdown then y_off = y_off + 32 need_draw = true end if sdown then y_off = y_off - 32 need_draw = true end return need_draw end local function open() if is_open then return end is_open = true old_gfx_cache = gfx.cache.tabled gfx.cache.tabled = sprite_viewer_gfx_cache font = gfx:loadFontAndSpriteTable("QData", "Font00V") old_event_handlers = TheApp.eventHandlers TheApp.eventHandlers = { frame = DoFrame, keydown = DoKey, keyup = DoKeyUp, timer = DoTimer, textinput = DoTextInput } need_draw = true end return open CorsixTH-0.70.0/CorsixTH/Lua/staff_profile.lua000066400000000000000000000224321522247547500210730ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "StaffProfile" ---@type StaffProfile local StaffProfile = _G["StaffProfile"] function StaffProfile:StaffProfile(world, humanoid_class, local_string) self.world = world self.humanoid_class = humanoid_class self.name = "Initialised" self.initial = "UN" self.name_seed = math.random(1, 1009) self.name_lang = self.world.app.config.language self.wage = 0 self.skill = 0 -- [0.0, 1.0] self.layer5 = 2 self.attention_to_detail = math.random() self.profession = local_string end function StaffProfile:setDoctorAbilities(psychiatrist, surgeon, researcher, junior, consultant) self.is_psychiatrist = psychiatrist self.is_surgeon = surgeon self.is_researcher = researcher self.is_junior = junior self.is_consultant = consultant end function StaffProfile:initDoctor(psychiatrist, surgeon, researcher, junior, consultant, skill) self:setDoctorAbilities(psychiatrist, surgeon, researcher, junior, consultant) self:init(skill) end function StaffProfile:init(skill) self:setSkill(skill) self.wage = self:getFairWage() self:randomiseOrganical() end function StaffProfile:setSkill(skill) self.skill = skill self:parseSkillLevel() end local name_parts = {_S.humanoid_name_starts, _S.humanoid_name_ends} local function shuffle(t) local r = {} local i = {} for k in ipairs(t) do r[k] = math.random() i[k] = k end table.sort(i, function(x, y) return r[x] < r[y] end) for k in ipairs(t) do r[k] = t[i[k]] end return r end local function our_concat(t) -- The standard table.concat function doesn't like our userdata strings :( local result = "" for _, s in ipairs(t) do result = result .. s end return result end function StaffProfile:randomise(month) local level_config = self.world.map.level_config -- decide general skill for all staff self.skill = math.random() --self.skill_level_modifier = math.random(-50, 50) / 1000 -- [-0.05, +0.05] if self:isType("Doctor") then local jr_limit = level_config.gbv.DoctorThreshold / 1000 local cons_limit = level_config.gbv.ConsultantThreshold / 1000 if self.world:getLocalPlayerHospital().hosp_cheats:isCheatActive("super_doctor") then self:initDoctor(1, 1, 1, false, true, math.random(cons_limit * 1000, 1000) / 1000) else -- find the correct config line (based on month) for generation of the doctor local i = 0 while i < #level_config.staff_levels and level_config.staff_levels[i+1].Month <= month do i = i+1 end -- list of level_config values and the corresponding staff modifiers, plus the value set for "no" local mods = { {"ShrkRate", "is_psychiatrist", 0}, {"SurgRate", "is_surgeon", 0}, {"RschRate", "is_researcher", 0}, {"JrRate", "is_junior", nil}, {"ConsRate", "is_consultant", nil}, } -- The following assumes ascending month order of the staff_levels table. -- TODO don't assume this but sort when loading map config for _, m in ipairs(mods) do local rate local ind = i while not rate do assert(ind >= 0, "Staff modifier " .. m[1] .. " not existent (should at least be given by base_config).") rate = level_config.staff_levels[ind][m[1]] ind = ind - 1 end -- 0 means none. Other values x mean "one in x"; thus 1 means "one in one" aka "all" rate = (rate == 0) and 0 or 1 / rate self[m[2]] = math.random() < rate and 1.0 or m[3] end -- is_consultant is forced to nil if is_junior is already 1 self.is_consultant = not self.is_junior and self.is_consultant or nil -- put the doctor in the right skill level box if self.is_junior then self.skill = jr_limit * self.skill elseif self.is_consultant then self.skill = cons_limit + ((1 - cons_limit) * self.skill) else self.skill = jr_limit + ((cons_limit - jr_limit) * self.skill) end end end self.wage = self:getFairWage() self:parseSkillLevel() self:randomiseOrganical() end --! Give the staff member some personal properties. function StaffProfile:randomiseOrganical() local initials = staff_initials_cache.initials local num = self.name_seed % #initials self.initial = initials[num] self.name = "" for _, part_table in ipairs(name_parts) do self.name = self.name .. part_table.__random end local desc_table1, desc_table2 if self.skill < 0.55 then desc_table1 = _S.staff_descriptions.bad desc_table2 = _S.staff_descriptions.misc else desc_table1 = _S.staff_descriptions.good desc_table2 = _S.staff_descriptions.misc end local descs = {desc_table1.__random, desc_table2.__random} while #our_concat(descs) > 96 do descs[#descs] = nil end self.desc = our_concat(shuffle(descs)) if self:isType("Doctor") then self.is_black = math.random(0, 1) == 0 if self.is_black then self.hair_index = math.random(5, 9) self.face_index = math.random(5, 9) self.chin_index = math.random(5, 9) self.layer5 = 4 else self.hair_index = math.random(0, 4) self.face_index = math.random(0, 4) self.chin_index = math.random(0, 4) self.layer5 = 2 end elseif self:isType("Nurse") then self.hair_index = math.random(10, 12) self.face_index = math.random(10, 12) self.chin_index = math.random(10, 12) elseif self:isType("Receptionist") then self.hair_index = math.random(13, 14) self.face_index = math.random(13, 14) self.chin_index = math.random(13, 14) elseif self:isType("Handyman") then self.hair_index = math.random(15, 17) self.face_index = math.random(15, 17) self.chin_index = math.random(15, 17) end end function StaffProfile:drawFace(canvas, x, y, parts_bitmap, scale) scale = scale or 1 canvas:scale(scale, "bitmap") parts_bitmap:draw(canvas, x, y , 0, self.hair_index * 29, 65, 29) parts_bitmap:draw(canvas, x, y + 29 * scale, 0, 522 + self.face_index * 24, 65, 24) parts_bitmap:draw(canvas, x, y + 53 * scale, 0, 954 + self.chin_index * 22, 65, 22) canvas:scale(1, "bitmap") end -- Update junior and consultant status function StaffProfile:parseSkillLevel() local level_config = self.world.map.level_config local junior_skill = level_config.gbv.DoctorThreshold / 1000 self.is_junior = self.skill <= junior_skill and 1 or nil local consultant_skill = level_config.gbv.ConsultantThreshold / 1000 self.is_consultant = self.skill >= consultant_skill and 1 or nil end local conf_id = { Nurse = 0, Doctor = 1, Handyman = 2, Receptionist = 3, } local ability_conf_id = { is_junior = 3, is_doctor = 4, is_surgeon = 5, is_psychiatrist = 6, is_consultant = 7, is_researcher = 8, } function StaffProfile:getFairWage() if self.world.free_build_mode then return 0 end local level_config = self.world.map.level_config local wage = level_config.staff[conf_id[self.humanoid_class]].MinSalary wage = wage + self.skill * 1000 / level_config.gbv.SalaryAbilityDivisor if self:isType("Doctor") then for name, id in pairs(ability_conf_id) do if self[name] == 1 then wage = wage + level_config.gbv.SalaryAdd[id] end end if not self.is_junior and not self.is_consultant then wage = wage + level_config.gbv.SalaryAdd[ability_conf_id.is_doctor] end end return math.max(math.floor(wage), level_config.staff[conf_id[self.humanoid_class]].MinSalary) end function StaffProfile:getRiseAmount() local rise_amount = math.floor(math.max(self.wage * 1.1, (self:getFairWage(self.world) + self.wage) / 2) - self.wage) return rise_amount end function StaffProfile:getFullName() return self.initial .. ". " .. self.name end --! Translate the staff class to its translated text. --!param staff_class Class of the staff to translate. --!return The translated name. function StaffProfile.translateStaffClass(staff_class) local staffclass_to_string = { Nurse = _S.staff_title.nurse, Doctor = _S.staff_title.doctor, Surgeon = _S.staff_title.surgeon, Psychiatrist = _S.staff_title.psychiatrist, Researcher = _S.staff_title.researcher, } return staffclass_to_string[staff_class] end function StaffProfile:isType(humanoid_class) return self.humanoid_class == humanoid_class end CorsixTH-0.70.0/CorsixTH/Lua/strict.lua000066400000000000000000000055031522247547500175600ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- Force local variables to be used for everything (except for explicitly -- declared variables and any code running in derestriced mode). This helps to -- catch typos in variable names, and promotes usage of locals over globals -- (which improves speed). local rawset, error, tostring = rawset, error, tostring local strict_mt = {} local allowed_globals = setmetatable({}, {__mode = "k"}) local function newindex(t, k, v) if allowed_globals[k] then rawset(t, k, v) else error("assign to undeclared variable \'" .. tostring(k) .. "\'", 2) end end local function index(_, k) if allowed_globals[k] then return nil else error("use of undeclared variable \'" .. tostring(k) .. "\'", 2) end end local function restrict(ni, i, ...) strict_mt.__newindex = ni strict_mt.__index = i return ... end restrict(newindex, index) --!! Wrap a function so that it is freely able to set global variables --[[ Some existing functions (for example, `require`) should be allowed to read and write global variables without having to worry about declaring them with `strict_declare_global`. !param fn The function which should be able to freely set globals !return A new function which acts just as `fn` and is free to set globals !example require = destrict(require) ]] function destrict(fn) return function(...) local ni, i = strict_mt.__newindex, strict_mt.__index strict_mt.__newindex, strict_mt.__index = nil, nil return restrict(ni, i, fn(...)) end end --!! Declare a global variable so that it can later be used --[[!param name The name of the global to declare !example strict_declare_global "some_var" some_var = 42 ]] function strict_declare_global(name) allowed_globals[name] = true end setmetatable(_G, strict_mt) CorsixTH-0.70.0/CorsixTH/Lua/string_extensions.lua000066400000000000000000000133221522247547500220330ustar00rootroot00000000000000--[[ Copyright (c) 2011 Manuel "Roujin" Wolf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") local lpeg = require("lpeg") local _unwrap = TH.stringProxy._unwrap function TH.stringProxy.gsub(str, patt, repl) local str_was_proxy, patt_was_proxy, repl_was_proxy str, str_was_proxy = _unwrap(str) patt, patt_was_proxy = _unwrap(patt) local result local t = type(repl) if t == "table" then result = str:gsub(patt, function(cap) local res, was_proxy = _unwrap(repl[cap]) if was_proxy then repl_was_proxy = true end return res end) elseif t == "function" then result = str:gsub(patt, function(...) local res, was_proxy = _unwrap(repl(...)) if was_proxy then repl_was_proxy = true end return res end) else repl, repl_was_proxy = _unwrap(repl) result = str:gsub(patt, repl) end if str_was_proxy or patt_was_proxy or repl_was_proxy then result = TH.stringProxy(result, TH.stringProxy.gsub, str, patt, repl) end return result end local format_pattern = lpeg.Cs( ( ( -- %% to % lpeg.P("%%") / "%%" + -- Old-style (%s) and (%d) lpeg.C("%" * lpeg.S("sd") * lpeg.Carg(1)) / function(key, args) local idx = args.idx + 1 args.idx = idx local arg, proxy_found = _unwrap(args[idx]) local t = type(arg) if (key == "%d" and t == "number") or -- NB: Numbers are allowed for %s as well to allow concatenation with number. -- TODO the third check should really be class.is(arg, TH.stringProxy), but -- it doesn't currently work due to TH.stringProxy overriding __index (key == "%s" and (t == "string" or t == "number" or t == "userdata")) then if proxy_found then args.proxy_found = true end return arg end return key end + -- New-style %([1-9])% and %([1-9]):([a-zA-Z0-9_.]-)% lpeg.C("%" * lpeg.C(lpeg.R("19")) * (":" * lpeg.C(lpeg.R("az","AZ","09","__","..")^1) + lpeg.Cc(nil)) * "%" * lpeg.Carg(1)) / function(str, key, tab, args) local val, proxy_found = _unwrap(args[tonumber(key)]) if val == nil then return str end -- abort if tab then local string_table = _S for part in tab:gmatch("[^.]+") do string_table = string_table[part] if not string_table then return str end -- abort end if not string_table[val] then return str end -- abort val = _unwrap(string_table[val]) proxy_found = true end if proxy_found then args.proxy_found = true end return val end ) + 1 ) ^ 0 ) --! Custom format function for our proxy strings. --! Keywords for replacing are: %s, %d, %%, %[num]% and %[num]:[tab]% --! NB: %s and %d are only replaced if none of the new keywords (%[num]% and %[num]:[tab]%) are present. --! NB: Always escape percent sign (i.e. use %% instead of %) in strings with formatting keywords! Failure --! to do so can cause unwanted behavior. --! --! Keywords: --! %s, %d : replaced with the n-th parameter, if the type matches (%s = string, %d = number). --! %% : replaced by single percent sign "%". Needed for escaping. --! %[num]% : ([num] between 1-9) replaced by [num]-th parameter. --! %[num]:[tab]% : replaced by string obtained by indexing string table _S.[tab] with [num]-th parameter. --!param str (string, stringProxy) the string that contains keywords to be replaced --!param ... (string, stringProxy, number) parameters to be inserted in the string (or used for lookup) --!return formatted stringProxy, if any of the result's components was a stringProxy, else formatted string function TH.stringProxy.format(str, ...) local args = {idx = 0, ...} local str_was_proxy str, str_was_proxy = _unwrap(str) local result = format_pattern:match(str, 1, args) if str_was_proxy or args.proxy_found then result = TH.stringProxy(result, TH.stringProxy.format, str, ...) end return result end --! Wrapper for the lua string.find function. Make sure to call mystring:find(...) instead of string.find(mystring, ...). function TH.stringProxy.find(str, ...) str = _unwrap(str) return str:find(...) end --! Wrapper for the lua string.sub function. Make sure to call mystring:sub(...) instead of string.sub(mystring, ...). function TH.stringProxy.sub(str, ...) local str_was_proxy str, str_was_proxy = _unwrap(str) local result = str:sub(...) if str_was_proxy then result = TH.stringProxy(result, TH.stringProxy.sub, str, ...) end return result end for _, method_name in ipairs({"gsub", "format", "find", "sub"}) do permanent("TH.stringProxy." .. method_name, TH.stringProxy[method_name]) end CorsixTH-0.70.0/CorsixTH/Lua/strings.lua000066400000000000000000000560011522247547500177400ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local lfs = require("lfs") local TH = require("TH") --! Layer which handles the loading of localised text. class "Strings" ---@type Strings local Strings = _G["Strings"] function Strings:Strings(app) self.app = app end local utf8conv local cp437conv local function id(...) return ... end function Strings:init() -- Load (but do not execute) everything from the language directory -- Note that files are loaded with loadfile_envcall self.language_chunks = {} local pathsep = package.config:sub(1,1) local path = self.app:getFullPath({"Lua", "languages"}, true) for file in lfs.dir(path) do if file:match("%.lua$") then local result, err = loadfile_envcall(path .. file) if not result then print("Error loading languages" .. pathsep .. file .. ":\n" .. tostring(err)) else self.language_chunks[result] = "languages" .. pathsep .. file end end end -- Build the language table from Language() calls -- Every file in the languages folder should have a call to Language() near -- the start of the file which gives the names for the language. These names -- are used to link the user's choice of language to a file, and to link the -- names given to Inherit() to a file. The first name is used as the official -- name for this language, the others may be abbreviations or such. self.languages = {} self.languages_english = {} self.language_to_chunk = {} self.chunk_to_font = {} self.chunk_to_names = {} self.language_to_lang_code = {} self.languages_with_arabic_numerals = {} for chunk, filename in pairs(self.language_chunks) do -- To allow the file to set global variables without causing an error, it -- is given an infinite table as an environment. Reading a non-existent -- key from an infinite table returns another infinite table, rather than -- the default value of nil. local infinite_table_mt infinite_table_mt = { __index = function(_, _) return setmetatable({}, infinite_table_mt) end } -- To abort evaluation of the chunk after Language() is called, a unique -- marker is used as an error message. The other alternative would be to -- do complex co-routine calls. A freshly made empty table is a suitable -- unique marker. local good_error_marker = {} local env = setmetatable({ utf8 = id, cp437 = cp437conv, pairs = pairs, Language = function(...) local names = {...} -- Use the first name for display purposes (case-dependent!). if names[1] ~= "original_strings" then self.languages[#self.languages + 1] = names[1] -- Also save the second name for tooltips and internal purposes. assert(names[2], filename .. " does not have an English name.") self.languages_english[names[1]] = names[2] end -- Associate every passed name with this file, case-independently for _, name in pairs(names) do self.language_to_chunk[name:lower()] = chunk self.language_to_lang_code[name:lower()] = names[3] end self.chunk_to_names[chunk] = names error(good_error_marker) end, Font = function(...) self.chunk_to_font[chunk] = ... end, -- Set Inherit and SetSpeechFile to do nothing Inherit = function() end, SetSpeechFile = function() end, Encoding = function() end, IsArabicNumerals = function() end, -- Set LoadStrings to return an infinite table LoadStrings = infinite_table_mt.__index, }, infinite_table_mt) -- Actually run the language file local status, err = pcall(chunk, env) if not status and err ~= good_error_marker and TheApp.good_install_folder then print("Error evaluating " .. filename .. ":\n" .. tostring(err)) end end table.sort(self.languages) end -- String tables are shadowed so that all access to a string table goes -- through a metamethod (which is desirable to catch invalid reads, provide -- "__random", and prevent writes). This means that every string table is in -- fact empty, and has it's keys and values stored in a separate table, called -- the shadow table. The shadows table is used to associate a shadow table -- with a string table. local shadows = setmetatable({}, {__mode = "k"}) -- Metatable which is used for all tables returned by Strings:load() -- The end effect is to raise errors on accesses to non-existent strings -- (unless no_restriction is set to true), to add a special string called -- "__random" to each table (which always resolves to a random string from -- the table), and to prevent editing or adding to a string table. local strings_metatable = function(no_restriction) return { __index = function(t, key) t = shadows[t] local val = t[key] if val ~= nil then return val end if key ~= "__random" then if no_restriction then return nil end error("Non-existent string: " .. tostring(key), 2) end local candidates = {} for _, v in pairs(t) do candidates[#candidates + 1] = v end return candidates[math.random(1, #candidates)] end, __newindex = function(_, _, _) error("String tables are read-only", 2) end, __pairs = function(t) return pairs(shadows[t]) end, __ipairs = function(t) return ipairs(shadows[t]) end, } end -- no_restriction disables errors on access to non-existent strings (for debug purposes) -- no_inheritance disables inheritance except original_strings (for debug purposes) function Strings:load(language, no_restriction, no_inheritance) assert(language ~= "original_strings", "Original strings can not be loaded directly. Please select a proper language.") -- env is the table of globals to execute to the language file in, and hence -- it also stores the resulting strings. local env = {} shadows[env] = {} -- speech_file holds the result of any call to SetSpeechFile() local speech_file local default_encoding = id local encoding = default_encoding local language_called = false local functions; functions = { -- Convert UTF-8 to the file's default encoding utf8 = function(s) if encoding == cp437conv then return utf8conv(s) else return s end end, -- Convert CP437 to the file's default encoding cp437 = function(s) if encoding == cp437conv then return s else return cp437conv(s) end end, ipairs = ipairs, pairs = pairs, -- Calling the Language() function should have no effect any more Language = function() language_called = true end, Font = function() if language_called then error("Font declaration must occur before Language declaration") end end, -- Inherit() should evaluate the named language in the current environment -- NB: Inheritance of any but original_strings disabled when no_inheritance set Inherit = function(lang, ...) if no_inheritance and lang ~= "original_strings" then return end local old_encoding = encoding encoding = default_encoding local old_language_called = language_called language_called = false self:_loadPrivate(lang, env, ...) encoding = old_encoding language_called = old_language_called end, -- Encoding() should set the default encoding for the remainder of the file Encoding = function(new_encoding) if new_encoding == functions.utf8 then encoding = id elseif new_encoding == functions.cp437 then encoding = cp437conv else error("Invalid encoding; expected utf8 or cp437") end end, -- LoadStrings() should return the original game string table LoadStrings = function(filename) return assert(TH.LoadStrings(self.app:readDataFile(filename)), "Cannot load original string file '" .. filename .. "'") end, -- SetSpeechFile() should remember the named file to return to our caller SetSpeechFile = function(...) speech_file = ... end, IsArabicNumerals = function(is_enabled) self.languages_with_arabic_numerals[language] = is_enabled end, _G = env, type = type, } -- The metatable on the environment is set so that the above functions look -- like top-level level globals, so that the environment behaves like an -- infinite table, and so that assignments are merged into the string table. local metatable metatable = { __index = function(t, k) -- Make the functions look like top-level globals local shadow = shadows[t] local value = ((t == env) and functions[k]) or shadow[k] if value == nil then value = setmetatable({}, metatable) shadow[k] = value shadows[value] = {} end return value end, __newindex = function(t, k, v) local ty = type(v) if ty ~= "table" then -- non-table values cannot be merged if ty == "string" then -- convert from file's default encoding to UTF-8 v = encoding(v) end shadows[t][k] = v else -- v should be merged into t[k] -- Perform t[k][k2] = v2 for each (k2, v2) in v to recursively merge t = t[k] for k2, v2 in pairs(v) do t[k2] = v2 end end end, } metatable.__pairs = strings_metatable(no_restriction).__pairs -- Evaluate the language file setmetatable(env, metatable) self:_loadPrivate(language, env) -- Change the metamethods on every string table to match strings_metatable for k, v in pairs(strings_metatable(no_restriction)) do metatable[k] = v end return env, speech_file end --! Get the Font() declaration of a language, if there was one. function Strings:getFont(language) local chunk = self.language_to_chunk[language:lower()] return chunk and self.chunk_to_font[chunk] end function Strings:getLanguageNames(language) local chunk = self.language_to_chunk[language:lower()] return chunk and self.chunk_to_names[chunk] end function Strings:getLangCode(language) local lang = language or self.app.config.language return self.language_to_lang_code[lang:lower()] end function Strings:isArabicNumerals(language) return self.languages_with_arabic_numerals[language:lower()] end --! Use local language text where possible. --!param string (string) The default, likely English, text --!param table (table) A table of translated text in language code fields --!return (string) The text in the current language if available, or in English, or the default string. function Strings:getLocalisedText(string, table) if string and not table then return string elseif table[self:getLangCode()] then return table[self:getLangCode()] elseif table.en then return table.en else return string end end --! Checks the language we specify is known to the application. --!param language (string) Language to check --!return true if known function Strings:checkLanguageExists(language) return not not self.language_to_chunk[language:lower()] end function Strings:_loadPrivate(language, env, ...) local chunk = self.language_to_chunk[language:lower()] if not chunk then -- If selected language could not be found, try to revert to English print(serialize(self.language_to_chunk, {detect_cycles=true, pretty=true})) print("Language '" .. language .. "' could not be found. Reverting to English.") chunk = self.language_to_chunk["english"] if not chunk then -- If english could not be found, raise an error error("Language 'English' could not be found. Please verify your installation.") end end local status, err = pcall(chunk, env, ...) if not status and self.app.good_install_folder then print("Error evaluating " .. self.language_chunks[chunk] .. ":\n" .. tostring(err)) end end function Strings:setupAdviserMessage(messages) local prioTable prioTable = { _priority = 5, -- Default priority tutorial = { _priority = 11}, epidemic = { _priority = 6 }, --staff_advice --earthquake --multiplayer --surgery_requirements --vomit_wave --level_progress --staff_place_advice --room_forbidden_non_reachable_parts --research --boiler_issue --room_requirements --goals warnings = { _priority = 10 }, --placement_info praise = { _priority = 1 }, --information --build_advice --cheats } -- Passes adviser message through string.format process local formatFunc formatFunc = function(format_self, ...) -- After 'format', it is not useful to have indexing magic anymore. return { text = format_self.text:format(...), priority = format_self.priority } end local indexFunc indexFunc = function(index_self, field) -- Since prioTable is a partial table, index_self.table may disappear, prevent infinite recursion. if field == "table" then return nil end local val = {} val.text = index_self.text[field] val.format = formatFunc val.table = index_self.table val.priority = index_self.priority if val.table ~= nil then val.table = val.table[field] if val.table ~= nil and val.table._priority ~= nil then val.priority = val.table._priority end end setmetatable(val, {__index = indexFunc}) return val end -- Initial value local adviserMessage = { text = messages, table = prioTable, priority = prioTable._priority, format = formatFunc } setmetatable(adviserMessage, {__index = indexFunc}) return adviserMessage end -- Primitive system to map UTF-8 characters onto Code Page 437. -- Provided so that language scripts can encode text in a modern and well -- supported manner, and have the text automatically transcoded into the -- encoding which the Theme Hospital fonts use. local codepoints_to_cp437 = { -- Below 0x80 need no translation [0xC7] = 0x80, -- majuscule c-cedilla [0xFC] = 0x81, -- minuscule u-umlaut [0xE9] = 0x82, -- minuscule e-acute [0xE2] = 0x83, -- minuscule a-circumflex [0xE4] = 0x84, -- minuscule a-umlaut [0xE0] = 0x85, -- minuscule a-grave [0xE5] = 0x86, -- minuscule a-ring [0xE7] = 0x87, -- minuscule c-cedilla [0xEA] = 0x88, -- minuscule e-circumflex [0xEB] = 0x89, -- minuscule e-umlaut [0xE8] = 0x8A, -- minuscule e-grave [0xEF] = 0x8B, -- minuscule i-umlaut [0xEE] = 0x8C, -- minuscule i-circumflex [0xEC] = 0x8D, -- minuscule i-grave [0xC4] = 0x8E, -- majuscule a-umlaut [0xC5] = 0x8F, -- majuscule a-ring [0xC9] = 0x90, -- majuscule e-acute [0xE6] = 0x91, -- minuscule ae [0xC6] = 0x91, -- majuscule ae (not in TH fonts - mapped to minuscule ae) [0xF4] = 0x93, -- minuscule o-circumflex [0xF6] = 0x94, -- minuscule o-umlaut [0xF2] = 0x95, -- minuscule o-grave [0xFB] = 0x96, -- minuscule u-circumflex [0xF9] = 0x97, -- minuscule u-grave [0xFF] = 0x98, -- minuscule y-umlaut [0xD6] = 0x99, -- majuscule o-umlaut [0xDC] = 0x9A, -- majuscule u-umlaut -- 0x9B through 0x9F are currency symbols and not present in TH fonts [0xE1] = 0xA0, -- minuscule a-acute [0xED] = 0xA1, -- minuscule i-acute [0xF3] = 0xA2, -- minuscule o-acute [0xFA] = 0xA3, -- minuscule u-acute [0xF1] = 0xA4, -- minuscule n-tilde [0xD1] = 0xA5, -- majuscule n-tilde -- 0xA6 and 0xA7 are ordinal indicators and not present in TH fonts [0xBF] = 0xA8, -- inverted question mark -- 0xA9 through 0xAC are not present in TH fonts [0xA1] = 0xAD, -- inverted exclaimation mark -- 0xAE through 0xE0 are not present in TH fonts [0xDF] = 0xE1, -- eszett / sharp-S / lowercase-beta -- 0xE2 through 0xFF are not present in TH fonts } local cp437_to_codepoints = { [0x91] = 0xE6, -- minuscule ae [0x9B] = 0xA2, -- cent sign [0x9C] = 0xA3, -- pound sign [0x9D] = 0xA5, -- yen sign [0x9E] = 0x20A7, -- peseta sign [0x9F] = 0x192, -- florin sign [0xA6] = 0xAA, -- a ordinal indicator [0xA7] = 0xBA, -- o ordinal indicator [0xA9] = 0x2310, -- negation [0xAA] = 0xAC, -- negation [0xAB] = 0xBD, -- 1/2 [0xAC] = 0xBC, -- 1/4 [0xAE] = 0xAB, -- << guillemets [0xAF] = 0xBB, -- >> guillemets -- 0xB0 through 0xDF omitted [0xE0] = 0x3B1, -- alpha [0xE2] = 0x393, -- gamma [0xE3] = 0x3C0, -- pi [0xE4] = 0x3A3, -- majuscule sigma [0xE5] = 0x3C3, -- minuscule sigma [0xE6] = 0x3BC, -- minuscule mu [0xE7] = 0x3C4, -- tau [0xE8] = 0x3A6, -- majuscule phi [0xE9] = 0x398, -- theta [0xEA] = 0x3A9, -- omega [0xEB] = 0x3B4, -- delta [0xEC] = 0x221E, -- infinity [0xED] = 0x3C6, -- minuscule phi [0xEE] = 0x3B5, -- epsilon [0xEF] = 0x2229, -- set intersection [0xF0] = 0x2261, -- modular congruence / triple equals [0xF1] = 0xB1, -- plus / minus [0xF2] = 0x2265, -- >= [0xF3] = 0x2264, -- <= [0xF4] = 0x2320, -- upper integral sign [0xF5] = 0x2321, -- lower integral sign [0xF6] = 0xF7, -- obelus [0xF7] = 0x2248, -- approximate equality [0xF8] = 0xB0, -- degree symbol [0xF9] = 0x2219, -- bullet [0xFA] = 0xB7, -- interpunct [0xFB] = 0x221A, -- square root [0xFC] = 0x207F, -- exponentiation [0xFD] = 0xB2, -- superscript 2 [0xFE] = 0x25A0, -- filled square [0xFF] = 0xA0, -- non-breaking space } local function utf8encode(codepoint) if codepoint <= 0x7F then return string.char(codepoint) elseif codepoint <= 0x7FF then local sextet = codepoint % 64 codepoint = math.floor((codepoint - sextet) / 64) return string.char(0xC0 + codepoint, 0x80 + sextet) elseif codepoint <= 0xFFFF then local sextet2 = codepoint % 64 codepoint = math.floor((codepoint - sextet2) / 64) local sextet1 = codepoint % 64 codepoint = math.floor((codepoint - sextet2) / 64) return string.char(0xE0 + codepoint, 0x80 + sextet1, 0x80 + sextet2) else local sextet3 = codepoint % 64 codepoint = math.floor((codepoint - sextet3) / 64) local sextet2 = codepoint % 64 codepoint = math.floor((codepoint - sextet2) / 64) local sextet1 = codepoint % 64 codepoint = math.floor((codepoint - sextet2) / 64) return string.char(0xF0 + codepoint, 0x80 + sextet1, 0x80 + sextet2, 0x80 + sextet3) end end local cp437_to_utf8_pattern = {"["} local cp437_to_utf8_replacement = {} for codepoint, cp437 in pairs(codepoints_to_cp437) do if not cp437_to_codepoints[cp437] then cp437_to_utf8_pattern[#cp437_to_utf8_pattern + 1] = string.char(cp437) cp437_to_utf8_replacement[string.char(cp437)] = utf8encode(codepoint) end end for cp437, codepoint in pairs(cp437_to_codepoints) do cp437_to_utf8_pattern[#cp437_to_utf8_pattern + 1] = string.char(cp437) cp437_to_utf8_replacement[string.char(cp437)] = utf8encode(codepoint) end cp437_to_utf8_pattern[#cp437_to_utf8_pattern + 1] = "]" cp437_to_utf8_pattern = table.concat(cp437_to_utf8_pattern) cp437conv = function(s) return (s:gsub(cp437_to_utf8_pattern, cp437_to_utf8_replacement)) end -- Table which maps a single character and a single unicode combining -- diacritical mark to a single unicode codepoint local circumflex = 0x302 local cedilla = 0x327 local umlaut = 0x308 local acute = 0x301 local grave = 0x300 local ring = 0x30A local tilde = 0x303 local combine_diacritical_marks = { a = { [grave] = 0xE0, [acute] = 0xE1, [circumflex] = 0xE2, [umlaut] = 0xE4, [ring] = 0xE5, }, e = { [grave] = 0xE8, [acute] = 0xE9, [circumflex] = 0xEA, [umlaut] = 0xEB, }, i = { [grave] = 0xEC, [acute] = 0xED, [circumflex] = 0xEE, [umlaut] = 0xEF, }, o = { [grave] = 0xF2, [acute] = 0xF3, }, u = { [grave] = 0xF9, [acute] = 0xFA, [circumflex] = 0xFB, [umlaut] = 0xFC, }, c = { [cedilla] = 0xE7, }, n = { [tilde] = 0xF1, }, y = { [umlaut] = 0xFF, }, A = { [umlaut] = 0xC4, [ring] = 0xC5, }, E = { [acute] = 0xC9, }, O = { [umlaut] = 0xD6, }, U = { [umlaut] = 0xDC, }, C = { [cedilla] = 0xC7, }, N = { [tilde] = 0xD1, }, } local function utf8char(c) -- Test for presence of a normal character prior to the utf-8 character local prechar if c:byte() < 128 then prechar = c:sub(1, 1) c = c:sub(2, -1) end -- Extract the codepoint of the utf-8 character local codepoint = 0 local multiplier = 1 for i = #c, 2, -1 do codepoint = codepoint + (c:byte(i) - 128) * multiplier multiplier = multiplier * 2^6 end codepoint = codepoint + (c:byte(1) % 2^(7 - #c)) * multiplier -- If the utf-8 character is a combining diacritical mark, merge it with the -- preceding normal character if prechar and (0x300 <= codepoint and codepoint < 0x370) then if combine_diacritical_marks[prechar] then if combine_diacritical_marks[prechar][codepoint] then codepoint = combine_diacritical_marks[prechar][codepoint] prechar = nil else return prechar end else return prechar end end -- Convert to Code Page 437 return (prechar or "") .. string.char(codepoints_to_cp437[codepoint] or 0x3F) end utf8conv = function(s) -- Pull out each individual utf-8 character and pass it through utf8char -- [\1-\127] picks up a preceding ASCII character to combine diacritics -- [\192-\253] picks up the first byte of a utf-8 character (technically -- only 194 through 244 should be used) -- [\128-\191] picks up the remaining bytes of a utf-8 character return (s:gsub("[\1-\127]?[\192-\253][\128-\191]*", utf8char)) end -- Fix string.upper and string.lower to work with CP437 rather than current locale local lower_to_upper, upper_to_lower = {}, {} local function case(lower, upper) lower = cp437conv(string.char(lower)) upper = cp437conv(string.char(upper)) lower_to_upper[lower] = upper lower_to_upper[upper] = upper upper_to_lower[lower] = lower upper_to_lower[upper] = lower end case(0x87, 0x80) -- c-cedilla case(0x81, 0x9A) -- u-umlaut case(0x82, 0x90) -- e-acute case(0x84, 0x8E) -- a-umlaut case(0x86, 0x8F) -- a-ring case(0x94, 0x99) -- o-umlaut case(0xA4, 0xA5) -- n-tilde local case_pattern = "\195[\128-\191]" -- Unicode range [0xC0, 0xFF] as UTF-8 local orig_upper = string.upper function string.upper(s) -- luacheck: ignore 122 return orig_upper(s:gsub(case_pattern, lower_to_upper)) end local orig_lower = string.lower function string.lower(s) -- luacheck: ignore 122 return orig_lower(s:gsub(case_pattern, upper_to_lower)) end CorsixTH-0.70.0/CorsixTH/Lua/ui.lua000066400000000000000000001137631522247547500166750ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("window") --! Top-level container for all other user-interface components. class "UI" (Window) ---@type UI local UI = _G["UI"] local TH = require("TH") local SDL = require("sdl") local WM = SDL.wm local lfs = require("lfs") local function invert(t) local r = {} for k, v in pairs(t) do if type(v) == "table" then for _, val in ipairs(v) do r[val] = k end else r[v] = k end end return r end function UI:initKeyAndButtonCodes() local key_remaps = {} local button_remaps = {} local key_to_button_remaps = {} local key_norms = setmetatable({ [" "] = "space", esc = "escape", }, {__index = function(t, k) k = tostring(k):lower() return rawget(t, k) or k end}) --[===[ do local ourpath = debug.getinfo(1, "S").source:sub(2, -7) local result, err = loadfile_envcall(ourpath .. "key_mapping.txt") if not result then print("Cannot load key mapping:" .. err) else local env = { key_remaps = function(t) for k, v in pairs(t) do key_remaps[key_norms[k]] = key_norms[v] end end, button_remaps = function(t) for k, v in pairs(t) do k = key_norms[k] if k == "left" or k == "middle" or k == "right" then button_remaps[k] = key_norms[v] else key_to_button_remaps[k] = key_norms[v] end end end, } setmetatable(env, {__index = function(_, k) return k end}) result(env) end end ]===] local keypad = { ["Keypad 0"] = "insert", ["Keypad 1"] = "end", ["Keypad 2"] = "down", ["Keypad 3"] = "pagedown", ["Keypad 4"] = "left", ["Keypad 6"] = "right", ["Keypad 7"] = "home", ["Keypad 8"] = "up", ["Keypad 9"] = "pageup", ["Keypad ."] = "delete", } -- Apply keypad remapping for k, v in pairs(keypad) do key_remaps[key_norms[k]] = key_norms[v] end self.key_remaps = key_remaps self.key_to_button_remaps = key_to_button_remaps self.button_codes = { left = 1, middle = 2, right = 3, } -- Apply button remaps directly to codes, as mouse button codes are reliable -- (keyboard key codes are not). local original_button_codes = {} for input, behave_as in pairs(button_remaps) do local code = original_button_codes[input] or self.button_codes[input] or {} if not original_button_codes[input] then original_button_codes[input] = code self.button_codes[input] = nil end if not original_button_codes[behave_as] then original_button_codes[behave_as] = self.button_codes[behave_as] end self.button_codes[behave_as] = code end self.button_codes = invert(self.button_codes) end local LOADED_DIALOGS = false function UI:UI(app, minimal) self:Window() self:initKeyAndButtonCodes() self.app = app self.screen_offset_x = 0 self.screen_offset_y = 0 self.cursor = nil self.cursor_entity = nil self.debug_cursor_entity = nil -- through trial and error, this palette seems to give the desired result (white background, black text) -- NB: Need a palette present in both the full game and in the demo data if minimal then self.tooltip_font = app.gfx:loadBuiltinFont() else local palette = app.gfx:getPalette("Pref01V.pal") self.tooltip_font = app.gfx:loadFontAndSpriteTable("QData", "Font00V", false, palette, { apply_ui_scale = true }) end self.tooltip = nil self.tooltip_counter = 0 self.background = false -- tick_scroll_amount will either hold a table containing x and y values, at -- at least one of which being non-zero. If both x and y are zero, then the -- value false should be used instead, so that tests to see if there is any -- scrolling to be done are quick and simple. self.tick_scroll_amount = false self.tick_scroll_amount_mouse = false self.tick_scroll_mult = 1 self.modal_windows = { -- [class_name] -> window, } -- Windows can tell UI to pass specific codes forward to them. See addKeyHandler and removeKeyHandler self.key_handlers = {} -- For use in onKeyUp when assigning hotkeys in the "Assign Hotkeys" window. self.temp_button_down = false -- self.key_noted = false self.mouse_released = false self.down_count = 0 if not minimal then self.default_cursor = app.gfx:loadMainCursor("default") self.down_cursor = app.gfx:loadMainCursor("clicked") self.grab_cursor = app.gfx:loadMainCursor("grab") self.edit_room_cursor = app.gfx:loadMainCursor("edit_room") self.waiting_cursor = app.gfx:loadMainCursor("sleep") end self.editing_allowed = true if not LOADED_DIALOGS then app:loadLuaFolder("dialogs", true) app:loadLuaFolder("dialogs/fullscreen", true) app:loadLuaFolder("dialogs/resizables", true) app:loadLuaFolder("dialogs/resizables/menu_list_dialogs", true) app:loadLuaFolder("dialogs/resizables/file_browsers", true) LOADED_DIALOGS = true end self:setCursor(self.default_cursor) self:setupGlobalKeyHandlers() self.casebook_selected_disease = false end function UI:runDebugScript() -- luacheck: ignore 111 _ is set in debug code print("Executing Debug Script...") local debug_script = self.app:getFullPath({"Lua", "debug_script.lua"}) _ = TheApp.ui and TheApp.ui.debug_cursor_entity local script = assert(loadfile(debug_script)) script() -- Clear _ after the script to prevent save corruption _ = nil end function UI:setupGlobalKeyHandlers() -- Add some global keyhandlers self:addKeyHandler("global_cancel", self, self.closeWindow) self:addKeyHandler("global_cancel_alt", self, self.closeWindow) self:addKeyHandler("global_stop_movie", self, self.stopMovie) self:addKeyHandler("global_stop_movie_alt", self, self.stopMovie) self:addKeyHandler("global_pause_movie", self, self.pauseMovie) self:addKeyHandler("global_screenshot", self, self.makeScreenshot) self:addKeyHandler("global_fullscreen_toggle", self, self.fullscreenHotkey) self:addKeyHandler("global_exitApp", self, self.exitApplication) self:addKeyHandler("global_resetApp", self, self.resetApp) self:addKeyHandler("global_releaseMouse", self, self.releaseMouse) self:addOrRemoveDebugModeKeyHandlers() end --! Play a sound effect --!param name (string) The name of the sound to be played. Can include -- wildcards (*). --!param played_callback (function) A function to be called when the sound has -- finished playing. Can be nil. --!param played_callback_delay (integer) An optional delay in milliseconds -- before the played_callback is called. --!param loops (integer) number of times to play the audio. -1 for infinite. --!return (table) A `sound` table for passing into functions that act on the -- playing sound. The fields are an implementation detail that should not be -- used outside of the Audio class. function UI:playSound(name, played_callback, played_callback_delay, loops) if self.app.config.play_sounds then return self.app.audio:playSound(name, nil, false, played_callback, played_callback_delay, loops) end end --! Stop the given sound -- see Audio:stopSound --!param sound (table) sound to stop function UI:stopSound(sound) self.app.audio:stopSound(sound) end -- Stub with args for subclass GameUI. function UI:playAnnouncement(name, priority, played_callback, played_callback_delay) end function UI:setDefaultCursor(cursor) if cursor == nil then cursor = "default" end if type(cursor) == "string" then cursor = self.app.gfx:loadMainCursor(cursor) end if self.cursor == self.default_cursor then self:setCursor(cursor) end self.default_cursor = cursor end function UI:setCursor(cursor) if cursor ~= self.cursor then self.cursor = cursor if cursor.use then -- Cursor is a true C cursor, perhaps even a hardware cursor. -- Make the real cursor visible, and use this as it. self.simulated_cursor = nil WM.showCursor(true) cursor:use(self.app.video) else -- Cursor is a Lua simulated cursor. -- Make the real cursor invisible, and simulate it with this. WM.showCursor(self.mouse_released) self.simulated_cursor = cursor end end end function UI:drawTooltip(canvas) if not self.tooltip or not self.tooltip_counter or self.tooltip_counter > 0 then return end local x, y = self.tooltip.x, self.tooltip.y if not self.tooltip.x then -- default to cursor position for (lower left corner of) tooltip x, y = self:getCursorPosition() end if self.tooltip_font then self.tooltip_font:drawTooltip(canvas, self.tooltip.text, x, y, 200 * TheApp.config.ui_scale) end end function UI:draw(canvas) local app = self.app if self.background then local bg_w, bg_h = self.background_width, self.background_height local screen_w, screen_h = app.config.width, app.config.height local factor = math.max(screen_w / bg_w, screen_h / bg_h) if canvas:scale(factor, "bitmap") or canvas:scale(factor) then self.background:draw(canvas, math.floor((screen_w - bg_w * factor) / 2), math.floor((screen_h - bg_h * factor) / 2)) canvas:scale(1) else canvas:fillBlack() self.background:draw(canvas, math.floor((screen_w - bg_w) / 2), math.floor((screen_h - bg_h) / 2)) end end Window.draw(self, canvas, 0, 0) self:drawTooltip(canvas) if self.simulated_cursor then self.simulated_cursor.draw(canvas, self.cursor_x, self.cursor_y) end end --! Register a key handler / hotkey for a window. --!param keys (string or table) The keyboard key which should trigger the callback (for -- example, "left" or "z" or "F9"), or a list with modifier(s) and the key (e.g. {"ctrl", "s"}). --!param window (Window) The UI window which should receive the callback. --!param callback (function) The method to be called on `window` when `key` is -- pressed. --!param ... Additional arguments to `callback`. function UI:addKeyHandler(keys, window, callback, ...) -- It is necessary to clone the key table into another temporary table, as if we don't the original table that we take it from will lose -- the last key of that table permanently in the next line of code after this one, until the program is restarted. -- I.E. if the "ingame_quitLevel" hotkey from the "hotkeys_values" table in "config_finder.lua" is a table that looks like this: -- {"shift", "q"} -- We would lose the "q" element until we restarted the game and the "hotkey.txt" was read from again, causing the "ingame_quitLevel" -- table to be reset back to {"shift, "q"} local temp_keys = {} -- Check to see if "keys" key exist in the hotkeys table. if self.app.hotkeys[keys] ~= nil then if type(self.app.hotkeys[keys]) == "table" then temp_keys = shallow_clone(self.app.hotkeys[keys]) elseif type(self.app.hotkeys[keys]) == "string" then temp_keys = shallow_clone({self.app.hotkeys[keys]}) end else if type(keys) == "string" then print(string.format("\"%s\" does not exist in the hotkeys configuration file.", keys)) else print("Usage of addKeyHandler() requires the first argument to be a string of a key that can be found in the hotkeys configuration file.") end end if temp_keys ~= nil then local has_enterOrPlus local temp_keys_copy = {} if type(temp_keys) == "table" then temp_keys_copy = shallow_clone(temp_keys) elseif type(temp_keys) == "string" then temp_keys_copy = {temp_keys} end for _, v in pairs(temp_keys_copy) do if v == "enter" then has_enterOrPlus = true elseif v == "return" then has_enterOrPlus = true elseif v == "+" then has_enterOrPlus = true elseif v == "=" then has_enterOrPlus = true else has_enterOrPlus = false end end local key = table.remove(temp_keys, #temp_keys):lower() local modifiers = list_to_set(temp_keys) -- SET of modifiers if not self.key_handlers[key] then -- No handlers for this key? Create a new table. self.key_handlers[key] = {} end table.insert(self.key_handlers[key], { modifiers = modifiers, window = window, callback = callback, ... }) -- If the handler added has enter, return, plus, or minus in it... if has_enterOrPlus then for k, _ in pairs(temp_keys_copy) do if temp_keys_copy[k] == "enter" then temp_keys_copy[k] = "return" elseif temp_keys_copy[k] == "return" then temp_keys_copy[k] = "enter" elseif temp_keys_copy[k] == "+" then temp_keys_copy[k] = "=" elseif temp_keys_copy[k] == "=" then temp_keys_copy[k] = "+" end end local key_02 = table.remove(temp_keys_copy, #temp_keys_copy):lower() local modifiers_02 = list_to_set(temp_keys_copy) -- SET of modifiers if not self.key_handlers[key_02] then -- No handlers for this key? Create a new table. self.key_handlers[key_02] = {} end -- Then make the same handler, but with the complementary button. -- i.e. If it asks for "enter", it will also add "return". table.insert(self.key_handlers[key_02], { modifiers = modifiers_02, window = window, callback = callback, ... }) end else print("addKeyHandler() failed.") end end --! Unregister a key handler previously registered by `addKeyHandler`. --!param keys (string or table) The key or list of modifiers+key of a key / window -- pair previously passed to `addKeyHandler`. --!param window (Window) The window of a key / window pair previously passed -- to `addKeyHandler`. function UI:removeKeyHandler(keys, window) local temp_keys = nil -- Check to see if "keys" key exist in the hotkeys table. if self.app.hotkeys[keys] ~= nil then if type(self.app.hotkeys[keys]) == "table" then temp_keys = shallow_clone(self.app.hotkeys[keys]) elseif type(self.app.hotkeys[keys]) == "string" then temp_keys = shallow_clone({self.app.hotkeys[keys]}) end else if type(keys) == "string" then print(string.format("\"%s\" does not exist in the \"ui.key_handlers\" table.", keys)) else print("Usage of removeKeyHandler() requires the first argument to be a string of a key that can be found in the \"ui.key_handlers\" table.") end end if temp_keys ~= nil then local has_enterOrPlus local temp_keys_copy = {} if type(temp_keys) == "table" then temp_keys_copy = shallow_clone(temp_keys) elseif type(temp_keys) == "string" then temp_keys_copy = shallow_clone({temp_keys}) end for _, v in pairs(temp_keys_copy) do if v == "enter" then has_enterOrPlus = true elseif v == "return" then has_enterOrPlus = true elseif v == "+" then has_enterOrPlus = true elseif v == "=" then has_enterOrPlus = true else has_enterOrPlus = false end end local key = table.remove(temp_keys, #temp_keys):lower() local modifiers = list_to_set(temp_keys) -- SET of modifiers if self.key_handlers[key] then for index, info in ipairs(self.key_handlers[key]) do if info.window == window and compare_tables(info.modifiers, modifiers) then table.remove(self.key_handlers[key], index) end end -- If last key handler was removed, delete the (now empty) list. if #self.key_handlers[key] == 0 then self.key_handlers[key] = nil end end -- If the handler added has enter, return, plus, or minus in it... if has_enterOrPlus then for k, _ in pairs(temp_keys_copy) do if temp_keys_copy[k] == "enter" then temp_keys_copy[k] = "return" elseif temp_keys_copy[k] == "return" then temp_keys_copy[k] = "enter" elseif temp_keys_copy[k] == "+" then temp_keys_copy[k] = "=" elseif temp_keys_copy[k] == "=" then temp_keys_copy[k] = "+" end end local key_02 = table.remove(temp_keys_copy, #temp_keys_copy):lower() local modifiers_02 = list_to_set(temp_keys_copy) -- SET of modifiers if self.key_handlers[key_02] then for index, info in ipairs(self.key_handlers[key_02]) do if info.window == window and compare_tables(info.modifiers, modifiers_02) then table.remove(self.key_handlers[key_02], index) end end -- If last key handler was removed, delete the (now empty) list. if #self.key_handlers[key_02] == 0 then self.key_handlers[key_02] = nil end end end end end --! Set the menu background image --! --! The menu size closest to, but no larger than the height of the currently --! set game window is selected. If no image fits that criteria the smallest --! available image is used. function UI:setMenuBackground() local screen_h = self.app.config.height local bg_size_idx = 1 -- Available mainmenu*.bmp sizes local menu_bg_sizes = { {640, 480}, {1280, 720}, {1920, 1080}, } for i, bg_size in ipairs(menu_bg_sizes) do if screen_h >= bg_size[2] then bg_size_idx = i else break end end local bg_size = menu_bg_sizes[bg_size_idx] self.background_width = bg_size[1] self.background_height = bg_size[2] self.background = self.app.gfx:loadRaw("mainmenu" .. bg_size[2], bg_size[1], bg_size[2], "Bitmap") end function UI:onChangeResolution() -- If we are in the main menu (== no world), reselect the background if not self.app.world then self:setMenuBackground() end -- Inform windows of resolution change if not self.windows then return end for _, window in ipairs(self.windows) do window:onChangeResolution() end self.app.audio:setSoundStage() end function UI:registerTextBox(box) self.textboxes[#self.textboxes + 1] = box end function UI:unregisterTextBox(box) for num, b in ipairs(self.textboxes) do if b == box then table.remove(self.textboxes, num) break end end end function UI:registerHotkeyBox(box) self.hotkeyboxes[#self.hotkeyboxes + 1] = box end function UI:unregisterHotkeyBox(box) for num, b in ipairs(self.hotkeyboxes) do if b == box then table.remove(self.hotkeyboxes, num) break end end end function UI:changeResolution(width, height) self.app:prepareVideoUpdate() local error_message = self.app.video:update( width, height, App.MIN_WINDOW_WIDTH * TheApp.config.ui_scale, App.MIN_WINDOW_HEIGHT * TheApp.config.ui_scale, unpack(self.app.modes)) self.app:finishVideoUpdate() if error_message then print("Warning: Could not change resolution to " .. width .. "x" .. height .. ".") print("The error was: ") print(error_message) return false end self.app.config.width = width self.app.config.height = height -- Redraw cursor local cursor = self.cursor self.cursor = nil self:setCursor(cursor) -- Save new setting in config self.app:saveConfig() self:onChangeResolution() return true end function UI:toggleCaptureMouse() self.app.capturemouse = not self.app.capturemouse self.app.video:setCaptureMouse(self.app.capturemouse) end function UI:setMouseReleased(released) if released == self.mouse_released then return end self.mouse_released = released -- If we are using a software cursor, show the hardware cursor on release -- and hide it again on capture. if self.cursor and not self.cursor.use then WM.showCursor(released) end self.app.video:setCaptureMouse(self.app.capturemouse and not self.app.mouse_released) end function UI:releaseMouse() self:setMouseReleased(true) end --! Dedicated hotkey function for toggling fullscreen function UI:fullscreenHotkey() local toggle = self:toggleFullscreen() if not toggle then local err = {_S.errors.unavailable_screen_size} self:addWindow(UIInformation(self, err)) end -- Update the Options window, if open local window = self:getWindow(UIOptions) if window then if toggle then window.fullscreen_button:toggle() end window.fullscreen_panel:setLabel(self.app.fullscreen and _S.options_window.option_on or _S.options_window.option_off) end end --! Turns fullscreen on and off --!return success true if toggle succeeded function UI:toggleFullscreen() local modes = self.app.modes local function toggleMode(index) self.app.fullscreen = not self.app.fullscreen if self.app.fullscreen then modes[index] = "fullscreen" else modes[index] = "" end end -- Search in modes table if it contains a fullscreen value and keep the index -- If not found, we will add an index at end of table local index = #modes + 1 for i=1, #modes do if modes[i] == "fullscreen" then index = i break end end -- Toggle Fullscreen mode toggleMode(index) local success = true self.app:prepareVideoUpdate() local error_message = self.app.video:update(self.app.config.width, self.app.config.height, self.app.MIN_WINDOW_WIDTH * self.app.config.ui_scale, self.app.MIN_WINDOW_HEIGHT * self.app.config.ui_scale, unpack(self.app.modes)) self.app:finishVideoUpdate() if error_message then success = false local mode_string = modes[index] or "windowed" print("Warning: Could not toggle to " .. mode_string .. " mode with resolution of " .. self.app.config.width .. "x" .. self.app.config.height .. ".") -- Revert fullscreen mode modifications toggleMode(index) end -- Redraw cursor local cursor = self.cursor self.cursor = nil self:setCursor(cursor) if success then -- Save new setting in config self.app.config.fullscreen = self.app.fullscreen self.app:saveConfig() end return success end --! Private function to determine the key pressed based on current modifiers --!param rawchar (string) The key pressed as given by SDL --!param modifiers (table) Current key modifiers, e.g. numlock --!param btn_maps (table) Used for keydown events only, a table of keys that -- are designated to perform mouse actions. --!return (string, string) Modified raw character, or false if remapped to a button. -- And lowercase or remapped key function UI:_determineKeyPressed(rawchar, modifiers, btn_maps) -- Apply key-remapping and normalisation rawchar = string.sub(rawchar,1,6) == "Keypad" and modifiers["numlockactive"] and string.sub(rawchar,8) or rawchar local key = rawchar:lower() if btn_maps and btn_maps[key] then -- Buttons remaps to mouse self:onMouseDown(btn_maps[key], self.cursor_x, self.cursor_y) return false end key = self.key_remaps[key] or key return rawchar, key end --! Called when the user presses a key on the keyboard --!param rawchar (string) The name of the key the user pressed. --!param modifiers (table) The current applied modifiers to key input e.g. numlock function UI:onKeyDown(rawchar, modifiers) local handled = false local rawchar_transformed, key = self:_determineKeyPressed( rawchar, modifiers, self.key_to_button_remaps) if not rawchar_transformed then return end -- Remove numlock modifier modifiers["numlockactive"] = nil -- If there is one, the current textbox gets the key. -- It will not process any text at this point though. for _, box in ipairs(self.textboxes) do if box.enabled and box.active and not handled then handled = box:keyInput(key, rawchar_transformed) end end -- If there is a hotkey box for _, hotkeybox in ipairs(self.hotkeyboxes) do if hotkeybox.enabled and hotkeybox.active and not handled then handled = hotkeybox:keyInput(key, rawchar_transformed, modifiers) end end -- Otherwise, if there is a key handler bound to the given key, then it gets -- the key. if not handled then local keyHandlers = self.key_handlers[key] if keyHandlers then -- Iterate over key handlers and call each one whose modifier(s) are pressed -- NB: Only if the exact correct modifiers are pressed will the shortcut get processed. for _, handler in ipairs(keyHandlers) do if compare_tables(handler.modifiers, modifiers) then handler.callback(handler.window, unpack(handler)) handled = true end end end end -- Store information about the key self.buttons_down[key] = true self.modifiers_down = modifiers self.key_press_handled = handled return handled end --! Called when the user releases a key on the keyboard --!param rawchar (string) The name of the key the user pressed. --!param modifiers (table) The current applied modifiers to key input e.g. numlock function UI:onKeyUp(rawchar, modifiers) local _, key = self:_determineKeyPressed(rawchar, modifiers) self.buttons_down[key] = nil -- Go through all the hotkeyboxes. for _, hotkeybox in ipairs(self.hotkeyboxes) do -- If one is enabled and active... if hotkeybox.enabled and hotkeybox.active then -- If the key lifted is escape... if(key == "escape") then hotkeybox:abort() hotkeybox.noted_keys = {} else -- Check if the current key lifted has already been noted. self.key_noted = false for _, v in pairs(hotkeybox.noted_keys) do if v == key then self.key_noted = true end end -- If the current key hasn't been noted... if self.key_noted == false then hotkeybox.noted_keys[#hotkeybox.noted_keys + 1] = key end -- Says if there is still a button being pressed. self.temp_button_down = false -- Go through and check if there are still any buttons pressed. If so... for _, _ in pairs(self.buttons_down) do -- Then toggle the corresponding bool. self.temp_button_down = true end --If there ISN'T still a button down when a button was released... if self.temp_button_down == false then -- Activate the confirm function on the hotkey box. hotkeybox:confirm() hotkeybox.noted_keys = {} end end end end -- Clean up self.modifiers_down = nil self.key_press_handled = nil end function UI:onEditingText(text, start, length) -- Does nothing at the moment. We are handling text input ourselves. end --! Called in-between onKeyDown and onKeyUp. The argument 'text' is a --! string containing the input localized according to the keyboard layout --! the user uses. function UI:onTextInput(text) -- It's time for any active textbox to get input. for _, box in ipairs(self.textboxes) do if box.enabled and box.active then box:textInput(text) end end -- Finally it might happen that a hotkey was not recognized because of -- differing local keyboard layout. Give it another shot. if not self.key_press_handled then local keyHandlers = self.key_handlers[text] if keyHandlers then -- Iterate over key handlers and call each one whose modifier(s) are pressed -- NB: Only if the exact correct modifiers are pressed will the shortcut get processed. for _, handler in ipairs(keyHandlers) do if compare_tables(handler.modifiers, self.modifiers_down) then handler.callback(handler.window, unpack(handler)) end end end end end function UI:onMouseDown(code, x, y) self:setMouseReleased(false) local repaint = false local button = self.button_codes[code] or code if self.app.moviePlayer.playing then if button == "left" then self.app.moviePlayer:stop() end return true end if self.cursor_entity == nil and self.down_count == 0 and self.cursor == self.default_cursor then self:setCursor(self.down_cursor) repaint = true end self.down_count = self.down_count + 1 if x >= 3 and y >= 3 and x < self.app.config.width - 3 and y < self.app.config.height - 3 then self.buttons_down["mouse_"..button] = true end self:updateTooltip() return Window.onMouseDown(self, button, x, y) or repaint end function UI:onMouseUp(code, x, y) local repaint = false local button = self.button_codes[code] or code self.down_count = self.down_count - 1 if self.down_count <= 0 then if self.cursor_entity == nil and self.cursor == self.down_cursor then self:setCursor(self.default_cursor) repaint = true end self.down_count = 0 end self.buttons_down["mouse_"..button] = nil if Window.onMouseUp(self, button, x, y) then repaint = true else if self:ableToClickEntity(self.cursor_entity) then self.cursor_entity:onClick(self, button) repaint = true end end self:updateTooltip() return repaint end function UI:onMouseWheel(x, y) Window.onMouseWheel(self, x, y) end --[[ Determines if a cursor entity can be clicked @param entity (Entity,nil) cursor entity clicked on if any @return true if can be clicked on, false otherwise (boolean) ]] function UI:ableToClickEntity(entity) if self.cursor_entity and self.cursor_entity.onClick then local hospital = entity.hospital local epidemic = hospital and hospital.epidemic return self.app.world.user_actions_allowed and not epidemic or (epidemic and not epidemic.vaccination_mode_active) else return false end end function UI:getScreenOffset() return self.screen_offset_x, self.screen_offset_y end local tooltip_ticks = 30 -- Amount of ticks until a tooltip is displayed function UI:updateTooltip() if self.buttons_down.mouse_left then -- Disable tooltips altogether while left button is pressed. self.tooltip = nil self.tooltip_counter = nil return elseif self.tooltip_counter == nil then self.tooltip_counter = tooltip_ticks end local tooltip = self:getTooltipAt(self.cursor_x, self.cursor_y) if tooltip then -- NB: Do not set counter if tooltip changes here. This allows quick tooltip reading of adjacent buttons. self.tooltip = tooltip else -- Not hovering over any button with tooltip -> reset self.tooltip = nil self.tooltip_counter = tooltip_ticks end end local UpdateCursorPosition = TH.cursor.setPosition --! Called when focus changes on game window. --!param gain (number) 1 for in-focus, 0 for out-of-focus function UI:onWindowActive(gain) self:setWindowActiveStatus(gain == 1) end --! Stores the game window active status --!param state (boolean) true for in-focus, false for out-of-focus function UI:setWindowActiveStatus(state) self.app.window_active_status = state end --! Gets the game window active status --!return true for in-focus, false for out-of-focus function UI:getWindowActiveStatus() return self.app.window_active_status end --! Window has been resized by the user --!param width (integer) New window width --!param height (integer) New window height function UI:onWindowResize(width, height) if not self.app.config.fullscreen then self:changeResolution(width, height) end end function UI:onMouseMove(x, y, dx, dy) if self.mouse_released then return false end local repaint = UpdateCursorPosition(self.app.video, x, y) self.cursor_x = x self.cursor_y = y if self.drag_mouse_move then self.drag_mouse_move(x, y) return true end if Window.onMouseMove(self, x, y, dx, dy) then repaint = true end self:updateTooltip() return repaint end --! Process SDL_MULTIGESTURE events. --! --!return (boolean) event processed indicator function UI:onMultiGesture() return false end function UI:onTick() Window.onTick(self) local repaint = false if self.tooltip_counter and self.tooltip_counter > 0 then self.tooltip_counter = self.tooltip_counter - 1 repaint = (self.tooltip_counter == 0) end -- If a tooltip is currently shown, update each tick (may be dynamic) if self.tooltip then self:updateTooltip() end return repaint end function UI:addWindow(window) if window.closed then return end if window.modal_class then -- NB: while instead of if in case of another window being created during the close function while self.modal_windows[window.modal_class] do self.modal_windows[window.modal_class]:close() end self.modal_windows[window.modal_class] = window end if window.modal_class == "main" or window.modal_class == "fullscreen" then self.editing_allowed = false -- do not allow editing rooms if main windows (build, furnish, hire) are open end Window.addWindow(self, window) self:_onAddWindow(window) end function UI:removeWindow(closing_window) if Window.removeWindow(self, closing_window) then local class = closing_window.modal_class if class and self.modal_windows[class] == closing_window then self.modal_windows[class] = nil end if closing_window.modal_class == "main" or closing_window.modal_class == "fullscreen" then self.editing_allowed = true -- allow editing rooms again when main window is closed end self:_onRemoveWindow(closing_window) return true else return false end end -- Function for signaling that the window is added. -- To pause game if the necessary requirements are met. --!param window (object) window added function UI:_onAddWindow(window) if self.app.world and window:mustPause() then self.app.world:mustPauseWindowAdd() end end -- Function for signaling that the window is to be removed. -- To unpause game if the necessary requirements are met. --!param window (object) window to be removed function UI:_onRemoveWindow(window) if self.app.world and window:mustPause() then self.app.world:mustPauseWindowRemoved() end end --! Function to check if we have any must pause windows open --!return (bool) Returns true if a must pause window is found function UI:anyMustPauseWindowOpen() for _, window in pairs(self.windows) do if window:mustPause() then return true end end return false end function UI:getCursorPosition(window) -- Given no argument, returns the cursor position in screen space -- Otherwise, returns the cursor position in the space of the given window local x, y = self.cursor_x, self.cursor_y while window ~= nil and window ~= self do x = x - window.x y = y - window.y window = window.parent end return x, y end function UI:addOrRemoveDebugModeKeyHandlers() self:removeKeyHandler("global_showLuaConsole", self) self:removeKeyHandler("global_runDebugScript", self) if self.app.config.debug then self:addKeyHandler("global_showLuaConsole", self, self.showLuaConsole) self:addKeyHandler("global_runDebugScript", self, self.runDebugScript) end end function UI:afterLoad(old, new) -- Get rid of old key handlers from save file. self.key_handlers = {} if old < 5 then self.editing_allowed = true end if old < 179 then if self.app.good_install_folder and not self.app.using_demo_files then local gfx = self.app.gfx gfx.cache.raw = {} gfx.cache.tabled = {} gfx.cache.language_fonts = {} gfx.builtin_font = nil end end if old < 236 then local gfx = self.app.gfx local palette = gfx:getPalette("Pref01V.pal") self.tooltip_font = gfx:loadFontAndSpriteTable("QData", "Font00V", false, palette, { apply_ui_scale = true }) end self:setupGlobalKeyHandlers() -- Cancel any saved screen movement from edge scrolling self.tick_scroll_amount_mouse = nil Window.afterLoad(self, old, new) end -- Stub to allow the function to be called in e.g. the information -- dialog without having to worry about a GameUI being present function UI:tutorialStep(...) end --! Perform the Screenshot action (usually by key bind 'global_screenshot') function UI:makeScreenshot() -- Generate filename local timestamp = os.date("%Y%m%d-%H%M%S") local filename = TheApp.screenshot_dir .. ("Screenshot_%s.png"):format(timestamp) -- It's very unlikely you intentionally want multiple screenshots a second if lfs.attributes(filename, "size") ~= nil then print("Screenshot failed: File already exists") return end -- Take screenshot local res, err = self.app.video:takeScreenshot(filename) if not res then print("Screenshot failed: " .. err) else self.app.audio:playSound("SNAPSHOT.WAV") end end --! Closes one window (the topmost / active window, if possible) --!return true if a window was closed function UI:closeWindow() if not self.windows then return false end -- Stop the lose message being closed prematurely because we pressed "Escape" on the lose movie if self.app.moviePlayer.playing then return false end -- Close the topmost window first local first = self.windows[1] if first.on_top and first.esc_closes then first:close() return true end for i = #self.windows, 1, -1 do local window = self.windows[i] if window.esc_closes then window:close() return true end end end --! Shows the Lua console function UI:showLuaConsole() self:addWindow(UILuaConsole(self)) end --! Triggers reset of the application (reloads .lua files) function UI:resetApp() self.app:reset() end -- Added this function as quit does not exit the application, it only exits the game to the menu screen function UI:exitApplication() self.app:abandon() end --! Triggers quitting the application function UI:quit() self.app:exit() end --! Tries to stop a video, if one is currently playing function UI:stopMovie() if self.app.moviePlayer.playing then self.app.moviePlayer:stop() end end function UI:pauseMovie() if self.app.moviePlayer.playing then self.app.moviePlayer:togglePause() end end -- Stub for compatibility with savegames r1896-1921 function UI:stopVideo() end CorsixTH-0.70.0/CorsixTH/Lua/utility.lua000066400000000000000000000445341522247547500177620ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local lfs = require("lfs") --[[ Iterator factory for iterating over the deep children of a table. For example: for fn in values(_G, "*.remove") do fn() end Will call os.remove() and table.remove() There can be multiple wildcards (asterisks). --]] function values(root_table, wildcard) local wildcard_parts = {} for part in wildcard:gmatch("[^.]+") do wildcard_parts[#wildcard_parts + 1] = part end local keys = {} local function f() local value = root_table local nkey = 1 for _, part in ipairs(wildcard_parts) do if part == "*" then local key = keys[nkey] if nkey >= #keys then key = next(value, key) keys[nkey] = key if key == nil then if nkey == 1 then return nil else return f() end end end value = value[key] nkey = nkey + 1 else if type(value) ~= "table" then local mt = getmetatable(value) if not mt or not mt.__index then return f() end end value = value[part] if value == nil then return f() end end end return value end return f end --! Check whether the table is empty. --!return (bool) Whether the table has no entries of any kind. function isTableEmpty(table) return next(table) == nil end --! Get a random item from an array. --!param array Array with 0 or more items. --!return (nil or an item) function getRandomEntryFromArray(array) if #array == 0 then return nil end if #array == 1 then return array[1] end return array[math.random(1, #array)] end -- Variation on loadfile() which allows for the loaded file to have global -- references resolved in supplied tables. On failure, returns nil and an -- error. On success, returns the file as a function just like loadfile() does -- with the difference that the first argument to this function should be a -- table in which globals are looked up and written to. -- Note: Unlike normal loadfile, this version also accepts files which start -- with the UTF-8 byte order marker function loadfile_envcall(filename) -- Read file contents local f, err = io.open(filename) if not f then return nil, err end local result = f:read(4) if result == "\239\187\191#" then -- UTF-8 BOM plus Unix Shebang result = f:read("*a"):gsub("^[^\r\n]*", "", 1) elseif result:sub(1, 3) == "\239\187\191" then -- UTF-8 BOM result = result:sub(4,4) .. f:read("*a") elseif result:sub(1, 1) == "#" then -- Unix Shebang result = (result .. f:read("*a")):gsub("^[^\r\n]*", "", 1) else -- Normal result = result .. f:read("*a") end f:close() return loadstring_envcall(result, "@" .. filename) end if _G._VERSION == "Lua 5.1" then function loadstring_envcall(contents, chunkname) -- Lua 5.1 has setfenv(), which allows environments to be set at runtime local result, err = loadstring(contents, chunkname) if result then return function(env, ...) setfenv(result, env) return result(...) end else return result, err end end else function loadstring_envcall(contents, chunkname) -- Lua 5.2+ lacks setfenv() -- load() still only allows a chunk to have an environment set once, so -- we give it an empty environment and use __[new]index metamethods on it -- to allow the same effect as changing the actual environment. local env_mt = {} local result, err = load(contents, chunkname, "bt", setmetatable({}, env_mt)) if result then return function(env, ...) env_mt.__index = env env_mt.__newindex = env return result(...) end else return result, err end end end -- Make pairs() and ipairs() respect metamethods (they already do in Lua 5.2) do local metamethod_called = false pairs(setmetatable({}, {__pairs = function() metamethod_called = true end})) if not metamethod_called then local next = next local getmetatable = getmetatable pairs = function(t) -- luacheck: ignore 121 local mt = getmetatable(t) if mt then local __pairs = mt.__pairs if __pairs then return __pairs(t) end end return next, t end end metamethod_called = false ipairs(setmetatable({}, {__ipairs = function() metamethod_called = true end})) if not metamethod_called then local ipairs_orig = ipairs ipairs = function(t) -- luacheck: ignore 121 local mt = getmetatable(t) if mt then local __ipairs = mt.__ipairs if __ipairs then return __ipairs(t) end end return ipairs_orig(t) end end end -- Helper functions for flags -- NB: flag must be a SINGLE flag, i.e. a power of two: 1, 2, 4, 8, ... -- Check if flag is set in flags function flag_isset(flags, flag) flags = flags % (2*flag) return flags >= flag end -- Set flag in flags and return new flags (unchanged if flag was already set). function flag_set(flags, flag) if not flag_isset(flags, flag) then flags = flags + flag end return flags end -- Clear flag in flags and return new flags (unchanged if flag was already cleared). function flag_clear(flags, flag) if flag_isset(flags, flag) then flags = flags - flag end return flags end -- Toggle flag in flags, i.e. set if currently cleared, clear if currently set. function flag_toggle(flags, flag) return flag_isset(flags, flag) and flag_clear(flags, flag) or flag_set(flags, flag) end -- Various constants DrawFlags = {} DrawFlags.FlipHorizontal = 2^0 DrawFlags.FlipVertical = 2^1 DrawFlags.Alpha50 = 2^2 DrawFlags.Alpha75 = 2^3 DrawFlags.AltPalette = 2^4 DrawFlags.EarlyList = 2^10 DrawFlags.BoundBoxHitTest = 2^12 DrawFlags.Crop = 2^13 DrawFlags.Nearest = 2^14 -- Order of animations within a tile. Animations with a smaller number are -- drawn first. DrawingLayers = {} DrawingLayers.Litter = 0 DrawingLayers.Door = 0 DrawingLayers.RatHole = 0 DrawingLayers.NorthSideObject = 1 DrawingLayers.WestSideObject = 2 DrawingLayers.AtomAnalyser = 3 DrawingLayers.ReceptionistFacingUser = 3 -- Facing east or south. DrawingLayers.Entity = 4 -- All 'normal' animations. DrawingLayers.ReceptionistFacingAway = 5 -- Facing west or north. DrawingLayers.MachineSmoke = 6 -- smoke animation should be in front of machine (entity) DrawingLayers.FloatingDollars = 7 DrawingLayers.EastSideObject = 8 DrawingLayers.SouthSideObject = 9 -- Keep in sync with animation_effect in th_gfx_common.h AnimationEffect = {} AnimationEffect.None = 0 AnimationEffect.Glowing = 1 AnimationEffect.Jelly = 2 -- Predefined colours Colours = {} Colours.PanelDefault = { -- CorsixTH's default panel colour (pale purple) red = 154, green = 146, blue = 198 } Colours.Disabled = { -- Specific grey with purplish aspect red = 127, green = 123, blue = 149 } Colours.Setting = Colours.PanelDefault Colours.SettingHover = { -- Slightly darkened from a pale purple red = 133, green = 128, blue = 183, } Colours.SettingActive = Colours.SettingHover Colours.HotkeyBox = { -- Purple red = 081, green = 076, blue = 150, } Colours.HotkeyBoxActive = { -- Deep purple red = 041, green = 036, blue = 090, } Colours.Textbox = { -- Black red = 000, green = 000, blue = 000 } Colours.Scrollbar = { -- Purple red = 081, green = 076, blue = 150, } Colours.Title = { -- Very pale purple red = 174, green = 166, blue = 218 } Colours.Caption = { -- Murky purple red = 134, green = 126, blue = 178 } Colours.AdviserPanelBackground = { -- Aqua Blue red = 060, green = 174, blue = 201 } Colours.AdviserPanelHighlight = { red = 047, green = 154, blue = 190 } Colours.AdviserPanelShadow = { red = 036, green = 138, blue = 158 } Colours.AdviserPanelDeleteButton = { red = 219, green = 036, blue = 036 } -- Include the standard colours also Colours.White = { red = 255, green = 255, blue = 255 } Colours.Black = { red = 000, green = 000, blue = 000 } Colours.Red = { red = 255, green = 000, blue = 000 } Colours.Green = { red = 000, green = 255, blue = 000 } Colours.Blue = { red = 000, green = 000, blue = 255 } Colours.Magenta = { red = 255, green = 000, blue = 255 } Colours.Cyan = { red = 000, green = 255, blue = 255 } Colours.Yellow = { red = 255, green = 255, blue = 000 } -- Compare values of two simple (non-nested) tables function compare_tables(t1, t2) local count1 = 0 for k, v in pairs(t1) do count1 = count1 + 1 if t2[k] ~= v then return false end end local count2 = 0 for _, _ in pairs(t2) do count2 = count2 + 1 end if count1 ~= count2 then return false end return true end -- Convert a list to a set function list_to_set(list) local set = {} for _, v in ipairs(list) do set[v] = true end return set end --! Find the smallest bucket with its upper value less or equal to a given number, --! and return the value of the bucket, or its index. --!param number (number) Value to accept by the bucket. --!param buckets (list) Available buckets, pairs of {upper=x, value=y} tables, -- in increasing x value, where nil is taken as infinite. The y value is -- returned for the first bucket in the list where number <= x (in normal mode). -- If y is nil, the index of the bucket in the list is returned. --!param alt_mode (boolean) If true, the comparison becomes number < x instead. --!return (number) Value or index of the matching bucket. function rangeMapLookup(number, buckets, alt_mode) local function boundaryCheck(upper) return alt_mode and upper > number or upper >= number end for index, bucket in ipairs(buckets) do if not bucket.upper or boundaryCheck(bucket.upper) then return bucket.value or index end end assert(false) -- Should never get here. end -- this is a pseudo bitwise OR operation -- assumes value2 is always a power of 2 (limits carry errors in the addition) -- mimics the logic of hasBit with the addition if bit not set --!param value1 (int) value to check set bit of --!param value2 (int) power of 2 value - bit enumeration --!return (int) value1 and value2 'bitwise' or. function bitOr(value1, value2) return value1 % (value2 + value2) >= value2 and value1 or value1 + value2 end --! Check bit is set --!param value (int) value to check set bit of --!param bit (int) 0-base index of bit to check --!return (boolean) true if bit is set. function hasBit(value, bit) local p = 2 ^ bit return value % (p + p) >= p end --! Convert an array table to a string. --! Joins each elements by the provided separator. As a convenience feature --! if the input is not an array it will be converted to a string and --! returned. --!param array (table) array to join. --!param separator (string) separator between elements. --!return (string) The joined string. function array_join(array, separator) separator = separator or "," if type(array) ~= "table" then return tostring(array) end if array[1] == nil then return "" end local result = tostring(array[1]) local i = 2 while array[i] ~= nil do result = result .. separator result = result .. tostring(array[i]) i = i + 1 end return result end --! Merge tables in one table function table_merge(...) local result = {} for _, t in ipairs({...}) do for _, v in ipairs(t) do table.insert(result, v) end end return result end --! Checks if the table contains item function table_contains(table, value) for _, val in pairs(table) do if val == value then return true end end return false end local function serialize_string(val, options) local level = options and options.long_bracket_level_start or 0 while string.find(val, ']' .. string.rep('=', level) .. ']') do level = level + 1 end return '[' .. string.rep('=', level) .. '[' .. val .. ']' .. string.rep('=', level) .. ']' end -- Helper function to print the contents of a table. Child tables are printed recursively. -- Call without specifying depth, only obj and (if wished) max_depth. local function serialize_table(obj, options, depth, pt_reflist) -- Used to prevent infinite loops pt_reflist = pt_reflist or {} options = options or {detect_cycles = true} -- By default, don't crash on cycles. depth = depth or 1 if options.max_depth and depth > options.max_depth then return "{...}" end for _, ref in ipairs(pt_reflist) do if ref == obj then if options.detect_cycles then return "" elseif not options.max_depth then assert("Infinite loop detected. Specify detect_cycles or max_depth when serializing tables that may contain cycles") end end end pt_reflist[#pt_reflist + 1] = obj local first = true local indent = string.rep(" ", depth * 2) local result = "{" local max_array_index = 0 for i, v in ipairs(obj) do max_array_index = i if not first then result = result .. "," end first = false if options.pretty then result = result .. "\n" .. indent end result = result .. serialize(v, options, depth + 1, pt_reflist) end for k, v in pairs(obj) do if not(type(k) == "number" and k >= 1 and k <= max_array_index) then if not first then result = result .. ',' end first = false if options.pretty then result = result .. '\n' .. indent end result = result .. "[ " result = result .. serialize(k, options, depth + 1, pt_reflist) result = result .. " ]=" result = result .. serialize(v, options, depth + 1, pt_reflist) end end indent = string.rep(" ", (depth - 1) * 2) if options.pretty then result = result .. '\n' .. indent end result = result .. "}" return result end --! Serialize a value. Call it with the value to serialize and print the output. -- By default it will end recursion when a cycle is detected. --!param val Value to serialize. --!param options Option settings, table, 'detect_cycles' field boolean that -- ends recursion on a cycle, and 'max_depth' integer that ends recursion at the -- specified depth. By default initialized with "{detect_cycles = True}" -- 'long_bracket_level_start' field integer that sets the starting long bracket level for escaping strings. -- If not set, level zero is used. --!param depth Recursion depth, should be omitted. --!param pt_reflist Seen nodes, should be omitted. --!return The serialized output. function serialize(val, options, depth, pt_reflist) if type(val) == "string" then return serialize_string(val, options) elseif type(val) == "table" then return serialize_table(val, options, depth, pt_reflist) else return tostring(val) end end --! Simplified interface for serializing a value with option for depth -- See serialize for further explanation -- Output is dumped to the console --!param value A table or string to inspect --!param depth (num) Optional, defaults at 1 function inspect(value, depth) print(serialize(value, {detect_cycles = true, max_depth = depth or 1, pretty = true})) end -- Clones a table, but only the first level. function shallow_clone(tbl) if type(tbl) ~= "table" then return tbl end local meta = getmetatable(tbl) local target = {} for k, v in pairs(tbl) do target[k] = v end setmetatable(target, meta) return target end --! Complete key removal and pause collection for the duration of the function --! call. --! --! Note that the function is run as a pcall, so any error will be caught and --! returned. --!param fn (function) Function to call while GC is paused. --!param ... Arguments to pass to fn. function pause_gc_and_use_weak_keys(fn, ...) -- In Lua 5.2 and later tables with weak keys (__mode = "k") may hold keys -- that have already been finalized. According to the Lua reference manual -- the objects are marked and finalized in one cycle and collected and -- removed from the weak table keys in the next cycle. So to ensure that -- all finalized keys are removed from weak tables we need to run GC for 2 -- complete cycles. We then stop the GC to prevent it from running during -- the function call to ensure that pairs on weak tables work as expected. -- Finally we restart the GC after the function call. collectgarbage() collectgarbage() collectgarbage("stop") local res = {pcall(fn, ...)} collectgarbage("restart") return unpack(res) end --! Strip trailing slashes from a path. --!param path (string) The path to strip. --!return (string) The path without trailing slashes. function stripTrailingSlashes(path) -- Remove one or more trailing / or \ characters return path:gsub("[/\\]+$", "") end --! Checks if a given path is a directory. --! param path (string) The path to check. --! return (boolean) True if the path is a directory, false otherwise. function isDirectory(path) return lfs.attributes(path, "mode") == "directory" end --! Checks if a given path is a directory and can be opened. --! param path (string) The path to check. --! return (boolean) True if the path is a directory and is accessible, false otherwise. function canOpenDirectory(path) local ok, _ = pcall(lfs.dir, path) return ok -- "lfs.dir()" will throw an error if the directory isn't accessible/doesn't exist -- (it does the same job of the "isDirectory()" function, but also checks if the directory can be opened) end -- Tracy Profiler stubs if not tracy then local function noop() end tracy = { ZoneBegin = noop, ZoneBeginN = noop, ZoneBeginS = noop, ZoneBeginNS = noop, ZoneEnd = noop, Message = noop } endCorsixTH-0.70.0/CorsixTH/Lua/walls/000077500000000000000000000000001522247547500166645ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Lua/walls/blue.lua000066400000000000000000000027321522247547500203220ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local wall = {} wall.id = "blue" wall.inside_tiles = { north = 86, west = 87, } wall.outside_tiles = { north = 94, west = 95, } wall.window_tiles = { north = 136, west = 137, } wall.swing_inside_tiles = { north_left = 102, west_left = 103, north_right = 138, west_right = 139, } wall.swing_outside_tiles = { north_left = 110, west_left = 111, north_right = 152, west_right = 153, } return wall CorsixTH-0.70.0/CorsixTH/Lua/walls/external.lua000066400000000000000000000030731522247547500212140ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local wall = {} wall.id = "external" wall.inside_tiles = { north = 122, north_window_1 = 124, north_window_2 = 126, north_expansion = 144, west = 123, west_window_1 = 127, west_window_2 = 125, west_expansion = 145, } wall.outside_tiles = { north = 114, north_window_1 = 116, north_window_2 = 118, north_window_long = 120, north_expansion = 142, west = 115, west_window_1 = 119, west_window_2 = 117, west_window_long = 121, west_expansion = 143, } wall.window_tiles = { } return wall CorsixTH-0.70.0/CorsixTH/Lua/walls/green.lua000066400000000000000000000027331522247547500204740ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local wall = {} wall.id = "green" wall.inside_tiles = { north = 88, west = 89, } wall.outside_tiles = { north = 96, west = 97, } wall.window_tiles = { north = 140, west = 141, } wall.swing_inside_tiles = { north_left = 104, west_left = 105, north_right = 146, west_right = 147, } wall.swing_outside_tiles = { north_left = 112, west_left = 113, north_right = 154, west_right = 155, } return wall CorsixTH-0.70.0/CorsixTH/Lua/walls/white.lua000066400000000000000000000027311522247547500205120ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local wall = {} wall.id = "white" wall.inside_tiles = { north = 82, west = 83, } wall.outside_tiles = { north = 90, west = 91, } wall.window_tiles = { north = 128, west = 129, } wall.swing_inside_tiles = { north_left = 98, west_left = 99, north_right = 130, west_right = 131, } wall.swing_outside_tiles = { north_left = 106, west_left = 107, north_right = 148, west_right = 149, } return wall CorsixTH-0.70.0/CorsixTH/Lua/walls/yellow.lua000066400000000000000000000027341522247547500207100ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local wall = {} wall.id = "yellow" wall.inside_tiles = { north = 84, west = 85, } wall.outside_tiles = { north = 92, west = 93, } wall.window_tiles = { north = 132, west = 133, } wall.swing_inside_tiles = { north_left = 100, west_left = 101, north_right = 134, west_right = 135, } wall.swing_outside_tiles = { north_left = 108, west_left = 109, north_right = 150, west_right = 151, } return wall CorsixTH-0.70.0/CorsixTH/Lua/window.lua000066400000000000000000002144361522247547500175660ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] corsixth.require("persistance") --! Base class for user-interface dialogs. class "Window" ---@type Window local Window = _G["Window"] -- NB: pressed mouse buttons are denoted with a "mouse_" prefix in buttons_down, -- i.e. mouse_left, mouse_middle, mouse_right Window.buttons_down = permanent"Window.buttons_down" {} function Window:Window() self.x = 0 self.y = 0 self.cursor_x = 0 self.cursor_y = 0 self.panels = { } self.buttons = { } self.tooltip_regions = { } self.scrollbars = { } self.textboxes = { -- list of textboxes in that window. NB: (Game)UI also uses this. } -- Take care not to handle things twice as UI is subclass of window! self.hotkeyboxes = { } self.key_handlers = {--[[a set]]} self.windows = false -- => {} when first window added self.active_button = false self.blinking_button = false self.blink_counter = 0 self.panel_sprites = false self.visible = true self.draggable = true self.apply_ui_scale = true end -- Most windows don't pause the game. Specific windows: fax, annual report, staff rise, and errors do pause and are set in the specific files function Window:mustPause() return false end function Window:setSize(width, height, apply_ui_scale) self.apply_ui_scale = apply_ui_scale ~= nil and apply_ui_scale or self.apply_ui_scale self.width = width self.height = height end -- Sets the window's onscreen position. Each of x and y can be: -- Integers >= 0 - Absolute pixel positions of top/left edge of window relative -- to top/left edge of screen -- Integers < 0 - Absolute pixel positions of right/bottom edge of window -- relative to right/bottom edge of screen. Use -0.1 to mean -0. -- Reals in [0, 1) - function Window:setPosition(x, y) -- Save values to recalculate x and y on screen resolution change self.x_original = x self.y_original = y -- Convert x and y to absolute pixel positions with regard to top/left local s = self.apply_ui_scale and TheApp.config.ui_scale or 1 local w, h = TheApp.config.width / s, TheApp.config.height / s if x < 0 then x = math.ceil(w - self.width + x) elseif x < 1 then x = math.floor((w - self.width) * x + 0.5) end if y < 0 then y = math.ceil(h - self.height + y) elseif y < 1 then y = math.floor((h - self.height) * y + 0.5) end self.x = x self.y = y end -- Sets the window's default onscreen position and onscreen position. -- The given x and y are interpreted as for setPosition(x, y), and are the -- default position for the window. If the user has previously repositioned a -- window of the same type, then setDefaultPosition() will set the window to -- that previous position, otherwise it sets it to the default position. function Window:setDefaultPosition(x, y) if self.ui then local config = self.ui.app.runtime_config.window_position if config then config = config[self:getSavedWindowPositionName()] if config then return self:setPosition(config.x, config.y) end end end return self:setPosition(x, y) end -- Called after the resolution of the game window changes function Window:onChangeResolution() if self.x_original and self.y_original then self:setPosition(self.x_original, self.y_original) end end -- Called before the window is closed function Window:close() if self.dragging then self.dragging = false self.ui.drag_mouse_move = nil end if self.parent then self.parent:removeWindow(self) end for key in pairs(self.key_handlers) do self.ui:removeKeyHandler(key, self) end for _, box in pairs(self.textboxes) do self.ui:unregisterTextBox(box) end for _, box in pairs(self.hotkeyboxes) do self.ui:unregisterHotkeyBox(box) end self.closed = true end function Window:addKeyHandler(key, handler, ...) self.ui:addKeyHandler(key, self, handler, ...) self.key_handlers[key] = true end --!param keys (string or table) The key or a list containing the key & its modifiers, -- previously passed to Window:addKeyHandler(keys). function Window:removeKeyHandler(keys) self.ui:removeKeyHandler(keys, self) end --! The basic component which makes up most `Window`s. --! The visual parts of most ingame dialogs are sprites from a sprite sheet. -- A `Panel` is an instance of a particular sprite, consisting of a sprite -- index and a position. It is advantageous to construct dialogs out of panels -- (using `Window:addPanel`) as the common operations on panels (like drawing -- them and hit-testing against them) are implemented in the `Window` class, -- thus reducing the amount of work that each individual dialog has to do. class "Panel" ---@type Panel local Panel = _G["Panel"] -- !dummy function Panel:Panel() self.window = nil self.x = nil self.y = nil self.w = nil self.h = nil self.colour = nil self.custom_draw = nil self.visible = nil self.wrap_text = false end local panel_mt = permanent("Window.", getmetatable(Panel())) function Panel:makeButton(...) return self.window:makeButtonOnPanel(self, ...) end function Panel:makeToggleButton(...) return self.window:makeButtonOnPanel(self, ...):makeToggle() end function Panel:makeRepeatButton(...) return self.window:makeButtonOnPanel(self, ...):makeRepeat() end function Panel:makeScrollbar(...) return self.window:makeScrollbarOnPanel(self, ...) end function Panel:makeTextbox(...) return self.window:makeTextboxOnPanel(self, ...) end function Panel:makeHotkeyBox(...) return self.window:makeHotkeyBoxOnPanel(self, ...) end local function sanitize(colour) if colour > 255 then colour = 255 elseif colour < 0 then colour = 0 end return colour end --[[ Set the colour of a panel ! Note: This works only with ColourPanel and BevelPanel, not normal (sprite) panels. !param col (table) Colour given as a table with three fields red, green and blue, each an integer value in [0, 255]. !param preserve_disable (boolean) If true, do not adjust the panel's disabled colour. ]] function Panel:setColour(col, preserve_disable) self.colour = self.colour and TheApp.video:mapRGB(col.red, col.green, col.blue) self.highlight_colour = self.highlight_colour and TheApp.video:mapRGB( sanitize(col.red + 60), sanitize(col.green + 60), sanitize(col.blue + 60)) self.shadow_colour = self.shadow_colour and TheApp.video:mapRGB( sanitize(col.red - 60), sanitize(col.green - 60), sanitize(col.blue - 60)) if preserve_disable then return self end self.disabled_colour = self.disabled_colour and TheApp.video:mapRGB( sanitize(math.floor((col.red + 100) / 2)), sanitize(math.floor((col.green + 100) / 2)), sanitize(math.floor((col.blue + 100) / 2))) return self end -- Specify a tooltip to be displayed when hovering this panel. -- x and y are optional position of bottom left of the tooltip. -- If not specified, will default to mouse position. function Panel:setTooltip(tooltip, x, y) self.tooltip = { text = tooltip, tooltip_x = x, tooltip_y = y, } return self end function Panel:setDynamicTooltip(callback, x, y) self.tooltip = { callback = callback, tooltip_x = x, tooltip_y = y, } return self end --! Specify a label to be drawn on top of the panel. -- Note: This works only with ColourPanel and BevelPanel, not normal (sprite) panels. --!param label (string) The text to be drawn on top of the label. --!param font (font) [optional] The font to use. Default is Font01V in QData. --!param align (string) [optional] Alignment for non-multiline labels (multiline is always left) --! can be either of "left", "center", "right" function Panel:setLabel(label, font, align) self.label = label or "" self.label_font = font or self.label_font or TheApp.gfx:loadFontAndSpriteTable("QData", "Font01V", nil, nil, {ttf_shadow = true, apply_ui_scale = true}) self.align = align or self.align return self end --! Specifies whether auto clip (clipping text at the end so it fits) is enabled for this panel --!param mode (boolean) true to activate, false to deactivate. function Panel:setAutoClip(mode) self.auto_clip = mode return self end --! Checks if a given line drawn with the panel's label font would be longer than the given limit --! and if so, shortens it enough to fit including "..." at the end --!param line (string) the line to modify --!param limit (int) the maximum length in pixels the line should have --!return the possibly modified line function Panel:clipLine(line, limit) local _, last_x = self.label_font:draw(nil, line, 0, 0) if last_x > limit then limit = limit - self.label_font:sizeOf("..._") while last_x > limit do line = line:sub(1, -2) _, last_x = self.label_font:draw(nil, line, 0, 0) end line = line .. "..." end return line end --! Draw function for the label on a panel --!param canvas The canvas to draw on (can be nil for test) --!param x x position to start drawing on --!param y y position to start drawing on --!param limit (nil or {int, int}) limit after which line and with character on that line to stop drawing --!return y and x end positions after drawing function Panel:drawLabel(canvas, x, y, limit) local text = self.label local center_y = false local wrapped = not self.auto_clip local multi_line = type(text) == "table" if not multi_line then text = {text} center_y = true wrapped = (self.wrap_text ~= nil) and self.wrap_text or false end local s = self.apply_ui_scale and TheApp.config.ui_scale or 1 local next_y = y + self.y * s + s local last_x = x + self.x * s + 2 * s for i, line in ipairs(text) do local old_y = next_y if limit and limit[1] == i then line = line:sub(1, limit[2]) end if self.auto_clip then line = self:clipLine(line, self.w * s - 4 * s) end if wrapped then next_y, last_x = self.label_font:drawWrapped(canvas, line, x + self.x * s + 2 * s, old_y, self.w * s - 4 * s, self.align) else next_y, last_x = self.label_font:draw(canvas, line, x + self.x * s + 2 * s, old_y, (self.w * s - 4 * s), (center_y and self.h * s or 0), self.align) end if not line:find("%S") then -- Special handling for empty lines or lines with only space next_y = self.label_font:draw(nil, "A", (x + self.x * s + 2 * s), old_y, (self.w * s - 4 * s), (center_y and self.h * s or 0), self.align) end if limit and limit[1] == i then break end end return next_y, last_x end --! Set the position of a panel. --!param x (int) New horizontal position of the panel. --!param y (int) New vertical position of the panel. function Panel:setPosition(x, y) self.x = x self.y = y end --! Set the size of a panel. --!param width (int) New width of the panel. --!param height (int) New height of the panel. function Panel:setSize(width, height) self.w = width self.h = height end --! Set the visibility of the panel. --!param visibility (bool) New visibility of the panel. function Panel:setVisible(visibility) self.visible = visibility return self end --! Set whether text wrapping is enabled for this panel. --!param enabled (bool) Whether to text wrapping enabled. function Panel:setTextWrap(enabled) self.wrap_text = enabled return self end --[[ Add a `Panel` to the window. ! Panels form the basic building blocks of most windows. A panel is a small bitmap coupled with a position, and by combining several panels, a window can be made. By using panels to construct windows, all of the common tasks like drawing and hit-testing are provided for you by the base class methods, thus reducing the amount of code required elsewhere. !param sprite_index (integer) Index into the window's sprite table of the bitmap to be displayed. !param x (integer) The X pixel position to display the bitmap at. !param y (integer) The Y pixel position to display the bitmap at. !param w (integer, nil) If the panel is totally opaque, and the width of the panel (in pixels) is known, it should be specified here to speed up hit-tests. !param h (integer, nil) If the panel is totally opaque, and the height of the panel (in pixels) is known, it should be specified here to speed up hit-tests. !param apply_ui_scale (bool|nil) If true apply the ui_scale to the dimensions when doing the draw and hit test. If nil then apply_ui_scale if enabled for the parent window. !param draw_flags (integer) Draw flags to apply to the sprite ]] function Window:addPanel(sprite_index, x, y, w, h, apply_ui_scale, draw_flags) local panel = setmetatable({ window = self, apply_ui_scale = apply_ui_scale ~= nil and apply_ui_scale or self.apply_ui_scale, draw_flags = draw_flags, x = x, y = y, w = w, h = h, sprite_index = sprite_index, visible = true, }, panel_mt) self.panels[#self.panels + 1] = panel return panel end function Window:removeAllPanels() self.panels = {} self.buttons = {} -- Buttons cannot live without a panel end local --[[persistable: window_panel_colour_draw]] function panel_colour_draw(panel, canvas, x, y) local s = panel.apply_ui_scale and TheApp.config.ui_scale or 1 canvas:drawRect(panel.colour, x + panel.x * s, y + panel.y * s, panel.w * s, panel.h * s) if panel.label then panel:drawLabel(canvas, x, y) end end --[[ Add a solid-colour `Panel` to the window. ! A solid-colour panel is like a normal panel, expect it displays a solid colour rather than a bitmap. !param x (integer) The X pixel position to start the panel at. !param y (integer) The Y pixel position to start the panel at. !param w (integer) The width of the panel, in pixels. !param h (integer) The height of the panel, in pixels. !param r (integer) Value in [0, 255] giving the red component of the colour. !param g (integer) Value in [0, 255] giving the green component of the colour. !param b (integer) Value in [0, 255] giving the blue component of the colour. !param apply_ui_scale (boolean) Whether to apply UI scale to position and size. Default is to match window. ]] function Window:addColourPanel(x, y, w, h, r, g, b, apply_ui_scale) local panel = setmetatable({ window = self, apply_ui_scale = apply_ui_scale ~= nil and apply_ui_scale or self.apply_ui_scale, x = x, y = y, w = w, h = h, colour = TheApp.video:mapRGB(r, g, b), custom_draw = panel_colour_draw, visible = true, }, panel_mt) self.panels[#self.panels + 1] = panel return panel end local --[[persistable: window_panel_bevel_draw]] function panel_bevel_draw(panel, canvas, x, y) local s = panel.apply_ui_scale and TheApp.config.ui_scale or 1 if panel.lowered then canvas:drawRect(panel.highlight_colour, x + panel.x * s, y + panel.y * s, panel.w * s, panel.h * s) canvas:drawRect(panel.shadow_colour, x + panel.x * s, y + panel.y * s, panel.w * s - s, panel.h * s - s) canvas:drawRect(panel.lowered_colour, x + panel.x * s + s, y + panel.y * s + s, panel.w * s - 2 * s, panel.h * s - 2 * s) else canvas:drawRect(panel.shadow_colour, x + panel.x * s + s, y + panel.y * s + s, panel.w * s - s, panel.h * s - s) canvas:drawRect(panel.highlight_colour, x + panel.x * s, y + panel.y * s, panel.w * s - s, panel.h * s - s) canvas:drawRect(panel.colour, x + panel.x * s + s, y + panel.y * s + s, panel.w * s - 2 * s, panel.h * s - 2 * s) end if panel.label then panel:drawLabel(canvas, x, y) end end --[[ Add a beveled `Panel` to the window. ! A bevel panel is similar to a solid colour panel, except that it features a highlight and a shadow that makes it appear either lowered or raised. !param x (integer) The X pixel position to start the panel at. !param y (integer) The Y pixel position to start the panel at. !param w (integer) The width of the panel, in pixels. !param h (integer) The height of the panel, in pixels. !param colour (colour in form .red, .green and .blue) The colour for the panel. !param highlight_colour (colour in form .red, .green and .blue or nil) [optional] The colour for the highlight. !param shadow_colour (colour in form .red, .green and .blue or nil) [optional] The colour for the shadow. !param disabled_colour (colour in form .red, .green and .blue or nil) [optional] The colour for the disabled panel. !param lowered_colour (colour in form .red, .green and .blue or nil) [optional] The colour for the lowered (toggled) panel. ]] function Window:addBevelPanel(x, y, w, h, colour, highlight_colour, shadow_colour, disabled_colour, lowered_colour, apply_ui_scale) highlight_colour = highlight_colour or { red = sanitize(colour.red + 60), green = sanitize(colour.green + 60), blue = sanitize(colour.blue + 60), } shadow_colour = shadow_colour or { red = sanitize(colour.red - 60), green = sanitize(colour.green - 60), blue = sanitize(colour.blue - 60), } disabled_colour = disabled_colour or { red = sanitize(math.floor((colour.red + 100) / 2)), green = sanitize(math.floor((colour.green + 100) / 2)), blue = sanitize(math.floor((colour.blue + 100) / 2)), } lowered_colour = lowered_colour or colour local panel = setmetatable({ window = self, apply_ui_scale = apply_ui_scale ~= nil and apply_ui_scale or self.apply_ui_scale, x = x, y = y, w = w, h = h, colour = TheApp.video:mapRGB(colour.red, colour.green, colour.blue), highlight_colour = TheApp.video:mapRGB(highlight_colour.red, highlight_colour.green, highlight_colour.blue), shadow_colour = TheApp.video:mapRGB(shadow_colour.red, shadow_colour.green, shadow_colour.blue), disabled_colour = TheApp.video:mapRGB(disabled_colour.red, disabled_colour.green, disabled_colour.blue), lowered_colour = TheApp.video:mapRGB(lowered_colour.red, lowered_colour.green, lowered_colour.blue), custom_draw = panel_bevel_draw, visible = true, lowered = false, }, panel_mt) self.panels[#self.panels + 1] = panel return panel end function Window:addWindow(window) if window.closed then return end if not self.windows then self.windows = {} end window.parent = self if window.on_top then -- As self.windows array is ordered from top to bottom and drawn by the end, a "On Top" window has be added at start table.insert(self.windows, 1, window) else -- Normal windows, are added in the first position after on_top windows local pos = false for i = 1, #self.windows do if not self.windows[i].on_top then pos = i break end end pos = pos or #self.windows + 1 table.insert(self.windows, pos, window) end end function Window:removeWindow(window) if self.windows then for n = 1, #self.windows do if self.windows[n] == window then if #self.windows == 1 then self.windows = false else table.remove(self.windows, n) end return true end end end return false end -- Searches (direct) child windows for window of the given class, and returns -- one (or nil if there weren't any at all). -- !param window_class (class) The class of window to search for. function Window:getWindow(window_class) if self.windows then for _, window in ipairs(self.windows) do if class.is(window, window_class) then return window end end end end -- Searches (direct) child windows for window of the given class, and returns -- a (potentially empty) list of matching windows. -- !param window_class (class) The class of window to search for. function Window:getWindows(window_class) local matching_windows = {} if self.windows then for _, window in ipairs(self.windows) do if class.is(window, window_class) then matching_windows[#matching_windows+1] = window end end end return matching_windows end --! A region of a `Panel` which causes some action when clicked. class "Button" ---@type Button local Button = _G["Button"] --!dummy function Button:Button() self.ui = nil self.is_toggle = nil self.is_repeat = nil self.x = nil self.y = nil self.r = nil self.b = nil self.panel_for_sprite = nil self.sprite_index_normal = nil self.sprite_index_disabled = nil self.sprite_index_active = nil self.panel_lowered_normal = nil self.panel_lowered_active = nil self.on_click = nil self.on_click_self = nil self.on_rightclick = nil self.enabled = nil end local button_mt = permanent("Window.", getmetatable(Button())) function Button:setDisabledSprite(index) self.sprite_index_disabled = index return self end --! Enable or disable a button. --!param enable (boolean) Whether to enable (true) or disable (false) the button. function Button:enable(enable) if enable and not self.enabled then self.enabled = true self.panel_for_sprite.sprite_index = self.sprite_index_normal if self.panel_for_sprite.colour_backup then self.panel_for_sprite.colour = self.panel_for_sprite.colour_backup end end if not enable and self.enabled then self.enabled = false self.panel_for_sprite.sprite_index = self.sprite_index_disabled if self.panel_for_sprite.disabled_colour then self.panel_for_sprite.colour_backup = self.panel_for_sprite.colour self.panel_for_sprite.colour = self.panel_for_sprite.disabled_colour end end return self end function Button:makeToggle() self.is_toggle = true self.is_repeat = false self.toggled = false return self end function Button:makeRepeat() self.is_repeat = true self.is_toggle = false self.toggled = false return self end --! Flip the toggle state of the button (on -> off, or off -> on). function Button:toggle() self.sprite_index_normal, self.sprite_index_active = self.sprite_index_active, self.sprite_index_normal self.panel_lowered_active, self.panel_lowered_normal = self.panel_lowered_normal, self.panel_lowered_active self.panel_for_sprite.sprite_index = self.sprite_index_normal self.panel_for_sprite.lowered = self.panel_lowered_normal self.toggled = not self.toggled return self.toggled end --! Set the toggle state of the button to the provided state. --!param state (boolean) Desired state of the toggle button. function Button:setToggleState(state) if self.toggled ~= state then self:toggle() end return self end function Button:preservePanel() local window = self.panel_for_sprite.window self.panel_for_sprite = window:addPanel(0, self.x, self.y) self.sprite_index_normal = 0 return self end function Button:setSound(name) self.sound = name return self end local --[[persistable:window_drag_round]] function round(value, amount) return amount * math.floor(value / amount + 0.5) end -- Specify a tooltip to be displayed when hovering this button. -- x and y are optional position of bottom left of the tooltip. -- If not specified, will default to top center of button. function Button:setTooltip(tooltip, x, y) self.tooltip = { text = tooltip, tooltip_x = x or round((self.x + self.r) / 2, 1), tooltip_y = y or self.y, } return self end function Button:setDynamicTooltip(callback, x, y) self.tooltip = { callback = callback, tooltip_x = x or round((self.x + self.r) / 2, 1), tooltip_y = y or self.y, } return self end --! Called whenever a click on the button should be handled. This depends on the type of button. --! Normally this is called when a MouseUp occurs over the button (if the MouseDown occurred over --! this or another button). However for repeat buttons, it is called once on MouseDown and, after --! a short delay, repeatedly. --!param mouse_button (string) either "left" or "right" function Button:handleClick(mouse_button) local arg = nil if self.is_toggle then arg = self:toggle() end if self.sound then self.ui:playSound(self.sound) end local callback = mouse_button == "left" and self.on_click or self.on_rightclick if callback then callback(self.on_click_self, arg, self) else if mouse_button == "left" then print("Warning: No handler for button click") self.on_click = --[[persistable:button_on_click_handler_stub]] function() end end end end --! Set the position of a button. --!param x (int) New horizontal position of the button. --!param y (int) New vertical position of the button. function Button:setPosition(x, y) self.panel_for_sprite:setPosition(x, y) self.r = self.r - self.x + x self.b = self.b - self.y + y self.x = x self.y = y if self.tooltip then self.tooltip.tooltip_x = math.round((self.x + self.r) / 2, 1) self.tooltip.tooltip_y = self.y end end --! Set the size of a button. --!param width (int) New width of the button. --!param height (int) New height of the button. function Button:setSize(width, height) self.panel_for_sprite:setSize(width, height) self.r = self.x + width self.b = self.y + height if self.tooltip then self.tooltip.tooltip_x = math.round((self.x + self.r) / 2, 1) self.tooltip.tooltip_y = self.y end end --! Set the visibility of the button. --!param visibility (bool) New visibility of the button. function Button:setVisible(visibility) self.panel_for_sprite:setVisible(visibility) return self end --! Convenience function to allow setLabel to be called on a button, not only its panel. --! see Panel:setLabel function Button:setLabel(label, font, align) self.panel_for_sprite:setLabel(label, font, align) return self end --[[ Convert a static panel into a clickable button. !param panel (Panel) The panel to convert into a button. !param x (integer) The X coordinate of the clickable rectangle on the panel. !param y (integer) The Y coordinate of the clickable rectangle on the panel. !param w (integer) The width of the clickable rectangle on the panel. !param h (integer) The height of the clickable rectangle on the panel. !param sprite (integer) An index into the window's sprite sheet. The panel will display this sprite when the button is being pressed. !param on_click (function) The function to be run when the user left-clicks the button. Takes three arguments: `on_click_self`, the toggle state (nil for normal buttons, true/false for toggle buttons), the button itself. !param on_click_self (function, nil) The first value to pass to `on_click`. If nil or not given, then the window is passed as the first argument. !param on_rightclick (function, nil) The function to be called when the user right-clicks the button. ]] function Window:makeButtonOnPanel(panel, x, y, w, h, sprite, on_click, on_click_self, on_rightclick) x = x + panel.x y = y + panel.y local button = setmetatable({ ui = self.ui, is_toggle = false, is_repeat = false, x = x, y = y, r = x + w, b = y + h, panel_for_sprite = panel, sprite_index_normal = panel.sprite_index, sprite_index_disabled = panel.sprite_index, sprite_index_active = sprite, on_click = on_click, on_click_self = on_click_self or self, on_rightclick = on_rightclick, enabled = true, panel_lowered_normal = false, panel_lowered_active = true, }, button_mt) if self.ui and on_click == self.close then button.sound = "no4.wav" elseif self.default_button_sound then button.sound = self.default_button_sound end self.buttons[#self.buttons + 1] = button return button end --! A window element used to scroll in lists class "Scrollbar" ---@type Scrollbar local Scrollbar = _G["Scrollbar"] --!dummy function Scrollbar:Scrollbar() self.base = nil self.slider = nil self.min_value = nil self.max_value = nil self.value = nil self.page_size = nil self.direction = nil self.visible = nil end function Scrollbar:setRange(min_value, max_value, page_size, value) page_size = math.min(page_size, max_value - min_value + 1) -- page size must be number of elements at most value = math.min(value or min_value, math.max(min_value, max_value - page_size + 1)) self.min_value = min_value self.max_value = max_value self.page_size = page_size self.value = value local slider = self.slider slider.w = slider.max_w slider.h = slider.max_h slider.max_x = slider.min_x + slider.max_w - slider.w slider.max_y = slider.min_y + slider.max_h - slider.h if self.direction == "y" then slider.h = math.ceil((page_size / (max_value - min_value + 1)) * slider.max_h) slider.max_y = slider.min_y + slider.max_h - slider.h slider.y = math.floor((value - min_value) / (max_value - min_value - page_size + 2) * (slider.max_y - slider.min_y) + slider.min_y) else slider.w = math.ceil((page_size / (max_value - min_value + 1)) * slider.max_w) slider.max_x = slider.min_x + slider.max_w - slider.w slider.x = math.floor((value - min_value) / (max_value - min_value - page_size + 2) * (slider.max_x - slider.min_x) + slider.min_x) end return self end --! Get the pixel position of the slider in the axis which the slider can move function Scrollbar:getXorY() return self.slider[self.direction] end --! Set the pixel position of the slider in the axis which the slider can move function Scrollbar:setXorY(xy) local dir = self.direction local min, max if dir == "x" then min = self.slider.min_x max = self.slider.max_x else min = self.slider.min_y max = self.slider.max_y end if xy < min then xy = min end if xy > max then xy = max end self.slider[dir] = xy local old_value = self.value self.value = math.floor(((xy - min) / (max - min + 1)) * (self.max_value - self.min_value - self.page_size + 2)) + 1 if old_value ~= self.value then self.callback() end end local scrollbar_mt = permanent("Window.", getmetatable(Scrollbar())) --[[ Convert a static panel into a scrollbar. ! Scrollbars consist of a base panel (the panel given as a parameter) and an additional slider panel (automatically created BevelPanel). !param panel (panel) The panel that will serve as the scrollbar base. !param slider_colour (colour in form .red, .green and .blue) The colour for the slider. !param callback (function) Function that is called whenever the slider position changes. !param min_value (integer) The minimum value the scrollbar can represent. !param max_value (integer) The maximum value the scrollbar can represent. !param page_size (integer) The amount of objects represented on one page. !param value (integer, nil) The current value, or min_value if not specified. ]] function Window:makeScrollbarOnPanel(panel, slider_colour, callback, min_value, max_value, page_size, value) local slider = self:addBevelPanel(panel.x + 1, panel.y + 1, panel.w - 2, panel.h - 2, slider_colour) local scrollbar = setmetatable({ base = panel, slider = slider, direction = "y", callback = callback, visible = true, enabled = true, }, scrollbar_mt) slider.min_x = slider.x slider.min_y = slider.y slider.max_w = slider.w slider.max_h = slider.h scrollbar:setRange(min_value, max_value, page_size, value) self.scrollbars[#self.scrollbars + 1] = scrollbar return scrollbar end --! A window element used to enter text class "Textbox" ---@type Textbox local Textbox = _G["Textbox"] --!dummy function Textbox:Textbox() self.panel = nil self.confirm_callback = nil self.abort_callback = nil self.button = nil self.text = nil self.allowed_input = nil self.char_limit = nil self.visible = nil self.enabled = nil self.active = nil self.cursor_counter = nil self.cursor_state = nil self.cursor_pos = nil end local textbox_mt = permanent("Window.", getmetatable(Textbox())) function Textbox:onTick() if self.active then self.cursor_counter = self.cursor_counter + 1 if self.cursor_counter >= 40 then self.cursor_state = true self.cursor_counter = self.cursor_counter - 40 elseif self.cursor_counter >= 20 then self.cursor_state = false end end end function Textbox:drawCursor(canvas, x, y) if self.cursor_state then local col = TheApp.video:mapRGB(255, 255, 255) local cursor_y, cursor_x = self.panel:drawLabel(nil, x, y, self.cursor_pos) local w, _ = self.panel.label_font:sizeOf("0") if self.panel.align == nil or self.panel.align == "center" then local _, text_x = self.panel:drawLabel(nil, x, y, {self.cursor_pos[1], #self.text}) cursor_x = text_x - (text_x - cursor_x) * 2 end cursor_y = cursor_y - 3 -- Add x separation, but only if there was actually some text in this line. if self.text[self.cursor_pos[1]] ~= "" then cursor_x = cursor_x + 1 end canvas:drawRect(col, cursor_x, cursor_y, w, 1) end end --! Set the box to not active and run confirm callback, if any function Textbox:confirm() self:setActive(false) if self.confirm_callback then self.confirm_callback() end end --! Set the box to not active and run abort callback, if any function Textbox:abort() self:setActive(false) if self.abort_callback then self.abort_callback() end end --! Set the textbox active status to true or false, taking care of any -- additional things that need to be done: deactivate any other textboxes, -- handle blinking cursor, keyboard repeat on/off, set button state accordingly --!param active (boolean) whether to activate (true) or deactivate (false) the box function Textbox:setActive(active) local ui = self.panel.window.ui if active then -- Unselect any other textbox for _, textbox in ipairs(ui.textboxes) do if textbox ~= self and textbox.active then textbox:abort() end end self.cursor_counter = 0 self.cursor_state = true self.cursor_pos[1] = type(self.text) == "table" and #self.text or 1 self.cursor_pos[2] = type(self.text) == "table" and string.len(self.text[#self.text]) or string.len(self.text) -- Update text self.panel:setLabel(self.text) else self.cursor_state = false end self.active = active -- Update button if necessary if self.button.toggled ~= active then self.button:toggle() end end function Textbox:clicked() local active = self.button.toggled if active then self:setActive(true) else if self.text == "" then self:abort() else self:confirm() end end end --! Handles special characters such as Enter. Normal text input is processed in the textInput function. --! Note though that this function still returns true if it appears to be a characters being entered. function Textbox:keyInput(char, rawchar) if not self.active then return false end local ui = self.panel.window.ui local line = type(self.text) == "table" and self.text[self.cursor_pos[1]] or self.text local pat = "%a%d_" -- which characters form "words" for ctrl+[left/right/backspace/delete] local new_line local handled = false if not self.char_limit or string.len(line) < self.char_limit then -- Upper- and lowercase letters if self.allowed_input.alpha then if #char == 1 and string.match(char, '%a') then handled = true end end -- Numbers if not handled and self.allowed_input.numbers then if #char == 1 and string.match(char, '%d') then handled = true end end -- Space, hyphen and plus sign if not handled and self.allowed_input.misc then if char == "space" or char == "-" or char == "+" then handled = true end end end -- Backspace (delete last char, or last word if ctrl is pressed) if not handled and char == "backspace" then if self.cursor_pos[2] == 0 then if type(self.text) == "table" and self.cursor_pos[1] > 1 then table.remove(self.text, self.cursor_pos[1]) self.cursor_pos[1] = self.cursor_pos[1] - 1 self.cursor_pos[2] = string.len(self.text[self.cursor_pos[1]]) new_line = self.text[self.cursor_pos[1]] .. line end else local pos = self.cursor_pos[2] - 1 if ui.app.key_modifiers.ctrl then pos = string.find(string.sub(line, 1, self.cursor_pos[2]), "[^" .. pat .. "][" .. pat .. "]+[^" .. pat .. "]*$") or 0 end new_line = line:sub(1, pos) .. line:sub(self.cursor_pos[2] + 1, -1) self.cursor_pos[2] = pos end handled = true end -- Delete (delete next char, or next word if ctrl is pressed) if not handled and char == "delete" then if self.cursor_pos[2] == string.len(line) then if type(self.text) == "table" and self.cursor_pos[1] < #self.text then new_line = line .. self.text[self.cursor_pos[1] + 1] table.remove(self.text, self.cursor_pos[1] + 1) end else local pos = self.cursor_pos[2] + 2 if ui.app.key_modifiers.ctrl then pos = (string.find(line, "[^" .. pat .. "][" .. pat .. "]", self.cursor_pos[2] + 1) or string.len(line)) + 1 end new_line = line:sub(1, self.cursor_pos[2]) .. line:sub(pos, -1) end handled = true end -- Enter (newline or confirm) if not handled and (char == "return" or char == "enter") then if type(self.text) == "table" then local remainder = line:sub(self.cursor_pos[2] + 1, -1) self.text[self.cursor_pos[1]] = line:sub(1, self.cursor_pos[2]) table.insert(self.text, self.cursor_pos[1] + 1, remainder) self.cursor_pos[1] = self.cursor_pos[1] + 1 self.cursor_pos[2] = 0 handled = true else self:confirm() return true end end -- Escape (abort) if not handled and char == "escape" then self:abort() return true end -- Arrow keys if not handled then if char == "up" then -- up if type(self.text) ~= "table" or self.cursor_pos[1] == 1 then -- to beginning of line self.cursor_pos[2] = 0 else -- one line up self.cursor_pos[1] = self.cursor_pos[1] - 1 self.cursor_pos[2] = math.min(self.cursor_pos[2], string.len(self.text[self.cursor_pos[1]])) end handled = true elseif char == "down" then -- down if type(self.text) ~= "table" or self.cursor_pos[1] == #self.text then -- to end of line self.cursor_pos[2] = string.len(line) else -- one line down self.cursor_pos[1] = self.cursor_pos[1] + 1 self.cursor_pos[2] = math.min(self.cursor_pos[2], string.len(self.text[self.cursor_pos[1]])) end handled = true elseif char == "right" then -- right if self.cursor_pos[2] == string.len(line) then -- next line if type(self.text) == "table" and self.cursor_pos[1] < #self.text then self.cursor_pos[1] = self.cursor_pos[1] + 1 self.cursor_pos[2] = 0 end else if ui.app.key_modifiers.ctrl then -- to the right until next word or end of line self.cursor_pos[2] = string.find(line, "[^" .. pat .. "][" .. pat .. "]", self.cursor_pos[2] + 1) or string.len(line) else -- one to the right self.cursor_pos[2] = self.cursor_pos[2] + 1 end end handled = true elseif char == "left" then -- left if self.cursor_pos[2] == 0 then -- previous line if type(self.text) == "table" and self.cursor_pos[1] > 1 then self.cursor_pos[1] = self.cursor_pos[1] - 1 self.cursor_pos[2] = string.len(self.text[self.cursor_pos[1]]) end else if ui.app.key_modifiers.ctrl then -- to the left until beginning of word or beginning of line self.cursor_pos[2] = string.find(string.sub(line, 1, self.cursor_pos[2]), "[^" .. pat .. "][" .. pat .. "]+[^" .. pat .. "]*$") or 0 else -- one to the left self.cursor_pos[2] = self.cursor_pos[2] - 1 end end handled = true end end -- Tab (reserved) if not handled and char == "tab" then handled = true end -- Home (beginning of line) if not handled and char == "home" then self.cursor_pos[2] = 0 handled = true end -- End (end of line) if not handled and char == "end" then self.cursor_pos[2] = string.len(line) handled = true end if not self.char_limit or string.len(self.text) < self.char_limit then -- Experimental "all" category if not handled and self.allowed_input.all and not (char == "shift" or char == "ctrl" or char == "alt") then -- F-Keys handled = true end end if new_line then if type(self.text) == "table" then self.text[self.cursor_pos[1]] = new_line else self.text = new_line end -- update label self.panel:setLabel(self.text) end -- make cursor visible self.cursor_counter = 0 self.cursor_state = true return handled end --! Handles actual text input. function Textbox:textInput(text) if not self.active then return false end local line = type(self.text) == "table" and self.text[self.cursor_pos[1]] or self.text local new_line = line:sub(1, self.cursor_pos[2]) .. text .. line:sub(self.cursor_pos[2] + 1, -1) self.cursor_pos[2] = self.cursor_pos[2] + #text if type(self.text) == "table" then self.text[self.cursor_pos[1]] = new_line else self.text = new_line end -- update label self.panel:setLabel(self.text) end --[[ Limit input handled by textbox to specific classes of characters !param types (string or table) One of, or an table of any number of input types ! valid input types are: ! "alpha": Letters (lower and uppercase) ! "numbers": 0-9 ! "misc": other characters, currently space and hyphen ! "all": experimental category that allows, theoretically, all input ]] function Textbox:allowedInput(types) if type(types) ~= "table" then types = {types} end self.allowed_input = {} for _, t in ipairs(types) do self.allowed_input[t] = true end return self end --[[ Limit input to a maximum of [limit] characters. !param limit (integer or nil) Number of characters until the textbox will stop accepting input, or nil to deactivate limit. ]] function Textbox:characterLimit(limit) self.char_limit = limit return self end --[[ Set the text of the textbox to a given string or list of strings. ! Use empty string to make textbox a single line textbox (default). ! Use table with empty string {""} to make it a multiline textbox. !param text (string or table) The string or list of strings the textbox should contain. ]] function Textbox:setText(text) self.text = text self.panel:setLabel(self.text) return self end function Textbox:setPosition(x, y) self.button:setPosition(x, y) end function Textbox:setSize(width, height) self.button:setSize(width, height) end --[[ Convert a static panel into a textbox. ! Textboxes consist of the panel given as a parameter, which is made into a ToggleButton automatically, and handle keyboard input while active. !param panel (panel) The panel that will serve as the textbox base. !param confirm_callback (function) The function to call when text is confirmed. !param abort_callback (function) The function to call when entering is aborted. ]] function Window:makeTextboxOnPanel(panel, confirm_callback, abort_callback) local textbox = setmetatable({ panel = panel, confirm_callback = confirm_callback, abort_callback = abort_callback, button = nil, -- placeholder text = "", allowed_input = { alpha = true, numbers = true, misc = true, }, char_limit = nil, visible = true, enabled = true, active = false, cursor_counter = 0, cursor_state = false, cursor_pos = {1, 1}, }, textbox_mt) local button = panel:makeToggleButton(0, 0, panel.w, panel.h, nil, textbox.clicked, textbox) textbox.button = button self.textboxes[#self.textboxes + 1] = textbox self.ui:registerTextBox(textbox) return textbox end --! A window element used to accept hotkey configurations. class "HotkeyBox" ---@type HotkeyBox local HotkeyBox = _G["HotkeyBox"] --!dummy function HotkeyBox:HotkeyBox() self.panel = nil self.confirm_callback = nil self.abort_callback = nil self.button = nil self.text = nil self.allowed_input = nil self.char_limit = nil self.visible = nil self.enabled = nil self.active = nil self.noted_keys = {} end local hotkeybox_mt = permanent("Window.", getmetatable(HotkeyBox())) --! Set the box to not active and run confirm callback, if any function HotkeyBox:confirm() self:setActive(false) if self.confirm_callback then self.confirm_callback() end self.noted_keys = {} end --! Set the box to not active and run abort callback, if any function HotkeyBox:abort() self:setActive(false) if self.abort_callback then self.abort_callback() end self.noted_keys = {} end --! Set the hotkeybox active status to true or false, taking care of any -- additional things that need to be done: deactivate any other hotkeyboxes, -- handle blinking cursor, keyboard repeat on/off, set button state accordingly --!param active (boolean) whether to activate (true) or deactivate (false) the box function HotkeyBox:setActive(active) local ui = self.panel.window.ui if active then -- Unselect any other hotkeybox for _, hotkeybox in ipairs(ui.hotkeyboxes) do if hotkeybox ~= self and hotkeybox.active then hotkeybox:abort() end end -- Update text self.panel:setLabel(self.text) end self.active = active -- Update button if necessary if self.button.toggled ~= active then self.button:toggle() end end function HotkeyBox:clicked() local active = self.button.toggled if active then self:setActive(true) else if self.text == "" then self:abort() else self:confirm() end end end function HotkeyBox:keyInput(char, rawchar, modifiers) if not self.active then return false end -- Just return true so any key's we press aren't passed to anything else. return true end --[[ Limit input handled by textbox to specific classes of characters !param types (string or table) One of, or an table of any number of input types ! valid input types are: ! "alpha": Letters (lower and uppercase) ! "numbers": 0-9 ! "misc": other characters, currently space and hyphen ! "all": experimental category that allows, theoretically, all input ]] function HotkeyBox:allowedInput(types) if type(types) ~= "table" then types = {types} end self.allowed_input = {} for _, t in ipairs(types) do self.allowed_input[t] = true end return self end --[[ Set the text of the textbox to a given string or list of strings. ! Use empty string to make textbox a single line textbox (default). ! Use table with empty string {""} to make it a multiline textbox. !param text (string or table) The string or list of strings the textbox should contain. ]] function HotkeyBox:setText(text) self.text = text self.panel:setLabel(self.text) return self end function HotkeyBox:setPosition(x, y) self.button:setPosition(x, y) end function HotkeyBox:setSize(width, height) self.button:setSize(width, height) end --================================ --================================ --================================ --[[ Convert a static panel into a hotkeybox. ! hotkeyboxes consist of the panel given as a parameter, which is made into a ToggleButton automatically, and handle keyboard input while active. !param panel (panel) The panel that will serve as the hotkeybox base. !param confirm_callback (function) The function to call when text is confirmed. !param abort_callback (function) The function to call when entering is aborted. ]] function Window:makeHotkeyBoxOnPanel(panel, confirm_callback, abort_callback) local hotkeybox = setmetatable({ panel = panel, confirm_callback = confirm_callback, abort_callback = abort_callback, button = nil, -- placeholder text = "", allowed_input = { alpha = true, numbers = true, misc = true, }, char_limit = nil, visible = true, enabled = true, active = false, noted_keys = {}, }, hotkeybox_mt) local button = panel:makeToggleButton(0, 0, panel.w, panel.h, nil, hotkeybox.clicked, hotkeybox) hotkeybox.button = button self.hotkeyboxes[#self.hotkeyboxes + 1] = hotkeybox self.ui:registerHotkeyBox(hotkeybox) return hotkeybox end -- Return the X and Y coordinates of the window as drawn on -- the screen after factoring in the ui_scale. function Window:getRealXY() local s = self.apply_ui_scale and TheApp.config.ui_scale or 1 return self.x * s, self.y * s end function Window:draw(canvas, x, y) local s = self.apply_ui_scale and TheApp.config.ui_scale or 1 x, y = x + self.x * s, y + self.y * s if self.panels[1] then local panel_sprites = self.panel_sprites local panel_sprites_draw = panel_sprites and panel_sprites.draw for _, panel in ipairs(self.panels) do if panel.visible then if panel.custom_draw then panel:custom_draw(canvas, x, y) else panel_sprites_draw( panel_sprites, canvas, panel.sprite_index, x + panel.x * s, y + panel.y * s, { flags = panel.draw_flags, scaleFactor = s }) end end end end if not class.is(self, UI) then -- prevent UI (sub)class from handling the textboxes too for _, box in ipairs(self.textboxes) do box:drawCursor(canvas, x, y) end end if not class.is(self, UI) then -- prevent UI (sub)class from handling the hotkeyboxes too for _, _ in ipairs(self.hotkeyboxes) do -- Empty right now. Don't know if I need it. -- LEIGET end end if self.windows then local windows = self.windows for i = #windows, 1, -1 do if windows[i].visible then windows[i]:draw(canvas, x, y) end end end end function Window:onChangeLanguage() if self.windows then for _, window in ipairs(self.windows) do window:onChangeLanguage() end end end function Window:onCursorWorldPositionChange(x, y) local repaint = false if self.windows then for _, window in ipairs(self.windows) do if window:onCursorWorldPositionChange(x - window.x, y - window.y) then repaint = true end end end return repaint end function Window:hitTestPanel(x, y, panel) local s = panel.apply_ui_scale and TheApp.config.ui_scale or 1 local xpos, ypos = x - panel.x * s, y - panel.y * s if panel.visible and xpos >= 0 and ypos >= 0 then if panel.w and panel.h then if xpos <= panel.w * s and ypos <= panel.h * s then return true end else if self.panel_sprites:hitTest(panel.sprite_index, math.floor(xpos / s), math.floor(ypos / s)) then return true end end end return false end --[[ Used to test if cursor is currently hovering over certain area in dialog. !param active_hover (bool) Is cursor already hovers over it? !param mouse_x (integer) Mouse X coordinate !param mouse_y (integer) Mouse Y coordinate !param min_x (integer) Minimum X area !param max_x (integer) Maximum X area !param min_y (integer) Minimum Y area !param max_y (integer) Maximum Y area ]] function Window:hoverTest(active_hover, mouse_x, mouse_y, min_x, max_x, min_y, max_y) local is_currently_hovering = mouse_x > min_x and mouse_x < max_x and mouse_y > min_y and mouse_y < max_y if is_currently_hovering then if not active_hover then self.ui:playSound("HLight5.wav") end return true end return false end --[[ Used to test if the window has a (non-transparent) pixel at the given position. !param x (integer) The X coordinate of the pixel to test, relative to the top-left corner of the window. !param y (integer) The Y coordinate of the pixel to test, relative to the top-left corner of the window. ]] function Window:hitTest(x, y) if self.panels[1] then for _, panel in ipairs(self.panels) do if self:hitTestPanel(x, y, panel) then return true end end end if self.windows then for _, child in ipairs(self.windows) do local s = child.apply_ui_scale and TheApp.config.ui_scale or 1 if child:hitTest(x - child.x * s, y - child.y * s) then return true end end end return false end function Window:onMouseDown(button, x, y) local repaint = false if not self.visible then return false end if self.windows then for _, window in ipairs(self.windows) do local ws = window.apply_ui_scale and TheApp.config.ui_scale or 1 if window:onMouseDown(button, x - window.x * ws, y - window.y * ws) then repaint = true break end end end if not repaint and (button == "left" or button == "right") then for _, btn in ipairs(self.buttons) do local bs = btn.panel_for_sprite.apply_ui_scale and TheApp.config.ui_scale or 1 if btn.enabled and btn.x * bs <= x and x < btn.r * bs and btn.y * bs <= y and y < btn.b * bs and (button == "left" or btn.on_rightclick ~= nil) then btn.panel_for_sprite.sprite_index = btn.sprite_index_active self.active_button = btn btn.active = true btn.panel_for_sprite.lowered = btn.panel_lowered_active if btn.is_repeat then -- execute callback once, then wait some ticks before repeatedly executing btn:handleClick(button) end self.btn_repeat_delay = 10 repaint = true break end end local s = self.apply_ui_scale and TheApp.config.ui_scale or 1 for _, bar in ipairs(self.scrollbars) do if bar.enabled and self:hitTestPanel(x, y, bar.slider) then self.active_scrollbar = bar bar.active = true bar.down_x = x / s - bar.slider.x bar.down_y = y / s - bar.slider.y repaint = true break end end end if self:hitTest(x, y) then if button == "left" and not repaint then self:beginDrag(x, y) end repaint = true end if repaint then self:bringToTop() end return repaint end --[[ Get the name of the saved window position group. ! When the user drags a window, the new position of the window is saved, and then when any windows in the same group are opened in the future, the position of the new window is set to the saved position. By default, each window class is its own group, but by overriding this method, that can be changed. ]] function Window:getSavedWindowPositionName() return class.type(self) end function Window:onMouseUp(button, x, y) local repaint = false if self.dragging then self.ui.drag_mouse_move = nil self.dragging = false local config = self.ui.app.runtime_config if not config.window_position then config.window_position = {} end config = config.window_position local name = self:getSavedWindowPositionName() if not config[name] then config[name] = {} end config = config[name] config.x = self.x_original config.y = self.y_original return false end if self.windows then for _, window in ipairs(self.windows) do local s = window.apply_ui_scale and TheApp.config.ui_scale or 1 if window:onMouseUp(button, x - window.x * s, y - window.y * s) then repaint = true break -- Click has been handled. No need to look any further. end end end if button == "left" or button == "right" then local btn = self.active_button if btn then local bs = btn.panel_for_sprite.apply_ui_scale and TheApp.config.ui_scale or 1 btn.panel_for_sprite.sprite_index = btn.sprite_index_normal btn.active = false btn.panel_for_sprite.lowered = btn.panel_lowered_normal self.active_button = false self.btn_repeat_delay = nil if btn.enabled and not btn.is_repeat and btn.x * bs <= x and x < btn.r * bs and btn.y * bs <= y and y < btn.b * bs then btn:handleClick(button) end repaint = true end local bar = self.active_scrollbar if bar then self.active_scrollbar = nil bar.active = false bar.down_x = nil bar.down_y = nil end end return repaint end --! This function can be used to control mousewheel input (i.e. scrolling). --! Override this function in derived classes, with what you'd like to happen --! on this event. --!param x (int) Mousewheel has moved on the horizontal axis (-1 is -- leftward movement, +1 is rightward movement) --!param y (int) Mousewheel has moved on the vertical axis (-1 is downward -- movement, +1 is upward movement) --!return repaint (boolean) if screen is to be redrawn. function Window:onMouseWheel(x, y) local repaint = false if self.windows then for _, window in ipairs(self.windows) do if window:onMouseWheel(x, y) then repaint = true break -- Scroll has been handled. No need to look any further. end end end return repaint end local --[[persistable:window_drag_position_representation]] function getNicestPositionRepresentation(pos, scale, size, dim_size) if size == dim_size then return 0.5 end local left_rel = pos local right_rel = pos + size * scale - dim_size local rel = pos / (dim_size - size * scale) if 0.15 < rel and rel < 0.85 then return rel end if left_rel <= 0 then return 0 end if right_rel >= 0 then return -0.1 end if left_rel <= -right_rel then return left_rel / scale else return right_rel / scale end end --[[ Initiate dragging of the window. !param x The X position of the cursor in window coordinates. !param y The Y position of the cursor in window coordinates. ]] function Window:beginDrag(x, y) if not self.width or not self.height or not self.ui or self.ui.app.runtime_config.lock_windows or not self.draggable then -- Need width, height and UI to do a drag return false end local s = self.apply_ui_scale and TheApp.config.ui_scale or 1 self.dragging = true self.ui.drag_mouse_move = --[[persistable:window_drag_mouse_move]] function (sx, sy) -- sx and sy are cursor screen co-ords. Convert to window's new abs co-ords sx = sx - x sy = sy - y -- Calculate best positioning local w, h = TheApp.config.width, TheApp.config.height if TheApp.key_modifiers.ctrl then local px = round(sx / (w - self.width * s), 0.1) local py = round(sy / (h - self.height * s), 0.1) if px >= 1 then px = -0.1 elseif px < 0 then px = 0 end if py >= 1 then py = -0.1 elseif py < 0 then py = 0 end self:setPosition(px, py) else local px = getNicestPositionRepresentation(sx, s, self.width, w) local py = getNicestPositionRepresentation(sy, s, self.height, h) self:setPosition(px, py) end end return true end --[[ Called when the user moves the mouse. !param x (integer) The new X coordinate of the cursor, relative to the top-left corner of the window. !param y (integer) The new Y coordinate of the cursor, relative to the top-left corner of the window. !param dx (integer) The number of pixels which the cursor moved horizontally. !param dy (integer) The number of pixels which the cursor moved vertically. ]] function Window:onMouseMove(x, y, dx, dy) local repaint = false self.cursor_x = x self.cursor_y = y if self.windows then for _, window in ipairs(self.windows) do local s = window.apply_ui_scale and TheApp.config.ui_scale or 1 if window:onMouseMove(x - window.x * s, y - window.y * s, dx, dy) then repaint = true end end end if self.active_button then local btn = self.active_button local index = btn.sprite_index_blink or btn.sprite_index_normal local bs = btn.panel_for_sprite.apply_ui_scale and TheApp.config.ui_scale or 1 if btn.x * bs <= x and x < btn.r * bs and btn.y * bs <= y and y < btn.b * bs then index = btn.sprite_index_active self.active_button.active = true btn.panel_for_sprite.lowered = btn.panel_lowered_active else self.active_button.active = false btn.panel_for_sprite.lowered = btn.panel_lowered_normal for _, button in ipairs(self.buttons) do bs = btn.panel_for_sprite.apply_ui_scale and TheApp.config.ui_scale or 1 if button.enabled and button.x * bs <= x and x < button.r * bs and button.y * bs <= y and y < button.b * bs then button.panel_for_sprite.sprite_index = button.sprite_index_active button.active = true button.panel_for_sprite.lowered = button.panel_lowered_active self.active_button = button repaint = true break end end end if btn.panel_for_sprite.sprite_index ~= index then btn.panel_for_sprite.sprite_index = index repaint = true end end if self.active_scrollbar then local s = self.apply_ui_scale and TheApp.config.ui_scale or 1 local bar = self.active_scrollbar if bar.direction == "x" then bar:setXorY(math.floor(x / s - bar.down_x)) elseif bar.direction == "y" then bar:setXorY(math.floor(y / s - bar.down_y)) end end return repaint end -- Called regularly at a rate independent of the game speed. function Window:onTick() if self.active_button then local btn = self.active_button local mouse_btn = self.buttons_down.mouse_left and "left" or self.buttons_down.mouse_right and "right" or nil if mouse_btn then if self.btn_repeat_delay > 0 then self.btn_repeat_delay = self.btn_repeat_delay - 1 else if btn.active and btn.is_repeat then self.btn_repeat_delay = 2 btn:handleClick(mouse_btn) end end end end if self.blinking_button then self.blink_counter = self.blink_counter + 1 if self.blink_counter == 20 then self.blink_counter = 0 local btn = self.buttons[self.blinking_button] btn.sprite_index_blink = btn.sprite_index_blink == btn.sprite_index_active and btn.sprite_index_normal or btn.sprite_index_active if btn.enabled and not btn.active then btn.panel_for_sprite.sprite_index = btn.sprite_index_blink end end end if not class.is(self, UI) then -- prevent UI (sub)class from handling the textboxes too for _, box in ipairs(self.textboxes) do box:onTick() end end if self.windows then for _, window in ipairs(self.windows) do window:onTick() end end end -- Called regularly at the same rate that entities are ticked. function Window:onWorldTick() if self.windows then for _, window in ipairs(self.windows) do window:onWorldTick() end end end -- Bring the window to the top of its parent function Window:bringToTop() if self.parent then self.parent:sendToTop(self) end end -- Tell the window to bring the specified sub-window to its top function Window:sendToTop(window) local window_index if self.windows then for i = 1, #self.windows do -- Search specified window in windows list if self.windows[i] == window then window_index = i -- Keep window index break end end end if window_index ~= nil then local insert_pos if window.on_top then insert_pos = 1 else -- First position after any on_top windows for i = 1, #self.windows do if not self.windows[i].on_top then insert_pos = i break end end insert_pos = insert_pos or #self.windows + 1 end table.remove(self.windows, window_index) -- Remove the window from the list table.insert(self.windows, insert_pos, window) -- And reinsert it at the before computed position end end -- Tell the window to bring the specified sub-window to its bottom function Window:sendToBottom(window) if self.windows then for i = 1, #self.windows do -- Search specified window in windows list if self.windows[i] == window then table.remove(self.windows, i) -- Remove the window from the list table.insert(self.windows, #self.windows + 1, window) -- And reinsert it at the end break end end end end function Window:startButtonBlinking(button_index) self.blinking_button = button_index self.blink_counter = 0 local btn = self.buttons[button_index] btn.sprite_index_blink = btn.sprite_index_normal end function Window:stopButtonBlinking() -- Does any button actually blink? if self.blinking_button then local btn = self.buttons[self.blinking_button] btn.panel_for_sprite.sprite_index = btn.sprite_index_normal btn.sprite_index_blink = nil self.blinking_button = false self.blink_counter = 0 end end --! Create a static (non-changeable) tooltip to be displayed in a certain region. --! tooltip_x and tooltip_y are optional; if not specified, it will default to top center of region. --!param text (string) The string to display. --!param x (integer) The X coordinate relative to the top-left corner. --!param y (integer) The Y coordinate relative to the top-left corner. --!param r (integer) The right (X + width) coordinate relative to the top-left corner. --!param b (integer) The bottom (Y + height) coordinate relative to the top-left corner. --!param tooltip_x (integer) [optional] The X coordinate to display the tooltip at. --!param tooltip_y (integer) [optional] The Y coordinate to display the tooltip at. function Window:makeTooltip(text, x, y, r, b, tooltip_x, tooltip_y, apply_ui_scale) local region = { text = text, x = x, y = y, r = r, b = b, tooltip_x = tooltip_x or round((x + r) / 2, 1), -- optional tooltip_y = tooltip_y or y, -- optional } self.tooltip_regions[#self.tooltip_regions + 1] = region return region end --! Create a dynamic tooltip to be displayed in a certain region. --! tooltip_x and tooltip_y are optional; if not specified, it will default to top center of region. --!param callback (function) A function that returns the string to display or nil for no tooltip. --!param x (integer) The X coordinate relative to the top-left corner. --!param y (integer) The Y coordinate relative to the top-left corner. --!param r (integer) The right (X + width) coordinate relative to the top-left corner. --!param b (integer) The bottom (Y + height) coordinate relative to the top-left corner. --!param tooltip_x (integer) [optional] The X coordinate to display the tooltip at. --!param tooltip_y (integer) [optional] The Y coordinate to display the tooltip at. function Window:makeDynamicTooltip(callback, x, y, r, b, tooltip_x, tooltip_y) local region = { callback = callback, x = x, y = y, r = r, b = b, tooltip_x = tooltip_x or round((x + r) / 2, 1), -- optional tooltip_y = tooltip_y or y, -- optional } self.tooltip_regions[#self.tooltip_regions + 1] = region return region end -- An 'element' can either be a panel, a button, or a tooltip region. function Window:getTooltipForElement(elem, x, y) local text if elem.callback then text = elem.callback(x, y) else text = elem.text end local apply_ui_scale = self.apply_ui_scale if elem.apply_ui_scale ~= nil then apply_ui_scale = elem.apply_ui_scale elseif elem.panel_for_sprite and elem.panel_for_sprite.apply_ui_scale ~= nil then apply_ui_scale = elem.panel_for_sprite.apply_ui_scale end local elem_scale = apply_ui_scale and TheApp.config.ui_scale or 1 local xpos = elem.tooltip_x and elem.tooltip_x * elem_scale or nil local ypos = elem.tooltip_y and elem.tooltip_y * elem_scale or nil local window_scale = self.apply_ui_scale and TheApp.config.ui_scale or 1 if xpos then xpos = xpos + self.x * window_scale end -- NB: can be nil, then it means position at mouse cursor if ypos then ypos = ypos + self.y * window_scale end if text then return { text = text, x = xpos, y = ypos } end end --! Query the window for tooltip text to display for a particular position. --! Tooltips are either associated with buttons, panels, or a region. -- (see Button:setTooltip, Panel:setTooltip, Window:make[Dynamic]Tooltip) --! Button tooltips take precedence over region tooltips, which again take precedence over panels. -- Returns tooltip in form of { text = .. , x = .. , y = .. } or nil for no tooltip. --!param x (integer) The X coordinate relative to the top-left corner. --!param y (integer) The Y coordinate relative to the top-left corner. function Window:getTooltipAt(x, y) local s = self.apply_ui_scale and TheApp.config.ui_scale or 1 if x < 0 or y < 0 or (self.width and x >= self.width * s) or (self.height and y >= self.height * s) then return end if self.windows then for _, window in ipairs(self.windows) do local ws = window.apply_ui_scale and TheApp.config.ui_scale or 1 if window:hitTest(x - window.x * ws, y - window.y * ws) then return window:getTooltipAt(x - window.x * ws, y - window.y * ws) end end end for _, btn in ipairs(self.buttons) do local bs = btn.panel_for_sprite.apply_ui_scale and TheApp.config.ui_scale or 1 if btn.panel_for_sprite.visible ~= false and btn.tooltip and btn.x * bs <= x and x < btn.r * bs and btn.y * bs <= y and y < btn.b * bs then return self:getTooltipForElement(btn.tooltip, x, y) end end for _, region in ipairs(self.tooltip_regions) do if region.enabled ~= false and region.x * s <= x and x < region.r * s and region.y * s <= y and y < region.b * s then return self:getTooltipForElement(region, x, y) end end for _, pnl in ipairs(self.panels) do if pnl.tooltip and self:hitTestPanel(x, y, pnl) then return self:getTooltipForElement(pnl.tooltip, x, y) end end end function Panel:afterLoad(old, new) if old < 160 then self.lowered_colour = self.colour end if old < 236 then self.apply_ui_scale = true end end --! Stub to be extended in subclasses, if needed. function Window:afterLoad(old, new) if old < 2 then -- Scrollbars were added self.scrollbars = {} end if old < 3 then -- Textboxes were added self.textboxes = {} end if old < 22 then self.draggable = true end if old < 32 then -- ui added to buttons for _, btn in ipairs(self.buttons) do btn.ui = self.ui end end if old < 132 then -- Hotkey boxes were added. self.hotkeyboxes = {} end if old < 236 then self.apply_ui_scale = true end -- If a window or panel is asked to close during an afterLoad cycle we -- can skip entries so use backwards iteration here instead if self.windows then for i = #self.windows, 1, -1 do local window = self.windows[i] if window then window:afterLoad(old, new) end end end if self.panels then for i = #self.panels, 1, -1 do local panel = self.panels[i] if panel then panel:afterLoad(old, new) end end end end CorsixTH-0.70.0/CorsixTH/Lua/world.lua000066400000000000000000003233061522247547500174030ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local TH = require("TH") local ipairs, _G, table_remove = ipairs, _G, table.remove corsixth.require("entities.humanoids.patient") corsixth.require("entities.humanoids.staff.doctor") corsixth.require("entities.humanoids.staff.nurse") corsixth.require("entities.humanoids.staff.handyman") corsixth.require("entities.humanoids.staff.receptionist") corsixth.require("entities.humanoids.vip") corsixth.require("entities.humanoids.grim_reaper") corsixth.require("entities.humanoids.inspector") corsixth.require("staff_profile") corsixth.require("hospital") corsixth.require("hospitals.player_hospital") corsixth.require("hospitals.ai_hospital") corsixth.require("cheats") corsixth.require("epidemic") corsixth.require("calls_dispatcher") corsixth.require("research_department") corsixth.require("entity_map") corsixth.require("date") corsixth.require("announcer") corsixth.require("endconditions") corsixth.require("earthquake") --! Manages entities, rooms, and the date. class "World" ---@type World local World = _G["World"] function World:World(app, free_build_mode) self.app = app self.free_build_mode = free_build_mode self.map = app.map self.wall_types = app.walls self.object_types = app.objects self.anims = app.anims self.pathfinder = TH.pathfinder() self.pathfinder:setMap(app.map.th) self.entities = {} -- List of entities in the world. self.dispatcher = CallsDispatcher(self) self.objects = {} self.objects_notify_occupants = {} self.rooms = {} -- List that can have gaps when a room is deleted, so use pairs to iterate. self.entity_map = EntityMap(self.map) -- Time self.hours_per_tick = 1 self.tick_rate = 3 self.tick_timer = 0 self.game_date = Date() -- Current date in the game. self.room_information_dialogs = app.config.room_information_dialogs -- This is false when the game is paused. self.user_actions_allowed = true -- If set, do not create salary raise requests. self.debug_disable_salary_raise = self.free_build_mode self.idle_cache = {} -- Cached queue standing positions for all queues. self.delayed_map_objects = {} -- Initial objects in the map for parcels without owner. self.room_remove_callbacks = {--[[a set rather than a list]]} self.room_built = {} -- List of room types that have been built self.hospitals = {} self.floating_dollars = {} self.game_log = {} -- saves list of useful debugging information self.savegame_version = app.savegame_version -- Savegame version number self.release_version = app:getReleaseString() -- Savegame release version (e.g. 0.60), or Trunk -- Also preserve this throughout future updates. self.original_savegame_version = app.savegame_version -- Initialize available rooms. local avail_rooms = self:getAvailableRooms() self.available_rooms = {} -- Both a list and a set, use ipairs to iterate through the available rooms. for _, avail_room in ipairs(avail_rooms) do local room = avail_room.room self.available_rooms[#self.available_rooms + 1] = room self.available_rooms[room.id] = room end -- Initialize available diseases and winning conditions. self:initLevel(app, avail_rooms) -- Construct hospitals. self.hospitals[1] = PlayerHospital(self, avail_rooms, app.config.player_name) -- Add computer players -- TODO: Right now they're only names local level_config = self.map.level_config for key, value in pairs(level_config.computer) do if value.Playing == 1 then self.hospitals[#self.hospitals + 1] = AIHospital(tonumber(key) + 1, self, avail_rooms, value.Name) end end -- Setup research. for _, hospital in ipairs(self.hospitals) do hospital.research:setResearchConcentration() end self:updateInitialsCache() -- TODO: Add (working) AI and/or multiplayer hospitals -- TODO: Needs to be changed for multiplayer support self.hospitals[1]:initStaff() self:initWallTypes() self.object_id_by_thob = {} for _, object_type in ipairs(self.object_types) do self.object_id_by_thob[object_type.thob] = object_type.id end self:makeAvailableStaff(0) self.spawn_points = self:calculateSpawnTiles() -- Next Events dates -- emergencies -- The emergency control level data starts with an array of 0 self.next_emergency_no = 0 self:nextEmergency() -- Earthquakes self.earthquake = Earthquake(self) -- vip self.next_vip_date = self:_generateNextVipDate() -- Set initial spawn rate in people per month. -- Assumes that the first entry is always the first month. self.spawn_rate = self.map.level_config.popn[0].Change self.monthly_spawn_increase = self.spawn_rate self.spawn_hours = {} self.spawn_dates = {} self:updateSpawnDates() self.cheat_announcements = { "cheat001.wav", "cheat002.wav", "cheat003.wav", } self:gameLog("Created game with savegame version " .. self.savegame_version .. ".") end --! Register key shortcuts for controlling the world (game speed, etc.) function World:setUI(ui) self.ui = ui self.ui:addKeyHandler("ingame_pause", self, self.pauseOrUnpause, "Pause") self.ui:addKeyHandler("ingame_gamespeed_slowest", self, self.setSpeed, "Slowest") self.ui:addKeyHandler("ingame_gamespeed_slower", self, self.setSpeed, "Slower") self.ui:addKeyHandler("ingame_gamespeed_normal", self, self.setSpeed, "Normal") self.ui:addKeyHandler("ingame_gamespeed_max", self, self.setSpeed, "Max speed") self.ui:addKeyHandler("ingame_gamespeed_thensome", self, self.setSpeed, "And then some more") self.ui:addKeyHandler("ingame_zoom_in", self, self.adjustZoom, 1) self.ui:addKeyHandler("ingame_zoom_in_more", self, self.adjustZoom, 5) self.ui:addKeyHandler("ingame_zoom_out", self, self.adjustZoom, -1) self.ui:addKeyHandler("ingame_zoom_out_more", self, self.adjustZoom, -5) self.ui:addKeyHandler("ingame_reset_zoom", self, self.resetZoom) end function World:adjustZoom(delta) local scr_w = self.ui.app.config.width local factor = self.ui.app.config.zoom_speed local virtual_width = scr_w / (self.ui.zoom_factor or 1) -- The modifier is a normal distribution to make it more difficult to zoom at the extremes local modifier = math.exp(-((self.ui.zoom_factor - 1) ^ 2) / 2) / math.sqrt(2 * math.pi) if modifier < 0.05 or modifier > 1 then modifier = 0.05 end virtual_width = virtual_width - delta * factor * modifier if virtual_width < 200 then return false end return self.ui:setZoom(scr_w / virtual_width) end function World:resetZoom() return self.ui:setZoom(1) end --! Initialize the game level (available diseases, winning conditions). --!param app Game application. --!param avail_rooms (list) Available rooms in the level. function World:initLevel(app, avail_rooms) local existing_rooms = {} for _, avail_room in ipairs(avail_rooms) do existing_rooms[avail_room.room.id] = true end -- Determine available diseases self.available_diseases = {} local level_config = self.map.level_config local visual = level_config.visuals local non_visual = level_config.non_visuals for _, disease in ipairs(app.diseases) do if not disease.pseudo then local vis_id = disease.visuals_id local nonvis_id = disease.non_visuals_id local vis = 1 if visual and (visual[vis_id] or non_visual[nonvis_id]) then vis = vis_id and visual[vis_id].Value or non_visual[nonvis_id].Value end if vis ~= 0 then for _, room_id in ipairs(disease.treatment_rooms) do if existing_rooms[room_id] == nil then print("Warning: Removing disease \"" .. disease.id .. "\" due to missing treatment room \"" .. room_id .. "\".") vis = 0 -- Missing treatment room, disease cannot be treated. Remove it. break end end end -- TODO: Where the value is greater that 0 should determine the frequency of the patients if vis ~= 0 then self.available_diseases[#self.available_diseases + 1] = disease self.available_diseases[disease.id] = disease end end end -- Apply level-defined pricing to diseases on new game: self:applyLevelStartPrices() if #self.available_diseases == 0 and self.map.level_number ~= "MAP EDITOR" then -- No diseases are needed if we're actually in the map editor! print("Warning: This level does not contain any diseases") end self:determineWinningConditions() end -- Apply level-defined pricing to all available diseases. function World:applyLevelStartPrices() local config = self.map and self.map.level_config if not (config and config.expertise and self.available_diseases) then return end for _, disease in ipairs(self.available_diseases) do local expertise = disease.expertise_id and config.expertise[disease.expertise_id] if expertise and expertise.StartPrice then disease.cure_price = expertise.StartPrice end end end function World:toggleInformation() self.room_information_dialogs = not self.room_information_dialogs end --! In EndConditions, collect and test the win and lose conditions of the level. function World:determineWinningConditions() self.endconditions = EndConditions(self.map.level_config, self.map.level_number, self.free_build_mode) end --! Find the rooms available at the level. --!return (list) Available rooms, with discovery state at start, and build_cost. function World:getAvailableRooms() local avail_rooms = {} local cfg_objects = self.map.level_config.objects local cfg_rooms = self.map.level_config.rooms for _, room in ipairs(TheApp.rooms) do -- Add build cost based on level files for all rooms. -- For now, sum it up so that the result is the same as before. -- TODO: Change the whole build process so that this value is -- the room cost only? (without objects) local build_cost = cfg_rooms[room.level_config_id].Cost local available = true local is_discovered = true -- Make sure that all objects needed for this room are available for name, no in pairs(room.objects_needed) do local spec = cfg_objects[TheApp.objects[name].thob] if spec.AvailableForLevel == 0 then -- It won't be possible to build this room at all on the level. available = false elseif spec.StartAvail == 0 then -- Ok, it will be available at some point just not from the beginning. is_discovered = false end -- Add cost for this object. build_cost = build_cost + cfg_objects[TheApp.objects[name].thob].StartCost * no end if available then avail_rooms[#avail_rooms + 1] = {room = room, is_discovered = is_discovered, build_cost = build_cost} end end return avail_rooms end --! Get the hospital controlled by the (single) player. --!return (Hospital) The hospital controlled by the (single) player. function World:getLocalPlayerHospital() -- NB: UI code can get the hospital to use via ui.hospital -- TODO: Make this work in multiplayer? return self.hospitals[1] end --! Identify the tiles on the map suitable for spawning `Humanoid`s from. --!return (table) 0-8 spawn points of the map. function World:calculateSpawnTiles() local spawn_points = {} local w, h = self.map.width, self.map.height local directions = { {direction = "north", origin = {1, 1}, step = { 1, 0}}, {direction = "east" , origin = {w, 1}, step = { 0, 1}}, {direction = "south", origin = {w, h}, step = {-1, 0}}, {direction = "west" , origin = {1, h}, step = { 0, -1}}, } for _, edge in ipairs(directions) do -- Find all possible spawn points on the edge local xs = {} local ys = {} local x, y = edge.origin[1], edge.origin[2] while not (x < 1 or x > w or y < 1 or y > h) do if self.pathfinder:isReachableFromHospital(x, y) then xs[#xs + 1] = x ys[#ys + 1] = y end x = x + edge.step[1] y = y + edge.step[2] end -- Choose at most 8 points for the edge local num = math.min(8, #xs) for i = 1, num do local index = math.floor((i - 0.5) / num * #xs + 1) spawn_points[#spawn_points + 1] = {x = xs[index], y = ys[index], direction = edge.direction} end end return spawn_points end --! Function to determine whether a given disease is available for new patients. --!param self (World) World object. --!param disease (disease) Disease to test. --!param hospital (Hospital) Hospital that needs a new patient. --!return (boolean) Whether the disease is usable for new spawned patients. local function isDiseaseUsableForNewPatient(self, disease, hospital) if disease.only_emergency then return false end local level_config = self.map.level_config if disease.visuals_id then -- level files can delay visuals to a given month -- and / or until a given number of patients have arrived local hold_visual_months = level_config.gbv.HoldVisualMonths local hold_visual_peep_count = level_config.gbv.HoldVisualPeepCount -- if the month is greater than either of these values then visuals will not appear in the game if (hold_visual_months and hold_visual_months > self.game_date:monthOfGame()) or (hold_visual_peep_count and hold_visual_peep_count > hospital.num_visitors) then return false end -- The value against #visuals_available determines from which month a disease can appear. -- 0 means it can show up anytime. return level_config.visuals_available[disease.visuals_id].Value < self.game_date:monthOfGame() elseif disease.non_visuals_id then -- Non-visual disease. Simply check the month it can appear from has passed -- 0 means it can show up anytime. return level_config.non_visuals_available[disease.non_visuals_id].Value < self.game_date:monthOfGame() end error("disease has neither visuals_id or non_visuals_id") end --! Private function to assess the shortest path between all spawn points and desks --!param staffed_desks (table) All staffed reception desks --!param spawns (table) All available spawn points --!return Optimal spawn point to the nearest reception desk or false on failure function World:_findClosestSpawnToDesk(staffed_desks, spawns) local best_spawn_point, distance local function testNewSpawnPath(desk, spawn) local new_dist = self:getPathDistance(desk.tile_x, desk.tile_y, spawn.x, spawn.y) if not new_dist then return end if not distance or new_dist < distance then distance = new_dist best_spawn_point = spawn end end for _, spawn in ipairs(spawns) do for _, desk in ipairs(staffed_desks) do testNewSpawnPath(desk, spawn) end end if not best_spawn_point then local msg = "Warning: Path not found between any spawn point and staffed desk. " .. "Humanoid will still likely find its own way." self:gameLog(msg) return false end return best_spawn_point end --! Spawn a patient from a spawn point for the given hospital. --!param hospital (Hospital) Hospital that the new patient should visit. --!return (Patient entity) The spawned patient, or 'nil' if no patient spawned. function World:spawnPatient(hospital) if not hospital then hospital = self:getLocalPlayerHospital() end -- The level might not contain any diseases if #self.available_diseases < 1 then self.ui:addWindow(UIInformation(self.ui, {"There are no diseases on this level! Please add some to your level."})) return end if #self.spawn_points == 0 then self.ui:addWindow(UIInformation(self.ui, {"Could not spawn patient because no spawn points are available. Please place walkable tiles on the edge of your level."})) return end if not hospital:hasReceptionDesk(true) then return nil end -- Construct disease, take a random guess first, as a quick clear-sky attempt. local disease = self.available_diseases[math.random(1, #self.available_diseases)] if not isDiseaseUsableForNewPatient(self, disease, hospital) then -- Lucky shot failed, do a proper calculation. local usable_diseases = {} for _, d in ipairs(self.available_diseases) do if isDiseaseUsableForNewPatient(self, d, hospital) then usable_diseases[#usable_diseases + 1] = d end end if #usable_diseases == 0 then return nil end disease = usable_diseases[math.random(1, #usable_diseases)] end -- Construct patient. local spawns = self.spawn_points -- Let the first patient to the player use the shortest path to a reception desk local spawn_point = hospital:isPlayerHospital() and not hospital:hadPatients() and self:_findClosestSpawnToDesk(hospital:getReceptionDesks(true), spawns) or spawns[math.random(1, #spawns)] local patient = self:newEntity("Patient", 2, 1) patient:setDisease(disease) patient:setNextAction(SpawnAction("spawn", spawn_point)) patient:setHospital(hospital) return patient end --A VIP is invited (or he invited himself) to the player hospital. --!param name Name of the VIP function World:spawnVIP(name) local hospital = self:getLocalPlayerHospital() local vip = self:newEntity("Vip", 2, 2) vip:setType("VIP") vip.name = name vip.enter_deaths = hospital.num_deaths vip.enter_visitors = hospital.num_visitors vip.enter_cures = hospital.num_cured vip.enter_patients = #hospital.patients -- VIP's room visit chance is 50% if total rooms in hospital is less than 80 (makes a math.random with 0 and 1 possibilities). -- Else decided by total rooms / 40 (0, 1, 2 [33%]; 0, 1, 2, 3 [25%] etc) local rooms_threshold = 79 if #self.rooms > rooms_threshold then vip.room_visit_chance = math.floor(#self.rooms / 40) end local spawn_point = self.spawn_points[math.random(1, #self.spawn_points)] vip:setNextAction(SpawnAction("spawn", spawn_point)) vip:setHospital(hospital) vip:updateDynamicInfo() hospital:onSpawnVIP() vip:queueAction(SeekReceptionAction()) end --! Enable or disable salary raise events. --!param mode (boolean) If true, do not create salary raise events. function World:debugDisableSalaryRaise(mode) self.debug_disable_salary_raise = mode end local staff_to_make = { {class = "Doctor", name = "doctor", conf = "Doctors" }, {class = "Nurse", name = "nurse", conf = "Nurses" }, {class = "Handyman", name = "handyman", conf = "Handymen" }, {class = "Receptionist", name = "receptionist", conf = "Receptionists"}, } function World:makeAvailableStaff(month) local conf_entry = 0 local cfg_staff_levels = self.map.level_config.staff_levels while cfg_staff_levels[conf_entry + 1] and cfg_staff_levels[conf_entry + 1].Month <= month do conf_entry = conf_entry + 1 end self.available_staff = {} for _, info in ipairs(staff_to_make) do local num local ind = conf_entry while not num do assert(ind >= 0, "Staff amount " .. info.conf .. " not existent (should at least be given by base_config).") num = cfg_staff_levels[ind][info.conf] ind = ind - 1 end local group = {} for i = 1, num do group[i] = StaffProfile(self, info.class, _S.staff_class[info.name]) group[i]:randomise(month) end self.available_staff[info.class] = group end end --[[ Register a callback for when `Humanoid`s enter or leave a given tile. ! Note that only one callback may be registered to each tile. !param x (integer) The 1-based X coordinate of the tile to monitor. !param y (integer) The 1-based Y coordinate of the tile to monitor. !param object (Object) Something with an `onOccupantChange` method, which will be called whenever a `Humanoid` enters or leaves the given tile. The method will receive one argument (after `self`), which will be `1` for an enter event and `-1` for a leave event. ]] function World:notifyObjectOfOccupants(x, y, object) local idx = (y - 1) * self.map.width + x self.objects_notify_occupants[idx] = object or nil end function World:getObjectToNotifyOfOccupants(x, y) local idx = (y - 1) * self.map.width + x return self.objects_notify_occupants[idx] end --! Place objects from a map file onto the map. --!param objects Objects to place. function World:createMapObjects(objects) self.delayed_map_objects = {} for _, object in ipairs(objects) do self:_createMapObject(object) end end local flag_cache = {} --! Internal function for placing an object from the map file. --!param object Object to place. function World:_createMapObject(object) local x, y, thob, flags = unpack(object) local object_id = self.object_id_by_thob[thob] if not object_id then print("Warning: Map contained object with unrecognised THOB (" .. thob .. ") at " .. x .. "," .. y) return end local object_type = self.object_types[object_id] if not object_type or not object_type.supports_creation_for_map then print("Warning: Unable to create map object " .. object_id .. " at " .. x .. "," .. y) return end local map = self.map.th local parcel = map:getCellFlags(x, y, flag_cache).parcelId if parcel ~= 0 and map:getPlotOwner(parcel) == 0 then -- Delay making objects which are on plots which haven't been purchased yet self.delayed_map_objects[{object_id, x, y, flags, "map object"}] = parcel else self:newObject(object_id, x, y, flags, "map object") end end --! Change owner of a plot. --!param parcel (int) Plot to change. --!param owner (int) New owner (may be 0). function World:setPlotOwner(parcel, owner) self.map:setPlotOwner(parcel, owner) if owner ~= 0 and self.delayed_map_objects then for info, p in pairs(self.delayed_map_objects) do if p == parcel then self:newObject(unpack(info)) self.delayed_map_objects[info] = nil end end end self.map.th:updateShadows() end -- Register a function to be called whenever a room has been deactivated (crashed or edited). --!param callback (function) A function taking one argument: a `Room`. function World:registerRoomRemoveCallback(callback) self.room_remove_callbacks[callback] = true end -- Unregister a function from being called whenever a room has been deactivated (crashed or edited). --!param callback (function) A function previously passed to -- `registerRoomRemoveCallback`. function World:unregisterRoomRemoveCallback(callback) self.room_remove_callbacks[callback] = nil end function World:newRoom(x, y, w, h, room_info, ...) local id = #self.rooms + 1 -- Note: Room IDs will be unique, but they may not form continuous values -- from 1, as IDs of deleted rooms may not be re-issued for a while local class = room_info.class and _G[room_info.class] or Room local hospital = self:getHospital(x, y) local room = class(x, y, w, h, id, room_info, self, hospital, ...) self.rooms[id] = room self:clearCaches() return room end --! Called when a room has been completely built and is ready to use. --!param room (Room) The new room. function World:markRoomAsBuilt(room) room:roomFinished() local hosp = room.hospital local diag_disease = hosp.disease_casebook["diag_" .. room.room_info.id] if diag_disease and not diag_disease.discovered then hosp.disease_casebook["diag_" .. room.room_info.id].discovered = true end for _, entity in ipairs(self.entities) do if entity.notifyNewRoom then entity:notifyNewRoom(room) end end end --! Called when a room has been deactivated (crashed or edited) function World:notifyRoomRemoved(room) self.dispatcher:dropFromQueue(room) for callback in pairs(self.room_remove_callbacks) do callback(room) end end --! Clear all internal caches which are dependent upon map state / object position function World:clearCaches() self.idle_cache = {} end function World:initWallTypes() self.wall_id_by_block_id = {} for _, wall_type in ipairs(self.wall_types) do for _, set in ipairs({"inside_tiles", "outside_tiles", "window_tiles"}) do for _, id in pairs(wall_type[set]) do self.wall_id_by_block_id[id] = wall_type.id end end end self.wall_set_by_block_id = {} for _, wall_type in ipairs(self.wall_types) do for _, set in ipairs({"inside_tiles", "outside_tiles", "window_tiles"}) do for _, id in pairs(wall_type[set]) do self.wall_set_by_block_id[id] = set end end end self.wall_dir_by_block_id = {} for _, wall_type in ipairs(self.wall_types) do for _, set in ipairs({"inside_tiles", "outside_tiles", "window_tiles"}) do for name, id in pairs(wall_type[set]) do self.wall_dir_by_block_id[id] = name end end end end function World:getWallIdFromBlockId(block_id) -- Remove the transparency flag if present. if self.ui.transparent_walls then block_id = block_id - 1024 end return self.wall_id_by_block_id[block_id] end function World:getWallSetFromBlockId(block_id) -- Remove the transparency flag if present. if self.ui.transparent_walls then block_id = block_id - 1024 end return self.wall_set_by_block_id[block_id] end function World:getWallDirFromBlockId(block_id) -- Remove the transparency flag if present. if self.ui.transparent_walls then block_id = block_id - 1024 end return self.wall_dir_by_block_id[block_id] end -- Game speeds. The second value is the number of world clicks that pass for each -- in-game tick and the first is the number of hours to progress when this -- happens. local tick_rates = { ["Pause"] = {0, 1}, ["Slowest"] = {1, 56}, -- 1 hour per s ["Slower"] = {1, 12}, -- 1 hour per 216ms ["Normal"] = {1, 3}, -- 1 hour per 54 ms ["Max speed"] = {1, 2}, -- 1 hour per 36 ms ["And then some more"] = {1, 1}, -- 1 hour per 18ms ["Speed Up"] = {8, 1}, } function World:speedUp() self:setSpeed("Speed Up") end function World:previousSpeed() if self:isCurrentSpeed("Speed Up") then self:setSpeed(self.prev_speed) end end --! Return true if the given speed the same as the current speed. function World:isCurrentSpeed(speed) local hours_per_tick, tick_rate = unpack(tick_rates[speed]) return self.hours_per_tick == hours_per_tick and self.tick_rate == tick_rate end --! Return the name of the current speed, relating to a key in tick_rates. function World:getCurrentSpeed() for name, rate in pairs(tick_rates) do if rate[1] == self.hours_per_tick and rate[2] == self.tick_rate then return name end end end -- Set the (approximate) number of seconds per tick. --!param new_speed (string) New speed to set. -- One of: "Pause", "Slowest", "Slower", "Normal", -- "Max speed", or "And then some more". function World:setSpeed(new_speed) if self:isCurrentSpeed(new_speed) then return end if self:mustPause() and new_speed ~= "Pause" then return end -- "Must pause" takes precedence tracy.Message("Changing speed to " .. new_speed) if new_speed == "Pause" then self.ui.hospital:tickEarthquake("pause") end local old_speed = self:getCurrentSpeed() if old_speed ~= "Pause" and old_speed ~= "Speed Up" then self.prev_speed = old_speed end local was_paused = old_speed == "Pause" local old_tick_rate = self.tick_rate or 1 local new_hours_per_tick, new_tick_rate = unpack(tick_rates[new_speed]) if was_paused then TheApp.audio:onEndPause() self.tick_timer = new_tick_rate else self.tick_timer = math.ceil((self.tick_timer or 0) / old_tick_rate * new_tick_rate) end self.hours_per_tick = new_hours_per_tick self.tick_rate = new_tick_rate self:updateUserActionsAllowed() self:updateScreenBlueFilter() return false end function World:mustPauseWindowAdd() self:setSpeed("Pause") end function World:mustPauseWindowRemoved() if self:isCurrentSpeed("Pause") then self:pauseOrUnpause() end end --! Check if "Must Pause" mode enabled --!return (bool) returns true if "Must Pause" mode enabled function World:mustPause() return self.ui:anyMustPauseWindowOpen() end function World:isPaused() return self:isCurrentSpeed("Pause") end --! Set the "actions allowed" flag according to whether the user can do some actions with UI or not. function World:updateUserActionsAllowed() -- Actions are not allowed when the game in "Must Pause" mode. self.user_actions_allowed = not self:mustPause() and (not self:isCurrentSpeed("Pause") or TheApp.config.allow_user_actions_while_paused) end --! Set the blue filter according to whether the user can build or not. function World:updateScreenBlueFilter() TheApp.video:setBlueFilterActive(not self.user_actions_allowed and not self:mustPause()) end --! Dedicated function to allow unpausing by pressing 'p' again function World:pauseOrUnpause() if self:mustPause() then return end -- "Must Pause" takes precedence if not self:isCurrentSpeed("Pause") then self:setSpeed("Pause") elseif self.prev_speed then self:setSpeed(self.prev_speed) end end --! Function to check if player can perform actions when paused --!return (bool) Returns true if player hasn't allowed editing while paused function World:isUserActionProhibited() if self:mustPause() then return true end return self:isCurrentSpeed("Pause") and not self.user_actions_allowed end -- Outside (air) temperatures based on climate data for Oxford, taken from -- Wikipedia. For scaling, 0 degrees C becomes 0 and 50 degrees C becomes 1 local outside_temperatures = { 4.1 / 50, -- January 4.4 / 50, -- February 6.3 / 50, -- March 8.65 / 50, -- April 11.95 / 50, -- May 15 / 50, -- June 16.95 / 50, -- July 16.55 / 50, -- August 14.15 / 50, -- September 10.5 / 50, -- October 6.8 / 50, -- November 4.75 / 50, -- December } local start_date = Date() --! World ticks (every 18ms) are translated to game ticks (or hours) depending -- on the current speed of the game. There are 50 hours in a TH day. function World:onTick() if self.map.level_number == "MAP EDITOR" then return end if self.tick_timer == 0 then if self.autosave_next_tick then self:_executeAutosave() self.autosave_next_tick = false end if self.game_date == start_date then if not self.ui.start_tutorial then self.ui:addWindow(UIWatch(self.ui, "initial_opening")) end self.ui:showBriefing() end self.tick_timer = self.tick_rate -- If the game is not paused then an earthquake may be taking place if not self:isCurrentSpeed("Pause") then self.earthquake:tick() end local new_game_date = self.game_date:plusHours(self.hours_per_tick) -- End of day/month/year if self.game_date:dayOfMonth() ~= new_game_date:dayOfMonth() then for _, hospital in ipairs(self.hospitals) do hospital:onEndDay() end self:onEndDay() if self.game_date:isLastDayOfMonth() then for _, hospital in ipairs(self.hospitals) do hospital:onEndMonth() end -- Let the hospitals do what they need to do at end of month first. if self:onEndMonth() then -- Bail out as the game has already been ended. return end if self.game_date:isLastDayOfYear() then -- It is crucial that the annual report gets to initialize before onEndYear is called. -- Yearly statistics are reset there. self.ui:addWindow(UIAnnualReport(self.ui, self)) self:onEndYear() end end end self.game_date = new_game_date for i = 1, self.hours_per_tick do self.anims:tick() for _, hospital in ipairs(self.hospitals) do hospital:tick() end -- A patient might arrive to the player hospital. -- TODO: Multiplayer support. local spawn_count = self.spawn_hours[self.game_date:hourOfDay() + i - 1] if spawn_count and self.hospitals[1].opened then for _ = 1, spawn_count do self:spawnPatient() end end for _, entity in ipairs(self.entities) do if entity.ticks then self.current_tick_entity = entity entity:tick() end end self.current_tick_entity = nil self.map:onTick() self.map.th:updateTemperatures(outside_temperatures[self.game_date:monthOfYear()], 0.25 + self.hospitals[1].heating.radiator_heat * 0.3) if self.ui then self.ui:onWorldTick() end self.dispatcher:onTick() end end if self.hours_per_tick > 0 and self.floating_dollars then for obj in pairs(self.floating_dollars) do obj:tick() if obj:isDead() then obj:setTile(nil) self.floating_dollars[obj] = nil end end end self.tick_timer = self.tick_timer - 1 end --! Creates a save file in the "Autosaves" folder, using the "Autosave-mm-dd.sav" name template for filename. -- If the "Autosaves" folder does not exist, folder will be created. function World:_executeAutosave() local pathsep = package.config:sub(1, 1) local dir = TheApp.savegame_dir if dir:sub(-1, -1) ~= pathsep then dir = dir .. pathsep end if not lfs.attributes(dir .. "Autosaves", "modification") then lfs.mkdir(dir .. "Autosaves") end local month = string.format("%02d", self.game_date:monthOfYear()) local day = string.format("%02d", self.game_date:dayOfMonth()) local filename = "Autosave" .. "-" .. month .. "-" .. day .. ".sav" local status, err = pcall(TheApp.save, TheApp, dir .. "Autosaves" .. pathsep .. filename) if not status then print("Error while autosaving game: " .. err) end end --! Change the date of the game to the last hour of this month. function World:setEndMonth() local previous_date = self.game_date local first_day_of_next_month = Date(self.game_date:year(), self.game_date:monthOfYear() + 1) self.game_date = first_day_of_next_month:plusHours(-1) -- Has the date jump caused an emergency to be missed? if self:wasEmergencySkipped(previous_date, self.game_date) then self:nextEmergency() end end --! Change the date of the game to the last hour of this year. function World:setEndYear() local previous_date = self.game_date local first_day_of_next_year = Date(self.game_date:year() + 1) self.game_date = first_day_of_next_year:plusHours(-1) -- Has the date jump caused an emergency to be missed? if self:wasEmergencySkipped(previous_date, self.game_date) then self:nextEmergency() end end --! Checks if a time jump caused an emergency to be missed --!param prev_date (Date) Original game date before jump --!param new_date (Date) Game date after time jump --!return (boolean) true if emergency has been skipped function World:wasEmergencySkipped(prev_date, new_date) local emer_date = self.next_emergency_date return emer_date and emer_date < new_date and prev_date < emer_date end -- Called immediately prior to the ingame day changing. function World:onEndDay() local local_hospital = self:getLocalPlayerHospital() for _, entity in ipairs(self.entities) do if entity.ticks and class.is(entity, Humanoid) then self.current_tick_entity = entity entity:tickDay() elseif class.is(entity, Plant) then entity:tickDay() end end self.current_tick_entity = nil --check if it's time for a VIP visit if self.game_date:isSameDay(self.next_vip_date) then if #self.rooms > 0 and local_hospital:hasReceptionDesk(true) then local_hospital:createVip() else self.next_vip_date = self:_generateNextVipDate() end end -- See if its time for an earthquake self.earthquake:onEndDay() -- Maybe it's time for an emergency? if self.game_date:monthOfGame() == self.next_emergency_month and self.game_date:dayOfMonth() == self.next_emergency_day then -- Postpone it if anything clock related is already underway. if self.ui:getWindow(UIWatch) then self.next_emergency_month = self.next_emergency_month + 1 local month_of_year = 1 + ((self.next_emergency_month - 1) % 12) self.next_emergency_day = math.random(1, Date(1, month_of_year):lastDayOfMonth()) else -- Do it only for the player hospital for now. TODO: Multiplayer local control = self.map.level_config.emergency_control if control[0].Mean or control[0].Random then -- The level uses random emergencies, so just create one. local_hospital:createEmergency() else local next_em = self.next_emergency -- Find out which disease the emergency patients have. local disease for _, dis in ipairs(self.available_diseases) do if dis.expertise_id == next_em.Illness then disease = dis break end end if not disease then -- Unknown disease! Create a random one instead. local_hospital:createEmergency() else local emergency = { disease = disease, victims = math.random(next_em.Min, next_em.Max), bonus = next_em.Bonus, percentage = next_em.PercWin/100, killed_emergency_patients = 0, cured_emergency_patients = 0, } local_hospital:createEmergency(emergency) end end end end -- Any patients tomorrow? self.spawn_hours = {} local day = self.game_date:dayOfMonth() if self.spawn_dates[day] then for _ = 1, self.spawn_dates[day] do local hour = math.random(1, Date.hoursPerDay()) self.spawn_hours[hour] = self.spawn_hours[hour] and self.spawn_hours[hour] + 1 or 1 end end -- Autosave if self.app.config.autosave_frequency == 3 then -- Daily autosave self.autosave_next_tick = true elseif self.app.config.autosave_frequency == 2 then if day == self.game_date:lastDayOfMonth() or day == 6 or day == 13 or day == 20 or day == 27 then -- Weekly autosave self.autosave_next_tick = true end elseif self.app.config.autosave_frequency == 1 then if day == self.game_date:lastDayOfMonth() then -- Monthly autosave self.autosave_next_tick = true end end end function World:checkIfGameWon() for i, hosp in ipairs(self.hospitals) do if self.endconditions:checkEndGame(hosp) == "win" then self:winGame(i) end end end -- Called immediately prior to the ingame month changing. -- returns true if the game was killed due to the player losing function World:onEndMonth() local local_hospital = self:getLocalPlayerHospital() local_hospital.population = 0.25 if self.game_date:monthOfGame() >= self.map.level_config.gbv.AllocDelay then local_hospital.population = local_hospital.population * self:getReputationImpact(local_hospital) end -- Also possibly change world spawn rate according to the level configuration. local index = 0 local popn = self.map.level_config.popn while popn[index] do if popn[index].Month == self.game_date:monthOfGame() then self.monthly_spawn_increase = popn[index].Change break end index = index + 1 end -- Now set the new spawn rate self.spawn_rate = self.spawn_rate + self.monthly_spawn_increase self:updateSpawnDates() self:makeAvailableStaff(self.game_date:monthOfGame()) for _, entity in ipairs(self.entities) do if entity.checkForDeadlock then self.current_tick_entity = entity entity:checkForDeadlock() end end self.current_tick_entity = nil end -- Called when a month ends. Decides on which dates patients arrive -- during the coming month. -- TODO: Requires adjustment for AIHospital spawns; see PR 1986 for progress. function World:updateSpawnDates() local local_hospital = self:getLocalPlayerHospital() -- Decide on number of visitors local no_of_spawns = self.spawn_rate * local_hospital.population -- If Roujin's Challenge is on, add a fixed bonus to the spawn pool for this player. if local_hospital.hosp_cheats:isCheatActive("spawn_rate_cheat") then local roujin_bonus = 40 no_of_spawns = no_of_spawns + roujin_bonus end -- Compute expected number of patients that arrive while forcing an arrival -- if feasible. self.spawn_dates = {} if local_hospital.population > 0 then local day, last_day = 1, self.game_date:lastDayOfMonth() local force_arrival = true -- Ensure a patient arrives. local interval = last_day / no_of_spawns -- Lower interval = more visits. while day <= last_day do local x = math.p_random(interval) day = day + x if day <= last_day then local count = self.spawn_dates[day] self.spawn_dates[day] = count and count + 1 or 1 force_arrival = false end end -- Give the poor user a patient this month anyway. if force_arrival then self.spawn_dates[math.floor(1 + math.random() * last_day)] = 1 end end end --! Computes the impact of hospital reputation on the spawn rate. --! The relation between reputation and its impact is linear. --! Returns a percentage (as a float): --! 1% if reputation < 253 --! 60% if reputation == 400 --! 100% if reputation == 500 --! 140% if reputation == 600 --! 180% if reputation == 700 --! 300% if reputation == 1000 --!param hospital (hospital): the hospital used to compute the --! reputation impact function World:getReputationImpact(hospital) local result = 1 + ((hospital.reputation - 500) / 250) -- The result must be positive if result <= 0 then return 0.01 else return result end end -- Called when it is time to determine when the next emergency should happen function World:nextEmergency() local control = self.map.level_config.emergency_control -- Does this level use random emergencies? if control[0].Random or control[0].Mean then self:scheduleRandomEmergency(control) return end -- Find the next valid emergency entry local valid_emergency = false while not valid_emergency do local emer_num = self.next_emergency_no -- First, handle the missing Level 3 emergency[5] if not control[emer_num] and control[emer_num + 1] then emer_num = emer_num + 1 self.next_emergency_no = emer_num end local emergency = control[emer_num] -- No more emergencies? if not emergency then self.next_emergency_month = 0 self.next_emergency_date = nil self.next_emergency = nil return end -- Test the emergency's validity self.next_emergency = emergency self.next_emergency_no = self.next_emergency_no + 1 valid_emergency = self:computeNextEmergencyDates(emergency) end end --! If a level file specifies random emergencies we make the next one as defined by the mean/variance given --!param control (table) Contains emergency information from level file function World:scheduleRandomEmergency(control) -- Support standard values for mean and variance local mean = control[0].Mean or 180 local variance = control[0].Variance or 30 -- How many days until next emergency? local days = math.round(math.n_random(mean, variance)) days = days > 1 and days or 1 -- Don't schedule in the past local emergency_date = self.game_date:plusDays(days) -- Make it the same format as for "controlled" emergencies self.next_emergency_month = emergency_date:monthOfGame() self.next_emergency_day = emergency_date:dayOfMonth() self.next_emergency_date = Date(1, self.next_emergency_month, self.next_emergency_day) -- TODO: Make more use of this end --! Generate the dates for the next emergency --!param emergency The next scheduled emergency to take place --!return (boolean) true if emergency successfully scheduled function World:computeNextEmergencyDates(emergency) -- Generate the next month and day the emergency should occur at. -- Make sure it doesn't happen in the past. local start = math.max(emergency.StartMonth, self.game_date:monthOfGame()) if (emergency.EndMonth < start) then return false end local next_month = math.random(start, emergency.EndMonth) self.next_emergency_month = next_month local day_start = 1 if start == emergency.EndMonth then day_start = self.game_date:dayOfMonth() end local day_end = Date(1, next_month):lastDayOfMonth() self.next_emergency_day = math.random(day_start, day_end) self.next_emergency_date = Date(1, self.next_emergency_month, self.next_emergency_day) -- TODO: Make more use of this return self.game_date <= self.next_emergency_date end -- Called when it is time to have another VIP function World:nextVip() self.next_vip_date = self:_generateNextVipDate() end -- PRIVATE method to generate the next VIP date -- Note: it is important we ensure this date always is in the future function World:_generateNextVipDate() -- Support standard values for mean and bound local mean, bound = math.max(self.map.level_config.gbv.MayorLaunch, 1), 30 -- How many days until next vip? local lower, upper = math.max(mean - bound, 1), mean + bound local days = math.round(math.t_random(lower, mean, upper)) return self.game_date:plusDays(days) end --! Process that the given player number won the game. --!param player_no (integer) Number of the player who just won. function World:winGame(player_no) if player_no == 1 then -- Player won. TODO: Needs to be changed for multiplayer local text = {} local choice_text, choice local bonus_rate = math.random(4,9) local with_bonus = self.ui.hospital.cheated and 0 or (self.ui.hospital.player_salary * bonus_rate) / 100 self.ui.hospital.salary_offer = math.floor(self.ui.hospital.player_salary + with_bonus) if self:isCampaign() then text, choice_text, choice = self:getCampaignWinningText(player_no) else local level_info = TheApp:readLevelFile(self.map.level_number) text[1] = _S.letter.dear_player:format(self.hospitals[player_no].name) text[2] = level_info.end_praise and level_info.end_praise or _S.letter.custom_level_completed text[3] = _S.letter.return_to_main_menu choice_text = _S.fax.choices.return_to_main_menu choice = "return_to_main_menu" end local message = { {text = text[1]}, {text = text[2]}, {text = text[3]}, choices = { {text = choice_text, choice = choice}, {text = _S.fax.choices.decline_new_level, choice = "stay_on_level"}, }, } local --[[persistable:world_win_game_message_close_callback]] function callback () local world = self.ui.app.world if world then world.hospitals[player_no].game_won = false if world:isCurrentSpeed("Pause") then world:setSpeed(world.prev_speed) end end end self.hospitals[player_no].game_won = true self:previousSpeed() self.ui.bottom_panel:queueMessage("information", message, nil, 0, 2, callback) self.ui.bottom_panel:openLastMessage() end end --! Finds what text the winning fax should contain, and which choices the player has. --!param player_no (integer) Which player that will see the message. --!return (string, string, string) Text to show in the fax, text that accompanies --! the "continue"-choice the player has, and whether it is the "return_to_main_menu" --! choice or the "accept_new_level" choice. function World:getCampaignWinningText(player_no) local text = {} local choice_text, choice local hosp = self:getLocalPlayerHospital() local repeated_offer = hosp.win_declined local has_next = false if type(self.map.level_number) == "number" then local no = tonumber(self.map.level_number) has_next = no < 12 and not TheApp.using_demo_files -- Standard letters 1-4: normal -- Standard letters 5-8: repeated offer -- Standard letters 9-12: last level local letter_idx = math.random(1, 4) + (not has_next and 8 or repeated_offer and 4 or 0) for key, value in ipairs(_S.letter[letter_idx]) do text[key] = value end text[1] = text[1]:format(self.hospitals[player_no].name) text[2] = text[2]:format(self.hospitals[player_no].salary_offer) text[3] = text[3]:format(_S.level_names[self.map.level_number + 1]) else local campaign_info = self.campaign_info local next_level_name, next_level_info if campaign_info then for i, level in ipairs(campaign_info.levels) do local filename = self.map.level_filename or self.map.level_number if filename == level then has_next = i < #campaign_info.levels if has_next then next_level_info = TheApp:readLevelFile(campaign_info.levels[i + 1], campaign_info.folder) if not next_level_info then return {_S.letter.campaign_level_missing:format(campaign_info.levels[i + 1]), "", ""}, _S.fax.choices.return_to_main_menu, "return_to_main_menu" end next_level_name = next_level_info.name end break end end end local level_info = TheApp:readLevelFile(self.map.level_filename or self.map.level_number, campaign_info.folder) text[1] = _S.letter.dear_player:format(self.hospitals[player_no].name) if has_next then if level_info and level_info.end_praise then text[2] = level_info.end_praise:format(next_level_name) else text[2] = _S.letter.campaign_level_completed:format(next_level_name) end else text[2] = campaign_info.winning_text and campaign_info.winning_text or _S.letter.campaign_completed end text[3] = "" end if has_next then choice_text = _S.fax.choices.accept_new_level choice = "accept_new_level" else choice_text = _S.fax.choices.return_to_main_menu choice = "return_to_main_menu" end return text, choice_text, choice end --! Cause the player with the player number player_no to lose. --!param player_no (number) The number of the player which should lose. --!param reason (string) [optional] The name of the criterion the player lost to. --!param limit (number) [optional] The number the player went over/under which caused him to lose. function World:loseGame(player_no, reason, limit) if player_no == 1 then -- TODO: Multiplayer self.ui.app.moviePlayer:playLoseMovie() local message = {_S.information.level_lost[1]} if reason then message[2] = _S.information.level_lost[2] message[3] = _S.information.level_lost[reason]:format(limit) else message[2] = _S.information.level_lost["cheat"] end self.ui.app:loadMainMenu(message) end end -- Called immediately prior to the ingame year changing. function World:onEndYear() for _, hospital in ipairs(self.hospitals) do hospital:onEndYear() end -- This is done here instead of in onEndMonth so that the player gets -- the chance to receive money or reputation from trophies and awards first. for i, hosp in ipairs(self.hospitals) do local reason, limit = self.endconditions:checkEndGame(hosp) if limit then self:loseGame(i, reason, limit) if i == 1 then return true end end end end -- Calculate the distance of the shortest path (along passable tiles) between -- the two given map tiles. This operation is commutative (swapping (x1, y1) -- with (x2, y2) has no effect on the result) if both tiles are passable. --!param x1 (integer) X-cordinate of first tile's Lua tile coordinates. --!param y1 (integer) Y-cordinate of first tile's Lua tile coordinates. --!param x2 (integer) X-cordinate of second tile's Lua tile coordinates. --!param y2 (integer) Y-cordinate of second tile's Lua tile coordinates. --!return (integer, boolean) The distance of the shortest path, or false if -- there is no path. function World:getPathDistance(x1, y1, x2, y2) return self.pathfinder:findDistance(x1, y1, x2, y2) end function World:getPath(x, y, dest_x, dest_y) return self.pathfinder:findPath(x, y, dest_x, dest_y) end -- Find an tile for idling. -- !param x X coordinate of the queue position. -- !param y Y coordinate of the queue position. -- !param idx Randomization factor for the idle tile, returns Nth candidate tile. -- !param parcel_id Optional parcel of the indoor returned idling tile. -- !return Position of an idle tile if it exists. function World:getIdleTile(x, y, idx, parcel_id) local cache_idx = (y - 1) * self.map.width + x local cache = self.idle_cache[cache_idx] if not cache then cache = { x = {}, y = {}, } self.idle_cache[cache_idx] = cache end if not cache.x[idx] then local ix, iy = self.pathfinder:findIdleTile(x, y, idx, parcel_id or 0) if not ix then return ix, iy end cache.x[idx] = ix cache.y[idx] = iy end return cache.x[idx], cache.y[idx] end --[[ This function checks if a tile has no entity on it and (optionally) if it is not in a room. !param x (integer) the queried tile's x coordinate. !param y (integer) the queried tile's y coordinate. !param not_in_room (boolean) If set, also check the tile is not in a room. !return (boolean) whether all checks hold. --]] function World:isTileEmpty(x, y, not_in_room) if self:atLeastOneHumanoidLocatedAtTile(x, y) or self:atLeastOneObjectLocatedAtTile(x, y) then return false end if not_in_room then return self:getRoom(x, y) == nil end return true end --! Checks if any object is located on a tile. --!param x (integer) the queried tile's x coordinate. --!param y (integer) the queried tile's y coordinate. --!return (boolean) true if any object is located on a tile. function World:atLeastOneObjectLocatedAtTile(x, y) return #self.entity_map:getObjectsAtCoordinate(x, y) ~= 0 end --! Checks if any humanoid is located on a tile. --!param x (integer) the queried tile's x coordinate. --!param y (integer) the queried tile's y coordinate. --!return (boolean) true if any humanoid is located on a tile. function World:atLeastOneHumanoidLocatedAtTile(x, y) return #self.entity_map:getHumanoidsAtCoordinate(x, y) ~= 0 end --! Сhecks whether a tile is occupied by any humanoid. --!param x (integer) the queried tile's x coordinate. --!param y (integer) the queried tile's y coordinate. --!return (boolean) true if any humanoid is occupy the tile. function World:anyHumanoidObscuringArea(x, y) -- Search for humanoids on the given tile and all neighboring tiles, but not diagonal ones local humanoids = self.entity_map:getHumanoidsInSquareAndInAdjacentSquares(x, y) for _, humanoid in ipairs(humanoids) do if humanoid:isObscuringArea(x - 1, x + 1, y - 1, y + 1) then return true end end return false end function World:getFreeBench(x, y, distance) local bench, rx, ry, bench_distance local object_type = self.object_types.bench x, y, distance = math.floor(x), math.floor(y), math.ceil(distance) self.pathfinder:findObject(x, y, object_type.thob, distance, function(xpos, ypos, d, dist) local b = self:getObject(xpos, ypos, "bench", true) if b and not b.user and not b.reserved_for and not b.picked_up then local orientation = object_type.orientations[b.direction] if orientation.pathfind_allowed_dirs[d] then rx = xpos + orientation.use_position[1] ry = ypos + orientation.use_position[2] bench = b bench_distance = dist return true end end end) return bench, rx, ry, bench_distance end --! Checks whether the given tile is part of a nearby object (walkable tiles -- count as part of the object) --!param x X position of the given tile. --!param y Y position of the given tile. --!param distance The number of tiles away from the tile to search. --!return (boolean) Whether the tile is part of a nearby object. function World:isTilePartOfNearbyObject(x, y, distance) for o in pairs(self:findAllObjectsNear(x, y, distance)) do for _, xy in ipairs(o:getWalkableTiles()) do if xy[1] == x and xy[2] == y then return true end end end return false end -- Returns a set of all objects near the given position but if supplied only of the given object type. --!param x The x-coordinate at which to originate the search --!param y The y-coordinate --!param distance The number of tiles away from the origin to search --!param object_type_name The name of the objects that are being searched for function World:findAllObjectsNear(x, y, distance, object_type_name) if not distance then -- Note that regardless of distance, only the room which the humanoid is in -- is searched (or the corridor if the humanoid is not in a room). distance = 2^30 end local objects = {} local thob = 0 if object_type_name then local obj_type = self.object_types[object_type_name] if not obj_type then error("Invalid object type name: " .. object_type_name) end thob = obj_type.thob end local callback = function(xpos, ypos) local obj = self:getObject(xpos, ypos, object_type_name) if obj then objects[obj] = true end end self.pathfinder:findObject(x, y, thob, distance, callback) return objects end --[[ Find all objects of the given type near the humanoid. Note that regardless of distance, only the room which the humanoid is in is searched (or the corridor if the humanoid is not in a room). When no callback is specified then the first object found is returned, along with its usage tile position. This may return an object already being used - if you want to find an object not in use (in order to use it), then call findFreeObjectNearToUse instead. !param humanoid The humanoid to search around !param object_type_name The objects to search for !param distance Maximum L1 distance to search from humanoid. If nil then everywhere in range will be searched. !param only_usable Bool If true the object must be permitted for use !param callback Function to call for each result. If it returns true then the search will be ended. --]] function World:findObjectNear(humanoid, object_type_name, distance, only_usable, callback) if not distance then distance = 2^30 end local obj, ox, oy if not callback then -- The default callback returns the first object found callback = function(x, y, d) obj = self:getObject(x, y, object_type_name, only_usable) if obj then local orientation = obj.object_type.orientations if orientation then orientation = orientation[obj.direction] if not orientation.pathfind_allowed_dirs[d] then return end x = x + orientation.use_position[1] y = y + orientation.use_position[2] end ox = x oy = y return true end end end local thob = 0 if type(object_type_name) == "table" then local original_callback = callback callback = function(x, y, ...) local cb_obj = self:getObject(x, y, object_type_name, only_usable) if cb_obj then return original_callback(x, y, ...) end end elseif object_type_name ~= nil then local obj_type = self.object_types[object_type_name] if not obj_type then error("Invalid object type name: " .. object_type_name) end thob = obj_type.thob end self.pathfinder:findObject(humanoid.tile_x, humanoid.tile_y, thob, distance, callback) -- These return values are only relevant for the default callback - are nil -- for custom callbacks return obj, ox, oy end function World:findFreeObjectNearToUse(humanoid, object_type_name, which, current_object) -- If which == nil or false, then the nearest object is taken. -- If which == "far", then the furthest object is taken. -- If which == "near", then the nearest object is taken with 50% probability, the second nearest with 25%, and so on -- Other values for which may be added in the future. -- Specify current_object if you want to exclude the currently used object from the search local object, ox, oy self:findObjectNear(humanoid, object_type_name, nil, true, function(x, y, d) local obj = self:getObject(x, y, object_type_name) if obj.user or obj.picked_up or (obj.reserved_for and obj.reserved_for ~= humanoid) or (current_object and obj == current_object) then return end local orientation = obj.object_type.orientations if orientation then orientation = orientation[obj.direction] if not orientation.pathfind_allowed_dirs[d] then return end x = x + orientation.use_position[1] y = y + orientation.use_position[2] end object = obj ox = x oy = y if which == "far" then -- luacheck: ignore 542 -- just take the last found object, so don't ever abort elseif which == "near" then -- abort at each item with 50% probability local chance = math.random(1, 2) if chance == 1 then return true end else -- default: return at the first found item return true end end) return object, ox, oy end --! Finds the most desirable room of a given room type for the provided humanoid. --!param humanoid The queried NPC (start point) --!param room_type_id (string) The room we are looking for --!param max_distance (number) The maximum distance away a room will be considered from the humanoid --!param mode (string) "nearest"/nil returns the nearest room, while --! "advanced" prefers a near room but also takes into account queue size/staffing --!return The best room for the huamnoid or nil if no room exists within the maximum distance function World:findRoomNear(humanoid, room_type_id, max_distance, mode) assert(type(room_type_id) == "string", "Room type id given is not a string!") local room local score if not mode then mode = "nearest" -- default mode end if not max_distance then max_distance = 2^30 end for _, r in pairs(self.rooms) do if r.built and r.room_info.id == room_type_id and r.is_active then local x, y = r:getEntranceXY(false) local d = self:getPathDistance(humanoid.tile_x, humanoid.tile_y, x, y) if d and d <= max_distance then local this_score = d if mode == "advanced" then this_score = this_score + r:getUsageScore() end if not score or this_score < score then score = this_score room = r end end end end return room end --! Setup an animated floating money amount above a patient. --!param patient Patient to float above. --!param amount Amount of money to display. function World:newFloatingDollarSign(patient, amount) if self.free_build_mode or patient.hospital ~= self:getLocalPlayerHospital() then return end if not self.floating_dollars then self.floating_dollars = {} end local spritelist = TH.spriteList() spritelist:setPosition(-17, -60) spritelist:setSpeed(0, -1):setLifetime(100) spritelist:setSheet(TheApp.gfx:loadSpriteTable("Data", "Money01V")) spritelist:setUseIntermediateBuffer() spritelist:append(1, 0, 0) local len = #("%i"):format(amount) local xbase = math.floor(10.5 + (20 - 5 * len) / 2) for i = 1, len do local digit = amount % 10 amount = (amount - digit) / 10 spritelist:append(2 + digit, xbase + 5 * (len - i), 5) end spritelist:setTile(self.map.th, patient.tile_x, patient.tile_y, DrawingLayers.FloatingDollars) self.floating_dollars[spritelist] = true end --! Create a new entity. --!param class Class to use for the new entity. --!param animation (int)Initial animation to use. --!param mood_marker (int) Whether to use the first (default), or the second marker. function World:newEntity(class, animation, mood_marker) mood_marker = mood_marker and mood_marker or 1 assert(mood_marker == 1 or mood_marker == 2, "mood_marker is neither 1 nor 2.") local th = TH.animation() th:setAnimation(self.anims, animation) local entity = _G[class](th) if not table_contains(self.entities, entity) then self.entities[#self.entities + 1] = entity end entity.world = self entity.mood_marker = mood_marker return entity end function World:destroyEntity(entity) for i, e in ipairs(self.entities) do if e == entity then table.remove(self.entities, i) break end end entity:onDestroy() end function World:newObjectType(new_object) self.object_types[new_object.id] = new_object end --! Creates a new object by finding the object_type from the "id" variable and -- calls its class constructor. --!param id (string) The unique id of the object to be created. --!param x X position of the new object. --!param y Y position of the new object. --!param flags Flags of the new object. --!param name Name of the new object. --!return The created object. function World:newObject(id, x, y, flags, name) local object_type = self.object_types[id] local hospital = self:getLocalPlayerHospital() local entity if object_type.class then entity = _G[object_type.class](hospital, object_type, x, y, flags, name) elseif object_type.default_strength then entity = Machine(hospital, object_type, x, y, flags, name) -- Tell the player if there is no handyman to take care of the new machinery. if hospital:countStaffOfCategory("Handyman", 1) == 0 then hospital:giveAdvice({_A.staff_advice.need_handyman_machines}) end else entity = Object(hospital, object_type, x, y, flags, name) end self:objectPlaced(entity, id) return entity end -- Checks whether object can be spawned at some coordinates. -- For example, when searching for a suitable placement for "gates_to_hell". -- 'NonSideObject' is a object that do occupy the tile entirely, not only one side of it. function World:canNonSideObjectBeSpawnedAt(x, y, objects_id, orientation, spawn_rooms_id, player_id) local object = self.object_types[objects_id] local objects_footprint = object.orientations[orientation].footprint for _, tile in ipairs(objects_footprint) do local tiles_world_x = x + tile[1] local tiles_world_y = y + tile[2] if not self:isOnMap(tiles_world_x, tiles_world_y) then return false end if not self:willObjectsFootprintTileBeWithinItsAllowedRoomIfLocatedAt(x, y, object, spawn_rooms_id).within_room then return false end if not self:isFootprintTileBuildableOrPassable(x, y, tile, objects_footprint, "buildable", player_id) then return false end end return not self:wouldNonSideObjectBreakPathfindingIfSpawnedAt(x, y, object, orientation, spawn_rooms_id) end --! Test whether the given coordinate is on the map. --!param x (int) X position of the coordinate to test. --!param y (int) Y position of the coordinate to test. --!return (boolean) Whether the provided position is on the map. function World:isOnMap(x, y) return x >= 1 and x <= self.map.width and y >= 1 and y <= self.map.height end --- -- @param allowed_rooms_id_parameter Should be nil when the object is allowed to be placed in any room. -- @return {within_room, roomId} --- function World:willObjectsFootprintTileBeWithinItsAllowedRoomIfLocatedAt(x, y, object, allowed_rooms_id_parameter) local xy_rooms_id = self.map.th:getCellFlags(x, y, {}).roomId if allowed_rooms_id_parameter then return {within_room = allowed_rooms_id_parameter == xy_rooms_id, roomId = allowed_rooms_id_parameter} elseif xy_rooms_id == 0 then return {within_room = object.corridor_object ~= nil, roomId = xy_rooms_id} else for _, additional_objects_name in pairs(self.rooms[xy_rooms_id].room_info.objects_additional) do if TheApp.objects[additional_objects_name].thob == object.thob then return {within_room = true, roomId = xy_rooms_id} end end for needed_objects_name, _ in pairs(self.rooms[xy_rooms_id].room_info.objects_needed) do if TheApp.objects[needed_objects_name].thob == object.thob then return {within_room = true, roomId = xy_rooms_id} end end return {within_room = false, roomId = xy_rooms_id} end end --- -- A footprint tile will either need to be buildable or passable so this function -- checks if its buildable/passable using the tile's appropriate flag and then returns this -- flag's boolean value or false if the tile isn't valid. --- function World:isFootprintTileBuildableOrPassable(x, y, tile, footprint, requirement_flag, player_id) local function isTileValid(xpos, ypos, complete_cell, flags, flag_name, need_side) if complete_cell or need_side then return flags[flag_name] end for _, fp_tile in ipairs(footprint) do if fp_tile[1] == xpos and fp_tile[2] == ypos then return flags[flag_name] end end return true end local direction_parameters = { north = { x = 0, y = -1, buildable_flag = "buildableNorth", passable_flag = "travelNorth", needed_side = "need_north_side"}, east = { x = 1, y = 0, buildable_flag = "buildableEast", passable_flag = "travelEast", needed_side = "need_east_side"}, south = { x = 0, y = 1, buildable_flag = "buildableSouth", passable_flag = "travelSouth", needed_side = "need_south_side"}, west = { x = -1, y = 0, buildable_flag = "buildableWest", passable_flag = "travelWest", needed_side = "need_west_side"} } local flags = {} local requirement_met = self.map.th:getCellFlags(x, y, flags)[requirement_flag] and (player_id == 0 or player_id == flags.owner) if requirement_met then -- For each direction check that the tile is valid: for _, direction in pairs(direction_parameters) do local x1, y1 = tile[1] + direction["x"], tile[2] + direction["y"] if not isTileValid(x1, y1, tile.complete_cell, flags, direction["buildable_flag"], tile[direction["needed_side"]]) then return false end end return true else return false end end --! Check that pathfinding still works, i.e. that placing the object --! wouldn't disconnect one part of the hospital from another. To do --! this, we provisionally mark the footprint as unpassable (as it will --! become when the object is placed), and then check that the cells --! surrounding the footprint have not had their connectedness changed. --!param x (integer) target tile x coordinate. --!param y (integer) target tile y coordinate. --!param object (object) target object for placing. --!param objects_orientation (table) object orientations description with footprints. --!param room_id (integer) target room for placing the object. --!return (bool) will this placement break path finding. function World:wouldNonSideObjectBreakPathfindingIfSpawnedAt(x, y, object, objects_orientation, room_id) local objects_footprint = object.orientations[objects_orientation].footprint local map = self.map.th local function setFootprintTilesPassable(passable) for _, tile in ipairs(objects_footprint) do if not tile.only_passable then map:setCellFlags(x + tile[1], y + tile[2], {passable = passable}) end end end local function isIsolated(xpos, ypos) setFootprintTilesPassable(false) local result = not self.pathfinder:isReachableFromHospital(xpos, ypos) setFootprintTilesPassable(true) return result end local pathfinding_success = true --1. Find out which footprint tiles are passable now before this function makes some unpassable --during its test: local tiles_passable_flags = {} for _, tile in ipairs(objects_footprint) do table.insert(tiles_passable_flags, map:getCellFlags(x + tile[1], y + tile[2], {}).passable) end --2. Find out which tiles adjacent to the footprint would become isolated: setFootprintTilesPassable(false) local prev_x, prev_y for _, tile in ipairs(object.orientations[objects_orientation].adjacent_to_solid_footprint) do local xpos = x + tile[1] local ypos = y + tile[2] local flags = {} if map:getCellFlags(xpos, ypos, flags).roomId == room_id and flags.passable then if prev_x then if not self.pathfinder:findDistance(xpos, ypos, prev_x, prev_y) then -- There is no route between the two map nodes. In most cases, -- this means that connectedness has changed, though there is -- one rare situation where the above test is insufficient. If -- (xpos, ypos) is a passable but isolated node outside the hospital -- and (prev_x, prev_y) is in the corridor, then the two will -- not be connected now, but critically, neither were they -- connected before. if not isIsolated(xpos, ypos) then if not isIsolated(prev_x, prev_y) then pathfinding_success = false break end else xpos = prev_x ypos = prev_y end end end prev_x = xpos prev_y = ypos end end -- 3. For each footprint tile passable flag set to false by step 2 undo this change: for tiles_index, tile in ipairs(objects_footprint) do map:setCellFlags(x + tile[1], y + tile[2], {passable = tiles_passable_flags[tiles_index]}) end return not pathfinding_success end --! Check that pathfinding between object and room door still works, --! i.e. that placing the object wouldn't disconnect it from the world. --! For that it mark the footprint as unpassable (as it will --! become when the object is placed), and then check that the --! "use_position" cells have path to the room door. --!param object_x (integer) target tile x coordinate. --!param object_y (integer) target tile y coordinate. --!param room (object) target room for placing the object. --!param object_layout (table) object orientation description with footprint. --!return (bool) will this placement break path finding. function World:wouldNonSideObjectsNotHaveAccessToRoomDoor(object_x, object_y, room, object_layout) if not room.door or not room.door.tile_x or not room.door.tile_y then return true end local door_x, door_y = room:getEntranceXY(true) local object_footprint = object_layout.footprint local map = self.map.th -- To switch the tiles passability local function setFootprintTilesPassable(passable) for _, tile in ipairs(object_footprint) do if not tile.only_passable then map:setCellFlags(object_x + tile[1], object_y + tile[2], {passable = passable}) end end end local function _isIsolated(tile_x, tile_y, poi_x, poi_y) -- Make footprint tiles unpassable except only_passable ones setFootprintTilesPassable(false) -- And check is there is a valid path local getPathDistance = self:getPathDistance(tile_x, tile_y, poi_x, poi_y) setFootprintTilesPassable(true) -- Let's also check that there is a path even without the footprint apply. -- This will help to avoid cases where the path starts on an inaccessible tile. -- For some reason, "getPathDistance" successfully constructs a path from inaccessible tiles. -- So filtering such cases there. getPathDistance = getPathDistance and self:getPathDistance(tile_x, tile_y, poi_x, poi_y) return not getPathDistance end -- 1. Let's simulate it as if we've already placed the object and make some tiles unpassable. -- Find out which footprint tiles are passable now before this function makes some unpassable -- during its test: local tiles_passable_flags = {} for _, tile in ipairs(object_footprint) do table.insert(tiles_passable_flags, map:getCellFlags(object_x + tile[1], object_y + tile[2], {}).passable) end -- 2. Find out which use position tiles would become isolated: local pathfinding_success = true local usage_tiles = {} local object_use_positions_names = Object:usePositionNames() for _, usage_position_type in ipairs(object_use_positions_names) do local more_usage_tiles = Object:getXYforUsePosition(object_x, object_y, object_layout, usage_position_type) usage_tiles = table_merge(usage_tiles, more_usage_tiles) end for _, usage_tile in ipairs(usage_tiles) do pathfinding_success = pathfinding_success and not _isIsolated(usage_tile[1], usage_tile[2], door_x, door_y) if not pathfinding_success then break end end -- 3. For each footprint tile passable flag set to false by step 2 undo this change: for tiles_index, tile in ipairs(object_footprint) do map:setCellFlags(object_x + tile[1], object_y + tile[2], {passable = tiles_passable_flags[tiles_index]}) end return not pathfinding_success end --! Check that pathfinding between already placed in the room objects --! and room door still works. i.e. that placing the target object --! wouldn't disconnect the existing objects from the world. --! For 'NonSideObject' it mark the footprint as unpassable --! (as it will become when the object is placed). --! For 'SideObject' this function expects that mark the footprint --! as unpassable will be executed outside of this function. --! And then this function check that the "use_position" cells --! of existing objects have path to the room door. --!param object_x (integer) target tile x coordinate. --!param object_y (integer) target tile y coordinate. --!param room (object) target room for placing the object. --!param object_layout (table) object orientation description with footprint. --!param is_side_object (bool) is that object is side object. --!return (bool) will this placement break path finding. function World:wouldObjectBreakRoomObjectsAccessToTheRoomDoor(object_x, object_y, room, object_layout, is_side_object) if not room.door or not room.door.tile_x or not room.door.tile_y then return true end local object_footprint local door_x, door_y = room:getEntranceXY(true) local map = self.map.th if not is_side_object then object_footprint = object_layout.footprint end -- To switch the tiles passability local function setFootprintTilesPassable(passable) -- not used for SideObjects for _, tile in ipairs(object_footprint) do if not tile.only_passable then map:setCellFlags(object_x + tile[1], object_y + tile[2], {passable = passable}) end end end local function _isIsolated(tile_x, tile_y, poi_x, poi_y) local getPathDistance = self:getPathDistance(tile_x, tile_y, poi_x, poi_y) return not getPathDistance end --1. Find out which footprint tiles are passable now before this function makes some unpassable --during its test: local tiles_passable_flags = {} if not is_side_object then for _, tile in ipairs(object_footprint) do table.insert(tiles_passable_flags, map:getCellFlags(object_x + tile[1], object_y + tile[2], {}).passable) end end --2. Make footprint tiles unpassable except only_passable ones if not is_side_object then setFootprintTilesPassable(false) end --3. Find out which use position tiles would become isolated: local pathfinding_success = true for room_object, _ in pairs(room.objects) do -- check that for each already placed object there is a valid path to the door local object_usage_tiles = room_object:getAllUsageTiles() for _, usage_tile in pairs(object_usage_tiles) do local use_x, use_y = usage_tile[1], usage_tile[2] -- 'SideObject' somehow has 'use_position', even though they don't have it in the footprint. -- We don't need to check that 'use_position' for 'SideObjects', -- because these 'use_position' are not actually used in the game, so skip them. if (room_object.object_type.class ~= "SideObject") and use_x and use_y then -- check that the placing object itself does not occupy 'use_position' local tile_overlap = (object_x == use_x) and (object_y == use_y) pathfinding_success = pathfinding_success and not tile_overlap -- also check that the placing object does not break the path from 'use_position' to the room door. pathfinding_success = pathfinding_success and not _isIsolated(use_x, use_y, door_x, door_y) end if not pathfinding_success then break end end if not pathfinding_success then break end end -- 4. For each footprint tile passable flag set to false by step 2 undo this change: if not is_side_object then setFootprintTilesPassable(true) for tiles_index, tile in ipairs(object_footprint) do map:setCellFlags(object_x + tile[1], object_y + tile[2], {passable = tiles_passable_flags[tiles_index]}) end end return not pathfinding_success end --! Notifies the world that an object has been placed, notifying -- interested entities in the vicinity of the new arrival. --!param entity (Entity) The entity that was just placed. --!param id (optional string) That entity's id. function World:objectPlaced(entity, id) -- If id is not supplied, we can use the entities internal id if it exists -- This is so the bench check below works -- see place_object.lua:UIPlaceObjects:placeObject for call w/o id --cgj if not id and entity.object_type.id then id = entity.object_type.id end if not table_contains(self.entities, entity) then self.entities[#self.entities + 1] = entity end -- Warn a hospital if that is possible. if not entity.tile_x or not entity.tile_y then return end local hosp = self:getHospital(entity.tile_x, entity.tile_y) if hosp then hosp:objectPlaced(entity, id) end end --! Notify the world of an object being removed from a tile --! See also `World:addObjectToTile` --!param object (Object) The object being removed. --!param x (integer) The X-coordinate of the tile which the object was on --!param y (integer) The Y-coordinate of the tile which the object was on function World:removeObjectFromTile(object, x, y) local index = (y - 1) * self.map.width + x local objects = self.objects[index] local thob = object.object_type.thob if objects then for k, v in ipairs(objects) do if v == object then table_remove(objects, k) self.map.th:removeObjectType(x, y, thob) object.hospital:removeTileObject(object.object_type.count_category) return true end end end return false end --! Notify the world of a new object being placed somewhere in the world --! See also `World:removeObjectFromTile` --!param object (Object) The object being placed --!param x (integer) The X-coordinate of the tile being placed upon --!param y (integer) The Y-coordinate of the tile being placed upon function World:addObjectToTile(object, x, y) local index = (y - 1) * self.map.width + x local objects = self.objects[index] if objects then self.map.th:setCellFlags(x, y, {thob = object.object_type.thob}) objects[#objects + 1] = object else objects = {object} self.objects[index] = objects self.map.th:setCellFlags(x, y, {thob = object.object_type.thob}) end object.hospital:addTileObject(object.object_type.count_category) return true end --! Retrieve all objects from a given position. --!param x (int) X position of the object to retrieve. --!param y (int) Y position of the object to retrieve. function World:getObjects(x, y) local index = (y - 1) * self.map.width + x return self.objects[index] end --! Retrieve one object from a given position. --!param x (int) X position of the object to retrieve. --!param y (int) Y position of the object to retrieve. --!param id Id to search, nil gets first object, string gets first object with --!param only_usable (bool) If true the object must be permitted for use --! that id, set of strings gets first object that matches an entry in the set. --!return (Object or nil) The found object, or nil if the object is not found. function World:getObject(x, y, id, only_usable) local objects = self:getObjects(x, y) if objects then if not id then if not only_usable or not objects[1].picked_up then return objects[1] end elseif type(id) == "table" then for _, obj in ipairs(objects) do if id[obj.object_type.id] and (not only_usable or not obj.picked_up) then return obj end end else for _, obj in ipairs(objects) do if obj.object_type.id == id and (not only_usable or not obj.picked_up) then return obj end end end end return -- nil end --! Remove all cleanable litter from a given tile. --!param x (int) X position of the tile to clean. --!param y (int) Y position of the tile to clean. function World:removeAllLitter(x, y) local litters = {} local objects = self:getObjects(x, y) if not objects then return end for _, obj in ipairs(objects) do if obj.object_type.id == "litter" and obj:isCleanable() then litters[#litters + 1] = obj end end for _, litter in ipairs(litters) do litter:remove() end end --! Prepare all tiles of the footprint for build of an object. --!param object_footprint Footprint of the object being build. --!param x (int) X position of the object --!param y (int) Y position of the object function World:prepareFootprintTilesForBuild(object_footprint, x, y) local hospital = self:getLocalPlayerHospital() for _, tile in ipairs(object_footprint) do if tile.complete_cell or not (tile.passable or tile.only_passable) then self:removeAllLitter(x + tile[1], y + tile[2]) hospital:removeRatholeXY(x + tile[1], y + tile[2]) end end end --! Prepare all tiles in the given rectangle for building a room. --!param x (int) Start x position of the area. --!param y (int) Start y position of the area. --!param w (int) Number of tiles in x direction. --!param h (int) Number of tiles in y direction. function World:prepareRectangleTilesForBuild(x, y, w, h) local hospital = self:getLocalPlayerHospital() x = x - 1 y = y - 1 for dx = 1, w do for dy = 1, h do self:removeAllLitter(x + dx, y + dy) if dx == 1 or dx == w or dy == 1 or dy == h then hospital:removeRatholeXY(x + dx, y + dy) end end end end --! Get the room at a given tile location. --!param x (int) X position of the queried tile. --!param y (int) Y position of the queried tile. --!return (Room) Room of the tile, or 'nil'. function World:getRoom(x, y) return self.rooms[self.map:getRoomId(x, y)] end --! Get the hospital at a given tile location. --!param x (int) X position of the queried tile. --!param y (int) Y position of the queried tile. --!return (Hospital) Hospital at the given location or 'nil'. function World:getHospital(x, y) local th = self.map.th local flags = th:getCellFlags(x, y) if not flags.hospital then return nil end return self.hospitals[flags.owner] end --! Returns localized name of the room, internal required staff name -- and localized name of staff required. function World:getRoomNameAndRequiredStaffName(room_id) local room_name, required_staff for _, room in ipairs(TheApp.rooms) do if room.id == room_id then room_name = room.long_name required_staff = room.required_staff end end local staff_name for key, _ in pairs(required_staff) do staff_name = key -- This is the "programmatic" name of the staff. end return room_name, staff_name, StaffProfile.translateStaffClass(staff_name) end --! Gets a list of all the machines in the player's hospital. function World:getPlayerMachines() local world = self local hosp = world:getLocalPlayerHospital() local playerMachines = {} for _, entity in ipairs(world.entities) do -- is entity a machine and not a slave (e.g. operating_table_b) if class.is(entity, Machine) and not entity.master then -- check if machine belongs to player hospital if entity.hospital == hosp then playerMachines[#playerMachines + 1] = entity end end end return playerMachines end --! Append a message to the game log. --!param message (string) The message to add. function World:gameLog(message) self.game_log[#self.game_log + 1] = message -- If in debug mode also show it in the command prompt if TheApp.config.debug then print(message) end end --! Dump the contents of the game log into a file. -- This is automatically done on each error. function World:dumpGameLog() local gamelog_path = TheApp.gamelog_path local fi = self.app:writeToFileOrTmp(gamelog_path) -- Start the gamelog file with the system information local sysinfo = TheApp:gamelogHeader() fi:write(sysinfo) for _, str in ipairs(self.game_log) do fi:write(str .. "\n") end fi:close() end --! Because the save file only saves one thob per tile if they are more that information -- will be lost. To solve this after a load we need to set again all the thobs on each tile. function World:resetAnimations() -- Erase entities from the map if they want. for _, entity in ipairs(self.entities) do entity:eraseObject() end -- Add them again. for _, entity in ipairs(self.entities) do entity:resetAnimation() end end strict_declare_global "staff_initials_cache" staff_initials_cache = {} local function our_concat(t) -- The standard table.concat function doesn't like our userdata strings :( local result = "" for _, s in ipairs(t) do result = result .. s end return result end --! Refresh cache of letters in current language to be used for staff member's initials function World:updateInitialsCache() local parts = tostring(our_concat(_S.humanoid_name_starts) .. our_concat(_S.humanoid_name_ends)):sub(33) local initials = {} for uchar in parts:gmatch("([%z\1-\127\194-\244][\128-\191]*)") do initials[#initials + 1] = uchar end initials[0] = initials[#initials] staff_initials_cache.initials = initials end --! Change the staff name first letter to one from the current language -- from the seed (generated here or in staff_profile.lua) --!param profile (table) The profile of the staff member function World:localiseInitial(profile) if not profile.name_seed then profile.name_seed = math.random(1, 1009) end if profile.initial and profile.name_lang == TheApp.config.language then return end -- Staff member doesn't have an initial in the current language local num = profile.name_seed % #staff_initials_cache.initials profile.initial = staff_initials_cache.initials[num] profile.name_lang = TheApp.config.language end --! Let the world react to and old save game. First it gets the chance to -- do things for itself, and then it calls corresponding functions for -- the hospitals, entities and rooms in that order. --!param old (integer) The old version of the save game. --!param new (integer) The current version of the save game format. function World:afterLoad(old, new) self:setUI(self.ui) -- Re-apply level-defined pricing when loading saves: self:applyLevelStartPrices() -- insert global compatibility code here if old < 4 then self.room_built = {} end if old < 6 then -- Calculate hospital value -- Initial value local value = self.map.parcelTileCounts[self.hospitals[1]:getPlayerIndex()] * 25 + 20000 -- Add room values for _, room in pairs(self.rooms) do local valueChange = room.room_info.build_cost -- Subtract values of objects in rooms to avoid calculating those object values twice for obj, num in pairs(room.room_info.objects_needed) do valueChange = valueChange - num * TheApp.objects[obj].build_cost end value = value + valueChange end -- Add up all object values for _, object in ipairs(self.entities) do if class.is(object, Object) and object.object_type.build_cost then value = value + object.object_type.build_cost end end self.hospitals[1].value = value end if old < 10 then self.object_counts = { extinguisher = 0, radiator = 0, plant = 0, general = 0, } for _, obj_list in pairs(self.objects) do for _, obj in ipairs(obj_list) do local count_cat = obj.object_type.count_category if count_cat then self.object_counts[count_cat] = self.object_counts[count_cat] + 1 end end end end if old < 43 then self.object_counts.reception_desk = 0 for _, obj_list in pairs(self.objects) do for _, obj in ipairs(obj_list) do local count_cat = obj.object_type.count_category if count_cat and count_cat == "reception_desk" then self.object_counts[count_cat] = self.object_counts[count_cat] + 1 end end end end if old < 47 then self.object_counts.bench = 0 for _, obj_list in pairs(self.objects) do for _, obj in ipairs(obj_list) do local count_cat = obj.object_type.count_category if count_cat and count_cat == "bench" then self.object_counts[count_cat] = self.object_counts[count_cat] + 1 end end end end if old < 12 then self.animation_manager = TheApp.animation_manager self.anim_length_cache = nil end if old < 17 then -- Added another object local pathsep = package.config:sub(1, 1) local _, shield = pcall(corsixth.require, "objects" .. pathsep .. "radiation_shield") local _, shield_b = pcall(corsixth.require, "objects" .. pathsep .. "radiation_shield_b") shield.slave_type = shield_b shield.slave_type.master_type = shield Object.processTypeDefinition(shield) Object.processTypeDefinition(shield_b) self.object_id_by_thob[shield.thob] = shield.id self.object_id_by_thob[shield_b.thob] = shield_b.id self.object_types[shield.id] = shield self.object_types[shield_b.id] = shield_b self.ui.app.objects[shield.id] = shield self.ui.app.objects[shield_b.id] = shield_b self.ui.app.objects[#self.ui.app.objects + 1] = shield self.ui.app.objects[#self.ui.app.objects + 1] = shield_b end if old < 27 then -- Add callsDispatcher self.dispatcher = CallsDispatcher(self) end if old < 30 then self:nextEmergency() end if old < 31 then self.hours_per_day = 50 self:setSpeed("Normal") end if old < 37 then -- Spawn rate is taken from level files now. -- Make sure that all config values are present. if not self.map.level_config.popn then self.map.level_config.popn = { [0] = {Change = 3, Month = 0}, [1] = {Change = 1, Month = 1}, } end if not self.map.level_config.gbv.AllocDelay then self.map.level_config.gbv.AllocDelay = 3 end local index = 0 local popn = self.map.level_config.popn self.spawn_rate = popn[index].Change self.monthly_spawn_increase = self.spawn_rate -- Bring the spawn rate "up to speed". for month = 1, self.month + (self.year-1)*12 do -- Check if the next entry should be used. while popn[index + 1] and month >= popn[index + 1].Month do index = index + 1 end self.monthly_spawn_increase = popn[index].Change self.spawn_rate = self.spawn_rate + self.monthly_spawn_increase end self.spawn_hours = {} self.spawn_dates = {} self:updateSpawnDates() end if old < 45 then self:nextVip() end if old < 52 then -- Litter was not properly removed from the world. for i = #self.entities, 1, -1 do if class.is(self.entities[i], Litter) then if not self.entities[i].tile_x then self:destroyEntity(self.entities[i]) end end end end if old < 57 then self.user_actions_allowed = true end if old < 61 then -- room remove callbacks added self.room_remove_callbacks = {} end if old < 64 then -- added reference to world for staff profiles for _, group in pairs(self.available_staff) do for _, profile in ipairs(group) do profile.world = self end end end if old < 66 then -- Unreserve objects which are not actually reserved for real in the staff room. -- This is a special case where reserved_for could be set just as a staff member was leaving for _, room in pairs(self.rooms) do if room.room_info.id == "staff_room" then -- Find all objects in the room local fx, fy = room:getEntranceXY(true) for obj, _ in pairs(self:findAllObjectsNear(fx, fy)) do if obj.reserved_for then local found = false for _, action in ipairs(obj.reserved_for.action_queue) do if action.name == "use_object" then if action.object == obj then found = true break end end end if not found then self:gameLog("Unreserved an object: " .. obj.object_type.id .. " at " .. obj.tile_x .. ":" .. obj.tile_y) obj.reserved_for = nil end end end end end end if old < 103 then -- If a room has patients who no longer exist in its -- humanoids_enroute table because of #133 remove them: for _, room in pairs(self.rooms) do for patient, _ in pairs(room.humanoids_enroute) do if patient.tile_x == nil then room.humanoids_enroute[patient] = nil end end end end if old < 124 then self.game_date = Date(self.year, self.month, self.day, self.hour) -- self.next_vip_month is number of months since the game start self.next_vip_date = Date(1, self.next_vip_month, self.next_vip_day) end -- Now let things inside the world react. for _, cat in pairs({self.hospitals, self.entities, self.rooms}) do for _, obj in pairs(cat) do obj:afterLoad(old, new) end end if old >= 87 then self:playLoadedEntitySounds() end if old < 88 then --Populate the entity map self.entity_map = EntityMap(self.map) for _, e in ipairs(self.entities) do local x, y = e.tile_x, e.tile_y if x and y then self.entity_map:addEntity(x,y,e) end end end if old < 108 then self.room_build_callbacks = nil end if old < 113 then -- Make cleanable littered tiles buildable. for x = 1, self.map.width do for y = 1, self.map.height do local litter = self:getObject(x, y, "litter") if litter and litter:isCleanable() then self.map:setCellFlags(x, y, {buildable=true}) end end end end if old < 120 then -- Issue #1105 updates to fix any broken saves with travel flags for side objects self:resetSideObjects() end if old < 132 then self.app = self.ui.app end if old < 153 then -- Set the new variable next_emergency_date -- Also set the new variable next_emergency -- In previous code month == 0 meant emergencies were over if self.next_emergency_month ~= 0 then self.next_emergency_date = Date(1, self.next_emergency_month, self.next_emergency_day) local control = self.map.level_config.emergency_control self.next_emergency = control[self.next_emergency_no] -- Complementary afterLoad to see if emergencies got stuck in the level. -- There's no guarantee we can unstick the level, however. local next_emer_date = Date(1, self.next_emergency_month, self.next_emergency_day) --[[ UIWatch's emergency timer is 52 days but this is local. The emergency fax also is held for 16 days. Add one extra day to this for compensation = 69. (Unavoidable magic number)]]-- if self.game_date > next_emer_date:plusDays(69) then -- The date the emergency should've finished by has passed. -- Next check if the emergency could still be happening. local watch = self.ui:getWindow(UIWatch) if not watch or watch.count_type ~= "emergency" then -- The emergency is likely stuck self:nextEmergency() end end end end if old < 165 and new >= 165 then -- Add 'KnockDoorAction.humanoid' field. for _, entity in ipairs(self.entities) do if entity.action_queue and class.is(entity, Humanoid) then for _, action in ipairs(entity.action_queue) do if class.is(action, KnockDoorAction) then action.humanoid = entity end end end end end if old < 167 then self.object_counts = nil -- Moved to Hospital.tile_object_counts end if old < 171 then self.wall_types = nil self.wall_id_by_block_id = nil self.wall_set_by_block_id = nil self.wall_dir_by_block_id = nil end if old < 174 then -- Originally 172, bumping afterLoad to correct a typo self.wall_types = self.app.walls self:initWallTypes() end if old < 185 then -- Fix any missing initial in staff names self:updateInitialsCache() for _, staff_category in pairs(self.available_staff) do for _, staff in pairs(staff_category) do if not staff.initial then self:localiseInitial(staff) end end end for _, staff in ipairs(self:getLocalPlayerHospital().staff) do if not staff.profile.initial then self:localiseInitial(staff.profile) end end end if old < 188 then self.level_criteria = nil self.goals = nil self:determineWinningConditions() end if old < 189 then -- Move existing and future earthquakes to the Earthquake class self.earthquake = Earthquake(self, true) end if old < 208 then -- Adjust game speed and tick rates local old_tick_rates if old < 183 then -- Save is using tick rates before 0.68.0 (PR2494) old_tick_rates = { ["Pause"] = {0, 1}, ["Slowest"] = {1, 9}, ["Slower"] = {1, 5}, ["Normal"] = {1, 3}, ["Max speed"] = {1, 1}, ["And then some more"] = {3, 1}, ["Speed Up"] = {8, 1}, } else -- Save is using tick rates introduced during development post 0.68.0 (PR2688) old_tick_rates = { ["Pause"] = {0, 1}, ["Slowest"] = {1, 28}, ["Slower"] = {1, 6}, ["Normal"] = {2, 3}, ["Max speed"] = {1, 1}, ["And then some more"] = {2, 1}, ["Speed Up"] = {4, 1}, } end local found_speed = false for name, rate in pairs(old_tick_rates) do if rate[1] == self.hours_per_tick and rate[2] == self.tick_rate then found_speed = true -- Do not call setSpeed as the values below are mapped to old tick rates. -- Instead, update manually. self.hours_per_tick = tick_rates[name][1] self.tick_rate = tick_rates[name][2] -- There is also no need to run it afterward either break end end -- No conversion available; reset instead if not found_speed then self.hours_per_tick = tick_rates["Pause"][1] self.tick_rate = tick_rates["Pause"][2] self:setSpeed("Normal") end end if old < 214 then self.animation_manager = nil -- Use TheApp.animation_manager instead. end if old < 239 then for _, entity in ipairs(self.entities) do if class.is(entity, Humanoid) then entity:setIfHoverMoodsVisible() end end end if old < 245 then self.system_pause = nil end -- Fix the initial of staff names self:updateInitialsCache() for _, staff_category in pairs(self.available_staff) do for _, staff in pairs(staff_category) do self:localiseInitial(staff) end end for _, staff in ipairs(self:getLocalPlayerHospital().staff) do self:localiseInitial(staff.profile) end -- Fix if game was saved with Speed Up self:previousSpeed() self.earthquake:afterLoad(old, new) -- Savegame version housekeeping if not self.original_savegame_version then self.original_savegame_version = old end -- If the original save game version is considerably lower than the current, ask -- the player if they want to restart the level. if TheApp:compareVersions(new, old, "release") > 2 then TheApp:restart(_S.confirmation.very_old_save) end self.savegame_version = new self.release_version = TheApp:getReleaseString(new) end function World:playLoadedEntitySounds() for _, entity in pairs(self.entities) do entity:playAfterLoadSound() end end --[[ There is a problem with room editing in that it resets all the partial passable flags (travelNorth, travelSouth etc.) in the corridor, a workaround is calling this function after the room was edited so that all edge only objects, that set partial passable flags set those flags again]] function World:resetSideObjects() for _, objects in pairs(self.objects) do for _, obj in ipairs(objects) do if obj.object_type.class == "SideObject" then obj:setTile(obj.tile_x, obj.tile_y) end end end end --[[ When placing doors and objects the passable tiles need to be checked for overlapping passable tiles. This presents problems with objects like Bench where the passable tile is not for exclusive use of the Bench (another object can share that same tile) the footprint.shareable differentiates shareable passable tiles, and exclusive use passable tiles (the norm for most objects)]] --!param x (int) x map tile position --!param y (int) y map tile position --!param distance (int) searchable distance for nearby objects --!return (boolean) indicating if exclusively passable or not function World:isTileExclusivelyPassable(x, y, distance) for o in pairs(self:findAllObjectsNear(x, y, distance)) do if o and not o.picked_up and o.footprint then for _, footprint in pairs(o.footprint) do if footprint[1] + o.tile_x == x and footprint[2] + o.tile_y == y and footprint.only_passable and not footprint.shareable then return false end end else -- doors don't have a footprint but objects can't be built blocking them either for _, footprint in pairs(o:getWalkableTiles()) do -- 62 is a litter thob if not o.picked_up and o.object_type and o.object_type.thob ~= 62 and footprint[1] == x and footprint[2] == y then return false end end end end return true end --! Get todays date. --!return (Date) Current game date. function World:date() return self.game_date:clone() end --! Collect the settings that should be reused in the next world --!return (table) world and hospital campaign data function World:getCampaignData() local world = { room_built = self.room_built, campaign_info = self.campaign_info, debug_disable_salary_raise = self.debug_disable_salary_raise, } return { world = world, hospital = self:getLocalPlayerHospital():getCampaignData() } end --! Restore the settings from the previous world --!param campaign_data (table) world and hospital campaign data function World:setCampaignData(campaign_data) for key, value in pairs(campaign_data.world) do self[key] = value end self:getLocalPlayerHospital():setCampaignData(campaign_data.hospital) end --! Perform validity tests on the map in world --!return (string) The message relating to the first failed check function World:validateMap() self.map.th:updatePathfinding() local spawn_points = self:calculateSpawnTiles() -- Do any passable tiles on the edge of the map have a path of -- passable tiles to the hospital if not spawn_points[1] then return _S.map_editor_window.checks.spawn_points_and_path end end --! Returns whether the level being played is part of a campaign or not function World:isCampaign() return type(self.map.level_number) == "number" or self.campaign_info end CorsixTH-0.70.0/CorsixTH/Luatest/000077500000000000000000000000001522247547500164425ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Luatest/.busted000066400000000000000000000000721522247547500177300ustar00rootroot00000000000000return { default = { lpath = "../Lua/?.lua", }, } CorsixTH-0.70.0/CorsixTH/Luatest/README.txt000066400000000000000000000015501522247547500201410ustar00rootroot00000000000000UNIT TESTING In order to run the unit test suite you need a unit test framework called Busted. The easiest way to get it is through Luarocks. All information can be found at http://olivinelabs.com/busted/ The framework uses its own syntax, which is also described at the above location. RUNNING UNIT TESTS When you have Busted on your system, run the following command from the CorsixTH/Luatest folder to run all tests: (Windows) busted --lpath=../Lua/\?.lua (Linux) busted --lpath=../Lua/?.lua CREATING UNIT TESTS If you have added functionality to an existing file you will need to extend the unit test suite for that file. It is found in the Luatest/spec folder using the same hierarchy as in the normal Lua folder. All test files are called _spec.lua. If you have created a new lua file, then you also create a new *_spec.lua test file. CorsixTH-0.70.0/CorsixTH/Luatest/TH.lua000066400000000000000000000044171522247547500174660ustar00rootroot00000000000000--[[ Copyright (c) 2014 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- A stub implementation of the TH C++ object, to be able to run -- unit tests without any backend. local loadFont = function() return { draw = function() end, drawWrapped = function() end, } end TheApp = { gfx = { loadMainCursor = function() end, loadSpriteTable = function() end, loadFont = loadFont, loadFontAndSpriteTable = loadFont, }, runtime_config = {}, config = { width = 600, height = 800, ui_scale = 1, }, world = { speed = "Normal", isCurrentSpeed = function(self, s) return s == self.speed end, gameLog = function() end, }, animation_manager = { setPatientMarker = function(...) end, setStaffMarker = function(...) end, }, } local sub_S = setmetatable({key = ''}, { __index = function(t, k) t.key = t.key .. '.' .. k return t end, __tostring = function(t) return t.key end, }) _G['_S'] = setmetatable({key = ''}, { __index = function(_, k) sub_S.key = '_S.' .. k return sub_S end, __tostring = function(_) return '_S' end, }) return { animation = function() return { setHitTestResult = function() end, setAnimation = function() end, setTile = function() end, } end } CorsixTH-0.70.0/CorsixTH/Luatest/class_test_base.lua000066400000000000000000000032151522247547500223040ustar00rootroot00000000000000--[[ Copyright (c) 2014 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- Use this file to easily get started creating unit tests for CorsixTH -- classes. require("busted") require("non_strict") require("class") local say = require("say") local assert = require("luassert") function permanent() return function() return {} end end function values() return function() return nil end end function assertion_matches(_, arguments) return string.match(arguments[1], arguments[2]) ~= nil end say:set("assertion.matches", "Expected substring fail.\n: %s\n:%s") assert:register("assertion", "matches", assertion_matches, "assertion.matches") CorsixTH-0.70.0/CorsixTH/Luatest/corsixth.lua000066400000000000000000000023011522247547500210040ustar00rootroot00000000000000--[[ Copyright (c) 2017 Stephen "TheCycoONE" Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- A stub implementation of the corsixth object to bypass the persistence -- C++ code. _G['corsixth'] = {} corsixth.require = require; CorsixTH-0.70.0/CorsixTH/Luatest/non_strict.lua000066400000000000000000000050141522247547500213270ustar00rootroot00000000000000--[[ Copyright (c) 2014 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] -- When running unittests we cannot restrict global variables as is usually -- done, since the busted library relies on being able to do so. -- We still need to mimic the possibility to call the functions available -- in strict.lua though. local strict_mt = {} local allowed_globals = setmetatable({}, {__mode = "k"}) local function newindex(t, k, v) rawset(t, k, v) end local function index() return nil end local function restrict(ni, i, ...) strict_mt.__newindex = ni strict_mt.__index = i return ... end restrict(newindex, index) --!! Wrap a function so that it is freely able to set global variables --[[ Some existing functions (for example, `require`) should be allowed to read and write global variables without having to worry about declaring them with `strict_declare_global`. !param fn The function which should be able to freely set globals !return A new function which acts just as `fn` and is free to set globals !example require = destrict(require) ]] function destrict(fn) return function(...) local ni, i = strict_mt.__newindex, strict_mt.__index strict_mt.__newindex, strict_mt.__index = nil, nil return restrict(ni, i, fn(...)) end end --!! Declare a global variable so that it can later be used --[[!param name The name of the global to declare !example strict_declare_global "some_var" some_var = 42 ]] function strict_declare_global(name) allowed_globals[name] = true end setmetatable(_G, strict_mt) CorsixTH-0.70.0/CorsixTH/Luatest/persist.lua000066400000000000000000000000001522247547500206240ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Luatest/spec/000077500000000000000000000000001522247547500173745ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Luatest/spec/announcer_spec.lua000066400000000000000000000154401522247547500231050ustar00rootroot00000000000000require("corsixth") require("class_test_base") require("announcer") local Announcer = _G["Announcer"] local AnnouncementPriority = _G["AnnouncementPriority"] local function create_date_mock_type() local date_mock = {} local date_mock_mt = { __index = date_mock } function date_mock.new(value) local self = { value = value or 0 } setmetatable(self, date_mock_mt) return self end function date_mock:clone() return date_mock.new(self.value) end function date_mock:plusHours(hours) return date_mock.new(self.value + hours) end function date_mock_mt.__lt(left, right) return left.value < right.value end function date_mock_mt.__le(left, right) return left.value <= right.value end return date_mock.new end local create_date_mock = create_date_mock_type() local function create_app_mock(speed_set, desk_set) local world_mock = {} world_mock.mock_game_date = create_date_mock() world_mock.date = function() return world_mock.mock_game_date end world_mock.isCurrentSpeed = function() return speed_set end world_mock.getLocalPlayerHospital = function() return { hasReceptionDesk = function() return desk_set end } end local ui_mock = {} local subtitles_mock = { queueSubtitle = function() end, } ui_mock.subtitles = subtitles_mock local config_mock = { play_announcements = true } local played_sounds = {} local audio_mock = { __played_sounds__ = played_sounds, playSound = function(_, name, where, is_announcement, played_callback, played_callback_delay) table.insert(played_sounds, { name = name, where = where, is_announcement = is_announcement, played_callback = played_callback, played_callback_delay = played_callback_delay }) end, __mark_sounds_played__ = function() for k,v in pairs(played_sounds) do v.played_callback() played_sounds[k] = nil -- clear end end, resolveFilenameWildcard = function(_, name) return name end } local app = { world = world_mock, ui = ui_mock, config = config_mock, audio = audio_mock } return app end --[[ Test formats for the announcer should be as follows (empty lines should be used as indicated): it("description of what is expected/tested", function() local app_mock = create_app_mock(speed_set, desk_set) local announcer = Announcer(app_mock) Insert config settings here Followed by announcements to queue announcer:onTick --group ticks with each test Some test announcer:onTick Some test etc... end) speed_set is whether to obey the requested speed check in announcer.lua desk_set is whether we have a staffed desk ]]-- describe("Announcer", function() it("nothing is played with an empty queue", function() local app_mock = create_app_mock(false, true) local announcer = Announcer(app_mock) announcer:onTick() assert.equal(0, #app_mock.audio.__played_sounds__) end) it("an announcement is played", function() local app_mock = create_app_mock(false, true) local announcer = Announcer(app_mock) announcer:playAnnouncement("sound.wav") announcer:onTick() assert.equal(1, #app_mock.audio.__played_sounds__) assert.equal("sound.wav", app_mock.audio.__played_sounds__[1].name) end) it("announcements shouldn't play when disabled", function() local app_mock = create_app_mock(false, true) local announcer = Announcer(app_mock) app_mock.config.play_announcements = false announcer:playAnnouncement("normal.wav") announcer:onTick() assert.equal(0, #app_mock.audio.__played_sounds__) end) it("duplicate announcements should be discarded", function() local app_mock = create_app_mock(false, true) local announcer = Announcer(app_mock) announcer:playAnnouncement("sound.wav") announcer:playAnnouncement("sound.wav") announcer:playAnnouncement("sound.wav") announcer:onTick() announcer:onTick() announcer:onTick() assert.equal(1, #app_mock.audio.__played_sounds__) end) it("announcements are played priority-wise", function() local app_mock = create_app_mock(false, true) local announcer = Announcer(app_mock) announcer:playAnnouncement("low.wav", AnnouncementPriority.Low) announcer:playAnnouncement("critical.wav", AnnouncementPriority.Critical) announcer:playAnnouncement("normal.wav", AnnouncementPriority.Normal) announcer:playAnnouncement("high.wav", AnnouncementPriority.High) announcer:onTick() assert.equal(1, #app_mock.audio.__played_sounds__) assert.equal("critical.wav", app_mock.audio.__played_sounds__[1].name) app_mock.audio.__mark_sounds_played__() announcer:onTick() assert.equal(1, #app_mock.audio.__played_sounds__) assert.equal("high.wav", app_mock.audio.__played_sounds__[1].name) app_mock.audio.__mark_sounds_played__() announcer:onTick() assert.equal(1, #app_mock.audio.__played_sounds__) assert.equal("normal.wav", app_mock.audio.__played_sounds__[1].name) app_mock.audio.__mark_sounds_played__() announcer:onTick() assert.equal(1, #app_mock.audio.__played_sounds__) assert.equal("low.wav", app_mock.audio.__played_sounds__[1].name) app_mock.audio.__mark_sounds_played__() end) it("announcements shouldn't play when not relevant anymore", function() local app_mock = create_app_mock(false, true) local announcer = Announcer(app_mock) announcer:playAnnouncement("normal.wav") app_mock.world.mock_game_date = app_mock.world.mock_game_date:plusHours(1000) -- time must be after announcement announcer:onTick() assert.equal(0, #app_mock.audio.__played_sounds__) end) it("only critical announcements play when paused", function() local app_mock = create_app_mock(true, true) local announcer = Announcer(app_mock) announcer:playAnnouncement("low.wav", AnnouncementPriority.Low) announcer:playAnnouncement("critical.wav", AnnouncementPriority.Critical) announcer:playAnnouncement("normal.wav", AnnouncementPriority.Normal) announcer:playAnnouncement("high.wav", AnnouncementPriority.High) announcer:onTick() assert.equal(1, #app_mock.audio.__played_sounds__) assert.equal("critical.wav", app_mock.audio.__played_sounds__[1].name) app_mock.audio.__mark_sounds_played__() announcer:onTick() assert.equal(0, #app_mock.audio.__played_sounds__) end) it("critical announcements play without a staffed desk", function() local app_mock = create_app_mock(false, false) local announcer = Announcer(app_mock) announcer:playAnnouncement("critical.wav", AnnouncementPriority.Critical) announcer:onTick() assert.equal(1, #app_mock.audio.__played_sounds__) assert.equal("critical.wav", app_mock.audio.__played_sounds__[1].name) app_mock.audio.__mark_sounds_played__() end) end) CorsixTH-0.70.0/CorsixTH/Luatest/spec/class_spec.lua000066400000000000000000000052561522247547500222260ustar00rootroot00000000000000--[[ Copyright (c) 2014 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] require("class_test_base") class "ParentClass" function ParentClass:ParentClass(name) self.class_name = name end class "ChildClass" (ParentClass) function ChildClass:ChildClass(name) self:ParentClass(name) end describe("A class in CorsixTH ", function() local child_class, parent_class setup(function() child_class = ChildClass("TheChild") parent_class = ParentClass("TheParent") end) it("should be instansiatable", function() assert.are.equal("TheChild", child_class.class_name) assert.are.equal("TheParent", parent_class.class_name) end) it("should be the same for many instances of the same type, including inheritance", function() assert.truthy(class.is(child_class, ChildClass)) assert.falsy(class.is(parent_class, ChildClass)) assert.truthy(class.is(child_class, ParentClass)) assert.truthy(class.is(parent_class, ParentClass)) end) it("should have a name", function() assert.are.equal("ChildClass", class.name(ChildClass)) assert.are.equal("ParentClass", class.name(ParentClass)) assert.are.equal(nil, class.name(NoRealClass)) end) it("should know if it has a superclass", function() assert.are.equal(ParentClass, class.superclass(ChildClass)) assert.are.equal(nil, class.superclass(ParentClass)) assert.has_error(class.superclass, NoRealClass) end) it("should have a type", function() assert.are.equal("ChildClass", class.type(child_class)) assert.are.equal("ParentClass", class.type(parent_class)) end) it("should make the metatable available", function() assert.are.equal(getmetatable(parent_class), parent_class._metatable) end) end) CorsixTH-0.70.0/CorsixTH/Luatest/spec/date_spec.lua000066400000000000000000000140571522247547500220350ustar00rootroot00000000000000--[[ Copyright (c) 2018 Pavel "sofo" Schoffer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] require("class_test_base") require("date") describe("Date", function() it("can return correct month last day", function() assert.are.equal(Date(1, 1):lastDayOfMonth(), 31) assert.are.equal(Date(1, 2):lastDayOfMonth(), 28) assert.are.equal(Date(1, 6):lastDayOfMonth(), 30) assert.are.equal(Date(1, 12):lastDayOfMonth(), 31) end) it("default works", function() local date = Date(5, 12, 22, 5) assert.are.equal(date:hourOfDay(), 5) assert.are.equal(date:dayOfMonth(), 22) assert.are.equal(date:monthOfYear(), 12) assert.are.equal(date:year(), 5) date = Date(5, 12, 22) assert.are.equal(date:hourOfDay(), 0) assert.are.equal(date:dayOfMonth(), 22) assert.are.equal(date:monthOfYear(), 12) assert.are.equal(date:year(), 5) date = Date(4, 12) assert.are.equal(date:dayOfMonth(), 1) assert.are.equal(date:monthOfYear(), 12) assert.are.equal(date:year(), 4) date = Date(24) assert.are.equal(date:dayOfMonth(), 1) assert.are.equal(date:monthOfYear(), 1) assert.are.equal(date:year(), 24) date = Date() assert.are.equal(date:dayOfMonth(), 1) assert.are.equal(date:monthOfYear(), 1) assert.are.equal(date:year(), 1) end) it("cannot be wrong date", function() local date = Date(1, 14) assert.are.equal(date:monthOfYear(), 2) date = Date(1, 24) assert.are.equal(date:monthOfYear(), 12) end) it("can handle hour adjustmentse", function() local date = Date(1, 1, 5, 50) assert.are.equal(6, date:dayOfMonth()) assert.are.equal(0, date:hourOfDay()) date = Date(1, 1, 1, 55) assert.are.equal(2, date:dayOfMonth()) assert.are.equal(5, date:hourOfDay()) end) it("can add and read months", function() local date = Date():plusMonths(1) assert.are.equal(date:monthOfYear(), 2) date = Date(20, 12):plusMonths(1) assert.are.equal(date:monthOfYear(), 1) end) it("can handle complex adjustments", function() local date = Date(2,2,31,55) assert.are.equal("2-03-04T05", date:tostring()) date = Date(1,12,31,55) assert.are.equal("2-01-01T05", date:tostring()) -- 31 - January, 28 - February, 7 - March date = Date(1,1,66) assert.are.equal("1-03-07T00", date:tostring()) end) it("can print date", function() local date = Date(2,12,1,6) assert.are.equal("2-12-01T06", date:tostring()) end) it("can add days", function() local date = Date(2,12,30) -- 1 - December, 29 - January date = date:plusDays(30) assert.are.equal("3-01-29T00", date:tostring()) date = Date(1,3,15) -- 16 - March, 30 - April, 31 - June, 13 - July date = date:plusDays(90) assert.are.equal("1-06-13T00", date:tostring()) end) it("can add years", function() local date = Date(3, 2, 1, 6) local expected_date = Date(8, 2, 1, 6) local adjusted_date = date:plusYears(5) assert.True(expected_date == adjusted_date) end) it("can add hours", function() local date = Date(1,1,1,5) local adjusted_date = date:plusHours(50) assert.are.equals(2, adjusted_date:dayOfMonth()) assert.are.equals(5, adjusted_date:hourOfDay()) end) it("can add negative hours", function() local date = Date(3,1,1,0) local expected_date = Date(2,12,31,49) local adjusted_date = date:plusHours(-1) assert.True(expected_date == adjusted_date) end) it("can add negative days", function() local date = Date(3,1,1) local adjusted_date = date:plusDays(-40) local expected_date = Date(2,11,22) assert.True(expected_date == adjusted_date) end) it("can tell the last days", function() local date = Date(1,12,3) assert.False(date:isLastDayOfMonth()) assert.False(date:isLastDayOfYear()) date = Date(1,1,31) assert.True(date:isLastDayOfMonth()) assert.False(date:isLastDayOfYear()) date = Date(1,12,31) assert.True(date:isLastDayOfMonth()) assert.True(date:isLastDayOfYear()) end) it("get total elapsed month", function() local date = Date(8,11,1) assert.are.equals(95, date:monthOfGame()) end) it("can get compared", function() local date1 = Date(3,2,1) local other_date1 = Date(3,2,1) local date2 = Date(1,2,3) local date_with_different_hour = Date(3,2,1,40) assert.True(date1 == other_date1) assert.False(date1 == date2) assert.True(date1 > date2) assert.False(date1 < date2) assert.False(date1 < other_date1) assert.True(date1 <= other_date1) assert.False(date1 <= date2) assert.True(date1 >= other_date1) assert.False(date_with_different_hour == date1) assert.True(date_with_different_hour > date1) end) it("can clone itself", function() local origin_date = Date(12,3,2,6) local clone_date = origin_date:clone() assert.True(origin_date == clone_date) end) it("can provide hours per day", function() assert.equals(50, Date.hoursPerDay()) end) it("can check if two days are the same", function() assert.True(Date(1,2,3,5):isSameDay(Date(1,2,3,9))) assert.False(Date(1,2,3):isSameDay(Date(1,4,3))) end) end) CorsixTH-0.70.0/CorsixTH/Luatest/spec/dialogs/000077500000000000000000000000001522247547500210165ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Luatest/spec/dialogs/bottom_pannel_spec.lua000066400000000000000000000052641522247547500254030ustar00rootroot00000000000000--[[ Copyright (c) 2018 Stephen E. Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] describe("Bottom Panel:", function() local bottom_panel; local mock_canvas; local font; setup(function() require("corsixth") require("class_test_base") require("TH") require("window") require("dialogs/bottom_panel") end) before_each(function() TheApp.world.gameLog = function() end font = { draw = function() end, drawWrapped = function() end, } TheApp.gfx.loadFontAndSpriteTable = function() return font end local mock_ui = {} mock_ui.app = _G['TheApp'] mock_ui.addKeyHandler = function() end mock_canvas = {} bottom_panel = UIBottomPanel(mock_ui) mock(font, 'draw') mock(font, 'drawWrapped') mock(TheApp.world, 'gameLog') end) it("Set nil dynamic info", function() bottom_panel:setDynamicInfo(nil) bottom_panel:drawDynamicInfo(mock_canvas, 0, 0) assert.stub(TheApp.world.gameLog).was_not.called_with(TheApp.world, "Dynamic info is missing text!") end) it("Set dynamic info without text", function() local dynamic_info = {} bottom_panel:setDynamicInfo(dynamic_info) bottom_panel:drawDynamicInfo(mock_canvas, 0, 0) assert.stub(TheApp.world.gameLog).was.called_with(TheApp.world, "Dynamic info is missing text!") end) it("Set dynamic info with text", function() local dynamic_info = { text = { "test text" } } bottom_panel:setDynamicInfo(dynamic_info) bottom_panel:drawDynamicInfo(mock_canvas, 0, 0) assert.stub(TheApp.world.gameLog).was_not.called_with(TheApp.world, "Dynamic info is missing text!") assert.stub(font.drawWrapped).was.called_with(font, mock_canvas, "test text", 20, 10, 240) end) end) CorsixTH-0.70.0/CorsixTH/Luatest/spec/entities/000077500000000000000000000000001522247547500212205ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Luatest/spec/entities/humanoid_spec.lua000066400000000000000000000050571522247547500245500ustar00rootroot00000000000000--[[ Copyright (c) 2018 Pavel "sofo" Schoffer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] require("class_test_base") require("entity") require("entities.humanoid") describe("Humanoid:", function() local function getHumanoid() local animation = {setHitTestResult = function() end} return Humanoid(animation) end it("Gets the current action", function() local humanoid = getHumanoid() local action1 = {name = "fake1"} local action2 = {name = "fake2"} humanoid:queueAction(action1) humanoid:queueAction(action2) local recievedAction = humanoid:getCurrentAction() assert.equal(action1, recievedAction) end) it("Throws error if no action is queued", function() local humanoid = getHumanoid() local state, error = pcall(humanoid.getCurrentAction, humanoid) assert.False(state) local expected_message = "Action queue was empty. This should never happen." assert.matches(error, expected_message) assert.matches(error, "humanoid %-") end) it("Can represent itself as a string", function() local humanoid = getHumanoid() humanoid.humanoid_class = "class" local result = humanoid:tostring() assert.matches(result, "humanoid[ -]*class.*class") assert.matches(result, "Warmth.*Happiness.*Fatigue") assert.matches(result, "Actions: %[%]") end) it("Can add actions to a representation", function() local humanoid = getHumanoid() humanoid.action_queue = {{name = "A1", room_type = "room"}, {name = "A2"}} local result = humanoid:tostring() assert.matches(result, "Actions.*%[A1 %- room, A2%]") end) end) CorsixTH-0.70.0/CorsixTH/Luatest/spec/entities/humanoids/000077500000000000000000000000001522247547500232075ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Luatest/spec/entities/humanoids/staff/000077500000000000000000000000001522247547500243125ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Luatest/spec/entities/humanoids/staff/doctor_spec.lua000066400000000000000000000036331522247547500273260ustar00rootroot00000000000000--[[ Copyright (c) 2018 Pavel "sofo" Schoffer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] require("class_test_base") require("corsixth") require("entity") require("entities.humanoid") require("entities.humanoids.staff.doctor") describe("Doctor:", function() local function getDoctor() local animation = {setHitTestResult = function() end} return Doctor(animation) end it("Can represent doctor as a string", function() local doctor = getDoctor() doctor.humanoid_class = "Doctor" local name = "WHITMAN" local initial = "A" doctor.profile = {skill = 0.5, is_psychiatrist = 0.5, name = name, initial = initial} doctor.profile.getFullName = function() return doctor.profile.initial .. ". " .. doctor.profile.name end local result = doctor:tostring() assert.matches(result, "humanoid.*" .. initial .. ". " .. name .. ".*class.*Doctor") assert.matches(result, "Skills.*0%.5.*Psych.*0%.5") end) end) CorsixTH-0.70.0/CorsixTH/Luatest/spec/entities/humanoids/vip_spec.lua000066400000000000000000000151101522247547500255200ustar00rootroot00000000000000--[[ Copyright (c) 2020 William "sadger" Gatens Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] require("class_test_base") require("corsixth") require("entity") require("entities.humanoid") require("entities.humanoids.vip") local function getVip() local animation = {setHitTestResult = function() end} return Vip(animation) end local function create_room(name, args) args = args or {} local room = { door = {queue = nil}, room_info = {id = name}, objects = { }, --set getPatient = function() return args.has_patient end } if args.alive_plants then for _ = 1, args.alive_plants do room.objects[{ object_type = {id = "plant"}, isMachine = function() return false end, isDying = function() return false end }] = true end end if args.dying_plants then for _ = 1, args.dying_plants do room.objects[{ object_type = {id = "plant"}, isMachine = function() return false end, isDying = function() return true end }] = true end end if args.working_machines then for _ = 1, args.working_machines do room.objects[{ object_type = {id = "machine"}, strength = _, isMachine = function() return true end, isBreaking = function() return false end }] = true end end if args.breaking_machines then for _ = 1, args.breaking_machines do room.objects[{ object_type = {id = "machine"}, strength = _, isMachine = function() return true end, isBreaking = function() return true end }] = true end end if args.extinguisher then room.objects[{ object_type = {id = "extinguisher"}, isMachine = function() return false end }] = true end if args.bin then room.objects[{ object_type = {id = "bin"}, isMachine = function() return false end }] = true end return room end local function create_world(args) local world = { rooms = {} } for i=1, args.num_rooms do world.rooms[i] = create_room("room" .. i) end return world end local function create_hospital(args) args = args or {} local hospital = { num_vips_ty = 0, staff = {}, -- Always return default value for average attribute getAveragePatientAttribute = function(_, _, default) return default end, countSittingStanding = function(_) local sitting = args.sitting_patients or 0 local standing = args.standing_patients or 0 return sitting,standing end, countStaffOfCategory = function(_, category) if category == "Doctor" then return args.doctors or 0 elseif category == "Consultant" then return args.consultants or 0 elseif category == "Junior" then return args.juniors or 0 end end } return hospital end describe("Vip", function() local vip local base_rating before_each(function() vip = getVip() -- We'll set the next room manually so stub this function stub(vip, "getNextRoom") vip.humanoid_class = 'vip' base_rating = vip.vip_rating -- Base rating range to account for randomness assert.True(base_rating <= 12 and base_rating >= 7) assert.are.equal(0, vip.room_eval) end) it("Can represent vip as a string", function() local result = vip:tostring() assert.matches(result, "humanoid[ -]*class.*vip") assert.matches(result, "Warmth.*Happiness.*Fatigue") assert.matches(result, "Actions: %[%]") end) it("Single room evaluation", function() vip.next_room = create_room("research", {dying_plants=2, alive_plants=1, bin=true, extinguisher=true, working_machines=1}) vip:evaluateRoom() -- Total rating unchanged assert.are.equal(base_rating, vip.vip_rating) -- Room eval has changed: plants -1, bin +1, extinguisher: +1 assert.are.equal(2, vip.room_eval) -- Next room was fetched (not sure why though??) assert.stub(vip.getNextRoom).was.called_with(vip) end) it("Evaluate multiple rooms", function() local rooms = { create_room("gp", {alive_plants=3, dying_plants=1}), -- +1 to room rating create_room("research",{has_patient=true}), -- +6 to vip rating (about to kill a live patient) create_room("ultrascan",{breaking_machines=1, bin=true}), -- no change } for _, room in pairs(rooms) do vip.next_room = room vip:evaluateRoom() end assert.are.equal(base_rating+6, vip.vip_rating) -- Room eval has changed: plants -1, bin +1, extinguisher: +1 assert.are.equal(1, vip.room_eval) assert.stub(vip.getNextRoom).was.called(3) end) it("Calculate simple VIP rating", function() -- Create a new world + hospital for each case to test variation in VIP rating vip.world = create_world({num_rooms = 10}) vip.hospital = create_hospital({ doctors = 5, juniors = 5, consultants = 3, sitting_patients = 10, standing_patients = 5, }) vip.hospital.num_visitors = 10 vip.hospital.num_deaths = 10 vip.hospital.num_cured = 30 -- Establish internal VIP count vip.room_eval = 9 vip.num_visited_rooms = 3 local base_vips = vip.hospital.num_vips_ty -- Calculate VIP rating vip:setVIPRating() -- Check result assert.are.equal(15, vip.vip_rating) assert.are.equal(0, vip.cash_reward) assert.are.equal(-25, vip.rep_reward) assert.are.equal(15, vip.vip_message) assert.are.equal(base_vips + 1, vip.hospital.num_vips_ty) end) end) CorsixTH-0.70.0/CorsixTH/Luatest/spec/entities/machine_spec.lua000066400000000000000000000055411522247547500243460ustar00rootroot00000000000000--[[ Copyright (c) 2014 Pavel "sofo" Schoffer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] require("corsixth") require("class_test_base") require("utility") require("announcer") require("entity") require("entities/object") require("entities/machine") describe("object.lua: ", function() local stub_world = {map = {}} local stub_hospital = {world = stub_world} _G["Hospital"] = stub_hospital local tile_x, tile_y, direction = 10, 10, "west" local function createMachineWithFakeInput() stub(stub_world, "addObjectToTile") stub(stub_world, "clearCaches") local offset = {0, 0} local orientation = { render_attach_position = offset, use_position = {0, 0} } local fake_object_type = { ticks = false, idle_animations = {west = true}, orientations = {west = orientation} } return Machine(stub_hospital, fake_object_type, tile_x, tile_y, direction) end it("can update dynamic Info", function() local machine = createMachineWithFakeInput() machine:incrementUsageCounts() machine:updateDynamicInfo() assert.are.equal(1, machine.times_used) assert.are.equal(1, machine.total_usage) end) it("can transfer state", function() local machine1 = createMachineWithFakeInput() machine1:updateDynamicInfo() local machine2 = createMachineWithFakeInput() machine2:setState(machine1:getState()) assert.are.equal(machine1.times_used, machine2.times_used) assert.are.equal(machine1.total_usage, machine2.total_usage) end) it("setting null state doesn't clear values", function() local machine = createMachineWithFakeInput() machine:incrementUsageCounts() machine:updateDynamicInfo() assert.are.equal(1, machine.times_used) assert.are.equal(1, machine.total_usage) machine:setState(nil) assert.are.equal(1, machine.times_used) assert.are.equal(1, machine.total_usage) end) end) CorsixTH-0.70.0/CorsixTH/Luatest/spec/entities/object_spec.lua000066400000000000000000000043371522247547500242120ustar00rootroot00000000000000--[[ Copyright (c) 2014 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] require("class_test_base") require("utility") require("entity") require("entities.object") describe("object.lua: ", function() local stub_world = {map = {}} local stub_hospital = {world = stub_world} _G["Hospital"] = stub_hospital local fake_object_type = {ticks = false, idle_animations = {west = true}} local tile_x, tile_y, direction = 10, 10, "west" local function createObjectWithFakeInput() stub(stub_world, "getLocalPlayerHospital") stub(stub_world, "addObjectToTile") stub(stub_world, "clearCaches") return Object(stub_hospital, fake_object_type, tile_x, tile_y, direction) end it("can create Object objects", function() local object = createObjectWithFakeInput() assert.are.equal(fake_object_type, object.object_type) assert.are.equal(stub_world.map, object.world.map) end) it("can transfer state", function() local object1 = createObjectWithFakeInput() object1.times_used = object1.times_used + 7 local object2 = createObjectWithFakeInput() assert.are_not.equal(object1.times_used, object2.times_used) object2:setState(object1:getState()) assert.are.equal(object1.times_used, object2.times_used) end) end) CorsixTH-0.70.0/CorsixTH/Luatest/spec/utility_spec.lua000066400000000000000000000064601522247547500226220ustar00rootroot00000000000000require("utility") if _VERSION ~= "Lua 5.1" then loadstring = load -- luacheck: ignore 121 end describe("serialize", function() it("serializes a basic string", function() local res = serialize('hello') assert.equal('[[hello]]', res) end) it("serializes a string that includes ]]", function() local res = serialize('he]]o') assert.equal('[=[he]]o]=]', res) end) it("serializes an array of primitives", function() local res = serialize({'hello', 'happy', 'people', 'everywhere', 42, false}) assert.equal('{[[hello]],[[happy]],[[people]],[[everywhere]],42,false}', res) end) it("serializes a pretty array", function() local res = serialize({'hello', 'happy', 'people', 'everywhere', 42, false}, {pretty = true}) assert.equal([=[{ [[hello]], [[happy]], [[people]], [[everywhere]], 42, false }]=], res) end) it("serializes a simple key value table", function() local test_tbl = {foo='bar', [true]='candy', bar=42} local res = serialize(test_tbl) local res_tbl = loadstring_envcall("return " .. res)({}) assert.same(test_tbl, res_tbl) end) it("serializes a nested table", function() local test_tbl = {foo='bar', bar={hello='world'}} local res = serialize(test_tbl) local res_tbl = loadstring_envcall("return " .. res)({}) assert.same(test_tbl, res_tbl) end) it("serializes a table with nested keys", function() local test_tbl = {[{hello='world'}] = true, [1] = 'tree'} local res = serialize(test_tbl) local res_tbl = loadstring_envcall("return " .. res)({}) local found_tbl = false for k, _ in pairs(res_tbl) do if type(k) == 'table' then assert.same({hello='world'}, k) found_tbl = true break end end if not found_tbl then assert("table key not found") end assert.equals(test_tbl[1], res_tbl[1]) end) it("respects max_depth if set", function() local test_tbl = {[{hello='world'}] = true, [1] = 'tree'} local res = serialize(test_tbl, {max_depth=1}) assert.has.match('{...}', res, nil, true) res = serialize(test_tbl, {max_depth=2}) assert.has_no.match('{...}', res, nil, true) end) it("detects cycles", function() local test_tbl = {[{hello='world'}] = true, [1] = 'tree'} test_tbl[2] = test_tbl local res = serialize(test_tbl, {detect_cycles=true}) assert.has.match('', res, nil, true) end) it("doesn't report cycles with only max_depth", function() local test_tbl = {[{hello='world'}] = true, [1] = 'tree'} test_tbl[2] = test_tbl local res = serialize(test_tbl, {max_depth=4}) assert.has_no.match('', res, nil, true) assert.has.match('{...}', res, nil, true) end) it("serializes nil", function() local res = serialize(nil) assert.equals('nil', res) end) end) describe("array_join", function() it("joins a basic array of numbers to a comma separated string", function() local res = array_join({5,3,1,0}) assert.equals("5,3,1,0", res) end) it("joins a string array with custom separator", function() local res = array_join({"a"," long"," hard","able"}," very") assert.equals("a very long very hard veryable", res) end) it("converts a non-table to a string", function() local res = array_join(1) assert.equals("1", res) end) end) CorsixTH-0.70.0/CorsixTH/Original_Logo.svg000066400000000000000000002117341522247547500202760ustar00rootroot00000000000000 image/svg+xml CorsixTH-0.70.0/CorsixTH/Original_Logo_Text.svg000066400000000000000000001671041522247547500213030ustar00rootroot00000000000000 image/svg+xml CorsixTH-0.70.0/CorsixTH/Src/000077500000000000000000000000001522247547500155505ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/Src/CMakeLists.txt000066400000000000000000000057521522247547500203210ustar00rootroot00000000000000# Modify the config.h based upon our selection of options configure_file(${CMAKE_SOURCE_DIR}/CorsixTH/Src/config.h.in ${CMAKE_BINARY_DIR}/CorsixTH/Src/config.h) target_sources(CorsixTH_lib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/random.c ${CMAKE_CURRENT_SOURCE_DIR}/bootstrap.cpp ${CMAKE_CURRENT_SOURCE_DIR}/iso_fs.cpp ${CMAKE_CURRENT_SOURCE_DIR}/lua_rnc.cpp ${CMAKE_CURRENT_SOURCE_DIR}/midi_player.cpp ${CMAKE_CURRENT_SOURCE_DIR}/persist_lua.cpp ${CMAKE_CURRENT_SOURCE_DIR}/run_length_encoder.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sdl_audio.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sdl_core.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sdl_wm.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_gfx.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_gfx_font.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_gfx_sdl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_anims.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_gfx.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_iso.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_lfs_ext.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_map.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_midi.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_movie.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_sound.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_strings.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_ui.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_map.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_map_overlays.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_movie.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_pathfind.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_sound.cpp ${CMAKE_CURRENT_SOURCE_DIR}/th_strings.cpp ${CMAKE_CURRENT_SOURCE_DIR}/xmi2mid.cpp ) # These are for IDEs such as XCode and MSVC to track headers within their # project files. They are not used by the build system. target_sources(CorsixTH_lib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bootstrap.h ${CMAKE_CURRENT_SOURCE_DIR}/cp437_table.h ${CMAKE_CURRENT_SOURCE_DIR}/cp936_table.h ${CMAKE_CURRENT_SOURCE_DIR}/cpmik_table.h ${CMAKE_CURRENT_SOURCE_DIR}/iso_fs.h ${CMAKE_CURRENT_SOURCE_DIR}/lua_rnc.h ${CMAKE_CURRENT_SOURCE_DIR}/lua_sdl.h ${CMAKE_CURRENT_SOURCE_DIR}/persist_lua.h ${CMAKE_CURRENT_SOURCE_DIR}/run_length_encoder.h ${CMAKE_CURRENT_SOURCE_DIR}/th.h ${CMAKE_CURRENT_SOURCE_DIR}/th_gfx.h ${CMAKE_CURRENT_SOURCE_DIR}/th_gfx_font.h ${CMAKE_CURRENT_SOURCE_DIR}/th_gfx_sdl.h ${CMAKE_CURRENT_SOURCE_DIR}/th_lua.h ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_internal.h ${CMAKE_CURRENT_SOURCE_DIR}/th_lua_ui.h ${CMAKE_CURRENT_SOURCE_DIR}/th_map.h ${CMAKE_CURRENT_SOURCE_DIR}/th_map_overlays.h ${CMAKE_CURRENT_SOURCE_DIR}/th_movie.h ${CMAKE_CURRENT_SOURCE_DIR}/th_pathfind.h ${CMAKE_CURRENT_SOURCE_DIR}/th_sound.h ${CMAKE_CURRENT_SOURCE_DIR}/th_strings.h ${CMAKE_CURRENT_SOURCE_DIR}/xmi2mid.h ${CMAKE_BINARY_DIR}/CorsixTH/Src/config.h ) target_sources(CorsixTH PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${CMAKE_CURRENT_SOURCE_DIR}/main.h ) CorsixTH-0.70.0/CorsixTH/Src/bootstrap.cpp000066400000000000000000000446021522247547500202770ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #include #include "lua.hpp" #include "th_lua.h" /* Often, an error occurs during the CorsixTH startup process. Examples of such errors include: 1) Unable to find CorsixTH.lua 2) Incorrect theme_hospital_install setting 3) Lua syntax error in modified file When such errors occur, we want to report them to the user. The simple way of doing this is printing the error details to stdout. Unfortunately, Windows users tend to disregard stdout, and OS X users never see it unless launching CorsixTH from a terminal. Hence the approach taken is to print the error details to our game window. Doing so is not trivial though, as we cannot rely on having any external Lua scripts or external graphical resources. Thus the font data and Lua script are hardcoded into this file (the font itself is a homemade bitmap font, as we cannot rely on TH fonts being present). */ namespace { // clang-format off constexpr int first_bootstrap_code_line_number = __LINE__ + 2; constexpr std::array bootstrap_code{ {"local lines, dat, tab, pal, err = {}, ...", "local function t(s) return s:gsub('\\t', ' ') end", "for s in tostring(err):gmatch'[^\\r\\n]+' do lines[#lines+1] = t(s) end", "local TH, SDL, rnc = require'TH', require'sdl', require'rnc'.decompress", "if not SDL.init('video') then error'Unable to initialise video' end", "local w, h = 640, 480", "local function dernc(x) return x:match'^RNC' and assert(rnc(x)) or x end", "local video = TheApp and TheApp.video or TH.surface(w, h)", "video:setCaption('CorsixTH - Error during startup')", "local sheet, font = TH.sheet(), TH.bitmap_font()", "local palette = TH.palette(dernc(pal))", "sheet:setPalette(palette)", "if not sheet:load(dernc(tab), dernc(dat), true, video) then error'Unable to load sheet' end", "font:setSheet(sheet):setSeparation(1, 0)", "local bx, by, bw, bh = 20, 0, 100, 16", // Print message and draw button: "local function draw()", " video:startFrame()", " video:fillBlack()", " local y = 20", " for _, s in ipairs(lines) do", " y = font:drawWrapped(video, s, 20, y, w - 40)", " end", " by = y + 20", " video:drawRect(video:mapRGB(151, 23, 23), bx, by, bw, bh)", " video:drawRect(video:mapRGB(171, 53, 53), bx + 1, by + 1, bw - 2, bh - 2)", " font:draw(video, 'Exit', bx, by + 1, bw, bh)", " video:endFrame()", "end", "SDL.wm.showCursor(true)", "draw()", "local running = true", // Minimal event handler: "repeat", " local e, where = SDL.mainloop(coroutine.create(function()", " while running do", " local e, _, x, y = coroutine.yield(true)", " if e == 'frame' then draw()", " elseif e == 'buttonup' then", " x, y = x - bx, y - by", " running = x < 0 or bw <= x or y < 0 or bh <= y", " end", " end", " end))", " if running then print(e) end", "until where ~= 'callback'", nullptr}}; // clang-format on /* Start autogenerated content */ /* Data from bootstrap_font.tab inserted by mkbootstrap.lua: */ constexpr std::array bootstrap_font_tab{ 0x52, 0x4E, 0x43, 0x01, 0x00, 0x00, 0x05, 0x46, 0x00, 0x00, 0x01, 0xE1, 0xFB, 0xF2, 0x66, 0x51, 0xBE, 0xEF, 0x0C, 0x09, 0x59, 0x60, 0x10, 0x34, 0x43, 0x54, 0xA6, 0x46, 0xA2, 0x08, 0x00, 0xA0, 0xC4, 0x01, 0xF6, 0x3D, 0x00, 0x00, 0xAF, 0xAE, 0x05, 0x01, 0x03, 0x01, 0x0C, 0x0B, 0xAE, 0x9E, 0x03, 0x0C, 0x16, 0x08, 0x0C, 0x47, 0x63, 0xEA, 0x0C, 0x74, 0x07, 0x0C, 0x9A, 0xEA, 0xEA, 0x06, 0x0C, 0xC8, 0x02, 0x0C, 0xD1, 0x1D, 0x92, 0xEE, 0x4B, 0x43, 0x09, 0x01, 0x3B, 0xD5, 0x34, 0x4F, 0xAA, 0xF4, 0xCC, 0xA4, 0x56, 0x60, 0xDA, 0x66, 0x54, 0x1D, 0x66, 0xA3, 0x3E, 0x7C, 0x04, 0x0C, 0x9B, 0xD3, 0x4C, 0xB5, 0xD5, 0x52, 0x93, 0xF2, 0x13, 0x24, 0x12, 0x02, 0x31, 0x52, 0x49, 0x92, 0x71, 0x97, 0x54, 0x7B, 0xB9, 0x8C, 0x6A, 0xC3, 0xB3, 0x51, 0xCD, 0xB5, 0x4E, 0xE5, 0x4E, 0x33, 0xF6, 0x1D, 0xAD, 0x0F, 0x34, 0xAA, 0x29, 0xDB, 0x8C, 0x4E, 0xAA, 0xBB, 0x12, 0x9A, 0x91, 0x49, 0x4A, 0xB1, 0xD7, 0x48, 0x2E, 0xF5, 0x10, 0x04, 0x01, 0x49, 0x34, 0x58, 0x92, 0x54, 0x76, 0x97, 0xE9, 0x91, 0xB9, 0x12, 0x4E, 0xDB, 0x03, 0x05, 0x50, 0x6D, 0x2B, 0x36, 0xAA, 0x50, 0xDC, 0xA8, 0x6E, 0x2E, 0x3D, 0x9C, 0x33, 0xA5, 0xBD, 0x25, 0xC9, 0xDD, 0xF8, 0x09, 0x92, 0x1F, 0x06, 0x45, 0x6D, 0xAA, 0x69, 0x66, 0x92, 0x97, 0xB7, 0x54, 0xB7, 0xDB, 0x1F, 0x39, 0xF8, 0x12, 0x07, 0x41, 0x95, 0x2F, 0x1B, 0x49, 0x41, 0x4B, 0x75, 0xDD, 0x99, 0x49, 0x55, 0x70, 0x75, 0xBF, 0x92, 0x24, 0xA7, 0xC4, 0x49, 0x92, 0xD9, 0xF5, 0x6B, 0x82, 0x14, 0x08, 0x38, 0xEA, 0x65, 0x8C, 0x6A, 0x43, 0x9B, 0x51, 0x5D, 0xE5, 0x46, 0x7F, 0xB5, 0xC7, 0xA4, 0x95, 0x91, 0xAE, 0xD0, 0x4C, 0xC6, 0xE2, 0x33, 0xC9, 0xFF, 0x09, 0x92, 0x1F, 0x09, 0x34, 0x47, 0x24, 0xA9, 0x65, 0x7D, 0x9A, 0x46, 0x99, 0x92, 0x72, 0xB6, 0xD4, 0x9A, 0xB9, 0xF4, 0x10, 0x0A, 0x19, 0x54, 0x32, 0x1B, 0xCF, 0x3E, 0x4C, 0xAA, 0x5E, 0x97, 0x31, 0x6D, 0xAA, 0xF4, 0x48, 0x39, 0x87, 0xB0, 0x49, 0x09, 0xCF, 0xE9, 0xFB, 0x99, 0x90, 0x46, 0x2C, 0x92, 0x54, 0x4B, 0x6D, 0xE9, 0x91, 0x8A, 0x24, 0x49, 0xA6, 0xC0, 0xD9, 0x75, 0xC5, 0x91, 0xBD, 0xF0, 0x9C, 0x75, 0x45, 0xA8, 0x19, 0xFA, 0x46, 0x3A, 0x52, 0x75, 0x5A, 0x8C, 0x2A, 0x75, 0x3B, 0xAA, 0x95, 0xBD, 0x27, 0xBF, 0x27, 0x39, 0xE3, 0x04, 0x0D, 0x41, 0xD5, 0x24, 0x31, 0x92, 0x42, 0x5E, 0xA4, 0x6A, 0x85, 0x9A, 0xB4, 0xAA, 0x12, 0x9A, 0xD0, 0xF3, 0x39, 0x41, 0x15, 0x0E, 0x37, 0x92, 0x24, 0x5F, 0x84, 0xA5, 0xD5, 0xDE, 0x33, 0x93, 0xB6, 0xD9, 0xAA, 0x6F, 0xE4, 0x2E, 0xF6, 0x14, 0x0F, 0x61, 0x92, 0x52, 0xA4, 0xCA, 0x6C, 0xCD, 0x4C, 0x86, 0x94, 0x92, 0xEA, 0xA5, 0x7F, 0x39, 0xD9, 0x72, 0xAF, 0x11, 0x10, 0x04, 0xAA, 0x1C, 0xED, 0x47, 0x3D, 0xF6, 0x97, 0x3D, 0xF4, 0x7D, 0x0A, 0x5E, 0xAF, 0x44, 0x80, 0xAA, 0x57, 0x35, 0xAA, 0xA1, 0xF7, 0x34, 0xBA, 0x92, 0xA4, 0xD6, 0xF7, 0x7A, 0xF7, 0x5B, 0x1A, 0x18, 0x11, 0x35, 0xAA, 0xC4, 0x48, 0xAA, 0x4C, 0x6E, 0xD6, 0x91, 0x93, 0x12, 0x52, 0xBA, 0xE0, 0x35, 0x8D, 0xFF, 0x5C, 0x1F, 0x27, 0x12, 0x54, 0xE9, 0x44, 0x51, 0xA5, 0x67, 0x47, 0x92, 0x7F, 0x99, 0x64, 0x37, 0xBA, 0x38, 0x49, 0xE2, 0xA8, 0xCF, 0xF2, 0x75, 0x53, 0x0D, 0x13, 0xFA, 0x24, 0x1E, 0x51, 0xB9, 0xC9, 0x29, 0x40, 0x52, 0x7D, 0x0F}; /* Data from bootstrap_font.dat inserted by mkbootstrap.lua: */ constexpr std::array bootstrap_font_dat{ 0x52, 0x4E, 0x43, 0x01, 0x00, 0x00, 0x13, 0x68, 0x00, 0x00, 0x05, 0xEC, 0xD3, 0x6C, 0x7E, 0xAB, 0xBE, 0xEF, 0x94, 0x90, 0x81, 0x61, 0x50, 0x34, 0x44, 0x33, 0x33, 0x53, 0x66, 0x64, 0x64, 0x26, 0x20, 0x60, 0x47, 0x1E, 0x01, 0xFF, 0x84, 0x41, 0x01, 0x02, 0xFF, 0x01, 0x84, 0x09, 0xFF, 0xFF, 0x14, 0x2F, 0x06, 0xCD, 0x9B, 0xCC, 0x8C, 0x89, 0x04, 0x1B, 0x42, 0x06, 0x65, 0x64, 0x71, 0x3B, 0x44, 0x01, 0x06, 0x78, 0xE0, 0xE9, 0xD9, 0x9A, 0x2B, 0x36, 0x72, 0xB0, 0x43, 0x84, 0x59, 0x1B, 0x4D, 0x0A, 0xB6, 0x75, 0x87, 0x91, 0x32, 0xAB, 0x86, 0x02, 0xCC, 0xDE, 0x84, 0x07, 0x82, 0x31, 0x85, 0xCC, 0x45, 0x90, 0x4A, 0x84, 0xE7, 0xC4, 0x9C, 0x42, 0xFC, 0x29, 0x66, 0x0C, 0xA4, 0x94, 0x9D, 0xD9, 0x38, 0x75, 0x35, 0x42, 0x98, 0x07, 0x6D, 0x70, 0x91, 0x1B, 0x03, 0x8E, 0x54, 0x40, 0x9B, 0xED, 0x89, 0x19, 0x44, 0x87, 0x02, 0x9D, 0x8B, 0x5C, 0x3A, 0x15, 0x19, 0xF8, 0xB7, 0xAC, 0x43, 0x01, 0x15, 0x93, 0x0B, 0x5D, 0x03, 0x83, 0x40, 0x1A, 0x56, 0xA5, 0x1D, 0x03, 0xF2, 0x93, 0xA2, 0x50, 0x03, 0xB6, 0x11, 0x1C, 0xF2, 0x8E, 0x8E, 0x60, 0x87, 0x42, 0x89, 0x93, 0x40, 0x93, 0x64, 0xA2, 0x81, 0x04, 0x29, 0x23, 0x11, 0x4F, 0x36, 0xA0, 0xBA, 0x8E, 0xA2, 0xA4, 0x1A, 0x08, 0x75, 0x65, 0x6E, 0x9C, 0xAC, 0x14, 0xC3, 0x18, 0x67, 0x33, 0x16, 0x4E, 0x10, 0x31, 0x8C, 0x11, 0x9B, 0x17, 0x7C, 0xCC, 0x44, 0x57, 0x8F, 0xF7, 0x74, 0x0E, 0x3F, 0x71, 0x80, 0x64, 0x08, 0x39, 0x90, 0xBC, 0x28, 0x87, 0x3A, 0x15, 0x8B, 0x70, 0x30, 0x9D, 0x04, 0x14, 0x0B, 0x89, 0x1C, 0x95, 0x21, 0x8F, 0x50, 0xB5, 0x2D, 0xD9, 0x85, 0x1B, 0x80, 0x72, 0xEC, 0x0A, 0xCE, 0x6B, 0xA8, 0xDB, 0x86, 0x05, 0x35, 0x93, 0x84, 0x12, 0x8B, 0xE6, 0xEC, 0x84, 0xBF, 0x79, 0x5F, 0xDA, 0xA4, 0xC8, 0x97, 0xF8, 0x84, 0x42, 0x9B, 0x19, 0xB4, 0x96, 0xCB, 0xD4, 0x85, 0x21, 0x84, 0x08, 0xB3, 0x5B, 0x1F, 0x88, 0x60, 0xCE, 0x85, 0x0F, 0x56, 0x92, 0x92, 0xA4, 0x05, 0xA6, 0x43, 0x46, 0x9E, 0x94, 0x08, 0x8B, 0x58, 0x17, 0x3B, 0x87, 0xC9, 0xAA, 0x86, 0x48, 0x83, 0x23, 0x12, 0x83, 0x52, 0x90, 0x89, 0x38, 0x4A, 0x50, 0x89, 0x52, 0x32, 0x98, 0x45, 0xB9, 0x84, 0x48, 0x6D, 0x98, 0x17, 0x9E, 0xA2, 0x37, 0x66, 0xC2, 0xA2, 0xB4, 0x5A, 0x2C, 0x54, 0xE5, 0xC5, 0x15, 0x74, 0x44, 0x67, 0x06, 0x50, 0x6E, 0xE1, 0x06, 0x2F, 0x2D, 0xC8, 0x99, 0x0D, 0xB6, 0x4D, 0x79, 0x24, 0x0E, 0x07, 0x1D, 0xE8, 0x91, 0x94, 0x0F, 0xDE, 0x62, 0x3F, 0x60, 0x0F, 0x27, 0x63, 0xE5, 0x40, 0x78, 0x85, 0xB8, 0x15, 0x09, 0xCA, 0x22, 0x2B, 0x19, 0x09, 0x53, 0xF9, 0x84, 0x69, 0x6D, 0x32, 0x6B, 0xAE, 0x45, 0xCA, 0x90, 0xE6, 0x12, 0x6A, 0xB4, 0xA2, 0xD8, 0x4C, 0xFA, 0xA1, 0x5D, 0xEF, 0xC2, 0xE4, 0x02, 0x00, 0xF9, 0x5B, 0x05, 0x13, 0x6B, 0xC2, 0xB9, 0xAA, 0x17, 0xD8, 0xBA, 0xB1, 0xF9, 0xA0, 0x05, 0x4C, 0x2F, 0x9A, 0x61, 0xBA, 0x52, 0x94, 0x63, 0xB9, 0x16, 0x9D, 0xA3, 0x65, 0x84, 0x3D, 0x4A, 0x64, 0x9C, 0x96, 0x20, 0xF6, 0x30, 0x85, 0x68, 0x5A, 0x50, 0x95, 0xE5, 0x30, 0xFD, 0x90, 0x1C, 0xE2, 0xE6, 0x43, 0x0B, 0x6A, 0x9F, 0x23, 0x12, 0x27, 0xC2, 0x81, 0x9D, 0x55, 0x85, 0xC7, 0x01, 0xA5, 0x58, 0x01, 0xC7, 0xD3, 0xF3, 0xFD, 0x87, 0x0B, 0x58, 0x7C, 0x52, 0xCA, 0x6C, 0x47, 0xF1, 0x39, 0x19, 0x8A, 0x9A, 0xF7, 0x21, 0x0A, 0x67, 0x06, 0xBE, 0xD3, 0x88, 0xCF, 0x47, 0x34, 0x94, 0x09, 0x04, 0x40, 0x64, 0x09, 0xE6, 0x4F, 0xEA, 0xA5, 0x55, 0x4E, 0xA5, 0x95, 0xE5, 0x50, 0x0D, 0x06, 0x46, 0x61, 0x85, 0x23, 0x08, 0xAB, 0xF9, 0x48, 0x09, 0x33, 0x44, 0x50, 0x07, 0x21, 0x3C, 0xA8, 0x61, 0x9D, 0x34, 0x84, 0x22, 0x5C, 0x44, 0xFD, 0xA0, 0x6D, 0xE2, 0x6E, 0x56, 0x3A, 0xA3, 0x19, 0x62, 0x4A, 0x82, 0x0C, 0x98, 0x25, 0xCF, 0x24, 0xC8, 0x35, 0x35, 0x1A, 0x12, 0x59, 0x5D, 0x98, 0xD6, 0x2E, 0x76, 0x7F, 0x2B, 0xF4, 0x30, 0x24, 0xAF, 0x4C, 0x5C, 0x28, 0x2E, 0x28, 0xAA, 0x24, 0xE5, 0x17, 0xFF, 0x55, 0x42, 0xC9, 0x54, 0x1B, 0x75, 0xDD, 0xBE, 0x47, 0x9B, 0x11, 0x22, 0x0E, 0xCC, 0xAA, 0x88, 0x88, 0x66, 0x64, 0xCA, 0xD0, 0x88, 0x08, 0x41, 0x06, 0xF0, 0x17, 0x45, 0x82, 0x07, 0xAE, 0x80, 0x9F, 0xB2, 0x23, 0x23, 0xAB, 0x8C, 0xE9, 0xFA, 0xC3, 0x53, 0xD0, 0x06, 0x88, 0x67, 0x59, 0xB3, 0x92, 0xD2, 0xE9, 0xA8, 0x82, 0x0A, 0xA7, 0xC9, 0x44, 0x8E, 0x47, 0x15, 0x82, 0x37, 0x80, 0x9B, 0x88, 0xF9, 0x08, 0x27, 0xDC, 0x05, 0xC2, 0xD3, 0x94, 0x59, 0x55, 0x41, 0x7F, 0x91, 0xFF, 0xDB, 0x16, 0x8C, 0x0C, 0x27, 0x76, 0x6E, 0x26, 0x81, 0xAA, 0xA1, 0x8F, 0xC1, 0x20, 0x63, 0x0B, 0xC3, 0x89, 0x49, 0x31, 0x42, 0x93, 0x8C, 0x69, 0x07, 0x7B, 0x3F, 0x9E, 0x0E, 0x45, 0x56, 0x85, 0x91, 0xE9, 0x78, 0xCC, 0xF9, 0x08, 0xA4, 0xD5, 0x92, 0x70, 0x89, 0x16, 0xC3, 0x0C, 0x92, 0x18, 0xA7, 0x59, 0xF2, 0x08, 0xCD, 0xE0, 0xF2, 0xA8, 0x97, 0x4C, 0xF3, 0x83, 0xA7, 0x1C, 0x68, 0x54, 0x17, 0x03, 0x8A, 0x20, 0x57, 0x50, 0x58, 0x31, 0x11, 0x72, 0x87, 0x71, 0x25, 0x2E, 0xE7, 0xE4, 0x79, 0x90, 0x10, 0x50, 0x1D, 0x54, 0x88, 0xE1, 0xB7, 0x8F, 0x18, 0x02, 0x77, 0xA8, 0x0C, 0x64, 0x11, 0x8C, 0xC9, 0x21, 0xE6, 0x07, 0xCB, 0x5E, 0x8F, 0xB2, 0x25, 0x0B, 0x7B, 0x0A, 0x25, 0x8B, 0x95, 0xD0, 0x82, 0xF4, 0xE2, 0x34, 0x20, 0xEA, 0x5F, 0x36, 0x8C, 0xA1, 0x94, 0x50, 0xFD, 0x69, 0x1B, 0xCB, 0xB0, 0x8B, 0x4F, 0xBF, 0xB5, 0xC7, 0x0B, 0xC2, 0xC5, 0x17, 0xEE, 0x8C, 0x91, 0xFB, 0xD3, 0x0D, 0xD1, 0xE1, 0x98, 0x3A, 0xC9, 0x4D, 0x08, 0xF4, 0xB8, 0x59, 0x11, 0x78, 0x48, 0x20, 0x8B, 0x25, 0x08, 0xBF, 0xF2, 0x89, 0x59, 0xDB, 0x31, 0xD6, 0x17, 0x9E, 0xCA, 0x74, 0x20, 0x8E, 0x0E, 0xD5, 0x07, 0x3B, 0x5D, 0x51, 0x8E, 0x86, 0x71, 0xCE, 0xE6, 0x2C, 0x54, 0xB2, 0xC6, 0x8B, 0x02, 0x7D, 0x7F, 0xC2, 0x61, 0xC2, 0x0B, 0xF0, 0x85, 0x84, 0xCC, 0x98, 0x11, 0x4A, 0x8D, 0x66, 0x03, 0xF8, 0x54, 0x57, 0xB0, 0xF0, 0x45, 0x8C, 0xFF, 0xD3, 0x61, 0xA8, 0x82, 0x09, 0xFF, 0x00, 0xCA, 0x0B, 0x8C, 0x9B, 0x75, 0x24, 0x09, 0x07, 0x00, 0xF9, 0xAC, 0xC1, 0xBB, 0xB7, 0x9E, 0xE8, 0x41, 0xE4, 0x2B, 0xCE, 0xAB, 0x2D, 0x9D, 0xEA, 0xFD, 0x41, 0x00, 0x42, 0x8F, 0xC9, 0xF4, 0x87, 0x54, 0x61, 0x2D, 0x42, 0x51, 0x3F, 0x52, 0x29, 0xCB, 0x87, 0x0F, 0x1F, 0xE4, 0x11, 0x33, 0x8E, 0xE5, 0xCD, 0x86, 0x6F, 0x96, 0x30, 0x40, 0x06, 0xF5, 0x7F, 0x42, 0xB2, 0x61, 0x93, 0x55, 0x87, 0xFE, 0x86, 0xE3, 0x67, 0x49, 0xA2, 0xC3, 0x1F, 0x6F, 0xEF, 0x76, 0x4E, 0xE5, 0x12, 0x89, 0x3E, 0x10, 0xFF, 0x90, 0x99, 0xBF, 0x40, 0x45, 0xAA, 0xFC, 0x10, 0xDC, 0xC1, 0xF1, 0x44, 0x13, 0x50, 0x58, 0x29, 0x61, 0x28, 0x95, 0x70, 0x05, 0x7E, 0x21, 0x8D, 0xE3, 0x83, 0xB2, 0x8F, 0xB2, 0xA2, 0x10, 0xE0, 0x93, 0xAC, 0xFD, 0x88, 0x38, 0x38, 0xC4, 0x46, 0x23, 0x4A, 0x41, 0xF8, 0x0F, 0xA8, 0x12, 0xD5, 0x88, 0x7F, 0x92, 0xA2, 0x21, 0xBE, 0xF1, 0x0A, 0x11, 0x92, 0x11, 0x99, 0xAB, 0xEA, 0xC3, 0x85, 0x22, 0x1B, 0xA2, 0xDF, 0xE9, 0x7E, 0x18, 0x95, 0xB6, 0x48, 0xD1, 0x9F, 0x50, 0xCF, 0x11, 0xBE, 0xF9, 0xB9, 0x1E, 0xC7, 0x9B, 0x00, 0xE3, 0x62, 0xAA, 0x98, 0x0E, 0x01, 0x87, 0xC0, 0x27, 0x59, 0x53, 0x83, 0x47, 0xBA, 0x96, 0xEA, 0xFF, 0x88, 0x68, 0xEA, 0x08, 0xD3, 0x58, 0xCE, 0x0F, 0x05, 0x8A, 0xDA, 0x27, 0x6E, 0x15, 0x18, 0xF2, 0xAF, 0x38, 0xEA, 0x54, 0xA0, 0x89, 0x74, 0xA1, 0x4B, 0x16, 0x9A, 0x14, 0x4D, 0x06, 0x85, 0x1D, 0xEC, 0xEF, 0x52, 0x54, 0x93, 0x2C, 0x09, 0xA3, 0xE9, 0xC6, 0x1C, 0x75, 0xAD, 0xD8, 0x14, 0x2E, 0x31, 0x58, 0x15, 0xCF, 0xB8, 0x44, 0x04, 0xAC, 0x1C, 0xF0, 0x22, 0xA9, 0x3B, 0x99, 0xD9, 0x44, 0x9D, 0x8E, 0xF8, 0x05, 0xE1, 0x04, 0x7B, 0x0B, 0x32, 0x13, 0x85, 0x22, 0xDE, 0x87, 0xAC, 0x27, 0xAB, 0x2A, 0x66, 0x75, 0xA1, 0x9B, 0xC0, 0x51, 0xE1, 0x59, 0x43, 0x5B, 0xC2, 0x37, 0xDF, 0x00, 0xD5, 0x98, 0x53, 0xE3, 0x95, 0xD0, 0xD2, 0x88, 0xF6, 0x8F, 0xFD, 0x28, 0x5D, 0xFE, 0x50, 0x34, 0xF4, 0x85, 0xEA, 0xA1, 0xC9, 0x0F, 0xA6, 0x72, 0xA8, 0x57, 0xF8, 0xEA, 0x50, 0x96, 0xC8, 0x84, 0x1E, 0xF8, 0x1F, 0x2C, 0xEB, 0xA9, 0xA3, 0x64, 0xE1, 0xAC, 0xE4, 0x2B, 0x50, 0xA4, 0x66, 0x54, 0x87, 0x63, 0xA2, 0x87, 0x00, 0x04, 0x29, 0x2F, 0x1E, 0x89, 0x51, 0xC1, 0xC0, 0xD0, 0xA4, 0xC7, 0x14, 0x52, 0xBA, 0x58, 0xF1, 0xC4, 0x41, 0x40, 0x57, 0xD5, 0xF2, 0xA6, 0x80, 0xEC, 0xB0, 0x30, 0xB1, 0x71, 0xDB, 0x45, 0xA4, 0x86, 0xAC, 0xA7, 0x98, 0xD4, 0xB3, 0x26, 0x42, 0xF1, 0x24, 0x31, 0x0C, 0x54, 0x4F, 0x68, 0x03, 0xB3, 0x0E, 0xD8, 0xB7, 0xE5, 0x8D, 0x1C, 0x8B, 0xD5, 0x08, 0x2D, 0x9E, 0xD0, 0x9C, 0x06, 0x62, 0xA1, 0xD5, 0x41, 0x3B, 0xA0, 0x5C, 0x7E, 0x92, 0x75, 0x84, 0x57, 0x38, 0x41, 0xA0, 0x25, 0xB3, 0xA6, 0xA3, 0x89, 0x33, 0xC2, 0xD1, 0x60, 0x72, 0x57, 0xB1, 0xC2, 0xC0, 0x2A, 0x79, 0xB0, 0xC2, 0x6C, 0x13, 0x01, 0x51, 0x21, 0xCB, 0x13, 0xA3, 0x32, 0x3E, 0x16, 0x49, 0xEF, 0x6C, 0xF1, 0x30, 0x90, 0x05, 0x5D, 0x85, 0x27, 0x1B, 0xAA, 0xC0, 0x74, 0x7A, 0x5C, 0x37, 0x01, 0x27, 0x05, 0xEA, 0x3C, 0x4A, 0x4B, 0x9F, 0x0D, 0xC8, 0x18, 0xA2, 0xD4, 0x20, 0x59, 0xCB, 0x19, 0x7D, 0x9C, 0x5F, 0x6C, 0x04, 0xCA, 0x28, 0x6E, 0x6B, 0xAC, 0x7B, 0x0C, 0xCE, 0xE5, 0x9E, 0x49, 0x84, 0x18, 0xDD, 0x1D, 0xAA, 0x39, 0x29, 0x9F, 0x30, 0xFA, 0x22, 0x67, 0x7C, 0x93, 0x92, 0x09, 0x13, 0x52, 0x2F, 0x1E, 0x4E, 0x6E, 0x61, 0x05, 0x18, 0x85, 0x07, 0xA9, 0x33, 0x1E, 0x68, 0xBD, 0x95, 0x31, 0x20, 0x8B, 0x2A, 0xA6, 0x70, 0x96, 0xC4, 0x5E, 0x3D, 0x95, 0x50, 0x79, 0x67, 0x46, 0xCA, 0x50, 0x20, 0xDF, 0x10, 0x2F, 0x08, 0xA0, 0x03, 0xBD, 0x2D, 0x50, 0xEE, 0x55, 0x2C, 0xEC, 0xC9, 0x5F, 0xB9, 0x11, 0x44, 0xEF, 0x4A, 0x21, 0x74, 0x74, 0x75, 0xF3, 0x86, 0xA2, 0x8A, 0x88, 0xA3, 0x77, 0x21, 0xC6, 0xC3, 0x21, 0x27, 0x8A, 0x42, 0x2C, 0x16, 0x3A, 0x88, 0x8A, 0x7F, 0x73, 0xEA, 0xD8, 0x79, 0x46, 0x1C, 0x67, 0x9B, 0x79, 0x61, 0x95, 0xF3, 0x44, 0x63, 0x65, 0x12, 0x8C, 0xA5, 0xBB, 0x88, 0x12, 0x67, 0x9F, 0x90, 0x5D, 0x95, 0x66, 0xA1, 0x9C, 0x57, 0x2A, 0x09, 0x34, 0x07, 0x7B, 0xD6, 0x02, 0xAC, 0x9A, 0x43, 0x10, 0xB5, 0x0A, 0xA0, 0x17, 0x1C, 0xA6, 0x00, 0x9B}; /* Data from bootstrap_font.pal inserted by mkbootstrap.lua: */ constexpr std::array bootstrap_font_pal{ 0x52, 0x4E, 0x43, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xB7, 0xFF, 0x76, 0x79, 0xBE, 0xEF, 0x90, 0x10, 0x90, 0x05, 0x01, 0x02, 0x00, 0x00, 0x20, 0x2B, 0x04, 0x00, 0x00, 0x00, 0x40, 0x08, 0x00, 0xB6, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x62, 0x79, 0xBE, 0x27, 0x3F}; /* End autogenerated content */ // Lua reader function for loading bootstrap_code const char* read_bootstrap_line(lua_State* L, void* data, size_t* size) { int& iLine = *static_cast(data); ++iLine; if (iLine < 0 || (iLine & 1)) { *size = 1; return "\n"; } else { const char* s = bootstrap_code[iLine / 2]; if (s == nullptr) { *size = 0; return nullptr; } else { *size = std::strlen(s); return s; } } } template inline void push(lua_State* L, Array data) { lua_pushlstring(L, reinterpret_cast(data.data()), data.size()); } } // namespace int bootstrap_lua_resources(lua_State* L) { push(L, bootstrap_font_dat); push(L, bootstrap_font_tab); push(L, bootstrap_font_pal); return 3; } int bootstrap_lua_error_report(lua_State* L) { int iLine = -first_bootstrap_code_line_number; if (luaT_load(L, read_bootstrap_line, &iLine, "@bootstrap.cpp", "t") == 0) { bootstrap_lua_resources(L); lua_pushvalue(L, 1); lua_call(L, 4, 0); return 0; } else return lua_error(L); } CorsixTH-0.70.0/CorsixTH/Src/bootstrap.h000066400000000000000000000026321522247547500177410ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_BOOTSTRAP_H_ #define CORSIX_TH_BOOTSTRAP_H_ #include "lua.hpp" //! Push onto the stack the bootstrap font data file, table file and palette. int bootstrap_lua_resources(lua_State* L); //! Provide an onscreen report of the error message on the top of the stack. int bootstrap_lua_error_report(lua_State* L); #endif // CORSIX_TH_BOOTSTRAP_H_ CorsixTH-0.70.0/CorsixTH/Src/config.h.in000066400000000000000000000074521522247547500176030ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_CONFIG_H_ #define CORSIX_TH_CONFIG_H_ /** Interpreter script searching options **/ // Whether to search in some possible local dirs according to a fixed list, // relative to current working dir or program dir #cmakedefine CORSIX_TH_SEARCH_LOCAL_DATADIRS // Name of the script, usually 'CorsixTH.lua' #cmakedefine CORSIX_TH_INTERPRETER_NAME "@CORSIX_TH_INTERPRETER_NAME@" // A final path (with file name) to search #cmakedefine CORSIX_TH_INTERPRETER_PATH "@CORSIX_TH_INTERPRETER_PATH@" /** Windows Platform SDK usage **/ // When compiling on Windows, the platform SDK should be used. However, when // using the SDL rendering engine, the platform SDK is not used for anything // critical, and so its use can be avoided if necessary. #ifdef _WIN32 #define CORSIX_TH_USE_WIN32_SDK #endif /** Movie options **/ // FFmpeg // If this library is not present on your system, then you can comment out the // next line and the game will not have movies. #cmakedefine CORSIX_TH_USE_FFMPEG /** Update check options **/ // If defined then an http request will be made using libcurl to check to see // if the current version is the latest. #cmakedefine WITH_UPDATE_CHECK /** MIDI device support **/ // If defined then support playing MIDI on attached MIDI devices. #cmakedefine WITH_MIDI_DEVICE /** Lua modules options */ // If defined then lua modules are considered to have been linked into the // binary instead of loaded at runtime. #cmakedefine CORSIX_TH_LINK_LUA_MODULES //* Tracy profiler linked */ // If defined then the Tracy profiler is linked. #cmakedefine WITH_TRACY // Stubs for macros provided by Tracy when not linked. #ifndef WITH_TRACY #define FrameMark #define ZoneScoped #define ZoneScopedN(x) #define ZoneText(x,y) #define ZoneTextV(x,y,z) #define ZoneTextF(x,...) #define ZoneTextVF(x,y,...) #define ZoneName(x,y) #define ZoneNameV(x,y,z) #define ZoneNameF(x,...) #define ZoneNameVF(x,y,...) #endif #ifdef _MSC_VER #define CORSIX_TH_USE_PACK_PRAGMAS 1 #define CORSIX_TH_PACKED_FLAGS #else #define CORSIX_TH_USE_PACK_PRAGMAS 0 #define CORSIX_TH_PACKED_FLAGS __attribute__((__packed__)) #endif /** Standard includes **/ #include // IWYU pragma: export #include // IWYU pragma: export // We bring in the most common stddef and stdint types to avoid typing // clang-format off using std::int8_t; using std::int16_t; using std::int32_t; using std::int64_t; using std::size_t; using std::uint8_t; using std::uint16_t; using std::uint32_t; using std::uint64_t; // clang-format on /** Report operating system **/ #cmakedefine CORSIX_TH_OS "@CORSIX_TH_OS@" /** Report system architecture **/ #cmakedefine CORSIX_TH_ARCH "@CORSIX_TH_ARCH@" /** Set default value of font file **/ #cmakedefine CORSIX_TH_FONT "@CORSIX_TH_FONT@" #endif // CORSIX_TH_CONFIG_H_ CorsixTH-0.70.0/CorsixTH/Src/cp437_table.h000066400000000000000000000025321522247547500177320ustar00rootroot00000000000000#ifndef CORSIX_TH_CP437_TO_UNICODE_TABLE_H #define CORSIX_TH_CP437_TO_UNICODE_TABLE_H #include "config.h" #include // clang-format off constexpr std::array cp437_to_unicode_table{ /* 0x00 through 0x7F need no translation */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, 0x00C9, 0x00E6, 0x003F, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x03BC, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0}; // clang-format on #endif CorsixTH-0.70.0/CorsixTH/Src/cp936_table.h000066400000000000000000006316531522247547500177520ustar00rootroot00000000000000#ifndef CORSIX_TH_CP936_TO_UNICODE_TABLE_H #define CORSIX_TH_CP936_TO_UNICODE_TABLE_H #include "config.h" #include // Generated from the following document: // http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP936.TXT // Maps double-byte characters where: // 1st byte is between 0x81 and 0xFE (subtract 0x81 for table lookup) // 2nd byte is between 0x40 and 0xFE (subtract 0x40 for table lookup) // Unspecified codes are mapped to 0x003F constexpr std::array, 126> cp936_to_unicode_table{ {{0x4E02, 0x4E04, 0x4E05, 0x4E06, 0x4E0F, 0x4E12, 0x4E17, 0x4E1F, 0x4E20, 0x4E21, 0x4E23, 0x4E26, 0x4E29, 0x4E2E, 0x4E2F, 0x4E31, 0x4E33, 0x4E35, 0x4E37, 0x4E3C, 0x4E40, 0x4E41, 0x4E42, 0x4E44, 0x4E46, 0x4E4A, 0x4E51, 0x4E55, 0x4E57, 0x4E5A, 0x4E5B, 0x4E62, 0x4E63, 0x4E64, 0x4E65, 0x4E67, 0x4E68, 0x4E6A, 0x4E6B, 0x4E6C, 0x4E6D, 0x4E6E, 0x4E6F, 0x4E72, 0x4E74, 0x4E75, 0x4E76, 0x4E77, 0x4E78, 0x4E79, 0x4E7A, 0x4E7B, 0x4E7C, 0x4E7D, 0x4E7F, 0x4E80, 0x4E81, 0x4E82, 0x4E83, 0x4E84, 0x4E85, 0x4E87, 0x4E8A, 0x003F, 0x4E90, 0x4E96, 0x4E97, 0x4E99, 0x4E9C, 0x4E9D, 0x4E9E, 0x4EA3, 0x4EAA, 0x4EAF, 0x4EB0, 0x4EB1, 0x4EB4, 0x4EB6, 0x4EB7, 0x4EB8, 0x4EB9, 0x4EBC, 0x4EBD, 0x4EBE, 0x4EC8, 0x4ECC, 0x4ECF, 0x4ED0, 0x4ED2, 0x4EDA, 0x4EDB, 0x4EDC, 0x4EE0, 0x4EE2, 0x4EE6, 0x4EE7, 0x4EE9, 0x4EED, 0x4EEE, 0x4EEF, 0x4EF1, 0x4EF4, 0x4EF8, 0x4EF9, 0x4EFA, 0x4EFC, 0x4EFE, 0x4F00, 0x4F02, 0x4F03, 0x4F04, 0x4F05, 0x4F06, 0x4F07, 0x4F08, 0x4F0B, 0x4F0C, 0x4F12, 0x4F13, 0x4F14, 0x4F15, 0x4F16, 0x4F1C, 0x4F1D, 0x4F21, 0x4F23, 0x4F28, 0x4F29, 0x4F2C, 0x4F2D, 0x4F2E, 0x4F31, 0x4F33, 0x4F35, 0x4F37, 0x4F39, 0x4F3B, 0x4F3E, 0x4F3F, 0x4F40, 0x4F41, 0x4F42, 0x4F44, 0x4F45, 0x4F47, 0x4F48, 0x4F49, 0x4F4A, 0x4F4B, 0x4F4C, 0x4F52, 0x4F54, 0x4F56, 0x4F61, 0x4F62, 0x4F66, 0x4F68, 0x4F6A, 0x4F6B, 0x4F6D, 0x4F6E, 0x4F71, 0x4F72, 0x4F75, 0x4F77, 0x4F78, 0x4F79, 0x4F7A, 0x4F7D, 0x4F80, 0x4F81, 0x4F82, 0x4F85, 0x4F86, 0x4F87, 0x4F8A, 0x4F8C, 0x4F8E, 0x4F90, 0x4F92, 0x4F93, 0x4F95, 0x4F96, 0x4F98, 0x4F99, 0x4F9A, 0x4F9C, 0x4F9E, 0x4F9F, 0x4FA1, 0x4FA2}, {0x4FA4, 0x4FAB, 0x4FAD, 0x4FB0, 0x4FB1, 0x4FB2, 0x4FB3, 0x4FB4, 0x4FB6, 0x4FB7, 0x4FB8, 0x4FB9, 0x4FBA, 0x4FBB, 0x4FBC, 0x4FBD, 0x4FBE, 0x4FC0, 0x4FC1, 0x4FC2, 0x4FC6, 0x4FC7, 0x4FC8, 0x4FC9, 0x4FCB, 0x4FCC, 0x4FCD, 0x4FD2, 0x4FD3, 0x4FD4, 0x4FD5, 0x4FD6, 0x4FD9, 0x4FDB, 0x4FE0, 0x4FE2, 0x4FE4, 0x4FE5, 0x4FE7, 0x4FEB, 0x4FEC, 0x4FF0, 0x4FF2, 0x4FF4, 0x4FF5, 0x4FF6, 0x4FF7, 0x4FF9, 0x4FFB, 0x4FFC, 0x4FFD, 0x4FFF, 0x5000, 0x5001, 0x5002, 0x5003, 0x5004, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 0x500A, 0x003F, 0x500B, 0x500E, 0x5010, 0x5011, 0x5013, 0x5015, 0x5016, 0x5017, 0x501B, 0x501D, 0x501E, 0x5020, 0x5022, 0x5023, 0x5024, 0x5027, 0x502B, 0x502F, 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, 0x5036, 0x5037, 0x5038, 0x5039, 0x503B, 0x503D, 0x503F, 0x5040, 0x5041, 0x5042, 0x5044, 0x5045, 0x5046, 0x5049, 0x504A, 0x504B, 0x504D, 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5056, 0x5057, 0x5058, 0x5059, 0x505B, 0x505D, 0x505E, 0x505F, 0x5060, 0x5061, 0x5062, 0x5063, 0x5064, 0x5066, 0x5067, 0x5068, 0x5069, 0x506A, 0x506B, 0x506D, 0x506E, 0x506F, 0x5070, 0x5071, 0x5072, 0x5073, 0x5074, 0x5075, 0x5078, 0x5079, 0x507A, 0x507C, 0x507D, 0x5081, 0x5082, 0x5083, 0x5084, 0x5086, 0x5087, 0x5089, 0x508A, 0x508B, 0x508C, 0x508E, 0x508F, 0x5090, 0x5091, 0x5092, 0x5093, 0x5094, 0x5095, 0x5096, 0x5097, 0x5098, 0x5099, 0x509A, 0x509B, 0x509C, 0x509D, 0x509E, 0x509F, 0x50A0, 0x50A1, 0x50A2, 0x50A4, 0x50A6, 0x50AA, 0x50AB, 0x50AD, 0x50AE, 0x50AF, 0x50B0, 0x50B1, 0x50B3, 0x50B4, 0x50B5, 0x50B6, 0x50B7, 0x50B8, 0x50B9, 0x50BC}, {0x50BD, 0x50BE, 0x50BF, 0x50C0, 0x50C1, 0x50C2, 0x50C3, 0x50C4, 0x50C5, 0x50C6, 0x50C7, 0x50C8, 0x50C9, 0x50CA, 0x50CB, 0x50CC, 0x50CD, 0x50CE, 0x50D0, 0x50D1, 0x50D2, 0x50D3, 0x50D4, 0x50D5, 0x50D7, 0x50D8, 0x50D9, 0x50DB, 0x50DC, 0x50DD, 0x50DE, 0x50DF, 0x50E0, 0x50E1, 0x50E2, 0x50E3, 0x50E4, 0x50E5, 0x50E8, 0x50E9, 0x50EA, 0x50EB, 0x50EF, 0x50F0, 0x50F1, 0x50F2, 0x50F4, 0x50F6, 0x50F7, 0x50F8, 0x50F9, 0x50FA, 0x50FC, 0x50FD, 0x50FE, 0x50FF, 0x5100, 0x5101, 0x5102, 0x5103, 0x5104, 0x5105, 0x5108, 0x003F, 0x5109, 0x510A, 0x510C, 0x510D, 0x510E, 0x510F, 0x5110, 0x5111, 0x5113, 0x5114, 0x5115, 0x5116, 0x5117, 0x5118, 0x5119, 0x511A, 0x511B, 0x511C, 0x511D, 0x511E, 0x511F, 0x5120, 0x5122, 0x5123, 0x5124, 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 0x512A, 0x512B, 0x512C, 0x512D, 0x512E, 0x512F, 0x5130, 0x5131, 0x5132, 0x5133, 0x5134, 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, 0x513A, 0x513B, 0x513C, 0x513D, 0x513E, 0x5142, 0x5147, 0x514A, 0x514C, 0x514E, 0x514F, 0x5150, 0x5152, 0x5153, 0x5157, 0x5158, 0x5159, 0x515B, 0x515D, 0x515E, 0x515F, 0x5160, 0x5161, 0x5163, 0x5164, 0x5166, 0x5167, 0x5169, 0x516A, 0x516F, 0x5172, 0x517A, 0x517E, 0x517F, 0x5183, 0x5184, 0x5186, 0x5187, 0x518A, 0x518B, 0x518E, 0x518F, 0x5190, 0x5191, 0x5193, 0x5194, 0x5198, 0x519A, 0x519D, 0x519E, 0x519F, 0x51A1, 0x51A3, 0x51A6, 0x51A7, 0x51A8, 0x51A9, 0x51AA, 0x51AD, 0x51AE, 0x51B4, 0x51B8, 0x51B9, 0x51BA, 0x51BE, 0x51BF, 0x51C1, 0x51C2, 0x51C3, 0x51C5, 0x51C8, 0x51CA, 0x51CD, 0x51CE, 0x51D0, 0x51D2, 0x51D3, 0x51D4, 0x51D5, 0x51D6, 0x51D7}, {0x51D8, 0x51D9, 0x51DA, 0x51DC, 0x51DE, 0x51DF, 0x51E2, 0x51E3, 0x51E5, 0x51E6, 0x51E7, 0x51E8, 0x51E9, 0x51EA, 0x51EC, 0x51EE, 0x51F1, 0x51F2, 0x51F4, 0x51F7, 0x51FE, 0x5204, 0x5205, 0x5209, 0x520B, 0x520C, 0x520F, 0x5210, 0x5213, 0x5214, 0x5215, 0x521C, 0x521E, 0x521F, 0x5221, 0x5222, 0x5223, 0x5225, 0x5226, 0x5227, 0x522A, 0x522C, 0x522F, 0x5231, 0x5232, 0x5234, 0x5235, 0x523C, 0x523E, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524B, 0x524E, 0x524F, 0x5252, 0x5253, 0x5255, 0x5257, 0x5258, 0x003F, 0x5259, 0x525A, 0x525B, 0x525D, 0x525F, 0x5260, 0x5262, 0x5263, 0x5264, 0x5266, 0x5268, 0x526B, 0x526C, 0x526D, 0x526E, 0x5270, 0x5271, 0x5273, 0x5274, 0x5275, 0x5276, 0x5277, 0x5278, 0x5279, 0x527A, 0x527B, 0x527C, 0x527E, 0x5280, 0x5283, 0x5284, 0x5285, 0x5286, 0x5287, 0x5289, 0x528A, 0x528B, 0x528C, 0x528D, 0x528E, 0x528F, 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5297, 0x5298, 0x5299, 0x529A, 0x529C, 0x52A4, 0x52A5, 0x52A6, 0x52A7, 0x52AE, 0x52AF, 0x52B0, 0x52B4, 0x52B5, 0x52B6, 0x52B7, 0x52B8, 0x52B9, 0x52BA, 0x52BB, 0x52BC, 0x52BD, 0x52C0, 0x52C1, 0x52C2, 0x52C4, 0x52C5, 0x52C6, 0x52C8, 0x52CA, 0x52CC, 0x52CD, 0x52CE, 0x52CF, 0x52D1, 0x52D3, 0x52D4, 0x52D5, 0x52D7, 0x52D9, 0x52DA, 0x52DB, 0x52DC, 0x52DD, 0x52DE, 0x52E0, 0x52E1, 0x52E2, 0x52E3, 0x52E5, 0x52E6, 0x52E7, 0x52E8, 0x52E9, 0x52EA, 0x52EB, 0x52EC, 0x52ED, 0x52EE, 0x52EF, 0x52F1, 0x52F2, 0x52F3, 0x52F4, 0x52F5, 0x52F6, 0x52F7, 0x52F8, 0x52FB, 0x52FC, 0x52FD, 0x5301, 0x5302, 0x5303, 0x5304, 0x5307, 0x5309, 0x530A, 0x530B, 0x530C, 0x530E}, {0x5311, 0x5312, 0x5313, 0x5314, 0x5318, 0x531B, 0x531C, 0x531E, 0x531F, 0x5322, 0x5324, 0x5325, 0x5327, 0x5328, 0x5329, 0x532B, 0x532C, 0x532D, 0x532F, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334, 0x5335, 0x5336, 0x5337, 0x5338, 0x533C, 0x533D, 0x5340, 0x5342, 0x5344, 0x5346, 0x534B, 0x534C, 0x534D, 0x5350, 0x5354, 0x5358, 0x5359, 0x535B, 0x535D, 0x5365, 0x5368, 0x536A, 0x536C, 0x536D, 0x5372, 0x5376, 0x5379, 0x537B, 0x537C, 0x537D, 0x537E, 0x5380, 0x5381, 0x5383, 0x5387, 0x5388, 0x538A, 0x538E, 0x538F, 0x003F, 0x5390, 0x5391, 0x5392, 0x5393, 0x5394, 0x5396, 0x5397, 0x5399, 0x539B, 0x539C, 0x539E, 0x53A0, 0x53A1, 0x53A4, 0x53A7, 0x53AA, 0x53AB, 0x53AC, 0x53AD, 0x53AF, 0x53B0, 0x53B1, 0x53B2, 0x53B3, 0x53B4, 0x53B5, 0x53B7, 0x53B8, 0x53B9, 0x53BA, 0x53BC, 0x53BD, 0x53BE, 0x53C0, 0x53C3, 0x53C4, 0x53C5, 0x53C6, 0x53C7, 0x53CE, 0x53CF, 0x53D0, 0x53D2, 0x53D3, 0x53D5, 0x53DA, 0x53DC, 0x53DD, 0x53DE, 0x53E1, 0x53E2, 0x53E7, 0x53F4, 0x53FA, 0x53FE, 0x53FF, 0x5400, 0x5402, 0x5405, 0x5407, 0x540B, 0x5414, 0x5418, 0x5419, 0x541A, 0x541C, 0x5422, 0x5424, 0x5425, 0x542A, 0x5430, 0x5433, 0x5436, 0x5437, 0x543A, 0x543D, 0x543F, 0x5441, 0x5442, 0x5444, 0x5445, 0x5447, 0x5449, 0x544C, 0x544D, 0x544E, 0x544F, 0x5451, 0x545A, 0x545D, 0x545E, 0x545F, 0x5460, 0x5461, 0x5463, 0x5465, 0x5467, 0x5469, 0x546A, 0x546B, 0x546C, 0x546D, 0x546E, 0x546F, 0x5470, 0x5474, 0x5479, 0x547A, 0x547E, 0x547F, 0x5481, 0x5483, 0x5485, 0x5487, 0x5488, 0x5489, 0x548A, 0x548D, 0x5491, 0x5493, 0x5497, 0x5498, 0x549C, 0x549E, 0x549F, 0x54A0, 0x54A1}, {0x54A2, 0x54A5, 0x54AE, 0x54B0, 0x54B2, 0x54B5, 0x54B6, 0x54B7, 0x54B9, 0x54BA, 0x54BC, 0x54BE, 0x54C3, 0x54C5, 0x54CA, 0x54CB, 0x54D6, 0x54D8, 0x54DB, 0x54E0, 0x54E1, 0x54E2, 0x54E3, 0x54E4, 0x54EB, 0x54EC, 0x54EF, 0x54F0, 0x54F1, 0x54F4, 0x54F5, 0x54F6, 0x54F7, 0x54F8, 0x54F9, 0x54FB, 0x54FE, 0x5500, 0x5502, 0x5503, 0x5504, 0x5505, 0x5508, 0x550A, 0x550B, 0x550C, 0x550D, 0x550E, 0x5512, 0x5513, 0x5515, 0x5516, 0x5517, 0x5518, 0x5519, 0x551A, 0x551C, 0x551D, 0x551E, 0x551F, 0x5521, 0x5525, 0x5526, 0x003F, 0x5528, 0x5529, 0x552B, 0x552D, 0x5532, 0x5534, 0x5535, 0x5536, 0x5538, 0x5539, 0x553A, 0x553B, 0x553D, 0x5540, 0x5542, 0x5545, 0x5547, 0x5548, 0x554B, 0x554C, 0x554D, 0x554E, 0x554F, 0x5551, 0x5552, 0x5553, 0x5554, 0x5557, 0x5558, 0x5559, 0x555A, 0x555B, 0x555D, 0x555E, 0x555F, 0x5560, 0x5562, 0x5563, 0x5568, 0x5569, 0x556B, 0x556F, 0x5570, 0x5571, 0x5572, 0x5573, 0x5574, 0x5579, 0x557A, 0x557D, 0x557F, 0x5585, 0x5586, 0x558C, 0x558D, 0x558E, 0x5590, 0x5592, 0x5593, 0x5595, 0x5596, 0x5597, 0x559A, 0x559B, 0x559E, 0x55A0, 0x55A1, 0x55A2, 0x55A3, 0x55A4, 0x55A5, 0x55A6, 0x55A8, 0x55A9, 0x55AA, 0x55AB, 0x55AC, 0x55AD, 0x55AE, 0x55AF, 0x55B0, 0x55B2, 0x55B4, 0x55B6, 0x55B8, 0x55BA, 0x55BC, 0x55BF, 0x55C0, 0x55C1, 0x55C2, 0x55C3, 0x55C6, 0x55C7, 0x55C8, 0x55CA, 0x55CB, 0x55CE, 0x55CF, 0x55D0, 0x55D5, 0x55D7, 0x55D8, 0x55D9, 0x55DA, 0x55DB, 0x55DE, 0x55E0, 0x55E2, 0x55E7, 0x55E9, 0x55ED, 0x55EE, 0x55F0, 0x55F1, 0x55F4, 0x55F6, 0x55F8, 0x55F9, 0x55FA, 0x55FB, 0x55FC, 0x55FF, 0x5602, 0x5603, 0x5604, 0x5605}, {0x5606, 0x5607, 0x560A, 0x560B, 0x560D, 0x5610, 0x5611, 0x5612, 0x5613, 0x5614, 0x5615, 0x5616, 0x5617, 0x5619, 0x561A, 0x561C, 0x561D, 0x5620, 0x5621, 0x5622, 0x5625, 0x5626, 0x5628, 0x5629, 0x562A, 0x562B, 0x562E, 0x562F, 0x5630, 0x5633, 0x5635, 0x5637, 0x5638, 0x563A, 0x563C, 0x563D, 0x563E, 0x5640, 0x5641, 0x5642, 0x5643, 0x5644, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 0x564A, 0x564B, 0x564F, 0x5650, 0x5651, 0x5652, 0x5653, 0x5655, 0x5656, 0x565A, 0x565B, 0x565D, 0x565E, 0x565F, 0x5660, 0x5661, 0x003F, 0x5663, 0x5665, 0x5666, 0x5667, 0x566D, 0x566E, 0x566F, 0x5670, 0x5672, 0x5673, 0x5674, 0x5675, 0x5677, 0x5678, 0x5679, 0x567A, 0x567D, 0x567E, 0x567F, 0x5680, 0x5681, 0x5682, 0x5683, 0x5684, 0x5687, 0x5688, 0x5689, 0x568A, 0x568B, 0x568C, 0x568D, 0x5690, 0x5691, 0x5692, 0x5694, 0x5695, 0x5696, 0x5697, 0x5698, 0x5699, 0x569A, 0x569B, 0x569C, 0x569D, 0x569E, 0x569F, 0x56A0, 0x56A1, 0x56A2, 0x56A4, 0x56A5, 0x56A6, 0x56A7, 0x56A8, 0x56A9, 0x56AA, 0x56AB, 0x56AC, 0x56AD, 0x56AE, 0x56B0, 0x56B1, 0x56B2, 0x56B3, 0x56B4, 0x56B5, 0x56B6, 0x56B8, 0x56B9, 0x56BA, 0x56BB, 0x56BD, 0x56BE, 0x56BF, 0x56C0, 0x56C1, 0x56C2, 0x56C3, 0x56C4, 0x56C5, 0x56C6, 0x56C7, 0x56C8, 0x56C9, 0x56CB, 0x56CC, 0x56CD, 0x56CE, 0x56CF, 0x56D0, 0x56D1, 0x56D2, 0x56D3, 0x56D5, 0x56D6, 0x56D8, 0x56D9, 0x56DC, 0x56E3, 0x56E5, 0x56E6, 0x56E7, 0x56E8, 0x56E9, 0x56EA, 0x56EC, 0x56EE, 0x56EF, 0x56F2, 0x56F3, 0x56F6, 0x56F7, 0x56F8, 0x56FB, 0x56FC, 0x5700, 0x5701, 0x5702, 0x5705, 0x5707, 0x570B, 0x570C, 0x570D, 0x570E, 0x570F, 0x5710, 0x5711}, {0x5712, 0x5713, 0x5714, 0x5715, 0x5716, 0x5717, 0x5718, 0x5719, 0x571A, 0x571B, 0x571D, 0x571E, 0x5720, 0x5721, 0x5722, 0x5724, 0x5725, 0x5726, 0x5727, 0x572B, 0x5731, 0x5732, 0x5734, 0x5735, 0x5736, 0x5737, 0x5738, 0x573C, 0x573D, 0x573F, 0x5741, 0x5743, 0x5744, 0x5745, 0x5746, 0x5748, 0x5749, 0x574B, 0x5752, 0x5753, 0x5754, 0x5755, 0x5756, 0x5758, 0x5759, 0x5762, 0x5763, 0x5765, 0x5767, 0x576C, 0x576E, 0x5770, 0x5771, 0x5772, 0x5774, 0x5775, 0x5778, 0x5779, 0x577A, 0x577D, 0x577E, 0x577F, 0x5780, 0x003F, 0x5781, 0x5787, 0x5788, 0x5789, 0x578A, 0x578D, 0x578E, 0x578F, 0x5790, 0x5791, 0x5794, 0x5795, 0x5796, 0x5797, 0x5798, 0x5799, 0x579A, 0x579C, 0x579D, 0x579E, 0x579F, 0x57A5, 0x57A8, 0x57AA, 0x57AC, 0x57AF, 0x57B0, 0x57B1, 0x57B3, 0x57B5, 0x57B6, 0x57B7, 0x57B9, 0x57BA, 0x57BB, 0x57BC, 0x57BD, 0x57BE, 0x57BF, 0x57C0, 0x57C1, 0x57C4, 0x57C5, 0x57C6, 0x57C7, 0x57C8, 0x57C9, 0x57CA, 0x57CC, 0x57CD, 0x57D0, 0x57D1, 0x57D3, 0x57D6, 0x57D7, 0x57DB, 0x57DC, 0x57DE, 0x57E1, 0x57E2, 0x57E3, 0x57E5, 0x57E6, 0x57E7, 0x57E8, 0x57E9, 0x57EA, 0x57EB, 0x57EC, 0x57EE, 0x57F0, 0x57F1, 0x57F2, 0x57F3, 0x57F5, 0x57F6, 0x57F7, 0x57FB, 0x57FC, 0x57FE, 0x57FF, 0x5801, 0x5803, 0x5804, 0x5805, 0x5808, 0x5809, 0x580A, 0x580C, 0x580E, 0x580F, 0x5810, 0x5812, 0x5813, 0x5814, 0x5816, 0x5817, 0x5818, 0x581A, 0x581B, 0x581C, 0x581D, 0x581F, 0x5822, 0x5823, 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 0x582B, 0x582C, 0x582D, 0x582E, 0x582F, 0x5831, 0x5832, 0x5833, 0x5834, 0x5836, 0x5837, 0x5838, 0x5839, 0x583A, 0x583B, 0x583C, 0x583D}, {0x583E, 0x583F, 0x5840, 0x5841, 0x5842, 0x5843, 0x5845, 0x5846, 0x5847, 0x5848, 0x5849, 0x584A, 0x584B, 0x584E, 0x584F, 0x5850, 0x5852, 0x5853, 0x5855, 0x5856, 0x5857, 0x5859, 0x585A, 0x585B, 0x585C, 0x585D, 0x585F, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, 0x5866, 0x5867, 0x5868, 0x5869, 0x586A, 0x586D, 0x586E, 0x586F, 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877, 0x5878, 0x5879, 0x587A, 0x587B, 0x587C, 0x587D, 0x587F, 0x5882, 0x5884, 0x5886, 0x5887, 0x5888, 0x588A, 0x588B, 0x588C, 0x003F, 0x588D, 0x588E, 0x588F, 0x5890, 0x5891, 0x5894, 0x5895, 0x5896, 0x5897, 0x5898, 0x589B, 0x589C, 0x589D, 0x58A0, 0x58A1, 0x58A2, 0x58A3, 0x58A4, 0x58A5, 0x58A6, 0x58A7, 0x58AA, 0x58AB, 0x58AC, 0x58AD, 0x58AE, 0x58AF, 0x58B0, 0x58B1, 0x58B2, 0x58B3, 0x58B4, 0x58B5, 0x58B6, 0x58B7, 0x58B8, 0x58B9, 0x58BA, 0x58BB, 0x58BD, 0x58BE, 0x58BF, 0x58C0, 0x58C2, 0x58C3, 0x58C4, 0x58C6, 0x58C7, 0x58C8, 0x58C9, 0x58CA, 0x58CB, 0x58CC, 0x58CD, 0x58CE, 0x58CF, 0x58D0, 0x58D2, 0x58D3, 0x58D4, 0x58D6, 0x58D7, 0x58D8, 0x58D9, 0x58DA, 0x58DB, 0x58DC, 0x58DD, 0x58DE, 0x58DF, 0x58E0, 0x58E1, 0x58E2, 0x58E3, 0x58E5, 0x58E6, 0x58E7, 0x58E8, 0x58E9, 0x58EA, 0x58ED, 0x58EF, 0x58F1, 0x58F2, 0x58F4, 0x58F5, 0x58F7, 0x58F8, 0x58FA, 0x58FB, 0x58FC, 0x58FD, 0x58FE, 0x58FF, 0x5900, 0x5901, 0x5903, 0x5905, 0x5906, 0x5908, 0x5909, 0x590A, 0x590B, 0x590C, 0x590E, 0x5910, 0x5911, 0x5912, 0x5913, 0x5917, 0x5918, 0x591B, 0x591D, 0x591E, 0x5920, 0x5921, 0x5922, 0x5923, 0x5926, 0x5928, 0x592C, 0x5930, 0x5932, 0x5933, 0x5935, 0x5936, 0x593B}, {0x593D, 0x593E, 0x593F, 0x5940, 0x5943, 0x5945, 0x5946, 0x594A, 0x594C, 0x594D, 0x5950, 0x5952, 0x5953, 0x5959, 0x595B, 0x595C, 0x595D, 0x595E, 0x595F, 0x5961, 0x5963, 0x5964, 0x5966, 0x5967, 0x5968, 0x5969, 0x596A, 0x596B, 0x596C, 0x596D, 0x596E, 0x596F, 0x5970, 0x5971, 0x5972, 0x5975, 0x5977, 0x597A, 0x597B, 0x597C, 0x597E, 0x597F, 0x5980, 0x5985, 0x5989, 0x598B, 0x598C, 0x598E, 0x598F, 0x5990, 0x5991, 0x5994, 0x5995, 0x5998, 0x599A, 0x599B, 0x599C, 0x599D, 0x599F, 0x59A0, 0x59A1, 0x59A2, 0x59A6, 0x003F, 0x59A7, 0x59AC, 0x59AD, 0x59B0, 0x59B1, 0x59B3, 0x59B4, 0x59B5, 0x59B6, 0x59B7, 0x59B8, 0x59BA, 0x59BC, 0x59BD, 0x59BF, 0x59C0, 0x59C1, 0x59C2, 0x59C3, 0x59C4, 0x59C5, 0x59C7, 0x59C8, 0x59C9, 0x59CC, 0x59CD, 0x59CE, 0x59CF, 0x59D5, 0x59D6, 0x59D9, 0x59DB, 0x59DE, 0x59DF, 0x59E0, 0x59E1, 0x59E2, 0x59E4, 0x59E6, 0x59E7, 0x59E9, 0x59EA, 0x59EB, 0x59ED, 0x59EE, 0x59EF, 0x59F0, 0x59F1, 0x59F2, 0x59F3, 0x59F4, 0x59F5, 0x59F6, 0x59F7, 0x59F8, 0x59FA, 0x59FC, 0x59FD, 0x59FE, 0x5A00, 0x5A02, 0x5A0A, 0x5A0B, 0x5A0D, 0x5A0E, 0x5A0F, 0x5A10, 0x5A12, 0x5A14, 0x5A15, 0x5A16, 0x5A17, 0x5A19, 0x5A1A, 0x5A1B, 0x5A1D, 0x5A1E, 0x5A21, 0x5A22, 0x5A24, 0x5A26, 0x5A27, 0x5A28, 0x5A2A, 0x5A2B, 0x5A2C, 0x5A2D, 0x5A2E, 0x5A2F, 0x5A30, 0x5A33, 0x5A35, 0x5A37, 0x5A38, 0x5A39, 0x5A3A, 0x5A3B, 0x5A3D, 0x5A3E, 0x5A3F, 0x5A41, 0x5A42, 0x5A43, 0x5A44, 0x5A45, 0x5A47, 0x5A48, 0x5A4B, 0x5A4C, 0x5A4D, 0x5A4E, 0x5A4F, 0x5A50, 0x5A51, 0x5A52, 0x5A53, 0x5A54, 0x5A56, 0x5A57, 0x5A58, 0x5A59, 0x5A5B, 0x5A5C, 0x5A5D, 0x5A5E, 0x5A5F, 0x5A60}, {0x5A61, 0x5A63, 0x5A64, 0x5A65, 0x5A66, 0x5A68, 0x5A69, 0x5A6B, 0x5A6C, 0x5A6D, 0x5A6E, 0x5A6F, 0x5A70, 0x5A71, 0x5A72, 0x5A73, 0x5A78, 0x5A79, 0x5A7B, 0x5A7C, 0x5A7D, 0x5A7E, 0x5A80, 0x5A81, 0x5A82, 0x5A83, 0x5A84, 0x5A85, 0x5A86, 0x5A87, 0x5A88, 0x5A89, 0x5A8A, 0x5A8B, 0x5A8C, 0x5A8D, 0x5A8E, 0x5A8F, 0x5A90, 0x5A91, 0x5A93, 0x5A94, 0x5A95, 0x5A96, 0x5A97, 0x5A98, 0x5A99, 0x5A9C, 0x5A9D, 0x5A9E, 0x5A9F, 0x5AA0, 0x5AA1, 0x5AA2, 0x5AA3, 0x5AA4, 0x5AA5, 0x5AA6, 0x5AA7, 0x5AA8, 0x5AA9, 0x5AAB, 0x5AAC, 0x003F, 0x5AAD, 0x5AAE, 0x5AAF, 0x5AB0, 0x5AB1, 0x5AB4, 0x5AB6, 0x5AB7, 0x5AB9, 0x5ABA, 0x5ABB, 0x5ABC, 0x5ABD, 0x5ABF, 0x5AC0, 0x5AC3, 0x5AC4, 0x5AC5, 0x5AC6, 0x5AC7, 0x5AC8, 0x5ACA, 0x5ACB, 0x5ACD, 0x5ACE, 0x5ACF, 0x5AD0, 0x5AD1, 0x5AD3, 0x5AD5, 0x5AD7, 0x5AD9, 0x5ADA, 0x5ADB, 0x5ADD, 0x5ADE, 0x5ADF, 0x5AE2, 0x5AE4, 0x5AE5, 0x5AE7, 0x5AE8, 0x5AEA, 0x5AEC, 0x5AED, 0x5AEE, 0x5AEF, 0x5AF0, 0x5AF2, 0x5AF3, 0x5AF4, 0x5AF5, 0x5AF6, 0x5AF7, 0x5AF8, 0x5AF9, 0x5AFA, 0x5AFB, 0x5AFC, 0x5AFD, 0x5AFE, 0x5AFF, 0x5B00, 0x5B01, 0x5B02, 0x5B03, 0x5B04, 0x5B05, 0x5B06, 0x5B07, 0x5B08, 0x5B0A, 0x5B0B, 0x5B0C, 0x5B0D, 0x5B0E, 0x5B0F, 0x5B10, 0x5B11, 0x5B12, 0x5B13, 0x5B14, 0x5B15, 0x5B18, 0x5B19, 0x5B1A, 0x5B1B, 0x5B1C, 0x5B1D, 0x5B1E, 0x5B1F, 0x5B20, 0x5B21, 0x5B22, 0x5B23, 0x5B24, 0x5B25, 0x5B26, 0x5B27, 0x5B28, 0x5B29, 0x5B2A, 0x5B2B, 0x5B2C, 0x5B2D, 0x5B2E, 0x5B2F, 0x5B30, 0x5B31, 0x5B33, 0x5B35, 0x5B36, 0x5B38, 0x5B39, 0x5B3A, 0x5B3B, 0x5B3C, 0x5B3D, 0x5B3E, 0x5B3F, 0x5B41, 0x5B42, 0x5B43, 0x5B44, 0x5B45, 0x5B46, 0x5B47}, {0x5B48, 0x5B49, 0x5B4A, 0x5B4B, 0x5B4C, 0x5B4D, 0x5B4E, 0x5B4F, 0x5B52, 0x5B56, 0x5B5E, 0x5B60, 0x5B61, 0x5B67, 0x5B68, 0x5B6B, 0x5B6D, 0x5B6E, 0x5B6F, 0x5B72, 0x5B74, 0x5B76, 0x5B77, 0x5B78, 0x5B79, 0x5B7B, 0x5B7C, 0x5B7E, 0x5B7F, 0x5B82, 0x5B86, 0x5B8A, 0x5B8D, 0x5B8E, 0x5B90, 0x5B91, 0x5B92, 0x5B94, 0x5B96, 0x5B9F, 0x5BA7, 0x5BA8, 0x5BA9, 0x5BAC, 0x5BAD, 0x5BAE, 0x5BAF, 0x5BB1, 0x5BB2, 0x5BB7, 0x5BBA, 0x5BBB, 0x5BBC, 0x5BC0, 0x5BC1, 0x5BC3, 0x5BC8, 0x5BC9, 0x5BCA, 0x5BCB, 0x5BCD, 0x5BCE, 0x5BCF, 0x003F, 0x5BD1, 0x5BD4, 0x5BD5, 0x5BD6, 0x5BD7, 0x5BD8, 0x5BD9, 0x5BDA, 0x5BDB, 0x5BDC, 0x5BE0, 0x5BE2, 0x5BE3, 0x5BE6, 0x5BE7, 0x5BE9, 0x5BEA, 0x5BEB, 0x5BEC, 0x5BED, 0x5BEF, 0x5BF1, 0x5BF2, 0x5BF3, 0x5BF4, 0x5BF5, 0x5BF6, 0x5BF7, 0x5BFD, 0x5BFE, 0x5C00, 0x5C02, 0x5C03, 0x5C05, 0x5C07, 0x5C08, 0x5C0B, 0x5C0C, 0x5C0D, 0x5C0E, 0x5C10, 0x5C12, 0x5C13, 0x5C17, 0x5C19, 0x5C1B, 0x5C1E, 0x5C1F, 0x5C20, 0x5C21, 0x5C23, 0x5C26, 0x5C28, 0x5C29, 0x5C2A, 0x5C2B, 0x5C2D, 0x5C2E, 0x5C2F, 0x5C30, 0x5C32, 0x5C33, 0x5C35, 0x5C36, 0x5C37, 0x5C43, 0x5C44, 0x5C46, 0x5C47, 0x5C4C, 0x5C4D, 0x5C52, 0x5C53, 0x5C54, 0x5C56, 0x5C57, 0x5C58, 0x5C5A, 0x5C5B, 0x5C5C, 0x5C5D, 0x5C5F, 0x5C62, 0x5C64, 0x5C67, 0x5C68, 0x5C69, 0x5C6A, 0x5C6B, 0x5C6C, 0x5C6D, 0x5C70, 0x5C72, 0x5C73, 0x5C74, 0x5C75, 0x5C76, 0x5C77, 0x5C78, 0x5C7B, 0x5C7C, 0x5C7D, 0x5C7E, 0x5C80, 0x5C83, 0x5C84, 0x5C85, 0x5C86, 0x5C87, 0x5C89, 0x5C8A, 0x5C8B, 0x5C8E, 0x5C8F, 0x5C92, 0x5C93, 0x5C95, 0x5C9D, 0x5C9E, 0x5C9F, 0x5CA0, 0x5CA1, 0x5CA4, 0x5CA5, 0x5CA6, 0x5CA7, 0x5CA8}, {0x5CAA, 0x5CAE, 0x5CAF, 0x5CB0, 0x5CB2, 0x5CB4, 0x5CB6, 0x5CB9, 0x5CBA, 0x5CBB, 0x5CBC, 0x5CBE, 0x5CC0, 0x5CC2, 0x5CC3, 0x5CC5, 0x5CC6, 0x5CC7, 0x5CC8, 0x5CC9, 0x5CCA, 0x5CCC, 0x5CCD, 0x5CCE, 0x5CCF, 0x5CD0, 0x5CD1, 0x5CD3, 0x5CD4, 0x5CD5, 0x5CD6, 0x5CD7, 0x5CD8, 0x5CDA, 0x5CDB, 0x5CDC, 0x5CDD, 0x5CDE, 0x5CDF, 0x5CE0, 0x5CE2, 0x5CE3, 0x5CE7, 0x5CE9, 0x5CEB, 0x5CEC, 0x5CEE, 0x5CEF, 0x5CF1, 0x5CF2, 0x5CF3, 0x5CF4, 0x5CF5, 0x5CF6, 0x5CF7, 0x5CF8, 0x5CF9, 0x5CFA, 0x5CFC, 0x5CFD, 0x5CFE, 0x5CFF, 0x5D00, 0x003F, 0x5D01, 0x5D04, 0x5D05, 0x5D08, 0x5D09, 0x5D0A, 0x5D0B, 0x5D0C, 0x5D0D, 0x5D0F, 0x5D10, 0x5D11, 0x5D12, 0x5D13, 0x5D15, 0x5D17, 0x5D18, 0x5D19, 0x5D1A, 0x5D1C, 0x5D1D, 0x5D1F, 0x5D20, 0x5D21, 0x5D22, 0x5D23, 0x5D25, 0x5D28, 0x5D2A, 0x5D2B, 0x5D2C, 0x5D2F, 0x5D30, 0x5D31, 0x5D32, 0x5D33, 0x5D35, 0x5D36, 0x5D37, 0x5D38, 0x5D39, 0x5D3A, 0x5D3B, 0x5D3C, 0x5D3F, 0x5D40, 0x5D41, 0x5D42, 0x5D43, 0x5D44, 0x5D45, 0x5D46, 0x5D48, 0x5D49, 0x5D4D, 0x5D4E, 0x5D4F, 0x5D50, 0x5D51, 0x5D52, 0x5D53, 0x5D54, 0x5D55, 0x5D56, 0x5D57, 0x5D59, 0x5D5A, 0x5D5C, 0x5D5E, 0x5D5F, 0x5D60, 0x5D61, 0x5D62, 0x5D63, 0x5D64, 0x5D65, 0x5D66, 0x5D67, 0x5D68, 0x5D6A, 0x5D6D, 0x5D6E, 0x5D70, 0x5D71, 0x5D72, 0x5D73, 0x5D75, 0x5D76, 0x5D77, 0x5D78, 0x5D79, 0x5D7A, 0x5D7B, 0x5D7C, 0x5D7D, 0x5D7E, 0x5D7F, 0x5D80, 0x5D81, 0x5D83, 0x5D84, 0x5D85, 0x5D86, 0x5D87, 0x5D88, 0x5D89, 0x5D8A, 0x5D8B, 0x5D8C, 0x5D8D, 0x5D8E, 0x5D8F, 0x5D90, 0x5D91, 0x5D92, 0x5D93, 0x5D94, 0x5D95, 0x5D96, 0x5D97, 0x5D98, 0x5D9A, 0x5D9B, 0x5D9C, 0x5D9E, 0x5D9F, 0x5DA0}, {0x5DA1, 0x5DA2, 0x5DA3, 0x5DA4, 0x5DA5, 0x5DA6, 0x5DA7, 0x5DA8, 0x5DA9, 0x5DAA, 0x5DAB, 0x5DAC, 0x5DAD, 0x5DAE, 0x5DAF, 0x5DB0, 0x5DB1, 0x5DB2, 0x5DB3, 0x5DB4, 0x5DB5, 0x5DB6, 0x5DB8, 0x5DB9, 0x5DBA, 0x5DBB, 0x5DBC, 0x5DBD, 0x5DBE, 0x5DBF, 0x5DC0, 0x5DC1, 0x5DC2, 0x5DC3, 0x5DC4, 0x5DC6, 0x5DC7, 0x5DC8, 0x5DC9, 0x5DCA, 0x5DCB, 0x5DCC, 0x5DCE, 0x5DCF, 0x5DD0, 0x5DD1, 0x5DD2, 0x5DD3, 0x5DD4, 0x5DD5, 0x5DD6, 0x5DD7, 0x5DD8, 0x5DD9, 0x5DDA, 0x5DDC, 0x5DDF, 0x5DE0, 0x5DE3, 0x5DE4, 0x5DEA, 0x5DEC, 0x5DED, 0x003F, 0x5DF0, 0x5DF5, 0x5DF6, 0x5DF8, 0x5DF9, 0x5DFA, 0x5DFB, 0x5DFC, 0x5DFF, 0x5E00, 0x5E04, 0x5E07, 0x5E09, 0x5E0A, 0x5E0B, 0x5E0D, 0x5E0E, 0x5E12, 0x5E13, 0x5E17, 0x5E1E, 0x5E1F, 0x5E20, 0x5E21, 0x5E22, 0x5E23, 0x5E24, 0x5E25, 0x5E28, 0x5E29, 0x5E2A, 0x5E2B, 0x5E2C, 0x5E2F, 0x5E30, 0x5E32, 0x5E33, 0x5E34, 0x5E35, 0x5E36, 0x5E39, 0x5E3A, 0x5E3E, 0x5E3F, 0x5E40, 0x5E41, 0x5E43, 0x5E46, 0x5E47, 0x5E48, 0x5E49, 0x5E4A, 0x5E4B, 0x5E4D, 0x5E4E, 0x5E4F, 0x5E50, 0x5E51, 0x5E52, 0x5E53, 0x5E56, 0x5E57, 0x5E58, 0x5E59, 0x5E5A, 0x5E5C, 0x5E5D, 0x5E5F, 0x5E60, 0x5E63, 0x5E64, 0x5E65, 0x5E66, 0x5E67, 0x5E68, 0x5E69, 0x5E6A, 0x5E6B, 0x5E6C, 0x5E6D, 0x5E6E, 0x5E6F, 0x5E70, 0x5E71, 0x5E75, 0x5E77, 0x5E79, 0x5E7E, 0x5E81, 0x5E82, 0x5E83, 0x5E85, 0x5E88, 0x5E89, 0x5E8C, 0x5E8D, 0x5E8E, 0x5E92, 0x5E98, 0x5E9B, 0x5E9D, 0x5EA1, 0x5EA2, 0x5EA3, 0x5EA4, 0x5EA8, 0x5EA9, 0x5EAA, 0x5EAB, 0x5EAC, 0x5EAE, 0x5EAF, 0x5EB0, 0x5EB1, 0x5EB2, 0x5EB4, 0x5EBA, 0x5EBB, 0x5EBC, 0x5EBD, 0x5EBF, 0x5EC0, 0x5EC1, 0x5EC2, 0x5EC3, 0x5EC4, 0x5EC5}, {0x5EC6, 0x5EC7, 0x5EC8, 0x5ECB, 0x5ECC, 0x5ECD, 0x5ECE, 0x5ECF, 0x5ED0, 0x5ED4, 0x5ED5, 0x5ED7, 0x5ED8, 0x5ED9, 0x5EDA, 0x5EDC, 0x5EDD, 0x5EDE, 0x5EDF, 0x5EE0, 0x5EE1, 0x5EE2, 0x5EE3, 0x5EE4, 0x5EE5, 0x5EE6, 0x5EE7, 0x5EE9, 0x5EEB, 0x5EEC, 0x5EED, 0x5EEE, 0x5EEF, 0x5EF0, 0x5EF1, 0x5EF2, 0x5EF3, 0x5EF5, 0x5EF8, 0x5EF9, 0x5EFB, 0x5EFC, 0x5EFD, 0x5F05, 0x5F06, 0x5F07, 0x5F09, 0x5F0C, 0x5F0D, 0x5F0E, 0x5F10, 0x5F12, 0x5F14, 0x5F16, 0x5F19, 0x5F1A, 0x5F1C, 0x5F1D, 0x5F1E, 0x5F21, 0x5F22, 0x5F23, 0x5F24, 0x003F, 0x5F28, 0x5F2B, 0x5F2C, 0x5F2E, 0x5F30, 0x5F32, 0x5F33, 0x5F34, 0x5F35, 0x5F36, 0x5F37, 0x5F38, 0x5F3B, 0x5F3D, 0x5F3E, 0x5F3F, 0x5F41, 0x5F42, 0x5F43, 0x5F44, 0x5F45, 0x5F46, 0x5F47, 0x5F48, 0x5F49, 0x5F4A, 0x5F4B, 0x5F4C, 0x5F4D, 0x5F4E, 0x5F4F, 0x5F51, 0x5F54, 0x5F59, 0x5F5A, 0x5F5B, 0x5F5C, 0x5F5E, 0x5F5F, 0x5F60, 0x5F63, 0x5F65, 0x5F67, 0x5F68, 0x5F6B, 0x5F6E, 0x5F6F, 0x5F72, 0x5F74, 0x5F75, 0x5F76, 0x5F78, 0x5F7A, 0x5F7D, 0x5F7E, 0x5F7F, 0x5F83, 0x5F86, 0x5F8D, 0x5F8E, 0x5F8F, 0x5F91, 0x5F93, 0x5F94, 0x5F96, 0x5F9A, 0x5F9B, 0x5F9D, 0x5F9E, 0x5F9F, 0x5FA0, 0x5FA2, 0x5FA3, 0x5FA4, 0x5FA5, 0x5FA6, 0x5FA7, 0x5FA9, 0x5FAB, 0x5FAC, 0x5FAF, 0x5FB0, 0x5FB1, 0x5FB2, 0x5FB3, 0x5FB4, 0x5FB6, 0x5FB8, 0x5FB9, 0x5FBA, 0x5FBB, 0x5FBE, 0x5FBF, 0x5FC0, 0x5FC1, 0x5FC2, 0x5FC7, 0x5FC8, 0x5FCA, 0x5FCB, 0x5FCE, 0x5FD3, 0x5FD4, 0x5FD5, 0x5FDA, 0x5FDB, 0x5FDC, 0x5FDE, 0x5FDF, 0x5FE2, 0x5FE3, 0x5FE5, 0x5FE6, 0x5FE8, 0x5FE9, 0x5FEC, 0x5FEF, 0x5FF0, 0x5FF2, 0x5FF3, 0x5FF4, 0x5FF6, 0x5FF7, 0x5FF9, 0x5FFA, 0x5FFC, 0x6007}, {0x6008, 0x6009, 0x600B, 0x600C, 0x6010, 0x6011, 0x6013, 0x6017, 0x6018, 0x601A, 0x601E, 0x601F, 0x6022, 0x6023, 0x6024, 0x602C, 0x602D, 0x602E, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6036, 0x6037, 0x6038, 0x6039, 0x603A, 0x603D, 0x603E, 0x6040, 0x6044, 0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 0x604A, 0x604C, 0x604E, 0x604F, 0x6051, 0x6053, 0x6054, 0x6056, 0x6057, 0x6058, 0x605B, 0x605C, 0x605E, 0x605F, 0x6060, 0x6061, 0x6065, 0x6066, 0x606E, 0x6071, 0x6072, 0x6074, 0x6075, 0x6077, 0x607E, 0x6080, 0x003F, 0x6081, 0x6082, 0x6085, 0x6086, 0x6087, 0x6088, 0x608A, 0x608B, 0x608E, 0x608F, 0x6090, 0x6091, 0x6093, 0x6095, 0x6097, 0x6098, 0x6099, 0x609C, 0x609E, 0x60A1, 0x60A2, 0x60A4, 0x60A5, 0x60A7, 0x60A9, 0x60AA, 0x60AE, 0x60B0, 0x60B3, 0x60B5, 0x60B6, 0x60B7, 0x60B9, 0x60BA, 0x60BD, 0x60BE, 0x60BF, 0x60C0, 0x60C1, 0x60C2, 0x60C3, 0x60C4, 0x60C7, 0x60C8, 0x60C9, 0x60CC, 0x60CD, 0x60CE, 0x60CF, 0x60D0, 0x60D2, 0x60D3, 0x60D4, 0x60D6, 0x60D7, 0x60D9, 0x60DB, 0x60DE, 0x60E1, 0x60E2, 0x60E3, 0x60E4, 0x60E5, 0x60EA, 0x60F1, 0x60F2, 0x60F5, 0x60F7, 0x60F8, 0x60FB, 0x60FC, 0x60FD, 0x60FE, 0x60FF, 0x6102, 0x6103, 0x6104, 0x6105, 0x6107, 0x610A, 0x610B, 0x610C, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, 0x6116, 0x6117, 0x6118, 0x6119, 0x611B, 0x611C, 0x611D, 0x611E, 0x6121, 0x6122, 0x6125, 0x6128, 0x6129, 0x612A, 0x612C, 0x612D, 0x612E, 0x612F, 0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137, 0x6138, 0x6139, 0x613A, 0x613B, 0x613C, 0x613D, 0x613E, 0x6140, 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146}, {0x6147, 0x6149, 0x614B, 0x614D, 0x614F, 0x6150, 0x6152, 0x6153, 0x6154, 0x6156, 0x6157, 0x6158, 0x6159, 0x615A, 0x615B, 0x615C, 0x615E, 0x615F, 0x6160, 0x6161, 0x6163, 0x6164, 0x6165, 0x6166, 0x6169, 0x616A, 0x616B, 0x616C, 0x616D, 0x616E, 0x616F, 0x6171, 0x6172, 0x6173, 0x6174, 0x6176, 0x6178, 0x6179, 0x617A, 0x617B, 0x617C, 0x617D, 0x617E, 0x617F, 0x6180, 0x6181, 0x6182, 0x6183, 0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618A, 0x618C, 0x618D, 0x618F, 0x6190, 0x6191, 0x6192, 0x6193, 0x6195, 0x003F, 0x6196, 0x6197, 0x6198, 0x6199, 0x619A, 0x619B, 0x619C, 0x619E, 0x619F, 0x61A0, 0x61A1, 0x61A2, 0x61A3, 0x61A4, 0x61A5, 0x61A6, 0x61AA, 0x61AB, 0x61AD, 0x61AE, 0x61AF, 0x61B0, 0x61B1, 0x61B2, 0x61B3, 0x61B4, 0x61B5, 0x61B6, 0x61B8, 0x61B9, 0x61BA, 0x61BB, 0x61BC, 0x61BD, 0x61BF, 0x61C0, 0x61C1, 0x61C3, 0x61C4, 0x61C5, 0x61C6, 0x61C7, 0x61C9, 0x61CC, 0x61CD, 0x61CE, 0x61CF, 0x61D0, 0x61D3, 0x61D5, 0x61D6, 0x61D7, 0x61D8, 0x61D9, 0x61DA, 0x61DB, 0x61DC, 0x61DD, 0x61DE, 0x61DF, 0x61E0, 0x61E1, 0x61E2, 0x61E3, 0x61E4, 0x61E5, 0x61E7, 0x61E8, 0x61E9, 0x61EA, 0x61EB, 0x61EC, 0x61ED, 0x61EE, 0x61EF, 0x61F0, 0x61F1, 0x61F2, 0x61F3, 0x61F4, 0x61F6, 0x61F7, 0x61F8, 0x61F9, 0x61FA, 0x61FB, 0x61FC, 0x61FD, 0x61FE, 0x6200, 0x6201, 0x6202, 0x6203, 0x6204, 0x6205, 0x6207, 0x6209, 0x6213, 0x6214, 0x6219, 0x621C, 0x621D, 0x621E, 0x6220, 0x6223, 0x6226, 0x6227, 0x6228, 0x6229, 0x622B, 0x622D, 0x622F, 0x6230, 0x6231, 0x6232, 0x6235, 0x6236, 0x6238, 0x6239, 0x623A, 0x623B, 0x623C, 0x6242, 0x6244, 0x6245, 0x6246, 0x624A}, {0x624F, 0x6250, 0x6255, 0x6256, 0x6257, 0x6259, 0x625A, 0x625C, 0x625D, 0x625E, 0x625F, 0x6260, 0x6261, 0x6262, 0x6264, 0x6265, 0x6268, 0x6271, 0x6272, 0x6274, 0x6275, 0x6277, 0x6278, 0x627A, 0x627B, 0x627D, 0x6281, 0x6282, 0x6283, 0x6285, 0x6286, 0x6287, 0x6288, 0x628B, 0x628C, 0x628D, 0x628E, 0x628F, 0x6290, 0x6294, 0x6299, 0x629C, 0x629D, 0x629E, 0x62A3, 0x62A6, 0x62A7, 0x62A9, 0x62AA, 0x62AD, 0x62AE, 0x62AF, 0x62B0, 0x62B2, 0x62B3, 0x62B4, 0x62B6, 0x62B7, 0x62B8, 0x62BA, 0x62BE, 0x62C0, 0x62C1, 0x003F, 0x62C3, 0x62CB, 0x62CF, 0x62D1, 0x62D5, 0x62DD, 0x62DE, 0x62E0, 0x62E1, 0x62E4, 0x62EA, 0x62EB, 0x62F0, 0x62F2, 0x62F5, 0x62F8, 0x62F9, 0x62FA, 0x62FB, 0x6300, 0x6303, 0x6304, 0x6305, 0x6306, 0x630A, 0x630B, 0x630C, 0x630D, 0x630F, 0x6310, 0x6312, 0x6313, 0x6314, 0x6315, 0x6317, 0x6318, 0x6319, 0x631C, 0x6326, 0x6327, 0x6329, 0x632C, 0x632D, 0x632E, 0x6330, 0x6331, 0x6333, 0x6334, 0x6335, 0x6336, 0x6337, 0x6338, 0x633B, 0x633C, 0x633E, 0x633F, 0x6340, 0x6341, 0x6344, 0x6347, 0x6348, 0x634A, 0x6351, 0x6352, 0x6353, 0x6354, 0x6356, 0x6357, 0x6358, 0x6359, 0x635A, 0x635B, 0x635C, 0x635D, 0x6360, 0x6364, 0x6365, 0x6366, 0x6368, 0x636A, 0x636B, 0x636C, 0x636F, 0x6370, 0x6372, 0x6373, 0x6374, 0x6375, 0x6378, 0x6379, 0x637C, 0x637D, 0x637E, 0x637F, 0x6381, 0x6383, 0x6384, 0x6385, 0x6386, 0x638B, 0x638D, 0x6391, 0x6393, 0x6394, 0x6395, 0x6397, 0x6399, 0x639A, 0x639B, 0x639C, 0x639D, 0x639E, 0x639F, 0x63A1, 0x63A4, 0x63A6, 0x63AB, 0x63AF, 0x63B1, 0x63B2, 0x63B5, 0x63B6, 0x63B9, 0x63BB, 0x63BD, 0x63BF, 0x63C0}, {0x63C1, 0x63C2, 0x63C3, 0x63C5, 0x63C7, 0x63C8, 0x63CA, 0x63CB, 0x63CC, 0x63D1, 0x63D3, 0x63D4, 0x63D5, 0x63D7, 0x63D8, 0x63D9, 0x63DA, 0x63DB, 0x63DC, 0x63DD, 0x63DF, 0x63E2, 0x63E4, 0x63E5, 0x63E6, 0x63E7, 0x63E8, 0x63EB, 0x63EC, 0x63EE, 0x63EF, 0x63F0, 0x63F1, 0x63F3, 0x63F5, 0x63F7, 0x63F9, 0x63FA, 0x63FB, 0x63FC, 0x63FE, 0x6403, 0x6404, 0x6406, 0x6407, 0x6408, 0x6409, 0x640A, 0x640D, 0x640E, 0x6411, 0x6412, 0x6415, 0x6416, 0x6417, 0x6418, 0x6419, 0x641A, 0x641D, 0x641F, 0x6422, 0x6423, 0x6424, 0x003F, 0x6425, 0x6427, 0x6428, 0x6429, 0x642B, 0x642E, 0x642F, 0x6430, 0x6431, 0x6432, 0x6433, 0x6435, 0x6436, 0x6437, 0x6438, 0x6439, 0x643B, 0x643C, 0x643E, 0x6440, 0x6442, 0x6443, 0x6449, 0x644B, 0x644C, 0x644D, 0x644E, 0x644F, 0x6450, 0x6451, 0x6453, 0x6455, 0x6456, 0x6457, 0x6459, 0x645A, 0x645B, 0x645C, 0x645D, 0x645F, 0x6460, 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, 0x6468, 0x646A, 0x646B, 0x646C, 0x646E, 0x646F, 0x6470, 0x6471, 0x6472, 0x6473, 0x6474, 0x6475, 0x6476, 0x6477, 0x647B, 0x647C, 0x647D, 0x647E, 0x647F, 0x6480, 0x6481, 0x6483, 0x6486, 0x6488, 0x6489, 0x648A, 0x648B, 0x648C, 0x648D, 0x648E, 0x648F, 0x6490, 0x6493, 0x6494, 0x6497, 0x6498, 0x649A, 0x649B, 0x649C, 0x649D, 0x649F, 0x64A0, 0x64A1, 0x64A2, 0x64A3, 0x64A5, 0x64A6, 0x64A7, 0x64A8, 0x64AA, 0x64AB, 0x64AF, 0x64B1, 0x64B2, 0x64B3, 0x64B4, 0x64B6, 0x64B9, 0x64BB, 0x64BD, 0x64BE, 0x64BF, 0x64C1, 0x64C3, 0x64C4, 0x64C6, 0x64C7, 0x64C8, 0x64C9, 0x64CA, 0x64CB, 0x64CC, 0x64CF, 0x64D1, 0x64D3, 0x64D4, 0x64D5, 0x64D6, 0x64D9, 0x64DA}, {0x64DB, 0x64DC, 0x64DD, 0x64DF, 0x64E0, 0x64E1, 0x64E3, 0x64E5, 0x64E7, 0x64E8, 0x64E9, 0x64EA, 0x64EB, 0x64EC, 0x64ED, 0x64EE, 0x64EF, 0x64F0, 0x64F1, 0x64F2, 0x64F3, 0x64F4, 0x64F5, 0x64F6, 0x64F7, 0x64F8, 0x64F9, 0x64FA, 0x64FB, 0x64FC, 0x64FD, 0x64FE, 0x64FF, 0x6501, 0x6502, 0x6503, 0x6504, 0x6505, 0x6506, 0x6507, 0x6508, 0x650A, 0x650B, 0x650C, 0x650D, 0x650E, 0x650F, 0x6510, 0x6511, 0x6513, 0x6514, 0x6515, 0x6516, 0x6517, 0x6519, 0x651A, 0x651B, 0x651C, 0x651D, 0x651E, 0x651F, 0x6520, 0x6521, 0x003F, 0x6522, 0x6523, 0x6524, 0x6526, 0x6527, 0x6528, 0x6529, 0x652A, 0x652C, 0x652D, 0x6530, 0x6531, 0x6532, 0x6533, 0x6537, 0x653A, 0x653C, 0x653D, 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6546, 0x6547, 0x654A, 0x654B, 0x654D, 0x654E, 0x6550, 0x6552, 0x6553, 0x6554, 0x6557, 0x6558, 0x655A, 0x655C, 0x655F, 0x6560, 0x6561, 0x6564, 0x6565, 0x6567, 0x6568, 0x6569, 0x656A, 0x656D, 0x656E, 0x656F, 0x6571, 0x6573, 0x6575, 0x6576, 0x6578, 0x6579, 0x657A, 0x657B, 0x657C, 0x657D, 0x657E, 0x657F, 0x6580, 0x6581, 0x6582, 0x6583, 0x6584, 0x6585, 0x6586, 0x6588, 0x6589, 0x658A, 0x658D, 0x658E, 0x658F, 0x6592, 0x6594, 0x6595, 0x6596, 0x6598, 0x659A, 0x659D, 0x659E, 0x65A0, 0x65A2, 0x65A3, 0x65A6, 0x65A8, 0x65AA, 0x65AC, 0x65AE, 0x65B1, 0x65B2, 0x65B3, 0x65B4, 0x65B5, 0x65B6, 0x65B7, 0x65B8, 0x65BA, 0x65BB, 0x65BE, 0x65BF, 0x65C0, 0x65C2, 0x65C7, 0x65C8, 0x65C9, 0x65CA, 0x65CD, 0x65D0, 0x65D1, 0x65D3, 0x65D4, 0x65D5, 0x65D8, 0x65D9, 0x65DA, 0x65DB, 0x65DC, 0x65DD, 0x65DE, 0x65DF, 0x65E1, 0x65E3, 0x65E4, 0x65EA, 0x65EB}, {0x65F2, 0x65F3, 0x65F4, 0x65F5, 0x65F8, 0x65F9, 0x65FB, 0x65FC, 0x65FD, 0x65FE, 0x65FF, 0x6601, 0x6604, 0x6605, 0x6607, 0x6608, 0x6609, 0x660B, 0x660D, 0x6610, 0x6611, 0x6612, 0x6616, 0x6617, 0x6618, 0x661A, 0x661B, 0x661C, 0x661E, 0x6621, 0x6622, 0x6623, 0x6624, 0x6626, 0x6629, 0x662A, 0x662B, 0x662C, 0x662E, 0x6630, 0x6632, 0x6633, 0x6637, 0x6638, 0x6639, 0x663A, 0x663B, 0x663D, 0x663F, 0x6640, 0x6642, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, 0x6649, 0x664A, 0x664D, 0x664E, 0x6650, 0x6651, 0x6658, 0x003F, 0x6659, 0x665B, 0x665C, 0x665D, 0x665E, 0x6660, 0x6662, 0x6663, 0x6665, 0x6667, 0x6669, 0x666A, 0x666B, 0x666C, 0x666D, 0x6671, 0x6672, 0x6673, 0x6675, 0x6678, 0x6679, 0x667B, 0x667C, 0x667D, 0x667F, 0x6680, 0x6681, 0x6683, 0x6685, 0x6686, 0x6688, 0x6689, 0x668A, 0x668B, 0x668D, 0x668E, 0x668F, 0x6690, 0x6692, 0x6693, 0x6694, 0x6695, 0x6698, 0x6699, 0x669A, 0x669B, 0x669C, 0x669E, 0x669F, 0x66A0, 0x66A1, 0x66A2, 0x66A3, 0x66A4, 0x66A5, 0x66A6, 0x66A9, 0x66AA, 0x66AB, 0x66AC, 0x66AD, 0x66AF, 0x66B0, 0x66B1, 0x66B2, 0x66B3, 0x66B5, 0x66B6, 0x66B7, 0x66B8, 0x66BA, 0x66BB, 0x66BC, 0x66BD, 0x66BF, 0x66C0, 0x66C1, 0x66C2, 0x66C3, 0x66C4, 0x66C5, 0x66C6, 0x66C7, 0x66C8, 0x66C9, 0x66CA, 0x66CB, 0x66CC, 0x66CD, 0x66CE, 0x66CF, 0x66D0, 0x66D1, 0x66D2, 0x66D3, 0x66D4, 0x66D5, 0x66D6, 0x66D7, 0x66D8, 0x66DA, 0x66DE, 0x66DF, 0x66E0, 0x66E1, 0x66E2, 0x66E3, 0x66E4, 0x66E5, 0x66E7, 0x66E8, 0x66EA, 0x66EB, 0x66EC, 0x66ED, 0x66EE, 0x66EF, 0x66F1, 0x66F5, 0x66F6, 0x66F8, 0x66FA, 0x66FB, 0x66FD, 0x6701, 0x6702, 0x6703}, {0x6704, 0x6705, 0x6706, 0x6707, 0x670C, 0x670E, 0x670F, 0x6711, 0x6712, 0x6713, 0x6716, 0x6718, 0x6719, 0x671A, 0x671C, 0x671E, 0x6720, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, 0x6727, 0x6729, 0x672E, 0x6730, 0x6732, 0x6733, 0x6736, 0x6737, 0x6738, 0x6739, 0x673B, 0x673C, 0x673E, 0x673F, 0x6741, 0x6744, 0x6745, 0x6747, 0x674A, 0x674B, 0x674D, 0x6752, 0x6754, 0x6755, 0x6757, 0x6758, 0x6759, 0x675A, 0x675B, 0x675D, 0x6762, 0x6763, 0x6764, 0x6766, 0x6767, 0x676B, 0x676C, 0x676E, 0x6771, 0x6774, 0x6776, 0x003F, 0x6778, 0x6779, 0x677A, 0x677B, 0x677D, 0x6780, 0x6782, 0x6783, 0x6785, 0x6786, 0x6788, 0x678A, 0x678C, 0x678D, 0x678E, 0x678F, 0x6791, 0x6792, 0x6793, 0x6794, 0x6796, 0x6799, 0x679B, 0x679F, 0x67A0, 0x67A1, 0x67A4, 0x67A6, 0x67A9, 0x67AC, 0x67AE, 0x67B1, 0x67B2, 0x67B4, 0x67B9, 0x67BA, 0x67BB, 0x67BC, 0x67BD, 0x67BE, 0x67BF, 0x67C0, 0x67C2, 0x67C5, 0x67C6, 0x67C7, 0x67C8, 0x67C9, 0x67CA, 0x67CB, 0x67CC, 0x67CD, 0x67CE, 0x67D5, 0x67D6, 0x67D7, 0x67DB, 0x67DF, 0x67E1, 0x67E3, 0x67E4, 0x67E6, 0x67E7, 0x67E8, 0x67EA, 0x67EB, 0x67ED, 0x67EE, 0x67F2, 0x67F5, 0x67F6, 0x67F7, 0x67F8, 0x67F9, 0x67FA, 0x67FB, 0x67FC, 0x67FE, 0x6801, 0x6802, 0x6803, 0x6804, 0x6806, 0x680D, 0x6810, 0x6812, 0x6814, 0x6815, 0x6818, 0x6819, 0x681A, 0x681B, 0x681C, 0x681E, 0x681F, 0x6820, 0x6822, 0x6823, 0x6824, 0x6825, 0x6826, 0x6827, 0x6828, 0x682B, 0x682C, 0x682D, 0x682E, 0x682F, 0x6830, 0x6831, 0x6834, 0x6835, 0x6836, 0x683A, 0x683B, 0x683F, 0x6847, 0x684B, 0x684D, 0x684F, 0x6852, 0x6856, 0x6857, 0x6858, 0x6859, 0x685A, 0x685B}, {0x685C, 0x685D, 0x685E, 0x685F, 0x686A, 0x686C, 0x686D, 0x686E, 0x686F, 0x6870, 0x6871, 0x6872, 0x6873, 0x6875, 0x6878, 0x6879, 0x687A, 0x687B, 0x687C, 0x687D, 0x687E, 0x687F, 0x6880, 0x6882, 0x6884, 0x6887, 0x6888, 0x6889, 0x688A, 0x688B, 0x688C, 0x688D, 0x688E, 0x6890, 0x6891, 0x6892, 0x6894, 0x6895, 0x6896, 0x6898, 0x6899, 0x689A, 0x689B, 0x689C, 0x689D, 0x689E, 0x689F, 0x68A0, 0x68A1, 0x68A3, 0x68A4, 0x68A5, 0x68A9, 0x68AA, 0x68AB, 0x68AC, 0x68AE, 0x68B1, 0x68B2, 0x68B4, 0x68B6, 0x68B7, 0x68B8, 0x003F, 0x68B9, 0x68BA, 0x68BB, 0x68BC, 0x68BD, 0x68BE, 0x68BF, 0x68C1, 0x68C3, 0x68C4, 0x68C5, 0x68C6, 0x68C7, 0x68C8, 0x68CA, 0x68CC, 0x68CE, 0x68CF, 0x68D0, 0x68D1, 0x68D3, 0x68D4, 0x68D6, 0x68D7, 0x68D9, 0x68DB, 0x68DC, 0x68DD, 0x68DE, 0x68DF, 0x68E1, 0x68E2, 0x68E4, 0x68E5, 0x68E6, 0x68E7, 0x68E8, 0x68E9, 0x68EA, 0x68EB, 0x68EC, 0x68ED, 0x68EF, 0x68F2, 0x68F3, 0x68F4, 0x68F6, 0x68F7, 0x68F8, 0x68FB, 0x68FD, 0x68FE, 0x68FF, 0x6900, 0x6902, 0x6903, 0x6904, 0x6906, 0x6907, 0x6908, 0x6909, 0x690A, 0x690C, 0x690F, 0x6911, 0x6913, 0x6914, 0x6915, 0x6916, 0x6917, 0x6918, 0x6919, 0x691A, 0x691B, 0x691C, 0x691D, 0x691E, 0x6921, 0x6922, 0x6923, 0x6925, 0x6926, 0x6927, 0x6928, 0x6929, 0x692A, 0x692B, 0x692C, 0x692E, 0x692F, 0x6931, 0x6932, 0x6933, 0x6935, 0x6936, 0x6937, 0x6938, 0x693A, 0x693B, 0x693C, 0x693E, 0x6940, 0x6941, 0x6943, 0x6944, 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, 0x694A, 0x694B, 0x694C, 0x694D, 0x694E, 0x694F, 0x6950, 0x6951, 0x6952, 0x6953, 0x6955, 0x6956, 0x6958, 0x6959, 0x695B, 0x695C, 0x695F}, {0x6961, 0x6962, 0x6964, 0x6965, 0x6967, 0x6968, 0x6969, 0x696A, 0x696C, 0x696D, 0x696F, 0x6970, 0x6972, 0x6973, 0x6974, 0x6975, 0x6976, 0x697A, 0x697B, 0x697D, 0x697E, 0x697F, 0x6981, 0x6983, 0x6985, 0x698A, 0x698B, 0x698C, 0x698E, 0x698F, 0x6990, 0x6991, 0x6992, 0x6993, 0x6996, 0x6997, 0x6999, 0x699A, 0x699D, 0x699E, 0x699F, 0x69A0, 0x69A1, 0x69A2, 0x69A3, 0x69A4, 0x69A5, 0x69A6, 0x69A9, 0x69AA, 0x69AC, 0x69AE, 0x69AF, 0x69B0, 0x69B2, 0x69B3, 0x69B5, 0x69B6, 0x69B8, 0x69B9, 0x69BA, 0x69BC, 0x69BD, 0x003F, 0x69BE, 0x69BF, 0x69C0, 0x69C2, 0x69C3, 0x69C4, 0x69C5, 0x69C6, 0x69C7, 0x69C8, 0x69C9, 0x69CB, 0x69CD, 0x69CF, 0x69D1, 0x69D2, 0x69D3, 0x69D5, 0x69D6, 0x69D7, 0x69D8, 0x69D9, 0x69DA, 0x69DC, 0x69DD, 0x69DE, 0x69E1, 0x69E2, 0x69E3, 0x69E4, 0x69E5, 0x69E6, 0x69E7, 0x69E8, 0x69E9, 0x69EA, 0x69EB, 0x69EC, 0x69EE, 0x69EF, 0x69F0, 0x69F1, 0x69F3, 0x69F4, 0x69F5, 0x69F6, 0x69F7, 0x69F8, 0x69F9, 0x69FA, 0x69FB, 0x69FC, 0x69FE, 0x6A00, 0x6A01, 0x6A02, 0x6A03, 0x6A04, 0x6A05, 0x6A06, 0x6A07, 0x6A08, 0x6A09, 0x6A0B, 0x6A0C, 0x6A0D, 0x6A0E, 0x6A0F, 0x6A10, 0x6A11, 0x6A12, 0x6A13, 0x6A14, 0x6A15, 0x6A16, 0x6A19, 0x6A1A, 0x6A1B, 0x6A1C, 0x6A1D, 0x6A1E, 0x6A20, 0x6A22, 0x6A23, 0x6A24, 0x6A25, 0x6A26, 0x6A27, 0x6A29, 0x6A2B, 0x6A2C, 0x6A2D, 0x6A2E, 0x6A30, 0x6A32, 0x6A33, 0x6A34, 0x6A36, 0x6A37, 0x6A38, 0x6A39, 0x6A3A, 0x6A3B, 0x6A3C, 0x6A3F, 0x6A40, 0x6A41, 0x6A42, 0x6A43, 0x6A45, 0x6A46, 0x6A48, 0x6A49, 0x6A4A, 0x6A4B, 0x6A4C, 0x6A4D, 0x6A4E, 0x6A4F, 0x6A51, 0x6A52, 0x6A53, 0x6A54, 0x6A55, 0x6A56, 0x6A57, 0x6A5A}, {0x6A5C, 0x6A5D, 0x6A5E, 0x6A5F, 0x6A60, 0x6A62, 0x6A63, 0x6A64, 0x6A66, 0x6A67, 0x6A68, 0x6A69, 0x6A6A, 0x6A6B, 0x6A6C, 0x6A6D, 0x6A6E, 0x6A6F, 0x6A70, 0x6A72, 0x6A73, 0x6A74, 0x6A75, 0x6A76, 0x6A77, 0x6A78, 0x6A7A, 0x6A7B, 0x6A7D, 0x6A7E, 0x6A7F, 0x6A81, 0x6A82, 0x6A83, 0x6A85, 0x6A86, 0x6A87, 0x6A88, 0x6A89, 0x6A8A, 0x6A8B, 0x6A8C, 0x6A8D, 0x6A8F, 0x6A92, 0x6A93, 0x6A94, 0x6A95, 0x6A96, 0x6A98, 0x6A99, 0x6A9A, 0x6A9B, 0x6A9C, 0x6A9D, 0x6A9E, 0x6A9F, 0x6AA1, 0x6AA2, 0x6AA3, 0x6AA4, 0x6AA5, 0x6AA6, 0x003F, 0x6AA7, 0x6AA8, 0x6AAA, 0x6AAD, 0x6AAE, 0x6AAF, 0x6AB0, 0x6AB1, 0x6AB2, 0x6AB3, 0x6AB4, 0x6AB5, 0x6AB6, 0x6AB7, 0x6AB8, 0x6AB9, 0x6ABA, 0x6ABB, 0x6ABC, 0x6ABD, 0x6ABE, 0x6ABF, 0x6AC0, 0x6AC1, 0x6AC2, 0x6AC3, 0x6AC4, 0x6AC5, 0x6AC6, 0x6AC7, 0x6AC8, 0x6AC9, 0x6ACA, 0x6ACB, 0x6ACC, 0x6ACD, 0x6ACE, 0x6ACF, 0x6AD0, 0x6AD1, 0x6AD2, 0x6AD3, 0x6AD4, 0x6AD5, 0x6AD6, 0x6AD7, 0x6AD8, 0x6AD9, 0x6ADA, 0x6ADB, 0x6ADC, 0x6ADD, 0x6ADE, 0x6ADF, 0x6AE0, 0x6AE1, 0x6AE2, 0x6AE3, 0x6AE4, 0x6AE5, 0x6AE6, 0x6AE7, 0x6AE8, 0x6AE9, 0x6AEA, 0x6AEB, 0x6AEC, 0x6AED, 0x6AEE, 0x6AEF, 0x6AF0, 0x6AF1, 0x6AF2, 0x6AF3, 0x6AF4, 0x6AF5, 0x6AF6, 0x6AF7, 0x6AF8, 0x6AF9, 0x6AFA, 0x6AFB, 0x6AFC, 0x6AFD, 0x6AFE, 0x6AFF, 0x6B00, 0x6B01, 0x6B02, 0x6B03, 0x6B04, 0x6B05, 0x6B06, 0x6B07, 0x6B08, 0x6B09, 0x6B0A, 0x6B0B, 0x6B0C, 0x6B0D, 0x6B0E, 0x6B0F, 0x6B10, 0x6B11, 0x6B12, 0x6B13, 0x6B14, 0x6B15, 0x6B16, 0x6B17, 0x6B18, 0x6B19, 0x6B1A, 0x6B1B, 0x6B1C, 0x6B1D, 0x6B1E, 0x6B1F, 0x6B25, 0x6B26, 0x6B28, 0x6B29, 0x6B2A, 0x6B2B, 0x6B2C, 0x6B2D, 0x6B2E}, {0x6B2F, 0x6B30, 0x6B31, 0x6B33, 0x6B34, 0x6B35, 0x6B36, 0x6B38, 0x6B3B, 0x6B3C, 0x6B3D, 0x6B3F, 0x6B40, 0x6B41, 0x6B42, 0x6B44, 0x6B45, 0x6B48, 0x6B4A, 0x6B4B, 0x6B4D, 0x6B4E, 0x6B4F, 0x6B50, 0x6B51, 0x6B52, 0x6B53, 0x6B54, 0x6B55, 0x6B56, 0x6B57, 0x6B58, 0x6B5A, 0x6B5B, 0x6B5C, 0x6B5D, 0x6B5E, 0x6B5F, 0x6B60, 0x6B61, 0x6B68, 0x6B69, 0x6B6B, 0x6B6C, 0x6B6D, 0x6B6E, 0x6B6F, 0x6B70, 0x6B71, 0x6B72, 0x6B73, 0x6B74, 0x6B75, 0x6B76, 0x6B77, 0x6B78, 0x6B7A, 0x6B7D, 0x6B7E, 0x6B7F, 0x6B80, 0x6B85, 0x6B88, 0x003F, 0x6B8C, 0x6B8E, 0x6B8F, 0x6B90, 0x6B91, 0x6B94, 0x6B95, 0x6B97, 0x6B98, 0x6B99, 0x6B9C, 0x6B9D, 0x6B9E, 0x6B9F, 0x6BA0, 0x6BA2, 0x6BA3, 0x6BA4, 0x6BA5, 0x6BA6, 0x6BA7, 0x6BA8, 0x6BA9, 0x6BAB, 0x6BAC, 0x6BAD, 0x6BAE, 0x6BAF, 0x6BB0, 0x6BB1, 0x6BB2, 0x6BB6, 0x6BB8, 0x6BB9, 0x6BBA, 0x6BBB, 0x6BBC, 0x6BBD, 0x6BBE, 0x6BC0, 0x6BC3, 0x6BC4, 0x6BC6, 0x6BC7, 0x6BC8, 0x6BC9, 0x6BCA, 0x6BCC, 0x6BCE, 0x6BD0, 0x6BD1, 0x6BD8, 0x6BDA, 0x6BDC, 0x6BDD, 0x6BDE, 0x6BDF, 0x6BE0, 0x6BE2, 0x6BE3, 0x6BE4, 0x6BE5, 0x6BE6, 0x6BE7, 0x6BE8, 0x6BE9, 0x6BEC, 0x6BED, 0x6BEE, 0x6BF0, 0x6BF1, 0x6BF2, 0x6BF4, 0x6BF6, 0x6BF7, 0x6BF8, 0x6BFA, 0x6BFB, 0x6BFC, 0x6BFE, 0x6BFF, 0x6C00, 0x6C01, 0x6C02, 0x6C03, 0x6C04, 0x6C08, 0x6C09, 0x6C0A, 0x6C0B, 0x6C0C, 0x6C0E, 0x6C12, 0x6C17, 0x6C1C, 0x6C1D, 0x6C1E, 0x6C20, 0x6C23, 0x6C25, 0x6C2B, 0x6C2C, 0x6C2D, 0x6C31, 0x6C33, 0x6C36, 0x6C37, 0x6C39, 0x6C3A, 0x6C3B, 0x6C3C, 0x6C3E, 0x6C3F, 0x6C43, 0x6C44, 0x6C45, 0x6C48, 0x6C4B, 0x6C4C, 0x6C4D, 0x6C4E, 0x6C4F, 0x6C51, 0x6C52, 0x6C53, 0x6C56, 0x6C58}, {0x6C59, 0x6C5A, 0x6C62, 0x6C63, 0x6C65, 0x6C66, 0x6C67, 0x6C6B, 0x6C6C, 0x6C6D, 0x6C6E, 0x6C6F, 0x6C71, 0x6C73, 0x6C75, 0x6C77, 0x6C78, 0x6C7A, 0x6C7B, 0x6C7C, 0x6C7F, 0x6C80, 0x6C84, 0x6C87, 0x6C8A, 0x6C8B, 0x6C8D, 0x6C8E, 0x6C91, 0x6C92, 0x6C95, 0x6C96, 0x6C97, 0x6C98, 0x6C9A, 0x6C9C, 0x6C9D, 0x6C9E, 0x6CA0, 0x6CA2, 0x6CA8, 0x6CAC, 0x6CAF, 0x6CB0, 0x6CB4, 0x6CB5, 0x6CB6, 0x6CB7, 0x6CBA, 0x6CC0, 0x6CC1, 0x6CC2, 0x6CC3, 0x6CC6, 0x6CC7, 0x6CC8, 0x6CCB, 0x6CCD, 0x6CCE, 0x6CCF, 0x6CD1, 0x6CD2, 0x6CD8, 0x003F, 0x6CD9, 0x6CDA, 0x6CDC, 0x6CDD, 0x6CDF, 0x6CE4, 0x6CE6, 0x6CE7, 0x6CE9, 0x6CEC, 0x6CED, 0x6CF2, 0x6CF4, 0x6CF9, 0x6CFF, 0x6D00, 0x6D02, 0x6D03, 0x6D05, 0x6D06, 0x6D08, 0x6D09, 0x6D0A, 0x6D0D, 0x6D0F, 0x6D10, 0x6D11, 0x6D13, 0x6D14, 0x6D15, 0x6D16, 0x6D18, 0x6D1C, 0x6D1D, 0x6D1F, 0x6D20, 0x6D21, 0x6D22, 0x6D23, 0x6D24, 0x6D26, 0x6D28, 0x6D29, 0x6D2C, 0x6D2D, 0x6D2F, 0x6D30, 0x6D34, 0x6D36, 0x6D37, 0x6D38, 0x6D3A, 0x6D3F, 0x6D40, 0x6D42, 0x6D44, 0x6D49, 0x6D4C, 0x6D50, 0x6D55, 0x6D56, 0x6D57, 0x6D58, 0x6D5B, 0x6D5D, 0x6D5F, 0x6D61, 0x6D62, 0x6D64, 0x6D65, 0x6D67, 0x6D68, 0x6D6B, 0x6D6C, 0x6D6D, 0x6D70, 0x6D71, 0x6D72, 0x6D73, 0x6D75, 0x6D76, 0x6D79, 0x6D7A, 0x6D7B, 0x6D7D, 0x6D7E, 0x6D7F, 0x6D80, 0x6D81, 0x6D83, 0x6D84, 0x6D86, 0x6D87, 0x6D8A, 0x6D8B, 0x6D8D, 0x6D8F, 0x6D90, 0x6D92, 0x6D96, 0x6D97, 0x6D98, 0x6D99, 0x6D9A, 0x6D9C, 0x6DA2, 0x6DA5, 0x6DAC, 0x6DAD, 0x6DB0, 0x6DB1, 0x6DB3, 0x6DB4, 0x6DB6, 0x6DB7, 0x6DB9, 0x6DBA, 0x6DBB, 0x6DBC, 0x6DBD, 0x6DBE, 0x6DC1, 0x6DC2, 0x6DC3, 0x6DC8, 0x6DC9, 0x6DCA}, {0x6DCD, 0x6DCE, 0x6DCF, 0x6DD0, 0x6DD2, 0x6DD3, 0x6DD4, 0x6DD5, 0x6DD7, 0x6DDA, 0x6DDB, 0x6DDC, 0x6DDF, 0x6DE2, 0x6DE3, 0x6DE5, 0x6DE7, 0x6DE8, 0x6DE9, 0x6DEA, 0x6DED, 0x6DEF, 0x6DF0, 0x6DF2, 0x6DF4, 0x6DF5, 0x6DF6, 0x6DF8, 0x6DFA, 0x6DFD, 0x6DFE, 0x6DFF, 0x6E00, 0x6E01, 0x6E02, 0x6E03, 0x6E04, 0x6E06, 0x6E07, 0x6E08, 0x6E09, 0x6E0B, 0x6E0F, 0x6E12, 0x6E13, 0x6E15, 0x6E18, 0x6E19, 0x6E1B, 0x6E1C, 0x6E1E, 0x6E1F, 0x6E22, 0x6E26, 0x6E27, 0x6E28, 0x6E2A, 0x6E2C, 0x6E2E, 0x6E30, 0x6E31, 0x6E33, 0x6E35, 0x003F, 0x6E36, 0x6E37, 0x6E39, 0x6E3B, 0x6E3C, 0x6E3D, 0x6E3E, 0x6E3F, 0x6E40, 0x6E41, 0x6E42, 0x6E45, 0x6E46, 0x6E47, 0x6E48, 0x6E49, 0x6E4A, 0x6E4B, 0x6E4C, 0x6E4F, 0x6E50, 0x6E51, 0x6E52, 0x6E55, 0x6E57, 0x6E59, 0x6E5A, 0x6E5C, 0x6E5D, 0x6E5E, 0x6E60, 0x6E61, 0x6E62, 0x6E63, 0x6E64, 0x6E65, 0x6E66, 0x6E67, 0x6E68, 0x6E69, 0x6E6A, 0x6E6C, 0x6E6D, 0x6E6F, 0x6E70, 0x6E71, 0x6E72, 0x6E73, 0x6E74, 0x6E75, 0x6E76, 0x6E77, 0x6E78, 0x6E79, 0x6E7A, 0x6E7B, 0x6E7C, 0x6E7D, 0x6E80, 0x6E81, 0x6E82, 0x6E84, 0x6E87, 0x6E88, 0x6E8A, 0x6E8B, 0x6E8C, 0x6E8D, 0x6E8E, 0x6E91, 0x6E92, 0x6E93, 0x6E94, 0x6E95, 0x6E96, 0x6E97, 0x6E99, 0x6E9A, 0x6E9B, 0x6E9D, 0x6E9E, 0x6EA0, 0x6EA1, 0x6EA3, 0x6EA4, 0x6EA6, 0x6EA8, 0x6EA9, 0x6EAB, 0x6EAC, 0x6EAD, 0x6EAE, 0x6EB0, 0x6EB3, 0x6EB5, 0x6EB8, 0x6EB9, 0x6EBC, 0x6EBE, 0x6EBF, 0x6EC0, 0x6EC3, 0x6EC4, 0x6EC5, 0x6EC6, 0x6EC8, 0x6EC9, 0x6ECA, 0x6ECC, 0x6ECD, 0x6ECE, 0x6ED0, 0x6ED2, 0x6ED6, 0x6ED8, 0x6ED9, 0x6EDB, 0x6EDC, 0x6EDD, 0x6EE3, 0x6EE7, 0x6EEA, 0x6EEB, 0x6EEC, 0x6EED, 0x6EEE, 0x6EEF}, {0x6EF0, 0x6EF1, 0x6EF2, 0x6EF3, 0x6EF5, 0x6EF6, 0x6EF7, 0x6EF8, 0x6EFA, 0x6EFB, 0x6EFC, 0x6EFD, 0x6EFE, 0x6EFF, 0x6F00, 0x6F01, 0x6F03, 0x6F04, 0x6F05, 0x6F07, 0x6F08, 0x6F0A, 0x6F0B, 0x6F0C, 0x6F0D, 0x6F0E, 0x6F10, 0x6F11, 0x6F12, 0x6F16, 0x6F17, 0x6F18, 0x6F19, 0x6F1A, 0x6F1B, 0x6F1C, 0x6F1D, 0x6F1E, 0x6F1F, 0x6F21, 0x6F22, 0x6F23, 0x6F25, 0x6F26, 0x6F27, 0x6F28, 0x6F2C, 0x6F2E, 0x6F30, 0x6F32, 0x6F34, 0x6F35, 0x6F37, 0x6F38, 0x6F39, 0x6F3A, 0x6F3B, 0x6F3C, 0x6F3D, 0x6F3F, 0x6F40, 0x6F41, 0x6F42, 0x003F, 0x6F43, 0x6F44, 0x6F45, 0x6F48, 0x6F49, 0x6F4A, 0x6F4C, 0x6F4E, 0x6F4F, 0x6F50, 0x6F51, 0x6F52, 0x6F53, 0x6F54, 0x6F55, 0x6F56, 0x6F57, 0x6F59, 0x6F5A, 0x6F5B, 0x6F5D, 0x6F5F, 0x6F60, 0x6F61, 0x6F63, 0x6F64, 0x6F65, 0x6F67, 0x6F68, 0x6F69, 0x6F6A, 0x6F6B, 0x6F6C, 0x6F6F, 0x6F70, 0x6F71, 0x6F73, 0x6F75, 0x6F76, 0x6F77, 0x6F79, 0x6F7B, 0x6F7D, 0x6F7E, 0x6F7F, 0x6F80, 0x6F81, 0x6F82, 0x6F83, 0x6F85, 0x6F86, 0x6F87, 0x6F8A, 0x6F8B, 0x6F8F, 0x6F90, 0x6F91, 0x6F92, 0x6F93, 0x6F94, 0x6F95, 0x6F96, 0x6F97, 0x6F98, 0x6F99, 0x6F9A, 0x6F9B, 0x6F9D, 0x6F9E, 0x6F9F, 0x6FA0, 0x6FA2, 0x6FA3, 0x6FA4, 0x6FA5, 0x6FA6, 0x6FA8, 0x6FA9, 0x6FAA, 0x6FAB, 0x6FAC, 0x6FAD, 0x6FAE, 0x6FAF, 0x6FB0, 0x6FB1, 0x6FB2, 0x6FB4, 0x6FB5, 0x6FB7, 0x6FB8, 0x6FBA, 0x6FBB, 0x6FBC, 0x6FBD, 0x6FBE, 0x6FBF, 0x6FC1, 0x6FC3, 0x6FC4, 0x6FC5, 0x6FC6, 0x6FC7, 0x6FC8, 0x6FCA, 0x6FCB, 0x6FCC, 0x6FCD, 0x6FCE, 0x6FCF, 0x6FD0, 0x6FD3, 0x6FD4, 0x6FD5, 0x6FD6, 0x6FD7, 0x6FD8, 0x6FD9, 0x6FDA, 0x6FDB, 0x6FDC, 0x6FDD, 0x6FDF, 0x6FE2, 0x6FE3, 0x6FE4, 0x6FE5}, {0x6FE6, 0x6FE7, 0x6FE8, 0x6FE9, 0x6FEA, 0x6FEB, 0x6FEC, 0x6FED, 0x6FF0, 0x6FF1, 0x6FF2, 0x6FF3, 0x6FF4, 0x6FF5, 0x6FF6, 0x6FF7, 0x6FF8, 0x6FF9, 0x6FFA, 0x6FFB, 0x6FFC, 0x6FFD, 0x6FFE, 0x6FFF, 0x7000, 0x7001, 0x7002, 0x7003, 0x7004, 0x7005, 0x7006, 0x7007, 0x7008, 0x7009, 0x700A, 0x700B, 0x700C, 0x700D, 0x700E, 0x700F, 0x7010, 0x7012, 0x7013, 0x7014, 0x7015, 0x7016, 0x7017, 0x7018, 0x7019, 0x701C, 0x701D, 0x701E, 0x701F, 0x7020, 0x7021, 0x7022, 0x7024, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 0x702A, 0x003F, 0x702B, 0x702C, 0x702D, 0x702E, 0x702F, 0x7030, 0x7031, 0x7032, 0x7033, 0x7034, 0x7036, 0x7037, 0x7038, 0x703A, 0x703B, 0x703C, 0x703D, 0x703E, 0x703F, 0x7040, 0x7041, 0x7042, 0x7043, 0x7044, 0x7045, 0x7046, 0x7047, 0x7048, 0x7049, 0x704A, 0x704B, 0x704D, 0x704E, 0x7050, 0x7051, 0x7052, 0x7053, 0x7054, 0x7055, 0x7056, 0x7057, 0x7058, 0x7059, 0x705A, 0x705B, 0x705C, 0x705D, 0x705F, 0x7060, 0x7061, 0x7062, 0x7063, 0x7064, 0x7065, 0x7066, 0x7067, 0x7068, 0x7069, 0x706A, 0x706E, 0x7071, 0x7072, 0x7073, 0x7074, 0x7077, 0x7079, 0x707A, 0x707B, 0x707D, 0x7081, 0x7082, 0x7083, 0x7084, 0x7086, 0x7087, 0x7088, 0x708B, 0x708C, 0x708D, 0x708F, 0x7090, 0x7091, 0x7093, 0x7097, 0x7098, 0x709A, 0x709B, 0x709E, 0x709F, 0x70A0, 0x70A1, 0x70A2, 0x70A3, 0x70A4, 0x70A5, 0x70A6, 0x70A7, 0x70A8, 0x70A9, 0x70AA, 0x70B0, 0x70B2, 0x70B4, 0x70B5, 0x70B6, 0x70BA, 0x70BE, 0x70BF, 0x70C4, 0x70C5, 0x70C6, 0x70C7, 0x70C9, 0x70CB, 0x70CC, 0x70CD, 0x70CE, 0x70CF, 0x70D0, 0x70D1, 0x70D2, 0x70D3, 0x70D4, 0x70D5, 0x70D6, 0x70D7, 0x70DA}, {0x70DC, 0x70DD, 0x70DE, 0x70E0, 0x70E1, 0x70E2, 0x70E3, 0x70E5, 0x70EA, 0x70EE, 0x70F0, 0x70F1, 0x70F2, 0x70F3, 0x70F4, 0x70F5, 0x70F6, 0x70F8, 0x70FA, 0x70FB, 0x70FC, 0x70FE, 0x70FF, 0x7100, 0x7101, 0x7102, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x7108, 0x710B, 0x710C, 0x710D, 0x710E, 0x710F, 0x7111, 0x7112, 0x7114, 0x7117, 0x711B, 0x711C, 0x711D, 0x711E, 0x711F, 0x7120, 0x7121, 0x7122, 0x7123, 0x7124, 0x7125, 0x7127, 0x7128, 0x7129, 0x712A, 0x712B, 0x712C, 0x712D, 0x712E, 0x7132, 0x7133, 0x7134, 0x003F, 0x7135, 0x7137, 0x7138, 0x7139, 0x713A, 0x713B, 0x713C, 0x713D, 0x713E, 0x713F, 0x7140, 0x7141, 0x7142, 0x7143, 0x7144, 0x7146, 0x7147, 0x7148, 0x7149, 0x714B, 0x714D, 0x714F, 0x7150, 0x7151, 0x7152, 0x7153, 0x7154, 0x7155, 0x7156, 0x7157, 0x7158, 0x7159, 0x715A, 0x715B, 0x715D, 0x715F, 0x7160, 0x7161, 0x7162, 0x7163, 0x7165, 0x7169, 0x716A, 0x716B, 0x716C, 0x716D, 0x716F, 0x7170, 0x7171, 0x7174, 0x7175, 0x7176, 0x7177, 0x7179, 0x717B, 0x717C, 0x717E, 0x717F, 0x7180, 0x7181, 0x7182, 0x7183, 0x7185, 0x7186, 0x7187, 0x7188, 0x7189, 0x718B, 0x718C, 0x718D, 0x718E, 0x7190, 0x7191, 0x7192, 0x7193, 0x7195, 0x7196, 0x7197, 0x719A, 0x719B, 0x719C, 0x719D, 0x719E, 0x71A1, 0x71A2, 0x71A3, 0x71A4, 0x71A5, 0x71A6, 0x71A7, 0x71A9, 0x71AA, 0x71AB, 0x71AD, 0x71AE, 0x71AF, 0x71B0, 0x71B1, 0x71B2, 0x71B4, 0x71B6, 0x71B7, 0x71B8, 0x71BA, 0x71BB, 0x71BC, 0x71BD, 0x71BE, 0x71BF, 0x71C0, 0x71C1, 0x71C2, 0x71C4, 0x71C5, 0x71C6, 0x71C7, 0x71C8, 0x71C9, 0x71CA, 0x71CB, 0x71CC, 0x71CD, 0x71CF, 0x71D0, 0x71D1, 0x71D2, 0x71D3}, {0x71D6, 0x71D7, 0x71D8, 0x71D9, 0x71DA, 0x71DB, 0x71DC, 0x71DD, 0x71DE, 0x71DF, 0x71E1, 0x71E2, 0x71E3, 0x71E4, 0x71E6, 0x71E8, 0x71E9, 0x71EA, 0x71EB, 0x71EC, 0x71ED, 0x71EF, 0x71F0, 0x71F1, 0x71F2, 0x71F3, 0x71F4, 0x71F5, 0x71F6, 0x71F7, 0x71F8, 0x71FA, 0x71FB, 0x71FC, 0x71FD, 0x71FE, 0x71FF, 0x7200, 0x7201, 0x7202, 0x7203, 0x7204, 0x7205, 0x7207, 0x7208, 0x7209, 0x720A, 0x720B, 0x720C, 0x720D, 0x720E, 0x720F, 0x7210, 0x7211, 0x7212, 0x7213, 0x7214, 0x7215, 0x7216, 0x7217, 0x7218, 0x7219, 0x721A, 0x003F, 0x721B, 0x721C, 0x721E, 0x721F, 0x7220, 0x7221, 0x7222, 0x7223, 0x7224, 0x7225, 0x7226, 0x7227, 0x7229, 0x722B, 0x722D, 0x722E, 0x722F, 0x7232, 0x7233, 0x7234, 0x723A, 0x723C, 0x723E, 0x7240, 0x7241, 0x7242, 0x7243, 0x7244, 0x7245, 0x7246, 0x7249, 0x724A, 0x724B, 0x724E, 0x724F, 0x7250, 0x7251, 0x7253, 0x7254, 0x7255, 0x7257, 0x7258, 0x725A, 0x725C, 0x725E, 0x7260, 0x7263, 0x7264, 0x7265, 0x7268, 0x726A, 0x726B, 0x726C, 0x726D, 0x7270, 0x7271, 0x7273, 0x7274, 0x7276, 0x7277, 0x7278, 0x727B, 0x727C, 0x727D, 0x7282, 0x7283, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 0x728C, 0x728E, 0x7290, 0x7291, 0x7293, 0x7294, 0x7295, 0x7296, 0x7297, 0x7298, 0x7299, 0x729A, 0x729B, 0x729C, 0x729D, 0x729E, 0x72A0, 0x72A1, 0x72A2, 0x72A3, 0x72A4, 0x72A5, 0x72A6, 0x72A7, 0x72A8, 0x72A9, 0x72AA, 0x72AB, 0x72AE, 0x72B1, 0x72B2, 0x72B3, 0x72B5, 0x72BA, 0x72BB, 0x72BC, 0x72BD, 0x72BE, 0x72BF, 0x72C0, 0x72C5, 0x72C6, 0x72C7, 0x72C9, 0x72CA, 0x72CB, 0x72CC, 0x72CF, 0x72D1, 0x72D3, 0x72D4, 0x72D5, 0x72D6, 0x72D8, 0x72DA, 0x72DB}, {0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x3000, 0x3001, 0x3002, 0x00B7, 0x02C9, 0x02C7, 0x00A8, 0x3003, 0x3005, 0x2014, 0xFF5E, 0x2016, 0x2026, 0x2018, 0x2019, 0x201C, 0x201D, 0x3014, 0x3015, 0x3008, 0x3009, 0x300A, 0x300B, 0x300C, 0x300D, 0x300E, 0x300F, 0x3016, 0x3017, 0x3010, 0x3011, 0x00B1, 0x00D7, 0x00F7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220F, 0x222A, 0x2229, 0x2208, 0x2237, 0x221A, 0x22A5, 0x2225, 0x2220, 0x2312, 0x2299, 0x222B, 0x222E, 0x2261, 0x224C, 0x2248, 0x223D, 0x221D, 0x2260, 0x226E, 0x226F, 0x2264, 0x2265, 0x221E, 0x2235, 0x2234, 0x2642, 0x2640, 0x00B0, 0x2032, 0x2033, 0x2103, 0xFF04, 0x00A4, 0xFFE0, 0xFFE1, 0x2030, 0x00A7, 0x2116, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7, 0x25C6, 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x203B, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013}, {0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D, 0x248E, 0x248F, 0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497, 0x2498, 0x2499, 0x249A, 0x249B, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247A, 0x247B, 0x247C, 0x247D, 0x247E, 0x247F, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x003F, 0x003F, 0x3220, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x003F, 0x003F, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x216A, 0x216B, 0x003F, 0x003F}, {0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0xFF01, 0xFF02, 0xFF03, 0xFFE5, 0xFF05, 0xFF06, 0xFF07, 0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E, 0xFF0F, 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, 0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D, 0xFF1E, 0xFF1F, 0xFF20, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A, 0xFF3B, 0xFF3C, 0xFF3D, 0xFF3E, 0xFF3F, 0xFF40, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, 0xFFE3}, {0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304A, 0x304B, 0x304C, 0x304D, 0x304E, 0x304F, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305A, 0x305B, 0x305C, 0x305D, 0x305E, 0x305F, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306A, 0x306B, 0x306C, 0x306D, 0x306E, 0x306F, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307A, 0x307B, 0x307C, 0x307D, 0x307E, 0x307F, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308A, 0x308B, 0x308C, 0x308D, 0x308E, 0x308F, 0x3090, 0x3091, 0x3092, 0x3093, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, 0x30A7, 0x30A8, 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, 0x30AF, 0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, 0x30B7, 0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, 0x30BF, 0x30C0, 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, 0x30C7, 0x30C8, 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, 0x30CF, 0x30D0, 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, 0x30D7, 0x30D8, 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0x30DE, 0x30DF, 0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, 0x30E6, 0x30E7, 0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EE, 0x30EF, 0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, 0x30F6, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0xFE35, 0xFE36, 0xFE39, 0xFE3A, 0xFE3F, 0xFE40, 0xFE3D, 0xFE3E, 0xFE41, 0xFE42, 0xFE43, 0xFE44, 0x003F, 0x003F, 0xFE3B, 0xFE3C, 0xFE37, 0xFE38, 0xFE31, 0x003F, 0xFE33, 0xFE34, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x02CA, 0x02CB, 0x02D9, 0x2013, 0x2015, 0x2025, 0x2035, 0x2105, 0x2109, 0x2196, 0x2197, 0x2198, 0x2199, 0x2215, 0x221F, 0x2223, 0x2252, 0x2266, 0x2267, 0x22BF, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, 0x255F, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x256D, 0x256E, 0x256F, 0x2570, 0x2571, 0x2572, 0x2573, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0x003F, 0x2588, 0x2589, 0x258A, 0x258B, 0x258C, 0x258D, 0x258E, 0x258F, 0x2593, 0x2594, 0x2595, 0x25BC, 0x25BD, 0x25E2, 0x25E3, 0x25E4, 0x25E5, 0x2609, 0x2295, 0x3012, 0x301D, 0x301E, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x0101, 0x00E1, 0x01CE, 0x00E0, 0x0113, 0x00E9, 0x011B, 0x00E8, 0x012B, 0x00ED, 0x01D0, 0x00EC, 0x014D, 0x00F3, 0x01D2, 0x00F2, 0x016B, 0x00FA, 0x01D4, 0x00F9, 0x01D6, 0x01D8, 0x01DA, 0x01DC, 0x00FC, 0x00EA, 0x0251, 0x003F, 0x0144, 0x0148, 0x003F, 0x0261, 0x003F, 0x003F, 0x003F, 0x003F, 0x3105, 0x3106, 0x3107, 0x3108, 0x3109, 0x310A, 0x310B, 0x310C, 0x310D, 0x310E, 0x310F, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118, 0x3119, 0x311A, 0x311B, 0x311C, 0x311D, 0x311E, 0x311F, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128, 0x3129, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x32A3, 0x338E, 0x338F, 0x339C, 0x339D, 0x339E, 0x33A1, 0x33C4, 0x33CE, 0x33D1, 0x33D2, 0x33D5, 0xFE30, 0xFFE2, 0xFFE4, 0x003F, 0x2121, 0x3231, 0x003F, 0x2010, 0x003F, 0x003F, 0x003F, 0x30FC, 0x309B, 0x309C, 0x30FD, 0x30FE, 0x3006, 0x309D, 0x309E, 0xFE49, 0xFE4A, 0xFE4B, 0xFE4C, 0xFE4D, 0xFE4E, 0xFE4F, 0xFE50, 0xFE51, 0xFE52, 0xFE54, 0xFE55, 0xFE56, 0xFE57, 0xFE59, 0xFE5A, 0xFE5B, 0xFE5C, 0xFE5D, 0xFE5E, 0xFE5F, 0xFE60, 0xFE61, 0x003F, 0xFE62, 0xFE63, 0xFE64, 0xFE65, 0xFE66, 0xFE68, 0xFE69, 0xFE6A, 0xFE6B, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x3007, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x2500, 0x2501, 0x2502, 0x2503, 0x2504, 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250A, 0x250B, 0x250C, 0x250D, 0x250E, 0x250F, 0x2510, 0x2511, 0x2512, 0x2513, 0x2514, 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251A, 0x251B, 0x251C, 0x251D, 0x251E, 0x251F, 0x2520, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252A, 0x252B, 0x252C, 0x252D, 0x252E, 0x252F, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253A, 0x253B, 0x253C, 0x253D, 0x253E, 0x253F, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254A, 0x254B, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x72DC, 0x72DD, 0x72DF, 0x72E2, 0x72E3, 0x72E4, 0x72E5, 0x72E6, 0x72E7, 0x72EA, 0x72EB, 0x72F5, 0x72F6, 0x72F9, 0x72FD, 0x72FE, 0x72FF, 0x7300, 0x7302, 0x7304, 0x7305, 0x7306, 0x7307, 0x7308, 0x7309, 0x730B, 0x730C, 0x730D, 0x730F, 0x7310, 0x7311, 0x7312, 0x7314, 0x7318, 0x7319, 0x731A, 0x731F, 0x7320, 0x7323, 0x7324, 0x7326, 0x7327, 0x7328, 0x732D, 0x732F, 0x7330, 0x7332, 0x7333, 0x7335, 0x7336, 0x733A, 0x733B, 0x733C, 0x733D, 0x7340, 0x7341, 0x7342, 0x7343, 0x7344, 0x7345, 0x7346, 0x7347, 0x7348, 0x003F, 0x7349, 0x734A, 0x734B, 0x734C, 0x734E, 0x734F, 0x7351, 0x7353, 0x7354, 0x7355, 0x7356, 0x7358, 0x7359, 0x735A, 0x735B, 0x735C, 0x735D, 0x735E, 0x735F, 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, 0x7366, 0x7367, 0x7368, 0x7369, 0x736A, 0x736B, 0x736E, 0x7370, 0x7371, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x7372, 0x7373, 0x7374, 0x7375, 0x7376, 0x7377, 0x7378, 0x7379, 0x737A, 0x737B, 0x737C, 0x737D, 0x737F, 0x7380, 0x7381, 0x7382, 0x7383, 0x7385, 0x7386, 0x7388, 0x738A, 0x738C, 0x738D, 0x738F, 0x7390, 0x7392, 0x7393, 0x7394, 0x7395, 0x7397, 0x7398, 0x7399, 0x739A, 0x739C, 0x739D, 0x739E, 0x73A0, 0x73A1, 0x73A3, 0x73A4, 0x73A5, 0x73A6, 0x73A7, 0x73A8, 0x73AA, 0x73AC, 0x73AD, 0x73B1, 0x73B4, 0x73B5, 0x73B6, 0x73B8, 0x73B9, 0x73BC, 0x73BD, 0x73BE, 0x73BF, 0x73C1, 0x73C3, 0x73C4, 0x73C5, 0x73C6, 0x73C7, 0x003F, 0x73CB, 0x73CC, 0x73CE, 0x73D2, 0x73D3, 0x73D4, 0x73D5, 0x73D6, 0x73D7, 0x73D8, 0x73DA, 0x73DB, 0x73DC, 0x73DD, 0x73DF, 0x73E1, 0x73E2, 0x73E3, 0x73E4, 0x73E6, 0x73E8, 0x73EA, 0x73EB, 0x73EC, 0x73EE, 0x73EF, 0x73F0, 0x73F1, 0x73F3, 0x73F4, 0x73F5, 0x73F6, 0x73F7, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x73F8, 0x73F9, 0x73FA, 0x73FB, 0x73FC, 0x73FD, 0x73FE, 0x73FF, 0x7400, 0x7401, 0x7402, 0x7404, 0x7407, 0x7408, 0x740B, 0x740C, 0x740D, 0x740E, 0x7411, 0x7412, 0x7413, 0x7414, 0x7415, 0x7416, 0x7417, 0x7418, 0x7419, 0x741C, 0x741D, 0x741E, 0x741F, 0x7420, 0x7421, 0x7423, 0x7424, 0x7427, 0x7429, 0x742B, 0x742D, 0x742F, 0x7431, 0x7432, 0x7437, 0x7438, 0x7439, 0x743A, 0x743B, 0x743D, 0x743E, 0x743F, 0x7440, 0x7442, 0x7443, 0x7444, 0x7445, 0x7446, 0x7447, 0x7448, 0x7449, 0x744A, 0x744B, 0x744C, 0x744D, 0x003F, 0x744E, 0x744F, 0x7450, 0x7451, 0x7452, 0x7453, 0x7454, 0x7456, 0x7458, 0x745D, 0x7460, 0x7461, 0x7462, 0x7463, 0x7464, 0x7465, 0x7466, 0x7467, 0x7468, 0x7469, 0x746A, 0x746B, 0x746C, 0x746E, 0x746F, 0x7471, 0x7472, 0x7473, 0x7474, 0x7475, 0x7478, 0x7479, 0x747A, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x747B, 0x747C, 0x747D, 0x747F, 0x7482, 0x7484, 0x7485, 0x7486, 0x7488, 0x7489, 0x748A, 0x748C, 0x748D, 0x748F, 0x7491, 0x7492, 0x7493, 0x7494, 0x7495, 0x7496, 0x7497, 0x7498, 0x7499, 0x749A, 0x749B, 0x749D, 0x749F, 0x74A0, 0x74A1, 0x74A2, 0x74A3, 0x74A4, 0x74A5, 0x74A6, 0x74AA, 0x74AB, 0x74AC, 0x74AD, 0x74AE, 0x74AF, 0x74B0, 0x74B1, 0x74B2, 0x74B3, 0x74B4, 0x74B5, 0x74B6, 0x74B7, 0x74B8, 0x74B9, 0x74BB, 0x74BC, 0x74BD, 0x74BE, 0x74BF, 0x74C0, 0x74C1, 0x74C2, 0x74C3, 0x74C4, 0x74C5, 0x74C6, 0x74C7, 0x003F, 0x74C8, 0x74C9, 0x74CA, 0x74CB, 0x74CC, 0x74CD, 0x74CE, 0x74CF, 0x74D0, 0x74D1, 0x74D3, 0x74D4, 0x74D5, 0x74D6, 0x74D7, 0x74D8, 0x74D9, 0x74DA, 0x74DB, 0x74DD, 0x74DF, 0x74E1, 0x74E5, 0x74E7, 0x74E8, 0x74E9, 0x74EA, 0x74EB, 0x74EC, 0x74ED, 0x74F0, 0x74F1, 0x74F2, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x74F3, 0x74F5, 0x74F8, 0x74F9, 0x74FA, 0x74FB, 0x74FC, 0x74FD, 0x74FE, 0x7500, 0x7501, 0x7502, 0x7503, 0x7505, 0x7506, 0x7507, 0x7508, 0x7509, 0x750A, 0x750B, 0x750C, 0x750E, 0x7510, 0x7512, 0x7514, 0x7515, 0x7516, 0x7517, 0x751B, 0x751D, 0x751E, 0x7520, 0x7521, 0x7522, 0x7523, 0x7524, 0x7526, 0x7527, 0x752A, 0x752E, 0x7534, 0x7536, 0x7539, 0x753C, 0x753D, 0x753F, 0x7541, 0x7542, 0x7543, 0x7544, 0x7546, 0x7547, 0x7549, 0x754A, 0x754D, 0x7550, 0x7551, 0x7552, 0x7553, 0x7555, 0x7556, 0x7557, 0x7558, 0x003F, 0x755D, 0x755E, 0x755F, 0x7560, 0x7561, 0x7562, 0x7563, 0x7564, 0x7567, 0x7568, 0x7569, 0x756B, 0x756C, 0x756D, 0x756E, 0x756F, 0x7570, 0x7571, 0x7573, 0x7575, 0x7576, 0x7577, 0x757A, 0x757B, 0x757C, 0x757D, 0x757E, 0x7580, 0x7581, 0x7582, 0x7584, 0x7585, 0x7587, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x7588, 0x7589, 0x758A, 0x758C, 0x758D, 0x758E, 0x7590, 0x7593, 0x7595, 0x7598, 0x759B, 0x759C, 0x759E, 0x75A2, 0x75A6, 0x75A7, 0x75A8, 0x75A9, 0x75AA, 0x75AD, 0x75B6, 0x75B7, 0x75BA, 0x75BB, 0x75BF, 0x75C0, 0x75C1, 0x75C6, 0x75CB, 0x75CC, 0x75CE, 0x75CF, 0x75D0, 0x75D1, 0x75D3, 0x75D7, 0x75D9, 0x75DA, 0x75DC, 0x75DD, 0x75DF, 0x75E0, 0x75E1, 0x75E5, 0x75E9, 0x75EC, 0x75ED, 0x75EE, 0x75EF, 0x75F2, 0x75F3, 0x75F5, 0x75F6, 0x75F7, 0x75F8, 0x75FA, 0x75FB, 0x75FD, 0x75FE, 0x7602, 0x7604, 0x7606, 0x7607, 0x003F, 0x7608, 0x7609, 0x760B, 0x760D, 0x760E, 0x760F, 0x7611, 0x7612, 0x7613, 0x7614, 0x7616, 0x761A, 0x761C, 0x761D, 0x761E, 0x7621, 0x7623, 0x7627, 0x7628, 0x762C, 0x762E, 0x762F, 0x7631, 0x7632, 0x7636, 0x7637, 0x7639, 0x763A, 0x763B, 0x763D, 0x7641, 0x7642, 0x7644, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 0x764A, 0x764B, 0x764E, 0x764F, 0x7650, 0x7651, 0x7652, 0x7653, 0x7655, 0x7657, 0x7658, 0x7659, 0x765A, 0x765B, 0x765D, 0x765F, 0x7660, 0x7661, 0x7662, 0x7664, 0x7665, 0x7666, 0x7667, 0x7668, 0x7669, 0x766A, 0x766C, 0x766D, 0x766E, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x7675, 0x7676, 0x7677, 0x7679, 0x767A, 0x767C, 0x767F, 0x7680, 0x7681, 0x7683, 0x7685, 0x7689, 0x768A, 0x768C, 0x768D, 0x768F, 0x7690, 0x7692, 0x7694, 0x7695, 0x7697, 0x7698, 0x769A, 0x769B, 0x003F, 0x769C, 0x769D, 0x769E, 0x769F, 0x76A0, 0x76A1, 0x76A2, 0x76A3, 0x76A5, 0x76A6, 0x76A7, 0x76A8, 0x76A9, 0x76AA, 0x76AB, 0x76AC, 0x76AD, 0x76AF, 0x76B0, 0x76B3, 0x76B5, 0x76B6, 0x76B7, 0x76B8, 0x76B9, 0x76BA, 0x76BB, 0x76BC, 0x76BD, 0x76BE, 0x76C0, 0x76C1, 0x76C3, 0x554A, 0x963F, 0x57C3, 0x6328, 0x54CE, 0x5509, 0x54C0, 0x7691, 0x764C, 0x853C, 0x77EE, 0x827E, 0x788D, 0x7231, 0x9698, 0x978D, 0x6C28, 0x5B89, 0x4FFA, 0x6309, 0x6697, 0x5CB8, 0x80FA, 0x6848, 0x80AE, 0x6602, 0x76CE, 0x51F9, 0x6556, 0x71AC, 0x7FF1, 0x8884, 0x50B2, 0x5965, 0x61CA, 0x6FB3, 0x82AD, 0x634C, 0x6252, 0x53ED, 0x5427, 0x7B06, 0x516B, 0x75A4, 0x5DF4, 0x62D4, 0x8DCB, 0x9776, 0x628A, 0x8019, 0x575D, 0x9738, 0x7F62, 0x7238, 0x767D, 0x67CF, 0x767E, 0x6446, 0x4F70, 0x8D25, 0x62DC, 0x7A17, 0x6591, 0x73ED, 0x642C, 0x6273, 0x822C, 0x9881, 0x677F, 0x7248, 0x626E, 0x62CC, 0x4F34, 0x74E3, 0x534A, 0x529E, 0x7ECA, 0x90A6, 0x5E2E, 0x6886, 0x699C, 0x8180, 0x7ED1, 0x68D2, 0x78C5, 0x868C, 0x9551, 0x508D, 0x8C24, 0x82DE, 0x80DE, 0x5305, 0x8912, 0x5265}, {0x76C4, 0x76C7, 0x76C9, 0x76CB, 0x76CC, 0x76D3, 0x76D5, 0x76D9, 0x76DA, 0x76DC, 0x76DD, 0x76DE, 0x76E0, 0x76E1, 0x76E2, 0x76E3, 0x76E4, 0x76E6, 0x76E7, 0x76E8, 0x76E9, 0x76EA, 0x76EB, 0x76EC, 0x76ED, 0x76F0, 0x76F3, 0x76F5, 0x76F6, 0x76F7, 0x76FA, 0x76FB, 0x76FD, 0x76FF, 0x7700, 0x7702, 0x7703, 0x7705, 0x7706, 0x770A, 0x770C, 0x770E, 0x770F, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714, 0x7715, 0x7716, 0x7717, 0x7718, 0x771B, 0x771C, 0x771D, 0x771E, 0x7721, 0x7723, 0x7724, 0x7725, 0x7727, 0x772A, 0x772B, 0x003F, 0x772C, 0x772E, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, 0x7739, 0x773B, 0x773D, 0x773E, 0x773F, 0x7742, 0x7744, 0x7745, 0x7746, 0x7748, 0x7749, 0x774A, 0x774B, 0x774C, 0x774D, 0x774E, 0x774F, 0x7752, 0x7753, 0x7754, 0x7755, 0x7756, 0x7757, 0x7758, 0x7759, 0x775C, 0x8584, 0x96F9, 0x4FDD, 0x5821, 0x9971, 0x5B9D, 0x62B1, 0x62A5, 0x66B4, 0x8C79, 0x9C8D, 0x7206, 0x676F, 0x7891, 0x60B2, 0x5351, 0x5317, 0x8F88, 0x80CC, 0x8D1D, 0x94A1, 0x500D, 0x72C8, 0x5907, 0x60EB, 0x7119, 0x88AB, 0x5954, 0x82EF, 0x672C, 0x7B28, 0x5D29, 0x7EF7, 0x752D, 0x6CF5, 0x8E66, 0x8FF8, 0x903C, 0x9F3B, 0x6BD4, 0x9119, 0x7B14, 0x5F7C, 0x78A7, 0x84D6, 0x853D, 0x6BD5, 0x6BD9, 0x6BD6, 0x5E01, 0x5E87, 0x75F9, 0x95ED, 0x655D, 0x5F0A, 0x5FC5, 0x8F9F, 0x58C1, 0x81C2, 0x907F, 0x965B, 0x97AD, 0x8FB9, 0x7F16, 0x8D2C, 0x6241, 0x4FBF, 0x53D8, 0x535E, 0x8FA8, 0x8FA9, 0x8FAB, 0x904D, 0x6807, 0x5F6A, 0x8198, 0x8868, 0x9CD6, 0x618B, 0x522B, 0x762A, 0x5F6C, 0x658C, 0x6FD2, 0x6EE8, 0x5BBE, 0x6448, 0x5175, 0x51B0, 0x67C4, 0x4E19, 0x79C9, 0x997C, 0x70B3}, {0x775D, 0x775E, 0x775F, 0x7760, 0x7764, 0x7767, 0x7769, 0x776A, 0x776D, 0x776E, 0x776F, 0x7770, 0x7771, 0x7772, 0x7773, 0x7774, 0x7775, 0x7776, 0x7777, 0x7778, 0x777A, 0x777B, 0x777C, 0x7781, 0x7782, 0x7783, 0x7786, 0x7787, 0x7788, 0x7789, 0x778A, 0x778B, 0x778F, 0x7790, 0x7793, 0x7794, 0x7795, 0x7796, 0x7797, 0x7798, 0x7799, 0x779A, 0x779B, 0x779C, 0x779D, 0x779E, 0x77A1, 0x77A3, 0x77A4, 0x77A6, 0x77A8, 0x77AB, 0x77AD, 0x77AE, 0x77AF, 0x77B1, 0x77B2, 0x77B4, 0x77B6, 0x77B7, 0x77B8, 0x77B9, 0x77BA, 0x003F, 0x77BC, 0x77BE, 0x77C0, 0x77C1, 0x77C2, 0x77C3, 0x77C4, 0x77C5, 0x77C6, 0x77C7, 0x77C8, 0x77C9, 0x77CA, 0x77CB, 0x77CC, 0x77CE, 0x77CF, 0x77D0, 0x77D1, 0x77D2, 0x77D3, 0x77D4, 0x77D5, 0x77D6, 0x77D8, 0x77D9, 0x77DA, 0x77DD, 0x77DE, 0x77DF, 0x77E0, 0x77E1, 0x77E4, 0x75C5, 0x5E76, 0x73BB, 0x83E0, 0x64AD, 0x62E8, 0x94B5, 0x6CE2, 0x535A, 0x52C3, 0x640F, 0x94C2, 0x7B94, 0x4F2F, 0x5E1B, 0x8236, 0x8116, 0x818A, 0x6E24, 0x6CCA, 0x9A73, 0x6355, 0x535C, 0x54FA, 0x8865, 0x57E0, 0x4E0D, 0x5E03, 0x6B65, 0x7C3F, 0x90E8, 0x6016, 0x64E6, 0x731C, 0x88C1, 0x6750, 0x624D, 0x8D22, 0x776C, 0x8E29, 0x91C7, 0x5F69, 0x83DC, 0x8521, 0x9910, 0x53C2, 0x8695, 0x6B8B, 0x60ED, 0x60E8, 0x707F, 0x82CD, 0x8231, 0x4ED3, 0x6CA7, 0x85CF, 0x64CD, 0x7CD9, 0x69FD, 0x66F9, 0x8349, 0x5395, 0x7B56, 0x4FA7, 0x518C, 0x6D4B, 0x5C42, 0x8E6D, 0x63D2, 0x53C9, 0x832C, 0x8336, 0x67E5, 0x78B4, 0x643D, 0x5BDF, 0x5C94, 0x5DEE, 0x8BE7, 0x62C6, 0x67F4, 0x8C7A, 0x6400, 0x63BA, 0x8749, 0x998B, 0x8C17, 0x7F20, 0x94F2, 0x4EA7, 0x9610, 0x98A4, 0x660C, 0x7316}, {0x77E6, 0x77E8, 0x77EA, 0x77EF, 0x77F0, 0x77F1, 0x77F2, 0x77F4, 0x77F5, 0x77F7, 0x77F9, 0x77FA, 0x77FB, 0x77FC, 0x7803, 0x7804, 0x7805, 0x7806, 0x7807, 0x7808, 0x780A, 0x780B, 0x780E, 0x780F, 0x7810, 0x7813, 0x7815, 0x7819, 0x781B, 0x781E, 0x7820, 0x7821, 0x7822, 0x7824, 0x7828, 0x782A, 0x782B, 0x782E, 0x782F, 0x7831, 0x7832, 0x7833, 0x7835, 0x7836, 0x783D, 0x783F, 0x7841, 0x7842, 0x7843, 0x7844, 0x7846, 0x7848, 0x7849, 0x784A, 0x784B, 0x784D, 0x784F, 0x7851, 0x7853, 0x7854, 0x7858, 0x7859, 0x785A, 0x003F, 0x785B, 0x785C, 0x785E, 0x785F, 0x7860, 0x7861, 0x7862, 0x7863, 0x7864, 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786F, 0x7870, 0x7871, 0x7872, 0x7873, 0x7874, 0x7875, 0x7876, 0x7878, 0x7879, 0x787A, 0x787B, 0x787D, 0x787E, 0x787F, 0x7880, 0x7881, 0x7882, 0x7883, 0x573A, 0x5C1D, 0x5E38, 0x957F, 0x507F, 0x80A0, 0x5382, 0x655E, 0x7545, 0x5531, 0x5021, 0x8D85, 0x6284, 0x949E, 0x671D, 0x5632, 0x6F6E, 0x5DE2, 0x5435, 0x7092, 0x8F66, 0x626F, 0x64A4, 0x63A3, 0x5F7B, 0x6F88, 0x90F4, 0x81E3, 0x8FB0, 0x5C18, 0x6668, 0x5FF1, 0x6C89, 0x9648, 0x8D81, 0x886C, 0x6491, 0x79F0, 0x57CE, 0x6A59, 0x6210, 0x5448, 0x4E58, 0x7A0B, 0x60E9, 0x6F84, 0x8BDA, 0x627F, 0x901E, 0x9A8B, 0x79E4, 0x5403, 0x75F4, 0x6301, 0x5319, 0x6C60, 0x8FDF, 0x5F1B, 0x9A70, 0x803B, 0x9F7F, 0x4F88, 0x5C3A, 0x8D64, 0x7FC5, 0x65A5, 0x70BD, 0x5145, 0x51B2, 0x866B, 0x5D07, 0x5BA0, 0x62BD, 0x916C, 0x7574, 0x8E0C, 0x7A20, 0x6101, 0x7B79, 0x4EC7, 0x7EF8, 0x7785, 0x4E11, 0x81ED, 0x521D, 0x51FA, 0x6A71, 0x53A8, 0x8E87, 0x9504, 0x96CF, 0x6EC1, 0x9664, 0x695A}, {0x7884, 0x7885, 0x7886, 0x7888, 0x788A, 0x788B, 0x788F, 0x7890, 0x7892, 0x7894, 0x7895, 0x7896, 0x7899, 0x789D, 0x789E, 0x78A0, 0x78A2, 0x78A4, 0x78A6, 0x78A8, 0x78A9, 0x78AA, 0x78AB, 0x78AC, 0x78AD, 0x78AE, 0x78AF, 0x78B5, 0x78B6, 0x78B7, 0x78B8, 0x78BA, 0x78BB, 0x78BC, 0x78BD, 0x78BF, 0x78C0, 0x78C2, 0x78C3, 0x78C4, 0x78C6, 0x78C7, 0x78C8, 0x78CC, 0x78CD, 0x78CE, 0x78CF, 0x78D1, 0x78D2, 0x78D3, 0x78D6, 0x78D7, 0x78D8, 0x78DA, 0x78DB, 0x78DC, 0x78DD, 0x78DE, 0x78DF, 0x78E0, 0x78E1, 0x78E2, 0x78E3, 0x003F, 0x78E4, 0x78E5, 0x78E6, 0x78E7, 0x78E9, 0x78EA, 0x78EB, 0x78ED, 0x78EE, 0x78EF, 0x78F0, 0x78F1, 0x78F3, 0x78F5, 0x78F6, 0x78F8, 0x78F9, 0x78FB, 0x78FC, 0x78FD, 0x78FE, 0x78FF, 0x7900, 0x7902, 0x7903, 0x7904, 0x7906, 0x7907, 0x7908, 0x7909, 0x790A, 0x790B, 0x790C, 0x7840, 0x50A8, 0x77D7, 0x6410, 0x89E6, 0x5904, 0x63E3, 0x5DDD, 0x7A7F, 0x693D, 0x4F20, 0x8239, 0x5598, 0x4E32, 0x75AE, 0x7A97, 0x5E62, 0x5E8A, 0x95EF, 0x521B, 0x5439, 0x708A, 0x6376, 0x9524, 0x5782, 0x6625, 0x693F, 0x9187, 0x5507, 0x6DF3, 0x7EAF, 0x8822, 0x6233, 0x7EF0, 0x75B5, 0x8328, 0x78C1, 0x96CC, 0x8F9E, 0x6148, 0x74F7, 0x8BCD, 0x6B64, 0x523A, 0x8D50, 0x6B21, 0x806A, 0x8471, 0x56F1, 0x5306, 0x4ECE, 0x4E1B, 0x51D1, 0x7C97, 0x918B, 0x7C07, 0x4FC3, 0x8E7F, 0x7BE1, 0x7A9C, 0x6467, 0x5D14, 0x50AC, 0x8106, 0x7601, 0x7CB9, 0x6DEC, 0x7FE0, 0x6751, 0x5B58, 0x5BF8, 0x78CB, 0x64AE, 0x6413, 0x63AA, 0x632B, 0x9519, 0x642D, 0x8FBE, 0x7B54, 0x7629, 0x6253, 0x5927, 0x5446, 0x6B79, 0x50A3, 0x6234, 0x5E26, 0x6B86, 0x4EE3, 0x8D37, 0x888B, 0x5F85, 0x902E}, {0x790D, 0x790E, 0x790F, 0x7910, 0x7911, 0x7912, 0x7914, 0x7915, 0x7916, 0x7917, 0x7918, 0x7919, 0x791A, 0x791B, 0x791C, 0x791D, 0x791F, 0x7920, 0x7921, 0x7922, 0x7923, 0x7925, 0x7926, 0x7927, 0x7928, 0x7929, 0x792A, 0x792B, 0x792C, 0x792D, 0x792E, 0x792F, 0x7930, 0x7931, 0x7932, 0x7933, 0x7935, 0x7936, 0x7937, 0x7938, 0x7939, 0x793D, 0x793F, 0x7942, 0x7943, 0x7944, 0x7945, 0x7947, 0x794A, 0x794B, 0x794C, 0x794D, 0x794E, 0x794F, 0x7950, 0x7951, 0x7952, 0x7954, 0x7955, 0x7958, 0x7959, 0x7961, 0x7963, 0x003F, 0x7964, 0x7966, 0x7969, 0x796A, 0x796B, 0x796C, 0x796E, 0x7970, 0x7971, 0x7972, 0x7973, 0x7974, 0x7975, 0x7976, 0x7979, 0x797B, 0x797C, 0x797D, 0x797E, 0x797F, 0x7982, 0x7983, 0x7986, 0x7987, 0x7988, 0x7989, 0x798B, 0x798C, 0x798D, 0x798E, 0x7990, 0x7991, 0x7992, 0x6020, 0x803D, 0x62C5, 0x4E39, 0x5355, 0x90F8, 0x63B8, 0x80C6, 0x65E6, 0x6C2E, 0x4F46, 0x60EE, 0x6DE1, 0x8BDE, 0x5F39, 0x86CB, 0x5F53, 0x6321, 0x515A, 0x8361, 0x6863, 0x5200, 0x6363, 0x8E48, 0x5012, 0x5C9B, 0x7977, 0x5BFC, 0x5230, 0x7A3B, 0x60BC, 0x9053, 0x76D7, 0x5FB7, 0x5F97, 0x7684, 0x8E6C, 0x706F, 0x767B, 0x7B49, 0x77AA, 0x51F3, 0x9093, 0x5824, 0x4F4E, 0x6EF4, 0x8FEA, 0x654C, 0x7B1B, 0x72C4, 0x6DA4, 0x7FDF, 0x5AE1, 0x62B5, 0x5E95, 0x5730, 0x8482, 0x7B2C, 0x5E1D, 0x5F1F, 0x9012, 0x7F14, 0x98A0, 0x6382, 0x6EC7, 0x7898, 0x70B9, 0x5178, 0x975B, 0x57AB, 0x7535, 0x4F43, 0x7538, 0x5E97, 0x60E6, 0x5960, 0x6DC0, 0x6BBF, 0x7889, 0x53FC, 0x96D5, 0x51CB, 0x5201, 0x6389, 0x540A, 0x9493, 0x8C03, 0x8DCC, 0x7239, 0x789F, 0x8776, 0x8FED, 0x8C0D, 0x53E0}, {0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799B, 0x799C, 0x799D, 0x799E, 0x799F, 0x79A0, 0x79A1, 0x79A2, 0x79A3, 0x79A4, 0x79A5, 0x79A6, 0x79A8, 0x79A9, 0x79AA, 0x79AB, 0x79AC, 0x79AD, 0x79AE, 0x79AF, 0x79B0, 0x79B1, 0x79B2, 0x79B4, 0x79B5, 0x79B6, 0x79B7, 0x79B8, 0x79BC, 0x79BF, 0x79C2, 0x79C4, 0x79C5, 0x79C7, 0x79C8, 0x79CA, 0x79CC, 0x79CE, 0x79CF, 0x79D0, 0x79D3, 0x79D4, 0x79D6, 0x79D7, 0x79D9, 0x79DA, 0x79DB, 0x79DC, 0x79DD, 0x79DE, 0x79E0, 0x79E1, 0x79E2, 0x79E5, 0x79E8, 0x79EA, 0x003F, 0x79EC, 0x79EE, 0x79F1, 0x79F2, 0x79F3, 0x79F4, 0x79F5, 0x79F6, 0x79F7, 0x79F9, 0x79FA, 0x79FC, 0x79FE, 0x79FF, 0x7A01, 0x7A04, 0x7A05, 0x7A07, 0x7A08, 0x7A09, 0x7A0A, 0x7A0C, 0x7A0F, 0x7A10, 0x7A11, 0x7A12, 0x7A13, 0x7A15, 0x7A16, 0x7A18, 0x7A19, 0x7A1B, 0x7A1C, 0x4E01, 0x76EF, 0x53EE, 0x9489, 0x9876, 0x9F0E, 0x952D, 0x5B9A, 0x8BA2, 0x4E22, 0x4E1C, 0x51AC, 0x8463, 0x61C2, 0x52A8, 0x680B, 0x4F97, 0x606B, 0x51BB, 0x6D1E, 0x515C, 0x6296, 0x6597, 0x9661, 0x8C46, 0x9017, 0x75D8, 0x90FD, 0x7763, 0x6BD2, 0x728A, 0x72EC, 0x8BFB, 0x5835, 0x7779, 0x8D4C, 0x675C, 0x9540, 0x809A, 0x5EA6, 0x6E21, 0x5992, 0x7AEF, 0x77ED, 0x953B, 0x6BB5, 0x65AD, 0x7F0E, 0x5806, 0x5151, 0x961F, 0x5BF9, 0x58A9, 0x5428, 0x8E72, 0x6566, 0x987F, 0x56E4, 0x949D, 0x76FE, 0x9041, 0x6387, 0x54C6, 0x591A, 0x593A, 0x579B, 0x8EB2, 0x6735, 0x8DFA, 0x8235, 0x5241, 0x60F0, 0x5815, 0x86FE, 0x5CE8, 0x9E45, 0x4FC4, 0x989D, 0x8BB9, 0x5A25, 0x6076, 0x5384, 0x627C, 0x904F, 0x9102, 0x997F, 0x6069, 0x800C, 0x513F, 0x8033, 0x5C14, 0x9975, 0x6D31, 0x4E8C}, {0x7A1D, 0x7A1F, 0x7A21, 0x7A22, 0x7A24, 0x7A25, 0x7A26, 0x7A27, 0x7A28, 0x7A29, 0x7A2A, 0x7A2B, 0x7A2C, 0x7A2D, 0x7A2E, 0x7A2F, 0x7A30, 0x7A31, 0x7A32, 0x7A34, 0x7A35, 0x7A36, 0x7A38, 0x7A3A, 0x7A3E, 0x7A40, 0x7A41, 0x7A42, 0x7A43, 0x7A44, 0x7A45, 0x7A47, 0x7A48, 0x7A49, 0x7A4A, 0x7A4B, 0x7A4C, 0x7A4D, 0x7A4E, 0x7A4F, 0x7A50, 0x7A52, 0x7A53, 0x7A54, 0x7A55, 0x7A56, 0x7A58, 0x7A59, 0x7A5A, 0x7A5B, 0x7A5C, 0x7A5D, 0x7A5E, 0x7A5F, 0x7A60, 0x7A61, 0x7A62, 0x7A63, 0x7A64, 0x7A65, 0x7A66, 0x7A67, 0x7A68, 0x003F, 0x7A69, 0x7A6A, 0x7A6B, 0x7A6C, 0x7A6D, 0x7A6E, 0x7A6F, 0x7A71, 0x7A72, 0x7A73, 0x7A75, 0x7A7B, 0x7A7C, 0x7A7D, 0x7A7E, 0x7A82, 0x7A85, 0x7A87, 0x7A89, 0x7A8A, 0x7A8B, 0x7A8C, 0x7A8E, 0x7A8F, 0x7A90, 0x7A93, 0x7A94, 0x7A99, 0x7A9A, 0x7A9B, 0x7A9E, 0x7AA1, 0x7AA2, 0x8D30, 0x53D1, 0x7F5A, 0x7B4F, 0x4F10, 0x4E4F, 0x9600, 0x6CD5, 0x73D0, 0x85E9, 0x5E06, 0x756A, 0x7FFB, 0x6A0A, 0x77FE, 0x9492, 0x7E41, 0x51E1, 0x70E6, 0x53CD, 0x8FD4, 0x8303, 0x8D29, 0x72AF, 0x996D, 0x6CDB, 0x574A, 0x82B3, 0x65B9, 0x80AA, 0x623F, 0x9632, 0x59A8, 0x4EFF, 0x8BBF, 0x7EBA, 0x653E, 0x83F2, 0x975E, 0x5561, 0x98DE, 0x80A5, 0x532A, 0x8BFD, 0x5420, 0x80BA, 0x5E9F, 0x6CB8, 0x8D39, 0x82AC, 0x915A, 0x5429, 0x6C1B, 0x5206, 0x7EB7, 0x575F, 0x711A, 0x6C7E, 0x7C89, 0x594B, 0x4EFD, 0x5FFF, 0x6124, 0x7CAA, 0x4E30, 0x5C01, 0x67AB, 0x8702, 0x5CF0, 0x950B, 0x98CE, 0x75AF, 0x70FD, 0x9022, 0x51AF, 0x7F1D, 0x8BBD, 0x5949, 0x51E4, 0x4F5B, 0x5426, 0x592B, 0x6577, 0x80A4, 0x5B75, 0x6276, 0x62C2, 0x8F90, 0x5E45, 0x6C1F, 0x7B26, 0x4F0F, 0x4FD8, 0x670D}, {0x7AA3, 0x7AA4, 0x7AA7, 0x7AA9, 0x7AAA, 0x7AAB, 0x7AAE, 0x7AAF, 0x7AB0, 0x7AB1, 0x7AB2, 0x7AB4, 0x7AB5, 0x7AB6, 0x7AB7, 0x7AB8, 0x7AB9, 0x7ABA, 0x7ABB, 0x7ABC, 0x7ABD, 0x7ABE, 0x7AC0, 0x7AC1, 0x7AC2, 0x7AC3, 0x7AC4, 0x7AC5, 0x7AC6, 0x7AC7, 0x7AC8, 0x7AC9, 0x7ACA, 0x7ACC, 0x7ACD, 0x7ACE, 0x7ACF, 0x7AD0, 0x7AD1, 0x7AD2, 0x7AD3, 0x7AD4, 0x7AD5, 0x7AD7, 0x7AD8, 0x7ADA, 0x7ADB, 0x7ADC, 0x7ADD, 0x7AE1, 0x7AE2, 0x7AE4, 0x7AE7, 0x7AE8, 0x7AE9, 0x7AEA, 0x7AEB, 0x7AEC, 0x7AEE, 0x7AF0, 0x7AF1, 0x7AF2, 0x7AF3, 0x003F, 0x7AF4, 0x7AF5, 0x7AF6, 0x7AF7, 0x7AF8, 0x7AFB, 0x7AFC, 0x7AFE, 0x7B00, 0x7B01, 0x7B02, 0x7B05, 0x7B07, 0x7B09, 0x7B0C, 0x7B0D, 0x7B0E, 0x7B10, 0x7B12, 0x7B13, 0x7B16, 0x7B17, 0x7B18, 0x7B1A, 0x7B1C, 0x7B1D, 0x7B1F, 0x7B21, 0x7B22, 0x7B23, 0x7B27, 0x7B29, 0x7B2D, 0x6D6E, 0x6DAA, 0x798F, 0x88B1, 0x5F17, 0x752B, 0x629A, 0x8F85, 0x4FEF, 0x91DC, 0x65A7, 0x812F, 0x8151, 0x5E9C, 0x8150, 0x8D74, 0x526F, 0x8986, 0x8D4B, 0x590D, 0x5085, 0x4ED8, 0x961C, 0x7236, 0x8179, 0x8D1F, 0x5BCC, 0x8BA3, 0x9644, 0x5987, 0x7F1A, 0x5490, 0x5676, 0x560E, 0x8BE5, 0x6539, 0x6982, 0x9499, 0x76D6, 0x6E89, 0x5E72, 0x7518, 0x6746, 0x67D1, 0x7AFF, 0x809D, 0x8D76, 0x611F, 0x79C6, 0x6562, 0x8D63, 0x5188, 0x521A, 0x94A2, 0x7F38, 0x809B, 0x7EB2, 0x5C97, 0x6E2F, 0x6760, 0x7BD9, 0x768B, 0x9AD8, 0x818F, 0x7F94, 0x7CD5, 0x641E, 0x9550, 0x7A3F, 0x544A, 0x54E5, 0x6B4C, 0x6401, 0x6208, 0x9E3D, 0x80F3, 0x7599, 0x5272, 0x9769, 0x845B, 0x683C, 0x86E4, 0x9601, 0x9694, 0x94EC, 0x4E2A, 0x5404, 0x7ED9, 0x6839, 0x8DDF, 0x8015, 0x66F4, 0x5E9A, 0x7FB9}, {0x7B2F, 0x7B30, 0x7B32, 0x7B34, 0x7B35, 0x7B36, 0x7B37, 0x7B39, 0x7B3B, 0x7B3D, 0x7B3F, 0x7B40, 0x7B41, 0x7B42, 0x7B43, 0x7B44, 0x7B46, 0x7B48, 0x7B4A, 0x7B4D, 0x7B4E, 0x7B53, 0x7B55, 0x7B57, 0x7B59, 0x7B5C, 0x7B5E, 0x7B5F, 0x7B61, 0x7B63, 0x7B64, 0x7B65, 0x7B66, 0x7B67, 0x7B68, 0x7B69, 0x7B6A, 0x7B6B, 0x7B6C, 0x7B6D, 0x7B6F, 0x7B70, 0x7B73, 0x7B74, 0x7B76, 0x7B78, 0x7B7A, 0x7B7C, 0x7B7D, 0x7B7F, 0x7B81, 0x7B82, 0x7B83, 0x7B84, 0x7B86, 0x7B87, 0x7B88, 0x7B89, 0x7B8A, 0x7B8B, 0x7B8C, 0x7B8E, 0x7B8F, 0x003F, 0x7B91, 0x7B92, 0x7B93, 0x7B96, 0x7B98, 0x7B99, 0x7B9A, 0x7B9B, 0x7B9E, 0x7B9F, 0x7BA0, 0x7BA3, 0x7BA4, 0x7BA5, 0x7BAE, 0x7BAF, 0x7BB0, 0x7BB2, 0x7BB3, 0x7BB5, 0x7BB6, 0x7BB7, 0x7BB9, 0x7BBA, 0x7BBB, 0x7BBC, 0x7BBD, 0x7BBE, 0x7BBF, 0x7BC0, 0x7BC2, 0x7BC3, 0x7BC4, 0x57C2, 0x803F, 0x6897, 0x5DE5, 0x653B, 0x529F, 0x606D, 0x9F9A, 0x4F9B, 0x8EAC, 0x516C, 0x5BAB, 0x5F13, 0x5DE9, 0x6C5E, 0x62F1, 0x8D21, 0x5171, 0x94A9, 0x52FE, 0x6C9F, 0x82DF, 0x72D7, 0x57A2, 0x6784, 0x8D2D, 0x591F, 0x8F9C, 0x83C7, 0x5495, 0x7B8D, 0x4F30, 0x6CBD, 0x5B64, 0x59D1, 0x9F13, 0x53E4, 0x86CA, 0x9AA8, 0x8C37, 0x80A1, 0x6545, 0x987E, 0x56FA, 0x96C7, 0x522E, 0x74DC, 0x5250, 0x5BE1, 0x6302, 0x8902, 0x4E56, 0x62D0, 0x602A, 0x68FA, 0x5173, 0x5B98, 0x51A0, 0x89C2, 0x7BA1, 0x9986, 0x7F50, 0x60EF, 0x704C, 0x8D2F, 0x5149, 0x5E7F, 0x901B, 0x7470, 0x89C4, 0x572D, 0x7845, 0x5F52, 0x9F9F, 0x95FA, 0x8F68, 0x9B3C, 0x8BE1, 0x7678, 0x6842, 0x67DC, 0x8DEA, 0x8D35, 0x523D, 0x8F8A, 0x6EDA, 0x68CD, 0x9505, 0x90ED, 0x56FD, 0x679C, 0x88F9, 0x8FC7, 0x54C8}, {0x7BC5, 0x7BC8, 0x7BC9, 0x7BCA, 0x7BCB, 0x7BCD, 0x7BCE, 0x7BCF, 0x7BD0, 0x7BD2, 0x7BD4, 0x7BD5, 0x7BD6, 0x7BD7, 0x7BD8, 0x7BDB, 0x7BDC, 0x7BDE, 0x7BDF, 0x7BE0, 0x7BE2, 0x7BE3, 0x7BE4, 0x7BE7, 0x7BE8, 0x7BE9, 0x7BEB, 0x7BEC, 0x7BED, 0x7BEF, 0x7BF0, 0x7BF2, 0x7BF3, 0x7BF4, 0x7BF5, 0x7BF6, 0x7BF8, 0x7BF9, 0x7BFA, 0x7BFB, 0x7BFD, 0x7BFF, 0x7C00, 0x7C01, 0x7C02, 0x7C03, 0x7C04, 0x7C05, 0x7C06, 0x7C08, 0x7C09, 0x7C0A, 0x7C0D, 0x7C0E, 0x7C10, 0x7C11, 0x7C12, 0x7C13, 0x7C14, 0x7C15, 0x7C17, 0x7C18, 0x7C19, 0x003F, 0x7C1A, 0x7C1B, 0x7C1C, 0x7C1D, 0x7C1E, 0x7C20, 0x7C21, 0x7C22, 0x7C23, 0x7C24, 0x7C25, 0x7C28, 0x7C29, 0x7C2B, 0x7C2C, 0x7C2D, 0x7C2E, 0x7C2F, 0x7C30, 0x7C31, 0x7C32, 0x7C33, 0x7C34, 0x7C35, 0x7C36, 0x7C37, 0x7C39, 0x7C3A, 0x7C3B, 0x7C3C, 0x7C3D, 0x7C3E, 0x7C42, 0x9AB8, 0x5B69, 0x6D77, 0x6C26, 0x4EA5, 0x5BB3, 0x9A87, 0x9163, 0x61A8, 0x90AF, 0x97E9, 0x542B, 0x6DB5, 0x5BD2, 0x51FD, 0x558A, 0x7F55, 0x7FF0, 0x64BC, 0x634D, 0x65F1, 0x61BE, 0x608D, 0x710A, 0x6C57, 0x6C49, 0x592F, 0x676D, 0x822A, 0x58D5, 0x568E, 0x8C6A, 0x6BEB, 0x90DD, 0x597D, 0x8017, 0x53F7, 0x6D69, 0x5475, 0x559D, 0x8377, 0x83CF, 0x6838, 0x79BE, 0x548C, 0x4F55, 0x5408, 0x76D2, 0x8C89, 0x9602, 0x6CB3, 0x6DB8, 0x8D6B, 0x8910, 0x9E64, 0x8D3A, 0x563F, 0x9ED1, 0x75D5, 0x5F88, 0x72E0, 0x6068, 0x54FC, 0x4EA8, 0x6A2A, 0x8861, 0x6052, 0x8F70, 0x54C4, 0x70D8, 0x8679, 0x9E3F, 0x6D2A, 0x5B8F, 0x5F18, 0x7EA2, 0x5589, 0x4FAF, 0x7334, 0x543C, 0x539A, 0x5019, 0x540E, 0x547C, 0x4E4E, 0x5FFD, 0x745A, 0x58F6, 0x846B, 0x80E1, 0x8774, 0x72D0, 0x7CCA, 0x6E56}, {0x7C43, 0x7C44, 0x7C45, 0x7C46, 0x7C47, 0x7C48, 0x7C49, 0x7C4A, 0x7C4B, 0x7C4C, 0x7C4E, 0x7C4F, 0x7C50, 0x7C51, 0x7C52, 0x7C53, 0x7C54, 0x7C55, 0x7C56, 0x7C57, 0x7C58, 0x7C59, 0x7C5A, 0x7C5B, 0x7C5C, 0x7C5D, 0x7C5E, 0x7C5F, 0x7C60, 0x7C61, 0x7C62, 0x7C63, 0x7C64, 0x7C65, 0x7C66, 0x7C67, 0x7C68, 0x7C69, 0x7C6A, 0x7C6B, 0x7C6C, 0x7C6D, 0x7C6E, 0x7C6F, 0x7C70, 0x7C71, 0x7C72, 0x7C75, 0x7C76, 0x7C77, 0x7C78, 0x7C79, 0x7C7A, 0x7C7E, 0x7C7F, 0x7C80, 0x7C81, 0x7C82, 0x7C83, 0x7C84, 0x7C85, 0x7C86, 0x7C87, 0x003F, 0x7C88, 0x7C8A, 0x7C8B, 0x7C8C, 0x7C8D, 0x7C8E, 0x7C8F, 0x7C90, 0x7C93, 0x7C94, 0x7C96, 0x7C99, 0x7C9A, 0x7C9B, 0x7CA0, 0x7CA1, 0x7CA3, 0x7CA6, 0x7CA7, 0x7CA8, 0x7CA9, 0x7CAB, 0x7CAC, 0x7CAD, 0x7CAF, 0x7CB0, 0x7CB4, 0x7CB5, 0x7CB6, 0x7CB7, 0x7CB8, 0x7CBA, 0x7CBB, 0x5F27, 0x864E, 0x552C, 0x62A4, 0x4E92, 0x6CAA, 0x6237, 0x82B1, 0x54D7, 0x534E, 0x733E, 0x6ED1, 0x753B, 0x5212, 0x5316, 0x8BDD, 0x69D0, 0x5F8A, 0x6000, 0x6DEE, 0x574F, 0x6B22, 0x73AF, 0x6853, 0x8FD8, 0x7F13, 0x6362, 0x60A3, 0x5524, 0x75EA, 0x8C62, 0x7115, 0x6DA3, 0x5BA6, 0x5E7B, 0x8352, 0x614C, 0x9EC4, 0x78FA, 0x8757, 0x7C27, 0x7687, 0x51F0, 0x60F6, 0x714C, 0x6643, 0x5E4C, 0x604D, 0x8C0E, 0x7070, 0x6325, 0x8F89, 0x5FBD, 0x6062, 0x86D4, 0x56DE, 0x6BC1, 0x6094, 0x6167, 0x5349, 0x60E0, 0x6666, 0x8D3F, 0x79FD, 0x4F1A, 0x70E9, 0x6C47, 0x8BB3, 0x8BF2, 0x7ED8, 0x8364, 0x660F, 0x5A5A, 0x9B42, 0x6D51, 0x6DF7, 0x8C41, 0x6D3B, 0x4F19, 0x706B, 0x83B7, 0x6216, 0x60D1, 0x970D, 0x8D27, 0x7978, 0x51FB, 0x573E, 0x57FA, 0x673A, 0x7578, 0x7A3D, 0x79EF, 0x7B95}, {0x7CBF, 0x7CC0, 0x7CC2, 0x7CC3, 0x7CC4, 0x7CC6, 0x7CC9, 0x7CCB, 0x7CCE, 0x7CCF, 0x7CD0, 0x7CD1, 0x7CD2, 0x7CD3, 0x7CD4, 0x7CD8, 0x7CDA, 0x7CDB, 0x7CDD, 0x7CDE, 0x7CE1, 0x7CE2, 0x7CE3, 0x7CE4, 0x7CE5, 0x7CE6, 0x7CE7, 0x7CE9, 0x7CEA, 0x7CEB, 0x7CEC, 0x7CED, 0x7CEE, 0x7CF0, 0x7CF1, 0x7CF2, 0x7CF3, 0x7CF4, 0x7CF5, 0x7CF6, 0x7CF7, 0x7CF9, 0x7CFA, 0x7CFC, 0x7CFD, 0x7CFE, 0x7CFF, 0x7D00, 0x7D01, 0x7D02, 0x7D03, 0x7D04, 0x7D05, 0x7D06, 0x7D07, 0x7D08, 0x7D09, 0x7D0B, 0x7D0C, 0x7D0D, 0x7D0E, 0x7D0F, 0x7D10, 0x003F, 0x7D11, 0x7D12, 0x7D13, 0x7D14, 0x7D15, 0x7D16, 0x7D17, 0x7D18, 0x7D19, 0x7D1A, 0x7D1B, 0x7D1C, 0x7D1D, 0x7D1E, 0x7D1F, 0x7D21, 0x7D23, 0x7D24, 0x7D25, 0x7D26, 0x7D28, 0x7D29, 0x7D2A, 0x7D2C, 0x7D2D, 0x7D2E, 0x7D30, 0x7D31, 0x7D32, 0x7D33, 0x7D34, 0x7D35, 0x7D36, 0x808C, 0x9965, 0x8FF9, 0x6FC0, 0x8BA5, 0x9E21, 0x59EC, 0x7EE9, 0x7F09, 0x5409, 0x6781, 0x68D8, 0x8F91, 0x7C4D, 0x96C6, 0x53CA, 0x6025, 0x75BE, 0x6C72, 0x5373, 0x5AC9, 0x7EA7, 0x6324, 0x51E0, 0x810A, 0x5DF1, 0x84DF, 0x6280, 0x5180, 0x5B63, 0x4F0E, 0x796D, 0x5242, 0x60B8, 0x6D4E, 0x5BC4, 0x5BC2, 0x8BA1, 0x8BB0, 0x65E2, 0x5FCC, 0x9645, 0x5993, 0x7EE7, 0x7EAA, 0x5609, 0x67B7, 0x5939, 0x4F73, 0x5BB6, 0x52A0, 0x835A, 0x988A, 0x8D3E, 0x7532, 0x94BE, 0x5047, 0x7A3C, 0x4EF7, 0x67B6, 0x9A7E, 0x5AC1, 0x6B7C, 0x76D1, 0x575A, 0x5C16, 0x7B3A, 0x95F4, 0x714E, 0x517C, 0x80A9, 0x8270, 0x5978, 0x7F04, 0x8327, 0x68C0, 0x67EC, 0x78B1, 0x7877, 0x62E3, 0x6361, 0x7B80, 0x4FED, 0x526A, 0x51CF, 0x8350, 0x69DB, 0x9274, 0x8DF5, 0x8D31, 0x89C1, 0x952E, 0x7BAD, 0x4EF6}, {0x7D37, 0x7D38, 0x7D39, 0x7D3A, 0x7D3B, 0x7D3C, 0x7D3D, 0x7D3E, 0x7D3F, 0x7D40, 0x7D41, 0x7D42, 0x7D43, 0x7D44, 0x7D45, 0x7D46, 0x7D47, 0x7D48, 0x7D49, 0x7D4A, 0x7D4B, 0x7D4C, 0x7D4D, 0x7D4E, 0x7D4F, 0x7D50, 0x7D51, 0x7D52, 0x7D53, 0x7D54, 0x7D55, 0x7D56, 0x7D57, 0x7D58, 0x7D59, 0x7D5A, 0x7D5B, 0x7D5C, 0x7D5D, 0x7D5E, 0x7D5F, 0x7D60, 0x7D61, 0x7D62, 0x7D63, 0x7D64, 0x7D65, 0x7D66, 0x7D67, 0x7D68, 0x7D69, 0x7D6A, 0x7D6B, 0x7D6C, 0x7D6D, 0x7D6F, 0x7D70, 0x7D71, 0x7D72, 0x7D73, 0x7D74, 0x7D75, 0x7D76, 0x003F, 0x7D78, 0x7D79, 0x7D7A, 0x7D7B, 0x7D7C, 0x7D7D, 0x7D7E, 0x7D7F, 0x7D80, 0x7D81, 0x7D82, 0x7D83, 0x7D84, 0x7D85, 0x7D86, 0x7D87, 0x7D88, 0x7D89, 0x7D8A, 0x7D8B, 0x7D8C, 0x7D8D, 0x7D8E, 0x7D8F, 0x7D90, 0x7D91, 0x7D92, 0x7D93, 0x7D94, 0x7D95, 0x7D96, 0x7D97, 0x7D98, 0x5065, 0x8230, 0x5251, 0x996F, 0x6E10, 0x6E85, 0x6DA7, 0x5EFA, 0x50F5, 0x59DC, 0x5C06, 0x6D46, 0x6C5F, 0x7586, 0x848B, 0x6868, 0x5956, 0x8BB2, 0x5320, 0x9171, 0x964D, 0x8549, 0x6912, 0x7901, 0x7126, 0x80F6, 0x4EA4, 0x90CA, 0x6D47, 0x9A84, 0x5A07, 0x56BC, 0x6405, 0x94F0, 0x77EB, 0x4FA5, 0x811A, 0x72E1, 0x89D2, 0x997A, 0x7F34, 0x7EDE, 0x527F, 0x6559, 0x9175, 0x8F7F, 0x8F83, 0x53EB, 0x7A96, 0x63ED, 0x63A5, 0x7686, 0x79F8, 0x8857, 0x9636, 0x622A, 0x52AB, 0x8282, 0x6854, 0x6770, 0x6377, 0x776B, 0x7AED, 0x6D01, 0x7ED3, 0x89E3, 0x59D0, 0x6212, 0x85C9, 0x82A5, 0x754C, 0x501F, 0x4ECB, 0x75A5, 0x8BEB, 0x5C4A, 0x5DFE, 0x7B4B, 0x65A4, 0x91D1, 0x4ECA, 0x6D25, 0x895F, 0x7D27, 0x9526, 0x4EC5, 0x8C28, 0x8FDB, 0x9773, 0x664B, 0x7981, 0x8FD1, 0x70EC, 0x6D78}, {0x7D99, 0x7D9A, 0x7D9B, 0x7D9C, 0x7D9D, 0x7D9E, 0x7D9F, 0x7DA0, 0x7DA1, 0x7DA2, 0x7DA3, 0x7DA4, 0x7DA5, 0x7DA7, 0x7DA8, 0x7DA9, 0x7DAA, 0x7DAB, 0x7DAC, 0x7DAD, 0x7DAF, 0x7DB0, 0x7DB1, 0x7DB2, 0x7DB3, 0x7DB4, 0x7DB5, 0x7DB6, 0x7DB7, 0x7DB8, 0x7DB9, 0x7DBA, 0x7DBB, 0x7DBC, 0x7DBD, 0x7DBE, 0x7DBF, 0x7DC0, 0x7DC1, 0x7DC2, 0x7DC3, 0x7DC4, 0x7DC5, 0x7DC6, 0x7DC7, 0x7DC8, 0x7DC9, 0x7DCA, 0x7DCB, 0x7DCC, 0x7DCD, 0x7DCE, 0x7DCF, 0x7DD0, 0x7DD1, 0x7DD2, 0x7DD3, 0x7DD4, 0x7DD5, 0x7DD6, 0x7DD7, 0x7DD8, 0x7DD9, 0x003F, 0x7DDA, 0x7DDB, 0x7DDC, 0x7DDD, 0x7DDE, 0x7DDF, 0x7DE0, 0x7DE1, 0x7DE2, 0x7DE3, 0x7DE4, 0x7DE5, 0x7DE6, 0x7DE7, 0x7DE8, 0x7DE9, 0x7DEA, 0x7DEB, 0x7DEC, 0x7DED, 0x7DEE, 0x7DEF, 0x7DF0, 0x7DF1, 0x7DF2, 0x7DF3, 0x7DF4, 0x7DF5, 0x7DF6, 0x7DF7, 0x7DF8, 0x7DF9, 0x7DFA, 0x5C3D, 0x52B2, 0x8346, 0x5162, 0x830E, 0x775B, 0x6676, 0x9CB8, 0x4EAC, 0x60CA, 0x7CBE, 0x7CB3, 0x7ECF, 0x4E95, 0x8B66, 0x666F, 0x9888, 0x9759, 0x5883, 0x656C, 0x955C, 0x5F84, 0x75C9, 0x9756, 0x7ADF, 0x7ADE, 0x51C0, 0x70AF, 0x7A98, 0x63EA, 0x7A76, 0x7EA0, 0x7396, 0x97ED, 0x4E45, 0x7078, 0x4E5D, 0x9152, 0x53A9, 0x6551, 0x65E7, 0x81FC, 0x8205, 0x548E, 0x5C31, 0x759A, 0x97A0, 0x62D8, 0x72D9, 0x75BD, 0x5C45, 0x9A79, 0x83CA, 0x5C40, 0x5480, 0x77E9, 0x4E3E, 0x6CAE, 0x805A, 0x62D2, 0x636E, 0x5DE8, 0x5177, 0x8DDD, 0x8E1E, 0x952F, 0x4FF1, 0x53E5, 0x60E7, 0x70AC, 0x5267, 0x6350, 0x9E43, 0x5A1F, 0x5026, 0x7737, 0x5377, 0x7EE2, 0x6485, 0x652B, 0x6289, 0x6398, 0x5014, 0x7235, 0x89C9, 0x51B3, 0x8BC0, 0x7EDD, 0x5747, 0x83CC, 0x94A7, 0x519B, 0x541B, 0x5CFB}, {0x7DFB, 0x7DFC, 0x7DFD, 0x7DFE, 0x7DFF, 0x7E00, 0x7E01, 0x7E02, 0x7E03, 0x7E04, 0x7E05, 0x7E06, 0x7E07, 0x7E08, 0x7E09, 0x7E0A, 0x7E0B, 0x7E0C, 0x7E0D, 0x7E0E, 0x7E0F, 0x7E10, 0x7E11, 0x7E12, 0x7E13, 0x7E14, 0x7E15, 0x7E16, 0x7E17, 0x7E18, 0x7E19, 0x7E1A, 0x7E1B, 0x7E1C, 0x7E1D, 0x7E1E, 0x7E1F, 0x7E20, 0x7E21, 0x7E22, 0x7E23, 0x7E24, 0x7E25, 0x7E26, 0x7E27, 0x7E28, 0x7E29, 0x7E2A, 0x7E2B, 0x7E2C, 0x7E2D, 0x7E2E, 0x7E2F, 0x7E30, 0x7E31, 0x7E32, 0x7E33, 0x7E34, 0x7E35, 0x7E36, 0x7E37, 0x7E38, 0x7E39, 0x003F, 0x7E3A, 0x7E3C, 0x7E3D, 0x7E3E, 0x7E3F, 0x7E40, 0x7E42, 0x7E43, 0x7E44, 0x7E45, 0x7E46, 0x7E48, 0x7E49, 0x7E4A, 0x7E4B, 0x7E4C, 0x7E4D, 0x7E4E, 0x7E4F, 0x7E50, 0x7E51, 0x7E52, 0x7E53, 0x7E54, 0x7E55, 0x7E56, 0x7E57, 0x7E58, 0x7E59, 0x7E5A, 0x7E5B, 0x7E5C, 0x7E5D, 0x4FCA, 0x7AE3, 0x6D5A, 0x90E1, 0x9A8F, 0x5580, 0x5496, 0x5361, 0x54AF, 0x5F00, 0x63E9, 0x6977, 0x51EF, 0x6168, 0x520A, 0x582A, 0x52D8, 0x574E, 0x780D, 0x770B, 0x5EB7, 0x6177, 0x7CE0, 0x625B, 0x6297, 0x4EA2, 0x7095, 0x8003, 0x62F7, 0x70E4, 0x9760, 0x5777, 0x82DB, 0x67EF, 0x68F5, 0x78D5, 0x9897, 0x79D1, 0x58F3, 0x54B3, 0x53EF, 0x6E34, 0x514B, 0x523B, 0x5BA2, 0x8BFE, 0x80AF, 0x5543, 0x57A6, 0x6073, 0x5751, 0x542D, 0x7A7A, 0x6050, 0x5B54, 0x63A7, 0x62A0, 0x53E3, 0x6263, 0x5BC7, 0x67AF, 0x54ED, 0x7A9F, 0x82E6, 0x9177, 0x5E93, 0x88E4, 0x5938, 0x57AE, 0x630E, 0x8DE8, 0x80EF, 0x5757, 0x7B77, 0x4FA9, 0x5FEB, 0x5BBD, 0x6B3E, 0x5321, 0x7B50, 0x72C2, 0x6846, 0x77FF, 0x7736, 0x65F7, 0x51B5, 0x4E8F, 0x76D4, 0x5CBF, 0x7AA5, 0x8475, 0x594E, 0x9B41, 0x5080}, {0x7E5E, 0x7E5F, 0x7E60, 0x7E61, 0x7E62, 0x7E63, 0x7E64, 0x7E65, 0x7E66, 0x7E67, 0x7E68, 0x7E69, 0x7E6A, 0x7E6B, 0x7E6C, 0x7E6D, 0x7E6E, 0x7E6F, 0x7E70, 0x7E71, 0x7E72, 0x7E73, 0x7E74, 0x7E75, 0x7E76, 0x7E77, 0x7E78, 0x7E79, 0x7E7A, 0x7E7B, 0x7E7C, 0x7E7D, 0x7E7E, 0x7E7F, 0x7E80, 0x7E81, 0x7E83, 0x7E84, 0x7E85, 0x7E86, 0x7E87, 0x7E88, 0x7E89, 0x7E8A, 0x7E8B, 0x7E8C, 0x7E8D, 0x7E8E, 0x7E8F, 0x7E90, 0x7E91, 0x7E92, 0x7E93, 0x7E94, 0x7E95, 0x7E96, 0x7E97, 0x7E98, 0x7E99, 0x7E9A, 0x7E9C, 0x7E9D, 0x7E9E, 0x003F, 0x7EAE, 0x7EB4, 0x7EBB, 0x7EBC, 0x7ED6, 0x7EE4, 0x7EEC, 0x7EF9, 0x7F0A, 0x7F10, 0x7F1E, 0x7F37, 0x7F39, 0x7F3B, 0x7F3C, 0x7F3D, 0x7F3E, 0x7F3F, 0x7F40, 0x7F41, 0x7F43, 0x7F46, 0x7F47, 0x7F48, 0x7F49, 0x7F4A, 0x7F4B, 0x7F4C, 0x7F4D, 0x7F4E, 0x7F4F, 0x7F52, 0x7F53, 0x9988, 0x6127, 0x6E83, 0x5764, 0x6606, 0x6346, 0x56F0, 0x62EC, 0x6269, 0x5ED3, 0x9614, 0x5783, 0x62C9, 0x5587, 0x8721, 0x814A, 0x8FA3, 0x5566, 0x83B1, 0x6765, 0x8D56, 0x84DD, 0x5A6A, 0x680F, 0x62E6, 0x7BEE, 0x9611, 0x5170, 0x6F9C, 0x8C30, 0x63FD, 0x89C8, 0x61D2, 0x7F06, 0x70C2, 0x6EE5, 0x7405, 0x6994, 0x72FC, 0x5ECA, 0x90CE, 0x6717, 0x6D6A, 0x635E, 0x52B3, 0x7262, 0x8001, 0x4F6C, 0x59E5, 0x916A, 0x70D9, 0x6D9D, 0x52D2, 0x4E50, 0x96F7, 0x956D, 0x857E, 0x78CA, 0x7D2F, 0x5121, 0x5792, 0x64C2, 0x808B, 0x7C7B, 0x6CEA, 0x68F1, 0x695E, 0x51B7, 0x5398, 0x68A8, 0x7281, 0x9ECE, 0x7BF1, 0x72F8, 0x79BB, 0x6F13, 0x7406, 0x674E, 0x91CC, 0x9CA4, 0x793C, 0x8389, 0x8354, 0x540F, 0x6817, 0x4E3D, 0x5389, 0x52B1, 0x783E, 0x5386, 0x5229, 0x5088, 0x4F8B, 0x4FD0}, {0x7F56, 0x7F59, 0x7F5B, 0x7F5C, 0x7F5D, 0x7F5E, 0x7F60, 0x7F63, 0x7F64, 0x7F65, 0x7F66, 0x7F67, 0x7F6B, 0x7F6C, 0x7F6D, 0x7F6F, 0x7F70, 0x7F73, 0x7F75, 0x7F76, 0x7F77, 0x7F78, 0x7F7A, 0x7F7B, 0x7F7C, 0x7F7D, 0x7F7F, 0x7F80, 0x7F82, 0x7F83, 0x7F84, 0x7F85, 0x7F86, 0x7F87, 0x7F88, 0x7F89, 0x7F8B, 0x7F8D, 0x7F8F, 0x7F90, 0x7F91, 0x7F92, 0x7F93, 0x7F95, 0x7F96, 0x7F97, 0x7F98, 0x7F99, 0x7F9B, 0x7F9C, 0x7FA0, 0x7FA2, 0x7FA3, 0x7FA5, 0x7FA6, 0x7FA8, 0x7FA9, 0x7FAA, 0x7FAB, 0x7FAC, 0x7FAD, 0x7FAE, 0x7FB1, 0x003F, 0x7FB3, 0x7FB4, 0x7FB5, 0x7FB6, 0x7FB7, 0x7FBA, 0x7FBB, 0x7FBE, 0x7FC0, 0x7FC2, 0x7FC3, 0x7FC4, 0x7FC6, 0x7FC7, 0x7FC8, 0x7FC9, 0x7FCB, 0x7FCD, 0x7FCF, 0x7FD0, 0x7FD1, 0x7FD2, 0x7FD3, 0x7FD6, 0x7FD7, 0x7FD9, 0x7FDA, 0x7FDB, 0x7FDC, 0x7FDD, 0x7FDE, 0x7FE2, 0x7FE3, 0x75E2, 0x7ACB, 0x7C92, 0x6CA5, 0x96B6, 0x529B, 0x7483, 0x54E9, 0x4FE9, 0x8054, 0x83B2, 0x8FDE, 0x9570, 0x5EC9, 0x601C, 0x6D9F, 0x5E18, 0x655B, 0x8138, 0x94FE, 0x604B, 0x70BC, 0x7EC3, 0x7CAE, 0x51C9, 0x6881, 0x7CB1, 0x826F, 0x4E24, 0x8F86, 0x91CF, 0x667E, 0x4EAE, 0x8C05, 0x64A9, 0x804A, 0x50DA, 0x7597, 0x71CE, 0x5BE5, 0x8FBD, 0x6F66, 0x4E86, 0x6482, 0x9563, 0x5ED6, 0x6599, 0x5217, 0x88C2, 0x70C8, 0x52A3, 0x730E, 0x7433, 0x6797, 0x78F7, 0x9716, 0x4E34, 0x90BB, 0x9CDE, 0x6DCB, 0x51DB, 0x8D41, 0x541D, 0x62CE, 0x73B2, 0x83F1, 0x96F6, 0x9F84, 0x94C3, 0x4F36, 0x7F9A, 0x51CC, 0x7075, 0x9675, 0x5CAD, 0x9886, 0x53E6, 0x4EE4, 0x6E9C, 0x7409, 0x69B4, 0x786B, 0x998F, 0x7559, 0x5218, 0x7624, 0x6D41, 0x67F3, 0x516D, 0x9F99, 0x804B, 0x5499, 0x7B3C, 0x7ABF}, {0x7FE4, 0x7FE7, 0x7FE8, 0x7FEA, 0x7FEB, 0x7FEC, 0x7FED, 0x7FEF, 0x7FF2, 0x7FF4, 0x7FF5, 0x7FF6, 0x7FF7, 0x7FF8, 0x7FF9, 0x7FFA, 0x7FFD, 0x7FFE, 0x7FFF, 0x8002, 0x8007, 0x8008, 0x8009, 0x800A, 0x800E, 0x800F, 0x8011, 0x8013, 0x801A, 0x801B, 0x801D, 0x801E, 0x801F, 0x8021, 0x8023, 0x8024, 0x802B, 0x802C, 0x802D, 0x802E, 0x802F, 0x8030, 0x8032, 0x8034, 0x8039, 0x803A, 0x803C, 0x803E, 0x8040, 0x8041, 0x8044, 0x8045, 0x8047, 0x8048, 0x8049, 0x804E, 0x804F, 0x8050, 0x8051, 0x8053, 0x8055, 0x8056, 0x8057, 0x003F, 0x8059, 0x805B, 0x805C, 0x805D, 0x805E, 0x805F, 0x8060, 0x8061, 0x8062, 0x8063, 0x8064, 0x8065, 0x8066, 0x8067, 0x8068, 0x806B, 0x806C, 0x806D, 0x806E, 0x806F, 0x8070, 0x8072, 0x8073, 0x8074, 0x8075, 0x8076, 0x8077, 0x8078, 0x8079, 0x807A, 0x807B, 0x807C, 0x807D, 0x9686, 0x5784, 0x62E2, 0x9647, 0x697C, 0x5A04, 0x6402, 0x7BD3, 0x6F0F, 0x964B, 0x82A6, 0x5362, 0x9885, 0x5E90, 0x7089, 0x63B3, 0x5364, 0x864F, 0x9C81, 0x9E93, 0x788C, 0x9732, 0x8DEF, 0x8D42, 0x9E7F, 0x6F5E, 0x7984, 0x5F55, 0x9646, 0x622E, 0x9A74, 0x5415, 0x94DD, 0x4FA3, 0x65C5, 0x5C65, 0x5C61, 0x7F15, 0x8651, 0x6C2F, 0x5F8B, 0x7387, 0x6EE4, 0x7EFF, 0x5CE6, 0x631B, 0x5B6A, 0x6EE6, 0x5375, 0x4E71, 0x63A0, 0x7565, 0x62A1, 0x8F6E, 0x4F26, 0x4ED1, 0x6CA6, 0x7EB6, 0x8BBA, 0x841D, 0x87BA, 0x7F57, 0x903B, 0x9523, 0x7BA9, 0x9AA1, 0x88F8, 0x843D, 0x6D1B, 0x9A86, 0x7EDC, 0x5988, 0x9EBB, 0x739B, 0x7801, 0x8682, 0x9A6C, 0x9A82, 0x561B, 0x5417, 0x57CB, 0x4E70, 0x9EA6, 0x5356, 0x8FC8, 0x8109, 0x7792, 0x9992, 0x86EE, 0x6EE1, 0x8513, 0x66FC, 0x6162, 0x6F2B}, {0x807E, 0x8081, 0x8082, 0x8085, 0x8088, 0x808A, 0x808D, 0x808E, 0x808F, 0x8090, 0x8091, 0x8092, 0x8094, 0x8095, 0x8097, 0x8099, 0x809E, 0x80A3, 0x80A6, 0x80A7, 0x80A8, 0x80AC, 0x80B0, 0x80B3, 0x80B5, 0x80B6, 0x80B8, 0x80B9, 0x80BB, 0x80C5, 0x80C7, 0x80C8, 0x80C9, 0x80CA, 0x80CB, 0x80CF, 0x80D0, 0x80D1, 0x80D2, 0x80D3, 0x80D4, 0x80D5, 0x80D8, 0x80DF, 0x80E0, 0x80E2, 0x80E3, 0x80E6, 0x80EE, 0x80F5, 0x80F7, 0x80F9, 0x80FB, 0x80FE, 0x80FF, 0x8100, 0x8101, 0x8103, 0x8104, 0x8105, 0x8107, 0x8108, 0x810B, 0x003F, 0x810C, 0x8115, 0x8117, 0x8119, 0x811B, 0x811C, 0x811D, 0x811F, 0x8120, 0x8121, 0x8122, 0x8123, 0x8124, 0x8125, 0x8126, 0x8127, 0x8128, 0x8129, 0x812A, 0x812B, 0x812D, 0x812E, 0x8130, 0x8133, 0x8134, 0x8135, 0x8137, 0x8139, 0x813A, 0x813B, 0x813C, 0x813D, 0x813F, 0x8C29, 0x8292, 0x832B, 0x76F2, 0x6C13, 0x5FD9, 0x83BD, 0x732B, 0x8305, 0x951A, 0x6BDB, 0x77DB, 0x94C6, 0x536F, 0x8302, 0x5192, 0x5E3D, 0x8C8C, 0x8D38, 0x4E48, 0x73AB, 0x679A, 0x6885, 0x9176, 0x9709, 0x7164, 0x6CA1, 0x7709, 0x5A92, 0x9541, 0x6BCF, 0x7F8E, 0x6627, 0x5BD0, 0x59B9, 0x5A9A, 0x95E8, 0x95F7, 0x4EEC, 0x840C, 0x8499, 0x6AAC, 0x76DF, 0x9530, 0x731B, 0x68A6, 0x5B5F, 0x772F, 0x919A, 0x9761, 0x7CDC, 0x8FF7, 0x8C1C, 0x5F25, 0x7C73, 0x79D8, 0x89C5, 0x6CCC, 0x871C, 0x5BC6, 0x5E42, 0x68C9, 0x7720, 0x7EF5, 0x5195, 0x514D, 0x52C9, 0x5A29, 0x7F05, 0x9762, 0x82D7, 0x63CF, 0x7784, 0x85D0, 0x79D2, 0x6E3A, 0x5E99, 0x5999, 0x8511, 0x706D, 0x6C11, 0x62BF, 0x76BF, 0x654F, 0x60AF, 0x95FD, 0x660E, 0x879F, 0x9E23, 0x94ED, 0x540D, 0x547D, 0x8C2C, 0x6478}, {0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8147, 0x8149, 0x814D, 0x814E, 0x814F, 0x8152, 0x8156, 0x8157, 0x8158, 0x815B, 0x815C, 0x815D, 0x815E, 0x815F, 0x8161, 0x8162, 0x8163, 0x8164, 0x8166, 0x8168, 0x816A, 0x816B, 0x816C, 0x816F, 0x8172, 0x8173, 0x8175, 0x8176, 0x8177, 0x8178, 0x8181, 0x8183, 0x8184, 0x8185, 0x8186, 0x8187, 0x8189, 0x818B, 0x818C, 0x818D, 0x818E, 0x8190, 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8199, 0x819A, 0x819E, 0x819F, 0x81A0, 0x81A1, 0x81A2, 0x81A4, 0x81A5, 0x003F, 0x81A7, 0x81A9, 0x81AB, 0x81AC, 0x81AD, 0x81AE, 0x81AF, 0x81B0, 0x81B1, 0x81B2, 0x81B4, 0x81B5, 0x81B6, 0x81B7, 0x81B8, 0x81B9, 0x81BC, 0x81BD, 0x81BE, 0x81BF, 0x81C4, 0x81C5, 0x81C7, 0x81C8, 0x81C9, 0x81CB, 0x81CD, 0x81CE, 0x81CF, 0x81D0, 0x81D1, 0x81D2, 0x81D3, 0x6479, 0x8611, 0x6A21, 0x819C, 0x78E8, 0x6469, 0x9B54, 0x62B9, 0x672B, 0x83AB, 0x58A8, 0x9ED8, 0x6CAB, 0x6F20, 0x5BDE, 0x964C, 0x8C0B, 0x725F, 0x67D0, 0x62C7, 0x7261, 0x4EA9, 0x59C6, 0x6BCD, 0x5893, 0x66AE, 0x5E55, 0x52DF, 0x6155, 0x6728, 0x76EE, 0x7766, 0x7267, 0x7A46, 0x62FF, 0x54EA, 0x5450, 0x94A0, 0x90A3, 0x5A1C, 0x7EB3, 0x6C16, 0x4E43, 0x5976, 0x8010, 0x5948, 0x5357, 0x7537, 0x96BE, 0x56CA, 0x6320, 0x8111, 0x607C, 0x95F9, 0x6DD6, 0x5462, 0x9981, 0x5185, 0x5AE9, 0x80FD, 0x59AE, 0x9713, 0x502A, 0x6CE5, 0x5C3C, 0x62DF, 0x4F60, 0x533F, 0x817B, 0x9006, 0x6EBA, 0x852B, 0x62C8, 0x5E74, 0x78BE, 0x64B5, 0x637B, 0x5FF5, 0x5A18, 0x917F, 0x9E1F, 0x5C3F, 0x634F, 0x8042, 0x5B7D, 0x556E, 0x954A, 0x954D, 0x6D85, 0x60A8, 0x67E0, 0x72DE, 0x51DD, 0x5B81}, {0x81D4, 0x81D5, 0x81D6, 0x81D7, 0x81D8, 0x81D9, 0x81DA, 0x81DB, 0x81DC, 0x81DD, 0x81DE, 0x81DF, 0x81E0, 0x81E1, 0x81E2, 0x81E4, 0x81E5, 0x81E6, 0x81E8, 0x81E9, 0x81EB, 0x81EE, 0x81EF, 0x81F0, 0x81F1, 0x81F2, 0x81F5, 0x81F6, 0x81F7, 0x81F8, 0x81F9, 0x81FA, 0x81FD, 0x81FF, 0x8203, 0x8207, 0x8208, 0x8209, 0x820A, 0x820B, 0x820E, 0x820F, 0x8211, 0x8213, 0x8215, 0x8216, 0x8217, 0x8218, 0x8219, 0x821A, 0x821D, 0x8220, 0x8224, 0x8225, 0x8226, 0x8227, 0x8229, 0x822E, 0x8232, 0x823A, 0x823C, 0x823D, 0x823F, 0x003F, 0x8240, 0x8241, 0x8242, 0x8243, 0x8245, 0x8246, 0x8248, 0x824A, 0x824C, 0x824D, 0x824E, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256, 0x8257, 0x8259, 0x825B, 0x825C, 0x825D, 0x825E, 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8269, 0x62E7, 0x6CDE, 0x725B, 0x626D, 0x94AE, 0x7EBD, 0x8113, 0x6D53, 0x519C, 0x5F04, 0x5974, 0x52AA, 0x6012, 0x5973, 0x6696, 0x8650, 0x759F, 0x632A, 0x61E6, 0x7CEF, 0x8BFA, 0x54E6, 0x6B27, 0x9E25, 0x6BB4, 0x85D5, 0x5455, 0x5076, 0x6CA4, 0x556A, 0x8DB4, 0x722C, 0x5E15, 0x6015, 0x7436, 0x62CD, 0x6392, 0x724C, 0x5F98, 0x6E43, 0x6D3E, 0x6500, 0x6F58, 0x76D8, 0x78D0, 0x76FC, 0x7554, 0x5224, 0x53DB, 0x4E53, 0x5E9E, 0x65C1, 0x802A, 0x80D6, 0x629B, 0x5486, 0x5228, 0x70AE, 0x888D, 0x8DD1, 0x6CE1, 0x5478, 0x80DA, 0x57F9, 0x88F4, 0x8D54, 0x966A, 0x914D, 0x4F69, 0x6C9B, 0x55B7, 0x76C6, 0x7830, 0x62A8, 0x70F9, 0x6F8E, 0x5F6D, 0x84EC, 0x68DA, 0x787C, 0x7BF7, 0x81A8, 0x670B, 0x9E4F, 0x6367, 0x78B0, 0x576F, 0x7812, 0x9739, 0x6279, 0x62AB, 0x5288, 0x7435, 0x6BD7}, {0x826A, 0x826B, 0x826C, 0x826D, 0x8271, 0x8275, 0x8276, 0x8277, 0x8278, 0x827B, 0x827C, 0x8280, 0x8281, 0x8283, 0x8285, 0x8286, 0x8287, 0x8289, 0x828C, 0x8290, 0x8293, 0x8294, 0x8295, 0x8296, 0x829A, 0x829B, 0x829E, 0x82A0, 0x82A2, 0x82A3, 0x82A7, 0x82B2, 0x82B5, 0x82B6, 0x82BA, 0x82BB, 0x82BC, 0x82BF, 0x82C0, 0x82C2, 0x82C3, 0x82C5, 0x82C6, 0x82C9, 0x82D0, 0x82D6, 0x82D9, 0x82DA, 0x82DD, 0x82E2, 0x82E7, 0x82E8, 0x82E9, 0x82EA, 0x82EC, 0x82ED, 0x82EE, 0x82F0, 0x82F2, 0x82F3, 0x82F5, 0x82F6, 0x82F8, 0x003F, 0x82FA, 0x82FC, 0x82FD, 0x82FE, 0x82FF, 0x8300, 0x830A, 0x830B, 0x830D, 0x8310, 0x8312, 0x8313, 0x8316, 0x8318, 0x8319, 0x831D, 0x831E, 0x831F, 0x8320, 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, 0x8326, 0x8329, 0x832A, 0x832E, 0x8330, 0x8332, 0x8337, 0x833B, 0x833D, 0x5564, 0x813E, 0x75B2, 0x76AE, 0x5339, 0x75DE, 0x50FB, 0x5C41, 0x8B6C, 0x7BC7, 0x504F, 0x7247, 0x9A97, 0x98D8, 0x6F02, 0x74E2, 0x7968, 0x6487, 0x77A5, 0x62FC, 0x9891, 0x8D2B, 0x54C1, 0x8058, 0x4E52, 0x576A, 0x82F9, 0x840D, 0x5E73, 0x51ED, 0x74F6, 0x8BC4, 0x5C4F, 0x5761, 0x6CFC, 0x9887, 0x5A46, 0x7834, 0x9B44, 0x8FEB, 0x7C95, 0x5256, 0x6251, 0x94FA, 0x4EC6, 0x8386, 0x8461, 0x83E9, 0x84B2, 0x57D4, 0x6734, 0x5703, 0x666E, 0x6D66, 0x8C31, 0x66DD, 0x7011, 0x671F, 0x6B3A, 0x6816, 0x621A, 0x59BB, 0x4E03, 0x51C4, 0x6F06, 0x67D2, 0x6C8F, 0x5176, 0x68CB, 0x5947, 0x6B67, 0x7566, 0x5D0E, 0x8110, 0x9F50, 0x65D7, 0x7948, 0x7941, 0x9A91, 0x8D77, 0x5C82, 0x4E5E, 0x4F01, 0x542F, 0x5951, 0x780C, 0x5668, 0x6C14, 0x8FC4, 0x5F03, 0x6C7D, 0x6CE3, 0x8BAB, 0x6390}, {0x833E, 0x833F, 0x8341, 0x8342, 0x8344, 0x8345, 0x8348, 0x834A, 0x834B, 0x834C, 0x834D, 0x834E, 0x8353, 0x8355, 0x8356, 0x8357, 0x8358, 0x8359, 0x835D, 0x8362, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, 0x8376, 0x8379, 0x837A, 0x837E, 0x837F, 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8387, 0x8388, 0x838A, 0x838B, 0x838C, 0x838D, 0x838F, 0x8390, 0x8391, 0x8394, 0x8395, 0x8396, 0x8397, 0x8399, 0x839A, 0x839D, 0x839F, 0x83A1, 0x83A2, 0x83A3, 0x83A4, 0x83A5, 0x83A6, 0x83A7, 0x83AC, 0x83AD, 0x83AE, 0x003F, 0x83AF, 0x83B5, 0x83BB, 0x83BE, 0x83BF, 0x83C2, 0x83C3, 0x83C4, 0x83C6, 0x83C8, 0x83C9, 0x83CB, 0x83CD, 0x83CE, 0x83D0, 0x83D1, 0x83D2, 0x83D3, 0x83D5, 0x83D7, 0x83D9, 0x83DA, 0x83DB, 0x83DE, 0x83E2, 0x83E3, 0x83E4, 0x83E6, 0x83E7, 0x83E8, 0x83EB, 0x83EC, 0x83ED, 0x6070, 0x6D3D, 0x7275, 0x6266, 0x948E, 0x94C5, 0x5343, 0x8FC1, 0x7B7E, 0x4EDF, 0x8C26, 0x4E7E, 0x9ED4, 0x94B1, 0x94B3, 0x524D, 0x6F5C, 0x9063, 0x6D45, 0x8C34, 0x5811, 0x5D4C, 0x6B20, 0x6B49, 0x67AA, 0x545B, 0x8154, 0x7F8C, 0x5899, 0x8537, 0x5F3A, 0x62A2, 0x6A47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77A7, 0x4E54, 0x4FA8, 0x5DE7, 0x9798, 0x64AC, 0x7FD8, 0x5CED, 0x4FCF, 0x7A8D, 0x5207, 0x8304, 0x4E14, 0x602F, 0x7A83, 0x94A6, 0x4FB5, 0x4EB2, 0x79E6, 0x7434, 0x52E4, 0x82B9, 0x64D2, 0x79BD, 0x5BDD, 0x6C81, 0x9752, 0x8F7B, 0x6C22, 0x503E, 0x537F, 0x6E05, 0x64CE, 0x6674, 0x6C30, 0x60C5, 0x9877, 0x8BF7, 0x5E86, 0x743C, 0x7A77, 0x79CB, 0x4E18, 0x90B1, 0x7403, 0x6C42, 0x56DA, 0x914B, 0x6CC5, 0x8D8B, 0x533A, 0x86C6, 0x66F2, 0x8EAF, 0x5C48, 0x9A71, 0x6E20}, {0x83EE, 0x83EF, 0x83F3, 0x83F4, 0x83F5, 0x83F6, 0x83F7, 0x83FA, 0x83FB, 0x83FC, 0x83FE, 0x83FF, 0x8400, 0x8402, 0x8405, 0x8407, 0x8408, 0x8409, 0x840A, 0x8410, 0x8412, 0x8413, 0x8414, 0x8415, 0x8416, 0x8417, 0x8419, 0x841A, 0x841B, 0x841E, 0x841F, 0x8420, 0x8421, 0x8422, 0x8423, 0x8429, 0x842A, 0x842B, 0x842C, 0x842D, 0x842E, 0x842F, 0x8430, 0x8432, 0x8433, 0x8434, 0x8435, 0x8436, 0x8437, 0x8439, 0x843A, 0x843B, 0x843E, 0x843F, 0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x003F, 0x844A, 0x844B, 0x844C, 0x844D, 0x844E, 0x844F, 0x8450, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8458, 0x845D, 0x845E, 0x845F, 0x8460, 0x8462, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, 0x846A, 0x846E, 0x846F, 0x8470, 0x8472, 0x8474, 0x8477, 0x8479, 0x847B, 0x847C, 0x53D6, 0x5A36, 0x9F8B, 0x8DA3, 0x53BB, 0x5708, 0x98A7, 0x6743, 0x919B, 0x6CC9, 0x5168, 0x75CA, 0x62F3, 0x72AC, 0x5238, 0x529D, 0x7F3A, 0x7094, 0x7638, 0x5374, 0x9E4A, 0x69B7, 0x786E, 0x96C0, 0x88D9, 0x7FA4, 0x7136, 0x71C3, 0x5189, 0x67D3, 0x74E4, 0x58E4, 0x6518, 0x56B7, 0x8BA9, 0x9976, 0x6270, 0x7ED5, 0x60F9, 0x70ED, 0x58EC, 0x4EC1, 0x4EBA, 0x5FCD, 0x97E7, 0x4EFB, 0x8BA4, 0x5203, 0x598A, 0x7EAB, 0x6254, 0x4ECD, 0x65E5, 0x620E, 0x8338, 0x84C9, 0x8363, 0x878D, 0x7194, 0x6EB6, 0x5BB9, 0x7ED2, 0x5197, 0x63C9, 0x67D4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5B7A, 0x5982, 0x8FB1, 0x4E73, 0x6C5D, 0x5165, 0x8925, 0x8F6F, 0x962E, 0x854A, 0x745E, 0x9510, 0x95F0, 0x6DA6, 0x82E5, 0x5F31, 0x6492, 0x6D12, 0x8428, 0x816E, 0x9CC3, 0x585E, 0x8D5B, 0x4E09, 0x53C1}, {0x847D, 0x847E, 0x847F, 0x8480, 0x8481, 0x8483, 0x8484, 0x8485, 0x8486, 0x848A, 0x848D, 0x848F, 0x8490, 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, 0x8496, 0x8498, 0x849A, 0x849B, 0x849D, 0x849E, 0x849F, 0x84A0, 0x84A2, 0x84A3, 0x84A4, 0x84A5, 0x84A6, 0x84A7, 0x84A8, 0x84A9, 0x84AA, 0x84AB, 0x84AC, 0x84AD, 0x84AE, 0x84B0, 0x84B1, 0x84B3, 0x84B5, 0x84B6, 0x84B7, 0x84BB, 0x84BC, 0x84BE, 0x84C0, 0x84C2, 0x84C3, 0x84C5, 0x84C6, 0x84C7, 0x84C8, 0x84CB, 0x84CC, 0x84CE, 0x84CF, 0x84D2, 0x84D4, 0x84D5, 0x84D7, 0x003F, 0x84D8, 0x84D9, 0x84DA, 0x84DB, 0x84DC, 0x84DE, 0x84E1, 0x84E2, 0x84E4, 0x84E7, 0x84E8, 0x84E9, 0x84EA, 0x84EB, 0x84ED, 0x84EE, 0x84EF, 0x84F1, 0x84F2, 0x84F3, 0x84F4, 0x84F5, 0x84F6, 0x84F7, 0x84F8, 0x84F9, 0x84FA, 0x84FB, 0x84FD, 0x84FE, 0x8500, 0x8501, 0x8502, 0x4F1E, 0x6563, 0x6851, 0x55D3, 0x4E27, 0x6414, 0x9A9A, 0x626B, 0x5AC2, 0x745F, 0x8272, 0x6DA9, 0x68EE, 0x50E7, 0x838E, 0x7802, 0x6740, 0x5239, 0x6C99, 0x7EB1, 0x50BB, 0x5565, 0x715E, 0x7B5B, 0x6652, 0x73CA, 0x82EB, 0x6749, 0x5C71, 0x5220, 0x717D, 0x886B, 0x95EA, 0x9655, 0x64C5, 0x8D61, 0x81B3, 0x5584, 0x6C55, 0x6247, 0x7F2E, 0x5892, 0x4F24, 0x5546, 0x8D4F, 0x664C, 0x4E0A, 0x5C1A, 0x88F3, 0x68A2, 0x634E, 0x7A0D, 0x70E7, 0x828D, 0x52FA, 0x97F6, 0x5C11, 0x54E8, 0x90B5, 0x7ECD, 0x5962, 0x8D4A, 0x86C7, 0x820C, 0x820D, 0x8D66, 0x6444, 0x5C04, 0x6151, 0x6D89, 0x793E, 0x8BBE, 0x7837, 0x7533, 0x547B, 0x4F38, 0x8EAB, 0x6DF1, 0x5A20, 0x7EC5, 0x795E, 0x6C88, 0x5BA1, 0x5A76, 0x751A, 0x80BE, 0x614E, 0x6E17, 0x58F0, 0x751F, 0x7525, 0x7272, 0x5347, 0x7EF3}, {0x8503, 0x8504, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 0x850A, 0x850B, 0x850D, 0x850E, 0x850F, 0x8510, 0x8512, 0x8514, 0x8515, 0x8516, 0x8518, 0x8519, 0x851B, 0x851C, 0x851D, 0x851E, 0x8520, 0x8522, 0x8523, 0x8524, 0x8525, 0x8526, 0x8527, 0x8528, 0x8529, 0x852A, 0x852D, 0x852E, 0x852F, 0x8530, 0x8531, 0x8532, 0x8533, 0x8534, 0x8535, 0x8536, 0x853E, 0x853F, 0x8540, 0x8541, 0x8542, 0x8544, 0x8545, 0x8546, 0x8547, 0x854B, 0x854C, 0x854D, 0x854E, 0x854F, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0x003F, 0x8557, 0x8558, 0x855A, 0x855B, 0x855C, 0x855D, 0x855F, 0x8560, 0x8561, 0x8562, 0x8563, 0x8565, 0x8566, 0x8567, 0x8569, 0x856A, 0x856B, 0x856C, 0x856D, 0x856E, 0x856F, 0x8570, 0x8571, 0x8573, 0x8575, 0x8576, 0x8577, 0x8578, 0x857C, 0x857D, 0x857F, 0x8580, 0x8581, 0x7701, 0x76DB, 0x5269, 0x80DC, 0x5723, 0x5E08, 0x5931, 0x72EE, 0x65BD, 0x6E7F, 0x8BD7, 0x5C38, 0x8671, 0x5341, 0x77F3, 0x62FE, 0x65F6, 0x4EC0, 0x98DF, 0x8680, 0x5B9E, 0x8BC6, 0x53F2, 0x77E2, 0x4F7F, 0x5C4E, 0x9A76, 0x59CB, 0x5F0F, 0x793A, 0x58EB, 0x4E16, 0x67FF, 0x4E8B, 0x62ED, 0x8A93, 0x901D, 0x52BF, 0x662F, 0x55DC, 0x566C, 0x9002, 0x4ED5, 0x4F8D, 0x91CA, 0x9970, 0x6C0F, 0x5E02, 0x6043, 0x5BA4, 0x89C6, 0x8BD5, 0x6536, 0x624B, 0x9996, 0x5B88, 0x5BFF, 0x6388, 0x552E, 0x53D7, 0x7626, 0x517D, 0x852C, 0x67A2, 0x68B3, 0x6B8A, 0x6292, 0x8F93, 0x53D4, 0x8212, 0x6DD1, 0x758F, 0x4E66, 0x8D4E, 0x5B70, 0x719F, 0x85AF, 0x6691, 0x66D9, 0x7F72, 0x8700, 0x9ECD, 0x9F20, 0x5C5E, 0x672F, 0x8FF0, 0x6811, 0x675F, 0x620D, 0x7AD6, 0x5885, 0x5EB6, 0x6570, 0x6F31}, {0x8582, 0x8583, 0x8586, 0x8588, 0x8589, 0x858A, 0x858B, 0x858C, 0x858D, 0x858E, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0x859A, 0x859D, 0x859E, 0x859F, 0x85A0, 0x85A1, 0x85A2, 0x85A3, 0x85A5, 0x85A6, 0x85A7, 0x85A9, 0x85AB, 0x85AC, 0x85AD, 0x85B1, 0x85B2, 0x85B3, 0x85B4, 0x85B5, 0x85B6, 0x85B8, 0x85BA, 0x85BB, 0x85BC, 0x85BD, 0x85BE, 0x85BF, 0x85C0, 0x85C2, 0x85C3, 0x85C4, 0x85C5, 0x85C6, 0x85C7, 0x85C8, 0x85CA, 0x85CB, 0x85CC, 0x85CD, 0x85CE, 0x85D1, 0x85D2, 0x003F, 0x85D4, 0x85D6, 0x85D7, 0x85D8, 0x85D9, 0x85DA, 0x85DB, 0x85DD, 0x85DE, 0x85DF, 0x85E0, 0x85E1, 0x85E2, 0x85E3, 0x85E5, 0x85E6, 0x85E7, 0x85E8, 0x85EA, 0x85EB, 0x85EC, 0x85ED, 0x85EE, 0x85EF, 0x85F0, 0x85F1, 0x85F2, 0x85F3, 0x85F4, 0x85F5, 0x85F6, 0x85F7, 0x85F8, 0x6055, 0x5237, 0x800D, 0x6454, 0x8870, 0x7529, 0x5E05, 0x6813, 0x62F4, 0x971C, 0x53CC, 0x723D, 0x8C01, 0x6C34, 0x7761, 0x7A0E, 0x542E, 0x77AC, 0x987A, 0x821C, 0x8BF4, 0x7855, 0x6714, 0x70C1, 0x65AF, 0x6495, 0x5636, 0x601D, 0x79C1, 0x53F8, 0x4E1D, 0x6B7B, 0x8086, 0x5BFA, 0x55E3, 0x56DB, 0x4F3A, 0x4F3C, 0x9972, 0x5DF3, 0x677E, 0x8038, 0x6002, 0x9882, 0x9001, 0x5B8B, 0x8BBC, 0x8BF5, 0x641C, 0x8258, 0x64DE, 0x55FD, 0x82CF, 0x9165, 0x4FD7, 0x7D20, 0x901F, 0x7C9F, 0x50F3, 0x5851, 0x6EAF, 0x5BBF, 0x8BC9, 0x8083, 0x9178, 0x849C, 0x7B97, 0x867D, 0x968B, 0x968F, 0x7EE5, 0x9AD3, 0x788E, 0x5C81, 0x7A57, 0x9042, 0x96A7, 0x795F, 0x5B59, 0x635F, 0x7B0B, 0x84D1, 0x68AD, 0x5506, 0x7F29, 0x7410, 0x7D22, 0x9501, 0x6240, 0x584C, 0x4ED6, 0x5B83, 0x5979, 0x5854}, {0x85F9, 0x85FA, 0x85FC, 0x85FD, 0x85FE, 0x8600, 0x8601, 0x8602, 0x8603, 0x8604, 0x8606, 0x8607, 0x8608, 0x8609, 0x860A, 0x860B, 0x860C, 0x860D, 0x860E, 0x860F, 0x8610, 0x8612, 0x8613, 0x8614, 0x8615, 0x8617, 0x8618, 0x8619, 0x861A, 0x861B, 0x861C, 0x861D, 0x861E, 0x861F, 0x8620, 0x8621, 0x8622, 0x8623, 0x8624, 0x8625, 0x8626, 0x8628, 0x862A, 0x862B, 0x862C, 0x862D, 0x862E, 0x862F, 0x8630, 0x8631, 0x8632, 0x8633, 0x8634, 0x8635, 0x8636, 0x8637, 0x8639, 0x863A, 0x863B, 0x863D, 0x863E, 0x863F, 0x8640, 0x003F, 0x8641, 0x8642, 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, 0x864A, 0x864B, 0x864C, 0x8652, 0x8653, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, 0x865B, 0x865C, 0x865D, 0x865F, 0x8660, 0x8661, 0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866A, 0x736D, 0x631E, 0x8E4B, 0x8E0F, 0x80CE, 0x82D4, 0x62AC, 0x53F0, 0x6CF0, 0x915E, 0x592A, 0x6001, 0x6C70, 0x574D, 0x644A, 0x8D2A, 0x762B, 0x6EE9, 0x575B, 0x6A80, 0x75F0, 0x6F6D, 0x8C2D, 0x8C08, 0x5766, 0x6BEF, 0x8892, 0x78B3, 0x63A2, 0x53F9, 0x70AD, 0x6C64, 0x5858, 0x642A, 0x5802, 0x68E0, 0x819B, 0x5510, 0x7CD6, 0x5018, 0x8EBA, 0x6DCC, 0x8D9F, 0x70EB, 0x638F, 0x6D9B, 0x6ED4, 0x7EE6, 0x8404, 0x6843, 0x9003, 0x6DD8, 0x9676, 0x8BA8, 0x5957, 0x7279, 0x85E4, 0x817E, 0x75BC, 0x8A8A, 0x68AF, 0x5254, 0x8E22, 0x9511, 0x63D0, 0x9898, 0x8E44, 0x557C, 0x4F53, 0x66FF, 0x568F, 0x60D5, 0x6D95, 0x5243, 0x5C49, 0x5929, 0x6DFB, 0x586B, 0x7530, 0x751C, 0x606C, 0x8214, 0x8146, 0x6311, 0x6761, 0x8FE2, 0x773A, 0x8DF3, 0x8D34, 0x94C1, 0x5E16, 0x5385, 0x542C, 0x70C3}, {0x866D, 0x866F, 0x8670, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688, 0x8689, 0x868E, 0x868F, 0x8690, 0x8691, 0x8692, 0x8694, 0x8696, 0x8697, 0x8698, 0x8699, 0x869A, 0x869B, 0x869E, 0x869F, 0x86A0, 0x86A1, 0x86A2, 0x86A5, 0x86A6, 0x86AB, 0x86AD, 0x86AE, 0x86B2, 0x86B3, 0x86B7, 0x86B8, 0x86B9, 0x86BB, 0x86BC, 0x86BD, 0x86BE, 0x86BF, 0x86C1, 0x86C2, 0x86C3, 0x86C5, 0x86C8, 0x86CC, 0x86CD, 0x86D2, 0x86D3, 0x86D5, 0x86D6, 0x86D7, 0x86DA, 0x86DC, 0x003F, 0x86DD, 0x86E0, 0x86E1, 0x86E2, 0x86E3, 0x86E5, 0x86E6, 0x86E7, 0x86E8, 0x86EA, 0x86EB, 0x86EC, 0x86EF, 0x86F5, 0x86F6, 0x86F7, 0x86FA, 0x86FB, 0x86FC, 0x86FD, 0x86FF, 0x8701, 0x8704, 0x8705, 0x8706, 0x870B, 0x870C, 0x870E, 0x870F, 0x8710, 0x8711, 0x8714, 0x8716, 0x6C40, 0x5EF7, 0x505C, 0x4EAD, 0x5EAD, 0x633A, 0x8247, 0x901A, 0x6850, 0x916E, 0x77B3, 0x540C, 0x94DC, 0x5F64, 0x7AE5, 0x6876, 0x6345, 0x7B52, 0x7EDF, 0x75DB, 0x5077, 0x6295, 0x5934, 0x900F, 0x51F8, 0x79C3, 0x7A81, 0x56FE, 0x5F92, 0x9014, 0x6D82, 0x5C60, 0x571F, 0x5410, 0x5154, 0x6E4D, 0x56E2, 0x63A8, 0x9893, 0x817F, 0x8715, 0x892A, 0x9000, 0x541E, 0x5C6F, 0x81C0, 0x62D6, 0x6258, 0x8131, 0x9E35, 0x9640, 0x9A6E, 0x9A7C, 0x692D, 0x59A5, 0x62D3, 0x553E, 0x6316, 0x54C7, 0x86D9, 0x6D3C, 0x5A03, 0x74E6, 0x889C, 0x6B6A, 0x5916, 0x8C4C, 0x5F2F, 0x6E7E, 0x73A9, 0x987D, 0x4E38, 0x70F7, 0x5B8C, 0x7897, 0x633D, 0x665A, 0x7696, 0x60CB, 0x5B9B, 0x5A49, 0x4E07, 0x8155, 0x6C6A, 0x738B, 0x4EA1, 0x6789, 0x7F51, 0x5F80, 0x65FA, 0x671B, 0x5FD8, 0x5984, 0x5A01}, {0x8719, 0x871B, 0x871D, 0x871F, 0x8720, 0x8724, 0x8726, 0x8727, 0x8728, 0x872A, 0x872B, 0x872C, 0x872D, 0x872F, 0x8730, 0x8732, 0x8733, 0x8735, 0x8736, 0x8738, 0x8739, 0x873A, 0x873C, 0x873D, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x874A, 0x874B, 0x874D, 0x874F, 0x8750, 0x8751, 0x8752, 0x8754, 0x8755, 0x8756, 0x8758, 0x875A, 0x875B, 0x875C, 0x875D, 0x875E, 0x875F, 0x8761, 0x8762, 0x8766, 0x8767, 0x8768, 0x8769, 0x876A, 0x876B, 0x876C, 0x876D, 0x876F, 0x8771, 0x8772, 0x8773, 0x8775, 0x003F, 0x8777, 0x8778, 0x8779, 0x877A, 0x877F, 0x8780, 0x8781, 0x8784, 0x8786, 0x8787, 0x8789, 0x878A, 0x878C, 0x878E, 0x878F, 0x8790, 0x8791, 0x8792, 0x8794, 0x8795, 0x8796, 0x8798, 0x8799, 0x879A, 0x879B, 0x879C, 0x879D, 0x879E, 0x87A0, 0x87A1, 0x87A2, 0x87A3, 0x87A4, 0x5DCD, 0x5FAE, 0x5371, 0x97E6, 0x8FDD, 0x6845, 0x56F4, 0x552F, 0x60DF, 0x4E3A, 0x6F4D, 0x7EF4, 0x82C7, 0x840E, 0x59D4, 0x4F1F, 0x4F2A, 0x5C3E, 0x7EAC, 0x672A, 0x851A, 0x5473, 0x754F, 0x80C3, 0x5582, 0x9B4F, 0x4F4D, 0x6E2D, 0x8C13, 0x5C09, 0x6170, 0x536B, 0x761F, 0x6E29, 0x868A, 0x6587, 0x95FB, 0x7EB9, 0x543B, 0x7A33, 0x7D0A, 0x95EE, 0x55E1, 0x7FC1, 0x74EE, 0x631D, 0x8717, 0x6DA1, 0x7A9D, 0x6211, 0x65A1, 0x5367, 0x63E1, 0x6C83, 0x5DEB, 0x545C, 0x94A8, 0x4E4C, 0x6C61, 0x8BEC, 0x5C4B, 0x65E0, 0x829C, 0x68A7, 0x543E, 0x5434, 0x6BCB, 0x6B66, 0x4E94, 0x6342, 0x5348, 0x821E, 0x4F0D, 0x4FAE, 0x575E, 0x620A, 0x96FE, 0x6664, 0x7269, 0x52FF, 0x52A1, 0x609F, 0x8BEF, 0x6614, 0x7199, 0x6790, 0x897F, 0x7852, 0x77FD, 0x6670, 0x563B, 0x5438, 0x9521, 0x727A}, {0x87A5, 0x87A6, 0x87A7, 0x87A9, 0x87AA, 0x87AE, 0x87B0, 0x87B1, 0x87B2, 0x87B4, 0x87B6, 0x87B7, 0x87B8, 0x87B9, 0x87BB, 0x87BC, 0x87BE, 0x87BF, 0x87C1, 0x87C2, 0x87C3, 0x87C4, 0x87C5, 0x87C7, 0x87C8, 0x87C9, 0x87CC, 0x87CD, 0x87CE, 0x87CF, 0x87D0, 0x87D4, 0x87D5, 0x87D6, 0x87D7, 0x87D8, 0x87D9, 0x87DA, 0x87DC, 0x87DD, 0x87DE, 0x87DF, 0x87E1, 0x87E2, 0x87E3, 0x87E4, 0x87E6, 0x87E7, 0x87E8, 0x87E9, 0x87EB, 0x87EC, 0x87ED, 0x87EF, 0x87F0, 0x87F1, 0x87F2, 0x87F3, 0x87F4, 0x87F5, 0x87F6, 0x87F7, 0x87F8, 0x003F, 0x87FA, 0x87FB, 0x87FC, 0x87FD, 0x87FF, 0x8800, 0x8801, 0x8802, 0x8804, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 0x880B, 0x880C, 0x880D, 0x880E, 0x880F, 0x8810, 0x8811, 0x8812, 0x8814, 0x8817, 0x8818, 0x8819, 0x881A, 0x881C, 0x881D, 0x881E, 0x881F, 0x8820, 0x8823, 0x7A00, 0x606F, 0x5E0C, 0x6089, 0x819D, 0x5915, 0x60DC, 0x7184, 0x70EF, 0x6EAA, 0x6C50, 0x7280, 0x6A84, 0x88AD, 0x5E2D, 0x4E60, 0x5AB3, 0x559C, 0x94E3, 0x6D17, 0x7CFB, 0x9699, 0x620F, 0x7EC6, 0x778E, 0x867E, 0x5323, 0x971E, 0x8F96, 0x6687, 0x5CE1, 0x4FA0, 0x72ED, 0x4E0B, 0x53A6, 0x590F, 0x5413, 0x6380, 0x9528, 0x5148, 0x4ED9, 0x9C9C, 0x7EA4, 0x54B8, 0x8D24, 0x8854, 0x8237, 0x95F2, 0x6D8E, 0x5F26, 0x5ACC, 0x663E, 0x9669, 0x73B0, 0x732E, 0x53BF, 0x817A, 0x9985, 0x7FA1, 0x5BAA, 0x9677, 0x9650, 0x7EBF, 0x76F8, 0x53A2, 0x9576, 0x9999, 0x7BB1, 0x8944, 0x6E58, 0x4E61, 0x7FD4, 0x7965, 0x8BE6, 0x60F3, 0x54CD, 0x4EAB, 0x9879, 0x5DF7, 0x6A61, 0x50CF, 0x5411, 0x8C61, 0x8427, 0x785D, 0x9704, 0x524A, 0x54EE, 0x56A3, 0x9500, 0x6D88, 0x5BB5, 0x6DC6, 0x6653}, {0x8824, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 0x882A, 0x882B, 0x882C, 0x882D, 0x882E, 0x882F, 0x8830, 0x8831, 0x8833, 0x8834, 0x8835, 0x8836, 0x8837, 0x8838, 0x883A, 0x883B, 0x883D, 0x883E, 0x883F, 0x8841, 0x8842, 0x8843, 0x8846, 0x8847, 0x8848, 0x8849, 0x884A, 0x884B, 0x884E, 0x884F, 0x8850, 0x8851, 0x8852, 0x8853, 0x8855, 0x8856, 0x8858, 0x885A, 0x885B, 0x885C, 0x885D, 0x885E, 0x885F, 0x8860, 0x8866, 0x8867, 0x886A, 0x886D, 0x886F, 0x8871, 0x8873, 0x8874, 0x8875, 0x8876, 0x8878, 0x8879, 0x887A, 0x003F, 0x887B, 0x887C, 0x8880, 0x8883, 0x8886, 0x8887, 0x8889, 0x888A, 0x888C, 0x888E, 0x888F, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, 0x8897, 0x8898, 0x8899, 0x889A, 0x889B, 0x889D, 0x889E, 0x889F, 0x88A0, 0x88A1, 0x88A3, 0x88A5, 0x88A6, 0x88A7, 0x88A8, 0x88A9, 0x88AA, 0x5C0F, 0x5B5D, 0x6821, 0x8096, 0x5578, 0x7B11, 0x6548, 0x6954, 0x4E9B, 0x6B47, 0x874E, 0x978B, 0x534F, 0x631F, 0x643A, 0x90AA, 0x659C, 0x80C1, 0x8C10, 0x5199, 0x68B0, 0x5378, 0x87F9, 0x61C8, 0x6CC4, 0x6CFB, 0x8C22, 0x5C51, 0x85AA, 0x82AF, 0x950C, 0x6B23, 0x8F9B, 0x65B0, 0x5FFB, 0x5FC3, 0x4FE1, 0x8845, 0x661F, 0x8165, 0x7329, 0x60FA, 0x5174, 0x5211, 0x578B, 0x5F62, 0x90A2, 0x884C, 0x9192, 0x5E78, 0x674F, 0x6027, 0x59D3, 0x5144, 0x51F6, 0x80F8, 0x5308, 0x6C79, 0x96C4, 0x718A, 0x4F11, 0x4FEE, 0x7F9E, 0x673D, 0x55C5, 0x9508, 0x79C0, 0x8896, 0x7EE3, 0x589F, 0x620C, 0x9700, 0x865A, 0x5618, 0x987B, 0x5F90, 0x8BB8, 0x84C4, 0x9157, 0x53D9, 0x65ED, 0x5E8F, 0x755C, 0x6064, 0x7D6E, 0x5A7F, 0x7EEA, 0x7EED, 0x8F69, 0x55A7, 0x5BA3, 0x60AC, 0x65CB, 0x7384}, {0x88AC, 0x88AE, 0x88AF, 0x88B0, 0x88B2, 0x88B3, 0x88B4, 0x88B5, 0x88B6, 0x88B8, 0x88B9, 0x88BA, 0x88BB, 0x88BD, 0x88BE, 0x88BF, 0x88C0, 0x88C3, 0x88C4, 0x88C7, 0x88C8, 0x88CA, 0x88CB, 0x88CC, 0x88CD, 0x88CF, 0x88D0, 0x88D1, 0x88D3, 0x88D6, 0x88D7, 0x88DA, 0x88DB, 0x88DC, 0x88DD, 0x88DE, 0x88E0, 0x88E1, 0x88E6, 0x88E7, 0x88E9, 0x88EA, 0x88EB, 0x88EC, 0x88ED, 0x88EE, 0x88EF, 0x88F2, 0x88F5, 0x88F6, 0x88F7, 0x88FA, 0x88FB, 0x88FD, 0x88FF, 0x8900, 0x8901, 0x8903, 0x8904, 0x8905, 0x8906, 0x8907, 0x8908, 0x003F, 0x8909, 0x890B, 0x890C, 0x890D, 0x890E, 0x890F, 0x8911, 0x8914, 0x8915, 0x8916, 0x8917, 0x8918, 0x891C, 0x891D, 0x891E, 0x891F, 0x8920, 0x8922, 0x8923, 0x8924, 0x8926, 0x8927, 0x8928, 0x8929, 0x892C, 0x892D, 0x892E, 0x892F, 0x8931, 0x8932, 0x8933, 0x8935, 0x8937, 0x9009, 0x7663, 0x7729, 0x7EDA, 0x9774, 0x859B, 0x5B66, 0x7A74, 0x96EA, 0x8840, 0x52CB, 0x718F, 0x5FAA, 0x65EC, 0x8BE2, 0x5BFB, 0x9A6F, 0x5DE1, 0x6B89, 0x6C5B, 0x8BAD, 0x8BAF, 0x900A, 0x8FC5, 0x538B, 0x62BC, 0x9E26, 0x9E2D, 0x5440, 0x4E2B, 0x82BD, 0x7259, 0x869C, 0x5D16, 0x8859, 0x6DAF, 0x96C5, 0x54D1, 0x4E9A, 0x8BB6, 0x7109, 0x54BD, 0x9609, 0x70DF, 0x6DF9, 0x76D0, 0x4E25, 0x7814, 0x8712, 0x5CA9, 0x5EF6, 0x8A00, 0x989C, 0x960E, 0x708E, 0x6CBF, 0x5944, 0x63A9, 0x773C, 0x884D, 0x6F14, 0x8273, 0x5830, 0x71D5, 0x538C, 0x781A, 0x96C1, 0x5501, 0x5F66, 0x7130, 0x5BB4, 0x8C1A, 0x9A8C, 0x6B83, 0x592E, 0x9E2F, 0x79E7, 0x6768, 0x626C, 0x4F6F, 0x75A1, 0x7F8A, 0x6D0B, 0x9633, 0x6C27, 0x4EF0, 0x75D2, 0x517B, 0x6837, 0x6F3E, 0x9080, 0x8170, 0x5996, 0x7476}, {0x8938, 0x8939, 0x893A, 0x893B, 0x893C, 0x893D, 0x893E, 0x893F, 0x8940, 0x8942, 0x8943, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, 0x894A, 0x894B, 0x894C, 0x894D, 0x894E, 0x894F, 0x8950, 0x8951, 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, 0x895A, 0x895B, 0x895C, 0x895D, 0x8960, 0x8961, 0x8962, 0x8963, 0x8964, 0x8965, 0x8967, 0x8968, 0x8969, 0x896A, 0x896B, 0x896C, 0x896D, 0x896E, 0x896F, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897A, 0x897C, 0x003F, 0x897D, 0x897E, 0x8980, 0x8982, 0x8984, 0x8985, 0x8987, 0x8988, 0x8989, 0x898A, 0x898B, 0x898C, 0x898D, 0x898E, 0x898F, 0x8990, 0x8991, 0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899A, 0x899B, 0x899C, 0x899D, 0x899E, 0x899F, 0x89A0, 0x89A1, 0x6447, 0x5C27, 0x9065, 0x7A91, 0x8C23, 0x59DA, 0x54AC, 0x8200, 0x836F, 0x8981, 0x8000, 0x6930, 0x564E, 0x8036, 0x7237, 0x91CE, 0x51B6, 0x4E5F, 0x9875, 0x6396, 0x4E1A, 0x53F6, 0x66F3, 0x814B, 0x591C, 0x6DB2, 0x4E00, 0x58F9, 0x533B, 0x63D6, 0x94F1, 0x4F9D, 0x4F0A, 0x8863, 0x9890, 0x5937, 0x9057, 0x79FB, 0x4EEA, 0x80F0, 0x7591, 0x6C82, 0x5B9C, 0x59E8, 0x5F5D, 0x6905, 0x8681, 0x501A, 0x5DF2, 0x4E59, 0x77E3, 0x4EE5, 0x827A, 0x6291, 0x6613, 0x9091, 0x5C79, 0x4EBF, 0x5F79, 0x81C6, 0x9038, 0x8084, 0x75AB, 0x4EA6, 0x88D4, 0x610F, 0x6BC5, 0x5FC6, 0x4E49, 0x76CA, 0x6EA2, 0x8BE3, 0x8BAE, 0x8C0A, 0x8BD1, 0x5F02, 0x7FFC, 0x7FCC, 0x7ECE, 0x8335, 0x836B, 0x56E0, 0x6BB7, 0x97F3, 0x9634, 0x59FB, 0x541F, 0x94F6, 0x6DEB, 0x5BC5, 0x996E, 0x5C39, 0x5F15, 0x9690}, {0x89A2, 0x89A3, 0x89A4, 0x89A5, 0x89A6, 0x89A7, 0x89A8, 0x89A9, 0x89AA, 0x89AB, 0x89AC, 0x89AD, 0x89AE, 0x89AF, 0x89B0, 0x89B1, 0x89B2, 0x89B3, 0x89B4, 0x89B5, 0x89B6, 0x89B7, 0x89B8, 0x89B9, 0x89BA, 0x89BB, 0x89BC, 0x89BD, 0x89BE, 0x89BF, 0x89C0, 0x89C3, 0x89CD, 0x89D3, 0x89D4, 0x89D5, 0x89D7, 0x89D8, 0x89D9, 0x89DB, 0x89DD, 0x89DF, 0x89E0, 0x89E1, 0x89E2, 0x89E4, 0x89E7, 0x89E8, 0x89E9, 0x89EA, 0x89EC, 0x89ED, 0x89EE, 0x89F0, 0x89F1, 0x89F2, 0x89F4, 0x89F5, 0x89F6, 0x89F7, 0x89F8, 0x89F9, 0x89FA, 0x003F, 0x89FB, 0x89FC, 0x89FD, 0x89FE, 0x89FF, 0x8A01, 0x8A02, 0x8A03, 0x8A04, 0x8A05, 0x8A06, 0x8A08, 0x8A09, 0x8A0A, 0x8A0B, 0x8A0C, 0x8A0D, 0x8A0E, 0x8A0F, 0x8A10, 0x8A11, 0x8A12, 0x8A13, 0x8A14, 0x8A15, 0x8A16, 0x8A17, 0x8A18, 0x8A19, 0x8A1A, 0x8A1B, 0x8A1C, 0x8A1D, 0x5370, 0x82F1, 0x6A31, 0x5A74, 0x9E70, 0x5E94, 0x7F28, 0x83B9, 0x8424, 0x8425, 0x8367, 0x8747, 0x8FCE, 0x8D62, 0x76C8, 0x5F71, 0x9896, 0x786C, 0x6620, 0x54DF, 0x62E5, 0x4F63, 0x81C3, 0x75C8, 0x5EB8, 0x96CD, 0x8E0A, 0x86F9, 0x548F, 0x6CF3, 0x6D8C, 0x6C38, 0x607F, 0x52C7, 0x7528, 0x5E7D, 0x4F18, 0x60A0, 0x5FE7, 0x5C24, 0x7531, 0x90AE, 0x94C0, 0x72B9, 0x6CB9, 0x6E38, 0x9149, 0x6709, 0x53CB, 0x53F3, 0x4F51, 0x91C9, 0x8BF1, 0x53C8, 0x5E7C, 0x8FC2, 0x6DE4, 0x4E8E, 0x76C2, 0x6986, 0x865E, 0x611A, 0x8206, 0x4F59, 0x4FDE, 0x903E, 0x9C7C, 0x6109, 0x6E1D, 0x6E14, 0x9685, 0x4E88, 0x5A31, 0x96E8, 0x4E0E, 0x5C7F, 0x79B9, 0x5B87, 0x8BED, 0x7FBD, 0x7389, 0x57DF, 0x828B, 0x90C1, 0x5401, 0x9047, 0x55BB, 0x5CEA, 0x5FA1, 0x6108, 0x6B32, 0x72F1, 0x80B2, 0x8A89}, {0x8A1E, 0x8A1F, 0x8A20, 0x8A21, 0x8A22, 0x8A23, 0x8A24, 0x8A25, 0x8A26, 0x8A27, 0x8A28, 0x8A29, 0x8A2A, 0x8A2B, 0x8A2C, 0x8A2D, 0x8A2E, 0x8A2F, 0x8A30, 0x8A31, 0x8A32, 0x8A33, 0x8A34, 0x8A35, 0x8A36, 0x8A37, 0x8A38, 0x8A39, 0x8A3A, 0x8A3B, 0x8A3C, 0x8A3D, 0x8A3F, 0x8A40, 0x8A41, 0x8A42, 0x8A43, 0x8A44, 0x8A45, 0x8A46, 0x8A47, 0x8A49, 0x8A4A, 0x8A4B, 0x8A4C, 0x8A4D, 0x8A4E, 0x8A4F, 0x8A50, 0x8A51, 0x8A52, 0x8A53, 0x8A54, 0x8A55, 0x8A56, 0x8A57, 0x8A58, 0x8A59, 0x8A5A, 0x8A5B, 0x8A5C, 0x8A5D, 0x8A5E, 0x003F, 0x8A5F, 0x8A60, 0x8A61, 0x8A62, 0x8A63, 0x8A64, 0x8A65, 0x8A66, 0x8A67, 0x8A68, 0x8A69, 0x8A6A, 0x8A6B, 0x8A6C, 0x8A6D, 0x8A6E, 0x8A6F, 0x8A70, 0x8A71, 0x8A72, 0x8A73, 0x8A74, 0x8A75, 0x8A76, 0x8A77, 0x8A78, 0x8A7A, 0x8A7B, 0x8A7C, 0x8A7D, 0x8A7E, 0x8A7F, 0x8A80, 0x6D74, 0x5BD3, 0x88D5, 0x9884, 0x8C6B, 0x9A6D, 0x9E33, 0x6E0A, 0x51A4, 0x5143, 0x57A3, 0x8881, 0x539F, 0x63F4, 0x8F95, 0x56ED, 0x5458, 0x5706, 0x733F, 0x6E90, 0x7F18, 0x8FDC, 0x82D1, 0x613F, 0x6028, 0x9662, 0x66F0, 0x7EA6, 0x8D8A, 0x8DC3, 0x94A5, 0x5CB3, 0x7CA4, 0x6708, 0x60A6, 0x9605, 0x8018, 0x4E91, 0x90E7, 0x5300, 0x9668, 0x5141, 0x8FD0, 0x8574, 0x915D, 0x6655, 0x97F5, 0x5B55, 0x531D, 0x7838, 0x6742, 0x683D, 0x54C9, 0x707E, 0x5BB0, 0x8F7D, 0x518D, 0x5728, 0x54B1, 0x6512, 0x6682, 0x8D5E, 0x8D43, 0x810F, 0x846C, 0x906D, 0x7CDF, 0x51FF, 0x85FB, 0x67A3, 0x65E9, 0x6FA1, 0x86A4, 0x8E81, 0x566A, 0x9020, 0x7682, 0x7076, 0x71E5, 0x8D23, 0x62E9, 0x5219, 0x6CFD, 0x8D3C, 0x600E, 0x589E, 0x618E, 0x66FE, 0x8D60, 0x624E, 0x55B3, 0x6E23, 0x672D, 0x8F67}, {0x8A81, 0x8A82, 0x8A83, 0x8A84, 0x8A85, 0x8A86, 0x8A87, 0x8A88, 0x8A8B, 0x8A8C, 0x8A8D, 0x8A8E, 0x8A8F, 0x8A90, 0x8A91, 0x8A92, 0x8A94, 0x8A95, 0x8A96, 0x8A97, 0x8A98, 0x8A99, 0x8A9A, 0x8A9B, 0x8A9C, 0x8A9D, 0x8A9E, 0x8A9F, 0x8AA0, 0x8AA1, 0x8AA2, 0x8AA3, 0x8AA4, 0x8AA5, 0x8AA6, 0x8AA7, 0x8AA8, 0x8AA9, 0x8AAA, 0x8AAB, 0x8AAC, 0x8AAD, 0x8AAE, 0x8AAF, 0x8AB0, 0x8AB1, 0x8AB2, 0x8AB3, 0x8AB4, 0x8AB5, 0x8AB6, 0x8AB7, 0x8AB8, 0x8AB9, 0x8ABA, 0x8ABB, 0x8ABC, 0x8ABD, 0x8ABE, 0x8ABF, 0x8AC0, 0x8AC1, 0x8AC2, 0x003F, 0x8AC3, 0x8AC4, 0x8AC5, 0x8AC6, 0x8AC7, 0x8AC8, 0x8AC9, 0x8ACA, 0x8ACB, 0x8ACC, 0x8ACD, 0x8ACE, 0x8ACF, 0x8AD0, 0x8AD1, 0x8AD2, 0x8AD3, 0x8AD4, 0x8AD5, 0x8AD6, 0x8AD7, 0x8AD8, 0x8AD9, 0x8ADA, 0x8ADB, 0x8ADC, 0x8ADD, 0x8ADE, 0x8ADF, 0x8AE0, 0x8AE1, 0x8AE2, 0x8AE3, 0x94E1, 0x95F8, 0x7728, 0x6805, 0x69A8, 0x548B, 0x4E4D, 0x70B8, 0x8BC8, 0x6458, 0x658B, 0x5B85, 0x7A84, 0x503A, 0x5BE8, 0x77BB, 0x6BE1, 0x8A79, 0x7C98, 0x6CBE, 0x76CF, 0x65A9, 0x8F97, 0x5D2D, 0x5C55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7AD9, 0x6E5B, 0x7EFD, 0x6A1F, 0x7AE0, 0x5F70, 0x6F33, 0x5F20, 0x638C, 0x6DA8, 0x6756, 0x4E08, 0x5E10, 0x8D26, 0x4ED7, 0x80C0, 0x7634, 0x969C, 0x62DB, 0x662D, 0x627E, 0x6CBC, 0x8D75, 0x7167, 0x7F69, 0x5146, 0x8087, 0x53EC, 0x906E, 0x6298, 0x54F2, 0x86F0, 0x8F99, 0x8005, 0x9517, 0x8517, 0x8FD9, 0x6D59, 0x73CD, 0x659F, 0x771F, 0x7504, 0x7827, 0x81FB, 0x8D1E, 0x9488, 0x4FA6, 0x6795, 0x75B9, 0x8BCA, 0x9707, 0x632F, 0x9547, 0x9635, 0x84B8, 0x6323, 0x7741, 0x5F81, 0x72F0, 0x4E89, 0x6014, 0x6574, 0x62EF, 0x6B63, 0x653F}, {0x8AE4, 0x8AE5, 0x8AE6, 0x8AE7, 0x8AE8, 0x8AE9, 0x8AEA, 0x8AEB, 0x8AEC, 0x8AED, 0x8AEE, 0x8AEF, 0x8AF0, 0x8AF1, 0x8AF2, 0x8AF3, 0x8AF4, 0x8AF5, 0x8AF6, 0x8AF7, 0x8AF8, 0x8AF9, 0x8AFA, 0x8AFB, 0x8AFC, 0x8AFD, 0x8AFE, 0x8AFF, 0x8B00, 0x8B01, 0x8B02, 0x8B03, 0x8B04, 0x8B05, 0x8B06, 0x8B08, 0x8B09, 0x8B0A, 0x8B0B, 0x8B0C, 0x8B0D, 0x8B0E, 0x8B0F, 0x8B10, 0x8B11, 0x8B12, 0x8B13, 0x8B14, 0x8B15, 0x8B16, 0x8B17, 0x8B18, 0x8B19, 0x8B1A, 0x8B1B, 0x8B1C, 0x8B1D, 0x8B1E, 0x8B1F, 0x8B20, 0x8B21, 0x8B22, 0x8B23, 0x003F, 0x8B24, 0x8B25, 0x8B27, 0x8B28, 0x8B29, 0x8B2A, 0x8B2B, 0x8B2C, 0x8B2D, 0x8B2E, 0x8B2F, 0x8B30, 0x8B31, 0x8B32, 0x8B33, 0x8B34, 0x8B35, 0x8B36, 0x8B37, 0x8B38, 0x8B39, 0x8B3A, 0x8B3B, 0x8B3C, 0x8B3D, 0x8B3E, 0x8B3F, 0x8B40, 0x8B41, 0x8B42, 0x8B43, 0x8B44, 0x8B45, 0x5E27, 0x75C7, 0x90D1, 0x8BC1, 0x829D, 0x679D, 0x652F, 0x5431, 0x8718, 0x77E5, 0x80A2, 0x8102, 0x6C41, 0x4E4B, 0x7EC7, 0x804C, 0x76F4, 0x690D, 0x6B96, 0x6267, 0x503C, 0x4F84, 0x5740, 0x6307, 0x6B62, 0x8DBE, 0x53EA, 0x65E8, 0x7EB8, 0x5FD7, 0x631A, 0x63B7, 0x81F3, 0x81F4, 0x7F6E, 0x5E1C, 0x5CD9, 0x5236, 0x667A, 0x79E9, 0x7A1A, 0x8D28, 0x7099, 0x75D4, 0x6EDE, 0x6CBB, 0x7A92, 0x4E2D, 0x76C5, 0x5FE0, 0x949F, 0x8877, 0x7EC8, 0x79CD, 0x80BF, 0x91CD, 0x4EF2, 0x4F17, 0x821F, 0x5468, 0x5DDE, 0x6D32, 0x8BCC, 0x7CA5, 0x8F74, 0x8098, 0x5E1A, 0x5492, 0x76B1, 0x5B99, 0x663C, 0x9AA4, 0x73E0, 0x682A, 0x86DB, 0x6731, 0x732A, 0x8BF8, 0x8BDB, 0x9010, 0x7AF9, 0x70DB, 0x716E, 0x62C4, 0x77A9, 0x5631, 0x4E3B, 0x8457, 0x67F1, 0x52A9, 0x86C0, 0x8D2E, 0x94F8, 0x7B51}, {0x8B46, 0x8B47, 0x8B48, 0x8B49, 0x8B4A, 0x8B4B, 0x8B4C, 0x8B4D, 0x8B4E, 0x8B4F, 0x8B50, 0x8B51, 0x8B52, 0x8B53, 0x8B54, 0x8B55, 0x8B56, 0x8B57, 0x8B58, 0x8B59, 0x8B5A, 0x8B5B, 0x8B5C, 0x8B5D, 0x8B5E, 0x8B5F, 0x8B60, 0x8B61, 0x8B62, 0x8B63, 0x8B64, 0x8B65, 0x8B67, 0x8B68, 0x8B69, 0x8B6A, 0x8B6B, 0x8B6D, 0x8B6E, 0x8B6F, 0x8B70, 0x8B71, 0x8B72, 0x8B73, 0x8B74, 0x8B75, 0x8B76, 0x8B77, 0x8B78, 0x8B79, 0x8B7A, 0x8B7B, 0x8B7C, 0x8B7D, 0x8B7E, 0x8B7F, 0x8B80, 0x8B81, 0x8B82, 0x8B83, 0x8B84, 0x8B85, 0x8B86, 0x003F, 0x8B87, 0x8B88, 0x8B89, 0x8B8A, 0x8B8B, 0x8B8C, 0x8B8D, 0x8B8E, 0x8B8F, 0x8B90, 0x8B91, 0x8B92, 0x8B93, 0x8B94, 0x8B95, 0x8B96, 0x8B97, 0x8B98, 0x8B99, 0x8B9A, 0x8B9B, 0x8B9C, 0x8B9D, 0x8B9E, 0x8B9F, 0x8BAC, 0x8BB1, 0x8BBB, 0x8BC7, 0x8BD0, 0x8BEA, 0x8C09, 0x8C1E, 0x4F4F, 0x6CE8, 0x795D, 0x9A7B, 0x6293, 0x722A, 0x62FD, 0x4E13, 0x7816, 0x8F6C, 0x64B0, 0x8D5A, 0x7BC6, 0x6869, 0x5E84, 0x88C5, 0x5986, 0x649E, 0x58EE, 0x72B6, 0x690E, 0x9525, 0x8FFD, 0x8D58, 0x5760, 0x7F00, 0x8C06, 0x51C6, 0x6349, 0x62D9, 0x5353, 0x684C, 0x7422, 0x8301, 0x914C, 0x5544, 0x7740, 0x707C, 0x6D4A, 0x5179, 0x54A8, 0x8D44, 0x59FF, 0x6ECB, 0x6DC4, 0x5B5C, 0x7D2B, 0x4ED4, 0x7C7D, 0x6ED3, 0x5B50, 0x81EA, 0x6E0D, 0x5B57, 0x9B03, 0x68D5, 0x8E2A, 0x5B97, 0x7EFC, 0x603B, 0x7EB5, 0x90B9, 0x8D70, 0x594F, 0x63CD, 0x79DF, 0x8DB3, 0x5352, 0x65CF, 0x7956, 0x8BC5, 0x963B, 0x7EC4, 0x94BB, 0x7E82, 0x5634, 0x9189, 0x6700, 0x7F6A, 0x5C0A, 0x9075, 0x6628, 0x5DE6, 0x4F50, 0x67DE, 0x505A, 0x4F5C, 0x5750, 0x5EA7, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x8C38, 0x8C39, 0x8C3A, 0x8C3B, 0x8C3C, 0x8C3D, 0x8C3E, 0x8C3F, 0x8C40, 0x8C42, 0x8C43, 0x8C44, 0x8C45, 0x8C48, 0x8C4A, 0x8C4B, 0x8C4D, 0x8C4E, 0x8C4F, 0x8C50, 0x8C51, 0x8C52, 0x8C53, 0x8C54, 0x8C56, 0x8C57, 0x8C58, 0x8C59, 0x8C5B, 0x8C5C, 0x8C5D, 0x8C5E, 0x8C5F, 0x8C60, 0x8C63, 0x8C64, 0x8C65, 0x8C66, 0x8C67, 0x8C68, 0x8C69, 0x8C6C, 0x8C6D, 0x8C6E, 0x8C6F, 0x8C70, 0x8C71, 0x8C72, 0x8C74, 0x8C75, 0x8C76, 0x8C77, 0x8C7B, 0x8C7C, 0x8C7D, 0x8C7E, 0x8C7F, 0x8C80, 0x8C81, 0x8C83, 0x8C84, 0x8C86, 0x8C87, 0x003F, 0x8C88, 0x8C8B, 0x8C8D, 0x8C8E, 0x8C8F, 0x8C90, 0x8C91, 0x8C92, 0x8C93, 0x8C95, 0x8C96, 0x8C97, 0x8C99, 0x8C9A, 0x8C9B, 0x8C9C, 0x8C9D, 0x8C9E, 0x8C9F, 0x8CA0, 0x8CA1, 0x8CA2, 0x8CA3, 0x8CA4, 0x8CA5, 0x8CA6, 0x8CA7, 0x8CA8, 0x8CA9, 0x8CAA, 0x8CAB, 0x8CAC, 0x8CAD, 0x4E8D, 0x4E0C, 0x5140, 0x4E10, 0x5EFF, 0x5345, 0x4E15, 0x4E98, 0x4E1E, 0x9B32, 0x5B6C, 0x5669, 0x4E28, 0x79BA, 0x4E3F, 0x5315, 0x4E47, 0x592D, 0x723B, 0x536E, 0x6C10, 0x56DF, 0x80E4, 0x9997, 0x6BD3, 0x777E, 0x9F17, 0x4E36, 0x4E9F, 0x9F10, 0x4E5C, 0x4E69, 0x4E93, 0x8288, 0x5B5B, 0x556C, 0x560F, 0x4EC4, 0x538D, 0x539D, 0x53A3, 0x53A5, 0x53AE, 0x9765, 0x8D5D, 0x531A, 0x53F5, 0x5326, 0x532E, 0x533E, 0x8D5C, 0x5366, 0x5363, 0x5202, 0x5208, 0x520E, 0x522D, 0x5233, 0x523F, 0x5240, 0x524C, 0x525E, 0x5261, 0x525C, 0x84AF, 0x527D, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, 0x7F54, 0x4EBB, 0x4EC3, 0x4EC9, 0x4EC2, 0x4EE8, 0x4EE1, 0x4EEB, 0x4EDE, 0x4F1B, 0x4EF3, 0x4F22, 0x4F64, 0x4EF5, 0x4F25, 0x4F27, 0x4F09, 0x4F2B, 0x4F5E, 0x4F67, 0x6538, 0x4F5A, 0x4F5D}, {0x8CAE, 0x8CAF, 0x8CB0, 0x8CB1, 0x8CB2, 0x8CB3, 0x8CB4, 0x8CB5, 0x8CB6, 0x8CB7, 0x8CB8, 0x8CB9, 0x8CBA, 0x8CBB, 0x8CBC, 0x8CBD, 0x8CBE, 0x8CBF, 0x8CC0, 0x8CC1, 0x8CC2, 0x8CC3, 0x8CC4, 0x8CC5, 0x8CC6, 0x8CC7, 0x8CC8, 0x8CC9, 0x8CCA, 0x8CCB, 0x8CCC, 0x8CCD, 0x8CCE, 0x8CCF, 0x8CD0, 0x8CD1, 0x8CD2, 0x8CD3, 0x8CD4, 0x8CD5, 0x8CD6, 0x8CD7, 0x8CD8, 0x8CD9, 0x8CDA, 0x8CDB, 0x8CDC, 0x8CDD, 0x8CDE, 0x8CDF, 0x8CE0, 0x8CE1, 0x8CE2, 0x8CE3, 0x8CE4, 0x8CE5, 0x8CE6, 0x8CE7, 0x8CE8, 0x8CE9, 0x8CEA, 0x8CEB, 0x8CEC, 0x003F, 0x8CED, 0x8CEE, 0x8CEF, 0x8CF0, 0x8CF1, 0x8CF2, 0x8CF3, 0x8CF4, 0x8CF5, 0x8CF6, 0x8CF7, 0x8CF8, 0x8CF9, 0x8CFA, 0x8CFB, 0x8CFC, 0x8CFD, 0x8CFE, 0x8CFF, 0x8D00, 0x8D01, 0x8D02, 0x8D03, 0x8D04, 0x8D05, 0x8D06, 0x8D07, 0x8D08, 0x8D09, 0x8D0A, 0x8D0B, 0x8D0C, 0x8D0D, 0x4F5F, 0x4F57, 0x4F32, 0x4F3D, 0x4F76, 0x4F74, 0x4F91, 0x4F89, 0x4F83, 0x4F8F, 0x4F7E, 0x4F7B, 0x4FAA, 0x4F7C, 0x4FAC, 0x4F94, 0x4FE6, 0x4FE8, 0x4FEA, 0x4FC5, 0x4FDA, 0x4FE3, 0x4FDC, 0x4FD1, 0x4FDF, 0x4FF8, 0x5029, 0x504C, 0x4FF3, 0x502C, 0x500F, 0x502E, 0x502D, 0x4FFE, 0x501C, 0x500C, 0x5025, 0x5028, 0x507E, 0x5043, 0x5055, 0x5048, 0x504E, 0x506C, 0x507B, 0x50A5, 0x50A7, 0x50A9, 0x50BA, 0x50D6, 0x5106, 0x50ED, 0x50EC, 0x50E6, 0x50EE, 0x5107, 0x510B, 0x4EDD, 0x6C3D, 0x4F58, 0x4F65, 0x4FCE, 0x9FA0, 0x6C46, 0x7C74, 0x516E, 0x5DFD, 0x9EC9, 0x9998, 0x5181, 0x5914, 0x52F9, 0x530D, 0x8A07, 0x5310, 0x51EB, 0x5919, 0x5155, 0x4EA0, 0x5156, 0x4EB3, 0x886E, 0x88A4, 0x4EB5, 0x8114, 0x88D2, 0x7980, 0x5B34, 0x8803, 0x7FB8, 0x51AB, 0x51B1, 0x51BD, 0x51BC}, {0x8D0E, 0x8D0F, 0x8D10, 0x8D11, 0x8D12, 0x8D13, 0x8D14, 0x8D15, 0x8D16, 0x8D17, 0x8D18, 0x8D19, 0x8D1A, 0x8D1B, 0x8D1C, 0x8D20, 0x8D51, 0x8D52, 0x8D57, 0x8D5F, 0x8D65, 0x8D68, 0x8D69, 0x8D6A, 0x8D6C, 0x8D6E, 0x8D6F, 0x8D71, 0x8D72, 0x8D78, 0x8D79, 0x8D7A, 0x8D7B, 0x8D7C, 0x8D7D, 0x8D7E, 0x8D7F, 0x8D80, 0x8D82, 0x8D83, 0x8D86, 0x8D87, 0x8D88, 0x8D89, 0x8D8C, 0x8D8D, 0x8D8E, 0x8D8F, 0x8D90, 0x8D92, 0x8D93, 0x8D95, 0x8D96, 0x8D97, 0x8D98, 0x8D99, 0x8D9A, 0x8D9B, 0x8D9C, 0x8D9D, 0x8D9E, 0x8DA0, 0x8DA1, 0x003F, 0x8DA2, 0x8DA4, 0x8DA5, 0x8DA6, 0x8DA7, 0x8DA8, 0x8DA9, 0x8DAA, 0x8DAB, 0x8DAC, 0x8DAD, 0x8DAE, 0x8DAF, 0x8DB0, 0x8DB2, 0x8DB6, 0x8DB7, 0x8DB9, 0x8DBB, 0x8DBD, 0x8DC0, 0x8DC1, 0x8DC2, 0x8DC5, 0x8DC7, 0x8DC8, 0x8DC9, 0x8DCA, 0x8DCD, 0x8DD0, 0x8DD2, 0x8DD3, 0x8DD4, 0x51C7, 0x5196, 0x51A2, 0x51A5, 0x8BA0, 0x8BA6, 0x8BA7, 0x8BAA, 0x8BB4, 0x8BB5, 0x8BB7, 0x8BC2, 0x8BC3, 0x8BCB, 0x8BCF, 0x8BCE, 0x8BD2, 0x8BD3, 0x8BD4, 0x8BD6, 0x8BD8, 0x8BD9, 0x8BDC, 0x8BDF, 0x8BE0, 0x8BE4, 0x8BE8, 0x8BE9, 0x8BEE, 0x8BF0, 0x8BF3, 0x8BF6, 0x8BF9, 0x8BFC, 0x8BFF, 0x8C00, 0x8C02, 0x8C04, 0x8C07, 0x8C0C, 0x8C0F, 0x8C11, 0x8C12, 0x8C14, 0x8C15, 0x8C16, 0x8C19, 0x8C1B, 0x8C18, 0x8C1D, 0x8C1F, 0x8C20, 0x8C21, 0x8C25, 0x8C27, 0x8C2A, 0x8C2B, 0x8C2E, 0x8C2F, 0x8C32, 0x8C33, 0x8C35, 0x8C36, 0x5369, 0x537A, 0x961D, 0x9622, 0x9621, 0x9631, 0x962A, 0x963D, 0x963C, 0x9642, 0x9649, 0x9654, 0x965F, 0x9667, 0x966C, 0x9672, 0x9674, 0x9688, 0x968D, 0x9697, 0x96B0, 0x9097, 0x909B, 0x909D, 0x9099, 0x90AC, 0x90A1, 0x90B4, 0x90B3, 0x90B6, 0x90BA}, {0x8DD5, 0x8DD8, 0x8DD9, 0x8DDC, 0x8DE0, 0x8DE1, 0x8DE2, 0x8DE5, 0x8DE6, 0x8DE7, 0x8DE9, 0x8DED, 0x8DEE, 0x8DF0, 0x8DF1, 0x8DF2, 0x8DF4, 0x8DF6, 0x8DFC, 0x8DFE, 0x8DFF, 0x8E00, 0x8E01, 0x8E02, 0x8E03, 0x8E04, 0x8E06, 0x8E07, 0x8E08, 0x8E0B, 0x8E0D, 0x8E0E, 0x8E10, 0x8E11, 0x8E12, 0x8E13, 0x8E15, 0x8E16, 0x8E17, 0x8E18, 0x8E19, 0x8E1A, 0x8E1B, 0x8E1C, 0x8E20, 0x8E21, 0x8E24, 0x8E25, 0x8E26, 0x8E27, 0x8E28, 0x8E2B, 0x8E2D, 0x8E30, 0x8E32, 0x8E33, 0x8E34, 0x8E36, 0x8E37, 0x8E38, 0x8E3B, 0x8E3C, 0x8E3E, 0x003F, 0x8E3F, 0x8E43, 0x8E45, 0x8E46, 0x8E4C, 0x8E4D, 0x8E4E, 0x8E4F, 0x8E50, 0x8E53, 0x8E54, 0x8E55, 0x8E56, 0x8E57, 0x8E58, 0x8E5A, 0x8E5B, 0x8E5C, 0x8E5D, 0x8E5E, 0x8E5F, 0x8E60, 0x8E61, 0x8E62, 0x8E63, 0x8E64, 0x8E65, 0x8E67, 0x8E68, 0x8E6A, 0x8E6B, 0x8E6E, 0x8E71, 0x90B8, 0x90B0, 0x90CF, 0x90C5, 0x90BE, 0x90D0, 0x90C4, 0x90C7, 0x90D3, 0x90E6, 0x90E2, 0x90DC, 0x90D7, 0x90DB, 0x90EB, 0x90EF, 0x90FE, 0x9104, 0x9122, 0x911E, 0x9123, 0x9131, 0x912F, 0x9139, 0x9143, 0x9146, 0x520D, 0x5942, 0x52A2, 0x52AC, 0x52AD, 0x52BE, 0x54FF, 0x52D0, 0x52D6, 0x52F0, 0x53DF, 0x71EE, 0x77CD, 0x5EF4, 0x51F5, 0x51FC, 0x9B2F, 0x53B6, 0x5F01, 0x755A, 0x5DEF, 0x574C, 0x57A9, 0x57A1, 0x587E, 0x58BC, 0x58C5, 0x58D1, 0x5729, 0x572C, 0x572A, 0x5733, 0x5739, 0x572E, 0x572F, 0x575C, 0x573B, 0x5742, 0x5769, 0x5785, 0x576B, 0x5786, 0x577C, 0x577B, 0x5768, 0x576D, 0x5776, 0x5773, 0x57AD, 0x57A4, 0x578C, 0x57B2, 0x57CF, 0x57A7, 0x57B4, 0x5793, 0x57A0, 0x57D5, 0x57D8, 0x57DA, 0x57D9, 0x57D2, 0x57B8, 0x57F4, 0x57EF, 0x57F8, 0x57E4, 0x57DD}, {0x8E73, 0x8E75, 0x8E77, 0x8E78, 0x8E79, 0x8E7A, 0x8E7B, 0x8E7D, 0x8E7E, 0x8E80, 0x8E82, 0x8E83, 0x8E84, 0x8E86, 0x8E88, 0x8E89, 0x8E8A, 0x8E8B, 0x8E8C, 0x8E8D, 0x8E8E, 0x8E91, 0x8E92, 0x8E93, 0x8E95, 0x8E96, 0x8E97, 0x8E98, 0x8E99, 0x8E9A, 0x8E9B, 0x8E9D, 0x8E9F, 0x8EA0, 0x8EA1, 0x8EA2, 0x8EA3, 0x8EA4, 0x8EA5, 0x8EA6, 0x8EA7, 0x8EA8, 0x8EA9, 0x8EAA, 0x8EAD, 0x8EAE, 0x8EB0, 0x8EB1, 0x8EB3, 0x8EB4, 0x8EB5, 0x8EB6, 0x8EB7, 0x8EB8, 0x8EB9, 0x8EBB, 0x8EBC, 0x8EBD, 0x8EBE, 0x8EBF, 0x8EC0, 0x8EC1, 0x8EC2, 0x003F, 0x8EC3, 0x8EC4, 0x8EC5, 0x8EC6, 0x8EC7, 0x8EC8, 0x8EC9, 0x8ECA, 0x8ECB, 0x8ECC, 0x8ECD, 0x8ECF, 0x8ED0, 0x8ED1, 0x8ED2, 0x8ED3, 0x8ED4, 0x8ED5, 0x8ED6, 0x8ED7, 0x8ED8, 0x8ED9, 0x8EDA, 0x8EDB, 0x8EDC, 0x8EDD, 0x8EDE, 0x8EDF, 0x8EE0, 0x8EE1, 0x8EE2, 0x8EE3, 0x8EE4, 0x580B, 0x580D, 0x57FD, 0x57ED, 0x5800, 0x581E, 0x5819, 0x5844, 0x5820, 0x5865, 0x586C, 0x5881, 0x5889, 0x589A, 0x5880, 0x99A8, 0x9F19, 0x61FF, 0x8279, 0x827D, 0x827F, 0x828F, 0x828A, 0x82A8, 0x8284, 0x828E, 0x8291, 0x8297, 0x8299, 0x82AB, 0x82B8, 0x82BE, 0x82B0, 0x82C8, 0x82CA, 0x82E3, 0x8298, 0x82B7, 0x82AE, 0x82CB, 0x82CC, 0x82C1, 0x82A9, 0x82B4, 0x82A1, 0x82AA, 0x829F, 0x82C4, 0x82CE, 0x82A4, 0x82E1, 0x8309, 0x82F7, 0x82E4, 0x830F, 0x8307, 0x82DC, 0x82F4, 0x82D2, 0x82D8, 0x830C, 0x82FB, 0x82D3, 0x8311, 0x831A, 0x8306, 0x8314, 0x8315, 0x82E0, 0x82D5, 0x831C, 0x8351, 0x835B, 0x835C, 0x8308, 0x8392, 0x833C, 0x8334, 0x8331, 0x839B, 0x835E, 0x832F, 0x834F, 0x8347, 0x8343, 0x835F, 0x8340, 0x8317, 0x8360, 0x832D, 0x833A, 0x8333, 0x8366, 0x8365}, {0x8EE5, 0x8EE6, 0x8EE7, 0x8EE8, 0x8EE9, 0x8EEA, 0x8EEB, 0x8EEC, 0x8EED, 0x8EEE, 0x8EEF, 0x8EF0, 0x8EF1, 0x8EF2, 0x8EF3, 0x8EF4, 0x8EF5, 0x8EF6, 0x8EF7, 0x8EF8, 0x8EF9, 0x8EFA, 0x8EFB, 0x8EFC, 0x8EFD, 0x8EFE, 0x8EFF, 0x8F00, 0x8F01, 0x8F02, 0x8F03, 0x8F04, 0x8F05, 0x8F06, 0x8F07, 0x8F08, 0x8F09, 0x8F0A, 0x8F0B, 0x8F0C, 0x8F0D, 0x8F0E, 0x8F0F, 0x8F10, 0x8F11, 0x8F12, 0x8F13, 0x8F14, 0x8F15, 0x8F16, 0x8F17, 0x8F18, 0x8F19, 0x8F1A, 0x8F1B, 0x8F1C, 0x8F1D, 0x8F1E, 0x8F1F, 0x8F20, 0x8F21, 0x8F22, 0x8F23, 0x003F, 0x8F24, 0x8F25, 0x8F26, 0x8F27, 0x8F28, 0x8F29, 0x8F2A, 0x8F2B, 0x8F2C, 0x8F2D, 0x8F2E, 0x8F2F, 0x8F30, 0x8F31, 0x8F32, 0x8F33, 0x8F34, 0x8F35, 0x8F36, 0x8F37, 0x8F38, 0x8F39, 0x8F3A, 0x8F3B, 0x8F3C, 0x8F3D, 0x8F3E, 0x8F3F, 0x8F40, 0x8F41, 0x8F42, 0x8F43, 0x8F44, 0x8368, 0x831B, 0x8369, 0x836C, 0x836A, 0x836D, 0x836E, 0x83B0, 0x8378, 0x83B3, 0x83B4, 0x83A0, 0x83AA, 0x8393, 0x839C, 0x8385, 0x837C, 0x83B6, 0x83A9, 0x837D, 0x83B8, 0x837B, 0x8398, 0x839E, 0x83A8, 0x83BA, 0x83BC, 0x83C1, 0x8401, 0x83E5, 0x83D8, 0x5807, 0x8418, 0x840B, 0x83DD, 0x83FD, 0x83D6, 0x841C, 0x8438, 0x8411, 0x8406, 0x83D4, 0x83DF, 0x840F, 0x8403, 0x83F8, 0x83F9, 0x83EA, 0x83C5, 0x83C0, 0x8426, 0x83F0, 0x83E1, 0x845C, 0x8451, 0x845A, 0x8459, 0x8473, 0x8487, 0x8488, 0x847A, 0x8489, 0x8478, 0x843C, 0x8446, 0x8469, 0x8476, 0x848C, 0x848E, 0x8431, 0x846D, 0x84C1, 0x84CD, 0x84D0, 0x84E6, 0x84BD, 0x84D3, 0x84CA, 0x84BF, 0x84BA, 0x84E0, 0x84A1, 0x84B9, 0x84B4, 0x8497, 0x84E5, 0x84E3, 0x850C, 0x750D, 0x8538, 0x84F0, 0x8539, 0x851F, 0x853A}, {0x8F45, 0x8F46, 0x8F47, 0x8F48, 0x8F49, 0x8F4A, 0x8F4B, 0x8F4C, 0x8F4D, 0x8F4E, 0x8F4F, 0x8F50, 0x8F51, 0x8F52, 0x8F53, 0x8F54, 0x8F55, 0x8F56, 0x8F57, 0x8F58, 0x8F59, 0x8F5A, 0x8F5B, 0x8F5C, 0x8F5D, 0x8F5E, 0x8F5F, 0x8F60, 0x8F61, 0x8F62, 0x8F63, 0x8F64, 0x8F65, 0x8F6A, 0x8F80, 0x8F8C, 0x8F92, 0x8F9D, 0x8FA0, 0x8FA1, 0x8FA2, 0x8FA4, 0x8FA5, 0x8FA6, 0x8FA7, 0x8FAA, 0x8FAC, 0x8FAD, 0x8FAE, 0x8FAF, 0x8FB2, 0x8FB3, 0x8FB4, 0x8FB5, 0x8FB7, 0x8FB8, 0x8FBA, 0x8FBB, 0x8FBC, 0x8FBF, 0x8FC0, 0x8FC3, 0x8FC6, 0x003F, 0x8FC9, 0x8FCA, 0x8FCB, 0x8FCC, 0x8FCD, 0x8FCF, 0x8FD2, 0x8FD6, 0x8FD7, 0x8FDA, 0x8FE0, 0x8FE1, 0x8FE3, 0x8FE7, 0x8FEC, 0x8FEF, 0x8FF1, 0x8FF2, 0x8FF4, 0x8FF5, 0x8FF6, 0x8FFA, 0x8FFB, 0x8FFC, 0x8FFE, 0x8FFF, 0x9007, 0x9008, 0x900C, 0x900E, 0x9013, 0x9015, 0x9018, 0x8556, 0x853B, 0x84FF, 0x84FC, 0x8559, 0x8548, 0x8568, 0x8564, 0x855E, 0x857A, 0x77A2, 0x8543, 0x8572, 0x857B, 0x85A4, 0x85A8, 0x8587, 0x858F, 0x8579, 0x85AE, 0x859C, 0x8585, 0x85B9, 0x85B7, 0x85B0, 0x85D3, 0x85C1, 0x85DC, 0x85FF, 0x8627, 0x8605, 0x8629, 0x8616, 0x863C, 0x5EFE, 0x5F08, 0x593C, 0x5941, 0x8037, 0x5955, 0x595A, 0x5958, 0x530F, 0x5C22, 0x5C25, 0x5C2C, 0x5C34, 0x624C, 0x626A, 0x629F, 0x62BB, 0x62CA, 0x62DA, 0x62D7, 0x62EE, 0x6322, 0x62F6, 0x6339, 0x634B, 0x6343, 0x63AD, 0x63F6, 0x6371, 0x637A, 0x638E, 0x63B4, 0x636D, 0x63AC, 0x638A, 0x6369, 0x63AE, 0x63BC, 0x63F2, 0x63F8, 0x63E0, 0x63FF, 0x63C4, 0x63DE, 0x63CE, 0x6452, 0x63C6, 0x63BE, 0x6445, 0x6441, 0x640B, 0x641B, 0x6420, 0x640C, 0x6426, 0x6421, 0x645E, 0x6484, 0x646D, 0x6496}, {0x9019, 0x901C, 0x9023, 0x9024, 0x9025, 0x9027, 0x9028, 0x9029, 0x902A, 0x902B, 0x902C, 0x9030, 0x9031, 0x9032, 0x9033, 0x9034, 0x9037, 0x9039, 0x903A, 0x903D, 0x903F, 0x9040, 0x9043, 0x9045, 0x9046, 0x9048, 0x9049, 0x904A, 0x904B, 0x904C, 0x904E, 0x9054, 0x9055, 0x9056, 0x9059, 0x905A, 0x905C, 0x905D, 0x905E, 0x905F, 0x9060, 0x9061, 0x9064, 0x9066, 0x9067, 0x9069, 0x906A, 0x906B, 0x906C, 0x906F, 0x9070, 0x9071, 0x9072, 0x9073, 0x9076, 0x9077, 0x9078, 0x9079, 0x907A, 0x907B, 0x907C, 0x907E, 0x9081, 0x003F, 0x9084, 0x9085, 0x9086, 0x9087, 0x9089, 0x908A, 0x908C, 0x908D, 0x908E, 0x908F, 0x9090, 0x9092, 0x9094, 0x9096, 0x9098, 0x909A, 0x909C, 0x909E, 0x909F, 0x90A0, 0x90A4, 0x90A5, 0x90A7, 0x90A8, 0x90A9, 0x90AB, 0x90AD, 0x90B2, 0x90B7, 0x90BC, 0x90BD, 0x90BF, 0x90C0, 0x647A, 0x64B7, 0x64B8, 0x6499, 0x64BA, 0x64C0, 0x64D0, 0x64D7, 0x64E4, 0x64E2, 0x6509, 0x6525, 0x652E, 0x5F0B, 0x5FD2, 0x7519, 0x5F11, 0x535F, 0x53F1, 0x53FD, 0x53E9, 0x53E8, 0x53FB, 0x5412, 0x5416, 0x5406, 0x544B, 0x5452, 0x5453, 0x5454, 0x5456, 0x5443, 0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, 0x5477, 0x5471, 0x5464, 0x549A, 0x549B, 0x5484, 0x5476, 0x5466, 0x549D, 0x54D0, 0x54AD, 0x54C2, 0x54B4, 0x54D2, 0x54A7, 0x54A6, 0x54D3, 0x54D4, 0x5472, 0x54A3, 0x54D5, 0x54BB, 0x54BF, 0x54CC, 0x54D9, 0x54DA, 0x54DC, 0x54A9, 0x54AA, 0x54A4, 0x54DD, 0x54CF, 0x54DE, 0x551B, 0x54E7, 0x5520, 0x54FD, 0x5514, 0x54F3, 0x5522, 0x5523, 0x550F, 0x5511, 0x5527, 0x552A, 0x5567, 0x558F, 0x55B5, 0x5549, 0x556D, 0x5541, 0x5555, 0x553F, 0x5550, 0x553C}, {0x90C2, 0x90C3, 0x90C6, 0x90C8, 0x90C9, 0x90CB, 0x90CC, 0x90CD, 0x90D2, 0x90D4, 0x90D5, 0x90D6, 0x90D8, 0x90D9, 0x90DA, 0x90DE, 0x90DF, 0x90E0, 0x90E3, 0x90E4, 0x90E5, 0x90E9, 0x90EA, 0x90EC, 0x90EE, 0x90F0, 0x90F1, 0x90F2, 0x90F3, 0x90F5, 0x90F6, 0x90F7, 0x90F9, 0x90FA, 0x90FB, 0x90FC, 0x90FF, 0x9100, 0x9101, 0x9103, 0x9105, 0x9106, 0x9107, 0x9108, 0x9109, 0x910A, 0x910B, 0x910C, 0x910D, 0x910E, 0x910F, 0x9110, 0x9111, 0x9112, 0x9113, 0x9114, 0x9115, 0x9116, 0x9117, 0x9118, 0x911A, 0x911B, 0x911C, 0x003F, 0x911D, 0x911F, 0x9120, 0x9121, 0x9124, 0x9125, 0x9126, 0x9127, 0x9128, 0x9129, 0x912A, 0x912B, 0x912C, 0x912D, 0x912E, 0x9130, 0x9132, 0x9133, 0x9134, 0x9135, 0x9136, 0x9137, 0x9138, 0x913A, 0x913B, 0x913C, 0x913D, 0x913E, 0x913F, 0x9140, 0x9141, 0x9142, 0x9144, 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, 0x555C, 0x558B, 0x55D2, 0x5583, 0x55B1, 0x55B9, 0x5588, 0x5581, 0x559F, 0x557E, 0x55D6, 0x5591, 0x557B, 0x55DF, 0x55BD, 0x55BE, 0x5594, 0x5599, 0x55EA, 0x55F7, 0x55C9, 0x561F, 0x55D1, 0x55EB, 0x55EC, 0x55D4, 0x55E6, 0x55DD, 0x55C4, 0x55EF, 0x55E5, 0x55F2, 0x55F3, 0x55CC, 0x55CD, 0x55E8, 0x55F5, 0x55E4, 0x8F94, 0x561E, 0x5608, 0x560C, 0x5601, 0x5624, 0x5623, 0x55FE, 0x5600, 0x5627, 0x562D, 0x5658, 0x5639, 0x5657, 0x562C, 0x564D, 0x5662, 0x5659, 0x565C, 0x564C, 0x5654, 0x5686, 0x5664, 0x5671, 0x566B, 0x567B, 0x567C, 0x5685, 0x5693, 0x56AF, 0x56D4, 0x56D7, 0x56DD, 0x56E1, 0x56F5, 0x56EB, 0x56F9, 0x56FF, 0x5704, 0x570A, 0x5709, 0x571C, 0x5E0F, 0x5E19, 0x5E14, 0x5E11, 0x5E31, 0x5E3B, 0x5E3C}, {0x9145, 0x9147, 0x9148, 0x9151, 0x9153, 0x9154, 0x9155, 0x9156, 0x9158, 0x9159, 0x915B, 0x915C, 0x915F, 0x9160, 0x9166, 0x9167, 0x9168, 0x916B, 0x916D, 0x9173, 0x917A, 0x917B, 0x917C, 0x9180, 0x9181, 0x9182, 0x9183, 0x9184, 0x9186, 0x9188, 0x918A, 0x918E, 0x918F, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919C, 0x919D, 0x919E, 0x919F, 0x91A0, 0x91A1, 0x91A4, 0x91A5, 0x91A6, 0x91A7, 0x91A8, 0x91A9, 0x91AB, 0x91AC, 0x91B0, 0x91B1, 0x91B2, 0x91B3, 0x91B6, 0x91B7, 0x91B8, 0x91B9, 0x91BB, 0x003F, 0x91BC, 0x91BD, 0x91BE, 0x91BF, 0x91C0, 0x91C1, 0x91C2, 0x91C3, 0x91C4, 0x91C5, 0x91C6, 0x91C8, 0x91CB, 0x91D0, 0x91D2, 0x91D3, 0x91D4, 0x91D5, 0x91D6, 0x91D7, 0x91D8, 0x91D9, 0x91DA, 0x91DB, 0x91DD, 0x91DE, 0x91DF, 0x91E0, 0x91E1, 0x91E2, 0x91E3, 0x91E4, 0x91E5, 0x5E37, 0x5E44, 0x5E54, 0x5E5B, 0x5E5E, 0x5E61, 0x5C8C, 0x5C7A, 0x5C8D, 0x5C90, 0x5C96, 0x5C88, 0x5C98, 0x5C99, 0x5C91, 0x5C9A, 0x5C9C, 0x5CB5, 0x5CA2, 0x5CBD, 0x5CAC, 0x5CAB, 0x5CB1, 0x5CA3, 0x5CC1, 0x5CB7, 0x5CC4, 0x5CD2, 0x5CE4, 0x5CCB, 0x5CE5, 0x5D02, 0x5D03, 0x5D27, 0x5D26, 0x5D2E, 0x5D24, 0x5D1E, 0x5D06, 0x5D1B, 0x5D58, 0x5D3E, 0x5D34, 0x5D3D, 0x5D6C, 0x5D5B, 0x5D6F, 0x5D5D, 0x5D6B, 0x5D4B, 0x5D4A, 0x5D69, 0x5D74, 0x5D82, 0x5D99, 0x5D9D, 0x8C73, 0x5DB7, 0x5DC5, 0x5F73, 0x5F77, 0x5F82, 0x5F87, 0x5F89, 0x5F8C, 0x5F95, 0x5F99, 0x5F9C, 0x5FA8, 0x5FAD, 0x5FB5, 0x5FBC, 0x8862, 0x5F61, 0x72AD, 0x72B0, 0x72B4, 0x72B7, 0x72B8, 0x72C3, 0x72C1, 0x72CE, 0x72CD, 0x72D2, 0x72E8, 0x72EF, 0x72E9, 0x72F2, 0x72F4, 0x72F7, 0x7301, 0x72F3, 0x7303, 0x72FA}, {0x91E6, 0x91E7, 0x91E8, 0x91E9, 0x91EA, 0x91EB, 0x91EC, 0x91ED, 0x91EE, 0x91EF, 0x91F0, 0x91F1, 0x91F2, 0x91F3, 0x91F4, 0x91F5, 0x91F6, 0x91F7, 0x91F8, 0x91F9, 0x91FA, 0x91FB, 0x91FC, 0x91FD, 0x91FE, 0x91FF, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205, 0x9206, 0x9207, 0x9208, 0x9209, 0x920A, 0x920B, 0x920C, 0x920D, 0x920E, 0x920F, 0x9210, 0x9211, 0x9212, 0x9213, 0x9214, 0x9215, 0x9216, 0x9217, 0x9218, 0x9219, 0x921A, 0x921B, 0x921C, 0x921D, 0x921E, 0x921F, 0x9220, 0x9221, 0x9222, 0x9223, 0x9224, 0x003F, 0x9225, 0x9226, 0x9227, 0x9228, 0x9229, 0x922A, 0x922B, 0x922C, 0x922D, 0x922E, 0x922F, 0x9230, 0x9231, 0x9232, 0x9233, 0x9234, 0x9235, 0x9236, 0x9237, 0x9238, 0x9239, 0x923A, 0x923B, 0x923C, 0x923D, 0x923E, 0x923F, 0x9240, 0x9241, 0x9242, 0x9243, 0x9244, 0x9245, 0x72FB, 0x7317, 0x7313, 0x7321, 0x730A, 0x731E, 0x731D, 0x7315, 0x7322, 0x7339, 0x7325, 0x732C, 0x7338, 0x7331, 0x7350, 0x734D, 0x7357, 0x7360, 0x736C, 0x736F, 0x737E, 0x821B, 0x5925, 0x98E7, 0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996A, 0x996B, 0x996C, 0x9974, 0x9977, 0x997D, 0x9980, 0x9984, 0x9987, 0x998A, 0x998D, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5E80, 0x5E91, 0x5E8B, 0x5E96, 0x5EA5, 0x5EA0, 0x5EB9, 0x5EB5, 0x5EBE, 0x5EB3, 0x8D53, 0x5ED2, 0x5ED1, 0x5EDB, 0x5EE8, 0x5EEA, 0x81BA, 0x5FC4, 0x5FC9, 0x5FD6, 0x5FCF, 0x6003, 0x5FEE, 0x6004, 0x5FE1, 0x5FE4, 0x5FFE, 0x6005, 0x6006, 0x5FEA, 0x5FED, 0x5FF8, 0x6019, 0x6035, 0x6026, 0x601B, 0x600F, 0x600D, 0x6029, 0x602B, 0x600A, 0x603F, 0x6021, 0x6078, 0x6079, 0x607B, 0x607A, 0x6042}, {0x9246, 0x9247, 0x9248, 0x9249, 0x924A, 0x924B, 0x924C, 0x924D, 0x924E, 0x924F, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255, 0x9256, 0x9257, 0x9258, 0x9259, 0x925A, 0x925B, 0x925C, 0x925D, 0x925E, 0x925F, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926A, 0x926B, 0x926C, 0x926D, 0x926E, 0x926F, 0x9270, 0x9271, 0x9272, 0x9273, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279, 0x927A, 0x927B, 0x927C, 0x927D, 0x927E, 0x927F, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x003F, 0x9286, 0x9287, 0x9288, 0x9289, 0x928A, 0x928B, 0x928C, 0x928D, 0x928F, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, 0x9297, 0x9298, 0x9299, 0x929A, 0x929B, 0x929C, 0x929D, 0x929E, 0x929F, 0x92A0, 0x92A1, 0x92A2, 0x92A3, 0x92A4, 0x92A5, 0x92A6, 0x92A7, 0x606A, 0x607D, 0x6096, 0x609A, 0x60AD, 0x609D, 0x6083, 0x6092, 0x608C, 0x609B, 0x60EC, 0x60BB, 0x60B1, 0x60DD, 0x60D8, 0x60C6, 0x60DA, 0x60B4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60F4, 0x6100, 0x610E, 0x612B, 0x614A, 0x6175, 0x61AC, 0x6194, 0x61A7, 0x61B7, 0x61D4, 0x61F5, 0x5FDD, 0x96B3, 0x95E9, 0x95EB, 0x95F1, 0x95F3, 0x95F5, 0x95F6, 0x95FC, 0x95FE, 0x9603, 0x9604, 0x9606, 0x9608, 0x960A, 0x960B, 0x960C, 0x960D, 0x960F, 0x9612, 0x9615, 0x9616, 0x9617, 0x9619, 0x961A, 0x4E2C, 0x723F, 0x6215, 0x6C35, 0x6C54, 0x6C5C, 0x6C4A, 0x6CA3, 0x6C85, 0x6C90, 0x6C94, 0x6C8C, 0x6C68, 0x6C69, 0x6C74, 0x6C76, 0x6C86, 0x6CA9, 0x6CD0, 0x6CD4, 0x6CAD, 0x6CF7, 0x6CF8, 0x6CF1, 0x6CD7, 0x6CB2, 0x6CE0, 0x6CD6, 0x6CFA, 0x6CEB, 0x6CEE, 0x6CB1, 0x6CD3, 0x6CEF, 0x6CFE}, {0x92A8, 0x92A9, 0x92AA, 0x92AB, 0x92AC, 0x92AD, 0x92AF, 0x92B0, 0x92B1, 0x92B2, 0x92B3, 0x92B4, 0x92B5, 0x92B6, 0x92B7, 0x92B8, 0x92B9, 0x92BA, 0x92BB, 0x92BC, 0x92BD, 0x92BE, 0x92BF, 0x92C0, 0x92C1, 0x92C2, 0x92C3, 0x92C4, 0x92C5, 0x92C6, 0x92C7, 0x92C9, 0x92CA, 0x92CB, 0x92CC, 0x92CD, 0x92CE, 0x92CF, 0x92D0, 0x92D1, 0x92D2, 0x92D3, 0x92D4, 0x92D5, 0x92D6, 0x92D7, 0x92D8, 0x92D9, 0x92DA, 0x92DB, 0x92DC, 0x92DD, 0x92DE, 0x92DF, 0x92E0, 0x92E1, 0x92E2, 0x92E3, 0x92E4, 0x92E5, 0x92E6, 0x92E7, 0x92E8, 0x003F, 0x92E9, 0x92EA, 0x92EB, 0x92EC, 0x92ED, 0x92EE, 0x92EF, 0x92F0, 0x92F1, 0x92F2, 0x92F3, 0x92F4, 0x92F5, 0x92F6, 0x92F7, 0x92F8, 0x92F9, 0x92FA, 0x92FB, 0x92FC, 0x92FD, 0x92FE, 0x92FF, 0x9300, 0x9301, 0x9302, 0x9303, 0x9304, 0x9305, 0x9306, 0x9307, 0x9308, 0x9309, 0x6D39, 0x6D27, 0x6D0C, 0x6D43, 0x6D48, 0x6D07, 0x6D04, 0x6D19, 0x6D0E, 0x6D2B, 0x6D4D, 0x6D2E, 0x6D35, 0x6D1A, 0x6D4F, 0x6D52, 0x6D54, 0x6D33, 0x6D91, 0x6D6F, 0x6D9E, 0x6DA0, 0x6D5E, 0x6D93, 0x6D94, 0x6D5C, 0x6D60, 0x6D7C, 0x6D63, 0x6E1A, 0x6DC7, 0x6DC5, 0x6DDE, 0x6E0E, 0x6DBF, 0x6DE0, 0x6E11, 0x6DE6, 0x6DDD, 0x6DD9, 0x6E16, 0x6DAB, 0x6E0C, 0x6DAE, 0x6E2B, 0x6E6E, 0x6E4E, 0x6E6B, 0x6EB2, 0x6E5F, 0x6E86, 0x6E53, 0x6E54, 0x6E32, 0x6E25, 0x6E44, 0x6EDF, 0x6EB1, 0x6E98, 0x6EE0, 0x6F2D, 0x6EE2, 0x6EA5, 0x6EA7, 0x6EBD, 0x6EBB, 0x6EB7, 0x6ED7, 0x6EB4, 0x6ECF, 0x6E8F, 0x6EC2, 0x6E9F, 0x6F62, 0x6F46, 0x6F47, 0x6F24, 0x6F15, 0x6EF9, 0x6F2F, 0x6F36, 0x6F4B, 0x6F74, 0x6F2A, 0x6F09, 0x6F29, 0x6F89, 0x6F8D, 0x6F8C, 0x6F78, 0x6F72, 0x6F7C, 0x6F7A, 0x6FD1}, {0x930A, 0x930B, 0x930C, 0x930D, 0x930E, 0x930F, 0x9310, 0x9311, 0x9312, 0x9313, 0x9314, 0x9315, 0x9316, 0x9317, 0x9318, 0x9319, 0x931A, 0x931B, 0x931C, 0x931D, 0x931E, 0x931F, 0x9320, 0x9321, 0x9322, 0x9323, 0x9324, 0x9325, 0x9326, 0x9327, 0x9328, 0x9329, 0x932A, 0x932B, 0x932C, 0x932D, 0x932E, 0x932F, 0x9330, 0x9331, 0x9332, 0x9333, 0x9334, 0x9335, 0x9336, 0x9337, 0x9338, 0x9339, 0x933A, 0x933B, 0x933C, 0x933D, 0x933F, 0x9340, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x003F, 0x934A, 0x934B, 0x934C, 0x934D, 0x934E, 0x934F, 0x9350, 0x9351, 0x9352, 0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359, 0x935A, 0x935B, 0x935C, 0x935D, 0x935E, 0x935F, 0x9360, 0x9361, 0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, 0x936B, 0x6FC9, 0x6FA7, 0x6FB9, 0x6FB6, 0x6FC2, 0x6FE1, 0x6FEE, 0x6FDE, 0x6FE0, 0x6FEF, 0x701A, 0x7023, 0x701B, 0x7039, 0x7035, 0x704F, 0x705E, 0x5B80, 0x5B84, 0x5B95, 0x5B93, 0x5BA5, 0x5BB8, 0x752F, 0x9A9E, 0x6434, 0x5BE4, 0x5BEE, 0x8930, 0x5BF0, 0x8E47, 0x8B07, 0x8FB6, 0x8FD3, 0x8FD5, 0x8FE5, 0x8FEE, 0x8FE4, 0x8FE9, 0x8FE6, 0x8FF3, 0x8FE8, 0x9005, 0x9004, 0x900B, 0x9026, 0x9011, 0x900D, 0x9016, 0x9021, 0x9035, 0x9036, 0x902D, 0x902F, 0x9044, 0x9051, 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905B, 0x66B9, 0x9074, 0x907D, 0x9082, 0x9088, 0x9083, 0x908B, 0x5F50, 0x5F57, 0x5F56, 0x5F58, 0x5C3B, 0x54AB, 0x5C50, 0x5C59, 0x5B71, 0x5C63, 0x5C66, 0x7FBC, 0x5F2A, 0x5F29, 0x5F2D, 0x8274, 0x5F3C, 0x9B3B, 0x5C6E, 0x5981, 0x5983, 0x598D, 0x59A9, 0x59AA, 0x59A3}, {0x936C, 0x936D, 0x936E, 0x936F, 0x9370, 0x9371, 0x9372, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937A, 0x937B, 0x937C, 0x937D, 0x937E, 0x937F, 0x9380, 0x9381, 0x9382, 0x9383, 0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938A, 0x938B, 0x938C, 0x938D, 0x938E, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939A, 0x939B, 0x939C, 0x939D, 0x939E, 0x939F, 0x93A0, 0x93A1, 0x93A2, 0x93A3, 0x93A4, 0x93A5, 0x93A6, 0x93A7, 0x93A8, 0x93A9, 0x93AA, 0x93AB, 0x003F, 0x93AC, 0x93AD, 0x93AE, 0x93AF, 0x93B0, 0x93B1, 0x93B2, 0x93B3, 0x93B4, 0x93B5, 0x93B6, 0x93B7, 0x93B8, 0x93B9, 0x93BA, 0x93BB, 0x93BC, 0x93BD, 0x93BE, 0x93BF, 0x93C0, 0x93C1, 0x93C2, 0x93C3, 0x93C4, 0x93C5, 0x93C6, 0x93C7, 0x93C8, 0x93C9, 0x93CB, 0x93CC, 0x93CD, 0x5997, 0x59CA, 0x59AB, 0x599E, 0x59A4, 0x59D2, 0x59B2, 0x59AF, 0x59D7, 0x59BE, 0x5A05, 0x5A06, 0x59DD, 0x5A08, 0x59E3, 0x59D8, 0x59F9, 0x5A0C, 0x5A09, 0x5A32, 0x5A34, 0x5A11, 0x5A23, 0x5A13, 0x5A40, 0x5A67, 0x5A4A, 0x5A55, 0x5A3C, 0x5A62, 0x5A75, 0x80EC, 0x5AAA, 0x5A9B, 0x5A77, 0x5A7A, 0x5ABE, 0x5AEB, 0x5AB2, 0x5AD2, 0x5AD4, 0x5AB8, 0x5AE0, 0x5AE3, 0x5AF1, 0x5AD6, 0x5AE6, 0x5AD8, 0x5ADC, 0x5B09, 0x5B17, 0x5B16, 0x5B32, 0x5B37, 0x5B40, 0x5C15, 0x5C1C, 0x5B5A, 0x5B65, 0x5B73, 0x5B51, 0x5B53, 0x5B62, 0x9A75, 0x9A77, 0x9A78, 0x9A7A, 0x9A7F, 0x9A7D, 0x9A80, 0x9A81, 0x9A85, 0x9A88, 0x9A8A, 0x9A90, 0x9A92, 0x9A93, 0x9A96, 0x9A98, 0x9A9B, 0x9A9C, 0x9A9D, 0x9A9F, 0x9AA0, 0x9AA2, 0x9AA3, 0x9AA5, 0x9AA7, 0x7E9F, 0x7EA1, 0x7EA3, 0x7EA5, 0x7EA8, 0x7EA9}, {0x93CE, 0x93CF, 0x93D0, 0x93D1, 0x93D2, 0x93D3, 0x93D4, 0x93D5, 0x93D7, 0x93D8, 0x93D9, 0x93DA, 0x93DB, 0x93DC, 0x93DD, 0x93DE, 0x93DF, 0x93E0, 0x93E1, 0x93E2, 0x93E3, 0x93E4, 0x93E5, 0x93E6, 0x93E7, 0x93E8, 0x93E9, 0x93EA, 0x93EB, 0x93EC, 0x93ED, 0x93EE, 0x93EF, 0x93F0, 0x93F1, 0x93F2, 0x93F3, 0x93F4, 0x93F5, 0x93F6, 0x93F7, 0x93F8, 0x93F9, 0x93FA, 0x93FB, 0x93FC, 0x93FD, 0x93FE, 0x93FF, 0x9400, 0x9401, 0x9402, 0x9403, 0x9404, 0x9405, 0x9406, 0x9407, 0x9408, 0x9409, 0x940A, 0x940B, 0x940C, 0x940D, 0x003F, 0x940E, 0x940F, 0x9410, 0x9411, 0x9412, 0x9413, 0x9414, 0x9415, 0x9416, 0x9417, 0x9418, 0x9419, 0x941A, 0x941B, 0x941C, 0x941D, 0x941E, 0x941F, 0x9420, 0x9421, 0x9422, 0x9423, 0x9424, 0x9425, 0x9426, 0x9427, 0x9428, 0x9429, 0x942A, 0x942B, 0x942C, 0x942D, 0x942E, 0x7EAD, 0x7EB0, 0x7EBE, 0x7EC0, 0x7EC1, 0x7EC2, 0x7EC9, 0x7ECB, 0x7ECC, 0x7ED0, 0x7ED4, 0x7ED7, 0x7EDB, 0x7EE0, 0x7EE1, 0x7EE8, 0x7EEB, 0x7EEE, 0x7EEF, 0x7EF1, 0x7EF2, 0x7F0D, 0x7EF6, 0x7EFA, 0x7EFB, 0x7EFE, 0x7F01, 0x7F02, 0x7F03, 0x7F07, 0x7F08, 0x7F0B, 0x7F0C, 0x7F0F, 0x7F11, 0x7F12, 0x7F17, 0x7F19, 0x7F1C, 0x7F1B, 0x7F1F, 0x7F21, 0x7F22, 0x7F23, 0x7F24, 0x7F25, 0x7F26, 0x7F27, 0x7F2A, 0x7F2B, 0x7F2C, 0x7F2D, 0x7F2F, 0x7F30, 0x7F31, 0x7F32, 0x7F33, 0x7F35, 0x5E7A, 0x757F, 0x5DDB, 0x753E, 0x9095, 0x738E, 0x7391, 0x73AE, 0x73A2, 0x739F, 0x73CF, 0x73C2, 0x73D1, 0x73B7, 0x73B3, 0x73C0, 0x73C9, 0x73C8, 0x73E5, 0x73D9, 0x987C, 0x740A, 0x73E9, 0x73E7, 0x73DE, 0x73BA, 0x73F2, 0x740F, 0x742A, 0x745B, 0x7426, 0x7425, 0x7428, 0x7430, 0x742E, 0x742C}, {0x942F, 0x9430, 0x9431, 0x9432, 0x9433, 0x9434, 0x9435, 0x9436, 0x9437, 0x9438, 0x9439, 0x943A, 0x943B, 0x943C, 0x943D, 0x943F, 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, 0x9448, 0x9449, 0x944A, 0x944B, 0x944C, 0x944D, 0x944E, 0x944F, 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458, 0x9459, 0x945A, 0x945B, 0x945C, 0x945D, 0x945E, 0x945F, 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, 0x9468, 0x9469, 0x946A, 0x946C, 0x946D, 0x946E, 0x946F, 0x003F, 0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478, 0x9479, 0x947A, 0x947B, 0x947C, 0x947D, 0x947E, 0x947F, 0x9480, 0x9481, 0x9482, 0x9483, 0x9484, 0x9491, 0x9496, 0x9498, 0x94C7, 0x94CF, 0x94D3, 0x94D4, 0x94DA, 0x94E6, 0x94FB, 0x951C, 0x9520, 0x741B, 0x741A, 0x7441, 0x745C, 0x7457, 0x7455, 0x7459, 0x7477, 0x746D, 0x747E, 0x749C, 0x748E, 0x7480, 0x7481, 0x7487, 0x748B, 0x749E, 0x74A8, 0x74A9, 0x7490, 0x74A7, 0x74D2, 0x74BA, 0x97EA, 0x97EB, 0x97EC, 0x674C, 0x6753, 0x675E, 0x6748, 0x6769, 0x67A5, 0x6787, 0x676A, 0x6773, 0x6798, 0x67A7, 0x6775, 0x67A8, 0x679E, 0x67AD, 0x678B, 0x6777, 0x677C, 0x67F0, 0x6809, 0x67D8, 0x680A, 0x67E9, 0x67B0, 0x680C, 0x67D9, 0x67B5, 0x67DA, 0x67B3, 0x67DD, 0x6800, 0x67C3, 0x67B8, 0x67E2, 0x680E, 0x67C1, 0x67FD, 0x6832, 0x6833, 0x6860, 0x6861, 0x684E, 0x6862, 0x6844, 0x6864, 0x6883, 0x681D, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683E, 0x684A, 0x6849, 0x6829, 0x68B5, 0x688F, 0x6874, 0x6877, 0x6893, 0x686B, 0x68C2, 0x696E, 0x68FC, 0x691F, 0x6920, 0x68F9}, {0x9527, 0x9533, 0x953D, 0x9543, 0x9548, 0x954B, 0x9555, 0x955A, 0x9560, 0x956E, 0x9574, 0x9575, 0x9577, 0x9578, 0x9579, 0x957A, 0x957B, 0x957C, 0x957D, 0x957E, 0x9580, 0x9581, 0x9582, 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958A, 0x958B, 0x958C, 0x958D, 0x958E, 0x958F, 0x9590, 0x9591, 0x9592, 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959A, 0x959B, 0x959C, 0x959D, 0x959E, 0x959F, 0x95A0, 0x95A1, 0x95A2, 0x95A3, 0x95A4, 0x95A5, 0x95A6, 0x95A7, 0x95A8, 0x95A9, 0x95AA, 0x003F, 0x95AB, 0x95AC, 0x95AD, 0x95AE, 0x95AF, 0x95B0, 0x95B1, 0x95B2, 0x95B3, 0x95B4, 0x95B5, 0x95B6, 0x95B7, 0x95B8, 0x95B9, 0x95BA, 0x95BB, 0x95BC, 0x95BD, 0x95BE, 0x95BF, 0x95C0, 0x95C1, 0x95C2, 0x95C3, 0x95C4, 0x95C5, 0x95C6, 0x95C7, 0x95C8, 0x95C9, 0x95CA, 0x95CB, 0x6924, 0x68F0, 0x690B, 0x6901, 0x6957, 0x68E3, 0x6910, 0x6971, 0x6939, 0x6960, 0x6942, 0x695D, 0x6984, 0x696B, 0x6980, 0x6998, 0x6978, 0x6934, 0x69CC, 0x6987, 0x6988, 0x69CE, 0x6989, 0x6966, 0x6963, 0x6979, 0x699B, 0x69A7, 0x69BB, 0x69AB, 0x69AD, 0x69D4, 0x69B1, 0x69C1, 0x69CA, 0x69DF, 0x6995, 0x69E0, 0x698D, 0x69FF, 0x6A2F, 0x69ED, 0x6A17, 0x6A18, 0x6A65, 0x69F2, 0x6A44, 0x6A3E, 0x6AA0, 0x6A50, 0x6A5B, 0x6A35, 0x6A8E, 0x6A79, 0x6A3D, 0x6A28, 0x6A58, 0x6A7C, 0x6A91, 0x6A90, 0x6AA9, 0x6A97, 0x6AAB, 0x7337, 0x7352, 0x6B81, 0x6B82, 0x6B87, 0x6B84, 0x6B92, 0x6B93, 0x6B8D, 0x6B9A, 0x6B9B, 0x6BA1, 0x6BAA, 0x8F6B, 0x8F6D, 0x8F71, 0x8F72, 0x8F73, 0x8F75, 0x8F76, 0x8F78, 0x8F77, 0x8F79, 0x8F7A, 0x8F7C, 0x8F7E, 0x8F81, 0x8F82, 0x8F84, 0x8F87, 0x8F8B}, {0x95CC, 0x95CD, 0x95CE, 0x95CF, 0x95D0, 0x95D1, 0x95D2, 0x95D3, 0x95D4, 0x95D5, 0x95D6, 0x95D7, 0x95D8, 0x95D9, 0x95DA, 0x95DB, 0x95DC, 0x95DD, 0x95DE, 0x95DF, 0x95E0, 0x95E1, 0x95E2, 0x95E3, 0x95E4, 0x95E5, 0x95E6, 0x95E7, 0x95EC, 0x95FF, 0x9607, 0x9613, 0x9618, 0x961B, 0x961E, 0x9620, 0x9623, 0x9624, 0x9625, 0x9626, 0x9627, 0x9628, 0x9629, 0x962B, 0x962C, 0x962D, 0x962F, 0x9630, 0x9637, 0x9638, 0x9639, 0x963A, 0x963E, 0x9641, 0x9643, 0x964A, 0x964E, 0x964F, 0x9651, 0x9652, 0x9653, 0x9656, 0x9657, 0x003F, 0x9658, 0x9659, 0x965A, 0x965C, 0x965D, 0x965E, 0x9660, 0x9663, 0x9665, 0x9666, 0x966B, 0x966D, 0x966E, 0x966F, 0x9670, 0x9671, 0x9673, 0x9678, 0x9679, 0x967A, 0x967B, 0x967C, 0x967D, 0x967E, 0x967F, 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, 0x9687, 0x9689, 0x968A, 0x8F8D, 0x8F8E, 0x8F8F, 0x8F98, 0x8F9A, 0x8ECE, 0x620B, 0x6217, 0x621B, 0x621F, 0x6222, 0x6221, 0x6225, 0x6224, 0x622C, 0x81E7, 0x74EF, 0x74F4, 0x74FF, 0x750F, 0x7511, 0x7513, 0x6534, 0x65EE, 0x65EF, 0x65F0, 0x660A, 0x6619, 0x6772, 0x6603, 0x6615, 0x6600, 0x7085, 0x66F7, 0x661D, 0x6634, 0x6631, 0x6636, 0x6635, 0x8006, 0x665F, 0x6654, 0x6641, 0x664F, 0x6656, 0x6661, 0x6657, 0x6677, 0x6684, 0x668C, 0x66A7, 0x669D, 0x66BE, 0x66DB, 0x66DC, 0x66E6, 0x66E9, 0x8D32, 0x8D33, 0x8D36, 0x8D3B, 0x8D3D, 0x8D40, 0x8D45, 0x8D46, 0x8D48, 0x8D49, 0x8D47, 0x8D4D, 0x8D55, 0x8D59, 0x89C7, 0x89CA, 0x89CB, 0x89CC, 0x89CE, 0x89CF, 0x89D0, 0x89D1, 0x726E, 0x729F, 0x725D, 0x7266, 0x726F, 0x727E, 0x727F, 0x7284, 0x728B, 0x728D, 0x728F, 0x7292, 0x6308, 0x6332, 0x63B0}, {0x968C, 0x968E, 0x9691, 0x9692, 0x9693, 0x9695, 0x9696, 0x969A, 0x969B, 0x969D, 0x969E, 0x969F, 0x96A0, 0x96A1, 0x96A2, 0x96A3, 0x96A4, 0x96A5, 0x96A6, 0x96A8, 0x96A9, 0x96AA, 0x96AB, 0x96AC, 0x96AD, 0x96AE, 0x96AF, 0x96B1, 0x96B2, 0x96B4, 0x96B5, 0x96B7, 0x96B8, 0x96BA, 0x96BB, 0x96BF, 0x96C2, 0x96C3, 0x96C8, 0x96CA, 0x96CB, 0x96D0, 0x96D1, 0x96D3, 0x96D4, 0x96D6, 0x96D7, 0x96D8, 0x96D9, 0x96DA, 0x96DB, 0x96DC, 0x96DD, 0x96DE, 0x96DF, 0x96E1, 0x96E2, 0x96E3, 0x96E4, 0x96E5, 0x96E6, 0x96E7, 0x96EB, 0x003F, 0x96EC, 0x96ED, 0x96EE, 0x96F0, 0x96F1, 0x96F2, 0x96F4, 0x96F5, 0x96F8, 0x96FA, 0x96FB, 0x96FC, 0x96FD, 0x96FF, 0x9702, 0x9703, 0x9705, 0x970A, 0x970B, 0x970C, 0x9710, 0x9711, 0x9712, 0x9714, 0x9715, 0x9717, 0x9718, 0x9719, 0x971A, 0x971B, 0x971D, 0x971F, 0x9720, 0x643F, 0x64D8, 0x8004, 0x6BEA, 0x6BF3, 0x6BFD, 0x6BF5, 0x6BF9, 0x6C05, 0x6C07, 0x6C06, 0x6C0D, 0x6C15, 0x6C18, 0x6C19, 0x6C1A, 0x6C21, 0x6C29, 0x6C24, 0x6C2A, 0x6C32, 0x6535, 0x6555, 0x656B, 0x724D, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809F, 0x809C, 0x8093, 0x80BC, 0x670A, 0x80BD, 0x80B1, 0x80AB, 0x80AD, 0x80B4, 0x80B7, 0x80E7, 0x80E8, 0x80E9, 0x80EA, 0x80DB, 0x80C2, 0x80C4, 0x80D9, 0x80CD, 0x80D7, 0x6710, 0x80DD, 0x80EB, 0x80F1, 0x80F4, 0x80ED, 0x810D, 0x810E, 0x80F2, 0x80FC, 0x6715, 0x8112, 0x8C5A, 0x8136, 0x811E, 0x812C, 0x8118, 0x8132, 0x8148, 0x814C, 0x8153, 0x8174, 0x8159, 0x815A, 0x8171, 0x8160, 0x8169, 0x817C, 0x817D, 0x816D, 0x8167, 0x584D, 0x5AB5, 0x8188, 0x8182, 0x8191, 0x6ED5, 0x81A3, 0x81AA, 0x81CC, 0x6726, 0x81CA, 0x81BB}, {0x9721, 0x9722, 0x9723, 0x9724, 0x9725, 0x9726, 0x9727, 0x9728, 0x9729, 0x972B, 0x972C, 0x972E, 0x972F, 0x9731, 0x9733, 0x9734, 0x9735, 0x9736, 0x9737, 0x973A, 0x973B, 0x973C, 0x973D, 0x973F, 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, 0x9748, 0x9749, 0x974A, 0x974B, 0x974C, 0x974D, 0x974E, 0x974F, 0x9750, 0x9751, 0x9754, 0x9755, 0x9757, 0x9758, 0x975A, 0x975C, 0x975D, 0x975F, 0x9763, 0x9764, 0x9766, 0x9767, 0x9768, 0x976A, 0x976B, 0x976C, 0x976D, 0x976E, 0x976F, 0x9770, 0x9771, 0x003F, 0x9772, 0x9775, 0x9777, 0x9778, 0x9779, 0x977A, 0x977B, 0x977D, 0x977E, 0x977F, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9786, 0x9787, 0x9788, 0x9789, 0x978A, 0x978C, 0x978E, 0x978F, 0x9790, 0x9793, 0x9795, 0x9796, 0x9797, 0x9799, 0x979A, 0x979B, 0x979C, 0x979D, 0x81C1, 0x81A6, 0x6B24, 0x6B37, 0x6B39, 0x6B43, 0x6B46, 0x6B59, 0x98D1, 0x98D2, 0x98D3, 0x98D5, 0x98D9, 0x98DA, 0x6BB3, 0x5F40, 0x6BC2, 0x89F3, 0x6590, 0x9F51, 0x6593, 0x65BC, 0x65C6, 0x65C4, 0x65C3, 0x65CC, 0x65CE, 0x65D2, 0x65D6, 0x7080, 0x709C, 0x7096, 0x709D, 0x70BB, 0x70C0, 0x70B7, 0x70AB, 0x70B1, 0x70E8, 0x70CA, 0x7110, 0x7113, 0x7116, 0x712F, 0x7131, 0x7173, 0x715C, 0x7168, 0x7145, 0x7172, 0x714A, 0x7178, 0x717A, 0x7198, 0x71B3, 0x71B5, 0x71A8, 0x71A0, 0x71E0, 0x71D4, 0x71E7, 0x71F9, 0x721D, 0x7228, 0x706C, 0x7118, 0x7166, 0x71B9, 0x623E, 0x623D, 0x6243, 0x6248, 0x6249, 0x793B, 0x7940, 0x7946, 0x7949, 0x795B, 0x795C, 0x7953, 0x795A, 0x7962, 0x7957, 0x7960, 0x796F, 0x7967, 0x797A, 0x7985, 0x798A, 0x799A, 0x79A7, 0x79B3, 0x5FD1, 0x5FD0}, {0x979E, 0x979F, 0x97A1, 0x97A2, 0x97A4, 0x97A5, 0x97A6, 0x97A7, 0x97A8, 0x97A9, 0x97AA, 0x97AC, 0x97AE, 0x97B0, 0x97B1, 0x97B3, 0x97B5, 0x97B6, 0x97B7, 0x97B8, 0x97B9, 0x97BA, 0x97BB, 0x97BC, 0x97BD, 0x97BE, 0x97BF, 0x97C0, 0x97C1, 0x97C2, 0x97C3, 0x97C4, 0x97C5, 0x97C6, 0x97C7, 0x97C8, 0x97C9, 0x97CA, 0x97CB, 0x97CC, 0x97CD, 0x97CE, 0x97CF, 0x97D0, 0x97D1, 0x97D2, 0x97D3, 0x97D4, 0x97D5, 0x97D6, 0x97D7, 0x97D8, 0x97D9, 0x97DA, 0x97DB, 0x97DC, 0x97DD, 0x97DE, 0x97DF, 0x97E0, 0x97E1, 0x97E2, 0x97E3, 0x003F, 0x97E4, 0x97E5, 0x97E8, 0x97EE, 0x97EF, 0x97F0, 0x97F1, 0x97F2, 0x97F4, 0x97F7, 0x97F8, 0x97F9, 0x97FA, 0x97FB, 0x97FC, 0x97FD, 0x97FE, 0x97FF, 0x9800, 0x9801, 0x9802, 0x9803, 0x9804, 0x9805, 0x9806, 0x9807, 0x9808, 0x9809, 0x980A, 0x980B, 0x980C, 0x980D, 0x980E, 0x603C, 0x605D, 0x605A, 0x6067, 0x6041, 0x6059, 0x6063, 0x60AB, 0x6106, 0x610D, 0x615D, 0x61A9, 0x619D, 0x61CB, 0x61D1, 0x6206, 0x8080, 0x807F, 0x6C93, 0x6CF6, 0x6DFC, 0x77F6, 0x77F8, 0x7800, 0x7809, 0x7817, 0x7818, 0x7811, 0x65AB, 0x782D, 0x781C, 0x781D, 0x7839, 0x783A, 0x783B, 0x781F, 0x783C, 0x7825, 0x782C, 0x7823, 0x7829, 0x784E, 0x786D, 0x7856, 0x7857, 0x7826, 0x7850, 0x7847, 0x784C, 0x786A, 0x789B, 0x7893, 0x789A, 0x7887, 0x789C, 0x78A1, 0x78A3, 0x78B2, 0x78B9, 0x78A5, 0x78D4, 0x78D9, 0x78C9, 0x78EC, 0x78F2, 0x7905, 0x78F4, 0x7913, 0x7924, 0x791E, 0x7934, 0x9F9B, 0x9EF9, 0x9EFB, 0x9EFC, 0x76F1, 0x7704, 0x770D, 0x76F9, 0x7707, 0x7708, 0x771A, 0x7722, 0x7719, 0x772D, 0x7726, 0x7735, 0x7738, 0x7750, 0x7751, 0x7747, 0x7743, 0x775A, 0x7768}, {0x980F, 0x9810, 0x9811, 0x9812, 0x9813, 0x9814, 0x9815, 0x9816, 0x9817, 0x9818, 0x9819, 0x981A, 0x981B, 0x981C, 0x981D, 0x981E, 0x981F, 0x9820, 0x9821, 0x9822, 0x9823, 0x9824, 0x9825, 0x9826, 0x9827, 0x9828, 0x9829, 0x982A, 0x982B, 0x982C, 0x982D, 0x982E, 0x982F, 0x9830, 0x9831, 0x9832, 0x9833, 0x9834, 0x9835, 0x9836, 0x9837, 0x9838, 0x9839, 0x983A, 0x983B, 0x983C, 0x983D, 0x983E, 0x983F, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847, 0x9848, 0x9849, 0x984A, 0x984B, 0x984C, 0x984D, 0x003F, 0x984E, 0x984F, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857, 0x9858, 0x9859, 0x985A, 0x985B, 0x985C, 0x985D, 0x985E, 0x985F, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868, 0x9869, 0x986A, 0x986B, 0x986C, 0x986D, 0x986E, 0x7762, 0x7765, 0x777F, 0x778D, 0x777D, 0x7780, 0x778C, 0x7791, 0x779F, 0x77A0, 0x77B0, 0x77B5, 0x77BD, 0x753A, 0x7540, 0x754E, 0x754B, 0x7548, 0x755B, 0x7572, 0x7579, 0x7583, 0x7F58, 0x7F61, 0x7F5F, 0x8A48, 0x7F68, 0x7F74, 0x7F71, 0x7F79, 0x7F81, 0x7F7E, 0x76CD, 0x76E5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948B, 0x948A, 0x948C, 0x948D, 0x948F, 0x9490, 0x9494, 0x9497, 0x9495, 0x949A, 0x949B, 0x949C, 0x94A3, 0x94A4, 0x94AB, 0x94AA, 0x94AD, 0x94AC, 0x94AF, 0x94B0, 0x94B2, 0x94B4, 0x94B6, 0x94B7, 0x94B8, 0x94B9, 0x94BA, 0x94BC, 0x94BD, 0x94BF, 0x94C4, 0x94C8, 0x94C9, 0x94CA, 0x94CB, 0x94CC, 0x94CD, 0x94CE, 0x94D0, 0x94D1, 0x94D2, 0x94D5, 0x94D6, 0x94D7, 0x94D9, 0x94D8, 0x94DB, 0x94DE, 0x94DF, 0x94E0, 0x94E2, 0x94E4, 0x94E5, 0x94E7, 0x94E8, 0x94EA}, {0x986F, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x988B, 0x988E, 0x9892, 0x9895, 0x9899, 0x98A3, 0x98A8, 0x98A9, 0x98AA, 0x98AB, 0x98AC, 0x98AD, 0x98AE, 0x98AF, 0x98B0, 0x98B1, 0x98B2, 0x98B3, 0x98B4, 0x98B5, 0x98B6, 0x98B7, 0x98B8, 0x98B9, 0x98BA, 0x98BB, 0x98BC, 0x98BD, 0x98BE, 0x98BF, 0x98C0, 0x98C1, 0x98C2, 0x98C3, 0x98C4, 0x98C5, 0x98C6, 0x98C7, 0x98C8, 0x98C9, 0x98CA, 0x98CB, 0x98CC, 0x98CD, 0x98CF, 0x98D0, 0x98D4, 0x98D6, 0x98D7, 0x98DB, 0x98DC, 0x98DD, 0x98E0, 0x98E1, 0x98E2, 0x98E3, 0x98E4, 0x003F, 0x98E5, 0x98E6, 0x98E9, 0x98EA, 0x98EB, 0x98EC, 0x98ED, 0x98EE, 0x98EF, 0x98F0, 0x98F1, 0x98F2, 0x98F3, 0x98F4, 0x98F5, 0x98F6, 0x98F7, 0x98F8, 0x98F9, 0x98FA, 0x98FB, 0x98FC, 0x98FD, 0x98FE, 0x98FF, 0x9900, 0x9901, 0x9902, 0x9903, 0x9904, 0x9905, 0x9906, 0x9907, 0x94E9, 0x94EB, 0x94EE, 0x94EF, 0x94F3, 0x94F4, 0x94F5, 0x94F7, 0x94F9, 0x94FC, 0x94FD, 0x94FF, 0x9503, 0x9502, 0x9506, 0x9507, 0x9509, 0x950A, 0x950D, 0x950E, 0x950F, 0x9512, 0x9513, 0x9514, 0x9515, 0x9516, 0x9518, 0x951B, 0x951D, 0x951E, 0x951F, 0x9522, 0x952A, 0x952B, 0x9529, 0x952C, 0x9531, 0x9532, 0x9534, 0x9536, 0x9537, 0x9538, 0x953C, 0x953E, 0x953F, 0x9542, 0x9535, 0x9544, 0x9545, 0x9546, 0x9549, 0x954C, 0x954E, 0x954F, 0x9552, 0x9553, 0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955B, 0x955E, 0x955F, 0x955D, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, 0x9569, 0x956A, 0x956B, 0x956C, 0x956F, 0x9571, 0x9572, 0x9573, 0x953A, 0x77E7, 0x77EC, 0x96C9, 0x79D5, 0x79ED, 0x79E3, 0x79EB, 0x7A06, 0x5D47, 0x7A03, 0x7A02, 0x7A1E, 0x7A14}, {0x9908, 0x9909, 0x990A, 0x990B, 0x990C, 0x990E, 0x990F, 0x9911, 0x9912, 0x9913, 0x9914, 0x9915, 0x9916, 0x9917, 0x9918, 0x9919, 0x991A, 0x991B, 0x991C, 0x991D, 0x991E, 0x991F, 0x9920, 0x9921, 0x9922, 0x9923, 0x9924, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929, 0x992A, 0x992B, 0x992C, 0x992D, 0x992F, 0x9930, 0x9931, 0x9932, 0x9933, 0x9934, 0x9935, 0x9936, 0x9937, 0x9938, 0x9939, 0x993A, 0x993B, 0x993C, 0x993D, 0x993E, 0x993F, 0x9940, 0x9941, 0x9942, 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x003F, 0x994A, 0x994B, 0x994C, 0x994D, 0x994E, 0x994F, 0x9950, 0x9951, 0x9952, 0x9953, 0x9956, 0x9957, 0x9958, 0x9959, 0x995A, 0x995B, 0x995C, 0x995D, 0x995E, 0x995F, 0x9960, 0x9961, 0x9962, 0x9964, 0x9966, 0x9973, 0x9978, 0x9979, 0x997B, 0x997E, 0x9982, 0x9983, 0x9989, 0x7A39, 0x7A37, 0x7A51, 0x9ECF, 0x99A5, 0x7A70, 0x7688, 0x768E, 0x7693, 0x7699, 0x76A4, 0x74DE, 0x74E0, 0x752C, 0x9E20, 0x9E22, 0x9E28, 0x9E29, 0x9E2A, 0x9E2B, 0x9E2C, 0x9E32, 0x9E31, 0x9E36, 0x9E38, 0x9E37, 0x9E39, 0x9E3A, 0x9E3E, 0x9E41, 0x9E42, 0x9E44, 0x9E46, 0x9E47, 0x9E48, 0x9E49, 0x9E4B, 0x9E4C, 0x9E4E, 0x9E51, 0x9E55, 0x9E57, 0x9E5A, 0x9E5B, 0x9E5C, 0x9E5E, 0x9E63, 0x9E66, 0x9E67, 0x9E68, 0x9E69, 0x9E6A, 0x9E6B, 0x9E6C, 0x9E71, 0x9E6D, 0x9E73, 0x7592, 0x7594, 0x7596, 0x75A0, 0x759D, 0x75AC, 0x75A3, 0x75B3, 0x75B4, 0x75B8, 0x75C4, 0x75B1, 0x75B0, 0x75C3, 0x75C2, 0x75D6, 0x75CD, 0x75E3, 0x75E8, 0x75E6, 0x75E4, 0x75EB, 0x75E7, 0x7603, 0x75F1, 0x75FC, 0x75FF, 0x7610, 0x7600, 0x7605, 0x760C, 0x7617, 0x760A, 0x7625, 0x7618, 0x7615, 0x7619}, {0x998C, 0x998E, 0x999A, 0x999B, 0x999C, 0x999D, 0x999E, 0x999F, 0x99A0, 0x99A1, 0x99A2, 0x99A3, 0x99A4, 0x99A6, 0x99A7, 0x99A9, 0x99AA, 0x99AB, 0x99AC, 0x99AD, 0x99AE, 0x99AF, 0x99B0, 0x99B1, 0x99B2, 0x99B3, 0x99B4, 0x99B5, 0x99B6, 0x99B7, 0x99B8, 0x99B9, 0x99BA, 0x99BB, 0x99BC, 0x99BD, 0x99BE, 0x99BF, 0x99C0, 0x99C1, 0x99C2, 0x99C3, 0x99C4, 0x99C5, 0x99C6, 0x99C7, 0x99C8, 0x99C9, 0x99CA, 0x99CB, 0x99CC, 0x99CD, 0x99CE, 0x99CF, 0x99D0, 0x99D1, 0x99D2, 0x99D3, 0x99D4, 0x99D5, 0x99D6, 0x99D7, 0x99D8, 0x003F, 0x99D9, 0x99DA, 0x99DB, 0x99DC, 0x99DD, 0x99DE, 0x99DF, 0x99E0, 0x99E1, 0x99E2, 0x99E3, 0x99E4, 0x99E5, 0x99E6, 0x99E7, 0x99E8, 0x99E9, 0x99EA, 0x99EB, 0x99EC, 0x99ED, 0x99EE, 0x99EF, 0x99F0, 0x99F1, 0x99F2, 0x99F3, 0x99F4, 0x99F5, 0x99F6, 0x99F7, 0x99F8, 0x99F9, 0x761B, 0x763C, 0x7622, 0x7620, 0x7640, 0x762D, 0x7630, 0x763F, 0x7635, 0x7643, 0x763E, 0x7633, 0x764D, 0x765E, 0x7654, 0x765C, 0x7656, 0x766B, 0x766F, 0x7FCA, 0x7AE6, 0x7A78, 0x7A79, 0x7A80, 0x7A86, 0x7A88, 0x7A95, 0x7AA6, 0x7AA0, 0x7AAC, 0x7AA8, 0x7AAD, 0x7AB3, 0x8864, 0x8869, 0x8872, 0x887D, 0x887F, 0x8882, 0x88A2, 0x88C6, 0x88B7, 0x88BC, 0x88C9, 0x88E2, 0x88CE, 0x88E3, 0x88E5, 0x88F1, 0x891A, 0x88FC, 0x88E8, 0x88FE, 0x88F0, 0x8921, 0x8919, 0x8913, 0x891B, 0x890A, 0x8934, 0x892B, 0x8936, 0x8941, 0x8966, 0x897B, 0x758B, 0x80E5, 0x76B2, 0x76B4, 0x77DC, 0x8012, 0x8014, 0x8016, 0x801C, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, 0x8029, 0x8028, 0x8031, 0x800B, 0x8035, 0x8043, 0x8046, 0x804D, 0x8052, 0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883}, {0x99FA, 0x99FB, 0x99FC, 0x99FD, 0x99FE, 0x99FF, 0x9A00, 0x9A01, 0x9A02, 0x9A03, 0x9A04, 0x9A05, 0x9A06, 0x9A07, 0x9A08, 0x9A09, 0x9A0A, 0x9A0B, 0x9A0C, 0x9A0D, 0x9A0E, 0x9A0F, 0x9A10, 0x9A11, 0x9A12, 0x9A13, 0x9A14, 0x9A15, 0x9A16, 0x9A17, 0x9A18, 0x9A19, 0x9A1A, 0x9A1B, 0x9A1C, 0x9A1D, 0x9A1E, 0x9A1F, 0x9A20, 0x9A21, 0x9A22, 0x9A23, 0x9A24, 0x9A25, 0x9A26, 0x9A27, 0x9A28, 0x9A29, 0x9A2A, 0x9A2B, 0x9A2C, 0x9A2D, 0x9A2E, 0x9A2F, 0x9A30, 0x9A31, 0x9A32, 0x9A33, 0x9A34, 0x9A35, 0x9A36, 0x9A37, 0x9A38, 0x003F, 0x9A39, 0x9A3A, 0x9A3B, 0x9A3C, 0x9A3D, 0x9A3E, 0x9A3F, 0x9A40, 0x9A41, 0x9A42, 0x9A43, 0x9A44, 0x9A45, 0x9A46, 0x9A47, 0x9A48, 0x9A49, 0x9A4A, 0x9A4B, 0x9A4C, 0x9A4D, 0x9A4E, 0x9A4F, 0x9A50, 0x9A51, 0x9A52, 0x9A53, 0x9A54, 0x9A55, 0x9A56, 0x9A57, 0x9A58, 0x9A59, 0x9889, 0x988C, 0x988D, 0x988F, 0x9894, 0x989A, 0x989B, 0x989E, 0x989F, 0x98A1, 0x98A2, 0x98A5, 0x98A6, 0x864D, 0x8654, 0x866C, 0x866E, 0x867F, 0x867A, 0x867C, 0x867B, 0x86A8, 0x868D, 0x868B, 0x86AC, 0x869D, 0x86A7, 0x86A3, 0x86AA, 0x8693, 0x86A9, 0x86B6, 0x86C4, 0x86B5, 0x86CE, 0x86B0, 0x86BA, 0x86B1, 0x86AF, 0x86C9, 0x86CF, 0x86B4, 0x86E9, 0x86F1, 0x86F2, 0x86ED, 0x86F3, 0x86D0, 0x8713, 0x86DE, 0x86F4, 0x86DF, 0x86D8, 0x86D1, 0x8703, 0x8707, 0x86F8, 0x8708, 0x870A, 0x870D, 0x8709, 0x8723, 0x873B, 0x871E, 0x8725, 0x872E, 0x871A, 0x873E, 0x8748, 0x8734, 0x8731, 0x8729, 0x8737, 0x873F, 0x8782, 0x8722, 0x877D, 0x877E, 0x877B, 0x8760, 0x8770, 0x874C, 0x876E, 0x878B, 0x8753, 0x8763, 0x877C, 0x8764, 0x8759, 0x8765, 0x8793, 0x87AF, 0x87A8, 0x87D2}, {0x9A5A, 0x9A5B, 0x9A5C, 0x9A5D, 0x9A5E, 0x9A5F, 0x9A60, 0x9A61, 0x9A62, 0x9A63, 0x9A64, 0x9A65, 0x9A66, 0x9A67, 0x9A68, 0x9A69, 0x9A6A, 0x9A6B, 0x9A72, 0x9A83, 0x9A89, 0x9A8D, 0x9A8E, 0x9A94, 0x9A95, 0x9A99, 0x9AA6, 0x9AA9, 0x9AAA, 0x9AAB, 0x9AAC, 0x9AAD, 0x9AAE, 0x9AAF, 0x9AB2, 0x9AB3, 0x9AB4, 0x9AB5, 0x9AB9, 0x9ABB, 0x9ABD, 0x9ABE, 0x9ABF, 0x9AC3, 0x9AC4, 0x9AC6, 0x9AC7, 0x9AC8, 0x9AC9, 0x9ACA, 0x9ACD, 0x9ACE, 0x9ACF, 0x9AD0, 0x9AD2, 0x9AD4, 0x9AD5, 0x9AD6, 0x9AD7, 0x9AD9, 0x9ADA, 0x9ADB, 0x9ADC, 0x003F, 0x9ADD, 0x9ADE, 0x9AE0, 0x9AE2, 0x9AE3, 0x9AE4, 0x9AE5, 0x9AE7, 0x9AE8, 0x9AE9, 0x9AEA, 0x9AEC, 0x9AEE, 0x9AF0, 0x9AF1, 0x9AF2, 0x9AF3, 0x9AF4, 0x9AF5, 0x9AF6, 0x9AF7, 0x9AF8, 0x9AFA, 0x9AFC, 0x9AFD, 0x9AFE, 0x9AFF, 0x9B00, 0x9B01, 0x9B02, 0x9B04, 0x9B05, 0x9B06, 0x87C6, 0x8788, 0x8785, 0x87AD, 0x8797, 0x8783, 0x87AB, 0x87E5, 0x87AC, 0x87B5, 0x87B3, 0x87CB, 0x87D3, 0x87BD, 0x87D1, 0x87C0, 0x87CA, 0x87DB, 0x87EA, 0x87E0, 0x87EE, 0x8816, 0x8813, 0x87FE, 0x880A, 0x881B, 0x8821, 0x8839, 0x883C, 0x7F36, 0x7F42, 0x7F44, 0x7F45, 0x8210, 0x7AFA, 0x7AFD, 0x7B08, 0x7B03, 0x7B04, 0x7B15, 0x7B0A, 0x7B2B, 0x7B0F, 0x7B47, 0x7B38, 0x7B2A, 0x7B19, 0x7B2E, 0x7B31, 0x7B20, 0x7B25, 0x7B24, 0x7B33, 0x7B3E, 0x7B1E, 0x7B58, 0x7B5A, 0x7B45, 0x7B75, 0x7B4C, 0x7B5D, 0x7B60, 0x7B6E, 0x7B7B, 0x7B62, 0x7B72, 0x7B71, 0x7B90, 0x7BA6, 0x7BA7, 0x7BB8, 0x7BAC, 0x7B9D, 0x7BA8, 0x7B85, 0x7BAA, 0x7B9C, 0x7BA2, 0x7BAB, 0x7BB4, 0x7BD1, 0x7BC1, 0x7BCC, 0x7BDD, 0x7BDA, 0x7BE5, 0x7BE6, 0x7BEA, 0x7C0C, 0x7BFE, 0x7BFC, 0x7C0F, 0x7C16, 0x7C0B}, {0x9B07, 0x9B09, 0x9B0A, 0x9B0B, 0x9B0C, 0x9B0D, 0x9B0E, 0x9B10, 0x9B11, 0x9B12, 0x9B14, 0x9B15, 0x9B16, 0x9B17, 0x9B18, 0x9B19, 0x9B1A, 0x9B1B, 0x9B1C, 0x9B1D, 0x9B1E, 0x9B20, 0x9B21, 0x9B22, 0x9B24, 0x9B25, 0x9B26, 0x9B27, 0x9B28, 0x9B29, 0x9B2A, 0x9B2B, 0x9B2C, 0x9B2D, 0x9B2E, 0x9B30, 0x9B31, 0x9B33, 0x9B34, 0x9B35, 0x9B36, 0x9B37, 0x9B38, 0x9B39, 0x9B3A, 0x9B3D, 0x9B3E, 0x9B3F, 0x9B40, 0x9B46, 0x9B4A, 0x9B4B, 0x9B4C, 0x9B4E, 0x9B50, 0x9B52, 0x9B53, 0x9B55, 0x9B56, 0x9B57, 0x9B58, 0x9B59, 0x9B5A, 0x003F, 0x9B5B, 0x9B5C, 0x9B5D, 0x9B5E, 0x9B5F, 0x9B60, 0x9B61, 0x9B62, 0x9B63, 0x9B64, 0x9B65, 0x9B66, 0x9B67, 0x9B68, 0x9B69, 0x9B6A, 0x9B6B, 0x9B6C, 0x9B6D, 0x9B6E, 0x9B6F, 0x9B70, 0x9B71, 0x9B72, 0x9B73, 0x9B74, 0x9B75, 0x9B76, 0x9B77, 0x9B78, 0x9B79, 0x9B7A, 0x9B7B, 0x7C1F, 0x7C2A, 0x7C26, 0x7C38, 0x7C41, 0x7C40, 0x81FE, 0x8201, 0x8202, 0x8204, 0x81EC, 0x8844, 0x8221, 0x8222, 0x8223, 0x822D, 0x822F, 0x8228, 0x822B, 0x8238, 0x823B, 0x8233, 0x8234, 0x823E, 0x8244, 0x8249, 0x824B, 0x824F, 0x825A, 0x825F, 0x8268, 0x887E, 0x8885, 0x8888, 0x88D8, 0x88DF, 0x895E, 0x7F9D, 0x7F9F, 0x7FA7, 0x7FAF, 0x7FB0, 0x7FB2, 0x7C7C, 0x6549, 0x7C91, 0x7C9D, 0x7C9C, 0x7C9E, 0x7CA2, 0x7CB2, 0x7CBC, 0x7CBD, 0x7CC1, 0x7CC7, 0x7CCC, 0x7CCD, 0x7CC8, 0x7CC5, 0x7CD7, 0x7CE8, 0x826E, 0x66A8, 0x7FBF, 0x7FCE, 0x7FD5, 0x7FE5, 0x7FE1, 0x7FE6, 0x7FE9, 0x7FEE, 0x7FF3, 0x7CF8, 0x7D77, 0x7DA6, 0x7DAE, 0x7E47, 0x7E9B, 0x9EB8, 0x9EB4, 0x8D73, 0x8D84, 0x8D94, 0x8D91, 0x8DB1, 0x8D67, 0x8D6D, 0x8C47, 0x8C49, 0x914A, 0x9150, 0x914E, 0x914F, 0x9164}, {0x9B7C, 0x9B7D, 0x9B7E, 0x9B7F, 0x9B80, 0x9B81, 0x9B82, 0x9B83, 0x9B84, 0x9B85, 0x9B86, 0x9B87, 0x9B88, 0x9B89, 0x9B8A, 0x9B8B, 0x9B8C, 0x9B8D, 0x9B8E, 0x9B8F, 0x9B90, 0x9B91, 0x9B92, 0x9B93, 0x9B94, 0x9B95, 0x9B96, 0x9B97, 0x9B98, 0x9B99, 0x9B9A, 0x9B9B, 0x9B9C, 0x9B9D, 0x9B9E, 0x9B9F, 0x9BA0, 0x9BA1, 0x9BA2, 0x9BA3, 0x9BA4, 0x9BA5, 0x9BA6, 0x9BA7, 0x9BA8, 0x9BA9, 0x9BAA, 0x9BAB, 0x9BAC, 0x9BAD, 0x9BAE, 0x9BAF, 0x9BB0, 0x9BB1, 0x9BB2, 0x9BB3, 0x9BB4, 0x9BB5, 0x9BB6, 0x9BB7, 0x9BB8, 0x9BB9, 0x9BBA, 0x003F, 0x9BBB, 0x9BBC, 0x9BBD, 0x9BBE, 0x9BBF, 0x9BC0, 0x9BC1, 0x9BC2, 0x9BC3, 0x9BC4, 0x9BC5, 0x9BC6, 0x9BC7, 0x9BC8, 0x9BC9, 0x9BCA, 0x9BCB, 0x9BCC, 0x9BCD, 0x9BCE, 0x9BCF, 0x9BD0, 0x9BD1, 0x9BD2, 0x9BD3, 0x9BD4, 0x9BD5, 0x9BD6, 0x9BD7, 0x9BD8, 0x9BD9, 0x9BDA, 0x9BDB, 0x9162, 0x9161, 0x9170, 0x9169, 0x916F, 0x917D, 0x917E, 0x9172, 0x9174, 0x9179, 0x918C, 0x9185, 0x9190, 0x918D, 0x9191, 0x91A2, 0x91A3, 0x91AA, 0x91AD, 0x91AE, 0x91AF, 0x91B5, 0x91B4, 0x91BA, 0x8C55, 0x9E7E, 0x8DB8, 0x8DEB, 0x8E05, 0x8E59, 0x8E69, 0x8DB5, 0x8DBF, 0x8DBC, 0x8DBA, 0x8DC4, 0x8DD6, 0x8DD7, 0x8DDA, 0x8DDE, 0x8DCE, 0x8DCF, 0x8DDB, 0x8DC6, 0x8DEC, 0x8DF7, 0x8DF8, 0x8DE3, 0x8DF9, 0x8DFB, 0x8DE4, 0x8E09, 0x8DFD, 0x8E14, 0x8E1D, 0x8E1F, 0x8E2C, 0x8E2E, 0x8E23, 0x8E2F, 0x8E3A, 0x8E40, 0x8E39, 0x8E35, 0x8E3D, 0x8E31, 0x8E49, 0x8E41, 0x8E42, 0x8E51, 0x8E52, 0x8E4A, 0x8E70, 0x8E76, 0x8E7C, 0x8E6F, 0x8E74, 0x8E85, 0x8E8F, 0x8E94, 0x8E90, 0x8E9C, 0x8E9E, 0x8C78, 0x8C82, 0x8C8A, 0x8C85, 0x8C98, 0x8C94, 0x659B, 0x89D6, 0x89DE, 0x89DA, 0x89DC}, {0x9BDC, 0x9BDD, 0x9BDE, 0x9BDF, 0x9BE0, 0x9BE1, 0x9BE2, 0x9BE3, 0x9BE4, 0x9BE5, 0x9BE6, 0x9BE7, 0x9BE8, 0x9BE9, 0x9BEA, 0x9BEB, 0x9BEC, 0x9BED, 0x9BEE, 0x9BEF, 0x9BF0, 0x9BF1, 0x9BF2, 0x9BF3, 0x9BF4, 0x9BF5, 0x9BF6, 0x9BF7, 0x9BF8, 0x9BF9, 0x9BFA, 0x9BFB, 0x9BFC, 0x9BFD, 0x9BFE, 0x9BFF, 0x9C00, 0x9C01, 0x9C02, 0x9C03, 0x9C04, 0x9C05, 0x9C06, 0x9C07, 0x9C08, 0x9C09, 0x9C0A, 0x9C0B, 0x9C0C, 0x9C0D, 0x9C0E, 0x9C0F, 0x9C10, 0x9C11, 0x9C12, 0x9C13, 0x9C14, 0x9C15, 0x9C16, 0x9C17, 0x9C18, 0x9C19, 0x9C1A, 0x003F, 0x9C1B, 0x9C1C, 0x9C1D, 0x9C1E, 0x9C1F, 0x9C20, 0x9C21, 0x9C22, 0x9C23, 0x9C24, 0x9C25, 0x9C26, 0x9C27, 0x9C28, 0x9C29, 0x9C2A, 0x9C2B, 0x9C2C, 0x9C2D, 0x9C2E, 0x9C2F, 0x9C30, 0x9C31, 0x9C32, 0x9C33, 0x9C34, 0x9C35, 0x9C36, 0x9C37, 0x9C38, 0x9C39, 0x9C3A, 0x9C3B, 0x89E5, 0x89EB, 0x89EF, 0x8A3E, 0x8B26, 0x9753, 0x96E9, 0x96F3, 0x96EF, 0x9706, 0x9701, 0x9708, 0x970F, 0x970E, 0x972A, 0x972D, 0x9730, 0x973E, 0x9F80, 0x9F83, 0x9F85, 0x9F86, 0x9F87, 0x9F88, 0x9F89, 0x9F8A, 0x9F8C, 0x9EFE, 0x9F0B, 0x9F0D, 0x96B9, 0x96BC, 0x96BD, 0x96CE, 0x96D2, 0x77BF, 0x96E0, 0x928E, 0x92AE, 0x92C8, 0x933E, 0x936A, 0x93CA, 0x938F, 0x943E, 0x946B, 0x9C7F, 0x9C82, 0x9C85, 0x9C86, 0x9C87, 0x9C88, 0x7A23, 0x9C8B, 0x9C8E, 0x9C90, 0x9C91, 0x9C92, 0x9C94, 0x9C95, 0x9C9A, 0x9C9B, 0x9C9E, 0x9C9F, 0x9CA0, 0x9CA1, 0x9CA2, 0x9CA3, 0x9CA5, 0x9CA6, 0x9CA7, 0x9CA8, 0x9CA9, 0x9CAB, 0x9CAD, 0x9CAE, 0x9CB0, 0x9CB1, 0x9CB2, 0x9CB3, 0x9CB4, 0x9CB5, 0x9CB6, 0x9CB7, 0x9CBA, 0x9CBB, 0x9CBC, 0x9CBD, 0x9CC4, 0x9CC5, 0x9CC6, 0x9CC7, 0x9CCA, 0x9CCB}, {0x9C3C, 0x9C3D, 0x9C3E, 0x9C3F, 0x9C40, 0x9C41, 0x9C42, 0x9C43, 0x9C44, 0x9C45, 0x9C46, 0x9C47, 0x9C48, 0x9C49, 0x9C4A, 0x9C4B, 0x9C4C, 0x9C4D, 0x9C4E, 0x9C4F, 0x9C50, 0x9C51, 0x9C52, 0x9C53, 0x9C54, 0x9C55, 0x9C56, 0x9C57, 0x9C58, 0x9C59, 0x9C5A, 0x9C5B, 0x9C5C, 0x9C5D, 0x9C5E, 0x9C5F, 0x9C60, 0x9C61, 0x9C62, 0x9C63, 0x9C64, 0x9C65, 0x9C66, 0x9C67, 0x9C68, 0x9C69, 0x9C6A, 0x9C6B, 0x9C6C, 0x9C6D, 0x9C6E, 0x9C6F, 0x9C70, 0x9C71, 0x9C72, 0x9C73, 0x9C74, 0x9C75, 0x9C76, 0x9C77, 0x9C78, 0x9C79, 0x9C7A, 0x003F, 0x9C7B, 0x9C7D, 0x9C7E, 0x9C80, 0x9C83, 0x9C84, 0x9C89, 0x9C8A, 0x9C8C, 0x9C8F, 0x9C93, 0x9C96, 0x9C97, 0x9C98, 0x9C99, 0x9C9D, 0x9CAA, 0x9CAC, 0x9CAF, 0x9CB9, 0x9CBE, 0x9CBF, 0x9CC0, 0x9CC1, 0x9CC2, 0x9CC8, 0x9CC9, 0x9CD1, 0x9CD2, 0x9CDA, 0x9CDB, 0x9CE0, 0x9CE1, 0x9CCC, 0x9CCD, 0x9CCE, 0x9CCF, 0x9CD0, 0x9CD3, 0x9CD4, 0x9CD5, 0x9CD7, 0x9CD8, 0x9CD9, 0x9CDC, 0x9CDD, 0x9CDF, 0x9CE2, 0x977C, 0x9785, 0x9791, 0x9792, 0x9794, 0x97AF, 0x97AB, 0x97A3, 0x97B2, 0x97B4, 0x9AB1, 0x9AB0, 0x9AB7, 0x9E58, 0x9AB6, 0x9ABA, 0x9ABC, 0x9AC1, 0x9AC0, 0x9AC5, 0x9AC2, 0x9ACB, 0x9ACC, 0x9AD1, 0x9B45, 0x9B43, 0x9B47, 0x9B49, 0x9B48, 0x9B4D, 0x9B51, 0x98E8, 0x990D, 0x992E, 0x9955, 0x9954, 0x9ADF, 0x9AE1, 0x9AE6, 0x9AEF, 0x9AEB, 0x9AFB, 0x9AED, 0x9AF9, 0x9B08, 0x9B0F, 0x9B13, 0x9B1F, 0x9B23, 0x9EBD, 0x9EBE, 0x7E3B, 0x9E82, 0x9E87, 0x9E88, 0x9E8B, 0x9E92, 0x93D6, 0x9E9D, 0x9E9F, 0x9EDB, 0x9EDC, 0x9EDD, 0x9EE0, 0x9EDF, 0x9EE2, 0x9EE9, 0x9EE7, 0x9EE5, 0x9EEA, 0x9EEF, 0x9F22, 0x9F2C, 0x9F2F, 0x9F39, 0x9F37, 0x9F3D, 0x9F3E, 0x9F44}, {0x9CE3, 0x9CE4, 0x9CE5, 0x9CE6, 0x9CE7, 0x9CE8, 0x9CE9, 0x9CEA, 0x9CEB, 0x9CEC, 0x9CED, 0x9CEE, 0x9CEF, 0x9CF0, 0x9CF1, 0x9CF2, 0x9CF3, 0x9CF4, 0x9CF5, 0x9CF6, 0x9CF7, 0x9CF8, 0x9CF9, 0x9CFA, 0x9CFB, 0x9CFC, 0x9CFD, 0x9CFE, 0x9CFF, 0x9D00, 0x9D01, 0x9D02, 0x9D03, 0x9D04, 0x9D05, 0x9D06, 0x9D07, 0x9D08, 0x9D09, 0x9D0A, 0x9D0B, 0x9D0C, 0x9D0D, 0x9D0E, 0x9D0F, 0x9D10, 0x9D11, 0x9D12, 0x9D13, 0x9D14, 0x9D15, 0x9D16, 0x9D17, 0x9D18, 0x9D19, 0x9D1A, 0x9D1B, 0x9D1C, 0x9D1D, 0x9D1E, 0x9D1F, 0x9D20, 0x9D21, 0x003F, 0x9D22, 0x9D23, 0x9D24, 0x9D25, 0x9D26, 0x9D27, 0x9D28, 0x9D29, 0x9D2A, 0x9D2B, 0x9D2C, 0x9D2D, 0x9D2E, 0x9D2F, 0x9D30, 0x9D31, 0x9D32, 0x9D33, 0x9D34, 0x9D35, 0x9D36, 0x9D37, 0x9D38, 0x9D39, 0x9D3A, 0x9D3B, 0x9D3C, 0x9D3D, 0x9D3E, 0x9D3F, 0x9D40, 0x9D41, 0x9D42, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x9D43, 0x9D44, 0x9D45, 0x9D46, 0x9D47, 0x9D48, 0x9D49, 0x9D4A, 0x9D4B, 0x9D4C, 0x9D4D, 0x9D4E, 0x9D4F, 0x9D50, 0x9D51, 0x9D52, 0x9D53, 0x9D54, 0x9D55, 0x9D56, 0x9D57, 0x9D58, 0x9D59, 0x9D5A, 0x9D5B, 0x9D5C, 0x9D5D, 0x9D5E, 0x9D5F, 0x9D60, 0x9D61, 0x9D62, 0x9D63, 0x9D64, 0x9D65, 0x9D66, 0x9D67, 0x9D68, 0x9D69, 0x9D6A, 0x9D6B, 0x9D6C, 0x9D6D, 0x9D6E, 0x9D6F, 0x9D70, 0x9D71, 0x9D72, 0x9D73, 0x9D74, 0x9D75, 0x9D76, 0x9D77, 0x9D78, 0x9D79, 0x9D7A, 0x9D7B, 0x9D7C, 0x9D7D, 0x9D7E, 0x9D7F, 0x9D80, 0x9D81, 0x003F, 0x9D82, 0x9D83, 0x9D84, 0x9D85, 0x9D86, 0x9D87, 0x9D88, 0x9D89, 0x9D8A, 0x9D8B, 0x9D8C, 0x9D8D, 0x9D8E, 0x9D8F, 0x9D90, 0x9D91, 0x9D92, 0x9D93, 0x9D94, 0x9D95, 0x9D96, 0x9D97, 0x9D98, 0x9D99, 0x9D9A, 0x9D9B, 0x9D9C, 0x9D9D, 0x9D9E, 0x9D9F, 0x9DA0, 0x9DA1, 0x9DA2, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x9DA3, 0x9DA4, 0x9DA5, 0x9DA6, 0x9DA7, 0x9DA8, 0x9DA9, 0x9DAA, 0x9DAB, 0x9DAC, 0x9DAD, 0x9DAE, 0x9DAF, 0x9DB0, 0x9DB1, 0x9DB2, 0x9DB3, 0x9DB4, 0x9DB5, 0x9DB6, 0x9DB7, 0x9DB8, 0x9DB9, 0x9DBA, 0x9DBB, 0x9DBC, 0x9DBD, 0x9DBE, 0x9DBF, 0x9DC0, 0x9DC1, 0x9DC2, 0x9DC3, 0x9DC4, 0x9DC5, 0x9DC6, 0x9DC7, 0x9DC8, 0x9DC9, 0x9DCA, 0x9DCB, 0x9DCC, 0x9DCD, 0x9DCE, 0x9DCF, 0x9DD0, 0x9DD1, 0x9DD2, 0x9DD3, 0x9DD4, 0x9DD5, 0x9DD6, 0x9DD7, 0x9DD8, 0x9DD9, 0x9DDA, 0x9DDB, 0x9DDC, 0x9DDD, 0x9DDE, 0x9DDF, 0x9DE0, 0x9DE1, 0x003F, 0x9DE2, 0x9DE3, 0x9DE4, 0x9DE5, 0x9DE6, 0x9DE7, 0x9DE8, 0x9DE9, 0x9DEA, 0x9DEB, 0x9DEC, 0x9DED, 0x9DEE, 0x9DEF, 0x9DF0, 0x9DF1, 0x9DF2, 0x9DF3, 0x9DF4, 0x9DF5, 0x9DF6, 0x9DF7, 0x9DF8, 0x9DF9, 0x9DFA, 0x9DFB, 0x9DFC, 0x9DFD, 0x9DFE, 0x9DFF, 0x9E00, 0x9E01, 0x9E02, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x9E03, 0x9E04, 0x9E05, 0x9E06, 0x9E07, 0x9E08, 0x9E09, 0x9E0A, 0x9E0B, 0x9E0C, 0x9E0D, 0x9E0E, 0x9E0F, 0x9E10, 0x9E11, 0x9E12, 0x9E13, 0x9E14, 0x9E15, 0x9E16, 0x9E17, 0x9E18, 0x9E19, 0x9E1A, 0x9E1B, 0x9E1C, 0x9E1D, 0x9E1E, 0x9E24, 0x9E27, 0x9E2E, 0x9E30, 0x9E34, 0x9E3B, 0x9E3C, 0x9E40, 0x9E4D, 0x9E50, 0x9E52, 0x9E53, 0x9E54, 0x9E56, 0x9E59, 0x9E5D, 0x9E5F, 0x9E60, 0x9E61, 0x9E62, 0x9E65, 0x9E6E, 0x9E6F, 0x9E72, 0x9E74, 0x9E75, 0x9E76, 0x9E77, 0x9E78, 0x9E79, 0x9E7A, 0x9E7B, 0x9E7C, 0x9E7D, 0x9E80, 0x003F, 0x9E81, 0x9E83, 0x9E84, 0x9E85, 0x9E86, 0x9E89, 0x9E8A, 0x9E8C, 0x9E8D, 0x9E8E, 0x9E8F, 0x9E90, 0x9E91, 0x9E94, 0x9E95, 0x9E96, 0x9E97, 0x9E98, 0x9E99, 0x9E9A, 0x9E9B, 0x9E9C, 0x9E9E, 0x9EA0, 0x9EA1, 0x9EA2, 0x9EA3, 0x9EA4, 0x9EA5, 0x9EA7, 0x9EA8, 0x9EA9, 0x9EAA, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x9EAB, 0x9EAC, 0x9EAD, 0x9EAE, 0x9EAF, 0x9EB0, 0x9EB1, 0x9EB2, 0x9EB3, 0x9EB5, 0x9EB6, 0x9EB7, 0x9EB9, 0x9EBA, 0x9EBC, 0x9EBF, 0x9EC0, 0x9EC1, 0x9EC2, 0x9EC3, 0x9EC5, 0x9EC6, 0x9EC7, 0x9EC8, 0x9ECA, 0x9ECB, 0x9ECC, 0x9ED0, 0x9ED2, 0x9ED3, 0x9ED5, 0x9ED6, 0x9ED7, 0x9ED9, 0x9EDA, 0x9EDE, 0x9EE1, 0x9EE3, 0x9EE4, 0x9EE6, 0x9EE8, 0x9EEB, 0x9EEC, 0x9EED, 0x9EEE, 0x9EF0, 0x9EF1, 0x9EF2, 0x9EF3, 0x9EF4, 0x9EF5, 0x9EF6, 0x9EF7, 0x9EF8, 0x9EFA, 0x9EFD, 0x9EFF, 0x9F00, 0x9F01, 0x9F02, 0x9F03, 0x9F04, 0x9F05, 0x003F, 0x9F06, 0x9F07, 0x9F08, 0x9F09, 0x9F0A, 0x9F0C, 0x9F0F, 0x9F11, 0x9F12, 0x9F14, 0x9F15, 0x9F16, 0x9F18, 0x9F1A, 0x9F1B, 0x9F1C, 0x9F1D, 0x9F1E, 0x9F1F, 0x9F21, 0x9F23, 0x9F24, 0x9F25, 0x9F26, 0x9F27, 0x9F28, 0x9F29, 0x9F2A, 0x9F2B, 0x9F2D, 0x9F2E, 0x9F30, 0x9F31, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0x9F32, 0x9F33, 0x9F34, 0x9F35, 0x9F36, 0x9F38, 0x9F3A, 0x9F3C, 0x9F3F, 0x9F40, 0x9F41, 0x9F42, 0x9F43, 0x9F45, 0x9F46, 0x9F47, 0x9F48, 0x9F49, 0x9F4A, 0x9F4B, 0x9F4C, 0x9F4D, 0x9F4E, 0x9F4F, 0x9F52, 0x9F53, 0x9F54, 0x9F55, 0x9F56, 0x9F57, 0x9F58, 0x9F59, 0x9F5A, 0x9F5B, 0x9F5C, 0x9F5D, 0x9F5E, 0x9F5F, 0x9F60, 0x9F61, 0x9F62, 0x9F63, 0x9F64, 0x9F65, 0x9F66, 0x9F67, 0x9F68, 0x9F69, 0x9F6A, 0x9F6B, 0x9F6C, 0x9F6D, 0x9F6E, 0x9F6F, 0x9F70, 0x9F71, 0x9F72, 0x9F73, 0x9F74, 0x9F75, 0x9F76, 0x9F77, 0x9F78, 0x003F, 0x9F79, 0x9F7A, 0x9F7B, 0x9F7C, 0x9F7D, 0x9F7E, 0x9F81, 0x9F82, 0x9F8D, 0x9F8E, 0x9F8F, 0x9F90, 0x9F91, 0x9F92, 0x9F93, 0x9F94, 0x9F95, 0x9F96, 0x9F97, 0x9F98, 0x9F9C, 0x9F9D, 0x9F9E, 0x9FA1, 0x9FA2, 0x9FA3, 0x9FA4, 0x9FA5, 0xF92C, 0xF979, 0xF995, 0xF9E7, 0xF9F1, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}, {0xFA0C, 0xFA0D, 0xFA0E, 0xFA0F, 0xFA11, 0xFA13, 0xFA14, 0xFA18, 0xFA1F, 0xFA20, 0xFA21, 0xFA23, 0xFA24, 0xFA27, 0xFA28, 0xFA29, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F, 0x003F}}}; #endif CorsixTH-0.70.0/CorsixTH/Src/cpmik_table.h000066400000000000000000000025371522247547500202020ustar00rootroot00000000000000#ifndef CORSIX_TH_CPMIK_TO_UNICODE_TABLE_H #define CORSIX_TH_CPMIK_TO_UNICODE_TABLE_H #include "config.h" #include // clang-format off constexpr std::array cpmik_to_unicode_table{ /* 0x80 through 0xFF: MIK (Russian code page) */ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x2563, 0x2551, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2510, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2116, 0x00A7, 0x2557, 0x255D, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0}; // clang-format on #endif CorsixTH-0.70.0/CorsixTH/Src/iso_fs.cpp000066400000000000000000000452671522247547500175540ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "iso_fs.h" #include #include #include #include #include #include #include #include #include #include #include "th.h" namespace { enum iso_volume_descriptor_type : uint8_t { vdt_primary_volume = 0x01, // Other type numbers are either reserved for future use, or are not // interesting to us. vdt_terminator = 0xFF, }; /// Flag values for directory table entries. The flag itself is a bitmask. enum iso_dir_ent_flag : uint8_t { def_hidden = 0x01, def_directory = 0x02, def_multi_extent = 0x80, }; /// Offset to the 32bit sector of the file data /// from the start of the file entry. constexpr ptrdiff_t file_sector_offset = 2; /// Offset to the 32bit length of the file data /// from the start of the file entry constexpr ptrdiff_t file_data_length_offset = 10; /// The offset of the file flags (e.g. directory vs file) /// from the start of the file entry. constexpr ptrdiff_t file_flags_offset = 25; /// The offset of the byte that stores the length of the filename /// from the start of the file entry. constexpr ptrdiff_t filename_length_offset = 32; /// The offset of the start of the filename or directory identifier /// from the start of the file entry. constexpr ptrdiff_t filename_offset = 33; /// The minimum valid size of a valid file entry. /// Accounts for all fixed header value offsets and even number padding. constexpr uint8_t minimum_file_entry_size = 34; /// Formal depth limit in spec is 8. We allows for loose implementations. constexpr int max_directory_depth = 16; /// Reasonably unique name of a file from Theme Hospital that can be used to /// indicate that we've loaded the right directory. constexpr const char* vblk_0_filename = "VBLK-0.TAB"; /// Offset of the sector size from the primary volume descriptor constexpr size_t sector_size_offset = 128; /// Offset of the root directory entry from the primary volume descriptor constexpr ptrdiff_t root_directory_offset = 156; /// The root directory entry is a fixed size. constexpr size_t root_directory_entry_size = 34; /// ISO 9660 has a 32kb reserve area at the beginning of the file formal /// e.g. boot information. constexpr uint32_t first_filesystem_sector = 16; /// Finds the length of the file name within a file identifier. /// The file identifier is `filename;file id`. void trim_file_id(const uint8_t* sIdent, uint8_t& iLength) { for (uint8_t i = 0; i < iLength; ++i) { if (sIdent[i] == ';') { iLength = i; return; } } } /// Convert character to filename normalized format conforming to ISO filename /// limitations. All letters are converted to upper case, and `_` to `-`. char normalise(char c) { if (c == '_') { return '-'; } else if ('a' <= c && c <= 'z') { return static_cast(c - 'a' + 'A'); } else { return c; } } /// Convert length bytes from the start pointer to a normalized filename /// string. All ASCII letters are converted to upper case, and `_` to `-`. std::string normalise(const uint8_t* start, size_t length) { std::string ret; const uint8_t* p = start; for (size_t i = 0; i < length; i++) { ret.push_back(normalise(static_cast(*p))); ++p; } return ret; } /// Convert c string to normalized filename string. All ASCII letters are /// converted to upper case, and `_` to `-`. std::string normalise(const char* str) { std::string ret; const char* p = str; while (*p != '\0') { ret.push_back(normalise(*p)); ++p; } return ret; } /// A file entry from the directory table class iso_file_entry { public: /// Construct dummy entry. iso_file_entry() = default; /// Construct entry from the given memory location. /// The first byte is the size of the entry. Other useful headers are read /// from their offsets from that location. /// /// \param b Pointer to first byte of file entry in directory table. explicit iso_file_entry(const uint8_t* b) { uint8_t size = *b; if (size < minimum_file_entry_size) { throw std::runtime_error("size specified for file entry is too small."); } uint8_t filename_length = b[filename_length_offset]; if (filename_length + filename_offset > size) { throw std::runtime_error("size specified for file entry is too small."); } trim_file_id(b + filename_offset, filename_length); filename = normalise(b + filename_offset, filename_length); data_sector = bytes_to_uint32_le(b + file_sector_offset); data_length = bytes_to_uint32_le(b + file_data_length_offset); flags = b[file_flags_offset]; } /// Logical location of the data for this file in the ISO image. uint32_t data_sector{}; /// The length of the data for this file. uint32_t data_length{}; /// Flags that indicate whether this entry is a file or directory, along /// with other properties. /// /// \see iso_dir_ent_flag uint8_t flags{}; /// The filename of this entry. std::string filename; }; /** * Input iterator (forward only, read only) for an ISO 9660 directory table * stored in a byte buffer. */ class iso_directory_iterator final { using iterator_category = std::input_iterator_tag; using value_type = const iso_file_entry; using difference_type = ptrdiff_t; using pointer = const iso_file_entry*; using reference = const iso_file_entry&; public: iso_directory_iterator() = delete; /** * Initialize an iterator for the directory table in the memory region * defined by by begin and end. This iterator is aware of its container * and will throw an exception if an attempt is made to access it out of * range. * * \param begin pointer to the first byte of the directory table. * \param end pointer to the first byte following the directory table. */ iso_directory_iterator(const uint8_t* begin, const uint8_t* end) { directory_ptr = begin; end_ptr = end; if (directory_ptr >= end_ptr) { // dummy value, not accessible. entry = iso_file_entry(); } else { entry = iso_file_entry(begin); } } /** * Copy the given iso_directory_iterator */ iso_directory_iterator(iso_directory_iterator& it) { directory_ptr = it.directory_ptr; end_ptr = it.end_ptr; entry = it.entry; } /** * Move the given iso_directory_iterator */ iso_directory_iterator(iso_directory_iterator&& it) noexcept { directory_ptr = it.directory_ptr; end_ptr = it.end_ptr; entry = std::move(it.entry); it.directory_ptr = nullptr; it.end_ptr = nullptr; it.entry = iso_file_entry(); } ~iso_directory_iterator() = default; /** * Determine whether two iso_directory_iterators point to the same table * entry. */ bool operator==(const iso_directory_iterator& rhs) const { return (this->directory_ptr == rhs.directory_ptr); } /** * Determine whether to iso_directory_iterators do not point to the same * table entry. */ bool operator!=(const iso_directory_iterator& rhs) const { return !((*this) == rhs); } /** * Get the file entry pointed to by the iterator. */ reference operator*() const { if (directory_ptr >= end_ptr) { throw std::out_of_range("iso directory iterator is past end of input"); } return entry; } /** * Assign this iterator the value of another iterator by copy */ iso_directory_iterator& operator=(iso_directory_iterator& rhs) = default; /** * Assign this iterator the value of another iterator by move */ iso_directory_iterator& operator=(iso_directory_iterator&& rhs) noexcept { directory_ptr = rhs.directory_ptr; end_ptr = rhs.end_ptr; entry = std::move(rhs.entry); rhs.directory_ptr = nullptr; rhs.end_ptr = nullptr; rhs.entry = {}; return *this; } /** * Advance this iterator to the next file entry in the directory table, * returning the result. * In cases where advancing the iterator would read past the end of the * directory table, an exception is thrown and the iterator is not * advanced. */ iso_directory_iterator& operator++() { if (directory_ptr >= end_ptr) { throw std::out_of_range( "Cannot advance iso directory iterator past end of input"); } const uint8_t* new_dir_ptr = directory_ptr + *directory_ptr; while (new_dir_ptr < end_ptr && *new_dir_ptr == 0) { ++new_dir_ptr; } // Catch a malformed directory entry where the size would extend past // the end of the table. if (new_dir_ptr < end_ptr && new_dir_ptr + *new_dir_ptr > end_ptr) { throw std::runtime_error( "The last directory entry was larger than the defined " "table region."); } if (new_dir_ptr < end_ptr) { entry = iso_file_entry(new_dir_ptr); } else { entry = iso_file_entry(); } directory_ptr = new_dir_ptr; return *this; } /** * Advance this iterator to the next file entry in the directory table, * returning a copy of the old iterator. */ iso_directory_iterator operator++(int) { iso_directory_iterator old(*this); ++(*this); return old; } private: /// Pointer to the current entry. const uint8_t* directory_ptr; /// Pointer to the end of the directory table. const uint8_t* end_ptr; /// Current entry. iso_file_entry entry; }; } // namespace iso_filesystem::iso_filesystem(const char* path, char pathSeparator) : path_seperator(pathSeparator), raw_file(std::fopen(path, "rb"), &std::fclose) { if (!raw_file) { throw std::runtime_error("Failed to open ISO file"); } // The first 16 sectors are reserved for bootable media. // Volume descriptor records follow this, with one record per sector. for (uint32_t iSector = first_filesystem_sector; seek_to_sector(iSector); ++iSector) { uint8_t aBuffer[root_directory_offset + root_directory_entry_size]; if (!read_data(sizeof(aBuffer), aBuffer)) { break; } // CD001 is a standard identifier, \x01 is a version number if (std::memcmp(aBuffer + 1, "CD001\x01", 6) == 0) { if (aBuffer[0] == vdt_primary_volume) { sector_size = bytes_to_uint16_le(aBuffer + sector_size_offset); find_hosp_directory(aBuffer + root_directory_offset, root_directory_entry_size, 0); if (files.empty()) { throw( std::runtime_error("Could not find Theme Hospital data " "directory.")); } return; } else if (aBuffer[0] == vdt_terminator) { break; } } } throw(std::runtime_error("Could not find primary volume descriptor.")); } bool iso_filesystem::file_metadata_less(const file_metadata& lhs, const file_metadata& rhs) { return lhs.path < rhs.path; } int iso_filesystem::find_hosp_directory(const uint8_t* pDirEnt, const uint32_t dirEntsSize, int level) { // Sanity check // Apart from at the root level, directory record arrays must take up whole // sectors, whose sizes are powers of two and at least 2048. // The formal limit on directory depth is 8, so hitting 16 is insane. if ((level != 0 && (dirEntsSize & (min_sector_size - 1)) != 0) || level > max_directory_depth) return 0; std::unique_ptr pBuffer(nullptr); uint32_t iBufferSize = 0; iso_directory_iterator dir_iter(pDirEnt, pDirEnt + dirEntsSize); iso_directory_iterator end_iter(pDirEnt + dirEntsSize, pDirEnt + dirEntsSize); for (; dir_iter != end_iter; ++dir_iter) { const iso_file_entry& ent = *dir_iter; if (ent.flags & def_directory) { // The names "\x00" and "\x01" are used for the current directory and // the parent directory respectively. We only want to visit these // when at the root level. if (level == 0 || !(ent.filename == std::string(1, '\x00') || ent.filename == std::string(1, '\x01'))) { if (ent.data_length > iBufferSize) { iBufferSize = ent.data_length; pBuffer = std::make_unique(iBufferSize); } if (seek_to_sector(ent.data_sector) && read_data(ent.data_length, pBuffer.get())) { int iFoundLevel = find_hosp_directory(pBuffer.get(), ent.data_length, level + 1); if (iFoundLevel != 0) { if (iFoundLevel == 2) { build_file_lookup_table(ent.data_sector, ent.data_length, std::string("")); } return iFoundLevel + 1; } } } } else { // Look for VBLK-0.TAB to serve as indication that we've found the // Theme Hospital data. if (ent.filename == vblk_0_filename) { return 1; } } } return 0; } void iso_filesystem::build_file_lookup_table(const uint32_t iSector, const uint32_t dirEntsSize, const std::string_view prefix) { // Sanity check // Apart from at the root level, directory record arrays must take up whole // sectors, whose sizes are powers of two and at least 2048. // Path lengths shouldn't exceed 256 either (or at least not for the files // which we're interested in). if ((!prefix.empty() && (dirEntsSize & 0x7FF)) || (prefix.size() > 256)) return; uint8_t* pBuffer = new uint8_t[dirEntsSize]; if (!seek_to_sector(iSector) || !read_data(dirEntsSize, pBuffer)) { delete[] pBuffer; return; } uint8_t* pDirEnt = pBuffer; iso_directory_iterator dir_iter(pDirEnt, pDirEnt + dirEntsSize); iso_directory_iterator end_iter(pDirEnt + dirEntsSize, pDirEnt + dirEntsSize); for (; dir_iter != end_iter; ++dir_iter) { const iso_file_entry& ent = *dir_iter; std::string path; if (prefix.empty()) { path = ent.filename; } else { path += prefix; path += path_seperator; path += ent.filename; } if (ent.flags & def_directory) { // None of the directories which we're interested in have length 1. // This also avoids the dummy "current" and "parent" directories. if (ent.filename.size() > 1) { build_file_lookup_table(ent.data_sector, ent.data_length, path); } } else { file_metadata file{}; file.path = std::move(path); file.sector = ent.data_sector; file.size = ent.data_length; files.push_back(file); } } delete[] pBuffer; if (prefix.empty()) { // The lookup table will be ordered by the underlying ordering of the // disk. we want it sorted by the path for ease of lookup. std::sort(files.begin(), files.end(), file_metadata_less); } } void iso_filesystem::visit_directory_files( const char* sPath, void (*fnCallback)(void*, const char*, const char*), void* pCallbackData) const { std::string normalised_path = normalise(sPath); // Inefficient (better would be to binary search for first and last files // which begin with sPath), but who cares - this isn't called often for (const file_metadata& file : files) { if (normalised_path.size() < file.path.size() && std::equal(normalised_path.begin(), normalised_path.end(), file.path.begin())) { size_t filename_pos = normalised_path.size(); if (file.path.at(normalised_path.size()) == path_seperator) { ++filename_pos; } std::string filename(file.path.substr(filename_pos)); if (filename.find(path_seperator) == filename.npos) { fnCallback(pCallbackData, filename.c_str(), file.path.c_str()); } } } } iso_filesystem::file_handle iso_filesystem::find_file(const char* sPath) const { std::string normalised_path = normalise(sPath); // Standard binary search over sorted list of files int iLower = 0; int iUpper = static_cast(files.size()); while (iLower != iUpper) { int iMid = (iLower + iUpper) / 2; int iComp = normalised_path.compare(files[iMid].path); if (iComp == 0) { return iMid + 1; } else if (iComp < 0) { iUpper = iMid; } else { iLower = iMid + 1; } } return 0; } uint32_t iso_filesystem::get_file_start(file_handle iFile) const { if (iFile <= 0 || static_cast(iFile) > files.size()) return 0; else return files[iFile - 1].sector * sector_size; } uint32_t iso_filesystem::get_file_size(file_handle iFile) const { if (iFile <= 0 || static_cast(iFile) > files.size()) return 0; else return files[iFile - 1].size; } bool iso_filesystem::get_file_data(file_handle iFile, uint8_t* pBuffer) { if (iFile <= 0 || static_cast(iFile) > files.size()) { set_error("Invalid file handle."); return false; } else { return seek_to_sector(files[iFile - 1].sector) && read_data(files[iFile - 1].size, pBuffer); } } std::string_view iso_filesystem::get_error() const { return error; } bool iso_filesystem::seek_to_sector(uint32_t iSector) { int res = std::fseek(raw_file.get(), sector_size * static_cast(iSector), SEEK_SET); if (res == 0) { return true; } else { set_error("Unable to seek to sector %i.", static_cast(iSector)); return false; } } bool iso_filesystem::read_data(uint32_t iByteCount, uint8_t* pBuffer) { if (std::fread(pBuffer, 1, iByteCount, raw_file.get()) == iByteCount) return true; else { set_error("Unable to read %i bytes.", static_cast(iByteCount)); return false; } } void iso_filesystem::set_error(const char* sFormat, ...) { // Replace this implementation with std::format when adopting C++20 char err[1024]; va_list a; va_start(a, sFormat); // The valist test is buggy in this environment // (https://bugs.llvm.org/show_bug.cgi?id=41311) // NOLINTNEXTLINE(clang-analyzer-valist.Uninitialized) std::vsnprintf(err, 1024, sFormat, a); va_end(a); error = err; } CorsixTH-0.70.0/CorsixTH/Src/iso_fs.h000066400000000000000000000137611522247547500172130ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_ISO_FS_H_ #define CORSIX_TH_ISO_FS_H_ #include "config.h" #include #include #include #include #include //! Layer for reading Theme Hospital files out of an .iso disk image /*! An instance of this class can read files which contain an ISO 9660 file system (as described at http://alumnus.caltech.edu/~pje/iso9660.html and http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-119.pdf) which are typically called iso disk images. Once given a disk image, it searches for the Theme Hospital data files, and can then be used to read these data files. */ class iso_filesystem { public: /// Sector sizes can vary, but they must be powers of two, and the minimum /// size is 2048. static constexpr size_t min_sector_size = 2048; //! Load an .iso disk image and search for Theme Hospital data files /*! \param path Path to the .iso disk image to load \param pathSeparator The character to be used between components in file paths. Defaults to '/'. \throws std::runtime_error if the file could not be opened */ explicit iso_filesystem(const char* path, char pathSeparator = '/'); ~iso_filesystem() = default; //! Get the reason for the most recent failure /*! Can be called after get_file_data() return false. */ std::string_view get_error() const; using file_handle = int; //! Find a file in the loaded .iso disk image /*! If (and only if) the given file could not be found, then isHandleGood() will return false on the returned handle. */ file_handle find_file(const char* sPath) const; //! Iterate all files of the .iso disk image within a given directory /*! \param sPath The directory to iterate \param fnCallback The function to be called for each file. The first parameter to this function is pCallbackData. The second is the name of a file which is in sPath. \param pCallbackData Opaque value to be called to fnCallback. */ void visit_directory_files(const char* sPath, void (*fnCallback)(void*, const char*, const char*), void* pCallbackData) const; //! Test if a file handle from find_file() is good or is invalid static inline bool is_handle_good(file_handle x) { return x != 0; } //! Get the byte offset of the start of the file in the loaded .iso /*! \param iFile A file handle returned by find_file() */ uint32_t get_file_start(file_handle iFile) const; //! Get the size (in bytes) of a file in the loaded .iso disk image /*! \param iFile A file handle returned by find_file() */ uint32_t get_file_size(file_handle iFile) const; //! Get the contents of a file in the loaded .iso disk image /*! \param iFile A file handle returned by find_file() \param pBuffer The buffer to place the resulting data in \return true on success, false on failure - call getError() for reason */ bool get_file_data(file_handle iFile, uint8_t* pBuffer); private: struct file_metadata { std::string path; uint32_t sector; uint32_t size; }; std::unique_ptr raw_file; std::string error{}; std::vector files; long sector_size{min_sector_size}; char path_seperator; //! Set the last error, printf-style void set_error(const char* sFormat, ...); //! Seek to a logical sector of the disk image bool seek_to_sector(uint32_t iSector); //! Read data from the disk image bool read_data(uint32_t iByteCount, uint8_t* pBuffer); //! Scan the given array of directory entries for a Theme Hospital file /*! \param pDirEnt Pointer to a padded array of ISO 9660 directory entries. \param dirEntsSize The number of bytes in the directory entry array. \param level The recursion level (used to prevent infinite loops upon maliciously-formed .iso disk images). \return 0 if no Theme Hospital files were found. 1 if the given array contains a Theme Hospital data file. 2 if the given array is the top-level Theme Hospital data directory. Other values otherwise. */ int find_hosp_directory(const uint8_t* pDirEnt, const uint32_t dirEntsSize, int level); //! Build the list of Theme Hospital data files /*! \param iSector The ordinal of a logical sector containing a padded array of ISO 9660 directory entries. \param dirEntsSize The number of bytes in the directory entry array. \param prefix The path name to prepend to filenames in the directory. */ void build_file_lookup_table(uint32_t iSector, uint32_t dirEntsSize, std::string_view prefix); //! std:less like implementation for file_metadata. Based on the path. static bool file_metadata_less(const file_metadata& lhs, const file_metadata& rhs); }; #endif CorsixTH-0.70.0/CorsixTH/Src/lua.hpp000066400000000000000000000044741522247547500170530ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_LUA_HPP_ #define CORSIX_TH_LUA_HPP_ extern "C" { // IWYU pragma: begin_exports #include #include #include #include // IWYU pragma: end_exports } #if LUA_VERSION_NUM >= 502 // Quick preprocessor fixes to improve compatibility with Lua 5.2 // These definitions will already have been made if Lua 5.2 was compiled // with LUA_COMPAT_ALL defined, but we have no control over this. #ifndef lua_objlen inline size_t lua_objlen(lua_State* L, int idx) { return lua_rawlen(L, idx); } #endif #ifndef lua_equal inline int lua_equal(lua_State* L, int idx1, int idx2) { return lua_compare(L, idx1, idx2, LUA_OPEQ); } #endif #ifndef lua_lessthan inline int lua_lessthan(lua_State* L, int idx1, int idx2) { return lua_compare(L, idx1, idx2, LUA_OPLT); } #endif // Use our own replacements for lua_[sg]etfenv #ifndef lua_setfenv int luaT_setfenv52(lua_State*, int); inline int lua_setfenv(lua_State* L, int n) { return luaT_setfenv52(L, n); } #endif #ifndef lua_getfenv void luaT_getfenv52(lua_State*, int); inline void lua_getfenv(lua_State* L, int n) { luaT_getfenv52(L, n); } #endif #endif // LUA_VERSION_NUM >= 502 // LUA_OK was added in 5.2, 5.1 just used 0 #ifndef LUA_OK #define LUA_OK 0 #endif #endif // CORSIX_TH_LUA_HPP_ CorsixTH-0.70.0/CorsixTH/Src/lua_rnc.cpp000066400000000000000000000042131522247547500176770ustar00rootroot00000000000000#include "lua_rnc.h" #include "config.h" #include #include "rnc.h" #include "th_lua.h" //! Provides lua function to decompress RNC data /*! @param L Lua state where the function is called from. In lua a call to this function has one parameter which is the RNC compressed data. The return value is the decompressed data. */ namespace { int l_decompress(lua_State* L) { size_t inlen; const uint8_t* in = reinterpret_cast(luaL_checklstring(L, 1, &inlen)); // Verify that the data contains an RNC signature, and that the input // size matches the size specified in the data header. if (inlen < rnc_header_size || inlen != rnc_input_size(in)) { lua_pushnil(L); lua_pushliteral(L, "Input is not RNC compressed data"); return 2; } size_t outlen = rnc_output_size(in); // Allocate scratch area as Lua userdata so that if something horrible // happens, it'll be cleaned up by Lua's GC. Remember that most Lua API // calls can throw errors, so they all have to be wrapped with code to // detect errors and free the buffer if said buffer was not managed by Lua. void* outbuf = lua_newuserdata(L, outlen); lua_pushnil(L); switch (rnc_unpack(in, (uint8_t*)outbuf)) { case rnc_status::ok: lua_pushlstring(L, (const char*)outbuf, outlen); return 1; case rnc_status::file_is_not_rnc: lua_pushliteral(L, "Input is not RNC compressed data"); break; case rnc_status::huf_decode_error: lua_pushliteral(L, "Invalid Huffman coding"); break; case rnc_status::file_size_mismatch: lua_pushliteral(L, "Size mismatch"); break; case rnc_status::packed_crc_error: lua_pushliteral(L, "Incorrect packed CRC"); break; case rnc_status::unpacked_crc_error: lua_pushliteral(L, "Incorrect unpacked CRC"); break; default: lua_pushliteral(L, "Unknown error decompressing RNC data"); break; } return 2; } constexpr std::array rnclib{ {{"decompress", l_decompress}, {nullptr, nullptr}}}; } // namespace int luaopen_rnc(lua_State* L) { luaT_register(L, "rnc", rnclib); return 1; } CorsixTH-0.70.0/CorsixTH/Src/lua_rnc.h000066400000000000000000000001601522247547500173410ustar00rootroot00000000000000#ifndef CORSIX_TH_LUA_RNC #define CORSIX_TH_LUA_RNC #include "lua.hpp" int luaopen_rnc(lua_State* L); #endif CorsixTH-0.70.0/CorsixTH/Src/lua_sdl.h000066400000000000000000000037421522247547500173520ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_LUA_SDL_H_ #define CORSIX_TH_LUA_SDL_H_ #include #include "lua.hpp" // SDL event codes used for delivering custom events to l_mainloop in // sdl_core.cpp // SDL_USEREVENT_TICK - informs script of a timer tick #define SDL_USEREVENT_TICK (SDL_USEREVENT + 0) // SDL_USEREVENT_MUSIC_OVER - informs script of SDL_Mixer music finishing #define SDL_USEREVENT_MUSIC_OVER (SDL_USEREVENT + 1) // SDL_USEREVENT_MUSIC_LOADED - informs script that async music is loaded #define SDL_USEREVENT_MUSIC_LOADED (SDL_USEREVENT + 2) // SDL USEREVENT_MOVIE_OVER - informs script of THMovie movie finishing #define SDL_USEREVENT_MOVIE_OVER (SDL_USEREVENT + 3) // SDL_USEREVENT_SOUND_OVER - informs script of a played sound finishing. #define SDL_USEREVENT_SOUND_OVER (SDL_USEREVENT + 4) constexpr int usertick_period_ms = 18; int luaopen_sdl(lua_State* L); int l_load_music_async_callback(lua_State* L); #endif // CORSIX_TH_LUA_SDL_H_ CorsixTH-0.70.0/CorsixTH/Src/main.cpp000066400000000000000000000160271522247547500172060ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #include #include #include #include #include #include "lua.hpp" #include "lua_rnc.h" #include "lua_sdl.h" #include "persist_lua.h" #include "th_lua.h" #ifdef CORSIX_TH_SEARCH_LOCAL_DATADIRS #include #include "../../libs/whereami/whereami.h" #endif // Config file checking #ifndef CORSIX_TH_USE_PACK_PRAGMAS #error "config.h is out of date - please rerun CMake" #endif // End of config file checking extern "C" { int luaopen_random(lua_State* L); #ifdef CORSIX_TH_LINK_LUA_MODULES int luaopen_lfs(lua_State* L); int luaopen_lpeg(lua_State* L); #endif } namespace { bool file_exists(const std::filesystem::path& f) { const std::filesystem::file_status st = std::filesystem::status(f); return std::filesystem::exists(st) && !std::filesystem::is_directory(st); } std::string search_script_file(lua_State* L) { // 1. Check for --interpreter const int iNArgs = lua_gettop(L); for (int i = 1; i <= iNArgs; ++i) { if (lua_type(L, i) == LUA_TSTRING) { std::string_view interpreterPrefix("--interpreter="); std::string_view arg = lua_tolstring(L, i, nullptr); if (arg.substr(0, interpreterPrefix.size()) == interpreterPrefix) return std::string(arg.substr(interpreterPrefix.size())); } } #ifdef CORSIX_TH_SEARCH_LOCAL_DATADIRS // 2. Find CorsixTH.lua in working dir and program dir static constexpr std::array asSearchDirs{ "./", "CorsixTH/", "Contents/Resources/", "../Resources/", "../share/corsix-th/", }; std::string strProgramDir; { int iProgramPathLength = wai_getExecutablePath(nullptr, 0, nullptr); if (iProgramPathLength != 0) { char* sProgramDir = new char[iProgramPathLength + 1]; int iProgramDirLength; int iProgramPathLengthReal = wai_getExecutablePath( sProgramDir, iProgramPathLength, &iProgramDirLength); if (iProgramPathLengthReal != iProgramPathLength || iProgramPathLength <= iProgramDirLength) { if (iProgramPathLengthReal != iProgramPathLength) std::fprintf(stderr, "Path length of CorsixTH binary changed?!?! " "Old: %d, new: %d.\n", iProgramPathLength, iProgramPathLengthReal); else std::fprintf(stderr, "Path to CorsixTH looks like a directory?!?! " "Path is: '%s'.\n", sProgramDir); std::fprintf(stderr, "Please report this incident!\n"); std::fflush(stderr); exit(255); } sProgramDir[iProgramDirLength] = '/'; sProgramDir[iProgramDirLength + 1] = '\0'; strProgramDir = sProgramDir; delete[] sProgramDir; } } for (auto sSearchDir : asSearchDirs) { std::string strPathInWorkingDir = std::string(sSearchDir) + CORSIX_TH_INTERPRETER_NAME; if (file_exists(strPathInWorkingDir)) return strPathInWorkingDir; if (!strProgramDir.empty()) { std::string strPathInProgramDir = strProgramDir + strPathInWorkingDir; if (file_exists(strPathInProgramDir)) return strPathInProgramDir; } } #endif // 3. Check CORSIX_TH_INTERPRETER_PATH if (file_exists(CORSIX_TH_INTERPRETER_PATH)) return CORSIX_TH_INTERPRETER_PATH; return ""; } } // namespace int lua_init_no_eval(lua_State* L) { // assert(_VERSION == LUA_VERSION) size_t iLength; lua_getglobal(L, "_VERSION"); const char* sVersion = lua_tolstring(L, -1, &iLength); if (iLength != std::strlen(LUA_VERSION) || std::strcmp(sVersion, LUA_VERSION) != 0) { lua_pushliteral( L, "Linked against a version of Lua different to the one used " "when compiling.\nPlease recompile CorsixTH against the same " "Lua version it is linked against."); return lua_error(L); } lua_pop(L, 1); // math.random* = Mersenne twister variant luaT_cpcall(L, luaopen_random, nullptr); // Fill in package.preload table so that calls to require("X") from Lua // will call the appropriate luaopen_X function in C. preload_lua_package(L, "rnc", luaopen_rnc); preload_lua_package(L, "TH", luaopen_th); preload_lua_package(L, "persist", luaopen_persist); preload_lua_package(L, "sdl", luaopen_sdl); #ifdef CORSIX_TH_LINK_LUA_MODULES preload_lua_package(L, "lfs", luaopen_lfs); preload_lua_package(L, "lpeg", luaopen_lpeg); #endif // require "debug" (Harmless in Lua 5.1, useful in 5.2 for compatibility) luaT_execute(L, "require \"debug\""); auto scriptFilePath = search_script_file(L); if (scriptFilePath.empty()) { std::fprintf(stderr, "CorsixTH cannot find CorsixTH.lua. If you want use a custom " "location, specify it by --interpreter=FILE\n"); std::fflush(stderr); exit(1); } lua_getglobal(L, "assert"); lua_getglobal(L, "loadfile"); lua_pushstring(L, scriptFilePath.c_str()); lua_call(L, 1, 2); lua_call(L, 2, 1); lua_insert(L, 1); return lua_gettop(L); } int lua_init(lua_State* L) { lua_call(L, lua_init_no_eval(L) - 1, LUA_MULTRET); return lua_gettop(L); } int lua_stacktrace(lua_State* L) { // err = tostring(err) lua_settop(L, 1); lua_getglobal(L, "tostring"); lua_insert(L, 1); lua_call(L, 1, 1); // err = .. err lua_pushliteral(L, "An error has occurred in CorsixTH:\n"); lua_insert(L, 1); lua_concat(L, 2); // return debug.traceback(err, 2) lua_getglobal(L, "debug"); lua_getfield(L, -1, "traceback"); lua_pushvalue(L, 1); lua_pushinteger(L, 2); lua_call(L, 2, 1); return 1; } int lua_panic(lua_State* L) { std::fprintf(stderr, "A Lua error has occurred in CorsixTH outside of protected " "mode!\n"); std::fflush(stderr); if (lua_type(L, -1) == LUA_TSTRING) std::fprintf(stderr, "%s\n", lua_tostring(L, -1)); else std::fprintf(stderr, "%p\n", lua_topointer(L, -1)); std::fflush(stderr); // A stack trace would be nice, but they cannot be done in a panic. return 0; } CorsixTH-0.70.0/CorsixTH/Src/main.h000066400000000000000000000046521522247547500166540ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_MAIN_H_ #define CORSIX_TH_MAIN_H_ #include "lua.hpp" //! Lua mode entry point /*! Performs initialization tasks for setting up the lua environment, and then calls the main lua entry point: CorsixTH.lua or an alternative script passed in via the command line. \see lua_init_no_eval */ int lua_init(lua_State* L); //! Alternative lua mode entry point /*! Performs initialization tasks for setting up the lua environment, including preloading libraries and registering C functions; verifying the lua runtime version matches; and preparing the stack to call CorsixTH.lua or an alternate Lua entry script passed via the command line. */ int lua_init_no_eval(lua_State* L); //! Process a caught error before returning it to the caller /*! Processing of the error message is done here so that a stack trace can be added before the stack is unwound, and so that if an error occurs while processing the error, the caller receives LUA_ERRERR rather than panicking while processing it itself. */ int lua_stacktrace(lua_State* L); //! Process an uncaught Lua error before aborting /*! Lua errors shouldn't occur outside of protected mode, and there isn't much which can be done when they do, but at least the user should be informed, and the error message printed. */ int lua_panic(lua_State* L); #endif // CORSIX_TH_MAIN_H_ CorsixTH-0.70.0/CorsixTH/Src/midi_player.cpp000066400000000000000000000426701522247547500205630ustar00rootroot00000000000000/* Copyright (c) 2025 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "midi_player.h" #include "config.h" #include #include #include #include #include #include "lua_sdl.h" #include "xmi2mid.h" #ifdef WITH_MIDI_DEVICE namespace { /** * The MIDI application name. On some APIs this along with the port name is used * to identify the source. */ const std::string midi_application_name("corsixth"); /** * The friendly name to use for the Virtual Port option in CorsixTH. This name * is not passed to the MIDI APIs. */ const char* const midi_virtual_port_name = "Virtual Port"; /** * Number of MIDI channels. The MIDI 1.0 specification specifies 16. */ constexpr unsigned int midi_channels = 16; /** * The maximum volume that can be set on in a MIDI channel message. The * MIDI specification defines the channel volume ranges as 0-127. */ constexpr uint8_t midi_max_channel_volume = 127; /** * Convert a string representation of a MIDI api to the matching RtMidi::Api */ RtMidi::Api midi_api_from_string(std::string_view apiName) { if (apiName.empty() || apiName == "Native") { return RtMidi::UNSPECIFIED; } if (apiName == "ALSA") { return RtMidi::LINUX_ALSA; } if (apiName == "JACK") { return RtMidi::UNIX_JACK; } if (apiName == "CoreMIDI") { return RtMidi::MACOSX_CORE; } if (apiName == "Windows MM") { return RtMidi::WINDOWS_MM; } if (apiName == "Web MIDI API") { return RtMidi::WEB_MIDI_API; } #if RTMIDI_MAJOR_VERSION > 5 if (apiName == "Windows UWP") { return RtMidi::WINDOWS_UWP; } if (apiName == "Android AMidi") { return RtMidi::ANDROID_AMIDI; } #endif throw std::invalid_argument("Unknown API name"); } /** * Return whether the given RtMidi API supports the openVirtualPort method. * *\see https://caml.music.mcgill.ca/~gary/rtmidi/index.html#virtual */ bool api_supports_virtual_port(RtMidi::Api api) { switch (api) { case RtMidi::MACOSX_CORE: case RtMidi::LINUX_ALSA: case RtMidi::UNIX_JACK: return true; default: return false; } } /** * Send MIDI events to stop the currently playing audio. * * Sends three channel codes on all MIDI channels: all notes off, all sound off, * and reset controllers. The song cannot be resumed from its current state * because of the reset. * * \param midi_out The midi library */ void send_stop_playback(RtMidiOut& midi_out) { std::vector buffer(3); for (unsigned int channel = 0; channel < midi_channels; ++channel) { buffer[0] = static_cast(midi_event_control_change | channel); buffer[2] = 0x00; buffer[1] = midi_channel_code_all_notes_off; midi_out.sendMessage(&buffer); buffer[1] = midi_channel_code_all_sound_off; midi_out.sendMessage(&buffer); buffer[1] = midi_channel_code_reset_controllers; midi_out.sendMessage(&buffer); } } /** * Send MIDI event to temporarily stop the currently playing audio. * * Uses a MIDI all note off control event on each channel to stop the currently * playing note. * * \param midi_out The midi library */ void send_all_notes_off(RtMidiOut& midi_out) { std::vector buffer(3); for (unsigned int channel = 0; channel < midi_channels; ++channel) { buffer[0] = static_cast(midi_event_control_change | channel); buffer[1] = midi_channel_code_all_notes_off; buffer[2] = 0x00; midi_out.sendMessage(&buffer); } } /** * Sends a message to enable GM mode. * * From the MIDI 1.0 Detailed Specification: General MIDI System Messages */ void send_gsm_enable(RtMidiOut& midi_out) { std::vector buffer; buffer.push_back(midi_event_sysex); buffer.push_back(0x7E); // Non-realtime buffer.push_back(0x7F); // All devices buffer.push_back(0x09); // General MIDI buffer.push_back(0x01); // Enable buffer.push_back(midi_event_end_of_sysex); midi_out.sendMessage(&buffer); } /** * Sends the master volume level. * * From the MIDI 1.0 Detailed Specification: Device Control * \param midi_out The MIDI output library * \param volume The volume level, in the range 0.0 (silent) to 1.0 (maximum) */ void send_master_volume(RtMidiOut& midi_out, double volume) { // unsigned 14-bit max constexpr int midi_max_master_volume = 16383; uint16_t vol14bit = std::clamp(static_cast(volume * midi_max_master_volume), 0, midi_max_master_volume); std::vector buffer; buffer.push_back(midi_event_sysex); buffer.push_back(0x7F); // Realtime buffer.push_back(0x7F); // All devices buffer.push_back(0x04); // Device Control buffer.push_back(0x01); // Master Volume buffer.push_back(vol14bit & 0x7F); // Volume (7 least significant bits) buffer.push_back((vol14bit >> 7) & 0x7F); // Volume (7 most significant bits) buffer.push_back(midi_event_end_of_sysex); midi_out.sendMessage(&buffer); } /** * Adjust all channel volumes relative to a given master sound volume level * * Calculates a channel control volume relative to the passed in channel volume * using the provided master volume and sends a control message to the MIDI * channels adjusting the volume. * * \param midi_out The midi output library * \param channel_volumes The currently set unadjusted channel volumes from the * midi track (between 0 and 127 per the MIDI spec). * \param volume The target volume level between 0 and 1. */ void send_control_change_volume(RtMidiOut& midi_out, std::vector channel_volumes, double volume) { if (channel_volumes.size() != midi_channels) { throw std::invalid_argument("channel_volumes must have 16 elements"); } std::vector buffer(3); for (unsigned int channel = 0; channel < midi_channels; ++channel) { uint8_t vol7bit = std::clamp(static_cast(volume * channel_volumes[channel]), 0, static_cast(midi_max_channel_volume)); buffer[0] = static_cast(midi_event_control_change | channel); buffer[1] = midi_control_code_volume; buffer[2] = vol7bit; midi_out.sendMessage(&buffer); } } /** * Set the channel volume to a level proportional to the given master volume. * * This function is intended to be called before playback, during playback the * song may have adjusted the volume of one or more channels which would sound * off if reset to the master volume. * * \param midi_out The midi output library * \param volume The master volume between 0 and 1 */ void send_control_change_volume(RtMidiOut& midi_out, double volume) { send_control_change_volume( midi_out, std::vector(midi_channels, midi_max_channel_volume), volume); } /** * Send an SDL event indicating that the track is over */ void midi_music_over_callback() { SDL_Event e; e.type = SDL_USEREVENT_MUSIC_OVER; SDL_PushEvent(&e); } } // namespace void player_command_queue::push(player_command cmd) { std::unique_lock lock(mut); queue.push(cmd); cv.notify_one(); } player_command player_command_queue::pop(bool blocking) { std::unique_lock lock(mut); while (blocking && queue.empty()) { cv.wait(lock); } if (queue.empty()) { return player_command::noop; } player_command cmd = queue.front(); queue.pop(); return cmd; } void player_command_queue::clear() { std::unique_lock lock(mut); while (!queue.empty()) { queue.pop(); } } struct playback_state { midi_player& player; player_command_queue& command_queue; midi_token_list events; size_t current_event_index{0}; //! Start time, adjusted for any pauses std::chrono::time_point adjusted_start_time{ std::chrono::steady_clock::now()}; explicit playback_state(midi_player& player, player_command_queue& command_queue, midi_token_list&& events) : player{player}, command_queue{command_queue}, events{std::move(events)} {} }; midi_player::midi_player(std::string_view api, std::string_view device_name, bool use_sysex_master_volume) : midi_out{std::make_unique(midi_api_from_string(api), midi_application_name)}, use_master_volume_sysex{use_sysex_master_volume} { set_port(device_name); } midi_player::~midi_player() { stop(); } std::vector midi_player::api_list() { std::vector apis; RtMidi::getCompiledApi(apis); std::vector apiStrings; for (RtMidi::Api api : apis) { switch (api) { case RtMidi::LINUX_ALSA: apiStrings.emplace_back("ALSA"); break; case RtMidi::UNIX_JACK: apiStrings.emplace_back("JACK"); break; case RtMidi::MACOSX_CORE: apiStrings.emplace_back("CoreMIDI"); break; case RtMidi::WINDOWS_MM: apiStrings.emplace_back("Windows MM"); break; case RtMidi::WEB_MIDI_API: apiStrings.emplace_back("Web MIDI API"); break; #if RTMIDI_VERSION_MAJOR > 5 case RtMidi::WINDOWS_UWP: apiStrings.emplace_back("Windows UWP"); break; case RtMidi::ANDROID_AMIDI: apiStrings.emplace_back("Android AMidi"); break; #endif case RtMidi::RTMIDI_DUMMY: case RtMidi::UNSPECIFIED: case RtMidi::NUM_APIS: // These should not be selectable break; } } return apiStrings; } std::vector midi_player::port_list() const { unsigned int pc = midi_out->getPortCount(); std::vector devices; devices.reserve(pc); for (unsigned int i = 0; i < pc; i++) { devices.push_back(midi_out->getPortName(i)); } // A few APIs support virtual ports, add those too if (api_supports_virtual_port(midi_out->getCurrentApi())) { devices.emplace_back(midi_virtual_port_name); } return devices; } void midi_player::set_port(std::string_view device_name) { std::unique_lock lock(midi_out_mutex); if (device_name.empty()) { open_default_port(); return; } for (unsigned int i = 0; i < midi_out->getPortCount(); i++) { if (midi_out->getPortName(i) == device_name) { port.emplace(*midi_out, i); return; } } if (device_name == midi_virtual_port_name) { port.emplace(*midi_out, midi_virtual_port_index); return; } std::fprintf(stderr, "MIDI device not found: %s\n", std::string(device_name).c_str()); } void midi_player::play_xmi(const unsigned char* xmi_data, size_t xmi_length) { if (!is_port_open()) { std::fprintf(stderr, "No MIDI port is open for playback\n"); return; } uint32_t tempo; midi_token_list events = xmi_to_midi_token_list(xmi_data, xmi_length, tempo); playback_state song(*this, command_queue, std::move(events)); stop(); playback_thread = std::thread(playback_loop, std::move(song)); } void midi_player::set_volume(double v) { volume.store(v); command_queue.push(player_command::set_volume); } void midi_player::stop() { if (playback_thread.joinable()) { command_queue.push(player_command::stop); playback_thread.join(); } command_queue.clear(); std::unique_lock lock(midi_out_mutex); if (is_port_open()) { send_stop_playback(*midi_out); } } void midi_player::pause() { command_queue.push(player_command::pause); } void midi_player::resume() { command_queue.push(player_command::resume); } void midi_player::open_default_port() { for (unsigned int i = 0; i < midi_out->getPortCount(); i++) { try { port.emplace(*midi_out, i); return; } catch (RtMidiError& err) { // Ignore errors finding a port std::fprintf(stderr, "Failed to open MIDI port %u: %s\n", i, err.getMessage().c_str()); } } if (api_supports_virtual_port(midi_out->getCurrentApi())) { try { port.emplace(*midi_out, midi_virtual_port_index); } catch (RtMidiError& err) { std::fprintf(stderr, "Failed to open Virtual MIDI port: %s\n", err.getMessage().c_str()); } } std::fprintf(stderr, "No suitable MIDI output port found\n"); } bool midi_player::is_port_open() const { return port.has_value() && (port->is_virtual() || midi_out->isPortOpen()); } void midi_player::init_playback(playback_state& state) { std::unique_lock lock(state.player.midi_out_mutex); if (!state.player.is_port_open()) { // Should not be possible due to checks before starting playback throw std::runtime_error("MIDI port is not open for playback"); } send_gsm_enable(*state.player.midi_out); if (state.player.use_master_volume_sysex) { send_master_volume(*state.player.midi_out, state.player.volume.load()); } else { send_control_change_volume(*state.player.midi_out, state.player.volume.load()); } state.adjusted_start_time = std::chrono::steady_clock::now(); } void midi_player::playback_loop(playback_state&& state) { try { init_playback(state); } catch (std::exception& e) { fprintf(stderr, "Aborting MIDI playback: %s", e.what()); return; } bool paused = false; std::chrono::time_point pause_time; std::vector msg_buffer; std::vector channel_volumes(midi_channels, midi_max_channel_volume); while (state.current_event_index < state.events.size()) { // Block for commands if paused, otherwise just check for them const player_command cmd = state.command_queue.pop(paused); switch (cmd) { case player_command::stop: return; case player_command::pause: { paused = true; pause_time = std::chrono::steady_clock::now(); std::unique_lock lock(state.player.midi_out_mutex); send_all_notes_off(*state.player.midi_out); } break; case player_command::resume: if (paused) { paused = false; auto pause_duration = std::chrono::steady_clock::now() - pause_time; state.adjusted_start_time += pause_duration; } break; case player_command::set_volume: if (state.player.use_master_volume_sysex) { send_master_volume(*state.player.midi_out, state.player.volume.load()); } else { send_control_change_volume(*state.player.midi_out, channel_volumes, state.player.volume.load()); } break; case player_command::noop: // No operation break; } if (paused) { continue; } const midi_token& event = state.events[state.current_event_index]; if (event.type == midi_event_meta && event.data == midi_meta_event_end_of_track) { break; } std::chrono::microseconds event_time_microseconds{ static_cast(event.time * xmi_microseconds_per_tick)}; std::chrono::duration event_wait = state.adjusted_start_time - std::chrono::steady_clock::now() + event_time_microseconds; if (event_wait.count() > 0) { std::this_thread::sleep_for(event_wait); } if (event.type == midi_event_meta) { // Skip meta events except end of track state.current_event_index++; continue; } msg_buffer.clear(); msg_buffer.push_back(event.type); msg_buffer.push_back(event.data); if (!event.buffer.empty()) { msg_buffer.insert(msg_buffer.end(), event.buffer.begin(), event.buffer.end()); } // Adjust the volume defined in the MIDI track for the channel by the // currently set player volume if not using sysex mode. if ((event.type & 0xF0) == midi_event_control_change && event.data == midi_control_code_volume && msg_buffer.size() == 3 && !state.player.use_master_volume_sysex) { // Store the raw channel volume in case the user changes the volume level // while playing. channel_volumes[event.type & 0x0F] = msg_buffer[2]; msg_buffer[2] = static_cast(std::clamp( static_cast(msg_buffer[2] * state.player.volume.load()), 0, static_cast(midi_max_channel_volume))); } #ifdef MIDI_DEVICE_DEBUG if ((event.type & 0xF0) != midi_event_note_on) { std::printf("Midi event:"); for (auto b : msg_buffer) { std::printf(" %02x", b); } std::printf("\n"); } #endif std::unique_lock lock(state.player.midi_out_mutex); state.player.midi_out->sendMessage(&msg_buffer); state.current_event_index++; } midi_music_over_callback(); } #endif // WITH_MIDI_DEVICE CorsixTH-0.70.0/CorsixTH/Src/midi_player.h000066400000000000000000000205331522247547500202220ustar00rootroot00000000000000/* Copyright (c) 2025 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_MIDI_PLAYER_H #define CORSIX_TH_MIDI_PLAYER_H #include "config.h" #ifdef WITH_MIDI_DEVICE #include #include #include #include #include #include #include #include #include #include struct playback_state; /** * An index representing the virtual port */ constexpr unsigned int midi_virtual_port_index = UINT_MAX; /** * The port name for the corsixth source */ const char* const midi_external_port_name = "midi_out"; /** * Holds a MIDI port open for the lifetime of the object and releases it after. * * Instances of this class must not out-live the midi_out they reference. */ class open_midi_port { public: /** * Open the given port on midi_out * @param midi_out The midi library * @param port The RtMidiOut port index, or midi_virtual_port_index for a * virtual port. */ open_midi_port(RtMidiOut& midi_out, unsigned int port) : midi_out(midi_out), port(port) { if (port == midi_virtual_port_index) { midi_out.openVirtualPort(midi_external_port_name); } else { midi_out.openPort(port, midi_external_port_name); } } open_midi_port(const open_midi_port&) = delete; open_midi_port& operator=(const open_midi_port&) = delete; open_midi_port(const open_midi_port&&) = delete; open_midi_port& operator=(const open_midi_port&&) = delete; /** * Release the open port */ ~open_midi_port() { midi_out.closePort(); } /** * True if the port is virtual (midi_virtual_port_index) */ bool is_virtual() const { return port == midi_virtual_port_index; } /** * The owned port index */ unsigned int get_port() const { return port; } private: /// Reference to MIDI API RtMidiOut& midi_out; /// Owned/opened port index unsigned int port; }; /** * Commands between the midi_player and the playback thread */ enum class player_command { /// Stop MIDI playback stop, /// Pause MIDI playback with the intention to resume from the same point pause, /// Resume MIDI playback after pause resume, /// Adjust the master volume level, based on the currently set value in /// midi_player set_volume, /// Continue processing as if there was no command noop }; /** * A thread safe queue of player_command with optional blocking on pop * * For sharing commands between the playback thread and the main thread. */ class player_command_queue { public: /** * Push a command to the back of the queue * @param command The command to push */ void push(player_command command); /** * Pop a command off the queue * * Waits if the queue is empty and blocking is set to true. * @param blocking Whether to block and wait for a command if the queue is * empty * @return The command at the front of the queue, or noop if the queue is * empty. */ player_command pop(bool blocking); /** * Empty the queue */ void clear(); private: /// Mutex to guard the queue std::mutex mut{}; /// The queue std::queue queue{}; /// Condition to wait on when empty and notify when populated std::condition_variable cv{}; }; /** * Control class for playing MIDI */ class midi_player { public: /** * Initialize a connection on a given MIDI API and port for playing CorsixTH * XMI files * * @param api The MIDI API to use, one of: * \li or "Native" - Any available API * \li "ALSA" - Linux ALSA * \li "JACK" - JACK on Linux and Unix where available * \li "CoreMIDI" - MacOS CoreMIDI * \li "Windows MM" - Windows MIDI Api * \li "Web MIDI API" - Web MIDI API * \li "Windows UWP" - Universal Windows Platform MIDI API (RtMidi 6+) * \li "Android AMIDI" - Android MIDI API (AMIDI) (RtMidi 6+) * * Use media_player::api_list() to find the list available for the target * device * * @param port_name The MIDI port name to connect to. Empty string will * connect to any available port. A list can be obtained from * midi_player::port_list(). The list depends on the selected api. * * @param use_master_volume_sysex If true volume is assigned using the master * volume sysex sequence. If false then the volume is set by relatively * adjusting the control volumes of each channel during playback. Many * synthesizers do not support the master volume sysex. */ midi_player(std::string_view api, std::string_view port_name, bool use_master_volume_sysex); midi_player(const midi_player&) = delete; midi_player& operator=(const midi_player&) = delete; ~midi_player(); /** * List of available APIs on the target */ static std::vector api_list(); /** * List of available port names for the current API */ std::vector port_list() const; /** * Change the currently connected port * * \see midi_player:port_list() */ void set_port(std::string_view port_name); /** * Set the relative playback volume * @param volume volume between 0 and 1 */ void set_volume(double volume); /** * Play the given XMI file * @param xmi_data The raw bytes of the uncompressed XMI file * @param xmi_length The length of the data */ void play_xmi(const unsigned char* xmi_data, size_t xmi_length); /** * Stop the currently playing MIDI track * * Resets the MIDI device and stops the playback thread. */ void stop(); /** * Pause the currently playing MIDI track */ void pause(); /** * Resume the current MIDI track if paused */ void resume(); private: /** * Open the first successful MIDI output port, or a virtual port if supported. * * It is assumed that midi_out_mutex is held by the caller. */ void open_default_port(); /** * Return true if the MIDI port is open both according to our code and the * RtMidi library. * * \remark RtMidi isPortOpen always returns false on virtual ports. This * method returns true if we expect a virtual port to be open. */ bool is_port_open() const; /** * Setup the MIDI device for playback * * \remark Intended to be called from the playback thread * @param state Playback data for the current song */ static void init_playback(playback_state& state); /** * Play a MIDI song until completion or interruption by a stop command * * \remark Intended to be the target of the playback thread * @param state Playback data for the current song */ static void playback_loop(playback_state&& state); /// The MIDI library std::unique_ptr midi_out; /// Port currently in use if any std::optional port; /// The thread that runs the playback_loop while the MIDI is playing or paused std::thread playback_thread{}; /// Queue for communicating between the main thread and the playback thread player_command_queue command_queue{}; /// The currently assigned music volume std::atomic volume{1.0}; /// Whether to use sysex master volume, if true or control volume (CC 7), if /// false bool use_master_volume_sysex{false}; /// Mutex to prevent race conditions on access to midi_out std::mutex midi_out_mutex{}; }; #else // WITH_MIDI_DEVICE class midi_player {}; #endif // WITH_MIDI_DEVICE #endif // CORSIX_TH_MIDI_PLAYER_H CorsixTH-0.70.0/CorsixTH/Src/persist_lua.cpp000066400000000000000000001247711522247547500206220ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "persist_lua.h" #include "config.h" #include #include #include #include #include #include #include #include #include "lua.hpp" #include "th_lua.h" #ifdef _MSC_VER #pragma warning( \ disable : 4996) // Disable "std::strcpy unsafe" warnings under MSVC #endif namespace { enum persist_type { // LUA_TNIL = 0, // LUA_TBOOLEAN, // Used for false // LUA_TLIGHTUSERDATA, // Not currently persisted // LUA_TNUMBER, // LUA_TSTRING, // LUA_TTABLE, // Used for tables without metatables // LUA_TFUNCTION, // Used for Lua closures // LUA_TUSERDATA, // LUA_TTHREAD, // Not currently persisted PERSIST_TPERMANENT = LUA_TTHREAD + 1, PERSIST_TTRUE, PERSIST_TTABLE_WITH_META, PERSIST_TINTEGER, PERSIST_TPROTOTYPE, PERSIST_TRESERVED1, // Not currently used PERSIST_TRESERVED2, // Not currently used PERSIST_TCOUNT, // must equal 16 (for compatibility) }; template int l_crude_gc(lua_State* L) { // This __gc metamethod does not verify that the given value is the correct // type of userdata, or that the value is userdata at all. static_cast(lua_touserdata(L, 1))->~T(); return 0; } } // namespace constexpr size_t load_multi_buffer_capacity = 3; //! Structure for loading multiple strings as a Lua chunk, avoiding //! concatenation /*! luaL_loadbuffer() is a good way to load a string as a Lua chunk. If there are several strings which need to be concatenated before being loaded, then it can be more efficient to call lua_load with a callback function for loading the strings one at a time than to concatenate the strings into a single buffer. This class provides the data structure and callback function to do this. ``` load_multi_buffer ls; ls.piece[0] = lua_tolstring(L, -2, &ls.piece_size[0]); ls.piece[1] = lua_tolstring(L, -1, &ls.piece_size[1]); luaT_load(L, load_multi_buffer::load_fn, &ls, "chunk name", "bt"); ``` Because of the api of lua_tolstring the API of this class allows direct and independent assignment of the chunk pieces and their sizes. It is up to the caller to keep track of how many pieces are used and to ensure that no more than load_multi_buffer_capacity pieces are used. */ class load_multi_buffer { public: /// lua_Reader callback function for lua_load or luaT_load /*! Called repeatedly by lua to get the next piece of data to load until a null pointer is returned. \param L The Lua state \param ud Pointer to the load_multi_buffer instance \param size Pointer to size_t to receive the size of the returned string \see https://www.lua.org/manual/5.4/manual.html#lua_Reader */ static const char* load_fn(lua_State* L, void* ud, size_t* size) { auto* me = static_cast(ud); // Skip empty chunks if any which would cause lua_load to stop early while (me->n < load_multi_buffer_capacity && me->piece_size[me->n] == 0) { ++me->n; } if (me->n < load_multi_buffer_capacity) { *size = me->piece_size[me->n]; return me->piece[me->n++]; } *size = 0; return nullptr; } /// Insert the given chunk at the given index in the buffer void insert(std::string_view piece, size_t index) { this->piece[index] = piece.data(); this->piece_size[index] = piece.size(); } /// Pieces of the lua code chunk to be loaded. const char* piece[load_multi_buffer_capacity]{nullptr}; /// Lengths of the pieces. size_t piece_size[load_multi_buffer_capacity]{}; private: /// The next piece index to be loaded int n{}; }; //! Basic implementation of persistence interface /*! self - Instance of lua_persist_basic_writer allocated as a Lua userdata self metatable: `__gc` - ~lua_persist_basic_writer (via l_crude_gc) `:` - index of function prototype in already written data [1] - pre-populated prototype persistence names `:` - `` err - an object which could not be persisted self environment: `` - index of object in already written data [1] - permanents table self environment metatable */ class lua_persist_basic_writer : public lua_persist_writer { public: explicit lua_persist_basic_writer(lua_State* L) : L(L) {} ~lua_persist_basic_writer() override = default; lua_State* get_stack() override { return L; } void init() { lua_createtable(L, 1, 8); // Environment lua_pushvalue(L, 2); // Permanent objects lua_rawseti(L, -2, 1); lua_createtable(L, 1, 0); // Environment metatable lua_setmetatable(L, -2); lua_setfenv(L, 1); lua_createtable(L, 1, 4); // Metatable luaT_pushcclosure(L, l_crude_gc, 0); lua_setfield(L, -2, "__gc"); lua_pushvalue(L, luaT_upvalueindex(1)); // Prototype persistence names lua_rawseti(L, -2, 1); lua_setmetatable(L, 1); } int finish() { if (get_error() != nullptr) { lua_pushnil(L); lua_pushstring(L, get_error()); lua_getmetatable(L, 1); lua_getfield(L, -1, "err"); lua_replace(L, -2); return 3; } else { lua_pushlstring(L, data.c_str(), data.length()); return 1; } } void fast_write_stack_object(int iIndex) override { if (lua_type(L, iIndex) != LUA_TUSERDATA) { write_stack_object(iIndex); return; } // Convert index from relative to absolute if (iIndex < 0 && iIndex > LUA_REGISTRYINDEX) iIndex = lua_gettop(L) + 1 + iIndex; // Check for no cycle lua_getfenv(L, 1); lua_pushvalue(L, iIndex); lua_rawget(L, -2); lua_rawgeti(L, -2, 1); lua_pushvalue(L, iIndex); lua_gettable(L, -2); lua_replace(L, -2); if (!lua_isnil(L, -1) || !lua_isnil(L, -2)) { lua_pop(L, 3); write_stack_object(iIndex); return; } lua_pop(L, 2); // Save the index to the cache lua_pushvalue(L, iIndex); lua_pushnumber(L, (lua_Number)(next_index++)); lua_settable(L, -3); if (!check_that_userdata_can_be_depersisted(iIndex)) return; // Write type, metatable, and then environment uint8_t iType = LUA_TUSERDATA; write_byte_stream(&iType, 1); write_stack_object(-1); lua_getfenv(L, iIndex); write_stack_object(-1); lua_pop(L, 1); // Write the raw data if (lua_type(L, -1) == LUA_TTABLE) { lua_getfield(L, -1, "__persist"); if (lua_isnil(L, -1)) lua_pop(L, 1); else { lua_pushvalue(L, iIndex); lua_checkstack(L, 20); lua_CFunction fn = lua_tocfunction(L, -2); fn(L); lua_pop(L, 2); } } write_uint((uint64_t)0x42); // sync marker lua_pop(L, 1); } void write_stack_object(int iIndex) override { // Convert index from relative to absolute if (iIndex < 0 && iIndex > LUA_REGISTRYINDEX) iIndex = lua_gettop(L) + 1 + iIndex; if (lua_type(L, 2) != LUA_TTABLE) { luaL_error(L, "Permanents table was lost!"); } // Basic types always have their value written int iType = lua_type(L, iIndex); if (iType == LUA_TNIL || iType == LUA_TNONE) { uint8_t iByte = LUA_TNIL; write_byte_stream(&iByte, 1); } else if (iType == LUA_TBOOLEAN) { uint8_t iByte; if (lua_toboolean(L, iIndex)) iByte = PERSIST_TTRUE; else iByte = LUA_TBOOLEAN; write_byte_stream(&iByte, 1); } else if (iType == LUA_TNUMBER) { double fValue = lua_tonumber(L, iIndex); if (floor(fValue) == fValue && 0.0 <= fValue && fValue <= 16383.0) { // Small integers are written as just a few bytes // NB: 16383 = 2^14-1, which is the maximum value which // can fit into two bytes of VUInt. uint8_t iByte = PERSIST_TINTEGER; write_byte_stream(&iByte, 1); uint16_t iValue = (uint16_t)fValue; write_uint(iValue); } else { // Other numbers are written as an 8 byte double uint8_t iByte = LUA_TNUMBER; write_byte_stream(&iByte, 1); write_byte_stream(reinterpret_cast(&fValue), sizeof(double)); } } else { // Complex values are cached, and are only written once (if this // weren't done, then cycles in the object graph would break // things). lua_getfenv(L, 1); lua_pushvalue(L, iIndex); lua_rawget(L, -2); uint64_t iValue = static_cast(lua_tonumber(L, -1)); if (iValue != 0) { lua_pop(L, 2); // If the value has not previously been written, then // write_object_raw would have been called, and the appropriate // data written, and 0 would be returned. Otherwise, the index // would be returned, which we offset by the number of types, // and then write. write_uint(iValue + PERSIST_TCOUNT - 1); } else { lua_pop(L, 1); // Save the index to the cache lua_pushvalue(L, iIndex); lua_pushnumber(L, static_cast(next_index++)); lua_rawset(L, -3); // Remove the fenv and add the item back to the top lua_pop(L, 1); lua_pushvalue(L, iIndex); // write the item and restore the stack to the start state write_object_raw(); lua_pop(L, 1); } } } void write_object_raw() { int top = lua_gettop(L); int item_index = top; // same position in write_stack_object int self_index = 1; // index 1 in write_stack_object int permanents_index = 2; // also in fenv self [1] uint8_t item_type = lua_type(L, item_index); lua_checkstack(L, top + 5); // Lookup the object in the permanents table lua_pushvalue(L, item_index); lua_gettable(L, permanents_index); if (lua_type(L, -1) != LUA_TNIL) { // Object is in the permanents table. uint8_t item_type = PERSIST_TPERMANENT; write_byte_stream(&item_type, 1); // Write the key corresponding to the permanent object write_stack_object(-1); lua_pop(L, 1); } else { // Object is not in the permanents table. lua_pop(L, 1); switch (item_type) { // LUA_TNIL handled in write_stack_object // LUA_TBOOLEAN handled in write_stack_object // LUA_TNUMBER handled in write_stack_object case LUA_TSTRING: { write_byte_stream(&item_type, 1); // Strings are simple: length and then bytes (not null // terminated) size_t iLength; const char* sString = lua_tolstring(L, item_index, &iLength); write_uint(iLength); write_byte_stream(reinterpret_cast(sString), iLength); break; } case LUA_TTABLE: { // Save env and insert prior to table lua_getfenv(L, self_index); lua_insert(L, item_index); int table_env_index = item_index; item_index += 1; // Handle the metatable if (lua_getmetatable(L, item_index)) { item_type = PERSIST_TTABLE_WITH_META; write_byte_stream(&item_type, 1); write_stack_object(-1); lua_pop(L, 1); } else { write_byte_stream(&item_type, 1); } // Write the children as key, value pairs lua_pushnil(L); while (lua_next(L, item_index)) { write_stack_object(-2); // write the key write_stack_object(-1); // write the value lua_pop(L, 1); // remove the value // key is passed back to lua_next } // Write a nil to mark the end of the children (as nil is // the only value which cannot be used as a key in a table). uint8_t nil_type = LUA_TNIL; write_byte_stream(&nil_type, 1); lua_remove(L, table_env_index); } break; case LUA_TFUNCTION: if (lua_iscfunction(L, item_index)) { set_error_object(item_index, self_index); set_error("Cannot persist C functions"); break; } write_byte_stream(&item_type, 1); // Write the prototype (the part of a function which is // common across multiple closures - see LClosure / // Proto in Lua's lobject.h). lua_Debug proto_info; lua_pushvalue(L, item_index); lua_getinfo(L, ">Su", &proto_info); write_prototype(&proto_info, item_index); // Write the values of the upvalues // If available, also write the upvalue IDs (so that in // the future, we could hypothetically rejoin shared // upvalues). An ID is just an opaque sequence of bytes. write_uint(proto_info.nups); #if LUA_VERSION_NUM >= 502 write_uint(sizeof(void*)); #else write_uint(0); #endif for (int i = 1; i <= proto_info.nups; ++i) { lua_getupvalue(L, item_index, i); write_stack_object(-1); #if LUA_VERSION_NUM >= 502 void* pUpvalueID = lua_upvalueid(L, item_index, i); write_byte_stream((uint8_t*)&pUpvalueID, sizeof(void*)); #endif lua_pop(L, 1); } // Write the environment table lua_getfenv(L, item_index); write_stack_object(-1); lua_pop(L, 1); break; case LUA_TUSERDATA: if (!check_that_userdata_can_be_depersisted(item_index)) { break; } // Write type, metatable, and then environment write_byte_stream(&item_type, 1); write_stack_object(-1); lua_getfenv(L, item_index); write_stack_object(-1); lua_pop(L, 1); // Write the raw data if (lua_type(L, -1) == LUA_TTABLE) { lua_getfield(L, -1, "__persist"); if (lua_isnil(L, -1)) { lua_pop(L, 1); } else { lua_pushvalue(L, item_index); lua_pushvalue(L, self_index); lua_pushvalue(L, permanents_index); lua_call(L, 3, 0); } } lua_pop(L, 1); // remove userdata metatable write_uint((uint64_t)0x42); // sync marker break; default: set_error(lua_pushfstring(L, "Cannot persist %s values", luaL_typename(L, item_type))); } } if (had_error) { luaL_error(L, get_error()); } } // Checks if userdata can be persisted to file, that is if it has a size // of zero, or has a metatable with a __depersist_size, __persist, and // __depersist function. The metatable is pushed to the top of the stack. bool check_that_userdata_can_be_depersisted(int iIndex) { if (lua_getmetatable(L, iIndex)) { lua_getfield(L, -1, "__depersist_size"); if (lua_isnumber(L, -1)) { if (static_cast(lua_tointeger(L, -1)) != static_cast(lua_objlen(L, iIndex))) { set_error(lua_pushfstring(L, "__depersist_size is " "incorrect (%d vs. %d)", (int)lua_objlen(L, iIndex), (int)lua_tointeger(L, -1))); return false; } if (lua_objlen(L, iIndex) != 0) { lua_getfield(L, -2, "__persist"); lua_getfield(L, -3, "__depersist"); if (lua_isnil(L, -1) || lua_isnil(L, -2)) { set_error( "Can only persist non-empty userdata" " if they have __persist and __depersist " "metamethods"); return false; } lua_pop(L, 2); } } else { if (lua_objlen(L, iIndex) != 0) { set_error( "Can only persist non-empty userdata if " "they have a __depersist_size metafield"); return false; } } lua_pop(L, 1); } else { if (lua_objlen(L, iIndex) != 0) { set_error( "Can only persist userdata without a metatable" " if their size is zero"); return false; } lua_pushnil(L); } return true; } void write_prototype(lua_Debug* pProtoInfo, int iInstanceIndex) { // Sanity checks if (pProtoInfo->source[0] != '@') { // @ denotes that the source was a file // (http://www.lua.org/manual/5.1/manual.html#lua_Debug) set_error("Can only persist Lua functions defined in source files"); return; } if (std::strcmp(pProtoInfo->what, "Lua") != 0) { // what == "C" should have been caught by write_object_raw(). // what == "tail" should be impossible. // Hence "Lua" and "main" should be the only values seen. // NB: Chunks are not functions defined *in* source files, because // chunks *are* source files. set_error(lua_pushfstring(L, "Cannot persist entire Lua chunks (%s)", pProtoInfo->source + 1)); lua_pop(L, 1); return; } // Attempt cached lookup (prototypes are not publicly visible Lua // objects, and hence cannot be cached in the normal way of self's // environment). lua_getmetatable(L, 1); lua_pushfstring(L, "%s:%d", pProtoInfo->source + 1, pProtoInfo->linedefined); lua_pushvalue(L, -1); lua_rawget(L, -3); if (!lua_isnil(L, -1)) { uint64_t iValue = (uint64_t)lua_tonumber(L, -1); lua_pop(L, 3); write_uint(iValue + PERSIST_TCOUNT - 1); return; } lua_pop(L, 1); lua_pushvalue(L, -1); lua_pushnumber(L, (lua_Number)next_index++); lua_rawset(L, -4); uint8_t iType = PERSIST_TPROTOTYPE; write_byte_stream(&iType, 1); // Write upvalue names write_uint(pProtoInfo->nups); for (int i = 1; i <= pProtoInfo->nups; ++i) { lua_pushstring(L, lua_getupvalue(L, iInstanceIndex, i)); write_stack_object(-1); lua_pop(L, 2); } // Write the function's persist name lua_rawgeti(L, -2, 1); lua_replace(L, -3); lua_rawget(L, -2); if (lua_isnil(L, -1)) { set_error(lua_pushfstring( L, "Lua functions must be given a unique " "persistable name in order to be persisted (attempt to " "persist" " %s:%d)", pProtoInfo->source + 1, pProtoInfo->linedefined)); lua_pop(L, 2); return; } write_stack_object(-1); lua_pop(L, 2); } void write_byte_stream(const uint8_t* pBytes, size_t iCount) override { if (had_error) { // If an error occurred, then silently fail to write any // data. return; } data.append(reinterpret_cast(pBytes), iCount); } void set_error(const char* sError) override { // If multiple errors occur, only record the first. if (had_error) { return; } had_error = true; // Use the written data buffer to store the error message data.assign(sError); } void set_error_object(int iStackObject, int self_index) { if (had_error) return; lua_pushvalue(L, iStackObject); lua_getmetatable(L, self_index); lua_insert(L, -2); lua_setfield(L, -2, "err"); lua_pop(L, 1); } const char* get_error() { if (had_error) return data.c_str(); else return nullptr; } private: lua_State* L; uint64_t next_index{1}; std::string data; size_t data_size{0}; bool had_error{false}; }; //! Basic implementation of depersistence interface /*! self - Instance of lua_persist_basic_reader allocated as a Lua userdata self environment: [-3] - self [-2] - pre-populated prototype persistence code `` - `` [-1] - pre-populated prototype persistence filenames `` - `` [ 0] - permanents table `` - object already depersisted self metatable: `__gc` - ~lua_persist_basic_reader (via l_crude_gc) `` - userdata to have second `__depersist` call */ class lua_persist_basic_reader : public lua_persist_reader { public: lua_persist_basic_reader(lua_State* L, const uint8_t* pData, size_t iLength) : L(L), data(pData), data_buffer_size(iLength) {} ~lua_persist_basic_reader() override = default; lua_State* get_stack() override { return L; } void set_error(const char* sError) override { had_error = true; string_buffer.assign(sError); } void init() { lua_createtable(L, 32, 0); // Environment lua_pushvalue(L, 2); lua_rawseti(L, -2, 0); lua_pushvalue(L, luaT_upvalueindex(1)); lua_rawseti(L, -2, -1); lua_pushvalue(L, luaT_upvalueindex(2)); lua_rawseti(L, -2, -2); lua_pushvalue(L, 1); lua_rawseti(L, -2, -3); lua_setfenv(L, 1); lua_createtable(L, 0, 1); // Metatable luaT_pushcclosure(L, l_crude_gc, 0); lua_setfield(L, -2, "__gc"); lua_setmetatable(L, 1); } bool read_stack_object() override { uint64_t iIndex; if (!read_uint(iIndex)) { set_error("Expected stack object"); return false; } if (lua_type(L, 1) != LUA_TTABLE) { // Ensure that index #1 is self environment lua_getfenv(L, 1); lua_replace(L, 1); } if (iIndex >= PERSIST_TCOUNT) { iIndex += 1 - PERSIST_TCOUNT; if (iIndex < (uint64_t)INT_MAX) lua_rawgeti(L, 1, (int)iIndex); else { lua_pushnumber(L, (lua_Number)iIndex); lua_rawget(L, 1); } if (lua_isnil(L, -1)) { set_error( "Cycle while depersisting permanent object key or " "userdata metatable"); return false; } } else { uint8_t iType = (uint8_t)iIndex; switch (iType) { case LUA_TNIL: lua_pushnil(L); break; case PERSIST_TPERMANENT: { uint64_t iOldIndex = next_index; ++next_index; // Temporary marker lua_rawgeti(L, 1, 0); // Permanents table if (!read_stack_object()) return false; lua_gettable(L, -2); lua_replace(L, -2); // Replace marker with actual object uint64_t iNewIndex = next_index; next_index = iOldIndex; save_stack_object(); next_index = iNewIndex; break; } case LUA_TBOOLEAN: lua_pushboolean(L, 0); break; case PERSIST_TTRUE: lua_pushboolean(L, 1); break; case LUA_TSTRING: { size_t iLength; if (!read_uint(iLength)) return false; if (!read_byte_stream(string_buffer, iLength)) return false; lua_pushlstring(L, string_buffer.c_str(), string_buffer.length()); save_stack_object(); break; } case LUA_TTABLE: lua_newtable(L); save_stack_object(); if (!lua_checkstack(L, 8)) return false; if (!read_table_contents()) return false; break; case PERSIST_TTABLE_WITH_META: lua_newtable(L); save_stack_object(); if (!lua_checkstack(L, 8)) return false; if (!read_stack_object()) return false; lua_setmetatable(L, -2); if (!read_table_contents()) return false; break; case LUA_TNUMBER: { double fValue; if (!read_byte_stream(reinterpret_cast(&fValue), sizeof(double))) return false; lua_pushnumber(L, fValue); break; } case LUA_TFUNCTION: { if (!lua_checkstack(L, 8)) return false; uint64_t iOldIndex = next_index; ++next_index; // Temporary marker if (!read_stack_object()) return false; lua_call(L, 0, 2); // Replace marker with closure uint64_t iNewIndex = next_index; next_index = iOldIndex; save_stack_object(); next_index = iNewIndex; // Set upvalues lua_insert(L, -2); int iNups, i; if (!read_uint(iNups)) return false; size_t iIDSize; if (!read_uint(iIDSize)) return false; for (i = 0; i < iNups; ++i) { if (!read_stack_object()) return false; // For now, just skip over the upvalue IDs. In the // future, the ID may be used to rejoin shared upvalues. if (!read_byte_stream(nullptr, iIDSize)) return false; } lua_call(L, iNups, 0); // Read environment if (!read_stack_object()) return false; lua_setfenv(L, -2); break; } case PERSIST_TPROTOTYPE: { if (!lua_checkstack(L, 8)) return false; uint64_t iOldIndex = next_index; ++next_index; // Temporary marker int iNups; if (!read_uint(iNups)) return false; if (iNups == 0) lua_pushliteral(L, "return function() end,"); else { lua_pushliteral(L, "local "); lua_checkstack(L, (iNups + 1) * 2); for (int i = 0; i < iNups; ++i) { if (i != 0) lua_pushliteral(L, ","); if (!read_stack_object()) return false; if (lua_type(L, -1) != LUA_TSTRING) { set_error("Upvalue name not a string"); return false; } } lua_concat(L, iNups * 2 - 1); lua_pushliteral(L, ";return function(...)"); lua_pushvalue(L, -2); lua_pushliteral(L, "=...end,"); lua_concat(L, 5); } // Fetch name and then lookup filename and code if (!read_stack_object()) return false; lua_pushliteral(L, "@"); lua_rawgeti(L, 1, -1); lua_pushvalue(L, -3); lua_gettable(L, -2); lua_replace(L, -2); if (lua_isnil(L, -1)) { set_error(lua_pushfstring(L, "Unable to depersist prototype" " \'%s\'", lua_tostring(L, -3))); return false; } lua_concat(L, 2); // Prepend the @ to the filename lua_rawgeti(L, 1, -2); lua_pushvalue(L, -3); lua_gettable(L, -2); lua_replace(L, -2); lua_remove(L, -3); // Construct the closure factory load_multi_buffer ls; ls.piece[0] = lua_tolstring(L, -3, &ls.piece_size[0]); ls.piece[1] = lua_tolstring(L, -1, &ls.piece_size[1]); if (luaT_load(L, load_multi_buffer::load_fn, &ls, lua_tostring(L, -2), "bt") != 0) { // Should never happen lua_error(L); return false; } lua_replace(L, -4); lua_pop(L, 2); // Replace marker with closure factory uint64_t iNewIndex = next_index; next_index = iOldIndex; save_stack_object(); next_index = iNewIndex; break; } case LUA_TUSERDATA: { bool bHasSetMetatable = false; uint64_t iOldIndex = next_index; ++next_index; // Temporary marker // Read metatable if (!read_stack_object()) return false; lua_getfield(L, -1, "__depersist_size"); if (!lua_isnumber(L, -1)) { set_error("Userdata missing __depersist_size metafield"); return false; } lua_newuserdata(L, (size_t)lua_tonumber(L, -1)); lua_replace(L, -2); // Replace marker with userdata uint64_t iNewIndex = next_index; next_index = iOldIndex; save_stack_object(); next_index = iNewIndex; // Perform immediate initialisation lua_getfield(L, -2, "__pre_depersist"); if (lua_isnil(L, -1)) lua_pop(L, 1); else { // Set metatable now, as pre-depersister may expect it // NB: Setting metatable if there isn't a // pre-depersister is not a good idea, as if there is an // error while the environment table is being // de-persisted, then the __gc handler of the userdata // will eventually be called with the userdata's // contents still being uninitialised. lua_pushvalue(L, -3); lua_setmetatable(L, -3); bHasSetMetatable = true; lua_pushvalue(L, -2); lua_call(L, 1, 0); } // Read environment if (!read_stack_object()) return false; lua_setfenv(L, -2); // Set metatable and read the raw data if (!bHasSetMetatable) { lua_pushvalue(L, -2); lua_setmetatable(L, -2); } lua_getfield(L, -2, "__depersist"); if (lua_isnil(L, -1)) lua_pop(L, 1); else { // Call the __depersist function with the userdata. // Note: Unless the __pre_depersist method was called above, the // new userdata has been created but any initialization such as // the constructor normally called by luaT_stdnew has not yet been // run. If the object is a C++ class, call the placement new // constructor before performing any other operations on the object. lua_pushvalue(L, -2); lua_rawgeti(L, 1, -3); lua_call(L, 2, 1); if (lua_toboolean(L, -1) != 0) { lua_pop(L, 1); lua_rawgeti(L, 1, -3); lua_getmetatable(L, -1); lua_replace(L, -2); lua_pushvalue(L, -2); lua_rawseti(L, -2, (int)lua_objlen(L, -2) + 1); } lua_pop(L, 1); } lua_replace(L, -2); uint64_t iSyncMarker; if (!read_uint(iSyncMarker)) return false; if (iSyncMarker != 0x42) { set_error("sync fail"); return false; } break; } case PERSIST_TINTEGER: { uint16_t iValue; if (!read_uint(iValue)) return false; lua_pushinteger(L, iValue); break; } default: lua_pushliteral(L, "Unable to depersist values of type \'"); if (iType <= LUA_TTHREAD) lua_pushstring(L, lua_typename(L, iType)); else { switch (iType) { case PERSIST_TPERMANENT: lua_pushliteral(L, "permanent"); break; case PERSIST_TTRUE: lua_pushliteral(L, "boolean-true"); break; case PERSIST_TTABLE_WITH_META: lua_pushliteral(L, "table-with-metatable"); break; case PERSIST_TINTEGER: lua_pushliteral(L, "integer"); break; case PERSIST_TPROTOTYPE: lua_pushliteral(L, "prototype"); break; case PERSIST_TRESERVED1: lua_pushliteral(L, "reserved1"); break; case PERSIST_TRESERVED2: lua_pushliteral(L, "reserved2"); break; } } lua_pushliteral(L, "\'"); lua_concat(L, 3); set_error(lua_tostring(L, -1)); lua_pop(L, 1); return false; } } return true; } void save_stack_object() { if (next_index < (uint64_t)INT_MAX) { lua_pushvalue(L, -1); lua_rawseti(L, 1, (int)next_index); } else { lua_pushnumber(L, (lua_Number)next_index); lua_pushvalue(L, -2); lua_rawset(L, 1); } ++next_index; } bool read_table_contents() { while (true) { if (!read_stack_object()) return false; if (lua_type(L, -1) == LUA_TNIL) { lua_pop(L, 1); return true; } if (!read_stack_object()) return false; // NB: lua_rawset used rather than lua_settable to avoid invoking // any metamethods, as they may not have been designed to be called // during depersistence. lua_rawset(L, -3); } } bool finish() { // Ensure that all data has been read if (data_buffer_size != 0) { set_error(lua_pushfstring(L, "%d bytes of data remain unpersisted", (int)data_buffer_size)); return false; } // Ensure that index #1 is self environment if (lua_type(L, 1) != LUA_TTABLE) { lua_getfenv(L, 1); lua_replace(L, 1); } // Ensure that index #1 is self metatable lua_rawgeti(L, 1, -3); lua_getmetatable(L, -1); lua_replace(L, 1); lua_pop(L, 1); // Call all the __depersist functions which need a 2nd call int iNumCalls = (int)lua_objlen(L, 1); for (int i = 1; i <= iNumCalls; ++i) { lua_rawgeti(L, 1, i); luaL_getmetafield(L, -1, "__depersist"); lua_insert(L, -2); lua_call(L, 1, 0); } return true; } bool read_byte_stream(uint8_t* pBytes, size_t iCount) override { if (iCount > data_buffer_size) { set_error(lua_pushfstring( L, "End of input reached while attempting to read %d byte%s", (int)iCount, iCount == 1 ? "" : "s")); lua_pop(L, 1); return false; } if (pBytes != nullptr) std::memcpy(pBytes, data, iCount); data += iCount; data_buffer_size -= iCount; return true; } bool read_byte_stream(std::string& bytes, size_t iCount) { if (iCount > data_buffer_size) { set_error(lua_pushfstring( L, "End of input reached while attempting to read %d byte%s", (int)iCount, iCount == 1 ? "" : "s")); lua_pop(L, 1); return false; } bytes.assign(reinterpret_cast(data), iCount); data += iCount; data_buffer_size -= iCount; return true; } const uint8_t* get_pointer() { return data; } uint64_t get_object_count() { return next_index; } const char* get_error() { if (had_error) return string_buffer.c_str(); else return nullptr; } private: lua_State* L; uint64_t next_index{1}; const uint8_t* data; size_t data_buffer_size; std::string string_buffer; bool had_error{false}; }; namespace { int l_dump_toplevel(lua_State* L) { luaL_checktype(L, 2, LUA_TTABLE); lua_settop(L, 2); lua_pushvalue(L, 1); lua_persist_basic_writer* pWriter = new (lua_newuserdata(L, sizeof(lua_persist_basic_writer))) lua_persist_basic_writer(L); lua_replace(L, 1); pWriter->init(); pWriter->write_stack_object(3); return pWriter->finish(); } int l_load_toplevel(lua_State* L) { size_t iDataLength; const uint8_t* pData = luaT_checkfile(L, 1, &iDataLength); luaL_checktype(L, 2, LUA_TTABLE); lua_settop(L, 2); lua_pushvalue(L, 1); lua_persist_basic_reader* pReader = new (lua_newuserdata(L, sizeof(lua_persist_basic_reader))) lua_persist_basic_reader(L, pData, iDataLength); lua_replace(L, 1); pReader->init(); if (!pReader->read_stack_object() || !pReader->finish()) { int iNumObjects = (int)pReader->get_object_count(); int iNumBytes = (int)(pReader->get_pointer() - pData); lua_pushnil(L); lua_pushfstring(L, "%s after %d objects (%d bytes)", pReader->get_error() ? pReader->get_error() : "Error while depersisting", iNumObjects, iNumBytes); return 2; } else { return 1; } } int calculate_line_number(const char* sStart, const char* sPosition) { int iLine = 1; for (; sStart != sPosition; ++sStart) { switch (sStart[0]) { case '\0': return -1; // error return value case '\n': ++iLine; if (sStart[1] == '\r') ++sStart; break; case '\r': ++iLine; if (sStart[1] == '\n') ++sStart; break; } } return iLine; } const char* find_function_end(lua_State* L, const char* sStart) { const char* sEnd = sStart; while (sEnd) { sEnd = std::strstr(sEnd, "end"); if (sEnd) { sEnd += 3; load_multi_buffer ls; ls.insert("return function", 0); ls.piece[1] = sStart; ls.piece_size[1] = sEnd - sStart; if (luaT_load(L, load_multi_buffer::load_fn, &ls, "", "bt") == 0) { lua_pop(L, 1); return sEnd; } lua_pop(L, 1); } } return nullptr; } int l_persist_dofile(lua_State* L) { const char* sFilename = luaL_checkstring(L, 1); lua_settop(L, 1); // Read entire file into memory std::FILE* fFile = std::fopen(sFilename, "r"); if (fFile == nullptr) { const char* sError = std::strerror(errno); return luaL_error(L, "cannot open %s: %s", sFilename, sError); } size_t iBufferSize = lua_objlen(L, luaT_upvalueindex(1)); size_t iBufferUsed = 0; while (!std::ferror(fFile) && !std::feof(fFile)) { iBufferUsed += std::fread(static_cast(lua_touserdata(L, luaT_upvalueindex(1))) + iBufferUsed, 1, iBufferSize - iBufferUsed, fFile); if (iBufferUsed == iBufferSize) { iBufferSize *= 2; std::memcpy(lua_newuserdata(L, iBufferSize), lua_touserdata(L, luaT_upvalueindex(1)), iBufferUsed); lua_replace(L, luaT_upvalueindex(1)); } else break; } int iStatus = std::ferror(fFile); std::fclose(fFile); if (iStatus) { const char* sError = std::strerror(errno); return luaL_error(L, "cannot read %s: %s", sFilename, sError); } // Check file char* sFile = static_cast(lua_touserdata(L, luaT_upvalueindex(1))); sFile[iBufferUsed] = 0; if (sFile[0] == '#') { do { ++sFile; --iBufferUsed; } while (sFile[0] != 0 && sFile[0] != '\r' && sFile[0] != '\n'); } if (sFile[0] == LUA_SIGNATURE[0]) { return luaL_error(L, "cannot load %s: compiled files not permitted", sFilename); } // Load and do file lua_pushliteral(L, "@"); lua_pushvalue(L, 1); lua_concat(L, 2); if (luaL_loadbuffer(L, sFile, iBufferUsed, lua_tostring(L, -1)) != 0) return lua_error(L); lua_remove(L, -2); int iBufferCopyIndex = lua_gettop(L); std::memcpy(lua_newuserdata(L, iBufferUsed + 1), sFile, iBufferUsed + 1); lua_insert(L, -2); lua_call(L, 0, LUA_MULTRET); sFile = static_cast(lua_touserdata(L, luaT_upvalueindex(1))); std::memcpy(sFile, lua_touserdata(L, iBufferCopyIndex), iBufferUsed + 1); lua_remove(L, iBufferCopyIndex); // Extract persistable functions const char* sPosition = sFile; while (true) { sPosition = std::strstr(sPosition, "--[[persistable:"); if (!sPosition) break; sPosition += 16; const char* sNameEnd = std::strstr(sPosition, "]]"); if (sNameEnd) { int iLineNumber = calculate_line_number(sFile, sNameEnd); const char* sFunctionArgs = std::strchr(sNameEnd + 2, '('); const char* sFunctionEnd = find_function_end(L, sFunctionArgs); if ((sNameEnd - sPosition) == 1 && *sPosition == ':') { // --[[persistable::]] means take the existing name of the // function sPosition = std::strstr(sNameEnd, "function") + 8; sPosition += std::strspn(sPosition, " \t"); sNameEnd = sFunctionArgs; while (sNameEnd[-1] == ' ') --sNameEnd; } if (iLineNumber != -1 && sFunctionArgs && sFunctionEnd) { // Save : => lua_pushfstring(L, "%s:%d", sFilename, iLineNumber); lua_pushvalue(L, -1); lua_gettable(L, luaT_upvalueindex(2)); if (lua_isnil(L, -1)) { lua_pop(L, 1); lua_pushlstring(L, sPosition, sNameEnd - sPosition); lua_settable(L, luaT_upvalueindex(2)); } else { return luaL_error(L, "Multiple persistable functions defined" "on the same line (%s:%d)", sFilename, iLineNumber); } // Save => lua_pushlstring(L, sPosition, sNameEnd - sPosition); lua_pushvalue(L, -1); lua_gettable(L, luaT_upvalueindex(3)); if (lua_isnil(L, -1)) { lua_pop(L, 1); lua_pushvalue(L, 1); lua_settable(L, luaT_upvalueindex(3)); } else { return luaL_error(L, "Persistable function name \'%s\' is" " not unique (defined in both %s and %s)", lua_tostring(L, -2), lua_tostring(L, -1), sFilename); } // Save => lua_pushlstring(L, sPosition, sNameEnd - sPosition); lua_pushliteral(L, "\n"); lua_getfield(L, -1, "rep"); lua_insert(L, -2); lua_pushinteger(L, iLineNumber - 1); lua_call(L, 2, 1); lua_pushliteral(L, "function"); lua_pushlstring(L, sFunctionArgs, sFunctionEnd - sFunctionArgs); lua_concat(L, 3); lua_settable(L, luaT_upvalueindex(4)); } } } // Finish return lua_gettop(L) - 1; } int l_errcatch(lua_State* L) { // Dummy function for debugging - place a breakpoint on the following // return statement to inspect the full C call stack when a Lua error // occurs (assuming that l_errcatch is used as the error catch handler). return 1; } // Due to the various required upvalues, functions are registered manually, but // we still need a dummy to pass to luaL_register. constexpr std::array persist_lib{ {{"errcatch", l_errcatch}, {nullptr, nullptr}}}; } // namespace int luaopen_persist(lua_State* L) { luaT_register(L, "persist", persist_lib); lua_newuserdata(L, 512); // buffer for dofile lua_newtable(L); lua_newtable(L); lua_newtable(L); lua_pushvalue(L, -3); luaT_pushcclosure(L, l_dump_toplevel, 1); lua_setfield(L, -6, "dump"); lua_pushvalue(L, -2); lua_pushvalue(L, -2); luaT_pushcclosure(L, l_load_toplevel, 2); lua_setfield(L, -6, "load"); luaT_pushcclosure(L, l_persist_dofile, 4); lua_setfield(L, -2, "dofile"); return 1; } CorsixTH-0.70.0/CorsixTH/Src/persist_lua.h000066400000000000000000000115031522247547500202530ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_PERSIST_LUA_H_ #define CORSIX_TH_PERSIST_LUA_H_ #include "config.h" #include #include #include "lua.hpp" template struct lua_persist_int {}; template <> struct lua_persist_int { typedef unsigned int T; }; //! Interface used for persisting Lua objects /*! When userdata are persisted, they get an instance of this interface for writing binary data and other Lua objects. */ class lua_persist_writer { public: virtual ~lua_persist_writer() = default; virtual lua_State* get_stack() = 0; virtual void write_stack_object(int iIndex) = 0; virtual void write_byte_stream(const uint8_t* pBytes, size_t iCount) = 0; virtual void set_error(const char* sError) = 0; // write_stack_object for userdata without growing the Lua call stack // The given index should be a userdata whose __persist metamethod supports // fast persistence (being called with extra arguments and the wrong // environment / upvalues). virtual void fast_write_stack_object(int iIndex) = 0; // Writes an unsigned integer as a variable number of bytes // Endian independent and underlying type size independent template void write_uint(T tValue) { static_assert(std::is_integral::value, "T must be an integer type"); T tTemp(tValue); int iNumBytes; for (iNumBytes = 1; tTemp >= (T)0x80; tTemp /= (T)0x80) ++iNumBytes; if (iNumBytes == 1) { uint8_t iByte = (uint8_t)tValue; write_byte_stream(&iByte, 1); } else { std::vector bytes(iNumBytes); bytes[iNumBytes - 1] = 0x7F & (uint8_t)(tValue); for (int i = 1; i < iNumBytes; ++i) { tValue /= (T)0x80; bytes[iNumBytes - 1 - i] = 0x80 | (0x7F & (uint8_t)tValue); } write_byte_stream(bytes.data(), iNumBytes); } } template void write_int(T tValue) { typename lua_persist_int::T tValueToWrite; if (tValue >= 0) { tValueToWrite = (typename lua_persist_int::T)tValue; tValueToWrite <<= 1; } else { tValueToWrite = (typename lua_persist_int::T)(-(tValue + 1)); tValueToWrite <<= 1; tValueToWrite |= 1; } write_uint(tValueToWrite); } template void write_float(T fValue) { write_byte_stream(reinterpret_cast(&fValue), sizeof(T)); } }; //! Interface used for depersisting Lua objects /*! When userdata are depersisted, they get an instance of this interface for reading binary data and other Lua objects. */ class lua_persist_reader { public: virtual ~lua_persist_reader() = default; virtual lua_State* get_stack() = 0; virtual bool read_stack_object() = 0; virtual bool read_byte_stream(uint8_t* pBytes, size_t iCount) = 0; virtual void set_error(const char* sError) = 0; // Reads an integer previously written by lua_persist_writer::write_uint() template bool read_uint(T& tValue) { T tTemp(0); uint8_t iByte; while (true) { if (!read_byte_stream(&iByte, 1)) return false; if (iByte & 0x80) { tTemp = static_cast(tTemp | (iByte & 0x7F)); tTemp = static_cast(tTemp << 7); } else { tTemp = static_cast(tTemp | iByte); break; } } tValue = tTemp; return true; } template bool read_int(T& tValue) { typename lua_persist_int::T tWrittenValue; if (!read_uint(tWrittenValue)) return false; if (tWrittenValue & 1) tValue = (-(T)(tWrittenValue >> 1)) - 1; else tValue = static_cast(tWrittenValue >> 1); return true; } template bool read_float(T& fValue) { if (!read_byte_stream(reinterpret_cast(&fValue), sizeof(T))) return false; return true; } }; int luaopen_persist(lua_State* L); #endif // CORSIX_TH_PERSIST_LUA_H_ CorsixTH-0.70.0/CorsixTH/Src/random.c000066400000000000000000000150151522247547500171760ustar00rootroot00000000000000/* A C-program for MT19937, with initialization improved 2002/1/26. Coded by Takuji Nishimura and Makoto Matsumoto. Lua interface by Peter Cawley. Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved. Copyright (C) 2005, Mutsuo Saito, All rights reserved. Copyright (C) 2009, Peter Cawley, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. 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. 3. The names of its contributors may not 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 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 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Any feedback is very welcome. http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space) */ #include #include #include #ifdef _MSC_VER typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; #else #include #endif /* _MSC_VER */ /* Period parameters */ #define N 624 #define M 397 #define MATRIX_A 0x9908b0dfUL /* constant vector a */ #define UPPER_MASK 0x80000000UL /* most significant w-r bits */ #define LOWER_MASK 0x7fffffffUL /* least significant r bits */ uint32_t mt[N]; /* the array for the state vector */ uint16_t mti = N + 1; /* mti==N+1 means mt[N] is not initialized */ /* initializes mt[N] with a seed */ static void init_genrand(uint32_t s) { mt[0] = s; for (mti = 1; mti < N; mti++) { mt[mti] = (1812433253UL * (mt[mti - 1] ^ (mt[mti - 1] >> 30)) + mti); /* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */ /* In the previous versions, MSBs of the seed affect */ /* only MSBs of the array mt[]. */ } } /* generates a random number on [0,0xffffffff]-interval */ static uint32_t genrand_int32(void) { uint32_t y; static uint32_t mag01[2] = {0x0UL, MATRIX_A}; /* mag01[x] = x * MATRIX_A for x=0,1 */ if (mti >= N) { /* generate N words at one time */ int kk; if (mti == N + 1) /* if init_genrand() has not been called, */ init_genrand(5489UL); /* a default initial seed is used */ for (kk = 0; kk < N - M; kk++) { y = (mt[kk] & UPPER_MASK) | (mt[kk + 1] & LOWER_MASK); mt[kk] = mt[kk + M] ^ (y >> 1) ^ mag01[y & 0x1UL]; } for (; kk < N - 1; kk++) { y = (mt[kk] & UPPER_MASK) | (mt[kk + 1] & LOWER_MASK); mt[kk] = mt[kk + (M - N)] ^ (y >> 1) ^ mag01[y & 0x1UL]; } y = (mt[N - 1] & UPPER_MASK) | (mt[0] & LOWER_MASK); mt[N - 1] = mt[M - 1] ^ (y >> 1) ^ mag01[y & 0x1UL]; mti = 0; } y = mt[mti++]; /* Tempering */ y ^= (y >> 11); y ^= (y << 7) & 0x9d2c5680UL; y ^= (y << 15) & 0xefc60000UL; y ^= (y >> 18); return y; } /* generates a random number on [0,1) with 53-bit resolution*/ static double genrand_res53(void) { uint32_t a = genrand_int32() >> 5, b = genrand_int32() >> 6; return (a * 67108864.0 + b) * (1.0 / 9007199254740992.0); } /* These real versions are due to Isaku Wada, 2002/01/09 added */ /** @function math.random @arguments [[range_start, ] range_end] @return number If called with no arguments, returns a random number in the range [0, 1). If called with one argument, returns a random integer in the range [1, range_end]. If called with two or more arguments, returns a random integer in the range [range_start, range_end]. */ static int l_random(lua_State* L) { lua_Integer min; uint32_t max; switch (lua_gettop(L)) { default: case 2: min = luaL_checkinteger(L, 1); max = (uint32_t)(luaL_checkinteger(L, 2) - min + 1); luaL_argcheck(L, max > 0, 2, "interval is empty"); lua_pushinteger(L, min + (lua_Integer)(genrand_int32() % max)); break; case 1: max = (uint32_t)luaL_checkinteger(L, 1); luaL_argcheck(L, 1 <= max, 1, "interval is empty"); lua_pushinteger(L, 1 + (lua_Integer)(genrand_int32() % max)); break; case 0: lua_pushnumber(L, (lua_Number)genrand_res53()); break; } return 1; } /** @function math.randomdump @arguments @return string Returns a string which can later be passed to math.randomseed() to restore the random number generator to its current state. */ static int l_randomdump(lua_State* L) { lua_pushlstring(L, (const char*)mt, N * 4); lua_pushlstring(L, (const char*)&mti, 2); lua_concat(L, 2); return 1; } /** @function math.randomseed @arguments number @arguments string @return Seeds the random number generator using the given seed number, or restores the random number generator state from a string previously generated from math.randomdump(). */ static int l_randomseed(lua_State* L) { if (lua_type(L, 1) == LUA_TSTRING) { int i; size_t len; const char* data = lua_tolstring(L, 1, &len); if (len != N * 4 + 2) luaL_argerror(L, 1, "Seed string wrong length"); for (i = 0; i < N; ++i) mt[i] = ((uint32_t*)data)[i]; mti = *(uint16_t*)(data + len - 2); } else { init_genrand((uint32_t)luaL_checkinteger(L, 1)); } return 0; } int luaopen_random(lua_State* L) { lua_getglobal(L, "math"); lua_pushliteral(L, "random"); lua_pushcfunction(L, l_random); lua_settable(L, -3); lua_pushliteral(L, "randomseed"); lua_pushcfunction(L, l_randomseed); lua_settable(L, -3); lua_pushliteral(L, "randomdump"); lua_pushcfunction(L, l_randomdump); lua_settable(L, -3); return 0; } CorsixTH-0.70.0/CorsixTH/Src/run_length_encoder.cpp000066400000000000000000000145661522247547500221340ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "run_length_encoder.h" #include #include #include #include "persist_lua.h" integer_run_length_encoder::integer_run_length_encoder(size_t iRecordSize) : buffer(iRecordSize * 8 * 4), output(iRecordSize * 8 * 4), record_size(iRecordSize) {} void integer_run_length_encoder::write(uint32_t iValue) { buffer[(buffer_offset + buffer_size) % buffer.size()] = iValue; if (++buffer_size == buffer.size()) flush(false); } void integer_run_length_encoder::finish() { if (buffer_size != 0) flush(true); } void integer_run_length_encoder::flush(bool bAll) { do { if (object_size == 0) { // Decide on the size of the next object // Want the object size which gives most object repeats, then for // two sizes with the same repeat count, the smaller size. size_t iBestRepeats = 0; size_t iBestSize = 0; size_t iBestOffset = 0; for (size_t iNumRecords = 1; iNumRecords <= 8; ++iNumRecords) { for (size_t iOffset = 0; iOffset < iNumRecords; ++iOffset) { size_t iNumRepeats = 0; size_t iObjSize = iNumRecords * record_size; while (iObjSize * (iOffset + iNumRepeats + 1) <= buffer_size && are_ranges_equal(0, iNumRepeats, iOffset, iObjSize)) { ++iNumRepeats; } if (iNumRepeats > iBestRepeats || (iNumRepeats == iBestRepeats && iObjSize < iBestSize)) { iBestRepeats = iNumRepeats; iBestSize = iObjSize; iBestOffset = iOffset; } } } if (iBestRepeats == 1) { // No repeats were found, so the best we can do is output // a large non-repeating blob. move_object_to_output(std::min(buffer_size, 8 * record_size), 1); } else { if (iBestOffset != 0) move_object_to_output(iBestOffset * record_size, 1); // Mark the object as the current one, and remove all but the // last instance of it from the buffer. On the next flush, the // new data might continue the same object, hence why the // object isn't output just yet. object_size = iBestSize; object_copies = iBestRepeats - 1; buffer_offset = (buffer_offset + object_size * object_copies) % buffer.size(); buffer_size -= object_size * object_copies; } } else { // Try to match more of the current object while (object_size * 2 <= buffer_size && are_ranges_equal(0, 1, 0, object_size)) { ++object_copies; buffer_offset = (buffer_offset + object_size) % buffer.size(); buffer_size -= object_size; } // Write data if (object_size * 2 <= buffer_size || bAll) { move_object_to_output(object_size, object_copies + 1); object_size = 0; object_copies = 0; } } } while (bAll && buffer_size != 0); } bool integer_run_length_encoder::are_ranges_equal(size_t iObjIdx1, size_t iObjIdx2, size_t iOffset, size_t iObjSize) const { iObjIdx1 = buffer_offset + iOffset * record_size + iObjIdx1 * iObjSize; iObjIdx2 = buffer_offset + iOffset * record_size + iObjIdx2 * iObjSize; for (size_t i = 0; i < iObjSize; ++i) { if (buffer[(iObjIdx1 + i) % buffer.size()] != buffer[(iObjIdx2 + i) % buffer.size()]) { return false; } } return true; } bool integer_run_length_encoder::move_object_to_output(size_t iObjSize, size_t iObjCount) { // Grow the output array if needed if (output.size() - output_size <= iObjSize) { size_t iNewSize = (output.size() + iObjSize) * 2; output.resize(iNewSize); } size_t iHeader = (iObjSize / record_size - 1) + 8 * (iObjCount - 1); output[output_size++] = static_cast(iHeader); // Move the object from the buffer to the output for (size_t i = 0; i < iObjSize; ++i) { output[output_size++] = buffer[buffer_offset]; buffer_offset = (buffer_offset + 1) % buffer.size(); } buffer_size -= iObjSize; return true; } const uint32_t* integer_run_length_encoder::get_output(size_t* pCount) const { if (pCount) *pCount = output_size; return output.data(); } void integer_run_length_encoder::pump_output( lua_persist_writer* pWriter) const { pWriter->write_uint(output_size); for (size_t i = 0; i < output_size; ++i) { pWriter->write_uint(output[i]); } } integer_run_length_decoder::integer_run_length_decoder( size_t iRecordSize, lua_persist_reader* pReader) : buffer(9 * iRecordSize), reader(pReader), record_size(iRecordSize) { pReader->read_uint(reads_remaining); } uint32_t integer_run_length_decoder::read() { if (object_copies == 0) { uint32_t iHeader = 0; reader->read_uint(iHeader); --reads_remaining; object_size = record_size * (1 + (iHeader & 7)); object_copies = (iHeader / 8) + 1; for (size_t i = 0; i < object_size; ++i) { reader->read_uint(buffer[i]); --reads_remaining; } } uint32_t iValue = buffer[object_index]; if (++object_index == object_size) { object_index = 0; --object_copies; } return iValue; } bool integer_run_length_decoder::is_finished() const { return reads_remaining == 0 && object_copies == 0; } CorsixTH-0.70.0/CorsixTH/Src/run_length_encoder.h000066400000000000000000000102131522247547500215620ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_RLE_H_ #define CORSIX_TH_RLE_H_ #include "config.h" #include class lua_persist_reader; class lua_persist_writer; //! Encoder for reducing the amount of space to store a sequence of integers /*! Designed primarily for reducing the amount of space taken up by persisting a THMap, this encoder transforms a sequence of integer records into a sequence of pairs, each pair having an integer object, and a repeat count. Terminology: * Integer - An unsigned integer (up to) 32 bits wide. * Record - One or more integers (for example, when encoding map nodes, each record would be 6 integers if a map node had 6 fields). * Object - One or more records. Each object has an associated repeat count. */ class integer_run_length_encoder { public: //! Initialise the encoder /*! Prepares the encoder for accepting a sequence of records. \param iRecordSize The number of integers in a record. */ explicit integer_run_length_encoder(size_t iRecordSize); //! Supply the next integer in the input sequence to the encoder void write(uint32_t iValue); //! Inform the encoder that the input sequence has finished /*! finish() must be called prior to getOutput() or pumpOutput(). write() must not be called after finish() has been called. */ void finish(); const uint32_t* get_output(size_t* pCount) const; void pump_output(lua_persist_writer* pWriter) const; private: //! Reduce the amount of data in the buffer /*! \param bAll If true, will reduce buffer_size to zero. If false, will reduce buffer_size by some amount. */ void flush(bool bAll); bool are_ranges_equal(size_t iObjIdx1, size_t iObjIdx2, size_t iOffset, size_t iObjSize) const; bool move_object_to_output(size_t iObjSize, size_t iObjCount); //! A circular fixed-size buffer holding the most recent input std::vector buffer; //! A variable-length array holding the output sequence std::vector output; //! The number of integers in a record size_t record_size; //! The current number of integers stored in the buffer size_t buffer_size{}; //! The index into buffer of the 1st integer size_t buffer_offset{}; //! The current number of integers stored in the output size_t output_size{}; //! The number of integers in the current object (multiple of record size) size_t object_size{}; //! The number of copies of the current object already seen and removed //! from the buffer. size_t object_copies{}; }; //! Decoder for reading a sequence of integers encoded by //! integer_run_length_encoder class integer_run_length_decoder { public: integer_run_length_decoder(size_t iRecordSize, lua_persist_reader* pReader); uint32_t read(); bool is_finished() const; private: std::vector buffer; // Not owned by the decoder, the reader to read from. lua_persist_reader* reader; size_t reads_remaining{}; size_t record_size; size_t object_copies{}; size_t object_index{}; size_t object_size{}; }; #endif // CORSIX_TH_RLE_H_ CorsixTH-0.70.0/CorsixTH/Src/sdl_audio.cpp000066400000000000000000000204661522247547500202270ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #include #include #include #include #include #include #include #include "lua.hpp" #include "lua_sdl.h" #include "th_lua.h" #include "xmi2mid.h" #ifdef _MSC_VER #pragma comment(lib, "SDL2_mixer") #endif class music { public: Mix_Music* pMusic{nullptr}; music() = default; ~music() { if (pMusic) { Mix_FreeMusic(pMusic); pMusic = nullptr; } } }; namespace { void audio_music_over_callback() { SDL_Event e; e.type = SDL_USEREVENT_MUSIC_OVER; SDL_PushEvent(&e); } int l_init(lua_State* L) { constexpr int chunk_size = 2048; size_t soundfont_path_len; const char* sound_font = luaL_optlstring(L, 4, nullptr, &soundfont_path_len); // soundfont must be set before Mix_OpenAudio the first time or else // fluidsynth is not loaded if (sound_font != nullptr) { Mix_SetSoundFonts(sound_font); } int err = Mix_OpenAudio( static_cast(luaL_optinteger(L, 1, MIX_DEFAULT_FREQUENCY)), MIX_DEFAULT_FORMAT, static_cast(luaL_optinteger(L, 2, MIX_DEFAULT_CHANNELS)), static_cast(luaL_optinteger(L, 3, chunk_size))); if (err != 0) { lua_pushboolean(L, 0); lua_pushstring(L, Mix_GetError()); return 2; } else { lua_pushboolean(L, 1); Mix_HookMusicFinished(audio_music_over_callback); return 1; } } int l_destroy(lua_State* L) { Mix_CloseAudio(); return 0; } struct load_music_async_data { lua_State* L; Mix_Music* music; SDL_RWops* rwop; char* err; SDL_Thread* thread; }; int load_music_async_thread(void* arg) { load_music_async_data* async = (load_music_async_data*)arg; async->music = Mix_LoadMUS_RW(async->rwop, 1); async->rwop = nullptr; if (async->music == nullptr) { size_t iLen = std::strlen(Mix_GetError()) + 1; async->err = (char*)malloc(iLen); std::memcpy(async->err, Mix_GetError(), iLen); } SDL_Event e; e.type = SDL_USEREVENT_MUSIC_LOADED; e.user.data1 = arg; SDL_PushEvent(&e); return 0; } int l_load_music_async(lua_State* L) { size_t iLength; const uint8_t* pData = luaT_checkfile(L, 1, &iLength); luaL_checktype(L, 2, LUA_TFUNCTION); SDL_RWops* rwop = SDL_RWFromConstMem(pData, (int)iLength); lua_settop(L, 2); load_music_async_data* async = luaT_new(L); lua_pushlightuserdata(L, async); lua_pushvalue(L, -2); lua_settable(L, LUA_REGISTRYINDEX); async->L = L; async->music = nullptr; async->rwop = rwop; async->err = nullptr; lua_createtable(L, 2, 0); lua_pushvalue(L, 2); lua_rawseti(L, -2, 1); luaT_stdnew(L, luaT_environindex, true); lua_pushvalue(L, 1); luaT_setenvfield(L, -2, "data"); lua_rawseti(L, -2, 2); lua_settable(L, LUA_REGISTRYINDEX); /* In registry: [light userdata async] -> [full userdata async] [full userdata async] -> { [1] = callback_function, [2] = empty music_t userdata, } New thread will load music, and inform the main loop, which will then call the callback and remove the new entries from the registry. */ async->thread = SDL_CreateThread(load_music_async_thread, "music_thread", async); return 0; } int l_load_music(lua_State* L) { size_t iLength; const uint8_t* pData = luaT_checkfile(L, 1, &iLength); SDL_RWops* rwop = SDL_RWFromConstMem(pData, (int)iLength); Mix_Music* pMusic = Mix_LoadMUS_RW(rwop, 1); if (pMusic == nullptr) { lua_pushnil(L); lua_pushstring(L, Mix_GetError()); return 2; } music* pLMusic = luaT_stdnew(L, luaT_environindex, true); pLMusic->pMusic = pMusic; lua_pushvalue(L, 1); luaT_setenvfield(L, -2, "data"); return 1; } int l_music_volume(lua_State* L) { lua_Number fValue = luaL_checknumber(L, 1); fValue = fValue * (lua_Number)MIX_MAX_VOLUME; int iVolume = static_cast(std::lround(fValue)); if (iVolume < 0) { iVolume = 0; } else if (iVolume > MIX_MAX_VOLUME) { iVolume = MIX_MAX_VOLUME; } Mix_VolumeMusic(iVolume); return 0; } int l_play_music(lua_State* L) { music* pLMusic = luaT_testuserdata(L, -1); int err = Mix_PlayMusic(pLMusic->pMusic, static_cast(luaL_optinteger(L, 2, 1))); if (err != 0) { lua_pushnil(L); lua_pushstring(L, Mix_GetError()); return 2; } lua_pushboolean(L, 1); return 1; } int l_pause_music(lua_State* L) { Mix_PauseMusic(); lua_pushboolean(L, Mix_PausedMusic() != 0 ? 1 : 0); return 1; } int l_resume_music(lua_State* L) { Mix_ResumeMusic(); lua_pushboolean(L, Mix_PausedMusic() == 0 ? 1 : 0); return 1; } int l_stop_music(lua_State* L) { Mix_HaltMusic(); return 0; } int l_transcode_xmi(lua_State* L) { size_t iLength; const uint8_t* pData = luaT_checkfile(L, 1, &iLength); try { size_t iMidLength; uint8_t* pMidData = transcode_xmi_to_midi(pData, iLength, &iMidLength); if (pMidData == nullptr) { lua_pushnil(L); lua_pushliteral(L, "Unable to transcode XMI to MIDI"); return 2; } lua_pushlstring(L, reinterpret_cast(pMidData), iMidLength); delete[] pMidData; } catch (const std::exception& e) { luaL_error(L, "transcode_xmi exception: %s", e.what()); } return 1; } constexpr std::array sdl_audiolib{ {{"init", l_init}, {"transcodeXmiToMid", l_transcode_xmi}, {"destroy", l_destroy}, {nullptr, nullptr}}}; constexpr std::array sdl_musiclib{ {{"loadMusic", l_load_music}, {"loadMusicAsync", l_load_music_async}, {"playMusic", l_play_music}, {"stopMusic", l_stop_music}, {"pauseMusic", l_pause_music}, {"resumeMusic", l_resume_music}, {"setMusicVolume", l_music_volume}, {nullptr, nullptr}}}; } // namespace int l_load_music_async_callback(lua_State* L) { load_music_async_data* async = (load_music_async_data*)lua_touserdata(L, 1); // Frees resources allocated to the thread SDL_WaitThread(async->thread, nullptr); // Replace light UD with full UD lua_pushvalue(L, 1); lua_gettable(L, LUA_REGISTRYINDEX); lua_insert(L, 1); lua_pushnil(L); lua_settable(L, LUA_REGISTRYINDEX); // Get CB function lua_pushvalue(L, 1); lua_gettable(L, LUA_REGISTRYINDEX); lua_rawgeti(L, -1, 1); // Push CB arguments int nargs = 1; if (async->music == nullptr) { lua_pushnil(L); if (async->err) { if (*async->err) { lua_pushstring(L, async->err); nargs = 2; } free(async->err); } } else { lua_rawgeti(L, 2, 2); music* pLMusic = (music*)lua_touserdata(L, -1); pLMusic->pMusic = async->music; async->music = nullptr; } // Finish cleanup lua_pushvalue(L, 1); lua_pushnil(L); lua_settable(L, LUA_REGISTRYINDEX); // Callback lua_call(L, nargs, 0); return 0; } int luaopen_sdl_audio(lua_State* L) { lua_newtable(L); luaT_setfuncs(L, sdl_audiolib.data()); lua_pushboolean(L, 1); lua_setfield(L, -2, "loaded"); lua_createtable(L, 0, 2); lua_pushvalue(L, -1); lua_replace(L, luaT_environindex); lua_pushvalue(L, luaT_environindex); luaT_pushcclosure(L, luaT_stdgc, 1); lua_setfield(L, -2, "__gc"); lua_pushvalue(L, 1); lua_setfield(L, -2, "__index"); lua_pop(L, 1); luaT_setfuncs(L, sdl_musiclib.data()); return 1; } CorsixTH-0.70.0/CorsixTH/Src/sdl_core.cpp000066400000000000000000000343501522247547500200530ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "sdl_core.h" #include #ifdef TRACY_ENABLE #include #endif #include #include #include #include #include "lua.hpp" #include "lua_sdl.h" #include "th_lua.h" namespace { int l_init(lua_State* L) { Uint32 flags = 0; int i; int argc = lua_gettop(L); for (i = 1; i <= argc; ++i) { const char* s = luaL_checkstring(L, i); if (std::strcmp(s, "video") == 0) flags |= SDL_INIT_VIDEO; else if (std::strcmp(s, "audio") == 0) flags |= SDL_INIT_AUDIO; else if (std::strcmp(s, "timer") == 0) flags |= SDL_INIT_TIMER; else if (std::strcmp(s, "*") == 0) flags |= SDL_INIT_EVERYTHING; else luaL_argerror(L, i, "Expected SDL part name"); } if (SDL_Init(flags) != 0) { std::fprintf(stderr, "SDL_Init failed: %s\n", SDL_GetError()); lua_pushboolean(L, 0); return 1; } lua_pushboolean(L, 1); return 1; } Uint32 timer_frame_callback(Uint32 interval, void* param) { SDL_Event e; e.type = SDL_USEREVENT_TICK; SDL_PushEvent(&e); return interval; } class fps_ctrl { public: bool limit_fps{true}; bool track_fps{true}; size_t q_front{0}; size_t q_back{0}; int frame_count{0}; std::array frame_time{}; void init() { limit_fps = true; track_fps = true; q_front = 0; q_back = 0; frame_count = 0; } void count_frame() { Uint32 now = SDL_GetTicks(); frame_time[q_front] = now; q_front = (q_front + 1) % frame_time.size(); if (q_front == q_back) { q_back = (q_back + 1) % frame_time.size(); } else { ++frame_count; } if (now < 1000) { now = 0; } else { now -= 1000; } while (frame_time[q_back] < now) { --frame_count; q_back = (q_back + 1) % frame_time.size(); } } }; fps_ctrl fps; constexpr uint32_t infinite_loop_limit{100}; uint32_t infinite_loop_counter{0}; void l_infinite_loop_hook(lua_State* L, lua_Debug*) { infinite_loop_counter++; if (infinite_loop_counter >= infinite_loop_limit) { luaL_error(L, "Suspected infinite loop"); } } void l_push_modifiers_table(lua_State* L, Uint16 mod) { lua_newtable(L); if ((mod & KMOD_SHIFT) != 0) { luaT_pushtablebool(L, "shift", true); } if ((mod & KMOD_ALT) != 0) { luaT_pushtablebool(L, "alt", true); } if ((mod & KMOD_CTRL) != 0) { luaT_pushtablebool(L, "ctrl", true); } if ((mod & KMOD_GUI) != 0) { luaT_pushtablebool(L, "gui", true); } if ((mod & KMOD_NUM) != 0) { luaT_pushtablebool(L, "numlockactive", true); } } int l_get_key_modifiers(lua_State* L) { l_push_modifiers_table(L, SDL_GetModState()); return 1; } int l_quit(lua_State*) { SDL_Event e; e.type = SDL_QUIT; SDL_PushEvent(&e); return 0; } /// Lua CFunction error handler for dispatch calls /** * Calls TheApp:errorHandler with the dispatch type and stacktrace of the * error. */ int l_error_handler(lua_State* L) { lua_getglobal(L, "debug"); lua_getfield(L, -1, "traceback"); int traceArgs = 1; if (lua_type(L, 1) == LUA_TSTRING) { traceArgs = 2; lua_pushvalue(L, 1); } lua_pushinteger(L, 2); // skip this level of the traceback int err = lua_pcall(L, traceArgs, 1, 0); if (err != LUA_OK) { return err; } lua_getglobal(L, "TheApp"); lua_getfield(L, -1, "errorHandler"); lua_pushvalue(L, -2); // TheApp lua_pushvalue(L, lua_upvalueindex(1)); lua_pushvalue(L, -5); // The traceback result err = lua_pcall(L, 3, 0, 0); lua_pushinteger(L, err); return 1; } /// Add dispatch call to the stack /** * The resulting lua stack becomes: * L(-4) - error handler function * L(-3) - dispatch function * L(-2) - TheApp global (first argument) * L(-1) - dispatch type string * * Further arguments can be added before calling with lua_pcall */ void push_app_dispatch(lua_State* L, std::string_view dispatch_event) { lua_pushlstring(L, dispatch_event.data(), dispatch_event.size()); lua_pushcclosure(L, &l_error_handler, 1); lua_getglobal(L, "TheApp"); lua_getfield(L, -1, "dispatch"); lua_pushvalue(L, -2); lua_pushlstring(L, dispatch_event.data(), dispatch_event.size()); lua_remove(L, -4); // TheApp global } int l_track_fps(lua_State* L) { fps.track_fps = lua_isnone(L, 1) ? true : (lua_toboolean(L, 1) != 0); return 0; } int l_limit_fps(lua_State* L) { fps.limit_fps = lua_isnone(L, 1) ? true : (lua_toboolean(L, 1) != 0); return 0; } int l_get_fps(lua_State* L) { if (fps.track_fps) { lua_pushinteger(L, fps.frame_count); } else { lua_pushnil(L); } return 1; } int l_get_ticks(lua_State* L) { lua_pushinteger(L, SDL_GetTicks()); return 1; } constexpr std::array sdllib{ {{"init", l_init}, {"quit", l_quit}, {"getTicks", l_get_ticks}, {"getKeyModifiers", l_get_key_modifiers}, {"getFPS", l_get_fps}, {"trackFPS", l_track_fps}, {"limitFPS", l_limit_fps}, {nullptr, nullptr}}}; void load_extra(lua_State* L, const char* name, lua_CFunction fn) { luaT_pushcfunction(L, fn); lua_call(L, 0, 1); lua_setfield(L, -2, name); } } // namespace constexpr std::string_view dispatch_keydown("keydown"); constexpr std::string_view dispatch_keyup("keyup"); constexpr std::string_view dispatch_textinput("textinput"); constexpr std::string_view dispatch_textediting("textediting"); constexpr std::string_view dispatch_buttondown("buttondown"); constexpr std::string_view dispatch_buttonup("buttonup"); constexpr std::string_view dispatch_mousewheel("mousewheel"); constexpr std::string_view dispatch_motion("motion"); constexpr std::string_view dispatch_multigesture("multigesture"); constexpr std::string_view dispatch_active("active"); constexpr std::string_view dispatch_music_over("music_over"); constexpr std::string_view dispatch_movie_over("movie_over"); constexpr std::string_view dispatch_sound_over("sound_over"); constexpr std::string_view dispatch_timer("timer"); constexpr std::string_view dispatch_callback("callback"); constexpr std::string_view dispatch_window_resize("window_resize"); constexpr std::string_view dispatch_frame("frame"); void mainloop(lua_State* L) { SDL_TimerID timer = SDL_AddTimer(usertick_period_ms, timer_frame_callback, nullptr); SDL_Event e; #ifndef TRACY_ENABLE lua_Hook hookFn = lua_gethook(L); if (!hookFn) { lua_sethook(L, l_infinite_loop_hook, LUA_MASKCOUNT, 1e7); } else { std::printf( "Warning: Infinite loop detection disabled due to existing Lua hook\n"); } #endif std::string_view last_dispatch; int wait_error = 0; while ((wait_error = SDL_WaitEvent(&e)) != 0) { bool do_frame = false; bool do_timer = false; do { int nargs; switch (e.type) { case SDL_QUIT: goto leave_loop; case SDL_KEYDOWN: last_dispatch = dispatch_keydown; push_app_dispatch(L, last_dispatch); lua_pushstring(L, SDL_GetKeyName(e.key.keysym.sym)); l_push_modifiers_table(L, e.key.keysym.mod); lua_pushboolean(L, e.key.repeat != 0); nargs = 4; break; case SDL_KEYUP: last_dispatch = dispatch_keyup; push_app_dispatch(L, last_dispatch); lua_pushstring(L, SDL_GetKeyName(e.key.keysym.sym)); l_push_modifiers_table(L, e.key.keysym.mod); nargs = 3; break; case SDL_TEXTINPUT: last_dispatch = dispatch_textinput; push_app_dispatch(L, last_dispatch); lua_pushstring(L, e.text.text); nargs = 2; break; case SDL_TEXTEDITING: last_dispatch = dispatch_textediting; push_app_dispatch(L, dispatch_textediting); lua_pushstring(L, e.edit.text); lua_pushinteger(L, e.edit.start); lua_pushinteger(L, e.edit.length); nargs = 4; break; case SDL_MOUSEBUTTONDOWN: last_dispatch = dispatch_buttondown; push_app_dispatch(L, last_dispatch); lua_pushinteger(L, e.button.button); lua_pushinteger(L, e.button.x); lua_pushinteger(L, e.button.y); nargs = 4; break; case SDL_MOUSEBUTTONUP: last_dispatch = dispatch_buttonup; push_app_dispatch(L, dispatch_buttonup); lua_pushinteger(L, e.button.button); lua_pushinteger(L, e.button.x); lua_pushinteger(L, e.button.y); nargs = 4; break; case SDL_MOUSEWHEEL: last_dispatch = dispatch_mousewheel; push_app_dispatch(L, last_dispatch); lua_pushinteger(L, e.wheel.x); lua_pushinteger(L, e.wheel.y); nargs = 3; break; case SDL_MOUSEMOTION: last_dispatch = dispatch_motion; push_app_dispatch(L, last_dispatch); lua_pushinteger(L, e.motion.x); lua_pushinteger(L, e.motion.y); lua_pushinteger(L, e.motion.xrel); lua_pushinteger(L, e.motion.yrel); nargs = 5; break; case SDL_MULTIGESTURE: last_dispatch = dispatch_multigesture; push_app_dispatch(L, last_dispatch); lua_pushinteger(L, e.mgesture.numFingers); lua_pushnumber(L, e.mgesture.dTheta); lua_pushnumber(L, e.mgesture.dDist); lua_pushnumber(L, e.mgesture.x); lua_pushnumber(L, e.mgesture.y); nargs = 6; break; case SDL_WINDOWEVENT: switch (e.window.event) { case SDL_WINDOWEVENT_FOCUS_GAINED: last_dispatch = dispatch_active; push_app_dispatch(L, last_dispatch); lua_pushinteger(L, 1); nargs = 2; break; case SDL_WINDOWEVENT_FOCUS_LOST: last_dispatch = dispatch_active; push_app_dispatch(L, last_dispatch); lua_pushinteger(L, 0); nargs = 2; break; case SDL_WINDOWEVENT_SIZE_CHANGED: last_dispatch = dispatch_window_resize; push_app_dispatch(L, last_dispatch); lua_pushinteger(L, e.window.data1); lua_pushinteger(L, e.window.data2); nargs = 3; break; default: nargs = 0; break; } break; case SDL_USEREVENT_MUSIC_OVER: last_dispatch = dispatch_music_over; push_app_dispatch(L, last_dispatch); nargs = 1; break; case SDL_USEREVENT_MUSIC_LOADED: last_dispatch = dispatch_callback; lua_pushlstring(L, last_dispatch.data(), last_dispatch.size()); lua_pushcclosure(L, &l_error_handler, 1); lua_pushcfunction(L, &l_load_music_async_callback); lua_pushlightuserdata(L, e.user.data1); if (lua_pcall(L, 1, 0, -3) != LUA_OK) { SDL_RemoveTimer(timer); } lua_pop(L, 1); // Remove l_error_handler nargs = 0; break; case SDL_USEREVENT_TICK: do_timer = true; nargs = 0; break; case SDL_USEREVENT_MOVIE_OVER: last_dispatch = dispatch_movie_over; push_app_dispatch(L, last_dispatch); nargs = 1; break; case SDL_USEREVENT_SOUND_OVER: last_dispatch = dispatch_sound_over; push_app_dispatch(L, last_dispatch); lua_pushinteger(L, *(static_cast(e.user.data1))); nargs = 2; break; default: nargs = 0; break; } if (nargs != 0) { int res = lua_pcall(L, nargs + 1, 1, -3 - nargs); if (res != LUA_OK) { std::fprintf(stderr, "Error in %.*s: %s\n", static_cast(last_dispatch.size()), last_dispatch.data(), lua_tostring(L, -1)); } do_frame = do_frame || (lua_toboolean(L, -1) != 0); lua_pop(L, 2); } } while (SDL_PollEvent(&e) != 0); if (do_timer) { last_dispatch = dispatch_timer; push_app_dispatch(L, last_dispatch); int res = lua_pcall(L, 2, 1, -4); if (res != LUA_OK) { std::fprintf(stderr, "Error in timer callback: %s\n", lua_tostring(L, -1)); } do_frame = do_frame || (lua_toboolean(L, -1) != 0); lua_pop(L, 2); } if (do_frame || !fps.limit_fps) { last_dispatch = dispatch_frame; do { if (fps.track_fps) { fps.count_frame(); } push_app_dispatch(L, last_dispatch); int res = lua_pcall(L, 2, 1, -4); if (res != LUA_OK) { std::fprintf(stderr, "Error in frame callback: %s\n", lua_tostring(L, -1)); } else { do_frame = do_frame || (lua_toboolean(L, -1) != 0); lua_pop(L, 2); } infinite_loop_counter = 0; } while (fps.limit_fps == false && SDL_PollEvent(nullptr) == 0); } // No events pending - a good time to do a bit of garbage collection lua_gc(L, LUA_GCSTEP, 2); infinite_loop_counter = 0; } if (wait_error != 0) { std::fprintf(stderr, "%s\n", SDL_GetError()); } leave_loop: SDL_RemoveTimer(timer); } int luaopen_sdl(lua_State* L) { fps.init(); luaT_register(L, "sdl", sdllib); load_extra(L, "audio", luaopen_sdl_audio); load_extra(L, "wm", luaopen_sdl_wm); return 1; } CorsixTH-0.70.0/CorsixTH/Src/sdl_core.h000066400000000000000000000024301522247547500175120ustar00rootroot00000000000000/* Copyright (c) 2026 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIXTH_SDL_CORE_H #define CORSIXTH_SDL_CORE_H #include "lua.hpp" void mainloop(lua_State* L); int luaopen_sdl_audio(lua_State* L); int luaopen_sdl_wm(lua_State* L); int luaopen_sdl(lua_State* L); #endif // CORSIXTH_SDL_CORE_H CorsixTH-0.70.0/CorsixTH/Src/sdl_wm.cpp000066400000000000000000000047021522247547500175440ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "lua.hpp" #include "th_lua.h" #ifdef CORSIX_TH_USE_WIN32_SDK #include #include #include "../resource.h" #endif #include #include namespace { int l_set_icon_win32(lua_State* L) { // Hack to set the window icon from the EXE resource under Windows. // Does nothing (and returns false) on other platforms. lua_pushboolean(L, 0); #if 0 // XXX: Doesn't work any more, since window is inside renderer. Move to renderer. SDL_SysWMinfo oWindowInfo; oWindowInfo.version.major = SDL_MAJOR_VERSION; oWindowInfo.version.minor = SDL_MINOR_VERSION; oWindowInfo.version.patch = SDL_PATCHLEVEL; if(SDL_GetWindowWMInfo(window,&oWindowInfo) == 1) { HWND hWindow = oWindowInfo.info.win.window; HICON hIcon = LoadIcon((HINSTANCE)GetModuleHandle(nullptr), (LPCTSTR)IDI_CORSIXTH); SetClassLongPtr(hWindow, GCLP_HICON, (LONG_PTR)hIcon); SetClassLongPtr(hWindow, GCLP_HICONSM, (LONG_PTR)hIcon); lua_pushboolean(L, 1); } #endif return 1; } int l_show_cursor(lua_State* L) { SDL_ShowCursor(lua_toboolean(L, 1)); return 0; } constexpr std::array sdl_wmlib{ {{"setIconWin32", l_set_icon_win32}, {"showCursor", l_show_cursor}, {nullptr, nullptr}}}; } // namespace int luaopen_sdl_wm(lua_State* L) { lua_newtable(L); luaT_setfuncs(L, sdl_wmlib.data()); return 1; } CorsixTH-0.70.0/CorsixTH/Src/th.cpp000066400000000000000000000161071522247547500166740ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th.h" #include "config.h" #include #include #include "cp437_table.h" #include "cp936_table.h" #include "cpmik_table.h" link_list::link_list() = default; link_list::~link_list() { remove_from_list(); } void link_list::remove_from_list() { if (prev != nullptr) { prev->next = next; } if (next != nullptr) { next->prev = prev; next = nullptr; } prev = nullptr; } namespace { void utf8encode(uint8_t*& sOut, uint32_t iCodepoint) { if (iCodepoint <= 0x7F) { *sOut = static_cast(iCodepoint); ++sOut; } else if (iCodepoint <= 0x7FF) { uint8_t cSextet = iCodepoint & 0x3F; iCodepoint >>= 6; sOut[0] = static_cast(0xC0 + iCodepoint); sOut[1] = static_cast(0x80 + cSextet); sOut += 2; } else if (iCodepoint <= 0xFFFF) { uint8_t cSextet2 = iCodepoint & 0x3F; iCodepoint >>= 6; uint8_t cSextet1 = iCodepoint & 0x3F; iCodepoint >>= 6; sOut[0] = static_cast(0xE0 + iCodepoint); sOut[1] = static_cast(0x80 + cSextet1); sOut[2] = static_cast(0x80 + cSextet2); sOut += 3; } else { uint8_t cSextet3 = iCodepoint & 0x3F; iCodepoint >>= 6; uint8_t cSextet2 = iCodepoint & 0x3F; iCodepoint >>= 6; uint8_t cSextet1 = iCodepoint & 0x3F; iCodepoint >>= 6; sOut[0] = static_cast(0xF0 + iCodepoint); sOut[1] = static_cast(0x80 + cSextet1); sOut[2] = static_cast(0x80 + cSextet2); sOut[3] = static_cast(0x80 + cSextet3); sOut += 4; } } void CopyStringCP437(const uint8_t*& sIn, uint8_t*& sOut) { uint8_t cChar; do { cChar = *sIn; ++sIn; if (cChar < 0x80) { *sOut = cChar; ++sOut; } else { utf8encode(sOut, cp437_to_unicode_table[cChar - 0x80]); } } while (cChar != 0); } void CopyStringMIK(const uint8_t*& sIn, uint8_t*& sOut) { uint8_t cChar; do { cChar = *sIn; ++sIn; if (cChar < 0x80) { *sOut = cChar; ++sOut; } else { utf8encode(sOut, cpmik_to_unicode_table[cChar - 0x80]); } } while (cChar != 0); } void CopyStringCP936(const uint8_t*& sIn, uint8_t*& sOut) { uint8_t cChar1, cChar2; do { cChar1 = *sIn; ++sIn; if (cChar1 < 0x81 || cChar1 == 0xFF) { *sOut = cChar1; ++sOut; } else { cChar2 = *sIn; ++sIn; if (0x40 <= cChar2 && cChar2 <= 0xFE) { utf8encode(sOut, cp936_to_unicode_table[cChar1 - 0x81][cChar2 - 0x40]); // The Theme Hospital string tables seem to like following a // multibyte character with a superfluous space. cChar2 = *sIn; if (cChar2 == ' ') ++sIn; } else { *sOut = cChar1; ++sOut; *sOut = cChar2; ++sOut; } } } while (cChar1 != 0); } enum class encoding { cp437, cp936, mik }; encoding detect_encoding(const uint8_t* data, size_t length) { const uint8_t mik_prefix[] = {0x8C, 0xA5, 0xA4, 0xB1, 0xA5}; if (length >= sizeof(mik_prefix) && std::equal(mik_prefix, mik_prefix + sizeof(mik_prefix), data)) { // The MIK encoding is used in the Russian version of the game, and has a // fixed length of 0x1619D bytes. return encoding::mik; } // The range of bytes 0xB0 through 0xDF are box drawing characters in CP437 // which shouldn't occur much (if ever) in TH strings, whereas they are // commonly used in GB2312 encoding. We use 10% as a threshold. size_t iBCDCount = 0; for (size_t i = 0; i < length; ++i) { if (0xB0 <= data[i] && data[i] <= 0xDF) ++iBCDCount; } if (iBCDCount * 10 >= length) return encoding::cp936; else return encoding::cp437; } } // namespace // https://github.com/CorsixTH/theme-hospital-spec/blob/master/format-specification.md#strings th_string_list::th_string_list(const uint8_t* data, size_t length) { if (length < 2) throw std::invalid_argument("length must be 2 or larger"); size_t iSectionCount = bytes_to_uint16_le(data); size_t iHeaderLength = (iSectionCount + 1) * 2; if (length < iHeaderLength) throw std::invalid_argument("iDataLength must be larger than the header"); size_t iStringDataLength = length - iHeaderLength; const uint8_t* sStringData = data + iHeaderLength; const uint8_t* sDataEnd = sStringData + iStringDataLength; void (*fnCopyString)(const uint8_t*&, uint8_t*&); switch (detect_encoding(sStringData, iStringDataLength)) { case encoding::cp437: fnCopyString = CopyStringCP437; break; case encoding::cp936: fnCopyString = CopyStringCP936; break; case encoding::mik: fnCopyString = CopyStringMIK; } // String buffer sized to accept the largest possible reencoding of the // characters interpreted as CP936 or CP437 (2 bytes per character). string_buffer.resize(iStringDataLength * 2 + 2); uint8_t* sDataOut = string_buffer.data(); sections.resize(iSectionCount); for (size_t i = 0; i < iSectionCount; ++i) { // The section sizes start at offset 2 in the data, after the section count. // Each section size is 2 bytes. size_t sectionSizeOffset = (i + 1) * 2; size_t sectionSize = bytes_to_uint16_le(data + sectionSizeOffset); // Read the strings for the section. // // All of the strings get stored in string_buffer which sDataOut points // into. The sections vectors get filled with the pointers to the start of // each string in string_buffer. sections[i].reserve(sectionSize); for (size_t j = 0; j < sectionSize; ++j) { sections[i].push_back(reinterpret_cast(sDataOut)); if (sStringData != sDataEnd) { fnCopyString(sStringData, sDataOut); } } } // Terminate final string with nil character *sDataOut = 0; } size_t th_string_list::get_section_count() const { return sections.size(); } size_t th_string_list::get_section_size(size_t section) const { return section < sections.size() ? sections[section].size() : 0; } const char* th_string_list::get_string(size_t section, size_t index) const { if (index < get_section_size(section)) { return sections[section][index]; } return nullptr; } CorsixTH-0.70.0/CorsixTH/Src/th.h000066400000000000000000000074401522247547500163410ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_H_ #define CORSIX_TH_TH_H_ #include "config.h" #include //! Generic linked list class (for inheriting from) class link_list { public: link_list(); virtual ~link_list(); link_list* prev{nullptr}; link_list* next{nullptr}; void remove_from_list(); }; //! \brief Theme Hospital localised string list //! //! Presents Theme Hospital strings by section and index. class th_string_list { public: //! Construct an instance of string_list from the given data //! from a Theme Hosptial string file. The format of the data is //! described at: //! https://github.com/alexandergitter/theme-hospital-spec/blob/master/format-specification.md#strings //! //! \param data A pointer to the raw data //! \param length The size of the data th_string_list(const uint8_t* data, size_t length); // Delete default constructors and assignment operators. They // can be implemented properly later if they are needed but // for now they are unneeded so it is safer to remove them. th_string_list() = delete; th_string_list(const th_string_list&) = delete; th_string_list(th_string_list&&) = delete; th_string_list& operator=(const th_string_list&) = delete; th_string_list&& operator=(th_string_list&&) = delete; ~th_string_list() = default; //! Get the number of sections in the string list size_t get_section_count() const; //! Get the number of strings in a section of the string list size_t get_section_size(size_t section) const; //! Get a string from the string list /*! @param section Section index in range [0, getSectionCount() - 1] @param index String index in range [0, getSectionSize(iSection) - 1] @return nullptr if the index is invalid, otherwise a UTF-8 encoded string. */ const char* get_string(size_t section, size_t index) const; private: //! Section information std::vector> sections; //! Memory block containing all the actual strings utf-8 encoded std::vector string_buffer; }; /** * Convert 4 bytes representing uint32 in little endian representation into a * uint32. * * @param bytes A pointer to the first of 4 sequential bytes in memory making * up the uint32. */ inline uint32_t bytes_to_uint32_le(const uint8_t* bytes) { uint32_t res = bytes[3]; res <<= 8; res |= bytes[2]; res <<= 8; res |= bytes[1]; res <<= 8; res |= bytes[0]; return res; } /** * Convert 2 bytes representing uint16 in little endian representation into a * uint16. * * @param bytes A pointer to the first of 2 sequential bytes in memory making * up the uint16. */ inline uint16_t bytes_to_uint16_le(const uint8_t* bytes) { uint16_t res = bytes[1]; res <<= 8; res |= bytes[0]; return res; } #endif // CORSIX_TH_TH_H_ CorsixTH-0.70.0/CorsixTH/Src/th_gfx.cpp000066400000000000000000001552401522247547500175420ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th_gfx.h" #include "config.h" #include #include #include #include #include #include #include #include "persist_lua.h" #include "th_gfx_sdl.h" #include "th_lua.h" #include "th_map.h" #include "th_sound.h" /** Data retrieval class, simulating sequential access to the data, keeping * track of available length. */ class memory_reader { public: memory_reader(const uint8_t* pData, const size_t iLength) : data(pData), remaining_bytes(iLength) {} const uint8_t* data; ///< Pointer to the remaining data. size_t remaining_bytes; ///< Remaining number of bytes. //! Can \a iSize bytes be read from the file? /*! @param iSize Number of bytes that are queried. @return Whether the requested number of bytes is still available. */ bool are_bytes_available(size_t iSize) const { return iSize <= remaining_bytes; } //! Is EOF reached? /*! @return Whether EOF has been reached. */ bool is_at_end_of_file() const { return remaining_bytes == 0; } //! Get an 8 bit value from the file. /*! @return Read 8 bit value. @pre There should be at least a byte available for reading. */ uint8_t read_uint8() { assert(remaining_bytes > 0); uint8_t iVal = *data; data++; remaining_bytes--; return iVal; } //! Get a 16 bit value from the file. /*! @return Read 16 bit value. @pre There should be at least 2 bytes available for reading. */ uint16_t read_uint16() { uint16_t iVal = read_uint8(); uint16_t iVal2 = read_uint8(); return static_cast(iVal | (iVal2 << 8)); } //! Get a signed 16 bit value from the file. /*! @return The read signed 16 bit value. @pre There should be at least 2 bytes available for reading. */ int read_int16() { int val = read_uint16(); if (val < 0x7FFF) return val; int ret = -1; return (ret & ~0xFFFF) | val; } //! Get a 32 bit value from the file. /*! @return Read 32 bit value. @pre There should be at least 4 bytes available for reading. */ uint32_t read_uint32() { uint32_t iVal = read_uint16(); uint32_t iVal2 = read_uint16(); return iVal | (iVal2 << 16); } //! Load string from the memory_reader. /*! @param [out] pStr String to load. @return Whether the string could be loaded. */ bool read_string(std::string* pStr) { char buff[256]; if (is_at_end_of_file()) { return false; } size_t iLength = read_uint8(); if (!are_bytes_available(iLength)) { return false; } size_t idx; for (idx = 0; idx < iLength; idx++) { buff[idx] = read_uint8(); } buff[idx] = '\0'; *pStr = std::string(buff); return true; } }; void animation_manager::set_sprite_sheet(sprite_sheet* pSpriteSheet) { sheet = pSpriteSheet; } constexpr size_t bytes_per_animation_property = 4; // Frame information structure reinterpreted from Theme Hospital data. // https://github.com/CorsixTH/theme-hospital-spec/blob/master/format-specification.md#frame struct th_frame_properties { constexpr static size_t size = 10; explicit th_frame_properties(const uint8_t* pData) : list_index{bytes_to_uint32_le(pData)}, // skipping width and height (1 byte each) sound{pData[6]}, flags{pData[7]}, next{bytes_to_uint16_le(pData + 8)} {} uint32_t list_index; uint8_t sound; uint8_t flags; uint16_t next; }; // Structure reinterpreted from Theme Hospital data. // https://github.com/CorsixTH/theme-hospital-spec/blob/master/format-specification.md#spriteelement struct th_element_properties { constexpr static size_t size = 6; explicit th_element_properties(const uint8_t* pData) : table_position{bytes_to_uint16_le(pData)}, offset_x{pData[2]}, offset_y{pData[3]}, layer{static_cast(pData[4] >> 4)}, flags{static_cast(pData[4] & 0xF)}, layer_id{pData[5]} {} uint16_t table_position; uint8_t offset_x; uint8_t offset_y; uint8_t layer; // High nibble of byte 4 uint8_t flags; // Low nibble of byte 4 uint8_t layer_id; }; bool animation_manager::load_from_th_file( const uint8_t* pStartData, size_t iStartDataLength, const uint8_t* pFrameData, size_t iFrameDataLength, const uint8_t* pListData, size_t iListDataLength, const uint8_t* pElementData, size_t iElementDataLength) { size_t iAnimationCount = iStartDataLength / bytes_per_animation_property; size_t iFrameCount = iFrameDataLength / th_frame_properties::size; size_t iListCount = iListDataLength / 2; size_t iElementCount = iElementDataLength / th_element_properties::size; if (iAnimationCount == 0 || iFrameCount == 0 || iListCount == 0 || iElementCount == 0) { return false; } // Start offset of the file data into the vectors. size_t iAnimationStart = animation_count; size_t iFrameStart = frame_count; size_t iListStart = element_list_count; size_t iElementStart = element_count; // Original data file must start at offset 0 due to the hard-coded animation // numbers in the Lua code. if (iAnimationStart > 0 || iFrameStart > 0 || iListStart > 0 || iElementStart > 0) { return false; } // Overflow of list elements. if (iElementStart + iElementCount >= 0xFFFF) { return false; } // Create new space for the data. first_frames.reserve(iAnimationStart + iAnimationCount); frames.reserve(iFrameStart + iFrameCount); element_list.reserve(iListStart + iListCount + 1); elements.reserve(iElementStart + iElementCount); // Read animations. for (size_t i = 0; i < iAnimationCount; ++i) { size_t iFirstFrame = bytes_to_uint16_le(pStartData + i * bytes_per_animation_property); if (iFirstFrame > iFrameCount) { iFirstFrame = 0; } iFirstFrame += iFrameStart; first_frames.push_back(iFirstFrame); } // Read frames. for (size_t i = 0; i < iFrameCount; ++i) { const th_frame_properties thFrame(pFrameData + i * th_frame_properties::size); frame oFrame; oFrame.list_index = iListStart + (thFrame.list_index < iListCount ? thFrame.list_index : 0); oFrame.next_frame = iFrameStart + (thFrame.next < iFrameCount ? thFrame.next : 0); oFrame.sound = thFrame.sound; oFrame.flags = thFrame.flags; // Bounding box fields initialised later oFrame.primary_marker_x = 0; oFrame.primary_marker_y = 0; oFrame.secondary_marker_x = 0; oFrame.secondary_marker_y = 0; frames.push_back(oFrame); } // Read the element list. for (size_t i = 0; i < iListCount; ++i) { uint16_t iElmNumber = bytes_to_uint16_le(pListData + i * 2); if (iElmNumber >= iElementCount) { iElmNumber = 0xFFFF; } else { iElmNumber = static_cast(iElmNumber + iElementStart); } element_list.push_back(iElmNumber); } element_list.push_back(0xFFFF); // Read elements. size_t iSpriteCount = sheet->get_sprite_count(); for (size_t i = 0; i < iElementCount; ++i) { const th_element_properties thElement(pElementData + i * th_element_properties::size); element oElement; oElement.sprite = thElement.table_position / 6; // sprite table entries are 6 bytes oElement.flags = thElement.flags; oElement.x = static_cast(thElement.offset_x) - 141; oElement.y = static_cast(thElement.offset_y) - 186; oElement.layer = thElement.layer; if (oElement.layer >= max_number_of_layers) { // Nothing lives on layer 6 oElement.layer = 6; } oElement.layer_id = thElement.layer_id; if (oElement.sprite < iSpriteCount) { oElement.element_sprite_sheet = sheet; } else { oElement.element_sprite_sheet = nullptr; } elements.push_back(oElement); } // Compute bounding box of the animations using the sprite sheet. for (size_t i = 0; i < iFrameCount; ++i) { set_bounding_box(frames[iFrameStart + i]); } animation_count += iAnimationCount; frame_count += iFrameCount; element_list_count += iListCount + 1; element_count += iElementCount; assert(first_frames.size() == animation_count); assert(frames.size() == frame_count); assert(element_list.size() == element_list_count); assert(elements.size() == element_count); return true; } namespace { //! Update \a iLeft with the smallest of both values. /*! @param [inout] iLeft Left value to check and update. @param iRight Second value to check. */ void set_left_to_min(int& iLeft, int iRight) { if (iRight < iLeft) iLeft = iRight; } //! Update \a iLeft with the biggest of both values. /*! @param [inout] iLeft Left value to check and update. @param iRight Second value to check. */ void set_left_to_max(int& iLeft, int iRight) { if (iRight > iLeft) iLeft = iRight; } } // namespace void animation_manager::set_bounding_box(frame& oFrame) { oFrame.bounding_left = INT_MAX; oFrame.bounding_right = INT_MIN; oFrame.bounding_top = INT_MAX; oFrame.bounding_bottom = INT_MIN; size_t iListIndex = oFrame.list_index; for (;; ++iListIndex) { uint16_t iElement = element_list[iListIndex]; if (iElement >= elements.size()) { break; } element& oElement = elements[iElement]; if (oElement.element_sprite_sheet == nullptr) { continue; } int iWidth; int iHeight; oElement.element_sprite_sheet->get_sprite_size_unchecked(oElement.sprite, &iWidth, &iHeight); set_left_to_min(oFrame.bounding_left, oElement.x); set_left_to_min(oFrame.bounding_top, oElement.y); set_left_to_max(oFrame.bounding_right, oElement.x - 1 + (int)iWidth); set_left_to_max(oFrame.bounding_bottom, oElement.y - 1 + (int)iHeight); } } void animation_manager::set_canvas(render_target* pCanvas) { canvas = pCanvas; } namespace { //! Load the header. /*! @param [inout] input Data to read. @return Number of consumed bytes, a negative number indicates an error. */ int load_header(memory_reader& input) { static const uint8_t aHdr[] = {'C', 'T', 'H', 'G', 1, 2}; if (!input.are_bytes_available(6)) { return false; } for (int i = 0; i < 6; i++) { if (input.read_uint8() != aHdr[i]) { return false; } } return true; } } // namespace size_t animation_manager::load_elements( memory_reader& input, sprite_sheet* pSpriteSheet, size_t iNumElements, size_t& iLoadedElements, size_t iElementStart, size_t iElementCount) { size_t iFirst = iLoadedElements + iElementStart; size_t iSpriteCount = pSpriteSheet->get_sprite_count(); while (iNumElements > 0) { if (iLoadedElements >= iElementCount || !input.are_bytes_available(12)) { return SIZE_MAX; } size_t iSprite = input.read_uint32(); int iX = input.read_int16(); int iY = input.read_int16(); uint8_t iLayerClass = input.read_uint8(); uint8_t iLayerId = input.read_uint8(); uint32_t iFlags = input.read_uint16(); if (iLayerClass >= max_number_of_layers) { // Nothing lives on layer 6 iLayerClass = 6; } element oElement; oElement.sprite = iSprite; oElement.flags = iFlags; oElement.x = iX; oElement.y = iY; oElement.layer = iLayerClass; oElement.layer_id = iLayerId; if (oElement.sprite >= iSpriteCount) oElement.element_sprite_sheet = nullptr; else oElement.element_sprite_sheet = pSpriteSheet; elements.push_back(oElement); iLoadedElements++; iNumElements--; } return iFirst; } size_t animation_manager::make_list_elements(size_t iFirstElement, size_t iNumElements, size_t& iLoadedListElements, size_t iListStart, size_t iListCount) { size_t iFirst = iLoadedListElements + iListStart; // Verify there is enough room for all list elements + 0xFFFF if (iLoadedListElements + iNumElements + 1 > iListCount) { return SIZE_MAX; } // Overflow for list elements. assert(iFirstElement + iNumElements < 0xFFFF); while (iNumElements > 0) { element_list.push_back(static_cast(iFirstElement)); iLoadedListElements++; iFirstElement++; iNumElements--; } // Add 0xFFFF. element_list.push_back(0xFFFF); iLoadedListElements++; return iFirst; } namespace { //! Shift the first frame if all frames are available. /*! @param iFirst First frame number, or 0xFFFFFFFFu if no animation. @param iLength Number of frames in the animation. @param iStart Start of the frames for this file. @param iLoaded Number of loaded frames. @return The shifted first frame, or 0xFFFFFFFFu. */ uint32_t shift_first(uint32_t iFirst, size_t iLength, size_t iStart, size_t iLoaded) { if (iFirst == 0xFFFFFFFFu || iFirst + iLength > iLoaded) { return 0xFFFFFFFFu; } return iFirst + static_cast(iStart); } } // namespace void animation_manager::fix_next_frame(uint32_t iFirst, size_t iLength) { if (iFirst == 0xFFFFFFFFu) { return; } frame& oFirst = frames[iFirst]; oFirst.flags |= 0x1; // Start of animation flag. frame& oLast = frames[iFirst + iLength - 1]; oLast.next_frame = iFirst; // Loop last frame back to the first. } bool animation_manager::load_custom_animations(const uint8_t* pData, size_t iDataLength) { memory_reader input(pData, iDataLength); if (!load_header(input)) { return false; } if (!input.are_bytes_available(5 * 4)) { return false; } size_t iAnimationCount = input.read_uint32(); size_t iFrameCount = input.read_uint32(); size_t iElementCount = input.read_uint32(); size_t iSpriteCount = input.read_uint32(); input.read_uint32(); // Total number of bytes sprite data is not used. // Every element is referenced once, and one 0xFFFF for every frame. size_t iListCount = iElementCount + iFrameCount; size_t iFrameStart = frame_count; size_t iListStart = element_list_count; size_t iElementStart = element_count; if (iAnimationCount == 0 || iFrameCount == 0 || iElementCount == 0 || iSpriteCount == 0) { return false; } // Overflow of list elements. if (iElementStart + iElementCount >= 0xFFFF) { return false; } // Create new space for the elements. // Be optimistic in reservation. first_frames.reserve(first_frames.size() + iAnimationCount * 4); frames.reserve(iFrameStart + iFrameCount); element_list.reserve(iListStart + iListCount); elements.reserve(iElementStart + iElementCount); // Construct a sprite sheet for the sprites to be loaded. sprite_sheet pSheet; pSheet.set_sprite_count(iSpriteCount, canvas); custom_sheets.push_back(pSheet); size_t iLoadedFrames = 0; size_t iLoadedListElements = 0; size_t iLoadedElements = 0; size_t iLoadedSprites = 0; // Read the blocks of the file, until hitting EOF. for (;;) { if (input.is_at_end_of_file()) break; // Read identification bytes at the start of each block, and dispatch // loading. if (!input.are_bytes_available(2)) return false; int first = input.read_uint8(); int second = input.read_uint8(); // Recognized a grouped animation block, load it. if (first == 'C' && second == 'A') { animation_key oKey; if (!input.are_bytes_available(2 + 4)) { return false; } oKey.tile_size = input.read_uint16(); size_t iNumFrames = input.read_uint32(); if (iNumFrames == 0) { return false; } if (!input.read_string(&oKey.name)) { return false; } if (!input.are_bytes_available(4 * 4)) { return false; } uint32_t iNorthFirst = input.read_uint32(); uint32_t iEastFirst = input.read_uint32(); uint32_t iSouthFirst = input.read_uint32(); uint32_t iWestFirst = input.read_uint32(); iNorthFirst = shift_first(iNorthFirst, iNumFrames, iFrameStart, iLoadedFrames); iEastFirst = shift_first(iEastFirst, iNumFrames, iFrameStart, iLoadedFrames); iSouthFirst = shift_first(iSouthFirst, iNumFrames, iFrameStart, iLoadedFrames); iWestFirst = shift_first(iWestFirst, iNumFrames, iFrameStart, iLoadedFrames); animation_start_frames oFrames; if (iNorthFirst != 0xFFFFFFFFu) { fix_next_frame(iNorthFirst, iNumFrames); oFrames.north = static_cast(first_frames.size()); first_frames.push_back(iNorthFirst); } if (iEastFirst != 0xFFFFFFFFu) { fix_next_frame(iEastFirst, iNumFrames); oFrames.east = static_cast(first_frames.size()); first_frames.push_back(iEastFirst); } if (iSouthFirst != 0xFFFFFFFFu) { fix_next_frame(iSouthFirst, iNumFrames); oFrames.south = static_cast(first_frames.size()); first_frames.push_back(iSouthFirst); } if (iWestFirst != 0xFFFFFFFFu) { fix_next_frame(iWestFirst, iNumFrames); oFrames.west = static_cast(first_frames.size()); first_frames.push_back(iWestFirst); } named_animation_pair p(oKey, oFrames); named_animations.insert(p); continue; } else if (first == 'F' && second == 'R') { // Recognized a frame block, load it. if (iLoadedFrames >= iFrameCount) { return false; } if (!input.are_bytes_available(2 + 2)) { return false; } int iSound = input.read_uint16(); size_t iNumElements = input.read_uint16(); size_t iElm = load_elements(input, &pSheet, iNumElements, iLoadedElements, iElementStart, iElementCount); if (iElm == SIZE_MAX) { return false; } size_t iListElm = make_list_elements( iElm, iNumElements, iLoadedListElements, iListStart, iListCount); if (iListElm == SIZE_MAX) { return false; } frame oFrame; oFrame.list_index = iListElm; // Point to next frame. // Last frame of each animation corrected later. oFrame.next_frame = iFrameStart + iLoadedFrames + 1; oFrame.sound = iSound; // Set later oFrame.flags = 0; oFrame.primary_marker_x = 0; oFrame.primary_marker_y = 0; oFrame.secondary_marker_x = 0; oFrame.secondary_marker_y = 0; set_bounding_box(oFrame); frames.push_back(oFrame); iLoadedFrames++; continue; } else if (first == 'S' && second == 'P') { // Recognized a Sprite block, load it. if (iLoadedSprites >= iSpriteCount) { return false; } if (!input.are_bytes_available(2 + 2 + 4)) { return false; } int iWidth = input.read_uint16(); int iHeight = input.read_uint16(); uint32_t iSize = input.read_uint32(); // Check it is safe to use as 'int' if (iSize > INT_MAX) { return false; } // Load data. uint8_t* pData = new (std::nothrow) uint8_t[iSize]; if (pData == nullptr) { return false; } if (!input.are_bytes_available(iSize)) { delete[] pData; return false; } for (uint32_t i = 0; i < iSize; i++) { pData[i] = input.read_uint8(); } if (!pSheet.set_sprite_data(iLoadedSprites, pData, true, iSize, iWidth, iHeight)) { return false; } iLoadedSprites++; continue; } else { // Unrecognized block, fail. return false; } } assert(iLoadedFrames == iFrameCount); assert(iLoadedListElements == iListCount); assert(iLoadedElements == iElementCount); assert(iLoadedSprites == iSpriteCount); // Fix the next pointer of the last frame in case it points to non-existing // frames. frame& oFrame = frames[iFrameStart + iFrameCount - 1]; if (iFrameCount > 0 && oFrame.next_frame >= iFrameStart + iFrameCount) { // Useless, but maybe less crashy. oFrame.next_frame = iFrameStart; } animation_count = first_frames.size(); frame_count += iFrameCount; element_list_count += iListCount; element_count += iElementCount; assert(frames.size() == frame_count); assert(element_list.size() == element_list_count); assert(elements.size() == element_count); return true; } const animation_start_frames& animation_manager::get_named_animations( const std::string_view sName, const int iTilesize) const { static const animation_start_frames oNoneAnimations = {-1, -1, -1, -1}; animation_key oKey; oKey.name = sName; oKey.tile_size = iTilesize; named_animations_map::const_iterator iter = named_animations.find(oKey); if (iter == named_animations.end()) { return oNoneAnimations; } return (*iter).second; } size_t animation_manager::get_animation_count() const { return animation_count; } size_t animation_manager::get_frame_count() const { return frame_count; } size_t animation_manager::get_first_frame(size_t iAnimation) const { if (iAnimation < animation_count) { return first_frames[iAnimation]; } else { return 0; } } size_t animation_manager::get_next_frame(size_t iFrame) const { if (iFrame < frame_count) { return frames[iFrame].next_frame; } else { return iFrame; } } void animation_manager::set_animation_alt_palette_map(size_t iAnimation, const uint8_t* pMap, uint32_t iAlt32) { if (iAnimation >= animation_count) { return; } size_t iFrame = first_frames[iAnimation]; size_t iFirstFrame = iFrame; do { size_t iListIndex = frames[iFrame].list_index; for (;; ++iListIndex) { uint16_t iElement = element_list[iListIndex]; if (iElement >= element_count) { break; } element& oElement = elements[iElement]; if (oElement.element_sprite_sheet != nullptr) { oElement.element_sprite_sheet->set_sprite_alt_palette_map( oElement.sprite, pMap, iAlt32); } } iFrame = frames[iFrame].next_frame; } while (iFrame != iFirstFrame); } bool animation_manager::set_frame_primary_marker(size_t iFrame, int iX, int iY) { if (iFrame >= frame_count) { return false; } frames[iFrame].primary_marker_x = iX; frames[iFrame].primary_marker_y = iY; return true; } bool animation_manager::set_frame_secondary_marker(size_t iFrame, int iX, int iY) { if (iFrame >= frame_count) { return false; } frames[iFrame].secondary_marker_x = iX; frames[iFrame].secondary_marker_y = iY; return true; } bool animation_manager::get_frame_primary_marker(size_t iFrame, int* pX, int* pY) { if (iFrame >= frame_count) { return false; } *pX = frames[iFrame].primary_marker_x; *pY = frames[iFrame].primary_marker_y; return true; } bool animation_manager::get_frame_secondary_marker(size_t iFrame, int* pX, int* pY) { if (iFrame >= frame_count) { return false; } *pX = frames[iFrame].secondary_marker_x; *pY = frames[iFrame].secondary_marker_y; return true; } void animation_manager::tick() { ++game_ticks; } bool animation_manager::hit_test(size_t iFrame, const ::layers& oLayers, int iX, int iY, uint32_t iFlags, int iTestX, int iTestY) const { if (iFrame >= frame_count) { return false; } const frame& oFrame = frames[iFrame]; iTestX -= iX; iTestY -= iY; if (iFlags & thdf_flip_horizontal) { iTestX = -iTestX; } if (iTestX < oFrame.bounding_left || iTestX > oFrame.bounding_right) { return false; } if (iFlags & thdf_flip_vertical) { if (-iTestY < oFrame.bounding_top || -iTestY > oFrame.bounding_bottom) { return false; } } else { if (iTestY < oFrame.bounding_top || iTestY > oFrame.bounding_bottom) { return false; } } if (iFlags & thdf_bound_box_hit_test) { return true; } size_t iListIndex = oFrame.list_index; for (;; ++iListIndex) { uint16_t iElement = element_list[iListIndex]; if (iElement >= element_count) { break; } const element& oElement = elements[iElement]; if ((oElement.layer_id != 0 && oLayers.layer_contents[oElement.layer] != oElement.layer_id) || oElement.element_sprite_sheet == nullptr) { continue; } if (iFlags & thdf_flip_horizontal) { int iWidth; int iHeight; oElement.element_sprite_sheet->get_sprite_size_unchecked( oElement.sprite, &iWidth, &iHeight); if (oElement.element_sprite_sheet->hit_test_sprite( oElement.sprite, oElement.x + iWidth - iTestX, iTestY - oElement.y, oElement.flags ^ thdf_flip_horizontal)) { return true; } } else { if (oElement.element_sprite_sheet->hit_test_sprite( oElement.sprite, iTestX - oElement.x, iTestY - oElement.y, oElement.flags)) { return true; } } } return false; } void animation_manager::draw_frame(render_target* pCanvas, size_t iFrame, const ::layers& oLayers, int iX, int iY, uint32_t iFlags, animation_effect patient_effect, size_t patient_effect_offset, int scale_factor) const { if (iFrame >= frame_count) { return; } uint32_t iPassOnFlags = iFlags & (thdf_alt_palette | thdf_nearest); size_t iListIndex = frames[iFrame].list_index; for (;; ++iListIndex) { uint16_t iElement = element_list[iListIndex]; if (iElement >= element_count) { break; } const element& oElement = elements[iElement]; if (oElement.element_sprite_sheet == nullptr) { continue; } if (oElement.layer_id != 0 && oLayers.layer_contents[oElement.layer] != oElement.layer_id) { // Some animations involving doctors (i.e. #72, #74, maybe others) // only provide versions for heads W1 and B1, not W2 and B2. The // quickest way to fix this is this dirty hack here, which draws // the W1 layer as well as W2 if W2 is being used, and similarly // for B1 / B2. A better fix would be to go into each animation // which needs it, and duplicate the W1 / B1 layers to W2 / B2. if (oElement.layer == 5 && oLayers.layer_contents[5] - 4 == oElement.layer_id) { /* don't skip */; } else { continue; } } // Only apply patient animation effect to patient sprites. Layer 0, 0 // represents non-patient sprites such as doors, benches, etc. // TODO: Some animations such as leaving radiation chamber have part of // patient in layer 0, 0, so this condition is not quite correct. animation_effect render_effect = (oElement.layer > 0 || oElement.layer_id > 0) ? patient_effect : animation_effect::none; size_t effect_ticks = game_ticks + patient_effect_offset; int oex = oElement.x * scale_factor; int oey = oElement.y * scale_factor; if (iFlags & thdf_flip_horizontal) { int iWidth; int iHeight; oElement.element_sprite_sheet->get_sprite_size_unchecked( oElement.sprite, &iWidth, &iHeight); iWidth *= scale_factor; iHeight *= scale_factor; oElement.element_sprite_sheet->draw_sprite( pCanvas, oElement.sprite, iX - oex - iWidth, iY + oey, iPassOnFlags | (oElement.flags ^ thdf_flip_horizontal), effect_ticks, render_effect, scale_factor); } else { oElement.element_sprite_sheet->draw_sprite( pCanvas, oElement.sprite, iX + oex, iY + oey, iPassOnFlags | oElement.flags, effect_ticks, render_effect, scale_factor); } } } size_t animation_manager::get_frame_sound(size_t iFrame) { if (iFrame < frame_count) { return frames[iFrame].sound; } else { return 0; } } void animation_manager::get_frame_extent(size_t iFrame, const ::layers& oLayers, int* pMinX, int* pMaxX, int* pMinY, int* pMaxY, uint32_t iFlags) const { int iMinX = INT_MAX; int iMaxX = INT_MIN; int iMinY = INT_MAX; int iMaxY = INT_MIN; if (iFrame < frame_count) { size_t iListIndex = frames[iFrame].list_index; for (;; ++iListIndex) { uint16_t iElement = element_list[iListIndex]; if (iElement >= element_count) { break; } const element& oElement = elements[iElement]; if ((oElement.layer_id != 0 && oLayers.layer_contents[oElement.layer] != oElement.layer_id) || oElement.element_sprite_sheet == nullptr) { continue; } int iX = oElement.x; int iY = oElement.y; int iWidth; int iHeight; oElement.element_sprite_sheet->get_sprite_size_unchecked( oElement.sprite, &iWidth, &iHeight); if (iFlags & thdf_flip_horizontal) iX = -(iX + iWidth); if (iX < iMinX) iMinX = iX; if (iY < iMinY) iMinY = iY; if (iX + iWidth + 1 > iMaxX) iMaxX = iX + iWidth + 1; if (iY + iHeight + 1 > iMaxY) iMaxY = iY + iHeight + 1; } } if (pMinX) *pMinX = iMinX; if (pMaxX) *pMaxX = iMaxX; if (pMinY) *pMinY = iMinY; if (pMaxY) *pMaxY = iMaxY; } chunk_renderer::chunk_renderer(const int width, const int height, std::vector::iterator start) : ptr(start), end(start + (width * height)), width(width), height(height) {} void chunk_renderer::chunk_fill_to_end_of_line(uint8_t value) { if (x != 0 || !skip_eol) { chunk_fill(width - x, value); } skip_eol = false; } void chunk_renderer::chunk_finish(uint8_t value) { chunk_fill(static_cast(end - ptr), value); } void chunk_renderer::chunk_fill(int npixels, uint8_t value) { fix_n_pixels(npixels); if (npixels > 0) { std::fill_n(ptr, npixels, value); increment_position(npixels); } } void chunk_renderer::chunk_copy(int npixels, const uint8_t* in_data) { fix_n_pixels(npixels); if (npixels > 0) { std::copy_n(in_data, npixels, ptr); increment_position(npixels); } } void chunk_renderer::fix_n_pixels(int& npixels) const { if (ptr + npixels > end) { npixels = static_cast(end - ptr); } } void chunk_renderer::increment_position(int npixels) { ptr += npixels; x += npixels; y += x / width; x = x % width; skip_eol = true; } void chunk_renderer::decode_chunks(const uint8_t* data, int datalen, bool complex) { if (complex) { while (!is_done() && datalen > 0) { uint8_t b = *data; --datalen; ++data; if (b == 0) { chunk_fill_to_end_of_line(0xFF); } else if (b < 0x40) { int amt = b; if (datalen < amt) amt = datalen; chunk_copy(amt, data); data += amt; datalen -= amt; } else if ((b & 0xC0) == 0x80) { chunk_fill(b - 0x80, 0xFF); } else { int amt; uint8_t colour = 0; if (b == 0xFF) { if (datalen < 2) { break; } amt = (int)data[0]; colour = data[1]; data += 2; datalen -= 2; } else { amt = b - 60 - (b & 0x80) / 2; if (datalen > 0) { colour = *data; ++data; --datalen; } } chunk_fill(amt, colour); } } } else { while (!is_done() && datalen > 0) { uint8_t b = *data; --datalen; ++data; if (b == 0) { chunk_fill_to_end_of_line(0xFF); } else if (b < 0x80) { int amt = b; if (datalen < amt) amt = datalen; chunk_copy(amt, data); data += amt; datalen -= amt; } else { chunk_fill(0x100 - b, 0xFF); } } } chunk_finish(0xFF); } animation_base::animation_base() : drawable() {} void animation_base::remove_from_tile() { link_list::remove_from_list(); tile = {-1, -1}; } void animation_base::attach_to_tile(const xy_pair& tile_pos, map_tile* node, int layer) { remove_from_tile(); link_list* pList; if (flags & thdf_early_list) { pList = &node->oEarlyEntities; } else { pList = &node->entities; } this->set_drawing_layer(layer); this->set_tile(tile_pos); while (pList->next && static_cast(pList->next)->get_drawing_layer() < layer) { pList = pList->next; } prev = pList; if (pList->next != nullptr) { pList->next->prev = this; this->next = pList->next; } else { next = nullptr; } pList->next = this; } void animation_base::set_layer(int iLayer, int iId) { if (0 <= iLayer && iLayer < max_number_of_layers) { layers.layer_contents[iLayer] = static_cast(iId); } } namespace { bool are_flags_set(uint32_t val, uint32_t flags) { return (val & flags) == flags; } } // namespace animation::animation() { patient_effect_offset = rand(); } void animation::draw(render_target* canvas, const xy_pair& draw_pos) { if (are_flags_set(flags, thdf_alpha_50 | thdf_alpha_75)) return; int x = draw_pos.x + pixel_offset.x * scale_factor; int y = draw_pos.y + pixel_offset.y * scale_factor; if (sound_to_play) { sound_player* pSounds = sound_player::get_singleton(); if (pSounds) pSounds->play_at(sound_to_play, x, y, 0); sound_to_play = 0; } if (manager) { if (flags & thdf_crop) { clip_rect rcNew; rcNew.y = 0; rcNew.h = canvas->get_height(); rcNew.x = x + (crop_column - 1) * 32 * scale_factor; rcNew.w = 64 * scale_factor; render_target::scoped_clip clip(canvas, &rcNew); manager->draw_frame(canvas, frame_index, layers, x, y, flags, patient_effect, patient_effect_offset, scale_factor); } else manager->draw_frame(canvas, frame_index, layers, x, y, flags, patient_effect, patient_effect_offset, scale_factor); } } void animation::draw_child(render_target* canvas, const xy_pair& draw_pos, bool use_primary) { if (are_flags_set(flags, thdf_alpha_50 | thdf_alpha_75)) return; if (are_flags_set(parent->flags, thdf_alpha_50 | thdf_alpha_75)) return; int x = 0, y = 0; if (use_primary) parent->get_primary_marker(&x, &y); else parent->get_secondary_marker(&x, &y); x += pixel_offset.x * scale_factor + draw_pos.x; y += pixel_offset.y * scale_factor + draw_pos.y; if (sound_to_play) { sound_player* pSounds = sound_player::get_singleton(); if (pSounds) pSounds->play_at(sound_to_play, x, y, 0); sound_to_play = 0; } if (manager) manager->draw_frame(canvas, frame_index, layers, x, y, flags, animation_effect::none, 0, scale_factor); } bool animation::hit_test_child(const xy_pair& draw_pos, const xy_pair& obj_pos) { // TODO return false; } void animation::draw_morph(render_target* canvas, const xy_pair& draw_pos) { if (are_flags_set(flags, thdf_alpha_50 | thdf_alpha_75)) return; if (!manager) return; int x = draw_pos.x + pixel_offset.x * scale_factor; int y = draw_pos.y + pixel_offset.y * scale_factor; if (sound_to_play) { sound_player* pSounds = sound_player::get_singleton(); if (pSounds) pSounds->play_at(sound_to_play, x, y, 0); sound_to_play = 0; } clip_rect oMorphRect; // We set the morph rect x and w clip to the entire canvas, so that only // vertical clipping is applied. oMorphRect.x = 0; oMorphRect.w = canvas->get_width(); oMorphRect.y = y + morph_target->pixel_offset.x * scale_factor; oMorphRect.h = (morph_target->pixel_offset.y - morph_target->pixel_offset.x) * scale_factor; { render_target::scoped_clip clip(canvas, &oMorphRect); manager->draw_frame(canvas, frame_index, layers, x, y, flags, animation_effect::none, 0, scale_factor); } oMorphRect.y = y + morph_target->pixel_offset.y * scale_factor; oMorphRect.h = (morph_target->speed.x - morph_target->pixel_offset.y) * scale_factor; { render_target::scoped_clip clip(canvas, &oMorphRect); manager->draw_frame(canvas, morph_target->frame_index, morph_target->layers, x, y, morph_target->flags, animation_effect::none, 0, scale_factor); } } bool animation::hit_test(const xy_pair& draw_pos, const xy_pair& obj_pos) { if (are_flags_set(flags, thdf_alpha_50 | thdf_alpha_75)) { return false; } if (manager == nullptr) { return false; } return manager->hit_test(frame_index, layers, pixel_offset.x + draw_pos.x, pixel_offset.y + draw_pos.y, flags, obj_pos.x, obj_pos.y); } bool animation::hit_test_morph(const xy_pair& draw_pos, const xy_pair& obj_pos) { if (are_flags_set(flags, thdf_alpha_50 | thdf_alpha_75)) { return false; } if (manager == nullptr) { return false; } return manager->hit_test(frame_index, layers, pixel_offset.x + draw_pos.x, pixel_offset.y + draw_pos.y, flags, obj_pos.x, obj_pos.y) || morph_target->hit_test(draw_pos, obj_pos); } void animation::persist(lua_persist_writer* writer) const { lua_State* L = writer->get_stack(); // Write the next chained thing lua_rawgeti(L, luaT_environindex, 2); void* np = dynamic_cast(next); if (np == nullptr) { np = dynamic_cast(next); } lua_pushlightuserdata(L, np); lua_rawget(L, -2); writer->fast_write_stack_object(-1); lua_pop(L, 2); // Write the drawable fields writer->write_uint(flags); if (anim_kind == animation_kind::normal) { writer->write_uint(1); } else if (anim_kind == animation_kind::primary_child) { writer->write_uint(2); } else if (anim_kind == animation_kind::morph) { // NB: Prior version of code used the number 3 here, and forgot // to persist the morph target. writer->write_uint(4); lua_rawgeti(L, luaT_environindex, 2); lua_pushlightuserdata(L, morph_target); lua_rawget(L, -2); writer->write_stack_object(-1); lua_pop(L, 2); } else if (anim_kind == animation_kind::secondary_child) { writer->write_uint(5); } else { writer->write_uint(0); } // Write the simple fields writer->write_uint(animation_index); writer->write_uint(frame_index); writer->write_int(pixel_offset.x); writer->write_int(pixel_offset.y); // Not a uint, for compatibility writer->write_int((int)sound_to_play); writer->write_int(static_cast(patient_effect)); if (flags & thdf_crop) { writer->write_int(crop_column); } // Write the unioned fields if (anim_kind != animation_kind::primary_child && anim_kind != animation_kind::secondary_child) { writer->write_int(speed.x); writer->write_int(speed.y); } else { lua_rawgeti(L, luaT_environindex, 2); lua_pushlightuserdata(L, parent); lua_rawget(L, -2); writer->write_stack_object(-1); lua_pop(L, 2); } // Write the layers int iNumLayers = max_number_of_layers; for (; iNumLayers >= 1; --iNumLayers) { if (layers.layer_contents[iNumLayers - 1] != 0) break; } writer->write_uint(iNumLayers); writer->write_byte_stream(layers.layer_contents, iNumLayers); } void animation::depersist(lua_persist_reader* reader) { lua_State* L = reader->get_stack(); do { // Read the chain if (!reader->read_stack_object()) break; next = luaT_toanimationbase(L, -1); if (next) next->prev = this; lua_pop(L, 1); // Read drawable fields if (!reader->read_uint(flags)) break; int iFunctionSet; if (!reader->read_uint(iFunctionSet)) break; switch (iFunctionSet) { case 3: // 3 should be the morph set, but the actual morph target is // missing, so settle for a graphical bug rather than a segfault // by reverting to the normal function set. case 1: set_animation_kind(animation_kind::normal); break; case 2: set_animation_kind(animation_kind::primary_child); break; case 4: set_animation_kind(animation_kind::morph); reader->read_stack_object(); morph_target = static_cast(lua_touserdata(L, -1)); lua_pop(L, 1); break; case 5: set_animation_kind(animation_kind::secondary_child); break; default: reader->set_error(lua_pushfstring( L, "Unknown animation function set #%i", iFunctionSet)); return; } // Read the simple fields if (!reader->read_uint(animation_index)) break; if (!reader->read_uint(frame_index)) break; if (!reader->read_int(pixel_offset.x)) break; if (!reader->read_int(pixel_offset.y)) break; int iDummy; if (!reader->read_int(iDummy)) break; if (iDummy >= 0) sound_to_play = (unsigned int)iDummy; if (!reader->read_int(iDummy)) break; patient_effect = static_cast(iDummy); if (flags & thdf_crop) { if (!reader->read_int(crop_column)) { break; } } else { crop_column = 0; } // Read the unioned fields if (anim_kind != animation_kind::primary_child && anim_kind != animation_kind::secondary_child) { if (!reader->read_int(speed.x)) break; if (!reader->read_int(speed.y)) break; } else { if (!reader->read_stack_object()) break; parent = static_cast(lua_touserdata(L, -1)); lua_pop(L, 1); } // Read the layers std::memset(layers.layer_contents, 0, sizeof(layers.layer_contents)); int iNumLayers; if (!reader->read_uint(iNumLayers)) { break; } if (iNumLayers > max_number_of_layers) { if (!reader->read_byte_stream(layers.layer_contents, max_number_of_layers)) { break; } if (!reader->read_byte_stream(nullptr, iNumLayers - max_number_of_layers)) { break; } } else { if (!reader->read_byte_stream(layers.layer_contents, iNumLayers)) break; } // Fix the m_pAnimator field luaT_getenvfield(L, 2, "animator"); manager = static_cast(lua_touserdata(L, -1)); lua_pop(L, 1); return; } while (false); reader->set_error("Cannot depersist animation instance"); } void animation::set_patient_effect(animation_effect patient_effect) { this->patient_effect = patient_effect; } void animation::set_animation_kind(animation_kind anim_kind) { this->anim_kind = anim_kind; } namespace { //! Storage of one or two sounds. If two sounds are stored, both are selected in //! 50% of the cases. struct sound_pair { sound_pair(int16_t sound) : soundA(sound), soundB(-1) {} sound_pair(int16_t soundA, int16_t soundB) : soundA(soundA), soundB(soundB) {} int16_t get_sound() const { if (soundB < 0) { return soundA; } else { int value = rand(); int counter = 0; for (int i = 0; i < 7; i++) { counter = counter + (value & 1); value >>= 1; } return (counter < 4) ? soundA : soundB; } } private: const int16_t soundA; //!< First available sound. const int16_t soundB; //!< If non-negative, the second available sound. }; typedef std::map sound_replacement_map; // Map of frame numbers to sounds to play. const sound_replacement_map frame_sound_replacements{ // Female flying to heaven (anim 3220) {6987, sound_pair(123)}, // Using Computer (anim 2098) {4213, sound_pair(35)}, {4215, sound_pair(35)}, {4224, sound_pair(35)}, {4230, sound_pair(35)}, // Vomit sounds. {1902, sound_pair(58, 114)}, // Animation 1034 {4149, sound_pair(58, 114)}, // Animation 2056 {6901, sound_pair(58, 114)}, // Animation 3184 {8819, sound_pair(58, 114)}, // Animation 4138 {9105, sound_pair(58, 114)}, // Animation 4204 {9565, sound_pair(58, 114)}, // Animation 4324 {9654, sound_pair(58, 114)}, // Animation 4384 {9944, sound_pair(58, 114)}, // Animation 4452 {10007, sound_pair(58, 114)}, // Animation 4476 {10989, sound_pair(58, 114)}, // Animation 4792 // Using Atom Analyser. Actually a generic animation of Researcher pushing // buttons (anim 4878) {11136, sound_pair(35)}, {11138, sound_pair(35)}, {11147, sound_pair(35)}, {11152, sound_pair(35)}, {11153, sound_pair(35)}, {11154, sound_pair(35)}}; } // Namespace void animation::tick() { frame_index = manager->get_next_frame(frame_index); if (anim_kind != animation_kind::primary_child && anim_kind != animation_kind::secondary_child) { pixel_offset.x += speed.x; pixel_offset.y += speed.y; } if (morph_target) { morph_target->pixel_offset.y += morph_target->speed.y; if (morph_target->pixel_offset.y < morph_target->pixel_offset.x) { morph_target->pixel_offset.y = morph_target->pixel_offset.x; } } // Decide sound to play. sound_replacement_map::const_iterator pos = frame_sound_replacements.find(frame_index); if (pos == frame_sound_replacements.end()) { sound_to_play = manager->get_frame_sound(frame_index); } else { sound_to_play = pos->second.get_sound(); } } void animation::set_parent(animation* parent_anim, bool use_primary) { remove_from_tile(); if (parent_anim == nullptr) { set_animation_kind(animation_kind::normal); speed = {0, 0}; } else { set_animation_kind(use_primary ? animation_kind::primary_child : animation_kind::secondary_child); parent = parent_anim; next = parent->next; if (next) next->prev = this; prev = parent; parent->next = this; } } void animation::set_animation(animation_manager* mgr, size_t anim) { manager = mgr; animation_index = anim; frame_index = mgr->get_first_frame(anim); if (morph_target) { morph_target = nullptr; set_animation_kind(animation_kind::normal); } } bool animation::get_primary_marker(int* pX, int* pY) { if (!manager || !manager->get_frame_primary_marker(frame_index, pX, pY)) { return false; } if (flags & thdf_flip_horizontal) { *pX = -*pX; } *pX += pixel_offset.x; *pY += pixel_offset.y + 16; return true; } bool animation::get_secondary_marker(int* pX, int* pY) { if (!manager || !manager->get_frame_secondary_marker(frame_index, pX, pY)) { return false; } if (flags & thdf_flip_horizontal) { *pX = -*pX; } *pX += pixel_offset.x; *pY += pixel_offset.y + 16; return true; } namespace { int GetAnimationDurationAndExtent(animation_manager* pManager, size_t iFrame, const ::layers& oLayers, int* pMinY, int* pMaxY, uint32_t iFlags) { int iMinY = INT_MAX; int iMaxY = INT_MIN; int iDuration = 0; size_t iCurFrame = iFrame; do { int iFrameMinY; int iFrameMaxY; pManager->get_frame_extent(iCurFrame, oLayers, nullptr, nullptr, &iFrameMinY, &iFrameMaxY, iFlags); if (iFrameMinY < iMinY) iMinY = iFrameMinY; if (iFrameMaxY > iMaxY) iMaxY = iFrameMaxY; iCurFrame = pManager->get_next_frame(iCurFrame); ++iDuration; } while (iCurFrame != iFrame); if (pMinY) { *pMinY = iMinY; } if (pMaxY) { *pMaxY = iMaxY; } return iDuration; } } // namespace void animation::set_morph_target(animation* target, int duration) { morph_target = target; set_animation_kind(animation_kind::morph); /* Morphing is the process by which two animations are combined to give a single animation of one animation turning into another. At the moment, morphing is done by having a y value, above which the original animation is rendered, and below which the new animation is rendered, and having the y value move upward a bit each frame. One example of where this is used is when transparent or invisible patients are cured at the pharmacy cabinet. The process of morphing requires four state variables, which are stored in the morph target animation: * The y value top limit - morph_target->x * The y value threshold - morph_target->y * The y value bottom limit - morph_target->speed.x * The y value increment per frame - morph_target->speed.y This obviously means that the morph target should not be ticked or rendered as it's position and speed contain other values. */ int iOrigMinY, iOrigMaxY; int iMorphMinY, iMorphMaxY; int iOriginalDuration = GetAnimationDurationAndExtent( manager, frame_index, layers, &iOrigMinY, &iOrigMaxY, flags); int iMorphDuration = GetAnimationDurationAndExtent( morph_target->manager, morph_target->frame_index, morph_target->layers, &iMorphMinY, &iMorphMaxY, morph_target->flags); if (iMorphDuration > iOriginalDuration) { iMorphDuration = iOriginalDuration; } iMorphDuration *= duration; if (iOrigMinY < iMorphMinY) { morph_target->pixel_offset.x = iOrigMinY; } else { morph_target->pixel_offset.x = iMorphMinY; } if (iOrigMaxY > iMorphMaxY) { morph_target->speed.x = iOrigMaxY; } else { morph_target->speed.x = iMorphMaxY; } int iDist = morph_target->pixel_offset.x - morph_target->speed.x; morph_target->speed.y = (iDist - iMorphDuration + 1) / iMorphDuration; morph_target->pixel_offset.y = morph_target->speed.x; } void animation::set_frame(size_t new_frame) { frame_index = new_frame; } void sprite_render_list::tick() { pixel_offset.x += dx_per_tick; pixel_offset.y += dy_per_tick; if (lifetime > 0) { --lifetime; } } void sprite_render_list::draw(render_target* canvas, const xy_pair& draw_pos) { if (!sheet || sprites.empty()) { return; } int x = draw_pos.x + pixel_offset.x * scale_factor; int y = draw_pos.y + pixel_offset.y * scale_factor; std::unique_ptr intermediate_buffer; if (use_intermediate_buffer) { int minX = INT_MAX, minY = INT_MAX, maxX = INT_MIN, maxY = INT_MIN; for (const sprite& pSprite : sprites) { int spriteX = x + pSprite.x * scale_factor; int spriteY = y + pSprite.y * scale_factor; int spriteWidth, spriteHeight; sheet->get_sprite_size_unchecked(pSprite.index, &spriteWidth, &spriteHeight); minX = std::min(minX, spriteX); minY = std::min(minY, spriteY); maxX = std::max(maxX, spriteX + spriteWidth * scale_factor); maxY = std::max(maxY, spriteY + spriteHeight * scale_factor); } intermediate_buffer = canvas->begin_intermediate_drawing( minX, minY, maxX - minX, maxY - minY); } for (const sprite& pSprite : sprites) { sheet->draw_sprite(canvas, pSprite.index, x + pSprite.x * scale_factor, y + pSprite.y * scale_factor, flags, 0, animation_effect::none, scale_factor); } } bool sprite_render_list::hit_test(const xy_pair& draw_pos, const xy_pair& obj_pos) { // TODO return false; } void sprite_render_list::set_lifetime(int life_time) { if (life_time < 0) { life_time = -1; } lifetime = life_time; } void sprite_render_list::set_use_intermediate_buffer() { use_intermediate_buffer = true; } void sprite_render_list::append_sprite(size_t spr_num, int xpos, int ypos) { sprite s{spr_num, xpos, ypos}; sprites.push_back(s); } void sprite_render_list::persist(lua_persist_writer* writer) const { lua_State* L = writer->get_stack(); writer->write_uint(sprites.size()); writer->write_uint(flags); writer->write_int(pixel_offset.x); writer->write_int(pixel_offset.y); writer->write_int(dx_per_tick); writer->write_int(dy_per_tick); writer->write_int(lifetime); for (const sprite& pSprite : sprites) { writer->write_uint(pSprite.index); writer->write_int(pSprite.x); writer->write_int(pSprite.y); } // Write the layers int iNumLayers = max_number_of_layers; for (; iNumLayers >= 1; --iNumLayers) { if (layers.layer_contents[iNumLayers - 1] != 0) { break; } } writer->write_uint(iNumLayers); writer->write_byte_stream(layers.layer_contents, iNumLayers); // Write the next chained thing lua_rawgeti(L, luaT_environindex, 2); void* np = dynamic_cast(next); if (np == nullptr) { np = dynamic_cast(next); } lua_pushlightuserdata(L, np); lua_rawget(L, -2); writer->fast_write_stack_object(-1); lua_pop(L, 2); } void sprite_render_list::depersist(lua_persist_reader* reader) { lua_State* L = reader->get_stack(); uint32_t sprite_count; if (!reader->read_uint(sprite_count)) return; sprites.resize(sprite_count); if (!reader->read_uint(flags)) return; if (!reader->read_int(pixel_offset.x)) return; if (!reader->read_int(pixel_offset.y)) return; if (!reader->read_int(dx_per_tick)) return; if (!reader->read_int(dy_per_tick)) return; if (!reader->read_int(lifetime)) return; for (sprite& pSprite : sprites) { if (!reader->read_uint(pSprite.index)) return; if (!reader->read_int(pSprite.x)) return; if (!reader->read_int(pSprite.y)) return; } // Read the layers std::memset(layers.layer_contents, 0, sizeof(layers.layer_contents)); int iNumLayers; if (!reader->read_uint(iNumLayers)) { return; } if (iNumLayers > max_number_of_layers) { if (!reader->read_byte_stream(layers.layer_contents, max_number_of_layers)) { return; } if (!reader->read_byte_stream(nullptr, iNumLayers - max_number_of_layers)) { return; } } else { if (!reader->read_byte_stream(layers.layer_contents, iNumLayers)) { return; } } // Read the chain if (!reader->read_stack_object()) { return; } next = luaT_toanimationbase(L, -1); if (next) { next->prev = this; } lua_pop(L, 1); // Fix the sheet field luaT_getenvfield(L, 2, "sheet"); sheet = static_cast(lua_touserdata(L, -1)); lua_pop(L, 1); } CorsixTH-0.70.0/CorsixTH/Src/th_gfx.h000066400000000000000000000612321522247547500172040ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_GFX_H_ #define CORSIX_TH_TH_GFX_H_ #include "config.h" #include #include #include #include #include #include "lua.hpp" #include "th.h" #include "th_gfx_common.h" #include "th_gfx_sdl.h" #include "th_lua.h" class lua_persist_reader; class lua_persist_writer; class memory_reader; struct map_tile; enum class scaled_items { none, sprite_sheets, bitmaps, all }; void clip_rect_intersection(clip_rect& rcClip, const clip_rect& rcIntersect); //! Bitflags for drawing operations enum draw_flags : uint32_t { /** Sprite drawing flags **/ /* Where possible, designed to be the same values used by TH data files */ //! Draw with the left becoming the right and vice versa thdf_flip_horizontal = 1 << 0, //! Draw with the top becoming the bottom and vice versa thdf_flip_vertical = 1 << 1, //! Draw with 50% transparency. If set together with thdf_alpha_75, don't draw //! at all. thdf_alpha_50 = 1 << 2, //! Draw with 75% transparency. If set together with thdf_alpha_50, don't draw //! at all. thdf_alpha_75 = 1 << 3, //! Draw using a remapped palette thdf_alt_palette = 1 << 4, /** How to draw alternative palette in 32bpp. */ /* A 3 bit field (bits 5,6,7), currently 2 bits used. */ //! Lowest bit of the field. thdf_alt32_start = 5, //! Mask for the 32bpp alternative drawing values. thdf_alt32_mask = 0x7 << thdf_alt32_start, //! Draw the sprite with the normal palette (fallback option). thdf_alt32_plain = 0 << thdf_alt32_start, //! Draw the sprite in grey scale. thdf_alt32_grey_scale = 1 << thdf_alt32_start, //! Draw the sprite with red and blue colours swapped. thdf_alt32_blue_red_swap = 2 << thdf_alt32_start, //! Attach to the early sprite list (right-to-left pass) /* (should be set prior to attaching to a tile) */ thdf_early_list = 1 << 10, //! Hit-test using bounding-box precision rather than pixel-perfect thdf_bound_box_hit_test = 1 << 12, //! Apply a cropping operation prior to drawing thdf_crop = 1 << 13, //! Draw using nearest pixel hinting thdf_nearest = 1 << 14, }; // Integer 2D pair. struct xy_pair { int x{}; ///< Value of the X coordinate. int y{}; ///< Value of the Y coordinate. }; /*! Base class for a linked list of drawable objects. Note that "object" is used as a generic term, not in specific reference to game objects (though they are the most common thing in drawing lists). */ // TODO: Replace this struct with something cleaner struct drawable : public link_list { drawable() = default; //! Draw the object at a specific point on a render target /*! Can also "draw" the object to the speakers, i.e. play sounds. */ virtual void draw_fn(render_target* canvas, const xy_pair& draw_pos) = 0; //! Perform a hit test against the object /*! Should return true if when the object is drawn at \p draw_pos on a canvas, the point \p obj_pos is within / on the object. */ virtual bool hit_test_fn(const xy_pair& draw_pos, const xy_pair& obj_pos) = 0; /** Returns true if instance is a multiple frame animation. Should be overloaded in derived class. */ virtual bool is_multiple_frame_animation_fn() = 0; int get_drawing_layer() { return drawing_layer; } void set_drawing_layer(int layer) { drawing_layer = layer; } //! Drawing flags (zero or more list flags from #draw_flags). uint32_t flags{0}; private: int drawing_layer{0}; }; /*! Utility class for decoding Theme Hospital "chunked" graphics files. Generally used internally by sprite_sheet. */ class chunk_renderer { public: //! Initialise a renderer for a specific size result /*! @param width Pixel width of the resulting image @param height Pixel height of the resulting image @param start An iterator to the start writing the resulting image to. Must point to a container of at least width * height. */ chunk_renderer(int width, int height, std::vector::iterator start); //! Convert a stream of chunks into a raw bitmap /*! @param pData Stream data. @param iDataLen Length of \a pData. @param bComplex true if pData is a stream of "complex" chunks, false if pData is a stream of "simple" chunks. Passing the wrong value will usually result in a very visible wrong result. */ void decode_chunks(const uint8_t* pData, int iDataLen, bool bComplex); //! Perform a "copy" chunk (normally called by decodeChunks) void chunk_copy(int npixels, const uint8_t* in_data); //! Perform a "fill" chunk (normally called by decodeChunks) void chunk_fill(int npixels, uint8_t value); //! Perform a "fill to end of line" chunk (normally called by decodeChunks) void chunk_fill_to_end_of_line(uint8_t value); //! Perform a "fill to end of file" chunk (normally called by decodeChunks) void chunk_finish(uint8_t value); private: inline bool is_done() const { return ptr == end; } inline void fix_n_pixels(int& npixels) const; inline void increment_position(int npixels); std::vector::iterator ptr, end; int x{0}, y{0}; int width, height; bool skip_eol{false}; }; //! Number of available layers, must be less or equal to 16 as it is stored in // a nibble. const int max_number_of_layers = 13; //! Layer information (see animation_manager::draw_frame) struct layers { uint8_t layer_contents[max_number_of_layers]{}; }; /** Key value for finding an animation. */ struct animation_key { std::string name; ///< Name of the animations. int tile_size; ///< Size of a tile. }; //! Less-than operator for map-sorting. /*! @param oK First key value. @param oL Second key value. @return Whether \a oK should be before \a oL. */ inline bool operator<(const animation_key& oK, const animation_key& oL) { if (oK.tile_size != oL.tile_size) return oK.tile_size < oL.tile_size; return oK.name < oL.name; } /** * Start frames of an animation, in each view direction. * A negative number indicates there is no animation in that direction. */ struct animation_start_frames { long north{-1}; ///< Animation start frame for the 'north' view. long east{-1}; ///< Animation start frame for the 'east' view. long south{-1}; ///< Animation start frame for the 'south' view. long west{-1}; ///< Animation start frame for the 'west' view. }; /** Map holding the custom animations. */ typedef std::map named_animations_map; /** Insertion data structure. */ typedef std::pair named_animation_pair; //! Theme Hospital sprite animation manager /*! An animation manager takes a sprite sheet and four animation information files, and uses them to draw animation frames and provide information about the animations. */ class animation_manager { public: animation_manager() = default; void set_sprite_sheet(sprite_sheet* pSpriteSheet); //! Load original animations. /*! set_sprite_sheet() must be called before calling this. @param pStartData Animation first frame indices (e.g. VSTART-1.ANI) @param iStartDataLength Length of \a pStartData. @param pFrameData Frame details (e.g. VFRA-1.ANI) @param iFrameDataLength Length of \a pFrameData @param pListData Element indices list (e.g. VLIST-1.ANI) @param iListDataLength Length of \a pListData @param pElementData Element details (e.g. VELE-1.ANI) @param iElementDataLength Length of \a pElementData @return Loading was successful. */ bool load_from_th_file(const uint8_t* pStartData, size_t iStartDataLength, const uint8_t* pFrameData, size_t iFrameDataLength, const uint8_t* pListData, size_t iListDataLength, const uint8_t* pElementData, size_t iElementDataLength); //! Set the video target. /*! @param pCanvas Video surface to use. */ void set_canvas(render_target* pCanvas); //! Load free animations. /*! @param pData Start of the loaded data. @param iDataLength Length of the loaded data. @return Loading was successful. */ bool load_custom_animations(const uint8_t* pData, size_t iDataLength); //! Get the total number of animations size_t get_animation_count() const; //! Get the total number of animation frames size_t get_frame_count() const; //! Get the index of the first frame of an animation size_t get_first_frame(size_t iAnimation) const; //! Get the index of the frame after a given frame /*! To draw an animation frame by frame, call get_first_frame() to get the index of the first frame, and then keep on calling get_next_frame() using the most recent return value from get_next_frame() or get_first_frame(). */ size_t get_next_frame(size_t iFrame) const; //! Set the palette remap data for an animation /*! This sets the palette remap data for every single sprite used by the given animation. If the animation (or any of its sprites) are drawn using the thdf_alt_palette flag, then palette indices will be mapped to new palette indices by the 256 byte array pMap. This is typically used to draw things in different colours or in greyscale. */ void set_animation_alt_palette_map(size_t iAnimation, const uint8_t* pMap, uint32_t iAlt32); //! Draw an animation frame /*! @param pCanvas The render target to draw onto. @param iFrame The frame index to draw (should be in range [0, getFrameCount() - 1]) @param oLayers Information to decide what to draw on each layer. An animation is comprised of up to thirteen layers, numbered 0 through 12. Some animations will have different options for what to render on each layer. For example, patient animations generally have the different options on layer 1 as different clothes, so if layer 1 is set to the value 0, they may have their default clothes, and if set to the value 2 or 4 or 6, they may have other clothes. Play with the AnimView tool for a better understanding of layers, though note that while it can draw more than one option on each layer, this class can only draw a single option for each layer. @param iX The screen position to use as the animation X origin. @param iY The screen position to use as the animation Y origin. @param iFlags Zero or more THDrawFlags flags. @param patient_effect The animation effect to apply to the patient. @param patient_effect_offset The number of ticks to offset the effect animation by. @param scale_factor */ void draw_frame(render_target* pCanvas, size_t iFrame, const ::layers& oLayers, int iX, int iY, uint32_t iFlags, animation_effect patient_effect = animation_effect::none, size_t patient_effect_offset = 0, int scale_factor = 1) const; void get_frame_extent(size_t iFrame, const ::layers& oLayers, int* pMinX, int* pMaxX, int* pMinY, int* pMaxY, uint32_t iFlags) const; size_t get_frame_sound(size_t iFrame); bool hit_test(size_t iFrame, const ::layers& oLayers, int iX, int iY, uint32_t iFlags, int iTestX, int iTestY) const; bool set_frame_primary_marker(size_t iFrame, int iX, int iY); bool set_frame_secondary_marker(size_t iFrame, int iX, int iY); bool get_frame_primary_marker(size_t iFrame, int* pX, int* pY); bool get_frame_secondary_marker(size_t iFrame, int* pX, int* pY); //! Retrieve a custom animation by name and tile size. /*! @param sName Name of the animation. @param iTilesize Tile size of the animation. @return A set starting frames for the queried animation. */ const animation_start_frames& get_named_animations(std::string_view sName, int iTilesize) const; //! Notified every world tick to allow tracking rate of game time passage. void tick(); private: struct frame { size_t list_index; ///< First entry in #element_list (pointing to an ///< element) for this frame. size_t next_frame; ///< Number of the next frame. unsigned int sound; ///< Sound to play, if non-zero. unsigned int flags; ///< Flags of the frame. Bit 0=start of animation. // Bounding rectangle is with all layers / options enabled - used as a // quick test prior to a full pixel perfect test. int bounding_left; ///< Left edge of the bounding rectangle of this ///< frame. int bounding_right; ///< Right edge of the bounding rectangle of this ///< frame. int bounding_top; ///< Top edge of the bounding rectangle of this ///< frame. int bounding_bottom; ///< Bottom edge of the bounding rectangle of this ///< frame. // Markers are used to know where humanoids are on an frame. The // positions are pixels offsets from the centre of the frame's base // tile to the centre of the humanoid's feet. int primary_marker_x; ///< X position of the first center of a humanoids ///< feet. int primary_marker_y; ///< Y position of the first center of a humanoids ///< feet. int secondary_marker_x; ///< X position of the second center of a ///< humanoids feet. int secondary_marker_y; ///< Y position of the second center of a ///< humanoids feet. }; struct element { size_t sprite; ///< Sprite number of the sprite sheet to display. uint32_t flags; ///< Flags of the sprite. ///< bit 0=flip vertically, bit 1=flip horizontally, ///< bit 2=draw 50% alpha, bit 3=draw 75% alpha. int x; ///< X offset of the sprite. int y; ///< Y offset of the sprite. uint8_t layer; ///< Layer class [0..max_number_of_layers). uint8_t layer_id; ///< Value of the layer class to match. sprite_sheet* element_sprite_sheet; ///< Sprite sheet to use for this ///< element. Not owned. }; std::vector first_frames; ///< First frame number of an animation. std::vector frames; ///< The loaded frames. std::vector element_list; ///< List of elements for a frame. std::vector elements; ///< Sprite Elements. std::vector custom_sheets; ///< Sprite sheets with custom graphics. named_animations_map named_animations; ///< Collected named animations. sprite_sheet* sheet{nullptr}; ///< Sprite sheet to use. Not owned. render_target* canvas{nullptr}; ///< Video surface to use. Not owned. size_t animation_count{0}; ///< Number of animations. size_t frame_count{0}; ///< Number of frames. size_t element_list_count{0}; ///< Number of list elements. size_t element_count{0}; ///< Number of sprite elements. //! Number of game ticks, used for global animation timing. size_t game_ticks{0}; //! Compute the bounding box of the frame. /*! @param oFrame Frame to inspect/set. */ void set_bounding_box(frame& oFrame); //! Load sprite elements from the input. /*! @param [inout] input Data to read. @param pSpriteSheet Sprite sheet to use. @param iNumElements Number of elements to read. @param [inout] iLoadedElements Number of loaded elements so far. @param iElementStart Offset of the first element. @param iElementCount Number of elements to load. @return Index of the first loaded element in #elements. Negative value means failure. */ size_t load_elements(memory_reader& input, sprite_sheet* pSpriteSheet, size_t iNumElements, size_t& iLoadedElements, size_t iElementStart, size_t iElementCount); //! Construct a list element for every element, and a 0xFFFF at the end. /*! @param iFirstElement Index of the first element in #elements. @param iNumElements Number of elements to add. @param [inout] iLoadedListElements Number of created list elements so far. @param iListStart Offset of the first created list element. @param iListCount Expected number of list elements to create. @return Index of the list elements, or a negative value to indicate failure. */ size_t make_list_elements(size_t iFirstElement, size_t iNumElements, size_t& iLoadedListElements, size_t iListStart, size_t iListCount); //! Fix the flags of the first frame, and set the next frame of the last //! frame back to the first frame. /*! @param iFirst First frame of the animation, or 0xFFFFFFFFu. @param iLength Number of frames in the animation. */ void fix_next_frame(uint32_t iFirst, size_t iLength); }; class animation_base : public drawable { public: animation_base(); void remove_from_tile(); void attach_to_tile(const xy_pair& tile_pos, map_tile* node, int layer); uint32_t get_flags() const { return flags; } const xy_pair& get_pixel_offset() const { return pixel_offset; } const xy_pair& get_tile() const { return tile; } void set_flags(uint32_t iFlags) { flags = iFlags; } void set_tile(const xy_pair& tile_pos) { tile = tile_pos; } void set_pixel_offset(int x, int y) { pixel_offset.x = x; pixel_offset.y = y; } void set_layer(int iLayer, int iId); void set_layers_from(const animation_base* pSrc) { layers = pSrc->layers; } void set_scale_factor(int s) { scale_factor = s; } protected: //! Tile containing the animation. A negative x or y means it is not active. xy_pair tile{-1, -1}; //! Offset in pixels relative to the center of the animation tile. xy_pair pixel_offset{0, 0}; ::layers layers{}; //! Scale factor for the animation. /** * For both animation and sprite_render_list scale_factor is currently only * implemented for drawing. Support for hit_test should be implemented if * a need to hit_test on a scaled sprite_render_list or animation arises. * * In all cases scale_factor is not persisted, and expected to be set * according to the current game options before calling draw. */ int scale_factor{1}; }; //! The kind of animation. enum class animation_kind { primary_child, secondary_child, normal, morph }; class animation : public animation_base { public: animation(); void set_parent(animation* parent_anim, bool use_primary); void tick(); void draw(render_target* canvas, const xy_pair& draw_pos); void draw_morph(render_target* canvas, const xy_pair& draw_pos); void draw_child(render_target* canvas, const xy_pair& draw_pos, bool use_primary); void draw_fn(render_target* canvas, const xy_pair& draw_pos) override { switch (anim_kind) { case animation_kind::normal: draw(canvas, draw_pos); return; case animation_kind::primary_child: draw_child(canvas, draw_pos, true); return; case animation_kind::secondary_child: draw_child(canvas, draw_pos, false); return; case animation_kind::morph: draw_morph(canvas, draw_pos); return; } } bool hit_test(const xy_pair& draw_pos, const xy_pair& obj_pos); bool hit_test_morph(const xy_pair& draw_pos, const xy_pair& obj_pos); bool hit_test_child(const xy_pair& draw_pos, const xy_pair& obj_pos); bool hit_test_fn(const xy_pair& draw_pos, const xy_pair& obj_pos) override { switch (anim_kind) { case animation_kind::normal: return hit_test(draw_pos, obj_pos); case animation_kind::primary_child: case animation_kind::secondary_child: return hit_test_child(draw_pos, obj_pos); case animation_kind::morph: return hit_test_morph(draw_pos, obj_pos); } return false; } bool is_multiple_frame_animation_fn() override { size_t anim = get_animation(); size_t first_frame = get_animation_manager()->get_first_frame(anim); size_t next_frame = get_animation_manager()->get_next_frame(first_frame); return next_frame != first_frame; } link_list* get_previous() { return prev; } size_t get_animation() const { return animation_index; } bool get_primary_marker(int* pX, int* pY); bool get_secondary_marker(int* pX, int* pY); size_t get_frame() const { return frame_index; } int get_crop_column() const { return crop_column; } void set_animation(animation_manager* mgr, size_t anim); void set_morph_target(animation* target, int duration = 1); void set_frame(size_t new_frame); void set_speed(int x, int y) { speed.x = x; speed.y = y; } void set_crop_column(int column) { crop_column = column; } void persist(lua_persist_writer* writer) const; void depersist(lua_persist_reader* reader); void set_patient_effect(animation_effect patient_effect); void set_animation_kind(animation_kind anim_kind); animation_kind get_animation_kind() { return anim_kind; } animation_manager* get_animation_manager() { return manager; } private: animation_manager* manager{nullptr}; animation* morph_target{nullptr}; size_t animation_index{}; ///< Animation number. size_t frame_index{}; ///< Frame number. union { xy_pair speed{}; ///< Speed in pixels per tick. //! Some animations are tied to the primary or secondary marker of another //! animation and hence have a parent rather than a speed. animation* parent; }; size_t sound_to_play{}; int crop_column{}; animation_kind anim_kind{animation_kind::normal}; animation_effect patient_effect{animation_effect::none}; //! Number of game_ticks to offset animation by so they aren't all //! running in sync. size_t patient_effect_offset; }; class sprite_render_list : public animation_base { public: void tick(); void set_sheet(sprite_sheet* new_sheet) { sheet = new_sheet; } void set_speed(int x_speed, int y_speed) { dx_per_tick = x_speed; dy_per_tick = y_speed; } void set_lifetime(int life_time); void set_use_intermediate_buffer(); void append_sprite(size_t spr_num, int xpos, int ypos); bool is_dead() const { return lifetime == 0; } void persist(lua_persist_writer* writer) const; void depersist(lua_persist_reader* reader); void draw(render_target* canvas, const xy_pair& draw_pos); void draw_fn(render_target* canvas, const xy_pair& draw_pos) override { draw(canvas, draw_pos); } bool hit_test(const xy_pair& draw_pos, const xy_pair& obj_pos); bool hit_test_fn(const xy_pair& draw_pos, const xy_pair& obj_pos) override { return hit_test(draw_pos, obj_pos); } bool is_multiple_frame_animation_fn() override { return false; } private: struct sprite { size_t index; int x; int y; }; sprite_sheet* sheet{nullptr}; std::vector sprites{}; //! Amount to change x per tick int dx_per_tick{0}; //! Amount to change y per tick int dy_per_tick{0}; //! Number of ticks until reports as dead (-1 = never dies) int lifetime{-1}; //! Whether to draw to an intermediate buffer. This is used to preserve text //! rendering quality when scaling. Not persisted. bool use_intermediate_buffer{false}; }; // Find the appropriate subclass of animation_base for a given // userdata object. // // th_lua_internal.h defines our c++ binding class metatables: // metatable: { __index = method_table, ... } // method_table: { ... } // method_table metatable: { __class_name = class_name } inline animation_base* luaT_toanimationbase(lua_State* L, int idx) { return luaT_touserdata_base( L, idx, {"animation", "spriteList"}); } #endif // CORSIX_TH_TH_GFX_H_ CorsixTH-0.70.0/CorsixTH/Src/th_gfx_common.h000066400000000000000000000027071522247547500205560ustar00rootroot00000000000000/* Copyright (C) 2021 Luis "driverpt" Duarte and Robert "flackr" Flack Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_GFX_COMMON_H_ #define CORSIX_TH_TH_GFX_COMMON_H_ #include "config.h" // This header is meant to be shared with GFX and GFX_SDL //! Animation Effect for drawing a sprite with a special effect applied. enum class animation_effect { //! No special effect none, //! Serious Radiation effect glowing, //! Jellyitis animation effect jelly, }; #endif CorsixTH-0.70.0/CorsixTH/Src/th_gfx_font.cpp000066400000000000000000000703021522247547500205630ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th_gfx_font.h" #include "config.h" #include // IWYU pragma: keep // IWYU pragma: no_include "freetype/config/ftheader.h" #include "th_strings.h" #include FT_FREETYPE_H #include FT_ERRORS_H #include FT_GLYPH_H #include FT_IMAGE_H #include FT_TYPES_H #include #include #include #include #include #include "th_gfx.h" namespace { constexpr unsigned int unicode_to_font_character( unsigned int codepoint, bitmap_font_character_set charset) { switch (charset) { case bitmap_font_character_set::cp437: return unicode_to_codepage_437(codepoint); case bitmap_font_character_set::mik: return unicode_to_codepage_mik(codepoint); default: return '?'; } } } // namespace bitmap_font::bitmap_font() = default; void bitmap_font::set_sprite_sheet(sprite_sheet* pSpriteSheet, bitmap_font_character_set character_set) { sheet = pSpriteSheet; this->character_set = character_set; } void bitmap_font::set_separation(int iCharSep, int iLineSep) { letter_spacing = iCharSep; line_spacing = iLineSep; } void bitmap_font::set_scale_factor(int factor) { scale_factor = factor; } text_layout bitmap_font::get_text_dimensions(const char* sMessage, size_t iMessageLength, int iMaxWidth) const { return draw_text_wrapped(nullptr, sMessage, iMessageLength, 0, 0, iMaxWidth, INT_MAX, 0); } void bitmap_font::draw_text(render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY) const { pCanvas->start_nonoverlapping_draws(); if (iMessageLength != 0 && sheet != nullptr) { const unsigned int iFirstASCII = 31; unsigned int iLastASCII = static_cast(sheet->get_sprite_count()) + iFirstASCII; const char* sMessageEnd = sMessage + iMessageLength; int scaled_letter_spacing = letter_spacing * scale_factor; while (sMessage != sMessageEnd) { unsigned int iChar = unicode_to_font_character( next_utf8_codepoint(sMessage, sMessageEnd), character_set); if (iFirstASCII <= iChar && iChar <= iLastASCII) { iChar -= iFirstASCII; int iWidth; int iHeight; sheet->draw_sprite(pCanvas, iChar, iX, iY, thdf_nearest, 0, animation_effect::none, scale_factor); sheet->get_sprite_size_unchecked(iChar, &iWidth, &iHeight); iWidth *= scale_factor; iHeight *= scale_factor; iX += iWidth + scaled_letter_spacing; } } } pCanvas->finish_nonoverlapping_draws(); } text_layout bitmap_font::draw_text_wrapped(render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY, int iWidth, int iMaxRows, int iSkipRows, text_alignment eAlign) const { text_layout oDrawArea = {}; int iSkippedRows = 0; if (iMessageLength != 0 && sheet != nullptr) { const unsigned int iFirstASCII = 31; unsigned int iLastASCII = static_cast(sheet->get_sprite_count()) + iFirstASCII; const char* sMessageEnd = sMessage + iMessageLength; while (sMessage != sMessageEnd && oDrawArea.row_count < iMaxRows) { const char* sBreakPosition = sMessageEnd; const char* sLastGoodBreakPosition = sBreakPosition; int scaled_letter_spacing = letter_spacing * scale_factor; int scaled_line_spacing = line_spacing * scale_factor; int iMsgWidth = -scaled_letter_spacing; int iMsgBreakWidth = iMsgWidth; int iTallest = 0; const char* s; bool foundNewLine = false; unsigned int iNextChar = 0; for (s = sMessage; s != sMessageEnd;) { const char* sOld = s; unsigned int iChar = unicode_to_font_character( next_utf8_codepoint(s, sMessageEnd), character_set); iNextChar = unicode_to_font_character(static_cast(*s), character_set); if ((iChar == '\n' && iNextChar == '\n') || (iChar == '/' && iNextChar == '/')) { foundNewLine = true; iMsgBreakWidth = iMsgWidth; sBreakPosition = sOld; break; } int iCharWidth = 0; int iCharHeight = 0; if (iFirstASCII <= iChar && iChar <= iLastASCII) { sheet->get_sprite_size_unchecked(iChar - iFirstASCII, &iCharWidth, &iCharHeight); iCharWidth *= scale_factor; iCharHeight *= scale_factor; } iMsgWidth += scaled_letter_spacing + iCharWidth; if (iChar == ' ') { sLastGoodBreakPosition = sOld; iMsgBreakWidth = iMsgWidth - iCharWidth; } if (iMsgWidth > iWidth) { sBreakPosition = sLastGoodBreakPosition; break; } if (iCharHeight > iTallest) iTallest = iCharHeight; } if (s == sMessageEnd) iMsgBreakWidth = iMsgWidth; if (iMsgBreakWidth > oDrawArea.width) oDrawArea.width = iMsgBreakWidth; if (iSkippedRows >= iSkipRows) { if (pCanvas) { int iXOffset = 0; if (iMsgBreakWidth < iWidth) iXOffset = (iWidth - iMsgBreakWidth) * static_cast(eAlign) / 2; draw_text(pCanvas, sMessage, sBreakPosition - sMessage, iX + iXOffset, iY); } iY += static_cast(iTallest) + scaled_line_spacing; oDrawArea.end_x = iMsgWidth; oDrawArea.row_count++; if (foundNewLine) { iY += static_cast(iTallest) + scaled_line_spacing; oDrawArea.row_count++; } } else { iSkippedRows++; if (foundNewLine) { if (iSkippedRows == iSkipRows) { iY += static_cast(iTallest) + scaled_line_spacing; oDrawArea.row_count++; } iSkippedRows++; } } sMessage = sBreakPosition; if (sMessage != sMessageEnd) { next_utf8_codepoint(sMessage, sMessageEnd); if (foundNewLine) { next_utf8_codepoint(sMessage, sMessageEnd); } } } } oDrawArea.end_x = iX + oDrawArea.end_x; oDrawArea.end_y = iY; return oDrawArea; } FT_Library freetype_font::freetype_library = nullptr; int freetype_font::freetype_init_count = 0; freetype_font::freetype_font() { for (cached_text* pEntry = cache; pEntry != cache + (1 << cache_size_log2); ++pEntry) { pEntry->message = nullptr; pEntry->message_length = 0; pEntry->message_buffer_length = 0; pEntry->alignment = text_alignment::left; pEntry->width = 0; pEntry->height = 0; pEntry->widest_line_width = 0; pEntry->last_x = 0; pEntry->data = nullptr; pEntry->is_valid = false; pEntry->texture = nullptr; } } freetype_font::~freetype_font() { for (cached_text* pEntry = cache; pEntry != cache + (1 << cache_size_log2); ++pEntry) { delete[] pEntry->message; delete[] pEntry->data; free_texture(pEntry); } if (font_face != nullptr) FT_Done_Face(font_face); if (is_done_freetype_init) { if (--freetype_init_count == 0) { FT_Done_FreeType(freetype_library); freetype_library = nullptr; } } } const char* freetype_font::get_copyright_notice() { return "Portions of this software are copyright \xC2\xA9 2010 " "The FreeType Project (www.freetype.org). All rights reserved."; } FT_Error freetype_font::initialise() { if (is_done_freetype_init) return FT_Err_Ok; if (freetype_init_count == 0) { int iError = FT_Init_FreeType(&freetype_library); if (iError != FT_Err_Ok) return iError; } ++freetype_init_count; is_done_freetype_init = true; return FT_Err_Ok; } void freetype_font::clear_cache() { for (cached_text* pEntry = cache; pEntry != cache + (1 << cache_size_log2); ++pEntry) { pEntry->is_valid = false; free_texture(pEntry); } } FT_Error freetype_font::set_face(const uint8_t* pData, size_t iLength) { int iError; if (freetype_library == nullptr) { iError = initialise(); if (iError != FT_Err_Ok) return iError; } if (font_face) { iError = FT_Done_Face(font_face); if (iError != FT_Err_Ok) return iError; font_face = nullptr; } iError = FT_New_Memory_Face(freetype_library, pData, static_cast(iLength), 0, &font_face); return iError; } FT_Error freetype_font::match_bitmap_font(sprite_sheet* font_spritesheet, argb_colour* color, int* width, int* height) { if (font_spritesheet == nullptr) return FT_Err_Invalid_Argument; // Try to take the size and colour of a standard character (em is generally // the standard font character, but for fonts which only have numbers, zero // seems like the next best choice). for (const char* sCharToTry = "M0"; *sCharToTry; ++sCharToTry) { unsigned int iSprite = *sCharToTry - 31; if (font_spritesheet->get_sprite_size(iSprite, width, height) && font_spritesheet->get_sprite_average_colour(iSprite, color) && *width > 1 && *height > 1) { return FT_Err_Ok; } } // Take the average size of all characters, and the colour of one of them. int iWidthSum = 0; int iHeightSum = 0; int iAverageNum = 0; for (size_t i = 0; i < font_spritesheet->get_sprite_count(); ++i) { int iWidth; int iHeight; font_spritesheet->get_sprite_size_unchecked(i, &iWidth, &iHeight); if (iWidth <= 1 || iHeight <= 1) continue; if (!font_spritesheet->get_sprite_average_colour(i, color)) continue; iWidthSum += *width; iHeightSum += *height; ++iAverageNum; } if (iAverageNum == 0) return FT_Err_Divide_By_Zero; *width = (iWidthSum + iAverageNum / 2) / iAverageNum; *height = (iHeightSum + iAverageNum / 2) / iAverageNum; return FT_Err_Ok; } FT_Error freetype_font::set_ideal_character_size(int iWidth, int iHeight) { if (font_face == nullptr) return FT_Err_Invalid_Face_Handle; if (is_monochrome() || iHeight <= 14 || iWidth <= 9) { // Look for a bitmap strike of a similar size int iBestBitmapScore = 50; FT_Int iBestBitmapIndex = -1; for (FT_Int i = 0; i < font_face->num_fixed_sizes; ++i) { if (font_face->available_sizes[i].height > iHeight) continue; int iDeltaH = iHeight - font_face->available_sizes[i].height; int iDeltaW = font_face->available_sizes[i].width - iWidth; int iScore = iDeltaH * iDeltaH * 3 + iDeltaW * iDeltaW; if (iScore < iBestBitmapScore) { iBestBitmapScore = iScore; iBestBitmapIndex = i; } } // Select the bitmap strike, if there was one if (iBestBitmapIndex != -1) return FT_Select_Size(font_face, iBestBitmapIndex); } // Go with the original size request if there was no bitmap strike, unless // the size was very small, in which case scale things up, as vector fonts // look rather poor at small sizes. if (iHeight < 14) { iWidth = iWidth * 14 / iHeight; iHeight = 14; } if (iWidth < 9) { iHeight = iHeight * 9 / iWidth; iWidth = 9; } return FT_Set_Pixel_Sizes(font_face, iWidth, iHeight); } void freetype_font::set_font_color(argb_colour color) { font_color = color; } void freetype_font::set_shadow_options(const font_shadow_options& options) { shadow_opts = options; } text_layout freetype_font::get_text_dimensions(const char* sMessage, size_t iMessageLength, int iMaxWidth) const { return draw_text_wrapped(nullptr, sMessage, iMessageLength, 0, 0, iMaxWidth, INT_MAX, 0); } void freetype_font::draw_text(render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY) const { draw_text_wrapped(pCanvas, sMessage, iMessageLength, iX, iY, INT_MAX); } namespace { struct codepoint_glyph { FT_Glyph_Metrics metrics; FT_Glyph glyph; FT_UInt index; }; enum class CJK_breakable { nonbreakable = 0, break_after, break_before }; // Determine if the character code is a suitable Chinese/Japanese/Korean // character for a line break. CJK_breakable isCjkBreakCharacter(unsigned int charcode) { if (charcode == ideographic_space_codepoint || charcode == 0x3001 || // Ideographic comma charcode == 0x3002 || // Ideographic full stop charcode == 0x301e || // Double prime quotation mark charcode == 0xff09 || // Fullwidth right parenthesis charcode == 0xff0c || // Fullwidth comma charcode == 0xff0d || // Fullwidth hyphen-minus charcode == 0xff1a || // Fullwidth Colon charcode == 0xff1b || // Fullwidth semicolon charcode == 0xff1f) // Fullwidth question mark return CJK_breakable::break_after; if (charcode == 0x301d || // Reversed double prime quotation mark charcode == 0xff08) // Fullwidth left parenthesis return CJK_breakable::break_before; return CJK_breakable::nonbreakable; } FT_Pos pixel_align(FT_Pos position) { return ((position + 63) >> 6) << 6; } } // namespace text_layout freetype_font::draw_text_wrapped(render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY, int iWidth, int iMaxRows, int iSkipRows, text_alignment eAlign) const { text_layout oDrawArea = {}; int iNumRows = 0; int iHandledRows = 0; if (!sMessage || sMessage[0] == '\0') { return oDrawArea; } // Calculate an index into the cache to use for this piece of text. size_t iHash = iMessageLength + (static_cast(iMaxRows) << (cache_size_log2 / 8)) + (static_cast(iSkipRows) << (cache_size_log2 / 4)) + (static_cast(iWidth) << (cache_size_log2 / 2)) + (static_cast(eAlign) << cache_size_log2); for (size_t i = 0; i < iMessageLength; ++i) iHash ^= (iHash << 5) + (iHash >> 2) + static_cast(sMessage[i]); iHash &= (1 << cache_size_log2) - 1; cached_text* pEntry = cache + iHash; if (pEntry->message_length != iMessageLength || pEntry->width > iWidth || (iWidth != INT_MAX && pEntry->width < iWidth) || pEntry->alignment != eAlign || !pEntry->is_valid || std::memcmp(pEntry->message, sMessage, iMessageLength) != 0) { // Cache entry does not match the message being drawn, so discard the // cache entry. free_texture(pEntry); delete[] pEntry->data; pEntry->data = nullptr; pEntry->is_valid = false; int width_before_shadow = iWidth; if (iWidth < INT_MAX && shadow_opts.enabled) { width_before_shadow -= abs(shadow_opts.offset_x); } // Set the entry metadata to that of the new message. if (iMessageLength > pEntry->message_buffer_length) { delete[] pEntry->message; pEntry->message = new char[iMessageLength]; pEntry->message_buffer_length = iMessageLength; } std::memcpy(pEntry->message, sMessage, iMessageLength); pEntry->message_length = iMessageLength; pEntry->width = iWidth; pEntry->alignment = eAlign; // Split the message into lines, and determine the position within the // line for each character. std::vector > vLines; std::vector vCharPositions(iMessageLength); std::map mapGlyphs; vLines.reserve(2); FT_Vector ftvPen = {0, 0}; FT_Bool bUseKerning = FT_HAS_KERNING(font_face); FT_UInt iPreviousGlyphIndex = 0; const char* sMessageStart = sMessage; const char* sMessageEnd = sMessage + iMessageLength; const char* sLineStart = sMessageStart; const char* sLineBreakPosition = sLineStart; while (sMessage != sMessageEnd) { const char* sOldMessage = sMessage; unsigned int iCode = next_utf8_codepoint(sMessage, sMessageEnd); unsigned int iNextCode = *reinterpret_cast(sMessage); bool bIsNewLine = (iCode == '\n' && iNextCode == '\n') || (iCode == '/' && iNextCode == '/'); // Just replace single line breaks with space. if (!bIsNewLine && iCode == '\n') { iCode = ' '; } codepoint_glyph& oGlyph = mapGlyphs[iCode]; if (oGlyph.glyph == nullptr) { oGlyph.index = FT_Get_Char_Index(font_face, iCode); /* FT_Error iError = */ FT_Load_Glyph(font_face, oGlyph.index, FT_LOAD_DEFAULT); // TODO: iError != FT_Err_Ok /* iError = */ FT_Get_Glyph(font_face->glyph, &oGlyph.glyph); // TODO: iError != FT_Err_Ok oGlyph.metrics = font_face->glyph->metrics; } // Apply kerning if (bUseKerning && iPreviousGlyphIndex && oGlyph.index) { FT_Vector ftvKerning; FT_Get_Kerning(font_face, iPreviousGlyphIndex, oGlyph.index, FT_KERNING_DEFAULT, &ftvKerning); ftvPen.x += ftvKerning.x; ftvPen.y += ftvKerning.y; } // Make an automatic line break if one is needed. long line_width_with_glyph = (ftvPen.x + oGlyph.metrics.horiBearingX + oGlyph.metrics.width + 63) / 64; if (line_width_with_glyph >= width_before_shadow || bIsNewLine) { if (bIsNewLine) { sLineBreakPosition = sOldMessage; } ftvPen.x = ftvPen.y = 0; iPreviousGlyphIndex = 0; if (sLineStart != sLineBreakPosition) { // Only really save if we have skipped enough lines if (iHandledRows >= iSkipRows) { vLines.push_back(std::make_pair(sLineStart, sLineBreakPosition)); } if (bIsNewLine) { if (iHandledRows + 1 >= iSkipRows) { vLines.push_back( std::make_pair(sLineBreakPosition, sLineBreakPosition)); } // skip // or \n\n next_utf8_codepoint(sLineBreakPosition, sMessageEnd); next_utf8_codepoint(sLineBreakPosition, sMessageEnd); iHandledRows++; } sMessage = sLineStart = sLineBreakPosition; // Skip leading white space on a line skip_utf8_whitespace(sMessage, sMessageEnd); } else { if (iHandledRows >= iSkipRows) { vLines.push_back(std::make_pair(sLineStart, sOldMessage)); } if (bIsNewLine) { // skip // or \n\n next_utf8_codepoint(sMessage, sMessageEnd); next_utf8_codepoint(sMessage, sMessageEnd); sLineStart = sLineBreakPosition = sMessage; } else { sMessage = sLineStart = sLineBreakPosition = sOldMessage; } } iHandledRows++; continue; } // Determine if a line can be broken at the current position. if (iCode == ' ') { sLineBreakPosition = sOldMessage; } else { switch (isCjkBreakCharacter(iCode)) { case CJK_breakable::break_after: // break after this codepoint (cjk codepoints are 3 bytes in // utf-8) sLineBreakPosition = sOldMessage + 3; break; case CJK_breakable::break_before: // break before this codepoint sLineBreakPosition = sOldMessage; break; default: break; } } // Save (unless we are skipping lines) and advance the pen. if (iHandledRows >= iSkipRows) { vCharPositions[sOldMessage - sMessageStart] = ftvPen; } iPreviousGlyphIndex = oGlyph.index; ftvPen.x += oGlyph.metrics.horiAdvance; } if (sLineStart != sMessageEnd) vLines.push_back(std::make_pair(sLineStart, sMessageEnd)); sMessage = sMessageStart; // Finalise the position of each character (alignment might change X, // and baseline / lines will change Y), and calculate overall height // and widest line. FT_Pos iPriorLinesHeight = 0; FT_Pos iLineWidth = 0, iAlignDelta = 0, iWidestLine = 0; const FT_Pos iLineSpacing = 2 << 6; codepoint_glyph& oGlyph = mapGlyphs['l']; FT_Pos iBearingY = oGlyph.metrics.horiBearingY; FT_Pos iNormalLineHeight = oGlyph.metrics.height - iBearingY; iBearingY = pixel_align(iBearingY); iNormalLineHeight += iBearingY; iNormalLineHeight += iLineSpacing; iNormalLineHeight = pixel_align(iNormalLineHeight); for (auto itr = vLines.begin(); itr != vLines.end() && iNumRows < iMaxRows; ++itr) { // Calculate the X change resulting from alignment. const char* sLastChar = previous_utf8_codepoint(itr->second); codepoint_glyph& oLastGlyph = mapGlyphs[decode_utf8(sLastChar, sMessageEnd)]; iLineWidth = vCharPositions[sLastChar - sMessage].x + oLastGlyph.metrics.horiBearingX + oLastGlyph.metrics.width; if ((iLineWidth >> 6) < iWidth && eAlign != text_alignment::left) { iAlignDelta = ((iWidth * 64 - iLineWidth) * static_cast(eAlign)) / 2; } if (iLineWidth > iWidestLine) iWidestLine = iLineWidth; // Calculate the line height and baseline position. FT_Pos iLineHeight = 0; FT_Pos iBaselinePos = 0; for (const char* s = itr->first; s < itr->second;) { codepoint_glyph& oGlyph = mapGlyphs[next_utf8_codepoint(s, sMessageEnd)]; FT_Pos iBearingY = oGlyph.metrics.horiBearingY; FT_Pos iCoBearingY = oGlyph.metrics.height - iBearingY; if (iBearingY > iBaselinePos) iBaselinePos = iBearingY; if (iCoBearingY > iLineHeight) iLineHeight = iCoBearingY; } iBaselinePos = pixel_align(iBaselinePos); iLineHeight += iBaselinePos; iLineHeight += iLineSpacing; iLineHeight = pixel_align(iLineHeight); iNormalLineHeight = std::max(iNormalLineHeight, iLineHeight); // Apply the character position changes. for (const char* s = itr->first; s < itr->second; next_utf8_codepoint(s, sMessageEnd)) { FT_Vector& ftvPos = vCharPositions[s - sMessage]; ftvPos.x += iAlignDelta; ftvPos.y += iBaselinePos + iPriorLinesHeight; } // Empty lines is a special case if (itr->first == itr->second) { iPriorLinesHeight += iNormalLineHeight; } else { iPriorLinesHeight += iLineHeight; } iNumRows++; } if (iPriorLinesHeight > 0) iPriorLinesHeight -= iLineSpacing; pEntry->height = static_cast(1 + (iPriorLinesHeight >> 6)); pEntry->widest_line_width = static_cast(1 + (iWidestLine >> 6)); if (shadow_opts.enabled) { pEntry->widest_line_width += std::abs(shadow_opts.offset_x); pEntry->height += std::abs(shadow_opts.offset_y); } if (iWidth == INT_MAX) pEntry->width = pEntry->widest_line_width; pEntry->row_count = iNumRows; pEntry->last_x = 1 + (static_cast(iLineWidth + iAlignDelta) >> 6); // Get a bitmap for each glyph. bool bIsMonochrome = is_monochrome(); FT_Render_Mode eRenderMode = bIsMonochrome ? FT_RENDER_MODE_MONO : FT_RENDER_MODE_NORMAL; for (auto itr = mapGlyphs.begin(), itrEnd = mapGlyphs.end(); itr != itrEnd; ++itr) { FT_Glyph_To_Bitmap(&itr->second.glyph, eRenderMode, nullptr, 1); } // Prepare a canvas for rendering. pEntry->data = new uint8_t[pEntry->width * pEntry->height]; std::memset(pEntry->data, 0, pEntry->width * pEntry->height); int iDrawnLines = 0; // Render each character to the canvas. for (auto itr = vLines.begin(); itr != vLines.end() && iDrawnLines < iMaxRows + iSkipRows; ++itr) { iDrawnLines++; for (const char* s = itr->first; s < itr->second;) { FT_Vector& ftvPos = vCharPositions[s - sMessage]; unsigned int iCode = next_utf8_codepoint(s, sMessageEnd); if (iCode == '\n') { iCode = ' '; } FT_BitmapGlyph pGlyph = reinterpret_cast(mapGlyphs[iCode].glyph); FT_Pos x = pGlyph->left + (ftvPos.x >> 6); FT_Pos y = (ftvPos.y >> 6) - pGlyph->top; // We may have asked for grayscale but been given monochrome, // hence use the bitmap's pixel_mode rather than bIsMonochrome. switch (pGlyph->bitmap.pixel_mode) { case FT_PIXEL_MODE_GRAY: render_gray(pEntry, &pGlyph->bitmap, x, y); break; case FT_PIXEL_MODE_MONO: render_mono(pEntry, &pGlyph->bitmap, x, y); break; } } } // Free all glyphs. for (auto itr = mapGlyphs.begin(); itr != mapGlyphs.end(); ++itr) { FT_Done_Glyph(itr->second.glyph); } pEntry->is_valid = true; } if (pCanvas != nullptr) { if (pEntry->texture == nullptr) { make_texture(pCanvas, pEntry); } draw_texture(pCanvas, pEntry, iX, iY); } oDrawArea.width = pEntry->widest_line_width; oDrawArea.end_x = iX + pEntry->last_x; oDrawArea.end_y = iY + pEntry->height; oDrawArea.row_count = pEntry->row_count; return oDrawArea; } // In theory, the renderers should only be invoked with coordinates which end // up within the canvas being rendered to. In practice, this might not happen, // at which point the following line can be removed. // #define TRUST_RENDER_COORDS void freetype_font::render_mono(cached_text* pCacheEntry, FT_Bitmap* pBitmap, FT_Pos x, FT_Pos y) const { uint8_t* pOutRow = pCacheEntry->data + y * pCacheEntry->width + x; uint8_t* pInRow = pBitmap->buffer; int rows = static_cast(pBitmap->rows); int width = static_cast(pBitmap->width); for (int iY = 0; iY < rows; ++iY, pOutRow += pCacheEntry->width, pInRow += pBitmap->pitch) { #ifndef TRUST_RENDER_COORDS if (y + iY < 0) continue; if (y + iY >= pCacheEntry->height) break; #endif uint8_t *pIn = pInRow, *pOut = pOutRow; uint8_t iMask = 0x80; for (int iX = 0; iX < width; ++iX, ++pOut) { #ifndef TRUST_RENDER_COORDS if (x + iX < 0) continue; if (x + iX >= pCacheEntry->width) break; #endif if (*pIn & iMask) *pOut = 0xFF; iMask = static_cast(iMask / 2); if (iMask == 0) { iMask = 0x80; ++pIn; } } } } void freetype_font::render_gray(cached_text* pCacheEntry, FT_Bitmap* pBitmap, FT_Pos x, FT_Pos y) const { uint8_t* pOutRow = pCacheEntry->data + y * pCacheEntry->width + x; uint8_t* pInRow = pBitmap->buffer; int rows = static_cast(pBitmap->rows); int width = static_cast(pBitmap->width); for (int iY = 0; iY < rows; ++iY, pOutRow += pCacheEntry->width, pInRow += pBitmap->pitch) { #ifndef TRUST_RENDER_COORDS if (y + iY < 0) continue; if (y + iY >= pCacheEntry->height) break; #endif uint8_t *pIn = pInRow, *pOut = pOutRow; for (int iX = 0; iX < width; ++iX, ++pIn, ++pOut) { #ifndef TRUST_RENDER_COORDS if (x + iX < 0) continue; if (x + iX >= pCacheEntry->width) break; #endif unsigned int iIn = *pIn; unsigned int iOut = *pOut; uint8_t cMerged = static_cast(iIn + iOut - (iIn * iOut) / 255); *pOut = cMerged; } } } CorsixTH-0.70.0/CorsixTH/Src/th_gfx_font.h000066400000000000000000000331051522247547500202300ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_GFX_FONT_H_ #define CORSIX_TH_TH_GFX_FONT_H_ #include "config.h" #include #include // IWYU pragma: keep // IWYU pragma: no_include "freetype/config/ftheader.h" #include #include "th_gfx_sdl.h" #include FT_FREETYPE_H #include FT_IMAGE_H #include FT_TYPES_H enum class text_alignment { left = 0, center = 1, right = 2, }; enum class bitmap_font_character_set { cp437, mik }; /** Structure for the bounds of a text string that is rendered to the screen. */ struct text_layout { //! Number of rows the rendered text spans int row_count; //! Left X-coordinate for the start of the text int start_x; //! Right X-coordinate for the right part of the last letter rendered int end_x; //! Top Y-coordinate for the start of the text int start_y; //! Bottom Y-coordinate for the end of the text int end_y; //! Width of the widest line in the text int width; }; struct font_shadow_options { //! Whether to draw a shadow bool enabled{false}; //! Horizontal offset of the shadow, in pixels int offset_x{1}; //! Vertical offset of the shadow, in pixels int offset_y{1}; //! Colour of the shadow argb_colour color{0xFF000000u}; }; class font { public: virtual ~font() = default; //! Get the size of drawn text. /*! If iMaxWidth is specified the text will wrap, so that the height can span multiple rows. Otherwise gets the size of a single line of text. @param sMessage A UTF-8 encoded string containing a single line of text to measure the width and height of. @param iMessageLength The length, in bytes (not characters), of the string at sMessage. @param iMaxWidth The maximum length, in pixels, that the text may occupy. Default is INT_MAX. */ virtual text_layout get_text_dimensions(const char* sMessage, size_t iMessageLength, int iMaxWidth = INT_MAX) const = 0; //! Draw a single line of text /*! @param pCanvas The render target to draw onto. @param sMessage A UTF-8 encoded string containing a single line of text to draw. @param iMessageLength The length, in bytes (not characters), of the string at sMessage. @param iX The X coordinate of the top-left corner of the bounding rectangle for the drawn text. @param iY The Y coordinate of the top-left corner of the bounding rectangle for the drawn text. */ virtual void draw_text(render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY) const = 0; //! Draw a single line of text, splitting it at word boundaries /*! This function still only draws a single line of text (i.e. any line breaks like `\r` and `\n` in sMessage are ignored), but inserts line breaks between words so that no single line is wider than iWidth pixels. If iMaxRows is specified it will simply cut after that many rows. @param pCanvas The canvas on which to draw. Can be nullptr, in which case nothing is drawn, but other calculations are still made. @param sMessage The line of text to draw, encoded in CP437. @param iMessageLength The length (in bytes) of sMessage. @param iX The X position to start drawing on the canvas. @param iY The Y position to start drawing on the canvas. @param iWidth The maximum width of each line of text. @param iMaxRows The maximum number of rows to draw. Default is INT_MAX. @param iSkipRows Start rendering text after skipping this many rows. @param eAlign How to align each line of text if the width of the line of text is smaller than iWidth. */ virtual text_layout draw_text_wrapped( render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY, int iWidth, int iMaxRows = INT_MAX, int iSkipRows = 0, text_alignment eAlign = text_alignment::left) const = 0; }; class bitmap_font final : public font { public: bitmap_font(); //! Set the character glyph sprite sheet /*! The sprite sheet should have the space character (ASCII 0x20) at sprite index 1, and other ASCII characters following on in simple order (i.e. '!' (ASCII 0x21) at index 2, 'A' (ASCII 0x41) at index 34, etc.) \param pSpriteSheet The sprite sheet to use for the font. \param character_set The character set to use when mapping unicode to sprite indexes. */ void set_sprite_sheet(sprite_sheet* pSpriteSheet, bitmap_font_character_set character_set); void set_scale_factor(int factor); sprite_sheet* get_sprite_sheet() { return sheet; } //! Set the separation between characters and between lines /*! Generally, the sprite sheet glyphs will already include separation, and thus no extra separation is required (set iCharSep and iLineSep to 0). */ void set_separation(int iCharSep, int iLineSep); text_layout get_text_dimensions(const char* sMessage, size_t iMessageLength, int iMaxWidth = INT_MAX) const override; void draw_text(render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY) const override; text_layout draw_text_wrapped( render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY, int iWidth, int iMaxRows = INT_MAX, int iSkipRows = 0, text_alignment eAlign = text_alignment::left) const override; private: sprite_sheet* sheet{nullptr}; int letter_spacing{}; int line_spacing{}; int scale_factor{1}; bitmap_font_character_set character_set{bitmap_font_character_set::cp437}; }; //! Adaptor around the FreeType2 library to a THFont. /*! Due to the relatively high cost of rendering a message with FreeType, this class implements internal caching of messages, so rendering a message once will be quite expensive, but subsequently rendering the same message again will be quite cheap (provided that it hasn't fallen out of the cache). Unlike THBitmapFont which sits entirely on top of existing interfaces, some of the internal methods of this class are implemented by each individual rendering engine (said methods are roughly for the equivalent of the THRawBitmap class, but with an alpha channel, and a single colour rather than a palette). */ class freetype_font final : public font { public: freetype_font(); ~freetype_font() override; //! Get the copyright notice which should be displayed for FreeType2. /*! To comply with the FreeType2 license, the string returned by this function needs to be displayed at some point. @return A null-terminated UTF-8 encoded string. */ static const char* get_copyright_notice(); //! Initialise the FreeType2 library. /*! This will be called automatically by setFace() as required. */ FT_Error initialise(); //! Remove all cached strings, as our graphics context has changed void clear_cache(); //! Set the font face to be used. /*! @param pData Pointer to the start of a font file loaded into memory. This block of memory must remain valid for at least the lifetime of the THFreeTypeFont objcect. @param iLength The size, in bytes, of the font file at pData. */ FT_Error set_face(const uint8_t* pData, size_t iLength); //! Find colour and size to best match a bitmap font. /*! Note that the matching is done on a best-effort basis, and will likely not be perfect. This must be called after setFace(). @param font_spritesheet The sprite sheet of the bitmap font. @param color [out] Colour to use for the font. Colour 0 falls back to deriving the colour from the sprite sheet. @param width [out] Width of each character in pixels. @param height [out] Height of each character in pixels. */ FT_Error match_bitmap_font(sprite_sheet* font_spritesheet, argb_colour* color, int* width, int* height); //! Set the ideal character size using pixel values. /*! Note that the given size might be changed a small amount if doing so would result in a much nicer rendered font. This must be called after setFace(). */ FT_Error set_ideal_character_size(int iWidth, int iHeight); void set_font_color(argb_colour color); void set_shadow_options(const font_shadow_options& options); text_layout get_text_dimensions(const char* sMessage, size_t iMessageLength, int iMaxWidth = INT_MAX) const override; void draw_text(render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY) const override; text_layout draw_text_wrapped( render_target* pCanvas, const char* sMessage, size_t iMessageLength, int iX, int iY, int iWidth, int iMaxRows = INT_MAX, int iSkipRows = 0, text_alignment eAlign = text_alignment::left) const override; private: struct cached_text { //! The text being converted to pixels char* message; //! Raw pixel data in row major 8-bit greyscale uint8_t* data; //! Generated texture ready to be rendered SDL_Texture* texture; //! The length of sMessage size_t message_length; //! The size of the buffer allocated to store sMessage size_t message_buffer_length; //! Width of the image to draw int width; //! Height of the image to draw int height; //! The width of the longest line of text in in the textbox in pixels int widest_line_width; //! X Coordinate trailing the last character in canvas coordinates int last_x; //! Number of rows required int row_count; //! Alignment of the message in the box text_alignment alignment; //! True when the data reflects the message given the size constraints bool is_valid; }; //! Render a FreeType2 monochrome bitmap to a cache canvas. void render_mono(cached_text* pCacheEntry, FT_Bitmap* pBitmap, FT_Pos x, FT_Pos y) const; //! Render a FreeType2 grayscale bitmap to a cache canvas. void render_gray(cached_text* pCacheEntry, FT_Bitmap* pBitmap, FT_Pos x, FT_Pos y) const; static FT_Library freetype_library; static int freetype_init_count; static constexpr int cache_size_log2{7}; FT_Face font_face{nullptr}; argb_colour font_color{0}; font_shadow_options shadow_opts{}; bool is_done_freetype_init{false}; mutable cached_text cache[1 << cache_size_log2]{}; // The following five methods are implemented by the rendering engine. //! Query if 1-bit monochrome or 8-bit grayscale rendering should be used. /*! @return true if 1-bit monochrome rendering should be used, false if 8-bit grayscale rendering should be used (though in the latter case, 1-bit rendering might still get used). */ bool is_monochrome() const; //! Convert a cache canvas containing rendered text into a texture. /*! @param pEventualCanvas A pointer to the rendertarget we'll be using to draw this. @param pCacheEntry A cache entry whose pData field points to a pixmap of size iWidth by iHeight. This method will convert said pixmap to an object which can be used by the rendering engine, and store the result in the pTexture or iTexture field. */ void make_texture(const render_target* pEventualCanvas, cached_text* pCacheEntry) const; static void copy_pixel_data(const cached_text* cacheEntry, argb_colour color, int offsetX, int offsetY, std::vector::iterator outIter); //! Free a previously-made texture of a cache entry. /*! This call should free all the resources previously allocated by a call to _makeTexture() and set the texture field to indicate no texture. @param pCacheEntry A cache entry previously passed to _makeTexture(). */ void free_texture(cached_text* pCacheEntry) const; //! Render a previously-made texture of a cache entry. /*! @param pCanvas The canvas on which to draw. @param pCacheEntry A cache entry containing the texture to draw, which will have been stored in the pTexture or iTexture field by a prior call to _makeTexture(). @param iX The X position at which to draw the texture on the canvas. @param iY The Y position at which to draw the texture on the canvas. */ void draw_texture(render_target* pCanvas, cached_text* pCacheEntry, int iX, int iY) const; }; #endif // CORSIX_TH_TH_GFX_FONT_H_ CorsixTH-0.70.0/CorsixTH/Src/th_gfx_sdl.cpp000066400000000000000000001627671522247547500204200ustar00rootroot00000000000000/* Copyright (c) 2009-2013 Peter "Corsix" Cawley and Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th_gfx_sdl.h" #include "config.h" #include #include // IWYU pragma: no_include #ifdef WITH_TRACY #include #endif #include #include #include #include #include #include #include #include #include #include #include #include "persist_lua.h" #include "th_gfx.h" #include "th_gfx_common.h" #include "th_gfx_font.h" #if SDL_VERSION_ATLEAST(2, 0, 10) //! How much to overdraw scaled sprites to ensure no gaps are visible. const float frect_overdraw = 0.01f; #define SDL_FRECT_UNIT float #else // On older SDL versions, floating point rendering was not available so we fall // back to integer methods / types. #define SDL_FRECT_UNIT int #define SDL_FRect SDL_Rect #define SDL_RenderCopyF SDL_RenderCopy #define SDL_RenderCopyExF SDL_RenderCopyEx #endif full_colour_renderer::full_colour_renderer(int iWidth, int iHeight) : width(iWidth), height(iHeight) {} namespace { constexpr double pi = 3.14159265358979323846; //! The number of game ticks between jelly the jelly effect activating. constexpr int jelly_effect_period = 540; //! The number of game ticks the jelly effect is active for when it runs. constexpr int jelly_effect_duration = 90; //! Convert a colour to an equivalent grey scale level. /*! @param iOpacity Opacity of the pixel. @param iR Red colour intensity. @param iG Green colour intensity. @param iB Blue colour intensity. @return 32bpp colour pixel in grey scale. */ inline uint32_t makeGreyScale(uint8_t iOpacity, uint8_t iR, uint8_t iG, uint8_t iB) { // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale // 0.2126*R + 0.7152*G + 0.0722*B // 0.2126 * 65536 = 13932.9536 -> 1393 // 0.7152 * 65536 = 46871.3472 // 0.0722 * 65536 = 4731.6992 -> 4732 // 13933 + 46871 + 4732 = 65536 = 2**16 uint8_t iGrey = static_cast((13933 * iR + 46871 * iG + 4732 * iB) >> 16); return palette::pack_argb(iOpacity, iGrey, iGrey, iGrey); } //! Convert a colour by swapping red and blue channel. /*! @param iOpacity Opacity of the pixel. @param iR Red colour intensity. @param iG Green colour intensity. @param iB Blue colour intensity. @return 32bpp colour pixel with red and blue swapped. */ inline uint32_t makeSwapRedBlue(uint8_t iOpacity, uint8_t iR, uint8_t iG, uint8_t iB) { // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale // The Y factor for red is 0.2126, and for blue 0.0722. This means red is // about 3 times stronger than blue. Simple swapping channels will thus // distort the balance. This code compensates for that by computing red = // blue * 0.0722 / 0.2126 = blue * 1083 / 3189 blue = red * 0.2126 / 0.0722 // = red * 1063 / 361 (clipped at max blue, 255) uint8_t iNewRed = static_cast(iB * 1083 / 3189); int iNewBlue = iR * 1063 / 361; if (iNewBlue > 255) iNewBlue = 255; return palette::pack_argb(iOpacity, iNewRed, iG, static_cast(iNewBlue)); } uint8_t convert_6bit_to_8bit_colour_component(uint8_t colour_component) { constexpr uint8_t mask_6bit = 0x3F; return static_cast(std::lround( (colour_component & mask_6bit) * static_cast(0xFF) / mask_6bit)); } //! Get the intersection of two SDL_Rects. The output rect can be a // pointer to either of the two input rects. /*! @param a Pointer to first SDL_Rect to be intersected @param b Pointer to second SDL_Rect to be intersected @param[out] out The intersection of SDL_Rect |a| and |b|. */ void intersectRect(const SDL_Rect& a, const SDL_Rect& b, SDL_Rect* out) { // The intersection of the rectangles is the higher of the lower bounds and // the lower of the higher bounds, clamped to a zero size. clip_rect::x_y_type maxX = std::min(a.x + a.w, b.x + b.w); clip_rect::x_y_type maxY = std::min(a.y + a.h, b.y + b.h); out->x = std::max(a.x, b.x); out->y = std::max(a.y, b.y); out->w = maxX - out->x; out->h = maxY - out->y; // Make sure that we clamp the values to 0. if (out->w <= 0 || out->h <= 0) { out->w = 0; out->h = 0; } } //! Get the enclosing rect of an SDL_Rect scaled by the given scale factor. // Scaling the rect is location dependent, as non-integer scale factors // require that same size rects be +/-1 pixel different in size depending // on location. /*! @param rect Pointer to the SDL_Rect to be scaled. @param scale_factor Scale to be applied to the rectangle. @param[out] dst_rect Enclosing SDL_Rect of rect scaled by scale_factor. */ void getEnclosingScaleRect(const SDL_Rect* rect, double scale_factor, SDL_Rect* dst_rect) { // When scaling a rect, we use the scaled position of the bottom-right corner // to determine the size depending on where on the screen the rect is. Compute // width and height first so that we can support when rect == dst_rect. int dst_x = static_cast(scale_factor * rect->x); int dst_y = static_cast(scale_factor * rect->y); dst_rect->w = static_cast(ceil(scale_factor * (rect->x + rect->w))) - dst_x; dst_rect->h = static_cast(ceil(scale_factor * (rect->y + rect->h))) - dst_y; dst_rect->x = dst_x; dst_rect->y = dst_y; } //! Get the scaled rect of an SDL_Rect scaled by the given scale factor. // On SDL < 2.0.10 this falls back to using getEnclosingScaleRect. /*! @param rect Pointer to the SDL_Rect to be scaled. @param scale_factor Scale to be applied to the rectangle. @param[out] dst_rect Enclosing SDL_FRect of rect scaled by scale_factor. */ void getScaleRect(const SDL_Rect* rect, double scale_factor, SDL_FRect* dst_rect) { #if SDL_VERSION_ATLEAST(2, 0, 10) // If using SDL 2.0.10 or newer, we can use floats to get better precision // on scaled rendering. dst_rect->x = static_cast(rect->x * scale_factor) - frect_overdraw; dst_rect->y = static_cast(rect->y * scale_factor) - frect_overdraw; dst_rect->w = static_cast(rect->w * scale_factor) + 2 * frect_overdraw; dst_rect->h = static_cast(rect->h * scale_factor) + 2 * frect_overdraw; #else // Prior to SDL 2.0.10, fallback to using the enclosing integer SDL_Rect for // scaled rendering. getEnclosingScaleRect(rect, scale_factor, dst_rect); #endif } class scoped_color_mod { public: scoped_color_mod(SDL_Texture* pTexture, int r, int g, int b) : texture(pTexture) { int err = SDL_SetTextureColorMod(texture, r, g, b); if (err < 0) { throw std::runtime_error(SDL_GetError()); } } ~scoped_color_mod() { SDL_SetTextureColorMod(texture, 0xFF, 0xFF, 0xFF); } private: SDL_Texture* texture; }; } // namespace palette::palette(const uint8_t* pData, size_t iDataLength, bool is8bit) { int stride; if (iDataLength == 256 * 3) { stride = 3; // RGB } else if (iDataLength == 256 * 4) { stride = 4; // RGBA } else { throw std::runtime_error( "Invalid palette data length. Must be 768 or 1024 bytes."); } for (int i = 0; i < color_count; ++i, pData += stride) { uint8_t iR = is8bit ? pData[0] : convert_6bit_to_8bit_colour_component(pData[0]); uint8_t iG = is8bit ? pData[1] : convert_6bit_to_8bit_colour_component(pData[1]); uint8_t iB = is8bit ? pData[2] : convert_6bit_to_8bit_colour_component(pData[2]); uint8_t iA = stride == 4 ? pData[3] : 0xFF; uint32_t iColour = pack_argb(iA, iR, iG, iB); // Remap magenta to transparent if (iColour == pack_argb(0xFF, 0xFF, 0x00, 0xFF)) iColour = pack_argb(0x00, 0x00, 0x00, 0x00); colour_index_to_argb_map[i] = iColour; } } bool palette::set_entry(int iEntry, uint8_t iR, uint8_t iG, uint8_t iB) { if (iEntry < 0 || iEntry >= color_count) return false; uint32_t iColour = pack_argb(0xFF, iR, iG, iB); // Remap magenta to transparent if (iColour == pack_argb(0xFF, 0xFF, 0x00, 0xFF)) iColour = pack_argb(0x00, 0x00, 0x00, 0x00); colour_index_to_argb_map[iEntry] = iColour; return true; } const std::array& palette::get_argb_data() const { return colour_index_to_argb_map; } void full_colour_renderer::decode_image(const uint8_t* pImg, const palette* pPalette, uint32_t iSpriteFlags) { if (width <= 0) { throw std::logic_error("width cannot be <= 0 when decoding an image"); } if (height <= 0) { throw std::logic_error("height cannot be <= 0 when decoding an image"); } iSpriteFlags &= thdf_alt32_mask; const auto& pColours = pPalette->get_argb_data(); for (;;) { uint8_t iType = *pImg++; size_t iLength = iType & 63; switch (iType >> 6) { case 0: // Fixed fully opaque 32bpp pixels while (iLength > 0) { uint32_t iColour; if (iSpriteFlags == thdf_alt32_blue_red_swap) iColour = makeSwapRedBlue(0xFF, pImg[0], pImg[1], pImg[2]); else if (iSpriteFlags == thdf_alt32_grey_scale) iColour = makeGreyScale(0xFF, pImg[0], pImg[1], pImg[2]); else iColour = palette::pack_argb(0xFF, pImg[0], pImg[1], pImg[2]); push_pixel(iColour); pImg += 3; iLength--; } break; case 1: // Fixed partially transparent 32bpp pixels { uint8_t iOpacity = *pImg++; while (iLength > 0) { uint32_t iColour; if (iSpriteFlags == thdf_alt32_blue_red_swap) iColour = makeSwapRedBlue(0xFF, pImg[0], pImg[1], pImg[2]); else if (iSpriteFlags == thdf_alt32_grey_scale) iColour = makeGreyScale(iOpacity, pImg[0], pImg[1], pImg[2]); else iColour = palette::pack_argb(iOpacity, pImg[0], pImg[1], pImg[2]); push_pixel(iColour); pImg += 3; iLength--; } break; } case 2: // Fixed fully transparent pixels { static const uint32_t iTransparent = palette::pack_argb(0, 0, 0, 0); while (iLength > 0) { push_pixel(iTransparent); iLength--; } break; } case 3: // Recolour layer { uint8_t iTable = *pImg++; pImg++; // Skip reading the opacity for now. if (iTable == 0xFF) { // Legacy sprite data. Use the palette to recolour the // layer. Note that the iOpacity is ignored here. while (iLength > 0) { push_pixel(pColours[*pImg++]); iLength--; } } else { // TODO: Add proper recolour layers, where RGB comes from // table 'iTable' at index *pImg (iLength times), and // opacity comes from the byte after the iTable byte. // // For now just draw black pixels, so it won't go unnoticed. while (iLength > 0) { uint32_t iColour = palette::pack_argb(0xFF, 0, 0, 0); push_pixel(iColour); iLength--; } } break; } } if (y >= height) break; } if (y != height || x != 0) { throw std::logic_error("Image data does not match given dimensions"); } } full_colour_storing::full_colour_storing(uint32_t* pDest, int iWidth, int iHeight) : full_colour_renderer(iWidth, iHeight) { destination = pDest; } void full_colour_storing::store_argb(uint32_t pixel) { *destination++ = pixel; } wx_storing::wx_storing(uint8_t* pRGBData, uint8_t* pAData, int iWidth, int iHeight) : full_colour_renderer(iWidth, iHeight) { rgb_data = pRGBData; alpha_data = pAData; } void wx_storing::store_argb(uint32_t pixel) { rgb_data[0] = palette::get_red(pixel); rgb_data[1] = palette::get_green(pixel); rgb_data[2] = palette::get_blue(pixel); rgb_data += 3; *alpha_data++ = palette::get_alpha(pixel); } render_target::scoped_target_texture::scoped_target_texture( render_target* pTarget, int iX, int iY, int iWidth, int iHeight, bool bScale) : target(pTarget), previous_target(target->current_target), rect({iX, iY, iWidth, iHeight}), scale(bScale) { if (!target->supports_target_textures) return; texture = SDL_CreateTexture(target->renderer, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_TARGET, iWidth, iHeight); if (SDL_SetRenderTarget(target->renderer, texture) != 0) { SDL_DestroyTexture(texture); texture = nullptr; return; } // Clear the new texture to transparent/black. SDL_RenderSetLogicalSize(target->renderer, rect.w, rect.h); SDL_SetRenderDrawColor(target->renderer, 0, 0, 0, SDL_ALPHA_TRANSPARENT); SDL_RenderClear(target->renderer); target->current_target = this; } void render_target::scoped_target_texture::offset(SDL_FRect& targetRect) const { targetRect.x -= static_cast(rect.x); targetRect.y -= static_cast(rect.y); } double render_target::scoped_target_texture::scale_factor() const { return scale ? target->global_scale_factor : 1.0; } bool render_target::scoped_target_texture::is_target() const { return texture; } render_target::scoped_target_texture::~scoped_target_texture() { if (!texture) return; // Restore previous context. SDL_SetRenderTarget(target->renderer, previous_target ? previous_target->texture : nullptr); SDL_RenderSetLogicalSize( target->renderer, previous_target ? previous_target->rect.w : target->width, previous_target ? previous_target->rect.h : target->height); SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); target->current_target = previous_target; if (scale) { // If the target texture is already scaled, skip the global scale factor // by drawing directly. SDL_RenderCopy(target->renderer, texture, nullptr, &rect); } else { target->draw(texture, nullptr, &rect, 0); } target->intermediate_textures.push_back(texture); } render_target::render_target(const render_target_creation_params& params) : width{params.width}, height{params.height}, direct_zoom{params.direct_zoom} { SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); pixel_format = SDL_AllocFormat(SDL_PIXELFORMAT_ABGR8888); window = SDL_CreateWindow("CorsixTH", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE); if (!window) { throw std::runtime_error(SDL_GetError()); } Uint32 iRendererFlags = (params.present_immediate ? 0 : SDL_RENDERER_PRESENTVSYNC); renderer = SDL_CreateRenderer(window, -1, iRendererFlags); SDL_RendererInfo info; SDL_GetRendererInfo(renderer, &info); supports_target_textures = (info.flags & SDL_RENDERER_TARGETTEXTURE) != 0; SDL_version sdlVersion; SDL_GetVersion(&sdlVersion); apply_opengl_clip_fix = std::strncmp(info.name, "opengl", 6) == 0 && sdlVersion.major == 2 && sdlVersion.minor == 0 && sdlVersion.patch < 4; SDL_SetWindowMinimumSize(window, params.min_width, params.min_height); SDL_RenderSetLogicalSize(renderer, width, height); update(params); } render_target::~render_target() { zoom_buffer.reset(); destroy_intermediate_textures(); if (pixel_format) { SDL_FreeFormat(pixel_format); pixel_format = nullptr; } if (renderer) { SDL_DestroyRenderer(renderer); renderer = nullptr; } if (window) { SDL_DestroyWindow(window); window = nullptr; } } bool render_target::update(const render_target_creation_params& params) { bool bUpdateSize = (width != params.width) || (height != params.height); width = params.width; height = params.height; bool bIsFullscreen = ((SDL_GetWindowFlags(window) & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP); if (bIsFullscreen != params.fullscreen) { SDL_SetWindowFullscreen( window, (params.fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0)); } if (bUpdateSize || bIsFullscreen != params.fullscreen) { SDL_SetWindowSize(window, width, height); } if (bUpdateSize) { SDL_RenderSetLogicalSize(renderer, width, height); } int old_min_width; int old_min_height; SDL_GetWindowMinimumSize(window, &old_min_width, &old_min_height); if (old_min_width != params.min_width || old_min_height != params.min_height) { SDL_SetWindowMinimumSize(window, params.min_width, params.min_height); } return true; } bool render_target::set_scale_factor(double fScale, scaled_items eWhatToScale) { zoom_buffer.reset(); scale_bitmaps = false; if (fScale <= 0.000) { return false; } else if (eWhatToScale == scaled_items::all && direct_zoom) { global_scale_factor = fScale; if ((SDL_GetWindowFlags(window) & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) { // Drawing to an intermediate screen sized buffer when fullscreen results // in noticeably better text rendering quality. zoom_buffer = std::make_unique(this, 0, 0, width, height, /* bScale = */ true); } return true; } else if (eWhatToScale == scaled_items::all && supports_target_textures) { // Draw everything from now until the next scale to zoom_texture // with the appropriate virtual size, which will be copied scaled to // fit the window. int virtWidth = static_cast(width / fScale); int virtHeight = static_cast(height / fScale); zoom_buffer = std::make_unique( this, 0, 0, virtWidth, virtHeight, /* bScale = */ false); if (!zoom_buffer->is_target()) { global_scale_factor = 1.0; std::cout << "Warning: Could not render to zoom texture - " << SDL_GetError() << "\n"; return false; } // When zoom_buffer is allocated with bScale = false, this is only used for // the scale to commit the zoom buffer back to the screen at. global_scale_factor = fScale; return true; } else if (0.999 <= fScale && fScale <= 1.001) { return true; } else if (eWhatToScale == scaled_items::bitmaps) { scale_bitmaps = true; bitmap_scale_factor = fScale; return true; } return false; } void render_target::set_caption(const char* sCaption) { SDL_SetWindowTitle(window, sCaption); } const char* render_target::get_renderer_details() const { SDL_RendererInfo info = {}; SDL_GetRendererInfo(renderer, &info); return info.name; } const char* render_target::get_last_error() { return SDL_GetError(); } bool render_target::start_frame() { // Destroy any intermediate textures used last frame. destroy_intermediate_textures(); fill_black(); return true; } bool render_target::end_frame() { zoom_buffer.reset(); // End the frame by adding the cursor and possibly a filter. if (game_cursor) { game_cursor->draw(this, cursor_x, cursor_y); } if (blue_filter_active) { SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND); SDL_SetRenderDrawColor(renderer, 51, 51, 255, 128); // r=0.2, g=0.2, b=1, a=0.5 . SDL_RenderFillRect(renderer, nullptr); } SDL_RenderPresent(renderer); FrameMark; return true; } bool render_target::fill_black() { SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE); SDL_RenderClear(renderer); return true; } bool render_target::fill_colour(uint32_t colour) { SDL_SetRenderDrawColor(renderer, palette::get_red(colour), palette::get_green(colour), palette::get_blue(colour), palette::get_alpha(colour)); SDL_RenderClear(renderer); return true; } void render_target::set_blue_filter_active(bool bActivate) { blue_filter_active = bActivate; } // Activate or Deactivate SDL function to capture mouse to window void render_target::set_window_grab(bool bActivate) { SDL_SetWindowGrab(window, bActivate ? SDL_TRUE : SDL_FALSE); } bool render_target::fill_rect(uint32_t iColour, int iX, int iY, int iW, int iH) { SDL_Rect rcDest = {iX, iY, iW, iH}; getEnclosingScaleRect(&rcDest, draw_scale(), &rcDest); Uint8 r, g, b, a; SDL_GetRGBA(iColour, pixel_format, &r, &g, &b, &a); SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND); SDL_SetRenderDrawColor(renderer, r, g, b, a); SDL_RenderFillRect(renderer, &rcDest); return true; } render_target::scoped_clip::scoped_clip(render_target* pTarget, const clip_rect* pRect) : target(pTarget) { target->push_clip_rect(pRect); } render_target::scoped_clip::~scoped_clip() { target->pop_clip_rect(); } void render_target::push_clip_rect(const clip_rect* pRect) { const SDL_Rect* previous_clip = nullptr; if (!clip_rects.empty()) { previous_clip = &clip_rects.top(); } clip_rects.push(SDL_Rect()); SDL_Rect& clip = clip_rects.top(); getEnclosingScaleRect(pRect, draw_scale(), &clip); if (previous_clip) { // Ensure that this new clip does not escape any previous clips applied. intersectRect(clip, *previous_clip, &clip); } // For some reason, SDL treats an empty rect (h or w <= 0) as if you turned // off clipping, so we replace it with a rect that's outside our viewport. const SDL_Rect rcBogus = {-2, -2, 1, 1}; if (SDL_RectEmpty(&clip)) { clip = rcBogus; } if (apply_opengl_clip_fix) { int renderWidth, renderHeight; SDL_RenderGetLogicalSize(renderer, &renderWidth, &renderHeight); clip.y = renderHeight - clip.y - clip.h; } SDL_RenderSetClipRect(renderer, &clip); } void render_target::pop_clip_rect() { clip_rects.pop(); if (clip_rects.empty()) { SDL_RenderSetClipRect(renderer, nullptr); } else { SDL_RenderSetClipRect(renderer, &clip_rects.top()); } } int render_target::get_width() const { int w; SDL_RenderGetLogicalSize(renderer, &w, nullptr); return static_cast(std::ceil(w / draw_scale())); } int render_target::get_height() const { int h; SDL_RenderGetLogicalSize(renderer, nullptr, &h); return static_cast(std::ceil(h / draw_scale())); } void render_target::start_nonoverlapping_draws() { // SDL has no optimisations for drawing lots of non-overlapping sprites } void render_target::finish_nonoverlapping_draws() { // SDL has no optimisations for drawing lots of non-overlapping sprites } void render_target::set_cursor(cursor* pCursor) { game_cursor = pCursor; } void render_target::set_cursor_position(int iX, int iY) { cursor_x = iX; cursor_y = iY; } namespace { //! Error function called when PNG writing fails. void png_error(png_structp png_data, const char* message) { throw(0); } //! Class for managing lifetime of the data structures for saving a PNG file. class png_data_manager { public: png_structp png_write_data{nullptr}; png_infop info_write_data{nullptr}; png_bytepp row_pointers{nullptr}; FILE* fp{nullptr}; ~png_data_manager() { if (png_write_data != nullptr || info_write_data != nullptr) { png_destroy_write_struct(&png_write_data, &info_write_data); } if (row_pointers != nullptr) { delete[] row_pointers; } if (fp != nullptr) { std::fclose(fp); } } }; //! Function to write the pixels to the given file as PNG image. bool write_rgb_png(int width, int height, png_bytep pixels, int pitch, const char* file_path) { png_data_manager png_storage; // Create PNG writer and info data structures. png_storage.png_write_data = png_create_write_struct( PNG_LIBPNG_VER_STRING, (png_voidp)png_error, nullptr, nullptr); if (png_storage.png_write_data == nullptr) { return false; } png_storage.info_write_data = png_create_info_struct(png_storage.png_write_data); if (png_storage.info_write_data == nullptr) { return false; } // Allocate and setup row pointers to the pixels. png_storage.row_pointers = new (std::nothrow) png_bytep[height]; if (png_storage.row_pointers == nullptr) { return false; } { png_bytep rp = pixels; for (int h = 0; h < height; h++) { png_storage.row_pointers[h] = rp; rp += pitch; } } // Open the file for writing. png_storage.fp = std::fopen(file_path, "wb"); if (png_storage.fp == nullptr) { return false; } // Configure what to write. png_init_io(png_storage.png_write_data, png_storage.fp); png_set_IHDR(png_storage.png_write_data, png_storage.info_write_data, width, height, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); png_set_rows(png_storage.png_write_data, png_storage.info_write_data, png_storage.row_pointers); // Write the image while swapping red and blue channels. png_write_png(png_storage.png_write_data, png_storage.info_write_data, PNG_TRANSFORM_BGR, nullptr); return true; } } // namespace bool render_target::take_screenshot(const char* file_path) const { int width = 0, height = 0; if (SDL_GetRendererOutputSize(renderer, &width, &height) == -1) return false; // Create a window-sized surface, RGB format (0 Rmask means RGB.) SDL_Surface* pRgbSurface = SDL_CreateRGBSurface(0, width, height, 24, 0, 0, 0, 0); if (pRgbSurface == nullptr) return false; bool ok = false; int readStatus = -1; if (SDL_LockSurface(pRgbSurface) != -1) { // Ask the renderer to (slowly) fill the surface with renderer // output data. readStatus = SDL_RenderReadPixels(renderer, nullptr, pRgbSurface->format->format, pRgbSurface->pixels, pRgbSurface->pitch); SDL_UnlockSurface(pRgbSurface); if (readStatus != -1) { try { write_rgb_png(width, height, static_cast(pRgbSurface->pixels), pRgbSurface->pitch, file_path); ok = true; } catch (int) { ok = false; // Not needed, but clang-tidy wants it. } } } SDL_FreeSurface(pRgbSurface); return ok; } bool render_target::should_scale_bitmaps(double* pFactor) { if (!scale_bitmaps) return false; if (pFactor) *pFactor = bitmap_scale_factor; return true; } namespace { //! Convert legacy 8bpp sprite data to recoloured 32bpp data, using special //! recolour table 0xFF. /*! @param pPixelData Legacy 8bpp pixels. @param iPixelDataLength Number of pixels in the \a pPixelData. @return Converted 32bpp pixel data, if succeeded else nullptr is returned. Caller should free the returned memory. */ uint8_t* convertLegacySprite(const uint8_t* pPixelData, size_t iPixelDataLength) { // Recolour blocks are 63 pixels long. // XXX To reduce the size of the 32bpp data, transparent pixels can be // stored more compactly. size_t iNumFilled = iPixelDataLength / 63; size_t iRemaining = iPixelDataLength - iNumFilled * 63; size_t iNewSize = iNumFilled * (3 + 63) + ((iRemaining > 0) ? 3 + iRemaining : 0); uint8_t* pData = new uint8_t[iNewSize]; uint8_t* pDest = pData; while (iPixelDataLength > 0) { size_t iLength = (iPixelDataLength >= 63) ? 63 : iPixelDataLength; *pDest++ = static_cast(iLength + 0xC0); // Recolour layer type of block. *pDest++ = 0xFF; // Use special table 0xFF (which uses the palette as // table). *pDest++ = 0xFF; // Non-transparent. std::memcpy(pDest, pPixelData, iLength); pDest += iLength; pPixelData += iLength; iPixelDataLength -= iLength; } return pData; } } // namespace SDL_Texture* render_target::create_palettized_texture( int iWidth, int iHeight, const uint8_t* pPixels, const palette* pPalette, uint32_t iSpriteFlags) const { uint32_t* pARGBPixels = new uint32_t[iWidth * iHeight]; full_colour_storing oRenderer(pARGBPixels, iWidth, iHeight); oRenderer.decode_image(pPixels, pPalette, iSpriteFlags); if (iSpriteFlags & thdf_nearest) SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest"); SDL_Texture* pTexture = create_texture(iWidth, iHeight, pARGBPixels); if (iSpriteFlags & thdf_nearest) SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); delete[] pARGBPixels; return pTexture; } SDL_Texture* render_target::create_texture(int iWidth, int iHeight, const uint32_t* pPixels) const { SDL_Texture* pTexture = SDL_CreateTexture(renderer, pixel_format->format, SDL_TEXTUREACCESS_STATIC, iWidth, iHeight); if (pTexture == nullptr) { throw std::runtime_error(SDL_GetError()); } int err = 0; err = SDL_UpdateTexture(pTexture, nullptr, pPixels, static_cast(sizeof(*pPixels) * iWidth)); if (err < 0) { throw std::runtime_error(SDL_GetError()); } err = SDL_SetTextureBlendMode(pTexture, SDL_BLENDMODE_BLEND); if (err < 0) { throw std::runtime_error(SDL_GetError()); } err = SDL_SetTextureColorMod(pTexture, 0xFF, 0xFF, 0xFF); if (err < 0) { throw std::runtime_error(SDL_GetError()); } err = SDL_SetTextureAlphaMod(pTexture, 0xFF); if (err < 0) { throw std::runtime_error(SDL_GetError()); } return pTexture; } void render_target::draw(SDL_Texture* pTexture, const SDL_Rect* prcSrcRect, const SDL_Rect* prcDstRect, int iFlags) { SDL_SetTextureAlphaMod(pTexture, 0xFF); if (iFlags & thdf_alpha_50) { SDL_SetTextureAlphaMod(pTexture, 0x80); } else if (iFlags & thdf_alpha_75) { SDL_SetTextureAlphaMod(pTexture, 0x40); } int iSDLFlip = SDL_FLIP_NONE; if (iFlags & thdf_flip_horizontal) iSDLFlip |= SDL_FLIP_HORIZONTAL; if (iFlags & thdf_flip_vertical) iSDLFlip |= SDL_FLIP_VERTICAL; SDL_FRect scaledDstRect; getScaleRect(prcDstRect, draw_scale(), &scaledDstRect); if (current_target) current_target->offset(scaledDstRect); if (iSDLFlip != 0) { // iSDLFlip may be 3 (HORIZONTAL | VERTICAL) but there is no enum value for // that SDL_RenderCopyExF(renderer, pTexture, prcSrcRect, &scaledDstRect, 0, nullptr, (SDL_RendererFlip)iSDLFlip); // NOLINT } else { SDL_RenderCopyF(renderer, pTexture, prcSrcRect, &scaledDstRect); } } void render_target::draw_line(line_sequence* pLine, int iX, int iY) { SDL_SetRenderDrawColor(renderer, pLine->red, pLine->green, pLine->blue, pLine->alpha); double scale = draw_scale(); double lastX = pLine->line_elements[0].x; double lastY = pLine->line_elements[0].y; for (const line_sequence::line_element& op : pLine->line_elements) { if (op.type == line_sequence::line_command::line) { // Not the true width, but good enough for graphs for (int i = 0; i < pLine->width; ++i) { int adjI = static_cast(i - pLine->width / 2); SDL_RenderDrawLine(renderer, static_cast((lastX + iX) * scale), static_cast((lastY + iY + adjI) * scale), static_cast((op.x + iX) * scale), static_cast((op.y + iY + adjI) * scale)); } } lastX = op.x; lastY = op.y; } } std::unique_ptr render_target::begin_intermediate_drawing(int iX, int iY, int iWidth, int iHeight) { // We only need an intermediate drawing if there is active scaling. if (draw_scale() == 1.0) return nullptr; return std::make_unique(this, iX, iY, iWidth, iHeight, /* bScale = */ false); } double render_target::draw_scale() const { if (current_target) return current_target->scale_factor(); return global_scale_factor; } void render_target::destroy_intermediate_textures() { for (SDL_Texture* texture : intermediate_textures) { SDL_DestroyTexture(texture); } intermediate_textures.clear(); } raw_bitmap::~raw_bitmap() { if (texture) { SDL_DestroyTexture(texture); } } void raw_bitmap::set_palette(const palette* pPalette) { bitmap_palette = pPalette; } void raw_bitmap::load_from_th_file(const uint8_t* pPixelData, size_t iPixelDataLength, int iWidth, render_target* pEventualCanvas, uint32_t spriteFlags) { if (pEventualCanvas == nullptr) { throw std::invalid_argument("pEventualCanvas cannot be null"); } uint8_t* converted_sprite = convertLegacySprite(pPixelData, iPixelDataLength); int iHeight = static_cast(iPixelDataLength) / iWidth; texture = pEventualCanvas->create_palettized_texture( iWidth, iHeight, converted_sprite, bitmap_palette, thdf_alt32_plain | spriteFlags); delete[] converted_sprite; width = iWidth; height = iHeight; target = pEventualCanvas; } namespace { /** * Test whether the loaded full colour sprite loads correctly. * @param pData Data of the sprite. * @param iDataLength Length of the sprite data. * @param iWidth Width of the sprite. * @param iHeight Height of the sprite. * @return Whether the sprite loads correctly (at the end of the sprite, all * data is used). */ bool testSprite(const uint8_t* pData, size_t iDataLength, int iWidth, int iHeight) { if (iWidth <= 0 || iHeight <= 0) return true; size_t iCount = iWidth * iHeight; while (iCount > 0) { if (iDataLength < 1) return false; iDataLength--; uint8_t iType = *pData++; size_t iLength = iType & 63; switch (iType >> 6) { case 0: // Fixed fully opaque 32bpp pixels if (iCount < iLength || iDataLength < iLength * 3) return false; iCount -= iLength; iDataLength -= iLength * 3; pData += iLength * 3; break; case 1: // Fixed partially transparent 32bpp pixels if (iDataLength < 1) return false; iDataLength--; pData++; // Opacity byte. if (iCount < iLength || iDataLength < iLength * 3) return false; iCount -= iLength; iDataLength -= iLength * 3; pData += iLength * 3; break; case 2: // Fixed fully transparent pixels if (iCount < iLength) return false; iCount -= iLength; break; case 3: // Recolour layer if (iDataLength < 2) return false; iDataLength -= 2; pData += 2; // Table number, opacity byte. if (iCount < iLength || iDataLength < iLength) return false; iCount -= iLength; iDataLength -= iLength; pData += iLength; break; } } return iDataLength == 0; } } // namespace void raw_bitmap::draw(render_target* pCanvas, int iX, int iY) { draw(pCanvas, iX, iY, 0, 0, width, height); } void raw_bitmap::draw(render_target* pCanvas, int iX, int iY, int iSrcX, int iSrcY, int iWidth, int iHeight) { double fScaleFactor; if (texture == nullptr) return; if (!pCanvas->should_scale_bitmaps(&fScaleFactor)) { fScaleFactor = 1; } const SDL_Rect rcSrc = {iSrcX, iSrcY, iWidth, iHeight}; const SDL_Rect rcDest = {iX, iY, static_cast(iWidth * fScaleFactor), static_cast(iHeight * fScaleFactor)}; pCanvas->draw(texture, &rcSrc, &rcDest, 0); } sprite_sheet::~sprite_sheet() { _freeSprites(); } void sprite_sheet::_freeSingleSprite(size_t iNumber) { if (iNumber >= sprite_count) return; if (sprites[iNumber].texture != nullptr) { SDL_DestroyTexture(sprites[iNumber].texture); sprites[iNumber].texture = nullptr; } if (sprites[iNumber].alt_texture != nullptr) { SDL_DestroyTexture(sprites[iNumber].alt_texture); sprites[iNumber].alt_texture = nullptr; } if (sprites[iNumber].data != nullptr) { delete[] sprites[iNumber].data; sprites[iNumber].data = nullptr; } } void sprite_sheet::_freeSprites() { for (size_t i = 0; i < sprite_count; ++i) _freeSingleSprite(i); delete[] sprites; sprites = nullptr; sprite_count = 0; } void sprite_sheet::set_palette(const ::palette* pPalette) { palette = pPalette; } bool sprite_sheet::set_sprite_count(size_t iCount, render_target* pCanvas) { _freeSprites(); if (pCanvas == nullptr) return false; target = pCanvas; sprite_count = iCount; sprites = new (std::nothrow) sprite[sprite_count]; if (sprites == nullptr) { sprite_count = 0; return false; } for (size_t i = 0; i < sprite_count; i++) { sprite& spr = sprites[i]; spr.texture = nullptr; spr.alt_texture = nullptr; spr.data = nullptr; spr.alt_palette_map = nullptr; spr.sprite_flags = thdf_alt32_plain; spr.width = 0; spr.height = 0; } return true; } //! Sprite structure in the table file. /*! https://github.com/CorsixTH/theme-hospital-spec/blob/master/format-specification.md#spritetable */ struct th_sprite_properties { static constexpr size_t size = 6; explicit th_sprite_properties(const uint8_t* pData) : position{bytes_to_uint32_le(pData)}, width{pData[4]}, height{pData[5]} {} //! Position of the sprite in the chunk data file. uint32_t position; //! Width of the sprite. uint8_t width; //! Height of the sprite. uint8_t height; }; bool sprite_sheet::load_from_th_file(const uint8_t* pTableData, size_t iTableDataLength, const uint8_t* pChunkData, size_t iChunkDataLength, bool bComplexChunks, render_target* pCanvas) { _freeSprites(); if (pCanvas == nullptr) return false; size_t iCount = iTableDataLength / th_sprite_properties::size; if (!set_sprite_count(iCount, pCanvas)) return false; for (size_t i = 0; i < sprite_count; ++i) { sprite* pSprite = sprites + i; const th_sprite_properties thSprite(pTableData + i * th_sprite_properties::size); pSprite->texture = nullptr; pSprite->alt_texture = nullptr; pSprite->data = nullptr; pSprite->alt_palette_map = nullptr; pSprite->width = thSprite.width; pSprite->height = thSprite.height; if (pSprite->width == 0 || pSprite->height == 0) continue; { std::vector pData(pSprite->width * pSprite->height); chunk_renderer oRenderer(pSprite->width, pSprite->height, pData.begin()); int iDataLen = static_cast(iChunkDataLength) - static_cast(thSprite.position); if (iDataLen < 0) iDataLen = 0; oRenderer.decode_chunks(pChunkData + thSprite.position, iDataLen, bComplexChunks); pSprite->data = convertLegacySprite(pData.data(), pSprite->width * pSprite->height); } } return true; } bool sprite_sheet::set_sprite_data(size_t iSprite, const uint8_t* pData, bool bTakeData, size_t iDataLength, int iWidth, int iHeight) { if (iSprite >= sprite_count) return false; if (!testSprite(pData, iDataLength, iWidth, iHeight)) { std::printf("Sprite number %zu has a bad encoding, skipping", iSprite); return false; } _freeSingleSprite(iSprite); sprite* pSprite = sprites + iSprite; if (bTakeData) { pSprite->data = pData; } else { uint8_t* pNewData = new (std::nothrow) uint8_t[iDataLength]; if (pNewData == nullptr) return false; std::memcpy(pNewData, pData, iDataLength); pSprite->data = pNewData; } pSprite->width = iWidth; pSprite->height = iHeight; return true; } void sprite_sheet::set_sprite_alt_palette_map(size_t iSprite, const uint8_t* pMap, uint32_t iAlt32) { if (iSprite >= sprite_count) return; sprite* pSprite = sprites + iSprite; if (pSprite->alt_palette_map != pMap) { pSprite->alt_palette_map = pMap; pSprite->sprite_flags = iAlt32; if (pSprite->alt_texture) { SDL_DestroyTexture(pSprite->alt_texture); pSprite->alt_texture = nullptr; } } } size_t sprite_sheet::get_sprite_count() const { return sprite_count; } bool sprite_sheet::get_sprite_size(size_t iSprite, int* pWidth, int* pHeight) const { if (iSprite >= sprite_count) return false; if (pWidth != nullptr) *pWidth = sprites[iSprite].width; if (pHeight != nullptr) *pHeight = sprites[iSprite].height; return true; } void sprite_sheet::get_sprite_size_unchecked(size_t iSprite, int* pWidth, int* pHeight) const { *pWidth = sprites[iSprite].width; *pHeight = sprites[iSprite].height; } bool sprite_sheet::get_sprite_average_colour(size_t iSprite, argb_colour* pColour) const { if (iSprite >= sprite_count) return false; const sprite* pSprite = sprites + iSprite; int iCountTotal = 0; int iUsageCounts[256] = {0}; for (long i = 0; i < pSprite->width * pSprite->height; ++i) { uint8_t cPalIndex = pSprite->data[i]; uint32_t iColour = palette->get_argb_data()[cPalIndex]; if ((iColour >> 24) == 0) continue; // - Convert from nonlinear RGB to linear RGB. // gamma = around 2.2 but depends on the screen. // R, G and B are fractions. const double gamma = 2.2; double linR = std::pow(palette::get_red(iColour) / 255.0, gamma); double linG = std::pow(palette::get_green(iColour) / 255.0, gamma); double linB = std::pow(palette::get_blue(iColour) / 255.0, gamma); // - Compute luminance Y in XYZ space. // Y = .2126 * R^gamma + .7152 * G^gamma + .0722 * B^gamma double Y = 0.2126 * linR + 0.7152 * linG + 0.0722 * linB; // - Compute lightness L*. // L* = 116 * Y ^ 1/3 - 16, range is from 0 to 100. double L = std::min(100.0, std::max(0.0, 116 * std::cbrt(Y) - 16)); uint8_t cIntensity = static_cast(L / 100 * 255.0); // Grant higher score to pixels with high or low intensity (helps avoid // grey fonts) int iScore = 1 + std::max(0, 3 - ((255 - cIntensity) / 32)) + std::max(0, 3 - (cIntensity / 32)); iUsageCounts[cPalIndex] += iScore; iCountTotal += iScore; } if (iCountTotal == 0) return false; int iHighestCountIndex = 0; for (int i = 0; i < 256; ++i) { if (iUsageCounts[i] > iUsageCounts[iHighestCountIndex]) iHighestCountIndex = i; } *pColour = palette->get_argb_data()[iHighestCountIndex]; return true; } bool sprite_sheet::is_sprite_visible(size_t iSprite) const { if (iSprite >= sprite_count) return false; const sprite* pSprite = sprites + iSprite; for (long i = 0; i < pSprite->width * pSprite->height; ++i) { uint8_t cPalIndex = pSprite->data[i]; uint32_t iColour = palette->get_argb_data()[cPalIndex]; if ((iColour >> 24) != 0) return true; } return false; } void sprite_sheet::draw_sprite(render_target* pCanvas, size_t iSprite, int iX, int iY, uint32_t iFlags, size_t effect_ticks, animation_effect effect, int scale_factor) { if (iSprite >= sprite_count || pCanvas == nullptr || pCanvas != target) return; sprite& sprite = sprites[iSprite]; // Find or create the texture SDL_Texture* pTexture = sprite.texture; if (!pTexture) { if (sprite.data == nullptr) return; uint32_t iSprFlags = (sprite.sprite_flags & ~thdf_alt32_mask) | thdf_alt32_plain | (iFlags & thdf_nearest); pTexture = target->create_palettized_texture( sprite.width, sprite.height, sprite.data, palette, iSprFlags); sprite.texture = pTexture; } if (iFlags & thdf_alt_palette) { pTexture = sprite.alt_texture; if (!pTexture) { pTexture = _makeAltBitmap(&sprite); if (!pTexture) return; } } std::unique_ptr color_mod; if (effect == animation_effect::glowing) { // We want this to vary between 155 -> 205 -> 255. // Use the target cycle length (15 cycles) to calculate the angle from 0 to // 2*pi. int currentVariation = static_cast( sin(static_cast(effect_ticks % 15) / 15.0 * 2 * pi) * 50); color_mod = std::make_unique(pTexture, 0, 205 + currentVariation, 0); } if (effect == animation_effect::jelly && effect_ticks % jelly_effect_period < jelly_effect_duration) { int jelly_tick = static_cast(effect_ticks % jelly_effect_period); // Draw the sprite a few lines at a time following a sine wave x offset. // To cut down on the number of draw calls, we will draw all of the lines // that have the same x offset in a single draw call. This results in about // a third of the draw calls as drawing each line individually. // TODO: We could move this effect into render_target which is aware of the // screen scale and could optimize this further when zooming out. int y1 = 0; int x_offset = 0; // Scale the effect up as it ramps in and down as it finishes. int scale = std::min(jelly_tick, std::min(jelly_effect_duration - jelly_tick, 2)); for (int y2 = 0; y2 <= sprite.height; y2++) { // TODO: Ideally this should use the offset of the current line from // the map location so that multiple layers have the same jelly offset // at the same vertical line. We can't just use iY because it varies as // the user scrolls or zooms or the character walks. int offset = static_cast( sin((y2 / 16.0 + static_cast(effect_ticks % 50) / 50) * 2 * pi) * scale); if (x_offset != offset || y2 == sprite.height) { if (y2 > y1) { // If the current offset rounds to a different value, render the // previous offset and start a new offset. SDL_Rect rcSrc = {0, y1, sprite.width, y2 - y1}; SDL_Rect rcDest = {iX + x_offset, iY + y1, sprite.width * scale_factor, (y2 - y1) * scale_factor}; pCanvas->draw(pTexture, &rcSrc, &rcDest, iFlags); } y1 = y2; x_offset = offset; } } } else { SDL_Rect rcSrc = {0, 0, sprite.width, sprite.height}; SDL_Rect rcDest = {iX, iY, sprite.width * scale_factor, sprite.height * scale_factor}; pCanvas->draw(pTexture, &rcSrc, &rcDest, iFlags); } } void sprite_sheet::wx_draw_sprite(size_t iSprite, uint8_t* pRGBData, uint8_t* pAData) { if (iSprite >= sprite_count || pRGBData == nullptr || pAData == nullptr) return; sprite* pSprite = sprites + iSprite; wx_storing oRenderer(pRGBData, pAData, pSprite->width, pSprite->height); oRenderer.decode_image(pSprite->data, palette, pSprite->sprite_flags); } SDL_Texture* sprite_sheet::_makeAltBitmap(sprite* pSprite) { const auto& argb_data = palette->get_argb_data(); if (!pSprite->alt_palette_map) { // Use normal palette uint32_t iSprFlags = (pSprite->sprite_flags & ~thdf_alt32_mask) | thdf_alt32_plain; pSprite->alt_texture = target->create_palettized_texture( pSprite->width, pSprite->height, pSprite->data, palette, iSprFlags); } else if (!palette) { // Draw 32bpp image without palette pSprite->alt_texture = target->create_palettized_texture( pSprite->width, pSprite->height, pSprite->data, palette, pSprite->sprite_flags); } else { // Create a palette remapping ::palette oPalette; for (int iColour = 0; iColour < 255; iColour++) { oPalette.set_argb(iColour, argb_data[pSprite->alt_palette_map[iColour]]); } // Index 255 is typically transparent and not remapped. oPalette.set_argb(255, argb_data[255]); pSprite->alt_texture = target->create_palettized_texture( pSprite->width, pSprite->height, pSprite->data, &oPalette, pSprite->sprite_flags); } return pSprite->alt_texture; } namespace { /** * Get the colour data of pixel \a iPixelNumber (\a iWidth * y + x) * @param pImg 32bpp image data. * @param iWidth Width of the image. * @param iHeight Height of the image. * @param pPalette Palette of the image, or \c nullptr. * @param iPixelNumber Number of the pixel to retrieve. */ uint32_t get32BppPixel(const uint8_t* pImg, int iWidth, int iHeight, const ::palette* pPalette, size_t iPixelNumber) { if (iWidth <= 0 || iHeight <= 0 || iPixelNumber >= static_cast(iWidth) * iHeight) { return palette::pack_argb(0, 0, 0, 0); } for (;;) { uint8_t iType = *pImg++; size_t iLength = iType & 63; switch (iType >> 6) { case 0: // Fixed fully opaque 32bpp pixels if (iPixelNumber >= iLength) { pImg += 3 * iLength; iPixelNumber -= iLength; break; } while (iLength > 0) { if (iPixelNumber == 0) return palette::pack_argb(0xFF, pImg[0], pImg[1], pImg[2]); iPixelNumber--; pImg += 3; iLength--; } break; case 1: // Fixed partially transparent 32bpp pixels { uint8_t iOpacity = *pImg++; if (iPixelNumber >= iLength) { pImg += 3 * iLength; iPixelNumber -= iLength; break; } while (iLength > 0) { if (iPixelNumber == 0) return palette::pack_argb(iOpacity, pImg[0], pImg[1], pImg[2]); iPixelNumber--; pImg += 3; iLength--; } break; } case 2: // Fixed fully transparent pixels { if (iPixelNumber >= iLength) { iPixelNumber -= iLength; break; } return palette::pack_argb(0, 0, 0, 0); } case 3: // Recolour layer { uint8_t iTable = *pImg++; pImg++; // Skip reading the opacity for now. if (iPixelNumber >= iLength) { pImg += iLength; iPixelNumber -= iLength; break; } if (iTable == 0xFF && pPalette != nullptr) { // Legacy sprite data. Use the palette to recolour the // layer. Note that the iOpacity is ignored here. return pPalette->get_argb_data()[pImg[iPixelNumber]]; } else { // TODO: Add proper recolour layers, where RGB comes from // table 'iTable' at index *pImg (iLength times), and // opacity comes from the byte after the iTable byte. // // For now just draw black pixels, so it won't go unnoticed. return palette::pack_argb(0xFF, 0, 0, 0); } } } } } } // namespace bool sprite_sheet::hit_test_sprite(size_t iSprite, int iX, int iY, uint32_t iFlags) const { if (iX < 0 || iY < 0 || iSprite >= sprite_count) return false; sprite& sprite = sprites[iSprite]; int iWidth = sprite.width; int iHeight = sprite.height; if (iX >= iWidth || iY >= iHeight) return false; if (iFlags & thdf_flip_horizontal) iX = iWidth - iX - 1; if (iFlags & thdf_flip_vertical) iY = iHeight - iY - 1; uint32_t iCol = get32BppPixel(sprite.data, iWidth, iHeight, palette, iY * iWidth + iX); return palette::get_alpha(iCol) != 0; } cursor::~cursor() { SDL_FreeSurface(bitmap); SDL_FreeCursor(hidden_cursor); } bool cursor::create_from_sprite(sprite_sheet* pSheet, size_t iSprite, int iHotspotX, int iHotspotY) { #if 0 SDL_FreeSurface(m_pBitmap); m_pBitmap = nullptr; if(pSheet == nullptr || iSprite >= pSheet->getSpriteCount()) return false; SDL_Surface *pSprite = pSheet->_getSpriteBitmap(iSprite, 0); if(pSprite == nullptr || (m_pBitmap = SDL_DisplayFormat(pSprite)) == nullptr) return false; m_iHotspotX = iHotspotX; m_iHotspotY = iHotspotY; return true; #else return false; #endif } void cursor::use(render_target* pTarget) { #if 0 //SDL_ShowCursor(0) is buggy in fullscreen until 1.3 (they say) // use transparent cursor for same effect uint8_t uData = 0; m_pCursorHidden = SDL_CreateCursor(&uData, &uData, 8, 1, 0, 0); SDL_SetCursor(m_pCursorHidden); pTarget->setCursor(this); #endif } bool cursor::set_position(render_target* pTarget, int iX, int iY) { #if 0 pTarget->setCursorPosition(iX, iY); return true; #else return false; #endif } void cursor::draw(render_target* pCanvas, int iX, int iY) { #if 0 SDL_Rect rcDest; rcDest.x = (Sint16)(iX - m_iHotspotX); rcDest.y = (Sint16)(iY - m_iHotspotY); SDL_BlitSurface(m_pBitmap, nullptr, pCanvas->getRawSurface(), &rcDest); #endif } line_sequence::line_sequence() { move_to(0.0, 0.0); } void line_sequence::move_to(double fX, double fY) { line_elements.emplace_back(line_command::move, fX, fY); } void line_sequence::line_to(double fX, double fY) { line_elements.emplace_back(line_command::line, fX, fY); } void line_sequence::set_width(double pLineWidth) { width = pLineWidth; } void line_sequence::set_colour(uint8_t iR, uint8_t iG, uint8_t iB, uint8_t iA) { red = iR; green = iG; blue = iB; alpha = iA; } void line_sequence::draw(render_target* pCanvas, int iX, int iY) { pCanvas->draw_line(this, iX, iY); } void line_sequence::persist(lua_persist_writer* pWriter) const { pWriter->write_uint(static_cast(red)); pWriter->write_uint(static_cast(green)); pWriter->write_uint(static_cast(blue)); pWriter->write_uint(static_cast(alpha)); pWriter->write_float(width); uint32_t numOps = static_cast(line_elements.size()); pWriter->write_uint(numOps); for (const line_element& op : line_elements) { pWriter->write_uint(static_cast(op.type)); pWriter->write_float(op.x); pWriter->write_float(op.y); } } void line_sequence::depersist(lua_persist_reader* pReader) { pReader->read_uint(red); pReader->read_uint(green); pReader->read_uint(blue); pReader->read_uint(alpha); pReader->read_float(width); uint32_t numOps = 0; pReader->read_uint(numOps); for (uint32_t i = 0; i < numOps; i++) { // Initialize to invalid in case the read fails. uint32_t type_val = std::numeric_limits::max(); double fX = std::nan(""); double fY = std::nan(""); pReader->read_uint(type_val); pReader->read_float(fX); pReader->read_float(fY); if (std::isnan(fX) || std::isnan(fY)) { return; } if (type_val == static_cast(line_command::move)) { move_to(fX, fY); } else if (type_val == static_cast(line_command::line)) { line_to(fX, fY); } } } bool freetype_font::is_monochrome() const { return false; } void freetype_font::free_texture(cached_text* pCacheEntry) const { if (pCacheEntry->texture != nullptr) { SDL_DestroyTexture(pCacheEntry->texture); pCacheEntry->texture = nullptr; } } void freetype_font::make_texture(const render_target* pEventualCanvas, cached_text* pCacheEntry) const { std::vector pPixels(pCacheEntry->width * pCacheEntry->height, 0); auto outIter = pPixels.begin(); if (shadow_opts.enabled) { // When drawing a shadow we need to draw the text twice, first the shadow // then the text itself. The top left corner of the text area is fixed so // when the shadow is above or to the left of the text we need to offset the // text itself down or right, otherwise we offset the shadow text. copy_pixel_data(pCacheEntry, shadow_opts.color, std::max(shadow_opts.offset_x, 0), std::max(shadow_opts.offset_y, 0), outIter); outIter = pPixels.begin(); copy_pixel_data(pCacheEntry, font_color, std::max(-shadow_opts.offset_x, 0), std::max(-shadow_opts.offset_y, 0), outIter); } else { copy_pixel_data(pCacheEntry, font_color, 0, 0, outIter); } pCacheEntry->texture = pEventualCanvas->create_texture( pCacheEntry->width, pCacheEntry->height, pPixels.data()); } void freetype_font::copy_pixel_data( const cached_text* cacheEntry, const argb_colour color, const int offsetX, const int offsetY, std::vector::iterator outIter) { const uint32_t colorBase = color & 0xFFFFFF; const uint32_t alphaBase = (color >> 24) & 0xFF; const uint8_t* inData = cacheEntry->data; for (int iY = 0; iY < cacheEntry->height; ++iY) { for (int iX = 0; iX < cacheEntry->width; ++iX) { if (const int inIndex = (iY - offsetY) * cacheEntry->width + (iX - offsetX); inIndex >= 0 && inIndex < cacheEntry->width * cacheEntry->height && inData[inIndex]) { *outIter = (inData[inIndex] * alphaBase / 255) << 24 | colorBase; } ++outIter; } } } void freetype_font::draw_texture(render_target* pCanvas, cached_text* pCacheEntry, int iX, int iY) const { if (pCacheEntry->texture == nullptr) return; SDL_Rect rcDest = {iX, iY, pCacheEntry->width, pCacheEntry->height}; pCanvas->draw(pCacheEntry->texture, nullptr, &rcDest, 0); } CorsixTH-0.70.0/CorsixTH/Src/th_gfx_sdl.h000066400000000000000000000566571522247547500200650ustar00rootroot00000000000000/* Copyright (c) 2009-2013 Peter "Corsix" Cawley and Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_GFX_SDL_H_ #define CORSIX_TH_TH_GFX_SDL_H_ #include "config.h" #include #include #include #include #include #include #include "th_gfx_common.h" class cursor; class line_sequence; class lua_persist_reader; class lua_persist_writer; struct clip_rect : public SDL_Rect { typedef Sint16 x_y_type; typedef Uint16 w_h_type; }; /** Helper structure with parameters to create a #render_target. */ struct render_target_creation_params { int width; ///< Expected width of the render target. int height; ///< Expected height of the render target. int bpp; ///< Expected colour depth of the render target. bool fullscreen; ///< Run full-screen. bool present_immediate; ///< Whether to present immediately to the user ///< (else wait for Vsync). bool direct_zoom; ///< Scale each texture when copying if true, otherwise ///< render to intermediate texture and scale. int min_width; ///< Minimum width of the render target. int min_height; ///< Minimum height of the render target. }; enum class scaled_items; //! 32bpp ARGB colour. See #palette::pack_argb typedef uint32_t argb_colour; //! 8bpp palette class. class palette { public: // External API //! Number of colours in the palette. static constexpr int color_count{256}; //! Create an empty palette. All entries are black and fully opaque. palette() = default; //! Load a 256 index color palette from the supplied data. /*! @param pData Palette data in RGB or RGBA format. @param iDataLength Size of the data. @param is8bit Whether the data is in 8bpp (otherwise 6bpp). @return Whether loading of the palette succeeded. */ palette(const uint8_t* pData, size_t iDataLength, bool is8bit); //! Set an entry of the palette. /*! The RGB colour (255, 0, 255) is used as the transparent colour. @param iEntry Entry number to change. @param iR Amount of red in the new entry. @param iG Amount of green in the new entry. @param iB Amount of blue in the new entry. @return Setting the entry succeeded. */ bool set_entry(int iEntry, uint8_t iR, uint8_t iG, uint8_t iB); public: // Internal (this rendering engine only) API //! Convert A, R, G, B values to a 32bpp colour. /*! @param iA Amount of opacity (0-255). @param iR Amount of red (0-255). @param iG Amount of green (0-255). @param iB Amount of blue (0-255). @return 32bpp value representing the provided colour values. */ static constexpr argb_colour pack_argb(uint8_t iA, uint8_t iR, uint8_t iG, uint8_t iB) { return (static_cast(iR) << 0) | (static_cast(iG) << 8) | (static_cast(iB) << 16) | (static_cast(iA) << 24); } //! Get the red component of a colour. /*! @param iColour Colour to examine. @return The red component intensity of the colour. */ static constexpr uint8_t get_red(argb_colour iColour) { return static_cast((iColour >> 0) & 0xFF); } //! Get the green component of a colour. /*! @param iColour Colour to examine. @return The green component intensity of the colour. */ static constexpr uint8_t get_green(argb_colour iColour) { return static_cast((iColour >> 8) & 0xFF); } //! Get the blue component of a colour. /*! @param iColour Colour to examine. @return The blue component intensity of the colour. */ static constexpr uint8_t get_blue(argb_colour iColour) { return static_cast((iColour >> 16) & 0xFF); } //! Get the opacity component of a colour. /*! @param iColour Colour to examine. @return The opacity of the colour. */ static constexpr uint8_t get_alpha(argb_colour iColour) { return static_cast((iColour >> 24) & 0xFF); } //! Get the internal palette data for fast (read-only) access. /*! @return Table with all 256 colours of the palette. */ const std::array& get_argb_data() const; //! Set an entry of the palette. /*! @param iEntry Entry to modify. @param iVal Palette value to set. */ inline void set_argb(int iEntry, uint32_t iVal) { colour_index_to_argb_map[iEntry] = iVal; } private: //! 32bpp palette colours associated with the 8bpp colour index. std::array colour_index_to_argb_map{}; }; /*! Utility class for decoding 32bpp images. */ class full_colour_renderer { public: //! Initialize the renderer for a specific render. /*! @param iWidth Pixel width of the resulting image @param iHeight Pixel height of the resulting image */ full_colour_renderer(int iWidth, int iHeight); virtual ~full_colour_renderer() = default; //! Decode a 32bpp image, and push it to the storage backend. /*! @param pImg Encoded 32bpp image. @param pPalette Palette of a legacy sprite. @param iSpriteFlags Flags how to render the sprite. @return Decoding was successful. */ void decode_image(const uint8_t* pImg, const ::palette* pPalette, uint32_t iSpriteFlags); private: //! Store a decoded pixel. Use x and y if necessary. /*! @param pixel Pixel to store. */ virtual void store_argb(uint32_t pixel) = 0; const int width; const int height; int x{}; int y{}; //! Push a pixel to the storage. /*! @param iValue Pixel value to store. */ inline void push_pixel(uint32_t iValue) { if (y < height) { store_argb(iValue); x++; if (x >= width) { x = 0; y++; } } else { throw std::logic_error("Attempt to push_pixel past the end of the image"); } } }; class full_colour_storing : public full_colour_renderer { public: full_colour_storing(uint32_t* pDest, int iWidth, int iHeight); private: void store_argb(uint32_t pixel) override; //! Pointer to the storage (not owned by this class). uint32_t* destination; }; class wx_storing : public full_colour_renderer { public: wx_storing(uint8_t* pRGBData, uint8_t* pAData, int iWidth, int iHeight); private: void store_argb(uint32_t pixel) override; //! Pointer to the RGB storage (not owned by this class). uint8_t* rgb_data; //! Pointer to the Alpha channel storage (not owned by this class). uint8_t* alpha_data; }; class render_target { public: // External API explicit render_target(const render_target_creation_params& params); render_target(const render_target& other) = delete; render_target& operator=(const render_target& other) = delete; ~render_target(); //! Encode an RGB triplet for fillRect() static constexpr uint32_t map_colour(uint8_t iR, uint8_t iG, uint8_t iB) { return palette::pack_argb(0xFF, iR, iG, iB); } //! Update the parameters for the render target bool update(const render_target_creation_params& params); //! Get the reason for the last operation failing const char* get_last_error(); //! Begin rendering a new frame bool start_frame(); //! Finish rendering the current frame and present it bool end_frame(); //! Paint the entire render target black bool fill_black(); //! Paint the entire render target with a solid colour bool fill_colour(uint32_t colour); //! Sets a blue filter on the current surface. // Used to add the blue effect when the game is paused. void set_blue_filter_active(bool bActivate); //! Fill a rectangle of the render target with a solid colour bool fill_rect(uint32_t iColour, int iX, int iY, int iW, int iH); //! Sets a minimum size for the render target int set_minimum_size(int width, int height); class scoped_clip { public: scoped_clip(render_target*, const clip_rect* pRect); ~scoped_clip(); private: render_target* target{nullptr}; }; //! Push a new clip rectangle. void push_clip_rect(const clip_rect* pRect); //! Restore the previous clip rectangle. void pop_clip_rect(); //! Get the width of the render target (in pixels) int get_width() const; //! Get the height of the render target (in pixels) int get_height() const; //! Enable optimisations for non-overlapping draws void start_nonoverlapping_draws(); //! Disable optimisations for non-overlapping draws void finish_nonoverlapping_draws(); //! Set the cursor to be used void set_cursor(cursor* pCursor); //! Update the cursor position (if the cursor is being simulated) void set_cursor_position(int iX, int iY); //! Take a screenshot and save it as a PNG file. bool take_screenshot(const char* file_path) const; //! Set the amount by which future draw operations are scaled. /*! @param fScale New scale to use. @param eWhatToScale Th kind of items to scale. @return Whether the scale could be set. */ bool set_scale_factor(double fScale, scaled_items eWhatToScale); //! Set the window caption void set_caption(const char* sCaption); //! Toggle mouse capture on the window. void set_window_grab(bool bActivate); //! Get any user-displayable information to describe the renderer path used const char* get_renderer_details() const; // If you add any extra methods here which are called from outside the // rendering engine, then be sure to at least add dummy implementations // to the other rendering engines. public: // Internal (this rendering engine only) API class scoped_buffer { public: virtual ~scoped_buffer() = default; }; class scoped_target_texture final : public scoped_buffer { public: scoped_target_texture(render_target* pTarget, int iX, int iY, int iWidth, int iHeight, bool bScale); scoped_target_texture(scoped_target_texture&) = delete; scoped_target_texture& operator=(scoped_target_texture&) = delete; ~scoped_target_texture() override; void offset(SDL_FRect& targetRect) const; double scale_factor() const; bool is_target() const; private: render_target* target; scoped_target_texture* previous_target; SDL_Rect rect; bool scale; SDL_Texture* texture{nullptr}; }; SDL_Renderer* get_renderer() const { return renderer; } //! Should bitmaps be scaled? /*! @param [out] pFactor If the function returns \c true, the factor to use for scaling (can be \c nullptr if not interested in the value). @return Whether bitmaps should be scaled. */ bool should_scale_bitmaps(double* pFactor); SDL_Texture* create_palettized_texture(int iWidth, int iHeight, const uint8_t* pPixels, const ::palette* pPalette, uint32_t iSpriteFlags) const; SDL_Texture* create_texture(int iWidth, int iHeight, const uint32_t* pPixels) const; void draw(SDL_Texture* pTexture, const SDL_Rect* prcSrcRect, const SDL_Rect* prcDstRect, int iFlags); void draw_line(line_sequence* pLine, int iX, int iY); //! Begin drawing to an intermediate unscaled texture targeting the given //! location and size. The intermediate drawing will be committed once //! the returned scoped_buffer is destroyed. /*! @param iX X-coordinate of left side of drawing rectangle. @param iY Y-coordinate of top side of drawing rectangle. @param iWidth Width of drawing rectangle. @param iHeight Height of drawing rectangle. */ std::unique_ptr begin_intermediate_drawing(int iX, int iY, int iWidth, int iHeight); private: friend class scoped_target_texture; double draw_scale() const; void destroy_intermediate_textures(); SDL_Window* window{nullptr}; SDL_Renderer* renderer{nullptr}; scoped_target_texture* current_target{nullptr}; std::unique_ptr zoom_buffer; SDL_PixelFormat* pixel_format{nullptr}; bool blue_filter_active{false}; cursor* game_cursor{nullptr}; double bitmap_scale_factor{1.0}; ///< Bitmap scale factor. double global_scale_factor{1.0}; ///< Global scale factor. int width{-1}; int height{-1}; int cursor_x{}; int cursor_y{}; std::stack clip_rects; ///< Stack of requested clip rects. // Intermediate textures used in the production of the current frame. // These are destroyed after the frame is presented. std::vector intermediate_textures; bool scale_bitmaps{false}; ///< Whether bitmaps should be scaled. bool supports_target_textures{}; // In SDL2 < 2.0.4 there is an issue with the y coordinates used for // ClipRects in opengl and opengles. // see: https://bugzilla.libsdl.org/show_bug.cgi?id=2700 bool apply_opengl_clip_fix{}; bool direct_zoom{}; }; //! Stored image. class raw_bitmap { public: raw_bitmap() = default; ~raw_bitmap(); //! Set the palette of the image. /*! @param pPalette Palette to set for this image. */ void set_palette(const ::palette* pPalette); //! Load the image from the supplied pixel data. /*! Loader uses the palette supplied before. @param pPixelData Image data loaded from a TH file. @param iPixelDataLength Size of the loaded image data. @param iWidth Width of the image. @param pEventualCanvas Canvas to render the image to (eventually). @param spriteFlags @return Loading was a success. */ void load_from_th_file(const uint8_t* pPixelData, size_t iPixelDataLength, int iWidth, render_target* pEventualCanvas, uint32_t spriteFlags); //! Draw the image at a given position at the given canvas. /*! @param pCanvas Canvas to draw at. @param iX Destination x position. @param iY Destination y position. */ void draw(render_target* pCanvas, int iX, int iY); //! Draw part of the image at a given position at the given canvas. /*! @param pCanvas Canvas to draw at. @param iX Destination x position. @param iY Destination y position. @param iSrcX X position of the part to display. @param iSrcY Y position of the part to display. @param iWidth Width of the part to display. @param iHeight Height of the part to display. */ void draw(render_target* pCanvas, int iX, int iY, int iSrcX, int iSrcY, int iWidth, int iHeight); private: //! Image stored in SDL format for quick rendering. SDL_Texture* texture{nullptr}; //! Palette of the image. const ::palette* bitmap_palette{nullptr}; //! Target canvas. render_target* target{nullptr}; //! Width of the stored image. int width{}; //! Height of the stored image. int height{}; }; //! Sheet of sprites. class sprite_sheet { public: // External API sprite_sheet() = default; ~sprite_sheet(); //! Set the palette to use for the sprites in the sheet. /*! @param pPalette Palette to use for the sprites at the sheet. */ void set_palette(const ::palette* pPalette); //! Load the sprites from the supplied data (using the palette supplied //! earlier). /*! @param pTableData Start of table data with TH sprite information (see th_sprite_properties). @param iTableDataLength Length of the table data. @param pChunkData Start of image data (chunks). @param iChunkDataLength Length of the chunk data. @param bComplexChunks Whether the supplied chunks are 'complex'. @param pEventualCanvas Canvas to draw at. @return Loading succeeded. */ bool load_from_th_file(const uint8_t* pTableData, size_t iTableDataLength, const uint8_t* pChunkData, size_t iChunkDataLength, bool bComplexChunks, render_target* pEventualCanvas); //! Set the data of a sprite. /*! @param iSprite Number of the sprite to set. @param pData Data of the sprite. @param bTakeData Whether the data block may be taken (must be new[] then). @param iDataLength Length of the data. @param iWidth Width of the sprite. @param iHeight Height of the sprite. @return Setting the sprite succeeded. */ bool set_sprite_data(size_t iSprite, const uint8_t* pData, bool bTakeData, size_t iDataLength, int iWidth, int iHeight); //! Supply a new mapped palette to a sprite. /*! @param iSprite Sprite getting the mapped palette. @param pMap The palette map to apply. @param iAlt32 What to do for a 32bpp sprite (#thdf_alt32_mask bits). */ void set_sprite_alt_palette_map(size_t iSprite, const uint8_t* pMap, uint32_t iAlt32); //! Get the number of sprites at the sheet. /*! @return The number of sprites available at the sheet. */ size_t get_sprite_count() const; //! Set the number of sprites in the sheet. /*! @param iCount The desired number of sprites. @param pCanvas Canvas to draw at. @return Whether the number of sprites could be allocated. */ bool set_sprite_count(size_t iCount, render_target* pCanvas); //! Get size of a sprite. /*! @param iSprite Sprite to get info from. @param pWidth [out] If not nullptr, the sprite width is stored in the destination. @param pHeight [out] If not nullptr, the sprite height is stored in the destination. @return Size could be provided for the sprite. */ bool get_sprite_size(size_t iSprite, int* pWidth, int* pHeight) const; //! Get size of a sprite, assuming all input is correctly supplied. /*! @param iSprite Sprite to get info from. @param pWidth [out] The sprite width is stored in the destination. @param pHeight [out] The sprite height is stored in the destination. */ void get_sprite_size_unchecked(size_t iSprite, int* pWidth, int* pHeight) const; //! Get the best colour to represent the sprite. /*! @param iSprite Sprite number to analyze. @param pColour [out] Resulting colour. @return Best colour could be established. */ bool get_sprite_average_colour(size_t iSprite, argb_colour* pColour) const; //! Return whether the given sprite show any pixel when displayed. /*! @param iSprite Sprite number to analyze. @return Whether any pixel of the sprite is visible. */ bool is_sprite_visible(size_t iSprite) const; //! Draw a sprite onto the canvas. /*! @param pCanvas Canvas to draw on. @param iSprite Sprite to draw. @param iX X position to draw the sprite. @param iY Y position to draw the sprite. @param iFlags Flags to apply for drawing. @param effect_ticks The number of ticks into the effect animation. @param effect The animation effect to apply to the sprite. @param scale_factor How much to scale the sprite when drawing. */ void draw_sprite(render_target* pCanvas, size_t iSprite, int iX, int iY, uint32_t iFlags, size_t effect_ticks = 0u, animation_effect effect = animation_effect::none, int scale_factor = 1); //! Test whether a sprite was hit. /*! @param iSprite Sprite being tested. @param iX X position of the point to test relative to the origin of the sprite. @param iY Y position of the point to test relative to the origin of the sprite. @param iFlags Draw flags to apply to the sprite before testing. @return Whether the sprite covers the give point. */ bool hit_test_sprite(size_t iSprite, int iX, int iY, uint32_t iFlags) const; public: // Internal (this rendering engine only) API //! Draw a sprite into wxImage data arrays (for the Map Editor) /*! @param iSprite Sprite number to draw. @param pRGBData Output RGB data array. @param pAData Output Alpha channel array. */ void wx_draw_sprite(size_t iSprite, uint8_t* pRGBData, uint8_t* pAData); private: friend class cursor; //! Sprites of the sheet. struct sprite { //! SDL structure containing the sprite with original palette. SDL_Texture* texture; //! SDL structure containing the sprite with alternative palette. SDL_Texture* alt_texture; //! Data of the sprite. const uint8_t* data; //! Alternative palette (if available). const uint8_t* alt_palette_map; //! Flags how to render the sprite, contains #THDF_Alt32_Mask bits. uint32_t sprite_flags; //! Width of the sprite. int width; //! Height of the sprite. int height; }* sprites{nullptr}; //! Original palette. const ::palette* palette{nullptr}; //! Target to render to. render_target* target{nullptr}; //! Number of sprites in the sprite sheet. size_t sprite_count{}; //! Free memory of a single sprite. /*! @param iNumber Number of the sprite to clear. */ void _freeSingleSprite(size_t iNumber); //! Free the memory used by the sprites. Also releases the SDL bitmaps. void _freeSprites(); //! Construct an alternative version (with its alternative palette map) of //! the sprite. /*! @param pSprite Sprite to change. @return SDL texture containing the sprite. */ SDL_Texture* _makeAltBitmap(sprite* pSprite); }; class cursor { public: cursor() = default; ~cursor(); bool create_from_sprite(sprite_sheet* pSheet, size_t iSprite, int iHotspotX = 0, int iHotspotY = 0); void use(render_target* pTarget); static bool set_position(render_target* pTarget, int iX, int iY); void draw(render_target* pCanvas, int iX, int iY); private: SDL_Surface* bitmap{nullptr}; SDL_Cursor* hidden_cursor{nullptr}; int hotspot_x{}; int hotspot_y{}; }; class line_sequence { public: line_sequence(); void move_to(double fX, double fY); void line_to(double fX, double fY); void set_width(double lineWidth); void draw(render_target* pCanvas, int iX, int iY); void set_colour(uint8_t iR, uint8_t iG, uint8_t iB, uint8_t iA = 255); void persist(lua_persist_writer* pWriter) const; void depersist(lua_persist_reader* pReader); private: friend class render_target; enum class line_command : uint32_t { move = 0, line = 1 }; class line_element { public: line_command type; double x, y; line_element(line_command type, double x, double y) : type(type), x(x), y(y) {} }; std::vector line_elements; double width{1}; uint8_t red{0}, green{0}, blue{0}, alpha{255}; }; #endif // CORSIX_TH_TH_GFX_SDL_H_ CorsixTH-0.70.0/CorsixTH/Src/th_lua.cpp000066400000000000000000000332551522247547500175400ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #ifdef WITH_UPDATE_CHECK #include #endif #include #include #include #include #include "bootstrap.h" #include "lua.hpp" #include "th.h" #include "th_lua.h" #include "th_lua_internal.h" const char* update_check_url = "https://corsixth.com/CorsixTH/check-for-updates"; void lua_register_anims(const lua_register_state* pState); void lua_register_gfx(const lua_register_state* pState); void lua_register_map(const lua_register_state* pState); void lua_register_sound(const lua_register_state* pState); void lua_register_movie(const lua_register_state* pState); void lua_register_strings(const lua_register_state* pState); void lua_register_ui(const lua_register_state* pState); void lua_register_lfs_ext(const lua_register_state* pState); void lua_register_iso_fs(const lua_register_state* pState); void lua_register_midi(const lua_register_state* pState); //! Set a field on the environment table of an object void luaT_setenvfield(lua_State* L, int index, const char* k) { lua_getfenv(L, index); lua_pushstring(L, k); lua_pushvalue(L, -3); lua_settable(L, -3); lua_pop(L, 2); } //! Get a field from the environment table of an object void luaT_getenvfield(lua_State* L, int index, const char* k) { lua_getfenv(L, index); lua_getfield(L, -1, k); lua_replace(L, -2); } #if LUA_VERSION_NUM >= 502 void luaT_getfenv52(lua_State* L, int iIndex) { int iType = lua_type(L, iIndex); switch (iType) { case LUA_TUSERDATA: lua_getuservalue(L, iIndex); break; case LUA_TFUNCTION: if (lua_iscfunction(L, iIndex)) { // Our convention: upvalue at #1 is environment if (lua_getupvalue(L, iIndex, 1) == nullptr) lua_pushglobaltable(L); } else { // Language convention: upvalue called _ENV is environment const char* sUpName = nullptr; for (int i = 1; (sUpName = lua_getupvalue(L, iIndex, i)); ++i) { if (std::strcmp(sUpName, "_ENV") == 0) return; else lua_pop(L, 1); } lua_pushglobaltable(L); } break; default: luaL_error(L, "Unable to get environment of a %s in 5.2", lua_typename(L, iType)); break; } } int luaT_setfenv52(lua_State* L, int iIndex) { int iType = lua_type(L, iIndex); switch (iType) { case LUA_TUSERDATA: lua_setuservalue(L, iIndex); return 1; case LUA_TFUNCTION: if (lua_iscfunction(L, iIndex)) { // Our convention: upvalue at #1 is environment if (lua_setupvalue(L, iIndex, 1) == nullptr) { lua_pop(L, 1); return 0; } return 1; } else { // Language convention: upvalue called _ENV is environment, // which might be shared with other functions. const char* sUpName = nullptr; for (int i = 1; (sUpName = lua_getupvalue(L, iIndex, i)); ++i) { lua_pop(L, 1); // lua_getupvalue puts the value on the // stack, but we just want to replace it if (std::strcmp(sUpName, "_ENV") == 0) { luaL_loadstring(L, "local upv = ... return function() return upv " "end"); lua_insert(L, -2); lua_call(L, 1, 1); lua_upvaluejoin(L, iIndex, i, -1, 1); lua_pop(L, 1); return 1; } } lua_pop(L, 1); return 0; } default: return 0; } } #endif //! Push a C closure as a callable table void luaT_pushcclosuretable(lua_State* L, lua_CFunction fn, int n) { luaT_pushcclosure(L, fn, n); // .. fn (lua_touserdata(L, idx)); iLength = lua_objlen(L, idx); } else { pData = reinterpret_cast(luaL_checklstring(L, idx, &iLength)); } if (pDataLen != nullptr) *pDataLen = iLength; return pData; } namespace { #ifdef WITH_UPDATE_CHECK // https://everything.curl.dev/transfers/callbacks/write.html size_t version_info_write_callback(char* ptr, size_t size, size_t nmemb, void* userdata) { size_t realsize = size * nmemb; std::string* resp = static_cast(userdata); resp->append(ptr, realsize); return realsize; } #endif int l_fetch_latest_version_info(lua_State* L) { #ifdef WITH_UPDATE_CHECK CURL* curl = curl_easy_init(); if (curl == nullptr) { lua_pushnil(L); lua_pushliteral(L, "Could not initialize curl"); return 2; } curl_easy_setopt(curl, CURLOPT_URL, update_check_url); curl_easy_setopt(curl, CURLOPT_HTTPGET, 1); curl_easy_setopt(curl, CURLOPT_TIMEOUT, 5L); curl_easy_setopt(curl, CURLOPT_MAXFILESIZE, 4096L); std::string response; curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, version_info_write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)&response); CURLcode res = curl_easy_perform(curl); curl_easy_cleanup(curl); if (res != CURLE_OK) { lua_pushnil(L); lua_pushstring(L, curl_easy_strerror(res)); return 2; } lua_pushstring(L, response.c_str()); lua_pushnil(L); return 2; #else lua_pushnil(L); lua_pushliteral(L, "Update check was not enabled at compile time."); return 2; #endif } int l_load_strings(lua_State* L) { size_t iDataLength; const uint8_t* pData = luaT_checkfile(L, 1, &iDataLength); try { th_string_list oStrings(pData, iDataLength); lua_settop(L, 0); lua_createtable(L, static_cast(oStrings.get_section_count()), 0); for (size_t iSec = 0; iSec < oStrings.get_section_count(); ++iSec) { size_t iCount = oStrings.get_section_size(iSec); lua_createtable(L, static_cast(iCount), 0); for (size_t iStr = 0; iStr < iCount; ++iStr) { lua_pushstring(L, oStrings.get_string(iSec, iStr)); lua_rawseti(L, 2, static_cast(iStr + 1)); } lua_rawseti(L, 1, static_cast(iSec + 1)); } } catch (std::invalid_argument&) { lua_pushboolean(L, 0); } return 1; } int get_api_version() { #include "../Lua/api_version.lua" // IWYU pragma: keep } int l_get_compile_options(lua_State* L) { lua_settop(L, 0); lua_newtable(L); // Report architecture lua_pushliteral(L, CORSIX_TH_ARCH); lua_setfield(L, -2, "arch"); #ifdef WITH_UPDATE_CHECK lua_pushboolean(L, 1); #else lua_pushboolean(L, 0); #endif lua_setfield(L, -2, "update_check"); #ifdef CORSIX_TH_USE_FFMPEG lua_pushboolean(L, 1); #else lua_pushboolean(L, 0); #endif lua_setfield(L, -2, "movies"); #ifdef WITH_MIDI_DEVICE lua_pushboolean(L, 1); #else lua_pushboolean(L, 0); #endif lua_setfield(L, -2, "midi_device"); lua_getfield(L, LUA_REGISTRYINDEX, "_LOADED"); lua_getfield(L, -1, "jit"); if (lua_type(L, -1) == LUA_TNIL) { lua_replace(L, -2); } else { lua_getfield(L, -1, "version"); lua_replace(L, -3); lua_pop(L, 1); } lua_setfield(L, -2, "jit"); // Report operating system lua_pushliteral(L, CORSIX_TH_OS); lua_setfield(L, -2, "os"); lua_pushinteger(L, get_api_version()); lua_setfield(L, -2, "api_version"); #ifdef CORSIX_TH_FONT // Set default value of font file lua_pushliteral(L, CORSIX_TH_FONT); lua_setfield(L, -2, "font"); #endif return 1; } int l_crc32(lua_State* L) { size_t iDataLen; const uint8_t* pData = luaT_checkfile(L, 1, &iDataLen); lua_pushinteger(L, static_cast(crc32( 0L, pData, static_cast(iDataLen)))); return 1; } } // namespace void luaT_setclosure(const lua_register_state* pState, lua_CFunction fn, int iUps) { luaT_pushcclosure(pState->L, fn, iUps); } int luaopen_th(lua_State* L) { lua_settop(L, 0); lua_checkstack(L, 16 + static_cast(lua_metatable::count)); lua_register_state oState; const lua_register_state* pState = &oState; oState.L = L; for (int i = 0; i < static_cast(lua_metatable::count); ++i) { lua_createtable(L, 0, 5); oState.metatables[i] = lua_gettop(L); } lua_createtable(L, 0, lua_gettop(L)); oState.main_table = lua_gettop(L); oState.top = lua_gettop(L); // Misc. functions lua_settop(L, oState.top); add_lua_function(pState, l_load_strings, "LoadStrings"); add_lua_function(pState, l_get_compile_options, "GetCompileOptions"); add_lua_function(pState, bootstrap_lua_resources, "GetBuiltinFont"); add_lua_function(pState, l_fetch_latest_version_info, "FetchLatestVersionInfo"); add_lua_function(pState, l_crc32, "CRC32File"); // Classes lua_register_map(pState); lua_register_gfx(pState); lua_register_anims(pState); lua_register_sound(pState); lua_register_movie(pState); lua_register_strings(pState); lua_register_ui(pState); lua_register_lfs_ext(pState); lua_register_iso_fs(pState); lua_register_midi(pState); lua_settop(L, oState.main_table); return 1; } void luaT_execute_loadstring(lua_State* L, const char* sLuaString) { static const int iRegistryCacheIndex = 7; lua_rawgeti(L, LUA_REGISTRYINDEX, iRegistryCacheIndex); if (lua_isnil(L, -1)) { // Cache not yet created - create it. lua_pop(L, 1); lua_getglobal(L, "setmetatable"); if (lua_isnil(L, -1)) { // Base library not yet loaded - fallback to simple // uncached loadstring lua_pop(L, 1); if (luaL_loadstring(L, sLuaString)) lua_error(L); } lua_pop(L, 1); #if LUA_VERSION_NUM >= 502 luaL_loadstring(L, "local assert, load = assert, load\n" "return setmetatable({}, {__mode = [[v]], \n" "__index = function(t, k)\n" "local v = assert(load(k))\n" "t[k] = v\n" "return v\n" "end})"); #else luaL_loadstring(L, "local assert, loadstring = assert, loadstring\n" "return setmetatable({}, {__mode = [[v]], \n" "__index = function(t, k)\n" "local v = assert(loadstring(k))\n" "t[k] = v\n" "return v\n" "end})"); #endif lua_call(L, 0, 1); lua_pushvalue(L, -1); lua_rawseti(L, LUA_REGISTRYINDEX, iRegistryCacheIndex); } lua_getfield(L, -1, sLuaString); lua_replace(L, -2); } void luaT_execute(lua_State* L, const char* sLuaString) { luaT_execute_loadstring(L, sLuaString); lua_call(L, 0, LUA_MULTRET); } void preload_lua_package(lua_State* L, const char* name, lua_CFunction fn) { luaT_execute( L, std::string("package.preload.").append(name).append(" = ...").c_str(), fn); } void luaT_push(lua_State* L, lua_CFunction f) { luaT_pushcfunction(L, f); } void luaT_push(lua_State* L, int i) { lua_pushinteger(L, (lua_Integer)i); } void luaT_push(lua_State* L, const char* s) { lua_pushstring(L, s); } void luaT_pushtablebool(lua_State* L, const char* k, bool v) { lua_pushstring(L, k); lua_pushboolean(L, v); lua_settable(L, -3); } void luaT_printvalue(lua_State* L, int idx) { int t = lua_type(L, idx); switch (t) { case LUA_TSTRING: /* strings */ std::printf("string: '%s'\n", lua_tostring(L, idx)); break; case LUA_TBOOLEAN: /* booleans */ std::printf("boolean %s\n", lua_toboolean(L, idx) ? "true" : "false"); break; case LUA_TNUMBER: /* numbers */ std::printf("number: %g\n", lua_tonumber(L, idx)); break; default: /* other values */ std::printf("%s: %p\n", lua_typename(L, t), lua_topointer(L, idx)); break; } } void luaT_printstack(lua_State* L) { int i; int top = lua_gettop(L); std::printf("total items in stack %d\n", top); for (i = 1; i <= top; i++) { /* repeat for each level */ std::printf("(%d) ", i); luaT_printvalue(L, i); } std::printf("\n"); /* end the listing */ } void luaT_printrawtable(lua_State* L, int idx) { /* table is in the stack at index 't' */ lua_pushnil(L); /* first key */ while (lua_next(L, idx) != 0) { /* uses 'key' (at index -2) and 'value' (at index -1) */ std::printf("key: "); luaT_printvalue(L, -2); std::printf("value: "); luaT_printvalue(L, -1); /* removes 'value'; keeps 'key' for next iteration */ lua_pop(L, 1); } } CorsixTH-0.70.0/CorsixTH/Src/th_lua.h000066400000000000000000000346541522247547500172110ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_LUA_H_ #define CORSIX_TH_TH_LUA_H_ #include "config.h" #include #include #include #include #include #include #include #include "lua.hpp" class lua_state_deleter { public: void operator()(lua_State* L) const { lua_close(L); } }; //! \brief Unique pointer for lua_State using lua_state_unique_ptr = std::unique_ptr; int luaopen_th(lua_State* L); // Print debugging helper functions void luaT_printvalue(lua_State* L, int idx); void luaT_printstack(lua_State* L); void luaT_printrawtable(lua_State* L, int idx); //! Lua 5.3 lua_rotate backported to 5.1+ /*! /sa https://www.lua.org/manual/5.4/manual.html#lua_rotate */ inline void luaT_rotate(lua_State* L, int idx, int n) { #if LUA_VERSION_NUM >= 503 lua_rotate(L, idx, n); #else if (n < 0) { if (idx < 0) { idx = lua_gettop(L) + idx + 1; } n = lua_gettop(L) - idx + 1 + n; } for (int i = 0; i < n; i++) { lua_insert(L, idx); } #endif } // Compatibility layer for removal of environments in 5.2 #if LUA_VERSION_NUM >= 502 const int luaT_environindex = lua_upvalueindex(1); #else const int luaT_environindex = LUA_ENVIRONINDEX; #endif inline int luaT_upvalueindex(int i) { #if LUA_VERSION_NUM >= 502 return lua_upvalueindex(i + 1); #else return lua_upvalueindex(i); #endif } //! Compatibility function for Lua 5.1 luaL_register /*! luaL_register was removed in Lua 5.2. \param L The lua state \param n The name of the library to register \param l An array of functions to register in the library \sa https://www.lua.org/manual/5.1/manual.html#luaL_register */ template inline void luaT_register(lua_State* L, const char* n, Collection& l) { #if LUA_VERSION_NUM >= 502 lua_createtable(L, 0, static_cast(l.size())); lua_pushvalue(L, luaT_environindex); luaL_setfuncs(L, l.data(), 1); lua_pushvalue(L, -1); lua_setglobal(L, n); #else luaL_register(L, n, l.data()); #endif } //! Register functions into the table on top of the stack /*! \param L The lua state \param R An array of functions to register \sa https://www.lua.org/manual/5.1/manual.html#luaL_register */ inline void luaT_setfuncs(lua_State* L, const luaL_Reg* R) { #if LUA_VERSION_NUM >= 502 lua_pushvalue(L, luaT_environindex); luaL_setfuncs(L, R, 1); #else luaL_register(L, nullptr, R); #endif } inline void luaT_pushcclosure(lua_State* L, lua_CFunction f, int nups) { #if LUA_VERSION_NUM >= 502 ++nups; lua_pushvalue(L, luaT_environindex); lua_insert(L, -nups); lua_pushcclosure(L, f, nups); #else lua_pushcclosure(L, f, nups); #endif } inline void luaT_pushcfunction(lua_State* L, lua_CFunction f) { luaT_pushcclosure(L, f, 0); } inline int luaT_cpcall(lua_State* L, lua_CFunction f, void* u) { #if LUA_VERSION_NUM >= 502 lua_checkstack(L, 2); lua_pushcfunction(L, f); lua_pushlightuserdata(L, u); return lua_pcall(L, 1, 0, 0); #else return lua_cpcall(L, f, u); #endif } // Compatibility for missing mode argument on lua_load in 5.1 inline int luaT_load(lua_State* L, lua_Reader r, void* d, const char* s, const char* m) { #if LUA_VERSION_NUM >= 502 return lua_load(L, r, d, s, m); #else return lua_load(L, r, d, s); #endif } // Compatibility for older versions of lua_resume inline int luaT_resume(lua_State* L, lua_State* f, int n, int* nresults) { #if LUA_VERSION_NUM >= 504 return lua_resume(L, f, n, nresults); #elif LUA_VERSION_NUM >= 502 int res = lua_resume(L, f, n); *nresults = lua_gettop(L); return res; #else int res = lua_resume(L, n); *nresults = lua_gettop(L); return res; #endif } //! Version of operator new which allocates into a Lua userdata /*! If a specific constructor of T is required, then call like: T* variable = luaT_new(L, constructor arguments); If the default constructor is wanted, it can be called like: T* variable = luaT_new(L); See also luaT_stdnew() which allocates, and also sets up the environment table and metatable for the userdata. */ template T* luaT_new(lua_State* L, Ts... args) { return new (lua_newuserdata(L, sizeof(T))) T(args...); } //! Check that a Lua argument is a binary data blob /*! If the given argument is a string or (full) userdata, then returns a pointer to the start of it, and the length of it. Otherwise, throws a Lua error. */ const uint8_t* luaT_checkfile(lua_State* L, int idx, size_t* pDataLen); //! Check that a Lua argument is a string or a proxied string const char* luaT_checkstring(lua_State* L, int idx, size_t* pLength); //! Push a C closure as a callable table void luaT_pushcclosuretable(lua_State* L, lua_CFunction fn, int n); //! Set a field on the environment table of a value /*! Performs: env(stack[index])[k] = top; pop() */ void luaT_setenvfield(lua_State* L, int index, const char* k); //! Get a field from the environment table of a value /*! Performs: push(env(stack[index])[k]) */ void luaT_getenvfield(lua_State* L, int index, const char* k); template inline T* luaT_stdnew(lua_State* L, int mt_idx = luaT_environindex, bool env = false, Args&&... args) { T* p = luaT_new(L, std::forward(args)...); lua_pushvalue(L, mt_idx); lua_setmetatable(L, -2); if (env) { lua_newtable(L); lua_setfenv(L, -2); } return p; } template struct luaT_classinfo {}; class render_target; template <> struct luaT_classinfo { static inline const char* name() { return "Surface"; } }; class level_map; template <> struct luaT_classinfo { static inline const char* name() { return "Map"; } }; class sprite_sheet; template <> struct luaT_classinfo { static inline const char* name() { return "SpriteSheet"; } }; class animation; template <> struct luaT_classinfo { static inline const char* name() { return "Animation"; } }; class animation_manager; template <> struct luaT_classinfo { static inline const char* name() { return "Animator"; } }; class palette; template <> struct luaT_classinfo { static inline const char* name() { return "Palette"; } }; class raw_bitmap; template <> struct luaT_classinfo { static inline const char* name() { return "RawBitmap"; } }; class font; template <> struct luaT_classinfo { static inline const char* name() { return "Font"; } }; class bitmap_font; template <> struct luaT_classinfo { static inline const char* name() { return "BitmapFont"; } }; class freetype_font; template <> struct luaT_classinfo { static inline const char* name() { return "FreeTypeFont"; } }; struct layers; template <> struct luaT_classinfo { static inline const char* name() { return "Layers"; } }; class pathfinder; template <> struct luaT_classinfo { static inline const char* name() { return "Pathfinder"; } }; class cursor; template <> struct luaT_classinfo { static inline const char* name() { return "Cursor"; } }; class line_sequence; template <> struct luaT_classinfo { static inline const char* name() { return "Line"; } }; class music; template <> struct luaT_classinfo { static inline const char* name() { return "Music"; } }; class sound_archive; template <> struct luaT_classinfo { static inline const char* name() { return "SoundArchive"; } }; class sound_player; template <> struct luaT_classinfo { static inline const char* name() { return "SoundEffects"; } }; class movie_player; template <> struct luaT_classinfo { static inline const char* name() { return "Movie"; } }; class abstract_window; template <> struct luaT_classinfo { static inline const char* name() { return "WindowBase"; } }; class sprite_render_list; template <> struct luaT_classinfo { static inline const char* name() { return "SpriteRenderList"; } }; class string_proxy; template <> struct luaT_classinfo { static inline const char* name() { return "StringProxy"; } }; class lfs_ext; template <> struct luaT_classinfo { static inline const char* name() { return "LfsExt"; } }; class iso_filesystem; template <> struct luaT_classinfo { static inline const char* name() { return "ISO Filesystem"; } }; class th_lua_midi_player; template <> struct luaT_classinfo { static inline const char* name() { return "MidiPlayer"; } }; template T* luaT_testuserdata(lua_State* L, int idx, int mt_idx, bool required = true) { // Turn mt_idx into an absolute index, as the stack size changes. if (mt_idx > LUA_REGISTRYINDEX && mt_idx < 0) { mt_idx = lua_gettop(L) + mt_idx + 1; } void* ud = lua_touserdata(L, idx); if (ud != nullptr && lua_getmetatable(L, idx) != 0) { while (true) { if (lua_equal(L, mt_idx, -1) != 0) { lua_pop(L, 1); return static_cast(ud); } // Go up one inheritance level, if there is one. if (lua_type(L, -1) != LUA_TTABLE) break; lua_rawgeti(L, -1, 1); lua_replace(L, -2); } lua_pop(L, 1); } if (required) { const char* msg = lua_pushfstring(L, "%s expected, got %s", luaT_classinfo::name(), luaL_typename(L, idx)); luaL_argerror(L, idx, msg); assert(false); // unreachable } return nullptr; } template T* luaT_testuserdata(lua_State* L, int idx = 1, bool required = true) { int iMetaIndex = luaT_environindex; if (idx > 1) iMetaIndex = luaT_upvalueindex(idx - 1); return luaT_testuserdata(L, idx, iMetaIndex, required); } template int luaT_stdgc(lua_State* L) { T* p = luaT_testuserdata(L, 1, mt, false); if (p != nullptr) { p->~T(); } return 0; } void luaT_execute(lua_State* L, const char* sLuaString); void luaT_execute_loadstring(lua_State* L, const char* sLuaString); void luaT_push(lua_State* L, lua_CFunction f); void luaT_push(lua_State* L, int i); void luaT_push(lua_State* L, const char* s); template void luaT_execute(lua_State* L, const char* sLuaString, T arg) { luaT_execute_loadstring(L, sLuaString); luaT_push(L, arg); lua_call(L, 1, LUA_MULTRET); } template void luaT_execute(lua_State* L, const char* sLuaString, T1 arg1, T2 arg2) { luaT_execute_loadstring(L, sLuaString); luaT_push(L, arg1); luaT_push(L, arg2); lua_call(L, 2, LUA_MULTRET); } template void luaT_execute(lua_State* L, const char* sLuaString, T1 arg1, T2 arg2, T3 arg3) { luaT_execute_loadstring(L, sLuaString); luaT_push(L, arg1); luaT_push(L, arg2); luaT_push(L, arg3); lua_call(L, 3, LUA_MULTRET); } template void luaT_execute(lua_State* L, const char* sLuaString, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { luaT_execute_loadstring(L, sLuaString); luaT_push(L, arg1); luaT_push(L, arg2); luaT_push(L, arg3); luaT_push(L, arg4); lua_call(L, 4, LUA_MULTRET); } void luaT_pushtablebool(lua_State* L, const char* k, bool v); void preload_lua_package(lua_State* L, const char* name, lua_CFunction fn); namespace { int luaT_get_userdata_classname(lua_State* L, int idx, const char** class_name, void** userdata) { void* p = lua_touserdata(L, idx); *userdata = p; if (p == nullptr) { return 0; } int added_stack = 0; if (lua_getmetatable(L, idx) == 0) { std::printf("Warn: No metatable for userdata\n"); return 0; } lua_getfield(L, -1, "__index"); added_stack += 2; // metadata and field if (lua_type(L, -1) != LUA_TTABLE) { lua_pop(L, added_stack); std::printf("Warn: No __index field method table for userdata\n"); return 0; } if (lua_getmetatable(L, -1) == 0) { lua_pop(L, added_stack); std::printf("Warn: No metatable for method table of userdata\n"); return 0; } lua_getfield(L, -1, "__class_name"); added_stack += 2; // method metatable and class name field if (lua_type(L, -1) != LUA_TSTRING) { lua_pop(L, added_stack); std::printf("Warn: No __class_name field for userdata\n"); return 0; } *class_name = lua_tostring(L, -1); return added_stack; } } // namespace // Find the appropriate derived class of base for a given // userdata object. // // th_lua_internal.h defines our c++ binding class metatables: // metatable: { __index = method_table, ... } // method_table: { ... } // method_table metatable: { __class_name = class_name } template B* luaT_touserdata_base(lua_State* L, int idx, const std::initializer_list& class_names) { static_assert(std::is_base_of::value, "B must be a base class for T1"); static_assert(std::is_base_of::value, "B must be a base class for T2"); const char* class_name = nullptr; void* p; int stack = luaT_get_userdata_classname(L, idx, &class_name, &p); if (class_name == nullptr) { return nullptr; } auto it = class_names.begin(); if (std::strcmp(class_name, *it) == 0) { lua_pop(L, stack); return static_cast(p); } it++; if (std::strcmp(class_name, *it) == 0) { lua_pop(L, stack); return static_cast(p); } std::printf("Warn: Unknown class name for usertype %s\n", class_name); lua_pop(L, stack); return nullptr; } #endif // CORSIX_TH_TH_LUA_H_ CorsixTH-0.70.0/CorsixTH/Src/th_lua_anims.cpp000066400000000000000000000630571522247547500207320ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #include "lua.hpp" #include "persist_lua.h" #include "th.h" #include "th_gfx.h" #include "th_lua.h" #include "th_lua_internal.h" #include "th_map.h" class render_target; class sprite_sheet; enum class animation_effect; namespace { int l_anims_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } int l_anims_set_spritesheet(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); sprite_sheet* pSheet = luaT_testuserdata(L, 2); lua_settop(L, 2); pAnims->set_sprite_sheet(pSheet); luaT_setenvfield(L, 1, "sprites"); return 1; } //! Set the video target for the sprites. /*! setCanvas() */ int l_anims_set_canvas(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); render_target* pCanvas = luaT_testuserdata(L, 2); lua_settop(L, 2); pAnims->set_canvas(pCanvas); luaT_setenvfield(L, 1, "target"); return 1; } int l_anims_load(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); size_t iStartDataLength, iFrameDataLength, iListDataLength, iElementDataLength; const uint8_t* pStartData = luaT_checkfile(L, 2, &iStartDataLength); const uint8_t* pFrameData = luaT_checkfile(L, 3, &iFrameDataLength); const uint8_t* pListData = luaT_checkfile(L, 4, &iListDataLength); const uint8_t* pElementData = luaT_checkfile(L, 5, &iElementDataLength); if (pAnims->load_from_th_file(pStartData, iStartDataLength, pFrameData, iFrameDataLength, pListData, iListDataLength, pElementData, iElementDataLength)) { lua_pushboolean(L, 1); } else { lua_pushboolean(L, 0); } return 1; } //! Load custom animations. /*! loadCustom() -> true/false */ int l_anims_loadcustom(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); size_t iDataLength; const uint8_t* pData = luaT_checkfile(L, 2, &iDataLength); if (pAnims->load_custom_animations(pData, iDataLength)) { lua_pushboolean(L, 1); } else { lua_pushboolean(L, 0); } return 1; } //! Lua interface for getting a set of animations by name and tile size (one for //! each view direction, 'nil' if no animation is available for a direction). /*! getAnimations(, ) -> (, , , ) */ int l_anims_getanims(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); int iTileSize = static_cast(luaL_checkinteger(L, 2)); const char* pName = luaL_checkstring(L, 3); const animation_start_frames& oFrames = pAnims->get_named_animations(pName, iTileSize); if (oFrames.north < 0) { lua_pushnil(L); } else { lua_pushnumber(L, static_cast(oFrames.north)); } if (oFrames.east < 0) { lua_pushnil(L); } else { lua_pushnumber(L, static_cast(oFrames.east)); } if (oFrames.south < 0) { lua_pushnil(L); } else { lua_pushnumber(L, static_cast(oFrames.south)); } if (oFrames.west < 0) { lua_pushnil(L); } else { lua_pushnumber(L, static_cast(oFrames.west)); } return 4; } int l_anims_getfirst(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); int iAnim = static_cast(luaL_checkinteger(L, 2)); lua_pushinteger(L, pAnims->get_first_frame(iAnim)); return 1; } int l_anims_getnext(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); int iFrame = static_cast(luaL_checkinteger(L, 2)); lua_pushinteger(L, pAnims->get_next_frame(iFrame)); return 1; } int l_anims_set_alt_pal(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); size_t iAnimation = luaL_checkinteger(L, 2); size_t iPalLen; const uint8_t* pPal = luaT_checkfile(L, 3, &iPalLen); if (iPalLen != 256) { return luaL_argerror(L, 3, "GhostPalette string is not a valid palette"); } uint32_t iAlt32 = static_cast(luaL_checkinteger(L, 4)); pAnims->set_animation_alt_palette_map(iAnimation, pPal, iAlt32); lua_getfenv(L, 1); lua_insert(L, 2); lua_settop(L, 4); lua_settable(L, 2); lua_settop(L, 1); return 1; } int l_anims_set_primary_marker(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); lua_pushboolean( L, pAnims->set_frame_primary_marker( luaL_checkinteger(L, 2), static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_checkinteger(L, 4))) ? 1 : 0); return 1; } int l_anims_tick(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); pAnims->tick(); return 0; } int l_anims_set_secondary_marker(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); lua_pushboolean( L, pAnims->set_frame_secondary_marker( luaL_checkinteger(L, 2), static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_checkinteger(L, 4))) ? 1 : 0); return 1; } int l_anims_draw(lua_State* L) { animation_manager* pAnims = luaT_testuserdata(L); render_target* pCanvas = luaT_testuserdata(L, 2); size_t iFrame = luaL_checkinteger(L, 3); layers* pLayers = luaT_testuserdata(L, 4, luaT_upvalueindex(2)); int iX = static_cast(luaL_checkinteger(L, 5)); int iY = static_cast(luaL_checkinteger(L, 6)); int iFlags = static_cast(luaL_optinteger(L, 7, 0)); pAnims->draw_frame(pCanvas, iFrame, *pLayers, iX, iY, iFlags); lua_settop(L, 1); return 1; } template int l_anim_new(lua_State* L) { T* pAnimation = luaT_stdnew(L, luaT_environindex, true); lua_rawgeti(L, luaT_environindex, 2); lua_pushlightuserdata(L, pAnimation); lua_pushvalue(L, -3); lua_rawset(L, -3); lua_pop(L, 1); return 1; } template int l_anim_persist(lua_State* L) { T* pAnimation; if (lua_gettop(L) == 3) { pAnimation = luaT_testuserdata(L, 1, luaT_environindex, false); luaT_rotate(L, 1, -1); } else { // Fast __persist call pAnimation = (T*)lua_touserdata(L, -1); } lua_persist_writer* pWriter = (lua_persist_writer*)lua_touserdata(L, 1); pAnimation->persist(pWriter); lua_rawgeti(L, luaT_environindex, 1); lua_pushlightuserdata(L, pAnimation); lua_gettable(L, -2); pWriter->write_stack_object(-1); lua_pop(L, 2); return 0; } template int l_anim_pre_depersist(lua_State* L) { // Note that anims and the map have nice reference cycles between them // and hence we cannot be sure which is depersisted first. To ensure that // things work nicely, we initialise all the fields of a THAnimation as // soon as possible, thus preventing issues like an anim -> map -> anim // reference chain whereby l_anim_depersist is called after l_map_depersist // (as anim references map in its environment table) causing the prev // field to be set during map depersistence, then cleared to nullptr by the // constructor during l_anim_depersist. T* pAnimation = luaT_testuserdata(L); new (pAnimation) T; // Call constructor return 0; } template int l_anim_depersist(lua_State* L) { // Because anim has a pre_depersist function the userdata is already // initialized as a T. T* pAnimation = luaT_testuserdata(L); lua_settop(L, 2); lua_insert(L, 1); lua_persist_reader* pReader = (lua_persist_reader*)lua_touserdata(L, 1); lua_rawgeti(L, luaT_environindex, 2); lua_pushlightuserdata(L, pAnimation); lua_pushvalue(L, 2); lua_settable(L, -3); lua_pop(L, 1); pAnimation->depersist(pReader); lua_rawgeti(L, luaT_environindex, 1); lua_pushlightuserdata(L, pAnimation); if (!pReader->read_stack_object()) return 0; lua_settable(L, -3); lua_pop(L, 1); return 0; } int l_anim_set_hitresult(lua_State* L) { luaL_checktype(L, 1, LUA_TUSERDATA); lua_settop(L, 2); lua_rawgeti(L, luaT_environindex, 1); lua_pushlightuserdata(L, lua_touserdata(L, 1)); lua_pushvalue(L, 2); lua_settable(L, 3); lua_settop(L, 1); return 1; } int l_anim_set_frame(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); pAnimation->set_frame(luaL_checkinteger(L, 2)); lua_settop(L, 1); return 1; } int l_anim_get_frame(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); lua_pushinteger(L, pAnimation->get_frame()); return 1; } int l_anim_set_crop(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); pAnimation->set_crop_column(static_cast(luaL_checkinteger(L, 2))); lua_settop(L, 1); return 1; } int l_anim_get_crop(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); lua_pushinteger(L, pAnimation->get_crop_column()); return 1; } int l_anim_set_anim(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); animation_manager* pManager = luaT_testuserdata(L, 2); lua_Integer iAnim = luaL_checkinteger(L, 3); if (iAnim < 0 || iAnim >= static_cast(pManager->get_animation_count())) luaL_argerror(L, 3, "Animation index out of bounds"); if (lua_isnoneornil(L, 4)) { pAnimation->set_flags(0); } else { pAnimation->set_flags(static_cast(luaL_checkinteger(L, 4))); } pAnimation->set_animation(pManager, static_cast(iAnim)); lua_settop(L, 2); luaT_setenvfield(L, 1, "animator"); lua_pushnil(L); luaT_setenvfield(L, 1, "morph_target"); return 1; } int l_anim_set_morph(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); animation* pMorphTarget = luaT_testuserdata(L, 2, luaT_environindex); int iDurationFactor = 1; if (!lua_isnoneornil(L, 3) && luaL_checkinteger(L, 3) > 0) { iDurationFactor = static_cast(luaL_checkinteger(L, 3)); } pAnimation->set_morph_target(pMorphTarget, iDurationFactor); lua_settop(L, 2); luaT_setenvfield(L, 1, "morph_target"); return 1; } int l_anim_get_anim(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); lua_pushinteger(L, pAnimation->get_animation()); return 1; } // setTile(anim/spr_list, map, x, y, drawing_layer). // If map is 'nil', remove animation from tile. template int l_anim_set_tile(lua_State* L) { T* pAnimation = luaT_testuserdata(L); if (lua_isnoneornil(L, 2)) { pAnimation->remove_from_tile(); lua_pushnil(L); luaT_setenvfield(L, 1, "map"); lua_settop(L, 1); } else { level_map* pMap = luaT_testuserdata(L, 2); int x = static_cast(luaL_checkinteger(L, 3)); int y = static_cast(luaL_checkinteger(L, 4)); int drawing_layer = static_cast(luaL_checkinteger(L, 5)); map_tile* node = pMap->get_tile(x - 1, y - 1); if (node) { pAnimation->attach_to_tile({x - 1, y - 1}, node, drawing_layer); } else { // Off-map, report an error. std::string msg = "Map index out of bounds (" + std::to_string(x) + ", " + std::to_string(y) + ")"; luaL_argerror(L, 3, lua_pushfstring(L, msg.c_str())); } lua_settop(L, 2); luaT_setenvfield(L, 1, "map"); } return 1; } int l_anim_get_tile(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); lua_settop(L, 1); lua_getfenv(L, 1); lua_getfield(L, 2, "map"); lua_replace(L, 2); if (lua_isnil(L, 2)) { return 0; // No map supplied. } const xy_pair& tile = pAnimation->get_tile(); if (tile.x >= 0 && tile.y >= 0) { lua_pushinteger(L, tile.x + 1); lua_pushinteger(L, tile.y + 1); } else { lua_pushnil(L); lua_pushnil(L); } return 3; // map, x, y } int l_anim_set_parent(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); animation* pParent = luaT_testuserdata(L, 2, luaT_environindex, false); bool use_primary = lua_isnone(L, 3); // No number means '1'. if (!use_primary) { lua_Integer value = luaL_checkinteger(L, 3); if (value < 1 || value > 2) luaL_argerror( L, 3, "Marker index out of bounds (only values 1 and 2 are allowed)"); use_primary = (value == 1); } pAnimation->set_parent(pParent, use_primary); lua_settop(L, 1); return 1; } template int l_anim_set_flag(lua_State* L) { T* pAnimation = luaT_testuserdata(L); pAnimation->set_flags(static_cast(luaL_checkinteger(L, 2))); lua_settop(L, 1); return 1; } template int l_anim_set_flag_partial(lua_State* L) { T* pAnimation = luaT_testuserdata(L); uint32_t iFlags = static_cast(luaL_checkinteger(L, 2)); if (lua_isnone(L, 3) || lua_toboolean(L, 3)) { pAnimation->set_flags(pAnimation->get_flags() | iFlags); } else { pAnimation->set_flags(pAnimation->get_flags() & ~iFlags); } lua_settop(L, 1); return 1; } template int l_anim_make_visible(lua_State* L) { T* pAnimation = luaT_testuserdata(L); pAnimation->set_flags(pAnimation->get_flags() & ~static_cast(thdf_alpha_50 | thdf_alpha_75)); lua_settop(L, 1); return 1; } template int l_anim_make_invisible(lua_State* L) { T* pAnimation = luaT_testuserdata(L); pAnimation->set_flags(pAnimation->get_flags() | static_cast(thdf_alpha_50 | thdf_alpha_75)); lua_settop(L, 1); return 1; } template int l_anim_is_visible(lua_State* L) { T* pAnimation = luaT_testuserdata(L); constexpr uint32_t alpha_flags = static_cast(thdf_alpha_50 | thdf_alpha_75); uint32_t object_alpha_flags = pAnimation->get_flags() & alpha_flags; lua_pushboolean(L, object_alpha_flags == alpha_flags ? 0 : 1); return 1; } template int l_anim_get_flag(lua_State* L) { T* pAnimation = luaT_testuserdata(L); lua_pushinteger(L, pAnimation->get_flags()); return 1; } template int l_anim_set_pixel_offset(lua_State* L) { T* pAnimation = luaT_testuserdata(L); int x = static_cast(luaL_checkinteger(L, 2)); int y = static_cast(luaL_checkinteger(L, 3)); pAnimation->set_pixel_offset(x, y); lua_settop(L, 1); return 1; } int l_anim_get_pixel_offset(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); const xy_pair& offset = pAnimation->get_pixel_offset(); lua_pushinteger(L, offset.x); lua_pushinteger(L, offset.y); return 2; } template int l_anim_set_speed(lua_State* L) { T* pAnimation = luaT_testuserdata(L); int x = static_cast(luaL_optinteger(L, 2, 0)); int y = static_cast(luaL_optinteger(L, 3, 0)); pAnimation->set_speed(x, y); lua_settop(L, 1); return 1; } template int l_anim_set_layer(lua_State* L) { T* pAnimation = luaT_testuserdata(L); pAnimation->set_layer(static_cast(luaL_checkinteger(L, 2)), static_cast(luaL_optinteger(L, 3, 0))); lua_settop(L, 1); return 1; } int l_anim_set_layers_from(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); const animation* pAnimationSrc = luaT_testuserdata(L, 2, luaT_environindex); pAnimation->set_layers_from(pAnimationSrc); lua_settop(L, 1); return 1; } int l_anim_set_tag(lua_State* L) { luaT_testuserdata(L); lua_settop(L, 2); luaT_setenvfield(L, 1, "tag"); return 1; } int l_anim_get_tag(lua_State* L) { luaT_testuserdata(L); lua_settop(L, 1); lua_getfenv(L, 1); lua_getfield(L, 2, "tag"); return 1; } int l_anim_get_primary_marker(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); int iX = 0; int iY = 0; pAnimation->get_primary_marker(&iX, &iY); lua_pushinteger(L, iX); lua_pushinteger(L, iY); return 2; } int l_anim_get_secondary_marker(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); int iX = 0; int iY = 0; pAnimation->get_secondary_marker(&iX, &iY); lua_pushinteger(L, iX); lua_pushinteger(L, iY); return 2; } template int l_anim_tick(lua_State* L) { T* pAnimation = luaT_testuserdata(L); pAnimation->tick(); lua_settop(L, 1); return 1; } template int l_anim_draw(lua_State* L) { T* pAnimation = luaT_testuserdata(L); render_target* pCanvas = luaT_testuserdata(L, 2); int x = static_cast(luaL_checkinteger(L, 3)); int y = static_cast(luaL_checkinteger(L, 4)); pAnimation->draw(pCanvas, {x, y}); lua_settop(L, 1); return 1; } int l_anim_set_patient_effect(lua_State* L) { animation* pAnimation = luaT_testuserdata(L); animation_effect flags = static_cast(luaL_checkinteger(L, 2)); pAnimation->set_patient_effect(flags); lua_settop(L, 1); return 1; } template int l_anim_set_scale_factor(lua_State* L) { T* anim = luaT_testuserdata(L); anim->set_scale_factor(static_cast(luaL_checkinteger(L, 2))); return 0; } int l_srl_set_sheet(lua_State* L) { sprite_render_list* pSrl = luaT_testuserdata(L); sprite_sheet* pSheet = luaT_testuserdata(L, 2); pSrl->set_sheet(pSheet); lua_settop(L, 2); luaT_setenvfield(L, 1, "sheet"); return 1; } int l_srl_append(lua_State* L) { sprite_render_list* pSrl = luaT_testuserdata(L); pSrl->append_sprite(luaL_checkinteger(L, 2), static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_checkinteger(L, 4))); lua_settop(L, 1); return 1; } int l_srl_set_lifetime(lua_State* L) { sprite_render_list* pSrl = luaT_testuserdata(L); pSrl->set_lifetime(static_cast(luaL_checkinteger(L, 2))); lua_settop(L, 1); return 1; } int l_srl_set_use_intermediate_buffer(lua_State* L) { sprite_render_list* pSrl = luaT_testuserdata(L); pSrl->set_use_intermediate_buffer(); return 0; } int l_srl_is_dead(lua_State* L) { sprite_render_list* pSrl = luaT_testuserdata(L); lua_pushboolean(L, pSrl->is_dead() ? 1 : 0); return 1; } } // namespace void lua_register_anims(const lua_register_state* pState) { // Anims { lua_class_binding lcb(pState, "anims", l_anims_new, lua_metatable::anims); lcb.add_function(l_anims_load, "load"); lcb.add_function(l_anims_loadcustom, "loadCustom"); lcb.add_function(l_anims_set_spritesheet, "setSheet", lua_metatable::sheet); lcb.add_function(l_anims_set_canvas, "setCanvas", lua_metatable::surface); lcb.add_function(l_anims_getanims, "getAnimations"); lcb.add_function(l_anims_getfirst, "getFirstFrame"); lcb.add_function(l_anims_getnext, "getNextFrame"); lcb.add_function(l_anims_set_alt_pal, "setAnimationGhostPalette"); lcb.add_function(l_anims_set_primary_marker, "setFramePrimaryMarker"); lcb.add_function(l_anims_set_secondary_marker, "setFrameSecondaryMarker"); lcb.add_function(l_anims_draw, "draw", lua_metatable::surface, lua_metatable::layers); lcb.add_function(l_anims_tick, "tick"); lcb.add_constant("Alt32_GreyScale", thdf_alt32_grey_scale); lcb.add_constant("Alt32_BlueRedSwap", thdf_alt32_blue_red_swap); } // Weak table at AnimMetatable[1] for light UD -> object lookup // For hitTest / setHitTestResult lua_newtable(pState->L); lua_createtable(pState->L, 0, 1); lua_pushliteral(pState->L, "v"); lua_setfield(pState->L, -2, "__mode"); lua_setmetatable(pState->L, -2); lua_rawseti(pState->L, pState->metatables[static_cast(lua_metatable::anim)], 1); // Weak table at AnimMetatable[2] for light UD -> full UD lookup // For persisting Map lua_newtable(pState->L); lua_createtable(pState->L, 0, 1); lua_pushliteral(pState->L, "v"); lua_setfield(pState->L, -2, "__mode"); lua_setmetatable(pState->L, -2); lua_rawseti(pState->L, pState->metatables[static_cast(lua_metatable::anim)], 2); // Anim { lua_class_binding lcb(pState, "animation", l_anim_new, lua_metatable::anim); lcb.add_metamethod(l_anim_persist, "persist"); lcb.add_metamethod(l_anim_pre_depersist, "pre_depersist"); lcb.add_metamethod(l_anim_depersist, "depersist"); lcb.add_function(l_anim_set_anim, "setAnimation", lua_metatable::anims); lcb.add_function(l_anim_set_crop, "setCrop"); lcb.add_function(l_anim_get_crop, "getCrop"); lcb.add_function(l_anim_set_morph, "setMorph"); lcb.add_function(l_anim_set_frame, "setFrame"); lcb.add_function(l_anim_get_frame, "getFrame"); lcb.add_function(l_anim_get_anim, "getAnimation"); lcb.add_function(l_anim_set_tile, "setTile", lua_metatable::map); lcb.add_function(l_anim_get_tile, "getTile"); lcb.add_function(l_anim_set_parent, "setParent"); lcb.add_function(l_anim_set_flag, "setFlag"); lcb.add_function(l_anim_set_flag_partial, "setPartialFlag"); lcb.add_function(l_anim_get_flag, "getFlag"); lcb.add_function(l_anim_is_visible, "isVisible"); lcb.add_function(l_anim_make_visible, "makeVisible"); lcb.add_function(l_anim_make_invisible, "makeInvisible"); lcb.add_function(l_anim_set_tag, "setTag"); lcb.add_function(l_anim_get_tag, "getTag"); lcb.add_function(l_anim_set_pixel_offset, "setPosition"); lcb.add_function(l_anim_get_pixel_offset, "getPosition"); lcb.add_function(l_anim_set_speed, "setSpeed"); lcb.add_function(l_anim_set_layer, "setLayer"); lcb.add_function(l_anim_set_layers_from, "setLayersFrom"); lcb.add_function(l_anim_set_scale_factor, "setScaleFactor"); lcb.add_function(l_anim_set_hitresult, "setHitTestResult"); lcb.add_function(l_anim_get_primary_marker, "getPrimaryMarker"); lcb.add_function(l_anim_get_secondary_marker, "getSecondaryMarker"); lcb.add_function(l_anim_tick, "tick"); lcb.add_function(l_anim_draw, "draw", lua_metatable::surface); lcb.add_function(l_anim_set_patient_effect, "setPatientEffect"); } // Duplicate AnimMetatable[1,2] to SpriteListMetatable[1,2] lua_rawgeti(pState->L, pState->metatables[static_cast(lua_metatable::anim)], 1); lua_rawseti( pState->L, pState->metatables[static_cast(lua_metatable::sprite_list)], 1); lua_rawgeti(pState->L, pState->metatables[static_cast(lua_metatable::anim)], 2); lua_rawseti( pState->L, pState->metatables[static_cast(lua_metatable::sprite_list)], 2); // SpriteList { lua_class_binding lcb(pState, "spriteList", l_anim_new, lua_metatable::sprite_list); lcb.add_metamethod(l_anim_persist, "persist"); lcb.add_metamethod(l_anim_pre_depersist, "pre_depersist"); lcb.add_metamethod(l_anim_depersist, "depersist"); lcb.add_function(l_srl_set_sheet, "setSheet", lua_metatable::sheet); lcb.add_function(l_srl_append, "append"); lcb.add_function(l_srl_set_lifetime, "setLifetime"); lcb.add_function(l_srl_set_use_intermediate_buffer, "setUseIntermediateBuffer"); lcb.add_function(l_anim_set_scale_factor, "setScaleFactor"); lcb.add_function(l_srl_is_dead, "isDead"); lcb.add_function(l_anim_set_tile, "setTile", lua_metatable::map); lcb.add_function(l_anim_set_flag, "setFlag"); lcb.add_function(l_anim_set_flag_partial, "setPartialFlag"); lcb.add_function(l_anim_get_flag, "getFlag"); lcb.add_function(l_anim_is_visible, "isVisible"); lcb.add_function(l_anim_make_visible, "makeVisible"); lcb.add_function(l_anim_make_invisible, "makeInvisible"); lcb.add_function(l_anim_set_pixel_offset, "setPosition"); lcb.add_function(l_anim_set_speed, "setSpeed"); lcb.add_function(l_anim_set_layer, "setLayer"); lcb.add_function(l_anim_tick, "tick"); lcb.add_function(l_anim_draw, "draw", lua_metatable::surface); } } CorsixTH-0.70.0/CorsixTH/Src/th_lua_gfx.cpp000066400000000000000000001127021522247547500203770ustar00rootroot00000000000000/* Copyright (c) 2010-2013 Peter "Corsix" Cawley and Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #include // IWYU pragma: keep // IWYU pragma: no_include "freetype/config/ftheader.h" #ifdef WITH_TRACY #include #endif #include #include #include #include #include #include "lua.hpp" #include "persist_lua.h" #include "th_gfx.h" #include "th_gfx_font.h" #include "th_gfx_sdl.h" #include "th_lua.h" #include "th_lua_internal.h" #include FT_ERRORS_H #include FT_TYPES_H namespace { font* luaT_getfont(lua_State* L) { font* p = luaT_touserdata_base( L, 1, {"bitmap_font", "freetype_font"}); #ifdef DEBUG if (p != nullptr && dynamic_cast(p) == nullptr && dynamic_cast(p) == nullptr) { std::fprintf(stderr, "font found which is not freetype or bitmap: %p\n", p); } #endif return p; } int l_palette_new(lua_State* L) { size_t iDataLen; const uint8_t* pData = luaT_checkfile(L, 2, &iDataLen); bool pal8 = lua_toboolean(L, 3); try { luaT_stdnew(L, luaT_environindex, false, pData, iDataLen, pal8); } catch (const std::exception& ex) { lua_pushstring(L, ex.what()); lua_error(L); } return 1; } int l_palette_set_entry(lua_State* L) { palette* pPalette = luaT_testuserdata(L); lua_pushboolean( L, pPalette->set_entry(static_cast(luaL_checkinteger(L, 2)), static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_checkinteger(L, 4)), static_cast(luaL_checkinteger(L, 5))) ? 1 : 0); return 1; } int l_rawbitmap_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } int l_rawbitmap_set_pal(lua_State* L) { raw_bitmap* pBitmap = luaT_testuserdata(L); palette* pPalette = luaT_testuserdata(L, 2); lua_settop(L, 2); pBitmap->set_palette(pPalette); luaT_setenvfield(L, 1, "palette"); return 1; } int l_rawbitmap_load(lua_State* L) { ZoneScoped; raw_bitmap* pBitmap = luaT_testuserdata(L); size_t iDataLen; const uint8_t* pData = luaT_checkfile(L, 2, &iDataLen); int iWidth = static_cast(luaL_checkinteger(L, 3)); render_target* pSurface = luaT_testuserdata(L, 4, luaT_upvalueindex(1), false); uint32_t flags = 0; if (lua_type(L, 5) == LUA_TTABLE) { lua_getfield(L, 5, "flags"); flags = static_cast(luaL_optinteger(L, -1, 0)); lua_pop(L, 1); } try { pBitmap->load_from_th_file(pData, iDataLen, iWidth, pSurface, flags); } catch (const std::exception& ex) { lua_pushstring(L, ex.what()); lua_error(L); return 1; } lua_pushboolean(L, 1); return 1; } int l_rawbitmap_draw(lua_State* L) { ZoneScoped; raw_bitmap* pBitmap = luaT_testuserdata(L); render_target* pCanvas = luaT_testuserdata(L, 2); if (lua_gettop(L) >= 8) { pBitmap->draw(pCanvas, static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_checkinteger(L, 4)), static_cast(luaL_checkinteger(L, 5)), static_cast(luaL_checkinteger(L, 6)), static_cast(luaL_checkinteger(L, 7)), static_cast(luaL_checkinteger(L, 8))); } else pBitmap->draw(pCanvas, static_cast(luaL_optinteger(L, 3, 0)), static_cast(luaL_optinteger(L, 4, 0))); lua_settop(L, 1); return 1; } int l_spritesheet_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } int l_spritesheet_set_pal(lua_State* L) { sprite_sheet* pSheet = luaT_testuserdata(L); palette* pPalette = luaT_testuserdata(L, 2); lua_settop(L, 2); pSheet->set_palette(pPalette); luaT_setenvfield(L, 1, "palette"); return 1; } int l_spritesheet_load(lua_State* L) { ZoneScoped; sprite_sheet* pSheet = luaT_testuserdata(L); size_t iDataLenTable, iDataLenChunk; const uint8_t* pDataTable = luaT_checkfile(L, 2, &iDataLenTable); const uint8_t* pDataChunk = luaT_checkfile(L, 3, &iDataLenChunk); bool bComplex = lua_toboolean(L, 4) != 0; render_target* pSurface = luaT_testuserdata(L, 5, luaT_upvalueindex(1), false); if (pSheet->load_from_th_file(pDataTable, iDataLenTable, pDataChunk, iDataLenChunk, bComplex, pSurface)) lua_pushboolean(L, 1); else lua_pushboolean(L, 0); return 1; } int l_spritesheet_count(lua_State* L) { sprite_sheet* pSheet = luaT_testuserdata(L); lua_pushinteger(L, pSheet->get_sprite_count()); return 1; } int l_spritesheet_size(lua_State* L) { sprite_sheet* pSheet = luaT_testuserdata(L); lua_Integer iSprite = luaL_checkinteger(L, 2); // No array adjustment if (iSprite < 0 || iSprite >= static_cast(pSheet->get_sprite_count())) return luaL_argerror(L, 2, "Sprite index out of bounds"); int iWidth; int iHeight; pSheet->get_sprite_size_unchecked(static_cast(iSprite), &iWidth, &iHeight); lua_pushinteger(L, iWidth); lua_pushinteger(L, iHeight); return 2; } int l_spritesheet_draw(lua_State* L) { ZoneScoped; sprite_sheet* pSheet = luaT_testuserdata(L); render_target* pCanvas = luaT_testuserdata(L, 2); int iSprite = static_cast(luaL_checkinteger(L, 3)); // No array adjustment int x = static_cast(luaL_optinteger(L, 4, 0)); int y = static_cast(luaL_optinteger(L, 5, 0)); int scaleFactor = 1; uint32_t flags = 0; int arg6type = lua_type(L, 6); if (arg6type == LUA_TTABLE) { lua_getfield(L, 6, "flags"); flags = static_cast(luaL_optinteger(L, -1, 0)); lua_pop(L, 1); lua_getfield(L, 6, "scaleFactor"); scaleFactor = static_cast(luaL_optinteger(L, -1, 1)); lua_pop(L, 1); } else if (arg6type != LUA_TNONE) { luaL_error(L, "Expected table for draw options"); } pSheet->draw_sprite(pCanvas, iSprite, x, y, flags, 0, animation_effect::none, scaleFactor); lua_settop(L, 1); return 1; } int l_spritesheet_hittest(lua_State* L) { ZoneScoped; sprite_sheet* pSheet = luaT_testuserdata(L); size_t iSprite = luaL_checkinteger(L, 2); int iX = static_cast(luaL_checkinteger(L, 3)); int iY = static_cast(luaL_checkinteger(L, 4)); uint32_t iFlags = static_cast(luaL_optinteger(L, 5, 0)); return pSheet->hit_test_sprite(iSprite, iX, iY, iFlags); } int l_spritesheet_isvisible(lua_State* L) { sprite_sheet* pSheet = luaT_testuserdata(L); size_t iSprite = luaL_checkinteger(L, 2); lua_pushboolean(L, pSheet->is_sprite_visible(iSprite) ? 1 : 0); return 1; } int l_font_new(lua_State* L) { return luaL_error(L, "Cannot instantiate an interface"); } int l_bitmap_font_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } int l_bitmap_font_set_spritesheet(lua_State* L) { // Note: l_freetype_font_set_spritesheet and l_bitmap_font_set_spritesheet // differ in their expected arguments. bitmap_font* pFont = luaT_testuserdata(L); sprite_sheet* pSheet = luaT_testuserdata(L, 2); int charset_idx = static_cast(luaL_optinteger(L, 3, 1)); bitmap_font_character_set charset; switch (charset_idx) { case 1: charset = bitmap_font_character_set::cp437; break; case 2: charset = bitmap_font_character_set::mik; break; default: return luaL_argerror(L, 3, "Invalid character set"); } lua_settop(L, 2); pFont->set_sprite_sheet(pSheet, charset); luaT_setenvfield(L, 1, "sprites"); return 1; } int l_bitmap_font_get_spritesheet(lua_State* L) { luaT_testuserdata(L); luaT_getenvfield(L, 1, "sprites"); return 1; } int l_bitmap_font_set_sep(lua_State* L) { bitmap_font* pFont = luaT_testuserdata(L); pFont->set_separation(static_cast(luaL_checkinteger(L, 2)), static_cast(luaL_optinteger(L, 3, 0))); lua_settop(L, 1); return 1; } int l_bitmap_font_set_scale(lua_State* L) { bitmap_font* pFont = luaT_testuserdata(L); pFont->set_scale_factor(static_cast(luaL_checkinteger(L, 2))); lua_settop(L, 1); return 1; } void l_freetype_throw_error_code(lua_State* L, FT_Error e) { if (e != FT_Err_Ok) { switch (e) { #undef __FTERRORS_H__ #define FT_ERRORDEF(e, v, s) \ case e: \ lua_pushliteral(L, s); \ break; #define FT_ERROR_START_LIST #define FT_ERROR_END_LIST #include FT_ERRORS_H default: lua_pushliteral(L, "Unrecognised FreeType2 error"); break; }; lua_error(L); } } int l_freetype_font_new(lua_State* L) { freetype_font* pFont = luaT_stdnew(L, luaT_environindex, true); l_freetype_throw_error_code(L, pFont->initialise()); return 1; } //! Read the color from the top of the Lua stack. //! The color may be either a number representing an ARGB color, or a table //! with fields "red", "green", "blue" and "alpha". If alpha is omitted it //! defaults to 255 (fully opaque). All other color components default to 0 //! If neither a number nor a table is present, the color is left unchanged. argb_colour read_color_from_lua(lua_State* L, argb_colour defaultColor) { argb_colour color = defaultColor; if (lua_istable(L, -1)) { lua_getfield(L, -1, "red"); lua_getfield(L, -2, "green"); lua_getfield(L, -3, "blue"); lua_getfield(L, -4, "alpha"); int red = static_cast(luaL_optinteger(L, -4, 0)); int green = static_cast(luaL_optinteger(L, -3, 0)); int blue = static_cast(luaL_optinteger(L, -2, 0)); int alpha = static_cast(luaL_optinteger(L, -1, 255)); color = palette::pack_argb(alpha, red, green, blue); lua_pop(L, 4); } else if (lua_isnumber(L, -1)) { color = static_cast(lua_tointeger(L, -1)); if ((color & 0xFF000000u) == 0) { // If no alpha was specified, assume fully opaque. color |= 0xFF000000u; } } return color; } //! Set the font options for a freetype font. //! //! The lua stack contains three arguments: //! 1. The freetype_font userdata //! 2. A sprite_sheet userdata used to find a default size and colour //! 3. A table of options, which may contain: //!
//!
ttf_color
//!
Either a number representing an ARGB colour, or a table //! with fields "red", "green", "blue" and "alpha". If alpha is omitted //! it defaults to 255 (fully opaque). All other color components default //! to 0.
//!
ttf_width
//!
Desired nominal character width, in pixels. If omitted, the width is //! calculated from the sprite sheet.
//!
ttf_height
//!
Desired nominal character height, in pixels. If omitted, the height //! is calculated from the sprite sheet.
//!
ttf_shadow
//!
A table with fields "offset_x", "offset_y" and "color". The color //! field has the same format as ttf_color. If this field is present, the //! font will be drawn with a shadow of the specified colour and offset. //! color is optional and defaults to opaque black. offset_x and offset_y //! are optional and default to 1. If the field is omitted entirely, no //! shadow is drawn. Alternately ttf_shadow can be set to true to draw //! a shadow with default parameters, or false to disable any shadow. //!
//!
//! @param L Lua stack //! @return argument count int l_freetype_font_set_font_options(lua_State* L) { ZoneScoped; // Colour 0 falls back to using the average colour of the sprite sheet. int width = 0; int height = 0; argb_colour color = 0; freetype_font* pFont = luaT_testuserdata(L); sprite_sheet* pSheet = luaT_testuserdata(L, 2); pFont->match_bitmap_font(pSheet, &color, &width, &height); // Optional RGB colour parameters lua_getfield(L, 3, "ttf_color"); color = read_color_from_lua(L, color); lua_pop(L, 1); lua_getfield(L, 3, "ttf_width"); if (lua_isnumber(L, -1)) { width = static_cast(lua_tointeger(L, -1)); } lua_pop(L, 1); lua_getfield(L, 3, "ttf_height"); if (lua_isnumber(L, -1)) { height = static_cast(lua_tointeger(L, -1)); } lua_pop(L, 1); font_shadow_options shadowOptions; lua_getfield(L, 3, "ttf_shadow"); if (lua_istable(L, -1)) { shadowOptions.enabled = true; lua_getfield(L, -1, "offset_x"); shadowOptions.offset_x = static_cast(luaL_optinteger(L, -1, 1)); lua_pop(L, 1); lua_getfield(L, -1, "offset_y"); shadowOptions.offset_y = static_cast(luaL_optinteger(L, -1, 1)); lua_pop(L, 1); lua_getfield(L, -1, "color"); shadowOptions.color = read_color_from_lua(L, shadowOptions.color); lua_pop(L, 1); } else if (lua_isboolean(L, -1)) { shadowOptions.enabled = lua_toboolean(L, -1); } lua_pop(L, 1); lua_getfield(L, -1, "scale_factor"); int scale_factor = static_cast(luaL_optinteger(L, -1, 1)); width *= scale_factor; height *= scale_factor; shadowOptions.offset_x *= scale_factor; shadowOptions.offset_y *= scale_factor; lua_pop(L, 1); pFont->set_font_color(color); pFont->set_shadow_options(shadowOptions); l_freetype_throw_error_code(L, pFont->set_ideal_character_size(width, height)); lua_settop(L, 1); return 1; } int l_freetype_font_get_copyright(lua_State* L) { lua_pushstring(L, freetype_font::get_copyright_notice()); return 1; } int l_freetype_font_set_face(lua_State* L) { freetype_font* pFont = luaT_testuserdata(L); size_t iLength; const uint8_t* pData = luaT_checkfile(L, 2, &iLength); lua_settop(L, 2); l_freetype_throw_error_code(L, pFont->set_face(pData, iLength)); luaT_setenvfield(L, 1, "face"); return 1; } int l_freetype_font_clear_cache(lua_State* L) { freetype_font* pFont = luaT_testuserdata(L); pFont->clear_cache(); return 0; } int l_font_get_size(lua_State* L) { font* pFont = luaT_getfont(L); size_t iMsgLen; const char* sMsg = luaT_checkstring(L, 2, &iMsgLen); ZoneScoped; int iMaxWidth = INT_MAX; if (!lua_isnoneornil(L, 3)) iMaxWidth = static_cast(luaL_checkinteger(L, 3)); text_layout oDrawArea = pFont->get_text_dimensions(sMsg, iMsgLen, iMaxWidth); lua_pushinteger(L, oDrawArea.end_x); lua_pushinteger(L, oDrawArea.end_y); lua_pushinteger(L, oDrawArea.row_count); return 3; } int l_font_draw(lua_State* L) { ZoneScoped; font* pFont = luaT_getfont(L); render_target* pCanvas = nullptr; if (!lua_isnoneornil(L, 2)) { pCanvas = luaT_testuserdata(L, 2); } size_t iMsgLen; const char* sMsg = luaT_checkstring(L, 3, &iMsgLen); int iX = static_cast(luaL_checkinteger(L, 4)); int iY = static_cast(luaL_checkinteger(L, 5)); text_alignment eAlign = text_alignment::center; if (!lua_isnoneornil(L, 8)) { const char* sAlign = luaL_checkstring(L, 8); if (std::strcmp(sAlign, "right") == 0) { eAlign = text_alignment::right; } else if (std::strcmp(sAlign, "left") == 0) { eAlign = text_alignment::left; } else if (std::strcmp(sAlign, "center") == 0 || std::strcmp(sAlign, "centre") == 0 || std::strcmp(sAlign, "middle") == 0) { eAlign = text_alignment::center; } else { return luaL_error(L, "Invalid alignment: \"%s\"", sAlign); } } text_layout oDrawArea = pFont->get_text_dimensions(sMsg, iMsgLen); if (!lua_isnoneornil(L, 7)) { int iW = static_cast(luaL_checkinteger(L, 6)); int iH = static_cast(luaL_checkinteger(L, 7)); if (iW > oDrawArea.end_x && eAlign != text_alignment::left) { iX += (iW - oDrawArea.end_x) / ((eAlign == text_alignment::center) ? 2 : 1); } if (iH > oDrawArea.end_y) { iY += (iH - oDrawArea.end_y) / 2; } } if (pCanvas != nullptr) { pFont->draw_text(pCanvas, sMsg, iMsgLen, iX, iY); } lua_pushinteger(L, iY + oDrawArea.end_y); lua_pushinteger(L, iX + oDrawArea.end_x); return 2; } int l_font_draw_wrapped(lua_State* L) { ZoneScoped; font* pFont = luaT_getfont(L); render_target* pCanvas = nullptr; if (!lua_isnoneornil(L, 2)) { pCanvas = luaT_testuserdata(L, 2); } size_t iMsgLen; const char* sMsg = luaT_checkstring(L, 3, &iMsgLen); int iX = static_cast(luaL_checkinteger(L, 4)); int iY = static_cast(luaL_checkinteger(L, 5)); int iW = static_cast(luaL_checkinteger(L, 6)); text_alignment eAlign = text_alignment::left; if (!lua_isnoneornil(L, 7)) { const char* sAlign = luaL_checkstring(L, 7); if (std::strcmp(sAlign, "right") == 0) { eAlign = text_alignment::right; } else if (std::strcmp(sAlign, "left") == 0) { eAlign = text_alignment::left; } else if (std::strcmp(sAlign, "center") == 0 || std::strcmp(sAlign, "centre") == 0 || std::strcmp(sAlign, "middle") == 0) { eAlign = text_alignment::center; } else { return luaL_error(L, "Invalid alignment: \"%s\"", sAlign); } } int iMaxRows = INT_MAX; if (!lua_isnoneornil(L, 8)) { iMaxRows = static_cast(luaL_checkinteger(L, 8)); } int iSkipRows = 0; if (!lua_isnoneornil(L, 9)) { iSkipRows = static_cast(luaL_checkinteger(L, 9)); } text_layout oDrawArea = pFont->draw_text_wrapped( pCanvas, sMsg, iMsgLen, iX, iY, iW, iMaxRows, iSkipRows, eAlign); lua_pushinteger(L, oDrawArea.end_y); lua_pushinteger(L, oDrawArea.end_x); lua_pushinteger(L, oDrawArea.row_count); return 3; } int l_font_draw_tooltip(lua_State* L) { ZoneScoped; font* pFont = luaT_getfont(L); render_target* pCanvas = luaT_testuserdata(L, 2); size_t iMsgLen; const char* sMsg = luaT_checkstring(L, 3, &iMsgLen); int iX = static_cast(luaL_checkinteger(L, 4)); int iY = static_cast(luaL_checkinteger(L, 5)); int iW = static_cast(luaL_optinteger(L, 6, 200)); int iScreenWidth = pCanvas->get_width(); uint32_t iBlack = render_target::map_colour(0x00, 0x00, 0x00); uint32_t iWhite = render_target::map_colour(0xFF, 0xFF, 0xFF); text_layout oArea = pFont->draw_text_wrapped(nullptr, sMsg, iMsgLen, iX + 2, iY + 1, iW - 4, INT_MAX, 0); int iLastX = iX + oArea.width + 3; int iFirstY = iY - (oArea.end_y - iY) - 1; int iXOffset = iLastX > iScreenWidth ? iScreenWidth - iLastX : 0; int iYOffset = iFirstY < 0 ? -iFirstY : 0; pCanvas->fill_rect(iBlack, iX + iXOffset, iFirstY + iYOffset, oArea.width + 3, oArea.end_y - iY + 2); pCanvas->fill_rect(iWhite, iX + iXOffset + 1, iFirstY + 1 + iYOffset, oArea.width + 1, oArea.end_y - iY); pFont->draw_text_wrapped(pCanvas, sMsg, iMsgLen, iX + 2 + iXOffset, iFirstY + 1 + iYOffset, iW - 4); lua_pushinteger(L, oArea.end_y); return 1; } int l_font_is_bitmap(lua_State* L) { font* pFont = luaT_getfont(L); lua_pushboolean(L, dynamic_cast(pFont) != nullptr ? 1 : 0); return 1; } int l_layers_new(lua_State* L) { layers* pLayers = luaT_stdnew(L, luaT_environindex, false); for (int i = 0; i < max_number_of_layers; ++i) pLayers->layer_contents[i] = 0; return 1; } int l_layers_get(lua_State* L) { layers* pLayers = luaT_testuserdata(L); lua_Integer iLayer = luaL_checkinteger(L, 2); if (0 <= iLayer && iLayer < max_number_of_layers) lua_pushinteger(L, pLayers->layer_contents[iLayer]); else lua_pushnil(L); return 1; } int l_layers_set(lua_State* L) { layers* pLayers = luaT_testuserdata(L); lua_Integer iLayer = luaL_checkinteger(L, 2); uint8_t iValue = static_cast(luaL_checkinteger(L, 3)); if (0 <= iLayer && iLayer < max_number_of_layers) { pLayers->layer_contents[iLayer] = iValue; } return 0; } int l_layers_persist(lua_State* L) { layers* pLayers = luaT_testuserdata(L); lua_persist_writer* pWriter = (lua_persist_writer*)lua_touserdata(L, 2); int iNumLayers = max_number_of_layers; for (; iNumLayers >= 1; --iNumLayers) { if (pLayers->layer_contents[iNumLayers - 1] != 0) break; } pWriter->write_uint(iNumLayers); pWriter->write_byte_stream(pLayers->layer_contents, iNumLayers); return 0; } int l_layers_depersist(lua_State* L) { void* layers_ud = luaT_testuserdata(L); lua_settop(L, 2); lua_insert(L, 1); lua_persist_reader* pReader = static_cast(lua_touserdata(L, 1)); layers* ls = new (layers_ud) layers(); int iNumLayers; if (!pReader->read_uint(iNumLayers)) return 0; if (iNumLayers > max_number_of_layers) { if (!pReader->read_byte_stream(ls->layer_contents, max_number_of_layers)) { return 0; } if (!pReader->read_byte_stream(nullptr, iNumLayers - max_number_of_layers)) { return 0; } } else { if (!pReader->read_byte_stream(ls->layer_contents, iNumLayers)) return 0; } return 0; } int l_cursor_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, false); return 1; } int l_cursor_load(lua_State* L) { ZoneScoped; cursor* pCursor = luaT_testuserdata(L); sprite_sheet* pSheet = luaT_testuserdata(L, 2); if (pCursor->create_from_sprite(pSheet, static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_optinteger(L, 4, 0)), static_cast(luaL_optinteger(L, 5, 0)))) { lua_settop(L, 1); return 1; } else { lua_pushboolean(L, 0); return 1; } } int l_cursor_use(lua_State* L) { cursor* pCursor = luaT_testuserdata(L); render_target* pCanvas = luaT_testuserdata(L, 2); pCursor->use(pCanvas); return 0; } int l_cursor_position(lua_State* L) { render_target* pCanvas = luaT_testuserdata(L, 1, luaT_upvalueindex(1)); lua_pushboolean(L, cursor::set_position( pCanvas, static_cast(luaL_checkinteger(L, 2)), static_cast(luaL_checkinteger(L, 3))) ? 1 : 0); return 1; } /** Construct the helper structure for making a #THRenderTarget. */ render_target_creation_params l_surface_creation_params(lua_State* L, int iArgStart) { render_target_creation_params params; params.width = static_cast(luaL_checkinteger(L, iArgStart)); params.height = static_cast(luaL_checkinteger(L, iArgStart + 1)); params.min_width = static_cast(luaL_checkinteger(L, iArgStart + 2)); params.min_height = static_cast(luaL_checkinteger(L, iArgStart + 3)); params.fullscreen = false; params.present_immediate = false; params.direct_zoom = false; // Parse string arguments, looking for matching parameter names. for (int iArg = iArgStart + 4, iArgCount = lua_gettop(L); iArg <= iArgCount; ++iArg) { const char* sOption = luaL_checkstring(L, iArg); if (sOption[0] == 0) continue; if (std::strcmp(sOption, "fullscreen") == 0) { params.fullscreen = true; } if (std::strcmp(sOption, "present immediate") == 0) { params.present_immediate = true; } if (std::strcmp(sOption, "direct zoom") == 0) { params.direct_zoom = true; } } return params; } int l_surface_new(lua_State* L) { lua_remove(L, 1); // Value inserted by __call render_target_creation_params params = l_surface_creation_params(L, 1); try { luaT_stdnew(L, luaT_environindex, false, params); } catch (const std::exception& ex) { return luaL_error(L, "Could not create render target: %s", ex.what()); } return 1; } int l_surface_update(lua_State* L) { render_target* pCanvas = luaT_testuserdata(L); render_target_creation_params params = l_surface_creation_params(L, 2); if (pCanvas->update(params)) { lua_pushnil(L); return 1; } lua_pushstring(L, pCanvas->get_last_error()); return 1; } int l_surface_fill_black(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); lua_settop(L, 1); if (pCanvas->fill_black()) return 1; lua_pushnil(L); lua_pushstring(L, pCanvas->get_last_error()); return 2; } int l_surface_fill_colour(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); uint32_t c = read_color_from_lua(L, 0xFF000000); lua_settop(L, 2); if (pCanvas->fill_colour(c)) return 1; lua_pushnil(L); lua_pushstring(L, pCanvas->get_last_error()); return 2; } int l_surface_start_frame(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); lua_settop(L, 1); if (pCanvas->start_frame()) return 1; lua_pushnil(L); lua_pushstring(L, pCanvas->get_last_error()); return 2; } int l_surface_end_frame(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); lua_settop(L, 1); if (pCanvas->end_frame()) return 1; lua_pushnil(L); lua_pushstring(L, pCanvas->get_last_error()); return 2; } int l_surface_nonoverlapping(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); if (lua_isnone(L, 2) || lua_toboolean(L, 2) != 0) pCanvas->start_nonoverlapping_draws(); else pCanvas->finish_nonoverlapping_draws(); lua_settop(L, 1); return 1; } int l_surface_set_blue_filter_active(lua_State* L) { render_target* pCanvas = luaT_testuserdata(L); pCanvas->set_blue_filter_active( (lua_isnoneornil(L, 2) != 0) ? false : (lua_toboolean(L, 2) != 0)); return 1; } int l_surface_map(lua_State* L) { ZoneScoped; lua_pushnumber( L, (lua_Number)render_target::map_colour((Uint8)luaL_checkinteger(L, 2), (Uint8)luaL_checkinteger(L, 3), (Uint8)luaL_checkinteger(L, 4))); return 1; } int l_surface_rect(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); if (pCanvas->fill_rect(static_cast(luaL_checkinteger(L, 2)), static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_checkinteger(L, 4)), static_cast(luaL_checkinteger(L, 5)), static_cast(luaL_checkinteger(L, 6)))) { lua_settop(L, 1); return 1; } lua_pushnil(L); lua_pushstring(L, pCanvas->get_last_error()); return 2; } int l_surface_screenshot(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); const char* file_path = luaL_checkstring(L, 2); if (pCanvas->take_screenshot(file_path)) { lua_settop(L, 1); return 1; } lua_pushnil(L); lua_pushstring(L, pCanvas->get_last_error()); return 2; } int l_surface_push_clip(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); clip_rect rcClip; rcClip.x = static_cast(luaL_checkinteger(L, 2)); rcClip.y = static_cast(luaL_checkinteger(L, 3)); rcClip.w = static_cast(luaL_checkinteger(L, 4)); rcClip.h = static_cast(luaL_checkinteger(L, 5)); pCanvas->push_clip_rect(&rcClip); lua_settop(L, 1); return 1; } int l_surface_pop_clip(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); pCanvas->pop_clip_rect(); lua_settop(L, 1); return 1; } int l_surface_get_width(lua_State* L) { render_target* pCanvas = luaT_testuserdata(L); lua_pushinteger(L, pCanvas->get_width()); return 1; } int l_surface_get_height(lua_State* L) { render_target* pCanvas = luaT_testuserdata(L); lua_pushinteger(L, pCanvas->get_height()); return 1; } int l_surface_scale(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); scaled_items eToScale = scaled_items::none; if (lua_isnoneornil(L, 3)) { eToScale = scaled_items::all; } else { size_t iLength; const char* sOption = lua_tolstring(L, 3, &iLength); if (sOption && iLength >= 6 && std::memcmp(sOption, "bitmap", 6) == 0) { eToScale = scaled_items::bitmaps; } else luaL_error(L, "Expected \"bitmap\" as 2nd argument"); } lua_pushboolean(L, pCanvas->set_scale_factor( static_cast(luaL_checknumber(L, 2)), eToScale) ? 1 : 0); return 1; } int l_surface_set_caption(lua_State* L) { render_target* pCanvas = luaT_testuserdata(L); pCanvas->set_caption(luaL_checkstring(L, 2)); lua_settop(L, 1); return 1; } int l_surface_get_renderer_details(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); lua_pushstring(L, pCanvas->get_renderer_details()); return 1; } // Lua to THRenderTarget->setWindowGrab int l_surface_set_capture_mouse(lua_State* L) { ZoneScoped; render_target* pCanvas = luaT_testuserdata(L); pCanvas->set_window_grab( (lua_isnoneornil(L, 2) != 0) ? false : (lua_toboolean(L, 2) != 0)); return 0; } int l_line_new(lua_State* L) { luaT_stdnew(L); return 1; } int l_move_to(lua_State* L) { line_sequence* pLine = luaT_testuserdata(L); pLine->move_to(luaL_optnumber(L, 2, 0), luaL_optnumber(L, 3, 0)); lua_settop(L, 1); return 1; } int l_line_to(lua_State* L) { line_sequence* pLine = luaT_testuserdata(L); pLine->line_to(luaL_optnumber(L, 2, 0), luaL_optnumber(L, 3, 0)); lua_settop(L, 1); return 1; } int l_set_width(lua_State* L) { line_sequence* pLine = luaT_testuserdata(L); pLine->set_width(luaL_optnumber(L, 2, 1)); lua_settop(L, 1); return 1; } int l_set_colour(lua_State* L) { line_sequence* pLine = luaT_testuserdata(L); pLine->set_colour(static_cast(luaL_optinteger(L, 2, 0)), static_cast(luaL_optinteger(L, 3, 0)), static_cast(luaL_optinteger(L, 4, 0)), static_cast(luaL_optinteger(L, 5, 255))); lua_settop(L, 1); return 1; } int l_line_draw(lua_State* L) { ZoneScoped; line_sequence* pLine = luaT_testuserdata(L); render_target* pCanvas = luaT_testuserdata(L, 2); pLine->draw(pCanvas, static_cast(luaL_optinteger(L, 3, 0)), static_cast(luaL_optinteger(L, 4, 0))); lua_settop(L, 1); return 1; } int l_line_persist(lua_State* L) { line_sequence* pLine = luaT_testuserdata(L); lua_persist_writer* pWriter = (lua_persist_writer*)lua_touserdata(L, 2); pLine->persist(pWriter); return 0; } int l_line_depersist(lua_State* L) { void* line_ud = luaT_testuserdata(L); lua_settop(L, 2); lua_insert(L, 1); lua_persist_reader* pReader = static_cast(lua_touserdata(L, 1)); line_sequence* line = new (line_ud) line_sequence(); line->depersist(pReader); return 0; } } // namespace void lua_register_gfx(const lua_register_state* pState) { // Palette { lua_class_binding lcb(pState, "palette", l_palette_new, lua_metatable::palette); lcb.add_function(l_palette_set_entry, "setEntry"); } // Raw bitmap { lua_class_binding lcb(pState, "bitmap", l_rawbitmap_new, lua_metatable::bitmap); lcb.add_function(l_rawbitmap_load, "load", lua_metatable::surface); lcb.add_function(l_rawbitmap_set_pal, "setPalette", lua_metatable::palette); lcb.add_function(l_rawbitmap_draw, "draw", lua_metatable::surface); } // Sprite sheet { lua_class_binding lcb(pState, "sheet", l_spritesheet_new, lua_metatable::sheet); lcb.add_metamethod(l_spritesheet_count, "len"); lcb.add_function(l_spritesheet_load, "load", lua_metatable::surface); lcb.add_function(l_spritesheet_set_pal, "setPalette", lua_metatable::palette); lcb.add_function(l_spritesheet_size, "size"); lcb.add_function(l_spritesheet_draw, "draw", lua_metatable::surface); lcb.add_function(l_spritesheet_hittest, "hitTest"); lcb.add_function(l_spritesheet_isvisible, "isVisible"); } // Font // Also adapt the font proxy meta table (font_proxy_mt) in graphics.lua. { lua_class_binding lcb(pState, "font", l_font_new, lua_metatable::font); lcb.add_function(l_font_get_size, "sizeOf"); lcb.add_function(l_font_draw, "draw", lua_metatable::surface); lcb.add_function(l_font_draw_wrapped, "drawWrapped", lua_metatable::surface); lcb.add_function(l_font_draw_tooltip, "drawTooltip", lua_metatable::surface); lcb.add_function(l_font_is_bitmap, "isBitmap"); } // BitmapFont { lua_class_binding lcb(pState, "bitmap_font", l_bitmap_font_new, lua_metatable::bitmap_font); lcb.set_superclass(lua_metatable::font); lcb.add_function(l_bitmap_font_set_spritesheet, "setSheet", lua_metatable::sheet); lcb.add_function(l_bitmap_font_get_spritesheet, "getSheet", lua_metatable::sheet); lcb.add_function(l_bitmap_font_set_sep, "setSeparation"); lcb.add_function(l_bitmap_font_set_scale, "setScaleFactor"); } // FreeTypeFont { lua_class_binding lcb(pState, "freetype_font", l_freetype_font_new, lua_metatable::freetype_font); lcb.set_superclass(lua_metatable::font); lcb.add_function(l_freetype_font_set_font_options, "setFontOptions", lua_metatable::sheet); lcb.add_function(l_freetype_font_set_face, "setFace"); lcb.add_function(l_freetype_font_get_copyright, "getCopyrightNotice"); lcb.add_function(l_freetype_font_clear_cache, "clearCache"); } // Layers { lua_class_binding lcb(pState, "layers", l_layers_new, lua_metatable::layers); lcb.add_metamethod(l_layers_get, "index"); lcb.add_metamethod(l_layers_set, "newindex"); lcb.add_metamethod(l_layers_persist, "persist"); lcb.add_metamethod(l_layers_depersist, "depersist"); } // Cursor { lua_class_binding lcb(pState, "cursor", l_cursor_new, lua_metatable::cursor); lcb.add_function(l_cursor_load, "load", lua_metatable::sheet); lcb.add_function(l_cursor_use, "use", lua_metatable::surface); lcb.add_function(l_cursor_position, "setPosition", lua_metatable::surface); } // Surface { lua_class_binding lcb(pState, "surface", l_surface_new, lua_metatable::surface); lcb.add_function(l_surface_update, "update"); lcb.add_function(l_surface_fill_black, "fillBlack"); lcb.add_function(l_surface_fill_colour, "fillColour"); lcb.add_function(l_surface_start_frame, "startFrame"); lcb.add_function(l_surface_end_frame, "endFrame"); lcb.add_function(l_surface_nonoverlapping, "nonOverlapping"); lcb.add_function(l_surface_map, "mapRGB"); lcb.add_function(l_surface_set_blue_filter_active, "setBlueFilterActive"); lcb.add_function(l_surface_rect, "drawRect"); lcb.add_function(l_surface_push_clip, "pushClip"); lcb.add_function(l_surface_pop_clip, "popClip"); lcb.add_function(l_surface_get_width, "getWidth"); lcb.add_function(l_surface_get_height, "getHeight"); lcb.add_function(l_surface_screenshot, "takeScreenshot"); lcb.add_function(l_surface_scale, "scale"); lcb.add_function(l_surface_set_caption, "setCaption"); lcb.add_function(l_surface_get_renderer_details, "getRendererDetails"); lcb.add_function(l_surface_set_capture_mouse, "setCaptureMouse"); } // Line { lua_class_binding lcb(pState, "line", l_line_new, lua_metatable::line); lcb.add_function(l_move_to, "moveTo"); lcb.add_function(l_line_to, "lineTo"); lcb.add_function(l_set_width, "setWidth"); lcb.add_function(l_set_colour, "setColour"); lcb.add_function(l_line_draw, "draw", lua_metatable::surface); lcb.add_metamethod(l_line_persist, "persist"); lcb.add_metamethod(l_line_depersist, "depersist"); } } CorsixTH-0.70.0/CorsixTH/Src/th_lua_internal.h000066400000000000000000000153131522247547500210740ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_LUA_INTERNAL_H_ #define CORSIX_TH_TH_LUA_INTERNAL_H_ #include "config.h" #include #include "th_lua.h" enum class lua_metatable { map, palette, sheet, font, bitmap_font, freetype_font, layers, anims, anim, pathfinder, surface, bitmap, cursor, lfs_ext, sound_archive, sound_fx, movie, string, window_base, sprite_list, string_proxy, line, iso_fs, midi_player, count }; struct lua_register_state { lua_State* L; int metatables[static_cast(lua_metatable::count)]; int main_table; int top; }; void luaT_setclosure(const lua_register_state* pState, lua_CFunction fn, int iUps); template void luaT_setclosure(const lua_register_state* pState, lua_CFunction fn, int iUps, lua_metatable eMetatable1, Args... args) { lua_pushvalue(pState->L, pState->metatables[static_cast(eMetatable1)]); luaT_setclosure(pState, fn, iUps + 1, args...); } template void luaT_setclosure(const lua_register_state* pState, lua_CFunction fn, int iUps, const char* str, Args... args) { lua_pushstring(pState->L, str); luaT_setclosure(pState, fn, iUps + 1, args...); } /** * Add a c++ function to the lua state. * * @param pState Lua state for the game * @param fn The C/C++ function to register * @param name The name to use for the function in lua * @param args The upvalues to associate with the function in lua */ template void add_lua_function(const lua_register_state* pState, lua_CFunction fn, const char* name, Args... args) { luaT_setclosure(pState, fn, 0, args...); lua_setfield(pState->L, -2, name); } /** * Create a lua 'class' bound to a C++ class. * * This class should be immediately destructed after adding all of it's * functions, metamethods and constants to complete the creation of the bind. */ template class lua_class_binding final { public: lua_class_binding() = delete; lua_class_binding(const lua_class_binding&) = delete; lua_class_binding(lua_class_binding&&) = delete; lua_class_binding& operator=(const lua_class_binding&) = delete; lua_class_binding operator=(lua_class_binding&&) = delete; /** * Initiate class bindings for lua. * * @param pState The lua environment to bind to. * @param name The name to give this lua 'class'. * @param new_fn The function to call when a new class is created. * @param mt The metatable id for the class */ lua_class_binding(const lua_register_state* pState, const char* name, lua_CFunction new_fn, lua_metatable mt) : pState(pState), class_name(name), class_metatable(pState->metatables[static_cast(mt)]) { lua_settop(pState->L, pState->top); /* Make metatable the environment for registered functions */ lua_pushvalue(pState->L, class_metatable); lua_replace(pState->L, luaT_environindex); /* Set the __gc metamethod to C++ destructor */ luaT_pushcclosure(pState->L, luaT_stdgc, 0); lua_setfield(pState->L, class_metatable, "__gc"); /* Set the depersist size */ lua_pushinteger(pState->L, sizeof(T)); lua_setfield(pState->L, class_metatable, "__depersist_size"); /* Create the methods table; call it -> new instance */ luaT_pushcclosuretable(pState->L, new_fn, 0); /* Set __class_name on the methods metatable */ lua_getmetatable(pState->L, -1); lua_pushstring(pState->L, class_name); lua_setfield(pState->L, -2, "__class_name"); lua_pop(pState->L, 1); /* Set __index to the methods table */ lua_pushvalue(pState->L, -1); lua_setfield(pState->L, class_metatable, "__index"); } /** * Set another class as the superclass of this class. * * @param super_mt The metatable id of the super class. */ void set_superclass(lua_metatable super_mt) { lua_getmetatable(pState->L, -1); lua_getfield(pState->L, pState->metatables[static_cast(super_mt)], "__index"); lua_setfield(pState->L, -2, "__index"); lua_pop(pState->L, 1); /* Set metatable[1] to super_mt */ lua_pushvalue(pState->L, pState->metatables[static_cast(super_mt)]); lua_rawseti(pState->L, class_metatable, 1); } /** * Add a named constant to the lua interface. * * @param name (string literal) Name of the constant. * @param value (tested with int) Value of the constant. */ template void add_constant(const char* name, V value) { luaT_push(pState->L, value); lua_setfield(pState->L, -2, name); } /** * Add a C++ metamethod to the lua class. * * @param fn The C++ function to call. * @param name The name of the metamethod (without the __ prefix). * @param args The upvalues for the function. */ template void add_metamethod(lua_CFunction fn, const char* name, Args... args) { luaT_setclosure(pState, fn, 0, args...); lua_setfield(pState->L, class_metatable, std::string("__").append(name).c_str()); } /** * Add a C++ function to the lua class. * * @param fn The C++ function. * @param name The name of the function in lua. * @param args The upvalues for the function */ template void add_function(lua_CFunction fn, const char* name, Args... args) { add_lua_function(pState, fn, name, args...); } /** * Destructor which finalizes the lua binding */ ~lua_class_binding() { lua_setfield(pState->L, pState->main_table, class_name); } private: const lua_register_state* pState; const char* class_name; int class_metatable; }; #endif CorsixTH-0.70.0/CorsixTH/Src/th_lua_iso.cpp000066400000000000000000000140721522247547500204060ustar00rootroot00000000000000/* Copyright (c) 2019,2025 Stephen "TheCycoONE" Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #include #include "iso_fs.h" #include "lua.hpp" #include "th_lua.h" #include "th_lua_internal.h" namespace { /** * Lua binding to construct a new iso_filesystem object. * * Expects the lua stack to contain: * -# metatable for iso_fs * -# path to .iso file * -# (optional) path separator, defaults to '/' * * Returns on the lua stack: * -# userdata (iso_filesystem) or nil on failure * -# string (path) or nil on failure * -# error message if the first return value is nil * * @param L Lua stack * @return Number of return values */ int l_isofs_new(lua_State* L) { const char* path = luaL_checkstring(L, 2); std::string_view sep = luaL_optstring(L, 3, "/"); if (sep.length() != 1) { luaL_argerror(L, 3, "Path separator must be a single character"); } try { luaT_stdnew(L, luaT_environindex, true, path, sep.at(0)); } catch (std::runtime_error& e) { lua_pushnil(L); lua_pushnil(L); lua_pushfstring(L, "%s", e.what()); return 3; } // L // 1 - table (metatable) // 2 - path // 3 - separator // 4 - userdata (iso_filesystem) lua_pushvalue(L, 2); luaT_setenvfield(L, 4, "string"); lua_pushvalue(L, 2); return 2; } int l_isofs_is_valid_root(lua_State* L) { // Static method so we don't need an instance try { iso_filesystem fs(luaL_checkstring(L, 1)); lua_pushboolean(L, true); } catch (std::runtime_error&) { lua_pushboolean(L, false); } return 1; } int l_isofs_file_exists(lua_State* L) { iso_filesystem* pSelf = luaT_testuserdata(L); const char* sFilename = luaL_checkstring(L, 2); iso_filesystem::file_handle iFile = pSelf->find_file(sFilename); if (!iso_filesystem::is_handle_good(iFile)) { lua_pushnil(L); lua_pushfstring(L, "Could not find \'%s\' in .iso image", sFilename); return 2; } lua_pushboolean(L, true); return 1; } int l_isofs_file_size(lua_State* L) { iso_filesystem* pSelf = luaT_testuserdata(L); const char* sFilename = luaL_checkstring(L, 2); iso_filesystem::file_handle iFile = pSelf->find_file(sFilename); if (!iso_filesystem::is_handle_good(iFile)) { lua_pushnil(L); lua_pushfstring(L, "Could not find \'%s\' in .iso image", sFilename); return 2; } lua_pushinteger(L, pSelf->get_file_size(iFile)); return 1; } //! Get the start and end bytes of a given file. /*! Called on an iso_filesystem, passing in a filename. If the file exists in the iso then the byte position of the start of the file inclusive and the end of the file exclusive is returned to the caller. If the file is not found then an error is passed as the third return value. \param L The Lua State */ int l_isofs_file_offsets(lua_State* L) { iso_filesystem* pSelf = luaT_testuserdata(L); const char* sFilename = luaL_checkstring(L, 2); iso_filesystem::file_handle iFile = pSelf->find_file(sFilename); if (!iso_filesystem::is_handle_good(iFile)) { lua_pushnil(L); lua_pushnil(L); lua_pushfstring(L, "Could not find \'%s\' in .iso image", sFilename); return 3; } uint32_t start = pSelf->get_file_start(iFile); lua_pushinteger(L, start); lua_pushinteger(L, start + pSelf->get_file_size(iFile)); return 2; } int l_isofs_read_contents(lua_State* L) { iso_filesystem* pSelf = luaT_testuserdata(L); const char* sFilename = luaL_checkstring(L, 2); iso_filesystem::file_handle iFile = pSelf->find_file(sFilename); if (!iso_filesystem::is_handle_good(iFile)) { lua_pushnil(L); lua_pushfstring(L, "Could not find \'%s\' in .iso image", sFilename); return 2; } void* pBuffer = lua_newuserdata(L, pSelf->get_file_size(iFile)); if (!pSelf->get_file_data(iFile, reinterpret_cast(pBuffer))) { lua_pushnil(L); lua_pushlstring(L, pSelf->get_error().data(), pSelf->get_error().size()); return 2; } lua_pushlstring(L, reinterpret_cast(pBuffer), pSelf->get_file_size(iFile)); return 1; } void l_isofs_list_files_callback(void* p, const char* name, const char* path) { lua_State* L = reinterpret_cast(p); lua_pushstring(L, name); lua_pushstring(L, path); lua_settable(L, 3); } int l_isofs_list_files(lua_State* L) { iso_filesystem* pSelf = luaT_testuserdata(L); const char* sPath = luaL_checkstring(L, 2); lua_settop(L, 2); lua_newtable(L); pSelf->visit_directory_files(sPath, l_isofs_list_files_callback, L); return 1; } } // namespace void lua_register_iso_fs(const lua_register_state* pState) { lua_class_binding lcb(pState, "iso_fs", l_isofs_new, lua_metatable::iso_fs); lcb.add_function(l_isofs_file_exists, "fileExists"); lcb.add_function(l_isofs_file_size, "fileSize"); lcb.add_function(l_isofs_file_offsets, "fileOffsets"); lcb.add_function(l_isofs_read_contents, "readContents"); lcb.add_function(l_isofs_list_files, "listFiles"); lcb.add_function(l_isofs_is_valid_root, "isValidRoot"); } CorsixTH-0.70.0/CorsixTH/Src/th_lua_lfs_ext.cpp000066400000000000000000000055531522247547500212640ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Copyright (c) 2014 Stephen E. Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "lua.hpp" #include "th_lua.h" #include "th_lua_internal.h" #ifdef CORSIX_TH_USE_WIN32_SDK #include #endif class lfs_ext {}; namespace { int l_lfs_ext_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } #ifdef _WIN32 #ifdef CORSIX_TH_USE_WIN32_SDK int l_volume_list(lua_State* L) { /* Windows, using the Win32 API. */ DWORD iDriveMask = GetLogicalDrives(); int iNDrives = 0; char cDrive; lua_settop(L, 0); lua_newtable(L); for (cDrive = 'A'; cDrive <= 'Z'; ++cDrive) { if (iDriveMask & (1 << (cDrive - 'A'))) { char sName[4] = {cDrive, ':', '\\', 0}; if (GetDriveTypeA(sName) > DRIVE_NO_ROOT_DIR) { lua_pushlstring(L, sName, 2); lua_rawseti(L, 1, ++iNDrives); } } } return 1; } #else int l_volume_list(lua_State* L) { /* Windows, without the Win32 API. */ int iNDrives = 0; char cDrive; lua_settop(L, 0); lua_newtable(L); lua_getfield(L, luaT_upvalueindex(1), "attributes"); for (cDrive = 'A'; cDrive <= 'Z'; ++cDrive) { lua_pushvalue(L, 2); lua_pushfstring(L, "%c:\\", cDrive); lua_pushliteral(L, "mode"); lua_call(L, 2, 1); if (lua_toboolean(L, 3) != 0) { lua_pushfstring(L, "%c:", cDrive); lua_rawseti(L, 1, ++iNDrives); } lua_pop(L, 1); } return 1; } #endif #else int l_volume_list(lua_State* L) { /* Non-Windows systems. Assume that / is the root of the filesystem. */ lua_settop(L, 0); lua_newtable(L); lua_pushliteral(L, "/"); lua_rawseti(L, 1, 1); return 1; } #endif } // namespace void lua_register_lfs_ext(const lua_register_state* pState) { lua_class_binding lcb(pState, "lfsExt", l_lfs_ext_new, lua_metatable::lfs_ext); lcb.add_function(l_volume_list, "volumes"); } CorsixTH-0.70.0/CorsixTH/Src/th_lua_map.cpp000066400000000000000000001134511522247547500203720ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #ifdef WITH_TRACY #include #endif #include #include #include #include #include #include #include #include #include "lua.hpp" #include "th_gfx.h" #include "th_lua.h" #include "th_lua_internal.h" #include "th_map.h" #include "th_pathfind.h" class lua_persist_reader; class lua_persist_writer; class render_target; class sprite_sheet; namespace { constexpr int player_max = 4; int l_map_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } int l_map_set_sheet(lua_State* L) { level_map* pMap = luaT_testuserdata(L); sprite_sheet* pSheet = luaT_testuserdata(L, 2); lua_settop(L, 2); pMap->set_block_sheet(pSheet); luaT_setenvfield(L, 1, "sprites"); return 1; } int l_map_persist(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); luaT_rotate(L, 1, -1); pMap->persist((lua_persist_writer*)lua_touserdata(L, 1)); return 0; } int l_map_depersist(lua_State* L) { ZoneScoped; void* map_ud = luaT_testuserdata(L); lua_settop(L, 2); lua_insert(L, 1); lua_persist_reader* pReader = (lua_persist_reader*)lua_touserdata(L, 1); level_map* map = new (map_ud) level_map(); map->depersist(pReader); luaT_getenvfield(L, 2, "sprites"); map->set_block_sheet((sprite_sheet*)lua_touserdata(L, -1)); lua_pop(L, 1); return 0; } void l_map_load_obj_cb(void* pL, int iX, int iY, object_type eTHOB, uint8_t iFlags) { lua_State* L = static_cast(pL); lua_createtable(L, 4, 0); lua_pushinteger(L, 1 + (lua_Integer)iX); lua_rawseti(L, -2, 1); lua_pushinteger(L, 1 + (lua_Integer)iY); lua_rawseti(L, -2, 2); lua_pushinteger(L, (lua_Integer)eTHOB); lua_rawseti(L, -2, 3); lua_pushinteger(L, (lua_Integer)iFlags); lua_rawseti(L, -2, 4); lua_rawseti(L, 3, static_cast(lua_objlen(L, 3)) + 1); } int l_map_load(lua_State* L) { level_map* pMap = luaT_testuserdata(L); size_t iDataLen; const uint8_t* pData = luaT_checkfile(L, 2, &iDataLen); lua_settop(L, 2); lua_newtable(L); if (pMap->load_from_th_file(pData, iDataLen, l_map_load_obj_cb, (void*)L)) { lua_pushboolean(L, 1); } else { lua_pushboolean(L, 0); } lua_insert(L, -2); return 2; } int l_map_loadblank(lua_State* L) { level_map* pMap = luaT_testuserdata(L); if (pMap->load_blank()) { lua_pushboolean(L, 1); } else { lua_pushboolean(L, 0); } lua_newtable(L); return 2; } int l_map_save(lua_State* L) { level_map* pMap = luaT_testuserdata(L); std::string filename(luaL_checkstring(L, 2)); pMap->save(filename); return 0; } animation* l_map_updateblueprint_getnextanim(lua_State* L, int& iIndex) { animation* pAnim; lua_rawgeti(L, 11, iIndex); if (lua_type(L, -1) == LUA_TNIL) { lua_pop(L, 1); pAnim = luaT_new(L); lua_pushvalue(L, luaT_upvalueindex(2)); lua_setmetatable(L, -2); lua_createtable(L, 0, 2); lua_pushvalue(L, 1); lua_setfield(L, -2, "map"); lua_pushvalue(L, 12); lua_setfield(L, -2, "animator"); lua_setfenv(L, -2); lua_rawseti(L, 11, iIndex); } else { pAnim = luaT_testuserdata(L, -1, luaT_upvalueindex(2)); lua_pop(L, 1); } ++iIndex; return pAnim; } uint16_t l_check_temp(lua_State* L, int iArg) { lua_Number n = luaL_checknumber(L, iArg); if (n < static_cast(0) || static_cast(1) < n) { luaL_argerror(L, iArg, "temperature (number in [0,1])"); } return static_cast(n * static_cast(65535)); } int l_map_settemperaturedisplay(lua_State* L) { level_map* pMap = luaT_testuserdata(L); lua_Integer iTD = luaL_checkinteger(L, 2); temperature_theme temperatureDisplay; switch (iTD) { case 1: temperatureDisplay = temperature_theme::red; break; case 2: temperatureDisplay = temperature_theme::multi_colour; break; case 3: temperatureDisplay = temperature_theme::yellow_red; break; default: return luaL_argerror(L, 2, "TemperatureDisplay index out of bounds"); } pMap->set_temperature_display(temperatureDisplay); return 1; } int l_map_updatetemperature(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); uint16_t iAir = l_check_temp(L, 2); uint16_t iRadiator = l_check_temp(L, 3); pMap->update_temperatures(iAir, iRadiator); lua_settop(L, 1); return 1; } int l_map_gettemperature(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2)) - 1; int iY = static_cast(luaL_checkinteger(L, 3)) - 1; const map_tile* pNode = pMap->get_tile(iX, iY); uint16_t iTemp = pMap->get_tile_temperature(pNode); lua_pushnumber( L, static_cast(iTemp) / static_cast(65535)); return 1; } /** * Is the tile position valid for a new room? * @param entire_invalid Entire blueprint is invalid (eg wrong position or too * small). * @param pNode Tile to examine. * @param pMap The world map. * @param player_id The player to check for. * @return Whether the tile position is valid for a new room. */ inline bool is_valid(bool entire_invalid, const map_tile* pNode, const level_map* pMap, int player_id) { return !entire_invalid && !pNode->flags.room && pNode->flags.buildable && (player_id == 0 || pMap->get_tile_owner(pNode) == player_id); } int l_map_updateblueprint(lua_State* L) { ZoneScoped; // NB: This function can be implemented in Lua, but is implemented in C for // efficiency. const unsigned short iFloorTileGood = 24 + (thdf_alpha_50 << 8); const unsigned short iFloorTileGoodCenter = 37 + (thdf_alpha_50 << 8); const unsigned short iFloorTileBad = 67 + (thdf_alpha_50 << 8); const unsigned int iWallAnimTopCorner = 124; const unsigned int iWallAnim = 120; level_map* pMap = luaT_testuserdata(L); int iOldX = static_cast(luaL_checkinteger(L, 2)) - 1; int iOldY = static_cast(luaL_checkinteger(L, 3)) - 1; int iOldW = static_cast(luaL_checkinteger(L, 4)); int iOldH = static_cast(luaL_checkinteger(L, 5)); int iNewX = static_cast(luaL_checkinteger(L, 6)) - 1; int iNewY = static_cast(luaL_checkinteger(L, 7)) - 1; int iNewW = static_cast(luaL_checkinteger(L, 8)); int iNewH = static_cast(luaL_checkinteger(L, 9)); int player_id = static_cast(luaL_checkinteger(L, 10)); luaL_checktype(L, 11, LUA_TTABLE); // Animation list animation_manager* pAnims = luaT_testuserdata(L, 12, luaT_upvalueindex(1)); bool entire_invalid = lua_toboolean(L, 13) != 0; bool valid = !entire_invalid; if (iOldX < 0 || iOldY < 0 || (iOldX + iOldW) > pMap->get_width() || (iOldY + iOldH) > pMap->get_height()) luaL_argerror(L, 2, "Old rectangle is out of bounds"); if (iNewX < 0 || iNewY < 0 || (iNewX + iNewW) >= pMap->get_width() || (iNewY + iNewH) >= pMap->get_height()) luaL_argerror(L, 6, "New rectangle is out of bounds"); // Clear blueprint flag from previous selected floor tiles (copying it to // the passable flag). for (int iY = iOldY; iY < iOldY + iOldH; ++iY) { for (int iX = iOldX; iX < iOldX + iOldW; ++iX) { map_tile* pNode = pMap->get_tile_unchecked(iX, iY); pNode->tile_layers[tile_layer::ui] = 0; pNode->flags.passable |= pNode->flags.passable_if_not_for_blueprint; pNode->flags.passable_if_not_for_blueprint = false; } } // Add blueprint flag to new floor tiles. for (int iY = iNewY; iY < iNewY + iNewH; ++iY) { for (int iX = iNewX; iX < iNewX + iNewW; ++iX) { map_tile* pNode = pMap->get_tile_unchecked(iX, iY); if (is_valid(entire_invalid, pNode, pMap, player_id)) { pNode->tile_layers[tile_layer::ui] = iFloorTileGood; } else { pNode->tile_layers[tile_layer::ui] = iFloorTileBad; valid = false; } pNode->flags.passable_if_not_for_blueprint = pNode->flags.passable; } } // Set center floor tiles if (iNewW >= 2 && iNewH >= 2) { int iCenterX = iNewX + (iNewW - 2) / 2; int iCenterY = iNewY + (iNewH - 2) / 2; map_tile* pNode = pMap->get_tile_unchecked(iCenterX, iCenterY); if (pNode->tile_layers[tile_layer::ui] == iFloorTileGood) pNode->tile_layers[tile_layer::ui] = iFloorTileGoodCenter + 2; pNode = pMap->get_tile_unchecked(iCenterX + 1, iCenterY); if (pNode->tile_layers[tile_layer::ui] == iFloorTileGood) pNode->tile_layers[tile_layer::ui] = iFloorTileGoodCenter + 1; pNode = pMap->get_tile_unchecked(iCenterX, iCenterY + 1); if (pNode->tile_layers[tile_layer::ui] == iFloorTileGood) pNode->tile_layers[tile_layer::ui] = iFloorTileGoodCenter + 0; pNode = pMap->get_tile_unchecked(iCenterX + 1, iCenterY + 1); if (pNode->tile_layers[tile_layer::ui] == iFloorTileGood) pNode->tile_layers[tile_layer::ui] = iFloorTileGoodCenter + 3; } // Set wall animations int iNextAnim = 1; animation* pAnim = l_map_updateblueprint_getnextanim(L, iNextAnim); map_tile* pNode = pMap->get_tile_unchecked(iNewX, iNewY); pAnim->set_animation(pAnims, iWallAnimTopCorner); pAnim->set_flags( is_valid(entire_invalid, pNode, pMap, player_id) ? 0 : thdf_alt_palette); pAnim->attach_to_tile({iNewX, iNewY}, pNode, 0); for (int iX = iNewX; iX < iNewX + iNewW; ++iX) { if (iX != iNewX) { pAnim = l_map_updateblueprint_getnextanim(L, iNextAnim); pNode = pMap->get_tile_unchecked(iX, iNewY); pAnim->set_animation(pAnims, iWallAnim); pAnim->set_flags(is_valid(entire_invalid, pNode, pMap, player_id) ? 0 : thdf_alt_palette); pAnim->attach_to_tile({iX, iNewY}, pNode, 0); pAnim->set_pixel_offset(0, 0); } pAnim = l_map_updateblueprint_getnextanim(L, iNextAnim); pNode = pMap->get_tile_unchecked(iX, iNewY + iNewH - 1); pAnim->set_animation(pAnims, iWallAnim); pAnim->set_flags(is_valid(entire_invalid, pNode, pMap, player_id) ? 0 : thdf_alt_palette); pNode = pMap->get_tile_unchecked(iX, iNewY + iNewH); pAnim->attach_to_tile({iX, iNewY + iNewH}, pNode, 0); pAnim->set_pixel_offset(0, -1); } for (int iY = iNewY; iY < iNewY + iNewH; ++iY) { if (iY != iNewY) { pAnim = l_map_updateblueprint_getnextanim(L, iNextAnim); pNode = pMap->get_tile_unchecked(iNewX, iY); pAnim->set_animation(pAnims, iWallAnim); pAnim->set_flags(thdf_flip_horizontal | (is_valid(entire_invalid, pNode, pMap, player_id) ? 0 : thdf_alt_palette)); pAnim->attach_to_tile({iNewX, iY}, pNode, 0); pAnim->set_pixel_offset(2, 0); } pAnim = l_map_updateblueprint_getnextanim(L, iNextAnim); pNode = pMap->get_tile_unchecked(iNewX + iNewW - 1, iY); pAnim->set_animation(pAnims, iWallAnim); pAnim->set_flags(thdf_flip_horizontal | (is_valid(entire_invalid, pNode, pMap, player_id) ? 0 : thdf_alt_palette)); pNode = pMap->get_tile_unchecked(iNewX + iNewW, iY); pAnim->attach_to_tile({iNewX + iNewW, iY}, pNode, 0); pAnim->set_pixel_offset(2, -1); } // Clear away extra animations int iAnimCount = (int)lua_objlen(L, 11); if (iAnimCount >= iNextAnim) { for (int i = iNextAnim; i <= iAnimCount; ++i) { pAnim = l_map_updateblueprint_getnextanim(L, iNextAnim); pAnim->remove_from_tile(); lua_pushnil(L); lua_rawseti(L, 11, i); } } lua_pushboolean(L, valid ? 1 : 0); return 1; } int l_map_getsize(lua_State* L) { level_map* pMap = luaT_testuserdata(L); lua_pushinteger(L, pMap->get_width()); lua_pushinteger(L, pMap->get_height()); return 2; } int l_map_get_player_count(lua_State* L) { level_map* pMap = luaT_testuserdata(L); lua_pushinteger(L, pMap->get_player_count()); return 1; } int l_map_set_player_count(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int count = static_cast(luaL_checkinteger(L, 2)); try { pMap->set_player_count(count); } catch (std::out_of_range&) { return luaL_error(L, "Player count out of range %d", count); } return 0; } int l_map_get_player_camera(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int iX, iY; int iPlayer = static_cast(luaL_optinteger(L, 2, 1)); bool bGood = pMap->get_player_camera_tile(iPlayer - 1, &iX, &iY); if (!bGood) { return luaL_error(L, "Player index out of range: %d", iPlayer); } lua_pushinteger(L, iX + 1); lua_pushinteger(L, iY + 1); return 2; } int l_map_set_player_camera(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); int iY = static_cast(luaL_checkinteger(L, 3) - 1); int iPlayer = static_cast(luaL_optinteger(L, 4, 1)); if (iPlayer < 1 || iPlayer > player_max) { return luaL_error(L, "Player index out of range: %i", iPlayer); } pMap->set_player_camera_tile(iPlayer - 1, iX, iY); return 0; } int l_map_get_player_heliport(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int iX, iY; int iPlayer = static_cast(luaL_optinteger(L, 2, 1)); bool bGood = pMap->get_player_heliport_tile(iPlayer - 1, &iX, &iY); if (!bGood) { return luaL_error(L, "Player index out of range: %d", iPlayer); } lua_pushinteger(L, iX + 1); lua_pushinteger(L, iY + 1); return 2; } int l_map_set_player_heliport(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); int iY = static_cast(luaL_checkinteger(L, 3) - 1); int iPlayer = static_cast(luaL_optinteger(L, 4, 1)); if (iPlayer < 1 || iPlayer > player_max) { return luaL_error(L, "Player index out of range: %i", iPlayer); } pMap->set_player_heliport_tile(iPlayer - 1, iX, iY); return 0; } int l_map_getcell(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); // Lua arrays start at 1 - pretend int iY = static_cast(luaL_checkinteger(L, 3) - 1); // the map does too. map_tile* pNode = pMap->get_tile(iX, iY); if (pNode == nullptr) { return luaL_argerror(L, 2, lua_pushfstring(L, "Map coordinates out " "of bounds (%d, %d)", iX + 1, iY + 1)); } if (lua_isnoneornil(L, 4)) { lua_pushinteger(L, pNode->tile_layers[tile_layer::ground]); lua_pushinteger(L, pNode->tile_layers[tile_layer::north_wall]); lua_pushinteger(L, pNode->tile_layers[tile_layer::west_wall]); lua_pushinteger(L, pNode->tile_layers[tile_layer::ui]); return 4; } else { lua_Integer iLayer = luaL_checkinteger(L, 4) - 1; if (iLayer < tile_layer::ground || iLayer >= tile_layer::num_tile_layers) return luaL_argerror(L, 4, "Tile layer index is out of bounds (1-4)"); lua_pushinteger(L, pNode->tile_layers[iLayer]); return 1; } } /** Recognized tile flags by Lua. */ const std::map lua_tile_flag_map{ {"passable", map_tile_flags::key::passable_mask}, {"hospital", map_tile_flags::key::hospital_mask}, {"buildable", map_tile_flags::key::buildable_mask}, {"room", map_tile_flags::key::room_mask}, {"doorWest", map_tile_flags::key::door_west_mask}, {"doorNorth", map_tile_flags::key::door_north_mask}, {"tallWest", map_tile_flags::key::tall_west_mask}, {"tallNorth", map_tile_flags::key::tall_north_mask}, {"travelNorth", map_tile_flags::key::can_travel_n_mask}, {"travelEast", map_tile_flags::key::can_travel_e_mask}, {"travelSouth", map_tile_flags::key::can_travel_s_mask}, {"travelWest", map_tile_flags::key::can_travel_w_mask}, {"doNotIdle", map_tile_flags::key::do_not_idle_mask}, {"buildableNorth", map_tile_flags::key::buildable_n_mask}, {"buildableEast", map_tile_flags::key::buildable_e_mask}, {"buildableSouth", map_tile_flags::key::buildable_s_mask}, {"buildableWest", map_tile_flags::key::buildable_w_mask}, }; /** * Add the current value of the \a flag in the \a tile to the output. * @param L Lua context. * @param tile Tile to inspect. * @param flag Flag of the tile to check (and report). * @param name Name of the flag in Lua code. */ void add_cellflag(lua_State* L, const map_tile* tile, const map_tile_flags::key flag, const std::string_view name) { lua_pushlstring(L, name.data(), name.size()); lua_pushboolean(L, tile->flags[flag] ? 1 : 0); lua_settable(L, 4); } /** * Add the current value of a tile field to the output. * @param L Lua context. * @param value Value of the tile field to add. * @param name Name of the field in Lua code. */ void add_cellint(lua_State* L, const int value, const std::string_view name) { lua_pushlstring(L, name.data(), name.size()); lua_pushinteger(L, value); lua_settable(L, 4); } /** * Get the room id at the given position * @param L Lua context. * [1] - The world map object * [2] - The X coordinate * [3] - The Y coordinate * @return Number of results of the call. The roomId is pushed onto L. */ int l_map_get_room_id(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); // Lua arrays start at 1 - pretend int iY = static_cast(luaL_checkinteger(L, 3) - 1); // the map does too. map_tile* pNode = pMap->get_tile(iX, iY); if (pNode == nullptr) { return luaL_argerror(L, 2, "Map coordinates out of bounds"); } lua_pushinteger(L, pNode->iRoomId); return 1; } /** * Get the value of all cell flags at a position. * @param L Lua context. * @return Number of results of the call. */ int l_map_getcellflags(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); // Lua arrays start at 1 - pretend int iY = static_cast(luaL_checkinteger(L, 3) - 1); // the map does too. map_tile* pNode = pMap->get_tile(iX, iY); if (pNode == nullptr) { return luaL_argerror(L, 2, "Map coordinates out of bounds"); } if (lua_type(L, 4) != LUA_TTABLE) { lua_settop(L, 3); lua_createtable(L, 0, 1); } else { lua_settop(L, 4); } // Fill Lua table with the flags and numbers of the tile. for (const auto& val : lua_tile_flag_map) { add_cellflag(L, pNode, val.second, val.first); } add_cellint(L, pNode->iRoomId, "roomId"); add_cellint(L, pNode->iParcelId, "parcelId"); add_cellint(L, pMap->get_tile_owner(pNode), "owner"); add_cellint(L, static_cast(pNode->objects.empty() ? object_type::no_object : pNode->objects.front()), "thob"); return 1; } int l_map_getcellraw(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); // Lua arrays start at 1 - pretend int iY = static_cast(luaL_checkinteger(L, 3) - 1); // the map does too. map_tile* pNode = pMap->get_tile(iX, iY); if (pNode == nullptr) { return luaL_argerror(L, 2, "Map coordinates out of bounds"); } lua_pushlstring(L, reinterpret_cast(pNode->raw), map_tile::raw_length); return 1; } /* because all the thobs are not retrieved when the map is loaded in c lua objects use the afterLoad function to be registered after a load, if the object list would not be cleared it would result in duplication of thobs in the object list. */ int l_map_erase_thobs(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); // Lua arrays start at 1 - pretend int iY = static_cast(luaL_checkinteger(L, 3) - 1); // the map does too. map_tile* pNode = pMap->get_tile(iX, iY); if (pNode == nullptr) { return luaL_argerror(L, 2, "Map coordinates out of bounds"); } pNode->objects.clear(); return 1; } int l_map_remove_cell_thob(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); // Lua arrays start at 1 - pretend int iY = static_cast(luaL_checkinteger(L, 3) - 1); // the map does too. map_tile* pNode = pMap->get_tile(iX, iY); if (pNode == nullptr) { return luaL_argerror(L, 2, "Map coordinates out of bounds"); } auto thob = static_cast(luaL_checkinteger(L, 4)); for (auto iter = pNode->objects.begin(); iter != pNode->objects.end(); iter++) { if (*iter == thob) { pNode->objects.erase(iter); break; } } return 1; } int l_map_setcellflags(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); // Lua arrays start at 1 - pretend int iY = static_cast(luaL_checkinteger(L, 3) - 1); // the map does too. map_tile* pNode = pMap->get_tile(iX, iY); if (pNode == nullptr) { return luaL_argerror(L, 2, "Map coordinates out of bounds"); } luaL_checktype(L, 4, LUA_TTABLE); lua_settop(L, 4); lua_pushnil(L); while (lua_next(L, 4)) { if (lua_type(L, 5) == LUA_TSTRING) { const char* field = lua_tostring(L, 5); auto iter = lua_tile_flag_map.find(field); if (iter != lua_tile_flag_map.end()) { if (lua_toboolean(L, 6) == 0) { pNode->flags[(*iter).second] = false; } else { pNode->flags[(*iter).second] = true; } } else if (std::strcmp(field, "thob") == 0) { auto thob = static_cast(lua_tointeger(L, 6)); pNode->objects.push_back(thob); } else if (std::strcmp(field, "parcelId") == 0) { pNode->iParcelId = static_cast(lua_tointeger(L, 6)); } else if (std::strcmp(field, "roomId") == 0) { pNode->iRoomId = static_cast(lua_tointeger(L, 6)); } else { luaL_error(L, "Invalid flag \'%s\'", field); } } lua_settop(L, 5); } return 0; } int l_map_setwallflags(lua_State* L) { level_map* pMap = luaT_testuserdata(L); pMap->set_all_wall_draw_flags((uint8_t)luaL_checkinteger(L, 2)); lua_settop(L, 1); return 1; } int l_map_setcell(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int iX = static_cast(luaL_checkinteger(L, 2) - 1); // Lua arrays start at 1 - pretend int iY = static_cast(luaL_checkinteger(L, 3) - 1); // the map does too. map_tile* pNode = pMap->get_tile(iX, iY); if (pNode == nullptr) { return luaL_argerror(L, 2, "Map coordinates out of bounds"); } if (lua_gettop(L) >= 7) { pNode->tile_layers[tile_layer::ground] = static_cast(luaL_checkinteger(L, 4)); pNode->tile_layers[tile_layer::north_wall] = static_cast(luaL_checkinteger(L, 5)); pNode->tile_layers[tile_layer::west_wall] = static_cast(luaL_checkinteger(L, 6)); pNode->tile_layers[tile_layer::ui] = static_cast(luaL_checkinteger(L, 7)); } else { lua_Integer layer = luaL_checkinteger(L, 4) - 1; if (layer < tile_layer::ground || layer >= tile_layer::num_tile_layers) return luaL_argerror(L, 4, "Tile layer index is out of bounds (1-4)"); uint16_t blk = static_cast(luaL_checkinteger(L, 5)); pNode->tile_layers[layer] = blk; } lua_settop(L, 1); return 1; } int l_map_updateshadows(lua_State* L) { level_map* pMap = luaT_testuserdata(L); pMap->update_shadows(); lua_settop(L, 1); return 1; } int l_map_updatepathfinding(lua_State* L) { level_map* pMap = luaT_testuserdata(L); pMap->update_pathfinding(); lua_settop(L, 1); return 1; } int l_map_mark_room(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int iX_ = static_cast(luaL_checkinteger(L, 2) - 1); int iY_ = static_cast(luaL_checkinteger(L, 3) - 1); int iW = static_cast(luaL_checkinteger(L, 4)); int iH = static_cast(luaL_checkinteger(L, 5)); uint16_t iTile = static_cast(luaL_checkinteger(L, 6)); uint16_t iRoomId = static_cast(luaL_optinteger(L, 7, 0)); if (iX_ < 0 || iY_ < 0 || (iX_ + iW) > pMap->get_width() || (iY_ + iH) > pMap->get_height()) { luaL_argerror(L, 2, "Rectangle is out of bounds"); } for (int iY = iY_; iY < iY_ + iH; ++iY) { for (int iX = iX_; iX < iX_ + iW; ++iX) { map_tile* pNode = pMap->get_tile_unchecked(iX, iY); pNode->tile_layers[tile_layer::ground] = iTile; pNode->tile_layers[tile_layer::ui] = 0; pNode->flags.room = true; pNode->flags.passable |= pNode->flags.passable_if_not_for_blueprint; pNode->flags.passable_if_not_for_blueprint = false; pNode->iRoomId = iRoomId; } } pMap->update_pathfinding(); pMap->update_shadows(); lua_settop(L, 1); return 1; } int l_map_unmark_room(lua_State* L) { level_map* pMap = luaT_testuserdata(L); int iX_ = static_cast(luaL_checkinteger(L, 2) - 1); int iY_ = static_cast(luaL_checkinteger(L, 3) - 1); int iW = static_cast(luaL_checkinteger(L, 4)); int iH = static_cast(luaL_checkinteger(L, 5)); if (iX_ < 0 || iY_ < 0 || (iX_ + iW) > pMap->get_width() || (iY_ + iH) > pMap->get_height()) { luaL_argerror(L, 2, "Rectangle is out of bounds"); } for (int iY = iY_; iY < iY_ + iH; ++iY) { for (int iX = iX_; iX < iX_ + iW; ++iX) { map_tile* pNode = pMap->get_tile_unchecked(iX, iY); pNode->tile_layers[tile_layer::ground] = pMap->get_original_tile_unchecked(iX, iY) ->tile_layers[tile_layer::ground]; pNode->flags.room = false; pNode->iRoomId = 0; } } pMap->update_pathfinding(); pMap->update_shadows(); lua_settop(L, 1); return 1; } int l_map_draw(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); render_target* pCanvas = luaT_testuserdata(L, 2); pMap->draw(pCanvas, static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_checkinteger(L, 4)), static_cast(luaL_checkinteger(L, 5)), static_cast(luaL_checkinteger(L, 6)), static_cast(luaL_optinteger(L, 7, 0)), static_cast(luaL_optinteger(L, 8, 0))); lua_settop(L, 1); return 1; } int l_map_hittest(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); drawable* pObject = pMap->hit_test(static_cast(luaL_checkinteger(L, 2)), static_cast(luaL_checkinteger(L, 3))); if (pObject == nullptr) { return 0; } lua_rawgeti(L, luaT_upvalueindex(1), 1); lua_pushlightuserdata(L, pObject); lua_gettable(L, -2); return 1; } int l_map_get_parcel_tilecount(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); int iParcel = static_cast(luaL_checkinteger(L, 2)); lua_Integer iCount = pMap->get_parcel_tile_count(iParcel); lua_pushinteger(L, iCount); return 1; } int l_map_get_parcel_count(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); lua_pushinteger(L, pMap->get_parcel_count()); return 1; } int l_map_set_parcel_owner(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); int parcelId = static_cast(luaL_checkinteger(L, 2)); int player = static_cast(luaL_checkinteger(L, 3)); if (lua_type(L, 4) != LUA_TTABLE) { lua_settop(L, 3); lua_newtable(L); } else { lua_settop(L, 4); } std::vector> vSplitTiles = pMap->set_parcel_owner(parcelId, player); for (std::vector>::size_type i = 0; i != vSplitTiles.size(); i++) { lua_pushinteger(L, i + 1); lua_createtable(L, 0, 2); lua_pushinteger(L, 1); lua_pushinteger(L, vSplitTiles[i].first + 1); lua_settable(L, 6); lua_pushinteger(L, 2); lua_pushinteger(L, vSplitTiles[i].second + 1); lua_settable(L, 6); lua_settable(L, 4); } return 1; } int l_map_get_parcel_owner(lua_State* L) { level_map* pMap = luaT_testuserdata(L); lua_pushinteger( L, pMap->get_parcel_owner(static_cast(luaL_checkinteger(L, 2)))); return 1; } int l_map_is_parcel_purchasable(lua_State* L) { level_map* pMap = luaT_testuserdata(L); lua_pushboolean( L, pMap->is_parcel_purchasable(static_cast(luaL_checkinteger(L, 2)), static_cast(luaL_checkinteger(L, 3))) ? 1 : 0); return 1; } /* Compute the fraction of corridor tiles with litter, of the parcels owned by * the given player. */ int l_map_get_litter_fraction(lua_State* L) { ZoneScoped; level_map* pMap = luaT_testuserdata(L); int owner = static_cast(luaL_checkinteger(L, 2)); if (owner == 0) { lua_pushnumber(L, 0.0); // Outside has no litter. return 1; } double tile_count = 0; double litter_count = 0; for (int x = 0; x < pMap->get_width(); x++) { for (int y = 0; y < pMap->get_height(); y++) { const map_tile* pNode = pMap->get_tile_unchecked(x, y); if (pNode->iParcelId == 0 || owner != pMap->get_parcel_owner(pNode->iParcelId) || pNode->iRoomId != 0) { continue; } tile_count++; for (auto iter = pNode->objects.begin(); iter != pNode->objects.end(); iter++) { if (*iter == object_type::litter) { litter_count++; break; } } } } double fraction = (tile_count == 0) ? 0.0 : litter_count / tile_count; lua_pushnumber(L, fraction); return 1; } int l_path_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } int l_path_set_map(lua_State* L) { pathfinder* pPathfinder = luaT_testuserdata(L); level_map* pMap = luaT_testuserdata(L, 2); lua_settop(L, 2); pPathfinder->set_default_map(pMap); luaT_setenvfield(L, 1, "map"); return 1; } int l_path_persist(lua_State* L) { pathfinder* pPathfinder = luaT_testuserdata(L); pPathfinder->persist((lua_persist_writer*)lua_touserdata(L, 2)); return 0; } int l_path_depersist(lua_State* L) { void* pathfinder_ud = luaT_testuserdata(L); lua_settop(L, 2); lua_insert(L, 1); lua_persist_reader* pReader = (lua_persist_reader*)lua_touserdata(L, 1); pathfinder* pf = new (pathfinder_ud) pathfinder(); pf->depersist(pReader); luaT_getenvfield(L, 2, "map"); pf->set_default_map(static_cast(lua_touserdata(L, -1))); return 0; } int l_path_is_reachable_from_hospital(lua_State* L) { ZoneScoped; pathfinder* pPathfinder = luaT_testuserdata(L); bool found = pPathfinder->find_path_to_hospital( nullptr, static_cast(luaL_checkinteger(L, 2) - 1), static_cast(luaL_checkinteger(L, 3) - 1)); if (found) { lua_pushboolean(L, 1); int iX, iY; pPathfinder->get_path_end(&iX, &iY); lua_pushinteger(L, iX + 1); lua_pushinteger(L, iY + 1); return 3; } else { lua_pushboolean(L, 0); return 1; } } int l_path_distance(lua_State* L) { ZoneScoped; pathfinder* pPathfinder = luaT_testuserdata(L); bool found = pPathfinder->find_path( nullptr, static_cast(luaL_checkinteger(L, 2)) - 1, static_cast(luaL_checkinteger(L, 3)) - 1, static_cast(luaL_checkinteger(L, 4)) - 1, static_cast(luaL_checkinteger(L, 5)) - 1); if (found) { lua_pushinteger(L, pPathfinder->get_path_length()); } else { lua_pushboolean(L, 0); } return 1; } int l_path_path(lua_State* L) { ZoneScoped; pathfinder* pPathfinder = luaT_testuserdata(L); pPathfinder->find_path(nullptr, static_cast(luaL_checkinteger(L, 2)) - 1, static_cast(luaL_checkinteger(L, 3)) - 1, static_cast(luaL_checkinteger(L, 4)) - 1, static_cast(luaL_checkinteger(L, 5)) - 1); pPathfinder->push_result(L); return 2; } int l_path_idle(lua_State* L) { ZoneScoped; pathfinder* pPathfinder = luaT_testuserdata(L); bool found = pPathfinder->find_idle_tile( nullptr, // Default map. static_cast(luaL_checkinteger(L, 2)) - 1, // X coordinate queue. static_cast(luaL_checkinteger(L, 3)) - 1, // Y coordinate queue. static_cast( luaL_optinteger(L, 4, 0)), // Take Nth candidate tile, used for // queueing and randomizing idling tiles. static_cast(luaL_optinteger(L, 5, 0))); // Optional indoor parcel. if (!found) { return 0; } int iX, iY; pPathfinder->get_path_end(&iX, &iY); lua_pushinteger(L, iX + 1); lua_pushinteger(L, iY + 1); return 2; } int l_path_visit(lua_State* L) { ZoneScoped; pathfinder* pPathfinder = luaT_testuserdata(L); luaL_checktype(L, 6, LUA_TFUNCTION); bool found = pPathfinder->visit_objects( nullptr, static_cast(luaL_checkinteger(L, 2)) - 1, static_cast(luaL_checkinteger(L, 3)) - 1, static_cast(luaL_checkinteger(L, 4)), static_cast(luaL_checkinteger(L, 5)), L, 6, luaL_checkinteger(L, 4) == 0 ? true : false); lua_pushboolean(L, found); return 1; } } // namespace void lua_register_map(const lua_register_state* pState) { // Map { lua_class_binding lcb(pState, "map", l_map_new, lua_metatable::map); lcb.add_metamethod(l_map_persist, "persist", lua_metatable::anim); lcb.add_metamethod(l_map_depersist, "depersist", lua_metatable::anim); lcb.add_function(l_map_load, "load"); lcb.add_function(l_map_loadblank, "loadBlank"); lcb.add_function(l_map_save, "save"); lcb.add_function(l_map_getsize, "size"); lcb.add_function(l_map_get_player_count, "getPlayerCount"); lcb.add_function(l_map_set_player_count, "setPlayerCount"); lcb.add_function(l_map_get_player_camera, "getCameraTile"); lcb.add_function(l_map_set_player_camera, "setCameraTile"); lcb.add_function(l_map_get_player_heliport, "getHeliportTile"); lcb.add_function(l_map_set_player_heliport, "setHeliportTile"); lcb.add_function(l_map_getcell, "getCell"); lcb.add_function(l_map_gettemperature, "getCellTemperature"); lcb.add_function(l_map_get_room_id, "getRoomId"); lcb.add_function(l_map_getcellflags, "getCellFlags"); lcb.add_function(l_map_setcellflags, "setCellFlags"); lcb.add_function(l_map_getcellraw, "getCellRaw"); lcb.add_function(l_map_setcell, "setCell"); lcb.add_function(l_map_setwallflags, "setWallDrawFlags"); lcb.add_function(l_map_settemperaturedisplay, "setTemperatureDisplay"); lcb.add_function(l_map_updatetemperature, "updateTemperatures"); lcb.add_function(l_map_updateblueprint, "updateRoomBlueprint", lua_metatable::anims, lua_metatable::anim); lcb.add_function(l_map_updateshadows, "updateShadows"); lcb.add_function(l_map_updatepathfinding, "updatePathfinding"); lcb.add_function(l_map_mark_room, "markRoom"); lcb.add_function(l_map_unmark_room, "unmarkRoom"); lcb.add_function(l_map_set_sheet, "setSheet", lua_metatable::sheet); lcb.add_function(l_map_draw, "draw", lua_metatable::surface); lcb.add_function(l_map_hittest, "hitTestObjects", lua_metatable::anim); lcb.add_function(l_map_get_parcel_tilecount, "getParcelTileCount"); lcb.add_function(l_map_get_parcel_count, "getPlotCount"); lcb.add_function(l_map_set_parcel_owner, "setPlotOwner"); lcb.add_function(l_map_get_parcel_owner, "getPlotOwner"); lcb.add_function(l_map_is_parcel_purchasable, "isParcelPurchasable"); lcb.add_function(l_map_erase_thobs, "eraseObjectTypes"); lcb.add_function(l_map_remove_cell_thob, "removeObjectType"); lcb.add_function(l_map_get_litter_fraction, "getLitterFraction"); } // Pathfinder { lua_class_binding lcb(pState, "pathfinder", l_path_new, lua_metatable::pathfinder); lcb.add_metamethod(l_path_persist, "persist"); lcb.add_metamethod(l_path_depersist, "depersist"); lcb.add_function(l_path_distance, "findDistance"); lcb.add_function(l_path_is_reachable_from_hospital, "isReachableFromHospital"); lcb.add_function(l_path_path, "findPath"); lcb.add_function(l_path_idle, "findIdleTile"); lcb.add_function(l_path_visit, "findObject"); lcb.add_function(l_path_set_map, "setMap", lua_metatable::map); } } CorsixTH-0.70.0/CorsixTH/Src/th_lua_midi.cpp000066400000000000000000000152131522247547500205340ustar00rootroot00000000000000/* Copyright (c) 2025 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "lua.hpp" #include "midi_player.h" #include "th_lua.h" #include "th_lua_internal.h" #ifdef WITH_MIDI_DEVICE // Delegate object around midi_player with a close method // suitable for adapting C++ RAII to lua garbage collection. class th_lua_midi_player { public: th_lua_midi_player(std::string_view api, std::string_view port, bool use_sysex) : player(std::in_place, api, port, use_sysex) {} th_lua_midi_player(const th_lua_midi_player&) = delete; th_lua_midi_player& operator=(const th_lua_midi_player&) = delete; std::vector port_list() const { if (!player.has_value()) { throw std::runtime_error("th_lua_midi_player instance is closed"); } return player->port_list(); } void play_xmi(const unsigned char* xmiData, const size_t len) { if (!player.has_value()) { throw std::runtime_error("th_lua_midi_player instance is closed"); } player->play_xmi(xmiData, len); } void set_volume(const double volume) { if (!player.has_value()) { throw std::runtime_error("th_lua_midi_player instance is closed"); } player->set_volume(volume); } void stop() { if (!player.has_value()) { throw std::runtime_error("th_lua_midi_player instance is closed"); } player->stop(); } void pause() { if (!player.has_value()) { throw std::runtime_error("th_lua_midi_player instance is closed"); } player->pause(); } void resume() { if (!player.has_value()) { throw std::runtime_error("th_lua_midi_player instance is closed"); } player->resume(); } void close() { player.reset(); } private: std::optional player; }; #else class th_lua_midi_player {}; #endif namespace { #ifdef WITH_MIDI_DEVICE int l_midi_player_api_list(lua_State* L) { std::vector apis = midi_player::api_list(); lua_createtable(L, static_cast(apis.size()), 0); for (size_t i = 0; i < apis.size(); ++i) { lua_pushinteger(L, static_cast(i) + 1); lua_pushstring(L, apis[i].c_str()); lua_settable(L, -3); } return 1; } int l_midi_player_new(lua_State* L) { const char* apiChoice = luaL_optlstring(L, 2, "", nullptr); const char* portChoice = luaL_optlstring(L, 3, "", nullptr); bool sysexMasterVolume = lua_toboolean(L, 4); try { luaT_stdnew(L, luaT_environindex, true, apiChoice, portChoice, sysexMasterVolume); } catch (const std::invalid_argument& e) { return luaL_error(L, "Invalid MIDI API choice: %s", e.what()); } return 1; } int l_midi_port_list(lua_State* L) { th_lua_midi_player* midiPlayer = luaT_testuserdata(L); const std::vector portList = midiPlayer->port_list(); lua_createtable(L, static_cast(portList.size()), 0); for (size_t i = 0; i < portList.size(); ++i) { lua_pushinteger(L, static_cast(i) + 1); lua_pushstring(L, portList[i].c_str()); lua_settable(L, -3); } return 1; } int l_midi_player_play_xmi(lua_State* L) { th_lua_midi_player* midiPlayer = luaT_testuserdata(L); size_t xmiDataLength; const uint8_t* xmiData = luaT_checkfile(L, 2, &xmiDataLength); midiPlayer->play_xmi(xmiData, xmiDataLength); return 0; } int l_midi_player_set_volume(lua_State* L) { th_lua_midi_player* midiPlayer = luaT_testuserdata(L); double volume = static_cast(luaL_checknumber(L, 2)); midiPlayer->set_volume(volume); return 0; } int l_midi_player_stop(lua_State* L) { th_lua_midi_player* midiPlayer = luaT_testuserdata(L); midiPlayer->stop(); return 0; } int l_midi_player_pause(lua_State* L) { th_lua_midi_player* midiPlayer = luaT_testuserdata(L); midiPlayer->pause(); return 0; } int l_midi_player_resume(lua_State* L) { th_lua_midi_player* midiPlayer = luaT_testuserdata(L); midiPlayer->resume(); return 0; } int l_midi_player_close(lua_State* L) { th_lua_midi_player* midiPlayer = luaT_testuserdata(L); midiPlayer->close(); return 0; } #else // WITH_MIDI_DEVICE int l_midi_player_api_list(lua_State* L) { lua_newtable(L); return 1; } int l_midi_player_new(lua_State* L) { return luaL_error(L, "MIDI support not compiled in"); } int l_midi_port_list(lua_State* L) { return luaL_error(L, "MIDI support not compiled in"); } int l_midi_player_play_xmi(lua_State* L) { return luaL_error(L, "MIDI support not compiled in"); } int l_midi_player_set_volume(lua_State* L) { return luaL_error(L, "MIDI support not compiled in"); } int l_midi_player_stop(lua_State* L) { return luaL_error(L, "MIDI support not compiled in"); } int l_midi_player_pause(lua_State* L) { return luaL_error(L, "MIDI support not compiled in"); } int l_midi_player_resume(lua_State* L) { return luaL_error(L, "MIDI support not compiled in"); } int l_midi_player_close(lua_State* L) { return 0; } #endif // WITH_MIDI_DEVICE } // namespace void lua_register_midi(const lua_register_state* pState) { lua_class_binding lcb( pState, "midiPlayer", l_midi_player_new, lua_metatable::midi_player); // static lcb.add_function(l_midi_player_api_list, "getAvailableApis"); // member lcb.add_function(l_midi_port_list, "portList"); lcb.add_function(l_midi_player_play_xmi, "playXmi"); lcb.add_function(l_midi_player_set_volume, "setVolume"); lcb.add_function(l_midi_player_stop, "stop"); lcb.add_function(l_midi_player_pause, "pause"); lcb.add_function(l_midi_player_resume, "resume"); lcb.add_function(l_midi_player_close, "close"); } CorsixTH-0.70.0/CorsixTH/Src/th_lua_movie.cpp000066400000000000000000000125521522247547500207340ustar00rootroot00000000000000/* Copyright (c) 2012 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #ifdef WITH_TRACY #include #endif #include "lua.hpp" #include "th_gfx_sdl.h" #include "th_lua.h" #include "th_lua_internal.h" #include "th_movie.h" namespace { int l_movie_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } int l_movie_set_renderer(lua_State* L) { movie_player* pMovie = luaT_testuserdata(L); render_target* pRenderTarget = luaT_testuserdata(L, 2); pMovie->set_renderer(pRenderTarget->get_renderer()); return 0; } int l_movie_enabled(lua_State* L) { movie_player* pMovie = luaT_testuserdata(L); lua_pushboolean(L, pMovie->movies_enabled()); return 1; } int l_movie_load(lua_State* L) { ZoneScoped; bool loaded; const char* warning; movie_player* pMovie = luaT_testuserdata(L); const char* filepath = lua_tolstring(L, 2, nullptr); pMovie->clear_last_error(); loaded = pMovie->load(filepath); warning = pMovie->get_last_error(); lua_pushboolean(L, loaded); lua_pushstring(L, warning); return 2; } int l_movie_unload(lua_State* L) { ZoneScoped; movie_player* pMovie = luaT_testuserdata(L); pMovie->unload(); return 0; } int l_movie_play(lua_State* L) { ZoneScoped; const char* warning; movie_player* pMovie = luaT_testuserdata(L); pMovie->clear_last_error(); pMovie->play(static_cast(luaL_checkinteger(L, 2))); warning = pMovie->get_last_error(); lua_pushstring(L, warning); return 1; } int l_movie_stop(lua_State* L) { ZoneScoped; movie_player* pVideo = luaT_testuserdata(L); pVideo->stop(); return 0; } int l_movie_toggle_pause(lua_State* L) { ZoneScoped; movie_player* pVideo = luaT_testuserdata(L); pVideo->togglePause(); return 0; } int l_movie_get_native_height(lua_State* L) { movie_player* pMovie = luaT_testuserdata(L); lua_pushinteger(L, pMovie->get_native_height()); return 1; } int l_movie_get_native_width(lua_State* L) { movie_player* pMovie = luaT_testuserdata(L); lua_pushinteger(L, pMovie->get_native_width()); return 1; } int l_movie_has_audio_track(lua_State* L) { movie_player* pMovie = luaT_testuserdata(L); lua_pushboolean(L, pMovie->has_audio_track()); return 1; } int l_movie_get_length(lua_State* L) { movie_player* pMovie = luaT_testuserdata(L); lua_pushnumber(L, pMovie->get_movie_length()); return 1; } int l_movie_refresh(lua_State* L) { ZoneScoped; movie_player* pMovie = luaT_testuserdata(L); double pts = pMovie->refresh(SDL_Rect{static_cast(luaL_checkinteger(L, 2)), static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_checkinteger(L, 4)), static_cast(luaL_checkinteger(L, 5))}); lua_pushnumber(L, pts); return 1; } int l_movie_allocate_picture_buffer(lua_State* L) { ZoneScoped; movie_player* pMovie = luaT_testuserdata(L); pMovie->allocate_picture_buffer(); return 0; } int l_movie_deallocate_picture_buffer(lua_State* L) { ZoneScoped; movie_player* pMovie = luaT_testuserdata(L); pMovie->deallocate_picture_buffer(); return 0; } } // namespace void lua_register_movie(const lua_register_state* pState) { lua_class_binding lcb(pState, "moviePlayer", l_movie_new, lua_metatable::movie); lcb.add_function(l_movie_set_renderer, "setRenderer", lua_metatable::surface); lcb.add_function(l_movie_enabled, "getEnabled"); lcb.add_function(l_movie_load, "load"); lcb.add_function(l_movie_unload, "unload"); lcb.add_function(l_movie_play, "play"); lcb.add_function(l_movie_stop, "stop"); lcb.add_function(l_movie_toggle_pause, "togglePause"); lcb.add_function(l_movie_get_native_height, "getNativeHeight"); lcb.add_function(l_movie_get_native_width, "getNativeWidth"); lcb.add_function(l_movie_has_audio_track, "hasAudioTrack"); lcb.add_function(l_movie_get_length, "getLength"); lcb.add_function(l_movie_refresh, "refresh"); lcb.add_function(l_movie_allocate_picture_buffer, "allocatePictureBuffer"); lcb.add_function(l_movie_deallocate_picture_buffer, "deallocatePictureBuffer"); } CorsixTH-0.70.0/CorsixTH/Src/th_lua_sound.cpp000066400000000000000000000312511522247547500207420ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #include #include #include #include #include #include #include #include #include "lua.hpp" #include "lua_sdl.h" #include "th_lua.h" #include "th_lua_internal.h" #include "th_sound.h" namespace { struct map_timer_info { SDL_TimerID timer_id; Uint32 interval; Uint32 start_time; int* callback_id_ptr; }; std::array played_sound_callback_ids; int played_sound_callback_index = 0; std::map map_sound_timers; int l_soundarc_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } int l_soundarc_load(lua_State* L) { sound_archive* pArchive = luaT_testuserdata(L); size_t iDataLen; const uint8_t* pData = luaT_checkfile(L, 2, &iDataLen); if (pArchive->load_from_th_file(pData, iDataLen)) lua_pushboolean(L, 1); else lua_pushboolean(L, 0); return 1; } int l_soundarc_count(lua_State* L) { sound_archive* pArchive = luaT_testuserdata(L); lua_pushnumber(L, (lua_Number)pArchive->get_number_of_sounds()); return 1; } /** * Perform case-insensitive string compare. * @param s1 First string to compare. * @param s2 Second string to compare. * @return Negative number when \a s1 should be before \a s2, zero if both * string are equal, else a positive number. */ int ignorecase_cmp(const char* s1, const char* s2) { while (*s1 && *s2) { if (std::tolower(*s1) != std::tolower(*s2)) break; s1++; s2++; } return std::tolower(*s1) - std::tolower(*s2); } size_t l_soundarc_checkidx(lua_State* L, int iArg, sound_archive* pArchive) { if (lua_isnumber(L, iArg)) { size_t iIndex = (size_t)lua_tonumber(L, iArg); if (iIndex >= pArchive->get_number_of_sounds()) { lua_pushnil(L); lua_pushfstring(L, "Sound index out of " "bounds (%f is not in range [0, %d])", lua_tonumber(L, iArg), static_cast(pArchive->get_number_of_sounds()) - 1); return pArchive->get_number_of_sounds(); } return iIndex; } const char* sName = luaL_checkstring(L, iArg); lua_getfenv(L, 1); lua_pushvalue(L, iArg); lua_rawget(L, -2); if (lua_type(L, -1) == LUA_TNUMBER) { size_t iIndex = static_cast(lua_tointeger(L, -1)); lua_pop(L, 2); return iIndex; } lua_pop(L, 2); size_t iCount = pArchive->get_number_of_sounds(); for (size_t i = 0; i < iCount; ++i) { if (ignorecase_cmp(sName, pArchive->get_sound_name(i)) == 0) { lua_getfenv(L, 1); lua_pushvalue(L, iArg); lua_pushinteger(L, static_cast(i)); lua_settable(L, -3); lua_pop(L, 1); return i; } } lua_pushnil(L); lua_pushliteral(L, "File not found in sound archive: "); lua_pushvalue(L, iArg); lua_concat(L, 2); return pArchive->get_number_of_sounds(); } int l_soundarc_sound_name(lua_State* L) { sound_archive* pArchive = luaT_testuserdata(L); size_t iIndex = l_soundarc_checkidx(L, 2, pArchive); if (iIndex == pArchive->get_number_of_sounds()) return 2; lua_pushstring(L, pArchive->get_sound_name(iIndex)); return 1; } int l_soundarc_duration(lua_State* L) { sound_archive* pArchive = luaT_testuserdata(L); size_t iIndex = l_soundarc_checkidx(L, 2, pArchive); if (iIndex == pArchive->get_number_of_sounds()) return 2; size_t iDuration = pArchive->get_sound_duration(iIndex); lua_pushnumber( L, static_cast(iDuration) / static_cast(1000)); return 1; } int l_soundarc_data(lua_State* L) { sound_archive* pArchive = luaT_testuserdata(L); size_t iIndex = l_soundarc_checkidx(L, 2, pArchive); if (iIndex == pArchive->get_number_of_sounds()) return 2; SDL_RWops* pRWops = pArchive->load_sound(iIndex); if (!pRWops) return 0; size_t iLength = SDL_RWseek(pRWops, 0, SEEK_END); SDL_RWseek(pRWops, 0, SEEK_SET); // There is a potential leak of pRWops if either of these Lua calls cause // a memory error, but it isn't very likely, and this a debugging function // anyway, so it isn't very important. void* pBuffer = lua_newuserdata(L, iLength); lua_pushlstring(L, (const char*)pBuffer, SDL_RWread(pRWops, pBuffer, 1, iLength)); SDL_RWclose(pRWops); return 1; } int l_soundarc_sound_exists(lua_State* L) { sound_archive* pArchive = luaT_testuserdata(L); size_t iIndex = l_soundarc_checkidx(L, 2, pArchive); if (iIndex == pArchive->get_number_of_sounds()) lua_pushboolean(L, 0); else lua_pushboolean(L, 1); return 1; } int l_soundfx_new(lua_State* L) { luaT_stdnew(L, luaT_environindex, true); return 1; } int l_soundfx_set_archive(lua_State* L) { sound_player* pEffects = luaT_testuserdata(L); sound_archive* pArchive = luaT_testuserdata(L, 2); pEffects->populate_from(pArchive); lua_settop(L, 2); luaT_setenvfield(L, 1, "archive"); return 1; } int l_soundfx_set_sound_volume(lua_State* L) { sound_player* pEffects = luaT_testuserdata(L); pEffects->set_sound_effect_volume(luaL_checknumber(L, 2)); return 1; } int l_soundfx_set_sound_effects_on(lua_State* L) { sound_player* pEffects = luaT_testuserdata(L); pEffects->set_sound_effects_enabled(lua_toboolean(L, 2) != 0); return 1; } Uint32 played_sound_callback(Uint32 interval, void* param) { SDL_Event e; e.type = SDL_USEREVENT_SOUND_OVER; e.user.data1 = param; int iSoundID = *(static_cast(param)); SDL_RemoveTimer(map_sound_timers[iSoundID].timer_id); map_sound_timers.erase(iSoundID); SDL_PushEvent(&e); return interval; } int l_soundfx_play(lua_State* L) { sound_player* pEffects = luaT_testuserdata(L); // Get the current sound_archive. We don't want to disrupt the lua stack // so we put this after any possible argument. lua_settop(L, 8); lua_getfenv(L, 1); lua_pushliteral(L, "archive"); lua_rawget(L, 9); sound_archive* pArchive = (sound_archive*)lua_touserdata(L, 10); if (pArchive == nullptr) { return 0; } // l_soundarc_checkidx requires the archive at the bottom of the stack // so we swap with sound_player lua_replace(L, 1); size_t iIndex = l_soundarc_checkidx(L, 2, pArchive); if (iIndex == pArchive->get_number_of_sounds()) return 2; double volume = luaL_checknumber(L, 3); int loops = static_cast(luaL_optinteger(L, 8, 0)); uint32_t handle; if (lua_isnil(L, 4)) { handle = pEffects->play(iIndex, volume, loops); } else { handle = pEffects->play_at( iIndex, volume, static_cast(luaL_checkinteger(L, 4)), static_cast(luaL_checkinteger(L, 5)), loops); } // SDL SOUND_OVER Callback Timer: // 6: unusedPlayedCallbackID if (!lua_isnil(L, 6) && loops >= 0) { // 7: Callback delay int iPlayedCallbackDelay = 0; // ms if (!lua_isnil(L, 7)) iPlayedCallbackDelay = static_cast(luaL_checknumber(L, 7)); if (played_sound_callback_index == played_sound_callback_ids.size()) played_sound_callback_index = 0; played_sound_callback_ids[played_sound_callback_index] = static_cast(luaL_checkinteger(L, 6)); int& callback_id = played_sound_callback_ids[played_sound_callback_index]; Uint32 interval = static_cast(pArchive->get_sound_duration(iIndex) * (loops + 1) + iPlayedCallbackDelay); SDL_TimerID timersID = SDL_AddTimer(interval, played_sound_callback, &callback_id); map_sound_timers.emplace(std::pair( callback_id, {timersID, interval, SDL_GetTicks(), &callback_id})); played_sound_callback_index++; } lua_pushinteger(L, handle); return 1; } int l_soundfx_toggle_pause(lua_State* L) { sound_player* pEffects = luaT_testuserdata(L); const sound_player::toggle_pause_result pauseResult = pEffects->toggle_pause(static_cast(luaL_checkinteger(L, 2))); int callbackId = static_cast(luaL_optinteger(L, 3, -1)); if (auto itr = map_sound_timers.find(callbackId); itr != map_sound_timers.end()) { switch (pauseResult) { case sound_player::toggle_pause_result::paused: { Uint32 elapsed = SDL_GetTicks() - itr->second.start_time; itr->second.interval -= elapsed; SDL_RemoveTimer(itr->second.timer_id); break; } case sound_player::toggle_pause_result::resumed: itr->second.start_time = SDL_GetTicks(); itr->second.timer_id = SDL_AddTimer(itr->second.interval, played_sound_callback, itr->second.callback_id_ptr); break; case sound_player::toggle_pause_result::error: // Do nothing with callback on error break; }; } return 0; } int l_soundfx_stop(lua_State* L) { sound_player* pEffects = luaT_testuserdata(L); pEffects->stop(static_cast(luaL_checkinteger(L, 2))); int callbackId = static_cast(luaL_optinteger(L, 3, -1)); if (auto itr = map_sound_timers.find(callbackId); itr != map_sound_timers.end()) { SDL_RemoveTimer(itr->second.timer_id); map_sound_timers.erase(itr); } return 0; } int l_soundfx_is_playing(lua_State* L) { sound_player* pEffects = luaT_testuserdata(L); bool isPlaying = pEffects->is_playing(static_cast(luaL_checkinteger(L, 2))); lua_pushboolean(L, isPlaying); return 1; } int l_soundfx_set_camera(lua_State* L) { sound_player* pEffects = luaT_testuserdata(L); pEffects->set_camera(static_cast(luaL_checkinteger(L, 2)), static_cast(luaL_checkinteger(L, 3)), static_cast(luaL_checkinteger(L, 4))); return 0; } int l_soundfx_reserve_channel(lua_State* L) { int iChannel; sound_player* pEffects = luaT_testuserdata(L); iChannel = pEffects->reserve_channel(); lua_pushinteger(L, iChannel); return 1; } int l_soundfx_release_channel(lua_State* L) { sound_player* pEffects = luaT_testuserdata(L); pEffects->release_channel(static_cast(luaL_checkinteger(L, 2))); return 1; } } // namespace void lua_register_sound(const lua_register_state* pState) { // Sound Archive { lua_class_binding lcb(pState, "soundArchive", l_soundarc_new, lua_metatable::sound_archive); lcb.add_metamethod(l_soundarc_count, "len"); lcb.add_function(l_soundarc_load, "load"); lcb.add_function(l_soundarc_sound_name, "getFilename"); // Bad name, doesn't represent a file lcb.add_function(l_soundarc_duration, "getDuration"); lcb.add_function(l_soundarc_data, "getFileData"); // Bad name, doesn't represent a file lcb.add_function(l_soundarc_sound_exists, "soundExists"); } // Sound Effects { lua_class_binding lcb(pState, "soundEffects", l_soundfx_new, lua_metatable::sound_fx); lcb.add_function(l_soundfx_set_archive, "setSoundArchive", lua_metatable::sound_archive); lcb.add_function(l_soundfx_play, "play"); lcb.add_function(l_soundfx_toggle_pause, "togglePause"); lcb.add_function(l_soundfx_stop, "stop"); lcb.add_function(l_soundfx_is_playing, "isPlaying"); lcb.add_function(l_soundfx_set_sound_volume, "setSoundVolume"); lcb.add_function(l_soundfx_set_sound_effects_on, "setSoundEffectsOn"); lcb.add_function(l_soundfx_set_camera, "setCamera"); lcb.add_function(l_soundfx_reserve_channel, "reserveChannel"); lcb.add_function(l_soundfx_release_channel, "releaseChannel"); } } CorsixTH-0.70.0/CorsixTH/Src/th_lua_strings.cpp000066400000000000000000000505361522247547500213120ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "config.h" #include #include #include "lua.hpp" #include "persist_lua.h" #include "th_lua.h" #include "th_lua_internal.h" /* This file implements a string proxy system. A string proxy is a userdata which behaves like a string or a table, but records how it was made, and is serialised as this list of instructions, rather than as the resulting value. The application for this lies in persisting localised strings, as the language in use at depersist-time may be different to the one in use at persist-time. First note that such a proxy must be a userdata (in order to have custom persistance behaviour and a full complement of metamethods). At the same time, there is no C data which the userdata needs to hold, so the C part of the userdata can be empty. The Lua part of the userdata needs to hold the current proxied value and the instructions for recreating the value. When the proxied value is a table, then in addition, the Lua part of the userdata needs to store a cache of proxies for its children to avoid the situation of regularly creating new proxies for children. Due to how the persistance library deals with userdata, the Lua parts of these userdata cannot be held in the userdata's environment table, so instead the idiom of inside-out objects needs to be used. The principle idea of inside-out objects is that environment(obj).field becomes metatable(obj).field[obj] with the field table having weak values. Unfortunately, this causes weak table cycles, which are not handled well in Lua 5.1 (L5.2 uses ephemeron tables which fix this). Hence the Value and Cache weak tables are stored in the registry table, and the ReconstructInfo is stored as the userdata environment. */ class string_proxy {}; namespace { // We need 2 lightuserdata keys for naming the weak tables in the registry, // which we get by having 2 bytes of dummy global variables. uint8_t weak_table_keys[2] = {0}; inline void aux_push_weak_table(lua_State* L, int iIndex) { lua_pushlightuserdata(L, &weak_table_keys[iIndex]); lua_rawget(L, LUA_REGISTRYINDEX); } // Replace the value at the top of the stack with a userdata proxy int l_str_new_aux(lua_State* L) { luaT_stdnew(L); aux_push_weak_table(L, 0); lua_pushvalue(L, -2); lua_pushvalue(L, -4); lua_rawset(L, -3); lua_pop(L, 1); lua_replace(L, -2); return 1; } // Create a new root-level userdata proxy int l_str_new(lua_State* L) { // Pack extra arguments into a table int iNArgs = lua_gettop(L); lua_createtable(L, iNArgs - 2, 0); lua_replace(L, 1); // Value inserted by __call for (int i = iNArgs; i >= 3; --i) lua_rawseti(L, 1, i - 2); // Make proxy luaL_checkany(L, 2); l_str_new_aux(L); // Save extra arguments as reconstruction information lua_insert(L, 1); lua_setfenv(L, 1); return 1; } // Helper function to make an array in Lua void aux_mk_table(lua_State* L, std::vector literals, std::vector values) { // .size is a size_t, but lua only handles int indexes int literal_count = static_cast(literals.size()); int value_count = static_cast(values.size()); lua_createtable(L, literal_count + value_count, 0); for (int i = 0; i < literal_count; ++i) { const char* sStr = literals.at(i); lua_pushstring(L, sStr); lua_rawseti(L, -2, i + 1); } for (int i = 0; i < value_count; ++i) { int iValue = values.at(i); if (0 > iValue && iValue > LUA_REGISTRYINDEX) --iValue; lua_pushvalue(L, iValue); lua_rawseti(L, -2, i + literal_count + 1); } } // Helper function which pushes onto the stack a random key from the table // (previously) on the top of the stack. void aux_push_random_key(lua_State* L) { int iNKeys = 0; lua_newtable(L); lua_getglobal(L, "pairs"); lua_pushvalue(L, -3); lua_call(L, 1, 3); while (true) { lua_pushvalue(L, -3); lua_pushvalue(L, -3); lua_pushvalue(L, -3); lua_remove(L, -4); lua_call(L, 2, 1); if (lua_isnil(L, -1)) break; ++iNKeys; lua_pushvalue(L, -1); lua_rawseti(L, -5, iNKeys); } lua_pop(L, 3); lua_getglobal(L, "math"); lua_getfield(L, -1, "random"); lua_pushinteger(L, 1); lua_pushinteger(L, iNKeys); lua_call(L, 2, 1); lua_gettable(L, -3); lua_replace(L, -3); lua_pop(L, 1); } // __index metamethod handler. // For proxied tables, return proxies of children, preferably cached // For proxied strings, return methods int l_str_index(lua_State* L) { // Look up cached value, and return it if present aux_push_weak_table(L, 1); lua_pushvalue(L, 1); lua_gettable(L, 3); lua_replace(L, 3); lua_pushvalue(L, 2); lua_rawget(L, 3); if (!lua_isnil(L, 4)) return 1; lua_pop(L, 1); // Fetch the proxied value aux_push_weak_table(L, 0); lua_pushvalue(L, 1); lua_rawget(L, 4); lua_replace(L, 4); // Handle string methods if (lua_type(L, 4) == LUA_TSTRING) { lua_rawgeti(L, luaT_environindex, 4); lua_pushvalue(L, 2); lua_gettable(L, 5); return 1; } // Handle __random, as it shouldn't be cached if (lua_type(L, 2) == LUA_TSTRING) { size_t iLen; const char* sKey = lua_tolstring(L, 2, &iLen); if (iLen == 8 && std::strcmp(sKey, "__random") == 0) { aux_push_random_key(L); lua_replace(L, 2); lua_settop(L, 2); return l_str_index(L); } } // Fetch desired value lua_pushvalue(L, 2); lua_gettable(L, 4); lua_replace(L, 4); // Create new userdata proxy l_str_new_aux(L); aux_mk_table(L, std::vector{}, std::vector{1, 2}); lua_setfenv(L, 4); // Save to cache and return lua_pushvalue(L, 2); lua_pushvalue(L, 4); lua_rawset(L, 3); return 1; } // __newindex metamethod handler int l_str_newindex(lua_State* L) { return luaL_error(L, "String tables are read-only"); } // Generic string method handler // The name of the method is stored at upvalue 1 int l_str_func(lua_State* L) { int iArgCount = lua_gettop(L); lua_checkstack(L, iArgCount + 10); int iUserdataCount = 0; // Construct the resulting value aux_push_weak_table(L, 0); for (int i = 1; i <= iArgCount; ++i) { lua_pushvalue(L, i); if (lua_type(L, i) == LUA_TUSERDATA) { lua_rawget(L, iArgCount + 1); ++iUserdataCount; } } lua_pushvalue(L, luaT_upvalueindex(1)); lua_gettable(L, iArgCount + 2); lua_replace(L, iArgCount + 1); lua_call(L, iArgCount, 1); // Trivial case of result not depending upon any proxies if (iUserdataCount == 0) return 1; // Wrap result in a proxy l_str_new_aux(L); // Create and save reconstruction information lua_createtable(L, iArgCount + 1, 0); lua_pushvalue(L, luaT_upvalueindex(1)); lua_rawseti(L, -2, 1); for (int i = 1; i <= iArgCount; ++i) { lua_pushvalue(L, i); lua_rawseti(L, -2, i + 1); } lua_setfenv(L, -2); return 1; } // __concat metamethod handler // Simple (but inefficient) handling by converting concat into format int l_str_concat(lua_State* L) { int iParent = (lua_type(L, 1) == LUA_TUSERDATA) ? 1 : 2; lua_getfield(L, iParent, "format"); lua_insert(L, 1); lua_pushliteral(L, "%s%s"); lua_insert(L, 2); lua_call(L, 3, 1); return 1; } // pairs() metamethod handler int l_str_pairs(lua_State* L) { lua_settop(L, 1); lua_getfield(L, luaT_environindex, "__next"); lua_pushvalue(L, 1); lua_pushnil(L); return 3; } // ipairs() metamethod handler int l_str_ipairs(lua_State* L) { lua_settop(L, 1); lua_getfield(L, luaT_environindex, "__inext"); lua_pushvalue(L, 1); lua_pushinteger(L, 0); return 3; } // pairs() iterator function int l_str_next(lua_State* L) { luaL_checktype(L, 1, LUA_TUSERDATA); lua_settop(L, 2); // Fetch proxied value aux_push_weak_table(L, 0); lua_pushvalue(L, 1); lua_rawget(L, 3); // Remove layer of proxying done in Lua // NB: Assumes that pairs(t) returns 3 values: next, t, nil // In our case, the returned t should be the raw (unproxied) one lua_getglobal(L, "pairs"); lua_replace(L, 3); lua_call(L, 1, 2); // Get the next key lua_pushvalue(L, 2); lua_call(L, 2, 1); if (lua_isnil(L, -1)) return 0; // Get the (proxied) value which goes with the key lua_pushvalue(L, -1); lua_gettable(L, 1); return 2; } // __len metamethod handler int l_str_len(lua_State* L) { luaL_checktype(L, 1, LUA_TUSERDATA); // Fetch proxied value aux_push_weak_table(L, 0); lua_pushvalue(L, 1); lua_gettable(L, -2); // String tables are proxied in Lua, and Lua tables do not honour __len // so use ipairs to get the unproxied table to call __len on. if (lua_type(L, -1) == LUA_TTABLE) { lua_getglobal(L, "ipairs"); lua_insert(L, -2); lua_call(L, 1, 2); lua_replace(L, -2); } lua_pushinteger(L, (lua_Integer)lua_objlen(L, -1)); return 1; } // ipairs() iterator function int l_str_inext(lua_State* L) { lua_Integer n = luaL_checkinteger(L, 2) + 1; lua_settop(L, 1); l_str_len(L); lua_Integer len = lua_tointeger(L, -1); if (n > len) return 0; // Fetch proxied value lua_settop(L, 2); lua_pushvalue(L, 1); lua_gettable(L, 2); // Return new N and the proxied value which goes it lua_pushinteger(L, n); lua_pushinteger(L, n); lua_gettable(L, 1); return 2; } // tostring() metamethod handler for debugging / diagnostics int l_str_tostring(lua_State* L) { // Convert the proxy to a string, recursively calling tostring() lua_settop(L, 1); aux_push_weak_table(L, 0); lua_pushvalue(L, 1); lua_rawget(L, 2); if (lua_isnil(L, 3)) lua_pop(L, 2); else { lua_replace(L, 1); lua_pop(L, 1); } lua_getglobal(L, "tostring"); lua_insert(L, 1); lua_call(L, 1, 1); // Prepend a nice message indicating that proxying is being done lua_pushliteral(L, " Current value:"); lua_insert(L, 1); lua_concat(L, 2); return 1; } // __call metamethod handler // Required to support the compatibility hack for calling _S int l_str_call(lua_State* L) { luaL_checkany(L, 1); // Fetch the proxied value aux_push_weak_table(L, 0); lua_pushvalue(L, 1); lua_rawget(L, -2); // Forward the call onto the proxied value lua_replace(L, 1); lua_pop(L, 1); lua_call(L, lua_gettop(L) - 1, LUA_MULTRET); return lua_gettop(L); } // __lt (less-than) metamethod handler // Provided so that a list of localised strings can be sorted, which is used // to create nice user-interface listing of strings. Note that this will mean // that persist->change language->depersist will result in a "random" ordering // of the resulting list, but this is generally acceptable. int l_str_lt(lua_State* L) { luaL_checkany(L, 1); luaL_checkany(L, 2); lua_settop(L, 2); aux_push_weak_table(L, 0); lua_pushvalue(L, 1); lua_rawget(L, 3); lua_pushvalue(L, 2); lua_rawget(L, 3); lua_pushboolean(L, lua_lessthan(L, 4, 5)); return 1; } // __persist metamethod handler int l_str_persist(lua_State* L) { luaT_rotate(L, 1, -1); lua_persist_writer* pWriter = (lua_persist_writer*)lua_touserdata(L, 1); int self_index = 3; // Recreation instructions are stored in the environment, which is written // automatically. For compatibility, we write a simple boolean. lua_pushboolean(L, 1); pWriter->write_stack_object(4); lua_getfenv(L, self_index); // If there were no instructions (i.e. for the root object) then write the // value as well. if (lua_objlen(L, -1) == 0) { lua_pop(L, 2); aux_push_weak_table(L, 0); lua_pushvalue(L, self_index); lua_rawget(L, 4); // lookup self in the weak table pWriter->write_stack_object(5); // write that value } return 0; } // __depersist metamethod handler int l_str_depersist(lua_State* L) { lua_settop(L, 2); lua_insert(L, 1); lua_persist_reader* pReader = (lua_persist_reader*)lua_touserdata(L, 1); // Read the instructions for re-creating the value if (!pReader->read_stack_object()) return 0; if (lua_type(L, 3) == LUA_TBOOLEAN && lua_toboolean(L, 3) == 1) { // The current code uses a boolean marker to indicate that the // instructions were stored in the environment. Replace the marker // with them. lua_getfenv(L, 2); lua_replace(L, 3); } else { // Older versions of the code wrote the instructions here, or nil for // no instructions. Convert nil to the empty table, and store the // instructions as the userdata's environment. if (lua_type(L, 3) == LUA_TNIL) { lua_newtable(L); lua_replace(L, 3); } lua_pushvalue(L, 3); lua_setfenv(L, 2); } // Prepare t, k for saving the value aux_push_weak_table(L, 0); lua_pushvalue(L, 2); if (lua_objlen(L, 3) == 0) { // No instructions provided, so read the value itself if (!pReader->read_stack_object()) return 0; } else { // The instructions are a table of values; unpack them and replace // proxies with their values. bool bIsIndexOperation = false; int iCount = (int)lua_objlen(L, 3); lua_checkstack(L, iCount + 1); for (int i = 1; i <= iCount; ++i) { lua_rawgeti(L, 3, i); if (lua_type(L, -1) == LUA_TUSERDATA) { if (i == 1) bIsIndexOperation = true; lua_rawget(L, 4); } } if (iCount == 2 && bIsIndexOperation) { // If there were two values, and the first was a proxy, then the // instruction is to perform a table lookup. lua_gettable(L, -2); lua_replace(L, -2); } else { // Otherwise, the first value was a method or method name. if (lua_type(L, 6) != LUA_TFUNCTION) { lua_pushvalue(L, 6); lua_gettable(L, 7); lua_replace(L, 6); } lua_call(L, iCount - 1, 1); } } // Save the value lua_rawset(L, 4); return 0; } int l_str_reload_actual(lua_State* L) { // Reload a single string proxy // Stack: reload_cache proxy_to_reload idx && idx > LUA_REGISTRYINDEX); lua_pushvalue(L, bRel ? (idx - 1) : idx); lua_rawget(L, -2); lua_replace(L, bRel ? (idx - 2) : idx); lua_pop(L, 1); } return luaL_checklstring(L, idx, pLength); } void lua_register_strings(const lua_register_state* pState) { lua_State* L = pState->L; // Create Value, and Cache weak tables for inside-out objects. for (int i = 0; i <= 1; ++i) { lua_pushlightuserdata(L, &weak_table_keys[i]); lua_newtable(L); lua_createtable(L, 0, 1); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "k"); lua_rawset(L, -3); if (i == 1) { // Have the cache weak table automatically create caches on demand lua_pushliteral(L, "__index"); lua_createtable(L, 0, 1); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "kv"); lua_rawset(L, -3); luaT_pushcclosure(L, l_mk_cache, 1); lua_rawset(L, -3); } lua_setmetatable(L, -2); lua_rawset(L, LUA_REGISTRYINDEX); } // Give the Value weak table a friendly name for Lua code to use lua_pushliteral(L, "StringProxyValues"); lua_pushlightuserdata(L, &weak_table_keys[0]); lua_rawget(L, LUA_REGISTRYINDEX); lua_rawset(L, LUA_REGISTRYINDEX); lua_class_binding lcb(pState, "stringProxy", l_str_new, lua_metatable::string_proxy); // As we overwrite __index, move methods to lua_metatable::string_proxy[4] lua_getfield( L, pState->metatables[static_cast(lua_metatable::string_proxy)], "__index"); lua_rawseti( L, pState->metatables[static_cast(lua_metatable::string_proxy)], 4); lcb.add_metamethod(l_str_index, "index"); lcb.add_metamethod(l_str_newindex, "newindex"); lcb.add_metamethod(l_str_concat, "concat"); lcb.add_metamethod(l_str_len, "len"); lcb.add_metamethod(l_str_tostring, "tostring"); lcb.add_metamethod(l_str_persist, "persist"); lcb.add_metamethod(l_str_depersist, "depersist"); lcb.add_metamethod(l_str_call, "call"); lcb.add_metamethod(l_str_lt, "lt"); lcb.add_metamethod(l_str_pairs, "pairs"); lcb.add_metamethod(l_str_ipairs, "ipairs"); lcb.add_metamethod(l_str_next, "next"); lcb.add_metamethod(l_str_inext, "inext"); lcb.add_function(l_str_func, "format", "format"); lcb.add_function(l_str_func, "lower", "lower"); lcb.add_function(l_str_func, "rep", "rep"); lcb.add_function(l_str_func, "reverse", "reverse"); lcb.add_function(l_str_func, "upper", "upper"); lcb.add_function(l_str_unwrap, "_unwrap"); lcb.add_function(l_str_reload, "reload"); } CorsixTH-0.70.0/CorsixTH/Src/th_lua_ui.cpp000066400000000000000000000157211522247547500202330ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th_lua_ui.h" #include "config.h" #ifdef WITH_TRACY #include #endif #include #include "lua.hpp" #include "th_gfx_sdl.h" #include "th_lua.h" #include "th_lua_internal.h" #include "th_map.h" class abstract_window {}; namespace { int l_abstract_window_new(lua_State* L) { return luaL_error(L, "windowBase can only be used a base class - " " do not create a windowBase directly."); } inline bool is_wall(uint16_t blk) { return 82 <= (blk & 0xFF) && (blk & 0xFF) <= 164; } inline bool is_wall_drawn(const level_map& map, const map_tile& node, const map_tile& original_node, tile_layer n) { return map.get_tile_owner(&node) != 0 ? is_wall(node.tile_layers[n]) : is_wall(original_node.tile_layers[n]); } int l_town_map_draw(lua_State* L) { ZoneScoped; luaL_checktype(L, 1, LUA_TTABLE); level_map* pMap = luaT_testuserdata(L, 2); render_target* pCanvas = luaT_testuserdata(L, 3); int iCanvasXBase = static_cast(luaL_checkinteger(L, 4)); int iCanvasYBase = static_cast(luaL_checkinteger(L, 5)); bool bShowHeat = lua_toboolean(L, 6) != 0; int scale = static_cast(luaL_optinteger(L, 7, 1)); uint32_t iColourMyHosp = render_target::map_colour(0, 0, 70); uint32_t iColourWall = render_target::map_colour(255, 255, 255); uint32_t iColourDoor = render_target::map_colour(200, 200, 200); uint32_t iColourPurchasable = render_target::map_colour(255, 0, 0); const map_tile* pNode = pMap->get_tile_unchecked(0, 0); const map_tile* pOriginalNode = pMap->get_original_tile_unchecked(0, 0); int iCanvasY = iCanvasYBase + 3 * scale; int iMapWidth = pMap->get_width(); for (int iY = 0; iY < pMap->get_height(); ++iY, iCanvasY += 3 * scale) { int iCanvasX = iCanvasXBase; for (int iX = 0; iX < iMapWidth; ++iX, ++pNode, ++pOriginalNode, iCanvasX += 3 * scale) { if (pOriginalNode->flags.hospital) { uint32_t iColour = iColourMyHosp; if (!(pNode->flags.hospital)) { // TODO: Replace 1 with player number if (pMap->is_parcel_purchasable(pNode->iParcelId, 1)) iColour = iColourPurchasable; else goto dont_paint_tile; } else if (bShowHeat) { uint16_t iTemp = pMap->get_tile_temperature(pNode); if (iTemp < 5200) // Less than 4 degrees iTemp = 0; else if (iTemp > 32767) // More than 25 degrees iTemp = 255; else // NB: 108 == (32767 - 5200) / 255 iTemp = static_cast((iTemp - 5200) / 108); constexpr uint16_t minOkTemp = 140; constexpr uint16_t maxOkTemp = 180; uint8_t iR = 0; uint8_t iG = 0; uint8_t iB = 0; switch (pMap->get_temperature_display()) { case temperature_theme::multi_colour: iB = 70; if (iTemp < minOkTemp) { iB = map_color_channel(0, minOkTemp - 1, iTemp, 200, 60); } else if (iTemp < maxOkTemp) { iG = map_color_channel(minOkTemp, maxOkTemp - 1, iTemp, 140, 224); } else { iR = map_color_channel(maxOkTemp, 255, iTemp, 224, 255); } break; case temperature_theme::yellow_red: if (iTemp < minOkTemp) { // Below 11 degrees iR = map_color_channel(0, minOkTemp - 1, iTemp, 100, 213); iG = map_color_channel(0, minOkTemp - 1, iTemp, 80, 180); } else { iR = map_color_channel(minOkTemp, 255, iTemp, 223, 235); iG = map_color_channel(minOkTemp, 255, iTemp, 184, 104); iB = map_color_channel(minOkTemp, 255, iTemp, 0, 53); } break; case temperature_theme::red: iR = static_cast(iTemp); iB = 70; break; } iColour = render_target::map_colour(iR, iG, iB); } pCanvas->fill_rect(iColour, iCanvasX, iCanvasY, 3 * scale, 3 * scale); } dont_paint_tile: if (is_wall_drawn(*pMap, *pNode, *pOriginalNode, tile_layer::north_wall)) { pCanvas->fill_rect(iColourWall, iCanvasX, iCanvasY, 3 * scale, scale); // Draw entrance door auto l = (pNode - 1)->objects; if (!l.empty() && l.front() == object_type::entrance_right_door) { if (pNode->flags.hospital) { pCanvas->fill_rect(iColourDoor, iCanvasX - 6 * scale, iCanvasY - 2 * scale, 9 * scale, 3 * scale); } else { pCanvas->fill_rect(iColourDoor, iCanvasX - 6 * scale, iCanvasY, 9 * scale, 3 * scale); } } } if (is_wall_drawn(*pMap, *pNode, *pOriginalNode, tile_layer::west_wall)) { pCanvas->fill_rect(iColourWall, iCanvasX, iCanvasY, scale, 3 * scale); // Draw entrance door auto l = (pNode - iMapWidth)->objects; if (!l.empty() && l.front() == object_type::entrance_right_door) { if (pNode->flags.hospital) { pCanvas->fill_rect(iColourDoor, iCanvasX - 2 * scale, iCanvasY - 6 * scale, 3 * scale, 9 * scale); } else { pCanvas->fill_rect(iColourDoor, iCanvasX, iCanvasY - 6 * scale, 3 * scale, 9 * scale); } } } } } return 0; } } // namespace void lua_register_ui(const lua_register_state* pState) { // WindowBase lua_class_binding lcb(pState, "windowHelpers", l_abstract_window_new, lua_metatable::window_base); lcb.add_function(l_town_map_draw, "townMapDraw", lua_metatable::map, lua_metatable::surface); } CorsixTH-0.70.0/CorsixTH/Src/th_lua_ui.h000066400000000000000000000022661522247547500177000ustar00rootroot00000000000000#ifndef CORSIX_TH_TH_LUA_UI_H_ #define CORSIX_TH_TH_LUA_UI_H_ #include "config.h" #include #include //! Remap a value between low and high to an output between start and end. /*! * Perform linear scaling of a value from one range to another. This function * is primarily intended for mapping bytes to color channel values. * * @param low Lower bound of input range. Must be less than high. [0-255] * @param high Upper bound of input range. Must be greater than low. [0-255] * @param val Value in [low, high] to scale. * @param start Lower bound of output range. May be greater than end. [0-255] * @param end Upper bound of output range. May be less than start. [0-255] * @return Scaled value in [start, end] */ constexpr uint8_t map_color_channel(int low, int high, int val, int start, int end) { assert(low < high); assert(start >= 0 && start <= 0xFF); assert(end >= 0 && end <= 0xFF); if (val <= low) { return start; } if (val >= high) { return end; } return static_cast(start + (end - start) * (val - low) / (high - low)); } #endif // CORSIX_TH_TH_LUA_UI_H_ CorsixTH-0.70.0/CorsixTH/Src/th_map.cpp000066400000000000000000001701451522247547500175340ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th_map.h" #include "config.h" #ifdef WITH_TRACY #include #endif #include #include #include #include #include #include #include #include "lua.hpp" #include "persist_lua.h" #include "run_length_encoder.h" #include "th.h" #include "th_gfx.h" #include "th_gfx_sdl.h" #include "th_lua.h" #include "th_map_overlays.h" constexpr int max_player_count = 4; constexpr int default_width = 128; constexpr int default_height = 128; map_tile_flags& map_tile_flags::operator=(uint32_t raw) { using flags = map_tile_flags::key; passable = (raw & static_cast(flags::passable_mask)) != 0; can_travel_n = (raw & static_cast(flags::can_travel_n_mask)) != 0; can_travel_e = (raw & static_cast(flags::can_travel_e_mask)) != 0; can_travel_s = (raw & static_cast(flags::can_travel_s_mask)) != 0; can_travel_w = (raw & static_cast(flags::can_travel_w_mask)) != 0; hospital = (raw & static_cast(flags::hospital_mask)) != 0; buildable = (raw & static_cast(flags::buildable_mask)) != 0; passable_if_not_for_blueprint = (raw & static_cast(flags::passable_if_not_for_blueprint_mask)) != 0; room = (raw & static_cast(flags::room_mask)) != 0; shadow_half = (raw & static_cast(flags::shadow_half_mask)) != 0; shadow_full = (raw & static_cast(flags::shadow_full_mask)) != 0; shadow_wall = (raw & static_cast(flags::shadow_wall_mask)) != 0; door_north = (raw & static_cast(flags::door_north_mask)) != 0; door_west = (raw & static_cast(flags::door_west_mask)) != 0; do_not_idle = (raw & static_cast(flags::do_not_idle_mask)) != 0; tall_north = (raw & static_cast(flags::tall_north_mask)) != 0; tall_west = (raw & static_cast(flags::tall_west_mask)) != 0; buildable_n = (raw & static_cast(flags::buildable_n_mask)) != 0; buildable_e = (raw & static_cast(flags::buildable_e_mask)) != 0; buildable_s = (raw & static_cast(flags::buildable_s_mask)) != 0; buildable_w = (raw & static_cast(flags::buildable_w_mask)) != 0; return *this; } bool& map_tile_flags::operator[](map_tile_flags::key key) { using flags = map_tile_flags::key; switch (key) { case flags::passable_mask: return passable; case flags::can_travel_n_mask: return can_travel_n; case flags::can_travel_e_mask: return can_travel_e; case flags::can_travel_s_mask: return can_travel_s; case flags::can_travel_w_mask: return can_travel_w; case flags::hospital_mask: return hospital; case flags::buildable_mask: return buildable; case flags::passable_if_not_for_blueprint_mask: return passable_if_not_for_blueprint; case flags::room_mask: return room; case flags::shadow_half_mask: return shadow_half; case flags::shadow_full_mask: return shadow_full; case flags::shadow_wall_mask: return shadow_wall; case flags::door_north_mask: return door_north; case flags::door_west_mask: return door_west; case flags::do_not_idle_mask: return do_not_idle; case flags::tall_north_mask: return tall_north; case flags::tall_west_mask: return tall_west; case flags::buildable_n_mask: return buildable_n; case flags::buildable_e_mask: return buildable_e; case flags::buildable_s_mask: return buildable_s; case flags::buildable_w_mask: return buildable_w; default: throw std::out_of_range("map tile flag is invalid"); } } const bool& map_tile_flags::operator[](map_tile_flags::key key) const { using flags = map_tile_flags::key; switch (key) { case flags::passable_mask: return passable; case flags::can_travel_n_mask: return can_travel_n; case flags::can_travel_e_mask: return can_travel_e; case flags::can_travel_s_mask: return can_travel_s; case flags::can_travel_w_mask: return can_travel_w; case flags::hospital_mask: return hospital; case flags::buildable_mask: return buildable; case flags::passable_if_not_for_blueprint_mask: return passable_if_not_for_blueprint; case flags::room_mask: return room; case flags::shadow_half_mask: return shadow_half; case flags::shadow_full_mask: return shadow_full; case flags::shadow_wall_mask: return shadow_wall; case flags::door_north_mask: return door_north; case flags::door_west_mask: return door_west; case flags::do_not_idle_mask: return do_not_idle; case flags::tall_north_mask: return tall_north; case flags::tall_west_mask: return tall_west; case flags::buildable_n_mask: return buildable_n; case flags::buildable_e_mask: return buildable_e; case flags::buildable_s_mask: return buildable_s; case flags::buildable_w_mask: return buildable_w; default: throw std::out_of_range("map tile flag is invalid"); } } map_tile_flags::operator uint32_t() const { using flags = map_tile_flags::key; uint32_t raw = 0; if (passable) { raw |= static_cast(flags::passable_mask); } if (can_travel_n) { raw |= static_cast(flags::can_travel_n_mask); } if (can_travel_e) { raw |= static_cast(flags::can_travel_e_mask); } if (can_travel_s) { raw |= static_cast(flags::can_travel_s_mask); } if (can_travel_w) { raw |= static_cast(flags::can_travel_w_mask); } if (hospital) { raw |= static_cast(flags::hospital_mask); } if (buildable) { raw |= static_cast(flags::buildable_mask); } if (passable_if_not_for_blueprint) { raw |= static_cast(flags::passable_if_not_for_blueprint_mask); } if (room) { raw |= static_cast(flags::room_mask); } if (shadow_half) { raw |= static_cast(flags::shadow_half_mask); } if (shadow_full) { raw |= static_cast(flags::shadow_full_mask); } if (shadow_wall) { raw |= static_cast(flags::shadow_wall_mask); } if (door_north) { raw |= static_cast(flags::door_north_mask); } if (door_west) { raw |= static_cast(flags::door_west_mask); } if (do_not_idle) { raw |= static_cast(flags::do_not_idle_mask); } if (tall_north) { raw |= static_cast(flags::tall_north_mask); } if (tall_west) { raw |= static_cast(flags::tall_west_mask); } if (buildable_n) { raw |= static_cast(flags::buildable_n_mask); } if (buildable_e) { raw |= static_cast(flags::buildable_e_mask); } if (buildable_s) { raw |= static_cast(flags::buildable_s_mask); } if (buildable_w) { raw |= static_cast(flags::buildable_w_mask); } return raw; } level_map::~level_map() { set_overlay(nullptr, false); delete[] cells; delete[] original_cells; delete[] plot_owner; delete[] parcel_tile_counts; delete[] parcel_adjacency_matrix; delete[] purchasable_matrix; } void level_map::set_overlay(map_overlay* pOverlay, bool bTakeOwnership) { if (overlay && owns_overlay) { delete overlay; } overlay = pOverlay; owns_overlay = bTakeOwnership; } bool level_map::set_size(int iWidth, int iHeight) { if (iWidth <= 0 || iHeight <= 0) { return false; } delete[] cells; delete[] original_cells; delete[] parcel_adjacency_matrix; delete[] purchasable_matrix; width = iWidth; height = iHeight; cells = nullptr; cells = new (std::nothrow) map_tile[iWidth * iHeight]; original_cells = nullptr; original_cells = new (std::nothrow) map_tile[iWidth * iHeight]; parcel_adjacency_matrix = nullptr; purchasable_matrix = nullptr; if (cells == nullptr || original_cells == nullptr) { delete[] cells; delete[] original_cells; original_cells = nullptr; cells = nullptr; width = 0; height = 0; return false; } return true; } namespace { // NB: http://connection-endpoint.de/th-format-specification/ // gives a (slightly) incorrect array, which is why it differs from this one. constexpr uint8_t gs_iTHMapBlockLUT[256] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x84, 0x85, 0x88, 0x89, 0x8C, 0x8D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x8F, 0xD5, 0xD6, 0x9C, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xB3, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xB3, 0xB3, 0xB4, 0xB4, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0x00, 0x82, 0x83, 0x86, 0x87, 0x8A, 0x8B, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x00, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; } // namespace void level_map::read_tile_index(const uint8_t* pData, int& iX, int& iY) const { int iIndex = static_cast(pData[1]); iIndex = iIndex * 0x100 + static_cast(pData[0]); iX = iIndex % width; iY = iIndex / width; } void level_map::write_tile_index(uint8_t* pData, int iX, int iY) const { uint16_t iIndex = static_cast(iY * width + iX); pData[0] = static_cast(iIndex & 0xFF); pData[1] = static_cast(iIndex >> 8); } bool level_map::load_blank() { if (!set_size(default_width, default_height)) { return false; } player_count = 1; initial_camera_x[0] = initial_camera_y[0] = 63; heliport_x[0] = heliport_y[0] = 0; parcel_count = 1; delete[] plot_owner; delete[] parcel_tile_counts; plot_owner = nullptr; parcel_tile_counts = nullptr; map_tile* pNode = cells; map_tile* pOriginalNode = original_cells; for (int iY = 0; iY < height; ++iY) { for (int iX = 0; iX < width; ++iX, ++pNode, ++pOriginalNode) { pNode->tile_layers[tile_layer::ground] = static_cast(2 + (iX % 2)); } } plot_owner = new int[1]; plot_owner[0] = 0; parcel_tile_counts = new int[1]; parcel_tile_counts[0] = height * width; return true; } namespace { inline bool is_divider_wall(const uint8_t byte) { return (byte >> 1) == 70; } } // namespace bool level_map::load_from_th_file(const uint8_t* pData, size_t iDataLength, map_load_object_callback_fn fnObjectCallback, void* pCallbackToken) { const size_t camera_offset = 163876; const size_t heliport_offset = 163884; const size_t parcel_offset = 131106; if (iDataLength < 163948 || !set_size(default_width, default_height)) { return false; } player_count = pData[0]; if (player_count < 1) player_count = 1; if (player_count > max_player_count) player_count = max_player_count; for (int i = 0; i < player_count; ++i) { read_tile_index(pData + camera_offset + (i * 2), initial_camera_x[i], initial_camera_y[i]); read_tile_index(pData + heliport_offset + (i * 2), heliport_x[i], heliport_y[i]); } parcel_count = 0; delete[] plot_owner; delete[] parcel_tile_counts; plot_owner = nullptr; parcel_tile_counts = nullptr; map_tile* pNode = cells; map_tile* pOriginalNode = original_cells; const uint8_t* pParcel = pData + parcel_offset; pData += 34; pNode->objects.clear(); for (int iY = 0; iY < height; ++iY) { for (int iX = 0; iX < width; ++iX) { std::copy_n(pData, map_tile::raw_length, pNode->raw); uint8_t iBaseTile = gs_iTHMapBlockLUT[pData[2]]; pNode->flags.can_travel_n = true; pNode->flags.can_travel_e = true; pNode->flags.can_travel_s = true; pNode->flags.can_travel_w = true; if (iX == 0) { pNode->flags.can_travel_w = false; } else if (iX == width - 1) { pNode->flags.can_travel_e = false; } if (iY == 0) { pNode->flags.can_travel_n = false; } else if (iY == height - 1) { pNode->flags.can_travel_s = false; } pNode->tile_layers[tile_layer::ground] = iBaseTile; if (pData[3] == 0 || is_divider_wall(pData[3])) { // Tiles 71, 72 and 73 (pond foliage) are used as floor tiles, // but are too tall to be floor tiles, so move them to a wall, // and replace the floor with something similar (pond base). if (71 <= iBaseTile && iBaseTile <= 73) { pNode->tile_layers[tile_layer::north_wall] = iBaseTile; pNode->tile_layers[tile_layer::ground] = 69; } else { pNode->tile_layers[tile_layer::north_wall] = 0; } } else { pNode->tile_layers[tile_layer::north_wall] = gs_iTHMapBlockLUT[pData[3]]; pNode->flags.can_travel_n = false; if (iY != 0) { pNode[-this->width].flags.can_travel_s = false; } } if (pData[4] == 0 || is_divider_wall(pData[4])) { pNode->tile_layers[tile_layer::west_wall] = 0; } else { pNode->tile_layers[tile_layer::west_wall] = gs_iTHMapBlockLUT[pData[4]]; pNode->flags.can_travel_w = false; if (iX != 0) { pNode[-1].flags.can_travel_e = false; } } pNode->iRoomId = 0; pNode->iParcelId = bytes_to_uint16_le(pParcel); if (pNode->iParcelId >= parcel_count) { parcel_count = pNode->iParcelId + 1; } if (!(pData[5] & 1)) { pNode->flags.passable = true; if (!(pData[7] & 16)) { pNode->flags.hospital = true; if (!(pData[5] & 2)) { pNode->flags.buildable = true; } if (!(pData[5] & 4) || pData[1] == 0) { pNode->flags.buildable_n = true; } if (!(pData[5] & 8) || pData[1] == 0) { pNode->flags.buildable_e = true; } if (!(pData[5] & 16) || pData[1] == 0) { pNode->flags.buildable_s = true; } if (!(pData[5] & 32) || pData[1] == 0) { pNode->flags.buildable_w = true; } } } *pOriginalNode = *pNode; if (is_divider_wall(pData[3])) { pOriginalNode->tile_layers[tile_layer::north_wall] = gs_iTHMapBlockLUT[pData[3]]; } if (is_divider_wall(pData[4])) { pOriginalNode->tile_layers[tile_layer::west_wall] = gs_iTHMapBlockLUT[pData[4]]; } if (pData[1] != 0 && fnObjectCallback != nullptr) { fnObjectCallback(pCallbackToken, iX, iY, static_cast(pData[1]), pData[0]); } ++pNode; ++pOriginalNode; pData += 8; pParcel += 2; } } plot_owner = new int[parcel_count]; plot_owner[0] = 0; for (int i = 1; i < parcel_count; ++i) { plot_owner[i] = 1; } update_shadows(); parcel_tile_counts = new int[parcel_count]; parcel_tile_counts[0] = 0; for (int i = 1; i < parcel_count; ++i) { parcel_tile_counts[i] = count_parcel_tiles(i); } return true; } void level_map::save(const std::string& filename) { uint8_t aBuffer[256] = {0}; int iBufferNext = 0; std::ofstream os(filename, std::ios_base::trunc | std::ios_base::binary); // Header aBuffer[0] = static_cast(player_count); // TODO: Determine correct contents for the next 33 bytes os.write(reinterpret_cast(aBuffer), 34); uint8_t aReverseBlockLUT[256] = {0}; for (int i = 0; i < 256; ++i) { aReverseBlockLUT[gs_iTHMapBlockLUT[i]] = static_cast(i); } aReverseBlockLUT[0] = 0; for (map_tile *pNode = cells, *pLimitNode = pNode + width * height; pNode != pLimitNode; ++pNode) { // TODO: Nicer system for saving object data aBuffer[iBufferNext++] = pNode->flags.tall_west ? 1 : 0; aBuffer[iBufferNext++] = static_cast(pNode->objects.empty() ? object_type::no_object : pNode->objects.front()); // Blocks aBuffer[iBufferNext++] = aReverseBlockLUT[pNode->tile_layers[tile_layer::ground] & 0xFF]; aBuffer[iBufferNext++] = aReverseBlockLUT[pNode->tile_layers[tile_layer::north_wall] & 0xFF]; aBuffer[iBufferNext++] = aReverseBlockLUT[pNode->tile_layers[tile_layer::west_wall] & 0xFF]; // Flags (TODO: Set a few more flag bits?) uint8_t iFlags = 63; if (pNode->flags.passable) { iFlags ^= 1; } if (pNode->flags.buildable) { iFlags ^= 2; } if (pNode->flags.buildable_n) { iFlags ^= 4; } if (pNode->flags.buildable_e) { iFlags ^= 8; } if (pNode->flags.buildable_s) { iFlags ^= 16; } if (pNode->flags.buildable_w) { iFlags ^= 32; } aBuffer[iBufferNext++] = iFlags; aBuffer[iBufferNext++] = 0; iFlags = 16; if (pNode->flags.hospital) { iFlags ^= 16; } aBuffer[iBufferNext++] = iFlags; if (iBufferNext == sizeof(aBuffer)) { os.write(reinterpret_cast(aBuffer), sizeof(aBuffer)); iBufferNext = 0; } } for (map_tile *pNode = cells, *pLimitNode = pNode + width * height; pNode != pLimitNode; ++pNode) { aBuffer[iBufferNext++] = static_cast(pNode->iParcelId & 0xFF); aBuffer[iBufferNext++] = static_cast(pNode->iParcelId >> 8); if (iBufferNext == sizeof(aBuffer)) { os.write(reinterpret_cast(aBuffer), sizeof(aBuffer)); iBufferNext = 0; } } // TODO: What are these two bytes? aBuffer[iBufferNext++] = 3; aBuffer[iBufferNext++] = 0; os.write(reinterpret_cast(aBuffer), iBufferNext); iBufferNext = 0; std::memset(aBuffer, 0, 56); for (int i = 0; i < player_count; ++i) { write_tile_index(aBuffer + iBufferNext, initial_camera_x[i], initial_camera_y[i]); write_tile_index(aBuffer + iBufferNext + 8, heliport_x[i], heliport_y[i]); iBufferNext += 2; } os.write(reinterpret_cast(aBuffer), 16); std::memset(aBuffer, 0, 16); // TODO: What are these 56 bytes? os.write(reinterpret_cast(aBuffer), 56); os.close(); } namespace { //! Add or remove divider wall for the given tile /*! If the given 'pNode' has an indoor border to another parcel in the 'delta' direction: * A divider wall is added in the layer specified by 'block' if the owners of the two parcels are not the same, or * A divider wall is removed if the owners are the same and 'iParcelId' is involved. \return True if a border was removed, false otherwise */ bool addRemoveDividerWalls(level_map* pMap, map_tile* pNode, const map_tile* pOriginalNode, int iXY, int delta, tile_layer layer, int iParcelId) { if (iXY > 0 && pOriginalNode->flags.hospital && pOriginalNode[-delta].flags.hospital && pNode->iParcelId != pNode[-delta].iParcelId) { int iOwner = pMap->get_parcel_owner(pNode->iParcelId); int iOtherOwner = pMap->get_parcel_owner(pNode[-delta].iParcelId); if (iOwner != iOtherOwner) { pNode->tile_layers[layer] = layer + (iOwner ? 143 : 141); } else if (pNode->iParcelId == iParcelId || pNode[-delta].iParcelId == iParcelId) { pNode->tile_layers[layer] = 0; return true; } } return false; } } // namespace std::vector> level_map::set_parcel_owner(int iParcelId, int iOwner) { std::vector> vSplitTiles; if (iParcelId <= 0 || parcel_count <= iParcelId || iOwner < 0) { return vSplitTiles; } plot_owner[iParcelId] = iOwner; map_tile* pNode = cells; const map_tile* pOriginalNode = original_cells; for (int iY = 0; iY < this->height; ++iY) { for (int iX = 0; iX < this->width; ++iX, ++pNode, ++pOriginalNode) { if (pNode->iParcelId == iParcelId) { if (iOwner != 0) { pNode->tile_layers[tile_layer::ground] = pOriginalNode->tile_layers[tile_layer::ground]; pNode->tile_layers[tile_layer::north_wall] = pOriginalNode->tile_layers[tile_layer::north_wall]; pNode->tile_layers[tile_layer::west_wall] = pOriginalNode->tile_layers[tile_layer::west_wall]; pNode->flags = pOriginalNode->flags; } else { // Nicely mown grass pattern pNode->tile_layers[tile_layer::ground] = static_cast(((iX & 1) << 1) + 1); pNode->tile_layers[tile_layer::north_wall] = 0; pNode->tile_layers[tile_layer::west_wall] = 0; pNode->flags = {}; // Random decoration if (((iX | iY) & 0x7) == 0) { int iWhich = (iX ^ iY) % 9; pNode->tile_layers[tile_layer::north_wall] = static_cast(192 + iWhich); } } } if (addRemoveDividerWalls(this, pNode, pOriginalNode, iX, 1, tile_layer::west_wall, iParcelId)) { vSplitTiles.emplace_back(iX, iY); } if (addRemoveDividerWalls(this, pNode, pOriginalNode, iY, this->width, tile_layer::north_wall, iParcelId)) { vSplitTiles.emplace_back(iX, iY); } } } update_pathfinding(); update_shadows(); update_purchase_matrix(); return vSplitTiles; } namespace { void test_adj(bool* parcel_adjacency_matrix, int parcel_count, const map_tile* original_node, const map_tile* tested_node) { if (original_node->iParcelId != tested_node->iParcelId && original_node->flags.passable && tested_node->flags.passable) { // These cells are part of two different parcels, and they are passable, so // we consider them adjacent. Update the adjacency matrix accordingly. // NB: the matrix is always symmetrical such that xy = yx. parcel_adjacency_matrix[original_node->iParcelId * parcel_count + tested_node->iParcelId] = true; parcel_adjacency_matrix[original_node->iParcelId + tested_node->iParcelId * parcel_count] = true; } } } // namespace void level_map::make_adjacency_matrix() { if (parcel_adjacency_matrix != nullptr) { return; } // The adjacency matrix tracks which parcels are adjacent to each other. // Initialize the adjacency matrix to the identity matrix - i.e. every // parcel is adjacent to itself. parcel_adjacency_matrix = new bool[parcel_count * parcel_count]; for (int i = 0; i < parcel_count; ++i) { for (int j = 0; j < parcel_count; ++j) { parcel_adjacency_matrix[i * parcel_count + j] = (i == j); } } // Update the adjacency matrix using the parcel IDs of each cell. for (int iY = 0; iY < this->height; ++iY) { for (int iX = 0; iX < this->width; ++iX) { const map_tile* thisCell = get_original_tile(iX, iY); // Test the cell immediately to the left, and above it. if (iX > 0) { const map_tile* testedCell = get_original_tile(iX - 1, iY); test_adj(parcel_adjacency_matrix, parcel_count, thisCell, testedCell); } if (iY > 0) { const map_tile* testedCell = get_original_tile(iX, iY - 1); test_adj(parcel_adjacency_matrix, parcel_count, thisCell, testedCell); } } } } void level_map::make_purchase_matrix() { if (purchasable_matrix != nullptr) { return; // Already made } purchasable_matrix = new bool[max_player_count * parcel_count]; update_purchase_matrix(); } void level_map::update_purchase_matrix() { if (purchasable_matrix == nullptr) { return; // Nothing to update } for (int iPlayer = 1; iPlayer <= max_player_count; ++iPlayer) { for (int iParcel = 0; iParcel < parcel_count; ++iParcel) { bool bPurchasable = false; if (iParcel != 0 && plot_owner[iParcel] == 0) { for (int iParcel2 = 0; iParcel2 < parcel_count; ++iParcel2) { if ((plot_owner[iParcel2] == iPlayer) || (iParcel2 == 0)) { if (are_parcels_adjacent(iParcel, iParcel2)) { bPurchasable = true; break; } } } } purchasable_matrix[iParcel * max_player_count + iPlayer - 1] = bPurchasable; } } } bool level_map::are_parcels_adjacent(int iParcel1, int iParcel2) { if (0 <= iParcel1 && iParcel1 < parcel_count && 0 <= iParcel2 && iParcel2 < parcel_count) { make_adjacency_matrix(); return parcel_adjacency_matrix[iParcel1 * parcel_count + iParcel2]; } return false; } bool level_map::is_parcel_purchasable(int iParcelId, int iPlayer) { if (0 <= iParcelId && iParcelId < parcel_count && 1 <= iPlayer && iPlayer <= max_player_count) { make_purchase_matrix(); return purchasable_matrix[iParcelId * max_player_count + iPlayer - 1]; } return false; } void level_map::set_player_count(int count) { if (count < 1 || count > max_player_count) { throw std::out_of_range("Player count must be between 1 and 4"); } player_count = count; } bool level_map::get_player_camera_tile(int iPlayer, int* pX, int* pY) const { if (iPlayer < 0 || iPlayer >= get_player_count()) { if (pX) { *pX = 0; } if (pY) { *pY = 0; } return false; } if (pX) { *pX = initial_camera_x[iPlayer]; } if (pY) { *pY = initial_camera_y[iPlayer]; } return true; } bool level_map::get_player_heliport_tile(int iPlayer, int* pX, int* pY) const { if (iPlayer < 0 || iPlayer >= get_player_count()) { if (pX) { *pX = 0; } if (pY) { *pY = 0; } return false; } if (pX) { *pX = heliport_x[iPlayer]; } if (pY) { *pY = heliport_y[iPlayer]; } return true; } void level_map::set_player_camera_tile(int iPlayer, int iX, int iY) { if (0 <= iPlayer && iPlayer < get_player_count()) { initial_camera_x[iPlayer] = iX; initial_camera_y[iPlayer] = iY; } } void level_map::set_player_heliport_tile(int iPlayer, int iX, int iY) { if (0 <= iPlayer && iPlayer < get_player_count()) { heliport_x[iPlayer] = iX; heliport_y[iPlayer] = iY; } } int level_map::get_parcel_tile_count(int iParcelId) const { if (iParcelId < 1 || iParcelId >= parcel_count) { return 0; } return parcel_tile_counts[iParcelId]; } int level_map::count_parcel_tiles(int iParcelId) const { int iTiles = 0; for (int iY = 0; iY < height; ++iY) { for (int iX = 0; iX < width; ++iX) { const map_tile* pNode = get_tile_unchecked(iX, iY); if (pNode->iParcelId == iParcelId) { iTiles++; } } } return iTiles; } map_tile* level_map::get_tile(int iX, int iY) { if (0 <= iX && iX < width && 0 <= iY && iY < height) { return get_tile_unchecked(iX, iY); } else { return nullptr; } } const map_tile* level_map::get_tile(int iX, int iY) const { if (0 <= iX && iX < width && 0 <= iY && iY < height) { return get_tile_unchecked(iX, iY); } else { return nullptr; } } const map_tile* level_map::get_original_tile(int iX, int iY) const { if (0 <= iX && iX < width && 0 <= iY && iY < height) { return get_original_tile_unchecked(iX, iY); } else { return nullptr; } } map_tile* level_map::get_tile_unchecked(int iX, int iY) { return cells + iY * width + iX; } const map_tile* level_map::get_tile_unchecked(int iX, int iY) const { return cells + iY * width + iX; } const map_tile* level_map::get_original_tile_unchecked(int iX, int iY) const { return original_cells + iY * width + iX; } void level_map::set_block_sheet(sprite_sheet* pSheet) { wall_blocks = pSheet; } void level_map::set_all_wall_draw_flags(uint8_t iFlags) { uint16_t draw_flags = static_cast(iFlags << 8); map_tile* pNode = cells; for (int i = 0; i < width * height; ++i, ++pNode) { pNode->tile_layers[tile_layer::north_wall] = static_cast( (pNode->tile_layers[tile_layer::north_wall] & 0xFF) | draw_flags); pNode->tile_layers[tile_layer::west_wall] = static_cast( (pNode->tile_layers[tile_layer::west_wall] & 0xFF) | draw_flags); } } bool level_map::layer_exists(uint16_t layer, int& height) const { if (layer == 0) { return false; } if (wall_blocks->get_sprite_size(layer & 0xFF, nullptr, &height)) { return height > 0; } return false; } void level_map::draw_floor(render_target* pCanvas, int iScreenX, int iScreenY, int iWidth, int iHeight, int iCanvasX, int iCanvasY) const { for (map_tile_iterator itrNode1(this, iScreenX, iScreenY, iWidth, iHeight); itrNode1; ++itrNode1) { int tile_x = itrNode1.tile_x_position_on_screen() + iCanvasX - 32; int tile_y = itrNode1.tile_y_position_on_screen() + iCanvasY; // First, draw the floor tile as it should be below everything else. int height = 32; uint16_t layer = itrNode1->tile_layers[tile_layer::ground]; wall_blocks->get_sprite_size(layer & 0xFF, nullptr, &height); wall_blocks->draw_sprite(pCanvas, layer & 0xFF, tile_x, tile_y - height + 32, (layer >> 8) | thdf_nearest); // Draw floor shadows immediately after floor tiles ensuring that all // shadow pixels are drawn onto freshly drawn opaque floor tile pixels. if (itrNode1->flags.shadow_full) { wall_blocks->draw_sprite(pCanvas, 74, tile_x, tile_y, thdf_alpha_75 | thdf_nearest); } else if (itrNode1->flags.shadow_half) { wall_blocks->draw_sprite(pCanvas, 75, tile_x, tile_y, thdf_alpha_75 | thdf_nearest); } } } void level_map::draw_north_wall(const map_tile* tile, int tile_x, int tile_y, render_target* pCanvas) const { int height = draw_layer(tile, tile_x, tile_y, tile_layer::north_wall, pCanvas); // Draw shadow if needed. if (height > 0 && tile->flags.shadow_wall) { clip_rect rcNewClip; rcNewClip.x = static_cast(tile_x - 32); rcNewClip.y = static_cast(tile_y - height + 32 + 4); rcNewClip.w = static_cast(64); rcNewClip.h = static_cast(86 - 4); render_target::scoped_clip clip(pCanvas, &rcNewClip); wall_blocks->draw_sprite(pCanvas, 156, tile_x - 32, tile_y - 56, thdf_alpha_75 | thdf_nearest); } } //! Draw a layer. /* @param tile Map tile with the layer data to draw. @param tile_x X position of the tile at the screen. @param tile_y Y position of the tile at the screen. @param layer The layer to draw. @param pCanvas The canvas to paint. @return The height of the layer sprite in pixels. */ int level_map::draw_layer(const map_tile* tile, int tile_x, int tile_y, tile_layer layer, render_target* pCanvas) const { int height = 0; uint16_t layer_data = tile->tile_layers[layer]; if (layer_exists(layer_data, height)) { wall_blocks->draw_sprite(pCanvas, layer_data & 0xFF, tile_x - 32, tile_y - height + 32, (layer_data >> 8) | thdf_nearest); } return height; } void level_map::draw(render_target* pCanvas, int iScreenX, int iScreenY, int iWidth, int iHeight, int iCanvasX, int iCanvasY) const { /* The map is drawn in two passes, with each pass done one scanline at a time (a scanline is a list of tiles with the same screen Y coordinate). The first pass draws the floor tiles and floor shadows, as the entire floor needs to be painted below anything else (for example, see the walking north through a door animation or death animation, which needs to paint over the floor of the scanline below the animation). On the second pass, walls and entities are drawn, with the order controlled such that entities appear in the right order relative to the walls around them. For each scanline, the following is done: 1st pass: 1) For each tile, left to right, the floor tile (layer 0) 2) The floor shadow of that tile. 2nd pass: 1) For each tile, right to left, the north wall, then the early entities 2) For each tile, left to right, the west wall, then the late entities */ if (wall_blocks == nullptr || cells == nullptr) { return; } // Clip to the canvas. clip_rect rcClip; rcClip.x = static_cast(iCanvasX); rcClip.y = static_cast(iCanvasY); rcClip.w = static_cast(iWidth); rcClip.h = static_cast(iHeight); render_target::scoped_clip clip(pCanvas, &rcClip); // For proper hit-testing, the 'level_map::hit_test' function below should // 'paint' in the same way as here, except reversed. draw_floor(pCanvas, iScreenX, iScreenY, iWidth, iHeight, iCanvasX, iCanvasY); bool bFirst = true; map_scanline_iterator formerIterator; for (map_tile_iterator itrNode1(this, iScreenX, iScreenY, iWidth, iHeight); itrNode1; ++itrNode1) { if (!itrNode1.is_last_on_scanline()) { continue; } for (map_scanline_iterator itrNode( itrNode1, map_scanline_iterator_direction::backward, iCanvasX, iCanvasY); itrNode; ++itrNode) { draw_north_wall(itrNode.get_tile(), itrNode.x(), itrNode.y(), pCanvas); // Draw early entities. drawable* pItem = static_cast(itrNode->oEarlyEntities.next); while (pItem) { pItem->draw_fn(pCanvas, {itrNode.x(), itrNode.y()}); pItem = static_cast(pItem->next); } } map_scanline_iterator itrNode( itrNode1, map_scanline_iterator_direction::forward, iCanvasX, iCanvasY); if (!bFirst) { // since the scanline count from one THMapScanlineIterator to // another can differ synchronization between the current iterator // and the former one is needed if (itrNode.x() < -64) { ++itrNode; } while (formerIterator.x() < itrNode.x()) { ++formerIterator; } } bool bPreviousTileNeedsRedraw = false; for (; itrNode; ++itrNode) { bool bNeedsRedraw = false; // Draw the west wall and ui layers. draw_layer(itrNode.get_tile(), itrNode.x(), itrNode.y(), tile_layer::west_wall, pCanvas); draw_layer(itrNode.get_tile(), itrNode.x(), itrNode.y(), tile_layer::ui, pCanvas); int height; uint16_t layer = itrNode->tile_layers[tile_layer::north_wall]; if (layer_exists(layer, height)) { bNeedsRedraw = true; } if (itrNode->oEarlyEntities.next) { bNeedsRedraw = true; } bool bRedrawAnimations = false; drawable* pItem = static_cast(itrNode->entities.next); while (pItem) { pItem->draw_fn(pCanvas, {itrNode.x(), itrNode.y()}); if (pItem->is_multiple_frame_animation_fn()) { bRedrawAnimations = true; } if (pItem->get_drawing_layer() == 1) { bNeedsRedraw = true; } pItem = static_cast(pItem->next); } // if the current tile contained a multiple frame animation (e.g. a // doctor walking) check to see if in the tile to its left and above // it there are items that need to be redrawn (i.e. in the tile to // its left side objects to the south of the tile and in the tile // above it side objects to the east of the tile). if (bRedrawAnimations && !bFirst) { bool bTileNeedsRedraw = bPreviousTileNeedsRedraw; // check if an object in the adjacent tile to the left of the // current tile needs to be redrawn and if necessary draw it pItem = static_cast( formerIterator.get_previous_tile()->entities.next); while (pItem) { if (pItem->get_drawing_layer() == 9) { pItem->draw_fn(pCanvas, {formerIterator.x() - 64, formerIterator.y()}); bTileNeedsRedraw = true; } pItem = static_cast(pItem->next); } // check if an object in the adjacent tile above the current // tile needs to be redrawn and if necessary draw it pItem = formerIterator ? static_cast(formerIterator->entities.next) : nullptr; while (pItem) { if (pItem->get_drawing_layer() == 8) { pItem->draw_fn(pCanvas, {formerIterator.x(), formerIterator.y()}); } pItem = static_cast(pItem->next); } // If an object was redrawn in the tile to the left of the // current tile, or if the tile below it had an object in the // north side or a wall to the north, then redraw that tile. if (bTileNeedsRedraw) { const map_tile* prev_tile = itrNode.get_previous_tile(); int prev_tile_x = itrNode.x() - 64; int prev_tile_y = itrNode.y(); // Redraw the north wall of the previous tile. draw_north_wall(prev_tile, prev_tile_x, prev_tile_y, pCanvas); // Redraw early entities of previous tile. pItem = static_cast(prev_tile->oEarlyEntities.next); for (; pItem; pItem = static_cast(pItem->next)) { pItem->draw_fn(pCanvas, {prev_tile_x, prev_tile_y}); } // Redraw entities of previous tile. pItem = static_cast(prev_tile->entities.next); for (; pItem; pItem = static_cast(pItem->next)) { pItem->draw_fn(pCanvas, {prev_tile_x, prev_tile_y}); } } } bPreviousTileNeedsRedraw = bNeedsRedraw; if (!bFirst) { ++formerIterator; } } formerIterator = itrNode; bFirst = false; } // Draw map overlay if active. if (overlay) { for (map_tile_iterator itrNode(this, iScreenX, iScreenY, iWidth, iHeight); itrNode; ++itrNode) { overlay->draw_cell(pCanvas, itrNode.tile_x_position_on_screen() + iCanvasX - 32, itrNode.tile_y_position_on_screen() + iCanvasY, this, itrNode.tile_x(), itrNode.tile_y()); } } } drawable* level_map::hit_test(int iTestX, int iTestY) const { // This function needs to hitTest each drawable object, in the reverse // order to that in which they would be drawn. if (wall_blocks == nullptr || cells == nullptr) { return nullptr; } for (map_tile_iterator itrNode2(this, iTestX, iTestY, 1, 1, map_scanline_iterator_direction::backward); itrNode2; ++itrNode2) { if (!itrNode2.is_last_on_scanline()) { continue; } for (map_scanline_iterator itrNode( itrNode2, map_scanline_iterator_direction::backward); itrNode; ++itrNode) { if (itrNode->entities.next != nullptr) { drawable* pResult = hit_test_drawables(itrNode->entities.next, itrNode.x(), itrNode.y(), 0, 0); if (pResult) { return pResult; } } } for (map_scanline_iterator itrNode( itrNode2, map_scanline_iterator_direction::forward); itrNode; ++itrNode) { if (itrNode->oEarlyEntities.next != nullptr) { drawable* pResult = hit_test_drawables(itrNode->oEarlyEntities.next, itrNode.x(), itrNode.y(), 0, 0); if (pResult) { return pResult; } } } } return nullptr; } drawable* level_map::hit_test_drawables(link_list* pListStart, int iXs, int iYs, int iTestX, int iTestY) const { link_list* pListEnd = pListStart; while (pListEnd->next) { pListEnd = pListEnd->next; } drawable* pList = static_cast(pListEnd); while (true) { if (pList->hit_test_fn({iXs, iYs}, {iTestX, iTestY})) return pList; if (pList == pListStart) { return nullptr; } else { pList = static_cast(pList->prev); } } } int level_map::get_tile_owner(const map_tile* pNode) const { uint16_t parcelId = pNode->iParcelId; return get_parcel_owner(parcelId); } int level_map::get_parcel_owner(int iParcel) const { if (0 <= iParcel && iParcel < parcel_count) { return plot_owner[iParcel]; } else { return 0; } } uint16_t level_map::get_tile_temperature(const map_tile* pNode) const { return pNode->aiTemperature[current_temperature_index]; } void level_map::set_temperature_display(temperature_theme eTempDisplay) { current_temperature_theme = eTempDisplay; } uint32_t level_map::thermal_neighbour(uint32_t& iNeighbourSum, bool canTravel, std::ptrdiff_t relative_idx, map_tile* pNode, int prevTemp) const { int iNeighbourCount = 0; map_tile* pNeighbour = pNode + relative_idx; // Ensure the neighbour is within the map bounds map_tile* pLimitNode = cells + width * height; if (pNeighbour < cells || pNeighbour >= pLimitNode) { return 0; } if (canTravel) { iNeighbourCount += 4; iNeighbourSum += pNeighbour->aiTemperature[prevTemp] * 4; } else { bool bObjectPresent = false; int iHospital1 = pNeighbour->flags.hospital; int iHospital2 = pNode->flags.hospital; if (iHospital1 == iHospital2) { if (pNeighbour->flags.room == pNode->flags.room) { bObjectPresent = true; } } if (bObjectPresent) { iNeighbourCount += 4; iNeighbourSum += pNeighbour->aiTemperature[prevTemp] * 4; } else { iNeighbourCount += 1; iNeighbourSum += pNeighbour->aiTemperature[prevTemp]; } } return iNeighbourCount; } namespace { //! Merge temperature at a tile with the external merge temperature. /*! \param node Tile node to update. \param temp_idx Index of the temperature to update at the tile. \param other_temp External temperature to merge. \param ratio Weight of the old node temperature, \c N-1 parts of the node temperature and \c 1 part of the external temperature. */ void merge_temperatures(map_tile& node, size_t temp_idx, uint32_t other_temp, double ratio) { const uint32_t node_temp = node.aiTemperature[temp_idx]; node.aiTemperature[temp_idx] = static_cast(((node_temp * (ratio - 1)) + other_temp) / ratio); } } // namespace void level_map::update_temperatures(uint16_t iAirTemperature, uint16_t iRadiatorTemperature) { if (iRadiatorTemperature < iAirTemperature) { iRadiatorTemperature = iAirTemperature; } const int iPrevTemp = current_temperature_index; current_temperature_index ^= 1; const int iNewTemp = current_temperature_index; map_tile* pLimitNode = cells + width * height; for (map_tile* pNode = cells; pNode != pLimitNode; ++pNode) { // Get average temperature of neighbour cells uint32_t iNeighbourSum = 0; uint32_t iNeighbourCount = 0; iNeighbourCount += thermal_neighbour( iNeighbourSum, pNode->flags.can_travel_n, -width, pNode, iPrevTemp); iNeighbourCount += thermal_neighbour( iNeighbourSum, pNode->flags.can_travel_s, width, pNode, iPrevTemp); iNeighbourCount += thermal_neighbour( iNeighbourSum, pNode->flags.can_travel_e, 1, pNode, iPrevTemp); iNeighbourCount += thermal_neighbour( iNeighbourSum, pNode->flags.can_travel_w, -1, pNode, iPrevTemp); uint32_t iMergeTemp = 0; double mergeRatio = 100; if (pNode->flags.hospital) { bool hasRadiator = false; for (auto thob : pNode->objects) { if (thob == object_type::radiator) { hasRadiator = true; break; } } if (hasRadiator) { iMergeTemp = iRadiatorTemperature; mergeRatio = 2; // Merge 50% against radiator temperature. } else { iMergeTemp = 0; mergeRatio = 1000; // Generally dissipate 0.1% of temperature. } } else { iMergeTemp = iAirTemperature; mergeRatio = 100; // Merge 1% against air temperature. } // Diffuse 25% with neighbours pNode->aiTemperature[iNewTemp] = pNode->aiTemperature[iPrevTemp]; if (iNeighbourCount != 0) { merge_temperatures(*pNode, iNewTemp, iNeighbourSum / iNeighbourCount, 4); } merge_temperatures(*pNode, iNewTemp, iMergeTemp, mergeRatio); } } void level_map::update_pathfinding() { map_tile* pNode = cells; for (int iY = 0; iY < this->height; ++iY) { for (int iX = 0; iX < this->width; ++iX, ++pNode) { pNode->flags.can_travel_n = true; pNode->flags.can_travel_e = true; pNode->flags.can_travel_s = true; pNode->flags.can_travel_w = true; if (iX == 0) { pNode->flags.can_travel_w = false; } else if (iX == 127) { pNode->flags.can_travel_e = false; } if (iY == 0) { pNode->flags.can_travel_n = false; } else if (iY == 127) { pNode->flags.can_travel_s = false; } if (pNode->tile_layers[tile_layer::north_wall] & 0xFF) { pNode->flags.can_travel_n = false; if (iY != 0) { pNode[-this->width].flags.can_travel_s = false; } } if (pNode->tile_layers[tile_layer::west_wall] & 0xFF) { pNode->flags.can_travel_w = false; if (iX != 0) { pNode[-1].flags.can_travel_e = false; } } } } } namespace { //! For shadow casting, a tile is considered to have a wall on a direction //! if it has a door in that direction, or the block is from the hardcoded //! range of wall-like blocks. bool is_wall(map_tile* tile, tile_layer layer, bool flag) { return flag || (82 <= (tile->tile_layers[layer] & 0xFF) && (tile->tile_layers[layer] & 0xFF) <= 164); } } // namespace void level_map::update_shadows() { map_tile* pNode = cells; for (int iY = 0; iY < this->height; ++iY) { for (int iX = 0; iX < this->width; ++iX, ++pNode) { pNode->flags.shadow_full = false; pNode->flags.shadow_half = false; pNode->flags.shadow_wall = false; if (is_wall(pNode, tile_layer::west_wall, pNode->flags.tall_west)) { pNode->flags.shadow_half = true; if (is_wall(pNode, tile_layer::north_wall, pNode->flags.tall_north)) { pNode->flags.shadow_wall = true; } else if (iY != 0) { map_tile* pNeighbour = pNode - this->width; pNeighbour->flags.shadow_full = true; if (iX != 0 && !is_wall(pNeighbour, tile_layer::west_wall, pNode->flags.tall_west)) { // Wrap the shadow around a corner (no need to continue // all the way along the wall, as the shadow would be // occluded by the wall. If Debug->Transparent Walls is // toggled on, then this optimisation becomes very // visible, but it's a debug option, so it doesn't // matter). pNeighbour[-1].flags.shadow_full = true; } } } } } } void level_map::persist(lua_persist_writer* pWriter) const { lua_State* L = pWriter->get_stack(); uint32_t iVersion = 5; pWriter->write_uint(iVersion); pWriter->write_uint(player_count); for (int i = 0; i < player_count; ++i) { pWriter->write_uint(initial_camera_x[i]); pWriter->write_uint(initial_camera_y[i]); pWriter->write_uint(heliport_x[i]); pWriter->write_uint(heliport_y[i]); } pWriter->write_uint(parcel_count); for (int i = 0; i < parcel_count; ++i) { pWriter->write_uint(plot_owner[i]); } for (int i = 0; i < parcel_count; ++i) { pWriter->write_uint(parcel_tile_counts[i]); } pWriter->write_uint(width); pWriter->write_uint(height); pWriter->write_uint(current_temperature_index); integer_run_length_encoder oEncoder(6); for (map_tile *pNode = cells, *pLimitNode = cells + width * height; pNode != pLimitNode; ++pNode) { oEncoder.write(pNode->tile_layers[tile_layer::ground]); oEncoder.write(pNode->tile_layers[tile_layer::north_wall]); oEncoder.write(pNode->tile_layers[tile_layer::west_wall]); oEncoder.write(pNode->tile_layers[tile_layer::ui]); oEncoder.write(pNode->iParcelId); oEncoder.write(pNode->iRoomId); // Flags include THOB values, and other things which do not work // well with run-length encoding. pWriter->write_uint(static_cast(pNode->flags)); pWriter->write_uint(pNode->aiTemperature[0]); pWriter->write_uint(pNode->aiTemperature[1]); pWriter->write_byte_stream(pNode->raw, map_tile::raw_length); lua_rawgeti(L, luaT_upvalueindex(1), 2); lua_pushlightuserdata(L, pNode->entities.next); lua_rawget(L, -2); pWriter->write_stack_object(-1); lua_pop(L, 1); lua_pushlightuserdata(L, pNode->oEarlyEntities.next); lua_rawget(L, -2); pWriter->write_stack_object(-1); lua_pop(L, 2); } oEncoder.finish(); oEncoder.pump_output(pWriter); oEncoder = integer_run_length_encoder(5); for (map_tile *pNode = original_cells, *pLimitNode = original_cells + width * height; pNode != pLimitNode; ++pNode) { oEncoder.write(pNode->tile_layers[tile_layer::ground]); oEncoder.write(pNode->tile_layers[tile_layer::north_wall]); oEncoder.write(pNode->tile_layers[tile_layer::west_wall]); oEncoder.write(pNode->iParcelId); oEncoder.write(static_cast(pNode->flags)); } oEncoder.finish(); oEncoder.pump_output(pWriter); } namespace { //! Assign the tile position in the map to the just loaded animations. void restore_map_position(animation_base* anim, int tile_x_pos, int tile_y_pos) { while (anim != nullptr) { anim->set_tile({tile_x_pos, tile_y_pos}); anim = dynamic_cast(anim->next); } } } // namespace void level_map::depersist(lua_persist_reader* pReader) { lua_State* L = pReader->get_stack(); int iWidth, iHeight; uint32_t iVersion; if (!pReader->read_uint(iVersion)) return; if (iVersion < 2 || iVersion == 128) { luaL_error(L, "TODO: Write code to load map data from earlier " "savegame versions (if really necessary)."); } else if (iVersion > 5) { luaL_error(L, "Cannot load savegame from a newer version."); } if (!pReader->read_uint(player_count)) return; for (int i = 0; i < player_count; ++i) { if (!pReader->read_uint(initial_camera_x[i])) return; if (!pReader->read_uint(initial_camera_y[i])) return; if (!pReader->read_uint(heliport_x[i])) return; if (!pReader->read_uint(heliport_y[i])) return; } if (!pReader->read_uint(parcel_count)) { return; } delete[] plot_owner; plot_owner = new int[parcel_count]; for (int i = 0; i < parcel_count; ++i) { if (!pReader->read_uint(plot_owner[i])) { return; } } delete[] parcel_tile_counts; parcel_tile_counts = new int[parcel_count]; parcel_tile_counts[0] = 0; if (iVersion >= 3) { for (int i = 0; i < parcel_count; ++i) { if (!pReader->read_uint(parcel_tile_counts[i])) { return; } } } if (!pReader->read_uint(iWidth) || !pReader->read_uint(iHeight)) { return; } if (!set_size(iWidth, iHeight)) { pReader->set_error("Unable to set size while depersisting map"); return; } if (iVersion >= 4) { if (!pReader->read_uint(current_temperature_index)) { return; } } int tile_x_pos = -1; int tile_y_pos = 0; for (map_tile *pNode = cells, *pLimitNode = cells + width * height; pNode != pLimitNode; ++pNode) { // Update tile 2D position. tile_x_pos++; if (tile_x_pos == width) { tile_x_pos = 0; tile_y_pos++; } uint32_t f; if (!pReader->read_uint(f)) return; pNode->flags = f; if (iVersion >= 4) { if (!pReader->read_uint(pNode->aiTemperature[0]) || !pReader->read_uint(pNode->aiTemperature[1])) { return; } } if (iVersion >= 5) { if (!pReader->read_byte_stream(pNode->raw, map_tile::raw_length)) return; } if (!pReader->read_stack_object()) return; animation_base* anim = luaT_toanimationbase(L, -1); restore_map_position(anim, tile_x_pos, tile_y_pos); pNode->entities.next = anim; if (pNode->entities.next) { if (pNode->entities.next->prev != nullptr) { std::fprintf(stderr, "Warning: THMap linked-lists are corrupted.\n"); } pNode->entities.next->prev = &pNode->entities; } lua_pop(L, 1); if (!pReader->read_stack_object()) return; animation_base* early_anim = luaT_toanimationbase(L, -1); restore_map_position(early_anim, tile_x_pos, tile_y_pos); pNode->oEarlyEntities.next = early_anim; if (pNode->oEarlyEntities.next) { if (pNode->oEarlyEntities.next->prev != nullptr) { std::fprintf(stderr, "Warning: THMap linked-lists are corrupted.\n"); } pNode->oEarlyEntities.next->prev = &pNode->oEarlyEntities; } lua_pop(L, 1); } integer_run_length_decoder oDecoder(6, pReader); for (map_tile *pNode = cells, *pLimitNode = cells + width * height; pNode != pLimitNode; ++pNode) { pNode->tile_layers[tile_layer::ground] = static_cast(oDecoder.read()); pNode->tile_layers[tile_layer::north_wall] = static_cast(oDecoder.read()); pNode->tile_layers[tile_layer::west_wall] = static_cast(oDecoder.read()); pNode->tile_layers[tile_layer::ui] = static_cast(oDecoder.read()); pNode->iParcelId = static_cast(oDecoder.read()); pNode->iRoomId = static_cast(oDecoder.read()); } oDecoder = integer_run_length_decoder(5, pReader); for (map_tile *pNode = original_cells, *pLimitNode = original_cells + width * height; pNode != pLimitNode; ++pNode) { pNode->tile_layers[tile_layer::ground] = static_cast(oDecoder.read()); pNode->tile_layers[tile_layer::north_wall] = static_cast(oDecoder.read()); pNode->tile_layers[tile_layer::west_wall] = static_cast(oDecoder.read()); pNode->iParcelId = static_cast(oDecoder.read()); pNode->flags = oDecoder.read(); } if (iVersion < 3) { for (int i = 1; i < parcel_count; ++i) { parcel_tile_counts[i] = get_parcel_tile_count(i); } } } map_tile_iterator::map_tile_iterator( const level_map* pMap, int iScreenX, int iScreenY, int iWidth, int iHeight, map_scanline_iterator_direction eScanlineDirection) : container(pMap), screen_offset_x(iScreenX), screen_offset_y(iScreenY), screen_width(iWidth), screen_height(iHeight), direction(eScanlineDirection) { if (direction == map_scanline_iterator_direction::forward) { base_x = 0; base_y = (iScreenY - 32) / 16; if (base_y < 0) { base_y = 0; } else if (base_y >= container->get_height()) { base_x = base_y - container->get_height() + 1; base_y = container->get_height() - 1; if (base_x >= container->get_width()) base_x = container->get_width() - 1; } } else { base_x = container->get_width() - 1; base_y = container->get_height() - 1; } world_x = base_x; world_y = base_y; advance_until_visible(); } map_tile_iterator& map_tile_iterator::operator++() { --world_y; ++world_x; advance_until_visible(); return *this; } void map_tile_iterator::advance_until_visible() { ZoneScoped; tile = nullptr; while (true) { x_relative_to_screen = world_x; y_relative_to_screen = world_y; container->world_to_screen(x_relative_to_screen, y_relative_to_screen); x_relative_to_screen -= screen_offset_x; y_relative_to_screen -= screen_offset_y; if (direction == map_scanline_iterator_direction::forward ? y_relative_to_screen >= screen_height + margin_bottom : y_relative_to_screen < -margin_top) { return; } if (direction == map_scanline_iterator_direction::forward ? (y_relative_to_screen > -margin_top) : (y_relative_to_screen < screen_height + margin_bottom)) { while (world_y >= 0 && world_x < container->get_width()) { if (x_relative_to_screen < -margin_left) { // Nothing to do } else if (x_relative_to_screen < screen_width + margin_right) { ++scanline_count; tile = container->get_tile_unchecked(world_x, world_y); return; } else { break; } --world_y; ++world_x; x_relative_to_screen += 64; } } scanline_count = 0; if (direction == map_scanline_iterator_direction::forward) { if (base_y == container->get_height() - 1) { if (++base_x == container->get_width()) { break; } } else { ++base_y; } } else { if (base_x == 0) { if (base_y == 0) { break; } else { --base_y; } } else { --base_x; } } world_x = base_x; world_y = base_y; } } bool map_tile_iterator::is_last_on_scanline() const { return world_y <= 0 || world_x + 1 >= container->get_width() || x_relative_to_screen + 64 >= screen_width + margin_right; } map_scanline_iterator::map_scanline_iterator() : tile(nullptr), first_tile(nullptr), end_tile(nullptr), tile_step(0), x_step(0), x_relative_to_screen(0), y_relative_to_screen(0) {} map_scanline_iterator::map_scanline_iterator( const map_tile_iterator& itrNodes, map_scanline_iterator_direction eDirection, int iXOffset, int iYOffset) : tile_step((static_cast(eDirection) - 1) * (1 - itrNodes.container->get_width())), x_step((static_cast(eDirection) - 1) * 64) { if (eDirection == map_scanline_iterator_direction::backward) { tile = itrNodes.tile; x_relative_to_screen = itrNodes.tile_x_position_on_screen(); } else { tile = itrNodes.tile - tile_step * (itrNodes.scanline_count - 1); x_relative_to_screen = itrNodes.tile_x_position_on_screen() - x_step * (itrNodes.scanline_count - 1); } x_relative_to_screen += iXOffset; y_relative_to_screen = itrNodes.tile_y_position_on_screen() + iYOffset; end_tile = tile + tile_step * itrNodes.scanline_count; first_tile = tile; } map_scanline_iterator& map_scanline_iterator::operator++() { tile += tile_step; x_relative_to_screen += x_step; steps_taken++; return *this; } // copies the members of the given THMapScanlineIterator and resets the tile // member to the first element. map_scanline_iterator map_scanline_iterator::operator=( const map_scanline_iterator& iterator) { tile = iterator.first_tile; end_tile = iterator.end_tile; x_relative_to_screen = iterator.x_relative_to_screen - iterator.steps_taken * iterator.x_step; y_relative_to_screen = iterator.y_relative_to_screen; x_step = iterator.x_step; tile_step = iterator.tile_step; return *this; } CorsixTH-0.70.0/CorsixTH/Src/th_map.h000066400000000000000000000531621522247547500172000ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_MAP_H_ #define CORSIX_TH_TH_MAP_H_ #include "config.h" #include #include #include #include #include "th.h" class lua_persist_reader; class lua_persist_writer; class map_overlay; class render_target; class sprite_sheet; struct drawable; /* Object type enumeration uses same values as original TH does. See game string table section 39 for proof. Section 1 also has names in this order. */ enum class object_type : uint8_t { no_object = 0, desk = 1, cabinet = 2, door = 3, bench = 4, table = 5, // Not in game chair = 6, drinks_machine = 7, bed = 8, inflator = 9, pool_table = 10, reception_desk = 11, b_table = 12, // Not in game? cardio = 13, scanner = 14, scanner_console = 15, screen = 16, litter_bomb = 17, couch = 18, sofa = 19, crash = 20, // The trolley in general diagnosis tv = 21, ultrascan = 22, dna_fixer = 23, cast_remover = 24, hair_restorer = 25, slicer = 26, xray = 27, radiation_shield = 28, xray_viewer = 29, op_table = 30, lamp = 31, // Not in game? sink = 32, op_sink1 = 33, op_sink2 = 34, surgeon_screen = 35, lecture_chair = 36, projector = 37, // 38 is unused pharmacy = 39, computer = 40, chemical_mixer = 41, blood_machine = 42, extinguisher = 43, radiator = 44, plant = 45, electro = 46, jelly_vat = 47, hell = 48, // 49 is unused bin = 50, loo = 51, double_door1 = 52, double_door2 = 53, decon_shower = 54, autopsy = 55, bookcase = 56, video_game = 57, entrance_left_door = 58, entrance_right_door = 59, skeleton = 60, comfy_chair = 61, litter = 62, helicopter = 63, rathole = 64, // 65 through 255 are unused }; //! Map flags and object type //! The point of storing the object type here is to allow pathfinding code //! to use object types as pathfinding goals. struct map_tile_flags { enum class key : uint32_t { passable_mask = 1 << 0, can_travel_n_mask = 1 << 1, can_travel_e_mask = 1 << 2, can_travel_s_mask = 1 << 3, can_travel_w_mask = 1 << 4, hospital_mask = 1 << 5, buildable_mask = 1 << 6, passable_if_not_for_blueprint_mask = 1 << 7, room_mask = 1 << 8, shadow_half_mask = 1 << 9, shadow_full_mask = 1 << 10, shadow_wall_mask = 1 << 11, door_north_mask = 1 << 12, door_west_mask = 1 << 13, do_not_idle_mask = 1 << 14, tall_north_mask = 1 << 15, tall_west_mask = 1 << 16, buildable_n_mask = 1 << 17, buildable_e_mask = 1 << 18, buildable_s_mask = 1 << 19, buildable_w_mask = 1 << 20, }; bool passable; //!< Pathfinding: Can walk on this tile bool can_travel_n; //!< Pathfinding: Can walk to the north bool can_travel_e; //!< Pathfinding: Can walk to the east bool can_travel_s; //!< Pathfinding: Can walk to the south bool can_travel_w; //!< Pathfinding: Can walk to the west bool hospital; //!< World: Tile is inside a hospital building bool buildable; //!< Player: Can build on this tile bool passable_if_not_for_blueprint; bool room; //!< World: Tile is inside a room bool shadow_half; //!< Rendering: Put block 75 over floor bool shadow_full; //!< Rendering: Put block 74 over floor bool shadow_wall; //!< Rendering: Put block 156 over east wall bool door_north; //!< World: Door on north wall of tile bool door_west; //!< World: Door on west wall of tile bool do_not_idle; //!< World: Humanoids should not idle on tile bool tall_north; //!< Shadows: Wall-like object on north wall bool tall_west; //!< Shadows: Wall-like object on west wall bool buildable_n; //!< Can build on the north side of the tile bool buildable_e; //!< Can build on the east side of the tile bool buildable_s; //!< Can build on the south side of the tile bool buildable_w; //!< Can build on the west side of the tile //! Convert the given uint32_t representation of the map_tile flags //! to a map_tile_flags instance. map_tile_flags& operator=(uint32_t raw); //! Get/set the flag with the given key bool& operator[](map_tile_flags::key key); //! Get the flag with the given key const bool& operator[](map_tile_flags::key key) const; //! Convert map_tile_flags into it's uint32_t representation operator uint32_t() const; }; enum class temperature_theme { red, //!< Default warmth colouring (red gradients) multi_colour, //!< Different colours (blue, green, red) yellow_red //!< Gradients of yellow, orange, and red }; enum tile_layer : uint8_t { ground = 0, north_wall = 1, west_wall = 2, ui = 3, num_tile_layers = 4 //!< Number of layers in a tile. }; struct map_tile { map_tile() = default; ~map_tile() = default; // Linked list for entities rendered at this tile link_list entities; //! Linked list for entities rendered in an early (right-to-left) pass link_list oEarlyEntities; //! Tile layers for rendering. //! For each layer, the lower byte is the index in the sprite sheet, and the //! upper byte is for the drawing flags. //! Layer 0 is for the floor //! Layer 1 is for the north wall //! Layer 2 is for the west wall //! Layer 3 is for the UI //! NB: In Lua, layers are numbered 1 - 4 rather than 0 - 3 uint16_t tile_layers[tile_layer::num_tile_layers]{}; //! Parcels (plots) of land have an ID, with each tile in the plot having //! that ID. Parcel 0 is the outside. uint16_t iParcelId{0}; //! Rooms have an ID, with room #0 being the corridor (and the outside). uint16_t iRoomId{0}; //! A value between 0 (extreme cold) and 65535 (extreme heat) representing //! the temperature of the tile. To allow efficient calculation of a tile's //! heat based on the previous tick's heat of the surrounding tiles, the //! previous temperature is also stored, with the array indices switching //! every tick. uint16_t aiTemperature[2]{8192, 8192}; //! Flags for information and object type map_tile_flags flags{}; //! objects in this tile std::list objects; static constexpr int raw_length = 8; //! raw data from map file for debugging std::uint8_t raw[raw_length]{}; }; //! Prototype for object callbacks from THMap::loadFromTHFile /*! The callback function will receive 5 arguments: * The opaque pointer passed to THMap::loadFromTHFile (pCallbackToken). * The tile X/Y position of the object. * The object type. * The object flags present in the map data. The meaning of this value is left unspecified. */ typedef void (*map_load_object_callback_fn)(void*, int, int, object_type, uint8_t); class level_map { public: level_map() = default; ~level_map(); bool set_size(int iWidth, int iHeight); bool load_blank(); bool load_from_th_file(const uint8_t* pData, size_t iDataLength, map_load_object_callback_fn fnObjectCallback, void* pCallbackToken); void save(const std::string& filename); //! Set the sprite sheet to be used for drawing the map /*! The sprites for map floor tiles, wall tiles, and map decorators all come from the given sheet. */ void set_block_sheet(sprite_sheet* pSheet); //! Set the draw flags on all wall blocks /*! This is typically called with THDF_Alpha50 to draw walls transparently, or with 0 to draw them opaque again. */ void set_all_wall_draw_flags(uint8_t iFlags); void update_pathfinding(); void update_shadows(); void set_temperature_display(temperature_theme eTempDisplay); inline temperature_theme get_temperature_display() const { return current_temperature_theme; } void update_temperatures(uint16_t iAirTemperature, uint16_t iRadiatorTemperature); //! Get the map width (in tiles) inline int get_width() const { return width; } //! Get the map height (in tiles) inline int get_height() const { return height; } //! Get the number of plots of land in this map inline int get_parcel_count() const { return parcel_count - 1; } inline int get_player_count() const { return player_count; } void set_player_count(int count); bool get_player_camera_tile(int iPlayer, int* pX, int* pY) const; bool get_player_heliport_tile(int iPlayer, int* pX, int* pY) const; void set_player_camera_tile(int iPlayer, int iX, int iY); void set_player_heliport_tile(int iPlayer, int iX, int iY); //! Get the number of tiles inside a given parcel int get_parcel_tile_count(int iParcelId) const; //! Change the owner of a particular parcel /*! \param iParcelId The parcel of land to change ownership of. Should be an integer between 1 and get_parcel_count() inclusive (parcel 0 is the outside, and should never have its ownership changed). \param iOwner The number of the player who should own the parcel, or zero if no player should own the parcel. \return vSplitTiles A vector that contains tile coordinates where iParcelId is adjacent to another part of the hospital. */ std::vector> set_parcel_owner(int iParcelId, int iOwner); //! Get the owner of a particular parcel of land /*! \param iParcelId An integer between 0 and get_parcel_count() inclusive. \return 0 if the parcel is unowned, otherwise the number of the owning player. */ int get_parcel_owner(int iParcelId) const; //! Query if two parcels are directly connected /*! \param iParcel1 An integer between 0 and get_parcel_count() inclusive. \param iParcel2 An integer between 0 and get_parcel_count() inclusive. \return true if there is a path between the two parcels which does not go into any other parcels. false otherwise. */ bool are_parcels_adjacent(int iParcel1, int iParcel2); //! Query if a given player is in a position to purchase a given parcel /*! \param iParcelId The parcel of land to query. Should be an integer between 1 and get_parcel_count() inclusive. \param iPlayer The number of the player to perform the query on behalf of. Should be a strictly positive integer. \return true if the parcel has a door to the outside, or is directly connected to a parcel already owned by the given player. false otherwise. */ bool is_parcel_purchasable(int iParcelId, int iPlayer); //! Draw the map (and any attached animations) /*! Draws the world pixel rectangle (iScreenX, iScreenY, iWidth, iHeight) to the rectangle (iCanvasX, iCanvasY, iWidth, iHeight) on pCanvas. Note that world pixel coordinates are also known as absolute screen coordinates - they are not world (tile) coordinates, nor (relative) screen coordinates. */ void draw(render_target* pCanvas, int iScreenX, int iScreenY, int iWidth, int iHeight, int iCanvasX, int iCanvasY) const; //! Perform a hit-test against the animations attached to the map /*! If there is an animation at world pixel coordinates (iTestX, iTestY), then it is returned. Otherwise nullptr is returned. To perform a hit-test using world (tile) coordinates, get the tile itself and query the top 8 bits of map_tile::flags, or traverse the tile's animation lists. */ drawable* hit_test(int iTestX, int iTestY) const; // When using the unchecked versions, the map coordinates MUST be valid. // When using the normal versions, nullptr is returned for invalid co-ords. map_tile* get_tile(int iX, int iY); const map_tile* get_tile(int iX, int iY) const; const map_tile* get_original_tile(int iX, int iY) const; map_tile* get_tile_unchecked(int iX, int iY); const map_tile* get_tile_unchecked(int iX, int iY) const; const map_tile* get_original_tile_unchecked(int iX, int iY) const; uint16_t get_tile_temperature(const map_tile* pNode) const; int get_tile_owner(const map_tile* pNode) const; //! Convert world (tile) coordinates to absolute screen coordinates template static inline void world_to_screen(T& x, T& y) { T x_(x); x = (T)32 * (x_ - y); y = (T)16 * (x_ + y); } //! Convert absolute screen coordinates to world (tile) coordinates template static inline void screen_to_world(T& x, T& y) { T x_(x); x = y / (T)32 + x_ / (T)64; y = y / (T)32 - x_ / (T)64; } void persist(lua_persist_writer* pWriter) const; void depersist(lua_persist_reader* pReader); void set_overlay(map_overlay* pOverlay, bool bTakeOwnership); private: void draw_floor(render_target* pCanvas, int iScreenX, int iScreenY, int iWidth, int iHeight, int iCanvasX, int iCanvasY) const; void draw_north_wall(const map_tile* tile, int tile_x, int tile_y, render_target* pCanvas) const; int draw_layer(const map_tile* tile, int tile_x, int tile_y, tile_layer layer, render_target* pCanvas) const; //! Check that the sprite indicated by the layer can be found and has height. /* * @param layer Layer to investigate. * @param [out] height Height of the sprite if the method returns \c true. * @return Whether the sprite exists and is not empty. */ bool layer_exists(uint16_t layer, int& height) const; drawable* hit_test_drawables(link_list* pListStart, int iXs, int iYs, int iTestX, int iTestY) const; void read_tile_index(const uint8_t* pData, int& iX, int& iY) const; void write_tile_index(uint8_t* pData, int iX, int iY) const; //! Calculate a weighted impact of a neighbour tile on the temperature of //! the current tile. \param iNeighbourSum Incremented by the temperature of //! the tile multiplied by the weight of the connection. \param canTravel A //! tile flag indicating whether travel between this tile and it's neighbour //! is allowed. \param relative_idx The index of the neighbour tile, //! relative to this tile into cells. \param pNode A pointer to the current //! tile being tested. \param prevTemp The array index into //! map_tile::temperature that currently stores the temperature of the tile //! (prior to this calculation). \return The weight of the connection, 0 if //! there is no neighbour, 1 through walls, and 4 through air. uint32_t thermal_neighbour(uint32_t& iNeighbourSum, bool canTravel, std::ptrdiff_t relative_idx, map_tile* pNode, int prevTemp) const; //! Create the adjacency matrix if it doesn't already exist void make_adjacency_matrix(); //! Create the purchasability matrix if it doesn't already exist void make_purchase_matrix(); //! If it exists, update the purchasability matrix. void update_purchase_matrix(); int count_parcel_tiles(int iParcelId) const; map_tile* cells{}; map_tile* original_cells{}; // Cells at map load time, before any changes sprite_sheet* wall_blocks{}; map_overlay* overlay{}; bool owns_overlay{}; int* plot_owner{}; // 0 for unowned, 1 for player 1, etc. int width{}; int height{}; int player_count{}; int initial_camera_x[4]{}; int initial_camera_y[4]{}; int heliport_x[4]{}; int heliport_y[4]{}; int parcel_count{}; int current_temperature_index{}; temperature_theme current_temperature_theme{temperature_theme::red}; int* parcel_tile_counts{}; // 2D symmetric array giving true if there is a path between two parcels // which doesn't go into any other parcels. bool* parcel_adjacency_matrix{}; // 4 by N matrix giving true if player can purchase parcel. bool* purchasable_matrix{}; }; enum class map_scanline_iterator_direction { forward = 2, backward = 0, }; //! Utility class for iterating over map tiles within a screen rectangle /*! To easily iterate over the map tiles which might draw something within a certain rectangle of screen space, an instance of this class can be used. By default, it iterates by scanline, top-to-bottom, and then left-to-right within each scanline. Alternatively, by passing ScanlineBackward to the constructor, it will iterate bottom-to-top. Within a scanline, to visit tiles right-to-left, wait until isLastOnScanline() returns true, then use an instance of THMapScanlineIterator. */ class map_tile_iterator { public: map_tile_iterator() = delete; /*! @arg pMap The map whose tiles should be iterated @arg iScreenX The X coordinate of the top-left corner of the screen-space rectangle to iterate. @arg iScreenY The Y coordinate of the top-left corner of the screen-space rectangle to iterate. @arg iWidth The width of the screen-space rectangle to iterate. @arg iHeight The width of the screen-space rectangle to iterate. @arg eScanlineDirection The direction in which to iterate scanlines; forward for top-to-bottom, backward for bottom-to-top. */ map_tile_iterator(const level_map* pMap, int iScreenX, int iScreenY, int iWidth, int iHeight, map_scanline_iterator_direction eScanlineDirection = map_scanline_iterator_direction::forward); //! Returns false if the iterator has exhausted its tiles inline operator bool() const { return tile != nullptr; } //! Advances the iterator to the next tile inline map_tile_iterator& operator++(); //! Accessor for the current tile inline const map_tile* operator->() const { return tile; } //! Get the X position of the tile relative to the top-left corner of the //! screen-space rectangle inline int tile_x_position_on_screen() const { return x_relative_to_screen; } //! Get the Y position of the tile relative to the top-left corner of the //! screen-space rectangle inline int tile_y_position_on_screen() const { return y_relative_to_screen; } inline int tile_x() const { return world_x; } inline int tile_y() const { return world_y; } inline const level_map* get_map() { return container; } inline const map_tile* get_map_tile() { return tile; } inline int get_scanline_count() { return scanline_count; } inline int get_tile_step() { return (static_cast(direction) - 1) * (1 - container->get_width()); } //! Returns true if the next tile will be on a different scanline /*! To visit a scanline in right-to-left order, or to revisit a scanline, wait until this method returns true, then use a THMapScanlineIterator. */ inline bool is_last_on_scanline() const; private: // Maximum extents of the visible parts of a tile (pixel distances relative // to the top-most corner of an isometric cell) // If set too low, things will disappear when near the screen edge // If set too high, rendering will slow down static const int margin_top = 150; static const int margin_left = 110; static const int margin_right = 110; static const int margin_bottom = 150; friend class map_scanline_iterator; const map_tile* tile{nullptr}; const level_map* container; // TODO: Consider removing these, they are trivial to calculate int x_relative_to_screen{}; int y_relative_to_screen{}; const int screen_offset_x; const int screen_offset_y; const int screen_width; const int screen_height; int base_x; int base_y; int world_x; int world_y; int scanline_count{}; map_scanline_iterator_direction direction; void advance_until_visible(); }; //! Utility class for re-iterating a scanline visited by a map_tile_iterator class map_scanline_iterator { public: map_scanline_iterator(); /*! @arg itrNodes A tile iterator which has reached the end of a scanline @arg eDirection The direction in which to iterate the scanline; forward for left-to-right, backward for right-to-left. @arg iXOffset If given, values returned by x() will be offset by this. @arg iYOffset If given, values returned by y() will be offset by this. */ map_scanline_iterator(const map_tile_iterator& itrNodes, map_scanline_iterator_direction eDirection, int iXOffset = 0, int iYOffset = 0); inline operator bool() const { return tile != end_tile; } inline map_scanline_iterator& operator++(); inline const map_tile* operator->() const { return tile; } inline int x() const { return x_relative_to_screen; } inline int y() const { return y_relative_to_screen; } inline const map_tile* get_next_tile() { return tile + tile_step; } inline const map_tile* get_previous_tile() { return tile - tile_step; } map_scanline_iterator operator=(const map_scanline_iterator& iterator); inline const map_tile* get_tile() { return tile; } private: const map_tile* tile; const map_tile* first_tile; const map_tile* end_tile; int tile_step; int x_step; int x_relative_to_screen; int y_relative_to_screen; int steps_taken{0}; }; #endif // CORSIX_TH_TH_MAP_H_ CorsixTH-0.70.0/CorsixTH/Src/th_map_overlays.cpp000066400000000000000000000146441522247547500214610ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th_map_overlays.h" #include #include #include #include #include #include "th_gfx_font.h" #include "th_gfx_sdl.h" #include "th_map.h" map_overlay_pair::~map_overlay_pair() { set_first(nullptr, false); set_second(nullptr, false); } void map_overlay_pair::set_first(map_overlay* pOverlay, bool bTakeOwnership) { if (first && owns_first) { delete first; } first = pOverlay; owns_first = bTakeOwnership; } void map_overlay_pair::set_second(map_overlay* pOverlay, bool bTakeOwnership) { if (second && owns_second) { delete second; } second = pOverlay; owns_second = bTakeOwnership; } void map_overlay_pair::draw_cell(render_target* pCanvas, int iCanvasX, int iCanvasY, const level_map* pMap, int iNodeX, int iNodeY) { if (first) { first->draw_cell(pCanvas, iCanvasX, iCanvasY, pMap, iNodeX, iNodeY); } if (second) { second->draw_cell(pCanvas, iCanvasX, iCanvasY, pMap, iNodeX, iNodeY); } } void map_text_overlay::set_background_sprite(size_t iSprite) { background_sprite = iSprite; } void map_text_overlay::draw_cell(render_target* pCanvas, int iCanvasX, int iCanvasY, const level_map* pMap, int iNodeX, int iNodeY) { if (sprites && background_sprite) { sprites->draw_sprite(pCanvas, background_sprite, iCanvasX, iCanvasY, 0); } if (font) { draw_text(pCanvas, iCanvasX, iCanvasY, get_text(pMap, iNodeX, iNodeY)); } } const std::string map_positions_overlay::get_text(const level_map* pMap, int iNodeX, int iNodeY) { std::ostringstream str; str << iNodeX + 1 << ',' << iNodeY + 1; return str.str(); } map_typical_overlay::~map_typical_overlay() { set_sprites(nullptr, false); set_font(nullptr, false); } void map_flags_overlay::draw_cell(render_target* pCanvas, int iCanvasX, int iCanvasY, const level_map* pMap, int iNodeX, int iNodeY) { const map_tile* pNode = pMap->get_tile(iNodeX, iNodeY); if (!pNode) { return; } if (sprites) { if (pNode->flags.passable) { sprites->draw_sprite(pCanvas, 3, iCanvasX, iCanvasY, 0); } if (pNode->flags.hospital) { sprites->draw_sprite(pCanvas, 8, iCanvasX, iCanvasY, 0); } if (pNode->flags.buildable) { sprites->draw_sprite(pCanvas, 9, iCanvasX, iCanvasY, 0); } if (pNode->flags.can_travel_n && pMap->get_tile(iNodeX, iNodeY - 1)->flags.passable) { sprites->draw_sprite(pCanvas, 4, iCanvasX, iCanvasY, 0); } if (pNode->flags.can_travel_e && pMap->get_tile(iNodeX + 1, iNodeY)->flags.passable) { sprites->draw_sprite(pCanvas, 5, iCanvasX, iCanvasY, 0); } if (pNode->flags.can_travel_s && pMap->get_tile(iNodeX, iNodeY + 1)->flags.passable) { sprites->draw_sprite(pCanvas, 6, iCanvasX, iCanvasY, 0); } if (pNode->flags.can_travel_w && pMap->get_tile(iNodeX - 1, iNodeY)->flags.passable) { sprites->draw_sprite(pCanvas, 7, iCanvasX, iCanvasY, 0); } } if (font) { if (!pNode->objects.empty()) { std::ostringstream str; str << 'T' << static_cast(pNode->objects.front()); draw_text(pCanvas, iCanvasX, iCanvasY - 8, str.str()); } if (pNode->iRoomId) { std::ostringstream str; str << 'R' << static_cast(pNode->iRoomId); draw_text(pCanvas, iCanvasX, iCanvasY + 8, str.str()); } } } namespace { // The sprite to include if the tile in the direction indicated by dx,dy is // not from the same parcel. struct parcel_edge_sprite { int dx; int dy; size_t sprite; }; // Parcel edge sprites for all four directions constexpr std::array parcel_edges{ {{0, -1, 18}, {1, 0, 19}, {0, 1, 20}, {-1, 0, 21}}}; } // namespace void map_parcels_overlay::draw_cell(render_target* pCanvas, int iCanvasX, int iCanvasY, const level_map* pMap, int iNodeX, int iNodeY) { const map_tile* pNode = pMap->get_tile(iNodeX, iNodeY); if (!pNode) { return; } if (font) { draw_text(pCanvas, iCanvasX, iCanvasY, std::to_string(pNode->iParcelId)); } if (sprites) { for (const parcel_edge_sprite& dir_sprite : parcel_edges) { const map_tile* dir_node = pMap->get_tile(iNodeX + dir_sprite.dx, iNodeY + dir_sprite.dy); if (!dir_node || dir_node->iParcelId == pNode->iParcelId) { sprites->draw_sprite(pCanvas, dir_sprite.sprite, iCanvasX, iCanvasY, 0); } } } } void map_typical_overlay::draw_text(render_target* pCanvas, int iX, int iY, const std::string_view str) { text_layout oArea = font->get_text_dimensions(str.data(), str.length()); font->draw_text(pCanvas, str.data(), str.length(), iX + (64 - oArea.end_x) / 2, iY + (32 - oArea.end_y) / 2); } void map_typical_overlay::set_sprites(sprite_sheet* pSheet, bool bTakeOwnership) { if (sprites && owns_sprites) { delete sprites; } sprites = pSheet; owns_sprites = bTakeOwnership; } void map_typical_overlay::set_font(::font* font, bool take_ownership) { if (this->font && owns_font) { delete this->font; } this->font = font; owns_font = take_ownership; } CorsixTH-0.70.0/CorsixTH/Src/th_map_overlays.h000066400000000000000000000070171522247547500211220ustar00rootroot00000000000000/* Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_MAP_OVERLAYS_H_ #define CORSIX_TH_TH_MAP_OVERLAYS_H_ #include #include #include class font; class level_map; class render_target; class sprite_sheet; class map_overlay { public: virtual ~map_overlay() = default; virtual void draw_cell(render_target* pCanvas, int iCanvasX, int iCanvasY, const level_map* pMap, int iNodeX, int iNodeY) = 0; }; class map_overlay_pair : public map_overlay { public: map_overlay_pair() = default; ~map_overlay_pair() override; void set_first(map_overlay* pOverlay, bool bTakeOwnership); void set_second(map_overlay* pOverlay, bool bTakeOwnership); void draw_cell(render_target* pCanvas, int iCanvasX, int iCanvasY, const level_map* pMap, int iNodeX, int iNodeY) override; private: map_overlay *first{nullptr}, *second{nullptr}; bool owns_first{false}, owns_second{false}; }; class map_typical_overlay : public map_overlay { public: map_typical_overlay() = default; ~map_typical_overlay() override; void set_sprites(sprite_sheet* pSheet, bool bTakeOwnership); void set_font(::font* font, bool take_ownership); protected: void draw_text(render_target* pCanvas, int iX, int iY, std::string_view str); sprite_sheet* sprites{nullptr}; ::font* font{nullptr}; private: bool owns_sprites{false}; bool owns_font{false}; }; class map_text_overlay : public map_typical_overlay { public: map_text_overlay() = default; ~map_text_overlay() override = default; void draw_cell(render_target* pCanvas, int iCanvasX, int iCanvasY, const level_map* pMap, int iNodeX, int iNodeY) override; void set_background_sprite(size_t iSprite); virtual const std::string get_text(const level_map* pMap, int iNodeX, int iNodeY) = 0; private: size_t background_sprite{}; }; class map_positions_overlay final : public map_text_overlay { public: const std::string get_text(const level_map* pMap, int iNodeX, int iNodeY) override; }; class map_flags_overlay final : public map_typical_overlay { public: void draw_cell(render_target* pCanvas, int iCanvasX, int iCanvasY, const level_map* pMap, int iNodeX, int iNodeY) override; }; class map_parcels_overlay final : public map_typical_overlay { public: void draw_cell(render_target* pCanvas, int iCanvasX, int iCanvasY, const level_map* pMap, int iNodeX, int iNodeY) override; }; #endif CorsixTH-0.70.0/CorsixTH/Src/th_movie.cpp000066400000000000000000000562211522247547500200740ustar00rootroot00000000000000/* Copyright (c) 2012 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th_movie.h" #include "config.h" #include "lua_sdl.h" #ifdef CORSIX_TH_USE_FFMPEG extern "C" { #include #include #include #include #include #include #include #include #include } #include #include #include #include #include #include #include #include #include #include #include #include #include namespace { void th_movie_audio_callback(int iChannel, void* pStream, int iStreamSize, void* pUserData) { movie_player* pMovie = static_cast(pUserData); pMovie->copy_audio_to_stream(static_cast(pStream), iStreamSize); } } // namespace movie_picture::movie_picture() : buffer(nullptr), pixel_format(AV_PIX_FMT_RGB24), width(0), height(0), pts(0) {} movie_picture::~movie_picture() { av_freep(&buffer); } void movie_picture::allocate(int iWidth, int iHeight) { int numBytes = av_image_get_buffer_size(pixel_format, iWidth, iHeight, 1); if (numBytes < 0) { throw std::runtime_error( "problem calculating size of buffer for movie_picture"); } width = iWidth; height = iHeight; av_freep(&buffer); buffer = static_cast(av_mallocz(static_cast(numBytes))); } void movie_picture::deallocate() { av_freep(&buffer); } movie_picture_buffer::movie_picture_buffer() : aborting(false), allocated(false), picture_count(0), read_index(0), write_index(0), sws_context(nullptr), texture(nullptr) {} movie_picture_buffer::~movie_picture_buffer() { sws_freeContext(sws_context); if (texture) { SDL_DestroyTexture(texture); texture = nullptr; } } void movie_picture_buffer::abort() { aborting = true; std::scoped_lock lock(mutex); cond.notify_all(); } void movie_picture_buffer::reset() { aborting = false; } void movie_picture_buffer::allocate(SDL_Renderer* pRenderer, int iWidth, int iHeight) { if (texture) { SDL_DestroyTexture(texture); std::cerr << "movie_player overlay should be deallocated before being " "allocated!\n"; } texture = SDL_CreateTexture(pRenderer, SDL_PIXELFORMAT_RGB24, SDL_TEXTUREACCESS_STREAMING, iWidth, iHeight); if (texture == nullptr) { std::cerr << "Problem creating overlay: " << SDL_GetError() << "\n"; return; } for (movie_picture& picture : picture_queue) { picture.allocate(iWidth, iHeight); } // Do not change write_index, it's used by the other thread. // read_index is only used in this thread. read_index = write_index; std::scoped_lock lock(mutex); picture_count = 0; allocated = true; cond.notify_one(); } void movie_picture_buffer::deallocate() { { std::scoped_lock lock(mutex); allocated = false; } for (movie_picture& picture : picture_queue) { std::scoped_lock pictureLock(picture.mutex); picture.deallocate(); } if (texture) { SDL_DestroyTexture(texture); texture = nullptr; } } bool movie_picture_buffer::advance() { if (empty()) { return false; } read_index++; if (read_index == picture_buffer_size) { read_index = 0; } std::scoped_lock lock(mutex); picture_count--; cond.notify_one(); return true; } void movie_picture_buffer::draw(SDL_Renderer* pRenderer, const SDL_Rect& dstrect) { if (!empty()) { auto& cur_pic = picture_queue[read_index]; std::scoped_lock pictureLock(cur_pic.mutex); if (cur_pic.buffer) { SDL_UpdateTexture(texture, nullptr, cur_pic.buffer, cur_pic.width * 3); int iError = SDL_RenderCopy(pRenderer, texture, nullptr, &dstrect); if (iError < 0) { std::cerr << "Error displaying movie frame: " << SDL_GetError() << "\n"; } } } } double movie_picture_buffer::get_next_pts() { double nextPts; std::scoped_lock lock(mutex); if (!allocated || picture_count < 2) { nextPts = 0; } else { nextPts = picture_queue[(read_index + 1UL) % picture_buffer_size].pts; } return nextPts; } bool movie_picture_buffer::empty() { std::scoped_lock lock(mutex); return (!allocated || picture_count == 0); } bool movie_picture_buffer::full() { std::scoped_lock lock(mutex); return unsafe_full(); } bool movie_picture_buffer::unsafe_full() const { return (!allocated || picture_count == picture_buffer_size); } int movie_picture_buffer::write(AVFrame* pFrame, double dPts) { std::unique_lock picBufLock(mutex); while (unsafe_full() && !aborting) { cond.wait(picBufLock); } picBufLock.unlock(); if (aborting) { return -1; } auto& picture = picture_queue[write_index]; std::unique_lock pictureLock(picture.mutex); if (picture.buffer) { sws_context = sws_getCachedContext( sws_context, pFrame->width, pFrame->height, static_cast(pFrame->format), picture.width, picture.height, picture.pixel_format, SWS_BICUBIC, nullptr, nullptr, nullptr); if (sws_context == nullptr) { std::cerr << "Failed to initialize SwsContext\n"; return 1; } /* Allocate a new frame and buffer for the destination RGB24 data. */ av_frame_unique_ptr pFrameRGB(av_frame_alloc()); av_image_fill_arrays(pFrameRGB->data, pFrameRGB->linesize, picture.buffer, picture.pixel_format, picture.width, picture.height, 1); /* Rescale the frame data and convert it to RGB24. */ sws_scale(sws_context, pFrame->data, pFrame->linesize, 0, pFrame->height, pFrameRGB->data, pFrameRGB->linesize); picture.pts = dPts; pictureLock.unlock(); write_index++; if (write_index == picture_buffer_size) { write_index = 0; } picBufLock.lock(); picture_count++; picBufLock.unlock(); } return 0; } av_packet_queue::av_packet_queue() = default; std::size_t av_packet_queue::get_count() const { return data.size(); } void av_packet_queue::push(av_packet_unique_ptr pPacket) { std::scoped_lock lock(mutex); data.push(std::move(pPacket)); cond.notify_one(); } av_packet_unique_ptr av_packet_queue::pull(bool block) { std::unique_lock lock(mutex); if (data.empty() && block) { cond.wait(lock); } av_packet_unique_ptr pPacket(nullptr); if (!data.empty()) { pPacket.swap(data.front()); data.pop(); } return pPacket; } void av_packet_queue::release() { std::scoped_lock lock(mutex); cond.notify_all(); } void av_packet_queue::clear() { while (get_count() > 0) { av_packet_unique_ptr p = pull(false); } } movie_player::movie_player() : renderer(nullptr), format_context(nullptr), video_codec_context(nullptr), audio_codec_context(nullptr), audio_resample_context(nullptr), empty_audio_chunk(nullptr), audio_chunk_buffer{}, audio_channel(-1), error_buffer{}, aborting(false), video_stream_index(-1), audio_stream_index(-1), current_sync_pts(0.0), current_sync_pts_system_time(0), mixer_channels(0), mixer_frequency(0) { #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 9, 100) av_register_all(); #endif } movie_player::~movie_player() { unload(); } void movie_player::set_renderer(SDL_Renderer* pRenderer) { renderer = pRenderer; } bool movie_player::movies_enabled() const { return true; } bool movie_player::load(const char* szFilepath) { int iError = 0; unload(); // Unload any currently loaded video to free memory aborting = false; iError = avformat_open_input(&format_context, szFilepath, nullptr, nullptr); if (iError < 0) { av_strerror(iError, error_buffer, movie_error_buffer_capacity); last_error = std::string(error_buffer); return false; } iError = avformat_find_stream_info(format_context, nullptr); if (iError < 0) { av_strerror(iError, error_buffer, movie_error_buffer_capacity); last_error = std::string(error_buffer); return false; } av_codec_ptr video_decoder; // unowned, do not free video_stream_index = av_find_best_stream(format_context, AVMEDIA_TYPE_VIDEO, -1, -1, &video_decoder, 0); if (video_stream_index < 0) { av_strerror(video_stream_index, error_buffer, movie_error_buffer_capacity); last_error = std::string(error_buffer); return false; } video_codec_context = get_codec_context_for_stream( video_decoder, format_context->streams[video_stream_index]); avcodec_open2(video_codec_context.get(), video_decoder, nullptr); av_codec_ptr audio_decoder; // unowned, do not free audio_stream_index = av_find_best_stream(format_context, AVMEDIA_TYPE_AUDIO, -1, -1, &audio_decoder, 0); if (audio_stream_index >= 0) { audio_codec_context = get_codec_context_for_stream( audio_decoder, format_context->streams[audio_stream_index]); avcodec_open2(audio_codec_context.get(), audio_decoder, nullptr); } return true; } av_codec_context_unique_ptr movie_player::get_codec_context_for_stream( av_codec_ptr codec, AVStream* stream) const { av_codec_context_unique_ptr ctx(avcodec_alloc_context3(codec)); avcodec_parameters_to_context(ctx.get(), stream->codecpar); return ctx; } void movie_player::unload() { aborting = true; audio_queue.release(); video_queue.release(); movie_picture_buffer.abort(); if (stream_thread.joinable()) { stream_thread.join(); } if (video_thread.joinable()) { video_thread.join(); } // wait until after other threads are closed to clear the packet queues // so we don't free something being used. audio_queue.clear(); video_queue.clear(); movie_picture_buffer.deallocate(); video_codec_context.reset(); if (audio_channel >= 0) { Mix_UnregisterAllEffects(audio_channel); Mix_HaltChannel(audio_channel); empty_audio_chunk.reset(); audio_channel = -1; } std::scoped_lock audioLock(decoding_audio_mutex); audio_codec_context.reset(); swr_free(&audio_resample_context); if (format_context) { avformat_close_input(&format_context); } } void movie_player::play(int requested_audio_channel) { if (!renderer) { last_error = std::string("Cannot play before setting the renderer"); return; } audio_queue.clear(); video_queue.clear(); movie_picture_buffer.reset(); movie_picture_buffer.allocate(renderer, video_codec_context->width, video_codec_context->height); paused = false; current_sync_pts = 0; current_sync_pts_system_time = SDL_GetTicks(); play_audio(requested_audio_channel); stream_thread = std::thread(&movie_player::read_streams, this); video_thread = std::thread(&movie_player::run_video, this); } void movie_player::play_audio(int requested_audio_channel) { if (audio_stream_index < 0) { return; } int opened = Mix_QuerySpec(&mixer_frequency, nullptr, &mixer_channels); if (opened == 0 || mixer_channels == 0) { return; } std::int64_t target_channel_layout; switch (mixer_channels) { case 1: target_channel_layout = AV_CH_LAYOUT_MONO; break; case 2: target_channel_layout = AV_CH_LAYOUT_STEREO; break; case 4: target_channel_layout = AV_CH_LAYOUT_QUAD; break; case 6: target_channel_layout = AV_CH_LAYOUT_5POINT1; break; case 8: target_channel_layout = AV_CH_LAYOUT_7POINT1; break; default: std::cerr << "WARN: unsupported channel layout " << mixer_channels << ". Please report issue."; target_channel_layout = 0; } #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 24, 100) && \ LIBSWRESAMPLE_VERSION_INT >= AV_VERSION_INT(4, 5, 100) av_channel_layout_unique_ptr ch_layout(new AVChannelLayout{}); if (target_channel_layout == 0) { av_channel_layout_default(ch_layout.get(), mixer_channels); } else { av_channel_layout_from_mask(ch_layout.get(), target_channel_layout); } swr_alloc_set_opts2(&audio_resample_context, ch_layout.get(), AV_SAMPLE_FMT_S16, mixer_frequency, &(audio_codec_context->ch_layout), audio_codec_context->sample_fmt, audio_codec_context->sample_rate, 0, nullptr); #else if (target_channel_layout == 0) { target_channel_layout = av_get_default_channel_layout(mixer_channels); } audio_resample_context = swr_alloc_set_opts( audio_resample_context, static_cast(target_channel_layout), AV_SAMPLE_FMT_S16, mixer_frequency, static_cast(audio_codec_context->channel_layout), audio_codec_context->sample_fmt, audio_codec_context->sample_rate, 0, nullptr); #endif swr_init(audio_resample_context); empty_audio_chunk.reset( Mix_QuickLoad_RAW(audio_chunk_buffer.data(), static_cast(audio_chunk_buffer.size()))); audio_channel = Mix_PlayChannel(requested_audio_channel, empty_audio_chunk.get(), -1); if (audio_channel < 0) { audio_channel = -1; last_error = std::string(Mix_GetError()); empty_audio_chunk.reset(); } else { Mix_RegisterEffect(audio_channel, th_movie_audio_callback, nullptr, this); } } void movie_player::stop() { aborting = true; } void movie_player::togglePause() { // This is so close to thread safe. Note the potential race between !paused // and paused.exchange. If c++ had an atomic not, or if fetch_xor // worked on bools in c++ 17 I would have done it. As is I'd need a mutex or a // compare_exchange loop, which didn't seem worth it since we only call from // the event thread anyway. bool wasPaused = paused.exchange(!paused); if (!wasPaused) { pause_start_time = SDL_GetTicks(); } else { uint32_t pauseDuration = SDL_GetTicks() - pause_start_time; current_sync_pts_system_time += pauseDuration; } } int movie_player::get_native_height() const { int iHeight = 0; if (video_codec_context) { iHeight = video_codec_context->height; } return iHeight; } int movie_player::get_native_width() const { int iWidth = 0; if (video_codec_context) { iWidth = video_codec_context->width; } return iWidth; } bool movie_player::has_audio_track() const { return (audio_stream_index >= 0); } double movie_player::get_movie_length() const { if (format_context && video_stream_index >= 0) { AVStream* stream = format_context->streams[video_stream_index]; return static_cast(stream->duration) * av_q2d(stream->time_base) * 1000.0; } return 0; } const char* movie_player::get_last_error() const { return last_error.c_str(); } void movie_player::clear_last_error() { last_error.clear(); } double movie_player::refresh(const SDL_Rect& destination_rect) { SDL_Rect dest_rect = SDL_Rect{destination_rect.x, destination_rect.y, destination_rect.w, destination_rect.h}; double dCurTime = (paused.load() ? pause_start_time : SDL_GetTicks()) - current_sync_pts_system_time + current_sync_pts * 1000.0; if (!movie_picture_buffer.empty()) { double dNextPts = movie_picture_buffer.get_next_pts(); if (dNextPts > 0 && dNextPts * 1000.0 <= dCurTime) { movie_picture_buffer.advance(); } movie_picture_buffer.draw(renderer, dest_rect); } return dCurTime; } void movie_player::allocate_picture_buffer() { if (!video_codec_context) { return; } movie_picture_buffer.allocate(renderer, get_native_width(), get_native_height()); } void movie_player::deallocate_picture_buffer() { movie_picture_buffer.deallocate(); } void movie_player::read_streams() { while (!aborting) { av_packet_unique_ptr packet( static_cast(av_malloc(sizeof(AVPacket)))); int iError = av_read_frame(format_context, packet.get()); if (iError < 0) { if (iError == AVERROR_EOF || format_context->pb->error || format_context->pb->eof_reached) { break; } } else { if (packet->stream_index == video_stream_index) { video_queue.push(std::move(packet)); } else if (packet->stream_index == audio_stream_index && audio_channel >= 0) { audio_queue.push(std::move(packet)); } } } while (!aborting) { if (video_queue.get_count() == 0 && audio_queue.get_count() == 0 && movie_picture_buffer.get_next_pts() == 0) { break; } std::this_thread::sleep_for(std::chrono::milliseconds(10)); } SDL_Event endEvent; endEvent.type = SDL_USEREVENT_MOVIE_OVER; SDL_PushEvent(&endEvent); aborting = true; } void movie_player::run_video() { av_frame_unique_ptr pFrame(av_frame_alloc()); double dClockPts; int iError; while (!aborting) { av_frame_unref(pFrame.get()); iError = populate_frame(video_stream_index, *pFrame); if (iError == AVERROR_EOF) { break; } else if (iError < 0) { std::cerr << "Unexpected error " << iError << " while decoding video packet\n"; break; } dClockPts = get_presentation_time_for_frame(*pFrame, video_stream_index); iError = movie_picture_buffer.write(pFrame.get(), dClockPts); if (iError < 0) { break; } } avcodec_flush_buffers(video_codec_context.get()); } double movie_player::get_presentation_time_for_frame(const AVFrame& frame, int streamIndex) const { int64_t pts; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 18, 100) pts = av_frame_get_best_effort_timestamp(&frame); #else pts = frame.best_effort_timestamp; #endif // LIBAVCODEC_VERSION_INT if (pts == AV_NOPTS_VALUE) { pts = 0; } return static_cast(pts) * av_q2d(format_context->streams[streamIndex]->time_base); } int movie_player::populate_frame(int stream, AVFrame& frame) { if (stream == video_stream_index) { return populate_frame(*video_codec_context, video_queue, frame); } else if (stream == audio_stream_index) { return populate_frame(*audio_codec_context, audio_queue, frame); } else { throw std::invalid_argument("Invalid value provided for stream"); } } int movie_player::populate_frame(AVCodecContext& ctx, av_packet_queue& pq, AVFrame& frame) { int iError = AVERROR(EAGAIN); while (iError == AVERROR(EAGAIN)) { iError = avcodec_receive_frame(&ctx, &frame); if (iError == AVERROR(EAGAIN)) { av_packet_unique_ptr pkt = pq.pull(true); int res = avcodec_send_packet(&ctx, pkt.get()); if (res == AVERROR(EAGAIN)) { throw std::runtime_error( "avcodec_receive_frame and avcodec_send_packet should " "not return EAGAIN at the same time"); } } } return iError; } void movie_player::copy_audio_to_stream(uint8_t* pbStream, int iStreamSize) { std::scoped_lock audioLock(decoding_audio_mutex); while (iStreamSize > 0 && !aborting) { int iAudioSize = decode_audio_frame(pbStream, iStreamSize); if (iAudioSize <= 0) { std::memset(pbStream, 0, static_cast(iStreamSize)); return; } else { iStreamSize -= iAudioSize; pbStream += iAudioSize; } } } int movie_player::decode_audio_frame(uint8_t* stream, int stream_size) { // If we are paused, return silence if (paused.load()) { std::memset(stream, 0, static_cast(stream_size)); return stream_size; } int iOutSamples = stream_size / (av_get_bytes_per_sample(AV_SAMPLE_FMT_S16) * mixer_channels); int actual_samples = swr_convert(audio_resample_context, &stream, iOutSamples, nullptr, 0); if (actual_samples < 0) { std::cerr << "WARN: Unexpected error " << actual_samples << " while converting audio\n"; return 0; } else if (actual_samples > 0) { return actual_samples * av_get_bytes_per_sample(AV_SAMPLE_FMT_S16) * mixer_channels; } av_frame_unique_ptr audio_frame(av_frame_alloc()); int iError = populate_frame(audio_stream_index, *audio_frame); if (iError == AVERROR_EOF) { return 0; } else if (iError < 0) { std::cerr << "WARN: Unexpected error " << iError << " while decoding audio packet\n"; return 0; } double dClockPts = get_presentation_time_for_frame(*audio_frame, audio_stream_index); current_sync_pts = dClockPts; current_sync_pts_system_time = SDL_GetTicks(); actual_samples = swr_convert(audio_resample_context, &stream, iOutSamples, const_cast(&audio_frame->data[0]), audio_frame->nb_samples); if (actual_samples < 0) { std::cerr << "WARN: Unexpected error " << actual_samples << " while converting audio\n"; return 0; } return actual_samples * av_get_bytes_per_sample(AV_SAMPLE_FMT_S16) * mixer_channels; } #else // CORSIX_TH_USE_FFMPEG movie_player::movie_player() {} movie_player::~movie_player() {} void movie_player::set_renderer(SDL_Renderer* renderer) {} bool movie_player::movies_enabled() const { return false; } bool movie_player::load(const char* file_path) { return true; } void movie_player::unload() {} void movie_player::play(int requested_audio_channel) { SDL_Event endEvent; endEvent.type = SDL_USEREVENT_MOVIE_OVER; SDL_PushEvent(&endEvent); } void movie_player::stop() {} void movie_player::togglePause() {} int movie_player::get_native_height() const { return 0; } int movie_player::get_native_width() const { return 0; } bool movie_player::has_audio_track() const { return false; } double movie_player::get_movie_length() const { return 0; } const char* movie_player::get_last_error() const { return nullptr; } void movie_player::clear_last_error() {} double movie_player::refresh(const SDL_Rect& destination_rect) { return 0; } void movie_player::allocate_picture_buffer() {} void movie_player::deallocate_picture_buffer() {} void movie_player::read_streams() {} void movie_player::run_video() {} void movie_player::copy_audio_to_stream(uint8_t* stream, int length) {} #endif // CORSIX_TH_USE_FFMPEG CorsixTH-0.70.0/CorsixTH/Src/th_movie.h000066400000000000000000000410541522247547500175370ustar00rootroot00000000000000/* Copyright (c) 2012 Stephen Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef TH_VIDEO_H #define TH_VIDEO_H #include "config.h" #include #include #include #include #include #include #include #include #include #include #ifdef CORSIX_TH_USE_FFMPEG #include extern "C" { #ifndef INT64_C #define INT64_C(c) (c##LL) #define UINT64_C(c) (c##ULL) #endif #include // IWYU pragma: no_include // IWYU pragma: no_include // IWYU pragma: no_include #include #include // IWYU pragma: keep // IWYU pragma: no_include // IWYU pragma: no_include // IWYU pragma: no_include // IWYU pragma: no_include // IWYU pragma: no_include #include } struct SwsContext; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 0, 100) using av_codec_ptr = AVCodec*; #else using av_codec_ptr = const AVCodec*; #endif //! \brief Functor for deleting AVPackets //! //! Deletes AVPacket pointers that are allocated with av_malloc class av_packet_deleter { public: void operator()(AVPacket* p) { av_packet_unref(p); av_free(p); } }; //! \brief unique_ptr for AVPackets using av_packet_unique_ptr = std::unique_ptr; class av_frame_deleter { public: void operator()(AVFrame* f) { av_frame_free(&f); } }; using av_frame_unique_ptr = std::unique_ptr; class av_codec_context_deleter { public: void operator()(AVCodecContext* c) { avcodec_free_context(&c); } }; using av_codec_context_unique_ptr = std::unique_ptr; //! \brief Functor for deleting Mix_Chunks //! //! Should be moved to a common mixer header when uses of Mix_Chunk outside of //! movies are converted to unique_ptr. class mix_chunk_deleter { public: void operator()(Mix_Chunk* c) { Mix_FreeChunk(c); } }; using mix_chunk_unique_ptr = std::unique_ptr; #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 24, 100) //! \brief Functor for deleting AVChannelLayout class av_channel_layout_deleter { public: void operator()(AVChannelLayout* c) { av_channel_layout_uninit(c); delete c; } }; //! \brief unique_ptr for AVChannelLayout using av_channel_layout_unique_ptr = std::unique_ptr; #endif //! \brief A picture in movie_picture_buffer //! //! Stores the picture from a frame in the movie from the time that it is //! processed until it should be drawn. class movie_picture { public: movie_picture(); ~movie_picture(); //! Allocate the buffer to hold a picture of the given size void allocate(int iWidth, int iHeight); //! Delete the buffer void deallocate(); uint8_t* buffer; ///< Pixel data in #m_pixelFormat const AVPixelFormat pixel_format; ///< The format of pixels to output int width; ///< Picture width int height; ///< Picture height double pts; ///< Presentation time stamp std::mutex mutex; ///< Mutex protecting this picture }; //! A buffer for holding movie pictures and drawing them to the renderer class movie_picture_buffer { public: movie_picture_buffer(); ~movie_picture_buffer(); // NB: The following functions are called by the main program thread //! Indicate that processing should stop and the movie aborted void abort(); //! Resume after having aborted void reset(); //! Ready the picture buffer for a new renderer or new picture dimensions //! by allocating each movie_picture in the queue, resetting the read //! index and allocating a new texture. //! //! \remark Must be run on the program's graphics thread void allocate(SDL_Renderer* pRenderer, int iWidth, int iHeight); //! Destroy the associated texture and deallocate each of the //! movie_pictures in the queue so that the program can release //! the renderer //! //! \remark Must be run on the program's graphics thread void deallocate(); //! Advance the read index bool advance(); //! Draw the movie_picture at the current read index //! //! \param pRenderer The renderer to draw the picture to //! \param dstrect The rectangle on the renderer to draw to //! //! \remark Must be run on the program's graphics thread void draw(SDL_Renderer* pRenderer, const SDL_Rect& dstrect); //! Get the next presentation time stamp double get_next_pts(); //! Return whether there are any pictures left to draw in the picture queue //! //! \remark If the movie_picture_buffer is not allocated it cannot be read //! from or written to. Consequently it is both full and empty. bool empty(); // NB: These functions are called by a second thread //! Return whether there is space to add any more frame data to the queue //! //! \remark If the movie_picture_buffer is not allocated it cannot be read //! from or written to. Consequently it is both full and empty. bool full(); //! Write the given frame (and presentation time stamp) to the picture //! queue //! //! \retval 0 Success //! \retval -1 Abort is in progress //! \retval 1 An error writing the frame int write(AVFrame* pFrame, double dPts); private: //! Return whether there is space to add any more frame data to the queue //! //! \remark Requires external locking bool unsafe_full() const; //! The number of elements to allocate in the picture queue static constexpr std::size_t picture_buffer_size = 4; //! Whether we are in the process of aborting std::atomic aborting; //! Whether the picture buffer is currently allocated bool allocated; //! The number of elements currently written to the picture queue int picture_count; //! The position in the picture queue to be read next std::size_t read_index; //! The position in the picture queue to be written to next std::size_t write_index; //! The context for software scaling and pixel conversion when writing to the //! picture queue SwsContext* sws_context; //! The (potentially hardware) texture to draw the picture to. In OpenGL this //! should only be accessed on the main thread SDL_Texture* texture; //! A mutex for restricting access to the picture buffer to a single thread std::mutex mutex; //! A condition for indicating access to the picture buffer std::condition_variable cond; //! The picture queue, FIFO ring buffer of movie_pictures std::array picture_queue; }; //! The AVPacketQueue is a thread safe queue of movie packets class av_packet_queue { public: //! Construct a new empty packet queue av_packet_queue(); //! Destroy the packet queue. //! //! \remarks Does not free the included packets. The packet queue should be //! flushed before it is destroyed. ~av_packet_queue() = default; //! Push a new packet on the back of the queue void push(av_packet_unique_ptr packet); //! Pull the packet from the front of the queue //! //! \param block Whether to block if the queue is empty or immediately //! return a nullptr av_packet_unique_ptr pull(bool block); //! Return the number of packets in the queue std::size_t get_count() const; //! Release a blocking pull without writing a new packet to the queue. void release(); //! Release and free the entire contents of the queue void clear(); private: std::queue data; ///< The packets in the queue std::mutex mutex; ///< A mutex restricting access to the packet queue to a ///< single thread std::condition_variable cond; ///< A condition to wait on for signaling the packet queue }; #endif // CORSIX_TH_USE_FFMPEG //! Movie player for CorsixTH //! //! The movie player is designed to be preinitialized and used for multiple //! movies. After initializing the movie player, call movie_player::set_renderer //! to assign the current SDL renderer to the movie player. Then //! movie_player::load the desired movie and finally movie_player::play it. class movie_player { public: //! Construct a new movie_player movie_player(); //! Destroy the movie_player ~movie_player(); //! Assign the renderer on which to draw the movie. //! //! movie_player does not take ownership of the render, it is up to the //! caller to delete it, after deleting movie_player or setting a different //! renderer. void set_renderer(SDL_Renderer* pRenderer); //! Return whether movies were compiled into CorsixTH bool movies_enabled() const; //! Load the movie with the given file name bool load(const char* szFilepath); //! Unload and free the currently loaded movie. //! //! \remark This is called by load before loading a new movie so it is //! unnecessary to explicitly call this method. There is no harm either. void unload(); //! Play the currently loaded movie //! //! \param requested_audio_channel The audio channel to use void play(int requested_audio_channel); //! Stop the currently playing movie void stop(); //! Pause the currently playing movie //! //! This method is not thread safe, it should only be called from the event //! thread. void togglePause(); //! Return the original height of the movie int get_native_height() const; //! Return the original width of the movie int get_native_width() const; //! Return whether the movie has an audio stream bool has_audio_track() const; //! Return the length of the movie in milliseconds double get_movie_length() const; //! Return a text description of the last error encountered const char* get_last_error() const; //! Clear the last error so that if there is no more errors before the next //! call to movie_player::get_last_error() it will return an empty string. void clear_last_error(); //! Draw the next frame if it is time to do so //! //! \param destination_rect The location and dimensions in the renderer on //! which to draw the movie //! \returns The current presentation time stamp of the movie in milliseconds double refresh(const SDL_Rect& destination_rect); //! Deallocate the picture buffer and free any resources associated with it. //! //! \remark This destroys the textures and other resources that may lock //! the renderer from being deleted. If the target changes you would call //! this, then free and switch renderers in the outside program, then call //! movie_player::set_renderer and finally //! movie_player::allocate_picture_buffer. \remark Up to the size of the //! picture buffer frames may be lost during this process. void deallocate_picture_buffer(); //! Allocate the picture buffer for the current renderer void allocate_picture_buffer(); //! Read packets from the movie and allocate them to the appropriate stream //! packet queues. Signal if we have reached the end of the movie. //! //! \remark This should not be called externally. It is public as it is the //! entry point of a thread. void read_streams(); //! Read video frames from the video packet queue and write them to the //! picture queue. //! //! \remark This should not be called externally. It is public as it is the //! entry point of a thread. void run_video(); //! Read audio from the audio packet queue, and copy it into the audio //! buffer for playback void copy_audio_to_stream(uint8_t* pbStream, int iStreamSize); private: #ifdef CORSIX_TH_USE_FFMPEG static constexpr size_t movie_error_buffer_capacity = 128; ///< Buffer to hold last error description //! Get the AVCodecContext associated with a given stream av_codec_context_unique_ptr get_codec_context_for_stream( av_codec_ptr codec, AVStream* stream) const; void play_audio(int requested_audio_channel); //! Get the time the given frame should be played (from the start of the //! stream) //! //! \param frame The video or audio frame //! \param streamIndex The position of the stream in m_pFormatContexts //! streams array double get_presentation_time_for_frame(const AVFrame& frame, int streamIndex) const; //! Decode audio from the movie into a format suitable for playback int decode_audio_frame(uint8_t* stream, int stream_size); //! Convert packet data into frames //! //! \param stream The index of the stream to get the frame for //! \param frame An empty frame which gets populated by the data in the //! packet queue. //! \returns FFMPEG result of avcodec_receive_frame int populate_frame(int stream, AVFrame& frame); //! Convert packet data into frames //! //! \param ctx The AVCodecContext of the stream to populate //! \param pq The packet queue to pull packets from //! \param frame An empty frame which gets populated by the data in the //! packet queue. //! \returns FFMPEG result of avcodec_receive_frame int populate_frame(AVCodecContext& ctx, av_packet_queue& pq, AVFrame& frame); SDL_Renderer* renderer; ///< The renderer to draw to //! A description of the last error std::string last_error; //! A buffer for passing to ffmpeg to get error details char error_buffer[movie_error_buffer_capacity]; //! Indicate that we are in the process of aborting playback std::atomic aborting; //! Indicate that playback is paused std::atomic paused{}; uint32_t pause_start_time{}; ///< The time in SDL ticks at which we paused std::mutex decoding_audio_mutex; ///< Synchronize access to #m_pAudioBuffer AVFormatContext* format_context; ///< Information related to the loaded ///< movie and all of its streams int video_stream_index; ///< The index of the video stream int audio_stream_index; ///< The index of the audio stream av_codec_context_unique_ptr video_codec_context; ///< The video codec and information ///< related to video av_codec_context_unique_ptr audio_codec_context; ///< The audio codec and information ///< related to audio // queues for transferring data between threads av_packet_queue video_queue; ///< Packets from the video stream av_packet_queue audio_queue; ///< Packets from the audio stream ::movie_picture_buffer movie_picture_buffer; ///< Buffer of processed video // clock sync parameters std::uint32_t current_sync_pts_system_time; ///< System time matching ///< #current_sync_pts double current_sync_pts; ///< The current presentation time stamp (from the ///< audio stream) SwrContext* audio_resample_context; ///< Context for resampling audio for ///< playback with ffmpeg mix_chunk_unique_ptr empty_audio_chunk; ///< Empty chunk needed for SDL_mixer std::array audio_chunk_buffer; ///< 0'd out buffer for the SDL_mixer chunk int audio_channel; ///< The channel to play audio on, -1 for none int mixer_channels; ///< How many channels to play on (1 - mono, 2 - ///< stereo) int mixer_frequency; ///< The frequency of audio expected by SDL_mixer std::thread stream_thread; ///< The thread responsible for reading the ///< movie streams std::thread video_thread; ///< The thread responsible for decoding the ///< video stream #endif // CORSIX_TH_USE_FFMPEG }; #endif // TH_VIDEO_H CorsixTH-0.70.0/CorsixTH/Src/th_pathfind.cpp000066400000000000000000000456531522247547500205610ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th_pathfind.h" #include "config.h" #include #include #include #include #include #include #include #include "lua.hpp" #include "persist_lua.h" #include "th_map.h" abstract_pathfinder::abstract_pathfinder(pathfinder* pf) : parent(pf), map(nullptr) {} path_node* abstract_pathfinder::init(const level_map* pMap, int iStartX, int iStartY) { int iWidth = pMap->get_width(); parent->destination = nullptr; parent->allocate_node_cache(iWidth, pMap->get_height()); path_node* pNode = &parent->nodes.at(iStartY * iWidth + iStartX); pNode->prev = nullptr; pNode->distance = 0; pNode->guess = guess_distance(pNode); pNode->visited = true; parent->dirty_node_list[0] = pNode; parent->dirty_node_count = 1; parent->open_heap.clear(); return pNode; } /*! No need to check for the node being on the map edge, as the N/E/S/W flags are set as to prevent travelling off the map (as well as to prevent walking through walls). */ bool abstract_pathfinder::search_neighbours(path_node* pNode, map_tile_flags flags, int iWidth) { if (flags.can_travel_w) { if (try_node(pNode, flags, pNode - 1, travel_direction::west)) { return true; } } if (flags.can_travel_e) { if (try_node(pNode, flags, pNode + 1, travel_direction::east)) { return true; } } if (flags.can_travel_n) { if (try_node(pNode, flags, pNode - iWidth, travel_direction::north)) { return true; } } if (flags.can_travel_s) { if (try_node(pNode, flags, pNode + iWidth, travel_direction::south)) { return true; } } return false; } void abstract_pathfinder::record_neighbour_if_passable( path_node* pNode, map_tile_flags neighbour_flags, bool passable, path_node* pNeighbour) { if (pNeighbour->visited) { return; } if (passable && !neighbour_flags.passable) { return; } if (pNeighbour->prev == pNeighbour) { pNeighbour->prev = pNode; pNeighbour->distance = pNode->distance + 1; pNeighbour->guess = guess_distance(pNeighbour); parent->dirty_node_list[parent->dirty_node_count++] = pNeighbour; parent->push_to_open_heap(pNeighbour); } else if (pNode->distance + 1 < pNeighbour->distance) { pNeighbour->prev = pNode; pNeighbour->distance = pNode->distance + 1; /* guess doesn't change, and already in the dirty list */ parent->open_heap_promote(pNeighbour); } } int basic_pathfinder::guess_distance(path_node* pNode) { // As diagonal movement is not allowed, the minimum distance between two // points is the sum of the distance in X and the distance in Y. return abs(pNode->x - destination_x) + abs(pNode->y - destination_y); } bool basic_pathfinder::try_node(path_node* pNode, map_tile_flags flags, path_node* pNeighbour, travel_direction direction) { map_tile_flags neighbour_flags = map->get_tile_unchecked(pNeighbour->x, pNeighbour->y)->flags; record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); return false; } bool basic_pathfinder::find_path(const level_map* pMap, int iStartX, int iStartY, int iEndX, int iEndY) { if (pMap == nullptr) { pMap = parent->default_map; } if (pMap == nullptr || pMap->get_tile(iEndX, iEndY) == nullptr || !pMap->get_tile_unchecked(iEndX, iEndY)->flags.passable) { parent->destination = nullptr; return false; } map = pMap; destination_x = iEndX; destination_y = iEndY; path_node* pNode = init(pMap, iStartX, iStartY); int iWidth = pMap->get_width(); path_node* pTarget = &parent->nodes.at(iEndY * iWidth + iEndX); while (true) { if (pNode == pTarget) { parent->destination = pTarget; return true; } map_tile_flags flags = pMap->get_tile_unchecked(pNode->x, pNode->y)->flags; if (search_neighbours(pNode, flags, iWidth)) { return true; } if (parent->open_heap.empty()) { parent->destination = nullptr; break; } else { pNode = parent->pop_from_open_heap(); } } return false; } int hospital_finder::guess_distance(path_node* pNode) { return 0; } bool hospital_finder::try_node(path_node* pNode, map_tile_flags flags, path_node* pNeighbour, travel_direction direction) { map_tile_flags neighbour_flags = map->get_tile_unchecked(pNeighbour->x, pNeighbour->y)->flags; record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); return false; } bool hospital_finder::find_path_to_hospital(const level_map* pMap, int iStartX, int iStartY) { if (pMap == nullptr) { pMap = parent->default_map; } if (pMap == nullptr || pMap->get_tile(iStartX, iStartY) == nullptr || !pMap->get_tile_unchecked(iStartX, iStartY)->flags.passable) { parent->destination = nullptr; return false; } map = pMap; path_node* pNode = init(pMap, iStartX, iStartY); int iWidth = pMap->get_width(); while (true) { pNode->visited = true; map_tile_flags flags = pMap->get_tile_unchecked(pNode->x, pNode->y)->flags; if (flags.hospital) { parent->destination = pNode; return true; } if (search_neighbours(pNode, flags, iWidth)) { return true; } if (parent->open_heap.empty()) { parent->destination = nullptr; break; } else { pNode = parent->pop_from_open_heap(); } } return false; } int idle_tile_finder::guess_distance(path_node* pNode) { return 0; } bool idle_tile_finder::try_node(path_node* pNode, map_tile_flags flags, path_node* pNeighbour, travel_direction direction) { if (pNeighbour->visited) { return false; } map_tile_flags neighbour_flags = map->get_tile_unchecked(pNeighbour->x, pNeighbour->y)->flags; /* When finding an idle tile, do not navigate through doors */ switch (direction) { case travel_direction::north: if (!flags.door_north) { record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); } break; case travel_direction::east: if (!neighbour_flags.door_west) { record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); } break; case travel_direction::south: if (!neighbour_flags.door_north) { record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); } break; case travel_direction::west: if (!flags.door_west) { record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); } break; } /* Identify the neighbour in the open list nearest to the start */ if (pNeighbour->prev != pNeighbour) { int iDX = pNeighbour->x - start_x; int iDY = pNeighbour->y - start_y; double fDistance = sqrt((double)(iDX * iDX + iDY * iDY)); if (best_next_node == nullptr || fDistance < best_distance) { best_next_node = pNeighbour; best_distance = fDistance; } } return false; } bool idle_tile_finder::find_idle_tile(const level_map* pMap, int iStartX, int iStartY, int iN, int parcelId) { if (pMap == nullptr) { pMap = parent->default_map; } if (pMap == nullptr) { parent->destination = nullptr; return false; } start_x = iStartX; start_y = iStartY; map = pMap; if (parcelId <= 0 || parcelId > pMap->get_parcel_count() || pMap->get_parcel_owner(parcelId) == 0) parcelId = 0; path_node* pNode = init(pMap, iStartX, iStartY); int iWidth = pMap->get_width(); path_node* pPossibleResult = nullptr; while (true) { pNode->visited = true; // Check whether pNode is a feasible destination. const map_tile* node_tile = pMap->get_tile_unchecked(pNode->x, pNode->y); map_tile_flags flags = node_tile->flags; bool correct_parcel = parcelId == 0 || parcelId == node_tile->iParcelId; if (!flags.do_not_idle && flags.passable && flags.hospital && correct_parcel) { // Try to delay returning an idle tile until we find the Nth tile. if (iN == 0) { parent->destination = pNode; return true; } else { pPossibleResult = pNode; --iN; } } best_next_node = nullptr; best_distance = 0.0; if (search_neighbours(pNode, flags, iWidth)) { return true; } if (parent->open_heap.empty()) { parent->destination = nullptr; break; } if (best_next_node) { // Promote the best neighbour to the front of the open list // This causes sequential iN to give neighbouring results for most // iN best_next_node->guess = -best_next_node->distance; parent->open_heap_promote(best_next_node); } pNode = parent->pop_from_open_heap(); } if (pPossibleResult) { parent->destination = pPossibleResult; return true; } return false; } int object_visitor::guess_distance(path_node* pNode) { return 0; } bool object_visitor::try_node(path_node* pNode, map_tile_flags flags, path_node* pNeighbour, travel_direction direction) { int iObjectNumber = 0; const map_tile* pMapNode = map->get_tile_unchecked(pNeighbour->x, pNeighbour->y); map_tile_flags neighbour_flags = map->get_tile_unchecked(pNeighbour->x, pNeighbour->y)->flags; for (auto thob : pMapNode->objects) { if (thob == target) { iObjectNumber++; } } if (target_any_object_type) { iObjectNumber = 1; } bool bSucces = false; for (int i = 0; i < iObjectNumber; i++) { /* call the given Lua function, passing four arguments: */ /* The x and y position of the object (Lua tile co-ords) */ /* The direction which was last travelled in to reach (x,y); */ /* 0 (north), 1 (east), 2 (south), 3 (west) */ /* The distance to the object from the search starting point */ lua_pushvalue(L, visit_function_index); lua_pushinteger(L, pNeighbour->x + 1); lua_pushinteger(L, pNeighbour->y + 1); lua_pushinteger(L, static_cast(direction)); lua_pushinteger(L, pNode->distance); lua_call(L, 4, 1); if (lua_toboolean(L, -1) != 0) { bSucces = true; } lua_pop(L, 1); } if (bSucces) { return true; } if (pNode->distance < max_distance) { switch (direction) { case travel_direction::north: if (!flags.door_north) { record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); } break; case travel_direction::east: if (!neighbour_flags.door_west) { record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); } break; case travel_direction::south: if (!neighbour_flags.door_north) { record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); } break; case travel_direction::west: if (!flags.door_west) { record_neighbour_if_passable(pNode, neighbour_flags, flags.passable, pNeighbour); } break; } } return false; } bool object_visitor::visit_objects(const level_map* pMap, int iStartX, int iStartY, object_type eTHOB, int iMaxDistance, lua_State* L, int iVisitFunction, bool anyObjectType) { if (pMap == nullptr) { pMap = parent->default_map; } if (pMap == nullptr) { parent->destination = nullptr; return false; } this->L = L; visit_function_index = iVisitFunction; max_distance = iMaxDistance; target_any_object_type = anyObjectType; target = eTHOB; map = pMap; path_node* pNode = init(pMap, iStartX, iStartY); int iWidth = pMap->get_width(); while (true) { pNode->visited = true; map_tile_flags flags = pMap->get_tile_unchecked(pNode->x, pNode->y)->flags; if (search_neighbours(pNode, flags, iWidth)) { return true; } if (parent->open_heap.empty()) { parent->destination = nullptr; break; } else { pNode = parent->pop_from_open_heap(); } } return false; } pathfinder::pathfinder() : default_map(nullptr), nodes({}), dirty_node_list(nullptr), destination(nullptr), node_cache_width(0), node_cache_height(0), dirty_node_count(0), basic_pathfinder(this), hospital_finder(this), idle_tile_finder(this), object_visitor(this) {} pathfinder::~pathfinder() { delete[] dirty_node_list; } void pathfinder::set_default_map(const level_map* pMap) { default_map = pMap; } void pathfinder::allocate_node_cache(int iWidth, int iHeight) { if (node_cache_width != iWidth || node_cache_height != iHeight) { nodes = std::vector(iWidth * iHeight); for (int iY = 0; iY < iHeight; ++iY) { for (int iX = 0; iX < iWidth; ++iX) { path_node& node = nodes[iY * iWidth + iX]; node.prev = &node; node.x = iX; node.y = iY; node.visited = false; // Other fields are undefined as the node is not part of a // path, and thus can be left uninitialised. } } delete[] dirty_node_list; dirty_node_list = new path_node*[iWidth * iHeight]; node_cache_width = iWidth; node_cache_height = iHeight; } else { for (int i = 0; i < dirty_node_count; ++i) { dirty_node_list[i]->prev = dirty_node_list[i]; dirty_node_list[i]->visited = false; // Other fields are undefined as the node is not part of a path, // and thus can keep their old values. } } dirty_node_count = 0; } int pathfinder::get_path_length() const { if (destination != nullptr) { return destination->distance; } else { return -1; } } bool pathfinder::get_path_end(int* pX, int* pY) const { if (destination == nullptr) { if (pX) { *pX = -1; } if (pY) { *pY = -1; } return false; } if (pX) { *pX = destination->x; } if (pY) { *pY = destination->y; } return true; } void pathfinder::push_result(lua_State* L) const { lua_checkstack(L, 3); if (destination == nullptr) { lua_pushnil(L); lua_pushliteral(L, "no path"); return; } int iLength = destination->distance; lua_createtable(L, iLength + 1, 0); lua_createtable(L, iLength + 1, 0); for (const path_node* pNode = destination; pNode; pNode = pNode->prev) { lua_pushinteger(L, pNode->x + 1); lua_rawseti(L, -3, pNode->distance + 1); lua_pushinteger(L, pNode->y + 1); lua_rawseti(L, -2, pNode->distance + 1); } } void pathfinder::push_to_open_heap(path_node* pNode) { pNode->open_idx = open_heap.size(); open_heap.push_back(pNode); open_heap_promote(pNode); } void pathfinder::open_heap_promote(path_node* pNode) { size_t i = pNode->open_idx; if (open_heap.at(i) != pNode) { throw std::runtime_error( "Invalid open_idx on node. Does not point to itself in the open heap"); } while (i > 0) { size_t parent = (i - 1) / 2; path_node* pParent = open_heap[parent]; if (pParent->value() <= pNode->value()) { break; } pParent->open_idx = i; open_heap[i] = pParent; open_heap[parent] = pNode; i = parent; } pNode->open_idx = i; } path_node* pathfinder::pop_from_open_heap() { path_node* pResult = open_heap[0]; path_node* pNode = open_heap.back(); open_heap.pop_back(); if (open_heap.empty()) { return pResult; } open_heap[0] = pNode; int i = 0; int min = 0; int left = i * 2 + 1; const int value = pNode->value(); while (left < open_heap.size()) { min = i; const int right = (i + 1) * 2; int minvalue = value; path_node* pSwap = nullptr; path_node* pTest = open_heap[left]; if (pTest->value() < minvalue) { min = left; minvalue = pTest->value(); pSwap = pTest; } if (right < open_heap.size()) { pTest = open_heap[right]; if (pTest->value() < minvalue) { min = right; pSwap = pTest; } } if (min == i) { break; } pSwap->open_idx = i; open_heap[i] = pSwap; open_heap[min] = pNode; i = min; left = i * 2 + 1; } pNode->open_idx = min; return pResult; } void pathfinder::persist(lua_persist_writer* pWriter) const { if (destination == nullptr) { pWriter->write_uint(0); return; } pWriter->write_uint(get_path_length() + 1); pWriter->write_uint(node_cache_width); pWriter->write_uint(node_cache_height); for (const path_node* pNode = destination; pNode; pNode = pNode->prev) { pWriter->write_uint(pNode->x); pWriter->write_uint(pNode->y); } } void pathfinder::depersist(lua_persist_reader* pReader) { int iLength; if (!pReader->read_uint(iLength)) { return; } if (iLength == 0) { return; } int iWidth, iHeight; if (!pReader->read_uint(iWidth) || !pReader->read_uint(iHeight)) { return; } allocate_node_cache(iWidth, iHeight); int iX, iY; if (!pReader->read_uint(iX) || !pReader->read_uint(iY)) { return; } path_node* pNode = &nodes[iY * iWidth + iX]; destination = pNode; for (int i = 0; i <= iLength - 2; ++i) { if (!pReader->read_uint(iX) || !pReader->read_uint(iY)) { return; } path_node* pPrevNode = &nodes[iY * iWidth + iX]; pNode->distance = iLength - 1 - i; pNode->prev = pPrevNode; dirty_node_list[dirty_node_count++] = pNode; pNode = pPrevNode; } pNode->distance = 0; pNode->prev = nullptr; dirty_node_list[dirty_node_count++] = pNode; } CorsixTH-0.70.0/CorsixTH/Src/th_pathfind.h000066400000000000000000000251241522247547500202150ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_PATHFIND_H_ #define CORSIX_TH_TH_PATHFIND_H_ #include "config.h" #include #include #include "lua.hpp" class level_map; class lua_persist_reader; class lua_persist_writer; class pathfinder; enum class object_type : uint8_t; struct map_tile_flags; /** Directions of movement. */ enum class travel_direction { north = 0, ///< Move to the north. east = 1, ///< Move to the east. south = 2, ///< Move to the south. west = 3 ///< Move to the west. }; /** Node in the path finder routines. */ struct path_node { //! Pointer to the previous node in the path to this cell. /*! Points to nullptr if this is the first cell in the path, or points to itself if it is not part of a path. */ const path_node* prev; //! X-position of this cell (constant) int x; //! Y-position of this cell (constant) int y; //! Current shortest distance to this cell /*! Defined as prev->distance + 1 (or 0 if prev == nullptr). Value is undefined if not part of a path. */ int distance; //! Minimum distance from this cell to the goal /*! Value is only dependent upon the cell position and the goal position, and is undefined if not part of a path. */ int guess; //! Index of this cell in the open heap /*! If the cell is not in the open heap, then this value is undefined. */ size_t open_idx; //! True if the cell has already been visited (popped from the open heap) bool visited; //! Total cost of this node. /*! @return Total cost of the node, traveled distance and guess to the destination. */ inline int value() const { return distance + guess; } }; /** Base class of the path finders. */ class abstract_pathfinder { public: abstract_pathfinder(pathfinder* pf); virtual ~abstract_pathfinder() = default; //! Initialize the path finder. /*! @param pMap Map to search on. @param iStartX X coordinate of the start position. @param iStarty Y coordinate of the start position. @return The initial node to expand. */ path_node* init(const level_map* pMap, int iStartX, int iStarty); //! Expand the \a pNode to its neighbours. /*! @param pNode Node to expand. @param flags Flags of the node. @param iWidth Width of the map. @return Whether the search is done. */ bool search_neighbours(path_node* pNode, map_tile_flags flags, int iWidth); void record_neighbour_if_passable(path_node* pNode, map_tile_flags neighbour_flags, bool passable, path_node* pNeighbour); //! Guess distance to the destination for \a pNode. /*! @param pNode Node to fill. */ virtual int guess_distance(path_node* pNode) = 0; //! Try the \a pNeighbour node. /*! @param pNode Source node. @param flags Flags of the node. @param pNeighbour Neighbour of \a pNode to try. @param direction Direction of travel. @return Whether the search is done. */ virtual bool try_node(path_node* pNode, map_tile_flags flags, path_node* pNeighbour, travel_direction direction) = 0; protected: pathfinder* parent; ///< Path finder parent object, containing shared data. const level_map* map; ///< Map being searched. }; class basic_pathfinder : public abstract_pathfinder { public: explicit basic_pathfinder(pathfinder* pf) : abstract_pathfinder(pf), destination_x(0), destination_y(0) {} int guess_distance(path_node* pNode) override; bool try_node(path_node* pNode, map_tile_flags flags, path_node* pNeighbour, travel_direction direction) override; bool find_path(const level_map* pMap, int iStartX, int iStartY, int iEndX, int iEndY); int destination_x; ///< X coordinate of the destination of the path. int destination_y; ///< Y coordinate of the destination of the path. }; class hospital_finder : public abstract_pathfinder { public: explicit hospital_finder(pathfinder* pf) : abstract_pathfinder(pf) {} int guess_distance(path_node* pNode) override; bool try_node(path_node* pNode, map_tile_flags flags, path_node* pNeighbour, travel_direction direction) override; bool find_path_to_hospital(const level_map* pMap, int iStartX, int iStartY); }; class idle_tile_finder : public abstract_pathfinder { public: explicit idle_tile_finder(pathfinder* pf) : abstract_pathfinder(pf), best_next_node(nullptr), best_distance(0), start_x(0), start_y(0) {} int guess_distance(path_node* pNode) override; bool try_node(path_node* pNode, map_tile_flags flags, path_node* pNeighbour, travel_direction direction) override; //| Find a tile for idling. /*! @param pMap Map to search. @param iStartX X coordinate of the start position. @param iStartY Y coordinate of the start position. @param iN Return the Nth idle tile. Used for queueing and randomizing idle tiles. @param parcelId Id of the parcel with valid destinations, use \c 0 for any parcel. */ bool find_idle_tile(const level_map* pMap, int iStartX, int iStartY, int iN, int parcelId); path_node* best_next_node; double best_distance; int start_x; ///< X coordinate of the start position. int start_y; ///< Y coordinate of the start position. }; class object_visitor : public abstract_pathfinder { public: explicit object_visitor(pathfinder* pf) : abstract_pathfinder(pf), L(nullptr), visit_function_index{}, max_distance{}, target_any_object_type{}, target{} {} int guess_distance(path_node* pNode) override; bool try_node(path_node* pNode, map_tile_flags flags, path_node* pNeighbour, travel_direction direction) override; bool visit_objects(const level_map* pMap, int iStartX, int iStartY, object_type eTHOB, int iMaxDistance, lua_State* L, int iVisitFunction, bool anyObjectType); lua_State* L; int visit_function_index; int max_distance; bool target_any_object_type; object_type target; }; //! Finds paths through maps /*! A pathfinder is used for finding a path through a map. A single pathfinder instance is not reentrant, but separate instances are. Users of the class should call find_path() to test if there is a path between two points on a map, and then use get_path_length() and/or push_result() to get the actual path. Internally, the A* search algorithm is used. The open set is implemented as a heap in open_heap, and there is no explicit closed set. For each cell of the map, a path_node structure is created (and cached between searches if the map size is constant), which holds information about said map cell in the current search. The algorithm is implemented in such a way that most path find operations do not need to allocate (or free) any memory. */ class pathfinder { public: pathfinder(); ~pathfinder(); void set_default_map(const level_map* pMap); inline bool find_path(const level_map* pMap, int iStartX, int iStartY, int iEndX, int iEndY) { return basic_pathfinder.find_path(pMap, iStartX, iStartY, iEndX, iEndY); } inline bool find_idle_tile(const level_map* pMap, int iStartX, int iStartY, int iN, int parcelId) { return idle_tile_finder.find_idle_tile(pMap, iStartX, iStartY, iN, parcelId); } inline bool find_path_to_hospital(const level_map* pMap, int iStartX, int iStartY) { return hospital_finder.find_path_to_hospital(pMap, iStartX, iStartY); } inline bool visit_objects(const level_map* pMap, int iStartX, int iStartY, object_type eTHOB, int iMaxDistance, lua_State* L, int iVisitFunction, bool anyObjectType) { return object_visitor.visit_objects(pMap, iStartX, iStartY, eTHOB, iMaxDistance, L, iVisitFunction, anyObjectType); } int get_path_length() const; bool get_path_end(int* pX, int* pY) const; void push_result(lua_State* L) const; void persist(lua_persist_writer* pWriter) const; void depersist(lua_persist_reader* pReader); //! Allocate node cache for all tiles of the map. /*! @param iWidth Width of the map. @param iHeight Height of the map. */ void allocate_node_cache(int iWidth, int iHeight); path_node* pop_from_open_heap(); void push_to_open_heap(path_node* pNode); void open_heap_promote(path_node* pNode); const level_map* default_map; //! 2D array of nodes, one for each map cell std::vector nodes; //! Array of "dirty" nodes which need to be reset before the next path find /*! This array is always large enough to hold every single node, and #dirty_node_count holds the number of items currently in the array. */ path_node** dirty_node_list; //! Heap of not yet evaluated nodes as a 0-based array /*! This array conforms to the conditions: value(i) <= value(i * 2 + 1) value(i) <= value(i * 2 + 2) This causes the array to be a minimum binary heap. */ std::vector open_heap; path_node* destination; int node_cache_width; int node_cache_height; int dirty_node_count; private: ::basic_pathfinder basic_pathfinder; ::hospital_finder hospital_finder; ::idle_tile_finder idle_tile_finder; ::object_visitor object_visitor; }; #endif // CORSIX_TH_TH_PATHFIND_H_ CorsixTH-0.70.0/CorsixTH/Src/th_sound.cpp000066400000000000000000000260761522247547500201120ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "th_sound.h" #include "config.h" #include #include #include #include #include #include #include #include "th.h" // https://github.com/CorsixTH/theme-hospital-spec/blob/master/format-specification.md#info constexpr size_t archive_header_size = 234; constexpr size_t archive_header_table_position_offset = 50; constexpr size_t archive_header_table_length_offset = 58; constexpr size_t sound_entry_size = 32; constexpr size_t sound_entry_position_offset = 18; constexpr size_t sound_entry_length_offset = 26; bool sound_archive::load_from_th_file(const uint8_t* pData, size_t iDataLength) { if (iDataLength < sizeof(uint32_t) + archive_header_size) { return false; } // Last 4 bytes of the file is the position of the header uint32_t headerPosition = bytes_to_uint32_le(pData + iDataLength - sizeof(uint32_t)); // safety check on header position if (static_cast(headerPosition) >= iDataLength - archive_header_size) { return false; } // table position size_t tablePosition = static_cast(bytes_to_uint32_le( pData + headerPosition + archive_header_table_position_offset)); size_t tableLength = static_cast(bytes_to_uint32_le( pData + headerPosition + archive_header_table_length_offset)); data.resize(iDataLength); std::copy_n(pData, iDataLength, data.begin()); size_t soundFileCount = tableLength / sound_entry_size; sound_files.clear(); for (int i = 0; i < soundFileCount; ++i) { size_t offset = tablePosition + i * sound_entry_size; if (offset + sound_entry_size > iDataLength) { return false; // Out of bounds } sound_dat_sound_info soundInfo{ {}, bytes_to_uint32_le(data.data() + offset + sound_entry_position_offset), bytes_to_uint32_le(data.data() + offset + sound_entry_length_offset)}; std::copy_n(data.data() + offset, soundInfo.sound_name.size(), soundInfo.sound_name.begin()); sound_files.push_back(soundInfo); } return true; } size_t sound_archive::get_number_of_sounds() const { return sound_files.size(); } const char* sound_archive::get_sound_name(size_t iIndex) const { if (iIndex >= sound_files.size()) return nullptr; return sound_files[iIndex].sound_name.data(); } constexpr uint32_t fourcc(const char c1, const char c2, const char c3, const char c4) { return ((static_cast(static_cast(c1)) << 0) | (static_cast(static_cast(c2)) << 8) | (static_cast(static_cast(c3)) << 16) | (static_cast(static_cast(c4)) << 24)); } namespace { template inline uint64_t mul64(A a, B b) { return static_cast(a) * static_cast(b); } } // namespace size_t sound_archive::get_sound_duration(size_t iIndex) { SDL_RWops* pFile = load_sound(iIndex); if (!pFile) { return 0; } uint16_t iWaveAudioFormat = 0; uint16_t iWaveChannelCount = 0; uint32_t iWaveSampleRate = 0; uint32_t iWaveByteRate = 0; uint16_t iWaveBlockAlign = 0; uint16_t iWaveBitsPerSample = 0; uint32_t iWaveDataLength = 0; // This is a very crude RIFF parser, but it does the job. uint32_t iFourCC; uint32_t iChunkLength; for (;;) { if (SDL_RWread(pFile, &iFourCC, 4, 1) != 1) { break; } if (SDL_RWread(pFile, &iChunkLength, 4, 1) != 1) { break; } if (iFourCC == fourcc('R', 'I', 'F', 'F') || iFourCC == fourcc('L', 'I', 'S', 'T')) { if (iChunkLength >= 4) { if (SDL_RWread(pFile, &iFourCC, 4, 1) != 1) { break; } else { continue; } } } if (iFourCC == fourcc('f', 'm', 't', ' ') && iChunkLength >= 16) { if (SDL_RWread(pFile, &iWaveAudioFormat, 2, 1) != 1) { break; } if (SDL_RWread(pFile, &iWaveChannelCount, 2, 1) != 1) { break; } if (SDL_RWread(pFile, &iWaveSampleRate, 4, 1) != 1) { break; } if (SDL_RWread(pFile, &iWaveByteRate, 4, 1) != 1) { break; } if (SDL_RWread(pFile, &iWaveBlockAlign, 2, 1) != 1) { break; } if (SDL_RWread(pFile, &iWaveBitsPerSample, 2, 1) != 1) { break; } iChunkLength -= 16; } // Finally: if (iFourCC == fourcc('d', 'a', 't', 'a')) { iWaveDataLength = iChunkLength; break; } if (SDL_RWseek(pFile, iChunkLength + (iChunkLength & 1), RW_SEEK_CUR) == -1) { break; } } SDL_RWclose(pFile); if (iWaveAudioFormat != 1 || iWaveChannelCount == 0 || iWaveSampleRate == 0 || iWaveDataLength == 0 || iWaveBitsPerSample == 0) { return 0; } return static_cast( mul64(iWaveDataLength, 8000) / mul64(mul64(iWaveBitsPerSample, iWaveChannelCount), iWaveSampleRate)); } SDL_RWops* sound_archive::load_sound(size_t iIndex) { if (iIndex >= sound_files.size()) { return nullptr; } sound_dat_sound_info pFile = sound_files[iIndex]; return SDL_RWFromConstMem(data.data() + pFile.position, static_cast(pFile.length)); } sound_player* sound_player::singleton = nullptr; sound_player::sound_player() : sounds(nullptr), sound_count(0), camera_x(0), camera_y(0), camera_radius(1.0), master_volume(1.0), sound_effect_volume(0.5), positionless_volume(MIX_MAX_VOLUME), sound_effects_enabled(true) { singleton = this; Mix_AllocateChannels(number_of_channels); Mix_ChannelFinished(on_channel_finished); channels.fill(null_handle); // Avoid likely having the same handles in save games auto seconds = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()) .count(); next_playing_track_handle = static_cast(seconds); } sound_player::~sound_player() { populate_from(nullptr); if (singleton == this) { singleton = nullptr; } } void sound_player::on_channel_finished(int iChannel) { sound_player* pThis = get_singleton(); if (pThis == nullptr) return; pThis->release_channel(iChannel); } sound_player* sound_player::get_singleton() { return singleton; } void sound_player::populate_from(sound_archive* pArchive) { for (size_t i = 0; i < sound_count; ++i) { Mix_FreeChunk(sounds[i]); } delete[] sounds; sounds = nullptr; sound_count = 0; if (pArchive == nullptr) return; sounds = new Mix_Chunk*[pArchive->get_number_of_sounds()]; for (; sound_count < pArchive->get_number_of_sounds(); ++sound_count) { sounds[sound_count] = nullptr; if (SDL_RWops* pRwop = pArchive->load_sound(sound_count)) { sounds[sound_count] = Mix_LoadWAV_RW(pRwop, 1); if (sounds[sound_count]) { Mix_VolumeChunk(sounds[sound_count], MIX_MAX_VOLUME); } } } } uint32_t sound_player::play(size_t iIndex, double dVolume, int loops) { if (iIndex >= sound_count || !sounds[iIndex]) { return null_handle; } return play_raw(iIndex, static_cast(positionless_volume * dVolume), loops); } uint32_t sound_player::play_at(size_t iIndex, int iX, int iY, int loops) { if (sound_effects_enabled) { return play_at(iIndex, sound_effect_volume, iX, iY, loops); } return null_handle; } uint32_t sound_player::play_at(size_t iIndex, double dVolume, int iX, int iY, int loops) { if (iIndex >= sound_count || !sounds[iIndex]) { return null_handle; } const double fDX = iX - camera_x; const double fDY = iY - camera_y; double fDistance = sqrt(fDX * fDX + fDY * fDY); if (fDistance > camera_radius) return null_handle; fDistance = fDistance / camera_radius; double fVolume = master_volume * (1.0 - fDistance * 0.8) * (MIX_MAX_VOLUME * dVolume); return play_raw(iIndex, static_cast(std::lround(fVolume)), loops); } sound_player::toggle_pause_result sound_player::toggle_pause(uint32_t handle) { int channel = playing_channel_for_handle(handle); if (channel < 0) { return toggle_pause_result::error; } if (Mix_Paused(channel)) { Mix_Resume(channel); return toggle_pause_result::resumed; } else { Mix_Pause(channel); return toggle_pause_result::paused; } } void sound_player::stop(uint32_t handle) { int channel = playing_channel_for_handle(handle); if (channel < 0) { return; } Mix_HaltChannel(channel); release_channel(channel); } bool sound_player::is_playing(uint32_t handle) { return playing_channel_for_handle(handle) >= 0; } void sound_player::set_sound_effect_volume(double dVolume) { sound_effect_volume = dVolume; } void sound_player::set_sound_effects_enabled(bool bOn) { sound_effects_enabled = bOn; } int sound_player::reserve_channel() { std::scoped_lock lock(channel_mutex); for (size_t i = 0; i < channels.size(); ++i) { if (channels[i] == null_handle) { // Don't assign a null handle to a playing track if (next_playing_track_handle == null_handle) { next_playing_track_handle++; } channels[i] = next_playing_track_handle++; return static_cast(i); } } return -1; } void sound_player::release_channel(int iChannel) { std::scoped_lock lock(channel_mutex); channels[iChannel] = null_handle; } uint32_t sound_player::play_raw(size_t iIndex, int iVolume, int loops) { int iChannel = reserve_channel(); if (iChannel < 0) { return null_handle; } Mix_Volume(iChannel, iVolume); Mix_PlayChannel(iChannel, sounds[iIndex], loops); return channels[iChannel]; } void sound_player::set_camera(int iX, int iY, int iRadius) { camera_x = iX; camera_y = iY; camera_radius = static_cast(iRadius); if (camera_radius < 0.001) camera_radius = 0.001; } int sound_player::playing_channel_for_handle(uint32_t handle) { std::scoped_lock lock(channel_mutex); if (handle == null_handle) { return -1; } for (size_t i = 0; i < channels.size(); ++i) { if (channels[i] == handle) { return static_cast(i); } } return -1; } CorsixTH-0.70.0/CorsixTH/Src/th_sound.h000066400000000000000000000147171522247547500175560ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_TH_SOUND_H_ #define CORSIX_TH_TH_SOUND_H_ #include "config.h" #include #include #include #include #include //! Utility class for accessing Theme Hospital's SOUND-0.DAT class sound_archive { public: bool load_from_th_file(const uint8_t* pData, size_t iDataLength); //! Returns the number of sounds present in the archive size_t get_number_of_sounds() const; //! Gets the name of the sound at a given index const char* get_sound_name(size_t iIndex) const; //! Gets the duration (in milliseconds) of the sound at a given index size_t get_sound_duration(size_t iIndex); //! Opens the sound at a given index into an SDL_RWops structure /*! The caller is responsible for closing/freeing the result. */ SDL_RWops* load_sound(size_t iIndex); private: struct sound_dat_sound_info { std::array sound_name; uint32_t position; uint32_t length; }; std::vector data; std::vector sound_files; }; class sound_player { public: enum class toggle_pause_result { error, paused, resumed }; static constexpr uint32_t null_handle = 0u; static constexpr int number_of_channels = 32; sound_player(); sound_player(const sound_player&) = delete; sound_player& operator=(const sound_player&) = delete; ~sound_player(); static sound_player* get_singleton(); void populate_from(sound_archive* pArchive); //! Plays the sound effect in the sound_archive with the given index. //! //! \param iIndex Index of the sound effect to play. //! \param dVolume Volume to play the sound effect at, in the range 0.0 to //! 1.0. //! \param loops The number of times to play the sound, -1 for 'practically' //! infinite. //! \return The sound handle //! \see Mix_PlayChannel uint32_t play(size_t iIndex, double dVolume, int loops); //! Plays the sound effect in the sound_archive with the given index with //! volume attenuation based on the distance from the given position to the //! camera. //! //! \param iIndex Index of the sound effect to play. //! \param iX X coordinate of the sound effect. //! \param iY Y coordinate of the sound effect. //! \param loops The number of times to play the sound, -1 for 'practically' //! infinite. //! \return The sound handle or 0 on error uint32_t play_at(size_t iIndex, int iX, int iY, int loops); //! Plays the sound effect in the sound_archive with the given index with //! volume attenuation based on the distance from the given position to the //! camera. //! //! \param iIndex Index of the sound effect to play. //! \param dVolume Volume to play the sound effect at before attenuation, in //! the range 0.0 to 1.0. //! \param iX X coordinate of the sound effect. //! \param iY Y coordinate of the sound effect. //! \param loops The number of times to play the sound, -1 for 'practically' //! infinite. //! \return The sound handle or 0 on error uint32_t play_at(size_t iIndex, double dVolume, int iX, int iY, int loops); //! Pause playback on a given channel if playing, or resume if paused. //! //! \param handle The sound to toggle pause on. //! \return The result of the toggle: paused, resumed, or error. toggle_pause_result toggle_pause(uint32_t handle); //! Stops playback on a given channel. //! //! \param handle The sound to stop. void stop(uint32_t handle); //! Returns whether the sound matching the given handle is playing bool is_playing(uint32_t handle); //! Sets the default volume for sound effects. void set_sound_effect_volume(double dVolume); //! Enables or disables sound effects. //! Note: Only affects sounds played via play_at(int, int, int). void set_sound_effects_enabled(bool bOn); //! Sets the position of the camera for play_at calculations. void set_camera(int iX, int iY, int iRadius); //! Reserves an SDL_mixer channel for exclusive use. //! //! Not necessary to use in conjunction with play() or play_at(), as these //! methods will automatically reserve and release channels. //! //! \return The reserved channel index, or -1 if no channels are available. int reserve_channel(); //! Releases a previously reserved SDL_mixer channel. void release_channel(int iChannel); private: static sound_player* singleton; static void on_channel_finished(int iChannel); uint32_t play_raw(size_t iIndex, int iVolume, int loops); //! Returns the channel that the handle is playing on or -1 if it is not //! playing. int playing_channel_for_handle(uint32_t handle); Mix_Chunk** sounds; size_t sound_count; int camera_x; int camera_y; double camera_radius; double master_volume; double sound_effect_volume; int positionless_volume; bool sound_effects_enabled; //! Each channel holds the handle of the track playing on it or null_handle //! if it is free. std::array channels{}; uint32_t next_playing_track_handle{0}; /// Mutex to protect access to channels array and next_playing_track_handle. /// /// \remark Do not hold this mutex while calling any SDL_mixer (Mix_*) /// functions as SDL_mixer has its own internal lock which is held while /// calling on_channel_finished and could lead to deadlocks. std::recursive_mutex channel_mutex{}; }; #endif // CORSIX_TH_TH_SOUND_H_ CorsixTH-0.70.0/CorsixTH/Src/th_strings.cpp000066400000000000000000000144411522247547500204440ustar00rootroot00000000000000#include "th_strings.h" #include "config.h" #include #include size_t discard_leading_set_bits(uint8_t& byte) { size_t count = 0; while ((byte & 0x80) != 0) { count++; byte = static_cast(byte << 1); } byte = byte >> count; return count; } unsigned int next_utf8_codepoint(const char*& sString, const char* end) { if (sString >= end) { throw std::out_of_range("pointer is outside of string"); } uint8_t cur_byte = *reinterpret_cast(sString++); size_t leading_bit_count = discard_leading_set_bits(cur_byte); if (leading_bit_count == 1 || leading_bit_count > 4) { // A single leading bit is a continuation character. A utf-8 character // can be at most 4 bytes long. return invalid_char_codepoint; } unsigned int codepoint = cur_byte; for (size_t i = 1; i < leading_bit_count; ++i) { if (sString == end) { return invalid_char_codepoint; } cur_byte = *reinterpret_cast(sString++); size_t continue_leading_bits = discard_leading_set_bits(cur_byte); if (continue_leading_bits != 1) { // Not enough continuation characters return invalid_char_codepoint; } codepoint = (codepoint << 6) | cur_byte; } return codepoint; } unsigned int decode_utf8(const char* sString, const char* end) { return next_utf8_codepoint(sString, end); } const char* previous_utf8_codepoint(const char* sString) { do { --sString; } while (((*sString) & 0xC0) == 0x80); return sString; } void skip_utf8_whitespace(const char*& sString, const char* end) { if (sString >= end) { return; } unsigned int iCode = decode_utf8(sString, end); while ((std::iswspace(iCode) || iCode == ideographic_space_codepoint)) { next_utf8_codepoint(sString, end); if (sString == end) { return; } iCode = decode_utf8(sString, end); } } constexpr uint16_t unicode_to_cp437_table[0x60] = { 0xFF, 0xAD, 0x9B, 0x9C, 0x3F, 0x9D, 0x3F, 0x3F, 0x3F, 0x3F, 0xA6, 0xAE, 0xAA, 0x3F, 0x3F, 0x3F, 0xF8, 0xF1, 0xFD, 0x3F, 0x3F, 0x3F, 0x3F, 0xFA, 0x3F, 0x3F, 0xA7, 0xAF, 0xAC, 0xAB, 0x3F, 0xA8, 0x3F, 0x3F, 0x3F, 0x3F, 0x8E, 0x8F, 0x3F, 0x80, 0x3F, 0x90, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0xA5, 0x3F, 0x3F, 0x3F, 0x3F, 0x99, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x9A, 0x3F, 0x3F, 0xE1, 0x85, 0xA0, 0x83, 0x3F, 0x84, 0x86, 0x91, 0x87, 0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, 0x3F, 0xA4, 0x95, 0xA2, 0x93, 0x3F, 0x94, 0xF6, 0x3F, 0x97, 0xA3, 0x96, 0x81, 0x3F, 0x3F, 0x98}; unsigned int unicode_to_codepage_437(unsigned int iCodePoint) { if (iCodePoint < 0x80) return iCodePoint; if (iCodePoint < 0xA0) return '?'; if (iCodePoint < 0x100) return unicode_to_cp437_table[iCodePoint - 0xA0]; switch (iCodePoint) { case 0x0192: return 0x9F; case 0x0393: return 0xE2; case 0x0398: return 0xE9; case 0x03A3: return 0xE4; case 0x03A6: return 0xE8; case 0x03A9: return 0xEA; case 0x03B1: return 0xE0; case 0x03B4: return 0xEB; case 0x03B5: return 0xEE; case 0x03BC: return 0xE6; case 0x03C0: return 0xE3; case 0x03C3: return 0xE5; case 0x03C4: return 0xE7; case 0x03C6: return 0xED; case 0x207F: return 0xFC; case 0x20A7: return 0x9E; case 0x2219: return 0xF9; case 0x221A: return 0xFB; case 0x221E: return 0xEC; case 0x2229: return 0xEF; case 0x2248: return 0xF7; case 0x2261: return 0xF0; case 0x2264: return 0xF3; case 0x2265: return 0xF2; case 0x2310: return 0xA9; case 0x2320: return 0xF4; case 0x2321: return 0xF5; case 0x25A0: return 0xFE; } return 0x3F; // '?' } unsigned int unicode_to_codepage_mik(unsigned int code_point) { if (code_point < 0x80) { return code_point; } if (code_point >= 0x410 && code_point <= 0x44F) { return code_point - 0x410 + 0x80; } switch (code_point) { case 0x2514: return 0xC0; case 0x2534: return 0xC1; case 0x252C: return 0xC2; case 0x251C: return 0xC3; case 0x2500: return 0xC4; case 0x253C: return 0xC5; case 0x2563: return 0xC6; case 0x2551: return 0xC7; case 0x255A: return 0xC8; case 0x2554: return 0xC9; case 0x2569: return 0xCA; case 0x2566: return 0xCB; case 0x2560: return 0xCC; case 0x2550: return 0xCD; case 0x256C: return 0xCE; case 0x2510: return 0xCF; case 0x2591: return 0xD0; case 0x2592: return 0xD1; case 0x2593: return 0xD2; case 0x2502: return 0xD3; case 0x2524: return 0xD4; case 0x2116: return 0xD5; case 0x00A7: return 0xD6; case 0x2557: return 0xD7; case 0x255D: return 0xD8; case 0x2518: return 0xD9; case 0x250C: return 0xDA; case 0x2588: return 0xDB; case 0x2584: return 0xDC; case 0x258C: return 0xDD; case 0x2590: return 0xDE; case 0x2580: return 0xDF; case 0x03B1: return 0xE0; case 0x00DF: return 0xE1; case 0x0393: return 0xE2; case 0x03C0: return 0xE3; case 0x03A3: return 0xE4; case 0x03C3: return 0xE5; case 0x00B5: return 0xE6; case 0x03C4: return 0xE7; case 0x03A6: return 0xE8; case 0x0398: return 0xE9; case 0x03A9: return 0xEA; case 0x03B4: return 0xEB; case 0x221E: return 0xEC; case 0x03C6: return 0xED; case 0x03B5: return 0xEE; case 0x2229: return 0xEF; case 0x2261: return 0xF0; case 0x00B1: return 0xF1; case 0x2265: return 0xF2; case 0x2264: return 0xF3; case 0x2320: return 0xF4; case 0x2321: return 0xF5; case 0x00F7: return 0xF6; case 0x2248: return 0xF7; case 0x00B0: return 0xF8; case 0x2219: return 0xF9; case 0x00B7: return 0xFA; case 0x221A: return 0xFB; case 0x207F: return 0xFC; case 0x00B2: return 0xFD; case 0x25A0: return 0xFE; case 0x00A0: return 0xFF; default: return 0x3F; // '?' } } CorsixTH-0.70.0/CorsixTH/Src/th_strings.h000066400000000000000000000012151522247547500201040ustar00rootroot00000000000000#ifndef CORSIX_TH_TH_STRINGS_H_ #define CORSIX_TH_TH_STRINGS_H_ #include "config.h" constexpr unsigned int invalid_char_codepoint = 0xFFFD; constexpr unsigned int ideographic_space_codepoint = 0x3000; size_t discard_leading_set_bits(uint8_t& byte); unsigned int next_utf8_codepoint(const char*& sString, const char* end); unsigned int decode_utf8(const char* sString, const char* end); const char* previous_utf8_codepoint(const char* sString); void skip_utf8_whitespace(const char*& sString, const char* end); unsigned int unicode_to_codepage_437(unsigned int iCodePoint); unsigned int unicode_to_codepage_mik(unsigned int iCodePoint); #endif CorsixTH-0.70.0/CorsixTH/Src/xmi2mid.cpp000066400000000000000000000303011522247547500176220ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "xmi2mid.h" #include "config.h" #include #include #include #include #include #include //! Determines if the system is little-endian //! This function can be replaced with std::endian when we move to C++20 bool is_little_endian() { uint16_t i = 0x0102; return *reinterpret_cast(&i) == 0x02; } bool operator<(const midi_token& oLeft, const midi_token& oRight) { return oLeft.time < oRight.time; } /*! Utility class for reading or writing to memory as if it were a file. */ class memory_buffer { public: memory_buffer() : data(nullptr), pointer(nullptr), data_end(nullptr), buffer_end(nullptr) {} memory_buffer(const uint8_t* pData, size_t iLength) { data = pointer = (char*)pData; data_end = data + iLength; buffer_end = nullptr; } ~memory_buffer() { if (buffer_end != nullptr) delete[] data; } uint8_t* take_data(size_t* pLength) { if (pLength) *pLength = data_end - data; uint8_t* pResult = reinterpret_cast(data); data = pointer = data_end = buffer_end = nullptr; return pResult; } size_t tell() const { return pointer - data; } bool seek(size_t position) { if (data == nullptr || data + position > data_end) { if (!resize_buffer(position)) return false; } pointer = data + position; return true; } bool skip(std::ptrdiff_t distance) { if (distance < 0) { if (pointer + distance < data) return false; } return seek(pointer - data + distance); } bool scan_to(const void* pData, size_t iLength) { for (; pointer + iLength <= data_end; ++pointer) { if (std::memcmp(pointer, pData, iLength) == 0) return true; } return false; } const char* get_pointer() const { return pointer; } template bool read(T& value) { return read(&value, 1); } template bool read(T* values, size_t count) { if (pointer + sizeof(T) * count > data_end) return false; std::memcpy(values, pointer, sizeof(T) * count); pointer += sizeof(T) * count; return true; } uint32_t read_big_endian_uint24() { uint8_t iByte0, iByte1, iByte2; if (read(iByte0) && read(iByte1) && read(iByte2)) return (((iByte0 << 8) | iByte1) << 8) | iByte2; else return 0; } uint32_t read_variable_length_uint() { unsigned int iValue = 0; uint8_t iByte; for (int i = 0; i < 4; ++i) { if (!read(iByte)) return false; iValue = (iValue << 7) | static_cast(iByte & 0x7F); if ((iByte & 0x80) == 0) break; } return iValue; } template bool write(const T& value) { return write(&value, 1); } template bool write(const T* values, size_t count) { if (count == 0) { return true; } if (!skip(static_cast(sizeof(T) * count))) return false; std::memcpy(pointer - sizeof(T) * count, values, sizeof(T) * count); return true; } bool write_big_endian_uint16(uint16_t iValue) { return write(is_little_endian() ? byte_swap(iValue) : iValue); } bool write_big_endian_uint32(uint32_t iValue) { return write(is_little_endian() ? byte_swap(iValue) : iValue); } bool write_variable_length_uint(unsigned int iValue) { int iByteCount = 1; unsigned int iBuffer = iValue & 0x7F; for (; iValue >>= 7; ++iByteCount) { iBuffer = (iBuffer << 8) | 0x80 | (iValue & 0x7F); } for (int i = 0; i < iByteCount; ++i) { uint8_t iByte = iBuffer & 0xFF; if (!write(iByte)) return false; iBuffer >>= 8; } return true; } bool is_end_of_buffer() const { return pointer == data_end; } private: //! Byte-swap a value //! Replace with std::byteswap when we move to C++23 template static T byte_swap(T value) { T swapped = 0; for (int i = 0; i < static_cast(sizeof(T)) * 8; i += 8) { swapped = static_cast(swapped | ((value >> i) & 0xFF) << (sizeof(T) * 8 - 8 - i)); } return swapped; } bool resize_buffer(size_t size) { if (data != nullptr && data + size <= buffer_end) { data_end = data + size; return true; } char* pNewData = new (std::nothrow) char[size * 2]; if (pNewData == nullptr) return false; size_t iOldLength = data_end - data; if (iOldLength > 0) { std::memcpy(pNewData, data, size > iOldLength ? iOldLength : size); } pointer = pointer - data + pNewData; if (buffer_end != nullptr) delete[] data; data = pNewData; data_end = pNewData + size; buffer_end = pNewData + size * 2; return true; } char *data, *pointer, *data_end, *buffer_end; }; void early_eof() { throw std::runtime_error("unexpected end of XMI data"); } midi_token_list xmi_to_midi_token_list(const unsigned char* xmi_data, size_t xmi_length, uint32_t& iTempo) { if (xmi_data == nullptr) { throw std::invalid_argument("xmi_data is null"); } memory_buffer bufInput(xmi_data, xmi_length); // CorsixTH uses a simplified XMI format with no RBRN chunk and only a single // song per file. // There is a TIMB chunk, but on all tracks it has a length of zero and // appears to be otherwise gibberish, so we skip it. if (!bufInput.scan_to("EVNT", 4) || !bufInput.skip(8)) { throw std::runtime_error("XMI EVNT chunk not found"); } midi_token_list lstTokens; int iTokenTime = 0; iTempo = 500000; bool bTempoSet = false; bool bEnd = false; uint8_t iTokenType; uint8_t iExtendedType; while (!bufInput.is_end_of_buffer() && !bEnd) { while (true) { if (!bufInput.read(iTokenType)) { early_eof(); } // If the high bit is set this is a MIDI event, otherwise it is part of // the duration of the previous event. Durations are summed together in // XMI and omitted entirely if zero. if (iTokenType & 0x80) break; iTokenTime += static_cast(iTokenType) * time_multiplier; } midi_token& token = lstTokens.emplace_back(iTokenTime, iTokenType); // XMI events type ids match their corresponding MIDI event type ids. // The high nibble is the event type, the low nibble is the channel except // for 0xFn. switch (iTokenType & 0xF0) { case midi_event_program_change: case midi_event_channel_pressure: // Single data byte. if (!bufInput.read(token.data)) early_eof(); break; case midi_event_note_off: case midi_event_poly_key_pressure: case midi_event_control_change: case midi_event_pitch_bend: { if (!bufInput.read(token.data)) early_eof(); // Two data bytes. uint8_t b1; if (!bufInput.read(b1)) early_eof(); token.buffer.push_back(b1); } break; case midi_event_note_on: { // Note on: read note and velocity uint8_t note; if (!bufInput.read(note)) early_eof(); token.data = note; uint8_t velocity; if (!bufInput.read(velocity)) early_eof(); token.buffer.push_back(velocity); // Insert a note off event after the specified duration since MIDI // does not support duration. A note on event with a velocity of zero // is a note off (alternative to 0x8n) according to the MIDI spec. midi_token& offToken = lstTokens.emplace_back( iTokenTime + static_cast(bufInput.read_variable_length_uint()) * time_multiplier, iTokenType); offToken.data = note; offToken.buffer.push_back(0); } break; case 0xF0: iExtendedType = 0; if (iTokenType == midi_event_meta) { if (!bufInput.read(iExtendedType)) { early_eof(); } if (iExtendedType == midi_meta_event_end_of_track) bEnd = true; else if (iExtendedType == midi_meta_event_set_tempo) { if (!bTempoSet) { bufInput.skip(1); iTempo = bufInput.read_big_endian_uint24(); bTempoSet = true; bufInput.skip(-4); } else { lstTokens.pop_back(); if (!bufInput.skip(static_cast( bufInput.read_variable_length_uint()))) { early_eof(); } break; } } } token.data = iExtendedType; uint32_t buffer_length = bufInput.read_variable_length_uint(); token.buffer.assign(bufInput.get_pointer(), bufInput.get_pointer() + buffer_length); if (!bufInput.skip(buffer_length)) { early_eof(); } break; } } std::sort(lstTokens.begin(), lstTokens.end()); return lstTokens; } uint8_t* transcode_xmi_to_midi(const unsigned char* xmi_data, size_t xmi_length, size_t* midi_length) { uint32_t iTempo; midi_token_list lstTokens = xmi_to_midi_token_list(xmi_data, xmi_length, iTempo); if (lstTokens.empty()) return nullptr; memory_buffer bufOutput; // SMF header for single track type 0. if (!bufOutput.write("MThd\0\0\0\x06\0\0\0\x01", 12)) return nullptr; // Write the division (ticks per quarter note if positive). // XMI files run at 120Hz, which works out to 25000/3 microseconds per tick. // The MIDI tempo is specified in microseconds per quarter note. // To get ticks per quarter note we need to invert microseconds per tick and // multiply by microseconds per quarter note, giving the formula below. long division = std::clamp( std::lround(static_cast(iTempo) * xmi_ticks_per_microsecond), 1L, 0x7FFFL); if (!bufOutput.write_big_endian_uint16(static_cast(division))) return nullptr; // Track chunk header with placeholder length. if (!bufOutput.write("MTrk\xBA\xAD\xF0\x0D", 8)) return nullptr; int iTokenTime = 0; uint8_t iTokenType = 0; bool bEnd = false; for (auto itr = lstTokens.begin(), itrEnd = lstTokens.end(); itr != itrEnd && !bEnd; ++itr) { if (!bufOutput.write_variable_length_uint(itr->time - iTokenTime)) return nullptr; iTokenTime = itr->time; if (itr->type >= 0xF0) { iTokenType = itr->type; if (!bufOutput.write(iTokenType)) return nullptr; if (iTokenType == 0xFF) { if (!bufOutput.write(itr->data)) return nullptr; if (itr->data == 0x2F) bEnd = true; } if (!bufOutput.write_variable_length_uint( static_cast(itr->buffer.size()))) return nullptr; if (!bufOutput.write(itr->buffer.data(), itr->buffer.size())) return nullptr; } else { if (itr->type != iTokenType) { iTokenType = itr->type; if (!bufOutput.write(iTokenType)) return nullptr; } if (!bufOutput.write(itr->data)) return nullptr; if (!itr->buffer.empty()) { if (!bufOutput.write(itr->buffer.data(), 1)) return nullptr; } } } // Replace the placeholder length in the header with the actual length. uint32_t iLength = static_cast(bufOutput.tell() - 22); bufOutput.seek(18); bufOutput.write_big_endian_uint32(iLength); return bufOutput.take_data(midi_length); } CorsixTH-0.70.0/CorsixTH/Src/xmi2mid.h000066400000000000000000000070251522247547500172760ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_XMI2MID_H_ #define CORSIX_TH_XMI2MID_H_ #include "config.h" #include // MIDI Events are from the MIDI 1.0 Spec // MIDI Meta Events are from the Standard MIDI File Spec 1.0 // Both specs are available from the MIDI Association website: // https://www.midi.org constexpr uint8_t midi_event_note_off = 0x80; constexpr uint8_t midi_event_note_on = 0x90; constexpr uint8_t midi_event_poly_key_pressure = 0xA0; constexpr uint8_t midi_event_control_change = 0xB0; constexpr uint8_t midi_event_program_change = 0xC0; constexpr uint8_t midi_event_channel_pressure = 0xD0; constexpr uint8_t midi_event_pitch_bend = 0xE0; constexpr uint8_t midi_event_sysex = 0xF0; constexpr uint8_t midi_event_end_of_sysex = 0xF7; constexpr uint8_t midi_event_meta = 0xFF; constexpr uint8_t midi_meta_event_end_of_track = 0x2F; constexpr uint8_t midi_meta_event_set_tempo = 0x51; constexpr uint8_t midi_control_code_volume = 7; constexpr uint8_t midi_channel_code_all_notes_off = 123; constexpr uint8_t midi_channel_code_all_sound_off = 120; constexpr uint8_t midi_channel_code_reset_controllers = 121; namespace { // Multiply the time duration of XMI events and the tempo by this factor. // The idea is to reduce the rounding errors that occur when converting from // XMI's 120Hz timing to MIDI's microseconds per quarter note timing. // Larger values reduce rounding errors but also increase the chance of hitting // the maximum MIDI division of 0x7FFF (32767). // // Experimentally 100 results in a division of 10000 for the fastest tempo in // Theme Hospital. Many but not all tracks have exact timing with a value of 1. constexpr int time_multiplier = 100; } // namespace // There are 120 ticks per second in XMI timing (which reduces to 3 / 25000us). constexpr double xmi_ticks_per_microsecond = (3.0 * time_multiplier) / 25000.0; constexpr double xmi_microseconds_per_tick = 25000.0 / (3.0 * time_multiplier); struct midi_token { int time; std::vector buffer{}; uint8_t type; uint8_t data{0}; midi_token(int time, uint8_t type) : time(time), type(type) {} }; bool operator<(const midi_token& oLeft, const midi_token& oRight); using midi_token_list = std::vector; midi_token_list xmi_to_midi_token_list(const unsigned char* xmi_data, size_t xmi_length, uint32_t& iTempo); uint8_t* transcode_xmi_to_midi(const unsigned char* xmi_data, size_t xmi_length, size_t* midi_length); #endif // CORSIX_TH_XMI2MID_H_ CorsixTH-0.70.0/CorsixTH/SrcUnshared/000077500000000000000000000000001522247547500172425ustar00rootroot00000000000000CorsixTH-0.70.0/CorsixTH/SrcUnshared/CMakeLists.txt000066400000000000000000000001171522247547500220010ustar00rootroot00000000000000target_sources(CorsixTH PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ) CorsixTH-0.70.0/CorsixTH/SrcUnshared/main.cpp000066400000000000000000000123031522247547500206710ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "../Src/main.h" #include "config.h" #include #include #include #include #include "../Src/bootstrap.h" #include "../Src/lua.hpp" #include "../Src/sdl_core.h" #include "../Src/th_lua.h" #ifdef WITH_UPDATE_CHECK #include #endif #ifdef WITH_TRACY #include #include #endif // Template magic for checking type equality template struct types_equal { enum { result = -1, }; }; template struct types_equal { enum { result = 1, }; }; #ifdef WITH_TRACY /// Replacement Lua Hook for Tracy Lua instrumentation /** * As of this implementation the lua hook included in Tracy does not handle * errors caught by pcall, so we implement our own hook that does. See: * https://github.com/wolfpld/tracy/issues/1320 */ void l_tracy_hook(lua_State* L, lua_Debug* ar) { using namespace tracy; static int depth = 0; if (ar->event == LUA_HOOKCALL) { lua_getinfo(L, "Snl", ar); depth++; char src[256]; detail::LuaShortenSrc(src, ar->short_src); const auto srcloc = Profiler::AllocSourceLocation( ar->currentline, src, ar->name ? ar->name : ar->short_src); TracyQueuePrepare(QueueType::ZoneBeginAllocSrcLoc); MemWrite(&item->zoneBegin.time, Profiler::GetTime()); MemWrite(&item->zoneBegin.srcloc, srcloc); TracyQueueCommit(zoneBeginThread); } else if (ar->event == LUA_HOOKRET) { do { depth--; TracyQueuePrepare(QueueType::ZoneEnd); MemWrite(&item->zoneEnd.time, Profiler::GetTime()); TracyQueueCommit(zoneEndThread); } while (lua_getstack(L, depth, ar) == 0); } } #endif //! Program entry point /*! Prepares a Lua state for, and catches errors from, lua_init(). By executing in Lua mode as soon as possible, errors can be nicely caught sooner, hence this function does as little as possible and leaves the rest for lua_init(). */ int main(int argc, char** argv) { struct compile_time_lua_check { // Lua 5.1, not 5.0, is required int lua_5_point_1_required[LUA_VERSION_NUM >= 501 ? 1 : -1]; // Lua numbers must be doubles so that the mantissa has at least // 32 bits (floats only have 24 bits) int number_is_double[types_equal::result]; }; #ifdef WITH_UPDATE_CHECK curl_global_init(CURL_GLOBAL_DEFAULT); #endif bool bRun = true; while (bRun) { lua_state_unique_ptr L(luaL_newstate()); if (L == nullptr) { std::fprintf(stderr, "Fatal error starting CorsixTH: " "Cannot open Lua state.\n"); return 0; } #ifdef WITH_TRACY tracy::LuaRegister(L.get()); #endif #ifdef TRACY_ENABLE lua_sethook(L.get(), l_tracy_hook, LUA_MASKCALL | LUA_MASKRET, 0); #endif lua_atpanic(L.get(), lua_panic); luaL_openlibs(L.get()); lua_settop(L.get(), 0); lua_pushcfunction(L.get(), lua_stacktrace); lua_pushcfunction(L.get(), lua_init); // Move command line parameters onto the Lua stack lua_checkstack(L.get(), argc); for (int i = 0; i < argc; ++i) { lua_pushstring(L.get(), argv[i]); } if (lua_pcall(L.get(), argc, 0, 1) != 0) { const char* err = lua_tostring(L.get(), -1); if (err != nullptr) { std::fprintf(stderr, "%s\n", err); } else { std::fprintf(stderr, "An error has occurred in CorsixTH:\n" "Uncaught non-string Lua error\n"); } lua_pushcfunction(L.get(), bootstrap_lua_error_report); lua_insert(L.get(), -2); if (lua_pcall(L.get(), 1, 0, 0) != 0) { std::fprintf(stderr, "%s\n", lua_tostring(L.get(), -1)); } } mainloop(L.get()); lua_getfield(L.get(), LUA_REGISTRYINDEX, "_RESTART"); bRun = lua_toboolean(L.get(), -1) != 0; // Destroy the lua_State before SDL so that any SDL resource owned by // Lua can be freed first. L.reset(nullptr); while (Mix_QuerySpec(nullptr, nullptr, nullptr)) { Mix_CloseAudio(); } SDL_Quit(); if (bRun) { std::printf("\n\nRestarting...\n\n\n"); } } #ifdef WITH_UPDATE_CHECK curl_global_cleanup(); #endif return 0; } CorsixTH-0.70.0/CorsixTH/com.corsixth.corsixth.desktop000066400000000000000000000004071522247547500226770ustar00rootroot00000000000000[Desktop Entry] Name=CorsixTH Exec=corsix-th Comment=Open source clone of Theme Hospital Comment[de]=Ein Klon von Theme Hospital Icon=corsix-th Type=Application Terminal=false StartupNotify=false Categories=Game;Simulation; Keywords=hospital;simulation;bullfrog; CorsixTH-0.70.0/CorsixTH/com.corsixth.corsixth.metainfo.xml000066400000000000000000001736721522247547500236460ustar00rootroot00000000000000 com.corsixth.corsixth CC0 BSD-3-Clause AND MIT CorsixTH Open source clone of Theme Hospital

CorsixTH aims to reimplement the game engine of Theme Hospital, and be able to load the original game data files. This means that you will need a purchased copy of Theme Hospital, or a copy of the demo, in order to use CorsixTH. After most of the original engine has been reimplemented in open source code, the project will serve as a base from which extensions and improvements to the original game can be made.

corsix-th com.corsixth.CorsixTH com.corsixth.corsixth.desktop

New Features:

  • Support for the official Russian edition of Theme Hospital has been added (Soft Club edition)
  • 2x and 3x UI Scaling is finally available, no more tiny text on 4k screens!
  • Accessibility improvements added, such as subtitles for the announcer, and ability to turn off screen shake
  • Initial support for blocking off areas in the hospital has been added. Currently this is limited to within rooms only
  • Support added for midi devices
  • Added automatic detection for music folders in CorsixTH's own directories (game and config)
  • Added unicode font support out of the box for Windows users (for real this time)
  • Falling is now enabled for everyone
  • Multiple new cheats added
  • Newspaper headlines now in lose movies
  • Movies can now be paused with 'P'
  • Research Policy window now plays its background sound effect
  • You can now view adviser message history. This can be opened from the charts menu or with a hotkey (default Ctrl + H)

Improvements:

  • Improved performance for large hospitals
  • Screenshots are now in png format and timestamped. Bye bye bitmap!
  • The staff management window can now be ordered by attribute
  • Windows can be removed during a room's build phase using right click
  • Active graph is now remembered in the graph window
  • Windows installer is now DPI aware, and ensures Start Menu and Desktop icons show for all users
  • Missing hover sounds have been added
  • Improved machine menu
  • Improved finding player name
  • Improved rejection calculations for patient overcharging
  • Improved rat holes
  • Improved dying
  • Added ability to cancel an accidentally grabbed object with Escape. Selling a grabbed item also now has a hotkey (default Delete)

Changes:

  • Added shadow for truetype fonts
  • Machine menu button added to the bottom panel and machine dialogs
  • Patients will get up less often when changing queue position
  • The way doctors are trained has been overhauled
  • Some window layouts, texts, and behaviours in the settings menus have been adjusted
  • Unavailable resolutions when UI scaled will be greyed out
  • Dropdowns lists now have scrollbars where appropriate
  • Autosave frequency can now be adjusted
  • After the win movie plays, the player will be returned to the main menu
  • Better aspect ratio for some movies
  • Disease start cure price is now properly applied from the level config
  • Last selected disease in the casebook is now remembered
  • Minimum threshold for average calculations adjusted
  • Suppress mood icons for VIP and Inspector
  • Ignored VIP requests now automatically invite them instead of refuse
  • Adjusted margins on the text area of the fax
  • Changed message drawer so only one fax of each type will populate it
  • Prevented some 'fullscreen' windows from being unpaused while present e.g. fax
  • Patients can now be vaccinated in epidemics without activating vaccination mode
  • Players are no longer warned of empty action queues
  • Reworked nearby object calculations
  • Stopped emergency patients from drinking, vomiting, or using the toilet
  • Machine usage count no longer increases during earthquakes
  • Panel keys in the hotkey assignment menu now utilise two pages

Translations:

  • Japanese announcement audio will now be used if available when playing in that language
  • Spanish translation updated. Thanks @sraaronrock and @ShiroAka
  • Italian translation updated. Thanks @dodero4
  • French translation updated. Thanks @PierreRic and @Ouaz
  • Czech translation updated. Thanks @jansakos
  • Russian translation updated. Thanks @ARGAMX

Bug Fixes:

  • Better error handling for non-existent languages
  • Fixed some non-capitalised text in dialogs
  • Fixed some bugs with music playback
  • Fixed bug in diagnosis termination
  • Patients no longer try to enter a room if staff member is going to rest
  • Adjusted happiness impacts when staff are resting
  • Minimised disruption to rooms during change of staff
  • Fixed doctors being unable to return to training room
  • Fixed patients not leaving a bench when they die
  • Fixed a crash with exploded rooms and picked up staff
  • Game will no longer crash when hovering on an exploded room
  • Prevented patients visiting incorrect/same diagnosis room more than once
  • Undressing patients no longer crash game when editing a room
  • Machine repair icon is now shown when a handyman is sent to repair
  • And more... Check out the project changelog for the full list

Changes:

  • Panel keys in the hotkey assignment menu now utilise two pages

Translations:

  • French translation updated. Thanks @Ouaz
  • Czech translation updated. Thanks @jansakos

Bug Fixes from RC1:

  • Fixed regression where a machine's maximum strength never decreased
  • Fixed regression where patient's dying moods were no longer shown
  • Fixed regression where loading a save failed if the a window with a staff profile photo was open (such as Staff Management)
  • Fixed regression where mousewheel scroll did not work consistently with UI Scaling enabled

Bug Fixes:

  • Fixed an issue where stopping music led to a crash on the level progression movie

Translations:

  • Russian translation updated. Thanks @ARGAMX

Bug Fixes from Beta 2:

  • Fixed regression with in game menu bar and dynamic info panel having unreadable text with unicode fonts when not using direct zoom
  • Fixed a misfire of the new fax sound when a message wasn't to be shown yet in the bottom panel
  • Fixed the adviser history window breaking when deleting messages
  • Fixed regression where fully rested staff would not answer calls if unable to return to Training or Research

Bug Fixes:

  • Fixed a null pointer crash when trying to process an empty string
  • Fixed an issue handling multiple windows when loading save games
  • Fixed a crash in the Machine Menu when updating repair states
  • Fixed fully rested staff trying to return to the staffroom upon entering a room

Packager Notes:

  • vcpkg registry bumped

Changes:

  • Restored early loading functionality of music on Windows in certain scenarios removed in Beta 1
  • Changed soundfont file path in Sound Settings to use unicode font, if available

Bug Fixes from Beta 1:

  • Fixed regression with some objects being picked up becoming no longer usable
  • Fixed regression with some consistency issues with the bottom panel
  • Stopped regression where the sell hotkey made Edit Room go back to doors phase from placing objects
  • Fixed regression that led to crash on loading a game after previously moving objects
  • Fixed regression in a specific scenario where side objects could allow humanoids to walk through walls
  • Stopped regression in Staff Dialog window that led to a crash
  • Stopped regression where faxes not related to a humanoid crashing the game (such as the new disease fax)
  • Fixed regression where Operating Table becoming unreachable for the second surgeon
  • Fixed some typos in the codebase

New Features:

  • Support for the official Russian edition of Theme Hospital has been added (Soft Club edition)
  • 2x and 3x UI Scaling is finally available, no more tiny text on 4k screens!
  • Accessibility improvements added, such as subtitles for the announcer, and ability to turn off screen shake
  • Initial support for blocking off areas in the hospital has been added. Currently this is limited to within rooms only
  • Support added for midi devices
  • Added automatic detection for music folders in CorsixTH's own directories (game and config)
  • Added unicode font support out of the box for Windows users (for real this time)
  • Falling is now enabled for everyone
  • Multiple new cheats added
  • Newspaper headlines now in lose movies
  • Movies can now be paused with 'P'
  • Research Policy window now plays its background sound effect
  • You can now view adviser message history. This can be opened from the charts menu or with a hotkey (default Ctrl + H)

Improvements:

  • Improved performance for large hospitals
  • Screenshots are now in png format and timestamped. Bye bye bitmap!
  • The staff management window can now be ordered by attribute
  • Windows can be removed during a room's build phase using right click
  • Active graph is now remembered in the graph window
  • Windows installer is now DPI aware, and ensures Start Menu and Desktop icons show for all users
  • Missing hover sounds have been added
  • Improved machine menu
  • Improved finding player name
  • Improved rejection calculations for patient overcharging
  • Improved rat holes
  • Improved dying
  • Added ability to cancel an accidentally grabbed object with Escape. Selling a grabbed item also now has a hotkey (default Delete)

Changes:

  • Added shadow for truetype fonts
  • Machine menu button added to the bottom panel and machine dialogs
  • Patients will get up less often when changing queue position
  • The way doctors are trained has been overhauled
  • Some window layouts, texts, and behaviours in the settings menus have been adjusted
  • Unavailable resolutions when UI scaled will be greyed out
  • Dropdowns lists now have scrollbars where appropriate
  • Autosave frequency can now be adjusted
  • After the win movie plays, the player will be returned to the main menu
  • Better aspect ratio for some movies
  • Disease start cure price is now properly applied from the level config
  • Last selected disease in the casebook is now remembered
  • Minimum threshold for average calculations adjusted
  • Suppress mood icons for VIP and Inspector
  • Ignored VIP requests now automatically invite them instead of refuse
  • Adjusted margins on the text area of the fax
  • Changed message drawer so only one fax of each type will populate it
  • Prevented some 'fullscreen' windows from being unpaused while present e.g. fax
  • Patients can now be vaccinated in epidemics without activating vaccination mode
  • Players are no longer warned of empty action queues
  • Reworked nearby object calculations
  • Stopped emergency patients from drinking, vomiting, or using the toilet
  • Machine usage count no longer increases during earthquakes

Translations:

  • Japanese announcement audio will now be used if available when playing in that language
  • Spanish translation updated. Thanks @sraaronrock and @ShiroAka
  • Italian translation updated. Thanks @dodero4
  • French translation updated. Thanks @PierreRic
  • Czech translation updated. Thanks @jansakos

Bug Fixes:

  • Better error handling for non-existent languages
  • Fixed some non-capitalised text in dialogs
  • Fixed some bugs with music playback
  • Fixed bug in diagnosis termination
  • Patients no longer try to enter a room if staff member is going to rest
  • Adjusted happiness impacts when staff are resting
  • Minimised disruption to rooms during change of staff
  • Fixed doctors being unable to return to training room
  • Fixed patients not leaving a bench when they die
  • Fixed a crash with exploded rooms and picked up staff
  • Game will no longer crash when hovering on an exploded room
  • Prevented patients visiting incorrect/same diagnosis room more than once
  • Undressing patients no longer crash game when editing a room
  • Machine repair icon is now shown when a handyman is sent to repair
  • And more... Check out the project changelog for the full list

Bug fixes:

  • Fixed stuck Operating Theatre after rerouting patients

Bug fixes:

  • Fixed a crash when placing staff in a room while a patient is being treated

New Features/Enhancements:

  • A new machine menu has been added. Now you can view the status of all your hospital machines in one place!
  • Changing speed in game now happens immediately
  • Patient happiness can now be a win/lose factor in custom games
  • Transparent walls can now be toggled using Shift + X
  • Soda price can now be configured in the level file
  • Improvements and fixes for the ChirzmanTV custom campaign

Changes:

  • Improved how staff look for work if idle
  • Machine strength reduction after repair now more closely aligned with the original game
  • Machine strength now has a minimum value of 2 after repair
  • Mouse is now only captured when in game, or using the map editor
  • Improved measurement on the progress report chart columns
  • Annual rewards and trophies now have more robust evaluation criteria
  • A patient's treatment cost is now decided at the point they agree to pay
  • VIPs now walk slower, as in the original game
  • Gamelogs now include the date and time of the crash in their file name, and the last 10 logs are now held in the Logs folder
  • Finding files for custom campaigns is now more reliable, and supports storing your campaign inside its own folder
  • Custom Campaigns can no longer be played in Free Build mode, as they could break campaign progression
  • For games compiled using fluidsynth (such as our Windows and Flatpak builds), you can now set the soundfont in the configuration file
  • Video files can now be missing during TH installation corruption checks
  • You can now hear patients vomiting, instead of just the vomit splatters
  • Lakes no longer show in the Town Map as per the original game

Translations:

  • The original game's numerals for the money bar can now be toggled by translators using the isArabicNumerals flag. This setting is set to off currently for CJK languages
  • Reworded cheat failure messages, some translations still require updating
  • Improved hotkey window and research tooltips, some translations still require updating
  • A new Japanese translation has been added. Thanks @ShimaKen523
  • Brazilian Portuguese translation has been updated. Thanks @altiereslima
  • Russian translation has been updated. Thanks @ARGAMX @Matroftt
  • French translation has been updated. Thanks @Sanndow @legluondunet
  • Dutch translation has been updated. Thanks @Alberth289346 & @jetenergy

Bug Fixes:

  • Game speed tick rates have been smoothed out again, improving animations and sound playback for objects
  • Improved colour accuracy for fonts in unicode languages now means you can actually read when your game is paused
  • Many fixes for the position of staff and patient moods in the game! More are scheduled to come in future
  • Fixed a (very annoying) bug with walks that caused new patients to enter rooms along their path
  • Rework to the operating theatre room to prevent patient/staff lockups
  • Free build now always comes with free heating and free parcel purchases!
  • Epidemic timer now ends once all patients are resolved
  • Old serious radiation epidemics can no longer cause a game crash. In future, this epidemic type will be reinstated again
  • Failed cheats will now always provide feedback messages
  • Spawning a contagious patient via cheating now works in levels without a helipad
  • Long windows now correctly count as a window
  • Dynamic info for machines now displays correctly when cycling between them
  • Fixed a bug where changing doctor in General Diagnosis could break the room and patient
  • Fixed a scenario where clicking on a staff member in an exploding room caused a game crash
  • Fixed some anomalies in the original campaign's map files
  • And more... Check out the project changelog for the full list

Translations:

  • Russian translation has been updated. Thanks @Matroftt
  • French translation has been updated. Thanks @legluondunet

Packager Notes:

  • Fixed a regression with CORSIXTH_SEARCH_LOCAL_DATADIRS cmake option

Features:

  • Custom level/campaign creators can now use an existing level file as an overlay to copy and extend their level file with the #overlay variable. See the 'Custom Level' Wiki page for more information.

Changes:

  • You can now hear patients vomiting, instead of just the vomit splatters
  • Lakes no longer show in the Town Map as per the original game

Translations:

  • Russian translation has been updated. Thanks @ARGAMX

Bug Fixes:

  • Fixed some anomalies in the original campaign's map files

Regressions from 0.69.0 Beta 1:

  • Fixed a crash in General Diagnosis
  • Fixed a compatibility issue with mood markers on old saves
  • Fixed a crash with the grim reaper
  • Fixed a bug with the hotkey assignment menu
  • Fixed an issue with handymen ignoring cleaning duties. Please note existing saves from Beta 1 currently have no fix implemented for those duties already broken.

New Features/Enhancements:

  • A new machine menu has been added. Now you can view the status of all your hospital machines in one place!
  • Changing speed in game now happens immediately
  • Patient happiness can now be a win/lose factor in custom games
  • Transparent walls can now be toggled using Shift + X
  • Soda price can now be configured in the level file
  • Improvements and fixes for the ChirzmanTV custom campaign

Changes:

  • Improved how staff look for work if idle
  • Machine strength reduction after repair now more closely aligned with the original game
  • Machine strength now has a minimum value of 2 after repair
  • Mouse is now only captured when in game, or using the map editor
  • Improved measurement on the progress report chart columns
  • Annual rewards and trophies now have more robust evaluation criteria
  • A patient's treatment cost is now decided at the point they agree to pay
  • VIPs now walk slower, as in the original game
  • Gamelogs now include the date and time of the crash in their file name, and the last 10 logs are now held in the Logs folder
  • Finding files for custom campaigns is now more reliable, and supports storing your campaign inside its own folder
  • Custom Campaigns can no longer be played in Free Build mode, as they could break campaign progression
  • For games compiled using fluidsynth (such as our Windows and Flatpak builds), you can now set the soundfont in the configuration file
  • Video files can now be missing during TH installation corruption checks

Translations:

  • The original game's numerals for the money bar can now be toggled by translators using the isArabicNumerals flag. This setting is set to off currently for CJK languages
  • Reworded cheat failure messages, some translations still require updating
  • Improved hotkey window and research tooltips, some translations still require updating
  • A new Japanese translation has been added. Thanks @ShimaKen523
  • Brazilian Portuguese translation has been updated. Thanks @altiereslima
  • Russian translation has been updated. Thanks @ARGAMX
  • French translation has been updated. Thanks @Sanndow
  • Dutch translation has been updated. Thanks @Alberth289346 & @jetenergy

Bug Fixes:

  • Game speed tick rates have been smoothed out again, improving animations and sound playback for objects
  • Improved colour accuracy for fonts in unicode languages now means you can actually read when your game is paused
  • Many fixes for the position of staff and patient moods in the game! More are scheduled to come in future
  • Fixed a (very annoying) bug with walks that caused new patients to enter rooms along their path
  • Rework to the operating theatre room to prevent patient/staff lockups
  • Free build now always comes with free heating and free parcel purchases!
  • Epidemic timer now ends once all patients are resolved
  • Old serious radiation epidemics can no longer cause a game crash. In future, this epidemic type will be reinstated again
  • Failed cheats will now always provide feedback messages
  • Spawning a contagious patient via cheating now works in levels without a helipad
  • Long windows now correctly count as a window
  • Dynamic info for machines now displays correctly when cycling between them
  • Fixed a bug where changing doctor in General Diagnosis could break the room and patient
  • Fixed a scenario where clicking on a staff member in an exploding room caused a game crash
  • And more... Check out the project changelog for the full list

New Features:

  • In-game movies now play for users using TH Data directly from a .ISO file
  • Custom campaign creators can now optionally use the original level advance movie when progressing through the campaign
  • The Map Editor has received some love including new features, fixes, and jukebox controls
  • Long windows now behave properly in the game if they get intersected by an adjacent wall
  • You can now control the Jukebox from the Main Menu by going to Options > Jukebox
  • External (non-TH) XMI files are now supported by the Jukebox
  • The adviser now tells you the cost of replacing your machine if you cannot currently afford it
  • More cheats!
  • [Experimental] Right mouse panning can now be used instead of using the middle mouse button. Enable it in the configuration file
  • [Experimental] We're closer to fully implementing falling actions! Get a sneak peek and get the chance to push people over by enabling it in the configuration file/debug menu

Changes:

  • The demo movie will no longer play and cause jumpscares at the main menu if the CorsixTH window is not in focus
  • Game speeds are now more closely aligned with the original game
  • Improvements to handling of win/lose conditions, and the progress report
  • Staff tiredness levels are now taken from the level config file based on difficulty level of the main campaign
  • You can no longer win a level if you still have outstanding loans
  • Emergencies will now be announced once patients actually begin arriving instead of at the start
  • Errors with music playback will now attempt to provide more helpful information in the console
  • Level briefings now show before the in-game tutorial
  • The first patient of a level will now arrive faster after opening the hospital
  • The information dialog box is now more closely aligned with the original game
  • The tip of the day window should no longer be obscured in the main menu
  • The load/save windows now have better labelling
  • Unavailable languages are shown as disabled until you select a Unicode font
  • Support is added to auto-detect a Theme Hospital install via GOG Galaxy

Translations:

  • Ukrainian translation added
  • Dutch translation has been updated
  • Italian translation has been updated
  • Russian translation has been updated
  • Spanish translation has been updated
  • French translation has been updated
  • Brazilian-Portuguese translation has been updated
  • Some unused language strings have been cleaned up
  • Custom campaign and level creators can now optionally add translated strings for campaign description, level briefing, and winning text

Bug Fixes:

  • Swing (double) doors will no longer crash your game if you built rooms that used them while paused
  • Fixed a bug for NVIDIA users who didn't like graphical corruption when playing fullscreen at non-native resolutions
  • Games should no longer crash irrecoverably because you have a 4k monitor :)
  • The game will now exit to the main menu cleanly if a problem occurred trying to load a new level or map
  • Staff who have left the hospital can no longer ask for a raise
  • Fixed a bug where some staff may have no initial before surname
  • Patients can no longer litter outdoors
  • Patients waiting for a player decision no longer lose their mood icon on vomit/pee
  • Fixed a bug where an unreachable reception desk could cause a crash
  • The Computer and Atom Analyser now make button sounds as originally intended
  • The mark for vaccination action now makes a sound as originally intended
  • Fixed a rare bug where edges of map tiles for parcels could cause unintended behaviour when purchasing plots
  • Active cheats will now persist across saves
  • Audio settings have better safeguards against no audio enabled/ no background music
  • Movies will no longer attempt to play audio when global audio is off
  • Config values using brackets (such as a custom music directory) will now work properly
  • Custom campaigns menu now will use a scrollbar for long campaign descriptions
  • Continue Game now properly targets files explicitly ending in the .sav format
  • Tooltips for language menu now align with list items. Please note we are aware of an issue where some languages don't show a tooltip
  • Fixed an instance where information boxes could load pink from older savegames
  • Implemented a more permanent fix for the money bar being drawn incorrectly in some CJK and Cyrillic languages
  • Fixed a crash on exit that could occur in some systems
  • Mouse panning behaviour has been made more responsive and accurate

Translations:

  • Dutch translation has been updated
  • Ukrainian translation has been updated
  • Russian translation has been updated

Bug Fixes:

  • Added a safeguard to prevent a crash of games previously using the old cheat system
  • Patients waiting for a player decision no longer lose their mood icon on vomit/pee

New Features:

  • Long windows now behave properly in the game if they get intersected by an adjacent wall

Translations:

  • Ukrainian translation added
  • Brazilian-Portuguese translation has been updated

Bug Fixes:

  • Tooltips for language menu now align with list items. Please note we are aware of an issue where some languages don't show a tooltip

New Features:

  • In-game movies now play for users using TH Data directly from a .ISO file
  • Custom campaign creators can now optionally use the original level advance movie when progressing through the campaign
  • The Map Editor has received some love including new features, fixes, and jukebox controls
  • You can now control the Jukebox from the Main Menu by going to Options > Jukebox
  • External (non-TH) XMI files are now supported by the Jukebox
  • The adviser now tells you the cost of replacing your machine if you cannot currently afford it
  • More cheats!
  • [Experimental] Right mouse panning can now be used instead of using the middle mouse button. Enable it in the configuration file
  • [Experimental] We're closer to fully implementing falling actions! Get a sneak peek and get the chance to push people over by enabling it in the configuration file/debug menu

Changes:

  • The demo movie will no longer play and cause jumpscares at the main menu if the CorsixTH window is not in focus
  • Game speeds are now more closely aligned with the original game
  • Improvements to handling of win/lose conditions, and the progress report
  • Staff tiredness levels are now taken from the level config file based on difficulty level of the main campaign
  • You can no longer win a level if you still have outstanding loans
  • Emergencies will now be announced once patients actually begin arriving instead of at the start
  • Errors with music playback will now attempt to provide more helpful information in the console
  • Level briefings now show before the in-game tutorial
  • The first patient of a level will now arrive faster after opening the hospital
  • The information dialog box is now more closely aligned with the original game
  • The tip of the day window should no longer be obscured in the main menu
  • The load/save windows now have better labelling
  • Unavailable languages are shown as disabled until you select a Unicode font
  • Support is added to auto-detect a Theme Hospital install via GOG Galaxy

Translations:

  • Dutch translation has been updated
  • Italian translation has been updated
  • Russian translation has been updated
  • Spanish translation has been updated
  • French translation has been updated
  • Some unused language strings have been cleaned up
  • Custom campaign and level creators can now optionally add translated strings for campaign description, level briefing, and winning text

Bug Fixes:

  • Swing (double) doors will no longer crash your game if you built rooms that used them while paused
  • Fixed a bug for NVIDIA users who didn't like graphical corruption when playing fullscreen at non-native resolutions
  • Games should no longer crash irrecoverably because you have a 4k monitor :)
  • The game will now exit to the main menu cleanly if a problem occurred trying to load a new level or map
  • Staff who have left the hospital can no longer ask for a raise
  • Fixed a bug where some staff may have no initial before surname
  • Patients can no longer litter outdoors
  • Fixed a bug where an unreachable reception desk could cause a crash
  • The Computer and Atom Analyser now make button sounds as originally intended
  • The mark for vaccination action now makes a sound as originally intended
  • Fixed a rare bug where edges of map tiles for parcels could cause unintended behaviour when purchasing plots
  • Active cheats will now persist across saves
  • Audio settings have better safeguards against no audio enabled/no background music
  • Movies will no longer attempt to play audio when global audio is off
  • Config values using brackets (such as a custom music directory) will now work properly
  • Custom campaigns menu now will use a scrollbar for long campaign descriptions
  • Continue Game now properly targets files explicitly ending in the .sav format
  • Fixed an instance where information boxes could load pink from older savegames
  • Implemented a more permanent fix for the money bar being drawn incorrectly in some CJK and Cyrillic languages
  • Fixed a crash on exit that could occur in some systems
  • Mouse panning behaviour has been made more responsive and accurate

New Features:

  • The original demo gameplay video now plays when the CorsixTH main menu is idle (this can be disabled in the configuration file)
  • File browser menus now have an OK button
  • Selecting an existing file in the Save Game/Map browsers will now update the text input box to that file name

Changes:

  • Handymen now always stay in their assigned plots, except when going to rest
  • Staff members now have a maximum salary, which can be configured in custom levels
  • The game will now always use the GP's choice of next diagnosis room for the patient, if available.
  • Queueing patients are now shown when hovering a door
  • Epidemics can no longer fail because an infected patient left before the epidemic was revealed
  • Balance changes to drug improvement research
  • Check for updates can now be disabled in Settings
  • Check for updates timeout duration significantly shortened
  • "Pause" now shows up when the "Build while paused" setting is on and the game is paused
  • The gamelog now includes a timestamp
  • Theme Hospital installs in the default location for the EA Store are now automatically detected, like GOG and Origin.

Translations:

  • Chinese Traditional and Simplified translations have been updated
  • Russian has been updated

Bug Fixes:

  • Fixed an instance where objects could disappear from the map
  • Fixed a bug where the empty action queue message was prevented from happening
  • Fixed a bug where dying patients became undead and would have a habit of ruining everything
  • Fixed broken dynamic info during epidemics
  • Handymen will no longer try to repair machinery while a patient is using it
  • Psychiatrist couch has less chance of causing blocked paths
  • Roujin's challenge is now properly applied (read: harder)
  • Serious Radiation is no longer contagious
  • Room blueprints can no longer go beyond external walls
  • Fixed incorrect button sounds in the Staff Management Window
  • Fixed back button behaviour in Font Picker
  • Fixed a bug where word-wrapping text on dialogs could crash the game
  • Fixed a rare case where the next VIP date may be scheduled in the past
  • Fixed a rare case where awarded research points could be negative
  • Fixed a rare case of the balance sheet being victim of a green highlighter

Changes:

  • Theme Hospital installs in the default location for the EA Store are now automatically detected, like GOG and Origin.

New Features:

  • The original demo gameplay video now plays when the CorsixTH main menu is idle (this can be disabled in the configuration file)
  • File browser menus now have an OK button
  • Selecting an existing file in the Save Game/Map browsers will now update the text input box to that file name

Changes:

  • Handymen now always stay in their assigned plots, except when going to rest
  • Staff members now have a maximum salary, which can be configured in custom levels
  • The game will now always use the GP's choice of next diagnosis room for the patient, if available.
  • Queueing patients are now shown when hovering a door
  • Epidemics can no longer fail because an infected patient left before the epidemic was revealed
  • Balance changes to drug improvement research
  • Check for updates can now be disabled in Settings
  • "Pause" now shows up when the "Build while paused" setting is on and the game is paused
  • The gamelog now includes a timestamp

Translations:

  • Chinese Traditional and Simplified translations have been updated
  • Russian has been updated

Bug Fixes:

  • Fixed an instance where objects could disappear from the map
  • Fixed a bug where the empty action queue message was prevented from happening
  • Fixed a bug where dying patients became undead and would have a habit of ruining everything
  • Fixed broken dynamic info during epidemics
  • Handymen will no longer try to repair machinery while a patient is using it
  • Psychiatrist couch has less chance of causing blocked paths
  • Roujin's challenge is now properly applied (read: harder)
  • Serious Radiation is no longer contagious
  • Room blueprints can no longer go beyond external walls
  • Fixed incorrect button sounds in the Staff Management Window
  • Fixed back button behaviour in Font Picker
  • Fixed a bug where word-wrapping text on dialogs could crash the game
  • Fixed a rare case where the next VIP date may be scheduled in the past
  • Fixed a rare case where awarded research points could be negative
  • Fixed a rare case of the balance sheet being victim of a green highlighter

New Features:

  • Direct Zoom has been improved and is now enabled by default
  • Nurses can now leave the ward without disturbing her patients
  • Patients with Serious Radiation now glow a beautiful shade of green
  • Patients with Jellyitis now wobble wobble wobble
  • The Hotkeys menu has been overhauled to make it easier to use
  • You can now reset your zoom level by pressing 0
  • A new fax code cheat has been added!
  • The replace machine prompt can now tell you the new strength before purchase
  • A machine's dynamic info will tell you the strength a machine can be upgraded to if you replaced it (can be disabled in configuration settings)

Changes:

  • Improved pee and vomit conditions
  • Patients will no longer queue for reception until nearby
  • The Adviser will no longer queue repetitive messages
  • Dropdown menus will now close when clicked outside of
  • Non-visual diseases can now be delayed in the level config of a custom game
  • Gamelog.txt will now contain system information instead of within the window title

Translations:

  • Translations should no longer show random '/' on new lines
  • Russian language updated (Thanks @Matvey1705 !)
  • Czech language updated (Thanks @jansakos !)
  • German language updated (Thanks @Manuel-K !)

Bug Fixes:

  • Checking for updates should now work moving forward (promise)
  • All cured trophy bugfix now properly applied from 0.65.1
  • Firing staff from a multi-use object now ensures they leave the hospital
  • Missing config and hotkey values will now use default values
  • Fixed an instance where an emergency fax could show the wrong cure
  • Sound effect boundary is now properly applied on window resize
  • The cheats menu is now immediately usable after typing the cheat code on a fax
  • User action while paused setting no longer uses configuration default
  • Quick Save and Quick Load behaviour has been improved
  • The cheats menu dialog will no longer slide off the screen
  • You can now purchase plots while wall transparency is on
  • Fixed playback of movie audio on surround sound systems is the most accurate
  • Patients no longer leave or become unhappy waiting too long when they are in their treatment room
  • Resolved formatting issues with numbers after loading a save

Fixes:

  • Patients no longer leave or become unhappy waiting too long when they are in their treatment room
  • Loading a save game containing a graph would crash
  • More crashing advisor statements have been corrected
  • Resolved formatting issues with numbers after loading a save

Fixes:

  • Crashing advisor statements introduced in 0.66-beta1
  • Issue loading 0.65.1 and earlier saves with VIP faxes

New Features:

  • Direct Zoom has been improved and is now enabled by default
  • Nurses can now leave the ward without disturbing her patients
  • Patients with Serious Radiation now glow a beautiful shade of green
  • Patients with Jellyitis now wobble wobble wobble
  • The Hotkeys menu has been overhauled to make it easier to use
  • You can now reset your zoom level by pressing 0
  • A new fax code cheat has been added!
  • The replace machine prompt can now tell you the new strength before purchase
  • A machine's dynamic info will tell you the strength a machine can be upgraded to if you replaced it (can be disabled in configuration settings)

Changes:

  • Improved pee and vomit conditions
  • Patients will no longer queue for reception until nearby
  • The Adviser will no longer queue repetitive messages
  • Dropdown menus will now close when clicked outside of
  • Non-visual diseases can now be delayed in the level config of a custom game
  • Gamelog.txt will now contain system information instead of within the window title

Translations:

  • Translations should no longer show random '/' on new lines
  • Russian language updated (Thanks @Matvey1705 !)
  • Czech language updated (Thanks @jansakos !)
  • German language updated (Thanks @Manuel-K !)

Bug Fixes:

  • Checking for updates should now work moving forward (promise)
  • All cured trophy bugfix now properly applied from 0.65.1
  • Firing staff from a multi-use object now ensures they leave the hospital
  • Missing config and hotkey values will now use default values
  • Fixed an instance where an emergency fax could show the wrong cure
  • Sound effect boundary is now properly applied on window resize
  • The cheats menu is now immediately usable after typing the cheat code on a fax
  • User action while paused setting no longer uses configuration default
  • Quick Save and Quick Load behaviour has been improved
  • The cheats menu dialog will no longer slide off the screen
  • You can now purchase plots while wall transparency is on
  • Fixed playback of movie audio on surround sound systems is the most accurate

This is a hotfix release of 0.65 and replaces the June 2021 release

  • Fixes a bug where the game would crash if you got the All Cured trophy at the end of year awards, when loading a save from 0.64 or earlier

New Features:

  • On MacOS DMG files are now supported as disk images for Theme Hospital data
  • Hospital policies will now carry over to your next level in the campaign
  • You can now remove destroyed rooms for a fee (config option)
  • The information dialogs that appear when a room is first built can be disabled in the configuration file
  • Fire extinguishers in rooms now have a chance to save a smoking machine from exploding
  • Advisor has more advice
  • Additional trophy of the original game is implemented
  • Windows and room size now impact staff happiness
  • Roujin's challenge cheat is back
  • Experimental direct_zoom config option, for more efficient zoom. Fixes zoom on some hardware. Defaults off.

Changes:

  • Emergencies with unknown diseases will no longer occur
  • The VIP system has been overhauled to provide more balanced ratings
  • Overpriced/Underpriced treatments now scale with difficulty
  • Placing a receptionist on a desk will now call her to the desk
  • Boiler breakdowns now depend on handymen
  • Faxes can no longer be opened while paused (unless editing while paused is enabled)
  • Improvements to receptionist announcement frequency and behaviour
  • The game will now check common locations for Theme Hospital on startup if it has not been configured
  • Games compiled without movie/audio can no longer access these settings
  • Update check now occurs over TLS for better security
  • English names are now shown in a tooltip when hovering over a language option
  • Improved TTF font rendering

Translations:

  • Greek language added! (thanks to dimitrios-iliadis!)
  • Updates to Brazilian-Portuguese language
  • Updates to English language
  • Fixes to Chinese unicode encoding

Bug Fixes:

  • Issues scheduling emergencies have been resolved
  • Games will no longer crash on load if the jukebox was open
  • Games will no longer crash because of an empty music folder
  • Fixed a scenario where editing a room caused staff to get stuck
  • Games that scrolled while saving stop scrolling on load
  • Psychiatrists in the Operating Theatre are now properly counted
  • Losing a game now gives the reason if the movie is skipped
  • Exiting the game will no longer hang when using the Wayland backend
  • The mouse will now be freed on game crash
Welcome dialog for first hospital https://corsixth.com/media/screenshots/1-medium.jpg First level in progress https://corsixth.com/media/screenshots/2-medium.jpg intense none none none none none none none none none none mild none none none none none none moderate none none none none none none none none CorsixTH developers https://corsixth.com https://github.com/CorsixTH/CorsixTH https://github.com/CorsixTH/CorsixTH/issues https://discord.gg/Mxeztvh https://github.com/CorsixTH/CorsixTH/wiki
CorsixTH-0.70.0/CorsixTH/corsix-th.6000066400000000000000000000067401522247547500170370ustar00rootroot00000000000000.\" Copyright (c) 2018 Stephen "TheCycoONE" Baker .\" .\" Permission is hereby granted, free of charge, to any person obtaining a copy of .\" this software and associated documentation files (the "Software"), to deal in .\" the Software without restriction, including without limitation the rights to .\" use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies .\" of the Software, and to permit persons to whom the Software is furnished to do .\" so, subject to the following conditions: .\" .\" The above copyright notice and this permission notice shall be included in all .\" copies or substantial portions of the Software. .\" .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR .\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, .\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE .\" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER .\" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, .\" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE .\" SOFTWARE. .\" .\" This manpage is written in mdoc(7). .\" Language reference: https://man.openbsd.org/mdoc.7 .Dd August 26, 2020 .Dt CORSIX-TH 6 .Os .Sh NAME .Nm corsix-th .Nd "An" open source implementation "of" Theme Hospital .Sh SYNOPSIS .Nm .Op Fl -bitmap-dir Ns = Ns Ar path .Op Fl -config-file Ns = Ns Ar path .Op Fl -connect-lua-dbgp .Op Fl -continue Ns = Ns Ar number .Op Fl -dump=strings .Op Fl -interpreter Ns = Ns Ar path .Op Fl -load Ns = Ns Ar savegame .Op Fl -lua-dir Ns = Ns Ar path .Sh DESCRIPTION CorsixTH is a reimplementation of the 1997 Bullfrog business simulation game Theme Hospital. As well as faithfully recreating the original, CorsixTH adds support for modern operating systems, high resolution displays, and much more. A purchased copy of Theme Hospital, or the Theme Hospital demo is required to use CorsixTH. .Pp For more information visit .Sm off .Lk https://corsixth.com \&. .Sm on .Sh OPTIONS .Bl -tag -width 6n .It Fl -bitmap-dir Ns = Ns Ar directory Use .Ar directory for loading in game bitmaps. .It Fl -config-file Ns = Ns Ar path Use the specified config file instead of the default one. .It Fl -connect-lua-dbgp Connect to a Lua DBGp server. .It Fl -continue Ns = Ns Ar number If a number is given load that month's autosave. Otherwise load the youngest autosave .It Fl -dump=strings Dumps all of the game strings to the config directory. .It Fl -interpreter Ns = Ns Ar path Run the lua bootstrap file at .Ar path \&. This is the option you would use to point corsix-th to the CorsixTH.lua in a local git checkout. .It Fl -load Ns = Ns Ar savegame Load the specified .Ar savegame file from the Saves folder. .Ar savegame must include the .sav extension. .It Fl -lua-dir Ns = Ns Ar directory Use .Ar directory for loading the game engine lua scripts. .El .Sh FILES .Bl -tag -width 6n .It Pa $XDG_CONFIG_HOME/CorsixTH/config.txt Configuration file. .It Pa $XDG_CONFIG_HOME/CorsixTH/gamelog.txt Log of the last run. Necessary for bug reporting. .It Pa $XDG_CONFIG_HOME/CorsixTH/Levels/ Custom levels. The map editor saves maps in this directory. .It Pa $XDG_CONFIG_HOME/CorsixTH/Saves/ Savegame directory. .It Pa $XDG_CONFIG_HOME/CorsixTH/Screenshots/ Screenshot directory. .El .Sh COPYRIGHT Copyright CorsixTH contributors. CorsixTH is available under the MIT license. .Pp For the full license text see: .Lk https://raw.githubusercontent.com/CorsixTH/CorsixTH/v0.70.0/LICENSE.txt CorsixTH-0.70.0/CorsixTH/resource.h000066400000000000000000000006621522247547500170250ustar00rootroot00000000000000//{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by CorsixTH.rc // #define IDI_CORSIXTH 103 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 104 #define _APS_NEXT_COMMAND_VALUE 40002 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif CorsixTH-0.70.0/CorsixTH/run-corsix-th-dev.sh.in000077500000000000000000000001561522247547500212650ustar00rootroot00000000000000#!/bin/sh "@CMAKE_CURRENT_BINARY_DIR@/corsix-th" --interpreter="@CMAKE_SOURCE_DIR@/CorsixTH/CorsixTH.lua" $@ CorsixTH-0.70.0/CorsixTH/run-corsix-th-dev.sh.in.apple000077500000000000000000000002111522247547500223550ustar00rootroot00000000000000#!/bin/sh "@CMAKE_CURRENT_BINARY_DIR@/CorsixTH.app/Contents/MacOS/CorsixTH" --interpreter="@CMAKE_SOURCE_DIR@/CorsixTH/CorsixTH.lua" $@ CorsixTH-0.70.0/Dockerfile.build000066400000000000000000000012051522247547500164040ustar00rootroot00000000000000# Dockerfile to build CorsixTH FROM ubuntu:latest WORKDIR /sourcecode ENV DEBIAN_FRONTEND=noninteractive RUN apt-get -y update RUN apt-get install -y \ # Base Tools build-essential cmake git doxygen \ # LUA liblua5.3-0 liblua5.3-0-dbg liblua5.3-dev \ lua-filesystem lua-lpeg \ # SDL2 libsdl2-dev libsdl2-mixer-dev \ # AV ffmpeg timidity \ libavformat-dev libavresample-dev libavdevice-dev libavutil-dev libavfilter-dev libavcodec-dev \ libpostproc-dev libswscale-dev libswresample-dev \ # Font libfreetype6-dev CMD mkdir -p build && cd build && cmake -DUSE_SOURCE_DATADIRS=ON .. && make CorsixTH-0.70.0/DoxyGen/000077500000000000000000000000001522247547500146735ustar00rootroot00000000000000CorsixTH-0.70.0/DoxyGen/animview.doxygen.in000066400000000000000000000166631522247547500205320ustar00rootroot00000000000000# Doxyfile 1.8.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "Anim View" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "TH Animation Viewer" # With the PROJECT_LOGO tag one can specify an logo or icon that is included in # the documentation. The maximum height of the logo should not exceed 55 pixels # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo # to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = animview #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO doxygen will only warn about wrong or incomplete parameter # documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = YES #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. # Note: If this tag is empty the current directory is searched. INPUT = "@CMAKE_SOURCE_DIR@/AnimView" # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = "@CMAKE_SOURCE_DIR@/DoxyGen/new_footer.html" # Note: HTML_TIMESTAMP obsolete in v1.9.8, replaced with TIMESTAMP # If the TIMESTAMP tag is set different from NO then # each generated page will contain the date or date and time when the page # was generated. Setting this to NO can help when comparing the output of # multiple runs. # Possible values are: YES, NO, DATETIME and DATE. # The default value is: NO. TIMESTAMP = NO #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz (see: # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO # The default value is: NO. HAVE_DOT = NO CorsixTH-0.70.0/DoxyGen/corsixth_engine.doxygen.in000066400000000000000000000170161522247547500220740ustar00rootroot00000000000000# Doxyfile 1.8.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "CorsixTH engine (the C++ part)" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "Open source implementation of Theme Hospital" # With the PROJECT_LOGO tag one can specify an logo or icon that is included in # the documentation. The maximum height of the logo should not exceed 55 pixels # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo # to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = corsixth_engine #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO doxygen will only warn about wrong or incomplete parameter # documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = YES #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. # Note: If this tag is empty the current directory is searched. INPUT = "@CMAKE_SOURCE_DIR@/CorsixTH/Src" "@CMAKE_BINARY_DIR@/CorsixTH/Src" # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = "@CMAKE_SOURCE_DIR@/DoxyGen/new_footer.html" # Note: HTML_TIMESTAMP obsolete in v1.9.8, replaced with TIMESTAMP # If the TIMESTAMP tag is set different from NO then # each generated page will contain the date or date and time when the page # was generated. Setting this to NO can help when comparing the output of # multiple runs. # Possible values are: YES, NO, DATETIME and DATE. # The default value is: NO. TIMESTAMP = NO #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz (see: # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO # The default value is: NO. HAVE_DOT = NO CorsixTH-0.70.0/DoxyGen/leveledit.doxygen.in000066400000000000000000000166751522247547500206730ustar00rootroot00000000000000# Doxyfile 1.8.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "Level Edit" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "Editor of TH .level files" # With the PROJECT_LOGO tag one can specify an logo or icon that is included in # the documentation. The maximum height of the logo should not exceed 55 pixels # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo # to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = leveledit #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO doxygen will only warn about wrong or incomplete parameter # documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = YES #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. # Note: If this tag is empty the current directory is searched. INPUT = "@CMAKE_SOURCE_DIR@/LevelEdit/" # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = "@CMAKE_SOURCE_DIR@/DoxyGen/new_footer.html" # Note: HTML_TIMESTAMP obsolete in v1.9.8, replaced with TIMESTAMP # If the TIMESTAMP tag is set different from NO then # each generated page will contain the date or date and time when the page # was generated. Setting this to NO can help when comparing the output of # multiple runs. # Possible values are: YES, NO, DATETIME and DATE. # The default value is: NO. TIMESTAMP = NO #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz (see: # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO # The default value is: NO. HAVE_DOT = NO CorsixTH-0.70.0/DoxyGen/new_footer.html000066400000000000000000000012531522247547500177310ustar00rootroot00000000000000 CorsixTH-0.70.0/LDocGen/000077500000000000000000000000001522247547500145715ustar00rootroot00000000000000CorsixTH-0.70.0/LDocGen/c_tokenise.lua000066400000000000000000000135061522247547500174240ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local lpeg = require("lpeg") local C, P, R, S, V = lpeg.C, lpeg.P, lpeg.R, lpeg.S, lpeg.V local Carg, Cc, Cp, Ct = lpeg.Carg, lpeg.Cc, lpeg.Cp, lpeg.Ct local tokens = P { "tokens"; -- Comment of form /* ... */ comment = Ct(P"/*" * C((V"newline" + (1 - P"*/"))^0) * P"*/" * Cc"comment"), -- Single line comment line_comment = Ct(P"//" * C((1 - V"newline")^0) * Cc"comment_line"), -- Single platform independent line break which increments line number newline = (P"\r\n" + P"\n\r" + S"\r\n") * (Cp() * Carg(1)) / function(pos, state) state.line = state.line + 1 state.line_start = pos end, -- Line continuation line_extend = Ct(C(P[[\]] * V"newline") * Cc"line_extend"), -- Whitespace of any length (includes newlines) whitespace = Ct(C((S" \t" + V"newline")^1) * Cc"whitespace"), -- Special form of #include with filename followed in angled brackets (matches 3 tokens) include = Ct(C(P"#include") * Cc"preprocessor") * Ct(C(S" \t"^1) * Cc"whitespace") * Ct(C(P"<" * (1 - P">")^1 * P">") * Cc"string"), -- Preprocessor instruction preprocessor = V"include" + Ct(C(P"#" * P" "^0 * ( P"define" + P"elif" + P"else" + P"endif" + P"#" + P"error" + P"ifdef" + P"ifndef" + P"if" + P"import" + P"include" + P"line" + P"pragma" + P"undef" + P"using" ) * #S" \r\n\t") * Cc"preprocessor"), -- Identifier of form [a-zA-Z_][a-zA-Z0-9_]* identifier = Ct(C(R("az","AZ","__") * R("09","az","AZ","__")^0) * Cc"identifier"), -- Single character in a string string_char = R("az","AZ","09") + S"$%^&*()_-+={[}]:;@~#<,>.!?/ \t" + (P"\\" * S[[ntvbrfa\?'"0x]]), -- String literal string = Ct(C(P"'" * (V"string_char" + P'"')^0 * P"'" + P'"' * (V"string_char" + P"'")^0 * P'"') * Cc"string"), -- Operator operator = Ct(C(P">>=" + P"<<=" + P"..." + P"::" + P"<<" + P">>" + P"<=" + P">=" + P"==" + P"!=" + P"||" + P"&&" + P"++" + P"--" + P"->" + P"+=" + P"-=" + P"*=" + P"/=" + P"|=" + P"&=" + P"^=" + S"+-*/=<>%^|&.?:!~,") * Cc"operator"), -- Misc. char (token type is the character itself) char = Ct(C(S"[]{}();") / function(x) return x, x end), -- Hex, octal or decimal number int = Ct(C((P"0x" * R("09","af","AF")^1) + (P"0" * R"07"^0) + R"09"^1) * Cc"integer"), -- Floating point number f_exponent = S"eE" + S"+-"^-1 * R"09"^1, f_terminator = S"fFlL", float = Ct(C( R"09"^1 * V"f_exponent" * V"f_terminator"^-1 + R"09"^0 * P"." * R"09"^1 * V"f_exponent"^-1 * V"f_terminator"^-1 + R"09"^1 * P"." * R"09"^0 * V"f_exponent"^-1 * V"f_terminator"^-1 ) * Cc"float"), -- Any token token = V"comment" + V"line_comment" + V"identifier" + V"whitespace" + V"line_extend" + V"preprocessor" + V"string" + V"char" + V"operator" + V"float" + V"int", -- Error for when nothing else matches error = (Cp() * C(P(1) ^ -8) * Carg(1)) / function(pos, where, state) error(("Tokenising error on line %i, position %i, near '%s'") :format(state.line, pos - state.line_start + 1, where)) end, -- Match end of input or throw error finish = -P(1) + V"error", -- Match stream of tokens into a table tokens = Ct(V"token" ^ 0) * V"finish", } function TokeniseC(str) return tokens:match(str, 1, {line = 1, line_start = 1}) end local escape_replacements = { ["<"] = "<", [">"] = ">", ["&"] = "&", } local function escape(str) return str:gsub("[<>&]", escape_replacements) end local C_keywords = set { "break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for", "goto", "if", "int", "long", "register", "return", "short", "signed", "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", } local C_to_HTML_handlers = { comment = function(tok) return '' .. escape(tok[1]) .. '' end, identifier = function(tok) if C_keywords[tok[1]] then return '' .. tok[1] .. '' else return '' .. escape(tok[1]) .. '' end end, preprocessor = function(tok) return '' .. escape(tok[1]) .. '' end, string = function(tok) return '' .. escape(tok[1]) .. '' end, } function C_to_HTML(str) local tokens = TokeniseC(str) local result = {} for i, token in ipairs(tokens) do local handler = C_to_HTML_handlers[token[2]] if handler then token = handler(token) else token = escape(token[1]) end result[#result + 1] = token end return table.concat(result) end CorsixTH-0.70.0/LDocGen/helpers.lua000066400000000000000000000067611522247547500167500ustar00rootroot00000000000000--[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] if not rawget(_G, "unpack") then unpack = table.unpack end if not rawget(_G, "loadstring") then loadstring = load end local auto_tokens local auto_tokens_c = { [","] = {"operator", ","}, ["="] = {"operator", "="}, ["<"] = {"operator", "<"}, [">"] = {"operator", ">"}, ["*"] = {"operator", "%*"}, ["->"] = {"operator", "%->"}, ["("] = {"("}, [")"] = {")"}, } local auto_tokens_lua = { ["function"] = {"keyword", "function"}, } function tokens_gfind_mode(mode) if mode == "C" then auto_tokens = auto_tokens_c elseif mode == "Lua" then auto_tokens = auto_tokens_lua else error "Invalid mode" end end function tokens_next(tokens, i) repeat i = i + 1 until (not tokens[i]) or (tokens[i][2] ~= "whitespace") return i, tokens[i] end function tokens_gfind(tokens, ...) local pattern = {...} local ti = 0 if type(pattern[1]) == "number" then ti = pattern[1] - 1 table.remove(pattern, 1) end for i, v in ipairs(pattern) do if type(v) == "string" then pattern[i] = auto_tokens[v] or {"identifier", v} end end return function() local tis repeat local matched = true local adjust = -1 ti = ti + 1 tis = {} for i, v in ipairs(pattern) do if not tokens[ti + i + adjust] then return end matched = false if i == 1 and tokens[ti + i + adjust][2] == "whitespace" then break end while tokens[ti + i + adjust][2] == "whitespace" do adjust = adjust + 1 if not tokens[ti + i + adjust] then return end end if v[1] and tokens[ti + i + adjust][2] ~= v[1] then break end if v[2] and not tokens[ti + i + adjust][1]:match(v[2]) then break end matched = true tis[#tis + 1] = ti + i + adjust end until matched return tokens, unpack(tis) end end function code(s) return "*{{{" .. s .. "}}}*" end function map(t, f) local t_out = {} for k, v in pairs(t) do t_out[k] = f(v) end return t_out end function set(t) local s = {} for i, v in ipairs(t) do s[v] = true end return s end function src_ref(obj) return [[line ]].. obj:getLine() .." of ".. obj:getFile() .."" end function isIteratorEmpty(f, s, v) return f(s, v) == nil end CorsixTH-0.70.0/LDocGen/lua_code_model.lua000066400000000000000000000213431522247547500202320ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] class "LuaNode" class "LuaVariable" (LuaNode) class "LuaFunction" (LuaVariable) class "LuaTable" (LuaVariable) class "LuaClass" (LuaTable) class "LuaFile" (LuaNode) class "LuaDirectory" (LuaNode) class "LuaProject" (LuaNode) function LuaProject:LuaProject() self:LuaNode() self.globals = LuaTable() self.files = LuaDirectory() end function LuaNode:LuaNode() self.name = nil self.parent = nil self.short_desc = nil self.long_desc = nil self.file = nil self.line = nil end function LuaVariable:LuaVariable() self:LuaNode() self.type = nil end function LuaNode:setFile(file, line) self.file = file self.line = line return self end function LuaNode:getFile() return self.file end function LuaNode:getLine() return self.line end function LuaNode:setName(name) self.name = name return self end function LuaNode:getName(name) return self.name end function LuaVariable:getId() local id if self.name then id = self.name:gsub("_","__"):gsub("[A-Z]", function(c) return "_" .. c:lower() end) else id = "_0" end if self.parent then id = self.parent:getId() .."_1".. id end return id end function LuaNode:setShortDesc(desc) self.short_desc = desc return self end function LuaNode:getShortDesc() return self.short_desc end function LuaNode:setLongDesc(desc) self.long_desc = desc return self end function LuaNode:getLongDesc() return self.long_desc end function LuaVariable:setParent(parent) assert(self.parent == nil) if class.is(parent, LuaTable) then parent:addMember(self) else error "Unknown parent type" end self.parent = parent return self end function LuaNode:getParent() return self.parent end function LuaFunction:LuaFunction() self:LuaVariable() self.type = "function" self.return_type = nil self.parameters = {} self.return_values = {} self.short_desc = nil self.long_desc = nil self.examples = {} self.is_method = false self.is_vararg = false self.vararg_parameter = nil self.is_dummy = false end function LuaFunction:setIsDummy(is) self.is_dummy = is return self end function LuaFunction:setIsMethod(is) self.is_method = is return self end function LuaFunction:isMethod() return self.is_method end function LuaFunction:setIsVararg(is) self.is_vararg = is if is then self.vararg_parameter = LuaVariable():setName("...") else self.vararg_parameter = nil end return self end function LuaFunction:addParameter(p) p.parent = self self.parameters[#self.parameters + 1] = p return self end function LuaFunction:parameterPairs() local i = 0 return function() i = i + 1 local p = self.parameters[i] if not p then if self.is_vararg and i - 1 == #self.parameters then return "...", self.vararg_parameter end return end return p:getName(), p end end function LuaFunction:getParameter(name) for _, param in ipairs(self.parameters) do if param:getName() == name then return param end end if name == "..." then return self.vararg_parameter end end function LuaTable:LuaTable() self:LuaVariable() self.type = "table" self.members = {} self.members_sorted = true self.inherits_from = nil end function LuaTable:inheritFrom(other) self.inherits_from = other end function LuaTable:addMember(member) assert(member.parent == nil) member.parent = self self.members[#self.members + 1] = member self.members_sorted = false return self end function LuaTable:removeMember(member) assert(member.parent == self) for i, val in ipairs(self.members) do if val == member then table.remove(self.members, i) member.parent = nil return true end end return false end function LuaTable:get(name) for _, member in ipairs(self.members) do if member.name == name then return member end end if self.inherits_from then return self.inherits_from:get(name) end end function LuaTable:pairs() if not self.members_sorted then table.sort(self.members, function(m1, m2) return m1.name < m2.name end) self.members_sorted = true end local n = 0 local inh = self.inherits_from and self.inherits_from:pairs() local inh_name, inh_val if inh then inh_name, inh_val = inh() end return function() local oldn = n repeat n = n + 1 local member = self.members[n] if member and member.name then if inh_name then if inh_name < member.name then n = oldn local n, v = inh_name, inh_val inh_name, inh_val = inh() return n, v elseif inh_name > member.name then return member.name, member else inh_name, inh_val = inh() return member.name, member end else return member.name, member end end until not member if inh_name then n = oldn local n, v = inh_name, inh_val inh_name, inh_val = inh() return n, v end end end function LuaClass:LuaClass() self:LuaTable() self.super_class = nil self.subclasses = {} self.subclasses_sorted = false end function LuaClass:setSuperClass(super) if type(super) == "string" then assert(self.super_class == nil) self.super_class = super else assert(self.super_class == nil or type(self.super_class) == "string") self.super_class = super self:inheritFrom(super) super.subclasses[#super.subclasses + 1] = self super.subclasses_sorted = false end return self end function LuaClass:getSuperClass() return self.super_class end function LuaClass:hasSubclasses() return self.subclasses[1] ~= nil end function LuaClass:subclassPairs() if not self.subclasses_sorted then table.sort(self.subclasses, function(m1, m2) return m1.name < m2.name end) self.subclasses_sorted = true end local n = 0 return function() repeat n = n + 1 local member = self.subclasses[n] if member and member.name then return member.name, member end until not member end end function LuaFile:LuaFile() self:LuaNode() end function LuaDirectory:LuaDirectory() self:LuaNode() self.children = {} self.children_sorted = true end function LuaDirectory:getId() local id if self.name then id = self.name:gsub("_","__"):gsub("[A-Z]", function(c) return "_" .. c:lower() end) else id = "_2" end if self.parent then id = self.parent:getId() .."_1".. id end return id end function LuaFile:getId() local id = self.name:gsub("_","__"):gsub("[A-Z]", function(c) return "_" .. c:lower() end) id = self.parent:getId() .."_1".. id return id end function LuaDirectory:get(name) for _, member in ipairs(self.children) do if member.name == name then return member end end end function LuaDirectory:addMember(child) self.children[#self.children + 1] = child self.children_sorted = false return self end function LuaDirectory:setParent(parent) assert(self.parent == nil) if class.is(parent, LuaDirectory) then parent:addMember(self) else error "Unknown parent type" end self.parent = parent return self end function LuaDirectory:pairs() if not self.children_sorted then table.sort(self.children, function(m1, m2) return m1.name < m2.name end) self.children_sorted = true end local n = 0 return function() repeat n = n + 1 local member = self.children[n] if member and member.name then return member.name, member end until not member end end function LuaFile:setParent(parent) assert(self.parent == nil) if class.is(parent, LuaDirectory) then parent:addMember(self) else error "Unknown parent type" end self.parent = parent return self end CorsixTH-0.70.0/LDocGen/lua_scan.lua000066400000000000000000000233241522247547500170650ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local function ParseComments(tokens, i, object) -- Collect the comments prior to the given token local comment_parts = {} local was_short = false local decl_i = i while i > 1 do i = i - 1 local tok = tokens[i] if tok[2] ~= "comment" then if tok[2] ~= "whitespace" then break end -- Ignore Unix Shebang and License comments elseif tok[1]:sub(1, 1) ~= "#" and not tok[1]:find[[THE SOFTWARE IS PROVIDED "AS IS"]] then local part = tok[1]:sub(3, -1) local mkr = part:match"^%[(=*)%[" if mkr then part = part:sub(3 + #mkr, -3 - #mkr) end part = part:trim() if (not mkr) and was_short and comment_parts[1]:sub(1, 1) ~= "!" then -- Merge multiple short comments into a single comment part comment_parts[1] = part .. "\n" .. comment_parts[1] else table.insert(comment_parts, 1, part) end was_short = not mkr decl_i = i end end -- Set filename and line object:setFile(tokens.__file, decl_i == 1 and 1 or tokens[decl_i - 1].line) -- Parse each command for _, part in ipairs(comment_parts) do for command in (" "..part):gmatch"([^!]+)" do local operation = command:match"(%S*)" local operand = command:sub(1 + #operation, -1):trim() if operation == "" then if operand ~= "" then if object:getShortDesc() then if object:getLongDesc() then object:setShortDesc(object:getLongDesc()) end object:setLongDesc(operand) else object:setShortDesc(operand) end end elseif operation == "dummy" then object:setIsDummy(true) elseif operation == "param" then local pname, pdesc = operand:match"^%s*([a-zA-Z_.]%.?%.?[a-zA-Z0-9_]*)%s*(.*)$" local param = object:getParameter(pname) if not param then if pname == nil then pname = "??" end -- Don't crash if first part of RE failed as well. error("Unknown parameter: ".. pname .." (".. tokens.__file .." near line ".. tokens[decl_i - 1].line ..")") end local options, extra = pdesc:match"^%(([^)]*)%)%w*(.*)$" if extra then pdesc = extra local types = {} for opt in options:gmatch"([a-zA-Z0-9_]+)" do types[#types + 1] = opt end param.type = types end param:setShortDesc(pdesc) elseif operation == "return" then -- TODO elseif operation == "example" then -- TODO else error("Unknown documentation command: " .. operation .." (".. tokens.__file .." near line ".. tokens[decl_i - 1].line ..")") end end end end local function IdentifyClasses(tokens, globals) for tokens, j, i in tokens_gfind(tokens, "class", {"string", ".*"} )do local name = loadstring("return " .. tokens[i][1])() local class = LuaClass():setName(name):setParent(globals) ParseComments(tokens, j, class) local ib1, b1 = tokens_next(tokens, i) if b1 and b1[1] == "{" then local i2, t = tokens_next(tokens, ib1) if t and t[1] == "}" then -- TODO: Mark as adopting ib1, b1 = tokens_next(tokens, i2) end end if b1 and b1[1] == "(" then local is, s = tokens_next(tokens, ib1) if s and s[2] == "identifier" then class:setSuperClass(s[1]) end end end end local function ResolveSuperclassNames(globals) for _, var in globals:pairs() do if class.is(var, LuaClass) and type(var:getSuperClass()) == "string" then var:setSuperClass(globals:get(var:getSuperClass())) end end end local function GetFunctionName(tokens, i) local name_parts, is_method, is_local = {}, false, false for j = i - 1, 1, -1 do local token = tokens[j] if token[2] ~= "whitespace" and token[2] ~= "comment" then is_local = (token[2] == "keyword" and token[1] == "local") break end end while true do i = tokens_next(tokens, i) local token = tokens[i] if token[2] == "(" then break end if token[2] == ":" then is_method = true elseif token[2] == "identifier" then name_parts[#name_parts + 1] = token[1] end end return name_parts, is_method end local function ScanToEndToken(tokens, i) local level = 1 while i <= #tokens do local tok = tokens[i] if tok[2] == "keyword" then local k = tok[1] if k == "end" then level = level - 1 if level == 0 then break end elseif k == "do" or k == "if" or k == "function" then level = level + 1 end end i = i + 1 end return i end local function IdentifyMethods(tokens, globals) local i = 1 while i <= #tokens do if tokens[i][1] == "function" and tokens[i][2] == "keyword" then local name_parts, is_method, is_local = GetFunctionName(tokens, i) local method, class, starting_i if not is_local and (#name_parts == 2 or #name_parts == 1) then if #name_parts == 1 then method = LuaFunction():setParent(globals) else class = globals:get(name_parts[1]) if not class then class = LuaTable():setName(name_parts[1]):setParent(globals) end method = LuaFunction():setParent(class) local existing = class:get(name_parts[#name_parts]) if existing and existing:getParent() == class then class:removeMember(existing) end end method:setName(name_parts[#name_parts]):setIsMethod(is_method) starting_i = i end local endi = ScanToEndToken(tokens, i + 1) local param_state = method and "before" --> "in" --> "after" while i < endi do if param_state == "before" and tokens[i][2] == "(" then param_state = "in" elseif param_state == "in" and tokens[i][2] == "identifier" then method:addParameter(LuaVariable():setName(tokens[i][1])) elseif param_state == "in" and tokens[i][2] == "vararg" then method:setIsVararg(true) elseif param_state == "in" and tokens[i][2] == ")" then param_state = "after" end if is_method and tokens[i][1] == "self" and tokens[i][2] == "identifier" then i = tokens_next(tokens, i) if tokens[i][2] == "." or tokens[i][2] == ":" then i = tokens_next(tokens, i) if tokens[i][2] == "identifier" then local field = class:get(tokens[i][1]) if not field or (field.type ~= "function" and field:getParent() ~= class) then LuaVariable():setName(tokens[i][1]):setParent(class) end end end end i = i + 1 end if starting_i then ParseComments(tokens, starting_i, method) end end i = i + 1 end end local function FixClassTree(class) local super = class:getSuperClass() if super then local to_remove = {} for key, val in class:pairs() do if val:getParent() == class and val.type == nil then local existing = super:get(key) if existing and existing.type == "function" then to_remove[val] = true end end end for val in pairs(to_remove) do class:removeMember(val) end end for _, class in class:subclassPairs() do FixClassTree(class) end end local function IdentifyFile(tokens, project) local dir = project.files local name_parts = {} for part in tokens.__file:gmatch"[^/]+" do name_parts[#name_parts + 1] = part end for i = 1, #name_parts - 1 do local part = name_parts[i] local next_dir = dir:get(part) if not next_dir then next_dir = LuaDirectory():setName(part):setParent(dir) end dir = next_dir end local part = name_parts[#name_parts] local file = dir:get(part) if not file then file = LuaFile():setName(part):setParent(dir) end end function MakeLuaCodeModel(lua_file_names) local project = LuaProject() tokens_gfind_mode "Lua" local lua_file_tokens = {} for _, filename in ipairs(lua_file_names) do local f = assert(io.open(filename)) lua_file_tokens[filename] = TokeniseLua(f:read "*a") lua_file_tokens[filename].__file = filename:match"^%.%./CorsixTH/(.*)$" f:close() IdentifyFile(lua_file_tokens[filename], project) end local globals = project.globals for filename, tokens in pairs(lua_file_tokens) do IdentifyClasses(tokens, globals) end ResolveSuperclassNames(globals) for filename, tokens in pairs(lua_file_tokens) do IdentifyMethods(tokens, globals) end for _, var in globals:pairs() do if class.is(var, LuaClass) and not var:getSuperClass() then FixClassTree(var) end end return project end CorsixTH-0.70.0/LDocGen/lua_tokenise.lua000066400000000000000000000130311522247547500177540ustar00rootroot00000000000000--[[ Copyright (c) 2010 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local L = require("lpeg") local C, P, R, S, V = L.C, L.P, L.R, L.S, L.V local Carg, Cc, Cp, Ct, Cg, Cb, Cmt = L.Carg, L.Cc, L.Cp, L.Ct, L.Cg, L.Cb, L.Cmt local identifier_type = { ["and"] = "operator", ["break"] = "keyword", ["do"] = "keyword", ["else"] = "keyword", ["elseif"] = "keyword", ["end"] = "keyword", ["false"] = "constant", ["for"] = "keyword", ["function"] = "keyword", ["if"] = "keyword", ["in"] = "keyword", ["local"] = "keyword", ["nil"] = "constant", ["not"] = "operator", ["or"] = "operator", ["repeat"] = "keyword", ["return"] = "keyword", ["then"] = "keyword", ["true"] = "constant", ["until"] = "keyword", ["while"] = "keyword", -- everything else is "identifier" } local tokens = P { "tokens"; -- Comment of form --xyz or --[[ xyz ]] or #xyz (unix shebang) comment = Ct(C(P"--" * (V"long_string_body" + (1 - V"newline")^0)) * Cc"comment"), file_start = Ct(C(P"#" * (1 - S"\r\n")^0) * Cc"comment"), utf8_bom = P"\239\187\191", -- Single platform independent line break which increments line number newline = (P"\r\n" + P"\n\r" + S"\r\n") * (Cp() * Carg(1)) / function(pos, state) state.line = state.line + 1 state.line_start = pos end, -- Whitespace of any length (includes newlines) whitespace = Ct(C((S" \t" + V"newline")^1) * Cc"whitespace"), -- Identifier of form [a-zA-Z_][a-zA-Z0-9_]* identifier = Ct((R("az","AZ","__") * R("09","az","AZ","__")^0) / function(id) return id, identifier_type[id] or "identifier" end), -- Single character in a string string_char = (1 - S[[\"']]) + (P"\\" * (S[[abfnrtv\"'0123456789]] + V"newline")), -- String literal string = Ct(C(P"'" * (V"string_char" + P'"')^0 * P"'" + P'"' * (V"string_char" + P"'")^0 * P'"' + V"long_string_body") * Cc"string"), long_string = Ct(C(V"long_string_body") * Cc"string"), long_string_body = "[" * Cg(P"="^0, "ls_init") * "[" * ((V"newline" + 1) - V"long_string_close")^0 * "]" * P"="^0 * "]", long_string_close = Cmt("]" * C(P"="^0) * "]" * Cb("ls_init"), function (s, i, a, b) return a == b end), -- Operator operator = Ct(C(P".." + P"<=" + P">=" + P"==" + P"~=" + S"+-*/^%<>#") * Cc"operator"), -- Vararg (...) vararg = Ct(C(P"...") * Cc"vararg"), -- Misc. char (token type is the character itself) char = Ct(C(S"[]{}();,=:.") / function(x) return x, x end), -- Hex or decimal number int = Ct(C((P"0x" * R("09","af","AF")^1) + R"09"^1) * Cc"integer"), -- Floating point number float = Ct(C(P"."^-1 * R"09" * R("09","..")^0)* Cc"float"), -- Any token token = ((V"comment" + V"identifier" + V"whitespace" + V"string" + V"long_string" + V"float" + V"vararg" + V"operator" + V"char" + V"int") * Carg(1)) / function(t, s) t.line = s.line return t end, -- Error for when nothing else matches error = (Cp() * C(P(1) ^ -8) * Carg(1)) / function(pos, where, state) error(("Tokenising error on line %i, position %i, near '%s'") :format(state.line, pos - state.line_start + 1, where)) end, -- Match end of input or throw error finish = -P(1) + V"error", -- Match stream of tokens into a table tokens = V"utf8_bom"^-1 * Ct(V"file_start" ^ -1 * V"token" ^ 0) * V"finish", } function TokeniseLua(str) return tokens:match(str, 1, {line = 1, line_start = 1}) end local escape_replacements = { ["<"] = "<", [">"] = ">", ["&"] = "&", } local function escape(str) return str:gsub("[<>&]", escape_replacements) end local Lua_to_HTML_names = { comment = "c", identifier = "i", keyword = "k", string = "s", float = "n", integer = "n", vararg = "v" } function Lua_to_HTML(str) local tokens = TokeniseLua(str) local result = {} for i, token in ipairs(tokens) do local handler = Lua_to_HTML_names[token[2]] if handler then if type(handler) == "string" then token = ''.. escape(token[1]) ..'' else token = handler(token) end else token = escape(token[1]) end result[#result + 1] = token end return table.concat(result) end --[=[ local d = io.open("lua_tokenise.lua","r") local s = d:read("*a") d:close() d = io.open("lua_tokenise.html", "w") d:write[[
]]
d:write(Lua_to_HTML(s))
d:write[[
]] d:close() --]=] CorsixTH-0.70.0/LDocGen/main.lua000066400000000000000000000156441522247547500162320ustar00rootroot00000000000000#!/usr/local/bin/lua --[[ Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --]] local directories = { "../CorsixTH/Lua/", "../CorsixTH/Src/", } local c_files = { } local lua_files = { "../CorsixTH/CorsixTH.lua" } local lfs = require "lfs" local output_dir = lfs.currentdir() .. "/corsixth_lua/" lfs.mkdir(output_dir) local our_dir = debug.getinfo(1).source our_dir = our_dir:match("@(.*)[/"..package.config:sub(1,1).."]") or "." lfs.chdir(our_dir) dofile "../CorsixTH/Lua/strict.lua" dofile "../CorsixTH/Lua/class.lua" require = destrict(require) require "helpers" require "c_tokenise" require "lua_tokenise" require "lua_code_model" require "lua_scan" require "template" function string.trim(s, what) what = what or "%s" return s:gsub("^[".. what .."]*(.-)[".. what .."]*$", "%1") end -- Identify source files for _, dir_path in ipairs(directories) do for item in lfs.dir(dir_path) do if lfs.attributes(dir_path .. item, "mode") == "directory" then if item ~= "." and item ~= ".." then directories[#directories + 1] = dir_path .. item .. "/" end else local ext = (item:match"%.([^.]+)$" or ""):lower() if ext == "c" or ext == "cpp" then c_files[#c_files + 1] = dir_path .. item elseif ext == "lua" then lua_files[#lua_files + 1] = dir_path .. item end end end end local function WriteHTML(name, content) local f = assert(io.open(output_dir .. name ..".html", "w")) f:write((content:gsub("([\r\n])%s*[\r\n]","%1"):gsub(" *"," "))) f:close() end local project = MakeLuaCodeModel(lua_files) local globals = project.globals WriteHTML("class_hierarchy", template "page" { title = "Class Hierarchy", tab = "classes", section = "hierarchy", content = template "lua_class_hierarchy" {globals = globals}, }) WriteHTML("class_list", template "page" { title = "Class List", tab = "classes", section = "list", content = template "lua_class_list" {globals = globals}, }) WriteHTML("class_index", template "page" { title = "Class Index", tab = "classes", section = "index", content = template "lua_class_index" {globals = globals}, }) for name, var in globals:pairs() do if class.is(var, LuaClass) then WriteHTML(var:getId(), template "page" { title = var:getName() .." Class", tab = "classes", section = "", content = template "class" {class = var}, }) end end WriteHTML("file_hierarchy", template "page" { title = "File Hierarchy", tab = "files", section = "hierarchy", content = template "lua_file_hierarchy" {project = project}, }) WriteHTML("file_globals", template "page" { title = "Globals", tab = "files", section = "globals", content = "TODO", }) -- copy class_list.html to index.html local infile, outfile, result, err infile, err = io.open(output_dir .. "class_list.html", "r") if infile == nil then print("Cannot open " .. output_dir .. "class_list.html for read: " .. err) else local content = infile:read("*a") infile:close() outfile, err = io.open(output_dir .. "index.html", "w") if outfile == nil then print("Cannot open " .. output_dir .. "index.html for write: " .. err) else result, err = outfile:write(content) if result == nil then print("Writing index.html failed: " .. err) else outfile:close() end end end do return end -- Old code, to be integrated into new code at later date: tokens_gfind_mode "C" for _, c_filename in ipairs(c_files) do local toks = TokeniseC(io.open(c_filename):read"*a") -- Identify Lua glue functions and the C functions which they call local glue_functions = {} for tokens, _, _, i in tokens_gfind(toks, "static", "int", "l_.*", "(", "lua_State", "*" )do local level = 0 local i_end = i while true do if tokens[i_end][1] == "}" then level = level - 1 if level == 0 then break end elseif tokens[i_end][1] == "{" then level = level + 1 end i_end = i_end + 1 end local methods = {} local seen = {} local _, var_i, _, fn_i, _, class_i = tokens_gfind(tokens, i, ".*", "=", "luaT_.*", "<", ".*", ">" )() if class_i and (class_i < i_end) then local var_name = tokens[var_i][1] local fn_name = tokens[fn_i][1] local class_name = tokens[class_i][1] if fn_name == "luaT_stdnew" then methods[#methods + 1] = class_name .. "::" .. class_name end for _, _, _, method_i in tokens_gfind(tokens, class_i, var_name, "->", ".*", {nil, "[%[%(]"} )do if method_i > i_end then break end if not seen[tokens[method_i][1]] then methods[#methods + 1] = class_name .. "::" .. tokens[method_i][1] seen[tokens[method_i][1]] = true end end end glue_functions[tokens[i][1]] = methods end -- Identify wrapped classes for tokens, _, _, cname_i, _, glue_i, _, lname_i in tokens_gfind(toks, "luaT_class", "(", ".*", ",", ".*", ",", {"string", ".*"}, "," )do local cname = tokens[cname_i][1] local glue = tokens[glue_i][1] local lname = loadstring("return " .. tokens[lname_i][1])() local _, i_end = tokens_gfind(tokens, lname_i, "luaT_endclass")() print("\n=== TH." .. lname .. " ===") print("Wraps the C++ class " .. code(cname) .. ".\n") print("|| *Lua method* || *C++ function(s)* || *Glue function* ||") for _, fn_i, _, mglue_i, _, name_i in tokens_gfind(tokens, lname_i, "luaT_set.*", "(", ".*", ",", {"string", ".*"} )do if name_i > i_end then break end local fn = tokens[fn_i][1] local mglue = tokens[mglue_i][1] local name = loadstring("return " .. tokens[name_i][1])() if fn == "luaT_setmetamethod" then name = "metamethod " .. code("__" .. name) else name = code(name) end print("|| " .. name .. " || " .. table.concat(map(glue_functions[mglue], code), ", ") .. " || " .. code(mglue) .. " ||") end print("") end end CorsixTH-0.70.0/LDocGen/output/000077500000000000000000000000001522247547500161315ustar00rootroot00000000000000CorsixTH-0.70.0/LDocGen/output/corner_right.gif000066400000000000000000000014571522247547500213140ustar00rootroot00000000000000GIF89a÷ÿÿÿ!ùÿ,  ðïŸÀ‚;CorsixTH-0.70.0/LDocGen/output/logo.png000066400000000000000000000042611522247547500176020ustar00rootroot00000000000000‰PNG  IHDR00Ø`nÐxIDATxÚ¥™|ìJÆÏ™dQ[ï mŸmÛ¶mÛ¶mÛ¶Õûl»÷]Kke7™ó2;ÛÜùeÓyú:�|AsþùÎT»KmÛþæë¯~ÿõ‡Ûe!B•¯�T|Áá©,�e'Äå®"¹·ð.V©´ÊªknµÍv8/‘»íæzÇ�íïëEYYÌÞFš`Qe#¶GuAA•¬Ç9'Eå½Ê'D‘õÖ[¯··¯µ£ _{Bbþ¬u×]T =OuJË,³ŒôUª¦RO�+ñHG»ŽýúËϽ½ãñ‹1&gUÞ))ßÅž ¬� ÑH„qn#2™„^Õ•.~ô’ ¯ßxÓë7Ûüš-Ë&“‹¥’£Sé®tÆÈQ5J5“œ%“eYâˆì‰B}Ÿù£08Ø5ñ·®ßîþ6CÚøŽ`ïÊ­eŠ@Ÿ`Hþèô yFz4C Crf,„Ì5&2`®™ô�ó5K§×Þzm­½×ºòÆ+É„üú’StQÀe2Ä�ç< Wr±û;U¹/!½RéÔeï_>y«é×ͽaó#6çýwæÌ™3iú$4P ³Œb0iÀ*‘3r‰%©Úè[ˆHÁþê›»ybßd £±RhÆ6³÷zlï­öÚjö‚92’!,�QñY”Ëå²5ÙØ*±ü¾"w–q,ÃÒ-#/!åÇñ°úùןš÷6V C= m�»ý3m¢…Èäqwf@38äÀÚ¤XØÇ‚UÖˆ†ÂhÈ7ç½*ÁFMHæåÏ]‘îÍ üÈDUQ»Ï0–4¬Ãé€åã�&ö à[> j¬kbs)+#м—ç�<ªò3‰‰©�m~kà­·êÞ�0+‡�’ �¯DùM ­o67>YÇî Ð4 ;Ôd0¬ C aÆ�ÕdqàÃÕ’[‘�T �»®xÿJì*_&Ciä{QÛ;ÉÒÌíØÇmR^Ý Ê(P6Cù1à‹r+l.VYdBª|dápx£î ñ7õ%  ªê€š‰÷6TÚ/îÌdän¥Œ„BM�€ ¨œ\ÔŠT蜣ÎynËgú¿ëÅ�+•†† GÑSÀJ�BLC ¹ž§aÔŠ2˜jÅ…Ö·¨¥ªùÖYk�WN}é ÌþáÙ!¤…4ä19„�U”�¸(oEÛ¾j«/Õû›¥âø*~´··Ÿ¹ï™ËL[ Š EJBÜáE�FÍ塗̶�Ö–L‹ÉL_³„Ô#²· "¦R©¹iåkWýjåo)¢ÔE¹â„.UHUQœ;ó¤à¿®ª�°êsj¤Žã<ÿúó]¼ñù©‹âK$•zˆ^ïLå•O“0l1ÃÙÁ™ß3?˳ ((*áY�¢YsfùîQƒKM¢r%kUÅ„Lž"ð†we+£õ!¹\*q›Û ­FôŒØªg+à ‰™¼å,I�¼†‹YÂ'pè#kC+© DDÞì‰1vôÆG"p"‡ÄL¼bäÿªŸ_ß2ÐD’ÜC×€2\å Æ©ù‡@~&ÒrË,·^i]²d’•<�qÿùØMVÛl¥äÊu¿Ö’à–èŠ)àù25£J9!µ¾"ЊˆÎØåôšIÑr3'J“ñ¾(ªvtt–Jä@”ÜÁÉ×{ð{l(4ÞÿïR+®°âö ÛR¾üÄqêù±ó¢ºóŽ\ä0²ˆšaêŠS_ùú¥ïé›L²'Û΃6MsÈ!Ád¸cÕÿ^ošf@0êæµvैxân'6ÿÔ0æ§Q—´^øþ‰ï±Û­ím²/Ù%r¿mûÇü­b-‡‘á�sZŸoÁÏ`‹߇ëŒ:õæjQ)YŸU¬ñãÆ¿pØó_^þùá{ÞÖÚ&( $›äw.q³ÂZVÛý[wÝ3µø'àwؘjžƒT$æcð}™ê—^jiÆØÂS¨¤pH¦A‘�!ç›JMŸu´Ll ™¡ªÛ—cDÙhþ)–"W6ç‚@ÒpI#æ,!Gï&š $Œ”„ª±ôê¬ëìšØA NçE±PxÑ¥á4‡ Û�Ðùh¼­º¨ýa’VÛmºÝÀéﯖX•—IŒ7_6º¦v†X¨:Ú¿%[™�&Íí±µµu…±+P�¨ÈE÷mé[±†,NnB@™q™R©TM#½¾È„4úgŠÅbW¼s¯ç$H@Š÷òdM’KU½*%½7ûù¼„4à¾Gôä8ÎE÷]ôGäð !·|ÎrDã°´ò~—É´ôòC¿ûÑ»�O~ P¤»ÒJyMïü4Þ¢ög£ï].—;ó±3óõyBiÙRžò\Q0–œý@AÒ]y÷•ƒMƒ€0¬š ·XNå�Ò¬!�þûöÍwß|ðƒÁ½øR<ïˆ�|XÕwEºï²áŽ¿ùå›™Ö ü­ (.Y´ÑVQ44ÿ", c_end_pos, true) or (#code + 1) c_end_pos = math.min(com_pos or end_pos, str_pos or end_pos, lng_pos or end_pos, end_pos) if end_pos == c_end_pos then parts[#parts + 1] = code:sub(c_start_pos + 2, c_end_pos - 1) .. extra break end if lng_pos and com_pos and lng_pos == com_pos + 2 and com_pos == c_end_pos then c_end_pos = lng_pos end if com_pos == c_end_pos then c_end_pos = code:find("[\r\n]", c_end_pos) or (#code + 1) elseif str_pos == c_end_pos then local patt = "[\\"..str_mkr.."]" repeat str_pos, _, str_mkr = code:find(patt, str_pos + 1) until not str_pos or str_mkr ~= "\\" c_end_pos = (str_pos or #code) + 1 else c_end_pos = (code:find("]" .. lng_mkr .. "]", c_end_pos, true) or #code) + 1 end end c_end_pos = c_end_pos + 2 c_start_pos = code:find(" Class

Declared on: .
Inheritance:
Subclasses:
Full description:

Method Index

  • "> () (inherited from ) (overrides )

Member Index

  • (*)
(*) only used in superclass methods
function ()





Parameters:
NameTypeDescription

Overrides: .
Declared on: .
Note: Is a function rather than a method.

CorsixTH-0.70.0/LDocGen/templates/class_inheritance.htlua000066400000000000000000000002651522247547500233070ustar00rootroot00000000000000 » CorsixTH-0.70.0/LDocGen/templates/lua_class_hierarchy.htlua000066400000000000000000000005651522247547500236400ustar00rootroot00000000000000The following inheritance tree gives all classes present in the source code, in alphabetical order at each level, along with short descriptions.
CorsixTH-0.70.0/LDocGen/templates/lua_class_index.htlua000066400000000000000000000037761522247547500230000ustar00rootroot00000000000000 target then if math.abs(target - oldsum) <= math.abs(sum - target) then return i else return i + 1 end end end return #letters + 1 end local function extract_range(t, i, j) local r = {} for x = math.max(1, i), math.min(#t, j) do r[#r + 1] = t[x] end return r end local columns = {} local n_cols = 5 for i = 1, n_cols do columns[i] = extract_range(letters, percentile((i - 1) / n_cols), percentile(i / n_cols) - 1) end !>
    >
CorsixTH-0.70.0/LDocGen/templates/lua_class_list.htlua000066400000000000000000000006371522247547500226350ustar00rootroot00000000000000The following table gives all classes present in the source code, in alphabetical order, along with short descriptions.
CorsixTH-0.70.0/LDocGen/templates/lua_class_tree.htlua000066400000000000000000000006151522247547500226150ustar00rootroot00000000000000
  • CorsixTH-0.70.0/LDocGen/templates/lua_file_hierarchy.htlua000066400000000000000000000002341522247547500234430ustar00rootroot00000000000000
    CorsixTH-0.70.0/LDocGen/templates/lua_file_tree.htlua000066400000000000000000000006761522247547500224360ustar00rootroot00000000000000
  • ">
  • CorsixTH-0.70.0/LDocGen/templates/page.htlua000066400000000000000000000032351522247547500205450ustar00rootroot00000000000000DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!= title !> - CorsixTH Lua Documentation

    CorsixTH Lua Documentation

    CorsixTH-0.70.0/LICENSE.txt000066400000000000000000002315341522247547500151510ustar00rootroot00000000000000CorsixTH is free software, distributed under the following terms: Copyright (C) 2009-2016 Peter "Corsix" Cawley Copyright (C) 2009-2016 Edvin "Lego3" Linge, Copyright (C) 2009-2013 Manuel "Roujin" Wolf Copyright (C) 2009-2012, 2014 Nicolas "MeV" Elie Copyright (C) 2009 Haico "brainball" van Roeden Copyright (C) 2009-2012 Darrel "redneon" Blake Copyright (C) 2009 Manuel König Copyright (C) 2010 M.Chalon Copyright (C) 2010 Sjors Gielen Copyright (C) 2010 Sam Wong Copyright (C) 2010 Edwin "Dutchy" Smulders Copyright (C) 2010 Miika-Petteri Matikainen Copyright (C) 2010-2016 Erlend Mongstad Copyright (C) 2010-2011 Ole "Froksen" Frandsen Copyright (C) 2010 Robin "RobseRob" Madsen Copyright (C) 2010 RAS Copyright (C) 2010 Jukka Kauppinen Copyright (C) 2010 "Fabiomsouto" Copyright (C) 2010 Justin Pasher Copyright (C) 2010 Wendell Misiedjan Copyright (C) 2011 David "ChronosHD" Horváth Copyright (C) 2011 Adam Kirk Copyright (C) 2011 Ted "IntelOrca" John Copyright (C) 2011 Chris James Copyright (C) 2011 John Pirie Copyright (C) 2011-2015 Mark Lawlor Copyright (C) 2011-2016, 2020 William "Sadger" Gatens Copyright (C) 2011-2018 Ola "Grimdoc" Skogrand Copyright (C) 2011-2015 Jørgen P. Tjernø Copyright (C) 2011-2012 Zbyněk "teh dude :D" Schwarz Copyright (C) 2011 Rene "Kleeze" Bergfort Copyright (C) 2011-2012 Sérgio "Get_It" Ribeiro Copyright (C) 2011 Sergei Larionov Copyright (C) 2011 Alexey Pinyagin Copyright (C) 2011-2019 Giordano "Viandante" Celeghin Copyright (C) 2012-2026 Stephen "TheCycoONE" Baker Copyright (C) 2012 Alex Ghiran Copyright (C) 2012-2013, 2021 Luis "driverpt" Duarte Copyright (C) 2012-2013 Ryan Hugh Dean Copyright (C) 2012-2020 Henrique Poyatos Copyright (C) 2012 lwglwsss Copyright (C) 2013 Koanxd aka Snowblind Copyright (C) 2013 Chris "ChrizmanTV" Wilkinson Copyright (C) 2013-2014, 2024 Alan Woolley Copyright (C) 2013 YoungSeok Yoon Copyright (C) 2013-2015 Maarten Peters Copyright (C) 2013 nullstein Copyright (C) 2013 BuTcHeR (extragry.pl) Copyright (C) 2013-2026 Albert "Alberth" Hofkamp Copyright (C) 2013, 2016-2017, 2025 Antoine Lemaire Copyright (C) 2014-2015 Joseph "J-Shep" Sheppard Copyright (C) 2014 Phillipp Röll Copyright (C) 2014 Leonardo "LeonardoGamer" Malaman Copyright (C) 2015 Víctor "mccunyao" González Copyright (C) 2015 Josh Keegan Copyright (C) 2016-2026 Toby Lane Copyright (C) 2016-2020 Phil Morrell Copyright (C) 2017 Arne Zelasko Copyright (C) 2017 Víctor "IlDucci" Copyright (C) 2017 "wolfy1339" Copyright (C) 2017 Fang Xianfu Copyright (C) 2017 Steven Price Copyright (C) 2017 Radomir Wojtera Copyright (C) 2017-2019 David Fairbrother Copyright (C) 2017-2024 Altieres Lima da Silva Copyright (C) 2017-2025 Justin "mugmuggy" Mugford Copyright (C) 2018 Pavel Schoffer Copyright (C) 2018 Rick "Feanathiel" Megens Copyright (C) 2018 Anton Shestakov Copyright (C) 2018 Thilo Ettelt Copyright (C) 2018 "red031000" Copyright (C) 2018-2019 James "leiget" Russell Copyright (C) 2019 Artem Polishchuk Copyright (C) 2020-2026 "lewri" Copyright (C) 2020-2021 "yangfl" Copyright (C) 2020 Jeremy Tellaa Copyright (C) 2020 Maxim Krivchikov Copyright (C) 2020 Dimitrios Iliadis Copyright (C) 2021 Zany XDev Copyright (C) 2021 Romain "rmnvgr" Vigier Copyright (C) 2021-2024 Robert "flackr" Flack Copyright (C) 2021 Alexandre Lavoie Copyright (C) 2021, 2025-2026 Jan Sako Copyright (C) 2022 Colin Matthews Copyright (C) 2022 Frazer Smith Copyright (C) 2022 "RetroGamerFan" Copyright (C) 2022 "tomracer" Copyright (C) 2022 "TotalCaesar659" Copyright (C) 2022 Manuel K Copyright (C) 2022-2023 lokpro Copyright (C) 2022 Raven "Edgewurth" Penfold Copyright (C) 2022 "SilPho" Copyright (C) 2022-2026 Matthew "Matroftt" Copyright (C) 2023 "dfghjkjhgr" Copyright (C) 2023 Bob "bobidle" Idle Copyright (C) 2023 Michael "RednibCoding" Binder Copyright (C) 2023 Nathan "nMustaki" Mustaki Copyright (C) 2023-2026 Damian "ShiroAka" Copyright (C) 2024 Peppe "Inkub0" Malara Copyright (C) 2024 Sandow "Sanndow" Copyright (C) 2024 Tomás Domínguez "tombolano" Bolaño Copyright (C) 2024 Ikko E. "eltociear" Ashimine Copryight (C) 2024 Anthony Dillon Copyright (C) 2024 SebastianoPistore Copryight (C) 2024 jetenergy Copyright (C) 2024 Yurii "JurecStrongman" Copyright (C) 2024 ShimaKen Copyright (C) 2024-2026 "MandrakeHorse" Copyright (C) 2024-2026 Artem Argus "ARGAMX" Gusakov Copyright (C) 2025 Felipe Muñoz Mazur Copyright (C) 2025 "pizzadepollo" Copyright (C) 2025 "legluodunet" Copyright (C) 2025 "dodero4" Copyright (C) 2025 "PierreRic" Copyright (C) 2025 "jur4jmiklo5" Copyright (C) 2025 "goodusername123" Copyright (C) 2025 Aarón Rosa "sraaronrock" Díaz Copyright (C) 2025-2026 Quentin Marcassin "marcassin92" Sanglier Copyright (C) 2025-2026 "Fraggenard" Copyright (C) 2026 "ManoloMC002" Copyright (C) 2026 Arya "algojogacor" Rizky Copyright (C) 2026 "saya-7" Copyright (C) 2026 "Ouaz" et al. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- Uses the Lua 5.5 library, which is available from http://www.lua.org/ as well as the lpeg, library available from http://www.inf.puc-rio.br/~roberto/lpeg, both under the following terms: Copyright © 1994-2025 Lua.org, PUC-Rio. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- Uses the luafilesystem library available at https://keplerproject.github.io under the following terms: Copyright © 2003-2014 Kepler Project. Copyright © 2010-2022 The LuaFileSystem authors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- Uses the whereami library, which is available from https://github.com/gpakosz/whereami under the following terms: Copyright Gregory Pakosz Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- Uses the libcurl library, which is available from https://curl.se/ under the following terms: COPYRIGHT AND PERMISSION NOTICE Copyright (c) 1996 - 2024, Daniel Stenberg, daniel@haxx.se, and many contributors, see the THANKS file. All rights reserved. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. ------------------------------------------------------------------------------- Uses the Mersenne twister random number generator, which is available from http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html under the following terms: Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved. Copyright (C) 2005, Mutsuo Saito, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. 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. 3. The names of its contributors may not 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 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 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- Uses the Freetype2 library available at http://freetype.org under the following terms: The FreeType Project LICENSE ---------------------------- 2006-Jan-27 Copyright 1996-2002, 2006 by David Turner, Robert Wilhelm, and Werner Lemberg Introduction ============ The FreeType Project is distributed in several archive packages; some of them may contain, in addition to the FreeType font engine, various tools and contributions which rely on, or relate to, the FreeType Project. This license applies to all files found in such packages, and which do not fall under their own explicit license. The license affects thus the FreeType font engine, the test programs, documentation and makefiles, at the very least. This license was inspired by the BSD, Artistic, and IJG (Independent JPEG Group) licenses, which all encourage inclusion and use of free software in commercial and freeware products alike. As a consequence, its main points are that: o We don't promise that this software works. However, we will be interested in any kind of bug reports. (`as is' distribution) o You can use this software for whatever you want, in parts or full form, without having to pay us. (`royalty-free' usage) o You may not pretend that you wrote this software. If you use it, or only parts of it, in a program, you must acknowledge somewhere in your documentation that you have used the FreeType code. (`credits') We specifically permit and encourage the inclusion of this software, with or without modifications, in commercial products. We disclaim all warranties covering The FreeType Project and assume no liability related to The FreeType Project. Finally, many people asked us for a preferred form for a credit/disclaimer to use in compliance with this license. We thus encourage you to use the following text: """ Portions of this software are copyright © The FreeType Project (www.freetype.org). All rights reserved. """ Please replace with the value from the FreeType version you actually use. Legal Terms =========== 0. Definitions -------------- Throughout this license, the terms `package', `FreeType Project', and `FreeType archive' refer to the set of files originally distributed by the authors (David Turner, Robert Wilhelm, and Werner Lemberg) as the `FreeType Project', be they named as alpha, beta or final release. `You' refers to the licensee, or person using the project, where `using' is a generic term including compiling the project's source code as well as linking it to form a `program' or `executable'. This program is referred to as `a program using the FreeType engine'. This license applies to all files distributed in the original FreeType Project, including all source code, binaries and documentation, unless otherwise stated in the file in its original, unmodified form as distributed in the original archive. If you are unsure whether or not a particular file is covered by this license, you must contact us to verify this. The FreeType Project is copyright (C) 1996-2000 by David Turner, Robert Wilhelm, and Werner Lemberg. All rights reserved except as specified below. 1. No Warranty -------------- THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO USE, OF THE FREETYPE PROJECT. 2. Redistribution ----------------- This license grants a worldwide, royalty-free, perpetual and irrevocable right and license to use, execute, perform, compile, display, copy, create derivative works of, distribute and sublicense the FreeType Project (in both source and object code forms) and derivative works thereof for any purpose; and to authorize others to exercise some or all of the rights granted herein, subject to the following conditions: o Redistribution of source code must retain this license file (`FTL.TXT') unaltered; any additions, deletions or changes to the original files must be clearly indicated in accompanying documentation. The copyright notices of the unaltered, original files must be preserved in all copies of source files. o Redistribution in binary form must provide a disclaimer that states that the software is based in part of the work of the FreeType Team, in the distribution documentation. We also encourage you to put an URL to the FreeType web page in your documentation, though this isn't mandatory. These conditions apply to any software derived from or based on the FreeType Project, not just the unmodified files. If you use our work, you must acknowledge us. However, no fee need be paid to us. 3. Advertising -------------- Neither the FreeType authors and contributors nor you shall use the name of the other for commercial, advertising, or promotional purposes without specific prior written permission. We suggest, but do not require, that you use one or more of the following phrases to refer to this software in your documentation or advertising materials: `FreeType Project', `FreeType Engine', `FreeType library', or `FreeType Distribution'. As you have not signed this license, you are not required to accept it. However, as the FreeType Project is copyrighted material, only this license, or another one contracted with the authors, grants you the right to use, distribute, and modify it. Therefore, by using, distributing, or modifying the FreeType Project, you indicate that you understand and accept all the terms of this license. 4. Contacts ----------- There are two mailing lists related to FreeType: o freetype@nongnu.org Discusses general use and applications of FreeType, as well as future and wanted additions to the library and distribution. If you are looking for support, start in this list if you haven't found anything to help you in the documentation. o freetype-devel@nongnu.org Discusses bugs, as well as engine internals, design issues, specific licenses, porting, etc. Our home page can be found at http://www.freetype.org ------------------------------------------------------------------------------- Uses FFmpeg, which is available from https://ffmpeg.org under the GNU LGPL 2.1 licence. ------------------------------------------------------------------------------- Uses the SDL 2 and SDL_mixer 2 libraries, which are available from http://www.libsdl.org/ under the following terms (zlib license). Copyright (C) 1997-2025 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. ------------------------------------------------------------------------------- Uses FluidSynth, which is available from https://www.fluidsynth.org/ under the GNU LGPL 2.1 license. ------------------------------------------------------------------------------- Uses mpg123, which is available from http://mpg123.de/ under the GNU LGPL 2.1 license. ------------------------------------------------------------------------------- Uses LAME, which is available from https://lame.sourceforge.io/ under the GNU LGPL 2.1 license. ------------------------------------------------------------------------------- Uses libvorbis, which is available https://xiph.org/vorbis/ from under the following terms: Copyright (c) 2002-2020 Xiph.org Foundation 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 of the Xiph.org Foundation 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 FOUNDATION 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. ------------------------------------------------------------------------------- Uses libFLAC, which is available from https://xiph.org/flac/ under the following terms: Copyright (C) 2000-2009 Josh Coalson Copyright (C) 2011-2025 Xiph.Org Foundation 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 of the Xiph.Org Foundation 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 FOUNDATION 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. ------------------------------------------------------------------------------- Uses libopus which is available from https://opus-codec.org following terms: Copyright 2001-2023 Xiph.Org, Skype Limited, Octasic, Jean-Marc Valin, Timothy B. Terriberry, CSIRO, Gregory Maxwell, Mark Borgerding, Erik de Castro Lopo 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 of Internet Society, IETF or IETF Trust, nor the names of specific 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 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 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Opus is subject to the royalty-free patent licenses which are specified at: Xiph.Org Foundation: https://datatracker.ietf.org/ipr/1524/ Microsoft Corporation: https://datatracker.ietf.org/ipr/1914/ Broadcom Corporation: https://datatracker.ietf.org/ipr/1526/ ------------------------------------------------------------------------------- Uses opusfile which is available from https://opus-codec.org following terms: Copyright (c) 1994-2013 Xiph.Org Foundation and contributors 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 of the Xiph.Org Foundation 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 FOUNDATION 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. ------------------------------------------------------------------------------- Uses libmodplug which is available from https://github.com/Konstanty/libmodplug under the following terms: ModPlug-XMMS and libmodplug are now in the public domain. ------------------------------------------------------------------------------- Uses libogg which is available from https://www.xiph.org/ogg/ under the following terms: Copyright (c) 2002, Xiph.org Foundation 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 of the Xiph.org Foundation 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 FOUNDATION 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. ------------------------------------------------------------------------------- Uses libxmp which is available from https://sourceforge.net/projects/xmp/ under the GNU LGPL 2.1 license. ------------------------------------------------------------------------------- Uses Brotli which is available from https://github.com/google/brotli under the following terms: Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- Uses OpenSSL which is available from https://www.openssl.org under the Apache License 2.0 ------------------------------------------------------------------------------- Uses Fluid (R3) Soundfont which is available under the following terms: Copyright (c) 2000-2002, 2008 Frank Wen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- l_tracy_hook in main.cpp is derived from tracy::LuaHook Tracy Profiler (https://github.com/wolfpld/tracy) is licensed under the 3-clause BSD license. Copyright (c) 2017-2026, Bartosz Taudul 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 of the 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 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. ------------------------------------------------------------------------------- Uses zlib which is available from https://www.zlib.net/ under the following terms: (C) 1995-2022 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu ------------------------------------------------------------------------------- Uses libpng which is available from https://www.libpng.org/pub/png/libpng.html under the PNG Reference Library License version 2 with the following terms: * Copyright (c) 1995-2026 The PNG Reference Library Authors. * Copyright (c) 2018-2026 Cosmin Truta. * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. * Copyright (c) 1996-1997 Andreas Dilger. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. The software is supplied "as is", without warranty of any kind, express or implied, including, without limitation, the warranties of merchantability, fitness for a particular purpose, title, and non-infringement. In no event shall the Copyright owners, or anyone distributing the software, be liable for any damages or other liability, whether in contract, tort or otherwise, arising from, out of, or in connection with the software, or the use or other dealings in the software, even if advised of the possibility of such damage. Permission is hereby granted to use, copy, modify, and distribute this software, or portions hereof, for any purpose, without fee, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated, but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This Copyright notice may not be removed or altered from any source or altered source distribution. ------------------------------------------------------------------------------- GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, 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 this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), 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 distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser 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 Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "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 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY 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 LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ------------------------------------------------------------------------------- Apache License Version 2.0, January 2004 https://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. ------------------------------------------------------------------------------- Uses the GoNoto font available from https://github.com/satbyy/go-noto-universal under the following terms Copyright 2018 The Noto Project Authors (github.com/googlei18n/noto-fonts) This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. ------------------------------------------------------------------------------- Uses the RtMidi library for realtime MIDI playback. RtMidi: realtime MIDI i/o C++ classes
    Copyright (c) 2003-2023 Gary P. Scavone Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Any person wishing to distribute modifications to the Software is asked to send the modifications to the original developer so that they can be incorporated into the canonical version. This is, however, not a binding provision of this license. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. CorsixTH-0.70.0/LevelEdit/000077500000000000000000000000001522247547500151735ustar00rootroot00000000000000CorsixTH-0.70.0/LevelEdit/.classpath000066400000000000000000000004551522247547500171620ustar00rootroot00000000000000 CorsixTH-0.70.0/LevelEdit/.project000066400000000000000000000012641522247547500166450ustar00rootroot00000000000000 LevelEdit org.eclipse.jdt.core.javabuilder org.eclipse.jdt.core.javanature 1754626093468 30 org.eclipse.core.resources.regexFilterMatcher node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ CorsixTH-0.70.0/LevelEdit/.settings/000077500000000000000000000000001522247547500171115ustar00rootroot00000000000000CorsixTH-0.70.0/LevelEdit/.settings/org.eclipse.jdt.core.prefs000066400000000000000000000011261522247547500240730ustar00rootroot00000000000000eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.7 CorsixTH-0.70.0/LevelEdit/README.txt000066400000000000000000000023131522247547500166700ustar00rootroot00000000000000------------------------------------------------------------------------------ -- CorsixTH Level Editor ----------------------------------------------------- ------------------------------------------------------------------------------ Original author of this tool: Koanxd This tool makes it easier to create new levels for CorsixTH. Instead of editing a text file, which can be quite error prone the level creator can use this tool to set all available variables used in CorsixTH and then save it as a .level file. The tool is written in Java. The supplied project for Eclipse can be used to compile. An alternative is to issue the following commands while in this folder: Compile: 1. javac -d bin -sourcepath src src/com/corsixth/leveledit/Main.java 2. Copy icon images (src/icon*.png) to bin directory (getting bin/icon*png files). Run: java -cp bin com.corsixth.leveledit.Main ------------------------------------------------------------------------------ -- Contact Details ------------------------------------------------------------------------------ Homepage: https://github.com/CorsixTH/CorsixTH Mailing list: http://groups.google.com/group/corsix-th-dev IRC: #corsix-th on FreeNode CorsixTH-0.70.0/LevelEdit/build.xml000066400000000000000000000016541522247547500170220ustar00rootroot00000000000000 CorsixTH Level Editor CorsixTH-0.70.0/LevelEdit/src/000077500000000000000000000000001522247547500157625ustar00rootroot00000000000000CorsixTH-0.70.0/LevelEdit/src/com/000077500000000000000000000000001522247547500165405ustar00rootroot00000000000000CorsixTH-0.70.0/LevelEdit/src/com/corsixth/000077500000000000000000000000001522247547500204035ustar00rootroot00000000000000CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/000077500000000000000000000000001522247547500223605ustar00rootroot00000000000000CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/Disease.java000066400000000000000000000023351522247547500246030ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; public class Disease { String name; public Disease(String name) { this.name = name; } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/Emergency.java000066400000000000000000000064671522247547500251560ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class Emergency { static int emergencyMode = 2; // 0 = random; // 1 = semi-random // 2 = controlled emergencies; int startMonth = 3; // should become larger for each new add int endMonth = 6; // must automatically be >= startMonth int minPatients = 3; int maxPatients = 8; // must automatically be >= minPatients int illness = 16; // should be random on each new add, depending on existing // diseases int percWin = 75; int bonus = 1000; String[] diseases = { "3rd Degree Sideburns", "Alien DNA", "Baldness", "Bloaty Head", "Broken Bones", "Broken Heart", "Broken Wind", "Chronic Nosehair", "Corrugated Ankles", "Discrete Itching", "Elvis", "Fake Blood", "Gastric Ejections", "Golf Stones", "Gut Rot", "Hairyitus", "Heaped Piles", "Infectious Laughter", "Invisibility", "Iron Lungs", "Jellyitus", "Kidney Beans", "Multiple TV Personalities", "Ruptured Nodules", "Serious Radiation", "Slack Tongue", "Sleeping Illness", "Spare Ribs", "Sweaty Palms", "The Squits", "Transparency", "Uncommon Cold", "Unexpected Swelling" }; JPanel emergencyPanel = new JPanel(); JComboBox illnessCombo = new JComboBox<>(diseases); JLabel minPatientsLabel = new JLabel("Patients min:"); JLabel maxPatientsLabel = new JLabel("Patients max:"); JLabel startMonthLabel = new JLabel("Start month:"); JLabel endMonthLabel = new JLabel("End month:"); JLabel percWinLabel = new JLabel("Win %:"); JLabel bonusLabel = new JLabel("Bonus:"); JTextField minPatientsTF = new JTextField(Integer.toString(minPatients), 2); JTextField maxPatientsTF = new JTextField(Integer.toString(maxPatients), 2); JTextField startMonthTF = new JTextField(Integer.toString(startMonth), 2); JTextField endMonthTF = new JTextField(Integer.toString(endMonth), 2); JTextField percWinTF = new JTextField(Integer.toString(percWin), 2); JTextField bonusTF = new JTextField(Integer.toString(bonus), 5); } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/FileChooser.java000066400000000000000000000075061522247547500254350ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.io.File; import java.io.IOException; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.filechooser.FileNameExtensionFilter; /** * A custom JFileChooser * * @author Koanxd * */ public class FileChooser extends JFileChooser { // this is insignificant but apparently its needed because JFrame is // serializable private static final long serialVersionUID = 2153326271573582591L; ReaderWriter readerWriter = new ReaderWriter(); FileNameExtensionFilter corsixTH = new FileNameExtensionFilter( "CorsixTH level files (.level)", "level"); FileNameExtensionFilter originalTH = new FileNameExtensionFilter( "Theme Hospital Level files (.SAM)", "SAM"); // Used to get the CorsixTH icon in the top bar of the dialog. JFrame mainFrame; public FileChooser(JFrame frame) { setCurrentDirectory(readerWriter.getLastFilePath()); setFileFilter(corsixTH); mainFrame = frame; } public File open() { addChoosableFileFilter(originalTH); setAcceptAllFileFilterUsed(true); int returnVal = showOpenDialog(mainFrame); if (returnVal == JFileChooser.APPROVE_OPTION) { readerWriter.saveLastFilePath(getSelectedFile().getPath()); return getSelectedFile(); } else { return null; } } public File saveAs() throws IOException { removeChoosableFileFilter(originalTH); setAcceptAllFileFilterUsed(false); setFileFilter(corsixTH); int returnVal = showSaveDialog(mainFrame); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = getSelectedFile(); readerWriter.saveLastFilePath(file.getPath()); if (file.exists()) { // confirm to overwrite file JOptionPane overwrite = new JOptionPane("Overwrite file?"); Object[] options = new String[] { "Yes", "No" }; overwrite.setOptions(options); JDialog dialog = overwrite.createDialog(null, "Confirm"); dialog.setVisible(true); if ((overwrite.getValue()) == options[0]) return (getSelectedFile()); else return null; } else { // if no file extension is given, append one. if (!file.getPath().endsWith(".level")) { file = new File(file.getPath() + ".level"); } return file; } } else { return null; } } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/GridPanel.java000066400000000000000000000153111522247547500250710ustar00rootroot00000000000000/* Copyright (c) 2013 Edvin "Lego3" Linge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.Component; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.util.ArrayList; import javax.swing.BorderFactory; import javax.swing.JPanel; /** * A panel that uses the GridBagLayout to layout its components. This is a * rudimentary implementation tailored for the LevelEdit project. It supplies * similar functionality as MigLayout, but only the parts we need. The * constructor takes a column argument that specifies the number of columns used * in the grid. Each added component is put at the end of the grid left to * right, top to bottom. * * @author Edvin "Lego3" Linge * */ public class GridPanel extends JPanel { private static final long serialVersionUID = 6388650541048165610L; private static final int INSETS = 2; private static final int BORDER = 3; private int columns = 0; private int rows = 0; private GridBagConstraints c = new GridBagConstraints(); // Used to add a dummy JPanel to the end so that we can achieve top left // alignment. private GridBagConstraints fillerC = new GridBagConstraints(); private JPanel panelFiller = new JPanel(); private ArrayList[] contents; @SuppressWarnings("unchecked") public GridPanel(int noColumns) { c.insets = new Insets(INSETS, INSETS, INSETS, INSETS); c.gridx = 0; c.gridy = 0; c.anchor = GridBagConstraints.WEST; columns = noColumns; fillerC.gridx = 1; fillerC.gridy = 1; fillerC.weighty = 1; fillerC.weightx = 1; setBorder(BorderFactory.createEmptyBorder(BORDER, BORDER, BORDER, BORDER)); setLayout(new GridBagLayout()); contents = (ArrayList[]) new ArrayList[noColumns]; for (int i = 0; i < noColumns; i++) { contents[i] = new ArrayList(); } } /** * Set insets in all directions to 'inset' all for each object added in the * future. * * @param inset * Inset to use in all directions. */ public void setInsets(int inset) { setInsets(inset, inset, inset, inset); } /** * Set insets in each direction according to the parameters, will be used * for all objects added to the JGridPanel from this point onwards. * * @param top * Top inset value * @param left * Left inset value * @param bottom * Bottom inset value * @param right * Right inset value */ public void setInsets(int top, int left, int bottom, int right) { c.insets = new Insets(top, left, bottom, right); } @Override public Component add(Component comp) { super.remove(panelFiller); contents[c.gridx].add(comp); add(comp, c); next(); add(panelFiller, fillerC); return comp; } /** * Adds a new component to the container and advances one row i newRow is * true. If the component is added to the last column in the current row the * advancement is still only one row. * * @param comp * Component to add. * @param newRow * Whether to advance one row after adding the new component. * @return */ public Component add(Component comp, boolean newRow) { int row = rows; add(comp); if (row == rows && newRow) { nextRow(); } return comp; } @Override public void remove(Component comp) { boolean found = false; for (int i = 0; i < columns; i++) { int index = contents[i].indexOf(comp); if (index != -1) { super.remove(comp); contents[i].remove(comp); found = true; break; } } if (found) { int max = 0; for (int i = 0; i < columns; i++) { max = Math.max(max, contents[i].size()); } if (max <= rows) { removeRow(); } } } /** * Finds the oldComp in the grid of added components and swaps it for the * newComp. * * @param oldComp * @param newComp */ public void swap(Component oldComp, Component newComp) { for (int i = 0; i < columns; i++) { int index = contents[i].indexOf(oldComp); if (index != -1) { contents[i].remove(index); contents[i].add(index, newComp); super.remove(oldComp); int tempX = c.gridx; int tempY = c.gridy; c.gridx = i; c.gridy = index; add(newComp); c.gridx = tempX; c.gridy = tempY; break; } } } /** * Skips 'times' cells in the grid so that the next component will be added further down. * @param times how many cells to skip. */ public void next(int times) { for (int i = 0; i < times; i++) { next(); } } /** * Skips one cell in the grid. */ public void next() { c.gridx++; if (c.gridx >= columns) { nextRow(); } fillerC.gridx = columns + 1; fillerC.gridy = c.gridy + 1; } /** * Advances the layout one row so that the next added component will be on a new one. */ public void nextRow() { c.gridx = 0; c.gridy++; rows++; } private void removeRow() { c.gridx = 0; c.gridy--; rows--; } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/Gui.java000066400000000000000000000103041522247547500237450ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.List; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JOptionPane; /** * Create menu and tabBar, set window size, location and on-exit-behaviour. * * @author Koanxd * */ public class Gui extends JFrame { // this is insignificant but apparently its needed because JFrame is // serializable private static final long serialVersionUID = 5696773542922343319L; // this string is changed on every focusGained event. static String tempValue = ""; ReaderWriter readerWriter = new ReaderWriter(); FileChooser fileChooser = new FileChooser(this); public Gui() { String[] iconNames = {"icon256.png", "icon128.png", "icon64.png", "icon48.png", "icon32.png", "icon24.png", "icon16.png"}; // Load icon files, and set them as application image. List icons = new ArrayList<>(iconNames.length); Toolkit tk = Toolkit.getDefaultToolkit(); for (String fname: iconNames) { URL iconUrl = ClassLoader.getSystemResource(fname); Image img = (iconUrl == null) ? null : tk.getImage(iconUrl); if (img == null) { System.out.printf("Warning: Could not load resource \"%s\".\n", fname); } else { icons.add(img); } } if (!icons.isEmpty()) { setIconImages(icons); } setTitle("CorsixTH Level Editor"); setSize(800, 600); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent event) { onExit(); } }); // set location to center setLocationRelativeTo(null); // The JFrame is just used to get our icon in the filechooser. setJMenuBar(new Menu(this)); setContentPane(new TabBar()); } /** * Gives the user a chance to save any changes before exiting. */ protected void onExit() { JOptionPane exit = new JOptionPane("Would you like to save your level?"); Object[] options = new String[] { "Save", "Don't save", "Cancel" }; exit.setOptions(options); JDialog exitDialog = exit.createDialog(this, "Exit"); exitDialog.setVisible(true); if (exit.getValue() == options[0]) { try { File file = (fileChooser.saveAs()); if (file != null) { readerWriter.saveAs(file); System.exit(0); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (exit.getValue() == options[1]) { System.exit(0); } } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/Main.java000066400000000000000000000062151522247547500241130ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; /** * The main entry point of the Level Editor that simply sets the L&F and starts * the {@link Gui}. The source file also contains a list of TODOs for the * project. * * @author Koanxd * */ public class Main { public static final double VERSION = 0.14; public static void main(String[] args) { try { // Set System L&F UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (UnsupportedLookAndFeelException e) { // handle exception } catch (ClassNotFoundException e) { // handle exception } catch (InstantiationException e) { // handle exception } catch (IllegalAccessException e) { // handle exception } Gui gui = new Gui(); gui.setVisible(true); VarManipulator variableManipulator = new VarManipulator(); variableManipulator.setDefault(); variableManipulator.setAllDiseasesAvailable(); } } /* * TODO known issues file can be saved without any file extension on exit > save * > cancel, the program should not close. * * TODO improvements TabEmergencies: it should not be possible to choose * non-existent diseases TabDiseases: if disease is set to non-existent, set the * other fields to uneditable. textfields: option to reset to default * individually give warning when there is no way a disease can be cured. should * only ask for saving changes on exit if changes have been made. show current * file on the window title save function (not save as) save documentation to * file? error handling multilingual support (priority: disease names) * * TODO testing compatibility with sam files why do the sam files have values * other than 0 or 1 for #visuals / #non_visuals? does it affect the frequency * of each disease? is it implemented in CTH yet? TabStaff: do the staff * distribution entries have to be chronological? */CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/Menu.java000066400000000000000000000120111522247547500241220ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; //creates FileChooser, MenuItems, JMenu public class Menu extends JMenuBar { // this is insignificant but apparently its needed because JFrame is // serializable private static final long serialVersionUID = 5339035000069193766L; ReaderWriter readerWriter = new ReaderWriter(); VarManipulator var = new VarManipulator(); FileChooser fileChooser; JMenuItem fileNew = new JMenuItem("New"); JMenuItem fileOpen = new JMenuItem("Open"); // JMenuItem fileSave = new JMenuItem("Save"); JMenuItem fileSaveAs = new JMenuItem("Save As"); JMenuItem about = new JMenuItem("About"); public Menu(JFrame frame) { JMenu menuFile = new JMenu("File"); menuFile.add(fileNew); menuFile.add(fileOpen); // menuFile.add(fileSave); menuFile.add(fileSaveAs); JMenu menuHelp = new JMenu("Help"); menuHelp.add(about); fileChooser = new FileChooser(frame); // new fileNew.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { var.setDefault(); var.setAllDiseasesAvailable(); } }); // open fileOpen.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { File file = (fileChooser.open()); if (file != null) { if (!file.getPath().toLowerCase().endsWith(".level")) { JOptionPane optionPane = new JOptionPane( "This file type is not " + "fully supported. Proceed anyway?"); Object[] options = new String[] { "Ok", "Cancel" }; optionPane.setOptions(options); JDialog dialog = optionPane.createDialog(null, "Warning"); dialog.setVisible(true); if (optionPane.getValue() == options[1]) return; } // set all variables to default first in case some values // are missing inside the file. var.setDefault(); readerWriter.open(file); } } }); // save as fileSaveAs.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { File file = (fileChooser.saveAs()); if (file != null) readerWriter.saveAs(file); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); about.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JOptionPane aboutPane = new JOptionPane("Version: " + Main.VERSION + "\n\n" + "Programmers: snowblind aka koanxd\n" + "Logo Artist: Wolter\n"); Object[] options = new String[] { "Ok" }; aboutPane.setOptions(options); JDialog dialog = aboutPane.createDialog(null, "About"); dialog.setVisible(true); } }); add(menuFile); add(menuHelp); } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/Population.java000066400000000000000000000033761522247547500253660ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class Population { static final int MONTH = 0; static final int SPAWN = 0; static final int CHANGE = 1; int month = MONTH; int spawn = SPAWN; int change = CHANGE; JPanel populationPanel = new JPanel(); JTextField monthTF = new JTextField(Integer.toString(month), 2); JTextField changeTF = new JTextField(Integer.toString(change), 2); JLabel spawnLabel = new JLabel("Number of patients: " + spawn); JLabel changeLabel = new JLabel("Change per month:"); JLabel monthLabel = new JLabel("Month:"); } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/Quake.java000066400000000000000000000032461522247547500242760ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import javax.swing.JPanel; import javax.swing.JTextField; public class Quake { static final int START_MONTH = 6; static final int END_MONTH = 18; static final int SEVERITY = 1; int startMonth = START_MONTH; int endMonth = END_MONTH; int severity = SEVERITY; JPanel quakePanel = new JPanel(); JTextField startMonthTF = new JTextField(Integer.toString(startMonth), 2); JTextField endMonthTF = new JTextField(Integer.toString(endMonth), 2); JTextField severityTF = new JTextField(Integer.toString(severity), 2); } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/ReaderWriter.java000066400000000000000000001172471522247547500256360ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /** * Reads .level and .SAM files and writes the currently opened data to .level * files. * * @author Koanxd * */ public class ReaderWriter { VarManipulator varManipulator = new VarManipulator(); public void open(File file) { try { if (file != null) { BufferedReader read = new BufferedReader(new FileReader(file)); String line; // keep reading, as long as current line is not null while ((line = read.readLine()) != null) { if (line.startsWith("%Name")) readFromFile(line, "name"); else if (line.startsWith("%MapFile")) readFromFile(line, "mapFile"); else if (line.startsWith("%LevelFile")) readFromFile(line, "mapFile"); else if (line.startsWith("%LevelBriefing")) readFromFile(line, "briefing"); else if (line.startsWith("#town")) { readFromFile(line, "StartCash", "startCash"); readFromFile(line, "InterestRate", "interest"); } else if (line.startsWith("#gbv")) { readTableFromFile(line, "SalaryAdd", "salaryAdd"); readFromFile(line, "StartRating", "drugStartRating"); readFromFile(line, "DrugImproveRate", "drugImproveRate"); readFromFile(line, "StartCost", "drugStartCost"); readFromFile(line, "MinDrugCost", "drugMinCost"); readFromFile(line, "LandCostPerTile", "landCostPerTile"); readFromFile(line, "RschImproveCostPercent", "researchUpgradeCost"); readFromFile(line, "RschImproveIncrementPercent", "researchUpgradeIncrementCost"); readFromFile(line, "MaxObjectStrength", "maxStrength"); readFromFile(line, "ResearchIncrement", "strengthIncrement"); readFromFile(line, "AutopsyRschPercent", "autopsyResearchPercent"); readFromFile(line, "AutopsyRepHitPercent", "autopsyRepHitPercent"); } else if (line.startsWith("#visuals[")) { readTableFromFile(line, null, "visuals"); } else if (line.startsWith("#non_visuals[")) { readTableFromFile(line, null, "nonVisuals"); } else if (line.startsWith("#expertise[")) { readTableFromFile(line, "Known", "known"); readTableFromFile(line, "RschReqd", "expertiseResearch"); } else if (line.startsWith("#visuals_available[")) { readTableFromFile(line, null, "visualsAvailable"); } else if (line.startsWith("#objects[")) { readTableFromFile(line, "StartAvail", "objectsStartAvail"); readTableFromFile(line, "StartStrength", "objectsStrength"); readTableFromFile(line, "AvailableForLevel", "objectsAvail"); readTableFromFile(line, "RschReqd", "objectsResearch"); } else if (line.startsWith("#start_staff[")) { readTableFromFile(line, "Doctor", "startStaff.doctor"); readTableFromFile(line, "Shrink", "startStaff.shrink"); readTableFromFile(line, "Surgeon", "startStaff.surgeon"); readTableFromFile(line, "Researcher", "startStaff.researcher"); readTableFromFile(line, "Nurse", "startStaff.nurse"); readTableFromFile(line, "Handyman", "startStaff.handyman"); readTableFromFile(line, "Receptionist", "startStaff.receptionist"); readTableFromFile(line, "Skill", "startStaff.skill"); } else if (line.startsWith("#staff_levels[")) { readTableFromFile(line, "Month", "staffLevels.month"); readTableFromFile(line, "Nurses", "staffLevels.nurses"); readTableFromFile(line, "Doctors", "staffLevels.doctors"); readTableFromFile(line, "Handymen", "staffLevels.handymen"); readTableFromFile(line, "Receptionists", "staffLevels.receptionists"); readTableFromFile(line, "ShrkRate", "staffLevels.shrinkRate"); readTableFromFile(line, "SurgRate", "staffLevels.surgeonRate"); readTableFromFile(line, "RschRate", "staffLevels.researcherRate"); readTableFromFile(line, "ConsRate", "staffLevels.consultantRate"); readTableFromFile(line, "JrRate", "staffLevels.juniorRate"); } else if (line.startsWith("#staff[")) { readTableFromFile(line, "MinSalary", "staffSalary"); } else if (line.startsWith("#emergency_control[")) { readTableFromFile(line, "Random", "emergency.Random"); readTableFromFile(line, "Mean", "emergencyInterval"); readTableFromFile(line, "Variance", "emergencyIntervalVariance"); readTableFromFile(line, "StartMonth", "emergency.startMonth"); readTableFromFile(line, "EndMonth", "emergency.endMonth"); readTableFromFile(line, "Min", "emergency.minPatients"); readTableFromFile(line, "Max", "emergency.maxPatients"); readTableFromFile(line, "Illness", "emergency.illness"); readTableFromFile(line, "PercWin", "emergency.percWin"); readTableFromFile(line, "Bonus", "emergency.bonus"); } else if (line.startsWith("#quake_control[")) { readTableFromFile(line, "StartMonth", "quake.startMonth"); readTableFromFile(line, "EndMonth", "quake.endMonth"); readTableFromFile(line, "Severity", "quake.severity"); } else if (line.startsWith("#popn[")) { readTableFromFile(line, "Month", "population.month"); readTableFromFile(line, "Change", "population.change"); } else if (line.startsWith("#awards_trophies")) { readFromFile(line, "CansofCoke", "cansOfCoke"); readFromFile(line, "CansofCokeBonus", "cansOfCokeBonus"); readFromFile(line, "Reputation", "reputation"); readFromFile(line, "TrophyReputationBonus", "reputationBonus"); readFromFile(line, "TrophyDeathBonus", "noDeathsBonus"); } else if (line.startsWith("#win_criteria[")) { readFromFile(line, "Criteria", "Value", "winCriteria.value"); } else if (line.startsWith("#lose_criteria[")) { readFromFile(line, "Criteria", "Value", "loseCriteria.value"); readFromFile(line, "Criteria", "Bound", "loseCriteria.bound"); } } read.close(); TabPopulation.calculateNumberOfPatients(); } } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } public void saveAs(File file) { try { if (file != null) { BufferedWriter write = new BufferedWriter(new FileWriter(file)); write.write("Only lines beginning with % or # as explained below will " + "be considered by the game. "); write.newLine(); write.newLine(); write.write("Each line beginning with a %-sign are directives to use when " + "loading the game, such as what the level is called and where " + "to find the map file. Available commands:"); write.newLine(); write.newLine(); write.write("- Name: What the level should be called (within quotes)"); write.newLine(); write.newLine(); write.write("- MapFile: The name of the binary map file to load. "); write.write("First the Levels directory of the original game will be " + "searched, and then the Levels directory of CorsixTH."); write.newLine(); write.newLine(); write.write("Lines that begin with # defines all parameters for the " + "level. By default there are no diseases and only some " + "basic rooms are available. Note that if a player is using " + "the demo files on the contrary everything is available " + "unless specified otherwise in the level file."); write.newLine(); write.newLine(); write.write("---------------------- General -------------------------"); write.newLine(); write.newLine(); write.write("%Name = \"" + (TabGeneral.name) + "\""); write.newLine(); write.write("%MapFile = \"" + (TabGeneral.mapFile) + "\""); write.newLine(); write.write("%LevelBriefing = \"" + (TabGeneral.briefing) + "\""); write.newLine(); write.write("#town.StartCash.InterestRate " + (TabGeneral.startCash) + " " + interestToInt(TabGeneral.interest)); write.newLine(); write.newLine(); write.write("#gbv.StartRating " + (TabGeneral.drugStartRating)); write.write(" When a drug is researched, what effectiveness does it have"); write.newLine(); write.write("#gbv.DrugImproveRate " + (TabGeneral.drugImproveRate)); write.newLine(); write.write("#gbv.StartCost " + (TabGeneral.drugStartCost)); write.newLine(); write.write("#gbv.MinDrugCost " + (TabGeneral.drugMinCost)); write.newLine(); write.write("#gbv.LandCostPerTile " + (TabGeneral.landCostPerTile)); write.write(" Cost to buy a single map square"); write.newLine(); write.write("#gbv.RschImproveCostPercent " + (TabGeneral.researchUpgradeCost)); write.write(" How many percent of the original research points " + "that are required to improve the machine."); write.newLine(); write.write("#gbv.RschImproveIncrementPercent " + (TabGeneral.researchUpgradeIncrementCost)); write.write(" How many additional percentage points are added to " + "the above value for each upgrade."); write.newLine(); write.write("#gbv.MaxObjectStrength " + (TabGeneral.maxStrength)); write.write(" Maximum strength value an object can be improved to (by research)"); write.newLine(); write.write("#gbv.ResearchIncrement " + (TabGeneral.strengthIncrement)); write.write(" Increase object strength by this amount when researching"); write.newLine(); write.write("#gbv.AutopsyRschPercent " + (TabGeneral.autopsyResearchPercent)); write.write(" % of research completed for an autopsy"); write.newLine(); write.write("#gbv.AutopsyRepHitPercent " + (TabGeneral.autopsyRepHitPercent)); write.write(" % rep hit for discovered autopsy"); write.newLine(); write.newLine(); write.newLine(); write.write("---------------------- Diseases -------------------------"); write.newLine(); write.newLine(); write.write("The following table contains all diagnoses " + "and treatments that shows up in the drug casebook " + "in the game. Known specifies whether it should " + "show up from the beginning of the level and " + "RschReqd how much research is required to discover " + "the treatment room for the disease."); write.newLine(); // start at index 1. 0 is never used by the game. for (int i = 1; i < TabDiseases.known.length; i++) { write.write("#expertise[" + i + "].Known.RschReqd" + " " + TabDiseases.known[i] + " " + TabDiseases.expertiseResearch[i]); write.newLine(); } write.newLine(); write.newLine(); write.write("| Diseases available | Value property to be determined | Comment"); write.newLine(); for (int i = 0; i < TabDiseases.visuals.length; i++) { write.write("#visuals[" + i + "] " + TabDiseases.visuals[i]); write.newLine(); } for (int i = 0; i < TabDiseases.nonVisuals.length; i++) { write.write("#non_visuals[" + i + "] " + TabDiseases.nonVisuals[i]); write.newLine(); } write.newLine(); write.newLine(); for (int i = 0; i < TabDiseases.visualsAvailable.length; i++) { write.write("#visuals_available[" + i + "] " + TabDiseases.visualsAvailable[i]); write.newLine(); } write.newLine(); write.newLine(); write.write("---------------------- Objects -------------------------"); write.newLine(); write.newLine(); write.write("| Objects available | Available from the start | Strength | Available for this level | Comment"); write.newLine(); // start at index 1. 0 is never used by the game. for (int i = 1; i < TabObjects.objectsAvail.length; i++) { write.write("#objects[" + i + "].StartAvail.StartStrength" + ".AvailableForLevel.RschReqd" + " " + TabObjects.objectsStartAvail[i] + " " + TabObjects.objectsStrength[i] + " " + TabObjects.objectsAvail[i] + " " + TabObjects.objectsResearch[i]); write.newLine(); } write.newLine(); write.newLine(); write.write("---------------------- Staff Configuration -------------------------"); write.newLine(); write.newLine(); // starts at index 1. 0 is never used by the game. for (int i = 0; i < TabStaff.startStaffList.size(); i++) { write.write("#start_staff[" + (i + 1) + "].Doctor.Shrink.Surgeon.Researcher.Nurse.Handyman.Receptionist.Skill " + TabStaff.startStaffList.get(i).doctor + " " + TabStaff.startStaffList.get(i).shrink + " " + TabStaff.startStaffList.get(i).surgeon + " " + TabStaff.startStaffList.get(i).researcher + " " + TabStaff.startStaffList.get(i).nurse + " " + TabStaff.startStaffList.get(i).handyman + " " + TabStaff.startStaffList.get(i).receptionist + " " + TabStaff.startStaffList.get(i).skill); write.newLine(); } write.newLine(); write.newLine(); write.write("The minimum salary for each staff type"); write.newLine(); for (int i = 0; i < TabStaff.staffSalary.length; i++) { write.write("#staff[" + i + "].MinSalary " + TabStaff.staffSalary[i]); write.newLine(); } write.newLine(); write.newLine(); write.write("Salary modifiers for different doctor attributes"); write.newLine(); // index 0,1,2 not used. start with 3. for (int i = 3; i < TabStaff.salaryAdd.length; i++) { write.write("#gbv.SalaryAdd[" + i + "] " + TabStaff.salaryAdd[i]); write.newLine(); } write.newLine(); write.newLine(); write.write("Each entry states how many staff members of each " + "category are available a given month. The number of entries is not fixed."); write.newLine(); write.write("| A list | Month it gets active (start at 0) | Each group |"); write.newLine(); for (int i = 0; i < TabStaff.staffLevelsList.size(); i++) { write.write("#staff_levels[" + (i) + "].Month.Nurses.Doctors.Handymen.Receptionists." + "ShrkRate.SurgRate.RschRate.ConsRate.JrRate " + TabStaff.staffLevelsList.get(i).month + " " + TabStaff.staffLevelsList.get(i).nurses + " " + TabStaff.staffLevelsList.get(i).doctors + " " + TabStaff.staffLevelsList.get(i).handymen + " " + TabStaff.staffLevelsList.get(i).receptionists + " " + TabStaff.staffLevelsList.get(i).shrinkRate + " " + TabStaff.staffLevelsList.get(i).surgeonRate + " " + TabStaff.staffLevelsList.get(i).researcherRate + " " + TabStaff.staffLevelsList.get(i).consultantRate + " " + TabStaff.staffLevelsList.get(i).juniorRate); write.newLine(); } write.newLine(); write.newLine(); write.write("#gbv.TrainingRate 45"); write.newLine(); write.write("#gbv.AbilityThreshold[0] 75 Surgeon"); write.newLine(); write.write("#gbv.AbilityThreshold[1] 60 Psychiatrist"); write.newLine(); write.write("#gbv.AbilityThreshold[2] 45 Researcher"); write.newLine(); write.write("#gbv.TrainingValue[0] 10 Projector"); write.newLine(); write.write("#gbv.TrainingValue[1] 25 Skeleton"); write.newLine(); write.write("#gbv.TrainingValue[2] 30 Bookcase"); write.newLine(); write.newLine(); write.write("----------------------- Emergency Control --------------------------"); write.newLine(); write.newLine(); switch (Emergency.emergencyMode) { case 0: write.write("#emergency_control[0].Random 0"); write.newLine(); break; case 1: write.write("#emergency_control[0].Mean.Variance " + TabEmergencies.emergencyInterval + " " + TabEmergencies.emergencyIntervalVariance); write.newLine(); break; case 2: for (int i = 0; i < TabEmergencies.emergencyList.size(); i++) { write.write("#emergency_control[" + i + "].StartMonth.EndMonth.Min.Max.Illness.PercWin.Bonus " + TabEmergencies.emergencyList.get(i).startMonth + " " + TabEmergencies.emergencyList.get(i).endMonth + " " + TabEmergencies.emergencyList.get(i).minPatients + " " + TabEmergencies.emergencyList.get(i).maxPatients + " " + TabEmergencies.emergencyList.get(i).illness + " " + TabEmergencies.emergencyList.get(i).percWin + " " + TabEmergencies.emergencyList.get(i).bonus); write.newLine(); } break; default: break; } write.newLine(); write.newLine(); write.write("----------------------- Quake Control --------------------------"); write.newLine(); write.newLine(); for (int i = 0; i < TabEarthquakes.quakeList.size(); i++) { write.write("#quake_control[" + i + "].StartMonth.EndMonth.Severity " + TabEarthquakes.quakeList.get(i).startMonth + " " + TabEarthquakes.quakeList.get(i).endMonth + " " + TabEarthquakes.quakeList.get(i).severity); write.newLine(); } write.newLine(); write.newLine(); write.write("----------------------- Population Growth ----------------------------"); write.newLine(); write.newLine(); for (int i = 0; i < TabPopulation.populationList.size(); i++) { write.write("#popn[" + i + "].Month.Change " + TabPopulation.populationList.get(i).month + " " + TabPopulation.populationList.get(i).change); write.newLine(); } write.newLine(); write.newLine(); write.write("---------------------- Awards and Trophies -------------------------"); write.newLine(); write.newLine(); write.write("#awards_trophies.CansofCoke " + TabAwards.cansOfCoke); write.newLine(); write.write("#awards_trophies.CansofCokeBonus " + TabAwards.cansOfCokeBonus); write.newLine(); write.write("#awards_trophies.Reputation " + TabAwards.reputation); write.newLine(); write.write("#awards_trophies.TrophyReputationBonus " + TabAwards.reputationBonus); write.newLine(); write.write("#awards_trophies.TrophyDeathBonus " + TabAwards.noDeathsBonus); write.newLine(); write.newLine(); write.newLine(); write.write("------------------ Winning and Losing Conditions -------------------"); write.newLine(); write.newLine(); write.write("1 Total reputation"); write.newLine(); write.write("2 Balance total"); write.newLine(); write.write("3 Percentage people your hospital has handled"); write.newLine(); write.write("4 Cure count"); write.newLine(); write.write("5 Percentage people have been killed"); write.newLine(); write.write("6 Hospital value"); write.newLine(); write.newLine(); int numberOfCriteria = 0; if (TabGoals.winReputation) { write.write("#win_criteria[" + numberOfCriteria + "].Criteria.MaxMin.Value.Group.Bound "); write.write(1 + " " + 1 + " " + TabGoals.minReputation + " " + 1 + " " + 0); numberOfCriteria++; write.newLine(); } if (TabGoals.winBalance) { write.write("#win_criteria[" + numberOfCriteria + "].Criteria.MaxMin.Value.Group.Bound "); write.write(2 + " " + 1 + " " + TabGoals.minBalance + " " + 1 + " " + 0); numberOfCriteria++; write.newLine(); } if (TabGoals.winPercentage) { write.write("#win_criteria[" + numberOfCriteria + "].Criteria.MaxMin.Value.Group.Bound "); write.write(3 + " " + 1 + " " + TabGoals.minPercentage + " " + 1 + " " + 0); numberOfCriteria++; write.newLine(); } if (TabGoals.winCureCount) { write.write("#win_criteria[" + numberOfCriteria + "].Criteria.MaxMin.Value.Group.Bound "); write.write(4 + " " + 1 + " " + TabGoals.minCureCount + " " + 1 + " " + 0); numberOfCriteria++; write.newLine(); } if (TabGoals.winValue) { write.write("#win_criteria[" + numberOfCriteria + "].Criteria.MaxMin.Value.Group.Bound "); write.write(6 + " " + 1 + " " + TabGoals.minValue + " " + 1 + " " + 0); write.newLine(); } write.newLine(); numberOfCriteria = 0; if (TabGoals.loseReputation) { write.write("#lose_criteria[" + numberOfCriteria + "].Criteria.MaxMin.Value.Group.Bound "); write.write(1 + " " + 0 + " " + TabGoals.maxReputation + " " + 1 + " " + TabGoals.warnReputation); numberOfCriteria++; write.newLine(); } if (TabGoals.loseBalance) { write.write("#lose_criteria[" + numberOfCriteria + "].Criteria.MaxMin.Value.Group.Bound "); write.write(2 + " " + 0 + " " + TabGoals.maxBalance + " " + 2 + " " + TabGoals.warnBalance); numberOfCriteria++; write.newLine(); } if (TabGoals.losePercentageKilled) { write.write("#lose_criteria[" + numberOfCriteria + "].Criteria.MaxMin.Value.Group.Bound "); write.write(5 + " " + 1 + " " + TabGoals.minPercentageKilled + " " + 3 + " " + TabGoals.warnPercentageKilled); write.newLine(); } write.close(); } } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } // read a variable from the file. public void readFromFile(String line, String parameter, String variable) { // consider the line "#town.StartCash.InterestRate 100000 300" // to get the number of parameters, split the line along "\\." dots // result: "#town", "StartCash", "InterestRate 100000 300" // start from i = 1, so the first part "#town" is ignored. we have 2 // parameters. int parameterCount = line.split("[\\.]").length; for (int i = 1; i < (parameterCount); i++) { // we want to check only the actual content of the parameters, // so the line must be split up along "\\." dots and "\\s+" // whitespaces // result: "#town", "StartCash", "InterestRate", "100000", "300" // we check the position of each parameter, so we know which value // belongs to which parameter. if ((line.split("[\\.\\s+]")[i]).matches(parameter)) if (!"interest".equals(variable)) { // to get only the actual value, split along "\\s+" // whitespaces. // result: "#town.Start.Cash.InterestRate", "100000", "300" // again, the first part is ignored because we started // counting at i = 1, not 0. // now all values are in the same position as their // corresponding parameter. varManipulator.setValue(variable, line.split("\\s+")[i]); } else { // interest in the level file is an integer, like 300 = 3%. // convert the value to double and divide by 100. double interest2 = (Double .parseDouble(line.split("\\s+")[i])) / 100; // convert back to string so it fits the arguments of // setVariable varManipulator.setValue(variable, Double.toString(interest2)); } } } // this method exists for %Level parameters because they are only a single // variable inside quotes public void readFromFile(String line, String variable) { varManipulator.setValue(variable, (line.split("\"")[1])); } // this method exists for win/lose criteria. public void readFromFile(String line, String parameter, String parameter2, String variable) { int parameterCount = line.split("[\\.]").length; for (int i = 1; i < (parameterCount); i++) { if ((line.split("[\\.\\s+]")[i]).matches(parameter)) { for (int ii = 1; ii < (parameterCount); ii++) { if ((line.split("[\\.\\s+]")[ii]).matches(parameter2)) { varManipulator.setCriteria(variable, true, (Integer.parseInt(line.split("\\s+")[i])), (Integer.parseInt(line.split("\\s+")[ii]))); } } } } } // this method exists for tables like #expertise[] public void readTableFromFile(String line, String parameter, String variable) { if (parameter != null) { int parameterCount = line.split("[\\.]").length; for (int i = 1; i < (parameterCount); i++) { // gbv.SalaryAdd[] has its parameter (SalaryAdd) before the // brackets if ("SalaryAdd".equals(parameter)) { if ((line.split("[\\.\\s+]")[i]).matches(parameter + "\\[\\d\\]")) { // split the line to get the value inside [ ] (the // index). // then split by "\\s+" whitespaces to get the value varManipulator.setValueForTable(variable, (Integer.parseInt(line.split("[\\[\\]]")[1])), (Integer.parseInt(line.split("\\s+")[i]))); } } else { if ((line.split("[\\.\\s+]")[i]).matches(parameter)) { // split the line to get the value inside [ ] (the // index). // then split by "\\s+" whitespaces to get the value varManipulator.setValueForTable(variable, (Integer.parseInt(line.split("[\\[\\]]")[1])), (Integer.parseInt(line.split("\\s+")[i]))); } } } } else // if a parameter null is given, then there is only one variable // like #visuals[] { varManipulator.setValueForTable(variable, (Integer.parseInt(line.split("[\\[\\]]")[1])), (Integer.parseInt(line.split("\\s+")[1]))); } } public void saveLastFilePath(String filepath) { File file = new File("lastFilePath.txt"); try { BufferedWriter write = new BufferedWriter(new FileWriter(file)); write.write(filepath); write.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public File getLastFilePath() { File returnFile = null; try { if (new File("lastFilePath.txt").exists()) { BufferedReader read = new BufferedReader(new FileReader( "lastFilePath.txt")); returnFile = new File(read.readLine()); read.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return returnFile; } // convert interest to an int value up to 2 decimals precision. public int interestToInt(double interest2) { Double fInterest = interest2; fInterest = fInterest * 100; Integer iInterest = fInterest.intValue(); return iInterest; } // because the briefing in the level file does not allow newlines: // replace newlines with an appropriate amount of spaces, // to create a newline effect in the game. // public String briefingToSingleLine() // { // //split the input briefing along newlines, creating a new string for each // line. // String[] briefingLines = TabGeneral.briefing.split("\n"); // String returnBriefing = ""; // int spacesRequired = 0; // for (int i=0; i 50) // { // StringBuffer spaces = new StringBuffer(); // spacesRequired = 50 - lineCharactersCount; // for (int iii=0; iii staffMemberCombo = new JComboBox<>(staffChoice); JCheckBox shrinkCB = new JCheckBox(); JCheckBox surgeonCB = new JCheckBox(); JCheckBox researcherCB = new JCheckBox(); JLabel shrinkLabel = new JLabel("Psychiatrist"); JLabel surgeonLabel = new JLabel("Surgeon"); JLabel researcherLabel = new JLabel("Researcher"); JLabel skillLabel = new JLabel("Skill"); JTextField skillTF = new JTextField("50", 5); } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabAwards.java000066400000000000000000000220531522247547500250750ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class TabAwards extends JScrollPane { private static final long serialVersionUID = -244055170654039024L; // variables static final int CANS_OF_COKE = 100; static final int CANS_OF_COKE_BONUS = 1000; static final int REPUTATION = 400; static final int REPUTATION_BONUS = 2000; static final int NO_DEATHS_BONUS = 10000; static int cansOfCoke = CANS_OF_COKE; static int cansOfCokeBonus = CANS_OF_COKE_BONUS; static int reputation = REPUTATION; static int reputationBonus = REPUTATION_BONUS; static int noDeathsBonus = NO_DEATHS_BONUS; // components GridPanel awards = new GridPanel(4); static JLabel cansOfCokeLabel = new JLabel("Cans of coke:"); static JLabel cansOfCokeBonusLabel = new JLabel("Cans of coke bonus:"); static JLabel reputationLabel = new JLabel("Reputation:"); static JLabel reputationBonusLabel = new JLabel("Reputation bonus:"); static JLabel noDeathsBonusLabel = new JLabel("No deaths bonus:"); static JTextField cansOfCokeTF = new JTextField( Integer.toString(cansOfCoke), 5); static JTextField cansOfCokeBonusTF = new JTextField( Integer.toString(cansOfCokeBonus), 5); static JTextField reputationTF = new JTextField( Integer.toString(reputation), 5); static JTextField reputationBonusTF = new JTextField( Integer.toString(reputationBonus), 5); static JTextField noDeathsBonusTF = new JTextField( Integer.toString(noDeathsBonus), 5); public TabAwards() { // set scroll speed getVerticalScrollBar().setUnitIncrement(20); getHorizontalScrollBar().setUnitIncrement(20); setViewportView(awards); // cans of coke awards.add(cansOfCokeLabel); cansOfCokeLabel .setToolTipText("Sell more than this number of cans to win the award"); awards.add(cansOfCokeTF); cansOfCokeTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { cansOfCoke = 1; cansOfCokeTF.setText(Integer.toString(cansOfCoke)); } else cansOfCoke = input; } catch (NumberFormatException nfe) { cansOfCoke = Integer.parseInt(Gui.tempValue); cansOfCokeTF.setText(Gui.tempValue); } } }); awards.add(cansOfCokeBonusLabel); cansOfCokeBonusLabel.setToolTipText("Cash bonus for this award"); awards.add(cansOfCokeBonusTF); cansOfCokeBonusTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { cansOfCokeBonus = 1; cansOfCokeBonusTF.setText(Integer .toString(cansOfCokeBonus)); } else cansOfCokeBonus = input; } catch (NumberFormatException nfe) { cansOfCokeBonus = Integer.parseInt(Gui.tempValue); cansOfCokeBonusTF.setText(Gui.tempValue); } } }); // reputation awards.add(reputationLabel); reputationLabel .setToolTipText("Reputation that is needed through the whole year to win the award"); awards.add(reputationTF); reputationTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { reputation = 1; reputationTF.setText(Integer.toString(reputation)); } else if (input > 999) { reputation = 999; reputationTF.setText(Integer.toString(reputation)); } else reputation = input; } catch (NumberFormatException nfe) { reputation = Integer.parseInt(Gui.tempValue); reputationTF.setText(Gui.tempValue); } } }); awards.add(reputationBonusLabel); reputationBonusLabel.setToolTipText("Cash bonus for this award"); awards.add(reputationBonusTF); reputationBonusTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { reputationBonus = 1; reputationBonusTF.setText(Integer .toString(reputationBonus)); } else reputationBonus = input; } catch (NumberFormatException nfe) { reputationBonus = Integer.parseInt(Gui.tempValue); reputationBonusTF.setText(Gui.tempValue); } } }); // no deaths awards.add(noDeathsBonusLabel); noDeathsBonusLabel .setToolTipText("Cash bonus for killing no patients the whole year"); awards.add(noDeathsBonusTF); noDeathsBonusTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { noDeathsBonus = 1; noDeathsBonusTF.setText(Integer.toString(noDeathsBonus)); } else noDeathsBonus = input; } catch (NumberFormatException nfe) { noDeathsBonus = Integer.parseInt(Gui.tempValue); noDeathsBonusTF.setText(Gui.tempValue); } } }); } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabBar.java000066400000000000000000000036121522247547500243600ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import javax.swing.JTabbedPane; /** * A JTabbedPane and all actual tabs * @author Koanxd * */ public class TabBar extends JTabbedPane { // this is insignificant but apparently its needed because JFrame is // serializable private static final long serialVersionUID = 3421838428038605079L; public TabBar() { addTab("General", new TabGeneral()); addTab("Diseases", new TabDiseases()); addTab("Objects", new TabObjects()); addTab("Staff", new TabStaff()); addTab("Emergencies", new TabEmergencies()); addTab("Earthquakes", new TabEarthquakes()); addTab("Population", new TabPopulation()); addTab("Awards", new TabAwards()); addTab("Goals", new TabGoals()); } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabDiseases.java000066400000000000000000002314311522247547500254160ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTextField; public class TabDiseases extends JScrollPane { private static final long serialVersionUID = 3970826882625493102L; // variables static Disease[] arDiseases = new Disease[36]; // index 0,1 are never used. static int[] expertiseResearch = new int[47]; // using the numbers of // #expertise[]. index [0] is // never used. static int[] known = new int[47]; // #expertise[] static int[] visuals = new int[14]; static int[] nonVisuals = new int[20]; static int[] visualsAvailable = new int[14]; // components static JCheckBox[] visualsCB = new JCheckBox[14]; static JCheckBox[] nonVisualsCB = new JCheckBox[20]; static JCheckBox[] knownCB = new JCheckBox[47]; // #expertise[] static JTextField[] visualsAvailableTF = new JTextField[14]; static JTextField[] expertiseResearchTF = new JTextField[47]; // #expertise[] GridPanel diseases = new GridPanel(1); JPanel topPanel = new JPanel(); GridPanel drug = new GridPanel(5); GridPanel psych = new GridPanel(4); GridPanel clinic = new GridPanel(4); GridPanel op = new GridPanel(4); GridPanel selected = drug; // top panel ButtonGroup buttonGroup = new ButtonGroup(); JLabel drugLabel = new JLabel("Pharmacy"); JLabel psychLabel = new JLabel("Psychiatry"); JLabel clinicLabel = new JLabel("Clinic"); JLabel opLabel = new JLabel("OP Theatre"); JRadioButton drugRB = new JRadioButton(); JRadioButton psychRB = new JRadioButton(); JRadioButton clinicRB = new JRadioButton(); JRadioButton opRB = new JRadioButton(); // column headings for each panel. // they are needed 4 times because they cannot be shared among panels JLabel existsLabel1 = new JLabel("Available"); JLabel knownLabel1 = new JLabel("Known"); JLabel availableLabel1 = new JLabel("Month"); JLabel researchLabel = new JLabel("Research"); static JCheckBox checkAllExistsCB1 = new JCheckBox(); static JCheckBox checkAllKnownCB1 = new JCheckBox(); JLabel existsLabel2 = new JLabel("Available"); JLabel knownLabel2 = new JLabel("Known"); JLabel availableLabel2 = new JLabel("Month"); static JCheckBox checkAllExistsCB2 = new JCheckBox(); static JCheckBox checkAllKnownCB2 = new JCheckBox(); JLabel existsLabel3 = new JLabel("Available"); JLabel knownLabel3 = new JLabel("Known"); JLabel availableLabel3 = new JLabel("Month"); static JCheckBox checkAllExistsCB3 = new JCheckBox(); static JCheckBox checkAllKnownCB3 = new JCheckBox(); JLabel existsLabel4 = new JLabel("Available"); JLabel knownLabel4 = new JLabel("Known"); JLabel availableLabel4 = new JLabel("Month"); static JCheckBox checkAllExistsCB4 = new JCheckBox(); static JCheckBox checkAllKnownCB4 = new JCheckBox(); // visuals JLabel bloatyHeadLabel = new JLabel("Bloaty Head"); JLabel hairyitusLabel = new JLabel("Hairyitus"); JLabel elvisLabel = new JLabel("Elvis"); JLabel invisibleLabel = new JLabel("Invisibility"); JLabel radiationLabel = new JLabel("Serious Radiation"); JLabel slackTongueLabel = new JLabel("Slack Tongue"); JLabel alienLabel = new JLabel("Alien DNA"); JLabel brokenBonesLabel = new JLabel("Broken Bones"); JLabel baldnessLabel = new JLabel("Baldness"); JLabel discreteItchingLabel = new JLabel("Discrete Itching"); JLabel jellyitusLabel = new JLabel("Jellyitus"); JLabel sleepingIllnessLabel = new JLabel("Sleeping Illness"); JLabel pregnantLabel = new JLabel("(Pregnancy)"); JLabel transparencyLabel = new JLabel("Transparency"); // non visuals JLabel uncommonColdLabel = new JLabel("Uncommon Cold"); JLabel brokenWindLabel = new JLabel("Broken Wind"); JLabel spareRibsLabel = new JLabel("Spare Ribs"); JLabel kidneyBeansLabel = new JLabel("Kidney Beans"); JLabel brokenHeartLabel = new JLabel("Broken Heart"); JLabel rupturedNodulesLabel = new JLabel("Ruptured Nodules"); JLabel multipleTvPersonalitiesLabel = new JLabel( "Multiple TV Personalities"); JLabel infectiousLaughterLabel = new JLabel("Infectious Laughter"); JLabel corrugatedAnklesLabel = new JLabel("Corrugated Ankles"); JLabel chronicNosehairLabel = new JLabel("Chronic Nosehair"); JLabel thirdDegreeSideburnsLabel = new JLabel("3rd Degree Sideburns"); JLabel fakeBloodLabel = new JLabel("Fake Blood"); JLabel gastricEjectionsLabel = new JLabel("Gastric Ejections"); JLabel theSquitsLabel = new JLabel("The Squits"); JLabel ironLungsLabel = new JLabel("Iron Lungs"); JLabel sweatyPalmsLabel = new JLabel("Sweaty Palms"); JLabel heapedPilesLabel = new JLabel("Heaped Piles"); JLabel gutRotLabel = new JLabel("Gut Rot"); JLabel golfStonesLabel = new JLabel("Golf Stones"); JLabel unexpectedSwellingLabel = new JLabel("Unexpected Swelling"); public TabDiseases() { // set scroll speed getVerticalScrollBar().setUnitIncrement(20); getHorizontalScrollBar().setUnitIncrement(20); setViewportView(diseases); // initializing members of arrays, else they will be null. for (int i = 0; i < visualsCB.length; i++) visualsCB[i] = new JCheckBox(); for (int i = 0; i < nonVisualsCB.length; i++) nonVisualsCB[i] = new JCheckBox(); for (int i = 0; i < knownCB.length; i++) knownCB[i] = new JCheckBox(); for (int i = 0; i < visualsAvailableTF.length; i++) visualsAvailableTF[i] = new JTextField(2); for (int i = 0; i < expertiseResearchTF.length; i++) expertiseResearchTF[i] = new JTextField(5); // top panel diseases.add(topPanel); buttonGroup.add(drugRB); buttonGroup.add(psychRB); buttonGroup.add(opRB); buttonGroup.add(clinicRB); topPanel.add(drugRB); drugRB.setActionCommand("drug"); psychRB.setActionCommand("psych"); opRB.setActionCommand("op"); clinicRB.setActionCommand("clinic"); ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { GridPanel newSelection; switch (e.getActionCommand()) { case "op": newSelection = op; break; case "clinic": newSelection = clinic; break; case "psych": newSelection = psych; break; default: newSelection = drug; } diseases.swap(selected, newSelection); selected = newSelection; diseases.updateUI(); } }; drugRB.addActionListener(listener); topPanel.add(drugLabel); topPanel.add(psychRB); psychRB.addActionListener(listener); topPanel.add(psychLabel); topPanel.add(opRB); opRB.addActionListener(listener); topPanel.add(opLabel); topPanel.add(clinicRB); clinicRB.addActionListener(listener); topPanel.add(clinicLabel); diseases.add(drug); buttonGroup.setSelected(drugRB.getModel(), true); // create borders for 4 panels drug.setBorder(BorderFactory.createTitledBorder("Pharmacy")); psych.setBorder(BorderFactory.createTitledBorder("Psychiatry")); op.setBorder(BorderFactory.createTitledBorder("OP Theatre")); clinic.setBorder(BorderFactory.createTitledBorder("Clinic")); // drug panel drug.add(new JLabel("Check all")); drug.add(checkAllExistsCB1); checkAllExistsCB1.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { visualsCB[3].setSelected(true); visualsCB[9].setSelected(true); visualsCB[11].setSelected(true); visualsCB[13].setSelected(true); nonVisualsCB[0].setSelected(true); nonVisualsCB[1].setSelected(true); nonVisualsCB[8].setSelected(true); nonVisualsCB[9].setSelected(true); nonVisualsCB[12].setSelected(true); nonVisualsCB[13].setSelected(true); nonVisualsCB[16].setSelected(true); nonVisualsCB[17].setSelected(true); } else { visualsCB[3].setSelected(false); visualsCB[9].setSelected(false); visualsCB[11].setSelected(false); visualsCB[13].setSelected(false); nonVisualsCB[0].setSelected(false); nonVisualsCB[1].setSelected(false); nonVisualsCB[8].setSelected(false); nonVisualsCB[9].setSelected(false); nonVisualsCB[12].setSelected(false); nonVisualsCB[13].setSelected(false); nonVisualsCB[16].setSelected(false); nonVisualsCB[17].setSelected(false); } } }); drug.add(checkAllKnownCB1); checkAllKnownCB1.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { knownCB[5].setSelected(true); knownCB[11].setSelected(true); knownCB[13].setSelected(true); knownCB[15].setSelected(true); knownCB[16].setSelected(true); knownCB[17].setSelected(true); knownCB[24].setSelected(true); knownCB[25].setSelected(true); knownCB[28].setSelected(true); knownCB[29].setSelected(true); knownCB[32].setSelected(true); knownCB[33].setSelected(true); } else { knownCB[5].setSelected(false); knownCB[11].setSelected(false); knownCB[13].setSelected(false); knownCB[15].setSelected(false); knownCB[16].setSelected(false); knownCB[17].setSelected(false); knownCB[24].setSelected(false); knownCB[25].setSelected(false); knownCB[28].setSelected(false); knownCB[29].setSelected(false); knownCB[32].setSelected(false); knownCB[33].setSelected(false); } } }); drug.next(3); drug.add(existsLabel1); existsLabel1 .setToolTipText("Whether the disease should appear at all in this level"); drug.add(knownLabel1); knownLabel1 .setToolTipText("Whether the disease should be known from the beginning in the drug casebook"); drug.add(researchLabel); researchLabel .setToolTipText("How much research is required to improve this drug"); drug.add(availableLabel1); availableLabel1 .setToolTipText("In which month a visual disease should first appear (not implemented in the game yet?)"); drug.add(invisibleLabel); drug.add(visualsCB[3]); drug.add(knownCB[5]); drug.add(expertiseResearchTF[5]); drug.add(visualsAvailableTF[3]); invisibleLabel.setToolTipText("worth $1400"); visualsCB[3].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[3] = 1; else visuals[3] = 0; } }); knownCB[5].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[5] = 1; else known[5] = 0; } }); expertiseResearchTF[5].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[5].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[5] .getText()); if (input < 1) { expertiseResearch[5] = 1; expertiseResearchTF[5].setText(Integer .toString(expertiseResearch[5])); } else expertiseResearch[5] = input; } catch (NumberFormatException nfe) { expertiseResearch[5] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[5].setText(Gui.tempValue); } } }); visualsAvailableTF[3].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[3].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[3] .getText()); if (input < 0) { visualsAvailable[3] = 0; visualsAvailableTF[3].setText(Integer .toString(visualsAvailable[3])); } else visualsAvailable[3] = input; } catch (NumberFormatException nfe) { visualsAvailable[3] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[3].setText(Gui.tempValue); } } }); drug.add(discreteItchingLabel); drug.add(visualsCB[9]); drug.add(knownCB[11]); drug.add(expertiseResearchTF[11]); drug.add(visualsAvailableTF[9]); discreteItchingLabel.setToolTipText("worth $700"); visualsCB[9].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[9] = 1; else visuals[9] = 0; } }); knownCB[11].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[11] = 1; else known[11] = 0; } }); expertiseResearchTF[11].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[11].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[11] .getText()); if (input < 1) { expertiseResearch[11] = 1; expertiseResearchTF[11].setText(Integer .toString(expertiseResearch[11])); } else expertiseResearch[11] = input; } catch (NumberFormatException nfe) { expertiseResearch[11] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[11].setText(Gui.tempValue); } } }); visualsAvailableTF[9].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[9].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[9] .getText()); if (input < 0) { visualsAvailable[9] = 0; visualsAvailableTF[9].setText(Integer .toString(visualsAvailable[9])); } else visualsAvailable[9] = input; } catch (NumberFormatException nfe) { visualsAvailable[9] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[9].setText(Gui.tempValue); } } }); drug.add(sleepingIllnessLabel); drug.add(visualsCB[11]); drug.add(knownCB[13]); drug.add(expertiseResearchTF[13]); drug.add(visualsAvailableTF[11]); sleepingIllnessLabel.setToolTipText("worth $750"); visualsCB[11].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[11] = 1; else visuals[11] = 0; } }); knownCB[13].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[13] = 1; else known[13] = 0; } }); expertiseResearchTF[13].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[13].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[13] .getText()); if (input < 1) { expertiseResearch[13] = 1; expertiseResearchTF[13].setText(Integer .toString(expertiseResearch[13])); } else expertiseResearch[13] = input; } catch (NumberFormatException nfe) { expertiseResearch[13] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[13].setText(Gui.tempValue); } } }); visualsAvailableTF[11].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[11].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[11] .getText()); if (input < 0) { visualsAvailable[11] = 0; visualsAvailableTF[11].setText(Integer .toString(visualsAvailable[11])); } else visualsAvailable[11] = input; } catch (NumberFormatException nfe) { visualsAvailable[11] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[11].setText(Gui.tempValue); } } }); drug.add(transparencyLabel); drug.add(visualsCB[13]); drug.add(knownCB[15]); drug.add(expertiseResearchTF[15]); drug.add(visualsAvailableTF[13]); transparencyLabel.setToolTipText("worth $800"); visualsCB[13].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[13] = 1; else visuals[13] = 0; } }); knownCB[15].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[15] = 1; else known[15] = 0; } }); expertiseResearchTF[15].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[15].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[15] .getText()); if (input < 1) { expertiseResearch[15] = 1; expertiseResearchTF[15].setText(Integer .toString(expertiseResearch[15])); } else expertiseResearch[15] = input; } catch (NumberFormatException nfe) { expertiseResearch[15] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[15].setText(Gui.tempValue); } } }); visualsAvailableTF[13].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[13].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[13] .getText()); if (input < 0) { visualsAvailable[13] = 0; visualsAvailableTF[13].setText(Integer .toString(visualsAvailable[13])); } else visualsAvailable[13] = input; } catch (NumberFormatException nfe) { visualsAvailable[13] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[13].setText(Gui.tempValue); } } }); drug.add(uncommonColdLabel); drug.add(nonVisualsCB[0]); drug.add(knownCB[16]); drug.add(expertiseResearchTF[16]); drug.next(); uncommonColdLabel.setToolTipText("worth $300"); nonVisualsCB[0].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[0] = 1; else nonVisuals[0] = 0; } }); knownCB[16].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[16] = 1; else known[16] = 0; } }); expertiseResearchTF[16].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[16].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[16] .getText()); if (input < 1) { expertiseResearch[16] = 1; expertiseResearchTF[16].setText(Integer .toString(expertiseResearch[16])); } else expertiseResearch[16] = input; } catch (NumberFormatException nfe) { expertiseResearch[16] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[16].setText(Gui.tempValue); } } }); drug.add(brokenWindLabel); drug.add(nonVisualsCB[1]); drug.add(knownCB[17]); drug.add(expertiseResearchTF[17]); drug.next(); brokenWindLabel.setToolTipText("worth $1300"); nonVisualsCB[1].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[1] = 1; else nonVisuals[1] = 0; } }); knownCB[17].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[17] = 1; else known[17] = 0; } }); expertiseResearchTF[17].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[17].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[17] .getText()); if (input < 1) { expertiseResearch[17] = 1; expertiseResearchTF[17].setText(Integer .toString(expertiseResearch[17])); } else expertiseResearch[17] = input; } catch (NumberFormatException nfe) { expertiseResearch[17] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[17].setText(Gui.tempValue); } } }); drug.add(corrugatedAnklesLabel); drug.add(nonVisualsCB[8]); drug.add(knownCB[24]); drug.add(expertiseResearchTF[24]); drug.next(); corrugatedAnklesLabel.setToolTipText("worth $800"); nonVisualsCB[8].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[8] = 1; else nonVisuals[8] = 0; } }); knownCB[24].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[24] = 1; else known[24] = 0; } }); expertiseResearchTF[24].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[24].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[24] .getText()); if (input < 1) { expertiseResearch[24] = 1; expertiseResearchTF[24].setText(Integer .toString(expertiseResearch[24])); } else expertiseResearch[24] = input; } catch (NumberFormatException nfe) { expertiseResearch[24] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[24].setText(Gui.tempValue); } } }); drug.add(chronicNosehairLabel); drug.add(nonVisualsCB[9]); drug.add(knownCB[25]); drug.add(expertiseResearchTF[25]); drug.next(); chronicNosehairLabel.setToolTipText("worth $800"); nonVisualsCB[9].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[9] = 1; else nonVisuals[9] = 0; } }); knownCB[25].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[25] = 1; else known[25] = 0; } }); expertiseResearchTF[25].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[25].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[25] .getText()); if (input < 1) { expertiseResearch[25] = 1; expertiseResearchTF[25].setText(Integer .toString(expertiseResearch[25])); } else expertiseResearch[25] = input; } catch (NumberFormatException nfe) { expertiseResearch[25] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[25].setText(Gui.tempValue); } } }); drug.add(gastricEjectionsLabel); drug.add(nonVisualsCB[12]); drug.add(knownCB[28]); drug.add(expertiseResearchTF[28]); drug.next(); gastricEjectionsLabel.setToolTipText("worth $650"); nonVisualsCB[12].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[12] = 1; else nonVisuals[12] = 0; } }); knownCB[28].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[28] = 1; else known[28] = 0; } }); expertiseResearchTF[28].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[28].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[28] .getText()); if (input < 1) { expertiseResearch[28] = 1; expertiseResearchTF[28].setText(Integer .toString(expertiseResearch[28])); } else expertiseResearch[28] = input; } catch (NumberFormatException nfe) { expertiseResearch[28] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[28].setText(Gui.tempValue); } } }); drug.add(theSquitsLabel); drug.add(nonVisualsCB[13]); drug.add(knownCB[29]); drug.add(expertiseResearchTF[29]); drug.next(); theSquitsLabel.setToolTipText("worth $400"); nonVisualsCB[13].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[13] = 1; else nonVisuals[13] = 0; } }); knownCB[29].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[29] = 1; else known[29] = 0; } }); expertiseResearchTF[29].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[29].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[29] .getText()); if (input < 1) { expertiseResearch[29] = 1; expertiseResearchTF[29].setText(Integer .toString(expertiseResearch[29])); } else expertiseResearch[29] = input; } catch (NumberFormatException nfe) { expertiseResearch[29] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[29].setText(Gui.tempValue); } } }); drug.add(heapedPilesLabel); drug.add(nonVisualsCB[16]); drug.add(knownCB[32]); drug.add(expertiseResearchTF[32]); drug.next(); heapedPilesLabel.setToolTipText("worth $400"); nonVisualsCB[16].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[16] = 1; else nonVisuals[16] = 0; } }); knownCB[32].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[32] = 1; else known[32] = 0; } }); expertiseResearchTF[32].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[32].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[32] .getText()); if (input < 1) { expertiseResearch[32] = 1; expertiseResearchTF[32].setText(Integer .toString(expertiseResearch[32])); } else expertiseResearch[32] = input; } catch (NumberFormatException nfe) { expertiseResearch[32] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[32].setText(Gui.tempValue); } } }); drug.add(gutRotLabel); drug.add(nonVisualsCB[17]); drug.add(knownCB[33]); drug.add(expertiseResearchTF[33]); drug.next(); gutRotLabel.setToolTipText("worth $350"); nonVisualsCB[17].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[17] = 1; else nonVisuals[17] = 0; } }); knownCB[33].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[33] = 1; else known[33] = 0; } }); expertiseResearchTF[33].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = expertiseResearchTF[33].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(expertiseResearchTF[33] .getText()); if (input < 1) { expertiseResearch[33] = 1; expertiseResearchTF[33].setText(Integer .toString(expertiseResearch[33])); } else expertiseResearch[33] = input; } catch (NumberFormatException nfe) { expertiseResearch[33] = Integer.parseInt(Gui.tempValue); expertiseResearchTF[33].setText(Gui.tempValue); } } }); // psych panel psych.add(new JLabel("Check all")); psych.add(checkAllExistsCB2); checkAllExistsCB2.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { visualsCB[2].setSelected(true); nonVisualsCB[6].setSelected(true); nonVisualsCB[7].setSelected(true); nonVisualsCB[10].setSelected(true); nonVisualsCB[11].setSelected(true); nonVisualsCB[15].setSelected(true); } else { visualsCB[2].setSelected(false); nonVisualsCB[6].setSelected(false); nonVisualsCB[7].setSelected(false); nonVisualsCB[10].setSelected(false); nonVisualsCB[11].setSelected(false); nonVisualsCB[15].setSelected(false); } } }); psych.add(checkAllKnownCB2); checkAllKnownCB2.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { knownCB[4].setSelected(true); knownCB[22].setSelected(true); knownCB[23].setSelected(true); knownCB[26].setSelected(true); knownCB[27].setSelected(true); knownCB[31].setSelected(true); } else { knownCB[4].setSelected(false); knownCB[22].setSelected(false); knownCB[23].setSelected(false); knownCB[26].setSelected(false); knownCB[27].setSelected(false); knownCB[31].setSelected(false); } } }); psych.next(2); psych.add(existsLabel2); existsLabel2 .setToolTipText("Whether the disease should appear at all in this level"); psych.add(knownLabel2); knownLabel2 .setToolTipText("Whether the disease should be known from the beginning in the drug casebook"); psych.add(availableLabel2); availableLabel2 .setToolTipText("In which month the disease should first appear (not implemented in the game yet?)"); psych.add(elvisLabel); psych.add(visualsCB[2]); psych.add(knownCB[4]); psych.add(visualsAvailableTF[2]); elvisLabel.setToolTipText("worth $1600"); visualsCB[2].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[2] = 1; else visuals[2] = 0; } }); knownCB[4].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[4] = 1; else known[4] = 0; } }); visualsAvailableTF[2].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[2].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[2] .getText()); if (input < 0) { visualsAvailable[2] = 0; visualsAvailableTF[2].setText(Integer .toString(visualsAvailable[2])); } else visualsAvailable[2] = input; } catch (NumberFormatException nfe) { visualsAvailable[2] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[2].setText(Gui.tempValue); } } }); psych.add(multipleTvPersonalitiesLabel); psych.add(nonVisualsCB[6]); psych.add(knownCB[22]); psych.next(); multipleTvPersonalitiesLabel.setToolTipText("worth $800"); nonVisualsCB[6].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[6] = 1; else nonVisuals[6] = 0; } }); knownCB[22].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[22] = 1; else known[22] = 0; } }); psych.add(infectiousLaughterLabel); psych.add(nonVisualsCB[7]); psych.add(knownCB[23]); psych.next(); infectiousLaughterLabel.setToolTipText("worth $1500"); nonVisualsCB[7].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[7] = 1; else nonVisuals[7] = 0; } }); knownCB[23].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[23] = 1; else known[23] = 0; } }); psych.add(thirdDegreeSideburnsLabel); psych.add(nonVisualsCB[10]); psych.add(knownCB[26]); psych.next(); thirdDegreeSideburnsLabel.setToolTipText("worth $550"); nonVisualsCB[10].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[10] = 1; else nonVisuals[10] = 0; } }); knownCB[26].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[26] = 1; else known[26] = 0; } }); psych.add(fakeBloodLabel); psych.add(nonVisualsCB[11]); psych.add(knownCB[27]); psych.next(); fakeBloodLabel.setToolTipText("worth $800"); nonVisualsCB[11].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[11] = 1; else nonVisuals[11] = 0; } }); knownCB[27].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[27] = 1; else known[27] = 0; } }); psych.add(sweatyPalmsLabel); psych.add(nonVisualsCB[15]); psych.add(knownCB[31]); psych.next(); sweatyPalmsLabel.setToolTipText("worth $600"); nonVisualsCB[15].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[15] = 1; else nonVisuals[15] = 0; } }); knownCB[31].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[31] = 1; else known[31] = 0; } }); // op panel op.add(new JLabel("Check all")); op.add(checkAllExistsCB3); checkAllExistsCB3.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { visualsCB[12].setSelected(true); nonVisualsCB[2].setSelected(true); nonVisualsCB[3].setSelected(true); nonVisualsCB[4].setSelected(true); nonVisualsCB[5].setSelected(true); nonVisualsCB[14].setSelected(true); nonVisualsCB[18].setSelected(true); nonVisualsCB[19].setSelected(true); } else { visualsCB[12].setSelected(false); nonVisualsCB[2].setSelected(false); nonVisualsCB[3].setSelected(false); nonVisualsCB[4].setSelected(false); nonVisualsCB[5].setSelected(false); nonVisualsCB[14].setSelected(false); nonVisualsCB[18].setSelected(false); nonVisualsCB[19].setSelected(false); } } }); op.add(checkAllKnownCB3); checkAllKnownCB3.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { knownCB[14].setSelected(true); knownCB[18].setSelected(true); knownCB[19].setSelected(true); knownCB[20].setSelected(true); knownCB[21].setSelected(true); knownCB[30].setSelected(true); knownCB[34].setSelected(true); knownCB[35].setSelected(true); } else { knownCB[14].setSelected(false); knownCB[18].setSelected(false); knownCB[19].setSelected(false); knownCB[20].setSelected(false); knownCB[21].setSelected(false); knownCB[30].setSelected(false); knownCB[34].setSelected(false); knownCB[35].setSelected(false); } } }); op.next(2); op.add(existsLabel3); existsLabel3 .setToolTipText("Whether the disease should appear at all in this level"); op.add(knownLabel3); knownLabel3 .setToolTipText("Whether the disease should be known from the beginning in the drug casebook"); op.add(availableLabel3); availableLabel3 .setToolTipText("In which month the disease should first appear (not implemented in the game yet?)"); op.add(pregnantLabel); op.add(visualsCB[12]); op.add(knownCB[14]); op.add(visualsAvailableTF[12]); pregnantLabel.setToolTipText("not implemented!"); visualsCB[12].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[12] = 1; else visuals[12] = 0; } }); knownCB[14].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[14] = 1; else known[14] = 0; } }); visualsAvailableTF[12].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[13].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[12] .getText()); if (input < 0) { visualsAvailable[12] = 0; visualsAvailableTF[12].setText(Integer .toString(visualsAvailable[12])); } else visualsAvailable[12] = input; } catch (NumberFormatException nfe) { visualsAvailable[12] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[12].setText(Gui.tempValue); } } }); op.add(spareRibsLabel); op.add(nonVisualsCB[2]); op.add(knownCB[18]); op.next(); spareRibsLabel.setToolTipText("worth $1100"); nonVisualsCB[2].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[2] = 1; else nonVisuals[2] = 0; } }); knownCB[18].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[18] = 1; else known[18] = 0; } }); op.add(kidneyBeansLabel); op.add(nonVisualsCB[3]); op.add(knownCB[19]); op.next(); kidneyBeansLabel.setToolTipText("worth $1050"); nonVisualsCB[3].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[3] = 1; else nonVisuals[3] = 0; } }); knownCB[19].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[19] = 1; else known[19] = 0; } }); op.add(brokenHeartLabel); op.add(nonVisualsCB[4]); op.add(knownCB[20]); op.next(); brokenHeartLabel.setToolTipText("worth $1950"); nonVisualsCB[4].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[4] = 1; else nonVisuals[4] = 0; } }); knownCB[20].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[20] = 1; else known[20] = 0; } }); op.add(rupturedNodulesLabel); op.add(nonVisualsCB[5]); op.add(knownCB[21]); op.next(); rupturedNodulesLabel.setToolTipText("worth $1600"); nonVisualsCB[5].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[5] = 1; else nonVisuals[5] = 0; } }); knownCB[21].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[21] = 1; else known[21] = 0; } }); op.add(ironLungsLabel); op.add(nonVisualsCB[14]); op.add(knownCB[30]); op.next(); ironLungsLabel.setToolTipText("worth $1700"); nonVisualsCB[14].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[14] = 1; else nonVisuals[14] = 0; } }); knownCB[30].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[30] = 1; else known[30] = 0; } }); op.add(golfStonesLabel); op.add(nonVisualsCB[18]); op.add(knownCB[34]); op.next(); golfStonesLabel.setToolTipText("worth $1600"); nonVisualsCB[18].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[18] = 1; else nonVisuals[18] = 0; } }); knownCB[34].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[34] = 1; else known[34] = 0; } }); op.add(unexpectedSwellingLabel); op.add(nonVisualsCB[19]); op.add(knownCB[35]); unexpectedSwellingLabel.setToolTipText("worth $500"); nonVisualsCB[19].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) nonVisuals[19] = 1; else nonVisuals[19] = 0; } }); knownCB[35].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[35] = 1; else known[35] = 0; } }); // clinic panel clinic.add(new JLabel("Check all")); clinic.add(checkAllExistsCB4); checkAllExistsCB4.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { visualsCB[0].setSelected(true); visualsCB[1].setSelected(true); visualsCB[4].setSelected(true); visualsCB[5].setSelected(true); visualsCB[6].setSelected(true); visualsCB[7].setSelected(true); visualsCB[8].setSelected(true); visualsCB[10].setSelected(true); } else { visualsCB[0].setSelected(false); visualsCB[1].setSelected(false); visualsCB[4].setSelected(false); visualsCB[5].setSelected(false); visualsCB[6].setSelected(false); visualsCB[7].setSelected(false); visualsCB[8].setSelected(false); visualsCB[10].setSelected(false); } } }); clinic.add(checkAllKnownCB4); checkAllKnownCB4.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { knownCB[2].setSelected(true); knownCB[3].setSelected(true); knownCB[6].setSelected(true); knownCB[7].setSelected(true); knownCB[8].setSelected(true); knownCB[9].setSelected(true); knownCB[10].setSelected(true); knownCB[12].setSelected(true); } else { knownCB[2].setSelected(false); knownCB[3].setSelected(false); knownCB[6].setSelected(false); knownCB[7].setSelected(false); knownCB[8].setSelected(false); knownCB[9].setSelected(false); knownCB[10].setSelected(false); knownCB[12].setSelected(false); } } }); clinic.next(2); clinic.add(existsLabel4); existsLabel4 .setToolTipText("Whether the disease should appear at all in this level"); clinic.add(knownLabel4); knownLabel4 .setToolTipText("Whether the disease should be known from the beginning in the drug casebook"); clinic.add(availableLabel4); availableLabel4 .setToolTipText("In which month the disease should first appear (not implemented in the game yet?)"); clinic.add(radiationLabel); clinic.add(visualsCB[4]); clinic.add(knownCB[6]); clinic.add(visualsAvailableTF[4]); radiationLabel.setToolTipText("worth $1800"); visualsCB[4].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[4] = 1; else visuals[4] = 0; } }); knownCB[6].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[6] = 1; else known[6] = 0; } }); visualsAvailableTF[4].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[4].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[4] .getText()); if (input < 0) { visualsAvailable[4] = 0; visualsAvailableTF[4].setText(Integer .toString(visualsAvailable[4])); } else visualsAvailable[4] = input; } catch (NumberFormatException nfe) { visualsAvailable[4] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[4].setText(Gui.tempValue); } } }); clinic.add(slackTongueLabel); clinic.add(visualsCB[5]); clinic.add(knownCB[7]); clinic.add(visualsAvailableTF[5]); slackTongueLabel.setToolTipText("worth $900"); visualsCB[5].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[5] = 1; else visuals[5] = 0; } }); knownCB[7].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[7] = 1; else known[7] = 0; } }); visualsAvailableTF[5].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[5].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[5] .getText()); if (input < 0) { visualsAvailable[5] = 0; visualsAvailableTF[5].setText(Integer .toString(visualsAvailable[5])); } else visualsAvailable[5] = input; } catch (NumberFormatException nfe) { visualsAvailable[5] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[5].setText(Gui.tempValue); } } }); clinic.add(alienLabel); clinic.add(visualsCB[6]); clinic.add(knownCB[8]); clinic.add(visualsAvailableTF[6]); alienLabel.setToolTipText("worth $2000"); visualsCB[6].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[6] = 1; else visuals[6] = 0; } }); knownCB[8].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[8] = 1; else known[8] = 0; } }); visualsAvailableTF[6].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[6].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[6] .getText()); if (input < 0) { visualsAvailable[6] = 0; visualsAvailableTF[6].setText(Integer .toString(visualsAvailable[6])); } else visualsAvailable[6] = input; } catch (NumberFormatException nfe) { visualsAvailable[6] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[6].setText(Gui.tempValue); } } }); clinic.add(brokenBonesLabel); clinic.add(visualsCB[7]); clinic.add(knownCB[9]); clinic.add(visualsAvailableTF[7]); brokenBonesLabel.setToolTipText("worth $450"); visualsCB[7].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[7] = 1; else visuals[7] = 0; } }); knownCB[9].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[9] = 1; else known[9] = 0; } }); visualsAvailableTF[7].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[7].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[7] .getText()); if (input < 0) { visualsAvailable[7] = 0; visualsAvailableTF[7].setText(Integer .toString(visualsAvailable[7])); } else visualsAvailable[7] = input; } catch (NumberFormatException nfe) { visualsAvailable[7] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[7].setText(Gui.tempValue); } } }); clinic.add(baldnessLabel); clinic.add(visualsCB[8]); clinic.add(knownCB[10]); clinic.add(visualsAvailableTF[8]); baldnessLabel.setToolTipText("worth $950"); visualsCB[8].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[8] = 1; else visuals[8] = 0; } }); knownCB[10].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[10] = 1; else known[10] = 0; } }); visualsAvailableTF[8].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[8].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[8] .getText()); if (input < 0) { visualsAvailable[8] = 0; visualsAvailableTF[8].setText(Integer .toString(visualsAvailable[8])); } else visualsAvailable[8] = input; } catch (NumberFormatException nfe) { visualsAvailable[8] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[8].setText(Gui.tempValue); } } }); clinic.add(jellyitusLabel); clinic.add(visualsCB[10]); clinic.add(knownCB[12]); clinic.add(visualsAvailableTF[10]); jellyitusLabel.setToolTipText("worth $1000"); visualsCB[10].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[10] = 1; else visuals[10] = 0; } }); knownCB[12].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[12] = 1; else known[12] = 0; } }); visualsAvailableTF[10].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[10].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[10] .getText()); if (input < 0) { visualsAvailable[10] = 0; visualsAvailableTF[10].setText(Integer .toString(visualsAvailable[10])); } else visualsAvailable[10] = input; } catch (NumberFormatException nfe) { visualsAvailable[10] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[10].setText(Gui.tempValue); } } }); clinic.add(bloatyHeadLabel); clinic.add(visualsCB[0]); clinic.add(knownCB[2]); clinic.add(visualsAvailableTF[0]); bloatyHeadLabel.setToolTipText("worth $850"); visualsCB[0].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[0] = 1; else visuals[0] = 0; } }); knownCB[2].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[2] = 1; else known[2] = 0; } }); visualsAvailableTF[0].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[0].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[0] .getText()); if (input < 0) { visualsAvailable[0] = 0; visualsAvailableTF[0].setText(Integer .toString(visualsAvailable[0])); } else visualsAvailable[0] = input; } catch (NumberFormatException nfe) { visualsAvailable[0] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[0].setText(Gui.tempValue); } } }); clinic.add(hairyitusLabel); clinic.add(visualsCB[1]); clinic.add(knownCB[3]); clinic.add(visualsAvailableTF[1]); hairyitusLabel.setToolTipText("worth $1150"); visualsCB[1].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) visuals[1] = 1; else visuals[1] = 0; } }); knownCB[3].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) known[3] = 1; else known[3] = 0; } }); visualsAvailableTF[1].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = visualsAvailableTF[1].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(visualsAvailableTF[1] .getText()); if (input < 0) { visualsAvailable[1] = 0; visualsAvailableTF[1].setText(Integer .toString(visualsAvailable[1])); } else visualsAvailable[1] = input; } catch (NumberFormatException nfe) { visualsAvailable[1] = Integer.parseInt(Gui.tempValue); visualsAvailableTF[1].setText(Gui.tempValue); } } }); } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabEarthquakes.java000066400000000000000000000224521522247547500261340ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class TabEarthquakes extends JScrollPane { private static final long serialVersionUID = -5841183676154086892L; // variables static ArrayList quakeList = new ArrayList(); // components static GridPanel earthquakes = new GridPanel(1); JPanel buttonsPanel = new JPanel(); JButton addButt = new JButton("Add"); JButton removeButt = new JButton("Remove"); static JLabel randomQuakesLabel = new JLabel( "Random earthquakes are enabled."); public TabEarthquakes() { // set scroll speed getVerticalScrollBar().setUnitIncrement(20); getHorizontalScrollBar().setUnitIncrement(20); setViewportView(earthquakes); earthquakes.setInsets(0); // earthquakes panel earthquakes.add(buttonsPanel); earthquakes.add(randomQuakesLabel); buttonsPanel.add(addButt); addButt.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { addQuake(); } }); buttonsPanel.add(removeButt); removeButt.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { removeQuake(); } }); } protected static void addQuake() { earthquakes.remove(randomQuakesLabel); final Quake quake = new Quake(); quakeList.add(quake); // get the index of this particular arraylist member final int index = (quakeList.indexOf(quake)); quakeList.get(index).quakePanel.add(new JLabel("Start month:")); quakeList.get(index).quakePanel.add(quakeList.get(index).startMonthTF); quakeList.get(index).startMonthTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { quakeList.get(index).startMonth = Integer .parseInt(Gui.tempValue); quakeList.get(index).startMonthTF .setText(Gui.tempValue); } else quakeList.get(index).startMonth = input; } catch (NumberFormatException nfe) { quakeList.get(index).startMonth = Integer .parseInt(Gui.tempValue); quakeList.get(index).startMonthTF.setText(Gui.tempValue); } // if start month is bigger than endmonth, make them equal. if (quakeList.get(index).startMonth > quakeList.get(index).endMonth) { quakeList.get(index).endMonth = quakeList.get(index).startMonth; quakeList.get(index).endMonthTF.setText(quakeList .get(index).startMonthTF.getText()); } } }); quakeList.get(index).quakePanel.add(new JLabel("End month:")); quakeList.get(index).quakePanel.add(quakeList.get(index).endMonthTF); quakeList.get(index).endMonthTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { quakeList.get(index).endMonth = Integer .parseInt(Gui.tempValue); quakeList.get(index).endMonthTF.setText(Gui.tempValue); } else quakeList.get(index).endMonth = input; } catch (NumberFormatException nfe) { quakeList.get(index).endMonth = Integer .parseInt(Gui.tempValue); quakeList.get(index).endMonthTF.setText(Gui.tempValue); } // if start month is bigger than endmonth, make them equal. if (quakeList.get(index).startMonth > quakeList.get(index).endMonth) { quakeList.get(index).endMonth = quakeList.get(index).startMonth; quakeList.get(index).endMonthTF.setText(quakeList .get(index).startMonthTF.getText()); } } }); quakeList.get(index).quakePanel.add(new JLabel("Severity:")); quakeList.get(index).quakePanel.add(quakeList.get(index).severityTF); quakeList.get(index).severityTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { quakeList.get(index).severity = 1; quakeList.get(index).severityTF.setText(Integer .toString(quakeList.get(index).severity)); } else if (input > 99) { quakeList.get(index).severity = 99; quakeList.get(index).severityTF.setText(Integer .toString(quakeList.get(index).severity)); } else quakeList.get(index).severity = input; } catch (NumberFormatException nfe) { quakeList.get(index).severity = Integer .parseInt(Gui.tempValue); quakeList.get(index).severityTF.setText(Gui.tempValue); } } }); earthquakes.add(quakeList.get(index).quakePanel); earthquakes.updateUI(); // increment startMonth, endMonth with each add if (quakeList.size() > 1) { quakeList.get(index).startMonth = quakeList.get(index - 1).endMonth + 6; int endMonthPlus = Integer .parseInt(quakeList.get(index - 1).endMonthTF.getText()) + 6; quakeList.get(index).startMonthTF.setText(Integer .toString(endMonthPlus)); quakeList.get(index).endMonth = quakeList.get(index).startMonth + 12; int startMonthPlus = Integer .parseInt(quakeList.get(index).startMonthTF.getText()) + 12; quakeList.get(index).endMonthTF.setText(Integer .toString(startMonthPlus)); } } protected static void removeQuake() { int lastIndex = quakeList.size() - 1; if (lastIndex >= 0) { // remove panel earthquakes.remove(quakeList.get(lastIndex).quakePanel); earthquakes.updateUI(); // remove object from the arraylist quakeList.remove(lastIndex); if (quakeList.isEmpty()) earthquakes.add(randomQuakesLabel); } } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabEmergencies.java000066400000000000000000000745011522247547500261070ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.util.ArrayList; import java.util.Random; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTextField; public class TabEmergencies extends JScrollPane { private static final long serialVersionUID = 415938853978498463L; // variables static ArrayList emergencyList = new ArrayList(); static int emergencyInterval = 120; static int emergencyIntervalVariance = 30; // components static GridPanel emergencies = new GridPanel(1); JScrollPane scrollPane = new JScrollPane(emergencies); JPanel emergencyMode = new JPanel(); JPanel semirandom = new JPanel(); JPanel emergencyButtons = new JPanel(); JButton addEmergencyButt = new JButton("Add"); JButton removeEmergencyButt = new JButton("Remove"); ButtonGroup buttonGroup = new ButtonGroup(); static JRadioButton randomEmergenciesRB = new JRadioButton(); static JRadioButton semiRandomEmergenciesRB = new JRadioButton(); static JRadioButton controlledEmergenciesRB = new JRadioButton(); static JLabel randomDescription = new JLabel( "Random emergencies are enabled."); static JLabel noEmergenciesDescription = new JLabel( "No emergencies will happen."); static JLabel emergencyIntervalLabel = new JLabel("Interval:"); static JLabel emergencyIntervalVarianceLabel = new JLabel("Variance:"); static JTextField emergencyIntervalTF = new JTextField( Integer.toString(emergencyInterval), 3); static JTextField emergencyIntervalVarianceTF = new JTextField( Integer.toString(emergencyIntervalVariance), 3); public TabEmergencies() { // set scroll speed getVerticalScrollBar().setUnitIncrement(20); getHorizontalScrollBar().setUnitIncrement(20); emergencies.setInsets(0); setViewportView(emergencies); // mode set buttonGroup.add(randomEmergenciesRB); buttonGroup.add(semiRandomEmergenciesRB); buttonGroup.add(controlledEmergenciesRB); emergencies.add(emergencyMode); emergencyMode.setBorder(BorderFactory.createTitledBorder("Mode")); emergencyMode.add(randomEmergenciesRB); randomEmergenciesRB.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Emergency.emergencyMode = 0; showRandomEmergencies(); } }); emergencyMode.add(new JLabel("Random")); emergencyMode.add(semiRandomEmergenciesRB); semiRandomEmergenciesRB.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Emergency.emergencyMode = 1; showSemiRandomEmergencies(); } }); emergencyMode.add(new JLabel("Semi-random")); emergencyMode.add(controlledEmergenciesRB); controlledEmergenciesRB.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Emergency.emergencyMode = 2; showControlledEmergencies(); } }); emergencyMode.add(new JLabel("Controlled")); // emergency control showControlledEmergencies(); emergencyButtons.add(addEmergencyButt); addEmergencyButt.addActionListener(new ActionListener() { // on click add button @Override public void actionPerformed(ActionEvent e) { addEmergency(); } }); emergencyButtons.add(removeEmergencyButt); removeEmergencyButt.addActionListener(new ActionListener() { // on click remove button @Override public void actionPerformed(ActionEvent e) { removeEmergency(); } }); semirandom.add(emergencyIntervalLabel); emergencyIntervalLabel .setToolTipText("Days between emergencies = interval +- variance"); semirandom.add(emergencyIntervalTF); emergencyIntervalTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input <= 0) { tf.setText(Gui.tempValue); emergencyInterval = Integer.parseInt(Gui.tempValue); } else emergencyInterval = input; } catch (NumberFormatException nfe) { tf.setText(Gui.tempValue); emergencyInterval = Integer.parseInt(Gui.tempValue); } // if variance is equal or bigger than interval, make variance // equal to interval -1 if (emergencyIntervalVariance >= emergencyInterval) { emergencyIntervalVariance = emergencyInterval - 1; int intervalMinusOne = Integer.parseInt(emergencyIntervalTF .getText()) - 1; emergencyIntervalVarianceTF.setText(Integer .toString(intervalMinusOne)); } } }); semirandom.add(emergencyIntervalVarianceLabel); emergencyIntervalVarianceLabel .setToolTipText("Days between emergencies = interval +- variance"); semirandom.add(emergencyIntervalVarianceTF); emergencyIntervalVarianceTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 0) { tf.setText(Gui.tempValue); emergencyIntervalVariance = Integer .parseInt(Gui.tempValue); } else emergencyIntervalVariance = input; } catch (NumberFormatException nfe) { tf.setText(Gui.tempValue); emergencyIntervalVariance = Integer.parseInt(Gui.tempValue); } // if variance is equal or bigger than interval, make variance // equal to interval -1 if (emergencyIntervalVariance >= emergencyInterval) { emergencyIntervalVariance = emergencyInterval - 1; int intervalMinusOne = Integer.parseInt(emergencyIntervalTF .getText()) - 1; emergencyIntervalVarianceTF.setText(Integer .toString(intervalMinusOne)); } } }); } public static void addEmergency() { emergencies.remove(noEmergenciesDescription); final Emergency emergency = new Emergency(); emergencyList.add(emergency); // get the index of this particular arraylist member final int index = (emergencyList.indexOf(emergency)); // this code seems weird. I was trying to give each disease in the // combobox // some sort of ID number which is independent of the position and name, // but haven't figured it out yet. for (int i = 2; i < TabDiseases.arDiseases.length; i++) { switch (i) { case 2: TabDiseases.arDiseases[i] = new Disease("Bloaty Head"); break; case 3: TabDiseases.arDiseases[i] = new Disease("Hairyitus"); break; case 4: TabDiseases.arDiseases[i] = new Disease("Elvis"); break; case 5: TabDiseases.arDiseases[i] = new Disease("Invisibility"); break; case 6: TabDiseases.arDiseases[i] = new Disease("Serious Radiation"); break; case 7: TabDiseases.arDiseases[i] = new Disease("Slack Tongue"); break; case 8: TabDiseases.arDiseases[i] = new Disease("Alien DNA"); break; case 9: TabDiseases.arDiseases[i] = new Disease("Broken Bones"); break; case 10: TabDiseases.arDiseases[i] = new Disease("Baldness"); break; case 11: TabDiseases.arDiseases[i] = new Disease("Discrete Itching"); break; case 12: TabDiseases.arDiseases[i] = new Disease("Jellyitus"); break; case 13: TabDiseases.arDiseases[i] = new Disease("Sleeping Illness"); break; case 14: TabDiseases.arDiseases[i] = new Disease("Pregnancy"); break; case 15: TabDiseases.arDiseases[i] = new Disease("Transparency"); break; case 16: TabDiseases.arDiseases[i] = new Disease("Uncommon Cold"); break; case 17: TabDiseases.arDiseases[i] = new Disease("Broken Wind"); break; case 18: TabDiseases.arDiseases[i] = new Disease("Spare Ribs"); break; case 19: TabDiseases.arDiseases[i] = new Disease("Kidney Beans"); break; case 20: TabDiseases.arDiseases[i] = new Disease("Broken Heart"); break; case 21: TabDiseases.arDiseases[i] = new Disease("Ruptured Nodules"); break; case 22: TabDiseases.arDiseases[i] = new Disease( "Multiple TV Personalities"); break; case 23: TabDiseases.arDiseases[i] = new Disease("Infectious Laughter"); break; case 24: TabDiseases.arDiseases[i] = new Disease("Corrugated Ankles"); break; case 25: TabDiseases.arDiseases[i] = new Disease("Chronic Nosehair"); break; case 26: TabDiseases.arDiseases[i] = new Disease("3rd Degree Sideburns"); break; case 27: TabDiseases.arDiseases[i] = new Disease("Fake Blood"); break; case 28: TabDiseases.arDiseases[i] = new Disease("Gastric Ejections"); break; case 29: TabDiseases.arDiseases[i] = new Disease("The Squits"); break; case 30: TabDiseases.arDiseases[i] = new Disease("Iron Lungs"); break; case 31: TabDiseases.arDiseases[i] = new Disease("Sweaty Palms"); break; case 32: TabDiseases.arDiseases[i] = new Disease("Heaped Piles"); break; case 33: TabDiseases.arDiseases[i] = new Disease("Gut Rot"); break; case 34: TabDiseases.arDiseases[i] = new Disease("Golf Stones"); break; case 35: TabDiseases.arDiseases[i] = new Disease("Unexpected Swelling"); break; } } emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).illnessCombo); emergencyList.get(index).illnessCombo .addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JComboBox cb = (JComboBox) e.getSource(); for (int i = 2; i < TabDiseases.arDiseases.length; i++) { if (cb.getSelectedItem() == TabDiseases.arDiseases[i].name) { emergencyList.get(index).illness = i; } } } }); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).startMonthLabel); emergencyList.get(index).startMonthLabel .setToolTipText("The emergency will appear between start month and end month."); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).startMonthTF); emergencyList.get(index).startMonthTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 1) { tf.setText(Gui.tempValue); emergencyList.get(index).startMonth = Integer .parseInt(Gui.tempValue); } else emergencyList.get(index).startMonth = input; } catch (NumberFormatException nfe) { tf.setText(Gui.tempValue); emergencyList.get(index).startMonth = Integer .parseInt(Gui.tempValue); } // if endmonth is smaller than startmonth, make endmonth // equal to startmonth if (emergencyList.get(index).endMonth < emergencyList .get(index).startMonth) { emergencyList.get(index).endMonth = emergencyList .get(index).startMonth; emergencyList.get(index).endMonthTF .setText(emergencyList.get(index).startMonthTF .getText()); } } }); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).endMonthLabel); emergencyList.get(index).endMonthLabel .setToolTipText("The emergency will appear between start month and end month."); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).endMonthTF); emergencyList.get(index).endMonthTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 1) { tf.setText(Gui.tempValue); emergencyList.get(index).endMonth = Integer .parseInt(Gui.tempValue); } else emergencyList.get(index).endMonth = input; } catch (NumberFormatException nfe) { tf.setText(Gui.tempValue); emergencyList.get(index).endMonth = Integer .parseInt(Gui.tempValue); } // if endmonth is smaller than startmonth, make endmonth // equal to startmonth if (emergencyList.get(index).endMonth < emergencyList .get(index).startMonth) { emergencyList.get(index).endMonth = emergencyList .get(index).startMonth; emergencyList.get(index).endMonthTF .setText(emergencyList.get(index).startMonthTF .getText()); } } }); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).minPatientsLabel); emergencyList.get(index).minPatientsLabel .setToolTipText("Minimum number of patients to come from the emergency"); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).minPatientsTF); emergencyList.get(index).minPatientsTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 1) { tf.setText(Gui.tempValue); emergencyList.get(index).minPatients = Integer .parseInt(Gui.tempValue); } else emergencyList.get(index).minPatients = input; } catch (NumberFormatException nfe) { tf.setText(Gui.tempValue); emergencyList.get(index).minPatients = Integer .parseInt(Gui.tempValue); } // if maxPatients is smaller than minPatients, make // maxPatients equal to minPatients if (emergencyList.get(index).maxPatients < emergencyList .get(index).minPatients) { emergencyList.get(index).maxPatients = emergencyList .get(index).minPatients; emergencyList.get(index).maxPatientsTF .setText(emergencyList.get(index).minPatientsTF .getText()); } } }); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).maxPatientsLabel); emergencyList.get(index).maxPatientsLabel .setToolTipText("Maximum number of patients to come from the emergency"); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).maxPatientsTF); emergencyList.get(index).maxPatientsTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 1) { tf.setText(Gui.tempValue); emergencyList.get(index).maxPatients = Integer .parseInt(Gui.tempValue); } else emergencyList.get(index).maxPatients = input; } catch (NumberFormatException nfe) { tf.setText(Gui.tempValue); emergencyList.get(index).maxPatients = Integer .parseInt(Gui.tempValue); } // if maxPatients is smaller than minPatients, make // maxPatients equal to minPatients if (emergencyList.get(index).maxPatients < emergencyList .get(index).minPatients) { emergencyList.get(index).maxPatients = emergencyList .get(index).minPatients; emergencyList.get(index).maxPatientsTF .setText(emergencyList.get(index).minPatientsTF .getText()); } } }); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).percWinLabel); emergencyList.get(index).percWinLabel .setToolTipText("How many percent of the patients must be cured to receive the bonus"); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).percWinTF); emergencyList.get(index).percWinTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 0) { emergencyList.get(index).percWin = 0; emergencyList.get(index).percWinTF .setText(Integer.toString(emergencyList .get(index).percWin)); } else if (input > 100) { emergencyList.get(index).percWin = 100; emergencyList.get(index).percWinTF .setText(Integer.toString(emergencyList .get(index).percWin)); } else { emergencyList.get(index).percWin = input; } } catch (NumberFormatException nfe) { tf.setText(Gui.tempValue); emergencyList.get(index).percWin = Integer .parseInt(Gui.tempValue); } } }); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).bonusLabel); emergencyList.get(index).bonusLabel .setToolTipText("Cash bonus for each patient cured"); emergencyList.get(index).emergencyPanel .add(emergencyList.get(index).bonusTF); emergencyList.get(index).bonusTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input > 1) emergencyList.get(index).bonus = input; else { tf.setText(Gui.tempValue); emergencyList.get(index).bonus = Integer .parseInt(Gui.tempValue); } } catch (NumberFormatException nfe) { tf.setText(Gui.tempValue); emergencyList.get(index).bonus = Integer .parseInt(Gui.tempValue); } } }); emergencies.add(emergencyList.get(index).emergencyPanel); emergencies.updateUI(); // increase month with each add if (emergencyList.size() > 1) { emergencyList.get(index).startMonth = emergencyList.get(index - 1).endMonth + 3; int endMonthPlus = Integer .parseInt(emergencyList.get(index - 1).endMonthTF.getText()) + 3; emergencyList.get(index).startMonthTF.setText(Integer .toString(endMonthPlus)); emergencyList.get(index).endMonth = emergencyList.get(index).startMonth + 3; int startMonthPlus = Integer .parseInt(emergencyList.get(index).startMonthTF.getText()) + 3; emergencyList.get(index).endMonthTF.setText(Integer .toString(startMonthPlus)); } // randomize illnesses Random rand = new Random(); // get a random int between 2 and 35, as in: (0 to 33) + 2 int randomInt = (rand.nextInt(34) + 2); emergencyList.get(index).illness = randomInt; emergencyList.get(index).illnessCombo .setSelectedItem(TabDiseases.arDiseases[randomInt].name); } public static void removeEmergency() { int lastIndex = emergencyList.size() - 1; if (lastIndex >= 0) { // remove panel emergencies.remove(emergencyList.get(lastIndex).emergencyPanel); emergencies.updateUI(); // remove object from the arraylist emergencyList.remove(lastIndex); if (emergencyList.size() <= 0) emergencies.add(noEmergenciesDescription); } } // random protected void showRandomEmergencies() { hideControlledEmergencies(); hideSemiRandomEmergencies(); emergencies.remove(noEmergenciesDescription); emergencies.add(randomDescription); emergencies.updateUI(); } // semi-random protected void showSemiRandomEmergencies() { emergencies.remove(randomDescription); emergencies.remove(noEmergenciesDescription); hideControlledEmergencies(); emergencies.add(semirandom); emergencies.updateUI(); } // semi-random protected void hideSemiRandomEmergencies() { emergencies.remove(semirandom); emergencies.updateUI(); } // controlled protected void showControlledEmergencies() { emergencies.remove(randomDescription); emergencies.remove(noEmergenciesDescription); hideSemiRandomEmergencies(); emergencies.add(emergencyButtons); for (int i = 0; i < emergencyList.size(); i++) emergencies.add(emergencyList.get(i).emergencyPanel); if (emergencyList.size() <= 0) emergencies.add(noEmergenciesDescription); emergencies.updateUI(); } // controlled public void hideControlledEmergencies() { for (int i = 0; i < emergencyList.size(); i++) { emergencies.remove(emergencyList.get(i).emergencyPanel); } emergencies.remove(emergencyButtons); emergencies.updateUI(); } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabGeneral.java000066400000000000000000000662311522247547500252370ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.text.AbstractDocument; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.DocumentFilter; //creates the general panel public class TabGeneral extends JScrollPane { private static final long serialVersionUID = -1025120107673788464L; // variables static final String NAME = "Example Town"; static final String MAP_FILE = "Example.map"; static final String BRIEFING = "No briefing yet!"; static final int START_CASH = 40000; static final double INTEREST = 1.0; static final int DRUG_START_RATING = 100; static final int DRUG_IMPROVE_RATE = 5; static final int DRUG_START_COST = 100; static final int DRUG_MIN_COST = 50; static final int LAND_COST_PER_TILE = 25; static final int AUTOPSY_RESEARCH_PERCENT = 33; static final int AUTOPSY_REPHIT_PERCENT = 25; static final int RESEARCH_UPGRADE_COST = 10; static final int RESEARCH_UPGRADE_INCREMENT_COST = 10; static final int STRENGTH_INCREMENT = 2; static final int MAX_STRENGTH = 20; static String name = NAME; static String mapFile = MAP_FILE; static String briefing = BRIEFING; static int startCash = START_CASH; static double interest = INTEREST; static int drugStartRating = DRUG_START_RATING; static int drugImproveRate = DRUG_IMPROVE_RATE; static int drugStartCost = DRUG_START_COST; static int drugMinCost = DRUG_MIN_COST; static int landCostPerTile = LAND_COST_PER_TILE; static int autopsyResearchPercent = AUTOPSY_RESEARCH_PERCENT; static int autopsyRepHitPercent = AUTOPSY_REPHIT_PERCENT; static int researchUpgradeCost = RESEARCH_UPGRADE_COST; static int researchUpgradeIncrementCost = RESEARCH_UPGRADE_INCREMENT_COST; static int strengthIncrement = STRENGTH_INCREMENT; static int maxStrength = MAX_STRENGTH; // components GridPanel general = new GridPanel(2); // JScrollPane scrollPane = new JScrollPane(general); JLabel nameLabel = new JLabel("Name:"); JLabel mapFileLabel = new JLabel("Map file:"); JLabel briefingLabel = new JLabel("Briefing:"); JLabel startCashLabel = new JLabel("Start cash:"); JLabel interestRateLabel = new JLabel("Interest in %:"); JLabel drugStartRatingLabel = new JLabel("Drug effectiveness:"); JLabel drugImproveRateLabel = new JLabel("Drug improve rate:"); JLabel drugStartCostLabel = new JLabel("Drug starting cost:"); JLabel drugMinCostLabel = new JLabel("Minimum drug cost:"); JLabel landCostPerTileLabel = new JLabel("Land cost per tile:"); JLabel autopsyResearchPercentLabel = new JLabel("Autopsy research:"); JLabel autopsyRepHitPercentLabel = new JLabel("Autopsy reputation hit:"); JLabel researchUpgradeCostLabel = new JLabel("Upgrade research required:"); JLabel researchUpgradeIncrementCostLabel = new JLabel( "Upgrade research increment:"); JLabel strengthIncrementLabel = new JLabel("Strength Increment:"); JLabel maxStrengthLabel = new JLabel("Max Object Strength:"); static JTextField nameTF = new JTextField(50); static JTextField mapFileTF = new JTextField(50); static JTextArea briefingTA = new JTextArea(3, 50); static JTextField startCashTF = new JTextField(10); static JTextField interestTF = new JTextField(10); static JTextField drugStartRatingTF = new JTextField(10); static JTextField drugStartCostTF = new JTextField(10); static JTextField drugImproveRateTF = new JTextField(10); static JTextField drugMinCostTF = new JTextField(10); static JTextField landCostPerTileTF = new JTextField(10); static JTextField autopsyResearchPercentTF = new JTextField(10); static JTextField autopsyRepHitPercentTF = new JTextField(10); static JTextField researchUpgradeCostTF = new JTextField(10); static JTextField researchUpgradeIncrementCostTF = new JTextField(10); static JTextField strengthIncrementTF = new JTextField(10); static JTextField maxStrengthTF = new JTextField(10); public TabGeneral() { // set scroll speed getVerticalScrollBar().setUnitIncrement(20); getHorizontalScrollBar().setUnitIncrement(20); setViewportView(general); general.add(nameLabel); general.add(nameTF); nameLabel .setToolTipText("Name to be displayed on the town map or when choosing a level"); // when the keyboard focus (the cursor) is put on the textfield or // leaves the textfield, // perform an action as specified in the TabItem class. nameTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); } @Override public void focusLost(FocusEvent e) { name = nameTF.getText(); } }); general.add(mapFileLabel); general.add(mapFileTF); mapFileLabel .setToolTipText("Must be a .map file or one of the original levels (Level.L1 - Level.L44). " + "If a custom map is used, it must be in the levels directory of CorsixTH."); mapFileTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); } @Override public void focusLost(FocusEvent e) { String input = mapFileTF.getText(); // if the input is not a .map file or one of the original // levels (level.l1 - level.l44), append ".map" automatically. if ((input.toLowerCase().matches(".*\\.map")) == true || (input.toLowerCase() .matches("(level\\.l[1-9])|(level\\.l[1-3]\\d)|(level\\.l4[0-4])")) == true) { mapFile = input; } else { mapFile = input + ".map"; mapFileTF.setText(mapFile); } } }); general.add(briefingLabel); general.add(briefingTA); briefingLabel .setToolTipText("The text to be displayed when starting a level"); briefingTA.setLineWrap(true); briefingTA.setWrapStyleWord(true); // the document filter restricts newline characters. ((AbstractDocument) briefingTA.getDocument()) .setDocumentFilter(new DocumentFilter() { @Override public void insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attr) throws BadLocationException { fb.insertString(offset, text.replaceAll("\n", ""), attr); } @Override public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attr) throws BadLocationException { fb.replace(offset, length, text.replaceAll("\n", ""), attr); } }); briefingTA.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { } @Override public void focusLost(FocusEvent e) { briefing = briefingTA.getText(); } }); general.add(startCashLabel); general.add(startCashTF); startCashLabel.setToolTipText("Cash at the start of the level"); startCashTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = startCashTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(startCashTF.getText()); startCash = input; } catch (NumberFormatException nfe) { startCash = Integer.parseInt(Gui.tempValue); startCashTF.setText(Integer.toString(startCash)); } } }); general.add(interestRateLabel); general.add(interestTF); interestRateLabel.setToolTipText("Interest payment per year"); interestTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = interestTF.getText(); } @Override public void focusLost(FocusEvent e) { try { String inputString = interestTF.getText().replaceAll(",", "."); double inputInterest = Double.parseDouble(inputString); interestTF.setText(inputString); if (inputInterest < 0) { interest = 0; interestTF.setText(Double.toString(interest)); } else if (inputInterest >= 100) { interest = 99.9; interestTF.setText(Double.toString(interest)); } else interest = inputInterest; } catch (NumberFormatException nfe) { interest = Double.parseDouble(Gui.tempValue); interestTF.setText(Double.toString(interest)); } } }); general.add(drugStartRatingLabel); general.add(drugStartRatingTF); drugStartRatingLabel .setToolTipText("Drug effectiveness in % to start with"); drugStartRatingTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = drugStartRatingTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(drugStartRatingTF.getText()); if (input <= 0) { drugStartRating = 1; drugStartRatingTF.setText(Integer .toString(drugStartRating)); } else if (input > 100) { drugStartRating = 100; drugStartRatingTF.setText(Integer .toString(drugStartRating)); } else drugStartRating = input; } catch (NumberFormatException nfe) { drugStartRating = Integer.parseInt(Gui.tempValue); drugStartRatingTF.setText(Integer.toString(drugStartRating)); } } }); general.add(drugImproveRateLabel); general.add(drugImproveRateTF); drugImproveRateLabel .setToolTipText("When a drug is improved by research, " + "increase its effectiveness by this amount"); drugImproveRateTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = drugImproveRateTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(drugImproveRateTF.getText()); if (input <= 0) { drugImproveRate = 1; drugImproveRateTF.setText(Integer .toString(drugImproveRate)); } else if (input > 100) { drugImproveRate = 100; drugImproveRateTF.setText(Integer .toString(drugImproveRate)); } else drugImproveRate = input; } catch (NumberFormatException nfe) { drugImproveRate = Integer.parseInt(Gui.tempValue); drugImproveRateTF.setText(Integer.toString(drugImproveRate)); } } }); general.add(drugStartCostLabel); general.add(drugStartCostTF); drugStartCostLabel .setToolTipText("How much it costs each time a drug is used"); drugStartCostTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = drugStartCostTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(drugStartCostTF.getText()); if (input < 0) { drugStartCost = 0; drugStartCostTF.setText(Integer.toString(drugStartCost)); } else if (input > 10000) { drugStartCost = 10000; drugStartCostTF.setText(Integer.toString(drugStartCost)); } else drugStartCost = input; } catch (NumberFormatException nfe) { drugStartCost = Integer.parseInt(Gui.tempValue); drugStartCostTF.setText(Integer.toString(drugStartCost)); } if (drugMinCost > drugStartCost) { drugMinCost = drugStartCost; drugMinCostTF.setText(Integer.toString(drugMinCost)); } } }); general.add(drugMinCostLabel); general.add(drugMinCostTF); drugMinCostLabel .setToolTipText("The lowest drug cost you can get by researching"); drugMinCostTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = drugMinCostTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(drugMinCostTF.getText()); if (input < 0) { drugMinCost = 0; drugMinCostTF.setText(Integer.toString(drugMinCost)); } else drugMinCost = input; } catch (NumberFormatException nfe) { drugMinCost = Integer.parseInt(Gui.tempValue); drugMinCostTF.setText(Integer.toString(drugMinCost)); } if (drugMinCost > drugStartCost) { drugMinCost = drugStartCost; drugMinCostTF.setText(Integer.toString(drugMinCost)); } } }); general.add(landCostPerTileLabel); general.add(landCostPerTileTF); landCostPerTileLabel .setToolTipText("Cost for purchasing a single square tile of land"); landCostPerTileTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = landCostPerTileTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(landCostPerTileTF.getText()); if (input < 0) { landCostPerTile = 0; landCostPerTileTF.setText(Integer .toString(landCostPerTile)); } else if (input > 1000) { landCostPerTile = 1000; landCostPerTileTF.setText(Integer .toString(landCostPerTile)); } else landCostPerTile = input; } catch (NumberFormatException nfe) { landCostPerTile = Integer.parseInt(Gui.tempValue); landCostPerTileTF.setText(Integer.toString(landCostPerTile)); } } }); general.add(autopsyResearchPercentLabel); general.add(autopsyResearchPercentTF); autopsyResearchPercentLabel .setToolTipText("% of research completed for an autopsy"); autopsyResearchPercentTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = autopsyResearchPercentTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(autopsyResearchPercentTF .getText()); if (input < 1) { autopsyResearchPercent = 1; autopsyResearchPercentTF.setText(Integer .toString(autopsyResearchPercent)); } else if (input > 100) { autopsyResearchPercent = 100; autopsyResearchPercentTF.setText(Integer .toString(autopsyResearchPercent)); } else autopsyResearchPercent = input; } catch (NumberFormatException nfe) { autopsyResearchPercent = Integer.parseInt(Gui.tempValue); autopsyResearchPercentTF.setText(Integer .toString(autopsyResearchPercent)); } } }); general.add(autopsyRepHitPercentLabel); general.add(autopsyRepHitPercentTF); autopsyRepHitPercentLabel .setToolTipText("% reputation hit for discovered autopsy"); autopsyRepHitPercentTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = autopsyRepHitPercentTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(autopsyRepHitPercentTF .getText()); if (input < 0) { autopsyRepHitPercent = 0; autopsyRepHitPercentTF.setText(Integer .toString(autopsyRepHitPercent)); } else if (input > 99) { autopsyRepHitPercent = 99; autopsyRepHitPercentTF.setText(Integer .toString(autopsyRepHitPercent)); } else autopsyRepHitPercent = input; } catch (NumberFormatException nfe) { autopsyRepHitPercent = Integer.parseInt(Gui.tempValue); autopsyRepHitPercentTF.setText(Integer .toString(autopsyRepHitPercent)); } } }); general.add(researchUpgradeCostLabel); general.add(researchUpgradeCostTF); researchUpgradeCostLabel .setToolTipText("How many percent of the original research points of a machine are required to improve it."); researchUpgradeCostTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = researchUpgradeCostTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(researchUpgradeCostTF .getText()); if (input < 1) { researchUpgradeCost = 1; researchUpgradeCostTF.setText(Integer .toString(researchUpgradeCost)); } else if (input > 1000) { researchUpgradeCost = 1000; researchUpgradeCostTF.setText(Integer .toString(researchUpgradeCost)); } else researchUpgradeCost = input; } catch (NumberFormatException nfe) { researchUpgradeCost = Integer.parseInt(Gui.tempValue); researchUpgradeCostTF.setText(Integer .toString(researchUpgradeCost)); } } }); general.add(researchUpgradeIncrementCostLabel); general.add(researchUpgradeIncrementCostTF); researchUpgradeIncrementCostLabel .setToolTipText("How many additional percentage points are added to the above value for each upgrade."); researchUpgradeIncrementCostTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = researchUpgradeIncrementCostTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(researchUpgradeIncrementCostTF .getText()); if (input < 0) { researchUpgradeIncrementCost = 0; researchUpgradeIncrementCostTF.setText(Integer .toString(researchUpgradeIncrementCost)); } else if (input > 1000) { researchUpgradeIncrementCost = 1000; researchUpgradeIncrementCostTF.setText(Integer .toString(researchUpgradeIncrementCost)); } else researchUpgradeIncrementCost = input; } catch (NumberFormatException nfe) { researchUpgradeIncrementCost = Integer .parseInt(Gui.tempValue); researchUpgradeIncrementCostTF.setText(Integer .toString(researchUpgradeIncrementCost)); } } }); general.add(strengthIncrementLabel); general.add(strengthIncrementTF); strengthIncrementLabel .setToolTipText("Increase object strength by this amount when researching"); strengthIncrementTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = strengthIncrementTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(strengthIncrementTF.getText()); if (input < 1) { strengthIncrement = 1; strengthIncrementTF.setText(Integer .toString(strengthIncrement)); } else if (input > 99) { strengthIncrement = 99; strengthIncrementTF.setText(Integer .toString(strengthIncrement)); } else strengthIncrement = input; } catch (NumberFormatException nfe) { strengthIncrement = Integer.parseInt(Gui.tempValue); strengthIncrementTF.setText(Integer .toString(strengthIncrement)); } } }); general.add(maxStrengthLabel); general.add(maxStrengthTF); maxStrengthLabel .setToolTipText("Maximum strength value an object can be improved to (by research)"); maxStrengthTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = maxStrengthTF.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(maxStrengthTF.getText()); if (input < 1) { maxStrength = 1; maxStrengthTF.setText(Integer.toString(maxStrength)); } else if (input > 99) { maxStrength = 99; maxStrengthTF.setText(Integer.toString(maxStrength)); } else maxStrength = input; } catch (NumberFormatException nfe) { maxStrength = Integer.parseInt(Gui.tempValue); maxStrengthTF.setText(Integer.toString(maxStrength)); } } }); } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabGoals.java000066400000000000000000000625101522247547500247230ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.FlowLayout; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.BorderFactory; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class TabGoals extends JScrollPane { private static final long serialVersionUID = 1413048579654855631L; // variables static boolean winReputation = false; static boolean winBalance = false; static boolean winPercentage = false; static boolean winCureCount = false; static boolean winValue = false; static boolean loseReputation = false; static boolean loseBalance = false; static boolean losePercentageKilled = false; static final int MIN_REPUTATION = 300; static final int MIN_BALANCE = 1000; static final int MIN_PERCENTAGE = 40; static final int MIN_CURE_COUNT = 10; static final int MIN_VALUE = 55000; static final int MAX_REPUTATION = 200; static final int MAX_BALANCE = -20000; static final int MIN_PERCENTAGE_KILLED = 50; static int minReputation = MIN_REPUTATION; static int minBalance = MIN_BALANCE; static int minPercentage = MIN_PERCENTAGE; static int minCureCount = MIN_CURE_COUNT; static int minValue = MIN_VALUE; static int maxReputation = MAX_REPUTATION; static int maxBalance = MAX_BALANCE; static int minPercentageKilled = MIN_PERCENTAGE_KILLED; static int warnReputation; static int warnBalance; static int warnPercentageKilled; // components static GridPanel winCriteria = new GridPanel(3); static GridPanel loseCriteria = new GridPanel(5); static JLabel minReputationLabel = new JLabel("Reputation:"); static JLabel minBalanceLabel = new JLabel("Bank balance:"); static JLabel minPercentageLabel = new JLabel("Percentage treated:"); static JLabel minCureCountLabel = new JLabel("Cure count:"); static JLabel minValueLabel = new JLabel("Hospital Value:"); static JLabel maxReputationLabel = new JLabel("Reputation:"); static JLabel maxBalanceLabel = new JLabel("Bank balance:"); static JLabel minPercentageKilledLabel = new JLabel("Percentage killed:"); static JLabel warnReputationLabel = new JLabel("Warn player at:"); static JLabel warnBalanceLabel = new JLabel("Warn player at:"); static JLabel warnPercentageKilledLabel = new JLabel("Warn player at:"); static JTextField minReputationTF = new JTextField( Integer.toString(minReputation), 5); static JTextField minBalanceTF = new JTextField( Integer.toString(minBalance), 5); static JTextField minPercentageTF = new JTextField( Integer.toString(minPercentage), 5); static JTextField minCureCountTF = new JTextField( Integer.toString(minCureCount), 5); static JTextField minValueTF = new JTextField(Integer.toString(minValue), 5); static JTextField maxReputationTF = new JTextField( Integer.toString(maxReputation), 5); static JTextField maxBalanceTF = new JTextField( Integer.toString(maxBalance), 5); static JTextField minPercentageKilledTF = new JTextField( Integer.toString(minPercentageKilled), 5); static JTextField warnReputationTF = new JTextField( Integer.toString(warnReputation), 5); static JTextField warnBalanceTF = new JTextField( Integer.toString(warnBalance), 5); static JTextField warnPercentageKilledTF = new JTextField( Integer.toString(warnPercentageKilled), 5); static JCheckBox winReputationCB = new JCheckBox(); static JCheckBox winBalanceCB = new JCheckBox(); static JCheckBox winPercentageCB = new JCheckBox(); static JCheckBox winCureCountCB = new JCheckBox(); static JCheckBox winValueCB = new JCheckBox(); static JCheckBox loseReputationCB = new JCheckBox(); static JCheckBox loseBalanceCB = new JCheckBox(); static JCheckBox losePercentageKilledCB = new JCheckBox(); JPanel goals = new JPanel(); public TabGoals() { // set scroll speed getVerticalScrollBar().setUnitIncrement(20); getHorizontalScrollBar().setUnitIncrement(20); FlowLayout layout = new FlowLayout(FlowLayout.LEADING); layout.setAlignOnBaseline(true); goals.setLayout(layout); setViewportView(goals); // win criteria goals.add(winCriteria); winCriteria.setBorder(BorderFactory.createTitledBorder("Win Criteria")); winCriteria.add(minReputationLabel); winCriteria.add(winReputationCB); winReputationCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { winReputation = true; minReputationTF.setEditable(true); } else { winReputation = false; minReputationTF.setEditable(false); } } }); winCriteria.add(minReputationTF); minReputationTF.setEditable(false); minReputationTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { minReputation = 1; minReputationTF.setText(Integer.toString(minReputation)); } else if (input > 999) { minReputation = 999; minReputationTF.setText(Integer.toString(minReputation)); } else minReputation = input; } catch (NumberFormatException nfe) { minReputation = Integer.parseInt(Gui.tempValue); minReputationTF.setText(Gui.tempValue); } } }); winCriteria.add(minBalanceLabel); winCriteria.add(winBalanceCB); winBalanceCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { winBalance = true; minBalanceTF.setEditable(true); } else { winBalance = false; minBalanceTF.setEditable(false); } } }); winCriteria.add(minBalanceTF); minBalanceTF.setEditable(false); minBalanceTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { minBalance = 1; minBalanceTF.setText(Integer.toString(minBalance)); } else minBalance = input; } catch (NumberFormatException nfe) { minBalance = Integer.parseInt(Gui.tempValue); minBalanceTF.setText(Gui.tempValue); } } }); winCriteria.add(minPercentageLabel); winCriteria.add(winPercentageCB); winPercentageCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { winPercentage = true; minPercentageTF.setEditable(true); } else { winPercentage = false; minPercentageTF.setEditable(false); } } }); winCriteria.add(minPercentageTF); minPercentageTF.setEditable(false); minPercentageTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { minPercentage = Integer.parseInt(Gui.tempValue); minPercentageTF.setText(Gui.tempValue); } else if (input > 100) { minPercentage = 100; minPercentageTF.setText(Integer.toString(minPercentage)); } else minPercentage = input; } catch (NumberFormatException nfe) { minPercentage = Integer.parseInt(Gui.tempValue); minPercentageTF.setText(Gui.tempValue); } } }); winCriteria.add(minCureCountLabel); winCriteria.add(winCureCountCB); winCureCountCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { winCureCount = true; minCureCountTF.setEditable(true); } else { winCureCount = false; minCureCountTF.setEditable(false); } } }); winCriteria.add(minCureCountTF); minCureCountTF.setEditable(false); minCureCountTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { minCureCount = 1; minCureCountTF.setText(Integer.toString(minCureCount)); } else minCureCount = input; } catch (NumberFormatException nfe) { minCureCount = Integer.parseInt(Gui.tempValue); minCureCountTF.setText(Gui.tempValue); } } }); winCriteria.add(minValueLabel); winCriteria.add(winValueCB); winValueCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { winValue = true; minValueTF.setEditable(true); } else { winValue = false; minValueTF.setEditable(false); } } }); winCriteria.add(minValueTF); minValueTF.setEditable(false); minValueTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { minValue = 1; minValueTF.setText(Integer.toString(minValue)); } else minValue = input; } catch (NumberFormatException nfe) { minValue = Integer.parseInt(Gui.tempValue); minValueTF.setText(Gui.tempValue); } } }); // lose criteria goals.add(loseCriteria); loseCriteria.setBorder(BorderFactory .createTitledBorder("Lose Criteria")); loseCriteria.add(maxReputationLabel); loseCriteria.add(loseReputationCB); loseReputationCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { loseReputation = true; maxReputationTF.setEditable(true); warnReputationTF.setEditable(true); } else { loseReputation = false; maxReputationTF.setEditable(false); warnReputationTF.setEditable(false); } } }); loseCriteria.add(maxReputationTF); maxReputationTF.setEditable(false); maxReputationTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { maxReputation = 1; maxReputationTF.setText(Integer.toString(maxReputation)); } else if (input > 999) { maxReputation = 999; maxReputationTF.setText(Integer.toString(maxReputation)); } else maxReputation = input; } catch (NumberFormatException nfe) { maxReputation = Integer.parseInt(Gui.tempValue); maxReputationTF.setText(Gui.tempValue); } if (warnReputation < maxReputation) { warnReputation = maxReputation; warnReputationTF.setText(Integer.toString(maxReputation)); } } }); loseCriteria.add(warnReputationLabel); warnReputationLabel .setToolTipText("At which point the status graph will display the" + " lose condition instead of the winning condition, as a warning to the player"); loseCriteria.add(warnReputationTF); warnReputationTF.setEditable(false); warnReputationTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { warnReputation = 1; warnReputationTF.setText(Integer .toString(warnReputation)); } else if (input > 999) { warnReputation = 999; warnReputationTF.setText(Integer .toString(warnReputation)); } else warnReputation = input; } catch (NumberFormatException nfe) { warnReputation = Integer.parseInt(Gui.tempValue); warnReputationTF.setText(Gui.tempValue); } if (warnReputation < maxReputation) { warnReputation = maxReputation; warnReputationTF.setText(Integer.toString(maxReputation)); } } }); loseCriteria.add(maxBalanceLabel); loseCriteria.add(loseBalanceCB); loseBalanceCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { loseBalance = true; maxBalanceTF.setEditable(true); warnBalanceTF.setEditable(true); } else { loseBalance = false; maxBalanceTF.setEditable(false); warnBalanceTF.setEditable(false); } } }); loseCriteria.add(maxBalanceTF); maxBalanceTF.setEditable(false); maxBalanceTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); maxBalance = input; } catch (NumberFormatException nfe) { maxBalance = Integer.parseInt(Gui.tempValue); maxBalanceTF.setText(Gui.tempValue); } if (warnBalance < maxBalance) { warnBalance = maxBalance; warnBalanceTF.setText(Integer.toString(maxBalance)); } } }); loseCriteria.add(warnBalanceLabel); warnBalanceLabel .setToolTipText("At which point the status graph will display the" + " lose condition instead of the winning condition, as a warning to the player"); loseCriteria.add(warnBalanceTF); warnBalanceTF.setEditable(false); warnBalanceTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); warnBalance = input; } catch (NumberFormatException nfe) { warnBalance = Integer.parseInt(Gui.tempValue); warnBalanceTF.setText(Gui.tempValue); } if (warnBalance < maxBalance) { warnBalance = maxBalance; warnBalanceTF.setText(Integer.toString(maxBalance)); } } }); loseCriteria.add(minPercentageKilledLabel); loseCriteria.add(losePercentageKilledCB); losePercentageKilledCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { losePercentageKilled = true; minPercentageKilledTF.setEditable(true); warnPercentageKilledTF.setEditable(true); } else { losePercentageKilled = false; minPercentageKilledTF.setEditable(false); warnPercentageKilledTF.setEditable(false); } } }); loseCriteria.add(minPercentageKilledTF); minPercentageKilledTF.setEditable(false); minPercentageKilledTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { minPercentageKilled = 1; minPercentageKilledTF.setText(Integer .toString(minPercentageKilled)); } else if (input > 100) { minPercentageKilled = 100; minPercentageKilledTF.setText(Integer .toString(minPercentageKilled)); } else minPercentageKilled = input; } catch (NumberFormatException nfe) { minPercentageKilled = Integer.parseInt(Gui.tempValue); minPercentageKilledTF.setText(Gui.tempValue); } if (warnPercentageKilled > minPercentageKilled) { warnPercentageKilled = minPercentageKilled; warnPercentageKilledTF.setText(Integer .toString(minPercentageKilled)); } } }); loseCriteria.add(warnPercentageKilledLabel); warnPercentageKilledLabel .setToolTipText("At which point the status graph will display the" + " lose condition instead of the winning condition, as a warning to the player"); loseCriteria.add(warnPercentageKilledTF); warnPercentageKilledTF.setEditable(false); warnPercentageKilledTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(((JTextField) e.getComponent()) .getText()); if (input < 1) { warnPercentageKilled = 1; warnPercentageKilledTF.setText(Integer .toString(warnPercentageKilled)); } else if (input > 100) { warnPercentageKilled = 100; warnPercentageKilledTF.setText(Integer .toString(warnPercentageKilled)); } else warnPercentageKilled = input; } catch (NumberFormatException nfe) { warnPercentageKilled = Integer.parseInt(Gui.tempValue); warnPercentageKilledTF.setText(Gui.tempValue); } if (warnPercentageKilled > minPercentageKilled) { warnPercentageKilled = minPercentageKilled; warnPercentageKilledTF.setText(Integer .toString(minPercentageKilled)); } } }); } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabObjects.java000066400000000000000000002111471522247547500252510ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class TabObjects extends JScrollPane { private static final long serialVersionUID = 1176963244482675840L; // variables static int[] objectsAvail = new int[62]; // index [0] is never used. static int[] objectsStartAvail = new int[62]; static int[] objectsStrength = new int[62]; static int[] objectsResearch = new int[62]; // components GridPanel objects = new GridPanel(5); // Row gaps JScrollPane scrollPane = new JScrollPane(objects); JLabel availableLabel = new JLabel("Available"); JLabel startLabel = new JLabel("From start"); JLabel strengthLabel = new JLabel("Strength"); JLabel researchLabel = new JLabel("Research"); JCheckBox checkAllAvailableCB = new JCheckBox(); JCheckBox checkAllStartCB = new JCheckBox(); static JCheckBox[] objectsAvailCB = new JCheckBox[62]; static JCheckBox[] objectsStartAvailCB = new JCheckBox[62]; // static JTextField[] objectsCostTF = new JTextField[62]; static JTextField[] objectsStrengthTF = new JTextField[62]; static JTextField[] objectsResearchTF = new JTextField[62]; // JLabel costLabel = new JLabel("cost"); public TabObjects() { // set scroll speed getVerticalScrollBar().setUnitIncrement(20); getHorizontalScrollBar().setUnitIncrement(20); setViewportView(objects); objects.setInsets(2, 7, 2, 7); // initializing members of checkbox and textfield arrays, else they will // be null. for (int i = 0; i < objectsAvailCB.length; i++) objectsAvailCB[i] = new JCheckBox(); for (int i = 0; i < objectsStartAvailCB.length; i++) objectsStartAvailCB[i] = new JCheckBox(); for (int i = 0; i < objectsStrengthTF.length; i++) objectsStrengthTF[i] = new JTextField(2); for (int i = 0; i < objectsResearchTF.length; i++) objectsResearchTF[i] = new JTextField(5); // for (int i=0; i 99) { objectsStrength[9] = 99; objectsStrengthTF[9].setText(Integer .toString(objectsStrength[9])); } else objectsStrength[9] = input; } catch (NumberFormatException nfe) { objectsStrength[9] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[9].setText(Integer .toString(objectsStrength[9])); } } }); objects.add(new JLabel("Cardiogram")); objects.add(objectsAvailCB[13]); objects.add(objectsStartAvailCB[13]); objects.add(objectsResearchTF[13]); objects.add(objectsStrengthTF[13]); objectsAvailCB[13].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[13] = 1; else objectsAvail[13] = 0; } }); objectsStartAvailCB[13].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[13] = 1; else objectsStartAvail[13] = 0; } }); objectsResearchTF[13].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[13].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[13] .getText()); if (input < 1) { objectsResearch[13] = 1; objectsResearchTF[13].setText(Integer .toString(objectsResearch[13])); } else objectsResearch[13] = input; } catch (NumberFormatException nfe) { objectsResearch[13] = Integer.parseInt(Gui.tempValue); objectsResearchTF[13].setText(Integer .toString(objectsResearch[13])); } } }); objectsStrengthTF[13].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[13].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[13] .getText()); if (input < 1) { objectsStrength[13] = 1; objectsStrengthTF[13].setText(Integer .toString(objectsStrength[13])); } else if (input > 99) { objectsStrength[13] = 99; objectsStrengthTF[13].setText(Integer .toString(objectsStrength[13])); } else objectsStrength[13] = input; } catch (NumberFormatException nfe) { objectsStrength[13] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[13].setText(Integer .toString(objectsStrength[13])); } } }); objects.add(new JLabel("Slack Tongue Slicer")); objects.add(objectsAvailCB[26]); objects.add(objectsStartAvailCB[26]); objects.add(objectsResearchTF[26]); objects.add(objectsStrengthTF[26]); objectsAvailCB[26].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[26] = 1; else objectsAvail[26] = 0; } }); objectsStartAvailCB[26].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[26] = 1; else objectsStartAvail[26] = 0; } }); objectsResearchTF[26].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[26].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[26] .getText()); if (input < 1) { objectsResearch[26] = 1; objectsResearchTF[26].setText(Integer .toString(objectsResearch[26])); } else objectsResearch[26] = input; } catch (NumberFormatException nfe) { objectsResearch[26] = Integer.parseInt(Gui.tempValue); objectsResearchTF[26].setText(Integer .toString(objectsResearch[26])); } } }); objectsStrengthTF[26].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[26].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[26] .getText()); if (input < 1) { objectsStrength[26] = 1; objectsStrengthTF[26].setText(Integer .toString(objectsStrength[26])); } else if (input > 99) { objectsStrength[26] = 99; objectsStrengthTF[26].setText(Integer .toString(objectsStrength[26])); } else objectsStrength[26] = input; } catch (NumberFormatException nfe) { objectsStrength[26] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[26].setText(Integer .toString(objectsStrength[26])); } } }); objects.add(new JLabel("X-Ray")); objects.add(objectsAvailCB[27]); objects.add(objectsStartAvailCB[27]); objects.add(objectsResearchTF[27]); objects.add(objectsStrengthTF[27]); objectsAvailCB[27].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[27] = 1; else objectsAvail[27] = 0; } }); objectsStartAvailCB[27].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[27] = 1; else objectsStartAvail[27] = 0; } }); objectsResearchTF[27].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[27].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[27] .getText()); if (input < 1) { objectsResearch[27] = 1; objectsResearchTF[27].setText(Integer .toString(objectsResearch[27])); } else objectsResearch[27] = input; } catch (NumberFormatException nfe) { objectsResearch[27] = Integer.parseInt(Gui.tempValue); objectsResearchTF[27].setText(Integer .toString(objectsResearch[27])); } } }); objectsStrengthTF[27].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[27].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[27] .getText()); if (input < 1) { objectsStrength[27] = 1; objectsStrengthTF[27].setText(Integer .toString(objectsStrength[27])); } else if (input > 99) { objectsStrength[27] = 99; objectsStrengthTF[27].setText(Integer .toString(objectsStrength[27])); } else objectsStrength[27] = input; } catch (NumberFormatException nfe) { objectsStrength[27] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[27].setText(Integer .toString(objectsStrength[27])); } } }); objects.add(new JLabel("Operating Table")); objects.add(objectsAvailCB[30]); objects.add(objectsStartAvailCB[30]); objects.add(objectsResearchTF[30]); objects.add(objectsStrengthTF[30]); objectsAvailCB[30].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[30] = 1; else objectsAvail[30] = 0; } }); objectsStartAvailCB[30].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[30] = 1; else objectsStartAvail[30] = 0; } }); objectsResearchTF[30].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[30].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[30] .getText()); if (input < 1) { objectsResearch[30] = 1; objectsResearchTF[30].setText(Integer .toString(objectsResearch[30])); } else objectsResearch[30] = input; } catch (NumberFormatException nfe) { objectsResearch[30] = Integer.parseInt(Gui.tempValue); objectsResearchTF[30].setText(Integer .toString(objectsResearch[30])); } } }); objectsStrengthTF[30].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[30].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[30] .getText()); if (input < 1) { objectsStrength[30] = 1; objectsStrengthTF[30].setText(Integer .toString(objectsStrength[30])); } else if (input > 99) { objectsStrength[30] = 99; objectsStrengthTF[30].setText(Integer .toString(objectsStrength[30])); } else objectsStrength[30] = input; } catch (NumberFormatException nfe) { objectsStrength[30] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[30].setText(Integer .toString(objectsStrength[30])); } } }); objects.add(new JLabel("Cast Remover")); objects.add(objectsAvailCB[24]); objects.add(objectsStartAvailCB[24]); objects.add(objectsResearchTF[24]); objects.add(objectsStrengthTF[24]); objectsAvailCB[24].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[24] = 1; else objectsAvail[24] = 0; } }); objectsStartAvailCB[24].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[24] = 1; else objectsStartAvail[24] = 0; } }); objectsResearchTF[24].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[24].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[24] .getText()); if (input < 1) { objectsResearch[24] = 1; objectsResearchTF[24].setText(Integer .toString(objectsResearch[24])); } else objectsResearch[24] = input; } catch (NumberFormatException nfe) { objectsResearch[24] = Integer.parseInt(Gui.tempValue); objectsResearchTF[24].setText(Integer .toString(objectsResearch[24])); } } }); objectsStrengthTF[24].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[24].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[24] .getText()); if (input < 1) { objectsStrength[24] = 1; objectsStrengthTF[24].setText(Integer .toString(objectsStrength[24])); } else if (input > 99) { objectsStrength[24] = 99; objectsStrengthTF[24].setText(Integer .toString(objectsStrength[24])); } else objectsStrength[24] = input; } catch (NumberFormatException nfe) { objectsStrength[24] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[24].setText(Integer .toString(objectsStrength[24])); } } }); objects.add(new JLabel("Scanner")); objects.add(objectsAvailCB[14]); objects.add(objectsStartAvailCB[14]); objects.add(objectsResearchTF[14]); objects.add(objectsStrengthTF[14]); objectsAvailCB[14].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[14] = 1; else objectsAvail[14] = 0; } }); objectsStartAvailCB[14].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[14] = 1; else objectsStartAvail[14] = 0; } }); objectsResearchTF[14].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[14].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[14] .getText()); if (input < 1) { objectsResearch[14] = 1; objectsResearchTF[14].setText(Integer .toString(objectsResearch[14])); } else objectsResearch[14] = input; } catch (NumberFormatException nfe) { objectsResearch[14] = Integer.parseInt(Gui.tempValue); objectsResearchTF[14].setText(Integer .toString(objectsResearch[14])); } } }); objectsStrengthTF[14].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[14].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[14] .getText()); if (input < 1) { objectsStrength[14] = 1; objectsStrengthTF[14].setText(Integer .toString(objectsStrength[14])); } else if (input > 99) { objectsStrength[14] = 99; objectsStrengthTF[14].setText(Integer .toString(objectsStrength[14])); } else objectsStrength[14] = input; } catch (NumberFormatException nfe) { objectsStrength[14] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[14].setText(Integer .toString(objectsStrength[14])); } } }); objects.add(new JLabel("Hair Restorer")); objects.add(objectsAvailCB[25]); objects.add(objectsStartAvailCB[25]); objects.add(objectsResearchTF[25]); objects.add(objectsStrengthTF[25]); objectsAvailCB[25].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[25] = 1; else objectsAvail[25] = 0; } }); objectsStartAvailCB[25].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[25] = 1; else objectsStartAvail[25] = 0; } }); objectsResearchTF[25].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[25].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[25] .getText()); if (input < 1) { objectsResearch[25] = 1; objectsResearchTF[25].setText(Integer .toString(objectsResearch[25])); } else objectsResearch[25] = input; } catch (NumberFormatException nfe) { objectsResearch[25] = Integer.parseInt(Gui.tempValue); objectsResearchTF[25].setText(Integer .toString(objectsResearch[25])); } } }); objectsStrengthTF[25].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[25].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[25] .getText()); if (input < 1) { objectsStrength[25] = 1; objectsStrengthTF[25].setText(Integer .toString(objectsStrength[25])); } else if (input > 99) { objectsStrength[25] = 99; objectsStrengthTF[25].setText(Integer .toString(objectsStrength[25])); } else objectsStrength[25] = input; } catch (NumberFormatException nfe) { objectsStrength[25] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[25].setText(Integer .toString(objectsStrength[25])); } } }); objects.add(new JLabel("Blood Machine")); objects.add(objectsAvailCB[42]); objects.add(objectsStartAvailCB[42]); objects.add(objectsResearchTF[42]); objects.add(objectsStrengthTF[42]); objectsAvailCB[42].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[42] = 1; else objectsAvail[42] = 0; } }); objectsStartAvailCB[42].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[42] = 1; else objectsStartAvail[42] = 0; } }); objectsResearchTF[42].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[42].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[42] .getText()); if (input < 1) { objectsResearch[42] = 1; objectsResearchTF[42].setText(Integer .toString(objectsResearch[42])); } else objectsResearch[42] = input; } catch (NumberFormatException nfe) { objectsResearch[42] = Integer.parseInt(Gui.tempValue); objectsResearchTF[42].setText(Integer .toString(objectsResearch[42])); } } }); objectsStrengthTF[42].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[42].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[42] .getText()); if (input < 1) { objectsStrength[42] = 1; objectsStrengthTF[42].setText(Integer .toString(objectsStrength[42])); } else if (input > 99) { objectsStrength[42] = 99; objectsStrengthTF[42].setText(Integer .toString(objectsStrength[42])); } else objectsStrength[42] = input; } catch (NumberFormatException nfe) { objectsStrength[42] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[42].setText(Integer .toString(objectsStrength[42])); } } }); objects.add(new JLabel("Electrolysis Machine")); objects.add(objectsAvailCB[46]); objects.add(objectsStartAvailCB[46]); objects.add(objectsResearchTF[46]); objects.add(objectsStrengthTF[46]); objectsAvailCB[46].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[46] = 1; else objectsAvail[46] = 0; } }); objectsStartAvailCB[46].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[46] = 1; else objectsStartAvail[46] = 0; } }); objectsResearchTF[46].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[46].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[46] .getText()); if (input < 1) { objectsResearch[46] = 1; objectsResearchTF[46].setText(Integer .toString(objectsResearch[46])); } else objectsResearch[46] = input; } catch (NumberFormatException nfe) { objectsResearch[46] = Integer.parseInt(Gui.tempValue); objectsResearchTF[46].setText(Integer .toString(objectsResearch[46])); } } }); objectsStrengthTF[46].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[46].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[46] .getText()); if (input < 1) { objectsStrength[46] = 1; objectsStrengthTF[46].setText(Integer .toString(objectsStrength[46])); } else if (input > 99) { objectsStrength[46] = 99; objectsStrengthTF[46].setText(Integer .toString(objectsStrength[46])); } else objectsStrength[46] = input; } catch (NumberFormatException nfe) { objectsStrength[46] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[46].setText(Integer .toString(objectsStrength[46])); } } }); objects.add(new JLabel("Decontamination Shower")); objects.add(objectsAvailCB[54]); objects.add(objectsStartAvailCB[54]); objects.add(objectsResearchTF[54]); objects.add(objectsStrengthTF[54]); objectsAvailCB[54].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[54] = 1; else objectsAvail[54] = 0; } }); objectsStartAvailCB[54].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[54] = 1; else objectsStartAvail[54] = 0; } }); objectsResearchTF[54].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[54].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[54] .getText()); if (input < 1) { objectsResearch[54] = 1; objectsResearchTF[54].setText(Integer .toString(objectsResearch[54])); } else objectsResearch[54] = input; } catch (NumberFormatException nfe) { objectsResearch[54] = Integer.parseInt(Gui.tempValue); objectsResearchTF[54].setText(Integer .toString(objectsResearch[54])); } } }); objectsStrengthTF[54].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[54].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[54] .getText()); if (input < 1) { objectsStrength[54] = 1; objectsStrengthTF[54].setText(Integer .toString(objectsStrength[54])); } else if (input > 99) { objectsStrength[54] = 99; objectsStrengthTF[54].setText(Integer .toString(objectsStrength[54])); } else objectsStrength[54] = input; } catch (NumberFormatException nfe) { objectsStrength[54] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[54].setText(Integer .toString(objectsStrength[54])); } } }); objects.add(new JLabel("Ultrascan")); objects.add(objectsAvailCB[22]); objects.add(objectsStartAvailCB[22]); objects.add(objectsResearchTF[22]); objects.add(objectsStrengthTF[22]); objectsAvailCB[22].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[22] = 1; else objectsAvail[22] = 0; } }); objectsStartAvailCB[22].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[22] = 1; else objectsStartAvail[22] = 0; } }); objectsResearchTF[22].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[22].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[22] .getText()); if (input < 1) { objectsResearch[22] = 1; objectsResearchTF[22].setText(Integer .toString(objectsResearch[22])); } else objectsResearch[22] = input; } catch (NumberFormatException nfe) { objectsResearch[22] = Integer.parseInt(Gui.tempValue); objectsResearchTF[22].setText(Integer .toString(objectsResearch[22])); } } }); objectsStrengthTF[22].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[22].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[22] .getText()); if (input < 1) { objectsStrength[22] = 1; objectsStrengthTF[22].setText(Integer .toString(objectsStrength[22])); } else if (input > 99) { objectsStrength[22] = 99; objectsStrengthTF[22].setText(Integer .toString(objectsStrength[22])); } else objectsStrength[22] = input; } catch (NumberFormatException nfe) { objectsStrength[22] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[22].setText(Integer .toString(objectsStrength[22])); } } }); objects.add(new JLabel("Jellyitus Moulding Machine")); objects.add(objectsAvailCB[47]); objects.add(objectsStartAvailCB[47]); objects.add(objectsResearchTF[47]); objects.add(objectsStrengthTF[47]); objectsAvailCB[47].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[47] = 1; else objectsAvail[47] = 0; } }); objectsStartAvailCB[47].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[47] = 1; else objectsStartAvail[47] = 0; } }); objectsResearchTF[47].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[47].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[47] .getText()); if (input < 1) { objectsResearch[47] = 1; objectsResearchTF[47].setText(Integer .toString(objectsResearch[47])); } else objectsResearch[47] = input; } catch (NumberFormatException nfe) { objectsResearch[47] = Integer.parseInt(Gui.tempValue); objectsResearchTF[47].setText(Integer .toString(objectsResearch[47])); } } }); objectsStrengthTF[47].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[47].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[47] .getText()); if (input < 1) { objectsStrength[47] = 1; objectsStrengthTF[47].setText(Integer .toString(objectsStrength[47])); } else if (input > 99) { objectsStrength[47] = 99; objectsStrengthTF[47].setText(Integer .toString(objectsStrength[47])); } else objectsStrength[47] = input; } catch (NumberFormatException nfe) { objectsStrength[47] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[47].setText(Integer .toString(objectsStrength[47])); } } }); objects.add(new JLabel("DNA Restorer")); objects.add(objectsAvailCB[23]); objects.add(objectsStartAvailCB[23]); objects.add(objectsResearchTF[23]); objects.add(objectsStrengthTF[23]); objectsAvailCB[23].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[23] = 1; else objectsAvail[23] = 0; } }); objectsStartAvailCB[23].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[23] = 1; else objectsStartAvail[23] = 0; } }); objectsResearchTF[23].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[23].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[23] .getText()); if (input < 1) { objectsResearch[23] = 1; objectsResearchTF[23].setText(Integer .toString(objectsResearch[23])); } else objectsResearch[23] = input; } catch (NumberFormatException nfe) { objectsResearch[23] = Integer.parseInt(Gui.tempValue); objectsResearchTF[23].setText(Integer .toString(objectsResearch[23])); } } }); objectsStrengthTF[23].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsStrengthTF[23].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsStrengthTF[23] .getText()); if (input < 1) { objectsStrength[23] = 1; objectsStrengthTF[23].setText(Integer .toString(objectsStrength[23])); } else if (input > 99) { objectsStrength[23] = 99; objectsStrengthTF[23].setText(Integer .toString(objectsStrength[23])); } else objectsStrength[23] = input; } catch (NumberFormatException nfe) { objectsStrength[23] = Integer.parseInt(Gui.tempValue); objectsStrengthTF[23].setText(Integer .toString(objectsStrength[23])); } } }); // others objects.add(new JLabel("Research Computer")); objects.add(objectsAvailCB[40]); objects.add(objectsStartAvailCB[40]); objects.add(objectsResearchTF[40]); objects.next(); objectsAvailCB[40].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[40] = 1; else objectsAvail[40] = 0; } }); objectsStartAvailCB[40].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[40] = 1; else objectsStartAvail[40] = 0; } }); objectsResearchTF[40].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[40].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[40] .getText()); if (input < 1) { objectsResearch[40] = 1; objectsResearchTF[40].setText(Integer .toString(objectsResearch[40])); } else objectsResearch[40] = input; } catch (NumberFormatException nfe) { objectsResearch[40] = Integer.parseInt(Gui.tempValue); objectsResearchTF[40].setText(Integer .toString(objectsResearch[40])); } } }); objects.add(new JLabel("Atom Analyser")); objects.add(objectsAvailCB[41]); objects.add(objectsStartAvailCB[41]); objects.add(objectsResearchTF[41]); objects.next(); objectsAvailCB[41].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[41] = 1; else objectsAvail[41] = 0; } }); objectsStartAvailCB[41].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsStartAvail[41] = 1; else objectsStartAvail[41] = 0; } }); objectsResearchTF[41].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { ((JTextField) e.getComponent()).selectAll(); Gui.tempValue = objectsResearchTF[41].getText(); } @Override public void focusLost(FocusEvent e) { try { int input = Integer.parseInt(objectsResearchTF[41] .getText()); if (input < 1) { objectsResearch[41] = 1; objectsResearchTF[41].setText(Integer .toString(objectsResearch[41])); } else objectsResearch[41] = input; } catch (NumberFormatException nfe) { objectsResearch[41] = Integer.parseInt(Gui.tempValue); objectsResearchTF[41].setText(Integer .toString(objectsResearch[41])); } } }); objects.add(new JLabel("Training")); objects.add(objectsAvailCB[37]); objects.next(3); objectsAvailCB[37].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[37] = 1; else objectsAvail[37] = 0; } }); objects.add(new JLabel("Video Game")); objects.add(objectsAvailCB[57]); objectsAvailCB[57].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) objectsAvail[57] = 1; else objectsAvail[57] = 0; } }); } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabPopulation.java000066400000000000000000000251211522247547500260050ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class TabPopulation extends JScrollPane { private static final long serialVersionUID = -7707325095353711104L; // variables static ArrayList populationList = new ArrayList(); // components static GridPanel populations = new GridPanel(1); JPanel buttonsPanel = new JPanel(); JButton addButt = new JButton("Add"); JButton removeButt = new JButton("Remove"); static JLabel overflowWarning = new JLabel(); public TabPopulation() { // set scroll speed getVerticalScrollBar().setUnitIncrement(20); getHorizontalScrollBar().setUnitIncrement(20); populations.setInsets(0); setViewportView(populations); // population panel populations.add(buttonsPanel); buttonsPanel.add(addButt); addButt.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { addPopulation(); } }); buttonsPanel.add(removeButt); removeButt.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { removePopulation(); } }); } public static void addPopulation() { populations.remove(overflowWarning); final Population population = new Population(); populationList.add(population); // get the index of this particular arraylist member final int index = (populationList.indexOf(population)); // add month populationList.get(index).populationPanel .add(populationList.get(index).monthLabel); populationList.get(index).monthLabel .setToolTipText("The new population will apply starting from this month."); populationList.get(index).populationPanel .add(populationList.get(index).monthTF); populationList.get(index).monthTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 0) { populationList.get(index).month = Integer .parseInt(Gui.tempValue); populationList.get(index).monthTF .setText(Gui.tempValue); } else populationList.get(index).month = input; } catch (NumberFormatException nfe) { populationList.get(index).month = Integer .parseInt(Gui.tempValue); populationList.get(index).monthTF.setText(Gui.tempValue); } // make sure that there are no duplicate month entries // and all entries are in chronological order. for (int i = 0; i < populationList.size(); i++) { for (int ii = index; i < ii; i++) { if (populationList.get(i).month >= populationList .get(ii).month) { populationList.get(ii).month = populationList .get(i).month + 1; populationList.get(ii).monthTF.setText(Integer .toString(populationList.get(ii).month)); } } for (int ii = index; i > ii; ii++) { if (populationList.get(i).month <= populationList .get(ii).month) { populationList.get(i).month = populationList .get(ii).month + 1; populationList.get(i).monthTF.setText(Integer .toString(populationList.get(i).month)); } } } calculateNumberOfPatients(); } }); // add change populationList.get(index).populationPanel .add(populationList.get(index).changeLabel); populationList.get(index).changeLabel .setToolTipText("Each month, increase/decrease number of patients by this amount"); populationList.get(index).populationPanel .add(populationList.get(index).changeTF); populationList.get(index).changeTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); populationList.get(index).change = input; } catch (NumberFormatException nfe) { populationList.get(index).change = Integer .parseInt(Gui.tempValue); populationList.get(index).changeTF .setText(Gui.tempValue); } calculateNumberOfPatients(); } }); // add number of patients if (populationList.size() > 1) { populationList.get(index).populationPanel.add(populationList .get(index).spawnLabel); populationList.get(index).spawnLabel .setToolTipText("Number of patients that will arrive in this month. This number is then divided among competing hospitals"); } populations.add(populationList.get(index).populationPanel); populations.updateUI(); // set default for the first population if (populationList.size() == 1) { populationList.get(index).change = 4; populationList.get(index).changeTF.setText("4"); } // increase month with each new add if (populationList.size() > 1) { int lastMonth = populationList.get(index - 1).month; int month = lastMonth + 1; populationList.get(index).month = month; populationList.get(index).monthTF.setText(Integer.toString(month)); } calculateNumberOfPatients(); } public static void removePopulation() { populations.remove(overflowWarning); int lastIndex = populationList.size() - 1; if (lastIndex >= 0) { // remove panel populations.remove(populationList.get(lastIndex).populationPanel); populations.updateUI(); // remove object from the arraylist populationList.remove(lastIndex); } calculateNumberOfPatients(); } public static void calculateNumberOfPatients() { for (int i = 1; i < populationList.size(); i++) { int monthsDifference = (populationList.get(i).month) - (populationList.get(i - 1).month); int lastChange = populationList.get(i - 1).change; int lastSpawn = populationList.get(i - 1).spawn; int spawn = lastSpawn + lastChange * monthsDifference; populationList.get(i).spawn = spawn; populationList.get(i).spawnLabel.setText("Number of patients: " + Integer.toString(spawn)); } // give a warning if the last change is not 0. int size = populationList.size(); if (size > 0) { if (populationList.get(populationList.size() - 1).change > 0) { populations.add(overflowWarning); overflowWarning .setText("Warning: patient count will increase infinitely after month " + populationList.get(size - 1).month + "!"); } else if (populationList.get(populationList.size() - 1).change < 0) { populations.add(overflowWarning); overflowWarning .setText("Warning: patient count will decrease infinitely after month " + populationList.get(size - 1).month + "!"); } } else { populations.add(overflowWarning); overflowWarning .setText("Warning: You need to define at least one month to get any patients!"); } populations.updateUI(); } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/TabStaff.java000066400000000000000000001364111522247547500247230ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; import java.util.Random; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class TabStaff extends JScrollPane { private static final long serialVersionUID = -6211357935747302151L; VarManipulator variableManipulator = new VarManipulator(); // variables static ArrayList startStaffList = new ArrayList(); static ArrayList staffLevelsList = new ArrayList(); static int[] staffSalary = new int[4]; static int[] salaryAdd = new int[9]; // index 0,1,2 are not used. // components GridPanel staff = new GridPanel(1); JScrollPane scrollPane = new JScrollPane(staff); GridPanel salary = new GridPanel(1); JLabel salaryLabel = new JLabel(" Minimum salary"); JLabel salaryAddLabel = new JLabel(" Added salary"); static JTextField[] staffSalaryTF = new JTextField[4]; static JTextField[] salaryAddTF = new JTextField[9];// index 0,1,2 are not // used. static JPanel levels = new GridPanel(1); JPanel levelsButtons = new JPanel(); JButton addLevelsButt = new JButton("Add"); JButton removeLevelsButt = new JButton("Remove"); static GridPanel start = new GridPanel(1); JPanel startButtons = new JPanel(); JButton addStartButt = new JButton("Add"); JButton removeStartButt = new JButton("Remove"); public TabStaff() { // set scroll speed getVerticalScrollBar().setUnitIncrement(20); getHorizontalScrollBar().setUnitIncrement(20); salary.setInsets(0); start.setInsets(0); setViewportView(staff); // initializing members of checkbox and textfield arrays, else they will // be null. for (int i = 0; i < staffSalaryTF.length; i++) staffSalaryTF[i] = new JTextField(3); for (int i = 0; i < salaryAddTF.length; i++) salaryAddTF[i] = new JTextField(3); // salary panel staff.add(salary); salary.setBorder(BorderFactory.createTitledBorder("Salary")); salary.add(salaryLabel); salaryLabel.setToolTipText("Minimum salary for each staff type"); JPanel minSalary = new JPanel(); minSalary.add(new JLabel("Nurse:")); minSalary.add(staffSalaryTF[0]); staffSalaryTF[0].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 1) { staffSalary[0] = 1; tf.setText(Integer.toString(staffSalary[0])); } else staffSalary[0] = input; } catch (NumberFormatException nfe) { staffSalary[0] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); minSalary.add(new JLabel("Doctor:")); minSalary.add(staffSalaryTF[1]); staffSalaryTF[1].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 1) { staffSalary[1] = 1; tf.setText(Integer.toString(staffSalary[1])); } else staffSalary[1] = input; } catch (NumberFormatException nfe) { staffSalary[1] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); minSalary.add(new JLabel("Handyman:")); minSalary.add(staffSalaryTF[2]); staffSalaryTF[2].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 1) { staffSalary[2] = 1; tf.setText(Integer.toString(staffSalary[2])); } else staffSalary[2] = input; } catch (NumberFormatException nfe) { staffSalary[2] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); minSalary.add(new JLabel("Receptionist:")); minSalary.add(staffSalaryTF[3]); salary.add(minSalary); staffSalaryTF[3].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int input = Integer.parseInt(tf.getText()); if (input < 1) { staffSalary[3] = 1; tf.setText(Integer.toString(staffSalary[0])); } else staffSalary[3] = input; } catch (NumberFormatException nfe) { staffSalary[3] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); salary.add(salaryAddLabel); salaryAddLabel .setToolTipText("Salary modifiers for different doctor attributes"); JPanel addSalary = new JPanel(); addSalary.add(new JLabel("Junior:")); addSalary.add(salaryAddTF[3]); salaryAddTF[3].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { salaryAdd[3] = Integer.parseInt(tf.getText()); } catch (NumberFormatException nfe) { salaryAdd[3] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); addSalary.add(new JLabel("Doctor:")); addSalary.add(salaryAddTF[4]); salaryAddTF[4].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { salaryAdd[4] = Integer.parseInt(tf.getText()); } catch (NumberFormatException nfe) { salaryAdd[4] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); addSalary.add(new JLabel("Consultant:")); addSalary.add(salaryAddTF[7]); salaryAddTF[7].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { salaryAdd[7] = Integer.parseInt(tf.getText()); } catch (NumberFormatException nfe) { salaryAdd[7] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); addSalary.add(new JLabel("Surgeon:")); addSalary.add(salaryAddTF[5]); salaryAddTF[5].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { salaryAdd[5] = Integer.parseInt(tf.getText()); } catch (NumberFormatException nfe) { salaryAdd[5] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); addSalary.add(new JLabel("Psychiatrist:")); addSalary.add(salaryAddTF[6]); salaryAddTF[6].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { salaryAdd[6] = Integer.parseInt(tf.getText()); } catch (NumberFormatException nfe) { salaryAdd[6] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); addSalary.add(new JLabel("Researcher:")); addSalary.add(salaryAddTF[8]); salary.add(addSalary); salaryAddTF[8].addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { salaryAdd[8] = Integer.parseInt(tf.getText()); } catch (NumberFormatException nfe) { salaryAdd[8] = Integer.parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); // staff distribution staff.add(levels); levels.add(levelsButtons); levels.setBorder(BorderFactory.createTitledBorder("Staff distribution")); levelsButtons.add(addLevelsButt); addLevelsButt.addActionListener(new ActionListener() { // on click add button @Override public void actionPerformed(ActionEvent e) { addStaffLevels(); } }); levelsButtons.add(removeLevelsButt); removeLevelsButt.addActionListener(new ActionListener() { // on click remove button @Override public void actionPerformed(ActionEvent e) { removeStaffLevels(); } }); // starting staff panel staff.add(start); start.add(startButtons); start.setBorder(BorderFactory.createTitledBorder("Starting staff")); startButtons.add(addStartButt); addStartButt.addActionListener(new ActionListener() { // on click add button @Override public void actionPerformed(ActionEvent e) { addStartStaff(); } }); startButtons.add(removeStartButt); removeStartButt.addActionListener(new ActionListener() { // on click remove button @Override public void actionPerformed(ActionEvent e) { removeStartStaff(); } }); } public static void addStartStaff() { // creates a new startStaff object and adds it to the arraylist // not sure why it has to be final final StartStaff startStaff = new StartStaff(); startStaffList.add(startStaff); // get the index of this particular startStaff member final int index = (startStaffList.indexOf(startStaff)); // when staff member selection changes startStaffList.get(index).staffMemberCombo .addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JComboBox cb = (JComboBox) e.getSource(); if (cb.getSelectedItem() == "Doctor") { startStaffList.get(index).doctor = 1; startStaffList.get(index).nurse = 0; startStaffList.get(index).handyman = 0; startStaffList.get(index).receptionist = 0; startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).shrinkLabel); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).shrinkCB); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).surgeonLabel); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).surgeonCB); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).researcherLabel); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).researcherCB); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).skillLabel); startStaffList.get(index).startStaffPanel.add( startStaffList.get(index).skillTF); startStaffList.get(index).startStaffPanel .updateUI(); } else { startStaffList.get(index).doctor = 0; startStaffList.get(index).shrink = 0; startStaffList.get(index).surgeon = 0; startStaffList.get(index).researcher = 0; if (cb.getSelectedItem() == "Nurse") { startStaffList.get(index).nurse = 1; startStaffList.get(index).handyman = 0; startStaffList.get(index).receptionist = 0; } if (cb.getSelectedItem() == "Handyman") { startStaffList.get(index).handyman = 1; startStaffList.get(index).nurse = 0; startStaffList.get(index).receptionist = 0; } if (cb.getSelectedItem() == "Receptionist") { startStaffList.get(index).receptionist = 1; startStaffList.get(index).nurse = 0; startStaffList.get(index).handyman = 0; } startStaffList.get(index).startStaffPanel .remove(startStaffList.get(index).shrinkLabel); startStaffList.get(index).startStaffPanel .remove(startStaffList.get(index).shrinkCB); startStaffList.get(index).startStaffPanel .remove(startStaffList.get(index).surgeonLabel); startStaffList.get(index).startStaffPanel .remove(startStaffList.get(index).surgeonCB); startStaffList.get(index).startStaffPanel .remove(startStaffList.get(index).researcherLabel); startStaffList.get(index).startStaffPanel .remove(startStaffList.get(index).researcherCB); startStaffList.get(index).startStaffPanel .updateUI(); } } }); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).staffMemberCombo); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).shrinkLabel); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).shrinkCB); startStaffList.get(index).shrinkCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) startStaffList.get(index).shrink = 1; else startStaffList.get(index).shrink = 0; } }); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).surgeonLabel); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).surgeonCB); startStaffList.get(index).surgeonCB.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) startStaffList.get(index).surgeon = 1; else startStaffList.get(index).surgeon = 0; } }); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).researcherLabel); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).researcherCB); startStaffList.get(index).researcherCB .addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) startStaffList.get(index).researcher = 1; else startStaffList.get(index).researcher = 0; } }); startStaffList.get(index).startStaffPanel .add(startStaffList.get(index).skillLabel); startStaffList.get(index).skillLabel .setToolTipText("45 gives doctor, 90 gives consultant"); startStaffList.get(index).startStaffPanel.add( startStaffList.get(index).skillTF); startStaffList.get(index).skillTF.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int value = Integer.parseInt(tf.getText()); if (value > 100) { startStaffList.get(index).skill = 100; tf.setText("100"); } else if (value < 1) { startStaffList.get(index).skill = 1; tf.setText("1"); } else startStaffList.get(index).skill = value; } catch (NumberFormatException nfe) { startStaffList.get(index).skill = Integer .parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); startStaffList.get(index).startStaffPanel.updateUI(); start.add(startStaffList.get(index).startStaffPanel); start.updateUI(); } public static void removeStartStaff() { int lastIndex = startStaffList.size() - 1; if (lastIndex >= 0) { // remove the panel start.remove(startStaffList.get(lastIndex).startStaffPanel); start.updateUI(); // remove the object from the arraylist startStaffList.remove(lastIndex); } } public static void addStaffLevels() { final StaffLevels staffLevels = new StaffLevels(); staffLevelsList.add(staffLevels); // get the index of this particular arraylist member final int index = (staffLevelsList.indexOf(staffLevels)); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).monthLabel); staffLevelsList.get(index).monthLabel .setToolTipText("In which month the new staff distribution will take effect"); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).monthTF); staffLevelsList.get(index).monthTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int value = Integer.parseInt(tf.getText()); if (value >= 0) staffLevelsList.get(index).month = value; else { staffLevelsList.get(index).month = 0; tf.setText("0"); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).month = Integer .parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } // make sure that there are no duplicate month entries for (int i = 0; i < staffLevelsList.size(); i++) { for (int ii = index; i < ii; i++) { if (staffLevelsList.get(i).month == staffLevelsList .get(ii).month) { staffLevelsList.get(ii).month = staffLevelsList .get(i).month + 1; staffLevelsList.get(ii).monthTF .setText(Integer .toString(staffLevelsList .get(ii).month)); } } for (int ii = index; i > ii; ii++) { if (staffLevelsList.get(i).month == staffLevelsList .get(ii).month) { staffLevelsList.get(i).month = staffLevelsList .get(ii).month + 1; staffLevelsList.get(i).monthTF .setText(Integer .toString(staffLevelsList .get(i).month)); } } } } }); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).doctorsLabel); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).doctorsTF); staffLevelsList.get(index).doctorsTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int value = Integer.parseInt(tf.getText()); if (value >= 0) staffLevelsList.get(index).doctors = value; else { staffLevelsList.get(index).doctors = 0; tf.setText("0"); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).doctors = Integer .parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).nursesLabel); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).nursesTF); staffLevelsList.get(index).nursesTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int value = Integer.parseInt(tf.getText()); if (value >= 0) staffLevelsList.get(index).nurses = value; else { staffLevelsList.get(index).nurses = 0; tf.setText("0"); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).nurses = Integer .parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).handymenLabel); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).handymenTF); staffLevelsList.get(index).handymenTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int value = Integer.parseInt(tf.getText()); if (value >= 0) staffLevelsList.get(index).handymen = value; else { staffLevelsList.get(index).handymen = 0; tf.setText("0"); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).handymen = Integer .parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).receptionistsLabel); staffLevelsList.get(index).staffLevelsPanel.add( staffLevelsList.get(index).receptionistsTF); staffLevelsList.get(index).receptionistsTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { int value = Integer.parseInt(tf.getText()); if (value >= 0) staffLevelsList.get(index).receptionists = value; else { staffLevelsList.get(index).receptionists = 0; tf.setText("0"); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).receptionists = Integer .parseInt(Gui.tempValue); tf.setText(Gui.tempValue); } } }); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).shrinkRateLabel); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).shrinkRateTF); staffLevelsList.get(index).shrinkRateTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { String input = tf.getText(); // if input matches 1 divided by any number if (input.matches("1/\\d+")) { // remove the "1/" so the value can be saved // properly input = (input.replaceFirst("1/", "")); int value = Integer.parseInt(input); staffLevelsList.get(index).shrinkRate = value; } // if input is not a fraction, but still a number else if (input.matches("\\d+")) { int value = Integer.parseInt(input); staffLevelsList.get(index).shrinkRate = value; tf.setText("1/" + value); } else { staffLevelsList.get(index).shrinkRate = Integer .parseInt(Gui.tempValue.replaceFirst( "1/", "")); tf.setText(Gui.tempValue); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).shrinkRate = Integer .parseInt(Gui.tempValue.replaceFirst("1/", "")); tf.setText(Gui.tempValue); } } }); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).surgeonRateLabel); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).surgeonRateTF); staffLevelsList.get(index).surgeonRateTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { String input = tf.getText(); // if input matches 1 divided by any number if (input.matches("1/\\d+")) { // remove the "1/" so the value can be saved // properly input = (input.replaceFirst("1/", "")); int value = Integer.parseInt(input); staffLevelsList.get(index).surgeonRate = value; } // if input is not a fraction, but still a number else if (input.matches("\\d+")) { int value = Integer.parseInt(input); staffLevelsList.get(index).surgeonRate = value; staffLevelsList.get(index).surgeonRateTF .setText("1/" + value); } else { staffLevelsList.get(index).surgeonRate = Integer .parseInt(Gui.tempValue.replaceFirst( "1/", "")); tf.setText(Gui.tempValue); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).surgeonRate = Integer .parseInt(Gui.tempValue.replaceFirst("1/", "")); tf.setText(Gui.tempValue); } } }); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).researcherRateLabel); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).researcherRateTF); staffLevelsList.get(index).researcherRateTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { String input = tf.getText(); // if input matches 1 divided by any number if (input.matches("1/\\d+")) { // remove the "1/" so the value can be saved // properly input = (input.replaceFirst("1/", "")); int value = Integer.parseInt(input); staffLevelsList.get(index).researcherRate = value; } // if input is not a fraction, but still a number else if (input.matches("\\d+")) { int value = Integer.parseInt(input); staffLevelsList.get(index).researcherRate = value; staffLevelsList.get(index).researcherRateTF .setText("1/" + value); } else { staffLevelsList.get(index).researcherRate = Integer .parseInt(Gui.tempValue.replaceFirst( "1/", "")); tf.setText(Gui.tempValue); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).researcherRate = Integer .parseInt(Gui.tempValue.replaceFirst("1/", "")); tf.setText(Gui.tempValue); } } }); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).consultantRateLabel); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).consultantRateTF); staffLevelsList.get(index).consultantRateTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { String input = tf.getText(); // if input matches 1 divided by any number if (input.matches("1/\\d+")) { // remove the "1/" so the value can be saved // properly input = (input.replaceFirst("1/", "")); int value = Integer.parseInt(input); staffLevelsList.get(index).consultantRate = value; } // if input is not a fraction, but still a number else if (input.matches("\\d+")) { int value = Integer.parseInt(input); staffLevelsList.get(index).consultantRate = value; staffLevelsList.get(index).consultantRateTF .setText("1/" + value); } else { staffLevelsList.get(index).consultantRate = Integer .parseInt(Gui.tempValue.replaceFirst( "1/", "")); tf.setText(Gui.tempValue); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).consultantRate = Integer .parseInt(Gui.tempValue.replaceFirst("1/", "")); tf.setText(Gui.tempValue); } } }); staffLevelsList.get(index).staffLevelsPanel.add(staffLevelsList .get(index).juniorRateLabel); staffLevelsList.get(index).staffLevelsPanel.add( staffLevelsList.get(index).juniorRateTF); staffLevelsList.get(index).juniorRateTF .addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); tf.selectAll(); Gui.tempValue = tf.getText(); } @Override public void focusLost(FocusEvent e) { JTextField tf = (JTextField) e.getComponent(); try { String input = tf.getText(); // if input matches 1 divided by any number if (input.matches("1/\\d+")) { // remove the "1/" so the value can be saved // properly input = (input.replaceFirst("1/", "")); int value = Integer.parseInt(input); staffLevelsList.get(index).juniorRate = value; } // if input is not a fraction, but still a number else if (input.matches("\\d+")) { int value = Integer.parseInt(input); staffLevelsList.get(index).juniorRate = value; staffLevelsList.get(index).juniorRateTF .setText("1/" + value); } else { staffLevelsList.get(index).juniorRate = Integer .parseInt(Gui.tempValue.replaceFirst( "1/", "")); tf.setText(Gui.tempValue); } } catch (NumberFormatException nfe) { staffLevelsList.get(index).juniorRate = Integer .parseInt(Gui.tempValue.replaceFirst("1/", "")); tf.setText(Gui.tempValue); } } }); levels.add(staffLevelsList.get(index).staffLevelsPanel); levels.updateUI(); // increase starting month with each new add if (staffLevelsList.size() > 1) { staffLevelsList.get(index).month = staffLevelsList.get(index - 1).month + 6; int monthPlus = Integer .parseInt(staffLevelsList.get(index - 1).monthTF.getText()) + 6; staffLevelsList.get(index).monthTF.setText(Integer .toString(monthPlus)); } // randomize staff distribution int randomInt = (new Random().nextInt(5) - 2); staffLevelsList.get(index).doctors += randomInt; staffLevelsList.get(index).doctorsTF.setText(Integer .toString(staffLevelsList.get(index).doctors)); randomInt = (new Random().nextInt(4) - 5); staffLevelsList.get(index).nurses += randomInt; staffLevelsList.get(index).nursesTF.setText(Integer .toString(staffLevelsList.get(index).nurses)); randomInt = (new Random().nextInt(3)); staffLevelsList.get(index).handymen += randomInt; staffLevelsList.get(index).handymenTF.setText(Integer .toString(staffLevelsList.get(index).handymen)); randomInt = (new Random().nextInt(4) - 1); staffLevelsList.get(index).receptionists += randomInt; staffLevelsList.get(index).receptionistsTF.setText(Integer .toString(staffLevelsList.get(index).receptionists)); } public static void removeStaffLevels() { int lastIndex = staffLevelsList.size() - 1; if (lastIndex >= 0) { // remove panel levels.remove(staffLevelsList.get(lastIndex).staffLevelsPanel); levels.updateUI(); // remove object from the arraylist staffLevelsList.remove(lastIndex); } } } CorsixTH-0.70.0/LevelEdit/src/com/corsixth/leveledit/VarManipulator.java000066400000000000000000001376541522247547500262070ustar00rootroot00000000000000/* Copyright (c) 2013 Koanxd aka Snowblind Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package com.corsixth.leveledit; import javax.swing.JCheckBox; import javax.swing.JTextField; public class VarManipulator { // TODO: the arguments are weird. they should probably refer to an actual // variable, // instead of using a string which can cause errors. public void setValue(String variable, String value) { if ("name".equals(variable)) { TabGeneral.name = value; TabGeneral.nameTF.setText(value); } else if ("mapFile".equals(variable)) { TabGeneral.mapFile = value; TabGeneral.mapFileTF.setText(value); } else if ("briefing".equals(variable)) { TabGeneral.briefing = value; TabGeneral.briefingTA.setText(value); } else if ("startCash".equals(variable)) { TabGeneral.startCash = Integer.parseInt(value); TabGeneral.startCashTF.setText(value); } else if ("interest".equals(variable)) { TabGeneral.interest = Double.parseDouble(value); TabGeneral.interestTF.setText(value); } else if ("drugStartRating".equals(variable)) { TabGeneral.drugStartRating = Integer.parseInt(value); TabGeneral.drugStartRatingTF.setText(value); } else if ("drugImproveRate".equals(variable)) { TabGeneral.drugImproveRate = Integer.parseInt(value); TabGeneral.drugImproveRateTF.setText(value); } else if ("drugStartCost".equals(variable)) { TabGeneral.drugStartCost = Integer.parseInt(value); TabGeneral.drugStartCostTF.setText(value); } else if ("drugMinCost".equals(variable)) { TabGeneral.drugMinCost = Integer.parseInt(value); TabGeneral.drugMinCostTF.setText(value); } else if ("landCostPerTile".equals(variable)) { TabGeneral.landCostPerTile = Integer.parseInt(value); TabGeneral.landCostPerTileTF.setText(value); } else if ("autopsyResearchPercent".equals(variable)) { TabGeneral.autopsyResearchPercent = Integer.parseInt(value); TabGeneral.autopsyResearchPercentTF.setText(value); } else if ("autopsyRepHitPercent".equals(variable)) { TabGeneral.autopsyRepHitPercent = Integer.parseInt(value); TabGeneral.autopsyRepHitPercentTF.setText(value); } else if ("researchUpgradeCost".equals(variable)) { TabGeneral.researchUpgradeCost = Integer.parseInt(value); TabGeneral.researchUpgradeCostTF.setText(value); } else if ("researchUpgradeIncrementCost".equals(variable)) { TabGeneral.researchUpgradeIncrementCost = Integer.parseInt(value); TabGeneral.researchUpgradeIncrementCostTF.setText(value); } else if ("strengthIncrement".equals(variable)) { TabGeneral.strengthIncrement = Integer.parseInt(value); TabGeneral.strengthIncrementTF.setText(value); } else if ("maxStrength".equals(variable)) { TabGeneral.maxStrength = Integer.parseInt(value); TabGeneral.maxStrengthTF.setText(value); } else if ("cansOfCoke".equals(variable)) { TabAwards.cansOfCoke = Integer.parseInt(value); TabAwards.cansOfCokeTF.setText(value); } else if ("cansOfCokeBonus".equals(variable)) { TabAwards.cansOfCokeBonus = Integer.parseInt(value); TabAwards.cansOfCokeBonusTF.setText(value); } else if ("reputation".equals(variable)) { TabAwards.reputation = Integer.parseInt(value); TabAwards.reputationTF.setText(value); } else if ("reputationBonus".equals(variable)) { TabAwards.reputationBonus = Integer.parseInt(value); TabAwards.reputationBonusTF.setText(value); } else if ("noDeathsBonus".equals(variable)) { TabAwards.noDeathsBonus = Integer.parseInt(value); TabAwards.noDeathsBonusTF.setText(value); } } // set value on a certain index of an array // same as above with the string arguments. public void setValueForTable(String variable, int index, int value) { if ("visuals".equals(variable)) { TabDiseases.visuals[index] = value; if (value == 0) { TabDiseases.visualsCB[index].setSelected(false); TabDiseases.visuals[index] = 0; } else { TabDiseases.visualsCB[index].setSelected(true); TabDiseases.visuals[index] = 1; } } else if ("nonVisuals".equals(variable)) { if (value == 0) { TabDiseases.nonVisualsCB[index].setSelected(false); TabDiseases.nonVisuals[index] = 0; } else { TabDiseases.nonVisualsCB[index].setSelected(true); TabDiseases.nonVisuals[index] = 1; } } else if ("known".equals(variable)) { if (value == 1) { TabDiseases.knownCB[index].setSelected(true); TabDiseases.known[index] = 1; } else { TabDiseases.knownCB[index].setSelected(false); TabDiseases.known[index] = 0; } } else if ("visualsAvailable".equals(variable)) { TabDiseases.visualsAvailableTF[index].setText(Integer .toString(value)); TabDiseases.visualsAvailable[index] = value; } else if ("expertiseResearch".equals(variable)) { TabDiseases.expertiseResearchTF[index].setText(Integer .toString(value)); TabDiseases.expertiseResearch[index] = value; } else if ("objectsStrength".equals(variable)) { TabObjects.objectsStrengthTF[index] .setText(Integer.toString(value)); TabObjects.objectsStrength[index] = value; } else if ("objectsResearch".equals(variable)) { TabObjects.objectsResearchTF[index] .setText(Integer.toString(value)); TabObjects.objectsResearch[index] = value; } else if ("objectsAvail".equals(variable)) { if (value == 1) { TabObjects.objectsAvailCB[index].setSelected(true); TabObjects.objectsAvail[index] = 1; } else { TabObjects.objectsAvailCB[index].setSelected(false); TabObjects.objectsAvail[index] = 0; } } else if ("objectsStartAvail".equals(variable)) { if (value == 1) { TabObjects.objectsStartAvailCB[index].setSelected(true); TabObjects.objectsStartAvail[index] = 1; } else { TabObjects.objectsStartAvailCB[index].setSelected(false); TabObjects.objectsStartAvail[index] = 0; } } else if ("startStaff.doctor".equals(variable)) { if (value == 1) { // make sure that only as many objects as needed are created if (index - 1 == TabStaff.startStaffList.size()) TabStaff.addStartStaff(); TabStaff.startStaffList.get(index - 1).doctor = 1; TabStaff.startStaffList.get(index - 1).staffMemberCombo .setSelectedItem("Doctor"); } } else if ("startStaff.nurse".equals(variable)) { if (value == 1) { // make sure that only as many objects as needed are created if (index - 1 == TabStaff.startStaffList.size()) TabStaff.addStartStaff(); TabStaff.startStaffList.get(index - 1).nurse = 1; TabStaff.startStaffList.get(index - 1).staffMemberCombo .setSelectedItem("Nurse"); } } else if ("startStaff.handyman".equals(variable)) { if (value == 1) { // make sure that only as many objects as needed are created if (index - 1 == TabStaff.startStaffList.size()) TabStaff.addStartStaff(); TabStaff.startStaffList.get(index - 1).handyman = 1; TabStaff.startStaffList.get(index - 1).staffMemberCombo .setSelectedItem("Handyman"); } } else if ("startStaff.receptionist".equals(variable)) { if (value == 1) { // make sure that only as many objects as needed are created if (index - 1 == TabStaff.startStaffList.size()) TabStaff.addStartStaff(); TabStaff.startStaffList.get(index - 1).receptionist = 1; TabStaff.startStaffList.get(index - 1).staffMemberCombo .setSelectedItem("Receptionist"); } } else if ("startStaff.skill".equals(variable)) { TabStaff.startStaffList.get(index - 1).skill = value; TabStaff.startStaffList.get(index - 1).skillTF.setText(Integer .toString(value)); } else if ("startStaff.shrink".equals(variable)) { // making sure that the staff member has been created if (TabStaff.startStaffList.size() > index - 1) { // making sure that the staff member is a doctor before adding // other qualifications. if (value == 1 && TabStaff.startStaffList.get(index - 1).doctor == 1) { TabStaff.startStaffList.get(index - 1).shrink = 1; TabStaff.startStaffList.get(index - 1).shrinkCB .setSelected(true); } else { TabStaff.startStaffList.get(index - 1).shrink = 0; TabStaff.startStaffList.get(index - 1).shrinkCB .setSelected(false); } } } else if ("startStaff.surgeon".equals(variable)) { // making sure that the staff member has been created if (TabStaff.startStaffList.size() > index - 1) { // making sure that the staff member is a doctor before adding // other qualifications. if (value == 1 && TabStaff.startStaffList.get(index - 1).doctor == 1) { TabStaff.startStaffList.get(index - 1).surgeon = 1; TabStaff.startStaffList.get(index - 1).surgeonCB .setSelected(true); } else { TabStaff.startStaffList.get(index - 1).surgeon = 0; TabStaff.startStaffList.get(index - 1).surgeonCB .setSelected(false); } } } else if ("startStaff.researcher".equals(variable)) { // making sure that the staff member has been created if (TabStaff.startStaffList.size() > index - 1) { // making sure that the staff member is a doctor before adding // other qualifications. if (value == 1) { TabStaff.startStaffList.get(index - 1).researcher = 1; TabStaff.startStaffList.get(index - 1).researcherCB .setSelected(true); } else { TabStaff.startStaffList.get(index - 1).researcher = 0; TabStaff.startStaffList.get(index - 1).researcherCB .setSelected(false); } } } else if ("staffSalary".equals(variable)) { TabStaff.staffSalary[index] = value; TabStaff.staffSalaryTF[index].setText(Integer.toString(value)); } else if ("salaryAdd".equals(variable)) { TabStaff.salaryAdd[index] = value; TabStaff.salaryAddTF[index].setText(Integer.toString(value)); } else if ("staffLevels.month".equals(variable)) { // make sure that only as many objects as needed are created if (index == TabStaff.staffLevelsList.size()) TabStaff.addStaffLevels(); TabStaff.staffLevelsList.get(index).month = value; TabStaff.staffLevelsList.get(index).monthTF.setText(Integer .toString(value)); } else if ("staffLevels.nurses".equals(variable)) { TabStaff.staffLevelsList.get(index).nurses = value; TabStaff.staffLevelsList.get(index).nursesTF.setText(Integer .toString(value)); } else if ("staffLevels.doctors".equals(variable)) { TabStaff.staffLevelsList.get(index).doctors = value; TabStaff.staffLevelsList.get(index).doctorsTF.setText(Integer .toString(value)); } else if ("staffLevels.handymen".equals(variable)) { TabStaff.staffLevelsList.get(index).handymen = value; TabStaff.staffLevelsList.get(index).handymenTF.setText(Integer .toString(value)); } else if ("staffLevels.receptionists".equals(variable)) { TabStaff.staffLevelsList.get(index).receptionists = value; TabStaff.staffLevelsList.get(index).receptionistsTF.setText(Integer .toString(value)); } else if ("staffLevels.shrinkRate".equals(variable)) { TabStaff.staffLevelsList.get(index).shrinkRate = value; TabStaff.staffLevelsList.get(index).shrinkRateTF.setText("1/" + Integer.toString(value)); } else if ("staffLevels.surgeonRate".equals(variable)) { TabStaff.staffLevelsList.get(index).surgeonRate = value; TabStaff.staffLevelsList.get(index).surgeonRateTF.setText("1/" + Integer.toString(value)); } else if ("staffLevels.researcherRate".equals(variable)) { TabStaff.staffLevelsList.get(index).researcherRate = value; TabStaff.staffLevelsList.get(index).researcherRateTF.setText("1/" + Integer.toString(value)); } else if ("staffLevels.consultantRate".equals(variable)) { TabStaff.staffLevelsList.get(index).consultantRate = value; TabStaff.staffLevelsList.get(index).consultantRateTF.setText("1/" + Integer.toString(value)); } else if ("staffLevels.juniorRate".equals(variable)) { TabStaff.staffLevelsList.get(index).juniorRate = value; TabStaff.staffLevelsList.get(index).juniorRateTF.setText("1/" + Integer.toString(value)); } else if ("emergency.Random".equals(variable)) TabEmergencies.randomEmergenciesRB.doClick(); else if ("emergencyInterval".equals(variable)) { TabEmergencies.semiRandomEmergenciesRB.doClick(); TabEmergencies.emergencyInterval = value; TabEmergencies.emergencyIntervalTF.setText(Integer.toString(value)); } else if ("emergencyIntervalVariance".equals(variable)) { TabEmergencies.emergencyIntervalVariance = value; TabEmergencies.emergencyIntervalVarianceTF.setText(Integer .toString(value)); } else if ("emergency.startMonth".equals(variable)) { // make sure that only as many objects as needed are created if (index == TabEmergencies.emergencyList.size()) TabEmergencies.addEmergency(); TabEmergencies.emergencyList.get(index).startMonth = value; TabEmergencies.emergencyList.get(index).startMonthTF .setText(Integer.toString(value)); } else if ("emergency.endMonth".equals(variable)) { TabEmergencies.emergencyList.get(index).endMonth = value; TabEmergencies.emergencyList.get(index).endMonthTF.setText(Integer .toString(value)); } else if ("emergency.minPatients".equals(variable)) { TabEmergencies.emergencyList.get(index).minPatients = value; TabEmergencies.emergencyList.get(index).minPatientsTF .setText(Integer.toString(value)); } else if ("emergency.maxPatients".equals(variable)) { TabEmergencies.emergencyList.get(index).maxPatients = value; TabEmergencies.emergencyList.get(index).maxPatientsTF .setText(Integer.toString(value)); } else if ("emergency.illness".equals(variable)) { if (value != 0) { TabEmergencies.emergencyList.get(index).illness = value; TabEmergencies.emergencyList.get(index).illnessCombo .setSelectedItem(TabDiseases.arDiseases[value].name); } } else if ("emergency.percWin".equals(variable)) { TabEmergencies.emergencyList.get(index).percWin = value; TabEmergencies.emergencyList.get(index).percWinTF.setText(Integer .toString(value)); } else if ("emergency.bonus".equals(variable)) { TabEmergencies.emergencyList.get(index).bonus = value; TabEmergencies.emergencyList.get(index).bonusTF.setText(Integer .toString(value)); } else if ("quake.startMonth".equals(variable)) { // make sure that only as many objects as needed are created if (index == TabEarthquakes.quakeList.size()) TabEarthquakes.addQuake(); TabEarthquakes.quakeList.get(index).startMonth = value; TabEarthquakes.quakeList.get(index).startMonthTF.setText(Integer .toString(value)); } else if ("quake.endMonth".equals(variable)) { TabEarthquakes.quakeList.get(index).endMonth = value; TabEarthquakes.quakeList.get(index).endMonthTF.setText(Integer .toString(value)); } else if ("quake.severity".equals(variable)) { TabEarthquakes.quakeList.get(index).severity = value; TabEarthquakes.quakeList.get(index).severityTF.setText(Integer .toString(value)); } else if ("population.month".equals(variable)) { // make sure that only as many objects as needed are created if (index == TabPopulation.populationList.size()) TabPopulation.addPopulation(); TabPopulation.populationList.get(index).month = value; TabPopulation.populationList.get(index).monthTF.setText(Integer .toString(value)); } else if ("population.change".equals(variable)) { TabPopulation.populationList.get(index).change = value; TabPopulation.populationList.get(index).changeTF.setText(Integer .toString(value)); } } // set value for win/lose criteria. // same as above with the string arguments. public void setCriteria(String variable, boolean exists, int value, int value2) { if ("winCriteria.value".equals(variable)) { if (value == 1) { TabGoals.winReputation = exists; TabGoals.minReputation = value2; TabGoals.winReputationCB.setSelected(exists); TabGoals.minReputationTF.setText(Integer.toString(value2)); } if (value == 2) { TabGoals.winBalance = exists; TabGoals.minBalance = value2; TabGoals.winBalanceCB.setSelected(exists); TabGoals.minBalanceTF.setText(Integer.toString(value2)); } if (value == 3) { TabGoals.winPercentage = exists; TabGoals.minPercentage = value2; TabGoals.winPercentageCB.setSelected(exists); TabGoals.minPercentageTF.setText(Integer.toString(value2)); } if (value == 4) { TabGoals.winCureCount = exists; TabGoals.minCureCount = value2; TabGoals.winCureCountCB.setSelected(exists); TabGoals.minCureCountTF.setText(Integer.toString(value2)); } if (value == 6) { TabGoals.winValue = exists; TabGoals.minValue = value2; TabGoals.winValueCB.setSelected(exists); TabGoals.minValueTF.setText(Integer.toString(value2)); } } else if ("loseCriteria.value".equals(variable)) { if (value == 1) { TabGoals.loseReputation = exists; TabGoals.maxReputation = value2; TabGoals.loseReputationCB.setSelected(exists); TabGoals.maxReputationTF.setText(Integer.toString(value2)); } if (value == 2) { TabGoals.loseBalance = exists; TabGoals.maxBalance = value2; TabGoals.loseBalanceCB.setSelected(exists); TabGoals.maxBalanceTF.setText(Integer.toString(value2)); } if (value == 5) { TabGoals.losePercentageKilled = exists; TabGoals.minPercentageKilled = value2; TabGoals.losePercentageKilledCB.setSelected(exists); TabGoals.minPercentageKilledTF .setText(Integer.toString(value2)); } } else if ("loseCriteria.bound".equals(variable)) { if (value == 1 && TabGoals.loseReputation == true) { TabGoals.warnReputation = value2; TabGoals.warnReputationTF.setText(Integer.toString(value2)); } if (value == 2 && TabGoals.loseBalance == true) { TabGoals.warnBalance = value2; TabGoals.warnBalanceTF.setText(Integer.toString(value2)); } if (value == 5 && TabGoals.losePercentageKilled == true) { TabGoals.warnPercentageKilled = value2; TabGoals.warnPercentageKilledTF.setText(Integer .toString(value2)); } } } // set everything to default public void setDefault() { clearLists(); setDefaultTF(TabGeneral.nameTF); setDefaultTF(TabGeneral.mapFileTF); setDefaultTF(TabGeneral.startCashTF); setDefaultTF(TabGeneral.interestTF); setDefaultTF(TabGeneral.drugStartRatingTF); setDefaultTF(TabGeneral.drugImproveRateTF); setDefaultTF(TabGeneral.drugStartCostTF); setDefaultTF(TabGeneral.drugMinCostTF); setDefaultTF(TabGeneral.landCostPerTileTF); setDefaultTF(TabGeneral.autopsyResearchPercentTF); setDefaultTF(TabGeneral.autopsyRepHitPercentTF); setDefaultTF(TabGeneral.researchUpgradeCostTF); setDefaultTF(TabGeneral.researchUpgradeIncrementCostTF); setDefaultTF(TabGeneral.strengthIncrementTF); setDefaultTF(TabGeneral.maxStrengthTF); setDefaultTF(TabEmergencies.emergencyIntervalTF); setDefaultTF(TabEmergencies.emergencyIntervalVarianceTF); // briefing TabGeneral.briefing = TabGeneral.BRIEFING; TabGeneral.briefingTA.setText(TabGeneral.BRIEFING); // awards TabAwards.cansOfCoke = TabAwards.CANS_OF_COKE; TabAwards.cansOfCokeTF .setText(Integer.toString(TabAwards.CANS_OF_COKE)); TabAwards.cansOfCokeBonus = TabAwards.CANS_OF_COKE_BONUS; TabAwards.cansOfCokeBonusTF.setText(Integer .toString(TabAwards.CANS_OF_COKE_BONUS)); TabAwards.reputation = TabAwards.REPUTATION; TabAwards.reputationTF.setText(Integer.toString(TabAwards.REPUTATION)); TabAwards.reputationBonus = TabAwards.REPUTATION_BONUS; TabAwards.reputationBonusTF.setText(Integer .toString(TabAwards.REPUTATION_BONUS)); TabAwards.noDeathsBonus = TabAwards.NO_DEATHS_BONUS; TabAwards.noDeathsBonusTF.setText(Integer .toString(TabAwards.NO_DEATHS_BONUS)); setCriteria("winCriteria.value", false, 1, TabGoals.MIN_REPUTATION); setCriteria("winCriteria.value", false, 2, TabGoals.MIN_BALANCE); setCriteria("winCriteria.value", false, 3, TabGoals.MIN_PERCENTAGE); setCriteria("winCriteria.value", false, 4, TabGoals.MIN_CURE_COUNT); setCriteria("winCriteria.value", false, 6, TabGoals.MIN_VALUE); setCriteria("loseCriteria.value", false, 1, TabGoals.MAX_REPUTATION); setCriteria("loseCriteria.value", false, 2, TabGoals.MAX_BALANCE); setCriteria("loseCriteria.value", false, 5, TabGoals.MIN_PERCENTAGE_KILLED); TabGoals.warnReputation = TabGoals.maxReputation + 50; TabGoals.warnReputationTF.setText(Integer .toString(TabGoals.warnReputation)); TabGoals.warnBalance = TabGoals.maxBalance + 10000; TabGoals.warnBalanceTF.setText(Integer.toString(TabGoals.warnBalance)); TabGoals.warnPercentageKilled = TabGoals.minPercentageKilled / 2; TabGoals.warnPercentageKilledTF.setText(Integer .toString(TabGoals.warnPercentageKilled)); TabEmergencies.controlledEmergenciesRB.doClick(); TabStaff.addStaffLevels(); TabPopulation.addPopulation(); TabPopulation.addPopulation(); for (JTextField visualsAvailableTF : TabDiseases.visualsAvailableTF) { setDefaultTF(visualsAvailableTF); } for (JCheckBox visualsCB : TabDiseases.visualsCB) { setDefaultCB(visualsCB); } for (JCheckBox nonVisualsCB : TabDiseases.nonVisualsCB) { setDefaultCB(nonVisualsCB); } for (JCheckBox knownCB : TabDiseases.knownCB) { setDefaultCB(knownCB); } for (JTextField expertiseResearchTF : TabDiseases.expertiseResearchTF) { setDefaultTF(expertiseResearchTF); } for (JCheckBox objectsAvailCB : TabObjects.objectsAvailCB) { setDefaultCB(objectsAvailCB); } for (JCheckBox objectsStartAvailCB : TabObjects.objectsStartAvailCB) { setDefaultCB(objectsStartAvailCB); } for (JTextField objectsResearchTF : TabObjects.objectsResearchTF) { setDefaultTF(objectsResearchTF); } for (JTextField objectsStrengthTF : TabObjects.objectsStrengthTF) { setDefaultTF(objectsStrengthTF); } for (JTextField staffSalaryTF : TabStaff.staffSalaryTF) { setDefaultTF(staffSalaryTF); } // index 0,1,2 are not used. start from 3 for (int i = 3; i < TabStaff.salaryAddTF.length; i++) setDefaultTF(TabStaff.salaryAddTF[i]); } // clears dynamic arrays (arraylists). called by setDefault. public void clearLists() { for (; TabStaff.startStaffList.size() > 0;) TabStaff.removeStartStaff(); for (; TabStaff.staffLevelsList.size() > 0;) TabStaff.removeStaffLevels(); for (; TabEmergencies.emergencyList.size() > 0;) TabEmergencies.removeEmergency(); for (; TabEarthquakes.quakeList.size() > 0;) TabEarthquakes.removeQuake(); for (; TabPopulation.populationList.size() > 0;) TabPopulation.removePopulation(); } // this method is called by setDefault. // in the future, it could be called by rightclicking an individual // textfield. // then again, that can be handled locally, instead of here. // i don't like how setDefault is split into several methods. // argument should probably refer to a variable, instead of a component. public void setDefaultTF(JTextField tf) { if (tf == TabGeneral.nameTF) setValue("name", TabGeneral.NAME); else if (tf == TabGeneral.mapFileTF) setValue("mapFile", TabGeneral.MAP_FILE); // else if (tf == briefingTF) // setValue("briefing", BRIEFING); else if (tf == TabGeneral.startCashTF) setValue("startCash", Integer.toString(TabGeneral.START_CASH)); else if (tf == TabGeneral.interestTF) setValue("interest", Double.toString(TabGeneral.INTEREST)); else if (tf == TabGeneral.drugStartRatingTF) setValue("drugStartRating", Integer.toString(TabGeneral.DRUG_START_RATING)); else if (tf == TabGeneral.drugImproveRateTF) setValue("drugImproveRate", Integer.toString(TabGeneral.DRUG_IMPROVE_RATE)); else if (tf == TabGeneral.drugStartCostTF) setValue("drugStartCost", Integer.toString(TabGeneral.DRUG_START_COST)); else if (tf == TabGeneral.drugMinCostTF) setValue("drugMinCost", Integer.toString(TabGeneral.DRUG_MIN_COST)); else if (tf == TabGeneral.landCostPerTileTF) setValue("landCostPerTile", Integer.toString(TabGeneral.LAND_COST_PER_TILE)); else if (tf == TabGeneral.autopsyResearchPercentTF) setValue("autopsyResearchPercent", Integer.toString(TabGeneral.AUTOPSY_RESEARCH_PERCENT)); else if (tf == TabGeneral.autopsyRepHitPercentTF) setValue("autopsyRepHitPercent", Integer.toString(TabGeneral.AUTOPSY_REPHIT_PERCENT)); else if (tf == TabGeneral.researchUpgradeCostTF) setValue("researchUpgradeCost", Integer.toString(TabGeneral.RESEARCH_UPGRADE_COST)); else if (tf == TabGeneral.researchUpgradeIncrementCostTF) setValue( "researchUpgradeIncrementCost", Integer.toString(TabGeneral.RESEARCH_UPGRADE_INCREMENT_COST)); else if (tf == TabGeneral.strengthIncrementTF) setValue("strengthIncrement", Integer.toString(TabGeneral.STRENGTH_INCREMENT)); else if (tf == TabGeneral.maxStrengthTF) setValue("maxStrength", Integer.toString(TabGeneral.MAX_STRENGTH)); else if (tf == TabEmergencies.emergencyIntervalTF) { TabEmergencies.emergencyIntervalTF.setText("120"); TabEmergencies.emergencyInterval = 120; } else if (tf == TabEmergencies.emergencyIntervalVarianceTF) { TabEmergencies.emergencyIntervalVarianceTF.setText("30"); TabEmergencies.emergencyIntervalVariance = 30; } else if (TabDiseases.visualsAvailableTF[0] == tf) setValueForTable("visualsAvailable", 0, 0); else if (TabDiseases.visualsAvailableTF[1] == tf) setValueForTable("visualsAvailable", 1, 12); else if (TabDiseases.visualsAvailableTF[2] == tf) setValueForTable("visualsAvailable", 2, 3); else if (TabDiseases.visualsAvailableTF[3] == tf) setValueForTable("visualsAvailable", 3, 12); else if (TabDiseases.visualsAvailableTF[4] == tf) setValueForTable("visualsAvailable", 4, 18); else if (TabDiseases.visualsAvailableTF[5] == tf) setValueForTable("visualsAvailable", 5, 6); else if (TabDiseases.visualsAvailableTF[6] == tf) setValueForTable("visualsAvailable", 6, 0); else if (TabDiseases.visualsAvailableTF[7] == tf) setValueForTable("visualsAvailable", 7, 6); else if (TabDiseases.visualsAvailableTF[8] == tf) setValueForTable("visualsAvailable", 8, 12); else if (TabDiseases.visualsAvailableTF[9] == tf) setValueForTable("visualsAvailable", 9, 0); else if (TabDiseases.visualsAvailableTF[10] == tf) setValueForTable("visualsAvailable", 10, 18); else if (TabDiseases.visualsAvailableTF[11] == tf) setValueForTable("visualsAvailable", 11, 0); else if (TabDiseases.visualsAvailableTF[12] == tf) setValueForTable("visualsAvailable", 12, 0); else if (TabDiseases.visualsAvailableTF[13] == tf) setValueForTable("visualsAvailable", 13, 6); else if (tf == TabDiseases.expertiseResearchTF[0]) setValueForTable("expertiseResearch", 0, 0); else if (tf == TabDiseases.expertiseResearchTF[1]) setValueForTable("expertiseResearch", 1, 0); else if (tf == TabDiseases.expertiseResearchTF[2]) setValueForTable("expertiseResearch", 2, 40000); else if (tf == TabDiseases.expertiseResearchTF[3]) setValueForTable("expertiseResearch", 3, 40000); else if (tf == TabDiseases.expertiseResearchTF[4]) setValueForTable("expertiseResearch", 4, 60000); else if (tf == TabDiseases.expertiseResearchTF[5]) setValueForTable("expertiseResearch", 5, 60000); else if (tf == TabDiseases.expertiseResearchTF[6]) setValueForTable("expertiseResearch", 6, 60000); else if (tf == TabDiseases.expertiseResearchTF[7]) setValueForTable("expertiseResearch", 7, 40000); else if (tf == TabDiseases.expertiseResearchTF[8]) setValueForTable("expertiseResearch", 8, 60000); else if (tf == TabDiseases.expertiseResearchTF[9]) setValueForTable("expertiseResearch", 9, 20000); else if (tf == TabDiseases.expertiseResearchTF[10]) setValueForTable("expertiseResearch", 10, 40000); else if (tf == TabDiseases.expertiseResearchTF[11]) setValueForTable("expertiseResearch", 11, 40000); else if (tf == TabDiseases.expertiseResearchTF[12]) setValueForTable("expertiseResearch", 12, 40000); else if (tf == TabDiseases.expertiseResearchTF[13]) setValueForTable("expertiseResearch", 13, 40000); else if (tf == TabDiseases.expertiseResearchTF[14]) setValueForTable("expertiseResearch", 14, 30000); else if (tf == TabDiseases.expertiseResearchTF[15]) setValueForTable("expertiseResearch", 15, 40000); else if (tf == TabDiseases.expertiseResearchTF[16]) setValueForTable("expertiseResearch", 16, 20000); else if (tf == TabDiseases.expertiseResearchTF[17]) setValueForTable("expertiseResearch", 17, 60000); else if (tf == TabDiseases.expertiseResearchTF[18]) setValueForTable("expertiseResearch", 18, 20000); else if (tf == TabDiseases.expertiseResearchTF[19]) setValueForTable("expertiseResearch", 19, 20000); else if (tf == TabDiseases.expertiseResearchTF[20]) setValueForTable("expertiseResearch", 20, 20000); else if (tf == TabDiseases.expertiseResearchTF[21]) setValueForTable("expertiseResearch", 21, 20000); else if (tf == TabDiseases.expertiseResearchTF[22]) setValueForTable("expertiseResearch", 22, 40000); else if (tf == TabDiseases.expertiseResearchTF[23]) setValueForTable("expertiseResearch", 23, 60000); else if (tf == TabDiseases.expertiseResearchTF[24]) setValueForTable("expertiseResearch", 24, 40000); else if (tf == TabDiseases.expertiseResearchTF[25]) setValueForTable("expertiseResearch", 25, 40000); else if (tf == TabDiseases.expertiseResearchTF[26]) setValueForTable("expertiseResearch", 26, 40000); else if (tf == TabDiseases.expertiseResearchTF[27]) setValueForTable("expertiseResearch", 27, 40000); else if (tf == TabDiseases.expertiseResearchTF[28]) setValueForTable("expertiseResearch", 28, 40000); else if (tf == TabDiseases.expertiseResearchTF[29]) setValueForTable("expertiseResearch", 29, 20000); else if (tf == TabDiseases.expertiseResearchTF[30]) setValueForTable("expertiseResearch", 30, 20000); else if (tf == TabDiseases.expertiseResearchTF[31]) setValueForTable("expertiseResearch", 31, 40000); else if (tf == TabDiseases.expertiseResearchTF[32]) setValueForTable("expertiseResearch", 32, 20000); else if (tf == TabDiseases.expertiseResearchTF[33]) setValueForTable("expertiseResearch", 33, 20000); else if (tf == TabDiseases.expertiseResearchTF[34]) setValueForTable("expertiseResearch", 34, 20000); else if (tf == TabDiseases.expertiseResearchTF[35]) setValueForTable("expertiseResearch", 35, 20000); else if (tf == TabDiseases.expertiseResearchTF[36]) setValueForTable("expertiseResearch", 36, 40000); else if (tf == TabDiseases.expertiseResearchTF[37]) setValueForTable("expertiseResearch", 37, 50000); else if (tf == TabDiseases.expertiseResearchTF[38]) setValueForTable("expertiseResearch", 38, 20000); else if (tf == TabDiseases.expertiseResearchTF[39]) setValueForTable("expertiseResearch", 39, 30000); else if (tf == TabDiseases.expertiseResearchTF[40]) setValueForTable("expertiseResearch", 40, 60000); else if (tf == TabDiseases.expertiseResearchTF[41]) setValueForTable("expertiseResearch", 41, 20000); else if (tf == TabDiseases.expertiseResearchTF[42]) setValueForTable("expertiseResearch", 42, 20000); else if (tf == TabDiseases.expertiseResearchTF[43]) setValueForTable("expertiseResearch", 43, 20000); else if (tf == TabStaff.staffSalaryTF[0]) setValueForTable("staffSalary", 0, 60); else if (tf == TabStaff.staffSalaryTF[1]) setValueForTable("staffSalary", 1, 75); else if (tf == TabStaff.staffSalaryTF[2]) setValueForTable("staffSalary", 2, 25); else if (tf == TabStaff.staffSalaryTF[3]) setValueForTable("staffSalary", 3, 20); else if (tf == TabStaff.salaryAddTF[3]) setValueForTable("salaryAdd", 3, -30); else if (tf == TabStaff.salaryAddTF[4]) setValueForTable("salaryAdd", 4, 30); else if (tf == TabStaff.salaryAddTF[5]) setValueForTable("salaryAdd", 5, 40); else if (tf == TabStaff.salaryAddTF[6]) setValueForTable("salaryAdd", 6, 30); else if (tf == TabStaff.salaryAddTF[7]) setValueForTable("salaryAdd", 7, 100); else if (tf == TabStaff.salaryAddTF[8]) setValueForTable("salaryAdd", 8, 20); else { for (int i = 0; i < TabObjects.objectsStrength.length; i++) { if (tf == TabObjects.objectsStrengthTF[i]) { switch (i) { case 9: setValueForTable("objectsStrength", i, 8); break; case 13: setValueForTable("objectsStrength", i, 13); break; case 14: setValueForTable("objectsStrength", i, 12); break; case 22: setValueForTable("objectsStrength", i, 9); break; case 23: setValueForTable("objectsStrength", i, 7); break; case 24: setValueForTable("objectsStrength", i, 11); break; case 25: setValueForTable("objectsStrength", i, 8); break; case 26: setValueForTable("objectsStrength", i, 10); break; case 27: setValueForTable("objectsStrength", i, 12); break; case 30: setValueForTable("objectsStrength", i, 12); break; case 42: setValueForTable("objectsStrength", i, 10); break; case 46: setValueForTable("objectsStrength", i, 8); break; case 47: setValueForTable("objectsStrength", i, 7); break; case 54: setValueForTable("objectsStrength", i, 10); break; default: setValueForTable("objectsStrength", i, 10); break; } } } for (int i = 0; i < TabObjects.objectsResearch.length; i++) { if (tf == TabObjects.objectsResearchTF[i]) { switch (i) { case 8: setValueForTable("objectsResearch", i, 20000); break; case 9: setValueForTable("objectsResearch", i, 40000); break; case 13: setValueForTable("objectsResearch", i, 20000); break; case 14: setValueForTable("objectsResearch", i, 40000); break; case 18: setValueForTable("objectsResearch", i, 20000); break; case 20: setValueForTable("objectsResearch", i, 20000); break; case 22: setValueForTable("objectsResearch", i, 60000); break; case 23: setValueForTable("objectsResearch", i, 60000); break; case 24: setValueForTable("objectsResearch", i, 20000); break; case 25: setValueForTable("objectsResearch", i, 40000); break; case 26: setValueForTable("objectsResearch", i, 40000); break; case 27: setValueForTable("objectsResearch", i, 30000); break; case 30: setValueForTable("objectsResearch", i, 20000); break; case 37: setValueForTable("objectsResearch", i, 20000); break; case 39: setValueForTable("objectsResearch", i, 20000); break; case 40: setValueForTable("objectsResearch", i, 30000); break; case 41: setValueForTable("objectsResearch", i, 30000); break; case 42: setValueForTable("objectsResearch", i, 50000); break; case 46: setValueForTable("objectsResearch", i, 40000); break; case 47: setValueForTable("objectsResearch", i, 40000); break; case 54: setValueForTable("objectsResearch", i, 60000); break; default: setValueForTable("objectsResearch", i, 0); break; } } } } } // this method is called by setDefault. // argument should probably refer to a variable, instead of a component. public void setDefaultCB(JCheckBox cb) { for (int i = 0; i < TabDiseases.visualsCB.length; i++) { if (TabDiseases.visualsCB[i] == cb) { setValueForTable("visuals", i, 0); TabDiseases.visualsCB[i].setSelected(false); } } for (int i = 0; i < TabDiseases.nonVisualsCB.length; i++) { if (TabDiseases.nonVisualsCB[i] == cb) { setValueForTable("nonVisuals", i, 0); TabDiseases.nonVisualsCB[i].setSelected(false); } } for (int i = 0; i < TabDiseases.knownCB.length; i++) { if (TabDiseases.knownCB[i] == cb) { setValueForTable("known", i, 0); TabDiseases.knownCB[i].setSelected(false); } } for (int i = 0; i < TabObjects.objectsAvail.length; i++) { if (TabObjects.objectsAvailCB[i] == cb) { if (i == 9 | i == 13 | i == 14 | i == 22 | i == 23 | i == 24 | i == 25 | i == 26 | i == 27 | i == 30 | i == 37 | i == 40 | i == 41 | i == 42 | i == 46 | i == 47 | i == 54 | i == 57) { setValueForTable("objectsAvail", i, 0); TabObjects.objectsAvailCB[i].setSelected(false); } else { setValueForTable("objectsAvail", i, 1); TabObjects.objectsAvailCB[i].setSelected(true); } } } for (int i = 0; i < TabObjects.objectsStartAvail.length; i++) { if (TabObjects.objectsStartAvailCB[i] == cb) { if (i == 9 | i == 13 | i == 14 | i == 22 | i == 23 | i == 24 | i == 25 | i == 26 | i == 27 | i == 30 | i == 37 | i == 40 | i == 41 | i == 42 | i == 46 | i == 47 | i == 54 | i == 57) { setValueForTable("objectsStartAvail", i, 0); TabObjects.objectsStartAvailCB[i].setSelected(false); } else { setValueForTable("objectsStartAvail", i, 1); TabObjects.objectsStartAvailCB[i].setSelected(true); } } } } public void setAllDiseasesAvailable() { TabDiseases.checkAllExistsCB1.setSelected(false); TabDiseases.checkAllExistsCB2.setSelected(false); TabDiseases.checkAllExistsCB3.setSelected(false); TabDiseases.checkAllExistsCB4.setSelected(false); TabDiseases.checkAllExistsCB1.setSelected(true); TabDiseases.checkAllExistsCB2.setSelected(true); TabDiseases.checkAllExistsCB3.setSelected(true); TabDiseases.checkAllExistsCB4.setSelected(true); } } CorsixTH-0.70.0/LevelEdit/src/icon128.png000066400000000000000000000214321522247547500176550ustar00rootroot00000000000000‰PNG  IHDR€€Ã>aË"áIDATxÚå�tãX²÷%Âé4333-33c/ÌòÎÂÌìûfv˜è¼Yf&êeÞîa¢fl tœØÖ­/q¬äZV²rËvæì«œ:ººWàè_õ¯ª+Y–éÓ§ó\t¬¡~3°½µ/ö2¢<ÜÜü ¸‹€‹´¶¶î "û q]—¨â8NŒíª'Æ&““O>ù�“‚o#|<ê~Á}‚cþ>@Ž6þØc�¥n¼ñÆyÃË…:,À…Àq@f2pÛÚÚŽWÕcÇiñ7 moózp,žTÀý÷ß}¿è}Õ_‹z-ú®¹æš[�=öØ£Œ1�ïîHttt`É"Ïó.‘ÃÞþö·ßö¡}(·lÙ²9©Tj–ªŠR|`«þ6]œC9¤ê´Ä£ýpV¨4è’%K6yä‘Þóž÷¤†ñ|ŰÜÿ–·¼eÆóÏ?°'0 ¶çSþMÃÞ¿Ó¥—^ºvùòå‡LP¤þø€×Þ(vß}÷jÇ{¹M —¯ÇÏ >þñ�ßtÜqÇíÖÛÛûì~ûí·‹1æBà+ÒÞÞNQŽÎýÃþpó°åV„¾Ø€‹H\�+Ún�=ö¨5øq¶©ºüñ‡\tÑEkN<ñÄC€…QI {~Ï?øÁû¿õ­oøÚ³@|£° –™#¨Iu°zõêÛæÎ�»ËŽ;îØlŒ9Áf�ÝÇi~ßûÞg&HÞ¢ôûÃÆ|�ÊQ´ÒãLö™¶¥ì‹´´ˆ}¼¨rÙe—eE¤eûí·Ø×aTöX¼xñü™üd±RÐ+6ú1¢oüê€ߨ¢0Àìbò»ØÇ)î¼pXI&“s':: D«vˆq®Ú�ß›+ßv2yê©§æ 3@XìÀˆHD +¡ÿÊ@ˆ¯QŽo÷M!øñ÷©<$ØÛóá;F~Ê“Àà±O;÷4.¿å Ü‘?qùKHG†—$ ë®$èÌu"y)þÙmÑÑ¥=s9¢‰Db,ñ‘²¥%ÖXô%k›¨’ˆtÝËA‰�éßxß�l:¢§Í£xŠ ëê1¬ û šWÍ(:h`PÑ¡bß°’¥Ðf‹Â³�pt´uL¾ßž*ð#BÂqœÈ^?õå`ôãlñ¶"Í @GF—(£Šâ(@Ñ Šýª.¨‚]×ïaƒñ|áK_ »Wyu=Ú¥ñ½M $¸yÃͼò­¯äÄ“Ndpp�0éêê‚E0-—RƒÀ÷~atË@‚F€(x DgÏóØÚ·•®-]ôléa07üø}ÛÂvް/°Ç¯¿þzØðúj¿WØÏ¥á+Í4.m¢»¡›ïþù»ì{è¾üío+;îðhB?›¶*Ž–‚£…¥¿B™ ¹hŸÏçÙÒ·…n¯›ìÞYôÍŠNS2NU­-ø“c-¨}Un|ãøo�{Y§É)ñNiä½ šÞÛŒ“tx¡ñ>üõóî÷½›uëÖðàƒòÃþu-püs¨n™!PÐ@Ù0ò`º šÕÏaø®­]ŒüeÈÂݘ 2C0†L6Smðc„{0>ø±éÿÔÓO¥w^Î> Ôñ1”qÐgY‚ôçšhÚ·…�ÆþòÌ_8øˆƒùÑ�~ÄgœQHIj)õ c°ú„±>ü €*tAo?7n´ÿŸÂ9;·vÒåv‘?"�óÙÏ�ôØÇF÷W‚ÁÔ ªZ'/ö…çÀ�"ö?úè£\tÕExoTÔa _Ç);)8/OÐøÙVÒ èžÝÍÉß?™n¸\XJ<ì˜H ýx�¾½¯ÀÈV µµuŒê7÷l¦3щ÷J÷ã.ξ.¤üÓXÆ4�6Aç*ýCý1À�5>¢‘gc°BåùÀÑ_8šì¾9œ¹® ~Ñk}ðK�Ámsp?˜¢éí­ ÎÄ]ê€ÑQ0G{Ÿ±¶ul|†(îGà|Ž@°‘­àt:ͦžMlr7‘�‡ûéT�µHÙUDQ}Ct_…­�mÎZa$v‰eÿJ’ÀúçW^y%�t?‚¾R@ࣥLÀh[G´xF;H« ³”¾¡¾@GÀ)V?$D¦ÿL&Ãñ'OîÒèXåZR® øõºß5>–ä• ò¯4x÷å‘KÐŒµ­s�ÙlÈþ0ƒé28sœw¸¤¾Ò@â ’²öñÕšYôÛXÿ¿î§Ðùiù‘Ü!nð¥büì øñ§‡Ï:û,zô!{ºEðÕ@€qúÖ²$ŽrW…KjaŠ9�Ï!u�‹yÒƒÀö2¶½ú�~²7ÖÖeè×dÏÈ �+Îþ.©cšHš†¤ÿùÅ2¬°Pã×r·V�é‚N³X :àF÷û�¯iHxöÙgùÅ¿À¼Q-0í0`�� Xb_y› R‚÷Ø¢[X˜XHÓ�Ópƒ‡z„²¢VHÄ(Ù¿fðÎÈ2ãñé476ã¼&AÃG›�¦R€Õ±æl�í0àï`�ë> ›Á›ã144-‘‹oæbå•?DúÅc¾Èà~Yd–k—{¥Þ¨ßg«ÍÁó-vX9ÄúÜzÍ^Äô[;p.4˜Í„|6EÑAÈÞ1HþÌ,mkevj6}NCïÎ’~k#¸b�¬ì0Rì#pÓɾ.­ sš` ?PÕXUœ'ˆ:6aßš5k¸ý™Ûá(Á¢~µ/ð(øèË»c ˹d>�åiçifÌœÁ ³œ–ï6Á•y¼N4§dïbð»}äOÈÐryóu>¬Ÿ¹=Ö%¹oCIN€h) 0í+„…,ØÞ|�l6[¹gÇo‡†€ºäÆ>÷µÏ‘}UI;ˆ„_%Em‡- €J|TŠ 0Ç!÷ex|—'è6Ý,j_ÈvÏ®`ÞÏgÑtf ýVŽôOÌ|v&ó›æ#ްŽuô¾¡ŸôšpZETǶ4?wÜG�À6¶ñø Ð ²@ ýôÇôìèûÙývXÁÎñó�þø‡¬o_�³‹ðhÇÆº4¾L  æ�Au�׺lþd7�'ž(Ü�IçÒ4gš™Ó8‡Ö–V¼^hy�¾�dHœÐ@êÈë<>‚VY‡ZŒcÛ¬ ¶õ¿ÔÝ[a#˜¹†l>»MÞGœÊŸÛ‹Ÿlݺ•s~|Þ­¸’Õk!HøÔÚÖîpfºx_ž{Å ÀU•M½›Ø¸t#ùo(éo6“Ú=�:Zv:De|Ì6L ØëHAš@– ŠÒïöG¸î1Ûñs€øùÀ1ÇCÿžý8ÓÜrïÆJ®�€kk9ø0 v›Òpq@‚¾–>ZZZ ³‡ G·àÎO2.¶Ñú.nÕøþ¸¯X ^™!«Õ¶ ÂÝ«˜ ÌöÈ™\5è>öíààɪZ%ô÷÷ã<å =^�:Ëc¿”{µ > –Xëê·µh4MÅÏÔäïâ¸à2Š·@ ÝÆf5‹ʶa\@Vd¡¯¡¯Út¿íÏZRUVøõOÍQóŽ"õýÜ–/¹�„&|”x¿Úv!XF. UªŠ&ìs„¢lÍé*By˜ë�ÄpbHzä½|ͨßqœHÏÔ4$¤R).¿ìr.8é®k€ßtÀ‡)@ÿ�+)–«AŸ‡r\Lñx‰à©ì¦†„'Kñ—áy€}¼ò>¡DR ; ²^ w k/~CâV Ã/¤àö[ng_Ù‡Äÿ‚yØ ŠÐ;1ÐÉAW&À+~¦¤}„@Ž O�M%8s‰X}a aõ:M! nC•œ0ú3�q²þX¬0þ|þüÇ?sÚO#ý«$\åar¸ˆjÓøF^AÔo‡‡5ŒJZ�0Ú—ÿD!aÿ¿e=¶I…VÖ/‚¬’«“Lk›FCCCŒ¸#ˆ‘}Æ.W®\ÉÍÿ¼‰�7í„{¡¢ë={§hÞ­tiHZa@QH�†�¬„hà#©fy¸ð }lù£àþÑ¥½¯�ŽÖ‰D­®}¼‡BcHdÃ~'!«ÿ±š?r"éï'ážÍÃ6O*¶ÔrÊ�´”;º„Ð¼ÊØŠØ_GË&™±´û´KáÏà^ïÒÖÕÆ¬i³ ˜TfükïD‰çõN¿ðù/póŸnfû·C~œÇô™Hž®6Åû+87c�ÊG,¤Ã­# ð ÛZºUÑ?ä2¡u}køÆÆF*•øFÿ‰ [j–.]:næØ7KúÖzL&bC B Ï€QiÇväIÀ Jôm5£xóà×JóÓÍÌé˜CKs "Rw�ŠS  £I峆Žãð¥Ï}‰íçm�÷¯Üä™ÊD�¢ªÐ× e QD³Š·:‡ù‰GÓ�Ìi�C{k{Ôd×Å0"H•ÂCEàc8ÿ»ç³ôeËx`÷‡p�n˜m±Ô®Ì4dsµ@ìü- RÁ50åð~˜#yS’¹Ms™>m:®ëÆôøê†S{š©<$\}ÍÕìxàŽœúÏSÉ|j9ÀõÑ´¦€ÃmÁW?o#¤¦72jMÎd~ï, úéÇ{Òƒ>È æFžø©°•ïãÄ=P5÷y@dŸƒöá“ç¬dã{ºà� ¤ÁŠÑ�r«|nÀZŸ¬_ÕÏäí* <Ð0�5R â”BUt;¥«§‹ÎÎNT•RcpªtÀXO¯<üðü굯âmŸ~Oð4z´‹³À-ɼu²’;˜™fkƒ¢ÊøÀ.ˆND% ¥ïŽ ØBØvàÌpH–FvuÐ=•LG†uÖù_h­‡sEÂÁ©Þ�+—M›6ñéÏ|š#_$w´ßIþ«Šè‚£€†\i+ Њâ[ö6‚ ($lzX‚jy¬Qñ÷–~åŒá‚»§Kâ Ì³³¡k¨‹î-ݨêT0m´©àZE>ŸçœsÏa�}÷àŠÇ®dð 9x£ e“26.‚¼dab‘qV×ñAŵöW ©ãÃÙAÇúe¼OÊéA™!¸¯HàÌq0‹ ™…6to°sƒ)3§^'²¿òê7½š³¯8›�e0œéElEPµÐµÀS»­v¸V&ðåq0´ÿ�$!¡¿Úàg­sCÈìÓX¿e˜Ⱦr ÞR¯ðEÒžÞTuÊ^©ïPgéëëãžž{È}Ü Ë]PEUËxTƒô«� ¸î`j)j°OQÄX�‚»‚„Ò½¢ª~ÛFÝÚÖj[«A ´ûdºÀ«™+h£’™›)<––Íf™ q¨³Ìš5‹CV‚>e@¬š-€ƒX,`P ~貄NKûÄÉ`gœÐ�Cmµ¾4jm{»mL°Ð]�#A¼�îd7=ý>üÀwOû.©%P¸0j­h c·”Úà‹Ÿ•5$v˘ ŽûK“?µò�20!F”ÒC–Ç®ÐW*ìj”¡¶!ºò]¨ê·,]²”ý쇮õ@}0µhÐëÊP´Œ@Û´ü 3- XaFÂ+ ›¿5èÚjÙj˜‘(Š‚Zн °ðz�~Áëñ0ÆüwÀy'ŸGju< ^Ι¢ˆ­Z4 ¸ÉoþˆŽï*V)Küs±òé_emcÇ+g( %¡%0nIè…¦Æ&\×}逪ÆÚg×]we�Ù»£·›‰YÀØ^é>S#–“qP‹úÍVƒü^qM‚ä°þ¦o£7öùÄ2!Gû ªAú�ÿáI!Öz@d­àˆCss³}½êcƘ�=ùøiß>�ôÍ)4«(”_ì`v­ZŠ¿Í�@,:®¾˜õÍç§Ùþ™iO·3·}.æ¢ã»­äÿ8XL:-�FJ“?ËÓEÇÐ߇OÔ„…-�F_;S™ÄÇÊ©ØarðÁ³¢c²Æö0‹6 S¤ïàEµœnGÔ§ó¢ç·ÿ¬•]í‰z�›7^8¹ã;ðÅ£�aî�óÈ?�+É(îýþq1Åð` ›ŽBs_<�›„T"å?TsÐmqê¶=n·OøÖ ¤îHbú ¨–ÅR0¶§[áÀ—@ví« ˆû€235“�ë_`Çwâ#ÿ¯xÕ«ùÇ?þÁ@_?‡x$ÉkÜÒ˜�Z`—{H… –a¨e�Áq_äA�uÐÖÖV×ì·�¸'‰»ÿë^÷:æ5ÍÃý‡5`,#0 Hˆ=Ü”Õë¡’¼?A*•fÎÜù¼âµ¯aÿý÷gÿfÑâ%\Ý5Ìœ5‡–LK )Ôöb¿ÏÎQŒ¢Æ Æ &hŒK?p#qßOüêŠ�8RÕmö|»}öYg“¼'�é1¾×•z¢Ñq&P+æÛ†PRŸ—«f¡§«‹¶Žžxü Î8õÚZ[Ø}¯½É ‘Í ALÆ”žÃØŸ'.�äÏß�'¡¹Yp²Vâg_Ÿø W?Ä;¼ýêW¿š½vÜ‹Ä_5�˜k3�Š"ìñµyÌo³…¾ š™žç±þ…@„×½þõ´··‘N¦I¥ÓôlÙÊ 3ˆ48¥ÇU L �ƒ-åÞN÷`@žxl”úE¤”/PÕXž×�Î;÷<ܵ.ºÁXžgƒnÇRǽÇýPÙþß+h~´Óí•1@öå‰i ú{·pÏ�wÒ6m›6nâ÷«®eñÒÜwÏ�ôoßÏ7 ²÷@í÷­ÐÚ&àý6K¨ß6�$2[ðþBÒ×ÐаÍNÄ6g*=ß^ßm·Ýxókß<ÌŽgË(ߦa̓¹#�û¿°bÍ2®8órný×­4¦Ñ!-3gšË‹‡­#Õžæ™§Ÿä²K~Ë/~öS-ZÂ3Ï<É3úîR¥àE‹á#{C–칃än΂¢ pü_Æ B¡4|r›@Oá7›c‚ŸœÀN1NßN=åT’O¤Ðg<;ÛÉV\½%OòBa»[–sé™—pûšÛ9òÈ#H¤ €±Ô{9<ôîGÙ8s}n¦ÍpÛ37óà‚µx+\¬óY%äÆ<¤€Hþ9Aö'¼õÞÞ�ïýcëjçÏkGÀ�ôtpÍÙ!ÑÒÒ2áIDd’v‰xL}Μ9½ò³\ø‡ ÉDÁE¹Ý#uW’E�K9ó¬3yå+_IPÜ”¸Sz³ÇiqÈ|(Çó¼8Ú$4í{i æCM¿B8®Ã éÝÚ˦ŸlÆÛ'�{DøT_êýJii›g�C*•*¡~U­7õ‡æ5f�ð±àø1_=†æ�Í£ßVEûý‹Gúû.lÜŸ«¿5wÜr‡ ~I²ç$ÇÞ\ª–G¢€ÔŠÓ�˜_šÅ(’–‚…/u,™±˜¦»ñ~œÃøÁò›‹~Ã{À1??†éÓ§G?_B¬‹HpºAí>Sr#*0ñS4€&A ž¯ðݾ…é…t?×Mï¯zá `WOV 0²ZF¨dûT}FHD±òvè0á:à¯�¼3À‹^•8 Ç/ƒøV¸là)‚VR¿ë(€iÀ ¿¨"BG{­ùV6¯ÙÌÐ#Cp8ÐxZ(ùè…öYíuõø(Ø:ÖJý)?üÜÁ± 5LqüØ]ÿÕu,΃ØÙ»QÔNàŒ"ª04âJ0W²Û#Ô^ 3ûfâ\ëÀíÀSÀCcÔ³”Žß2~[êOùa}våóÔ+zn‰ˆ¿´0 °�5ç ʘ‘è�‚«ˆ À¤Fà‡…yéyl}d+24´4úªvü9œDM)?:è~_lZTÏž¿·°   øRðÈ^‘] ’ˆmÍm´jk-Ž_ÔšòUu²ñàv±§–ÕSÈK?Ÿþ=ëÆQQµ8.Åv øF!§0ÎD€G%þt{üv„20‚Ô7îGWõ| AMQ½ à>è>ðê_:î+§è29¸ác1Æc\1ÄðöÈ Çðüˆ!`ÌŠ˜ô‘ñrðÚ@È*®øIܶc<.kL^T›ò£€þ=?Š÷1yƒzå3�j‚FL¼§Ö�'…^pp&:ÊØK.D8ñŒøÞls(JR“¤ÿœÄù+è“Ô1 ñ,ÀíxïÙÀÕï÷€,° \Çg€êP«# ¬NÜ�ÒWµ$pÕ5«¸êÌ«øäNŸ¤ãºi¤.Kb2ÆÛ¹Ü<‹16¼µÃú¯<·†¿”›è€m3°±€:\0 Œ÷+ 5K;:: ÷ N?ít\û ûÏÝ�Ä¿è’P€¯V2ˆ:æ7¹Úîoe^Ë<æÌš3øör¢±© ‘fkTêE�ûq%x¼d2Éå—^NóóÍh¿±À¨çW 2ºïƒ æ-`zÇô‘㄃]?&¨*;ØëN�K½mòü $Ò¶étš V ½€QÈûto�nìñ-ÜòuÝИ_+&¨kùè‹SÇR/¢çÇ7Œà>#/`f@‹`SP‚ Û!áEhil‰r,&˜*ï�šÄ/õ€JÂ@œp0éþOlzmÃ;:V~ðõó”o’Ù'BuÅ=PéÍôbŒ‰d\‰“/DÈbÜ㯶çW*Géhº—wC3µ‘y Ë´ð²kU­6øRw#p*ðìªÆ}Kb‡„U«VqÓ“7‘ß.O-EP2&3RFvÊ™ Š8±@�b‡ƒîîn¾~Âר{j+­ÀÐ7P`�ZA•¶ Jü* Få_üDðK_ý=KzÐ¥¢{*¹†œ_Z7,Ôßì ’Põißm•‘—<®~h5Ù�³ÔM’ în‹·ûZsÖjê2ù3‘ ò•c¿2:ÝëR_Yfž!“ÉÄ�áö>U+#ëâOûVl§ž~*›glFg+uô %ãe0ÆÄa‚ÎuÿmáuŠûñÃÁÚµk¹ôºK wú¦Lf;@f0—ƃÛÇa‚X àk §}ã'‚#uøÊ•+ÉÏÈCS*º¿’u²xžWí)âú20åÓ¾Q¤§§‡·¾ã­¼¸áEdP@™ZiZ™ìÉ¡:‚?T9¬~ øË_þ’‡õa†^1ÄP× 2õâ‚Cf(3eFT�*¥ûXž_©tvw¢�Š™o0‡˜ L© ‚æ}‡’›—#ïåëmÕ3€øYõïýåØoËò¾å¤ïHãÍöÐeJ%¼˜ÌÏñ&¼úÏÆ§YUžõó_¾tíå×òþ=ßÏô?M§iuîs.ä™ñ}üFAî’šŒêõõ?úL`å³}@]ïN›6�ÓO9�;þ}ßþзÙá©hÿ]; ·4à<ïÀµ5�§Aþ-ÈåBâ¡�n#¾ÔÒª-‰Í›7�à›»â¼Ú-8^µßhhhy£èˆ²ðÛn¿�U^Å�wßɦîMd“YL‹!ߒǛ攄ý¶¸ Ú`€!`È—ƒ �- ‚›uIx Ç�d´2ãÏýW_A¯‘J a›ŒÁÞ.Žøï>êÈ£ j? òì³Ïò̳ÏpßC÷ñè“�Ò³µ§p+7o†ÕÕ§žzªÔ»=O(ùSÁQÜÿ_œàkcµW°ˆÄx—_èX kóÏù/ŠÑ=÷Ü“7¿éÍaçõÀ²<¼9•½0«öFPû_­{ܯ³„Ÿ?ú”lŒv유ö £â/cLûV§Œ,ñ�9)è@ý� öN¢að@6›ÝPãi߸@ÚZíc‡m3%FPKYºt馰p‡ªòüóÏ¿c¶/–çÇ�¸ç‰€ªA­åðÃßP¼¯â½Â¨$‡eëpIuÏ 'œpÐD [ÔþèÛÔ_‚ í¼óÎe}Ux{j¤ííe½dõêÕ·Í›7ï€�~ô£�­Y³¦Ë±~½þÜßþö· —E7×kÚ·N�îã3A„í§ü�üã7�€dï¾ûî%ÀZßr¹SŒ1¼ë]ïÚõÉ'Ÿ¼¥Ó¾qãzõ�Qy2\�êïûØÇn9î¸ãv¸øâ‹ïíïïO7K*•Â’�=Ï»BDvýÀ>pǰšÅ‹ÏM§Ós"PùK;„{ÛÈ�HÛcÛ€ŠC@=dÉ’%;ì°uï}ï{Ý ì°nݺû‡cqwcÌ-Àaah¤]×=ED¾¤‚€U²ÃhbJt�yä¿ç8•÷Õßø/ºè¢ûN>ùäŒ1ƒÀÞÀÃL"ÉaÙÓqœ�$‰cƒ:ÌÿQ‡çë_òzî¹ç® ê9çœS¢g�uV‰žy晑õŒ3ΘRýú׿~ó¡‡úÈðtù Àj`wŠ"ÃôÎÿqÑ è?Æ»”§Lz��µÀ߀KíÉ ÿºÒe¬Kè;ÑIEND®B`‚CorsixTH-0.70.0/LevelEdit/src/icon16.png000066400000000000000000000012731522247547500175720ustar00rootroot00000000000000‰PNG  IHDRóÿa‚IDATxÚ-“¬(9†¿Ó™kÛV¸¶mÛ ¯ã¬;kÛ6¢µmKÏæLÛófšžä«ôÿ•œvÚiç]rÉ%'c¤ŠbxïYXX˜RUœsDÈóUõ‡zè“饗^zrOOÏq"B€cn<–µ²–ߺ~G7y*?« YŸ`­- ‹§˜4M¥TM’„¯~ø çE¿Ø_ù£ýoÌžÙÇ`mh/(ÇT5ø•%+–pÆËg²ë¥»qÃí7àÅÔ¤:ÁT¨Áv[6º×ìœRØÄó�/²ib+«ö[Ç�r/u¿×b* ¦Ò ï ù°cói[aDÈF³0§^üø%>ªûI%`ûv»œ¡ûû©¸YHÆÒc*�jA*W²ÁŒ ÐÕÒIφÄHÁÆþ-líÉÈg�“ˆÒ ø€Ø}rwÞ›~›¿ÙžW&i°ŠBÈY£T¾[Ií×µ@\`ÓæMÌ=8Ïw½ß!BÀáÕØøŸ”tEІF0eáêg®áùº—ØÒœ¡QÀ‰# ,ñ(fWaÓ›ØÚµ584erù±—Q÷O XE]�Í¡i=ov£Öh´Q‘ͪ*«8©ý|æI—$Œÿ< ™ÒØØÄæ[ðÿ;ÜïyÙ0?Xžzp —Ÿx9G¬<ŒWy‘ w¸ Ø{çÐwYqðrì¿9ÕU¢Ÿ9üožôÓ4ô¤ñƒ„;½ùâ›>üõCt³C°Š_ãÑ�JÕU$Xì‹÷ñó<׸vÝ•ãÜ1°e_Ü›ó›?P˜Õ1ƨwÜqç•?²p E1bÌÎÎN•jq«¨*ÄɃƒƒïobûh~�¤>IEND®B`‚CorsixTH-0.70.0/LevelEdit/src/icon24.png000066400000000000000000000021611522247547500175660ustar00rootroot00000000000000‰PNG  IHDRàw=ø8IDATxÚu•°,I…¿ªî¹|¶mÛ¶m~¬mÛ ¬­ÀÚ¶m[�O×3Ý•ÛÓwòÍÄN¼qâÔ Nf–ÒôèÑ£ûé§Ÿ~Xûöí[XkÉ…1Añè£�Ž”Î9Â0ŒUÇ"BaaaEmmímþi§�vøòåËÏŒŒc3 O«ª«@À÷}?üp5Ë5U�©AÖ¯_�ß¡C‡Vj©ÇT̼v6å%e�„ÔÒRODÁ¾Mëš’­,UÐÆ÷< ðo*\iˆt³ à —äÛ/é‘‹´Ÿ°Èå_ÛþbÊS8â¢#Ó�ª°“0ØÂH Ò4˜R“�ëY\±Ódsõà æ œÈŸs¶ñ\›˜pôDN»à4BßÅæ1}©ÅF*•‚¡ºO5ûí§®{’Ô Àæ.ÉC/=Äg­¿ÀøéûVWñ”}†D…g#š Ý/!ˆaï²ý„ ¦³EF ÍÔ/¢Ä›rõ;WãÚ xc X¨Û@qq ]éˆ-ó�C n÷H|ããŸ\€àÇÅ�‹-®›Ã•ºl=5gÝ};–aÔÜlz eÓ+Ù;þýžëEÑ…4, �-iÓt†Äs”2PH¶MæèÖ¹;Å;‹ÀV�*±Öö¬¥¶y- ‡‡x½½øw,UiLÌé 8ßeOÀqKŽåÉ�Ñã³n˜À d A`€É1´�™j ³ËD{–À™MvΡÑoœûƒÞì�PH&H� 0ž–EF1À~Á{×Òìµfþ^ˆÂæÞ¾¯~üŠ57®ãû±?! ² �#·2U¸OC¿&0˜Ø+/À)÷žÊâ§–òI÷ÏpMHÖC÷BŒ`2Õè<-ÅÎò©›TOU‡*œshÒV?”%˨ï˜'ˆ$‡4ªÃ5šF”PÀ5RǦ„Cê:ÖeèàÊåWP¼­ÉLRÆ~Š~-¢ùžftý¨.&fR-">$ú”k´iÙ†9¥³!hœ¤$)iû7Ûòÿ­GÒêû6q±a�ÑÐE æ'ƒ¿ÓG�Ím—¯¿œ’ŸŠ!¨ú|Û“Q_ �Õ­á™Wžd›Ý†¤©¯’o'£±@DI³Jð¾÷4ûì(›6iÊâ6 éÿS_®ëz ¯žö Cû ‰'ïXλ‹? ly9€+)y¥yÄ!;.å0Ÿl…Eý|ý ­ñÊÿ^©½ þÞ7~:c½ º41(þ¥ˆäŽ$n@þ� ÔOáë&±æ5›”‹ LÚ ~ª]˜9Uû ñ^B[§úåWäÕeC?ú€êT55©ZvìÚŽ ˜ Ùðsa®¿þúËW­ZuÆ!~^¿8p f©ÆÊ<óÃ;ì ÿòË/¿]"¤›¿šZk9.\8FÍ"æe­èرcUMMÍÓÿ8VßÃIgéÆIEND®B`‚CorsixTH-0.70.0/LevelEdit/src/icon256.png000066400000000000000000000542321522247547500176630ustar00rootroot00000000000000‰PNG  IHDR\r¨fXaIDATxÚìÃ×€0 0Ò�^ðþSÂ÷Ã�@w:¾ëÇÌ´Ö:ï眯Ç�{ïÛ­µíZ«XJsÎbJIŒ1B"CÐ{/:ç µc Ö*¥àÅ®YIrCaØLé23ff:ˆš!433ĦÔÉAnf¶�—™™yÐ Ë»ÿ�®ÔšQ·zFïF]Ûªúgžúÿ„(·n~àWpÜ®É5¿ùàIX I8JxQ"ÿ�/À.à7¿9 --m‹¡ ˜=ð _€  ¿¡jÑao�/Ñ¡Íè¨ð;øã$ø¸<0qÁf P[ÒÓÓ•ÉÈÈÐNff¦2¿ßÕûg5ËÉÉ -..®ˆ,,,¸b~~^™¹¹9%fgg™™™±ezzÚ–©©))“““R&&&l—266¦ƒåÁÁÁpWW×è¡C‡ºÞyç�Ʋ²²ù8XÏ-íÿ„xÈÖz²‘@:zØ�8xHmÁì’kªIôµ+ÕX^ZZÚ²Bp„ dàDàD` D` D "°2�H�Hèíí}衇Žb¦±!ˆà¸8™/Fö‚Ox3‚N-ux_¦Ka%¥§§g`Ïž=‚�K€»†Ð?Öùð#¤k7ÝtÓÈ«¯¾Z÷Í7ßîC¡ƒ(fˆs:2!ð�h¼qh~�¬n µµµ¡xÔÔÔH©®®–RUUCeee\***b(--�¡¤¤$†âââ°§a¡°°Ð5òóócÈËË;Knn®HÕdH9‚»víê{íµ×Žûí·uùÇFGG׬¾øâ‹‡ ìwþ÷ÅQÿÉ'Ÿlău0»òH�‡;!�€‚Á gÑðþ—fSv³1·†IoêÚ ”o*·1ˆ¾ ;v¬Yœ ìß¿ÿWákU ÿ£|øaØh#Z ƒo^ؽ/…eù2A]n$´J�HxJ ìÔ�ŒŒüÎKà™gž9&l –yCQ¯G¬°Ž¸í¶ÛºNNéS|?ðI¢*ω@”0_DǃXzÚÚÚz8 ,_wÝuÃÜ×|¤í|´›ë­(Â6?øô¡…BÔœk,óŠô"ð¾€g$ÀϺ»»¹Ïo‚«dSÿ»ùÂ×ÕÕ5$~¯…!4,»9]0QJK —†T`ŠØr€_ Üwß}-Üç?–  Ÿûá‡n24øf„ÝûRà@'úÙ€§%@y[�ßÄi¿ ø\*ž÷W³3}tÜ:[÷» ?UðýÀëÂrVV ½E@¿$ •ý¦ w:Àâh3À}þ‹PØ—XÁo¾ùæ1Sƒï^ðP‹@¾, Yø'ï 0¼þúëÍÜç>ð+öÉK>,ü´Á7?ôápøœC.Qˆ@”Øy Àwß}WÇðË/¿ð7²îd…>yÃ�`Ô' ¾ùA7O LÙÙÙ[@�{ÐÏè÷¨$�‚MÁ“7™Z[[‡¸Ïõ‰3€%vG}ߌ°{_ g`„Ì—Õñ éRàäµa&€þþþEîs¿‰øŸüäÝ~Wá§¾x5’�H–DKz øž“ú!È0<<ü§õó\C�—9„Ì ¾ù¡�D""¦Ê`F¶NB'úÙ€(à! Ð/PÿNþrŠÎ 7üôÁ' 4=ô°€6¸_, Ì�Á¦ ½PlQ¦ßÀ ›/^hD >Ø _ ¨ E¶@Ó¨O|¢°›6g· ‚†‚“Ö¶Û6¶ýÜ!)óÜÍuÃñyäú¾ò^ü•?².c:&^à%EQPUu]Ó4 mÛÒ÷=ã8ÒuÝÄÍYl·ƒQXÃPfffÆU7åU™™™ÂÌŒ«Â dŸ}ÉÞÿ^Yq;'5ét¢È^|a´ïý¤æ}›x8KäЕŒ‡¦ è™E ?Ä" TSpg`jÀŒ(¥â£<%ÁØØ™–Il+#¶lÀ:°¬+Ár° ,ad,6È\d’µÐ"{�MÎ|p˜ã� X.‚e1b`Œ‡òOPÓáM‡š‡œ�… eU0Ä$·U�ÒÀƒ.0¹å/úÒ'‰ÿFöwŽŽŽ’;Ã%û©C~OHnè­ Ù'· 4øäÔâu5Xé‘SÊÀ;ð ‚÷ ¼øÖcï¸ n!xWÁy‹Œ³Ý p ¡;ŠÐ{˜`+Ø 6€µ`X–‚…`¾Ç‰Õ¯Q,¾(y htQP^x°s @÷âkWð¸122"VñùÓ²âqú9¡ /$?J/è ÈãtGè�¹i: ’vÐ&pÚ ’&P Õ¸dU Äeàx�?·É|€ðÞ2‰Ù~0ƒñ’MúH ¿¤F  ½ê«/¾þe��O_>¥VZ·ADÙ‡" FÈ(„ 2èåȉÀá´B- 4¹‚FÐà9Ô¹|ç VÿS`QTùÝ€ŽÐ�t!e«¾úâ£LEI[W[jÆ÷Zºái q2ˆ`ˆ“AýB™wyDТ»�¬õ|l˜ÎȸdpiñòñÒ�P|ý%—ð`G ãª¯QáÕSV]Fl #¿#„¦�3í_2 a¢ "c‚@t 2HÀ_ °}⚀y×J]#˜9{fæ»™GõPg@~P)�V}�JŸL&ã¦àßýøåcbë!€”ü7{ß&eu¶=çmÓw–nJ+ÍXb� Q:J4ÅNWKLPLý¿ôòõÞ{ï½÷^s]>ÿ¹Ÿ™3¾ûdŽgö|ûò½N6×ugpagfgÏ}?ý9‡j ”h# 1(-!,BÐAH5½�ÂE\‰@N€«½}½®’aˆ@&ù‡��`w¼…üy&~¾Hž�8,\²� g4y5Á_¨·D "Åà�M ,9¤sVoàIÀ.… ‚ðþåH’‰ŸÈ>ÀÝ ä/ø)þäÏ7ñÙó�n»�ëÿLì€z{A°ˆ�Øóö�ÀˆÀ®"Ê…\& —…@N4å^r”t„>l)y%÷ÞŽ9×Î!5IQùÅší…¡b‡8¼K^`zÂå!úY:ï"Ì^²J æ ðý!Z ÿÄïNÒK̸|©)Š*‡ëߎ5Ù— 1àG)€ ìÞ€] g£[±)}�TÎt¥ˆ|@V¡@ö��ÕÏ�øÙ“þÿñ³†ó=L¼h"³Bª¼TO!%/9b`YA�Þ€3$0¥ÂøÑ"¬?:¹ÛPÕ ÒçPòŸð÷<: kòç•øþÎ^N>ãd /�¨òr�&{;Ô ¤ °¸…@†Â0ý2$"?Rl´ OQÞ‘ª(&¯˜4Ì�ä")˜ABÐCôÙÚ�iÝäÏÖêgOzIøüc䘑͇Ô ªH þÜ^ „Xó–° 8D ÞYâÁ$5KqPÎÈï-Àq�\†î„`Öà¶ú9 ~w^¢T)QtmL•#šÜ¯hICŠ‚óh„G¸E`�]âE.ª+…hŠ 5ˆŸñ³·�qBÐ_rLþ\�~Á‚æCä_Hÿè~š7o½úꫜ8ý§ú§vð~=|>Á�n‰A~ ˆ€†öbH!��ì#`pT R"�<\äî?µ  àž�ß7®ïÐwŠ�È:ñ3 üÀ|è€ì]þ ˆŸéÛ‘øØ±cßžp)irV"üŸ!îfßç€C$~ÿ÷ŸŸ;¾+¡ê«½ïâ)‚#!9‡7à�x{±ÑøÁ€‚»Csa%ÀK€ü‹@¡€¿0t�±ÕÏñ; '>\±DaRpy@ÁÌ€ÂQ|ÈÙê!ö £Ð¬d¦Ÿú©Ÿò‰Ÿû¹Ÿã猖°C ‚@ `„Àî ˆ�À$…Ä[‹ÜýÜRð!!2�ä2Nú €þ‡B2 ¾ˆïEćz÷ä?VÖɳ:%›Š\ðÜ{¡§ÀË3ÔÕpÙãˆÖ¯_�ýŠÞä¾ïû¾�T (Z¡àµ^�§Ø…@†Ö�À)ñ–„G€ÃE!7üy�p ¾Dç"஀è 1 Âf—Ì ÈÀ ð|è€ÿCòç†ô?û³?Ë¿˜¨'¢èÞ8UIê­LH�£¨�4×uÍÐ$è[8zô¨÷kîsŸ£¨Q¼¦HÕ×™øx4‚`)24¤7 C·ð¢Â¸…K#Þ,TPüóg% 8ˆ%ã_|-w¡@ Á¡€æŽ$Ößø“?{«Ÿ9é-¸òÊ+ùƒS3•÷ÕšäL®N¥gª}0¢ÂèFh\ª1¹@Q�óœ(üÅ_üÅA¿ö‘#G(©%o(Qõã})H!àG)Ò+h/Â!�SLN Þ˜ð€pYÔX+(�?�!¸ú W‹ø=U Å¡¾r¹ÈP ó„ ¿йèÔ)¹·úÿŸÿùŸo¼ñhÁø€’Í%C|¶šÕ&�Ò±v²¥Djª¢B¥¹?onã1J"übqS+>S<·DÛ÷±téRJzn”¨¦IT%¤(´ƒ6�=Qh «D%œŒVǤ.U¤BE'žxâ�‰ˆß²øAsêl�»àu5÷yÅ>ëÌóþ Á̽Èù³$½$»nIÆ�yÃ"&…!šø HeV9X§èž„kâl�fi\Y ub#?pæ™gâöVëëüÄOüÜddBÅmeMþ¾Þè5�¢ÀÄg1�Þ�[dn”ÄŠ X“š®(ˆÀÿZàîƒ8lá㦰ޠ±DcuwkŒj~Þçñ!yýEÀ dŸô÷ü: òç‘øNòk׮Ň…øÛx:"?HfWz¼Já Å4]Óy¼,“s xÞ… ¢Ì×öµ¿ð…/ð!âà蘊�T¨ö‰¾wñ†‹‚Eú4,B Ã[Hv‹J„Ñ� Z—4æâä÷äaâG�¬ºQ‘Z�z@?®UTXÓ€U—7À)NÄÂkÈU(�AB0p‘?V?+ÒüäOþdãÃîÓ¸?IÅû’ü½’ü†p =YW$už¢B/@c~cf>4¾¼C¾¿3Î8£õ ‹ÆFTz¬jÈ/…@ŠBZ Œ!9‘(´äœ9�hUÌ;B<žÅ?Ÿ! ÈÖ± Îo?äÏŠ‰¬(x( µAc½"µ.%À=ã5ú5.äÏõ�,C�Œ½|†� €Q\@öäÏžø’ô>˜={6À`v z=M~‹Õñ7[_&!“±r Nñ툑›xÌmįáÈFµà’K.¡ŸþéŸæ×þ±û1þšA0. Òî¦|2« ÏÀ%mCä:�*Àw Fr€—˜ŠC"¾§Hâc¢ºAQ°&¤psDÁ¦�‚�B¤Ð¼¬@ã@¼n¡@ž¼ÐÉ•�WògIz dÞÙõ?AQ²­ü.ù_q�_ß�?MJXòðŠ�«¼?ïêÆ…a·ëp¿Á† nuùÙÚ@òK!° ‚‘#p„NH5 … ›ð‘� c’‡× Ár˜ ExžàzE!îØS¸U?n‰(ØÌðÞ^À|Ó˜Úºœ$ƒP ×^€— ðoüÉŸ½ÕÏŠøÿò/ÿb€Å¨{F¥ˆÂ["ò â§I‰›-M|ANÆªê¡øŽfµ`bÓ}=MÞ××(w•µÔŽö @�aDAŠ�U¤7à!¢Y¨™ ® ™øK¼n´Q >2ûm,~À7 Å»Ì D€ ¬p†Íí™üðzŽP ã„ ¿�½€ü6È3ùýHoÇ�þè�ò‡�ˆ(Z•tóKò3éñÙ‚§ˆ\úX…Ã>°³Yì¸ ž¯SíMMð£M¼É�‚`™(„H¹CkN@v b¯JÜuz*8[ [âcp(Ú”`±¨Ù,lnzo/à!‡p£F©éŒå MAò,‚þeÁ fŒï)ú—" SògB|ÒKàßN›6�JpEÀ1®±~vòK—_Z}A|ý˜&¾!4«úû’õ%Rç+¾õ,-•gëT×ÿN"õxL‰�C¤7ðz'ဨˆ|¯W=³¨Eü°Q n 0<”Z1.n^€=hã,kzUš‰bOd›ÌÞ ÈXº€ü’à.à.}výORTÜYN—úÜä—.?Ãnñ aëoi!x�ÃŽûM««¯�Äßéo)Vh“xÍ.¦YH'ÑP8{ ë�)‰ÜRüpãÃf±hz½¸Û Ø¢`/ hy,Ò øP³Ex6‡Q¦E8ƒP _^€€ßýÝßýs–¬€l¬€<‘?+âò'¿ø¨Qt;¯Þùé ìĤÐDL ôzLñÂÄü�S"ÀûHyn°y€�TËpñÉJ³_ YÎ n ±2 CCéí€Á{›S^`ƒ¥$¸¢Ù0Fã ;@$§¼½ù�d@þì­¾ñÿõ_ÿµ…+V4,íŠJÏUe“�%átç¿)‰/È/q¬);+<ƒ`zâ{‹T}©·ù÷í„ExÂd•À!=iO  ”ž®’š�ŠÕ·ÿÖ�’�–ÍÅ#r�X/@Ü7øHÊ Øžòà¶d Á�½œ 4ò È…�¹NÈ ù3 >È.ñ3?ó3øy|7^W”q¿°üòK—�G ÜÄOZ’«À¢"·³‡L¨üT�¿G~¿|~)Ò°‹€,Šù�# K¢Å�®?¥È?®À AŠ�á2S³RLlryðŒ°3ål‹W\Ùê׸Š[ŠAž|y”;� 1€`»äŒü¾Ä—˜;w.�­síÊÖÚ¸þ†‚üÖx_X}‹µÇc #[¨ìaKj:éâbŒ$!¦Å÷‹çu„u )¶Ä ŒD‡‰y÷�*¦ˆ8o,™.A9044^À`’�ÀÝM˜ÚJ®‚¬™yôd/¨ÏBº‰ü’ìŸùÌgðap9ªøhYºþ2î7Ù~?ò¿Õ‚ð#Ñ�17&�|òÉtÁð�»Á˜€â»ýžÌ÷Û_£#°ö ô½+Gê¯/"®fâ§•ª) æšÌUÑ%(–‹î„ “�;eI0<˜ Ö XÕ¬ô6[°NPZ׈eïdŸ Ô¼n+@A)Õ‚€ÌÉŸâøN?ýtŠ+1EwÅv× d©OÆüÒåwY}@’Ýàm`d Õ—5á/ yçàYg�EçŸ>�Ÿ0ž—�„s#ªìï‘ÏãöŽZòBLŸ@qW…}FpuÄÁ{Áádò‡wET9”. ê?{zqÚ `p&ía€ºˆËƒ¦E¸›¼ù¥äšüÄ—xâ‰'–ëBEå=UX~·ëÏÄ÷ ÿ1»Å—„7è¨êP@M 8\9÷ÜséœsÎÁÄ �¼ª³וð~Ìó:C)20BW�»[ÔhRRL'¿v©\"Õ£(¸1D% Ý%hõd.ÀZx\z®d # `ý{š—eÙ"ìïdؘ½è wÒ/ä÷ þ¿ýÛ¿1þàþ€1áè�’õ®Ä»þ®„ŸÝâÛ‰/ �?ÛQy¾Î¥Á(‰Ø 8ûì³ù±Z«r÷b8/¢Êsœ B`�]8 ÂBXK)&û)§œÂ¯yÚi§±7³ÿKcMz94$Ú„¥ /�,)/À”E2ÐÒh Ä „ì�I쀈Cåä*(bç/Ù‘?S«/‰o°xñbžUç‡8¬vëÿqÀ÷·Èÿ¦“üV‹o%ý§Ú£úb/…s"ì 4€¼È Rrn²²„÷+D@’¿½T^h_]¬(¨'1Äp÷áu€(ðBx‚‘'%Eƒ�˜^€¨R„õ—®?à$¿Ýê[H_$@êdaBÁ„€N<íDš>}:H 1À!`kWcŽ}ÍÝýØZÌ–~oîeâ÷�èClÒ3N=õÔñcÅtчcÔMU@ö8½€ò!kIÐXzBß0`‘Æ„æç1Ãà ÈqIP Щ`àorO~âhqžp dž?T¢j»½~L~aý?awý‡„üb÷8P(kkL©ÔW¢ÓÏ8�ÙúI“&±5çíºcFS¥Záf¢ž¾| D7–ž=xƒ¸�XUo×�îM¨²§ÞBÑ%8X/À,mSt„Îj€{ p•F¬1‡g ‚™, ɽè�€®#?°sçNN’…ׄ°PràÇmý­®¿$~òK⛯¹Hÿi ,b€Ü@rO‘×�ËEXt�æÏâd”¹ÐÓ>òkOþYc»õ7 ?;ù[î—‚à†ü·üíE ¸µL•Qš8q" \„x�©÷´õD.@Tì%Ájju˜»`k òÉ8ú¤0SC5/9CzÃ�}ÜŸù�9sæPRN(˜P²½ô®ûÿŠ%ûïJþµ[{Ü/É/ÝuAfÔ-ÏÉ0Ð_�û�F¡wT]QqGï5-ŽY�vÃB…âBgSÐPæÄ\€ ›Wº�i� ƒ�¹ dSP¦�½õÏ�ü_üâùãæŸ’]°>2þ—Ùéþ§“†öš¿��ü¶0  ú…ûŸöì�"k_QF�"ðŽ¡�íO½_‡�®¤?„La€l v—�ýrIˆ;(·MÓ(pc'Fƒ8x?‡m° †I ÝB~à?þã?8 ˆ_¯ÔªG Gþ‰ 2Ö²õ×éþK×_Æþ=–¸_Zú49ýáóÚ€�%´ #€�žwÔhEå'kx¯^€HúTƒ)Ê~Ç\€=hÇ]ÍQáj³9(.€´ßQ€)@·äŸü ~øèꫯn]T¡ÎT<ñV="ãGößÑñ×c·þ2[ow凿5“ %*V¹1�@ïÆñE#"a)7 ‰-B"è dkðá6‚¶<€»@Îx I/À ¡,ˆ\@Tо3ä· @öÖ?Cò >|˜ì ôG^QyOÍÿËìÿ[–äÈcµþÒí—V;o@M¼^“§›¶ßw0 W=Ѓ÷d÷ŽI°„îj€,Š<€ìðJÊe¡�wÊ Â5sÉ È�k�;²€. ?ðŸÿùŸÜˆE …BãF^5IQ²µd‰ÿqèmõ÷Nøõîd å{“µE4þàw /àôÔ^ê5ÈŠ€; �ÕÙ,óî~™܉À¡è”÷@îÙÞ�^v8´  ÿ¯Ý&Àßúç”ü ~øÚ�øƒ7;÷£Ûª¾Ø#<€ŽÝáò‹æžl`/)bäÊßü=¿ƒÍ¸µ×úð~¤ ’�† ëïÈÔk?€\"�b0(ƒJ€ÁÍ•¦ȫŇ {ëŸ)ù~ó7“.¿ürþEc9h0#ÀŒ|‡Ý÷dêÐú×;$ðÿ¶\˜,+r7$r='žt"²Üø™¤Ø“�oÊjÀàòU ãÈ~GC�\š]%`©Æ5'³ë�ÏË$3«äJBòhý³ ?ð_ÿõ_ü¸gÏþ°ùŠ¢ø¾¹ýð�úq¸ÿ’ÀnëmÃ�Aô$÷r)À#Ñ…ó é÷êÞtµË<€½@\+ŽD ªJ€¸6Ì!÷k|°y£qÈV¤Éq±)ˆŸ›r ìÈD2³þ¸þ¾äñ%~í×~�·±7ÐSxeˆ©:{ýßÞù'“gù-ä·Œ w ðˆ°R�+º'ŒÃ¾?<—E<ò—åÀA$þ•9,K�VX®q‹Æ91ĉA|À-9 ø‡è'ù´þ�_ßûÌ3Ïð‡‹˜™l®*â�‹ 3þ÷¯ûÛzì“„N$wñ‹g`ìø±¤.Qæ¹ìy†ôìýîD`•ŸR }·7³ü%&>:ç@Xܦc Àà}+QÙä÷·õÏ9ùþû¿ÿ›~õW•f͚Ň£µn{Oý½€âÖÛ”þêVkmÀú.¸�«ìŒ; ×  päXü<�<{᮸Z‚Ý¥@qc�€ÕªÑò{17û˜ž&䨱c)Cêȶàü @öÖ?WäñÓÀ÷<ýôÓ¼H$ÍCÉú¿]Þ¶ÇÿõN]IL&§x”"àh,Jn.bË/ ÀÈÑ#)¼.ßoɰØù%E%À·h Ã^€õ‹T£Å·—‰�p„3ÄÏL<¼€ÿ{È¿õZòKâKüʯü Íœ9³á ŒŒ(º&¢Ê�k�€Îã ùù€z“|°ˆ=,½#{)º=n~¯®�C~»öR }&@îh'�õ¨ûTcÑG?ß,üÁ±ȧxˆ€·è¸P @>¬ÈüÏÿü?ÏSO=Å4ö ªs7–™vdÐný%Ü^€@rM‘×}ó °¾:ÅKù^݉@wG ½h› èt(H. u4«B*ÌS��ˆbcY&ò[D ;òF€¬ ;ëŸòƒøðf̘Ñè"ì)º9ÆZn�ñ¿%ÑgóõN«Éü„jõ{•ž Å+Šø÷þ•_�½CÜ lˆH}P™{ MI$Fk,ˆ/ / ¯¸ C÷?{ëŸùðÜ»wïæ9ªD¸µ B‹xfÿ!^€3Ïωyù'¯ü®–Ј¯[� €†Eg3�e*p�‡l‰IÝàîSËÇïdñ»ä È…`R �G÷?{ò;ˆoñ`Q9A8‘l¸=�+Ç•ˆ.‹¨wD/€§ãu|° ÀK–í@pîØ‘PpOÀ÷¨¢2%=@ü4r)Rr*Ù'ÿìÖ?äÿÖ·¾5?ÿó?Ï¥$Ž3'Pº€]ý¡ñ¢K"Ñ?‚ )'˜<î€^€!€]E —…T˜¢LIÄÃÏ€�{ùOæWrcý3 ¿$>€öæ[oæ¤ Vo—>Zõ¯È$ +0ÈÎÀpFH#G�ļ�'r.{ì!@¸6"5[¿¯UËÉ ñýÀíä<˜�¸Ýÿü[oò[ˆÿ×ý×´qãÆF ñUÝ•ƒ=m�±=Ë€=vòw\À¡ý£úùwŒ%ÉC%ù<2�» ÚR$…Ìþ˜V-$b‚›‹mÐõ‰@oÀÁÈV²·þY“?ãO<ÁÙô0nÞÃ?îá¥@�N@g)ÐÕèH6ª �=Šïˆ+1vÚ«Y'= Zc‚ÑdöM�­Í@@ŠÀñ®à30€‚;€dÿ³³þäÇs¿øâ‹|0T x¹h|[«/‡�†t@ÓN~÷ó£ïƒâNÀ¤š`K°¿Î2àÐVÔ¼ÀÄú8ø ·/·dÿû»ÿ™’>vìߴ˱昀¢«#*?Uëh¸Çžô4ùûù½ÎK @-¡â¶²|�NÀã× nTX×Í^€Š8Ûoâ�Ñ.ùOw úÿ Ðî¿ù¿þõ¯ÓÅ_Ü . ©´³b_âµ ¿£qຄ“üú}&hÌØ1¼8éI¨´£"½Œlf†¨0ÙQ$u�j\àq¥Æ ½�$ÏJò_ Ì@ìñþÝëâÿÄOü]uÕU�8³“š¬8c^}½Ï¶(ƒ‘`)v¸÷2‰a9Ù`èÕðHJÞºi@·øß€`¸8bo÷ù±ô´D®-ˆ™i +@—†²€\¸ÿvòÿÖoýÝzë­ ‹ŸDT8«@ñÒ„ª‡{¨n[ æ\ "‰*þì!«Áðž!8ÈX NI_Â%˺Ç>ÿ½€�_âZ mMHMUøa? ‚Š[aHÂwa)0�}üïïþûXÿ¿ú«¿¢uëÖqV™×�� (þPŒ«²Û¯·Ý Øù�’¼�ðX ZƒœÃ!ß ”ŒL¨üXÕÿ;�Žú/Ê}h †|›oa2 �ÙågºAÖ®ìÈ�d_ÿÏÚúãuŸ}öYþ%™Ážðª�J�UäÍ@8ì™o®{oþu?Þ?`츱ìÄý1•¯ºÝ«àsª•`B¹(Ú“š¡9�K›—{Žh… Ÿ‡^€aéò Ÿþô§¹Ζ¢‘ºH¡1öøß à/�‘Ðï¿p6 {ñ¨˜J»k�o²W¼ºÝ+Á*ƒ»ó öx±çܦWPly qw6 @çîÿ�ýØ�ÑìÙ³q(L#ÏÅWÕ]·[ÂY p{®%¡õ!&??~‚œ Í¥Ì4ùÝ—„ïëÁžìõ`1…DT˜­Ë?.j ÁiAËá¥tm7`> ñÿŸüÉŸÐwÜÁ­£ÜB:^QtCD¥§ªæ‚Дôe{? ífà!F=}»ð}œ07¾!á˜�ÊÏÔ¤õ÷¹Èžt—!CAè–ˆÔ€Å�[†/k†#Z„ qW7y Üb@ö€ãWþûÚ׾ƿ´V=ÿÒ€’íeX$ëá5F_›0@@§^?J°Öýuç÷ˆ,ÊÀaç$`060 LœÖ_’_îìørP·È}€®]î›� IÝÙ,V›wþ]Áž�É €ÄR† [ɾ¸/¦ðÖ�JÏTØõä$ÔËM—ôˆk D@Þä'öV_¨Û¿Æw¦@�STÙ×#b‡õîÇñ?`Oú”å>@÷Ý€Ë*\Õ ú5f7“„ — Ívà® ûÀíþósÕFÔ(¼:ä‡ƒÇ‡ð¥†ØÃQ èÔ äÖ[>@„€£öïþ;‹°`gaá îTo5v[<Êì¿ýf`{ü/§ @gäíÀ¸äÎfkœ¢q9·§· €;ùó/Àƒ›DÒqÿ@p‡öd ô· D ]2УkÐŒãÑ"Õ”`ÍN˜dì‘™iýEòOdÿÝî¿%þ·L:€– ëN€ âzðû4æiŒÒ(6ošªQnu‚ðÃÐ-ðGôG¼±'\âÀÙÃ[5@&í^€è °‰€ûН: „ÀN~Ó_`YBx¥�aã'Œçß±:IQõ…^ªwlýÙgùO€ëjpw@–ÝׂXÝÄB�Iq3Q8£é¨–70,Ý Àµ×_KÁø€’m¥ÃK2Ж `¢ØB�Áˆ€Cl@~� IüjGz!ìà÷Ìðb¯³ì'¬¿HþY³ÿÖ-@•ñ¿5èºÜ}1¨Z+X¦ñ�q âó*ñ)õ©@�¨ÃÐ ðÍo~“{‚yȰ& h“ Úz"8B·¸oþ•ÿ-¿æx®Ú˽܃kÁYNn À1éúÒúwîþ[êÿñ¿[P^ ¾Þq58ðáfãP±éœ«1žC�vXÒx? ¾~æYg6¼€­ðp ›à0ÀÏ ¨u”ÓÖUŠ +=n8¿—CÀ©,¸û�]Ýê =†üÂõwZYûwºÿî @K oP À:‹È«Â¯7Äg!09�ax?–%Þxã ¸y½€—:÷dEÀ•4¤r‹€¯ 2ûÀ" ÕýLz^ŸuÊÉx‚üíêþnë/ÇMößíþwÿË`g�@Æÿ\VHoᇠÿþÔÓN¥`¼€bÊ ÀAu{²/@&-‚îpÀ° †ðoÛ/©i€ÛÏsN> ဠ¬Ö_¸þ€ˆýE믥ù§s÷_ÔÿEüïè´'#¨œ1`’0ÿ9€áVàÎ'_{íµ†0g^ €;°ç„ˆÑa›ø‡b…¸ÈŽÄß 'ê%'�Ø€Ã=ràÇRöó³þ^îÿsCÿÛ€v ˆNf/ÃÃ@~"à!xŽSN=¥álàØsö² ˆ!EÀ0¤H!�bà†$½|>¼‡â#l2ùq(X’M%Ö÷ ×_ZûÛ“ÈïïþÛêÿîøß‘”XÚœ(0@Ü!€áiÀŒCŽ9Òð®B_€Õ 9Ü¡€ÈØEÀá âuôHâ¯/S8%¤hlĽfk.ODö4zäÃÛcªì«§Ý~{˯¬ûÒú§›¤ûo/ÿÙëÿöø_&ä_Õ Z—Š�wëB<7â` ÄÄ›‹²"àLÊPÀ62lë" „@ˆ�@§W9ÔCÑ5/ÿ¬T«tšípè@~\ 6Aç0ˆ‹B¢8¢àÌ€âJÖq_áúwnýåì¿_ö_ eÿ/lÎ s0¼$yàðáÃ�,ï•�ôиbÀ ¸EÀ^t �ƒÁßÇå½`Z@År‘Î>çúÀ 7Ñ-wÞÍÚÀìK/£]Oö8Ýq×BÞ�Ž)Zšˆv_[âOÔý�Ö_$ÿXDó�Óý2ˆÿQþ›¤wœÍ‡àÜsÏ¥ÝO=COkعëqºìòË©8®ˆªA‡ä3ÿ¢îï°þ–ä_gÙ·û— ¼g°{/ñ€œä2½pÿþý /಴m( «"à`„i²'­b HŸFùéÅãbš:u*]5ÿj>@sæÎ¥ç÷¤cŸú ½òú'hÏ�è‘Çž kÖÓ¥—_ÁjÆÌ™ôôs{éáG?FY|/õõk!™ò§K~ר§»þdæ_X�äŸÈþ‰û›F­uÍ8È=|7àwÚå xX•Í^Àƒì¤CKUÀ)BÚ†öÜ€ƒQÜ¡‰ÔW¢¹óðm¹§è˜~͆iÿ ‡é³Ÿÿ.úÜw}‘>þÉ·X¶?ú-]¹–&OžÌð�7ÒöGvÑŠµpn¤p¡2ä7Ä—ä‡WdMü‰®?·õw$ÿ"_÷í{tü�5°ãÏ�X¾Ã®ß»woà ÌP8˜2°çì"Ц[Ðâ ˜Æ&½Cä¿KÖ©Ú[eÀÁ»J[ÿ‡¶>Lû½HŸý_ ïû�¢/|ù«ôú'Þ¤§´Åß°yÝ “„8lWè\Á–�ÒªurÉ0>;ÆÏ-É/ã~Ùò+{þ}­¿Hþ‰åCáþÏÓZ[‚‡¯·@^ò™ŠÞÊcØ-Kpx5êíJƒ`¤K„€Ý�aàÈH¤"y@¥Óü\ÿà:°nãzN‡ÛÞÁ^ÁUWÍ¡O}öótððvùï¹w9¯Ç>Gç6nÝA÷¯Z§«çR|rLå½5Aþ¶%¿Ôº¯6‰¿ƒ®Ì¿GòogÜ®ù§s÷ÿn�QkþÝt'€·  $ y€ì½3ìLT|W{& ’‚@u0" CÙ=È�B Rž�‰ZÅ�*÷•iæ¬Kø�ÍÑy€ek×ÓãO?GsæÌ埇yß�ƒtDçÛý4­Ô€ހum¡%ËV¡A;Q´‘_Äý@ÝVö]éÌ¿°þ¢ôçHþ¹›ÖZjþ ¬ùwé¥ Â¹–üÞïý^FÐ^ž q¬�îˆÓ DÅö ‡r�‡€M€i1àï-nÓÄØ\( G ú¨ü\�Šã‹tîĉ|˜§MŸNYºŒ¶éØ~ãÖmtþùçÓ-úöãïúÒW8 xâ™ç98nüx]18ŸÅ`áâ¥4fìXŽ�+ë†ü2é'K~Œ²Ýõ÷²þbòÏ‘üëÐý¿A£Øõ5Ä÷ºó™Ïà`ð¬|òhn¬�—èkï Ø…€Ÿ'ÙT¦`f@ѨˆGx+ÏÔX€š@=…šþÞpR£ßÒäÉ<Ùù�ëo¤Õ62Ù_{ã(}ñ+_¥/}õëôÚ'ŽÒîgöÐÝ÷,ævÕÜy´tźö†›)NbR—vòˤŸÛõg0ùEÝßÃú[’¸ÿ‹›+¿ �2ûû† O^€[¦é޹ kÄÕÝ"¼§0œBP=¢‰ÿ`‰‚©E#£Ö8j<:FMž=7ú(^S¤êˆ*Í¿új­ïdÝpû‡ÑÆm;虽û™øÿï _BIPçv±ë?VüEK—ÓÝKî§I“&SXñ^„Û/Èߦä‹_ÚW®¿cäWÖý¥õ·tþ‰äŸ»÷¥ÆìùAÿ�òßà/€€„ÙŠ€ÜˆÂã‹&Ш»DDq{",¨êçŠ×ùv⨯AüٗΦïùžï¡[n¹Ã<<¶ rÛ1PH¢‹#>”—]v-7ݨ›6mßIÏìÙO/½ú:=¸q¯Ç¡Z “†‹ï_EWh/ój¦Òù�Á‘„n ùæ�hMBå}®çÖßžü³õþß:°æbçáJ0w 0çàäWæÌ™Ó�YîàDÀé ô5µw¯,’š¤(î‰ùõfÍšEßøÆ7ZïcýúõF@îŽQÜ^¦ø”˜­û5×^‹L05’}Èsàwl-ÈÏ®?*8Táä�Šd©ÏN~ FÅ�UZl¨‘ŠÔ\EɎһ䗉?OëoJƒJþ-8çÒuë­À9€x"ðã?þã8(l‘£å1\Ú6" K„²m¸½7PÞ¯‰Bê¸?!éK(ÙÜ�¼1ðÏŇ5©NOø0M™2…®¹æZý8•¯ÃÍ@óæ/xgñ}Ëhá=Kh’*Õ E#*=^4ùñÙ •ºÐ›Z§¥×r‡ C*>YI»þöÄð±N­¿èü““ÒõW­9ßK:'¾ä¥èÄ‘E²ò Rn¾ùæ†5;eÁŠ�Ú·‹€#$(ï©Q¼$!u®¢¸ÊÄç|׿üek>÷&#*n)ƒÔn|œÁ!PÚ¥I}iDåQeÙ?’.˜4‰æ/ø]wý Æ¡ç&˜dLBÁ‚€JOT�ËŸîï>íË}Ѳ¸‘]Ÿ×šªã\Š*kBNU­K´å·%þ,=ÿœùwZÑù§awýAdòç;h+âwkàþà'ÿðÿ@Ù{ù�_þå_æ‰Ë‚wÅãÚEÀ”ŸªRüá„Ëjq¹Aü‹õ¤Þ¾ð+ñ >÷¹ÏQ22¡âÖÕZù|M šÆk o œQ|NL¥KT­ xR‘-~0?À߃øm­> ›�ü­Œ¸8b@]¯H•)çp°Ù#[ uM@ñÃEéúËžë/“KØ I·ûòwk0{È¿à/R-ZÔ* Q
    "€Ã‹pàNÃ0 ÷òŸ] pQDÉÇJ)×_.üHwýÉÌ¿°þ¶½ÿÂõÇÁé¥tk °— i”€ì½€|‹Àïþîïò‡D…ׄÜÔÂ{„˜¼Ä ¸£Láu!×ïqèqø&Mš2aq¼>‡£Xhxðx-�žtM_¿�Õ70â&ÈÏB˜ªõ7…|¡F¸$‚àPƒüÜ“€CÏ®xM‘š…° v'þDןÈüÛ­ÿ-Õ–õi!D’üöúþãÿœ €B0;ð‚­[·š² ]8ðÂh�!Þ\â G‚ ©@á{0– ‹?hâ§}�ØIvIxIz1Å'‰ÏxO—¿=ù,Áb�piDjß©gÈ�¤£$L&æ„©mKl®»º¿;ö_Ì^›!?ˆòû[ÿ.ß_rçd/ø™`½X. t2¯Âž~]âŠ7)¸4 plØr7gÏž-²úÒ[ð©O}Šâ11w–Ad$Ù%é%ñ ê"ÖV_�¿"ÈojýÁUß<Þ“êU A[@^Ÿ'ˆÁÞ@¤‰{^�‚%!~&ñg±þ¡Ûú›%ª•Œá»J:%¿�¿cŒdïäAÜBðµ¯}íÝ²àŠ„ËYÑê„Ôtn×5–†û¾÷{¿·s¢;ðöÛoc�7:­Äv^�>ã â·ÆyÅH/�òtI~ÔúÕlÅ%ÀpYŒuã ‡$¿N>¬üùõH]¡(\9²î/¬ÿÍ]¼�_ºÿÝÕ”½d& {žDÀ&wÝuW«,¨.T<:lÙ5×\C?üÃ?ìAr·À³@’Éì†Hæ Òk�?·#þK.—_´ø¦fûÕ4Å ¾hEŒDikýãh=I”R°Ú캫mŠ,‰?{ןtýA?ÿÖ? »Å¬�7/À_ü…àOÿôO�ÛÊèéí¡¥K—ÒOýÔO 9ñ¼þ±cÇ(¨¤È,I.a‰í�µ®¾$¾°úÂåí½L~·&(Z“ª*�H’_ @ZpPù@³Èrï@�‚{Xþάÿ �YjÀ¤ß°XŸOAÿŸ�—t½1xùå—ÙÚ¿ùæ›ø3!}o½õ'‹-›NC ê@šìm²ù2«؈o¬¾ÅåD‹oá|M¼IŠVÆ 0%ÀN~äŸ@8¶N¦wàjEÁš@$þÚXÿ›4*-ëRÚÉßý @øù;ôŠÛ ë„`ö"à/Y’^ €¯¨øXŬ*·¢"ÉÞ‚ ½y|Q_�_Xýò~;ùÑÕW8W“uŠ¢pEÄ�@ —�üvpA ¢Bã¹ïT¬·$þ týA$&÷[ÿlàoÿöoYòâø‰@öB`�$¸/ài0Ü@ü· º°ò©?[Io‰õÛ»ü{x²ïݹþÇËètä)ÂpYD*Q Û ­8‡ /=»·qo¿º×âú8ôxíað@ @·‹€‚ÜàèÑ£¨•ó¤Èk‡$¾$'ú¤Õ7äç`¼1á9€à–€‚Û¥0ù½¬¿$¿�6V 5ò€” ÿq·þ]'øp3€,E !ÈžÛûNf‘?d'¼5Ɨı>¬¾$?Fz£ IcðÎ�‚ΑÅúû‘_€�!þûÚúËñ_ßò�"[ñ;€î�\‹Áî§wsŒ[Ü]‰�p^Äö"ÆoGüçìVßÌóc¡G´6¦Âˆw‡¤°€ÄÞ‰?)nòg`ý»Àý÷@ @ö¡€¿ø A¾Å¯¿ëñ]\ß.í.ƒÀ.8,¼ø³ñ%ùÍ"ÏpeD…žâôó›«Ç%ù»ßúç[0Þž½ä]¤äI äk>üèüP¤¸» âvŽ}nÂE UÏ—q¾Åê òcžµÿB­)3¥ø“èœüÝUúîö ÿ¡E22�ì…@ŸènlÚ¾ õu,Õ�‡½{Œ¥·‘ÞN| ñÍ*¯àÞ� å‹ôãIþ¡pý3°þ]›ü3ÀçÐNšÃWJµ�€¿Ñÿás ™yBr‰ [6`Ä mÇiá�Š ½-¹'ˆ/bý4ùãÔ&.ý%M¸€r²wýóoý߀×Wò(n!È·¬yp Î,€| p§°“]ÖñíħÄJ| hÈÏ›|‚»*Äž  ×Øú[³ÿnÀÍÀ� ÐAÔ-"`‚üŠ^ÃÆ �*ÀGKÍÄœÏÙ/Ü{«µ·�ÄÇ /,ñ >Ä!à™€(޲'άÝÔü¥òw$€(à/y‰¬ /±eËJ¶%L`ÙŽò»xÖNvIúŽˆ¤ˆoÈovø©ë„àd¾|Ã#îÏÆõ÷¶þ9¨ýçBºQ¬Bà?’;°iÓ&ŠGÅ­O q ©]wÞFz;ñI|³¾[ÍW�KA>P UW8¬ògàú{Ôý»Áú’üR@~§èè€ü‹€�ä6là[„‚�)»ø¡„’]¥Nˆn'¼$½°ö"Æî¾!¿YÝÝXà©.o ÀUÜ—�Û;×?O±ÿqrÿÛ ˆo|¸B<¼È�äQ Ö®]ûîœ{%¦`lÀIÁ`v@á‡CŠHt…À\ÝAxCzií�Äb³·Ÿajÿ…³[ 9:'Ž\ÿ¼Zÿã*€€ü‹€¿äUðúý×M?ôC?Ä«ÈV¯^Íd0‚Æ!©.â$O]žIï²öÂÕ·¿±¯omÔÍ-´fòAL+ù=âþ!sý�¿õ?þÉ?!øyý ß"�½HdMxð3àúðÅ‹¿{ËÎÉ ­¸ ·•è@, ÿÿÙ; Çr$ Û//ôÌÌÌÌÌ0̼š½Ì2333WËÌÌÌ$Zf^­øD'ôUå•Ú«ÝsÑÕWéÍHÿ2¤ŸËÇ/}™Ÿ*¾îëüŽ>¸�åIÀ˹à‡UOP‡_¿ô·¶úk”ÿ} @„ÑÀõ€VžTúÀ«\xڀ˗_~ÉpUo䎺)€g`à#ôùÕ>[êo''†'O~†5_öëïûõWcÔ@Ç�Û"ýj—�‘ô¼öÏ?ÿ¼ U}D�Oã% g`ϬôéjÁ—œ\'ÑDðyÒ3| =G~�Òà¯þÜñO ð÷.Ü•€Š8�}šÏ>û¬ùÆûM=wä{…=6ò }=BO©÷<¡‡ÝåGT“‡bà-Ã�—þ¶öþý&N€E è‹@bøLvÚi§P[ªj�RÏÀÞ7ô1gDðåáœÕ¾_îÝàš~ ¥?tèÇþê¯(\ª"P��Dv çž{nu^`N-]RožSö ½<”SÌYYã#É<¡hø‘}¿~éßÿ«¿Ž¾þúëFøÐÀe`]z"°þyÞ|óÍà<:±Èó«{L½è9 }|('§˜SpùÏ“<_~¼ôÇöW.ØTv%€‹€Ó¡Ð·äÓO?­ž‡·w‘��rF|²ÒGè%'KN*ƒŸêƒ/=4�à×lüXý[À×�ýwà¤À%€÷´E ± |&>ø`%€} <»¡/3ÐKN¬5Êé­ö�ùÏøUá7_úÛ\ýüùçŸ"- Ø�Ä$ði.¾øâæwðýä"BAØSàû†¾8QrB­yøGžµ¿ÈU€Ÿó…`­þQ ÿ"@ÿ`‹èW°,Lxô@o?ü˜òA£…bvÁ€§ ç€—Ôz�>>Š›ã'yî1ðd‡á:þJ«ðÞ·'Øú Õ ëáŸg£�6 µej¡XPÀ“œ”>=ç8Nõ4^Ç=€Áž'h%¿=øñÒßþê €HÀh5�¤S¡ïÉc�=V}'`}jǵB. §°Gà³ÐKŽáüs|pK;žTÀ~_~C¥¿ÁÕŸÃãÀˆDÚ2à˜>ÍÎ;ï\íÿò­€ga狆þhÉQ”…žïúëi ø~¨ôïÿS�èÌ Jï ØA3°§yùå—«îÿ²Eðó‹rNÑ;ìø<ô~?çÜžñ²�ý¾2ü†JýοÀß¾x`SàÀ«T"­€c9à€ªòsŠc"àYÐöø,ôœ…’™”å(Î1pø~‡lúÙ/ý±ÕÀü!З€¢ØÏ‹/¾Ø|ƒ‹%Šàgøðt�=|ú4»S Ç3¿êãð·ûq_G—þŠ«?Þ¾8,¾�ƶptª øçÝl³Íª½ÿ®òÑyÈ9à3Ðg2›²2Å9†ëºßïPø­¬þ¸hÀR‘ÀÀ�q!¤¯ñú믯ÞÀU]ðó"Øÿ×—Àd_JÍñDì|ø�}?^ú«¯þí €6€ ˆe�OÿÞÏO?ýÔœàåð2¸Cè\*dž\æÓ€ØóM?ÍÒ¿?W\œ(% à"d ›¾¡ÆÓh4ªÆßf>¸Ì@tÁ×=OB¼¯UßüöK¥Õ@/�$ )\öóþûïWoüÒ|:Èa”uãÕ` û†_¿ôÇýà Ë @CDÐi2Øm·ÝB­¬¿»®�ƒ e¬ ~ˆç È0·Uò›„?¿ï7Uú·±ú·/Xì_ý5/€(SÕ.“RèyM·Ýv[pNößsq€á, lÒþª¯?ÐôëüÒŸƒ €Ã Ã@�cA"\`”AÏ…ïrkNìrTÜ¡  ‘LpÁ�¨&ƒÛ…/ýñÆ_ .\ê"Àe`?cÇŽ­[ùà7$€Ã)›Ç#ÂHɯ?ÞôÓ/ý¡Æ&°¬8š[‚¼º2¸ýöÛ«óþËÁMcðŒe e Š\’ß>üúû~¼ôWl*\vE`]ü¦ñûQ.ƒÛ“�3˜eWŠw~gÂoiß� €’€}t”žyæ~ƒJƒ™IYžâCÖ_û}{ðãû~}Pøêé¿~ûí·H*ûRà±[o½õJÃÙ‡Rs<©ò<ø:Í>ø 4ý´ Ð�¾ ÌÊáŒ3ΰ_úë6�UÂ�—þ¸h0{.\æd€äÃ?lN¤bI…ÒßzÆS†ÇëÄñUßïãð›iúá ô*û"è!ìºë®šW{Û?!¸eLþÚìꃾæû·ä·¿¾h 3D`Vúr˜?>p%�ƒâV É<ÊΔ9Éå!ÛÇ{ÚßïëÃo_”Œì‹@d`%|©J˜;w.27«&मú ‹r„ ¾ð %¿ øí €“@M¸ ì ᦛn «®ºj%‚ÑeÕ<8~¨‘â�”%âÁ ||¿¯¿}ð H £Rà×ûí·‡wÜ18'gVuÕm@Sãøo—Ã)S)›SÇ ¿Â~‡ß¾h0ÿEi�Ø“Â+¯¼¦M›Æ“®9IÊÅËæcü>¸‰²'n pègSÆR6Šÿ1@ k?¬úà7,N""d`TŸ}öY8ûì³Ãn»íÆ“¼åÔ ßØ¿§aF‡W (³(¥é·.eYJ]À¯Eð»ð @ B0§^x!œþùaï}÷£F�êÙ*Ô–ª·š ~Sü^"…i”Ù"††¡•}¾¼®é”qÒÑ_›²¥”Iç߈Ä@ò\S_a¿Ào\4˜à(ÈÀ¸€¼ùæ›áÊ+¯ 'N «®¶j¨ª÷T õ%êÁ/ëƒ[µúF�ßÊWý„Ce¥�D™,™B™*™&prfPfJf ¸œ9”¹òdz䟛&ÿ�Éòß/�̽(ÛQ6ÐW¡,#e}AqUGŸ�gèd¥o¯»�¯úVà·/JàüðÃQD€Ë ó¥À¯ûÓO? O<ñD¸ñÆÃ)§œhØxó�ÃK/Á²¹ºÖ‡Ò„NYƒFÑdM<†²eq É£\’&ùReÕu_RVè¥Þe)ËÉ/IC)‡vQj'ñÕÑæbPѼâ¼T2` Ï£»D| ä7¿5е`�cM"•t€²á÷àý÷ßo~�?z¼öÚkÃå—_.ºè¢pÎ9ç„ÓN;-œxâ‰áè£��Fãßí�OKTQƇ*(ÚŠâß¾‚ˆ›h\‰PWmÚ«;wõ "ªM+GÜ ¸"hc™8i5š)GC£iS§ªçB/w:wæ±—áz^ø¡2�wæ÷œ÷ž{½ÆO(ªùþ‰~¡cÉdd±ý©§ >?ògâ|Ÿ421ø P 4äV@zg|àpÉ ñV}bäÏ€ü\HcÝpƒ@? ˆ@Ôë•Ñ—ž?Œüú |Aøú�ô™?ûò“€F¦>ø0ÁÀöÀÐÒc¾ˆÏ�ûüª/øÄù3²ÙS©Tª¸(’óA ´à…VÅî›ñK¯/¾þªŸYù%RšX•&¯¡D~"Ø0à!ð¯> é•Åò;äóùµ´P–k¾óóóÏEzý àÃÀ%Ÿˆa¤~éyñ‰qŸù3 ¿€û?ž§ 4ð©4wjjjId'‚@! (2 :…!¤W?¬ú<ÅbqI`ssóØz­æÀiðàà`äÊ®d ð´¶äçÔY4öP<>>¾€ ’ë‡A^öD !½–øaÕ'ÀÃgVEþ˜éééëõg9·ÐÈ[v£$ø Ð!ŸŒ©õ¥çÄòûÁS©_ŠøÂÐÐÐŽuÌý\B]DC÷¥áGr*à ý0àɀ膔>ˆß¢´··W·¶¶Žmù×××÷Ñû¸k¹¤ÂA7äOAcFGGߺ! ;�ÀÓº‚ó^ú†Æ|ñƒü‡«««e[~ìüÊçóöêÿ\É…†Þ“fÿ�Žãó W|ý©€ „€Õ7ã NI¯/~Xõ&&&JöÊ/ …×α…œ§Î¡»‡{%ÓD„@ „w1¤ô­*þ©“¿­­­ï׉ð6xøì¦»šuüpxë,ê�ûfàÍÿ500°399¹<77·X.—×¶··@5‰J¥Ò’!“Uî>Ÿúúúª�ÐÛÛûOzzzêÒÝÝ]—®®®D:;;Á˜ë—À²ÊA|{o|‡_±X|ÿ"ûRŸ{Þßßß¿ïÆC�¾�ª7!þ>pU7ñ]|«B&X­š‰˜šíždÜ©AB�`i}j°˜¤Á‘àô!çü333o¬•_X@C%Wnƒ/à·ƒ't€ !’ûGz Eéýâùy666¾ ïŠô{ PuÂ_Á©Á|}‚éà¾éëÙ½@x/øð6 $øï@T*¿GÚžà6à¯�ñG3@ʦ€¤ �t*¢(:•`Ãï„ÿ\*•6ggg_�ŒŒìÂ5Þ¦zm‘C…ºÀläù6ôœ�=bs�Øà ü÷Ày*”Òó⃠~cðô�ä À^_ú >I ‚`Ü×Á%à­?!Nòõˆé1–IEND®B`‚CorsixTH-0.70.0/LevelEdit/src/icon32.png000066400000000000000000000031561522247547500175720ustar00rootroot00000000000000‰PNG  IHDR szzô5IDATxÚ�—¸+I…ÿî™I.öéâÙÖÚ¶m[Ö¶mÛ¶mÛ¶…ç«`¦kçeº“Ì}¹«Êw¾êjÔ9SÝø€2dÈÚ›m¶Ù²AxZk¬ÿG‹ç-gŒ@DʈûzlÇk¢Ø¿wå•W^¬¼þ+¯¼rQ&“®”b.€´ïn– `þùçïNà|mØñ‰'~³úê«ßïo¾ùæKe³ÙáU„5É]ûò/çËi_á)O<:Z;Q`.ºÀË{[='ô³Ï> XTÇäž%--ŒáÚ)¸97|x#·wp³w+×뛈vŠ(îQØ%$¿[ž¶†¶îkkæ0Æxº:ù¿ê¨q{bOF¡êb4zPÇ?‘§ª¬k�–ðÙŸqÈñ‡ðû¿§Æ íy”¯c`…(tÇ%(¨çÉ�Ð@ŠØMÜçÒ}¸={Kï° »¶;���L›6�b1Lˆ}�À›Ûvˆã†tÕò™<;(úÅy* Ps .»õ2>ñ%fœPØÓðxæIÝr1öÞoÈJ…Ô£DЧQZÁw†!]u]Ìœ0‹Üy¢Õ" ™Bêêm{^\úêe˜a€Jƒ,svêà½à=T›* À‰A+d†Af ³'Ï¡kË×ìK×K¨°ÝV �íÁ�ëþÊï+üAË÷M„aDnÏ"ᎂªÓvN"í¶ŠR[Æ ‘�®äÕTYS¦ ïפ"XB§Bv!�›X ÍoÃl+èVÏV (y)Ÿ”Ý*[EFA¡µ�®€Ssç‰wpäàÃèýö|–W%>†u)Qd?··ŽÐ-ÐT„ ç”iÑt³½·Ù›v¹�Q� GÍ©ât�ØŽ0 Ѿ V¥›�ˆÁá{!x6 ñ…F‚\г€É'óÔ¹O2øÁþ`@¥ø+q†ˆ§œDgé’uê%¡×s½hüµÑI�W€ˆ”ýÍÜÌJ§®ÂÏ›ÿŽÒ©´¨ªõ¢eGÒ&eMæù�à“Ïx–#ͧ«ƒ/¾ù‚Õ_ƒ¿>„þ2Ý®M9Tb+;ñR9­n¯ôÚ¹%rÌî7#•÷Ç«Ý B[{kœ»&ÌÿÑ B ®Yæ0ª2O¹Î € ô�„öÁíê é ¸×©Æ†F&¶L@À�$r^@YàÚ€qL%²d¾Øƒõ ¤/ÈÊBqH‘¢Ó\YÎÜòLü¯<›L ÀÆ"”ÑôJ}þô}©bç ¤çWµ1Vu;h£gZÀÄ1Y‚Å "A*`©_`죘Ü,òÇ"˜¯CÄÃ$ó#©¬�({~ÿg ò‚ ¤^ÏÜáLêâS+‘‰A%YN>ô’í(*êY~ù™>mzÛyPMšDt”@¿§Ñ¢SQw•:x(Ë×-�„va;4¿Ü�ÿÜŽe—‚PˆEüÜïGîxàV¾‘o�áª4·ødŽðö2Ç –TÂêCEð[àxÊ|TÛi»žÊ+'¾B¯l/Ö³{0õõõìzéîIb„Ï–ù ±‡6!1BïOæ#÷{ŽÂÔ"j’BBƒLü�ýy-IB¥hnjæÎ=î`ÒÄIh­+ÿYQ%"Û¥„$WÃýê¦×á?ãÓù]'2¿ ^Tx�F*ßκŸ§²D¤úT¤�¢I#4˜Ð¶s‚‰,�@Ý—udÍÌ-}ŠÃZψáÚ©¥ý,Ú¹€r1{XÕ´$GЬ-ÕW[À\8b y)Û4†µÐ%9òQž¢RÈ ð’ÛýÓ¬gr+ ««+ê^ ííØ¾[î[‚‹ …ó/nºé¦~;ì°ƒ0œ’©s˜þÁ\u Ëœ¹,ËŸ±"+�¾2sM‘Ÿ¢utšÖa­¤i”RºC¡N­î„SBñúúzaD•£ù{î7¦�šÉÔÑSùcôdÄz&b62P J]J!bƒípê0PCôCK _, b¡ӷ Œ6w¬%Ü61ô¨º¬Ý Ï�àD$ñw·ÜÍŠ[¬HóÕÍH)ÛǤ2®p,áXõ(sæÌ¡�É#L<Ñ1Â!n„×ÎoœÏìñ³i¥5Ò±�¿;ˆ”‰c/;–iKÏp£j¯«˜»ëŽxàHÖØp ˆ•Ÿ…åÑsÆ@L† �nJ3kñYä·(À5V‘‰e"ч�†( øéžM? � L܈ª&�½5ÌÝiÅéETIyQ7Aeëôåd‘äVÍQÚE"V4IÏAµ¨"oäƒ"«¶ƒ{ Rô»þ0,™÷„9m¸íÒ‰92Æà[ûÿ-Vïp¾ÂºÕÀ|bG&1׉yÂÍ6âÙ˜@�R,hZµ|\kÅVëßÿÌý|Þç+ð—IÅ H¯:�Ôê­ô¡£îFÝ%1—[È^6⸢›šóøN:Tã½, ¨®'xÒ*^)Åy/œ�¨•È ÇB…LÈñë^“¡$ÈvËRÙúsfí1 Ã,gIêe=]Ÿê‚zI¢²^((bÄh”��ãWwÀ’R†Nê§W}¬WÏ^´ú(K,¾zÄb"Ž*QF¹¾"q­*H„)h*5Qÿs=3§Í$;6‹˜.è–î†2B…‡×L†. öñžcÚ[3áFÚ¡+V½¶tH[ß±¢X F�ù=èýAoºýÑ Ó4«SƒþÖÎË@ÄÈ/4SظÂ}(©J¹ãÒV¨Y 3c"c²]„¥, Û@*&>rta5qH÷!4}R�ÊU2 m”n_Ì„¤•ìp-Y¼®ÕðÓÍûê<`Ûxóä7ôõd^:´Q®x…xzÏé��=(t¯ÄQß"‡²oß¾ ï>ÌN[ôs•—ÄbÄ�¸þ;AÛ鬶mW_ÐI–J%~œö“—�œÝž iË øÄàøÇô…5_Þ̯‰_‘YÛ‹~ùì“ë™sŸ%BÞý×RFa{ ö2šC~7‚c�Mô*\tõþ¾Íû’š¢C(Œ)�'¯¯ÑÅþÿ%¤Gó¾Çïã=ùB¡ú(ÒýÒÁ Û‘Å·ob- µÐ}[}Ö£ga÷°YìI¶ûWs>Ü‘ ­~!«�‡�wÓúM# Û#9 :ô=Póæ}çýwxó“7Á$2äDI¶�Õ…GÊBG°ôµà†Wn`VßYt Ý °xë{ ²D P“þCû7}w<~<ûSòSHÅRäzå Žö@¯Ù¹ ~˜³Ì øÐSk5XzùÔŠ]6ÙÅ¥RŠÙ³góÊû¯ðÝ”ïHX ®½òZDIx·ÒR l‡Jxâ”\h¹jÍ@Ö¹Bæ-Ë""ô7ÇÁ1÷µãVëoUÉй7¯/íÂ�ªÑ‡÷É€‘Ïç[^xá…_þáu Ú|�‘Ö/ xàÔo¾ù&m9w�Ó›››ßPJÎ'Cc±X"Ý@¿S™1bD0ÚU¿TYêêêòŽø?]tÑ®ûï¿ÿsºª>Nm$ƒŸ×˜¦I­8ᄶчv_}õUº¥¥å=gýå·•“Ý››ØÍIEND®B`‚CorsixTH-0.70.0/LevelEdit/src/icon64.png000066400000000000000000000066051522247547500176010ustar00rootroot00000000000000‰PNG  IHDR@@ªiqÞ LIDATxÚµ›tÛL…¿Ëv7q·I~ffffffff\ffff†.3ó–™9)$mâØ±4o šµ¢UËmï9ïhFd}wÞɤ«öÎÎÎôÖíä8ÛJ§�vÚ‡Œ1%"µÂK»oxŸjDn³*•JÞ”)S†‡‡¿ ¼KÖÖÕÕõÖI“&ÝxÏ=÷Ì®,@)…•퇥µ&‰Â 'Nì B†¯ ‡÷Ÿ/ŸÏ«#Ž8â ¿þõ¯WV8Ϩrµò7¼ïÝï~÷a\pÁ J©¶p\;,»=(ìÐC „Ûë’‡U6›-¾ãïøKeÀ¹ãŽ;¾«»»»;+#~“…·Õ°m1ëm„�7´ÖÉ×%�`´=ûì³'œxâ‰çr¹ë´ˆ\I‡™Uø8@ ¦Ÿ,€(Àm4¡2Ì:ì°ÃòŽçymÕš\X‚ô·ýæôᯘek—‘IehWídt†‚P¢PF�€FƒŒ5HDhU"Y’ƒƒƒÒÖÖ¦�аÚÖ&|òoŸ¤ïÐuà ¦ÊyP (HA�‘jd­À¯¡'ß³Õà77Ñê¸t¦tü>e �Ú=…êP[šöM•ƒšorÆ]ïynÍR …ª…ßOk´ºÒV.�ckÁÇfoµÐZÇ•@Ó&,[¶Œ7¿íÍ,\¼�°!ýýýxÐUhP)]‰*á³S>Ëq—Ç>ð$[‡¤f hmMPõíC`æxŒŒŒPöʬ˯cà„Ì•‡*äHÁ/IÊG0FN‚ÉMxæ�ÏÐwºúú”?ÂÕm½nM³îìõ¤wN£ŒjÀjü¥òG¾ÑW#@% ;Øpêr“"ud ߤŒ‚a8=Ÿ¬ìs@«u¿`á~¶âg°³�X4È�šÂ]%²?O“ýw ‹ªFÀîäfªÁ¹ÎAÝã�:ÎA9�2±™#‡ ®qñ”›âá~¸­í;º˜‘Ž­³‡Þü›Î*€ö÷S`Á©†òa·SÈùš�þ°“¾Ü…”AYÃDaþâ’y»¦mz釲¤NÉ ÆÌá¬aÊ aÕ¤öñ:zLrWøîäï2³{*«A5€•òÁí«#…㋬¸h5ÝånvÿèNô~é¤>.t¼%Mî'í”ö)á½zG§i£v[:�¥&xž‡›r£à›Î€ðʦJ¢ú¯ûúë)aìÚtÀ3&0º¿Ë¼[1´Û0ù¾<éei†÷¡øÂ(úÆ ¤µøÐ6|ƒµ{ÂP~(êúcM±ÒÍî^÷ßý�5Ý}þÅXHÐV¶k™ÒŠ WoÄms:©€¾ÉAu¦üí�P$œUÚ@©gÁhÛhܨÇ? ÆïmÈ•_É«�~%]¿�€2NEœƒÿ— |ìÕ2M) 9&«ìˆ+-�2³¦îª)�ÐD6Çg@³m»|ä¶Gøñó“Ùㇻ¡V+,±X¬Bj#§Ú£XªˆLR–¹ õoMûÏÛéž×MVe�[ÙÛ` øø%‘ÍfùÔÛ>Åg¯ú4;þ°Uði­$:\×Eur9lZp“m ˜¿2ßO³Ý‚^ò¥|Üõ�û�®ŽùP3qIì·÷~ôæzIõ§B“`´nÙEå4ãÉ`¦xè/)¶›Ñ[»•¦R©„àñs@"‚ðƒƒƒÜóò=œúŽÓ™zúLÜÝÌXâˆ;#€ñ ´‡j$Ü`Vy˜»_kŸV‡iSÞý‰wsÜÇñ�ݾ_»¥¡H€0½å”£lÙ‡¸Cû 8çg0çx¬éèc£»±ÉQŽ—Nz�Ýgúìéœpiå[è»h=Òþr", u‚@J�=N,°Omëô)Ôš¡Ý†èS}xÆ#^ñ\ºÕƒ?÷³Ï1ë�¹x»ùhêPVJBÜa ŒÁ`Pº±Q¡@D„…"¨.P§(¼ƒ=úu?Ã2Ül¬ÉõÖ‡ßJ÷¬‰`ÆŽ˜ø#& ÐV4úbÛ¤qßÐ9 `ªmÆßmAΆRCŒ”FˆWrbÒ™Ú |ÇQ·Ãz íÓX8Û»4�¾Z Ê(Ì×?Öß^�ÿ©Õ01è5µƒ.i²é¬½Þd„a“òÊ{^Éöszüѱà>¼?ḇ)Ü15Ë>ßÙ§äpֿϤ}vÖ7Ì–Sàx?løì†šÔ4EÎÍÅ|IÏ¥›…µýð—÷Ÿr?¬Ę1&„�°@;ÿsgöÛ{n½ý.4)öøÇž ¸À¤'c ëmñüe%g–C{[{"è t l,¼Õ·=ÁÎówl\¼¨YkÈ� Vù™ë�WòpÒi:'t000ˆ[ö{|àö;ü»o¸‹Ý–îÚ¨Û>ätqåâKùû{ÿʧÞüIt*þÈ9È¿Žù¿ßø{æ:‡áË àQOoW�™†ì×Ò¸¿)ƒëg•¸~&¸‚óG‡.Ýo„åvâ¾I ¶í=Ö®Ÿð•×¾Ìßz�žR7t¯þØ««¿þÀš¥Q5«ò.Ëv_�B�çjÀ” ´Ávîv”¦–è[Ї9Ñ Û5JCÿC“É£ÒÊ^ËFèäG/¯ºä*>~Õǘö…i¼ëUï"ŸÏ�Ù®•FZ‘ì% ÷#"[Å„ÅÞšiÇÆ¯ýkþ±â�¦e™£ UØbâ䄞¬ZzÇgß-]º”Gßö(£�£l‘&AÙ+“6i*r’�|HüÔU,)¾¢ÈðîÃl©Ìi†ÂŽ{î¤Ù�ø›¡&oñëöÙ{¾÷ªïqVù,zçø?˜ðH¦"¨) =C“Y�AD›`5^ ؓť~ÓŸXí¿ßþ|ñ]_`î¹Lþód¦,›Â² ËØ4€EJ¥X¾t9j} ØÐýšt!�} #&ÑÀ4+'pðxÀ1ðñÚwÏ}y|ÏÇ#?(9è ƒ6ÿ Bk�»IäxžWZ¿~½²Z¸ýVØòÏš•ý©}œññ�ü` ØäÃD’š¯FmùmnnÛ~ËðöߣտÐVþÅ’Õ»ì²ËÆJ|³ò^ý/Ƙb‹ÎÇo‹7c‹MH"û×Ù+V,Y¾|ùRE]©Tê�•Ïí®½ÿþûgV–’ìÇG­«òZM}ÅÞ'©ìŸ§«ð>ø`Oå]êMaš Žã*"Ùmý×y«3Î8ãÃXÅüU>”™-«’öm•‘_¼ üá¿$^f+>mIEND®B`‚CorsixTH-0.70.0/README.md000066400000000000000000000150471522247547500146040ustar00rootroot00000000000000![image](https://github.com/CorsixTH/CorsixTH/assets/20030128/923883d1-cd2b-48a9-8506-6ee03e2745dc) ### Latest Release [![Linux and Tests](https://github.com/CorsixTH/CorsixTH/actions/workflows/Linux.yml/badge.svg?branch=master)](https://github.com/CorsixTH/CorsixTH/actions/workflows/Linux.yml) [![Windows](https://github.com/CorsixTH/CorsixTH/actions/workflows/Windows.yml/badge.svg?branch=master&event=push)](https://github.com/CorsixTH/CorsixTH/actions/workflows/Windows.yml) [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/CorsixTH/CorsixTH?branch=master&svg=true&passingText=Windows%20-%20OK&failingText=Windows%20-%20Failing)](https://ci.appveyor.com/project/TheCycoONE/corsixth) ##### [Matrix Space](https://matrix.to/#/#CorsixTH:matrix.org) | [Matrix Chat](https://matrix.to/#/#corsixth-general:matrix.org) | [Discord](https://discord.gg/Mxeztvh) | [Report Issue](https://github.com/CorsixTH/CorsixTH/issues/new) | [Reddit](https://www.reddit.com/r/corsixth) | [Twitter/X](https://twitter.com/CorsixTH) | [Facebook](https://facebook.com/CorsixTH) ---- A reimplementation of the 1997 Bullfrog business sim Theme Hospital. As well as faithfully recreating the original, CorsixTH adds support for modern operating systems (Windows, macOS, Linux and BSD), high resolutions and much more. ![image](https://github.com/CorsixTH/CorsixTH/assets/20030128/71a42d5f-d486-4309-ba85-77e114880bcb) ## Getting Started ## You will need the following: - Grab the latest installer for your system: - Windows and macOS builds, and an AppImage for Linux can be downloaded directly from [releases](https://github.com/CorsixTH/CorsixTH/releases). - Linux and BSD repositories use either corsixth or corsix-th names [packaged versions](https://repology.org/metapackage/corsixth). - A Flatpak for Linux users is available on [Flathub](https://flathub.org/apps/details/com.corsixth.corsixth). - A Snap for Linux users is available on [Snapcraft](https://snapcraft.io/corsixth) [(support page)](https://github.com/snapcrafters/corsixth). - An unofficial Anylinux AppImage is available from [Pkgforge](https://github.com/pkgforge-dev/CorsixTH-AppImage-Enhanced). - We use graphics, sound and other data from the original game so one of the following is required: - Original game CD from eBay etc. or your dusty bookshelf :smile: - A download from [GOG.com](https://www.gog.com/game/theme_hospital) or [EA](https://www.ea.com/games/theme/theme-hospital) Head over to our [getting started](https://github.com/CorsixTH/CorsixTH/wiki/Getting-Started) page for more detail. ### What's Working? ### Most features of the game are available -- and we're at a state where you can complete the full campaign without issue. ##### Original Features ##### - Single player campaign - All diseases, objects, rooms are available (see below section for outstanding anomalies) - All events (emergencies, earthquakes, epidemics, VIP visits) - Management windows (managing staff, patients, policies etc.) - Music/Jukebox and gameplay videos (see below section for outstanding anomalies) - Cheats (naughty!) ##### New Features ##### - Custom levels and campaigns - Full HD support - Zooming - Make your own maps and levels - Unlimited saves and 12 autosave slots - Play your own music! - Option to remove destroyed rooms for a fee - Improved game logic - Full control over all hotkeys ### What's missing/needs improvement? ### There are some areas of the game still missing, and while we work to get them integrated any additional help from the community is always appreciated! - Multiplayer/LAN - AI Hospitals (and the components associated with it) - Rats (but rat holes are present) and the special rat level - Win level video/letter - The original graphics do not have a complete set for Pregnancy, Alien DNA, and female Fractured Bones patients -- these may cause anomalies if you enable regular spawning in settings - Some objects in the game may glitch with walls ## Developers ### Coders and non-coders we want you! We are always looking for help with improving CorsixTH. The code base is made up of Lua and C++. Most of the game logic is written in Lua, we love Lua and its approachable and easy to pick up nature, so hit fork and get started! But don't worry if you don't code as we can always use your help in other areas and if you have ideas for the project please contact us or open a new issue! We could also use help updating the documentation in the wiki and keeping the issue list up to date.\ You can also [click here](https://github.com/CorsixTH/CorsixTH/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+First+Issue%22) to find issues that would suit a first-time contributor to take on! ###### Features & Bugfixes ###### We still have features to add and bugs to fix, check out the issue tracker [here](https://github.com/CorsixTH/CorsixTH/issues). Want to talk about adding a feature? post on our Google group or [contact us](#Contact). ###### Translation ###### CorsixTH has translations for 19 languages, some need updates. Read our [wiki](https://github.com/CorsixTH/CorsixTH/wiki/Localization) for more information. ## More Our [wiki](https://github.com/CorsixTH/CorsixTH/wiki) is a good place to start, if you can't find what you are looking for feel free to contact us using one of the methods below. ## Contact - Follow us on [Reddit](https://www.reddit.com/r/corsixth), Twitter/X ([**@CorsixTH**](https://twitter.com/CorsixTH)), and on [Facebook](https://facebook.com/CorsixTH) -
    Hit us up on Matrix! (Discord bridged) [click to expand] - **CorsixTH Space** (includes all rooms below, if your client supports it) [#CorsixTH:matrix.org](https://matrix.to/#/#CorsixTH:matrix.org) - **General Chat** [#corsixth-general:matrix.org](https://matrix.to/#/#corsixth-general:matrix.org) - **Announcements** [#corsixth-announcements:matrix.org](https://matrix.to/#/#corsixth-announcements:matrix.org) - **Technical Discussion** (DevOps) [#corsixth-technical:matrix.org](https://matrix.to/#/#corsixth-technical:matrix.org) - **Help!** [#corsixth-help:matrix.org](https://matrix.to/#/#corsixth-help:matrix.org) - **Community Content** [#corsixth-usercontent:matrix.org](https://matrix.to/#/#corsixth-usercontent:matrix.org)
    - Join the server on [Discord](https://discord.gg/Mxeztvh) - Subscribe to our [Google Developer group](https://groups.google.com/g/corsix-th-dev) CorsixTH-0.70.0/README.txt000066400000000000000000000061311522247547500150150ustar00rootroot00000000000000------------------------------------------------------------------------------ -- CorsixTH ------------------------------------------------------------------------------ CorsixTH aims to reimplement the game engine of Theme Hospital, and be able to load the original game data files. This means that you will need a purchased copy of Theme Hospital, or a copy of the demo, in order to use CorsixTH. After most of the original engine has been reimplemented in open source code, the project will serve as a base from which extensions and improvements to the original game can be made. ------------------------------------------------------------------------------ -- Getting started ------------------------------------------------------------------------------ See https://github.com/CorsixTH/CorsixTH/wiki/Getting-Started for full details. Briefly: 1) Ensure that you are using a supported platform (Windows, macOS, Linux or BSD) 2) Ensure that you have either the demo of Theme Hospital or the original game CD/files. The demo can be found at: http://th.corsix.org/Demo.zip and the full game can be found at https://www.gog.com/game/theme_hospital. The full game can also often be found on eBay. 3) Copy the resources folder (which contains the folders "ANIMS" and "LEVELS" among others, this is in some cases called "HOSP") from either the demo or full game to a directory of your choice. 4a) If you have downloaded a pre-compiled version: At this point Windows users should run the installer. During install you will be asked for the location of the original game files set in step 3. Linux and OS X users simply run the game and set the location of the original game files when requested. 4b) If you have a source code distribution, compile it. See https://github.com/CorsixTH/CorsixTH/wiki/How-To-Compile for details. Start the game for the first time. You will be asked for the location of the Theme Hospital data files. Select the directory you chose in step 3. 5) Go play! If this doesn't go smoothly, then consult: https://github.com/CorsixTH/CorsixTH/wiki/Frequently-Asked-Questions Or feel free to contact us using one of the contact details below. ------------------------------------------------------------------------------ -- CorsixTH.exe Optional Startup Arguments ------------------------------------------------------------------------------ --interpreter=... : loadfile(...) instead of CorsixTH.lua. --config-file=... : Makes CorsixTH use the specified config file. --bitmap-dir=... : Makes CorsixTH use the specified bitmap directory. --lua-dir= : Makes CorsixTH use the specified Lua scripts directory. ------------------------------------------------------------------------------ -- Contact Details ------------------------------------------------------------------------------ Homepage: https://corsixth.com Discord: https://discord.gg/Mxeztvh Mailing list: https://groups.google.com/g/corsix-th-dev Matrix Room (Discord Bridge): https://matrix.to/#/#corsixth-general:matrix.org Matrix Space (collection of Discord Bridges): https://matrix.to/#/#CorsixTH:matrix.org CorsixTH-0.70.0/SpriteEncoder/000077500000000000000000000000001522247547500160645ustar00rootroot00000000000000CorsixTH-0.70.0/SpriteEncoder/32bpp_pixformat.txt000066400000000000000000000061551522247547500216530ustar00rootroot00000000000000Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Pixel format of 32bpp images. The pixel format supports image sizes of up to 65534x65534 pixels, allows transparency, and up to 256 recolour layers. The file starts with - 4 bytes header "CTHG" - 2 bytes version number (low endian), currently version 2 - zero or more sprites. A sprite has - 4 bytes length of this sprite (low endian), length excludes these 4 bytes. - 2 bytes sprite number (low endian). - 2 bytes width of the sprite (low endian). - 2 bytes height of the sprite (low endian). - (width * height) pixel data as a continuous stream. The pixel data starts at the top-left pixel, and runs horizontally (and continues at the left of the next line when reaching the end). This continues until the last pixel at the bottom-right has been written. Sequences of pixels with the same characteristics are taken together in blocks of up to 64 pixels long, and encoded. There are four types of blocks: 1. Fixed fully opaque 32bpp pixels (all the coloured pixels that are always the same). 2. Fixed partially transparent 32bpp pixels (glow effects, or 50% transparency). 3. Fixed fully transparent pixels (empty space around the displayed shape to make it a rectangular image). 4. Recolour layer (pixels that are retrieved from an RGB table with 256 entries that acts like a palette). The data stored in the sprite is just the index to use for each pixel. Opacity is the same for the entire block. Typically there are tables with ranges of colours, and the sprite contains the intensity as the index. Below is the encoding for each type of pixel block: 1. Fixed fully opaque 32bpp pixels (RGB). - 1 byte length (values 0-63) - N x 3 byte pixel colours (RGB). 2. Fixed partially transparent 32bpp pixels (RGB). - 1 byte length (values 0-63) + 64 - 1 byte amount of opacity (0-255). - N x 3 byte pixel colours (RGB). 3. Fixed fully transparent pixels. - 1 byte length (values 0-63) + 128 4. Recolour layer. - 1 byte length (values 0-63) + 64 + 128 - 1 byte layer to apply (0-255). - 1 byte amount of opacity (0-255). - N bytes table index. CorsixTH-0.70.0/SpriteEncoder/ast.cpp000066400000000000000000000210051522247547500173550ustar00rootroot00000000000000/* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "ast.h" #include "image.h" #include "output.h" enum Opacity { OP_TRANSPARENT = 0, OP_OPAQUE = 255, }; const std::string sUnset = ""; Sprite::Sprite() { m_iLine = -1; m_iSprite = -1; m_iLeft = -1; m_iTop = -1; m_iWidth = -1; m_iHeight = -1; m_sBaseImage = sUnset; m_sRecolourImage = sUnset; for (int i = 0; i < 256; i++) { m_aNumber[i] = i; } } void Sprite::SetRecolour(const std::string &sFilename) { m_sRecolourImage = sFilename; } static void Report(int iNumber, int iLine, const char *pMsg) { if (iNumber < 0) { fprintf(stderr, "Sprite at line %d: Missing %s\n", iLine, pMsg); exit(1); } } void Sprite::Check() const { Report(m_iSprite, m_iLine, "sprite number"); Report(m_iLeft, m_iLine, "left edge coordinate"); Report(m_iTop, m_iLine, "top edge coordinate"); Report(m_iWidth, m_iLine, "sprite width"); Report(m_iHeight, m_iLine, "sprite height"); if (m_sBaseImage == sUnset) { fprintf(stderr, "Sprite at line %d: Missing image filename\n", m_iLine); exit(1); } } /** * Look ahead in the recolour bitmaps to check when the next recoloured pixels will occur. * @param iCount Current index in the image. * @param iEndCount End of the image. * @param pLayer Recolouring bitmap (if available). * @return Number of pixels to go before the next recoloured pixel (limited to 63 look ahead). */ static int GetDistanceToNextRecolour(const uint32 iCount, const uint32 iEndCount, const Image8bpp *pLayer) { uint32 iLength = iEndCount - iCount; if (iLength > 63) iLength = 63; // No need to look ahead further. if (pLayer != NULL) { for (size_t i = 0; i < iLength; i++) { if (pLayer->Get(iCount + i) != 0) return i; } } return iLength; } /** * Get the recolour table to use, and the number of pixels to recolour. * @param iCount Current index in the image. * @param iEndCount End of the image. * @param pLayer Recolouring bitmap. * @param pLayerNumber [out] Number of the recolouring table to use. * @return Number of pixels to recolour from the current position. */ static int GetRecolourInformation(const uint32 iCount, const uint32 iEndCount, const Image8bpp *pLayer, uint8 *pLayerNumber) { uint32 iLength = iEndCount - iCount; if (iLength > 63) iLength = 63; // No need to look ahead further. *pLayerNumber = pLayer->Get(iCount); for (size_t i = 1; i < iLength; i++) { if (pLayer->Get(iCount + i) != *pLayerNumber) return i; } return iLength; } /** * Look ahead in the base image to check how many pixels from the current position have the same opacity. * @param iCount Current index in the image. * @param iEndCount End of the image. * @parswm oBase Base image. * @return Number of pixels to go before the opacity of the current pixel changes (limited to 63 look ahead). */ static int GetDistanceToNextTransparency(const uint32 iCount, const uint32 iEndCount, const Image32bpp &oBase) { uint32 iLength = iEndCount - iCount; if (iLength > 63) iLength = 63; // No need to look ahead further. uint8 iOpacity = GetA(oBase.Get(iCount)); for (uint i = 1; i < iLength; i++) { if (iOpacity != GetA(oBase.Get(iCount + i))) return i; } return iLength; } /** * Write the RGB colour for the next \a iLength pixels, starting from the \a iCount offset. * @param oBase Base image to encode. * @param iCount Current index in the image. * @param iLength Number of pixels to process. * @param pDest Destination to write to. */ static void WriteColour(const Image32bpp &oBase, uint32 iCount, int iLength, Output *pDest) { while (iLength > 0) { uint32 iColour = oBase.Get(iCount); iCount++; pDest->Uint8(GetR(iColour)); pDest->Uint8(GetG(iColour)); pDest->Uint8(GetB(iColour)); iLength--; } } /** * Write the table index for the next \a iLength pixels, starting from the \a iCount offset. * @param oBase Base image to encode. * @param iCount Current index in the image. * @param iLength Number of pixels to process. * @param pDest Destination to write to. */ static void WriteTableIndex(const Image32bpp &oBase, uint32 iCount, int iLength, Output *pDest) { while (iLength > 0) { uint32 iColour = oBase.Get(iCount); iCount++; uint8 biggest = GetR(iColour); if (biggest < GetG(iColour)) biggest = GetG(iColour); if (biggest < GetB(iColour)) biggest = GetB(iColour); pDest->Uint8(biggest); iLength--; } } /** * Encode a 32bpp image from the \a oBase image, and optionally the recolouring \a pLayer bitmap. */ static void Encode32bpp(int iWidth, int iHeight, const Image32bpp &oBase, const Image8bpp *pLayer, Output *pDest, const unsigned char *pNumber) { const uint32 iPixCount = iWidth * iHeight; uint32 iCount = 0; while (iCount < iPixCount) { int iLength = GetDistanceToNextRecolour(iCount, iPixCount, pLayer); int length2 = GetDistanceToNextTransparency(iCount, iPixCount, oBase); if (iLength > 63) iLength = 63; if (iLength == 0) { // Recolour layer. uint8 iTableNumber; iLength = GetRecolourInformation(iCount, iPixCount, pLayer, &iTableNumber); if (length2 < iLength) iLength = length2; assert(iLength > 0); pDest->Uint8(64 + 128 + iLength); pDest->Uint8(pNumber[iTableNumber]); pDest->Uint8(GetA(oBase.Get(iCount))); // Opacity. WriteTableIndex(oBase, iCount, iLength, pDest); iCount += iLength; continue; } if (length2 < iLength) iLength = length2; assert(iLength > 0); uint8 iOpacity = GetA(oBase.Get(iCount)); if (iOpacity == OP_OPAQUE) { // Fixed non-transparent 32bpp pixels (RGB). pDest->Uint8(iLength); WriteColour(oBase, iCount, iLength, pDest); iCount += iLength; continue; } if (iOpacity == OP_TRANSPARENT) { // Fixed fully transparent pixels. pDest->Uint8(128 + iLength); iCount += iLength; continue; } /* Partially transparent 32bpp pixels (RGB). */ pDest->Uint8(64 + iLength); pDest->Uint8(iOpacity); WriteColour(oBase, iCount, iLength, pDest); iCount += iLength; continue; } } void Sprite::Write(Output *pOut) const { Image32bpp *pBase = Load32Bpp(m_sBaseImage, m_iLine, m_iLeft, m_iWidth, m_iTop, m_iHeight); if (pBase == NULL) { fprintf(stderr, "Warning: Skipping sprite %d at line %d: Image load failed.\n", m_iSprite, m_iLine); return; } Image8bpp *pLayer = NULL; if (m_sRecolourImage != sUnset) { pLayer = Load8Bpp(m_sRecolourImage, m_iLine, m_iLeft, m_iWidth, m_iTop, m_iHeight); } int iAddress = pOut->Reserve(4); pOut->Uint16(m_iSprite); pOut->Uint16(m_iWidth); pOut->Uint16(m_iHeight); // XXX Add length of this sprite? Encode32bpp(m_iWidth, m_iHeight, *pBase, pLayer, pOut, m_aNumber); int iLength = pOut->Reserve(0) - (iAddress + 4); // Start counting after the length. pOut->Write(iAddress, iLength & 0xFF); pOut->Write(iAddress + 1, (iLength >> 8) & 0xFF); pOut->Write(iAddress + 2, (iLength >> 16) & 0xFF); pOut->Write(iAddress + 3, (iLength >> 24) & 0xFF); delete pLayer; delete pBase; } // vim: et sw=4 ts=4 sts=4 CorsixTH-0.70.0/SpriteEncoder/ast.h000066400000000000000000000044141522247547500170270ustar00rootroot00000000000000/* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef AST_H #define AST_H #include #include #include class Output; class Sprite { public: Sprite(); void SetRecolour(const std::string &filename); void Check() const; void Write(Output *out) const; int m_iLine; // Line number of the sprite. int m_iSprite; // Sprite number. int m_iLeft; // Left coordinate in the images. int m_iTop; // Top coordinate in the images. int m_iWidth; // Width of the images. int m_iHeight; // Height of the images. std::string m_sBaseImage; // Full-colour RGBA base image. std::string m_sRecolourImage; // Name of overlay image (if set). unsigned char m_aNumber[256]; // Layer number of the recolouring. }; inline static bool operator<(const Sprite &s1, const Sprite &s2) { return s1.m_iSprite < s2.m_iSprite; } struct ScannerData { int line; int number; std::string text; Sprite *m_pSprite; }; #define YYSTYPE ScannerData extern YYSTYPE yylval; int yylex(); int yyparse(); void yyerror(const char *msg); void SetupScanner(const char *fname, FILE *new_file); extern std::set g_oSprites; #endif CorsixTH-0.70.0/SpriteEncoder/decode.py000066400000000000000000000123021522247547500176570ustar00rootroot00000000000000#!/usr/bin/env python3 """ Program to decode the first sprite of a CTHG 2 file. Mainly intended as a test for the checking the encoder, but also a demonstration of how to decode. """ _license = """ Copyright (c) 2013 Alberth "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ from PIL import Image class Infile: def __init__(self, fname): self.fname = fname self.handle = open(self.fname, "rb") # Read header for h in [ord('C'), ord('T'), ord('H'), ord('G'), 2, 0]: v = self.getByte() assert v == h def getByte(self): v = self.handle.read(1)[0] return v def getWord(self): b = self.getByte() return b | (self.getByte() << 8) def getLong(self): w = self.getWord() return w | (self.getWord() << 16) def getData(self, size): data = [] for i in range(size): data.append(self.getByte()) return data def decode_xy(pix_idx, w, h): y = pix_idx // w x = pix_idx - w * y assert x >= 0 and x < w assert y >= 0 and y < h return x, y def get_colour(table, idx): if table == 0: return (0, 0, 0, 255) if table == 1: return (idx, 0, 0, 255) if table == 2: return (0, idx, 0, 255) if table == 3: return (0, 0, idx, 255) if table == 4: return (0, idx, idx, 255) if table == 5: return (idx, 0, idx, 255) assert False class Sprite: def __init__(self, infile): size = infile.getLong() - 2 - 2 - 2 self.number = infile.getWord() self.width = infile.getWord() self.height = infile.getWord() self.data = infile.getData(size) print("Sprite number {}".format(self.number)) print("Width {}".format(self.width)) print("Height {}".format(self.height)) print("Size {}".format(size)) print("Data size {}".format(len(self.data))) def get_data(self, idx): return self.data[idx], idx + 1 def save(self): im = Image.new("RGBA", (self.width, self.height), (0, 0, 0, 0)) pix = im.load() idx = 0 pix_idx = 0 while idx < len(self.data): length, idx = self.get_data(idx) if length <= 63: # Fixed non-transparent 32bpp pixels (RGB) length = length & 63 x, y = decode_xy(pix_idx, self.width, self.height) for i in range(length): d = (self.data[idx], self.data[idx+1], self.data[idx+2], 255) pix[x, y] = d idx = idx + 3 pix_idx = pix_idx + 1 x = x + 1 if x == self.width: x = 0 y = y + 1 continue elif length <= 64+63: # Partially transparent 32bpp pixels (RGB) length = length & 63 opacity, idx = self.get_data(idx) x, y = decode_xy(pix_idx, self.width, self.height) for i in range(length): d = (self.data[idx], self.data[idx+1], self.data[idx+2], opacity) pix[x, y] = d idx = idx + 3 pix_idx = pix_idx + 1 x = x + 1 if x == self.width: x = 0 y = y + 1 continue elif length <= 128+63: # Fixed fully transparent pixels length = length & 63 pix_idx = pix_idx + length continue else: # Recolour layer. length = length & 63 table, idx = self.get_data(idx) opacity, idx = self.get_data(idx) x, y = decode_xy(pix_idx, self.width, self.height) for i in range(length): col, idx = self.get_data(idx) pix[x, y] = get_colour(table, col) pix_idx = pix_idx + 1 x = x + 1 if x == self.width: x = 0 y = y + 1 continue im.save("sprite_{}.png".format(self.number)) inf = Infile("x.out") spr = Sprite(inf) spr.save() CorsixTH-0.70.0/SpriteEncoder/encode.cpp000066400000000000000000000046771522247547500200430ustar00rootroot00000000000000/* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "ast.h" #include "output.h" int main(int iArgc, char *pArgv[]) { FILE *pInfile = NULL; const char *pOutfname = NULL; if (iArgc == 1) { SetupScanner(NULL, NULL); } else if (strcmp(pArgv[1], "-h") == 0 || strcmp(pArgv[1], "--help") == 0) { printf("Usage: encode []\n"); exit(0); } else if (iArgc == 2) { pInfile = fopen(pArgv[1], "r"); SetupScanner(pArgv[1], pInfile); } else if (iArgc == 3) { pInfile = fopen(pArgv[1], "r"); SetupScanner(pArgv[1], pInfile); pOutfname = pArgv[2]; } else { fprintf(stderr, "Too many arguments, try 'encode -h'\n"); exit(1); } int iRet = yyparse(); if (pInfile != NULL) fclose(pInfile); if (iRet != 0) { exit(iRet); } for (std::set::iterator iter = g_oSprites.begin(); iter != g_oSprites.end(); iter++) { iter->Check(); } Output out; out.Uint8('C'); out.Uint8('T'); out.Uint8('H'); out.Uint8('G'); out.Uint8(2); out.Uint8(0); for (std::set::iterator iter = g_oSprites.begin(); iter != g_oSprites.end(); iter++) { iter->Write(&out); } if (pOutfname != NULL) { out.Write(pOutfname); } exit(0); } // vim: et sw=4 ts=4 sts=4 CorsixTH-0.70.0/SpriteEncoder/image.cpp000066400000000000000000000177551522247547500176710ustar00rootroot00000000000000/* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include "image.h" uint32 MakeRGBA(uint8 r, uint8 g, uint8 b, uint8 a) { assert(sizeof(uint32) == 4); // Not really the good place, but it has to be checked somewhere! uint32 ret; uint32 x; x = r; ret = x; x = g; ret |= (x << 8); x = b; ret |= (x << 16); x = a; ret |= (x << 24); return ret; } uint8 GetR(uint32 rgba) { return rgba & 0xFF; } uint8 GetG(uint32 rgba) { return (rgba >> 8) & 0xFF; } uint8 GetB(uint32 rgba) { return (rgba >> 16) & 0xFF; } uint8 GetA(uint32 rgba) { return (rgba >> 24) & 0xFF; } Image32bpp::Image32bpp(int iWidth, int iHeight) { this->iWidth = iWidth; this->iHeight = iHeight; pData = (uint32 *)malloc(4 * iWidth * iHeight); } Image32bpp::~Image32bpp() { free(pData); } uint32 Image32bpp::Get(int offset) const { int x, y; y = offset / iWidth; x = offset - y * iWidth; assert(x >= 0 && x < iWidth && y >= 0 && y < iHeight); return pData[offset]; } Image8bpp::Image8bpp(int iWidth, int iHeight) { this->iWidth = iWidth; this->iHeight = iHeight; pData = (uint8 *)malloc(iWidth * iHeight); } Image8bpp::~Image8bpp() { free(pData); } unsigned char Image8bpp::Get(int offset) const { int x, y; y = offset / iWidth; x = offset - y * iWidth; assert(x >= 0 && x < iWidth && y >= 0 && y < iHeight); return pData[offset]; } static void OpenFile(const std::string &sFilename, png_structp *pngPtr, png_infop *infoPtr, png_infop *endInfo, uint8 ***pRows) { FILE *pFile = fopen(sFilename.c_str(), "rb"); if(pFile == NULL) { fprintf(stderr, "PNG file \"%s\" could not be opened.\n", sFilename.c_str()); exit(1); } unsigned char header[4]; if(fread(header, 1, 4, pFile) != 4) { fprintf(stderr, "Could not read header of \"%s\".\n", sFilename.c_str()); fclose(pFile); exit(1); } bool bIsPng = !png_sig_cmp(header, 0, 4); if(!bIsPng) { fprintf(stderr, "Header of \"%s\" indicates it is not a PNG file.\n", sFilename.c_str()); fclose(pFile); exit(1); } *pngPtr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (!*pngPtr) { fprintf(stderr, "Could not initialize PNG data.\n"); fclose(pFile); exit(1); } *infoPtr = png_create_info_struct(*pngPtr); if(!*infoPtr) { fprintf(stderr, "Could not initialize PNG info data.\n"); png_destroy_read_struct(pngPtr, (png_infopp)NULL, (png_infopp)NULL); fclose(pFile); exit(1); } *endInfo = png_create_info_struct(*pngPtr); if(!*endInfo) { fprintf(stderr, "Could not initialize PNG end data.\n"); png_destroy_read_struct(pngPtr, infoPtr, (png_infopp)NULL); fclose(pFile); exit(1); } /* Setup callback in case of errors. */ if(setjmp(png_jmpbuf(*pngPtr))) { fprintf(stderr, "Error detected while reading PNG file.\n"); png_destroy_read_struct(pngPtr, infoPtr, endInfo); fclose(pFile); exit(1); } /* Initialize for file reading. */ png_init_io(*pngPtr, pFile); png_set_sig_bytes(*pngPtr, 4); png_read_png(*pngPtr, *infoPtr, PNG_TRANSFORM_IDENTITY, NULL); *pRows = png_get_rows(*pngPtr, *infoPtr); fclose(pFile); } Image32bpp *Load32Bpp(const std::string &sFilename, int line, int left, int width, int top, int height) { png_structp pngPtr; png_infop infoPtr; png_infop endInfo; uint8 **pRows; OpenFile(sFilename, &pngPtr, &infoPtr, &endInfo, &pRows); int iWidth = png_get_image_width(pngPtr, infoPtr); int iHeight = png_get_image_height(pngPtr, infoPtr); int iBitDepth = png_get_bit_depth(pngPtr, infoPtr); int iColorType = png_get_color_type(pngPtr, infoPtr); if (iWidth < left + width) { fprintf(stderr, "Sprite at line %d: Sprite is not wide enough, require %d columns (%d + %d) while only %d columns are available.\n", line, left + width, left, width, iWidth); exit(1); } if (iHeight < top + height) { fprintf(stderr, "Sprite at line %d: Sprite is not high enough, require %d rows (%d + %d) while only %d rows are available.\n", line, top + height, top, height, iHeight); exit(1); } if (iBitDepth != 8) { fprintf(stderr, "Sprite at line %d: \"%s\" is not an 32bpp file (channels are not 8 bit wide)\n", line, sFilename.c_str()); png_destroy_read_struct(&pngPtr, &infoPtr, &endInfo); exit(1); } if (iColorType != PNG_COLOR_TYPE_RGB_ALPHA) { fprintf(stderr, "Sprite at line %d: \"%s\" is not an RGBA file\n", line, sFilename.c_str()); png_destroy_read_struct(&pngPtr, &infoPtr, &endInfo); exit(1); } Image32bpp *img = new Image32bpp(width, height); uint32 *pData = img->pData; for (int i = 0; i < height; i++) { uint8 *pRow = pRows[top + i] + left; for (int j = 0; j < width; j++) { *pData++ = MakeRGBA(pRow[0], pRow[1], pRow[2], pRow[3]); pRow += 4; } } png_destroy_read_struct(&pngPtr, &infoPtr, &endInfo); return img; } Image8bpp *Load8Bpp(const std::string &sFilename, int line, int left, int width, int top, int height) { png_structp pngPtr; png_infop infoPtr; png_infop endInfo; uint8 **pRows; OpenFile(sFilename, &pngPtr, &infoPtr, &endInfo, &pRows); int iWidth = png_get_image_width(pngPtr, infoPtr); int iHeight = png_get_image_height(pngPtr, infoPtr); int iBitDepth = png_get_bit_depth(pngPtr, infoPtr); int iColorType = png_get_color_type(pngPtr, infoPtr); if (iWidth < left + width) { fprintf(stderr, "Sprite at line %d: Sprite is not wide enough, require %d columns (%d + %d) while only %d columns are available.\n", line, left + width, left, width, iWidth); exit(1); } if (iHeight < top + height) { fprintf(stderr, "Sprite at line %d: Sprite is not high enough, require %d rows (%d + %d) while only %d rows are available.\n", line, top + height, top, height, iHeight); exit(1); } if (iBitDepth != 8) { fprintf(stderr, "Sprite at line %d: \"%s\" is not an 8bpp file (the channel is not 8 bit wide\n", line, sFilename.c_str()); png_destroy_read_struct(&pngPtr, &infoPtr, &endInfo); exit(1); } if (iColorType != PNG_COLOR_TYPE_PALETTE) { fprintf(stderr, "Sprite at line %d: \"%s\" is not a palleted image file\n", line, sFilename.c_str()); png_destroy_read_struct(&pngPtr, &infoPtr, &endInfo); exit(1); } Image8bpp *img = new Image8bpp(width, height); uint8 *pData = img->pData; for (int i = 0; i < height; i++) { int y = top + i; for (int j = 0; j < width; j++) { int x = left + j; uint8 v = pRows[y][x]; *pData = v; pData++; } } return img; } // vim: et sw=4 ts=4 sts=4 CorsixTH-0.70.0/SpriteEncoder/image.h000066400000000000000000000035211522247547500173200ustar00rootroot00000000000000/* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef IMAGE_H #define IMAGE_H typedef unsigned char uint8; typedef unsigned int uint32; class Image32bpp { public: Image32bpp(int iWidth, int iHeight); ~Image32bpp(); uint32 Get(int offset) const; int iWidth; int iHeight; uint32 *pData; }; class Image8bpp { public: Image8bpp(int iWidth, int iHeight); ~Image8bpp(); unsigned char Get(int offset) const; int iWidth; int iHeight; uint8 *pData; }; uint8 GetR(uint32 rgba); uint8 GetG(uint32 rgba); uint8 GetB(uint32 rgba); uint8 GetA(uint32 rgba); Image32bpp *Load32Bpp(const std::string &sFilename, int line, int left, int width, int top, int height); Image8bpp *Load8Bpp(const std::string &sFilename, int line, int left, int width, int top, int height); #endif // vim: et sw=4 ts=4 sts=4 CorsixTH-0.70.0/SpriteEncoder/mk000077500000000000000000000030461522247547500164240ustar00rootroot00000000000000#!/bin/sh # Copyright (c) 2013 Albert "Alberth" Hofkamp # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in # the Software without restriction, including without limitation the rights to # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies # of the Software, and to permit persons to whom the Software is furnished to do # so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. set -e -u -x CCFLAGS="-Wall -g" FLEXFLAGS= bison --defines=tokens.h --output=parser.cpp parser.y flex $FLEXFLAGS --outfile=scanner.cpp scanner.l g++ $CCFLAGS -c -o parser.o parser.cpp g++ $CCFLAGS -c -o scanner.o scanner.cpp g++ $CCFLAGS -c -o encode.o encode.cpp g++ $CCFLAGS -c -o ast.o ast.cpp g++ $CCFLAGS -c -o image.o image.cpp g++ $CCFLAGS -c -o output.o output.cpp g++ $CCFLAGS -o encoder parser.o scanner.o encode.o ast.o image.o output.o -lpng CorsixTH-0.70.0/SpriteEncoder/output.cpp000066400000000000000000000063061522247547500201350ustar00rootroot00000000000000/* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "output.h" DataBlock::DataBlock() { m_iUsed = 0; m_pNext = NULL; } bool DataBlock::Full() { return m_iUsed == BUF_SIZE; } void DataBlock::Add(unsigned char byte) { assert(m_iUsed < BUF_SIZE); buffer[m_iUsed++] = byte; } void DataBlock::Write(FILE *handle) { if (fwrite(buffer, 1, m_iUsed, handle) != (size_t)m_iUsed) { fprintf(stderr, "Writing output failed!\n"); exit(1); } } Output::Output() { m_pFirst = NULL; m_pLast = NULL; } Output::~Output() { DataBlock *pBlk = m_pFirst; while (pBlk != NULL) { DataBlock *pBlk2 = pBlk->m_pNext; delete pBlk; pBlk = pBlk2; } } void Output::Uint16(int iValue) { Uint8(iValue & 0xFF); Uint8((iValue >> 8) & 0xFF); } void Output::Uint8(unsigned char byte) { if (m_pLast == NULL || m_pLast->Full()) { DataBlock *pBlk = new DataBlock(); if (m_pLast == NULL) { m_pFirst = pBlk; m_pLast = pBlk; } else { m_pLast->m_pNext = pBlk; m_pLast = pBlk; } } m_pLast->Add(byte); } int Output::Reserve(int iSize) { // Count current size. int iLength = 0; DataBlock *pBlk = m_pFirst; while (pBlk != NULL) { iLength += pBlk->m_iUsed; pBlk = pBlk->m_pNext; } // Add 'size' bytes as reserved space. for (int i = 0; i < iSize; i++) { Uint8(0); } return iLength; } void Output::Write(int iAddress, unsigned char iValue) { int iOffset = 0; DataBlock *pBlk = m_pFirst; while (pBlk != NULL && iOffset + pBlk->m_iUsed < iAddress) { iOffset += pBlk->m_iUsed; pBlk = pBlk->m_pNext; } assert(pBlk != NULL); iAddress -= iOffset; assert(iAddress >= 0 && iAddress < BUF_SIZE); pBlk->buffer[iAddress] = iValue; } void Output::Write(const char *fname) { FILE *handle = fopen(fname, "wb"); DataBlock *pBlk = m_pFirst; while (pBlk != NULL) { pBlk->Write(handle); pBlk = pBlk->m_pNext; } fclose(handle); } // vim: et sw=4 ts=4 sts=4 CorsixTH-0.70.0/SpriteEncoder/output.h000066400000000000000000000031751522247547500176030ustar00rootroot00000000000000/* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef OUTPUT_H #define OUTPUT_H #define BUF_SIZE 100000 class DataBlock { public: DataBlock(); bool Full(); void Add(unsigned char byte); void Write(FILE *handle); unsigned char buffer[BUF_SIZE]; int m_iUsed; DataBlock *m_pNext; }; class Output { public: Output(); ~Output(); void Write(const char *fname); void Uint8(unsigned char byte); void Uint16(int val); void Write(int address, unsigned char byte); int Reserve(int size); DataBlock *m_pFirst; DataBlock *m_pLast; }; #endif // vim: et sw=4 ts=4 sts=4 CorsixTH-0.70.0/SpriteEncoder/parser.cpp000066400000000000000000001413651522247547500200760ustar00rootroot00000000000000/* A Bison parser, made by GNU Bison 2.6.4. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. 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 . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "2.6.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Copy the first part of user declarations. */ /* Line 358 of yacc.c */ #line 23 "parser.y" #include #include "ast.h" #include std::set g_oSprites; /* Line 358 of yacc.c */ #line 76 "parser.cpp" # ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus # define YY_NULL nullptr # else # define YY_NULL 0 # endif # endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* In a future release of Bison, this section will be replaced by #include "tokens.h". */ #ifndef YY_YY_TOKENS_H_INCLUDED # define YY_YY_TOKENS_H_INCLUDED /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif #if YYDEBUG extern int yydebug; #endif /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { CURLY_OPEN = 258, CURLY_CLOSE = 259, EQUAL = 260, SEMICOL = 261, LEFTKW = 262, TOPKW = 263, WIDTHKW = 264, HEIGHTKW = 265, BASEIMGKW = 266, RECOLOURKW = 267, SPRITEKW = 268, LAYERKW = 269, NUMBER = 270, STRING = 271 }; #endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); #else int yyparse (); #endif #else /* ! YYPARSE_PARAM */ #if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ #endif /* !YY_YY_TOKENS_H_INCLUDED */ /* Copy the second part of user declarations. */ /* Line 377 of yacc.c */ #line 157 "parser.cpp" #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #elif (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; #else typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) #else # define YYUSE(E) /* empty */ #endif /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint # define YYID(N) (N) #else #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int YYID (int yyi) #else static int YYID (yyi) int yyi; #endif { return yyi; } #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (YYID (0)) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (YYID (0)) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 38 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 17 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 4 /* YYNRULES -- Number of rules. */ #define YYNRULES 12 /* YYNRULES -- Number of states. */ #define YYNSTATES 38 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 271 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const yytype_uint8 yyprhs[] = { 0, 0, 3, 4, 7, 13, 14, 20, 26, 32, 38, 44, 50 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { 18, 0, -1, -1, 18, 19, -1, 13, 15, 3, 20, 4, -1, -1, 20, 7, 5, 15, 6, -1, 20, 8, 5, 15, 6, -1, 20, 9, 5, 15, 6, -1, 20, 10, 5, 15, 6, -1, 20, 11, 5, 16, 6, -1, 20, 12, 5, 16, 6, -1, 20, 14, 15, 5, 15, 6, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { 0, 46, 46, 47, 51, 56, 57, 59, 61, 63, 65, 67, 69 }; #endif #if YYDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "CURLY_OPEN", "CURLY_CLOSE", "EQUAL", "SEMICOL", "LEFTKW", "TOPKW", "WIDTHKW", "HEIGHTKW", "BASEIMGKW", "RECOLOURKW", "SPRITEKW", "LAYERKW", "NUMBER", "STRING", "$accept", "Program", "Sprite", "SpriteSettings", YY_NULL }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { 0, 17, 18, 18, 19, 20, 20, 20, 20, 20, 20, 20, 20 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 0, 2, 5, 0, 5, 5, 5, 5, 5, 5, 6 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. Performed when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint8 yydefact[] = { 2, 0, 1, 0, 3, 0, 5, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 10, 11, 0, 12 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { -1, 1, 4, 7 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -14 static const yytype_int8 yypact[] = { -14, 0, -14, -13, -14, 7, -14, -3, -14, -2, 9, 10, 11, 12, 13, 4, 5, 6, 8, 14, -4, 15, 17, 18, 19, 20, 21, 22, 24, 23, -14, -14, -14, -14, -14, -14, 26, -14 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -14, -14, -14, -14 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { 2, 8, 5, 16, 9, 10, 11, 12, 13, 14, 6, 15, 27, 3, 17, 18, 19, 20, 21, 22, 23, 24, 29, 25, 30, 31, 32, 33, 34, 26, 35, 28, 37, 0, 0, 0, 0, 0, 36 }; #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-14))) #define yytable_value_is_error(Yytable_value) \ YYID (0) static const yytype_int8 yycheck[] = { 0, 4, 15, 5, 7, 8, 9, 10, 11, 12, 3, 14, 16, 13, 5, 5, 5, 5, 5, 15, 15, 15, 5, 15, 6, 6, 6, 6, 6, 15, 6, 16, 6, -1, -1, -1, -1, -1, 15 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { 0, 18, 0, 13, 19, 15, 3, 20, 4, 7, 8, 9, 10, 11, 12, 14, 5, 5, 5, 5, 5, 5, 15, 15, 15, 15, 15, 16, 16, 5, 6, 6, 6, 6, 6, 6, 15, 6 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. However, YYFAIL appears to be in use. Nevertheless, it is formally deprecated in Bison 2.4.2's NEWS entry, where a plan to phase it out is discussed. */ #define YYFAIL goto yyerrlab #if defined YYFAIL /* This is here to suppress warnings from the GCC cpp's -Wunused-macros. Normally we don't worry about that warning, but some users do, and we want to make it easy for users to remove YYFAIL uses, which will produce warnings from Bison 2.5. */ #endif #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (YYID (0)) #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (YYID (N)) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (YYID (0)) #endif #define YYRHSLOC(Rhs, K) ((Rhs)[K]) /* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM # define YYLEX yylex (YYLEX_PARAM) #else # define YYLEX yylex () #endif /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (YYID (0)) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (YYID (0)) /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) #else static void yy_symbol_value_print (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; #endif { FILE *yyo = yyoutput; YYUSE (yyo); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # else YYUSE (yyoutput); # endif switch (yytype) { default: break; } } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) #else static void yy_symbol_print (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; #endif { if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void yy_stack_print (yybottom, yytop) yytype_int16 *yybottom; yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_reduce_print (YYSTYPE *yyvsp, int yyrule) #else static void yy_reduce_print (yyvsp, yyrule) YYSTYPE *yyvsp; int yyrule; #endif { int yynrhs = yyr2[yyrule]; int yyi; unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyvsp, Rule); \ } while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) #else static YYSIZE_T yystrlen (yystr) const char *yystr; #endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) #else static char * yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; #endif { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message about the unexpected token YYTOKEN for the state stack whose top is YYSSP. Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is not large enough to hold the message. In that case, also set *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); YYSIZE_T yysize = yysize0; YYSIZE_T yysize1; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULL; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per "expected"). */ int yycount = 0; /* There are many possibilities here to consider: - Assume YYFAIL is not used. It's too flawed to consider. See for details. YYERROR is fine as it does not invoke this function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected tokens because there are none. - The only way there can be no lookahead present (in yychar) is if this state is a consistent state with a default action. Thus, detecting the absence of a lookahead is sufficient to determine that there is no unexpected or expected token to report. In that case, just report a simple "syntax error". - Don't assume there isn't a lookahead just because this state is a consistent state with a default action. There might have been a previous inconsistent state, consistent state with a non-default action, or user semantic action that manipulated yychar. - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the scanner and before detecting a syntax error. Thus, state merging (from LALR or IELR) and default reductions corrupt the expected token list. However, the list is correct for canonical LR with one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ if (yytoken != YYEMPTY) { int yyn = yypact[*yyssp]; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR && !yytable_value_is_error (yytable[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; break; } yyarg[yycount++] = yytname[yyx]; yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; } } } switch (yycount) { # define YYCASE_(N, S) \ case N: \ yyformat = S; \ break YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); # undef YYCASE_ } yysize1 = yysize + yystrlen (yyformat); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; if (*yymsg_alloc < yysize) { *yymsg_alloc = 2 * yysize; if (! (yysize <= *yymsg_alloc && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; return 1; } /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ { char *yyp = *yymsg; int yyi = 0; while ((*yyp = *yyformat) != '\0') if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyformat += 2; } else { yyp++; yyformat++; } } return 0; } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) #else static void yydestruct (yymsg, yytype, yyvaluep) const char *yymsg; int yytype; YYSTYPE *yyvaluep; #endif { YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); switch (yytype) { default: break; } } /* The lookahead symbol. */ int yychar; #ifndef YYLVAL_INITIALIZE # define YYLVAL_INITIALIZE() #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void *YYPARSE_PARAM) #else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; #endif #else /* ! YYPARSE_PARAM */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void) #else int yyparse () #endif #endif { int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: `yyss': related to states. `yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; YYSIZE_T yystacksize; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; yyss = yyssa; yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss; yyvsp = yyvs; YYLVAL_INITIALIZE (); goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token. */ yychar = YYEMPTY; yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: /* Line 1813 of yacc.c */ #line 46 "parser.y" { g_oSprites.clear(); } break; case 3: /* Line 1813 of yacc.c */ #line 48 "parser.y" { g_oSprites.insert(*(yyvsp[(2) - (2)].m_pSprite)); delete (yyvsp[(2) - (2)].m_pSprite); } break; case 4: /* Line 1813 of yacc.c */ #line 52 "parser.y" { (yyval.m_pSprite) = (yyvsp[(4) - (5)].m_pSprite); (yyval.m_pSprite)->m_iSprite = (yyvsp[(2) - (5)].number); } break; case 5: /* Line 1813 of yacc.c */ #line 56 "parser.y" { (yyval.m_pSprite) = new Sprite; } break; case 6: /* Line 1813 of yacc.c */ #line 58 "parser.y" { (yyval.m_pSprite) = (yyvsp[(1) - (5)].m_pSprite); (yyval.m_pSprite)->m_iLeft = (yyvsp[(4) - (5)].number); } break; case 7: /* Line 1813 of yacc.c */ #line 60 "parser.y" { (yyval.m_pSprite) = (yyvsp[(1) - (5)].m_pSprite); (yyval.m_pSprite)->m_iTop = (yyvsp[(4) - (5)].number); } break; case 8: /* Line 1813 of yacc.c */ #line 62 "parser.y" { (yyval.m_pSprite) = (yyvsp[(1) - (5)].m_pSprite); (yyval.m_pSprite)->m_iWidth = (yyvsp[(4) - (5)].number); } break; case 9: /* Line 1813 of yacc.c */ #line 64 "parser.y" { (yyval.m_pSprite) = (yyvsp[(1) - (5)].m_pSprite); (yyval.m_pSprite)->m_iHeight = (yyvsp[(4) - (5)].number); } break; case 10: /* Line 1813 of yacc.c */ #line 66 "parser.y" { (yyval.m_pSprite) = (yyvsp[(1) - (5)].m_pSprite); (yyval.m_pSprite)->m_sBaseImage = (yyvsp[(4) - (5)].text); } break; case 11: /* Line 1813 of yacc.c */ #line 68 "parser.y" { (yyval.m_pSprite) = (yyvsp[(1) - (5)].m_pSprite); (yyval.m_pSprite)->SetRecolour((yyvsp[(4) - (5)].text)); } break; case 12: /* Line 1813 of yacc.c */ #line 70 "parser.y" { (yyval.m_pSprite) = (yyvsp[(1) - (6)].m_pSprite); (yyval.m_pSprite)->m_aNumber[((yyvsp[(3) - (6)].number)) & 0xFF] = ((yyvsp[(5) - (6)].number)) & 0xFF; } break; /* Line 1813 of yacc.c */ #line 1462 "parser.cpp" default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ yyssp, yytoken) { char const *yymsgp = YY_("syntax error"); int yysyntax_error_status; yysyntax_error_status = YYSYNTAX_ERROR; if (yysyntax_error_status == 0) yymsgp = yymsg; else if (yysyntax_error_status == 1) { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); if (!yymsg) { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; yysyntax_error_status = 2; } else { yysyntax_error_status = YYSYNTAX_ERROR; yymsgp = yymsg; } } yyerror (yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } # undef YYSYNTAX_ERROR #endif } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; /* Do not reclaim the symbols of the rule which action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif /* Make sure YYID is used. */ return YYID (yyresult); } /* Line 2076 of yacc.c */ #line 73 "parser.y" void yyerror(const char *msg) { fprintf(stderr, "Parse error at line %d: %s\n", yylval.line, msg); exit(1); } CorsixTH-0.70.0/SpriteEncoder/parser.y000066400000000000000000000051421522247547500175540ustar00rootroot00000000000000/* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ %{ #include #include "ast.h" #include std::set g_oSprites; %} %token CURLY_OPEN CURLY_CLOSE EQUAL SEMICOL %token LEFTKW TOPKW WIDTHKW HEIGHTKW BASEIMGKW RECOLOURKW SPRITEKW LAYERKW %token NUMBER %token STRING %type SpriteSettings Sprite %start Program %% Program : /* empty */ { g_oSprites.clear(); } | Program Sprite { g_oSprites.insert(*$2); delete $2; } ; Sprite : SPRITEKW NUMBER CURLY_OPEN SpriteSettings CURLY_CLOSE { $$ = $4; $$->m_iSprite = $2; } ; SpriteSettings : /* empty */ { $$ = new Sprite; } | SpriteSettings LEFTKW EQUAL NUMBER SEMICOL { $$ = $1; $$->m_iLeft = $4; } | SpriteSettings TOPKW EQUAL NUMBER SEMICOL { $$ = $1; $$->m_iTop = $4; } | SpriteSettings WIDTHKW EQUAL NUMBER SEMICOL { $$ = $1; $$->m_iWidth = $4; } | SpriteSettings HEIGHTKW EQUAL NUMBER SEMICOL { $$ = $1; $$->m_iHeight = $4; } | SpriteSettings BASEIMGKW EQUAL STRING SEMICOL { $$ = $1; $$->m_sBaseImage = $4; } | SpriteSettings RECOLOURKW EQUAL STRING SEMICOL { $$ = $1; $$->SetRecolour($4); } | SpriteSettings LAYERKW NUMBER EQUAL NUMBER SEMICOL { $$ = $1; $$->m_aNumber[($3) & 0xFF] = ($5) & 0xFF; } ; %% void yyerror(const char *msg) { fprintf(stderr, "Parse error at line %d: %s\n", yylval.line, msg); exit(1); } CorsixTH-0.70.0/SpriteEncoder/scanner.cpp000066400000000000000000001421661522247547500202330ustar00rootroot00000000000000#line 2 "scanner.cpp" #line 4 "scanner.cpp" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 37 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart(yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif extern yy_size_t yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ yy_size_t yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart (FILE *input_file ); void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); void yy_delete_buffer (YY_BUFFER_STATE b ); void yy_flush_buffer (YY_BUFFER_STATE b ); void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); void yypop_buffer_state (void ); static void yyensure_buffer_stack (void ); static void yy_load_buffer_state (void ); static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); void *yyalloc (yy_size_t ); void *yyrealloc (void *,yy_size_t ); void yyfree (void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define yywrap() 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #define yytext_ptr yytext static yy_state_type yy_get_previous_state (void ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); static int yy_get_next_buffer (void ); static void yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 25 #define YY_END_OF_BUFFER 26 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[68] = { 0, 0, 0, 0, 0, 0, 0, 26, 24, 22, 23, 21, 15, 24, 13, 14, 4, 3, 24, 24, 24, 24, 24, 24, 24, 1, 2, 17, 25, 16, 20, 19, 18, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 10, 0, 0, 6, 0, 0, 0, 0, 12, 0, 0, 8, 9, 0, 5, 0, 11, 0 } ; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 9, 1, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1, 1, 20, 1, 1, 21, 22, 1, 23, 24, 25, 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst flex_int32_t yy_meta[31] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst flex_int16_t yy_base[70] = { 0, 0, 0, 28, 29, 74, 73, 75, 78, 78, 78, 78, 78, 68, 78, 28, 78, 78, 62, 57, 26, 56, 48, 48, 49, 78, 78, 78, 78, 78, 78, 78, 78, 31, 43, 47, 37, 48, 50, 39, 39, 46, 44, 41, 42, 31, 34, 35, 78, 28, 78, 34, 28, 78, 30, 24, 30, 22, 78, 25, 30, 78, 78, 18, 78, 20, 78, 78, 41, 39 } ; static yyconst flex_int16_t yy_def[70] = { 0, 67, 1, 68, 68, 69, 69, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 67, 67 } ; static yyconst flex_int16_t yy_nxt[109] = { 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 8, 18, 8, 8, 8, 8, 8, 19, 8, 20, 8, 8, 21, 22, 23, 8, 24, 8, 25, 26, 28, 28, 29, 29, 33, 33, 36, 33, 33, 30, 37, 27, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 35, 34, 32, 67, 31, 31, 7, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67 } ; static yyconst flex_int16_t yy_chk[109] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 4, 15, 15, 20, 33, 33, 69, 20, 68, 65, 63, 60, 59, 57, 56, 55, 54, 52, 51, 49, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 24, 23, 22, 21, 19, 18, 13, 7, 6, 5, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "scanner.l" /* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #line 24 "scanner.l" #include #include #include "ast.h" #include "tokens.h" int line = 1; std::string filename; #line 527 "scanner.cpp" #define INITIAL 0 #define IN_STRING 1 #define IN_COMMENT 2 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy (void ); int yyget_debug (void ); void yyset_debug (int debug_flag ); YY_EXTRA_TYPE yyget_extra (void ); void yyset_extra (YY_EXTRA_TYPE user_defined ); FILE *yyget_in (void ); void yyset_in (FILE * in_str ); FILE *yyget_out (void ); void yyset_out (FILE * out_str ); yy_size_t yyget_leng (void ); char *yyget_text (void ); int yyget_lineno (void ); void yyset_lineno (int line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap (void ); #else extern int yywrap (void ); #endif #endif static void yyunput (int c,char *buf_ptr ); #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void ); #else static int input (void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ size_t n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 38 "scanner.l" #line 714 "scanner.cpp" if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer(yyin,YY_BUF_SIZE ); } yy_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 68 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 78 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: YY_RULE_SETUP #line 40 "scanner.l" { yylval.line = line; return CURLY_OPEN; } YY_BREAK case 2: YY_RULE_SETUP #line 41 "scanner.l" { yylval.line = line; return CURLY_CLOSE; } YY_BREAK case 3: YY_RULE_SETUP #line 42 "scanner.l" { yylval.line = line; return EQUAL; } YY_BREAK case 4: YY_RULE_SETUP #line 43 "scanner.l" { yylval.line = line; return SEMICOL; } YY_BREAK case 5: YY_RULE_SETUP #line 45 "scanner.l" { yylval.line = line; return SPRITEKW; } YY_BREAK case 6: YY_RULE_SETUP #line 46 "scanner.l" { yylval.line = line; return LEFTKW; } YY_BREAK case 7: YY_RULE_SETUP #line 47 "scanner.l" { yylval.line = line; return TOPKW; } YY_BREAK case 8: YY_RULE_SETUP #line 48 "scanner.l" { yylval.line = line; return WIDTHKW; } YY_BREAK case 9: YY_RULE_SETUP #line 49 "scanner.l" { yylval.line = line; return HEIGHTKW; } YY_BREAK case 10: YY_RULE_SETUP #line 50 "scanner.l" { yylval.line = line; return BASEIMGKW; } YY_BREAK case 11: YY_RULE_SETUP #line 51 "scanner.l" { yylval.line = line; return RECOLOURKW; } YY_BREAK case 12: YY_RULE_SETUP #line 52 "scanner.l" { yylval.line = line; return LAYERKW; } YY_BREAK case 13: YY_RULE_SETUP #line 54 "scanner.l" { yylval.line = line; yylval.number = 0; return NUMBER; } YY_BREAK case 14: YY_RULE_SETUP #line 58 "scanner.l" { yylval.line = line; yylval.number = atoi(yytext); return NUMBER; } YY_BREAK case 15: YY_RULE_SETUP #line 62 "scanner.l" { yylval.text = ""; yylval.line = line; BEGIN(IN_STRING); } YY_BREAK case 16: YY_RULE_SETUP #line 66 "scanner.l" { BEGIN(INITIAL); return STRING; } YY_BREAK case 17: YY_RULE_SETUP #line 69 "scanner.l" { yylval.text += yytext; } YY_BREAK case 18: YY_RULE_SETUP #line 71 "scanner.l" { BEGIN(IN_COMMENT); } YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP #line 73 "scanner.l" { BEGIN(INITIAL); line++; } YY_BREAK case 20: YY_RULE_SETUP #line 76 "scanner.l" { } YY_BREAK case 21: YY_RULE_SETUP #line 78 "scanner.l" { } YY_BREAK case 22: YY_RULE_SETUP #line 80 "scanner.l" { } YY_BREAK case 23: /* rule 23 can match eol */ YY_RULE_SETUP #line 82 "scanner.l" { line++; } YY_BREAK case 24: YY_RULE_SETUP #line 84 "scanner.l" { fprintf(stderr, "Unrecognized character encountered at line %d\n", line); exit(1); } YY_BREAK case YY_STATE_EOF(IN_COMMENT): #line 87 "scanner.l" { BEGIN(INITIAL); } YY_BREAK case YY_STATE_EOF(IN_STRING): #line 88 "scanner.l" { BEGIN(INITIAL); } YY_BREAK case 25: YY_RULE_SETUP #line 90 "scanner.l" ECHO; YY_BREAK #line 941 "scanner.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart(yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 68 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 68 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 67); return yy_is_jam ? 0 : yy_current_state; } static void yyunput (int c, register char * yy_bp ) { register char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register yy_size_t number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart(yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return EOF; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer(yyin,YY_BUF_SIZE ); } yy_init_buffer(YY_CURRENT_BUFFER,input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree((void *) b->yy_ch_buf ); yyfree((void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) { return yy_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) yyalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ yy_size_t yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param line_number * */ void yyset_lineno (int line_number ) { yylineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * in_str ) { yyin = in_str ; } void yyset_out (FILE * out_str ) { yyout = out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int bdebug ) { yy_flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return (void *) malloc( size ); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 90 "scanner.l" void SetupScanner(const char *fname, FILE *new_file) { if (new_file == NULL || fname == NULL) { new_file = stdin; } yyrestart(new_file); BEGIN(INITIAL); filename = (fname == NULL) ? "" : fname; line = 1; } CorsixTH-0.70.0/SpriteEncoder/scanner.l000066400000000000000000000057361522247547500177050ustar00rootroot00000000000000/* Copyright (c) 2013 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ %{ #include #include #include "ast.h" #include "tokens.h" int line = 1; std::string filename; %} %x IN_STRING %x IN_COMMENT %option noyywrap %% "{" { yylval.line = line; return CURLY_OPEN; } "}" { yylval.line = line; return CURLY_CLOSE; } "=" { yylval.line = line; return EQUAL; } ";" { yylval.line = line; return SEMICOL; } "sprite" { yylval.line = line; return SPRITEKW; } "left" { yylval.line = line; return LEFTKW; } "top" { yylval.line = line; return TOPKW; } "width" { yylval.line = line; return WIDTHKW; } "height" { yylval.line = line; return HEIGHTKW; } "base" { yylval.line = line; return BASEIMGKW; } "recolour" { yylval.line = line; return RECOLOURKW; } "layer" { yylval.line = line; return LAYERKW; } "0" { yylval.line = line; yylval.number = 0; return NUMBER; } [1-9][0-9]* { yylval.line = line; yylval.number = atoi(yytext); return NUMBER; } \" { yylval.text = ""; yylval.line = line; BEGIN(IN_STRING); } \" { BEGIN(INITIAL); return STRING; } . { yylval.text += yytext; } "//" { BEGIN(IN_COMMENT); } \n { BEGIN(INITIAL); line++; } . { } " " { } \t { } \n { line++; } . { fprintf(stderr, "Unrecognized character encountered at line %d\n", line); exit(1); } <> { BEGIN(INITIAL); } <> { BEGIN(INITIAL); } %% void SetupScanner(const char *fname, FILE *new_file) { if (new_file == NULL || fname == NULL) { new_file = stdin; } yyrestart(new_file); BEGIN(INITIAL); filename = (fname == NULL) ? "" : fname; line = 1; } CorsixTH-0.70.0/SpriteEncoder/tokens.h000066400000000000000000000051561522247547500175470ustar00rootroot00000000000000/* A Bison parser, made by GNU Bison 2.6.4. */ /* Bison interface for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. 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 . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ #ifndef YY_YY_TOKENS_H_INCLUDED # define YY_YY_TOKENS_H_INCLUDED /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif #if YYDEBUG extern int yydebug; #endif /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { CURLY_OPEN = 258, CURLY_CLOSE = 259, EQUAL = 260, SEMICOL = 261, LEFTKW = 262, TOPKW = 263, WIDTHKW = 264, HEIGHTKW = 265, BASEIMGKW = 266, RECOLOURKW = 267, SPRITEKW = 268, LAYERKW = 269, NUMBER = 270, STRING = 271 }; #endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); #else int yyparse (); #endif #else /* ! YYPARSE_PARAM */ #if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ #endif /* !YY_YY_TOKENS_H_INCLUDED */ CorsixTH-0.70.0/WindowsInstaller/000077500000000000000000000000001522247547500166265ustar00rootroot00000000000000CorsixTH-0.70.0/WindowsInstaller/LanguageStrings.nsh000066400000000000000000000461701522247547500224450ustar00rootroot00000000000000; Copyright (c) 2010 Edvin "Lego3" Linge ; Permission is hereby granted, free of charge, to any person obtaining a copy of ; this software and associated documentation files (the "Software"), to deal in ; the Software without restriction, including without limitation the rights to ; use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies ; of the Software, and to permit persons to whom the Software is furnished to do ; so, subject to the following conditions: ; The above copyright notice and this permission notice shall be included in all ; copies or substantial portions of the Software. ; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ; SOFTWARE. LangString install_language ${LANG_DANISH} "Danish" LangString options_subtitle ${LANG_DANISH} "For at kunne spille spillet en installation af det originale spil er pÃ¥krævet." LangString successful_removal ${LANG_DANISH} "$(^Name) var vellykket fjernet fra din computer." LangString confirm_removal ${LANG_DANISH} "Er du sikker pÃ¥ du vil helt fjerne $(^Name) og alle dets komponenter?" LangString files_left ${LANG_DANISH} "Nogle filer kunne ikke fjernes." LangString options_title ${LANG_DANISH} "Yderligere indstillinger" LangString save_in_appdata ${LANG_DANISH} "Gemme spil data og indstillinger i %APPDATA% (Anbefales)" LangString remove_saves ${LANG_DANISH} "Vil du gerne beholde dine gemte spil?" LangString overwrite_install ${LANG_DANISH} "Det ser ud til at du forsøger at installere over en eksisterende installation af CorsixTH. Eventuelle ændringer mellem filerne kan gÃ¥ tabt. Ønsker du at fortsætte?" LangString install_language ${LANG_CZECH} "ÄŒeÅ¡tina" LangString options_subtitle ${LANG_CZECH} "Abyste mohli hru hrát, je tÅ™eba mít k dispozici data z původní hry." LangString successful_removal ${LANG_CZECH} "$(^Name) bylo úspěšnÄ› odstranÄ›no z vaÅ¡eho poÄ�ítaÄ�e." LangString confirm_removal ${LANG_CZECH} "Opravdu chcete úplnÄ› odstranit $(^Name) a vÅ¡echny jeho souÄ�ásti?" LangString files_left ${LANG_CZECH} "NÄ›které soubory nemohly být odstranÄ›ny." LangString options_title ${LANG_CZECH} "Další možnosti" LangString save_in_appdata ${LANG_CZECH} "Uložené hry a data ukládat do %APPDATA% (DoporuÄ�eno)" LangString remove_saves ${LANG_CZECH} "ChtÄ›li byste si své uložené hry ponechat?" LangString overwrite_install ${LANG_CZECH} "Zdá se, že hru instalujete pÅ™es existující instalaci CorsixTH. VÅ¡echny zmÄ›ny provedené v souborech budou ztraceny. Chcete pokraÄ�ovat?" LangString install_language ${LANG_DUTCH} "Dutch" LangString options_subtitle ${LANG_DUTCH} "Om het spel te kunnen spelen moet u het origineel geïnstalleerd hebben." LangString successful_removal ${LANG_DUTCH} "$(^Name) is met succes van deze computer verwijderd." LangString confirm_removal ${LANG_DUTCH} "Weet u zeker dat u $(^Name) en de bijbehorende componenten wilt verwijderen?" LangString files_left ${LANG_DUTCH} "Sommige bestanden konden niet worden verwijderd." LangString options_title ${LANG_DUTCH} "Meer opties" LangString save_in_appdata ${LANG_DUTCH} "Opgeslagen spellen en instellingen opslaan in %APPDATA% (Aanbevolen)" LangString remove_saves ${LANG_DUTCH} "Wilt u uw opgeslagen spellen bewaren?" LangString overwrite_install ${LANG_DUTCH} "U installeert over een bestaande installatie van CorsixTH. Gemaakte wijzigingen aan bestanden zullen verloren gaan. Wilt u doorgaan?" LangString install_language ${LANG_ENGLISH} "English" LangString options_subtitle ${LANG_ENGLISH} "In order to play the game an installation of the original game is required." LangString successful_removal ${LANG_ENGLISH} "$(^Name) was successfully removed from your computer." LangString confirm_removal ${LANG_ENGLISH} "Are you sure you want to completely remove $(^Name) and all of its components?" LangString files_left ${LANG_ENGLISH} "Some files could not be removed." LangString options_title ${LANG_ENGLISH} "Additional Options" LangString save_in_appdata ${LANG_ENGLISH} "Save game data and settings in %APPDATA% (Recommended)" LangString remove_saves ${LANG_ENGLISH} "Would you like to keep your saved games?" LangString overwrite_install ${LANG_ENGLISH} "You seem to be installing on an existing installation of CorsixTH. Any changes made among the files might be lost. Continue?" LangString install_language ${LANG_FINNISH} "Finnish" LangString options_subtitle ${LANG_FINNISH} "Alkuperäisen Theme Hospital -pelin tulee olla asennettuna, jotta voit pelata tätä peliä." LangString successful_removal ${LANG_FINNISH} "$(^Name) on poistettu koneeltasi onnistuneesti." LangString confirm_removal ${LANG_FINNISH} "Oletko varma, että haluat kokonaan poistaa $(^Name):n ja kaikki sen osat?" LangString files_left ${LANG_FINNISH} "Joitain tiedostoja ei voitu poistaa." LangString options_title ${LANG_FINNISH} "Lisäasetukset" LangString save_in_appdata ${LANG_FINNISH} "Pelitietojen ja asetusten tallennushakemisto: %APPDATA% (Suositus)" LangString remove_saves ${LANG_FINNISH} "Haluatko säilyttää tallennetut pelit?" LangString overwrite_install ${LANG_FINNISH} "Asennat olemassaolevan CorsixTH asennuksen päälle. Muutokset tiedostoihin saatetaan menettää. Haluatko jatkaa?" LangString install_language ${LANG_FRENCH} "French" LangString options_subtitle ${LANG_FRENCH} "Pour pouvoir jouer, une installation du jeu original est nécessaire." LangString successful_removal ${LANG_FRENCH} "$(^Name) a été supprimé de votre ordinateur avec succès." LangString confirm_removal ${LANG_FRENCH} "Êtes-vous sûr de vouloir complètement supprimer $(^Name) et tous ses composants ?" LangString files_left ${LANG_FRENCH} "Certains fichiers n'ont pas pu être supprimés." LangString options_title ${LANG_FRENCH} "Options additionnelles" LangString save_in_appdata ${LANG_FRENCH} "Enregistrer les données de jeu et les paramètres dans %APPDATA% (recommandé)" LangString remove_saves ${LANG_FRENCH} "Voulez-vous conserver vos parties sauvegardées ?" LangString overwrite_install ${LANG_FRENCH} "Il semble que vous installez par dessus une installation existante de CorsixTH. Tous les changements faits aux fichiers pourraient être perdus. Voulez-vous continuer ?" LangString install_language ${LANG_GERMAN} "German" LangString options_subtitle ${LANG_GERMAN} "Um das Spiel zu spielen wird das Originalspiel benötigt." LangString successful_removal ${LANG_GERMAN} "$(^Name) wurde erfolgreich vom Computer entfernt." LangString confirm_removal ${LANG_GERMAN} "Sind Sie sicher, dass Sie $(^Name) und alle seiner Komponenten entfernen möchten?" LangString files_left ${LANG_GERMAN} "Einige Dateien konnten nicht entfernt werden." LangString options_title ${LANG_GERMAN} "Zusätzliche Einstellungen" LangString save_in_appdata ${LANG_GERMAN} "Spieldaten und Einstellungen in %APPDATA% speichern (empfohlen)" LangString remove_saves ${LANG_GERMAN} "Möchten Sie gespeicherte Spielstände behalten?" LangString overwrite_install ${LANG_GERMAN} "Sie installieren in ein Verzeichnis mit einer existierenden Installation von CorsixTH. Eventuell vorgenommene Änderungen an den Spieldateien gehen verloren. Fortsetzen?" LangString install_language ${LANG_HUNGARIAN} "Magyar" LangString options_subtitle ${LANG_HUNGARIAN} "A program futtatásához az eredeti játék telepítése szükséges." LangString successful_removal ${LANG_HUNGARIAN} "$(^Name) sikeresen el lett távolítva a gépedrÅ‘l." LangString confirm_removal ${LANG_HUNGARIAN} "Biztos vagy benne, hogy teljesen eltávolítod a $(^Name)-t minden összetevÅ‘jével együtt?" LangString files_left ${LANG_HUNGARIAN} "Néhány filet nem lehetett eltávolítani." LangString options_title ${LANG_HUNGARIAN} "Egyéb beállítások" LangString save_in_appdata ${LANG_HUNGARIAN} "A játék mentéseinek és beállításainak mentése ide: %APPDATA% (Ajánlott)" LangString remove_saves ${LANG_HUNGARIAN} "Meg szeretnéd tartani az elmentett állásaidat?" LangString overwrite_install ${LANG_HUNGARIAN} "Úgy tűnik, hogy már egy meglévÅ‘ CorsixTH-ra szeretnél telepíteni. Minden változás a korábbi fileokon elveszhet. Folytatod?" LangString install_language ${LANG_ITALIAN} "Italian" LangString options_subtitle ${LANG_ITALIAN} "Per poter installare il gioco è necessario aver installato Theme Hospital Originale." LangString successful_removal ${LANG_ITALIAN} "$(^Name) è stato rimosso con successo dal pc." LangString confirm_removal ${LANG_ITALIAN} "Sei sicuro di voler rimuovere $(^Name) e tutti i suoi componenti?" LangString files_left ${LANG_ITALIAN} "Non è stato possibile rimuovere alcuni file." LangString options_title ${LANG_ITALIAN} "Opzioni Addizionali" LangString save_in_appdata ${LANG_ITALIAN} "Salva i dati di gioco e le impostazioni in %APPDATA% (Raccomandato)" LangString remove_saves ${LANG_ITALIAN} "Vuoi mantenere i tuoi salvataggi?" LangString overwrite_install ${LANG_ITALIAN} "Sembra che stai reinstallando su una precedente installazione di CorsixTH. Tutte le precedenti modifiche ai file potrebbero andare perse. Continuare?" LangString install_language ${LANG_KOREAN} "Korean" LangString options_subtitle ${LANG_KOREAN} "게임ì�„ 플레ì�´í•˜ê¸° 위해서는 ì›�본 게임ì�´ 설치ë�˜ì–´ 있어야 합니다." LangString successful_removal ${LANG_KOREAN} "$(^Name) ì�´(ê°€) 성공ì �으로 제거ë�˜ì—ˆìŠµë‹ˆë‹¤." LangString confirm_removal ${LANG_KOREAN} "ì •ë§�로 $(^Name) 와(ê³¼) 구성 요소들ì�„ 모ë‘� 제거하시겠습니까?" LangString files_left ${LANG_KOREAN} "몇몇 파ì�¼ë“¤ì�„ 제거할 수 없었습니다." LangString options_title ${LANG_KOREAN} "추가 옵션" LangString save_in_appdata ${LANG_KOREAN} "게임 ë�°ì�´í„°ì™€ 설정ì�„ %APPDATA% ì—� 저장 (권장ë�¨)" LangString remove_saves ${LANG_KOREAN} "저장ë�œ 게임들ì�„ 유지하시겠습니까?" LangString overwrite_install ${LANG_KOREAN} "기존ì�˜ CorsixTH 설치본 위ì—� 설치하는 것 같습니다. 기존 파ì�¼ë“¤ì�˜ 수정ë�œ 부분들ì�„ 잃ì�„ 수ë�„ 있습니다. 계ì†�하시겠습니까?" LangString install_language ${LANG_NORWEGIAN} "Norwegian" LangString options_subtitle ${LANG_NORWEGIAN} "For Ã¥ kunne spille dette spillet, mÃ¥ du ha det originale Theme Hospital installert." LangString successful_removal ${LANG_NORWEGIAN} "$(^Name) er nÃ¥ fjernet fra datamaskinen." LangString confirm_removal ${LANG_NORWEGIAN} "Er du sikker pÃ¥ at du vil fjerne $(^Name) og alle dens komponenter?" LangString files_left ${LANG_NORWEGIAN} "Noen filer kunne ikke fjernes." LangString options_title ${LANG_NORWEGIAN} "Flere innstillinger" LangString save_in_appdata ${LANG_NORWEGIAN} "Lagre spilldata og innstillinger i %APPDATA% (Anbefalt)" LangString remove_saves ${LANG_NORWEGIAN} "Vil du beholde dine lagrede spill?" LangString overwrite_install ${LANG_NORWEGIAN} "Det ser ut som om du prøver Ã¥ skrive over en eksisterende installasjon av CorsixTH. Om du har gjort endringer kan disse gÃ¥ tapt. Fortsette?" LangString install_language ${LANG_POLISH} "Polish" LangString options_subtitle ${LANG_POLISH} "W celu uruchomienia gry wymagana jest instalacja oryginalnej gry." LangString successful_removal ${LANG_POLISH} "$(^Name) zostaÅ‚ pomyÅ›lnie usuniÄ™ty z twojego komputera." LangString confirm_removal ${LANG_POLISH} "Czy jesteÅ› pewny, że chcesz usunąć $(^Name) oraz wszystkie jego komponenty?" LangString files_left ${LANG_POLISH} "Niektóre z plików nie zostaÅ‚y usuniÄ™te." LangString options_title ${LANG_POLISH} "Dodatkowe opcje" LangString save_in_appdata ${LANG_POLISH} "Zapisz wszelkie dane z grÄ… w katalogu %APPDATA% (Zalecane)" LangString remove_saves ${LANG_POLISH} "Czy chcesz zachować zapisane gry?" LangString overwrite_install ${LANG_POLISH} "WyglÄ…da na to, że próbujesz zainstalować w miejsce już istniejÄ…cej instalacji CorsixTH. Wszelkie zmiany dokonane w plikach mogÄ… zostać utracone. Kontynuować?" LangString install_language ${LANG_PORTUGUESE} "Portuguese" LangString options_subtitle ${LANG_PORTUGUESE} "De forma a poderes jogar precisas do jogo original instalado." LangString successful_removal ${LANG_PORTUGUESE} "$(^Name) foi removido com sucesso do teu computador." LangString confirm_removal ${LANG_PORTUGUESE} "Tens a certeza que queres remover $(^Name) e todos os seus componentes?" LangString files_left ${LANG_PORTUGUESE} "Alguns ficheiros não foram removidos." LangString options_title ${LANG_PORTUGUESE} "Opções adicionais" LangString save_in_appdata ${LANG_PORTUGUESE} "Guardar as configurações e os dados do jogo em %APPDATA% (Recomendado)" LangString remove_saves ${LANG_PORTUGUESE} "Gostarias de manter os teus jogos gravados?" LangString overwrite_install ${LANG_PORTUGUESE} "Parece que estás a instalar sobre uma instalação existente do CorsixTH. Quaisquer mudanças feitas entre os ficheiros serão perdidas. Continuar?" LangString install_language ${LANG_PORTUGUESEBR} "Brazilian Portuguese" LangString options_subtitle ${LANG_PORTUGUESEBR} "Para jogar CorsixTH é necessário ter o jogo original (Theme Hospital)." LangString successful_removal ${LANG_PORTUGUESEBR} "$(^Name) foi removido com sucesso do seu computador." LangString confirm_removal ${LANG_PORTUGUESEBR} "Tem certeza que deseja remover $(^Name) e todos os seus componentes?" LangString files_left ${LANG_PORTUGUESEBR} "Algumas pastas não foram removidas." LangString options_title ${LANG_PORTUGUESEBR} "Opções adicionais" LangString save_in_appdata ${LANG_PORTUGUESEBR} "Salvar as configurações e os dados do jogo em %APPDATA% (Recomendado)" LangString remove_saves ${LANG_PORTUGUESEBR} "Gostaria de manter os jogos gravados?" LangString overwrite_install ${LANG_PORTUGUESEBR} "Você irá instalar o CorsixTH sobre uma instalação anterior. Quaisquer mudanças feitas nos diretórios serão perdidas. Continuar?" LangString install_language ${LANG_RUSSIAN} "Russian" LangString options_subtitle ${LANG_RUSSIAN} "ДлÑ� работы Ñ�той игре требуетÑ�Ñ� уÑ�тановка оригинальной Theme Hospital." LangString successful_removal ${LANG_RUSSIAN} "$(^Name) уÑ�пешно удалена Ñ� вашего компьютера." LangString confirm_removal ${LANG_RUSSIAN} "Ð’Ñ‹ уверены, что хотите полноÑ�тью удалить $(^Name) и вÑ�е ее компоненты?" LangString files_left ${LANG_RUSSIAN} "Ð�екоторые файлы не были удалены." LangString options_title ${LANG_RUSSIAN} "Дополнительные опции" LangString save_in_appdata ${LANG_RUSSIAN} "СохранÑ�ть игровые данные и наÑ�тройки в %APPDATA% (рекомендовано)" LangString remove_saves ${LANG_RUSSIAN} "ОÑ�тавить Ñ�охраненные игры?" LangString overwrite_install ${LANG_RUSSIAN} "КажетÑ�Ñ�, у ВаÑ� уже еÑ�ть уÑ�тановленнаÑ� верÑ�иÑ� CorsixTH. Любые изменениÑ� могут привеÑ�ти к потере данных. Продолжить?" LangString install_language ${LANG_SIMPCHINESE} "Chinese (simplified)" LangString options_subtitle ${LANG_SIMPCHINESE} "è¿�行游æˆ�需è¦�原版主题医院。" LangString successful_removal ${LANG_SIMPCHINESE} "$(^Name) å·²ç»�被æˆ�功删除。" LangString confirm_removal ${LANG_SIMPCHINESE} "你确定è¦�完全移除 $(^Name) å�Šå…¶æ‰€æœ‰ç»„件?" LangString files_left ${LANG_SIMPCHINESE} "有一些文件ä¸�能被删除。" LangString options_title ${LANG_SIMPCHINESE} "附加选项" LangString save_in_appdata ${LANG_SIMPCHINESE} "游æˆ�设置ä¿�存在“用户å¸�户文件夹â€�(推è��)" LangString remove_saves ${LANG_SIMPCHINESE} "ä½ æ„¿æ„�ä¿�留已ä¿�存的游æˆ�å�—?" LangString overwrite_install ${LANG_SIMPCHINESE} "You seem to be installing on an existing installation of CorsixTH. Any changes made among the files might be lost. Continue?" LangString install_language ${LANG_SPANISH} "Spanish" LangString options_subtitle ${LANG_SPANISH} "Necesitas tener instalado el juego original para jugar a CorsixTH." LangString successful_removal ${LANG_SPANISH} "$(^Name) ha sido desinstalado con éxito de tu ordenador." LangString confirm_removal ${LANG_SPANISH} "¿Seguro que quieres desinstalar $(^Name) y todos sus componentes?" LangString files_left ${LANG_SPANISH} "No se han podido borrar algunos archivos." LangString options_title ${LANG_SPANISH} "Opciones adicionales" LangString save_in_appdata ${LANG_SPANISH} "Guardar la configuración y los datos del juego en %APPDATA% (Recomendado)" LangString remove_saves ${LANG_SPANISH} "¿Quieres conservar tus partidas guardadas?" LangString overwrite_install ${LANG_SPANISH} "Estás instalando CorsixTH sobre una instalación ya existente. Se podría perder cualquier cambio que hayas hecho en los archivos. ¿Quieres continuar?" LangString install_language ${LANG_SWEDISH} "Swedish" LangString options_subtitle ${LANG_SWEDISH} "För att spela spelet krävs att Theme Hospital eller dess demoversion redan är installerat." LangString successful_removal ${LANG_SWEDISH} "$(^Name) är nu borttaget frÃ¥n datorn." LangString confirm_removal ${LANG_SWEDISH} "Är du säker pÃ¥ att du vill ta bort $(^Name) frÃ¥n datorn?" LangString files_left ${LANG_SWEDISH} "NÃ¥gra filer kunde inte tas bort." LangString options_title ${LANG_SWEDISH} "Ytterligare inställningar" LangString save_in_appdata ${LANG_SWEDISH} "Spara speldata och inställningar i %APPDATA% (Rekommenderas)" LangString remove_saves ${LANG_SWEDISH} "Vill du behÃ¥lla dina sparade spel?" LangString overwrite_install ${LANG_SWEDISH} "Det verkar som att du vill installera över en befintlig installation av CorsixTH. Om du gjort ändringar kan dessa gÃ¥ förlorade. Fortsätta?" LangString install_language ${LANG_TRADCHINESE} "Chinese (traditional)" LangString options_subtitle ${LANG_TRADCHINESE} "é�‹è¡Œæ¸¸æˆ²éœ€è¦�原版æ��林也瘋狂。" LangString successful_removal ${LANG_TRADCHINESE} "$(^Name) 已經被æˆ�功刪除。" LangString confirm_removal ${LANG_TRADCHINESE} "你確定è¦�完全刪除 $(^Name) å�Šå…¶æ‰€æœ‰çµ„件?" LangString files_left ${LANG_TRADCHINESE} "有些檔案無法被刪除。" LangString options_title ${LANG_TRADCHINESE} "附加é�¸é …" LangString save_in_appdata ${LANG_TRADCHINESE} "é�Šæˆ²è¨­ç½®ä¿�存在“使用者帳戶資料夾â€�(推薦)" LangString remove_saves ${LANG_TRADCHINESE} "你願æ„�ä¿�留已ä¿�存的é�Šæˆ²å—Žï¼Ÿ" LangString overwrite_install ${LANG_TRADCHINESE} "你好åƒ�在已有的 CorsixTH 上安è£� CorsixTH。在這些檔案中的所有更變將會消失。繼續?" CorsixTH-0.70.0/WindowsInstaller/ReplaceInFile.nsh000066400000000000000000000057631522247547500220150ustar00rootroot00000000000000; This software is provided 'as-is', without any express or implied warranty. ; In no event will the authors be held liable for any damages arising from the ; use of this software. ; Permission is granted to anyone to use this software for any purpose, ; including commercial applications, and to alter it and redistribute it freely, ; subject to the following restrictions: ; 1. The origin of this software must not be misrepresented; you must not claim ; that you wrote the original software. If you use this software in a product, ; an acknowledgment in the product documentation would be appreciated but is not ; required. ; 2. Altered source versions must be plainly marked as such, and must not be ; misrepresented as being the original software. ; 3. This notice may not be removed or altered from any source distribution. ; Function to replace text in a file, Author: Datenbert !macro ReplaceInFile SOURCE_FILE SEARCH_TEXT REPLACEMENT Push "${SOURCE_FILE}" Push "${SEARCH_TEXT}" Push "${REPLACEMENT}" Call RIF !macroend Function RIF ClearErrors ; want to be a newborn Exch $0 ; REPLACEMENT Exch Exch $1 ; SEARCH_TEXT Exch 2 Exch $2 ; SOURCE_FILE Push $R0 ; SOURCE_FILE file handle Push $R1 ; temporary file handle Push $R2 ; unique temporary file name Push $R3 ; a line to sar/save Push $R4 ; shift puffer IfFileExists $2 +1 RIF_error ; knock-knock FileOpen $R0 $2 "r" ; open the door GetTempFileName $R2 ; who's new? FileOpen $R1 $R2 "w" ; the escape, please! RIF_loop: ; round'n'round we go FileRead $R0 $R3 ; read one line IfErrors RIF_leaveloop ; enough is enough RIF_sar: ; sar - search and replace Push "$R3" ; (hair)stack Push "$1" ; needle Push "$0" ; blood Call StrReplace ; do the bartwalk StrCpy $R4 "$R3" ; remember previous state Pop $R3 ; gimme s.th. back in return! StrCmp "$R3" "$R4" +1 RIF_sar ; loop, might change again! FileWrite $R1 "$R3" ; save the newbie Goto RIF_loop ; gimme more RIF_leaveloop: ; over'n'out, Sir! FileClose $R1 ; S'rry, Ma'am - clos'n now FileClose $R0 ; me 2 Delete "$2.old" ; go away, Sire Rename "$2" "$2.old" ; step aside, Ma'am Rename "$R2" "$2" ; hi, baby! ClearErrors ; now i AM a newborn Goto RIF_out ; out'n'away RIF_error: ; ups - s.th. went wrong... SetErrors ; ...so cry, boy! RIF_out: ; your wardrobe? Pop $R4 Pop $R3 Pop $R2 Pop $R1 Pop $R0 Pop $2 Pop $0 Pop $1 FunctionEndCorsixTH-0.70.0/WindowsInstaller/StrRep.nsh000066400000000000000000000047151522247547500205660ustar00rootroot00000000000000; This software is provided 'as-is', without any express or implied warranty. ; In no event will the authors be held liable for any damages arising from the ; use of this software. ; Permission is granted to anyone to use this software for any purpose, ; including commercial applications, and to alter it and redistribute it freely, ; subject to the following restrictions: ; 1. The origin of this software must not be misrepresented; you must not claim ; that you wrote the original software. If you use this software in a product, ; an acknowledgment in the product documentation would be appreciated but is not ; required. ; 2. Altered source versions must be plainly marked as such, and must not be ; misrepresented as being the original software. ; 3. This notice may not be removed or altered from any source distribution. ; Replaces all occurrences of a given needle within a haystack with another string ; Written by dandaman32 Var STR_REPLACE_VAR_0 Var STR_REPLACE_VAR_1 Var STR_REPLACE_VAR_2 Var STR_REPLACE_VAR_3 Var STR_REPLACE_VAR_4 Var STR_REPLACE_VAR_5 Var STR_REPLACE_VAR_6 Var STR_REPLACE_VAR_7 Var STR_REPLACE_VAR_8 Function StrReplace Exch $STR_REPLACE_VAR_2 Exch 1 Exch $STR_REPLACE_VAR_1 Exch 2 Exch $STR_REPLACE_VAR_0 StrCpy $STR_REPLACE_VAR_3 -1 StrLen $STR_REPLACE_VAR_4 $STR_REPLACE_VAR_1 StrLen $STR_REPLACE_VAR_6 $STR_REPLACE_VAR_0 loop: IntOp $STR_REPLACE_VAR_3 $STR_REPLACE_VAR_3 + 1 StrCpy $STR_REPLACE_VAR_5 $STR_REPLACE_VAR_0 $STR_REPLACE_VAR_4 $STR_REPLACE_VAR_3 StrCmp $STR_REPLACE_VAR_5 $STR_REPLACE_VAR_1 found StrCmp $STR_REPLACE_VAR_3 $STR_REPLACE_VAR_6 done Goto loop found: StrCpy $STR_REPLACE_VAR_5 $STR_REPLACE_VAR_0 $STR_REPLACE_VAR_3 IntOp $STR_REPLACE_VAR_8 $STR_REPLACE_VAR_3 + $STR_REPLACE_VAR_4 StrCpy $STR_REPLACE_VAR_7 $STR_REPLACE_VAR_0 "" $STR_REPLACE_VAR_8 StrCpy $STR_REPLACE_VAR_0 $STR_REPLACE_VAR_5$STR_REPLACE_VAR_2$STR_REPLACE_VAR_7 StrLen $STR_REPLACE_VAR_6 $STR_REPLACE_VAR_0 Goto loop done: Pop $STR_REPLACE_VAR_1 ; Prevent "invalid opcode" errors and keep the Pop $STR_REPLACE_VAR_1 ; stack as it was before the function was called Exch $STR_REPLACE_VAR_0 FunctionEnd !macro _strReplaceConstructor OUT NEEDLE NEEDLE2 HAYSTACK Push "${HAYSTACK}" Push "${NEEDLE}" Push "${NEEDLE2}" Call StrReplace Pop "${OUT}" !macroend !define StrReplace '!insertmacro "_strReplaceConstructor"'CorsixTH-0.70.0/WindowsInstaller/Win32Script.nsi000066400000000000000000000303141522247547500214310ustar00rootroot00000000000000; Copyright (c) 2015 Edvin "Lego3" Linge ; Permission is hereby granted, free of charge, to any person obtaining a copy of ; this software and associated documentation files (the "Software"), to deal in ; the Software without restriction, including without limitation the rights to ; use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies ; of the Software, and to permit persons to whom the Software is furnished to do ; so, subject to the following conditions: ; The above copyright notice and this permission notice shall be included in all ; copies or substantial portions of the Software. ; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ; SOFTWARE. ; Base Script generated by the HM NIS Edit Script Wizard. ; Last compiled on MakeNSIS v3.0b1. ;---------------------------------- Definitions for the game ----------------------------------- !define PRODUCT_NAME "CorsixTH" !define PRODUCT_VERSION "0.70.0" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" !define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir" Unicode True Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "CorsixTHInstaller.exe" InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" ; MUI 1.67 compatible ------ !include "MUI.nsh" ; Compatible with x64 systems !include "x64.nsh" ; Include FileFunc to allow GetParent support !include "FileFunc.nsh" !insertmacro GetParent ; Include Word Functions for VersionCompare !include "WordFunc.nsh" !include "nsDialogs.nsh" !include "LogicLib.nsh" ; This is needed to be able to install into the program files directory RequestExecutionLevel admin ; Set installer compression SetCompressor lzma SetCompressorDictSize 16 ; -------------------- Definitions and macros that create the graphical interface ----------------- ; Set DPI awareness ManifestDPIAware true ; MUI Settings !define MUI_ABORTWARNING !define MUI_CUSTOMFUNCTION_UNGUIINIT un.onGUIInit2 !define MUI_WELCOMEFINISHPAGE_BITMAP "welcome.bmp" !define MUI_UNWELCOMEFINISHPAGE_BITMAP "welcome.bmp" ; Language Selection Dialog Settings !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language" ; Welcome page !insertmacro MUI_PAGE_WELCOME ; License page !insertmacro MUI_PAGE_LICENSE "..\LICENSE.txt" ; Directory page !define MUI_PAGE_CUSTOMFUNCTION_LEAVE ValidateDirectory !insertmacro MUI_PAGE_DIRECTORY ; Another directory page to choose where the original game is Var OriginalPath Var CONFIGAPPDATA Var Dialog Var AppDataSaveCheckBox Page custom OptionsPage OptionsPageLeave ; Start menu page var ICONS_GROUP !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${PRODUCT_NAME}" !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" !define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}" !insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Finish page !define MUI_FINISHPAGE_RUN "$INSTDIR\CorsixTH.exe" !define MUI_FINISHPAGE_RUN_NOTCHECKED !insertmacro MUI_PAGE_FINISH ; Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES ; Icons used by the installer and uninstaller UninstallIcon "..\CorsixTH\CorsixTH.ico" Icon "..\CorsixTH\CorsixTH.ico" ; ------------------------------- Languages supported by the installer --------------------------- ; Language files !insertmacro MUI_LANGUAGE "Czech" !insertmacro MUI_LANGUAGE "Danish" !insertmacro MUI_LANGUAGE "Dutch" !insertmacro MUI_LANGUAGE "English" !insertmacro MUI_LANGUAGE "Finnish" !insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "Hungarian" !insertmacro MUI_LANGUAGE "Italian" !insertmacro MUI_LANGUAGE "Korean" !insertmacro MUI_LANGUAGE "Norwegian" !insertmacro MUI_LANGUAGE "Polish" !insertmacro MUI_LANGUAGE "Portuguese" !insertmacro MUI_LANGUAGE "PortugueseBR" !insertmacro MUI_LANGUAGE "Russian" !insertmacro MUI_LANGUAGE "SimpChinese" !insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "Swedish" !insertmacro MUI_LANGUAGE "TradChinese" ; MUI end ------ ;Used to replace strings in the config.txt file !include StrRep.nsh !include ReplaceInFile.nsh Function .onInit ; Set default Theme Hospital vanilla install directory. StrCpy $OriginalPath "$PROGRAMFILES\Bullfrog\Hospital\" ; Read Uninstall data from CorsixTH section of the registry. ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" ; Check to see if game is already installed. ; Temporary $R0 NSIS register is used for storage while we pull the registry data, ; if CorsixTH data exists we parse the path and set it as the installer location, ; if not the installer defaults to stock location. ${If} $R0 != '' ${GetParent} $R0, $R0 StrCpy $INSTDIR $R0 ${ElseIf} ${RunningX64} StrCpy $INSTDIR $PROGRAMFILES64\${PRODUCT_NAME} ${EndIf} !insertmacro MUI_LANGDLL_DISPLAY FunctionEnd !include LanguageStrings.nsh ; A function called when the user wants to move on past the choose installation directory dialog. Function ValidateDirectory ; Check if we're trying to install over an existing installation ${If} ${FileExists} "$INSTDIR\Lua" MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(overwrite_install)" IDYES overwriting Abort ${EndIf} overwriting: FunctionEnd ; ----------------------------- Functions for the custom options page ---------------------------- Function OptionsPage ${If} ${FileExists} "$APPDATA\CorsixTH\config.txt" StrCpy $CONFIGAPPDATA ${BST_CHECKED} Abort ${ElseIf} ${FileExists} "$INSTDIR\config.txt" StrCpy $CONFIGAPPDATA ${BST_UNCHECKED} Abort ${EndIf} nsDialogs::Create 1018 Pop $Dialog !insertmacro MUI_HEADER_TEXT $(options_title) $(options_subtitle) ${NSD_CreateCheckBox} 12u 12u 300u 10u $(save_in_appdata) Pop $AppDataSaveCheckBox ${NSD_Check} $AppDataSaveCheckBox nsDialogs::Show FunctionEnd Function OptionsPageLeave ${NSD_GetState} $AppDataSaveCheckBox $CONFIGAPPDATA FunctionEnd ; -------------------------- Define which files to include in the package ------------------------ Section "MainSection" SEC01 SetOutPath "$INSTDIR" SetOverwrite ifnewer ${If} ${FileExists} "$INSTDIR\Lua" RMDir /r "$INSTDIR\Lua" CreateDirectory "$INSTDIR\Lua" ${EndIf} ${If} ${RunningX64} File /nonfatal /r x64\*.* ${Else} File /nonfatal /r x86\*.* ${EndIf} ; Remove old shortcuts (old installs wrote to APPDATA instead of ProgramData) ; Non-existent files are ignored SetShellVarContext all Delete "$SMPROGRAMS\${PRODUCT_NAME}\*.*" RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" SetShellVarContext current Delete "$SMPROGRAMS\${PRODUCT_NAME}\*.*" RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" ; Time to make the configuration file and Saves folder at the correct location ${If} $CONFIGAPPDATA == ${BST_CHECKED} SetOutPath "$APPDATA\CorsixTH" IfFileExists "$APPDATA\CorsixTH\Saves" saves ; Don't overwrite previous installations though! CreateDirectory "$APPDATA\CorsixTH\Saves" ${Else} ; Tell the game that it should read the config file from the install dir ; Don't overwrite previous installations here either! IfFileExists "$INSTDIR\config.path.txt" saves FileOpen $9 config.path.txt w FileWrite $9 "$INSTDIR\$\r$\n" FileClose $9 IfFileExists "$INSTDIR\Saves" saves CreateDirectory "$INSTDIR\Saves" ${EndIf} File config_template.txt ; Change settings in the config file. System::Call 'user32::GetSystemMetrics(i 0) i .r0' System::Call 'user32::GetSystemMetrics(i 1) i .r1' !insertmacro ReplaceInFile config_template.txt ORIGINAL_HOSPITAL_DIRECTORY $OriginalPath !insertmacro ReplaceInFile config_template.txt LANGUAGE_CHOSEN $(install_language) !insertmacro ReplaceInFile config_template.txt SCREEN_SIZE_WIDTH "$0" !insertmacro ReplaceInFile config_template.txt SCREEN_SIZE_HEIGHT "$1" !insertmacro ReplaceInFile config_template.txt SCREEN_FULLSCREEN "false" ; TODO: Let the user choose if new music files exist and where they are in that case. Rename config_template.txt config.txt Delete config_t* ; Continue here if the saves folder and config file was already present saves: ; The three other needed folders ; The old Lua folder is deleted first, if any exists, so that the game can start properly. SetOutPath "$INSTDIR\Lua" File /r ..\CorsixTH\Lua\*.* SetOutPath "$INSTDIR\Bitmap" File /r ..\CorsixTH\Bitmap\*.pal File /r ..\CorsixTH\Bitmap\*.dat File /r ..\CorsixTH\Bitmap\*.tab SetOutPath "$INSTDIR\Levels" File /r ..\CorsixTH\Levels\*.* SetOutPath "$INSTDIR\Campaigns" File /r ..\CorsixTH\Campaigns\*.* ; Shortcuts and final files SetOutPath "$INSTDIR" File ..\CorsixTH\*.lua File ..\changelog.txt File ..\LICENSE.txt File ..\README.txt !insertmacro MUI_STARTMENU_WRITE_BEGIN Application !insertmacro MUI_STARTMENU_WRITE_END SectionEnd ; ----------------------- Start menu items and finalizing activities ------------------------- Section -AdditionalIcons !insertmacro MUI_STARTMENU_WRITE_BEGIN Application ; Make app shortcuts available for everyone SetShellVarContext all CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\CorsixTH.exe" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" ; Only make AppData shortcut if user told us to use it for saves ${If} $CONFIGAPPDATA == ${BST_CHECKED} ; Use environment variable or it points to ProgramData CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\CorsixTH AppData Folder.lnk" "%APPDATA%\CorsixTH" ${EndIf} !insertmacro MUI_STARTMENU_WRITE_END SectionEnd Section -Post WriteUninstaller "$INSTDIR\Uninstall.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\CorsixTH.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "CorsixTH Team" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "https://corsixth.com" SectionEnd Function un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK "$(successful_removal)" FunctionEnd Function un.onInit !insertmacro MUI_UNGETLANGUAGE FunctionEnd ; To be able to show localized strings Function un.onGUIInit2 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(confirm_removal)" IDYES +2 Abort FunctionEnd ; -------------------------- What to remove when uninstalling ------------------------------- Section Uninstall RMDir /r "$INSTDIR\Lua" RMDir /r "$INSTDIR\Bitmap" RMDir /r "$INSTDIR\Campaigns" RMDir /r "$INSTDIR\Levels" RMDir /r "$INSTDIR\mime" RMDir /r "$INSTDIR\socket" RMDir /r "$INSTDIR\Src" Delete "$INSTDIR\*.*" ; Our shortcuts are in the all user scope, change the context to remove them. SetShellVarContext all Delete "$SMPROGRAMS\${PRODUCT_NAME}\*.*" RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" SetShellVarContext current ; Maybe the user wants to keep saved games? MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(remove_saves)" IDYES afterSaves ; Try to remove everything in AppData too. Nothing happens if it doesn't exist. RMDir /r "$APPDATA\CorsixTH\Saves" RMDir /r "$APPDATA\CorsixTH" RMDir /r "$INSTDIR\Saves" afterSaves: ${Unless} ${FileExists} "$INSTDIR\Saves" RMDir "$INSTDIR" ${EndUnless} DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" IfErrors error noerror error: MessageBox MB_OK "$(files_left)" noerror: SetAutoClose true SectionEnd CorsixTH-0.70.0/WindowsInstaller/config_template.txt000066400000000000000000000463771522247547500225500ustar00rootroot00000000000000------------------------- CorsixTH configuration file ------------------------- -- Lines starting with two dashes (like this one) are ignored. -- Text settings should have their values between double square braces, e.g. -- setting = [[value]] -- Number settings should not have anything around their value, -- e.g. setting = 42 -- If you wish to go back to the default settings for everything, you can delete -- this text file and it will be re-created when you play the game. -- -------------------------------- SETTINGS MENU -------------------------------- -- These settings can also be changed from within the game in the settings menu ------------------------------------------------------------------------------- -- Screen size. Must be at least 640x480. Larger sizes will require better -- hardware in order to maintain a playable framerate. The fullscreen setting -- can be true or false, and the game will run windowed if not fullscreen. -- ui_scale can be set to 1, 2, or 3 to scale the user interface for higher -- resolution displays. For example, at 1920x1080 resolution, setting ui_scale -- to 2 will make the interface elements twice as large. -- fullscreen = SCREEN_FULLSCREEN width = SCREEN_SIZE_WIDTH height = SCREEN_SIZE_HEIGHT ui_scale = 1 ------------------------------------------------------------------------------- -- Language to use for ingame text. Between the square braces should be one of: -- Brazilian Portuguese / pt_br / br -- Chinese (simplified) / zh(s) / chi(s) -- Chinese (traditional) / zh(t) / chi(t) -- Czech / cs / cze -- Danish / da / dk -- Dutch / Nederlands / nl / dut / nld -- English / en / eng -- Finnish / Suomi / fi / fin -- French / fr / fre / fra -- German / de / ger / deu -- Hungarian / hu / hun -- Italian / it / ita -- Japanese / ja / jp -- Korean / kor / ko -- Norwegian / nb / nob -- Polish / pl / pol -- Portuguese / pt / por -- Russian / ru / rus -- Spanish / es / spa -- Swedish / sv / swe -- Ukrainian / uk / ukr -- language = [[LANGUAGE_CHOSEN]] ------------------------------------------------------------------------------- -- Audio global on/off switch. -- audio = true ------------------------------ CUSTOM GAME MENU ------------------------------- -- These settings can also be changed from the opening menu screen -- in the custom games or new game menus ------------------------------------------------------------------------------- -- Free Build or Sandbox mode -- You cannot win or lose custom made maps if this is set to true. -- You also don't have to worry about money. -- This setting does not apply to any of the campaign maps. -- free_build_mode = false --------------------------------- OPTIONS MENU -------------------------------- --These settings can also be changed from within the game from the options menu ------------------------------------------------------------------------------- -- Sounds: By default enabled and set at level 0.5 -- play_sounds = true sound_volume = 0.5 ------------------------------------------------------------------------------- -- Announcements: By default set at level 0.5 -- play_announcements = true announcement_volume = 0.5 ------------------------------------------------------------------------------- -- Background music: By default enabled and set at level 0.5 -- play_music = true music_volume = 0.5 ------------------------------------------------------------------------------- -- Edge scrolling: By default enabled (prevent_edge_scrolling = false). -- prevent_edge_scrolling = false ------------------------------------------------------------------------------- -- Capture mouse: By default enabled (capture mouse = true). -- capture_mouse = true ------------------------------------------------------------------------------- -- Right Mouse Scrolling: By default, it is disabled (right_mouse_scrolling = false). -- This means that the default scrolling method is pressing the middle mouse button. -- Please note this an Experimental Feature and may interfere with other right mouse -- operations. Report bugs for this on Github Issue 2469. -- right_mouse_scrolling = false ------------------------------------------------------------------------------- -- Adviser on/off: If you set this to true the adviser will no longer -- pop up. -- adviser_disabled = false ------------------------------------------------------------------------------- -- Scrolling Momentum. -- Determines the amount of momentum when scrolling the map with the mouse. -- This should be a value between 0 and 1 where 0 is no momentum -- scrolling_momentum = 0.8 ------------------------------------------------------------------------------- -- Top menu clock is by default is always on -- setting to true will give you a twentyfour hours display -- change to false if you want AM / PM time displayed. -- twentyfour_hour_clock = true ------------------------------------------------------------------------------- -- Automatically check for updates. -- If set to true, CorsixTH will automatically check for and alert you to newer -- versions on startup. -- check_for_updates = true ------------------------------------------------------------------------------- -- Warmth Colors display settings. -- This specifies which display method is set for warmth colours by default. -- Possible values: 1 (Red), 2 (Blue Green Red) and 3 (Yellow Orange Red). -- warmth_colors_display_default = 1 ------------------------------ CUSTOMISE SETTINGS ----------------------------- -- These settings can also be changed from the Customise Menu ------------------------------------------------------------------------------- -- Wage increase request settings. -- If set to true when wage increase requests expire automatically grant them -- otherwise let the staff member quit. -- grant_wage_increase = false ------------------------------------------------------------------------------- -- Movie global on/off switch. -- Note that movies will also be disabled if CorsixTH was compiled without the -- FFMPEG library. -- movies = true -- Intro movie: Enabled by default -- play_intro = true -- Demo movie (played on idle at main menu): Enabled by default -- play_demo = true ------------------------------------------------------------------------------- -- Allow user actions while game is paused -- In Theme Hospital the player would only be allowed to use the top menu if -- the game was paused. That is the default setting in CorsixTH too, but by -- setting this to true everything is allowed while the game is paused. -- allow_user_actions_while_paused = false ------------------------------------------------------------------------------- -- VOLUME CONTROL IS OPENING THE DRUG CASEBOOK? -- If your keyboard volume control opens the Drug Casebook at the same time -- then change this to true. From then on you will have to use Shift + C to open -- the Casebook and volume down will not open it. -- For example for shift + C to open casebook change the setting below to = true -- volume_opens_casebook = false ------------------------------------------------------------------------------- -- To allow patients with Alien DNA to visit your hospital other than by an -- emergency change the settings below. Understand that there are no animations -- for sitting down, opening or knocking on doors etc. -- So, like with Theme Hospital to do these things they will appear to change -- to normal looking and then change back. -- alien_dna_only_by_emergency = true alien_dna_must_stand = true alien_dna_can_knock_on_doors = false -- To allow female patients with fractured bones, which are by default -- disabled due to poor animation that skips and jumps a bit -- disable_fractured_bones_females = true ------------------------------------------------------------------------------- -- By default the player selects any extra objects they want for each room they -- build. If you would like the game to remember what you usually add, then -- change this option to true. -- enable_avg_contents = false ------------------------------------------------------------------------------- -- By default destroyed rooms can't be removed. If you would like the game to -- give you the option of removing a destroyed room change this option to true. -- remove_destroyed_rooms = false ------------------------------------------------------------------------------- -- By default machine menu is shown in a bottom panel. If you would like the -- game to hide it change this option to false. -- machine_menu_button = true ------------------------------------------------------------------------------- -- By default the entire screen will shake during earthquakes. If you would -- like the game to keep the screen stationary, change this option to false. -- enable_screen_shake = true ------------------------------------------------------------------------------- -- By default subtitles are not displayed. If you would like the game to -- display subtitles for your hospital's announcements, turn this option on. -- enable_announcer_subtitles = false ------------------------------------------------------------------------------- -- By default, the game autosaves every in-game month. If you would like to -- autosave more often, every week or every day, change this setting to 2 or 3. -- Please note that a typical save can take up to 1 megabyte or even more. -- This way your autosaves folder can grow to 300-500 MB with daily autosaves. -- Set 1 for Monthly, 2 for Weekly, 3 for Daily autosaves. -- autosave_frequency = 1 ------------------------------- FOLDER SETTINGS ------------------------------- -- These settings can also be changed from the Folders Menu ------------------------------------------------------------------------------- -- Theme hospital install folder: original game data files are loaded from this -- folder. Between the square braces should be the folder which contains the -- original HOSPITAL.EXE and/or HOSP95.EXE file. This can point to a copy of -- the Theme Hospital demo, though a full install of the original game is -- preferred. -- theme_hospital_install = [[ORIGINAL_HOSPITAL_DIRECTORY]] ------------------------------------------------------------------------------- -- Font file setting. Can be changed from main game menu -- Specify a font file here if you wish to play the game in a language not -- present in the original game. Examples include Russian, Chinese and Polish. -- unicode_font = nil -- [[X:\ThemeHospital\font.ttc]] ------------------------------------------------------------------------------- -- Savegames. By default, the "Saves" directory alongside this config file will -- be used for storing saved games in. Should this not be suitable, then -- uncomment the following line, and point it to a directory which exists and -- is more suitable. -- savegames = nil -- [[X:\ThemeHospital\Saves]] ------------------------------------------------------------------------------- -- Levels and Campaigns. By default, the "Levels" and "Campaigns" directory next to -- this config file will be used for storing new maps / levels / campaigns in. If -- this is not suitable, then uncomment the following lines, and point it to a directory -- which exists and is more suitable. -- Note: Newly created maps in the Map Editor go into the "Levels" folder currently. -- levels = nil -- [[X:\ThemeHospital\Levels]] campaigns = nil -- [[X:\ThemeHospital\Campaigns]] ------------------------------------------------------------------------------- -- Use new graphics. Whether to use the original graphics from Theme Hospital -- or use new graphics created by the CorsixTH project. -- Developer use only, otherwise the game will very likely crash in normal use -- use_new_graphics = false ------------------------------------------------------------------------------- -- Graphics folder. All graphics are initially taken from the original -- Theme Hospital, but the game can also try to find new graphics in the -- specified folder below. Some graphics are shipped with CorsixTH, and they -- will be used if you just switch on new graphics. If you however have -- acquired graphics from somewhere else, then uncomment the following line -- and point it to the directory which contains the new graphics. -- new_graphics_folder = nil -- [[X:\ThemeHospital\Graphics]] ------------------------------------------------------------------------------- -- Screenshots. By default, the "Screenshots" directory alongside this config -- file will be used for saving screenshots. Should this not be suitable, then -- uncomment the following line, and point it to a directory which exists and -- is more suitable. -- screenshots = nil -- [[X:\ThemeHospital\Screenshots]] ------------------------------------------------------------------------------- -- If you want to listen to non-Theme-Hospital music, then follow these steps: -- 1) Find updated versions of the original tracks (a link to ZR's Remixes can -- be found on the CorsixTH wiki) or any other music you want to listen to. -- 2) Uncomment the next line and point it to where the music files are. -- 3) If you want to change the names of songs ingame, make a file called -- "names.txt" and write the file name on one row, followed by the desired -- ingame name on the next row. -- audio_music = nil -- [[X:\ThemeHospital\Music]] ------------------------------------------------------------------------------- -- SoundFont: CorsixTH uses the FluidR3 SoundFont by default for playing MIDI music. -- Windows users, and other OS versions compiled with the FluidSynth software -- synthesiser can specify their own SoundFont file below (.sf2 or .sf3). -- Mac(OS) Source Ports build users, and OS versions compiled with TiMidity -- won't see any effect from this option. See our Wiki for alternative options. -- soundfont = nil -- [[X:\ThemeHospital\FluidR3.sf3]] ------------------------------------------------------------------------------- -- Midi API and Device settings. -- By default, CorsixTH uses FluidSynth or build defined MIDI synthesizer. -- You can change the API to target other available MIDI backends using these -- settings on supported platforms. -- Possible values for midi_api are: -- - Uses SDL_Mixer's MIDI backend, typically FluidSynth -- Native - Use any available platform MIDI API -- ALSA - Use the ALSA MIDI API (Linux only) -- JACK - Use the JACK MIDI API (Unix-like systems with JACK) -- CoreMIDI - Use the CoreMIDI API (MacOS only) -- WindowsMM - Use the Windows MultiMedia API (Windows only) -- -- Possible values for midi_port depend on the selected midi_api, and can -- be left nil to use the system default port. A list of available ports -- can be obtained from the midi settings screen in game. -- midi_api = nil -- [[Native]] midi_port = nil -- [[Midi Through:Midi Through Port-0 14:0]] ------------------------------- SPECIAL SETTINGS ------------------------------ -- These settings can only be changed here ------------------------------------------------------------------------------- -- Audio playback settings. -- These can be commented out to use the default values from the game binary. -- Note: On some platforms, these settings may not effect MIDI playback - only -- sound effects and music audio. If you are experiencing poor audio playback, -- then try doubling the buffer size. -- audio_frequency = 22050 audio_channels = 2 audio_buffer_size = 2048 ------------------------------------------------------------------------------- -- Advanced MIDI settings. -- These settings can enable better MIDI playback on some systems but may also -- cause issues or be unsupported on others. -- -- midi_sysex_master_volume: Use SysEx message instead of adjusted channel -- volume messages to set the music volume. -- midi_sysex_master_volume = false ------------------------------------------------------------------------------- -- Debug settings. -- If set to true more detailed information will be printed in the terminal -- and a debug menu will be visible. -- debug = false -- If set to true, the FPS, Lua memory usage, and entity count will be shown -- in the dynamic information bar. Note that setting this to true also turns -- off the FPS limiter, causing much higher CPU utilisation, but resulting in -- more useful FPS values, as they are not artificially capped. -- track_fps = false ------------------------------------------------------------------------------- -- Zoom Speed: By default this is set at 80 -- Any number value between 10 and 1000, 10 is very slow and 1000 is very fast! -- zoom_speed = 80 ------------------------------------------------------------------------------- -- Scroll Speeds: The speed of scrolling with and without shift being held. -- Any number value between 1 and 10, 1 is very slow and 10 is fast! -- scroll_speed = 2 shift_scroll_speed = 4 ------------------------------------------------------------------------------- -- Room information dialogs: Information about new rooms, important for -- additional rooms in later levels. Affects campaign only. -- room_information_dialogs = true ------------------------------------------------------------------------------- -- Ability to block off areas when building and placing objects. -- -- There are 3 possible options: -- -- 1. Totally forbidden - requires every passable tile in the hospital -- to remain reachable from a hospital entrance. This avoids issues that -- could arise from area blocking, but it also prevents room layouts -- which are allowed in Theme Hospital. Before version 0.70 this was -- a default option in CorsixTH. -- -- 2. Partially allowed - user is allowed to make dead ended, inaccessible -- spaces that are not accessible from the hospital entrance but only if -- certain conditions are met. The condition is that the rooms themselves -- and usable objects inside the room must remain accessible. This ensures -- the preservation of the hospital's functionality and ensures the validity -- of the path routing in the hospital. This allows user to build rooms with -- the same layout as in the original TH. This is a safe option. -- -- 3. Completely allowed - user is allowed to make dead ended, -- inaccessible spaces that are not accessible from the hospital entrance. -- This is a dangerous feature that can lead to game crashes. Use it only -- at your own risk and if you fully understand why you enabling it. -- -- Set '1' for '1. Totally forbidden', -- Set '2' for '2. Partially allowed' (Default), -- Set '3' for '3. Completely allowed'. -- blocking_off_areas = 2 ------------------------------------------------------------------------------- -- Direct Zoom: Avoid rendering to an intermediate texture when zooming. -- Improves performance and reliability on some hardware. -- direct_zoom = nil ------------------------------------------------------------------------------- -- Replacing Machines: By default, you will see a new machines initial strength -- before purchasing it. If you don't want this change the value to false. -- new_machine_extra_info = true ------------------------------------------------------------------------------- -- By default your username will be your name in the game. You can change it in -- the New Game menu or between the brace brackets below like [[NAME]]. -- Note: space is limited in the game, so don't enter a name that is too long! -- player_name = [[]] CorsixTH-0.70.0/WindowsInstaller/readme.txt000066400000000000000000000016511522247547500206270ustar00rootroot00000000000000To "compile" the script you will need NSIS (Nullsoft Scriptable Install System). Note: To support languages such as Chinese and Russian the Unicode version of NSIS is required. Starting with NSIS 3.0b1 Unicode support has been added natively, so there is no need to use the version from http://www.scratchpaper.com/ anymore. NSIS homepage and downloads: http://nsis.sourceforge.net/Main_Page To add an additional language, make a new group of strings in the LanguageStrings.nsh file, and then insert '!insertmacro MUI_LANGUAGE ""' at roughly line 97 in Win32Script.nsi. When packaging, make sure that architecture specific files are in two folders called x64 and x86 respectively. All other files (lua etc) should be as they are when checked out, i.e. "../CorsixTH/*". You can find more information about creating a Windows installer here: https://github.com/CorsixTH/CorsixTH/wiki/How-To-Create-Windows-Installer CorsixTH-0.70.0/WindowsInstaller/welcome.bmp000066400000000000000000006644661522247547500210070ustar00rootroot00000000000000BM6i6(À„ÄÄ …œ2(©8•jNgg �n kl SURt z Yu�$Œ"Ž$ƒ¥1©.&C9v l ~ \Rk wosgQTo ~_S^s v nixm’"b‘ – �¢5 �~M” ^™ ¡ŠG–®”\¨‡4Ž!d“’† L™”,“GœB”0l¡ 2›!�$‹š0¤%$�’;¥ +‹^�’.™$‘:]HžT‘ Ž)=• F¡ )ŽH � —Š8I¡ ¢ˆ~“��� Š‹�…|Š … —�’ ˆ‹ ˜� ~Š„”•‡��� Š�ˆ ‰�!� Š! Ž‘�† �Œ �†”Ž…š ��•3¦‰%„:LWRl] m _ ƒ‘& …o i+F?%:v Ž%Š`Og | b`YRURZc\Tc ~`bfeig‚9‘ ”!§-šN ¥ –8Š8,«”—3#�X¡!Ÿ ¤ ˜,ƒk)˜6“ £ ¤ �ˆ? Š*‹@5œ.‚š›•XŸO—7"‘O8†<-�X[—…”1 «  �6�#•-¨“?H’5 š@ �7�f ¨ ŽAœ)£ ‘;„„ƒ| } ‚� Œ ˆ ’�Š‹„� ©˜�• „ˆ ‘Šƒ ‘‹ŽŽ • ‘ Ž Ž‚‰› •� …‚€ �›�РЉ œ ¤$¢¡‡T8Ÿ – –W%¦@› £ £†o.‘!$’.œ¥ ›ˆ6‹,‰'&“Ghž Y˜ ›/•e¡+ŽX8’0�c\œ,‹‡;¦¦™Œ#?•š,§)`”,•.1“"k�#Ž#„*£0 {wz-jHV#AY�a ^ ŒpXC;e—+•,aN_pk^QpRWYVVROWYX^U\ki vŒŒXœ& …'ª0'�a>Œ– ‹S   ™N˜�P ¦.™OH‹›-“R¡+Ÿ0 — Ÿ‹�N”€›­0�KŠ'/¡,)‘"Œ'+‘£!¤ #§6ˆd6�4/Ž • ŽS¬«&;š//M�G3¢=™$‹p �@›).† –‘„—Ž”�€ ‡”x ‹‹ „‡‹‹• ˆƒ ��}‹”| † …Š‹œ�Œ}«�Ї…š ˆ †“’Œ‰� ‡ “œ3KŒD“ ŽA—(�0™ ;“ “U «(E‹P’™<&–D ( £) ˜ž –‰’…– F§¡ A‡D–0)� Š,�*›( ¢ !©˜O…`R� “ �KŸ6ws•&ŽVtR[ ‡7# ‡ ‘ )J(I \] f Œ$ZL R VQ]u ”&(«<ž'UXfZfehi`L : G] m.YRSLaq e zhvj x Œ‹$¤0D�3ˆ’ —�)�*¨=Dœ‚U1ž&’›'�%•:#Š0¤5=�(®" ¥$˜(”; ˆD¤6 0—F* V– ’,•*#–%2›6&ž“ �=K”¯ ¢* �,kž&›%— ��,�(¦MŒ"’JRš =“[Ÿ Ž ˆ–’“˜�† Š … ‰ ˆŠ› Žˆ€ ‚‡ ƒ ˆ �‹& †‰ Ž••†“ �ƒŠ•Œ “ ˆ ˜ª ˆ †‹””–Œw މS‰� –’%‹,�-0¨2?‰/ �Qq o”‘=�%(•$=¡9&¤®*™ "�"‡M–> ª(’J¢,Rš'’—1"‘"!›1?œ&š �%$‹4E¤ ­ –,W•:›(� ¦|L`K+k� `` a!m$}Œ"£":rFU PH _h“'ž2*«9)°7~?ahYM#@" E q'­8ˆb 9eyg = [V^kx^Z[_Kh „y �§žŸŒ=˜# š#�hž)•&‘‰ 7•D%‘3�*’/™0�> ¥ ŽYKˆP7‘36��Jœ$žœ(Y–-� ”.PšN‹)�Z¥"2�X� š%œ$’4.ˆTMŸJ“ ž%� €š3’J‡P.œ‘š*,”=k¡�•�ˆ�� — ‹‡‰— ” …Ž•“• † ƒ Š€ Œ • ‡�™“‹ �� Œ�‰””€� ‚ ˆ ‘€~ ‘Š� � ˆ…ŽŒ   Œ,`˜=š-–‡’,9�9+” $ŒB›+�0$Ÿ,š8/Š`S‰A%—2‚�O � =˜$S“ �+1šW”:†R�7ž<2‡@š •5 '‡O�œ!š%YRd4ŽZœ‘CJˆ Œ }#«1?£D'a.:bGVL0B-8X'"y, ­53¯;«4DlVQDi ~ r* {Zv$¨3#©4Ž Š �#H$_"wWe ƒ ZSS_‘' ‚ |i�œ'˜ “UKŠ5‹‡J‹;…J#£­¤‰�P›#3¥�92œ%4—B¢(”‰9+›› � Ÿ,”†4$ŽLKš ¡=’@*Ÿ7E†5‹^f™…Œ/žˆ(•$R“�—!:—GŒ8†"�_– —…K$�9T” Œ( �‹†‚‹††}{£Ž{ �‡zƒ Žƒ … ’Ž �… Š„ „ �ˆ’�‡ �Œ�‡ ”… �� ‘Œ ~†—’ — †Ž ‹†‹ ‰J�*)° §š„##œ%`�Ÿ#‹=$ M˜ .¢ˆ3’.Ÿ˜¢— �#…P7”.0£"”=5›8>–, [I�)BŒ…/šž=˜'O›/ª4b [‹f~t2!K"Rk s`�!€! wR h :wO#Z/ F.V3 �eš/yU Zn‡…wO W�(*­;+¬8œ2 w‰ŠjlyvVST € «?ƒho - ¦“.’0‡\ ‡= †J•‰¤/'•!˜6§ 3…K¡ �- &?‡P?›Q™ �!¡0"š$8£/3 0ŒUO˜“�P¨/±­(’ �Ž› «ª*¥‘"‹ ™'¦#Ž—6°Š3 ,¬ž!ƒS �%“6 £#‘?‰0�1ЉŽ� �— ŒŽ † ƒ—Ž ‡ŒŽz‹!} ‘™Œ‰Š“ �~Ї … Ž‘ Š'Ž!�‹ Ž ““ƒŽ“ „ Š� ~|Ž� —* +#“$Ÿ8« Ž] ’ (£" ŽMR’1B›7“ ™/ž(&Ÿ,J£*—OF�0 ˜ �6˜M °²$  �!Ž”£ ¬‹#Onp•ŠI Ž*�Iz € �Œ%RFTNi —�% žqJ'R+wh nnYs‡kKH W2‡ 3$§83³9(ª7Ž& ‹€NZeuzUXy�!™0 xOn –– &“$i  …>” “šƒ€D˜“?3�>‚c\š#‹†B œ‡+ �DZ—1�‡*J’"“8I‰,!•+š?  84——8–4/¨)ež�,‘$Iž1›N7–’9$Œ5-œ¦Bž U¥ –Qs“ 8Ÿ<` š&‚c:’‹…B�9N’ “$• •$– — ‹™ ˆ�€} ƒŒ �„†… ‹€… ‘˜ † Ž Ž �€Ž ‘� …ƒ ‰ ‘…‹„� � Ž�•�“–ˆ”˜‘}!‹8›�S0ˆB2ŽZT•‡Ž2™‚N8š%Y“ Œ)1‰7˜5‰A=’”K¢*'›@•™8š9Q­ ;�‘11—3žP™((¨ 2}}!…A¢ �G–0“#%“q….�L ¬£6�&‹%Og �‘@‘2¢‹#jP|[Sq ais Ž™#œ4#©:4³:.®7’&�" m XMQP]_X �& ‰  1g N]€ 2Žc¡’ Š”Œ ”—�†�,œ†.’5“#˜ ŽE<œ )”• TŒ.¤ £ŠMQ�’42˜A,ƒ 9–,R•Œ”!@”Eš ”).’‰(9§'a¥¬©®"ŒRH¢4¬ž-€Y3’#¡3˜7™-“?–�œ5«5@�*¤+© �M˜’|‰ ‰‰ } ‘ �„{�† †Ž‹�… ˆ ‡’† �‘‰––ˆ™ ŒŒ “ ��Š!ˆ —¡†–‹ ’” ”‰†ž1��24‘˜�%—;O˜• $�X”® ŽDE˜)6• –LIŽ!ˆ*d˜“‰+šW’™0"” ˆ œ%�Q ‹­ Tž�0N—('§6¬6t _G› -s"c zZY—uyS’ o'€O˜ J—ypb† z x ‰!xv q oˆ"�&”, ®8“*fw n uVTUOm y †�&�•8 cNX�( ¡ žŒ‘” ‘ ‘’��Œ�„‡¤7%©5P™+ �1R˜©Œ‹V¡A«)šb–*�'™ — ª¬Ÿ %�-7©, –/ +«›&Vš –O¡2£H‘H’9Ž[J› ’/”. ’ �"~U2�4]– ‘$�%vš L�5ˆ`�:A�Y8’�#Š;�…“Š „Œ' ‰•�•€ ‡¨š†’ “ …�І…�­’€†……Ї� �†˜¦��“ � •� “”—�‹€—$ª9D¡2.”*%�+Kª—‹# ’^"ª/§"0�S ˜ — ¬(©— 3§..¡(”8« ¢33¡8�™�$Ž]‰\›. —�'�#J— �M``YŒ¢#>™G–ak>¨'‹2yp kl }ˆ Œ�6œ1k Tq ‰�$~&a a€ ‹"�" fV^sg €Š#t X#^Z__’‘ „‘Š � Š� ƒ™y ŒŽ‹†˜ ˆO*�b � ˜'˜*”8‡5 — Š&<“7EšS  ›;#–(7š�P<‘-– .–,’M-•*F˜BI�%ŸGš�F/›/ƒ)™7b™‹ –# �- Ÿ4“,—N‘.š�’(=Ž3=¨%:Š.ŽAS– “(” •$ Ž�‘Ž{ ‹ …!‘�Œ†‚‰‘ … ‰ �z ‡–‹’ ‡‹{ˆ � ƒ›‰„ †–• …�‹ Ž‹‡ ��z “ Ї ��>Œ_*‹E› ‘@¡ „P • Ž.�,3—4eŸž2š5:–˜?(‹6+— A– ’U/•%'”Lˆ� Ž[�!”†M:› !� ‘- ‘'‘F› ‚Zš&¡S›b‚‚_† |¨‹Ay~fh ’)p–#š0l NU%j( �;T*Js�" i y”(zo q „ pYcInl rs Y�‡ } } •‰{‡ ˜�’„†Š”‹ƒ�\ŒŽŽ2 • †‹) •…2•-X‘ ��+Œ@— �+‹)<’4¢)6›�R�m¡—𢠧 <™ŒUb™/› ™I¡  Ž9`�žŸOž6œ1Ÿ8“ ‘�% š,:¢-“(‡V2”)’ ‘‘‹$� Šˆ‰‡„ ‡‚ ’–‘‘ ˆz � “ Ž � Œ“‘ ››Š~ ‡Œ‹ „x‹‘�|•’“Šƒ Š‹—Œ!FŽ>�Š<— Œ ˆ’ �‹:>•I�‹"5Ž(� = ’2ŠAŸ6›$¡ ~ ‡„„ ‹Š‰”2m(eŽŽ$'��"|Fž%�> !}¸_;v! “j|•% †| †Njpz xep bSRf cd‘& ˆ �#„‘(·3 U33cnw nSY…�ƒ ‡ •Œ ‰ ”–†‡ ‹Š�‡�‡‹šŒ “—5 Ÿ „:‹2W›š ’ZŽ ­—=*šB›„Ba›2’ �CŠ¡‹M"¨1 –6>¤Q£•)ˆ,• £:¢ ”%¢˜N†7 Ÿ�:Ÿ$}d'›6n˜�(�&Xž)™M“‘’(W’§Ž‚Œ“��“Œ�ŽzŠ„“�‘…Ž Ž“ y‰†�ŸŠ…‘���‡…�$”‡ Ž™Œ‡‰ ‹Ž‹‹�†•“ �“�) ” U(šJ—š;Š>žª�^%§…G"“k•“ ‡‚ ƒv~†7‘,‘ZAoDN¡Œ#• ¡£ƒC �fw b'’G7‘JOša €%¤O k@9‚‹*Q`n_g['Z##W�*” j‡3_Ln!‰ n £/€!˜#‘u*e6oOSMK y zU ‡ …aO."@& € ›0zST…– Š„Ž�›�†‚«Œ‹‚†’ ‹š�‰‰” ˆŸ Ÿ;A‰J— ŽGž  8œ+Œ ™H®'CˆL•$™9*�/¤* ¦“›#Œ‰.>•‘˜,¦7›WŠ4˜>7œ ˆ<&‘0žž «(�L �G>Ž ” ‹H¦+§/žAB…7 Œl¬@˜�p›2¦:…,�“„�“Œ•� ˜ �~ �„Š �Ž” ’ ˆ‡‘‚€•†„ ˆˆ�–•‹|› …Œ~‘‰ ~™•‹Š�’ ‹ª.�`"�— �D £ ž D•‹J¯#"˜N.ˆ ž<”B¡¢ž…—…'‚/y ~w~‚r,<™PyAM‰$2{‘”JŸž5 �9iVs�¿6š*ž0ŒN±�MW~sŠ ’Yc s z$&i l+CT U P Œ uKX^PTc‡Ÿ3&®7l Kg– ‹ ‰Ž‘�Š– Šƒ“��� ‡£§ ‡ …Œ—�’ˆy�*‹QŒŒ, • ŽŽ(¢:.£37ˆ<”L{›M’“GŽ"™-B¡%!©¬››)!ˆO%¡1© �R'Ÿ$E–’ ”(‘)#¡.B � ‡;B�9¥¦3 ”0Cž@¤!• “ Ž)�" ¡!P–‡GM¡9�SŸ“‡�”�™‘‰†‹ … ‹€˜�‹‚ { „ Œƒ ��" ‡ ��‘ŠŽ –�Œ•‹ ‘‰ ‘¯• ƒ ‰�˜�“z… �U‰&��) ” ‹.—¦KH™…cOž–Ž?žžŸ§ ¤¡œ¥n�„+„,z { } |A(euLL¶=S™š6©%5ŽC-‰X1_Ì+|‰fJ›¢   ‘GWx Iq–9jkU�>MYZIzg pT$_ k ‰ Š$�4*Q&Y?Z\~”*�2.±9œ9 lt‰‰ � �“ ‡ —ŸŽ � ŽŠ‰ ’ Š— ‘‚“~ Ž� �†™‰‰ �ƒ †� ‘¡*Š*e›6�#(�† 4š/K“‘Œ Nž&�C¡. šE#†iX�4‘4—L £]š@‘ ’3D™H‘+ˆZ§Ÿ8„@   ž!Ÿ9…U:›"Y˜™"—)A� ež �T“— –,H™.G�H“‘ž’ƒ‹– އ… —’ ŒŽ–�™Œ }}� ‰ ’�‹¡—Š �‹ ˆ�‹’ •ˆ ‰Ž ~ –„�’’† �Œ� ‹ �œ% –-,�_¢ (•(‰ ŽWš3(’¦¥£™Ÿ¤˜™Ÿ§¤£¯Ÿ°h‰r=„Eu8n„;nÿŒÿ"rÿDiº�H–~x’B^ž�/0�7‘• – 9œ¡&M’„ zSS }[Œ -¨_>r •% €�$5·=7w<4^B\O"E!.W!(r)¢56¸>#´52„N5g?–} †‘� ’ƒ‡� Œ �ˆ”�Š ŒŽŒ… �„ ‚ “ �„ }‹—” • ‡Ž‰Ž Š/ŒB �2­¢ �‚3>žUœ ˜7‹1&£6™9 „C –9™•Ÿ’Ž6ŒE7•!¢B‘7?˜;8�4�f^œ*‹„D›‡'‘;Q–4”ŽZ�('ŽDK �]’$™ƒ<$�OY•Œ# �" �…‚ŠŠ‰� {–žv ‹�| ~ � †~Ž Ž ’Š „‡� ‘Œ‹˜„ �‡“�� ‰� ‹ “‰  €–� › ŠŠ�‹Œ �/&‰=.£©œ€6 “„Š�‘“–�‘˜‹‹Œ‡Œ‹–Œ˜���lƒo-s/p%<[ÐG‚ÌIjÀn1uY”sý%WôuS!}:3ŒHI”$�"�qÑ Wš—„ Nm vu ’.)P,J[ ‚_�"•+w g Nv(EOQM5C-‹y†#¢4 † ˆ�Œ €‹#~ ’™ Š… Š ‘ ŽŒ … Š �’ Ž% �Œ‹�"˜Ž‚’Ž ‡ Š�  y �‡"�2£,–&¦ ©Œ`š¡+¤'‹P`˜5˜&‘ ›(Ÿ)  (Q¨ ˜TJ�!�!Œ?%ŸD«# ±0›!‹+�’Ÿ ­ ©šŠ&‘¢8™ ‹. °“ �C"® ¦‰A"ˆ>$˜% ˜˜>Š(‰?�ƒ�‹‡’“ Š ‹ƒ �‘‡ ‰‘ € Š ‚ …š“…† � � ‡��ƒ Ž� ‘‹%Ž ‰Ž “"—…‡– † Š ‹‰x„‘Š0«.—&ž)ª�:†ˆŠ‡„‚v}º��Ž˜‘…‚…‚zƒ‹Ž†�‚‚‡o{x1p/*l+5x?H£Yn½8q÷ ‰ÿSëgId‰621w'2vSIK0vR9P«ME±lns k}Apz "^*V €fŒ'YKT[T„�)•|J Zƒuv� Œ†‡ƒŠ€ Š““ Œ �’ ‰� �‰ †ƒ ‰ �ˆŽ…‚” Š �™‹’’†’—��6�7š!ŽYŠIG�L2“Š*•"“†[UŸI‘�1DŒ8œ%.ˆF&�—C¨š5—# ;¤ K©'�‘+)š$&¥H›$!”ŠQJ”Ÿ¤qžšKb�0A¢)\ž%¢‡[%‹F1�ˆ(‹XF™1�‘— ƒŠ� ‹› ŽŽ‰{…Š �‡ ˆƒ ˆ„ƒ Ž— ‹‘ ‹• ~ˆ’ Œˆ„ƒ� Š‹Š�Š “ ‡˜’‰š…�‘˜ƒ †Qš�S$�A‡cŠŠ‰‰ˆ‹Š‡~~ˆ˜Oi®xuƒ“��ŽŽ†z�ˆ�‹…}†ª|”xï'bÿ jUCJ8g¿Wi· q:5sl pAZv4=fÿ$hÿMU¢OiÞ Kú9w(†, y*#|J€%tj �WŠ#‹/…-s"YQp Œ“�„ x ^�€g “��} ƒ††‡�’~ ‰ ˆ ’ƒ ˆŽ�Ž“‹™ ˆŠ � � �‹#‡ ™Ÿ‡–Š —“Œ‰ˆ"  9‰$‘¢@Ÿ ¥˜)“,˜ �ƒ ˆ ‰ƒ|‡ ”†~~ ˆƒŠ†•‡ € Œ ‹� ~ ‘Š��Ž’“ †ŽŽ ’ ‰ �€‰£‘Ž’Ž –‘‰ˆ” Cš†DŒŒŒŠŠ�Œ‡h{žFógv�Qd·gs¤��ƒ‘‰M»‘ÿzúLâ,Y»ljk+sn qx!}(tIEmŸCD¢gîBwƒ8}5}4:†0$�<~'XwEw, c…g ={1v[ =~ &n wI}! Š ž w]} Œ"Œ* Š’|‘| ‹©“†–�„”†‚ˆ‘¯�‚Œ†�Žˆ“ Œ‰˜§‘‹• � ’� –”“’‡‚›/¬9Dœ,%’-E“9«‘+‹) ¡F¦>¦&3�B¢)—“$¢ «¤™?§.!Ÿ0 —)ª ¥3Kš< #˜V ±A�+,‘W‘5.›/’' ‘) �( •…8#”LjŸ�! ”0W›lœ"…g —1#�\EŒ!˜‚H˜ŽŠ � �)‰#’……‹z  £†Ž– ˆ"‰•}Ї¥¥�ˆ‰‡ �‰Œ” …‘¡�Œ�” ‘ �˜�˜�Ž‚}{|‚„„‹ŠŽƒƒ†{�‡CwÐ,nç^à@ÂD`Ù@lßlñUù8X­c]¶bw™*o*o jnnn w|7xXYEhM*|/ uF{Q(€A!…, | sS|-‚5[4Y] b !…(&€W� rU€L…!€+�z zˆ } ‹ ‰’Ÿ‰Š‰Ž‘ƒ Œ ‹yŠ –{’ “‡†{ …{†•ˆ… ˆ—˜…“‹ ��ˆ€•ˆ ~“ˆˆ–’J‘V‰B¡”0�& €]��E’!=—$Tž 2�..›šL9Œ0)œHš �^˜$,’NY”“ 7£,<ˆ+•:`Ž Š[ZŸ 9Œ –+�/ ŠQ” -‘Q— –”.ˆ*Dœ5F–#ƒYI›<�‘#™ Œ ’� ’ ~ …Š#Šœ”ˆˆ‹“‰ †‘"•ˆ�š ‰Š~€� z“�‰�” —�‰“ ŠŽ��†›v ‘ ŠQOURanumqŒŒŠ�‹ŠŠ‡†•Že{¢4`º6hÆf{¦Xoœ.Y¹/UÁZm²††�•‹“j‚n/l? hik$5tQh|1G~j©&iù$QÝOw;3{0w9)~>.ƒ}3z"7&c p$ŽL‡&Gz5 ˆIŒU– >šE– –* ”,¤I–4ŽKŽGK‘?��<œ™�‘!V““*&ª&#Ž0O”3©ž8 †P¬ ‘6™ˆ”ˆ ‰ �{ ˆ‡ ‡ Œ �‘”‹‰�§¡Œ�Œ†� �‘ ˆ ‘‹‹”� Ž Ž Š…‘— Œ“‡`\[>Pa\NO\WY:ObYLOUPTP`muosŠ‰ŠŽŽ�‚ƒ„Sq¹PuÑ.PËNpÂ‰ŽŠ‰ˆŽ��‡‡†…‰�€œx„šlô&ió i okmpp my Zš#LØq *q}"†:!’0ƒ '‰ Xhk.VŠC‚-„EQx)R€‰mŠ2Z_V v8~)}!� „Œ…�Œ�’}‡ —‚‹† �’•” ” Ї� €�“ˆŠ ‡‹”•“ˆ}ž�‡ˆŽ€ ‚ •‡Š‘•” ¯,�f �™'–/ ¤"Ÿ*2‘�@´&”R‰)žD™. §"ª•“��J/—�—> Ÿm’ 8�A6£(,…;’0Q™š¤¬6š9-Ž ��9 ,¡:ŸC4�8�i¨B*¡‹T ˜P® 4ŒCƒ�…†’†™…~• Œz Œ†Œ‘•“– އ‹ Š}‹‘„ Œ…”’šŠƒˆ¨Œ‹QXh`XVOQYXVY9Od[NP^WX8NaTILjdeqx�“‘�ŽŠ€*fÎ EÐzv~‡‹‰ˆ†‰‰ˆŠ‡ˆŠ‹‡|rwÊ=nÙJágw³m…b8r? hnkkolm48<€$`uK|Ht�pA6ˆ3Š*…*m7QpÖJ‚C/„*xH…,+”Ih]$x<h� �#A†‡1 y0Œ&  Ž“‘‘–‹ ‹„‹ ‰ ‡€•‡��y ‡� ƒ Œ “�~ŽŒˆ�‘ •~•”Š� … ™­ � …‰”’Š� z‰�[��!�1’�<� UB˜‰h`›]• ŽQ–. �,)¢!9¢­ ˜ (�KFš3 °ŽB9—1+˜,“‘ �( -F¥—{J7Ž)M˜¦ “L¡A© 1›%�#‘2™!¢+–8/‰*7œ,L‘,™/™‡�“�–’‰‰† ‹ Š��ˆŠ { |‘ ˆ† ’ Œ{ ‰Œ‹‰�—††›‹�Š0Jv5FpPbWLObW[KW‹]MNAT¶,JÂWY{‘�ˆŒ‹ŒŠ‹‹††‹Ž‡yYuÃrÿiì;cÈCzÚ{…�€�†‰…ŠŽ‡Žewk0n7g k&g_RhØ~ùwÿMcçsP.„s|6Yc½k:F�4y,|ƒ$6|'Bˆhx GA3‰/#ˆF{* {!7ƒQ…u2t6‚”Œƒ��‹‹� ‚�”v ‘�~ ƒŽ ‚€�‹ – ˆƒ…ˆ’��–‡Ž‰”‚Œ ‡ � � Ž� } „—� ™ ˆŒŠ’Ž2�*1Œ*7¢¢“K— c˜ž…+?£™8¡.:‰3 �w'€FH�+)‰$‡"~chðcZˆ7w= ˆ2…57ŠyTˆŒ‡& Š0%Š2v=ŒŒ„‰ˆ‚’– … ‹… �Ї Š� ƒ Ž � ‡˜ ‘� ‡Ž ŽŠ„Œ† �Œ • ŠŠˆ � –’��“ ‰Š‹‹x‡�$Œ=¯'›)¥ ¥ ˜B ’7$¨�3˜Ag‘4š+” �£" �+D¨%¥>�3*‡+ ‹9>–E§/¨*,¦#.‰-�/>’ ‘¥ ©ŸŽ5� ˜5 £%†5¥œƒB6§§ “ ‚T=˜ “% ›"‹8ˆ)Œ„‰‡†…›‹ ‰‡‰Ž ‡ ‰� ‰‡Š%€ ’˜ ‡ ‚� � ��� „ �MTf1KqQd´.K€2JzWU\1Jt8Gj;JYQayxú6K½UG”JiáEW‹9JS=Qe]W]€{y‡ˆŠ‚‰ŠˆŠ€'jÛ+oèwƒœ+rêOxㆅ�—”ˆ‹‰†{…ŠŒ‡“ƒ„„pt1hM,q!8LY14rMk¢=dׇÿhþR‰O†A‡2x6/wA4‚EHƒa˜ED¾%Wv€Et=…y<}Kz;zJ}H,|:Jzƒ'x56}Aˆ… �š ��‹‘‡{‰Ž �‡ Š€ ˆ‚ ‡’ “ Ž‘ � ”{‰ ‘ ˆ‡ ˆ ‚�%Œ Ž‹��� ‡œ�ˆ ˜�Ž�–…ŒQ˜ �^”<*Œ]@�’ �< œ€]6�.g—�1&�)Qš#“L!Œ.#�A©¡)“¤G¨,¬=•‘%’%'©1¦/ ˜’?DŒ-˜¤ Pž%›)�UN¦K›2!¥—5ˆaE� Œ‡W%Ÿ/MŽŒ.— ‰„š ‘–—‹‘} €� � Љ†� ‰€ �“�‘ ‹• …� �†9JnVT_GQh-P�"jÿU[Š2Eg"F˜7T—9A[[NƒKC’`TPGS`>PbCQ`=QcPJQ^RRN]i{y|–‘Žm€ Sk¿_~ÍFyÒ…„ˆŠ‹Œqžsu‹‰ˆ‚��ƒ}‚ˆ„„��‹ŽBywq  cÿ3e­DA=uÁTeê/kaBvur6.z]} TiÉ!nÿ:Z¨dc¯$Uõ_}"ˆ {5yKy'�14t=5„7€-†6…#ˆ†={#y'!�˜‘‡„ˆ ˆ �}ˆ• ƒ�‰ ƒ…ˆš€ ƒ ‹ �‰ „ ‘Œ�‹Ž”Ž …Š‹ �‹ �‚� ‘��“ –‰‡Œ —Q• ˆUL™)‰Œ#™#&“�4‘R’ œ‘#?Œ0h™ •I#Ž@ˆC_—�…G0Ÿ)_’“+$”AŠ*Œ5b (¡!¤¨¨+D•*8ª2«4ŠF�B_š �0’/– ��" �š0¤!/𢠔 •-™ ˆ …† Š „~“ ‹ €€† ‡„‚”�{‹ Š �‚ � � �0Lx%BzWSYHOl9\žG`ÒcÒ€ÿ0_å&VÃ(A¥SNWRZhaXVFR]>Pa;PcSNTbUT;QcIFOlabx{vw€˜Hq¾j‰¾ˆ„�ŒŠ‚Oë7[º}yŽcmª–��Š‹�…‡Œ‡ÿ‘ÿ [ñ MÏ!l9 i,kXprlu}(qe/p©UKÂ$Wç"míQu3.€)9}8"�-"‡=q:€ 2u0'J†30wR[ˆ$F‡&�8%{)`‡4zG"„ }™ Œ‹Š ~�*Š"�ƒ‡} ¢š„’ ’ ‡�”x އ¥£�Ž ŒŒ • Š‘ ‘‡ Ž �Š�“ � �œ�““�ƒŽ«A%¡"1‘<<–N¡œ4† ¢5§; £@ ”=˜9Ÿ&Žš8¨¡œ2œ-7§0 “)£¥#¢"k£›Q°/ž'‰ _™*˜?›$‰0 �$–Ž.�HU¡E“”6/›(k¥@�H •DŸ8@‡P—‹+ˆ — †� ‡$�* ŒŒz �z ‘¥‹ˆ–�„š€ „‹‘/My.HtQUf3Ky>G\[VkBd�_Û(E�BpðUÃSRW4Js6Gp=MfVVZSV\RNT`ST`“”-”1 ™‘J„4–W“– �5�E�7:›1,N1™7W’Œ3˜‘‹” �„€ Œ Œ’ž†�‘“�†�# …|Œ“{ š:Qv%E|SUa7Q})K~-Gq9FfWN^EQi?Op!A|OSc;Op(Ey,Gw3FpYU]EP_\ZZBRaNKUfVS=QcONPAGŠHTwwxw„�…–‘ˆ…ƒˆƒ‰�y‡˜XÌ$XÌ9kÓiyžQÈ.TÀM^¦u{­Š‡�x…}(m3h hk%o=wG7Pš$]‡oß'SÍ?fmB|7w;{@0�†€7y!z'-)(Ž%{BŒ2‰<+~Y~‚Ž‚){K.}L‚ˆ™Š ‹ ‡ŽŽŽ� }„ ƒ ��”‹ ˆ… €†”‹ –… ‘’ ŽŸ•~ † �� „ €„’†y †�“… ˆ‹‹“‰ƒ:K�-,ŽŒ?”) ‘ ˆŽ Œ"ˆVVžJ“Œ2D‹1‘#—’ ‹•+C�(;�ž/~�G¤ Œ Ž"œ – — A”2D‘—*’?§Ÿ =”M‘ Ÿ0©6”>¡)#ž !�Ž‘*ž!*™”= Ž2"�• �ˆŠ$‰ Ž�‡} �ƒˆ �‘“ ‡ ‰���NTiKWoY[d2O€/Kw1Mz0Ly%CyRR^QR^GQhYU[4Mu,Gw/Hv.Gu%By?NhQVeaZXPQX\TV=QcNMVhUMXC€NBYoc_nu~��ŽŽŒŠƒ†‰�Š~”�ƒ’�‚€‚†—Žr,aÊFsá–�xˆ‰�ˆ††�‰–_|g=y=j3nT(Z‡TÊ\kÔiÿm†A€y u13~3:‹:6x~4+|%a† ‚A{D…6ƒ9„7vM�2‡� �0M†+|/.sB+„,‘ Š‘�‰Š™ŽŒŒ�‘‡‘Œ…€� � �  ‡�…¥“‚‡ˆŒŠŠz Š•† ‡˜”‡�„ ‰ŒŽ‚Š”A”� ˜”!Ž †L ˜ 5’’C�D– ¦ ˆBM� —> �*wœ—+’3‘š),š2¦¢(5ª+¬6Ž)‹AMœ)§7œ œ�,Ž_� £–?˜9‘MH O• ”5#Š= #5š@ ‰…0D˜ K“œ �ˆ”ˆŠ�•ŒŒ‡‡�‰“‡ƒ…�1Jy>KkZXbNWn2N|/Kx/My,GvOSd6Ly;IkVT]RTa/Hv.Hv,Gw*HxOSc:Ln7Hp;Lg[]`UX]OMUcTR'RÍDE�bRE>PbYZb~vv‰Šˆƒˆ��‡Ž�‚‰�„�Yr¦ Té@oïx¬„‚‚ƒƒ…‰‹‡�„މ†�p„d0nŠiîwÿ+agnA_þiƒ qm |={//�-8Š.z/Q|+'v.|%„$q={ AyE€<yJF‚+Š€*}-48‚+]‚{ €™‰ ��}„‹� † Š �’—ŠŒ�§•‡�Š‹� �” ‹ �‹Š“ ‹ � �‹ ‰’‘ ˆ”‰‰ †¥�‹�� ˆ¥5§‰! ŽJ“8«�+Œ)¢E¤E¬�‹!/ŠLC’‰ 5˜š ‰2�Z‰+Z˜?—<— ’ “+ Ÿ=¢*ŒM ˜42ŽV+� †�8žƒ.•#R“$Ž$ +.ž&A‹5¤ ¨†\&Ÿ¢,�‡�’‰ ‰} �ˆˆ � Š ‰–�—…Ž5P~*Iz.Gu;KnXXcASt9Pv$EPRc„™\œ žj˜W�*"šKLŽ% ŠW^™• —¯$ ¨ ’Œ”- š*¡8š>’JˆI•i«Ž.’b­ "›;)Ї€‰†‘�~Ž ”…ˆŠ1N€0Lw0Ly/Kx&BwTVdSYgGUuYZf5P}/Lw1Ly0Lx%CyMPaUT]CPjXT[8Ns,Hx/Iu.Hu&Bx;LjSYfF`ÌŒŠ.{.z",}#,‚'D}1x;”X…(6|A „Ž$7‡$‡ |8Š ‡ˆ•�‘‘Š ‹‰ƒ Ž ‰Œ‰Š ‹{ €• ‡„ –ˆ y ‰Š‡Š“–‚� †‘ … Ž© ”ˆ ‡’“ˆŽ€‰ Ž6WŽ'‘ ‰J – �D— œR+ž.�WP•$M•�P˜?�* Ÿ&:žª  •”8e’0&± ˜$3‹;5›'“ � � œ1-§0¢}O"†EZ’ ’^¡'¬6¥'/‹+”/"—@¡”N6�'%—1_•“-œ ˆ �“�‘�†�€‹ ‹ „KVp/L}/Kx0My,GvQUf5Ny>KjYXbQYl0N}/Kw/My+HxMQd8Mw;IkUT]UV_.Hv-Hw,Gw*HzKPdBOh0Q£*Q”[[XVY^KMWeSPARbIN[cPNU¨SêBqÈ‘ˆzv‰‡…‡‰‹‰ŒˆŽZyÕ …ÿoÿ]rÓŠ�އ�d{n.o; m knopq!q0€ uC�"‰',xIB~0�-}5UB‰(Š)ˆ+Os14|(5~<{T"�1+>:‰:B|y4&z*E„ ��“�‘“ ‰Š  ”� � –•‡‘ � ~{ ’ †‰$ Œ ‘Фš†’! Š„Œ’� • ‰’š | ’‡Ž”�‚ „‘ &ˆ ’™˜1 ‰"Q¤4Ÿ&„/’&{¡F‘‘.-ŒG£"(”K¨' šN�VM˜!†+ ŒR¥3ž'§(w™�$™5L•&�:$–;­•?‹/ « «�>g�&4˜.— ˜ �.-”?¦3“)�;#™6–*bž6™‹–œ��” � Œƒ ˆ”AQqYZc?Rv7Ov%E|RVf9Q|)I{/Hu:KoXYcBSt8Pw$F~LPd@Sw'I}.Hu7InVT]EQj7Nu$BuFOfDUvW¼1Bi/GvYU]KQ]WWZIT`FLZgSOLVqNLRNK�:TÉACІ‡‰Ž�Œ†ˆŠ‰ŠŠ‡…€~€–mÿzÿ&hå:sá_~°†…ˆ‚�…‡‡p{s'l/i gps(t nuvF�*_}?‰"€!6{*@{(}#ƒw4P~ |=Gu:3ƒ<„ A†!%u%„R&€pN‹˜€‚‹’‰‡ „”›z Š—ˆ „Š …ˆ‰‘ ’‚ˆ ‰”Ž Œ•ŠŒ Š‘Œ‚ Œ€ ‹ �€|„�’– ‹Š‹Ž —‹#T”-”+£� ‡D‹-Z™(— ‘G‘%¤ —“'Ÿ„!9˜$#¦ –„WF’“' •�;І ‡………|2N�1NƒS[l6OyESl\ZaNWn.L}/Kw0My+GxOSf7Lv?LkXWaTZk0M~/Kx0Lx*HyJPfLcXXSvîböQA™EgäF^ÁQJI5La[`izrqŽ�Ž}„Š‹‹}\x¦hÿg~§`´Cz݈‡‡ŽŽ�‹‰‹‚‡‡†ˆ��‡�e}g9oAjhru#mqo"<�%)yW‰"zF$z80�GGƒ+2|5^�9†/"qU„5 €3w#,|Qƒ5{OH}$ƒ)}9w.DŒˆŒ— �™“��| …” Œ ‰Œƒ€ ‡� ”‘� ‘‹ ˜ ƒ€ � ˆ …�„Š, �� �†�”ƒ— ’ƒ “ˆ‚ Š–Š‘G“$“A –H ˜EBˆ;– ’:  …M”EqŸ�#—7J•0ž='�;ŒE=  ¦‘;Ÿ2¯+® 3œ�Ž# &¬#¡*›"�?5’›&¤>™ ŽVD¦6ž$+ž-¦�T4Š?Œ‹= œCJ˜"Š,’.‘ƒ“ • �6Q€(I†UZi6P*K…5Ny@QqYZc@Su5Ow$E|NSg>Sz&G{1Lw:KoWXdDTr7Px&G}GNfFUu&H{-Eg7GlSS\OWt8O{bçP`°FNY$?0K„7HmSRqJR¼S@\QXjMQiVNR>Se@IWeRPS\ex{€Œ‹�‚ŒŸ0`Ér~Á'qì`|°Œ‰„Œ��‡†‡�‚„†‰ˆ…‡„‚‚�‰‰‡p~s*n1i" n t"o!t&y o7u=z_}7x/#)}E|=}z-z„ v2-tR†rUK~,‚B'~(…)�‡1/z+{y& —”‹‰†Š�” ‰ �ƒˆ ‡‚‚š‹ ~Œ! Œ Š„ �� �‚�Ž’„ † ‡ ‹ Ž�"‰‰˜›Œ”�›Š�‘‘A›#)€P5œ3L‹‡!• – ‹$"’Y’ �”Œ1o’)š!�XŽAM•,(’Š.–JkŸ$Ž!’(U”ˆT?™@›) œ¡«%›/_¤«.d” Ž^d› .ž*Œ2'–Œ‹) ‹%'’ Ÿ/ ™"ž' �“œ ‹ S]nEZ{[_h2O‚3N€1N‚0M€-K|SWgUXfASxXYg7Q}0Lx0Lx.Ky(CuKRhXYcASxVXh>Ry.Lz1N{/Lz)ExAKd[ST,W¬=fØ2V¾nß$pý3R´+Aš?;oN[c_\ZRRRJNY9OcFP]dQNGS^>IZl\[|}z‰ˆˆ^s¦l‰´ˆˆ�†…‚‡†‰‹‰‰ƒ€ƒ†Š‹‡ˆ‰ƒ†…†‰��‹�‡�Ž[yf7w8i mkjukq}s4 ‚,‰$;vƒ @† F‚(zE"†#(‹7u6||3zPŒ&'€FL„1IŽ)#…5{6W‚>€/4‰! €‰ “‡�| ˆ"�'‹ †yŠz ”œ‡�‘ ‹…›z‰Š’ª‹ˆ“ Š—� ‘ ‘ Šˆ‘¤‘ˆ— �Ž$˜•��— † ˆ Ÿ9¦(�<2—%Y™ ¢"‡<›¯—V $Œ 7¤35Œ“S ž š–"S¤% —3› › ©2o¡ §"¥1±†I6šN™*¥"…F �˜0•6’(7š-d›‘-œ6H¨'R�)(”K¨,�X �š6OyJXlbcdLZu.Nˆ2N€2N�.L„SZl8OwESl\ZaQXm.L~/Kw1Mx*HyLQg;Nu>LlWWbW[i/M~.Kx1Lx*IzFNgAPs>H^VRgUeŸ sìM¼@aÌjÿš# “R¢%5‘5B“–6;�2“1MœRˆ‘eq™‘!™7’ š*yT•,J”2•ŒI�OŒ +‘R:‰3 Šad™‹5P€,Lƒ6OwDVq\bi@W~6P€(I‡RYk;R{)K…5Oy?QpXZeBSt2N|%F}JQhCUx&G}/Hu:JnVYeGUq5Oz'H|BLgJVq%Hƒ-Ht:F]OKkJMh@U{'F‡:KnNUd'G}*Du1EpWT_ST[STZOU^>L^fRNMVa>KVGPŠ,F—vxv�†Œ�‹‚ƒˆ‡‡ˆŠŠŠ‰Š‹‡„ˆ‹Š‰ˆˆ‰…†‡‰‹‰‡Š†Š‚Ž‚„wƒy.s5h ikmrt& …,x'‚#{Mz?uO|6%€.� ƒ2*{$y+.{*1Ž$&}< ƒ4#�4"‚(X|€Š"Š#wL}E‚ˆ šŒ…ˆ'ˆ ‘“…| �…Œ ‹�Ž ‚ ‹†��‹’‰ ‡“ ‰ •ž„‚ Œ!“ Š‚†ŒŽ~ ‰•…†‹ ŽŠ“�*/ŒY;Œ“�K› †* Ž�…O6œ0jš “3$Œ(P‘”"'’�"�"!›RzUXh;R{/Ly0Mx.Ky*EuFPj[Ya@SwRWfBTv.L{1Mx-L}-Gs?Li[UW?NiLPcGRi)Gy1Iu+Fw*Du2IpMVca[]QSX]PSIS^AO^dQE^JoMEkhZWz|‹‹Œ��Ž‚‡Œ‚…Šˆ‡ŠŠŠ‰†ˆw}„‰ˆˆ�„‡„‡†Œ‹Š�‰‹‹ˆŒd{t/t0n josnm �'y%:z5�r>,|(<Š:/€#z+}0W�"‡,~A#†8€HŠ?w'$zL‡ ƒ‰.B‰0C‚tM>‘ �Ž’…ˆ‘‘‹‰…‘�Ž�„|† ’ � ‡ƒ"’ …œ�Š‚„ ЉŒ} }—‰ƒŒ ž‡’„…‹�‰‚“C’&�“—Œˆ0•( ’�3�Q‘ ��&F�!.£&ŠBY˜7�#—’$–Lš*¤  ª­>Ÿ „U<›J¡(£-š  �MC‹&£ —JŸ6“A *d˜ “)�'(“IYw.O‡3O€5P�/MƒT]m9PwKXlaceO\s-Nˆ2N€3N�-L…PZn=QsESl[ZaTYk-L~.Kx1Mw)HzHPh?Or>KmWVbX[i0M~-Ky1Lw*J{AMjEQo;JnTR^\X[2Mw+Gy.Hv*GxV€Y_j:S}2N�2N�/M�0LzKUlZZb=RzQVj@Tx/Ly,KzMSdHR[KS_\Y_?SyKUoHVr,L}2Mv,K{.Gu;Ik_WX@OlFOgKSf)I{2It,Gw+Cu1GtMVWR^©8Z¨\PMMT]>PacPONRZ=N`fWV~€�‹‹‹��Œ…‡‰†ˆŠ�Œ‹€ƒ‰‡Š�‹‰‰Š‹‹…†…‚„…‡†‰ˆ…‹……‰q‚p*s,n holmnmw!Š/{S~n\wG7�!‹ ‚3w z'(�(F‚*/s7‰C�d}-~'|†'Š&+�ƒ1‚& ‘ ƒ–�’�‡ †’| �‹ ‚„Œ†“ ‚~��Ž “z ‚ˆˆ†™‘Ž}¨Œ‹Š… – ‡‹ �‘‰‹†ˆ“.JŽ+,‘Œ?“)– .•<š)•UŸ/A�R?“$—=“Q™'œ0 œ"£ ‘“j’'N¨ ¥ #…3K˜$ ™!Ž‹—/¥4¨ �F|g\‘–’Kš=5Q�1N„U]l9PwOZjccdLZu-Nˆ4O€6Q€-L…R\n.2:~$‚9,|#`„Œ/�7‹:yCs5?…+{C#Ž:'ˆ+7…DA„% y*{;7€ Šš–‘”“ ˆ‹‚Š!Ž‹ 𔉆‹ƒ }‰ �†' ‹ ��™ †�Œ† „ —‹ –Š! �¥ … ˆŒŽ”›�z �…@†Ž —˜-Š&5š 9ª(7‰,�?`¡z–‘.Ž%A˜6ŸG! )«6‘I<œ& ‡=ŒA¥<™6¦,d�/’˜75”*—*1”< £�‡G:¥ ®š 5P�,L„X_l7Q*Kƒ9PvGWp[ak>V~5Q‚*K†S\n>T{)K„7PxDVpZakDX{3P„+K†NYoDUv&J…5OzAQnVYgBSsOUgFS]AJZbSSBRaCM\TQWSYgLVn1N}+Jz9IlQWk'I�,Hw;IkNRcNRb0Lx+Gx1HoURUW²*H2FjRUd[WWPRZTV\9NabONVW]7J]]KL_`dpuzЉˆŒ‹Š„‡ŠˆŠŠ††…†„‡‹Š‹‡ˆˆƒƒ‚ˆ‡‡‰‰ˆƒ†„Šƒ�„„Œk~m0n6jhnp&s rq({1ƒ=C~(W~,…y.P}*~+€…z=@t1‚=sE@}C€8,‹ 7v."‚6|#=‚ %uD$}4… š‡€‡— Š Š… “š ƒ…—‘Œ ‡ †!€‡„‹ — …ˆŽ ”� ��� ‹Š�•€‹ƒ ‡ ’ƒz ˆ‰’� އ� ‰�Œ'\— 7“5� Ž �(ˆK9˜7�'š1ˆ&+£—0?“GC„G'™!H‰ �?ž–”$U“�%#œ \”L‰G •D’PJ�3”ŒE�Xct@X‚Z_i3O�7Q€2O‚1N4NwV^kY`k:T�W]j8R~5P�3P‚0N�3MwO[m]bhN``NNVV[–4’S•#1P‚8Q0N‚2N�8Oz]do[dt4S‹Z`j9R{5Q‚2O‚0N€6OuQ\l[aj8SƒT\l=T{4P‚4P�0N‚5NwKXo_bg;V‚MYn_g{€…“Wcxljh`Z[SNR\`gcegGN\eTPHU`AL\ZMRKT]HR`\Y`BTu@QvQWk-M~4Nx+J~0Iu8Hm[VZDMg;MpSTa+I{2Is,Gx,Cs3GqVW_a]_SUY>Pa=Oa>Pb]OQUQU4tL`3x$|!J|;„)oNrC�–‰• � … ‡ ‰• †›ƒ Š¡šŠŒ “‡#†‰Ž€“¨ �‚�‚}…‰Œ�…š¤�’’ Ž– � ‹–—† �€”£-B¢=+•,‰?D©™ ‘% †q ©£=’X� ˜ � ª,©%“/.¨&:Ÿ’H§ ›;Q^r^hvL]_ORJT_>M`VQWPXgMWn0N}-Ky0GqUWf+J�)Fx>KjKQdQSa0Lw,Gw,GwVV`-Iw'Dx1HoOPb`YWOQYXVY9Od[MP]WX7MaTHLhbdltzˆ…Ї‡‡ƒ„ˆ‚ƒˆ‹Š‰ŒŒ‹‰‰‹ˆ‡‡‰‰‰‡‡†ˆ‰ˆŠŒŠŠ„Š…‚�e}i?xBgkinow#€;‚ }- €?y.w^x=#‚1~‚#=~*{'(u55‰'?†. x@Œ%!†-L}/~†ˆ7~2x9�4‹ ”“~ ‹ ƒ‘˜�� ~…� ‰ ‰’ ~ ‰�€‰� Š�~ � ˆ ˆ Œ� ˆ “ ‘„‰ˆ‘ †� ‚�Ž} ��‡‘‰) ˆbC�4– �MŸ ˆ7 � Œ‰6”Gs  ™. “7M‘•. Ž)#’3‘ •JF–)šD2N€;Qx^eoZev:Vƒ^eq6Q€6Q€3O€2O2N€Vas^fq3SŠV^m;R{5P‚3P�/M�8OuMZn]bi7S„PZoCWx5Q„*I~|�—§™�³¢�°¤ ¡žŸ�Ÿ¡u�–y|Š[g{jigb^]dUThfgcfhHR`^NPIS_@M]XLRNU]HS_ZYaDTs;OuSXi-M€4Mu*I{0Iu8HmXU\IRf4JrST`-Ky2It,Hx+Du5Gp@Qea]^QUZWNSYTX;Pc[OSYQSL^SLRQX`YY__]c7P|)I|2Lv/My-FuRSb:JoTR]`XY:Mq&Ez.Hu/Hu*FyRT`9JnSQ_FR_`\[>PbYMQ_WW:PbVLPZQSN^k|yyŠˆˆŒ‹Šƒ†‰Š‹Œƒ„‡‚…ŒŠ‰ƒ†‰{€…ŒŒ‹�‚„†……Ž‹�Œ„Œlƒo6u>f p qtp'nruq~.yHEˆ-:€)z-Q}>…)lS~1€-|/{1yS ‹)&|>,…‰,"‚2x'%{+;�*T…‹—Œ� ‹ˆŒŽyˆ…“�—† � Ž›‡ˆ‹˜ŒŠ”ŽŽŒ‰Œ Š& ” ‰�!“�ˆ ‰ �ŽŠŒ ˜ƒ“ “Ž �¥4 š }H$–[™ ¢#ˆ:™!«—]© ‚8�a‘ ‘ …4O.L‚\cr8R�)J‚BVyQ^r\gw>Xƒ1P‡.MƒZcs?V}+K6P‚L\v\etAX0O„.M„O[qDVx(Iƒ9QxKXlWap;Pwy…›¬©£›šž—–Ÿ™–ž¯¡Ÿ´¦Ÿ²£�¨¨¤�”šƒ� ix’_i~^VZMLSZbgjjhWZaaNNKT^;L^`QRTY]9MbEQkLTkPXl0L}.Ly-EsUWd.L€(Fx?KiJPePSa2Lv,Gx+GxTU`2Ju&Cy0IpMThbYVOPXYUX:PcXNR_VV9ObOGMkbclsy„‡�„…ˆ„„ˆ}�„Šˆ‰„‚†ˆ‡‡†††…ƒ†‡‡‡�Ž�…„††‡��‡“f}eE}O qnlknnq(tRxZcq]gu7T…\cr:S4P�3O€0M�=RyT`ragq7T†R]o@Ty4Pƒ4P�.M�Pf`^`QV[TMS]TV;QdWPT\QQ=Rc[TZ�{zŒŽ��ŒŠ†‡ˆ…†‰‹‹‹ˆˆŠ€‡�Œ‹Š‹‹‹‰‰ˆ‚„„‚„‡’‰‘„†…t�w*r+n jlonm nr$ˆ/ƒ!8y 6x= s]+Œ3!Љ+*{"y+.}(5†.Fw-)|$!’ sƒ@~'{zˆ%& ƒ - ‘†�•�”„�• ‚€ ‘ „„Ї“ �‚‡”‚ƒ—ƒ ˆ‡ˆ••�{��„�€•– ‚���Š‰Ž … ž/ŽS:� “ŒL ž˜P˜ ŽZ¨'$“XE� ›(‘Udw�mz‰t|†;W†0M€4O€7S�(I„ZbqDVuXbrlljM_~+Nˆ3P‚8R(I…U`tHYtT`tghgR_u,M‡2O�8R€.N†?Qo“�‰¤¥§ŸŸŸ¡¢¡¢¢¢¢¡¡ž�¡–”�š˜ « Ÿ·¥ž²¨¡¤ žšŸ£€�‘{…”\ZiT[e_a`higc\]]ST]_a?Oc2M~/My.FtSWf>OrWWb_]b9Q{)I|2Lv1My)ExRSbSzR^rYdvEY}.N…1N„?Qp’�Ф¥¦ŸŸŸ¢¢¢¡¡¡¡¡¢¡¢¡¢¢¢�›Ÿ˜–Ÿ˜–Ÿ°¢Ÿ´¦Ÿ³¥ž°¢Ÿ‚†˜Ž”ždpŠsw}\W^NKQYagbdeAQb/M-Ky0GrTXi,J*FvBNjLSjOXl1M|.Lz,FuTUd2M'Ey@KjKPdNSc3Ku+Hx)FxSS`6Ns&Cz/FoLThbZVNPY[UW;PcSNTbUU;PbJFNlb`msyŒ‹‰ŠŠˆ…‡ˆ‚†‹‰ˆ‡††‡‰ˆŠˆ‰ˆ†…………„ЋЅ†…‰†ˆ‰‚“_}f:q=jjmpp't q*y+‡5*„3Ov,Gƒ ~28{Lƒ+ …ƒ-'pA7} 6{8IvJ{N‹%7{:1�,|8|*|&<{G †–“€†— �‰† “— Œ„–“” Œ ‚ ~‹� ‡ ”�!‡–•� ��Ž Ž Š�• ˆ„‹  •‡ {Š ŒŒŽ �ƒŒ‹š –'4Ž^œ +•!�‹0‘J#“Qp˜Pn•Qn”Vq•Yt–Rn”Fe�/O†_eq;S}5Q�0Nƒ/M�@SwWaqOaƒ4T‡Xbs@V}4P�3O‚-L‚?TyP^sbgq9V†CSo‘މ¨¨§¡¡ Ÿ ¡¡¡¡¢¢¢¢¢¡¡¡¡ ¢¢£¡¡ � •”Ÿ�—ž¢—›² �¯¡ž¤¡¡•˜�‰›os…bk}]`d?O_=PeKZyETp5M|SYj/N4Mu)H{1It=KlUXgKVn1MTWf2O~3Nv+I{.IvY…/L�5P€7S�'I…V_sFXuWaslkjP`|,Nˆ2P‚9R(I…P\vM\rR_ugggZcwŠ�žžžž©§¤¡¡¡¡ ¡ ¢¢¡¡¡¥¢ «¡ž¤�ž™– —•�–”žœ˜Ÿ«¡ ¹¦ž±§¡¡�ž�¢¤s}“†‰•FVmAQ`AX„BQnYZd]\c6P|)I{3Lv0My*EwSUe=LpVWe`\bLmRR_`XX@Qo&F|.Hv1Iu%E{NRb>MlUS_HQ^^[ZBRbPLTeVTARaN_KYg|{}…„ƒ���v†…†‡……‡ŽŒŠ€†Š‡‰Œ���‡‡‡ˆŠ‰ˆ‡‡‹ˆ�ˆˆŠp~p/p5i imx$nr sy$4'zV�yS6†38‰5.‚( ˆ4{(Qƒ=ƒ*8tNˆ'„2‡#rIˆ5Š+"�94€($‹/tQƒ’ †‘�� –� Ž Œ € �• ˆ ‰’} † ‚…š�ŠŠ� ” ‚‚Ž ‚ ‹’ ŠŒ*‘ ‹Ž�—‰„™… ˆ Ž„|…”Œ£..“—?§›D¡¡¡¦¤¢¥£¡{‰�p~’dsˆp{ˆbu�Po˜Tp•EcŽ8V†3O-LƒV`tAW}(I‚AUxU_pXfxBZ�.Pˆ.MƒR`vI[z'I…9PwkuˆEVtZh‡…Š–¡¡¡¦¦£¨¡ž§¢ ¦›œ™– ™•�Ÿž¡¢¢¢¢¢¢�›Ÿ˜•ž—–Ÿ¯¡Ÿµ¦Ÿ²¤ž¨§¢Ž“žFUm@P_CY…-K€/M}ITjNWlKVm/L|-Ly-FsTWg/K(EwERlLTjNXm3Nz-L{*FvRTc5N}'Ey?LjKPbNUe4Js)Gx)GyOSb:Np%Cz0HpJTicZWNPXZTW@Pa@PaAO_=PbGFPocaov{‰ŒŽ‰Ž‘‡„‡~�„�…‡‡‡†…„†ŠŠŠ���‡…‡…‡…‡‰„„‡‹…“d}e7r: em upnx 7}2t5'‚1$|Mx0*~8D|v.<|"N€yB w'„s>0xR„*&oY8}9~PrdpŠ|…“­¤£›•œ›š¡œ›Ÿ¢¢¡¢¢¡¡¡¡¡¡¡¢£¡¢¢¡�›Ÿ–•Ÿ›—žª Ÿ»ª œ“˜DTmAQ_BY…1N�5O€,Lƒ5MxCRnUXhHUp0L~UYh1N3Nv+J{0Iu>KkQWiNWl.L�SVf6P|2Mw+Iz-Hw>JiNRcOR`*GyPSb8Ns.Hw.Hw)Cv8HnIPcb_]VV[@P`?Oa=PbOOXaPN>PaZZa„{y��ކ†Š�ƒˆŽŽŽ…„‡‡‡‡‰‰‰……†‚€ƒ��Œ…†ˆ~„„•Ž”Œ†Œf{q)p2lmpln"q. iv@~q@‹"3‰Fy�7 ;„yDƒ6~+y(}%)~3 ‚=�A†16‰%%Ž:‚1y-G�0ˆ$—† Š ‰…{ Š ’ˆ~{ ‡� ‘‹�Œ „ ‹Š ” x‘ˆ“š‹‘ ” ‰” �” Š Œ�Œ¤��’ � ’™Œ…”*˜ ‡-»§Ÿ¯¤ž§¢Ÿšž £¢¢¦¤£® œ‰›\u–Pn”Nl•Rp˜^u’euŒ|ƒB\….M�4O€8R�(J†S_uM[qU`tlkjSb{.Pˆ(Hy„•®¬¨¥¢žªŸ›\cvPa‚O^~‰�› ŸŸ©¨¤¡¡¡  ¡¢¢¢¢¢¡¡¡¢¡¡¡¢¢¢¢¡¡ž� ““�¢œ ��šFUm@P`J]ƒ6P,L†4N1N‚.K�VYgAQqXZd_\c8Q|)I|1Lw1Ny'DyRUd?MoTWfa]a>Sx)I}1Lw3Ow$D|PRbAMkPQ`aXXBQl%E{-Gv2It#D{KReCNiUS`LR]GS\AQaLLWgUR@TcFITcRON[h€€‚ˆ††��ކ…‡ˆ‡‡†„ˆ‡‰Œ‰ˆˆ~†�‹‹‹ƒ‡Š…‡‡‡…ƒ{Šƒ„…{ˆ|(n1hj opps {}x*-zIv"�F"{6L‚.)�:"Œ1tM{J~-u['|5!r_[V~{,,|!Vƒ$zKoG‚ › Ž �“ ƒŠ% ‡” ˆ��} ž£‹‹–Š(†�…‡†§Ÿ‚„…‚‡ˆˆ• ‚ •£šŒ’ ’ ’ �’�ž‰�‚—•Ÿ¨ŸŸ¶¥ž²§ ® œ›—�™— �™ž¦¤¢z‰œm}“br‰r{‡gx�Po˜Tp–EbŽ9W†2N/MƒTauFZ{(Iƒ?TyXapXfz8S…‰™¹¨ž ˜œ™˜¡£ž¤‘�”gs„JYwVd…‰�˜ŸŸ ¨¨¤  ¡¡¡¡¡¡¡¢¢¢¡¡¡¢¢¢¢¢¡¡¢¡¡Ÿ¡‡ˆ™GWn>OaCVyQ]pL[v0O†/Lƒ3NV[j.L�/L}JUjNWkKVn1Mz/Lx,FuSVf2M~(EwCNkMTiLWn5Ny,L{*FwOSc9P{&Ez>KkMQbJRf7Mr)Gz)GyLQd?On%Bz/HpIOccZXPQW\SU?RbKMXeTPARbBGRpa_mty‰ˆŠ†…‰………}‚‰‹ŠŠ‹ŠŠ�Ž�†…‡ˆˆˆ‡ˆ‡†‡„Œ‹ŒŠˆ‰Š‚’[xf>wB kjknk{y';‰ 3z)ƒ!$y*zXuQ&„0~#5~-<€tD=)CŒ+(u<ƒ&†(C�<|!„ Aˆ(wA �*‹ �—~††(‹š”‡� „ � ‹ „ ’� €“ˆ€• ‡Žƒ‰ ~˜’„‚ ’•� ‡�‹ Œˆ€†˜w �Œ žŸ™˜ —•ž§›�«��°Ÿ�¡žŸ¡¢¢ž ¡ª§¤£ �œ™”Wr—Ll–Ro”Uq•Yt—Ro”He�.PˆV`sFYy1O‚2Oƒ,K‚FWwIYn”�“®ŸŸ´¢ž¡™œ ¢¡¡££­«¨Ž�’pz‰V€.JSXh4P~1Mw+Hz.HvALjOUjOXk+KPTd:Q{0Mx-Jz+Gx@KhKQdSUb*GyLQd=Pp,Hx/Hw(DwO`7Q�2O‚0M€X^hDVr]agbcg5P�,L…4N€2N�*JƒUZh?RtWYe_\b;Q{)I|2Lw3Nw$DzQTeBNmSVg`]`BTx(I}0Lw4Ov#E}KPdENhNQb`WWERk&Ez,Gu2Jv&FJQaDPkTS_NR\ZXZHS`FLYhTQEUcBIUfTPO[f{~€‰††ŒŒ�…††‰Š‹Š‰Š€ƒ†‚…†‹Š‰w~…ŠŠŠ‡ˆ‰�‚�‘‹’„†ˆt‚s/x8h ltoup" rxty&z97…BN�{01{$`†{JpOˆ$z=ƒ)rOˆ4„,+€!Š +‡9|&v3'~,Wˆ… †–�Ž“‹�‘~ ƒ‡ Š“�Š ‹ Š ™€‚Š„œ’ƒ‘��Š�…ˆ! •Š‹!” “ˆ† �Œ˜–Ÿš˜ž¢¡¡¢¢¡ Ÿ¡—•ž˜–Ÿ§ŸŸ·¦Ÿ²¥Ÿ¦ žœ ¡££¡¤£¡§¥¢zˆœj}•_r‰q{‡lz‹Qo—Uq•Db�:W†2M/M‚N\wL\x$EBX�sz‘ŸœžÀ«¢±¥ž©Ÿ›ŸŸ ªª©»¹¸©ª©ft‰fhsWc|’”—›œ ¨¨¥¥ ž¦¡Ÿ°¢�„‡™?Qn@P_1P…1Nƒ6O~V]m-K�1M{OZjP\pK[x2P„.L‚1M€V[j1L~.L|ITkPWjIUp3Mz-L{+GvQTe7N|(DwBNlOTgJWp6Ow+K|+GxLQd>Qy&Ez=KkPQ_HRk7Nw)I}+,2:# ASr%D|/GoGThb[YQQW]STCRaGO[eROCSa@HVn^]rvz†ˆ‹€…�‡…‡x~†ŠŠˆ†…ˆ†…†††…„‚……„†ŠŒŠˆ†Š‡…‰�‰”f}h|'|�+~5H!y)‚ І"r;4yL�5%rP.{?<}GN‰#~ƒ,U�M‡ 9}<#v0} Ž †ˆ z }…� Š ‹ ”��ˆˆ‘§§�“ Ž„ �‘!‹… ‘Œ� ‘” Ž � Š‚�› ��ƒ  ¡¢¢¢¡¡¡¡¡¢¡¡¡¢£¢Ÿ� š—Ÿ••Ÿ«ŸŸ²¥Ÿ¶¦ž¢  Ÿ¡¡Ÿ ¡©§¤£¡ž�˜’\u–Jl–So”Tp•Yt–Rn”HeŽ-PˆLZuL\w1O„3O�&G{H[…gtެ¡¢¼¯ª¾¾½··¸³³³¶µ¶Åÿ¢ŸŸ†ˆ‘NTgmv‡€…�ª¤¤ –�œš¢ˆŠ™EUm=ObJ\EXz1NƒW^k1Nƒ7R�,L�8PxIWlT^pIZw.N‡W\i4O�4O�-M‚2M{GSkOWlLVm*I‚RVi8Q|0Mx+Iy,GwCNiLUlPXj*K‚LSi?Sx/Mz.Jx)IEEQQE;Q[q55;+!4Mw.J{(Cw=Il=LgT[_YY]GMYfRODSbFO[cPNBO]W]hyop�’‘ŒŠ‰‡‡‡†…‡ˆˆ‰�Œ‹�†‹ˆ‹ŒŒ‹Š��Œƒ„„€„ˆ�‡�‘‹�h‚m8r;l mjop mqp„$ˆ,yD{! xS$‰CŒ ˆ<‚$z((v43‰)A{7Jw ŠK‰q€$} s-€"�+}ƒ% ˆ �‡˜‰˜†}‘Žw�‡ ‡‹Œ� • ‰… �‰ |�� ‰„Ž�›�„ˆªˆ�� ¡ ¢¢¢¢¢¢¢¢¡¢¢¢¡¡¡¡¢¢¢¢¡Ÿž —– ™–ž¥ž ¹§Ÿ±£ž¥¢ œŸ  ¡¡¦¦¥ªžœ‡�›Xr–So•Nl”Rp˜[t•[qŽ|~�Nb‚-L‚4O€:T‚(H�DVyS_u„�£µµµÈÆÁ¿¿À´µ¶±²²¹ºº»¸µ­®±zx|Wazflz…—ª§£�‘žAQlBR`DX�HWo]ah^bh3Pƒ.N„7Q€4P‚+J‚Y_hFVp[`ibdf7R€,L…3N€3N€)K…VZgESnUYg`\a=Sz)J|1Lw4Ow#C{MSfHTmPVi_\aDUv)J}.Lx8Qx?>HC@??BG/&-Dn2Ju&Dz>MlIThSUbQSZWVYJU_BL\hSOHUb>IWfRPS\g|€„Ї†…‹�†‰‰„ƒ…€�‡„‡‰†„ˆŠŠŠˆ‡‡†„‡‡‡‡u~ƒ�ˆ�†ˆ„s€u*o1k m iomnvz(L€.z4t)�B†+$†2!{,06~=‚!)…6 |D‘((<%wH„!†’+5‰7Š3(|.�1€,„Ž˜Ž——‹‡‹ … Œ‚�–‹‡~  ‹„Š�! ‹€ ��”މ— ‡…’‘ ŽŽ¥¥¥ŸŸŸ¡¡¡¢¢¢¡¡¡¢¢¢¡¡¡¡¡¡¡¢¢¢¢¡ Ÿ¡—•ž™–Ÿ¦ž ¸¥ž¯¥ ®¢ž ™œ›™ š–�¦¢¢z‰›g{•]pŒoy‡q|‰Sp—Uq–Db�9V†1N0M‚JZyP_u#E€CZ€ˆ‘Ÿ±²²ÎËÆºº»º¹º°°±¶¶µµ´´¯¬©ru‚fkxZcz‚‰˜@QmCQ_BX†.K~3NzS[iO]rHZy1P…1Oƒ4NV^l0M0MzNYkR]oI[y4Qƒ-Lƒ3O�V\k4N}.L|HTlQXhGUq4Nx+K|+GvNSf:Q{(DwANkRUfHVq8Ow(Hz;DS \cl\coFCE&I‚+FwDNiHSh&F{.DoFTic\[QRW^RSER`DO]eQNGR^>JYjZXtx|‡‡‡ˆŠ‰ˆˆ‡|ƒ‰‡ˆˆ‡‡‡ˆ‡Šˆˆˆ†††„„„‡‰‡††‡‹ˆ‰‰ƒ�`zn2r3j kmpq'pyr>‰Œ08vDN|-‚*z-S~=„. ˆ‡wS(r.~ OwBv^‰3-�;1/>�%w(*|H|9†&’š……” ’‰„ �– � ˆ• ’–” � |І ‚ �“"†˜œŽ �Ž ‹‹� Œ—´´´­­­¤¤¤¡¡¡¢¢¢¡¡¢¢¢¡¡¡¢¢¡¡¢¡¡¡¡¡¢¢¢Ÿž ™—Ÿ–– ª�žªœœ°ŸœŸ›ž¡£¢Ÿ¡ ¨¦£¤¢ž�˜‘ax•Gi—To•Tp•Yt—So”GdŽ0Q‰DVxR_u/N„4P‚"BxPd‰v‚–Á¿¼»»º¿¿¾±²²´µµ´µµÃÃÁ£ Ÿ�…�]_mFWsAP^CY…2P�6Q�+K�;RvLYkR^qFYy,M†X^j3P‚6Q�-L�6PyKXjQ]rK[v+N‰V[j7Q2N‚.M�0L{ITiLVmMVl)I‚NTi=Sy/My-Jx*GxDNgKTnPWi:#PXcOS\½ÅÎZ`g=?D86=TZi,Hv@MkHSh)Gz/Hu%@wL^gRNMWa>JYXMQHYhx{~…„„ŽŒ�z‚ˆ‚„††……�ŒŒ†ˆ‰…ŠŽ�‘ŠŠ‹†‡‡†‰…�‡�†‡ˆr€t.n5m hlv!qo v!{ 7€#{,8z4y@ †BH‹(#…/ ˆ.~+<9ƒ"V{3 ~Dˆ)#‹$z1!L�‡2$�*)Œ.}Gy0•„�ŒŒ Œ–ŒŒ„ ‰–‰ ˆ�ˆ€‰#~–˜‰† Œ ’ Œ~� ƒ Ь««   ¡¡¢¢¢¢¢¢¡¢¡¢¢¢¡ ¢¢ ¡¡§£Ÿª¢ ¥›œ™– ˜”�¡Ÿ¡¢¢¡¡Ÿ¡–”žš–Ÿ¥ž ¹¦ž°¥Ÿ§¡Ÿ›Ÿ ¤£¢¤¢¡¦¤¢|Šœdy–[q�lxˆv}ˆVr•Uq–Db�9V…1N1N‚EX{S^r'G‚AX€‹“ ¯°°ÎËÆºº¼··¸¸º¸’›ª:Nj@QbN]~TbuG[~/O„0N‚7PV]m.L4NyS[iQ]pFY{3P„1N‚2N�V]m2N~0MzNZkS]mGZ{5Q‚-L„/L‚R[m8P{-K|HTlSXfETs6Nv)K~3P3*+1>EŠ˜ªãåå€�¦/;R)LƒEOiESr(E{;KlUR]FRk:Np&Dy+Gx@MkMSf&Dy0FpCShb]\PRW]QSIS_DP^WNR9NaAL\iZYy}~…†ˆ…�“†…ˆ‚‚…€„†‰‰‰†„†ˆ‡ˆ���ŒŠ��„„†Œ‹‡‰„„Šm}p-r0hiv pnp!=�-v$E…+-:w)-zHG�,u+z0Y4„2oM…x?wN€ /vZ/x:}OG{&|' {+O|„€›’ ’—‰�|  ‡� ‹…†… ‰€ Š–‘Œ ‹“ †‚� �ŠœŸŸ ¡¢¡¡¡¢¢¢¡¡¢¡¡¡Ÿ¡¡©¡Ÿ¨¢ §›�˜–Ÿ™–ŸŸ� ¢¢¢¡¡¡¢¢¢¡¡¡¢¢¢Ÿž¡™—ž••Ÿ«ŸŸ³¦Ÿ¶¦Ÿ£ Ÿž¡¢ ¡ §¥£¤¢ œ–�g{”Eh–Tp•Tp•Xs—Tp•Fd�2Sˆ3)=8ÀeLŸx`€)2@*J!)>$.CKSj_\cJWs*J~.Kx4Nv&G};JlSR_GPg\VYNUd(F{+Fw2It(Ey2IrMUeQUe[VWFP\AQ`?N_eQNQW_8J\aMMX\dx}‚Œ‰‰�Ž�‰ˆŠ……††…‡‰‰Œˆ‡‡‚‡‹ƒˆŒŠ‰‰~…‹ˆŠ†‰€Žz|ƒvˆv2q9hilsnry! |${"}B/u…M‹+{,=~06‰3$‘5yHx'"|CxM<wRCz?j†)~,|/SAƒ5#sL|# � ™ ‡ ”‚ ˆ$Œ(Œ‘“z ‘©�†—�#„ •ƒ††—�˜Ÿ®£Ÿ¸¥�«¥¡­ �Ÿ›ž›—Ÿ˜•�ŸŸ¡¡¢¡¢¢¢¡¡¡¡¡¢¢¢¡¢¢¢¢¢¢¡¡¡¢¢¡¡¡¢¡¡¡¡¢¢¢¢¡ Ÿ –•žš–ž¥žŸº¦ž®¤Ÿ¬£Ÿ¥››ž› ›•�¡ž¡Œœaw–Zq�iv‰z†Zs”Vq–EbŽ9V…1N�4P€>WƒBV�,I>Wƒgq‡:L\CR`1P„0OƒLkVWcEUs:Pv*J|,Jx@KiHUq)E{:JlWT\DPj9Lo)G{+Gw;LnPTc)Gz0Eq@OdaXYQTY]PQMT]>PacPONRZ=N_gYXy{}„……ŠˆŽ†…„{€‰‡‰‹Š‰‰���ЉŒ……†‡‡‡„…‚ˆ‡‡‘Œ�‡…‰cys.p4o jmnmzy*„2G�.�%wMyT'‚<ƒ'~|.V|A;s8=‹.Dz3z+‚"0ƒK|!�x2ƒ?�)�' ‰“ ”…~ ‹ ‡•�‰ˆ‡ Ž�ƒ Ž ˆy� ”| ”›šŸ˜–Ÿ›™ ¯ �­ž�©šœœœ ¡¢¢¡¡¡¢¢¢¢¡¡¢¢¢¢¢¢¢¢¢      ¡¡¡¢¢¢¢¢¢¢¢¢¡¡¡¢¢¡¡¡¡¢¢¢�Ÿ¡™–ž—– « Ÿ­�œ®ž��—�ž¢¢¡¢¡¥¤¢¥£¡›–�n~‘Cg•Tp•Tp•Xs–Tp•FcŽ7U†3O‚FZ„2O�3P�,J€6Nu8NmJ_ƒC[�1Oƒ^eq1N‚5Q�.L7Q~CX�Q`zH[{.N„Y_j5Q�4Pƒ-L€6OxQZhM\tI[w'K‰T\l;S}2Pƒ/M€2N{PZhM\sLZs+P‘IN\'2v‚Ñ P/;JJ_‡&HEQnHWu,L}.Kx)ExFOhKTkMWn0M},}58‡„0y,{#2}"$†'…3„8"ŠG †(T|0|,†Š~G%‚#Z~%~6/Ž•� ‹#މ‹ˆ� „„… •“”� †z ‚’®£�Ÿž£•�›’’ž›•�¯¥¡º¨Ÿ«¢ž¡¡¡Ÿ¡¡¡¢£¡¡¡¡¡¡   ªªª¯¯¯¡¡¡   ¡¡¡¢¢¢¢¢¢ ¡¢¢¡¡ ¡¡®£�¥¢¡–’�”‘�”�œª  µ¨ µ¤�¢¡   ¡ž ¡¦¥¥™œ¡Š’œXs–Ro•Pn•Rp—Xt—Qm“nvƒ_k‚-L�4P�7Q�3Oƒ2NƒL\P^schqbhq1P‡0N‚6Q�4P�-JdgjGYzH]ˆ\bk5P�1N�7Q€5Q�)JƒY_hKYnU^nbce:S~/N„5P�7Q€&I„RZjO\oQU]pml !<4\Q]xITnLWo^[bFUt*K~/Lx4Nv%E{>LmSUcITm][aMXq*K.Kw4Nv(H{5HpVS]FPgYTZRVb)H{+Fw2Kv*Ew.HuLScOTe[VWRSYTV\:NabONUW]7J]_NM^`eszŽŒŠˆŠ�ƒ…‡‡ˆ‡‹‹‹††‡}€„‰‰ˆ}‚‡‚…ˆ��Œ‚„‚މ�ˆˆ�lk5y<ijtnqv(tv+} s"{%0‚NM…!)z(|3_�5†1 pX…1};‰u0(~QŠ€&ˆ+‹;0‚%u:-x/:ˆ*Ї “��‘“�މ Œ…”Š‹ †� š–ž™–ž¡ ¡¢¡ žœ¡•“��™Ÿ­¢Ÿº§ž«¤ ¡žœ ¡¡¨§§´´´µµµ¶¶¶µµµ«««£££      ¦£ ©¢ ©žœ�™ —“œŸ�¡¢¡¡¡ ¡–•žš–Ÿ¤�Ÿ»§Ÿ¯¤ž§¢ŸœŸ ££¢¦£¡¡¡¡��œ]v–Yp�etŠ|€…^u’Xr”EcŽ8U…2O€3N7P�F[„0M€:Qy`eoTbxC\ƒ0P…0Nƒ7Q€]dr0Mƒ4N}HZ€E[„LmZZaCUu7Ow*K|-Kx}%7|#~}‹uEsM€+wU#{:3xMFŠ$%ƒ-'"S„@‚1;{(w �Žˆ …z|„‰ ‡ Рޔޓƒ�žž¡¢¢¢¡¡¡¡¡¢¡¡¡¢¢¢œ›Ÿ˜•ž—–�³¢Ÿ¸®«·¹º¶µµ´´´¶¶¶µµµµµµ¶¶¶µµµªªª¤¥¦¨›š›˜ž˜•ŸœšŸ¡¢¢¡¢¡¡¡¢¡¡¢¢¢¡ŸŸ¡˜•�—•Ÿ¨ŸŸ¶¦ž³¦ ¤ Ÿœ¡¡¢¢¡¥£¢¥¤¢™”�t�‘Cg–Sp•Tp•Wr—Tq–EbŽ9V†-J�EY„2O�3Pƒ+K‚AUxYbpQbzD[�-M…^eq4O�4P�/M€6P~EY‚L^|J[z,M…W^k9R2P„.M€4OyS[gK[tJ[w'K‰Q]sO`aNNVV[;Na_NOOOURamulp��ŒŽ�Œ„„„††‡†…‡ŒŒŠ†ˆ‰„ˆ‹‹Š‰ŽŽ�†‡…€…І…‹˜Œ”i†m:sA j okmq opq€#‰.€$2x|6ˆ@ ‘/ƒ3…;tEA‚$/‚CUx"E�‹ v‚Q€w:t.�+|‚ „�…�‹’�|‰–|…‹ †¡¢¡¡¡¡¢¢¢¢¢¢¢¢¢  ¡¢¢¡¡¡ ¦£¨©ª®´¶¶¼»»ÀÀÀ¹¹¹µµµ´´´µµµ¶¶¶´´´¸¸¸¯¯®§¨«œ›Ÿ¡ ¡¢¢¡¡¡¢¢¢¢¢¢¡¢¢¡¡¡¢¡¢¡¢£¢Ÿ�Ÿ™—Ÿ–•žªŸ ³¦Ÿµ¥ž¢¡  ¡¡Ÿ¡¡¤¥¥ œžŽ�˜Ws–Qm”Pm“Sp—Yu˜Om•gqƒdn�.L�4O�6Q€1O„+J�dfkP^s`gseio2Q†1N‚5P�5P�*I€bfkL\vE\Š]bk7Q1N�6Q€6Q�'J„U]jO[kR]pdei4Hm #+=2O�(K†MXnT\iP\rcdfDWy,L„1N�6O€'J…ETrTXdKVo\ZcJVr,K}*J{OTfHS]BN^XRUOXjYZgPYo+L.Kw3Nw*I{/FsYT[FOgWT\UV`*Hz,Fw0Iu,Fv*EwMTcPWg]VVQRYVVZ9Nb`OOYW[7L_[KLcbesz€�ŽŒ†‰‹ƒ‰�‰ˆ‡€…„ˆ‹‡…ˆŠ‰Šˆˆ‡†„†‰‡ˆ|‚ƒƒ‚‹�ŠŒi�i6r: hnjlolr-1}O~rD u*>ˆ-Š,~2|* }%:€!4†'xK‹%1�*7wF‚3 ‚�%�"Aˆ …3{.‹*  Ž”‘’—‹ Š…‹ ‰†¡¡¢¢¢¢¢¢¢¡¡¡ŸŸŸ£££§§¨´´´¶·¶··¶³³³®®®´´´ºººÁÁÁ¹¹¹¶¶¶²²²³³³¯¯¯µµµ¶¶µ¶¶µ¬¬¬£££      ¢¢¢¡¡¢¢¢¡¢¡¢¡¡¡¡¢¢¢¢¡ ž ––Ÿš–ž¥ž »¨ ¯£ž¥ Ÿ® ›±¯­ÆÂ¿ËÌÍ¢­º]v˜Vp�^p‰ƒ†cw‘Ys”Fd�8T„2O€3O€7Q€\dr1M�:Qx`enVcw@Z…2Q„2P�4P�]er4O�4N}H[G[„:V†2P„0N‚2O‚T]n8O{4NwP[kY`k7Kn4N~2Qˆ0L‚OZp>Sy1LyKXm[`g@W~9R€,K„0M‚LYsDUt.K{DSm[ZbCTu0MzIQiIR[AL]YMRJU]JS^^Y^CTt7Ox+K{-Ly8ImOUk+G|:ImYU[FQi6Kq+Hy+Gx5JrUU`,Ix2Fp>Pga]_QTYXORTTY;Pb_PQTQUTx\cnM`}T|0O…0M3NzV_kL[uIZw)KŠLXqEWw/N†1N0M{Q[iM\qIZx+M‡EUuJWr,L†2N€-K}KUiKVlTYiV\a?K]_PRHT`AL]PKSRX^TXcHVs3Nz0HtTWg-M€/Kw)Ex?LjPR`ERj8Lq)FyUU`.Ky-Hv)Cv8JoOPaOU_a\[>Oa]NO[WZ:Ob[MOUQUO]iqvzŒŠ‹�Œ‹‹‹‹‡…ˆ„ƒ„ŒŠ‹ˆˆˆƒƒƒ†…†ŒŠŠƒ††~€‡‰†ˆ�‡‘`ug5o<f jq!wmsp, u@: Uˆ"Š2}'@z:z(|„~$;3‚rHA…'/‚,*ŠAx/~EƒH† r8w)ƒ–‡„‚�‰Š �¡¡¢¢¢¢ŸŸŸ¦¦¦ºººµµµ¶¶¶µµµ¶µµµµ¶µµµ¶¶¶µµµ¸¸¸­­­­­­¯¯¯½½½ÀÀÀºººµµµµµµµµµ¶¶µµµµ¹¹¹®®®ŸŸŸ¢¢¢¢¢¡¡¢¢¢¡¢¢¡¡¡¢¢¢¢¡ž¡¡© �§¢Ÿ¬¬°±±µÈËËÓÓÓÒÒÒÐÐÐÓÓÔÇÇÇÅÅÅÜÜÜÊÎÒ®¹Åb{œLi‘Rn”Sp–Xt˜Nm–_n„ory/M�4P€5Q�2Oƒ)I�`dnI[z]ftfio5R…1N‚5Q�6Q�(H�]dnU`pXdwcdg9R~/Nƒ5Q�7Q€&IƒQ[mT\iO\sabf@Uz/M„4P�8R�'IƒGVqX^gM\s`cgHYv,K„2M�4O�+Lƒ:Ovic]hlkYY^`OOGT`>L\_PRIT_?N^YRUNWjVYgRYl,L/Kw3Mx-Jz+EvZTZHPfSS_WV^,Iz,Fv0Iv.Hw'CxUS`PTf_XVOQYXVY8Oc\MP\WY;N_:K]S^kotyŒ‹‹ˆ†ˆƒ‡Š~‚†‡†…‰ŠŠ‹‹‹~„‰‰‹ŽŠ��‡‡†…†…‹‡ŒŽ†�gi:p@ kkitr!ou~"(ƒ3€)t2Cy%‚KL�'&ˆ)†/„'&{ 0€&Zƒ+xF ‰-‡20‡yW‹Œ…)#‹/$‡7u=�‰†‰‰ƒ£¢¡¢¡¡¡¡¡¢¢¢¢¢¢¯¯¯¶µµµ¶·´µ¶µµµ¶¶¶´´´³³³¯¯¯µµµµµµµµµ­­­µµµºººÂ¸¸¸···²´µ³³³¥¥¤¢¢¢¡¡¡¢¢¡¡¢¢¢¡¡¡¢¡ ¢¢£  £ ž¬ œ±¯®À½½ÑÒÑÇÇÆËÊÊÒÒÒÐÐÐÑÑÑÒÒÒÇÇÇÊÊÊÙÙÚ×ÖÕÒÐÌÉÉ˧°¼Zu—Vp’Yo‹€‚†hz�Zs•Ge�6T…3O�3O€4O‚]dr6P~:Ry_enXdv>Z†3Q„1Oƒ2O‚[ds9R~7P{Yan]er=W‚5Q�0N‚1N„Q[o;Ry4NwOZk\`h>W€7R€0N„0MƒLXrBUv1LyJXn_be@W8R€-L„1N‚?Rxhfe`]^UMQY^eeffFQ^_NPHS_?L]ZORPX]HR^_Z^EUs5Ny,Jz.Lx5HpPUi-H{9IlYU[ISh7Mt+Gw,Gx1JtSU`-Gv4FpPaCR`:K\?Qb^VZ�~}…‡ˆ‚‰�…‡Šƒ€…ƒ†††ˆŠˆ‡ˆ‰ˆŠŠŠŠ��’†……|…Š�ˆ�‚ƒƒr~u*n/m fw'qpl0|#3| G5†1 x00xF7…1Hz {8:{"\‡wTy*‚ x6$|IzDyG{L4}0Cz ‚%w2?}9‡„ ’™ �� ¡¡¢¢¢¢¡¡¡¡¡¡¡   ¡¤¥´¯­º¶´µ·¶²²²°°°³³³µµµµµµ¶¶¶µµµ¶¶¶³³³¯¯¯³³³¿À¿º¹·¶ª¥Ÿžž�¡¢¢¡¡¢¢¢¢¢¢¢¢¡ ¢¢£¢¡£ž›®¥¢°«ªÂÂÃËÌÌÓÓÔÓÓÓÆÆÇÉÉÉÓÓÓÐÐÐÏÏÏÚÚÚÍÍÍÈÈÈÍÍÍÆÆÆÎÏÏÖÕÔÍÌËÌË˰®ª‡�•?`ŒOm“Ur—Uq•Uq•DbŽ;W…)H‚[bp6Q�1Nƒ.L‚P`CQ`�$ˆ:„Š! †={"$x)!„— �¸§Ÿ§ žŸ¡¡ ¡¡ ¢¢£¢¡¬¢�¤��£›¡§¥ª³³³···¶¶¶µµµµµµµµµµµµ¶¶¶µµµ¹¹¹­­­¡ ¤›–œ¯¡ž¶§Ÿ°£�ž¡¡¡¡¡¡¢¡Ÿ¡¡© œ¦¡Ÿ·¯­µ¸¹ËËËÓÓÓÒÒÒÐÐÐÔÔÔÇÇÇÉÉÉÒÒÒÔÔÔÛÛÛÓÓÓÅÅÅÀÀÀÑÑÑÒÒÒÐÐÐÒÒÒÉÉÉÃÃÄÚÚÙËÍѯ¹Èi� GeŽUr˜Sp•Xs–Nn—Wi†stx2N€4O�6Q�3P‚'I‚`dmVapXdxgin7S„1N‚5Q�6Q�$F„XapYbp@Y‹[bn?Ux0Nƒ5Q€7Q�(IƒKYpX^fL[t_agEWw.M„4P�7Q�)J‚ATt\_dL\u[agaf�w¯co†vz[SZMLT[bgkjhVY_dRNOX^N_VKROU\IS]_Z^FUr4Nz-Jy/Ly2HrQUg/J{9IlXU\KRe2Is-Hw,Gw.HvRS`0Ht5GpN`ZMRPV^Y‹YaqBUv.N„4Q�6Q�)J�FVs\`dJZv\`jIYt0N…/L|Tc›uwµnr°muªlsªrx±fo­v~¥dp‰vy|]W]cVSgiijihY^c_MNMS];M_ZMRRV\;M`ZSUOWgNWmX[g/M€/Kv1My/Ky%ByWT[MQcLReZU\/Kx,Gw.Iv.Gu%CzDPeOUfaYWPPX[UX:PcTNTbUU;PcLGNndbnv|‘‘�Š‹Œ�†‹††„‹‹‹Š‰‰€…€ƒ…†‡ˆ|�†ŒŒ‹ˆ‰ˆˆ†‡�‰—`|e=z= jkprkwz)u>ww*2<=Š45x68} Z‡ }H|Bƒ6…3€3vU„'†ž—�˜•žŸ� ¡Ÿ ›š ”“ž¥�Ÿ±¥Ÿ¹¦ž¥¡ ¡¡¡Ÿ¡¡¢¢¢£¢¢ ¡¡   ¢¢¢¢¢¢¢¡¡¡¢¢¡¢¢¡  ¦¡ŸªŸ›´°¯¾¼¼ÓÓÒÃÃÂÏÎÎÑÑÑÑÑÑÑÑÑÒÒÒÄÄÄÎÎÎÜÜÜÔÔÔÇÇÇÎÎÎÂÂÂÌÌÌÓÓÓÐÐÐÑÑÑÓÓÓÆÆÆÏÏÏàààÛÛÛÉÇÇÑÒÓÄÆÆÈÉÈ´˜”­~z¬on´zz·��¶||Ã…ˆÁ„‡Å“ŽÁÀÄ«´ÀXs–To“Rl�{€ˆq~�`v“Jf�6S…3O�4P/MƒYct;S|W�0M}Sc�vwµrw³ux·uy·ku¦uxµlp²ls­rz£]f…r~‹eedcac\QRTX`ffgERaZLPPT\=N`ULRUY[IR^^[_JVq4Oz.Ky.Mz/HsQUe2Jz:IkXU]NSc1Iu.Hv,Gw,HwTT`5Jr7Go:Mg^^_SW\SNT_TURcMJRaSRN\iwu{„‚„���‚‚„‡††…‚†Š‰ˆŠŠ‰ƒ†Šˆ‰‰ŽŽŽˆ‰ˆ�„†††�Œˆ‰y‰{0v:jn l mor%muzŠ(„. y!#{'‰)$’0…#�U�{C>u61ˆ9¢¢¡¡¡¢¡¡¢¡¡¡¡¡¢¡¡¢¢¢¡¡ ¡™—ž–•Ÿ¢œŸµ¥Ÿµ¦Ÿ©¡ž�¡¡¡¢¡¡¢¡ ¢¡¨Ÿ›¨£ ´­ª·º»ÌÌÌÔÔÔÑÑÑÐÐÐÒÒÒÄÄÄÍÍÍÐÐÐÖÖÖÚÚÚÔÔÔÃÃÃÂÂÂÒÒÒÒÒÒÑÑÑÔÔÔÇÇÇÉÉÉÑÑÑÒÒÒßßß×××ËË˾½½×ÜÝËÇÆ¸ �©xt­qo·~²{zº€�Ä…‰¿�½™›¶ª¨ÑØÙÒÓÓÑÑÑÑÑÒÐÑÑÉÈÉÝÝÜÔÔÖ©·ÈuŒªCb‹Uq–Tp•Ws—Oo˜HbŠttv;S~2N�5Q�5Q‚&GƒU_q_emOa{ehn@X€/Mƒ5Q€5Q�'HƒKZtcglN_{_dlDVu/M„5Q�5Q‚,L‚=Rnpnˆpu¹tx´txµw|¸sw´uy·os°os¯os°txµuw¶cj¨z‚©fr�uyz^ZaQJOT]elkiV]c`POVXZRqst�sy»nr®os°os±nt­jt¥qt³y~¹uzµtxµtxµt|°lt­tz´kv¥lqƒcm|eeeccd_TTTU]jhgGT`/J}/My/GtRVg2Kz=KjZYbMWo2N|/Kx/My,HvPTd4Ky;IkVT]RTb/Iu.Hv,Gw+HxQRb9Np7Ip;Lf\^_TW\OMUbSS>QcONX`PN>P`[\c|ts„‰Œ‰‰ˆƒƒ………†z€‡ˆ‡‡‹‹Šˆˆ‰……††††�„‡†‰†Ž†Ž�‡‰fzr*p6mknoqp"t(~) v<�'‡2+xGI~(‚2|0`€4Š,¯¯¯£££¢¢¢¡¡¡¢¢¢¡¡¢¢¢¡¢¢¢¡¡¡¢¢¢¢¢¡¡Ÿ ˜™¡˜”žž™�º©¡¼­¨ÀÀÀËÍÎÒÒÒÓÓÓÂÃÃÎÎÎÒÒÒÏÏÏÏÏÏÙÙÙÅÅÅÐÐÐÉÉÉÊÊÊÏÏÏÔÔÔÅÅÅËËËÓÓÓÐÐÐÌÌÌÜÜÜÐÐÐÒÓÓÍÌÌÊËËÓ×ØÊÆÅº¥¡¤ql²xw³xwµ~~¼ƒ„¾}È�’¶�‹Ã½½ÍÎÍÔØØÌËËÅÄÄÕÕÕÏÏÏÎÎÎÖÖÖåååÌÌÌÝÝÝÄÄÄÉÊËÑÑÐØÖÔÅÇɵ¶¸†‡‰Qj‹Li�Tr˜Uq–Tp•EcŽP`;R{8Ov&E|UXg4O~+Jz-Fv;LnXXdBSu:Qu$E~QTb;Q{*J{-Gv7IoWT\BPk9Nr"D}LRd>Po'Gz+Dt1FrYU]GP_ZYZDSaKKVgVR@ScGITcSQN[fxy{І†ŽŽ�ˆ‰ŠŠ‰Š„‚„ŠˆŠŠŠ‰………‚���Œ‹…‡…€ƒ†‰‚Œ‡‡‰nzr(m/i! hpt'rnuuI �"c4‹$"=}-5{,|¶¶¶ººº¦¦¦   ¢¢¢¢¢¡¡¡¢¢¡¡¢¢¢¢¢¢ ¢¢ ¢¢©Ÿš£¢¤£¡¨¸¹»ËÍÌÔÔÔÑÑÑÐÐÐÒÒÒÃÃÃÏÏÏÐÐÐÖÖÖÚÚÚÓÓÓÂÂÂÃÃÃÒÒÒÑÑÑÑÑÑÓÓÓÅÅÅÊÊÊÐÐÐÓÓÓÞÞÞØØØÊÊʾ¾¾ØÞßÈĺ¤¡§uq¯tr·}}²zz»‚ƒÂƒ†À�…º–—¸¬ªÑØØÒÓÓÒÒÒÓÒÒÏÏÏÊÊÊ×××ÒÒÒæææåååÖÖÖ½½½ËËËÒÒÒÒÒÒÐÐÑÖ××ÊÉÉäãâ××פ²Åy�­AaŠUq–Uq•Wr–Pp˜C`ŒqrvAV|1N�5Q�4P‚(HƒP\rWbwJ^~cgoEZ}.Mƒ5Q€5P‚*J‚DVvgijN_|W_mgi~tzºux·sw´x~¹lv§ps±tyµru³qs³txµqu±qu´rv¶sx³txµnv¬rv°ho°u}¤kw’nruCTi?O_JZ}NWkJUrXYg0N€0Lw0Ly/Kx&BwVVbPUfIVtYZf4P~/Lx0Lx0Lx%CzOQ`TT]DPjXU\7Ns+Gw/Hv.Hv%ByKjYXbPXm0N}0Kw/My+HwNRd8LwN]FZ�2N‚-Lƒ3MyAQpYZd?Rw7Ov$E}RVf8Q})Hz1Lx;KoXXcBSt8Pv$F~MQd?Sy'I|.Hv6HoVU]DPj8Mr$D|GPgCRl&E{-Hv1GsXU]JQ^XWZGTaKLXTOUs4z±¥Ÿ¤  ž¡¢¢¢¡ ¢¢¢¢¡¥ž›«£¡±«©»½½ËÌÌÓÓÔÒÑÑÐÐÐÑÑÑÂÂÂÐÐÐÏÏÏ×××ÙÙÙÔÔÔÀÀÀÅÅÅÒÒÒÑÑÑÑÑÑÒÒÒÃÃÃÍÍÌÏÏÏÓÓÓÜÜÝØÙÙÈÈÈÀÀÀÑÑÑÑÑÑÒÑÑÓØØÄ©©³rr²}|¼„…À€ƒÂ…ˆ¹““º°®Ñ×ÖÒÓÓÒÒÒÓÒÒÌÌÌÍÍÍÕÕÕÒÒÒæææäääÖÖÖ½½½ÌÌÌÑÑÑÒÒÒÒÒÒÕÕÕÊÊÊÞÞÞÒÒÒìììéééÙÙÙ¾¾¾ÉÉÉÒÒÒÒÒÒÑÑÑÑÒÒÉÈÈßßÞÖÔÒ¡°Ä|“±@_‰Tp•Uq–Vr–Qp˜>^ŽlovHZ{0M�5Q�3P‚+J�IZugikL_|^erK\{/N…0MzWfž|}¾lr§Q_‡M]ySb�qwªmw¦v{¹uy·nr®z‚Áoe•bDIln£qu¶ls©nt¬ku¦x|ºrvµns«N]s?N\DY‚0Nƒ3N1Nƒ0M€,J}XYcQWiFTtXZf2O0Lv0Ly/Lx&CvQUeTVdDUwYZf8Q}/Lx0Lx/Ly&DxJOcXU[AOlVS\;Oq+Hx/Hu.Gv'Bx8KkQYe`[[TRVGN[9PdJOZeROCSaAHUo_]sy}Ž��ˆˆŠ���‡†‰………ˆ‡ˆŠ‰‰„€„†‰Œ‡ˆˆ‚††‡‰�Ž‹‹ˆ€‘Xya=x@ilkl uks­ Ÿ´§ µ¥žž  © �§ Ÿ¶¯­½¾¿ÎÎÏÂÁÁÓÓÓÐÐÐÒÒÒÐÐÐÐÐÐÁÁÁÓÓÓÜÜÜÓÓÓÊÊÊÊÊÊ¿¿¿ÑÑÑÑÑÑÑÑÑÑÑÑÒÒÒÃÃÃÒÒÓßßßÝÝÜÔÔÒÑÐÏÄÃÁÌÍÍÐÐÑÑÑÑÐÏÏÕÚÚȰ¯±ssÈ‹�¼|~½šœÁµ³ÄËËÊËÌÓÒÒÑÐÐÑÑÑÔÔÔÑÑÑÐÐÐéééçççÓÓÓÍÍÍÁÁÁÆÆÆÔÔÔÑÑÑÑÑÑÐÐÐÛÛÛÍÍÍïïïêêêÕÕÕÍÍÍÄÄÄÂÂÂÔÔÔÐÐÐÒÒÒÏÏÏ×××ÉÉÉçççììíæâÞÕ×Ù¬¶Åd}�Om’Qo–ly‹u~‰k{�Pj�5S…3O€5P€0NƒP^yIZw=RzZbmhkpLkXXbSYk0M~/Kw0Mx+HyLQe;Nu;IlUS]WW^.Hv-Hw-Gw*GyIPfCPk7Io@MfMU[TV[INYfRPDSbGO[cPNAO]Y`i}ts‰Š‰ˆˆˆˆ‡Šƒ‚„…ŒŒŒ‹„‡ŠŽ��‡ˆŠ�„‡†††��‡�•Ž“c}j0lB knmor•– ›–�¦žŸº¨Ÿ»®«¾¿¾ÍÏÐÒÒÒÒÒÒÁÁÁÑÑÑÑÑÑÐÐÐÐÐÐÕÕÕÄÄÄÔÔÔÈÈÈËËËÍÍÍÕÕÕÃÃÃÎÎÎÒÒÒÐÐÐÎÎÎÜÜÝÅÆÇçåáÌÎÍÁ¿ÂGXeu•ÀÁÃÒÒÐÜÛØÊËÍÍËËÚàßÛ¼¿Á€„¸��ľ½ÌÌËÖÚÛÈÆÆÈÈÈÔÕÕÏÏÏÍÍÍÚÚÚÜÜÜÓÓÓÛÛÛÇÇÇËËËÒÒÒÏÏÏÉÉÉ×××ÏÏÏÐÐÐÜÜÜçççÍÍÍÞÞÞÆÆÆÌÌÌÏÏÏÑÑÑÅÅÅÙÙÙÐÐÐÎÎÎÐÐÐæææÍÍÍãããÌËËÓÔÖÛÛÛðí㼿ǘœ©x{…dwŽVq‘On—Uq–So”Gd�8U„-MƒGYwP^w)K…1N�:Qy\erQ`qXh }¼nt¯ns°YWwnl�nr®T_L]~We�io pv¶‚w¤²{z|t§r}´ks§ru´pu±ps­ou´ln¦O^s>N]4OyFWr\`h>W7Q(J†VZi5P,L„4Ny?QpZZc?Sv2O|%E|OTg=S{'H|/Hu:JoXXdCSs7Pw%F}IOdDTv'I~/Hu7HnUT^GQh6Mt&D{BNjHSh&G|+Du1EpXU]NR\UVZKU_BL[hSOHUb>HWfQPR[ewy‚~ƒŽŽŒ‚ƒ‡ˆˆˆ‰‰Šˆ‰Š†…ˆ‹‹‰‡‡‰„†‡Š‹Šˆˆ†‹‚Ž€ƒƒz†{+q2h hk¦ž›  ¤Ÿž¦½½½ÌÌÌÓÓÓÑÑÑÑÑÑÐÐÐÂÂÂÑÑÑÏÏÏ×××ÙÙÙÕÕÕÀÀÀÆÆÆÒÒÒÑÑÑÒÒÒÒÒÒÃÃÃÎÎÎÎÎÎÕÕÕÙÙÚßÞÝÖÕÏœ¡¬uz•=s-N/Gx :n†‘©²¶ÀéæßÞÝÜÛßàű°º­¬Ñ×ÖÒÔÔÒÑÒÔÒÒÉÉÉÏÏÏÔÔÔÓÓÓååååååÕÕÕ¼¼¼ÎÎÎÑÑÑÒÒÒÔÔÔÓÓÓÍÍÍÜÜÜÒÒÒíííéééÚÚÚ½½½ËËËÐÐÐÒÒÒÒÒÒÑÑÑÉÉÉÜÜÜÍÍÍâââåååäääÍÍÍÓÓÒÞÞßããÛËËϦ§½|´or²su³`q¤Xp›Qp‘Tp•Vq–Vq•Rp˜<^�flxO^y.M‚6Q�2O‚-KƒBUplpŠpv¸}�Äie�!$MAVp{Âu}Âmq¨Q_ƒSbPaqn™¹�’�porw²ot°qu±x|¹fr²yp š{…M]u>N\5P2N€/L{]`eR^oGZz[`i1O‚3N€1N‚0M€,J|TXgGXzCSvWZf5P~0Lw0Ly/Kx(CvMSgXXcBTuVYdIYm][uz~��ŒŽ���†Œ�ƒ…ЉˆŠŠŠ†„‡x~„Љˆƒ‡†ˆ‡Œ‹ŠŠˆ‰�ˆ�a{p4v3mµ®«¿ÀÀÍÍÌÂÂÂÓÓÓÐÐÐÑÑÑÑÑÑÐÐÐÁÁÁÕÕÕÛÛÛÒÒÒËËËÈÈÈÀÀÀÒÒÒÑÑÑÑÑÑÑÑÑÑÑÑÂÂÂÓÔÕàààÙÚÚâßÙ§ªµ_k‰ CuL�1_Ž=b�C]Š;W…;q2Hws€žº¾ÅÐÏ;ÁÂÍÎÎÓÒÒÑÐÐÏÏÏÕÕÕÏÏÏÒÒÒèèèçççÔÔÔÍÍÍÀÀÀÈÈÈÔÔÔÑÑÑÐÐÐÒÒÒØØØÏÏÏïïïéééÖÖÖÎÎÎÂÂÂÄÄÄÓÓÓÑÑÑÒÒÒÐÐÐ×××ËËËéééíííØØØ×××ÌÌÌääãáâãÓÔÑŸ¡¿€‡°dmªqu³ot°ot°su´os°er¦Wq˜Rp’On—hwŒu}‰n|ŽTlŽ4S…2N€5P€/M‚GY{M[q:S�Ubšxyª_Oe�fm�s‡zc{ot²~ƒÊfm al—?Uox‹}rzmq²rt²ou´ii¥‚x�Ç¢•ɦšCVt@O]5P~4P‚2N‚U]l6NyKXkbcdJZu.O‡2N€2M�/L„S[l9OvESl[[bPXm-L~/Kw1My*GxMRg:Mu?LkWXbUZk/M~.Kx0Lx*IzHOg?Or;JlTR]ZW]1Lx,Gw.Hv*GyDOjFOg8HpAMdSZ_[Z]EMZfQOGUaBN]dPMDO[V_j{rrŒŒŠ‡ˆˆ‚ˆ�‰‡ˆy†ˆˆ‡Œ‹Š|�†…††‡…ˆ��ƒ‰Šˆ‹‡‹Ž…�h…lÍÏÐÒÒÒÏÏÐÂÂÂÒÒÒÑÑÑÏÏÏÒÒÒÔÔÔÄÄÄÖÖÖÇÇÇËËËÍÍÍÔÔÔÂÂÂÐÐÐÒÒÒÐÐÐÎÎÎÚÛÛÄÅÆèçãÊÌÌÁ¾ÂMa…6N| H€8`Ž]Š@\‰I\ˆ/]Œ3W„@W„$Hs«®»ÞÝÙÆÆÆÑÑÑÒÒÒÔÔÔååååååÔÔÔ¼¼¼ÎÎÎÏÏÏÓÓÓÕÕÕÐÐÐÏÏÏÚÚÚÓÓÓîîîèèèÙÙÙ½½½ÌÌÌÐÐÐÒÒÒÓÓÓÏÏÏËËËÚÚÚÍÍÍããããããæææÉÉÉÕÕÕÝÝÞèçãÊĘ̂©´SWp eXnciˆcdln›osªpuµpt²pt°v{·ns®ru´{¼ss°br¥Vp›Rp‘Tp”Vq—Vq•Sq—;]‘]fyUav-Lƒ7R‚1N~/L8Rƒut˜°–‘Ëž”ªzq‘aU…v˜tl¡¢’ Ã¯žhYcadvUcz¸ž”Æ ’œ|Žhq±N\r=M^K\}Q]qCW{Y_j1O‚7Q2Oƒ2O€/KzY_hV_lCX}[`i5P€3N€1N‚0M�.K|QWhWYd?SyVXg:R{0Lx-LzST`CQ]OS^YX_?SzRWjATw.Lz1Mw.Ky+Fw@Kh^WX?OmNQbERj*Hz1It-Gw*Cu3HoNXdb\]QRW]QSIS_AO_dQOIS]>K[kYY{~��Œ‹Œ�Œ…‡Š‡‰Š�‹Š~‚‰‰‹�Šˆ‰‹‹Š……„ƒ„…ÑÑÑÑÑÑÏÏÏÂÂÂÖÖÖÛÛÛÒÒÒÌÌÌÆÆÆÁÁÁÓÓÓÑÑÑÒÒÒÑÑÑÐÐÐÂÂÂÔÕÕßßß×ØØæãÝ¡¦±fn‹@tM�-_Ž@aŽE\ˆ?\‰A\‰A]ŠD\ˆ;]‹!Z‰7a•Wl¦ny­@lª­ºàßÜËËËÕÕÕèèèæææÖÖÖÌÌ̾¾¾ÉÉÉÓÓÓÑÑÑÐÐÐÔÔÔÕÕÕÒÒÒïïïèèèÖÖÖÎÎÎÁÁÁÅÅÅÔÔÔÑÑÑÑÑÑÑÑÑÕÕÕÌÌÌéééëëëÙÙÙÖÖÖÌÌÌååäààßÓÓÑ–—¦os‡X\}PTp! j^s]c…ab‚\`x^a|gj•sw­ty¹txµtw¶mv¨ty´ty¶rt³qu±dr¥YqšQp’On—cv�t}‰q~�Wn�4T†2N€5P€1MƒCV{P^n7Fv|„—˳ªÃ‘’§j]“WB¨™™Üàá¹�…µ�‚’ƒƒR_q]esr‘tf‚FXu@O\AWƒ7NxNYjcccGZx/O‡3O�5P�/MƒU]l8OxKXkbcdN[t-Nˆ2N€3N�/N…S\m:PvESl[ZaSXk.L~+JzUU^AQ`IJWROWPW_[Z]UZk0M~-Ky1Lw*IzCMhDPo;JmTS^\X[/Iv+Gx.Hv*Gx>LlLSf8JpDMdOY_\Z]BN\ePNLU_@N_dPNFNXXbnzrp†Š�‡‰Š„ƒ„…ƒ†|‚‡ƒƒ‡‹ŠŠŠŠŠ†…‡ÏÏÏÒÒÒÑÑÑÅÅÅÖÖÖÇÇÇËËËÎÎÎÓÓÓÂÂÂÑÑÑÑÑÑÐÐÐÎÎÎÛÛÛÆÆÇéèäÌÍÌ¿½ÀMb†7O|H€9`�:c�G\ˆ@[‰>]ŠE\‰@]‹=Z†"_�4\�Wo¨qp¬{x¹dt§@l§ª·çæãÑÑÒÜÜÜ×××ÊÊÊÈÈÈÓÓÓÊÊÊÍÍÍÕÕÕÐÐÐÎÎÎáááÞÞÞÓÓÓÝÝÝÉÉÉÉÉÉÑÑÑÍÍÍÈÈÈØØØÐÐÐÎÎÎÔÔÔàààÑÑÑáááÏÏÏÒÒÓÞÞÞååãÎÎÍœœ¨oq‹[]~Z]|klŠOTp! i[o]dƒ``|`f†`c�^_zaf‚dhŒps®w|¹s{³uzµru²ot°qt²su´ms¯is¦y}†jx‹]t�Nm—Tq—Ro”He�7T„1M�;Q|Ybu*N‡-FyAWƒ�¢±Ç·¶³vqâ—üÿþØ¿°Þ½§Û¼ª�jb~_ST^ptkmGYw?N[FZ�2O‚-L‚8PvHXp[ajSz(K…5Oy@QpXZe@SuTVcCR_FIXaTU=QcGLZQQYVZeIUp4O|)H{?KiMWo&I€.Hv9HmPSaLRe1Lw)Fx8KpPTd'H|)Ct0GrUUaWUYTSZQV]]ŠA\‰H]‰1\Š/[ˆ)a•_i¡yºpu¦ot³uxµcq¦?k»¾ËñðíÐÐѾ¾¾ÎÎÎÏÏÏÒÒÒÖÖÖÎÎÎÑÑÑ×××ÔÔÔíííèèèØØØ½½½ÍÍÍÏÏÏÓÓÓÓÓÓÌÌÌÍÍÍØØØÎÎÎããããããäääÇÇÇÖÖ×ÜÜÝèèäÊÊÌ£¤­eg„]_]bceƒabbg†LI_"d=0hUL[C=]Yk`a€bi�__}_a`bfi“nqªsw¶sw¶rv±mu«rv²rv³sv´ww²as¡So™Sq’Sp”Vq—Vr•Sp–;^‘Sa|[dt-K‚9Tƒ-K~+J}Jf�û¼¹•ƒêÖË·²Ç¨–±}pžcU’ov�dr_bsHYv@O\BX‚0N‚8Q2Oƒ2N~3Nx[`hU^n?U~Y_i4P�6Q€2O‚2N€0LyU]jY`j?W€Y_j9Q~2N�2N‚0M�0LzJTkida_gkONX_QR>QbHKX]QTCR_MS^ZX_>SxMUiFUt,L|2Lv,K{,Gv=Jk^WX@OlHOeJSg)Gz2It,Fw,Gv5Gn[Y__[^QSX]PSLS]?OadPONR[:M_MYgwy€‡†…ŒŒ�…„‡‚…ˆ‡‡†ÒÒÒÍÍÍÄÄÄÂÂÂÓÓÓÑÑÑÐÐÐÒÒÒÏÏÏÃÃÃ×××ÞÞÞÖÖÖÑÐÑËÌË‚˜9p!N�(^�CaŽD\‰@\‰A\‰@]ŠF\ˆ8^Œ%Y‡6c˜Sh zvµru²vy·pt²os¯z|ºdr¦@k°³ÀÔÓÑ»»¼ËËËÓÓÓÑÑÑÏÏÏÖÖÖÒÒÒÕÕÕïïïæææØØØÎÎο¿¿ÇÇÇÓÓÓÑÑÑÑÑÑÓÓÓÓÓÓÏÏÏééééééÜÜÛÕÕÕÇÇÈäääááßÓÓÒ™š¨tvŽWY|_a€ab‚^c|_b€[c�of}O36!c;,}TTcBK]6-^IQ`T`^g‰`c�eh‡^`}^`}il˜os¨{€Àlw¨rv´w|¸tyµvy¹t|±mr¬dr¥YpšQp‘Nn—^t‘r|‰s‹]pŒ5T†2N6Q�2N�:OzKZmN]Q`G[},M†5P€4Q�1NƒU]l8OwOZjccdJZv-Nˆ3O€6Q�-L…S\m;QvJWl`bdQ\r-M‡2N�4N€.M…KVpif`fccZQT_\_OZdDIX`SSASbFJXTPUQX_ZZ^W[k1N~-Ky1Lw+J{>LkHRl:JnTR]^X[3Mv)Gy/Hv+Gx8LoLRc6IpHNbLW_^[\@N^dONQU]=P`@P_7I[Xbmxqq�Ž��…Š}„ŠËËËÎÎÎÑÑÑÂÂÂÓÓÓÑÑÑÐÐÐÐÐÐØØØÉÉÉßÞÞÉÈÈÎÐÐÊÌÍÛØÕ)f“2Z‰:d‘J]‰A\Š>]ŠE\‰?]Š?[‡ _�5]ŠPo�uq¯tw²gs¤qu³ns®ou°mt´oq²bo¦Bm£¥²ÞÝÙÆÆÆÏÏÏÔÔÔÐÐÐÎÎÎâââÙÙÙØØØÜÜÜËËËÇÇÇÒÒÒËËËËËË×××ÐÐÐÍÍÍÖÖÖÛÛÛÕÕÕàààÒÒÒÐÐÑààßäääÑÐΚš§moˆ[]~`cƒ_d{`c�bf…ac„if‚lZhjUYN46"d<-[^aAG`BI_<<^=<\B@_Zkae…cg‰be„^_yehˆhk’qs°ns°x}»rv²pt±ru´w{¸tuµms®hs§w}ˆmzŠau�Pn–Sp—Rn”Hf�6T„2N�6P~^et+Nˆ/P…IOk]išs~Ãht§xz·sw³jo®BUr@O]9R}N]uagr;Vƒ5Q�/M�X_l5P€+K‚9PvGWp[ak=V5Q‚*K†T\m=S|)Kƒ7OxDUq[ajCX|3Pƒ)J…IUpdfp[SVKS^dffhii[TX`RSBTbBIZgYTBTaDL\SQXTYfKVn2O}+Iz:IlPWl'I�-Hw:IlNRbOTd/Hv+Gx3IrSVb'Fz*Fw1IrSTcZVXQRZSV\:OaAQ`CRa;K\^MM]`ety}‹ŒŽÒÒÒÒÒÒÎÎÎÂÂÂÑÑÑÍÍÍ×××ÙÙÙÞÞÞ¿¾¾ÊÊÊÓØØÊÆÅ»¦£¡kfÂÀ¿¨¶Â-Kx=Zˆ;YƒH]‹2\ˆ.\Œ&_Ž_k¡w|ºpt§mw¬ot²uz´sw³y€¿ks¤�x¯|†¬ew¢@m¬¯¼áàÜÊÊÊÔÔÔÕÕÕÖÖÖíííèèèÖÖÖ½½½ÎÎÎÎÎÎÓÓÓÓÓÓÉÉÉÐÐÐÖÖÖÎÎÎãããäääæææÆÆÆ×Ö×ÛÛÜêêçÈÈË¢¤ªdfƒ_a€X]xbe‚bc�]b�ef…ee€p\keQUaKIcONL36#d<-~Y\bBH_?BaAF_@GZ71W44]@=d`v_`|bh�ab_a}_bah‰ks¤z}½os³v{¶tx´ps²lt¨ms«{y´ix¦Pn—Sn�Sm�Wo“Wr•Sp–=_’K\}`fs.L�9R�-O„4Pƒ9Qcl rx´|}¼eo¦CVu@P\2O2N‚6NzcgmTaw8U‰[`h4O~6Q�2O‚2N3NwW^jW`l;T�X^j8Q5Q�3P‚1N�2MwP[m]ahOaCmMH ‹‚ŒwuaCCW1)^HO]R^`g‹`d…]bz_abcek‘jn¤z€Àtx¶ms«mtªpt²or²lt©pt­d|²Y{ªLw Nn™[s‘p{‰t~Šbs‹5T†1N€6Q€3O€7R‚CX}=TˆYežeq�ASh@P_6P}4P�1N‚]dp7P~DX‚Xau?W„/Nƒ5P€5Q�.M…U]m;QvNYjbccM[t,Nˆ4O€6Q€,L…Q[o?RtJXm]`_uu£cl°ryŸgq�jgkS]jed_gfe\RUa]\R\dAIZ`RSDSaDKZRLTQX`ZZ]Y\i2N}+Kz1Mv,Kz9IoLSi:JoTR]_YZ4Jt(Ez/Hu,Hw4JsPRb6IpNQbEQ^SU[AP_`NNUV\;Na_NOÐÐÐÑÑÑÖÖÖËËËßÞÞÊÉÉÍÏÏÌÍÍÓÔÔ¬�‹¯�~ªmj¶}}·€€³vwɾ»¹ÄÑ&Cv5Gxjv¶Nl¥wr®wy¸mw«lsªru²x}¹ru´v|½jmœfeukdbziwps¢„u¡cl‹Ap¨«·íìéÒÓÓÜÜÜÙÙÙÌÌÌÆÆÆÓÓÓÉÉÉÍÍÍÖÖÖÏÏÏÎÎÎ×××ÖÖÖÚÚÚÞÞÞÔÔÔÎÎÐááàààÝÓÕÕ˜ˆ‰~¥fk¦ci‹`b|_b`b‚]c€gb~l[jfQU`KJ^KKaMMaMM`LLePPM46#d;,~Y\bBH_?CcBE�fY‰rry]O’j_†gea@>\97\AD[Va`e‡`b€`c�]ayac‚hj’os­ou°nu­ru²u|¸qv¶mr²p)Kw#7Š63ww�k|Ž`v‘Rl“Sn•Ro•He�6T„3O€3O�H\…0M-Kz?U‹9MfAQ]7U„3R†0N‚_fq5P�.L6Q‚@V€J]…8T†5P�.MƒV^l9R~*Jƒ9QvGWoZ`l?V}3Qƒ*K…PZoAUy)K…4Ntfm¡wz¸uyºgn¨q{¨it†quYPTKQ\beggihYVZaQQDSaAKZaRSDS`AM]UQWRYgMVm1N},Jy5HnSXi(I�+Gwj¿ÃÐõôñÑÒÒ¿¿¿ÍÍÍÎÎÎÓÓÓÔÔÔÇÇÇÓÓÓÔÔÔÏÏÏáááæææäääÆÆÆØØÙÛÛÛççàÉÇË´µÍCGj8sq­y¿uy²iq¬gh�ddoZjcPTbKJ^KKaMMaMM`MMaML`LLePPM46"d<-{SP^>D_?CbBFeDGX79Y79cA>xO?štn|\VeA?\=<`_}be„beƒ_b€be‚`b}`b�fg‘or­pt±t{¼l?b~–­.ÆO%Ïd3ŸeVWl�SyœSvœVm‘Wr•Sp–?a’BY‚Q`�1N€7Sƒ0N3O�0LzP_€Vcw@X�^eq0Oƒ7Q€2O€3O€1M^eoZct5SŠY_i5P~6Q�2O‚1N€5NvR\m[aj8SƒV]lC^>EY6+ŠcXŸ}{nMK][xadƒ`a€]b|^b}`e€ac‚_a^_zgr¢mJthe+ ¾Q)Íg:Èb7É^3Ïf6Ö^*~BQVWyO©Nn˜Wp’ly‹t}‰hv‰6U†1M€5O�5Q�3NƒFZƒ>Tx[bolmkE\�,Nˆ4O�6Q€.Mƒ]dp:R|BX„YbsL\z+M†4O€7Q€-M…T^n>RtNZlbcdP]r-Nˆ/M~dl¦rt²qv²sw´qw°qx¯vy·fn­nv�ow�\\jmrsca^hgf_UW]VZS\d?J[_PRGT`BL\TMSRY`[Y]]\e5O}*J{2Mw.Lz3HqOSf9JoTR\_YY5Kr'Ez/Hu.Hw/HvRS`7JpOP`GT`ËÌÍÎÐÐÑÒÒ«‘Œ¯�~©lj·~~µ~µ{{È‰Ž¼|~¾›œ¿³±ÎÔÔÓÕÖÊÈŨ±¾*Fy/Ftlv¨tw¶os°ps°mv²eiŠma]tjqusšyz»px¸ux¶ty´mw©rvµmu§bq¤Bm¡¤±ÝÜÙÅÅÆÏÏÏÔÔÔÐÐÐÍÍÍÙÙÙÓÓÓÞÞÞÝÝÝÕÕÖÍÍÎââáààÞÒÑÍ£¦Â}€¯nr·nvªz~¾;?c7}»tq¦n_wgQS^JE_LKaMMaMMaMM`LMaMMaMMaMMaMM`LLePPM46"d<-Z:8kLTqPXnMU`@E_?C_?CaAEa@D`AG}XTŽeeiHM_^ycf…cdƒcd„ae€_dbdƒbeƒbdƒ`e�a[xkCS¯H"Ðd5Éa3Ïe7º;‰6-@st,:ro|n‚’hz�To“Qn–Ro”GeŽ6T…4O€/L�G[…2Oƒ+K‚AUxQ^s^hv;W„2Q†.Mƒ^er9R€-L6Q‚L\u_gs>W�2Oƒ-M„T]n=T{)Jƒ9QwHXnYan=Txer°wz·x|¸rv³y¸ks©os±rv²{~Àkqªq~°hv�aj~^TVKNX^dgijhYX]`OOGT`>K\dURMW^9McAOmNUjOWk/M}-Ky1GqTWg*K�*Gw>JjKQdPSa0Lx,Gw,HvVV`,Hx(Ex1IqÏÎͶž™©wt±vt²xw¶€€¹€�Á‚ÄŠŽµŒ‹Ä¾¾ËÍÌÔØÙÑÏÐÏÏÐÍËȱ¹Ç)Ex0Fvnu­qt²wz·jv±~q‘nb_git~~Áir³tw³z}¹os°x~¹nt­pt²qu°ds¦@l¬¯¼ÞÝÙÄÄÄÕÕÕÒÒÒÑÑÑàààèèèáááÇÇÇ×רÛÜÛççâÌÊϨª½sw¯v{¸ns´~‚¼ru³ƒ†Ë:>a7vqŸbQWbJE^LKaMNaMM`MMaMMaMMaMMaMMaMMaMMaMM`LLePPM46"d<-vNL^?G_;2eCBuTZiJQcCI]=?`@DaADiGKcBD\QwQXj.M4Mu*I{0Hu8HmYV[HRg6KqSU`,Jz2It,Hx¤pk±wvµzz±zy½„†¿~�Ã†Š»“”¾µ´ÁÅÅÓÔÔÒÒÒÑÐÐÐÐÐ×רÐÎË´½Ê(Dw0Fvsw´uy¶sw³mtµ…x¨‰np^\_di”uv®pyµwz¶qu²os°v{¸rx³xw¹o{°Alª­ºáàÝÊÊÊ×××çççääääääÍÍÍÔÔÔààâããÜÌÌϤ¦ºt{ªqw¶pu´pt±rv²pt±mq­x€º;>b7iQQ^KI`LMaMMaMM`LLaMMaMMaMMaMMaMMaMMaMMaMM`LLePPM46#c;,Z]bBH^?C^>?Z7-lJKoNQmNXbAE]=@_?C`@Ea@Da`{_e€cf…`b�`b‚df…`c�_c}df…ab€^c…hUg=""`b{f2BB+u#²5 y…„…Šm:M^ZxN}§No™Uo“hxŒr|‰nyˆ8V†0M€5O€5Q�-Kƒ\cp@Uw[bpllkH]€+Nˆ3P‚7R€*J„YbrBVwV`shhfO]w+M‡3O�8Q€,M†IWl‡ƒ–©Ÿ¬x´os°qu²mu¬nt­qu²vz¸rv´sx´swµpw¬ow³irŸfq‘]YdS\ibb`hig`XY]VX[_a=Nf1M~-Ky5HqOVi=NqVVb_]d6P|)I{2Lv/My/FtQSd:JpTR]`YY8Mq&Ez/Hu·~~µ}}¶}}ȉ�½|~Àœž¾±¯ÏÖÖÔÕÕÁÁÁÑÑÑÑÑÑÐÐÐÍÍÍÜÝÝÕÓÐÀÈÕ'Cv1Gwot±os°ux¶ou¬fsª€u«~v•xaYbdofh~v}¿rw¶rv³{»vvµ[i @`Š:j¤¨µåäàÍÎÎâââÜÜÜ×ÖÖËËËããâààÞÒÒÍž ¼„‡·eh¯lt©w|·tx´os°pt±pt±mq­w€¹;?b6jSU_LLaLL`MMaMMaMMaMMaMMaMMaMMaMMaMMaMMaMM`LLePPM46"d<-‚]^aAG`?D`@D`AJX40Z86jF@pPYnOV_@D_?C`?Bde~_e€df…_a€ce„de…^a_c~df…ab�^a€he�<*0' !.ECWy%1µ.¿P(„…††…Š„o1Bpjxm„•kzŒWq’Qn–Ro”GdŽ7U…4O.L�\dq6Q‚*J‚BVyQ^r]hv=W„2Q†-Mƒ[cr>U'Iƒ>T{O]s]ftAX0O„.M…IUl††œÂÀ¹–ާgm²ru±mt«kt¬quµt|°ow¬twµvy¸nw¯sx²¤¤Á–�µ®µ»`k†rv~YRYMNU^dh\`b>Oe/M€,Jy4HpSXl(H+GvAMjMTkOWk0M}-Ly/EsTWe-K€)Fy?KiJPePSb1Kw¸~~Â…Ç‹·ŽŽÄ½½ËÍÌÕÙÚÒÐÐÐÏÏÄÄÄØØØÍÍÍ×××áááéêêÏÍÊ¢ª·*Gy0Funs®rv³os°pu±ot­lu²|~½zz³‡rŠlbce_dji‹x{ºiu¬3U‚3[VuŽ¿ÂÇÕÖÙììëÛÛÛÉÈÈÕÕ×ÛÜÝåççÌÌͤ¦»vy°nr±sz·ru°pu±rv³pt±rv³uz¶vz¸kv¤zÀ;?b7jSU_LLaLLaMMaMMaMMaMMaMMaMMaMMaMMaMMaMMaMM`LLePPM46#d<-…``bBH`@D_?DbCB}cXoSTV66\82fDAuT\iIQcBGa_|bd„`b�_a€be‚ce„_a€ac‚ac‚`b�bd‚dgˆPVpDN`MNidd‚io�Y_~aQnw"†………†„…‰‹ '+Pj“Tq—SxžVo“Xs—So”Dd‘4Q„chp5P7R‚/Nƒ2N€=RwZcrL_„8U„]dr9R6P€1N‚/M�OeDTe=V…DRlYZb\\e3N}*J{3Mv.Lz0GtQUfa7jSU_LLaLLaMMaMMaMMaMMaMMaMMaLL`MMaLL`LL`LM`LLjRPR54%j?/‡a`bAG]>BdBGxSPY::V1,}VP‰bQ�lkiLLW51\95ec�`e�^a}ce„`b‚ce…`c�^b|ac‚_b€]b|ab�_a€_a�Zbƒk`xhZm[b~bhŠd[z„…†……†…†……‡x‡t[ugz™myƒoz‰\s‘Po™So•GcŽ8U†4O-K‚Zcr:S€(I‚BUyR^q[gx@Y‚0Q‡-MƒXbtCX|'H„>Sx\g’AZ>rL>�i]�mlcECa_|_c�_beh†_b€`c�dg…]bz]b}ab�ae€`e…beƒcbwcsŒhstQYnUdbLXb;1– ‚…‡†…†……„ˆt‹™AIq»|}¥Nn—So–Tq“Up–Xs–Ro”Fe‘0O…`eq:R}5Q‚0Nƒ0M�?SwWbr^gu5T†Zcs>U}5P‚-L~bk©™šŸlvƒDWvXb‡st„¤£ ³³±ÖÕÔÏÏÏÐÑÒÓÓÓÄÄÄÌÌÌÑÑÑÑÑÑÓÓÓÜÜÜÊÊÊ¿¿ÀÔÓÑ› ®=McDSe?X†1N�4O€+Lƒ5NxARpXZeDTs7NzSYj.N4Mu*J|1ItB`@DbBG`@FY:<{XPžuusRT[Zweh‡bdƒ`b‚`d€]b|`b‚`b�eg„_d…bd„gb}}cs�gr�hsŒhsyX`ˆae^@GoF?ÁJ&€y …‡……†…‡u Š’GPizÂnr­lu¥dq¥Xp™Rp’Pn•Sp—bw�lxŠw}…=X…0M€5P€7R�)K…YcrFXtWarlljO`},N‰,K~t}¨±¯¯ªª§¯°°iu…Xh‡L[{˜›¦ÊÊËÞÝÚÏÏÏÒÒÒÅÄÄËËË×××ÙÙÙÔÔÔËË˾¾¾ÇÇÈÝÜÙ¡¦´=LbBSgK]‚4O€,L…5N/M„4N~SYi@QqYZc^\d5P})I{2Lv/Ly+EvRUeMb?QfCVxR^oM\v/O†/Lƒ7O|U[l*J‚0M}ITjMVkLVm/L|/Lx.FsTWh.K)EvCNkÖÖÖâââêêêÂÂÂÌÌÌÇÇÇÒÒÒÓÓÓÕÕÕÆÆÆÛÛÛÍÍÍÝÝÝçççëìíÏÍʤ¬º*Fy/Fvwxµ]k£<[ˆ(S|_~—¶¼Ãåâáú÷öÎÏÐÏÏÏÐÐÐàààääãÓÑΈ”©H`ˆ6k+>q->p-`)Z/` 6j )`(Q>=jnb†qw¸os­nt¬qu²rw³rv³w|¸w|¸qu²ns¯sx²{Á;>b6jSU_LL`LLaMM`LL^LMdNMbMLdHH,.D"EM J?88B@@?@7&VBOeEIeCF_?BZU{4P‚1Oƒ.L�CVwMZn§¨«»¹¶¤¤¥’�–¶¶·¬««ª¨¤·»½�‹˜8Jmit�›¡°ÔÓÑÅÆÅÏÏÎËËËÓÓÓÓÓÓÆÆÆÇÇÈÛÚמ£±>Nc?Pc-L‚9QvEVo\bjBW|:RT\l/N„5O€+Lƒ5MyDRlQYob6jRT^LKaKK^KLaMMiOLWEH:2BII!M<8698;8 0<;?!J, .Y?IbEMjEE]>B_?C^_tbd„aa€ag†_a€gb~}brŒgs�is�htŒhu�htŽiuŽitŽiuŒgsxWa†ckdEH_?CdDB’sk«V>³M"ÃI%šn q€{m�”FOiz¿st¯qv²mt«u{µqv±in²˜�¢Îºµˆw”PoœSo’Nm–Rq˜_u’gw‹{~„AZ…/M�4P€8S�'I†R^sM^}Œ•¦Ÿ¡ ¦ ¡³²µ–˜—šš›ÙØ×ÙØÖÕÕÕdp‚Vf…L[z­±·ÌÌÎÝÜÛÐÐÏÑÑÒÅÅÅÇÈÈãâߤª¸b6iRT^KL_LMkPLYDG92DENID>98:9:,#@ISc54=@CD+-%/G8GpLPa>Aae�`d‚[a‚jayzdvŽfp�iu�ht�iu�htŽitŽiu�ht�ht�ht�hrwVb‰fdiJA[`7mTUaMLdHG+.E"ENI@69A@:555_dr’•šÁ¾ºkov8AS28>< JE/#(K>Fqv©sl•cq‰fr�hr�iu�htŽiu�it�htŽiu�ht‘lv�ju‘kv‹frzW`‘mvhJN\C^>DbAD`BJR:›€€©!�CLs…Ésu¯z»vy¸wz¸pt±rv´ov³Ÿ¡¥ÉÌÂ|¬ŸŸµ¹¶¯Ÿ›—Sq•Mm–Ro”Uq–Yt—Rn”Ge�,OˆU_sEXz3Q„0M�(H{Qh�ep�¡ŸœÏÎÍÌÌËÉÊËÐÐÑ×Ö×ÕÒγ³µ””šCKbv}Œž¤±ÞÝÛÄÃÄÙ×Ô–œ«=Mc?RhN]|AW|9PT]m0O„7Q€+L‚:QwFVnXalDYz4P‚W]j0Oƒ4O€,L‚4NyDSmSXiÑÑÑÑÑÑÙÙÙÉÉÉçççâââèèèÞÞÞÅÅÅÀÀÀÎÎÎÔÔÔÒÒÒÐÐÐÙÙÙÇÇÇââáëéæïíëáâãÇÇÈØØÙÚÚÜìëéÂÅÇ‹”£4e 3g%2i4Ky.Jv.S{1d#Q'Y&V)Z%Y J+XQJeRO`9^&=p+i%UP^“vx¶ot°pu±sw´svµnt­v{¶sw´pt±ps®�†É:@h4bKP70A GI M<96989: ="DJVj¤£¤¹¹¸ÆÆÄÓÔÕ¢¡Ÿ‡‡†wxz'5L ;>@I%T$P02dP]‹gt—nxŒhuŠfrŽit‘lv�ht�ju‘lv�ku‘lv’mw’mw�kvsU]ŽhmoTWhKRaAF]=@bBFa@CdBF[?G]?=ˆ`X¦P<¸U-®L0¦B-œB=st°pt±qu²rv³pu±pv®pt°qu²pu²¢ §°°«‚…«°±´Á¼½¿®®®�š§Xq”Pm“Lk“Rp˜]t”bt�}~‚F^„.L�4P€:T‚#D€JYtP`w¡«»ÌÍÎãàÛÎÎÏÏÐÑÀÁÁÔÕÕÛØ×ÕÖ×{y^g~bgw¡§³ÜÚÖ §¹7IaFUf@W‚IWm_af\aj1P„/N„8Q1O‚2M€X^hDVq^agacg4P�,L…4N€2N�.MƒVZgÏÏÏÒÒÒàààÎÎÎìììÚÚÚÉÉÉÈÈÈÑÑÑÃÃÃÖÖÖÐÐÐÑÑÑÍÍÍÙÙÙÌÌÌêêêÞÞßÎÎÏÑÑÑáááêéæÓÑÍ�šš"@gU0d18m/DtIyL}'Ny*\(Y)Z'ZM*H>Gnrp�u~½yz±dd|4D`4O*Dbko¡mt¬sw³w|¸uy¶ux·s|¯pw¯x|ºnq­x€Á……Ã;6I9%FM KHA;789892+¢£¤Á¿½ÀÀ¿¼¼¼ÆÆÆ¹¹¹££¤���“““•’Žmpv6FFI#Q%U%S, ([JZŒjs–myŒht�htŒgs“nw“nw’mv“nw–qy•pw–qxmT[c>7\94xTPrQXrQX[zShŽ™£³ÔÔÒâßÜÂÃÄÛÛÛÙÙÚÔÓÓÏÏÏÇÿz~Œ\_l`kƒ�–§9KdDTe?W‡-K~4OyR[hO\sIZx.O†1O‚7P}V]m,K�1M{OZjP\pL[w1P….Lƒ5PW\jÝÝÝçççëëëÃÃÃÏÏÏÅÅÅÒÒÒÓÓÓÏÏÏÅÅÅÛÛÛÍÍÍÓÓÓÛÛÛóóóËËËÕÕÕÍÍÎââáßßÝ××ÓesˆVPnOIM2[*_1e1>pIyL|N~%Dt!O$S P&FHKnig•|~ºsx»sw³pt²rx½urŸpmŒkp£tw¸lt¨mq®x|¹txµv{·rv´txµos¯sxºog‡/;^5!: #GF;@IGA<8:24BY~„Ž¥§¨´´´¾¾¾ÃÃúººªªª©©©¨©©ª©©�ž�'8S3:@E J(Y+_.b(V3 $%XK[’kt‘kx‘ku“ox•px–qx–qy•px–qx”ow}Yb~Zb]>BX61fC>mID}\diIP_@D_?B_?C[dDK^=>\;=b>4qOQ|Y]iIQcCH\<>aCJ]8.bMXm{µlq©uy¶uy·pt±vy·uz´mr­v{´rw¹ps‚¾¾»­®®°°°¼¼¼¬¬¬™™™¸¸¸±°²›™œ²³³ºº»•–˜  ¢— ¬Wq”Qn“Mk”Rp˜[t”]rŽ|~�L`ƒ-L�5P€BE@D#A R*kwjk v h R) (L@$$XL^™ty›t|—qx’nv}[c�^e[;>bAF^@?…e[­Ÿ˜…mjaCCU2/`>;uNH€^iqG>dOZq¼hqžqt³mu¨t{³sw·juªms¬™š¶½¾Åœ›—»»¼¦¦¦•••¿¿¿µµµžžž´µ´²°³›™�±±°ººº•••¢¢¢»»»œœ�£¡ž½»¸ž™’Yq�Ij—Sp”Tp•Yt—Ro”He�/PˆGWwQ^v0O„3O�>uYm’–¢µáÞÚÇÇÇÚØÒŒ•«7JdAQd+JƒAUxP]sZduAW7RW^k0O„6Q�+K�;QuKXlS^pEYz.M†X^j2P‚7Q�,L�ÑÑÑÒÒÒÕÕÕÉÉÉàààÛÛÛéééáááÌÌÌ×Ö×ÝÝÝèééËÊËŸœœkd_rU^)47N{�Ámp¬w{¹uw²3G^"Q,^ -a4@q*HzC^‰5T|9Lkmsžrx´x|¹qx°w{¸pu±qu²z»os°pt±ns¯ps³ju¦ms«rx²uzµnr¯w{¸wz¸nr¯nu­nu®pt²nw®qz°jp°Xfœ Gjrw°¯¬§§ª§¦§ªª««««§§¨¤¤¦°°°—”’$>;D#K�“˜ÎÎÎÙ×Ó¾¼º¼º¸®­«¬­®ª©¨:DW0:78<96fwmimmiot nS(B5*bOXŽlxœsy|[c€^e\<@^>CqMMŠg[s[\sO=šrm`ZfFGS44e@;e=1cMXs{Âqv­w|µtw¸qu´txµ�¡º¶¶ºÈÇÃÕÔÓÇÇȤ¤¤›››¾¾¾µ´µž�ž±±±°°±š™š¶¶¶»»»•••£££ºººžžž–——»¼½©ªª‘�—˜ ¬Wq•Rn”Ml”Sq™Zt–Xo�z}�Sd�-K‚5O€;V…%Dz:T�Uh‹– ®ßÝØž¥¶4G`@Rf7R‚.Mƒ6Pafk?V‚O_�X`n0O„1O€8R€2O‚0N�Z_gGWq\ah`bg5P�.N„6Q€ÒÒÒÏÏÏÖÖÖÐÐÐëëëäääËËËÔÔÔÜÜÜçéèÊÉÊ�šœaRZfNSXUSv[b5),6;Tx~¼pt°uz·qu¯7IbN+_-@s,H|2Lo#6f!T"QiSkty´ty¶qu³mu«ps±pu±v{·os°sx´rv´pv¯nt¬pt±qt³ku¦ms¬swµuy¶ns®jt¥qt³sx´qt²nr¯wz¸uxµqv·ffŠ—–�§¦¤±²¯š›™ŒŒ�©©¦¶²®š›—DIl;57=<)>\~„�‡�˜–›¤�”Ÿ†‚~MQZ9?8886Csikmllmljnql>%*B1*_KX\g‰afW9W….N…1N‚8Q~U]n.K€4NyS\iP]qGYz2O„ÒÒÒÝÝÝïïïÈÈÈ×××ÌËÌäääàááÙÙÙ‘Œ�h`fC8BXJSpT\iVZlWb1'&55V~‚Æsv²nr°sv°/DZ.^ 5n&;h?Pv_j™UU…77XMDBOy|¸mq°z€ºlu¨ps±pt±os±pt²txµuy·u}³krªsv´uyµps³rv´uy¶os¯qu²qu³ot°uy·nu­ks©oy¬ot¯pt°qv¶xz¤…‡•„|’fcnppjrv‡MZs2O49=<88?@:,,  ;9:4 AslkllmlmmllkxcJ("=5 )%UFYnIK`?Ca@D_@DaBF`@DaAGZ;@]:-•niœ{y`;0aKUqzÄqt­™œ¹¾¾ÅÒÒËÒÒÓÒÒÒÎÎÎÃÃÃÒÒÒÏÏÏËËË£££œœœÀÀÀ´µ´�žž¼¼¼µ´µš™š¬­¬»»»•••¢¢¢¾¾¾ªªª¡¡¡ÝÝݼ¼¼½½½‡‡‡|}~¹·¶¹·µ¹³¬l€›@b�To•Tp•Yt—So•FcŽ4T†8R‚DY„2P�1M€(G}6Nu8OrQb‚?X‚9S€Zcr/Mƒ6Q�.L8RBW€VbvDZ}2P‚Y_j2Oƒ5Q‚,L�9QwNYjP]rìììÞÞÞÐÐÐÕÔÕÞÞÞææåÐÎÌž—š3,.C8>YDKlLQfGLkHMpIPH78%-gq¡ltªnw©ps²vyµVe—)[;Ikcl or©x{¾xzµuq©aV{ig�my¬qt²sv´ps²uz¶tx¶u|³kt¦ps±pt°svµqt³pt°twµis¥mtªnxªqu³ot°pt±pt±os±pu°nt®mt«v{·pt±pt¯mqµpt®hg§nm|kge-5O0; $M JHHA<7<E"H=A7) 75:6,YmpmklmlllmmiovQ@4 &ZCPbCIgDF^>A_@EaAD`@DfGLˆ^Z~Z_\8/bMY §Ë³²·ÊÉÃÓÓÒÑÑÒÐÐÐÒÒÒÏÏÏÂÂÂÓÓÓÒÒÒÌÌÌ£££›››¿¿¿µµµ���¾¾¾¸¸¸˜˜˜«««ººº“““¦¦§ÎÎι¹¹²²²©©©½½¼ÉÉɯ®¯¿¾»ÐÒÎØÔÕÜÜÝÎÑÔ¹ÁÌYs—Sp•Mk’Sq˜Zt—Un‘uz‚Wg‚-L�4P�8Sƒ1Nƒ6P„K\~Q_sfio_fs.O‡0N‚7R€1O‚3N}dgkAW~L^„[am2Pƒ1O€8R�3O�,L‚[_gÉÉÉÖÖÖÜÛÛêëéÉÇÇž�¢xal7)1QDH`;#cF4gG5jL:lO799DB<>9)0?8:;-%SjqklmmlllmjisJ5%T,! 1T=HeGOgCC]>BaAEa@DcBG_AFU0,‚k\ÚÞßÎÍÊÂÂÄÓÓÔÐÐÐÑÑÑÑÑÑÌÌÌÅÅÅÚÚÚÓÓÓËËË£££œœœÀÀÀµµµžžž¾½¾···•’˜±°±¿À¿©§ª¬«­×××ÆÆÆ¸¸¸€€���‘¶¶µÀÆÄž¡®~t�‰ƒŒÝÞÝÖÔÓÈÈÇØ×Õ•¢³g~œWmŠiv‡{€‰Ys”Vr•DbŽ9V…1N€2M:R‚EZ„.L€:Ry_doRbyE\‚.O†0NƒV…/O…0N‚7R€W^mäååâããÓÕבޓgakD)&S6+=#)O-eK;ƒ‹��‘“¥¨ª°³³´»Àˆyi]H]~‰Ìks¤nr°uz·nu­mtªuy¸tx¶u}²krªwz¹w{·qv´x¹kt§ps²jt¦qv²twµos°os±qt²txµuy·u}³kr©wz¹w|¸rv´y¹kt§or±uz·w|¸rw³y~ºrv³{€¼uy¶uy¶os°uz¶tyµw{¸qz­‘”¥�ƒ¦€‚ž|Åqx²;Dt A.A#O)\$QHC??@GG@=>6 :89:</!Lnnlmmmnmnpj3 *; F K--#,G9IqLO`?B`@D^>BcEJS.+ŒtdÞâåÉÈÈÄÄÃÓÓÓÐÐÐÏÏÏÖÖÖ×××ÁÁÁÎÎÎÆÆÆËËË£££œœœ¿¿¿µµµ›››ººº»»»––˜ÛÚÛÌÌÌÂç§§ŒŒŒ¹¹¹ÆÆÆ¸·¸­¬¯««©“~ˆ02Š�%5xÐÏÌÉÊÊÒÒÒÓÓÓÉÈÆÕÔÒ¶±ªs„™<_ŽSp•Tp•Xs—Tp•EcŽ6U†0L‚EYƒ2O�4Pƒ)J‚DVwU_qVdzAYƒ3Pƒ^dq1N‚5Q�.L8QCX�R`yH[{/N„Y_iÎÌÊ’‹�dJh D3"O0h+^%T!K"MF<G J KC7:89979 6Z^d�•ŽjpjosofjggZT>>\. B545=464:B#K-/Y?IeIS]3-‡qaÛßâÈÇÆÆÆÆÚÚÚÕÕÕÈÈÈÊÊÊÍÍÍÃÃÃÔÔÔÏÏÏËËË¢¢¢���ÅÅż¼¼¤¤¤ÛÛÛÐÐÐÎÎΙ—›�‚¯­°¿ÁÀ¿Â½½½ÀÀÀÑÑѪªªÆÆÆÈÌÌÎÎÏ»º¾ÊÊËÒÒÑÒÒÒÎÎÎØØØÊÊÊâââåååÜÛÚËÊÉÓÓÒ™¥µe~�Wn�dsˆ}‚ˆ]u“Wr•Eb�9U…1N€2N€Qƒ(Ytsr‰‰‰˜˜˜¤¤¤­¯±}vmY:2oy¸wz³pv±qt³z~»pt±vz·rx²qu²or°vz¸tyµw{¸lr«rw²x|ºjs¥nw«rv³pu±txµqu²qu²y}ºrv´tw¶vz·x}¸nt­rv³pt±ou¯ru³ltªqu³rv³ou®nr¯pu±rtµpt±qu³rv´fr uz¶txµ�’¦�„§‡‰§pu¹x}·mr­tw¶z~»os°w|¸pu¯mr®ux¶{~¾rw²7Fu <<O ,[8c8Ir>>v6Am")OD@DF E-jr{ÆÃ¾»º¸¿¾»ÅÄÁÁÀ¾¸¹º¾¾¿²²³º»¼¹¹º¹¹¹¿¾¾··¸··¸¹º»¸¹º¸¹¹¼º·¹·µº¹¶œ—•&+@6;@"L3 '0?¼º·ÕÕÖÏÏÏÑÑÑÑÑÑÌÌÌÉÉÉáááÖÖÖàààÑÑÑÀÀÀ………¥¥¥ÁÁÁ»»»´³³³³³¸´µ·ª­¶¸¸ÆÇÇÍÐÏÓÒÓÂÂÂÐÐÐÑÑÑÒÒÒÎÎÎØØØÉÉÉäääççç×××ÅÅÅÏÏÏÀÀÀÐÐÐÒÒÒÑÑÑÍÍÍÜÜÜÐÐÐßßßéééßßÝÎÍËÏÐР«¹`y›Wp�_q‰€ƒˆav’Wr•FcŽ8U…2O€3N€8Q€\dr2M:Ry`enUcwA[„1P…uwv‘‘‘�ž EM`D-N…@\ŠEd�2Fzrrq‹‹‹™™™¤¤¤®¯°ogg]M]joŸdf“lm§jq¥u|¶uy·os¯txµw{¸pt±lt©ns®svµox«ns­os°sw´y}¼os°uy¶w|¸twµux¶uy¶ou®ks¨vz¸ou®hq£z~¼sw´rvµx|ºju¥kt§ps²jt¥sy³sw´mv©qu²qw¯ls«vy¸os°rw³“”¨�ƒ¦ŠŒ©sx»pt±qt³kt¨v{¶sw´os°vz¸uz¶mr®ks§qu³z}¼kt§/>k"/Riilœš–œš˜ŒŠˆ€€lfbL@Z N>B!K N;FcY`k^esgn{mt‚~ƒŒ©¦¢±¯¬º¸µ¿½¹ÆÄÀÅÃÀ¸¸¸ÁÁÁ¶¶¶»»»¼»¼±±±®®¯²³´½¼ºkqy />BA:F(W1 ?CMççåÌÌÌÎÎÎÓÓÔáááÅÅÅÙÙÙ‡‡‡®®®ÎÎÎÏÏÏ“““’’’¥¥¥¾¾¾¼¼¼»»»¿¿¿×ØØÆÆÆÎÎÎÐÐÐÑÑÑÃÃÃÓÓÓÑÑÑÎÎÎÒÒÒìììÏÏÏÔÔÔÇÇÇËËËÑÑÑÖÖÖÇÇÇÔÔÔÑÑÑÒÒÒØØØïïï×××ÏÏÏÌÌÌÇÇÇÏÐÐÕÔÔÉÈÇ×ÖÕ´°«€‰–:\ŠRo”Uq–Vr–Uq•Db�9W†-J\cp1Oƒ3P‚,K�?TxZboPa{cNA†‰Š›œ�2:JC#;s'8n):r)^ tus‹‹‹ššš£££¨©¨fLDae–be“cf“^dˆag’kp uy¶os±z¼pt±ps±muªnt®svµnwªmr­sw³x|¹is¤ot°pt±os±nt¬js¦qt´t{´ltªps±rv³vy¸rv³pv°is¤tw¶pt²ow¬tx¶vz¸txµw{¹qy®rw³u}´sx²vz¸nr¯y~º•–ª�ƒ¦…‡£kn´nu«kt¨nu«v|·sw´pt±z»or°pu±mu©ns°rw³mv¦wzÀŒ‹£¡ š²³µ¼½½——˜ŒŒŒsvwf[WH@WED@ HLA .*& - ,B%3J.CY¢¦¯Ø×ÕÍÍÏÞÞÞàßÝÉÉÊ»¼¼ÓÓÓ‘‘‘§§§ŸŸŸ¶¶¶ÄÄÄÃÃô´´ÓÓÓÌÌ̼¼¼¼¼¼ÊÊÊÓÓÓÑÑÑÐÐÐ×××ÆÆÆØØØÕÕÕâââéééÔÔÔÂÂÂÅÅÅÔÔÔÓÓÓÐÐÐÙÙÙÊÊÊÚÚÚÜÜÜâââñññ×××ÅÅÅÁÁÁÓÓÓÒÒÒÐÐÐÖÖÖËËËÒÒÓãââÐÔØÀÊ×e~ Jh�Pm”Ro–Ws—Nm–boƒnrz.L�4O€6R�2Oƒ+K‚cflZ<(~ƒ‡¡¢£wk`K([A5aB5`A4W>2T2hSDŠ��Œ‹Š•••›œ›dE8bf–dg•bf‘ag’cf•cg“^f‹hk¡v{¶sw¶kt¨ltªru´qv²ot¯qu±tx¶qu²nt­qu²rv³qu²nu­ot®pt²ov®kt§pt²w|¸qv²os°v{·mu«ps±sw³x|ºqv²rv²nr¯vz¶tx¶vz·ru³qw±ot°os°w{¸“”©„‡ª‰Œ©lp³ou«nt®qt´ov­js¥pt³w|¸qt²jt¥ot¯rv³pu±ot®im¯•˜¸³³¬¦¦§´´³¥¥¥Œ‹‹wwxnjiLGO<>?;E E Gƒ�¡ÇÇÇ´¶»Ÿ¤ª�“šˆŠŽCOa >(F)8Q)9R&6O'6N$A ?,I,I&D68=>?874@V¤¡¢ÊÉÆÒÑÏÙÚÜéèäÍÎÍ´·¾ÓÒÏÉÈÅÔÔÖ‡‡‡§§§¤¥¤¬�”±¡ ÄÅÅ´³³ÇÇÇÏÏÏÑÑÑÂÂÂÒÒÒÑÑÑÒÒÒÎÎÎØØØÉÉÉçççèèè×××ÇÇÇÍÍÍÀÀÀÒÒÒÑÑÑÑÑÑÍÍÍÝÝÝÎÎÎâââëëëÛÛÛÆÆÆÏÏÏÂÂÂÎÎÎÓÓÓÑÑÑÐÐÐÔÔÔÍÍÍÜÜÜêêêäãâÕÓÏÙÚܰºÆ`z—^w“`tŒ|…ex�Ys•Fd�7T…3O�3O€8R�]erY<)nif¡¦¨‡yqnVHœ ¢·¶³½½»µ··œ’‹gL;�”–ˆ‡†ŒŒŒ�‘�h]^bZwinŸbi�be“fi—dh•ce”eh–dg•jm¤nr­qv´qu²vz¸lsªpv¯rz¯os°pt²sw´txµx~¸lv§ps²sx´qu²pt²uy·ru³ot°pt±ot¯ku§ps²vz¶qu²w|¸uz¶qt²ps²ux¶os±w{¹pz«mr¬pt²or°�“§†…§Š‡¤t{»lv¦qs²sx´ru²qt²uy·ru²qu±qu²ot°txµuyµls©tz°ls¯—˜³²³«§§¨¤¤¤Š‹�xwsBHPEG?:>B;:LkØÔÐØ××ÖÖÔßÞÜãâáÝÜÚäãáãâáâáàÝÝÞØØØ½½½°®¬ir€3=R5<>;7::1>G\—Ž‘ÙØ×ÜÜÛÜÝÞÉÉÈæäÞž£­t|—0f‚Œ£©®·ïìæ©©©§ªª°¨¦ÝØ×ÈÈÉÔÔÔÅÅÅÏÏÏÐÐÐÑÑÑÂÂÂÔÔÔÐÐÐÏÏÏÒÒÒìììÍÍÍ×××ÆÆÆÌÌÌÐÐÐÖÖÖÆÆÆÖÖÖÐÐÐÒÒÒ×××ðððÒÒÒÓÓÓÊÊÊÉÉÉÑÑÑÔÔÔÅÅÅÓÓÓÔÔÔÎÎÎÎÎÎèèèÜÜÜÔÔÔÐÐÐÒÒÒÝÝßåäÜÐÏШ©¿ˆ†™qx�No’Ro•So–Uq–Uq–Da�;W†-L�\co]IS`J8𢩄vmW@2ƒˆ‹¦¥¤¶µ¶°³´•‹†oTE²¶¹¯®­§§§œžŸkd]X90fn¢ee”bf“fi—dh•_eŒbi‘ci’ad‘dh–hl os¯qt³mu«lrªow¬uy¶os°pt±os°txµru´os¯ty¶nu­ks§oy¬ou¯ps±uz¶sw´or±uz¶qt²rv´rv³txµnu­ks¨oy¬ot¯sw´svµqu²uyµtyµ’•ª„‚¦‰†£ms·qt³os±ty¸ls®hq©lv¬mr¯os±os±pt±ns°os±ir©hoªnv¯jm´”•³¯®«‡‡ˆrid{|‹JT‰/*>9>>C?A�—¤Ø×ÖËÌÌÍÍÍÍÍÍÍÍÍÎÎÎÍÎÎÎÎÎÏÏÐÏÏÏÒÒÒÎÎÎÅÆÆãáÝnt�4;>=; 0??O�Ž“ÙÔÐÚÜÝÝÜÜÙÚÚÜÙÔž¡ªeq�$EvL‚CX…;q7M{p~›ÆÈÍîìéßàáÏÏо¾¾ËËËÔÔÔÑÑÑÑÑÑÖÖÖÆÆÆØØØÔÔÔãããèèèÔÔÔÁÁÁÅÅÅÔÔÔÒÒÒÐÐÐÚÚÚÉÉÉÜÜÜÙÙÙãããððð×××ÄÄÄÁÁÁÓÓÓÒÒÒÐÐÐ×××ÉÉÉ×××ÖÖÖÛÛÛïïï×××ØØØÌÌÍãããááßÒÒÍ�Ÿ¼ƒ‡¶dh®nrµlr²er¦Wp™Rp“Tp•Sp–Ws—Nm—[l…stx`Um[D0|ƒ‰pg[C3’—™ª©¨¬««¯±³Œ‚{w\J¿ÃƳ²±´´´°²³‰‚|Z?=djŸad�dg•cf”cg”cg’ae�fk–eh—cf“bf’cg–mq¥ux·v{¶mv¨qt³ot°sw´rv³pt±ot®qv³pt±pu±ot®mt«v{·os°rv³pu±iu£tw¶qv²nt®qu²pt±pv°ot®mt«w{·ns¯ot¯z~»qu±w|¹’“¨‡Š«�’¬pt²tx¯pu®or«¢£®¥¨°� §¥¦²Ÿ µŸ ´ ¡µ ¡µŸ µ¨¨¶©©µ¬¬¸¨ª¶ž¤¯–™™fefBt%P�#_‘IaŒ@]ŠC[ˆ?\‰@[ˆJa�7RCnLa†ÝÛØÎÎÏÃÃÃÔÔÔÐÐÐÏÏÏÔÔÔëëëËËËÚÚÚÅÅÅÍÍÍÏÏÏÖÖÖÅÅÅØØØÏÏÏÒÒÒ×××ðððÏÏÏ×××ÈÈÈÊÊÊÐÐÐÔÔÔÄÄÄÔÔÔÓÓÓÏÏÏÎÎÎéééÖÖÖØØØÎÎÎÕÕÕÝÝÞææáÍÍÐ�Ž’bIO\]}lp�qu«uz¸pt²w|¸vz¶v{¸ox©qu°w{¼{|šw|�Po’Ro”Sp—dl¤[CGbPDurvqff—™™©¨¨¶¶¶±²²‰„…~rtÄÆÆÃÂÂÃÃú¼¾£œ•Z>:fm¡df”ad’ilšfi—cg”eh—gj˜cf”hk™fj—cf”fi—fi—ei•gj™mq¥ns¯ps²os°txµqu³mq¯y~»pt±rw³swµuy¶rw³twµkt¨pt±os°ux¶qt³or°z~»os°sw³rv´uz¶ps±uy·rv³tx¶swµ†Ž«›�²´´¬¬¬«†ˆ©ˆŠ­—™»‘”¶�’´�’´–˜¹”•³˜›º™—°¢™£�”µ‘“³Ž�³�’µŠ‚£˜|¢�‚©œ ¤�…¨nq²qu²{»mq¯nr³tz½¦¢°{u„¢£ªÉÈÇðñòqfX?1$K>,I<*RD2_Q@i\KxiZ•‰~¼¼¾ßàßðï�7*3Y€‚—ÔÑÖÚÝÜÞÞÞØØÙßÛÖ˜�¨mv“AuM€._Ž?a�F\ˆ?\‰A\‰A]ŠC\ˆ<]Š\ŠL[�0R~Qf‰ÞÜØÑÒÒÇÇÇÙÙÙÓÓÓäääçççÕÕÕÀÀÀÇÇÇÓÓÓÒÒÒÐÐÐÚÚÚÈÈÈßßßÖÖÖåååïïï×××ÄÄÄÃÃÃÓÓÓÒÒÒÐÐÐÖÖÖÇÇÇÙÙÙÔÔÔÜÜÜîîîØØØØØØÍÍÎäääààßÔÓÑ••£�œ L26gi‰bd`c€kn™lo§qu¶nr¯sw´rv´mq®w{¸ty¹kq±dr¥Xq™Qp’gk˜ee�`D9uhhp`c”—–°¯¯³²²£¤¤„{nn´¶¶«ªªµµµ¸º¼£�–Y>:ho£eg”fk”`g�jmœbe“fj–hk™af�_gŒjl›dg•be“bf“cf•`f�]d‰fh™qu§ty´uy¶vy¸qz¬nv«y}ºos°pt°rv³swµtxµos°txµtyµtyµux¶pz¬ow­y}ºnr¯v{·txµot°sx´x}¹pt±y}¹ho¬sw´‡‹¸ƒ‡¸pt¸ku­iq­rv¹hl¯pu·nr·cl¦en¬“’¬½¶·y|²ej°lo³fo¦ir­lv·r{¼x|±tx·y|¸ju§qv³tx¶˜š¶·¶¼ÔÕÒÊËÈ©©¨ÈÆÇëîðK4/65400# $ !¨¦©ôò�¶´½ââÜÚÛÛåãàÌÍÍÁ½ÁK`„4KyG9_�:c�G\ˆ@[‰>]ŠE\‰@^‹ip¤eh”gk˜ei–fi—bd’ilšgj˜be“gj˜fj—bd“eh–eh–dh•ag�cg”be“bg�_gŒkm¥qu°v{¹uy¶qu±os°qt³ps±pt°pt±it£or°y}»txµvz·uyµtyµrv³nr¯y~ºos°uy¶svµpt±rv³rv³tw´qu²sx¸pt´w{·uy´v{µtw³pt¯|€½sw²qt°vz¸x~°±©ž“Œ£nt³sx¯mu­hs´ptµnw¦mu¬os±lqµ}�µ”—»ÃÃÂÍÍÌÕÔÒÒÒÓÃÃÄÊÊÊÚÙÙëíïR>$3;":!:";"9"@%=;;ààáÇÆÄÕÖÕÒÐÏÛÛØ«­µhr�Bu!N€&_‘Gb�A]ŠC[ˆ>]ŠA\‰H]‰0]Š0Zˆ*c—]kœpv±ts±vx¶4U‚Oc‡áßÜæçèÊÊÊÜÜÜÄÄÄÍÍÍÏÏÏÕÕÕÅÅÅØØØÏÏÏÒÒÒ×××ðððÌÌÌÚÚÚÆÆÆËËËÏÏÏÔÔÔÄÄÄÖÖÖÒÒÒÏÏÏÎÎÎëëëÒÒÒÝÝÝËËËÖÖÖÜÜÝèèäÊÊÌ¢£¬gj†adƒ[\~ab€nr” +M12dbw_\m^a|ah‹_`}_b~]bygi”nrªw|ºty¶rw²os¯pt±ru´qt°agŒfkž[=3t`a}vy£¤£¿¿¿ÇÇÇ»»»���ƒƒƒªªª¤¤¤¢¢¢¡£¥œ–�_C?ip¤eg“dg–eh—be“de•ci‘ch’bf“_f�df•fi˜fi—eh–inš`f�ce•fk—df•df•ei”dg–hl¢or®vz¸twµnwªpu°tx¶tw´uw·pw¯ow­swµsy´nr¯uy¶pt±sw´v{·wz¸lrªqy¯sw´v{·w{¸sx´x}¹w|·uz¶rv³sw´rv³os°qs²oy«pu±mt«mt­nq©“•”¿Àº~€´p{¸xy¡žƒ¡�|¢mrµko±y}¶“•µµ¶»ÐÏÉÓÓÔÑÑÑÐÐÐÔÔÔÄÄÄÈÈÈØ××ìîðN; 1:!89 9 7: 0A??àáá°±²ÖÓИ�¨sz–>sN�)_�BaŽD\‰?\‰A\‰A]ŠF\ˆ9^Œ#Y‡7d˜QgŸ€|»u}±lr«rv³z|¹1RWl�ôòîÒÓÔ¾¾¾ÉÉÉÓÓÓÒÒÒÐÐÐÙÙÙÇÇÇßßßÔÔÔèèèíííØØØÂÂÂÄÄÄÓÓÓÒÒÒÑÑÑÖÖÖÆÆÆÛÛÛÑÑÑÞÞÞííí×××ÓÓÓÎÎÏãããààßÓÓÑ™›¨qr‹SVy`d€`e~ab�[b}hc€!I*'jG4jKDYEF]R]cj�adƒ`a‚ac`bfi”lo¥v{»sw¶qy®lsªuy·aeŽdjœ[91pTUˆ�Œ¶µµËËËÍÍͯ¯¯���“““¸¸¸ªªª©©¨¦¦¨™”�\A=el fh•gk˜il™ad’dg•af�cg“bf“af�dg–fi–bf“be“eh–eg—bf“fi˜af�^e‹kn�dg•ad�eh˜jn¢w{¹sz²os°w{¹vz¶rv³w~·mr¬pt±sw´uy·y~ºpt±qu±x|ºrx±gs¡sx³pt²rv³rv³os°uz¶v{·ru³tyµx|¹ty´or°qu²mtªqu²nu«ot¯wu¬¡””¾¾¼|�¸xp¨–€…²¤ž­¦£uŸ–š³»»ÃØ×ÏÂÂÂÏÏÐÑÑÑÑÑÑÑÑÑÒÒÒÄÄÄÊÊÊØØ×ëíïcE/38 9 9 89 6?# B??àáỹ· ¨³ :n I�9_�9b�H\ˆ?\‰?]ŠE\‰?]Š=Z† ^Ž7]�Vnªtq¬ww¶ou±suµqs°qu±z{¸5U�Nc†Ù×ÓÄÄÅÂÂÂÔÔÔÐÐÐÑÑÑÎÎÎÞÞÞÊÊÊêêêëëë×××ÊÊÊÊÊÊÀÀÀÒÒÒÑÑÑÒÒÒÏÏÏØØØÉÉÉãããîîîÛÛÛÓÓÓÏÏÐÝÝÜääãÐÏΜž«oq‹]_€\^~deƒ_b]bacƒab}wWaH-+sH;wTb[88_>=^B@_Zl\c{di‹be…^_yac„gj�sw±w~·ns®vy·hj—gnŸ[:1nYZ�’“¹¹¹ÉÉÉÇÇǨ¨¨“““¦¦¦ºººµµµ±±±ª¬¯ š’Y;7clžcg‘il›^e‹af�jnœce•il›ei”^f‰cf“`e�_g‹eh—cg”af�eh–af�cf“dh•cf”fi—gk™ad’il™gk—km¦mq¬ry²w{¸os°pt²x|¹sv´ot®nu®qu³pw¯jt§ru³nr®w{¹swµpt±z€»sw´wz¹tyµtx¶kr©tyµvz¸gq¡sx³x|¹ps³x|»jr­drªww«¦™•ž Ÿ˜Žšyn‘Š{xž¦§²²²¿À¾ÎÏÌÔÔÑÒÒÔÂÂÃÎÎÎÒÒÒÏÏÏÏÏÏÙÙÙÇÇÇËËËÙÙÙèêêr\_P4.: 89 9 87: "?<=ÜÞß¼¸’¯¿;n™Kh�A^‹E]Š>]ŠB\‰G]Š2\‰/\Œ+b—Zl—kt©wt´ht¤ov®ru³nuªnw¶is²pr²5V„Mb…ÜÚÖÑÒÒÆÆÆØØØÏÏÏÒÒÒØØØîîîÊÊÊÝÝÝÆÆÆÌÌÌÎÎÎÓÓÓÃÃÃØØØÑÑÑÎÎÎÎÎÎëëëÎÎÎàààÊÊÊ×רÛÛÛêêæÉÉ̤¤­cf�]`}^aƒae€^b{bg‡cd…ge�p\lbOSkNP!H,)rJ>vU_[]A=`[rac~el�__}bd�df„fh“nq«nv¯jm™dh›Y;2pnj§¨©»»»ÊÊÊÃÃꪪ’’’°°°ÀÀÀÁÁÁ···²´µ¥¢�bQP\bˆcf“be“eh—eh–gj˜`eŽaf�hkš`e�ci’eg–hlšeh–inš^e‹jl›biŽgk˜fi—cf”jn›be“dg•cf”cf”_eŒaf�fo›wz·ruµuy¶vz·or±ot­kt¨ru´sz²lsªpt±x{ºqy¯lsªqu²pt°qt±kt¨os°txµmv©ot°os°tx¶sw´ux¶iq¦uy¯‹�°u”z|¯¨ª©ªªª®®­|~z‚‚…§¦§³µµ×××ÑÑÑÐÐÑÒÒÒÃÃÃÎÎÎÐÐÐÖÖÖÚÚÚÔÔÔÃÃþ¾¾ØØØêê錑“j\WH$6 9 9 9 89 .=:;ÞÞÞµµ¶ÇÅÅæàÚ[v—/Iz4VC[…7^�'Y†3c—Of”|{¹uwµkt¦rx´txµvz¶w{ºr~¸wk•’ˆ§†�§7WOdˆÞÜØÕÖÖÈÈÈßßßÓÓÓêêêìììØØØÁÁÁÆÆÆÓÓÓÑÑÑÑÑÑÕÕÕÆÆÆÜÜÜÏÏÏàààêêêÝÝÝÔÔÕÎÎÎãããâáßÒÑјš¥mp‡VW|ad�^b}ac‚`c‚_e‡lc~h[llRT]JI^KJiMO"G-*rI=vT_\;=aAD_@GaC>_?=X1*`LR]R_ahŒ`d„`b�^b|]`zai‹il˜ag›X:2ˆ…�¹º»»»»¹¹¹©©©££££££µµµºººÈÈÈ··¶ª®±sg^VIRck�dg“ilšcf”dh–ek”af‘ce“gi˜hk™dg•eh–be’jm›dh—fl›ef˜eh”be“dg•jnšbf“dg•cg”cf•ag�bf“df•ai�ej›uy¶w{¸ns®jt¥qt³pu±nt®nt¬ru´tx¶ms¬nu­ot´nt³pu²muªos°swµlv¨ns¯vyµw{·os¯twµmt®x{¬±²©±££›™§ªªª¨¨¨µµµ¿¿¿Ÿž ¡ŸŸ½±­ÓÔÕÑÑÐÑÑÑÑÑÑÂÂÂÑÑÑÜÜÜÓÓÓÉÉÉÌÌÌÁÁÁÍÍÍÛÛÛòòñÅÇÇ~tuB 2789 8!@% EBAááá¶¶¶ÈÉÊÖÕÓcz 7iJZŒ)e˜6\�Sn¨|x³sy°mr¯pt±x|¹rw³tx·pt·kožfeutfj£z~¡‚�9TtNdŠÜÚÖÚÚÛÊÊÊìììëëëÕÕÕËËËÈÈÈÁÁÁÓÓÓÑÑÑÒÒÒÏÏÏØØØÉÉÉåååîîîÙÙÙÔÔÕÏÏÑááßäååÒÒЗ™¦pq‰TWv\`}dd„`d]b~`c„kf‚l[iePTaKI^KKaLL]LLjNP!G,)sJ>wU`\;=a@FcD@—yo®¢ž~d_b@?[98Z@A_Xiaeˆ_c_b€`a¢¢¡ƒ‡¡X;3–“�¸¹º´´´µµµ°°°§§§´´´½½½¾¾¾ÀÀÀ¾¾¾µµ´­±µ|k\YEPem¢fg•dg•bf“cf•agŽ`f�eg–hl™df•ilšdg•df”cg•kk˜ic‰fl‘^i‘cd•bf‘dg•cf•gk˜gi™em“`dŽeg–dh•be’cf“fh˜jm£os®ou°pt±v{·qv±ns®t{³ot¯qt²qt³}~°||°rz¦mr®rv³pu²ot¯ru²ou·mr²x|°¢ ££Œ•Ÿœ¡®®°´·¸³´±¯¯®¤¢¦¡Ÿ¡ÄÅĦ§¦¥¤¤ÒÐÏÒÒÒÏÏÏÐÐÐØØØÄÄÄÒÒÒÈÈÈÊÊÊÎÎÎÕÕÕÅÅÅËËËÞÞÞ÷ööáâá“‹�X>3C.@*8#41,2745áá༼¼ÑÒÒ×ÖÔczŸ9iXb›oy¹kp¬xv´ov±it¤or¯vz´ty»vx¶nt¨ebljfj}kutr¥rv²yy©1TzNcˆæäáéééËËËÞÞÞÅÅÅÌÌÌÎÎÎÓÓÓÄÄÄØØØÐÐÐÎÎÎÏÏÏêêêÍÍÍâââÊÊÊ×רÛÛÛææßÉËÒ—��o]ssz»ot©ch…bb�]c�bcƒba|oZjdQTbKJ^LK`MMaMM`LL^LLjNP!H-*rHaAE_@D]=B\<@^?EZ6-…]UŒgZ‚a_cB<`KY`f‡ceƒ§§§¯±²gH5€}{ÃÄÅÑÑÑÑÑÑÌÌ̽½½ÅÅÅÆÆÆ½½½ÁÁÁÅÅż»»»¿ÂŽ~qUDKclžafŽgj˜be“gj™`fŽag�fi˜cf’bf”bf”agšf]xkWf]QP\?EmIQaA?cNVebujq›`g‘dg—ce’ce“dg•cf”cf”ag�ae�bi‘gj˜ce”ad�dh—il uy¶vx¸ox«rv²pt±nr°Ÿ�›Ä¬©�x¤is´or°mq±ms¨¤š¤¶°¨›™§¦¦¤¶¶¶······¹¹¹žžž���±±±¤¤¤�š ¶¶¶���¢¢¢ÖÖÖÛÛÛÓÓÓÊÊÊËËËÀÀÀÑÑÑÑÑÑÑÑÑÑÑÑÒÒÒÃÃÃÔÔÔæææõõõòóòôôôõõôø÷÷øø÷ûúúýþþøûþòô÷æéìÜÜÜÚÚÚ···¾¾¾ÁÁÂÒÐÍ`vš ;lM]Žz¹os°rw´rv²iu«opŸghykc^xjxxs¢rs²ju°lr¨u{µot°vwµ5U‚Od‡ÛØÕÂÃÄÁÁÁÓÓÓÐÐÐÒÒÒÏÏÏØØØÉÉÉçççîîîÙÙØÖÖ×ÍÍÏââáààßÑÑÌžŸ½�‡±dm§pv·gTlry¼nt´up£o`ziRY_KI^KKaMMaMMaMM`MMaMLaMMaLL^LLjNP!K0.b:*uT^mLT`@E`@C`@CaBF`@DbCJV69eB6›us“oi\JZae‡`a¨¨¨¯±±rZ]/(*—”•¼¼¼ÉÉÉÍÍÍÃÃÃÉÉÉÑÑÑÍÍÍÈÈÈÉÉÉÁÀÀº¾Á�qWCPlt§_f‰df•dh•cf“af�gk–fh—cn—af�ni‘vYeyUPrSQ`QT`=AlMTaAG_;>`BCaHNa\sgj–glžem•_d‹ikšgj˜gi˜hl™`gŒdf•gk˜gk˜fi–hk˜eh—qu©ry±pu±pt±v{¹}zª¨¥¢¸µ·rv­ˆ�¶¢—š~{§²°®¾À¼½¹®­®±±±¡¡¡³³³¹¹¹™™™›››²²²£££�šŸ···���¡¡¡ØØØÇÇÇËËËÍÍÍÕÕÕÃÃÃÎÎÎÒÒÒÐÐÐÍÍÍÞÞÞÌÌÌÖÖÖÖÖÖïïïíííêêêìììîîîòòòððððïïñððòñññðïååå¶¶¶¥¥¥ÕÕÕÉÉÊÐÎÌ_v› :lL_Œuy³pt²qt²nt¯lnœbbc}jnnr—xy¶rz»uz¶wy¹q{­ns®mtªqw«5V„La„ÛÙÕÏÏÐÅÅÅÙÙÙÐÐÐÎÎÎÐÐÐçççÌÌÌãããÊÊÊÖÖØÛÛÛææàÉÉË«¬¿{·os±v|»rw®pu´ m[uu}¿r\ocQVaIE^KJaMMaMM`LMaMMaMMaMMaMMaMMaLL^LLjNP!L0._8(dELgEJtSXiIRcCI]=?`@DaAD`@EkKP‰`]nJK^L[ciŠbd‚¦¦¦¬­­{dj€y{l`d€‚‚““”££¤¬­­³³³ºº»ÈÈÈÑÑÑÍÍÍÁÀÀ¸¼ÀŠzlWDPjr¦dg“eh–gj˜bg‘`e‹af™fj˜mfˆqYj{TNrWUqWUuX]`OR`>BlLS`AF`@E`@E`?B`=@`JKc[wfi�bi�fh—jlšad’hk™dg•dg•eg—jn›ad’hl™dg•jm™eh–qu¬nr¬pu¶pt«§§¨»¼ºz}¯³³²À¿½¬¬ª¬­®···°°°¹¹¹´´´���¦¦¦»»»ššš›››²²²£££   ¶¶¶ŽŽŽŸŸŸÉÉÉÑÑÑÑÑÑÑÑÑÒÒÒÂÂÂÎÎÎÏÏÏÔÔÔÜÜÜÚÚÚÈÈÈÀÀÀÓÓÓÅÅŶ¶¶¹¹¹ÄÄÄÈÈÈÆÆÆÌÌÌÜÜÜàààäääååå®®®ÉÉÉÖÖÖÈÈÉ×ÖÓbyž:jQ^•y|¹qv²tx·ms¥�nu[]Uuw§tzÂmq®{~ºqu±sw´sw´rw³os°y{¸6WƒOd‡ßÝÙÏÏÐÈÈÈÜÜÜÍÍÍâââåååãããÎÎÎÒÒÓßßáããÜÎÍШ©¿x{°mq²rw¶w{·w|·uy·rx¶gQedYl_HC`LK`MNaMMaMM`LLaMMaMMaMMaMMaMMaMMaLL^LLjNP"H-+rG8tQZZ::[7/lIJoNQnNXaAE]=AaAEa@E`@F^;<`M[`e‡eg…···±²²�„‡‚ru‹�‰��‹ Ÿœ±¯¬·µ²¹·´À¿¼»»¹¼¼¼ÉÉÉÂÂÁ¸¼À†vhXERdl¡dg“fh–ei—cg—agšmc„nWkyS[rRYl\[oVWu\_tVb`OQ`=BmMTaAF`?CaAEaAEaAEa?D`=<`GPaUh^f‰imžej˜be’hl™eh—^fŠgk˜gj˜be“cf”be”cf”\c‡dg–jo¥}�·±°±«««’“¦··¸¿¿¿¾¾¾µµµ«««�œŸ¸¸¸···“““§§§ºººšššŸŸŸ±±±¤¤¤ŸŸ ···���¡¡¡ÕÕÕÐÐÐÑÑÑÑÑÑÑÑÑÂÂÂÕÕÕàààØØØÏÏÏÊÊÊ¿¿¿ÏÏÏÔÔÔÊÊÊÃÃù¹¹½½½ÌÌÌËË˼¼¼ÎÎÎÌÌÌÌÌÌÄÄÄÌÌÌÓÓÓÔÔÔÎÍÏÜÚØe|¡9jQ^•z}ºqv²tx´ps´Œy�zfb]^ljg‡q{µpw¯x}¼nr®sx´w{¸qt±€¿5VƒLa†ÝÛØÔÔÕÊÊÊèèèíííØØØ×רÌÌÍããâààßÒÒÍ�ž¼{�ªdm©y|ºqu±os°ot°pr²lt©jsªaCA_KHaLMaMMaMM`MMaMMaMMaMMaMMaMMaMMaMMaMMaLL^LLjNP!G,)rJ>wU`[;=bCK\94^=;jF@pPYnNV_@D_?B`@Da>?cP__gƒac€¨¨¨´´´¯¯­tv„;mBmMTaAF`@DaAEaAEa@D`AEaAGa>B`??^EHbWkcf“ej™jožac�cg“hl™cf”cf”dh•dg•cg“bg’cf”`c‘—Š˜ÁÁ¿ÃÃÄ··³¹¹¹¯¯¯¯¯¯½½½ªªª—”š·¶··¸·’’’§§§»»»™™™žžž²²²£££   ···ŽŽŽ   ÓÓÓÑÑÑÐÐÐÎÎÎÝÝÝÉÉÉÜÜÜËËËËËËËËËÕÕÕÅÅÅÍÍÍÓÓÓÓÓÓÐÐÐáááÑÑÑÛÛÛÔÔÔÍÍÍÏÏÏÓÓÓÅÅÅÉÉÉÖÖÖÐÐÐÍÍÍÜÜÜרØÞÜÚg}£8iR_—vw¶os°rv´gs£nr®|{µ‰t‹neff_ain�sx·os³}½xz·`l¤2T�1X|[l�ÝÛØâãäÎÎÎãããÌÌÌÖÕÕÜÛÚæåáÌÌ̤¥º}�¸pt³in®w|´uy¶os°qv²qu²pt±nu¬mt¯bEG`MN`KKaMMaMMaMMaMMaMMaMMaMMaMMaMMaMMaMMaLL^LLjNP"G,)vM>zXa[;>a@DbBJ]=?S1/]82fDBvT[iJQcDJ]9:bP^bh‡bd�¨¨¨¨¨¨™šœ +Z:s(:o#4n!U*Q%;]$4d Q¤¦¥¨§§ÄÄĨ«¬pedXKhflžbg�ccŽx]dyWLtSSxUOjZ`q^V~ZZs\WwXTzY^sVb`QR`=BlLSaAF`@DaAEaAEaAEa@E`ADaAEaAFa?C`?A`CDbYtghŽcižaf�cf’eg•eh–fj—ikšcj�ae’eh—bf–yx|ÁÁ¿¹¹¹»»¼¼¼¼¨¨¨   ¼»¼««­™—œ²±²···’’’§§§»»»˜˜˜¤¤¤ººº¢¢¢ŸŸŸ···���   ÒÒÒÍÍÍÕÕÕÛÛÛÛÛÛÅÅÅÃÃÃÐÐÐÐÐÐÒÒÒÓÓÓÃÃÃ×××ÐÐÐÒÒÒÛÛÛÚÚÚÊÊÊ¿¿¿ÐÐÐÐÐÐÑÑÑÔÔÔÈÈÈÑÑÑÒÒÒÓÓÓååååååÒÓÓÅÄÁ\r—!;mN^�vy´qu³qv³sw³pu¯py±uzº~{µ€m„mbhk]\lnžkw®2Tƒ5^]{”µ¼ÁêéçâããáááÊÊÊÕÕÕÞÞßáäâÎÏר©ºvz±lo°px°sx³pu®nt­qt²rv³tyµtx¶w~¶ks¦pt´bEF`MMaLLaMMaMMaMMaMMaMMaMMaMMaMMaMMaLL`LLaLL]KKiMO!F+(wN?{YbZ:=bAF\>?�dZ”�{kOPV66Z5-kJKpOSlJRcQ`afˆab€©©©¬¬¬œœ�R'Q†:R€!&B$Hƒ %GRb¿¿¾ÖÙÚ˜”‘]HI�–®ln–Zd“jYsvRKuUa{ZLo^\jW]oVNmUMmX^xWRyX_x\[^PP_]=DwSM–vl�}|„`M‘mlhLKW62[97mF?dRbdiŠbc‚©©©©©©ª¨¦dsˆ9o/DlAd” A46—Š‹s\Kž”�¯¯«ž�¢‡Š¢m_|tRX{_VvVUpT[wTN›y�¶§§˜{}z\Z|[W~]_oTX`DElLSaAF`@DaAEaAEaAEaAEaAEaAEaAE`@Da@D`AEaAGa?C`>CiJJ�fa†``]KZchŠdeƒ®®­¾¾¼³±¯‡�™%Xsƒ *4M caa¶·¶§§§§§§¨¨§¬±²›‚|´£œÛÒÔ¶˜•‰fhwPK~[b^^‹c`‚_h~Z\xZcb@E`?ClMTa@F`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAE`@Da@EaAE\;@qW[´¶²¬¬¬©©©¢¢¢­­­°°°ËËË���ŸŸŸ¿¿¿°¯±¡¡¡¼½¼­«°›š�¯¯®¸¸¸’’“¦¦¦½½½ššš¢¢¢ÊÊʼ¼¼¶¶µ���†††®®¯¿¿¾×ÖÕËËÍÎÎÎÝÝÝÉÉÉÝÝÝÍÍÍÌÌÌÉÉÉÕÕÕÄÄÄÍÍÍÓÓÓÐÐÐÍÍÍÞÞÞÑÑÑßßßÖÖÖËËËÇÇÇÔÔÔÈÈÈÎÎÎÔÔÔÐÐÐÎÎÎáááØÙÙßÝÛh}¤8iS_˜yy¹vw´ZjŸr'K  -++®®®°°°¶¶¶¯¯¯§¦§«¯®•ƒº®³Ä¼¼�_UpUYz[ftSVyY][^}[\]]€YZ`@E`@CmLSaAF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAE`BF];>pW[±³´«««¨¨¨£££¬¬¬¯¯¯ÊÊÊœœœ   ÃÃî®®Ÿ ŸÀÀÀ±±±ššš°±°···‘‘�©©©ÁÁÁ°°°®®®ÔÔÔÀÀÀ¿¾¿‰‰‰——™ÅÆÅ·»¿ÇÉÌèåàØØØÞÞÞÆÆÆÃÃÃÏÏÏÐÐÐÓÓÓÔÔÔÅÅÅÕÕÕÐÐÐÕÕÕãããçççÐÐп¿¿ÎÎÎÏÏÏÒÒÒÖÖÖÌÌÌÓÓÓÕÕÕÕÕÕíííèèèÕÕÖÅÅÂ\r˜ ;lP_“mv®+O}>< I,/X?IcENiDD[=A]>Da>@aP]`g‡``'Rƒ?w_e€ZLdĉ}^Vf=Yƒ/h#[9BBBsqq­®®ŸŸŸªªªµµµµ´³µ¸º�€tuNN–‡�htuR[vVR‚]]€\\~]a~\^\k�Z_a@C`@DmMTaAF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAE\;?pVZ±³³«««©©©¡¡¡±±±³³³ÊÊÊ���ŸŸ Â¯¯¯   ÁÁÁ²²²˜—™¬«¬ºº¹”’–´´´ØØØººº¯¯¯ˆˆˆ¯¯¯ÅÅÆÅÅÅËÌÅÐËÅš–¥FZ„œ£µÐÐÒÈÈǾ¾¾ÐÐÐÒÒÒÒÒÒÏÏÏÙÙÙÉÉÉÙÙÙçççåå娨ØÊÊʾ¾¾ËËËÓÓÓÑÑÑÏÏÏØØØÐÐÐ×××îîîæææÙÙÙÍÍͼ½½ÑÏÍ]t™%=98:554flwEP`19;@E@7"&SBQgABdVgen”[_~B[ˆD\‰@`Œ3`ŽX�9FmKUr¢¥«¬ª¦ÍÈÁ¼¼¼¸¸¸¦¦¥¤¤¤£££¨¨¨ªªªªªª¦¥¥«®°‘�wuSX^[ƒ^`{\g�^Z‚]`�\_€^X‚\d‚\a€Z^`@F_@CmLSaAF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBF\:?qX[µ··²±±­­­���¬¬¬ÌÌÌÊÊÊœœœ   ÄÄ᝝œœœ¿¿¿¼¼¼¦¦§ÛÛÚÌÌÌÇÇÇŸŸŸ~~~¥¥¥ÉÇÃÉÇž¿Á±®©‡i…3/� ’+.€5W}6R{ÌÌÎÕÕÔÃÄÄÖÖÖÏÏÏÖÖÖâââèèèÍÍÍÁÁÁÎÎÎÐÐÐÓÓÓØØØÊÊÊÖÖÖÒÒÒ×××ìììéééÔÔÔ¿¿¿ÎÎÎÎÎÎÓÓÓÔÔÔÈÈÈÒÒÒÌÍпÃÇâãâòîìáâãÄÅÅ×××ÛÛÛóïêÂÅÈŒ•¥4?p'5k`ao2So'L{ (V'Y(Y'X)Z*["X"S$7X*Br$@v 1f*\Xf¢ov«\cˆac‰:;T+#!€ZfuYdzUbgOU\AEb;.   iKNgOLYFI81B HJ M<86<@>5 2 >ITf¤£¤¿¿¾¬««rru)6M 96<> JF/ #YQilr­Šiw@]‰@]‰B[‡@_�IX|8Td8Yj 5aXb‚~„‘¸¶°¶µ´²²³´´´¦¦¦¥¥¥©©©©©©¨¨¨®±±’‚|UZ}^]�]Z€]gvST�]i�aazT]~[e�]f{X_]<@`?BlMTa@F`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBF\:?qX[³µµ§§¨¡¡¡ŸŸŸÈÈÈÓÓÓÈÈÈ���¡¡¡ÇÇÇ­­­žžžÛÛÛÈÈÈÆÅÆœ›ž¦¥¦ÆÆÈ¾¾¾£££¨¨§y…—”›¥ÕÐɉ‹�5a‘4P…AE•}s´Sk›+IsËÊÍÛÛÚÇÈÈÛÛÛæææäääÚÚÚÈÈȾ¾¾ÍÍÍÓÓÓÒÒÒÏÏÏÙÙÙÍÍÍÛÛÛìììåååÛÛÛÌÌ̾¾¾ÉÉÉÓÓÓÑÑÑÐÐÐÕÕÕÏÏÏÓÓÓëëêêéèáààÎÎÏÐÐÐáââååäÊÌÏ}‡šAm#\,8m.Bs!Ex(P{(Gu$V'W(Y(Y'ZN*HIKsth;F](@a -g'a9`tw¶ps²„ÆILy,iX^\NQ^OR`QU\<;_4 U==;4EEL J?5889895.JETi£¤¤¾½»¾½½ÑÑÒ¾¾¾���’�Žmpu29O !@@E"M%T%S'# %\K[=ZŒ?[ˆB_‹CW|1Pav¬-}œJHVW•&FyN`„‰��µ³®¾½º®­­¯¯°ªªª§§§¨¨§®±²“ƒ|W[}\`|V`}V]¹˜ˆÓÉ˹¬¨µŽ„Šab�Z`�gnvZ`\EGmKR`AF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBF];?pVZ«­­ªªª«««žžžÆÆÆÓÓÓÉÉÉššš¤¤¤ÍÍÍÁÁÁµµµÉÉÉÏÏÏÏÎÏ™™œ„‚„¥¤¦º¹¸ÆÅÄÐÎËG`�>Z†hy”\Ž8]�Ro¨sv®y{»Ph˜+JtÈÈÊâááÌÌÌæææÔÔÔÌÌÌÇÇÇÕÕÕÄÄÄÓÓÓÓÓÓÐÐÐÎÎÎåååÒÒÒßßßÙÙÙÍÍÍÅÅÅÓÓÓÈÈÈÎÎÎÕÕÕÐÐÐÍÍÍÙÙÙÔÔÔÝÝÝÝÝÝÕÕÕÌÍÍááßãâáÖÖÕ˜��N\mO+`.9m/=o#IxK|Q6e#W'[&X!Q%FHJknoœv}°w€Ævt£]c‡>ES/CY_g”ov¬iq¤€‚ÅNU‚)kST_QW`PUaQVa?=]0G1* 8&#T!H!HCB=8999;)NXjÕÑɹº»¼¼¼ÃÃþ¾¾§§§¦¦¦š››“““¡ž– 1L9DE K$R([$Q30i�,a�4U–EPf?l{~Èåb²Ð@_jN-7WzGu;EjD[ƒ•›§Ÿ¡¢ºº¸¶¶¶­­­§¦¦«®®��„wLT†\c¨‚‡ÚÊËÓÌËžƒ††iq½�’¦vrœnp¡rvŽirnKNiIPaBF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBF\:?qW[³µµ­­­¥¥¥®®®ÔÔÔÊÊÊËËË«««­­­âââÌÌÌÇÇlj‰‰–––ÁÀÀÉÈÅ´··²µ·]i‹¨‘™¯³¸Fd�&\Ž!Vˆ`n¨rz¬qs¦mq¯uu²Ld’-LuÜÛÞììëÉÉÊÄÄÄÌÌÌÏÏÏÓÓÓØØØÈÈÈØØØÑÑÑØØØêêêëëëÑÑÑÁÁÁÍÍÍÎÎÎÔÔÔÔÔÔÆÆÆÔÔÔÓÓÓÑÑÑáááçççàààÆÆÆÖÖ×ÛÛÛèèæÓÒÖˆ�—'VaR_5CY+_-`)7k'FvM}L|$M~3_&O 'M%PHHckm¢xx±ry»ps²sv°pu·tx¶uu£su©rv¶qv±nr­x~»RY† d@9\AE^@D_AF\AE42>#I E $KB<;FKAC:789”—œ®¯²¥¦§¸¸¸ÃÃý½½±±±«««¨¨©©©©²°¬GRf48=BF"N*],`0c(S7MÈAR›Z3‡+G€Vq‚�ËÜmÆçNkv(2Q_7[i/BQ17R*8X\d|£¢£¬¬¬¶¶·³²³µ¹¸›ˆ�œzÚÀÄÖÈÊ¢�Œ|W`„W[‰\cšlo¡qr�hq‚[b]cjJNjJQaBF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBF\;?pWZ±³³¬¬¬¨¨¨ºººÛÛÛããã×××ËËË···¬¬¬ËËËÌÌÌŸ  ’‘‘ ¢£™�¨ÏÄÀÈÇÃN`‰+YŒ*V‡)`‘S_�ii—gh•hk™`d‘bf“llšF^†/MxÖÕ×ÈÈǾ¾¾ÎÎÎÓÓÓÒÒÒÎÎÎÛÛÛËËËÞÞÞêêêäääÜÜÜÊÊʾ¾¾ÊÊÊÓÓÓÑÑÑÏÏÏ×××ÌÌÌÖÖÖèèèääääääÌÌÌÍÍÍáââååâÏÏЙ›¥||¢TH_J@Oe$9h&Y/d,8lJzL|M|)N~2MhQ^x\\wwk˜nx±v{¶w|ºlp¬os°twµsv³w}¶hs¨vz»v{¶txµw{·u³QR|J,"rGNeDK^JKC N"R GI)M/D[COnZW}[\€9Mh$6RA;77º»¼ãã⪪ª´´´ÄÄÄ´´´···¶¶¶±°±®®­JVh 2;8=??B$Q*_$g!_7 �"#³2M¾8G¤e9qjNYlC¡Äq ¶µ¥¡#…¶A§Ñ[£Æ]�¡B\`Bc‹Ÿ®¯«§£¤¤¬««·¹¹»³²××Õµ�›†Wa�TX‡]asRVnZ^Žfn‚^i{Zeˆ^bxX_Z?CmLS`AF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBF];?pVZ±³³«ªª¯¯¯ÔÔÔÝÝÝ®®®ÓÓÓÕÕÕ¿¾¾zzz”””³³²ÆÅÃÉÈÆ¸¹»DY„iq�k€œ$`�4]†GcŽld”ch�_fŽcf•be“dg•ae“hg–G_ˆ,JuÂÁÄ××ÖÂÃÄÔÔÔÑÑÑÐÐÐÍÍÍåååÏÏÏãããØØØÎÎÎÅÅÅÕÕÕÆÆÆÐÐÐÓÓÓÐÐÐÍÍÍÚÚÚÐÐÐáááÝÝÜÖÖ×ÌÌÍããââááÕÔÒ�‘Ÿkm…KOrXZtg^u;Hh"K$V+^1g'AsM}JzP}�­j¼ÜM¦Ë$Oeš˜—®­®ªªª¥¤¤ª­¬”ƒ† “–§”‘‡^\uU[ePSjW]{Z`\e€[c†\^†^cuT^]_ŠYŽ#S„Se“hj–cf‰ag”bf’gl—fi˜el“^dŒhlšdi�H_‰.LwÍÌÎÚÚÙÆÆÇÚÚÚÏÏÏÚÚÚéééìììÍÍÍÄÄÄÌÌÌÎÎÎÔÔÔÔÔÔÅÅÅÖÖÖÑÑÑÑÑÑßßßêêêÞÞÞÈÈÈÖÖØÜÜÛææáÎÍÑœ�§^`}RUsMRm[]zUXwRWwV[o0S&Y,`1f*CtM}(P{Ke‘7MoN\yry´sz¯kt¥z}½os°uy¶vz·os°rv³txµnt®pt°jt¥sy²x|ºmq¬‡Ì_ZxJ?cyG©ÎU©ÆU‰Ÿ6JN@q‹Sdj8c~8ˆ¯^¸Ú+Se¤™•¬¯°¨¨¨©¨¨¬°°™„†SXwX\hPUjSW[a…]b‚_j‡\`†\a�\d‡]a{SW[=AmLSaAF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBF\;?pWZ¹»»¨¨¨¾¾¾ÅÅÅÓÓÓ‹‹‹³²²šœœ®ž »µ´ÐÎ˵´³/Er/]ˆ.Y‰(`�Yb�ej�ff’cf•dh–gk˜fh—fi—dg•jn›dg•hl™ji™KcŒ-KvÉÉËÝÝÜÉÉÉáááéééäääÞÞÞÉÉɾ¾¾ËËËÓÓÓÒÒÒÏÏÏØØØÊÊÊÙÙÙæææãããæææËËËÖÖÖßßáääÜËËΦ¨¼npžNSmRUvZ^{VZuUWvXZy[\}OVl.Q&X+`&8k.Gx:Q5V~'Cn44E<3I|�Ãv{·twµtxµmr®x}¹uy¶nr¯ps°os±ot¯ku¦qt³u{µlsªux¸PT~- , D9>€dn�VehOXeC>: # 0š™’««­¨¨¨©©ªªªª¦¦¦¦§§ªª¬²¯­KNb2>?'pWZ¨ª©¸¸¸ÎÎÎÃÃÃÔÔÔ†……£££¤œšÀ©¬Á¸´¦°¾Xk‰BN}Oj›D_Žlf’gj™ah�ae’ei—ilšdg•fi—bd“dg•fh—ei–dg–ik•D^€-LxÉÉËçççÌÌÌæææØØØÍÍÍÅÅÅÕÕÕÄÄÄÒÒÒÓÓÓÑÑÑÍÍÍÛÛÛÍÍÍäääÜÜÜ×××ÌÌÍääãßßÝÒÒΟ¡¼ƒ†µjo¶UZtVWuWYwUXvSWqVXwY]|XZ|RZq/R"U:p2Fy2R€:Jp%^H?=c/*3%+Gxz¹nw«ms¬ps²rw³rv³rv³tyµtyµlv§pt²ot±nt®jr§v{¿ Y3*"E8:…[j‚RchPW\?C^7!<qX[±³²ÊÊÊÌÌÌÉÉÉ×××ÂÁÁÇÈÈÍÉÈÝààÒÑÍ|�¨4k=Q~om˜gf”ag•cf”af‘cf”eh–dg”hk˜hl™fi—ae’ei•eh•be”noœD^„/MxááãïïîÊÊÊÆÆÆÊÊÊÎÎÎÔÔÔÓÓÓÄÄÄØØØÏÏÏÓÓÓÝÝÝíííÙÙÙËËËÔÔÕÝÝÜääáÎÍΤ¦¼w{°mq±mr²{€»lq£VWxZ]~X[zY\}[]|PRkQPmIO`1V>t1d>IiL8H06h+E'8Zvw±u|µmr­rv³pt±ot¯qv²qu²x}¹pw®os¯v{·rw³nr¯v{º#fA?(E9=†Ta…P^jPS\CKf@; $'B{~¹rv£€~’cY€jjbomq3Af1P?8??=7<>? 5+%!  ?;9,drkklm¬––²ˆ“Å”‹CYa8˜ÀV¦ÃfµÒr¯¾†ÄÎk§¸^­Ë_¬ÆG£É.j‚ƒzu«­®«««¸¸¸°¯¯¹½»£Ž‘|S^„`i‡[]�\dƒ`h†]`€TY�X^…`gƒ]a‡^dxU^\rY\ÍÏÏÓÒÓÓÓÓÎÎÎßßßÑÑÑÆÆÆÌÌÌÍÍÏÐÍÉ„”®!=q:Myhl•dg–be’cf•`g�ej–fh—ahŽcg“fi˜fi—fi˜dh“ci’cg”dgŽH_ˆ,JuÁÀÃÖÖÖÂÃÃÔÔÔÒÒÒÑÑÑÍÍÍÛÛÛÌÌÌæææÝÝÝÕÕÕÍÍÍääãààÞÓÓÑ›�°uwŸms¶nw«os°pu±x|¸tyµtxµlu§sw´qu±|‚ÄPOv3GƒNNˆ0D{.\3"#7G/2kabhbXc^XhWVmW]M79 ls«kt©{½ot°sw´ru´pu²tyµtyµku§txµsw³rv±ƒÇ-.H@qMR(F/5mo¬Q[“U\•NF^J  >98;<0"Mon¡¡¡¢¢¡¤¨§zyy?z•W­ÎpÃÚ—«¾²‰–¤•§€ÊÞ`±ÍA“¶fsy¨§¦¦§§©©©ªªª¤££ª®®—�ƒ~V^„^cV^‚X]¡‰ŒÒÉÊÉÈÈ­§¦ªšœŒfjˆ]`ŠdbaEJlKRaBF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbBFZ8l-?yFP;ElaahbXkbZfbZbSV�Ycio©pv¯ru³rv³nr¯ux´vy¶ot°y~¹ov¬qt²y~»pt°€„Æ13L<mHDB-3vv¯ki£lk¤^e ]e¤^e¢74_ FFd.JˆOd{zy—|“› Ú³´ô4Pƒ8Ev85:'W(Z%T JDD>@HG@AB *<77?5',S      ¤¦§™‘�=\i1˜Ázž·ì±žÿܼÿÅ©©œ§E¤Ê,oŠxux¹¹¹°°±«««¨¨¨ª¨¨¬°°—‚„}OU�X^£}ƒ¿´·ÏÎÏ£“š†]c…_bš~ˆ•t{…`hhPUfEKkKRaAF`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBFZ9=x_bäçæÐÐÐÁÁÁÃÃÃÒÒÒÓÓÓÐÐÐÒÒÒÒÒÓÖÔÏŒœµ;ok E,I,a,`'WIGD@@G J@6688979;:¦¦§ŸŸŸŸŸŸ¦¨©�ˆ…Sj~å°¤üÉ£áÆÅïÆ¬ÿä�„“)?\s…¥·´¯±³´©©©§§§¨¨¨­±°‘~‚Žt}Ƶ»½ÇÆ«Ÿ „[d~TZ‡^c‰bjˆ`h…_g�Y]^>B_?CmMT`@F`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbBF[9=w^aÍÑÏÌÌÌÍÍÍÄÄÄÔÔÔÑÑÑÐÐÐÏÏÏÕÕ×ßÜØ–¦À:l=O~gi–bf“hk™`f�bf�hk™hl™eh–in™ahŽjl›bf”fj—jl™fg•Xd‘3V} @oÇÇÉÝÝÜËËËéééÞÞÞÓÓÔÎÎÎããäááÞÑÑМ�°uvœW[�`g�jl›ei•cf”cf“cf•bf“_fŒce“hm˜kr sv²uy¸{ƒ»NT{&#UJQ[PWh_\ic[r^`d7$ƒhSŒsd„m]�{~‹}‚zwwb__mX]'V\‘{~¾rv²txµtv´\f¡Fq>1LSb”jt²GEi_A*e[Iƒ‡Ámp¯y~º„ˆÄos°im¥EVˆEAlO=[`l¡mt³QGj‹~u»ÀÈ‚…Àqu³„ˆÄ‡ŒÈvy·dm¢FU‰BAeD0DI~y|›‰‹¬��¡ˆŽÊZQ}[Q{nv¯mv¨y|¼ot°sw³w|¸qt³ls©jr§qt³ƒ‡Â]g›GL~TVa š”®­¨šš”ŽŽˆ||vj^^;4YH?E L*Z·¶¶­°±RpŒ5[5Y‚„Œš³§¢žœžˆ��‹‰”­­©Wg†8os…¢¶³¯³´µªªª©©©ª©©«¯®•�ƒ‚VZƒ_f‡]a…`f~U\†X[�egˆ\`ƒ[`‚\d†^T`@Ca@DmMSa@F`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbBFZ8<{adðóòÖÖÖÃÃÃÁÁÁÑÑÑÔÔÔÑÑÑÑÑÑÔÕÖÙÖÒ� ¹ ;n5M{C`�@Z†K^ˆ\f’fi–bm˜-P}6]€Ww’ÐÓ×àßßóðíàáâÈÈÈÙÙÚÜÜÜèèäÉÉˤ¤´ek�]cŒac•in–bf‘cf”hk™gi—cf•bh‘_f�eg—be“hk˜eh–il›cf“jn›cg“ilšdi”hk™dg”dg˜eeŠmI>. &QSRmlhg]ZlPO'.f8k"MJEF«®¯®®®¶¶¶½½½ÉÉɸ¸¸…ˆ†]@3ms¨jt¨ps²ns¯pr±my¬hb’/*FEHŒI=~1WBB€[YŠJ=Wes§mt¯\^ˆ…~·¸¹‚…Ásxµv{·os®qt±en¢FU‰D?`5*K=K„~ƒŸ–—¸””¨ƒŒÆH™˜›±²²½½½ÅÅÅ´µµxswX4!pr®pt³sx´swµov¬ov±jj£NA]uy±�’Ѓ‡Âsx¶EJvID^?Ba@DaAEaAE`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbBFZ8=AàáààààÛÛÛÇÇÇ»¼¾Â¿½¹·¶©¬¯Vt�-V|De‡:P}(Bth{—«¨¤¢£¤±±±¾¾¾»ººÁÅÄžŠ�“daÅ¢¦ÛÕÒº¬«ˆhm…U[“fb§uw¡og¨vsšmh£zƒ®}| niŒb`iIN^?C]>CbADaAE`@EaADaAEaAEaAEaAEaAEaAEaAEaAEaAEbBFZ9=w^aÙÛÛÑÑÑÖÖÖÍÍÍæææàààëëëÜÜÜÁÂÃÌËÆ‚’«'Bt6L{0T3Y}_}–ËÏÔßÞÞõòïÜÞßËËË××ÙÝÜÜëéåÎÌÍ ¢±mq™be”]a’eh•cf”dg–eg—bf“eh—_fŒ`fŽahŽdg•cf”hl™cg”be“gk˜ce”eg–bf“fh—_fŒ`fŽahŽdg•eg•de–gj—glœ`]‚x\JŒ�‘J>Cgfdppp 0b+.`8lF…@< ž�ˆR,‹~w¼½¿ž ¤_D/rnŸsz»os¯nr¯pu±ruµqt³nr®v{¼ah’QC^y€½hl¨DHtO>]qu´ii¡jj¬±°Ä¿¿»wz¹�†Ây~º…Á{|·bk¢GJt@5RUe›ms²“•·Œ�±”–°KFhRFot|Ämq±vz·s}§u|¬q{¨|~³|€°|€±|€²|±z~°ty®v{®{€·uw°¨§°˜™–g`duowlu­\Sz"(B;9A C²±´ËÌËÞÝÞâââØØØÆÆÇ½½¾ÂÀÀ°®¬¨­°Om‡3Sz5nfzš²¯ª¤¥¦§§§¥¥¥±°°ÁÆÆ›ƒ…Æ»¼ÐÄÅŠgk�VXšjj¡wu�klŸng¤uu�rt¯~ƒªtpªtp«uq«vq§tmˆ_`lJM\>D^>BaAEaAEaAE`@Ea@DaAEaAEaAEaAEaAEaAEbBF[8,kcŽqw¸rv²uz¶rv´ov­ou®swµqu±rw³F1Jqw´O[�=GoNCaAEaAE`AEa@DaAEaAEaAEbBFY8<{beöùøØØØÅÅÅÀÀÀÐÐÐÔÔÔÐÐÐÒÒÒÔÔÔÊÊÊçåãëèãôòðÙÛÜÎÎÎÕÖ×ÞÞÝéçåÎÍÍ‹–§=V~$=o$@s4P|8T�>W„AY…L_‰[f‘be“eg•fh—cf•bf’imšce”dg•eh—hj™eg–dg•bf‘cf”cf”fi—cf•bf’imšbe“dg•fi˜gk˜ce•hk™gj˜fh•ku§PGV�xf�¢¦L7;^XVnb^G2;%;VÄÃÂÈÈÈÉÉʵ´³¦©¬eWQ^4`KVflœilŸpt°qt³rv´sv´os±qv±w|¸ns°x~¿THk=@fCEwN>^w}½?=”1¯8VÃN_ÒFU®ƒ�¹OUŒKVŠS_‘bnŸafœpu±sw´~ƒÀ„ˆ¿�…ºž�§°°­�’¯sw­€„´‡Š¼‚³~‚³ƒ†¸†‰µ…ˆ°ˆ�¹£—Ÿ��¯�…³}€²~‚²{~­~v¨€u­‰‹®‘•ªot¶or®tz¶rz¹oq­‚v£ªƒ•œˆ‰¡¡¢¢¢¢¢¢¢   ���¤¤¤ºººÍÍÍÜÜÜáááÙØØÆÆÇ»¼½¼½½ªªª···¨¨¨¨¨¨©¨¨«¯®­–�ŽdcgMSqWa—jf±�‰«vu¦ux¦sq©uq£u|§tt¦uv¤u{§ut¨tq¨tr£u}¨tq©tm«un«vs¦sp†_elJM]>C]>BbAEaAEa@D`AEa@DbBF[80Iifš{‚Ârv²w{·sw´ty´os¯uxµy~ºnr¯ux´pu¹„…œ­¢š~€ªsx¶mw©ls³lr³nt¯lu§os±jp°st²œ}�³�‡²œ•»¤›¹¡š¾¥�¡¡¢¢¢¢ŸŸŸ¦¦¦¸¸¸µµµ¶¶¶µµµ´´´³³³¼¼¼ËËËÞÞÞàààÛÛÛÃÃö¶¶¯¯¯µ´³³·¹ª–Žœlp±|¤qw¦uu¨ur¦uwªuo¤t{¨ur¥ux¤u{¦uv£u|¨uq¥ux¦uv¥uw¨ts¦tv¦tv¤t{©uq¥tv¨tv­wt qvŠbbjIM^>C^>BaAEbBFZ9x_bÙÛÛÏÏÏÒÒÒÔÔÔëëëåååÉÉÉØØØÛÛÛêèãÇÉÌ›¤°IdŽ>X†3O~8S�3O�/K}0L},Hx/Jx3O~8T�9U�?[ˆ@\‰A]‰CZ…AX…?W„?W„=Vƒ[‰9X‰3P‚1L{0L}/Lw+Gw.Jw0L|4Q�>W„AZ‡?]ŠC[†EZ„AY†;U‚7S€7S€W„A[ˆ?Z‡A[ˆAX…@Y†@X…;U‚7S�U�;S�“˜¢¸·´¸¸¸®®®©©©¥¥¥¦¦¦ªªª¨¨¨©©©©©ª­­¦™™Ÿ‰Š›ce”_d�_d�bh�hk˜be“cf”be“eh–de”el¡W?Bœ‘‡¯²´‹‹Œª¨¥²‰+°ƒÂ¶š¨ª°¯®­ˆˆˆ‚‚‚±±±¸¸¸···ÁÁÁ»¼½“�Œ_<)jTac_qhmšgkœai�be‘be“ei–eg—bf“fi˜di–KCZQ@`B3Rk^޽�¬p^Nk]vÚ¸}óÅ®le‡Œ‘¬{~–ls®€|£ÅÀ²·“›mp±pu¯tx¸mu¬hq¨��«ˆ}žy}¬±±²¹»ºª¬­®­­²²²¨§¨®®®¯¯®”’–­«¯¬­¬”“”ÀÀÀÔÔÔÓÓÓÛÛÛÔÕÕÆÁ¿¾¤šÃª È°£©•�µŸ—±œ•›–ž˜•ž Ÿ¡¢¡ �œ¡”“� šŸ®£Ÿº¦ž©£Ÿ¢  ž¡¡¢¢¡£¢¢¡¡¡   ¢¢¢¢¢¢¢¡¡¡¢¢ ¢¢£¡Ÿ§¡Ÿªžœ±±´ÊÊÊßßßâââØØØÅÅŲ°°¸»¼®®­°¬¬¦†‚¤vx£pw§v{©uq§tu£u~¦uu¨trªwt¦sr›ju®€ƒ¹™—ÜØÙÉÊÊÞááÙרáààÌÌ̼¼¼¸¸¸»»»ªªª¶¶¶¤¤¤ªªª©©©ªª©�Ÿ¡LaŒ:U‚B]ŠDaŽC^‹E]ˆ@[‡6R�3O�1Mz2N|4P‚0L€5Q€9U�=W„@X…?W„@Y†>W„8T�9T�AT‚BT‘”�««©§§¨µµµ¹¹¹¨¨¨¤¤¤¨¨¨©©©©©©©©©¥¥¦¦¦¤­¬ª  ¢„…œkn™\dŒbd•eh”ei–eh–cf”aeŽfm¢YADš�„¯±´„„…¸·¶Á—+‚i0­®´ƒ}{sst}||‡‡‡§§§ªªª¹¹¹½½½¿ÀÁ›š—^8(iHO_??bKPhg}dh‘ci™eh—cf’bf‘eh–cf”dh–dh”\Y}X\ˆˆp‰ÿð¹Ó°Ž…}ªòͺܺ¬ql–‡ˆŠxwyls¬„w§©šœ·˜¤ru­os´uw­lo¬Ž‡¤¼µ«³±²££¥°°®´´´¸··ººº­­­“““©¨©±²±˜–š­«°¨¨§‡‡‡ÅÅÅÜÜÜÕÕÕÇÇÇÌÍÍËÆÄÈ® ÁªŸ«–‘¬—‘¾¦œÌ´¦žž¡¡¡¡¡¡¡¡¡¢¢¢¡¢¡¡›šŸ˜•ž›™Ÿµ¤Ÿ³¥Ÿ®¤ŸŸ  Ÿ¢¢¢¢¡¢¢¢¢¡¢¢¢¡Ÿ¡¢¥¡Ÿ¨¢ « ��™Ÿ˜•ž™–œ¢¢¢³³³ËËËÝÝÝää䨨ØÇÆÆªªª¬­­³··¬¦£ „„¦tq¥pt¥u}©to¤u|¨vs lr­…¾žœÔÍÍÓ××ÔÔÔâââÚÙÙÓÓÓ»»»ªªª¦¦¦¤¤¤¯¯¯©©©»»»¯¯¯¨¨¨¦§§°¯®Ÿ £OaŒ>W„D_‹F_ŠB^ŒDaŒG[…?W…7R�4P‚6Qƒ5Q‚1Mƒ4Q‚8S€?X„@Y†@X…AW„V„9U�2N{2Nz4P€-Gz/J}6T„?X†AW„AW„<`IQcYndh–bf–jnœdg”dg”df—ln”‚”_h·y€£Ž�¤�“ª€–jn}¢¢¡��œqu«io´‰‰¤º¹¯‘“±‘“¯ÅĽ¼½¼®­ª³³´®®®°°°¾¾¾ŸŸŸ”””¶¶¶®®®’’’ªªª±°±™™˜°°°§§¨‰‰‰¼¼¼ÑÑÑÓÓÓÐÐÐÔÕÕŨ’�ȯ£Æ®¢Ä¬ Ç¯¢Ë³¥¢¢¢   ¡¡¡¢¢¢¡¡¡¢¢¢¡¡¢¡¡¡¢£¢¢  œ› ”“ž¡šŸ®£ º¦ž§£ ª¢Ÿ¥ž�ŸšŸ˜”œœ›¡¡Ÿ ¢£¢¡¡¡¡¡¡¢¢¢£££¡¡¡žžž¡¡¡···ËËËÝÝÝâââÙÙÙÄÄij²±µ¸¹¶¶´›˜˜ž~z­ŽŽ®ª®»»»ÝààÙØØâââËË˽½½¹¹¹ººº©©©¶¶¶¦¦¦¨¨¨ªªª«««¢¢¢¦¦¦¥¥¥¯¯¯ººº¿¾¾¢¢¥L`‹4R€?[ŠB_ŒA^‹A]Š@Y†AaAEa@D`AEaAGa>A_??`EL^WeafŒioŸbf–fi–lo–��•om‹ŒŠƒ™˜” ŸœŸŸ›�Œ‹‹‹Š���gk•ps«££¸ººµ¢¢§©©®½½¼½¼½¸¸¹¸¸·›™œ¨§«¿¿¿£££–––···­­­”””«««°°°™™™¯¯°¨¨¨‡‡‡ÄÄÄÔÔÔÐÐÐÑÑÑÒÔÔÆÃ©’�ªŸÉ±£É±£Ä¬ ¬—‘±±±¦¦¦£££¡¡¡¢¢¢¡¡¢¢¢¡¢¡¢¡¡¡¢¢¢¢¢¡¢¡¡™š —”ž�›¡´£Ÿ°Ÿ�¦™œ™˜ŸŸ¡¢¢¢¡¡¡¢¡¡¡¢¡¢¢¢¡¢¢¢¡¡¡¢¢¢¦¦¦¬¬¬µµµ´´´ºººÌÌÌÜÜÜää䨨ØÇÆÆ¬¬¬¡££¿ÀÀ·¸·º»»Ø××ÞÝÝÎÎζ¶¶«««¥¥¥¦¦¦¯¯¯©©©ÃÃó³³­­­¥¥¥···§§§­­­¨¨¨§§§¤¤¤²²±  ¥L`Š4T…>[‹@\ˆ@\‰?\‰@Y†W„Yˆ6S‚3N‚4O~3M{/Lx/Ky7S?X…AX…AY†@X…:U�1Px{�œ‘•Ka‰�–¥»¹¶¶¶·­­­¨¨¨¤¤¤¥¥¥ªªª©©©©©©©©©¢¢¢§§§³³³···¯¯¯§§§§§§¤¤¤ªªª¨¨¨¨¨©ªªª¬ª¤ ¥­fMGzpgž¡¤çåàMUj .c=s0` (d)9Xc&¥¡›´µ¸�’“oYLjAAn_g\BCgEKiJO_?BaAEaAEaAEaAEa@D`AEaAEaAEa@D`=;`FMdXmeg’`g˜`f†kl…uw�st�rtŽz}”kn“be•jmž_b££Ÿ¿¿Á²³³»»»···ššš­­­»»¼œ™ž¦¥¦½½½£££–––···®®®•••µµµ²²²™™™°°¯§§§ˆˆˆÂÂÂÓÓÓÑÑÑßßßÚÚÚÅÂÁ¨’Œ´Ÿ—¨“�©”�ʱ¤Î¶§°°¯¤££¢¢¢¡¡¡¡¢¢¢¡¢¢¢¡ ¢¢ ¡¡¢¢¡ª¢Ÿ¨Ÿ�Ÿ™Ÿ—“�Ÿœ¡¡  žœ “’ž¡šŸ­¢ »§ž©¢Ÿ¢¡¡ž¡¡¢¢¢¢¢¡¡¡¢¡¡¡£££ªªªµµµµ¶¶µ¶·µµµµµµ³³³»»»ÊÊÊÝÝÝáááÝÝÝÎÎεµµ±±±´´´­­­¶¶¶¤¤¤ªªªªªªªªª£££§§§¦¦¦¯¯¯¾¾¾½½½©©©µµµ¦¦¦¨¨¨©©©­¬«�ž¢F]Š1N€5Tˆ@]�@\ˆC_�D`�=\‹2Pƒ/J€0M�1Nz/Kw,Fu5Q}?W…@W„@X…:U‚9U‚4R€am��Œ—’ޙЛ°¬©©ªª´´´»»»±±±¤¤¤©©©©©©©©©©©©¨¨¨¢¢¢§§§©©©³³³¹¹¹ªªª£££¨¨¨©©©©©©©©©¤¤¥­±³y_M�wr±²¯iuŠ+f#;i"6` 4h"3b*e,K��†«¯±gQDkD4�agiXSYAEfFKiIP_?BaAEaAEaAEaAEaAE`AEa@D`@D`AEaAGa?C_><`FM`Vgaf“bf›bgš_b‘`c•ad—dg—ad’_b“cdxªª§ºº»•••µµµºººššš­­­¼¼¼›š›ª«ª¾¾¾£££–––···­­­•••µµµ±±±˜˜˜°¯°§§§†††ÉÉÉáááÜÜÜÊÊÊÎÏо½©“�½¦œ¿¨�®™’˱£É²¥œŸ¡ ¡¡¢¡¡¢¢¢¢¡¡¡¢¡ž¡¢¥¡ §£ ¬Ÿœœš ˜”�›š   ¡¡¡¡¢¢¢¢¢¡¡¡¡›š —”žœ™Ÿ³¤ µ¦ž¬¤   Ÿž¡¢¢¢¡¢¢¢¡¡¡¢¡¡Ÿ¡¢­¬¬¹³±¸¹¸³³³²±²¯¯¯µµµ¼¼¼ÅÅÅÃÃÃßßßØØØÈÈȬ¬¬ªªª±±±°°°§§§¨¨¨¸¸¸¤¤¤©©©¨¨¨¦¦¦¤¤¤±±±¨¨¨Â³³³¬¬¬¤¤¥¸··¢¢¦D[‡1M5T‰;^�B^�@\�C^ŒW„8T�9T�8T�}^c]ZƒahnPPeFKiIO_?BaAEaAEaAEaAEaAEaAEaAEaAEaAE`@DaAEaAF`?Aa?C`DEcYsac…bl—hk›eh”X\‰df‡wxŒ���¦¦¦¼¼¼ŽŽŽ¯¯¯ÃÃÃ���¯¯¯ºº»ž›¡¥¥¤»»»£££–––···®®®“““´´´²²±��‘¯­±©©¨†††ÎÎÎÓÓÓÅÅÅÏÏÏÑÒÓÑÌÉ˱¢Î·¨Ä­¡«•�Ʋ©Ê¸«¶§Ÿ¦ Ÿž¡¡¡¡¡ ¢¢¢¡¡«¢ž¨  Ÿ—œ˜– ›˜ž¡¡¡¢¢¡¡¡¢¡¡¢¡¡¡¡¡¢¡¡¢¢¢¡¢¢¡›™Ÿ—•Ÿ�™Ÿ³¤Ÿµ§Ÿ®¢�� ¡¡¡¡¡¢¡Ÿ¡¡ª¢ž¦ ž§›ž¤¢©°®°···¶¶¶¶¶¶´´´µµµ½½½ÍÍÍÜÜÜäääÙÙÙÄÄͶ¶±±±µµµ­­­¶¶¶¨¨¨¯¯¯¨¨¨©©©ªªª¤¤¤£££¯¯¯½½½ÀÀÀ²²²¼¼» ¢¥CZˆ-I€2P…<\�D_ŒC_ŒHc�?Y…4Q�6U†5S†5Rƒ0Ly/K5R…8T‚AX…>W„@Vƒ:U‚|‚“0H{=!U!:ªˆ‡–tz�fmˆ__rRRfGLiHN_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEa@E`AEaAE`AEa@D`==_FKfZr\]‚ej�wz…–•𝝫¤¥¥±±±¹¹¹’’’²²²ÂŸŸž¨¨¨·¶¶œœ�«¬«¿¿¿¢¢¢•••···®®®���±±±¶¸·ŒŠ�°®²¢¢¡”””´´´ÈÈÈÔÔÔÑÑÑÑÓÓÏÊÇʰ¡Ïµ¦Â« ²œ“»­¨²ž˜¨�Ÿ³¦Ÿ¶¥�¢¢¡«¡ž¤ŸŸ¡™ž—”žœ›    ¢£¢¡¡¡¡¡¢¢¢¡¢¢¢¢¢¢¡¡¡¢¢¡¢¡¢¡¡¡¢¢¢¡¡¡�šŸ””ž¡šŸ­£Ÿº§ž¨¢ž¦¢ ©Ÿ�¢� š”œ™™ œ›�¤¤¥ªªªµµµ¶¶¶···µµµ´´´´´´¼¼¼ÊÊÊÞÞÞâââÚÚÚ¶¶¶°°°···«««¶¶¶¤¤¤ªªªªªªªªª¢¢¢¦¦¦§§§¯¯¯¾¾¾ÁÁÀ ¢¥CZ‡-J0L�8VˆE_ŒD`�Jg•RpšIdŒ9T‚2Pƒ3P�0Ly,Hw2O€9Tƒ@X„@X…AY†?W„8U‚-L~fsŽž”–‘˜¥²°­¨¨¨©©©¦§¨¦¦¦ª©¦¤¥¦ª««¼»¸¹¹¹°±±£££©©©©©©©©©©©©¨¨¨¡¡¡¦¦¦ªªª²²²ººº«ªª¤¥¥Ÿš—qXI¸²¯UW]nT^4/>$e‹rmÖ¨’#8t#/X4lIO”gg‚a_gGPX<>gGMiIO_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAE`@Da@E`AEaAFa@D\85x}—™Ÿ³²¯¡¡¡ªª««««ÁÁÁ¹¹¹•••®®®À¿À ž¢¯¯®¹¹ºž› ¥¥¤»»»£££–––···­­­���°°°»»»©©©««¬“““   ´´´ÇÇÈÒÒÒÑÑÑÑÓÓÖÒÐÑ·¦Å¹³½© ­—‘À§›Á©ž•–Ÿ™•ž£ž ¸¥ž¯Ÿ�Ÿ–œ˜™ Ÿ ¡£¢¡¢¢¢¡¡¡¢¢¢¢¢¢¢¢¢¡¡¡   ¢¢¢¢¢¢¡¡¡¢¢¢¡¡¡¡¢¡¢¢¡¢ ¡™›¡–“�Ÿ› ²¥ ´¡œ¦™�˜”žœŸ¢£¢¡¢£¢   ¡¡¡¡¡¡­­­³³³¸¸¸³³³®®®   ¡¡¡µµµÊÊÊßßßãããØ××ÇÇÇ­­­¨¨¨²²²¯¯¯¨¨¨¦¦¦···¥¥¥¨¨¨¨¨¨§§§¤¤¤µ´³ ¡¥CZ…)Fw0L�6TˆB\ŠB_ŽPj“^u—Kh“Ok˜A]�2N~*Fx-Iz3O‚8T‚@Y…@X…?W„=VƒAY…1NhtŽ�“—— ­¹¶³¤¤¤¤¥¦¸µ°§¨©�’›7MxJY|””›¯°¯¸¶²¬­®µµµ¦¦¦¨¨¨ªªª¦¦¦¤¤¤ªªª§§§¦¦¦©©©±±²¥¥¥¶¸¹ œšgF1‹uq°“”Xf’:Cu0>m0?v$pOU‚`fmMT][�>\�_u•˜™Ÿp~—Qj”Ol”Mi•;Xˆ.K/K}9U�AY†AY†@X…8T�@X„7RƒhrŒŸ•�Œ“£»º·¸¸··¶±~‡˜Xi‹8o8N}(Rƒ?vag„|ƒ‘¹¶®¶¶¶µ¶¶­­­¦¦¦¦¦¦£££©©©©©©©©©©©©£££¦¦¦±±±ÃÅÆ…‚€,l}† Ã¹y•/Lx2L}mNS‡b`pKP[=@gGMiIO_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBEZ8<˜�‘°²²¬«¬¢¢¢ªªª©©©ÁÁÁººº“““´´´ÂÂÂ�ž�°°°ÄÄÄ��œ¤¤¤»º»¢¢¢“““ÀÀÀ¾¾¾¬¬¬½½½ÂÂÂÉÉɬ¬¬———ÀÀÀÓÓÒ–Ÿ°ÛÚ׿äâÙÛÛÇÃ햎ε§Òº©Ñ¹©Ó¹¨Ë³¥ ˜�˜•žžœ  ž ›™ •”ž¨žŸ²¦Ÿ¸¦ž¤¡   Ÿ   £££¯¯¯´´´¶¶¶°°°§§§   ¡¡¡¡¡ ¡¢¢¨¢Ÿ«¡ž£œŸ™“œ�š Ÿž ž� ””Ÿ ™Ÿ®¢Ÿº§Ÿª¡ž¡¡¡Ÿ¡¡¡¢¢£¢¢¡¡¢ŸŸŸ¡¡¡¢¢¢¢¡¡¢¢¡¡¢£¢¡ žŸž°£Ÿ²±²ËËÌÞÞÞâââÚÚÚÁÁÁ···®®®¹¹¹ªªª¸¸¸¥¥¥ªªª©©©¬«ª�Ÿ¢E\ˆ1P„4UŠ7VˆA[‡@]Œ]q“´© ®¥ Œ�œmv“Ic�If”Fc“[‰W„J]‡°¦¥t˜†Ž�¼¹°nwŽ>o+HwJb�D\ˆ>\‰B[ˆC\ŠBaŒ1a�Nƒ(HyGY}˜–�«®®»º¶ªª¬¶¶¶¥¥¥¨¨¨ªªª¨¨¨¤¤¤ªªª¥¥¥®®®\XV%,OÒÙá[k˜6Q†C_“+;m  K35Šbe^YmLT\=?gGMiIP_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbBEZ8<—��°²²±°°¤¤¤©©©¯¯¯ËËË···”””³³³ÁÁÁ���®®®ÄÄÄ•”—¹¸¼ÒÒѽ½½³³³ŸŸŸ¼¼¼ÉÊÊ®¯°œ™ž¢¤¥±¨¤eg�-*†"b%Dt=mtšãâÝÆÂþ¥™ÕÀ²Íº¯Æº³À¨žÆ¯£¢¢¡¡¡¢¡¡¡¡¡¢¢¢¢¡¢¢¢¢¡ž�Ÿ�›¢¥£©¸¹¹¿¿À¾¾¾¶¶¶´´´¶¶¶µµµ¶¶¶µµµ¹¹¹­­­£¢¦—•œŸž £¢¡¢¢¢¢¢¢¡¡¡¡¡¡¡¡¢¢¢¡¢¢¢›™Ÿ˜•Ÿ›™Ÿ´¤Ÿ³¦Ÿ®£žž ¡ ¡¢¢¡¡ž¢¢§¡Ÿ¨£Ÿ©��š—Ÿ˜–ž�œ ¢¢¢¡¡¡žžž¢¢¢²²²ÌÌÌÝÝÝää䨨ØÅÅŲ²²´´´²²²­®®··¶£¤§EZ‡/L�4UŠ4V‹4Sˆ1TŠVl‘œ˜�Ÿ ¡ ¢¡¡¡¢¢¢¡©§£•—žq}–Wr—VsŸXsžLg•C\ˆ8Rƒ‘�™›”œ;T„–œ§º·°t}’%Ku_oŒ"Q….[ŒI\ˆ@]Š@]‰A\‰A\‰H`‹%`‘(Q‚?vag„~…’¶³­¹¸¸´´µ®®®¦¦¦¦¦¦¤¤¤ªªª©©©¨¨¨¹¹¸\YV"<:<"E   pNSƒ_i†^dmLQ\=?gFLhIP_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbCFY7;œ”•·¸¸®­­   £££ÆÆÆÐÐж¶¶“““¶¶¶ÄÄÄ™™™±±±ÊÊʰ°°¿¿¾ÎÎÎËË˽½½‰‰‰ˆ‰‰¯®­ÉÆÁÈÈÉÄÄÁ“‡‘^K‰)“03 FIq!Hp‰£äãÞÇÃĹ •È»µÀ¨Ÿ¾¥›Ñ¹©Òºª¢¡¢¢¢¡¢¢¢¡¡¡¡¡¡   ¤¤¤¯¯¯¶¶µ··¶±±±®®®¹¹¹½½½¿¿¿µµµµµµ´´´´´´¯¯¯³³³µ¶µ²²±¨¨¨   ¡¡¡¡¡¡¢¢¢¡¡¢¢¢¡¢¡¢¡¡¡¢¢¡¡¡¡œšž”•Ÿ ™Ÿ¯£ ¹¨Ÿª¡ž¡¢¡«¡�¤Ÿ ž•œ˜– œšŸ¢¢¡¢£¡¡¡¡¢¢¢¢¢¢¡¡¡���¢¢¢±±±ÌÌÌÜÜÜâââÛÛÛÁÁÁ¸¸¸­­­¾½¼ ¡¤D\‰1Qˆ5X�4X�5WŒ.S‹Yo’½»´¡¢£žžŸ¡¡¡¡¡¡ ¡¡££¢ª§£’— {ˆ›Sm—Pk˜C`�>ZˆUhŠ=W„;U„ ¥±»¸±r{‘!Gt°²²Œ ­Mp”X�=\Š?[ˆD\ˆ@\Š>\ŠG[‡Y‰D`�A]Š;X‡:U‚>V… ¥±À½¶t}“Fs�¢¥¸²¬§¦¦Œ—Ÿ3aŠ+b‘8_�B`ˆE]ˆ=]ŠA[ˆE]‰?a�5`�N„-JyCW}›˜�©«¬¾¼¸©©ª···¥¥¥¨¨¨ªª«¦¥¤ƒdaoUaoJPtQ]¦‡‚ÑÇÀƿ륭�y‚Z^�fl”lvgTWeFKiIP_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbBEZ8<—��®°°®®®¡¡¡²²²ÓÓÓÎÎθ¸¸ŽŽŽÆÆÆÌÌÌÁÁÁ¸¸¸½½½ÐÐп¿Á�Ž�š™™¡¥¨µ¯²Ü×Ï™ °-KCe�/a�%UƒIK\SKRUGHTMT!Fq{† çæâãßÝ̳£Ô¾®ÅÀ¾Á§œÕÀ°ÌÇá¡¡¢¢¢ŸŸŸ¦¦¦ºººµµµ¶¶¶µµµµµµµµ¶µµµ¶¶¶µµµ···¬¬¬®®®±±±ÁÁÁ¼¼¼¸¸¸³³³µ¶¶µµµ¶¶µµµµ¹¹¹®®®ŸŸŸ¢¢¢¢¢¡¡¢¢¡¡¡¢¢¢¢¡¢¡¡¡ž¡¢¨¢Ÿ§¤¡—”Ÿ”�œ”�œ²¢Ÿ´¦Ÿ¯¥Ÿž  Ÿ¡¢¢¢¡¢¢¢¢¡¡¡¡¡¢¢¡ŸŸŸ­­­ºººµµµµµµ´´´´´´ºººÍÍÍÛÛÛäääÚÙØÁÂÅIaŽ5W�=^‘9[�]’8Y‰\’;Z�8X‰6X‹0T‹Jc�v…¡˜™ §¦¢¢£¡¡¡¢�Ÿ ª§¢j|–>^�Fa�D`�C_Œ@\‰AZˆ‹‘�¸µ®u~“Es™¡£¬«ª¡¡¡š™š—™˜g`c\ŠG[‡>aŽ3^ŽQ†;rqx�««¨ª«¬´´´·¸¸´²²¡„‡Î¾ÀÜÂǦŽ�Y]SY‡^b‘io›nr�ho€]gƒ[`nSXeFKiHO_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbBFY7;™‘’±³³©©©®®®ÖÖÖßßßæææÑÑÑÊÊÊŸŸŸ¨¨¨ËËËÀ¿¿Ÿ  ©¨¥ƒ� š”ŸÔˈ’¥,R‡Z’-Qz?Oe\FLVHMTIQTIQSIQUGOVMU Ep~‰¢ÛÛ×þºÏ½°ÐÊÇʹ°¾¥›Ê°¡Â¶±ž ¡¡¢¢£¢¡¡¡¡ ŸŸ££¢¥§¨¶´³¸·µ¶¶¶´´´¯¯¯²²²³³³¶¶¶¶¶¶¶¶¶´´´±±±¯¯¯¸¸¸ÁÁÁ½½»±¬ª¡¡¢ž ¡¢¡ ¢¢¢¢¢¢¢¢¡ ¡¢¡¡ £¢¡¬¡ž¥žŸ�—ž—•ž�œ  ¡¡¢¢¢¢¢¢¢  œ› ”“ž¡šŸ®£ »¦ž¨¢ ¢¡ ž¡¡¢¢¢¢¢¢  ¡   ¢££©«¬·´³¸¸·¶¶µ³³³­­­³´´¿¾½ÀÂÅRl—A_�Lh•Je�C]�6X�5ZŽ7X�6U‹@]�A_�Sk“kx–›œŸ£¢¡££¢ª¦¢m{”>]ŽGbŽD_ŒD`�C_Œ?Yˆ’—£¹·°qz� Ft´“�²°°±·¸««ª‘’�UNU$•>#·'@´]‘Je’Lh•Mi•Gc‘8WŒ5Uˆ6X‰6W‰6T„?[ˆGc�B^� ¦²ÊÆÀs{‘Es¤®­²²²°ª¯±ˆ�Ìš–¶Šƒmbb™–•¶©©Â¥¥Ž’�H†V �,®)5°5Wµa{¸b(=r8Tƒ§«±±°®···¥¥¥¨¨¨ª««©¨§mXXkSZx[d„]eƒ^g]f…\_„]d]hƒ]b‚]e†_feCFeEJjJP_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbBE[8<”Œ�¯±°ÓÒÒÂÂÂÕÕÕ²±±‘’’£¢¢À°¯ÊÁÁÄÆÈ[p”,CsŽ‘™Ž¤ªzcgX=@RKTTHPUHPTHQTHPTIQUIQUIQUIQUIQTIQUHPVMU!Fq{†ŸîíéßÚÛÀ¦™ÑÈÀÊËÌÐżİ¦Ç® ª£Ÿž�¢“�›—’�¤™�¹§Ÿ®¤Ÿ¤¡ �¡¡¢¢¡¢¢¢¡¡¡¡¡¡   ªªª¯¯¯¡¡¡   ¡¡¡¢¢¢¢¢¢¢¡¡ ¡¡ž¡¢©£Ÿ¤¡¡“‘�—’�™’›¸¦Ÿ°¤Ÿª£Ÿ� ¡ ¡¢¢¡¡¢¢¢¢¢¢ŸŸŸ¡¡¡¨¨¨¡¡¡ŸŸŸ¢¢¢¢¢¢¡¡¡¢¢¢¡¡¡ž¢¢¥¢ ¨£ ™˜ ”�œ–‘œ­Ÿžµ¥ž­¤ ¡  ž¡¢£¢¡¢¢¢¡¡¡¡¡¡   ¯¯¯¬¬¬¡  ŸŸ    ¥¤¡¤£¡”™žd{šOk–B`‘B_’7YŠ?]‹Ie’Lh•Ie’FaŽ@]�8X‰9Z‹7V‰8W‰D`�A]Œ—ž©ÍÊÃ�Š Cq«®°¶µ¶ÀÁ¼K]ƒ•‘�¶�“ʘ‘½�’¡–—�‹•¼ª©¶¤Ÿ¨¢œ<‰K%�=®5©D*=t7Tƒ—›¡ª©§¸¸¸²²²®®®¥¥¥¶µµ…_c\g…^d„\_�]e…\b…]c„_g„]c…\`†[]‚_icDJdEIjIP_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbCFZ7;˜�‘ÁÃÂÔÓÓÂÂÂØØØÎÎÎÓÓÓØØØÜÝÜÎÐκ¼¿9T…8nˆŒ–²¯ª~noP>GUKRTHPTIQUIQUIQUIQUIQUIQUIQUIQTIQUHPWNVBmŽ™³úùõÒÍÌÀ®¦ÍÊÈDz¦¾¥›Î·ªÍ¿¶¥š�™—Ÿœ™Ÿ�›Ÿ™—Ÿ˜—Ÿ°¢Ÿ³¦Ÿ³¤žŸ   ¡¢¡¡¡¢¢¢¢¢¢      ¡¡¡¢¢¢¢¢¢¡¢¢¡¡¡Ÿ¢¢¤ ž©¡ž¨ŸŸœ–�›— œ›Ÿ›™Ÿ””ž§ž µ¦¡·¨¡§¢¡ £¤ŸŸŸ���¨¨¨®®®¸¸¸¯¯¯¨¨¨ŸŸŸ¡¡¡¢¡¡¡¢¡¡¡¡«¢�§¡ ¡˜œ™—Ÿœšž�šŸ—– �™Ÿ²£Ÿµ§Ÿ®¢�� ¡ ¡¡¡¢¢¢¢¢¢¢¢      ¢¢¢¢¢¢¢¢¢ ¡¢¡¡¡Ÿ¢¢³¨Ÿ‘”œm~œHg•Da’>\‹D_ŒLh•Mi–Fa�>[Œ9XŠ5Sƒ5Q9U„>Z†B_�‹‘�¹µ¯w€•Er«°²Êļ““ŸE{Xgг¶®px�ppÊŽŒ¹–“�‹�Ÿž¢±¤žÉ¬±Ž“„P—`†3)>s7S‚œ ¦¤£¡¤¤¦¯¯¯µµµµµµ¹¸¹ƒ_h�\e…]a…\`‚_h…\b�VZ�UX‚[b„\cƒ]d†_edCHeDJiJO_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaBEZ7<—��ÔÖÖÕÔÕÆÆÆ×××ßßßÙÙÙÒÒÒÊÊÊÀ¿¾ÄÇÊA[ˆ";oˆŒ–©¬ª|kmR>FTJSUHPUIQUIQUIQUIQUIQUIQUIQUIQTIQUHPVMU Ep€‹¥ÞÝÙ»··À¥™É®ŸÄ«ŸÃ¨œÎÇÁÆÊÍ™™ ž� ¢¢¡¢¢¢¢¡¡žœŸ••Ÿ�—žª¡ º¨Ÿ®£ž¢¢ Ÿ ¡ ¢¢£¢¢¢¢¢¢¡¢¢¢¡ ¡¢¢¡ ¢¢¡®¢œ­§§¢›¢–•ž�œ ¡¡¡¢¢¢ ¡ ¢ £š™¡’�•¤˜˜±¡˜°ž•¯±±»¼½´´´···µµµ···¶¶¶±±±§¦¦Ÿ¡¡©¡ž© ž¢›Ÿ—”�›š  Ÿ ¢¢¢¢¢¢¡¡¡�šŸ”“ž¡šŸ­£Ÿ»§ž©¢ž¡¡¡Ÿ¡¡¡¢¢£¢¢¢¢¢¢¡¡¢¢¡ ¡¡¢¡¡¤¢¡­¡œ œ  —�žš ”™ j}šMj—Db‘Hd’Jf’Hd‘A^‹8Xˆ2P„/K~2N€5Q€=W†‘–¢¹µ¯py�$JvŸ ¨Kr•o s¤XŠ…†”tyt?@B­¥ªµ�ŽÅ‘’»’�›�• œ›²¦¦Ì¬¬yŠ~%>q8Tƒœ ¦¦¥¤ªªª¥¥¥§§§¬­­···…_e…Z^�^f‚`h‚UX„Y]©��±££“km„\`ƒ\aŠ^`fKLdEJjIP_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbCFW59­¤¥ÓÔÔÜÛÛÊÊÊÛÛÛÎÎÎËËËÉÉÉÔÔÕÇÇÆÃÆÉ@[ˆ!;oˆŒ–¬­©|lnR>EUKSUHPUIQUIQUIQUIQUIQUIQUIQUIQTIQUHPVMT"GrxƒœßÞÙÏËÉ˱¡ÏÆ¿ÇÀ½Á§›ÏÈÃÐÓÔ¢¢¡¡¢¢¡¡¡¡¡¡¡¡¡¢¢¢¢¡¡ž�¡•”žœ˜Ÿª¡ º§ž­¤Ÿ¤ Ÿ�¡¡¢¢¡¡¡¡Ÿ¡¡¦¢Ÿ©£ ¨�œ›™¢sr�Ї‰¥¥¥¡¡¡¡¢¡   ¤¤¥«©¦413   š–’’�Œ¹¹¸´µµ´´´µµµµµµ¶¶¶¶¶¶²²²¤¡£š–�˜—ž¡¡¡¢¢¡¡¡¢¡¡¡¡¡¡¡¢¡¢¢¡¡ ¡›š —“��™Ÿ²¤Ÿ¶¥�¬¤ ¡ Ÿž¡¢£¢¡ ¡¢¡¡¡¦¢ ¬¡Ÿ£œžš–Ÿ˜•žžž¡  ¡¦¤¡¢¢¡–šŸdzšQl–Ba’Lh•Hc�9ZŽ6XŒ4R†4Pƒ1N‚8S…“˜¤º·°t}“"Er3b�$«)€ª3•»Y�ƒ˜•“�MMN©­«œ�ž£›œµ‹‘Éš”¶‡‰ –™�™š¨Ÿ¦%>o9T„«¯µ¨§¦¬¬¬©©©©©©§¨¨¤¢¡…^d‚]d‚W[€T[Ÿ„‡ËÉÉÑËͧŸŸ¬£¦£‹Ž…\dŒffsSXeEKiHO_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEcCGV48º±²áââÜÛÛÆÆÆÃÃÃÏÏÏÐÐÐÒÒÒÔÔÔÈÇÆËÎÑ@Zˆ!:n‹Ž–·¬¥{lnR>EUKSUHPUIQUIQUIQUIQUIQTIQUHPTIQTHPTHPVNV EpŠ£âàÛÎÎÐÊÉÇÈÉÉÅÃÃÀ­¦ÓÑÐ̵©   ¢¢¢¢¡¢¢¢¡¢¡¢¡¡¡¡¡¢¡¢¡¢¢¢�› ˜–ž—–Ÿ°¢Ÿ´¦Ÿ²¥žž  ¤¢ ¨¢Ÿ¨ž�š–žš–Ÿ��¥BCEL²±±��ž   ¢££¡ Ÿ239?0a)Z*Z"OONOÍÌ˵µ¶´´´µµµ¶¶¶±±±³³³³³³°±°©©©Ÿ Ÿ¡¡¡¢¢¢¢¢¢¢¢¢¡¡¢¡¡¡¡¡¢¢¢¡¢¡¢š™Ÿ˜•Ÿœ˜Ÿ´¤Ÿ³¦Ÿ®£žœ ¡¨¢Ÿ¨¢ §›œ˜– ™–žž�¡¢¢¢¡¡¡¢¢¢ ¡¡¢¢¢¢¡¡«§¢Š’�nšEd“Gd“Ea‘<\�6U†5S†5U‹1Q‡›¤±½º³r{‘#Htr¢!\Š:‡«7™¿]’|€—žž™JKL«ªªŸŸŸ¡¡¡Ÿ¥¤¡‘–¸™›ÆŠ‡»—•”„Œ%>p8Sƒª®´°¯­´´´¦¦¦ªªªªªª©§§„]a�S]š{€Éº¾ÆÅÇ©˜ ‚[cRTˆ_i•v�fnoSY`DIgGMhIO_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbCFV48·®¯ÛÝÝÇÆÆ¾¾¾ÏÏÏÒÒÒÒÒÒÏÏÏØØØÌÌËÐÒÕ@[ˆ";o�ƒ“¥¤ª}lnQ>FUKSUHPUIQUIQUIQUIQTIQUHPTIQTIQSHQVGM[MQ Ep|ˆ¡âàÛÔÔÖÇÉÊÕØÙÎÁº¾¤™È¬�¿®¦¬¬¬   ¡¡¡¢¢¢¡¡¡¡¡¢¢¢¡¢¢¢¡¡¡¢£¡¢¢¡ž›Ÿ•• ›–ž¬¡ ¸§Ÿ²¡��–œ–– ››Ÿ¥¢¡¢¤¤+eJXm°®«��ž¤¤¤ªªª‡ƒ|,Czli—4Cx1;p&:r7o.c'PMLÈÈȽ½½³³³°°°²²²´´´¶¶¶¶¶¶¶¶¶°°°§§§   ¡¡¢¢¢¢¡¢¡¡¡¡¢¢¡¢¡¢¡¡¡¢¢¢¢¡¡œšŸ’”Ÿ¡šŸ®£ ¹¨Ÿ®ž�™”œ–—¡žœ ££¡¢¢¡¡¡¡¢¢¢¡¡¡¡¡¡¡¡¢¡¢¢�žŸ¯­«µ³° §¯q„ Ig”Fc‘<[Š7R�4Q„3Sˆ›£°½º³r{‘!Iu*W~2c’%�· hšBa‰¶¶¹ŠŠ‰NOOªªªŸŸŸ¢¡¡¢ ¡¢¦¤�ŸŸ¡—�¾—”°ˆ$?q9T„©­³°¯­µµµ¦¦¦¨¨¨ªªª§¤¤ƒiqżÀÉÈÊœ�›‰bg|QX‡_dŒgrŠcjƒ]c…_fpJM[;?fFLiIP_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbCGW59°¨©ÏÑÑÔÓÓÃÃÃÍÍÍÒÒÒÐÐÐÍÍÍßßßÒÑÐØÚÝA\‰!;nƒ‡•ªª©|knR>EUKSUHPUIQUIQTIQUHPUIQTIRTHOUHOZJOKOg8VvEp{†ŸãáÜâäçÖÍÇÈ´«È® Ëº±ÒÎËÑÎͺ»»¶¶¶¥¥¥   ¢¢¢¢¢¢¡¡¡¡¡¡¢¢¢¢¡¡ ¡¢ ¢¢¨¢ŸŸŸ¡’��š”� –œ¹¦ž¬£Ÿ¥¢ ž¡¡¡¢¥'^HTg°®«�žŸ¡¡ 548   ':f+Z G"K)YL¼¼¼­­­ÀÀÀ»»»¹¹¹³³³µµµ¶¶¶µµµµµµ¶¶¶´´´¢¢¢   ¢¢¢¢¢¢¡¡¡¡¢¡¢¢¢¢¡¡Ÿ¢¢¢¢¢§¢Ÿœ›¡“�œš“�¨›�·¥�ª£ ¢¡¡�¡¡¢¢¡¢¢¡¡¡¢¢¢¡¢¢¢   ££¤¶¶¶´´µµµ¶¼º·µ¶µ©¬±h~�Rm˜=\Ž?]Œ-Nƒ™ ­Ä¿°±³¤¥©Tnˆ:bƒ-Wƒ$Cuit‘×ÒÇ‚‚„EFG«««žžž¢¡¡¡¢¢¢¡¡¢¢¢ ¤¢¢  ‘”�&>p9T„˜œ¢«ª©¹¹¹¼¼¼¯¯¯¨©©²¯°‘pt³¹¹¸ ›„Y]…[`ŒgqŠeo‚`l„]c‚]d‰_dpLP\=@gGLiIO_?BaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEcCGV48µ¬­ÙÛÛÒÑÑÄÄÄÖÖÖÏÏÏÖÖÖâââèèèÑÐÏ·º½@Zˆ!:nŽ�•¨¬ª}lnQ>FUKSUHPUIQTIQUHPTIRTIQUEIXLWRP`+MwFUKSUGOTIQTIQTIQVGLWIQORf4Ot*W‚f€—´¾ÆúõðèèçàààÓÖÖ¿¸¶Â´¯ÓØÙÎÏÏàáâæÚѱ¶Á�žŸŸ  ¡¡ ¢¢¢¢¢¡¢¢¡ ¡¡¡¡¡¢¢¡­¢�¥Ÿ �•œ˜– œšŸ¢¡¡¢£¡¢¢¡�›Ÿ—– ›—ž®¡Ÿµ©£(`HTg¬«¨ª¬®a^Y6CSˆb`‘$An-5o/ ƒ‚�»»»µµµ´´´²²²¯¯¯¹¹¹¾¾¾ÁÁÀ´´³§§§¡¢£ŸŸŸ¢¢¡¢¢¢¢¢¡¡¢¢ ¡¡ ¢¡§¢Ÿ«¡�¤�Ÿ™”œ™˜ žœŸ¢¢¢¢¢¡¡¡¡œšž””Ÿ ™Ÿ®¢ ¹¨Ÿª¢ž ¡¡ ¡¡¡¢¢¢¢¡¡¡¡ŸŸŸ¤¤¤¨©©µµµ¶¶¶¶¶¶³´µ´³±¿¼¸•ž«·»¿êåáåâáÔÖ×ÇÈȾ¿À°°¯¾º·—Ÿ¦]v‰Jx*Hgx†œ«¨¤¤£¢££¢ž ¡ ¡¡ ¢¡ª¡ž¬¤ •�š&>p9T„¦ª°§¦¤©ªª¥¥¥§§§®®®¹¸·ˆbh�dn~[hƒ^f„[`„]d…_f†]c…]b}\hˆacsNM[p9T„«¯µ®­¬²³³¨¨¨©©©§§§¥¤¤Šfqƒ`j‡^b„\`…_f‡_bW\�X\„[_�ZbŒc_tPL[GTKRVFJYLVQP`,Nx;a„Su’ÀÄÆâááóðíÞßáÄÅÅÙÙØÛÛÛåååÉËÌĽ¸Ð¾²ºµµh}�TmŽIi“Xs—´¢�³¦Ÿ­£žœ ¡¦¢ ¨£ ª�œ›˜Ÿ™•žœœ ¡¡¡¢¢¡¢¢¢¡¡¡¢¢¢¢¢¢¢¢¢¡¡¡¢¢¢¡¡¡££ žŸ¤(`BOf¼¬§¹«¥‹~u#2'4g,I.Y);s\VV½½Á²³²½½½º»»³³³¶¶¶µµµµµµ···±±±¬¬¬ ž¡˜•œ—•ž¤� ·¦ž²¥Ÿ¨¡Ÿ› ¢©¢Ÿ©¢ ¦›œ™— ˜•�Ÿž¡¢¡¡¢¢¢¡¡¡¡¡¡¢¢¢¢¢¢¢¡¢¡¡¡¡¡¢¢¢¡¢¡¡›™Ÿ˜•ž›˜Ÿ´¤Ÿ´¥Ÿ®£Ÿ� ¡¤¢Ÿ¨£ «Ÿ�›—ž˜”��š ­­­²³³¸¹¹±±²LfŠc—=“¶‡©¸ÂÈËíâÜáãä×ØØÆÇǽ½½¾½½À¼¸¤ª¯XsŒ.W~8\ƒ‰‹–¢šŸ£�¢–”�¥¤£’•›%=o8T„©­³°¯­²²²¦¦¦ªªªªªª¦¥¥†]`ƒ\b„^c…^e€X^}RY¡tq™ns�baZc‹a`sOJ[AaAEaAE`@DaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEbBFW59®¦§ÍÏÏÔÓÓÄÄÄÓÓÓÑÑÑÐÐÐÎÎÎåååÒÒÑØÚÞB\Š!:nŠ�—®¯¬„mkHE^;Vw!O~j„š±»ÃäàÛâáàÚÚÛÖÖÖÌÌÌâââàààÐÐЫ««ŒŒŒuvv{zxmt{Gk˜cv�lyŠx‡Pf‰Sd}¨¥¥š™ž”‘�ž–�¨›�¶¤ž¨¡Ÿ¢¢¡�¡¡¢¢¢¢¢¡¢¢¢¢¢¢   ¢¢¢£££   ¡¡¡¢¢¢   ¢¢¡¢¢¤'_IUh´¯«œ›ž“’žŠ†Ž%$I-4b?YWR°±²žžžŸŸŸ¢¢¢§§§¶¶¶¨¨¨¢¢¢ŸŸŸ¡¡¡¢¢¢¢¡¢¡¡¡Ÿ¢¢¤¢¡£  ˜— —“ž�”œ¯ ž²¢œ¦£¡ ¡ Ÿ¡¢£¢¡¢¢¡¢¢¢¡¡¡   ££££££   ¢¢¢¢¢¢¡¡¡¢¢¢¢¡¡ ¡¢¡¢¢¥¡Ÿ�œ¡“‘��–�¤˜œ¸¤ž¨¡Ÿ¤¢¡� ¡¢¡¢£¢¢Ÿ  ¥¦£‹‰•O…;šÀZ©Æ4Œ´~­.‹´7Œ±‚¦¸ÇÈÉêæãåäâÙÙÙÅÅÅ·¸¹ÂÀ½º¸¸¢¥§Pnˆ3Z6Y�ƒ�š“–�$=p8Tƒ™�£«ª©½½¾½½½···¨¨¨¹¸¸†^b�SX�soѳ¦ÜØÔ¸�£…ahŽhm˜sq¬|¥riœqw‰fp}ZSlKQ]>B]>CbADaAE`@EaADaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEaAEcCGV48¶­®ÙÚÚ×ÖÖÇÇÇÙÙÙÏÏÏÚÚÚéééëëëÑÑй¼¿@[ˆ!;nŠ�š�•Ÿ/Ow8^‚Uv“¿ÃÅáààöòïÚÛÜÆÆÇ×××ÛÛÛåååÌḬ̀°°ˆˆˆyyyuuuxyyyxvrw~Uq•Qo•Sp–Sm�=V�egn™‰ƒ¢¤®š–�˜—�˜•žž› ¶¦Ÿ²¥Ÿ¬£Ÿž   ¢£      ¦¦¦°°°µµµ¨¨¨¢¢¢ŸŸŸ¡¡¡£¢¡ ¢¥'`HVi¼®§›—œ˜”ž£ ¦=8;G@3:p 3NLH®²´ž��¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¢¡¡ ¢¢ ¡¡¨¢Ÿ©¢Ÿ¦œ�š— ™–�˜–ž™–Ÿ¤ž ¸¦ž±¥Ÿ©¡žœ ¡¡¢¢ŸŸŸ¢¢¢§§§´´´±±±§§§¡¡¡   ¢¢¢¡¢¡ž¡¢¦¡Ÿ¦¢ «žœœ™ ™•�™˜ž˜•ž�™ ´¥ ´¥ž­£ŸŸ  Ÿ¡¢¡¡¡¤¤£•”™,Wƒs¤D›¿9’¸.‰±s£b™!�­%~¨~˜¤¸»ÄââàâââÙØØÅÆÇ½¾¾À¾¾½»¸©®±SpŠ6^�+O-Br9U„šž¤¤£¡¥¥¦²²²ºººÂø¶·�klâ¡ÕÊκ°¯‰il€TXšjk¨wsªvsŸmf£ttžst°€„­vr¦smˆ_`lKM\>D^>BaAEaAEaAE`@EaADaAEaAEaAEaAEaAEaAEaAEaAEbCGW49µ¬­Õ××ÚÙÙÊÊÊàààéééäääÝÝÝÈÈÈÀ¿¿ÂÅÈ?Z‡-Bs(Kz2[Xw’ÃÊÐñíêéèçäääÈÉÊÕÕÕààààààÏÏÏ®®®ŠŠŠxxxvvvxxxyyyxxyzyvpv~NošPo—Tp•cvŽp{Šoyˆ¡q�ki››˜¤§§££¤›˜ž•”ž¢›Ÿ±£Ÿ¶¦Ÿ§ž›¦§¨¯®®···¶¶¶µµµ···±±±«««   ¡¡¡¬£ )_COe¨£ª–•œ¡ ¡£££©©§=9>0 $!›‘Š·¨¢�ŸŸ ¡¢¡¢¡¢¢¢¢¢¡¢¢¢¢¢¢¡¡¢¡¡¡Ÿ¢¢¨¢Ÿ©¢Ÿ¦œ�˜•ž™—Ÿž�Ÿ¢¢¢¢¢¢ Ÿ¡š—ž•”Ÿ¨žŸ²¤Ÿ¶¥ž£Ÿ�©ªª°°°¸¸¸µµµµµµ···¯¯¯©©©žŸŸ¢¡ ¬¡�§  ž–œ˜– ›™ž¢¡¡££¡¢¡¡›™ž–•Ÿž™Ÿ±£Ÿ¶§Ÿ­¢žž¡¡œ�Ÿ®®¨st‰Iyx¦(„¯n¡a˜w¦B›¾v¥CoŒŠ™µµ³ÌÌÌÝÝÝäääÖÖ×ÈÈÈ¿¿¿´³³¾¸³– ¨cyŒ"Bq1M�¤¨¯§¦¤©ªª¤¤¤¨¨¨°±±¶°±›€‚ÚÕØ¡zz|OP�np¥vr…fj‰`]¡rq¦y|¦wz°zx§ql©tp©tq®wq¤snŠ``lJN\=B_?CaADaAEaAE`@DaAEaAEaAEaAEaAEaAEaAEbBFW59³«¬Õ××äääÍÍÍåå娨ØÍÍÍÅÅÅÔÔÔÇÇÆÈËÎ7Sƒ:km…›°»ÄäÞÙåããÛÛÛÖÖÖÌÌÌãããßßßÒÒÒ«««���vvvwwwxxxyyyyyyyyyxxxyyxux{gt…myˆnz‹mzŠYr“Po˜¿Œ‡˜leŒg[�}q—˜™ ¢¢§§§˜•›“’�©Ÿ¢»·¶¿ÀÁ¹¹¹´´´´´´¶¶¶µµµ¶¶¶¶¶¶´´´ªª©£ž¢(`FRg¯¬«Ÿ Ÿ¡¢¡   ¤¤¥Ÿ Ÿ~~w€€{‹‡Œ¨¡¨§Ÿ�»¨Ÿ­£ž£¡ ž ¡¡¢¢¢¢¡Ÿ¡¢¢¡¡¤¢ ®¡œ¢� ›•œ˜˜ ž� ¢¢¡¡¢¢¡¡¡¡¡¡¡¢¡££¢Ÿ� ˜—Ÿ—”ž¯¦¥¿½»¿¿¿¸¸¸³³³µµµ¶¶¶µµµ···µµµ²³³¦¥¥ ˜�•“��œ ¡¡¡¢¢¢¡¡¡¡¡¢¡¡¡¢£¢¡  �› ”“ž¡šŸ­£ »§ž¨¢Ÿ¡  š� G`S~_—\“x¦+†®q¢.Vƒ�•�¥¤£��ž¢¢¢´´´ÊÊÊàààáááÚÚÚÆÆÆ¶·¸Á¾¼¾¼º“›¢•™¢µ¶·¥¤¤ªªªªªª¨¨¨¦§§§¥¤zZ_¨}‡°yv¢wz‚\aqW[rXPžt|«z|«wv«tm§so«uq©uq©uq¨tpªtp®wq¤qn‹b`iIN^?C]>CaAEaAE`AEa@DaAEaAEaAEaAEaAEcCGU37¾¶·ïñðëëëÌÌÌÆÆÆËËËÎÎÎÔÔÔÓÓÓÄÄÄÖÖ×µºÂ±¸ÀäãâøõòÖרÉÉÉÕÕÕÜÜÜäääÍÍͯ¯¯ŠŠŠyyyuuuyyyyyyyyyxxxyyyyyyyyyxyyyyx{xv{vwy}On—Sp•Sp—’i]®}‚¿–›Ñ™†špb˜‰}�‹Š°´µ³²²°±±°±±³³³¿¿¿½½½ººº³³³´´´···´´´´´´²±±°³µ)aGTg¯­ª��Ÿ¢¢¢¢¢¢   ¢¢¢ªª«©©«¥¥¥››ž—•�š˜ ¬¡Ÿ¸¦ž®¥ £  �¡¡§£Ÿª¢Ÿ¥›œš— —•�ŸŸ¡¢¢¡¢¢¢¡¡¡¡¡¢¢¢¡¢¢¢¢¢¢ŸŸŸ££¢¨§§´³´¯±²²²²µµµÁÁÁ¼¼¼¸¸¸³³³µµµ···³³³´´´°°°¯°±¦¥¥¢£¢Ÿ Ÿ¢¢¢¢¢¢¡¡¡¢¢¢¡¡¡¢¢¢¢¢¡¡¡¡›š —”žœ™Ÿ³¤ µ¤ž°§¡¢Ÿ Pa‚Q^~K\€Ke„Om‡F^€••›§¦¤ ¡¡££¢¡¡¡ŸŸŸ¡¡¡´´´ÉÉÉÝÝÝâââÚÚÚÅÆÆ½¾¾ÂÀ¾º¹¶µµµ¬¬¬´´´§§§ªªªª«ª¥¥¦”mq§wu…cihKQtX^–if´�ƒ©vv¬uo¨so¨ut«uo§tuªuo©tpªuo¨tq§tsªup«vr¦sm‰`_lJL]?C^>BbAEaAEaAD`AEa@DaAEaAEbCGU37Á¹ºçéèÅÅž¾¾ÌÌÌÓÓÓÒÒÒÏÏÏÙÙÙÉÉÉÛÛÛìëéëéçååæÇÇÈØØØßßßäääÏÏϯ¯¯‰‰‰yyyvvvyyyyyyyyyyyyxxxyyyyyyyyyxxyyyxxxyxxywxywwx{yvht…Zr�˜ne¹ˆ€­¥£šˆ�Ì¢š¸~u´Œx�~w©¨¦»¾À···±±±¯¯®´´´¾¾¾¾¾¾¹¹¹¯¯¯²²²°°°¸·¶¶·¸'_LYl¼º·œœ�   ¢¢¢¢¢¢¡¡¡        ¡¢¢¡¢¢¢�›Ÿ˜–Ÿ˜–Ÿ°¢Ÿµ§ ¶§Ÿ§›œ—– ›—ŸŸ� ¢¢¢¡¡¡¢¢¢¡¡¡¢¡¢¢¢¡¢¢¢      ªªª±±±···µµµ¶¶¶µµ´±±±¯¯¯¸¸¸¾¾¾ÀÀÀ¶¶¶¯¯¯²²²±±±¶¶¶¶¶µ···¯¯¯©¨©ŸŸŸ¡¡¡¢¢¢¡¡¡¢¢¢¡¡¡¡¡¢¡¡¢¢¢¡¢¢¡›™Ÿ–• �™Ÿ³£Ÿ´§ ¼«¡«  ¢�££�¡©¤¤¬©¥£££ ¡¡¢¢¢¡¡¢¢¢¢¢¢¢ŸŸŸžžž¯¯¯¼¼¼ÌÌÌÛÛÛäääÖÖÖÈÉɽ½¾¶¶¶«««µµµ¥¥¥©©©¨©¨²¯±“oukOPmT`˜nr¯{|¬{…¦qo¦tu§tt¦uw£u|§ts¤uz¤u{§ut§tt¥ux¤t{©tm©toªto«vx£sq†`flKM\=C_?CaAEaAEaAE`@DaAEbBFW59®¦§ÌÎÎÓÓÓÃÃÃÓÓÓÒÒÒÑÑÑÍÍÍÜÜÜÌÌÌæææÛÛÛÔÔÕÍÍÍäääÝÝÝÎÎΞžžŠŠŠwwwwwwxxxyyyyyyyyyxxxyyyyyyyyyyyyyyyyyyyyyyyyxyxyyyyyyxxy{yvyyx‘d^À’€±©£¡©««¨¨¸«­À�‹Ã��¬ƒp�{q®°¯³µµ¼½½²±°­¬¬µµµ¶¶¶¿¿¿µµµ¶¶¶µ´´¶·¹&^Q^qÈÆÂ¯°°ªªª   ¢¢¢¡¡¢¡¢¡¡¡¡¢¢¢¢¢¡¡¡¡ ¢¢£¡¡ � •”Ÿœ—ž¡–š³¡�¦ššž  Ÿ¢¡ ¡¢£¢¡¢¡¢¡¡¢¡¡¡¡¡¢   ªªª³³³¶¶¶¶¶¶µµµ¶¶¶µµµµµµ···´´´²²²®®®µµµººº¼¼¼¶¶¶µµµ´´´¶¶¶µµµ¶¶¶µµµ²²²¦¦¦   ¢¢¢¡¡¢¡¢¡¡¡¡¢¢¢¢¡¡ ¡¡¡¢¢£¡ žœ ““ž¡˜ž¡–›´¢�¤œ�¡¢¡œ  Ÿ ¡¢¡¡¢¢¢¡¡¡¢¢¢¡¡¡   ®®®µµµ¶¶¶´´´³³³¼¼¼ÊÊÊÞÞÞàààÙÙÙÉÉɰ°°°°°···«««©©ª·µ´tUP“my­{}ªz…£rw¥st©uqªtm£u|§tt¨ur£u|¦uu§ut¥uy¦ux©tq¨tq¥tx¢u~¦uu£tz¨uv­wt qv‹bbiIN^?C^>CaADaAEaAEcCGV48µ­®ÚÜÜÑÐÐÄÄÄÙÙÙÎÎÎÓÓÓÜÜÜîîîÕÕÕÍÍÍÔÔÔÝÝÝáááÊÊÊ¿¿¿ªªªƒƒƒooowwwwwwzzzxxxxxxyyyxxxyyyyyyyyyyyyyyyyyyyyyyyyxxyyyxxxyyyxxxyxxyŒ`[Ö¡Š»°§Ÿ ¢µµµ´¶¶±´¶¸¤£º��Ò›ˆ˜l_¥”‰œšš¼¿Á²³³®­­¯¯°´´´¿¿¿½½½»ºº´¶·'^R^qÈÆÂ¯°°ªªª   ¢¢¡¡¡¡¡¢¡¢¡¢¢¢¡ ¢¢¡¡¡¥¢ «¡ž¡›œ¨¢¨MWpI5e»µª9UyŠŠ�­¦£œ ¡¢¢¡¢¢¡¡¡¢¢¡¡   ªªª³³³¶¶¶¶¶¶µµµ¶¶¶µµµµµµ···³³³µµµ®®®¯¯¯±±±···Â»»»¸¸¸³³³µ´´··¶µµµ²²²¦¦¦   ¢¢¡¡¡¡¡¢¡¢¡¢¢¢¡ž¡¢¤¡ ¥¢ ­¡� œ ˜”�˜–ž—”�žš ²¥ ¶¥�¬¤ ¡ Ÿž¡¢¢¢¡¢¡¡¡¢¡¡¡¡   ­­­´´´···¶¶¶¶µµ´µµ´´´»»»ÍÍÍÜÜÜáááÚÚÚÆÆÆ°°°···¯°°º¸¶¢�€ª{~£mt¦tu¨uq¥uz©tq¦tw¦uw¨us¢u}§ut¥uy¤u{¨uq¤u{¥uw¥ux¨ur¨tr¤ty¦uw¨tq£tz©ur©vw¢sv‰`^kJM]>C^=AbAEcCGW49´«¬×ØØØ××ÈÈÈÝÝÝäääãããèèèÄÄÄÕÕÕßßßÞÞÞÎÎν½½ººº´´´²²²¨§§   ‚‚‚yyyrrryyyyyyxxxyyyxxxyyyxxxyyyyyyyyyyyyyyyyyyyyyyyyxxyyyxxxyŠ^XØ£Œ¼²¨šœŸ žž©¨¨°¯¯µ¹º´¹¹¯šŸÉ¨Ÿ²q¯‡s�~v¦¤¢¾Áö·¶±°°°°¯³³³ÀÀ¿¾ÀÁ'_LYm»º·œœ�   ¢¢¢¢¢¢¢¢¢¡¡¢¡¡¡Ÿ¡¡©¡ž¨¢ §›œ™– —”�§¤¥|‚ŠKZzSk†¸´±oz“œ’”¸ª¡²¤ž   Ÿ¡¢¡¡¡¢¢¢¢¢¢      ªªª±±±¶·¸µµµ¶¶¶µµµ°°°²²²±±±···¶¶¶µµµ°°°°°°···¿¿¿¿¿¾¸¹º¬®¯¨©©ŸŸŸ¡¡¡¢¢¢¢¢¡¢¢¢¡¡¢¡¡¡Ÿ¡¡ª¢ž¨¢ £™œ˜– š–�¡ ¡¢¢¡¢¢¢š™Ÿ˜•Ÿœ˜Ÿ´¤Ÿ´¦Ÿ¯£žž ¡ ¡¢¡¡¢¢¢¢¢¢¢ŸŸŸ¢¢¢«¬¬³³³¶¸¸µµµ¶¶¶²²²¯¯¯»»»ÍÍÍÛÛÛäääÙÙÙÃÃö¶¶®­®ª¯°±©¦žƒ†¡op¥qw¥u|§ut¥uy¥ty¥uw§tr§ut§uu§us§ut§uu¨ur¤uz¥uy¥uy¥uy¥tz¦uw¨ur§ts¢t}ªtn«vx¥snˆ`ckLS\«1™"LšQ—¡—§ž¤©£ªž£Ÿš––·‚sÀ«¡œŸ¡¤¨¨žŸœ™’‘¡}u²€€¾‹|~jpAw 1i(dMSj¢ž¦‘�›¡œ ³¦ ·¥�¨£ ¡  Ÿ¢¢¢¢¢ŸŸŸ¢¢¢§§§¶¶¶¨¨¨¢¢¢ŸŸŸ¡¡¡¢¢¢ ¡¢ ¡¡¤¢ ©¢Ÿª žš˜ –’œ”“ž�—Ÿ«£ »§ž¬£ž¤¡ � ¡¡¢¢£¢¢¡¡¡   ££££££   ¢¢¢¢¢¢¢¡¡¢¢¡Ÿ¡¡¤¡ ¤¢¡®¡œŸ�¢—’œ•”ž˜“�¥ž ¸§ ²¤ž§¢ Ÿ   ¢£¡¡¡   £££«««´´´¥¥¥¢¢¢ŸŸŸ¢¢¢¢¢¢Ÿ¡¢¡¡ ¤¢ ­¡�¥ŸŸ˜•ž–”�•’� šŸ°¥ ¹¦ž©£Ÿ¢  ž¡¡¢¢¡£¢¢¡¡¡   ¤¤¤¡¡¡�žŸª©¥rx�NOŽz}º~ƒ¼©«ÁËÌÐääÞâââÙÙÛÆÅű°¯¶¹º¯±±·³³¥…„§z}§oj¦v|¡u£t}¦uu§tt¦uv£u}¦uv¦tu¦w}¤sxžil®�†µ˜œÝÙ×ÈÊÉÝààÙØÙââáËË̹¹¸ª£¡žžŸž ¡¤£¢¢¢¢   ¡¡¡¤¤¤      ¢¢¢¢¢¢¢¢¡ ¢¢¡¡¡¤¡ «¢ž§Ÿžš–Ÿ–“�‘‘œ­£¥¿�{ž|s¯¥¡«…�Û­¤¿«¥¢ �zuxopqdhihjkwwwzyyuvtmmrqnt]·P.¢/8¬:-¯<¤4'ª<"«8!«7™`�e‚—~¹¨»”’’½”„Íĺ–™š¢¡¡¢¢£¢££ ¤¥•�Œ¢}zÀ‹€–�‹NV~KO`««¬  Ÿ¢¢¢™˜ž—•Ÿž™Ÿ·¥Ÿ³¦Ÿ«¡œ   ¨¨¨³³³···µµµ¶¶¶³³³¨¨¨£¢¢žŸŸ§¢Ÿ¨£ «ž�›˜Ÿ˜•žœ›Ÿ¢¢¢¢¢¢ž�¡˜•ž™—Ÿ¯¢Ÿ¶¦ž°¥Ÿ¢ Ÿž¡¢¢¢¡¢¢¢¡¡¡¡¡¡¢¢¢¢¢¢¢¢¡ ¢¢¡¡¡©¢žª¡Ÿ¢™�™–Ÿ™–�¡¡¡£¢¡¡ ¡˜–ž—–Ÿ£� ¸¦ž²¦Ÿ¦ž›¡¢¢ª©©µµµ¶¶¶µµµ···°°°¨¨¨   ž  ¨¢Ÿ¨£ ¨œœ™— ˜”�Ÿ�¡¢¢¢¢¢¢›™Ÿ˜”ž›˜Ÿ´¤Ÿ³¦Ÿ®£Ÿž  Ÿ¢¢¢¢¡¢¢¢¡¡¡¡¡¡Ÿ ¡¬ª¥hp�RR�†ŠÅ�•Óuy¸op¤ ¡·ÊËÎáàÙãã娨ØÅÄIJ²²¶¶¶¥©©µ¯« ƒƒ¤tt¥qy«vp¦tt£u|¥tz¨ur§ut©vsœhnª}„À žÒÌÌÕÙ×ÓÔÔâââÜÜÜÏÏϵµ´žœ£�—œ·¦Ÿ³¦Ÿ«¢Ÿ� ¡¡¢¡¢¢¢¢¢¢¡¡¡¢¢¢¢¢¢¢¡¡¡¢¡ž¡¢§¡Ÿ¨£ ª�œš˜Ÿ™”ž�œ ¢¢¡  ¡©¥§¾�|Œ~}¶ª§³¨ž²––¶�’Â’Ž·ˆˆ°Ÿ›–ˆ€zup^____dtnsŠ‚‹ÅÈÏœ-2²;iÇRbÃMR¼J!©5!¨8!¨7*®A¦$'Ÿ3G˜K›…}Û¤¤¿®¸šŸ� ¡Ÿ¢£¢ž ¡¥¤¡«”’Ƥ˜ª{x¢mhË’ƒµ‚{•ˆ‚£¥¦   ¢¢¢¡¡¢›˜ž””Ÿ¡™�¹­©¼¼¼ººº´´´´´´¶¶¶¶¶¶µµµ···²±±ª«¬¥ŸŸž•›—– œšŸ¢¡¡¢¢¡¡¡¡¡¡¡¢¢¡¢¢¡�›Ÿ—•Ÿš–ž®¡Ÿµ§Ÿ±£� ¡¡ ¡¡¡¢¢¢¢¢¡¡¢¡¡¡ ¡¡«¢ž¨¡ ¤š�—•Ÿ›™Ÿ ž ¢£¢¡¡¡¡¡¢¡¡¡¢£¢ Ÿ š—ž““�©žŸº±¯½¾¾¸¸¸´´´µµµ¶¶¶µµµ¶¶¶···°°°¨©©¥œ�š•�˜— �›Ÿ¢¢¢¡¢¡¡¡¡¡¡¡¢¢¡¢¡¡œ™Ÿ••ŸŸ™Ÿ°£Ÿ·§Ÿ¬¢žŸ¡¡ ¡¡¡¢¢¢¢¡ ¡¡££¢“•›V\‹u{¸‰�Ëjh¡jk¤ot¸‡‹»ž¡¿ÎÎÊÝÜÚããâÚÚÛÁÁ¯®®­®®¹¿¾§�›¥Œ‹¢nl£uƒªsm¦vz¤ru¨stžnw̱²Ç¼ºÝâãÏÐÐáààßßÞÎÎδ´´¤¤¤��žŸŸ¡›™Ÿ””Ÿ¦�Ÿ±¤Ÿ¹¦Ÿ¦¡ŸŸ¡¡ ¡¡¢¢¢¢¢¡¡¡¡¡¡¡£¢¡¬¢�¦Ÿ �–œ˜—¡œšŸ¢¢¡¢¢¡¡¡ žŸ ­ª¦½�|Ž|{™›¦™”›¶ª¦¸»¹¯¢«·›š½‡‹ã»©¾»·¢££ � ®� ääÞÒÆ¾5³=S¾@V¿DdÄMbÃJpÇVD·A+¬<¦3&©<&­<¤''¢4M�0™†~¥¥¨ª¢ª™�˜²Ÿ˜»�‰È“Œ¯~ƒž~yžžž�rm ml¬Ž’Ÿ¤¤¢¡¡¡¡¡  Ÿ££¢§¦§¯°³­°±¸¸¸¼¼¼ÀÀÀ¸¸¸µµµ´´´¶¶¶µµµµµµ´´´¬­®¦¦©¡¡¡¡¢ ¡¡¡¢¢¢¢¢¢¢¢¡¢¡¢¡¡¡¢¢¢¢¢¡žœ ””ž�˜Ÿ¨  »¨Ÿ¬£Ÿ¤¡ � ¡£¢¡¦£¡¬ � › ™“œ™™¡Ÿž ¢¢¡¢¢¡¡¡¡¢¢¢¢¢¢¢¢¢    ¡ ¤¤£ª©ª®¯²°²³¸¸·¿¿¿½½½···´´´´´´···´´´¶¶¶²±±¬­¯££¦£¢¢¡¡ ¡¡¢¢¢¢¢¢¡¢¢¢¡¡¢¡¡¡¢£¢¢  œ› ”“ž šŸ®£ º§ž¨¢ ¢¡ � ¡££¡¨ ž´¨ Wc‰bd z»ec�}�½Š‘Ëw|»ƒ‡Å‘—γ¶ÎÊÊËááÜââáÙÙÛÅÄij±±µ¸¹±²°´°±§ˆ‡¤vw¤pr¨}ˆ®‰ŽÂ½¾ÎÐÏÜßàÙØØàààËËË···¢¢¢ŸŸŸ   ££¢¢¢¡¢¢¡ Ÿ ™™ —”�£œ ³¥ ¶¥�§¢   ¡Ÿ¡¡¤¢ ­¢ž¥žŸ�—ž–•žž� ¡¡¡¢¢¢¡¡¡¡¡¢¡¢ Ÿ ¡­ª§½Ž{”„¨ªª±¯±«°³­°±À·´Ì•�ܰ•в ÈÌÐØÙÚÓÍÊìŸÆ±¨¿¦šcÃLW¿GT¾CT¾D]ÁH\ÁHhÆPkÆQF¸E+­:¥4'ª=#®7¢0Œ]›f�Ÿ€Õ�›Ã�ˆ°ƒƒš}|š”’ ££££¤ž¢¡¤vo¾  �¡¡Ÿžž££¢¨¨¨²²³¶·¶··¶¶¶¶°°°°°°³³³ÀÀÀ¼¼¼»»»±±±³³³°°°³³³¶¶¶··¶´´´¨§¨£££ŸŸŸ¡¡¢¢¢¢¡¢¡¢¢¢¡¡¡¡¢¡¢¢¢¢¡¡ž� —”�™— ­¡ ·¥ž®¦ ­Ÿœ�™žš–Ÿ™–ž¡ ¡¢¢¡¡¢¢¡¡¡¡¡¢¢¢¢¢¢¢¡¡¡ŸŸŸ¤¤¤©©©µµµ¶¶¶¶¶¶µµµ¯°°±±±¶¶¶ÁÁÁ¼¼¼¹¹¹°°°³³³¯¯¯µµµ¶¶µ¸¸·±±±§§§¡¡¡   ¢¢¢¡¡¢¢¢¡¢¡¢¡¡¡¢¢¢¢¢¡¢¡¡›š ˜”žœ™ ´¤Ÿ´¥ž®¥¡ª�›™˜ žš V^‡ce x~ºoq«jk¥tw²}ƒ¾Š�Ê�˜×¡¨éš¢Ûª«¿ËÌÐääÝããä×ØØÆÅű°±¹ºº¡¤¤ž™˜¦†‚²¬­«®®ØÙÙàààÛÚÚÏÏϼ¼¼¨¨¨���ŸŸŸ¢¢¢¢¢¢¡¡¡¡¡¢¡¡¡¡¢¢¢¢¡¡¡¡™—ž™•Ÿ ›Ÿ¸¦Ÿ±¥Ÿ®¤Ÿ¥››™˜¡˜”��œ¡¡¡¡¢¢¡¢¢¢¡¡¡¢¢¢¡¢¡¢¢¡�žŸ«§¦¼�zž�мÅÄ®«°µ«¦Þ¦¨Ñ ‘œ”ljIJš×ÔÕÏÇÃȯ¡Â« Ð¿µÌÆÃcÃLdÄMeÄNU¿ES¾CV¿E\ÁHXÀFrÈT_ÂKS¼K§3(­:2¨1�5¨+'ž,b™P’‡€¢�’¥©«¡££Ÿ ž¢¡¡žžŸ©|pë�›Ÿ¡¬««±±±···µµµµµµµµµµµµ¶¶¶¶¶¶±±±°°°¶¶¶¸¸¸½½½´´´¶¶¶µµµµµµ¶¶¶µµµ···±±±«««¢¢¢¡¡¡¢¢¢¡¡¡¢¢¡¡¡¡¢¡¡¡¡¡¡¢¡¢¢¢�›Ÿ˜— š˜Ÿ«œ�­�ž¬œ›žž¡¡£¢ ¡¡¢¢¢¢¡¡¡¡¢¡¢¡¡¡¢¡¡¡£££­­­³³³···µµµµµµµµµµµµ¶¶¶´´´±±±¯¯¯¸¸¸¸¸¸½½½³³³¶¶¶´´´¶¶¶µµµ¶µ¶···°°°©©©   ¢¢¢¡¡¢¡¡¡¢¢¡¡¡¡¢¡¡¡¡¢¢¢¡¡¡¡›šŸ—•Ÿ š «›œ¯ ž¥™›¥§¤[cˆeg£{€¼}„¿„À~…Á~ƒ¿„‡ÃŽ’Í�•Ò‘•у†Ë†ˆ¹’�¬ÐÑÎÞÞÝãããÚÚÚ¬¬¬µ¶¶ËÏÏÀÁÁÔÓÓÝÝÝÍÍͽ½½´´´´´´µµµ®®®§§§   ¡¡¡¢¢¢¡¢¡¢¡¡¡¡¢¢¡¡¡¡¢¡¢¡  ¡›˜ž••Ÿ¥� ª›œ± ž¢™œ ¢¢ ¢¡¡¡¢¢¢¢¡¡¢¡¢¢¡¡¡¢¢¢  Ÿ¦§¨º¶³º‹v˜�ˆ·¥­Ø±¤àœ��‘[.r-m zʯ›Í¸°Ä¨—ÌÀ¹ÒÍÉÏÕÚÜ×ÔK¼@YÀGbÃKgÄNbÃLYÀGP½B[ÁGU¾DdÄLcÃJkÅUYÃKC­8 •%)­>$¬> £$#£:D—H�žœ£ ¡ª£«�¡�š�ž°�tÙ¸¦—œ µ´³¶¶¶µµµµµµ¶µµ¶¶¶µµµ¶¶¶µµµµµµ²²²­­­­­­¶¶¶½½½ÀÀÀ···µµµ´´´¶µµ¶µµ¶¶¶´´´¢¢¢   ¢¢¢¢¢¡¡¡¢¢¢¡¡¢¢ ¡¡¢¢¡¦¢ ­¡��œ¡•�›““ž›•�«£ »¨ž¬£ž£¢ ž ¡¡¢¢¢¢¡¢¡¢¡¢¢   ¤¤¤¶¶¶µµµ¶¶¶µµµ¶µµµ¶¶µµµ¶¶¶µµµ¶¶¶¯¯¯®®®®®®¹¹¹ÀÀÀ½½½···´´´´´´¶¶µ¶µµ···°°°ŸŸŸ¢¢¢¢¢¡¡¢¢¢¡¢¢¢¡ ¡¢ ¡¡¢¢¡ª¢Ÿ©¡žš— •‘œ’‘�¡šž­£ Â­ X]…gi§€„À|€¼z¼ooªhj£em¦io¨ip¨hn§jr©^d RRŒ_[ˆ“™ªÓÒÏÜÜÝáááÝÝÝÚÚÚÞÝÝäääÎÎο¿¿¶µµ²²²µ´´··¶¶µµ···«««ŸŸŸ¢¢¢¢¢¡¡¢¢¢¡¢¢¢¡ ¡¢¢¡ ¢¡¡®¢�¥¡¡˜“�•’�“‘œ¥� ´§ ·¥�¦¢   ¡ž¡¡¢¢¡¢¡¡¡¢¢¢¢¡ŸŸŸ®°¯¶²´Á‘‘ÖªŸà¬�ˆ‚c*z!m x x|ãŒÀ¯«ÔÑÏÍÐÑÔרáÝØÝÚÚ>¶;9µ9L¼AYÀFaÃJhÅPaÃLXÀGR½CU¾D`ÃIZÂGU¹HC¬<&¡+1±?¦2(ª?©4¨7 ˜\™a†šƒ´¤²œž¢®ƒqῪ—œ ¢  ¦¦¦±°°µµ¶µ··µ´´···³³³³³³¯¯¯´´´¶¶¶¶¶¶±±±°°°´´´¿¿¿¼¼¼»»»²µ¶¯°±¨§§   ¢¢¡¢¢¢¡¢¡¢¡¢¢¢¡Ÿ¡¢£¡ ¦¢ ¬¡ž šž™•žš—ž¡¡¢¢¢¡žž¡–”�š— ¬¡Ÿ¸¦ž®¥ £  �¡¡¢¢¡¢¡¡¢¢¢¡¡¡   ªªª²±±¶··´¶¶µµµ¶¶¶³³³³³³¯¯¯µµµµµµ¶¶¶°°°±±±µµµÁÁÁ»»»ººº°³´¯°±¤££¡¡¡¢¢¢¢¢¡¡¡¢¢¡¡¢¢¡ž¡¢¥¡Ÿ§£ ¬Ÿœ�™Ÿ˜“�œš ¢¢¢¢¢¡›› –“�£ž¡jpŽ]`™}€¼Ž“Ï}€¼T]’išw§y§"€«#�¬%‚¬%ƒ®r¤aq™¼º·¯¯°ºººÍÍÍÛÛÛÜÜÜÏÏÏ»»»±±±···ÀÀÀ»»»¸¹¹¯²³®®®¡  ¡¡¡¢¢¢¢¢¡¡¡¢¢¡¡¡¢¡Ÿ¡¡¦¢Ÿ¨£ ©�œ›™ —“œŸ� ¢¢¡¢¡¡˜—ž˜•ž › ¸¦Ÿ²¥žª£Ÿ� ¡ ¢¢¢¢¡¢¡¢¢¡¢ ŸŸ¥¦¨žœ–‰yist u x { ‰! 7Ƨ�ƸµÕÛÞæàÚ×ÔÔ¯­±^s“iÅPR½B;µ:>·:Hº@ZÀFaÃKdÄNiÅOWÂF>°:#£4›.&«6cÄQoÇSU½K&¬3"¨8!¨8(¬=¦-š'Q˜Wˆ–†Å„†Ñµ£™ž £¢¡¡¡ žŸŸª¨§¹¯«·¹¹±±°²²²±±±¶¶¶µµµ¶¶¶¶¶¶µµµ¶¶¶±±±°°°···¸¹¹¼®§ªŸœ� ¡¡¡¡¡¢¢¢¢¡¡¡¢¡¡¡Ÿ¡¡«¢ž§¡ £™œ—– ™—ž  ¡¢¢¡¡¡¢¡¡¢¡¡¡¢¢¢�›Ÿ˜–Ÿ˜–Ÿ°¢ ´¦Ÿ²¤ž    ¡¢¡¡¡¢¢¢¢¢¢  Ÿž ¡¯ª§º²¯µ··±°°±±±³³³¶¶¶µµµ¶¶¶µµµ¶¶¶´´´±±±°°°ºº»¶¶´¼¬¤£žœž¡¢¡¡¡¢¢¢¢¢¡¡¡¡ ¡¢¢¡¡«¢�¨  Ÿ—œ—— š˜ž¡¡¡¢¢¡¡¡¢¡¡¢¢¢¡¢¢¡›šŸ›˜ŸFP„uu±{„Àwq¬Cm£{©*…°)‡°'…¯,в-‹²-‰±~®<†©Á¸³®°±³³³´´´¼¼¼¼¼¼´´´´´´³³³±±±±±±»¼½·³¯¸¨ ž��Ÿ¡¢¡¡¡¢¢¢¢¢¢¡¡¡Ÿ¢¢¥¡Ÿª¢Ÿ§Ÿž›–�˜– œšŸ¢¢¢¡¢¡¡¡¢¡¡¢¢¢¡¡ ¡š˜ž–•Ÿ¤œŸ³¥Ÿ¶§Ÿ¨¡žž¡¡¡¡¡¡¢¢Ÿ ž­¥­e�in{u {‹$ ¢34´=B·A˪‘ÏÁ½ÚÒÍ£©·ly�Cf‘Tp•:·9`ÃKgÄOQ¾C=¶9=µV¾DgÅOmÇRuÉYL»D,®9¦4$©:(­@£!'¡=A�+¥ˆƒŸ¤¥ Ÿ £¢¡­£ž¤ž�Ÿ—��𢝮¯µ¶µ···µµµµµµ¶¶¶µµµµµµ¶¶¶¶¶¶²²²¢¡£—”œ¡™œ¯¤ º§ž¦¢Ÿ¡¡¡ž¡¡¢¢¡©¢Ÿ« �¢›Ÿ—“œš™¡ŸžŸ¢£¢¡¢¡¡¡¢¢¢¡¢¢¡¢¢¢¡¡¡¢¢¢¢¡¡žœŸ••Ÿ�—žª  º¨Ÿ®£ž¢¢ Ÿ ¡¡¡¡¤£¡®¢�¡œ�ž–ž¡Ÿ¦²±±···¶¶¶µµµµµµ¶¶¶µµµ¶¶¶¶¶¶···®®­Ÿ�¡—“›¥œž´§ ¶¥�£¢ ¡ ¡Ÿ¡¡¢¢¡¬¢ž§ Ÿ ™ž—”žœš ¡  ¢£¢¡¡¡¡¡¢¢¢¡¢¢¡¢¡¢¡¡¡¢£¡¢¢¢~‚•QX‘op­obœDkŸƒ¯.‰±-‰±,‰±-в+ˆ°.‹²­E…§¿·³´¶·¶¶¶µµµ´´´´´´µµµ¶¶¶¶¶¶···©ª©œš ™”š¨ŸŸ¹¨ ±£ž¢¡¡Ÿ ¡ ¡¡£¢¡®¢œ¤ŸŸ�–�—–Ÿ�›Ÿ¡¢¡¢¢¢¡¡¡¢¡¢¢¢¡¢¢¡¡¡¢¡¡¡¢£¢ Ÿ š™ ””ž¥�Ÿ±¥Ÿ¹¦ž¥¡ ¡¡¡› Ÿ¯¥ªq–uu y�% 2 ª9.¯;Fº:^ÁHÒ°˜¯¡œu�Jf�Jm˜Xs—Tp–9�P+¨<2¹2fÃPbÄJH»>2­5 1š0"¨7Fº¶:5´8V¿C¸£•Kj•iw‰w~ˆfx�Wp‘Rj‹¬™®y˜„K›_¬02®2(¦6ž00®:1±92±9;¶:W¿EcÃLgÅO]ÂJF¹@=·:Iº@[ÁG_ÂIxÊYiÆQV¾K&¬4!¦9!­3_ªb²›¨«�™­ž� ™Ÿž¢¢¡¢ ¢¢¢   ¡¡¡ŸŸŸ¨¨¨®®®¸¸¸¯¯¯¨¨¨ŸŸŸ¡¡¡¡¡¡¢¢¢¡¡¢¢¢¡¡¡¢™˜ž—–Ÿ¡œ °ž�®žž¤˜›œŸ¢¢¢¡¡¡¢¢¢¢¢¡¡¢¢¢¢¢¢¢¢¢      ¢¢¢¢¢¢¢¢¢¡¡¢¡¡¡¡¡¢¡¢¡¢¢¢œ› ˜–ž™˜ ® ž¬�œ«œœœš  ¢¢¡¢¡¡¡¢¡¡¡      ªªª±±±···­­­¦¦¦ŸŸŸ¡¡¡¡¡¡¢¢¢¡¡¢¢¢¡ŸŸ¢™—ž––Ÿ§žŸ­�œ®Ÿ� —œž¢¢¡¢¡¡¡¢¢¡¢¡¡¢¢¢¢¢¢¢¡¡¡   ¡¡¡¢¢¢¢¢¢¢¢¢¡¡¡� ¡³©¢0¥z«-‰°3Ž´8‘·E›¾?—»5޵.‰°„±Rˆ¤¥¢  ¡¡ŸŸŸ¢¢¢«««´´´µµµ«««¤¤¤ŸŸŸ¡¡¡¡¡¡¢¢¢¡¡¡¢¢¢�� ™–ž˜—Ÿ­ Ÿ­�œ¬�œ�™žŸ¢¢¡¡ ¡¡¢¢¡¡¢¢¢¢¢¢¢¢¢¡¡¡   ¡¡¡¢¢¢¢¢¢¢¢¢¡¡¡¢¡¡¡¡¢¢¢¡  ¢™—ž—–Ÿ¤ž ­�š´ ¤†�Q™b–,«.K¼F]ÂIhÅOM¼@D¸;²¡“Om—Tq–Vq”ny†;T€Zam«£š¥ž¨�Ž£�˜‹?“W¢/0¶6YÂEfÄNT¿D?·;<¶;I»?YÀFdÄMgÅM_ÂLE¹>=¶¸2¹2eÄPcÃKR¾D>·:9´9L»AYÀGcÃJiÆP\ÁIH¹@<¶:I¹?]ÀI_ÆIU¾CtÂ\IŠI}r|§©©]^e('){z»¨¡­¡›Ž��›ŸŸ¡¢¢£¢¢¢¢¢   ¢¢¢¢¢¢¢¡¡¢¢¡Ÿ¡¢¤¡ ¥£¡­ œŸ›Ÿ™”�›™Ÿ¡¡¡¢¡¡›š —”žŸš ´¥Ÿ·¦ž©£ Ÿ��¢¢¢«««µµµ¶¶¶µµµµµµ¨¨¨£££ŸŸŸ¢¡ ¥¢ ¬¢ž¥��œ–Ÿ˜”� Ÿ¡¢¡¡Ÿž¡•“�œ˜Ÿ©¡ »§ž¬¤Ÿ¤¡ � ¡¢¢¢£¢¢¡¡¡   ¢¢¢¢¢¢¢¡¡¡¢¡Ÿ¡¡¥¢ §£ «žœ�™ ˜“œ�œ ¡¡¡¡¡¡˜—Ÿ™•ž¢œ ¹§Ÿ²¥ž¦¢žŸžž£¤¤®®®µµµ¶¶¶µµµ²²²¦¦¦¡¡¡ŸŸŸ¤¢ ££¡¹¥�…“Ÿ-~¨A�­BޝBŽ®F�¯=�°Y�ªº¥ž¶¥ž©£ ¢  ž¡¡¢¢¡£¢¢¡¡¡   ¢¢¢¢¢¢¢¡¡ ¢¢ ¡¡¥¢ ª¢Ÿ§��œ˜Ÿ˜”� ž¡¢¡¡ Ÿ¡•”ž›—Ÿ§ŸŸ»§Ÿ®¤Ÿ¤Ÿ�Ÿ Ÿ¥¥¥²²²µµµ¶¶¶µµµ¯¯¯¤¤¤¡¡ Ÿ Ÿ¥¢¡¦£¡­Ÿœž› ™“�œš ¡¡¡¢¡¡™˜ –“œœ›œÀ©¨µ¢ž¥¡�=ˆIœ:¦'H½Bº£”fyš\qŽYpŒ�…gy�Wr—Ÿž ¢¢¢¡¡¡Ÿ¡ ¡¡¡¢¡£¬š¬z—‡Fš[¦/=¹:^ÂJgÅNQ½C<¶:<¶:IºAZÀFbÃKiÅP`ÂKN¾E+³+C©ES›a“”•QJRONK?=952.ÊÇÇž›¢Â¸¸ ¥™’§¢¡�¡¡¡¢¡¢¢¢¢¢¢¢¡¡ ¡¢¡¡¡ª¢ž©¡ £™œ˜— ™–ž  ¡¢¢¡¡¡¢¡¡¢¢¢¡¢¡¡š˜Ÿ˜•Ÿœ—�¹¦ ¶²°¹ºº´´´µµµµµµ¶¶¶µµµ···³³³©©©¤£¢§šš™˜ ™–žžœ ¢¢¢¡¡¡¢¢¢¡¡¡¢¢¢�œ ˜•ž˜—Ÿ°¢Ÿ´¦Ÿ²¤Ÿ  Ÿž¡¢¢¢¡¢¢¢¢¢¢¢¡¡Ÿ¡¢¤¡ ©¢Ÿª žž˜�˜–Ÿš˜ž¡¡¢¡¢¡¡¡¢¡¡¢¢¢¡¡ ¡˜–ž—•Ÿ¢š�º©£¶´´¸¹¹´´´¶¶¶µµµ¶¶¶µµµ···°°°§¨¨¦ Ÿ¤˜›––¡œ—�¨¡¡¨£ ¨¢ ¨¢ §¢ ¨¢ ¡šž—•Ÿ›˜Ÿ´¤Ÿ³¦Ÿ¯£žž ¡ ¡¢¢¢¡¢¢¢¢¡¡¡¡¡ž¡¢§¡Ÿ¨£ ©ž�š—Ÿ˜•ž�›Ÿ¢¢¢¡¡¡¡¡¢¡¡¡¢¢¢ž�¡˜–�––žªž�º¬§¶·¸···´´´¶¶¶µµµ¶¶¶µµµ···­­¬¥§§§ž�Ÿ˜œ˜— š—ž¡¡¡¡¢¡¡¡¢¡¡¢¢¢¡¡ ¡™—ž•”�¡œŸ¸¥ Á©¬™˜ŒD‘W!˜3¼£ŠÌ­¡»²¨���Cg”Om•Uq–ž¡Ÿœž £¤¤¢¢¡¡¡¡¡¡¡ž¡�¥Ÿ£±¢²Ž¬–P¤b¨,?·<[ÂHjÅPQ¾B<µ9A·>M¼CWÁBQ¿D2¥6nŸtˆ—�À®½uvr><7�Ž¡%?7Jc !>/9P++0a_e³§¥µ§ ´£�¢¢¡ ¡¡ ¡¡¡¢¢ª¢ž©¡ž£šž—”žš™Ÿ ž ¢£¢¡¡¡¡¡¢¢¢¡¢¢¢¢¢¢   ¡¢¡¡ ¡¨¦«©«®¹¹¹¼¼¼ÁÁÁ···µµµ´´´¶¶¶¶¶¶µµµ¸¸¸¬¬¬¥¦ª›šž¢¢¡¡¢¡¡¡¢¢¢¢¡¡¡¢¢¢¡¡¡¢¢¡¢¢¡�›Ÿ—– ›—ž­¡Ÿ·§ °£ž ¡¡ ¡¡ ¡¡¡¢¡¬¢�¦¡ ¡˜œ—–Ÿ›šŸ¡¡¡¢¢¢¡¡¡¢¡¢¢¢¡¢¢¢¡¡¢   ¢¢¡¢ £©¨®«­¯¼¼¼½½½¿¿¿µµµ´´´´´´¶¶¶µµµ¶¶¶¶¶¶©ªª¢¢§œ›ž¢£¡Ÿ¡¡ ¡¢ ¡¢ ¡¢ ¡¢ ¡¢¡¢¢¢ ¡œšž””Ÿ šŸ®¢ ¹¨Ÿª¢ž ¡¡Ÿ¡¡ ¢¢£¢¡­¢�¥Ÿ �•œ˜— œšŸ¢¡¡¢£¡¡¡¡¢¢¢¢¢¡¢¢¢¡¡¡¡¡ ¡¡¡£¡¥©©®¯±²¼¼¼¾¿¿½½½µµµµµµµµµ¶¶¶´´´···²²²¨©«Ÿž£ŸžŸ¢¢¡¡¡¡¢¢¢¢¢¡¢¢¡¡¡¢¡¡¡¢£¢ Ÿ ›™Ÿ”“Ÿ£œ�²¥¡Íª°†•~Ã¥’¹¡šÊ·®¿©¡§œœsƒ›Ki’Õ…§‘†™˜™� ¢¤¥¥¡  ¬¬­·¹¸·¼·Æ¼Ãº¹º¥²©A¨W,ªg¤pª°®»³º±­±¤§¢x€ŠD*Y/Fz+M‡"A{*H€'5n?y�ˆ‡˜’‘š«££¸¦ž°¤ž¨¤ ªžœž›¡š”œš˜ Ÿž ¢¢¡¢¢¡¡¡¡¢¢¢¢¢¡¢¢¢      £££«««´´´¸¸·¶¶µ±±±¯¯¯¶¶¶¾¾¾¾¾¾¹¹¹´´´³³³²²²°°°¶¶¶¶¶µµµ´¨¨¨¢¢¢ŸŸŸ¡¡¡¢¢¢¡¡¡¢¢¢¡¡¢¡¡¡¢¢¢¢¢¡Ÿ� ””žž˜Ÿ©¡ »§ž«£Ÿª£Ÿ§��žš ˜“œœ›¡ Ÿ ¢£¢¡¢¡¡¡¡¢¢¢¡¢¡¢¢¢   ¡¡¡£££®®®µ¶µ¸¸·µ´´°°°±±±¶¶¶ÁÁÁ»»»¹¹¹³³³´´´°°°±±±¶¶µ¶¶µ³³²¥¥¥¢¢¢  Ÿ¡¡¡¢¢¢¡¢¡¢¢¢¡¡¡¡¡¡¢£¢¡  œ› •”ž š ¯£ ¹¦�¨£ ¬¡ž¢�Ÿž˜Ÿ—”���¡¢¡ ¢¢¢¡¡¡¡¡¢¢¢¢¢¢¢¡¡¢ŸŸŸ¡¡¡¥¤¥±±±¶¶µ¸¸·´´´®®®²²²¸¸¸Âººº¸¸¸²²²´´´¯¯¯´´´·¶¶¶¶µ°°°£££¡¡¡   ¢¢¢¡¡¢¢¢¡¢¢¢¡¡¡¢¢¡¢¢¡ Ÿ ™™ —”��š›¿©¦ÏªšÀ©žË³¤½µ²Ë¯ Ñ¸§¶¬«¼�›Ø°�Á�|¬›’•�‘¸½¿¢¢¡ŸŸžŸŸŸœŸ�ŸŸŸ¡Ÿ ¯¢­•°œK¥]&«8!´,I²O[¡eµ²¶»¶»º¶¹³µ³µ¶µ¶µµK5l5Nƒ @p+G+I)F#5X!J‡+>r%\2@c’’›š˜¡© Ÿ²Ÿœ¬���–œ� ¢¢¢¡¢¢¢¡¡¡¡¡¡¢¢¢¡¡¡¡¡¢¡¡¡¥¥¥©©©µµµ¶¶¶µµµµµµµµ¶µµµ¶¶¶°°°±±±µµµ¾¾¾ººº´´´²²²µµµµµµµµµµµµ¶¶¶³³³¨¨¨¤¤¤¡¡¡¢¢¢¡¡¢¡¢¡¢¢¢¡¡¡¢¢¡¢¢¡¢¢¡›œ¡—•žš™ ¯¢Ÿ°žœªœ�›–�ž¢¢¢¢ ¡¡¢¡¡¡¡¡¢¢¢¢¡¡¢¢¢¢¡¡¡¦¦¦¬¬¬···µµµ¶¶¶µµµ¶¶¶µµµ¶¶¶°°°±±±¸¸¸½½½ººº²²²´´´µµµ¶¶¶µµ¶µµµ···°°°¨¨¨¢¢¢¡¡¡¢¢¢¡¡¢¢¢¡¢¡¢¡¡¡¡¡¢¢¢¡¡¡¢™™ ˜•ž�š ²¢ž®žœ¦˜œšš  ¢¢¢¢¡¢¢¢¡¡¡¢¡¢¢¢¡¡¡¢¡¡¡¢¢¢§§§¯¯¯···µµµ¶µ¶µµµ¶¶¶µµµµµµ¯¯¯±±±»»»¼¼¼¹¹¹±±±µµµµµµµµµ¶¶¶µµµ···­­­¦¦¦¡¡¡¢¢¢¢¢¢¡¡¡¢¢¡¡¡¢¡¡¡¡¡¢¢¢¡  ¡—š •—ž¯‹ŽÕ½«Ò¼¬ÆÀ¿¿¦›×ƸÏÇÂ�££™–™Ã¯¦É™‰Ø®˜¥Œ„nonnqrtttuuttssstsqsq¤¡¢ÆµÃ†ª�Ys?”–ŠÙËÙ·¹·´µ´´µ´´´´µ´µºº¸kt‡ "S 8B:-A&?@2-X5CyJs}†¥ž¥‘Ž›‘�œ«ŸŸ´¨ ¶¦ž¡   ¡¡ ¡¡¢¢¢¢¡¡¡¡¢¢¢¡ŸŸŸ­­­¹¹¹µµµµ¶¶µµµ¶¶¶µµµ¶¶¶¶¶¶µµµ¶¶¶«««¬¬¬³³³¾¾¾ÀÀÀ···µµµµµµµµµ¶¶¶µµµººº¨¨¨ŸŸŸ¢¢¢¢¢¡¡¢¢¢¡¡¢¢¡¡¡¢¡¡¡ ¡¢®£�¤¢¢•�œ”‘�•�œ¯£ ¶©Ÿ±£� ¡¡ ¡¡ ¡¢¢¢¡¢¡¡¡¢¢¢¢¡ŸŸŸ³³³¹¹¹µµµµµµµµµ¶¶¶µµµ¶¶¶µµµ¶¶¶³³³¬¬¬¬¬¬¸¸¸¾¾¾¿¿¿¶¶¶´´´µµµ¶µµµµµ¶¶¶¸¸¸£££   ¢¢¢¢¢¡¡¡¢¢¡¡¡¢¢¡¡¡¡¡¢£¡¡®£� Ÿ£”Ž›’‘�›”œ²¦ ¸¨Ÿ¬¡žŸ¡¡ ¡¡¡¢¢¢¢¡¢¡¡¡¢¢   ¢¢¢······µµµµµµ¶µµ¶¶¶µµµ¶¶¶µµµ¸¸¸¯¯¯­­­¬¬¬¼¼¼¿¿¿½½½µµµµµµµµµ¶¶µµµµ·¸¸´´´   ¢¢¢¢¢¢¢¢¡¡¡¢¢¢¡¡¡¡¡¢¡ ££¦¤¡®—–¡‚Œ«ŽŽÓ»©Ò»«ÅÀ¿Â©�ʹ±Â«  žŸ¦§§™ž¢~¢�ŒÝ¯›ÇœŠ“|ruuvsuw}~~{zzwwwuvuz€}´§®³lp�ˆ‚´»º¹¹¸Â¸¸¸··¸±´µµµ´©§¥”˜Ÿ2.-G={>^‹8gŽ,R/^##LQ]wž™ ›˜Ÿ  ¡¡ ¡—–Ÿ™•ž¥ž ¹§Ÿ±£ž¥¢ ž ¡ ¢¢£¢¡¢¡¢¡¡¡¢¢¢¤¤¤²²²¶µµµ¶·´´µ¶¶¶µµµ´´´±±±±±±µµµµµµ³³³®®®¶¶¶½½½¿¿¿¸·¸µ¶·±´µ±°°£¢¢¢¢¢¡¡¡¢¢¡¡¡¢¢¢¡¡¢¢ ¡¡£¢ ©¢ ªŸ�ž™ ˜“œžœ¡¡   ž¡””ž�˜ž©  ¼§Ÿ¬£Ÿ¤¡ ž ¡¡¢¢¢¢¡¡¡¢¡¡¡¢¢¢§§§´´´µµµµ··´´´¶¶¶´´´µµµ¯¯¯³³³µµµµµµ±±±¯¯¯···ÀÀÀ¼¼¼¸¸¸³µ¶²´µ­¬¬¢¢¢¢¢¢¡¡¡¡¢¢¢¡¢¢¢¡ ¡¢¡¡ £¢ ¬¢ž¦žž�—ž˜•ž Ÿ¡¢  žœ¡”“ž šŸ®£ º§ž¨¢ ¢  ž¡¡¢¢¢¢¢¡¡¡¡¢¢¡¢¢¢«««µ´´¶¶¶´¶·µ´µ···´´´´´´®®®´´´´´´µµµ¯¯¯²²²¸¸¸Âººº¸·¸²´¶³´´©©¨¢¢¢¡¡¡¢¢¡¡¢¢¢¡¢¢¢¡Ÿ¡¢¢¢¡£  ®™—ªƒ‰«ˆŠ²–‘¿¨�ÑĺÌÉÆËµ©¿¦›Ìµ§Å»·“’’FC?OJFJGCFDBLIGª�‹×¯œÆ–‚—…{ojkrxyzyyzyytuu�€°~}�ކ¸»½®­­³³³¿À¿º¹·¶ª¥ž�ž˜œŸ¹µ®0Dc#]Bu4i8b;V~>xMš”œŸ›¡£¡¢¡¢¡¡¡¢¡¡¢¢¢¡ ž¡—•ž™–Ÿ¦ž ¹¦ž°¥ §¡Ÿ� ¡¢¢¡¢¢¢¡¡¡¡¡¡Ÿ  ¤§¨·°­º¹·´µ´²²²¯¯¯µµµµµµ¶¶¶¶¶¶µµµ¶¶¶±±±°°°µµµÀÁÀ»¶³±¥¡œžŸŸ¡¡¢¡¡¢¢¢¢¡¢¢¢¡ž¡¢¥¡Ÿ§£ «Ÿ��™Ÿ™•ž›™Ÿ¡¡¡¡¡¡¡¡¢¡¡¢¢¡¡ž� —”�š— ®¡ ·¦ž°¥Ÿ¢ Ÿž¡¢¢¢¡¢¢¢¡¡¡¡¡ ž  ªªª¹²¯¹º¸²²²²²²¯¯¯¶¶¶µµµ¶¶¶¶¶¶µµµµµµ¯¯¯°°°¹¹¸¿À¿»³®«¢Ÿ›Ÿ¡ ¡¡¢¡¡¢¢¢¢¡¡¡¢¡ž¡¡¨¡Ÿ¨£ ª�œš˜ ˜”��œ¡¡¡¡¡¡¡¡¡¢¢¢¡¢¡¡›š —•ž›™ ´¤Ÿ´¥ž®£ŸŸ  Ÿ¡¢¢¢¡¢¢¢¡¡¡¡  ž¡¢¯­¬º´±·¹¸²²²±±±±±±¶¶¶µµµ¶¶¶¶¶¶µµµµµµ®®®²²²¼¼¼¼½»º¯ª£žžœ ¢¡¡¡¢¢¡¢¢¢¢¡¡ ¡¡Ÿ  ¦¡�©¡ž­ˆŠª„‰°™“º£š¹¡—Ų©Ì¿¸Ä©œÇµ¬Ñ»¬Îž˺°')1 $ 167ros¤ŽˆÐ¡’Ϥ�Žwpsrruy{wxy„€‚±||ŸŽ†º½¿¸··­­­¡ ¤›–œ¯¡ž¶§Ÿ®¡œ¤¤¤v~‰'VP@Ldagw %UNN^u¤¢£¡¢¡¡¡¡¢¢¢¢¢¡¢¢¡¡¡¢¡¡¡¢£¢Ÿ� ™—ž••Ÿ«ŸŸ²¥Ÿ¶¦ž¢ Ÿ ¡¢ ¡¡ ¢¢§¢Ÿ©¡ž¥œœ¢œ¤ª©¬µµ´···µµµµµµµµµµµµµµµ¶¶¶¶¶¶¸¸¸©©©žœ£ ˜›±£Ÿ¸§Ÿª¡žž¡¡ ¡¡¡¡¡¡¢¡¬¢�§   —œ—– ›™ž¡¡¡¢¢¡¡¡¢¢¢¢¢¢¡¢¡¡¡¡¢¡¢¡¢£¢�›Ÿ˜– ™–ž¯¢Ÿ´¦Ÿ²¤�Ÿ¡  ¡¢ ¡¡ ¢¡ª¢Ÿ¦ ž¥š�¡Ÿ¦®­®¶¶¶¶¶¶µµµµµµ¶¶¶µµµµµµµµµ···¶¶¶¦¦¦›™ ¥›œ²¥Ÿ·¦Ÿ¤ ŸŸ¡¢ ¡¡ ¢¢¥¢ «¢ž¦žŸ›•œ˜– œšŸ¢¢¢¢¢¡¡¡¢¢¡¢¢¢¡¢¢¢¡¡¢¢£¡¢¡¡›™ž–•Ÿž™Ÿ±£Ÿ¶§Ÿ­¢žž¡¡ ¡¡¡¡¡¡¢¡¬¢�¤Ÿ�¤šŸ¢¡¨°°°···µµµµµµµµµ¶¶¶µµµ¶¶¶µµµ¸·¸±±±¤£¥™–ž«ž�´¦Ÿµ¥ž¡   ¡¢Ÿ  �¡ ª£ ®¥¤®£¨Ÿ‹”­‰Š¹§›º¡™·Ÿ˜Á©žÂªŸ¾¤˜Ð¹ÎûÌÁºÎúÅÃÂ<0g3m3H€6M„"3k nloX[`ljjš†�Ù©•Æ�Š�vlruv…ƒ„»Š}�‹†¸»¼¤££¢¢¢ŸžŸžœ ””žŸ™ž¬¢ º¥�´«¤’�’Š€†¡œŸ§Ÿ¤~ƒ�„†�¦¥£¤¤£¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¡¡¡¢¢¢¡¡¡¢¢¡¢¢¡Ÿ� ——Ÿ™•ž¦ŸŸ¸§Ÿ²£�££¢¬ œ¡ž¡ž•œ˜— ›šž¡¡¢¥¥¥±±±µµµ¶¶¶µµµµµµ¶¶¶µµµ¯¯¯¤¤¤¢¢¢Ÿ�Ÿœ›¡”“ž£›Ÿ°¤ º¥ž¥¢ «¢ž¥žž šŸ—“�œ› ¡Ÿ ¢£¢¡¡¡¡¡¢¢¢¡¢¢¢¢¢¢¡¡¢¢¢¡¢¡¢¡¡¡¢¢¢¢¢¡žœŸ•”ž�—ž©¡Ÿº§ž¬¢ž¦£¡ªŸœ �¡›”�™™ œš�££¤§§§³³³µµµ···µµµ¶¶¶¶¶¶µµµ«««£££¡¡¡ž� ™™ —”�¥�Ÿµ¦Ÿµ¤�££¡¬ �¢ž ž—ž–•Ÿ�œ ¡¡¡¢¢¢¡¡¡¢¡¢¢¢¡¢¢¢¢¢¢¡¡¡¢¢¢¡¡¢¡¡¡¢£¢¢¡ œ› ”“ž¡šŸ­£ »¦�§¢ ©¢ž¦žž › ˜“�›š¡��ž¤¤¤ªªª´´´¶¶¶¶¶¶µµµ···µµµ´´´¨¨¨£££ Ÿ ž� ––Ÿ›–�¨Ÿ º§Ÿ« ™§§£¶£¤¢�¡gfeVCr7¾™�¶ –¾¨�Å« Ç­¡¯ŒŽÅ­ŸÑ½¯ËĿиÌÌÌʹ°Ø¡˜Žp‚BCg'3Y>Kt#F;14%'¼‰ˆ¼Œƒ—ma> ^QL¹¨£³�‰Ì˜ƒ’�€§¢¥—’›š™  ž ¢£¢¡¡¡¡¡¢¢¢¡¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¬¬¬³³²¹¹¸³³³®®®³³³¹¹¹ÉÉÉ‘”“kU]Ÿz„¤�� †Œ¡‰�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡ˆ�¡‡� ˆ�£ˆ�®€‹²�‹¬z‡žy�Ž…‘“—¡¡¢¤¥¤¢¡¡¡ ¡¢¢¢¢¢¢¡¡¡ŸŸŸ¦§¨…�~]rµ?O ,"N74^7?b7@T=?'.,,‰ˆ‡rpmywuvtqwxvqrq’’’£££ŸŸŸ¢¢¢¡¡¢¢¢¡¢¢¢¡¡¡¢£¡¢¢¡�›Ÿ––Ÿœ—ž«¡ ¸§Ÿ¯£�¡¢¢« œ£Ÿ¡ž•œ—– �›Ÿ¢¡¡¢¢¡¡¡¡¢¢¢¢¢¡¢¢¢¡¡¡      ¦¦¦°°°·¸¶¶¶µ±±±®®®¹¹¹½½½¾¾¾¶¶¶µµµ´´´³³³°°°´´´¶¶µ²³²§¨§   ¡¡ ¡¡¡¢¢¢¡¡¡¢¢¡¢¡¢¡¡¡¢¢¢¡¡¡œšŸ””Ÿ¢™Ÿ®£Ÿº§ž¨¡ž¥£¡¬ œ§¡¤`a^Z#Lgnu'd]nW{qy„�†~€~{|z……i7s'Û¸³¿ª�¬—‘¨“�¹¡—ϼ¯ÌÎÏ××ÖÍ»±¾¤™Ë°¡Ã·²_7&_>@\7*^==^=9<# F% X@F€gm¾Š‘Å˜Ž²}Ï™�ØŸˆ˜}x£™ –•žžŸ¡£¢¡¡¢¢¡¡¡¢¡¢¢¢¡¡¡¢¢¢¢¡¡¡£££ªªªµµµ¶¶¶¶¶¶´´µ¶¶¶µµµ³³³¬¬¬½¼½Ž‘�lU^‹gs£‹�¡‰Œ¡‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢‰�¢ˆ�¡‰�¢ˆ�°‹°��±‚ެ|†§y‚¡x‚Œ‚„›™š�¢ ¦¥¥¡  ¡¡¡¢¢¢¢¢¢²²³«¨¦ 1`!P+`@FhPQ‡Vg�UjwW\J03.,+//3  [[\uuuššš¬¬¬¡¡¡¡¡¡¢¢¢¡¡¢¡¡¡¢¢¡¡¡¢¡¡¡¢¢¢£¡ ��¡””žž™Ÿ¬£¡¸£�ªœ�š“›šœ¢¢¡ £¢¢¡¡¡¡¡¡¢¢¢¡¡¡¡¡¢¡¡¡£££¤¤¤²²²µµµ¶¶¶µµµµµµ¶¶¶µµµ°°°°°°¶¶¶ÀÀÀ»»»²²²²²²´´´¶¶¶µµµ¶¶¶µµµ²²²¤¤¤¢¢¢¡¡¡¢¢¢¡¡¢¡¢¡¢¢¢¡¡¡¡¢¡¢¢¢¢  š›¡•“�Ÿš ²¦¢­œ”¦š¦L|KTcpr'jYdR{w{‚~ƒ}€~}}|~~~|}|‚|‚g :v*Æ¥¥¨•�»£šÆ®¢È® Ñ¿³ÔÈÁÄ©œÈ²¦ÑĽÒÓÕÔÐÏK&X.]=5J) P,eAA`LT[BEU7<ƒ[e¨xcŒo\‚lpŸ˜¢¸§ ³§Ÿª¢ž� ¡¡¡¡¢¢¢¢¢¢¢¡¡¡¢¢¢¢¡   µµµ¸¸¸µµµµµµµµµ¶¶¶µµµ¶¶¶µµµ¶¶¶¹¸·…ˆ‡oXa[h—z~¤�‘ ‰�¢‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡‹�¡Š� ‹�¡‰Œ¬~ˆ²‚ޱ��©}…©|…ª|†¬z…–t|—†‹’””£¦¦¡¡¡¤£¤¹¹¹µµµ¸¹¹~|| H$ b:(`@G_HHO_zM[fOQO5: "R+e'["T {zx˜˜˜¿¿¿±±±ŸŸŸ¢¢¢¢¢¡¡¢¢¡¡¡¢¢¡¢¡¢¡¡¡ž¢¢§¡Ÿ©¤ ™— ”�œ’�œ­Ÿž¶§Ÿ²¥Ÿ¡  ž¡¢¢¡¡¢¢¢¢¡¡¡¡¢¢¢¡ŸŸŸªªªºººµµµ¶¶¶µµµ¶µµµµµµµµ¶¶¶µµµ¶¶¶¬¬¬®®®²²²ÁÁÁ¾¾¾¶¶¶´´´µµµµµµ¶¶¶µµµººº¬¬¬ŸŸŸ¢¢¢¢¢¡¡¢¢¢¡¡¢¢¢¢¡¢¡¡¡ž¡¢ª£ž¦¤¢–“��Ž•š�›�ˆ‘-]'a o)n YdP~v~ƒ�„}~}{}{zzz€€€}}}{|{††k.l"¼� Ã­žÇ¯¢Ä¬ Æ¯£Í³¤½¨¡ÑÄ»ÑÑÒÎÐÐÕØÚìæà"b:*\@CiQY�VnjBC0 b8$]6*b@GbBHZ:;Q1+str�Ž”ŒŒ•¨ž¡°¥ ¹¦Ÿ¥ Ÿ ¡¡Ÿ¡¡¢¢¢¢¢¡¡¡¢¡¡¡¥¥¥¬¬¬·¶¶µ¶¶µ¶¶µµµ¶¶¶µµµµµµ­­­»º»Œ��nW`~\iƒdo£}†£}†¡{…¢{†¢{†¢{†¢{†¢{†¢{†¢{†¢{†¢{†¢{†¢{†¢{†¢{†¢{†¢{†¢{…¢{†¡z„§y„­‰¬~ˆ©|…©|…ª}†¨|…­~†¨w‚œy€’�‡”˜—¤¥¥§§§°¯°³³³ÈÈÈDEI9a:&_@GaIIƒQbpNV^HJN(*: MKK¹ºº©©¨¥¥¥¡¡¡¢¢¡¡¡¢¢¡¡¢¢¡ ¡¢¡¡¡¢¢¡­¢�¥Ÿ �•œš— ž� Ÿ� —–Ÿš—ž¬¡Ÿ·§ °£ž ¡¡ ¡¡ ¢¢¢¢¡¢¡¡¡¡¡¤¤¤§§§³³³¶¶¶µ¶¶µµµµµµµµµµµµ²²²°°°´´´´´´³³³®®®¹¹¹½½½¿¿¿µµµµµ¶´¶¶´´´§§§££¤¡¡¡¢¢¡¡¡¢¢¢¡¡¢¢ ¡¡ ¡¡¦¢¡«¡�£œžš—˜’’“�‘�]_]C:CD_=W0s}…„‡z|z~~~}}}}}}||||||€€€{|{…~…j/m#½� À«�Æ®¢Ë³¤Ç¯£²š‘ĸ´ÑØÜÕÓÒãããÚÎÆŒ˜¬ e=3^BIfOTP_jFLJ) 2X1T.]6&eEPc<-&†‡ˆˆ‡ˆ……‹“�™¡›Ÿ¸¨¢´¤�§¢    Ÿ¡¢£¢¡¢¢¢   ¢¡¡¡££¯®¯¹µ³¸¹¸´´´±±±°°°³³³½¼½Ž‘�mV_€^j{\j”hhˆcl‚`m„am„an„an„an„an„an„an„an„an„an„an„an„an„an„an„`m…anƒ`m~^j‘jw¤x‚«}‡ª}†¨|…ª|†¨{„©~†¬|†žq~žu€Š€‚™˜˜ž¢¡¤¤¤ÆÃÂLIJ8b<,`@F`JJbNNbGKa?B !=&,ZGBcJNjOS@883-,µ´´˜œ�¡¡ ¢¢¢¢¢¢¢¢¡ ¢¢ ¡¡¤¢ «¢Ÿ¦�ž�˜Ÿ–”���¡¡¡ ¢¢¢¡¢¢¡¡¡Ÿ� •”ž�—Ÿ©¡ »§ž¬£Ÿ¤¡ � ¡¢¢¢¢¢¡¡¡¡   ¡¢¡¥¨©·³±¹¸¶µ¶µ³³³¯¯¯´´´´´´µµµ¶¶¶¶¶¶´´´±±±°°°···Á¼»¸°ª§Ÿ ¡ž ¡¢¡ ¢¢¢¢¢¢¢¢¡Ÿ¡¢¢¡ £¢ ®¡ž¡œ�•’”�‘’‡‡‡ffe444,.+0'0M[NVC~~€|}{|||{{{}}}~~~€€€}}}~~~|}|††j.l"À ¢Å¯ È°£¶ ˜­™“¶�“ʾ¹áÞÜ×ÒÑ•—¢Xr–Mi� c<1_AH_OR^SWhIJ. * & /W4#_?AbFKhBJ†‡‡‰‰‰ˆˆ‡†…†‡†Œ‘Ž—¢� ¹¦ ²¥žª¢žœ ¡¡¢¡¢¢¡Ÿ¡¡¨¡ž¦¡ž«žŸ¨§­°¯°¶·¶µµµ´´´¼¼¼Ž‘�nW`^i|]k’if…bj_l�`k�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l€_k�`l€_k{\hz[g~]j”lx£w�­~‡ª}…©|…©|…¨|…¥xƒ¢s�¢r€‘ox’„‡�‘‘¸³²J?@9hFJ`?D_FG_GLb?A>"e?7cBH^ONsW`y]eI=A;20´¬©Ÿ›� ¡¡¢¢¢¡¡ž¡¢§¡Ÿ¨£ ª�œš—Ÿ™•ž�œ ¡¡¢¢¢¡¢¢¢¡¡¡¡¡¡¢¢¢¢¢¡¢¢¢�œ ˜•ž˜–Ÿ¯¢Ÿµ¦ž±¥Ÿ¡ Ÿž¡¢¢¢¡Ÿ¢¢£¡ ¨¢Ÿ©Ÿ�©£§««®´´³¶¶¶µµµ¶¶¶µµµµµµµµµ¶¶¶µµµ¸¸¸¬¬«¥¤©¢œž·¥ž²¥ž©¡Ÿ�¡¢¡¢¡¡¡¡Ÿ¡¡©¢ž§¡ §œ›“”˜™˜™„„„hhg555**+...1306-6K\LX@}€|||~~~€€€}}}~~~~~~}}}}}}}~}††k/l"¾Ÿ¡µ¡–§’Ž«•‘ȱ¥Ð´¤È¶ª�œ¤Oj“Nl’Qn•Wr— f>4cDK`QTcNR5 5[X–7I…(]&mJS]HLScrGR‡‡‡‰‰‰‡‡‡ˆ‰‰ˆˆˆ†…†‰‡ŒŒŒ–¨Ÿ¢±¤Ÿ¹§Ÿ¥ ž£¢¡ª¡ž¥ŸŸ›•œ˜— š˜�¦¦§¬­¬¶¶¶³³³½½½‹�ŽlT]‚^ky[i‘gf†ck€`m‚al‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am�`l‚am�`l|[g}]i|\hxZf�_k�ju¥yƒ«}†«~†§z„Ÿs€¢u‚¡t�¤uƒŸp}�owŸ�•157? gEH`@E_?BZ5*d8 I*dDJ_>B_MMdUXjV\I))&*²©¯­ œ¸§Ÿ¨¡ž¢¢¡«¡�¥Ÿ �•œ˜— œšŸ¢¢¡¢¢¡¡¡¡¢¢¢¡¡¢¢¢¢¢¢¢¡¡¡¢¢¢¡¡¡¢¢¡¢¢¡�›Ÿ—–Ÿš–ž®¡Ÿ¶§Ÿ±£�ž¡¡ª¡ž¦¡ £˜�—–Ÿ˜–œ¡ ¢©©¨²²²···µµµµµµµµµµµµ¶¶¶´´´¨¨¨¤¤¤�›žš˜Ÿ•”Ÿ©žŸ±¥ ¸¦ž¢ Ÿ¦¢ ª¡ž¤�žŸ�ž�‘”��Ž[[[@@@###11122211102/3+3K\LW@}€}}||||}}}~~~|||{{{}}}}}}z{z„}„k/m"·˜œµ¡–¹£™¯š”Ï´¤¾«¤hx�dr…p{‹Sp–Xs–Rn•"Z5(N5:T9AT6F =t F}'-3< fDF`@G]7)6)Z3a@F`FHaMN^QT^LO'“’’œœ£”“�¢œ ²¥ ·£�¥šœ—”�š�¡¢¡ ¢¢¢¡¡¡¡¡¢¢¢¡¢¢¢¢¢¢   ¡¡¡¢¢¢¡¡¡¢¢¡¡¡¢¡¡¡¢¢¢¢¢¡žœ ’”Ÿž˜žª¢ º¦ž¬��š“œ—™¡ Ÿ¡¤£¢¢¢¡ŸŸŸ¢¢¢§§§´´´µµµ¶¶¶´´´©©©¢¢¢   ¡¡¡££¢¢¢¡ ž –— —”�¥ž ¸¨¡­œ—˜•˜’”•ŠŠŠddc666,,,,,,4441111110/0-1+9/9L\LV@}{~|}|}}}}}}}}}}}}|||~~~||||}|……h8u(Ú¸³Ëµ¥ÁªŸ«–‘Ï·©´¨£Eh•]u•buŽ|€„G^„UatA) !sO]§{ˆ;lRˆ$O†:~ /=-*gW[cS[8${xr‹�އ‡‡‰‰‰‰‰‰‰‰‰‰ˆˆˆ‰‰†ˆ‰Ž‰†‰‡†‚�‹�Œ–˜’œ¹§¡±¥ž«£Ÿ� ¡ ¡¢¢¢¡¢¢¢¡¡¡   £££²²²§¨¨wuuqVc’hg…bj€`m‚al‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am�`l‚am�`l|\h}]i}]i|\h}]i}]i{\hz[g}]i�hr›q}£v‚¢t‚¡t�¡t��r}³��B-5; hFK`?D`?D]7! &\5`?F`II`NN_PTdC> ¡¦§©¢ž¦£¡•“ž•‘œ•�›´¤Ÿ³¦ž­¤Ÿ�   ¡¢¢¢¡¢¢¢¢¢¢      ©©©£££ŸŸŸ¢¢¢¢¢¢¢¢¢¢¢¢¢¡¡Ÿ¢¢¤¡ ª£Ÿœœ¡“�›”‘�¨›�·§ž±¥Ÿ£  �¡¢¢¢¡¢¢¢¡¡¡¡¡¡   «««­­­   ¡¡¡¡¡¡¢¢¢¢¢¢¢¡¡ ¡¡Ÿ¡¢ª£ž£¡¤’�›“�–——˜}~~kkj222------222222111111..-343;4<728ZXLX@|z}{|{}}}~~~~~~}}}}}}~~~zzz{|{‡�‡i?`T[kPMtwz›ššŠŠŠ†††ˆˆˆˆˆˆ‡‰‰Œˆ‡�‰†Œ††„…ƒ�‡ƒ‚„‹‰Ž�Œ–¨Ÿ¢²¤Ÿ¸§Ÿ§ žŸ¡¡ ¡¡¢¢¢¢¢¢¡¡¡ŸŸŸ¡  ¤¥¥utwˆc`ˆcl_l‚al‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am�`l‚am�`l|\h}]i}]i}]i|\h}]i}]i}]i|\hzZg~_jŒhs›r}£u‚¢t��q}±€ŽC/5<e>4_@F_@EeAA@"  X2aAF`CE_FKfHE7^XV¯¦£¦žŸœ•œ›˜ žœŸ�›Ÿ••Ÿ¢šŸ±£Ÿ·§Ÿª¢žž¡¡¡  ŸŸŸ¨¨¨®®®¸¸¸±±±«««      ¡¡¡¡¢¡ ¢¢¬¢ž§¡ ¡˜œ™—Ÿ�›ŸžœŸ™— ™–ž¯¢Ÿ´¦Ÿ²£�Ÿ¡  ¡¢¡¡¡¢¢¢¢¢¢      ¢¢¢¢¢¢¢¢¢¡¢¢¡¡¡Ÿ¡¡©¡Ÿ©¡Ÿ¦œž˜–˜””•�Ž�]\]@@@###111111111111000/0////>;>4/5 J MbWJX>~|}~}|||}}}~~~}}}~~~{|{ˆ‚‡i:v)㿷Ű¾¨ž¬—’À¥˜­ �Gi”Om•Vp“v~ˆq}Œfw�Ã��N4DŒer¹ˆ’½�”‹gl#.:r@s;6$!iX]gT[9NHA¢¢¢————––”””ŠŠŠˆˆ‰‘‡„Іˆ……�€‡……‡ˆ‰ˆ‰‰‰‡‡‡ˆ†ˆ†…‹‘�™¤œŸ´§¢·¥�¥¢   ¡ž¡¡¢¢¡¢¢¢¡¡¡£¡¡ž¤¥–ys…_h€`m‚al‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am‚am�`l�`l�`l|\h|\h}]i}]i}]i}]i}]i|\h}]i}]i|\hz[g_j‹grœr}�r~³‚�<+57 ]5"bBH_@F\;8^3 8 dDK^>B^;:R.ŽŽ’¦ž¤•”��œ ¡¡¡¢¢¢¢¢¢¡Ÿ œš •”ž¢›Ÿ®¢ž¹¦ž¨¦¦±²²³³³¸¸¸µµµ¶¶¶¶¶¶³³³©©© ¡¡§¡Ÿ©Ÿ� › —“œ›š¡ Ÿ ¢¢¢¢¢¢¢¢¡žœŸ””ž�˜ž©  º§ž­¢ž£¡ ž ¡¡¢¢£¢¢¢¢¢¢¡¡¢¢¡Ÿ¡¢£¡Ÿ£¢¡¯¢�Ÿ›�œ—™Ž‘“……„aa`999***---333000111///00/131949=9>*7$!P]f aXJW>�‚~~|||}}}}}}���}}}���~~~|}|…†g 7{1Õ¼¼­œ”º£›Æ¯¢Ô¼«Ç±¥±¡ž—•–t|ˆWp�So”Tq˜qQ^hJX²‚Ž´„޽‹“È”�–mr /[A4%'gW\c?5-OZn—˜˜—————————™™™���ˆ†Š€}„……ˆ‰‰ˆ‰‰‰ˆ‰ˆˆˆˆ‰‰‰ˆˆ‰ˆˆ‡‡†‡……Œ’�˜ › º¨¡±¥žª¢Ÿ� ¡ ¢¢¢¢¡�Ÿ §¦¥¢x‚]g�an�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l�`l€_k‚am€_k{[g}]i}]i}]i}]i}]i}]i}]i}]i|\h}]i}]i|\hz[g}]i•ltIAY K._$CY0!eDI]=>Z0K)  fC@eDM^8('ІޠŸ¤¡  ¢¢¢¡¢¡¡¡¡¡¡¡¡¡¢¢¢¢ ŸŸ™˜Ÿž›£¯­®ÁÁÁ¾¾¾ººº³³³µµµ¶¶¶µµµµµµ···´´´¥¤¥œ˜ —•�¡¡¡¢¢¡¡¡¢¡¡¡¡¡¡¡¢¡¢¢¢¢¡¡žœ¡—”�š— ¬¢Ÿ·¦ž®¥ £  �¡¢¢¢¡ ¡¢ ¡¡§¢Ÿ«¢¡¤œ›•”˜™™š‚‚ƒkkj000...,,,333222111111..-453426D8B%9!!Q g\vYKW?]bWKX?|z}|}||||zzz~~~}}}}}}~~~}}}z{z††k-l"Á¡£Å®žÑ¹©ÒºªÔº¨Ç¯¢¾¤˜ÐÁ··¤Ÿp™Ys—Gh“L2C¢xƒµƒ�¸ˆ‘¸‰‘¶†�«}ŠqS[^AB: d>9cHP 8,D3.S{{}ž�œ–––———“““•••–—–““’ŒŒŒ†††ˆˆˆˆˆˆ‰‰‰ˆˆˆ‰‰‰‰‰‰ˆˆ‰ˆˆˆ………‰‡��Œ–§Ÿ¢³¤ ¶§Ÿ¨¡ž ¢¡­¡œ¨¥¤£}uƒ_f�amƒajƒakƒakƒakƒakƒakƒakƒakƒakƒakƒakƒakƒakƒakƒak‚`k‚`k‚`k]h|\h}\h}]h}\h}]i}]i}]i}]i}]i|\h}]i}]i|\h€]h;>Z/^ ?nQt«b™3RV2(]8(^26 M0+g@.hgn³³²žž�¡¡¢¡¡¡¡¡¢¢¢¢¡¡¡¡¡¡ŸŸŸ¨¨¨¯°¯¹¹¸±±±°°°µµµ¾¾¾¿¿¿¸¸¸´´´µµµ¶¶¶±±±²²²³³³³³²««ª¡¡¡   ¡¡¡¡¡¡¢¢¢¡¡¢¡¡¡¡¡¢¡¢¡¢¢¢�›Ÿ˜–Ÿ˜–Ÿ°¢Ÿ´¦Ÿ²¤�ž  ¨¢Ÿ¨¡Ÿ§œ�––˜““–Š‹Š_^^===%%%111111111111000/0/000=:=5.57B2 J3k)LuI‚y‚†€‡EY9^aXJX>~||~}}}}~~~~~~~~~}}}}}}|||yzy††l+i ̬ªÓ½©Ð¸¨Ò¸¦ÏùƯ¤»£›Å­ ½®¨Ò³¡´¨¥‰�›‡cp³ƒŽ·‡�¸ˆ‘ºŠ’µ„�Žir˜p|È“£mVMV0Z3"dIRxVcT2>�‹�Ÿ Ÿ“’“”””•••˜˜˜———˜˜˜———”””ŠŠŠˆˆˆˆˆˆˆˆ‰ˆˆ‰ˆˆˆ‰‰ˆˆˆ‰‰‰‰‡ˆ‡ˆ†‡††ŒŽ�˜¦ž¡²¨¤¶¥¡ — “–¥Šs�~[l~as|ct|bt|bt|bt|bt|bt|bt|bt{bt{bs{as{as{as{as|at{asz`r{as{_p}\f}]g|\i}]i}\h}]i}]i}]i}]i}]i}]i|\h{[g�^i*PL€(o›C�½ p�>r=V-E+63-006#.R1,\8+^]_¬¬¬Ÿžž¢¢¡¡¡¢¡¢¡¡¡¡   ¥¥¥±±±µµµ···´´´¶¶¶µµµ³³³®®®···½½½ÀÀÀµµµ¯¯¯³³³´´´¶¶¶¶µ¶¶¶·²²²ªªª   ¢¢¢¡¡¡¡¢¡¡¡¢¢¢¡¢¢¢¡¡¡¢¢¢¢¡¡žœŸ”• �–ž«¡¡¹§Ÿªš˜š˜š��‘ˆˆ‡^^^<;<'''...333000111///.1.313=5=:7:.8(S#e[v[z}z‰~Šy}y€�FX9_bWJX>€~�~~}|||zzz~~~}}}}}}|}|†…k1n#Ó²®Ñ¼©Î½²É»³¿ª¢Å®£Íµ¦Ó½­Ä¿¾½¦œÝ®ÓÊþŒ—ÀŽ•¹‰‘¹‰‘¶…�¥yƒ‡do£x‚¢v€¯­°ƒywiGM¥{‡²ƒŽ¯��V=K’““¡¡¡›››˜˜˜–––˜˜˜———˜˜˜———ššš‘‘‘†††‰‰‰‰‰ˆˆ‰‰ˆˆˆ‰‰‰‰ˆˆ‰‰‰†ˆ‰‹ˆ†Š‡†‡†ŽxpkcXGc`NmeK‚aS„_W‡XO”QJ”UL”SK”TL”TK”TL”TL”TK•UL•VM–XN—XN—XN–XN“YK—ZO—ZO™ZO‘ZSuYn|]l~]g|\h}]i|\h}\h}\h}]i}]i}]i}]i|\h€_jlR^5RCKwJVŠw|ºŽ–Ö‚…¾G*7*���¦§§   ¢¢¡¡¡¢   ¨¨¨¯¯¯···¶µµµµ¶µµµ¶¶¶µµµ¶¶¶°°°³³³±±±²²²±±±´´´¾¾¾¾¾¾¸¸¸´´´µµµ···²²±«««¢¢¢¡¡¡¡¢¢¢¡¡¢¢¢¡¡¡ ¡ ž¡¡®¦£´¨­° ¦••–—–—ŠŠŠfff:::&&'111111222000000///010>9>405!D!L'n%NtJƒy„ƒ€ƒ~{|{|}|~~~�‚FY:_bXJW>€~�~~|||~~~}}}}}}}}}}}}{{{{|{……j4q%Ϋ«Á¬ž¼¬¦Å¬ Ô½«Ñ¶¤Î»¯ÒÉÃÉ»´¾¦œÉ¯ À³­Á�—³‚Ž®~‹¯‹¦{„_j¥y„£xƒ«‡À¾¾¤–›|We®€‹·…‘–nzP9H———–––““““““›››   ���“’‘ŠŠ‹†‡ˆˆˆ‡‰‰‰‰‰‰‰‰ˆˆˆ‰ˆˆˆˆˆˆ‘ˆ†Œ‡†‡‚…�…ƒ„‹Ž„w±ƒ ¬v:¯{b­{`¬}a®~a¸�p¼˜zµ�r¸“v·�s·‘t·�s·�s·‘tµ�q³Šo°…l­ƒj¯„k¨€d°yk¢x^¢ya�rZ»m¸w ¬m©Z+uSX}Xgy]m]g}]g|\h}]i}\h}]i|\h|\h_kkMZA+QU€gm§|€¼{~¹mx·KCa?=aLZ‘uy´‡�Ê|y­H5QigŸcSc¤¢Ÿ  ¡ ¡¢¢¢¡¢¢¢ŸŸŸ¡¡¡¥¦¦°°°¸·¶··¶µµµ²²²¯¯¯³³³´´´¶¶¶¶¶¶µµµ²²²­­­¶¶¶½½½Â·¶µ¨§§ ¢£ŸŸŸ¢¡¡¡¢¢¢¢¡¡¡¢�žž£¥¢©£¦´¦¥zsu,\)?w>—‘–Z[Y>>>$$$///333000111///010/10;8<;4;?Z Xfcq_Š|Œ{~z~~~}}}}}}}}}}}}|||�‚FY9^bWJX>}€}~}}}}}}}€€€}}}}}}}}}}}}~~ˆ‚ˆh:w*Þ»´Ð½­Á¼»Ã©�Õ¾­ÌÆÂÑǿIJ«È°£Ì²¢Ïû˽´¸ˆ‘´ƒŽ­‰�is~]i¡v�±��¯€Œ´ƒ�ÁÀÀ¯¡¤~Ze«~釓�grF-<–––˜˜˜———˜˜˜’‘‘‘‘’�‰ŠœŒ†�‰…Œ‰‡…ˆˆ‰‰ˆ‰‰ˆ†ˆˆ‹‰‡Œ‰ˆ�†„…ƒ‡‚~…„„ˆ‰ˆ‡ƒ‡�|nSµlŒ`i”o{•ox�q£rƒ¡m£n�¤p‚¤p�¤p‚¤p‚¤p‚¤p‚¤p‚¥q‚¥rƒ¦s„¦s„¦s„¥rƒ¡r§tƒžq~—mw†`eª`3ºqÎx$¿n—Z7…QMsXm}\m~^g|\h}]i|\h}\h{\h�`liKY9!2DEsNWŒnn«swµyÀYPz;9VMX�vz¸Š�Ëyz·TO�|†ÆL7M»§œ°¥Ÿ§¢Ÿ� ¡¡¢¢£¢¢Ÿ¡¢£ ž¦£ ±£ ®®±¯®¯µµµ´´´¶¶¶¶¶¶µµµµµµ¶¶¶µµµ¶¶¶´´´­­¬¨¨«³¤Ÿµ¤�©¢Ÿ   ž¡¢£¢¡ž  Ÿ �²®®ª•›ƒ†}'K#XZ T;4;,-,,,,444111111000...363405F;D5]\nW`YrU€|�{|{|}||||{{{~~~}}}}}}‚€ƒEX9_bXJW>|z}}}}€€€}}}}}}zzz}}}}}}}}}{|{†€†g=y-åÁ·Î·¦Ã¾½ÅªœÐƿdz¨¿§�Ì·ªÌ»Ï¹ÍÀ¸Æ¾º·‡�·‡�µ…޾‹–“ly u�µƒ�¸‡�¶„޽¼½¶¦©…^j•nz´…�wP[^PYš›š˜˜˜˜˜˜’’’Œ�Œ„ƒ†‚…�‡‘ˆ‡—‹†•‹†ˆ‡†ˆˆˆŽ‰†Ž‡††�…‚€†ƒ�†ˆˆˆˆ‰‡‰‰ˆƒ‡ŽvbI´\“i|’m‚’m—qƒ–t‡•tˆ–uˆ–uˆ–uˆ–uˆ–uˆ–uˆ–uˆ–uˆ–uˆ–uˆ–uˆ–tˆ•uˆ–uˆ–tˆ–t‡’s„‰m{`r}atŠ_c¦b/Ãq,ÉyÂn#–Z.„SPsWn~]j|]h}]h|]h|[g€_kjLZ;+G5vPYŽnqªox¯pw®co¨@3_IO‚ty·ƒˆÄ|ƒ»Wb•y}¼ONˆ‡‰žŸž‘��‹‹‹‡‡‡‡‡‡‰‰‰‰‰ˆ†„‡€€‡�†�‡‡—�‡—Іˆ�„‡ƒƒ‡ˆˆˆ‰‰‰ˆˆˆ‡‡ˆˆˆ‡‡ˆ�fcNtR€W!|a ’s)¥x8Áf#Èd#Æd"Æd!Æd!Æd!Æd!Æd!Æc!Æc!Æc!Æc!Åc!Æc!Æb!Æb!Æb!Åb!Æb"Ç`$§^I}[^}_pvb}‘]UŸe@ÆoÍ{¶n#¦Y'uSY}Why]m~]g|\f€`miHT=4R>/WC>|MY‰Xf•[h—lvªXK—IQ‡rv³twµrx²W`”y~½N9>5266=/N+g!TwU{uy6S(ahWaZqV�{‚~}~~~}}}}}}{{{}}}{|{€~�FY9^bXKX?~|€€~~~{{{{{{~~~€€€}}}~~~|}|‡�ˆg =5ãÏп±¨È¯¢Ë±¢ÏŽɺ±Ã¨œÑĺÊËÌÒÆ¾Å´­Ç®¡¸ˆ�·‡�ºŠ’­Š€_j«~ˆÄ�š¡v�£v�¾¾¾Á­°‰ak«}‰µ†�Z×v=Øu>Ôu9²†Áq2’]H†[Ty`u`q…__ªa9¼qÎy&¼nšZ5�ROvXk{\mƒblhFP>>dD2O>0tR[�x{¶…ŠÄ‹�ËT]�HR„twµpt±uy´jl¦rv¶P=SŸ¡Ÿ§£¡£¡ ”“ž™”�›“›¶¤ž¯¢�§¤ ž ¡ ¡¢£¢¢¢¢¢   ¡¡¡¤¤¤´´´©©©¢¢¢   ¡¡¡¢¢¢¢¡¢¢¡¡�Ÿ ¡¢ž±¬¬˜�Ÿsx{,M"W[prmMdD�v€'p U4,4-0-363517CÀ�7ĆÍk–aD‚Zbv_r{]n„^d©a/Âr,ÉyÄn“Z1‡QMu\ukHS<;_E6TGC{[eœ„ˆÅŠŽÊ…ˆÆX`•KUˆqu³os°pt±rt²jq®Q=Q©¢�ª¡Ÿ ™�™–Ÿ›˜ž™—ž˜–Ÿ¨ŸŸ·¥Ÿ±¥Ÿ¥ Ÿ�¡¡¢¢¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¢¢¢¡¡¡¢¡� Ÿ²¬¨­›¥~}q0W1P^qooOfEztx��„|…&r S606:6;>3=,>(L *j#PsKƒ{„}~}|~{|}1U#aiXbZqV„…|}{}}}}}}}}}|||�‚FY:^bXJX?|z}{|{~~~~~~~~~~~~}}}}}}~~~z{z„~„k3o%Ö³®Í¶ÍÀ¸Ë¿·ÐÎÍǽ¹¿¦›È­ŸÃ©œÂ§›ÏÈÂÇÉË·‡�·ˆ�¹ˆ’­~‰~_j¤u¦zƒ½‹”¢t¯³´É³¶œn{Œjt¼‹–cBQuru�Ž�ˆˆ‡ˆˆ‰ˆˆˆ‡ˆˆ‘‰…Œ‡ˆˆ€„€‡„‚†ˆˆˆ‰‰ˆ‰‰‰†„‡�€‡�€†�‡‡–Œ†•‰„‰ŠŠ““’��˜|^¹†9¨q~µ‹‘ºŽŽµ…�²„�¯‚Œ­€Š­€Š­€‹­Š­}ˆ­~‰®Š­Š®€‹­€Š±Œ®€‹«~ˆª}‡©}‡¦z…§z…©}‡ t‰—od¤xMµ…*Ѓ.±p1Ÿ_Gy\c{\ls_wŽZT�d=Èo Ìz·m%©]*dBC>E N0i%PuNz€‡€‡{}{€€€|||~~|xz1U#aiXbYpU‚|ƒ€~~~~}}}}}}~~~}}}‚€ƒEX9_bXKW>~|}}}}}}zzz}}}~~~}}}~~~|}|†€†j4p&׳¯Ë¸ËËÌÒÆ½Ä´­É¯ Ê° ÐúȿºÂ§šÎÆ¿ÎÒÕÁŽ–·ˆ�²…�¨|‡{\g·†�Ôœ¤ s|°££ÉÌǼ¨¬Ë�••mw²ƒŽkHXtqt���†‡ˆŠ‰ˆŽ‰†Ž†…†‚‡�~…„„ˆˆ‡‡‰‰‰ˆ‰ˆˆˆ‰ˆˆˆ‰‰‰‰‰‰…„††…‚‡—“’   �ž�’”š{uZ²{-¯xª~‰¥x�§{ƒ¨{„©|„¨{„©|„©|„©}…¸«­³³²¢‹�©|ƒžu¯v‰H†F�wu­{‡¤yƒ¦v€¥v‚¥y„¤w‚¨{‚ t†�p�–ql¤uFº‡*Ë/¹s.–\L~Z\t[px]p…[W¨b>¼pÜ~&…W::i@4ROVˆƒÁŠŽÊ‡‹Çx}ºfi¢em¢€…Á}‚¾x}¹uxµV^—G6Jœš ¡ ¡¢£¢¡¢¡¡¡¡¡¡¡¡¢¢¢¢¡Ÿž —–Ÿ™–ž¥ž ¹§Ÿ±¤ž¥¢ ž   ¢¢¢¡¡Ÿ¡¢¢¥££¡¡¬–’³Œšc…_R]otkNeFursƒ|ƒ�€{|zyyy{|z…†)p ^ O b\vZw{wˆ}‰|}||~|~}~|||}}}z{{{xz1U#aiXbYpU‚|ƒ}~}~~~}}}}}}zzz}}}z{z}€FY:^bXIV={y|}~}|||~~~}}}|||}}}zzz{{{|}|……k4o"Ô»¾ÊÌÊȵªÀª Ì²£Í¼±ÌÉÇÈÉÉÄÂÿ­¦ÕÕÔÏ»°Å“›µ…�¬}†¤zƒ•nz»Š”­}„�Œ•„�¦�ž­Î¶´É�™µ‚‹�ugDSqqu�ŽŒ�‰†�‡……‚†‚†„‚†ˆˆˆˆˆˆˆˆ‰ˆˆˆ‰ˆ‰‰‰ˆ‰‰‰ˆˆˆ†‡†‹Œ‹‘‘�—˜˜’““”””œ›š™›¢wqV«t'ªt¬€Š¦y‚§z„©|…§z„¥xƒ¦{†¤q}³ž£ÃÊȺºº¥ª©¥ˆŸr}®rŠ4‡;Œxu§r„žm{§‰‘Ÿ{…¡m|¢u‚¡u‚¢u€¢u�¢t…›r€™nq y=À�7Æ!Ãn9�aD‚Y_o]uz[k~\d¸f.†X(99cJ?ˆjj¦€…ÁŒ�̇ŒÇvz¸alŸsw³‹�ˉ�É€…Á}�¾OZ�G7I¨¦¥žŸŸ¡¡¡¢¢¢¡¡¡¡¡¡¡¡¡¡¡¡¡¢¢¢¢¡ ž¡—•ž˜–Ÿ¦žŸ¸¦ž°¥Ÿ¦ ž�££¨¤¡ª”–¬ˆŠ¨„†¹™�VwF[ qqMcCzuy‚~‚~~~{}{}}|}}}}}}}}„~…*o!]Whqrp„€„}||}|}}}}}}||||||~~}y{1U#aiXbYqV‚|ƒ{|z{{{}}}}}}}}}~~~~~~�‚FY:^bXJW>~||}}|||€€€}}}~~~}}}|||{|{†€†j3o$Ò±¯Ä¬›Â§›Ãª�ÏÊÅÇÈÊÇÉÊÔרÍþ¾¥šÈ­Ÿ¾ª¡´‚�©~‡ÆŽ—ΗžË–Ÿ¦x€Ž‡Ž)S†c/o‡‚™»†Šœt�®�ŒQ6F‡zx™ŽŠ…€„€‡ƒ‚†‰ˆˆ‰‰ˆˆˆ‰‰‰‰‰‰ˆ‰‰‰ˆ‰ˆ‰‰‰†††‹‹‹’’’———˜˜™———˜˜˜•••••”��•vnV«m'§s{¥{† r¥sƒ¤t� q~¤u�¢q x„±¬®ÉÉÉÀ½¾«¬¬›Œ‘žt­qˆ9†?�sq¤zˆ«œ¡ÂÅÄ®ª«¥’—Ÿt�¡q¢u‚¢u�¡t€¢t�¡uƒœpˆ˜oe£yJ¹ƒ)Ï„+´o3§]+YavZlyaxkGP:9[PU�x|¸…‰Å„ˆÄ€…Áw{¸ip©x}¹ŠŽÊ‰�ɉ�È…ŠÅdi¤N;Mºº¸­­­£££¡¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢£££Ÿž š—Ÿ–– ¬¡¡µª£®˜˜¬…Šª‡‰±–’¶¤˜Ê¨¨XyHU7Y(tip…‚‡}~}|}|~~~{{{zzz~~~~~„~…)p ^Ufmsl}{}{{{~~~}}}}}}}}}{||{xz1U#aiXbYpU‚|ƒz|z|||}}}}}}}}}~~~~~~�‚EX:_bXKX?}{~}}|€€€zzz{{{~~~}}}}}}|}|ƒ}ƒh:v)Û¶¯Ì¸ƺµÄ¨›ÍÇÂÏÓ××ÑËË»´È­ŸÈµ«ÒÉÅÐÌËlJX™p{§|†Ä‘š¢u|‚|ƒEsQ2^#X;ChÎ’—©|…¡w‚P4DogjŒ……˜‰…�ˆˆŠŠˆ…ˆˆˆˆ‰‰‰ˆˆˆ‰ˆˆˆ‰‰‰‰‰‰ˆˆˆ”””———˜˜˜——————˜˜˜——————˜˜—”“›hiI”h¨q{¦w…‹mwsupž–›¦�¡Ÿ“�Ž…ˆ‰†‡ÅÇÇÌÍÌ´»µ«ª«™›š�v®rŒ/�(ŽžŠ»±¸¼ÂÀÆÅÅ···´¸¸°­®¢Ž”¡p¡u‚¢u‚¡u‚¡t�¢u¡t†�pƒ–qi¤tI¸ˆ%Ñ~+½r¨[7~Z\{\hO=n@L�v{¶€ƒÀ|�½}‚¾vz¶v{¸ˆ�ÉŠŽÊˆŒÈŠŽÊ†‹Çqt¯L:sqbk½À¾°°°«««žžž                  ŸžŸ¡¢¡ ¢ Ÿ›�…�‰˜w~¯‰Š±–“·£šº¢™· –ή¬WyITLV@}}|}z|||~~~}}}}}}}}}}}}wxw…†*p!^Vfjpi}|||}}}|||���}}}}}}|}}|xz1U#aiXaZqV‚|ƒ}~|}}}���}}}~~~}}}|||‚€ƒEX9_bXJX>€~�~~}}}}}}}}}}}}|||���}}}|}|……f <~4ÞÐÕÄÈÇþ¿À°¨ÖÖÕͺ¯Ã¬£É±£ÏÉÆÐÎÌÏÕÚäÞÙ‘Ž‘T9H“nx³�Š{r‚Fy!Y?t)Eu"?o#]Œo�Ô”™ z‚_@N�~„�Ž�……„“‰ƒ–‹†’Šˆ‡‡††ˆ‰‰‰ˆ‰ˆ‰‰‰ˆˆˆˆˆˆˆ’’’•••˜˜˜——————˜˜˜——————˜˜—””šus\’cªry™�‰¯£±7¢5ˆ¨‰°«±«®­ª¬«©«ªÐËνÍÀG©[¶­´—˜–Ÿr|¯‰�/£.©¿¨±¬²²±±ÉÉÉ´´´µ´´¸¼»¯¢¦Ÿn|¡u‚¡t�¢u‚¡u�¡u‚£u�¢u€£t‡œr�–mpŸy?Á‚6Â…"ÌkŸfAe:9;=wx{¹‹ŽÊ‰�ɇ‹Çty¶{€¼ŠŽÊ‰�ɉ�ɉ�Ɉ‹Èpz²=DtXEQ¡£¢““’���‡‡‡ˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆ‰ˆ‰‡‹Š†…ƒˆx{Šoq‘vw™€€²•“º¥›¸Ÿ˜»¥œÈ²¢È�£YtFUHW<|z}|~}yyy}}}~~~}}}}}}}}}}~}„~…)o ^Vfntmƒ�ƒ}}}|||zzz}}}~~~|||~~}y{1U#aiXbYpU�{‚{|z}}}}}}~~~~~~~~~}|}‚€ƒFY:_bWJX>}€|~}zzz���}}}|||zzz}}}~~~{|{†€‡g 9|3ÙÓÞÐÕÓÊ¿»À¦šÇ®¡½§žÁ²¯ÔÖ×ÌÎÏÜÞßæÝÔÃÄ˲´²‘Ž‘^CS£t}A:P $6p'H€:u$Y6n=Ho¥zˆ¿Œ—fDS†€‹¦£©•“˜‰ŠŒ…„ƒ“ˆ„˜Œˆ’‰††ˆˆˆˆˆˆˆ‰‰‰‰‰‰‰†††ŠŠŠ���–––˜™™———˜˜˜•••””“–˜˜”ŒŒ’VA�kl£§ª¹ª¹. +‘§�²©±ª«ª¿¾¾ÌÌÌÏÊÎÊÙÊQ±[¹¯·—™—™pw¬ˆ›1¢1ÍáÌÀ»À±°±ÐÐеµµ´´´µ¸·® ¤ n}¢uƒ¡u�¡t�¢u‚ t€�s~£uƒšq{Ÿs›r}’n•me£zH·€3׋ŒC,,Mfk¢�”ЈŒÈˆŒÈ‚ˆÃ‰ŒÈ‰�ɉ�ÉŠŽÊˆŒÈŒ�Ë}‚ÀRQ…YGR–™˜†††‡‡‡‰‰‰ˆˆˆˆˆˆ‰ˆˆˆˆˆ‰‹‹†…ƒ‰y{ˆnq�tv“€}Ÿ�‡º�˜®’�¿§�Ȳ¤Ã¤œ±™‘´ˆ•[tGTHW<|z}}~}€€€|||€€€~~~}}}}}}~~~~~…~†*p!]Vglrk|z||}|~~~€€€|||€€€|||}~}}x{1U#aiXa\sX�|‚z{z}}}}}}||||||}}}|}|}€EX8^bXJW>€~�~~|||zzz~~~~~~€€€|||€€€{|{†€†f ?ƒ<èÙÝȺ±È¬�ǵ¬ÒÊÅÎÈÆÅ¶±ÚÞáëãܾÀ‰’¤OhŒ¤££²¶µkRT7-H )?uF]† 6l+U‰<}0g•tƒÇ’œhDT…~‰¢Ÿ¦ž™¢Ÿ›¢—•š†‰‹†ƒ��ˆ…›‹…މ‡‰ˆˆ†ˆˆ‰‰‰‰‰‰‡ˆˆ‡‡†�ŠŠ˜Ž‹––˜“’’–––”””›››ŠŒŠ{\K‘dX¦¦¥µ²µ�§�A¢>¢¡¤¥¤§³³²ÊÊÊßÜßÒàÙV¶]ƿǥ§¦€`[ ‚‰.¨-ÞóÙÊÃʦ«¦ËÌ˱°±¾½½ÅÈdz¥©˜mx u�£t‚œr}œs~›q|šr|—qz”pw–py—qy•qv–q|“l}‘md±€MoH.67`MBbƒ‡ÄŒ�ÌŠŽË��ÍŒ�Ë‹�ËŠŽÊ‰�ɈŒÈŠŽÊ‚ˆÄ]a”[DL—‘Œ‡…†‡ˆˆˆˆ‰‰ˆˆˆ‰‰ˆŠ‰ˆ‡††wwŒmtŒrs—‚™Šƒ—†€³�”¼£š´™“˱¤±��§��±š’Ã¥¥XzITIX=}{~}~}~~~}}}|||~~~€€€}}}|||{}{‚|ƒ(n^Vfntm��|}|~~~~~~}}}|||€�€|xz0U"aiXa[rW‚|ƒ}~||||~~~}}}|||€€€}}}�‚EX9_bWKX?}{~}||~~~}}}~~~}}}|||~~ˆ‚ˆh 9w-×¶´Å¯žÏÉÆÏÎÌÑØÜâØÒ;³ÈÁ¾zŠ¥Zo�Gh’Xs—°°±°¯¯›™™0h <8:\’å¯p$4C(ZNWl'As¦‚�½‡�aDS‰…Œ¤¡§�™¢›—Ÿ¢�¦‘�’��’ŠŠŒ……„’‰ƒ—‹†‘‹ˆ‡‡‡‡ˆˆ�‰‡‘‰†ˆƒ…‚†‚€…‘�‘•••™™™——————•––˜—–����Ž�©¦©š��Œ‹Š‹“‘—¶°±wŒ¨[W< Q'Hƒ’¦¨JL‡7|J•/µ¸ÊþôûN£^†›Š¤Ÿ£¡¡¡´´´ÂÀÁ”••�z„™ozšr|”pw–qx–qy•px–qy•qx•px–qy–pw–qw“o|™t}pOU}{~}~}|||}}}}}}|||{{{~~~}}}|}|†€†j6p#ÙÄÈ×ÞÞëáÙÁ¿Ã‹’¢Mh�Kl–ew�q{ŠiwŠl{�s€‘¤¦¦°±¯šœœ*\!4j .f!@t$Cv/jL!A�𛬭­›™ž•“—’’�ŒŒŒŸ�¡�Ž’˜•›ž˜¢ž™¢Ÿœ¢—”™ˆŠ‹†ƒ�‰€‚–ˆ…Œ††‰Š‰†ˆˆˆˆ‰‰‰‰ˆˆˆ†††ŠŠŠŽŽŽ˜˜˜���‹‹‹…†…Ž…�y“w~€h„�•Ž�„‚œ�—@›I>´3O‰N¨ˆŠ{jn.p-¡Ò™�„—*= ¦›‘ˆÎÉÏÒÒл¸·¥§¨™Š�•nv–px–qy•px–qy•px—qy˜qy˜qz˜qy˜rz˜sz•px–qy•px–rz’nt -'Pt,l›CŒ¿<м4d™SK�lu­‰ŒÉ‹�Ë}„À`^•UCN�”‘�ƒzszŽpu�su—‚˜Š‚šˆ‚žŒ„™†�™„€¨“‹“{z�†„´�–»¦›À§�Ĭ Ä­¡µŸ˜Â®Ÿ¾™Ÿ[pEVIW=}{~}~}}}}~~~zzz|||~~~}}}}}}z{y‚|ƒ*p ^Vfnsl€~€|}|}}}}}}}}}}}}~~~}~}{wy0U"aiXbYpU�{‚}~}}}}}}}}}}~~~€€€�‚EX:_bWKX?{y|{|{}}}}}}~~~~~~}}}~~~zzz{|{†€†i9s%àÊÌþ»}�¥YmŒGi“Xs—Tp•Nn—Ys•�Œ†�Ž‹’�Œ¥ž œ›ž):_&,`)Bw'G€,a.[AH~er¥Œ�Ëz~¼SO}`OWŒŠmq�vw�tv–‚šŠƒ™†�œŒ„¨“Š•„Šru‘~{˜†‚±œ•Á©Ÿ½¤›Ã« Æ­¢»¥›£�Œ®›’ʨ¨XwHTJX=€~�||||||}}}}}}}}}}}}{|{„~…*p!^Vgmrk~|~}}}}}}zzz}}}zzz|||€}y{0U"aiXbUlQ‚|ƒ}~}}}}|||zzz~~~}}}}}}‚€ƒEX:_bXKX?}{~|}|}}}€€€|||}}}}}}}}}|}|ˆ‚ˆj9v)±œŸ`r†OjŽOp™Sp—Sp•Zs’|„���Ž‹‹�‰‰Š‹‹Œ©v14S#]4J€ *SA),+- $J2Y2elv„®¬ª�œŸžš£“‘•›™œŸ›£™–šŒŒŒ’““–•™¡ž¥žš£“‘•”’—¢ž¦–•˜‰Š‹……„“ˆƒ–Œ‡“І†ˆˆ‡ˆ‰‰‰ˆ‰‰‰ˆˆˆ‰‰‰‰‰‰ˆ‡ˆ‡Š‡U�Riho˜D‚€~�~~}}}~~~}}}€€€}}}€€€~~~{|{„…j*n%š“�ˆˆƒƒ…ˆfvŒjz�vƒ’�ŒˆŠŠ‰������‰‰‰���¤uƒ�m{/Z B#3_(S‚7b‹4Sƒ7x*#º·´¢£¢•••Ÿ�¢”””œœœžš¢�˜¢Ÿœ¢•’—‘’‘ŒŒŒŸœ¡“‘••“˜žš¢�™¡ œ£–”˜ˆ‹Œ†„‚�‰…šŒ†�‰‡ˆ‰ˆ‡ˆˆˆ‰‰‰ˆˆ‰‰‰ˆŠ‰Œ‡‹LŠE4e;jb[ ž ¢?¤3¤ˆ�–($�+—/?t5~€ƒy²…'·1-Œ,-'!#$$?CBddeyxx€…ˆš—“ƒtn„aX‘il–pz–r{•ow™{ƒ°¯²¿¾À¹¸¹À¿†€‹‘��¾´´¸­°¼®°­§¬i“,Œ¶d„b¹ÖI`Zb�w‚¾09YXMJ›„ƒ˜Š‚š‡‚Ÿ�…—ƒœˆ‚§‘‰•}|�zy”„œŒ„�‹„«—ŽÄ­¡¸¢™Ä¬¡±œ•­—’·¡˜Æ®¢Æ®¢Ä®Ÿ×µ±VxHTIX=}{}~~}}}~~~~~~}}}}}}}~}„~…*p!^Vgnsl€~€|}|{{{|||zzz|||}}}}~}|xz1U#aiXbYqV‚|ƒy{y{{{~~~~~~}}}}}}{{{€~�FY:^bXJX>}€~~}|||{{{~~~~~~}}}|~{|~}†|‡f-n'œ“�‹ŽŒ‹ŠŠ‰†‚’�‹‹ˆ†��Ž���ŽŽŽ‰‰‰‹‹‹‡‡‡¡yƒ¯z‰3$(-b'G|6Xy'Lx&At 5i.d/(#±²³¥¥¤›™ž˜—™ŽŽŽš™šŸ›£žš¡›—  œ¦•“—“‘–’�’ˆˆ‡”’–Ÿœ¤žš£›—Ÿ¡�¥•’—ŒŒ�Š‹�†„ƒ‘‰…™Š…�ŠˆŠˆˆ‡ŠŠˆˆ††}|Žmw…zm{�j—�}ˆŠt�ЄВx–4‡’&ƒ!–/E¶H5¿#*i*:!;^d^wuv‹Š‹¤¤¤¥¤£¢£¤ŠŒ�UURWH@‡d[‹dh”mu“nxª£¢´´³µ´µ¶¶¶££¥¨ª­ãååÝßÞÖØØÝßÞ_ƒMx K6] (OE E D!J"K C:)›‹†›Šƒ™†���…¨“Š”ƒ~Šru•‚~�~{“„¡Ž‡�‹„¡�‡À©�º¤š¤�Œ´Ÿ–µŸ—®—’ȯ£Ã« Ç¯¢È²¢Ï­«XuGUIW=}{~|}|||||||}}}zzz}}}}}}|||{|{…†)o ^Vgmrk‚€‚}}}~~~}}}}}}|||}~}€}1U"aiXbYqV‚|ƒ|}{}}}}}}}}}yyy|||}}}‚€ƒEX9_bWJX?|z}{|{}}}}}}}}}}}}|}|z}z‚{ƒqnockbs%mš�›‹�ŠŒ��Œ�ŽŽ��‹ŒŒŒŒŒ“““ŽŽŽŽŽŽ���ŒŒŒ«‡Š§ƒˆ©z…-&?;p0]&$R;qL¡¡ ÃÃî®®žžŸžš¢œšŸ”“–™˜š›™�¡�£ž›£”’–˜˜šŸ›£˜—šŒŒŒ””“–”™¡ž¥žš£”’—“�”¡�¦–•™‰‰Š„…„•ˆƒ�ˆ„‰~‡nq�qt’€zž€‰?}E2–3®‡“³‘“¶‡’,“;›&} €�rC‘3 �¶l¢ieye,P*ƒ{ƒ›œ›¢¢¢¡¡¡¡¡¡¢¡¡˜˜˜ŒŒ�uwwUVV�nc�ql‘eešz„´ººº¹¹¶¶¶»¼»•“–ÉÈÈÙÚÚÿýø©²¿ !N!0`0>r.G}2M‚3H€2E~4E|:p+j-8gY<“ƒ‚�Œ„¦•Š¡‰„˜‚‹uv“„Ÿ�…šŠƒ’�} Ž†¦”ŠŸŽ†°œ”¬–‘¸¡˜Ê²¤Ã­¡ª•�Å­¡Í´¦Ã¬ ² •¸“š[rFVIW=}{~|}|~~~€€€}}}~~~}}}~~~zzz{|{„~…*p!]Vfnsl}|}|}}}|||~~~}}}~~~€zvx0U"aiXbYpUz€|}|€€€~~~|||€€€~~~|||‚€ƒFY:^bXJW>€~�~~|||{|{~~~|}||t€ShL.u/u aZV’Ž“‹Œ‹ŽŽŽ���“““���������ŽŽŽ‹‹‹‹‹‹ŽŽŽ¤™�©””¨ˆŠ´ŽŽ1(  +-2yzyš›œ«¬¬¥¤¤  ¡�™¡œ˜¡žš£š˜œ“‘•“““Ÿœ¢••–š›šŸœ¢�˜¢Ÿœ£•“—‘’��ŒŽ�› –“˜“‘•Ÿš¤�™¡ œ£–“—‰ŽŽ†y{Žpr•~~—ˆ��Šƒ–…‚_f\ † 0•7J�LF‹K#£=9ŸG9†=~–p®y�DPFq­qK¥H2”/QcP”‘”ÀÁÀÎÎη··®®®žžž¦¦¦´³³¯¯¯Ž��{€‚¤¡ž^OHzXQ¯Ÿš»¾¿¸·¶ººº¨¨¨©¨¬ÚÙÖ‰”¡ !S/Fy0O~*7j%$&% 7'2g0hY8AR¥’ƒ¤�ˆ•}Žzx•„œ‹„Ÿ�…¦”Š�Œ„œ‹ƒ¢�‡’ƒ}ŸŒ†¸¡™Æ®¢Å­¡Ê±¤Á« ²œ•ǯ¢³Ÿ–¬—’¹¤™Ì«ªWzHTIX<}{}€€{{{|||~~~~~~~~~}}}}~}‡�ˆ)o ^Vgmrk}}}}}}}|||}}}€€€~~~€zvx0U#aiXbYpUz€}~}yyy}}}}}}}}}|}|}€EX8_bWLY@€~�}||{|z|}}}{}}r~YlV$l$~ ^LlNwqt“Œ•‘’‘������ŽŽŽ������������ŽŽŽ‹‹‹ŠŠŠ���ª®­¨¤§¡œœ¨Š�ª’�“mo’jrŒcq�dn�el˜rz¤ƒŒ¥�Ÿ§§¦££§Ÿž Ÿ›£�™¡œ— Ÿ›¥”’–•“—š™›ŽŽŽ™™™Ÿ›£žš¡›—  œ¥—•™‘�““‘”‡ˆ‡”‘•Ÿ›£žš£›—Ÿ ›¤™™�…vy—€}›Œ„™†��‹„ “‡\S`rX`"�*˜¨9 ª#Q‹UU”C¥*D®H3¬8G«\.¥?„Šƒqhr¢¤¢ÁÁÁÎÎζ¶¶µ´´��ž¬­­¸··ÇÇÇ···{zzŸŸ NSSŽˆ‡Ÿ˜›´´²±±°³³³´´´��’ãÞÛ=Pk3f:P…4 >$1]$5\$,U#Q&X#Q&S10&nZ4‡ry–ƒ~Ž|y”†¡�†�‹…¡�†¥’‰™‰‚‹|y˜ˆ�“„~¬–�˱¤ÂªŸÇ®¢Ì´¥½§�£�Œ°š”¬—‘®˜“˵¥Ó²®WwGUIX=|z}}~}|||}}}zzz|||}}}|||}}}|}|…†)o ^Vfounƒ�ƒ||||||{{{}}}zzz~~{}0U"aiXaZqV‚|ƒ|}|}}}}}}}}}|||~~~€€€€~�EX9_bWKX?~}{~z‚{„tprbkb sns?V?ƒ‚��„�“•”ŠŒŠ���ŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒ”””‘‘‘���ŠŠŠ‰‰‰ŽŽŽ©¨¨©ª©¢¢£§«ª¨˜�¬—˜±�‘¬…‹ª}Фs„£uƒžo}—lw™{ƒœ�——’˜˜˜šŸ�¢Ÿ›¢Ÿ›£“‘•›››žš£œ™Ÿ”“•š˜š›š�¡œ¤Ÿ›£•’˜—–™Ÿ›£˜—š‹‹‹“”“–“˜¡ž¥�™¢˜—�‡~~–�|œŠ„¤”Š£‹†™Š„MHIybc£Ž�-’0¢3˜,±�’k‘WŸšƒ!‡¥�Á´À¡ž¡~€~®­®···¹¹¹···¬­®Ÿ�›²²°···Â°°°ŒŒ�xxw}~£¤©|xužœ ¿¿Â¸··¼¼¼ŸŸ µ±³š¥² Q L.Z3K�1N…/Q|1H| 9q3n#Vz][}UjU2‹€¢�…—ˆ�”‚~ Ž†¥“‰¢‘‡–…€�|š‰‚¥“‰§•Œ°š”Æ®¡Í´¦Ã« ¶ —¨”�¹¢šÈ°£¿¨�¯™”Ë´¢Ð¯¬WxGUIW<~|~~}}}~~~}}}}}}zzz|||{}{„~…*p!]Velrk‚€‚|||}}}}}}}}}€€€}}}{||{xz1U#aiXbYpU�|‚|}{€€€~~~}}}~~~~~~|||‚€ƒFY:_aXIY=ƒ}„}t|UfN-v.qm@c:s•‘”’‘’�’�„„„������ŒŒŒŠŠŠ������ŠŠŠŽŽŽ‘‘‘ŒŒŒ���������¥¥¥°°°¦¦¦§§§ª¬«¨©ª£–šª—•¦ƒ†«ŠŒ q¡t�¢t‚ t€˜hvœ‘š™›œ•“˜šš™ œ¥”’–›››žš¢œ˜¡žš£›™œ”’–”“”Ÿ›¢˜–™˜™˜ �£�˜¢Ÿœ¢•“˜������›™�›™ †z|�‡‚§“Š˜�~‹wu¢’�¡£Ÿ}si¯–‘�‘‡\�M£’…˜‡‚žˆt—^Q}BN9Oœš›´¶´£££‹‹‹±°°¹¸¸µ¶¶²²³”‘މ–¦’—Ÿ°®­®®®¦¦¦œœ�bccxtz¬¨¯�}�|s@¶¶«¹¹¼ºº¹µµµ¢££òñ훣­S`w %U8S‡2W�0S~.Cu$;p']F�y}ykIdZJ•…€ª—Œ™‰‚ž�… Ž†–†‘�}™ˆ�¤’‰¢�‡¬™Ž¶¡—µŸ—ǯ¢²�•¯›”¹¢˜Ê°£Íµ§Î¶¦¾§�°™’·®Ð°®WxHTHW<}€{|{|||~~~|||~~~}}}~~~{|{…†*p!^Vfkpi}}}}~~~~~~}}}}}}}}}~|y{0U"aiXa\sX‚|ƒ|}{}}}|||{{{~~~}}}}}}�‚EY9_bWSUG\pX%k&\LoMoflš”›���‹Œ‹������ŽŽŽŽŽŽŽŽŽ���ˆˆˆ‘‘‘���‹‹‹‰‰‰ŽŽŽŽŽŽŽŽŽŽŽŽ���µµµ¶¶¶«««³³³¥¥¥§¦¦§¬ª¦¢¥£žŸ¥‡Œ¬“�©†¢xƒ s�£r� ™œ¡ž¦™—š™–š–”—’’’šš™ œ¤�™ œ— Ÿ›¥–”™“‘”›šœŽ�Ž˜˜—Ÿ›£žš¢›—Ÿ œ¤™—›�Ž‘“’”ˆŠ‹‹‡„�su•‚�}{�€zª™’¾ÀÄŸ“�¤‘†ŸŽ…˜{„•…€•†Ž€z­�’³•—b^V~€�ººº®®®œœœ¨¬®˜š››—–��Ž�š§e~¸„Žš–”’�‘‘šœ�ŸŸŸTTTxu{ª¥­„Œoa¬§’²³¸³³³°°°ÀÀÀÒÒÓäâàÛÙÕN_v!X).f)\.S#N>Pm‹Ž“•—™w{‚]UYœ‰�¨•‹—‡€�~z˜‡�’�}—…€¦“Š¢�ˆ¢‘‡°œ‘¾§�¥‘�¬˜“½¦›Ôµ£¾«¢º¨ŸÍ³¤Î¹«¾©�²œ•±¤›Ã�¢[pEVIW=}{~{|{|||}}}}}}yyy}}}~~~}}}|}|„~…)o ^Vgnsl€~€yyy}}}}}}���~~~|||€}y{0U"aiXaWnS�|‚}~}}}}}}}|||}}}}}}{|{€IY<^a bg s o AXC‚�€�†‘’•“ˆŠˆ���‹‹‹†††���������ŽŽŽ���ŽŽŽ������‹‹‹ŽŽŽ���†††ŽŽŽ���”””µµµ¾¾¾©©©¸¸¸²³´³´´³³´­¯¯ ¡¡§©ª§šž¥Ž‘®�Ž¥…¥x„ž”šž�¢›™œ�›ŸŸ›¢—–™–•˜™˜šŸ� Ÿ›¢ž›£”’—™ššŸ›£œ™Ÿ”“•™—››š� œ¤Ÿ›¢–“š–•— ›£——›�‡‡�~yœ‹„›Œ„“�}™‡‚¡£¨®¦ ”ƒ|�€|”†~¤’ˆ¤“‰�~{�Žƒ³¢“kb]dfg­­¬±²²±­«¤®³)xŸ ¤¦¯¬§v…�Sy«_z¤ª©ª–—˜ž˜”™˜—]]\‡„Š©¥¬ƒ€Štb•sX·»Àº¹¸·¶¶À¿¿×××ÒÓÔÆÇÇÁ¾»Sbx")Jdl¥¡£˜—›ž›ž£ ¡žž�vut\Z\Žz˜‡€Ž{™‡‚©—Œœ‹ƒ’�}¥“‰©–‹¡�‡£�Š«—’¸£›Û¹¦Àª¡’’˜IxMm�áÆ²·­ª¸¢š´ž–ǰ Õ´¯WwGUHW<{y|}~}~~~}}}~~~}}}~~~{}{†€‡*p!^Vfmrk€}}}}~~~}}}~~~~~~}}}}~}|xz1U#aiXbYpU�|‚€~}}}~~~yyy{}{~}~‰|‰9Z/_ ]Xr=]7„{…”�“ŽŽ�Š�Š���������ŽŽŽŒŒŒ’’’���������‘‘‘������ŒŒŒ†††������ŽŽŽ������ŽŽŽ¢¢¢ªª«°¯¯¯­«ngdvpmmfc–’�µ´³§§§ª¬¬ª­®¥—�ª™˜§�… š�¤£§›šœžœžŸž¡ ž¢ž›¢˜˜™—”™™™™ œ¤•’˜™š™Ÿ›¢�˜¡žš£›™�”‘–”“”ž›¡™˜›–—–¡�£œ™¤ •–Ÿ‹‚¥“Šž�…œ‹„™‡•’�ž ¡��|¤‘ˆ¦“Ц”Š¢‘‡“ƒ~¥“‰œ‹……wsONN–—˜½¼¼Æ¾»g˜­s©g�¡�•§Zy°z‰Ád¬«­«¨ œb‡œ~„†pno Ÿ£žžž‡€Œgk�kM¥˜ ±¶´´¶µµ·¶ØØØÖÖÖÈÈȳ³´¼º¹ƒ‚}¥¢¤�˜¢œšŸ™—›™—›¬­¬uuu^\_VKSšˆ‚¤’‰£‘ˆ¨–‹šŠƒ™‡�¤’‰•†€‘�}¹¢™Ðµ¦Ôµ¥u��8aƒ>v4\Žjy˜¿«¡µœ”ǯ£Ñ¹©Ñ»¨Öµ°VwGUHV;zx{}~}}}}zzz}}}~~~|||€€€{|{‡€ˆ+q"]Vgnsl~€zzz}}}~~~}}}zzz}}}~~|xz0U"aiXaZqV�{‚|}{|||yzy}~}~~~‡~‡frf5c5 ^_u>tBvftš—›“”“Ž�މ‰‰ŠŠŠ���‘‘‘ŒŒŒ‡‡‡������ŽŽŽ’’’ŒŒŒ“““ŽŽŽŒŒŒ“““���������‡‡‡ŽŽŽŽŽŽŒŒŒ¬­­­ª©jhfRhti�-u’l‘@j�`__¥¥¥«¨§¨¥¤¥¤Ÿª¢¤¦Ÿ¡�›Ÿžœ š™œž�Ÿ ž£žœ Ÿž ¡ž¤™—›˜–š–”—’’“™™˜¡œ¤�™¡œ˜ Ÿš¤˜–š��’œš����–––Ÿœ¢�›¤œ‘“ Œƒ¥’‰œŒ„Œ~z–…}¤•’¦§«¥•� �…ž�„¦“‰¤’‰Š{y”„Šzw©•�oc\ssr¼¹¹_”°y©$„¯?qœZt rŒÀœšØh‚¸‰…£uœªn¥uz{`\`¢ ¤™˜›‚y„`tŠkP–pzœ�ƒ™z~¨”—ÙÛÛàßßÐÐг³³¯¯°xxxœšŸ�˜ �š¡¢ ¤¨¨©»¼»uuu][^_TZ¦“Š¢�ˆ¤‘‰ª˜Œ™‰‚Ž~{“„€œŠ‚¿¦˜Ï´¦€‡’)WH{0V‰Wpš@_’Td‡Ã§˜Ò¼­Óº©Ñ·§Ð½«Õµ°VxHTIX=}{~}~}|||}}}|||{{{zzz~~~||||}|�{‚(n^Vgmsl‚€‚~~~|||}}}~~~|||}}}}~}|~1U#aiXbZqV„…z|z{}{‚}‚~€swt'`#[ ck {V{ƒ˜™—„…„‰‰‰ŽŽŽŽŽŽ������ŒŒŒ���‹‹‹‰‰‰‰‰‰���ŒŒŒŽŽŽ………���������ŽŽŽŒŒŒ“““‹‹‹ŒŒŒ������§¦¦`jn)x™D�ÀO¦ËN¤ÈP¨ÌC›Àu 5BRqz{hty1JWUem££¡¥¥¦ž›¡œšžœ™Ÿ¤£¤¢¢£ Ÿ¢ž› ›˜��›ž�š¢˜–™–”–™—œž� Ÿ›¢ž›¢–“™˜˜˜Ÿ�£›˜Ÿ•”•˜–š›œŸ¡–—¥’†™‰‚Ž~{—†€§“‰Ž…©©ª‘�‘…ƒ…{{|’‡‚†yv—†€£‘ˆ��…¨”�µ¢œ/Qd n¡}©F›¾>š¾%a–WoœRr¢Js¥Kh›Fa˜0“¹t£]aduqv¢¡¤›™›žš¯’�*‹i:—nŽ—oƒ’f|§ŠšæêéëêêÙÙÙÊÊÊËËË���™—›«©¬©©©¨¨¨˜˜˜˜˜˜„…„a^b\PW¦”‰¨•‹£’ˆ—‡�Œ}z—‡�«’†—Š…��”P|M~,T‡Tm›Oi—4S‰(N†r|”ʯ Óº§Ð¼­Ð»­Ãº³Ì©ªYuFUIW<{y||||}}}}}}~~~}}}}}}€€€z}{†‡*p!^Vgmsl€~€}}}~~~}}}|||~~}y{1U#aiXaYpU€|��€�†}†ere7e5Wdsm)l'Z]Z˜“–ˆ‡ˆ‹Œ‹ŽŽŽŒŒŒ���“““‰‰‰���ŽŽŽŽŽŽŽŽŽ���ŒŒŒ”””���ŒŒŒ������������ŠŠŠ���ŽŽŽŽŽŽ������ŽŽŽ—Š…6h~S±×kµÏk·ÐiºÖk¸ÒhµÐ_®È8‚³.b{Iy�“ËJp€vp®±³¤¥¤¥¤¦Ÿ�¡™–� �¢  ¡£¡¦œ›œ�›ž ž¡ ž¡ž›¢˜—˜—•™™™™¡�¤–“š˜˜–Ÿœ£�™¡žš¢›™�”“˜–Ž�’€{–…€¢�‡§”‹‚yuikl±±°¯¯°«ª­¹·¹‘‘—…�~­š�§–‹¢‘Š¿¥™O\~ p¥%…°/вJ�¿?œ½*f˜C_’=]�;f”Yi› N�!‹· j—EIM±­±—˜˜žœ�£¢­�}Mu�v3Šn2„f-¢�e÷ùûñðïðððéééêêê‘‘’���¦¦¦������‡‡‡‰‰‰‹‹‹qpr\PU¤’‰˜ˆ�’‚}˜ˆ‚®™�™†Zbo)RtAz8^ŒOg–Mi˜:X‹$I�^v™‚�¤±¨¥Ãª�ÒĹǵ¬Á°ªÂ«›Ñ«¬YqEVIWY�°­¨¢¡¥�› š–ž Ÿ¢ Ÿ¡¢ £š™™ ŸŸ•“–ÉÈÊøøøñðñîîîèèèíí펋ŒNFL†…†ŠŠ‰†ˆˆ|||‹„™Š‚­™Žª˜�–†€—ˆ‚¥™’§˜�pk{Yf�#M†_u˜ŒŸ·´¯ Ÿž›���•ž�š›�‘‘¤œ—Ù¾«Ñ½®Ã½»Ä©›ÓɽӽÁWxFUHV;{x{~~}}}}~~~}}}|||{{{}}}yzy…†*p!^Vfkqj}{}{{{~~~}}}€€€}}}|}|{|{}y|4T&ahWWw g-m2ZbU•Œ–’’’Ž�ŽŒ�ŒŒŒŒŽŽŽ������ŽŽŽ‰‰‰ŒŒŒ‘‘‘���”””ˆˆˆŠŠŠŽŽŽ���’’’ŽŽŽŽŽŽˆˆˆŒŒŒŠŠŠ‰‰‰ŽŽŽ���‘‘‘‹‹‹‹‹‹‰‰‰ˆˆˆŒŒŒŽŽŽ���’’’4P`2’¿b­Èp¾×W‰ªo¤¼O€£h¶ÑN¡Ä%„®.Uj@sˆo{�°­­ŸŸŸ©©¨§¦¦œ™Ÿ›—¡¦£¨�™ ¦¥¦§§¦¤¤¥¥¦¥£¡¤œ›œš—œŸž¡›š�œœ� ž¢Ÿ� Ÿ� ¡Ÿ¤›˜�—–˜–“˜——™Šƒ‚�~z”„Œ|z”ƒ~ª˜�ª—Œ|wuyyz���—�Œ˜‹ˆ“ƒ~“‚|̵¦Õ¼¬Ñ¹¨Ð¶§0T�AžÂ&�¬`–\nžOl™cx¢å«€fim…uW�”WŠ`˜DY¯¬©£££¥¥¥¡ £™™šœ™žŸŸ š™›ž�  �¢¤¢¦éèéóôóêêêéééììì¿ÁÀbUWjhh}~xw�‚|®š�ª—‹¦•‹¬šŽ–†€šŠƒ•‰†–…–}y©€†‚}‘¨ª©¬¨£˜™š¦¦¦Ÿ¡¢—š ©§¨�  ¡™”×»©Ò¿°Â¼»Äª�Å·«Ï§¨YpDVIW=}{~}}|yyy~~~~~~}}}~~~~~~}}}z{z…~†)o ^Velrkƒ�ƒ}}}|||zzz}}|~|‚~‚€}€pspW _ll t !U"fvd†x…šš›�‘ŽŒŒŒŽŽŽŽŽŽŽŽŽ���”””ŽŽŽŽŽŽˆˆˆŒŒŒ���ŽŽŽˆˆˆ•••���‹‹‹‡‡‡‘‘‘ŽŽŽ���ŽŽŽŽŽŽŒŒŒ‹‹‹ŽŽŽ���ŒŒŒ”””‹‹‹���’’’���‰‰‰‰‰‰’’’ˆ‚th#md*l)X\W’Ž‘�‹�Ž‘�†‡†ŠŠŠŒŒŒ������‹‹‹‡‡‡ŽŽŽŒŒŒŠŠŠŽŽŽŽŽŽŽŽŽ‹‹‹‹‹‹���’’’������‰‰‰‰‰‰ŽŽŽ‹‹‹���”””���’’’‘‘‘‹‹‹ŠŠŠŽŽŽ”””ŒŒŒ“““���ŽŽŽŒŒŒ“““‘‘‘‘‘‘ŒŒŒ‹‹‹‹‹‹ŽŽŽŠŠŠ���‹‹‹ŽŽŽŠŠŠ‰‰‰ŠŠŠÁ©žÌ»±Æ¯¤¾®§ËÆÂÑÒÓãââßßßÓÓÒ¸¸¸µµµ°°°³³³²²²®®®¬¬«ªªªš—žœ™Ÿ­¬®¢ ¥¯®±±±°¯¯¯±±°¬««œ™ ›—Ÿª©¬�œž¬«¯¬­¬§§¨ªªª¦§¦Ÿœ¡™”ž¦¢©¤£§”ŒŒ �„¢˜“�‰�¢�‡®œ�­šŽ«™‹®ž“œ˜™¸¡”̾¶Â¨œ¿¥™ÐùλÌÁºÎûÄÁÀÁ­¥É¿ºÄ«Ÿ¼¢—ο´Ë»°±°¤¤¦™”�Ÿœ¢®­®¡Ÿ¤´³´®®®°°°°±°§§¨š•�žœ¡ª©«�šŸ²±²©©©¨¨©ªª©¥¤¤œ™Ÿ›–Ÿ¨¥ª Ÿ¤”‡„£“Š¡”�œˆ¦•‹®œ�¬šŽ­˜Š¬¢šš“‘Ä­ É¹²Â¦™¥‰‰¯ƒŠ¤ˆ�ˆŽŒ‹ŠŠ���“““†††vvv������ ¡¡ÍÎÐÉÌÍÆÀ¾Â¯¦ËºЧ¦YpEVIW=|z~|}|{}{}~}||||q|dna0i0 ~ a vcpkg_configuration.json configuration: Release install: - cd %VCPKG_ROOT% - git pull --quiet - .\bootstrap-vcpkg.bat - cd %APPVEYOR_BUILD_FOLDER% before_build: - cmd: cmake --preset win-x64-rel -B . build: project: CorsixTH_Top_Level.sln verbosity: minimal test_script: - cmd: ctest --extra-verbose --build-config Release --output-on-failure after_build: - cp -R %APPVEYOR_BUILD_FOLDER%/CorsixTH/Lua %APPVEYOR_BUILD_FOLDER%/CorsixTH/Release/Lua - cp -R %APPVEYOR_BUILD_FOLDER%/CorsixTH/Bitmap %APPVEYOR_BUILD_FOLDER%/CorsixTH/Release/Bitmap - cp -R %APPVEYOR_BUILD_FOLDER%/CorsixTH/Levels %APPVEYOR_BUILD_FOLDER%/CorsixTH/Release/Levels - cp -R %APPVEYOR_BUILD_FOLDER%/CorsixTH/Campaigns %APPVEYOR_BUILD_FOLDER%/CorsixTH/Release/Campaigns - cp %APPVEYOR_BUILD_FOLDER%/CorsixTH/CorsixTH.lua %APPVEYOR_BUILD_FOLDER%/CorsixTH/Release/ artifacts: - path: CorsixTH/Release/ name: CorsixTH CorsixTH-0.70.0/changelog.txt000066400000000000000000002272151522247547500160170ustar00rootroot00000000000000------------------------------------------------------------------------------- CorsixTH 0.70.0 - Released July 2026 ------------------------------------------------------------------------------- # New Features * Support for the official Russian edition of Theme Hospital has been added (Soft Club edition) * 2x and 3x UI Scaling is finally available, no more tiny text on 4k screens! * Accessibility improvements added, such as subtitles for the announcer, and ability to turn off screen shake * Initial support for blocking off areas in the hospital has been added. Currently this is limited to within rooms only * Support added for midi devices * Added automatic detection for music folders in CorsixTH's own directories (game and config) * Added unicode font support out of the box for Windows users (for real this time) * Falling is now enabled for everyone * Multiple new cheats added * Newspaper headlines now in lose movies * Movies can now be paused with 'P' * Research Policy window now plays its background sound effect * You can now view adviser message history. This can be opened from the charts menu or with a hotkey (default Ctrl + H) # Improvements * Improved performance for large hospitals * Screenshots are now in png format and timestamped. Bye bye bitmap! * The staff management window can now be ordered by attribute * Windows can be removed during a room's build phase using right click * Active graph is now remembered in the graph window * Windows installer is now DPI aware, and ensures Start Menu and Desktop icons show for all users * Missing hover sounds have been added * Improved machine menu * Improved finding player name * Improved rejection calculations for patient overcharging * Improved rat holes * Improved dying * Added ability to cancel an accidentally grabbed object with Escape. Selling a grabbed item also now has a hotkey (default Delete) # Changes * Added shadow for truetype fonts * Machine menu button added to the bottom panel and machine dialogs * Patients will get up less often when changing queue position * The way doctors are trained has been overhauled * Some window layouts, texts, and behaviours in the settings menus have been adjusted * Unavailable resolutions when UI scaled will be greyed out * Dropdowns lists now have scrollbars where appropriate * Autosave frequency can now be adjusted * After the win movie plays, the player will be returned to the main menu * Better aspect ratio for some movies * Disease start cure price is now properly applied from the level config * Last selected disease in the casebook is now remembered * Minimum threshold for average calculations adjusted * Suppress mood icons for VIP and Inspector * Ignored VIP requests now automatically invite them instead of refuse * Adjusted margins on the text area of the fax * Changed message drawer so only one fax of each type will populate it * User actions are now always prevented in some 'fullscreen' windows e.g. fax * Patients can now be vaccinated in epidemics without activating vaccination mode * Players are no longer warned of empty action queues * Reworked nearby object calculations * Stopped emergency patients from drinking, vomiting, or using the toilet * Machine usage count no longer increases during earthquakes * Panel keys in the hotkey assignment menu now utilise two pages # Translations * Japanese announcement audio will now be used if available when playing in that language * Spanish translation updated. Thanks @sraaronrock and @ShiroAka * Italian translation updated. Thanks @dodero4 * French translation updated. Thanks @PierreRic and @Ouaz * Czech translation updated. Thanks @jansakos * Russian translation updated. Thanks @ARGAMX # Bug Fixes * Better error handling for non-existent languages * Fixed some non-capitalised text in dialogs * Fixed some bugs with music playback * Fixed bug in diagnosis termination * Patients no longer try to enter a room if staff member is going to rest * Adjusted happiness impacts when staff are resting * Minimised disruption to rooms during change of staff * Fixed doctors being unable to return to training room * Fixed patients not leaving a bench when they die * Fixed a crash with exploded rooms and picked up staff * Game will no longer crash when hovering on an exploded room * Prevented patients visiting incorrect/same diagnosis room more than once * Undressing patients no longer crash game when editing a room * Machine repair icon is now shown when a handyman is sent to repair * Smoking positions for machines have been fixed * Handymen can no longer repair a machine while simultaneously still accepting patients * Stopped multiple handyman taking the same task to repair a machine * Dead handymen no longer hold onto unfinished tasks * Fixed handyman tasks being orphaned when they were picked up * Fixed error with adviser message priority * The adviser no longer informs you of low prices if you have not lowered them * Fixed a decimal output issue with cured counts on the adviser * Fixed backslash not showing file/folder paths * Fixed crash on macOS regarding level completion * Reworked code used to handle the configuration file * Fixed some issues with incorrect colour presentation * Fixed instance of objects being placeable on a humanoid occupied tile * Fixed potential crash in Map Editor * Fixed heat maps in town map * Tiredness bar is now properly aligned to the right * Fixed inability to open faxes tied to a humanoid but not visible in the drawer * Prevented some 'fullscreen' windows from being unpaused while present e.g. fax * Fixed certtain faxes being accidentally dismissed, such as the win level fax * Fixed an issue where stopping music led to a crash on the level progression movie * Fixed inconsistent behaviour when using the bottom panel (e.g. Machine Menu) * Fixed a null pointer crash when trying to process an empty string * Fixed an issue handling multiple windows when loading save games * Fixed a crash in the Machine Menu when updating repair states * Fixed fully rested staff trying to return to the staffroom upon entering a room # Packager Notes * Lua 5.5 is now supported. Lua 5.2 - 5.3 are deprecated * C++ version bumped to 17 * Big endian systems are now supported * A cmake option WITH_MIDI_DEVICE has been added to allow support for midi synthesisers, using RtMidi * A cmake option FETCH_UNICODE_FONT has been added that can be used to bundle the default CorsixTH unicode font (GoNoto Sans Kurrent Regular). Do not use this alongside the WITH_FONT cmake option * A cmake option WITH_TRACY has been added for Tracy profiling (requires Tracy 0.13.1). This should always be off unless you are specifically debugging performance ------------------------------------------------------------------------------- CorsixTH 0.69.2 - released January 2026 ------------------------------------------------------------------------------- # Bug Fixes * Fixed stuck Operating Theatre after rerouting patients. ------------------------------------------------------------------------------- CorsixTH 0.69.1 - released August 2025 ------------------------------------------------------------------------------- # Bug Fixes * Fixed a crash when placing staff in a room while a patient is being treated. ------------------------------------------------------------------------------- CorsixTH 0.69.0 - released July 2025 ------------------------------------------------------------------------------- # Features * Custom level/campaign creators can now use an existing level file as an overlay to copy and extend their level file with the #overlay variable. See the 'Custom Level' Wiki page for more information. * A new machine menu has been added. Now you can view the status of all your hospital machines in one place! * Changing speed in game now happens immediately * Patient happiness can now be a win/lose factor in custom games * Transparent walls can now be toggled using Shift + X * Soda price can now be configured in the level file * Improvements and fixes for the ChirzmanTV custom campaign # Changes * You can now hear patients vomiting, instead of just the vomit splatters * Lakes no longer show in the Town Map as per the original game * Warns of incompatibility for saves more than 2 releases old * Improved how staff look for work if idle * Machine strength reduction after repair now more closely aligned with the original game * Machine strength now has a minimum value of 2 after repair * Mouse is now only captured when in game, or using the map editor * Improved measurement on the progress report chart columns * Annual rewards and trophies now have more robust evaluation criteria * A patient's treatment cost is now decided at the point they agree to pay * VIPs now walk slower, as in the original game * Gamelogs now include the date and time of the crash in their file name, and the last 10 logs are now held in the Logs folder * Finding files for custom campaigns is now more reliable, and supports storing your campaign inside its own folder * Custom Campaigns can no longer be played in Free Build mode, as they could break campaign progression * For games compiled using fluidsynth (such as our Windows and Flatpak builds), you can now set the soundfont in the configuration file * Video files can now be missing during TH installation corruption checks # Bug Fixes * Fixed some anomalies in the original campaign's map files * Improved reliability of the Map Editor checking for a path to the hospital on save * Game speed tick rates have been smoothed out again, improving animations and sound playback for objects * Fixed timing issue with the demo movie playback trigger following game speed changes in 0.68.0 * Fixed timing issue with random announcements following game speed changes in 0.68.0 * Improved colour accuracy for fonts in unicode languages now means you can actually read when your game is paused * Many fixes for the position of staff and patient moods in the game! More are scheduled to come in future * Fixed a bug where the visual mood for dying patients would disappear * Fixed an issue with the patient wait mood not clearing as expected * Fixed a (very annoying) bug with walks that caused new patients to enter rooms along their path * Rework to the operating theatre room to prevent patient/staff lockups * Free build now always comes with free heating and free parcel purchases! * Heating controls can no longer be adjusted during a boiler breakdown * Epidemic timer now ends once all patients are resolved * Old serious radiation epidemics can no longer cause a game crash. In future, this epidemic type will be reinstated again * Fixed the deactivate epidemic cheat not working as intended * Failed cheats will now always provide feedback messages * Failed create emergency cheats because you do not have a heliport now error correctly * Spawning a contagious patient via cheating now works in levels without a helipad * Fixed an issue where the win level cheat may not trigger correctly * Fixed a bug where loans were not preventing a lose game scenario for balance * The staff salary request window is now properly dismissed if auto grant wage requests is enabled and triggers * Fixed an issue where the Staff Management window could interfere with the world * Editing a room now closes the machine dialog of the room if it was open * Room statistics no longer reset when editing a room * Long windows now correctly count as a window * Dynamic info for machines now displays correctly when cycling between them * Fixed a bug in picking up objects when falling actions were enabled * Fixed a bug that caused staff members to be picked up multiple times * Fixed a bug where changing doctor in General Diagnosis could break the room and patient * Fixed a scenario where clicking on a staff member in an exploding room caused a game crash * Fixed an audible error when backing out of hiring a staff member * Additional safeguards to music volume playback added # Translations * The original game's numerals for the money bar can now be toggled by translators using the isArabicNumerals flag. This setting is set to off currently for CJK languages * Reworded cheat failure messages, some translations still require updating * Improved hotkey window and research tooltips, some translations still require updating * A new Japanese translation has been added. Thanks @ShimaKen523 * Russian translation has been updated. Thanks @Matroftt, @ARGAMX * French translation has been updated. Thanks @Sanndow @legluondunet * Brazilian Portuguese translation has been updated. Thanks @altiereslima * Dutch translation has been updated. Thanks @Alberth289346 & @jetenergy # Packager Notes * Packagers can now set a default unicode font at build time using the WITH_FONT cmake option. For the highest level of compatibility with our supported languages, we recommend using GoNotoKurrent-Regular * An additional interpreter path has been added for portable Linux installs: ../share/corsix-th/ ------------------------------------------------------------------------------- CorsixTH 0.68.0 - released October 2024 ------------------------------------------------------------------------------- # New Features/Enhancements * In-game movies now play for users using TH Data directly from a .ISO file * Custom campaign creators can now optionally use the original level advance movie when progressing through the campaign * The Map Editor has received some love including new features, fixes, and jukebox controls * Long windows now behave properly in the game if they get intersected by an adjacent wall * You can now control the Jukebox from the Main Menu by going to Options > Jukebox * External (non-TH) XMI files are now supported by the Jukebox * The adviser now tells you the cost of replacing your machine if you cannot currently afford it * More cheats! * [Experimental] Right mouse panning can now be used instead of using the middle mouse button. Enable it in the configuration file * [Experimental] We’re closer to fully implementing falling actions! Get a sneak peek and get the chance to push people over by enabling it in the configuration file/debug menu # Changes * The demo movie will no longer play and cause jumpscares at the main menu if the CorsixTH window is not in focus * Game speeds are now more closely aligned with the original game * Improvements to handling of win/lose conditions, and the progress report * Staff tiredness levels are now taken from the level config file based on difficulty level of the main campaign * You can no longer win a level if you still have outstanding loans * Emergencies will now be announced once patients actually begin arriving instead of at the start * Errors with music playback will now attempt to provide more helpful information in the console * Level briefings now show before the in-game tutorial * The first patient of a level will now arrive faster after opening the hospital * The information dialog box is now more closely aligned with the original game * The tip of the day window should no longer be obscured in the main menu * The load/save windows now have better labelling * Unavailable languages are shown as disabled until you select a Unicode font * Support is added to auto-detect a Theme Hospital install via GOG Galaxy # Translations * Ukrainian translation added. Thanks @JurecStrongman * Dutch translation has been updated. Thanks @jetenergy and @Alberth289346 * Italian translation has been updated. Thanks @SebastianoPistore & @Inkub0 * Russian translation has been updated. Thanks @Matroftt * Spanish translation has been updated. Thanks @ShiroAka * French translation has been updated. Thanks @nMustaki & @Sanndow * Brazilian-Portuguese translation has been updated. Thanks @altiereslima * Some unused language strings have been cleaned up * Custom campaign and level creators can now optionally add translated strings for campaign description, level briefing, and winning text # Bug Fixes * Swing (double) doors will no longer crash your game if you built rooms that used them while paused * Fixed a bug for NVIDIA users who didn’t like graphical corruption when playing fullscreen at non-native resolutions * Games should no longer crash irrecoverably because you have a 4k monitor :) * The game will now exit to the main menu cleanly if a problem occurred trying to load a new level or map * Staff who have left the hospital can no longer ask for a raise * Fixed a bug where some staff may have no initial before surname * Patients can no longer litter outdoors * Patients waiting for a player decision no longer lose their mood icon on vomit/pee * Fixed a bug where an unreachable reception desk could cause a crash * The Computer and Atom Analyser now make button sounds as originally intended * The mark for vaccination action now makes a sound as originally intended * Fixed a rare bug where edges of map tiles for parcels could cause unintended behaviour when purchasing plots * Active cheats will now persist across saves * Audio settings have better safeguards against no audio enabled/no background music * Movies will no longer attempt to play audio when global audio is off * Config values using brackets (such as a custom music directory) will now work properly * Custom campaigns menu now will use a scrollbar for long campaign descriptions * Continue Game now properly targets files explicitly ending in the .sav format * Tooltips for language menu now align with list items. Please note we are aware of an issue where some languages don't show a tooltip * Fixed an instance where information boxes could load pink from older savegames * Implemented a more permanent fix for the money bar being drawn incorrectly in some CJK and Cyrillic languages * Fixed a crash on exit that could occur in some systems * Mouse panning behaviour has been made more responsive and accurate # Packager Notes * Minimum CMake version is now bumped to 3.14 * CMake presets are now available for some common build scenarios * Dependencies can now be obtained automatically using vcpkg on Linux and MacOS. If using Windows, please note that the CMake options have changed * If update checks are enabled you now require libcurl at build and run time (update checks can be disabled using the WITH_UPDATE_CHECK CMake option). Luasec and luasocket are no longer used ------------------------------------------------------------------------------- Version 0.67 - released August 2023 ------------------------------------------------------------------------------- # New Features/Enhancements * The backend code for MIDI playback has been changed on Windows and real pause logic has been re-enabled. Please be aware that things such as application volume and audio quality may change depending on your configuration from ≤0.66 * The original demo gameplay video now plays when the CorsixTH main menu is idle (this can be disabled in the configuration file) * File browser menus now have an OK button (at last!) * Selecting an existing file in the Save Game/Map browsers will now update the text input box to that file name # Changes * Handymen now always stay in their assigned plots, except when going to rest * Staff members now have a maximum salary, which can be configured in custom levels * The game will now always use the GP's choice of next diagnosis room for the patient, if available * Queueing patients are now shown when hovering a door * Epidemics can no longer fail because an infected patient left before the epidemic was revealed * Balance changes to drug improvement research * Check for updates can now be disabled in Settings * Check for updates timeout duration significantly shortened * "Pause" now shows up when the "Build while paused" setting is on and the game is paused. * The gamelog file now includes a timestamp * Support for detecting original game files from the EA App * Many, many, refactors of the code to make it better to understand for future developers * Contact methods to reach the CorsixTH Team have been updated # Translations * Chinese Traditional and Simplified translations have been updated. Thanks @lokpro * Russian has been updated. Thanks Matt1 # Bug Fixes * Fixed an issue where CorsixTH could default to fullscreen on first launch in Windows * Fixed an instance where objects could disappear from the map * Fixed a bug where the empty action queue message was prevented from happening * Fixed a bug where dying patients became undead and would have a habit of ruining everything * Fixed broken dynamic info during epidemics * Handymen will no longer try to repair machinery while a patient is using it * Psychiatrist couch has less chance of causing blocked paths * Roujin's challenge is now properly applied (read: harder) * Serious Radiation is no longer contagious * Room blueprints can no longer go beyond external walls * Fixed incorrect button sounds in the Staff Management window * Fixed back button behaviour in Font Picker * Fixed a bug where word-wrapping text on dialogs could crash the game * Fixed a rare case where the next VIP date may be scheduled in the past * Fixed a rare case where awarded research points could be negative * Fixed a rare case of the balance sheet being victim of a green highlighter # Packager Notes * Option added to build CLI tools for RNC decoding ------------------------------------------------------------------------------- Version 0.66 - released June 2022 ------------------------------------------------------------------------------- # New Features/Enhancements * Direct Zoom has been improved and is now enabled by default * Nurses can now leave the ward without disturbing her patients * Patients with Serious Radiation now glow a beautiful shade of green * Patients with Jellyitis now wobble wobble wobble * The Hotkeys menu has been overhauled to make it easier to use * You can now reset your zoom level by pressing '0' * A new fax code cheat has been added! * The replace machine prompt will now tell you the new strength before purchase (can be disabled in configuration settings) * A machine's dynamic info will tell you the strength a machine can be upgraded to if you replaced it (can be disabled in configuration settings) * MacOS users can now place the CorsixTH.app anywhere (e.g. outside /Applications) # Changes * Improved pee and vomit conditions * Patients will no longer queue for reception until nearby * The Adviser will no longer queue repetitive messages * Dropdown menus will now close when clicked outside of * Non-visual diseases can now be delayed in the level config of a custom game * Gamelog.txt will now contain system information instead of within the window title * Patients no longer become fed up and leave the hospital if already in their treatment room # Translations * Translations should no longer show random '/' on new lines * Russian language updated (Thanks @Matvey1705 !) * Czech language updated (Thanks @jansakos !) * German language updated (Thanks @Manuel-K !) # Bug Fixes * Checking for updates should now work moving forward (promise) * All cured trophy bugfix now properly applied from 0.65.1 * Firing staff from a multi-use object now ensures they leave the hospital * Missing config and hotkey values will now use default values * Fixed an instance where an emergency fax could show the wrong cure * Sound effect boundary is now properly applied on window resize * The cheats menu is now immediately usable after typing the cheat code on a fax * User action while paused setting no longer uses configuration default * Quick Save and Quick Load behaviour has been improved * The cheats menu dialog will no longer slide off the screen * You can now purchase plots while wall transparency is on * Fixed playback of movie audio on surround sound systems is the most accurate * Resolved formatting issues with numbers after loading a save # Packager Notes * FFmpeg 5 is now supported * FFmpeg 3 and below are no longer supported * LibAV is no longer supported * CMake minimum version has been increased to 3.10 * MacOS Packagers, please note the macos_luarocks script has been modified * MacOS versions can now be made portable ------------------------------------------------------------------------------- Version 0.65.1 - released July 2021 ------------------------------------------------------------------------------- # This is a hotfix release of 0.65 and replaces the June 2021 release * Fixes a bug where the game would crash if you got the All Cured trophy at the end of year awards, when loading a save from 0.64 or earlier ------------------------------------------------------------------------------- Version 0.65 - released June 2021 ------------------------------------------------------------------------------- # New Features/Enhancements * CorsixTH is now available as a Flatpak! (thanks to @rmnvgr !) * On MacOS DMG files are now supported as disk images for Theme Hospital data * Hospital policies will now carry over to your next level in the campaign * You can now remove destroyed rooms for a fee (config option) * The information dialogs that appear when a room is first built can be disabled in the configuration file * Fire extinguishers in rooms now have a chance to save a smoking machine from exploding * Advisor has more advice * Additional trophy of the original game is implemented * Windows and room size now impact staff happiness * Roujin's challenge cheat is back * Experimental direct_zoom config option, for more efficient zoom. Fixes zoom on some hardware. Defaults off. # Changes * Emergencies with unknown diseases will no longer occur * The VIP system has been overhauled to provide more balanced ratings * Overpriced/Underpriced treatments now scale with difficulty * Placing a receptionist on a desk will now call her to the desk * Boiler breakdowns now depend on handymen * Faxes can no longer be opened while paused (unless editing while paused is enabled) * Improvements to receptionist announcement frequency and behaviour * The game will now check common locations for Theme Hospital on startup if it has not been configured * Games compiled without movie/audio can no longer access these settings * Update check now occurs over TLS for better security * English names are now shown in a tooltip when hovering over a language option * Improved TTF font rendering # Translations * Greek language added! (thanks to dimitrios-iliadis!) * Updates to Brazilian-Portuguese language * Updates to English language * Fixes to Chinese unicode encoding # Bug Fixes * Issues scheduling emergencies have been resolved * Games will no longer crash on load if the jukebox was open * Games will no longer crash because of an empty music folder * Fixed a scenario where editing a room caused staff to get stuck * Games that scrolled while saving stop scrolling on load * Psychiatrists in the Operating Theatre are now properly counted * Losing a game now gives the reason if the movie is skipped * Exiting the game will no longer hang when using the Wayland backend * The mouse will now be freed on game crash # Packager Notes * Support added for Lua 5.4.x. (5.4.0 and 5.4.1 are not supported) * CMake minimum version has been increased to 3.5 * The CMake option to enable AnimView is now BUILD_ANIMVIEW=ON ------------------------------------------------------------------------------- Version 0.64 - released June 2020 ------------------------------------------------------------------------------- # New Features * EXPERIMENTAL: ISO images may be used as a Theme Hospital data source. Known limitations of using ISOs are that the in game movies will not play, and the first time Windows install will not allow selecting the ISO file in the file dialog. # Bug Fixes * Confirm dialogs are now sized properly in all languages. * Many circumstances causing rooms to become stuck have been fixed. * Level 6 map issues causing errors have been corrected. * Epidemic patients couldn't be treated while they were seeking a room. * CJK text layout issues have been corrected. * French Level 5 description was replaced so that formatting characters no longer show up in it. * Some undefined behavior and potential memory leaks have been corrected. * Earthquake cheat now breaks your hospital instead of the game. # Translations * Updated translations for Chinese, French, Brazilian Portuguese. ------------------------------------------------------------------------------- Version 0.63 - released May 2019 ------------------------------------------------------------------------------- # New Features * Game music now supports ogg, flac, wav, aiff, voc, and mod in addition to mp3 and mid/xmi tracks. * No more hunting for that machine that's always breaking down. Save your camera position with ALT+number, and restore with CTRL+number. * Announcements are now queued to play one after another instead of overlapping. * New man page for unix like operating systems. * Fax message improvements. * Hotkey configuration! All hotkeys in the game are now configurable from within a new option in the settings menu. * Configure the scroll and zoom speed in game. * Improved mouse 'release' behaviour. Release mouse (CTRL+F10 by default) now always releases the mouse, so the game will not scroll when moving out of the window. Clicking in the game window causes the game to recognize the mouse again. # Bug Fixes * Handymen now know where to find machines that have been moved. * Fix crashes that happen when staff are killed in exploding rooms. * Open file leak in the file tree dialogs. * Autopsy machine can only be 'discovered' once. * Fix issue with staff getting stuck in rooms that support multiple staff. * Fix position of patients dragged in the room queue while a staff is waiting for the door, or a patient is waiting to leave. * Pathfinding has been improved. * Fix fax messages and options displayed in many circumstances. * Fix game error where lava hole is not accessible without entering a room. * Map fixes for many of the custom campaign levels. * Engine stability fixes. # Packaging * Appdata metainfo, desktop files, and a scalable icon are now included by make install on XDG systems. ------------------------------------------------------------------------------- Version 0.62 - released July 2018 ------------------------------------------------------------------------------- # New Features * Player salary is now preserved between campaign levels * Mouse capture is now shown on in game options screen * Completely out of source builds are now supported on all platforms * FHS style file layout (separate bin and share/corsixth directories) support for Linux (and non-Apple Unixes) * On Linux (and other non-Apple Unixes) the CorsixTH executable is now called corsix-th * LuaJIT 2.x is now supported, if using LuaJIT 1.x JIT is no longer enabled * Meandering staff behaviour has been tweaked to look more natural # Bug Fixes * Hoppalong map in the included campaign was fixed to not crash * Correctly handle the death of emergency patients * VIP and other game event scheduling fixes * VIP now works correctly when the hospital has no functional rooms * Heat now spreads out from radiators in all directions again * Fix for game error that caused the same litter to be cleaned up twice, and resulted in a crash * Fix moving machines with no state * All known memory leaks caused by our code have been fixed * Many text and formatting improvements across languages ------------------------------------------------------------------------------- Version 0.61 - released December 2017 ------------------------------------------------------------------------------- * Mouse capture support. Now by default the mouse will be captured in its window. You can use CTRL-F10 to temporarily toggle the mouse capture state, or disable it in the config file. * Added multigesture movement and zoom for supported devices. * Fix for broken pathfinding involving the removal of side objects such as benches and radiators. * Allow objects to be built on top of litter and rat holes. * Fix for game error when handymen attempted to clean removed litter. * Can now click and hold to quickly change handyman priorities. * Significant map editor performance improvement when selecting multiple tiles. * If the config option to allow playing while paused is enabled, you can now make use of the bottom panel. * Fixed several bugs relating to the mood displays for staff and patients. * Rooms can now be built over top of trash. * Rat holes will now appear in dirty hospitals. Unfortunately the rats themselves are still hiding away. * Earthquakes now behave more like in Theme Hospital. A warning earthquake that does no damage will come first so that you can get ready for the big one. The damage calculations and visual effect have also been redone to be closer to the original game. * The game window can now be resized by dragging the edges. * We now avoid overlapping graph labels so all labels are readable. * Many many many bug fixes. ------------------------------------------------------------------------------- Version 0.60 - released May 2016 ------------------------------------------------------------------------------- --- Highlights from this release --- * User campaigns - It is now possible to create a series of levels that play together just like the original game. * In game map editor - A new map editor is available directly from the game menu. * Drug price impact - Patients will now react to the price you set for treatments. If treatments cost too much patients will opt to go home instead and this can affect your reputation. * Variable spawn rate - The spawn rate will now take into account your hospital's reputation (after a date set in the level file.) * Machine smoke is now visible when machines are close to worn out. * Right clicking the timer is now supported like in the original game for moving to affected patients - See issue #882 for details. * Numpad support - The number pad can now be used to move around the map when numlock is off, or to type numbers when numlock is on, without side effects. * The MP3 folder can now be unset from within the game. Previously after setting an mp3 folder it could only be removed by editing the config file by hand. * Uses the proper cursor for resizing rooms. * Bins can now be placed in the hallways. * Temperature impact has been tweaked. The initial grace period has been removed and the overall impact has been softened. * Custom maps can now be stored in a user directory separate from levels shipped with the game. --- Notable bug fixes --- * Free build mode is now truly free - rooms used to cost money in this mode. * In game movies will now work correctly on more hardware. * Sound effects are no longer played when sound is disabled. * VIP rewards have been tweaked to closer match expectations when the impression is mediocre. * Crash when a patient is selected while they walk off the map is fixed. * A room built next to an unowned parcel no longer loses its wall when the parcel is bought. * Beta 1 regression that caused fired staff to continue to be paid has been patched. * Beta 1 regression that caused the last cured emergency patient not to count has been patched. * King complex patients only pay for their cure once. * Patients will notice when a room they are waiting for becomes available. * Properly load saves with more than one object on a tile. * Do not get stuck in an infinite loop when no disease is available to spawn. ------------------------------------------------------------------------------- Version 0.50 - released July 2015 ------------------------------------------------------------------------------- The majority of changes in this update have been done under the hood. Most of our third-party libraries have been updated, and especially Windows users will notice that there is now only one executable after installation. No more "which one should I use if I want zoom?"! --- Gameplay --- * Fix: Crash when trying to play certain sounds from e.g. the French version. * Fix: Potential crash from Esc-press before main menu. * Fix: Patients could in some circumstances get really confused and try to exit a room without putting any clothes on. * Added: Configuration of scroll speed. * Change: Midi tracks will be played in the order they appear in MIDI.txt * Most languages have been updated. --- Movies --- * Fix: Audio stutter in certain movies. * Fix: The game could sometimes crash when a movie had finished. * Support for LibAV as an alternative to FFMpeg. --- Animation Viewer --- * Added: A vertical scroll bar to the sprite display. --- CorsixTH development --- * We have moved to newer versions of a lot of libraries, most notably SDL 1.2 -> SDL 2 and added support for Lua 5.2 and Lua 5.3. * New ready-to-use Eclipse Workspace. * Debugging Lua code using DBGp has been added. See the Wiki for more information. * The Windows Installer now uses NSIS 3.0 and only produces one executable since SDL 2 handles renderer itself. * Framework for Busted Unit Tests in Lua. * Support for custom graphics has been improved. ------------------------------------------------------------------------------- Version 0.40 - released December 2014 ------------------------------------------------------------------------------- It has been a while since our last release, but good things come to those who wait! Or... in this case it's contagious diseases. Watch out for epidemics on the later levels in the campaign! Your patients are not as good as they used to be either, so those who are not lucky enough to get vaccinated and cured might get a visit from the Grim Reaper. Also, don't forget to try out the new map St. Peter's near Cawley! Happy gaming! --- Gameplay --- * Added: Epidemics. You can either choose to pay a fine to the authorities or try to cover up the epidemic by vaccinating and curing the contagious patients. Patients going between buildings will NOT trigger the alarm to the authorities. * Added: The Grim Reaper. Previously patients have always gone to heaven when they die. No more! Sometimes they will instead fall down to the middle of the earth in a Lava Hole. * Added: People with visual diseases will no longer arrive at the beginning of the level if that has been specified in the level file. Instead they arrive once a certain amount of months have passed. * Added: If you refuse VIP visits a few times he can sometimes show up anyway. * Change: Machine usage and explosions are now based on absolute number of uses. A machine that goes down to 0 will explode. Previously they were percentage based. * Fix: The game would crash if you sacked a doctor in a room while a patient was using some equipment in that room. * Fix: Sometimes the emergency bonus was not correctly calculated. * Fix: Patients could die inside a room. They will now die outside the room unless they are just being cured. * Fix: If winning the level at end of year the annual report would hide the winning fax. * Fix: If there was no queue to a room a leaving staff member would not trigger a call for staff for the patient who had to abort their procedure in that room. * Fix: If a handyman had pending tasks when he died in an exploding room the game could crash. * Fix: A surgeon that is removed in mid-operation will now get properly replaced by a new one. * Fix: If the GP room was built too early in the tutorial the game would crash when building a GP room later on if debug mode was turned off. * Fix: Patients would try to enter an exploding room. As you can imagine, this was bad. * Fix: Psychiatrists would become shut-ins and just wander about their office forever. * Fix: Patients leaving the queue to get a drink could be left to sit on a bench forever. --- User Interface --- * Added: Tooltips for the increase and decrease buttons in the research screen. * Added: A sound that indicates if a screenshot was taken successfully. * Added: Any dialog that pops up, such as the award screen, pauses the game. * Added: 'Continue Game' in the main menu. * Fix: Sometimes the game would not pause on year end. * Fix: Staff raise description was hard to read in some languages * Fix: The current language setting is translated and consistent with the options in the list. --- Graphics --- * Fix: Instead of turning into a Bloaty Head, Baldness patients will die with gracious hair. * Fix: Patients will no longer fall through walls when dying. * Fix: Dying Hairyitis patients should not lose their head when on the floor. --- Hotkeys --- * Added: 'Z' temporarily moves the game at maximum speed. Release to go back to the previous speed. * Added: 'X' makes walls transparent until released. * Added: Use the Numpad to change game speed. * Added: Arrow key hotkeys in the staff management screen. * Added: Press and hold on '+' and '-' when buying furniture to repeat the action. * Change: Quick Save is now Shift+Alt+S, Quick Load is Shift+Alt+L. --- Languages --- * Change: "Plot" is used instead of "Parcel" to indicate where a handyman has been zoned to work in the Handyman staff dialog. Most languages have been updated since our last release, but if you find that your language has not, please help us to finish it! --- CorsixTH Development --- * Added: New flag for CMAKE: 'WITH_LUAJIT'. This way you can choose to use either LuaJIT or Lua5.1. * Added: CMake toolchain for building with MinGW. * Added: New debug menu option 'Run debug Script' that executes /Lua/debug_script.lua ------------------------------------------------------------------------------- Version 0.30 - released November 2013 ------------------------------------------------------------------------------- This release contains a whole new Level Editor, which means that in combination with the already existing Map Editor whole levels can now be created a lot easier. Give it a try! We have also added many new options previously only available by manually editing the config file to the options dialog. Players will also notice that we have added an automatic update check on game launch once we release the version after this one. As usual there are of course also numerous minor tweaks here and there. --- Gameplay --- * Change: You can now build more than one desk in the ward. More nurses means a slightly faster throughput. * Change: Patients would previously queue outside toilets even though there were free loos since it was dependent on number of people in the room. Now, as soon as a loo becomes free another patient enters the room to use it, even if there is a long queue for the sink). If there is a queue for the sinks there is a chance the patient will leave without washing their hands - but will not be happy about doing this. * Added: The ability to control alien behaviour - sitting, knocking doors, only to be available through emergency or arrive like all other patients. * Added: Winning fax opens automatically and pauses the game. * Added: Option to automatically accept wage increase requests when they "time out". * Added: A new option allows for your average build content for each type of room to be remembered, so will be added for each new room built later. * Fix: Doctors should get stuck less often, and handymen should not crash the game as frequently. * Fix: It was not possible to replace a surgeon when a patient was in the room. * Fix: Patients would sometimes get stuck inside a room when they should have died. --- User Interface --- * Added: A new customization menu in the Options dialog. Most options from the configuration file are now available for change in-game. * Added: A new directory menu in the Options dialog. * Added: The game does now check for a more recent version of itself when launching. * Added: A helpful message when the player puts more Researchers in the research department than there are desks. * Added: The game now does a small integrity check on the Theme Hospital files to make sure that the most common corruptions are not present. * Added: Confirm dialog to the quit/exit button on the main menu. * Fix: The tooltip for the tutorial button was incorrect since the dialog has been visually changed. * Fix: The announcer has had a few corrections made to his manuscripts. He is very happy about this! * Removed: The settings menu is no longer available from within the game. --- Hotkeys --- Some hotkeys have been changed and/or added: * Alt + A = Toggle Announcements * Alt + M = Toggle Music * Alt + S = Toggle Sound Effects * Shift and + to zoom in five steps and Shift and - to zoom out five steps at a time. --- Campaign levels --- * Fix: An error in level 8 made it possible to win without meeting the reputation criterion. --- Custom levels --- * Change: For random emergencies each illness now has its own average number of patients to spawn. Previously they were all the same. * Fix: Researching improvements was not really possible on some custom levels, i.e. if the map creator had made it so there were no machines at the start. --- Demo files --- * Fix: When winning the demo level CorsixTH looked for another level to load, showing the wrong fax options and eventually crashing. --- Languages --- * Added: Korean language. * Fix: It was not possible to dump strings for a language with unicode characters in the name. --- Compiling --- * Fix: You could not compile the game with WITH_AUDIO=0 if SDL_mixer was not present at all. * Fix: WITH_AUDIO=OFF is now illegal in combination with WITH_MOVIES=ON. ------------------------------------------------------------------------------- Version 0.21 - released 2013-05-04 ------------------------------------------------------------------------------- This is mainly a bugfix release, but a few minor features are still also introduced, see the changelog below. --- Gameplay --- * Fix: Staff would sometimes not go for a break. * Fix: A few crashes related to Handymen. * Fix: An error could occur if a fax message was removed just as it was animating into view. * Fix: Patients could sometimes be told to go home multiple times, resulting in a crash. * Fix: If a queueing patient was heading for a drinks machine just as the player moved that machine the game would crash. --- User Interface --- * Added: Scrolling momentum when using the middle button. * Added: There is now a clock in the right corner of the menu bar that shows the real world time. It can be toggled between AM/PM and 24h in the configuration file. --- Hotkeys --- * Added: Hotkeys for the Jukebox (J), Save game menu (Shift + S), Load game menu (Shift + L), to restart the level (Shift + R) and finally quit the current game and take you back to the opening screen (Shift + Q). * Change: Restart is now Shift + F10 instead of only F10. * Change: Toggle adviser is now Shift + A instead of only A. * Change: Key combinations will only trigger if that exact combination is pressed. E.g. Ctrl + R will not trigger R too. * Change: Alt + F4 is now the hotkey to quit CorsixTH. * Fix: Added a configuration option to have the possibility to use Shift + C as hotkey to open the Drug casebook instead of C. This is to workaround a bug that when you press on the volume down key on your keyboard the Drug casebook would open. --- Map Editor --- * Added: Undo/Redo functionality. * Added: Street lamps and the dead looking tree. ------------------------------------------------------------------------------- Version 0.20 - released 2013-03-24 ------------------------------------------------------------------------------- In this version major new features include in-game movies, objects that occupy only the edge of a tile and the graph window. --- Main features not yet implemented --- * Epidemics. * Rats (and the rat level). * Insurance company graphs, illness graphs. * Visual effects on patients with serious radiation and jellyitis. * Some fullscreen animations such as the winning letter. * Multiplayer support. For a (nearly) complete list, visit our Programming Ideas wiki page: http://code.google.com/p/corsix-th/wiki/ProgrammingIdeas --- Known Issues --- * Emotion icons don't appear just above a humanoid's head at all times. * Main menu/in-game may glitch when using the OpenGL version. For a complete list, visit the issue tracker: http://code.google.com/p/corsix-th/issues/list --- Gameplay --- * Added: Radiators and other "edge tile" objects now occupy just one edge of the tile, inline with the original game. As a result one tile corridors can now be heated properly. An addition is that you can place many such objects on a single tile as long as they face different directions. * Added: Possibility to play movies in-game. At the moment the intro movie, advancement between levels and the win/lose movies has been added. * Added: The atom analyzer can now be built in the research department if it is available on the map. * Added: User actions are no longer allowed by default (for new games) when the game is paused. When trying this it might seem like it doesn't work correctly, but we try to mimic the original as much as possible. This for example means that a staff member being placed as you pause will disappear from the cursor. We might change this behaviour in the future though. * Added: Some background sounds, coughs, phones ringing etc. * Change: Placing a member of staff inside a room that is already occupied will now replace that person. * Fix: Earthquakes could be four times as severe as intended. Still todo: A tremor before a coming big earthquake. * Fix: Crashes in certain situations involving receptionists and reception desks. * Fix: Patients being handled at a reception desk even if no receptionist is present. * Fix: Allow patients to be sent to the research room only if the corresponding room is not yet researched (so not if it is researched but not built). * Fix: Don't cancel a place staff action just because the player happens to click on a door. * Fix: The VIP would try to sit down if there was a queue for the reception desk. The VIP will no longer ever try to sit down, and he will have priority in the queue anyway. * Fix: If a member of staff was done resting at the same time as he/she was also finished using the pool table or the video game another object in the room could get reserved indefinitely. --- User Interface --- * Added: You can now see in the bank statement which drug company a certain drug was bought from. It has no effect on gameplay though. * Added: The adviser now tells you why the research screen can't be opened before you have built a research department. * Added: The Town Map functionality has been extended inline with Theme Hospital. For example, if you right-click somewhere in your hospital the view will be moved there. * Added: Available options on open faxes now gets updated if for example a room explodes or the player builds a research department. * Added: Keyboard shortcuts F1 - F9 for the fullscreen windows. They are NOT the same as in original TH but instead correspond to the order on the bottom panel. * Added: Possibility to choose font file in the options dialog. * Added: Player name is now customizable in the new game dialog. * Removed: Keyboard shortcuts F8 and F9 for debug fax and debug patients. * Change: Don't require debug mode to be able to dump the gamelog. * Change: The shortcut for dumping strings is now Ctrl+T instead of Ctrl+Shift+D. * Change: Restructured options window to make it more consistent, less clutter-y and smaller. * Change: It is now possible to concentrate research on operating theatre diseases and redistribution of research is automatically done when a category has been completely researched. * Change: Add disease name to patients' treatment history when they are diagnosed. * Change: Buttons on the bottom panel for fullscreen windows are now toggle buttons. * Change: Reordered entries of graphs menu to correspond with order in bottom panel. * Fix: Colour selection algorithm for freetype fonts resulted in unreadable text on faxes for some languages. * Fix: When an unanswered fax became meaningless (e.g. if you built the required room), it was only removed if its message button was visible at the bottom panel (not if it was queued because of 5 buttons being there already). * Fix: Update the drug casebook if the last room of one kind explodes. * Fix: The directory browser was not always shown if the chosen Theme Hospital install directory was illegal. * Fix: Settings changed in the game will be saved immediately so that they persist to the next session regardless of how the game is shut down. * Fix: The bottom panel is no longer always on top, making fullscreen dialogs truly fullscreen on 640x480. * Fix: Don't play any announcements if there is no receptionist to do it. * Fix: The adviser would not idle again if a new message arrived as he was idling from a previous message. * Fix: While a player viewed the confirm dialog to delete a room he/she could continue to edit the room and complete it again resulting in an inconsistent game state. --- Graphics --- * Added: The graph dialog now actually displays graphs and statistics information. * Added: It is now possible to choose among three colour scales for warmth level. Look in the top menu for this choice. * Added: Print some info in the command prompt when the user wants to take a screenshot, so he can see if and why it failed. * Added: Screenshot functionality for OpenGL version. * Change: Screenshots get saved to a dedicated screenshot folder now, which can be changed in the config. * Fix: Loading a game on startup where a fullscreen window was open would open with the font messed up. * Fix: Taking a screenshot (Ctrl+S) is now possible under windows without fiddling in a lua file. --- Translations --- * Added: The beginning of Brazilian Portuguese and Hungarian. * Change: The "utf8" prefix has been obsolete for some time and has been removed from all language files. --- When using Demo files --- * Fix: The game would crash if the player tried to open the staff management dialog by clicking on a staff portrait in the staff dialog. ------------------------------------------------------------------------------- Version 0.11 - released 2012-11-17 ------------------------------------------------------------------------------- This is a bugfix release. For known issues etcetera, check out the changelog for version 0.10 below. -- Gameplay -- * Fix: Patients were not fully diagnosed according to settings in the policy screen. * Fix: The game now handles a player trying to cheat into an earthquake on levels 1-4. * Fix: It was not possible to sell equipment in rooms if you had a negative balance. * Fix: Handymen could not be placed inside rooms. * Fix: Handymen would get called to clean soot in blown up rooms. * Fix: Machines that need to be repaired will now cancel that request if they are blown up. * Fix: If a cured patient was leaving a room just as it crashed because of an earthquake the game would throw an error. * Fix: Alien DNA could under some circumstances not have the "concentrate research" button clicked without triggering a crash. * Fix: A crash occurring under some circumstances if the player picked up a staff member. -- User Interface -- * Enhancement: Since consultants are unable to learn new skills icons for not yet fully learned skills are now removed when a doctor is promoted. * Fix: Disabling background music no longer disables sound effects on Windows. * Fix: Checking if a sound exists crashed the game if there was no sound archive at all. * Fix: If the player paused the game from the top menu bar while an earthquake was active it would be impossible to scroll. -- Graphics -- * Fix: On a few levels some sliding doors would not animate correctly. * Fix: Vomiting standard males had the wrong animation. ------------------------------------------------------------------------------- Version 0.10 - released 2012-09-24 ------------------------------------------------------------------------------- -- How versions work -- If you have been wondering how the new version system works: When major new features are added the second digit is increased. When there are only fixes or smaller new features the third digit is increased. In this version, for example, earthquakes have been added. -- Not Yet Implemented -- * Epidemics * Rats * Graphs * Visual effects on patients with serious radiation and jellyitis. * Fullscreen animations such as the level screen and winning letter. -- Known Issues -- * If the X-Ray Viewer is inaccessible in the Operating Theatre no image will be shown on it. * If the user exits the game via "the cross" when in windowed mode settings are not saved. * Radiators and other "edge tile" objects occupy a whole tile instead of just one edge of the tile. -- Gameplay -- * Added: Earthquakes have recently been reported! * Added: Handyman priorities have been added. They can also be told to stay and respond to calls in one building (parcel) only. * Added: Staff's happiness will change due to more environmental factors. * Change: The files containing dumped strings are now created alongside the config file instead of in the installation directory. * Fix: Handymen will now meander inside a room until the machine which needs repair is free for use. * Fix: The URL in the config file pointing to better quality music was outdated. Note that this only affects new installations. * Fix: Two identical entries were shown in the drug casebook if a new disease was discovered when it was open. * Fix: Don't crash when a saved game with the town map open is loaded. * Fix: Too large rooms could make them unusable. * Some graphical glitches have been fixed. -- User Interface -- * Added: The Map Editor and Animation Viewer have new icons. * Change: In debug mode all gamelog output is now also displayed in the command prompt. * Fix: Don't initiate a window move if it happens to be below a top menu selection. * Fix: Don't show the main menu under any circumstances when closing the options menu in-game. -- Map Editor -- * Fix: The "Save" and "Save As" buttons now do what they should do. * Fix: There were some strange log messages on opening the editor. * Added: The arrow keys can now be used to scroll the map. * Change: Removed a lot of tiles from the palette, since maps may not work as intended if they would be used. ------------------------------------------------------------------------------- Version 0.01 - released 2012-03-24 ------------------------------------------------------------------------------- -- Not Yet Implemented -- * Earthquakes * Epidemics * Handyman priorities * Rats * Graphs * Visual effects on patients with serious radiation and jellyitis. * Fullscreen animations such as the level screen and winning letter. -- Known Issues -- * If the X-Ray Viewer is inaccessible in the Operating Theatre no image will be shown on it. * If the user exits the game via "the cross" when in windowed mode settings are not saved. * Radiators and other "edge tile" objects occupy a whole tile instead of just one edge of the tile. -- Gameplay -- * Added: A host of awards given at year end. * Added: A new mode: Free Build Mode. In this mode you don't have to worry about money. All custom maps can be played in this mode. * Added: Patient animations such as yawning and checking watch when waiting. * Change: The queue size for a room can be set to 0 to prevent patients from going there. * Change: Patients now spend some more time in the ward. * Fix: Crash when removing a room that has humanoids on their way to it. * Fix: Patients sitting down, but about to get a soda got ordered to sit down again. * Fix: A crash could occur if a new room was accepted when there were multiple types of objects left to place. * Fix: Emergencies with diseases not available on a level no longer happen. * Fix: The VIP no longer makes staff be called to the rooms he visits. * Fix: With multiple reception desks new patients now find their way to the reception with the least queue size. * Fix: The wrong amount of money was returned when selling a room. * Fix: Aliens could not be cured on the last two levels. * Fix: The transparent walls setting made new rooms remove outer walls. * Fix: Sometimes patients who had left the hospital could still wait for a new room, making said room impossible to build. * Fix: A crash when the staff member left a room before the patient. * Fix: Build cost of objects were not always correct. -- User Interface -- * Added: The save and load dialogs can now sort both ascending and descending and are a little more spacy. * Added: More messages in the progress report dialog. * Added: More advice in different situations from the adviser. * Added: Adviser messages now has priorities, making more important messages appear faster. * Change: When the mouse cursor leaves the game window it will stop scrolling the in-game world. * Change: The message when a crash occurs is now a little more informative, and humanoids no longer get stuck as easily. * Fix: The staff management window is now updated when staff is hired or fired from outside the window itself. * Fix: If the desired language cannot be loaded on startup the game now reverts to English instead of crashing. * Fix: The game could not autosave if the save or load dialog was open. * The auto-scroll setting is now saved between sessions. * The adviser can now be turned off from the top menu. * The game uses a new icon. -- Map Editor -- * Fix: The game no longer crash just because the map builder has not added any access roads from the edge of the map. ------------------------------------------------------------------------------- Version Beta 8 - released 2011-09-24 ------------------------------------------------------------------------------- -- Gameplay -- * Fix: Patients should manage to use benches more often now. * Fix: Staff will never have the "waiting for patient" mood when in a training room or a staff room anymore. * Change: Which diagnosis rooms different patients go to have been changed to be more like the original game. * Change: No patients will arrive until you have both a receptionist and a reception desk. There will be no emergencies or VIP visits either until this criterion is met. * Added: People may now puke or pee on the floor. * Added: Various things such as litter and plants affect patient happiness. * Added: A doctor may now get crazy if he is waaay too tired. * Added: VIP visits. Watch out for those picky black suit visitors! * Added: The "guess cure" fax message will now properly pop up. -- User Interface -- * Change: The save and load dialogs now look a little different. Autosaves are stored in a separate folder and there can be up to 12 autosaves at the same time. One for each month. The dialogs now show when a save was made, and the list can also be sorted by this criterion. * Added: It is now possible to cycle through owned machines by right-clicking the machine name in the machine dialog. * Added: Sound, announcement and music volumes and on/off settings are now saved between sessions.s -- Graphics -- * Added: Waiting patients may sometimes check their watch or start to tap their foot. * Added: Soda machines now sell more than soda cans. This can be seen through the litter people throw on the floor after using said machines. * Added: (Animation Viewer) A new export function has been added. Note that there is currently no import equivalent, so it is mostly for people to try out and see what graphics there are in the game. In the future we hope to make it possible to import these graphics after changing them in your favourite graphics program. -- Translations -- New language: Polish ------------------------------------------------------------------------------- Version Beta 7 - released 2011-06-24 ------------------------------------------------------------------------------- -- Known Issues -- * If the X-Ray Viewer is inaccessible in the Operating Theatre the whole room will be unusable. * There are still many features which are not yet implemented including trash, earthquakes, epidemics and awards. * The graph window doesn't show any graphs. * Handyman priorities are not yet fully implemented. -- Gameplay -- * Added: Staff severance pay. * Added: Patients may die if they don't get treated in time. * Added: Doctors slowly gain skill when working. * Added: Extra objects and the number of trainees influence speed of training in the training room. * Added: Even with no research new machines will eventually become available. * Added: Some patients have started littering your hospital with soda cans! Make sure you have enough handymen to keep your hospital clean. * Added: Modern heating systems aren't as reliable as they used to be. Prepare for breakdowns now and then. * New disease: Alien DNA! Note that there are still a few glitches to fix concerning this new disease. * Change: Vending maintenance costs have increased throughout the world and as a result Sodas now cost $20, up from $15. * Change: Heating costs are calculated on a per day basis, rather than per month. * Change: Machine and drug improvements are now made evenly across all eligible objects rather than maxing one at a time. * Change: Humanoids never meander outside anymore. * Fix: Handymen no longer crash the game when trying to water an unreachable plant. * Fix: Staff resting in the staff room should keep their sofa until fully rested if there's nothing else to do. * Fix: The player can't hire new staff or pay bonuses without a positive balance. -- User Interface -- * Added: The graph window, no graphs yet though. * Added: Right click menu in the queue dialog. * Added: Confirmation dialog when about to fire a member of staff. * Fix: If there is only one person who is in an emergency, use the singular form in the sentence. * Fix: The pickup item button in the edit room dialog is now fully functional. * Fix: The pointer should no longer jump around in Linux when using SDL. -- Graphics -- * Added: The scanner uses more than one animation. * Fix: Some objects were cut in half after a relocation. -- Translations -- * Change: If the specified language is not found, try to revert to English. * Fix: Competitor names are now translatable. ------------------------------------------------------------------------------- Version Beta 6 - released 2011-03-24 ------------------------------------------------------------------------------- -- Gameplay -- * Feature: Staff speed! * Added: All parts of research have been implemented, including machine strength improvements, drug improvements and the "concentrate research" button in the drug casebook. * Added: Overdraft charges for having a negative balance. * Fix: The length of a day was about half as long as it should be. * Fix: A few occurrences of bone-idle patients have been resolved. * Fix: Juniors were not correctly labeled as Doctors after promotion. * Fix: Some crashes regarding receptionists. * Fix: Never charge less than initial cost when reputation is below 500. * Fix: Some repair animations were too short. * Fix: Don't check winning and losing conditions so often. * Fix: Taking loans can now make the player avoid losing. * Fix: Level 7 had an emergency with an unavailable disease. * Fix: Doctors on their way back to the research room or training room will no longer answer to any calls. * Fix: Don't crash if a patient in a machine is sent home. * Fix: Various tweaks to the operating theatre logic. * Fix: Don't crash if the staff window of a leaving staff member is open when he/she leaves the world. * Fix: Persistent data (salary, built rooms etc) are no longer lost after restarting a level. -- User Interface -- * Feature: The drug casebook now shows if you can treat a disease or not, and in the latter case the tooltip tells you what is missing. Actual price is shown after some time, instead of charge %. * Feature: Press and hold on value buttons will now make the value continue to increase until the button is released again. * Feature: The Theme Hospital installation path can be changed from the options menu. * Added: The adviser will help out in a few more situations. * Fix: Mouse position events such as moving staff around didn't work when scrolling using the arrow keys. * Fix: Tooltips are now updated more frequently, most evidently in the research pane. -- Translations -- * Feature: CorsixTH now supports TrueType fonts via FreeType2! * Feature: To assist translators a new diff file is now created when you choose the debug option "dump strings" (with languages other than English). It contains those strings which are either found in English but not in the given language, or found in the given language but not in English. * New languages: Traditional Chinese, Simplified Chinese, Russian. ------------------------------------------------------------------------------- Version Beta 5 - released 2010-12-24 ------------------------------------------------------------------------------- -- Gameplay -- * Feature: (Some) Cheats added. Type 24328 into the fax machine to get access to them. * Feature: Custom map "Avatar" added. * Feature: Player's "salary" (read: score) now increases over your level progress. * Feature: Level based interest rate. * Feature: Level based "starting staff" (e.g. original level 5). * Feature: "No deaths" trophy added. * Fix: Error could occur when losing a game. * Fix: Multiple handymen watering the same plant at the same time. * Fix: Some placements of opposite doors/objects were wrongly forbidden. * Fix: Error could occur when building a surgery. * Fix: Autopsy now has an appropriate impact on research. * Fix: Salaries for doctors were too high. * Fix: In some cases lose conditions were not triggered. * Fix: Research room door could disappear after autopsy. ... and various other bugs fixed. -- User Interface -- * Feature: The player is now told the reason why he lost, when he loses, instead of being left in the dark. * Fix: Wrong winning faxes shown for levels 5-11. * Fix: Weird scrolling behavior could occur after loading a game. * Fix: No tutorial when playing with demo files. * Fix: Adviser disappeared too quickly during tutorial. * Some improvements to textboxes. * Some improvements to windows. ... and various other small improvements and fixes. -- Translations -- * Fix: Error caused by some winning faxes in Norwegian. ------------------------------------------------------------------------------- Version Beta 4 - released 2010-11-12 ------------------------------------------------------------------------------- -- Gameplay -- * Feature: The Research Department and research policy dialog. * Feature: The Operating Theatre. * Feature: Not all parcels are owned by the player from the beginning, but can now be bought from the Town Map dialog. * Feature: Calculate staff wages and properties for those for hire based on the level files. * Added 7 new diseases related to the operating theatre. * Added treatment room: Operating Theatre. * Fix: The adviser no longer complains about watering of plants all the time. * Fix: Some crashes related to crashed rooms has been fixed. -- User Interface -- * Feature: Possibility to choose difficulty level when starting a new game. * Feature: Zooming (only when using DirectX or OpenGL). * Feature: The Annual Report Dialog. * Graphics: Improved the main menu background. * Fix: Solved issues with non-English keyboard layouts. -- Translations -- * New languages: Finnish and Danish * Fix: When playing the game in French it no longer crashes upon completion of a level. ------------------------------------------------------------------------------- Version Beta 3 - released 2010-06-24 ------------------------------------------------------------------------------- -- Gameplay -- * Feature: Swing doors (used by new diagnosis room ward). * Feature: Plants will now droop unless they are watered by a handyman. * Feature: Adjustable handyman priorities. * Feature: Existing rooms can now be edited and deleted. * Feature: Watch for initial opening of hospital at start of each level. * Feature: Each level has its own goals, shown at the beginning of the level and in the new status dialog. When the goals have been achieved the player may go on to the next one. * Feature: Not all implemented rooms and diseases appear anymore in each level, but only those defined by the level script. * Feature: Support for custom levels with their own maps and level scripts. * Feature: A heating system that depends on outside temperature, adjacent tiles and radiators among other things. * Added 6 new diseases * Added treatment rooms: Jelly Vat, Decontamination * Added diagnosis rooms: Blood Machine, Ward, Scanner * Fix: Staff needed in rooms is handled much better. * Fix: Objects retain their statistics when moved. * Fix: A horde of other bugs have also been fixed. -- User Interface -- * Feature: Savegames are no longer limited to 8 slots + autosave. * Feature: Fullscreen mode, screen resolution and interface language can be changed ingame. The changes are saved in the config file and preserved. * Feature: Hovering the mouse over a room will mark all patients in queue for this room. * Feature: Patients can be moved to the head/tail of queues in the corresponding dialog. They can also be placed between other patients. * New dialogs: Load Game, Save Game, Custom Level to cope with arbitrary number of savegames/levels. * New dialog: Options * New dialog: Progress Report (Status) showing status of the current level's goals. * Added all tooltips that were still missing. -- Misc -- * Translations: Italian, Spanish and French: added new strings not available in vanilla TH, Portuguese (WIP) and Dutch (WIP) * The configuration file and saved games can now, if desired, also be stored in the user's home directory or equivalent. ------------------------------------------------------------------------------- Version Beta 2 - released 2010-03-24 ------------------------------------------------------------------------------- * Feature: Save / Load functionality. * Feature: Patients and staff now have a need for heat (from radiators) in order to stay happy. Patients will also get thirsty (build drinks machines) and will need a bathroom sooner or later, and staff will ask for a salary raise when unhappy. * Feature: Machines will need repair now and then. A dialog that shows necessary information is displayed when the machine is clicked. * Feature: Dynamic Information Bar in the bottom right corner of the UI added. It shows information about entities beneath the mouse cursor. * Feature: The training room can now be built, where doctors can increase their skill and get additional traits if a consultant is present. * Feature: When a patient cannot be cured or a room is missing a fax will arrive and ask the player what to do. * Feature: A new string system that allows us to add new (translatable) text to the game, correct mistakes in existing languages and add new languages. * Feature: A tutorial is offered to the player at the start of the game. * Feature: Tooltips are displayed when hovering over buttons for some time. * Feature: Emergencies may happen every now and then. * Feature: Hospital reputation system. * Feature: Humorous disease description faxes are now shown when a disease is first diagnosed. * Feature: Room blueprints can be resized during the build process. * New Dialogs: Hospital Policy, Drug Casebook, Bank Manager, Staff Management, Town Map (work in progress), Main Menu * Many new key shortcuts (see Hotkeys wiki page for full list). * Dialogs can now be re-positioned by dragging them to where they are wanted. * Added floating money signs to better indicate where money is coming from. * Added comments from the advisor in more situations. * 10 new diseases. * New treatment room: Hair Restorer * Additional functional diagnosis rooms: General Diagnosis, Ultrascan, X-Ray * Room queues should now re-balance themselves when new rooms are built. * Translation: Norwegian (bokmÃ¥l). A lot of other small improvements. Also, a great number of bugs have been squashed. Most remaining bugs are no longer fatal, and can be continued from. ------------------------------------------------------------------------------- Version Beta 1 - released 2009-12-24 ------------------------------------------------------------------------------- Initial release CorsixTH-0.70.0/docker-compose.yml000066400000000000000000000002451522247547500167540ustar00rootroot00000000000000version: '3' services: corsix-th: container_name: corsix-th build: context: . dockerfile: Dockerfile.build volumes: - .:/sourcecode CorsixTH-0.70.0/ground_tiles/000077500000000000000000000000001522247547500160145ustar00rootroot00000000000000CorsixTH-0.70.0/ground_tiles/example_input.txt000066400000000000000000000003251522247547500214270ustar00rootroot00000000000000// Example of a sprite definition with 2 recolouring layers. sprite 4 { left = 0; top = 0; width = 128; height = 256; base = "128_0004.png"; recolour = "128p_0004.png"; layer 1 = 4; layer 2 = 3; } CorsixTH-0.70.0/ground_tiles/ground_tiles.txt000066400000000000000000000212241522247547500212540ustar00rootroot00000000000000sprite 1 { base = "ground_tiles/s1.png"; top = 0; left = 0; width = 64; height = 32; } sprite 2 { base = "ground_tiles/s2.png"; top = 0; left = 0; width = 64; height = 32; } sprite 3 { base = "ground_tiles/s3.png"; top = 0; left = 0; width = 64; height = 32; } sprite 4 { base = "ground_tiles/s4.png"; top = 0; left = 0; width = 64; height = 32; } sprite 5 { base = "ground_tiles/s5.png"; top = 0; left = 0; width = 64; height = 32; } sprite 6 { base = "ground_tiles/s6.png"; top = 0; left = 0; width = 64; height = 32; } sprite 7 { base = "ground_tiles/s7.png"; top = 0; left = 0; width = 64; height = 32; } sprite 8 { base = "ground_tiles/s8.png"; top = 0; left = 0; width = 64; height = 32; } sprite 9 { base = "ground_tiles/s9.png"; top = 0; left = 0; width = 64; height = 32; } sprite 10 { base = "ground_tiles/s10.png"; top = 0; left = 0; width = 64; height = 32; } sprite 11 { base = "ground_tiles/s11.png"; top = 0; left = 0; width = 64; height = 32; } sprite 12 { base = "ground_tiles/s12.png"; top = 0; left = 0; width = 64; height = 32; } sprite 13 { base = "ground_tiles/s13.png"; top = 0; left = 0; width = 64; height = 32; } sprite 14 { base = "ground_tiles/s14.png"; top = 0; left = 0; width = 64; height = 32; } sprite 15 { base = "ground_tiles/s15.png"; top = 0; left = 0; width = 64; height = 32; } sprite 16 { base = "ground_tiles/s16.png"; top = 0; left = 0; width = 64; height = 32; } sprite 17 { base = "ground_tiles/s17.png"; top = 0; left = 0; width = 64; height = 32; } sprite 18 { base = "ground_tiles/s18.png"; top = 0; left = 0; width = 64; height = 32; } sprite 19 { base = "ground_tiles/s19.png"; top = 0; left = 0; width = 64; height = 32; } sprite 20 { base = "ground_tiles/s20.png"; top = 0; left = 0; width = 64; height = 32; } sprite 21 { base = "ground_tiles/s21.png"; top = 0; left = 0; width = 64; height = 32; } sprite 22 { base = "ground_tiles/s22.png"; top = 0; left = 0; width = 64; height = 32; } sprite 23 { base = "ground_tiles/s23.png"; top = 0; left = 0; width = 64; height = 32; } sprite 24 { base = "ground_tiles/s24.png"; top = 0; left = 0; width = 64; height = 32; } sprite 25 { base = "ground_tiles/s25.png"; top = 0; left = 0; width = 64; height = 32; } sprite 26 { base = "ground_tiles/s26.png"; top = 0; left = 0; width = 64; height = 32; } sprite 27 { base = "ground_tiles/s27.png"; top = 0; left = 0; width = 64; height = 32; } sprite 28 { base = "ground_tiles/s28.png"; top = 0; left = 0; width = 64; height = 32; } sprite 29 { base = "ground_tiles/s29.png"; top = 0; left = 0; width = 64; height = 32; } sprite 30 { base = "ground_tiles/s30.png"; top = 0; left = 0; width = 64; height = 32; } sprite 31 { base = "ground_tiles/s31.png"; top = 0; left = 0; width = 64; height = 32; } sprite 32 { base = "ground_tiles/s32.png"; top = 0; left = 0; width = 64; height = 32; } sprite 33 { base = "ground_tiles/s33.png"; top = 0; left = 0; width = 64; height = 32; } sprite 34 { base = "ground_tiles/s34.png"; top = 0; left = 0; width = 64; height = 32; } sprite 35 { base = "ground_tiles/s35.png"; top = 0; left = 0; width = 64; height = 32; } sprite 36 { base = "ground_tiles/s36.png"; top = 0; left = 0; width = 64; height = 32; } sprite 37 { base = "ground_tiles/s37.png"; top = 0; left = 0; width = 64; height = 32; } sprite 38 { base = "ground_tiles/s38.png"; top = 0; left = 0; width = 64; height = 32; } sprite 39 { base = "ground_tiles/s39.png"; top = 0; left = 0; width = 64; height = 32; } sprite 40 { base = "ground_tiles/s40.png"; top = 0; left = 0; width = 64; height = 32; } sprite 41 { base = "ground_tiles/s41.png"; top = 0; left = 0; width = 64; height = 32; } sprite 42 { base = "ground_tiles/s42.png"; top = 0; left = 0; width = 64; height = 32; } sprite 43 { base = "ground_tiles/s43.png"; top = 0; left = 0; width = 64; height = 32; } sprite 44 { base = "ground_tiles/s44.png"; top = 0; left = 0; width = 64; height = 32; } sprite 45 { base = "ground_tiles/s45.png"; top = 0; left = 0; width = 64; height = 32; } sprite 46 { base = "ground_tiles/s46.png"; top = 0; left = 0; width = 64; height = 32; } sprite 47 { base = "ground_tiles/s47.png"; top = 0; left = 0; width = 64; height = 32; } sprite 48 { base = "ground_tiles/s48.png"; top = 0; left = 0; width = 64; height = 32; } sprite 49 { base = "ground_tiles/s49.png"; top = 0; left = 0; width = 64; height = 32; } sprite 50 { base = "ground_tiles/s50.png"; top = 0; left = 0; width = 64; height = 32; } sprite 51 { base = "ground_tiles/s51.png"; top = 0; left = 0; width = 64; height = 32; } sprite 52 { base = "ground_tiles/s52.png"; top = 0; left = 0; width = 64; height = 32; } sprite 53 { base = "ground_tiles/s53.png"; top = 0; left = 0; width = 64; height = 32; } sprite 54 { base = "ground_tiles/s54.png"; top = 0; left = 0; width = 64; height = 32; } sprite 55 { base = "ground_tiles/s55.png"; top = 0; left = 0; width = 64; height = 32; } sprite 56 { base = "ground_tiles/s56.png"; top = 0; left = 0; width = 64; height = 32; } sprite 57 { base = "ground_tiles/s57.png"; top = 0; left = 0; width = 64; height = 32; } sprite 58 { base = "ground_tiles/s58.png"; top = 0; left = 0; width = 64; height = 32; } sprite 59 { base = "ground_tiles/s59.png"; top = 0; left = 0; width = 64; height = 32; } sprite 60 { base = "ground_tiles/s60.png"; top = 0; left = 0; width = 64; height = 32; } //sprite 61 { // base = "ground_tiles/s61.png"; // top = 0; // left = 0; // width = 64; // height = 32; //} //sprite 62 { // base = "ground_tiles/s62.png"; // top = 0; // left = 0; // width = 64; // height = 32; //} //sprite 63 { // base = "ground_tiles/s63.png"; // top = 0; // left = 0; // width = 64; // height = 32; //} //sprite 64 { // base = "ground_tiles/s64.png"; // top = 0; // left = 0; // width = 64; // height = 32; //} sprite 65 { base = "ground_tiles/s65.png"; top = 0; left = 0; width = 64; height = 32; } sprite 66 { base = "ground_tiles/s66.png"; top = 0; left = 0; width = 64; height = 32; } sprite 67 { base = "ground_tiles/s67.png"; top = 0; left = 0; width = 64; height = 32; } sprite 68 { base = "ground_tiles/s68.png"; top = 0; left = 0; width = 64; height = 32; } //sprite 69 { // base = "ground_tiles/s69.png"; // top = 0; // left = 0; // width = 64; // height = 32; //} sprite 70 { base = "ground_tiles/s70.png"; top = 0; left = 0; width = 64; height = 32; } sprite 71 { base = "ground_tiles/s71.png"; top = 0; left = 0; width = 64; height = 32; } sprite 72 { base = "ground_tiles/s72.png"; top = 0; left = 0; width = 64; height = 32; } sprite 73 { base = "ground_tiles/s73.png"; top = 0; left = 0; width = 64; height = 32; } sprite 74 { base = "ground_tiles/s74.png"; top = 0; left = 0; width = 64; height = 32; } sprite 75 { base = "ground_tiles/s75.png"; top = 0; left = 0; width = 64; height = 32; } sprite 76 { base = "ground_tiles/s76.png"; top = 0; left = 0; width = 64; height = 32; } sprite 77 { base = "ground_tiles/s77.png"; top = 0; left = 0; width = 64; height = 32; } sprite 78 { base = "ground_tiles/s78.png"; top = 0; left = 0; width = 64; height = 32; } sprite 79 { base = "ground_tiles/s79.png"; top = 0; left = 0; width = 64; height = 32; } sprite 80 { base = "ground_tiles/s80.png"; top = 0; left = 0; width = 64; height = 32; } CorsixTH-0.70.0/libs/000077500000000000000000000000001522247547500142475ustar00rootroot00000000000000CorsixTH-0.70.0/libs/CMakeLists.txt000066400000000000000000000001261522247547500170060ustar00rootroot00000000000000add_subdirectory(rnc) if(SEARCH_LOCAL_DATADIRS) add_subdirectory(whereami) endif() CorsixTH-0.70.0/libs/rnc/000077500000000000000000000000001522247547500150315ustar00rootroot00000000000000CorsixTH-0.70.0/libs/rnc/CMakeLists.txt000066400000000000000000000005551522247547500175760ustar00rootroot00000000000000project(RncLib) add_library(RncLib STATIC ${CMAKE_CURRENT_SOURCE_DIR}/rnc.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rnc.h ) target_include_directories(RncLib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) set_property(TARGET RncLib PROPERTY CXX_STANDARD 14) set_property(TARGET RncLib PROPERTY CXX_EXTENSIONS OFF) set_property(TARGET RncLib PROPERTY CXX_STANDARD_REQUIRED ON) CorsixTH-0.70.0/libs/rnc/rnc.cpp000066400000000000000000000324421522247547500163240ustar00rootroot00000000000000/* Copyright (c) 1997 Simon Tatham Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Original code was from http://www.yoda.arachsys.com/dk/utils.html. While that site and the original code do not state copyright or license, email communication revealed the original author, and they agreed to releasing it under the MIT license (above). Modifications made to the original code include: * Const correctness * Prebuilt CRC table * Lua interface * Indentation and code style * Bit stream pointers to data * Fix bit operations near end of stream * Style changes to conform to CorsixTH */ #include "rnc.h" #include #include #include static const std::uint32_t rnc_signature = 0x524E4301; /*!< "RNC\001" */ // clang-format off static const std::uint16_t rnc_crc_table[256] = { 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040, }; // clang-format on struct bit_stream { std::uint32_t bitbuf; ///< holds between 16 and 32 bits. int bitcount; ///< how many bits does bitbuf hold? const std::uint8_t* endpos; ///< pointer past the readable data const std::uint8_t* p; ///< pointer in data that stream is reading. }; struct huf_table { int num; ///< number of nodes in the tree. struct { std::uint32_t code; int codelen; int value; } table[32]; }; //! Calculate a CRC, the RNC way. /*! @param data data for which to calculate the CRC @param len length of the data in bytes */ static std::uint16_t rnc_crc(const std::uint8_t* data, std::size_t len) { std::uint16_t val = 0; while (len--) { val = static_cast(val ^ *data++); val = static_cast((val >> 8) ^ rnc_crc_table[val & 0xFF]); } return val; } //! Return the big-endian 32 bit word at p. /*! @param p Pointer to data containing the word */ static std::uint32_t blong(const std::uint8_t* p) { std::uint32_t n; n = p[0]; n = (n << 8) + p[1]; n = (n << 8) + p[2]; n = (n << 8) + p[3]; return n; } //! Return the big-endian 16 bit word at p. /*! @param p Pointer to data containing the word */ static std::uint32_t bword(const std::uint8_t* p) { std::uint32_t n; n = p[0]; n = (n << 8) + p[1]; return n; } //! Return the little-endian 16 bit word at p. /*! @param p Pointer to data containing the word */ static std::uint32_t lword(const std::uint8_t* p) { std::uint32_t n; n = p[1]; n = (n << 8) + p[0]; return n; } //! Mirror the bottom n bits of x. /*! @param x @param n */ static std::uint32_t mirror(std::uint32_t x, int n) { std::uint32_t top = 1 << (n - 1), bottom = 1; while (top > bottom) { std::uint32_t mask = top | bottom; std::uint32_t masked = x & mask; if (masked != 0 && masked != mask) { x ^= mask; } top >>= 1; bottom <<= 1; } return x; } //! Initialises a bit stream with the first two bytes of the packed //! data. /*! @param bs Bit stream to be initialized @param p Pointer to start of memory block the bitstream is to traverse @param endpos Pointer to byte after the last memory block the bitstream is to traverse */ static void bitread_init(bit_stream* bs, const std::uint8_t* p, const std::uint8_t* endpos) { bs->bitbuf = lword(p); bs->bitcount = 16; bs->p = p; bs->endpos = endpos; } //! Fixes up a bit stream after literals have been read out of the //! data stream and the pointer has been moved. /*! @param bs Bit stream to correct */ static void bitread_fix(bit_stream* bs) { // Remove the top 16 bits if present bs->bitcount -= 16; if (bs->bitcount <= 0) { bs->bitcount = 0; } // bs->bitcount is never greater than 32 and we just subtracted 16 assert(bs->bitcount <= 16); bs->bitbuf &= (1 << bs->bitcount) - 1; // Replace with what is in the new current location // in the bit stream if (bs->p < bs->endpos - 1) { bs->bitbuf |= (lword(bs->p) << bs->bitcount); bs->bitcount += 16; } else if (bs->p == bs->endpos - 1) { bs->bitbuf |= (*(bs->p) << bs->bitcount); bs->bitcount += 16; } } //! Return a word consisting of the specified bits without advancing //! the bit stream. /*! @param bs Bit stream from which to peek @param mask A 32 bit bit mask specifying which bits to peek */ static std::uint32_t bit_peek(bit_stream* bs, const std::uint32_t mask) { return bs->bitbuf & mask; } //! Advances the bit stream. /*! @param bs Bit stream to advance @param n Number of bits to advance the stream. Must be between 0 and 16 */ static void bit_advance(bit_stream* bs, int n) { assert(n >= 0 && n <= 16); bs->bitbuf >>= n; bs->bitcount -= n; if (bs->bitcount < 16) { // At this point it is possible for bs->p to advance past // the end of the data. In that case we simply do not read // anything more into the buffer. If we are on the last // byte the lword matches what is in that byte. bs->p += 2; if (bs->p < (bs->endpos - 1)) { bs->bitbuf |= (lword(bs->p) << bs->bitcount); bs->bitcount += 16; } else if (bs->p < bs->endpos) { bs->bitbuf |= (*(bs->p) << bs->bitcount); bs->bitcount += 16; } } } //! Returns bits from the bit stream matching the mask and advances it //! n places. /*! @param bs Bit stream to read @param mask A 32 bit bit mask specifying which bits to read @param n Number of bits to advance the stream. Must be between 0 and 16 */ static std::uint32_t bit_read(bit_stream* bs, std::uint32_t mask, int n) { std::uint32_t result = bit_peek(bs, mask); bit_advance(bs, n); return result; } //! Read a Huffman table out of the bit stream given. /*! @param h huf_table structure to populate @param bs Bit stream pointing to the start of the Huffman table description */ static void read_huftable(huf_table* h, bit_stream* bs) { int i, j, k, num; int leaflen[32]; int leafmax; std::uint32_t codeb; /* big-endian form of code. */ num = bit_read(bs, 0x1F, 5); if (num == 0) { return; } leafmax = 1; for (i = 0; i < num; i++) { leaflen[i] = bit_read(bs, 0x0F, 4); if (leafmax < leaflen[i]) { leafmax = leaflen[i]; } } codeb = 0L; k = 0; for (i = 1; i <= leafmax; i++) { for (j = 0; j < num; j++) { if (leaflen[j] == i) { h->table[k].code = mirror(codeb, i); h->table[k].codelen = i; h->table[k].value = j; codeb++; k++; } } codeb <<= 1; } h->num = k; } //! Read a value out of the bit stream using the given Huffman table. /*! @param h Huffman table to transcribe from @param bs bit stream @param p input data @return The value from the table with the matching bits, or -1 if none found. */ static std::uint32_t huf_read(huf_table* h, bit_stream* bs, const std::uint8_t** p) { int i; std::uint32_t val; std::uint32_t mask; // Find the current bits in the table for (i = 0; i < h->num; i++) { mask = (1 << h->table[i].codelen) - 1; if (bit_peek(bs, mask) == h->table[i].code) { break; } } // No match found in table (error) if (i == h->num) { return -1; } bit_advance(bs, h->table[i].codelen); val = h->table[i].value; if (val >= 2) { val = 1 << (val - 1); val |= bit_read(bs, val - 1, h->table[i].value - 1); } return val; } std::size_t rnc_output_size(const std::uint8_t* input) { return static_cast(blong(input + 4)); } std::size_t rnc_input_size(const std::uint8_t* input) { return static_cast(blong(input + 8) + rnc_header_size); } //! Decompresses RNC data /*! @param input Pointer to compressed RNC data @param output Pointer to allocated memory region to hold uncompressed data. The size of output must match the value specified in the 4 byte segment of the input header starting at the 4th byte in Big-endian. */ rnc_status rnc_unpack(const std::uint8_t* input, std::uint8_t* output) { const std::uint8_t* inputend; std::uint8_t* outputend; bit_stream input_bs; huf_table raw = {0}, dist = {0}, len = {0}; std::uint32_t ch_count; std::uint32_t ret_len; std::uint32_t out_crc; if (blong(input) != rnc_signature) { return rnc_status::file_is_not_rnc; } ret_len = blong(input + 4); outputend = output + ret_len; inputend = input + 18 + blong(input + 8); // skip header input += 18; // Check the packed-data CRC. Also save the unpacked-data CRC // for later. if (rnc_crc(input, inputend - input) != bword(input - 4)) { return rnc_status::packed_crc_error; } out_crc = bword(input - 6); // initialize the bitstream to the input and advance past the // first two bits as they don't have any understood use. bitread_init(&input_bs, input, inputend); bit_advance(&input_bs, 2); // process chunks while (output < outputend) { read_huftable(&raw, &input_bs); // raw byte length table read_huftable(&dist, &input_bs); // distance prior to copy table read_huftable(&len, &input_bs); // length bytes to copy table ch_count = bit_read(&input_bs, 0xFFFF, 16); while (true) { long length, posn; // Copy bit pattern to output based on lookup // of bytes from input. length = huf_read(&raw, &input_bs, &input); if (length == -1) { return rnc_status::huf_decode_error; } if (length) { while (length--) { *output++ = *(input_bs.p++); } bitread_fix(&input_bs); } if (--ch_count <= 0) { break; } // Read position to copy output to posn = huf_read(&dist, &input_bs, &input); if (posn == -1) { return rnc_status::huf_decode_error; } posn += 1; // Read length of output to copy back length = huf_read(&len, &input_bs, &input); if (length == -1) { return rnc_status::huf_decode_error; } length += 2; // Copy length bytes from output back posn while (length > 0) { length--; *output = output[-posn]; output++; } } } if (outputend != output) { return rnc_status::file_size_mismatch; } // Check the unpacked-data CRC. if (rnc_crc(outputend - ret_len, ret_len) != out_crc) { return rnc_status::unpacked_crc_error; } return rnc_status::ok; } CorsixTH-0.70.0/libs/rnc/rnc.h000066400000000000000000000035361522247547500157730ustar00rootroot00000000000000/* Copyright (c) 2009 Peter "Corsix" Cawley Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef CORSIX_TH_RNC_H_ #define CORSIX_TH_RNC_H_ #include #include /*! Result status values from #rnc_inpack. */ enum class rnc_status { ok, ///< Everything is fine file_is_not_rnc, ///< The file does not begin with an RNC signature huf_decode_error, ///< Error decoding the file file_size_mismatch, ///< The file size does not match the header packed_crc_error, ///< The compressed file does not match its checksum unpacked_crc_error ///< The uncompressed file does not match its checksum }; const std::size_t rnc_header_size = 18; std::size_t rnc_output_size(const std::uint8_t* input); std::size_t rnc_input_size(const std::uint8_t* input); rnc_status rnc_unpack(const std::uint8_t* input, std::uint8_t* output); #endif // CORSIX_TH_RNC_H_ CorsixTH-0.70.0/libs/whereami/000077500000000000000000000000001522247547500160505ustar00rootroot00000000000000CorsixTH-0.70.0/libs/whereami/CMakeLists.txt000066400000000000000000000003331522247547500206070ustar00rootroot00000000000000project(WhereamiLib) add_library(WhereamiLib) target_include_directories(WhereamiLib PRIVATE ".") target_sources(WhereamiLib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/whereami.c ${CMAKE_CURRENT_SOURCE_DIR}/whereami.h ) CorsixTH-0.70.0/libs/whereami/whereami.c000066400000000000000000000375761522247547500200370ustar00rootroot00000000000000// (‑â—�‑â—�)> dual licensed under the WTFPL v2 and MIT licenses // without any warranty. // by Gregory Pakosz (@gpakosz) // https://github.com/gpakosz/whereami // in case you want to #include "whereami.c" in a larger compilation unit #if !defined(WHEREAMI_H) #include #endif #ifdef __cplusplus extern "C" { #endif #if defined(__linux__) || defined(__CYGWIN__) #undef _DEFAULT_SOURCE #define _DEFAULT_SOURCE #elif defined(__APPLE__) #undef _DARWIN_C_SOURCE #define _DARWIN_C_SOURCE #define _DARWIN_BETTER_REALPATH #endif #if !defined(WAI_MALLOC) || !defined(WAI_FREE) || !defined(WAI_REALLOC) #include #endif #if !defined(WAI_MALLOC) #define WAI_MALLOC(size) malloc(size) #endif #if !defined(WAI_FREE) #define WAI_FREE(p) free(p) #endif #if !defined(WAI_REALLOC) #define WAI_REALLOC(p, size) realloc(p, size) #endif #ifndef WAI_NOINLINE #if defined(_MSC_VER) #define WAI_NOINLINE __declspec(noinline) #elif defined(__GNUC__) #define WAI_NOINLINE __attribute__((noinline)) #else #error unsupported compiler #endif #endif #if defined(_MSC_VER) #define WAI_RETURN_ADDRESS() _ReturnAddress() #elif defined(__GNUC__) #define WAI_RETURN_ADDRESS() __builtin_extract_return_addr(__builtin_return_address(0)) #else #error unsupported compiler #endif #if defined(_WIN32) #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #if defined(_MSC_VER) #pragma warning(push, 3) #endif #include #include #if defined(_MSC_VER) #pragma warning(pop) #endif #include static int WAI_PREFIX(getModulePath_)(HMODULE module, char* out, int capacity, int* dirname_length) { wchar_t buffer1[MAX_PATH]; wchar_t buffer2[MAX_PATH]; wchar_t* path = NULL; int length = -1; bool ok; for (ok = false; !ok; ok = true) { DWORD size; int length_, length__; size = GetModuleFileNameW(module, buffer1, sizeof(buffer1) / sizeof(buffer1[0])); if (size == 0) break; else if (size == (DWORD)(sizeof(buffer1) / sizeof(buffer1[0]))) { DWORD size_ = size; do { wchar_t* path_; path_ = (wchar_t*)WAI_REALLOC(path, sizeof(wchar_t) * size_ * 2); if (!path_) break; size_ *= 2; path = path_; size = GetModuleFileNameW(module, path, size_); } while (size == size_); if (size == size_) break; } else path = buffer1; if (!_wfullpath(buffer2, path, MAX_PATH)) break; length_ = (int)wcslen(buffer2); length__ = WideCharToMultiByte(CP_UTF8, 0, buffer2, length_ , out, capacity, NULL, NULL); if (length__ == 0) length__ = WideCharToMultiByte(CP_UTF8, 0, buffer2, length_, NULL, 0, NULL, NULL); if (length__ == 0) break; if (length__ <= capacity && dirname_length) { int i; for (i = length__ - 1; i >= 0; --i) { if (out[i] == '\\') { *dirname_length = i; break; } } } length = length__; } if (path != buffer1) WAI_FREE(path); return ok ? length : -1; } WAI_NOINLINE WAI_FUNCSPEC int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length) { return WAI_PREFIX(getModulePath_)(NULL, out, capacity, dirname_length); } WAI_NOINLINE WAI_FUNCSPEC int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length) { HMODULE module; int length = -1; #if defined(_MSC_VER) #pragma warning(push) #pragma warning(disable: 4054) #endif if (GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, (LPCTSTR)WAI_RETURN_ADDRESS(), &module)) #if defined(_MSC_VER) #pragma warning(pop) #endif { length = WAI_PREFIX(getModulePath_)(module, out, capacity, dirname_length); } return length; } #elif defined(__linux__) || defined(__CYGWIN__) || defined(__sun) || defined(WAI_USE_PROC_SELF_EXE) #include #include #include #if defined(__linux__) #include #else #include #endif #ifndef __STDC_FORMAT_MACROS #define __STDC_FORMAT_MACROS #endif #include #include #if !defined(WAI_PROC_SELF_EXE) #if defined(__sun) #define WAI_PROC_SELF_EXE "/proc/self/path/a.out" #else #define WAI_PROC_SELF_EXE "/proc/self/exe" #endif #endif WAI_FUNCSPEC int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length) { char buffer[PATH_MAX]; char* resolved = NULL; int length = -1; bool ok; for (ok = false; !ok; ok = true) { resolved = realpath(WAI_PROC_SELF_EXE, buffer); if (!resolved) break; length = (int)strlen(resolved); if (length <= capacity) { memcpy(out, resolved, length); if (dirname_length) { int i; for (i = length - 1; i >= 0; --i) { if (out[i] == '/') { *dirname_length = i; break; } } } } } return ok ? length : -1; } #if !defined(WAI_PROC_SELF_MAPS_RETRY) #define WAI_PROC_SELF_MAPS_RETRY 5 #endif #if !defined(WAI_PROC_SELF_MAPS) #if defined(__sun) #define WAI_PROC_SELF_MAPS "/proc/self/map" #else #define WAI_PROC_SELF_MAPS "/proc/self/maps" #endif #endif #if defined(__ANDROID__) || defined(ANDROID) #include #include #include #endif #include WAI_NOINLINE WAI_FUNCSPEC int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length) { int length = -1; FILE* maps = NULL; for (int r = 0; r < WAI_PROC_SELF_MAPS_RETRY; ++r) { maps = fopen(WAI_PROC_SELF_MAPS, "r"); if (!maps) break; for (;;) { char buffer[PATH_MAX < 1024 ? 1024 : PATH_MAX]; uint64_t low, high; char perms[5]; uint64_t offset; uint32_t major, minor; char path[PATH_MAX]; uint32_t inode; if (!fgets(buffer, sizeof(buffer), maps)) break; if (sscanf(buffer, "%" PRIx64 "-%" PRIx64 " %s %" PRIx64 " %x:%x %u %s\n", &low, &high, perms, &offset, &major, &minor, &inode, path) == 8) { uint64_t addr = (uintptr_t)WAI_RETURN_ADDRESS(); if (low <= addr && addr <= high) { char* resolved; resolved = realpath(path, buffer); if (!resolved) break; length = (int)strlen(resolved); #if defined(__ANDROID__) || defined(ANDROID) if (length > 4 &&buffer[length - 1] == 'k' &&buffer[length - 2] == 'p' &&buffer[length - 3] == 'a' &&buffer[length - 4] == '.') { int fd = open(path, O_RDONLY); if (fd == -1) { length = -1; // retry break; } char* begin = (char*)mmap(0, offset, PROT_READ, MAP_SHARED, fd, 0); if (begin == MAP_FAILED) { close(fd); length = -1; // retry break; } char* p = begin + offset - 30; // minimum size of local file header while (p >= begin) // scan backwards { if (*((uint32_t*)p) == 0x04034b50UL) // local file header signature found { uint16_t length_ = *((uint16_t*)(p + 26)); if (length + 2 + length_ < (int)sizeof(buffer)) { memcpy(&buffer[length], "!/", 2); memcpy(&buffer[length + 2], p + 30, length_); length += 2 + length_; } break; } --p; } munmap(begin, offset); close(fd); } #endif if (length <= capacity) { memcpy(out, resolved, length); if (dirname_length) { int i; for (i = length - 1; i >= 0; --i) { if (out[i] == '/') { *dirname_length = i; break; } } } } break; } } } fclose(maps); maps = NULL; if (length != -1) break; } return length; } #elif defined(__APPLE__) #include #include #include #include #include #include WAI_FUNCSPEC int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length) { char buffer1[PATH_MAX]; char buffer2[PATH_MAX]; char* path = buffer1; char* resolved = NULL; int length = -1; bool ok; for (ok = false; !ok; ok = true) { uint32_t size = (uint32_t)sizeof(buffer1); if (_NSGetExecutablePath(path, &size) == -1) { path = (char*)WAI_MALLOC(size); if (!_NSGetExecutablePath(path, &size)) break; } resolved = realpath(path, buffer2); if (!resolved) break; length = (int)strlen(resolved); if (length <= capacity) { memcpy(out, resolved, length); if (dirname_length) { int i; for (i = length - 1; i >= 0; --i) { if (out[i] == '/') { *dirname_length = i; break; } } } } } if (path != buffer1) WAI_FREE(path); return ok ? length : -1; } WAI_NOINLINE WAI_FUNCSPEC int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length) { char buffer[PATH_MAX]; char* resolved = NULL; int length = -1; for(;;) { Dl_info info; if (dladdr(WAI_RETURN_ADDRESS(), &info)) { resolved = realpath(info.dli_fname, buffer); if (!resolved) break; length = (int)strlen(resolved); if (length <= capacity) { memcpy(out, resolved, length); if (dirname_length) { int i; for (i = length - 1; i >= 0; --i) { if (out[i] == '/') { *dirname_length = i; break; } } } } } break; } return length; } #elif defined(__QNXNTO__) #include #include #include #include #include #include #if !defined(WAI_PROC_SELF_EXE) #define WAI_PROC_SELF_EXE "/proc/self/exefile" #endif WAI_FUNCSPEC int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length) { char buffer1[PATH_MAX]; char buffer2[PATH_MAX]; char* resolved = NULL; FILE* self_exe = NULL; int length = -1; bool ok; for (ok = false; !ok; ok = true) { self_exe = fopen(WAI_PROC_SELF_EXE, "r"); if (!self_exe) break; if (!fgets(buffer1, sizeof(buffer1), self_exe)) break; resolved = realpath(buffer1, buffer2); if (!resolved) break; length = (int)strlen(resolved); if (length <= capacity) { memcpy(out, resolved, length); if (dirname_length) { int i; for (i = length - 1; i >= 0; --i) { if (out[i] == '/') { *dirname_length = i; break; } } } } } fclose(self_exe); return ok ? length : -1; } WAI_FUNCSPEC int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length) { char buffer[PATH_MAX]; char* resolved = NULL; int length = -1; for(;;) { Dl_info info; if (dladdr(WAI_RETURN_ADDRESS(), &info)) { resolved = realpath(info.dli_fname, buffer); if (!resolved) break; length = (int)strlen(resolved); if (length <= capacity) { memcpy(out, resolved, length); if (dirname_length) { int i; for (i = length - 1; i >= 0; --i) { if (out[i] == '/') { *dirname_length = i; break; } } } } } break; } return length; } #elif defined(__DragonFly__) || defined(__FreeBSD__) || \ defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) #include #include #include #include #include #include #include #if defined(__OpenBSD__) #include WAI_FUNCSPEC int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length) { char buffer1[4096]; char buffer2[PATH_MAX]; char buffer3[PATH_MAX]; char** argv = (char**)buffer1; char* resolved = NULL; int length = -1; bool ok; for (ok = false; !ok; ok = true) { int mib[4] = { CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_ARGV }; size_t size; if (sysctl(mib, 4, NULL, &size, NULL, 0) != 0) break; if (size > sizeof(buffer1)) { argv = (char**)WAI_MALLOC(size); if (!argv) break; } if (sysctl(mib, 4, argv, &size, NULL, 0) != 0) break; if (strchr(argv[0], '/')) { resolved = realpath(argv[0], buffer2); if (!resolved) break; } else { const char* PATH = getenv("PATH"); if (!PATH) break; size_t argv0_length = strlen(argv[0]); const char* begin = PATH; while (1) { const char* separator = strchr(begin, ':'); const char* end = separator ? separator : begin + strlen(begin); if (end - begin > 0) { if (*(end -1) == '/') --end; if (((end - begin) + 1 + argv0_length + 1) <= sizeof(buffer2)) { memcpy(buffer2, begin, end - begin); buffer2[end - begin] = '/'; memcpy(buffer2 + (end - begin) + 1, argv[0], argv0_length + 1); resolved = realpath(buffer2, buffer3); if (resolved) break; } } if (!separator) break; begin = ++separator; } if (!resolved) break; } length = (int)strlen(resolved); if (length <= capacity) { memcpy(out, resolved, length); if (dirname_length) { int i; for (i = length - 1; i >= 0; --i) { if (out[i] == '/') { *dirname_length = i; break; } } } } } if (argv != (char**)buffer1) WAI_FREE(argv); return ok ? length : -1; } #else WAI_FUNCSPEC int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length) { char buffer1[PATH_MAX]; char buffer2[PATH_MAX]; char* path = buffer1; char* resolved = NULL; int length = -1; bool ok; for (ok = false; !ok; ok = true) { #if defined(__NetBSD__) int mib[4] = { CTL_KERN, KERN_PROC_ARGS, -1, KERN_PROC_PATHNAME }; #else int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; #endif size_t size = sizeof(buffer1); if (sysctl(mib, 4, path, &size, NULL, 0) != 0) break; resolved = realpath(path, buffer2); if (!resolved) break; length = (int)strlen(resolved); if (length <= capacity) { memcpy(out, resolved, length); if (dirname_length) { int i; for (i = length - 1; i >= 0; --i) { if (out[i] == '/') { *dirname_length = i; break; } } } } } return ok ? length : -1; } #endif WAI_NOINLINE WAI_FUNCSPEC int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length) { char buffer[PATH_MAX]; char* resolved = NULL; int length = -1; for(;;) { Dl_info info; if (dladdr(WAI_RETURN_ADDRESS(), &info)) { resolved = realpath(info.dli_fname, buffer); if (!resolved) break; length = (int)strlen(resolved); if (length <= capacity) { memcpy(out, resolved, length); if (dirname_length) { int i; for (i = length - 1; i >= 0; --i) { if (out[i] == '/') { *dirname_length = i; break; } } } } } break; } return length; } #else #error unsupported platform #endif #ifdef __cplusplus } #endifCorsixTH-0.70.0/libs/whereami/whereami.h000066400000000000000000000037411522247547500200270ustar00rootroot00000000000000// (‑â—�‑â—�)> dual licensed under the WTFPL v2 and MIT licenses // without any warranty. // by Gregory Pakosz (@gpakosz) // https://github.com/gpakosz/whereami #ifndef WHEREAMI_H #define WHEREAMI_H #ifdef __cplusplus extern "C" { #endif #ifndef WAI_FUNCSPEC #define WAI_FUNCSPEC #endif #ifndef WAI_PREFIX #define WAI_PREFIX(function) wai_##function #endif /** * Returns the path to the current executable. * * Usage: * - first call `int length = wai_getExecutablePath(NULL, 0, NULL);` to * retrieve the length of the path * - allocate the destination buffer with `path = (char*)malloc(length + 1);` * - call `wai_getExecutablePath(path, length, NULL)` again to retrieve the * path * - add a terminal NUL character with `path[length] = '\0';` * * @param out destination buffer, optional * @param capacity destination buffer capacity * @param dirname_length optional recipient for the length of the dirname part * of the path. * * @return the length of the executable path on success (without a terminal NUL * character), otherwise `-1` */ WAI_FUNCSPEC int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length); /** * Returns the path to the current module * * Usage: * - first call `int length = wai_getModulePath(NULL, 0, NULL);` to retrieve * the length of the path * - allocate the destination buffer with `path = (char*)malloc(length + 1);` * - call `wai_getModulePath(path, length, NULL)` again to retrieve the path * - add a terminal NUL character with `path[length] = '\0';` * * @param out destination buffer, optional * @param capacity destination buffer capacity * @param dirname_length optional recipient for the length of the dirname part * of the path. * * @return the length of the module path on success (without a terminal NUL * character), otherwise `-1` */ WAI_FUNCSPEC int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length); #ifdef __cplusplus } #endif #endif // #ifndef WHEREAMI_H CorsixTH-0.70.0/scripts/000077500000000000000000000000001522247547500150055ustar00rootroot00000000000000CorsixTH-0.70.0/scripts/check_language_files_not_BOM.py000077500000000000000000000025461522247547500230500ustar00rootroot00000000000000#!/usr/bin/env python3 """ Usage: check_language_files_not_BOM.py [root] This script will check the presence of language files encoded in UTF-8 with BOM. It will return 0 if none is found. Otherwise, it will print the path of the violating files and return an error code. If root is not specified, it will use the current directory. """ import codecs import os import sys def is_BOM_encoded_file(path): """ Returns whether |path| is a file that is encoded in UTF-8 with BOM. """ if not os.path.isfile(path): return False with open(path, 'rb') as f: raw = f.read(4) return raw.startswith(codecs.BOM_UTF8) if len(sys.argv) > 2: sys.exit('Usage: {} [root]'.format(sys.argv[0])) top = os.getcwd() if len(sys.argv) == 2: if not os.path.isdir(sys.argv[1]): sys.exit('Error: ' + sys.argv[1] + ' is not a directory') top = os.path.join(top, sys.argv[1]) count = 0 offending_files = [] for root, dirs, files in os.walk(top): for f in files: if f.endswith('.lua'): count += 1 path = os.path.join(root, f) if is_BOM_encoded_file(path): offending_files.append(f) print('Checked {} files'.format(count)) if offending_files: print('Found files with UTF-8 with BOM encoding:') for f in offending_files: print(f) sys.exit(1) sys.exit(0) CorsixTH-0.70.0/scripts/check_lua_classes.py000077500000000000000000000027751522247547500210300ustar00rootroot00000000000000#!/usr/bin/env python3 import os import re import sys # This regex can't find all class declaration mistakes and only checks the # first few lines: # Regex: ^class "(.+)".*\n\n(?!---@type \1\nlocal \1 = _G\["\1"]) regex = r"^class \"(.+)\".*\n\n(?!---@type \1\nlocal \1 = _G\[\"\1\"])" print_root_regex = re.compile("Lua.*") script_dir = os.path.join(os.path.dirname(__file__), "..", "CorsixTH", "Lua") ignored = os.listdir(os.path.join(script_dir, "languages")) count = 0 problem_found = False for root, _, files in os.walk(script_dir): for script in files: if script.endswith(".lua") and script not in ignored: count += 1 script_string = open(os.path.join(root, script), 'r').read() for found_class in re.findall(regex, script_string, re.MULTILINE): if not problem_found: print("******* CHECK CLASS DECLARATIONS *******") problem_found = True print("Invalid/Improper Class Declarations Found:") path = print_root_regex.search(root).group(0) print("*{}:{}".format(os.path.join(path, script), found_class)) print("Checked {} files".format(count)) if problem_found: print("\nReason: The class declaration(s) didn't begin as follows:") print("") print("class \"Name\" / class \"Name\" (Parent)") print("") print("---@type Name") print("local Name = _G[\"Name\"]") print("-----------------------------------------\n") sys.exit(1) sys.exit(0) CorsixTH-0.70.0/scripts/check_whitespace.py000077500000000000000000000110511522247547500206510ustar00rootroot00000000000000#!/usr/bin/env python3 """ Usage: check_whitespace.py [-e EXCL] [root-dir ...] This script will check for incorrect whitespace (usage of TAB and trailing whitespace) in Lua, Python, and C/C++ files below one of the listed |root-dir| directories. With the -e option you can specify one or more EXCL fragments that skips file paths that have one of the fragments. It will return 0 (ie success) if only correct whitespace is found. Otherwise, it will print the path of the violating file(s) and return an error code. If no root-dir is specified, it will use the current directory. """ import getopt import os import re import sys # Bad whitespace is # - a TAB (anywhere), # - a SPACE before CR, # - a SPACE before NL, or # - a SPACE as last character. BAD_WHITESPACE = re.compile(r'\t| \r| \n| $') MESSAGES = { (True, False): "has at least one tab character", (False, True): "has trailing whitespace", (True, True): "has both at least one tab character and trailing whitespace" } def check_for_bad_whitespace(path): """ Checks the file at |path| for tab and trailing white space and returns an error-message if something bad was found, or None. """ has_bad_tab = False has_bad_space = False if os.path.isfile(path): with open(path, 'r') as handle: for line in handle: bad_whites = BAD_WHITESPACE.findall(line) if bad_whites: bad_tab_count = sum(1 for bw in bad_whites if bw == '\t') bad_space_count = len(bad_whites) - bad_tab_count has_bad_tab = has_bad_tab or (bad_tab_count > 0) has_bad_space = has_bad_space or (bad_space_count > 0) if has_bad_tab and has_bad_space: break # Found everything we can possibly find, done. if has_bad_tab or has_bad_space: return f"File \"{path}\" {MESSAGES[(has_bad_tab, has_bad_space)]}" return None def main(): # Process the command line. short_opts = "he:" long_opts = [] try: opts, args = getopt.getopt(sys.argv[1:], short_opts, long_opts) except getopt.GetoptError as ex: print(f"ERROR: {ex}") sys.exit(1) # Process the found options. excludes = [] for opt, optval in opts: if opt == '-h': print("Usage: check_whitespace [options] [ROOT-DIR ...]") print() print("Checks source files for bad whitespace. Recursively examines all") print("supplied ROOT-DIR, or the current directory if no root is provided.") print() print("Options:") print(" -h Print this help text") print(" -e TEXT Exclude source files with TEXT in their path") print(" This option may be used multiple times") print() print("Have a nice day!") sys.exit(0) if opt == '-e': excludes.append(optval) continue # Shouldn't happen due to getopt checking. assert False, f"Unexpected option ({(opt, optval)} found." # Setup root directories. cur_dir = os.getcwd() if args: tops = [os.path.join(cur_dir, arg) for arg in args] else: tops = [cur_dir] # Process files. count = 0 messages = [] found_errors = False for top in tops: for root, dirs, files in os.walk(top): for f in files: # Skip non-source files. if not f.lower().endswith(('.py', '.lua', '.h', '.cpp', '.cc', '.c')): continue # Skip files with excluded patterns. path = os.path.join(root, f) if any(excl in path for excl in excludes): continue # Check the file. count += 1 try: message = check_for_bad_whitespace(path) if message is not None: found_errors = True messages.append(message) except UnicodeDecodeError: print(f"ERROR: File {path} has Unicode errors.") found_errors = True # Report files with bad whitespace. print('Checked {} files'.format(count)) if messages: print() print('Found files with bad whitespace:') for message in messages: print(message) # And construct the return code. if found_errors: sys.exit(1) else: sys.exit(0) if __name__ == '__main__': main() CorsixTH-0.70.0/scripts/generate_windows_config.lua000066400000000000000000000042511522247547500224030ustar00rootroot00000000000000--[[ Copyright (c) 2021 Toby "tobylane" Copyright (c) 2026 Stephen "TheCycoONE" Baker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This will write the default configuration to WindowsInstaller/config_template.txt --]] local do_not_wrap = {} do_not_wrap['SCREEN_FULLSCREEN'] = true do_not_wrap['SCREEN_SIZE_WIDTH'] = true do_not_wrap['SCREEN_SIZE_HEIGHT'] = true function serialize(s) if type(s) ~= 'string' or do_not_wrap[s] then return tostring(s) end return '[[' .. s .. ']]' end function loadstring_envcall() end local pathsep = package.config:sub(1, 1) local function path(tbl) return table.concat(tbl, pathsep) end local config_path = path({"CorsixTH", "Lua", "config_finder.lua"}) local config_finder = dofile(config_path) local config_values = config_finder.config_defaults() config_values.fullscreen = [[SCREEN_FULLSCREEN]] config_values.width = [[SCREEN_SIZE_WIDTH]] config_values.height = [[SCREEN_SIZE_HEIGHT]] config_values.language = [[LANGUAGE_CHOSEN]] config_values.theme_hospital_install = [[ORIGINAL_HOSPITAL_DIRECTORY]] local template_path = path({"WindowsInstaller", "config_template.txt"}) local _, err = config_finder.save_config(template_path, config_values) if err then print("Error:", err) end CorsixTH-0.70.0/scripts/macos_luarocks000077500000000000000000000055621522247547500177500ustar00rootroot00000000000000#!/bin/bash : ' Copyright (c) 2016- Toby "tobylane" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.' ## Settings # Lua version, if not the lua CorsixTH was built with. Use 5.1 for luajit #lua_version="5.4" # The luarocks executable if not in PATH luarocks="luarocks" # The luarocks folder, assuming all rocks are together dir="$($luarocks show --rock-tree luafilesystem)" # Always overwrite existing rocks if uncommented #always_copy=true # Always build new rocks if uncommented #always_build=true set -ae if [ "$CTH_VERBOSE" ] || [ "$CI" ]; then set -x fi # Find target app if [ -d "$1" ]; then cd "$1" elif [ -d /Applications/CorsixTH.app ]; then cd /Applications/ fi if [ -d CorsixTH.app ]; then cd CorsixTH.app/Contents/Resources/ else echo "No CorsixTH.app found" exit 1 fi # Find lua version if [ -n "$lua_version" ]; then lua=$lua_version elif otool -L ../MacOS/CorsixTH | grep -q 'lua'; then lua="$(otool -L ../MacOS/CorsixTH | grep 'lua' | sed -rn "s/.*current.* ([0-9]\.[0-9]).*/\1/p")" elif lua -v >/dev/null; then lua="$(lua -v | cut -d" " -f2 | cut -d. -f1-2)" fi if [ -z "$lua" ]; then lua=5.4 echo "No Lua library or executable found, using version 5.4." fi # Collect rocks if [ -e lfs.so ] && [ -e lpeg.so ] && [ -z "$always_copy" ] && [ -z "$always_build" ] then echo "Luarocks for $lua in place." exit 0 elif [ -e "$dir/lib/lua/$lua/lfs.so" ] && [ -e "$dir/lib/lua/$lua/lpeg.so" ] && [ -d "$dir/share/lua/" ] && [ -z "$always_build" ] then mkdir -p lib/lua/"$lua/" share/lua/"$lua/" cp -RL "$dir/lib/lua" lib/ cp -RL "$dir/share/lua" share/ echo "Copied luarocks from global installation for $lua." else luarocks="$luarocks install --lua-version $lua --tree ." $luarocks luafilesystem $luarocks lpeg echo "Installed local luarocks for $lua." fi # Move into place for CorsixTH rsync -r "lib/lua/$lua/"lpeg.so "lib/lua/$lua/"lfs.so . rsync -r "share/lua/$lua/"re.lua ./Lua/ rm -rf lib/ share/ CorsixTH-0.70.0/tools/000077500000000000000000000000001522247547500144565ustar00rootroot00000000000000CorsixTH-0.70.0/tools/CMakeLists.txt000066400000000000000000000000261522247547500172140ustar00rootroot00000000000000add_subdirectory(rnc) CorsixTH-0.70.0/tools/rnc/000077500000000000000000000000001522247547500152405ustar00rootroot00000000000000CorsixTH-0.70.0/tools/rnc/CMakeLists.txt000066400000000000000000000013341522247547500200010ustar00rootroot00000000000000# Sanity check if(CORSIX_TH_DONE_TOP_LEVEL_CMAKE) else() message(FATAL_ERROR "Please run CMake from the top-level directory instead of here.") endif() # Project Declaration project(RncDecodeCli) add_executable( RncDecodeCli rnc_decode_cli.cpp ) set_target_properties(RncDecodeCli PROPERTIES OUTPUT_NAME "rnc_decode") target_link_libraries(RncDecodeCli RncLib) # Set language standard set_property(TARGET RncDecodeCli PROPERTY CXX_STANDARD 17) set_property(TARGET RncDecodeCli PROPERTY CXX_EXTENSIONS OFF) set_property(TARGET RncDecodeCli PROPERTY CXX_STANDARD_REQUIRED ON) if(MSVC) # We want to bind against the very latest versions of the MSVC runtimes add_definitions(/D "_BIND_TO_CURRENT_VCLIBS_VERSION=1") endif() CorsixTH-0.70.0/tools/rnc/rnc_decode_cli.cpp000066400000000000000000000073451522247547500206710ustar00rootroot00000000000000/* Copyright (c) 2022 Albert "Alberth" Hofkamp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include "rnc.h" static std::uint8_t* decompress(const std::uint8_t* in, std::size_t inlen, std::size_t* outlen) { if (inlen < rnc_header_size) { fprintf(stderr, "Input is not RNC compressed data\n"); exit(2); } *outlen = rnc_output_size(in); if (*outlen > 0xFFFFFF) { fprintf(stderr, "Output file too long (> 16MB).\n"); exit(1); } std::uint8_t* outbuf = new std::uint8_t[*outlen]; if (outbuf == nullptr) { fprintf(stderr, "Cannot allocate memory for output file.\n"); exit(1); } switch (rnc_unpack(in, outbuf)) { case rnc_status::ok: return outbuf; case rnc_status::file_is_not_rnc: fprintf(stderr, "Input is not RNC compressed data\n"); exit(2); case rnc_status::huf_decode_error: fprintf(stderr, "Huffman decoding error\n"); exit(2); case rnc_status::file_size_mismatch: fprintf(stderr, "Size mismatch\n"); exit(2); case rnc_status::packed_crc_error: fprintf(stderr, "Incorrect packed CRC\n"); exit(2); case rnc_status::unpacked_crc_error: fprintf(stderr, "Incorrect unpacked CRC\n"); exit(2); default: fprintf(stderr, "Unknown error decompressing RNC data\n"); exit(2); } } static bool ishelp(const char* txt) { if (!strcmp(txt, "-h")) return true; if (!strcmp(txt, "--help")) return true; return false; } int main(int argc, char* argv[]) { if (argc != 3 || ishelp(argv[1])) { fprintf(stderr, "Usage: rnc_decode \n"); exit(1); } FILE* inhandle = fopen(argv[1], "rb"); if (inhandle == nullptr) { fprintf(stderr, "Cannot open input file.\n"); exit(1); } fseek(inhandle, 0, SEEK_END); std::size_t insize = ftell(inhandle); fseek(inhandle, 0, SEEK_SET); printf("Input file is %lu bytes.\n", insize); std::uint8_t* indata = new std::uint8_t[insize]; if (indata == nullptr) { fprintf(stderr, "Cannot allocate memory for input file.\n"); exit(1); } std::size_t count = fread(indata, 1, insize, inhandle); if (count != insize) { fprintf(stderr, "Cannot read input file.\n"); exit(1); } fclose(inhandle); std::size_t outlen; std::uint8_t* outdata = decompress(indata, insize, &outlen); FILE* outhandle = fopen(argv[2], "wb"); if (outhandle == nullptr) { fprintf(stderr, "Cannot open output file.\n"); exit(1); } count = fwrite(outdata, 1, outlen, outhandle); if (count != outlen) { fprintf(stderr, "Cannot write output file.\n"); exit(1); } fclose(outhandle); printf("Wrote %lu bytes output file.\n", outlen); delete[] outdata; return 0; } CorsixTH-0.70.0/vcpkg-configuration.json000066400000000000000000000010551522247547500201710ustar00rootroot00000000000000{ "default-registry": { "kind": "git", "baseline": "bee87c32fcf25e81b0d9c312144475b5e34181a8", "repository": "https://github.com/microsoft/vcpkg" }, "registries": [ { "kind": "artifact", "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", "name": "microsoft" }, { "kind": "git", "repository": "https://github.com/CorsixTH/vcpkg-registry", "baseline": "ddc4effddd5f69d77c2eae918d7f8ba55fc8ab37", "packages": [ "ffmpeg", "ffmpeg-bin2c" ] } ] } CorsixTH-0.70.0/vcpkg.json000066400000000000000000000030621522247547500153240ustar00rootroot00000000000000{ "dependencies": [ { "name": "lua", "features": [ "tools" ] }, "sdl2", "luafilesystem", "lpeg", "libpng", "zlib", { "name": "fluidsynth", "features": [ "sndfile" ] }, { "name": "sdl2-mixer", "features": [ "libmodplug", "fluidsynth", "libflac", "mpg123", "opusfile" ] }, "freetype" ], "features": { "animview": { "description": "Support building AnimView", "dependencies": [ "wxwidgets" ] }, "updatecheck": { "description": "Support checking for game updates", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "ssl" ] } ] }, "movies": { "description": "In game video support", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avformat", "swresample", "swscale" ] } ] }, "midi": { "description": "Support MIDI devices", "dependencies": [ "rtmidi" ] }, "catch2": { "description": "Support Catch2 tests", "dependencies": [ "catch2" ] }, "tracy": { "description": "Support Tracy profiling", "dependencies": [{ "name": "tracy", "features": [ "cli-tools" ] }] } } }